@polygrid/core 1.0.431 → 1.0.433

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.
@@ -4,6 +4,7 @@ export declare class RowInstance {
4
4
  el: HTMLDivElement;
5
5
  private cells;
6
6
  private store;
7
+ private cellHandles;
7
8
  constructor(rowEl: HTMLDivElement, store: PolyGridStore);
8
9
  update(rowData: PolyGridRow, rowIndex: number): void;
9
10
  setOffset(y: number): void;
@@ -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;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"}
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;IA6D7C,SAAS,CAAC,CAAC,EAAE,MAAM;IAInB,IAAI;IAIJ,IAAI;CAGL"}
@@ -1,19 +1,64 @@
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
- // Update each cell's textContent
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 = this.store
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
+ if (state.view.rendererAdapter?.renderColumnCellTemplate) {
23
+ // Clear previous Angular view DOM
24
+ cellEl.innerHTML = "";
25
+ const handle = state.view.rendererAdapter.renderColumnCellTemplate({
26
+ container: cellEl,
27
+ context: {
28
+ row: rowData,
29
+ value,
30
+ field: col.field,
31
+ header: col.header,
32
+ columnKey: `${col.field}::${col.header}`,
33
+ columnId: col.id,
34
+ rowIndex,
35
+ },
36
+ });
37
+ if (handle) {
38
+ this.cellHandles.set(key, handle);
39
+ continue;
40
+ }
41
+ }
42
+ // 3. Functional renderer?
43
+ if (col.cellRenderer) {
44
+ const result = col.cellRenderer({
45
+ value,
46
+ row: rowData,
47
+ column: col,
48
+ rowIndex,
49
+ colId: col.id,
50
+ });
51
+ // Clear previous content
52
+ cellEl.innerHTML = "";
53
+ if (typeof result === "string") {
54
+ cellEl.textContent = result;
55
+ }
56
+ else if (result instanceof HTMLElement) {
57
+ cellEl.appendChild(result);
58
+ }
59
+ continue;
60
+ }
61
+ // 4. Fallback
17
62
  cellEl.textContent = value != null ? String(value) : "";
18
63
  }
19
64
  }
@@ -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;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"}
1
+ {"version":3,"file":"row-instance.js","sourceRoot":"","sources":["../../../../../src/engine/services/row/classes/row-instance.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polygrid/core",
3
- "version": "1.0.431",
3
+ "version": "1.0.433",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",