@svgrid/grid 3.0.2 → 3.0.4

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 (281) hide show
  1. package/README.md +2 -1
  2. package/dist/GridMenus.svelte +44 -2
  3. package/dist/SvChartMenu.svelte +69 -0
  4. package/dist/SvChartMenu.svelte.d.ts +11 -0
  5. package/dist/SvChartPanes.svelte +113 -0
  6. package/dist/SvChartPanes.svelte.d.ts +20 -0
  7. package/dist/SvGrid.controller.svelte.d.ts +110 -39
  8. package/dist/SvGrid.controller.svelte.js +655 -200
  9. package/dist/SvGrid.css +105 -2
  10. package/dist/SvGrid.svelte +386 -514
  11. package/dist/SvGrid.types.d.ts +210 -9
  12. package/dist/SvGridCellEditor.svelte +17 -0
  13. package/dist/SvGridChart.svelte +2257 -329
  14. package/dist/SvGridChart.svelte.d.ts +6 -106
  15. package/dist/SvGridChart.types.d.ts +338 -0
  16. package/dist/SvGridChart.types.js +1 -0
  17. package/dist/SvGridChartBuilder.svelte +323 -0
  18. package/dist/SvGridChartBuilder.svelte.d.ts +34 -0
  19. package/dist/SvGridChartPanel.svelte +221 -275
  20. package/dist/SvGridChartPickers.svelte +417 -0
  21. package/dist/SvGridChartPickers.svelte.d.ts +70 -0
  22. package/dist/SvGridChartView.svelte +13 -14
  23. package/dist/SvModal.svelte +7 -1
  24. package/dist/SvModal.svelte.d.ts +5 -0
  25. package/dist/ai.d.ts +40 -8
  26. package/dist/ai.js +135 -24
  27. package/dist/aria.d.ts +11 -0
  28. package/dist/build-api.js +108 -22
  29. package/dist/cdn/GridMenus-7kbpnnBW.js +635 -0
  30. package/dist/cdn/GridMenus-BL7ZgQvU.js +636 -0
  31. package/dist/cdn/SvChartMenu-Bl6PBbkT.js +58 -0
  32. package/dist/cdn/SvChartMenu-FBSMINA6.js +59 -0
  33. package/dist/cdn/{SvDateRangeInput-DMLKmGEc.js → SvDateRangeInput-BeU_TkbQ.js} +15 -14
  34. package/dist/cdn/{SvDateRangeInput-CaOuMs8O.js → SvDateRangeInput-yX8vzleW.js} +38 -37
  35. package/dist/cdn/{SvDateTimePicker-sonaH0oh.js → SvDateTimePicker-DQwt4UAs.js} +139 -180
  36. package/dist/cdn/SvDateTimePicker-vNU6bZ-q.js +775 -0
  37. package/dist/cdn/{SvGridCellEditor-CjEJMJKc.js → SvGridCellEditor-B1p-vCK5.js} +188 -178
  38. package/dist/cdn/{SvGridCellEditor-BWnTi2N7.js → SvGridCellEditor-D_0q4xAu.js} +98 -88
  39. package/dist/cdn/SvGridChart-C3EWAZaM.js +3574 -0
  40. package/dist/cdn/SvGridChart-DzLkSwCH.js +3572 -0
  41. package/dist/cdn/SvGridChartBuilder-BE2T1ykB.js +783 -0
  42. package/dist/cdn/SvGridChartBuilder-CfII62sZ.js +784 -0
  43. package/dist/cdn/SvGridChartPanel-CCX5_Wgd.js +675 -0
  44. package/dist/cdn/SvGridChartPanel-xf4sWVTo.js +699 -0
  45. package/dist/cdn/SvGridChartView-CfuXmY5I.js +48 -0
  46. package/dist/cdn/SvGridChartView-DYwabQWj.js +47 -0
  47. package/dist/cdn/SvMenuList-CLN8OuIK.js +452 -0
  48. package/dist/cdn/SvMenuList-DkGhNKjf.js +451 -0
  49. package/dist/cdn/SvModal-BAE-pjZX.js +396 -0
  50. package/dist/cdn/SvModal-CIZWCcad.js +397 -0
  51. package/dist/cdn/chart-Dz7SqMXH.js +4341 -0
  52. package/dist/cdn/chart-export-BXqueeWJ.js +135 -0
  53. package/dist/cdn/chart-export-pdf-DONFUnNY.js +110 -0
  54. package/dist/cdn/chart-panel-messages-CUbf2R4i.js +1052 -0
  55. package/dist/cdn/chart-panel-messages-CmNrMdsr.js +1053 -0
  56. package/dist/cdn/chart-summary-BJW_tg_X.js +138 -0
  57. package/dist/cdn/chart-trend-CaN9mDEV.js +50 -0
  58. package/dist/cdn/chart-validate-HcOVFAfJ.js +188 -0
  59. package/dist/cdn/{column-resize-DsfNXMom.js → column-resize-DpmOLfRp.js} +3 -3
  60. package/dist/cdn/{date-format-BnnHlqGw.js → date-format-CtquV-p3.js} +583 -603
  61. package/dist/cdn/{date-format-BNii4zeD.js → date-format-D6KFzU_W.js} +347 -367
  62. package/dist/cdn/dismissable-DAHetSNk.js +44 -0
  63. package/dist/cdn/editor-contract-LXgQJAgd.js +22 -0
  64. package/dist/cdn/focus-trap-BBOQYBma.js +65 -0
  65. package/dist/cdn/{row-resize-BRcimkUT.js → row-resize-niQCp040.js} +44 -36
  66. package/dist/cdn/{src-DNbz94Ct.js → src-BKhZ6eXd.js} +10227 -9787
  67. package/dist/cdn/{src-BJ2opd0j.js → src-V1uu8iE9.js} +6568 -6128
  68. package/dist/cdn/svgrid.js +26 -15
  69. package/dist/cdn/svgrid.svelte-external.js +26 -15
  70. package/dist/chart-axes.d.ts +53 -0
  71. package/dist/chart-axes.js +351 -0
  72. package/dist/chart-cartesian.d.ts +88 -0
  73. package/dist/chart-cartesian.js +1862 -0
  74. package/dist/chart-decimate.d.ts +51 -0
  75. package/dist/chart-decimate.js +199 -0
  76. package/dist/chart-export-pdf.d.ts +47 -0
  77. package/dist/chart-export-pdf.js +187 -0
  78. package/dist/chart-export.d.ts +2 -1
  79. package/dist/chart-export.js +18 -3
  80. package/dist/chart-financial.d.ts +91 -0
  81. package/dist/chart-financial.js +175 -0
  82. package/dist/chart-flow.d.ts +10 -0
  83. package/dist/chart-flow.js +298 -0
  84. package/dist/chart-format.d.ts +18 -0
  85. package/dist/chart-format.js +65 -0
  86. package/dist/chart-grid.d.ts +8 -0
  87. package/dist/chart-grid.js +190 -0
  88. package/dist/chart-hierarchy.d.ts +17 -0
  89. package/dist/chart-hierarchy.js +146 -0
  90. package/dist/chart-indicators.d.ts +115 -0
  91. package/dist/chart-indicators.js +389 -0
  92. package/dist/chart-messages.d.ts +95 -0
  93. package/dist/chart-messages.js +92 -0
  94. package/dist/chart-motion.d.ts +16 -0
  95. package/dist/chart-motion.js +141 -0
  96. package/dist/chart-panel-messages.d.ts +265 -0
  97. package/dist/chart-panel-messages.js +285 -0
  98. package/dist/chart-pivot.d.ts +87 -0
  99. package/dist/chart-pivot.js +156 -0
  100. package/dist/chart-polar.d.ts +25 -0
  101. package/dist/chart-polar.js +700 -0
  102. package/dist/chart-samples.d.ts +16 -0
  103. package/dist/chart-samples.js +153 -0
  104. package/dist/chart-scale.d.ts +113 -0
  105. package/dist/chart-scale.js +405 -0
  106. package/dist/chart-stats.d.ts +111 -0
  107. package/dist/chart-stats.js +419 -0
  108. package/dist/chart-stream.d.ts +45 -0
  109. package/dist/chart-stream.js +91 -0
  110. package/dist/chart-summary.d.ts +27 -0
  111. package/dist/chart-summary.js +205 -0
  112. package/dist/chart-sync.svelte.d.ts +32 -0
  113. package/dist/chart-sync.svelte.js +23 -0
  114. package/dist/chart-table.d.ts +35 -0
  115. package/dist/chart-table.js +165 -0
  116. package/dist/chart-trend.d.ts +19 -0
  117. package/dist/chart-trend.js +61 -0
  118. package/dist/chart-types.d.ts +1456 -0
  119. package/dist/chart-types.js +6 -0
  120. package/dist/chart-validate.d.ts +43 -0
  121. package/dist/chart-validate.js +272 -0
  122. package/dist/chart-zoom.d.ts +40 -0
  123. package/dist/chart-zoom.js +145 -0
  124. package/dist/chart.d.ts +186 -865
  125. package/dist/chart.js +460 -2204
  126. package/dist/clipboard.d.ts +1 -0
  127. package/dist/clipboard.js +137 -18
  128. package/dist/column-resize.d.ts +3 -0
  129. package/dist/column-resize.js +4 -1
  130. package/dist/columns.js +3 -0
  131. package/dist/command-context.d.ts +19 -0
  132. package/dist/command-context.js +116 -0
  133. package/dist/core.d.ts +7 -0
  134. package/dist/createPopoverSelect.svelte.d.ts +2 -2
  135. package/dist/editing.d.ts +2 -8
  136. package/dist/editing.js +262 -33
  137. package/dist/fill-patterns.d.ts +0 -5
  138. package/dist/fill-patterns.js +56 -2
  139. package/dist/grid-messages.d.ts +10 -3
  140. package/dist/grid-messages.js +5 -0
  141. package/dist/history.d.ts +83 -0
  142. package/dist/history.js +133 -0
  143. package/dist/index.d.ts +24 -6
  144. package/dist/index.js +20 -2
  145. package/dist/keyboard-handlers.js +88 -31
  146. package/dist/keyboard.d.ts +55 -0
  147. package/dist/keyboard.js +132 -0
  148. package/dist/menus.d.ts +3 -1
  149. package/dist/menus.js +7 -2
  150. package/dist/merges.d.ts +97 -0
  151. package/dist/merges.js +147 -0
  152. package/dist/row-resize.d.ts +3 -0
  153. package/dist/row-resize.js +14 -0
  154. package/dist/scroll-sync.d.ts +1 -0
  155. package/dist/scroll-sync.js +24 -0
  156. package/dist/selection.d.ts +16 -0
  157. package/dist/selection.js +108 -16
  158. package/dist/shortcut-registry.d.ts +145 -0
  159. package/dist/shortcut-registry.js +44 -0
  160. package/dist/svgrid-wrapper.types.d.ts +213 -22
  161. package/dist/virtualization/virtualizer.js +38 -17
  162. package/package.json +6 -1
  163. package/src/GridMenus.svelte +44 -2
  164. package/src/SvChartMenu.svelte +69 -0
  165. package/src/SvChartPanes.svelte +113 -0
  166. package/src/SvChartPanes.test.ts +66 -0
  167. package/src/SvGrid.controller.svelte.ts +629 -172
  168. package/src/SvGrid.css +105 -2
  169. package/src/SvGrid.svelte +386 -514
  170. package/src/SvGrid.types.ts +188 -8
  171. package/src/SvGridCellEditor.svelte +17 -0
  172. package/src/SvGridChart.svelte +2257 -329
  173. package/src/SvGridChart.test.ts +1419 -1
  174. package/src/SvGridChart.types.ts +336 -0
  175. package/src/SvGridChartBuilder.svelte +323 -0
  176. package/src/SvGridChartPanel.svelte +221 -275
  177. package/src/SvGridChartPickers.svelte +417 -0
  178. package/src/SvGridChartView.svelte +13 -14
  179. package/src/SvModal.svelte +7 -1
  180. package/src/SvModal.test.ts +9 -0
  181. package/src/ai.test.ts +57 -2
  182. package/src/ai.ts +166 -22
  183. package/src/aria.d.ts +11 -0
  184. package/src/build-api.coverage.test.ts +184 -0
  185. package/src/build-api.ts +107 -18
  186. package/src/chart-axes.test.ts +573 -0
  187. package/src/chart-axes.ts +342 -0
  188. package/src/chart-cartesian.ts +1863 -0
  189. package/src/chart-decimate.test.ts +249 -0
  190. package/src/chart-decimate.ts +186 -0
  191. package/src/chart-export-pdf.test.ts +91 -0
  192. package/src/chart-export-pdf.ts +207 -0
  193. package/src/chart-export.test.ts +14 -0
  194. package/src/chart-export.ts +13 -3
  195. package/src/chart-financial.ts +208 -0
  196. package/src/chart-flow.ts +286 -0
  197. package/src/chart-format.ts +67 -0
  198. package/src/chart-grid.ts +179 -0
  199. package/src/chart-hierarchy.ts +135 -0
  200. package/src/chart-indicators.test.ts +443 -0
  201. package/src/chart-indicators.ts +384 -0
  202. package/src/chart-messages.test.ts +21 -0
  203. package/src/chart-messages.ts +184 -0
  204. package/src/chart-motion.test.ts +71 -0
  205. package/src/chart-motion.ts +148 -0
  206. package/src/chart-panel-messages.test.ts +29 -0
  207. package/src/chart-panel-messages.ts +550 -0
  208. package/src/chart-pivot.test.ts +54 -0
  209. package/src/chart-pivot.ts +225 -0
  210. package/src/chart-polar.ts +674 -0
  211. package/src/chart-samples.ts +106 -0
  212. package/src/chart-scale.ts +394 -0
  213. package/src/chart-series-types.test.ts +714 -0
  214. package/src/chart-stats.ts +409 -0
  215. package/src/chart-stream.test.ts +75 -0
  216. package/src/chart-stream.ts +114 -0
  217. package/src/chart-summary.test.ts +90 -0
  218. package/src/chart-summary.ts +197 -0
  219. package/src/chart-sync.svelte.ts +41 -0
  220. package/src/chart-table.test.ts +76 -0
  221. package/src/chart-table.ts +178 -0
  222. package/src/chart-trend.ts +47 -0
  223. package/src/chart-types.ts +1309 -0
  224. package/src/chart-validate.test.ts +100 -0
  225. package/src/chart-validate.ts +247 -0
  226. package/src/chart-zoom.test.ts +137 -0
  227. package/src/chart-zoom.ts +124 -0
  228. package/src/chart.coverage.test.ts +81 -0
  229. package/src/chart.test.ts +56 -3
  230. package/src/chart.ts +557 -2784
  231. package/src/clipboard.test.ts +151 -0
  232. package/src/clipboard.ts +145 -16
  233. package/src/column-resize.ts +7 -1
  234. package/src/columns.ts +2 -0
  235. package/src/command-context.test.ts +200 -0
  236. package/src/command-context.ts +137 -0
  237. package/src/core.ts +7 -0
  238. package/src/editing.test.ts +281 -3
  239. package/src/editing.ts +256 -38
  240. package/src/fill-patterns.test.ts +35 -0
  241. package/src/fill-patterns.ts +56 -2
  242. package/src/grid-messages.ts +16 -3
  243. package/src/history.test.ts +196 -0
  244. package/src/history.ts +162 -0
  245. package/src/icon-seam.test.ts +3 -2
  246. package/src/index.ts +150 -2
  247. package/src/keyboard-handlers.coverage.test.ts +126 -6
  248. package/src/keyboard-handlers.ts +91 -30
  249. package/src/keyboard-shortcuts.seam.test.ts +200 -0
  250. package/src/keyboard.test.ts +124 -1
  251. package/src/keyboard.ts +142 -0
  252. package/src/menus.test.ts +26 -0
  253. package/src/menus.ts +10 -3
  254. package/src/merges.test.ts +112 -0
  255. package/src/merges.ts +168 -0
  256. package/src/pivot.grid.test.ts +40 -5
  257. package/src/row-resize.test.ts +44 -0
  258. package/src/row-resize.ts +17 -0
  259. package/src/scroll-sync.test.ts +42 -1
  260. package/src/scroll-sync.ts +25 -0
  261. package/src/selection.multi-range.test.ts +34 -0
  262. package/src/selection.test.ts +30 -2
  263. package/src/selection.ts +111 -19
  264. package/src/shortcut-registry.test.ts +97 -0
  265. package/src/shortcut-registry.ts +181 -0
  266. package/src/svgrid-wrapper.types.ts +184 -13
  267. package/src/svgrid.behavior.test.ts +135 -0
  268. package/src/svgrid.charting.test.ts +513 -3
  269. package/src/svgrid.context-menu.test.ts +31 -0
  270. package/src/svgrid.new-features.wrapper.test.ts +10 -3
  271. package/src/virtualization/virtualizer.ts +39 -17
  272. package/dist/cdn/GridMenus-DyFA-QxA.js +0 -602
  273. package/dist/cdn/GridMenus-M2XP9t0_.js +0 -603
  274. package/dist/cdn/SvDateTimePicker-CCbDZNZB.js +0 -816
  275. package/dist/cdn/SvGridChart-DAb9RbRs.js +0 -1480
  276. package/dist/cdn/SvGridChart-Yl-IXZFO.js +0 -1481
  277. package/dist/cdn/SvGridChartPanel-DayQpDsR.js +0 -834
  278. package/dist/cdn/SvGridChartPanel-aqf8n-vJ.js +0 -810
  279. package/dist/cdn/SvGridChartView-CxfakxR0.js +0 -56
  280. package/dist/cdn/SvGridChartView-Dm_YEx9L.js +0 -55
  281. package/dist/cdn/chart-CKJRCPOk.js +0 -1652
@@ -0,0 +1,675 @@
1
+ import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
+ import { z as t } from "./chart-Dz7SqMXH.js";
3
+ import { t as n } from "./SvGridChart-C3EWAZaM.js";
4
+ import { a as r, o as i, r as a, s as o, t as s } from "./chart-export-BXqueeWJ.js";
5
+ import { a as c, i as l, r as u, t as d } from "./chart-panel-messages-CmNrMdsr.js";
6
+ import * as f from "svelte/internal/client";
7
+ import "svelte/internal/disclose-version";
8
+ import { fly as p } from "svelte/transition";
9
+ import { cubicOut as m } from "svelte/easing";
10
+ //#region src/SvChartPanes.svelte
11
+ var h = f.from_html("<div class=\"sv-chart-pane is-indicator svelte-1osc6vl\"><span class=\"sv-chart-pane-title svelte-1osc6vl\"> </span> <!></div>"), g = f.from_html("<div class=\"sv-chart-panes svelte-1osc6vl\"><div class=\"sv-chart-pane is-main svelte-1osc6vl\"><!></div> <!></div>"), ee = {
12
+ hash: "svelte-1osc6vl",
13
+ code: ".sv-chart-panes.svelte-1osc6vl {display:flex;flex-direction:column;gap:2px;min-width:0;}.sv-chart-pane.svelte-1osc6vl {position:relative;min-width:0;}\n /* The title of a pane sits in its top-left corner, small, like a terminal. */\n /* Placed just right of the value-axis gutter, clear of the tick labels. */.sv-chart-pane-title.svelte-1osc6vl {position:absolute;top:2px;z-index:1;font-size:10px;font-weight:600;color:var(--sg-muted, #64748b);pointer-events:none;}"
14
+ };
15
+ function _(e, r) {
16
+ f.push(r, !0), f.append_styles(e, ee);
17
+ let i = f.prop(r, "indicators", 19, () => []), a = f.prop(r, "axisWidth", 3, 56), o = f.prop(r, "zoom", 15, null), s = f.rest_props(r, [
18
+ "$$slots",
19
+ "$$events",
20
+ "$$legacy",
21
+ "spec",
22
+ "indicators",
23
+ "syncGroup",
24
+ "axisWidth",
25
+ "zoom",
26
+ "onZoom",
27
+ "zoomable",
28
+ "legend",
29
+ "toolbar"
30
+ ]), c = `svcp-${Math.random().toString(36).slice(2, 8)}`, l = f.derived(() => r.syncGroup ?? c), u = f.state(0), d = (e) => f.get(u) > 0 && !e.width ? { width: Math.round(f.get(u)) } : {}, p = f.derived(() => ({
31
+ ...r.spec,
32
+ ...d(r.spec),
33
+ xAxis: {
34
+ ...r.spec.xAxis,
35
+ ...i().length ? { labels: !1 } : {}
36
+ },
37
+ yAxis: {
38
+ ...r.spec.yAxis,
39
+ width: a()
40
+ },
41
+ ...r.spec.y2Axis || r.spec.series.some((e) => e.axis === "right") ? { y2Axis: {
42
+ ...r.spec.y2Axis,
43
+ width: a()
44
+ } } : {}
45
+ })), m = f.derived(() => i().map((e, n) => {
46
+ let { title: o, ...s } = t(r.spec, e);
47
+ return {
48
+ title: o ?? e.kind,
49
+ spec: {
50
+ ...s,
51
+ ...d(s),
52
+ xAxis: {
53
+ ...s.xAxis,
54
+ labels: n === i().length - 1
55
+ },
56
+ yAxis: {
57
+ ...s.yAxis,
58
+ width: a()
59
+ }
60
+ }
61
+ };
62
+ }));
63
+ var _ = g(), v = f.child(_), te = f.child(v);
64
+ n(te, f.spread_props({
65
+ get spec() {
66
+ return f.get(p);
67
+ },
68
+ get syncGroup() {
69
+ return f.get(l);
70
+ },
71
+ get onZoom() {
72
+ return r.onZoom;
73
+ },
74
+ get zoomable() {
75
+ return r.zoomable;
76
+ },
77
+ get legend() {
78
+ return r.legend;
79
+ },
80
+ get toolbar() {
81
+ return r.toolbar;
82
+ }
83
+ }, () => s, {
84
+ get zoom() {
85
+ return o();
86
+ },
87
+ set zoom(e) {
88
+ o(e);
89
+ }
90
+ })), f.reset(v);
91
+ var ne = f.sibling(v, 2);
92
+ f.each(ne, 19, () => f.get(m), (e, t) => `${i()[t]?.kind}-${t}`, (e, t, o) => {
93
+ var s = h(), c = f.child(s);
94
+ let u;
95
+ var d = f.child(c, !0);
96
+ f.reset(c);
97
+ var p = f.sibling(c, 2);
98
+ {
99
+ let e = f.derived(() => r.zoomable ? {
100
+ drag: !1,
101
+ wheel: typeof r.zoomable == "object" && r.zoomable.wheel,
102
+ pan: typeof r.zoomable == "object" && r.zoomable.pan
103
+ } : !1);
104
+ n(p, {
105
+ get spec() {
106
+ return f.get(t).spec;
107
+ },
108
+ get syncGroup() {
109
+ return f.get(l);
110
+ },
111
+ get zoomable() {
112
+ return f.get(e);
113
+ },
114
+ legend: !1,
115
+ toolbar: !1,
116
+ interactive: !0,
117
+ get localeText() {
118
+ return r.localeText;
119
+ }
120
+ });
121
+ }
122
+ f.reset(s), f.template_effect(() => {
123
+ f.set_attribute(s, "data-indicator", i()[f.get(o)]?.kind), u = f.set_style(c, "", u, { left: `${a() + 6}px` }), f.set_text(d, f.get(t).title);
124
+ }), f.append(e, s);
125
+ }), f.reset(_), f.bind_element_size(_, "clientWidth", (e) => f.set(u, e)), f.append(e, _), f.pop();
126
+ }
127
+ //#endregion
128
+ //#region src/SvGridChartPanel.svelte
129
+ var v = /* @__PURE__ */ e({ default: () => y }), te = f.from_html("<div role=\"separator\"></div>"), ne = f.from_html("<button type=\"button\" class=\"sv-grid-chart-btn\"> </button>"), re = f.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>"), ie = f.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>"), ae = f.from_html("<div class=\"sv-grid-chart-export-menu\" role=\"menu\"><button type=\"button\" role=\"menuitem\"> </button> <button type=\"button\" role=\"menuitem\"> </button> <button type=\"button\" role=\"menuitem\"> </button> <button type=\"button\" role=\"menuitem\"> </button> <button type=\"button\" role=\"menuitem\"> </button> <button type=\"button\" role=\"menuitem\"> </button> <button type=\"button\" role=\"menuitem\"> </button></div>"), oe = f.from_html("<button type=\"button\"><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> </button>"), se = f.from_html("<li class=\"sv-grid-chart-saved-item\"><button type=\"button\" class=\"sv-grid-chart-saved-apply\"> </button> <button type=\"button\" class=\"sv-grid-chart-saved-x\">&times;</button></li>"), ce = f.from_html("<ul class=\"sv-grid-chart-saved-list\"></ul>"), le = f.from_html("<p class=\"sv-grid-chart-saved-empty\"> </p>"), ue = f.from_html("<div class=\"sv-grid-chart-export-menu sv-grid-chart-saved-menu\" role=\"dialog\"><form class=\"sv-grid-chart-saved-row\"><input class=\"sv-grid-chart-saved-name\" type=\"text\"/> <button type=\"submit\" class=\"sv-grid-chart-btn\"> </button></form> <!></div>"), de = f.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=\"M18.84 12.25l1.72-1.71a5 5 0 0 0-7.07-7.07l-1.72 1.71\"></path><path d=\"M5.17 11.75l-1.71 1.71a5 5 0 0 0 7.07 7.07l1.71-1.71\"></path><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"5\"></line><line x1=\"2\" y1=\"8\" x2=\"5\" y2=\"8\"></line><line x1=\"16\" y1=\"19\" x2=\"16\" y2=\"22\"></line><line x1=\"19\" y1=\"16\" x2=\"22\" y2=\"16\"></line></svg>"), fe = f.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=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"></path><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"></path></svg>"), pe = f.from_html("<button type=\"button\" class=\"sv-grid-chart-btn sv-grid-chart-build-btn\" aria-haspopup=\"dialog\"><svg width=\"13\" height=\"13\" 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=\"7\" height=\"7\" rx=\"1\"></rect><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\"></rect><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\"></rect></svg> </button> <div class=\"sv-grid-chart-export sv-grid-chart-saved\"><button type=\"button\" class=\"sv-grid-chart-icon-btn sv-grid-chart-saved-btn\" aria-haspopup=\"dialog\"><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=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"></path><polyline points=\"17 21 17 13 7 13 7 21\"></polyline><polyline points=\"7 3 7 8 15 8\"></polyline></svg></button> <!></div> <button type=\"button\"><!></button> <button type=\"button\" class=\"sv-grid-chart-icon-btn\"><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>", 1), me = f.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>"), he = f.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>"), ge = f.from_html("<button type=\"button\" class=\"sv-grid-chart-icon-btn\"><!></button> <button type=\"button\" class=\"sv-grid-chart-icon-btn\"><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), _e = f.from_html("<button type=\"button\" class=\"sv-grid-chart-icon-btn\"><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>"), ve = f.from_html("<div><button type=\"button\" class=\"sv-grid-chart-tab-label\" role=\"tab\"> </button> <button type=\"button\" class=\"sv-grid-chart-tab-x\">&times;</button></div>"), ye = f.from_html("<div class=\"sv-grid-chart-tabs\" role=\"tablist\"></div>"), be = f.from_html("<button type=\"button\" class=\"sv-grid-chart-btn sv-grid-chart-explain-btn\"> </button>"), xe = f.from_html("<p class=\"sv-grid-chart-ai-msg is-error\"> </p>"), Se = f.from_html("<p class=\"sv-grid-chart-ai-msg\"> </p>"), Ce = f.from_html("<div class=\"sv-grid-chart-ai\"><form class=\"sv-grid-chart-ai-row\"><input class=\"sv-grid-chart-ai-input\" type=\"text\"/> <button type=\"submit\" class=\"sv-grid-chart-btn\"> </button> <!></form> <!></div>"), we = f.from_html("<div class=\"sv-grid-chart-panes-host\"><!></div>"), Te = f.from_html("<p class=\"sv-grid-chart-empty\"><!></p>"), Ee = f.from_html("<div class=\"sv-grid-chart-float-resizer\" role=\"separator\"></div>"), De = f.from_html("<section><!> <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\"> </span> <div class=\"sv-grid-chart-actions\"><!> <div class=\"sv-grid-chart-export\"><button type=\"button\" class=\"sv-grid-chart-icon-btn\"><!></button> <!></div> <!> <!> <!> <button type=\"button\" class=\"sv-grid-chart-close\">&times;</button></div></div> <!> <!> <!></header> <div class=\"sv-grid-chart-panel-body\"><!></div> <!> <!></section>");
130
+ function y(e, t) {
131
+ f.push(t, !0);
132
+ let h = f.state(null), g = f.state(!1);
133
+ function ee() {
134
+ if (f.get(h)) {
135
+ f.set(g, !0);
136
+ return;
137
+ }
138
+ import("./SvGridChartBuilder-CfII62sZ.js").then((e) => {
139
+ f.set(h, e.default, !0), f.set(g, !0);
140
+ });
141
+ }
142
+ let v = f.prop(t, "ctrl", 7), y = f.derived(() => u(v().localizationText)), b = f.derived(() => v().chartingConfig), x = f.derived(() => v().chartCfg), Oe = f.derived(() => v().chartFormat?.legend === void 0 || v().chartFormat.legend), ke = f.derived(() => v().chartFormat?.dataLabels === void 0 ? v().chartDataLabels : v().chartFormat.dataLabels !== null && { placement: v().chartFormat.dataLabels }), Ae = f.derived(() => v().chartFormat?.crosshairLabels !== !1), S = f.derived(() => v().chartIsCustom), C = f.derived(() => f.get(b)?.position ?? "bottom"), w = f.derived(() => f.get(b)?.crossFilter !== !1), T = f.derived(() => v().chartSpec), E = f.derived(() => v().chartableColumns), D = f.derived(() => v().chartSize ?? (f.get(C) === "right" ? f.get(b)?.width ?? 340 : f.get(b)?.height ?? 260)), O = f.derived(() => v().chartFloating), k = f.derived(() => v().chartMaximized), A = f.derived(() => v().chartFloatRect), j = f.state(null);
143
+ function je() {
144
+ let e = f.get(j)?.offsetParent;
145
+ return {
146
+ w: e?.clientWidth ?? 800,
147
+ h: e?.clientHeight ?? 520
148
+ };
149
+ }
150
+ function Me() {
151
+ if (!v().chartFloatRect) {
152
+ let { w: e, h: t } = je(), n = Math.min(600, Math.max(360, e - 80)), r = Math.min(430, Math.max(260, t - 90));
153
+ v().chartFloatRect = {
154
+ x: Math.round((e - n) / 2),
155
+ y: Math.round((t - r) / 2),
156
+ w: n,
157
+ h: r
158
+ };
159
+ }
160
+ v().chartFloating = !0;
161
+ }
162
+ function Ne() {
163
+ v().chartFloating = !1, v().chartMaximized = !1;
164
+ }
165
+ let Pe = () => v().chartMaximized = !v().chartMaximized;
166
+ function Fe(e) {
167
+ if (!f.get(O) || f.get(k) || e.target?.closest("button")) return;
168
+ let t = v().chartFloatRect;
169
+ if (!t) return;
170
+ e.preventDefault();
171
+ let n = e.clientX, r = e.clientY, { w: i, h: a } = je(), o = (e) => {
172
+ let o = Math.max(0, Math.min(i - t.w, t.x + e.clientX - n)), s = Math.max(0, Math.min(a - t.h, t.y + e.clientY - r));
173
+ v().chartFloatRect = {
174
+ x: o,
175
+ y: s,
176
+ w: t.w,
177
+ h: t.h
178
+ };
179
+ }, s = () => {
180
+ window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", s);
181
+ };
182
+ window.addEventListener("pointermove", o), window.addEventListener("pointerup", s);
183
+ }
184
+ function Ie(e) {
185
+ let t = v().chartFloatRect;
186
+ if (!t) return;
187
+ e.preventDefault(), e.stopPropagation();
188
+ let n = e.clientX, r = e.clientY;
189
+ e.target.setPointerCapture?.(e.pointerId);
190
+ let i = (e) => {
191
+ v().chartFloatRect = {
192
+ x: t.x,
193
+ y: t.y,
194
+ w: Math.max(300, t.w + e.clientX - n),
195
+ h: Math.max(220, t.h + e.clientY - r)
196
+ };
197
+ }, a = () => {
198
+ window.removeEventListener("pointermove", i), window.removeEventListener("pointerup", a);
199
+ };
200
+ window.addEventListener("pointermove", i), window.addEventListener("pointerup", a);
201
+ }
202
+ let Le = f.derived(() => f.get(O) ? f.get(k) ? "left:12px; top:12px; right:12px; bottom:12px; width:auto; height:auto;" : f.get(A) ? `left:${f.get(A).x}px; top:${f.get(A).y}px; width:${f.get(A).w}px; height:${f.get(A).h}px;` : "" : f.get(C) === "right" ? `width:${f.get(D)}px` : `height:${f.get(D)}px`), Re = f.derived(() => c(f.get(E), f.get(y)));
203
+ function ze(e) {
204
+ f.get(w) && e.category != null && v().applyChartCrossFilter(String(e.category));
205
+ }
206
+ let M = f.state(null), N = f.state(!1), P = f.state(!1), F = () => f.get(M)?.querySelector("svg") ?? null, Be = f.derived(() => !!f.get(T) && s(f.get(T)));
207
+ function Ve() {
208
+ let e = F();
209
+ e && i(e, "chart.png"), f.set(N, !1);
210
+ }
211
+ function He() {
212
+ let e = F();
213
+ e && o(e, "chart.svg"), f.set(N, !1);
214
+ }
215
+ function Ue() {
216
+ f.get(T) && r(f.get(T), "chart.csv"), f.set(N, !1);
217
+ }
218
+ async function We() {
219
+ let e = F();
220
+ f.set(N, !1), e && await (await import("./chart-export-pdf-DONFUnNY.js").then((e) => e.r)).downloadChartPdf(e, "chart.pdf", { title: f.get(T)?.title ?? v().charts[v().activeChartIndex]?.title });
221
+ }
222
+ async function Ge() {
223
+ let e = F();
224
+ f.set(N, !1), e && (await import("./chart-export-pdf-DONFUnNY.js").then((e) => e.r)).printChart(e, { title: f.get(T)?.title ?? v().charts[v().activeChartIndex]?.title });
225
+ }
226
+ async function Ke() {
227
+ let e = F();
228
+ if (f.set(N, !1), !(!e || typeof ClipboardItem > "u" || !navigator.clipboard?.write)) try {
229
+ let t = await a(e);
230
+ await navigator.clipboard.write([new ClipboardItem({ "image/png": t })]), f.set(P, !0), setTimeout(() => f.set(P, !1), 1400);
231
+ } catch {}
232
+ }
233
+ let I = f.state(null), L = f.state(null);
234
+ function R(e, t, n) {
235
+ let r = (n) => {
236
+ n.target?.closest(e) || t();
237
+ }, i = (e) => {
238
+ e.key === "Escape" && (e.stopPropagation(), t(), n()?.focus());
239
+ };
240
+ return window.addEventListener("pointerdown", r), window.addEventListener("keydown", i, !0), () => {
241
+ window.removeEventListener("pointerdown", r), window.removeEventListener("keydown", i, !0);
242
+ };
243
+ }
244
+ f.user_effect(() => {
245
+ if (f.get(N)) return R(".sv-grid-chart-export", () => f.set(N, !1), () => f.get(I));
246
+ });
247
+ let z = f.state(!1), B = f.state("");
248
+ function qe() {
249
+ let e = f.get(B).trim();
250
+ e && (v().saveChart(e), f.set(B, ""));
251
+ }
252
+ f.user_effect(() => {
253
+ if (f.get(z)) return R(".sv-grid-chart-saved", () => f.set(z, !1), () => f.get(L));
254
+ });
255
+ async function Je() {
256
+ if (f.set(N, !1), !f.get(T)) return;
257
+ let { chartSummary: e } = await import("./chart-summary-BJW_tg_X.js").then((e) => e.n), t = e(f.get(T));
258
+ try {
259
+ await navigator.clipboard?.writeText(t);
260
+ } catch {}
261
+ f.set(G, t, !0);
262
+ }
263
+ let Ye = f.derived(() => !!v().chartAiHandler), Xe = f.derived(() => !!v().chartExplainHandler);
264
+ async function Ze() {
265
+ let e = v().chartExplainHandler;
266
+ if (!(!e || f.get(U))) {
267
+ f.set(U, !0), f.set(W, ""), f.set(G, "");
268
+ try {
269
+ let t = await e();
270
+ f.set(G, t ? [t.summary, ...t.insights].filter(Boolean).join(" ") : "", !0), t || f.set(W, f.get(y).chartAiNoExplanation, !0);
271
+ } catch (e) {
272
+ f.set(W, e instanceof Error ? e.message : f.get(y).chartAiFailed, !0);
273
+ } finally {
274
+ f.set(U, !1);
275
+ }
276
+ }
277
+ }
278
+ let V = f.state(!1), H = f.state(""), U = f.state(!1), W = f.state(""), G = f.state("");
279
+ async function Qe() {
280
+ let e = v().chartAiHandler, t = f.get(H).trim();
281
+ if (!(!e || !t || f.get(U))) {
282
+ f.set(U, !0), f.set(W, ""), f.set(G, "");
283
+ try {
284
+ let n = await e(t);
285
+ n ? (v().applyChartConfig(n), f.set(G, typeof n.rationale == "string" ? n.rationale : "", !0)) : f.set(W, f.get(y).chartAiNoChart, !0);
286
+ } catch (e) {
287
+ f.set(W, e instanceof Error ? e.message : f.get(y).chartAiFailed, !0);
288
+ } finally {
289
+ f.set(U, !1);
290
+ }
291
+ }
292
+ }
293
+ let K = f.state(!1);
294
+ function $e(e) {
295
+ e.preventDefault(), f.set(K, !0);
296
+ let t = f.get(C) === "right" ? e.clientX : e.clientY, n = f.get(D);
297
+ e.target.setPointerCapture?.(e.pointerId);
298
+ let r = (e) => {
299
+ let r = f.get(C) === "right" ? t - e.clientX : t - e.clientY;
300
+ v().chartSize = Math.max(160, Math.min(720, n + r));
301
+ }, i = () => {
302
+ f.set(K, !1), window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", i);
303
+ };
304
+ window.addEventListener("pointermove", r), window.addEventListener("pointerup", i);
305
+ }
306
+ var q = De();
307
+ let et;
308
+ var tt = f.child(q), nt = (e) => {
309
+ var t = te();
310
+ let n;
311
+ f.template_effect(() => {
312
+ n = f.set_class(t, 1, "sv-grid-chart-resizer", null, n, { "is-dragging": f.get(K) }), f.set_attribute(t, "aria-orientation", f.get(C) === "right" ? "vertical" : "horizontal"), f.set_attribute(t, "aria-label", f.get(y).chartResize);
313
+ }), f.delegated("pointerdown", t, $e), f.append(e, t);
314
+ };
315
+ f.if(tt, (e) => {
316
+ f.get(O) || e(nt);
317
+ });
318
+ var J = f.sibling(tt, 2), Y = f.child(J);
319
+ let rt;
320
+ var X = f.sibling(f.child(Y), 2), it = f.child(X, !0);
321
+ f.reset(X);
322
+ var at = f.sibling(X, 2), ot = f.child(at), st = (e) => {
323
+ var t = ne(), n = f.child(t, !0);
324
+ f.reset(t), f.template_effect(() => f.set_text(n, f.get(y).chartClearFilter)), f.delegated("click", t, () => v().clearChartCrossFilter()), f.append(e, t);
325
+ };
326
+ f.if(ot, (e) => {
327
+ f.get(w) && !f.get(S) && e(st);
328
+ });
329
+ var Z = f.sibling(ot, 2), Q = f.child(Z), ct = f.child(Q), lt = (e) => {
330
+ var t = re();
331
+ f.append(e, t);
332
+ }, ut = (e) => {
333
+ var t = ie();
334
+ f.append(e, t);
335
+ };
336
+ f.if(ct, (e) => {
337
+ f.get(P) ? e(lt) : e(ut, -1);
338
+ }), f.reset(Q), f.bind_this(Q, (e) => f.set(I, e), () => f.get(I));
339
+ var dt = f.sibling(Q, 2), ft = (e) => {
340
+ var t = ae(), n = f.child(t), r = f.child(n, !0);
341
+ f.reset(n);
342
+ var i = f.sibling(n, 2), a = f.child(i, !0);
343
+ f.reset(i);
344
+ var o = f.sibling(i, 2), s = f.child(o, !0);
345
+ f.reset(o);
346
+ var c = f.sibling(o, 2), l = f.child(c, !0);
347
+ f.reset(c);
348
+ var u = f.sibling(c, 2), d = f.child(u, !0);
349
+ f.reset(u);
350
+ var p = f.sibling(u, 2), m = f.child(p, !0);
351
+ f.reset(p);
352
+ var h = f.sibling(p, 2), g = f.child(h, !0);
353
+ f.reset(h), f.reset(t), f.template_effect(() => {
354
+ f.set_text(r, f.get(y).chartExportPng), f.set_text(a, f.get(y).chartExportSvg), f.set_text(s, f.get(y).chartExportPdf), c.disabled = !f.get(Be), f.set_text(l, f.get(y).chartExportCsv), f.set_text(d, f.get(y).chartExportCopy), f.set_text(m, f.get(y).chartExportPrint), f.set_text(g, f.get(y).chartExportDescribe);
355
+ }), f.delegated("click", n, Ve), f.delegated("click", i, He), f.delegated("click", o, We), f.delegated("click", c, Ue), f.delegated("click", u, Ke), f.delegated("click", p, Ge), f.delegated("click", h, Je), f.append(e, t);
356
+ };
357
+ f.if(dt, (e) => {
358
+ f.get(N) && e(ft);
359
+ }), f.reset(Z);
360
+ var pt = f.sibling(Z, 2), mt = (e) => {
361
+ var t = oe();
362
+ let n;
363
+ var r = f.sibling(f.child(t));
364
+ f.reset(t), f.template_effect(() => {
365
+ n = f.set_class(t, 1, "sv-grid-chart-btn sv-grid-chart-ai-btn", null, n, { "is-active": f.get(V) }), f.set_attribute(t, "aria-label", f.get(y).chartAiLabel), f.set_attribute(t, "title", f.get(y).chartAiLabel), f.set_attribute(t, "aria-expanded", f.get(V)), f.set_text(r, ` ${f.get(y).chartAi ?? ""}`);
366
+ }), f.delegated("click", t, () => f.set(V, !f.get(V))), f.append(e, t);
367
+ };
368
+ f.if(pt, (e) => {
369
+ f.get(Ye) && !f.get(S) && e(mt);
370
+ });
371
+ var ht = f.sibling(pt, 2), gt = (e) => {
372
+ var t = pe(), n = f.first_child(t), r = f.sibling(f.child(n));
373
+ f.reset(n);
374
+ var i = f.sibling(n, 2), a = f.child(i);
375
+ f.bind_this(a, (e) => f.set(L, e), () => f.get(L));
376
+ var o = f.sibling(a, 2), s = (e) => {
377
+ var t = ue(), n = f.child(t), r = f.child(n);
378
+ f.remove_input_defaults(r);
379
+ var i = f.sibling(r, 2), a = f.child(i, !0);
380
+ f.reset(i), f.reset(n);
381
+ var o = f.sibling(n, 2), s = (e) => {
382
+ var t = ce();
383
+ f.each(t, 21, () => v().savedCharts, (e) => e.name, (e, t) => {
384
+ var n = se(), r = f.child(n), i = f.child(r, !0);
385
+ f.reset(r);
386
+ var a = f.sibling(r, 2);
387
+ f.reset(n), f.template_effect(() => {
388
+ f.set_attribute(r, "title", f.get(y).chartSaveApply), f.set_text(i, f.get(t).name), f.set_attribute(a, "aria-label", `${f.get(y).chartSaveRemove}: ${f.get(t).name}`), f.set_attribute(a, "title", f.get(y).chartSaveRemove);
389
+ }), f.delegated("click", r, () => {
390
+ v().applySavedChart(f.get(t).name), f.set(z, !1);
391
+ }), f.delegated("click", a, () => v().removeSavedChart(f.get(t).name)), f.append(e, n);
392
+ }), f.reset(t), f.append(e, t);
393
+ }, c = (e) => {
394
+ var t = le(), n = f.child(t, !0);
395
+ f.reset(t), f.template_effect(() => f.set_text(n, f.get(y).chartSavedEmpty)), f.append(e, t);
396
+ };
397
+ f.if(o, (e) => {
398
+ v().savedCharts.length ? e(s) : e(c, -1);
399
+ }), f.reset(t), f.template_effect((e) => {
400
+ f.set_attribute(t, "aria-label", f.get(y).chartSavedTitle), f.set_attribute(r, "aria-label", f.get(y).chartSaveName), f.set_attribute(r, "placeholder", f.get(y).chartSaveNamePlaceholder), i.disabled = e, f.set_text(a, f.get(y).chartSave);
401
+ }, [() => !f.get(B).trim()]), f.event("submit", n, (e) => {
402
+ e.preventDefault(), qe();
403
+ }), f.bind_value(r, () => f.get(B), (e) => f.set(B, e)), f.append(e, t);
404
+ };
405
+ f.if(o, (e) => {
406
+ f.get(z) && e(s);
407
+ }), f.reset(i);
408
+ var c = f.sibling(i, 2);
409
+ let l;
410
+ var u = f.child(c), d = (e) => {
411
+ var t = de();
412
+ f.append(e, t);
413
+ }, p = (e) => {
414
+ var t = fe();
415
+ f.append(e, t);
416
+ };
417
+ f.if(u, (e) => {
418
+ v().chartFrozen ? e(d) : e(p, -1);
419
+ }), f.reset(c);
420
+ var m = f.sibling(c, 2);
421
+ f.template_effect(() => {
422
+ f.set_attribute(n, "aria-label", f.get(y).chartBuildLabel), f.set_attribute(n, "title", f.get(y).chartBuildTitle), f.set_text(r, ` ${f.get(y).chartBuild ?? ""}`), f.set_attribute(a, "aria-label", f.get(y).chartSaveLabel), f.set_attribute(a, "title", f.get(y).chartSavedTitle), f.set_attribute(a, "aria-expanded", f.get(z)), l = f.set_class(c, 1, "sv-grid-chart-icon-btn sv-grid-chart-link-btn", null, l, { "is-unlinked": !!v().chartFrozen }), f.set_attribute(c, "aria-label", v().chartFrozen ? f.get(y).chartLinkBack : f.get(y).chartUnlink), f.set_attribute(c, "aria-pressed", !!v().chartFrozen), f.set_attribute(c, "title", v().chartFrozen ? f.get(y).chartUnlinkedTitle : f.get(y).chartLinkedTitle), f.set_attribute(m, "aria-label", f.get(y).chartAdd), f.set_attribute(m, "title", f.get(y).chartAdd);
423
+ }), f.delegated("click", n, ee), f.delegated("click", a, () => f.set(z, !f.get(z))), f.delegated("click", c, () => v().chartFrozen ? v().unfreezeChart() : v().freezeChart()), f.delegated("click", m, () => v().addChart()), f.append(e, t);
424
+ };
425
+ f.if(ht, (e) => {
426
+ f.get(S) || e(gt);
427
+ });
428
+ var _t = f.sibling(ht, 2), vt = (e) => {
429
+ var t = ge(), n = f.first_child(t), r = f.child(n), i = (e) => {
430
+ var t = me();
431
+ f.append(e, t);
432
+ }, a = (e) => {
433
+ var t = he();
434
+ f.append(e, t);
435
+ };
436
+ f.if(r, (e) => {
437
+ f.get(k) ? e(i) : e(a, -1);
438
+ }), f.reset(n);
439
+ var o = f.sibling(n, 2);
440
+ f.template_effect(() => {
441
+ f.set_attribute(n, "aria-label", f.get(k) ? f.get(y).chartRestore : f.get(y).chartMaximize), f.set_attribute(n, "title", f.get(k) ? f.get(y).chartRestore : f.get(y).chartMaximize), f.set_attribute(o, "aria-label", f.get(y).chartDockLabel), f.set_attribute(o, "title", f.get(y).chartDock);
442
+ }), f.delegated("click", n, Pe), f.delegated("click", o, Ne), f.append(e, t);
443
+ }, yt = (e) => {
444
+ var t = _e();
445
+ f.template_effect(() => {
446
+ f.set_attribute(t, "aria-label", f.get(y).chartPopOutLabel), f.set_attribute(t, "title", f.get(y).chartPopOut);
447
+ }), f.delegated("click", t, Me), f.append(e, t);
448
+ };
449
+ f.if(_t, (e) => {
450
+ f.get(O) ? e(vt) : e(yt, -1);
451
+ });
452
+ var bt = f.sibling(_t, 2);
453
+ f.reset(at), f.reset(Y);
454
+ var xt = f.sibling(Y, 2), St = (e) => {
455
+ var t = ye();
456
+ f.each(t, 23, () => v().charts, (e) => e.id, (e, t, n) => {
457
+ var r = ve();
458
+ let i;
459
+ var a = f.child(r), o = f.child(a, !0);
460
+ f.reset(a);
461
+ var s = f.sibling(a, 2);
462
+ f.reset(r), f.template_effect((e) => {
463
+ i = f.set_class(r, 1, "sv-grid-chart-tab", null, i, { "is-active": f.get(n) === v().activeChartIndex }), f.set_attribute(a, "aria-selected", f.get(n) === v().activeChartIndex), f.set_text(o, f.get(t).title), f.set_attribute(s, "aria-label", e), f.set_attribute(s, "title", f.get(y).chartRemove);
464
+ }, [() => d(f.get(y).chartRemoveTab, { title: f.get(t).title })]), f.delegated("click", a, () => v().activeChartIndex = f.get(n)), f.delegated("click", s, () => v().removeChart(f.get(n))), f.append(e, r);
465
+ }), f.reset(t), f.template_effect(() => f.set_attribute(t, "aria-label", f.get(y).chartTabs)), f.append(e, t);
466
+ };
467
+ f.if(xt, (e) => {
468
+ !f.get(S) && v().charts.length > 1 && e(St);
469
+ });
470
+ var Ct = f.sibling(xt, 2), wt = (e) => {
471
+ var t = Ce(), n = f.child(t), r = f.child(n);
472
+ f.remove_input_defaults(r);
473
+ var i = f.sibling(r, 2), a = f.child(i, !0);
474
+ f.reset(i);
475
+ var o = f.sibling(i, 2), s = (e) => {
476
+ var t = be(), n = f.child(t, !0);
477
+ f.reset(t), f.template_effect(() => {
478
+ t.disabled = f.get(U) || !f.get(T), f.set_attribute(t, "title", f.get(y).chartAiExplainTitle), f.set_text(n, f.get(y).chartAiExplain);
479
+ }), f.delegated("click", t, Ze), f.append(e, t);
480
+ };
481
+ f.if(o, (e) => {
482
+ f.get(Xe) && e(s);
483
+ }), f.reset(n);
484
+ var c = f.sibling(n, 2), l = (e) => {
485
+ var t = xe(), n = f.child(t, !0);
486
+ f.reset(t), f.template_effect(() => f.set_text(n, f.get(W))), f.append(e, t);
487
+ }, u = (e) => {
488
+ var t = Se(), n = f.child(t, !0);
489
+ f.reset(t), f.template_effect(() => f.set_text(n, f.get(G))), f.append(e, t);
490
+ };
491
+ f.if(c, (e) => {
492
+ f.get(W) ? e(l) : f.get(G) && e(u, 1);
493
+ }), f.reset(t), f.template_effect((e) => {
494
+ f.set_attribute(r, "placeholder", f.get(y).chartAiPlaceholder), r.disabled = f.get(U), i.disabled = e, f.set_text(a, f.get(U) ? f.get(y).chartAiThinking : f.get(y).chartAiRun);
495
+ }, [() => f.get(U) || !f.get(H).trim()]), f.event("submit", n, (e) => {
496
+ e.preventDefault(), Qe();
497
+ }), f.bind_value(r, () => f.get(H), (e) => f.set(H, e)), f.append(e, t);
498
+ };
499
+ f.if(Ct, (e) => {
500
+ f.get(Ye) && f.get(V) && !f.get(S) && e(wt);
501
+ });
502
+ var Tt = f.sibling(Ct, 2), Et = (e) => {
503
+ l(e, {
504
+ get ctrl() {
505
+ return v();
506
+ },
507
+ get messages() {
508
+ return f.get(y);
509
+ }
510
+ });
511
+ };
512
+ f.if(Tt, (e) => {
513
+ f.get(S) || e(Et);
514
+ }), f.reset(J);
515
+ var $ = f.sibling(J, 2), Dt = f.child($), Ot = (e) => {
516
+ var t = we(), n = f.child(t);
517
+ {
518
+ let e = f.derived(() => f.get(x)?.zoom ?? !1), t = f.derived(() => f.get(x)?.rangePresets), r = f.derived(() => f.get(x)?.syncGroup), i = f.derived(() => f.get(x)?.contextMenu), a = f.derived(() => f.get(x)?.animate), o = f.derived(() => f.get(x)?.localeText), s = f.derived(() => f.get(x)?.export === !0 || void 0);
519
+ _(n, {
520
+ get spec() {
521
+ return f.get(T);
522
+ },
523
+ get indicators() {
524
+ return v().chartIndicatorPanes;
525
+ },
526
+ onSelect: ze,
527
+ interactive: !0,
528
+ legend: !1,
529
+ get zoomable() {
530
+ return f.get(e);
531
+ },
532
+ get rangePresets() {
533
+ return f.get(t);
534
+ },
535
+ get syncGroup() {
536
+ return f.get(r);
537
+ },
538
+ get contextMenu() {
539
+ return f.get(i);
540
+ },
541
+ get animate() {
542
+ return f.get(a);
543
+ },
544
+ get localeText() {
545
+ return f.get(o);
546
+ },
547
+ get crosshairLabels() {
548
+ return f.get(Ae);
549
+ },
550
+ get toolbar() {
551
+ return f.get(s);
552
+ },
553
+ get zoom() {
554
+ return v().chartZoom;
555
+ },
556
+ set zoom(e) {
557
+ v().chartZoom = e;
558
+ }
559
+ });
560
+ }
561
+ f.reset(t), f.append(e, t);
562
+ }, kt = (e) => {
563
+ {
564
+ let t = f.derived(() => f.get(x)?.zoom ?? !1), r = f.derived(() => f.get(x)?.brush === !0), i = f.derived(() => f.get(x)?.rangePresets), a = f.derived(() => f.get(x)?.syncGroup), o = f.derived(() => f.get(x)?.contextMenu), s = f.derived(() => f.get(x)?.animate), c = f.derived(() => f.get(x)?.localeText), l = f.derived(() => f.get(x)?.export === !0 || void 0);
565
+ n(e, {
566
+ get spec() {
567
+ return f.get(T);
568
+ },
569
+ autosize: !0,
570
+ onSelect: ze,
571
+ interactive: !0,
572
+ get legend() {
573
+ return f.get(Oe);
574
+ },
575
+ get dataLabels() {
576
+ return f.get(ke);
577
+ },
578
+ get zoomable() {
579
+ return f.get(t);
580
+ },
581
+ get brush() {
582
+ return f.get(r);
583
+ },
584
+ get rangePresets() {
585
+ return f.get(i);
586
+ },
587
+ get syncGroup() {
588
+ return f.get(a);
589
+ },
590
+ get contextMenu() {
591
+ return f.get(o);
592
+ },
593
+ get animate() {
594
+ return f.get(s);
595
+ },
596
+ get localeText() {
597
+ return f.get(c);
598
+ },
599
+ get crosshairLabels() {
600
+ return f.get(Ae);
601
+ },
602
+ get toolbar() {
603
+ return f.get(l);
604
+ },
605
+ get zoom() {
606
+ return v().chartZoom;
607
+ },
608
+ set zoom(e) {
609
+ v().chartZoom = e;
610
+ }
611
+ });
612
+ }
613
+ }, At = (e) => {
614
+ var t = Te(), n = f.child(t), r = (e) => {
615
+ var t = f.text();
616
+ f.template_effect(() => f.set_text(t, f.get(y).chartEmptyColumns)), f.append(e, t);
617
+ }, i = (e) => {
618
+ var t = f.text();
619
+ f.template_effect(() => f.set_text(t, f.get(y).chartEmptyData)), f.append(e, t);
620
+ };
621
+ f.if(n, (e) => {
622
+ !f.get(E).dims.length || !f.get(E).measures.length ? e(r) : e(i, -1);
623
+ }), f.reset(t), f.append(e, t);
624
+ };
625
+ f.if(Dt, (e) => {
626
+ f.get(T) && v().chartIndicatorPanes.length && f.get(T).series[0]?.ohlc ? e(Ot) : f.get(T) && (f.get(T).series.length || f.get(T).gaugeValue != null || f.get(S)) ? e(kt, 1) : e(At, -1);
627
+ }), f.reset($), f.bind_this($, (e) => f.set(M, e), () => f.get(M));
628
+ var jt = f.sibling($, 2), Mt = (e) => {
629
+ var t = f.comment(), n = f.first_child(t);
630
+ f.component(n, () => f.get(h), (e, t) => {
631
+ t(e, {
632
+ get ctrl() {
633
+ return v();
634
+ },
635
+ get types() {
636
+ return f.get(Re);
637
+ },
638
+ get messages() {
639
+ return f.get(y);
640
+ },
641
+ get open() {
642
+ return f.get(g);
643
+ },
644
+ set open(e) {
645
+ f.set(g, e, !0);
646
+ }
647
+ });
648
+ }), f.append(e, t);
649
+ };
650
+ f.if(jt, (e) => {
651
+ f.get(h) && e(Mt);
652
+ });
653
+ var Nt = f.sibling(jt, 2), Pt = (e) => {
654
+ var t = Ee();
655
+ f.template_effect(() => f.set_attribute(t, "aria-label", f.get(y).chartResizeWindow)), f.delegated("pointerdown", t, Ie), f.append(e, t);
656
+ };
657
+ f.if(Nt, (e) => {
658
+ f.get(O) && !f.get(k) && e(Pt);
659
+ }), f.reset(q), f.bind_this(q, (e) => f.set(j, e), () => f.get(j)), f.template_effect(() => {
660
+ et = f.set_class(q, 1, "sv-grid-chart-panel", null, et, {
661
+ "is-right": f.get(C) === "right" && !f.get(O),
662
+ "is-bottom": f.get(C) === "bottom" && !f.get(O),
663
+ "is-floating": f.get(O),
664
+ "is-maximized": f.get(O) && f.get(k)
665
+ }), f.set_style(q, f.get(Le)), f.set_attribute(q, "aria-label", f.get(y).chartPanelTitle), rt = f.set_class(Y, 1, "sv-grid-chart-drawer-title", null, rt, { "is-drag-handle": f.get(O) && !f.get(k) }), f.set_text(it, f.get(y).chartPanelTitle), f.set_attribute(Q, "aria-label", f.get(y).chartExportLabel), f.set_attribute(Q, "title", f.get(y).chartExport), f.set_attribute(Q, "aria-expanded", f.get(N)), f.set_attribute(bt, "aria-label", f.get(y).chartClose);
666
+ }), f.delegated("pointerdown", Y, Fe), f.delegated("click", Q, () => f.set(N, !f.get(N))), f.delegated("click", bt, () => v().chartPanelOpen = !1), f.transition(3, q, () => p, () => ({
667
+ x: !f.get(O) && f.get(C) === "right" ? f.get(D) : 0,
668
+ y: !f.get(O) && f.get(C) === "bottom" ? f.get(D) : 0,
669
+ duration: 180,
670
+ easing: m
671
+ })), f.append(e, q), f.pop();
672
+ }
673
+ f.delegate(["pointerdown", "click"]);
674
+ //#endregion
675
+ export { v as n, _ as r, y as t };