@silurus/ooxml 0.57.0 → 0.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,68 +8,181 @@ var e = Object.defineProperty, t = (t, n) => {
8
8
  return n || e(r, Symbol.toStringTag, { value: "Module" }), r;
9
9
  }, n = 15e3;
10
10
  function r(e) {
11
- return e.sheet ? Promise.resolve() : new Promise((t) => {
12
- let n = () => {
13
- e.removeEventListener("load", n), e.removeEventListener("error", n), t();
14
- };
15
- e.addEventListener("load", n), e.addEventListener("error", n);
16
- });
17
- }
18
- function i(e) {
19
11
  return Promise.race([e, new Promise((e) => setTimeout(e, n))]);
20
12
  }
21
- async function a(e, t) {
22
- if (typeof document > "u") return;
23
- let n = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = [];
24
- for (let i of e) {
25
- if (!i) continue;
26
- let e = i.toLowerCase();
27
- if (n.has(e)) continue;
28
- n.add(e);
29
- let s = t[e];
30
- if (!s) continue;
31
- let c = document.querySelector(`link[href="${s.url}"]`);
32
- if (!c) try {
33
- c = document.createElement("link"), c.rel = "stylesheet", c.href = s.url, document.head.appendChild(c);
34
- } catch {
35
- c = null;
36
- }
37
- c && o.push(r(c)), a.add((s.loadFamily ?? i).toLowerCase());
13
+ var i = /* @__PURE__ */ new Map();
14
+ function a(e) {
15
+ let t = [], n = /@font-face\s*\{([^}]*)\}/g, r;
16
+ for (; r = n.exec(e);) {
17
+ let e = r[1], n = (t) => e.match(RegExp(`(?:^|;|\\n)\\s*${t}\\s*:\\s*([^;]+)`, "i"))?.[1].trim(), i = n("font-family"), a = n("src");
18
+ if (!i || !a) continue;
19
+ let o = {}, s = n("font-style");
20
+ s && (o.style = s);
21
+ let c = n("font-weight");
22
+ c && (o.weight = c);
23
+ let l = n("font-stretch");
24
+ l && (o.stretch = l);
25
+ let u = n("unicode-range");
26
+ u && (o.unicodeRange = u), t.push({
27
+ family: i.replace(/^['"]|['"]$/g, ""),
28
+ src: a,
29
+ descriptors: o
30
+ });
31
+ }
32
+ return t;
33
+ }
34
+ function o() {
35
+ return typeof document < "u" && document && document.fonts ? document.fonts : typeof self < "u" && self && "fonts" in self ? self.fonts : null;
36
+ }
37
+ async function s(e, t) {
38
+ let n = o();
39
+ if (!n || typeof FontFace > "u" || typeof fetch > "u") return;
40
+ let s = /* @__PURE__ */ new Set(), c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Set();
41
+ for (let n of e) {
42
+ if (!n) continue;
43
+ let e = n.toLowerCase();
44
+ if (s.has(e)) continue;
45
+ s.add(e);
46
+ let r = t[e];
47
+ if (!r) continue;
48
+ l.add(r.url);
49
+ let i = (r.loadFamily ?? n).toLowerCase();
50
+ c.add(i);
51
+ let a = u.get(r.url);
52
+ a || (a = /* @__PURE__ */ new Set(), u.set(r.url, a)), a.add(i);
38
53
  }
39
- if (a.size === 0) return;
40
- await i(Promise.allSettled(o));
41
- let s = [...document.fonts].filter((e) => a.has(e.family.toLowerCase()));
42
- await i(Promise.allSettled(s.map((e) => e.load())).then(() => document.fonts.ready));
54
+ if (c.size === 0) return;
55
+ let f = await r(Promise.all([...l].map((e) => {
56
+ let t = i.get(e);
57
+ if (t) return t;
58
+ let r = (async () => {
59
+ try {
60
+ let t = await fetch(e);
61
+ if (!t.ok) throw Error(`HTTP ${t.status}`);
62
+ let r = [];
63
+ for (let e of a(await t.text())) {
64
+ let t = new FontFace(e.family, e.src, e.descriptors);
65
+ n.add(t), r.push(t);
66
+ }
67
+ return r;
68
+ } catch {
69
+ i.delete(e);
70
+ for (let t of u.get(e) ?? []) d.add(t);
71
+ return [];
72
+ }
73
+ })();
74
+ return i.set(e, r), r;
75
+ }))), p = (Array.isArray(f) ? f : []).flat();
76
+ await r(Promise.allSettled(p.map((e) => e.load())).then((e) => (e.forEach((e, t) => {
77
+ e.status === "rejected" && d.add(p[t].family.replace(/['"]/g, "").toLowerCase());
78
+ }), n.ready))), d.size > 0 && console.warn(`[ooxml] failed to preload web font(s): ${[...d].join(", ")}; falling back to system fonts (text may shift or differ).`);
79
+ }
80
+ //#endregion
81
+ //#region packages/core/src/fonts/scripts.ts
82
+ function c(e) {
83
+ if (!e) return null;
84
+ let t = e.toLowerCase();
85
+ return /[ᄀ-ᇿ㄰-㆏가-힯]/.test(e) ? "kr" : /[぀-ヿ]/.test(e) ? "jp" : /jhenghei|微軟正黑|新細明|細明|pmingliu|mingliu|dfkai|標楷|華康|cns11643|kaiti tc|ming\s*liu/.test(t) || /新細明體|細明體|標楷體|微軟正黑體|華康/.test(e) ? "tc" : /simsun|nsimsun|simhei|simkai|simfang|yahei|dengxian|fangsong|kaiti|youyuan|lisu|stsong|stkaiti|stfangsong|stheiti|stxihei|stzhongsong|songti sc|heiti sc|微软雅黑/.test(t) || /宋体|黑体|楷体|仿宋|等线|微软雅黑|隶书|幼圆/.test(e) ? "sc" : /malgun|batang|gulim|dotum|gungsuh|nanum|new gulim|hancom|hy(gothic|graphic|namu)?/.test(t) ? "kr" : /\bmeiryo\b|\byu\s*(gothic|mincho)\b|yugothic|yumincho|hiragino|\bms\s*(gothic|mincho|pgothic|pmincho|ui\s*gothic)\b|\bms[pg]?(gothic|mincho)\b|ipa(ex)?(gothic|mincho)|noto\s+(sans|serif)\s+jp|游ゴシック|游明朝|MS|メイリオ|ヒラギノ/.test(t) || /游ゴシック|游明朝|MS ゴシック|MS 明朝|MS Pゴシック|メイリオ|ヒラギノ/.test(e) ? "jp" : null;
86
+ }
87
+ function l(e, t) {
88
+ let n = t === "serif" ? "Noto Serif" : "Noto Sans", r = {
89
+ jp: [
90
+ "jp",
91
+ "sc",
92
+ "tc",
93
+ "kr"
94
+ ],
95
+ sc: [
96
+ "sc",
97
+ "tc",
98
+ "jp",
99
+ "kr"
100
+ ],
101
+ tc: [
102
+ "tc",
103
+ "sc",
104
+ "jp",
105
+ "kr"
106
+ ],
107
+ kr: [
108
+ "kr",
109
+ "jp",
110
+ "sc",
111
+ "tc"
112
+ ]
113
+ }, i = {
114
+ kr: "KR",
115
+ sc: "SC",
116
+ tc: "TC",
117
+ jp: "JP"
118
+ };
119
+ return r[e].map((e) => `${n} ${i[e]}`);
43
120
  }
121
+ var u = [
122
+ "Noto Sans",
123
+ "Noto Sans Hebrew",
124
+ "Noto Sans Thai",
125
+ "Noto Sans Devanagari"
126
+ ], d = ["Noto Serif", "Noto Serif Hebrew"], f = (e) => `https://fonts.googleapis.com/css2?family=${e}:wght@400;700&display=swap`, p = {
127
+ "noto sans kr": { url: f("Noto+Sans+KR") },
128
+ "noto sans sc": { url: f("Noto+Sans+SC") },
129
+ "noto sans tc": { url: f("Noto+Sans+TC") },
130
+ "noto sans jp": { url: f("Noto+Sans+JP") },
131
+ "noto serif kr": { url: f("Noto+Serif+KR") },
132
+ "noto serif sc": { url: f("Noto+Serif+SC") },
133
+ "noto serif tc": { url: f("Noto+Serif+TC") },
134
+ "noto serif jp": { url: f("Noto+Serif+JP") },
135
+ "noto sans": { url: f("Noto+Sans") },
136
+ "noto serif": { url: f("Noto+Serif") },
137
+ "noto sans devanagari": { url: f("Noto+Sans+Devanagari") },
138
+ "noto sans thai": { url: f("Noto+Sans+Thai") },
139
+ "noto sans hebrew": { url: f("Noto+Sans+Hebrew") },
140
+ "noto serif hebrew": { url: f("Noto+Serif+Hebrew") }
141
+ }, m = [
142
+ "Noto Sans KR",
143
+ "Noto Sans SC",
144
+ "Noto Sans TC",
145
+ "Noto Sans JP",
146
+ "Noto Serif KR",
147
+ "Noto Serif SC",
148
+ "Noto Serif TC",
149
+ "Noto Serif JP",
150
+ "Noto Sans",
151
+ "Noto Serif",
152
+ "Noto Sans Devanagari",
153
+ "Noto Sans Thai",
154
+ "Noto Sans Hebrew",
155
+ "Noto Serif Hebrew"
156
+ ];
44
157
  //#endregion
45
158
  //#region packages/core/src/chart/axis-scale.ts
46
- function o(e, t = 5) {
159
+ function h(e, t = 5) {
47
160
  if (e === 0) return 1;
48
161
  let n = e / t, r = 10 ** Math.floor(Math.log10(n)), i = n / r;
49
162
  return (i < 1.5 ? 1 : i < 3.5 ? 2 : i < 7.5 ? 5 : 10) * r;
50
163
  }
51
- function s(e, t, n = 0) {
164
+ function g(e, t, n = 0) {
52
165
  if (e <= 0) return t;
53
166
  let r = e + (e - n) / 20;
54
167
  return Math.ceil(r / t) * t;
55
168
  }
56
- function c(e, t) {
169
+ function _(e, t) {
57
170
  if (e >= 0) return 0;
58
171
  let n = Math.floor(e / t) * t;
59
172
  return Math.abs(n - e) < t * 1e-9 ? n - t : n;
60
173
  }
61
174
  //#endregion
62
175
  //#region packages/core/src/chart/chart-number-format.ts
63
- function l(e) {
176
+ function v(e) {
64
177
  return Number.isInteger(e) ? String(e) : e.toFixed(6).replace(/\.?0+$/, "");
65
178
  }
66
- function u(e, t) {
67
- if (!t || t.trim().toLowerCase() === "general") return l(e);
68
- if (d(t)) return f(e, t);
69
- let n = p(t), r;
70
- return r = e > 0 ? n[0] ?? t : e < 0 ? n[1] ?? n[0] ?? t : n[2] ?? n[0] ?? t, r === "" ? "" : (e < 0 && n.length < 2 ? "-" : "") + m(Math.abs(e), r);
179
+ function y(e, t) {
180
+ if (!t || t.trim().toLowerCase() === "general") return v(e);
181
+ if (b(t)) return x(e, t);
182
+ let n = S(t), r;
183
+ return r = e > 0 ? n[0] ?? t : e < 0 ? n[1] ?? n[0] ?? t : n[2] ?? n[0] ?? t, r === "" ? "" : (e < 0 && n.length < 2 ? "-" : "") + C(Math.abs(e), r);
71
184
  }
72
- function d(e) {
185
+ function b(e) {
73
186
  let t = !1;
74
187
  for (let n = 0; n < e.length; n++) {
75
188
  let r = e[n];
@@ -91,7 +204,7 @@ function d(e) {
91
204
  }
92
205
  return !1;
93
206
  }
94
- function f(e, t) {
207
+ function x(e, t) {
95
208
  let n = Date.UTC(1899, 11, 30), r = e < 60 ? e + 1 : e, i = n + Math.floor(r) * 864e5, a = new Date(i), o = a.getUTCFullYear(), s = a.getUTCMonth() + 1, c = a.getUTCDate(), l = (e - Math.floor(e)) * 86400, u = Math.floor(l / 3600), d = Math.floor(l % 3600 / 60), f = Math.floor(l % 60), p = "", m = !1, h = 0;
96
209
  for (; h < t.length;) {
97
210
  let e = t[h];
@@ -146,7 +259,7 @@ function f(e, t) {
146
259
  }
147
260
  return p;
148
261
  }
149
- function p(e) {
262
+ function S(e) {
150
263
  let t = [], n = "";
151
264
  for (let r = 0; r < e.length; r++) {
152
265
  let i = e[r];
@@ -172,7 +285,7 @@ function p(e) {
172
285
  }
173
286
  return t.push(n), t;
174
287
  }
175
- function m(e, t) {
288
+ function C(e, t) {
176
289
  let n = [], r = 0, i = !1, a = !1;
177
290
  for (; r < t.length;) {
178
291
  let e = t[r];
@@ -233,905 +346,16 @@ function m(e, t) {
233
346
  if (!i) return n.map((e) => e.text).join("");
234
347
  let o = a ? e * 100 : e, s = "";
235
348
  for (let e of n) e.kind === "num" && (s += e.text);
236
- let c = h(o, s), l = !1;
349
+ let c = w(o, s), l = !1;
237
350
  return n.map((e) => e.kind === "lit" ? e.text : l ? "" : (l = !0, c)).join("");
238
351
  }
239
- function h(e, t) {
352
+ function w(e, t) {
240
353
  let n = t.indexOf("."), r = n >= 0 ? t.slice(0, n) : t, i = n >= 0 ? t.slice(n + 1) : "", a = /,/.test(r), o = (i.match(/[#0?]/g) ?? []).length, s = (r.replace(/,/g, "").match(/0/g) ?? []).length, [c, l = ""] = e.toFixed(o).split("."), u = c.padStart(s, "0"), d = a ? u.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : u;
241
354
  return o === 0 ? d : `${d}.${l.padEnd(o, "0")}`;
242
355
  }
243
356
  //#endregion
244
- //#region packages/core/src/units.ts
245
- var g = 12700, _ = 9525, v = 4 / 3, y = [
246
- "4472C4",
247
- "ED7D31",
248
- "A9D18E",
249
- "FF0000",
250
- "70AD47",
251
- "4BACC6",
252
- "FFC000",
253
- "9E480E",
254
- "843C0C",
255
- "636363",
256
- "255E91",
257
- "967300"
258
- ];
259
- function b(e, t) {
260
- return t?.color ? `#${t.color}` : `#${y[e % y.length]}`;
261
- }
262
- function x(e, t) {
263
- let n = t.dataPointColors?.[e];
264
- return n ? `#${n}` : `#${y[e % y.length]}`;
265
- }
266
- function S(e, t) {
267
- let n = e.startsWith("#") ? e.slice(1) : e;
268
- return `rgba(${parseInt(n.slice(0, 2), 16)},${parseInt(n.slice(2, 4), 16)},${parseInt(n.slice(4, 6), 16)},${t})`;
269
- }
270
- function C(e, t, n, r, i, a, o, s) {
271
- e.save(), e.font = `${s}px sans-serif`, e.fillStyle = "#555", o === "cat" ? (e.textAlign = "center", e.textBaseline = "bottom", e.fillText(t.slice(0, 30), n + i / 2, r + a + s + 2)) : (e.translate(n - s - 4, r + a / 2), e.rotate(-Math.PI / 2), e.textAlign = "center", e.textBaseline = "middle", e.fillText(t.slice(0, 30), 0, 0)), e.restore();
272
- }
273
- function w(e) {
274
- return e && (e === "line" || e === "stackedLine" || e === "stackedLinePct" || e === "radar" || e === "scatter") ? "line" : "fill";
275
- }
276
- function T(e, t, n, r, i, a, o) {
277
- if (e.fillStyle = n, t === "line") {
278
- e.strokeStyle = n;
279
- let t = e.lineWidth;
280
- e.lineWidth = Math.max(1.5, o * .15), e.beginPath();
281
- let s = i + o / 2;
282
- e.moveTo(r, s), e.lineTo(r + a, s), e.stroke(), e.lineWidth = t;
283
- } else e.fillRect(r, i, a, o);
284
- }
285
- function E(e, t, n, r, i, a, o = "vertical", s) {
286
- let c = w(s);
287
- if (o === "horizontal") {
288
- let o = Math.max(9, Math.min(12, a * .7));
289
- e.font = `${o}px sans-serif`, e.textBaseline = "middle";
290
- let s = t.map((e, t) => e.name || `Series ${t + 1}`), l = s.map((t) => 14 + e.measureText(t.slice(0, 30)).width), u = n + (i - (l.reduce((e, t) => e + t, 0) + 12 * Math.max(0, t.length - 1))) / 2, d = r + a / 2;
291
- for (let n = 0; n < t.length; n++) T(e, c, b(n, t[n]), u, d - o / 2, 10, o), e.fillStyle = "#333", e.textAlign = "left", e.fillText(s[n].slice(0, 30), u + 10 + 4, d), u += l[n] + 12;
292
- return;
293
- }
294
- let l = Math.max(9, Math.min(12, a / (t.length + 1)));
295
- e.font = `${l}px sans-serif`, e.textBaseline = "middle";
296
- let u = l + 4, d = r + (a - u * t.length) / 2;
297
- for (let r = 0; r < t.length; r++) {
298
- T(e, c, b(r, t[r]), n, d, 10, l), e.fillStyle = "#333", e.textAlign = "left";
299
- let i = t[r].name || `Series ${r + 1}`;
300
- e.fillText(i.slice(0, 20), n + 10 + 4, d + l / 2), d += u;
301
- }
302
- }
303
- function D(e, t, n) {
304
- if (!e.showLegend) return null;
305
- let r = e.legendPos ?? "r", i = r === "l" ? "l" : r === "t" ? "t" : r === "b" ? "b" : "r";
306
- return i === "r" || i === "l" ? {
307
- side: i,
308
- reserveW: Math.max(80, t * .22),
309
- reserveH: 0
310
- } : {
311
- side: i,
312
- reserveW: 0,
313
- reserveH: Math.max(18, n * .08)
314
- };
315
- }
316
- function O(e, t, n, r, i, a, o, s, c, l, u, d) {
317
- if (!n) return;
318
- let f = t.legendManualLayout;
319
- if (f && f.xMode === "edge" && f.yMode === "edge" && f.w > 0 && f.h > 0) {
320
- let n = r + f.x * a, s = i + f.y * o, c = f.w * a, l = f.h * o, u = c >= l ? "horizontal" : "vertical";
321
- E(e, t.series, n, s, c, l, u, t.chartType);
322
- return;
323
- }
324
- switch (n.side) {
325
- case "r":
326
- E(e, t.series, r + a - n.reserveW + 4, c, n.reserveW - 8, u, "vertical", t.chartType);
327
- break;
328
- case "l":
329
- E(e, t.series, r + 4, c, n.reserveW - 8, u, "vertical", t.chartType);
330
- break;
331
- case "t":
332
- E(e, t.series, s, i + d, l, n.reserveH, "horizontal", t.chartType);
333
- break;
334
- case "b":
335
- E(e, t.series, s, i + o - n.reserveH, l, n.reserveH, "horizontal", t.chartType);
336
- break;
337
- }
338
- }
339
- function k(e, t, n, r, i, a, o) {
340
- if (t === "none" || !t) return;
341
- let s = o ? Math.max(4, o + 2) : 4, c = e.strokeStyle, l = e.lineWidth;
342
- if (e.strokeStyle = a ?? "#888", e.lineWidth = o ?? 1, e.beginPath(), n === "val") {
343
- let n = r, a = i, o = t === "out" || t === "cross" ? -s : 0, c = t === "in" || t === "cross" ? s : 0;
344
- e.moveTo(n + o, a), e.lineTo(n + c, a);
345
- } else {
346
- let n = r, a = i, o = t === "out" || t === "cross" ? s : 0, c = t === "in" || t === "cross" ? -s : 0;
347
- e.moveTo(a, n + o), e.lineTo(a, n + c);
348
- }
349
- e.stroke(), e.strokeStyle = c, e.lineWidth = l;
350
- }
351
- function A(e, t, n) {
352
- return e.titleFontSizeHpt ? e.titleFontSizeHpt / 100 * n : Math.max(10, t * .085);
353
- }
354
- function j(e, t, n) {
355
- return e ? e / 100 * n : Math.max(8, t * .045);
356
- }
357
- function M(e, t, n, r, i, a) {
358
- t.title && (e.font = `bold ${a}px ${t.titleFontFace ? `"${t.titleFontFace}", Calibri, Arial, sans-serif` : "Calibri, Arial, sans-serif"}`, e.fillStyle = t.titleFontColor ? `#${t.titleFontColor}` : "#333", e.textAlign = "center", e.textBaseline = "top", e.fillText(t.title, n + i / 2, r));
359
- }
360
- function N(e) {
361
- if (e.categories.length > 0) return e.categories;
362
- let t = e.series[0];
363
- if (t?.categories && t.categories.length > 0) return t.categories;
364
- let n = 0;
365
- for (let t of e.series) t.values.length > n && (n = t.values.length);
366
- return n > 0 ? Array.from({ length: n }, (e, t) => String(t + 1)) : [];
367
- }
368
- function P(e, t, n, r, i, a, o, s, c) {
369
- let l = s ?? "outEnd";
370
- if (e.fillStyle = c ? `#${c}` : "#333", o === "vertical") {
371
- let o = n + a / 2;
372
- l === "inBase" ? (e.textAlign = "center", e.textBaseline = "bottom", e.fillText(t, o, r + i - 2)) : l === "inEnd" ? (e.textAlign = "center", e.textBaseline = "top", e.fillText(t, o, r + 2)) : l === "ctr" ? (e.textAlign = "center", e.textBaseline = "middle", e.fillText(t, o, r + i / 2)) : (e.textAlign = "center", e.textBaseline = "bottom", e.fillText(t, o, r - 1));
373
- } else {
374
- let o = r + a / 2;
375
- l === "inBase" ? (e.textAlign = "left", e.textBaseline = "middle", e.fillText(t, n + 4, o)) : l === "inEnd" ? (e.textAlign = "right", e.textBaseline = "middle", e.fillText(t, n + i - 4, o)) : l === "ctr" ? (e.textAlign = "center", e.textBaseline = "middle", e.fillText(t, n + i / 2, o)) : (e.textAlign = "left", e.textBaseline = "middle", e.fillText(t, n + i + 2, o));
376
- }
377
- }
378
- function F(e, t, n, r) {
379
- let { x: i, y: a, w: c, h: l } = n, d = t.chartType === "clusteredBarH" || t.chartType === "stackedBarH" || t.chartType === "stackedBarHPct", f = t.chartType.startsWith("stacked"), p = t.chartType === "stackedBarPct" || t.chartType === "stackedBarHPct", m = t.series.filter((e) => e.seriesType !== "line"), h = t.series.filter((e) => e.seriesType === "line"), _ = N(t), v = _.length;
380
- if (v === 0) return;
381
- let y = t.title ? A(t, l, r) : 0, x = t.title ? l * .02 : 0, S = t.title ? l * .025 : 0, w = t.title ? y + x + S : 0, T = D(t, c, l), E = T?.side === "r" ? T.reserveW : 0, k = T?.side === "l" ? T.reserveW : 0, j = T?.side === "t" ? T.reserveH : 0, F = T?.side === "b" ? T.reserveH : 0, I = Math.max(8, Math.min(10, l * .045)), L = t.catAxisTitle ? I + 4 : 0, R = t.valAxisTitle ? I + 4 : 0, z = {
382
- t: w + j + l * .02,
383
- r: E + c * .03,
384
- b: l * .14 + L + F,
385
- l: c * .12 + R + k
386
- };
387
- d && (z.l = (t.catAxisHidden ? c * .03 : c * .22) + R + k, z.b = (t.valAxisHidden ? l * .02 : l * .08) + L + F), M(e, t, i, a + x, c, y);
388
- let B = t.plotAreaManualLayout, V, H, U, W;
389
- if (B && B.w != null && B.h != null ? (V = i + B.x * c, H = a + B.y * l, U = B.w * c, W = B.h * l) : (V = i + z.l, H = a + z.t, U = c - z.l - z.r, W = l - z.t - z.b), U <= 0 || W <= 0) return;
390
- t.plotAreaBg && (e.fillStyle = `#${t.plotAreaBg}`, e.fillRect(V, H, U, W));
391
- let G = 0;
392
- for (let e = 0; e < v; e++) {
393
- let t = 0;
394
- for (let n of m) {
395
- let r = n.values[e] ?? 0;
396
- f ? t += Math.abs(r) : G = Math.max(G, Math.abs(r));
397
- }
398
- f && (G = Math.max(G, t));
399
- }
400
- p && (G = 100), t.valMax != null && (G = t.valMax), G === 0 && (G = 1);
401
- let K = o(G), q = t.valMax ?? s(G, K), J = "#e0e0e0", ee = Math.round(q / K);
402
- if (e.textBaseline = "middle", e.font = `${Math.max(8, Math.min(11, W / 20))}px sans-serif`, e.fillStyle = t.valAxisFontColor ? `#${t.valAxisFontColor}` : "#555", !t.valAxisHidden) for (let n = 0; n <= ee; n++) {
403
- let r = n * K, i = p ? `${Math.round(r)}%` : u(r, t.valAxisFormatCode);
404
- if (d) {
405
- let t = V + r / q * U;
406
- e.strokeStyle = n === 0 ? "#aaa" : J, e.lineWidth = n === 0 ? 1 : .5, e.beginPath(), e.moveTo(t, H), e.lineTo(t, H + W), e.stroke(), e.textAlign = "center", e.fillText(i, t, H + W + 10);
407
- } else {
408
- let t = H + W - r / q * W;
409
- e.strokeStyle = n === 0 ? "#aaa" : J, e.lineWidth = n === 0 ? 1 : .5, e.beginPath(), e.moveTo(V, t), e.lineTo(V + U, t), e.stroke(), e.textAlign = "right", e.fillText(i, V - 4, t);
410
- }
411
- }
412
- let Y = t.catAxisLineColor ? `#${t.catAxisLineColor}` : "#aaa", te = t.valAxisLineColor ? `#${t.valAxisLineColor}` : "#aaa", ne = t.catAxisLineWidthEmu ? Math.max(.5, t.catAxisLineWidthEmu / g) : 1, re = t.valAxisLineWidthEmu ? Math.max(.5, t.valAxisLineWidthEmu / g) : 1, ie = (t, n, r, i, a, o) => {
413
- e.strokeStyle = a, e.lineWidth = o, e.beginPath(), e.moveTo(t, n), e.lineTo(r, i), e.stroke();
414
- }, ae = !t.catAxisHidden && !t.catAxisLineHidden, oe = !t.valAxisHidden && !t.valAxisLineHidden && t.valAxisLineColor != null;
415
- d ? (ae && ie(V, H, V, H + W, Y, ne), oe && ie(V, H + W, V + U, H + W, te, re)) : (ae && ie(V, H + W, V + U, H + W, Y, ne), oe && ie(V, H, V, H + W, te, re));
416
- let X = d ? W / v : U / v, se = f ? 1 : Math.max(1, m.length), ce = f ? 0 : t.barOverlap ?? 0, le = t.barGapWidth ?? 150, Z = X / (1 + (se - 1) * (1 - ce / 100) + le / 100), ue = f ? 0 : Z * (1 - ce / 100), Q = (X - (Z + (se - 1) * ue)) / 2;
417
- for (let n = 0; n < v; n++) {
418
- let i = 0, a = 0;
419
- if (p) {
420
- for (let e of m) a += Math.abs(e.values[n] ?? 0);
421
- a === 0 && (a = 1);
422
- }
423
- for (let o = 0; o < m.length; o++) {
424
- let s = m[o], c = s.values[n] ?? 0, l = p ? Math.abs(c) / a * 100 : Math.abs(c), h = b(o, s);
425
- if (d) {
426
- let a = f ? o : m.length - 1 - o, c = f ? H + (v - 1 - n) * X + Q : H + (v - 1 - n) * X + Q + a * ue, d = l / q * U, g = f ? V + i / q * U : V;
427
- e.fillStyle = h, e.fillRect(g, c, d, Z), t.showDataLabels && l > 0 && (e.font = `bold ${t.dataLabelFontSizeHpt ? t.dataLabelFontSizeHpt / 100 * r : Math.max(7, Math.min(11, Z * .6))}px sans-serif`, P(e, p ? `${Math.round(l)}%` : u(l, t.dataLabelFormatCode ?? s.valFormatCode ?? null), g, c, d, Z, "horizontal", t.dataLabelPosition ?? null, s.labelColor ?? t.dataLabelFontColor ?? null));
428
- } else {
429
- let a = f ? V + n * X + Q : V + n * X + Q + o * ue, c = l / q * W, d = H + W - (f ? i + l : l) / q * W;
430
- e.fillStyle = h, e.fillRect(a, d, Z, c), t.showDataLabels && l > 0 && (e.font = `bold ${t.dataLabelFontSizeHpt ? t.dataLabelFontSizeHpt / 100 * r : Math.max(7, Math.min(11, Z * .6))}px sans-serif`, P(e, p ? `${Math.round(l)}%` : u(l, t.dataLabelFormatCode ?? s.valFormatCode ?? null), a, d, c, Z, "vertical", t.dataLabelPosition ?? null, s.labelColor ?? t.dataLabelFontColor ?? null));
431
- }
432
- f && (i += l);
433
- }
434
- }
435
- if (!t.catAxisHidden) {
436
- e.fillStyle = t.catAxisFontColor ? `#${t.catAxisFontColor}` : "#555", e.font = `${Math.max(8, Math.min(11, X * .5))}px sans-serif`;
437
- for (let t = 0; t < v; t++) {
438
- let n = (_[t] ?? "").toString().slice(0, 12);
439
- if (d) {
440
- let r = H + (v - 1 - t) * X + X / 2;
441
- e.textAlign = "right", e.textBaseline = "middle", e.fillText(n, V - 4, r);
442
- } else {
443
- let r = V + t * X + X / 2;
444
- e.textAlign = "center", e.textBaseline = "top", e.fillText(n, r, H + W + 3);
445
- }
446
- }
447
- }
448
- if (h.length > 0 && !d) for (let t = 0; t < h.length; t++) {
449
- let n = h[t], r = b(m.length + t, n);
450
- e.strokeStyle = r, e.lineWidth = 2, e.setLineDash([]), e.beginPath();
451
- let i = !1;
452
- for (let t = 0; t < v; t++) {
453
- let r = n.values[t];
454
- if (r == null) {
455
- i = !1;
456
- continue;
457
- }
458
- let a = V + t * X + X / 2, o = H + W - r / q * W;
459
- i ? e.lineTo(a, o) : (e.moveTo(a, o), i = !0);
460
- }
461
- if (e.stroke(), n.showMarker !== !1) for (let t = 0; t < v; t++) {
462
- let i = n.values[t];
463
- if (i == null) continue;
464
- let a = V + t * X + X / 2, o = H + W - i / q * W;
465
- e.fillStyle = r, e.beginPath(), e.arc(a, o, 3, 0, Math.PI * 2), e.fill();
466
- }
467
- }
468
- O(e, d && !f ? {
469
- ...t,
470
- series: [...t.series].reverse()
471
- } : t, T, i, a, c, l, V, H, U, W, w + 2), t.catAxisTitle && C(e, t.catAxisTitle, V, H, U, W, "cat", I), t.valAxisTitle && C(e, t.valAxisTitle, V, H, U, W, "val", I);
472
- }
473
- function I(e, t, n, r) {
474
- let { x: i, y: a, w: d, h: f } = n, p = N(t), m = p.length;
475
- if (m === 0) return;
476
- let h = t.title ? A(t, f, r) : 0, g = t.title ? f * .045 : 0, _ = t.title ? f * .035 : 0, v = t.title ? h + g + _ : 0, y = D(t, d, f), x = y?.side === "r" ? y.reserveW : 0, S = y?.side === "l" ? y.reserveW : 0, w = y?.side === "t" ? y.reserveH : 0, T = y?.side === "b" ? y.reserveH : 0, E = j(t.catAxisFontSizeHpt, f, r), P = j(t.valAxisFontSizeHpt, f, r), F = Math.max(E, P), I = t.catAxisTitle ? F + 4 : 0, L = t.valAxisTitle ? F + 4 : 0, R = {
477
- t: v + w + P / 2 + 2,
478
- r: x + d * .05,
479
- b: E + 12 + I + T,
480
- l: P * 2.2 + 10 + L + S
481
- };
482
- M(e, t, i, a + g, d, h);
483
- let z = i + R.l, B = a + R.t, V = d - R.l - R.r, H = f - R.t - R.b;
484
- if (V <= 0 || H <= 0) return;
485
- t.plotAreaBg && (e.fillStyle = `#${t.plotAreaBg}`, e.fillRect(z, B, V, H));
486
- let U = Infinity, W = -Infinity;
487
- for (let e of t.series) for (let t of e.values) t != null && (U = Math.min(U, t), W = Math.max(W, t));
488
- isFinite(U) || (U = 0, W = 1), t.valMin == null ? U > 0 && (U = 0) : U = t.valMin, t.valMax == null ? W < 0 && (W = 0) : W = t.valMax, W === U && (W = U + 1);
489
- let G = o(W - U), K = t.valMin ?? c(U, G), q = t.valMax ?? s(W, G), J = q - K;
490
- if (J === 0) return;
491
- let ee = (e) => B + H - (e - K) / J * H, Y = t.catAxisCrossBetween === "midCat" ? (e) => z + (m === 1 ? V / 2 : e / (m - 1) * V) : (e) => z + (e + .5) / m * V;
492
- if (!t.valAxisHidden) {
493
- let n = Math.round((q - K) / G);
494
- e.font = `${P}px sans-serif`, e.textBaseline = "middle";
495
- for (let r = 0; r <= n; r++) {
496
- let n = K + r * G, i = ee(n);
497
- e.strokeStyle = n === 0 ? "#aaa" : "#e0e0e0", e.lineWidth = n === 0 ? 1 : .5, e.beginPath(), e.moveTo(z, i), e.lineTo(z + V, i), e.stroke(), k(e, t.valAxisMajorTickMark, "val", z, i), e.fillStyle = t.valAxisFontColor ? `#${t.valAxisFontColor}` : "#555", e.textAlign = "right", e.fillText(u(n, t.valAxisFormatCode), z - 6, i);
498
- }
499
- }
500
- e.strokeStyle = "#aaa", e.lineWidth = 1, !t.catAxisHidden && !t.catAxisLineHidden && (e.beginPath(), e.moveTo(z, B + H), e.lineTo(z + V, B + H), e.stroke()), !t.valAxisHidden && !t.valAxisLineHidden && (e.beginPath(), e.moveTo(z, B), e.lineTo(z, B + H), e.stroke());
501
- let te = Math.max(1, 2.25 * r), ne = Math.max(2, 2.5 * r), re = j(t.dataLabelFontSizeHpt, f, r);
502
- for (let n = 0; n < t.series.length; n++) {
503
- let r = t.series[n], i = b(n, r);
504
- e.strokeStyle = i, e.lineWidth = te, e.setLineDash([]), e.beginPath();
505
- let a = !1;
506
- for (let t = 0; t < m; t++) {
507
- let n = r.values[t];
508
- if (n == null) {
509
- a = !1;
510
- continue;
511
- }
512
- let i = Y(t), o = ee(n);
513
- a ? e.lineTo(i, o) : (e.moveTo(i, o), a = !0);
514
- }
515
- e.stroke(), e.fillStyle = i;
516
- let o = r.showMarker !== !1;
517
- for (let n = 0; n < m; n++) {
518
- let a = r.values[n];
519
- if (a != null && (o && (e.beginPath(), e.arc(Y(n), ee(a), ne, 0, Math.PI * 2), e.fill()), t.showDataLabels)) {
520
- e.font = `${re}px sans-serif`, e.fillStyle = "#333", e.textAlign = "center", e.textBaseline = "bottom";
521
- let t = o ? ne + 1 : 2;
522
- e.fillText(l(a), Y(n), ee(a) - t), e.fillStyle = i;
523
- }
524
- }
525
- }
526
- if (!t.catAxisHidden) {
527
- let n = Math.max(1, Math.ceil(m / 8)), r = t.catAxisFontColor ? `#${t.catAxisFontColor}` : "#555";
528
- e.fillStyle = r, e.textAlign = "center", e.textBaseline = "top", e.font = `${E}px sans-serif`;
529
- for (let i = 0; i < m; i += n) {
530
- let n = Y(i);
531
- k(e, t.catAxisMajorTickMark, "cat", B + H, n), e.fillStyle = r, e.fillText((p[i] ?? "").toString().slice(0, 10), n, B + H + 5);
532
- }
533
- }
534
- O(e, t, y, i, a, d, f, z, B, V, H, v + 2), t.catAxisTitle && C(e, t.catAxisTitle, z, B, V, H, "cat", F), t.valAxisTitle && C(e, t.valAxisTitle, z, B, V, H, "val", F);
535
- }
536
- function L(e, t, n, r) {
537
- let { x: i, y: a, w: c, h: l } = n, d = N(t), f = d.length;
538
- if (f === 0) return;
539
- let p = t.chartType === "stackedArea" || t.chartType === "stackedAreaPct", m = t.title ? A(t, l, r) : 0, h = t.title ? l * .035 : 0, g = t.title ? l * .035 : 0, _ = t.title ? m + h + g : 0, v = D(t, c, l), y = v?.side === "r" ? v.reserveW : 0, x = v?.side === "l" ? v.reserveW : 0, w = v?.side === "t" ? v.reserveH : 0, T = v?.side === "b" ? v.reserveH : 0, E = Math.max(8, Math.min(10, l * .045)), k = t.catAxisTitle ? E + 4 : 0, j = t.valAxisTitle ? E + 4 : 0, P = {
540
- t: _ + w + l * .02,
541
- r: y + c * .05,
542
- b: l * .14 + k + T,
543
- l: c * .12 + j + x
544
- };
545
- M(e, t, i, a + h, c, m);
546
- let F = i + P.l, I = a + P.t, L = c - P.l - P.r, R = l - P.t - P.b;
547
- if (L <= 0 || R <= 0) return;
548
- t.plotAreaBg && (e.fillStyle = `#${t.plotAreaBg}`, e.fillRect(F, I, L, R));
549
- let z = 0;
550
- for (let e = 0; e < f; e++) if (p) {
551
- let n = 0;
552
- for (let r of t.series) n += r.values[e] ?? 0;
553
- z = Math.max(z, n);
554
- } else for (let n of t.series) z = Math.max(z, n.values[e] ?? 0);
555
- t.valMax != null && (z = t.valMax), z === 0 && (z = 1);
556
- let B = o(z), V = t.valMax ?? s(z, B), H = (e) => F + (f === 1 ? L / 2 : e / (f - 1) * L), U = (e) => I + R - e / V * R;
557
- if (!t.valAxisHidden) {
558
- e.font = `${Math.max(8, Math.min(11, R / 20))}px sans-serif`, e.textBaseline = "middle";
559
- let n = Math.round(V / B);
560
- for (let r = 0; r <= n; r++) {
561
- let n = r * B, i = U(n);
562
- e.strokeStyle = r === 0 ? "#aaa" : "#e0e0e0", e.lineWidth = r === 0 ? 1 : .5, e.beginPath(), e.moveTo(F, i), e.lineTo(F + L, i), e.stroke(), e.fillStyle = t.valAxisFontColor ? `#${t.valAxisFontColor}` : "#555", e.textAlign = "right", e.fillText(u(n, t.valAxisFormatCode), F - 4, i);
563
- }
564
- }
565
- !t.catAxisHidden && !t.catAxisLineHidden && (e.strokeStyle = "#aaa", e.lineWidth = 1, e.beginPath(), e.moveTo(F, I + R), e.lineTo(F + L, I + R), e.stroke());
566
- let W = p ? Array(f).fill(0) : null;
567
- for (let n = t.series.length - 1; n >= 0; n--) {
568
- let r = t.series[n], i = b(n, r), a = I + R;
569
- if (e.beginPath(), p && W) {
570
- for (let t = 0; t < f; t++) {
571
- let n = (r.values[t] ?? 0) + W[t], i = H(t), a = U(n);
572
- t === 0 ? e.moveTo(i, a) : e.lineTo(i, a);
573
- }
574
- for (let t = f - 1; t >= 0; t--) e.lineTo(H(t), U(W[t]));
575
- for (let e = 0; e < f; e++) W[e] += r.values[e] ?? 0;
576
- } else {
577
- e.moveTo(H(0), a);
578
- for (let t = 0; t < f; t++) e.lineTo(H(t), U(r.values[t] ?? 0));
579
- e.lineTo(H(f - 1), a);
580
- }
581
- e.closePath(), e.fillStyle = S(i, .6), e.fill(), e.strokeStyle = i, e.lineWidth = 1.5, e.setLineDash([]), e.stroke();
582
- }
583
- if (!t.catAxisHidden) {
584
- let n = Math.max(1, Math.ceil(f / 8));
585
- e.fillStyle = t.catAxisFontColor ? `#${t.catAxisFontColor}` : "#555", e.textAlign = "center", e.textBaseline = "top", e.font = `${Math.max(8, Math.min(11, L / f * .8))}px sans-serif`;
586
- for (let t = 0; t < f; t += n) e.fillText((d[t] ?? "").toString().slice(0, 10), H(t), I + R + 3);
587
- }
588
- O(e, t, v, i, a, c, l, F, I, L, R, _ + 2), t.catAxisTitle && C(e, t.catAxisTitle, F, I, L, R, "cat", E), t.valAxisTitle && C(e, t.valAxisTitle, F, I, L, R, "val", E);
589
- }
590
- function R(e, t, n, r, i) {
591
- let { x: a, y: o, w: s, h: c } = n, l = t.series[0];
592
- if (!l) return;
593
- let u = l.categories && l.categories.length > 0 ? l.categories : t.categories, d = l.values.map((e) => Math.abs(e ?? 0)), f = d.reduce((e, t) => e + t, 0);
594
- if (f === 0) return;
595
- let p = t.title ? A(t, c, i) : 0, m = t.title ? c * .035 : 0, h = t.title ? c * .035 : 0, g = t.title ? p + m + h : 0;
596
- M(e, t, a, o + m, s, p);
597
- let _ = t.showLegend ? (() => {
598
- let e = t.legendPos ?? "r", n = e === "l" ? "l" : e === "t" ? "t" : e === "b" ? "b" : "r";
599
- return n === "r" || n === "l" ? {
600
- side: n,
601
- reserveW: Math.max(80, s * .28),
602
- reserveH: 0
603
- } : {
604
- side: n,
605
- reserveW: 0,
606
- reserveH: Math.max(18, c * .08)
607
- };
608
- })() : null, v = _?.side === "r" ? _.reserveW : 0, b = _?.side === "l" ? _.reserveW : 0, S = _?.side === "t" ? _.reserveH : 0, C = _?.side === "b" ? _.reserveH : 0, w = s - v - b, T = c - g - S - C - c * .02, E = a + b + w / 2, D = o + g + S + c * .02 + T / 2, k = Math.min(w, T) * .42, j = r ? k * .5 : 0, N = -Math.PI / 2;
609
- for (let n = 0; n < d.length; n++) {
610
- let i = d[n] / f * Math.PI * 2, a = x(n, l);
611
- if (e.beginPath(), e.moveTo(E, D), e.arc(E, D, k, N, N + i), e.closePath(), e.fillStyle = a, e.fill(), e.strokeStyle = "#fff", e.lineWidth = 1, e.stroke(), t.showDataLabels && i > .15) {
612
- let t = N + i / 2, a = k * (r ? .75 : .6), o = E + Math.cos(t) * a, s = D + Math.sin(t) * a, c = Math.round(d[n] / f * 100);
613
- e.font = `bold ${Math.max(8, k * .1)}px sans-serif`, e.fillStyle = "#fff", e.textAlign = "center", e.textBaseline = "middle", e.fillText(`${c}%`, o, s);
614
- }
615
- N += i;
616
- }
617
- if (r && (e.beginPath(), e.arc(E, D, j, 0, Math.PI * 2), e.fillStyle = "#fff", e.fill()), _) {
618
- let n = d.map((e, t) => ({
619
- name: (u[t] ?? `Item ${t + 1}`).toString(),
620
- color: l.dataPointColors?.[t] ?? l.color ?? y[t % y.length],
621
- values: []
622
- })), r = E - w / 2;
623
- O(e, {
624
- ...t,
625
- series: n
626
- }, _, a, o, s, c, r, D - T / 2, w, T, g + 2);
627
- }
628
- }
629
- function z(e, t, n, r) {
630
- let { x: i, y: a, w: c, h: u } = n, d = N(t), f = d.length;
631
- if (f < 3) return;
632
- let p = t.title ? A(t, u, r) : 0, m = t.title ? u * .035 : 0, h = t.title ? u * .035 : 0, g = t.title ? p + m + h : 0, _ = D(t, c, u), v = _?.side === "r" ? _.reserveW : 0, y = _?.side === "l" ? _.reserveW : 0, x = _?.side === "t" ? _.reserveH : 0, C = _?.side === "b" ? _.reserveH : 0;
633
- M(e, t, i, a + m, c, p);
634
- let w = c - v - y, T = u - g - x - C - u * .02, E = i + y + w / 2, k = a + g + x + u * .02 + T / 2, P = Math.min(w, T) * .38, F = 0;
635
- for (let e of t.series) for (let t of e.values) F = Math.max(F, t ?? 0);
636
- t.valMax != null && (F = t.valMax), F === 0 && (F = 1);
637
- let I = o(F), L = t.valMax ?? s(F, I), R = -Math.PI / 2, z = (e) => R + e / f * Math.PI * 2, B = Math.round(L / I);
638
- e.strokeStyle = "#ddd", e.lineWidth = .5;
639
- for (let t = 1; t <= B; t++) {
640
- let n = t / B * P;
641
- e.beginPath();
642
- for (let t = 0; t < f; t++) {
643
- let r = z(t), i = E + Math.cos(r) * n, a = k + Math.sin(r) * n;
644
- t === 0 ? e.moveTo(i, a) : e.lineTo(i, a);
645
- }
646
- e.closePath(), e.stroke();
647
- }
648
- e.strokeStyle = "#bbb", e.lineWidth = .5;
649
- for (let t = 0; t < f; t++) {
650
- let n = z(t);
651
- e.beginPath(), e.moveTo(E, k), e.lineTo(E + Math.cos(n) * P, k + Math.sin(n) * P), e.stroke();
652
- }
653
- if (!t.valAxisHidden) {
654
- e.font = `${j(t.valAxisFontSizeHpt, u, r)}px sans-serif`, e.fillStyle = "#555", e.textAlign = "right", e.textBaseline = "middle";
655
- for (let t = 1; t <= B; t++) {
656
- let n = t / B * L, r = t / B * P;
657
- e.fillText(l(n), E - 3, k - r);
658
- }
659
- }
660
- e.font = `${Math.max(8, Math.min(11, P * .2))}px sans-serif`, e.fillStyle = "#444", e.textBaseline = "middle";
661
- for (let t = 0; t < f; t++) {
662
- let n = z(t), r = E + Math.cos(n) * (P + 12), i = k + Math.sin(n) * (P + 12);
663
- e.textAlign = Math.cos(n) < -.1 ? "right" : Math.cos(n) > .1 ? "left" : "center", e.fillText((d[t] ?? "").toString().slice(0, 12), r, i);
664
- }
665
- let V = t.radarStyle === "filled", H = Math.max(2, P * .025);
666
- for (let n = 0; n < t.series.length; n++) {
667
- let r = t.series[n], i = b(n, r), a = [];
668
- for (let e = 0; e < f; e++) {
669
- let t = r.values[e];
670
- if (t == null) {
671
- a.push(null);
672
- continue;
673
- }
674
- let n = t / L, i = z(e);
675
- a.push([E + Math.cos(i) * P * n, k + Math.sin(i) * P * n]);
676
- }
677
- e.beginPath();
678
- let o = !1;
679
- for (let t of a) {
680
- if (t == null) {
681
- o = !1;
682
- continue;
683
- }
684
- o ? e.lineTo(t[0], t[1]) : (e.moveTo(t[0], t[1]), o = !0);
685
- }
686
- let s = a.every((e) => e != null);
687
- if (V && s ? (e.closePath(), e.fillStyle = S(i, .25), e.fill()) : s && e.closePath(), e.strokeStyle = i, e.lineWidth = 2, e.stroke(), !V && r.showMarker !== !1) {
688
- e.fillStyle = i;
689
- for (let t of a) t != null && (e.beginPath(), e.arc(t[0], t[1], H, 0, Math.PI * 2), e.fill());
690
- }
691
- }
692
- O(e, t, _, i, a, c, u, E - w / 2, k - T / 2, w, T, g + 2);
693
- }
694
- function B(e, t, n, r) {
695
- let { x: i, y: a, w: s, h: c } = n, l = t.title ? A(t, c, r) : 0, d = t.title ? c * .035 : 0, f = t.title ? c * .035 : 0, p = t.title ? l + d + f : 0, m = D(t, s, c), h = m?.side === "r" ? m.reserveW : 0, _ = m?.side === "l" ? m.reserveW : 0, v = m?.side === "t" ? m.reserveH : 0, y = m?.side === "b" ? m.reserveH : 0, x = Math.max(8, Math.min(10, c * .045)), S = t.catAxisTitle ? x + 4 : 0, w = t.valAxisTitle ? x + 4 : 0;
696
- if (t.title) {
697
- let n = t.titleManualLayout;
698
- n && (n.x !== void 0 || n.y !== void 0) ? M(e, t, i + n.x * s, a + n.y * c, (n.w ?? .5) * s, l) : M(e, t, i, a + d, s, l);
699
- }
700
- let T = t.plotAreaManualLayout, E, j, N, P;
701
- if (T && T.w != null && T.h != null) E = i + T.x * s, j = a + T.y * c, N = T.w * s, P = T.h * c;
702
- else {
703
- let e = {
704
- t: p + v + c * .02,
705
- r: h + s * .05,
706
- b: (t.catAxisHidden ? c * .04 : c * .12) + S + y,
707
- l: (t.valAxisHidden ? s * .04 : s * .12) + w + _
708
- };
709
- E = i + e.l, j = a + e.t, N = s - e.l - e.r, P = c - e.t - e.b;
710
- }
711
- if (N <= 0 || P <= 0) return;
712
- t.plotAreaBg && (e.fillStyle = `#${t.plotAreaBg}`, e.fillRect(E, j, N, P));
713
- let F = [], I = [];
714
- for (let e of t.series) {
715
- let t = e.categories ?? [];
716
- for (let e of t) {
717
- let t = parseFloat(e);
718
- isNaN(t) || F.push(t);
719
- }
720
- for (let t of e.values) t != null && I.push(t);
721
- }
722
- let L = F.length === 0;
723
- if (L) {
724
- let e = Math.max(...t.series.map((e) => e.values.length));
725
- for (let t = 0; t < e; t++) F.push(t);
726
- }
727
- let R = Math.min(...F), z = Math.max(...F), B = Math.min(...I), W = Math.max(...I);
728
- if (R === z && (--R, z += 1), B === W && (--B, W += 1), t.valMin == null ? B > 0 && (B = 0) : B = t.valMin, t.valMax != null && (W = t.valMax), t.catAxisMin != null && (R = t.catAxisMin), t.catAxisMax != null && (z = t.catAxisMax), t.catAxisMin == null || t.catAxisMax == null) {
729
- let e = o(z - R);
730
- e > 0 && (t.catAxisMin ?? (R = Math.floor(R / e) * e), t.catAxisMax ?? (z = Math.ceil(z / e) * e));
731
- }
732
- let K = (e) => E + (e - R) / (z - R) * N, q = (e) => j + P - (e - B) / (W - B) * P;
733
- if (!t.valAxisHidden) {
734
- let n = Math.max(8, Math.min(11, P / 20));
735
- e.font = `${t.valAxisFontBold ? "bold " : ""}${n}px sans-serif`;
736
- let r = o(W - B), i = Math.round((W - B) / r) + 1;
737
- for (let n = 0; n < i; n++) {
738
- let i = B + n * r;
739
- if (i > W + r * .01) break;
740
- let a = q(i);
741
- e.strokeStyle = "#e0e0e0", e.lineWidth = .5, e.beginPath(), e.moveTo(E, a), e.lineTo(E + N, a), e.stroke(), e.fillStyle = "#555", e.textAlign = "right", e.textBaseline = "middle", e.fillText(u(i, t.valAxisFormatCode), E - 4, a);
742
- let o = t.valAxisLineColor ? `#${t.valAxisLineColor}` : void 0, s = t.valAxisLineWidthEmu ? Math.max(.5, t.valAxisLineWidthEmu / g) : void 0;
743
- k(e, t.valAxisMajorTickMark, "val", E, a, o, s);
744
- }
745
- }
746
- let J = j + P;
747
- if (t.catAxisCrossesAt != null) J = G(q(t.catAxisCrossesAt), j, j + P);
748
- else {
749
- let e = t.catAxisCrosses ?? "autoZero";
750
- e === "autoZero" && B < 0 && W > 0 ? J = G(q(0), j, j + P) : e === "min" ? J = j + P : e === "max" && (J = j);
751
- }
752
- if (!t.catAxisHidden && !t.catAxisLineHidden && (e.save(), e.strokeStyle = t.catAxisLineColor ? `#${t.catAxisLineColor}` : "#888", e.lineWidth = t.catAxisLineWidthEmu ? Math.max(.5, t.catAxisLineWidthEmu / g) : 1, e.lineCap = "butt", e.beginPath(), e.moveTo(E, J), e.lineTo(E + N, J), e.stroke(), e.restore()), !t.valAxisHidden && !t.valAxisLineHidden && (e.save(), e.strokeStyle = t.valAxisLineColor ? `#${t.valAxisLineColor}` : "#888", e.lineWidth = t.valAxisLineWidthEmu ? Math.max(.5, t.valAxisLineWidthEmu / g) : 1, e.beginPath(), e.moveTo(E, j), e.lineTo(E, j + P), e.stroke(), e.restore()), !t.catAxisHidden) {
753
- let n = Math.max(8, Math.min(11, P / 20));
754
- e.font = `${t.catAxisFontBold ? "bold " : ""}${n}px sans-serif`;
755
- let r = o(z - R), i = Math.round((z - R) / r) + 1;
756
- e.fillStyle = "#555", e.textAlign = "center", e.textBaseline = "top";
757
- for (let n = 0; n < i; n++) {
758
- let i = R + n * r;
759
- if (i > z + r * .01) break;
760
- let a = K(i);
761
- e.fillText(u(i, t.catAxisFormatCode), a, J + 4);
762
- let o = t.catAxisLineColor ? `#${t.catAxisLineColor}` : void 0, s = t.catAxisLineWidthEmu ? Math.max(.5, t.catAxisLineWidthEmu / g) : void 0;
763
- k(e, t.catAxisMajorTickMark, "cat", J, a, o, s);
764
- }
765
- }
766
- let ee = t.chartType === "bubble", Y = ee ? "marker" : t.scatterStyle ?? "marker", te = Y === "line" || Y === "lineMarker" || Y === "lineNoMarker", ne = Y === "smooth" || Y === "smoothMarker" || Y === "smoothNoMarker", re = Y === "lineNoMarker" || Y === "smoothNoMarker";
767
- for (let n = 0; n < t.series.length; n++) {
768
- let i = t.series[n], a = b(n, i), o = i.categories ?? [];
769
- for (let t of i.errBars ?? []) H(e, i, t, o, L, K, q, a);
770
- if (te || ne) {
771
- let t = [];
772
- for (let e = 0; e < i.values.length; e++) {
773
- let n = i.values[e];
774
- if (n == null) continue;
775
- let r = L ? e : parseFloat(o[e] ?? "0");
776
- isNaN(r) || t.push({
777
- x: K(r),
778
- y: q(n)
779
- });
780
- }
781
- if (t.length >= 2) {
782
- if (e.save(), e.strokeStyle = i.color ? `#${i.color}` : a, e.lineWidth = 1.5, e.beginPath(), e.moveTo(t[0].x, t[0].y), ne && t.length >= 3) for (let n = 0; n < t.length - 1; n++) {
783
- let r = t[n - 1] ?? t[n], i = t[n], a = t[n + 1], o = t[n + 2] ?? a, s = i.x + (a.x - r.x) / 6, c = i.y + (a.y - r.y) / 6, l = a.x - (o.x - i.x) / 6, u = a.y - (o.y - i.y) / 6;
784
- e.bezierCurveTo(s, c, l, u, a.x, a.y);
785
- }
786
- else for (let n = 1; n < t.length; n++) e.lineTo(t[n].x, t[n].y);
787
- e.stroke(), e.restore();
788
- }
789
- }
790
- if (!(re || i.showMarker === !1 || typeof i.markerSymbol == "string" && i.markerSymbol === "none")) {
791
- let t = 0;
792
- if (ee && i.bubbleSizes && i.bubbleSizes.length > 0) {
793
- let e = Math.max(0, ...i.bubbleSizes.filter((e) => e != null));
794
- e > 0 && (t = Math.min(N, P) / Math.max(8, i.values.length * 1.6) / Math.sqrt(e));
795
- }
796
- for (let n = 0; n < i.values.length; n++) {
797
- let s = i.values[n];
798
- if (s == null) continue;
799
- let c = L ? n : parseFloat(o[n] ?? "0");
800
- if (isNaN(c)) continue;
801
- let l = (i.dataPointOverrides ?? []).find((e) => e.idx === n), u = l?.markerSymbol ?? i.markerSymbol ?? "circle", d = l?.markerSize ?? i.markerSize ?? 5;
802
- if (ee && t > 0) {
803
- let e = i.bubbleSizes?.[n];
804
- e != null && e > 0 && (d = Math.sqrt(e) * t * 2 / r);
805
- }
806
- let f = l?.markerFill ?? l?.color ?? i.markerFill ?? a, p = l?.markerLine ?? i.markerLine ?? null;
807
- V(e, K(c), q(s), u, d, f, p, r);
808
- }
809
- }
810
- U(e, i, o, L, K, q, P, r);
811
- }
812
- O(e, t, m, i, a, s, c, E, j, N, P, p + 2), t.catAxisTitle && C(e, t.catAxisTitle, E, j, N, P, "cat", x), t.valAxisTitle && C(e, t.valAxisTitle, E, j, N, P, "val", x);
813
- }
814
- function V(e, t, n, r, i, a, o, s) {
815
- let c = Math.max(2, i * s), l = c / 2, u = a.startsWith("#") ? a : `#${a}`, d = o ? o.startsWith("#") ? o : `#${o}` : null;
816
- switch (e.save(), e.fillStyle = u, d && (e.strokeStyle = d, e.lineWidth = 1), r) {
817
- case "square":
818
- e.fillRect(t - l, n - l, c, c), o && e.strokeRect(t - l, n - l, c, c);
819
- break;
820
- case "diamond":
821
- e.beginPath(), e.moveTo(t, n - l), e.lineTo(t + l, n), e.lineTo(t, n + l), e.lineTo(t - l, n), e.closePath(), e.fill(), o && e.stroke();
822
- break;
823
- case "triangle":
824
- e.beginPath(), e.moveTo(t, n - l), e.lineTo(t + l, n + l), e.lineTo(t - l, n + l), e.closePath(), e.fill(), o && e.stroke();
825
- break;
826
- case "x":
827
- e.strokeStyle = u, e.lineWidth = Math.max(1, c * .18), e.beginPath(), e.moveTo(t - l, n - l), e.lineTo(t + l, n + l), e.moveTo(t - l, n + l), e.lineTo(t + l, n - l), e.stroke();
828
- break;
829
- case "plus":
830
- e.strokeStyle = u, e.lineWidth = Math.max(1, c * .18), e.beginPath(), e.moveTo(t - l, n), e.lineTo(t + l, n), e.moveTo(t, n - l), e.lineTo(t, n + l), e.stroke();
831
- break;
832
- case "star":
833
- e.beginPath();
834
- for (let r = 0; r < 10; r++) {
835
- let i = r % 2 == 0 ? l : l * .45, a = -Math.PI / 2 + r * Math.PI / 5, o = t + Math.cos(a) * i, s = n + Math.sin(a) * i;
836
- r === 0 ? e.moveTo(o, s) : e.lineTo(o, s);
837
- }
838
- e.closePath(), e.fill(), o && e.stroke();
839
- break;
840
- case "dot":
841
- e.beginPath(), e.arc(t, n, Math.max(1, c * .25), 0, Math.PI * 2), e.fill();
842
- break;
843
- case "dash": {
844
- let r = Math.max(1, c * .25);
845
- e.fillRect(t - l, n - r / 2, c, r);
846
- break;
847
- }
848
- default:
849
- e.beginPath(), e.arc(t, n, l, 0, Math.PI * 2), e.fill(), o && e.stroke();
850
- break;
851
- }
852
- e.restore();
853
- }
854
- function H(e, t, n, r, i, a, o, s) {
855
- e.save(), e.strokeStyle = n.color ? `#${n.color}` : s, e.lineWidth = n.lineWidthEmu ? Math.max(.5, n.lineWidthEmu / g) : 1, e.setLineDash(K(n.dash));
856
- let c = n.barType === "plus" || n.barType === "both", l = n.barType === "minus" || n.barType === "both", u = n.dir === "x", d = e.lineWidth * 1.5;
857
- for (let s = 0; s < t.values.length; s++) {
858
- let f = t.values[s];
859
- if (f == null) continue;
860
- let p = i ? s : parseFloat(r[s] ?? "0");
861
- if (isNaN(p)) continue;
862
- let m = a(p), h = o(f), g = (t) => {
863
- let r = m, i = h;
864
- u ? r = a(p + t) : i = o(f + t), e.beginPath(), e.moveTo(m, h), e.lineTo(r, i), e.stroke(), n.noEndCap || (e.save(), e.setLineDash([]), e.beginPath(), u ? (e.moveTo(r, i - d), e.lineTo(r, i + d)) : (e.moveTo(r - d, i), e.lineTo(r + d, i)), e.stroke(), e.restore());
865
- };
866
- if (c) {
867
- let e = n.plus[s];
868
- e != null && g(e);
869
- }
870
- if (l) {
871
- let e = n.minus[s];
872
- e != null && g(-e);
873
- }
874
- }
875
- e.restore();
876
- }
877
- function U(e, t, n, r, i, a, o, s) {
878
- let c = t.dataLabelOverrides ?? [];
879
- if (c.length === 0 && !t.seriesDataLabels) return;
880
- let l = t.seriesDataLabels;
881
- for (let d = 0; d < t.values.length; d++) {
882
- let f = t.values[d];
883
- if (f == null) continue;
884
- let p = r ? d : parseFloat(n[d] ?? "0");
885
- if (isNaN(p)) continue;
886
- let m = c.find((e) => e.idx === d), h;
887
- if (m) {
888
- if (m.text === "") continue;
889
- h = m.text;
890
- } else if (l && (l.showVal || l.showSerName || l.showCatName)) {
891
- let e = [];
892
- if (l.showCatName && !r && e.push(n[d] ?? ""), l.showSerName && e.push(t.name), l.showVal && e.push(u(f, l.formatCode ?? null)), h = e.filter(Boolean).join(" "), !h) continue;
893
- } else continue;
894
- let g = m?.position ?? l?.position ?? "r", _ = m?.fontSizeHpt ?? l?.fontSizeHpt, v = _ ? _ / 100 * s : Math.max(9, Math.min(11, o / 25)), y = m?.fontColor ?? l?.fontColor, b = m?.fontBold ?? l?.fontBold ?? !1;
895
- W(e, i(p), a(f), h, g, v, y, b);
896
- }
897
- }
898
- function W(e, t, n, r, i, a, o, s) {
899
- e.save(), e.font = `${s ? "bold " : ""}${a}px sans-serif`, e.fillStyle = o ? `#${o}` : "#333";
900
- let c = a * .6, l = t, u = n;
901
- switch (i) {
902
- case "l":
903
- e.textAlign = "right", e.textBaseline = "middle", l = t - c;
904
- break;
905
- case "r":
906
- e.textAlign = "left", e.textBaseline = "middle", l = t + c;
907
- break;
908
- case "t":
909
- e.textAlign = "center", e.textBaseline = "bottom", u = n - c;
910
- break;
911
- case "b":
912
- e.textAlign = "center", e.textBaseline = "top", u = n + c;
913
- break;
914
- case "ctr":
915
- e.textAlign = "center", e.textBaseline = "middle";
916
- break;
917
- default:
918
- e.textAlign = "left", e.textBaseline = "middle", l = t + c;
919
- break;
920
- }
921
- let d = r.split(/\r?\n/), f = a * 1.15, p = f * d.length, m = u;
922
- e.textBaseline === "middle" ? m = u - (p - f) / 2 : e.textBaseline === "bottom" && (m = u - (p - f));
923
- for (let t of d) e.fillText(t, l, m), m += f;
924
- e.restore();
925
- }
926
- function G(e, t, n) {
927
- return e < t ? t : e > n ? n : e;
928
- }
929
- function K(e) {
930
- if (!e) return [];
931
- switch (e) {
932
- case "solid": return [];
933
- case "dot":
934
- case "sysDot": return [1, 2];
935
- case "dash":
936
- case "sysDash": return [4, 2];
937
- case "lgDash": return [8, 3];
938
- case "dashDot":
939
- case "sysDashDot": return [
940
- 4,
941
- 2,
942
- 1,
943
- 2
944
- ];
945
- case "lgDashDot": return [
946
- 8,
947
- 3,
948
- 1,
949
- 3
950
- ];
951
- case "dashDotDot":
952
- case "sysDashDotDot":
953
- case "lgDashDotDot": return [
954
- 4,
955
- 2,
956
- 1,
957
- 2,
958
- 1,
959
- 2
960
- ];
961
- default: return [];
962
- }
963
- }
964
- function q(e, t, n) {
965
- let { x: r, y: i, w: a, h: s } = n, c = t.plotAreaManualLayout, l, u, d, f;
966
- if (c && c.w != null && c.h != null) l = r + c.x * a, u = i + c.y * s, d = c.w * a, f = c.h * s;
967
- else {
968
- let e = t.valAxisHidden ? a * .01 : a * .11, n = a * .01, o = s * .12, c = s * .14;
969
- l = r + e, u = i + o, d = a - e - n, f = s - o - c;
970
- }
971
- let p = t.series[0]?.values ?? [], m = t.categories, h = m.length;
972
- if (h === 0) return;
973
- let g = new Set(t.subtotalIndices), _ = 0, v = [];
974
- for (let e = 0; e < h; e++) {
975
- let t = p[e] ?? 0;
976
- if (e === 0 || g.has(e)) v.push({
977
- start: 0,
978
- end: t,
979
- isSub: !0,
980
- isPos: !0
981
- }), _ = t;
982
- else {
983
- let e = t >= 0 ? _ : _ + t, n = t >= 0 ? _ + t : _;
984
- v.push({
985
- start: e,
986
- end: n,
987
- isSub: !1,
988
- isPos: t >= 0
989
- }), _ += t;
990
- }
991
- }
992
- let y = v.map((e) => e.end), b = v.map((e) => e.start), x = Math.max(...y, ...b), S = Math.min(...b, 0), C = x - S;
993
- if (C <= 0) return;
994
- let w = S < 0 ? S - C * .05 : 0, T = (x - w) * 1.1, E = w + T, D = o(T);
995
- e.save();
996
- let O = Math.round(s * .042);
997
- if (e.font = `${O}px sans-serif`, !t.valAxisHidden) {
998
- e.strokeStyle = "#e8e8e8", e.lineWidth = .7, e.fillStyle = "#666", e.textAlign = "right", e.textBaseline = "middle";
999
- for (let t = Math.ceil(w / D) * D; t <= E; t += D) {
1000
- let n = u + f * (1 - (t - w) / T);
1001
- e.beginPath(), e.moveTo(l, n), e.lineTo(l + d, n), e.stroke(), e.fillText(t.toLocaleString(), l - 4, n);
1002
- }
1003
- }
1004
- let k = !t.valAxisHidden && !t.valAxisLineHidden, A = !t.catAxisHidden && !t.catAxisLineHidden;
1005
- (k || A) && (e.strokeStyle = "#bbb", e.lineWidth = 1, e.beginPath(), k ? (e.moveTo(l, u), e.lineTo(l, u + f), A && e.lineTo(l + d, u + f)) : A && (e.moveTo(l, u + f), e.lineTo(l + d, u + f)), e.stroke());
1006
- let j = d / h, M = j / (1 + (t.barGapWidth ?? 150) / 100);
1007
- v.forEach((n, r) => {
1008
- let i = l + j * r + (j - M) / 2, a = u + f * (1 - (n.end - w) / T), o = u + f * (1 - (n.start - w) / T), c = Math.max(1, o - a);
1009
- if (n.isSub ? (e.fillStyle = "#196ECA", e.fillRect(i, a, M, c)) : (e.strokeStyle = n.isPos ? "#5BA4E6" : "#E46970", e.lineWidth = 1.5, e.strokeRect(i + .75, a + .75, M - 1.5, c - 1.5)), r < h - 1) {
1010
- let t = l + j * (r + 1) + (j - M) / 2, s = n.isPos ? a : o;
1011
- e.strokeStyle = "#ccc", e.lineWidth = .8, e.setLineDash([3, 3]), e.beginPath(), e.moveTo(i + M, s), e.lineTo(t, s), e.stroke(), e.setLineDash([]);
1012
- }
1013
- let d = p[r] ?? 0, m = d < 0 ? `△ ${Math.abs(d).toLocaleString()}` : d.toLocaleString(), g = t.series[0]?.dataLabelColors?.[r] ?? null;
1014
- e.fillStyle = g ? `#${g}` : t.dataLabelFontColor ? `#${t.dataLabelFontColor}` : "#595959", e.font = `bold ${Math.round(s * .044)}px sans-serif`, e.textAlign = "center", d < 0 ? (e.textBaseline = "top", e.fillText(m, i + M / 2, o + 3)) : (e.textBaseline = "bottom", e.fillText(m, i + M / 2, a - 3));
1015
- }), e.textAlign = "center", e.textBaseline = "top", e.fillStyle = "#666", e.font = `${Math.round(s * .038)}px sans-serif`;
1016
- let N = u + f + 4;
1017
- for (let t = 0; t < h; t++) {
1018
- let n = l + j * t + j / 2;
1019
- m[t].split(/\s+/).forEach((t, r) => e.fillText(t, n, N + r * (O + 2)));
1020
- }
1021
- e.restore();
1022
- }
1023
- function J(e, t, n, r = v) {
1024
- let { x: i, y: a, w: o, h: s } = n;
1025
- if (t.chartBg && (e.fillStyle = `#${t.chartBg}`, e.fillRect(i, a, o, s)), t.series.length === 0) {
1026
- e.fillStyle = "#888", e.font = "12px sans-serif", e.textAlign = "center", e.textBaseline = "middle", e.fillText("(no data)", i + o / 2, a + s / 2);
1027
- return;
1028
- }
1029
- switch (t.chartType) {
1030
- case "clusteredBar":
1031
- case "clusteredBarH":
1032
- case "stackedBar":
1033
- case "stackedBarH":
1034
- case "stackedBarPct":
1035
- case "stackedBarHPct":
1036
- F(e, t, n, r);
1037
- break;
1038
- case "line":
1039
- case "stackedLine":
1040
- case "stackedLinePct":
1041
- I(e, t, n, r);
1042
- break;
1043
- case "area":
1044
- case "stackedArea":
1045
- case "stackedAreaPct":
1046
- L(e, t, n, r);
1047
- break;
1048
- case "pie":
1049
- R(e, t, n, !1, r);
1050
- break;
1051
- case "doughnut":
1052
- R(e, t, n, !0, r);
1053
- break;
1054
- case "radar":
1055
- z(e, t, n, r);
1056
- break;
1057
- case "scatter":
1058
- case "bubble":
1059
- B(e, t, n, r);
1060
- break;
1061
- case "waterfall":
1062
- q(e, t, n);
1063
- break;
1064
- default: e.fillStyle = "#888", e.font = "11px sans-serif", e.textAlign = "center", e.textBaseline = "middle", e.fillText(`Chart: ${t.chartType}`, i + o / 2, a + s / 2);
1065
- }
1066
- }
1067
- //#endregion
1068
- //#region packages/core/src/autoResize.ts
1069
- function ee(e, t, n = {}) {
1070
- let r = n.pauseWhenHidden ?? !0, i = null, a = 0, o = 0, s = null, c = !1, l = !1, u = () => {
1071
- if (!l && !(r && typeof document < "u" && document.hidden)) {
1072
- if (s) {
1073
- c = !0;
1074
- return;
1075
- }
1076
- i === null && (i = requestAnimationFrame(d));
1077
- }
1078
- }, d = async () => {
1079
- if (i = null, l) return;
1080
- let t = a, n = o;
1081
- try {
1082
- let r = e(t, n);
1083
- s = r instanceof Promise ? r : Promise.resolve(), await s;
1084
- } catch (e) {
1085
- console.error("[autoResize] render failed:", e);
1086
- } finally {
1087
- s = null, c && !l && (c = !1, u());
1088
- }
1089
- }, f = new ResizeObserver((e) => {
1090
- for (let t of e) {
1091
- let e = t.contentRect;
1092
- a = e.width, o = e.height;
1093
- }
1094
- u();
1095
- });
1096
- f.observe(t);
1097
- let p = () => {
1098
- typeof document < "u" && !document.hidden && u();
1099
- };
1100
- return r && typeof document < "u" && document.addEventListener("visibilitychange", p), () => {
1101
- l = !0, f.disconnect(), i !== null && (cancelAnimationFrame(i), i = null), r && typeof document < "u" && document.removeEventListener("visibilitychange", p);
1102
- };
1103
- }
1104
- //#endregion
1105
- //#region packages/core/src/shape/custGeom.ts
1106
- function Y(e, t, n, r, i, a) {
1107
- for (let o of t) {
1108
- let t = 0, s = 0;
1109
- for (let c of o) switch (c.cmd) {
1110
- case "moveTo":
1111
- e.moveTo(n + c.x * i, r + c.y * a), t = c.x, s = c.y;
1112
- break;
1113
- case "lineTo":
1114
- e.lineTo(n + c.x * i, r + c.y * a), t = c.x, s = c.y;
1115
- break;
1116
- case "cubicBezTo":
1117
- e.bezierCurveTo(n + c.x1 * i, r + c.y1 * a, n + c.x2 * i, r + c.y2 * a, n + c.x * i, r + c.y * a), t = c.x, s = c.y;
1118
- break;
1119
- case "arcTo": {
1120
- let o = c.wr * i, l = c.hr * a;
1121
- if (o <= 0 || l <= 0) break;
1122
- let u = c.stAng * Math.PI / 180, d = c.swAng * Math.PI / 180, f = n + t * i, p = r + s * a, m = f - o * Math.cos(u), h = p - l * Math.sin(u), g = u + d;
1123
- e.ellipse(m, h, o, l, 0, u, g, d < 0), t = (m + o * Math.cos(g) - n) / i, s = (h + l * Math.sin(g) - r) / a;
1124
- break;
1125
- }
1126
- case "close":
1127
- e.closePath();
1128
- break;
1129
- }
1130
- }
1131
- }
1132
- //#endregion
1133
357
  //#region packages/core/src/shape/pattern-bitmaps.ts
1134
- var te = {
358
+ var T = {
1135
359
  pct5: [
1136
360
  0,
1137
361
  16,
@@ -1492,136 +716,1040 @@ var te = {
1492
716
  15,
1493
717
  15
1494
718
  ],
1495
- smCheck: [
1496
- 204,
1497
- 204,
1498
- 51,
1499
- 51,
1500
- 204,
1501
- 204,
1502
- 51,
1503
- 51
719
+ smCheck: [
720
+ 204,
721
+ 204,
722
+ 51,
723
+ 51,
724
+ 204,
725
+ 204,
726
+ 51,
727
+ 51
728
+ ],
729
+ trellis: [
730
+ 165,
731
+ 90,
732
+ 165,
733
+ 90,
734
+ 165,
735
+ 90,
736
+ 165,
737
+ 90
738
+ ]
739
+ };
740
+ function E(e, t, n) {
741
+ let r = T[e];
742
+ if (!r) return null;
743
+ let i = D(8, 8);
744
+ if (!i) return null;
745
+ let a = i.getContext("2d");
746
+ if (!a) return null;
747
+ a.fillStyle = O(n), a.fillRect(0, 0, 8, 8), a.fillStyle = O(t);
748
+ for (let e = 0; e < 8; e++) {
749
+ let t = r[e];
750
+ for (let n = 0; n < 8; n++) t & 1 << 7 - n && a.fillRect(n, e, 1, 1);
751
+ }
752
+ return i;
753
+ }
754
+ function D(e, t) {
755
+ if (typeof OffscreenCanvas < "u") return new OffscreenCanvas(e, t);
756
+ if (typeof document < "u") {
757
+ let n = document.createElement("canvas");
758
+ return n.width = e, n.height = t, n;
759
+ }
760
+ return null;
761
+ }
762
+ function O(e) {
763
+ return `rgba(${parseInt(e.slice(0, 2), 16)},${parseInt(e.slice(2, 4), 16)},${parseInt(e.slice(4, 6), 16)},${e.length >= 8 ? parseInt(e.slice(6, 8), 16) / 255 : 1})`;
764
+ }
765
+ //#endregion
766
+ //#region packages/core/src/shape/paint.ts
767
+ function k(e, t = 1) {
768
+ let n = e.charCodeAt(0) === 35 ? e.slice(1) : e;
769
+ return `rgba(${parseInt(n.slice(0, 2), 16)},${parseInt(n.slice(2, 4), 16)},${parseInt(n.slice(4, 6), 16)},${n.length >= 8 ? parseInt(n.slice(6, 8), 16) / 255 : t})`;
770
+ }
771
+ function A(e, t, n, r, i, a) {
772
+ if (!e || e.fillType === "none") return null;
773
+ if (e.fillType === "solid") return k(e.color);
774
+ if (e.fillType === "pattern") return M(e, t);
775
+ if (e.fillType === "gradient") {
776
+ let o = e.stops;
777
+ if (o.length === 0) return null;
778
+ if (o.length === 1) return k(o[0].color);
779
+ let s;
780
+ if (e.gradType === "radial") {
781
+ let e = n + i / 2, o = r + a / 2, c = Math.sqrt(i * i + a * a) / 2;
782
+ s = t.createRadialGradient(e, o, 0, e, o, c);
783
+ } else {
784
+ let o = e.angle * Math.PI / 180, c = n + i / 2, l = r + a / 2, u = (Math.abs(Math.cos(o)) * i + Math.abs(Math.sin(o)) * a) / 2;
785
+ s = t.createLinearGradient(c - Math.cos(o) * u, l - Math.sin(o) * u, c + Math.cos(o) * u, l + Math.sin(o) * u);
786
+ }
787
+ for (let e of o) s.addColorStop(Math.min(1, Math.max(0, e.position)), k(e.color));
788
+ return s;
789
+ }
790
+ return null;
791
+ }
792
+ var j = /* @__PURE__ */ new WeakMap();
793
+ function M(e, t) {
794
+ let n = `${e.preset}|${e.fg}|${e.bg}`, r = j.get(t);
795
+ r || (r = /* @__PURE__ */ new Map(), j.set(t, r));
796
+ let i = r.get(n);
797
+ if (i) return i;
798
+ let a = E(e.preset, e.fg, e.bg);
799
+ if (!a) return k(e.fg);
800
+ let o = t.createPattern(a, "repeat");
801
+ return o ? (r.set(n, o), o) : k(e.fg);
802
+ }
803
+ var N = {
804
+ dash: [6, 3],
805
+ dot: [1.5, 3],
806
+ dashDot: [
807
+ 6,
808
+ 3,
809
+ 1.5,
810
+ 3
811
+ ],
812
+ lgDash: [10, 4],
813
+ lgDashDot: [
814
+ 10,
815
+ 4,
816
+ 1.5,
817
+ 4
818
+ ],
819
+ lgDashDotDot: [
820
+ 10,
821
+ 4,
822
+ 1.5,
823
+ 4,
824
+ 1.5,
825
+ 4
1504
826
  ],
1505
- trellis: [
1506
- 165,
1507
- 90,
1508
- 165,
1509
- 90,
1510
- 165,
1511
- 90,
1512
- 165,
1513
- 90
827
+ sysDash: [4, 2],
828
+ sysDot: [1, 2],
829
+ sysDashDot: [
830
+ 4,
831
+ 2,
832
+ 1,
833
+ 2
1514
834
  ]
1515
835
  };
1516
- function ne(e, t, n) {
1517
- let r = te[e];
1518
- if (!r) return null;
1519
- let i = re(8, 8);
1520
- if (!i) return null;
1521
- let a = i.getContext("2d");
1522
- if (!a) return null;
1523
- a.fillStyle = ie(n), a.fillRect(0, 0, 8, 8), a.fillStyle = ie(t);
1524
- for (let e = 0; e < 8; e++) {
1525
- let t = r[e];
1526
- for (let n = 0; n < 8; n++) t & 1 << 7 - n && a.fillRect(n, e, 1, 1);
836
+ function P(e, t, n) {
837
+ if (!t) {
838
+ e.strokeStyle = "transparent", e.lineWidth = 0, e.setLineDash([]);
839
+ return;
840
+ }
841
+ e.strokeStyle = k(t.color);
842
+ let r = Math.max(.5, t.width * n);
843
+ e.lineWidth = r;
844
+ let i = t.dashStyle ? N[t.dashStyle] : null;
845
+ e.setLineDash(i ? i.map((e) => e * r) : []);
846
+ }
847
+ //#endregion
848
+ //#region packages/core/src/units.ts
849
+ var F = 12700, I = 9525, L = 4 / 3, R = [
850
+ "4472C4",
851
+ "ED7D31",
852
+ "A9D18E",
853
+ "FF0000",
854
+ "70AD47",
855
+ "4BACC6",
856
+ "FFC000",
857
+ "9E480E",
858
+ "843C0C",
859
+ "636363",
860
+ "255E91",
861
+ "967300"
862
+ ];
863
+ function z(e, t) {
864
+ return t?.color ? `#${t.color}` : `#${R[e % R.length]}`;
865
+ }
866
+ function B(e, t) {
867
+ let n = t.dataPointColors?.[e];
868
+ return n ? `#${n}` : `#${R[e % R.length]}`;
869
+ }
870
+ function V(e) {
871
+ return e === "pie" || e === "doughnut";
872
+ }
873
+ function H(e, t, n) {
874
+ if (V(e)) {
875
+ let e = t[0];
876
+ return e ? B(n, e) : `#${R[n % R.length]}`;
877
+ }
878
+ return z(n, t[n]);
879
+ }
880
+ function U(e, t, n, r, i, a, o, s) {
881
+ e.save(), e.font = `${s}px sans-serif`, e.fillStyle = "#555", o === "cat" ? (e.textAlign = "center", e.textBaseline = "bottom", e.fillText(t.slice(0, 30), n + i / 2, r + a + s + 2)) : (e.translate(n - s - 4, r + a / 2), e.rotate(-Math.PI / 2), e.textAlign = "center", e.textBaseline = "middle", e.fillText(t.slice(0, 30), 0, 0)), e.restore();
882
+ }
883
+ function ee(e) {
884
+ return e && (e === "line" || e === "stackedLine" || e === "stackedLinePct" || e === "radar" || e === "scatter") ? "line" : "fill";
885
+ }
886
+ function te(e, t, n, r, i, a, o) {
887
+ if (e.fillStyle = n, t === "line") {
888
+ e.strokeStyle = n;
889
+ let t = e.lineWidth;
890
+ e.lineWidth = Math.max(1.5, o * .15), e.beginPath();
891
+ let s = i + o / 2;
892
+ e.moveTo(r, s), e.lineTo(r + a, s), e.stroke(), e.lineWidth = t;
893
+ } else e.fillRect(r, i, a, o);
894
+ }
895
+ function ne(e, t) {
896
+ if (V(t)) {
897
+ let n = e[0], r = n ? n.values.length : 0, i = n?.categories ?? [];
898
+ return Array.from({ length: r }, (n, r) => ({
899
+ label: (i[r] ?? `Item ${r + 1}`).toString(),
900
+ color: H(t, e, r)
901
+ }));
902
+ }
903
+ return e.map((n, r) => ({
904
+ label: n.name || `Series ${r + 1}`,
905
+ color: H(t, e, r)
906
+ }));
907
+ }
908
+ function W(e, t, n, r, i, a, o = "vertical", s) {
909
+ let c = ee(s), l = ne(t, s);
910
+ if (o === "horizontal") {
911
+ let t = Math.max(9, Math.min(12, a * .7));
912
+ e.font = `${t}px sans-serif`, e.textBaseline = "middle";
913
+ let o = l.map((t) => 14 + e.measureText(t.label.slice(0, 30)).width), s = n + (i - (o.reduce((e, t) => e + t, 0) + 12 * Math.max(0, l.length - 1))) / 2, u = r + a / 2;
914
+ for (let n = 0; n < l.length; n++) te(e, c, l[n].color, s, u - t / 2, 10, t), e.fillStyle = "#333", e.textAlign = "left", e.fillText(l[n].label.slice(0, 30), s + 10 + 4, u), s += o[n] + 12;
915
+ return;
916
+ }
917
+ let u = Math.max(9, Math.min(12, a / (l.length + 1)));
918
+ e.font = `${u}px sans-serif`, e.textBaseline = "middle";
919
+ let d = u + 4, f = r + (a - d * l.length) / 2;
920
+ for (let t = 0; t < l.length; t++) te(e, c, l[t].color, n, f, 10, u), e.fillStyle = "#333", e.textAlign = "left", e.fillText(l[t].label.slice(0, 20), n + 10 + 4, f + u / 2), f += d;
921
+ }
922
+ function re(e, t, n) {
923
+ if (!e.showLegend) return null;
924
+ let r = e.legendPos ?? "r", i = r === "l" ? "l" : r === "t" ? "t" : r === "b" ? "b" : "r";
925
+ return i === "r" || i === "l" ? {
926
+ side: i,
927
+ reserveW: Math.max(80, t * .22),
928
+ reserveH: 0
929
+ } : {
930
+ side: i,
931
+ reserveW: 0,
932
+ reserveH: Math.max(18, n * .08)
933
+ };
934
+ }
935
+ function ie(e, t, n, r, i, a, o, s, c, l, u, d) {
936
+ if (!n) return;
937
+ let f = t.legendManualLayout;
938
+ if (f && f.xMode === "edge" && f.yMode === "edge" && f.w > 0 && f.h > 0) {
939
+ let n = r + f.x * a, s = i + f.y * o, c = f.w * a, l = f.h * o, u = c >= l ? "horizontal" : "vertical";
940
+ W(e, t.series, n, s, c, l, u, t.chartType);
941
+ return;
942
+ }
943
+ switch (n.side) {
944
+ case "r":
945
+ W(e, t.series, r + a - n.reserveW + 4, c, n.reserveW - 8, u, "vertical", t.chartType);
946
+ break;
947
+ case "l":
948
+ W(e, t.series, r + 4, c, n.reserveW - 8, u, "vertical", t.chartType);
949
+ break;
950
+ case "t":
951
+ W(e, t.series, s, i + d, l, n.reserveH, "horizontal", t.chartType);
952
+ break;
953
+ case "b":
954
+ W(e, t.series, s, i + o - n.reserveH, l, n.reserveH, "horizontal", t.chartType);
955
+ break;
956
+ }
957
+ }
958
+ function G(e, t, n, r, i, a, o) {
959
+ if (t === "none" || !t) return;
960
+ let s = o ? Math.max(4, o + 2) : 4, c = e.strokeStyle, l = e.lineWidth;
961
+ if (e.strokeStyle = a ?? "#888", e.lineWidth = o ?? 1, e.beginPath(), n === "val") {
962
+ let n = r, a = i, o = t === "out" || t === "cross" ? -s : 0, c = t === "in" || t === "cross" ? s : 0;
963
+ e.moveTo(n + o, a), e.lineTo(n + c, a);
964
+ } else {
965
+ let n = r, a = i, o = t === "out" || t === "cross" ? s : 0, c = t === "in" || t === "cross" ? -s : 0;
966
+ e.moveTo(a, n + o), e.lineTo(a, n + c);
967
+ }
968
+ e.stroke(), e.strokeStyle = c, e.lineWidth = l;
969
+ }
970
+ function ae(e, t, n) {
971
+ return e.titleFontSizeHpt ? e.titleFontSizeHpt / 100 * n : Math.max(10, t * .085);
972
+ }
973
+ function oe(e, t, n) {
974
+ return e ? e / 100 * n : Math.max(8, t * .045);
975
+ }
976
+ function se(e, t, n, r, i, a) {
977
+ t.title && (e.font = `bold ${a}px ${t.titleFontFace ? `"${t.titleFontFace}", Calibri, Arial, sans-serif` : "Calibri, Arial, sans-serif"}`, e.fillStyle = t.titleFontColor ? `#${t.titleFontColor}` : "#333", e.textAlign = "center", e.textBaseline = "top", e.fillText(t.title, n + i / 2, r));
978
+ }
979
+ function ce(e) {
980
+ if (e.categories.length > 0) return e.categories;
981
+ let t = e.series[0];
982
+ if (t?.categories && t.categories.length > 0) return t.categories;
983
+ let n = 0;
984
+ for (let t of e.series) t.values.length > n && (n = t.values.length);
985
+ return n > 0 ? Array.from({ length: n }, (e, t) => String(t + 1)) : [];
986
+ }
987
+ function le(e, t, n, r, i, a, o, s, c) {
988
+ let l = s ?? "outEnd";
989
+ if (e.fillStyle = c ? `#${c}` : "#333", o === "vertical") {
990
+ let o = n + a / 2;
991
+ l === "inBase" ? (e.textAlign = "center", e.textBaseline = "bottom", e.fillText(t, o, r + i - 2)) : l === "inEnd" ? (e.textAlign = "center", e.textBaseline = "top", e.fillText(t, o, r + 2)) : l === "ctr" ? (e.textAlign = "center", e.textBaseline = "middle", e.fillText(t, o, r + i / 2)) : (e.textAlign = "center", e.textBaseline = "bottom", e.fillText(t, o, r - 1));
992
+ } else {
993
+ let o = r + a / 2;
994
+ l === "inBase" ? (e.textAlign = "left", e.textBaseline = "middle", e.fillText(t, n + 4, o)) : l === "inEnd" ? (e.textAlign = "right", e.textBaseline = "middle", e.fillText(t, n + i - 4, o)) : l === "ctr" ? (e.textAlign = "center", e.textBaseline = "middle", e.fillText(t, n + i / 2, o)) : (e.textAlign = "left", e.textBaseline = "middle", e.fillText(t, n + i + 2, o));
995
+ }
996
+ }
997
+ function ue(e, t, n, r) {
998
+ let { x: i, y: a, w: o, h: s } = n, c = t.chartType === "clusteredBarH" || t.chartType === "stackedBarH" || t.chartType === "stackedBarHPct", l = t.chartType.startsWith("stacked"), u = t.chartType === "stackedBarPct" || t.chartType === "stackedBarHPct", d = t.series.filter((e) => e.seriesType !== "line"), f = t.series.filter((e) => e.seriesType === "line"), p = ce(t), m = p.length;
999
+ if (m === 0) return;
1000
+ let _ = t.title ? ae(t, s, r) : 0, v = t.title ? s * .02 : 0, b = t.title ? s * .025 : 0, x = t.title ? _ + v + b : 0, S = re(t, o, s), C = S?.side === "r" ? S.reserveW : 0, w = S?.side === "l" ? S.reserveW : 0, T = S?.side === "t" ? S.reserveH : 0, E = S?.side === "b" ? S.reserveH : 0, D = Math.max(8, Math.min(10, s * .045)), O = t.catAxisTitle ? D + 4 : 0, k = t.valAxisTitle ? D + 4 : 0, A = {
1001
+ t: x + T + s * .02,
1002
+ r: C + o * .03,
1003
+ b: s * .14 + O + E,
1004
+ l: o * .12 + k + w
1005
+ };
1006
+ c && (A.l = (t.catAxisHidden ? o * .03 : o * .22) + k + w, A.b = (t.valAxisHidden ? s * .02 : s * .08) + O + E), se(e, t, i, a + v, o, _);
1007
+ let j = t.plotAreaManualLayout, M, N, P, I;
1008
+ if (j && j.w != null && j.h != null ? (M = i + j.x * o, N = a + j.y * s, P = j.w * o, I = j.h * s) : (M = i + A.l, N = a + A.t, P = o - A.l - A.r, I = s - A.t - A.b), P <= 0 || I <= 0) return;
1009
+ t.plotAreaBg && (e.fillStyle = `#${t.plotAreaBg}`, e.fillRect(M, N, P, I));
1010
+ let L = 0;
1011
+ for (let e = 0; e < m; e++) {
1012
+ let t = 0;
1013
+ for (let n of d) {
1014
+ let r = n.values[e] ?? 0;
1015
+ l ? t += Math.abs(r) : L = Math.max(L, Math.abs(r));
1016
+ }
1017
+ l && (L = Math.max(L, t));
1018
+ }
1019
+ u && (L = 100), t.valMax != null && (L = t.valMax), L === 0 && (L = 1);
1020
+ let R = h(L), B = t.valMax ?? g(L, R), V = "#e0e0e0", H = Math.round(B / R);
1021
+ if (e.textBaseline = "middle", e.font = `${Math.max(8, Math.min(11, I / 20))}px sans-serif`, e.fillStyle = t.valAxisFontColor ? `#${t.valAxisFontColor}` : "#555", !t.valAxisHidden) for (let n = 0; n <= H; n++) {
1022
+ let r = n * R, i = u ? `${Math.round(r)}%` : y(r, t.valAxisFormatCode);
1023
+ if (c) {
1024
+ let t = M + r / B * P;
1025
+ e.strokeStyle = n === 0 ? "#aaa" : V, e.lineWidth = n === 0 ? 1 : .5, e.beginPath(), e.moveTo(t, N), e.lineTo(t, N + I), e.stroke(), e.textAlign = "center", e.fillText(i, t, N + I + 10);
1026
+ } else {
1027
+ let t = N + I - r / B * I;
1028
+ e.strokeStyle = n === 0 ? "#aaa" : V, e.lineWidth = n === 0 ? 1 : .5, e.beginPath(), e.moveTo(M, t), e.lineTo(M + P, t), e.stroke(), e.textAlign = "right", e.fillText(i, M - 4, t);
1029
+ }
1030
+ }
1031
+ let ee = t.catAxisLineColor ? `#${t.catAxisLineColor}` : "#aaa", te = t.valAxisLineColor ? `#${t.valAxisLineColor}` : "#aaa", ne = t.catAxisLineWidthEmu ? Math.max(.5, t.catAxisLineWidthEmu / F) : 1, W = t.valAxisLineWidthEmu ? Math.max(.5, t.valAxisLineWidthEmu / F) : 1, G = (t, n, r, i, a, o) => {
1032
+ e.strokeStyle = a, e.lineWidth = o, e.beginPath(), e.moveTo(t, n), e.lineTo(r, i), e.stroke();
1033
+ }, oe = !t.catAxisHidden && !t.catAxisLineHidden, ue = !t.valAxisHidden && !t.valAxisLineHidden && t.valAxisLineColor != null;
1034
+ c ? (oe && G(M, N, M, N + I, ee, ne), ue && G(M, N + I, M + P, N + I, te, W)) : (oe && G(M, N + I, M + P, N + I, ee, ne), ue && G(M, N, M, N + I, te, W));
1035
+ let K = c ? I / m : P / m, de = l ? 1 : Math.max(1, d.length), fe = l ? 0 : t.barOverlap ?? 0, pe = t.barGapWidth ?? 150, q = K / (1 + (de - 1) * (1 - fe / 100) + pe / 100), me = l ? 0 : q * (1 - fe / 100), he = (K - (q + (de - 1) * me)) / 2;
1036
+ for (let n = 0; n < m; n++) {
1037
+ let i = 0, a = 0;
1038
+ if (u) {
1039
+ for (let e of d) a += Math.abs(e.values[n] ?? 0);
1040
+ a === 0 && (a = 1);
1041
+ }
1042
+ for (let o = 0; o < d.length; o++) {
1043
+ let s = d[o], f = s.values[n] ?? 0, p = u ? Math.abs(f) / a * 100 : Math.abs(f), h = z(o, s);
1044
+ if (c) {
1045
+ let a = l ? o : d.length - 1 - o, c = l ? N + (m - 1 - n) * K + he : N + (m - 1 - n) * K + he + a * me, f = p / B * P, g = l ? M + i / B * P : M;
1046
+ e.fillStyle = h, e.fillRect(g, c, f, q), t.showDataLabels && p > 0 && (e.font = `bold ${t.dataLabelFontSizeHpt ? t.dataLabelFontSizeHpt / 100 * r : Math.max(7, Math.min(11, q * .6))}px sans-serif`, le(e, u ? `${Math.round(p)}%` : y(p, t.dataLabelFormatCode ?? s.valFormatCode ?? null), g, c, f, q, "horizontal", t.dataLabelPosition ?? null, s.labelColor ?? t.dataLabelFontColor ?? null));
1047
+ } else {
1048
+ let a = l ? M + n * K + he : M + n * K + he + o * me, c = p / B * I, d = N + I - (l ? i + p : p) / B * I;
1049
+ e.fillStyle = h, e.fillRect(a, d, q, c), t.showDataLabels && p > 0 && (e.font = `bold ${t.dataLabelFontSizeHpt ? t.dataLabelFontSizeHpt / 100 * r : Math.max(7, Math.min(11, q * .6))}px sans-serif`, le(e, u ? `${Math.round(p)}%` : y(p, t.dataLabelFormatCode ?? s.valFormatCode ?? null), a, d, c, q, "vertical", t.dataLabelPosition ?? null, s.labelColor ?? t.dataLabelFontColor ?? null));
1050
+ }
1051
+ l && (i += p);
1052
+ }
1053
+ }
1054
+ if (!t.catAxisHidden) {
1055
+ e.fillStyle = t.catAxisFontColor ? `#${t.catAxisFontColor}` : "#555", e.font = `${Math.max(8, Math.min(11, K * .5))}px sans-serif`;
1056
+ for (let t = 0; t < m; t++) {
1057
+ let n = (p[t] ?? "").toString().slice(0, 12);
1058
+ if (c) {
1059
+ let r = N + (m - 1 - t) * K + K / 2;
1060
+ e.textAlign = "right", e.textBaseline = "middle", e.fillText(n, M - 4, r);
1061
+ } else {
1062
+ let r = M + t * K + K / 2;
1063
+ e.textAlign = "center", e.textBaseline = "top", e.fillText(n, r, N + I + 3);
1064
+ }
1065
+ }
1066
+ }
1067
+ if (f.length > 0 && !c) for (let t = 0; t < f.length; t++) {
1068
+ let n = f[t], r = z(d.length + t, n);
1069
+ e.strokeStyle = r, e.lineWidth = 2, e.setLineDash([]), e.beginPath();
1070
+ let i = !1;
1071
+ for (let t = 0; t < m; t++) {
1072
+ let r = n.values[t];
1073
+ if (r == null) {
1074
+ i = !1;
1075
+ continue;
1076
+ }
1077
+ let a = M + t * K + K / 2, o = N + I - r / B * I;
1078
+ i ? e.lineTo(a, o) : (e.moveTo(a, o), i = !0);
1079
+ }
1080
+ if (e.stroke(), n.showMarker !== !1) for (let t = 0; t < m; t++) {
1081
+ let i = n.values[t];
1082
+ if (i == null) continue;
1083
+ let a = M + t * K + K / 2, o = N + I - i / B * I;
1084
+ e.fillStyle = r, e.beginPath(), e.arc(a, o, 3, 0, Math.PI * 2), e.fill();
1085
+ }
1086
+ }
1087
+ ie(e, c && !l ? {
1088
+ ...t,
1089
+ series: [...t.series].reverse()
1090
+ } : t, S, i, a, o, s, M, N, P, I, x + 2), t.catAxisTitle && U(e, t.catAxisTitle, M, N, P, I, "cat", D), t.valAxisTitle && U(e, t.valAxisTitle, M, N, P, I, "val", D);
1091
+ }
1092
+ function K(e, t, n, r) {
1093
+ let { x: i, y: a, w: o, h: s } = n, c = ce(t), l = c.length;
1094
+ if (l === 0) return;
1095
+ let u = t.title ? ae(t, s, r) : 0, d = t.title ? s * .045 : 0, f = t.title ? s * .035 : 0, p = t.title ? u + d + f : 0, m = re(t, o, s), b = m?.side === "r" ? m.reserveW : 0, x = m?.side === "l" ? m.reserveW : 0, S = m?.side === "t" ? m.reserveH : 0, C = m?.side === "b" ? m.reserveH : 0, w = oe(t.catAxisFontSizeHpt, s, r), T = oe(t.valAxisFontSizeHpt, s, r), E = Math.max(w, T), D = t.catAxisTitle ? E + 4 : 0, O = t.valAxisTitle ? E + 4 : 0, k = {
1096
+ t: p + S + T / 2 + 2,
1097
+ r: b + o * .05,
1098
+ b: w + 12 + D + C,
1099
+ l: T * 2.2 + 10 + O + x
1100
+ };
1101
+ se(e, t, i, a + d, o, u);
1102
+ let A = i + k.l, j = a + k.t, M = o - k.l - k.r, N = s - k.t - k.b;
1103
+ if (M <= 0 || N <= 0) return;
1104
+ t.plotAreaBg && (e.fillStyle = `#${t.plotAreaBg}`, e.fillRect(A, j, M, N));
1105
+ let P = Infinity, F = -Infinity;
1106
+ for (let e of t.series) for (let t of e.values) t != null && (P = Math.min(P, t), F = Math.max(F, t));
1107
+ isFinite(P) || (P = 0, F = 1), t.valMin == null ? P > 0 && (P = 0) : P = t.valMin, t.valMax == null ? F < 0 && (F = 0) : F = t.valMax, F === P && (F = P + 1);
1108
+ let I = h(F - P), L = t.valMin ?? _(P, I), R = t.valMax ?? g(F, I), B = R - L;
1109
+ if (B === 0) return;
1110
+ let V = (e) => j + N - (e - L) / B * N, H = t.catAxisCrossBetween === "midCat" ? (e) => A + (l === 1 ? M / 2 : e / (l - 1) * M) : (e) => A + (e + .5) / l * M;
1111
+ if (!t.valAxisHidden) {
1112
+ let n = Math.round((R - L) / I);
1113
+ e.font = `${T}px sans-serif`, e.textBaseline = "middle";
1114
+ for (let r = 0; r <= n; r++) {
1115
+ let n = L + r * I, i = V(n);
1116
+ e.strokeStyle = n === 0 ? "#aaa" : "#e0e0e0", e.lineWidth = n === 0 ? 1 : .5, e.beginPath(), e.moveTo(A, i), e.lineTo(A + M, i), e.stroke(), G(e, t.valAxisMajorTickMark, "val", A, i), e.fillStyle = t.valAxisFontColor ? `#${t.valAxisFontColor}` : "#555", e.textAlign = "right", e.fillText(y(n, t.valAxisFormatCode), A - 6, i);
1117
+ }
1118
+ }
1119
+ e.strokeStyle = "#aaa", e.lineWidth = 1, !t.catAxisHidden && !t.catAxisLineHidden && (e.beginPath(), e.moveTo(A, j + N), e.lineTo(A + M, j + N), e.stroke()), !t.valAxisHidden && !t.valAxisLineHidden && (e.beginPath(), e.moveTo(A, j), e.lineTo(A, j + N), e.stroke());
1120
+ let ee = Math.max(1, 2.25 * r), te = Math.max(2, 2.5 * r), ne = oe(t.dataLabelFontSizeHpt, s, r);
1121
+ for (let n = 0; n < t.series.length; n++) {
1122
+ let r = t.series[n], i = z(n, r);
1123
+ e.strokeStyle = i, e.lineWidth = ee, e.setLineDash([]), e.beginPath();
1124
+ let a = !1;
1125
+ for (let t = 0; t < l; t++) {
1126
+ let n = r.values[t];
1127
+ if (n == null) {
1128
+ a = !1;
1129
+ continue;
1130
+ }
1131
+ let i = H(t), o = V(n);
1132
+ a ? e.lineTo(i, o) : (e.moveTo(i, o), a = !0);
1133
+ }
1134
+ e.stroke(), e.fillStyle = i;
1135
+ let o = r.showMarker !== !1;
1136
+ for (let n = 0; n < l; n++) {
1137
+ let a = r.values[n];
1138
+ if (a != null && (o && (e.beginPath(), e.arc(H(n), V(a), te, 0, Math.PI * 2), e.fill()), t.showDataLabels)) {
1139
+ e.font = `${ne}px sans-serif`, e.fillStyle = "#333", e.textAlign = "center", e.textBaseline = "bottom";
1140
+ let t = o ? te + 1 : 2;
1141
+ e.fillText(v(a), H(n), V(a) - t), e.fillStyle = i;
1142
+ }
1143
+ }
1144
+ }
1145
+ if (!t.catAxisHidden) {
1146
+ let n = Math.max(1, Math.ceil(l / 8)), r = t.catAxisFontColor ? `#${t.catAxisFontColor}` : "#555";
1147
+ e.fillStyle = r, e.textAlign = "center", e.textBaseline = "top", e.font = `${w}px sans-serif`;
1148
+ for (let i = 0; i < l; i += n) {
1149
+ let n = H(i);
1150
+ G(e, t.catAxisMajorTickMark, "cat", j + N, n), e.fillStyle = r, e.fillText((c[i] ?? "").toString().slice(0, 10), n, j + N + 5);
1151
+ }
1152
+ }
1153
+ ie(e, t, m, i, a, o, s, A, j, M, N, p + 2), t.catAxisTitle && U(e, t.catAxisTitle, A, j, M, N, "cat", E), t.valAxisTitle && U(e, t.valAxisTitle, A, j, M, N, "val", E);
1154
+ }
1155
+ function de(e, t, n, r) {
1156
+ let { x: i, y: a, w: o, h: s } = n, c = ce(t), l = c.length;
1157
+ if (l === 0) return;
1158
+ let u = t.chartType === "stackedArea" || t.chartType === "stackedAreaPct", d = t.title ? ae(t, s, r) : 0, f = t.title ? s * .035 : 0, p = t.title ? s * .035 : 0, m = t.title ? d + f + p : 0, _ = re(t, o, s), v = _?.side === "r" ? _.reserveW : 0, b = _?.side === "l" ? _.reserveW : 0, x = _?.side === "t" ? _.reserveH : 0, S = _?.side === "b" ? _.reserveH : 0, C = Math.max(8, Math.min(10, s * .045)), w = t.catAxisTitle ? C + 4 : 0, T = t.valAxisTitle ? C + 4 : 0, E = {
1159
+ t: m + x + s * .02,
1160
+ r: v + o * .05,
1161
+ b: s * .14 + w + S,
1162
+ l: o * .12 + T + b
1163
+ };
1164
+ se(e, t, i, a + f, o, d);
1165
+ let D = i + E.l, O = a + E.t, A = o - E.l - E.r, j = s - E.t - E.b;
1166
+ if (A <= 0 || j <= 0) return;
1167
+ t.plotAreaBg && (e.fillStyle = `#${t.plotAreaBg}`, e.fillRect(D, O, A, j));
1168
+ let M = 0;
1169
+ for (let e = 0; e < l; e++) if (u) {
1170
+ let n = 0;
1171
+ for (let r of t.series) n += r.values[e] ?? 0;
1172
+ M = Math.max(M, n);
1173
+ } else for (let n of t.series) M = Math.max(M, n.values[e] ?? 0);
1174
+ t.valMax != null && (M = t.valMax), M === 0 && (M = 1);
1175
+ let N = h(M), P = t.valMax ?? g(M, N), F = (e) => D + (l === 1 ? A / 2 : e / (l - 1) * A), I = (e) => O + j - e / P * j;
1176
+ if (!t.valAxisHidden) {
1177
+ e.font = `${Math.max(8, Math.min(11, j / 20))}px sans-serif`, e.textBaseline = "middle";
1178
+ let n = Math.round(P / N);
1179
+ for (let r = 0; r <= n; r++) {
1180
+ let n = r * N, i = I(n);
1181
+ e.strokeStyle = r === 0 ? "#aaa" : "#e0e0e0", e.lineWidth = r === 0 ? 1 : .5, e.beginPath(), e.moveTo(D, i), e.lineTo(D + A, i), e.stroke(), e.fillStyle = t.valAxisFontColor ? `#${t.valAxisFontColor}` : "#555", e.textAlign = "right", e.fillText(y(n, t.valAxisFormatCode), D - 4, i);
1182
+ }
1183
+ }
1184
+ !t.catAxisHidden && !t.catAxisLineHidden && (e.strokeStyle = "#aaa", e.lineWidth = 1, e.beginPath(), e.moveTo(D, O + j), e.lineTo(D + A, O + j), e.stroke());
1185
+ let L = u ? Array(l).fill(0) : null;
1186
+ for (let n = t.series.length - 1; n >= 0; n--) {
1187
+ let r = t.series[n], i = z(n, r), a = O + j;
1188
+ if (e.beginPath(), u && L) {
1189
+ for (let t = 0; t < l; t++) {
1190
+ let n = (r.values[t] ?? 0) + L[t], i = F(t), a = I(n);
1191
+ t === 0 ? e.moveTo(i, a) : e.lineTo(i, a);
1192
+ }
1193
+ for (let t = l - 1; t >= 0; t--) e.lineTo(F(t), I(L[t]));
1194
+ for (let e = 0; e < l; e++) L[e] += r.values[e] ?? 0;
1195
+ } else {
1196
+ e.moveTo(F(0), a);
1197
+ for (let t = 0; t < l; t++) e.lineTo(F(t), I(r.values[t] ?? 0));
1198
+ e.lineTo(F(l - 1), a);
1199
+ }
1200
+ e.closePath(), e.fillStyle = k(i, .6), e.fill(), e.strokeStyle = i, e.lineWidth = 1.5, e.setLineDash([]), e.stroke();
1201
+ }
1202
+ if (!t.catAxisHidden) {
1203
+ let n = Math.max(1, Math.ceil(l / 8));
1204
+ e.fillStyle = t.catAxisFontColor ? `#${t.catAxisFontColor}` : "#555", e.textAlign = "center", e.textBaseline = "top", e.font = `${Math.max(8, Math.min(11, A / l * .8))}px sans-serif`;
1205
+ for (let t = 0; t < l; t += n) e.fillText((c[t] ?? "").toString().slice(0, 10), F(t), O + j + 3);
1206
+ }
1207
+ ie(e, t, _, i, a, o, s, D, O, A, j, m + 2), t.catAxisTitle && U(e, t.catAxisTitle, D, O, A, j, "cat", C), t.valAxisTitle && U(e, t.valAxisTitle, D, O, A, j, "val", C);
1208
+ }
1209
+ function fe(e, t, n, r, i) {
1210
+ let { x: a, y: o, w: s, h: c } = n, l = t.series[0];
1211
+ if (!l) return;
1212
+ let u = l.categories && l.categories.length > 0 ? l.categories : t.categories, d = l.values.map((e) => Math.abs(e ?? 0)), f = d.reduce((e, t) => e + t, 0);
1213
+ if (f === 0) return;
1214
+ let p = t.title ? ae(t, c, i) : 0, m = t.title ? c * .035 : 0, h = t.title ? c * .035 : 0, g = t.title ? p + m + h : 0;
1215
+ se(e, t, a, o + m, s, p);
1216
+ let _ = t.showLegend ? (() => {
1217
+ let e = t.legendPos ?? "r", n = e === "l" ? "l" : e === "t" ? "t" : e === "b" ? "b" : "r";
1218
+ return n === "r" || n === "l" ? {
1219
+ side: n,
1220
+ reserveW: Math.max(80, s * .28),
1221
+ reserveH: 0
1222
+ } : {
1223
+ side: n,
1224
+ reserveW: 0,
1225
+ reserveH: Math.max(18, c * .08)
1226
+ };
1227
+ })() : null, v = _?.side === "r" ? _.reserveW : 0, y = _?.side === "l" ? _.reserveW : 0, b = _?.side === "t" ? _.reserveH : 0, x = _?.side === "b" ? _.reserveH : 0, S = s - v - y, C = c - g - b - x - c * .02, w = a + y + S / 2, T = o + g + b + c * .02 + C / 2, E = Math.min(S, C) * .42, D = r ? E * .5 : 0, O = -Math.PI / 2;
1228
+ for (let n = 0; n < d.length; n++) {
1229
+ let i = d[n] / f * Math.PI * 2, a = B(n, l);
1230
+ if (e.beginPath(), e.moveTo(w, T), e.arc(w, T, E, O, O + i), e.closePath(), e.fillStyle = a, e.fill(), e.strokeStyle = "#fff", e.lineWidth = 1, e.stroke(), t.showDataLabels && i > .15) {
1231
+ let t = O + i / 2, a = E * (r ? .75 : .6), o = w + Math.cos(t) * a, s = T + Math.sin(t) * a, c = Math.round(d[n] / f * 100);
1232
+ e.font = `bold ${Math.max(8, E * .1)}px sans-serif`, e.fillStyle = "#fff", e.textAlign = "center", e.textBaseline = "middle", e.fillText(`${c}%`, o, s);
1233
+ }
1234
+ O += i;
1235
+ }
1236
+ if (r && (e.beginPath(), e.arc(w, T, D, 0, Math.PI * 2), e.fillStyle = "#fff", e.fill()), _) {
1237
+ let n = [{
1238
+ ...l,
1239
+ categories: u
1240
+ }], r = w - S / 2;
1241
+ ie(e, {
1242
+ ...t,
1243
+ series: n
1244
+ }, _, a, o, s, c, r, T - C / 2, S, C, g + 2);
1245
+ }
1246
+ }
1247
+ function pe(e, t, n, r) {
1248
+ let { x: i, y: a, w: o, h: s } = n, c = ce(t), l = c.length;
1249
+ if (l < 3) return;
1250
+ let u = t.title ? ae(t, s, r) : 0, d = t.title ? s * .035 : 0, f = t.title ? s * .035 : 0, p = t.title ? u + d + f : 0, m = re(t, o, s), _ = m?.side === "r" ? m.reserveW : 0, y = m?.side === "l" ? m.reserveW : 0, b = m?.side === "t" ? m.reserveH : 0, x = m?.side === "b" ? m.reserveH : 0;
1251
+ se(e, t, i, a + d, o, u);
1252
+ let S = o - _ - y, C = s - p - b - x - s * .02, w = i + y + S / 2, T = a + p + b + s * .02 + C / 2, E = Math.min(S, C) * .38, D = 0;
1253
+ for (let e of t.series) for (let t of e.values) D = Math.max(D, t ?? 0);
1254
+ t.valMax != null && (D = t.valMax), D === 0 && (D = 1);
1255
+ let O = h(D), A = t.valMax ?? g(D, O), j = -Math.PI / 2, M = (e) => j + e / l * Math.PI * 2, N = Math.round(A / O);
1256
+ e.strokeStyle = "#ddd", e.lineWidth = .5;
1257
+ for (let t = 1; t <= N; t++) {
1258
+ let n = t / N * E;
1259
+ e.beginPath();
1260
+ for (let t = 0; t < l; t++) {
1261
+ let r = M(t), i = w + Math.cos(r) * n, a = T + Math.sin(r) * n;
1262
+ t === 0 ? e.moveTo(i, a) : e.lineTo(i, a);
1263
+ }
1264
+ e.closePath(), e.stroke();
1265
+ }
1266
+ e.strokeStyle = "#bbb", e.lineWidth = .5;
1267
+ for (let t = 0; t < l; t++) {
1268
+ let n = M(t);
1269
+ e.beginPath(), e.moveTo(w, T), e.lineTo(w + Math.cos(n) * E, T + Math.sin(n) * E), e.stroke();
1270
+ }
1271
+ if (!t.valAxisHidden) {
1272
+ e.font = `${oe(t.valAxisFontSizeHpt, s, r)}px sans-serif`, e.fillStyle = "#555", e.textAlign = "right", e.textBaseline = "middle";
1273
+ for (let t = 1; t <= N; t++) {
1274
+ let n = t / N * A, r = t / N * E;
1275
+ e.fillText(v(n), w - 3, T - r);
1276
+ }
1277
+ }
1278
+ e.font = `${Math.max(8, Math.min(11, E * .2))}px sans-serif`, e.fillStyle = "#444", e.textBaseline = "middle";
1279
+ for (let t = 0; t < l; t++) {
1280
+ let n = M(t), r = w + Math.cos(n) * (E + 12), i = T + Math.sin(n) * (E + 12);
1281
+ e.textAlign = Math.cos(n) < -.1 ? "right" : Math.cos(n) > .1 ? "left" : "center", e.fillText((c[t] ?? "").toString().slice(0, 12), r, i);
1282
+ }
1283
+ let P = t.radarStyle === "filled", F = Math.max(2, E * .025);
1284
+ for (let n = 0; n < t.series.length; n++) {
1285
+ let r = t.series[n], i = z(n, r), a = [];
1286
+ for (let e = 0; e < l; e++) {
1287
+ let t = r.values[e];
1288
+ if (t == null) {
1289
+ a.push(null);
1290
+ continue;
1291
+ }
1292
+ let n = t / A, i = M(e);
1293
+ a.push([w + Math.cos(i) * E * n, T + Math.sin(i) * E * n]);
1294
+ }
1295
+ e.beginPath();
1296
+ let o = !1;
1297
+ for (let t of a) {
1298
+ if (t == null) {
1299
+ o = !1;
1300
+ continue;
1301
+ }
1302
+ o ? e.lineTo(t[0], t[1]) : (e.moveTo(t[0], t[1]), o = !0);
1303
+ }
1304
+ let s = a.every((e) => e != null);
1305
+ if (P && s ? (e.closePath(), e.fillStyle = k(i, .25), e.fill()) : s && e.closePath(), e.strokeStyle = i, e.lineWidth = 2, e.stroke(), !P && r.showMarker !== !1) {
1306
+ e.fillStyle = i;
1307
+ for (let t of a) t != null && (e.beginPath(), e.arc(t[0], t[1], F, 0, Math.PI * 2), e.fill());
1308
+ }
1309
+ }
1310
+ ie(e, t, m, i, a, o, s, w - S / 2, T - C / 2, S, C, p + 2);
1311
+ }
1312
+ function q(e, t, n, r) {
1313
+ let { x: i, y: a, w: o, h: s } = n, c = t.title ? ae(t, s, r) : 0, l = t.title ? s * .035 : 0, u = t.title ? s * .035 : 0, d = t.title ? c + l + u : 0, f = re(t, o, s), p = f?.side === "r" ? f.reserveW : 0, m = f?.side === "l" ? f.reserveW : 0, g = f?.side === "t" ? f.reserveH : 0, _ = f?.side === "b" ? f.reserveH : 0, v = Math.max(8, Math.min(10, s * .045)), b = t.catAxisTitle ? v + 4 : 0, x = t.valAxisTitle ? v + 4 : 0;
1314
+ if (t.title) {
1315
+ let n = t.titleManualLayout;
1316
+ n && (n.x !== void 0 || n.y !== void 0) ? se(e, t, i + n.x * o, a + n.y * s, (n.w ?? .5) * o, c) : se(e, t, i, a + l, o, c);
1317
+ }
1318
+ let S = t.plotAreaManualLayout, C, w, T, E;
1319
+ if (S && S.w != null && S.h != null) C = i + S.x * o, w = a + S.y * s, T = S.w * o, E = S.h * s;
1320
+ else {
1321
+ let e = {
1322
+ t: d + g + s * .02,
1323
+ r: p + o * .05,
1324
+ b: (t.catAxisHidden ? s * .04 : s * .12) + b + _,
1325
+ l: (t.valAxisHidden ? o * .04 : o * .12) + x + m
1326
+ };
1327
+ C = i + e.l, w = a + e.t, T = o - e.l - e.r, E = s - e.t - e.b;
1328
+ }
1329
+ if (T <= 0 || E <= 0) return;
1330
+ t.plotAreaBg && (e.fillStyle = `#${t.plotAreaBg}`, e.fillRect(C, w, T, E));
1331
+ let D = [], O = [];
1332
+ for (let e of t.series) {
1333
+ let t = e.categories ?? [];
1334
+ for (let e of t) {
1335
+ let t = parseFloat(e);
1336
+ isNaN(t) || D.push(t);
1337
+ }
1338
+ for (let t of e.values) t != null && O.push(t);
1339
+ }
1340
+ let k = D.length === 0;
1341
+ if (k) {
1342
+ let e = Math.max(...t.series.map((e) => e.values.length));
1343
+ for (let t = 0; t < e; t++) D.push(t);
1344
+ }
1345
+ let A = Math.min(...D), j = Math.max(...D), M = Math.min(...O), N = Math.max(...O);
1346
+ if (A === j && (--A, j += 1), M === N && (--M, N += 1), t.valMin == null ? M > 0 && (M = 0) : M = t.valMin, t.valMax != null && (N = t.valMax), t.catAxisMin != null && (A = t.catAxisMin), t.catAxisMax != null && (j = t.catAxisMax), t.catAxisMin == null || t.catAxisMax == null) {
1347
+ let e = h(j - A);
1348
+ e > 0 && (t.catAxisMin ?? (A = Math.floor(A / e) * e), t.catAxisMax ?? (j = Math.ceil(j / e) * e));
1349
+ }
1350
+ let P = (e) => C + (e - A) / (j - A) * T, I = (e) => w + E - (e - M) / (N - M) * E;
1351
+ if (!t.valAxisHidden) {
1352
+ let n = Math.max(8, Math.min(11, E / 20));
1353
+ e.font = `${t.valAxisFontBold ? "bold " : ""}${n}px sans-serif`;
1354
+ let r = h(N - M), i = Math.round((N - M) / r) + 1;
1355
+ for (let n = 0; n < i; n++) {
1356
+ let i = M + n * r;
1357
+ if (i > N + r * .01) break;
1358
+ let a = I(i);
1359
+ e.strokeStyle = "#e0e0e0", e.lineWidth = .5, e.beginPath(), e.moveTo(C, a), e.lineTo(C + T, a), e.stroke(), e.fillStyle = "#555", e.textAlign = "right", e.textBaseline = "middle", e.fillText(y(i, t.valAxisFormatCode), C - 4, a);
1360
+ let o = t.valAxisLineColor ? `#${t.valAxisLineColor}` : void 0, s = t.valAxisLineWidthEmu ? Math.max(.5, t.valAxisLineWidthEmu / F) : void 0;
1361
+ G(e, t.valAxisMajorTickMark, "val", C, a, o, s);
1362
+ }
1363
+ }
1364
+ let L = w + E;
1365
+ if (t.catAxisCrossesAt != null) L = ve(I(t.catAxisCrossesAt), w, w + E);
1366
+ else {
1367
+ let e = t.catAxisCrosses ?? "autoZero";
1368
+ e === "autoZero" && M < 0 && N > 0 ? L = ve(I(0), w, w + E) : e === "min" ? L = w + E : e === "max" && (L = w);
1369
+ }
1370
+ if (!t.catAxisHidden && !t.catAxisLineHidden && (e.save(), e.strokeStyle = t.catAxisLineColor ? `#${t.catAxisLineColor}` : "#888", e.lineWidth = t.catAxisLineWidthEmu ? Math.max(.5, t.catAxisLineWidthEmu / F) : 1, e.lineCap = "butt", e.beginPath(), e.moveTo(C, L), e.lineTo(C + T, L), e.stroke(), e.restore()), !t.valAxisHidden && !t.valAxisLineHidden && (e.save(), e.strokeStyle = t.valAxisLineColor ? `#${t.valAxisLineColor}` : "#888", e.lineWidth = t.valAxisLineWidthEmu ? Math.max(.5, t.valAxisLineWidthEmu / F) : 1, e.beginPath(), e.moveTo(C, w), e.lineTo(C, w + E), e.stroke(), e.restore()), !t.catAxisHidden) {
1371
+ let n = Math.max(8, Math.min(11, E / 20));
1372
+ e.font = `${t.catAxisFontBold ? "bold " : ""}${n}px sans-serif`;
1373
+ let r = h(j - A), i = Math.round((j - A) / r) + 1;
1374
+ e.fillStyle = "#555", e.textAlign = "center", e.textBaseline = "top";
1375
+ for (let n = 0; n < i; n++) {
1376
+ let i = A + n * r;
1377
+ if (i > j + r * .01) break;
1378
+ let a = P(i);
1379
+ e.fillText(y(i, t.catAxisFormatCode), a, L + 4);
1380
+ let o = t.catAxisLineColor ? `#${t.catAxisLineColor}` : void 0, s = t.catAxisLineWidthEmu ? Math.max(.5, t.catAxisLineWidthEmu / F) : void 0;
1381
+ G(e, t.catAxisMajorTickMark, "cat", L, a, o, s);
1382
+ }
1383
+ }
1384
+ let R = t.chartType === "bubble", B = R ? "marker" : t.scatterStyle ?? "marker", V = B === "line" || B === "lineMarker" || B === "lineNoMarker", H = B === "smooth" || B === "smoothMarker" || B === "smoothNoMarker", ee = B === "lineNoMarker" || B === "smoothNoMarker";
1385
+ for (let n = 0; n < t.series.length; n++) {
1386
+ let i = t.series[n], a = z(n, i), o = i.categories ?? [];
1387
+ for (let t of i.errBars ?? []) he(e, i, t, o, k, P, I, a);
1388
+ if (V || H) {
1389
+ let t = [];
1390
+ for (let e = 0; e < i.values.length; e++) {
1391
+ let n = i.values[e];
1392
+ if (n == null) continue;
1393
+ let r = k ? e : parseFloat(o[e] ?? "0");
1394
+ isNaN(r) || t.push({
1395
+ x: P(r),
1396
+ y: I(n)
1397
+ });
1398
+ }
1399
+ if (t.length >= 2) {
1400
+ if (e.save(), e.strokeStyle = i.color ? `#${i.color}` : a, e.lineWidth = 1.5, e.beginPath(), e.moveTo(t[0].x, t[0].y), H && t.length >= 3) for (let n = 0; n < t.length - 1; n++) {
1401
+ let r = t[n - 1] ?? t[n], i = t[n], a = t[n + 1], o = t[n + 2] ?? a, s = i.x + (a.x - r.x) / 6, c = i.y + (a.y - r.y) / 6, l = a.x - (o.x - i.x) / 6, u = a.y - (o.y - i.y) / 6;
1402
+ e.bezierCurveTo(s, c, l, u, a.x, a.y);
1403
+ }
1404
+ else for (let n = 1; n < t.length; n++) e.lineTo(t[n].x, t[n].y);
1405
+ e.stroke(), e.restore();
1406
+ }
1407
+ }
1408
+ if (!(ee || i.showMarker === !1 || typeof i.markerSymbol == "string" && i.markerSymbol === "none")) {
1409
+ let t = 0;
1410
+ if (R && i.bubbleSizes && i.bubbleSizes.length > 0) {
1411
+ let e = Math.max(0, ...i.bubbleSizes.filter((e) => e != null));
1412
+ e > 0 && (t = Math.min(T, E) / Math.max(8, i.values.length * 1.6) / Math.sqrt(e));
1413
+ }
1414
+ for (let n = 0; n < i.values.length; n++) {
1415
+ let s = i.values[n];
1416
+ if (s == null) continue;
1417
+ let c = k ? n : parseFloat(o[n] ?? "0");
1418
+ if (isNaN(c)) continue;
1419
+ let l = (i.dataPointOverrides ?? []).find((e) => e.idx === n), u = l?.markerSymbol ?? i.markerSymbol ?? "circle", d = l?.markerSize ?? i.markerSize ?? 5;
1420
+ if (R && t > 0) {
1421
+ let e = i.bubbleSizes?.[n];
1422
+ e != null && e > 0 && (d = Math.sqrt(e) * t * 2 / r);
1423
+ }
1424
+ let f = l?.markerFill ?? l?.color ?? i.markerFill ?? a, p = l?.markerLine ?? i.markerLine ?? null;
1425
+ me(e, P(c), I(s), u, d, f, p, r);
1426
+ }
1427
+ }
1428
+ ge(e, i, o, k, P, I, E, r);
1429
+ }
1430
+ ie(e, t, f, i, a, o, s, C, w, T, E, d + 2), t.catAxisTitle && U(e, t.catAxisTitle, C, w, T, E, "cat", v), t.valAxisTitle && U(e, t.valAxisTitle, C, w, T, E, "val", v);
1431
+ }
1432
+ function me(e, t, n, r, i, a, o, s) {
1433
+ let c = Math.max(2, i * s), l = c / 2, u = a.startsWith("#") ? a : `#${a}`, d = o ? o.startsWith("#") ? o : `#${o}` : null;
1434
+ switch (e.save(), e.fillStyle = u, d && (e.strokeStyle = d, e.lineWidth = 1), r) {
1435
+ case "square":
1436
+ e.fillRect(t - l, n - l, c, c), o && e.strokeRect(t - l, n - l, c, c);
1437
+ break;
1438
+ case "diamond":
1439
+ e.beginPath(), e.moveTo(t, n - l), e.lineTo(t + l, n), e.lineTo(t, n + l), e.lineTo(t - l, n), e.closePath(), e.fill(), o && e.stroke();
1440
+ break;
1441
+ case "triangle":
1442
+ e.beginPath(), e.moveTo(t, n - l), e.lineTo(t + l, n + l), e.lineTo(t - l, n + l), e.closePath(), e.fill(), o && e.stroke();
1443
+ break;
1444
+ case "x":
1445
+ e.strokeStyle = u, e.lineWidth = Math.max(1, c * .18), e.beginPath(), e.moveTo(t - l, n - l), e.lineTo(t + l, n + l), e.moveTo(t - l, n + l), e.lineTo(t + l, n - l), e.stroke();
1446
+ break;
1447
+ case "plus":
1448
+ e.strokeStyle = u, e.lineWidth = Math.max(1, c * .18), e.beginPath(), e.moveTo(t - l, n), e.lineTo(t + l, n), e.moveTo(t, n - l), e.lineTo(t, n + l), e.stroke();
1449
+ break;
1450
+ case "star":
1451
+ e.beginPath();
1452
+ for (let r = 0; r < 10; r++) {
1453
+ let i = r % 2 == 0 ? l : l * .45, a = -Math.PI / 2 + r * Math.PI / 5, o = t + Math.cos(a) * i, s = n + Math.sin(a) * i;
1454
+ r === 0 ? e.moveTo(o, s) : e.lineTo(o, s);
1455
+ }
1456
+ e.closePath(), e.fill(), o && e.stroke();
1457
+ break;
1458
+ case "dot":
1459
+ e.beginPath(), e.arc(t, n, Math.max(1, c * .25), 0, Math.PI * 2), e.fill();
1460
+ break;
1461
+ case "dash": {
1462
+ let r = Math.max(1, c * .25);
1463
+ e.fillRect(t - l, n - r / 2, c, r);
1464
+ break;
1465
+ }
1466
+ default:
1467
+ e.beginPath(), e.arc(t, n, l, 0, Math.PI * 2), e.fill(), o && e.stroke();
1468
+ break;
1469
+ }
1470
+ e.restore();
1471
+ }
1472
+ function he(e, t, n, r, i, a, o, s) {
1473
+ e.save(), e.strokeStyle = n.color ? `#${n.color}` : s, e.lineWidth = n.lineWidthEmu ? Math.max(.5, n.lineWidthEmu / F) : 1, e.setLineDash(ye(n.dash));
1474
+ let c = n.barType === "plus" || n.barType === "both", l = n.barType === "minus" || n.barType === "both", u = n.dir === "x", d = e.lineWidth * 1.5;
1475
+ for (let s = 0; s < t.values.length; s++) {
1476
+ let f = t.values[s];
1477
+ if (f == null) continue;
1478
+ let p = i ? s : parseFloat(r[s] ?? "0");
1479
+ if (isNaN(p)) continue;
1480
+ let m = a(p), h = o(f), g = (t) => {
1481
+ let r = m, i = h;
1482
+ u ? r = a(p + t) : i = o(f + t), e.beginPath(), e.moveTo(m, h), e.lineTo(r, i), e.stroke(), n.noEndCap || (e.save(), e.setLineDash([]), e.beginPath(), u ? (e.moveTo(r, i - d), e.lineTo(r, i + d)) : (e.moveTo(r - d, i), e.lineTo(r + d, i)), e.stroke(), e.restore());
1483
+ };
1484
+ if (c) {
1485
+ let e = n.plus[s];
1486
+ e != null && g(e);
1487
+ }
1488
+ if (l) {
1489
+ let e = n.minus[s];
1490
+ e != null && g(-e);
1491
+ }
1492
+ }
1493
+ e.restore();
1494
+ }
1495
+ function ge(e, t, n, r, i, a, o, s) {
1496
+ let c = t.dataLabelOverrides ?? [];
1497
+ if (c.length === 0 && !t.seriesDataLabels) return;
1498
+ let l = t.seriesDataLabels;
1499
+ for (let u = 0; u < t.values.length; u++) {
1500
+ let d = t.values[u];
1501
+ if (d == null) continue;
1502
+ let f = r ? u : parseFloat(n[u] ?? "0");
1503
+ if (isNaN(f)) continue;
1504
+ let p = c.find((e) => e.idx === u), m;
1505
+ if (p) {
1506
+ if (p.text === "") continue;
1507
+ m = p.text;
1508
+ } else if (l && (l.showVal || l.showSerName || l.showCatName)) {
1509
+ let e = [];
1510
+ if (l.showCatName && !r && e.push(n[u] ?? ""), l.showSerName && e.push(t.name), l.showVal && e.push(y(d, l.formatCode ?? null)), m = e.filter(Boolean).join(" "), !m) continue;
1511
+ } else continue;
1512
+ let h = p?.position ?? l?.position ?? "r", g = p?.fontSizeHpt ?? l?.fontSizeHpt, _ = g ? g / 100 * s : Math.max(9, Math.min(11, o / 25)), v = p?.fontColor ?? l?.fontColor, b = p?.fontBold ?? l?.fontBold ?? !1;
1513
+ _e(e, i(f), a(d), m, h, _, v, b);
1514
+ }
1515
+ }
1516
+ function _e(e, t, n, r, i, a, o, s) {
1517
+ e.save(), e.font = `${s ? "bold " : ""}${a}px sans-serif`, e.fillStyle = o ? `#${o}` : "#333";
1518
+ let c = a * .6, l = t, u = n;
1519
+ switch (i) {
1520
+ case "l":
1521
+ e.textAlign = "right", e.textBaseline = "middle", l = t - c;
1522
+ break;
1523
+ case "r":
1524
+ e.textAlign = "left", e.textBaseline = "middle", l = t + c;
1525
+ break;
1526
+ case "t":
1527
+ e.textAlign = "center", e.textBaseline = "bottom", u = n - c;
1528
+ break;
1529
+ case "b":
1530
+ e.textAlign = "center", e.textBaseline = "top", u = n + c;
1531
+ break;
1532
+ case "ctr":
1533
+ e.textAlign = "center", e.textBaseline = "middle";
1534
+ break;
1535
+ default:
1536
+ e.textAlign = "left", e.textBaseline = "middle", l = t + c;
1537
+ break;
1538
+ }
1539
+ let d = r.split(/\r?\n/), f = a * 1.15, p = f * d.length, m = u;
1540
+ e.textBaseline === "middle" ? m = u - (p - f) / 2 : e.textBaseline === "bottom" && (m = u - (p - f));
1541
+ for (let t of d) e.fillText(t, l, m), m += f;
1542
+ e.restore();
1543
+ }
1544
+ function ve(e, t, n) {
1545
+ return e < t ? t : e > n ? n : e;
1546
+ }
1547
+ function ye(e) {
1548
+ if (!e) return [];
1549
+ switch (e) {
1550
+ case "solid": return [];
1551
+ case "dot":
1552
+ case "sysDot": return [1, 2];
1553
+ case "dash":
1554
+ case "sysDash": return [4, 2];
1555
+ case "lgDash": return [8, 3];
1556
+ case "dashDot":
1557
+ case "sysDashDot": return [
1558
+ 4,
1559
+ 2,
1560
+ 1,
1561
+ 2
1562
+ ];
1563
+ case "lgDashDot": return [
1564
+ 8,
1565
+ 3,
1566
+ 1,
1567
+ 3
1568
+ ];
1569
+ case "dashDotDot":
1570
+ case "sysDashDotDot":
1571
+ case "lgDashDotDot": return [
1572
+ 4,
1573
+ 2,
1574
+ 1,
1575
+ 2,
1576
+ 1,
1577
+ 2
1578
+ ];
1579
+ default: return [];
1580
+ }
1581
+ }
1582
+ function be(e, t, n) {
1583
+ let { x: r, y: i, w: a, h: o } = n, s = t.plotAreaManualLayout, c, l, u, d;
1584
+ if (s && s.w != null && s.h != null) c = r + s.x * a, l = i + s.y * o, u = s.w * a, d = s.h * o;
1585
+ else {
1586
+ let e = t.valAxisHidden ? a * .01 : a * .11, n = a * .01, s = o * .12, f = o * .14;
1587
+ c = r + e, l = i + s, u = a - e - n, d = o - s - f;
1588
+ }
1589
+ let f = t.series[0]?.values ?? [], p = t.categories, m = p.length;
1590
+ if (m === 0) return;
1591
+ let g = new Set(t.subtotalIndices), _ = 0, v = [];
1592
+ for (let e = 0; e < m; e++) {
1593
+ let t = f[e] ?? 0;
1594
+ if (e === 0 || g.has(e)) v.push({
1595
+ start: 0,
1596
+ end: t,
1597
+ isSub: !0,
1598
+ isPos: !0
1599
+ }), _ = t;
1600
+ else {
1601
+ let e = t >= 0 ? _ : _ + t, n = t >= 0 ? _ + t : _;
1602
+ v.push({
1603
+ start: e,
1604
+ end: n,
1605
+ isSub: !1,
1606
+ isPos: t >= 0
1607
+ }), _ += t;
1608
+ }
1609
+ }
1610
+ let y = v.map((e) => e.end), b = v.map((e) => e.start), x = Math.max(...y, ...b), S = Math.min(...b, 0), C = x - S;
1611
+ if (C <= 0) return;
1612
+ let w = S < 0 ? S - C * .05 : 0, T = (x - w) * 1.1, E = w + T, D = h(T);
1613
+ e.save();
1614
+ let O = Math.round(o * .042);
1615
+ if (e.font = `${O}px sans-serif`, !t.valAxisHidden) {
1616
+ e.strokeStyle = "#e8e8e8", e.lineWidth = .7, e.fillStyle = "#666", e.textAlign = "right", e.textBaseline = "middle";
1617
+ for (let t = Math.ceil(w / D) * D; t <= E; t += D) {
1618
+ let n = l + d * (1 - (t - w) / T);
1619
+ e.beginPath(), e.moveTo(c, n), e.lineTo(c + u, n), e.stroke(), e.fillText(t.toLocaleString(), c - 4, n);
1620
+ }
1621
+ }
1622
+ let k = !t.valAxisHidden && !t.valAxisLineHidden, A = !t.catAxisHidden && !t.catAxisLineHidden;
1623
+ (k || A) && (e.strokeStyle = "#bbb", e.lineWidth = 1, e.beginPath(), k ? (e.moveTo(c, l), e.lineTo(c, l + d), A && e.lineTo(c + u, l + d)) : A && (e.moveTo(c, l + d), e.lineTo(c + u, l + d)), e.stroke());
1624
+ let j = u / m, M = j / (1 + (t.barGapWidth ?? 150) / 100);
1625
+ v.forEach((n, r) => {
1626
+ let i = c + j * r + (j - M) / 2, a = l + d * (1 - (n.end - w) / T), s = l + d * (1 - (n.start - w) / T), u = Math.max(1, s - a);
1627
+ if (n.isSub ? (e.fillStyle = "#196ECA", e.fillRect(i, a, M, u)) : (e.strokeStyle = n.isPos ? "#5BA4E6" : "#E46970", e.lineWidth = 1.5, e.strokeRect(i + .75, a + .75, M - 1.5, u - 1.5)), r < m - 1) {
1628
+ let t = c + j * (r + 1) + (j - M) / 2, o = n.isPos ? a : s;
1629
+ e.strokeStyle = "#ccc", e.lineWidth = .8, e.setLineDash([3, 3]), e.beginPath(), e.moveTo(i + M, o), e.lineTo(t, o), e.stroke(), e.setLineDash([]);
1630
+ }
1631
+ let p = f[r] ?? 0, h = p < 0 ? `△ ${Math.abs(p).toLocaleString()}` : p.toLocaleString(), g = t.series[0]?.dataLabelColors?.[r] ?? null;
1632
+ e.fillStyle = g ? `#${g}` : t.dataLabelFontColor ? `#${t.dataLabelFontColor}` : "#595959", e.font = `bold ${Math.round(o * .044)}px sans-serif`, e.textAlign = "center", p < 0 ? (e.textBaseline = "top", e.fillText(h, i + M / 2, s + 3)) : (e.textBaseline = "bottom", e.fillText(h, i + M / 2, a - 3));
1633
+ }), e.textAlign = "center", e.textBaseline = "top", e.fillStyle = "#666", e.font = `${Math.round(o * .038)}px sans-serif`;
1634
+ let N = l + d + 4;
1635
+ for (let t = 0; t < m; t++) {
1636
+ let n = c + j * t + j / 2;
1637
+ p[t].split(/\s+/).forEach((t, r) => e.fillText(t, n, N + r * (O + 2)));
1527
1638
  }
1528
- return i;
1639
+ e.restore();
1529
1640
  }
1530
- function re(e, t) {
1531
- if (typeof OffscreenCanvas < "u") return new OffscreenCanvas(e, t);
1532
- if (typeof document < "u") {
1533
- let n = document.createElement("canvas");
1534
- return n.width = e, n.height = t, n;
1641
+ function xe(e, t, n, r = L) {
1642
+ let { x: i, y: a, w: o, h: s } = n;
1643
+ if (t.chartBg && (e.fillStyle = `#${t.chartBg}`, e.fillRect(i, a, o, s)), t.series.length === 0) {
1644
+ e.fillStyle = "#888", e.font = "12px sans-serif", e.textAlign = "center", e.textBaseline = "middle", e.fillText("(no data)", i + o / 2, a + s / 2);
1645
+ return;
1646
+ }
1647
+ switch (t.chartType) {
1648
+ case "clusteredBar":
1649
+ case "clusteredBarH":
1650
+ case "stackedBar":
1651
+ case "stackedBarH":
1652
+ case "stackedBarPct":
1653
+ case "stackedBarHPct":
1654
+ ue(e, t, n, r);
1655
+ break;
1656
+ case "line":
1657
+ case "stackedLine":
1658
+ case "stackedLinePct":
1659
+ K(e, t, n, r);
1660
+ break;
1661
+ case "area":
1662
+ case "stackedArea":
1663
+ case "stackedAreaPct":
1664
+ de(e, t, n, r);
1665
+ break;
1666
+ case "pie":
1667
+ fe(e, t, n, !1, r);
1668
+ break;
1669
+ case "doughnut":
1670
+ fe(e, t, n, !0, r);
1671
+ break;
1672
+ case "radar":
1673
+ pe(e, t, n, r);
1674
+ break;
1675
+ case "scatter":
1676
+ case "bubble":
1677
+ q(e, t, n, r);
1678
+ break;
1679
+ case "waterfall":
1680
+ be(e, t, n);
1681
+ break;
1682
+ default: e.fillStyle = "#888", e.font = "11px sans-serif", e.textAlign = "center", e.textBaseline = "middle", e.fillText(`Chart: ${t.chartType}`, i + o / 2, a + s / 2);
1535
1683
  }
1536
- return null;
1537
- }
1538
- function ie(e) {
1539
- return `rgba(${parseInt(e.slice(0, 2), 16)},${parseInt(e.slice(2, 4), 16)},${parseInt(e.slice(4, 6), 16)},${e.length >= 8 ? parseInt(e.slice(6, 8), 16) / 255 : 1})`;
1540
1684
  }
1541
1685
  //#endregion
1542
- //#region packages/core/src/shape/paint.ts
1543
- function ae(e, t = 1) {
1544
- return `rgba(${parseInt(e.slice(0, 2), 16)},${parseInt(e.slice(2, 4), 16)},${parseInt(e.slice(4, 6), 16)},${e.length >= 8 ? parseInt(e.slice(6, 8), 16) / 255 : t})`;
1545
- }
1546
- function oe(e, t, n, r, i, a) {
1547
- if (!e || e.fillType === "none") return null;
1548
- if (e.fillType === "solid") return ae(e.color);
1549
- if (e.fillType === "pattern") return se(e, t);
1550
- if (e.fillType === "gradient") {
1551
- let o = e.stops;
1552
- if (o.length === 0) return null;
1553
- if (o.length === 1) return ae(o[0].color);
1554
- let s;
1555
- if (e.gradType === "radial") {
1556
- let e = n + i / 2, o = r + a / 2, c = Math.sqrt(i * i + a * a) / 2;
1557
- s = t.createRadialGradient(e, o, 0, e, o, c);
1558
- } else {
1559
- let o = e.angle * Math.PI / 180, c = n + i / 2, l = r + a / 2, u = (Math.abs(Math.cos(o)) * i + Math.abs(Math.sin(o)) * a) / 2;
1560
- s = t.createLinearGradient(c - Math.cos(o) * u, l - Math.sin(o) * u, c + Math.cos(o) * u, l + Math.sin(o) * u);
1686
+ //#region packages/core/src/autoResize.ts
1687
+ function Se(e, t, n = {}) {
1688
+ let r = n.pauseWhenHidden ?? !0, i = null, a = 0, o = 0, s = null, c = !1, l = !1, u = () => {
1689
+ if (!l && !(r && typeof document < "u" && document.hidden)) {
1690
+ if (s) {
1691
+ c = !0;
1692
+ return;
1693
+ }
1694
+ i === null && (i = requestAnimationFrame(d));
1561
1695
  }
1562
- for (let e of o) s.addColorStop(Math.min(1, Math.max(0, e.position)), ae(e.color));
1563
- return s;
1564
- }
1565
- return null;
1566
- }
1567
- var X = /* @__PURE__ */ new WeakMap();
1568
- function se(e, t) {
1569
- let n = `${e.preset}|${e.fg}|${e.bg}`, r = X.get(t);
1570
- r || (r = /* @__PURE__ */ new Map(), X.set(t, r));
1571
- let i = r.get(n);
1572
- if (i) return i;
1573
- let a = ne(e.preset, e.fg, e.bg);
1574
- if (!a) return ae(e.fg);
1575
- let o = t.createPattern(a, "repeat");
1576
- return o ? (r.set(n, o), o) : ae(e.fg);
1696
+ }, d = async () => {
1697
+ if (i = null, l) return;
1698
+ let t = a, n = o;
1699
+ try {
1700
+ let r = e(t, n);
1701
+ s = r instanceof Promise ? r : Promise.resolve(), await s;
1702
+ } catch (e) {
1703
+ console.error("[autoResize] render failed:", e);
1704
+ } finally {
1705
+ s = null, c && !l && (c = !1, u());
1706
+ }
1707
+ }, f = new ResizeObserver((e) => {
1708
+ for (let t of e) {
1709
+ let e = t.contentRect;
1710
+ a = e.width, o = e.height;
1711
+ }
1712
+ u();
1713
+ });
1714
+ f.observe(t);
1715
+ let p = () => {
1716
+ typeof document < "u" && !document.hidden && u();
1717
+ };
1718
+ return r && typeof document < "u" && document.addEventListener("visibilitychange", p), () => {
1719
+ l = !0, f.disconnect(), i !== null && (cancelAnimationFrame(i), i = null), r && typeof document < "u" && document.removeEventListener("visibilitychange", p);
1720
+ };
1577
1721
  }
1578
- var ce = {
1579
- dash: [6, 3],
1580
- dot: [1.5, 3],
1581
- dashDot: [
1582
- 6,
1583
- 3,
1584
- 1.5,
1585
- 3
1586
- ],
1587
- lgDash: [10, 4],
1588
- lgDashDot: [
1589
- 10,
1590
- 4,
1591
- 1.5,
1592
- 4
1593
- ],
1594
- lgDashDotDot: [
1595
- 10,
1596
- 4,
1597
- 1.5,
1598
- 4,
1599
- 1.5,
1600
- 4
1601
- ],
1602
- sysDash: [4, 2],
1603
- sysDot: [1, 2],
1604
- sysDashDot: [
1605
- 4,
1606
- 2,
1607
- 1,
1608
- 2
1609
- ]
1610
- };
1611
- function le(e, t, n) {
1612
- if (!t) {
1613
- e.strokeStyle = "transparent", e.lineWidth = 0, e.setLineDash([]);
1614
- return;
1722
+ //#endregion
1723
+ //#region packages/core/src/shape/custGeom.ts
1724
+ function Ce(e, t, n, r, i, a) {
1725
+ for (let o of t) {
1726
+ let t = 0, s = 0;
1727
+ for (let c of o) switch (c.cmd) {
1728
+ case "moveTo":
1729
+ e.moveTo(n + c.x * i, r + c.y * a), t = c.x, s = c.y;
1730
+ break;
1731
+ case "lineTo":
1732
+ e.lineTo(n + c.x * i, r + c.y * a), t = c.x, s = c.y;
1733
+ break;
1734
+ case "cubicBezTo":
1735
+ e.bezierCurveTo(n + c.x1 * i, r + c.y1 * a, n + c.x2 * i, r + c.y2 * a, n + c.x * i, r + c.y * a), t = c.x, s = c.y;
1736
+ break;
1737
+ case "arcTo": {
1738
+ let o = c.wr * i, l = c.hr * a;
1739
+ if (o <= 0 || l <= 0) break;
1740
+ let u = c.stAng * Math.PI / 180, d = c.swAng * Math.PI / 180, f = n + t * i, p = r + s * a, m = f - o * Math.cos(u), h = p - l * Math.sin(u), g = u + d;
1741
+ e.ellipse(m, h, o, l, 0, u, g, d < 0), t = (m + o * Math.cos(g) - n) / i, s = (h + l * Math.sin(g) - r) / a;
1742
+ break;
1743
+ }
1744
+ case "close":
1745
+ e.closePath();
1746
+ break;
1747
+ }
1615
1748
  }
1616
- e.strokeStyle = ae(t.color);
1617
- let r = Math.max(.5, t.width * n);
1618
- e.lineWidth = r;
1619
- let i = t.dashStyle ? ce[t.dashStyle] : null;
1620
- e.setLineDash(i ? i.map((e) => e * r) : []);
1621
1749
  }
1622
1750
  //#endregion
1623
1751
  //#region packages/core/src/shape/preset.ts
1624
- function Z(e, t, n, r, i, a, o, s = -Math.PI / 2) {
1752
+ function J(e, t, n, r, i, a, o, s = -Math.PI / 2) {
1625
1753
  let c = a * 2;
1626
1754
  for (let l = 0; l < c; l++) {
1627
1755
  let c = s + l * Math.PI / a, u = l % 2 == 0 ? 1 : o, d = t + r * u * Math.cos(c), f = n + i * u * Math.sin(c);
@@ -1629,21 +1757,21 @@ function Z(e, t, n, r, i, a, o, s = -Math.PI / 2) {
1629
1757
  }
1630
1758
  e.closePath();
1631
1759
  }
1632
- function ue(e, t, n, r, i, a, o = -Math.PI / 2) {
1760
+ function we(e, t, n, r, i, a, o = -Math.PI / 2) {
1633
1761
  for (let s = 0; s < a; s++) {
1634
1762
  let c = o + s * 2 * Math.PI / a, l = t + r * Math.cos(c), u = n + i * Math.sin(c);
1635
1763
  s === 0 ? e.moveTo(l, u) : e.lineTo(l, u);
1636
1764
  }
1637
1765
  e.closePath();
1638
1766
  }
1639
- function Q(e, t, n, r, i, a, o) {
1767
+ function Y(e, t, n, r, i, a, o) {
1640
1768
  let s = (e) => Math.atan2(r * Math.sin(e), i * Math.cos(e)), c = s(a), l = s(a + o), u = t - r * Math.cos(c), d = n - i * Math.sin(c);
1641
1769
  return e.ellipse(u, d, Math.abs(r), Math.abs(i), 0, c, l, o < 0), {
1642
1770
  x: u + r * Math.cos(l),
1643
1771
  y: d + i * Math.sin(l)
1644
1772
  };
1645
1773
  }
1646
- function de(e, t, n, r, i, a, o = null, s = null, c = null, l = null) {
1774
+ function Te(e, t, n, r, i, a, o = null, s = null, c = null, l = null) {
1647
1775
  let u = n + i / 2, d = r + a / 2;
1648
1776
  switch (t) {
1649
1777
  case "ellipse":
@@ -1678,53 +1806,53 @@ function de(e, t, n, r, i, a, o = null, s = null, c = null, l = null) {
1678
1806
  break;
1679
1807
  }
1680
1808
  case "pentagon":
1681
- ue(e, u, d, i / 2, a / 2, 5);
1809
+ we(e, u, d, i / 2, a / 2, 5);
1682
1810
  break;
1683
1811
  case "hexagon":
1684
- ue(e, u, d, i / 2, a / 2, 6, 0);
1812
+ we(e, u, d, i / 2, a / 2, 6, 0);
1685
1813
  break;
1686
1814
  case "heptagon":
1687
- ue(e, u, d, i / 2, a / 2, 7);
1815
+ we(e, u, d, i / 2, a / 2, 7);
1688
1816
  break;
1689
1817
  case "octagon":
1690
- ue(e, u, d, i / 2, a / 2, 8, -Math.PI / 8);
1818
+ we(e, u, d, i / 2, a / 2, 8, -Math.PI / 8);
1691
1819
  break;
1692
1820
  case "decagon":
1693
- ue(e, u, d, i / 2, a / 2, 10);
1821
+ we(e, u, d, i / 2, a / 2, 10);
1694
1822
  break;
1695
1823
  case "dodecagon":
1696
- ue(e, u, d, i / 2, a / 2, 12);
1824
+ we(e, u, d, i / 2, a / 2, 12);
1697
1825
  break;
1698
1826
  case "star4":
1699
- Z(e, u, d, i / 2, a / 2, 4, (o ?? 12500) / 5e4);
1827
+ J(e, u, d, i / 2, a / 2, 4, (o ?? 12500) / 5e4);
1700
1828
  break;
1701
1829
  case "star5":
1702
1830
  case "star":
1703
- Z(e, u, d, i / 2, a / 2, 5, (o ?? 19098) / 5e4);
1831
+ J(e, u, d, i / 2, a / 2, 5, (o ?? 19098) / 5e4);
1704
1832
  break;
1705
1833
  case "star6":
1706
- Z(e, u, d, i / 2, a / 2, 6, (o ?? 28868) / 5e4, 0);
1834
+ J(e, u, d, i / 2, a / 2, 6, (o ?? 28868) / 5e4, 0);
1707
1835
  break;
1708
1836
  case "star7":
1709
- Z(e, u, d, i / 2, a / 2, 7, (o ?? 34142) / 5e4);
1837
+ J(e, u, d, i / 2, a / 2, 7, (o ?? 34142) / 5e4);
1710
1838
  break;
1711
1839
  case "star8":
1712
- Z(e, u, d, i / 2, a / 2, 8, (o ?? 37500) / 5e4, -Math.PI / 2);
1840
+ J(e, u, d, i / 2, a / 2, 8, (o ?? 37500) / 5e4, -Math.PI / 2);
1713
1841
  break;
1714
1842
  case "star10":
1715
- Z(e, u, d, i / 2, a / 2, 10, (o ?? 41421) / 5e4);
1843
+ J(e, u, d, i / 2, a / 2, 10, (o ?? 41421) / 5e4);
1716
1844
  break;
1717
1845
  case "star12":
1718
- Z(e, u, d, i / 2, a / 2, 12, (o ?? 37500) / 5e4, 0);
1846
+ J(e, u, d, i / 2, a / 2, 12, (o ?? 37500) / 5e4, 0);
1719
1847
  break;
1720
1848
  case "star16":
1721
- Z(e, u, d, i / 2, a / 2, 16, (o ?? 37500) / 5e4, -Math.PI / 2);
1849
+ J(e, u, d, i / 2, a / 2, 16, (o ?? 37500) / 5e4, -Math.PI / 2);
1722
1850
  break;
1723
1851
  case "star24":
1724
- Z(e, u, d, i / 2, a / 2, 24, (o ?? 37500) / 5e4, 0);
1852
+ J(e, u, d, i / 2, a / 2, 24, (o ?? 37500) / 5e4, 0);
1725
1853
  break;
1726
1854
  case "star32":
1727
- Z(e, u, d, i / 2, a / 2, 32, (o ?? 37500) / 5e4, -Math.PI / 2);
1855
+ J(e, u, d, i / 2, a / 2, 32, (o ?? 37500) / 5e4, -Math.PI / 2);
1728
1856
  break;
1729
1857
  case "rightarrow": {
1730
1858
  let t = a * Math.min(1, (o ?? 5e4) / 1e5), c = i * Math.min(1, (s ?? 5e4) / 1e5), l = r + (a - t) / 2;
@@ -2290,26 +2418,26 @@ function de(e, t, n, r, i, a, o = null, s = null, c = null, l = null) {
2290
2418
  }
2291
2419
  case "curvedrightarrow": {
2292
2420
  let t = Math.min(i, a), l = a / 2, u = 5e4 * a / t, d = Math.min(u, Math.max(0, s ?? 5e4)), f = t * Math.min(d, Math.max(0, o ?? 25e3)) / 1e5, p = t * d / 1e5, m = l - (f + p) / 4, h = (2 * m) ** 2 - f ** 2, g = 1e5 * (Math.sqrt(Math.max(0, h)) * i / (2 * m)) / t, _ = t * Math.min(g, Math.max(0, c ?? 25e3)) / 1e5, v = Math.sqrt(Math.max(0, i * i - _ * _)) * m / i, y = m + f, b = m + v, x = y + v, S = (p - f) / 2, C = b - S, w = x + S, T = a - p / 2, E = i - _, D = Math.atan2(_, v), O = -D, k = Math.PI - D;
2293
- e.moveTo(n, r + m), Q(e, n, r + m, i, m, Math.PI, O), e.lineTo(n + E, r + C), e.lineTo(n + i, r + T), e.lineTo(n + E, r + w), e.lineTo(n + E, r + x), Q(e, n + E, r + x, i, m, k, D), e.closePath();
2421
+ e.moveTo(n, r + m), Y(e, n, r + m, i, m, Math.PI, O), e.lineTo(n + E, r + C), e.lineTo(n + i, r + T), e.lineTo(n + E, r + w), e.lineTo(n + E, r + x), Y(e, n + E, r + x, i, m, k, D), e.closePath();
2294
2422
  break;
2295
2423
  }
2296
2424
  case "curvedleftarrow": {
2297
2425
  let t = Math.min(i, a), l = a / 2, u = 5e4 * a / t, d = Math.min(u, Math.max(0, s ?? 5e4)), f = t * Math.min(d, Math.max(0, o ?? 25e3)) / 1e5, p = t * d / 1e5, m = l - (f + p) / 4, h = (2 * m) ** 2 - f ** 2, g = Math.sqrt(Math.max(0, h)) * i / (2 * m), _ = 1e5 * g / t, v = t * Math.min(_, Math.max(0, c ?? 25e3)) / 1e5, y = Math.sqrt(Math.max(0, i * i - v * v)) * m / i, b = m + f, x = m + y, S = b + y, C = (p - f) / 2, w = x - C, T = S + C, E = a - p / 2, D = v, O = Math.atan2(v, y), k = f / 2, A = Math.atan2(k, g), j = A - O, M = O - A, N = -A;
2298
2426
  e.moveTo(n, r + E), e.lineTo(n + D, r + w), e.lineTo(n + D, r + x);
2299
- let P = Q(e, n + D, r + x, i, m, O, j);
2300
- Q(e, P.x, P.y, i, m, N, M), e.lineTo(n + D, r + T), e.closePath();
2427
+ let P = Y(e, n + D, r + x, i, m, O, j);
2428
+ Y(e, P.x, P.y, i, m, N, M), e.lineTo(n + D, r + T), e.closePath();
2301
2429
  break;
2302
2430
  }
2303
2431
  case "curveduparrow": {
2304
2432
  let t = Math.min(i, a), l = i / 2, u = 5e4 * i / t, d = Math.min(u, Math.max(0, s ?? 5e4)), f = t * Math.min(1e5, Math.max(0, o ?? 25e3)) / 1e5, p = t * d / 1e5, m = l - (f + p) / 4, h = (2 * m) ** 2 - f ** 2, g = Math.sqrt(Math.max(0, h)) * a / (2 * m), _ = 1e5 * g / t, v = t * Math.min(_, Math.max(0, c ?? 25e3)) / 1e5, y = Math.sqrt(Math.max(0, a * a - v * v)) * m / a, b = m + f, x = m + y, S = b + y, C = (p - f) / 2, w = x - C, T = S + C, E = i - p / 2, D = v, O = Math.atan2(v, y), k = f / 2, A = Math.atan2(k, g), j = A - O, M = O - A, N = Math.PI / 2 - O, P = Math.PI / 2 - A;
2305
2433
  e.moveTo(n + E, r), e.lineTo(n + T, r + D), e.lineTo(n + S, r + D);
2306
- let F = Q(e, n + S, r + D, m, a, N, M);
2307
- Q(e, F.x, F.y, m, a, P, j), e.lineTo(n + w, r + D), e.closePath();
2434
+ let F = Y(e, n + S, r + D, m, a, N, M);
2435
+ Y(e, F.x, F.y, m, a, P, j), e.lineTo(n + w, r + D), e.closePath();
2308
2436
  break;
2309
2437
  }
2310
2438
  case "curveddownarrow": {
2311
2439
  let t = Math.min(i, a), l = i / 2, u = 5e4 * i / t, d = Math.min(u, Math.max(0, s ?? 5e4)), f = t * Math.min(1e5, Math.max(0, o ?? 25e3)) / 1e5, p = t * d / 1e5, m = l - (f + p) / 4, h = (2 * m) ** 2 - f ** 2, g = Math.sqrt(Math.max(0, h)) * a / (2 * m), _ = 1e5 * g / t, v = t * Math.min(_, Math.max(0, c ?? 25e3)) / 1e5, y = Math.sqrt(Math.max(0, a * a - v * v)) * m / a, b = m + f, x = m + y, S = b + y, C = (p - f) / 2, w = x - C, T = S + C, E = i - p / 2, D = a - v, O = Math.atan2(v, y), k = f / 2, A = Math.atan2(k, g), j = 3 * Math.PI / 2 + O;
2312
- 3 * Math.PI / 2 - A, A - Math.PI / 2, Math.PI / 2 - A, e.moveTo(n + E, r + a), e.lineTo(n + w, r + D), e.lineTo(n + x, r + D), Q(e, n + x, r + D, m, a, j, -O), e.lineTo(n + b, r), Q(e, n + b, r, m, a, 3 * Math.PI / 2, O), e.lineTo(n + T, r + D), e.closePath();
2440
+ 3 * Math.PI / 2 - A, A - Math.PI / 2, Math.PI / 2 - A, e.moveTo(n + E, r + a), e.lineTo(n + w, r + D), e.lineTo(n + x, r + D), Y(e, n + x, r + D, m, a, j, -O), e.lineTo(n + b, r), Y(e, n + b, r, m, a, 3 * Math.PI / 2, O), e.lineTo(n + T, r + D), e.closePath();
2313
2441
  break;
2314
2442
  }
2315
2443
  case "stripedrightarrow": {
@@ -2376,7 +2504,7 @@ function de(e, t, n, r, i, a, o = null, s = null, c = null, l = null) {
2376
2504
  break;
2377
2505
  }
2378
2506
  }
2379
- var fe = {
2507
+ var Ee = {
2380
2508
  accentbordercallout1: {
2381
2509
  adj: [
2382
2510
  ["adj1", "val 18750"],
@@ -24239,8 +24367,8 @@ var fe = {
24239
24367
  ]
24240
24368
  }]
24241
24369
  }
24242
- }, pe = 216e5, me = Math.PI * 2 / pe;
24243
- function he(e, t, n) {
24370
+ }, X = 216e5, De = Math.PI * 2 / X;
24371
+ function Oe(e, t, n) {
24244
24372
  let { w: r, h: i, adj: a } = e, o = Math.min(r, i), s = Math.max(r, i), c = Object.create(null);
24245
24373
  Object.assign(c, {
24246
24374
  w: r,
@@ -24285,14 +24413,14 @@ function he(e, t, n) {
24285
24413
  lsd8: s / 8,
24286
24414
  lsd16: s / 16,
24287
24415
  lsd32: s / 32,
24288
- cd: pe,
24289
- cd2: pe / 2,
24290
- cd4: pe / 4,
24291
- cd8: pe / 8,
24292
- "3cd4": 3 * pe / 4,
24293
- "3cd8": 3 * pe / 8,
24294
- "5cd8": 5 * pe / 8,
24295
- "7cd8": 7 * pe / 8
24416
+ cd: X,
24417
+ cd2: X / 2,
24418
+ cd4: X / 4,
24419
+ cd8: X / 8,
24420
+ "3cd4": 3 * X / 4,
24421
+ "3cd8": 3 * X / 8,
24422
+ "5cd8": 5 * X / 8,
24423
+ "7cd8": 7 * X / 8
24296
24424
  }), t.forEach(([e, t], n) => {
24297
24425
  let r = a[n];
24298
24426
  c[e] = typeof r == "number" ? r : u(t), e === "adj" && (c.adj1 = c.adj), e === "adj1" && (c.adj = c.adj1);
@@ -24329,10 +24457,10 @@ function he(e, t, n) {
24329
24457
  case "pin": return t[1] < t[0] ? t[0] : t[1] > t[2] ? t[2] : t[1];
24330
24458
  case "sqrt": return Math.sqrt(Math.max(0, t[0]));
24331
24459
  case "mod": return Math.sqrt(t[0] * t[0] + t[1] * t[1] + t[2] * t[2]);
24332
- case "sin": return t[0] * Math.sin(t[1] * me);
24333
- case "cos": return t[0] * Math.cos(t[1] * me);
24334
- case "tan": return t[0] * Math.tan(t[1] * me);
24335
- case "at2": return Math.atan2(t[1], t[0]) / me;
24460
+ case "sin": return t[0] * Math.sin(t[1] * De);
24461
+ case "cos": return t[0] * Math.cos(t[1] * De);
24462
+ case "tan": return t[0] * Math.tan(t[1] * De);
24463
+ case "at2": return Math.atan2(t[1], t[0]) / De;
24336
24464
  case "cat2": return t[0] * Math.cos(Math.atan2(t[2], t[1]));
24337
24465
  case "sat2": return t[0] * Math.sin(Math.atan2(t[2], t[1]));
24338
24466
  default: throw Error(`preset-shape: unknown operator "${e}" in "${n}"`);
@@ -24341,8 +24469,8 @@ function he(e, t, n) {
24341
24469
  }
24342
24470
  //#endregion
24343
24471
  //#region packages/core/src/shape/preset-geometry/path-executor.ts
24344
- var ge = Math.PI * 2 / 216e5;
24345
- function _e(e, t, n, r, i, a, o) {
24472
+ var ke = Math.PI * 2 / 216e5;
24473
+ function Ae(e, t, n, r, i, a, o) {
24346
24474
  let s = t.w == null ? 1 : a / t.w, c = t.h == null ? 1 : o / t.h, l = (e) => r + e * s, u = (e) => i + e * c, d = 0, f = 0;
24347
24475
  for (let r of t.cmds) switch (r[0]) {
24348
24476
  case "m": {
@@ -24366,7 +24494,7 @@ function _e(e, t, n, r, i, a, o) {
24366
24494
  break;
24367
24495
  }
24368
24496
  case "a": {
24369
- let t = n.resolve(r[1]), i = n.resolve(r[2]), a = t * s, o = i * c, l = n.resolve(r[3]) * ge, u = n.resolve(r[4]) * ge, p = Math.PI * 2, m = (e) => Math.atan2(t * Math.sin(e), i * Math.cos(e)), h = m(l), g = Math.trunc(u / p), _ = u - g * p, v = m(l + _) - h;
24497
+ let t = n.resolve(r[1]), i = n.resolve(r[2]), a = t * s, o = i * c, l = n.resolve(r[3]) * ke, u = n.resolve(r[4]) * ke, p = Math.PI * 2, m = (e) => Math.atan2(t * Math.sin(e), i * Math.cos(e)), h = m(l), g = Math.trunc(u / p), _ = u - g * p, v = m(l + _) - h;
24370
24498
  _ > 0 && v < 0 ? v += p : _ < 0 && v > 0 && (v -= p);
24371
24499
  let y = h + v + g * p, b = d - a * Math.cos(h), x = f - o * Math.sin(h);
24372
24500
  Math.abs(a) > 1e-6 && Math.abs(o) > 1e-6 && (e.ellipse(b, x, Math.abs(a), Math.abs(o), 0, h, y, u < 0), d = b + a * Math.cos(y), f = x + o * Math.sin(y));
@@ -24379,26 +24507,26 @@ function _e(e, t, n, r, i, a, o) {
24379
24507
  }
24380
24508
  //#endregion
24381
24509
  //#region packages/core/src/shape/preset-geometry/index.ts
24382
- var ve = fe;
24383
- function ye(e) {
24384
- return e.toLowerCase() in ve;
24510
+ var Z = Ee;
24511
+ function je(e) {
24512
+ return e.toLowerCase() in Z;
24385
24513
  }
24386
- function be(e, t, n, r, i, a, o = []) {
24387
- let s = ve[t.toLowerCase()];
24514
+ function Me(e, t, n, r, i, a, o = []) {
24515
+ let s = Z[t.toLowerCase()];
24388
24516
  if (!s) return !1;
24389
- let c = he({
24517
+ let c = Oe({
24390
24518
  w: i,
24391
24519
  h: a,
24392
24520
  adj: o
24393
24521
  }, s.adj, s.gd);
24394
- for (let t of s.paths) _e(e, t, c, n, r, i, a);
24522
+ for (let t of s.paths) Ae(e, t, c, n, r, i, a);
24395
24523
  return !0;
24396
24524
  }
24397
- var xe = {
24525
+ var Ne = {
24398
24526
  wedgeroundrectcallout: "roundrect",
24399
24527
  wedgeellipsecallout: "ellipse",
24400
24528
  wedgerectcallout: null
24401
- }, Se = {
24529
+ }, Pe = {
24402
24530
  adj: [],
24403
24531
  gd: [],
24404
24532
  paths: [{
@@ -24432,43 +24560,43 @@ var xe = {
24432
24560
  ]
24433
24561
  }]
24434
24562
  };
24435
- function Ce(e, t, n) {
24563
+ function Fe(e, t, n) {
24436
24564
  let r = e[n];
24437
24565
  if (typeof r == "number") return r;
24438
24566
  let i = t.adj[n];
24439
24567
  return i && Number(i[1].replace(/^val\s+/, "")) || 0;
24440
24568
  }
24441
- function we(e, t, n, r, i, a, o, s, c, l) {
24442
- let u = t.toLowerCase(), d = ve[u];
24569
+ function Ie(e, t, n, r, i, a, o, s, c, l) {
24570
+ let u = t.toLowerCase(), d = Z[u];
24443
24571
  if (!d) return !1;
24444
- if (u in xe) {
24445
- let e = Ce(o, d, 0), t = Ce(o, d, 1), n = i / 2 + i * e / 1e5, r = a / 2 + a * t / 1e5;
24572
+ if (u in Ne) {
24573
+ let e = Fe(o, d, 0), t = Fe(o, d, 1), n = i / 2 + i * e / 1e5, r = a / 2 + a * t / 1e5;
24446
24574
  if (n >= 0 && n <= i && r >= 0 && r <= a) {
24447
- let e = xe[u];
24448
- e === "roundrect" ? (d = ve.roundrect, o = [Ce(o, ve[u], 2)]) : e && ve[e] ? (d = ve[e], o = []) : (d = Se, o = []);
24575
+ let e = Ne[u];
24576
+ e === "roundrect" ? (d = Z.roundrect, o = [Fe(o, Z[u], 2)]) : e && Z[e] ? (d = Z[e], o = []) : (d = Pe, o = []);
24449
24577
  }
24450
24578
  }
24451
- let f = he({
24579
+ let f = Oe({
24452
24580
  w: i,
24453
24581
  h: a,
24454
24582
  adj: o
24455
24583
  }, d.adj, d.gd), p = !1;
24456
24584
  for (let t of d.paths) {
24457
- e.beginPath(), _e(e, t, f, n, r, i, a);
24585
+ e.beginPath(), Ae(e, t, f, n, r, i, a);
24458
24586
  let o = t.fill;
24459
24587
  if (o !== "none" && s != null) {
24460
24588
  e.save(), e.fillStyle = s, e.fill();
24461
- let t = Ee(o);
24589
+ let t = Re(o);
24462
24590
  t && (e.fillStyle = t, e.fill()), e.restore(), p ||= (l(), !0);
24463
24591
  }
24464
24592
  t.stroke && c && c();
24465
24593
  }
24466
24594
  return !0;
24467
24595
  }
24468
- function Te(e, t, n, r, i, a) {
24469
- let o = ve[e.toLowerCase()];
24596
+ function Le(e, t, n, r, i, a) {
24597
+ let o = Z[e.toLowerCase()];
24470
24598
  if (!o || o.paths.length === 0) return null;
24471
- let s = o.paths[0], c = he({
24599
+ let s = o.paths[0], c = Oe({
24472
24600
  w: r,
24473
24601
  h: i,
24474
24602
  adj: a
@@ -24502,7 +24630,7 @@ function Te(e, t, n, r, i, a) {
24502
24630
  }
24503
24631
  };
24504
24632
  }
24505
- function Ee(e) {
24633
+ function Re(e) {
24506
24634
  switch (e) {
24507
24635
  case "lighten": return "rgba(255,255,255,0.30)";
24508
24636
  case "lightenLess": return "rgba(255,255,255,0.15)";
@@ -24513,10 +24641,10 @@ function Ee(e) {
24513
24641
  }
24514
24642
  //#endregion
24515
24643
  //#region packages/core/src/shape/effects.ts
24516
- function De(e, t) {
24644
+ function ze(e, t) {
24517
24645
  return e * t;
24518
24646
  }
24519
- function Oe(e, t) {
24647
+ function Be(e, t) {
24520
24648
  let n = Math.max(1, Math.ceil(e)), r = Math.max(1, Math.ceil(t));
24521
24649
  if (typeof OffscreenCanvas < "u") return new OffscreenCanvas(n, r);
24522
24650
  if (typeof document < "u") {
@@ -24525,29 +24653,29 @@ function Oe(e, t) {
24525
24653
  }
24526
24654
  return null;
24527
24655
  }
24528
- function ke(e) {
24656
+ function Ve(e) {
24529
24657
  return e.getContext("2d") ?? null;
24530
24658
  }
24531
- function Ae(e, t, n, r, i, a, o) {
24532
- let s = Oe(a, o);
24659
+ function He(e, t, n, r, i, a, o) {
24660
+ let s = Be(a, o);
24533
24661
  if (!s) return;
24534
- let c = ke(s);
24662
+ let c = Ve(s);
24535
24663
  if (!c) return;
24536
- let l = De(r.blur, i), u = De(r.dist, i), d = r.dir * Math.PI / 180, f = Math.cos(d) * u, p = Math.sin(d) * u;
24537
- c.save(), c.fillStyle = ae(r.color, r.alpha), t(c), c.restore(), c.save(), c.globalCompositeOperation = "destination-out", c.filter = l > 0 ? `blur(${l}px)` : "none", c.translate(f, p), c.fillStyle = "#000", t(c), c.restore(), c.save(), c.globalCompositeOperation = "destination-in", c.filter = "none", c.fillStyle = "#000", t(c), c.restore(), e.save(), e.drawImage(s, 0, 0), e.restore();
24664
+ let l = ze(r.blur, i), u = ze(r.dist, i), d = r.dir * Math.PI / 180, f = Math.cos(d) * u, p = Math.sin(d) * u;
24665
+ c.save(), c.fillStyle = k(r.color, r.alpha), t(c), c.restore(), c.save(), c.globalCompositeOperation = "destination-out", c.filter = l > 0 ? `blur(${l}px)` : "none", c.translate(f, p), c.fillStyle = "#000", t(c), c.restore(), c.save(), c.globalCompositeOperation = "destination-in", c.filter = "none", c.fillStyle = "#000", t(c), c.restore(), e.save(), e.drawImage(s, 0, 0), e.restore();
24538
24666
  }
24539
- function je(e, t, n, r, i, a, o, s) {
24540
- let c = De(r.radius, i);
24667
+ function Ue(e, t, n, r, i, a, o, s) {
24668
+ let c = ze(r.radius, i);
24541
24669
  if (c <= 0) {
24542
24670
  t(e);
24543
24671
  return;
24544
24672
  }
24545
- let l = Oe(a, o);
24673
+ let l = Be(a, o);
24546
24674
  if (!l) {
24547
24675
  t(e);
24548
24676
  return;
24549
24677
  }
24550
- let u = ke(l);
24678
+ let u = Ve(l);
24551
24679
  if (!u) {
24552
24680
  t(e);
24553
24681
  return;
@@ -24555,24 +24683,24 @@ function je(e, t, n, r, i, a, o, s) {
24555
24683
  let d = s ?? t;
24556
24684
  t(u), u.save(), u.globalCompositeOperation = "destination-in", u.filter = `blur(${c}px)`, u.fillStyle = "#000", d(u), u.restore(), e.save(), e.drawImage(l, 0, 0), e.restore();
24557
24685
  }
24558
- function Me(e, t, n, r, i, a, o) {
24559
- let s = Oe(a, o);
24686
+ function We(e, t, n, r, i, a, o) {
24687
+ let s = Be(a, o);
24560
24688
  if (!s) return;
24561
- let c = ke(s);
24689
+ let c = Ve(s);
24562
24690
  if (!c) return;
24563
- let l = De(r.blur, i);
24691
+ let l = ze(r.blur, i);
24564
24692
  c.save(), l > 0 && (c.filter = `blur(${l}px)`), t(c), c.restore(), c.save(), c.globalCompositeOperation = "destination-in";
24565
- let u = n.y, d = n.y + n.h, f = c.createLinearGradient(0, d, 0, u), p = Ne(r.stPos), m = Ne(r.endPos);
24693
+ let u = n.y, d = n.y + n.h, f = c.createLinearGradient(0, d, 0, u), p = Ge(r.stPos), m = Ge(r.endPos);
24566
24694
  f.addColorStop(0, `rgba(0,0,0,${r.stA})`), p > 0 && f.addColorStop(p, `rgba(0,0,0,${r.stA})`), m < 1 && m > p && f.addColorStop(m, `rgba(0,0,0,${r.endA})`), f.addColorStop(1, `rgba(0,0,0,${r.endA})`), c.fillStyle = f, c.fillRect(0, 0, a, o), c.restore();
24567
- let h = De(r.dist, i), g = r.dir * Math.PI / 180, _ = Math.cos(g) * h, v = Math.sin(g) * h;
24695
+ let h = ze(r.dist, i), g = r.dir * Math.PI / 180, _ = Math.cos(g) * h, v = Math.sin(g) * h;
24568
24696
  e.save(), e.translate(n.x + _, d + v), e.scale(r.sx, r.sy), e.translate(-n.x, -d), e.drawImage(s, 0, 0), e.restore();
24569
24697
  }
24570
- function Ne(e) {
24698
+ function Ge(e) {
24571
24699
  return e < 0 ? 0 : e > 1 ? 1 : e;
24572
24700
  }
24573
24701
  //#endregion
24574
24702
  //#region packages/core/src/shape/scene3d-camera.ts
24575
- var Pe = 26, Fe = {
24703
+ var Ke = 26, qe = {
24576
24704
  orthographicFront: {
24577
24705
  kind: "orthographic",
24578
24706
  baseLat: 0,
@@ -24585,52 +24713,52 @@ var Pe = 26, Fe = {
24585
24713
  baseLat: 0,
24586
24714
  baseLon: 0,
24587
24715
  baseRev: 0,
24588
- fovDeg: Pe
24716
+ fovDeg: Ke
24589
24717
  },
24590
24718
  perspectiveRelaxed: {
24591
24719
  kind: "perspective",
24592
24720
  baseLat: 0,
24593
24721
  baseLon: 0,
24594
24722
  baseRev: 0,
24595
- fovDeg: Pe
24723
+ fovDeg: Ke
24596
24724
  },
24597
24725
  perspectiveRelaxedModerately: {
24598
24726
  kind: "perspective",
24599
24727
  baseLat: 0,
24600
24728
  baseLon: 0,
24601
24729
  baseRev: 0,
24602
- fovDeg: Pe
24730
+ fovDeg: Ke
24603
24731
  },
24604
24732
  perspectiveAbove: {
24605
24733
  kind: "perspective",
24606
24734
  baseLat: -20,
24607
24735
  baseLon: 0,
24608
24736
  baseRev: 0,
24609
- fovDeg: Pe
24737
+ fovDeg: Ke
24610
24738
  },
24611
24739
  perspectiveBelow: {
24612
24740
  kind: "perspective",
24613
24741
  baseLat: 20,
24614
24742
  baseLon: 0,
24615
24743
  baseRev: 0,
24616
- fovDeg: Pe
24744
+ fovDeg: Ke
24617
24745
  },
24618
24746
  perspectiveLeft: {
24619
24747
  kind: "perspective",
24620
24748
  baseLat: 0,
24621
24749
  baseLon: -20,
24622
24750
  baseRev: 0,
24623
- fovDeg: Pe
24751
+ fovDeg: Ke
24624
24752
  },
24625
24753
  perspectiveRight: {
24626
24754
  kind: "perspective",
24627
24755
  baseLat: 0,
24628
24756
  baseLon: 20,
24629
24757
  baseRev: 0,
24630
- fovDeg: Pe
24758
+ fovDeg: Ke
24631
24759
  }
24632
24760
  };
24633
- function Ie(e, t) {
24761
+ function Je(e, t) {
24634
24762
  let n = Array(9).fill(0);
24635
24763
  for (let r = 0; r < 3; r++) for (let i = 0; i < 3; i++) {
24636
24764
  let a = 0;
@@ -24639,7 +24767,7 @@ function Ie(e, t) {
24639
24767
  }
24640
24768
  return n;
24641
24769
  }
24642
- function Le(e) {
24770
+ function Ye(e) {
24643
24771
  let t = e * Math.PI / 180, n = Math.cos(t), r = Math.sin(t);
24644
24772
  return [
24645
24773
  1,
@@ -24653,7 +24781,7 @@ function Le(e) {
24653
24781
  n
24654
24782
  ];
24655
24783
  }
24656
- function Re(e) {
24784
+ function Xe(e) {
24657
24785
  let t = e * Math.PI / 180, n = Math.cos(t), r = Math.sin(t);
24658
24786
  return [
24659
24787
  n,
@@ -24667,7 +24795,7 @@ function Re(e) {
24667
24795
  n
24668
24796
  ];
24669
24797
  }
24670
- function ze(e) {
24798
+ function Ze(e) {
24671
24799
  let t = e * Math.PI / 180, n = Math.cos(t), r = Math.sin(t);
24672
24800
  return [
24673
24801
  n,
@@ -24681,22 +24809,22 @@ function ze(e) {
24681
24809
  1
24682
24810
  ];
24683
24811
  }
24684
- function Be(e, t, n, r) {
24812
+ function Qe(e, t, n, r) {
24685
24813
  return [
24686
24814
  e[0] * t + e[1] * n + e[2] * r,
24687
24815
  e[3] * t + e[4] * n + e[5] * r,
24688
24816
  e[6] * t + e[7] * n + e[8] * r
24689
24817
  ];
24690
24818
  }
24691
- function Ve(e, t) {
24819
+ function $e(e, t) {
24692
24820
  let n = t ? t.lat : e.baseLat, r = t ? t.lon : e.baseLon;
24693
- return Ie(ze(-(t ? t.rev : e.baseRev)), Ie(Le(-n), Re(-r)));
24821
+ return Je(Ze(-(t ? t.rev : e.baseRev)), Je(Ye(-n), Xe(-r)));
24694
24822
  }
24695
- function He(e) {
24696
- return Fe[e] ?? Fe.orthographicFront;
24823
+ function et(e) {
24824
+ return qe[e] ?? qe.orthographicFront;
24697
24825
  }
24698
- function Ue(e, t, n) {
24699
- let r = He(e.prst), i = Ve(r, e.rot);
24826
+ function tt(e, t, n) {
24827
+ let r = et(e.prst), i = $e(r, e.rot);
24700
24828
  if (t <= 0 || n <= 0) return {
24701
24829
  corners: [
24702
24830
  {
@@ -24728,11 +24856,11 @@ function Ue(e, t, n) {
24728
24856
  if (r.kind === "perspective") {
24729
24857
  let t = e.fov ?? r.fovDeg, n = Math.max(1, Math.min(179, t)) * Math.PI / 180, a = l / Math.tan(n / 2);
24730
24858
  u = s.map(([e, t]) => {
24731
- let [n, r, o] = Be(i, e, t, 0), s = a - o, c = a / (Math.abs(s) < 1e-6 ? 1e-6 * Math.sign(s || 1) : s);
24859
+ let [n, r, o] = Qe(i, e, t, 0), s = a - o, c = a / (Math.abs(s) < 1e-6 ? 1e-6 * Math.sign(s || 1) : s);
24732
24860
  return [n * c, r * c];
24733
24861
  });
24734
24862
  } else u = s.map(([e, t]) => {
24735
- let [n, r] = Be(i, e, t, 0);
24863
+ let [n, r] = Qe(i, e, t, 0);
24736
24864
  return [n, r];
24737
24865
  });
24738
24866
  u = u.map(([e, t]) => [e * c, t * c]);
@@ -24757,13 +24885,32 @@ function Ue(e, t, n) {
24757
24885
  isIdentity: E
24758
24886
  };
24759
24887
  }
24760
- function We(e) {
24761
- let { isIdentity: t } = Ue(e, 1e3, 1e3);
24888
+ function nt(e) {
24889
+ let { isIdentity: t } = tt(e, 1e3, 1e3);
24762
24890
  return !t;
24763
24891
  }
24892
+ function rt(e, t, n, r) {
24893
+ let i = et(e.prst), a = $e(i, e.rot);
24894
+ if (t <= 0 || n <= 0 || r === 0) return {
24895
+ x: 0,
24896
+ y: 0
24897
+ };
24898
+ let o = t / 2, s = n / 2, c = Math.max(o, s), l = e.zoom ?? 1, u = (t) => {
24899
+ let [n, r, o] = Qe(a, 0, 0, t);
24900
+ if (i.kind === "perspective") {
24901
+ let t = e.fov ?? i.fovDeg, a = Math.max(1, Math.min(179, t)) * Math.PI / 180, s = c / Math.tan(a / 2), u = s - o, d = s / (Math.abs(u) < 1e-6 ? 1e-6 * Math.sign(u || 1) : u);
24902
+ return [n * d * l, r * d * l];
24903
+ }
24904
+ return [n * l, r * l];
24905
+ }, [d, f] = u(0), [p, m] = u(-r);
24906
+ return {
24907
+ x: p - d,
24908
+ y: m - f
24909
+ };
24910
+ }
24764
24911
  //#endregion
24765
24912
  //#region packages/core/src/shape/scene3d-draw.ts
24766
- function Ge(e, t, n, r) {
24913
+ function it(e, t, n, r) {
24767
24914
  let i = e.x, a = e.y, o = t.x, s = t.y, c = n.x, l = n.y, u = r.x, d = r.y, f = o - c, p = u - c, m = i - o + c - u, h = s - l, g = d - l, _ = a - s + l - d, v, y;
24768
24915
  if (Math.abs(m) < 1e-12 && Math.abs(_) < 1e-12) v = 0, y = 0;
24769
24916
  else {
@@ -24783,15 +24930,15 @@ function Ge(e, t, n, r) {
24783
24930
  1
24784
24931
  ];
24785
24932
  }
24786
- function Ke(e, t, n) {
24933
+ function at(e, t, n) {
24787
24934
  let r = e[6] * t + e[7] * n + e[8];
24788
24935
  return {
24789
24936
  x: (e[0] * t + e[1] * n + e[2]) / r,
24790
24937
  y: (e[3] * t + e[4] * n + e[5]) / r
24791
24938
  };
24792
24939
  }
24793
- var qe = 1;
24794
- function Je(e, t) {
24940
+ var ot = 1;
24941
+ function st(e, t) {
24795
24942
  let [n, r, i, a, o, s] = e, [c, l, u, d, f, p] = t;
24796
24943
  return [
24797
24944
  n * c + i * l,
@@ -24802,13 +24949,13 @@ function Je(e, t) {
24802
24949
  r * f + a * p + s
24803
24950
  ];
24804
24951
  }
24805
- function Ye(e, t, n, r, i, a, o, s, c, l, u, d, f) {
24952
+ function ct(e, t, n, r, i, a, o, s, c, l, u, d, f) {
24806
24953
  let p = c - o, m = l - s;
24807
24954
  if (p <= 0 || m <= 0) return;
24808
- let h = (d.x - u.x) / p, g = (d.y - u.y) / p, _ = (f.x - u.x) / m, v = (f.y - u.y) / m, y = (Math.hypot(d.x - u.x, d.y - u.y) || 1) * a, b = (Math.hypot(f.x - u.x, f.y - u.y) || 1) * a, x = qe * p / y, S = qe * m / b, C = Math.max(0, o - x), w = Math.max(0, s - S), T = Math.min(n, c + x), E = Math.min(r, l + S), D = T - C, O = E - w;
24955
+ let h = (d.x - u.x) / p, g = (d.y - u.y) / p, _ = (f.x - u.x) / m, v = (f.y - u.y) / m, y = (Math.hypot(d.x - u.x, d.y - u.y) || 1) * a, b = (Math.hypot(f.x - u.x, f.y - u.y) || 1) * a, x = ot * p / y, S = ot * m / b, C = Math.max(0, o - x), w = Math.max(0, s - S), T = Math.min(n, c + x), E = Math.min(r, l + S), D = T - C, O = E - w;
24809
24956
  if (D <= 0 || O <= 0) return;
24810
24957
  e.save();
24811
- let [k, A, j, M, N, P] = Je(i, [
24958
+ let [k, A, j, M, N, P] = st(i, [
24812
24959
  h,
24813
24960
  g,
24814
24961
  _,
@@ -24818,22 +24965,22 @@ function Ye(e, t, n, r, i, a, o, s, c, l, u, d, f) {
24818
24965
  ]);
24819
24966
  e.setTransform(k, A, j, M, N, P), e.drawImage(t, C, w, D, O, C, w, D, O), e.restore();
24820
24967
  }
24821
- function Xe(e, t, n, r, i, a, o, s, c, l, u, d, f) {
24822
- let p = Ke(o, s, c), m = Ke(o, l, c), h = Ke(o, s, u), g = Ke(o, l, u), _ = (s + l) / 2, v = (c + u) / 2, y = Ke(o, _, v), b = {
24968
+ function lt(e, t, n, r, i, a, o, s, c, l, u, d, f) {
24969
+ let p = at(o, s, c), m = at(o, l, c), h = at(o, s, u), g = at(o, l, u), _ = (s + l) / 2, v = (c + u) / 2, y = at(o, _, v), b = {
24823
24970
  x: (p.x + m.x + h.x + g.x) / 4,
24824
24971
  y: (p.y + m.y + h.y + g.y) / 4
24825
- }, x = Qe(i), S = Math.hypot(y.x - b.x, y.y - b.y) * x;
24972
+ }, x = dt(i), S = Math.hypot(y.x - b.x, y.y - b.y) * x;
24826
24973
  if (f <= 0 || S <= d) {
24827
- Ye(e, t, n, r, i, a, s * n, c * r, l * n, u * r, p, m, h);
24974
+ ct(e, t, n, r, i, a, s * n, c * r, l * n, u * r, p, m, h);
24828
24975
  return;
24829
24976
  }
24830
- l - s >= u - c ? (Xe(e, t, n, r, i, a, o, s, c, _, u, d, f - 1), Xe(e, t, n, r, i, a, o, _, c, l, u, d, f - 1)) : (Xe(e, t, n, r, i, a, o, s, c, l, v, d, f - 1), Xe(e, t, n, r, i, a, o, s, v, l, u, d, f - 1));
24977
+ l - s >= u - c ? (lt(e, t, n, r, i, a, o, s, c, _, u, d, f - 1), lt(e, t, n, r, i, a, o, _, c, l, u, d, f - 1)) : (lt(e, t, n, r, i, a, o, s, c, l, v, d, f - 1), lt(e, t, n, r, i, a, o, s, v, l, u, d, f - 1));
24831
24978
  }
24832
- function Ze(e, t, n, r, i, a = .5) {
24979
+ function ut(e, t, n, r, i, a = .5) {
24833
24980
  if (n <= 0 || r <= 0) return;
24834
24981
  let [o, s, c, l] = i;
24835
24982
  if (Math.abs(o.x * s.y - s.x * o.y + s.x * c.y - c.x * s.y + c.x * l.y - l.x * c.y + l.x * o.y - o.x * l.y) / 2 < 1e-6) return;
24836
- let u = Ge(i[0], i[1], i[2], i[3]);
24983
+ let u = it(i[0], i[1], i[2], i[3]);
24837
24984
  if (!u) return;
24838
24985
  let d = t.getTransform(), f = [
24839
24986
  d.a,
@@ -24842,18 +24989,33 @@ function Ze(e, t, n, r, i, a = .5) {
24842
24989
  d.d,
24843
24990
  d.e,
24844
24991
  d.f
24845
- ], p = Qe(f);
24846
- nt(e, t, n, r, i, f, p, u, a, 14) || (et(), t.save(), t.beginPath(), t.moveTo(i[0].x, i[0].y), t.lineTo(i[1].x, i[1].y), t.lineTo(i[2].x, i[2].y), t.lineTo(i[3].x, i[3].y), t.closePath(), t.clip(), Xe(t, e, n, r, f, p, u, 0, 0, 1, 1, a, 14), t.restore());
24992
+ ], p = dt(f);
24993
+ gt(e, t, n, r, i, f, p, u, a, 14) || (mt(), t.save(), t.beginPath(), t.moveTo(i[0].x, i[0].y), t.lineTo(i[1].x, i[1].y), t.lineTo(i[2].x, i[2].y), t.lineTo(i[3].x, i[3].y), t.closePath(), t.clip(), lt(t, e, n, r, f, p, u, 0, 0, 1, 1, a, 14), t.restore());
24847
24994
  }
24848
- function Qe(e) {
24995
+ function dt(e) {
24849
24996
  return Math.sqrt(Math.abs(e[0] * e[3] - e[1] * e[2])) || 1;
24850
24997
  }
24851
- var $e = !1;
24852
- function et() {
24853
- $e || ($e = !0, typeof console < "u" && typeof console.warn == "function" && console.warn("[ooxml] scene3d: no offscreen canvas available — using the direct warp fallback (per-cell bleed only, no supersample). Textured-source seams may be faintly visible; the silhouette and geometry are unaffected."));
24998
+ function ft(e, t, n) {
24999
+ let r = it(e[0], e[1], e[2], e[3]);
25000
+ if (!r) return null;
25001
+ let i = [
25002
+ [-t, -n],
25003
+ [1 + t, -n],
25004
+ [1 + t, 1 + n],
25005
+ [-t, 1 + n]
25006
+ ], a = [];
25007
+ for (let [e, t] of i) {
25008
+ if (!(r[6] * e + r[7] * t + r[8] > 1e-9)) return null;
25009
+ a.push(at(r, e, t));
25010
+ }
25011
+ return a;
25012
+ }
25013
+ var pt = !1;
25014
+ function mt() {
25015
+ pt || (pt = !0, typeof console < "u" && typeof console.warn == "function" && console.warn("[ooxml] scene3d: no offscreen canvas available — using the direct warp fallback (per-cell bleed only, no supersample). Textured-source seams may be faintly visible; the silhouette and geometry are unaffected."));
24854
25016
  }
24855
- var tt = 2;
24856
- function nt(e, t, n, r, i, a, o, s, c, l) {
25017
+ var ht = 2;
25018
+ function gt(e, t, n, r, i, a, o, s, c, l) {
24857
25019
  let u = i.map((e) => ({
24858
25020
  x: a[0] * e.x + a[2] * e.y + a[4],
24859
25021
  y: a[1] * e.x + a[3] * e.y + a[5]
@@ -24862,25 +25024,337 @@ function nt(e, t, n, r, i, a, o, s, c, l) {
24862
25024
  d = Math.floor(d) - 1, f = Math.floor(f) - 1, p = Math.ceil(p) + 1, m = Math.ceil(m) + 1;
24863
25025
  let h = p - d, g = m - f;
24864
25026
  if (h <= 0 || g <= 0) return !1;
24865
- let _ = Oe(h * tt, g * tt);
24866
- if (!_) return !1;
24867
- let v = _.getContext("2d") ?? null;
24868
- if (!v) return !1;
24869
- let y = tt, b = [
24870
- a[0] * y,
24871
- a[1] * y,
24872
- a[2] * y,
24873
- a[3] * y,
24874
- (a[4] - d) * y,
24875
- (a[5] - f) * y
25027
+ let _ = Math.max(1, Math.ceil(h * ht)), v = Math.max(1, Math.ceil(g * ht)), y = Be(_, v);
25028
+ if (!y || y.width !== _ || y.height !== v) return !1;
25029
+ let b = y.getContext("2d") ?? null;
25030
+ if (!b) return !1;
25031
+ let x = ht, S = [
25032
+ a[0] * x,
25033
+ a[1] * x,
25034
+ a[2] * x,
25035
+ a[3] * x,
25036
+ (a[4] - d) * x,
25037
+ (a[5] - f) * x
24876
25038
  ];
24877
- v.save(), v.setTransform(b[0], b[1], b[2], b[3], b[4], b[5]), v.beginPath(), v.moveTo(i[0].x, i[0].y), v.lineTo(i[1].x, i[1].y), v.lineTo(i[2].x, i[2].y), v.lineTo(i[3].x, i[3].y), v.closePath(), v.clip(), Xe(v, e, n, r, b, o, s, 0, 0, 1, 1, c * y, l), v.restore(), t.save(), t.setTransform(1, 0, 0, 1, 0, 0);
24878
- let x = t.imageSmoothingEnabled, S = t.imageSmoothingQuality;
24879
- return t.imageSmoothingEnabled = !0, t.imageSmoothingQuality = "high", t.drawImage(_, 0, 0, h * y, g * y, d, f, h, g), t.imageSmoothingEnabled = x, t.imageSmoothingQuality = S, t.restore(), !0;
25039
+ b.save(), b.setTransform(S[0], S[1], S[2], S[3], S[4], S[5]), b.beginPath(), b.moveTo(i[0].x, i[0].y), b.lineTo(i[1].x, i[1].y), b.lineTo(i[2].x, i[2].y), b.lineTo(i[3].x, i[3].y), b.closePath(), b.clip(), lt(b, e, n, r, S, o, s, 0, 0, 1, 1, c * x, l), b.restore(), t.save(), t.setTransform(1, 0, 0, 1, 0, 0);
25040
+ let C = t.imageSmoothingEnabled, w = t.imageSmoothingQuality;
25041
+ return t.imageSmoothingEnabled = !0, t.imageSmoothingQuality = "high", t.drawImage(y, 0, 0, h * x, g * x, d, f, h, g), t.imageSmoothingEnabled = C, t.imageSmoothingQuality = w, t.restore(), !0;
25042
+ }
25043
+ //#endregion
25044
+ //#region packages/core/src/shape/bevel-shading.ts
25045
+ function _t(e, t) {
25046
+ if (t <= 0) return () => 1;
25047
+ let n = (e) => Math.max(0, Math.min(1, e / t));
25048
+ switch (e) {
25049
+ case "hardEdge": {
25050
+ let e = Tt;
25051
+ return (t) => {
25052
+ let r = Math.min(1, n(t) / e);
25053
+ return r * r * (3 - 2 * r);
25054
+ };
25055
+ }
25056
+ case "angle":
25057
+ case "slope": return (e) => n(e);
25058
+ case "circle":
25059
+ case "convex":
25060
+ case "softRound": return (e) => {
25061
+ let t = 1 - n(e);
25062
+ return Math.sqrt(Math.max(0, 1 - t * t));
25063
+ };
25064
+ default: return (e) => {
25065
+ let t = n(e);
25066
+ return t * t * (3 - 2 * t);
25067
+ };
25068
+ }
25069
+ }
25070
+ function vt(e) {
25071
+ let t = e.length, n = new Float64Array(t);
25072
+ if (t === 0) return n;
25073
+ let r = new Int32Array(t), i = new Float64Array(t + 1), a = 0;
25074
+ r[0] = 0, i[0] = -Infinity, i[1] = Infinity;
25075
+ for (let n = 1; n < t; n++) {
25076
+ let t = (e[n] + n * n - (e[r[a]] + r[a] * r[a])) / (2 * n - 2 * r[a]);
25077
+ for (; t <= i[a];) a--, t = (e[n] + n * n - (e[r[a]] + r[a] * r[a])) / (2 * n - 2 * r[a]);
25078
+ a++, r[a] = n, i[a] = t, i[a + 1] = Infinity;
25079
+ }
25080
+ a = 0;
25081
+ for (let o = 0; o < t; o++) {
25082
+ for (; i[a + 1] < o;) a++;
25083
+ let t = o - r[a];
25084
+ n[o] = t * t + e[r[a]];
25085
+ }
25086
+ return n;
25087
+ }
25088
+ function yt(e, t = 3) {
25089
+ if (e <= 0) return Array(t).fill(1);
25090
+ let n = Math.sqrt(12 * e * e / t + 1), r = Math.floor(n);
25091
+ r % 2 == 0 && r--;
25092
+ let i = r + 2, a = (12 * e * e - t * r * r - 4 * t * r - 3 * t) / (-4 * r - 4), o = Math.round(a), s = [];
25093
+ for (let e = 0; e < t; e++) s.push(e < o ? r : i);
25094
+ return s;
25095
+ }
25096
+ function bt(e, t, n, r, i, a) {
25097
+ let o = 1 / (2 * i + 1);
25098
+ if (a) for (let a = 0; a < r; a++) {
25099
+ let r = a * n, s = 0;
25100
+ for (let t = 0; t <= i; t++) t < n && (s += e[r + t]);
25101
+ for (let a = 0; a < n; a++) {
25102
+ t[r + a] = s * o;
25103
+ let c = a + i + 1, l = a - i;
25104
+ c < n && (s += e[r + c]), l >= 0 && (s -= e[r + l]);
25105
+ }
25106
+ }
25107
+ else for (let a = 0; a < n; a++) {
25108
+ let s = 0;
25109
+ for (let t = 0; t <= i; t++) t < r && (s += e[t * n + a]);
25110
+ for (let c = 0; c < r; c++) {
25111
+ t[c * n + a] = s * o;
25112
+ let l = c + i + 1, u = c - i;
25113
+ l < r && (s += e[l * n + a]), u >= 0 && (s -= e[u * n + a]);
25114
+ }
25115
+ }
25116
+ }
25117
+ function xt(e, t, n, r) {
25118
+ let i = Float64Array.from(e);
25119
+ if (r <= 0 || t <= 0 || n <= 0) return i;
25120
+ let a = new Float64Array(t * n);
25121
+ for (let e of yt(r, 3)) {
25122
+ let r = Math.max(1, (e - 1) / 2);
25123
+ bt(i, a, t, n, r, !0), bt(a, i, t, n, r, !1);
25124
+ }
25125
+ return i;
25126
+ }
25127
+ function St(e, t, n, r = 128) {
25128
+ let i = new Float64Array(t * n);
25129
+ for (let a = 0; a < t * n; a++) i[a] = (e[a] ?? 0) >= r ? 0x56bc75e2d63100000 : 0;
25130
+ let a = new Float64Array(n);
25131
+ for (let e = 0; e < t; e++) {
25132
+ for (let r = 0; r < n; r++) a[r] = i[r * t + e];
25133
+ let r = vt(a);
25134
+ for (let a = 0; a < n; a++) i[a * t + e] = r[a];
25135
+ }
25136
+ let o = new Float64Array(t);
25137
+ for (let e = 0; e < n; e++) {
25138
+ for (let n = 0; n < t; n++) o[n] = i[e * t + n];
25139
+ let n = vt(o);
25140
+ for (let r = 0; r < t; r++) i[e * t + r] = n[r];
25141
+ }
25142
+ for (let e = 0; e < n; e++) for (let r = 0; r < t; r++) {
25143
+ let a = e * t + r;
25144
+ if (i[a] === 0) continue;
25145
+ let o = (e + 1) * (e + 1), s = (n - e) * (n - e), c = (r + 1) * (r + 1), l = (t - r) * (t - r), u = Math.min(o, s, c, l);
25146
+ u < i[a] && (i[a] = u);
25147
+ }
25148
+ for (let e = 0; e < t * n; e++) i[e] = Math.sqrt(i[e]);
25149
+ return i;
25150
+ }
25151
+ var Ct = .25, wt = .35, Tt = .5;
25152
+ function Et(e, t, n, r, i, a) {
25153
+ let o = new Float32Array(t * n * 3), s = new Uint8Array(t * n), c = new Float32Array(t * n);
25154
+ if (t <= 0 || n <= 0) return {
25155
+ normals: o,
25156
+ bandMask: s,
25157
+ bandWeight: c
25158
+ };
25159
+ let l = St(e, t, n), u = _t(i, r), d = (n, r) => (e[r * t + n] ?? 0) >= 128, f = (r > 0 ? a / r : 0) * r, p = xt(l, t, n, Math.max(1, r * Ct)), m = (e) => {
25160
+ let t = u(Math.max(0, e - .5));
25161
+ return u(e + .5) - t;
25162
+ };
25163
+ for (let e = 0; e < n; e++) for (let i = 0; i < t; i++) {
25164
+ let a = e * t + i;
25165
+ if (!d(i, e)) {
25166
+ o[a * 3 + 2] = 1;
25167
+ continue;
25168
+ }
25169
+ let u = l[a], h = u > 0 && u < r;
25170
+ if (s[a] = +!!h, !h) {
25171
+ o[a * 3 + 2] = 1;
25172
+ continue;
25173
+ }
25174
+ let g = u / r, _ = 1 - wt, v = 1;
25175
+ if (g > _) {
25176
+ let e = Math.min(1, (g - _) / wt);
25177
+ v = 1 - e * e * (3 - 2 * e);
25178
+ }
25179
+ c[a] = v;
25180
+ let y = i > 0 ? i - 1 : i, b = i < t - 1 ? i + 1 : i, x = e > 0 ? e - 1 : e, S = e < n - 1 ? e + 1 : e, C = (p[e * t + b] - p[e * t + y]) / (b - y || 1), w = (p[S * t + i] - p[x * t + i]) / (S - x || 1), T = Math.hypot(C, w), E = 0, D = 0;
25181
+ T > 1e-9 && (E = -C / T, D = -w / T);
25182
+ let O = m(u) * f, k = O * E, A = O * D, j = 1, M = Math.hypot(k, A, j) || 1;
25183
+ k /= M, A /= M, j /= M, o[a * 3] = k, o[a * 3 + 1] = A, o[a * 3 + 2] = j;
25184
+ }
25185
+ return {
25186
+ normals: o,
25187
+ bandMask: s,
25188
+ bandWeight: c
25189
+ };
25190
+ }
25191
+ var Dt = 35 * Math.PI / 180, Ot = 12 * Math.PI / 180, kt = {
25192
+ t: {
25193
+ x: 0,
25194
+ y: -1
25195
+ },
25196
+ b: {
25197
+ x: 0,
25198
+ y: 1
25199
+ },
25200
+ l: {
25201
+ x: -1,
25202
+ y: 0
25203
+ },
25204
+ r: {
25205
+ x: 1,
25206
+ y: 0
25207
+ },
25208
+ tl: {
25209
+ x: -1,
25210
+ y: -1
25211
+ },
25212
+ tr: {
25213
+ x: 1,
25214
+ y: -1
25215
+ },
25216
+ bl: {
25217
+ x: -1,
25218
+ y: 1
25219
+ },
25220
+ br: {
25221
+ x: 1,
25222
+ y: 1
25223
+ }
25224
+ };
25225
+ function At(e, t, n) {
25226
+ let r = n * Math.PI / 180, i = Math.cos(r), a = Math.sin(r);
25227
+ return {
25228
+ x: e * i - t * a,
25229
+ y: e * a + t * i
25230
+ };
25231
+ }
25232
+ function jt(e, t, n) {
25233
+ let r = kt[t] ?? kt.t;
25234
+ return n && n.rev && (r = At(r.x, r.y, n.rev)), Nt(r.x, r.y, Dt);
25235
+ }
25236
+ function Mt(e) {
25237
+ let t = Math.hypot(e.x, e.y) || 1;
25238
+ return Nt(-e.x / t, -e.y / t, Ot);
25239
+ }
25240
+ function Nt(e, t, n) {
25241
+ let r = Math.hypot(e, t) || 1, i = Math.cos(n), a = Math.sin(n), o = e / r * i, s = t / r * i, c = a, l = Math.hypot(o, s, c) || 1;
25242
+ return {
25243
+ x: o / l,
25244
+ y: s / l,
25245
+ z: c / l
25246
+ };
25247
+ }
25248
+ var Pt = 2, Ft = {
25249
+ matte: {
25250
+ ambient: .62,
25251
+ diffuse: .45,
25252
+ specular: 0,
25253
+ shininess: 8
25254
+ },
25255
+ plastic: {
25256
+ ambient: .55,
25257
+ diffuse: .5,
25258
+ specular: .35,
25259
+ shininess: 22
25260
+ }
25261
+ }, It = .8;
25262
+ function Lt(e) {
25263
+ switch (e) {
25264
+ case "plastic":
25265
+ case "metal":
25266
+ case "clear":
25267
+ case "softEdge":
25268
+ case "shiny":
25269
+ case "softmetal": return "plastic";
25270
+ default: return "matte";
25271
+ }
25272
+ }
25273
+ function Rt(e, t, n = !0) {
25274
+ let r = Ft[e], i = {
25275
+ light: t,
25276
+ material: e,
25277
+ ambient: r.ambient,
25278
+ diffuse: r.diffuse,
25279
+ specular: r.specular,
25280
+ shininess: r.shininess
25281
+ };
25282
+ return n && (i.fillLight = Mt(t), i.fillDiffuse = i.diffuse * It), i;
25283
+ }
25284
+ function zt(e, t) {
25285
+ let n = e.x * t.light.x + e.y * t.light.y + e.z * t.light.z, r = t.diffuse * Math.max(0, n), i = 0;
25286
+ if (t.fillLight && t.fillDiffuse) {
25287
+ let n = e.x * t.fillLight.x + e.y * t.fillLight.y + e.z * t.fillLight.z;
25288
+ i = t.fillDiffuse * Math.max(0, n);
25289
+ }
25290
+ let a = 0;
25291
+ if (t.specular > 0) {
25292
+ let n = t.light.x, r = t.light.y, i = t.light.z + 1, o = Math.hypot(n, r, i) || 1, s = (e.x * n + e.y * r + e.z * i) / o;
25293
+ a = t.specular * Math.max(0, s) ** +t.shininess;
25294
+ }
25295
+ return Math.max(0, t.ambient + r + i + a);
25296
+ }
25297
+ function Bt(e, t) {
25298
+ let n = e.canvas.width, r = e.canvas.height;
25299
+ if (n <= 0 || r <= 0) return;
25300
+ let i = t.widthPx;
25301
+ if (i < .75) return;
25302
+ let a = e.getImageData(0, 0, n, r), o = a.data, s = new Uint8ClampedArray(n * r);
25303
+ for (let e = 0; e < n * r; e++) s[e] = o[e * 4 + 3];
25304
+ let { bandMask: c, bandWeight: l, normals: u } = Et(s, n, r, i, t.prst, t.heightPx), d = Rt(t.material, t.light), f = zt({
25305
+ x: 0,
25306
+ y: 0,
25307
+ z: 1
25308
+ }, d) || 1;
25309
+ for (let e = 0; e < n * r; e++) {
25310
+ if (c[e] === 0) continue;
25311
+ let n = l[e];
25312
+ if (n <= 0) continue;
25313
+ let r = u[e * 3], i = u[e * 3 + 1], a = u[e * 3 + 2];
25314
+ t.bottom && (r = -r, i = -i);
25315
+ let s = 1 + (zt({
25316
+ x: r,
25317
+ y: i,
25318
+ z: a
25319
+ }, d) / f - 1) * n, p = e * 4;
25320
+ if (s >= 1) {
25321
+ let e = Math.min(1, (s - 1) * Pt);
25322
+ for (let t = 0; t < 3; t++) {
25323
+ let n = Math.min(255, o[p + t] * s);
25324
+ o[p + t] = n + (255 - n) * e;
25325
+ }
25326
+ } else o[p] = Math.max(0, o[p] * s), o[p + 1] = Math.max(0, o[p + 1] * s), o[p + 2] = Math.max(0, o[p + 2] * s);
25327
+ }
25328
+ e.putImageData(a, 0, 0);
25329
+ }
25330
+ function Vt(e, t) {
25331
+ let n = e.canvas.width, r = e.canvas.height;
25332
+ if (n <= 0 || r <= 0) return;
25333
+ let i = t.offsetX, a = t.offsetY, o = Math.hypot(i, a);
25334
+ if (o < .75) return;
25335
+ let s = e.getImageData(0, 0, n, r), c = s.data, l = new Uint8ClampedArray(n * r);
25336
+ for (let e = 0; e < n * r; e++) l[e] = c[e * 4 + 3];
25337
+ let u = Math.max(1, Math.ceil(o)), [d, f, p] = t.rgb;
25338
+ for (let e = 0; e < r; e++) for (let t = 0; t < n; t++) {
25339
+ let o = e * n + t;
25340
+ if (l[o] >= 128) continue;
25341
+ let s = !1;
25342
+ for (let o = 1; o <= u; o++) {
25343
+ let c = o / u, d = Math.round(t - i * c), f = Math.round(e - a * c);
25344
+ if (!(d < 0 || f < 0 || d >= n || f >= r) && l[f * n + d] >= 128) {
25345
+ s = !0;
25346
+ break;
25347
+ }
25348
+ }
25349
+ if (!s) continue;
25350
+ let m = o * 4;
25351
+ c[m] = d, c[m + 1] = f, c[m + 2] = p, c[m + 3] = 255;
25352
+ }
25353
+ e.putImageData(s, 0, 0);
24880
25354
  }
24881
25355
  //#endregion
24882
25356
  //#region packages/core/src/sparkline/renderer.ts
24883
- function rt(e, t, n) {
25357
+ function Ht(e, t, n) {
24884
25358
  let { values: r } = n;
24885
25359
  if (r.length === 0 || t.w <= 0 || t.h <= 0) return;
24886
25360
  let i = n.colorSeries ?? "#5B9BD5", a = Math.min(2, t.w * .08), o = Math.max(2, t.h * .2), s = t.x + a, c = t.y + o, l = Math.max(1, t.w - a * 2), u = Math.max(1, t.h - o * 2), d = r.filter((e) => typeof e == "number");
@@ -24889,11 +25363,11 @@ function rt(e, t, n) {
24889
25363
  m === h && (h = m + 1, --m);
24890
25364
  let g = h - m, _ = (e) => c + u - (e - m) / g * u;
24891
25365
  if (n.kind === "stem") {
24892
- ot(e, n, s, c, l, u);
25366
+ Gt(e, n, s, c, l, u);
24893
25367
  return;
24894
25368
  }
24895
25369
  if (n.kind === "column") {
24896
- at(e, n, r, s, c, l, u, m, h);
25370
+ Wt(e, n, r, s, c, l, u, m, h);
24897
25371
  return;
24898
25372
  }
24899
25373
  if (n.displayXAxis && m < 0 && h > 0) {
@@ -24901,31 +25375,31 @@ function rt(e, t, n) {
24901
25375
  let t = _(0);
24902
25376
  e.moveTo(s, t), e.lineTo(s + l, t), e.stroke(), e.restore();
24903
25377
  }
24904
- let y = r.length, b = (e) => y === 1 ? s + l / 2 : s + e / (y - 1) * l;
24905
- e.save(), e.strokeStyle = i, e.lineCap = "round", e.lineJoin = "round", e.lineWidth = (n.lineWeight ?? .75) * v, e.beginPath();
24906
- let x = !1, S = n.displayEmptyCellsAs ?? "gap";
24907
- for (let t = 0; t < y; t++) {
25378
+ let v = r.length, y = (e) => v === 1 ? s + l / 2 : s + e / (v - 1) * l;
25379
+ e.save(), e.strokeStyle = i, e.lineCap = "round", e.lineJoin = "round", e.lineWidth = (n.lineWeight ?? .75) * L, e.beginPath();
25380
+ let b = !1, x = n.displayEmptyCellsAs ?? "gap";
25381
+ for (let t = 0; t < v; t++) {
24908
25382
  let n = r[t];
24909
25383
  if (n == null) {
24910
- if (S === "zero") {
24911
- let n = b(t), r = _(0);
24912
- x ? e.lineTo(n, r) : (e.moveTo(n, r), x = !0);
24913
- } else S === "gap" && (x = !1);
25384
+ if (x === "zero") {
25385
+ let n = y(t), r = _(0);
25386
+ b ? e.lineTo(n, r) : (e.moveTo(n, r), b = !0);
25387
+ } else x === "gap" && (b = !1);
24914
25388
  continue;
24915
25389
  }
24916
- let i = b(t), a = _(n);
24917
- x ? e.lineTo(i, a) : (e.moveTo(i, a), x = !0);
25390
+ let i = y(t), a = _(n);
25391
+ b ? e.lineTo(i, a) : (e.moveTo(i, a), b = !0);
24918
25392
  }
24919
25393
  e.stroke(), e.restore();
24920
- let C = Math.max(1, Math.min(2.5, u * .12)), w = it(r, n);
24921
- for (let t = 0; t < y; t++) {
25394
+ let S = Math.max(1, Math.min(2.5, u * .12)), C = Ut(r, n);
25395
+ for (let t = 0; t < v; t++) {
24922
25396
  let a = r[t];
24923
25397
  if (a == null) continue;
24924
- let o = w[t];
24925
- (n.markers || o != null) && (e.save(), e.fillStyle = o ?? n.colorMarkers ?? i, e.beginPath(), e.arc(b(t), _(a), C, 0, Math.PI * 2), e.fill(), e.restore());
25398
+ let o = C[t];
25399
+ (n.markers || o != null) && (e.save(), e.fillStyle = o ?? n.colorMarkers ?? i, e.beginPath(), e.arc(y(t), _(a), S, 0, Math.PI * 2), e.fill(), e.restore());
24926
25400
  }
24927
25401
  }
24928
- function it(e, t) {
25402
+ function Ut(e, t) {
24929
25403
  let n = e.map(() => null), r = e.map((e) => typeof e == "number" ? e : null), i = r.findIndex((e) => e != null), a = -1;
24930
25404
  for (let e = r.length - 1; e >= 0; e--) if (r[e] != null) {
24931
25405
  a = e;
@@ -24940,10 +25414,10 @@ function it(e, t) {
24940
25414
  if (t.low && t.colorLow && !Number.isNaN(c)) for (let e = 0; e < r.length; e++) r[e] === c && (n[e] = t.colorLow);
24941
25415
  return n;
24942
25416
  }
24943
- function at(e, t, n, r, i, a, o, s, c) {
25417
+ function Wt(e, t, n, r, i, a, o, s, c) {
24944
25418
  let l = n.length;
24945
25419
  if (l === 0) return;
24946
- let u = s < 0 && c > 0 ? 0 : s, d = c - s, f = (e) => i + o - (e - s) / d * o, p = f(u), m = a / l, h = Math.min(1.5, m * .15), g = it(n, t);
25420
+ let u = s < 0 && c > 0 ? 0 : s, d = c - s, f = (e) => i + o - (e - s) / d * o, p = f(u), m = a / l, h = Math.min(1.5, m * .15), g = Ut(n, t);
24947
25421
  for (let i = 0; i < l; i++) {
24948
25422
  let a = n[i];
24949
25423
  if (a == null) continue;
@@ -24951,10 +25425,10 @@ function at(e, t, n, r, i, a, o, s, c) {
24951
25425
  e.save(), e.fillStyle = o, e.fillRect(c, Math.min(p, s), l, Math.abs(p - s)), e.restore();
24952
25426
  }
24953
25427
  }
24954
- function ot(e, t, n, r, i, a) {
25428
+ function Gt(e, t, n, r, i, a) {
24955
25429
  let o = t.values.length;
24956
25430
  if (o === 0) return;
24957
- let s = r + a / 2, c = a / 2, l = i / o, u = Math.min(1.5, l * .15), d = it(t.values, t);
25431
+ let s = r + a / 2, c = a / 2, l = i / o, u = Math.min(1.5, l * .15), d = Ut(t.values, t);
24958
25432
  for (let r = 0; r < o; r++) {
24959
25433
  let i = t.values[r];
24960
25434
  if (i == null || i === 0) continue;
@@ -24964,13 +25438,13 @@ function ot(e, t, n, r, i, a) {
24964
25438
  }
24965
25439
  //#endregion
24966
25440
  //#region packages/core/src/math/mathml.ts
24967
- var st = {
25441
+ var Kt = {
24968
25442
  "&": "&amp;",
24969
25443
  "<": "&lt;",
24970
25444
  ">": "&gt;",
24971
25445
  "\"": "&quot;"
24972
- }, ct = (e) => e.replace(/[&<>"]/g, (e) => st[e]);
24973
- function lt(e) {
25446
+ }, Q = (e) => e.replace(/[&<>"]/g, (e) => Kt[e]);
25447
+ function qt(e) {
24974
25448
  switch (e) {
24975
25449
  case "roman": return "normal";
24976
25450
  case "bold": return "bold";
@@ -24978,10 +25452,10 @@ function lt(e) {
24978
25452
  case "italic": return null;
24979
25453
  }
24980
25454
  }
24981
- var ut = new Set([..."⏞⏟⎴⎵︷︸⏜⏝{}[]()¯_‾"]), dt = "+−±∓×÷·∗⋅∘∙*/", ft = "=≠<>≤≥≈≡∼≅≃→←↔⇒∈∉⊂⊆⊃⊇∝≪≫⊥≔", pt = "([{⟨⌈⌊", mt = ")]}⟩⌉⌋", ht = ",;";
24982
- function gt(e, t) {
24983
- let n = lt(t), r = n ? ` mathvariant="${n}"` : "", i = "", a = "", o = () => {
24984
- a &&= (i += `<mn${r}>${ct(a)}</mn>`, "");
25455
+ var Jt = new Set([..."⏞⏟⎴⎵︷︸⏜⏝{}[]()¯_‾"]), Yt = "+−±∓×÷·∗⋅∘∙*/", Xt = "=≠<>≤≥≈≡∼≅≃→←↔⇒∈∉⊂⊆⊃⊇∝≪≫⊥≔", Zt = "([{⟨⌈⌊", Qt = ")]}⟩⌉⌋", $t = ",;";
25456
+ function en(e, t) {
25457
+ let n = qt(t), r = n ? ` mathvariant="${n}"` : "", i = "", a = "", o = () => {
25458
+ a &&= (i += `<mn${r}>${Q(a)}</mn>`, "");
24985
25459
  };
24986
25460
  for (let t of e) {
24987
25461
  if (t === " ") {
@@ -24992,42 +25466,42 @@ function gt(e, t) {
24992
25466
  a += t;
24993
25467
  continue;
24994
25468
  }
24995
- o(), dt.includes(t) || ft.includes(t) || ht.includes(t) ? i += `<mo>${ct(t)}</mo>` : pt.includes(t) || mt.includes(t) ? i += `<mo fence="true" stretchy="false">${ct(t)}</mo>` : i += `<mi${r}>${ct(t)}</mi>`;
25469
+ o(), Yt.includes(t) || Xt.includes(t) || $t.includes(t) ? i += `<mo>${Q(t)}</mo>` : Zt.includes(t) || Qt.includes(t) ? i += `<mo fence="true" stretchy="false">${Q(t)}</mo>` : i += `<mi${r}>${Q(t)}</mi>`;
24996
25470
  }
24997
25471
  return o(), i;
24998
25472
  }
24999
- function _t(e) {
25000
- return e.map(vt).join("");
25473
+ function tn(e) {
25474
+ return e.map(nn).join("");
25001
25475
  }
25002
25476
  function $(e) {
25003
- return `<mrow>${_t(e)}</mrow>`;
25477
+ return `<mrow>${tn(e)}</mrow>`;
25004
25478
  }
25005
- function vt(e) {
25479
+ function nn(e) {
25006
25480
  switch (e.kind) {
25007
- case "run": return gt(e.text, e.style);
25481
+ case "run": return en(e.text, e.style);
25008
25482
  case "group": return $(e.items);
25009
25483
  case "fraction": return `<mfrac${e.bar === !1 ? " linethickness=\"0\"" : ""}>${$(e.num)}${$(e.den)}</mfrac>`;
25010
25484
  case "sup": return `<msup>${$(e.base)}${$(e.sup ?? [])}</msup>`;
25011
25485
  case "sub": return `<msub>${$(e.base)}${$(e.sub ?? [])}</msub>`;
25012
25486
  case "subSup": return `<msubsup>${$(e.base)}${$(e.sub ?? [])}${$(e.sup ?? [])}</msubsup>`;
25013
- case "nary": return Tt(e);
25014
- case "delimiter": return Et(e);
25015
- case "radical": return e.index && e.index.length ? `<mroot>${$(e.radicand)}${$(e.index)}</mroot>` : `<msqrt>${_t(e.radicand)}</msqrt>`;
25016
- case "limit": return St(e);
25017
- case "array": return Ct(e);
25487
+ case "nary": return un(e);
25488
+ case "delimiter": return dn(e);
25489
+ case "radical": return e.index && e.index.length ? `<mroot>${$(e.radicand)}${$(e.index)}</mroot>` : `<msqrt>${tn(e.radicand)}</msqrt>`;
25490
+ case "limit": return sn(e);
25491
+ case "array": return cn(e);
25018
25492
  case "groupChr": {
25019
- let t = $(e.base), n = ut.has(e.char), r = e.pos === "top" ? "mover" : "munder", i = `<mo stretchy="${n}">${ct(e.char)}</mo>`;
25493
+ let t = $(e.base), n = Jt.has(e.char), r = e.pos === "top" ? "mover" : "munder", i = `<mo stretchy="${n}">${Q(e.char)}</mo>`;
25020
25494
  return n ? `<${r}>${t}${i}</${r}>` : `<${r} accent="true">${t}${i}</${r}>`;
25021
25495
  }
25022
25496
  case "bar": {
25023
25497
  let t = $(e.base), n = "<mo stretchy=\"true\">&#x2015;</mo>";
25024
25498
  return e.pos === "bot" ? `<munder>${t}${n}</munder>` : `<mover>${t}${n}</mover>`;
25025
25499
  }
25026
- case "accent": return xt(e);
25500
+ case "accent": return on(e);
25027
25501
  case "func": return `<mrow>${$(e.name)}<mo>&#x2061;</mo>${$(e.arg)}</mrow>`;
25028
25502
  }
25029
25503
  }
25030
- var yt = {
25504
+ var rn = {
25031
25505
  "̀": "`",
25032
25506
  "́": "´",
25033
25507
  "̂": "^",
@@ -25038,7 +25512,7 @@ var yt = {
25038
25512
  "̌": "ˇ",
25039
25513
  "⃗": "→",
25040
25514
  "⃖": "←"
25041
- }, bt = new Set([
25515
+ }, an = new Set([
25042
25516
  "̅",
25043
25517
  "̄",
25044
25518
  "¯",
@@ -25046,37 +25520,45 @@ var yt = {
25046
25520
  "̲",
25047
25521
  "̳"
25048
25522
  ]);
25049
- function xt(e) {
25523
+ function on(e) {
25050
25524
  let t = $(e.base);
25051
- if (bt.has(e.char)) return `<mover>${t}<mo stretchy="true">&#x2015;</mo></mover>`;
25052
- let n = yt[e.char] ?? e.char;
25053
- return `<mover accent="true">${t}<mo stretchy="${n === "→" || n === "←" ? "true" : "false"}">${ct(n)}</mo></mover>`;
25525
+ if (an.has(e.char)) return `<mover>${t}<mo stretchy="true">&#x2015;</mo></mover>`;
25526
+ let n = rn[e.char] ?? e.char;
25527
+ return `<mover accent="true">${t}<mo stretchy="${n === "→" || n === "←" ? "true" : "false"}">${Q(n)}</mo></mover>`;
25054
25528
  }
25055
- function St(e) {
25529
+ function sn(e) {
25056
25530
  let t = $(e.base), n = e.lower && e.lower.length ? $(e.lower) : null, r = e.upper && e.upper.length ? $(e.upper) : null;
25057
25531
  return n && r ? `<munderover>${t}${n}${r}</munderover>` : n ? `<munder>${t}${n}</munder>` : r ? `<mover>${t}${r}</mover>` : t;
25058
25532
  }
25059
- function Ct(e) {
25533
+ function cn(e) {
25060
25534
  let t = Math.max(1, ...e.rows.map((e) => e.length)), n;
25061
25535
  n = e.align === "eq" ? Array.from({ length: t }, (e, t) => t % 2 == 0 ? "right" : "left").join(" ") : e.align === "left" ? "left" : "center";
25062
- let r = e.rows.map((e) => `<mtr>${e.map((e) => `<mtd>${_t(e)}</mtd>`).join("")}</mtr>`).join("");
25536
+ let r = e.rows.map((e) => `<mtr>${e.map((e) => `<mtd>${tn(e)}</mtd>`).join("")}</mtr>`).join("");
25063
25537
  return `<mtable columnalign="${n}" rowspacing="0.2em" columnspacing="0.3em">${r}</mtable>`;
25064
25538
  }
25065
- var wt = new Set([..."∫∬∭∮∯∰∱∲∳⨌⨍⨎⨏⨐⨑⨒⨓⨔⨕⨖⨗"]);
25066
- function Tt(e) {
25067
- let t = e.limLoc === "subSup" ? !0 : e.limLoc === "undOvr" ? !1 : wt.has(e.op), n = `<mo largeop="true">${ct(e.op)}</mo>`, r = e.sub ?? [], i = e.sup ?? [], a;
25068
- return a = t ? r.length && i.length ? `<msubsup>${n}${$(r)}${$(i)}</msubsup>` : r.length ? `<msub>${n}${$(r)}</msub>` : i.length ? `<msup>${n}${$(i)}</msup>` : n : r.length && i.length ? `<munderover>${n}${$(r)}${$(i)}</munderover>` : r.length ? `<munder>${n}${$(r)}</munder>` : i.length ? `<mover>${n}${$(i)}</mover>` : n, `<mrow>${a}${_t(e.body)}</mrow>`;
25539
+ var ln = new Set([..."∫∬∭∮∯∰∱∲∳⨌⨍⨎⨏⨐⨑⨒⨓⨔⨕⨖⨗"]);
25540
+ function un(e) {
25541
+ let t = e.limLoc === "subSup" ? !0 : e.limLoc === "undOvr" ? !1 : ln.has(e.op), n = `<mo largeop="true">${Q(e.op)}</mo>`, r = e.sub ?? [], i = e.sup ?? [], a;
25542
+ return a = t ? r.length && i.length ? `<msubsup>${n}${$(r)}${$(i)}</msubsup>` : r.length ? `<msub>${n}${$(r)}</msub>` : i.length ? `<msup>${n}${$(i)}</msup>` : n : r.length && i.length ? `<munderover>${n}${$(r)}${$(i)}</munderover>` : r.length ? `<munder>${n}${$(r)}</munder>` : i.length ? `<mover>${n}${$(i)}</mover>` : n, `<mrow>${a}${tn(e.body)}</mrow>`;
25069
25543
  }
25070
- function Et(e) {
25071
- let t = (e) => `<mo fence="true" stretchy="true">${ct(e)}</mo>`, n = e.items.map((e) => $(e)).join("<mo separator=\"true\">,</mo>");
25544
+ function dn(e) {
25545
+ let t = (e) => `<mo fence="true" stretchy="true">${Q(e)}</mo>`, n = e.items.map((e) => $(e)).join("<mo separator=\"true\">,</mo>");
25072
25546
  return `<mrow>${t(e.begChar)}${n}${t(e.endChar)}</mrow>`;
25073
25547
  }
25074
- function Dt(e, t) {
25075
- return `<math xmlns="http://www.w3.org/1998/Math/MathML" display="${t ? "block" : "inline"}">${_t(e)}</math>`;
25548
+ function fn(e, t) {
25549
+ return `<math xmlns="http://www.w3.org/1998/Math/MathML" display="${t ? "block" : "inline"}">${tn(e)}</math>`;
25550
+ }
25551
+ //#endregion
25552
+ //#region packages/core/src/canvas/env.ts
25553
+ function pn(e) {
25554
+ return typeof HTMLCanvasElement < "u" && e instanceof HTMLCanvasElement;
25555
+ }
25556
+ function mn(e = 1) {
25557
+ return typeof window < "u" && window.devicePixelRatio || e;
25076
25558
  }
25077
25559
  //#endregion
25078
25560
  //#region packages/core/src/worker/bridge.ts
25079
- var Ot = class {
25561
+ var hn = class {
25080
25562
  _worker;
25081
25563
  _opts;
25082
25564
  _pending = /* @__PURE__ */ new Map();
@@ -25116,7 +25598,7 @@ var Ot = class {
25116
25598
  for (let e of this._pending.values()) e.reject(/* @__PURE__ */ Error("Worker terminated"));
25117
25599
  this._pending.clear();
25118
25600
  }
25119
- }, kt = [
25601
+ }, gn = [
25120
25602
  "L",
25121
25603
  "R",
25122
25604
  "AL",
@@ -25140,7 +25622,7 @@ var Ot = class {
25140
25622
  "RLI",
25141
25623
  "FSI",
25142
25624
  "PDI"
25143
- ], At = [
25625
+ ], _n = [
25144
25626
  0,
25145
25627
  9,
25146
25628
  10,
@@ -26408,7 +26890,7 @@ var Ot = class {
26408
26890
  1048574,
26409
26891
  1048576,
26410
26892
  1114110
26411
- ], jt = [
26893
+ ], vn = [
26412
26894
  9,
26413
26895
  11,
26414
26896
  10,
@@ -27676,7 +28158,7 @@ var Ot = class {
27676
28158
  9,
27677
28159
  0,
27678
28160
  9
27679
- ], Mt = [
28161
+ ], yn = [
27680
28162
  40,
27681
28163
  41,
27682
28164
  41,
@@ -28533,7 +29015,7 @@ var Ot = class {
28533
29015
  65379,
28534
29016
  65379,
28535
29017
  65378
28536
- ], Nt = [
29018
+ ], bn = [
28537
29019
  40,
28538
29020
  41,
28539
29021
  0,
@@ -28921,42 +29403,42 @@ var Ot = class {
28921
29403
  ];
28922
29404
  //#endregion
28923
29405
  //#region packages/core/src/text/bidi/char-data.ts
28924
- function Pt(e) {
28925
- let t = 0, n = At.length - 1;
29406
+ function xn(e) {
29407
+ let t = 0, n = _n.length - 1;
28926
29408
  for (; t < n;) {
28927
29409
  let r = t + n + 1 >> 1;
28928
- At[r] <= e ? t = r : n = r - 1;
29410
+ _n[r] <= e ? t = r : n = r - 1;
28929
29411
  }
28930
- return jt[t];
29412
+ return vn[t];
28931
29413
  }
28932
- function Ft(e) {
28933
- return kt[Pt(e)];
29414
+ function Sn(e) {
29415
+ return gn[xn(e)];
28934
29416
  }
28935
- var It = (() => {
29417
+ var Cn = (() => {
28936
29418
  let e = /* @__PURE__ */ new Map();
28937
- for (let t = 0; t < Mt.length; t += 2) e.set(Mt[t], Mt[t + 1]);
29419
+ for (let t = 0; t < yn.length; t += 2) e.set(yn[t], yn[t + 1]);
28938
29420
  return e;
28939
29421
  })();
28940
- function Lt(e) {
28941
- return It.get(e) ?? null;
29422
+ function wn(e) {
29423
+ return Cn.get(e) ?? null;
28942
29424
  }
28943
- var Rt = (() => {
29425
+ var Tn = (() => {
28944
29426
  let e = /* @__PURE__ */ new Map();
28945
- for (let t = 0; t < Nt.length; t += 3) e.set(Nt[t], {
28946
- pair: Nt[t + 1],
28947
- type: Nt[t + 2] === 0 ? "o" : "c"
29427
+ for (let t = 0; t < bn.length; t += 3) e.set(bn[t], {
29428
+ pair: bn[t + 1],
29429
+ type: bn[t + 2] === 0 ? "o" : "c"
28948
29430
  });
28949
29431
  return e;
28950
29432
  })();
28951
- function zt(e) {
28952
- return Rt.get(e) ?? null;
29433
+ function En(e) {
29434
+ return Tn.get(e) ?? null;
28953
29435
  }
28954
- var Bt = (e) => e === "RLE" || e === "LRE" || e === "RLO" || e === "LRO" || e === "PDF" || e === "BN", Vt = (e) => e === "LRI" || e === "RLI" || e === "FSI", Ht = (e) => e === "B" || e === "S" || e === "WS" || e === "ON" || e === "FSI" || e === "LRI" || e === "RLI" || e === "PDI", Ut = (e) => e & 1 ? e + 2 : e + 1, Wt = (e) => e & 1 ? e + 1 : e + 2;
28955
- function Gt(e, t, n) {
29436
+ var Dn = (e) => e === "RLE" || e === "LRE" || e === "RLO" || e === "LRO" || e === "PDF" || e === "BN", On = (e) => e === "LRI" || e === "RLI" || e === "FSI", kn = (e) => e === "B" || e === "S" || e === "WS" || e === "ON" || e === "FSI" || e === "LRI" || e === "RLI" || e === "PDI", An = (e) => e & 1 ? e + 2 : e + 1, jn = (e) => e & 1 ? e + 1 : e + 2;
29437
+ function Mn(e, t, n) {
28956
29438
  let r = 0;
28957
29439
  for (let i = t; i < n; i++) {
28958
29440
  let t = e[i];
28959
- if (Vt(t)) r++;
29441
+ if (On(t)) r++;
28960
29442
  else if (t === "PDI") r > 0 && r--;
28961
29443
  else if (r === 0) {
28962
29444
  if (t === "L") return 0;
@@ -28965,11 +29447,11 @@ function Gt(e, t, n) {
28965
29447
  }
28966
29448
  return 0;
28967
29449
  }
28968
- function Kt(e) {
29450
+ function Nn(e) {
28969
29451
  let t = e.length, n = new Int32Array(t).fill(t), r = new Int32Array(t).fill(-1), i = [];
28970
29452
  for (let a = 0; a < t; a++) {
28971
29453
  let t = e[a];
28972
- if (Vt(t)) i.push(a);
29454
+ if (On(t)) i.push(a);
28973
29455
  else if (t === "PDI" && i.length) {
28974
29456
  let e = i.pop();
28975
29457
  n[e] = a, r[a] = e;
@@ -28980,7 +29462,7 @@ function Kt(e) {
28980
29462
  initOf: r
28981
29463
  };
28982
29464
  }
28983
- function qt(e, t, n) {
29465
+ function Pn(e, t, n) {
28984
29466
  let r = e.length, i = Array(r).fill(t), a = e.slice(), o = [{
28985
29467
  level: t,
28986
29468
  override: "neutral",
@@ -28994,7 +29476,7 @@ function qt(e, t, n) {
28994
29476
  case "RLO":
28995
29477
  case "LRO": {
28996
29478
  i[d] = u().level;
28997
- let e = r === "RLE" || r === "RLO" ? Ut(u().level) : Wt(u().level);
29479
+ let e = r === "RLE" || r === "RLO" ? An(u().level) : jn(u().level);
28998
29480
  e <= 125 && s === 0 && c === 0 ? o.push({
28999
29481
  level: e,
29000
29482
  override: r === "RLO" ? "R" : r === "LRO" ? "L" : "neutral",
@@ -29009,8 +29491,8 @@ function qt(e, t, n) {
29009
29491
  let t = u().override;
29010
29492
  t !== "neutral" && (a[d] = t);
29011
29493
  let f;
29012
- f = r === "RLI" ? "R" : r === "LRI" ? "L" : Gt(e, d + 1, n[d]) === 1 ? "R" : "L";
29013
- let p = f === "R" ? Ut(u().level) : Wt(u().level);
29494
+ f = r === "RLI" ? "R" : r === "LRI" ? "L" : Mn(e, d + 1, n[d]) === 1 ? "R" : "L";
29495
+ let p = f === "R" ? An(u().level) : jn(u().level);
29014
29496
  p <= 125 && s === 0 && c === 0 ? (l++, o.push({
29015
29497
  level: p,
29016
29498
  override: "neutral",
@@ -29052,10 +29534,10 @@ function qt(e, t, n) {
29052
29534
  types: a
29053
29535
  };
29054
29536
  }
29055
- function Jt(e) {
29537
+ function Fn(e) {
29056
29538
  return e === 9001 ? 12296 : e === 9002 ? 12297 : e;
29057
29539
  }
29058
- function Yt(e, t, n, r, i, a) {
29540
+ function In(e, t, n, r, i, a) {
29059
29541
  let o = e.length, s = [];
29060
29542
  for (let e = 0; e < o; e++) n[e] || s.push(e);
29061
29543
  let c = [];
@@ -29073,7 +29555,7 @@ function Yt(e, t, n, r, i, a) {
29073
29555
  for (;;) {
29074
29556
  for (let e of p) f.push(e);
29075
29557
  let t = p[p.length - 1];
29076
- if (Vt(e[t]) && i[t] !== o) {
29558
+ if (On(e[t]) && i[t] !== o) {
29077
29559
  let e = l.get(i[t]);
29078
29560
  if (e) {
29079
29561
  p = e;
@@ -29088,7 +29570,7 @@ function Yt(e, t, n, r, i, a) {
29088
29570
  break;
29089
29571
  }
29090
29572
  let g = u(Math.max(m, h)), _ = f[f.length - 1], v = r;
29091
- if (!(Vt(e[_]) && i[_] === o)) {
29573
+ if (!(On(e[_]) && i[_] === o)) {
29092
29574
  for (let e = _ + 1; e < o; e++) if (!n[e]) {
29093
29575
  v = t[e];
29094
29576
  break;
@@ -29104,8 +29586,8 @@ function Yt(e, t, n, r, i, a) {
29104
29586
  }
29105
29587
  return d;
29106
29588
  }
29107
- var Xt = (e) => e === "L" ? "L" : e === "R" || e === "EN" || e === "AN" ? "R" : null;
29108
- function Zt(e, t, n, r, i) {
29589
+ var Ln = (e) => e === "L" ? "L" : e === "R" || e === "EN" || e === "AN" ? "R" : null;
29590
+ function Rn(e, t, n, r, i) {
29109
29591
  let a = e.indices, o = a.length, { sos: s, eos: c, level: l } = e;
29110
29592
  for (let e = 0; e < o; e++) {
29111
29593
  let t = a[e];
@@ -29152,15 +29634,15 @@ function Zt(e, t, n, r, i) {
29152
29634
  outer: for (let n = 0; n < o; n++) {
29153
29635
  let i = a[n];
29154
29636
  if (r[i] !== "ON") continue;
29155
- let o = zt(t[i]);
29637
+ let o = En(t[i]);
29156
29638
  if (o) if (o.type === "o") {
29157
29639
  if (e.length === 63) break outer;
29158
29640
  e.push({
29159
- expect: Jt(o.pair),
29641
+ expect: Fn(o.pair),
29160
29642
  pos: n
29161
29643
  });
29162
29644
  } else {
29163
- let r = Jt(t[i]);
29645
+ let r = Fn(t[i]);
29164
29646
  for (let t = e.length - 1; t >= 0; t--) if (e[t].expect === r) {
29165
29647
  f.push({
29166
29648
  open: e[t].pos,
@@ -29178,7 +29660,7 @@ function Zt(e, t, n, r, i) {
29178
29660
  for (let { open: e, close: t } of f) {
29179
29661
  let n = !1, i = !1;
29180
29662
  for (let o = e + 1; o < t; o++) {
29181
- let e = Xt(r[a[o]]);
29663
+ let e = Ln(r[a[o]]);
29182
29664
  e === u ? n = !0 : e === d && (i = !0);
29183
29665
  }
29184
29666
  let o = null;
@@ -29186,7 +29668,7 @@ function Zt(e, t, n, r, i) {
29186
29668
  else if (i) {
29187
29669
  let t = s;
29188
29670
  for (let n = e - 1; n >= 0; n--) {
29189
- let e = Xt(r[a[n]]);
29671
+ let e = Ln(r[a[n]]);
29190
29672
  if (e) {
29191
29673
  t = e;
29192
29674
  break;
@@ -29197,29 +29679,29 @@ function Zt(e, t, n, r, i) {
29197
29679
  o && (r[a[e]] = o, r[a[t]] = o, p(e, o), p(t, o));
29198
29680
  }
29199
29681
  for (let e = 0; e < o; e++) {
29200
- if (!Ht(r[a[e]])) continue;
29682
+ if (!kn(r[a[e]])) continue;
29201
29683
  let t = e;
29202
- for (; t < o && Ht(r[a[t]]);) t++;
29203
- let n = e > 0 ? Xt(r[a[e - 1]]) : s, i = t < o ? Xt(r[a[t]]) : c;
29684
+ for (; t < o && kn(r[a[t]]);) t++;
29685
+ let n = e > 0 ? Ln(r[a[e - 1]]) : s, i = t < o ? Ln(r[a[t]]) : c;
29204
29686
  if (n && i && n === i) for (let i = e; i < t; i++) r[a[i]] = n;
29205
29687
  e = t - 1;
29206
29688
  }
29207
- for (let e = 0; e < o; e++) Ht(r[a[e]]) && (r[a[e]] = u);
29689
+ for (let e = 0; e < o; e++) kn(r[a[e]]) && (r[a[e]] = u);
29208
29690
  for (let e = 0; e < o; e++) {
29209
29691
  let t = a[e], n = r[t];
29210
29692
  l & 1 ? (n === "L" || n === "EN" || n === "AN") && (i[t] += 1) : n === "R" ? i[t] += 1 : (n === "AN" || n === "EN") && (i[t] += 2);
29211
29693
  }
29212
29694
  }
29213
- function Qt(e, t, n) {
29695
+ function zn(e, t, n) {
29214
29696
  let r = e.length, i = Array(r);
29215
- for (let t = 0; t < r; t++) i[t] = n?.[t] ?? Ft(e[t]);
29216
- let a = t === "rtl" ? 1 : t === "ltr" ? 0 : Gt(i, 0, r), { pdiOf: o, initOf: s } = Kt(i), { levels: c, types: l } = qt(i, a, o), u = Array(r);
29217
- for (let e = 0; e < r; e++) u[e] = Bt(i[e]);
29218
- let d = Yt(i, c, u, a, o, s), f = l.slice();
29219
- for (let t of d) Zt(t, e, i, f, c);
29697
+ for (let t = 0; t < r; t++) i[t] = n?.[t] ?? Sn(e[t]);
29698
+ let a = t === "rtl" ? 1 : t === "ltr" ? 0 : Mn(i, 0, r), { pdiOf: o, initOf: s } = Nn(i), { levels: c, types: l } = Pn(i, a, o), u = Array(r);
29699
+ for (let e = 0; e < r; e++) u[e] = Dn(i[e]);
29700
+ let d = In(i, c, u, a, o, s), f = l.slice();
29701
+ for (let t of d) Rn(t, e, i, f, c);
29220
29702
  let p = (e) => {
29221
29703
  let t = i[e];
29222
- return t === "WS" || Vt(t) || t === "PDI" || u[e];
29704
+ return t === "WS" || On(t) || t === "PDI" || u[e];
29223
29705
  };
29224
29706
  for (let e = 0; e < r; e++) {
29225
29707
  let t = i[e];
@@ -29235,7 +29717,7 @@ function Qt(e, t, n) {
29235
29717
  paragraphLevel: a
29236
29718
  };
29237
29719
  }
29238
- function $t(e, t, n) {
29720
+ function Bn(e, t, n) {
29239
29721
  let r = [];
29240
29722
  for (let i = t; i < n; i++) {
29241
29723
  let t = e[i];
@@ -29263,7 +29745,7 @@ function $t(e, t, n) {
29263
29745
  }
29264
29746
  //#endregion
29265
29747
  //#region packages/core/src/text/bidi/uax9/index.ts
29266
- function en(e) {
29748
+ function Vn(e) {
29267
29749
  let t = [], n = [], r = [];
29268
29750
  for (let i = 0; i < e.length;) {
29269
29751
  let a = e.codePointAt(i), o = a > 65535 ? 2 : 1;
@@ -29275,9 +29757,9 @@ function en(e) {
29275
29757
  starts: r
29276
29758
  };
29277
29759
  }
29278
- var tn = class {
29760
+ var Hn = class {
29279
29761
  computeLevels(e, t, n) {
29280
- let { cps: r, units: i, starts: a } = en(e), { levels: o, paragraphLevel: s } = Qt(r, t, n ? r.map((e, t) => n[a[t]] ?? null) : void 0), c = new Uint8Array(e.length), l = 0;
29762
+ let { cps: r, units: i, starts: a } = Vn(e), { levels: o, paragraphLevel: s } = zn(r, t, n ? r.map((e, t) => n[a[t]] ?? null) : void 0), c = new Uint8Array(e.length), l = 0;
29281
29763
  for (let e = 0; e < o.length; e++) {
29282
29764
  let t = o[e] === -1 ? 255 : o[e];
29283
29765
  for (let n = 0; n < i[e]; n++) c[l++] = t;
@@ -29288,25 +29770,25 @@ var tn = class {
29288
29770
  };
29289
29771
  }
29290
29772
  reorderVisual(e, t, n) {
29291
- return $t(e, t, n);
29773
+ return Bn(e, t, n);
29292
29774
  }
29293
29775
  getMirror(e) {
29294
- return Lt(e);
29776
+ return wn(e);
29295
29777
  }
29296
29778
  };
29297
- function nn() {
29298
- return new tn();
29779
+ function Un() {
29780
+ return new Hn();
29299
29781
  }
29300
29782
  //#endregion
29301
29783
  //#region packages/core/src/text/bidi/engine.ts
29302
- var rn = null;
29303
- function an() {
29304
- return rn === null && (rn = nn()), rn;
29784
+ var Wn = null;
29785
+ function Gn() {
29786
+ return Wn === null && (Wn = Un()), Wn;
29305
29787
  }
29306
29788
  //#endregion
29307
29789
  //#region packages/core/src/text/bidi/segments.ts
29308
- function on(e, t) {
29309
- return e === !0 ? "rtl" : e === !1 ? "ltr" : an().computeLevels(t, "auto").paragraphLevel === 1 ? "rtl" : "ltr";
29790
+ function Kn(e, t) {
29791
+ return e === !0 ? "rtl" : e === !1 ? "ltr" : Gn().computeLevels(t, "auto").paragraphLevel === 1 ? "rtl" : "ltr";
29310
29792
  }
29311
29793
  //#endregion
29312
- export { J as C, a as D, v as E, t as O, ee as S, _ as T, de as _, rt as a, oe as b, We as c, je as d, Oe as f, we as g, ye as h, Dt as i, Ae as l, Te as m, an as n, Ze as o, be as p, Ot as r, Ue as s, on as t, Me as u, le as v, g as w, Y as x, ae as y };
29794
+ export { I as A, c as B, je as C, Se as D, Ce as E, u as F, t as H, d as I, p as L, P as M, k as N, xe as O, A as P, m as R, Le as S, Te as T, s as V, He as _, pn as a, Be as b, Bt as c, Lt as d, ut as f, nt as g, tt as h, mn as i, L as j, F as k, Vt as l, rt as m, Gn as n, fn as o, ft as p, hn as r, Ht as s, Kn as t, jt as u, We as v, Ie as w, Me as x, Ue as y, l as z };