@polygrid/core 1.0.496 → 1.0.497

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 (160) hide show
  1. package/dist/api/index.d.ts +2 -0
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +2 -0
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/api/set-animation-options.d.ts +4 -0
  6. package/dist/api/set-animation-options.d.ts.map +1 -0
  7. package/dist/api/set-animation-options.js +6 -0
  8. package/dist/api/set-animation-options.js.map +1 -0
  9. package/dist/api/set-groupable.d.ts.map +1 -1
  10. package/dist/api/set-groupable.js +9 -0
  11. package/dist/api/set-groupable.js.map +1 -1
  12. package/dist/engine/const/pg-css-class.d.ts +6 -0
  13. package/dist/engine/const/pg-css-class.d.ts.map +1 -1
  14. package/dist/engine/const/pg-css-class.js +6 -0
  15. package/dist/engine/const/pg-css-class.js.map +1 -1
  16. package/dist/engine/core/grid-dom.d.ts +2 -0
  17. package/dist/engine/core/grid-dom.d.ts.map +1 -1
  18. package/dist/engine/core/grid-dom.js.map +1 -1
  19. package/dist/engine/core/grid-runtime.d.ts +1 -0
  20. package/dist/engine/core/grid-runtime.d.ts.map +1 -1
  21. package/dist/engine/core/grid-runtime.js +1 -0
  22. package/dist/engine/core/grid-runtime.js.map +1 -1
  23. package/dist/engine/core/interfaces/grid-options.d.ts +2 -0
  24. package/dist/engine/core/interfaces/grid-options.d.ts.map +1 -1
  25. package/dist/engine/core/methods/consume-options.d.ts.map +1 -1
  26. package/dist/engine/core/methods/consume-options.js +12 -0
  27. package/dist/engine/core/methods/consume-options.js.map +1 -1
  28. package/dist/engine/core/methods/normalize-view-rows.d.ts.map +1 -1
  29. package/dist/engine/core/methods/normalize-view-rows.js +1 -0
  30. package/dist/engine/core/methods/normalize-view-rows.js.map +1 -1
  31. package/dist/engine/services/animation/index.d.ts +4 -0
  32. package/dist/engine/services/animation/index.d.ts.map +1 -1
  33. package/dist/engine/services/animation/index.js +4 -0
  34. package/dist/engine/services/animation/index.js.map +1 -1
  35. package/dist/engine/services/animation/interfaces/animation-options.d.ts +6 -0
  36. package/dist/engine/services/animation/interfaces/animation-options.d.ts.map +1 -0
  37. package/dist/engine/services/animation/interfaces/animation-options.js +2 -0
  38. package/dist/engine/services/animation/interfaces/animation-options.js.map +1 -0
  39. package/dist/engine/services/animation/methods/grouping/collapse-animation.d.ts +5 -0
  40. package/dist/engine/services/animation/methods/grouping/collapse-animation.d.ts.map +1 -0
  41. package/dist/engine/services/animation/methods/grouping/collapse-animation.js +66 -0
  42. package/dist/engine/services/animation/methods/grouping/collapse-animation.js.map +1 -0
  43. package/dist/engine/services/animation/methods/grouping/expand-animation.d.ts +5 -0
  44. package/dist/engine/services/animation/methods/grouping/expand-animation.d.ts.map +1 -0
  45. package/dist/engine/services/animation/methods/grouping/expand-animation.js +81 -0
  46. package/dist/engine/services/animation/methods/grouping/expand-animation.js.map +1 -0
  47. package/dist/engine/services/column/methods/mouse-up.d.ts.map +1 -1
  48. package/dist/engine/services/column/methods/mouse-up.js +17 -13
  49. package/dist/engine/services/column/methods/mouse-up.js.map +1 -1
  50. package/dist/engine/services/column/methods/start-resize.d.ts.map +1 -1
  51. package/dist/engine/services/column/methods/start-resize.js +1 -0
  52. package/dist/engine/services/column/methods/start-resize.js.map +1 -1
  53. package/dist/engine/services/data/methods/apply-sort-and-filter.d.ts.map +1 -1
  54. package/dist/engine/services/data/methods/apply-sort-and-filter.js +4 -1
  55. package/dist/engine/services/data/methods/apply-sort-and-filter.js.map +1 -1
  56. package/dist/engine/services/filter/methods/set-filterable.d.ts.map +1 -1
  57. package/dist/engine/services/filter/methods/set-filterable.js +6 -2
  58. package/dist/engine/services/filter/methods/set-filterable.js.map +1 -1
  59. package/dist/engine/services/grouping/index.d.ts +16 -0
  60. package/dist/engine/services/grouping/index.d.ts.map +1 -1
  61. package/dist/engine/services/grouping/index.js +16 -0
  62. package/dist/engine/services/grouping/index.js.map +1 -1
  63. package/dist/engine/services/grouping/methods/data/apply-grouping.d.ts.map +1 -1
  64. package/dist/engine/services/grouping/methods/data/apply-grouping.js +8 -1
  65. package/dist/engine/services/grouping/methods/data/apply-grouping.js.map +1 -1
  66. package/dist/engine/services/grouping/methods/data/collapse-all-groups.d.ts +3 -0
  67. package/dist/engine/services/grouping/methods/data/collapse-all-groups.d.ts.map +1 -0
  68. package/dist/engine/services/grouping/methods/data/collapse-all-groups.js +8 -0
  69. package/dist/engine/services/grouping/methods/data/collapse-all-groups.js.map +1 -0
  70. package/dist/engine/services/grouping/methods/data/flatten-groups.d.ts +4 -0
  71. package/dist/engine/services/grouping/methods/data/flatten-groups.d.ts.map +1 -0
  72. package/dist/engine/services/grouping/methods/data/flatten-groups.js +37 -0
  73. package/dist/engine/services/grouping/methods/data/flatten-groups.js.map +1 -0
  74. package/dist/engine/services/grouping/methods/data/get-child-row-instances.d.ts +6 -0
  75. package/dist/engine/services/grouping/methods/data/get-child-row-instances.d.ts.map +1 -0
  76. package/dist/engine/services/grouping/methods/data/get-child-row-instances.js +21 -0
  77. package/dist/engine/services/grouping/methods/data/get-child-row-instances.js.map +1 -0
  78. package/dist/engine/services/grouping/methods/data/get-sticky-group-header.d.ts +5 -0
  79. package/dist/engine/services/grouping/methods/data/get-sticky-group-header.d.ts.map +1 -0
  80. package/dist/engine/services/grouping/methods/data/get-sticky-group-header.js +15 -0
  81. package/dist/engine/services/grouping/methods/data/get-sticky-group-header.js.map +1 -0
  82. package/dist/engine/services/grouping/methods/ui/build-sticky-group-content.d.ts +4 -0
  83. package/dist/engine/services/grouping/methods/ui/build-sticky-group-content.d.ts.map +1 -0
  84. package/dist/engine/services/grouping/methods/ui/build-sticky-group-content.js +19 -0
  85. package/dist/engine/services/grouping/methods/ui/build-sticky-group-content.js.map +1 -0
  86. package/dist/engine/services/grouping/methods/ui/column-dropped.d.ts.map +1 -1
  87. package/dist/engine/services/grouping/methods/ui/column-dropped.js +6 -3
  88. package/dist/engine/services/grouping/methods/ui/column-dropped.js.map +1 -1
  89. package/dist/engine/services/grouping/methods/ui/ensure-sticky-group-header.d.ts +4 -0
  90. package/dist/engine/services/grouping/methods/ui/ensure-sticky-group-header.d.ts.map +1 -0
  91. package/dist/engine/services/grouping/methods/ui/ensure-sticky-group-header.js +17 -0
  92. package/dist/engine/services/grouping/methods/ui/ensure-sticky-group-header.js.map +1 -0
  93. package/dist/engine/services/grouping/methods/ui/group-click.d.ts +4 -0
  94. package/dist/engine/services/grouping/methods/ui/group-click.d.ts.map +1 -0
  95. package/dist/engine/services/grouping/methods/ui/group-click.js +81 -0
  96. package/dist/engine/services/grouping/methods/ui/group-click.js.map +1 -0
  97. package/dist/engine/services/grouping/methods/ui/remove-grouped-column.d.ts.map +1 -1
  98. package/dist/engine/services/grouping/methods/ui/remove-grouped-column.js +15 -1
  99. package/dist/engine/services/grouping/methods/ui/remove-grouped-column.js.map +1 -1
  100. package/dist/engine/services/grouping/methods/ui/set-groupable.d.ts.map +1 -1
  101. package/dist/engine/services/grouping/methods/ui/set-groupable.js +7 -0
  102. package/dist/engine/services/grouping/methods/ui/set-groupable.js.map +1 -1
  103. package/dist/engine/services/grouping/methods/ui/update-sticky-group-header.d.ts +4 -0
  104. package/dist/engine/services/grouping/methods/ui/update-sticky-group-header.d.ts.map +1 -0
  105. package/dist/engine/services/grouping/methods/ui/update-sticky-group-header.js +31 -0
  106. package/dist/engine/services/grouping/methods/ui/update-sticky-group-header.js.map +1 -0
  107. package/dist/engine/services/layout/layout.d.ts.map +1 -1
  108. package/dist/engine/services/layout/layout.js +6 -2
  109. package/dist/engine/services/layout/layout.js.map +1 -1
  110. package/dist/engine/services/layout/methods/add-scroll-event-listeners.d.ts.map +1 -1
  111. package/dist/engine/services/layout/methods/add-scroll-event-listeners.js +4 -1
  112. package/dist/engine/services/layout/methods/add-scroll-event-listeners.js.map +1 -1
  113. package/dist/engine/services/layout/methods/update-column-widths.d.ts.map +1 -1
  114. package/dist/engine/services/layout/methods/update-column-widths.js +4 -0
  115. package/dist/engine/services/layout/methods/update-column-widths.js.map +1 -1
  116. package/dist/engine/services/renderer/parts/grid/grid.d.ts.map +1 -1
  117. package/dist/engine/services/renderer/parts/grid/grid.js +8 -1
  118. package/dist/engine/services/renderer/parts/grid/grid.js.map +1 -1
  119. package/dist/engine/services/renderer/parts/grouping/group-wrapper.d.ts +4 -0
  120. package/dist/engine/services/renderer/parts/grouping/group-wrapper.d.ts.map +1 -0
  121. package/dist/engine/services/renderer/parts/grouping/group-wrapper.js +35 -0
  122. package/dist/engine/services/renderer/parts/grouping/group-wrapper.js.map +1 -0
  123. package/dist/engine/services/renderer/parts/grouping/sticky-group-header.d.ts +3 -0
  124. package/dist/engine/services/renderer/parts/grouping/sticky-group-header.d.ts.map +1 -0
  125. package/dist/engine/services/renderer/parts/grouping/sticky-group-header.js +14 -0
  126. package/dist/engine/services/renderer/parts/grouping/sticky-group-header.js.map +1 -0
  127. package/dist/engine/services/renderer/parts/header/header-cells.d.ts.map +1 -1
  128. package/dist/engine/services/renderer/parts/header/header-cells.js +7 -1
  129. package/dist/engine/services/renderer/parts/header/header-cells.js.map +1 -1
  130. package/dist/engine/services/row/classes/row-instance.d.ts +6 -2
  131. package/dist/engine/services/row/classes/row-instance.d.ts.map +1 -1
  132. package/dist/engine/services/row/classes/row-instance.js +46 -2
  133. package/dist/engine/services/row/classes/row-instance.js.map +1 -1
  134. package/dist/engine/services/row/classes/row-pool.d.ts.map +1 -1
  135. package/dist/engine/services/row/classes/row-pool.js +50 -13
  136. package/dist/engine/services/row/classes/row-pool.js.map +1 -1
  137. package/dist/engine/services/row/index.d.ts +2 -0
  138. package/dist/engine/services/row/index.d.ts.map +1 -1
  139. package/dist/engine/services/row/index.js +6 -1
  140. package/dist/engine/services/row/index.js.map +1 -1
  141. package/dist/engine/services/row/methods/recompute-virtual-rows.d.ts.map +1 -1
  142. package/dist/engine/services/row/methods/recompute-virtual-rows.js +5 -1
  143. package/dist/engine/services/row/methods/recompute-virtual-rows.js.map +1 -1
  144. package/dist/engine/services/row/types/view-row.d.ts +1 -0
  145. package/dist/engine/services/row/types/view-row.d.ts.map +1 -1
  146. package/dist/engine/store/interfaces/grouping-state.d.ts +8 -0
  147. package/dist/engine/store/interfaces/grouping-state.d.ts.map +1 -1
  148. package/dist/engine/store/interfaces/resize-state.d.ts +1 -0
  149. package/dist/engine/store/interfaces/resize-state.d.ts.map +1 -1
  150. package/dist/engine/store/interfaces/view-state.d.ts +2 -0
  151. package/dist/engine/store/interfaces/view-state.d.ts.map +1 -1
  152. package/dist/engine/store/methods/create-initial-state.d.ts.map +1 -1
  153. package/dist/engine/store/methods/create-initial-state.js +9 -0
  154. package/dist/engine/store/methods/create-initial-state.js.map +1 -1
  155. package/dist/engine/store/types/change-reason.d.ts +1 -1
  156. package/dist/engine/store/types/change-reason.d.ts.map +1 -1
  157. package/dist/index.d.ts +1 -0
  158. package/dist/index.d.ts.map +1 -1
  159. package/dist/polygrid.css +56 -0
  160. package/package.json +1 -1
@@ -1,14 +1,21 @@
1
1
  import { PG_CSS_CLASS } from "../../../const/pg-css-class";
2
+ import { addDomListener } from "../../../core/methods";
2
3
  export class RowInstance {
3
- constructor(rowEl, store) {
4
+ constructor(rowEl, grid) {
4
5
  this.cellHandles = new Map();
5
6
  this.el = rowEl;
6
- this.store = store;
7
+ this.store = grid._store;
8
+ this.grid = grid;
7
9
  // Cache cell elements for fast updates
8
10
  this.cells = Array.from(rowEl.querySelectorAll(`.${PG_CSS_CLASS.cell}`));
9
11
  }
10
12
  update(rowData, rowIndex) {
11
13
  const state = this.store.getState();
14
+ // Always reset group-related classes
15
+ this.el.classList.remove(PG_CSS_CLASS.groupRow);
16
+ this.el.classList.remove("collapsed", "expanding", "collapsing");
17
+ // IMPORTANT: clear stale group reference
18
+ this.group = undefined;
12
19
  for (const cellEl of this.cells) {
13
20
  const colId = cellEl.getAttribute("col-id");
14
21
  const col = state.view.internalColumns.find((c) => c.id === colId);
@@ -71,5 +78,42 @@ export class RowInstance {
71
78
  hide() {
72
79
  this.el.style.display = "none";
73
80
  }
81
+ updateGroup(group, cell) {
82
+ const el = this.el;
83
+ // Reset first
84
+ el.classList.remove("collapsed", "expanding", "collapsing");
85
+ // Add group CSS class
86
+ el.classList.add(PG_CSS_CLASS.groupRow);
87
+ // Build group content
88
+ const div = document.createElement("div");
89
+ div.className = PG_CSS_CLASS.groupContent;
90
+ // Indentation (for future multi-level grouping)
91
+ div.style.paddingLeft = `${group.level * 16}px`;
92
+ // Expand/collapse icon
93
+ const iconContainer = document.createElement("span");
94
+ iconContainer.classList.add("icon");
95
+ const chevronRight = this.grid._services.icon.renderIcon(this.grid._services.icon, "chevronRight");
96
+ iconContainer.replaceChildren(chevronRight);
97
+ iconContainer.className = PG_CSS_CLASS.groupToggle;
98
+ if (group.collapsed) {
99
+ this.el.classList.add("collapsed");
100
+ }
101
+ else {
102
+ this.el.classList.remove("collapsed");
103
+ }
104
+ // Group label
105
+ const label = document.createElement("span");
106
+ label.className = PG_CSS_CLASS.groupLabel;
107
+ label.textContent = `${group.key} (${group.children?.length || group.rows?.length || 0})`;
108
+ div.appendChild(iconContainer);
109
+ div.appendChild(label);
110
+ cell.appendChild(div);
111
+ // Store reference for click handling
112
+ this.group = group;
113
+ // Attach click handler
114
+ addDomListener(this.grid._gridDom, cell, "click", (e) => {
115
+ this.grid._services.grouping.groupClick(this.grid, e, group, this.el);
116
+ });
117
+ }
74
118
  }
75
119
  //# sourceMappingURL=row-instance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"row-instance.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-instance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"row-instance.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-instance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"row-pool.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,OAAO;IAClB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAW;IAEvB,sBAAsB,UAAS;gBAG7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,MAAM;IAkBxB,OAAO,CAAC,UAAU;IA8BlB,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAoGlD,OAAO;IAQP,OAAO;CAGR"}
1
+ {"version":3,"file":"row-pool.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAKzE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,qBAAa,OAAO;IAClB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAW;IAEvB,sBAAsB,UAAS;gBAG7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,MAAM;IAoBxB,OAAO,CAAC,UAAU;IA8BlB,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IA8IlD,OAAO;IAQP,OAAO;CAGR"}
@@ -1,3 +1,5 @@
1
+ import { PG_CSS_CLASS } from "../../../const/pg-css-class";
2
+ import { cleanupElementDeep } from "../../../core/methods";
1
3
  import { renderRows } from "../../renderer/parts/body/row";
2
4
  import { renderLoading } from "../../renderer/parts/loading/loading";
3
5
  import { renderNoData } from "../../renderer/parts/no-data/no-data";
@@ -7,7 +9,9 @@ export class RowPool {
7
9
  this.rows = [];
8
10
  this.filterAnimationAllowed = false;
9
11
  const maxVisible = Math.ceil(viewportHeight / rowHeight);
10
- const poolSize = maxVisible + 5;
12
+ // in order to avoid group collapsing animation issues (the new rendered rows simple appear), we increase the pool size twice the original
13
+ // if we ever notice a performance issue, then simply modify it back to f. e. maxVisible + 5
14
+ const poolSize = 2 * maxVisible;
11
15
  this.poolSize = poolSize;
12
16
  this.gridDom = gridDom;
13
17
  this.columns = columns;
@@ -29,7 +33,7 @@ export class RowPool {
29
33
  const fragment = document.createDocumentFragment();
30
34
  for (let i = 0; i < this.poolSize; i++) {
31
35
  const rowEl = rowEls[i];
32
- const row = new RowInstance(rowEl, this.grid._store);
36
+ const row = new RowInstance(rowEl, this.grid);
33
37
  this.rows.push(row);
34
38
  fragment.appendChild(row.el);
35
39
  }
@@ -38,7 +42,19 @@ export class RowPool {
38
42
  update(v, data) {
39
43
  if (!data)
40
44
  return;
45
+ const animEnabled = this.grid._store.getState().view.enableAnimations;
46
+ const animOptions = this.grid._store.getState().view.animationOptions;
47
+ const animService = this.grid._services.animation;
41
48
  const reason = this.grid._store.getState().view.viewRowsChangeReason;
49
+ // Only these reasons should trigger row-level animations
50
+ const isSortAnim = animEnabled && animOptions.sort && reason === "sort";
51
+ const isFilterAnim = animEnabled &&
52
+ animOptions.filter &&
53
+ reason === "filter" &&
54
+ this.filterAnimationAllowed;
55
+ const isLoadAnim = animEnabled && reason === "load";
56
+ // Grouping/expand/collapse should NOT reuse sort/filter animations
57
+ const isGroupAnim = animEnabled && animOptions.group;
42
58
  const total = v.totalRowCount;
43
59
  // show loading, if data is async
44
60
  if (this.grid._store.getState().view.externalLoading) {
@@ -68,8 +84,6 @@ export class RowPool {
68
84
  }
69
85
  // Normal virtualization update
70
86
  const visibleCount = v.renderEndIndex - v.renderStartIndex;
71
- const animEnabled = this.grid._store.getState().view.enableAnimations;
72
- const animService = this.grid._services.animation;
73
87
  for (let i = 0; i < this.poolSize; i++) {
74
88
  const rowIndex = v.renderStartIndex + i;
75
89
  if (i >= visibleCount || rowIndex >= v.totalRowCount) {
@@ -80,15 +94,16 @@ export class RowPool {
80
94
  const rowInstance = this.rows[i];
81
95
  const newY = rowIndex * v.rowHeight;
82
96
  rowInstance.currentIndex = rowIndex;
97
+ cleanupElementDeep(rowInstance.el);
98
+ // Always reset transition
99
+ rowInstance.el.style.removeProperty("transition");
100
+ rowInstance.el.style.removeProperty("opacity");
83
101
  // ungrouped case
84
102
  if (viewRow.kind === "data") {
85
103
  const rowData = viewRow.row;
86
104
  rowInstance.update(rowData, rowIndex);
87
- // Always reset transition
88
- rowInstance.el.style.removeProperty("transition");
89
- rowInstance.el.style.removeProperty("opacity");
90
105
  if (animEnabled) {
91
- if (reason === "sort" || reason === "load") {
106
+ if (isSortAnim || isLoadAnim) {
92
107
  const delta = animService.rowDeltas.get(rowData.index);
93
108
  if (delta !== undefined) {
94
109
  // Invert phase: place row at newY + delta
@@ -99,15 +114,16 @@ export class RowPool {
99
114
  rowInstance.setOffset(newY);
100
115
  }
101
116
  }
102
- if (reason === "filter" && this.filterAnimationAllowed) {
117
+ else if (isFilterAnim) {
103
118
  const el = rowInstance.el;
104
119
  // Inverted start state
105
120
  el.style.opacity = "0";
106
121
  el.style.transform = `translateY(${newY + 8}px)`;
107
122
  }
108
- // if filter is over, normal behavior
109
- if (!this.filterAnimationAllowed && reason === "filter")
123
+ else {
124
+ // For group/expand/collapse/scroll normal placement
110
125
  rowInstance.setOffset(newY);
126
+ }
111
127
  }
112
128
  else {
113
129
  // Animations disabled → normal behavior
@@ -116,12 +132,33 @@ export class RowPool {
116
132
  rowInstance.show();
117
133
  }
118
134
  else {
119
- // TODO: group row rendering will go here
120
- // For now, just position & show (or hide) as needed
135
+ // group row
136
+ const el = rowInstance.el;
137
+ // clear previous cell content so it doesn't show stale data
138
+ const cells = el.querySelectorAll(`.${PG_CSS_CLASS.cell}`);
139
+ for (const cell of cells) {
140
+ cell.innerHTML = "";
141
+ }
142
+ rowInstance.updateGroup(viewRow.group, cells.item(0));
121
143
  rowInstance.setOffset(newY);
122
144
  rowInstance.show();
123
145
  }
124
146
  }
147
+ // --- group expand ---
148
+ if (reason === "expand" &&
149
+ !this.grid._store.getState().view.groupingState.expandFinished) {
150
+ if (isGroupAnim) {
151
+ this.grid._services.animation.expandAnimation(this.grid, this.rows, data);
152
+ }
153
+ else {
154
+ this.grid._store.update((draft) => {
155
+ draft.view.groupingState.expandFinished = true;
156
+ draft.view.groupingState.expandedGroupPath = "";
157
+ draft.view.groupingState.totalShift = 0;
158
+ });
159
+ }
160
+ }
161
+ // --- collapse animation happens in the group click method ---
125
162
  }
126
163
  destroy() {
127
164
  for (const row of this.rows) {
@@ -1 +1 @@
1
- {"version":3,"file":"row-pool.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"row-pool.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-pool.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  export * from "./row";
2
2
  import { createRowPool } from "./methods/create-row-pool";
3
3
  import { updateVirtualRows } from "./methods/update-virtual-rows";
4
+ import { recomputeVirtualRows } from "./methods/recompute-virtual-rows";
4
5
  export declare const methods: {
5
6
  createRowPool: typeof createRowPool;
6
7
  updateVirtualRows: typeof updateVirtualRows;
8
+ recomputeVirtualRows: typeof recomputeVirtualRows;
7
9
  };
8
10
  export type RowMethods = typeof methods;
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/row/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,eAAO,MAAM,OAAO;;;CAAuC,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/row/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC"}
@@ -1,5 +1,10 @@
1
1
  export * from "./row";
2
2
  import { createRowPool } from "./methods/create-row-pool";
3
3
  import { updateVirtualRows } from "./methods/update-virtual-rows";
4
- export const methods = { createRowPool, updateVirtualRows };
4
+ import { recomputeVirtualRows } from "./methods/recompute-virtual-rows";
5
+ export const methods = {
6
+ createRowPool,
7
+ updateVirtualRows,
8
+ recomputeVirtualRows,
9
+ };
5
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engine/services/row/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/engine/services/row/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AAEtB,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,aAAa;IACb,iBAAiB;IACjB,oBAAoB;CACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"recompute-virtual-rows.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/recompute-virtual-rows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAEhF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,gBAAgB,QAsCvD"}
1
+ {"version":3,"file":"recompute-virtual-rows.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/recompute-virtual-rows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAEhF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,gBAAgB,QA0CvD"}
@@ -1,6 +1,10 @@
1
1
  export function recomputeVirtualRows(v) {
2
2
  const { scrollTop, rowHeight, viewportHeight, totalRowCount } = v;
3
- const overscan = 3;
3
+ const maxVisible = Math.ceil(viewportHeight / rowHeight);
4
+ // in order to avoid group collapsing animation issues (the new rendered rows simple appear),
5
+ // we increase the overscan to the max visible row count
6
+ // if we ever notice a performance issue, then simply modify it back to f. e. 3
7
+ const overscan = maxVisible;
4
8
  const totalHeight = totalRowCount * rowHeight;
5
9
  // ---------------------------------------------------------
6
10
  // 1) If everything fits into the viewport → render all rows
@@ -1 +1 @@
1
- {"version":3,"file":"recompute-virtual-rows.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/recompute-virtual-rows.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,CAAmB;IACtD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;IAE9C,4DAA4D;IAC5D,4DAA4D;IAC5D,4DAA4D;IAC5D,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;QAClC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,cAAc,GAAG,aAAa,CAAC;QACjC,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,oCAAoC;IACpC,4DAA4D;IAC5D,MAAM,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAExE,4DAA4D;IAC5D,wBAAwB;IACxB,4DAA4D;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAE/D,4DAA4D;IAC5D,cAAc;IACd,4DAA4D;IAC5D,IAAI,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,GAAG,CAAC,CAAC;IAEzB,IAAI,GAAG,GAAG,SAAS,GAAG,gBAAgB,GAAG,QAAQ,CAAC;IAClD,IAAI,GAAG,GAAG,aAAa;QAAE,GAAG,GAAG,aAAa,CAAC;IAE7C,CAAC,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"recompute-virtual-rows.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/recompute-virtual-rows.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,CAAmB;IACtD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACzD,6FAA6F;IAC7F,wDAAwD;IACxD,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,UAAU,CAAC;IAC5B,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;IAE9C,4DAA4D;IAC5D,4DAA4D;IAC5D,4DAA4D;IAC5D,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;QAClC,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,cAAc,GAAG,aAAa,CAAC;QACjC,OAAO;IACT,CAAC;IAED,4DAA4D;IAC5D,oCAAoC;IACpC,4DAA4D;IAC5D,MAAM,YAAY,GAAG,WAAW,GAAG,cAAc,CAAC;IAClD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAExE,4DAA4D;IAC5D,wBAAwB;IACxB,4DAA4D;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAE/D,4DAA4D;IAC5D,cAAc;IACd,4DAA4D;IAC5D,IAAI,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,GAAG,CAAC,CAAC;IAEzB,IAAI,GAAG,GAAG,SAAS,GAAG,gBAAgB,GAAG,QAAQ,CAAC;IAClD,IAAI,GAAG,GAAG,aAAa;QAAE,GAAG,GAAG,aAAa,CAAC;IAE7C,CAAC,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAC3B,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC;AACzB,CAAC"}
@@ -9,5 +9,6 @@ export type ViewRow = {
9
9
  kind: "data";
10
10
  row: PolyGridRow;
11
11
  rowIndex: number;
12
+ path: string;
12
13
  };
13
14
  //# sourceMappingURL=view-row.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-row.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/types/view-row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC"}
1
+ {"version":3,"file":"view-row.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/types/view-row.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { Group } from "../../services/grouping/interfaces/group";
2
2
  import { GroupedColumn } from "../../services/grouping/interfaces/grouped-column";
3
3
  import { PolyGridGroupingAggregate } from "../../services/grouping/interfaces/grouping-aggregate";
4
+ import { GroupingDisplayMode } from "../../services/grouping/types/grouping-display-mode";
4
5
  export interface GroupingState {
5
6
  hoveredInsertIndex: number | null;
6
7
  groupedColumns: GroupedColumn[];
@@ -10,5 +11,12 @@ export interface GroupingState {
10
11
  hasChipCrossedMidpoint: boolean;
11
12
  aggregates: PolyGridGroupingAggregate[];
12
13
  groups: Group[];
14
+ displayMode: GroupingDisplayMode;
15
+ stickyHeader: boolean;
16
+ stickyCurrentGroupKey: string | null;
17
+ expandedGroupPath: string;
18
+ rowsBelowIndexes: number[];
19
+ totalShift: number;
20
+ expandFinished: boolean;
13
21
  }
14
22
  //# sourceMappingURL=grouping-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grouping-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/grouping-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAElG,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB"}
1
+ {"version":3,"file":"grouping-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/grouping-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,mDAAmD,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAE1F,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,sBAAsB,EAAE,OAAO,CAAC;IAChC,UAAU,EAAE,yBAAyB,EAAE,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,mBAAmB,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB"}
@@ -5,5 +5,6 @@ export interface ResizeState {
5
5
  startWidth: number | null;
6
6
  neighborColumnId: string | null;
7
7
  neighborStartWidth: number | null;
8
+ suppressNextClick: boolean;
8
9
  }
9
10
  //# sourceMappingURL=resize-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resize-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/resize-state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC"}
1
+ {"version":3,"file":"resize-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/resize-state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;CAC5B"}
@@ -1,3 +1,4 @@
1
+ import { PolyGridAnimationOptions } from "../../services/animation/interfaces/animation-options";
1
2
  import type { PolyGridColumn } from "../../services/column/interfaces/column";
2
3
  import { ColumnWidthSpec } from "../../services/column/interfaces/column-width-spec";
3
4
  import { InternalColumn } from "../../services/column/interfaces/internal-column";
@@ -48,6 +49,7 @@ export interface PolyGridViewState {
48
49
  columnConstraints: ColumnConstraints;
49
50
  hasUserResized: boolean;
50
51
  enableAnimations: boolean;
52
+ animationOptions: PolyGridAnimationOptions;
51
53
  filterable: PolyGridFilterType;
52
54
  sortSettings: PolyGridSortSettings;
53
55
  userHasSorted: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"view-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/view-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/view-state.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-initial-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,wBAAgB,kBAAkB,IAAI,aAAa,CAiGlD"}
1
+ {"version":3,"file":"create-initial-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,wBAAgB,kBAAkB,IAAI,aAAa,CA0GlD"}
@@ -28,6 +28,7 @@ export function createInitialState() {
28
28
  columnConstraints: { minWidth: 30, maxWidth: null },
29
29
  hasUserResized: false,
30
30
  enableAnimations: false,
31
+ animationOptions: { sort: false, filter: false, group: true },
31
32
  filterable: false,
32
33
  sortSettings: {},
33
34
  userHasSorted: false,
@@ -61,6 +62,13 @@ export function createInitialState() {
61
62
  hasChipCrossedMidpoint: false,
62
63
  aggregates: [],
63
64
  groups: [],
65
+ displayMode: "single-group-column",
66
+ stickyHeader: false,
67
+ stickyCurrentGroupKey: null,
68
+ expandedGroupPath: "",
69
+ rowsBelowIndexes: [],
70
+ totalShift: 0,
71
+ expandFinished: false,
64
72
  },
65
73
  },
66
74
  ui: {
@@ -71,6 +79,7 @@ export function createInitialState() {
71
79
  startWidth: null,
72
80
  neighborColumnId: null,
73
81
  neighborStartWidth: null,
82
+ suppressNextClick: false,
74
83
  },
75
84
  resizeRaf: {
76
85
  pendingFrame: false,
@@ -1 +1 @@
1
- {"version":3,"file":"create-initial-state.js","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-initial-state.js","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export type ViewRowsChangeReason = "sort" | "filter" | "load" | null;
1
+ export type ViewRowsChangeReason = "sort" | "filter" | "load" | "expand" | "collapse" | "group" | null;
2
2
  //# sourceMappingURL=change-reason.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-reason.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/types/change-reason.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"change-reason.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/types/change-reason.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAC5B,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,UAAU,GACV,OAAO,GACP,IAAI,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,7 @@ export type { PolyGridSortSettings } from "./engine/services/sort/interfaces/gri
8
8
  export type { PolyGridFilterEditor } from "./engine/services/filter/interfaces/custom-filter-editor";
9
9
  export type { PolyGridGroupingAggregate } from "./engine/services/grouping/interfaces/grouping-aggregate";
10
10
  export type { PolyGridGroupingSettings } from "./engine/services/grouping/interfaces/grouping-settings";
11
+ export type { PolyGridAnimationOptions } from "./engine/services/animation/interfaces/animation-options";
11
12
  export type { PolyGridResizeMode } from "./engine/store/types/resize-mode";
12
13
  export type { PolyGridFilterType } from "./engine/services/filter/types/filter-type";
13
14
  export type { PolyGridSortMode } from "./engine/services/sort/types/sort-mode";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,YAAY,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,4DAA4D,CAAC;AAC7G,YAAY,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AACjH,YAAY,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AACjH,YAAY,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AAC5G,YAAY,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AACpG,YAAY,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AACrG,YAAY,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AAC1G,YAAY,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAC;AAExG,YAAY,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AACrF,YAAY,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,yDAAyD,CAAC;AAC7G,YAAY,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,YAAY,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,4DAA4D,CAAC;AAC7G,YAAY,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AACjH,YAAY,EAAE,4BAA4B,EAAE,MAAM,8DAA8D,CAAC;AACjH,YAAY,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AAC5G,YAAY,EAAE,oBAAoB,EAAE,MAAM,yDAAyD,CAAC;AACpG,YAAY,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AACrG,YAAY,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AAC1G,YAAY,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAC;AACxG,YAAY,EAAE,wBAAwB,EAAE,MAAM,0DAA0D,CAAC;AAEzG,YAAY,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AACrF,YAAY,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,YAAY,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,yDAAyD,CAAC;AAC7G,YAAY,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC"}
package/dist/polygrid.css CHANGED
@@ -122,6 +122,7 @@
122
122
  flex-direction: column;
123
123
  width: 100%;
124
124
  height: 100%;
125
+ position: relative;
125
126
  }
126
127
 
127
128
  .pg-h-scroll {
@@ -805,3 +806,58 @@
805
806
  opacity: 0.4;
806
807
  border: 1px dashed black;
807
808
  }
809
+
810
+ .pg-group-row {
811
+ background: #f5f5f5;
812
+ font-weight: bold;
813
+ cursor: pointer;
814
+ }
815
+
816
+ .pg-group-content {
817
+ display: flex;
818
+ align-items: center;
819
+ height: 100%;
820
+ }
821
+
822
+ .pg-group-toggle {
823
+ margin-right: 6px;
824
+ }
825
+
826
+ .pg-group-toggle svg,
827
+ .grouped-col svg {
828
+ width: 18px;
829
+ height: 18px;
830
+ }
831
+
832
+ .pg-group-label {
833
+ font-size: 12px;
834
+ }
835
+
836
+ .pg-group-toggle {
837
+ transition: transform 150ms ease;
838
+ }
839
+
840
+ .pg-group-row:not(.collapsed) .pg-group-toggle {
841
+ transform: rotate(90deg);
842
+ }
843
+
844
+ .pg-sticky-group-header {
845
+ position: absolute;
846
+ top: 0; /* will be set to the height of the header */
847
+ left: 0;
848
+ right: 0;
849
+ z-index: 10;
850
+ background: #f5f5f5;
851
+ font-weight: bold;
852
+ cursor: pointer;
853
+ border-top: 1px solid #d0d0d0;
854
+ overflow-x: clip;
855
+ }
856
+
857
+ .pg-sticky-inner-scroll {
858
+ display: block;
859
+ overflow: hidden;
860
+ width: 100%;
861
+ height: 100%;
862
+ position: absolute;
863
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polygrid/core",
3
- "version": "1.0.496",
3
+ "version": "1.0.497",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",