@polygrid/core 1.0.430 → 1.0.432
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.
- package/dist/engine/services/renderer/methods/re-render-cells.d.ts.map +1 -1
- package/dist/engine/services/renderer/methods/re-render-cells.js +18 -5
- package/dist/engine/services/renderer/methods/re-render-cells.js.map +1 -1
- package/dist/engine/services/row/classes/row-instance.d.ts +1 -0
- package/dist/engine/services/row/classes/row-instance.d.ts.map +1 -1
- package/dist/engine/services/row/classes/row-instance.js +45 -4
- package/dist/engine/services/row/classes/row-instance.js.map +1 -1
- package/package.json +1 -1
|
@@ -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;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;
|
|
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"}
|
|
@@ -2,6 +2,7 @@ import { renderFooterCells } from "../parts/footer/footer-cells";
|
|
|
2
2
|
import { renderHeaderCells } from "../parts/header/header-cells";
|
|
3
3
|
import { renderFilterCells } from "../parts/filter-row/filter-cells";
|
|
4
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,7 +10,7 @@ export function reRenderCells(gridDom, store, grid) {
|
|
|
9
10
|
header.replaceChildren();
|
|
10
11
|
renderHeaderCells(header, store, gridDom, grid);
|
|
11
12
|
// filter row
|
|
12
|
-
|
|
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;
|
|
@@ -17,15 +18,27 @@ export function reRenderCells(gridDom, store, grid) {
|
|
|
17
18
|
renderFilterCells(filterRow, store, gridDom, grid);
|
|
18
19
|
}
|
|
19
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();
|
|
20
31
|
gridDom.body.replaceChildren();
|
|
21
|
-
// recreate row pool
|
|
22
32
|
const rowHeight = state.view.rowHeight;
|
|
23
33
|
const columns = state.view.internalColumns;
|
|
24
|
-
const
|
|
34
|
+
const viewportHeight = state.view.viewportHeight;
|
|
35
|
+
const rowPool = new RowPool(gridDom, columns, rowHeight, grid, viewportHeight);
|
|
25
36
|
grid._runtime.rowPool = rowPool;
|
|
26
|
-
//
|
|
37
|
+
// use fresh virtualRows
|
|
38
|
+
const v = state.ui.virtualRows;
|
|
39
|
+
recomputeVirtualRows(v);
|
|
27
40
|
const data = state.view.rows;
|
|
28
|
-
rowPool.update(
|
|
41
|
+
rowPool.update(v, data);
|
|
29
42
|
// footer
|
|
30
43
|
const footer = gridDom.footer;
|
|
31
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,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;
|
|
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":"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;
|
|
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;IAC7B,OAAO,CAAC,WAAW,CAA0B;gBAEjC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa;IAQvD,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM;IA0D7C,SAAS,CAAC,CAAC,EAAE,MAAM;IAInB,IAAI;IAIJ,IAAI;CAGL"}
|
|
@@ -1,19 +1,60 @@
|
|
|
1
1
|
import { PG_CSS_CLASS } from "../../../const/pg-css-class";
|
|
2
2
|
export class RowInstance {
|
|
3
3
|
constructor(rowEl, store) {
|
|
4
|
+
this.cellHandles = new Map();
|
|
4
5
|
this.el = rowEl;
|
|
5
6
|
this.store = store;
|
|
6
7
|
// Cache cell elements for fast updates
|
|
7
8
|
this.cells = Array.from(rowEl.querySelectorAll(`.${PG_CSS_CLASS.cell}`));
|
|
8
9
|
}
|
|
9
10
|
update(rowData, rowIndex) {
|
|
10
|
-
|
|
11
|
+
const state = this.store.getState();
|
|
11
12
|
for (const cellEl of this.cells) {
|
|
12
13
|
const colId = cellEl.getAttribute("col-id");
|
|
13
|
-
const col =
|
|
14
|
-
.getState()
|
|
15
|
-
.view.internalColumns.find((col) => col.id === colId);
|
|
14
|
+
const col = state.view.internalColumns.find((c) => c.id === colId);
|
|
16
15
|
const value = rowData.data[col.field];
|
|
16
|
+
const key = col.id;
|
|
17
|
+
// 1. Cleanup previous handle
|
|
18
|
+
const prevHandle = this.cellHandles.get(key);
|
|
19
|
+
prevHandle?.destroy?.();
|
|
20
|
+
this.cellHandles.delete(key);
|
|
21
|
+
// 2. Dynamic template renderer?
|
|
22
|
+
const handle = state.view.rendererAdapter?.renderColumnCellTemplate?.({
|
|
23
|
+
container: cellEl,
|
|
24
|
+
context: {
|
|
25
|
+
row: rowData,
|
|
26
|
+
value,
|
|
27
|
+
field: col.field,
|
|
28
|
+
header: col.header,
|
|
29
|
+
columnKey: `${col.field}::${col.header}`,
|
|
30
|
+
columnId: col.id,
|
|
31
|
+
rowIndex,
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
if (handle) {
|
|
35
|
+
this.cellHandles.set(key, handle);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// 3. Functional renderer?
|
|
39
|
+
if (col.cellRenderer) {
|
|
40
|
+
const result = col.cellRenderer({
|
|
41
|
+
value,
|
|
42
|
+
row: rowData,
|
|
43
|
+
column: col,
|
|
44
|
+
rowIndex,
|
|
45
|
+
colId: col.id,
|
|
46
|
+
});
|
|
47
|
+
// Clear previous content
|
|
48
|
+
cellEl.innerHTML = "";
|
|
49
|
+
if (typeof result === "string") {
|
|
50
|
+
cellEl.textContent = result;
|
|
51
|
+
}
|
|
52
|
+
else if (result instanceof HTMLElement) {
|
|
53
|
+
cellEl.appendChild(result);
|
|
54
|
+
}
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
// 4. Fallback
|
|
17
58
|
cellEl.textContent = value != null ? String(value) : "";
|
|
18
59
|
}
|
|
19
60
|
}
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"row-instance.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-instance.ts"],"names":[],"mappings":"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"}
|