@svgrid/grid 2.6.21 → 2.6.22

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 (62) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +22 -0
  3. package/dist/GridMenus.svelte +17 -12
  4. package/dist/SvGrid.controller.svelte.d.ts +13 -8
  5. package/dist/SvGrid.controller.svelte.js +150 -72
  6. package/dist/SvGrid.css +1 -1
  7. package/dist/SvGrid.svelte +110 -56
  8. package/dist/SvGrid.types.d.ts +41 -1
  9. package/dist/cdn/{GridMenus-BfTAKn84.js → GridMenus-BuoBPqxx.js} +137 -132
  10. package/dist/cdn/GridMenus-n4llxoOI.js +494 -0
  11. package/dist/cdn/column-resize-DsfNXMom.js +102 -0
  12. package/dist/cdn/row-resize-BRcimkUT.js +95 -0
  13. package/dist/cdn/{src-BYq-qyrp.js → src-C9Hihx1W.js} +3456 -3459
  14. package/dist/cdn/{src-DBel9wRZ.js → src-D1lXwq1l.js} +8283 -8286
  15. package/dist/cdn/svgrid.js +10 -8
  16. package/dist/cdn/svgrid.svelte-external.js +10 -8
  17. package/dist/column-groups.js +1 -1
  18. package/dist/column-resize.d.ts +46 -0
  19. package/dist/column-resize.js +205 -0
  20. package/dist/columns.d.ts +0 -3
  21. package/dist/columns.js +0 -57
  22. package/dist/core.d.ts +19 -4
  23. package/dist/core.js +460 -119
  24. package/dist/filtering/excel-filters.js +28 -0
  25. package/dist/group-display.d.ts +1 -1
  26. package/dist/index.d.ts +2 -1
  27. package/dist/index.js +6 -0
  28. package/dist/menus.js +1 -1
  29. package/dist/row-resize.d.ts +11 -0
  30. package/dist/row-resize.js +7 -1
  31. package/dist/selection.js +9 -0
  32. package/dist/spreadsheet.d.ts +1 -1
  33. package/dist/spreadsheet.js +1 -1
  34. package/package.json +1 -1
  35. package/src/GridMenus.svelte +17 -12
  36. package/src/SvGrid.controller.svelte.ts +155 -74
  37. package/src/SvGrid.css +1 -1
  38. package/src/SvGrid.svelte +110 -56
  39. package/src/SvGrid.types.ts +41 -1
  40. package/src/column-groups.ts +1 -1
  41. package/src/column-resize.test.ts +381 -0
  42. package/src/column-resize.ts +227 -0
  43. package/src/columns.test.ts +0 -103
  44. package/src/columns.ts +0 -58
  45. package/src/core.aggregate.test.ts +134 -0
  46. package/src/core.filter.test.ts +156 -0
  47. package/src/core.grouping.test.ts +146 -0
  48. package/src/core.row-shape.test.ts +119 -0
  49. package/src/core.rowmodel-cache.test.ts +121 -0
  50. package/src/core.sort.test.ts +293 -0
  51. package/src/core.ts +516 -119
  52. package/src/filtering/excel-filters.ts +30 -0
  53. package/src/filtering/normalize-fast-path.test.ts +104 -0
  54. package/src/group-display.ts +1 -1
  55. package/src/index.ts +12 -1
  56. package/src/menus.ts +1 -1
  57. package/src/resize-props.test.ts +361 -0
  58. package/src/row-resize.test.ts +31 -0
  59. package/src/row-resize.ts +21 -3
  60. package/src/selection.ts +9 -0
  61. package/src/spreadsheet.ts +1 -1
  62. package/dist/cdn/GridMenus-C3bJd7w8.js +0 -489
@@ -0,0 +1,95 @@
1
+ import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
+ //#region src/row-resize.ts
3
+ var t = /* @__PURE__ */ e({ rowResize: () => r }), n = "sv-grid-row-resize-handle";
4
+ function r(e, t) {
5
+ let r = t, i = null;
6
+ function a(e) {
7
+ let t = e.querySelector("[data-svgrid-row]")?.dataset.svgridRow;
8
+ return t == null ? NaN : Number(t);
9
+ }
10
+ function o(e) {
11
+ if (!i) return;
12
+ 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));
14
+ }
15
+ function s(e) {
16
+ if (!i) return;
17
+ let t = r.min ?? 20, n = r.max ?? 320, a = Math.max(t, Math.min(n, i.startHeight + (e.clientY - i.startY)));
18
+ r.onResize(i.rowIndex, Math.round(a)), i.strip.classList.remove("is-resizing");
19
+ try {
20
+ i.trEl.releasePointerCapture(e.pointerId);
21
+ } catch {}
22
+ i = null, window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", s), document.body.style.cursor = "";
23
+ }
24
+ function c(e) {
25
+ if (r.disabled) return;
26
+ let t = e.target;
27
+ if (!t?.classList.contains(n)) return;
28
+ let i = e.shiftKey ? 1 : 10, o = 0;
29
+ if (e.key === "ArrowUp") o = -i;
30
+ else if (e.key === "ArrowDown") o = i;
31
+ else return;
32
+ let s = t.closest("tr.sv-grid-row");
33
+ if (!s) return;
34
+ let c = a(s);
35
+ if (!Number.isFinite(c)) return;
36
+ 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 + o)));
38
+ s.style.height = `${d}px`, r.onResizeMove?.(c, d), r.onResize(c, d);
39
+ }
40
+ function l(e) {
41
+ if (r.disabled) return;
42
+ let t = e.target;
43
+ if (!t?.classList.contains(n)) return;
44
+ let c = t.closest("tr.sv-grid-row");
45
+ if (!c) return;
46
+ let l = a(c);
47
+ if (Number.isFinite(l)) {
48
+ e.preventDefault(), e.stopPropagation(), t.classList.add("is-resizing"), i = {
49
+ rowIndex: l,
50
+ startY: e.clientY,
51
+ startHeight: c.getBoundingClientRect().height,
52
+ trEl: c,
53
+ strip: t
54
+ };
55
+ try {
56
+ c.setPointerCapture(e.pointerId);
57
+ } catch {}
58
+ document.body.style.cursor = "row-resize", window.addEventListener("pointermove", o), window.addEventListener("pointerup", s);
59
+ }
60
+ }
61
+ function u() {
62
+ if (r.disabled) {
63
+ d();
64
+ return;
65
+ }
66
+ let t = e.querySelectorAll("tr.sv-grid-row");
67
+ for (let e of t) {
68
+ if (e.classList.contains("sv-grid-header-row") || e.classList.contains("sv-grid-row-spacer")) continue;
69
+ 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);
70
+ if (!t || t.querySelector(`:scope > .${n}`)) continue;
71
+ getComputedStyle(t).position === "static" && (t.style.position = "relative"), t.style.overflow = "visible";
72
+ let i = document.createElement("div");
73
+ 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);
74
+ }
75
+ }
76
+ function d() {
77
+ e.querySelectorAll(`.${n}`).forEach((e) => e.remove());
78
+ }
79
+ e.addEventListener("pointerdown", l, { capture: !0 }), e.addEventListener("keydown", c, { capture: !0 });
80
+ let f = new MutationObserver(() => u());
81
+ return f.observe(e, {
82
+ childList: !0,
83
+ subtree: !0
84
+ }), u(), {
85
+ update(e) {
86
+ let t = r.disabled;
87
+ r = e, t !== r.disabled && u();
88
+ },
89
+ destroy() {
90
+ e.removeEventListener("pointerdown", l, { capture: !0 }), e.removeEventListener("keydown", c, { capture: !0 }), window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", s), f.disconnect(), d();
91
+ }
92
+ };
93
+ }
94
+ //#endregion
95
+ export { t as n, r as t };