@svgrid/grid 3.0.5 → 3.0.6

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 (148) hide show
  1. package/README.md +28 -7
  2. package/dist/GridMenus.svelte +34 -4
  3. package/dist/SvGrid.controller.svelte.d.ts +21 -3
  4. package/dist/SvGrid.controller.svelte.js +205 -50
  5. package/dist/SvGrid.css +127 -2
  6. package/dist/SvGrid.svelte +223 -38
  7. package/dist/SvGrid.types.d.ts +77 -4
  8. package/dist/SvGridDropdown.svelte +20 -0
  9. package/dist/SvGridDropdown.svelte.d.ts +12 -0
  10. package/dist/SvModal.svelte +22 -0
  11. package/dist/SvModal.svelte.d.ts +7 -0
  12. package/dist/a11y/dismissable.d.ts +10 -0
  13. package/dist/a11y/dismissable.js +24 -2
  14. package/dist/build-api.js +81 -31
  15. package/dist/cdn/{GridMenus-CID62rlI.js → GridMenus-C-NtjlrJ.js} +150 -141
  16. package/dist/cdn/GridMenus-TssHej3q.js +644 -0
  17. package/dist/cdn/{SvChartMenu-FBSMINA6.js → SvChartMenu-BFSTpvB-.js} +1 -1
  18. package/dist/cdn/{SvChartMenu-Bl6PBbkT.js → SvChartMenu-BZ1Iwv0y.js} +1 -1
  19. package/dist/cdn/{SvDateTimePicker-DQwt4UAs.js → SvDateTimePicker-D9u_cOf8.js} +1 -1
  20. package/dist/cdn/{SvDateTimePicker-vNU6bZ-q.js → SvDateTimePicker-s_6IUpI7.js} +1 -1
  21. package/dist/cdn/{SvGridCellEditor-B1p-vCK5.js → SvGridCellEditor-BlyCSp0q.js} +1 -1
  22. package/dist/cdn/{SvGridCellEditor-D_0q4xAu.js → SvGridCellEditor-ClRRA9lW.js} +1 -1
  23. package/dist/cdn/{SvGridChart-DzLkSwCH.js → SvGridChart-B4EV8U6t.js} +4 -4
  24. package/dist/cdn/{SvGridChart-C3EWAZaM.js → SvGridChart-DsmwTyZF.js} +4 -4
  25. package/dist/cdn/{SvGridChartBuilder-CfII62sZ.js → SvGridChartBuilder-cHloHobN.js} +4 -4
  26. package/dist/cdn/{SvGridChartBuilder-BE2T1ykB.js → SvGridChartBuilder-vOl7C0Za.js} +4 -4
  27. package/dist/cdn/{SvGridChartPanel-xf4sWVTo.js → SvGridChartPanel-AcqF-Ll5.js} +5 -5
  28. package/dist/cdn/{SvGridChartPanel-CCX5_Wgd.js → SvGridChartPanel-biMtSBPA.js} +5 -5
  29. package/dist/cdn/{SvGridChartView-DYwabQWj.js → SvGridChartView-Dx_GmZuL.js} +2 -2
  30. package/dist/cdn/{SvGridChartView-CfuXmY5I.js → SvGridChartView-I3rDHXAq.js} +2 -2
  31. package/dist/cdn/{SvGridDropdown-D0VdjeR8.js → SvGridDropdown-BWeM3lMe.js} +46 -46
  32. package/dist/cdn/{SvGridDropdown-D13MtJ2j.js → SvGridDropdown-CJ6QqTxu.js} +67 -67
  33. package/dist/cdn/{SvModal-CIZWCcad.js → SvModal-ClxGmpAc.js} +187 -186
  34. package/dist/cdn/{SvModal-BAE-pjZX.js → SvModal-DhB_VMFR.js} +148 -147
  35. package/dist/cdn/{cell-formatting-C2Hf5gqd.js → cell-formatting-DVVKOSI9.js} +1 -1
  36. package/dist/cdn/{chart-Dz7SqMXH.js → chart-DEZxwC0i.js} +1 -1
  37. package/dist/cdn/{chart-panel-messages-CUbf2R4i.js → chart-panel-messages-D12XcTZJ.js} +1 -1
  38. package/dist/cdn/{chart-panel-messages-CmNrMdsr.js → chart-panel-messages-DguS7gC5.js} +1 -1
  39. package/dist/cdn/{chart-summary-BJW_tg_X.js → chart-summary-CMAXBGY-.js} +1 -1
  40. package/dist/cdn/{chart-trend-CaN9mDEV.js → chart-trend-BkEp61Gj.js} +1 -1
  41. package/dist/cdn/{dismissable-DAHetSNk.js → dismissable-Brc4EZU1.js} +5 -1
  42. package/dist/cdn/{export-format-CUDLy2yn.js → export-format-YzdwBww2.js} +1 -1
  43. package/dist/cdn/{row-resize-niQCp040.js → row-resize-DtOS1KG6.js} +41 -32
  44. package/dist/cdn/{server-block-cache-CGoWz-87.js → server-block-cache-DIqb3VZn.js} +4 -0
  45. package/dist/cdn/{src-jcFMkBnN.js → src-CgoeSM8k.js} +4697 -4131
  46. package/dist/cdn/{src-Bklofsad.js → src-DfwxB1TH.js} +4727 -4161
  47. package/dist/cdn/svgrid.js +17 -17
  48. package/dist/cdn/svgrid.svelte-external.js +17 -17
  49. package/dist/cdn/{validate-C7Rn_Bns.js → validate-AZoD8BoR.js} +6 -2
  50. package/dist/cell-formatting.js +18 -1
  51. package/dist/cell-render.js +25 -6
  52. package/dist/clipboard.d.ts +2 -2
  53. package/dist/clipboard.js +72 -23
  54. package/dist/columns.js +7 -2
  55. package/dist/conditional-formatting.d.ts +2 -0
  56. package/dist/conditional-formatting.js +2 -0
  57. package/dist/core.d.ts +22 -6
  58. package/dist/core.js +365 -25
  59. package/dist/editing.js +24 -0
  60. package/dist/grid-messages.d.ts +4 -0
  61. package/dist/grid-messages.js +4 -0
  62. package/dist/headless.d.ts +5 -0
  63. package/dist/headless.js +12 -0
  64. package/dist/history.d.ts +21 -0
  65. package/dist/history.js +34 -4
  66. package/dist/index.d.ts +1 -1
  67. package/dist/keyboard-handlers.js +24 -1
  68. package/dist/keyboard.js +4 -0
  69. package/dist/row-drag-touch.d.ts +1 -1
  70. package/dist/row-drag.js +35 -1
  71. package/dist/row-model.d.ts +6 -0
  72. package/dist/row-resize.js +22 -1
  73. package/dist/selection.js +1 -1
  74. package/dist/server-block-cache.d.ts +5 -0
  75. package/dist/server-block-cache.js +8 -0
  76. package/dist/server-data-source.d.ts +35 -3
  77. package/dist/server-data-source.js +11 -2
  78. package/dist/server.d.ts +1 -1
  79. package/dist/sparkline.js +7 -5
  80. package/dist/svgrid-wrapper.types.d.ts +33 -0
  81. package/dist/validate.js +9 -1
  82. package/package.json +6 -1
  83. package/src/GridMenus.svelte +34 -4
  84. package/src/SvGrid.controller.svelte.ts +206 -53
  85. package/src/SvGrid.css +127 -2
  86. package/src/SvGrid.svelte +223 -38
  87. package/src/SvGrid.types.ts +77 -4
  88. package/src/SvGridDropdown.svelte +20 -0
  89. package/src/SvModal.svelte +22 -0
  90. package/src/SvModal.test.ts +30 -1
  91. package/src/a11y/dismissable.test.ts +10 -1
  92. package/src/a11y/dismissable.ts +22 -2
  93. package/src/build-api.ts +85 -27
  94. package/src/cell-formatting.test.ts +17 -0
  95. package/src/cell-formatting.ts +18 -1
  96. package/src/cell-render.test.ts +24 -2
  97. package/src/cell-render.ts +24 -8
  98. package/src/clipboard.test.ts +107 -0
  99. package/src/clipboard.ts +62 -23
  100. package/src/columns.test.ts +4 -4
  101. package/src/columns.ts +7 -2
  102. package/src/conditional-formatting.test.ts +8 -0
  103. package/src/conditional-formatting.ts +3 -0
  104. package/src/core.tick-repair.test.ts +287 -0
  105. package/src/core.ts +374 -26
  106. package/src/editing.test.ts +52 -0
  107. package/src/editing.ts +25 -0
  108. package/src/grid-messages.test.ts +7 -0
  109. package/src/grid-messages.ts +10 -0
  110. package/src/headless.ts +24 -0
  111. package/src/history.test.ts +49 -1
  112. package/src/history.ts +48 -2
  113. package/src/index.ts +2 -0
  114. package/src/keyboard-handlers.coverage.test.ts +65 -0
  115. package/src/keyboard-handlers.ts +26 -1
  116. package/src/keyboard.ts +3 -0
  117. package/src/row-drag-touch.ts +2 -2
  118. package/src/row-drag.test.ts +51 -0
  119. package/src/row-drag.ts +35 -2
  120. package/src/row-model.ts +6 -0
  121. package/src/row-resize.ts +24 -1
  122. package/src/selection.ts +1 -1
  123. package/src/server-block-cache.test.ts +27 -0
  124. package/src/server-block-cache.ts +13 -0
  125. package/src/server-data-source.infinite.test.ts +62 -0
  126. package/src/server-data-source.test.ts +19 -0
  127. package/src/server-data-source.ts +48 -4
  128. package/src/server.ts +2 -0
  129. package/src/sparkline.test.ts +7 -0
  130. package/src/sparkline.ts +6 -4
  131. package/src/svgrid-wrapper.types.ts +32 -0
  132. package/src/svgrid.api.test.ts +21 -0
  133. package/src/svgrid.charting.test.ts +12 -4
  134. package/src/svgrid.context-menu.test.ts +12 -0
  135. package/src/svgrid.detail-rows.svelte.test.ts +187 -0
  136. package/src/svgrid.filter-menu-scroll.test.ts +9 -0
  137. package/src/svgrid.gantt-seam.test.ts +1 -1
  138. package/src/svgrid.live-update-paths.svelte.test.ts +184 -0
  139. package/src/svgrid.menu-scroll-close.test.ts +10 -0
  140. package/src/svgrid.row-model-seam.svelte.test.ts +16 -0
  141. package/src/svgrid.row-pinning.test.ts +15 -1
  142. package/src/svgrid.selection-bar-seam.test.ts +1 -1
  143. package/src/svgrid.sticky-groups.svelte.test.ts +145 -0
  144. package/src/svgrid.upsell-license.test.ts +1 -1
  145. package/src/test-setup.ts +12 -0
  146. package/src/transaction.test.ts +58 -0
  147. package/src/validate.ts +7 -1
  148. package/dist/cdn/GridMenus-DLL-qZeu.js +0 -635
@@ -3,25 +3,29 @@ import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
3
3
  var t = /* @__PURE__ */ e({ rowResize: () => r }), n = "sv-grid-row-resize-handle";
4
4
  function r(e, t) {
5
5
  let r = t, i = null, a = null;
6
- function o(e) {
6
+ function o(e, t) {
7
+ let n = r.min ?? 20, i = r.max ?? 320;
8
+ e.setAttribute("aria-valuemin", String(n)), e.setAttribute("aria-valuemax", String(i)), e.setAttribute("aria-valuenow", String(Math.round(Math.max(n, Math.min(i, t || n)))));
9
+ }
10
+ function s(e) {
7
11
  let t = e.querySelector("[data-svgrid-row]")?.dataset.svgridRow;
8
12
  return t == null ? NaN : Number(t);
9
13
  }
10
- function s(e) {
14
+ function c(e) {
11
15
  if (!i) return;
12
16
  let t = r.min ?? 20, n = r.max ?? 320, a = Math.max(t, Math.min(n, i.startHeight + (e.clientY - i.startY)));
13
- i.trEl.style.height = `${Math.round(a)}px`, r.onResizeMove?.(i.rowIndex, Math.round(a));
17
+ i.trEl.style.height = `${Math.round(a)}px`, o(i.strip, a), r.onResizeMove?.(i.rowIndex, Math.round(a));
14
18
  }
15
- function c(e) {
19
+ function l(e) {
16
20
  if (!i) return;
17
21
  let t = r.min ?? 20, n = r.max ?? 320, a = Math.max(t, Math.min(n, i.startHeight + (e.clientY - i.startY)));
18
22
  r.onResize(i.rowIndex, Math.round(a)), i.strip.classList.remove("is-resizing");
19
23
  try {
20
24
  i.trEl.releasePointerCapture(e.pointerId);
21
25
  } catch {}
22
- i = null, window.removeEventListener("pointermove", s), window.removeEventListener("pointerup", c), document.body.style.cursor = "";
26
+ i = null, window.removeEventListener("pointermove", c), window.removeEventListener("pointerup", l), document.body.style.cursor = "";
23
27
  }
24
- function l(e) {
28
+ function u(e) {
25
29
  if (r.disabled) return;
26
30
  let t = e.target;
27
31
  if (!t?.classList.contains(n)) return;
@@ -29,21 +33,21 @@ function r(e, t) {
29
33
  if (e.key === "ArrowUp") a = -i;
30
34
  else if (e.key === "ArrowDown") a = i;
31
35
  else return;
32
- let s = t.closest("tr.sv-grid-row");
33
- if (!s) return;
34
- let c = o(s);
35
- if (!Number.isFinite(c)) return;
36
+ let c = t.closest("tr.sv-grid-row");
37
+ if (!c) return;
38
+ let l = s(c);
39
+ if (!Number.isFinite(l)) return;
36
40
  e.preventDefault(), e.stopPropagation();
37
- let l = r.min ?? 20, u = r.max ?? 320, d = Math.round(Math.max(l, Math.min(u, s.getBoundingClientRect().height + a)));
38
- s.style.height = `${d}px`, r.onResizeMove?.(c, d), r.onResize(c, d);
41
+ let u = r.min ?? 20, d = r.max ?? 320, f = Math.round(Math.max(u, Math.min(d, c.getBoundingClientRect().height + a)));
42
+ c.style.height = `${f}px`, o(t, f), r.onResizeMove?.(l, f), r.onResize(l, f);
39
43
  }
40
- function u(e) {
44
+ function d(e) {
41
45
  if (r.disabled) return;
42
46
  let t = e.target;
43
47
  if (!t?.classList.contains(n)) return;
44
- let l = t.closest("tr.sv-grid-row");
45
- if (!l) return;
46
- let u = o(l);
48
+ let o = t.closest("tr.sv-grid-row");
49
+ if (!o) return;
50
+ let u = s(o);
47
51
  if (!Number.isFinite(u)) return;
48
52
  e.preventDefault(), e.stopPropagation();
49
53
  let d = e.timeStamp, f = a !== null && a.rowIndex === u && d - a.at < 400;
@@ -57,45 +61,50 @@ function r(e, t) {
57
61
  t.classList.add("is-resizing"), i = {
58
62
  rowIndex: u,
59
63
  startY: e.clientY,
60
- startHeight: l.getBoundingClientRect().height,
61
- trEl: l,
64
+ startHeight: o.getBoundingClientRect().height,
65
+ trEl: o,
62
66
  strip: t
63
67
  };
64
68
  try {
65
- l.setPointerCapture(e.pointerId);
69
+ o.setPointerCapture(e.pointerId);
66
70
  } catch {}
67
- document.body.style.cursor = "row-resize", window.addEventListener("pointermove", s), window.addEventListener("pointerup", c);
71
+ document.body.style.cursor = "row-resize", window.addEventListener("pointermove", c), window.addEventListener("pointerup", l);
68
72
  }
69
- function d() {
73
+ function f() {
70
74
  if (r.disabled) {
71
- f();
75
+ p();
72
76
  return;
73
77
  }
74
78
  let t = e.querySelectorAll("tr.sv-grid-row");
75
79
  for (let e of t) {
76
80
  if (e.classList.contains("sv-grid-header-row") || e.classList.contains("sv-grid-row-spacer")) continue;
77
81
  let t = e.querySelector(".sv-grid-cell.sv-row-gutter, .sv-grid-cell.sv-grid-row-number-cell") ?? (r.anchor === "row" ? e.querySelector(".sv-grid-cell") : null);
78
- if (!t || t.querySelector(`:scope > .${n}`)) continue;
82
+ if (!t) continue;
83
+ let i = t.querySelector(`:scope > .${n}`);
84
+ if (i) {
85
+ o(i, e.getBoundingClientRect().height);
86
+ continue;
87
+ }
79
88
  getComputedStyle(t).position === "static" && (t.style.position = "relative"), t.style.overflow = "visible";
80
- let i = document.createElement("div");
81
- i.className = n, i.setAttribute("role", "separator"), i.setAttribute("aria-orientation", "horizontal"), i.setAttribute("aria-label", "Resize row"), i.tabIndex = 0, i.style.cssText = "position:absolute;left:0;right:0;bottom:0;height:5px;cursor:row-resize;user-select:none;z-index:60;pointer-events:auto;", t.appendChild(i);
89
+ let a = document.createElement("div");
90
+ a.className = n, a.setAttribute("role", "separator"), a.setAttribute("aria-orientation", "horizontal"), a.setAttribute("aria-label", "Resize row"), a.tabIndex = 0, o(a, e.getBoundingClientRect().height), a.style.cssText = "position:absolute;left:0;right:0;bottom:0;height:5px;cursor:row-resize;user-select:none;z-index:60;pointer-events:auto;", t.appendChild(a);
82
91
  }
83
92
  }
84
- function f() {
93
+ function p() {
85
94
  e.querySelectorAll(`.${n}`).forEach((e) => e.remove());
86
95
  }
87
- e.addEventListener("pointerdown", u, { capture: !0 }), e.addEventListener("keydown", l, { capture: !0 });
88
- let p = new MutationObserver(() => d());
89
- return p.observe(e, {
96
+ e.addEventListener("pointerdown", d, { capture: !0 }), e.addEventListener("keydown", u, { capture: !0 });
97
+ let m = new MutationObserver(() => f());
98
+ return m.observe(e, {
90
99
  childList: !0,
91
100
  subtree: !0
92
- }), d(), {
101
+ }), f(), {
93
102
  update(e) {
94
103
  let t = r.disabled;
95
- r = e, t !== r.disabled && d();
104
+ r = e, t !== r.disabled && f();
96
105
  },
97
106
  destroy() {
98
- e.removeEventListener("pointerdown", u, { capture: !0 }), e.removeEventListener("keydown", l, { capture: !0 }), window.removeEventListener("pointermove", s), window.removeEventListener("pointerup", c), p.disconnect(), f();
107
+ e.removeEventListener("pointerdown", d, { capture: !0 }), e.removeEventListener("keydown", u, { capture: !0 }), window.removeEventListener("pointermove", c), window.removeEventListener("pointerup", l), m.disconnect(), p();
99
108
  }
100
109
  };
101
110
  }
@@ -138,6 +138,10 @@ function o(e) {
138
138
  for (let [t, n] of [...d]) n.status === "failed" && (d.delete(t), O(t), e = !0);
139
139
  e && D();
140
140
  },
141
+ retryFailedAt(e) {
142
+ let t = C(Math.max(0, e));
143
+ d.get(t)?.status === "failed" && (d.delete(t), O(t), D());
144
+ },
141
145
  refresh() {
142
146
  for (let [e, t] of [...d]) t.controller?.abort(), d.delete(e), O(e);
143
147
  D();