@silurus/ooxml 0.86.1 → 0.88.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.
Files changed (72) hide show
  1. package/README.md +42 -2
  2. package/dist/assets/render-worker-1uPAxMZr.js +31 -0
  3. package/dist/assets/render-worker-BlvJybji.js +10 -0
  4. package/dist/assets/render-worker-CzmiJfFL.js +11 -0
  5. package/dist/{canvas-viewer-mechanics-DN5SqWGS.js → canvas-viewer-mechanics-DbLz0rYW.js} +75 -66
  6. package/dist/chart-ex.mjs +581 -616
  7. package/dist/cjk-fallback-bLI3z70h.js +46 -0
  8. package/dist/comment-ui-runtime-BsK8pmUT.js +2 -0
  9. package/dist/{comment-ui-runtime-lXwVOgjW.js → comment-ui-runtime-CWGqn5Vr.js} +5 -5
  10. package/dist/{comment-ui-runtime-DEtgcmj7.js → comment-ui-runtime-DcJOYlw-.js} +5 -5
  11. package/dist/{comments-CAn2A_Xh.js → comments-Diid5ujN.js} +1 -1
  12. package/dist/{document-pull-client-uopDjRde.js → document-pull-client-B9PTM-pL.js} +4693 -4621
  13. package/dist/{docx-wPzeF76A.js → docx-BF9WXrYH.js} +503 -388
  14. package/dist/docx.mjs +6 -6
  15. package/dist/docx_parser_bg.wasm +0 -0
  16. package/dist/{dom-interaction-boundary-CswB9Tzi.js → dom-interaction-boundary-Cnm8DSBN.js} +22 -19
  17. package/dist/{hyperlink-BR1NCO7S.js → hyperlink-Cxzhet30.js} +842 -829
  18. package/dist/index.mjs +3 -3
  19. package/dist/{line-distribute-IsUGfHXm.js → line-distribute-D1WNHKz_.js} +2 -2
  20. package/dist/math.mjs +2 -2
  21. package/dist/node.mjs +356 -352
  22. package/dist/plot-area-frame-DLTYKHNP.js +4354 -0
  23. package/dist/{pptx-BxJ_RBSY.js → pptx-DkyYBYoL.js} +444 -435
  24. package/dist/pptx.mjs +7 -7
  25. package/dist/pptx_parser_bg.wasm +0 -0
  26. package/dist/region-map.mjs +5 -5
  27. package/dist/{render-DEiun_AH.js → render-D3iqVKCo.js} +31 -29
  28. package/dist/{render-worker-host-Ba6Fchqr.js → render-worker-host-B5wQfB7U.js} +1 -1
  29. package/dist/{render-worker-host-BEfLZvSL.js → render-worker-host-D4123J27.js} +1 -1
  30. package/dist/{render-worker-host-C3xwtHnv.js → render-worker-host-Di3LxLc0.js} +1 -1
  31. package/dist/renderer-B4GZb5We.js +6492 -0
  32. package/dist/{resource-measurement-CclArDRs.js → resource-measurement-SHQCbkh2.js} +3 -3
  33. package/dist/{session-BuJL_xcp.js → session-BGq81gRQ.js} +98 -98
  34. package/dist/{slide-pull-client-Ck8wfRT_.js → slide-pull-client-DiPnm240.js} +767 -738
  35. package/dist/{three-d-YYghQndN.js → three-d-DJBl8g8M.js} +251 -435
  36. package/dist/three-d.mjs +998 -906
  37. package/dist/tiff.mjs +2 -2
  38. package/dist/types/chart-ex.d.ts +142 -4
  39. package/dist/types/docx.d.ts +155 -13
  40. package/dist/types/index.d.ts +131 -19
  41. package/dist/types/math.d.ts +1 -1
  42. package/dist/types/node.d.ts +120 -8
  43. package/dist/types/pptx.d.ts +123 -13
  44. package/dist/types/region-map.d.ts +142 -4
  45. package/dist/types/three-d.d.ts +142 -4
  46. package/dist/types/tiff.d.ts +1 -1
  47. package/dist/types/xlsx.d.ts +155 -13
  48. package/dist/{worksheet-pull-client-CAvuf22q.js → worksheet-pull-client-BM8ywvbu.js} +51 -51
  49. package/dist/{xlsx-Bblm5r1h.js → xlsx-C9NVjgaV.js} +1592 -1564
  50. package/dist/xlsx.mjs +6 -6
  51. package/dist/xlsx_parser_bg.wasm +0 -0
  52. package/package.json +1 -1
  53. package/dist/assets/render-worker-D21h5TGR.js +0 -10
  54. package/dist/assets/render-worker-Dsfekaht.js +0 -11
  55. package/dist/assets/render-worker-DxU7IrKo.js +0 -31
  56. package/dist/comment-ui-runtime-TLHustXJ.js +0 -2
  57. package/dist/plot-area-frame-D5hEOgkJ.js +0 -2903
  58. package/dist/renderer-XFSCOT6m.js +0 -5857
  59. /package/dist/{bounded-raw-part-cache-BfbSxRIL.js → bounded-raw-part-cache-Cg1BsSZQ.js} +0 -0
  60. /package/dist/{comment-occurrence-CqejEuts.js → comment-occurrence-C8Y2uoVr.js} +0 -0
  61. /package/dist/{delimited-text-worker-host-DcHj_JZt.js → delimited-text-worker-host-BVY-Ecni.js} +0 -0
  62. /package/dist/{highlight-rect-FuUSmL3a.js → highlight-rect-C5hkRqUr.js} +0 -0
  63. /package/dist/{line-metrics-CBbw80Ko.js → line-metrics-B60C86uh.js} +0 -0
  64. /package/dist/{mathjax-DS69BmJd.js → mathjax-DoyWZbSp.js} +0 -0
  65. /package/dist/{pixel-budget-Dgjw269h.js → pixel-budget-9P63Bsk5.js} +0 -0
  66. /package/dist/{read-only-comment-decoration-BTnWEeo5.js → read-only-comment-decoration-Dz7eTQ4d.js} +0 -0
  67. /package/dist/{read-only-comment-margin-plStyGfE.js → read-only-comment-margin-DkgzASAl.js} +0 -0
  68. /package/dist/{renderer-module-contract-Cu-GKuPd.js → renderer-module-contract-D91rkYHH.js} +0 -0
  69. /package/dist/{source-key-Ktb1GRE5.js → source-key-DIJG8BA0.js} +0 -0
  70. /package/dist/{transfer-mIj7E7NB.js → transfer-p6iCC2R7.js} +0 -0
  71. /package/dist/{units-EJdC96r6.js → units-BzZ0gAxs.js} +0 -0
  72. /package/dist/{visible-index-DPoQYSDt.js → visible-index-BgiHEc1z.js} +0 -0
@@ -1,2903 +0,0 @@
1
- import { i as e, r as t } from "./pixel-budget-Dgjw269h.js";
2
- import { a as n, n as r, r as i, t as a } from "./units-EJdC96r6.js";
3
- //#region packages/core/src/canvas/aux-canvas.ts
4
- function o(e, t) {
5
- return [Math.max(1, Math.ceil(e)), Math.max(1, Math.ceil(t))];
6
- }
7
- function s(e, t) {
8
- let [n, r] = o(e, t);
9
- if (typeof OffscreenCanvas < "u") return new OffscreenCanvas(n, r);
10
- if (typeof document < "u") {
11
- let e = document.createElement("canvas");
12
- return e.width = n, e.height = r, e;
13
- }
14
- return null;
15
- }
16
- function c(e, t, n) {
17
- let [r, i] = o(t, n);
18
- if (typeof OffscreenCanvas < "u") try {
19
- return new OffscreenCanvas(r, i);
20
- } catch {}
21
- if (typeof document < "u") try {
22
- let e = document.createElement("canvas");
23
- return e.width = r, e.height = i, e;
24
- } catch {}
25
- try {
26
- let t = e.canvas?.constructor;
27
- return typeof t == "function" ? new t(r, i) : null;
28
- } catch {
29
- return null;
30
- }
31
- }
32
- //#endregion
33
- //#region packages/core/src/image/dib.ts
34
- var l = t, u = e;
35
- function d(e, t, n, r, i) {
36
- if (n < 40 || t + 40 > e.byteLength) return null;
37
- let a = e.getUint32(t, !0);
38
- if (a < 40) return null;
39
- let o = e.getInt32(t + 4, !0), s = e.getInt32(t + 8, !0), c = e.getUint16(t + 14, !0);
40
- if (e.getUint32(t + 16, !0) !== 0) return null;
41
- let d = s < 0, f = Math.abs(o), p = Math.abs(s);
42
- if (f <= 0 || p <= 0 || f > l || p > l || f * p > u) return null;
43
- let m = new Uint8ClampedArray(f * p * 4), h = f * c + 31 >> 5 << 2 >>> 0;
44
- if (r + h * p > r + i + h && r + h * p > e.byteLength) return null;
45
- let g = null;
46
- if (c <= 8) {
47
- let n = e.getUint32(t + 32, !0);
48
- n === 0 && (n = 1 << c);
49
- let r = t + a;
50
- g = [];
51
- for (let t = 0; t < n; t++) {
52
- let n = r + t * 4;
53
- if (n + 4 > e.byteLength) break;
54
- let i = e.getUint8(n), a = e.getUint8(n + 1), o = e.getUint8(n + 2);
55
- g.push(o << 16 | a << 8 | i);
56
- }
57
- }
58
- let _ = (e, t, n, r, i, a) => {
59
- let o = (e * f + t) * 4;
60
- m[o] = n, m[o + 1] = r, m[o + 2] = i, m[o + 3] = a;
61
- }, v = !1;
62
- for (let t = 0; t < p; t++) {
63
- let n = d ? t : p - 1 - t, i = t, a = r + n * h;
64
- if (a + h > e.byteLength) break;
65
- if (c === 32) for (let t = 0; t < f; t++) {
66
- let n = a + t * 4, r = e.getUint8(n), o = e.getUint8(n + 1), s = e.getUint8(n + 2), c = e.getUint8(n + 3);
67
- c !== 0 && (v = !0), _(i, t, s, o, r, c);
68
- }
69
- else if (c === 24) {
70
- for (let t = 0; t < f; t++) {
71
- let n = a + t * 3;
72
- _(i, t, e.getUint8(n + 2), e.getUint8(n + 1), e.getUint8(n), 255);
73
- }
74
- v = !0;
75
- } else if (c === 8 && g) {
76
- for (let t = 0; t < f; t++) {
77
- let n = e.getUint8(a + t), r = g[n] ?? 0;
78
- _(i, t, r >> 16 & 255, r >> 8 & 255, r & 255, 255);
79
- }
80
- v = !0;
81
- } else if (c === 4 && g) {
82
- for (let t = 0; t < f; t++) {
83
- let n = e.getUint8(a + (t >> 1)), r = t & 1 ? n & 15 : n >> 4 & 15, o = g[r] ?? 0;
84
- _(i, t, o >> 16 & 255, o >> 8 & 255, o & 255, 255);
85
- }
86
- v = !0;
87
- } else if (c === 1 && g) {
88
- for (let t = 0; t < f; t++) {
89
- let n = e.getUint8(a + (t >> 3)) >> 7 - (t & 7) & 1, r = g[n] ?? 0;
90
- _(i, t, r >> 16 & 255, r >> 8 & 255, r & 255, 255);
91
- }
92
- v = !0;
93
- } else return null;
94
- }
95
- if (c === 32 && !v) for (let e = 3; e < m.length; e += 4) m[e] = 255;
96
- return {
97
- width: f,
98
- height: p,
99
- data: m
100
- };
101
- }
102
- function f(e, t, n) {
103
- if (n < 40 || t + 40 > e.byteLength) return null;
104
- let r = e.getUint32(t, !0);
105
- if (r < 40) return null;
106
- let i = e.getUint16(t + 14, !0), a = 0;
107
- if (i <= 8) {
108
- let n = e.getUint32(t + 32, !0);
109
- n === 0 && (n = 1 << i), a = n;
110
- } else a = e.getUint32(t + 32, !0);
111
- let o = r + a * 4, s = t + o, c = n - o;
112
- return c <= 0 ? null : d(e, t, o, s, c);
113
- }
114
- function p(e, t, n, r, i, a) {
115
- try {
116
- let o = s(t.width, t.height);
117
- if (!o) return !1;
118
- let c = o.getContext("2d");
119
- if (!c) return !1;
120
- let l = c.createImageData(t.width, t.height);
121
- l.data.set(t.data), c.putImageData(l, 0, 0);
122
- let u = Math.min(n, i), d = Math.min(r, a), f = Math.abs(i - n), p = Math.abs(a - r);
123
- return e.drawImage(o, u, d, f, p), !0;
124
- } catch {
125
- return !1;
126
- }
127
- }
128
- //#endregion
129
- //#region packages/core/src/image/wmf.ts
130
- var m = {
131
- EOF: 0,
132
- SETBKMODE: 258,
133
- SETTEXTALIGN: 302,
134
- SETTEXTCOLOR: 521,
135
- SETPOLYFILLMODE: 262,
136
- SETWINDOWORG: 523,
137
- SETWINDOWEXT: 524,
138
- SELECTOBJECT: 301,
139
- DELETEOBJECT: 496,
140
- TEXTOUT: 1313,
141
- POLYGON: 804,
142
- POLYLINE: 805,
143
- POLYPOLYGON: 1336,
144
- RECTANGLE: 1051,
145
- CREATEPENINDIRECT: 762,
146
- CREATEFONTINDIRECT: 763,
147
- CREATEBRUSHINDIRECT: 764,
148
- DIBBITBLT: 2368,
149
- DIBSTRETCHBLT: 2881,
150
- STRETCHDIBITS: 3907
151
- }, h = 2596720087, g = 22, _ = 18, v = 1179469088;
152
- function y(e, t) {
153
- if (e.length < t + _) return !1;
154
- let n = e[t] | e[t + 1] << 8, r = e[t + 2] | e[t + 3] << 8;
155
- return (n === 1 || n === 2) && r === 9;
156
- }
157
- function b(e) {
158
- return e.length < 4 ? !1 : (e[0] | e[1] << 8 | e[2] << 16 | e[3] << 24) >>> 0 === h ? !0 : y(e, 0);
159
- }
160
- function x(e) {
161
- if (e.length < 44) return !1;
162
- let t = new DataView(e.buffer, e.byteOffset, e.byteLength);
163
- return t.getUint32(0, !0) === 1 && t.getUint32(40, !0) === v;
164
- }
165
- function S(e) {
166
- return e === "image/wmf" || e === "image/emf";
167
- }
168
- function C(e) {
169
- let t = e & 255, n = e >>> 8 & 255, r = e >>> 16 & 255, i = (e) => e.toString(16).padStart(2, "0");
170
- return `#${i(t)}${i(n)}${i(r)}`;
171
- }
172
- function w(e, t) {
173
- for (let n = 0; n < e.length; n++) if (e[n] == null) {
174
- e[n] = t;
175
- return;
176
- }
177
- e.push(t);
178
- }
179
- var ee = class {
180
- p = 0;
181
- constructor(e, t, n) {
182
- this.b = e, this.end = n, this.p = t;
183
- }
184
- get remaining() {
185
- return this.end - this.p;
186
- }
187
- i16() {
188
- let e = this.u16();
189
- return e >= 32768 ? e - 65536 : e;
190
- }
191
- u16() {
192
- let e = this.b[this.p] | this.b[this.p + 1] << 8;
193
- return this.p += 2, e;
194
- }
195
- u8() {
196
- return this.b[this.p++];
197
- }
198
- u32() {
199
- let e = (this.b[this.p] | this.b[this.p + 1] << 8 | this.b[this.p + 2] << 16 | this.b[this.p + 3] << 24) >>> 0;
200
- return this.p += 4, e;
201
- }
202
- bytes(e) {
203
- let t = Math.min(this.p + Math.max(0, e), this.end), n = this.b.subarray(this.p, t);
204
- return this.p = t, n;
205
- }
206
- skip(e) {
207
- this.p = Math.min(this.p + Math.max(0, e), this.end);
208
- }
209
- };
210
- function T(e, t) {
211
- return (t - e.orgX) * (e.W / e.extX);
212
- }
213
- function E(e, t) {
214
- return (t - e.orgY) * (e.H / e.extY);
215
- }
216
- function te(e, t) {
217
- let n = t * Math.abs(e.W / e.extX);
218
- return n >= 1 ? n : 1;
219
- }
220
- var D = .001;
221
- function O(e, t, n) {
222
- return Math.abs(e - t) <= D || Math.abs(e - n) <= D;
223
- }
224
- function ne(e, t, n) {
225
- let r = [], i = n ? t.length : t.length - 1;
226
- for (let n = 0; n < i; n++) {
227
- let i = t[n], a = t[(n + 1) % t.length], o = Math.abs(i[0] - a[0]) <= D && O(i[0], 0, e.W) && O(a[0], 0, e.W), s = Math.abs(i[1] - a[1]) <= D && O(i[1], 0, e.H) && O(a[1], 0, e.H);
228
- o || s || r.push([i, a]);
229
- }
230
- return r;
231
- }
232
- function re(e, t, n) {
233
- if (!e.curPen || e.curPen.stroke == null || t.length < 2) return;
234
- let { ctx: r } = e;
235
- if (r.strokeStyle = e.curPen.stroke, r.lineWidth = te(e, e.curPen.width), !e.suppressBoundaryFrame) {
236
- r.beginPath(), r.moveTo(t[0][0], t[0][1]);
237
- for (let e = 1; e < t.length; e++) r.lineTo(t[e][0], t[e][1]);
238
- n && r.closePath(), r.stroke(), e.drew = !0;
239
- return;
240
- }
241
- let i = ne(e, t, n);
242
- if (i.length === 0) return;
243
- r.beginPath();
244
- let a = null;
245
- for (let [e, t] of i) (!a || a[0] !== e[0] || a[1] !== e[1]) && r.moveTo(e[0], e[1]), r.lineTo(t[0], t[1]), a = t;
246
- r.stroke(), e.drew = !0;
247
- }
248
- function ie(e, t, n) {
249
- let r = [];
250
- for (let i = 0; i < n && !(t.remaining < 4); i++) {
251
- let n = t.i16(), i = t.i16();
252
- r.push([T(e, n), E(e, i)]);
253
- }
254
- return r;
255
- }
256
- function ae(e, t) {
257
- t.length < 2 || !e.curPen || e.curPen.stroke == null || re(e, t, !1);
258
- }
259
- function oe(e, t) {
260
- if (t.length < 2) return;
261
- let { ctx: n } = e;
262
- if (e.curBrush && e.curBrush.fill != null) {
263
- n.beginPath(), n.moveTo(t[0][0], t[0][1]);
264
- for (let e = 1; e < t.length; e++) n.lineTo(t[e][0], t[e][1]);
265
- n.closePath(), n.fillStyle = e.curBrush.fill, n.fill(e.fillRule), e.drew = !0;
266
- }
267
- re(e, t, !0);
268
- }
269
- function se(e, t) {
270
- let n = t.u16();
271
- if (n <= 0 || n > 65536) return;
272
- let r = [];
273
- for (let e = 0; e < n; e++) {
274
- if (t.remaining < 2) return;
275
- r.push(t.u16());
276
- }
277
- let { ctx: i } = e;
278
- i.beginPath();
279
- let a = !1;
280
- for (let n of r) {
281
- if (n < 2) {
282
- for (let e = 0; e < n && t.remaining >= 4; e++) t.i16(), t.i16();
283
- continue;
284
- }
285
- let r = ie(e, t, n);
286
- if (!(r.length < 2)) {
287
- i.moveTo(r[0][0], r[0][1]);
288
- for (let e = 1; e < r.length; e++) i.lineTo(r[e][0], r[e][1]);
289
- i.closePath(), a = !0;
290
- }
291
- }
292
- a && (e.curBrush && e.curBrush.fill != null && (i.fillStyle = e.curBrush.fill, i.fill(e.fillRule), e.drew = !0), e.curPen && e.curPen.stroke != null && (i.strokeStyle = e.curPen.stroke, i.lineWidth = te(e, e.curPen.width), i.stroke(), e.drew = !0));
293
- }
294
- function ce(e) {
295
- let t = e.u16(), n = e.i16();
296
- e.i16();
297
- let r = e.u32();
298
- return {
299
- kind: "pen",
300
- stroke: (t & 255) == 5 ? null : C(r),
301
- width: Math.abs(n)
302
- };
303
- }
304
- function le(e) {
305
- let t = e.u16(), n = e.u32();
306
- return e.u16(), {
307
- kind: "brush",
308
- fill: t === 1 ? null : C(n)
309
- };
310
- }
311
- function ue(e) {
312
- let t = e.indexOf(0), n = t >= 0 ? e.subarray(0, t) : e;
313
- if (n.length === 0) return "";
314
- try {
315
- return new TextDecoder("shift_jis").decode(n);
316
- } catch {
317
- return String.fromCharCode(...n);
318
- }
319
- }
320
- function de(e) {
321
- let t = Math.abs(e.i16());
322
- e.i16(), e.i16(), e.i16();
323
- let n = e.i16(), r = e.u8() !== 0;
324
- return e.u8(), e.u8(), e.u8(), e.u8(), e.u8(), e.u8(), e.u8(), {
325
- kind: "font",
326
- height: t,
327
- weight: n,
328
- italic: r,
329
- face: ue(e.bytes(Math.min(32, e.remaining)))
330
- };
331
- }
332
- function fe(e, t, n, r) {
333
- if (t.length === 0) return;
334
- let i = e.curFont, a = i?.height || 12, o = Math.abs(E(e, e.orgY + a) - E(e, e.orgY));
335
- if (!Number.isFinite(o) || o < 1) return;
336
- let { ctx: s } = e;
337
- try {
338
- s.fillStyle = e.textColor;
339
- let a = i && i.weight >= 700 ? "bold " : "";
340
- s.font = `${i?.italic ? "italic " : ""}${a}${o}px ${i?.face || "sans-serif"}`;
341
- let c = e.textAlign & 6;
342
- s.textAlign = c === 2 ? "right" : c === 6 ? "center" : "left", s.textBaseline = (e.textAlign & 24) == 24 ? "alphabetic" : "top", s.fillText(t, T(e, n), E(e, r)), e.drew = !0;
343
- } catch {}
344
- }
345
- function pe(e, t, n, r, i = !1) {
346
- if (!b(e)) return !1;
347
- let a = 0;
348
- (e.length >= 4 ? (e[0] | e[1] << 8 | e[2] << 16 | e[3] << 24) >>> 0 : 0) === h && (a = g);
349
- let o = a + _;
350
- if (o > e.length) return !1;
351
- let s = {
352
- ctx: t,
353
- W: n,
354
- H: r,
355
- orgX: 0,
356
- orgY: 0,
357
- extX: n || 1,
358
- extY: r || 1,
359
- haveExt: !1,
360
- objects: [],
361
- curPen: null,
362
- curBrush: null,
363
- curFont: null,
364
- textColor: "#000000",
365
- textAlign: 0,
366
- fillRule: "nonzero",
367
- drew: !1,
368
- suppressBoundaryFrame: i
369
- }, c = new DataView(e.buffer, e.byteOffset, e.byteLength);
370
- for (; o + 6 <= e.length;) {
371
- let t = c.getUint32(o, !0), n = c.getUint16(o + 4, !0);
372
- if (t < 3) break;
373
- let r = t * 2, i = o + r;
374
- if (i > e.length || n === m.EOF) break;
375
- let a = o + 6, l = new ee(e, a, i);
376
- switch (n) {
377
- case m.SETWINDOWORG:
378
- s.orgY = l.i16(), s.orgX = l.i16();
379
- break;
380
- case m.SETWINDOWEXT: {
381
- let e = l.i16(), t = l.i16();
382
- s.extY = e || 1, s.extX = t || 1, s.haveExt = !0;
383
- break;
384
- }
385
- case m.SETPOLYFILLMODE:
386
- s.fillRule = l.u16() === 1 ? "evenodd" : "nonzero";
387
- break;
388
- case m.SETTEXTCOLOR:
389
- s.textColor = C(l.u32());
390
- break;
391
- case m.SETTEXTALIGN:
392
- s.textAlign = l.u16();
393
- break;
394
- case m.CREATEPENINDIRECT:
395
- w(s.objects, ce(l));
396
- break;
397
- case m.CREATEBRUSHINDIRECT:
398
- w(s.objects, le(l));
399
- break;
400
- case m.CREATEFONTINDIRECT:
401
- w(s.objects, de(l));
402
- break;
403
- case m.SELECTOBJECT: {
404
- let e = l.u16(), t = s.objects[e];
405
- t?.kind === "pen" ? s.curPen = t : t?.kind === "brush" ? s.curBrush = t : t?.kind === "font" && (s.curFont = t);
406
- break;
407
- }
408
- case m.DELETEOBJECT: {
409
- let e = l.u16(), t = s.objects[e];
410
- t && (t === s.curPen && (s.curPen = null), t === s.curBrush && (s.curBrush = null), t === s.curFont && (s.curFont = null), s.objects[e] = null);
411
- break;
412
- }
413
- case m.POLYLINE:
414
- ae(s, ie(s, l, l.i16()));
415
- break;
416
- case m.POLYGON:
417
- oe(s, ie(s, l, l.i16()));
418
- break;
419
- case m.POLYPOLYGON:
420
- se(s, l);
421
- break;
422
- case m.RECTANGLE: {
423
- let e = l.i16(), t = l.i16(), n = l.i16(), r = l.i16();
424
- oe(s, [
425
- [T(s, r), E(s, n)],
426
- [T(s, t), E(s, n)],
427
- [T(s, t), E(s, e)],
428
- [T(s, r), E(s, e)]
429
- ]);
430
- break;
431
- }
432
- case m.TEXTOUT: {
433
- let e = l.u16(), t = ue(l.bytes(e));
434
- e % 2 != 0 && l.skip(1);
435
- let n = l.i16();
436
- fe(s, t, l.i16(), n);
437
- break;
438
- }
439
- case m.STRETCHDIBITS: {
440
- l.u32(), l.i16(), l.i16(), l.i16(), l.i16(), l.u16();
441
- let e = l.i16(), t = l.i16(), n = l.i16(), r = l.i16(), o = a + 22, u = f(c, o, i - o);
442
- if (u) {
443
- let i = T(s, r), a = E(s, n), o = T(s, r + t), c = E(s, n + e);
444
- p(s.ctx, u, i, a, o, c) && (s.drew = !0);
445
- }
446
- break;
447
- }
448
- case m.DIBSTRETCHBLT:
449
- case m.DIBBITBLT:
450
- case m.SETBKMODE: break;
451
- default: break;
452
- }
453
- o = i;
454
- }
455
- return s.drew;
456
- }
457
- var me = 2e3, he = 2;
458
- function ge(e, t) {
459
- let n = e > 0 ? e : 300, r = t > 0 ? t : 300, i = (e) => Math.max(1, Math.min(me, Math.round(e)));
460
- return {
461
- w: i(n * he),
462
- h: i(r * he)
463
- };
464
- }
465
- async function _e(e, t, n, r = !1) {
466
- if (!b(e) || t <= 0 || n <= 0) return null;
467
- let i = s(t, n);
468
- if (!i) return null;
469
- let a = i.getContext("2d");
470
- return !a || (a.lineJoin = "round", a.lineCap = "round", !pe(e, a, t, n, r)) ? null : createImageBitmap(i);
471
- }
472
- //#endregion
473
- //#region packages/core/src/image/crop.ts
474
- function k(e) {
475
- if (!e) return !0;
476
- if (![
477
- e.l,
478
- e.t,
479
- e.r,
480
- e.b
481
- ].every(Number.isFinite)) return !1;
482
- let t = e.l, n = e.t, r = 1 - e.r, i = 1 - e.b;
483
- return r > t && i > n && Math.min(1, r) > Math.max(0, t) && Math.min(1, i) > Math.max(0, n);
484
- }
485
- function A(e) {
486
- let t = e;
487
- return {
488
- w: t.naturalWidth || (typeof t.width == "number" ? t.width : 0) || 0,
489
- h: t.naturalHeight || (typeof t.height == "number" ? t.height : 0) || 0
490
- };
491
- }
492
- function ve(e, t) {
493
- if (!t || !(t.l || t.t || t.r || t.b) || ![
494
- t.l,
495
- t.t,
496
- t.r,
497
- t.b
498
- ].every(Number.isFinite)) return null;
499
- let { w: n, h: r } = A(e);
500
- if (n <= 0 || r <= 0) return null;
501
- let i = t.l, a = t.t, o = 1 - t.r, s = 1 - t.b, c = o - i, l = s - a;
502
- if (!(c > 0) || !(l > 0)) return {
503
- sx: 0,
504
- sy: 0,
505
- sw: 0,
506
- sh: 0,
507
- dxFraction: 0,
508
- dyFraction: 0,
509
- dwFraction: 0,
510
- dhFraction: 0
511
- };
512
- let u = Math.max(0, i), d = Math.max(0, a), f = Math.min(1, o), p = Math.min(1, s), m = Math.max(0, f - u), h = Math.max(0, p - d);
513
- return {
514
- sx: u * n,
515
- sy: d * r,
516
- sw: m * n,
517
- sh: h * r,
518
- dxFraction: (u - i) / c,
519
- dyFraction: (d - a) / l,
520
- dwFraction: m / c,
521
- dhFraction: h / l
522
- };
523
- }
524
- function j(e, t, n, r, i, a, o) {
525
- let s = ve(t, n);
526
- s ? s.sw > 0 && s.sh > 0 && s.dwFraction > 0 && s.dhFraction > 0 && e.drawImage(t, s.sx, s.sy, s.sw, s.sh, r + s.dxFraction * a, i + s.dyFraction * o, s.dwFraction * a, s.dhFraction * o) : e.drawImage(t, r, i, a, o);
527
- }
528
- function ye(e, t, n) {
529
- if (!Number.isFinite(e) || !Number.isFinite(t) || !(e > 0) || !(t > 0)) return null;
530
- let r = n ? 1 - n.l - n.r : 1, i = n ? 1 - n.t - n.b : 1;
531
- if (!Number.isFinite(r) || !Number.isFinite(i) || !(r > 0) || !(i > 0) || !k(n)) return null;
532
- let a = Math.ceil(e / r), o = Math.ceil(t / i);
533
- return Number.isFinite(a) && Number.isFinite(o) ? {
534
- width: a,
535
- height: o
536
- } : null;
537
- }
538
- function be(e, t, n, r) {
539
- if (!t || !S(e)) return {
540
- widthPt: n,
541
- heightPt: r
542
- };
543
- if (!k(t)) return null;
544
- let i = 1 - t.l - t.r, a = 1 - t.t - t.b;
545
- return {
546
- widthPt: n / i,
547
- heightPt: r / a
548
- };
549
- }
550
- //#endregion
551
- //#region packages/core/src/chart/box-whisker.ts
552
- var xe = .06;
553
- function M(e) {
554
- let t = Math.floor(e.length / 2);
555
- return e.length % 2 == 1 ? e[t] : e[t - 1] / 2 + e[t] / 2;
556
- }
557
- function Se(e) {
558
- let t = 0;
559
- for (let n of e) t = Math.max(t, Math.abs(n));
560
- if (t === 0) return 0;
561
- let n = 0;
562
- for (let r of e) n += r / t;
563
- return n / e.length * t;
564
- }
565
- function Ce(e, t, n) {
566
- if (!Number.isFinite(t)) return n < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;
567
- let r = e + n * t;
568
- return Number.isFinite(r) ? r : n < 0 ? -Number.MAX_VALUE : Number.MAX_VALUE;
569
- }
570
- function we(e, t) {
571
- let n = e.filter((e) => typeof e == "number" && Number.isFinite(e)).sort((e, t) => e - t);
572
- if (n.length === 0) return null;
573
- let r = Math.floor(n.length / 2), i = M(n), a = t === "inclusive" && n.length % 2 == 1, o = n.slice(0, r + +!!a), s = n.slice(r + +(n.length % 2 == 1 && !a)), c = M(o.length > 0 ? o : n), l = M(s.length > 0 ? s : n), u = (l - c) * 1.5, d = Ce(c, u, -1), f = Ce(l, u, 1), p = [], m = [];
574
- for (let e of n) e < d || e > f ? m.push(e) : p.push(e);
575
- return {
576
- q1: c,
577
- median: i,
578
- q3: l,
579
- lowerFence: d,
580
- upperFence: f,
581
- whiskerLo: p[0] ?? n[0],
582
- whiskerHi: p[p.length - 1] ?? n[n.length - 1],
583
- mean: Se(n),
584
- outliers: m,
585
- inner: p
586
- };
587
- }
588
- function Te(e, t) {
589
- let n = 0;
590
- for (let r of e) for (let e of r) if (n += e.length, !Number.isSafeInteger(n) || n > t) return t + 1;
591
- return n;
592
- }
593
- function Ee(e, t, n, r, i, a, o) {
594
- if (!Number.isFinite(e) || !Number.isFinite(t) || t <= 0 || !Number.isInteger(n) || n <= 0 || !Number.isInteger(r) || r <= 0 || !Number.isInteger(i) || i < 0 || i >= n || !Number.isInteger(a) || a < 0 || a >= r || !Number.isFinite(o) || o < 0) return null;
595
- let s = t / n, c = s / (r + o / 100), l = c * r, u = c * xe, d = c - u, f = e + s * (i + .5) - l / 2 + a * c + u / 2;
596
- return {
597
- boxX: f,
598
- boxWidth: d,
599
- centerX: f + d / 2
600
- };
601
- }
602
- //#endregion
603
- //#region packages/core/src/chart/category-spacing.ts
604
- function De(e, t) {
605
- return t == null || !Number.isFinite(t) ? e : e * Math.max(0, Math.min(1e3, t)) / 100;
606
- }
607
- function Oe(e, t, n, r = !1) {
608
- let i = Math.max(0, t - 1), a = Number.isFinite(e) ? Math.max(0, Math.min(i, e)) : 0, o = n ? (a + .5) / Math.max(1, t) : t === 1 ? .5 : a / i;
609
- return r ? 1 - o : o;
610
- }
611
- function ke(e, t) {
612
- if (e <= 0) return [];
613
- let n = [], r = t ? e : e - 1;
614
- for (let i = 0; i <= r; i++) n.push(t ? i / e : e === 1 ? .5 : i / (e - 1));
615
- return n;
616
- }
617
- function Ae(e, t) {
618
- return e <= 0 ? [] : t ? Array.from({ length: e }, (t, n) => (n + .5) / e) : e <= 1 ? [] : Array.from({ length: e - 1 }, (t, n) => (n + .5) / (e - 1));
619
- }
620
- function je(e, t, n, r, i) {
621
- if (i == null) return {
622
- fraction: Oe(e, t, n, r),
623
- textAlign: "center"
624
- };
625
- let a = Math.max(0, t - 1), o = Number.isFinite(e) ? Math.max(0, Math.min(a, e)) : 0, s, c;
626
- if (t <= 1 ? (s = 0, c = 1) : n ? (s = o / t, c = (o + 1) / t) : (s = o === 0 ? 0 : (o - .5) / a, c = o === a ? 1 : (o + .5) / a), r) {
627
- let e = 1 - c;
628
- c = 1 - s, s = e;
629
- }
630
- return i === "l" ? {
631
- fraction: s,
632
- textAlign: "left"
633
- } : i === "r" ? {
634
- fraction: c,
635
- textAlign: "right"
636
- } : {
637
- fraction: (s + c) / 2,
638
- textAlign: "center"
639
- };
640
- }
641
- function Me(e, t) {
642
- return e != null && Number.isFinite(e) ? Math.max(0, Math.min(500, e)) : t === "legacy" ? 150 : 33;
643
- }
644
- //#endregion
645
- //#region packages/core/src/chart/layout.ts
646
- function Ne(e, t, n) {
647
- let r = Math.max(1, t), i = [], a = [], o = 0;
648
- for (let t = 0; t < e.length; t++) {
649
- let s = Math.min(r, Math.max(0, e[t])), c = a.length === 0 ? s : o + n + s;
650
- a.length > 0 && c > r ? (i.push(a), a = [t], o = s) : (a.push(t), o = c);
651
- }
652
- return a.length > 0 && i.push(a), i;
653
- }
654
- var Pe = 14;
655
- function N(e, t) {
656
- return typeof e == "number" && Number.isFinite(e) && e >= 100 && e <= 4e5 ? e / 100 * t : null;
657
- }
658
- function Fe(e, t, n) {
659
- return N(e.titleFontSizeHpt, n) ?? Pe * n;
660
- }
661
- var Ie = .62;
662
- function Le(e, t, n, r, i) {
663
- if (!e.title && !e.titlePresent) return {
664
- fontPx: 0,
665
- topPad: 0,
666
- bottomPad: 0,
667
- bandH: 0
668
- };
669
- let a = Fe(e, t, n), o = a + t * r + t * i, s = Math.min(Math.max(0, o - a), a * Ie);
670
- return {
671
- fontPx: a,
672
- topPad: s,
673
- bottomPad: o - a - s,
674
- bandH: o
675
- };
676
- }
677
- function Re(e, t, n, r, i) {
678
- if (!e.showLegend) return null;
679
- let a = e.legendPos ?? "r", o = a === "l" ? "l" : a === "t" ? "t" : a === "b" ? "b" : "r";
680
- if (o === "r" || o === "l") {
681
- if (i) {
682
- let e = Math.min(80, t * .3), n = t * .3, r = Math.max(0, ...i.itemWidths) + i.horizontalPadding;
683
- return {
684
- side: o,
685
- reserveW: Math.min(n, Math.max(e, r)),
686
- reserveH: 0
687
- };
688
- }
689
- return {
690
- side: o,
691
- reserveW: Math.max(80, t * r),
692
- reserveH: 0
693
- };
694
- }
695
- if (i) {
696
- let e = Math.max(1, t - i.horizontalPadding), r = Ne(i.itemWidths, e, i.itemGap).length * i.rowHeight + i.verticalPadding;
697
- return {
698
- side: o,
699
- reserveW: 0,
700
- reserveH: Math.min(n * .3, r)
701
- };
702
- }
703
- return {
704
- side: o,
705
- reserveW: 0,
706
- reserveH: Math.max(18, n * .08)
707
- };
708
- }
709
- function ze(e, t = !1) {
710
- return t ? {
711
- legRightW: 0,
712
- legLeftW: 0,
713
- legTopH: 0,
714
- legBottomH: 0
715
- } : {
716
- legRightW: e?.side === "r" ? e.reserveW : 0,
717
- legLeftW: e?.side === "l" ? e.reserveW : 0,
718
- legTopH: e?.side === "t" ? e.reserveH : 0,
719
- legBottomH: e?.side === "b" ? e.reserveH : 0
720
- };
721
- }
722
- function Be(e, t) {
723
- return N(e, t) ?? 10 * t;
724
- }
725
- function Ve(e, t) {
726
- return Math.max(0, e != null && Number.isFinite(e) ? e : 0) / i * t;
727
- }
728
- function He(e, t, n) {
729
- let r = 0, i = !1;
730
- if (n != null) switch (i = !0, n) {
731
- case "horz": break;
732
- case "vert270":
733
- r -= 90;
734
- break;
735
- case "vert":
736
- case "wordArtVert":
737
- case "eaVert":
738
- case "mongolianVert":
739
- case "wordArtVertRtl":
740
- r += 90;
741
- break;
742
- }
743
- return t != null && Number.isFinite(t) && (r += t / 6e4, i = !0), i ? r * Math.PI / 180 : e === "left" || e === "right" ? -Math.PI / 2 : 0;
744
- }
745
- function Ue(e) {
746
- return Math.max(8, e * .02);
747
- }
748
- function We(e, t, n, r) {
749
- let i = Be(e.catAxisTitleFontSizeHpt, r), a = Be(e.valAxisTitleFontSizeHpt, r), o = Ve(e.catAxisTitleTextVerticalInsetEmu, r), s = Ve(e.valAxisTitleTextVerticalInsetEmu, r);
750
- return {
751
- catFontPx: i,
752
- valFontPx: a,
753
- catBandH: e.catAxisTitle ? i + o + Ue(n) + 4 : 0,
754
- valBandW: e.valAxisTitle ? a + s + Ue(t) + 4 : 0
755
- };
756
- }
757
- var Ge = 2.25, Ke = 2.75;
758
- function qe(e, t, n) {
759
- if (!e.title && !e.titlePresent) return {
760
- fontPx: 0,
761
- topPad: 0,
762
- bottomPad: 0,
763
- bandH: 0
764
- };
765
- let r = Fe(e, t, n), i = r * Ge, a = Math.min(Math.max(0, i - r), r * Ie);
766
- return {
767
- fontPx: r,
768
- topPad: a,
769
- bottomPad: i - r - a,
770
- bandH: i
771
- };
772
- }
773
- function Je(e, t) {
774
- let n = Ye(e), r = De(n, t);
775
- return e * Ke + r - n;
776
- }
777
- function Ye(e) {
778
- return 5 / 6 * e;
779
- }
780
- function Xe(e) {
781
- return e;
782
- }
783
- var Ze = 1.5;
784
- function Qe(e) {
785
- let t = e.outerTextMarginPx ?? 0;
786
- return {
787
- t: e.valAxisHidden ? 0 : e.valLabelFontPx / 2 + t,
788
- r: (e.secondaryBandW ?? 0) > 0 ? (e.secondaryBandW ?? 0) + t : 0,
789
- b: e.catAxisHidden ? 0 : e.catLabelFontPx + (e.catLabelGapPx ?? Ye(e.catLabelFontPx)) + e.catTitleBandH + t,
790
- l: e.valAxisHidden ? 0 : e.valLabelWidth + (e.valLabelGapPx ?? Xe(e.valLabelFontPx)) + e.valTitleBandW + t
791
- };
792
- }
793
- function $e(e, t, n) {
794
- let r = e.xMode || "factor", i = e.yMode || "factor", a = e.wMode || "factor", o = e.hMode || "factor", s = r === "edge" ? t.x + e.x * t.w : n.x + e.x * t.w, c = i === "edge" ? t.y + e.y * t.h : n.y + e.y * t.h, l = e.w == null ? n.w : a === "edge" ? t.x + e.w * t.w - s : e.w * t.w, u = e.h == null ? n.h : o === "edge" ? t.y + e.h * t.h - c : e.h * t.h;
795
- return ![
796
- s,
797
- c,
798
- l,
799
- u
800
- ].every(Number.isFinite) || l <= 0 || u <= 0 ? null : {
801
- x: s,
802
- y: c,
803
- w: l,
804
- h: u
805
- };
806
- }
807
- function et(e, t, n, r, i, a, o) {
808
- let s = o.titleBand ?? Le(e, i, a, o.titleTopPadFrac ?? 0, o.titleBottomPadFrac ?? 0), c = o.legendReserve === void 0 ? Re(e, r, i, o.legendSideReserveFrac) : o.legendReserve, l = ze(c, e.legendOverlay === !0), u = We(e, r, i, a), d, f, p, m;
809
- if (o.radialGapFrac != null) {
810
- let e = i * o.radialGapFrac;
811
- p = r - l.legRightW - l.legLeftW, m = i - s.bandH - l.legTopH - l.legBottomH - e, d = t + l.legLeftW, f = n + s.bandH + l.legTopH + e;
812
- } else {
813
- let e = o.pad;
814
- if (!e) throw Error("computeChartFrame: cartesian frame requires params.pad");
815
- d = t + e.l, f = n + e.t, p = r - e.l - e.r, m = i - e.t - e.b;
816
- }
817
- let h = !1, g = o.honorPlotAreaManualLayout ? e.plotAreaManualLayout : null;
818
- if (g) {
819
- let e = g.layoutTarget === "inner" ? {
820
- t: 0,
821
- r: 0,
822
- b: 0,
823
- l: 0
824
- } : o.manualOuterInsets ?? {
825
- t: 0,
826
- r: 0,
827
- b: 0,
828
- l: 0
829
- }, a = g.layoutTarget === "inner" ? {
830
- x: d,
831
- y: f,
832
- w: p,
833
- h: m
834
- } : {
835
- x: d - e.l,
836
- y: f - e.t,
837
- w: p + e.l + e.r,
838
- h: m + e.t + e.b
839
- }, s = $e(g, {
840
- x: t,
841
- y: n,
842
- w: r,
843
- h: i
844
- }, a);
845
- s && s.w > e.l + e.r && s.h > e.t + e.b && (d = s.x + e.l, f = s.y + e.t, p = s.w - e.l - e.r, m = s.h - e.t - e.b, h = !0);
846
- }
847
- return {
848
- title: s,
849
- legend: c,
850
- legendBands: l,
851
- axisTitles: u,
852
- plotRect: {
853
- px0: d,
854
- py0: f,
855
- pw: p,
856
- ph: m
857
- },
858
- plotAreaManualLayoutApplied: h,
859
- center: {
860
- cx: d + p / 2,
861
- cy: f + m / 2
862
- }
863
- };
864
- }
865
- //#endregion
866
- //#region packages/core/src/chart/data-label-layout.ts
867
- var tt = (e) => [
868
- e.x,
869
- e.y,
870
- e.w,
871
- e.h
872
- ].every(Number.isFinite) && e.w > 0 && e.h > 0;
873
- function nt(e, t) {
874
- let n = Math.max(e.x, t.x), r = Math.max(e.y, t.y), i = Math.min(e.x + e.w, t.x + t.w), a = Math.min(e.y + e.h, t.y + t.h);
875
- return i > n && a > r ? {
876
- x: n,
877
- y: r,
878
- w: i - n,
879
- h: a - r
880
- } : null;
881
- }
882
- function rt(e, t, n) {
883
- return Math.min(Math.max(e, t), n);
884
- }
885
- function it(e, t, n, r, i, a = t) {
886
- if (!tt(t) || !tt(a) || !Number.isFinite(r) || r <= 0 || ![n.w, n.h].every(Number.isFinite) || n.w < 0 || n.h <= 0) return null;
887
- let o = r * .5, s = t, c, l, u = !1, d = "center", f = "middle";
888
- if (e.kind === "point") {
889
- if (![
890
- e.x,
891
- e.y,
892
- e.markerGap ?? 0
893
- ].every(Number.isFinite)) return null;
894
- let t = o + Math.max(0, e.markerGap ?? 0);
895
- switch (c = e.x, l = e.y, e.position ?? "r") {
896
- case "l":
897
- c -= t + n.w / 2, d = "right";
898
- break;
899
- case "t":
900
- l -= t + n.h / 2, f = "bottom";
901
- break;
902
- case "b":
903
- l += t + n.h / 2, f = "top";
904
- break;
905
- case "ctr":
906
- case "inEnd":
907
- case "bestFit": break;
908
- default:
909
- c += t + n.w / 2, d = "left";
910
- break;
911
- }
912
- } else if (e.kind === "box") {
913
- if (![
914
- e.rect.x,
915
- e.rect.y,
916
- e.rect.w,
917
- e.rect.h
918
- ].every(Number.isFinite) || e.rect.w <= 0 || e.rect.h <= 0) return null;
919
- let r = nt(e.rect, t);
920
- if (!r) return null;
921
- let i = e.position ?? "ctr";
922
- c = r.x + r.w / 2, l = r.y + r.h / 2, i === "inBase" ? (s = {
923
- x: r.x + o,
924
- y: r.y + o,
925
- w: r.w - o,
926
- h: r.h - o
927
- }, c = s.x + n.w / 2, l = s.y + n.h / 2, d = "left", f = "top") : i === "inEnd" ? (s = {
928
- x: r.x + o,
929
- y: r.y,
930
- w: r.w - o,
931
- h: r.h - o
932
- }, c = s.x + n.w / 2, l = s.y + s.h - n.h / 2, d = "left", f = "bottom") : i === "l" ? (s = {
933
- x: r.x + o,
934
- y: r.y + o,
935
- w: r.w - o,
936
- h: r.h - o * 2
937
- }, c = s.x + n.w / 2, d = "left") : i === "r" || i === "outEnd" ? (s = {
938
- x: r.x,
939
- y: r.y + o,
940
- w: r.w - o,
941
- h: r.h - o * 2
942
- }, c = s.x + s.w - n.w / 2, d = "right") : i === "t" ? (s = {
943
- x: r.x + o,
944
- y: r.y + o,
945
- w: r.w - o * 2,
946
- h: r.h - o
947
- }, l = s.y + n.h / 2, f = "top") : i === "b" ? (s = {
948
- x: r.x + o,
949
- y: r.y,
950
- w: r.w - o * 2,
951
- h: r.h - o
952
- }, l = s.y + s.h - n.h / 2, f = "bottom") : s = {
953
- x: r.x + o,
954
- y: r.y + o,
955
- w: r.w - o * 2,
956
- h: r.h - o * 2
957
- };
958
- } else {
959
- if (![
960
- e.rect.x,
961
- e.rect.y,
962
- e.rect.w,
963
- e.rect.h
964
- ].every(Number.isFinite) || e.rect.w < 0 || e.rect.h < 0) return null;
965
- let r = e.position ?? "outEnd", i = r === "inBase" || r === "inEnd" || r === "ctr";
966
- if (u = !i, i) {
967
- let n = nt(e.rect, t);
968
- if (!n) return null;
969
- s = n;
970
- } else if (e.orientation === "vertical" && e.rect.w <= 0 || e.orientation === "horizontal" && e.rect.h <= 0) return null;
971
- let a = e.rect.x + e.rect.w / 2, p = e.rect.y + e.rect.h / 2;
972
- if (c = a, l = p, e.orientation === "vertical") {
973
- let t = e.negative ? e.rect.y + e.rect.h : e.rect.y, i = e.negative ? e.rect.y : e.rect.y + e.rect.h;
974
- r === "inBase" ? (l = i + (e.negative ? 1 : -1) * (o + n.h / 2), f = e.negative ? "top" : "bottom") : r === "inEnd" ? (l = t + (e.negative ? -1 : 1) * (o + n.h / 2), f = e.negative ? "bottom" : "top") : r !== "ctr" && (l = t + (e.negative ? 1 : -1) * (o + n.h / 2), f = e.negative ? "top" : "bottom");
975
- } else {
976
- let t = e.negative ? e.rect.x : e.rect.x + e.rect.w, i = e.negative ? e.rect.x + e.rect.w : e.rect.x;
977
- r === "inBase" ? (c = i + (e.negative ? -1 : 1) * (o + n.w / 2), d = e.negative ? "right" : "left") : r === "inEnd" ? (c = t + (e.negative ? 1 : -1) * (o + n.w / 2), d = e.negative ? "left" : "right") : r !== "ctr" && (c = t + (e.negative ? -1 : 1) * (o + n.w / 2), d = e.negative ? "right" : "left");
978
- }
979
- }
980
- let p = Math.max(2, r * .5), m = Math.max(2, r * .9);
981
- if (s.w < p || s.h < m) return null;
982
- let h = {
983
- x: c - Math.min(n.w, s.w) / 2,
984
- y: l - Math.min(n.h, s.h) / 2,
985
- w: Math.min(n.w, s.w),
986
- h: Math.min(n.h, s.h)
987
- };
988
- if (i) {
989
- let e = $e(i, a, h);
990
- if (!e) return null;
991
- h = e, d = "center", f = "middle";
992
- let n = nt(e, t);
993
- if (!n || (s = n, s.w < p || s.h < m)) return null;
994
- }
995
- let g = Math.min(Math.max(p, h.w), s.w), _ = Math.min(Math.max(m, h.h), s.h), v = g / 2, y = _ / 2, b = u || i ? h.x + h.w / 2 : rt(h.x + h.w / 2, s.x + v, s.x + s.w - v), x = u || i ? h.y + h.h / 2 : rt(h.y + h.h / 2, s.y + y, s.y + s.h - y);
996
- return [b, x].every(Number.isFinite) ? {
997
- x: d === "left" ? b - v : d === "right" ? b + v : b,
998
- y: f === "top" ? x - y : f === "bottom" ? x + y : x,
999
- textAlign: d,
1000
- textBaseline: f,
1001
- maxWidth: s.w,
1002
- maxHeight: s.h,
1003
- clip: s,
1004
- rect: h
1005
- } : null;
1006
- }
1007
- var at = 4096, ot = 4;
1008
- function st(e, t, n) {
1009
- if (n(e) <= t) return e;
1010
- if (n("…") > t) return "";
1011
- let r = 0, i = Array.from(e), a = i.length;
1012
- for (; r < a;) {
1013
- let e = Math.ceil((r + a) / 2);
1014
- n(`${i.slice(0, e).join("")}…`) <= t ? r = e : a = e - 1;
1015
- }
1016
- return `${i.slice(0, r).join("")}…`;
1017
- }
1018
- function ct(e) {
1019
- let t = "", n = 0;
1020
- for (let r of e) {
1021
- if (n >= at) return {
1022
- value: t,
1023
- truncated: !0
1024
- };
1025
- t += r, n++;
1026
- }
1027
- return {
1028
- value: t,
1029
- truncated: !1
1030
- };
1031
- }
1032
- function lt(e, t, n, r, i) {
1033
- if (![
1034
- t,
1035
- n,
1036
- r
1037
- ].every(Number.isFinite) || t <= 0 || n < r || r <= 0) return [];
1038
- let a = Math.max(1, Math.min(ot, Math.floor(n / r))), o = ct(e), s = o.value.split(/\r?\n/), c = [], l = o.truncated, u = (e) => {
1039
- let n = [], r = "";
1040
- for (let a of Array.from(e)) {
1041
- let e = `${r}${a}`;
1042
- r && i(e) > t ? (n.push(r), r = a) : r = e;
1043
- }
1044
- return r && n.push(r), n.filter((e) => i(e) <= t);
1045
- };
1046
- for (let e of s) {
1047
- if (i(e) <= t) {
1048
- c.push(e);
1049
- continue;
1050
- }
1051
- let n = e.match(/\S+\s*|\s+/g) ?? [];
1052
- if (n.length <= 1) c.push(...u(e));
1053
- else {
1054
- let e = "";
1055
- for (let r of n) {
1056
- let n = `${e}${r}`;
1057
- if (i(n) <= t) e = n;
1058
- else {
1059
- e && c.push(e);
1060
- let t = u(r);
1061
- e = t.pop() ?? "", c.push(...t);
1062
- }
1063
- }
1064
- e && c.push(e);
1065
- }
1066
- }
1067
- l ||= c.length > a;
1068
- let d = c.slice(0, a);
1069
- return l && d.length > 0 && !d[d.length - 1].endsWith("…") && (d[d.length - 1] = st(`${d[d.length - 1]}…`, t, i)), d;
1070
- }
1071
- //#endregion
1072
- //#region packages/core/src/chart/data-label-style.ts
1073
- function ut(e, t) {
1074
- return (t?.deleted ?? e?.deleted) === !0;
1075
- }
1076
- function dt(e, t) {
1077
- let n = e?.fontPaintAuthored === !0 || e?.fontColor != null || e?.fontHidden === !0, r = t?.fontPaintAuthored === !0 || t?.fontColor != null || t?.fontHidden === !0;
1078
- return {
1079
- fontColor: n ? e.fontColor : e?.fontColor ?? t?.fontColor,
1080
- fontItalic: e?.fontItalic ?? t?.fontItalic,
1081
- fontLanguage: e?.fontLanguage ?? t?.fontLanguage,
1082
- fontBaseline: e?.fontBaseline ?? t?.fontBaseline,
1083
- fontPaintAuthored: n ? !0 : r || void 0,
1084
- fontHidden: n ? e.fontHidden : t?.fontHidden,
1085
- textRotation: e?.textRotation ?? t?.textRotation,
1086
- textWrap: e?.textWrap ?? t?.textWrap,
1087
- textVerticalAnchor: e?.textVerticalAnchor ?? t?.textVerticalAnchor,
1088
- textVerticalMode: e?.textVerticalMode ?? t?.textVerticalMode,
1089
- textLInsEmu: e?.textLInsEmu ?? t?.textLInsEmu,
1090
- textTInsEmu: e?.textTInsEmu ?? t?.textTInsEmu,
1091
- textRInsEmu: e?.textRInsEmu ?? t?.textRInsEmu,
1092
- textBInsEmu: e?.textBInsEmu ?? t?.textBInsEmu,
1093
- textBodyAuthored: e?.textBodyAuthored === !0 || t?.textBodyAuthored === !0 || void 0,
1094
- textAlign: e?.textAlign ?? t?.textAlign
1095
- };
1096
- }
1097
- function ft(e, t) {
1098
- return e?.textAlign === "l" ? "left" : e?.textAlign === "r" ? "right" : e?.textAlign === "ctr" ? "center" : t;
1099
- }
1100
- function pt(e, t) {
1101
- let n = t / i, o = e?.textBodyAuthored === !0 ? a : 0, s = e?.textBodyAuthored === !0 ? r : 0;
1102
- return {
1103
- left: (e?.textLInsEmu ?? o) * n,
1104
- top: (e?.textTInsEmu ?? s) * n,
1105
- right: (e?.textRInsEmu ?? o) * n,
1106
- bottom: (e?.textBInsEmu ?? s) * n
1107
- };
1108
- }
1109
- function mt(e, t) {
1110
- let n = Number.isFinite(e) ? e / 6e4 * Math.PI / 180 : 0;
1111
- return t === "vert" ? n + Math.PI / 2 : t === "vert270" ? n + Math.PI * 3 / 2 : n;
1112
- }
1113
- function ht(e, t, n, r) {
1114
- let i = mt(n, r);
1115
- if (i === 0) return {
1116
- w: e,
1117
- h: t,
1118
- radians: i
1119
- };
1120
- let a = Math.abs(Math.cos(i)), o = Math.abs(Math.sin(i));
1121
- return {
1122
- w: e * a + t * o,
1123
- h: e * o + t * a,
1124
- radians: i
1125
- };
1126
- }
1127
- function gt(e, t, n, r, i, a, o) {
1128
- return r !== 0 && (e.translate(t, n), e.rotate(r), e.translate(-t, -n)), {
1129
- x: t + (i === "left" ? o.left : i === "right" ? -o.right : (o.left - o.right) / 2),
1130
- y: n + (a === "top" ? o.top : a === "bottom" ? -o.bottom : (o.top - o.bottom) / 2)
1131
- };
1132
- }
1133
- function _t(e, t, n, r, i, a) {
1134
- return a?.textWrap === "none" ? ![
1135
- t,
1136
- n,
1137
- r
1138
- ].every(Number.isFinite) || t <= 0 || n <= 0 || r <= 0 ? [] : ct(e).value.split(/\r?\n/) : lt(e, t, n, r, i);
1139
- }
1140
- function vt(e, t, n, r, i, a, o = "center", s = "center", c = n.w, l = 0) {
1141
- if (!a) {
1142
- let n = Math.max(0, c) / 2, r = (e) => e === "left" ? -n : e === "right" ? n : 0, i = r(o) - r(s);
1143
- return {
1144
- x: e + Math.cos(l) * i,
1145
- y: t + Math.sin(l) * i
1146
- };
1147
- }
1148
- let u = o === "left" ? n.x : o === "right" ? n.x + n.w : n.x + n.w / 2, d = i?.textVerticalAnchor ?? (i?.textBodyAuthored === !0 ? "t" : "ctr");
1149
- return d === "t" ? {
1150
- x: u,
1151
- y: n.y + Math.min(r, n.h) / 2
1152
- } : d === "b" ? {
1153
- x: u,
1154
- y: n.y + n.h - Math.min(r, n.h) / 2
1155
- } : {
1156
- x: u,
1157
- y: n.y + n.h / 2
1158
- };
1159
- }
1160
- //#endregion
1161
- //#region packages/core/src/chart/marker-style.ts
1162
- function yt(e) {
1163
- let t = /* @__PURE__ */ new Set();
1164
- for (let n of e.legendEntries ?? []) n.deleted === !0 && t.add(n.idx);
1165
- return t;
1166
- }
1167
- function bt(e) {
1168
- return e.markerSymbol != null || e.markerSize != null || e.markerFill != null || e.markerFillPaint !== void 0 || e.markerFillPaintAuthored === !0 || e.markerLine != null || e.markerLineWidthEmu != null;
1169
- }
1170
- function xt(e) {
1171
- return e != null && (e.markerSymbol != null || e.markerSize != null || e.markerFill != null || e.color != null || e.markerFillPaint !== void 0 || e.markerFillPaintAuthored === !0 || e.markerLine != null || e.markerLineWidthEmu != null);
1172
- }
1173
- function St(e, t) {
1174
- return t == null || !Number.isFinite(t) || t === 0 || t < 0 && e.showNegativeBubbles !== !0 ? null : Math.abs(t);
1175
- }
1176
- function Ct(e, t) {
1177
- return e.bubble3D ?? e.bubble3DGroupDefault ?? !1;
1178
- }
1179
- function P(e) {
1180
- return e !== "none" && e !== "x" && e !== "plus";
1181
- }
1182
- function F(e, t, n, r, i, a) {
1183
- let o = a?.chartType ?? e.chartType, s = t.values[r] != null;
1184
- if (!s && (n === "line" || n === "stackedLine" || n === "stackedLinePct") && (s = (o === "line" || o === "stackedLine" || o === "stackedLinePct") && (o !== "line" || e.dispBlanksAs === "zero")), !s) return !1;
1185
- if (n === "scatter" && i) {
1186
- let n = (t.categories ?? e.categories)[r];
1187
- if (n == null || !Number.isFinite(Number.parseFloat(n))) return !1;
1188
- }
1189
- if (n === "scatter" && o === "bubble") {
1190
- let n = t.bubbleSizes?.[r];
1191
- if (n == null || !Number.isFinite(n) || n === 0) return !1;
1192
- let i = a?.showNegativeBubbles ?? e.showNegativeBubbles;
1193
- return n < 0 && i !== !0 ? !1 : (a?.bubbleScale ?? e.bubbleScale ?? 100) > 0;
1194
- }
1195
- return !0;
1196
- }
1197
- function wt(e, t, n, r, i, a) {
1198
- if (n === "radar" || !t.seriesDataLabels && !t.dataLabelOverrides?.length) return 0;
1199
- let o = new Map((t.dataLabelOverrides ?? []).map((e) => [e.idx, e])), s = 0;
1200
- for (let c = 0; c < r; c++) {
1201
- let r = o.get(c);
1202
- ut(t.seriesDataLabels, r) || (r?.showLegendKey ?? t.seriesDataLabels?.showLegendKey ?? !1) === !0 && F(e, t, n, c, i, a) && s++;
1203
- }
1204
- return s;
1205
- }
1206
- function Tt(e) {
1207
- return e === "line" || e === "stackedLine" || e === "stackedLinePct" || e === "area" || e === "stackedArea" || e === "stackedAreaPct" || e === "stock" || e === "clusteredBar" || e === "clusteredBarH" || e === "stackedBar" || e === "stackedBarH" || e === "stackedBarPct" || e === "stackedBarHPct";
1208
- }
1209
- function Et(e) {
1210
- return e.dataPointOverrides?.some((e) => e.markerSymbol != null && e.markerSymbol !== "none") === !0;
1211
- }
1212
- function Dt(e, t, n, r) {
1213
- return e === "radar" ? r === "filled" : e === "scatter" && t !== "bubble" && (n === "lineNoMarker" || n === "smoothNoMarker");
1214
- }
1215
- function Ot(e, t, n, r) {
1216
- let i = n.seriesType ?? e;
1217
- return !(i === "line" || i === "stackedLine" || i === "stackedLinePct" || i === "stock" || i === "radar") && i !== "scatter" && i !== "bubble" || i === "radar" && r === "filled" || i === "scatter" && (t === "lineNoMarker" || t === "smoothNoMarker") ? !1 : (n.markerSymbol ?? (i === "stock" ? "none" : "circle")) !== "none" && n.showMarker !== !1;
1218
- }
1219
- function kt(e, t, n, r) {
1220
- return t?.markerSymbol == null ? !r || e.markerSymbol === "none" ? "none" : e.markerSymbol ?? n : t.markerSymbol;
1221
- }
1222
- function At(e, t, n) {
1223
- if (t?.markerFillPaint !== void 0) return t.markerFillPaint;
1224
- if (!(t?.markerFill != null || t?.color != null || t?.markerFillPaintAuthored === !0) && e.dataPointColors?.[n] == null && e.markerFillPaint !== void 0) return e.markerFillPaint;
1225
- }
1226
- function jt(e, t, n, r) {
1227
- return t?.markerFill == null ? t?.color == null ? e.dataPointColors?.[n] ?? (t?.markerFillPaintAuthored === !0 ? "00000000" : e.markerFill == null ? e.markerFillPaintAuthored === !0 ? "00000000" : r : e.markerFill) : t.color : t.markerFill;
1228
- }
1229
- function Mt(e) {
1230
- return e.markerFillPaint;
1231
- }
1232
- function Nt(e, t) {
1233
- return e.markerFill == null ? e.markerFillPaintAuthored === !0 ? "00000000" : t : e.markerFill;
1234
- }
1235
- function Pt(e) {
1236
- return e?.fillType === "gradient" ? e.stops.length : e == null ? 0 : 1;
1237
- }
1238
- //#endregion
1239
- //#region packages/core/src/chart/resource-limits.ts
1240
- var I = 1e4, Ft = 4096, It = 1048576, Lt = 4096, Rt = new Set([
1241
- "clusteredBar",
1242
- "clusteredBarH",
1243
- "stackedBar",
1244
- "stackedBarH",
1245
- "stackedBarPct",
1246
- "stackedBarHPct",
1247
- "clusteredColumn",
1248
- "line",
1249
- "stackedLine",
1250
- "stackedLinePct",
1251
- "area",
1252
- "stackedArea",
1253
- "stackedAreaPct",
1254
- "pie",
1255
- "doughnut",
1256
- "radar",
1257
- "scatter",
1258
- "bubble",
1259
- "stock",
1260
- "surface"
1261
- ]);
1262
- function zt(e) {
1263
- return Rt.has(e);
1264
- }
1265
- function Bt(e) {
1266
- let t = 0, n = (e) => !Number.isSafeInteger(e) || e < 0 || e > 1e4 - t ? !1 : (t += e, !0), r = (e, n) => !Number.isSafeInteger(e) || e < 0 || !Number.isSafeInteger(n) || n < 0 || e !== 0 && n > Math.floor((1e4 - t) / e) ? !1 : (t += e * n, !0);
1267
- if (!n(e.legendEntries?.length ?? 0) || !n(e.plotGroups?.length ?? 0)) return I + 1;
1268
- if (e.plotGroups != null) {
1269
- let t = 0;
1270
- for (let n of e.plotGroups) {
1271
- if (!Number.isSafeInteger(n.seriesStart) || n.seriesStart < 0 || !Number.isSafeInteger(n.seriesCount) || n.seriesCount < 0 || n.seriesStart !== t || n.seriesCount > e.series.length - t) return I + 1;
1272
- t += n.seriesCount;
1273
- }
1274
- if (t !== e.series.length) return I + 1;
1275
- }
1276
- for (let t of e.series) {
1277
- let i = Math.max(1, e.categories.length, t.values.length, t.categories?.length ?? 0, t.bubbleSizes?.length ?? 0, t.dataPointOverrides?.length ?? 0, t.dataLabelOverrides?.length ?? 0);
1278
- if (!n(i) || !r(t.trendLines?.length ?? 0, Math.max(1, t.values.length)) || !n(t.errBars?.length ?? 0)) return I + 1;
1279
- for (let e of t.errBars ?? []) if (!n(Math.max(i, e.plus.length, e.minus.length))) return I + 1;
1280
- }
1281
- if (!n(e.chartexSunburst?.rows.length ?? 0) || !n(e.chartexTreemap?.rows.length ?? 0) || !n(e.chartexRegionMap?.rows.length ?? 0) || !n(e.chartexBox?.categories.length ?? 0) || !n(e.chartexBox?.series.length ?? 0)) return I + 1;
1282
- for (let t of e.chartexBox?.series ?? []) for (let e of t.valuesByCategory) if (!n(e.length)) return I + 1;
1283
- return n(e.ofPie?.customSplitIndices?.length ?? 0) ? t : I + 1;
1284
- }
1285
- function Vt(e) {
1286
- if (!zt(e.chartType)) return null;
1287
- let t = 0;
1288
- for (let n of e.series) {
1289
- let r = 0;
1290
- for (let e of n.errBars ?? []) r = Math.max(r, e.plus.length, e.minus.length);
1291
- let i = Math.max(1, e.categories.length, n.categories?.length ?? 0, n.values.length, n.bubbleSizes?.length ?? 0, n.dataPointOverrides?.length ?? 0, n.dataLabelOverrides?.length ?? 0, n.trendLines?.length ?? 0, r);
1292
- if (!Number.isSafeInteger(i) || i > 1e4 - t) return I + 1;
1293
- t += i;
1294
- }
1295
- return t;
1296
- }
1297
- //#endregion
1298
- //#region packages/core/src/chart/plot-groups.ts
1299
- var Ht = new Set([
1300
- "area3D",
1301
- "line3D",
1302
- "pie3D",
1303
- "bar3D",
1304
- "surface3D"
1305
- ]);
1306
- function Ut(e, t) {
1307
- return t === "bar" || t === "bar3D" ? e.includes("Bar") : t === "line" || t === "line3D" ? e.includes("Line") : t === "area" || t === "area3D" ? e.includes("Area") : t === "pie" || t === "pie3D" ? e === "pie" : t === "surface" || t === "surface3D" ? e === "surface" || e === "surface3D" : e === t;
1308
- }
1309
- function Wt(e) {
1310
- if (e.plotGroups == null) return !0;
1311
- let t = 0;
1312
- for (let n of e.plotGroups) {
1313
- if (!Number.isSafeInteger(n.seriesStart) || n.seriesStart !== t || !Number.isSafeInteger(n.seriesCount) || n.seriesCount < 0 || n.seriesCount > e.series.length - t) return !1;
1314
- t += n.seriesCount;
1315
- }
1316
- return t === e.series.length;
1317
- }
1318
- function Gt(e) {
1319
- let t = Array(e.series.length);
1320
- for (let n of e.plotGroups ?? []) {
1321
- let r = Math.min(e.series.length, n.seriesStart + n.seriesCount);
1322
- for (let e = n.seriesStart; e < r; e++) t[e] = n;
1323
- }
1324
- return t;
1325
- }
1326
- function Kt(e, t) {
1327
- return t ? t.kind === "bubble" ? "bubble" : t.kind === "line" ? t.grouping === "percentStacked" ? "stackedLinePct" : t.grouping === "stacked" ? "stackedLine" : "line" : t.kind === "area" ? t.grouping === "percentStacked" ? "stackedAreaPct" : t.grouping === "stacked" ? "stackedArea" : "area" : t.kind : e;
1328
- }
1329
- function qt(e) {
1330
- if (e.plotGroups == null || e.plotGroups.length <= 1) return "legacy";
1331
- if (!Wt(e)) return "unsupported";
1332
- let t = e.plotGroups.filter((e) => e.seriesCount > 0);
1333
- if (t.length === 0) return "legacy";
1334
- if (t.length === 1) return Ut(e.chartType, t[0].kind) ? "legacy" : "unsupported";
1335
- if (t.some((e) => e.categoryAxis === "none" || e.valueAxis === "none") || t.some((t) => t.categoryAxis === "secondary" && e.secondaryCatAxis == null || t.valueAxis === "secondary" && e.secondaryValAxis == null)) return "unsupported";
1336
- let n = new Set(t.map((e) => e.kind));
1337
- if (t.some((e) => Ht.has(e.kind))) return "unsupported";
1338
- if (t.length === 2 && t[0].kind === "bar" && t[1].kind === "scatter") {
1339
- let [n, r] = t, i = e.series.slice(n.seriesStart, n.seriesStart + n.seriesCount), a = e.series.slice(r.seriesStart, r.seriesStart + r.seriesCount);
1340
- return n.categoryAxis === "primary" && (n.valueAxis === "primary" || n.valueAxis === "unresolved") && (r.categoryAxis === "secondary" || r.categoryAxis === "unresolved") && r.valueAxis === "secondary" && e.secondaryCatAxis != null && e.secondaryValAxis != null && i.every((e) => e.useSecondaryAxis !== !0) && a.every((e) => e.useSecondaryAxis === !0) ? "bar-combo" : "unsupported";
1341
- }
1342
- if (t.some((e) => e.categoryAxis === "unresolved" || e.valueAxis === "unresolved" || e.seriesAxis === "unresolved")) return "unsupported";
1343
- if (n.size === 1) {
1344
- let n = t[0].kind;
1345
- if (n === "line" || n === "area") return t.some((e) => e.categoryAxis !== "primary") ? "unsupported" : n === "line" ? "line-groups" : "area-groups";
1346
- if (n === "scatter" || n === "bubble") return "scatter-bubble";
1347
- if (n === "bar") {
1348
- let n = e.chartType.endsWith("H") ? "bar" : "col";
1349
- return new Set(t.map((e) => e.barDirection ?? n)).size > 1 && (t.length !== 2 || t.some((e) => e.categoryAxis !== "primary" || e.valueAxis !== "primary")) ? "unsupported" : "bar-combo";
1350
- }
1351
- return "unsupported";
1352
- }
1353
- if (t.length === 2 && n.has("bar") && n.has("area")) return t.find((e) => e.kind === "line" || e.kind === "area")?.categoryAxis === "primary" ? "bar-combo" : "unsupported";
1354
- if (t.length === 2 && t[0].kind === "area" && t[1].kind === "line" && t.every((e) => e.categoryAxis === "primary" && e.valueAxis === "primary")) return "area-groups";
1355
- if (n.size === 2 && n.has("bar") && n.has("line")) {
1356
- let n = t.filter((e) => e.kind === "bar"), r = t.filter((e) => e.kind === "line"), i = e.chartType.endsWith("H") ? "bar" : "col", a = new Set(n.map((e) => e.barDirection ?? i));
1357
- return n.length <= 2 && r.length === 1 && t.length <= 3 && a.size === 1 && t.every((e) => e.categoryAxis === "primary") ? "bar-combo" : "unsupported";
1358
- }
1359
- return [...n].every((e) => e === "scatter" || e === "bubble") ? t.length > 2 ? "unsupported" : "scatter-bubble" : t.length === 2 && t[0].kind === "stock" && t[1].kind === "line" && (t[0].seriesCount === 3 || t[0].seriesCount === 4) && (t[1].grouping == null || t[1].grouping === "standard") && t.every((e) => e.categoryAxis === "primary" && e.valueAxis === "primary") ? "stock-line" : "unsupported";
1360
- }
1361
- //#endregion
1362
- //#region packages/core/src/chart/style-paint.ts
1363
- function L(e, t, n) {
1364
- let r = t === "fill" ? e?.fillColors : e?.lineColors;
1365
- return r?.length ? r[((t === "fill" ? e?.fillColorIndex : e?.lineColorIndex) ?? n) % r.length] ?? null : null;
1366
- }
1367
- function Jt(e, t) {
1368
- let n = e?.fillPaints;
1369
- return n?.length ? n[(e?.fillColorIndex ?? t) % n.length] ?? null : null;
1370
- }
1371
- function Yt(e, t) {
1372
- let n = e?.linePaints;
1373
- return n?.length ? n[(e?.lineColorIndex ?? t) % n.length] ?? null : null;
1374
- }
1375
- function R(e, t) {
1376
- if (!e) return;
1377
- if (e.fillHidden) return e.fillNoStyle ? void 0 : null;
1378
- let n = Jt(e, t);
1379
- if (n) return n;
1380
- let r = L(e, "fill", t);
1381
- return r ? {
1382
- fillType: "solid",
1383
- color: r
1384
- } : e.fillPaintAuthored === !0 ? null : void 0;
1385
- }
1386
- function z(e, t) {
1387
- if (!e) return;
1388
- if (e.lineHidden) return e.lineNoStyle ? void 0 : null;
1389
- let n = Yt(e, t);
1390
- if (n) return n;
1391
- let r = L(e, "line", t);
1392
- return r ? {
1393
- fillType: "solid",
1394
- color: r
1395
- } : e.linePaintAuthored === !0 ? null : void 0;
1396
- }
1397
- function Xt(e, t, n) {
1398
- let r = t?.style, i = e.chartStyleRoles?.[n], a;
1399
- a = t?.fillHidden === !0 ? null : t?.fillColor ? {
1400
- fillType: "solid",
1401
- color: t.fillColor
1402
- } : R(r, 0), a === void 0 && (a = R(i, 0));
1403
- let o;
1404
- o = t?.lineHidden === !0 ? null : t?.lineColor ? {
1405
- fillType: "solid",
1406
- color: t.lineColor
1407
- } : z(r, 0), o === void 0 && (o = z(i, 0));
1408
- let s = i?.lineNoStyle === !0 ? void 0 : i;
1409
- return {
1410
- fill: a,
1411
- line: o,
1412
- lineWidthEmu: t?.lineWidthEmu ?? r?.lineWidthEmu ?? s?.lineWidthEmu,
1413
- lineDash: t?.lineDash ?? r?.lineDash ?? s?.lineDash,
1414
- lineCustomDash: r?.lineCustomDash ?? s?.lineCustomDash,
1415
- lineCap: r?.lineCap ?? s?.lineCap,
1416
- lineJoin: r?.lineJoin ?? s?.lineJoin
1417
- };
1418
- }
1419
- //#endregion
1420
- //#region packages/core/src/chart/three-d-surface-picture-plan.ts
1421
- function B(e, t) {
1422
- return !Number.isSafeInteger(t) || t < 0 ? !1 : e.slabFaces ? t === 0 ? e.slabFaces.front : t === 1 || t >= 6 ? !1 : t % 2 == 0 ? e.slabFaces.end : e.slabFaces.sides : t === 0;
1423
- }
1424
- function Zt(e, t) {
1425
- return e.mode !== "stack" && e.mode !== "stackScale" || !B(e, t) ? !1 : !e.slabFaces || t === 0 || t % 2 == 1;
1426
- }
1427
- function Qt(e, t) {
1428
- return B(e, t) ? $t(e, t) ? e.repetitions : 1 : 0;
1429
- }
1430
- function $t(e, t) {
1431
- return e.mode === "stackScale" && Zt(e, t);
1432
- }
1433
- function V(e) {
1434
- let t = 0;
1435
- for (let n = 0; n < 6; n++) if (t += Qt(e, n), t > 4096) return null;
1436
- return e;
1437
- }
1438
- function H(e) {
1439
- return e == null || [
1440
- e.l,
1441
- e.t,
1442
- e.r,
1443
- e.b
1444
- ].every((e) => (e ?? 0) === 0);
1445
- }
1446
- function en(e) {
1447
- if (!e) return !0;
1448
- let t = e.l ?? 0, n = e.t ?? 0, r = e.r ?? 0, i = e.b ?? 0, a = [
1449
- t,
1450
- n,
1451
- r,
1452
- i
1453
- ], o = 1 - r, s = 1 - i;
1454
- return a.every(Number.isFinite) && o > t && s > n && Math.min(1, o) > Math.max(0, t) && Math.min(1, s) > Math.max(0, n);
1455
- }
1456
- function tn(e, t, n, r) {
1457
- if (e.tile != null == (e.stretch === !0) || !en(e.srcRect) || !en(e.fillRect) || e.rotWithShape === !1 || e.alpha != null && (!Number.isFinite(e.alpha) || e.alpha < 0 || e.alpha > 1)) return null;
1458
- let i = t?.pictureOptions;
1459
- if (i?.pictureFormatAuthored === !0 && i.pictureFormat == null || i?.pictureStackUnitAuthored === !0 && i.pictureStackUnit == null) return null;
1460
- let a = i?.pictureFormat ?? "stretch";
1461
- if ((!H(e.srcRect) || !H(e.fillRect)) && a !== "stretch") return null;
1462
- let o = t?.thicknessPercent ?? 0;
1463
- if (!Number.isFinite(o) || o < 0) return null;
1464
- let s = o === 0 ? void 0 : {
1465
- front: i?.applyToFront !== !1,
1466
- sides: i?.applyToSides !== !1,
1467
- end: i?.applyToEnd !== !1
1468
- };
1469
- if (s && !Object.values(s).some(Boolean) || !s && (n === "backWall" && i?.applyToFront === !1 || (n === "floor" || n === "sideWall") && i?.applyToSides === !1) || (i?.pictureStackUnitAuthored === !0 || i?.pictureStackUnit != null) && a !== "stackScale") return null;
1470
- if (e.tile) return a !== "stretch" || !H(e.fillRect) ? null : V({
1471
- mode: "tile",
1472
- repetitions: 1,
1473
- slabFaces: s
1474
- });
1475
- if (a === "stretch") return V({
1476
- mode: "stretch",
1477
- repetitions: 1,
1478
- slabFaces: s
1479
- });
1480
- if (a === "stack") return V({
1481
- mode: "stack",
1482
- repetitions: 1,
1483
- slabFaces: s
1484
- });
1485
- if (a !== "stackScale") return null;
1486
- let c = i?.pictureStackUnit;
1487
- if (!(c != null && Number.isFinite(c) && c > 0)) return null;
1488
- if (n === "floor") return V({
1489
- mode: "stretch",
1490
- repetitions: 1,
1491
- slabFaces: s
1492
- });
1493
- if (r == null) return V({
1494
- mode: "stackScale",
1495
- repetitions: 1,
1496
- stackUnit: c,
1497
- slabFaces: s
1498
- });
1499
- if (!(Number.isFinite(r) && r > 0)) return null;
1500
- let l = Math.ceil(r / c);
1501
- return !Number.isSafeInteger(l) || l < 1 || l > 4096 ? null : V({
1502
- mode: "stackScale",
1503
- repetitions: l,
1504
- stackUnit: c,
1505
- slabFaces: s
1506
- });
1507
- }
1508
- //#endregion
1509
- //#region packages/core/src/chart/image-fill.ts
1510
- var nn = new Set([
1511
- "line",
1512
- "stackedLine",
1513
- "stackedLinePct",
1514
- "area",
1515
- "stackedArea",
1516
- "stackedAreaPct",
1517
- "clusteredBar",
1518
- "clusteredBarH",
1519
- "stackedBar",
1520
- "stackedBarH",
1521
- "stackedBarPct",
1522
- "stackedBarHPct",
1523
- "surface",
1524
- "surface3D"
1525
- ]);
1526
- function U(e) {
1527
- return JSON.stringify([
1528
- e.imagePath,
1529
- e.svgImagePath ?? null,
1530
- e.duotone?.clr1 ?? null,
1531
- e.duotone?.clr2 ?? null
1532
- ]);
1533
- }
1534
- var W;
1535
- function rn(e, t) {
1536
- let n = W;
1537
- W = e;
1538
- try {
1539
- return t();
1540
- } finally {
1541
- W = n;
1542
- }
1543
- }
1544
- function an(e, t, n, r, i) {
1545
- let a = e;
1546
- return {
1547
- x: a.endsWith("r") || a === "r" ? t - r : a === "t" || a === "ctr" || a === "b" ? (t - r) / 2 : 0,
1548
- y: a.startsWith("b") || a === "b" ? n - i : a === "l" || a === "ctr" || a === "r" ? (n - i) / 2 : 0
1549
- };
1550
- }
1551
- var on = new Set([
1552
- "tl",
1553
- "t",
1554
- "tr",
1555
- "l",
1556
- "ctr",
1557
- "r",
1558
- "bl",
1559
- "b",
1560
- "br"
1561
- ]), sn = new Set([
1562
- "none",
1563
- "x",
1564
- "y",
1565
- "xy"
1566
- ]);
1567
- function G(e) {
1568
- return e.tile != null != (e.stretch === !0) && k(e.srcRect);
1569
- }
1570
- function cn(e) {
1571
- let t = e.tile;
1572
- if (!t) return null;
1573
- let { algn: n, tx: r, ty: i, sx: a, sy: o } = t, s = t.flip ?? "none", c = e.dpi;
1574
- return !n || !on.has(n) || !sn.has(s) || !Number.isFinite(r) || !Number.isFinite(i) || !(c != null && Number.isFinite(c) && c > 0) || !(Number.isFinite(a) && a > 0) || !(Number.isFinite(o) && o > 0) ? null : {
1575
- alignment: n,
1576
- tx: r,
1577
- ty: i,
1578
- sx: a,
1579
- sy: o,
1580
- dpi: c,
1581
- flipX: s === "x" || s === "xy",
1582
- flipY: s === "y" || s === "xy"
1583
- };
1584
- }
1585
- function ln(e) {
1586
- return G(e) ? W?.(e) ?? null : null;
1587
- }
1588
- function un(e, t, r = n) {
1589
- let a = cn(e);
1590
- if (!a) return null;
1591
- let o = A(t);
1592
- if (!(Number.isFinite(o.w) && o.w > 0) || !(Number.isFinite(o.h) && o.h > 0)) return null;
1593
- let s = 96 / a.dpi * (r / n), c = o.w * a.sx * s, l = o.h * a.sy * s;
1594
- return !(c > 0) || !(l > 0) ? null : {
1595
- alignment: a.alignment,
1596
- tileW: c,
1597
- tileH: l,
1598
- offsetX: a.tx / i * r,
1599
- offsetY: a.ty / i * r,
1600
- flipX: a.flipX,
1601
- flipY: a.flipY
1602
- };
1603
- }
1604
- function dn(e, t, n) {
1605
- let r = an(e.alignment, t, n, e.tileW, e.tileH);
1606
- return {
1607
- x: r.x + e.offsetX,
1608
- y: r.y + e.offsetY
1609
- };
1610
- }
1611
- function fn(e, t, n, r, i) {
1612
- let a = un(e, t, i);
1613
- if (!a) return null;
1614
- let { tileW: o, tileH: s } = a, c = Math.ceil(n / o) + 2, l = Math.ceil(r / s) + 2, u = c * l;
1615
- return Number.isSafeInteger(u) ? {
1616
- ...a,
1617
- columns: c,
1618
- rows: l,
1619
- repetitions: u
1620
- } : null;
1621
- }
1622
- function pn(e, t, r, i, a = n) {
1623
- if (!(r > 0) || !(i > 0) || !G(e)) return 0;
1624
- let o = t?.(e);
1625
- if (!o) return 0;
1626
- if (!e.tile) return 1;
1627
- let s = fn(e, o, r, i, a);
1628
- return s ? Math.min(s.repetitions, Lt) : 0;
1629
- }
1630
- function K(e) {
1631
- return Number.isFinite(e) && e > 0;
1632
- }
1633
- function mn(e, t) {
1634
- if (!K(t.widthPt) || !K(t.heightPt) || !K(e.metafileWidthFactor) || !K(e.metafileHeightFactor) || !Number.isFinite(e.targetWidthFactor) || e.targetWidthFactor < 0 || !Number.isFinite(e.targetHeightFactor) || e.targetHeightFactor < 0) return null;
1635
- let n = t.widthPt * e.metafileWidthFactor, r = t.heightPt * e.metafileHeightFactor;
1636
- if (!K(n) || !K(r)) return null;
1637
- let i = t.targetWidthPx, a = t.targetHeightPx;
1638
- if (i != null != (a != null)) return null;
1639
- if (i == null || a == null) return {
1640
- widthPt: n,
1641
- heightPt: r
1642
- };
1643
- if (!K(i) || !K(a)) return null;
1644
- let o = i * e.targetWidthFactor, s = a * e.targetHeightFactor;
1645
- if (!Number.isFinite(o) || o < 0 || e.targetWidthFactor > 0 && o === 0 || !Number.isFinite(s) || s < 0 || e.targetHeightFactor > 0 && s === 0) return null;
1646
- let c = Math.ceil(o), l = Math.ceil(s);
1647
- return !Number.isFinite(c) || !Number.isFinite(l) ? null : {
1648
- widthPt: n,
1649
- heightPt: r,
1650
- targetWidthPx: c,
1651
- targetHeightPx: l
1652
- };
1653
- }
1654
- function hn(e) {
1655
- if (!G(e)) return null;
1656
- let t = e.srcRect ? 1 - e.srcRect.l - e.srcRect.r : 1, n = e.srcRect ? 1 - e.srcRect.t - e.srcRect.b : 1;
1657
- if (!(Number.isFinite(t) && t > 0) || !(Number.isFinite(n) && n > 0)) return null;
1658
- let r = e.srcRect != null;
1659
- if (e.tile) {
1660
- if (!cn(e)) return null;
1661
- let i = 1 / t, a = 1 / n;
1662
- return !K(i) || !K(a) ? null : {
1663
- preserveNaturalSize: !0,
1664
- hasSourceCrop: r,
1665
- targetWidthFactor: 0,
1666
- targetHeightFactor: 0,
1667
- metafileWidthFactor: i,
1668
- metafileHeightFactor: a
1669
- };
1670
- }
1671
- let i = e.fillRect, a = i?.l ?? 0, o = i?.t ?? 0, s = i?.r ?? 0, c = i?.b ?? 0;
1672
- if (![
1673
- a,
1674
- o,
1675
- s,
1676
- c
1677
- ].every(Number.isFinite)) return null;
1678
- let l = 1 - a - s, u = 1 - o - c;
1679
- if (!K(l) || !K(u)) return null;
1680
- let d = l / t, f = u / n;
1681
- return !K(d) || !K(f) ? null : {
1682
- preserveNaturalSize: !1,
1683
- hasSourceCrop: r,
1684
- targetWidthFactor: d,
1685
- targetHeightFactor: f,
1686
- metafileWidthFactor: d,
1687
- metafileHeightFactor: f
1688
- };
1689
- }
1690
- function gn(e, t) {
1691
- return {
1692
- fill: e.fill,
1693
- preserveNaturalSize: e.preserveNaturalSize || t.preserveNaturalSize,
1694
- hasSourceCrop: e.hasSourceCrop || t.hasSourceCrop,
1695
- targetWidthFactor: Math.max(e.targetWidthFactor, t.targetWidthFactor),
1696
- targetHeightFactor: Math.max(e.targetHeightFactor, t.targetHeightFactor),
1697
- metafileWidthFactor: Math.max(e.metafileWidthFactor, t.metafileWidthFactor),
1698
- metafileHeightFactor: Math.max(e.metafileHeightFactor, t.metafileHeightFactor)
1699
- };
1700
- }
1701
- function _n(e, t) {
1702
- if (Bt(e) > 1e4) return {
1703
- usages: [],
1704
- sourceLimitExceeded: !1,
1705
- usageRejected: !1
1706
- };
1707
- let n = /* @__PURE__ */ new Map(), r = !1, i = !1, a = (e) => {
1708
- if (i || !e || typeof e != "object" || e.fillType !== "image") return;
1709
- let a = e, o = hn(a);
1710
- if (!o) return;
1711
- let s = U(a), c = {
1712
- fill: a,
1713
- ...o
1714
- };
1715
- if (t && !t(c)) {
1716
- i = !0;
1717
- return;
1718
- }
1719
- let l = n.get(s);
1720
- if (l) {
1721
- n.set(s, gn(l, c));
1722
- return;
1723
- }
1724
- if (n.size >= 256) {
1725
- r = !0;
1726
- return;
1727
- }
1728
- n.set(s, c);
1729
- }, o = (e, t) => {
1730
- let n = e?.fillPaints;
1731
- if (n?.length) return n[(e?.fillColorIndex ?? t) % n.length];
1732
- }, s = (e, t) => {
1733
- if (!e) return;
1734
- if (e.fillHidden === !0) return e.fillNoStyle ? void 0 : null;
1735
- let n = o(e, t);
1736
- if (n?.fillType === "image") return n;
1737
- if (n != null || e.fillPaintAuthored === !0) return null;
1738
- let r = e.fillColors;
1739
- return r?.length && r[(e.fillColorIndex ?? t) % r.length] ? null : void 0;
1740
- }, c = (e, t, n, r, i) => {
1741
- if (n === !0) return null;
1742
- if (e?.fillType === "image") return e;
1743
- if (e != null || t != null || r === !0) return null;
1744
- if (i?.fillNoStyle !== !0) return s(i, 0);
1745
- }, l = c(e.chartFill, void 0, e.chartFillHidden, e.chartFillPaintAuthored, e.chartStyleRoles?.chartArea);
1746
- l && a(l);
1747
- let u = c(e.plotAreaFill, e.plotAreaBg, e.plotAreaFillHidden, e.plotAreaFillPaintAuthored, e.threeD ? e.chartStyleRoles?.plotArea3D : e.chartStyleRoles?.plotArea);
1748
- u && a(u);
1749
- let d = e.series.some((e) => e.values.some((e) => e != null && Number.isFinite(e))), f = Math.max(e.categories.length, ...e.series.map((e) => e.categories?.length ?? e.values.length)), p = e.chartType === "surface" || e.chartType === "surface3D" ? e.series.length >= 2 && f >= 2 && d : d;
1750
- if (e.threeD && nn.has(e.chartType) && p) {
1751
- let t = e.valMin != null && Number.isFinite(e.valMin) && e.valMax != null && Number.isFinite(e.valMax) ? e.valMax - e.valMin : void 0;
1752
- for (let [n, r] of [
1753
- ["floor", "floor"],
1754
- ["sideWall", "wall"],
1755
- ["backWall", "wall"]
1756
- ]) {
1757
- let i = e.threeD[n], o = Xt(e, i, r).fill;
1758
- o?.fillType === "image" && tn(o, i, n, t) && a(o);
1759
- }
1760
- }
1761
- let m = Gt(e), h = e.series.some((t, n) => {
1762
- let r = m[n];
1763
- return (r?.kind === "bubble" || r?.kind === "scatter" ? "scatter" : t.seriesType ?? (e.chartType === "bubble" ? "scatter" : e.chartType)) === "scatter" && (t.categories ?? e.categories).some((e) => Number.isFinite(Number.parseFloat(e)));
1764
- }), g = e.chartStyleRoles?.dataPointMarker, _ = yt(e), v = e.categories.length > 0 || (e.series[0]?.categories?.length ?? 0) > 0 || e.series.some((e) => e.values.length > 0);
1765
- for (let t = 0; t < e.series.length; t++) {
1766
- let n = e.series[t], r = m[t], i = r?.kind === "bubble" || r == null && e.chartType === "bubble", c = r?.kind === "bubble" || r?.kind === "scatter" ? "scatter" : n.seriesType ?? (e.chartType === "bubble" ? "scatter" : e.chartType), l = Kt(e.chartType, r), u = r?.scatterStyle ?? e.scatterStyle, d = r?.radarStyle ?? e.radarStyle, f = {
1767
- chartType: l,
1768
- bubbleScale: r?.bubbleScale ?? e.bubbleScale,
1769
- showNegativeBubbles: r?.showNegativeBubbles ?? e.showNegativeBubbles
1770
- };
1771
- if (!(c === "line" || c === "stackedLine" || c === "stackedLinePct" || c === "area" || c === "stackedArea" || c === "stackedAreaPct" || c === "scatter" || c === "radar" || c === "stock") || Dt(c, l, u, d)) continue;
1772
- let p = c === "area" || c === "stackedArea" || c === "stackedAreaPct" ? (n.showMarker === !0 || bt(n)) && n.markerSymbol !== "none" : c === "stock" ? n.markerSymbol != null && n.markerSymbol !== "none" : n.showMarker !== !1 && n.markerSymbol !== "none", y = _.has(t), b = Math.max(n.values.length, n.categories?.length ?? 0, e.categories.length), x = wt(e, n, c, b, h, f) > 0, S = Ot(l, u, n, d) && (e.showLegend && !y || e.dataTable?.showKeys === !0 && Tt(e.chartType) && v || x), C = n.markerSymbol ?? (c === "stock" ? "none" : "circle");
1773
- if (S && P(C)) {
1774
- if (i) {
1775
- let r = s(n.chartexStyle, t);
1776
- if (r && a(r), r === void 0 && n.color == null) {
1777
- let n = s(e.chartStyleRoles?.dataPoint, t);
1778
- n && a(n);
1779
- }
1780
- } else a(n.markerFillPaint);
1781
- !i && n.markerFillPaint === void 0 && n.markerFill == null && n.markerFillPaintAuthored !== !0 && a(o(g, t));
1782
- }
1783
- if (!p && !Et(n)) continue;
1784
- let w = new Map((n.dataPointOverrides ?? []).map((e) => [e.idx, e]));
1785
- for (let l = 0; l < b; l++) {
1786
- if (!F(e, n, c, l, h, f)) continue;
1787
- let u = w.get(l);
1788
- if (!P(kt(n, u, "circle", p))) continue;
1789
- if (i) {
1790
- let t = { showNegativeBubbles: r?.showNegativeBubbles ?? e.showNegativeBubbles };
1791
- if ((r?.bubbleScale ?? e.bubbleScale ?? 100) <= 0 || St(t, n.bubbleSizes?.[l]) == null || (n.bubbleSizes?.[l] ?? 0) < 0) continue;
1792
- let i = s(u?.chartexStyle, l);
1793
- if (i && a(i), i !== void 0 || u?.fillHidden === !0 || u?.color != null || n.dataPointColors?.[l] != null) continue;
1794
- let o = s(n.chartexStyle, l);
1795
- if (o && a(o), o !== void 0 || n.color != null) continue;
1796
- let c = s(e.chartStyleRoles?.dataPoint, l);
1797
- c && a(c);
1798
- continue;
1799
- }
1800
- let d = At(n, u, l);
1801
- a(d), d === void 0 && u?.markerFill == null && u?.color == null && n.dataPointColors?.[l] == null && n.markerFill == null && u?.markerFillPaintAuthored !== !0 && n.markerFillPaintAuthored !== !0 && a(o(g, t));
1802
- }
1803
- }
1804
- for (let t = 0; t < (e.chartexBox?.series.length ?? 0); t++) {
1805
- let n = e.chartexBox.series[t];
1806
- if (!P(e.chartStyleMarkerSymbol ?? e.chartexMarkerSymbol ?? "circle") || !(n.showNonoutliers || n.showOutliers)) continue;
1807
- let r = 0;
1808
- for (let e of n.valuesByCategory) {
1809
- let t = we(e, n.quartileMethod);
1810
- t && (n.showNonoutliers && (r += t.inner.length), n.showOutliers && (r += t.outliers.length));
1811
- }
1812
- if (r === 0) continue;
1813
- let i = n.chartexFormatIdx ?? t, o = n.chartexStyle, c = s(o, i);
1814
- if (c && a(c), c !== void 0 || n.color != null) continue;
1815
- let l = s(e.chartexDataPointMarkerStyle ?? e.chartexDataPointStyle ?? void 0, i);
1816
- l && a(l);
1817
- }
1818
- return {
1819
- usages: r || i ? [] : [...n.values()],
1820
- sourceLimitExceeded: r,
1821
- usageRejected: i
1822
- };
1823
- }
1824
- function vn(e) {
1825
- return _n(e).usages;
1826
- }
1827
- function yn(e, t) {
1828
- let n = /* @__PURE__ */ new Map();
1829
- for (let r = 0; r < e.length; r++) {
1830
- let i = e[r], a = _n(i, t ? (e) => t(e, r) : void 0);
1831
- if (!a.usageRejected) {
1832
- if (a.sourceLimitExceeded) return [];
1833
- for (let e of a.usages) {
1834
- let t = U(e.fill), r = n.get(t);
1835
- if (r) {
1836
- n.set(t, gn(r, e));
1837
- continue;
1838
- }
1839
- if (n.size >= 256) return [];
1840
- n.set(t, e);
1841
- }
1842
- }
1843
- }
1844
- return [...n.values()];
1845
- }
1846
- function bn(e, t, r, i, a, o, s = n, c = 0) {
1847
- let l = W?.(t);
1848
- if (!l || !(a > 0) || !(o > 0) || !G(t) || c !== 0 && t.rotWithShape == null) return !1;
1849
- if (e.save(), e.beginPath(), e.rect(r, i, a, o), e.clip(), t.rotWithShape === !1 && c !== 0 && (e.translate(r + a / 2, i + o / 2), e.rotate(-c * Math.PI / 180), e.translate(-(r + a / 2), -(i + o / 2))), t.alpha != null && (e.globalAlpha *= Math.max(0, Math.min(1, t.alpha))), !t.tile) {
1850
- let n = t.fillRect, s = r + (n?.l ?? 0) * a, c = i + (n?.t ?? 0) * o, u = (1 - (n?.l ?? 0) - (n?.r ?? 0)) * a, d = (1 - (n?.t ?? 0) - (n?.b ?? 0)) * o;
1851
- return u > 0 && d > 0 && j(e, l, t.srcRect, s, c, u, d), e.restore(), u > 0 && d > 0;
1852
- }
1853
- let u = fn(t, l, a, o, s);
1854
- if (!u || u.repetitions > 4096) return e.restore(), !1;
1855
- let { tileW: d, tileH: f, flipX: p, flipY: m, columns: h, rows: g } = u, _ = dn(u, a, o), v = r + _.x, y = i + _.y, b = Math.floor((r - v) / d) - 1, x = Math.floor((i - y) / f) - 1;
1856
- for (let n = x; n < x + g; n++) for (let r = b; r < b + h; r++) {
1857
- let i = v + r * d, a = y + n * f, o = p && Math.abs(r) % 2 == 1, s = m && Math.abs(n) % 2 == 1;
1858
- e.save(), e.translate(i + (o ? d : 0), a + (s ? f : 0)), e.scale(o ? -1 : 1, s ? -1 : 1), j(e, l, t.srcRect, 0, 0, d, f), e.restore();
1859
- }
1860
- return e.restore(), !0;
1861
- }
1862
- //#endregion
1863
- //#region packages/core/src/shape/pattern-bitmaps.ts
1864
- var xn = {
1865
- pct5: [
1866
- 0,
1867
- 16,
1868
- 0,
1869
- 0,
1870
- 0,
1871
- 1,
1872
- 0,
1873
- 0
1874
- ],
1875
- pct10: [
1876
- 136,
1877
- 0,
1878
- 34,
1879
- 0,
1880
- 136,
1881
- 0,
1882
- 34,
1883
- 0
1884
- ],
1885
- pct20: [
1886
- 136,
1887
- 34,
1888
- 136,
1889
- 34,
1890
- 136,
1891
- 34,
1892
- 136,
1893
- 34
1894
- ],
1895
- pct25: [
1896
- 136,
1897
- 85,
1898
- 34,
1899
- 85,
1900
- 136,
1901
- 85,
1902
- 34,
1903
- 85
1904
- ],
1905
- pct30: [
1906
- 170,
1907
- 85,
1908
- 170,
1909
- 85,
1910
- 170,
1911
- 85,
1912
- 170,
1913
- 85
1914
- ],
1915
- pct40: [
1916
- 170,
1917
- 119,
1918
- 170,
1919
- 221,
1920
- 170,
1921
- 119,
1922
- 170,
1923
- 221
1924
- ],
1925
- pct50: [
1926
- 170,
1927
- 85,
1928
- 170,
1929
- 85,
1930
- 170,
1931
- 85,
1932
- 170,
1933
- 85
1934
- ],
1935
- pct60: [
1936
- 221,
1937
- 85,
1938
- 119,
1939
- 85,
1940
- 221,
1941
- 85,
1942
- 119,
1943
- 85
1944
- ],
1945
- pct70: [
1946
- 238,
1947
- 85,
1948
- 187,
1949
- 85,
1950
- 238,
1951
- 85,
1952
- 187,
1953
- 85
1954
- ],
1955
- pct75: [
1956
- 238,
1957
- 170,
1958
- 187,
1959
- 170,
1960
- 238,
1961
- 170,
1962
- 187,
1963
- 170
1964
- ],
1965
- pct80: [
1966
- 254,
1967
- 239,
1968
- 251,
1969
- 191,
1970
- 254,
1971
- 239,
1972
- 251,
1973
- 191
1974
- ],
1975
- pct90: [
1976
- 255,
1977
- 239,
1978
- 255,
1979
- 251,
1980
- 255,
1981
- 239,
1982
- 255,
1983
- 251
1984
- ],
1985
- horz: [
1986
- 255,
1987
- 0,
1988
- 0,
1989
- 0,
1990
- 255,
1991
- 0,
1992
- 0,
1993
- 0
1994
- ],
1995
- vert: [
1996
- 136,
1997
- 136,
1998
- 136,
1999
- 136,
2000
- 136,
2001
- 136,
2002
- 136,
2003
- 136
2004
- ],
2005
- ltHorz: [
2006
- 0,
2007
- 255,
2008
- 0,
2009
- 0,
2010
- 0,
2011
- 0,
2012
- 0,
2013
- 0
2014
- ],
2015
- ltVert: [
2016
- 32,
2017
- 32,
2018
- 32,
2019
- 32,
2020
- 32,
2021
- 32,
2022
- 32,
2023
- 32
2024
- ],
2025
- dkHorz: [
2026
- 255,
2027
- 255,
2028
- 0,
2029
- 0,
2030
- 255,
2031
- 255,
2032
- 0,
2033
- 0
2034
- ],
2035
- dkVert: [
2036
- 204,
2037
- 204,
2038
- 204,
2039
- 204,
2040
- 204,
2041
- 204,
2042
- 204,
2043
- 204
2044
- ],
2045
- narHorz: [
2046
- 255,
2047
- 0,
2048
- 255,
2049
- 0,
2050
- 255,
2051
- 0,
2052
- 255,
2053
- 0
2054
- ],
2055
- narVert: [
2056
- 170,
2057
- 170,
2058
- 170,
2059
- 170,
2060
- 170,
2061
- 170,
2062
- 170,
2063
- 170
2064
- ],
2065
- cross: [
2066
- 255,
2067
- 136,
2068
- 136,
2069
- 136,
2070
- 255,
2071
- 136,
2072
- 136,
2073
- 136
2074
- ],
2075
- lgGrid: [
2076
- 255,
2077
- 128,
2078
- 128,
2079
- 128,
2080
- 128,
2081
- 128,
2082
- 128,
2083
- 128
2084
- ],
2085
- smGrid: [
2086
- 255,
2087
- 136,
2088
- 136,
2089
- 136,
2090
- 255,
2091
- 136,
2092
- 136,
2093
- 136
2094
- ],
2095
- dotGrid: [
2096
- 136,
2097
- 0,
2098
- 0,
2099
- 0,
2100
- 136,
2101
- 0,
2102
- 0,
2103
- 0
2104
- ],
2105
- dnDiag: [
2106
- 128,
2107
- 64,
2108
- 32,
2109
- 16,
2110
- 8,
2111
- 4,
2112
- 2,
2113
- 1
2114
- ],
2115
- upDiag: [
2116
- 1,
2117
- 2,
2118
- 4,
2119
- 8,
2120
- 16,
2121
- 32,
2122
- 64,
2123
- 128
2124
- ],
2125
- ltDnDiag: [
2126
- 136,
2127
- 68,
2128
- 34,
2129
- 17,
2130
- 136,
2131
- 68,
2132
- 34,
2133
- 17
2134
- ],
2135
- ltUpDiag: [
2136
- 17,
2137
- 34,
2138
- 68,
2139
- 136,
2140
- 17,
2141
- 34,
2142
- 68,
2143
- 136
2144
- ],
2145
- dkDnDiag: [
2146
- 195,
2147
- 129,
2148
- 0,
2149
- 129,
2150
- 195,
2151
- 129,
2152
- 0,
2153
- 129
2154
- ],
2155
- dkUpDiag: [
2156
- 195,
2157
- 129,
2158
- 0,
2159
- 129,
2160
- 195,
2161
- 129,
2162
- 0,
2163
- 129
2164
- ],
2165
- wdDnDiag: [
2166
- 128,
2167
- 64,
2168
- 32,
2169
- 16,
2170
- 8,
2171
- 4,
2172
- 2,
2173
- 129
2174
- ],
2175
- wdUpDiag: [
2176
- 1,
2177
- 2,
2178
- 4,
2179
- 8,
2180
- 16,
2181
- 32,
2182
- 64,
2183
- 129
2184
- ],
2185
- diagCross: [
2186
- 129,
2187
- 66,
2188
- 36,
2189
- 24,
2190
- 24,
2191
- 36,
2192
- 66,
2193
- 129
2194
- ],
2195
- horzBrick: [
2196
- 255,
2197
- 16,
2198
- 16,
2199
- 16,
2200
- 255,
2201
- 1,
2202
- 1,
2203
- 1
2204
- ],
2205
- diagBrick: [
2206
- 129,
2207
- 66,
2208
- 36,
2209
- 24,
2210
- 36,
2211
- 66,
2212
- 129,
2213
- 0
2214
- ],
2215
- lgCheck: [
2216
- 240,
2217
- 240,
2218
- 240,
2219
- 240,
2220
- 15,
2221
- 15,
2222
- 15,
2223
- 15
2224
- ],
2225
- smCheck: [
2226
- 204,
2227
- 204,
2228
- 51,
2229
- 51,
2230
- 204,
2231
- 204,
2232
- 51,
2233
- 51
2234
- ],
2235
- trellis: [
2236
- 165,
2237
- 90,
2238
- 165,
2239
- 90,
2240
- 165,
2241
- 90,
2242
- 165,
2243
- 90
2244
- ]
2245
- };
2246
- function Sn(e, t, n) {
2247
- let r = xn[e];
2248
- if (!r) return null;
2249
- let i = s(8, 8);
2250
- if (!i) return null;
2251
- let a = i.getContext("2d");
2252
- if (!a) return null;
2253
- a.fillStyle = Cn(n), a.fillRect(0, 0, 8, 8), a.fillStyle = Cn(t);
2254
- for (let e = 0; e < 8; e++) {
2255
- let t = r[e];
2256
- for (let n = 0; n < 8; n++) t & 1 << 7 - n && a.fillRect(n, e, 1, 1);
2257
- }
2258
- return i;
2259
- }
2260
- function Cn(e) {
2261
- 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})`;
2262
- }
2263
- //#endregion
2264
- //#region packages/core/src/draw/dash.ts
2265
- function q(e, t) {
2266
- return e.map((e) => e * t);
2267
- }
2268
- var wn = {
2269
- dotted: [1, 2],
2270
- dashed: [3, 2],
2271
- dashSmallGap: [3, 1],
2272
- dotDash: [
2273
- 1,
2274
- 2,
2275
- 3,
2276
- 2
2277
- ],
2278
- dotDotDash: [
2279
- 1,
2280
- 2,
2281
- 1,
2282
- 2,
2283
- 3,
2284
- 2
2285
- ],
2286
- dashDotStroked: [
2287
- 1,
2288
- 2,
2289
- 3,
2290
- 2
2291
- ]
2292
- };
2293
- function Tn(e, t) {
2294
- let n = wn[e];
2295
- return n ? q(n, t) : [];
2296
- }
2297
- var En = {
2298
- hair: [1, 1],
2299
- dashed: [4, 3],
2300
- mediumDashed: [4, 3],
2301
- dotted: [2, 2],
2302
- dashDot: [
2303
- 4,
2304
- 2,
2305
- 1,
2306
- 2
2307
- ],
2308
- mediumDashDot: [
2309
- 4,
2310
- 2,
2311
- 1,
2312
- 2
2313
- ],
2314
- dashDotDot: [
2315
- 4,
2316
- 2,
2317
- 1,
2318
- 2,
2319
- 1,
2320
- 2
2321
- ],
2322
- mediumDashDotDot: [
2323
- 4,
2324
- 2,
2325
- 1,
2326
- 2,
2327
- 1,
2328
- 2
2329
- ],
2330
- slantDashDot: [
2331
- 5,
2332
- 3,
2333
- 1,
2334
- 3
2335
- ]
2336
- };
2337
- function Dn(e) {
2338
- let t = En[e];
2339
- return t ? q(t, 1) : [];
2340
- }
2341
- var On = {
2342
- dash: [6, 3],
2343
- dot: [1.5, 3],
2344
- dashDot: [
2345
- 6,
2346
- 3,
2347
- 1.5,
2348
- 3
2349
- ],
2350
- lgDash: [10, 4],
2351
- lgDashDot: [
2352
- 10,
2353
- 4,
2354
- 1.5,
2355
- 4
2356
- ],
2357
- lgDashDotDot: [
2358
- 10,
2359
- 4,
2360
- 1.5,
2361
- 4,
2362
- 1.5,
2363
- 4
2364
- ],
2365
- sysDash: [4, 2],
2366
- sysDot: [1, 2],
2367
- sysDashDot: [
2368
- 4,
2369
- 2,
2370
- 1,
2371
- 2
2372
- ],
2373
- sysDashDotDot: [
2374
- 4,
2375
- 2,
2376
- 1,
2377
- 2,
2378
- 1,
2379
- 2
2380
- ]
2381
- };
2382
- function kn(e, t) {
2383
- let n = On[e];
2384
- return n ? q(n, t) : [];
2385
- }
2386
- var An = 512;
2387
- function J(e, t, n) {
2388
- if (e != null) {
2389
- let t = [];
2390
- for (let r = 0; r < Math.min(e.length, An); r += 1) {
2391
- let i = e[r];
2392
- !Number.isFinite(i.dash) || !Number.isFinite(i.space) || i.dash < 0 || i.space < 0 || i.dash === 0 && i.space === 0 || t.push(i.dash * n, i.space * n);
2393
- }
2394
- return t;
2395
- }
2396
- return kn(t ?? "solid", n);
2397
- }
2398
- function jn(e, t) {
2399
- let n = kn(e, t);
2400
- if (n.length > 0) return n;
2401
- let r = e.trim().split(/[\s,]+/).map(Number);
2402
- return r.length >= 2 && r.every((e) => Number.isFinite(e) && e >= 0) && r.some((e) => e > 0) ? (r.length % 2 != 0 && r.pop(), q(r, t)) : [];
2403
- }
2404
- var Mn = {
2405
- dotted: [1.5, 3],
2406
- dottedHeavy: [1.5, 3],
2407
- dash: [6, 3],
2408
- dashHeavy: [6, 3],
2409
- dashLong: [10, 4],
2410
- dashLongHeavy: [10, 4],
2411
- dotDash: [
2412
- 6,
2413
- 3,
2414
- 1.5,
2415
- 3
2416
- ],
2417
- dotDashHeavy: [
2418
- 6,
2419
- 3,
2420
- 1.5,
2421
- 3
2422
- ],
2423
- dotDotDash: [
2424
- 6,
2425
- 3,
2426
- 1.5,
2427
- 3,
2428
- 1.5,
2429
- 3
2430
- ],
2431
- dotDotDashHeavy: [
2432
- 6,
2433
- 3,
2434
- 1.5,
2435
- 3,
2436
- 1.5,
2437
- 3
2438
- ]
2439
- };
2440
- function Nn(e, t) {
2441
- let n = Mn[e];
2442
- return n ? q(n, t) : [];
2443
- }
2444
- //#endregion
2445
- //#region packages/core/src/shape/paint.ts
2446
- var Pn = 512;
2447
- function Fn(e, t, n, r, i, a, o) {
2448
- let s = e.tileRect;
2449
- if (!s || (s.l ?? 0) === 0 && (s.t ?? 0) === 0 && (s.r ?? 0) === 0 && (s.b ?? 0) === 0) return null;
2450
- let l = n + i * (s.l ?? 0), u = r + a * (s.t ?? 0), d = i * (1 - (s.l ?? 0) - (s.r ?? 0)), f = a * (1 - (s.t ?? 0) - (s.b ?? 0));
2451
- if (!Number.isFinite(d) || !Number.isFinite(f) || Math.abs(d) < 1e-9 || Math.abs(f) < 1e-9) return null;
2452
- let p = Math.min(1, Pn / Math.abs(d), Pn / Math.abs(f)), m = Math.max(1, Math.ceil(Math.abs(d) * p)), h = Math.max(1, Math.ceil(Math.abs(f) * p)), g = c(t, m, h), _ = g?.getContext("2d");
2453
- if (!g || !_) return null;
2454
- let v = X({
2455
- ...e,
2456
- tileRect: void 0,
2457
- flip: void 0
2458
- }, _, 0, 0, m, h, o);
2459
- if (!v) return null;
2460
- _.fillStyle = v, _.fillRect(0, 0, m, h);
2461
- let y = e.flip === "x" || e.flip === "xy", b = e.flip === "y" || e.flip === "xy", x = g;
2462
- if (y || b) {
2463
- let e = c(t, m * (y ? 2 : 1), h * (b ? 2 : 1)), n = e?.getContext("2d");
2464
- if (!e || !n) return null;
2465
- for (let e = 0; e < (b ? 2 : 1); e += 1) for (let t = 0; t < (y ? 2 : 1); t += 1) n.save(), n.translate(t * m, e * h), n.scale(t === 1 ? -1 : 1, e === 1 ? -1 : 1), n.drawImage(g, t === 1 ? -m : 0, e === 1 ? -h : 0), n.restore();
2466
- x = e;
2467
- }
2468
- let S = t.createPattern(x, "repeat");
2469
- return !S || typeof S.setTransform != "function" ? null : (S.setTransform({
2470
- a: d / m,
2471
- b: 0,
2472
- c: 0,
2473
- d: f / h,
2474
- e: l,
2475
- f: u
2476
- }), S);
2477
- }
2478
- function Y(e, t = 1) {
2479
- let n = e.charCodeAt(0) === 35 ? e.slice(1) : e;
2480
- 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})`;
2481
- }
2482
- function In(e) {
2483
- let t = e.charCodeAt(0) === 35 ? e.slice(1) : e, n = parseInt(t.slice(0, 2), 16), r = parseInt(t.slice(2, 4), 16), i = parseInt(t.slice(4, 6), 16);
2484
- return .299 * n + .587 * r + .114 * i;
2485
- }
2486
- function Ln(e) {
2487
- return e && In(e) < 128 ? "#FFFFFF" : "#000000";
2488
- }
2489
- function X(e, t, n, r, i, a, o = 0) {
2490
- if (!e || e.fillType === "none") return null;
2491
- if (e.fillType === "solid") return Y(e.color);
2492
- if (e.fillType === "pattern") return zn(e, t);
2493
- if (e.fillType === "gradient") {
2494
- let s = e.stops;
2495
- if (s.length === 0) return null;
2496
- if (s.length === 1) return Y(s[0].color);
2497
- let c = Fn(e, t, n, r, i, a, o);
2498
- if (c) return c;
2499
- let l, u = e.tileRect, d = n + i * (u?.l ?? 0), f = r + a * (u?.t ?? 0), p = i * (1 - (u?.l ?? 0) - (u?.r ?? 0)), m = a * (1 - (u?.t ?? 0) - (u?.b ?? 0));
2500
- if (e.gradType === "radial") {
2501
- let n = e.fillToRect, r = d + p * (n?.l ?? 0), i = f + m * (n?.t ?? 0), a = p * (1 - (n?.l ?? 0) - (n?.r ?? 0)), o = m * (1 - (n?.t ?? 0) - (n?.b ?? 0)), s = r + a / 2, c = i + o / 2, u = Math.max(Math.abs(s - d), Math.abs(d + p - s)), h = Math.max(Math.abs(c - f), Math.abs(f + m - c)), g = e.path === "rect" ? Math.max(u, h) : Math.sqrt(u * u + h * h);
2502
- l = t.createRadialGradient(s, c, 0, s, c, Math.max(g, 1e-9));
2503
- } else {
2504
- let n = (e.rotWithShape === !1 ? e.angle - o : e.angle) * Math.PI / 180, r = Math.cos(n), i = Math.sin(n);
2505
- if (e.scaled === !0) {
2506
- r *= p, i *= m;
2507
- let e = Math.hypot(r, i);
2508
- e > 0 && (r /= e, i /= e);
2509
- }
2510
- let a = d + p / 2, s = f + m / 2, c = (Math.abs(r) * p + Math.abs(i) * m) / 2;
2511
- l = t.createLinearGradient(a - r * c, s - i * c, a + r * c, s + i * c);
2512
- }
2513
- for (let e of s) l.addColorStop(Math.min(1, Math.max(0, e.position)), Y(e.color));
2514
- return l;
2515
- }
2516
- return null;
2517
- }
2518
- var Rn = /* @__PURE__ */ new WeakMap();
2519
- function zn(e, t) {
2520
- let n = `${e.preset}|${e.fg}|${e.bg}`, r = Rn.get(t);
2521
- r || (r = /* @__PURE__ */ new Map(), Rn.set(t, r));
2522
- let i = r.get(n);
2523
- if (i) return i;
2524
- let a = Sn(e.preset, e.fg, e.bg);
2525
- if (!a) return Y(e.fg);
2526
- let o = t.createPattern(a, "repeat");
2527
- return o ? (r.set(n, o), o) : Y(e.fg);
2528
- }
2529
- function Bn(e, t, n) {
2530
- if (!t) {
2531
- e.strokeStyle = "transparent", e.lineWidth = 0, e.setLineDash([]), e.lineCap = "butt", e.lineJoin = "miter", e.miterLimit = 10;
2532
- return;
2533
- }
2534
- e.strokeStyle = Y(t.color);
2535
- let r = Math.max(.5, t.width * n);
2536
- e.lineWidth = r;
2537
- let i = t.customDash == null ? t.dashStyle ? jn(t.dashStyle, r) : [] : J(t.customDash, null, r), a = t.lineCap ?? "butt", o = i.some((e, t) => t % 2 == 0 && e === 0);
2538
- e.lineCap = a === "butt" && o ? "square" : a, e.lineJoin = t.lineJoin ?? "miter", e.miterLimit = t.miterLimit ?? 10, e.setLineDash(i);
2539
- }
2540
- //#endregion
2541
- //#region packages/core/src/chart/compound-frame.ts
2542
- function Vn(e, t) {
2543
- if (!Number.isFinite(e) || e <= 0) return [];
2544
- let n = t === "dbl" ? [
2545
- 1,
2546
- 1,
2547
- 1
2548
- ] : t === "thinThick" ? [
2549
- 1,
2550
- 1,
2551
- 3
2552
- ] : t === "thickThin" ? [
2553
- 3,
2554
- 1,
2555
- 1
2556
- ] : t === "tri" ? [
2557
- 1,
2558
- 1,
2559
- 2,
2560
- 1,
2561
- 1
2562
- ] : [1], r = e / n.reduce((e, t) => e + t, 0), i = [], a = 0;
2563
- for (let e = 0; e < n.length; e += 2) {
2564
- let t = n[e] * r;
2565
- i.push({
2566
- center: a + t / 2,
2567
- width: t
2568
- }), a += t + (n[e + 1] ?? 0) * r;
2569
- }
2570
- return i;
2571
- }
2572
- function Hn(e, t, n, r, i, a) {
2573
- let o = Math.max(0, Math.min(a, r / 2, i / 2));
2574
- e.beginPath(), e.moveTo(t + o, n), e.lineTo(t + r - o, n), e.quadraticCurveTo(t + r, n, t + r, n + o), e.lineTo(t + r, n + i - o), e.quadraticCurveTo(t + r, n + i, t + r - o, n + i), e.lineTo(t + o, n + i), e.quadraticCurveTo(t, n + i, t, n + i - o), e.lineTo(t, n + o), e.quadraticCurveTo(t, n, t + o, n), e.closePath();
2575
- }
2576
- function Un(e, t, n, r, i, a, o, s = 0) {
2577
- if (r > 0 && i > 0) for (let c of Vn(a, o)) {
2578
- let a = Math.max(0, r - c.center * 2), o = Math.max(0, i - c.center * 2);
2579
- a > 0 && o > 0 && (e.lineWidth = c.width, s > 0 ? (Hn(e, t + c.center, n + c.center, a, o, Math.max(0, s - c.center)), e.stroke()) : e.strokeRect(t + c.center, n + c.center, a, o));
2580
- }
2581
- }
2582
- //#endregion
2583
- //#region packages/core/src/chart/axis-style.ts
2584
- function Z(e, t) {
2585
- return e ? Math.max(.5, e / i) * t : 1;
2586
- }
2587
- function Wn(e, t, n) {
2588
- return {
2589
- color: e ? `#${e}` : "#aaa",
2590
- width: Z(t, n)
2591
- };
2592
- }
2593
- function Gn(e, t, n) {
2594
- return {
2595
- color: e ? `#${e}` : "#e0e0e0",
2596
- width: t ? Z(t, n) : .5
2597
- };
2598
- }
2599
- function Kn(e) {
2600
- return e.catAxisCrossBetween !== "midCat";
2601
- }
2602
- //#endregion
2603
- //#region packages/core/src/excel-date.ts
2604
- var Q = 864e5, qn = Date.UTC(1899, 11, 30), Jn = Date.UTC(1904, 0, 1);
2605
- function $(e, t = !1) {
2606
- if (t) return new Date(Jn + e * Q);
2607
- let n = e < 60 ? e + 1 : e;
2608
- return new Date(qn + n * Q);
2609
- }
2610
- function Yn(e, t = !1) {
2611
- if (t) return (e.getTime() - Jn) / Q;
2612
- let n = (e.getTime() - qn) / Q;
2613
- return n <= 60 ? n - 1 : n;
2614
- }
2615
- //#endregion
2616
- //#region packages/core/src/text/round-decimal.ts
2617
- function Xn(e, t) {
2618
- if (!Number.isFinite(e)) return String(e);
2619
- let n = Math.max(0, Math.trunc(t)), r = e < 0, [i, a = ""] = Zn(Math.abs(e).toString()).split("."), o = a.padEnd(n + 1, "0"), s = o.slice(0, n), c = o.charCodeAt(n) - 48, l = (i + s).split("").map((e) => e.charCodeAt(0) - 48);
2620
- if (c >= 5) {
2621
- let e = l.length - 1;
2622
- for (; e >= 0; e--) if (l[e] === 9) l[e] = 0;
2623
- else {
2624
- l[e] += 1;
2625
- break;
2626
- }
2627
- e < 0 && l.unshift(1);
2628
- }
2629
- let u = l.map((e) => String(e)).join(""), d = n, f = (d > 0 ? u.slice(0, u.length - d) : u) || "0", p = d > 0 ? u.slice(u.length - d) : "", m = f.replace(/^0+(?=\d)/, ""), h = p.length > 0 ? `${m}.${p}` : m, g = /^[0.]*$/.test(h) && !/[1-9]/.test(h);
2630
- return r && !g ? `-${h}` : h;
2631
- }
2632
- function Zn(e) {
2633
- let t = /^(\d+)(?:\.(\d+))?[eE]([+-]?\d+)$/.exec(e);
2634
- if (!t) return e;
2635
- let [, n, r = "", i] = t, a = parseInt(i, 10), o = n + r, s = n.length + a;
2636
- return s <= 0 ? "0." + "0".repeat(-s) + o : s >= o.length ? o + "0".repeat(s - o.length) : o.slice(0, s) + "." + o.slice(s);
2637
- }
2638
- //#endregion
2639
- //#region packages/core/src/chart/chart-number-format.ts
2640
- var Qn = /* @__PURE__ */ new Map();
2641
- function $n(e, t = !1, n = typeof navigator > "u" ? void 0 : navigator.language) {
2642
- let r = n ?? "", i = Qn.get(r);
2643
- return i || (i = new Intl.DateTimeFormat(n, {
2644
- year: "numeric",
2645
- month: "numeric",
2646
- day: "numeric",
2647
- timeZone: "UTC"
2648
- }), Qn.set(r, i)), i.format($(e, t));
2649
- }
2650
- function er(e) {
2651
- return Number.isInteger(e) ? String(e) : Xn(e, 6).replace(/\.?0+$/, "");
2652
- }
2653
- function tr(e, t, n = !1) {
2654
- if (!t || t.trim().toLowerCase() === "general") return er(e);
2655
- if (rr(t)) return ir(e, t, n);
2656
- let r = ar(t), i;
2657
- return i = e > 0 ? r[0] ?? t : e < 0 ? r[1] ?? r[0] ?? t : r[2] ?? r[0] ?? t, i === "" ? "" : (e < 0 && r.length < 2 ? "-" : "") + or(Math.abs(e), i);
2658
- }
2659
- function nr(e, t, n = !1) {
2660
- if (!t || e.trim() === "") return e;
2661
- let r = Number(e);
2662
- return Number.isFinite(r) ? tr(r, t, n) : e;
2663
- }
2664
- function rr(e) {
2665
- let t = !1;
2666
- for (let n = 0; n < e.length; n++) {
2667
- let r = e[n];
2668
- if (r === "\"") {
2669
- t = !t;
2670
- continue;
2671
- }
2672
- if (!t) {
2673
- if (r === "\\") {
2674
- n++;
2675
- continue;
2676
- }
2677
- if (r === "[") {
2678
- for (; n < e.length && e[n] !== "]";) n++;
2679
- continue;
2680
- }
2681
- if (r === "y" || r === "Y" || r === "d" || r === "D" || r === "m" || r === "M" || r === "h" || r === "H" || r === "s" || r === "S") return !0;
2682
- }
2683
- }
2684
- return !1;
2685
- }
2686
- function ir(e, t, n = !1) {
2687
- let r = $(Math.floor(e), n), i = r.getUTCFullYear(), a = r.getUTCMonth() + 1, o = r.getUTCDate(), s = (e - Math.floor(e)) * 86400, c = Math.floor(s / 3600), l = Math.floor(s % 3600 / 60), u = Math.floor(s % 60), d = "", f = !1, p = 0;
2688
- for (; p < t.length;) {
2689
- let e = t[p];
2690
- if (e === "\"") {
2691
- f = !f, p++;
2692
- continue;
2693
- }
2694
- if (f) {
2695
- d += e, p++;
2696
- continue;
2697
- }
2698
- if (e === "\\" && p + 1 < t.length) {
2699
- d += t[p + 1], p += 2;
2700
- continue;
2701
- }
2702
- if (e === "[") {
2703
- for (; p < t.length && t[p] !== "]";) p++;
2704
- p < t.length && p++;
2705
- continue;
2706
- }
2707
- if (e === "y" || e === "Y") {
2708
- let e = 0;
2709
- for (; p < t.length && (t[p] === "y" || t[p] === "Y");) e++, p++;
2710
- d += e >= 3 ? String(i) : String(i % 100).padStart(2, "0");
2711
- continue;
2712
- }
2713
- if (e === "m" || e === "M") {
2714
- let e = 0;
2715
- for (; p < t.length && (t[p] === "m" || t[p] === "M");) e++, p++;
2716
- if (d.match(/[Hh]+\W*$/)) d += e >= 2 ? String(l).padStart(2, "0") : String(l);
2717
- else {
2718
- let t = [
2719
- "Jan",
2720
- "Feb",
2721
- "Mar",
2722
- "Apr",
2723
- "May",
2724
- "Jun",
2725
- "Jul",
2726
- "Aug",
2727
- "Sep",
2728
- "Oct",
2729
- "Nov",
2730
- "Dec"
2731
- ], n = [
2732
- "January",
2733
- "February",
2734
- "March",
2735
- "April",
2736
- "May",
2737
- "June",
2738
- "July",
2739
- "August",
2740
- "September",
2741
- "October",
2742
- "November",
2743
- "December"
2744
- ];
2745
- d += e >= 5 ? n[a - 1][0] : e === 4 ? n[a - 1] : e === 3 ? t[a - 1] : e === 2 ? String(a).padStart(2, "0") : String(a);
2746
- }
2747
- continue;
2748
- }
2749
- if (e === "d" || e === "D") {
2750
- let e = 0;
2751
- for (; p < t.length && (t[p] === "d" || t[p] === "D");) e++, p++;
2752
- d += e >= 2 ? String(o).padStart(2, "0") : String(o);
2753
- continue;
2754
- }
2755
- if (e === "h" || e === "H") {
2756
- let e = 0;
2757
- for (; p < t.length && (t[p] === "h" || t[p] === "H");) e++, p++;
2758
- d += e >= 2 ? String(c).padStart(2, "0") : String(c);
2759
- continue;
2760
- }
2761
- if (e === "s" || e === "S") {
2762
- let e = 0;
2763
- for (; p < t.length && (t[p] === "s" || t[p] === "S");) e++, p++;
2764
- d += e >= 2 ? String(u).padStart(2, "0") : String(u);
2765
- continue;
2766
- }
2767
- d += e, p++;
2768
- }
2769
- return d;
2770
- }
2771
- function ar(e) {
2772
- let t = [], n = "";
2773
- for (let r = 0; r < e.length; r++) {
2774
- let i = e[r];
2775
- if (i === "\\" && r + 1 < e.length) {
2776
- n += i + e[r + 1], r++;
2777
- continue;
2778
- }
2779
- if (i === "\"") {
2780
- for (n += i, r++; r < e.length && e[r] !== "\"";) n += e[r], r++;
2781
- r < e.length && (n += e[r]);
2782
- continue;
2783
- }
2784
- if (i === "[") {
2785
- for (n += i, r++; r < e.length && e[r] !== "]";) n += e[r], r++;
2786
- r < e.length && (n += e[r]);
2787
- continue;
2788
- }
2789
- if (i === ";") {
2790
- t.push(n), n = "";
2791
- continue;
2792
- }
2793
- n += i;
2794
- }
2795
- return t.push(n), t;
2796
- }
2797
- function or(e, t) {
2798
- let n = [], r = 0, i = !1, a = !1;
2799
- for (; r < t.length;) {
2800
- let e = t[r];
2801
- if (e === "\"") {
2802
- r++;
2803
- let e = "";
2804
- for (; r < t.length && t[r] !== "\"";) e += t[r], r++;
2805
- r < t.length && r++, n.push({
2806
- kind: "lit",
2807
- text: e
2808
- });
2809
- continue;
2810
- }
2811
- if (e === "\\" && r + 1 < t.length) {
2812
- n.push({
2813
- kind: "lit",
2814
- text: t[r + 1]
2815
- }), r += 2;
2816
- continue;
2817
- }
2818
- if (e === "_" && r + 1 < t.length) {
2819
- n.push({
2820
- kind: "lit",
2821
- text: " "
2822
- }), r += 2;
2823
- continue;
2824
- }
2825
- if (e === "*" && r + 1 < t.length) {
2826
- r += 2;
2827
- continue;
2828
- }
2829
- if (e === "[") {
2830
- for (r++; r < t.length && t[r] !== "]";) r++;
2831
- r < t.length && r++;
2832
- continue;
2833
- }
2834
- if (e === "%") {
2835
- a = !0, n.push({
2836
- kind: "lit",
2837
- text: "%"
2838
- }), r++;
2839
- continue;
2840
- }
2841
- if (e === "#" || e === "0" || e === "." || e === "," || e === "?") {
2842
- let e = "";
2843
- for (; r < t.length && (t[r] === "#" || t[r] === "0" || t[r] === "." || t[r] === "," || t[r] === "?");) e += t[r], r++;
2844
- n.push({
2845
- kind: "num",
2846
- text: e
2847
- }), i = !0;
2848
- continue;
2849
- }
2850
- n.push({
2851
- kind: "lit",
2852
- text: e
2853
- }), r++;
2854
- }
2855
- if (!i) return n.map((e) => e.text).join("");
2856
- let o = a ? e * 100 : e, s = "";
2857
- for (let e of n) e.kind === "num" && (s += e.text);
2858
- let c = sr(o, s), l = !1;
2859
- return n.map((e) => e.kind === "lit" ? e.text : l ? "" : (l = !0, c)).join("");
2860
- }
2861
- function sr(e, t) {
2862
- 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 = ""] = Xn(e, o).split("."), u = c.padStart(s, "0"), d = a ? u.replace(/\B(?=(\d{3})+(?!\d))/g, ",") : u;
2863
- return o === 0 ? d : `${d}.${l.padEnd(o, "0")}`;
2864
- }
2865
- //#endregion
2866
- //#region packages/core/src/chart/legend-frame.ts
2867
- function cr(e, t, n, r, i = 0) {
2868
- if (!((!t.legendFill && !t.legendFillColor || t.legendFillHidden === !0) && (!t.legendLineFill && !t.legendLineColor || t.legendLineHidden === !0))) {
2869
- if (e.save(), t.legendFillHidden !== !0 && (t.legendFill || t.legendFillColor)) {
2870
- let r = t.legendFill ? X(t.legendFill, e, n.x, n.y, n.w, n.h, i) : `#${t.legendFillColor}`;
2871
- r && (e.fillStyle = r), r && e.fillRect(n.x, n.y, n.w, n.h);
2872
- }
2873
- if (t.legendLineHidden !== !0 && (t.legendLineFill || t.legendLineColor) && n.w > 0 && n.h > 0) {
2874
- let a = Z(t.legendLineWidthEmu, r), o = t.legendLineFill ? X(t.legendLineFill, e, n.x, n.y, n.w, n.h, i) : t.legendLineColor ? `#${t.legendLineColor}` : null;
2875
- if (!o) {
2876
- e.restore();
2877
- return;
2878
- }
2879
- e.strokeStyle = o, e.lineCap = t.legendLineCap === "rnd" ? "round" : t.legendLineCap === "sq" ? "square" : "butt", e.lineJoin = t.legendLineJoin === "round" || t.legendLineJoin === "bevel" ? t.legendLineJoin : "miter", e.setLineDash(J(t.legendLineCustomDash, t.legendLineDash, a)), Un(e, n.x, n.y, n.w, n.h, a, t.legendLineCompound);
2880
- }
2881
- e.restore();
2882
- }
2883
- }
2884
- //#endregion
2885
- //#region packages/core/src/chart/plot-area-frame.ts
2886
- function lr(e, t, n, r, a, o, s, c = 0) {
2887
- if (t.plotAreaFillHidden !== !0) if (t.plotAreaFill?.fillType === "image") bn(e, t.plotAreaFill, n, r, a, o, s, c);
2888
- else {
2889
- let i = t.plotAreaFill ? X(t.plotAreaFill, e, n, r, a, o, c) : t.plotAreaBg ? `#${t.plotAreaBg}` : null;
2890
- i && (e.fillStyle = i, e.fillRect(n, r, a, o));
2891
- }
2892
- if (t.plotAreaLineHidden === !0 || !t.plotAreaLineFill && !t.plotAreaLineColor) return;
2893
- let l = t.plotAreaLineWidthEmu ? Math.max(.5, t.plotAreaLineWidthEmu / i) * s : 1;
2894
- e.save();
2895
- let u = t.plotAreaLineFill ? X(t.plotAreaLineFill, e, n, r, a, o, c) : t.plotAreaLineColor ? `#${t.plotAreaLineColor}` : null;
2896
- if (!u) {
2897
- e.restore();
2898
- return;
2899
- }
2900
- e.strokeStyle = u, e.setLineDash(J(t.plotAreaLineCustomDash, t.plotAreaLineDash, l)), e.lineCap = t.plotAreaLineCap === "rnd" ? "round" : t.plotAreaLineCap === "sq" ? "square" : "butt", e.lineJoin = t.plotAreaLineJoin === "round" || t.plotAreaLineJoin === "bevel" ? t.plotAreaLineJoin : "miter", Un(e, n, r, a, o, l, t.plotAreaLineCompound), e.restore();
2901
- }
2902
- //#endregion
2903
- export { zt as $, Me as $t, vn as A, Ze as At, R as B, Re as Bt, Dn as C, dt as Ct, mn as D, ct as Dt, ln as E, gt as Et, B as F, qe as Ft, qt as G, Ne as Gt, z as H, N as Ht, Qt as I, Je as It, I as J, ke as Jt, Gt as K, $e as Kt, Zt as L, Ye as Lt, bn as M, Ue as Mt, rn as N, He as Nt, un as O, lt as Ot, tn as P, Ve as Pt, Vt as Q, Oe as Qt, $t as R, We as Rt, Nn as S, ut as St, pn as T, ht as Tt, Yt as U, Le as Ut, Jt as V, Qe as Vt, Xt as W, et as Wt, It as X, De as Xt, Lt as Y, je as Yt, Ft as Z, Ae as Zt, Y as _, Mt as _t, tr as a, A as an, yt as at, J as b, ft as bt, $ as c, C as cn, jt as ct, Kn as d, _e as dn, P as dt, Ee as en, Bt as et, Wn as f, ge as fn, Dt as ft, Ln as g, c as gn, Nt as gt, Bn as h, s as hn, Ot as ht, er as i, j as in, wt as it, yn as j, Be as jt, dn as k, it as kt, Yn as l, x as ln, At as lt, Un as m, d as mn, bt as mt, cr as n, we as nn, Tt as nt, $n as o, be as on, kt as ot, Gn as p, p as pn, xt as pt, Kt as q, Xe as qt, nr as r, ve as rn, F as rt, Xn as s, ye as sn, Et as st, lr as t, Te as tn, Ct as tt, Z as u, b as un, Pt as ut, X as v, St as vt, U as w, _t as wt, kn as x, pt as xt, Tn as y, vt as yt, L as z, ze as zt };