@svgrid/grid 3.0.0 → 3.0.2

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 (304) hide show
  1. package/CHANGELOG.md +116 -88
  2. package/README.md +199 -199
  3. package/dist/FlexRender.svelte +96 -96
  4. package/dist/GridFooter.svelte +190 -181
  5. package/dist/GridFooter.svelte.d.ts +8 -0
  6. package/dist/GridMenus.svelte +18 -10
  7. package/dist/GridMenus.svelte.d.ts +2 -1
  8. package/dist/SvAutoComplete.svelte +169 -169
  9. package/dist/SvAvatar.svelte +75 -75
  10. package/dist/SvCalendar.svelte +503 -503
  11. package/dist/SvCarousel.svelte +141 -141
  12. package/dist/SvCheckBox.svelte +102 -102
  13. package/dist/SvCircularProgress.svelte +109 -109
  14. package/dist/SvColorInput.svelte +181 -181
  15. package/dist/SvComboBox.svelte +279 -279
  16. package/dist/SvContextMenu.svelte +116 -116
  17. package/dist/SvCountryInput.svelte +163 -163
  18. package/dist/SvDrawer.svelte +254 -254
  19. package/dist/SvDropDownList.svelte +378 -378
  20. package/dist/SvDurationInput.svelte +126 -126
  21. package/dist/SvField.svelte +293 -293
  22. package/dist/SvForm.svelte +437 -437
  23. package/dist/SvGrid.controller.svelte.d.ts +17 -0
  24. package/dist/SvGrid.controller.svelte.js +128 -14
  25. package/dist/SvGrid.css +79 -10
  26. package/dist/SvGrid.svelte +191 -186
  27. package/dist/SvGrid.types.d.ts +42 -1
  28. package/dist/SvGridCellEditor.svelte +748 -744
  29. package/dist/SvGridChart.svelte +2246 -1716
  30. package/dist/SvGridChart.svelte.d.ts +63 -1
  31. package/dist/SvGridChartPanel.svelte +633 -485
  32. package/dist/SvGridChartView.svelte +79 -70
  33. package/dist/SvGridChartView.svelte.d.ts +7 -0
  34. package/dist/SvGridDropdown.svelte +728 -728
  35. package/dist/SvGridSelect.svelte +270 -270
  36. package/dist/SvGroupCell.svelte +141 -116
  37. package/dist/SvGroupCell.svelte.d.ts +8 -0
  38. package/dist/SvListBox.svelte +334 -334
  39. package/dist/SvMaskedInput.svelte +122 -122
  40. package/dist/SvMenu.svelte +124 -124
  41. package/dist/SvMenuList.svelte +146 -146
  42. package/dist/SvMultiSelect.svelte +293 -293
  43. package/dist/SvNumberInput.svelte +172 -172
  44. package/dist/SvOtpInput.svelte +158 -158
  45. package/dist/SvPasswordInput.svelte +151 -151
  46. package/dist/SvPhoneInput.svelte +133 -133
  47. package/dist/SvPopover.svelte +197 -197
  48. package/dist/SvProgress.svelte +116 -116
  49. package/dist/SvRadioGroup.svelte +107 -107
  50. package/dist/SvRating.svelte +112 -112
  51. package/dist/SvResult.svelte +73 -73
  52. package/dist/SvRichText.svelte +211 -211
  53. package/dist/SvRowGroupPanel.svelte +186 -170
  54. package/dist/SvRowGroupPanel.svelte.d.ts +8 -0
  55. package/dist/SvScrollArea.svelte +61 -61
  56. package/dist/SvSlider.svelte +203 -203
  57. package/dist/SvSwitchButton.svelte +108 -108
  58. package/dist/SvTagsInput.svelte +115 -115
  59. package/dist/SvTextInput.svelte +147 -147
  60. package/dist/SvTimePicker.svelte +245 -245
  61. package/dist/SvToaster.svelte +159 -159
  62. package/dist/SvToggleButton.svelte +85 -85
  63. package/dist/SvTooltip.svelte +161 -161
  64. package/dist/SvTour.svelte +208 -208
  65. package/dist/SvTree.svelte +444 -444
  66. package/dist/SvTreeSelect.svelte +239 -239
  67. package/dist/ai.d.ts +11 -2
  68. package/dist/ai.js +51 -7
  69. package/dist/cdn/GridMenus-DyFA-QxA.js +602 -0
  70. package/dist/cdn/GridMenus-M2XP9t0_.js +603 -0
  71. package/dist/cdn/{SvDateRangeInput-DflbiP7N.js → SvDateRangeInput-CaOuMs8O.js} +1 -1
  72. package/dist/cdn/{SvDateRangeInput-Bh0A0JkF.js → SvDateRangeInput-DMLKmGEc.js} +1 -1
  73. package/dist/cdn/{SvDateTimePicker-Bivn8dAP.js → SvDateTimePicker-CCbDZNZB.js} +1 -1
  74. package/dist/cdn/{SvDateTimePicker-BWwpfB_o.js → SvDateTimePicker-sonaH0oh.js} +1 -1
  75. package/dist/cdn/{SvGridCellEditor-Ba7rY3eu.js → SvGridCellEditor-BWnTi2N7.js} +2 -2
  76. package/dist/cdn/{SvGridCellEditor-AXL8cHGO.js → SvGridCellEditor-CjEJMJKc.js} +2 -2
  77. package/dist/cdn/SvGridChart-DAb9RbRs.js +1480 -0
  78. package/dist/cdn/SvGridChart-Yl-IXZFO.js +1481 -0
  79. package/dist/cdn/SvGridChartPanel-DayQpDsR.js +834 -0
  80. package/dist/cdn/SvGridChartPanel-aqf8n-vJ.js +810 -0
  81. package/dist/cdn/{SvGridChartView-eSPuJE6g.js → SvGridChartView-CxfakxR0.js} +5 -3
  82. package/dist/cdn/{SvGridChartView-SmPW10dI.js → SvGridChartView-Dm_YEx9L.js} +5 -3
  83. package/dist/cdn/{SvGridDropdown-B1ZcLpgs.js → SvGridDropdown-D0VdjeR8.js} +1 -1
  84. package/dist/cdn/{SvGridDropdown-CtdbHcIS.js → SvGridDropdown-D13MtJ2j.js} +1 -1
  85. package/dist/cdn/cell-formatting-C2Hf5gqd.js +86 -0
  86. package/dist/cdn/chart-CKJRCPOk.js +1652 -0
  87. package/dist/cdn/{date-format-DZT7T1wf.js → date-format-BNii4zeD.js} +2 -2
  88. package/dist/cdn/{date-format-CcP1tafP.js → date-format-BnnHlqGw.js} +2 -2
  89. package/dist/cdn/{export-format-Cv1Dll6k.js → export-format-CUDLy2yn.js} +84 -168
  90. package/dist/cdn/{src-B_YS5AOc.js → src-BJ2opd0j.js} +3642 -3450
  91. package/dist/cdn/{src-DYXXpuSk.js → src-DNbz94Ct.js} +8649 -8457
  92. package/dist/cdn/svgrid.js +16 -15
  93. package/dist/cdn/svgrid.svelte-external.js +16 -15
  94. package/dist/cell-formatting.d.ts +7 -0
  95. package/dist/cell-formatting.js +7 -1
  96. package/dist/chart-export.d.ts +23 -2
  97. package/dist/chart-export.js +88 -14
  98. package/dist/chart.d.ts +410 -18
  99. package/dist/chart.js +824 -24
  100. package/dist/editing.js +22 -13
  101. package/dist/grid-icons.d.ts +49 -0
  102. package/dist/grid-icons.js +86 -0
  103. package/dist/index.d.ts +3 -2
  104. package/dist/index.js +3 -2
  105. package/package.json +1 -1
  106. package/src/FlexRender.svelte +96 -96
  107. package/src/GridFooter.svelte +190 -181
  108. package/src/GridMenus.svelte +18 -10
  109. package/src/SvAutoComplete.svelte +169 -169
  110. package/src/SvAvatar.svelte +75 -75
  111. package/src/SvCalendar.svelte +503 -503
  112. package/src/SvCalendar.test.ts +226 -226
  113. package/src/SvCarousel.svelte +141 -141
  114. package/src/SvCheckBox.svelte +102 -102
  115. package/src/SvCircularProgress.svelte +109 -109
  116. package/src/SvColorInput.svelte +181 -181
  117. package/src/SvComboBox.svelte +279 -279
  118. package/src/SvContextMenu.svelte +116 -116
  119. package/src/SvCountryInput.svelte +163 -163
  120. package/src/SvDrawer.svelte +254 -254
  121. package/src/SvDropDownList.svelte +378 -378
  122. package/src/SvDurationInput.svelte +126 -126
  123. package/src/SvField.svelte +293 -293
  124. package/src/SvForm.svelte +437 -437
  125. package/src/SvForm.test.ts +411 -411
  126. package/src/SvGrid.controller.svelte.ts +146 -13
  127. package/src/SvGrid.css +79 -10
  128. package/src/SvGrid.svelte +191 -186
  129. package/src/SvGrid.types.ts +2133 -2092
  130. package/src/SvGridCellEditor.svelte +748 -744
  131. package/src/SvGridChart.svelte +2246 -1716
  132. package/src/SvGridChart.test.ts +243 -1
  133. package/src/SvGridChartPanel.svelte +633 -485
  134. package/src/SvGridChartView.svelte +79 -70
  135. package/src/SvGridDropdown.svelte +728 -728
  136. package/src/SvGridSelect.svelte +270 -270
  137. package/src/SvGroupCell.svelte +141 -116
  138. package/src/SvListBox.svelte +334 -334
  139. package/src/SvMaskedInput.svelte +122 -122
  140. package/src/SvMenu.svelte +124 -124
  141. package/src/SvMenu.test.ts +97 -97
  142. package/src/SvMenuList.svelte +146 -146
  143. package/src/SvMultiSelect.svelte +293 -293
  144. package/src/SvNumberInput.svelte +172 -172
  145. package/src/SvOtpInput.svelte +158 -158
  146. package/src/SvPasswordInput.svelte +151 -151
  147. package/src/SvPhoneInput.svelte +133 -133
  148. package/src/SvPopover.svelte +197 -197
  149. package/src/SvProgress.svelte +116 -116
  150. package/src/SvRadioGroup.svelte +107 -107
  151. package/src/SvRating.svelte +112 -112
  152. package/src/SvResult.svelte +73 -73
  153. package/src/SvRichText.svelte +211 -211
  154. package/src/SvRowGroupPanel.svelte +186 -170
  155. package/src/SvScrollArea.svelte +61 -61
  156. package/src/SvSlider.svelte +203 -203
  157. package/src/SvSwitchButton.svelte +108 -108
  158. package/src/SvTagsInput.svelte +115 -115
  159. package/src/SvTextInput.svelte +147 -147
  160. package/src/SvTimePicker.svelte +245 -245
  161. package/src/SvToaster.svelte +159 -159
  162. package/src/SvToaster.test.ts +95 -95
  163. package/src/SvToggleButton.svelte +85 -85
  164. package/src/SvTooltip.svelte +161 -161
  165. package/src/SvTour.svelte +208 -208
  166. package/src/SvTree.svelte +444 -444
  167. package/src/SvTreeSelect.svelte +239 -239
  168. package/src/a11y/dismissable.test.ts +119 -119
  169. package/src/a11y/dismissable.ts +114 -114
  170. package/src/a11y.contract.test.ts +49 -49
  171. package/src/a11y.test.ts +59 -59
  172. package/src/a11y.ts +61 -61
  173. package/src/ai.test.ts +561 -502
  174. package/src/ai.ts +1472 -1419
  175. package/src/build-api.coverage.test.ts +633 -633
  176. package/src/build-api.ts +846 -846
  177. package/src/builtin-editors.grid.test.ts +83 -83
  178. package/src/cell-formatting.ts +177 -171
  179. package/src/cell-render.test.ts +513 -513
  180. package/src/cell-render.ts +496 -496
  181. package/src/cell-values.ts +148 -148
  182. package/src/chart-export.test.ts +112 -0
  183. package/src/chart-export.ts +270 -202
  184. package/src/chart-view.svelte.ts +36 -36
  185. package/src/chart.test.ts +830 -1
  186. package/src/chart.ts +3342 -2321
  187. package/src/collaboration.test.ts +104 -104
  188. package/src/collaboration.ts +167 -167
  189. package/src/column-groups.ts +78 -78
  190. package/src/core.performance.test.ts +30 -30
  191. package/src/core.ts +1865 -1865
  192. package/src/createAutocomplete.svelte.ts +132 -132
  193. package/src/createCombobox.svelte.ts +191 -191
  194. package/src/createCountryInput.svelte.ts +157 -157
  195. package/src/createDropdownList.svelte.ts +168 -168
  196. package/src/createForm.svelte.ts +386 -386
  197. package/src/createGrid.svelte.ts +42 -42
  198. package/src/createGrid.test.ts +10 -10
  199. package/src/createGridState.svelte.ts +17 -17
  200. package/src/createListbox.svelte.ts +250 -250
  201. package/src/createMenu.svelte.ts +224 -224
  202. package/src/createPopoverSelect.svelte.ts +213 -213
  203. package/src/createSlider.svelte.ts +191 -191
  204. package/src/createTooltip.svelte.ts +144 -144
  205. package/src/createTree.svelte.ts +322 -322
  206. package/src/datetime/date-core.ts +206 -206
  207. package/src/datetime/date-restrict.ts +61 -61
  208. package/src/datetime/timezone.ts +135 -135
  209. package/src/dock-manager-model.ts +596 -596
  210. package/src/dock-model.ts +374 -374
  211. package/src/editing.test.ts +974 -974
  212. package/src/editing.ts +618 -609
  213. package/src/editor-contract.ts +171 -171
  214. package/src/editor-registry.grid.test.ts +144 -144
  215. package/src/editor-registry.ts +122 -122
  216. package/src/export-data-api.test.ts +126 -126
  217. package/src/export-format.test.ts +107 -107
  218. package/src/export-format.ts +601 -601
  219. package/src/filter-operators.ts +160 -160
  220. package/src/filtering/excel-filters.ts +325 -325
  221. package/src/flex-render.ts +3 -3
  222. package/src/form-field.ts +127 -127
  223. package/src/grid-icons.test.ts +46 -0
  224. package/src/grid-icons.ts +184 -0
  225. package/src/group-display.test.ts +167 -167
  226. package/src/group-display.ts +200 -200
  227. package/src/headless.ts +87 -87
  228. package/src/icon-overrides.grid.test.ts +188 -0
  229. package/src/icon-seam.test.ts +100 -0
  230. package/src/index.ts +19 -0
  231. package/src/js-scroller.svelte.ts +173 -173
  232. package/src/keyboard-handlers.ts +270 -270
  233. package/src/keyboard.test.ts +59 -59
  234. package/src/keyboard.ts +97 -97
  235. package/src/list-nav.test.ts +49 -49
  236. package/src/list-nav.ts +29 -29
  237. package/src/list-option.test.ts +56 -56
  238. package/src/list-option.ts +179 -179
  239. package/src/menus.ts +597 -597
  240. package/src/merge-objects.ts +48 -48
  241. package/src/overlays.test.ts +90 -90
  242. package/src/positioning.ts +268 -268
  243. package/src/render-component.ts +28 -28
  244. package/src/row-drag.test.ts +401 -401
  245. package/src/row-drag.ts +419 -419
  246. package/src/row-resize.test.ts +524 -524
  247. package/src/row-resize.ts +228 -228
  248. package/src/scheduler-ical.ts +181 -181
  249. package/src/scheduler-model.test.ts +562 -562
  250. package/src/scheduler-model.ts +873 -873
  251. package/src/selection.test.ts +885 -885
  252. package/src/server-data-source.test.ts +383 -383
  253. package/src/server-data-source.ts +469 -469
  254. package/src/sparkline.test.ts +68 -68
  255. package/src/sparkline.ts +169 -169
  256. package/src/spreadsheet.test.ts +488 -488
  257. package/src/spreadsheet.ts +312 -312
  258. package/src/static-functions.ts +11 -11
  259. package/src/subscribe.ts +38 -38
  260. package/src/summaries.ts +113 -113
  261. package/src/svgrid-wrapper.types.ts +563 -563
  262. package/src/svgrid.async-editor-options.test.ts +273 -273
  263. package/src/svgrid.auto-row-height.test.ts +204 -204
  264. package/src/svgrid.behavior.test.ts +910 -910
  265. package/src/svgrid.charting.test.ts +654 -534
  266. package/src/svgrid.comments-autocomplete.test.ts +127 -127
  267. package/src/svgrid.context-menu.test.ts +147 -147
  268. package/src/svgrid.features.test.ts +157 -157
  269. package/src/svgrid.filter-depth.test.ts +163 -163
  270. package/src/svgrid.filter-menu-listbox.svelte.test.ts +382 -377
  271. package/src/svgrid.filter-menu-scroll.test.ts +112 -112
  272. package/src/svgrid.grand-total.test.ts +188 -188
  273. package/src/svgrid.group-display-mode.test.ts +171 -171
  274. package/src/svgrid.group-footers.test.ts +121 -121
  275. package/src/svgrid.group-pagination.test.ts +153 -153
  276. package/src/svgrid.new-features.wrapper.test.ts +251 -251
  277. package/src/svgrid.tree-data.test.ts +186 -186
  278. package/src/svgrid.wrapper.test.ts +63 -63
  279. package/src/svgriddropdown.async-panel.svelte.test.ts +195 -195
  280. package/src/test-setup.ts +62 -62
  281. package/src/themes/index.ts +288 -288
  282. package/src/toast-store.svelte.ts +250 -250
  283. package/src/toast-store.test.ts +147 -147
  284. package/src/tree-row-model.test.ts +168 -168
  285. package/src/ui-buttons.test.ts +144 -144
  286. package/src/ui-inputs.test.ts +118 -118
  287. package/src/ui-localization.test.ts +113 -113
  288. package/src/ui-range.test.ts +70 -70
  289. package/src/ui-selection.test.ts +155 -155
  290. package/src/ui-tier1.test.ts +142 -142
  291. package/src/virtual.test.ts +88 -88
  292. package/src/virtualization/column-virtualizer.test.ts +27 -27
  293. package/src/virtualization/column-virtualizer.ts +30 -30
  294. package/src/virtualization/svelte-virtualizer.svelte.ts +26 -26
  295. package/src/virtualization/types.ts +30 -30
  296. package/src/virtualization/virtualizer.test.ts +47 -47
  297. package/src/virtualization/virtualizer.ts +322 -322
  298. package/dist/cdn/GridMenus-DMihUtma.js +0 -600
  299. package/dist/cdn/GridMenus-nmNDj1a3.js +0 -601
  300. package/dist/cdn/SvGridChart-Bs2GIR2Q.js +0 -1202
  301. package/dist/cdn/SvGridChart-CwhFz7GV.js +0 -1203
  302. package/dist/cdn/SvGridChartPanel-1WXuStzM.js +0 -561
  303. package/dist/cdn/SvGridChartPanel-e5_nqNP9.js +0 -585
  304. package/dist/cdn/chart-i4XcXyHJ.js +0 -1214
@@ -0,0 +1,1652 @@
1
+ import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
+ import { r as t } from "./cell-formatting-C2Hf5gqd.js";
3
+ //#region src/chart.ts
4
+ var n = /* @__PURE__ */ e({
5
+ DEFAULT_PALETTE: () => o,
6
+ boxStats: () => r,
7
+ buildChart: () => j,
8
+ buildLinePath: () => b,
9
+ chartScales: () => y,
10
+ computeOverlay: () => T,
11
+ exponentialMovingAverage: () => w,
12
+ formatChartValue: () => O,
13
+ linearTrend: () => S,
14
+ niceLogScale: () => _,
15
+ niceScale: () => E,
16
+ ordinalDateTicks: () => A,
17
+ pickContrastText: () => g,
18
+ rowsToBoxSpec: () => I,
19
+ rowsToChartSpec: () => N,
20
+ rowsToDirectSpec: () => ae,
21
+ rowsToGaugeSpec: () => R,
22
+ rowsToScatterSpec: () => L,
23
+ sampleGradient: () => m,
24
+ simpleMovingAverage: () => C,
25
+ sliceChartWindow: () => M,
26
+ specToCalendar: () => F,
27
+ specToSankey: () => ie,
28
+ specToTreemap: () => P
29
+ });
30
+ function r(e, t = 1.5) {
31
+ let n = e.filter((e) => Number.isFinite(e)).slice().sort((e, t) => e - t);
32
+ if (!n.length) return null;
33
+ let r = (e) => {
34
+ let t = (n.length - 1) * e, r = Math.floor(t), i = Math.ceil(t);
35
+ return r === i ? n[r] : n[r] + (n[i] - n[r]) * (t - r);
36
+ }, i = r(.25), a = r(.5), o = r(.75), s = i - t * (o - i), c = o + t * (o - i), l = n.filter((e) => e >= s && e <= c), u = n.filter((e) => e < s || e > c);
37
+ return {
38
+ min: l.length ? l[0] : n[0],
39
+ q1: i,
40
+ median: a,
41
+ q3: o,
42
+ max: l.length ? l[l.length - 1] : n[n.length - 1],
43
+ ...u.length ? { outliers: u } : {}
44
+ };
45
+ }
46
+ function i(e, t, n, r) {
47
+ let i = Math.max(1, Math.ceil((r ? 18 : 60) / Math.max(n, .001))), a = [];
48
+ for (let n = 0; n < e.length; n += i) a.push({
49
+ label: e[n],
50
+ x: t(n)
51
+ });
52
+ return a;
53
+ }
54
+ function a(e, t) {
55
+ if (e == null) return null;
56
+ if (typeof e == "number") {
57
+ if (!Number.isFinite(e)) return null;
58
+ let n = Math.abs(e);
59
+ return {
60
+ lo: t - n,
61
+ hi: t + n
62
+ };
63
+ }
64
+ return !Number.isFinite(e.lo) || !Number.isFinite(e.hi) ? null : {
65
+ lo: Math.min(e.lo, e.hi),
66
+ hi: Math.max(e.lo, e.hi)
67
+ };
68
+ }
69
+ var o = [
70
+ "#2563eb",
71
+ "#16a34a",
72
+ "#f59e0b",
73
+ "#ef4444",
74
+ "#8b5cf6",
75
+ "#0ea5e9",
76
+ "#ec4899",
77
+ "#14b8a6"
78
+ ];
79
+ function s(e) {
80
+ return Math.round(e * 100) / 100;
81
+ }
82
+ function c(e, t) {
83
+ if (e <= 0) return 1;
84
+ let n = Math.floor(Math.log10(e)), r = e / 10 ** n, i;
85
+ return i = t ? r < 1.5 ? 1 : r < 3 ? 2 : r < 7 ? 5 : 10 : r <= 1 ? 1 : r <= 2 ? 2 : r <= 5 ? 5 : 10, i * 10 ** n;
86
+ }
87
+ var l = [
88
+ "#eff6ff",
89
+ "#bfdbfe",
90
+ "#60a5fa",
91
+ "#2563eb",
92
+ "#1e3a8a"
93
+ ], u = [
94
+ "#b91c1c",
95
+ "#fca5a5",
96
+ "#f1f5f9",
97
+ "#93c5fd",
98
+ "#1d4ed8"
99
+ ], d = [
100
+ "#1c2c4d",
101
+ "#1d4ed8",
102
+ "#3b82f6",
103
+ "#60a5fa",
104
+ "#bae6fd"
105
+ ], f = [
106
+ "#f87171",
107
+ "#b91c1c",
108
+ "#222b3d",
109
+ "#1d4ed8",
110
+ "#60a5fa"
111
+ ];
112
+ function p(e, t, n, r = "light") {
113
+ if (Array.isArray(e) && e.length >= 2) return e;
114
+ let i = r === "dark";
115
+ return e === "diverging" || e == null && t < 0 && n > 0 ? i ? f : u : i ? d : l;
116
+ }
117
+ function m(e, t) {
118
+ if (!e.length) return "#888";
119
+ let n = Math.max(0, Math.min(1, t));
120
+ if (e.length === 1) return e[0];
121
+ let r = n * (e.length - 1), i = Math.floor(r), a = r - i, o = h(e[i]), s = h(e[Math.min(e.length - 1, i + 1)]);
122
+ if (!o || !s) return e[i] ?? "#888";
123
+ let c = (e, t) => Math.round(e + (t - e) * a), l = (e) => e.toString(16).padStart(2, "0");
124
+ return "#" + l(c(o.r, s.r)) + l(c(o.g, s.g)) + l(c(o.b, s.b));
125
+ }
126
+ function h(e) {
127
+ let t = /^#?([0-9a-f]{6})$/i.exec(e.trim());
128
+ if (!t) return null;
129
+ let n = parseInt(t[1], 16);
130
+ return {
131
+ r: n >> 16 & 255,
132
+ g: n >> 8 & 255,
133
+ b: n & 255
134
+ };
135
+ }
136
+ function g(e) {
137
+ let t = h(e);
138
+ if (!t) return "#0f172a";
139
+ let n = (e) => {
140
+ let t = e / 255;
141
+ return t <= .03928 ? t / 12.92 : ((t + .055) / 1.055) ** 2.4;
142
+ };
143
+ return .2126 * n(t.r) + .7152 * n(t.g) + .0722 * n(t.b) > .5 ? "#0f172a" : "#ffffff";
144
+ }
145
+ function _(e, t) {
146
+ (!Number.isFinite(e) || e <= 0) && (e = 1), (!Number.isFinite(t) || t <= e) && (t = e * 10);
147
+ let n = Math.floor(Math.log10(e)), r = Math.ceil(Math.log10(t)), i = [];
148
+ for (let e = n; e <= r; e += 1) i.push(10 ** e);
149
+ return {
150
+ min: 10 ** n,
151
+ max: 10 ** r,
152
+ step: 10,
153
+ ticks: i
154
+ };
155
+ }
156
+ function v(e, t, n, r) {
157
+ return Number.isFinite(e) ? r ? e <= 0 || t <= 0 ? null : (Math.log10(e) - Math.log10(t)) / (Math.log10(n) - Math.log10(t)) : (e - t) / (n - t) : null;
158
+ }
159
+ function y(e) {
160
+ let t = e.axes;
161
+ if (!t) return null;
162
+ let { x: n, y: r, w: i, h: a } = e.plot, o = (e) => (t) => {
163
+ let n = v(t, e.min, e.max, e.log);
164
+ return n === null ? NaN : r + a - n * a;
165
+ }, s = o(t.y), c = t.y2 ? o(t.y2) : s, l = (e) => (t) => {
166
+ let n = a === 0 ? 0 : (r + a - t) / a;
167
+ if (!e.log) return e.min + n * (e.max - e.min);
168
+ let i = Math.log10(e.min);
169
+ return 10 ** (i + n * (Math.log10(e.max) - i));
170
+ };
171
+ return {
172
+ xOf: (e) => n + t.slot * e + t.slot / 2,
173
+ yOf: (e, t) => t === "right" ? c(e) : s(e),
174
+ xInvert: (e) => Math.max(0, Math.min(t.count - 1, Math.floor((e - n) / (t.slot || 1)))),
175
+ yInvert: (e, n) => n === "right" && t.y2 ? l(t.y2)(e) : l(t.y)(e)
176
+ };
177
+ }
178
+ function b(e, t) {
179
+ if (!t) {
180
+ let t = "", n = !1;
181
+ for (let r of e) {
182
+ if (!r.defined) {
183
+ n = !1;
184
+ continue;
185
+ }
186
+ t += `${n ? "L" : "M"}${r.x},${r.y} `, n = !0;
187
+ }
188
+ return t.trim();
189
+ }
190
+ let n = [], r = [];
191
+ for (let t of e) t.defined ? r.push({
192
+ x: t.x,
193
+ y: t.y
194
+ }) : r.length && (n.push(r), r = []);
195
+ return r.length && n.push(r), n.map(x).filter(Boolean).join(" ");
196
+ }
197
+ function x(e) {
198
+ let t = e.length;
199
+ if (t === 0) return "";
200
+ if (t === 1) return `M${e[0].x},${e[0].y}`;
201
+ if (t === 2) return `M${e[0].x},${e[0].y} L${e[1].x},${e[1].y}`;
202
+ let n = Array(t - 1), r = Array(t - 1);
203
+ for (let i = 0; i < t - 1; i += 1) {
204
+ let t = e[i + 1].x - e[i].x;
205
+ n[i] = t, r[i] = t === 0 ? 0 : (e[i + 1].y - e[i].y) / t;
206
+ }
207
+ let i = Array(t);
208
+ i[0] = r[0], i[t - 1] = r[t - 2];
209
+ for (let e = 1; e < t - 1; e += 1) r[e - 1] * r[e] <= 0 ? i[e] = 0 : i[e] = (r[e - 1] + r[e]) / 2;
210
+ for (let e = 0; e < t - 1; e += 1) {
211
+ if (r[e] === 0) {
212
+ i[e] = 0, i[e + 1] = 0;
213
+ continue;
214
+ }
215
+ let t = i[e] / r[e], n = i[e + 1] / r[e], a = Math.hypot(t, n);
216
+ a > 3 && (i[e] = 3 / a * t * r[e], i[e + 1] = 3 / a * n * r[e]);
217
+ }
218
+ let a = `M${e[0].x},${e[0].y}`;
219
+ for (let r = 0; r < t - 1; r += 1) {
220
+ let t = n[r], o = e[r].x + t / 3, s = e[r].y + i[r] * t / 3, c = e[r + 1].x - t / 3, l = e[r + 1].y - i[r + 1] * t / 3;
221
+ a += ` C${o},${s} ${c},${l} ${e[r + 1].x},${e[r + 1].y}`;
222
+ }
223
+ return a;
224
+ }
225
+ function S(e) {
226
+ let t = 0, n = 0, r = 0, i = 0, a = 0;
227
+ for (let o = 0; o < e.length; o += 1) {
228
+ let s = e[o];
229
+ Number.isFinite(s) && (t += 1, n += o, r += s, i += o * o, a += o * s);
230
+ }
231
+ if (t < 2) return e.map(() => NaN);
232
+ let o = t * i - n * n;
233
+ if (o === 0) return e.map(() => r / t);
234
+ let s = (t * a - n * r) / o, c = (r - s * n) / t;
235
+ return e.map((e, t) => s * t + c);
236
+ }
237
+ function C(e, t) {
238
+ if (t < 1) return e.slice();
239
+ let n = Array(e.length).fill(NaN), r = 0, i = 0;
240
+ for (let a = 0; a < e.length; a += 1) {
241
+ let o = e[a];
242
+ if (Number.isFinite(o) && (r += o, i += 1), a >= t) {
243
+ let n = e[a - t];
244
+ Number.isFinite(n) && (r -= n, --i);
245
+ }
246
+ a >= t - 1 && i > 0 && (n[a] = r / i);
247
+ }
248
+ return n;
249
+ }
250
+ function w(e, t) {
251
+ let n = 2 / (Math.max(1, t) + 1), r = Array(e.length).fill(NaN), i = null;
252
+ for (let t = 0; t < e.length; t += 1) {
253
+ let a = e[t];
254
+ if (!Number.isFinite(a)) {
255
+ r[t] = i ?? NaN;
256
+ continue;
257
+ }
258
+ i = i == null ? a : n * a + (1 - n) * i, r[t] = i;
259
+ }
260
+ return r;
261
+ }
262
+ function T(e, t) {
263
+ if (t === "linear") return S(e);
264
+ let n = /^(sma|ema):(\d+)$/.exec(t);
265
+ if (!n) return e.map(() => NaN);
266
+ let r = Number(n[2]);
267
+ return n[1] === "ema" ? w(e, r) : C(e, r);
268
+ }
269
+ function E(e, t, n = 4) {
270
+ (!Number.isFinite(e) || !Number.isFinite(t)) && (e = 0, t = 1), e === t && (e === 0 ? t = 1 : (e = Math.min(0, e), t = Math.max(0, t)), e === t && (t = e + 1));
271
+ let r = c(c(t - e, !1) / Math.max(1, n), !0), i = Math.floor(e / r) * r, a = Math.ceil(t / r) * r, o = [];
272
+ for (let e = i; e <= a + r * .5; e += r) o.push(s(e));
273
+ return {
274
+ min: i,
275
+ max: a,
276
+ step: r,
277
+ ticks: o
278
+ };
279
+ }
280
+ function D(e) {
281
+ let t = Math.abs(e);
282
+ return t >= 1e6 ? `${(e / 1e6).toFixed(t % 1e6 ? 1 : 0)}M` : t >= 1e3 ? `${(e / 1e3).toFixed(t % 1e3 ? 1 : 0)}k` : String(Math.round(e * 100) / 100);
283
+ }
284
+ function O(e, n, r) {
285
+ if (!Number.isFinite(e)) return "";
286
+ if (r && (r.locale || r.currency)) {
287
+ let i = n === "currency" ? "currency" : n === "percent" ? "percent" : "decimal", a = {
288
+ notation: "compact",
289
+ maximumFractionDigits: 1
290
+ };
291
+ return i === "currency" ? (a.style = "currency", a.currency = r.currency || "USD") : i === "percent" && (a.style = "percent"), t(r.locale, a).format(e);
292
+ }
293
+ if (n === "currency") return `${e < 0 ? "-" : ""}$${D(Math.abs(e))}`;
294
+ if (n === "percent") {
295
+ let t = e * 100;
296
+ return `${Math.round(t * 10) / 10}%`;
297
+ }
298
+ return D(e);
299
+ }
300
+ var k = 864e5;
301
+ function ee(e, t) {
302
+ let n = t - e, r = n <= 7 * k ? k : n <= 70 * k ? 7 * k : n <= 800 * k ? 30 * k : 365 * k, i = [];
303
+ for (let n = Math.ceil(e / r) * r; n <= t + 1; n += r) i.push(n);
304
+ return i.length || i.push(e, t), i;
305
+ }
306
+ function A(e, t = 6) {
307
+ if (e.length <= 1) return e.length ? [0] : [];
308
+ let n = {
309
+ day: (e) => `${e.getUTCFullYear()}-${e.getUTCMonth()}-${e.getUTCDate()}`,
310
+ week: (e) => Math.floor((Date.UTC(e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()) / k + 4) / 7),
311
+ month: (e) => `${e.getUTCFullYear()}-${e.getUTCMonth()}`,
312
+ year: (e) => e.getUTCFullYear()
313
+ }, r = null;
314
+ for (let i of [
315
+ "day",
316
+ "week",
317
+ "month",
318
+ "year"
319
+ ]) {
320
+ let a = [], o = null;
321
+ for (let t = 0; t < e.length; t += 1) {
322
+ let r = e[t];
323
+ if (!Number.isFinite(r)) continue;
324
+ let s = n[i](new Date(r));
325
+ s !== o && a.push(t), o = s;
326
+ }
327
+ if (r = a, a.length <= t * 2) break;
328
+ }
329
+ let i = r ?? [];
330
+ if (i.length > t) {
331
+ let e = Math.ceil(i.length / t);
332
+ i = i.filter((t, n) => n % e === 0);
333
+ }
334
+ if (i.length < 2) {
335
+ let n = Math.max(1, Math.ceil(e.length / t));
336
+ i = e.map((e, t) => t).filter((e) => e % n === 0);
337
+ }
338
+ return i;
339
+ }
340
+ function te(e, t) {
341
+ let n = new Date(e);
342
+ return t <= 70 * k ? n.toLocaleDateString(void 0, {
343
+ month: "short",
344
+ day: "numeric"
345
+ }) : t <= 800 * k ? n.toLocaleDateString(void 0, {
346
+ month: "short",
347
+ year: "2-digit"
348
+ }) : String(n.getFullYear());
349
+ }
350
+ function ne(e, t) {
351
+ let n = e.type ?? t;
352
+ return n === "candlestick" || n === "ohlc" || e.ohlc ? "candle" : n === "boxplot" || e.boxes ? "box" : n === "line" || n === "area" ? n : "bar";
353
+ }
354
+ function re(e, t, n, r = [], i = !1) {
355
+ let o = Infinity, s = -Infinity, c = (e) => {
356
+ Number.isFinite(e) && (i && e <= 0 || (e < o && (o = e), e > s && (s = e)));
357
+ };
358
+ for (let e of r) c(e);
359
+ let l = e.filter((e) => e.kind === "bar" || e.kind === "area"), u = e.filter((e) => e.kind === "line");
360
+ if (n && l.length) for (let e = 0; e < t.length; e += 1) {
361
+ let t = 0, n = 0;
362
+ for (let r of l) {
363
+ let i = r.values[e] ?? 0;
364
+ i >= 0 ? t += i : n += i;
365
+ }
366
+ c(t), c(n);
367
+ }
368
+ else for (let e of l) for (let t of e.values) c(t);
369
+ for (let e of u) for (let t of e.values) c(t);
370
+ for (let t of e) if (t.kind === "candle") for (let e of t.ohlc ?? []) e && (c(e.h), c(e.l));
371
+ for (let t of e) if (t.kind === "box") {
372
+ for (let e of t.boxes ?? []) if (e) {
373
+ c(e.min), c(e.max);
374
+ for (let t of e.outliers ?? []) c(t);
375
+ }
376
+ }
377
+ for (let t of e) t.errors && t.errors.forEach((e, n) => {
378
+ let r = a(e, t.values[n] ?? 0);
379
+ r && (c(r.lo), c(r.hi));
380
+ });
381
+ return o === Infinity && (o = +!!i, s = i ? 10 : 1), l.length && !i && (o = Math.min(o, 0), s = Math.max(s, 0)), i ? _(o, s) : E(o, s);
382
+ }
383
+ function j(e, t = "light") {
384
+ let n = e.width ?? 520, r = e.height ?? 300, c = e.palette ?? o, l = !!(e.stacked || e.stacked100), u = e.series.map((t, n) => ({
385
+ ...t,
386
+ color: t.color ?? c[n % c.length],
387
+ kind: ne(t, e.type),
388
+ axis: t.axis ?? "left"
389
+ })), d = u.map((e) => ({
390
+ label: e.label,
391
+ color: e.color
392
+ })), f = {
393
+ type: e.type,
394
+ width: n,
395
+ height: r,
396
+ plot: {
397
+ x: 0,
398
+ y: 0,
399
+ w: n,
400
+ h: r
401
+ },
402
+ axes: null,
403
+ bars: [],
404
+ candles: [],
405
+ boxes: [],
406
+ errorBars: [],
407
+ lines: [],
408
+ slices: [],
409
+ yTicks: [],
410
+ y2Ticks: [],
411
+ hasRightAxis: !1,
412
+ xTicks: [],
413
+ categoryGroupTicks: [],
414
+ xLabelRotated: !1,
415
+ legend: d,
416
+ donut: null,
417
+ referenceLines: [],
418
+ scatterPoints: [],
419
+ orientation: "vertical",
420
+ valueTicks: [],
421
+ catTicks: [],
422
+ referenceLinesV: [],
423
+ overlays: [],
424
+ annotations: [],
425
+ heatmapCells: [],
426
+ heatmapRowTicks: [],
427
+ heatmapColTicks: [],
428
+ heatmapLegend: [],
429
+ funnelSegments: [],
430
+ radarRings: [],
431
+ radarAxes: [],
432
+ radarSeries: [],
433
+ radarCenter: null,
434
+ treemapCells: [],
435
+ calendarCells: [],
436
+ calendarMonthTicks: [],
437
+ calendarLegend: [],
438
+ gauge: null,
439
+ sankeyNodes: [],
440
+ sankeyLinks: []
441
+ };
442
+ if (e.type === "waterfall") {
443
+ let t = u[0];
444
+ if (!t) return { ...f };
445
+ let i = e.waterfallColors ?? {}, a = i.positive ?? "#16a34a", o = i.negative ?? "#ef4444", c = i.total ?? "#475569", l = e.categories.reduce((e, t) => Math.max(e, t.length), 0), d = e.categories.length > 8 || l > 9, p = 48 + (e.yAxisTitle ? 16 : 0), m = (d ? 54 : 28) + (e.xAxisTitle ? 16 : 0), h = Math.max(1, n - p - 12), g = Math.max(1, r - 10 - m), _ = {
446
+ x: p,
447
+ y: 10,
448
+ w: h,
449
+ h: g
450
+ }, v = e.waterfallTotals ?? [], y = [], b = 0;
451
+ e.categories.forEach((e, n) => {
452
+ let r = t.values[n] ?? 0;
453
+ v[n] ? y.push({
454
+ from: 0,
455
+ to: b,
456
+ value: b,
457
+ isTotal: !0
458
+ }) : (y.push({
459
+ from: b,
460
+ to: b + r,
461
+ value: r,
462
+ isTotal: !1
463
+ }), b += r);
464
+ });
465
+ let x = 0, S = 0;
466
+ for (let e of y) e.from < x && (x = e.from), e.to < x && (x = e.to), e.from > S && (S = e.from), e.to > S && (S = e.to);
467
+ let C = E(x, S), w = (e) => s(10 + g - (e - C.min) / (C.max - C.min || 1) * g), T = h / Math.max(1, e.categories.length), D = T * .2, k = Math.max(1, T - D), ee = y.map((n, r) => {
468
+ let i = w(Math.max(n.from, n.to)), l = w(Math.min(n.from, n.to)), u = p + T * r + D / 2, d = n.isTotal ? c : n.value >= 0 ? a : o;
469
+ return {
470
+ x: s(u),
471
+ y: i,
472
+ w: s(k),
473
+ h: Math.max(1, l - i),
474
+ color: d,
475
+ label: e.categories[r] ?? String(r),
476
+ series: t.label,
477
+ value: n.value
478
+ };
479
+ }), A = [{
480
+ path: y.map((e, t) => {
481
+ let n = p + T * t + D / 2 + k, r = w(e.to), i = p + T * (t + 1) + D / 2;
482
+ return t < y.length - 1 ? `M${n},${r} L${i},${r}` : "";
483
+ }).filter(Boolean).join(" "),
484
+ areaPath: "",
485
+ color: "var(--sg-muted, #94a3b8)",
486
+ label: "",
487
+ points: []
488
+ }], te = e.categories.map((e, t) => ({
489
+ label: e,
490
+ x: s(p + T * t + T / 2)
491
+ })), ne = C.ticks.map((t) => ({
492
+ value: t,
493
+ y: w(t),
494
+ label: O(t, e.valueFormat, e)
495
+ }));
496
+ return {
497
+ ...f,
498
+ plot: _,
499
+ bars: ee,
500
+ lines: A,
501
+ yTicks: ne,
502
+ xTicks: te,
503
+ xLabelRotated: d
504
+ };
505
+ }
506
+ if (e.type === "funnel") {
507
+ let t = u[0];
508
+ if (!t || !t.values.length) return { ...f };
509
+ let i = Math.max(1, n - 20 - 20), a = Math.max(1, r - 16 - 16), s = {
510
+ x: 20,
511
+ y: 16,
512
+ w: i,
513
+ h: a
514
+ }, c = a / t.values.length, l = Math.max(...t.values.map((e) => Number.isFinite(e) ? e : 0)), d = t.values[0] ?? 0, p = (e) => l > 0 ? e / l * i : 0, m = 20 + i / 2, h = e.palette ?? o, _ = t.values.map((n, r) => {
515
+ let i = t.values[r + 1] ?? n * .8, a = p(n), o = p(i), s = 16 + c * r, l = s + c, u = `M${m - a / 2},${s} L${m + a / 2},${s} L${m + o / 2},${l} L${m - o / 2},${l} Z`, f = t.color ?? h[r % h.length];
516
+ return {
517
+ path: u,
518
+ color: f,
519
+ label: e.categories[r] ?? t.label,
520
+ value: n,
521
+ conversion: d > 0 ? n / d : 0,
522
+ dropoff: r === 0 ? 0 : (t.values[r - 1] ?? n) > 0 ? 1 - n / (t.values[r - 1] ?? n) : 0,
523
+ cx: m,
524
+ cy: (s + l) / 2,
525
+ textColor: g(f)
526
+ };
527
+ });
528
+ return {
529
+ ...f,
530
+ plot: s,
531
+ funnelSegments: _
532
+ };
533
+ }
534
+ if (e.type === "radar") {
535
+ if (!u.length || !e.categories.length) return { ...f };
536
+ let t = Math.max(1, n - 30 - 30), i = Math.max(1, r - 24 - 24), a = {
537
+ x: 30,
538
+ y: 24,
539
+ w: t,
540
+ h: i
541
+ }, c = 30 + t / 2, l = 24 + i / 2, d = Math.max(20, Math.min(t, i) / 2 - 20), p = e.categories, m = p.length, h = 0;
542
+ for (let e of u) for (let t of e.values) Number.isFinite(t) && t > h && (h = t);
543
+ h === 0 && (h = 1);
544
+ let g = Array.from({ length: 5 }, (e, t) => (t + 1) / 5 * h), _ = (e) => -Math.PI / 2 + e / m * Math.PI * 2, v = (e, t) => {
545
+ let n = t / h, r = _(e);
546
+ return {
547
+ x: s(c + d * n * Math.cos(r)),
548
+ y: s(l + d * n * Math.sin(r))
549
+ };
550
+ }, y = p.map((e, t) => {
551
+ let n = v(t, h);
552
+ return {
553
+ label: e,
554
+ x: n.x,
555
+ y: n.y
556
+ };
557
+ }), b = u.map((t, n) => {
558
+ let r = t.values.map((e, t) => {
559
+ let n = v(t, Number.isFinite(e) ? e : 0);
560
+ return {
561
+ x: n.x,
562
+ y: n.y,
563
+ value: e,
564
+ axis: p[t] ?? ""
565
+ };
566
+ }), i = r.length ? r.map((e, t) => `${t === 0 ? "M" : "L"}${e.x},${e.y}`).join(" ") + " Z" : "", a = e.palette ?? o;
567
+ return {
568
+ label: t.label,
569
+ color: t.color ?? a[n % a.length],
570
+ path: i,
571
+ points: r
572
+ };
573
+ });
574
+ return {
575
+ ...f,
576
+ plot: a,
577
+ radarRings: g,
578
+ radarAxes: y,
579
+ radarSeries: b,
580
+ radarCenter: {
581
+ cx: c,
582
+ cy: l,
583
+ r: d
584
+ }
585
+ };
586
+ }
587
+ if (e.type === "calendar") {
588
+ let i = e.calendarValues ?? [];
589
+ if (!i.length && !e.calendarStart) return { ...f };
590
+ let a = /* @__PURE__ */ new Map(), o = Infinity, s = -Infinity;
591
+ for (let e of i) a.set(e.date, e.value), Number.isFinite(e.value) && (e.value < o && (o = e.value), e.value > s && (s = e.value));
592
+ o === Infinity && (o = 0, s = 1), o === s && (s = o + 1);
593
+ let c = p(e.colorScale, o, s, t), l = (e) => m(c, (e - o) / (s - o)), u = i.map((e) => e.date).sort(), d = e.calendarStart ?? u[0] ?? "2026-01-01", h = e.calendarEnd ?? u[u.length - 1] ?? d, g = /* @__PURE__ */ new Date(d + "T00:00:00Z"), _ = /* @__PURE__ */ new Date(h + "T00:00:00Z");
594
+ g.setUTCDate(g.getUTCDate() - g.getUTCDay()), _.setUTCDate(_.getUTCDate() + (6 - _.getUTCDay()));
595
+ let v = Math.round((_.getTime() - g.getTime()) / 864e5) + 1, y = Math.ceil(v / 7), b = Math.max(1, n - 36 - 80), x = Math.max(1, r - 26 - 16), S = Math.floor(b / y), C = Math.floor(x / 7), w = Math.max(6, Math.min(S, C)), T = {
596
+ x: 36,
597
+ y: 26,
598
+ w: w * y,
599
+ h: w * 7
600
+ }, E = [], D = -1, k = [];
601
+ for (let e = 0; e < v; e += 1) {
602
+ let t = new Date(g.getTime() + e * 864e5), n = Math.floor(e / 7), r = e % 7, i = t.toISOString().slice(0, 10), o = a.has(i), s = a.get(i) ?? 0;
603
+ E.push({
604
+ x: 36 + n * w,
605
+ y: 26 + r * w,
606
+ size: w,
607
+ date: i,
608
+ value: s,
609
+ defined: o,
610
+ color: o ? l(s) : "transparent"
611
+ }), t.getUTCDate() === 1 && t.getUTCMonth() !== D && (D = t.getUTCMonth(), k.push({
612
+ label: t.toLocaleDateString(void 0, { month: "short" }),
613
+ x: 36 + n * w
614
+ }));
615
+ }
616
+ let ee = Array.from({ length: 5 }, (t, n) => {
617
+ let r = n / 4, i = o + (s - o) * r;
618
+ return {
619
+ value: i,
620
+ color: l(i),
621
+ label: O(i, e.valueFormat, e)
622
+ };
623
+ });
624
+ return {
625
+ ...f,
626
+ plot: T,
627
+ calendarCells: E,
628
+ calendarMonthTicks: k,
629
+ calendarLegend: ee
630
+ };
631
+ }
632
+ if (e.type === "gauge") {
633
+ let t = e.gaugeMin ?? 0, i = e.gaugeMax ?? 100, a = Math.max(t, Math.min(i, e.gaugeValue ?? 0)), o = e.gaugeTarget, c = n / 2, l = r * .78, u = Math.min(n * .42, r * .65), d = Math.PI, p = 2 * Math.PI, m = (e) => d + (e - t) / (i - t || 1) * (p - d), h = (e, t, n) => {
634
+ let r = c + n * Math.cos(e), i = l + n * Math.sin(e), a = c + n * Math.cos(t), o = l + n * Math.sin(t);
635
+ return `M${r},${i} A${n},${n} 0 ${+(t - e > Math.PI)} 1 ${a},${o}`;
636
+ }, g = h(d, p, u), _ = h(d, m(a), u), v = (e.gaugeRanges ?? []).map((e) => ({
637
+ path: h(m(e.from), m(e.to), u - 16),
638
+ color: e.color,
639
+ from: e.from,
640
+ to: e.to
641
+ })), y = null;
642
+ if (o != null && Number.isFinite(o)) {
643
+ let e = m(Math.max(t, Math.min(i, o))), n = u - 12, r = u + 4;
644
+ y = {
645
+ x1: c + n * Math.cos(e),
646
+ y1: l + n * Math.sin(e),
647
+ x2: c + r * Math.cos(e),
648
+ y2: l + r * Math.sin(e)
649
+ };
650
+ }
651
+ let b = [];
652
+ for (let e = 0; e <= 20; e++) {
653
+ let t = d + e / 20 * (p - d), n = e % 5 == 0, r = u + 9, i = u + (n ? 17 : 13);
654
+ b.push({
655
+ x1: c + r * Math.cos(t),
656
+ y1: l + r * Math.sin(t),
657
+ x2: c + i * Math.cos(t),
658
+ y2: l + i * Math.sin(t),
659
+ major: n
660
+ });
661
+ }
662
+ let x = m(a), S = u - 14, C = x + Math.PI / 2, w = (e, t) => `${s(c + e * Math.cos(t))},${s(l + e * Math.sin(t))}`, T = `M${w(9, C)} L${w(S, x)} L${w(9, C + Math.PI)} L${w(5, x + Math.PI)} Z`, E = null, D = e.gaugeRanges ?? [];
663
+ for (let e of D) if (a >= e.from && a < e.to) {
664
+ E = e.color;
665
+ break;
666
+ }
667
+ if (E == null) for (let e of D) a >= e.from && a <= e.to && (E = e.color);
668
+ return {
669
+ ...f,
670
+ plot: {
671
+ x: 0,
672
+ y: 0,
673
+ w: n,
674
+ h: r
675
+ },
676
+ gauge: {
677
+ cx: c,
678
+ cy: l,
679
+ r: u,
680
+ trackPath: g,
681
+ valuePath: _,
682
+ rangePaths: v,
683
+ target: y,
684
+ ticks: b,
685
+ needle: {
686
+ path: T,
687
+ hubR: 6
688
+ },
689
+ valueColor: E,
690
+ minLabel: {
691
+ x: c - u,
692
+ y: l + 20
693
+ },
694
+ maxLabel: {
695
+ x: c + u,
696
+ y: l + 20
697
+ },
698
+ value: a,
699
+ min: t,
700
+ max: i,
701
+ unit: e.gaugeUnit ?? ""
702
+ }
703
+ };
704
+ }
705
+ if (e.type === "treemap") {
706
+ let t = e.treemap;
707
+ if (!t) return { ...f };
708
+ let i = Math.max(1, n - 4 - 4), a = Math.max(1, r - 4 - 4), c = {
709
+ x: 4,
710
+ y: 4,
711
+ w: i,
712
+ h: a
713
+ }, l = e.palette ?? o, u = [];
714
+ function d(e) {
715
+ return e.children?.length ? e.children.reduce((e, t) => e + d(t), 0) : Math.max(0, e.value ?? 0);
716
+ }
717
+ function p(e, t, n, r, i, a) {
718
+ if (!e.length || r <= 0 || i <= 0) return;
719
+ let o = e.map(d), c = o.reduce((e, t) => e + t, 0);
720
+ if (c <= 0) return;
721
+ let f = e.map((e, t) => ({
722
+ node: e,
723
+ value: o[t]
724
+ })).sort((e, t) => t.value - e.value), m = t, h = n, _ = r, v = i, y = c, b = [], x = (e, t, n, r) => {
725
+ if (n <= 0) return Infinity;
726
+ let i = n * r / t, a = 0;
727
+ for (let n of e) {
728
+ let e = n * r / i, o = Math.max(t / e, e / t);
729
+ o > a && (a = o);
730
+ }
731
+ return a;
732
+ };
733
+ function S() {
734
+ if (!b.length) return;
735
+ let e = b.reduce((e, t) => e + t.value, 0), t = _ * v / y, n = _ >= v, r = n ? v : _, i = e * t / r, o = 0;
736
+ for (let e of b) {
737
+ let r = e.value * t / i, c = n ? m : m + o, d = n ? h + o : h, f = n ? i : r, _ = n ? r : i, v = e.node.color ?? l[(a + u.length) % l.length];
738
+ if (e.node.children?.length) {
739
+ u.push({
740
+ x: s(c),
741
+ y: s(d),
742
+ w: s(f),
743
+ h: s(_),
744
+ color: v,
745
+ textColor: g(v),
746
+ name: e.node.name,
747
+ value: e.value,
748
+ depth: a
749
+ });
750
+ let t = Math.min(18, _ * .25);
751
+ p(e.node.children, c + 1, d + t, f - 2, _ - t - 1, a + 1);
752
+ } else u.push({
753
+ x: s(c),
754
+ y: s(d),
755
+ w: s(f),
756
+ h: s(_),
757
+ color: v,
758
+ textColor: g(v),
759
+ name: e.node.name,
760
+ value: e.value,
761
+ depth: a
762
+ });
763
+ o += r;
764
+ }
765
+ n ? (m += i, _ -= i) : (h += i, v -= i), y -= e, b = [];
766
+ }
767
+ for (let e of f) {
768
+ let t = _ * v / y, n = Math.min(_, v), r = b.reduce((e, t) => e + t.value, 0), i = x(b.map((e) => e.value), n, r, t), a = x([...b.map((e) => e.value), e.value], n, r + e.value, t);
769
+ b.length && a > i && S(), b.push(e);
770
+ }
771
+ S();
772
+ }
773
+ return p(t.children ?? [t], 4, 4, i, a, 0), {
774
+ ...f,
775
+ plot: c,
776
+ treemapCells: u
777
+ };
778
+ }
779
+ if (e.type === "sankey") {
780
+ let t = e.sankeyNodes ?? [], i = e.sankeyLinks ?? [];
781
+ if (!t.length || !i.length) return { ...f };
782
+ let a = Math.max(1, n - 10 - 10), s = Math.max(1, r - 14 - 14), c = {
783
+ x: 10,
784
+ y: 14,
785
+ w: a,
786
+ h: s
787
+ }, l = e.palette ?? o, u = new Map(t.map((e) => [e.id, e])), d = new Set(i.map((e) => e.target)), p = t.filter((e) => !d.has(e.id)), m = /* @__PURE__ */ new Map();
788
+ function h(e, t, n) {
789
+ if (!n.has(e)) {
790
+ n.add(e), (t > (m.get(e) ?? 0) || !m.has(e)) && m.set(e, t);
791
+ for (let r of i) r.source === e && h(r.target, t + 1, n);
792
+ n.delete(e);
793
+ }
794
+ }
795
+ for (let e of p) h(e.id, 0, /* @__PURE__ */ new Set());
796
+ for (let e of t) m.has(e.id) || m.set(e.id, 0);
797
+ let g = Math.max(...m.values()) + 1, _ = g > 1 ? (a - 14 * g) / (g - 1) : 0, v = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map();
798
+ for (let e of i) v.set(e.target, (v.get(e.target) ?? 0) + e.value), y.set(e.source, (y.get(e.source) ?? 0) + e.value);
799
+ let b = /* @__PURE__ */ new Map();
800
+ for (let e of t) {
801
+ let t = m.get(e.id) ?? 0, n = b.get(t) ?? [];
802
+ n.push(e.id), b.set(t, n);
803
+ }
804
+ let x = 0;
805
+ for (let e of b.values()) {
806
+ let t = e.reduce((e, t) => e + Math.max(v.get(t) ?? 0, y.get(t) ?? 0), 0);
807
+ t > x && (x = t);
808
+ }
809
+ if (x === 0) return {
810
+ ...f,
811
+ plot: c
812
+ };
813
+ let S = (s - 64) / x, C = [];
814
+ for (let [e, t] of b) {
815
+ let n = t.map((e) => Math.max(8, Math.max(v.get(e) ?? 0, y.get(e) ?? 0) * S)), r = 14 + (s - (n.reduce((e, t) => e + t, 0) + 8 * (t.length - 1))) / 2, i = 10 + e * (14 + _);
816
+ t.forEach((t, a) => {
817
+ let o = u.get(t), s = n[a];
818
+ C.push({
819
+ id: t,
820
+ label: o.label ?? t,
821
+ color: o.color ?? l[C.length % l.length],
822
+ x: i,
823
+ y: r,
824
+ w: 14,
825
+ h: s,
826
+ column: e,
827
+ totalIn: v.get(t) ?? 0,
828
+ totalOut: y.get(t) ?? 0
829
+ }), r += s + 8;
830
+ });
831
+ }
832
+ let w = new Map(C.map((e) => [e.id, e])), T = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map(), D = [], O = i.slice().sort((e, t) => t.value - e.value);
833
+ for (let e of O) {
834
+ let t = w.get(e.source), n = w.get(e.target);
835
+ if (!t || !n) continue;
836
+ let r = Math.max(1, e.value * S), i = t.y + (E.get(t.id) ?? 0) + r / 2, a = n.y + (T.get(n.id) ?? 0) + r / 2;
837
+ E.set(t.id, (E.get(t.id) ?? 0) + r), T.set(n.id, (T.get(n.id) ?? 0) + r);
838
+ let o = t.x + t.w, s = n.x, c = (o + s) / 2, l = `M${o},${i} C${c},${i} ${c},${a} ${s},${a}`;
839
+ D.push({
840
+ path: l,
841
+ color: e.color ?? t.color,
842
+ width: r,
843
+ source: e.source,
844
+ target: e.target,
845
+ value: e.value
846
+ });
847
+ }
848
+ return {
849
+ ...f,
850
+ plot: c,
851
+ sankeyNodes: C,
852
+ sankeyLinks: D
853
+ };
854
+ }
855
+ if (e.type === "heatmap") {
856
+ if (!u.length || !e.categories.length) return {
857
+ ...f,
858
+ plot: {
859
+ x: 0,
860
+ y: 0,
861
+ w: n,
862
+ h: r
863
+ }
864
+ };
865
+ let i = u.reduce((e, t) => Math.max(e, t.label.length), 0), a = 12 + Math.min(180, Math.max(60, i * 7)), o = Math.max(1, n - a - 64), c = Math.max(1, r - 12 - 32), l = {
866
+ x: a,
867
+ y: 12,
868
+ w: o,
869
+ h: c
870
+ }, d = o / e.categories.length, h = c / u.length, _ = Infinity, v = -Infinity;
871
+ for (let e of u) for (let t of e.values) Number.isFinite(t) && (t < _ && (_ = t), t > v && (v = t));
872
+ _ === Infinity && (_ = 0, v = 1), _ === v && (v = _ + 1);
873
+ let y = p(e.colorScale, _, v, t), b = (e) => m(y, (e - _) / (v - _)), x = [];
874
+ u.forEach((t, n) => {
875
+ t.values.forEach((r, i) => {
876
+ if (!Number.isFinite(r)) return;
877
+ let o = b(r);
878
+ x.push({
879
+ x: s(a + d * i),
880
+ y: s(12 + h * n),
881
+ w: s(d),
882
+ h: s(h),
883
+ color: o,
884
+ textColor: g(o),
885
+ value: r,
886
+ rowLabel: t.label,
887
+ colLabel: e.categories[i] ?? ""
888
+ });
889
+ });
890
+ });
891
+ let S = u.map((e, t) => ({
892
+ value: t,
893
+ y: s(12 + h * t + h / 2),
894
+ label: e.label
895
+ })), C = e.categories.map((e, t) => ({
896
+ label: e,
897
+ x: s(a + d * t + d / 2)
898
+ })), w = Array.from({ length: 5 }, (t, n) => {
899
+ let r = n / 4, i = _ + (v - _) * r;
900
+ return {
901
+ value: i,
902
+ color: b(i),
903
+ label: O(i, e.valueFormat, e)
904
+ };
905
+ });
906
+ return {
907
+ ...f,
908
+ plot: l,
909
+ heatmapCells: x,
910
+ heatmapRowTicks: S,
911
+ heatmapColTicks: C,
912
+ heatmapLegend: w
913
+ };
914
+ }
915
+ if (e.type === "pie") {
916
+ let t = u[0];
917
+ if (!t) return f;
918
+ let i = t.values.reduce((e, t) => e + Math.max(0, t), 0) || 1, a = n / 2, o = r / 2, l = Math.min(n, r) / 2 - 10, d = l * Math.min(.9, Math.max(0, e.innerRadius ?? 0)), p = -Math.PI / 2, m = t.values.map((t, n) => {
919
+ let r = Math.max(0, t) / i, u = p, f = p + r * Math.PI * 2;
920
+ p = f;
921
+ let m = +(f - u > Math.PI), h = (u + f) / 2, g = (l + d) / 2 || l * .6, _ = a + l * Math.cos(u), v = o + l * Math.sin(u), y = a + l * Math.cos(f), b = o + l * Math.sin(f), x;
922
+ if (r >= .999) x = d ? `M${s(a - l)},${s(o)} A${l},${l} 0 1 1 ${s(a + l)},${s(o)} A${l},${l} 0 1 1 ${s(a - l)},${s(o)} ZM${s(a - d)},${s(o)} A${d},${d} 0 1 0 ${s(a + d)},${s(o)} A${d},${d} 0 1 0 ${s(a - d)},${s(o)} Z` : `M${s(a - l)},${s(o)} A${l},${l} 0 1 1 ${s(a + l)},${s(o)} A${l},${l} 0 1 1 ${s(a - l)},${s(o)} Z`;
923
+ else if (d > 0) {
924
+ let e = a + d * Math.cos(u), t = o + d * Math.sin(u), n = a + d * Math.cos(f), r = o + d * Math.sin(f);
925
+ x = `M${s(_)},${s(v)} A${l},${l} 0 ${m} 1 ${s(y)},${s(b)} L${s(n)},${s(r)} A${d},${d} 0 ${m} 0 ${s(e)},${s(t)} Z`;
926
+ } else x = `M${s(a)},${s(o)} L${s(_)},${s(v)} A${l},${l} 0 ${m} 1 ${s(y)},${s(b)} Z`;
927
+ let S = e.categories[n] ?? String(n);
928
+ return {
929
+ path: x,
930
+ color: e.categoryColors?.[S] ?? c[n % c.length],
931
+ label: S,
932
+ value: t,
933
+ percent: r * 100,
934
+ cx: s(a + g * Math.cos(h)),
935
+ cy: s(o + g * Math.sin(h))
936
+ };
937
+ });
938
+ return {
939
+ ...f,
940
+ slices: m,
941
+ legend: e.categories.map((t, n) => ({
942
+ label: t,
943
+ color: e.categoryColors?.[t] ?? c[n % c.length]
944
+ })),
945
+ donut: d > 0 ? {
946
+ cx: s(a),
947
+ cy: s(o),
948
+ r: s(d),
949
+ total: t.values.reduce((e, t) => e + Math.max(0, t), 0)
950
+ } : null
951
+ };
952
+ }
953
+ if (e.type === "scatter") {
954
+ let t = 48 + (e.yAxisTitle ? 16 : 0), i = 28 + (e.xAxisTitle ? 16 : 0), a = Math.max(1, n - t - 12), o = Math.max(1, r - 10 - i), c = {
955
+ x: t,
956
+ y: 10,
957
+ w: a,
958
+ h: o
959
+ }, l = Infinity, d = -Infinity, p = Infinity, m = -Infinity, h = Infinity, g = -Infinity;
960
+ for (let e of u) for (let t of e.points ?? []) Number.isFinite(t.x) && (l = Math.min(l, t.x), d = Math.max(d, t.x)), Number.isFinite(t.y) && (p = Math.min(p, t.y), m = Math.max(m, t.y)), t.r != null && Number.isFinite(t.r) && (h = Math.min(h, t.r), g = Math.max(g, t.r));
961
+ if (l === Infinity) return {
962
+ ...f,
963
+ plot: c
964
+ };
965
+ let _ = E(l, d), v = E(p, m), y = g > h, b = (e) => s(t + (e - _.min) / (_.max - _.min || 1) * a), x = (e) => s(10 + o - (e - v.min) / (v.max - v.min || 1) * o), S = (e) => y && e != null && Number.isFinite(e) ? s(4 + (e - h) / (g - h || 1) * 14) : 5, C = [];
966
+ for (let e of u) for (let t of e.points ?? []) !Number.isFinite(t.x) || !Number.isFinite(t.y) || C.push({
967
+ cx: b(t.x),
968
+ cy: x(t.y),
969
+ r: S(t.r),
970
+ color: e.color,
971
+ label: t.label ?? "",
972
+ series: e.label,
973
+ x: t.x,
974
+ y: t.y
975
+ });
976
+ let w = (e.referenceLines ?? []).map((t) => ({
977
+ y: x(t.value),
978
+ label: t.label ?? O(t.value, e.valueFormat, e),
979
+ color: t.color ?? "#ef4444",
980
+ dashed: t.dashed !== !1
981
+ }));
982
+ return {
983
+ ...f,
984
+ plot: c,
985
+ scatterPoints: C,
986
+ referenceLines: w,
987
+ yTicks: v.ticks.map((t) => ({
988
+ value: t,
989
+ y: x(t),
990
+ label: O(t, e.valueFormat, e)
991
+ })),
992
+ xTicks: _.ticks.map((e) => ({
993
+ label: D(e),
994
+ x: b(e)
995
+ }))
996
+ };
997
+ }
998
+ if (e.orientation === "horizontal" && u.length > 0 && u.every((e) => e.kind === "bar")) {
999
+ let t = e.categories.reduce((e, t) => Math.max(e, t.length), 0), i = Math.min(150, 18 + t * 6.4) + (e.yAxisTitle ? 16 : 0), a = 26 + (e.xAxisTitle ? 16 : 0), o = Math.max(1, n - i - 16), c = Math.max(1, r - 8 - a), d = {
1000
+ x: i,
1001
+ y: 8,
1002
+ w: o,
1003
+ h: c
1004
+ }, p = (e.referenceLines ?? []).map((e) => e.value), m = e.stacked100 ? E(0, 100) : re(u, e.categories, l, p), h = (e) => s(i + (e - m.min) / (m.max - m.min || 1) * o), g = e.categories.length, _ = c / Math.max(1, g), v = _ * .2, y = _ - v, b = (e) => 8 + _ * e + v / 2, x = h(Math.min(Math.max(0, m.min), m.max)), S = [];
1005
+ if (l) {
1006
+ let t = e.stacked100 ? e.categories.map((e, t) => u.reduce((e, n) => e + Math.abs(Number.isFinite(n.values[t]) ? n.values[t] : 0), 0) || 1) : null, n = Array(g).fill(0), r = Array(g).fill(0);
1007
+ for (let i of u) i.values.forEach((a, o) => {
1008
+ if (!Number.isFinite(a)) return;
1009
+ let c = t ? a / t[o] * 100 : a, l, u;
1010
+ c >= 0 ? (l = h(n[o]), u = h(n[o] + c), n[o] += c) : (l = h(r[o] + c), u = h(r[o]), r[o] += c), S.push({
1011
+ x: Math.min(l, u),
1012
+ y: s(b(o)),
1013
+ w: s(Math.abs(u - l)),
1014
+ h: s(Math.max(1, y)),
1015
+ color: i.color,
1016
+ label: e.categories[o] ?? String(o),
1017
+ series: i.label,
1018
+ value: a
1019
+ });
1020
+ });
1021
+ } else {
1022
+ let t = y / u.length;
1023
+ u.forEach((n, r) => {
1024
+ n.values.forEach((i, a) => {
1025
+ if (!Number.isFinite(i)) return;
1026
+ let o = h(i);
1027
+ S.push({
1028
+ x: Math.min(o, x),
1029
+ y: s(b(a) + t * r),
1030
+ w: s(Math.max(1, Math.abs(o - x))),
1031
+ h: s(Math.max(1, t - 1)),
1032
+ color: n.color,
1033
+ label: e.categories[a] ?? String(a),
1034
+ series: n.label,
1035
+ value: i
1036
+ });
1037
+ });
1038
+ });
1039
+ }
1040
+ let C = m.ticks.map((t) => ({
1041
+ label: e.stacked100 ? `${D(t)}%` : O(t, e.valueFormat, e),
1042
+ x: h(t)
1043
+ })), w = e.categories.map((e, t) => ({
1044
+ value: t,
1045
+ y: s(b(t) + y / 2),
1046
+ label: e
1047
+ })), T = (e.referenceLines ?? []).map((t) => ({
1048
+ x: h(t.value),
1049
+ label: t.label ?? O(t.value, e.valueFormat, e),
1050
+ color: t.color ?? "#ef4444",
1051
+ dashed: t.dashed !== !1
1052
+ }));
1053
+ return {
1054
+ ...f,
1055
+ plot: d,
1056
+ bars: S,
1057
+ orientation: "horizontal",
1058
+ valueTicks: C,
1059
+ catTicks: w,
1060
+ referenceLinesV: T,
1061
+ xLabelRotated: !1
1062
+ };
1063
+ }
1064
+ let h = u.filter((e) => e.axis === "left"), _ = u.filter((e) => e.axis === "right"), y = _.length > 0, S = e.categories.reduce((e, t) => Math.max(e, t.length), 0), C = e.categories.length > 8 || S > 9, w = e.categoryGroups && e.categoryGroups.length > 0 && e.xType !== "time" && e.orientation !== "horizontal" && e.categoryGroups.reduce((e, t) => e + t.span, 0) === e.categories.length ? e.categoryGroups : null, k = w ? 18 : 0, j = 48 + (e.yAxisTitle ? 16 : 0), M = (y ? 48 : 12) + (e.y2AxisTitle ? 16 : 0), N = (C ? 54 : 28) + (e.xAxisTitle ? 16 : 0) + k, P = Math.max(1, n - j - M), F = Math.max(1, r - 10 - N), ie = {
1065
+ x: j,
1066
+ y: 10,
1067
+ w: P,
1068
+ h: F
1069
+ }, ae = (e.referenceLines ?? []).filter((e) => e.axis !== "right").map((e) => e.value), I = (e.referenceLines ?? []).filter((e) => e.axis === "right").map((e) => e.value), L = e.yScale === "log", R = e.y2Scale === "log", z = e.stacked100 ? E(0, 100) : re(h, e.categories, l, ae, L), B = y ? e.stacked100 ? E(0, 100) : re(_, e.categories, l, I, R) : null, V = (e, t, n = !1) => {
1070
+ let r = v(t, e.min, e.max, n);
1071
+ return r === null ? NaN : s(10 + F - r * F);
1072
+ }, oe = (e) => V(z, e, L), se = (e) => V(B ?? z, e, R), H = (e) => e.axis === "right" ? B ?? z : z, U = (e) => e.axis === "right" ? R : L, W = e.categories.length, G = P / Math.max(1, W), K = e.xType === "time" || e.xType === "ordinal-time" ? e.categories.map((e) => Date.parse(e)) : null, q = !!K && K.some((e) => Number.isFinite(e)), ce = q && e.xType === "time", J = q ? Math.min(...K.filter(Number.isFinite)) : 0, Y = q && Math.max(...K.filter(Number.isFinite)) - J || 1, X = (e) => ce && Number.isFinite(K[e]) ? s(j + (K[e] - J) / Y * P) : s(j + G * e + G / 2), le = ce ? ee(J, J + Y).map((e) => ({
1073
+ label: te(e, Y),
1074
+ x: s(j + (e - J) / Y * P)
1075
+ })) : q ? A(K).map((e) => ({
1076
+ label: te(K[e], Y),
1077
+ x: X(e)
1078
+ })) : i(e.categories, X, G, C), ue = [];
1079
+ if (w && !q) {
1080
+ let e = 0;
1081
+ for (let t of w) {
1082
+ let n = s(j + G * e), r = s(j + G * (e + t.span));
1083
+ ue.push({
1084
+ label: t.label,
1085
+ x0: n,
1086
+ x1: r,
1087
+ xCenter: s((n + r) / 2)
1088
+ }), e += t.span;
1089
+ }
1090
+ }
1091
+ let Z = u.filter((e) => e.kind === "bar"), de = [];
1092
+ if (Z.length) {
1093
+ let t = G * .2;
1094
+ if (l) {
1095
+ let n = G - t, r = (e) => j + G * e + t / 2;
1096
+ for (let t of ["left", "right"]) {
1097
+ let i = Z.filter((e) => e.axis === t);
1098
+ if (!i.length) continue;
1099
+ let a = t === "right" ? se : oe, o = e.stacked100 ? e.categories.map((e, t) => i.reduce((e, n) => e + Math.abs(Number.isFinite(n.values[t]) ? n.values[t] : 0), 0) || 1) : null, c = Array(W).fill(0), l = Array(W).fill(0);
1100
+ for (let t of i) t.values.forEach((i, u) => {
1101
+ if (!Number.isFinite(i)) return;
1102
+ let d = o ? i / o[u] * 100 : i, f, p;
1103
+ d >= 0 ? (f = a(c[u] + d), p = a(c[u]), c[u] += d) : (f = a(l[u]), p = a(l[u] + d), l[u] += d), de.push({
1104
+ x: s(r(u)),
1105
+ y: Math.min(f, p),
1106
+ w: s(Math.max(1, n)),
1107
+ h: s(Math.abs(p - f)),
1108
+ color: t.color,
1109
+ label: e.categories[u] ?? String(u),
1110
+ series: t.label,
1111
+ value: i
1112
+ });
1113
+ });
1114
+ }
1115
+ } else {
1116
+ let n = (G - t) / Z.length;
1117
+ Z.forEach((r, i) => {
1118
+ let a = H(r), o = U(r), c = o ? V(a, a.min, o) : V(a, Math.min(Math.max(0, a.min), a.max), o);
1119
+ r.values.forEach((l, u) => {
1120
+ if (!Number.isFinite(l) || o && l <= 0) return;
1121
+ let d = j + G * u + t / 2 + n * i, f = V(a, l, o);
1122
+ de.push({
1123
+ x: s(d),
1124
+ y: Math.min(f, c),
1125
+ w: s(Math.max(1, n - 1)),
1126
+ h: s(Math.max(1, Math.abs(f - c))),
1127
+ color: r.color,
1128
+ label: e.categories[u] ?? String(u),
1129
+ series: r.label,
1130
+ value: l
1131
+ });
1132
+ });
1133
+ });
1134
+ }
1135
+ }
1136
+ let Q = u.filter((e) => e.kind === "candle"), fe = [];
1137
+ if (Q.length) {
1138
+ let t = e.candleColors?.up ?? "#16a34a", n = e.candleColors?.down ?? "#ef4444", r = Math.max(1, G * .7 / Q.length);
1139
+ Q.forEach((i, a) => {
1140
+ let o = H(i), c = U(i);
1141
+ (i.ohlc ?? []).forEach((l, u) => {
1142
+ if (!l || ![
1143
+ l.o,
1144
+ l.h,
1145
+ l.l,
1146
+ l.c
1147
+ ].every(Number.isFinite) || c && (l.o <= 0 || l.h <= 0 || l.l <= 0 || l.c <= 0)) return;
1148
+ let d = j + G * u + G / 2 - r * Q.length / 2 + r * a, f = V(o, l.o, c), p = V(o, l.c, c), m = l.c >= l.o;
1149
+ fe.push({
1150
+ x: s(d),
1151
+ w: s(r),
1152
+ xCenter: s(d + r / 2),
1153
+ yOpen: f,
1154
+ yClose: p,
1155
+ yHigh: V(o, l.h, c),
1156
+ yLow: V(o, l.l, c),
1157
+ bodyY: Math.min(f, p),
1158
+ bodyH: Math.max(1, Math.abs(p - f)),
1159
+ up: m,
1160
+ color: m ? t : n,
1161
+ label: e.categories[u] ?? String(u),
1162
+ series: i.label,
1163
+ o: l.o,
1164
+ h: l.h,
1165
+ l: l.l,
1166
+ c: l.c
1167
+ });
1168
+ });
1169
+ });
1170
+ }
1171
+ let $ = u.filter((e) => e.kind === "box"), pe = [];
1172
+ if ($.length) {
1173
+ let t = Math.max(1, G * .6 / $.length);
1174
+ $.forEach((n, r) => {
1175
+ let i = H(n), a = U(n);
1176
+ (n.boxes ?? []).forEach((o, c) => {
1177
+ if (!o || ![
1178
+ o.min,
1179
+ o.q1,
1180
+ o.median,
1181
+ o.q3,
1182
+ o.max
1183
+ ].every(Number.isFinite) || a && o.min <= 0) return;
1184
+ let l = j + G * c + G / 2 - t * $.length / 2 + t * r, u = V(i, o.q1, a), d = V(i, o.q3, a);
1185
+ pe.push({
1186
+ x: s(l),
1187
+ w: s(t),
1188
+ xCenter: s(l + t / 2),
1189
+ yMin: V(i, o.min, a),
1190
+ yQ1: u,
1191
+ yMedian: V(i, o.median, a),
1192
+ yQ3: d,
1193
+ yMax: V(i, o.max, a),
1194
+ boxY: Math.min(u, d),
1195
+ boxH: Math.max(1, Math.abs(u - d)),
1196
+ outliers: (o.outliers ?? []).filter((e) => Number.isFinite(e) && (!a || e > 0)).map((e) => ({
1197
+ y: V(i, e, a),
1198
+ value: e
1199
+ })),
1200
+ color: n.color,
1201
+ label: e.categories[c] ?? String(c),
1202
+ series: n.label,
1203
+ min: o.min,
1204
+ q1: o.q1,
1205
+ median: o.median,
1206
+ q3: o.q3,
1207
+ max: o.max
1208
+ });
1209
+ });
1210
+ });
1211
+ }
1212
+ let me = [];
1213
+ for (let t of u) {
1214
+ if (!t.errors) continue;
1215
+ let n = H(t), r = U(t);
1216
+ t.errors.forEach((i, o) => {
1217
+ let c = t.values[o];
1218
+ if (!Number.isFinite(c)) return;
1219
+ let l = a(i, c);
1220
+ l && (r && l.lo <= 0 || me.push({
1221
+ xCenter: s(j + G * o + G / 2),
1222
+ yLo: V(n, l.lo, r),
1223
+ yHi: V(n, l.hi, r),
1224
+ cap: s(Math.min(6, G * .15)),
1225
+ color: t.color,
1226
+ label: e.categories[o] ?? String(o),
1227
+ series: t.label,
1228
+ lo: l.lo,
1229
+ hi: l.hi
1230
+ }));
1231
+ });
1232
+ }
1233
+ let he = [], ge = {
1234
+ left: Array(W).fill(0),
1235
+ right: Array(W).fill(0)
1236
+ }, _e = {
1237
+ left: null,
1238
+ right: null
1239
+ };
1240
+ if (e.stacked100) for (let t of ["left", "right"]) {
1241
+ let n = u.filter((e) => e.kind === "area" && e.axis === t);
1242
+ n.length && (_e[t] = e.categories.map((e, t) => n.reduce((e, n) => e + Math.abs(Number.isFinite(n.values[t]) ? n.values[t] : 0), 0) || 1));
1243
+ }
1244
+ for (let t of u) {
1245
+ if (t.kind === "bar" || t.kind === "candle" || t.kind === "box") continue;
1246
+ let n = H(t), r = U(t), i = (e) => V(n, e, r), a = l && t.kind === "area", o = (e) => X(e), c, u = null;
1247
+ if (a) {
1248
+ let n = ge[t.axis], r = n.slice(), a = _e[t.axis];
1249
+ c = t.values.map((t, r) => {
1250
+ let s = Number.isFinite(t) ? t : 0, c = a ? s / a[r] * 100 : s, l = (n[r] ?? 0) + c;
1251
+ return n[r] = l, {
1252
+ x: o(r),
1253
+ y: i(l),
1254
+ label: e.categories[r] ?? String(r),
1255
+ value: t,
1256
+ defined: Number.isFinite(t)
1257
+ };
1258
+ }), u = r.map((e, t) => ({
1259
+ x: o(t),
1260
+ y: i(e)
1261
+ }));
1262
+ } else c = t.values.map((t, n) => {
1263
+ let r = Number.isFinite(t);
1264
+ return {
1265
+ x: o(n),
1266
+ y: r ? i(t) : NaN,
1267
+ label: e.categories[n] ?? String(n),
1268
+ value: t,
1269
+ defined: r
1270
+ };
1271
+ });
1272
+ let d = !!t.smooth, f = b(c, d), p = "";
1273
+ if (t.kind === "area" && c.length) {
1274
+ if (u) p = `${d ? x(c.map((e) => ({
1275
+ x: e.x,
1276
+ y: e.y
1277
+ }))) : c.map((e, t) => `${t === 0 ? "M" : "L"}${e.x},${e.y}`).join(" ")} ${d ? `L${u[u.length - 1].x},${u[u.length - 1].y} ` + x(u.slice().reverse()).replace(/^M[^ ]+ /, "") : u.slice().reverse().map((e) => `L${e.x},${e.y}`).join(" ")} Z`;
1278
+ else {
1279
+ let e = s(i(Math.min(Math.max(0, n.min), n.max))), t = [], r = [];
1280
+ for (let e of c) e.defined ? r.push(e) : r.length && (t.push(r), r = []);
1281
+ r.length && t.push(r), p = t.map((t) => `${d ? x(t.map((e) => ({
1282
+ x: e.x,
1283
+ y: e.y
1284
+ }))) : t.map((e, t) => `${t === 0 ? "M" : "L"}${e.x},${e.y}`).join(" ")} L${t[t.length - 1].x},${e} L${t[0].x},${e} Z`).join(" ");
1285
+ }
1286
+ }
1287
+ let m = "";
1288
+ if (t.upperValues?.length === t.values.length && t.lowerValues?.length === t.values.length) {
1289
+ let e = [], n = [];
1290
+ for (let a = 0; a < t.values.length; a += 1) {
1291
+ let s = t.upperValues[a], c = t.lowerValues[a];
1292
+ !Number.isFinite(s) || !Number.isFinite(c) || r && (s <= 0 || c <= 0) || (e.push({
1293
+ x: o(a),
1294
+ y: i(s)
1295
+ }), n.push({
1296
+ x: o(a),
1297
+ y: i(c)
1298
+ }));
1299
+ }
1300
+ e.length >= 2 && (m = `${d ? x(e) : e.map((e, t) => `${t === 0 ? "M" : "L"}${e.x},${e.y}`).join(" ")} ${d ? `L${n[n.length - 1].x},${n[n.length - 1].y} ` + x(n.slice().reverse()).replace(/^M[^ ]+ /, "") : n.slice().reverse().map((e) => `L${e.x},${e.y}`).join(" ")} Z`);
1301
+ }
1302
+ he.push({
1303
+ path: f,
1304
+ areaPath: p,
1305
+ color: t.color,
1306
+ label: t.label,
1307
+ points: c,
1308
+ bandPath: m
1309
+ });
1310
+ }
1311
+ let ve = (t, n) => t.ticks.map((r) => ({
1312
+ value: r,
1313
+ y: V(t, r, n),
1314
+ label: e.stacked100 ? `${s(r)}%` : O(r, e.valueFormat, e)
1315
+ })), ye = (e.referenceLines ?? []).map((t) => {
1316
+ let n = t.axis === "right", r = n ? B ?? z : z, i = n ? R : L;
1317
+ return {
1318
+ y: V(r, t.value, i),
1319
+ label: t.label ?? O(t.value, e.valueFormat, e),
1320
+ color: t.color ?? "#ef4444",
1321
+ dashed: t.dashed !== !1
1322
+ };
1323
+ }), be = [];
1324
+ for (let t of u) {
1325
+ if (!t.overlay) continue;
1326
+ let n = H(t), r = U(t), i = T(t.values, t.overlay), a = t.overlayColor ?? t.color, o = i.map((t, i) => {
1327
+ let a = Number.isFinite(t) && (!r || t > 0);
1328
+ return {
1329
+ x: X(i),
1330
+ y: a ? V(n, t, r) : NaN,
1331
+ label: e.categories[i] ?? String(i),
1332
+ value: t,
1333
+ defined: a
1334
+ };
1335
+ }), s = b(o, !!t.smooth);
1336
+ be.push({
1337
+ path: s,
1338
+ areaPath: "",
1339
+ color: a,
1340
+ label: `${t.label} (${t.overlay})`,
1341
+ points: o
1342
+ });
1343
+ }
1344
+ let xe = [];
1345
+ for (let t of e.annotations ?? []) {
1346
+ let n = null, r = null;
1347
+ if ("category" in t.at) {
1348
+ let i = e.categories.indexOf(t.at.category);
1349
+ if (i < 0) continue;
1350
+ n = X(i);
1351
+ let a = t.at.series, o = a ? u.find((e) => e.label === a) : u[0];
1352
+ if (o) {
1353
+ let e = o.values[i];
1354
+ Number.isFinite(e) && (r = V(H(o), e, U(o)));
1355
+ }
1356
+ r ??= 10 + F / 2;
1357
+ } else n = j + P / 2, r = Number.isFinite(t.at.y) ? V(z, t.at.y, L) : 10 + F / 2;
1358
+ n != null && r != null && Number.isFinite(r) && xe.push({
1359
+ x: n,
1360
+ y: r,
1361
+ label: t.label,
1362
+ color: t.color ?? "#0f172a",
1363
+ placement: t.placement ?? "top"
1364
+ });
1365
+ }
1366
+ return {
1367
+ ...f,
1368
+ plot: ie,
1369
+ axes: {
1370
+ y: {
1371
+ min: z.min,
1372
+ max: z.max,
1373
+ log: L
1374
+ },
1375
+ y2: B ? {
1376
+ min: B.min,
1377
+ max: B.max,
1378
+ log: R
1379
+ } : null,
1380
+ slot: G,
1381
+ count: e.categories.length
1382
+ },
1383
+ bars: de,
1384
+ candles: fe,
1385
+ boxes: pe,
1386
+ errorBars: me,
1387
+ lines: he,
1388
+ yTicks: ve(z, L),
1389
+ y2Ticks: B ? ve(B, R) : [],
1390
+ hasRightAxis: y,
1391
+ xTicks: le,
1392
+ categoryGroupTicks: ue,
1393
+ xLabelRotated: !q && C,
1394
+ referenceLines: ye,
1395
+ overlays: be,
1396
+ annotations: xe
1397
+ };
1398
+ }
1399
+ function M(e, t, n) {
1400
+ let r = Math.max(0, t), i = Math.min(e.categories.length - 1, n), a = (e) => e ? e.slice(r, i + 1) : void 0;
1401
+ return {
1402
+ ...e,
1403
+ categories: e.categories.slice(r, i + 1),
1404
+ series: e.series.map((e) => ({
1405
+ ...e,
1406
+ values: e.values.slice(r, i + 1),
1407
+ rowIds: a(e.rowIds),
1408
+ upperValues: a(e.upperValues),
1409
+ lowerValues: a(e.lowerValues),
1410
+ ohlc: a(e.ohlc),
1411
+ boxes: a(e.boxes),
1412
+ errors: a(e.errors)
1413
+ })),
1414
+ waterfallTotals: a(e.waterfallTotals)
1415
+ };
1416
+ }
1417
+ function N(e, t) {
1418
+ let n = t.reduce ?? "sum", r = Array.isArray(t.value) ? t.value : [t.value], i = (e, t) => n === "count" ? t : n === "avg" ? t ? e / t : 0 : e, a = [], o = /* @__PURE__ */ new Map(), s = (e) => {
1419
+ let t = o.get(e);
1420
+ return t === void 0 && (t = a.length, o.set(e, t), a.push(e)), t;
1421
+ }, c = /* @__PURE__ */ new Map(), l = (e) => {
1422
+ let t = c.get(e);
1423
+ return t || (t = [], c.set(e, t)), t;
1424
+ }, u = t.idField !== void 0;
1425
+ for (let n of e) {
1426
+ let e = s(String(n[t.category] ?? "")), i = u ? n[t.idField] : void 0;
1427
+ if (t.series) {
1428
+ let a = l(String(n[t.series] ?? "")), o = Number(n[r[0]]), s = a[e] ??= {
1429
+ sum: 0,
1430
+ count: 0,
1431
+ rowIds: []
1432
+ };
1433
+ Number.isFinite(o) && (s.sum += o, s.count += 1, i !== void 0 && s.rowIds.push(i));
1434
+ } else for (let t of r) {
1435
+ let r = l(t), a = Number(n[t]), o = r[e] ??= {
1436
+ sum: 0,
1437
+ count: 0,
1438
+ rowIds: []
1439
+ };
1440
+ Number.isFinite(a) && (o.sum += a, o.count += 1, i !== void 0 && o.rowIds.push(i));
1441
+ }
1442
+ }
1443
+ let d = [...c.entries()].map(([e, n]) => ({
1444
+ label: t.series ? e : t.seriesLabel && r.length === 1 ? t.seriesLabel : e,
1445
+ values: a.map((e, t) => {
1446
+ let r = n[t] ?? {
1447
+ sum: 0,
1448
+ count: 0,
1449
+ rowIds: []
1450
+ };
1451
+ return i(r.sum, r.count);
1452
+ }),
1453
+ rowIds: u ? a.map((e, t) => (n[t]?.rowIds ?? []).slice()) : void 0
1454
+ })), f = a.map((e, t) => d.reduce((e, n) => e + (Number.isFinite(n.values[t]) ? n.values[t] : 0), 0)), p = t.sort ?? (t.topN ? "value-desc" : "none"), m = a.map((e, t) => t);
1455
+ p === "value-desc" ? m.sort((e, t) => f[t] - f[e]) : p === "value-asc" ? m.sort((e, t) => f[e] - f[t]) : p === "category" && m.sort((e, t) => a[e].localeCompare(a[t]));
1456
+ let h, g;
1457
+ if (t.topN && m.length > t.topN) {
1458
+ let e = m.slice(0, t.topN), n = m.slice(t.topN);
1459
+ h = e.map((e) => a[e]).concat(t.otherLabel ?? "Other"), g = d.map((t) => ({
1460
+ label: t.label,
1461
+ values: e.map((e) => t.values[e]).concat(n.reduce((e, n) => e + (Number.isFinite(t.values[n]) ? t.values[n] : 0), 0)),
1462
+ rowIds: t.rowIds ? e.map((e) => t.rowIds[e]).concat([n.flatMap((e) => t.rowIds[e] ?? [])]) : void 0
1463
+ }));
1464
+ } else h = m.map((e) => a[e]), g = d.map((e) => ({
1465
+ label: e.label,
1466
+ values: m.map((t) => e.values[t]),
1467
+ rowIds: e.rowIds ? m.map((t) => e.rowIds[t]) : void 0
1468
+ }));
1469
+ return {
1470
+ type: t.type,
1471
+ categories: h,
1472
+ series: g,
1473
+ width: t.width,
1474
+ height: t.height,
1475
+ stacked: t.stacked,
1476
+ stacked100: t.stacked100,
1477
+ palette: t.palette
1478
+ };
1479
+ }
1480
+ function P(e, t = "Total") {
1481
+ let n = (e) => typeof e == "number" && Number.isFinite(e) && e > 0 ? e : 0;
1482
+ if (e.series.length <= 1) {
1483
+ let r = e.series[0];
1484
+ return {
1485
+ name: t,
1486
+ children: e.categories.map((e, t) => ({
1487
+ name: e,
1488
+ value: n(r?.values[t])
1489
+ })).filter((e) => e.value > 0)
1490
+ };
1491
+ }
1492
+ return {
1493
+ name: t,
1494
+ children: e.categories.map((t, r) => ({
1495
+ name: t,
1496
+ children: e.series.map((e) => ({
1497
+ name: e.label,
1498
+ value: n(e.values[r])
1499
+ })).filter((e) => e.value > 0)
1500
+ })).filter((e) => e.children.length > 0)
1501
+ };
1502
+ }
1503
+ function F(e) {
1504
+ let t = e.series[0], n = [];
1505
+ return e.categories.forEach((e, r) => {
1506
+ let i = Date.parse(e);
1507
+ if (!Number.isFinite(i)) return;
1508
+ let a = t?.values[r];
1509
+ typeof a != "number" || !Number.isFinite(a) || n.push({
1510
+ date: new Date(i).toISOString().slice(0, 10),
1511
+ value: a
1512
+ });
1513
+ }), n;
1514
+ }
1515
+ function ie(e) {
1516
+ let t = [], n = /* @__PURE__ */ new Set();
1517
+ return e.categories.forEach((r, i) => {
1518
+ for (let a of e.series) {
1519
+ let e = a.values[i];
1520
+ if (typeof e != "number" || !Number.isFinite(e) || e <= 0) continue;
1521
+ let o = `from:${r}`, s = `to:${a.label}`;
1522
+ o !== s && (n.add(o), n.add(s), t.push({
1523
+ source: o,
1524
+ target: s,
1525
+ value: e
1526
+ }));
1527
+ }
1528
+ }), {
1529
+ nodes: [...n].map((e) => ({
1530
+ id: e,
1531
+ label: e.slice(e.indexOf(":") + 1)
1532
+ })),
1533
+ links: t
1534
+ };
1535
+ }
1536
+ function ae(e, t, n) {
1537
+ let r = n.category, i = n.value, a = n.series;
1538
+ if (e === "scatter") {
1539
+ let e = n.value2;
1540
+ return !i || !e ? null : L(t, {
1541
+ x: i,
1542
+ y: e,
1543
+ ...a ? { series: a } : {},
1544
+ ...n.palette ? { palette: n.palette } : {}
1545
+ });
1546
+ }
1547
+ if (e === "gauge") return i ? R(t, {
1548
+ value: i,
1549
+ ...n.reduce ? { reduce: n.reduce } : {}
1550
+ }) : null;
1551
+ if (e === "boxplot") {
1552
+ if (!r || !i) return null;
1553
+ let e = I(t, {
1554
+ category: r,
1555
+ value: i,
1556
+ ...a ? { series: a } : {}
1557
+ });
1558
+ return n.palette && (e.palette = n.palette), e;
1559
+ }
1560
+ return null;
1561
+ }
1562
+ function I(e, t) {
1563
+ let n = [], i = /* @__PURE__ */ new Set();
1564
+ for (let r of e) {
1565
+ let e = String(r[t.category] ?? "");
1566
+ i.has(e) || (i.add(e), n.push(e));
1567
+ }
1568
+ let a = [], o = /* @__PURE__ */ new Set();
1569
+ if (t.series) for (let n of e) {
1570
+ let e = String(n[t.series] ?? "");
1571
+ o.has(e) || (o.add(e), a.push(e));
1572
+ }
1573
+ else a.push(t.seriesLabel ?? String(t.value));
1574
+ return {
1575
+ type: "boxplot",
1576
+ categories: n,
1577
+ series: a.map((i) => {
1578
+ let a = n.map((n) => {
1579
+ let a = [];
1580
+ for (let r of e) {
1581
+ if (String(r[t.category] ?? "") !== n || t.series && String(r[t.series] ?? "") !== i) continue;
1582
+ let e = r[t.value];
1583
+ if (e == null || e === "") continue;
1584
+ let o = Number(e);
1585
+ Number.isFinite(o) && a.push(o);
1586
+ }
1587
+ return r(a, t.whisker);
1588
+ });
1589
+ return {
1590
+ label: i,
1591
+ values: a.map((e) => e ? e.median : NaN),
1592
+ boxes: a
1593
+ };
1594
+ }),
1595
+ ...t.width ? { width: t.width } : {},
1596
+ ...t.height ? { height: t.height } : {}
1597
+ };
1598
+ }
1599
+ function L(e, t) {
1600
+ let n = /* @__PURE__ */ new Map();
1601
+ for (let r of e) {
1602
+ let e = Number(r[t.x]), i = Number(r[t.y]);
1603
+ if (!Number.isFinite(e) || !Number.isFinite(i)) continue;
1604
+ let a = t.series ? String(r[t.series] ?? "") : t.y, o = {
1605
+ x: e,
1606
+ y: i
1607
+ };
1608
+ if (t.r) {
1609
+ let e = Number(r[t.r]);
1610
+ Number.isFinite(e) && (o.r = e);
1611
+ }
1612
+ t.label && (o.label = String(r[t.label] ?? ""));
1613
+ let s = n.get(a);
1614
+ s ? s.push(o) : n.set(a, [o]);
1615
+ }
1616
+ return {
1617
+ type: "scatter",
1618
+ categories: [],
1619
+ series: [...n].map(([e, t]) => ({
1620
+ label: e,
1621
+ values: [],
1622
+ points: t
1623
+ })),
1624
+ palette: t.palette,
1625
+ width: t.width,
1626
+ height: t.height,
1627
+ xAxisTitle: t.x,
1628
+ yAxisTitle: t.y
1629
+ };
1630
+ }
1631
+ function R(e, t) {
1632
+ let n = t.reduce ?? "sum", r = 0, i = 0;
1633
+ for (let n of e) {
1634
+ let e = Number(n[t.value]);
1635
+ Number.isFinite(e) && (r += e, i += 1);
1636
+ }
1637
+ let a = n === "count" ? i : n === "avg" ? i ? r / i : 0 : r, o = t.min ?? Math.min(0, a);
1638
+ return {
1639
+ type: "gauge",
1640
+ categories: [],
1641
+ series: [],
1642
+ gaugeValue: a,
1643
+ gaugeMin: o,
1644
+ gaugeMax: t.max ?? (a > o ? E(o, a).max : o + 1),
1645
+ gaugeTarget: t.target,
1646
+ gaugeUnit: t.unit,
1647
+ width: t.width,
1648
+ height: t.height
1649
+ };
1650
+ }
1651
+ //#endregion
1652
+ export { ae as _, y as a, M as b, w as c, _ as d, E as f, N as g, I as h, b as i, O as l, g as m, r as n, n as o, A as p, j as r, T as s, o as t, S as u, m as v, C as y };