@svgrid/grid 2.2.15 → 2.2.17

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 (290) hide show
  1. package/README.md +1 -1
  2. package/dist/GridFooter.svelte +12 -11
  3. package/dist/SvAnchor.svelte +65 -0
  4. package/dist/SvAnchor.svelte.d.ts +24 -0
  5. package/dist/SvAspectRatio.svelte +38 -0
  6. package/dist/SvAspectRatio.svelte.d.ts +16 -0
  7. package/dist/SvAutoComplete.svelte +52 -7
  8. package/dist/SvAutoComplete.svelte.d.ts +4 -1
  9. package/dist/SvBlockquote.svelte +43 -0
  10. package/dist/SvBlockquote.svelte.d.ts +16 -0
  11. package/dist/SvCalendar.svelte +33 -2
  12. package/dist/SvCalendar.svelte.d.ts +8 -1
  13. package/dist/SvCheckBox.svelte +6 -2
  14. package/dist/SvCode.svelte +52 -0
  15. package/dist/SvCode.svelte.d.ts +19 -0
  16. package/dist/SvCollapsible.svelte +75 -0
  17. package/dist/SvCollapsible.svelte.d.ts +27 -0
  18. package/dist/SvColorInput.svelte +11 -17
  19. package/dist/SvColorInput.svelte.d.ts +2 -0
  20. package/dist/SvComboBox.svelte +85 -8
  21. package/dist/SvComboBox.svelte.d.ts +14 -0
  22. package/dist/SvCountryInput.svelte +2 -2
  23. package/dist/SvCountryInput.svelte.d.ts +1 -1
  24. package/dist/SvDropDownList.svelte +154 -51
  25. package/dist/SvDropDownList.svelte.d.ts +17 -3
  26. package/dist/SvDurationInput.svelte +59 -41
  27. package/dist/SvDurationInput.svelte.d.ts +18 -0
  28. package/dist/SvField.svelte +203 -12
  29. package/dist/SvField.svelte.d.ts +45 -8
  30. package/dist/SvForm.svelte +195 -21
  31. package/dist/SvForm.svelte.d.ts +23 -0
  32. package/dist/SvGrid.controller.svelte.d.ts +12 -1
  33. package/dist/SvGrid.controller.svelte.js +87 -7
  34. package/dist/SvGrid.svelte +383 -181
  35. package/dist/SvGrid.types.d.ts +123 -2
  36. package/dist/SvGridChartView.svelte +70 -0
  37. package/dist/SvGridChartView.svelte.d.ts +11 -0
  38. package/dist/SvGridDropdown.svelte +9 -2
  39. package/dist/SvGridSelect.svelte +5 -2
  40. package/dist/SvGridSelect.svelte.d.ts +1 -1
  41. package/dist/SvGroup.svelte +41 -0
  42. package/dist/SvGroup.svelte.d.ts +27 -0
  43. package/dist/SvHoverCard.svelte +70 -0
  44. package/dist/SvHoverCard.svelte.d.ts +41 -0
  45. package/dist/SvKbd.svelte +51 -0
  46. package/dist/SvKbd.svelte.d.ts +18 -0
  47. package/dist/SvList.svelte +55 -0
  48. package/dist/SvList.svelte.d.ts +23 -0
  49. package/dist/SvListBox.svelte +166 -77
  50. package/dist/SvListBox.svelte.d.ts +17 -4
  51. package/dist/SvLoadingOverlay.svelte +53 -0
  52. package/dist/SvLoadingOverlay.svelte.d.ts +28 -0
  53. package/dist/SvMark.svelte +36 -0
  54. package/dist/SvMark.svelte.d.ts +14 -0
  55. package/dist/SvMaskedInput.svelte +50 -35
  56. package/dist/SvMaskedInput.svelte.d.ts +17 -2
  57. package/dist/SvMenuList.svelte +32 -3
  58. package/dist/SvMenubar.svelte +200 -0
  59. package/dist/SvMenubar.svelte.d.ts +18 -0
  60. package/dist/SvMultiSelect.svelte +7 -4
  61. package/dist/SvMultiSelect.svelte.d.ts +1 -1
  62. package/dist/SvNumberInput.svelte +79 -42
  63. package/dist/SvNumberInput.svelte.d.ts +25 -0
  64. package/dist/SvOtpInput.svelte +2 -2
  65. package/dist/SvPasswordInput.svelte +51 -31
  66. package/dist/SvPasswordInput.svelte.d.ts +17 -0
  67. package/dist/SvPhoneInput.svelte +39 -28
  68. package/dist/SvPhoneInput.svelte.d.ts +4 -0
  69. package/dist/SvPopconfirm.svelte +79 -0
  70. package/dist/SvPopconfirm.svelte.d.ts +42 -0
  71. package/dist/SvPopover.svelte +87 -29
  72. package/dist/SvPopover.svelte.d.ts +18 -4
  73. package/dist/SvRadioGroup.svelte +5 -1
  74. package/dist/SvResult.svelte +73 -0
  75. package/dist/SvResult.svelte.d.ts +28 -0
  76. package/dist/SvSegmented.svelte +114 -0
  77. package/dist/SvSegmented.svelte.d.ts +29 -0
  78. package/dist/SvSimpleGrid.svelte +41 -0
  79. package/dist/SvSimpleGrid.svelte.d.ts +25 -0
  80. package/dist/SvSlider.svelte +23 -10
  81. package/dist/SvSpinner.svelte +43 -0
  82. package/dist/SvSpinner.svelte.d.ts +20 -0
  83. package/dist/SvStack.svelte +37 -0
  84. package/dist/SvStack.svelte.d.ts +24 -0
  85. package/dist/SvSwitchButton.svelte +6 -1
  86. package/dist/SvTagsInput.svelte +9 -5
  87. package/dist/SvText.svelte +76 -0
  88. package/dist/SvText.svelte.d.ts +31 -0
  89. package/dist/SvTextInput.svelte +75 -43
  90. package/dist/SvTextInput.svelte.d.ts +28 -1
  91. package/dist/SvTimePicker.svelte +32 -2
  92. package/dist/SvTimePicker.svelte.d.ts +8 -9
  93. package/dist/SvTitle.svelte +57 -0
  94. package/dist/SvTitle.svelte.d.ts +24 -0
  95. package/dist/SvToaster.svelte +41 -6
  96. package/dist/SvToggleButton.svelte +4 -1
  97. package/dist/SvTooltip.svelte +68 -34
  98. package/dist/SvTooltip.svelte.d.ts +14 -2
  99. package/dist/SvTree.svelte +81 -21
  100. package/dist/SvTree.svelte.d.ts +3 -2
  101. package/dist/SvTreeSelect.svelte +5 -2
  102. package/dist/SvTreeSelect.svelte.d.ts +1 -1
  103. package/dist/SvVisuallyHidden.svelte +49 -0
  104. package/dist/SvVisuallyHidden.svelte.d.ts +19 -0
  105. package/dist/ai.d.ts +289 -0
  106. package/dist/ai.js +1013 -0
  107. package/dist/board-view.svelte.d.ts +22 -0
  108. package/dist/board-view.svelte.js +13 -0
  109. package/dist/build-api.js +36 -6
  110. package/dist/cdn/GridMenus-0AK9O7qG.js +420 -0
  111. package/dist/cdn/GridMenus-BjUoCXoD.js +416 -0
  112. package/dist/cdn/SvDateTimePicker-CYC7gRER.js +2176 -0
  113. package/dist/cdn/SvDateTimePicker-DtQKd4Ns.js +2198 -0
  114. package/dist/cdn/SvGridChart-BcLCYvw9.js +1195 -0
  115. package/dist/cdn/SvGridChart-BhnFdLd0.js +1203 -0
  116. package/dist/cdn/SvGridChartPanel-Cmx9DHAS.js +561 -0
  117. package/dist/cdn/SvGridChartPanel-DvjwxLvK.js +577 -0
  118. package/dist/cdn/SvGridChartView-B40DTJSX.js +54 -0
  119. package/dist/cdn/SvGridChartView-PwqI4s02.js +53 -0
  120. package/dist/cdn/SvGridDropdown-DjALc_4f.js +255 -0
  121. package/dist/cdn/SvGridDropdown-hpnHvOGt.js +254 -0
  122. package/dist/cdn/chart-T1usDN0o.js +1212 -0
  123. package/dist/cdn/disclose-version-DoD9AFD_.js +2958 -0
  124. package/dist/cdn/export-format-JT5pWVT8.js +561 -0
  125. package/dist/cdn/popover-P-9P2YYn.js +69 -0
  126. package/dist/cdn/rolldown-runtime-Dy4uBu1J.js +11 -0
  127. package/dist/cdn/src-BLhdLmoN.js +25707 -0
  128. package/dist/cdn/src-BwnUVj3T.js +25623 -0
  129. package/dist/cdn/svgrid.js +9 -32897
  130. package/dist/cdn/svgrid.svelte-external.js +9 -30052
  131. package/dist/cell-formatting.d.ts +2 -2
  132. package/dist/cell-render.js +4 -4
  133. package/dist/chart-view.svelte.d.ts +25 -0
  134. package/dist/chart-view.svelte.js +14 -0
  135. package/dist/createCombobox.svelte.d.ts +5 -0
  136. package/dist/createCombobox.svelte.js +21 -5
  137. package/dist/createDropdownList.svelte.d.ts +3 -0
  138. package/dist/createDropdownList.svelte.js +8 -2
  139. package/dist/createForm.svelte.d.ts +18 -0
  140. package/dist/createForm.svelte.js +51 -6
  141. package/dist/createMenu.svelte.js +27 -0
  142. package/dist/createPopoverSelect.svelte.d.ts +3 -0
  143. package/dist/createPopoverSelect.svelte.js +9 -1
  144. package/dist/createSlider.svelte.d.ts +8 -21
  145. package/dist/createSlider.svelte.js +34 -0
  146. package/dist/createTooltip.svelte.d.ts +12 -0
  147. package/dist/createTooltip.svelte.js +72 -9
  148. package/dist/editor-contract.d.ts +15 -0
  149. package/dist/export-provider.d.ts +27 -0
  150. package/dist/export-provider.js +9 -0
  151. package/dist/filter-operators.d.ts +6 -0
  152. package/dist/filter-operators.js +33 -0
  153. package/dist/form-field.d.ts +45 -2
  154. package/dist/grid-messages.d.ts +61 -0
  155. package/dist/grid-messages.js +72 -0
  156. package/dist/group-display.d.ts +62 -0
  157. package/dist/group-display.js +78 -0
  158. package/dist/index.d.ts +36 -4
  159. package/dist/index.js +43 -2
  160. package/dist/js-scroller.svelte.d.ts +35 -0
  161. package/dist/js-scroller.svelte.js +154 -0
  162. package/dist/list-option.d.ts +46 -0
  163. package/dist/list-option.js +53 -0
  164. package/dist/menus.js +25 -11
  165. package/dist/pivot-view.svelte.d.ts +72 -0
  166. package/dist/pivot-view.svelte.js +13 -0
  167. package/dist/positioning.d.ts +111 -0
  168. package/dist/positioning.js +191 -0
  169. package/dist/scheduler-model.d.ts +3 -0
  170. package/dist/scheduler-model.js +22 -5
  171. package/dist/svgrid-wrapper.types.d.ts +18 -0
  172. package/dist/toast-store.svelte.d.ts +54 -0
  173. package/dist/toast-store.svelte.js +65 -15
  174. package/package.json +9 -1
  175. package/src/GridFooter.svelte +12 -11
  176. package/src/SvAnchor.svelte +65 -0
  177. package/src/SvAspectRatio.svelte +38 -0
  178. package/src/SvAutoComplete.svelte +52 -7
  179. package/src/SvBlockquote.svelte +43 -0
  180. package/src/SvCalendar.svelte +33 -2
  181. package/src/SvCalendar.test.ts +15 -0
  182. package/src/SvCheckBox.svelte +6 -2
  183. package/src/SvCode.svelte +52 -0
  184. package/src/SvCollapsible.svelte +75 -0
  185. package/src/SvColorInput.svelte +11 -17
  186. package/src/SvComboBox.svelte +85 -8
  187. package/src/SvCountryInput.svelte +2 -2
  188. package/src/SvDropDownList.svelte +154 -51
  189. package/src/SvDurationInput.svelte +59 -41
  190. package/src/SvField.svelte +203 -12
  191. package/src/SvForm.svelte +195 -21
  192. package/src/SvForm.test.ts +112 -0
  193. package/src/SvGrid.controller.svelte.ts +88 -7
  194. package/src/SvGrid.svelte +383 -181
  195. package/src/SvGrid.types.ts +125 -1
  196. package/src/SvGridChartView.svelte +70 -0
  197. package/src/SvGridDropdown.svelte +9 -2
  198. package/src/SvGridSelect.svelte +5 -2
  199. package/src/SvGroup.svelte +41 -0
  200. package/src/SvHoverCard.svelte +70 -0
  201. package/src/SvKbd.svelte +51 -0
  202. package/src/SvList.svelte +55 -0
  203. package/src/SvListBox.svelte +166 -77
  204. package/src/SvLoadingOverlay.svelte +53 -0
  205. package/src/SvMark.svelte +36 -0
  206. package/src/SvMaskedInput.svelte +50 -35
  207. package/src/SvMenuList.svelte +32 -3
  208. package/src/SvMenubar.svelte +200 -0
  209. package/src/SvMultiSelect.svelte +7 -4
  210. package/src/SvNumberInput.svelte +79 -42
  211. package/src/SvOtpInput.svelte +2 -2
  212. package/src/SvPasswordInput.svelte +51 -31
  213. package/src/SvPhoneInput.svelte +39 -28
  214. package/src/SvPopconfirm.svelte +79 -0
  215. package/src/SvPopover.svelte +87 -29
  216. package/src/SvRadioGroup.svelte +5 -1
  217. package/src/SvResult.svelte +73 -0
  218. package/src/SvSegmented.svelte +114 -0
  219. package/src/SvSimpleGrid.svelte +41 -0
  220. package/src/SvSlider.svelte +23 -10
  221. package/src/SvSpinner.svelte +43 -0
  222. package/src/SvStack.svelte +37 -0
  223. package/src/SvSwitchButton.svelte +6 -1
  224. package/src/SvTagsInput.svelte +9 -5
  225. package/src/SvText.svelte +76 -0
  226. package/src/SvTextInput.svelte +75 -43
  227. package/src/SvTimePicker.svelte +32 -2
  228. package/src/SvTitle.svelte +57 -0
  229. package/src/SvToaster.svelte +41 -6
  230. package/src/SvToaster.test.ts +32 -0
  231. package/src/SvToggleButton.svelte +4 -1
  232. package/src/SvTooltip.svelte +68 -34
  233. package/src/SvTree.svelte +81 -21
  234. package/src/SvTreeSelect.svelte +5 -2
  235. package/src/SvVisuallyHidden.svelte +49 -0
  236. package/src/ai.test.ts +502 -0
  237. package/src/ai.ts +1391 -0
  238. package/src/board-view.svelte.ts +33 -0
  239. package/src/build-api.coverage.test.ts +101 -0
  240. package/src/build-api.ts +43 -18
  241. package/src/builtin-editors.grid.test.ts +1 -1
  242. package/src/cell-formatting.ts +5 -5
  243. package/src/cell-render.ts +4 -4
  244. package/src/chart-view.svelte.ts +36 -0
  245. package/src/createCombobox.svelte.ts +17 -5
  246. package/src/createDropdownList.svelte.ts +8 -2
  247. package/src/createForm.svelte.ts +59 -6
  248. package/src/createMenu.svelte.ts +23 -0
  249. package/src/createPopoverSelect.svelte.ts +8 -1
  250. package/src/createSlider.svelte.ts +20 -0
  251. package/src/createTooltip.svelte.ts +67 -9
  252. package/src/editor-contract.ts +16 -0
  253. package/src/export-provider.ts +40 -0
  254. package/src/filter-operators.ts +37 -0
  255. package/src/form-field.ts +42 -2
  256. package/src/grid-messages.test.ts +24 -0
  257. package/src/grid-messages.ts +137 -0
  258. package/src/group-display.test.ts +77 -0
  259. package/src/group-display.ts +117 -0
  260. package/src/i18n.grid.test.ts +73 -0
  261. package/src/index.ts +91 -2
  262. package/src/js-scroller.svelte.ts +173 -0
  263. package/src/list-option.test.ts +56 -0
  264. package/src/list-option.ts +81 -0
  265. package/src/menus.test.ts +32 -0
  266. package/src/menus.ts +25 -12
  267. package/src/pivot-view.svelte.ts +90 -0
  268. package/src/pivot-view.test.ts +38 -0
  269. package/src/pivot.grid.test.ts +102 -0
  270. package/src/positioning.test.ts +141 -0
  271. package/src/positioning.ts +266 -0
  272. package/src/scheduler-model.test.ts +16 -0
  273. package/src/scheduler-model.ts +24 -5
  274. package/src/svgrid-wrapper.types.ts +23 -0
  275. package/src/svgrid.charting.test.ts +8 -1
  276. package/src/svgrid.comments-autocomplete.test.ts +7 -2
  277. package/src/svgrid.context-menu.test.ts +8 -3
  278. package/src/toast-store.svelte.ts +98 -0
  279. package/src/toast-store.test.ts +62 -1
  280. package/src/ui-breadth.test.ts +138 -0
  281. package/src/ui-buttons.test.ts +39 -0
  282. package/src/ui-inputs.test.ts +2 -2
  283. package/src/ui-range.test.ts +9 -0
  284. package/src/ui-selection.test.ts +36 -0
  285. package/src/ui-tier1.test.ts +1 -1
  286. package/src/virtual.test.ts +20 -6
  287. package/dist/SvGridBoard.svelte +0 -2339
  288. package/dist/SvGridBoard.svelte.d.ts +0 -31
  289. package/src/SvGridBoard.svelte +0 -2339
  290. package/src/board.test.ts +0 -927
@@ -0,0 +1,561 @@
1
+ import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
+ import { t } from "./SvGridChart-BhnFdLd0.js";
3
+ import * as n from "svelte/internal/client";
4
+ import "svelte/internal/disclose-version";
5
+ import { fly as r } from "svelte/transition";
6
+ import { cubicOut as i } from "svelte/easing";
7
+ //#region src/chart-export.ts
8
+ function a(e) {
9
+ return e instanceof SVGSVGElement ? e : e.querySelector("svg.sv-grid-chart-svg") ?? e.querySelector("svg");
10
+ }
11
+ function o(e, t, n) {
12
+ return getComputedStyle(e).getPropertyValue(t).trim() || n;
13
+ }
14
+ function s(e, t = {}) {
15
+ let n = a(e);
16
+ if (!n) throw Error("chartToSvgString: no <svg> found");
17
+ let r = o(n, "--sg-fg", "#0f172a"), i = o(n, "--sg-muted", "#64748b"), s = o(n, "--sg-border", "#e2e8f0"), c = t.background ?? o(n, "--sg-bg", "#ffffff"), l = n.viewBox.baseVal, u = l && l.width ? l.width : n.clientWidth || 520, d = l && l.height ? l.height : n.clientHeight || 300, f = n.cloneNode(!0);
18
+ f.setAttribute("width", String(u)), f.setAttribute("height", String(d)), f.setAttribute("xmlns", "http://www.w3.org/2000/svg");
19
+ let p = [
20
+ "fill",
21
+ "fill-opacity",
22
+ "stroke",
23
+ "stroke-width",
24
+ "stroke-opacity",
25
+ "stroke-dasharray",
26
+ "stroke-linecap",
27
+ "stroke-linejoin",
28
+ "opacity",
29
+ "font-size",
30
+ "font-family",
31
+ "font-weight",
32
+ "text-anchor"
33
+ ], m = n.querySelectorAll("*"), h = f.querySelectorAll("*");
34
+ for (let e = 0; e < m.length; e += 1) {
35
+ let t = h[e];
36
+ if (!t || !t.style) continue;
37
+ let n = getComputedStyle(m[e]);
38
+ for (let e of p) {
39
+ let r = n.getPropertyValue(e);
40
+ r && r !== "normal" && t.style.setProperty(e, r);
41
+ }
42
+ }
43
+ f.querySelectorAll(".sv-grid-chart-hit").forEach((e) => e.remove());
44
+ let g = document.createElementNS("http://www.w3.org/2000/svg", "style");
45
+ g.textContent = `
46
+ .sv-grid-chart-axis { fill: ${i}; font-size: 10px; font-family: sans-serif; }
47
+ .sv-grid-chart-gridline { stroke: ${s}; stroke-width: 1; opacity: 0.6; }
48
+ .sv-grid-chart-gridline.is-zero { stroke: ${i}; opacity: 0.9; }
49
+ .sv-grid-chart-datalabel { fill: ${r}; font-size: 9.5px; font-weight: 600; font-family: sans-serif; }
50
+ .sv-grid-chart-datalabel.on-bar { fill: #fff; }
51
+ .sv-grid-chart-donut-total { fill: ${r}; font-size: 16px; font-weight: 800; font-family: sans-serif; }
52
+ .sv-grid-chart-donut-label { fill: ${i}; font-size: 10px; font-family: sans-serif; }
53
+ `, f.insertBefore(g, f.firstChild);
54
+ let _ = document.createElementNS("http://www.w3.org/2000/svg", "rect");
55
+ return _.setAttribute("x", "0"), _.setAttribute("y", "0"), _.setAttribute("width", String(u)), _.setAttribute("height", String(d)), _.setAttribute("fill", c), f.insertBefore(_, g.nextSibling), new XMLSerializer().serializeToString(f);
56
+ }
57
+ function c(e, t) {
58
+ let n = document.createElement("a");
59
+ n.href = e, n.download = t, document.body.appendChild(n), n.click(), n.remove();
60
+ }
61
+ function l(e, t = "chart.svg", n = {}) {
62
+ let r = s(e, n), i = URL.createObjectURL(new Blob([r], { type: "image/svg+xml" }));
63
+ c(i, t), setTimeout(() => URL.revokeObjectURL(i), 1e3);
64
+ }
65
+ function u(e, t = {}) {
66
+ let n = s(e, t), r = t.scale ?? 2, i = a(e), o = i.viewBox.baseVal, c = (o && o.width ? o.width : i.clientWidth || 520) * r, l = (o && o.height ? o.height : i.clientHeight || 300) * r;
67
+ return new Promise((e, t) => {
68
+ let r = URL.createObjectURL(new Blob([n], { type: "image/svg+xml" })), i = new Image();
69
+ i.onload = () => {
70
+ let n = document.createElement("canvas");
71
+ n.width = Math.round(c), n.height = Math.round(l);
72
+ let a = n.getContext("2d");
73
+ if (!a) {
74
+ URL.revokeObjectURL(r), t(/* @__PURE__ */ Error("canvas 2d context unavailable"));
75
+ return;
76
+ }
77
+ a.drawImage(i, 0, 0, n.width, n.height), URL.revokeObjectURL(r), n.toBlob((n) => n ? e(n) : t(/* @__PURE__ */ Error("toBlob failed")), "image/png");
78
+ }, i.onerror = () => {
79
+ URL.revokeObjectURL(r), t(/* @__PURE__ */ Error("failed to rasterize chart SVG"));
80
+ }, i.src = r;
81
+ });
82
+ }
83
+ async function d(e, t = "chart.png", n = {}) {
84
+ let r = await u(e, n), i = URL.createObjectURL(r);
85
+ c(i, t), setTimeout(() => URL.revokeObjectURL(i), 1e3);
86
+ }
87
+ var f = (e) => {
88
+ let t = e == null ? "" : String(e);
89
+ return /[",\n]/.test(t) ? `"${t.replace(/"/g, "\"\"")}"` : t;
90
+ };
91
+ function p(e) {
92
+ let t = e.categories ?? [], n = e.series ?? [];
93
+ return !t.length || !n.length ? "" : [["Category", ...n.map((e) => e.label)].map(f).join(","), ...t.map((e, t) => [e, ...n.map((e) => e.values[t] ?? "")].map(f).join(","))].join("\n");
94
+ }
95
+ function m(e, t = "chart.csv") {
96
+ let n = p(e);
97
+ if (!n) return !1;
98
+ let r = URL.createObjectURL(new Blob([n], { type: "text/csv;charset=utf-8" }));
99
+ return c(r, t), setTimeout(() => URL.revokeObjectURL(r), 1e3), !0;
100
+ }
101
+ //#endregion
102
+ //#region src/SvGridChartPanel.svelte
103
+ var h = /* @__PURE__ */ e({ default: () => T }), g = n.from_html("<div role=\"separator\" aria-label=\"Resize chart panel\"></div>"), _ = n.from_html("<button type=\"button\" class=\"sv-grid-chart-btn\">Clear filter</button>"), v = n.from_svg("<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"20 6 9 17 4 12\"></polyline></svg>"), y = n.from_svg("<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path><polyline points=\"7 10 12 15 17 10\"></polyline><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"></line></svg>"), b = n.from_html("<div class=\"sv-grid-chart-export-menu\" role=\"menu\"><button type=\"button\" role=\"menuitem\">PNG image</button> <button type=\"button\" role=\"menuitem\">SVG vector</button> <button type=\"button\" role=\"menuitem\">CSV data</button> <button type=\"button\" role=\"menuitem\">Copy to clipboard</button></div>"), x = n.from_html("<button type=\"button\" aria-label=\"Chart with AI\" title=\"Chart with AI\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 2l1.9 4.6L18.5 8.5 13.9 10.4 12 15l-1.9-4.6L5.5 8.5l4.6-1.9L12 2zm6 11l1 2.4 2.4 1-2.4 1L18 21l-1-2.6-2.4-1 2.4-1L18 13zM6 14l.8 2 2 .8-2 .8L6 20l-.8-2.4-2-.8 2-.8L6 14z\"></path></svg> AI</button>"), ee = n.from_html("<button type=\"button\" class=\"sv-grid-chart-icon-btn\" aria-label=\"Add chart\" title=\"Add chart\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"></line><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line></svg></button>"), S = n.from_svg("<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M8 3v3a2 2 0 0 1-2 2H3\"></path><path d=\"M21 8h-3a2 2 0 0 1-2-2V3\"></path><path d=\"M3 16h3a2 2 0 0 1 2 2v3\"></path><path d=\"M16 21v-3a2 2 0 0 1 2-2h3\"></path></svg>"), C = n.from_svg("<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M8 3H5a2 2 0 0 0-2 2v3\"></path><path d=\"M21 8V5a2 2 0 0 0-2-2h-3\"></path><path d=\"M3 16v3a2 2 0 0 0 2 2h3\"></path><path d=\"M16 21h3a2 2 0 0 0 2-2v-3\"></path></svg>"), w = n.from_html("<button type=\"button\" class=\"sv-grid-chart-icon-btn\"><!></button> <button type=\"button\" class=\"sv-grid-chart-icon-btn\" aria-label=\"Dock chart\" title=\"Dock\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\"></rect><line x1=\"15\" y1=\"3\" x2=\"15\" y2=\"21\"></line></svg></button>", 1), te = n.from_html("<button type=\"button\" class=\"sv-grid-chart-icon-btn\" aria-label=\"Pop out chart\" title=\"Pop out\"><svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M15 3h6v6\"></path><path d=\"M10 14 21 3\"></path><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path></svg></button>"), ne = n.from_html("<div><button type=\"button\" class=\"sv-grid-chart-tab-label\" role=\"tab\"> </button> <button type=\"button\" class=\"sv-grid-chart-tab-x\" title=\"Remove\">&times;</button></div>"), re = n.from_html("<div class=\"sv-grid-chart-tabs\" role=\"tablist\" aria-label=\"Charts\"></div>"), ie = n.from_html("<p class=\"sv-grid-chart-ai-msg is-error\"> </p>"), ae = n.from_html("<p class=\"sv-grid-chart-ai-msg\"> </p>"), oe = n.from_html("<div class=\"sv-grid-chart-ai\"><form class=\"sv-grid-chart-ai-row\"><input class=\"sv-grid-chart-ai-input\" type=\"text\" placeholder=\"Describe a chart, e.g. revenue by region stacked by product\"/> <button type=\"submit\" class=\"sv-grid-chart-btn\"> </button></form> <!></div>"), se = n.from_html("<option> </option>"), ce = n.from_html("<option> </option>"), le = n.from_html("<option> </option>"), ue = n.from_html("<label class=\"sv-grid-chart-ctl\"><span class=\"sv-grid-chart-ctl-lbl\">Split by</span> <select><option>(none)</option><!></select></label>"), de = n.from_html("<option> </option>"), fe = n.from_html("<option> </option>"), pe = n.from_html("<option> </option>"), me = n.from_html("<label class=\"sv-grid-chart-toggle\"><input type=\"checkbox\"/> Stacked</label>"), he = n.from_html("<label class=\"sv-grid-chart-toggle\" title=\"Logarithmic value axis - flattens wide-range data\"><input type=\"checkbox\"/> Log scale</label>"), ge = n.from_html("<label class=\"sv-grid-chart-toggle\" title=\"Space points by actual date - real time ticks and proportional gaps\"><input type=\"checkbox\"/> Date axis</label>"), _e = n.from_html("<label class=\"sv-grid-chart-ctl\"><span class=\"sv-grid-chart-ctl-lbl\">Type</span> <select></select></label> <label class=\"sv-grid-chart-ctl\"><span class=\"sv-grid-chart-ctl-lbl\">Group by</span> <select></select></label> <!> <label class=\"sv-grid-chart-ctl\"><span class=\"sv-grid-chart-ctl-lbl\">Value</span> <select></select></label> <label class=\"sv-grid-chart-ctl\"><span class=\"sv-grid-chart-ctl-lbl\">Aggregate</span> <select></select></label> <label class=\"sv-grid-chart-ctl\"><span class=\"sv-grid-chart-ctl-lbl\">Format</span> <select></select></label> <!> <label class=\"sv-grid-chart-toggle\"><input type=\"checkbox\"/> Labels</label> <!> <!>", 1), ve = n.from_html("<p class=\"sv-grid-chart-empty\"><!></p>"), ye = n.from_html("<div class=\"sv-grid-chart-float-resizer\" role=\"separator\" aria-label=\"Resize chart window\"></div>"), be = n.from_html("<section aria-label=\"Chart\"><!> <header class=\"sv-grid-chart-panel-head\"><div><svg class=\"sv-grid-chart-title-icon\" width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"10\"></line><line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"4\"></line><line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"16\"></line></svg> <span class=\"sv-grid-chart-title\">Chart</span> <div class=\"sv-grid-chart-actions\"><!> <div class=\"sv-grid-chart-export\"><button type=\"button\" class=\"sv-grid-chart-icon-btn\" aria-label=\"Export chart\" title=\"Export\"><!></button> <!></div> <!> <!> <!> <button type=\"button\" class=\"sv-grid-chart-close\" aria-label=\"Close chart\">&times;</button></div></div> <!> <!> <div class=\"sv-grid-chart-controls\"><!></div></header> <div class=\"sv-grid-chart-panel-body\"><!></div> <!></section>");
104
+ function T(e, a) {
105
+ n.push(a, !0);
106
+ let o = n.prop(a, "ctrl", 7), s = n.derived(() => o().chartingConfig), c = n.derived(() => o().chartCfg), f = n.derived(() => o().chartIsCustom), p = n.derived(() => n.get(s)?.position ?? "bottom"), h = n.derived(() => n.get(s)?.crossFilter !== !1), T = n.derived(() => o().chartSpec), E = n.derived(() => o().chartableColumns), D = n.derived(() => o().chartSize ?? (n.get(p) === "right" ? n.get(s)?.width ?? 340 : n.get(s)?.height ?? 260)), O = n.derived(() => o().chartFloating), k = n.derived(() => o().chartMaximized), A = n.derived(() => o().chartFloatRect), j = n.state(null);
107
+ function M() {
108
+ let e = n.get(j)?.offsetParent;
109
+ return {
110
+ w: e?.clientWidth ?? 800,
111
+ h: e?.clientHeight ?? 520
112
+ };
113
+ }
114
+ function xe() {
115
+ if (!o().chartFloatRect) {
116
+ let { w: e, h: t } = M(), n = Math.min(600, Math.max(360, e - 80)), r = Math.min(430, Math.max(260, t - 90));
117
+ o().chartFloatRect = {
118
+ x: Math.round((e - n) / 2),
119
+ y: Math.round((t - r) / 2),
120
+ w: n,
121
+ h: r
122
+ };
123
+ }
124
+ o().chartFloating = !0;
125
+ }
126
+ function Se() {
127
+ o().chartFloating = !1, o().chartMaximized = !1;
128
+ }
129
+ let Ce = () => o().chartMaximized = !o().chartMaximized;
130
+ function we(e) {
131
+ if (!n.get(O) || n.get(k) || e.target?.closest("button")) return;
132
+ let t = o().chartFloatRect;
133
+ if (!t) return;
134
+ e.preventDefault();
135
+ let r = e.clientX, i = e.clientY, { w: a, h: s } = M(), c = (e) => {
136
+ let n = Math.max(0, Math.min(a - t.w, t.x + e.clientX - r)), c = Math.max(0, Math.min(s - t.h, t.y + e.clientY - i));
137
+ o().chartFloatRect = {
138
+ x: n,
139
+ y: c,
140
+ w: t.w,
141
+ h: t.h
142
+ };
143
+ }, l = () => {
144
+ window.removeEventListener("pointermove", c), window.removeEventListener("pointerup", l);
145
+ };
146
+ window.addEventListener("pointermove", c), window.addEventListener("pointerup", l);
147
+ }
148
+ function Te(e) {
149
+ let t = o().chartFloatRect;
150
+ if (!t) return;
151
+ e.preventDefault(), e.stopPropagation();
152
+ let n = e.clientX, r = e.clientY;
153
+ e.target.setPointerCapture?.(e.pointerId);
154
+ let i = (e) => {
155
+ o().chartFloatRect = {
156
+ x: t.x,
157
+ y: t.y,
158
+ w: Math.max(300, t.w + e.clientX - n),
159
+ h: Math.max(220, t.h + e.clientY - r)
160
+ };
161
+ }, a = () => {
162
+ window.removeEventListener("pointermove", i), window.removeEventListener("pointerup", a);
163
+ };
164
+ window.addEventListener("pointermove", i), window.addEventListener("pointerup", a);
165
+ }
166
+ let Ee = n.derived(() => n.get(O) ? n.get(k) ? "left:12px; top:12px; right:12px; bottom:12px; width:auto; height:auto;" : n.get(A) ? `left:${n.get(A).x}px; top:${n.get(A).y}px; width:${n.get(A).w}px; height:${n.get(A).h}px;` : "" : n.get(p) === "right" ? `width:${n.get(D)}px` : `height:${n.get(D)}px`), N = n.state(0), P = n.state(0), De = n.derived(() => n.get(T) ? n.get(T).type === "pie" ? n.get(T).categories.length : n.get(T).series.length : 0), Oe = n.derived(() => (n.get(De) > 1 ? 36 : 0) + (n.get(c)?.export === !0 ? 30 : 0)), ke = n.derived(() => n.get(N) > 24 ? n.get(N) - 8 : void 0), Ae = n.derived(() => n.get(P) > 24 ? Math.max(120, n.get(P) - 8 - n.get(Oe)) : void 0), je = [
167
+ {
168
+ value: "bar",
169
+ label: "Bar"
170
+ },
171
+ {
172
+ value: "line",
173
+ label: "Line"
174
+ },
175
+ {
176
+ value: "area",
177
+ label: "Area"
178
+ },
179
+ {
180
+ value: "pie",
181
+ label: "Pie"
182
+ }
183
+ ], Me = [
184
+ {
185
+ value: "sum",
186
+ label: "Sum"
187
+ },
188
+ {
189
+ value: "avg",
190
+ label: "Average"
191
+ },
192
+ {
193
+ value: "count",
194
+ label: "Count"
195
+ }
196
+ ], Ne = [
197
+ {
198
+ value: "number",
199
+ label: "Number"
200
+ },
201
+ {
202
+ value: "currency",
203
+ label: "Currency"
204
+ },
205
+ {
206
+ value: "percent",
207
+ label: "Percent"
208
+ }
209
+ ];
210
+ function Pe(e) {
211
+ n.get(h) && e.category != null && o().applyChartCrossFilter(String(e.category));
212
+ }
213
+ let F = n.state(null), I = n.state(!1), L = n.state(!1), R = () => n.get(F)?.querySelector("svg") ?? null, Fe = n.derived(() => !!(n.get(T) && n.get(T).categories?.length && n.get(T).series?.length));
214
+ function Ie() {
215
+ let e = R();
216
+ e && d(e, "chart.png"), n.set(I, !1);
217
+ }
218
+ function Le() {
219
+ let e = R();
220
+ e && l(e, "chart.svg"), n.set(I, !1);
221
+ }
222
+ function Re() {
223
+ n.get(T) && m(n.get(T), "chart.csv"), n.set(I, !1);
224
+ }
225
+ async function ze() {
226
+ let e = R();
227
+ if (n.set(I, !1), !(!e || typeof ClipboardItem > "u" || !navigator.clipboard?.write)) try {
228
+ let t = await u(e);
229
+ await navigator.clipboard.write([new ClipboardItem({ "image/png": t })]), n.set(L, !0), setTimeout(() => n.set(L, !1), 1400);
230
+ } catch {}
231
+ }
232
+ n.user_effect(() => {
233
+ if (!n.get(I)) return;
234
+ let e = (e) => {
235
+ e.target?.closest(".sv-grid-chart-export") || n.set(I, !1);
236
+ };
237
+ return window.addEventListener("pointerdown", e), () => window.removeEventListener("pointerdown", e);
238
+ });
239
+ let z = n.derived(() => !!o().chartAiHandler), B = n.state(!1), V = n.state(""), H = n.state(!1), U = n.state(""), W = n.state("");
240
+ async function Be() {
241
+ let e = o().chartAiHandler, t = n.get(V).trim();
242
+ if (!(!e || !t || n.get(H))) {
243
+ n.set(H, !0), n.set(U, ""), n.set(W, "");
244
+ try {
245
+ let r = await e(t);
246
+ r ? (o().applyChartConfig(r), n.set(W, typeof r.rationale == "string" ? r.rationale : "", !0)) : n.set(U, "Couldn't build a chart from that request.");
247
+ } catch (e) {
248
+ n.set(U, e instanceof Error ? e.message : "Something went wrong.", !0);
249
+ } finally {
250
+ n.set(H, !1);
251
+ }
252
+ }
253
+ }
254
+ let G = n.state(!1);
255
+ function Ve(e) {
256
+ e.preventDefault(), n.set(G, !0);
257
+ let t = n.get(p) === "right" ? e.clientX : e.clientY, r = n.get(D);
258
+ e.target.setPointerCapture?.(e.pointerId);
259
+ let i = (e) => {
260
+ let i = n.get(p) === "right" ? t - e.clientX : t - e.clientY;
261
+ o().chartSize = Math.max(160, Math.min(720, r + i));
262
+ }, a = () => {
263
+ n.set(G, !1), window.removeEventListener("pointermove", i), window.removeEventListener("pointerup", a);
264
+ };
265
+ window.addEventListener("pointermove", i), window.addEventListener("pointerup", a);
266
+ }
267
+ var K = be();
268
+ let He;
269
+ var Ue = n.child(K), We = (e) => {
270
+ var t = g();
271
+ let r;
272
+ n.template_effect(() => {
273
+ r = n.set_class(t, 1, "sv-grid-chart-resizer", null, r, { "is-dragging": n.get(G) }), n.set_attribute(t, "aria-orientation", n.get(p) === "right" ? "vertical" : "horizontal");
274
+ }), n.delegated("pointerdown", t, Ve), n.append(e, t);
275
+ };
276
+ n.if(Ue, (e) => {
277
+ n.get(O) || e(We);
278
+ });
279
+ var q = n.sibling(Ue, 2), J = n.child(q);
280
+ let Ge;
281
+ var Ke = n.sibling(n.child(J), 4), qe = n.child(Ke), Je = (e) => {
282
+ var t = _();
283
+ n.delegated("click", t, () => o().clearChartCrossFilter()), n.append(e, t);
284
+ };
285
+ n.if(qe, (e) => {
286
+ n.get(h) && !n.get(f) && e(Je);
287
+ });
288
+ var Y = n.sibling(qe, 2), X = n.child(Y), Ye = n.child(X), Xe = (e) => {
289
+ var t = v();
290
+ n.append(e, t);
291
+ }, Ze = (e) => {
292
+ var t = y();
293
+ n.append(e, t);
294
+ };
295
+ n.if(Ye, (e) => {
296
+ n.get(L) ? e(Xe) : e(Ze, -1);
297
+ }), n.reset(X);
298
+ var Qe = n.sibling(X, 2), $e = (e) => {
299
+ var t = b(), r = n.child(t), i = n.sibling(r, 2), a = n.sibling(i, 2), o = n.sibling(a, 2);
300
+ n.reset(t), n.template_effect(() => a.disabled = !n.get(Fe)), n.delegated("click", r, Ie), n.delegated("click", i, Le), n.delegated("click", a, Re), n.delegated("click", o, ze), n.append(e, t);
301
+ };
302
+ n.if(Qe, (e) => {
303
+ n.get(I) && e($e);
304
+ }), n.reset(Y);
305
+ var Z = n.sibling(Y, 2), et = (e) => {
306
+ var t = x();
307
+ let r;
308
+ n.template_effect(() => {
309
+ r = n.set_class(t, 1, "sv-grid-chart-btn sv-grid-chart-ai-btn", null, r, { "is-active": n.get(B) }), n.set_attribute(t, "aria-expanded", n.get(B));
310
+ }), n.delegated("click", t, () => n.set(B, !n.get(B))), n.append(e, t);
311
+ };
312
+ n.if(Z, (e) => {
313
+ n.get(z) && !n.get(f) && e(et);
314
+ });
315
+ var tt = n.sibling(Z, 2), nt = (e) => {
316
+ var t = ee();
317
+ n.delegated("click", t, () => o().addChart()), n.append(e, t);
318
+ };
319
+ n.if(tt, (e) => {
320
+ n.get(f) || e(nt);
321
+ });
322
+ var rt = n.sibling(tt, 2), it = (e) => {
323
+ var t = w(), r = n.first_child(t), i = n.child(r), a = (e) => {
324
+ var t = S();
325
+ n.append(e, t);
326
+ }, o = (e) => {
327
+ var t = C();
328
+ n.append(e, t);
329
+ };
330
+ n.if(i, (e) => {
331
+ n.get(k) ? e(a) : e(o, -1);
332
+ }), n.reset(r);
333
+ var s = n.sibling(r, 2);
334
+ n.template_effect(() => {
335
+ n.set_attribute(r, "aria-label", n.get(k) ? "Restore" : "Maximize"), n.set_attribute(r, "title", n.get(k) ? "Restore" : "Maximize");
336
+ }), n.delegated("click", r, Ce), n.delegated("click", s, Se), n.append(e, t);
337
+ }, at = (e) => {
338
+ var t = te();
339
+ n.delegated("click", t, xe), n.append(e, t);
340
+ };
341
+ n.if(rt, (e) => {
342
+ n.get(O) ? e(it) : e(at, -1);
343
+ });
344
+ var ot = n.sibling(rt, 2);
345
+ n.reset(Ke), n.reset(J);
346
+ var st = n.sibling(J, 2), ct = (e) => {
347
+ var t = re();
348
+ n.each(t, 23, () => o().charts, (e) => e.id, (e, t, r) => {
349
+ var i = ne();
350
+ let a;
351
+ var s = n.child(i), c = n.child(s, !0);
352
+ n.reset(s);
353
+ var l = n.sibling(s, 2);
354
+ n.reset(i), n.template_effect(() => {
355
+ a = n.set_class(i, 1, "sv-grid-chart-tab", null, a, { "is-active": n.get(r) === o().activeChartIndex }), n.set_attribute(s, "aria-selected", n.get(r) === o().activeChartIndex), n.set_text(c, n.get(t).title), n.set_attribute(l, "aria-label", `Remove ${n.get(t).title}`);
356
+ }), n.delegated("click", s, () => o().activeChartIndex = n.get(r)), n.delegated("click", l, () => o().removeChart(n.get(r))), n.append(e, i);
357
+ }), n.reset(t), n.append(e, t);
358
+ };
359
+ n.if(st, (e) => {
360
+ !n.get(f) && o().charts.length > 1 && e(ct);
361
+ });
362
+ var lt = n.sibling(st, 2), ut = (e) => {
363
+ var t = oe(), r = n.child(t), i = n.child(r);
364
+ n.remove_input_defaults(i);
365
+ var a = n.sibling(i, 2), o = n.child(a, !0);
366
+ n.reset(a), n.reset(r);
367
+ var s = n.sibling(r, 2), c = (e) => {
368
+ var t = ie(), r = n.child(t, !0);
369
+ n.reset(t), n.template_effect(() => n.set_text(r, n.get(U))), n.append(e, t);
370
+ }, l = (e) => {
371
+ var t = ae(), r = n.child(t, !0);
372
+ n.reset(t), n.template_effect(() => n.set_text(r, n.get(W))), n.append(e, t);
373
+ };
374
+ n.if(s, (e) => {
375
+ n.get(U) ? e(c) : n.get(W) && e(l, 1);
376
+ }), n.reset(t), n.template_effect((e) => {
377
+ i.disabled = n.get(H), a.disabled = e, n.set_text(o, n.get(H) ? "Thinking..." : "Chart it");
378
+ }, [() => n.get(H) || !n.get(V).trim()]), n.event("submit", r, (e) => {
379
+ e.preventDefault(), Be();
380
+ }), n.bind_value(i, () => n.get(V), (e) => n.set(V, e)), n.append(e, t);
381
+ };
382
+ n.if(lt, (e) => {
383
+ n.get(z) && n.get(B) && !n.get(f) && e(ut);
384
+ });
385
+ var Q = n.sibling(lt, 2), dt = n.child(Q), ft = (e) => {
386
+ var t = _e(), r = n.first_child(t), i = n.sibling(n.child(r), 2);
387
+ n.each(i, 21, () => je, (e) => e.value, (e, t) => {
388
+ var r = se(), i = n.child(r, !0);
389
+ n.reset(r);
390
+ var a = {};
391
+ n.template_effect(() => {
392
+ n.set_text(i, n.get(t).label), a !== (a = n.get(t).value) && (r.value = (r.__value = n.get(t).value) ?? "");
393
+ }), n.append(e, r);
394
+ }), n.reset(i);
395
+ var a;
396
+ n.init_select(i), n.reset(r);
397
+ var s = n.sibling(r, 2), c = n.sibling(n.child(s), 2);
398
+ n.each(c, 21, () => n.get(E).dims, (e) => e.id, (e, t) => {
399
+ var r = ce(), i = n.child(r, !0);
400
+ n.reset(r);
401
+ var a = {};
402
+ n.template_effect(() => {
403
+ n.set_text(i, n.get(t).label), a !== (a = n.get(t).id) && (r.value = (r.__value = n.get(t).id) ?? "");
404
+ }), n.append(e, r);
405
+ }), n.reset(c);
406
+ var l;
407
+ n.init_select(c), n.reset(s);
408
+ var u = n.sibling(s, 2), d = (e) => {
409
+ var t = ue(), r = n.sibling(n.child(t), 2), i = n.child(r);
410
+ i.value = i.__value = "";
411
+ var a = n.sibling(i);
412
+ n.each(a, 17, () => n.get(E).dims, (e) => e.id, (e, t) => {
413
+ var r = le(), i = n.child(r, !0);
414
+ n.reset(r);
415
+ var a = {};
416
+ n.template_effect(() => {
417
+ n.set_text(i, n.get(t).label), a !== (a = n.get(t).id) && (r.value = (r.__value = n.get(t).id) ?? "");
418
+ }), n.append(e, r);
419
+ }), n.reset(r);
420
+ var s;
421
+ n.init_select(r), n.reset(t), n.template_effect(() => {
422
+ s !== (s = o().chartSeriesId ?? "") && (r.value = (r.__value = o().chartSeriesId ?? "") ?? "", n.select_option(r, o().chartSeriesId ?? ""));
423
+ }), n.delegated("change", r, (e) => o().chartSeriesId = e.currentTarget.value || null), n.append(e, t);
424
+ };
425
+ n.if(u, (e) => {
426
+ n.get(E).dims.length > 1 && e(d);
427
+ });
428
+ var f = n.sibling(u, 2), p = n.sibling(n.child(f), 2);
429
+ n.each(p, 21, () => n.get(E).measures, (e) => e.id, (e, t) => {
430
+ var r = de(), i = n.child(r, !0);
431
+ n.reset(r);
432
+ var a = {};
433
+ n.template_effect(() => {
434
+ n.set_text(i, n.get(t).label), a !== (a = n.get(t).id) && (r.value = (r.__value = n.get(t).id) ?? "");
435
+ }), n.append(e, r);
436
+ }), n.reset(p);
437
+ var m;
438
+ n.init_select(p), n.reset(f);
439
+ var h = n.sibling(f, 2), g = n.sibling(n.child(h), 2);
440
+ n.each(g, 21, () => Me, (e) => e.value, (e, t) => {
441
+ var r = fe(), i = n.child(r, !0);
442
+ n.reset(r);
443
+ var a = {};
444
+ n.template_effect(() => {
445
+ n.set_text(i, n.get(t).label), a !== (a = n.get(t).value) && (r.value = (r.__value = n.get(t).value) ?? "");
446
+ }), n.append(e, r);
447
+ }), n.reset(g);
448
+ var _;
449
+ n.init_select(g), n.reset(h);
450
+ var v = n.sibling(h, 2), y = n.sibling(n.child(v), 2);
451
+ n.each(y, 21, () => Ne, (e) => e.value, (e, t) => {
452
+ var r = pe(), i = n.child(r, !0);
453
+ n.reset(r);
454
+ var a = {};
455
+ n.template_effect(() => {
456
+ n.set_text(i, n.get(t).label), a !== (a = n.get(t).value) && (r.value = (r.__value = n.get(t).value) ?? "");
457
+ }), n.append(e, r);
458
+ }), n.reset(y);
459
+ var b;
460
+ n.init_select(y), n.reset(v);
461
+ var x = n.sibling(v, 2), ee = (e) => {
462
+ var t = me(), r = n.child(t);
463
+ n.remove_input_defaults(r), n.next(), n.reset(t), n.template_effect(() => n.set_checked(r, o().chartStacked)), n.delegated("change", r, (e) => o().chartStacked = e.currentTarget.checked), n.append(e, t);
464
+ };
465
+ n.if(x, (e) => {
466
+ o().chartType !== "pie" && e(ee);
467
+ });
468
+ var S = n.sibling(x, 2), C = n.child(S);
469
+ n.remove_input_defaults(C), n.next(), n.reset(S);
470
+ var w = n.sibling(S, 2), te = (e) => {
471
+ var t = he(), r = n.child(t);
472
+ n.remove_input_defaults(r), n.next(), n.reset(t), n.template_effect(() => n.set_checked(r, o().chartLogScale)), n.delegated("change", r, (e) => o().chartLogScale = e.currentTarget.checked), n.append(e, t);
473
+ };
474
+ n.if(w, (e) => {
475
+ o().chartType !== "pie" && e(te);
476
+ });
477
+ var ne = n.sibling(w, 2), re = (e) => {
478
+ var t = ge(), r = n.child(t);
479
+ n.remove_input_defaults(r), n.next(), n.reset(t), n.template_effect(() => n.set_checked(r, o().chartTimeAxis)), n.delegated("change", r, (e) => o().chartTimeAxis = e.currentTarget.checked), n.append(e, t);
480
+ };
481
+ n.if(ne, (e) => {
482
+ o().chartDimensionIsDate && o().chartType !== "pie" && e(re);
483
+ }), n.template_effect(() => {
484
+ a !== (a = o().chartType) && (i.value = (i.__value = o().chartType) ?? "", n.select_option(i, o().chartType)), l !== (l = o().chartDimensionId ?? "") && (c.value = (c.__value = o().chartDimensionId ?? "") ?? "", n.select_option(c, o().chartDimensionId ?? "")), m !== (m = o().chartMeasureId ?? "") && (p.value = (p.__value = o().chartMeasureId ?? "") ?? "", n.select_option(p, o().chartMeasureId ?? "")), _ !== (_ = o().chartReduce) && (g.value = (g.__value = o().chartReduce) ?? "", n.select_option(g, o().chartReduce)), b !== (b = o().chartValueFormat) && (y.value = (y.__value = o().chartValueFormat) ?? "", n.select_option(y, o().chartValueFormat)), n.set_checked(C, o().chartDataLabels);
485
+ }), n.delegated("change", i, (e) => o().chartType = e.currentTarget.value), n.delegated("change", c, (e) => o().chartDimensionId = e.currentTarget.value || null), n.delegated("change", p, (e) => o().chartMeasureId = e.currentTarget.value || null), n.delegated("change", g, (e) => o().chartReduce = e.currentTarget.value), n.delegated("change", y, (e) => o().chartValueFormat = e.currentTarget.value), n.delegated("change", C, (e) => o().chartDataLabels = e.currentTarget.checked), n.append(e, t);
486
+ };
487
+ n.if(dt, (e) => {
488
+ n.get(f) || e(ft);
489
+ }), n.reset(Q), n.reset(q);
490
+ var $ = n.sibling(q, 2), pt = n.child($), mt = (e) => {
491
+ {
492
+ let r = n.derived(() => n.get(c)?.zoom === !0), i = n.derived(() => n.get(c)?.brush === !0), a = n.derived(() => n.get(c)?.export === !0 ? !0 : void 0);
493
+ t(e, {
494
+ get spec() {
495
+ return n.get(T);
496
+ },
497
+ get width() {
498
+ return n.get(ke);
499
+ },
500
+ get height() {
501
+ return n.get(Ae);
502
+ },
503
+ onSelect: Pe,
504
+ interactive: !0,
505
+ legend: !0,
506
+ get dataLabels() {
507
+ return o().chartDataLabels;
508
+ },
509
+ get zoomable() {
510
+ return n.get(r);
511
+ },
512
+ get brush() {
513
+ return n.get(i);
514
+ },
515
+ get toolbar() {
516
+ return n.get(a);
517
+ }
518
+ });
519
+ }
520
+ }, ht = (e) => {
521
+ var t = ve(), r = n.child(t), i = (e) => {
522
+ var t = n.text("Charting needs at least one text column (to group by) and one numeric column (to measure).");
523
+ n.append(e, t);
524
+ }, a = (e) => {
525
+ var t = n.text("No data to chart.");
526
+ n.append(e, t);
527
+ };
528
+ n.if(r, (e) => {
529
+ !n.get(E).dims.length || !n.get(E).measures.length ? e(i) : e(a, -1);
530
+ }), n.reset(t), n.append(e, t);
531
+ };
532
+ n.if(pt, (e) => {
533
+ n.get(T) && (n.get(T).series.length || n.get(f)) ? e(mt) : e(ht, -1);
534
+ }), n.reset($), n.bind_this($, (e) => n.set(F, e), () => n.get(F));
535
+ var gt = n.sibling($, 2), _t = (e) => {
536
+ var t = ye();
537
+ n.delegated("pointerdown", t, Te), n.append(e, t);
538
+ };
539
+ n.if(gt, (e) => {
540
+ n.get(O) && !n.get(k) && e(_t);
541
+ }), n.reset(K), n.bind_this(K, (e) => n.set(j, e), () => n.get(j)), n.template_effect(() => {
542
+ He = n.set_class(K, 1, "sv-grid-chart-panel", null, He, {
543
+ "is-right": n.get(p) === "right" && !n.get(O),
544
+ "is-bottom": n.get(p) === "bottom" && !n.get(O),
545
+ "is-floating": n.get(O),
546
+ "is-maximized": n.get(O) && n.get(k)
547
+ }), n.set_style(K, n.get(Ee)), Ge = n.set_class(J, 1, "sv-grid-chart-drawer-title", null, Ge, { "is-drag-handle": n.get(O) && !n.get(k) }), n.set_attribute(X, "aria-expanded", n.get(I));
548
+ }), n.delegated("pointerdown", J, we), n.delegated("click", X, () => n.set(I, !n.get(I))), n.delegated("click", ot, () => o().chartPanelOpen = !1), n.bind_element_size($, "clientWidth", (e) => n.set(N, e)), n.bind_element_size($, "clientHeight", (e) => n.set(P, e)), n.transition(3, K, () => r, () => ({
549
+ x: !n.get(O) && n.get(p) === "right" ? n.get(D) : 0,
550
+ y: !n.get(O) && n.get(p) === "bottom" ? n.get(D) : 0,
551
+ duration: 180,
552
+ easing: i
553
+ })), n.append(e, K), n.pop();
554
+ }
555
+ n.delegate([
556
+ "pointerdown",
557
+ "click",
558
+ "change"
559
+ ]);
560
+ //#endregion
561
+ export { s as a, l as c, u as i, h as n, m as o, p as r, d as s, T as t };