@polygrid/core 1.0.428 → 1.0.430

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 (149) hide show
  1. package/dist/api/hide-column-animated.d.ts.map +1 -1
  2. package/dist/api/hide-column-animated.js +16 -1
  3. package/dist/api/hide-column-animated.js.map +1 -1
  4. package/dist/api/index.d.ts +2 -0
  5. package/dist/api/index.d.ts.map +1 -1
  6. package/dist/api/index.js +2 -0
  7. package/dist/api/index.js.map +1 -1
  8. package/dist/api/set-data.d.ts.map +1 -1
  9. package/dist/api/set-data.js +3 -0
  10. package/dist/api/set-data.js.map +1 -1
  11. package/dist/api/set-filterable.d.ts +4 -0
  12. package/dist/api/set-filterable.d.ts.map +1 -0
  13. package/dist/api/set-filterable.js +6 -0
  14. package/dist/api/set-filterable.js.map +1 -0
  15. package/dist/api/show-column-animated.d.ts.map +1 -1
  16. package/dist/api/show-column-animated.js +16 -1
  17. package/dist/api/show-column-animated.js.map +1 -1
  18. package/dist/engine/const/pg-css-class.d.ts +4 -0
  19. package/dist/engine/const/pg-css-class.d.ts.map +1 -1
  20. package/dist/engine/const/pg-css-class.js +4 -0
  21. package/dist/engine/const/pg-css-class.js.map +1 -1
  22. package/dist/engine/core/grid-dom.d.ts +2 -0
  23. package/dist/engine/core/grid-dom.d.ts.map +1 -1
  24. package/dist/engine/core/grid-dom.js.map +1 -1
  25. package/dist/engine/core/grid-runtime.d.ts +2 -0
  26. package/dist/engine/core/grid-runtime.d.ts.map +1 -1
  27. package/dist/engine/core/grid-runtime.js +3 -0
  28. package/dist/engine/core/grid-runtime.js.map +1 -1
  29. package/dist/engine/core/grid.d.ts.map +1 -1
  30. package/dist/engine/core/grid.js +1 -0
  31. package/dist/engine/core/grid.js.map +1 -1
  32. package/dist/engine/core/interfaces/grid-options.d.ts +2 -0
  33. package/dist/engine/core/interfaces/grid-options.d.ts.map +1 -1
  34. package/dist/engine/core/methods/consume-options.d.ts.map +1 -1
  35. package/dist/engine/core/methods/consume-options.js +10 -0
  36. package/dist/engine/core/methods/consume-options.js.map +1 -1
  37. package/dist/engine/rx-lite/operators/take.d.ts +3 -0
  38. package/dist/engine/rx-lite/operators/take.d.ts.map +1 -0
  39. package/dist/engine/rx-lite/operators/take.js +18 -0
  40. package/dist/engine/rx-lite/operators/take.js.map +1 -0
  41. package/dist/engine/services/filter/filter.d.ts +17 -0
  42. package/dist/engine/services/filter/filter.d.ts.map +1 -0
  43. package/dist/engine/services/filter/filter.js +18 -0
  44. package/dist/engine/services/filter/filter.js.map +1 -0
  45. package/dist/engine/services/filter/index.d.ts +2 -0
  46. package/dist/engine/services/filter/index.d.ts.map +1 -0
  47. package/dist/engine/services/filter/index.js +2 -0
  48. package/dist/engine/services/filter/index.js.map +1 -0
  49. package/dist/engine/services/filter/methods/index.d.ts +2 -0
  50. package/dist/engine/services/filter/methods/index.d.ts.map +1 -0
  51. package/dist/engine/services/filter/methods/index.js +2 -0
  52. package/dist/engine/services/filter/methods/index.js.map +1 -0
  53. package/dist/engine/services/filter/methods/set-filterable.d.ts +5 -0
  54. package/dist/engine/services/filter/methods/set-filterable.d.ts.map +1 -0
  55. package/dist/engine/services/filter/methods/set-filterable.js +34 -0
  56. package/dist/engine/services/filter/methods/set-filterable.js.map +1 -0
  57. package/dist/engine/services/filter/types/filter-type.d.ts +2 -0
  58. package/dist/engine/services/filter/types/filter-type.d.ts.map +1 -0
  59. package/dist/engine/services/filter/types/filter-type.js +2 -0
  60. package/dist/engine/services/filter/types/filter-type.js.map +1 -0
  61. package/dist/engine/services/layout/methods/add-scroll-event-listeners.d.ts.map +1 -1
  62. package/dist/engine/services/layout/methods/add-scroll-event-listeners.js +11 -0
  63. package/dist/engine/services/layout/methods/add-scroll-event-listeners.js.map +1 -1
  64. package/dist/engine/services/layout/methods/adjust-viewport.d.ts.map +1 -1
  65. package/dist/engine/services/layout/methods/adjust-viewport.js +3 -2
  66. package/dist/engine/services/layout/methods/adjust-viewport.js.map +1 -1
  67. package/dist/engine/services/layout/methods/set-up-resize-observer.d.ts.map +1 -1
  68. package/dist/engine/services/layout/methods/set-up-resize-observer.js +7 -1
  69. package/dist/engine/services/layout/methods/set-up-resize-observer.js.map +1 -1
  70. package/dist/engine/services/layout/methods/update-column-widths.d.ts.map +1 -1
  71. package/dist/engine/services/layout/methods/update-column-widths.js +6 -1
  72. package/dist/engine/services/layout/methods/update-column-widths.js.map +1 -1
  73. package/dist/engine/services/loading/methods/toggle-loading.d.ts.map +1 -1
  74. package/dist/engine/services/loading/methods/toggle-loading.js +6 -1
  75. package/dist/engine/services/loading/methods/toggle-loading.js.map +1 -1
  76. package/dist/engine/services/renderer/methods/re-render-cells.d.ts.map +1 -1
  77. package/dist/engine/services/renderer/methods/re-render-cells.js +19 -14
  78. package/dist/engine/services/renderer/methods/re-render-cells.js.map +1 -1
  79. package/dist/engine/services/renderer/parts/body/body.d.ts.map +1 -1
  80. package/dist/engine/services/renderer/parts/body/body.js +0 -20
  81. package/dist/engine/services/renderer/parts/body/body.js.map +1 -1
  82. package/dist/engine/services/renderer/parts/filter-row/filter-cells.d.ts +5 -0
  83. package/dist/engine/services/renderer/parts/filter-row/filter-cells.d.ts.map +1 -0
  84. package/dist/engine/services/renderer/parts/filter-row/filter-cells.js +19 -0
  85. package/dist/engine/services/renderer/parts/filter-row/filter-cells.js.map +1 -0
  86. package/dist/engine/services/renderer/parts/filter-row/filter-row.d.ts +5 -0
  87. package/dist/engine/services/renderer/parts/filter-row/filter-row.d.ts.map +1 -0
  88. package/dist/engine/services/renderer/parts/filter-row/filter-row.js +16 -0
  89. package/dist/engine/services/renderer/parts/filter-row/filter-row.js.map +1 -0
  90. package/dist/engine/services/renderer/parts/grid/grid.js +1 -1
  91. package/dist/engine/services/renderer/parts/grid/grid.js.map +1 -1
  92. package/dist/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-top.d.ts +2 -1
  93. package/dist/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-top.d.ts.map +1 -1
  94. package/dist/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-top.js +6 -1
  95. package/dist/engine/services/renderer/parts/scrollbars/v-scrollbar-spacer-top.js.map +1 -1
  96. package/dist/engine/services/renderer/parts/scrollbars/v-scrollbar.d.ts +2 -1
  97. package/dist/engine/services/renderer/parts/scrollbars/v-scrollbar.d.ts.map +1 -1
  98. package/dist/engine/services/renderer/parts/scrollbars/v-scrollbar.js +2 -2
  99. package/dist/engine/services/renderer/parts/scrollbars/v-scrollbar.js.map +1 -1
  100. package/dist/engine/services/renderer/parts/viewport/viewport.d.ts.map +1 -1
  101. package/dist/engine/services/renderer/parts/viewport/viewport.js +7 -0
  102. package/dist/engine/services/renderer/parts/viewport/viewport.js.map +1 -1
  103. package/dist/engine/services/row/classes/row-instance.d.ts +13 -0
  104. package/dist/engine/services/row/classes/row-instance.d.ts.map +1 -0
  105. package/dist/engine/services/row/classes/row-instance.js +30 -0
  106. package/dist/engine/services/row/classes/row-instance.js.map +1 -0
  107. package/dist/engine/services/row/classes/row-pool.d.ts +18 -0
  108. package/dist/engine/services/row/classes/row-pool.d.ts.map +1 -0
  109. package/dist/engine/services/row/classes/row-pool.js +78 -0
  110. package/dist/engine/services/row/classes/row-pool.js.map +1 -0
  111. package/dist/engine/services/row/methods/create-row-pool.d.ts +4 -0
  112. package/dist/engine/services/row/methods/create-row-pool.d.ts.map +1 -0
  113. package/dist/engine/services/row/methods/create-row-pool.js +14 -0
  114. package/dist/engine/services/row/methods/create-row-pool.js.map +1 -0
  115. package/dist/engine/services/row/methods/index.d.ts +2 -0
  116. package/dist/engine/services/row/methods/index.d.ts.map +1 -1
  117. package/dist/engine/services/row/methods/index.js +2 -1
  118. package/dist/engine/services/row/methods/index.js.map +1 -1
  119. package/dist/engine/services/row/methods/recompute-virtual-rows.d.ts +3 -0
  120. package/dist/engine/services/row/methods/recompute-virtual-rows.d.ts.map +1 -0
  121. package/dist/engine/services/row/methods/recompute-virtual-rows.js +17 -0
  122. package/dist/engine/services/row/methods/recompute-virtual-rows.js.map +1 -0
  123. package/dist/engine/services/row/methods/update-virtual-rows.d.ts +4 -0
  124. package/dist/engine/services/row/methods/update-virtual-rows.d.ts.map +1 -0
  125. package/dist/engine/services/row/methods/update-virtual-rows.js +12 -0
  126. package/dist/engine/services/row/methods/update-virtual-rows.js.map +1 -0
  127. package/dist/engine/services/row/row.d.ts +6 -0
  128. package/dist/engine/services/row/row.d.ts.map +1 -1
  129. package/dist/engine/services/row/row.js +11 -0
  130. package/dist/engine/services/row/row.js.map +1 -1
  131. package/dist/engine/services/services.d.ts +2 -0
  132. package/dist/engine/services/services.d.ts.map +1 -1
  133. package/dist/engine/services/services.js +2 -0
  134. package/dist/engine/services/services.js.map +1 -1
  135. package/dist/engine/store/interfaces/ui-state.d.ts +2 -0
  136. package/dist/engine/store/interfaces/ui-state.d.ts.map +1 -1
  137. package/dist/engine/store/interfaces/view-state.d.ts +2 -0
  138. package/dist/engine/store/interfaces/view-state.d.ts.map +1 -1
  139. package/dist/engine/store/interfaces/virtual-rows-state.d.ts +9 -0
  140. package/dist/engine/store/interfaces/virtual-rows-state.d.ts.map +1 -0
  141. package/dist/engine/store/interfaces/virtual-rows-state.js +2 -0
  142. package/dist/engine/store/interfaces/virtual-rows-state.js.map +1 -0
  143. package/dist/engine/store/methods/create-initial-state.d.ts.map +1 -1
  144. package/dist/engine/store/methods/create-initial-state.js +9 -0
  145. package/dist/engine/store/methods/create-initial-state.js.map +1 -1
  146. package/dist/index.d.ts +1 -0
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/polygrid.css +48 -1
  149. package/package.json +1 -1
@@ -0,0 +1,30 @@
1
+ import { PG_CSS_CLASS } from "../../../const/pg-css-class";
2
+ export class RowInstance {
3
+ constructor(rowEl, store) {
4
+ this.el = rowEl;
5
+ this.store = store;
6
+ // Cache cell elements for fast updates
7
+ this.cells = Array.from(rowEl.querySelectorAll(`.${PG_CSS_CLASS.cell}`));
8
+ }
9
+ update(rowData, rowIndex) {
10
+ // Update each cell's textContent
11
+ for (const cellEl of this.cells) {
12
+ const colId = cellEl.getAttribute("col-id");
13
+ const col = this.store
14
+ .getState()
15
+ .view.internalColumns.find((col) => col.id === colId);
16
+ const value = rowData.data[col.field];
17
+ cellEl.textContent = value != null ? String(value) : "";
18
+ }
19
+ }
20
+ setOffset(y) {
21
+ this.el.style.transform = `translateY(${y}px)`;
22
+ }
23
+ show() {
24
+ this.el.style.display = "";
25
+ }
26
+ hide() {
27
+ this.el.style.display = "none";
28
+ }
29
+ }
30
+ //# sourceMappingURL=row-instance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-instance.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAI3D,MAAM,OAAO,WAAW;IAKtB,YAAY,KAAqB,EAAE,KAAoB;QACrD,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,uCAAuC;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,OAAoB,EAAE,QAAgB;QAC3C,iCAAiC;QACjC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK;iBACnB,QAAQ,EAAE;iBACV,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAE,CAAC;YACzD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,WAAW,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,SAAS,CAAC,CAAS;QACjB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC;IACjD,CAAC;IAED,IAAI;QACF,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import { PolyGrid } from "../../../core/grid";
2
+ import { GridDOM } from "../../../core/grid-dom";
3
+ import { VirtualRowsState } from "../../../store/interfaces/virtual-rows-state";
4
+ import { InternalColumn } from "../../column/interfaces/internal-column";
5
+ import { PolyGridRow } from "../interfaces/row";
6
+ export declare class RowPool {
7
+ private rows;
8
+ private poolSize;
9
+ private gridDom;
10
+ private columns;
11
+ private rowHeight;
12
+ private grid;
13
+ constructor(gridDom: GridDOM, columns: InternalColumn[], rowHeight: number, grid: PolyGrid, viewportHeight: number);
14
+ private createPool;
15
+ update(v: VirtualRowsState, data: PolyGridRow[]): void;
16
+ destroy(): void;
17
+ }
18
+ //# sourceMappingURL=row-pool.d.ts.map
@@ -0,0 +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;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,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;gBAGrB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,QAAQ,EACd,cAAc,EAAE,MAAM;IAcxB,OAAO,CAAC,UAAU;IA8BlB,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE;IA4C/C,OAAO;CAOR"}
@@ -0,0 +1,78 @@
1
+ import { renderRows } from "../../renderer/parts/body/row";
2
+ import { renderNoData } from "../../renderer/parts/no-data/no-data";
3
+ import { RowInstance } from "./row-instance";
4
+ export class RowPool {
5
+ constructor(gridDom, columns, rowHeight, grid, viewportHeight) {
6
+ this.rows = [];
7
+ const maxVisible = Math.ceil(viewportHeight / rowHeight);
8
+ const poolSize = maxVisible + 5;
9
+ this.poolSize = poolSize;
10
+ this.gridDom = gridDom;
11
+ this.columns = columns;
12
+ this.rowHeight = rowHeight;
13
+ this.grid = grid;
14
+ this.createPool();
15
+ }
16
+ createPool() {
17
+ // Create dummy rows for initial rendering
18
+ const dummyRows = Array.from({ length: this.poolSize }, (_, i) => ({
19
+ index: i,
20
+ data: {}, // empty data, will be updated later
21
+ }));
22
+ // Use your existing renderRows() to create row DOM + cells
23
+ const rowEls = renderRows(dummyRows, this.columns, this.rowHeight, this.grid);
24
+ const fragment = document.createDocumentFragment();
25
+ for (let i = 0; i < this.poolSize; i++) {
26
+ const rowEl = rowEls[i];
27
+ const row = new RowInstance(rowEl, this.grid._store);
28
+ this.rows.push(row);
29
+ fragment.appendChild(row.el);
30
+ }
31
+ this.gridDom.body.appendChild(fragment);
32
+ }
33
+ update(v, data) {
34
+ const total = v.totalRowCount;
35
+ // CASE 1: No data
36
+ if (total === 0) {
37
+ // Hide all pool rows
38
+ for (const row of this.rows) {
39
+ row.hide();
40
+ }
41
+ // If no-data element is not shown yet, show it
42
+ if (!this.grid._runtime.noDataContainer) {
43
+ renderNoData(this.gridDom.body, this.grid);
44
+ }
45
+ return;
46
+ }
47
+ // CASE 2: Data exists
48
+ // Remove no-data element if present
49
+ if (this.grid._runtime.noDataContainer) {
50
+ this.grid._runtime.noDataContainer.remove();
51
+ this.grid._runtime.noDataContainer = null;
52
+ // Destroy dynamic template if any
53
+ this.grid._runtime.noDataHandle?.destroy();
54
+ this.grid._runtime.noDataHandle = null;
55
+ }
56
+ // Normal virtualization update
57
+ const visibleCount = v.renderEndIndex - v.renderStartIndex;
58
+ for (let i = 0; i < this.poolSize; i++) {
59
+ const rowIndex = v.renderStartIndex + i;
60
+ if (i >= visibleCount || rowIndex >= v.totalRowCount) {
61
+ this.rows[i].hide();
62
+ continue;
63
+ }
64
+ const rowData = data[rowIndex];
65
+ this.rows[i].update(rowData, rowIndex);
66
+ this.rows[i].setOffset(rowIndex * v.rowHeight);
67
+ this.rows[i].show();
68
+ }
69
+ }
70
+ destroy() {
71
+ for (const row of this.rows) {
72
+ // optional: remove DOM nodes
73
+ row.el.remove();
74
+ }
75
+ this.rows.length = 0;
76
+ }
77
+ }
78
+ //# sourceMappingURL=row-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-pool.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ObservableLike } from "../../../rx-lite/interfaces/observable-like";
2
+ import { RowService } from "../row";
3
+ export declare function createRowPool(rowService: RowService, destroy$: ObservableLike<void>): void;
4
+ //# sourceMappingURL=create-row-pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-row-pool.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/create-row-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAG7E,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAiB/B"}
@@ -0,0 +1,14 @@
1
+ import { takeUntil } from "../../../rx-lite/operators/takeuntil";
2
+ import { RowPool } from "../classes/row-pool";
3
+ export function createRowPool(rowService, destroy$) {
4
+ rowService.createRowPool$
5
+ .pipe(takeUntil(destroy$))
6
+ .subscribe((viewportHeight) => {
7
+ const state = rowService.store.getState();
8
+ const rowHeight = state.view.rowHeight;
9
+ const columns = state.view.internalColumns;
10
+ const rowPool = new RowPool(rowService.gridDom, columns, rowHeight, rowService.grid, viewportHeight);
11
+ rowService.grid._runtime.rowPool = rowPool;
12
+ }, "CREATE-ROW-POOL");
13
+ }
14
+ //# sourceMappingURL=create-row-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-row-pool.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/create-row-pool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,MAAM,UAAU,aAAa,CAC3B,UAAsB,EACtB,QAA8B;IAE9B,UAAU,CAAC,cAAc;SACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACzB,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,UAAU,CAAC,OAAO,EAClB,OAAO,EACP,SAAS,EACT,UAAU,CAAC,IAAI,EACf,cAAc,CACf,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7C,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAC1B,CAAC"}
@@ -1 +1,3 @@
1
+ export * from "./create-row-pool";
2
+ export * from "./update-virtual-rows";
1
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
@@ -1,2 +1,3 @@
1
- "use strict";
1
+ export * from "./create-row-pool";
2
+ export * from "./update-virtual-rows";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { VirtualRowsState } from "../../../store/interfaces/virtual-rows-state";
2
+ export declare function recomputeVirtualRows(v: VirtualRowsState): void;
3
+ //# sourceMappingURL=recompute-virtual-rows.d.ts.map
@@ -0,0 +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,QAiBvD"}
@@ -0,0 +1,17 @@
1
+ export function recomputeVirtualRows(v) {
2
+ const { scrollTop, rowHeight, viewportHeight, totalRowCount } = v;
3
+ const overscan = 3;
4
+ // Base slice
5
+ const baseStart = Math.floor(scrollTop / rowHeight);
6
+ const baseVisibleCount = Math.ceil(viewportHeight / rowHeight);
7
+ // Overscanned slice
8
+ let start = baseStart - overscan;
9
+ if (start < 0)
10
+ start = 0;
11
+ let end = baseStart + baseVisibleCount + overscan;
12
+ if (end > totalRowCount)
13
+ end = totalRowCount;
14
+ v.renderStartIndex = start;
15
+ v.renderEndIndex = end;
16
+ }
17
+ //# sourceMappingURL=recompute-virtual-rows.js.map
@@ -0,0 +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;IAEnB,aAAa;IACb,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAE/D,oBAAoB;IACpB,IAAI,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IACjC,IAAI,KAAK,GAAG,CAAC;QAAE,KAAK,GAAG,CAAC,CAAC;IACzB,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"}
@@ -0,0 +1,4 @@
1
+ import { ObservableLike } from "../../../rx-lite/interfaces/observable-like";
2
+ import { RowService } from "../row";
3
+ export declare function updateVirtualRows(rowService: RowService, destroy$: ObservableLike<void>): void;
4
+ //# sourceMappingURL=update-virtual-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-virtual-rows.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/update-virtual-rows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAS/B"}
@@ -0,0 +1,12 @@
1
+ import { takeUntil } from "../../../rx-lite/operators/takeuntil";
2
+ export function updateVirtualRows(rowService, destroy$) {
3
+ rowService.virtualRows$.pipe(takeUntil(destroy$)).subscribe((virtualRows) => {
4
+ const rowPool = rowService.grid._runtime.rowPool;
5
+ if (!rowPool)
6
+ return;
7
+ // pool not created yet
8
+ const data = rowService.store.getState().view.rows;
9
+ rowPool.update(virtualRows, data);
10
+ }, "VIRTUAL-ROWS-UPDATE");
11
+ }
12
+ //# sourceMappingURL=update-virtual-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-virtual-rows.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/methods/update-virtual-rows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGjE,MAAM,UAAU,iBAAiB,CAC/B,UAAsB,EACtB,QAA8B;IAE9B,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;QAC1E,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,uBAAuB;QACvB,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACnD,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC,EAAE,qBAAqB,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,12 +1,18 @@
1
1
  import type { PolyGrid } from "../../core/grid";
2
2
  import { GridDOM } from "../../core/grid-dom";
3
3
  import { ObservableLike } from "../../rx-lite/interfaces/observable-like";
4
+ import { VirtualRowsState } from "../../store/interfaces/virtual-rows-state";
4
5
  import type { PolyGridStore } from "../../store/store";
6
+ import * as methods from "./methods/index";
5
7
  export declare class RowService {
6
8
  store: PolyGridStore;
7
9
  destroy$: ObservableLike<void>;
8
10
  gridDom: GridDOM;
9
11
  grid: PolyGrid;
12
+ createRowPool$: ObservableLike<number>;
13
+ virtualRows$: ObservableLike<VirtualRowsState>;
10
14
  constructor(grid: PolyGrid);
15
+ createRowPool: typeof methods.createRowPool;
16
+ updateVirtualRows: typeof methods.updateVirtualRows;
11
17
  }
12
18
  //# sourceMappingURL=row.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"row.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/row/row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,qBAAa,UAAU;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;gBAEH,IAAI,EAAE,QAAQ;CAM3B"}
1
+ {"version":3,"file":"row.d.ts","sourceRoot":"","sources":["../../../../src/engine/services/row/row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,qBAAa,UAAU;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IAEf,cAAc,EAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,YAAY,EAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAEpC,IAAI,EAAE,QAAQ;IAkB1B,aAAa,+BAAyB;IACtC,iBAAiB,mCAA6B;CAC/C"}
@@ -1,9 +1,20 @@
1
+ import { filter } from "../../rx-lite/operators/filter";
2
+ import { take } from "../../rx-lite/operators/take";
3
+ import * as methods from "./methods/index";
1
4
  export class RowService {
2
5
  constructor(grid) {
6
+ this.createRowPool = methods.createRowPool;
7
+ this.updateVirtualRows = methods.updateVirtualRows;
3
8
  this.store = grid._store;
4
9
  this.destroy$ = grid._destroy$;
5
10
  this.gridDom = grid._gridDom;
6
11
  this.grid = grid;
12
+ this.createRowPool$ = this.store
13
+ .select((s) => s.view.viewportHeight)
14
+ .pipe(filter((vh) => vh > 0), take(1));
15
+ this.virtualRows$ = this.store.select((s) => s.ui.virtualRows);
16
+ methods.createRowPool(this, this.destroy$);
17
+ methods.updateVirtualRows(this, this.destroy$);
7
18
  }
8
19
  }
9
20
  //# sourceMappingURL=row.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"row.js","sourceRoot":"","sources":["../../../../src/engine/services/row/row.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,UAAU;IAMrB,YAAY,IAAc;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"row.js","sourceRoot":"","sources":["../../../../src/engine/services/row/row.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAGpD,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAE3C,MAAM,OAAO,UAAU;IASrB,YAAY,IAAc;QAkB1B,kBAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACtC,sBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAlB5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;aACpC,IAAI,CACH,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EACtB,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;QAE/D,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;CAIF"}
@@ -7,6 +7,7 @@ import { RendererService } from "./renderer";
7
7
  import { LoadingService } from "./loading";
8
8
  import { LogService } from "./log";
9
9
  import { ErrorService } from "./error";
10
+ import { FilterService } from "./filter";
10
11
  export declare class PolyGridServices {
11
12
  private grid;
12
13
  layout: LayoutService;
@@ -17,6 +18,7 @@ export declare class PolyGridServices {
17
18
  loading: LoadingService;
18
19
  log: LogService;
19
20
  error: ErrorService;
21
+ filter: FilterService;
20
22
  constructor(grid: PolyGrid);
21
23
  }
22
24
  //# sourceMappingURL=services.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/engine/services/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAW;IAEvB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;gBAER,IAAI,EAAE,QAAQ;CAY3B"}
1
+ {"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../../../src/engine/services/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAW;IAEvB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;gBAEV,IAAI,EAAE,QAAQ;CAa3B"}
@@ -6,6 +6,7 @@ import { RendererService } from "./renderer";
6
6
  import { LoadingService } from "./loading";
7
7
  import { LogService } from "./log";
8
8
  import { ErrorService } from "./error";
9
+ import { FilterService } from "./filter";
9
10
  export class PolyGridServices {
10
11
  constructor(grid) {
11
12
  this.grid = grid;
@@ -17,6 +18,7 @@ export class PolyGridServices {
17
18
  this.loading = new LoadingService(this.grid);
18
19
  this.log = new LogService(this.grid);
19
20
  this.error = new ErrorService(this.grid);
21
+ this.filter = new FilterService(this.grid);
20
22
  }
21
23
  }
22
24
  //# sourceMappingURL=services.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/engine/services/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,OAAO,gBAAgB;IAY3B,YAAY,IAAc;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"services.js","sourceRoot":"","sources":["../../../src/engine/services/services.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,OAAO,gBAAgB;IAa3B,YAAY,IAAc;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -1,9 +1,11 @@
1
1
  import { ResizeRaf } from "./resize-raf";
2
2
  import { ResizeState } from "./resize-state";
3
+ import { VirtualRowsState } from "./virtual-rows-state";
3
4
  export interface PolyGridUIState {
4
5
  resize: ResizeState;
5
6
  resizeRaf: ResizeRaf;
6
7
  mouseMoveHandler: ((ev: MouseEvent) => void) | null;
7
8
  mouseUpHandler: ((ev: MouseEvent) => void) | null;
9
+ virtualRows: VirtualRowsState;
8
10
  }
9
11
  //# sourceMappingURL=ui-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/ui-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACpD,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CACnD"}
1
+ {"version":3,"file":"ui-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/ui-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACpD,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAClD,WAAW,EAAE,gBAAgB,CAAC;CAC/B"}
@@ -3,6 +3,7 @@ import { ColumnWidthSpec } from "../../services/column/interfaces/column-width-s
3
3
  import { InternalColumn } from "../../services/column/interfaces/internal-column";
4
4
  import type { ColumnWidthState } from "../../services/column/types/column-width-state";
5
5
  import { GridErrorType } from "../../services/error/types/error-type";
6
+ import { PolyGridFilterType } from "../../services/filter/types/filter-type";
6
7
  import { RendererAdapter } from "../../services/renderer/interfaces/renderer-adapter";
7
8
  import type { PolyGridRow } from "../../services/row/interfaces/row";
8
9
  import { PolyGridResizeMode } from "../types/resize-mode";
@@ -34,5 +35,6 @@ export interface PolyGridViewState {
34
35
  columnConstraints: ColumnConstraints;
35
36
  hasUserResized: boolean;
36
37
  enableAnimations: boolean;
38
+ filterable: PolyGridFilterType;
37
39
  }
38
40
  //# sourceMappingURL=view-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"view-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/view-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtD,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B"}
1
+ {"version":3,"file":"view-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/view-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtD,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,kBAAkB,CAAC;CAChC"}
@@ -0,0 +1,9 @@
1
+ export interface VirtualRowsState {
2
+ rowHeight: number;
3
+ totalRowCount: number;
4
+ scrollTop: number;
5
+ viewportHeight: number;
6
+ renderStartIndex: number;
7
+ renderEndIndex: number;
8
+ }
9
+ //# sourceMappingURL=virtual-rows-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-rows-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/virtual-rows-state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=virtual-rows-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-rows-state.js","sourceRoot":"","sources":["../../../../src/engine/store/interfaces/virtual-rows-state.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"create-initial-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,wBAAgB,kBAAkB,IAAI,aAAa,CA8ClD"}
1
+ {"version":3,"file":"create-initial-state.d.ts","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,wBAAgB,kBAAkB,IAAI,aAAa,CAuDlD"}
@@ -26,6 +26,7 @@ export function createInitialState() {
26
26
  columnConstraints: { minWidth: 30, maxWidth: null },
27
27
  hasUserResized: false,
28
28
  enableAnimations: false,
29
+ filterable: false,
29
30
  },
30
31
  ui: {
31
32
  resize: {
@@ -42,6 +43,14 @@ export function createInitialState() {
42
43
  },
43
44
  mouseMoveHandler: null,
44
45
  mouseUpHandler: null,
46
+ virtualRows: {
47
+ rowHeight: 20,
48
+ totalRowCount: 0,
49
+ scrollTop: 0,
50
+ viewportHeight: 0,
51
+ renderStartIndex: 0,
52
+ renderEndIndex: 0,
53
+ },
45
54
  },
46
55
  };
47
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-initial-state.js","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,EAAE;YACnB,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,EAAE;YACb,oBAAoB,EAAE,EAAE;YACxB,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,CAAC;YACjB,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC;YACpB,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;YACrB,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,IAAI;YACf,mBAAmB,EAAE,KAAK;YAC1B,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,eAAe;YAC3B,iBAAiB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;SACxB;QACD,EAAE,EAAE;YACF,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,IAAI;gBAChB,gBAAgB,EAAE,IAAI;gBACtB,kBAAkB,EAAE,IAAI;aACzB;YACD,SAAS,EAAE;gBACT,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,IAAI;aAChB;YACD,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;SACrB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create-initial-state.js","sourceRoot":"","sources":["../../../../src/engine/store/methods/create-initial-state.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,EAAE;YACnB,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,EAAE;YACb,oBAAoB,EAAE,EAAE;YACxB,gBAAgB,EAAE,SAAS;YAC3B,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;YAChB,cAAc,EAAE,CAAC;YACjB,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC;YACpB,cAAc,EAAE,KAAK;YACrB,cAAc,EAAE,KAAK;YACrB,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,IAAI;YACf,mBAAmB,EAAE,KAAK;YAC1B,SAAS,EAAE,KAAK;YAChB,UAAU,EAAE,eAAe;YAC3B,iBAAiB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,KAAK;SAClB;QACD,EAAE,EAAE;YACF,MAAM,EAAE;gBACN,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,IAAI;gBAChB,gBAAgB,EAAE,IAAI;gBACtB,kBAAkB,EAAE,IAAI;aACzB;YACD,SAAS,EAAE;gBACT,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,IAAI;aAChB;YACD,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE;gBACX,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE,CAAC;gBAChB,SAAS,EAAE,CAAC;gBACZ,cAAc,EAAE,CAAC;gBACjB,gBAAgB,EAAE,CAAC;gBACnB,cAAc,EAAE,CAAC;aAClB;SACF;KACF,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,4 +4,5 @@ export type { PolyGridCellRendererParams } from "./engine/services/renderer/inte
4
4
  export type { PolyGridHeaderRendererParams } from "./engine/services/renderer/interfaces/header-renderer-params";
5
5
  export type { PolyGridFooterRendererParams } from "./engine/services/renderer/interfaces/footer-renderer-params";
6
6
  export type { PolyGridResizeMode } from "./engine/store/types/resize-mode";
7
+ export type { PolyGridFilterType } from "./engine/services/filter/types/filter-type";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -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,kBAAkB,EAAE,MAAM,kCAAkC,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,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC"}
package/dist/polygrid.css CHANGED
@@ -147,6 +147,17 @@
147
147
  background: #e8e8e8; /* same as header cell */
148
148
  border-bottom: 1px solid #d0d0d0;
149
149
  flex: 0 0 auto;
150
+ position: relative;
151
+ }
152
+
153
+ .pg-v-scroll-spacer-top-line::before {
154
+ content: "";
155
+ width: 16px; /* typical scrollbar width */
156
+ height: 1px;
157
+ border-top: 1px solid #d0d0d0;
158
+ position: absolute;
159
+ top: 40px; /* header height */
160
+ left: 0;
150
161
  }
151
162
 
152
163
  .pg-v-scroll-spacer-bottom {
@@ -196,9 +207,12 @@
196
207
 
197
208
  .pg-row {
198
209
  display: flex;
210
+ position: absolute;
211
+ top: 0;
212
+ left: 0;
199
213
  }
200
214
 
201
- .pg-row:last-child .pg-cell.last-row {
215
+ .pg-row.last-row .pg-cell {
202
216
  border-bottom: none;
203
217
  }
204
218
 
@@ -378,3 +392,36 @@
378
392
  position: absolute;
379
393
  bottom: 10px;
380
394
  }
395
+
396
+ .pg-filter-row-viewport {
397
+ overflow: hidden;
398
+ flex: 0 0 auto;
399
+ background: #f0f0f0;
400
+ }
401
+
402
+ .pg-filter-row {
403
+ height: 30px;
404
+ display: flex;
405
+ align-items: center;
406
+ border-top: 1px solid #d0d0d0;
407
+ }
408
+
409
+ .pg-filter-cell {
410
+ display: flex;
411
+ position: relative;
412
+ flex: 0 0 auto;
413
+ min-width: 0;
414
+ padding: 0 8px;
415
+ height: 30px;
416
+ background: #e8e8e8;
417
+ border-right: 1px solid #ccc;
418
+ overflow: hidden;
419
+ align-items: center;
420
+ }
421
+
422
+ .pg-filter-cell-content {
423
+ flex: 1 1 auto;
424
+ min-width: 0;
425
+ overflow: hidden;
426
+ white-space: nowrap;
427
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polygrid/core",
3
- "version": "1.0.428",
3
+ "version": "1.0.430",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",