@silurus/ooxml 0.80.3 → 0.82.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 (67) hide show
  1. package/README.md +61 -85
  2. package/dist/assets/render-worker-7-Zr7fSw.js +10 -0
  3. package/dist/assets/render-worker-B5gsW6b5.js +11 -0
  4. package/dist/assets/render-worker-Dw_wQRIh.js +24 -0
  5. package/dist/{canvas-viewer-mechanics-D-r6wHY_.js → canvas-viewer-mechanics-CS_qbr6T.js} +1 -1
  6. package/dist/chart-ex.mjs +1017 -0
  7. package/dist/comment-occurrence-C34fWs_F.js +6 -0
  8. package/dist/comment-ui-runtime-BAe30Ct9.js +112 -0
  9. package/dist/comment-ui-runtime-BUCj4hWn.js +171 -0
  10. package/dist/comment-ui-runtime-F4a3te6p.js +2 -0
  11. package/dist/comments-Cf9W7r3M.js +241 -0
  12. package/dist/{document-pull-client-vxk-Aomu.js → document-pull-client-BCgmytqI.js} +4682 -4541
  13. package/dist/docx-wokGKYfi.js +2162 -0
  14. package/dist/docx.mjs +6 -4
  15. package/dist/docx_parser_bg.wasm +0 -0
  16. package/dist/dom-interaction-boundary-C8F6HO5x.js +119 -0
  17. package/dist/highlight-rect-MaCt0om0.js +13 -0
  18. package/dist/index.mjs +3 -3
  19. package/dist/{line-distribute-Bvtp0Gt6.js → line-distribute-iXsUCIH-.js} +17 -16
  20. package/dist/{line-metrics-DdEJYxjx.js → line-metrics-B3syvDn2.js} +667 -7492
  21. package/dist/math.mjs +2 -2
  22. package/dist/node.mjs +248 -247
  23. package/dist/plot-area-frame-DHV02PJU.js +3670 -0
  24. package/dist/pptx-DU8L8I2T.js +2432 -0
  25. package/dist/pptx.mjs +6 -5
  26. package/dist/pptx_parser_bg.wasm +0 -0
  27. package/dist/read-only-comment-decoration-DcFevX_Q.js +96 -0
  28. package/dist/read-only-comment-margin-Dn2y55W6.js +189 -0
  29. package/dist/region-map.mjs +102 -97
  30. package/dist/{render-CoqMHcbF.js → render-CenWM4g1.js} +1 -1
  31. package/dist/{render-worker-host-IuQFpoJM.js → render-worker-host-BNENN3qP.js} +1 -1
  32. package/dist/{render-worker-host-CYPhmBtX.js → render-worker-host-BmH3kGSj.js} +1 -1
  33. package/dist/{render-worker-host-GlLR1rtF.js → render-worker-host-CmPBviYJ.js} +1 -1
  34. package/dist/renderer-CYr9YTXM.js +5856 -0
  35. package/dist/{renderer-module-contract-BNGz8HvO.js → renderer-module-contract-DLbb7zY0.js} +4 -3
  36. package/dist/{resource-measurement-CgMubiAI.js → resource-measurement-CsW4_eYt.js} +12 -11
  37. package/dist/{session-DkPblDiq.js → session-Cky_swUj.js} +8 -8
  38. package/dist/{slide-pull-client-m2blvngt.js → slide-pull-client-CqTVFb3W.js} +1004 -1091
  39. package/dist/source-key-BklvnEyQ.js +42 -0
  40. package/dist/three-d-7MaVzQuZ.js +1346 -0
  41. package/dist/three-d.mjs +1238 -797
  42. package/dist/types/chart-ex.d.ts +949 -0
  43. package/dist/types/docx.d.ts +497 -28
  44. package/dist/types/index.d.ts +649 -39
  45. package/dist/types/math.d.ts +1 -1
  46. package/dist/types/node.d.ts +385 -22
  47. package/dist/types/pptx.d.ts +435 -24
  48. package/dist/types/region-map.d.ts +318 -6
  49. package/dist/types/three-d.d.ts +318 -6
  50. package/dist/types/xlsx.d.ts +384 -19
  51. package/dist/units-BzZ0gAxs.js +4 -0
  52. package/dist/{worksheet-pull-client-BntP6RiO.js → worksheet-pull-client-CYtwXP5D.js} +19 -19
  53. package/dist/{xlsx-DqMe7J2C.js → xlsx-DlV37-0j.js} +1594 -1349
  54. package/dist/xlsx.mjs +6 -5
  55. package/dist/xlsx_parser_bg.wasm +0 -0
  56. package/package.json +7 -1
  57. package/dist/assets/render-worker-CRaEOHkw.js +0 -9
  58. package/dist/assets/render-worker-DQGLj5Zv.js +0 -22
  59. package/dist/assets/render-worker-rnrSLmqL.js +0 -8
  60. package/dist/chart-number-format-qLhnk6hj.js +0 -475
  61. package/dist/docx-DN0PRx2f.js +0 -1733
  62. package/dist/highlight-rect-BuX5rWP4.js +0 -48
  63. package/dist/pptx-B-Laftl1.js +0 -2134
  64. package/dist/three-d-C28kqDym.js +0 -1086
  65. /package/dist/{mathjax-DgAl7Yi5.js → mathjax-DwIrafQ6.js} +0 -0
  66. /package/dist/{transfer-CKZ79zFw.js → transfer-R6NjgBKD.js} +0 -0
  67. /package/dist/{visible-index-BjesVGhg.js → visible-index-BFE3PWiY.js} +0 -0
@@ -1,1086 +0,0 @@
1
- import { C as e, r as t, y as n } from "./chart-number-format-qLhnk6hj.js";
2
- //#region packages/core/src/chart/axis-scale.ts
3
- function r(e, t = {
4
- min: 0,
5
- max: 1
6
- }) {
7
- let n = Infinity, r = -Infinity;
8
- for (let t of e) t == null || !Number.isFinite(t) || (t < n && (n = t), t > r && (r = t));
9
- return Number.isFinite(n) && Number.isFinite(r) ? {
10
- min: n,
11
- max: r
12
- } : t;
13
- }
14
- function i(e, t = 5) {
15
- if (e === 0) return 1;
16
- let n = e / t, r = 10 ** Math.floor(Math.log10(n)), i = n / r;
17
- return (i < 1.5 ? 1 : i < 3.5 ? 2 : i < 7.5 ? 5 : 10) * r;
18
- }
19
- function a(e, t, n, r) {
20
- let i = Number.isFinite(e) ? e : 0, a = Number.isFinite(t) ? t : 100, o = a > i ? a - i : 100, s = i < 0 && a > 0, l = n === "horizontal" || r == null || !Number.isFinite(r) || r < 120 ? s ? 4 : 5 : 10;
21
- return c(a > i ? d(i, a, l) : o / l);
22
- }
23
- function o(e, t, n) {
24
- let r = Number.isFinite(e) ? e : 0, i = Number.isFinite(t) ? t : 1, a = i > r ? null : 1, o = n != null && Number.isFinite(n) ? n < 45 ? 4 : n < 90 ? 8 : 10 : 8;
25
- return c(i > r ? d(r, i, o) : (a ?? 1) / o);
26
- }
27
- function s(e, t, n) {
28
- let r = Number.isFinite(e) ? e : 0, i = Number.isFinite(t) ? t : 1;
29
- return c((i > r ? i - r : 1) / (n != null && Number.isFinite(n) && n > 0 ? Math.max(5, Math.round(n / 28)) : 5));
30
- }
31
- function c(e) {
32
- if (!(e > 0) || !isFinite(e)) return 1;
33
- let t = 10 ** Math.floor(Math.log10(e));
34
- if (!(t > 0) || !isFinite(t)) return e;
35
- let n = e / t, r = n <= 1 ? 1 : n <= 2 ? 2 : n <= 5 ? 5 : 10;
36
- return Math.min(Number.MAX_VALUE, r * t);
37
- }
38
- function l(e) {
39
- return e != null && isFinite(e) ? e : null;
40
- }
41
- function u(e) {
42
- return e != null && isFinite(e) && e > 0 ? e : null;
43
- }
44
- function d(e, t, n) {
45
- let r = t - e, i = isFinite(r) ? r / n : t / n - e / n;
46
- return i > 0 && isFinite(i) ? i : r > 0 && isFinite(r) ? Number.MIN_VALUE : Number.MAX_VALUE;
47
- }
48
- function f(e, t, n) {
49
- if (!isFinite(e) || !isFinite(t) || !(t >= e) || !(n > 0) || !isFinite(n)) return 0;
50
- let r = t - e, i = isFinite(r) ? r / n : t / n - e / n;
51
- return !isFinite(i) || i > 2 ** 53 - 1 ? Infinity : Math.max(1, Math.floor(i + 1e-9) + 1);
52
- }
53
- function p(e, t, n, r, i) {
54
- let a = f(e, t, n);
55
- if (a === 0 || a > 512 && r === "skip") return [];
56
- let o = Math.min(a, 512), s = [], c = t - e, l = Math.max(Math.abs(n), isFinite(c) ? Math.abs(c) : Math.max(Math.abs(e), Math.abs(t))) * 1e-9, u = -Infinity;
57
- for (let r = 0; r < o; r++) {
58
- let a = r * n, o = e + a;
59
- if ((!isFinite(a) || !isFinite(o) || r > 0 && !(o > u)) && (o = (e / n + r) * n), !isFinite(o) || o > t + l || r > 0 && !(o > u)) break;
60
- if (u = o, i != null) {
61
- if (o >= t - l) break;
62
- let n = o - e, r = isFinite(n) ? n / i : o / i - e / i;
63
- if (isFinite(r) && Math.abs(r - Math.round(r)) <= 1e-8) continue;
64
- }
65
- s.push(o);
66
- }
67
- return s;
68
- }
69
- function m(e) {
70
- let t = isFinite(e.dataMin) ? e.dataMin : 0, n = isFinite(e.dataMax) ? e.dataMax : 1;
71
- t > n && ([t, n] = [n, t]);
72
- let r, a, o;
73
- if (t === 0 && n === 0) r = 0, a = 1, o = .1;
74
- else {
75
- t === n && (t = Math.min(0, t), n = Math.max(0, n));
76
- let e = t >= 0 && (t === 0 || n > 1.2 * t), i = n <= 0 && (n === 0 || Math.abs(t) > 1.2 * Math.abs(n)), s = e ? 0 : t, l = i ? 0 : n, u = l - s, d = isFinite(u) ? u * .05 : l * .05 - s * .05, f = e ? 0 : t - d, p = i ? 0 : n + d;
77
- o = c(p / 10 - f / 10), r = Math.floor(f / o) * o, a = Math.ceil(p / o) * o, (!isFinite(r) || !isFinite(a) || !(a > r)) && (r = Math.min(t, 0), a = Math.max(n, r + o));
78
- }
79
- let s = l(e.explicitMin), m = l(e.explicitMax), h = u(e.majorUnit), g = s ?? (h == null ? r : Math.floor(r / h) * h), _ = m ?? (h == null ? a : Math.ceil(a / h) * h), v = o;
80
- if (h == null && s != null && m != null && m > s) {
81
- if (e.axisOrientation === "horizontal") v = c(d(s, m, e.axisLenPt != null && isFinite(e.axisLenPt) && e.axisLenPt > 0 ? Math.max(5, Math.round(e.axisLenPt / 38)) : 8));
82
- else if (e.axisOrientation === "vertical") {
83
- let t = e.axisLenPt != null && isFinite(e.axisLenPt) && e.axisLenPt > 0 ? Math.max(5, Math.round(e.axisLenPt / 28)) : 7;
84
- v = Math.max(c(d(s, m, 10)), Math.min(Number.MAX_VALUE, i(d(s, m, t), 1)));
85
- }
86
- }
87
- let y = h ?? v;
88
- h == null && f(g, _, y) > 512 && (y = c(_ / 511 - g / 511));
89
- let b = u(e.minorUnit);
90
- e.needMinor && h == null && b == null && f(g, _, y / 5) > 512 && (y = c(_ / 102 - g / 102));
91
- let x = y / 5, S = e.needMinor ? b ?? (x > 0 && isFinite(x) ? x : y) : null, C = p(g, _, y, h == null ? "skip" : "truncate"), w = S == null ? [] : p(g, _, S, "skip", y);
92
- return {
93
- min: g,
94
- max: _,
95
- majorUnit: y,
96
- minorUnit: S,
97
- majorTicks: C,
98
- minorTicks: w
99
- };
100
- }
101
- function h(e, t, n, r) {
102
- let i, a = r?.logBase;
103
- if (a != null && isFinite(a) && a >= 2 && t > 0 && n > 0) {
104
- let r = Math.log(t), a = Math.log(n) - r;
105
- i = a === 0 ? 0 : (Math.log(Math.max(e, Number.MIN_VALUE)) - r) / a;
106
- } else {
107
- let r = n - t;
108
- if (r === 0) i = 0;
109
- else if (Number.isFinite(r) && Number.isFinite(e - t)) i = (e - t) / r;
110
- else {
111
- let r = Math.max(Math.abs(e), Math.abs(t), Math.abs(n)), a = n / r - t / r;
112
- i = a === 0 ? 0 : (e / r - t / r) / a;
113
- }
114
- }
115
- return r?.reversed ? 1 - i : i;
116
- }
117
- function g(e, t, n, r, i) {
118
- let a = isFinite(n) && n >= 2 ? n : 10, o = (e) => Math.log(e) / Math.log(a), s = t > 0 ? t : 1, c = Math.floor(o(e > 0 ? e : s)), l = Math.ceil(o(s)), u = (e) => {
119
- let t = a ** +e;
120
- return t === 0 ? Number.MIN_VALUE : isFinite(t) ? t : Number.MAX_VALUE;
121
- }, d = r ?? u(c), f = i ?? u(Math.max(l, c + 1)), p = [], m = Math.ceil(o(d) - 1e-9), h = Math.floor(o(f) + 1e-9);
122
- if (!isFinite(m) || !isFinite(h) || h < m) return {
123
- min: d,
124
- max: f,
125
- lines: p
126
- };
127
- let g = h - m + 1, _ = Math.max(1, Math.ceil((g - 1) / 511)), v = Math.min(512, Math.floor((g - 1) / _) + 1);
128
- for (let e = 0; e < v; e++) {
129
- let t = u(m + e * _);
130
- t >= d && t <= f && (p.length === 0 || t > p[p.length - 1]) && p.push(t);
131
- }
132
- let y = u(h);
133
- return p.length < 512 && y >= d && y <= f && y > (p[p.length - 1] ?? 0) && p.push(y), {
134
- min: d,
135
- max: f,
136
- lines: p
137
- };
138
- }
139
- function _(e) {
140
- let t = e.logBase;
141
- if (t != null && Number.isFinite(t) && t >= 2) {
142
- let { min: n, max: r, lines: i } = g(e.dataMin, e.dataMax, t, l(e.explicitMin), l(e.explicitMax));
143
- return {
144
- min: n,
145
- max: r,
146
- majorUnit: i.length > 1 ? i[1] - i[0] : r - n,
147
- minorUnit: null,
148
- majorTicks: i,
149
- minorTicks: [],
150
- fraction: (i) => h(i, n, r, {
151
- logBase: t,
152
- reversed: e.reversed
153
- })
154
- };
155
- }
156
- let n = m(e);
157
- return {
158
- ...n,
159
- fraction: (t) => h(t, n.min, n.max, { reversed: e.reversed })
160
- };
161
- }
162
- function v(e, t, n) {
163
- let r = Math.min(e.length, t.length);
164
- if (r < 2) return null;
165
- let i = 0, a = 0, o = 0, s = 0;
166
- for (let n = 0; n < r; n++) i += e[n], a += t[n], o += e[n] * e[n], s += e[n] * t[n];
167
- let c, l;
168
- if (n != null && isFinite(n)) c = o === 0 ? 0 : (s - n * i) / o, l = n;
169
- else {
170
- let e = r * o - i * i;
171
- c = e === 0 ? 0 : (r * s - i * a) / e, l = (a - c * i) / r;
172
- }
173
- let u = a / r, d = 0, f = 0;
174
- for (let n = 0; n < r; n++) {
175
- let r = t[n] - (c * e[n] + l);
176
- d += r * r;
177
- let i = t[n] - u;
178
- f += i * i;
179
- }
180
- let p = f === 0 ? +(d === 0) : 1 - d / f;
181
- return {
182
- slope: c,
183
- intercept: l,
184
- rSquared: p
185
- };
186
- }
187
- function y(e, t, n, r) {
188
- let i = Math.min(e.length, t.length);
189
- if (i < 2) return {
190
- xs: [],
191
- ys: []
192
- };
193
- if (n === "linear") {
194
- let n = v(e, t, r?.intercept);
195
- if (!n) return {
196
- xs: [],
197
- ys: []
198
- };
199
- let a = e[0], o = e[i - 1];
200
- return {
201
- xs: [a, o],
202
- ys: [n.slope * a + n.intercept, n.slope * o + n.intercept]
203
- };
204
- }
205
- if (n === "movingAvg") {
206
- let n = Math.max(2, Math.round(r?.period ?? 2));
207
- if (i < n) return {
208
- xs: [],
209
- ys: []
210
- };
211
- let a = [], o = [];
212
- for (let r = n - 1; r < i; r++) {
213
- let i = 0;
214
- for (let e = 0; e < n; e++) i += t[r - e];
215
- a.push(e[r]), o.push(i / n);
216
- }
217
- return {
218
- xs: a,
219
- ys: o
220
- };
221
- }
222
- let a = [];
223
- for (let r = 0; r < i; r++) {
224
- let i = e[r], o = t[r];
225
- !Number.isFinite(i) || !Number.isFinite(o) || n === "log" && i <= 0 || n === "exp" && o <= 0 || n === "power" && (i <= 0 || o <= 0) || a.push({
226
- x: i,
227
- y: o
228
- });
229
- }
230
- if (a.length < 2) return {
231
- xs: [],
232
- ys: []
233
- };
234
- let o = Infinity, s = -Infinity;
235
- for (let e of a) o = Math.min(o, e.x), s = Math.max(s, e.x);
236
- if (!Number.isFinite(o) || !Number.isFinite(s) || s <= o) return {
237
- xs: [],
238
- ys: []
239
- };
240
- let c = Number.isFinite(r?.backward) ? Math.max(0, r?.backward ?? 0) : 0, l = Number.isFinite(r?.forward) ? Math.max(0, r?.forward ?? 0) : 0, u = o - c, d = s + l;
241
- if ((n === "log" || n === "power") && (u = Math.max(Number.MIN_VALUE, u)), !Number.isFinite(u) || !Number.isFinite(d) || d <= u) return {
242
- xs: [],
243
- ys: []
244
- };
245
- let f = (e) => {
246
- let t = [], n = [];
247
- for (let r = 0; r <= 64; r++) {
248
- let i = r / 64, a = u * (1 - i) + d * i, o = e(a);
249
- if (!Number.isFinite(a) || !Number.isFinite(o)) return {
250
- xs: [],
251
- ys: []
252
- };
253
- t.push(a), n.push(o);
254
- }
255
- return {
256
- xs: t,
257
- ys: n
258
- };
259
- };
260
- if (n === "exp" || n === "log" || n === "power") {
261
- let e = v(a.map((e) => n === "log" || n === "power" ? Math.log(e.x) : e.x), a.map((e) => n === "exp" || n === "power" ? Math.log(e.y) : e.y));
262
- if (!e || ![e.slope, e.intercept].every(Number.isFinite)) return {
263
- xs: [],
264
- ys: []
265
- };
266
- if (n === "exp") {
267
- let t = Math.exp(e.intercept);
268
- return f((n) => t * Math.exp(e.slope * n));
269
- }
270
- if (n === "log") return f((t) => e.slope * Math.log(t) + e.intercept);
271
- let t = Math.exp(e.intercept);
272
- return f((n) => t * n ** e.slope);
273
- }
274
- if (n === "poly") {
275
- let e = Math.min(6, a.length - 1, Math.max(2, Math.round(r?.order ?? 2)));
276
- if (e < 2) return {
277
- xs: [],
278
- ys: []
279
- };
280
- let t = o / 2 + s / 2, n = Math.max(Math.abs(o - t), Math.abs(s - t));
281
- if (!Number.isFinite(t) || !Number.isFinite(n) || n <= 0) return {
282
- xs: [],
283
- ys: []
284
- };
285
- let i = a.length, c = e + 1, l = Array.from({ length: c }, () => Array(i).fill(0));
286
- for (let e = 0; e < i; e++) {
287
- let r = (a[e].x - t) / n, i = 1;
288
- for (let t = 0; t < c; t++) l[t][e] = i, i *= r;
289
- }
290
- let u = [], d = Array.from({ length: c }, () => Array(c).fill(0)), p = Array(c).fill(0);
291
- for (let e = 0; e < c; e++) {
292
- let t = l[e].slice();
293
- for (let n = 0; n < e; n++) {
294
- let r = 0;
295
- for (let e = 0; e < i; e++) r += u[n][e] * t[e];
296
- d[n][e] = r;
297
- for (let e = 0; e < i; e++) t[e] -= r * u[n][e];
298
- }
299
- let n = 0;
300
- for (let e of t) n += e * e;
301
- let r = Math.sqrt(n);
302
- if (!Number.isFinite(r) || r <= 2 ** -52 * Math.sqrt(i)) return {
303
- xs: [],
304
- ys: []
305
- };
306
- d[e][e] = r;
307
- let o = t.map((e) => e / r);
308
- u.push(o);
309
- let s = 0;
310
- for (let e = 0; e < i; e++) s += o[e] * a[e].y;
311
- if (!Number.isFinite(s)) return {
312
- xs: [],
313
- ys: []
314
- };
315
- p[e] = s;
316
- }
317
- let m = Array(c).fill(0);
318
- for (let e = c - 1; e >= 0; e--) {
319
- let t = p[e];
320
- for (let n = e + 1; n < c; n++) t -= d[e][n] * m[n];
321
- if (m[e] = t / d[e][e], !Number.isFinite(m[e])) return {
322
- xs: [],
323
- ys: []
324
- };
325
- }
326
- return f((r) => {
327
- let i = (r - t) / n, a = m[e];
328
- for (let t = e - 1; t >= 0; t--) a = a * i + m[t];
329
- return a;
330
- });
331
- }
332
- return {
333
- xs: [],
334
- ys: []
335
- };
336
- }
337
- //#endregion
338
- //#region packages/core/src/units.ts
339
- var b = 12700, x = 9525, S = 4 / 3, C = 91440, w = 45720;
340
- //#endregion
341
- //#region packages/core/src/chart/axis-style.ts
342
- function T(e, t) {
343
- return e ? Math.max(.5, e / b) * t : 1;
344
- }
345
- function ee(e, t, n) {
346
- return {
347
- color: e ? `#${e}` : "#aaa",
348
- width: T(t, n)
349
- };
350
- }
351
- function E(e, t, n) {
352
- return {
353
- color: e ? `#${e}` : "#e0e0e0",
354
- width: t ? T(t, n) : .5
355
- };
356
- }
357
- function te(e) {
358
- return e.catAxisCrossBetween !== "midCat";
359
- }
360
- //#endregion
361
- //#region packages/core/src/chart/text-elide.ts
362
- var D = "…";
363
- function O(e, t, n) {
364
- if (t === "" || n <= 0) return "";
365
- if (e.measureText(t).width <= n) return t;
366
- if (e.measureText(D).width > n) return "";
367
- let r = 0, i = t.length - 1, a = 0;
368
- for (; r <= i;) {
369
- let o = r + i >> 1;
370
- e.measureText(t.slice(0, o) + D).width <= n ? (a = o, r = o + 1) : i = o - 1;
371
- }
372
- let o = a > 0 ? t.charCodeAt(a - 1) : 0;
373
- return o >= 55296 && o <= 56319 && a--, t.slice(0, a) + D;
374
- }
375
- //#endregion
376
- //#region packages/core/src/chart/category-spacing.ts
377
- function k(e, t, n, r = !1) {
378
- 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;
379
- return r ? 1 - o : o;
380
- }
381
- function A(e, t) {
382
- return e != null && Number.isFinite(e) ? Math.max(0, Math.min(500, e)) : t === "legacy" ? 150 : 33;
383
- }
384
- //#endregion
385
- //#region packages/core/src/chart/rich-data-label.ts
386
- var j = 4096, M = 4, N = j;
387
- function ne(e, t, r, i) {
388
- let a = [[]], o = 0, s = (e) => {
389
- if (!e) return null;
390
- let t = e.startsWith("#") ? e.slice(1) : e;
391
- return /^[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$/.test(t) ? `#${t}` : null;
392
- };
393
- outer: for (let c = 0; c < t.runs.length && c < N; c++) {
394
- let l = t.runs[c], u = n(l.fontSizeHpt, t.ptToPx) ?? r, d = l.fontFace?.trim().replaceAll("\"", ""), f = d && !d.startsWith("+") ? d : null, p = d && t.fontFamilyForFace ? t.fontFamilyForFace(d) : f ? `"${f}", Calibri, Arial, sans-serif` : t.fontFamily, m = `${l.bold ?? t.fallbackBold ? "bold " : ""}${u}px ${p}`, h = s(l.color) ?? i, g = "", _ = () => {
395
- g &&= (e.font = m, a[a.length - 1].push({
396
- text: g,
397
- font: m,
398
- fillStyle: h,
399
- width: e.measureText(g).width,
400
- fontSizePx: u
401
- }), "");
402
- }, v = !1;
403
- for (let e of l.text) {
404
- if (v && e === "\n") {
405
- v = !1;
406
- continue;
407
- }
408
- v = !1;
409
- let t = e === "\r" ? "\n" : e;
410
- if (e === "\r" && (v = !0), o >= j) {
411
- _();
412
- break outer;
413
- }
414
- if (o++, t === "\n") {
415
- if (_(), a.length >= M) break outer;
416
- a.push([]);
417
- } else g += t;
418
- }
419
- _();
420
- }
421
- if (!a.some((e) => e.length > 0)) return null;
422
- let c = a.map((e) => Math.max(r, ...e.map((e) => e.fontSizePx)) * 1.15), l = a.map((e) => e.reduce((e, t) => e + t.width, 0));
423
- return {
424
- lines: a,
425
- lineHeights: c,
426
- lineWidths: l,
427
- width: Math.max(0, ...l),
428
- height: c.reduce((e, t) => e + t, 0)
429
- };
430
- }
431
- function P(e, t, n, r, i = "center", a = "middle") {
432
- let o = a === "top" ? r : a === "bottom" ? r - t.height : r - t.height / 2;
433
- for (let r = 0; r < t.lines.length; r++) {
434
- let s = t.lines[r], c = t.lineWidths[r], l = i === "left" ? n : i === "right" ? n - c : n - c / 2, u = a === "top" ? o : a === "bottom" ? o + t.lineHeights[r] : o + t.lineHeights[r] / 2;
435
- for (let t of s) e.font = t.font, e.fillStyle = t.fillStyle, e.textAlign = "left", e.textBaseline = a, e.fillText(t.text, l, u), l += t.width;
436
- o += t.lineHeights[r];
437
- }
438
- }
439
- //#endregion
440
- //#region packages/core/src/chart/data-label-content.ts
441
- function re(e) {
442
- if (e.customText) return e.customText;
443
- let n = [];
444
- if (e.showCategory && e.category && n.push(e.category), e.showSeries && e.seriesName && n.push(e.seriesName), e.showValue && e.sourceValue != null) {
445
- let r = e.valueDivisor != null && Number.isFinite(e.valueDivisor) && e.valueDivisor > 0 ? e.valueDivisor : 1;
446
- n.push(t(e.sourceValue / r, e.formatCode ?? null, e.date1904));
447
- }
448
- return e.showPercent && e.percentRatio != null && n.push(t(e.percentRatio, e.percentFormatCode ?? e.formatCode ?? "0%", e.date1904)), n.filter((e) => e !== "").join(e.separator ?? e.defaultSeparator ?? " ");
449
- }
450
- //#endregion
451
- //#region packages/core/src/chart/legend-frame.ts
452
- function F(e, t, n, r) {
453
- if (!(!t.legendFillColor && !t.legendLineColor)) {
454
- if (e.save(), t.legendFillColor && (e.fillStyle = `#${t.legendFillColor}`, e.fillRect(n.x, n.y, n.w, n.h)), t.legendLineColor && n.w > 0 && n.h > 0) {
455
- let i = T(t.legendLineWidthEmu, r);
456
- e.strokeStyle = `#${t.legendLineColor}`, e.lineWidth = i, e.lineCap = "butt", e.lineJoin = "miter", e.setLineDash([]), e.strokeRect(n.x + i / 2, n.y + i / 2, Math.max(0, n.w - i), Math.max(0, n.h - i));
457
- }
458
- e.restore();
459
- }
460
- }
461
- //#endregion
462
- //#region packages/core/src/chart/data-label-layout.ts
463
- var I = (e) => [
464
- e.x,
465
- e.y,
466
- e.w,
467
- e.h
468
- ].every(Number.isFinite) && e.w > 0 && e.h > 0;
469
- function L(e, t) {
470
- 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);
471
- return i > n && a > r ? {
472
- x: n,
473
- y: r,
474
- w: i - n,
475
- h: a - r
476
- } : null;
477
- }
478
- function R(e, t, n) {
479
- return Math.min(Math.max(e, t), n);
480
- }
481
- function z(t, n, r, i, a, o = n) {
482
- if (!I(n) || !I(o) || !Number.isFinite(i) || i <= 0 || ![r.w, r.h].every(Number.isFinite) || r.w < 0 || r.h <= 0) return null;
483
- let s = i * .5, c = n, l, u, d = !1, f = "center", p = "middle";
484
- if (t.kind === "point") {
485
- if (![
486
- t.x,
487
- t.y,
488
- t.markerGap ?? 0
489
- ].every(Number.isFinite)) return null;
490
- let e = s + Math.max(0, t.markerGap ?? 0);
491
- switch (l = t.x, u = t.y, t.position ?? "r") {
492
- case "l":
493
- l -= e + r.w / 2, f = "right";
494
- break;
495
- case "t":
496
- u -= e + r.h / 2, p = "bottom";
497
- break;
498
- case "b":
499
- u += e + r.h / 2, p = "top";
500
- break;
501
- case "ctr":
502
- case "inEnd":
503
- case "bestFit": break;
504
- default:
505
- l += e + r.w / 2, f = "left";
506
- break;
507
- }
508
- } else if (t.kind === "box") {
509
- if (![
510
- t.rect.x,
511
- t.rect.y,
512
- t.rect.w,
513
- t.rect.h
514
- ].every(Number.isFinite) || t.rect.w <= 0 || t.rect.h <= 0) return null;
515
- let e = L(t.rect, n);
516
- if (!e) return null;
517
- let i = t.position ?? "ctr";
518
- l = e.x + e.w / 2, u = e.y + e.h / 2, i === "inBase" ? (c = {
519
- x: e.x + s,
520
- y: e.y + s,
521
- w: e.w - s,
522
- h: e.h - s
523
- }, l = c.x + r.w / 2, u = c.y + r.h / 2, f = "left", p = "top") : i === "inEnd" ? (c = {
524
- x: e.x + s,
525
- y: e.y,
526
- w: e.w - s,
527
- h: e.h - s
528
- }, l = c.x + r.w / 2, u = c.y + c.h - r.h / 2, f = "left", p = "bottom") : i === "l" ? (c = {
529
- x: e.x + s,
530
- y: e.y + s,
531
- w: e.w - s,
532
- h: e.h - s * 2
533
- }, l = c.x + r.w / 2, f = "left") : i === "r" || i === "outEnd" ? (c = {
534
- x: e.x,
535
- y: e.y + s,
536
- w: e.w - s,
537
- h: e.h - s * 2
538
- }, l = c.x + c.w - r.w / 2, f = "right") : i === "t" ? (c = {
539
- x: e.x + s,
540
- y: e.y + s,
541
- w: e.w - s * 2,
542
- h: e.h - s
543
- }, u = c.y + r.h / 2, p = "top") : i === "b" ? (c = {
544
- x: e.x + s,
545
- y: e.y,
546
- w: e.w - s * 2,
547
- h: e.h - s
548
- }, u = c.y + c.h - r.h / 2, p = "bottom") : c = {
549
- x: e.x + s,
550
- y: e.y + s,
551
- w: e.w - s * 2,
552
- h: e.h - s * 2
553
- };
554
- } else {
555
- if (![
556
- t.rect.x,
557
- t.rect.y,
558
- t.rect.w,
559
- t.rect.h
560
- ].every(Number.isFinite) || t.rect.w < 0 || t.rect.h < 0) return null;
561
- let e = t.position ?? "outEnd", i = e === "inBase" || e === "inEnd" || e === "ctr";
562
- if (d = !i, i) {
563
- let e = L(t.rect, n);
564
- if (!e) return null;
565
- c = e;
566
- } else if (t.orientation === "vertical" && t.rect.w <= 0 || t.orientation === "horizontal" && t.rect.h <= 0) return null;
567
- let a = t.rect.x + t.rect.w / 2, o = t.rect.y + t.rect.h / 2;
568
- if (l = a, u = o, t.orientation === "vertical") {
569
- let n = t.negative ? t.rect.y + t.rect.h : t.rect.y, i = t.negative ? t.rect.y : t.rect.y + t.rect.h;
570
- e === "inBase" ? (u = i + (t.negative ? 1 : -1) * (s + r.h / 2), p = t.negative ? "top" : "bottom") : e === "inEnd" ? (u = n + (t.negative ? -1 : 1) * (s + r.h / 2), p = t.negative ? "bottom" : "top") : e !== "ctr" && (u = n + (t.negative ? 1 : -1) * (s + r.h / 2), p = t.negative ? "top" : "bottom");
571
- } else {
572
- let n = t.negative ? t.rect.x : t.rect.x + t.rect.w, i = t.negative ? t.rect.x + t.rect.w : t.rect.x;
573
- e === "inBase" ? (l = i + (t.negative ? -1 : 1) * (s + r.w / 2), f = t.negative ? "right" : "left") : e === "inEnd" ? (l = n + (t.negative ? 1 : -1) * (s + r.w / 2), f = t.negative ? "left" : "right") : e !== "ctr" && (l = n + (t.negative ? -1 : 1) * (s + r.w / 2), f = t.negative ? "right" : "left");
574
- }
575
- }
576
- let m = Math.max(2, i * .5), h = Math.max(2, i * .9);
577
- if (c.w < m || c.h < h) return null;
578
- let g = {
579
- x: l - Math.min(r.w, c.w) / 2,
580
- y: u - Math.min(r.h, c.h) / 2,
581
- w: Math.min(r.w, c.w),
582
- h: Math.min(r.h, c.h)
583
- };
584
- if (a) {
585
- let t = e(a, o, g);
586
- if (!t) return null;
587
- g = t, f = "center", p = "middle";
588
- let r = L(t, n);
589
- if (!r || (c = r, c.w < m || c.h < h)) return null;
590
- }
591
- let _ = Math.min(Math.max(m, g.w), c.w), v = Math.min(Math.max(h, g.h), c.h), y = _ / 2, b = v / 2, x = d || a ? g.x + g.w / 2 : R(g.x + g.w / 2, c.x + y, c.x + c.w - y), S = d || a ? g.y + g.h / 2 : R(g.y + g.h / 2, c.y + b, c.y + c.h - b);
592
- return [x, S].every(Number.isFinite) ? {
593
- x: f === "left" ? x - y : f === "right" ? x + y : x,
594
- y: p === "top" ? S - b : p === "bottom" ? S + b : S,
595
- textAlign: f,
596
- textBaseline: p,
597
- maxWidth: c.w,
598
- maxHeight: c.h,
599
- clip: c,
600
- rect: g
601
- } : null;
602
- }
603
- var B = 4096, V = 4;
604
- function H(e, t, n) {
605
- if (n(e) <= t) return e;
606
- if (n("…") > t) return "";
607
- let r = 0, i = Array.from(e), a = i.length;
608
- for (; r < a;) {
609
- let e = Math.ceil((r + a) / 2);
610
- n(`${i.slice(0, e).join("")}…`) <= t ? r = e : a = e - 1;
611
- }
612
- return `${i.slice(0, r).join("")}…`;
613
- }
614
- function U(e) {
615
- let t = "", n = 0;
616
- for (let r of e) {
617
- if (n >= B) return {
618
- value: t,
619
- truncated: !0
620
- };
621
- t += r, n++;
622
- }
623
- return {
624
- value: t,
625
- truncated: !1
626
- };
627
- }
628
- function ie(e, t, n, r, i) {
629
- if (![
630
- t,
631
- n,
632
- r
633
- ].every(Number.isFinite) || t <= 0 || n < r || r <= 0) return [];
634
- let a = Math.max(1, Math.min(V, Math.floor(n / r))), o = U(e), s = o.value.split(/\r?\n/), c = [], l = o.truncated, u = (e) => {
635
- let n = [], r = "";
636
- for (let a of Array.from(e)) {
637
- let e = `${r}${a}`;
638
- r && i(e) > t ? (n.push(r), r = a) : r = e;
639
- }
640
- return r && n.push(r), n.filter((e) => i(e) <= t);
641
- };
642
- for (let e of s) {
643
- if (i(e) <= t) {
644
- c.push(e);
645
- continue;
646
- }
647
- let n = e.match(/\S+\s*|\s+/g) ?? [];
648
- if (n.length <= 1) c.push(...u(e));
649
- else {
650
- let e = "";
651
- for (let r of n) {
652
- let n = `${e}${r}`;
653
- if (i(n) <= t) e = n;
654
- else {
655
- e && c.push(e);
656
- let t = u(r);
657
- e = t.pop() ?? "", c.push(...t);
658
- }
659
- }
660
- e && c.push(e);
661
- }
662
- }
663
- l ||= c.length > a;
664
- let d = c.slice(0, a);
665
- return l && d.length > 0 && !d[d.length - 1].endsWith("…") && (d[d.length - 1] = H(`${d[d.length - 1]}…`, t, i)), d;
666
- }
667
- //#endregion
668
- //#region packages/core/src/draw/dash.ts
669
- function W(e, t) {
670
- return e.map((e) => e * t);
671
- }
672
- var G = {
673
- dotted: [1, 2],
674
- dashed: [3, 2],
675
- dashSmallGap: [3, 1],
676
- dotDash: [
677
- 1,
678
- 2,
679
- 3,
680
- 2
681
- ],
682
- dotDotDash: [
683
- 1,
684
- 2,
685
- 1,
686
- 2,
687
- 3,
688
- 2
689
- ],
690
- dashDotStroked: [
691
- 1,
692
- 2,
693
- 3,
694
- 2
695
- ]
696
- };
697
- function ae(e, t) {
698
- let n = G[e];
699
- return n ? W(n, t) : [];
700
- }
701
- var K = {
702
- hair: [1, 1],
703
- dashed: [4, 3],
704
- mediumDashed: [4, 3],
705
- dotted: [2, 2],
706
- dashDot: [
707
- 4,
708
- 2,
709
- 1,
710
- 2
711
- ],
712
- mediumDashDot: [
713
- 4,
714
- 2,
715
- 1,
716
- 2
717
- ],
718
- dashDotDot: [
719
- 4,
720
- 2,
721
- 1,
722
- 2,
723
- 1,
724
- 2
725
- ],
726
- mediumDashDotDot: [
727
- 4,
728
- 2,
729
- 1,
730
- 2,
731
- 1,
732
- 2
733
- ],
734
- slantDashDot: [
735
- 5,
736
- 3,
737
- 1,
738
- 3
739
- ]
740
- };
741
- function q(e) {
742
- let t = K[e];
743
- return t ? W(t, 1) : [];
744
- }
745
- var oe = {
746
- dash: [6, 3],
747
- dot: [1.5, 3],
748
- dashDot: [
749
- 6,
750
- 3,
751
- 1.5,
752
- 3
753
- ],
754
- lgDash: [10, 4],
755
- lgDashDot: [
756
- 10,
757
- 4,
758
- 1.5,
759
- 4
760
- ],
761
- lgDashDotDot: [
762
- 10,
763
- 4,
764
- 1.5,
765
- 4,
766
- 1.5,
767
- 4
768
- ],
769
- sysDash: [4, 2],
770
- sysDot: [1, 2],
771
- sysDashDot: [
772
- 4,
773
- 2,
774
- 1,
775
- 2
776
- ],
777
- sysDashDotDot: [
778
- 4,
779
- 2,
780
- 1,
781
- 2,
782
- 1,
783
- 2
784
- ]
785
- };
786
- function J(e, t) {
787
- let n = oe[e];
788
- return n ? W(n, t) : [];
789
- }
790
- function Y(e, t) {
791
- let n = J(e, t);
792
- if (n.length > 0) return n;
793
- let r = e.trim().split(/[\s,]+/).map(Number);
794
- return r.length >= 2 && r.every((e) => Number.isFinite(e) && e >= 0) && r.some((e) => e > 0) ? (r.length % 2 != 0 && r.pop(), W(r, t)) : [];
795
- }
796
- var se = {
797
- dotted: [1.5, 3],
798
- dottedHeavy: [1.5, 3],
799
- dash: [6, 3],
800
- dashHeavy: [6, 3],
801
- dashLong: [10, 4],
802
- dashLongHeavy: [10, 4],
803
- dotDash: [
804
- 6,
805
- 3,
806
- 1.5,
807
- 3
808
- ],
809
- dotDashHeavy: [
810
- 6,
811
- 3,
812
- 1.5,
813
- 3
814
- ],
815
- dotDotDash: [
816
- 6,
817
- 3,
818
- 1.5,
819
- 3,
820
- 1.5,
821
- 3
822
- ],
823
- dotDotDashHeavy: [
824
- 6,
825
- 3,
826
- 1.5,
827
- 3,
828
- 1.5,
829
- 3
830
- ]
831
- };
832
- function ce(e, t) {
833
- let n = se[e];
834
- return n ? W(n, t) : [];
835
- }
836
- //#endregion
837
- //#region packages/core/src/chart/material-color.ts
838
- function X(e) {
839
- return e.rotationX === 15 && e.rotationY === 20 && e.rightAngleAxes === !1 && e.perspective === 30;
840
- }
841
- function Z(e) {
842
- return X(e) ? 2 : 1;
843
- }
844
- function le(e, t) {
845
- let n = e.replace(/^#/, "");
846
- if (!/^[0-9a-f]{6}$/i.test(n) || !Number.isFinite(t)) return e;
847
- let r = Math.max(0, t), i = (e) => Math.max(0, Math.min(255, Math.round(Number.parseInt(n.slice(e, e + 2), 16) * r))).toString(16).padStart(2, "0");
848
- return `#${i(0)}${i(2)}${i(4)}`.toUpperCase();
849
- }
850
- var ue = (e) => e <= .04045 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4, de = (e) => e <= .0031308 ? e * 12.92 : 1.055 * e ** (1 / 2.4) - .055;
851
- function fe(e, t) {
852
- let n = e.replace(/^#/, "");
853
- if (!/^[0-9a-f]{6}$/i.test(n) || !Number.isFinite(t)) return e;
854
- let r = Math.max(-1, Math.min(1, t)), i = (e) => {
855
- let t = ue(Number.parseInt(n.slice(e, e + 2), 16) / 255), i = r < 0 ? t * (1 + r) : t * (1 - r) + r;
856
- return Math.round(Math.max(0, Math.min(1, de(i))) * 255).toString(16).padStart(2, "0");
857
- };
858
- return `#${i(0)}${i(2)}${i(4)}`.toUpperCase();
859
- }
860
- function pe(e, t, n, r) {
861
- if (e.length < 6 || t < 0 || n <= 0) return null;
862
- let i = e[t % 6];
863
- if (!i) return null;
864
- if (![
865
- 2,
866
- 10,
867
- 18,
868
- 26,
869
- 34,
870
- 42
871
- ].includes(r ?? -1)) return `#${i}`.toUpperCase();
872
- let a = Math.floor(n / 6);
873
- return fe(i, -.7 + 1.4 * ((Math.floor(t / 6) + 1) / (a + 2)));
874
- }
875
- function me(e) {
876
- if (!e) return 1;
877
- let t = e.z < 0 ? {
878
- x: -e.x,
879
- y: -e.y,
880
- z: -e.z
881
- } : e, n = {
882
- x: .24,
883
- y: .42,
884
- z: .88
885
- }, r = Math.hypot(n.x, n.y, n.z), i = Math.max(0, (t.x * n.x + t.y * n.y + t.z * n.z) / r);
886
- return Math.max(.48, Math.min(1.22, .48 + .78 * i));
887
- }
888
- //#endregion
889
- //#region packages/core/src/chart/three-d.ts
890
- function he(e, t, n, r, i) {
891
- let a = Number.isFinite(e) && e > 0 ? e : 0, o = Number.isFinite(t) ? $(t, 0, 500) : 150, s = Math.max(1, Math.trunc(r)), c = $(Math.trunc(n), 0, s - 1), l = i ? 1 : s, u = a / (l + o / 100);
892
- return {
893
- offset: (a - u * l) / 2 + (i ? 0 : c * u),
894
- size: u
895
- };
896
- }
897
- function ge(e, t, n) {
898
- if (![
899
- e,
900
- t,
901
- n
902
- ].every(Number.isFinite)) return 1;
903
- let r = e >= 0 ? n : t;
904
- return 1 - Math.min(1, Math.abs(e) / Math.max(Number.MIN_VALUE, Math.abs(r)));
905
- }
906
- function _e(e, t, n, r = .06) {
907
- if (!t.length || t.length > 1e5 || ![
908
- n.x,
909
- n.y,
910
- n.w,
911
- n.h
912
- ].every(Number.isFinite) || n.w <= 0 || n.h <= 0) return e;
913
- let i = t.map((t) => e.project(t.x, t.y, t.depth));
914
- if (!i.every((e) => Number.isFinite(e.x) && Number.isFinite(e.y))) return e;
915
- let a = Infinity, o = -Infinity, s = Infinity, c = -Infinity;
916
- for (let e of i) a = Math.min(a, e.x), o = Math.max(o, e.x), s = Math.min(s, e.y), c = Math.max(c, e.y);
917
- let l = o - a, u = c - s;
918
- if (!(l > 2 ** -52) || !(u > 2 ** -52)) return e;
919
- let d = $(Q(r, .06), 0, .45), f = n.w * (1 - 2 * d), p = n.h * (1 - 2 * d), m = Math.min(f / l, p / u);
920
- if (!(m > 0) || !Number.isFinite(m)) return e;
921
- let h = {
922
- x: (a + o) / 2,
923
- y: (s + c) / 2
924
- }, g = {
925
- x: n.x + n.w / 2,
926
- y: n.y + n.h / 2
927
- }, _ = e.project, v = (e, t, n) => {
928
- let r = _(e, t, n);
929
- return {
930
- x: g.x + (r.x - h.x) * m,
931
- y: g.y + (r.y - h.y) * m
932
- };
933
- };
934
- return {
935
- ...e,
936
- project: v,
937
- depthX: e.depthX * m,
938
- depthY: e.depthY * m
939
- };
940
- }
941
- var Q = (e, t) => typeof e == "number" && Number.isFinite(e) ? e : t, $ = (e, t, n) => Math.min(n, Math.max(t, e));
942
- function ve(e, t, n = {}) {
943
- if (![
944
- t.x,
945
- t.y,
946
- t.w,
947
- t.h
948
- ].every(Number.isFinite) || t.w <= 0 || t.h <= 0) return null;
949
- let r = $(Q(e.rotationX, 15), -90, 90), i = ($(Q(e.rotationY, 20), 0, 360) + 180) % 360 - 180, a = $(Q(e.depthPercent, 100), 20, 2e3), o = $(Q(e.perspective, 30), 0, 240), s = $(Q(e.gapDepthPercent, 150), 0, 500), c = e.heightPercent != null && Number.isFinite(e.heightPercent) ? $(e.heightPercent, 5, 500) : null, l = n.sceneHeightScale != null && Number.isFinite(n.sceneHeightScale) ? $(n.sceneHeightScale * 100, 5, 500) : null, u = c ?? l, d = t;
950
- if (u != null) {
951
- let e = u / 100, n = Math.min(t.w, t.h / e), r = n * e;
952
- d = {
953
- x: t.x + (t.w - n) / 2,
954
- y: t.y + (t.h - r) / 2,
955
- w: n,
956
- h: r
957
- };
958
- }
959
- let f = Math.PI / 180, p = $(Q(n.sceneDepthScale, .1), .01, 2), m = d.w * p * (a / 100), h = d.x + d.w / 2, g = d.y + d.h / 2, _ = -i * f, v = r * f, y = Math.cos(_), b = Math.sin(_), x = Math.cos(v), S = Math.sin(v), C = e.rightAngleAxes !== !0 && o > 0, w = $(o * .25, .25, 60) * f, T = $(Q(n.perspectiveTangentGain, 2), .25, 4), ee = Math.atan(T * Math.tan(w)), E = Math.hypot(d.w, d.h, m), te = C ? E * .5 / Math.tan(ee) : Infinity, D = (e, t, n) => {
960
- let r = e - h, i = g - t, a = (.5 - $(Number.isFinite(n) ? n : 0, 0, 1)) * m, o = y * r + b * a, s = -b * r + y * a;
961
- return {
962
- x: o,
963
- y: x * i - S * s,
964
- z: S * i + x * s
965
- };
966
- }, O = (e) => {
967
- if (e.length < 3) return null;
968
- let t = e.map((e) => D(e.x, e.y, e.depth)), n = t[0], r = null;
969
- for (let e = 1; e + 1 < t.length && !r; e++) for (let i = e + 1; i < t.length; i++) {
970
- let a = t[e], o = t[i], s = {
971
- x: a.x - n.x,
972
- y: a.y - n.y,
973
- z: a.z - n.z
974
- }, c = {
975
- x: o.x - n.x,
976
- y: o.y - n.y,
977
- z: o.z - n.z
978
- }, l = {
979
- x: s.y * c.z - s.z * c.y,
980
- y: s.z * c.x - s.x * c.z,
981
- z: s.x * c.y - s.y * c.x
982
- }, u = Math.hypot(l.x, l.y, l.z);
983
- if (u > 2 ** -52) {
984
- r = {
985
- x: l.x / u,
986
- y: l.y / u,
987
- z: l.z / u
988
- };
989
- break;
990
- }
991
- }
992
- return r ? {
993
- normal: r,
994
- centroid: t.reduce((e, n) => ({
995
- x: e.x + n.x / t.length,
996
- y: e.y + n.y / t.length,
997
- z: e.z + n.z / t.length
998
- }), {
999
- x: 0,
1000
- y: 0,
1001
- z: 0
1002
- })
1003
- } : null;
1004
- }, k = -Infinity;
1005
- for (let e of [d.x, d.x + d.w]) for (let t of [d.y, d.y + d.h]) for (let n of [0, 1]) k = Math.max(k, D(e, t, n).z);
1006
- let A = C ? Math.max(te, k + E * .01) : Infinity, j = (e, t, n) => {
1007
- let r = D(e, t, n);
1008
- if (!C) return {
1009
- x: r.x,
1010
- y: -r.y
1011
- };
1012
- let i = A / Math.max(A * 1e-9, A - r.z);
1013
- return {
1014
- x: r.x * i,
1015
- y: -r.y * i
1016
- };
1017
- }, M = [];
1018
- for (let e of [d.x, d.x + d.w]) for (let t of [d.y, d.y + d.h]) for (let n of [0, 1]) M.push(j(e, t, n));
1019
- let N = Math.min(...M.map((e) => e.x)), ne = Math.max(...M.map((e) => e.x)), P = Math.min(...M.map((e) => e.y)), re = Math.max(...M.map((e) => e.y)), F = Math.max(Number.MIN_VALUE, ne - N), I = Math.max(Number.MIN_VALUE, re - P), L = Math.min(t.w / F, t.h / I) * .94, R = t.x + (t.w - F * L) / 2 - N * L, z = t.y + (t.h - I * L) / 2 - P * L, B = (e, t, n) => {
1020
- let r = j(e, t, n);
1021
- return {
1022
- x: R + r.x * L,
1023
- y: z + r.y * L
1024
- };
1025
- }, V = { ...d }, H = B(h, g, 0), U = B(h, g, 1), ie = U.x - H.x, W = U.y - H.y, G = (e, t) => D(e === "x" ? t === "min" ? d.x : d.x + d.w : h, e === "y" ? t === "min" ? d.y : d.y + d.h : g, e === "depth" ? t === "min" ? 0 : 1 : .5).z, ae = G("x", "min") <= G("x", "max") ? "min" : "max", K = G("y", "min") <= G("y", "max") ? "min" : "max", q = G("depth", "min") >= G("depth", "max") ? 0 : 1, oe = +(q === 0), J = (e) => {
1026
- let t = e === "min" ? d.x : d.x + d.w, n = B(t, d.y, q), r = B(t, d.y + d.h, q);
1027
- return (n.x + r.x) / 2;
1028
- }, Y = (e) => {
1029
- let t = e === "min" ? d.y : d.y + d.h, n = B(d.x, t, q), r = B(d.x + d.w, t, q);
1030
- return (n.y + r.y) / 2;
1031
- }, se = J("min") <= J("max") ? "min" : "max", ce = Y("min") >= Y("max") ? "min" : "max", X = (e) => 1 / Math.max(1, Math.trunc(e)) / (1 + s / 100), Z = (e, t, n = !1) => n || t <= 1 ? .5 : ($(Math.trunc(e), 0, Math.max(0, t - 1)) + .5) / t;
1032
- return {
1033
- scene: d,
1034
- front: V,
1035
- depthX: ie,
1036
- depthY: W,
1037
- modelDepth: m,
1038
- pieScaleY: $(Math.sin(Math.max(1, Math.abs(r)) * f) ** 1.15, .2, 1),
1039
- pieThicknessFraction: .3 * Math.max(0, Math.cos(Math.abs(r) * f)),
1040
- project: B,
1041
- cameraDepth(e, t, n) {
1042
- return D(e, t, n).z;
1043
- },
1044
- cameraProjectionWeight(e, t, n) {
1045
- if (!C) return 1;
1046
- let r = D(e, t, n).z;
1047
- return 1 / Math.max(A * 1e-9, A - r);
1048
- },
1049
- cameraFacing(e) {
1050
- let t = O(e);
1051
- if (!t) return !1;
1052
- let { normal: n, centroid: r } = t, i = C ? {
1053
- x: -r.x,
1054
- y: -r.y,
1055
- z: A - r.z
1056
- } : {
1057
- x: 0,
1058
- y: 0,
1059
- z: 1
1060
- }, a = n.x * i.x + n.y * i.y + n.z * i.z, o = Math.hypot(i.x, i.y, i.z);
1061
- return o > 0 && a > o * 1e-10;
1062
- },
1063
- cameraNormal(e) {
1064
- return O(e)?.normal ?? null;
1065
- },
1066
- topology: {
1067
- farX: ae,
1068
- farY: K,
1069
- axisX: se,
1070
- axisY: ce,
1071
- nearDepth: q,
1072
- farDepth: oe
1073
- },
1074
- seriesDepth: Z,
1075
- prismDepth: X,
1076
- prismInterval(e, t, n = !1) {
1077
- let r = Z(e, t, n), i = X(n ? 1 : t) / 2;
1078
- return {
1079
- near: $(r - i, 0, 1),
1080
- far: $(r + i, 0, 1)
1081
- };
1082
- }
1083
- };
1084
- }
1085
- //#endregion
1086
- export { w as A, i as B, A as C, ee as D, te as E, o as F, _ as H, s as I, r as L, x as M, S as N, E as O, a as P, y as R, k as S, T, m as V, z as _, X as a, P as b, me as c, J as d, ce as f, ie as g, U as h, ge as i, b as j, C as k, Z as l, q as m, ve as n, pe as o, Y as p, he as r, le as s, _e as t, ae as u, F as v, O as w, ne as x, re as y, v as z };