@polygrid/core 1.0.429 → 1.0.431

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 (68) hide show
  1. package/dist/api/set-data.d.ts.map +1 -1
  2. package/dist/api/set-data.js +3 -0
  3. package/dist/api/set-data.js.map +1 -1
  4. package/dist/engine/core/grid-runtime.d.ts +2 -0
  5. package/dist/engine/core/grid-runtime.d.ts.map +1 -1
  6. package/dist/engine/core/grid-runtime.js +3 -0
  7. package/dist/engine/core/grid-runtime.js.map +1 -1
  8. package/dist/engine/core/methods/consume-options.d.ts.map +1 -1
  9. package/dist/engine/core/methods/consume-options.js +3 -0
  10. package/dist/engine/core/methods/consume-options.js.map +1 -1
  11. package/dist/engine/rx-lite/operators/take.d.ts +3 -0
  12. package/dist/engine/rx-lite/operators/take.d.ts.map +1 -0
  13. package/dist/engine/rx-lite/operators/take.js +18 -0
  14. package/dist/engine/rx-lite/operators/take.js.map +1 -0
  15. package/dist/engine/services/layout/methods/add-scroll-event-listeners.d.ts.map +1 -1
  16. package/dist/engine/services/layout/methods/add-scroll-event-listeners.js +8 -0
  17. package/dist/engine/services/layout/methods/add-scroll-event-listeners.js.map +1 -1
  18. package/dist/engine/services/layout/methods/adjust-viewport.d.ts.map +1 -1
  19. package/dist/engine/services/layout/methods/adjust-viewport.js +3 -2
  20. package/dist/engine/services/layout/methods/adjust-viewport.js.map +1 -1
  21. package/dist/engine/services/loading/methods/toggle-loading.d.ts.map +1 -1
  22. package/dist/engine/services/loading/methods/toggle-loading.js +6 -1
  23. package/dist/engine/services/loading/methods/toggle-loading.js.map +1 -1
  24. package/dist/engine/services/renderer/methods/re-render-cells.d.ts.map +1 -1
  25. package/dist/engine/services/renderer/methods/re-render-cells.js +25 -16
  26. package/dist/engine/services/renderer/methods/re-render-cells.js.map +1 -1
  27. package/dist/engine/services/renderer/parts/body/body.d.ts.map +1 -1
  28. package/dist/engine/services/renderer/parts/body/body.js +0 -20
  29. package/dist/engine/services/renderer/parts/body/body.js.map +1 -1
  30. package/dist/engine/services/row/classes/row-instance.d.ts +13 -0
  31. package/dist/engine/services/row/classes/row-instance.d.ts.map +1 -0
  32. package/dist/engine/services/row/classes/row-instance.js +30 -0
  33. package/dist/engine/services/row/classes/row-instance.js.map +1 -0
  34. package/dist/engine/services/row/classes/row-pool.d.ts +18 -0
  35. package/dist/engine/services/row/classes/row-pool.d.ts.map +1 -0
  36. package/dist/engine/services/row/classes/row-pool.js +78 -0
  37. package/dist/engine/services/row/classes/row-pool.js.map +1 -0
  38. package/dist/engine/services/row/methods/create-row-pool.d.ts +4 -0
  39. package/dist/engine/services/row/methods/create-row-pool.d.ts.map +1 -0
  40. package/dist/engine/services/row/methods/create-row-pool.js +14 -0
  41. package/dist/engine/services/row/methods/create-row-pool.js.map +1 -0
  42. package/dist/engine/services/row/methods/index.d.ts +2 -0
  43. package/dist/engine/services/row/methods/index.d.ts.map +1 -1
  44. package/dist/engine/services/row/methods/index.js +2 -1
  45. package/dist/engine/services/row/methods/index.js.map +1 -1
  46. package/dist/engine/services/row/methods/recompute-virtual-rows.d.ts +3 -0
  47. package/dist/engine/services/row/methods/recompute-virtual-rows.d.ts.map +1 -0
  48. package/dist/engine/services/row/methods/recompute-virtual-rows.js +17 -0
  49. package/dist/engine/services/row/methods/recompute-virtual-rows.js.map +1 -0
  50. package/dist/engine/services/row/methods/update-virtual-rows.d.ts +4 -0
  51. package/dist/engine/services/row/methods/update-virtual-rows.d.ts.map +1 -0
  52. package/dist/engine/services/row/methods/update-virtual-rows.js +12 -0
  53. package/dist/engine/services/row/methods/update-virtual-rows.js.map +1 -0
  54. package/dist/engine/services/row/row.d.ts +6 -0
  55. package/dist/engine/services/row/row.d.ts.map +1 -1
  56. package/dist/engine/services/row/row.js +11 -0
  57. package/dist/engine/services/row/row.js.map +1 -1
  58. package/dist/engine/store/interfaces/ui-state.d.ts +2 -0
  59. package/dist/engine/store/interfaces/ui-state.d.ts.map +1 -1
  60. package/dist/engine/store/interfaces/virtual-rows-state.d.ts +9 -0
  61. package/dist/engine/store/interfaces/virtual-rows-state.d.ts.map +1 -0
  62. package/dist/engine/store/interfaces/virtual-rows-state.js +2 -0
  63. package/dist/engine/store/interfaces/virtual-rows-state.js.map +1 -0
  64. package/dist/engine/store/methods/create-initial-state.d.ts.map +1 -1
  65. package/dist/engine/store/methods/create-initial-state.js +8 -0
  66. package/dist/engine/store/methods/create-initial-state.js.map +1 -1
  67. package/dist/polygrid.css +4 -1
  68. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"set-data.d.ts","sourceRoot":"","sources":["../../src/api/set-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,QAIlD"}
1
+ {"version":3,"file":"set-data.d.ts","sourceRoot":"","sources":["../../src/api/set-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,QAMlD"}
@@ -1,7 +1,10 @@
1
1
  import { normalizeRows } from "../engine/core/methods/normalize-rows";
2
+ import { recomputeVirtualRows } from "../engine/services/row/methods/recompute-virtual-rows";
2
3
  export function setData(grid, data) {
3
4
  grid._store.update((draft) => {
4
5
  draft.view.rows = normalizeRows(data);
6
+ draft.ui.virtualRows.totalRowCount = data.length;
7
+ recomputeVirtualRows(draft.ui.virtualRows);
5
8
  });
6
9
  }
7
10
  //# sourceMappingURL=set-data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-data.js","sourceRoot":"","sources":["../../src/api/set-data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAEtE,MAAM,UAAU,OAAO,CAAC,IAAc,EAAE,IAAW;IACjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"set-data.js","sourceRoot":"","sources":["../../src/api/set-data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAE7F,MAAM,UAAU,OAAO,CAAC,IAAc,EAAE,IAAW;IACjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;QACjD,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { RendererHandle } from "../services/renderer/interfaces/renderer-handle";
2
+ import { RowPool } from "../services/row/classes/row-pool";
2
3
  export declare class GridRuntime {
3
4
  noDataHandle: RendererHandle | null;
4
5
  noDataContainer: HTMLElement | null;
@@ -14,6 +15,7 @@ export declare class GridRuntime {
14
15
  footerContainers: Map<string, HTMLElement>;
15
16
  overlayHandles: Map<string, RendererHandle>;
16
17
  overlayContainers: Map<string, HTMLElement>;
18
+ rowPool: RowPool | null;
17
19
  destroyRuntimeHandles(): void;
18
20
  }
19
21
  //# sourceMappingURL=grid-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid-runtime.d.ts","sourceRoot":"","sources":["../../../src/engine/core/grid-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAEjF,qBAAa,WAAW;IACtB,YAAY,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC3C,eAAe,EAAE,WAAW,GAAG,IAAI,CAAQ;IAE3C,aAAa,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC5C,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAQ;IAE5C,WAAW,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC1C,cAAc,EAAE,WAAW,GAAG,IAAI,CAAQ;IAE1C,aAAa,8BAAqC;IAClD,gBAAgB,2BAAkC;IAElD,WAAW,8BAAqC;IAChD,cAAc,2BAAkC;IAEhD,aAAa,8BAAqC;IAClD,gBAAgB,2BAAkC;IAElD,cAAc,8BAAqC;IACnD,iBAAiB,2BAAkC;IAEnD,qBAAqB;CAStB"}
1
+ {"version":3,"file":"grid-runtime.d.ts","sourceRoot":"","sources":["../../../src/engine/core/grid-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,qBAAa,WAAW;IACtB,YAAY,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC3C,eAAe,EAAE,WAAW,GAAG,IAAI,CAAQ;IAE3C,aAAa,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC5C,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAQ;IAE5C,WAAW,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC1C,cAAc,EAAE,WAAW,GAAG,IAAI,CAAQ;IAE1C,aAAa,8BAAqC;IAClD,gBAAgB,2BAAkC;IAElD,WAAW,8BAAqC;IAChD,cAAc,2BAAkC;IAEhD,aAAa,8BAAqC;IAClD,gBAAgB,2BAAkC;IAElD,cAAc,8BAAqC;IACnD,iBAAiB,2BAAkC;IAEnD,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE/B,qBAAqB;CAWtB"}
@@ -14,6 +14,7 @@ export class GridRuntime {
14
14
  this.footerContainers = new Map();
15
15
  this.overlayHandles = new Map();
16
16
  this.overlayContainers = new Map();
17
+ this.rowPool = null;
17
18
  }
18
19
  destroyRuntimeHandles() {
19
20
  this.noDataHandle?.destroy();
@@ -27,6 +28,8 @@ export class GridRuntime {
27
28
  h.destroy();
28
29
  for (const h of this.overlayHandles.values())
29
30
  h.destroy();
31
+ this.rowPool?.destroy?.();
32
+ this.rowPool = null;
30
33
  }
31
34
  }
32
35
  //# sourceMappingURL=grid-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grid-runtime.js","sourceRoot":"","sources":["../../../src/engine/core/grid-runtime.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IAAxB;QACE,iBAAY,GAA0B,IAAI,CAAC;QAC3C,oBAAe,GAAuB,IAAI,CAAC;QAE3C,kBAAa,GAA0B,IAAI,CAAC;QAC5C,qBAAgB,GAAuB,IAAI,CAAC;QAE5C,gBAAW,GAA0B,IAAI,CAAC;QAC1C,mBAAc,GAAuB,IAAI,CAAC;QAE1C,kBAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;QAClD,qBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;QAElD,gBAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;QAChD,mBAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEhD,kBAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;QAClD,qBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;QAElD,mBAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;QACnD,sBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAWrD,CAAC;IATC,qBAAqB;QACnB,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;CACF"}
1
+ {"version":3,"file":"grid-runtime.js","sourceRoot":"","sources":["../../../src/engine/core/grid-runtime.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,WAAW;IAAxB;QACE,iBAAY,GAA0B,IAAI,CAAC;QAC3C,oBAAe,GAAuB,IAAI,CAAC;QAE3C,kBAAa,GAA0B,IAAI,CAAC;QAC5C,qBAAgB,GAAuB,IAAI,CAAC;QAE5C,gBAAW,GAA0B,IAAI,CAAC;QAC1C,mBAAc,GAAuB,IAAI,CAAC;QAE1C,kBAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;QAClD,qBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;QAElD,gBAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;QAChD,mBAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEhD,kBAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;QAClD,qBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;QAElD,mBAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;QACnD,sBAAiB,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEnD,YAAO,GAAmB,IAAI,CAAC;IAajC,CAAC;IAXC,qBAAqB;QACnB,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;YAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"consume-options.d.ts","sourceRoot":"","sources":["../../../../src/engine/core/methods/consume-options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,eAAe,QA+DzB"}
1
+ {"version":3,"file":"consume-options.d.ts","sourceRoot":"","sources":["../../../../src/engine/core/methods/consume-options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAInC,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,eAAe,QAiEzB"}
@@ -1,5 +1,6 @@
1
1
  import { normalizeRows } from "./normalize-rows";
2
2
  import { normalizeColumns } from "../../services/column/methods";
3
+ import { recomputeVirtualRows } from "../../services/row/methods/recompute-virtual-rows";
3
4
  export function consumeOptions(grid, store, options) {
4
5
  // assign id
5
6
  store.update((draft) => (draft.view.id = options.id));
@@ -17,6 +18,8 @@ export function consumeOptions(grid, store, options) {
17
18
  if (data) {
18
19
  store.update((state) => {
19
20
  state.view.rows = normalizeRows(data);
21
+ state.ui.virtualRows.totalRowCount = data.length;
22
+ recomputeVirtualRows(state.ui.virtualRows);
20
23
  });
21
24
  grid._services.column.checkFields(store, grid._services.log);
22
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"consume-options.js","sourceRoot":"","sources":["../../../../src/engine/core/methods/consume-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,MAAM,UAAU,cAAc,CAC5B,IAAc,EACd,KAAoB,EACpB,OAAwB;IAExB,YAAY;IACZ,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAEtD,iBAAiB;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAC7B,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc;IACd,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,oBAAoB;IACpB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAChD,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;IACpB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"consume-options.js","sourceRoot":"","sources":["../../../../src/engine/core/methods/consume-options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Operator } from "../types/operator";
2
+ export declare function take<T>(count: number): Operator<T, T>;
3
+ //# sourceMappingURL=take.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"take.d.ts","sourceRoot":"","sources":["../../../../src/engine/rx-lite/operators/take.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAmBrD"}
@@ -0,0 +1,18 @@
1
+ import { Observable } from "../core/observable";
2
+ export function take(count) {
3
+ return (source) => new Observable((subscriber) => {
4
+ let remaining = count;
5
+ const cleanup = source.subscribe((value) => {
6
+ if (remaining > 0) {
7
+ remaining--;
8
+ subscriber(value);
9
+ if (remaining === 0) {
10
+ // Call the cleanup function directly
11
+ cleanup();
12
+ }
13
+ }
14
+ });
15
+ return cleanup;
16
+ });
17
+ }
18
+ //# sourceMappingURL=take.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"take.js","sourceRoot":"","sources":["../../../../src/engine/rx-lite/operators/take.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,MAAM,UAAU,IAAI,CAAI,KAAa;IACnC,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,IAAI,UAAU,CAAI,CAAC,UAAU,EAAE,EAAE;QAC/B,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACzC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,SAAS,EAAE,CAAC;gBACZ,UAAU,CAAC,KAAK,CAAC,CAAC;gBAElB,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;oBACpB,qCAAqC;oBACrC,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"add-scroll-event-listeners.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/layout/methods/add-scroll-event-listeners.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,QAqCnE"}
1
+ {"version":3,"file":"add-scroll-event-listeners.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/layout/methods/add-scroll-event-listeners.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,aAAa,QA4CnE"}
@@ -1,4 +1,5 @@
1
1
  import { addDomListener } from "../../../core/methods";
2
+ import { recomputeVirtualRows } from "../../row/methods/recompute-virtual-rows";
2
3
  export function addScrollEventListeners(layoutService) {
3
4
  const gridDom = layoutService.gridDom;
4
5
  // vertical scroll bar scrolls body
@@ -7,6 +8,13 @@ export function addScrollEventListeners(layoutService) {
7
8
  if (gridDom.bodyViewport.scrollTop !== scrollTop) {
8
9
  gridDom.bodyViewport.scrollTop = scrollTop;
9
10
  }
11
+ requestAnimationFrame(() => {
12
+ layoutService.store.update((draft) => {
13
+ const v = draft.ui.virtualRows;
14
+ v.scrollTop = scrollTop;
15
+ recomputeVirtualRows(draft.ui.virtualRows);
16
+ });
17
+ });
10
18
  });
11
19
  // horizontal scroll bar scrolls header, footer, body
12
20
  addDomListener(gridDom, gridDom.hScrollInner, "scroll", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"add-scroll-event-listeners.js","sourceRoot":"","sources":["../../../../../src/engine/services/layout/methods/add-scroll-event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,UAAU,uBAAuB,CAAC,aAA4B;IAClE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IACtC,mCAAmC;IACnC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE;QAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;QACjD,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO,CAAC,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;QACnD,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACnD,OAAO,CAAC,YAAY,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/C,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrD,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;QACjD,CAAC;QACD,IAAI,OAAO,CAAC,iBAAiB,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACxD,OAAO,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrD,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QAC3D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"add-scroll-event-listeners.js","sourceRoot":"","sources":["../../../../../src/engine/services/layout/methods/add-scroll-event-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAGhF,MAAM,UAAU,uBAAuB,CAAC,aAA4B;IAClE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IACtC,mCAAmC;IACnC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE;QAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;QACjD,IAAI,OAAO,CAAC,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO,CAAC,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7C,CAAC;QACD,qBAAqB,CAAC,GAAG,EAAE;YACzB,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnC,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC;gBAC/B,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;gBACxB,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,qDAAqD;IACrD,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC;QACnD,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACnD,OAAO,CAAC,YAAY,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/C,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrD,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;QACjD,CAAC;QACD,IAAI,OAAO,CAAC,iBAAiB,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACxD,OAAO,CAAC,iBAAiB,CAAC,UAAU,GAAG,UAAU,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrD,OAAO,CAAC,cAAc,CAAC,UAAU,GAAG,UAAU,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QAC3D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,YAAY,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"adjust-viewport.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/layout/methods/adjust-viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAKlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,wBAAgB,cAAc,CAC5B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QA4D/B"}
1
+ {"version":3,"file":"adjust-viewport.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/layout/methods/adjust-viewport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAMlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,wBAAgB,cAAc,CAC5B,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAwD/B"}
@@ -2,6 +2,7 @@ import { distinctUntilChanged } from "../../../rx-lite/operators/distinct-until-
2
2
  import { filter } from "../../../rx-lite/operators/filter";
3
3
  import { map } from "../../../rx-lite/operators/map";
4
4
  import { takeUntil } from "../../../rx-lite/operators/takeuntil";
5
+ import { recomputeVirtualRows } from "../../row/methods/recompute-virtual-rows";
5
6
  export function adjustViewport(layoutService, destroy$) {
6
7
  const gridDom = layoutService.gridDom;
7
8
  layoutService.showVScrollbar$
@@ -11,8 +12,6 @@ export function adjustViewport(layoutService, destroy$) {
11
12
  draft.view.showVScrollbar = showVScrollbar;
12
13
  });
13
14
  gridDom.vScrollbar.style.display = showVScrollbar ? "flex" : "none";
14
- const lastCellsInLastRow = gridDom.body.querySelectorAll(".pg-row:last-child .pg-cell");
15
- lastCellsInLastRow.forEach((cell) => cell.classList.toggle("last-row", showVScrollbar));
16
15
  }, "SHOW-V-SCROLLBAR");
17
16
  layoutService.showHScrollbar$
18
17
  .pipe(takeUntil(destroy$))
@@ -39,6 +38,8 @@ export function adjustViewport(layoutService, destroy$) {
39
38
  .subscribe((viewportHeight) => {
40
39
  layoutService.store.update((draft) => {
41
40
  draft.view.viewportHeight = viewportHeight;
41
+ draft.ui.virtualRows.viewportHeight = viewportHeight;
42
+ recomputeVirtualRows(draft.ui.virtualRows);
42
43
  });
43
44
  });
44
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adjust-viewport.js","sourceRoot":"","sources":["../../../../../src/engine/services/layout/methods/adjust-viewport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,MAAM,gCAAgC,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGjE,MAAM,UAAU,cAAc,CAC5B,aAA4B,EAC5B,QAA8B;IAE9B,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IACtC,aAAa,CAAC,eAAe;SAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACzB,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;QAC5B,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACpE,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CACtD,6BAA6B,CAC9B,CAAC;QACF,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAClD,CAAC;IACJ,CAAC,EAAE,kBAAkB,CAAC,CAAC;IACzB,aAAa,CAAC,eAAe;SAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACzB,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;QAC5B,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;YACxD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,MAAM,CAAC;IACb,CAAC,EAAE,kBAAkB,CAAC,CAAC;IAEzB,aAAa,CAAC,sBAAsB;SACjC,IAAI,CACH,SAAS,CAAC,QAAQ,CAAC,EACnB,GAAG,CACD,CAAC,CAAC,cAAc,EAAE,gBAAgB,CAAC,EAAE,EAAE,CACrC,gBAAgB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/C,EACD,oBAAoB,EAAE;IACtB,uDAAuD;IACvD,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,IAAI,CAAC,CAAC,CAC9C;SACA,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE;QAC3B,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACL,aAAa,CAAC,uBAAuB;SAClC,IAAI,CACH,SAAS,CAAC,QAAQ,CAAC,EACnB,GAAG,CACD,CAAC,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,EAAE,CACtC,iBAAiB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAChD,EACD,oBAAoB,EAAE,EACtB,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,IAAI,CAAC,CAAC,CAChD;SACA,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE;QAC5B,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,KAAK,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"adjust-viewport.js","sourceRoot":"","sources":["../../../../../src/engine/services/layout/methods/adjust-viewport.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-loading.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/loading/methods/toggle-loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,aAAa,CAC3B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAU/B"}
1
+ {"version":3,"file":"toggle-loading.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/loading/methods/toggle-loading.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAI7E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,wBAAgB,aAAa,CAC3B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAc/B"}
@@ -1,11 +1,16 @@
1
1
  import { takeUntil } from "../../../rx-lite/operators/takeuntil";
2
2
  import { renderLoading } from "../../renderer/parts/loading/loading";
3
+ import { recomputeVirtualRows } from "../../row/methods/recompute-virtual-rows";
3
4
  export function toggleLoading(loadingService, destroy$) {
4
5
  const gridDom = loadingService.gridDom;
5
6
  const grid = loadingService.grid;
6
7
  loadingService.loading$.pipe(takeUntil(destroy$)).subscribe((visible) => {
7
8
  if (visible) {
8
- grid._store.update((draft) => (draft.view.rows = []));
9
+ grid._store.update((draft) => {
10
+ draft.view.rows = [];
11
+ draft.ui.virtualRows.totalRowCount = 0;
12
+ recomputeVirtualRows(draft.ui.virtualRows);
13
+ });
9
14
  renderLoading(gridDom.body, grid);
10
15
  }
11
16
  }, "TOGGLE-LOADING");
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-loading.js","sourceRoot":"","sources":["../../../../../src/engine/services/loading/methods/toggle-loading.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAGrE,MAAM,UAAU,aAAa,CAC3B,cAA8B,EAC9B,QAA8B;IAE9B,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IACjC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;QACtE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YACtD,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"toggle-loading.js","sourceRoot":"","sources":["../../../../../src/engine/services/loading/methods/toggle-loading.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAGhF,MAAM,UAAU,aAAa,CAC3B,cAA8B,EAC9B,QAA8B;IAE9B,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;IACjC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;QACtE,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;gBACrB,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,aAAa,GAAG,CAAC,CAAC;gBACvC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"re-render-cells.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/renderer/methods/re-render-cells.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAItD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,QAAQ,QAsCf"}
1
+ {"version":3,"file":"re-render-cells.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/renderer/methods/re-render-cells.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAK9C,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,QAAQ,QAgDf"}
@@ -1,7 +1,8 @@
1
- import { renderRows } from "../parts/body/row";
2
1
  import { renderFooterCells } from "../parts/footer/footer-cells";
3
2
  import { renderHeaderCells } from "../parts/header/header-cells";
4
3
  import { renderFilterCells } from "../parts/filter-row/filter-cells";
4
+ import { RowPool } from "../../row/classes/row-pool";
5
+ import { recomputeVirtualRows } from "../../row/methods/recompute-virtual-rows";
5
6
  export function reRenderCells(gridDom, store, grid) {
6
7
  // rerender header, body, footer cells
7
8
  // header
@@ -9,27 +10,35 @@ export function reRenderCells(gridDom, store, grid) {
9
10
  header.replaceChildren();
10
11
  renderHeaderCells(header, store, gridDom, grid);
11
12
  // filter row
12
- const state = store.getState();
13
+ let state = store.getState();
13
14
  const filterable = state.view.filterable === true || state.view.filterable === "row";
14
15
  if (filterable) {
15
16
  const filterRow = gridDom.filterRow;
16
17
  filterRow.replaceChildren();
17
18
  renderFilterCells(filterRow, store, gridDom, grid);
18
19
  }
19
- // body
20
- const body = gridDom.body;
21
- body.replaceChildren();
22
- const rows = store.getState().view.rows;
23
- const columns = store.getState().view.internalColumns;
24
- const rowHeight = store.getState().view.rowHeight;
25
- const bodyRows = renderRows(rows, columns, rowHeight, grid);
26
- const fragment = document.createDocumentFragment();
27
- for (const row of bodyRows) {
28
- fragment.appendChild(row);
29
- }
30
- body.appendChild(fragment);
31
- const lastCellsInLastRow = gridDom.body.querySelectorAll(".pg-row:last-child .pg-cell");
32
- lastCellsInLastRow.forEach((cell) => cell.classList.toggle("last-row", store.getState().view.showVScrollbar));
20
+ // body (virtualized)
21
+ gridDom.bodyViewport.scrollTop = 0;
22
+ gridDom.vScrollInner.scrollTop = 0;
23
+ store.update((draft) => {
24
+ const v = draft.ui.virtualRows;
25
+ v.scrollTop = 0;
26
+ v.renderStartIndex = 0;
27
+ v.renderEndIndex = 0;
28
+ });
29
+ // get fresh state after update
30
+ state = store.getState();
31
+ gridDom.body.replaceChildren();
32
+ const rowHeight = state.view.rowHeight;
33
+ const columns = state.view.internalColumns;
34
+ const viewportHeight = state.view.viewportHeight;
35
+ const rowPool = new RowPool(gridDom, columns, rowHeight, grid, viewportHeight);
36
+ grid._runtime.rowPool = rowPool;
37
+ // use fresh virtualRows
38
+ const v = state.ui.virtualRows;
39
+ recomputeVirtualRows(v);
40
+ const data = state.view.rows;
41
+ rowPool.update(v, data);
33
42
  // footer
34
43
  const footer = gridDom.footer;
35
44
  footer.replaceChildren();
@@ -1 +1 @@
1
- {"version":3,"file":"re-render-cells.js","sourceRoot":"","sources":["../../../../../src/engine/services/renderer/methods/re-render-cells.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,MAAM,UAAU,aAAa,CAC3B,OAAgB,EAChB,KAAoB,EACpB,IAAc;IAEd,sCAAsC;IACtC,SAAS;IACT,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,aAAa;IACb,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,UAAU,GACd,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC;IACpE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5B,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,OAAO;IACP,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;IAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,CACtD,6BAA6B,CAC9B,CAAC;IACF,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CACxE,CAAC;IACF,SAAS;IACT,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"re-render-cells.js","sourceRoot":"","sources":["../../../../../src/engine/services/renderer/methods/re-render-cells.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAEhF,MAAM,UAAU,aAAa,CAC3B,OAAgB,EAChB,KAAoB,EACpB,IAAc;IAEd,sCAAsC;IACtC,SAAS;IACT,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,aAAa;IACb,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC7B,MAAM,UAAU,GACd,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC;IACpE,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5B,iBAAiB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IACD,qBAAqB;IACrB,OAAO,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC;IACnC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC;QAC/B,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAChB,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,+BAA+B;IAC/B,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;IAC3C,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,CACzB,OAAO,EACP,OAAO,EACP,SAAS,EACT,IAAI,EACJ,cAAc,CACf,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IAChC,wBAAwB;IACxB,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC;IAC/B,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/renderer/parts/body/body.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ,GACb,cAAc,CAgChB"}
1
+ {"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/services/renderer/parts/body/body.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ,GACb,cAAc,CAchB"}
@@ -1,6 +1,4 @@
1
1
  import { PG_CSS_CLASS } from "../../../../const/pg-css-class";
2
- import { renderNoData } from "../no-data/no-data";
3
- import { renderRows } from "./row";
4
2
  export function renderBody(store, gridDom, grid) {
5
3
  // viewport
6
4
  const bodyViewportEl = document.createElement("div");
@@ -9,24 +7,6 @@ export function renderBody(store, gridDom, grid) {
9
7
  const bodyEl = document.createElement("div");
10
8
  bodyEl.className = PG_CSS_CLASS.body;
11
9
  bodyEl.innerHTML = "";
12
- // if we have rows
13
- const rows = store.getState().view.rows;
14
- if (rows.length > 0) {
15
- // render the rows
16
- const columns = store.getState().view.internalColumns;
17
- const rowHeight = store.getState().view.rowHeight;
18
- const bodyRows = renderRows(rows, columns, rowHeight, grid);
19
- // append the rows to the body
20
- const fragment = document.createDocumentFragment();
21
- for (const row of bodyRows) {
22
- fragment.appendChild(row);
23
- }
24
- bodyEl.appendChild(fragment);
25
- }
26
- else {
27
- // render no data template
28
- renderNoData(bodyEl, grid);
29
- }
30
10
  bodyViewportEl.appendChild(bodyEl);
31
11
  gridDom.body = bodyEl;
32
12
  return bodyViewportEl;
@@ -1 +1 @@
1
- {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../../src/engine/services/renderer/parts/body/body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAI9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,MAAM,UAAU,UAAU,CACxB,KAAoB,EACpB,OAAgB,EAChB,IAAc;IAEd,WAAW;IACX,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrD,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC;IACrD,gBAAgB;IAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;IAEtB,kBAAkB;IAClB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,kBAAkB;QAClB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;QAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5D,8BAA8B;QAC9B,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QACnD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,0BAA0B;QAC1B,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEnC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;IAEtB,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../../../src/engine/services/renderer/parts/body/body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAK9D,MAAM,UAAU,UAAU,CACxB,KAAoB,EACpB,OAAgB,EAChB,IAAc;IAEd,WAAW;IACX,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACrD,cAAc,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC;IACrD,gBAAgB;IAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,CAAC,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;IACrC,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;IAEtB,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEnC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;IAEtB,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { PolyGridStore } from "../../../store/store";
2
+ import { PolyGridRow } from "../interfaces/row";
3
+ export declare class RowInstance {
4
+ el: HTMLDivElement;
5
+ private cells;
6
+ private store;
7
+ constructor(rowEl: HTMLDivElement, store: PolyGridStore);
8
+ update(rowData: PolyGridRow, rowIndex: number): void;
9
+ setOffset(y: number): void;
10
+ show(): void;
11
+ hide(): void;
12
+ }
13
+ //# sourceMappingURL=row-instance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-instance.d.ts","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-instance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,WAAW;IACtB,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,KAAK,CAAgB;gBAEjB,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa;IAQvD,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM;IAY7C,SAAS,CAAC,CAAC,EAAE,MAAM;IAInB,IAAI;IAIJ,IAAI;CAGL"}
@@ -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"}
@@ -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"}
@@ -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,CA+ClD"}
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"}
@@ -43,6 +43,14 @@ export function createInitialState() {
43
43
  },
44
44
  mouseMoveHandler: null,
45
45
  mouseUpHandler: null,
46
+ virtualRows: {
47
+ rowHeight: 20,
48
+ totalRowCount: 0,
49
+ scrollTop: 0,
50
+ viewportHeight: 0,
51
+ renderStartIndex: 0,
52
+ renderEndIndex: 0,
53
+ },
46
54
  },
47
55
  };
48
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;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;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/polygrid.css CHANGED
@@ -207,9 +207,12 @@
207
207
 
208
208
  .pg-row {
209
209
  display: flex;
210
+ position: absolute;
211
+ top: 0;
212
+ left: 0;
210
213
  }
211
214
 
212
- .pg-row:last-child .pg-cell.last-row {
215
+ .pg-row.last-row .pg-cell {
213
216
  border-bottom: none;
214
217
  }
215
218
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polygrid/core",
3
- "version": "1.0.429",
3
+ "version": "1.0.431",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",