@sophistry/charts 0.0.0-stage → 0.1.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 (220) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -2
  3. package/dist/3d/bar-chart3d.d.ts +55 -0
  4. package/dist/3d/definitions.d.ts +37 -0
  5. package/dist/3d/definitions.js +14 -0
  6. package/dist/3d/forward.d.ts +64 -0
  7. package/dist/3d/index.d.ts +30 -0
  8. package/dist/3d/index.js +1 -0
  9. package/dist/3d/quiver3d.d.ts +52 -0
  10. package/dist/3d/scatter3d.d.ts +44 -0
  11. package/dist/3d/stem3d.d.ts +45 -0
  12. package/dist/3d/surface-grid3d.d.ts +33 -0
  13. package/dist/3d/tri-surface3d.d.ts +45 -0
  14. package/dist/3d/voxels3d.d.ts +25 -0
  15. package/dist/3d/wireframe3d.d.ts +30 -0
  16. package/dist/band.d.ts +20 -0
  17. package/dist/bars/bar-chart.d.ts +143 -0
  18. package/dist/bars/bar-labels.d.ts +116 -0
  19. package/dist/bars/bars.d.ts +223 -0
  20. package/dist/bars/bullet.d.ts +157 -0
  21. package/dist/bars/candlestick.d.ts +97 -0
  22. package/dist/bars/funnel.d.ts +90 -0
  23. package/dist/bars/histogram.d.ts +108 -0
  24. package/dist/bars/index.d.ts +22 -0
  25. package/dist/bars/race.d.ts +28 -0
  26. package/dist/bars/rules.d.ts +121 -0
  27. package/dist/bars/shared.d.ts +41 -0
  28. package/dist/bars/transforms.d.ts +249 -0
  29. package/dist/bars/waterfall.d.ts +106 -0
  30. package/dist/batch.d.ts +142 -0
  31. package/dist/channels-_Xf-p6Lx.js +56 -0
  32. package/dist/chart.d.ts +87 -0
  33. package/dist/color-norm.d.ts +90 -0
  34. package/dist/context.d.ts +111 -0
  35. package/dist/curves/density.d.ts +125 -0
  36. package/dist/curves/ecdf.d.ts +72 -0
  37. package/dist/curves/fill-between.d.ts +100 -0
  38. package/dist/curves/index.d.ts +15 -0
  39. package/dist/curves/line-plot.d.ts +104 -0
  40. package/dist/curves/regression.d.ts +124 -0
  41. package/dist/curves/shared.d.ts +52 -0
  42. package/dist/curves/stack-plot.d.ts +140 -0
  43. package/dist/curves/stairs.d.ts +170 -0
  44. package/dist/data/channels.d.ts +170 -0
  45. package/dist/end-space.d.ts +81 -0
  46. package/dist/entries/definitions.d.ts +20 -0
  47. package/dist/entries/definitions.js +6 -0
  48. package/dist/frame/band-axis.d.ts +42 -0
  49. package/dist/frame/coords.d.ts +111 -0
  50. package/dist/frame/fit.d.ts +170 -0
  51. package/dist/frame/format.d.ts +40 -0
  52. package/dist/frame/guide-metrics.d.ts +36 -0
  53. package/dist/frame/guides.d.ts +67 -0
  54. package/dist/frame/keys.d.ts +96 -0
  55. package/dist/frame/layout.d.ts +145 -0
  56. package/dist/frame/registry.d.ts +31 -0
  57. package/dist/frame/reports.d.ts +53 -0
  58. package/dist/frame/secondary-axes.d.ts +73 -0
  59. package/dist/frame/secondary.d.ts +56 -0
  60. package/dist/frame/tooltip-overlay.d.ts +64 -0
  61. package/dist/frame/types.d.ts +658 -0
  62. package/dist/grids/barbs.d.ts +51 -0
  63. package/dist/grids/cell-rects.d.ts +37 -0
  64. package/dist/grids/cells.d.ts +130 -0
  65. package/dist/grids/contour-f.d.ts +80 -0
  66. package/dist/grids/contour-shared.d.ts +53 -0
  67. package/dist/grids/contour.d.ts +84 -0
  68. package/dist/grids/dendrogram.d.ts +104 -0
  69. package/dist/grids/heatmap.d.ts +163 -0
  70. package/dist/grids/hex-bin.d.ts +93 -0
  71. package/dist/grids/hist2d.d.ts +107 -0
  72. package/dist/grids/imshow.d.ts +84 -0
  73. package/dist/grids/index.d.ts +26 -0
  74. package/dist/grids/pcolormesh.d.ts +90 -0
  75. package/dist/grids/ramp-cells.d.ts +66 -0
  76. package/dist/grids/tri-contour.d.ts +120 -0
  77. package/dist/grids/tri-shared.d.ts +61 -0
  78. package/dist/grids/tripcolor.d.ts +73 -0
  79. package/dist/guides/colorbar.d.ts +110 -0
  80. package/dist/guides/index.d.ts +11 -0
  81. package/dist/guides/legend.d.ts +118 -0
  82. package/dist/guides/nodes.d.ts +13 -0
  83. package/dist/guides/size-legend.d.ts +233 -0
  84. package/dist/hierarchy/breadcrumbs.d.ts +133 -0
  85. package/dist/hierarchy/circle-pack.d.ts +72 -0
  86. package/dist/hierarchy/drill.d.ts +245 -0
  87. package/dist/hierarchy/frame.d.ts +67 -0
  88. package/dist/hierarchy/icicle.d.ts +76 -0
  89. package/dist/hierarchy/index.d.ts +20 -0
  90. package/dist/hierarchy/labels.d.ts +24 -0
  91. package/dist/hierarchy/mosaic.d.ts +130 -0
  92. package/dist/hierarchy/own-tooltip.d.ts +12 -0
  93. package/dist/hierarchy/props.d.ts +13 -0
  94. package/dist/hierarchy/sankey.d.ts +132 -0
  95. package/dist/hierarchy/shared.d.ts +247 -0
  96. package/dist/hierarchy/sunburst.d.ts +74 -0
  97. package/dist/hierarchy/tree.d.ts +124 -0
  98. package/dist/hierarchy/treemap.d.ts +76 -0
  99. package/dist/index.d.ts +29 -0
  100. package/dist/index.js +5 -0
  101. package/dist/item-tooltip.d.ts +33 -0
  102. package/dist/join.d.ts +223 -0
  103. package/dist/math/3d/bar3d.d.ts +27 -0
  104. package/dist/math/3d/quiver3d.d.ts +26 -0
  105. package/dist/math/3d/scatter3d.d.ts +15 -0
  106. package/dist/math/3d/stem3d.d.ts +22 -0
  107. package/dist/math/3d/surfaceGrid3d.d.ts +33 -0
  108. package/dist/math/3d/trisurface.d.ts +11 -0
  109. package/dist/math/3d/voxels.d.ts +17 -0
  110. package/dist/math/aggregate.d.ts +68 -0
  111. package/dist/math/bar.d.ts +31 -0
  112. package/dist/math/barLabels.d.ts +83 -0
  113. package/dist/math/barbs.d.ts +36 -0
  114. package/dist/math/boxplot.d.ts +36 -0
  115. package/dist/math/breadcrumbs.d.ts +128 -0
  116. package/dist/math/bubble.d.ts +38 -0
  117. package/dist/math/bullet.d.ts +110 -0
  118. package/dist/math/chord.d.ts +103 -0
  119. package/dist/math/cluster.d.ts +88 -0
  120. package/dist/math/contour.d.ts +48 -0
  121. package/dist/math/contourf.d.ts +50 -0
  122. package/dist/math/dodge.d.ts +36 -0
  123. package/dist/math/ecdf.d.ts +41 -0
  124. package/dist/math/errorbar.d.ts +27 -0
  125. package/dist/math/eventplot.d.ts +26 -0
  126. package/dist/math/facet.d.ts +90 -0
  127. package/dist/math/fillBetween.d.ts +28 -0
  128. package/dist/math/gauge.d.ts +71 -0
  129. package/dist/math/hexbin.d.ts +20 -0
  130. package/dist/math/hierarchy.d.ts +179 -0
  131. package/dist/math/hierarchyJoin.d.ts +59 -0
  132. package/dist/math/histogram.d.ts +36 -0
  133. package/dist/math/histogram2d.d.ts +44 -0
  134. package/dist/math/imshow.d.ts +26 -0
  135. package/dist/math/index.d.ts +139 -0
  136. package/dist/math/index.js +3 -0
  137. package/dist/math/jitter.d.ts +16 -0
  138. package/dist/math/join.d.ts +135 -0
  139. package/dist/math/keyframes.d.ts +127 -0
  140. package/dist/math/legend.d.ts +120 -0
  141. package/dist/math/line.d.ts +53 -0
  142. package/dist/math/morph.d.ts +81 -0
  143. package/dist/math/mosaic.d.ts +119 -0
  144. package/dist/math/ordinal.d.ts +79 -0
  145. package/dist/math/parallel.d.ts +38 -0
  146. package/dist/math/pcolormesh.d.ts +22 -0
  147. package/dist/math/pie.d.ts +105 -0
  148. package/dist/math/polarArea.d.ts +34 -0
  149. package/dist/math/radar.d.ts +110 -0
  150. package/dist/math/range.d.ts +98 -0
  151. package/dist/math/regression.d.ts +109 -0
  152. package/dist/math/reveal.d.ts +63 -0
  153. package/dist/math/sankey.d.ts +154 -0
  154. package/dist/math/scatter.d.ts +14 -0
  155. package/dist/math/shared/binning.d.ts +23 -0
  156. package/dist/math/shared/gridCells.d.ts +41 -0
  157. package/dist/math/shared/gridExtent.d.ts +5 -0
  158. package/dist/math/shared/pairs.d.ts +2 -0
  159. package/dist/math/shared/polar.d.ts +23 -0
  160. package/dist/math/stack.d.ts +69 -0
  161. package/dist/math/stackplot.d.ts +35 -0
  162. package/dist/math/stairs.d.ts +17 -0
  163. package/dist/math/stem.d.ts +21 -0
  164. package/dist/math/symbol.d.ts +25 -0
  165. package/dist/math/tree.d.ts +117 -0
  166. package/dist/math/tricontour.d.ts +76 -0
  167. package/dist/math/violin.d.ts +99 -0
  168. package/dist/math/waffle.d.ts +48 -0
  169. package/dist/math/waterfall.d.ts +28 -0
  170. package/dist/math-CSHNpGej.js +3648 -0
  171. package/dist/mix.d.ts +24 -0
  172. package/dist/multiview/brush.d.ts +165 -0
  173. package/dist/multiview/chart-group.d.ts +265 -0
  174. package/dist/multiview/chart-link.d.ts +188 -0
  175. package/dist/multiview/chart-zoom.d.ts +144 -0
  176. package/dist/multiview/facet.d.ts +238 -0
  177. package/dist/multiview/group-guides.d.ts +99 -0
  178. package/dist/multiview/index.d.ts +17 -0
  179. package/dist/multiview/joint-plot.d.ts +114 -0
  180. package/dist/multiview/pair-plot.d.ts +153 -0
  181. package/dist/multiview/panels.d.ts +22 -0
  182. package/dist/multiview/parallel-coordinates.d.ts +109 -0
  183. package/dist/points/event-plot.d.ts +67 -0
  184. package/dist/points/index.d.ts +19 -0
  185. package/dist/points/labels.d.ts +70 -0
  186. package/dist/points/links.d.ts +123 -0
  187. package/dist/points/rects.d.ts +80 -0
  188. package/dist/points/rug.d.ts +72 -0
  189. package/dist/points/scatter.d.ts +169 -0
  190. package/dist/points/segment-marks.d.ts +39 -0
  191. package/dist/points/shared.d.ts +34 -0
  192. package/dist/points/stem.d.ts +75 -0
  193. package/dist/points/strip.d.ts +145 -0
  194. package/dist/points/symbol-marker.d.ts +33 -0
  195. package/dist/points/ticks.d.ts +102 -0
  196. package/dist/props.d.ts +126 -0
  197. package/dist/radial/chord.d.ts +148 -0
  198. package/dist/radial/gauge.d.ts +126 -0
  199. package/dist/radial/index.d.ts +15 -0
  200. package/dist/radial/pie-chart.d.ts +143 -0
  201. package/dist/radial/polar-area-chart.d.ts +135 -0
  202. package/dist/radial/radar-chart.d.ts +176 -0
  203. package/dist/radial/radial-bar-chart.d.ts +116 -0
  204. package/dist/radial/shared.d.ts +78 -0
  205. package/dist/radial/waffle.d.ts +130 -0
  206. package/dist/raster.d.ts +43 -0
  207. package/dist/series.d.ts +71 -0
  208. package/dist/src-CwGo1bes.js +19221 -0
  209. package/dist/stagger.d.ts +54 -0
  210. package/dist/statistics/box-plot.d.ts +151 -0
  211. package/dist/statistics/error-bar.d.ts +148 -0
  212. package/dist/statistics/groups.d.ts +140 -0
  213. package/dist/statistics/index.d.ts +7 -0
  214. package/dist/statistics/violin-plot.d.ts +143 -0
  215. package/dist/text-width.d.ts +9 -0
  216. package/dist/tooltip.d.ts +276 -0
  217. package/dist/util.d.ts +33 -0
  218. package/dist/voxels-9lJ2TZS4.js +235 -0
  219. package/dist/wireframe3d-D157GZAq.js +345 -0
  220. package/package.json +86 -3
@@ -0,0 +1,3648 @@
1
+ import { c as e } from "./voxels-9lJ2TZS4.js";
2
+ import { TAU as t, axisTimeZone as n, calendarAxis as r, clamp01 as i, clampNonNegative as a, delaunayTriangleIndices as o, finiteOrZero as s, finiteValues as c, hashUnit as l, maxOf as u, minOf as d, mix as f, polarPoint as p, stitchSegments as m, wrapAngle as h } from "@sophistry/core/internal";
3
+ import { areaCurvePath as g, clamp as _, closedCurvePath as v, formatTick as y, niceStep as b, tickValues as x } from "@sophistry/core/geometry";
4
+ import { deviation as S, extent as C, max as w, mean as T, median as E, min as D, quantile as O, sum as k, variance as A } from "d3-array";
5
+ import { cluster as ee, hierarchy as te, pack as ne, partition as re, tree as ie, treemap as ae, treemapBinary as oe, treemapDice as se, treemapResquarify as ce, treemapSlice as le, treemapSliceDice as ue, treemapSquarify as de } from "d3-hierarchy";
6
+ //#region src/math/ordinal.ts
7
+ function fe(e) {
8
+ let t = /* @__PURE__ */ new Set();
9
+ for (let n of e) n != null && (typeof n == "number" && Number.isNaN(n) || t.add(n));
10
+ return [...t];
11
+ }
12
+ function pe(e, t, n = {}) {
13
+ if (t.length === 0) throw RangeError("ordinalColorScale: `range` needs at least one colour.");
14
+ let r = fe(e), i = /* @__PURE__ */ new Map();
15
+ r.forEach((e, t) => {
16
+ i.set(e, t);
17
+ });
18
+ let a = n.unknown ?? t[0], o = (e) => e == null ? -1 : i.get(e) ?? -1, s = ((e) => {
19
+ let n = o(e);
20
+ return n < 0 ? a : t[n % t.length];
21
+ });
22
+ return Object.defineProperties(s, {
23
+ domain: {
24
+ value: r,
25
+ enumerable: !0
26
+ },
27
+ range: {
28
+ value: t,
29
+ enumerable: !0
30
+ },
31
+ index: {
32
+ value: o,
33
+ enumerable: !0
34
+ }
35
+ }), s;
36
+ }
37
+ var me = Object.freeze([
38
+ "#e69f00",
39
+ "#56b4e9",
40
+ "#009e73",
41
+ "#f0e442",
42
+ "#0072b2",
43
+ "#d55e00",
44
+ "#cc79a7",
45
+ "#999999"
46
+ ]), he = Object.freeze([
47
+ "#4e79a7",
48
+ "#f28e2c",
49
+ "#e15759",
50
+ "#76b7b2",
51
+ "#59a14f",
52
+ "#edc949",
53
+ "#af7aa1",
54
+ "#ff9da7",
55
+ "#9c755f",
56
+ "#bab0ab"
57
+ ]), ge = Object.freeze([
58
+ "#4269d0",
59
+ "#efb118",
60
+ "#ff725c",
61
+ "#6cc5b0",
62
+ "#3ca951",
63
+ "#ff8ab7",
64
+ "#a463f2",
65
+ "#97bbf5",
66
+ "#9c6b4e",
67
+ "#9498a0"
68
+ ]);
69
+ function _e(e, t, n) {
70
+ let r = [];
71
+ if (t) {
72
+ let n = /* @__PURE__ */ new Map();
73
+ for (let i = 0; i < e; i++) {
74
+ let e = t(i) ?? `#${i}`, a = n.get(e) ?? 0;
75
+ n.set(e, a + 1), r.push(a === 0 ? e : `${String(e)}#${a + 1}`);
76
+ }
77
+ return r;
78
+ }
79
+ if (n) {
80
+ let t = /* @__PURE__ */ new Map();
81
+ for (let i = 0; i < e; i++) {
82
+ let e = n(i), a = t.get(e) ?? 0;
83
+ t.set(e, a + 1), r.push(`${typeof e}:${String(e)}\u0001${a}`);
84
+ }
85
+ return r;
86
+ }
87
+ for (let t = 0; t < e; t++) r.push(t);
88
+ return r;
89
+ }
90
+ //#endregion
91
+ //#region src/math/join.ts
92
+ function ve(e, t) {
93
+ let n = /* @__PURE__ */ new Map();
94
+ e.forEach((e, t) => {
95
+ n.has(e) || n.set(e, t);
96
+ });
97
+ let r = /* @__PURE__ */ new Map();
98
+ t.forEach((e, t) => {
99
+ r.has(e) || r.set(e, t);
100
+ });
101
+ let i = [...n.keys()], a = !1;
102
+ for (let e of r.keys()) n.has(e) || (i.push(e), a = !0);
103
+ let o = !1;
104
+ for (let e of n.keys()) if (!r.has(e)) {
105
+ o = !0;
106
+ break;
107
+ }
108
+ return {
109
+ keys: i,
110
+ from: n,
111
+ to: r,
112
+ enters: a,
113
+ exits: o
114
+ };
115
+ }
116
+ var j = [0, 1];
117
+ function ye(e) {
118
+ return e < .5 ? 4 * e * e * e : 1 - (-2 * e + 2) ** 3 / 2;
119
+ }
120
+ function be(e = {}) {
121
+ if (e.staging === "together") return {
122
+ exit: j,
123
+ expand: j,
124
+ update: j,
125
+ contract: j,
126
+ enter: j,
127
+ eased: !1
128
+ };
129
+ let t = !!(e.exits || e.expand), n = !!(e.enters || e.contract), r = 1 / (1 + +!!t + +!!n), i = t ? r : 0, a = n ? 1 - r : 1, o = [0, i], s = [i, a], c = [a, 1];
130
+ return {
131
+ exit: o,
132
+ expand: o,
133
+ update: s,
134
+ contract: c,
135
+ enter: c,
136
+ eased: !0
137
+ };
138
+ }
139
+ function xe(e, t) {
140
+ return e[1] > e[0] ? e : t;
141
+ }
142
+ function M(e, t, n = !1) {
143
+ let [r, i] = t;
144
+ if (!(e > r)) return +(e >= r && i <= r);
145
+ if (e >= i) return 1;
146
+ let a = (e - r) / (i - r);
147
+ return n ? ye(a) : a;
148
+ }
149
+ function Se(e, t, n, r, i, a) {
150
+ let o = Math.min(.95, Math.max(0, a || 0));
151
+ if (o === 0 || i <= 1) return M(e, t, n);
152
+ let s = (M(e, t, !1) - o * Math.min(Math.max(r, 0), i - 1) / (i - 1)) / (1 - o), c = s > 0 ? s < 1 ? s : 1 : 0;
153
+ return n ? ye(c) : c;
154
+ }
155
+ function Ce(e, t) {
156
+ let n = Math.min(e[0], e[1]), r = Math.max(e[0], e[1]), i = Math.min(t[0], t[1]), a = Math.max(t[0], t[1]);
157
+ return n === i && r === a ? "none" : i <= n && a >= r ? "expand" : n <= i && r >= a ? "contract" : "shift";
158
+ }
159
+ function we(e, t) {
160
+ return t === "expand" ? e.expand : t === "contract" ? e.contract : e.update;
161
+ }
162
+ //#endregion
163
+ //#region src/math/range.ts
164
+ var Te = 5, Ee = .25;
165
+ function De(e, t, n, r, i) {
166
+ let a = Ee * i * (1 + 1e-9);
167
+ return [e - n <= a ? n : e, r - t <= a ? r : t];
168
+ }
169
+ function Oe(e, t = {}) {
170
+ return ke(e, {
171
+ zero: !0,
172
+ targetTicks: t.targetTicks
173
+ });
174
+ }
175
+ function ke(e, t = {}) {
176
+ let r = t.type ?? "linear", i = e.filter((e) => r === "log" ? e > 0 && Number.isFinite(e) : Number.isFinite(e)), a = i.length > 0 ? d(i) : void 0, o = i.length > 0 ? u(i) : void 0;
177
+ if (r === "log") return Me(a, o, t.base ?? 10, t.nice);
178
+ if (r === "time" || r === "utc") return Ne(a, o, n(r, t.timeZone), t);
179
+ let s = a ?? 0, c = o ?? 0;
180
+ if (t.zero && (s = Math.min(0, s), c = Math.max(0, c)), [s, c] = N(s, c, t.margin, t.zero), s === c) {
181
+ if (s === 0) return [
182
+ 0,
183
+ 1,
184
+ 1
185
+ ];
186
+ let e = Math.abs(s) * .1;
187
+ s -= t.zero && s >= 0 ? 0 : e, c += t.zero && c <= 0 ? 0 : e;
188
+ }
189
+ if (t.nice === !1) return [s, c];
190
+ let l = b(c - s, t.targetTicks ?? Te), f = Math.floor(s / l) * l, p = Math.ceil(c / l) * l;
191
+ return t.nice === "tight" ? [...De(s, c, f, p, l), l] : [
192
+ f,
193
+ p,
194
+ l
195
+ ];
196
+ }
197
+ var Ae = [
198
+ 1,
199
+ 2,
200
+ 2.5,
201
+ 5
202
+ ];
203
+ function je(e, t, n, r = {}) {
204
+ let i = Math.min(e[0], e[1]), a = Math.max(e[0], e[1]), o = a - i, s = t.filter((e) => Number.isFinite(e));
205
+ if (!(o > 0) || !Number.isFinite(o) || s.length < 2) return;
206
+ let c = d(s), l = u(s), f = (l - c) / (s.length - 1) / o;
207
+ if (!(f > 0)) return;
208
+ let p = r.opposite ? (a - l) / o : (c - i) / o, m = p / f - Math.floor(p / f + 1e-9), h = n.filter((e) => Number.isFinite(e)), g = h.length > 0 ? d(h) : 0, _ = h.length > 0 ? u(h) : 0;
209
+ if (r.zero && (g = Math.min(0, g), _ = Math.max(0, _)), [g, _] = N(g, _, r.margin, r.zero), g === _) {
210
+ if (g === 0) _ = 1;
211
+ else {
212
+ let e = Math.abs(g) * .1;
213
+ g -= r.zero && g >= 0 ? 0 : e, _ += r.zero && _ <= 0 ? 0 : e;
214
+ }
215
+ }
216
+ let v = (_ - g) * f, y = Math.floor(Math.log10(v)) - 1, b = (e) => Number(e.toPrecision(12)) + 0;
217
+ for (let e = 0; e < 40; e++, y++) for (let e of Ae) {
218
+ let t = e * 10 ** y;
219
+ if (t < v * (1 - 1e-9)) continue;
220
+ let n = t / f, r = t * (Math.floor(g / t + m + 1e-9) - m);
221
+ if (r + n >= _ - Math.abs(_) * 1e-12) return [
222
+ b(r),
223
+ b(r + n),
224
+ t
225
+ ];
226
+ }
227
+ }
228
+ function N(e, t, n, r) {
229
+ let i = t - e;
230
+ if (!(n && n > 0) || !(i > 0)) return [e, t];
231
+ let a = i * n;
232
+ return [r && e === 0 ? e : e - a, r && t === 0 ? t : t + a];
233
+ }
234
+ function Me(e, t, n, r) {
235
+ if (e === void 0 || t === void 0 || !(n > 1)) return [1, n > 1 ? n : 10];
236
+ let i = Math.log(n);
237
+ if (r === "tight" && t > e) {
238
+ let r = Math.log(e) / i, a = Math.log(t) / i, [o, s] = De(r, a, Math.floor(r + 1e-9), Math.ceil(a - 1e-9), 1);
239
+ return [o === r ? e : n ** o, s === a ? t : n ** s];
240
+ }
241
+ let a = n ** Math.floor(Math.log(e) / i + 1e-9), o = n ** Math.ceil(Math.log(t) / i - 1e-9);
242
+ return o <= a && (o = a * n), [a, o];
243
+ }
244
+ var P = 864e5;
245
+ function Ne(e, t, n, i) {
246
+ if (e === void 0 || t === void 0) return [0, P];
247
+ let a = e, o = t;
248
+ if (a === o && (a -= P / 2, o += P / 2), [a, o] = N(a, o, i.margin, !1), i.nice === !1) return [a, o];
249
+ let s = i.targetTicks ?? Te, [c, l] = r(a, o, n).nice(s);
250
+ if (i.nice === "tight") {
251
+ let e = r(c, l, n).ticks(s), t = e.length > 1 ? (e[e.length - 1] - e[0]) / (e.length - 1) : l - c;
252
+ return De(a, o, c, l, t);
253
+ }
254
+ return [c, l];
255
+ }
256
+ //#endregion
257
+ //#region src/math/legend.ts
258
+ function Pe(e, t) {
259
+ let { rowHeight: n, swatchWidth: r, swatchGap: i, itemGap: a } = t, o = t.titleWidth !== void 0, s = o ? n : 0, c = [], l = (e) => r + i + Math.max(0, e), u = o ? Math.max(0, t.titleWidth ?? 0) : 0, d = 0;
260
+ if (t.direction === "column") e.forEach((e, t) => {
261
+ let a = -s - n * (t + .5);
262
+ c.push({
263
+ swatch: {
264
+ x: r / 2,
265
+ y: a
266
+ },
267
+ label: {
268
+ x: r + i,
269
+ y: a
270
+ }
271
+ }), u = Math.max(u, l(e));
272
+ }), d = e.length;
273
+ else {
274
+ let o = t.maxWidth ?? Infinity, f = 0, p = 0;
275
+ e.forEach((e, t) => {
276
+ let d = l(e);
277
+ t > 0 && f + d > o && (p += 1, f = 0);
278
+ let m = -s - n * (p + .5);
279
+ c.push({
280
+ swatch: {
281
+ x: f + r / 2,
282
+ y: m
283
+ },
284
+ label: {
285
+ x: f + r + i,
286
+ y: m
287
+ }
288
+ }), u = Math.max(u, f + d), f += d + a;
289
+ }), d = e.length === 0 ? 0 : p + 1;
290
+ }
291
+ return {
292
+ items: c,
293
+ title: o ? {
294
+ x: 0,
295
+ y: -n / 2
296
+ } : void 0,
297
+ width: u,
298
+ height: s + d * n
299
+ };
300
+ }
301
+ function Fe(e, t, n) {
302
+ let { rowHeight: r, gap: i, itemGap: a } = n, o = Math.max(0, n.pad ?? 0), s = n.titleWidth !== void 0, c = s ? r : 0, l = (t) => Math.max(0, e[t] ?? 0), u = (e) => Math.max(0, t[e] ?? 0), d = (e) => Math.max(r, 2 * l(e) + 2 * o), f = [], p = s ? Math.max(0, n.titleWidth ?? 0) : 0, m = c;
303
+ if (n.direction === "column") {
304
+ let t = 0;
305
+ for (let n = 0; n < e.length; n++) t = Math.max(t, l(n));
306
+ let n = -c;
307
+ for (let r = 0; r < e.length; r++) {
308
+ let e = d(r), a = n - e / 2;
309
+ f.push({
310
+ center: {
311
+ x: t,
312
+ y: a
313
+ },
314
+ label: {
315
+ x: 2 * t + i,
316
+ y: a
317
+ }
318
+ }), p = Math.max(p, 2 * t + i + u(r)), n -= e;
319
+ }
320
+ m = -n;
321
+ } else {
322
+ let t = 0;
323
+ for (let n = 0; n < e.length; n++) t = Math.max(t, d(n));
324
+ let r = n.maxWidth ?? Infinity, o = 0, s = 0;
325
+ for (let n = 0; n < e.length; n++) {
326
+ let e = 2 * l(n) + i + u(n);
327
+ n > 0 && o + e > r && (s += 1, o = 0);
328
+ let d = -c - t * (s + .5);
329
+ f.push({
330
+ center: {
331
+ x: o + l(n),
332
+ y: d
333
+ },
334
+ label: {
335
+ x: o + 2 * l(n) + i,
336
+ y: d
337
+ }
338
+ }), p = Math.max(p, o + e), o += e + a;
339
+ }
340
+ m = c + (e.length === 0 ? 0 : (s + 1) * t);
341
+ }
342
+ return {
343
+ items: f,
344
+ title: s ? {
345
+ x: 0,
346
+ y: -r / 2
347
+ } : void 0,
348
+ width: p,
349
+ height: m
350
+ };
351
+ }
352
+ //#endregion
353
+ //#region src/math/symbol.ts
354
+ var Ie = [
355
+ "circle",
356
+ "square",
357
+ "triangle",
358
+ "diamond",
359
+ "cross",
360
+ "star"
361
+ ], Le = .381966;
362
+ function Re(e, t, n, r) {
363
+ let i = Math.PI * r * r, a = (e, r) => ({
364
+ x: t + e,
365
+ y: n + r
366
+ });
367
+ switch (e) {
368
+ case "square": {
369
+ let e = Math.sqrt(i) / 2;
370
+ return [
371
+ a(-e, -e),
372
+ a(e, -e),
373
+ a(e, e),
374
+ a(-e, e)
375
+ ];
376
+ }
377
+ case "diamond": {
378
+ let e = Math.sqrt(i / 2);
379
+ return [
380
+ a(0, -e),
381
+ a(e, 0),
382
+ a(0, e),
383
+ a(-e, 0)
384
+ ];
385
+ }
386
+ case "triangle": {
387
+ let e = Math.sqrt(4 * i / Math.sqrt(3)), t = e * Math.sqrt(3) / 2;
388
+ return [
389
+ a(-e / 2, -t / 3),
390
+ a(e / 2, -t / 3),
391
+ a(0, 2 * t / 3)
392
+ ];
393
+ }
394
+ case "cross": {
395
+ let e = Math.sqrt(i / 5), t = e / 2, n = 3 * e / 2;
396
+ return [
397
+ a(-t, -n),
398
+ a(t, -n),
399
+ a(t, -t),
400
+ a(n, -t),
401
+ a(n, t),
402
+ a(t, t),
403
+ a(t, n),
404
+ a(-t, n),
405
+ a(-t, t),
406
+ a(-n, t),
407
+ a(-n, -t),
408
+ a(-t, -t)
409
+ ];
410
+ }
411
+ case "star": {
412
+ let e = Math.sqrt(i / (5 * Le * Math.sin(Math.PI / 5))), t = e * Le;
413
+ return Array.from({ length: 10 }, (n, r) => {
414
+ let i = r % 2 == 0 ? e : t, o = Math.PI / 2 + r * Math.PI / 5;
415
+ return a(i * Math.cos(o), i * Math.sin(o));
416
+ });
417
+ }
418
+ default: return Array.from({ length: 32 }, (e, t) => {
419
+ let n = t * 2 * Math.PI / 32;
420
+ return a(r * Math.cos(n), r * Math.sin(n));
421
+ });
422
+ }
423
+ }
424
+ //#endregion
425
+ //#region src/math/bubble.ts
426
+ var ze = 0, Be = 1;
427
+ function Ve(e, t = {}) {
428
+ let n = e.map(a), r = t.minRadius ?? ze, i = t.maxRadius ?? Be, o = t.maxValue ?? u(n, 0);
429
+ return o > 0 ? n.map((e) => r + (i - r) * Math.sqrt(e / o)) : n.map(() => r);
430
+ }
431
+ function He(e, t = 3) {
432
+ if (!(e > 0) || !Number.isFinite(e)) return [];
433
+ let n = Math.max(1, Math.floor(t)), r = Math.min(2, n);
434
+ for (let t = n; t <= n * 4; t++) {
435
+ let i = x([0, e], { count: t }).filter((e) => e > 0);
436
+ if (i.length >= r) return i.slice(-n);
437
+ }
438
+ return [e];
439
+ }
440
+ //#endregion
441
+ //#region src/math/reveal.ts
442
+ function F(e) {
443
+ let t = Infinity, n = -Infinity;
444
+ for (let r of e) for (let { x: e } of r) Number.isFinite(e) && (e < t && (t = e), e > n && (n = e));
445
+ return t <= n ? [t, n] : void 0;
446
+ }
447
+ function Ue(e, t, n) {
448
+ let r = (n - e.x) / (t.x - e.x);
449
+ return {
450
+ x: n,
451
+ y: e.y + (t.y - e.y) * r
452
+ };
453
+ }
454
+ function We(e, t) {
455
+ let n = [], r = [], i = () => {
456
+ r.length > 1 && n.push(r), r = [];
457
+ };
458
+ for (let n = 0; n < e.length; n++) {
459
+ let a = e[n], o = a.x <= t;
460
+ if (n === 0) {
461
+ o && r.push(a);
462
+ continue;
463
+ }
464
+ let s = e[n - 1], c = s.x <= t;
465
+ c && o ? r.push(a) : c ? (r.push(Ue(s, a, t)), i()) : o && r.push(Ue(s, a, t), a);
466
+ }
467
+ return i(), n;
468
+ }
469
+ function Ge(e, t) {
470
+ let n = e.length;
471
+ if (n < 3) return [];
472
+ let r = e[0], i = e[n - 1], a = r.x === i.x && r.y === i.y, o = a ? e.slice(0, -1) : e, s = [];
473
+ for (let e = 0; e < o.length; e++) {
474
+ let n = o[e], r = o[(e + o.length - 1) % o.length], i = n.x <= t;
475
+ i !== r.x <= t && s.push(Ue(r, n, t)), i && s.push(n);
476
+ }
477
+ return s.length < 3 ? [] : (a && s.push(s[0]), s);
478
+ }
479
+ function I(e, t) {
480
+ return t[0] + (t[1] - t[0]) * e;
481
+ }
482
+ function Ke(e, t) {
483
+ if (!(t > 0)) return [];
484
+ if (t >= 1) return e.map((e) => [...e]);
485
+ let n = F(e);
486
+ if (!n) return [];
487
+ let r = I(t, n);
488
+ return e.flatMap((e) => We(e, r));
489
+ }
490
+ function qe(e, t) {
491
+ if (!(t > 0)) return [];
492
+ if (t >= 1) return e.map((e) => [...e]);
493
+ let n = F(e);
494
+ if (!n) return [];
495
+ let r = I(t, n);
496
+ return e.map((e) => Ge(e, r)).filter((e) => e.length > 0);
497
+ }
498
+ function Je(e, t) {
499
+ if (t >= 1) return;
500
+ let n = F(e);
501
+ if (!n) return;
502
+ let r = Infinity, i = -Infinity;
503
+ for (let t of e) for (let { y: e } of t) Number.isFinite(e) && (e < r && (r = e), e > i && (i = e));
504
+ let a = Math.max(n[1] - n[0], i - r, 1), o = n[0] - a;
505
+ return {
506
+ minX: o,
507
+ maxX: t > 0 ? I(t, n) : o,
508
+ minY: r - a,
509
+ maxY: i + a
510
+ };
511
+ }
512
+ //#endregion
513
+ //#region src/math/bar.ts
514
+ var Ye = .6;
515
+ function Xe(e, t, n, r = Ye) {
516
+ if (!Number.isFinite(t)) return null;
517
+ let i = e + .5, a = r / 2;
518
+ return {
519
+ x0: i - a,
520
+ x1: i + a,
521
+ y0: Math.min(n, t),
522
+ y1: Math.max(n, t)
523
+ };
524
+ }
525
+ //#endregion
526
+ //#region src/math/barLabels.ts
527
+ var Ze = .5;
528
+ function Qe(e, t, n, r, i) {
529
+ let a = (e) => i ? e.maxY - e.minY : e.maxX - e.minX, o = (e) => i ? e.maxX - e.minX : e.maxY - e.minY, s = (i ? n.height : n.width) + 2 * r, c = (i ? n.width : n.height) + 2 * r;
530
+ if (!(s > 0) || !(c > 0)) return 0;
531
+ let l = a(e);
532
+ return !(o(e) >= c) || !(l >= s) ? 0 : l >= a(t) - 1e-9 ? 1 : Math.min(1, (l - s) / (Ze * s));
533
+ }
534
+ function $e(e, t, n) {
535
+ let r = /* @__PURE__ */ new Map(), i = (e, t) => `${t > 0 ? "+" : "-"}${typeof e}:${String(e)}`;
536
+ return t.forEach((t, a) => {
537
+ let o = n[a];
538
+ if (!Number.isFinite(t) || t === 0 || !Number.isFinite(o)) return;
539
+ let s = i(e[a], t), c = r.get(s);
540
+ c ? (c.total += t, (t > 0 ? o > n[c.outer] : o < n[c.outer]) && (c.outer = a)) : r.set(s, {
541
+ total: t,
542
+ outer: a
543
+ });
544
+ }), t.map((t, a) => {
545
+ if (!Number.isFinite(t) || t === 0 || !Number.isFinite(n[a])) return;
546
+ let o = r.get(i(e[a], t));
547
+ return o ? {
548
+ total: o.total,
549
+ outer: o.outer === a
550
+ } : void 0;
551
+ });
552
+ }
553
+ function et(e, t) {
554
+ let n = e.totals?.[t];
555
+ return {
556
+ share: e.normalized ? e.values[t] - (e.bases?.[t] ?? 0) : e.stacked ? e.own[t] : e.values[t],
557
+ total: n?.outer ? n.total : void 0
558
+ };
559
+ }
560
+ function tt(e, t, n) {
561
+ let r = e.total !== void 0 && t.total !== void 0 ? f(e.total, t.total, n) : n < .5 ? e.total : t.total;
562
+ return {
563
+ share: f(e.share, t.share, n),
564
+ total: r
565
+ };
566
+ }
567
+ function nt(e) {
568
+ let t = /^-?\d*(?:\.(\d+))?(?:e([+-]?\d+))?$/i.exec(y(e));
569
+ return t ? Math.max(0, (t[1]?.length ?? 0) - Number(t[2] ?? 0)) : 0;
570
+ }
571
+ //#endregion
572
+ //#region src/math/aggregate.ts
573
+ function L(e, t) {
574
+ if (typeof t == "function") return t([...e]);
575
+ if (t === "count") return e.length;
576
+ let n = c(e);
577
+ if (t === "sum") return k(n);
578
+ if (n.length === 0) return NaN;
579
+ switch (t) {
580
+ case "mean": return T(n) ?? NaN;
581
+ case "median": return E(n) ?? NaN;
582
+ case "min": return D(n) ?? NaN;
583
+ case "max": return w(n) ?? NaN;
584
+ case "first": return n[0];
585
+ case "last": return n[n.length - 1];
586
+ case "deviation": return S(n) ?? NaN;
587
+ case "variance": return A(n) ?? NaN;
588
+ }
589
+ return NaN;
590
+ }
591
+ function rt(e, t = {}) {
592
+ let n = Math.max(1, Math.floor(t.k ?? 3)), r = t.anchor ?? "middle", i = t.reduce ?? "mean", a = r === "start" ? 0 : r === "end" ? n - 1 : Math.floor((n - 1) / 2);
593
+ return e.map((r, o) => {
594
+ let s = o - a, l = s + n;
595
+ if (t.strict) {
596
+ if (s < 0 || l > e.length) return NaN;
597
+ let t = e.slice(s, l);
598
+ return t.every((e) => Number.isFinite(e)) ? L(t, i) : NaN;
599
+ }
600
+ let u = c(e.slice(Math.max(0, s), Math.min(e.length, l)));
601
+ return u.length === 0 ? NaN : L(u, i);
602
+ });
603
+ }
604
+ function it(e, t = "first") {
605
+ let n = c(e), r = (t) => e.map((e) => Number.isFinite(e) ? t(e) : NaN);
606
+ if (t === "extent") {
607
+ let e = D(n) ?? NaN, t = w(n) ?? NaN;
608
+ return r((n) => t > e ? (n - e) / (t - e) : NaN);
609
+ }
610
+ if (t === "deviation") {
611
+ let e = T(n) ?? NaN, t = S(n) ?? NaN;
612
+ return r((n) => t > 0 ? (n - e) / t : NaN);
613
+ }
614
+ let i = typeof t == "number" ? t : L(n, t);
615
+ return r((e) => Number.isFinite(i) && i !== 0 ? e / i : NaN);
616
+ }
617
+ //#endregion
618
+ //#region src/math/dodge.ts
619
+ function at(e, t, n = .1) {
620
+ let r = Math.max(1, Math.floor(t)), a = Number.isFinite(n) ? i(n) : 0;
621
+ return [(e + a / 2) / r, (e + 1 - a / 2) / r];
622
+ }
623
+ function ot(e, t, n = {}) {
624
+ let r = n.side ?? "both", i = Math.max(0, n.gap ?? 0), a = (e) => {
625
+ let n = typeof t == "number" ? t : t[e] ?? 0;
626
+ return Number.isFinite(n) ? Math.max(0, n) : 0;
627
+ }, o = e.map(() => NaN), s = e.map((e, t) => t).filter((t) => Number.isFinite(e[t])).sort((t, n) => e[t] - e[n] || t - n), c = 0;
628
+ for (let e of s) c = Math.max(c, a(e));
629
+ let l = [], u = 0, d = (e) => r === "both" || (r === "positive" ? e >= -1e-12 : e <= 1e-12);
630
+ for (let t of s) {
631
+ let n = e[t], r = a(t), s = r + c + i;
632
+ for (; u < l.length && n - e[l[u]] >= s;) u++;
633
+ let f = l.slice(u).filter((t) => {
634
+ let o = r + a(t) + i;
635
+ return Math.abs(n - e[t]) < o;
636
+ }), p = [0];
637
+ for (let t of f) {
638
+ let s = r + a(t) + i, c = n - e[t], l = Math.sqrt(Math.max(0, s * s - c * c));
639
+ p.push(o[t] + l, o[t] - l);
640
+ }
641
+ let m = (t) => f.every((s) => {
642
+ let c = r + a(s) + i, l = n - e[s], u = t - o[s];
643
+ return l * l + u * u >= c * c - 1e-9;
644
+ }), h = NaN;
645
+ for (let e of p) d(e) && m(e) && (Number.isNaN(h) || Math.abs(e) < Math.abs(h) - 1e-12 || Math.abs(Math.abs(e) - Math.abs(h)) <= 1e-12 && e > h) && (h = e);
646
+ o[t] = Number.isNaN(h) ? 0 : h, l.push(t);
647
+ }
648
+ return o;
649
+ }
650
+ //#endregion
651
+ //#region src/math/shared/binning.ts
652
+ function R(e, t, n, r, i) {
653
+ if (n !== void 0) return {
654
+ n: Math.max(1, Math.floor(n)),
655
+ max: t
656
+ };
657
+ if (r !== void 0 && Number.isFinite(r) && r > 0) {
658
+ let n = Math.max(1, Math.ceil((t - e) / r - 1e-9));
659
+ return {
660
+ n,
661
+ max: e + n * r
662
+ };
663
+ }
664
+ return {
665
+ n: Math.max(1, Math.floor(i)),
666
+ max: t
667
+ };
668
+ }
669
+ function z(e, t) {
670
+ return e === t ? [e - .5, t + .5] : [e, t];
671
+ }
672
+ function B(e, t, n, r) {
673
+ let i = n - t, a = Math.floor((e - t) / i * r), o = Math.min(r - 1, Math.max(0, a));
674
+ for (; o < r - 1 && e >= st(t, n, r, o + 1);) o++;
675
+ for (; o > 0 && e < st(t, n, r, o);) o--;
676
+ return o;
677
+ }
678
+ function st(e, t, n, r) {
679
+ return e + (t - e) * r / n;
680
+ }
681
+ function ct(e, t, n) {
682
+ let r = Array(n + 1);
683
+ for (let i = 0; i <= n; i++) r[i] = st(e, t, n, i);
684
+ return r;
685
+ }
686
+ //#endregion
687
+ //#region src/math/histogram.ts
688
+ var lt = 10;
689
+ function ut(e, t = {}) {
690
+ let n = c(e), [r, i] = t.range ?? C(n), a = t.range?.[2];
691
+ (r === void 0 || i === void 0) && (r = 0, i = 1), [r, i] = z(r, i);
692
+ let o = R(r, i, t.binCount, a, 10), s = o.n;
693
+ i = o.max;
694
+ let l = ct(r, i, s), u = Array(s).fill(0);
695
+ for (let e of n) e < r || e > i || u[B(e, r, i, s)]++;
696
+ return {
697
+ edges: l,
698
+ counts: u
699
+ };
700
+ }
701
+ //#endregion
702
+ //#region src/math/jitter.ts
703
+ function dt(e, t = {}) {
704
+ let n = Number.isFinite(t.width) ? t.width ?? 1 : 1, r = t.seed ?? 0;
705
+ return e.map((e) => (l(e, r) - .5) * n);
706
+ }
707
+ //#endregion
708
+ //#region src/math/regression.ts
709
+ var ft = .95, pt = 50;
710
+ function mt(e, t, n = {}) {
711
+ let r = Math.max(0, Math.floor(n.degree ?? 1)), i = xt(e, t), a = i.length, o = r + 1;
712
+ if (a <= o) return [];
713
+ let s = i.map(([e]) => e), c = d(s), l = u(s), f = (c + l) / 2, p = l > c ? (l - c) / 2 : 1, m = (e) => {
714
+ let t = (e - f) / p;
715
+ return Array.from({ length: o }, (e, n) => t ** n);
716
+ }, h = Array.from({ length: o }, () => Array(o).fill(0)), g = Array(o).fill(0);
717
+ for (let [e, t] of i) {
718
+ let n = m(e);
719
+ for (let e = 0; e < o; e++) {
720
+ g[e] += n[e] * t;
721
+ for (let t = 0; t < o; t++) h[e][t] += n[e] * n[t];
722
+ }
723
+ }
724
+ let _ = St(h);
725
+ if (!_) return [];
726
+ let v = _.map((e) => e.reduce((e, t, n) => e + t * g[n], 0)), y = (e) => e.reduce((e, t, n) => e + t * v[n], 0), b = n.level ?? ft, x = i.reduce((e, [t, n]) => e + (n - y(m(t))) ** 2, 0), S = Math.sqrt(x / (a - o)), C = b > 0 && b < 1 ? V((1 + b) / 2, a - o) : 0, [w, T] = n.domain ?? [c, l], E = Math.max(2, Math.floor(n.samples ?? pt));
727
+ return Array.from({ length: E }, (e, t) => {
728
+ let n = w + (T - w) * t / (E - 1), r = m(n), i = y(r), a = 0;
729
+ for (let e = 0; e < o; e++) for (let t = 0; t < o; t++) a += r[e] * _[e][t] * r[t];
730
+ let s = C * S * Math.sqrt(Math.max(0, a));
731
+ return {
732
+ x: n,
733
+ y: i,
734
+ low: i - s,
735
+ high: i + s
736
+ };
737
+ });
738
+ }
739
+ function ht(e, t, n = {}) {
740
+ return gt(e, t, {
741
+ ...n,
742
+ level: 0
743
+ }).map(({ x: e, y: t }) => ({
744
+ x: e,
745
+ y: t
746
+ }));
747
+ }
748
+ function gt(e, t, n = {}) {
749
+ let r = xt(e, t).sort((e, t) => e[0] - t[0]), i = r.length;
750
+ if (i < 2) return [];
751
+ let a = Math.min(1, Math.max(0, n.bandwidth ?? .3)), o = Math.min(i, Math.max(2, Math.ceil(a * i))), s = Math.max(0, Math.floor(n.iterations ?? 0) || 0), c = r.map(([e]) => e), l = r.map(([, e]) => e), u = Array(i).fill(1);
752
+ for (let e = 0; e < s; e++) {
753
+ let e = c.map((e, t) => l[t] - _t(c, l, e, o, u).y), t = e.map(Math.abs), n = 6 * vt(t), r = t.reduce((e, t) => e + t, 0) / i;
754
+ if (!(n > 1e-7 * r) || !(r > 0)) break;
755
+ u = e.map((e) => {
756
+ let t = e / n;
757
+ return Math.abs(t) < 1 ? (1 - t * t) ** 2 : 0;
758
+ });
759
+ }
760
+ let d = n.level ?? ft, f = 0, p = 0;
761
+ if (d > 0 && d < 1 && i > 3) {
762
+ let e = 0, t = 0, n = 0;
763
+ c.forEach((r, i) => {
764
+ let a = _t(c, l, r, o, u), s = 0, d = 0;
765
+ a.indices.forEach((e, t) => {
766
+ let n = a.weights[t];
767
+ d += n * n, e === i && (s = n);
768
+ }), e += d - 2 * s + 1;
769
+ let f = l[i] - a.y;
770
+ Number.isFinite(f) && (t += u[i] * f * f, n += u[i]);
771
+ }), e > 1e-9 && n > 0 && (f = Math.sqrt(t / n * i / e), p = V((1 + d) / 2, Math.max(1, e)));
772
+ }
773
+ let m = c[0], h = c[i - 1], g = Math.max(2, Math.floor(n.samples ?? pt));
774
+ return Array.from({ length: g }, (e, t) => {
775
+ let n = m + (h - m) * t / (g - 1), r = _t(c, l, n, o, u);
776
+ if (!(p > 0 && f > 0) || !Number.isFinite(r.y)) return {
777
+ x: n,
778
+ y: r.y,
779
+ low: r.y,
780
+ high: r.y
781
+ };
782
+ let i = Math.sqrt(r.weights.reduce((e, t) => e + t * t, 0)), a = p * f * i;
783
+ return {
784
+ x: n,
785
+ y: r.y,
786
+ low: r.y - a,
787
+ high: r.y + a
788
+ };
789
+ });
790
+ }
791
+ function _t(e, t, n, r, i) {
792
+ let a = e.map((e, t) => ({
793
+ i: t,
794
+ d: Math.abs(e - n)
795
+ })).sort((e, t) => e.d - t.d || e.i - t.i).slice(0, r), o = a[a.length - 1].d * 1.000001 || 1, s = a.map((e) => e.i), c = a.map((e) => (1 - (e.d / o) ** 3) ** 3 * i[e.i]), l = c.reduce((e, t) => e + t, 0);
796
+ if (!(l > 0)) return {
797
+ y: NaN,
798
+ indices: s,
799
+ weights: c.map(() => 0)
800
+ };
801
+ let u = 0;
802
+ for (let t = 0; t < c.length; t++) u += c[t] * e[s[t]];
803
+ u /= l;
804
+ let d = 0;
805
+ for (let t = 0; t < c.length; t++) d += c[t] * (e[s[t]] - u) ** 2;
806
+ let f = d / l > 1e-12, p = c.map((t, r) => t / l + (f ? (n - u) * t * (e[s[r]] - u) / d : 0)), m = 0;
807
+ for (let e = 0; e < p.length; e++) m += p[e] * t[s[e]];
808
+ return {
809
+ y: m,
810
+ indices: s,
811
+ weights: p
812
+ };
813
+ }
814
+ function vt(e) {
815
+ let t = [...e].sort((e, t) => e - t), n = Math.floor(t.length / 2);
816
+ return t.length % 2 == 0 ? (t[n - 1] + t[n]) / 2 : t[n];
817
+ }
818
+ function yt(e, t = "ci", n = ft) {
819
+ let r = c(e), i = r.length;
820
+ if (i === 0) return {
821
+ mean: NaN,
822
+ low: NaN,
823
+ high: NaN,
824
+ n: 0
825
+ };
826
+ let a = T(r) ?? NaN;
827
+ if (i === 1) return {
828
+ mean: a,
829
+ low: a,
830
+ high: a,
831
+ n: i
832
+ };
833
+ let o = Math.sqrt(r.reduce((e, t) => e + (t - a) ** 2, 0) / (i - 1)), s = o / Math.sqrt(i), l = t === "sd" ? o : t === "se" ? s : s * V((1 + n) / 2, i - 1);
834
+ return {
835
+ mean: a,
836
+ low: a - l,
837
+ high: a + l,
838
+ n: i
839
+ };
840
+ }
841
+ function V(e, t) {
842
+ if (!(e > 0 && e < 1) || !(t >= 1)) return NaN;
843
+ if (t === 1) return Math.tan(Math.PI * (e - .5));
844
+ if (t === 2) return (2 * e - 1) / Math.sqrt(2 * e * (1 - e));
845
+ let n = bt(e), r = n * n, i = (r + 1) * n * .25, a = ((5 * r + 16) * r + 3) * n * (1 / 96), o = (((3 * r + 19) * r + 17) * r - 15) * n * (1 / 384), s = ((((79 * r + 776) * r + 1482) * r - 1920) * r - 945) * n;
846
+ return n + i / t + a / t ** 2 + o / t ** 3 + s / (92160 * t ** 4);
847
+ }
848
+ function bt(e) {
849
+ let t = [
850
+ -39.69683028665376,
851
+ 220.9460984245205,
852
+ -275.9285104469687,
853
+ 138.357751867269,
854
+ -30.66479806614716,
855
+ 2.506628277459239
856
+ ], n = [
857
+ -54.47609879822406,
858
+ 161.5858368580409,
859
+ -155.6989798598866,
860
+ 66.80131188771972,
861
+ -13.28068155288572
862
+ ], r = [
863
+ -.007784894002430293,
864
+ -.3223964580411365,
865
+ -2.400758277161838,
866
+ -2.549732539343734,
867
+ 4.374664141464968,
868
+ 2.938163982698783
869
+ ], i = [
870
+ .007784695709041462,
871
+ .3224671290700398,
872
+ 2.445134137142996,
873
+ 3.754408661907416
874
+ ];
875
+ if (e < .02425) {
876
+ let t = Math.sqrt(-2 * Math.log(e));
877
+ return (((((r[0] * t + r[1]) * t + r[2]) * t + r[3]) * t + r[4]) * t + r[5]) / ((((i[0] * t + i[1]) * t + i[2]) * t + i[3]) * t + 1);
878
+ }
879
+ if (e > .97575) return -bt(1 - e);
880
+ let a = e - .5, o = a * a;
881
+ return (((((t[0] * o + t[1]) * o + t[2]) * o + t[3]) * o + t[4]) * o + t[5]) * a / (((((n[0] * o + n[1]) * o + n[2]) * o + n[3]) * o + n[4]) * o + 1);
882
+ }
883
+ function xt(e, t) {
884
+ let n = [], r = Math.min(e.length, t.length);
885
+ for (let i = 0; i < r; i++) Number.isFinite(e[i]) && Number.isFinite(t[i]) && n.push([e[i], t[i]]);
886
+ return n;
887
+ }
888
+ function St(e) {
889
+ let t = e.length, n = e.map((e, n) => [...e, ...Array.from({ length: t }, (e, t) => +(n === t))]);
890
+ for (let e = 0; e < t; e++) {
891
+ let r = e;
892
+ for (let i = e + 1; i < t; i++) Math.abs(n[i][e]) > Math.abs(n[r][e]) && (r = i);
893
+ if (Math.abs(n[r][e]) < 1e-12) return null;
894
+ [n[e], n[r]] = [n[r], n[e]];
895
+ let i = n[e][e];
896
+ for (let r = 0; r < 2 * t; r++) n[e][r] /= i;
897
+ for (let r = 0; r < t; r++) {
898
+ if (r === e) continue;
899
+ let i = n[r][e];
900
+ if (i !== 0) for (let a = 0; a < 2 * t; a++) n[r][a] -= i * n[e][a];
901
+ }
902
+ }
903
+ return n.map((e) => e.slice(t));
904
+ }
905
+ //#endregion
906
+ //#region src/math/stack.ts
907
+ function Ct(e, t, n = {}) {
908
+ let r = n.offset ?? "zero", i = n.diverging ?? !0, a = r === "zero" ? n.baseline ?? 0 : 0, o = wt(e, t, n.order ?? "appearance"), s = Array(t).fill(t);
909
+ o.forEach((e, t) => {
910
+ s[e] = t;
911
+ });
912
+ let c = (e) => s[e] ?? t, l = e.map((e) => {
913
+ let t = e.map((e, t) => t).sort((t, n) => c(e[t].series) - c(e[n].series) || t - n), n = Array(e.length), r = a, o = a;
914
+ for (let a of t) {
915
+ let t = e[a].value;
916
+ Number.isFinite(t) ? i && t < 0 ? (n[a] = [o, o + t], o += t) : (n[a] = [r, r + t], r += t) : n[a] = [NaN, NaN];
917
+ }
918
+ return n;
919
+ });
920
+ if (r === "normalize") for (let e of l) {
921
+ let [t, n] = H(e);
922
+ n > t && U(e, (e) => (e - t) / (n - t));
923
+ }
924
+ else if (r === "center") for (let e of l) {
925
+ let [t, n] = H(e);
926
+ if (!(n >= t)) continue;
927
+ let r = (t + n) / 2;
928
+ U(e, (e) => e - r);
929
+ }
930
+ else if (r === "wiggle") {
931
+ let n = Tt(e, t, s);
932
+ l.forEach((e, t) => {
933
+ U(e, (e) => e + n[t]);
934
+ });
935
+ let r = l.flatMap((e) => {
936
+ let [t, n] = H(e);
937
+ return n >= t ? [(t + n) / 2] : [];
938
+ }), i = r.length > 0 ? k(r) / r.length : 0;
939
+ for (let e of l) U(e, (e) => e - i);
940
+ }
941
+ return {
942
+ spans: l,
943
+ order: o
944
+ };
945
+ }
946
+ function wt(e, t, n) {
947
+ let r = Array.from({ length: t }, (e, t) => t);
948
+ if (Array.isArray(n)) {
949
+ let e = /* @__PURE__ */ new Set();
950
+ return [...n.filter((n) => Number.isInteger(n) && n >= 0 && n < t && !e.has(n) && e.add(n)), ...r.filter((t) => !e.has(t))];
951
+ }
952
+ if (n === "reverse") return r.reverse();
953
+ if (n === "appearance") return r;
954
+ let i = Array(t).fill(0), a = Array(t).fill(-Infinity), o = Array(t).fill(0);
955
+ if (e.forEach((e, n) => {
956
+ let r = /* @__PURE__ */ new Map();
957
+ for (let n of e) n.series < 0 || n.series >= t || r.set(n.series, (r.get(n.series) ?? 0) + s(n.value));
958
+ for (let [e, t] of r) i[e] += t, t > a[e] && (a[e] = t, o[e] = n);
959
+ }), n === "sum") return r.sort((e, t) => i[e] - i[t] || e - t);
960
+ let c = r.sort((e, t) => o[e] - o[t] || e - t), l = 0, u = 0, d = [], f = [];
961
+ for (let e of c) l < u ? (l += i[e], d.push(e)) : (u += i[e], f.push(e));
962
+ return [...f.reverse(), ...d];
963
+ }
964
+ function H(e) {
965
+ let t = Infinity, n = -Infinity;
966
+ for (let [r, i] of e) Number.isFinite(r) && Number.isFinite(i) && (t = Math.min(t, r, i), n = Math.max(n, r, i));
967
+ return [t, n];
968
+ }
969
+ function U(e, t) {
970
+ for (let n of e) n[0] = t(n[0]), n[1] = t(n[1]);
971
+ }
972
+ function Tt(e, t, n) {
973
+ let r = t, i = e.map((e) => {
974
+ let t = Array(r).fill(0);
975
+ for (let i of e) {
976
+ let e = n[i.series];
977
+ e !== void 0 && e < r && (t[e] += s(i.value));
978
+ }
979
+ return t;
980
+ }), a = Array(e.length).fill(0), o = 0;
981
+ for (let t = 1; t < e.length; t++) {
982
+ let e = 0, n = 0, s = 0;
983
+ for (let a = 0; a < r; a++) {
984
+ let r = i[t][a], o = r - i[t - 1][a], c = o / 2 + s;
985
+ s += o, e += r, n += c * r;
986
+ }
987
+ e && (o -= n / e), a[t] = o;
988
+ }
989
+ return a;
990
+ }
991
+ //#endregion
992
+ //#region src/math/bullet.ts
993
+ var Et = 5;
994
+ function Dt(e, t = {}) {
995
+ let n = t.targetTicks ?? Et, r = ke(e, {
996
+ zero: !0,
997
+ nice: t.nice !== !1,
998
+ targetTicks: n
999
+ }), i = Number.isFinite(t.min) ? t.min : r[0], a = Number.isFinite(t.max) ? t.max : r[1];
1000
+ if (!(a > i)) {
1001
+ let e = Math.abs(r[1] - r[0]) || 1;
1002
+ Number.isFinite(t.max) && !Number.isFinite(t.min) ? i = a - e : a = i + e;
1003
+ }
1004
+ let o = i === r[0] && a === r[1] && r[2] !== void 0 ? r[2] : b(a - i, n);
1005
+ return [
1006
+ i,
1007
+ a,
1008
+ o
1009
+ ];
1010
+ }
1011
+ function Ot(e, t = {}) {
1012
+ let n = t.ranges ?? [], r = t.target, i = kt(t.domain) ? t.domain : Dt([
1013
+ e,
1014
+ r ?? NaN,
1015
+ ...n
1016
+ ], t), a = Math.min(i[0], i[1]), o = Math.max(i[0], i[1]), s = (e) => (e - a) / (o - a), c = (e) => _(e, a, o), l = [], u = a;
1017
+ n.forEach((e, t) => {
1018
+ let r = t === n.length - 1, i = Number.isNaN(e) ? u : r ? Math.max(u, o) : c(Math.max(u, e));
1019
+ l.push({
1020
+ index: t,
1021
+ from: u,
1022
+ to: i,
1023
+ startFraction: s(u),
1024
+ endFraction: s(i)
1025
+ }), u = i;
1026
+ });
1027
+ let d = a <= 0 && o >= 0, f = d ? 0 : o < 0 ? o : a, p = Number.isFinite(e) ? {
1028
+ from: f,
1029
+ to: c(e),
1030
+ startFraction: s(f),
1031
+ endFraction: s(c(e))
1032
+ } : null, m = r !== void 0 && Number.isFinite(r) ? {
1033
+ value: c(r),
1034
+ fraction: s(c(r))
1035
+ } : null, h = i[2], g = h !== void 0 && h > 0 && Number.isFinite(h) ? h : b(o - a, Et);
1036
+ return {
1037
+ domain: [
1038
+ a,
1039
+ o,
1040
+ g
1041
+ ],
1042
+ ticks: x([a, o], { step: g }),
1043
+ bands: l,
1044
+ baseline: f,
1045
+ zero: d,
1046
+ measure: p,
1047
+ target: m
1048
+ };
1049
+ }
1050
+ function kt(e) {
1051
+ return e !== void 0 && Number.isFinite(e[0]) && Number.isFinite(e[1]) && e[0] !== e[1];
1052
+ }
1053
+ //#endregion
1054
+ //#region src/math/keyframes.ts
1055
+ function W(e, t) {
1056
+ let n = e.length;
1057
+ if (n === 0 || !(t >= e[0]) || !(t <= e[n - 1])) return;
1058
+ let r = 0, i = n - 1;
1059
+ for (; i - r > 1;) {
1060
+ let n = r + i >> 1;
1061
+ e[n] <= t ? r = n : i = n;
1062
+ }
1063
+ return e[i] <= t ? {
1064
+ lo: i,
1065
+ hi: i,
1066
+ u: 0
1067
+ } : e[r] === t || i === r ? {
1068
+ lo: r,
1069
+ hi: r,
1070
+ u: 0
1071
+ } : {
1072
+ lo: r,
1073
+ hi: i,
1074
+ u: (t - e[r]) / (e[i] - e[r])
1075
+ };
1076
+ }
1077
+ function At(e, t, n, r = Infinity) {
1078
+ let i = Math.min(e.length, t.length);
1079
+ if (i === 0 || !(n >= t[0])) return [];
1080
+ let a = Math.min(n, t[i - 1]), o = Math.max(t[0], a - Math.max(0, r)), s = (n) => {
1081
+ let r = W(t.slice(0, i), n);
1082
+ if (!r) return e[n < t[0] ? 0 : i - 1];
1083
+ let a = e[r.lo], o = e[r.hi];
1084
+ return {
1085
+ x: a.x + (o.x - a.x) * r.u,
1086
+ y: a.y + (o.y - a.y) * r.u
1087
+ };
1088
+ }, c = [s(o)];
1089
+ for (let n = 0; n < i; n++) t[n] > o && t[n] < a && c.push(e[n]);
1090
+ return a > o && c.push(s(a)), c;
1091
+ }
1092
+ function jt(e) {
1093
+ return e < .5 ? 4 * e * e * e : 1 - (-2 * e + 2) ** 3 / 2;
1094
+ }
1095
+ function Mt(e, t, n, r = {}) {
1096
+ let i = e.length, a = r.order === "ascending" ? -1 : 1, o = t.map((t, r) => e.map((e, t) => {
1097
+ let i = n[r]?.[t];
1098
+ return Number.isFinite(i) ? i : 0;
1099
+ })), s = Infinity;
1100
+ for (let e = 1; e < t.length; e++) s = Math.min(s, t[e] - t[e - 1]);
1101
+ let c = Math.max(0, r.swap ?? (Number.isFinite(s) ? s / 4 : 0)), l = (n) => {
1102
+ let r = W(t, n);
1103
+ if (!r) {
1104
+ let r = n < t[0] ? 0 : t.length - 1;
1105
+ return o[r] ?? e.map(() => 0);
1106
+ }
1107
+ let i = o[r.lo], a = o[r.hi];
1108
+ return i.map((e, t) => e + (a[t] - e) * r.u);
1109
+ }, u = (e) => {
1110
+ let t = e.map((e, t) => t).sort((t, n) => a * (e[n] - e[t]) || t - n), n = [];
1111
+ return t.forEach((e, t) => {
1112
+ n[e] = t;
1113
+ }), n;
1114
+ }, d = [];
1115
+ for (let e = 0; e < t.length; e++) {
1116
+ if (d.push(t[e]), e + 1 >= t.length) continue;
1117
+ let n = t[e], r = t[e + 1], a = o[e], s = o[e + 1];
1118
+ for (let e = 0; e < i; e++) for (let t = e + 1; t < i; t++) {
1119
+ let i = a[e] - a[t], o = s[e] - s[t];
1120
+ if (i === o || Math.sign(i) === Math.sign(o)) continue;
1121
+ let c = i / (i - o);
1122
+ c > 0 && c < 1 && d.push(n + (r - n) * c);
1123
+ }
1124
+ }
1125
+ d.sort((e, t) => e - t);
1126
+ let f = [], p = u(l(t[0] ?? 0));
1127
+ if (d.length > 1) {
1128
+ let e = (e) => (d[e] + d[e + 1]) / 2;
1129
+ p = u(l(e(0)));
1130
+ let t = p;
1131
+ for (let n = 1; n + 1 < d.length; n++) {
1132
+ if (!(d[n + 1] > d[n])) continue;
1133
+ let r = u(l(e(n)));
1134
+ for (let e = 0; e < i; e++) r[e] !== t[e] && f.push({
1135
+ time: d[n],
1136
+ key: e,
1137
+ delta: r[e] - t[e]
1138
+ });
1139
+ t = r;
1140
+ }
1141
+ }
1142
+ let m = r.top !== void 0 && Number.isFinite(r.top) ? Math.max(0, Math.floor(r.top)) : void 0, h = (e) => m === void 0 ? 1 : Math.max(0, Math.min(1, m - e)), g = (t) => {
1143
+ let n = l(t), r = u(n), i = [...p];
1144
+ for (let e of f) {
1145
+ if (e.time > t) break;
1146
+ let n = c > 0 ? Math.min(1, (t - e.time) / c) : 1;
1147
+ i[e.key] += e.delta * jt(n);
1148
+ }
1149
+ return e.map((e, t) => ({
1150
+ key: e,
1151
+ value: n[t],
1152
+ rank: r[t],
1153
+ position: i[t],
1154
+ presence: h(i[t])
1155
+ }));
1156
+ };
1157
+ return {
1158
+ keys: e,
1159
+ times: t,
1160
+ top: m,
1161
+ at: g,
1162
+ view(t) {
1163
+ let n = g(t), r = /* @__PURE__ */ new Map();
1164
+ for (let e of n) r.set(e.key, e.position);
1165
+ let i = new Set(n.map((e, t) => ({
1166
+ entry: e,
1167
+ e: t
1168
+ })).sort((e, t) => e.entry.position - t.entry.position || e.e - t.e).slice(0, m ?? n.length).map(({ entry: e }) => e.key));
1169
+ return {
1170
+ entries: n.filter((e) => e.presence > 0),
1171
+ categories: e.filter((e) => i.has(e)),
1172
+ slot: (e) => r.get(e)
1173
+ };
1174
+ }
1175
+ };
1176
+ }
1177
+ //#endregion
1178
+ //#region src/math/waterfall.ts
1179
+ function Nt(e, t = []) {
1180
+ let n = 0;
1181
+ return e.map((e, r) => {
1182
+ if (t[r]) return {
1183
+ base: 0,
1184
+ end: n,
1185
+ delta: n,
1186
+ kind: "total"
1187
+ };
1188
+ let i = Number.isFinite(e) ? e : 0, a = n;
1189
+ return n += i, {
1190
+ base: a,
1191
+ end: n,
1192
+ delta: i,
1193
+ kind: i < 0 ? "down" : "up"
1194
+ };
1195
+ });
1196
+ }
1197
+ //#endregion
1198
+ //#region src/math/morph.ts
1199
+ function Pt(e) {
1200
+ for (let t = 1; t < e.length; t++) if (!(e[t].x >= e[t - 1].x)) return !1;
1201
+ return !0;
1202
+ }
1203
+ function G(e, t) {
1204
+ let n = e.length;
1205
+ if (t <= e[0].x) return e[0].y;
1206
+ if (t >= e[n - 1].x) return e[n - 1].y;
1207
+ let r = 0, i = n - 1;
1208
+ for (; i - r > 1;) {
1209
+ let n = r + i >> 1;
1210
+ e[n].x <= t ? r = n : i = n;
1211
+ }
1212
+ let a = e[r], o = e[i], s = o.x - a.x;
1213
+ return s > 0 ? a.y + (o.y - a.y) * (t - a.x) / s : o.y;
1214
+ }
1215
+ function Ft(e, t, n) {
1216
+ let r = [0], i = 0;
1217
+ for (let a = 1; a < e.length; a++) i += Math.hypot((e[a].x - e[a - 1].x) / t, (e[a].y - e[a - 1].y) / n), r.push(i);
1218
+ return i > 0 ? r.map((e) => e / i) : r.map((t, n) => e.length > 1 ? n / (e.length - 1) : 0);
1219
+ }
1220
+ function It(e, t, n) {
1221
+ let r = 1;
1222
+ for (; r < t.length - 1 && t[r] < n;) r++;
1223
+ let i = e[r - 1] ?? e[0], a = e[r] ?? i, o = (t[r] ?? 1) - (t[r - 1] ?? 0), s = o > 0 ? (n - (t[r - 1] ?? 0)) / o : 0;
1224
+ return {
1225
+ x: i.x + (a.x - i.x) * s,
1226
+ y: i.y + (a.y - i.y) * s
1227
+ };
1228
+ }
1229
+ function K(e, t, n) {
1230
+ let r = n > 0 ? n < 1 ? n : 1 : 0;
1231
+ if (r === 0 || t.length === 0) return [...e];
1232
+ if (r === 1 || e.length === 0) return [...t];
1233
+ if (Pt(e) && Pt(t)) {
1234
+ let n = e[0].x + (t[0].x - e[0].x) * r, i = e[e.length - 1].x + (t[t.length - 1].x - e[e.length - 1].x) * r, a = /* @__PURE__ */ new Set([n, i]);
1235
+ for (let t of e) t.x > n && t.x < i && a.add(t.x);
1236
+ for (let e of t) e.x > n && e.x < i && a.add(e.x);
1237
+ return [...a].sort((e, t) => e - t).map((n) => ({
1238
+ x: n,
1239
+ y: G(e, n) + (G(t, n) - G(e, n)) * r
1240
+ }));
1241
+ }
1242
+ let i = [...e, ...t], a = (e) => {
1243
+ let t = Infinity, n = -Infinity;
1244
+ for (let r of i) t = Math.min(t, e(r)), n = Math.max(n, e(r));
1245
+ return n - t || 1;
1246
+ }, o = a((e) => e.x), s = a((e) => e.y), c = Ft(e, o, s), l = Ft(t, o, s), u = Math.max(e.length, t.length, 2), d = [];
1247
+ for (let n = 0; n < u; n++) {
1248
+ let i = n / (u - 1), a = It(e, c, i), o = It(t, l, i);
1249
+ d.push({
1250
+ x: a.x + (o.x - a.x) * r,
1251
+ y: a.y + (o.y - a.y) * r
1252
+ });
1253
+ }
1254
+ return d;
1255
+ }
1256
+ function Lt(e, t, n) {
1257
+ let r = n > 0 ? n < 1 ? n : 1 : 0;
1258
+ if (r === 0) return e.map((e) => [...e]);
1259
+ if (r === 1) return t.map((e) => [...e]);
1260
+ if (e.length === t.length) return e.map((e, n) => K(e, t[n], r));
1261
+ let i = K(e.flat(), t.flat(), r);
1262
+ return i.length > 0 ? [i] : [];
1263
+ }
1264
+ function Rt(e) {
1265
+ for (let t = 1; t < e.length; t++) if (!(e[t].x >= e[t - 1].x)) return !1;
1266
+ return !0;
1267
+ }
1268
+ function zt(e, t) {
1269
+ let n = e.length;
1270
+ if (t <= e[0].x) return [e[0].y1, e[0].y2];
1271
+ if (t >= e[n - 1].x) return [e[n - 1].y1, e[n - 1].y2];
1272
+ let r = 0, i = n - 1;
1273
+ for (; i - r > 1;) {
1274
+ let n = r + i >> 1;
1275
+ e[n].x <= t ? r = n : i = n;
1276
+ }
1277
+ let a = e[r], o = e[i], s = o.x - a.x;
1278
+ if (!(s > 0)) return [o.y1, o.y2];
1279
+ let c = (t - a.x) / s;
1280
+ return [a.y1 + (o.y1 - a.y1) * c, a.y2 + (o.y2 - a.y2) * c];
1281
+ }
1282
+ function Bt(e, t) {
1283
+ let n = t * (e.length - 1), r = Math.min(Math.floor(n), e.length - 1), i = e[r], a = e[Math.min(r + 1, e.length - 1)], o = n - r;
1284
+ return {
1285
+ x: i.x + (a.x - i.x) * o,
1286
+ y1: i.y1 + (a.y1 - i.y1) * o,
1287
+ y2: i.y2 + (a.y2 - i.y2) * o
1288
+ };
1289
+ }
1290
+ function Vt(e, t, n) {
1291
+ let r = n > 0 ? n < 1 ? n : 1 : 0;
1292
+ if (r === 0 || t.length === 0) return e.map((e) => ({ ...e }));
1293
+ if (r === 1 || e.length === 0) return t.map((e) => ({ ...e }));
1294
+ if (Rt(e) && Rt(t)) {
1295
+ let n = e[0].x + (t[0].x - e[0].x) * r, i = e[e.length - 1].x + (t[t.length - 1].x - e[e.length - 1].x) * r, a = /* @__PURE__ */ new Set([n, i]);
1296
+ for (let t of e) t.x > n && t.x < i && a.add(t.x);
1297
+ for (let e of t) e.x > n && e.x < i && a.add(e.x);
1298
+ return [...a].sort((e, t) => e - t).map((n) => {
1299
+ let [i, a] = zt(e, n), [o, s] = zt(t, n);
1300
+ return {
1301
+ x: n,
1302
+ y1: i + (o - i) * r,
1303
+ y2: a + (s - a) * r
1304
+ };
1305
+ });
1306
+ }
1307
+ let i = Math.max(e.length, t.length, 2), a = [];
1308
+ for (let n = 0; n < i; n++) {
1309
+ let o = n / (i - 1), s = Bt(e, o), c = Bt(t, o);
1310
+ a.push({
1311
+ x: s.x + (c.x - s.x) * r,
1312
+ y1: s.y1 + (c.y1 - s.y1) * r,
1313
+ y2: s.y2 + (c.y2 - s.y2) * r
1314
+ });
1315
+ }
1316
+ return a;
1317
+ }
1318
+ function Ht(e, t, n) {
1319
+ let r = n > 0 ? n < 1 ? n : 1 : 0;
1320
+ if (r === 0) return e.map((e) => e.map((e) => ({ ...e })));
1321
+ if (r === 1) return t.map((e) => e.map((e) => ({ ...e })));
1322
+ if (e.length === t.length) return e.map((e, n) => Vt(e, t[n], r));
1323
+ let i = Vt(e.flat(), t.flat(), r);
1324
+ return i.length > 0 ? [i] : [];
1325
+ }
1326
+ function Ut(e) {
1327
+ for (let t = 1; t < e.length; t++) if (!(e[t] >= e[t - 1])) return !1;
1328
+ return !0;
1329
+ }
1330
+ function Wt(e, t) {
1331
+ let { edges: n, values: r } = e, i = r.length;
1332
+ if (!(t >= n[0])) return r[0];
1333
+ if (t >= n[i]) return r[i - 1];
1334
+ let a = 0, o = i;
1335
+ for (; o - a > 1;) {
1336
+ let e = a + o >> 1;
1337
+ n[e] <= t ? a = e : o = e;
1338
+ }
1339
+ return r[a];
1340
+ }
1341
+ function Gt(e, t, n) {
1342
+ let r = n > 0 ? n < 1 ? n : 1 : 0, i = (e) => ({
1343
+ edges: [...e.edges],
1344
+ values: [...e.values]
1345
+ }), a = (e) => e.values.length === 0 || e.edges.length !== e.values.length + 1;
1346
+ if (r === 0 || a(t)) return i(e);
1347
+ if (r === 1 || a(e)) return i(t);
1348
+ if (!Ut(e.edges) || !Ut(t.edges)) return i(r < .5 ? e : t);
1349
+ let o = e.edges, s = t.edges, c = o[0] + (s[0] - o[0]) * r, l = o[o.length - 1] + (s[s.length - 1] - o[o.length - 1]) * r, u = /* @__PURE__ */ new Set([c, l]);
1350
+ for (let e of o) e > c && e < l && u.add(e);
1351
+ for (let e of s) e > c && e < l && u.add(e);
1352
+ let d = [...u].sort((e, t) => e - t), f = [];
1353
+ for (let n = 0; n + 1 < d.length; n++) {
1354
+ let i = (d[n] + d[n + 1]) / 2, a = Wt(e, i);
1355
+ f.push(a + (Wt(t, i) - a) * r);
1356
+ }
1357
+ return {
1358
+ edges: d,
1359
+ values: f
1360
+ };
1361
+ }
1362
+ //#endregion
1363
+ //#region src/math/violin.ts
1364
+ var Kt = 1e-6, qt = 80, Jt = .4, Yt = Math.sqrt(2 * Math.PI);
1365
+ function Xt(e) {
1366
+ return Math.exp(-(e * e) / 2) / Yt;
1367
+ }
1368
+ function Zt(e) {
1369
+ let t = e.length, n = e.reduce((e, t) => e + t, 0) / t, r = e.reduce((e, t) => e + (t - n) ** 2, 0) / t;
1370
+ return Math.sqrt(r);
1371
+ }
1372
+ function Qt(e) {
1373
+ let t = Zt(e);
1374
+ return t === 0 ? Kt : 1.06 * t * e.length ** (-1 / 5);
1375
+ }
1376
+ function $t(e, t = {}) {
1377
+ let n = c(e);
1378
+ if (n.length === 0) return [];
1379
+ let r = t.bandwidth ?? Qt(n), i = t.samples ?? 80, [a, o] = t.domain ?? (() => {
1380
+ let e = d(n), t = u(n), i = 3 * r;
1381
+ return [e - i, t + i];
1382
+ })(), s = n.length, l = an(n, r), f = [], p = i > 1 ? (o - a) / (i - 1) : 0;
1383
+ for (let e = 0; e < i; e++) {
1384
+ let t = i > 1 ? a + e * p : a, o = 0;
1385
+ if (l) {
1386
+ let { centers: e, weights: n } = l;
1387
+ for (let i = 0; i < e.length; i++) n[i] > 0 && (o += n[i] * Xt((t - e[i]) / r));
1388
+ } else for (let e of n) o += Xt((t - e) / r);
1389
+ f.push({
1390
+ x: t,
1391
+ density: o / (s * r)
1392
+ });
1393
+ }
1394
+ return f;
1395
+ }
1396
+ var en = 2e3, tn = 8, nn = 1024, rn = 8192;
1397
+ function an(e, t) {
1398
+ if (e.length <= en || !(t > 0) || !Number.isFinite(t)) return;
1399
+ let n = d(e), r = u(e) - n, i = Math.max(nn, Math.ceil(r / t * tn) + 1);
1400
+ if (i > Math.min(rn, e.length / 2)) return;
1401
+ let a = new Float64Array(r > 0 ? i : 1), o = new Float64Array(a.length);
1402
+ if (r === 0) return a[0] = n, o[0] = e.length, {
1403
+ centers: a,
1404
+ weights: o
1405
+ };
1406
+ let s = r / (i - 1);
1407
+ for (let e = 0; e < i; e++) a[e] = n + e * s;
1408
+ for (let t of e) {
1409
+ let e = (t - n) / s, r = Math.min(i - 2, Math.floor(e)), a = e - r;
1410
+ o[r] += 1 - a, o[r + 1] += a;
1411
+ }
1412
+ return {
1413
+ centers: a,
1414
+ weights: o
1415
+ };
1416
+ }
1417
+ function on(e, t, n = {}) {
1418
+ let r = c(e);
1419
+ if (r.length < 2) return [];
1420
+ let i = $t(r, n);
1421
+ if (i.length === 0) return [];
1422
+ let a = u(i.map((e) => e.density));
1423
+ if (!Number.isFinite(a) || a === 0) return [];
1424
+ let o = n.scale ?? .4, s = i.map((e) => ({
1425
+ x: t + e.density / a * o,
1426
+ y: e.x
1427
+ })), l = [...i].reverse().map((e) => ({
1428
+ x: t - e.density / a * o,
1429
+ y: e.x
1430
+ }));
1431
+ return [...s, ...l];
1432
+ }
1433
+ function sn(e, t = {}) {
1434
+ let n = c(e);
1435
+ if (n.length < 2) return null;
1436
+ let r = $t(n, t);
1437
+ if (r.length === 0) return null;
1438
+ let i = u(r.map((e) => e.density));
1439
+ return !Number.isFinite(i) || i === 0 ? null : {
1440
+ ys: r.map((e) => e.x),
1441
+ widths: r.map((e) => e.density / i)
1442
+ };
1443
+ }
1444
+ function cn(e, t, n) {
1445
+ let { ys: r, widths: i } = e, a = r.map((e, r) => ({
1446
+ x: t + i[r] * n,
1447
+ y: e
1448
+ })), o = [];
1449
+ for (let e = r.length - 1; e >= 0; e--) o.push({
1450
+ x: t - i[e] * n,
1451
+ y: r[e]
1452
+ });
1453
+ return [...a, ...o];
1454
+ }
1455
+ function ln(e, t) {
1456
+ if (!e) return 0;
1457
+ let { ys: n, widths: r } = e, i = n.length;
1458
+ if (i === 0 || t < n[0] || t > n[i - 1]) return 0;
1459
+ let a = 1;
1460
+ for (; a < i - 1 && n[a] < t;) a++;
1461
+ let o = a - 1;
1462
+ if (i === 1 || n[a] === n[o]) return r[o];
1463
+ if (t >= n[a]) return r[a];
1464
+ let s = (t - n[o]) / (n[a] - n[o]);
1465
+ return r[o] + (r[a] - r[o]) * s;
1466
+ }
1467
+ function un(e, t, n) {
1468
+ if (n <= 0 && e) return e;
1469
+ if (n >= 1 && t) return t;
1470
+ if (!e && !t) return null;
1471
+ let r = [.../* @__PURE__ */ new Set([...e?.ys ?? [], ...t?.ys ?? []])].sort((e, t) => e - t), i = n <= 0 ? 0 : n >= 1 ? 1 : n;
1472
+ return {
1473
+ ys: r,
1474
+ widths: r.map((n) => {
1475
+ let r = ln(e, n);
1476
+ return r + (ln(t, n) - r) * i;
1477
+ })
1478
+ };
1479
+ }
1480
+ //#endregion
1481
+ //#region src/math/ecdf.ts
1482
+ var dn = .05, fn = .5;
1483
+ function pn(e, t = {}) {
1484
+ let n = c(e), r = n.length;
1485
+ if (r === 0) return {
1486
+ edges: [],
1487
+ values: []
1488
+ };
1489
+ let i = [...n].sort((e, t) => e - t), a = [];
1490
+ for (let e of i) (a.length === 0 || a[a.length - 1] !== e) && a.push(e);
1491
+ let o = a.length, s = a[o - 1] - a[0], l = t.pad ?? (s > 0 ? s * .05 : .5), u = [
1492
+ a[0] - l,
1493
+ ...a,
1494
+ a[o - 1] + l
1495
+ ], d = Array(o + 1);
1496
+ d[0] = 0;
1497
+ let f = 0;
1498
+ for (let e = 0; e < o; e++) {
1499
+ let t = a[e], n = f;
1500
+ for (; n < r && i[n] <= t;) n++;
1501
+ d[e + 1] = n / r, f = n;
1502
+ }
1503
+ return {
1504
+ edges: u,
1505
+ values: d
1506
+ };
1507
+ }
1508
+ //#endregion
1509
+ //#region src/math/stairs.ts
1510
+ function mn(e, t) {
1511
+ let n = e.length, r = t ?? Array.from({ length: n + 1 }, (e, t) => t);
1512
+ if (r.length !== n + 1) throw Error(`stairsPolyline: edges must have one more entry than values (got ${r.length} edges for ${n} values)`);
1513
+ let i = [];
1514
+ for (let t = 0; t < n; t++) i.push({
1515
+ x: r[t],
1516
+ y: e[t]
1517
+ }), i.push({
1518
+ x: r[t + 1],
1519
+ y: e[t]
1520
+ });
1521
+ return i;
1522
+ }
1523
+ //#endregion
1524
+ //#region src/math/fillBetween.ts
1525
+ function hn(e) {
1526
+ return e.length === 0 ? e : [...e, { ...e[0] }];
1527
+ }
1528
+ function gn(t, n, r) {
1529
+ let i = Math.min(e(t, n), r.length), a = [], o = [], s = [], c = () => {
1530
+ o.length > 1 && a.push(hn([...o, ...s.reverse()])), o = [], s = [];
1531
+ };
1532
+ for (let e = 0; e < i; e++) {
1533
+ let i = t[e], a = n[e], l = r[e];
1534
+ Number.isFinite(i) && Number.isFinite(a) && Number.isFinite(l) ? (o.push({
1535
+ x: i,
1536
+ y: a
1537
+ }), s.push({
1538
+ x: i,
1539
+ y: l
1540
+ })) : c();
1541
+ }
1542
+ return c(), a;
1543
+ }
1544
+ function _n(e, t) {
1545
+ let n = (e.length - 1) / 2;
1546
+ if (!Number.isInteger(n) || n < 1) return v(e, "linear");
1547
+ let r = e.slice(0, n), i = e.slice(n, 2 * n).reverse();
1548
+ return g(r, i, t);
1549
+ }
1550
+ //#endregion
1551
+ //#region src/math/line.ts
1552
+ function vn(t, n) {
1553
+ let r = e(t, n), i = [], a = [], o = () => {
1554
+ a.length > 1 && i.push(a), a = [];
1555
+ };
1556
+ for (let e = 0; e < r; e++) {
1557
+ let r = t[e], i = n[e];
1558
+ Number.isFinite(r) && Number.isFinite(i) ? a.push({
1559
+ x: r,
1560
+ y: i
1561
+ }) : o();
1562
+ }
1563
+ return o(), i;
1564
+ }
1565
+ function yn(e) {
1566
+ for (let t = 1; t < e.length; t++) if (e[t].x < e[t - 1].x) return !1;
1567
+ return !0;
1568
+ }
1569
+ function bn(e, t, n) {
1570
+ let r = 0, i = e.length;
1571
+ for (; r < i;) {
1572
+ let a = r + i >>> 1;
1573
+ (n ? e[a].x <= t : e[a].x < t) ? r = a + 1 : i = a;
1574
+ }
1575
+ return r;
1576
+ }
1577
+ var xn = 4;
1578
+ function Sn(e, t, n = !1) {
1579
+ let r = t.length - 1;
1580
+ if (r < 1) return e;
1581
+ let i = bn(e, t[0], !1), a = bn(e, t[r], !0);
1582
+ if (a - i <= 4 * r) return e;
1583
+ let o = [];
1584
+ if (n) i > 0 && o.push(e[i - 1]);
1585
+ else for (let t = 0; t < i; t++) o.push(e[t]);
1586
+ let s = 0, c = i, l = i, u = i, d = (t) => {
1587
+ let n = [
1588
+ c,
1589
+ l,
1590
+ u,
1591
+ t - 1
1592
+ ].sort((e, t) => e - t);
1593
+ for (let t = 0; t < n.length; t++) (t === 0 || n[t] !== n[t - 1]) && o.push(e[n[t]]);
1594
+ };
1595
+ for (let n = i; n < a; n++) {
1596
+ let { x: i, y: a } = e[n];
1597
+ if (s < r - 1 && i >= t[s + 1]) {
1598
+ for (d(n); s < r - 1 && i >= t[s + 1];) s++;
1599
+ c = l = u = n;
1600
+ } else a < e[l].y && (l = n), a > e[u].y && (u = n);
1601
+ }
1602
+ if (d(a), n) a < e.length && o.push(e[a]);
1603
+ else for (let t = a; t < e.length; t++) o.push(e[t]);
1604
+ return o;
1605
+ }
1606
+ function Cn(e, t) {
1607
+ if (e === t) return !0;
1608
+ if (e.length !== t.length) return !1;
1609
+ for (let n = 0; n < e.length; n++) {
1610
+ let r = e[n], i = t[n];
1611
+ if (r !== i) {
1612
+ if (r.length !== i.length) return !1;
1613
+ for (let e = 0; e < r.length; e++) if (!Object.is(r[e].x, i[e].x) || !Object.is(r[e].y, i[e].y)) return !1;
1614
+ }
1615
+ }
1616
+ return !0;
1617
+ }
1618
+ //#endregion
1619
+ //#region src/math/stackplot.ts
1620
+ function wn(e, t, n = {}) {
1621
+ let { spans: r } = Ct(e.map((e, n) => t.map((e, t) => ({
1622
+ series: t,
1623
+ value: s(e[n])
1624
+ }))), t.length, {
1625
+ offset: n.offset,
1626
+ order: n.order,
1627
+ baseline: n.baseline,
1628
+ diverging: !1
1629
+ });
1630
+ return t.map((t, n) => {
1631
+ let i = r.map((e) => e[n][0]), a = r.map((e) => e[n][1]);
1632
+ return {
1633
+ bottom: i,
1634
+ top: a,
1635
+ rings: gn(e, a, i)
1636
+ };
1637
+ });
1638
+ }
1639
+ //#endregion
1640
+ //#region src/math/barbs.ts
1641
+ var Tn = 50, En = 10, Dn = 5, On = Math.PI / 4;
1642
+ function kn(e) {
1643
+ let t = Math.round(e / Dn) * Dn, n = Math.floor(t / Tn);
1644
+ t -= n * Tn;
1645
+ let r = Math.floor(t / En);
1646
+ return t -= r * En, {
1647
+ pennants: n,
1648
+ fullBarbs: r,
1649
+ halfBarbs: +(t >= Dn)
1650
+ };
1651
+ }
1652
+ function An(e, t = {}) {
1653
+ let n = t.shaftLength ?? 1, r = t.barbSpacing ?? n / 6, i = t.barbLength ?? n / 2, { pennants: a, fullBarbs: o, halfBarbs: s } = kn(Number.isFinite(e) && e > 0 ? e : 0), c = [[{
1654
+ x: 0,
1655
+ y: 0
1656
+ }, {
1657
+ x: n,
1658
+ y: 0
1659
+ }]], l = Math.cos(On) * i, u = -Math.sin(On) * i, d = n;
1660
+ for (let e = 0; e < a; e++) {
1661
+ let e = d - r;
1662
+ c.push([
1663
+ {
1664
+ x: d,
1665
+ y: 0
1666
+ },
1667
+ {
1668
+ x: e,
1669
+ y: 0
1670
+ },
1671
+ {
1672
+ x: e + l,
1673
+ y: u
1674
+ },
1675
+ {
1676
+ x: d,
1677
+ y: 0
1678
+ }
1679
+ ]), d = e;
1680
+ }
1681
+ for (let e = 0; e < o; e++) c.push([{
1682
+ x: d,
1683
+ y: 0
1684
+ }, {
1685
+ x: d + l,
1686
+ y: u
1687
+ }]), d -= r;
1688
+ return s > 0 && c.push([{
1689
+ x: d,
1690
+ y: 0
1691
+ }, {
1692
+ x: d + l / 2,
1693
+ y: u / 2
1694
+ }]), {
1695
+ pennants: a,
1696
+ fullBarbs: o,
1697
+ halfBarbs: s,
1698
+ segments: c
1699
+ };
1700
+ }
1701
+ //#endregion
1702
+ //#region src/math/shared/gridExtent.ts
1703
+ function jn(e) {
1704
+ let t = Infinity, n = -Infinity;
1705
+ for (let r of e) for (let e of r) Number.isFinite(e) && (e < t && (t = e), e > n && (n = e));
1706
+ return t <= n ? [t, n] : null;
1707
+ }
1708
+ function q(e, t, n) {
1709
+ if (Array.isArray(e)) return e.slice();
1710
+ let r = jn(t);
1711
+ return !r || r[0] === r[1] ? [] : n(r[0], r[1], e);
1712
+ }
1713
+ //#endregion
1714
+ //#region src/math/contour.ts
1715
+ function Mn(e, t, n) {
1716
+ let r = Math.max(0, Math.floor(n)), i = [];
1717
+ for (let n = 1; n <= r; n++) i.push(e + (t - e) * n / (r + 1));
1718
+ return i;
1719
+ }
1720
+ function Nn(e, t) {
1721
+ return q(e, t, Mn);
1722
+ }
1723
+ function J(e, t, n, r, i) {
1724
+ let a = (i - n) / (r - n);
1725
+ return e + (t - e) * a;
1726
+ }
1727
+ function Pn(e) {
1728
+ let t = (t, n) => {
1729
+ let { keys: r, points: i } = e[t];
1730
+ return r[1] === n ? i[1] : i[0];
1731
+ };
1732
+ return m(e.map((e) => e.keys), "in-order").map(({ keys: n, segments: r, closed: i }) => {
1733
+ let a = i ? [...n, n[0]] : n, o = 0;
1734
+ for (let e = 1; e < r.length; e++) r[e] < r[o] && (o = e);
1735
+ return a.map((n, i) => i === o || i === o + 1 ? e[r[o]].points[i - o] : t(r[i < o ? i : i - 1], n));
1736
+ });
1737
+ }
1738
+ function Fn(e, t, n, r) {
1739
+ let i = n.length, a = i > 0 ? n[0].length : 0;
1740
+ if (i < 2 || a < 2 || e.length < a || t.length < i) return [];
1741
+ let o = Nn(r, n), s = [];
1742
+ for (let r of o) {
1743
+ let o = [];
1744
+ for (let s = 0; s < i - 1; s++) for (let i = 0; i < a - 1; i++) {
1745
+ let c = n[s][i], l = n[s][i + 1], u = n[s + 1][i + 1], d = n[s + 1][i];
1746
+ if (!Number.isFinite(c) || !Number.isFinite(l) || !Number.isFinite(u) || !Number.isFinite(d)) continue;
1747
+ let f = e[i], p = e[i + 1], m = t[s], h = t[s + 1], g = c >= r, _ = l >= r, v = u >= r, y = d >= r;
1748
+ if (g === _ && _ === v && v === y) continue;
1749
+ let b = s * a + i, x = b + 1, S = b + a, C = S + 1, w = (e, t, n, i, a, o) => ({
1750
+ point: e,
1751
+ key: n === r ? -1 - i : a === r ? -1 - o : t
1752
+ }), T = g === _ ? null : w({
1753
+ x: J(f, p, c, l, r),
1754
+ y: m
1755
+ }, 2 * b, c, b, l, x), E = _ === v ? null : w({
1756
+ x: p,
1757
+ y: J(m, h, l, u, r)
1758
+ }, 2 * x + 1, l, x, u, C), D = v === y ? null : w({
1759
+ x: J(f, p, d, u, r),
1760
+ y: h
1761
+ }, 2 * S, d, S, u, C), O = y === g ? null : w({
1762
+ x: f,
1763
+ y: J(m, h, c, d, r)
1764
+ }, 2 * b + 1, c, b, d, S), k = (e, t) => o.push({
1765
+ keys: [e.key, t.key],
1766
+ points: [e.point, t.point]
1767
+ }), A = [
1768
+ T,
1769
+ E,
1770
+ D,
1771
+ O
1772
+ ].filter((e) => e !== null);
1773
+ A.length === 2 ? k(A[0], A[1]) : A.length === 4 && ((c + l + u + d) / 4 >= r === g ? (k(T, E), k(D, O)) : (k(O, T), k(E, D)));
1774
+ }
1775
+ for (let e of Pn(o)) s.push({
1776
+ level: r,
1777
+ points: e
1778
+ });
1779
+ }
1780
+ return s;
1781
+ }
1782
+ //#endregion
1783
+ //#region src/math/contourf.ts
1784
+ function In(e, t, n) {
1785
+ let r = Math.max(0, Math.floor(n));
1786
+ if (r < 2) return [];
1787
+ let i = [];
1788
+ for (let n = 0; n < r; n++) i.push(e + (t - e) * n / (r - 1));
1789
+ return i;
1790
+ }
1791
+ function Ln(e, t) {
1792
+ return q(e, t, In);
1793
+ }
1794
+ function Y(e, t, n) {
1795
+ if (e.length === 0) return [];
1796
+ let r = (e) => n ? e.z >= t : e.z <= t, i = (e, n) => {
1797
+ let r = (t - e.z) / (n.z - e.z);
1798
+ return {
1799
+ x: e.x + (n.x - e.x) * r,
1800
+ y: e.y + (n.y - e.y) * r,
1801
+ z: t
1802
+ };
1803
+ }, a = [];
1804
+ for (let t = 0; t < e.length; t++) {
1805
+ let n = e[t], o = e[(t - 1 + e.length) % e.length], s = r(n), c = r(o);
1806
+ s ? (c || a.push(i(o, n)), a.push(n)) : c && a.push(i(o, n));
1807
+ }
1808
+ return a;
1809
+ }
1810
+ function Rn(e, t, n, r) {
1811
+ let i = n.length, a = i > 0 ? n[0].length : 0;
1812
+ if (i < 2 || a < 2 || e.length < a || t.length < i) return [];
1813
+ let o = Ln(r, n);
1814
+ if (o.length < 2) return [];
1815
+ let s = o.slice(1).map((e, t) => ({
1816
+ loLevel: o[t],
1817
+ hiLevel: e,
1818
+ polygons: []
1819
+ }));
1820
+ for (let r = 0; r < i - 1; r++) for (let i = 0; i < a - 1; i++) {
1821
+ let a = n[r][i], o = n[r][i + 1], c = n[r + 1][i + 1], l = n[r + 1][i];
1822
+ if (!Number.isFinite(a) || !Number.isFinite(o) || !Number.isFinite(c) || !Number.isFinite(l)) continue;
1823
+ let u = e[i], d = e[i + 1], f = t[r], p = t[r + 1], m = [
1824
+ {
1825
+ x: u,
1826
+ y: f,
1827
+ z: a
1828
+ },
1829
+ {
1830
+ x: d,
1831
+ y: f,
1832
+ z: o
1833
+ },
1834
+ {
1835
+ x: d,
1836
+ y: p,
1837
+ z: c
1838
+ },
1839
+ {
1840
+ x: u,
1841
+ y: p,
1842
+ z: l
1843
+ }
1844
+ ];
1845
+ for (let e of s) {
1846
+ let t = Y(Y(m, e.loLevel, !0), e.hiLevel, !1);
1847
+ t.length >= 3 && e.polygons.push(t.map((e) => ({
1848
+ x: e.x,
1849
+ y: e.y
1850
+ })));
1851
+ }
1852
+ }
1853
+ return s;
1854
+ }
1855
+ //#endregion
1856
+ //#region src/math/tree.ts
1857
+ var zn = (e) => {
1858
+ if (typeof e != "object" || !e) return;
1859
+ let t = e.children;
1860
+ return Array.isArray(t) ? t : void 0;
1861
+ };
1862
+ function Bn(e, t) {
1863
+ let n = t.children ?? zn, r = t.value, i = t.label, a = t.distance, o = /* @__PURE__ */ new Set(), s = 0, c = (e, t, l) => {
1864
+ if (typeof e == "object" && e) {
1865
+ if (o.has(e)) throw Error("Hierarchy data contains a cycle: a node is its own ancestor.");
1866
+ o.add(e);
1867
+ }
1868
+ let u = s++, d = n(e, u), f = Array.isArray(d) ? d : [], p = {
1869
+ datum: e,
1870
+ index: u,
1871
+ label: i ? String(i(e, u) ?? "") : "",
1872
+ value: 0,
1873
+ branch: t,
1874
+ distance: a ? Number(a(e, u)) : NaN,
1875
+ children: f.map((e, n) => c(e, l === 0 ? n : t, l + 1))
1876
+ };
1877
+ if (p.children.length === 0) {
1878
+ if (r) {
1879
+ let t = Number(r(e, u));
1880
+ p.value = Number.isFinite(t) && t > 0 ? t : 0;
1881
+ } else p.value = 1;
1882
+ }
1883
+ return o.delete(e), p;
1884
+ };
1885
+ return c(e, -1, 0);
1886
+ }
1887
+ var Vn = (e, t) => e === void 0 ? t : e;
1888
+ function Hn(e, t = {}) {
1889
+ let n = Vn(t.width, 1), r = Vn(t.height, 1);
1890
+ if (!(Number.isFinite(n) && Number.isFinite(r)) || n <= 0 || r < 0) return [];
1891
+ let i = te(Bn(e, t), (e) => e.children);
1892
+ i.sum((e) => e.children.length === 0 ? e.value : 0), t.sort === !0 && i.sort((e, t) => (t.value ?? 0) - (e.value ?? 0));
1893
+ let a = Math.max(0, t.separation ?? 2) || 2, o = (e, n) => (e.parent === n.parent ? 1 : a) / (t.radial ? Math.max(1, e.depth) : 1), s = t.layout === "cluster" ? ee().size([n, 1]).separation(o)(i) : ie().size([n, 1]).separation(o)(i), c = /* @__PURE__ */ new Map();
1894
+ s.eachAfter((e) => {
1895
+ if (!t.distance) {
1896
+ c.set(e, e.height);
1897
+ return;
1898
+ }
1899
+ let n = e.data.distance, r = e.children ? -Infinity : 0;
1900
+ for (let t of e.children ?? []) r = Math.max(r, c.get(t) ?? 0);
1901
+ c.set(e, Number.isFinite(n) ? Math.max(n, r) : r);
1902
+ });
1903
+ let l = c.get(s) ?? 0, u = (e) => t.distance && l > 0 ? (l - (c.get(e) ?? 0)) / l * r : e.y * r, d = [], f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
1904
+ return s.eachBefore((e) => {
1905
+ let t = [...e.parent ? p.get(e.parent) ?? [] : [], e.data.label];
1906
+ p.set(e, t), f.set(e, d.length), d.push({
1907
+ datum: e.data.datum,
1908
+ index: e.data.index,
1909
+ depth: e.depth,
1910
+ height: e.height,
1911
+ leaf: !e.children,
1912
+ label: e.data.label,
1913
+ path: t,
1914
+ value: e.value ?? 0,
1915
+ branch: e.data.branch,
1916
+ parent: e.parent ? f.get(e.parent) ?? -1 : -1,
1917
+ x: e.x,
1918
+ y: u(e),
1919
+ distance: c.get(e) ?? e.height
1920
+ });
1921
+ }), d;
1922
+ }
1923
+ function Un(e, t, n, r = {}) {
1924
+ if (n === "elbow") {
1925
+ let n = {
1926
+ x: t.x,
1927
+ y: e.y
1928
+ }, r = (e, t) => e.x === t.x && e.y === t.y;
1929
+ return r(n, e) || r(n, t) ? [{
1930
+ x: e.x,
1931
+ y: e.y
1932
+ }, {
1933
+ x: t.x,
1934
+ y: t.y
1935
+ }] : [
1936
+ {
1937
+ x: e.x,
1938
+ y: e.y
1939
+ },
1940
+ n,
1941
+ {
1942
+ x: t.x,
1943
+ y: t.y
1944
+ }
1945
+ ];
1946
+ }
1947
+ let i = Math.max(2, Math.floor(r.samples ?? 24) || 24), a = (e.y + t.y) / 2, o = [];
1948
+ for (let n = 0; n < i; n++) {
1949
+ let r = n / (i - 1), s = 1 - r, c = s * s * s, l = 3 * s * s * r, u = 3 * s * r * r, d = r * r * r;
1950
+ o.push({
1951
+ x: (c + l) * e.x + (u + d) * t.x,
1952
+ y: c * e.y + (l + u) * a + d * t.y
1953
+ });
1954
+ }
1955
+ return o;
1956
+ }
1957
+ function Wn(e, t, n = {
1958
+ x: 0,
1959
+ y: 0
1960
+ }) {
1961
+ return {
1962
+ x: n.x + t * Math.sin(e),
1963
+ y: n.y + t * Math.cos(e)
1964
+ };
1965
+ }
1966
+ function Gn(e, t, n, r = {}) {
1967
+ let i = r.center ?? {
1968
+ x: 0,
1969
+ y: 0
1970
+ }, a = (e) => Wn(e.x, e.y, i);
1971
+ if (n === "curve") return Un(e, t, n, r).map(a);
1972
+ let o = Math.max(1, r.arcDensity ?? 24), s = Math.max(1, Math.ceil(Math.abs(t.x - e.x) * o)), c = [];
1973
+ for (let n = 0; n <= s; n++) {
1974
+ let r = e.x + (t.x - e.x) * n / s;
1975
+ c.push(Wn(r, e.y, i));
1976
+ }
1977
+ return t.y !== e.y && c.push(a(t)), c;
1978
+ }
1979
+ //#endregion
1980
+ //#region src/math/cluster.ts
1981
+ function Kn(e, t = "euclidean") {
1982
+ let n = e.length, r = e.reduce((e, t) => Math.max(e, t.length), 0), i = Array.from({ length: n }, () => Array(n).fill(0));
1983
+ for (let a = 0; a < n; a++) for (let o = a + 1; o < n; o++) {
1984
+ let n = qn(e[a], e[o], r, t);
1985
+ i[a][o] = n, i[o][a] = n;
1986
+ }
1987
+ return i;
1988
+ }
1989
+ function qn(e, t, n, r) {
1990
+ let i = [], a = [];
1991
+ for (let r = 0; r < n; r++) {
1992
+ let n = e[r], o = t[r];
1993
+ Number.isFinite(n) && Number.isFinite(o) && (i.push(n), a.push(o));
1994
+ }
1995
+ let o = i.length;
1996
+ if (o === 0) return NaN;
1997
+ if (r === "correlation") {
1998
+ let e = i.reduce((e, t) => e + t, 0) / o, t = a.reduce((e, t) => e + t, 0) / o, n = 0, r = 0, s = 0;
1999
+ for (let c = 0; c < o; c++) n += (i[c] - e) * (a[c] - t), r += (i[c] - e) ** 2, s += (a[c] - t) ** 2;
2000
+ let c = r > 0 && s > 0 ? n / Math.sqrt(r * s) : 0;
2001
+ return 1 - Math.max(-1, Math.min(1, c));
2002
+ }
2003
+ let s = n / o, c = 0;
2004
+ for (let e = 0; e < o; e++) {
2005
+ let t = Math.abs(i[e] - a[e]);
2006
+ c += r === "manhattan" ? t : t * t;
2007
+ }
2008
+ return r === "manhattan" ? c * s : Math.sqrt(c * s);
2009
+ }
2010
+ function Jn(e, t = "average") {
2011
+ let n = e.length;
2012
+ if (n === 0) return {
2013
+ root: null,
2014
+ order: []
2015
+ };
2016
+ let r = 0;
2017
+ for (let t = 0; t < n; t++) for (let i = 0; i < n; i++) {
2018
+ let n = e[t]?.[i];
2019
+ n !== void 0 && Number.isFinite(n) && (r = Math.max(r, n));
2020
+ }
2021
+ let i = (t, n) => {
2022
+ let i = e[t]?.[n] ?? e[n]?.[t];
2023
+ return i !== void 0 && Number.isFinite(i) ? Math.max(0, i) : r;
2024
+ }, a = Array.from({ length: n }, (e, t) => Array.from({ length: n }, (e, n) => t === n ? 0 : i(t, n))), o = Array.from({ length: n }, (e, t) => ({
2025
+ index: t,
2026
+ height: 0,
2027
+ size: 1
2028
+ })), s = Array.from({ length: n }, (e, t) => t);
2029
+ for (let e = 1; e < n; e++) {
2030
+ let e = -1, r = -1, i = Infinity;
2031
+ for (let t = 0; t < n; t++) if (o[t]) for (let s = t + 1; s < n; s++) o[s] && a[t][s] < i && (i = a[t][s], e = t, r = s);
2032
+ let c = o[e], l = o[r], [u, d] = s[e] <= s[r] ? [c, l] : [l, c];
2033
+ o[e] = {
2034
+ index: -1,
2035
+ height: i,
2036
+ size: c.size + l.size,
2037
+ children: [u, d]
2038
+ }, o[r] = null, s[e] = Math.min(s[e], s[r]);
2039
+ for (let i = 0; i < n; i++) {
2040
+ if (i === e || !o[i]) continue;
2041
+ let n = a[e][i], s = a[r][i], u = t === "single" ? Math.min(n, s) : t === "complete" ? Math.max(n, s) : (c.size * n + l.size * s) / (c.size + l.size);
2042
+ a[e][i] = u, a[i][e] = u;
2043
+ }
2044
+ }
2045
+ let c = o.find((e) => e !== null) ?? null;
2046
+ return {
2047
+ root: c,
2048
+ order: c ? Xn(c) : []
2049
+ };
2050
+ }
2051
+ function Yn(e, t = {}) {
2052
+ return Jn(Kn(e, t.metric ?? "euclidean"), t.linkage ?? "average");
2053
+ }
2054
+ function Xn(e) {
2055
+ let t = [], n = [e];
2056
+ for (; n.length > 0;) {
2057
+ let e = n.pop();
2058
+ e.children ? n.push(e.children[1], e.children[0]) : t.push(e.index);
2059
+ }
2060
+ return t;
2061
+ }
2062
+ //#endregion
2063
+ //#region src/math/hexbin.ts
2064
+ function Zn(t, n, r) {
2065
+ if (!(r > 0) || !Number.isFinite(r)) return [];
2066
+ let i = e(t, n), a = /* @__PURE__ */ new Map();
2067
+ for (let e = 0; e < i; e++) {
2068
+ let i = t[e], o = n[e];
2069
+ if (!Number.isFinite(i) || !Number.isFinite(o)) continue;
2070
+ let [s, c] = Qn((Math.sqrt(3) / 3 * i - o / 3) / r, 2 / 3 * o / r), l = `${s},${c}`, u = a.get(l);
2071
+ u ? u.count++ : a.set(l, {
2072
+ center: {
2073
+ x: r * Math.sqrt(3) * (s + c / 2),
2074
+ y: r * 1.5 * c
2075
+ },
2076
+ count: 1
2077
+ });
2078
+ }
2079
+ return Array.from(a.values());
2080
+ }
2081
+ function Qn(e, t) {
2082
+ let n = e, r = t, i = -n - r, a = Math.round(n), o = Math.round(i), s = Math.round(r), c = Math.abs(a - n), l = Math.abs(o - i), u = Math.abs(s - r);
2083
+ return c > l && c > u ? a = -o - s : l > u ? o = -a - s : s = -a - o, [a, s];
2084
+ }
2085
+ //#endregion
2086
+ //#region src/math/histogram2d.ts
2087
+ function $n(t, n, r = {}) {
2088
+ let i = e(t, n), a = [], o = [];
2089
+ for (let e = 0; e < i; e++) {
2090
+ let r = t[e], i = n[e];
2091
+ Number.isFinite(r) && Number.isFinite(i) && (a.push(r), o.push(i));
2092
+ }
2093
+ let [s, c] = r.xRange ?? C(a), [l, u] = r.yRange ?? C(o);
2094
+ (s === void 0 || c === void 0) && (s = 0, c = 1), (l === void 0 || u === void 0) && (l = 0, u = 1), [s, c] = z(s, c), [l, u] = z(l, u);
2095
+ let d = R(s, c, r.xBins, r.xRange?.[2], 10), f = R(l, u, r.yBins, r.yRange?.[2], 10), p = d.n, m = f.n;
2096
+ c = d.max, u = f.max;
2097
+ let h = ct(s, c, p), g = ct(l, u, m), _ = Array.from({ length: m }, () => Array(p).fill(0)), v = 0;
2098
+ for (let e = 0; e < a.length; e++) {
2099
+ let t = a[e], n = o[e];
2100
+ if (t < s || t > c || n < l || n > u) continue;
2101
+ let r = B(t, s, c, p), i = B(n, l, u, m), d = ++_[i][r];
2102
+ d > v && (v = d);
2103
+ }
2104
+ return {
2105
+ xEdges: h,
2106
+ yEdges: g,
2107
+ counts: _,
2108
+ maxCount: v
2109
+ };
2110
+ }
2111
+ //#endregion
2112
+ //#region src/math/shared/gridCells.ts
2113
+ function er(e) {
2114
+ let t = 0;
2115
+ for (let n of e) t = Math.max(t, n.length);
2116
+ return t;
2117
+ }
2118
+ function tr(e, t) {
2119
+ let n = [], r = Infinity, i = -Infinity;
2120
+ for (let a = 0; a < e.length; a++) {
2121
+ let o = e[a];
2122
+ for (let e = 0; e < o.length; e++) {
2123
+ let s = o[e];
2124
+ n.push({
2125
+ row: a,
2126
+ column: e,
2127
+ ...t(a, e),
2128
+ value: s
2129
+ }), Number.isFinite(s) && (s < r && (r = s), s > i && (i = s));
2130
+ }
2131
+ }
2132
+ return r > i && (r = 0, i = 1), {
2133
+ cells: n,
2134
+ min: r,
2135
+ max: i
2136
+ };
2137
+ }
2138
+ //#endregion
2139
+ //#region src/math/pcolormesh.ts
2140
+ function nr(e) {
2141
+ let t = e.length;
2142
+ if (t === 0) return [];
2143
+ if (t === 1) return [e[0] - .5, e[0] + .5];
2144
+ let n = Array(t + 1);
2145
+ n[0] = e[0] - (e[1] - e[0]) / 2;
2146
+ for (let r = 1; r < t; r++) n[r] = (e[r - 1] + e[r]) / 2;
2147
+ return n[t] = e[t - 1] + (e[t - 1] - e[t - 2]) / 2, n;
2148
+ }
2149
+ function rr(e, t, n) {
2150
+ if (e.length === t + 1) return [...e];
2151
+ if (e.length === t) return nr(e);
2152
+ throw Error(`pcolormeshCells: ${n} length (${e.length}) must equal ncols/nrows (${t}) or ncols/nrows + 1 (${t + 1}).`);
2153
+ }
2154
+ function ir(e, t, n) {
2155
+ let r = n.length, i = er(n);
2156
+ if (r === 0 || i === 0) return {
2157
+ cells: [],
2158
+ min: 0,
2159
+ max: 1,
2160
+ nrows: r,
2161
+ ncols: i
2162
+ };
2163
+ let a = rr(e, i, "X"), o = rr(t, r, "Y"), { cells: s, min: c, max: l } = tr(n, (e, t) => ({
2164
+ x0: a[t],
2165
+ x1: a[t + 1],
2166
+ y0: o[e],
2167
+ y1: o[e + 1]
2168
+ }));
2169
+ return {
2170
+ cells: s,
2171
+ min: c,
2172
+ max: l,
2173
+ nrows: r,
2174
+ ncols: i
2175
+ };
2176
+ }
2177
+ //#endregion
2178
+ //#region src/math/imshow.ts
2179
+ function ar(e, t = {}) {
2180
+ let n = e.length, r = er(e);
2181
+ if (n === 0 || r === 0) return {
2182
+ cells: [],
2183
+ min: 0,
2184
+ max: 1,
2185
+ nrows: n,
2186
+ ncols: r
2187
+ };
2188
+ let [i, a, o, s] = t.extent ?? [
2189
+ 0,
2190
+ r,
2191
+ 0,
2192
+ n
2193
+ ], c = t.origin ?? "upper", l = (a - i) / r, u = (s - o) / n, { cells: d, min: f, max: p } = tr(e, (e, t) => {
2194
+ let n = i + t * l, r = i + (t + 1) * l;
2195
+ return c === "upper" ? {
2196
+ x0: n,
2197
+ x1: r,
2198
+ y1: s - e * u,
2199
+ y0: s - (e + 1) * u
2200
+ } : {
2201
+ x0: n,
2202
+ x1: r,
2203
+ y0: o + e * u,
2204
+ y1: o + (e + 1) * u
2205
+ };
2206
+ });
2207
+ return {
2208
+ cells: d,
2209
+ min: f,
2210
+ max: p,
2211
+ nrows: n,
2212
+ ncols: r
2213
+ };
2214
+ }
2215
+ //#endregion
2216
+ //#region src/math/tricontour.ts
2217
+ var X = (e, t) => Number.isFinite(e[t]);
2218
+ function Z(t, n, r = {}) {
2219
+ let i = e(t, n), a = r.triangles, s = a ?? o(t, n), c = [];
2220
+ for (let e of s) {
2221
+ let [r, o, s] = e;
2222
+ if (a) {
2223
+ for (let e of [
2224
+ r,
2225
+ o,
2226
+ s
2227
+ ]) if (!Number.isInteger(e) || e < 0 || e >= i) throw RangeError(`triangulate: triangle [${r}, ${o}, ${s}] names point ${e}, but there are ${i} points.`);
2228
+ }
2229
+ if (![
2230
+ r,
2231
+ o,
2232
+ s
2233
+ ].every((e) => X(t, e) && X(n, e))) continue;
2234
+ let l = (t[o] - t[r]) * (n[s] - n[r]) - (n[o] - n[r]) * (t[s] - t[r]);
2235
+ Math.abs(l) > 0 && c.push(l > 0 ? [
2236
+ r,
2237
+ o,
2238
+ s
2239
+ ] : [
2240
+ r,
2241
+ s,
2242
+ o
2243
+ ]);
2244
+ }
2245
+ return c;
2246
+ }
2247
+ function or(e, t, n, r, i, a) {
2248
+ let [o, s] = r < i ? [r, i] : [i, r], c = (a - n[o]) / (n[s] - n[o]);
2249
+ return {
2250
+ x: e[o] + (e[s] - e[o]) * c,
2251
+ y: t[o] + (t[s] - t[o]) * c
2252
+ };
2253
+ }
2254
+ function sr(e, t, n, r) {
2255
+ if (e[t] === r) return -1 - t;
2256
+ if (e[n] === r) return -1 - n;
2257
+ let [i, a] = t < n ? [t, n] : [n, t];
2258
+ return i * e.length + a;
2259
+ }
2260
+ function cr(e, t, n, r, i = {}) {
2261
+ let a = Z(e, t, i), o = q(r, [n], Mn), s = [];
2262
+ for (let r of o) {
2263
+ if (!Number.isFinite(r)) continue;
2264
+ let i = [];
2265
+ for (let [o, s, c] of a) {
2266
+ if (!X(n, o) || !X(n, s) || !X(n, c)) continue;
2267
+ let a = [
2268
+ n[o] >= r,
2269
+ n[s] >= r,
2270
+ n[c] >= r
2271
+ ];
2272
+ if (a[0] === a[1] && a[1] === a[2]) continue;
2273
+ let l = [
2274
+ o,
2275
+ s,
2276
+ c
2277
+ ], u = [], d = [];
2278
+ for (let i = 0; i < 3; i++) {
2279
+ let o = (i + 1) % 3;
2280
+ a[i] !== a[o] && (u.push(or(e, t, n, l[i], l[o], r)), d.push(sr(n, l[i], l[o], r)));
2281
+ }
2282
+ u.length === 2 && i.push({
2283
+ keys: [d[0], d[1]],
2284
+ points: [u[0], u[1]]
2285
+ });
2286
+ }
2287
+ for (let e of Pn(i)) s.push({
2288
+ level: r,
2289
+ points: e
2290
+ });
2291
+ }
2292
+ return s;
2293
+ }
2294
+ function lr(e, t, n, r, i = {}) {
2295
+ let a = Z(e, t, i), o = q(r, [n], In);
2296
+ if (o.length < 2) return [];
2297
+ let s = o.slice(1).map((e, t) => ({
2298
+ loLevel: o[t],
2299
+ hiLevel: e,
2300
+ polygons: []
2301
+ }));
2302
+ for (let [r, i, o] of a) {
2303
+ if (!X(n, r) || !X(n, i) || !X(n, o)) continue;
2304
+ let a = [
2305
+ r,
2306
+ i,
2307
+ o
2308
+ ].map((r) => ({
2309
+ x: e[r],
2310
+ y: t[r],
2311
+ z: n[r]
2312
+ }));
2313
+ for (let e of s) {
2314
+ let t = Y(Y(a, e.loLevel, !0), e.hiLevel, !1);
2315
+ t.length >= 3 && e.polygons.push(t.map((e) => ({
2316
+ x: e.x,
2317
+ y: e.y
2318
+ })));
2319
+ }
2320
+ }
2321
+ return s;
2322
+ }
2323
+ function ur(e, t, n, r = {}) {
2324
+ let i = [];
2325
+ for (let a of Z(e, t, r)) {
2326
+ let [r, o, s] = a;
2327
+ X(n, r) && X(n, o) && X(n, s) && i.push({
2328
+ indices: a,
2329
+ points: a.map((n) => ({
2330
+ x: e[n],
2331
+ y: t[n]
2332
+ })),
2333
+ value: (n[r] + n[o] + n[s]) / 3
2334
+ });
2335
+ }
2336
+ return i;
2337
+ }
2338
+ //#endregion
2339
+ //#region src/math/breadcrumbs.ts
2340
+ function dr(e) {
2341
+ return !Array.isArray(e);
2342
+ }
2343
+ function fr(e, t) {
2344
+ return e.length === t.length && e.every((e, n) => e === t[n]);
2345
+ }
2346
+ function pr(e) {
2347
+ let t = [], n = (e, r) => {
2348
+ if (!(r > 0)) return;
2349
+ if (!dr(e)) {
2350
+ let n = t.find((t) => fr(t.path, e));
2351
+ n ? n.weight += r : t.push({
2352
+ path: e,
2353
+ weight: r
2354
+ });
2355
+ return;
2356
+ }
2357
+ let a = i(e.t);
2358
+ n(e.from, r * (1 - a)), n(e.to, r * a);
2359
+ };
2360
+ return n(e, 1), t;
2361
+ }
2362
+ function mr(e) {
2363
+ return dr(e) ? mr(e.to) : e;
2364
+ }
2365
+ function hr(e, t) {
2366
+ let n = pr(e), r = /* @__PURE__ */ new Map(), i = t.separatorWidth + 2 * t.gap, a = t.backWidth === void 0 ? 0 : Math.max(0, t.backWidth) + 2 * t.gap, o = t.ellipsis ?? "…", s = t.measure(o), c = 0, l = (e, t, n, i, a) => {
2367
+ let o = r.get(e);
2368
+ if (o) return n !== o.x && (o.moves = !0), o.weight += i, o.sumX += i * n, a && (o.current += i), o;
2369
+ let s = {
2370
+ ...t(),
2371
+ x: n,
2372
+ weight: i,
2373
+ current: a ? i : 0,
2374
+ sumX: i * n,
2375
+ moves: !1,
2376
+ heaviest: 0
2377
+ };
2378
+ return r.set(e, s), s;
2379
+ };
2380
+ for (let { path: e, weight: r } of n) {
2381
+ let n = [t.root, ...e], u = n.map((e) => t.measure(e)), d = e.length, f = 0;
2382
+ if (t.maxWidth !== void 0 && d >= 2 && a + u.reduce((e, t) => e + t, 0) + d * i > t.maxWidth) {
2383
+ let e = u[d];
2384
+ f = d;
2385
+ for (let n = d - 1; n >= 2; n--) {
2386
+ let r = e + u[n] + i;
2387
+ if (a + u[0] + 2 * i + s + r > t.maxWidth) break;
2388
+ e = r, f = n;
2389
+ }
2390
+ }
2391
+ let p = a;
2392
+ for (let t = 0; t <= d; t++) {
2393
+ if (f > 0 && t === 1) {
2394
+ let n = e.slice(0, f - 1), a = l("…", () => ({
2395
+ key: "…",
2396
+ path: n,
2397
+ name: o,
2398
+ depth: 1,
2399
+ x: p,
2400
+ width: s,
2401
+ separatorX: 0,
2402
+ weight: 0,
2403
+ current: 0,
2404
+ ellipsis: !0,
2405
+ hidden: n
2406
+ }), p, r, !1);
2407
+ r > a.heaviest && (a.heaviest = r, a.path = n, a.hidden = n), p += s + i, t = f - 1;
2408
+ continue;
2409
+ }
2410
+ let a = e.slice(0, t), c = JSON.stringify(a), m = t === d;
2411
+ l(c, () => ({
2412
+ key: c,
2413
+ path: a,
2414
+ name: n[t],
2415
+ depth: t,
2416
+ x: p,
2417
+ width: u[t],
2418
+ separatorX: 0,
2419
+ weight: 0,
2420
+ current: 0
2421
+ }), p, r, m), p += u[t] + (m ? 0 : i);
2422
+ }
2423
+ c += r * p;
2424
+ }
2425
+ let u = t.align === "center" ? -c / 2 : t.align === "right" ? -c : 0, d = [...r.values()].map((e) => {
2426
+ let { sumX: t, moves: n, heaviest: r, ...a } = e, o = (n && a.weight > 0 ? t / a.weight : a.x) + u;
2427
+ return {
2428
+ ...a,
2429
+ x: o,
2430
+ separatorX: o - i / 2,
2431
+ current: a.weight > 0 ? a.current / a.weight : 0
2432
+ };
2433
+ });
2434
+ if (t.backWidth === void 0) return {
2435
+ items: d,
2436
+ width: c
2437
+ };
2438
+ let f = mr(e), p = {
2439
+ x: u,
2440
+ width: Math.max(0, t.backWidth),
2441
+ weight: n.reduce((e, t) => e + (t.path.length > 0 ? t.weight : 0), 0),
2442
+ path: f.length > 0 ? f.slice(0, -1) : null
2443
+ };
2444
+ return {
2445
+ items: d,
2446
+ width: c,
2447
+ back: p
2448
+ };
2449
+ }
2450
+ //#endregion
2451
+ //#region src/math/hierarchy.ts
2452
+ var gr = (e) => {
2453
+ if (typeof e != "object" || !e) return;
2454
+ let t = e.children;
2455
+ return Array.isArray(t) ? t : void 0;
2456
+ }, _r = (e) => typeof e == "number" ? e : 0;
2457
+ function vr(e, t) {
2458
+ let n = t.children ?? gr, r = t.value ?? _r, i = t.label, a = /* @__PURE__ */ new Set(), o = 0, s = (e, t, c) => {
2459
+ if (typeof e == "object" && e) {
2460
+ if (a.has(e)) throw Error("Hierarchy data contains a cycle: a node is its own ancestor.");
2461
+ a.add(e);
2462
+ }
2463
+ let l = o++, u = n(e, l), d = Array.isArray(u) ? u : [], f = {
2464
+ datum: e,
2465
+ index: l,
2466
+ label: i ? String(i(e, l) ?? "") : "",
2467
+ value: 0,
2468
+ branch: t,
2469
+ children: d.map((e, n) => s(e, c === 0 ? n : t, c + 1))
2470
+ };
2471
+ if (f.children.length === 0) {
2472
+ let t = Number(r(e, l));
2473
+ f.value = Number.isFinite(t) && t > 0 ? t : 0;
2474
+ }
2475
+ return a.delete(e), f;
2476
+ };
2477
+ return s(e, -1, 0);
2478
+ }
2479
+ function yr(e, t) {
2480
+ let n = te(vr(e, t), (e) => e.children);
2481
+ return n.sum((e) => e.children.length === 0 ? e.value : 0), t.sort !== !1 && n.sort((e, t) => (t.value ?? 0) - (e.value ?? 0)), n;
2482
+ }
2483
+ function br(e, t) {
2484
+ let n = [];
2485
+ if (!((e.value ?? 0) > 0)) return n;
2486
+ let r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
2487
+ return e.eachBefore((e) => {
2488
+ let a = e, o = a.value ?? 0;
2489
+ if (!(o > 0)) return;
2490
+ let s = [...a.parent ? i.get(a.parent) ?? [] : [], a.data.label];
2491
+ i.set(a, s), r.set(a, n.length), n.push({
2492
+ datum: a.data.datum,
2493
+ index: a.data.index,
2494
+ depth: a.depth,
2495
+ height: a.height,
2496
+ leaf: !a.children,
2497
+ label: a.data.label,
2498
+ path: s,
2499
+ value: o,
2500
+ branch: a.data.branch,
2501
+ parent: a.parent ? r.get(a.parent) ?? -1 : -1,
2502
+ ...t(a)
2503
+ });
2504
+ }), n;
2505
+ }
2506
+ var Q = (e, t) => e === void 0 ? t : e, xr = (e, t) => Number.isFinite(e) && Number.isFinite(t) && e > 0 && t > 0, Sr = {
2507
+ squarify: de,
2508
+ binary: oe,
2509
+ slice: le,
2510
+ dice: se,
2511
+ sliceDice: ue,
2512
+ resquarify: ce
2513
+ };
2514
+ function Cr(e, t = {}) {
2515
+ let n = Tr(e, t);
2516
+ return n ? br(n, (e) => ({
2517
+ x0: e.x0,
2518
+ y0: e.y0,
2519
+ x1: e.x1,
2520
+ y1: e.y1
2521
+ })) : [];
2522
+ }
2523
+ function wr(e) {
2524
+ return JSON.stringify(e.ancestors().reverse().map((e) => e.data.label));
2525
+ }
2526
+ function Tr(e, t, n) {
2527
+ let r = Q(t.width, 1), i = Q(t.height, 1);
2528
+ if (!xr(r, i)) return null;
2529
+ let a = Math.max(0, t.padding ?? 0) || 0, o = Math.max(0, t.paddingTop ?? a) || 0, s = Sr[t.tile ?? "squarify"] ?? de, c = t.keepRows, l = n ?? (c ? Er(c, s) : s), u = yr(e, t);
2530
+ return ae().size([r, i]).tile(l).paddingInner(a).paddingRight(a).paddingBottom(a).paddingLeft(a).paddingTop((e) => e.depth === 0 ? a : o).round(!1)(u);
2531
+ }
2532
+ function Er(e, t) {
2533
+ return (n, r, i, a, o) => {
2534
+ let s = e.get(wr(n)), c = n.children ?? [];
2535
+ if (!s) {
2536
+ t(n, r, i, a, o);
2537
+ return;
2538
+ }
2539
+ let l = /* @__PURE__ */ new Map();
2540
+ for (let e of c) l.has(e.data.label) || l.set(e.data.label, e);
2541
+ let u = /* @__PURE__ */ new Set(), d = [];
2542
+ for (let e of s) {
2543
+ let t = [];
2544
+ for (let n of e.labels) {
2545
+ let e = l.get(n);
2546
+ e && !u.has(e) && (u.add(e), t.push(e));
2547
+ }
2548
+ let n = t.reduce((e, t) => e + (t.value ?? 0), 0);
2549
+ t.length > 0 && n > 0 && d.push({
2550
+ dice: e.dice,
2551
+ nodes: t,
2552
+ value: n
2553
+ });
2554
+ }
2555
+ let f = c.filter((e) => !u.has(e)), p = n.value ?? 0;
2556
+ for (let e of d) {
2557
+ let t = {
2558
+ children: e.nodes,
2559
+ value: e.value
2560
+ };
2561
+ if (e.dice) {
2562
+ let n = p ? i + (o - i) * e.value / p : o;
2563
+ se(t, r, i, a, n), i = n;
2564
+ } else {
2565
+ let n = p ? r + (a - r) * e.value / p : a;
2566
+ le(t, r, i, n, o), r = n;
2567
+ }
2568
+ p -= e.value;
2569
+ }
2570
+ if (f.length > 0) {
2571
+ let e = {
2572
+ children: f,
2573
+ value: f.reduce((e, t) => e + (t.value ?? 0), 0)
2574
+ };
2575
+ de(e, r, i, a, o);
2576
+ }
2577
+ };
2578
+ }
2579
+ function Dr(e, t = {}) {
2580
+ let n = /* @__PURE__ */ new Map(), r = (e, t, r, i, a) => {
2581
+ ce(e, t, r, i, a);
2582
+ let o = e._squarify;
2583
+ o && n.set(wr(e), o.map((e) => ({
2584
+ dice: e.dice,
2585
+ labels: e.children.map((e) => e.data.label)
2586
+ })));
2587
+ };
2588
+ return Tr(e, {
2589
+ ...t,
2590
+ keepRows: void 0
2591
+ }, r), n;
2592
+ }
2593
+ function Or(e, t = {}) {
2594
+ let n = Q(t.width, 1), r = Q(t.height, 1);
2595
+ if (!xr(n, r)) return [];
2596
+ let i = yr(e, t);
2597
+ return br(re().size([n, r]).round(!1)(i), (e) => ({
2598
+ x0: e.x0,
2599
+ y0: e.y0,
2600
+ x1: e.x1,
2601
+ y1: e.y1
2602
+ }));
2603
+ }
2604
+ function kr(e, t = {}) {
2605
+ let n = Q(t.size, 1);
2606
+ if (!xr(n, n)) return [];
2607
+ let r = yr(e, t);
2608
+ return (r.value ?? 0) > 0 ? (r.each((e) => {
2609
+ if (e.children) {
2610
+ let t = e.children.filter((e) => (e.value ?? 0) > 0);
2611
+ t.length === 0 ? delete e.children : e.children = t;
2612
+ }
2613
+ }), br(ne().size([n, n]).padding(Math.max(0, t.padding ?? 0) || 0)(r), (e) => ({
2614
+ x: e.x,
2615
+ y: e.y,
2616
+ r: e.r
2617
+ }))) : [];
2618
+ }
2619
+ //#endregion
2620
+ //#region src/math/hierarchyJoin.ts
2621
+ function Ar(e) {
2622
+ let t = [], n = /* @__PURE__ */ new Map();
2623
+ for (let r of e) {
2624
+ if (r.parent < 0) {
2625
+ t.push("");
2626
+ continue;
2627
+ }
2628
+ let e = `${t[r.parent]}/${JSON.stringify(r.label)}`, i = n.get(e) ?? 0;
2629
+ n.set(e, i + 1), t.push(i === 0 ? e : `${e}#${i}`);
2630
+ }
2631
+ return t;
2632
+ }
2633
+ function jr(e) {
2634
+ let t = e.map(() => []);
2635
+ return e.forEach((e, n) => {
2636
+ e.parent >= 0 && t[e.parent]?.push(n);
2637
+ }), t;
2638
+ }
2639
+ function Mr(e, t, n) {
2640
+ if (e.length === 0 && t.length === 0) return [];
2641
+ let r = Ar(e), i = Ar(t), a = ve(r, i), o = be({
2642
+ exits: a.exits,
2643
+ enters: a.enters,
2644
+ staging: n.staging
2645
+ }), s = n.blend > 0 ? n.blend < 1 ? n.blend : 1 : 0, c = M(s, o.exit, o.eased), l = M(s, o.update, o.eased), u = M(s, o.enter, o.eased), d = new Map(i.map((e, t) => [e, t])), f = n.enterStagger ?? 0, p = /* @__PURE__ */ new Map();
2646
+ f > 0 && i.forEach((e, t) => {
2647
+ a.from.has(e) || p.set(t, p.size);
2648
+ });
2649
+ let m = (e) => {
2650
+ let t = p.get(e);
2651
+ return t === void 0 || p.size < 2 ? u : Se(s, o.enter, o.eased, t, p.size, f);
2652
+ }, h = jr(e), g = jr(t), _ = [], v = (i, a, o, s) => {
2653
+ let u = i >= 0 ? e[i] : void 0, f = a >= 0 ? t[a] : void 0, p;
2654
+ if (u && f) {
2655
+ p = {
2656
+ ...l < .5 ? u : f,
2657
+ value: u.value + (f.value - u.value) * l,
2658
+ presence: 1,
2659
+ fromAt: i,
2660
+ toAt: a,
2661
+ update: l
2662
+ };
2663
+ let e = p;
2664
+ for (let t of n.fields) {
2665
+ let n = u[t];
2666
+ e[t] = n + (f[t] - n) * l;
2667
+ }
2668
+ } else p = {
2669
+ ...u ?? f,
2670
+ presence: u ? 1 - c : m(a),
2671
+ fromAt: u ? i : -1,
2672
+ toAt: f ? a : -1,
2673
+ update: l
2674
+ };
2675
+ p.parent = o, p.depth = s;
2676
+ let y = _.length;
2677
+ _.push(p);
2678
+ let b = /* @__PURE__ */ new Set();
2679
+ for (let e of i >= 0 ? h[i] ?? [] : []) {
2680
+ let t = d.get(r[e]), n = t !== void 0 && t >= 0 ? t : -1;
2681
+ n >= 0 && b.add(n), v(e, n, y, s + 1);
2682
+ }
2683
+ for (let e of a >= 0 ? g[a] ?? [] : []) b.has(e) || v(-1, e, y, s + 1);
2684
+ };
2685
+ return v(e.length > 0 ? 0 : -1, t.length > 0 ? 0 : -1, -1, 0), _;
2686
+ }
2687
+ //#endregion
2688
+ //#region src/math/mosaic.ts
2689
+ function Nr(e, t) {
2690
+ if (!t) return [...e];
2691
+ let n = new Set(e), r = [], i = /* @__PURE__ */ new Set();
2692
+ for (let e of t) n.has(e) && !i.has(e) && (r.push(e), i.add(e));
2693
+ for (let t of e) i.has(t) || r.push(t);
2694
+ return r;
2695
+ }
2696
+ function Pr(e, t, n) {
2697
+ e.value === 0 && t > 0 && (e.dataIndex = n), e.value += t;
2698
+ }
2699
+ function Fr(e, t) {
2700
+ return e !== void 0 && Number.isFinite(e) ? Math.max(0, e) : t;
2701
+ }
2702
+ function Ir(e, t, n) {
2703
+ return n <= 1 ? 0 : Math.min(e, t * .5 / (n - 1));
2704
+ }
2705
+ function Lr(e, t = {}) {
2706
+ let n = Fr(t.width, 1), r = Fr(t.height, 1), i = Math.max(0, t.padding ?? 0) || 0, o = [], s = [], c = /* @__PURE__ */ new Set(), l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map(), f = 0;
2707
+ e.forEach((e, t) => {
2708
+ let { x: n, y: r } = e;
2709
+ c.has(n) || (c.add(n), o.push(n)), l.has(r) || (l.add(r), s.push(r));
2710
+ let i = a(e.value), p = u.get(n);
2711
+ p || (p = /* @__PURE__ */ new Map(), u.set(n, p));
2712
+ let m = p.get(r);
2713
+ m ? Pr(m, i, t) : p.set(r, {
2714
+ value: i,
2715
+ dataIndex: t
2716
+ });
2717
+ let h = d.get(n);
2718
+ h ? Pr(h, i, t) : d.set(n, {
2719
+ value: i,
2720
+ dataIndex: t
2721
+ }), f += i;
2722
+ });
2723
+ let p = Nr(s, t.rows), m = {
2724
+ columns: [],
2725
+ rects: [],
2726
+ rows: p,
2727
+ total: 0
2728
+ };
2729
+ if (!(f > 0) || !Number.isFinite(f)) return m;
2730
+ let h = Nr(o, t.columns).filter((e) => (d.get(e)?.value ?? 0) > 0), g = Ir(i, n, h.length), _ = n - g * Math.max(0, h.length - 1), v = [], y = [], b = 0;
2731
+ return h.forEach((e, t) => {
2732
+ let a = d.get(e), o = a.value / f, s = b, c = t === h.length - 1 ? n : s + o * _;
2733
+ b = c + g, v.push({
2734
+ key: e,
2735
+ index: t,
2736
+ x0: s,
2737
+ x1: c,
2738
+ value: a.value,
2739
+ share: o,
2740
+ dataIndex: a.dataIndex
2741
+ });
2742
+ let l = u.get(e), m = p.flatMap((e, t) => {
2743
+ let n = l.get(e);
2744
+ return n && n.value > 0 ? [{
2745
+ row: e,
2746
+ rowIndex: t,
2747
+ ...n
2748
+ }] : [];
2749
+ }), x = Ir(i, r, m.length), S = r - x * Math.max(0, m.length - 1), C = r;
2750
+ m.forEach((n, r) => {
2751
+ let i = n.value / a.value, l = C, u = r === m.length - 1 ? 0 : l - i * S;
2752
+ C = u - x, y.push({
2753
+ column: e,
2754
+ row: n.row,
2755
+ columnIndex: t,
2756
+ rowIndex: n.rowIndex,
2757
+ x0: s,
2758
+ y0: u,
2759
+ x1: c,
2760
+ y1: l,
2761
+ value: n.value,
2762
+ columnShare: o,
2763
+ rowShare: i,
2764
+ dataIndex: n.dataIndex
2765
+ });
2766
+ });
2767
+ }), {
2768
+ columns: v,
2769
+ rects: y,
2770
+ rows: p,
2771
+ total: f
2772
+ };
2773
+ }
2774
+ //#endregion
2775
+ //#region src/math/waffle.ts
2776
+ function Rr(e, t) {
2777
+ let n = e.map(a), r = n.reduce((e, t) => e + t, 0), i = Number.isFinite(t) ? Math.max(0, Math.floor(t)) : 0;
2778
+ if (!(r > 0) || !Number.isFinite(r) || i === 0) return n.map(() => 0);
2779
+ let o = n.map((e) => e / r * i), s = o.map(Math.floor), c = i - s.reduce((e, t) => e + t, 0), l = o.map((e, t) => ({
2780
+ index: t,
2781
+ rest: e - Math.floor(e)
2782
+ })).filter((e) => n[e.index] > 0).sort((e, t) => t.rest - e.rest || e.index - t.index);
2783
+ for (let e = 0; c > 0 && l.length > 0; e = (e + 1) % l.length) s[l[e].index]++, c--;
2784
+ return s;
2785
+ }
2786
+ function zr(e, t) {
2787
+ return e !== void 0 && Number.isFinite(e) ? Math.max(0, Math.floor(e)) : t;
2788
+ }
2789
+ function Br(e, t = {}) {
2790
+ let n = zr(t.rows, 10), r = zr(t.columns, 10), i = n * r, a = Rr(e, i), o = [], s = 0, c = 0;
2791
+ for (let e = 0; e < i; e++) {
2792
+ for (; s < a.length && c >= a[s];) s++, c = 0;
2793
+ let t = s < a.length;
2794
+ o.push({
2795
+ rank: e,
2796
+ row: Math.floor(e / r),
2797
+ column: e % r,
2798
+ category: t ? s : -1
2799
+ }), t && c++;
2800
+ }
2801
+ return o;
2802
+ }
2803
+ //#endregion
2804
+ //#region src/math/sankey.ts
2805
+ var Vr = 6, Hr = (e) => Number.isFinite(e) && e > 0 ? e : 0;
2806
+ function Ur(e, t = {}) {
2807
+ let n = t.width ?? 1, r = t.height ?? 1, i = t.nodeWidth ?? n * .024, a = Math.max(0, Math.floor(t.iterations ?? Vr)), o = [], s = /* @__PURE__ */ new Map(), c = (e) => {
2808
+ s.has(e) || (s.set(e, o.length), o.push(e));
2809
+ };
2810
+ if (t.nodes) {
2811
+ for (let e of t.nodes) c(e);
2812
+ for (let t of e) for (let e of [t.source, t.target]) if (!s.has(e)) throw Error(`sankeyLayout: link ${String(t.source)} → ${String(t.target)} names node "${String(e)}", which is not in \`nodes\`.`);
2813
+ } else for (let t of e) c(t.source), c(t.target);
2814
+ let l = o.length, d = o.map(() => []), f = o.map(() => []), p = e.map((e, t) => {
2815
+ let n = s.get(e.source), r = s.get(e.target);
2816
+ return d[n].push(t), f[r].push(t), {
2817
+ source: n,
2818
+ target: r,
2819
+ value: Hr(e.value),
2820
+ index: t
2821
+ };
2822
+ }), m = o.map((e, t) => {
2823
+ let n = 0, r = 0;
2824
+ for (let e of f[t]) n += p[e].value;
2825
+ for (let e of d[t]) r += p[e].value;
2826
+ return Math.max(n, r);
2827
+ }), h = Wr(p, f, d, o), g = Array(l).fill(0);
2828
+ for (let e of h) for (let t of d[e]) {
2829
+ let n = p[t].target;
2830
+ g[n] = Math.max(g[n], g[e] + 1);
2831
+ }
2832
+ let _ = Array(l).fill(0);
2833
+ for (let e = h.length - 1; e >= 0; e--) {
2834
+ let t = h[e];
2835
+ for (let e of d[t]) _[t] = Math.max(_[t], _[p[e].target] + 1);
2836
+ }
2837
+ let v = l === 0 ? 0 : u(g), y = t.align ?? "justify", b = o.map((e, t) => {
2838
+ switch (y) {
2839
+ case "left": return g[t];
2840
+ case "right": return v - _[t];
2841
+ case "center":
2842
+ if (f[t].length > 0) return g[t];
2843
+ if (d[t].length > 0) {
2844
+ let e = Infinity;
2845
+ for (let n of d[t]) e = Math.min(e, g[p[n].target]);
2846
+ return e - 1;
2847
+ }
2848
+ return 0;
2849
+ default: return d[t].length === 0 ? v : g[t];
2850
+ }
2851
+ }), x = l === 0 ? 0 : v + 1, S = o.map((e, t) => {
2852
+ let r = x <= 1 ? (n - i) / 2 : b[t] * (n - i) / (x - 1);
2853
+ return {
2854
+ id: e,
2855
+ index: t,
2856
+ value: m[t],
2857
+ depth: b[t],
2858
+ x0: r,
2859
+ x1: r + i,
2860
+ y0: 0,
2861
+ y1: 0
2862
+ };
2863
+ }), C = Array.from({ length: x }, () => []);
2864
+ for (let e of S) C[e.depth].push(e);
2865
+ let w = C.reduce((e, t) => Math.max(e, t.length), 0), T = Math.max(0, Math.min(t.nodePadding ?? r * .08, w > 1 ? r / (w - 1) : Infinity)), E = Infinity;
2866
+ for (let e of C) {
2867
+ let t = e.reduce((e, t) => e + t.value, 0);
2868
+ t > 0 && (E = Math.min(E, (r - (e.length - 1) * T) / t));
2869
+ }
2870
+ (!Number.isFinite(E) || E < 0) && (E = 0);
2871
+ for (let e of C) {
2872
+ let t = 0;
2873
+ for (let n of e) n.y0 = t, n.y1 = t + n.value * E, t = n.y1 + T;
2874
+ let n = (r - t + T) / (e.length + 1);
2875
+ e.forEach((e, t) => {
2876
+ e.y0 += n * (t + 1), e.y1 += n * (t + 1);
2877
+ });
2878
+ }
2879
+ let D = (e) => (e.y0 + e.y1) / 2, O = (e, t, n, r) => {
2880
+ let i = 0, a = 0;
2881
+ for (let e of t) {
2882
+ let t = p[e];
2883
+ t.value <= 0 || (i += D(S[t[n]]) * t.value, a += t.value);
2884
+ }
2885
+ if (!(a > 0)) return;
2886
+ let o = (i / a - D(e)) * r;
2887
+ e.y0 += o, e.y1 += o;
2888
+ }, k = (e, t) => e.y0 - t.y0 || e.index - t.index;
2889
+ for (let e = 0; e < a; e++) {
2890
+ let t = .99 ** e, n = Math.max(1 - t, (e + 1) / a);
2891
+ for (let e = x - 2; e >= 0; e--) {
2892
+ for (let n of C[e]) O(n, d[n.index], "target", t);
2893
+ C[e].sort(k), Gr(C[e], T, r, n);
2894
+ }
2895
+ for (let e = 1; e < x; e++) {
2896
+ for (let n of C[e]) O(n, f[n.index], "source", t);
2897
+ C[e].sort(k), Gr(C[e], T, r, n);
2898
+ }
2899
+ }
2900
+ let A = p.map((e) => ({
2901
+ ...e,
2902
+ y0: 0,
2903
+ y1: 0,
2904
+ width: e.value * E
2905
+ }));
2906
+ for (let e of S) {
2907
+ let t = [...d[e.index]].sort((e, t) => S[p[e].target].y0 - S[p[t].target].y0 || p[e].target - p[t].target || e - t), n = e.y0;
2908
+ for (let e of t) A[e].y0 = n + A[e].width / 2, n += A[e].width;
2909
+ let r = [...f[e.index]].sort((e, t) => S[p[e].source].y0 - S[p[t].source].y0 || p[e].source - p[t].source || e - t);
2910
+ n = e.y0;
2911
+ for (let e of r) A[e].y1 = n + A[e].width / 2, n += A[e].width;
2912
+ }
2913
+ return {
2914
+ nodes: S,
2915
+ links: A,
2916
+ columns: x,
2917
+ ky: E
2918
+ };
2919
+ }
2920
+ function Wr(e, t, n, r) {
2921
+ let i = t.map((e) => e.length), a = [];
2922
+ i.forEach((e, t) => {
2923
+ e === 0 && a.push(t);
2924
+ });
2925
+ let o = [];
2926
+ for (; a.length > 0;) {
2927
+ let t = a.shift();
2928
+ o.push(t);
2929
+ for (let r of n[t]) {
2930
+ let t = e[r].target;
2931
+ i[t]--, i[t] === 0 && a.push(t);
2932
+ }
2933
+ }
2934
+ if (o.length < r.length) {
2935
+ let e = r.filter((e, t) => i[t] > 0).map(String);
2936
+ throw Error(`sankeyLayout: the links form a cycle (through ${e.join(", ")}); a Sankey diagram needs an acyclic graph.`);
2937
+ }
2938
+ return o;
2939
+ }
2940
+ function Gr(e, t, n, r) {
2941
+ if (e.length === 0) return;
2942
+ let i = e.length >> 1, a = e[i];
2943
+ qr(e, a.y0 - t, i - 1, t, r), Kr(e, a.y1 + t, i + 1, t, r), qr(e, n, e.length - 1, t, r), Kr(e, 0, 0, t, r);
2944
+ }
2945
+ function Kr(e, t, n, r, i) {
2946
+ let a = t;
2947
+ for (let t = n; t < e.length; t++) {
2948
+ let n = e[t], o = (a - n.y0) * i;
2949
+ o > 1e-6 && (n.y0 += o, n.y1 += o), a = n.y1 + r;
2950
+ }
2951
+ }
2952
+ function qr(e, t, n, r, i) {
2953
+ let a = t;
2954
+ for (let t = n; t >= 0; t--) {
2955
+ let n = e[t], o = (n.y1 - a) * i;
2956
+ o > 1e-6 && (n.y0 -= o, n.y1 -= o), a = n.y0 - r;
2957
+ }
2958
+ }
2959
+ function Jr(e, t, n, r, i, a = {}) {
2960
+ let o = Math.min(1, Math.max(0, a.t ?? 1));
2961
+ if (!(o > 0)) return [];
2962
+ let s = Math.max(2, Math.floor(a.samples ?? 24)), c = i / 2, l = (e + n) / 2, u = [], d = [];
2963
+ for (let i = 0; i < s; i++) {
2964
+ let a = o * i / (s - 1), f = 1 - a, p = f * f * f * e + 3 * f * a * (f + a) * l + a * a * a * n, m = f * f * (f + 3 * a) * t + a * a * (a + 3 * f) * r;
2965
+ u.push({
2966
+ x: p,
2967
+ y: m - c
2968
+ }), d.push({
2969
+ x: p,
2970
+ y: m + c
2971
+ });
2972
+ }
2973
+ return [...u, ...d.reverse()];
2974
+ }
2975
+ //#endregion
2976
+ //#region src/math/3d/trisurface.ts
2977
+ function Yr(e, t, n) {
2978
+ let r = o(e, t), i = [];
2979
+ for (let [a, o, s] of r) {
2980
+ let r = n[a], c = n[o], l = n[s];
2981
+ Number.isFinite(r) && Number.isFinite(c) && Number.isFinite(l) && i.push({ points: [
2982
+ {
2983
+ x: e[a],
2984
+ y: t[a],
2985
+ z: r
2986
+ },
2987
+ {
2988
+ x: e[o],
2989
+ y: t[o],
2990
+ z: c
2991
+ },
2992
+ {
2993
+ x: e[s],
2994
+ y: t[s],
2995
+ z: l
2996
+ }
2997
+ ] });
2998
+ }
2999
+ return i;
3000
+ }
3001
+ //#endregion
3002
+ //#region src/math/boxplot.ts
3003
+ var Xr = 1.5;
3004
+ function Zr(e, t = {}) {
3005
+ let n = c(e);
3006
+ if (n.length === 0) return null;
3007
+ let r = t.whiskerScale ?? 1.5, i = [...n].sort((e, t) => e - t), a = O(i, .25) ?? i[0], o = O(i, .5) ?? i[0], s = O(i, .75) ?? i[0], l = s - a, u = a - r * l, d = s + r * l, f = i.filter((e) => e >= u && e <= d), p = i.filter((e) => e < u || e > d);
3008
+ return {
3009
+ min: i[0],
3010
+ q1: a,
3011
+ median: o,
3012
+ q3: s,
3013
+ max: i[i.length - 1],
3014
+ low: f.length > 0 ? f[0] : a,
3015
+ high: f.length > 0 ? f[f.length - 1] : s,
3016
+ outliers: p
3017
+ };
3018
+ }
3019
+ //#endregion
3020
+ //#region src/math/shared/polar.ts
3021
+ var Qr = Math.PI / 2;
3022
+ function $(e) {
3023
+ return {
3024
+ startAngle: e?.startAngle ?? Qr,
3025
+ direction: e?.clockwise ?? !0 ? -1 : 1
3026
+ };
3027
+ }
3028
+ //#endregion
3029
+ //#region src/math/chord.ts
3030
+ var $r = .04, ei = (e) => e !== void 0 && Number.isFinite(e) && e > 0 ? e : 0;
3031
+ function ti(e, n = {}) {
3032
+ let r = e.length, i = (t, n) => ei(e[t]?.[n]), a = n.directed === !0, o = (e) => {
3033
+ let t = [];
3034
+ for (let n = 0; n < r; n++) t.push({
3035
+ from: e,
3036
+ to: n,
3037
+ value: i(e, n)
3038
+ });
3039
+ if (n.sortSubgroups && t.sort((e, t) => t.value - e.value || e.to - t.to), !a) return t;
3040
+ let o = [];
3041
+ for (let t = 0; t < r; t++) o.push({
3042
+ from: t,
3043
+ to: e,
3044
+ value: i(t, e)
3045
+ });
3046
+ return n.sortSubgroups && o.sort((e, t) => t.value - e.value || e.from - t.from), [...t, ...o];
3047
+ }, s = Array.from({ length: r }, (e, t) => o(t)), c = s.map((e) => e.reduce((e, t) => e + t.value, 0)), l = c.reduce((e, t) => e + t, 0), u = Math.max(0, ei(n.padAngle ?? $r)), { startAngle: d, direction: f } = $(n), p = c.filter((e) => e > 0).length, m = Math.max(0, t - u * p), h = l > 0 ? m / l : 0, g = [], _ = Array.from({ length: r }, () => []), v = Array.from({ length: r }, () => []), y = d;
3048
+ for (let e = 0; e < r; e++) {
3049
+ let t = y;
3050
+ for (let t of s[e]) {
3051
+ let n = y + f * t.value * h, r = t.from === e && (!a || _[e][t.to] === void 0), i = r ? t.to : t.from, o = {
3052
+ index: e,
3053
+ subindex: i,
3054
+ startAngle: y,
3055
+ endAngle: n,
3056
+ value: t.value
3057
+ };
3058
+ r ? _[e][i] = o : v[e][i] = o, y = n;
3059
+ }
3060
+ g.push({
3061
+ index: e,
3062
+ startAngle: t,
3063
+ endAngle: y,
3064
+ value: c[e]
3065
+ }), c[e] > 0 && (y += f * u);
3066
+ }
3067
+ let b = [];
3068
+ for (let e = 0; e < r; e++) if (a) for (let t = 0; t < r; t++) {
3069
+ let n = _[e][t];
3070
+ n.value > 0 && b.push({
3071
+ source: n,
3072
+ target: v[t][e]
3073
+ });
3074
+ }
3075
+ else for (let t = e; t < r; t++) {
3076
+ let n = _[e][t], r = _[t][e];
3077
+ (n.value > 0 || r.value > 0) && b.push(n.value < r.value ? {
3078
+ source: r,
3079
+ target: n
3080
+ } : {
3081
+ source: n,
3082
+ target: r
3083
+ });
3084
+ }
3085
+ return {
3086
+ groups: g,
3087
+ chords: b
3088
+ };
3089
+ }
3090
+ function ni(e, t, n = {}) {
3091
+ let { x: r, y: i } = n.center ?? {
3092
+ x: 0,
3093
+ y: 0
3094
+ }, a = Math.max(1, n.arcDensity ?? 24), o = Math.max(2, Math.floor(n.curveSamples ?? 24)), s = (e) => p(r, i, t, e), c = [], l = (e, t) => {
3095
+ let n = Math.max(1, Math.ceil(Math.abs(t - e) * a));
3096
+ for (let r = 0; r <= n; r++) c.push(s(e + (t - e) * r / n));
3097
+ }, u = (e) => {
3098
+ let t = c[c.length - 1];
3099
+ for (let n = 1; n < o; n++) {
3100
+ let a = n / o, s = 1 - a;
3101
+ c.push({
3102
+ x: s * s * t.x + 2 * s * a * r + a * a * e.x,
3103
+ y: s * s * t.y + 2 * s * a * i + a * a * e.y
3104
+ });
3105
+ }
3106
+ }, { source: d, target: f } = e, m = Math.min(Math.max(0, Number.isFinite(n.headRadius) ? n.headRadius : 0), t);
3107
+ l(d.startAngle, d.endAngle);
3108
+ let h = d.startAngle === f.startAngle && d.endAngle === f.endAngle;
3109
+ if (m > 0) {
3110
+ let e = (e) => p(r, i, t - m, e), n = e(f.startAngle);
3111
+ u(n), c.push(n), c.push(s((f.startAngle + f.endAngle) / 2)), c.push(e(f.endAngle));
3112
+ } else h || (u(s(f.startAngle)), l(f.startAngle, f.endAngle));
3113
+ return u(s(d.startAngle)), c;
3114
+ }
3115
+ //#endregion
3116
+ //#region src/math/errorbar.ts
3117
+ function ri(e, t) {
3118
+ if (!e) return;
3119
+ let n = e.length === 2 && Array.isArray(e[0]), r = n ? e[0][t] : e[t], i = n ? e[1][t] : e[t];
3120
+ if (Number.isFinite(r) && Number.isFinite(i)) return {
3121
+ lower: r,
3122
+ upper: i
3123
+ };
3124
+ }
3125
+ function ii(t, n, r, i) {
3126
+ let a = e(t, n), o = [];
3127
+ for (let e = 0; e < a; e++) {
3128
+ let a = t[e], s = n[e];
3129
+ if (!Number.isFinite(a) || !Number.isFinite(s)) continue;
3130
+ let c = {
3131
+ index: e,
3132
+ point: {
3133
+ x: a,
3134
+ y: s
3135
+ }
3136
+ }, l = ri(r, e);
3137
+ l && (c.yBar = [{
3138
+ x: a,
3139
+ y: s - l.lower
3140
+ }, {
3141
+ x: a,
3142
+ y: s + l.upper
3143
+ }]);
3144
+ let u = ri(i, e);
3145
+ u && (c.xBar = [{
3146
+ x: a - u.lower,
3147
+ y: s
3148
+ }, {
3149
+ x: a + u.upper,
3150
+ y: s
3151
+ }]), o.push(c);
3152
+ }
3153
+ return o;
3154
+ }
3155
+ //#endregion
3156
+ //#region src/math/eventplot.ts
3157
+ var ai = 1, oi = .8;
3158
+ function si(e, t = {}) {
3159
+ let n = t.lineOffset ?? ai, r = (t.lineLength ?? oi) / 2;
3160
+ return e.map((e, t) => {
3161
+ let i = t * n, a = [];
3162
+ for (let t of e) Number.isFinite(t) && a.push([{
3163
+ x: t,
3164
+ y: i - r
3165
+ }, {
3166
+ x: t,
3167
+ y: i + r
3168
+ }]);
3169
+ return {
3170
+ row: t,
3171
+ ticks: a
3172
+ };
3173
+ });
3174
+ }
3175
+ //#endregion
3176
+ //#region src/math/facet.ts
3177
+ function ci(e, t, n) {
3178
+ let r = [];
3179
+ if (e.length > 0 && t.length > 0) return e.forEach((e, n) => {
3180
+ t.forEach((t, i) => {
3181
+ r.push({
3182
+ index: r.length,
3183
+ row: n,
3184
+ column: i,
3185
+ rowKey: e,
3186
+ columnKey: t
3187
+ });
3188
+ });
3189
+ }), {
3190
+ slots: r,
3191
+ rows: e.length,
3192
+ columns: t.length
3193
+ };
3194
+ let i = Math.max(1, Math.floor(n ?? Infinity) || Math.max(e.length, t.length, 1));
3195
+ if (t.length > 0) {
3196
+ let e = Math.min(i, t.length);
3197
+ return t.forEach((t, n) => {
3198
+ r.push({
3199
+ index: n,
3200
+ row: Math.floor(n / e),
3201
+ column: n % e,
3202
+ columnKey: t
3203
+ });
3204
+ }), {
3205
+ slots: r,
3206
+ rows: Math.ceil(t.length / e),
3207
+ columns: e
3208
+ };
3209
+ }
3210
+ if (e.length > 0) {
3211
+ let t = Math.min(i, e.length);
3212
+ return e.forEach((e, n) => {
3213
+ r.push({
3214
+ index: 0,
3215
+ row: n % t,
3216
+ column: Math.floor(n / t),
3217
+ rowKey: e
3218
+ });
3219
+ }), r.sort((e, t) => e.row - t.row || e.column - t.column), r.forEach((e, t) => {
3220
+ e.index = t;
3221
+ }), {
3222
+ slots: r,
3223
+ rows: t,
3224
+ columns: Math.ceil(e.length / t)
3225
+ };
3226
+ }
3227
+ return {
3228
+ slots: [{
3229
+ index: 0,
3230
+ row: 0,
3231
+ column: 0
3232
+ }],
3233
+ rows: 1,
3234
+ columns: 1
3235
+ };
3236
+ }
3237
+ function li(e, t, n) {
3238
+ let r = n === "top" ? -1 : +(n === "bottom"), i = n === "left" ? -1 : +(n === "right");
3239
+ return !t.some((t) => t.row === e.row + r && t.column === e.column + i);
3240
+ }
3241
+ function ui(e, t, n) {
3242
+ let r = Array.from({ length: e }, (e, t) => {
3243
+ let r = n?.[t];
3244
+ return r !== void 0 && Number.isFinite(r) && r > 0 ? r : 1;
3245
+ }), i = r.reduce((e, t) => e + t, 0);
3246
+ return r.map((e) => Math.max(0, t) * e / i);
3247
+ }
3248
+ function di(e) {
3249
+ let t = {
3250
+ left: 0,
3251
+ right: 0,
3252
+ top: 0,
3253
+ bottom: 0,
3254
+ ...e.outer
3255
+ }, n = e.center ?? {
3256
+ x: 0,
3257
+ y: 0
3258
+ }, r = Math.max(1, e.columns), i = Math.max(1, e.rows), a = n.x - e.width / 2 + t.left, o = n.y + e.height / 2 - t.top, s = Math.max(.1 * r, e.width - t.left - t.right - e.gapX * (r - 1)), c = Math.max(.1 * i, e.height - t.top - t.bottom - e.gapY * (i - 1)), l = ui(r, s, e.widthRatios), u = ui(i, c, e.heightRatios), d = [], f = o;
3259
+ for (let t = 0; t < i; t++) {
3260
+ let n = [], i = a;
3261
+ for (let a = 0; a < r; a++) n.push({
3262
+ center: {
3263
+ x: i + l[a] / 2,
3264
+ y: f - u[t] / 2
3265
+ },
3266
+ width: l[a],
3267
+ height: u[t]
3268
+ }), i += l[a] + e.gapX;
3269
+ d.push(n), f -= u[t] + e.gapY;
3270
+ }
3271
+ let p = d[i - 1][r - 1];
3272
+ return {
3273
+ cells: d,
3274
+ plots: {
3275
+ minX: a,
3276
+ maxX: p.center.x + p.width / 2,
3277
+ minY: p.center.y - p.height / 2,
3278
+ maxY: o
3279
+ }
3280
+ };
3281
+ }
3282
+ function fi(e, t, n, r = 0, i = .5) {
3283
+ let a = Math.min(1, Math.max(0, e)), o = Math.min(.95, Math.max(0, r));
3284
+ if (a <= i || o === 0 || n <= 1) return a;
3285
+ let s = (a - i) / (1 - i), c = o * t / Math.max(1, n - 1);
3286
+ return i + Math.min(1, Math.max(0, (s - c) / (1 - o))) * (1 - i);
3287
+ }
3288
+ //#endregion
3289
+ //#region src/math/gauge.ts
3290
+ var pi = 7 * Math.PI / 6, mi = -Math.PI / 6;
3291
+ function hi(e, t, n) {
3292
+ if (!Number.isFinite(e) || !(n > t)) return 0;
3293
+ let r = (e - t) / (n - t);
3294
+ return r > 0 ? r < 1 ? r : 1 : 0;
3295
+ }
3296
+ function gi(e, t = pi, n = mi) {
3297
+ return t + (n - t) * e;
3298
+ }
3299
+ function _i(e, t, n) {
3300
+ if (!(n > t)) return [];
3301
+ let r = [], i = t;
3302
+ for (let a = 0; a < e.length; a++) {
3303
+ let o = e[a].to, s = Number.isNaN(o) ? i : Math.min(n, Math.max(i, o));
3304
+ r.push({
3305
+ index: a,
3306
+ from: i,
3307
+ to: s,
3308
+ startFraction: (i - t) / (n - t),
3309
+ endFraction: (s - t) / (n - t)
3310
+ }), i = s;
3311
+ }
3312
+ return r;
3313
+ }
3314
+ function vi(e, t) {
3315
+ if (!Number.isFinite(e) || t.length === 0) return -1;
3316
+ let n = t[0].from;
3317
+ for (let r of t) if (!(r.to <= r.from) && Math.max(n, e) <= r.to) return r.index;
3318
+ return -1;
3319
+ }
3320
+ //#endregion
3321
+ //#region src/math/parallel.ts
3322
+ function yi(e, t) {
3323
+ return t <= 1 ? .5 : e / (t - 1);
3324
+ }
3325
+ function bi(e, t) {
3326
+ let n = t.length;
3327
+ return e.map((e, r) => {
3328
+ let i = [], a = [];
3329
+ for (let r = 0; r < n; r++) {
3330
+ let o = e[r];
3331
+ if (typeof o != "number" || !Number.isFinite(o)) {
3332
+ a.length > 0 && i.push(a), a = [];
3333
+ continue;
3334
+ }
3335
+ let [s, c] = t[r], l = c - s;
3336
+ a.push({
3337
+ x: yi(r, n),
3338
+ y: l !== 0 && Number.isFinite(l) ? (o - s) / l : .5
3339
+ });
3340
+ }
3341
+ return a.length > 0 && i.push(a), {
3342
+ index: r,
3343
+ segments: i
3344
+ };
3345
+ });
3346
+ }
3347
+ //#endregion
3348
+ //#region src/math/pie.ts
3349
+ function xi(e, n = {}) {
3350
+ let r = e.map(a), i = r.reduce((e, t) => e + t, 0);
3351
+ if (i <= 0) return [];
3352
+ let { startAngle: o, direction: s } = $(n), c = [], l = o;
3353
+ for (let e = 0; e < r.length; e++) {
3354
+ let n = r[e], a = n / i, o = l, u = o + s * t * a;
3355
+ c.push({
3356
+ index: e,
3357
+ value: n,
3358
+ startAngle: o,
3359
+ endAngle: u,
3360
+ fraction: a
3361
+ }), l = u;
3362
+ }
3363
+ return c;
3364
+ }
3365
+ function Si(e, t) {
3366
+ let n = 0;
3367
+ return e.map((e) => {
3368
+ let r = n;
3369
+ if (n += e.fraction, e.fraction <= 0) return +(t >= r);
3370
+ let i = (t - r) / e.fraction;
3371
+ return i > 0 ? i < 1 ? i : 1 : 0;
3372
+ });
3373
+ }
3374
+ function Ci(e, t) {
3375
+ let n = e[0]?.startAngle ?? 0;
3376
+ return e.map((e) => ({
3377
+ ...e,
3378
+ startAngle: n + (e.startAngle - n) * t,
3379
+ endAngle: n + (e.endAngle - n) * t
3380
+ }));
3381
+ }
3382
+ function wi(e, n) {
3383
+ if (e >= 1) return;
3384
+ let r = n.center ?? {
3385
+ x: 0,
3386
+ y: 0
3387
+ };
3388
+ if (!(e > 0)) return [r];
3389
+ let { startAngle: i, direction: a } = $(n), o = a * t * e, s = Math.max(2, Math.ceil(128 * e)), c = [r];
3390
+ for (let e = 0; e <= s; e++) {
3391
+ let t = i + o * e / s;
3392
+ c.push(p(r.x, r.y, n.radius, t));
3393
+ }
3394
+ return c;
3395
+ }
3396
+ function Ti(e, t, n) {
3397
+ let r = new Set(e), i = new Set(t);
3398
+ if (n === "from") {
3399
+ let n = [...e];
3400
+ return t.forEach((e, a) => {
3401
+ if (r.has(e)) return;
3402
+ let o = a === 0 ? 0 : n.indexOf(t[a - 1]) + 1;
3403
+ for (; o < n.length && !i.has(n[o]);) o++;
3404
+ n.splice(o, 0, e);
3405
+ }), n;
3406
+ }
3407
+ let a = [...t];
3408
+ return e.forEach((t, n) => {
3409
+ i.has(t) || a.splice(n === 0 ? 0 : a.indexOf(e[n - 1]) + 1, 0, t);
3410
+ }), a;
3411
+ }
3412
+ function Ei(e, t, n, r = {}) {
3413
+ let i = (e) => {
3414
+ let n = /* @__PURE__ */ new Map(), i = 0;
3415
+ return xi(e.map(t), r).forEach((t, r) => {
3416
+ n.set(e[r], {
3417
+ startAngle: t.startAngle,
3418
+ endAngle: t.endAngle,
3419
+ fraction: t.fraction,
3420
+ offset: i
3421
+ }), i += t.fraction;
3422
+ }), n;
3423
+ };
3424
+ if (e.from === e.to || e.from.length === e.to.length && e.from.every((t, n) => t === e.to[n]) || n <= 0) return i(e.from);
3425
+ let a = i(e.to);
3426
+ if (n >= 1) return a;
3427
+ let o = i(e.from), s = /* @__PURE__ */ new Map();
3428
+ for (let [e, t] of o) {
3429
+ let r = a.get(e) ?? t;
3430
+ s.set(e, {
3431
+ startAngle: f(t.startAngle, r.startAngle, n),
3432
+ endAngle: f(t.endAngle, r.endAngle, n),
3433
+ fraction: f(t.fraction, r.fraction, n),
3434
+ offset: f(t.offset, r.offset, n)
3435
+ });
3436
+ }
3437
+ return s;
3438
+ }
3439
+ function Di(e, t) {
3440
+ if (e.fraction <= 0) return +(t >= e.offset);
3441
+ let n = (t - e.offset) / e.fraction;
3442
+ return n > 0 ? n < 1 ? n : 1 : 0;
3443
+ }
3444
+ //#endregion
3445
+ //#region src/math/polarArea.ts
3446
+ function Oi(e, n = {}) {
3447
+ let r = e.length;
3448
+ if (r === 0) return [];
3449
+ let i = e.map(a), o = i.reduce((e, t) => e + t, 0), s = n.maxValue ?? u(i, 0), { startAngle: c, direction: l } = $(n), d = l * t / r;
3450
+ return i.map((e, t) => {
3451
+ let n = c + t * d;
3452
+ return {
3453
+ index: t,
3454
+ value: e,
3455
+ startAngle: n,
3456
+ endAngle: n + d,
3457
+ radius: s > 0 ? e / s : 0,
3458
+ fraction: o > 0 ? e / o : 0
3459
+ };
3460
+ });
3461
+ }
3462
+ //#endregion
3463
+ //#region src/math/radar.ts
3464
+ function ki(e, n = {}) {
3465
+ let r = e.length;
3466
+ if (r < 3) return [];
3467
+ let i = e.map(a), o = n.maxValue ?? u(i, 0), { startAngle: s, direction: c } = $(n), l = c * t / r;
3468
+ return i.map((e, t) => {
3469
+ let n = s + t * l, r = o > 0 ? e / o : 0;
3470
+ return {
3471
+ index: t,
3472
+ value: e,
3473
+ angle: n,
3474
+ x: r * Math.cos(n),
3475
+ y: r * Math.sin(n)
3476
+ };
3477
+ });
3478
+ }
3479
+ function Ai(e, t) {
3480
+ t && e.forEach((e, n) => {
3481
+ if (e.length > 0 && e.length !== t.length) throw Error(`RadarChart: group ${n} has ${e.length} values but axisLabels has ${t.length}; each group needs exactly one value per axis`);
3482
+ });
3483
+ }
3484
+ function ji(e, n) {
3485
+ let r = (n - e) % t;
3486
+ return r > Math.PI && (r -= t), r <= -Math.PI && (r += t), r;
3487
+ }
3488
+ function Mi(e, n, r = {}) {
3489
+ let { startAngle: i, direction: a } = $(r), o = (e, n) => i + e * (a * t / n);
3490
+ if (n === void 0) return e.map((t, n) => ({
3491
+ key: t,
3492
+ slot: n,
3493
+ from: n,
3494
+ to: -1,
3495
+ anchor: !0,
3496
+ angle: o(n, e.length),
3497
+ weight: 1
3498
+ }));
3499
+ let s = ve(e, n), c = r.exit ?? 0, l = r.update ?? 0, u = r.enter ?? 0, d = (t, r) => {
3500
+ let i = o(t, e.length), a = o(r, n.length);
3501
+ return l <= 0 ? i : l >= 1 ? a : i + ji(i, a) * l;
3502
+ }, f = (e, t) => {
3503
+ let n = e.length, r = o(t, n), i = (t) => {
3504
+ let n = e[t], r = s.from.get(n), i = s.to.get(n);
3505
+ return r !== void 0 && i !== void 0 ? {
3506
+ j: t,
3507
+ a: r,
3508
+ b: i
3509
+ } : void 0;
3510
+ }, a, c;
3511
+ for (let e = 1; e < n && !a; e++) a = i((t - e + n) % n);
3512
+ for (let e = 1; e < n && !c; e++) c = i((t + e) % n);
3513
+ if (!a || !c) return r;
3514
+ let l = (e) => ji(o(e.j, n), d(e.a, e.b)), u = l(a), f = l(c);
3515
+ if (u === 0 && f === 0) return r;
3516
+ let p = (t - a.j + n) % n / ((c.j - a.j + n) % n || n);
3517
+ return r + u + (f - u) * p;
3518
+ }, p = s.keys.map((t, r) => {
3519
+ let i = s.from.get(t), a = s.to.get(t);
3520
+ if (i !== void 0 && a !== void 0) return {
3521
+ key: t,
3522
+ slot: r,
3523
+ from: i,
3524
+ to: a,
3525
+ anchor: !0,
3526
+ angle: d(i, a),
3527
+ weight: 1
3528
+ };
3529
+ if (i !== void 0) return {
3530
+ key: t,
3531
+ slot: r,
3532
+ from: i,
3533
+ to: -1,
3534
+ anchor: !1,
3535
+ angle: f(e, i),
3536
+ weight: 1 - c
3537
+ };
3538
+ let o = a;
3539
+ return {
3540
+ key: t,
3541
+ slot: r,
3542
+ from: -1,
3543
+ to: o,
3544
+ anchor: !1,
3545
+ angle: f(n, o),
3546
+ weight: u
3547
+ };
3548
+ }), m = (e) => h((e.angle - i) * a);
3549
+ return p.map((e) => ({
3550
+ frame: e,
3551
+ at: m(e)
3552
+ })).sort((e, t) => e.at - t.at).map(({ frame: e }) => e);
3553
+ }
3554
+ function Ni(e, t, n) {
3555
+ let r = e.map((e) => {
3556
+ let r = t(e);
3557
+ if (r === void 0) return;
3558
+ let i = n > 0 ? a(r) / n : 0;
3559
+ return {
3560
+ x: i * Math.cos(e.angle),
3561
+ y: i * Math.sin(e.angle)
3562
+ };
3563
+ }), i = e.flatMap((e, t) => e.anchor && r[t] ? [t] : []), o = e.length, s = [];
3564
+ return e.forEach((t, n) => {
3565
+ let a = r[n], c = a ? t.anchor ? 1 : t.weight : 0;
3566
+ if (!(c > 0) || !a) return;
3567
+ if (c >= 1) {
3568
+ s.push(a);
3569
+ return;
3570
+ }
3571
+ let l = {
3572
+ x: 0,
3573
+ y: 0
3574
+ };
3575
+ if (i.length >= 2) {
3576
+ let t = -1, i = -1;
3577
+ for (let i = 1; i < o && t < 0; i++) {
3578
+ let a = (n - i + o) % o;
3579
+ e[a].anchor && r[a] && (t = a);
3580
+ }
3581
+ for (let t = 1; t < o && i < 0; t++) {
3582
+ let a = (n + t) % o;
3583
+ e[a].anchor && r[a] && (i = a);
3584
+ }
3585
+ let a = r[t], s = r[i], c = (t, n) => {
3586
+ let r = 0;
3587
+ for (let i = t; i !== n; i = (i + 1) % o) r += Math.abs(ji(e[i].angle, e[(i + 1) % o].angle));
3588
+ return r;
3589
+ }, u = c(t, n), d = u + c(n, i), f = d > 0 ? u / d : .5;
3590
+ l = {
3591
+ x: a.x + (s.x - a.x) * f,
3592
+ y: a.y + (s.y - a.y) * f
3593
+ };
3594
+ }
3595
+ s.push({
3596
+ x: l.x + (a.x - l.x) * c,
3597
+ y: l.y + (a.y - l.y) * c
3598
+ });
3599
+ }), s.length < 3 ? [] : s;
3600
+ }
3601
+ var Pi = Math.sin(Math.PI / 12);
3602
+ function Fi(e, t, n) {
3603
+ let r = Math.cos(e), i = Math.sin(e), a = (e) => Math.max(-1, Math.min(1, e / Pi));
3604
+ return {
3605
+ x: r * n + a(r) * t.width / 2,
3606
+ y: i * n + a(i) * t.height / 2
3607
+ };
3608
+ }
3609
+ //#endregion
3610
+ //#region src/math/scatter.ts
3611
+ function Ii(t, n) {
3612
+ let r = e(t, n), i = [];
3613
+ for (let e = 0; e < r; e++) {
3614
+ let r = t[e], a = n[e];
3615
+ Number.isFinite(r) && Number.isFinite(a) && i.push({
3616
+ index: e,
3617
+ x: r,
3618
+ y: a
3619
+ });
3620
+ }
3621
+ return i;
3622
+ }
3623
+ //#endregion
3624
+ //#region src/math/stem.ts
3625
+ var Li = 0;
3626
+ function Ri(t, n, r = {}) {
3627
+ let i = r.baseline ?? Li, a = e(t, n), o = [];
3628
+ for (let e = 0; e < a; e++) {
3629
+ let r = t[e], a = n[e];
3630
+ Number.isFinite(r) && Number.isFinite(a) && o.push({
3631
+ index: e,
3632
+ drop: [{
3633
+ x: r,
3634
+ y: i
3635
+ }, {
3636
+ x: r,
3637
+ y: a
3638
+ }],
3639
+ marker: {
3640
+ x: r,
3641
+ y: a
3642
+ }
3643
+ });
3644
+ }
3645
+ return o;
3646
+ }
3647
+ //#endregion
3648
+ export { cr as $, mt as $t, ti as A, Fe as An, qt as At, Lr as B, Se as Bn, Lt as Bt, hi as C, qe as Cn, Cn as Ct, fi as D, Ie as Dn, fn as Dt, li as E, Ve as En, mn as Et, Yr as F, xe as Fn, cn as Ft, Cr as G, he as Gn, At as Gt, Ar as H, ge as Hn, Nt as Ht, Ur as I, ve as In, on as It, pr as J, Ct as Jt, Dr as K, fe as Kn, Dt as Kt, Jr as L, Ce as Ln, Vt as Lt, $ as M, Oe as Mn, un as Mt, Xr as N, ke as Nn, $t as Nt, si as O, Re as On, dn as Ot, Zr as P, be as Pn, sn as Pt, lr as Q, yt as Qt, Rr as R, we as Rn, Ht as Rt, _i as S, Ke as Sn, yn as St, ci as T, He as Tn, gn as Tt, kr as U, me as Un, W as Ut, Mr as V, _e as Vn, Gt as Vt, Or as W, pe as Wn, Mt as Wt, fr as X, ht as Xt, dr as Y, wt as Yt, Z, gt as Zt, bi as _, Xe as _n, An as _t, Ni as a, ot as an, Zn as at, gi as b, Je as bn, vn as bt, Oi as c, L as cn, Xn as ct, Si as d, et as dn, Gn as dt, V as en, ur as et, Ei as f, nt as fn, Wn as ft, yi as g, Ye as gn, jn as gt, wi as h, $e as hn, Fn as ht, Mi as i, B as in, $n as it, ni as j, je as jn, Jt as jt, ii as k, Pe as kn, pn as kt, Ci as l, rt as ln, Jn as lt, Di as m, tt as mn, Rn as mt, Ii as n, lt as nn, ir as nt, Fi as o, at as on, Yn as ot, Ti as p, Qe as pn, Un as pt, hr as q, Ot as qt, Ai as r, ut as rn, er as rt, ki as s, it as sn, Kn as st, Ri as t, dt as tn, ar as tt, xi as u, Ze as un, Hn as ut, mi as v, We as vn, wn as vt, di as w, F as wn, _n as wt, vi as x, I as xn, Sn as xt, pi as y, Ge as yn, xn as yt, Br as z, M as zn, K as zt };