@tipolox/litgrid-web 1.0.3 → 1.1.0
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/README.md +1 -0
- package/dist/components/DataGrid.d.ts +7 -0
- package/dist/components/DataGrid.d.ts.map +1 -1
- package/dist/components/DataGrid.js +109 -27
- package/dist/components/DataGrid.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -4
- package/src/DataGrid.ts +1 -0
- package/src/clipboard/serializeSelectedCells.ts +62 -0
- package/src/clipboard/serializeSelectedRows.ts +42 -0
- package/src/columnState/columnState.ts +102 -0
- package/src/components/DataGrid.ts +3188 -0
- package/src/index.ts +16 -0
- package/src/sizing/columnSizing.ts +25 -0
- package/src/sizing/constants.ts +3 -0
- package/src/sizing/rowSizing.ts +5 -0
- package/src/theme/darkTheme.ts +34 -0
- package/src/theme/lightTheme.ts +35 -0
- package/src/types.ts +108 -0
package/README.md
CHANGED
|
@@ -42,6 +42,7 @@ grid.viewportHeight = 400
|
|
|
42
42
|
|
|
43
43
|
- [Live demo](https://tipolox.com/litgrid/demo)
|
|
44
44
|
- [Repository](https://github.com/tipolox/litgrid)
|
|
45
|
+
- [v1.1.0 upgrade guide](https://github.com/tipolox/litgrid/blob/main/docs/installation.md#upgrading-to-v110)
|
|
45
46
|
- [Web Component guide](https://github.com/tipolox/litgrid/blob/main/docs/vanilla-js-guide.md)
|
|
46
47
|
- [API reference](https://github.com/tipolox/litgrid/blob/main/docs/api-reference.md)
|
|
47
48
|
|
|
@@ -19,6 +19,7 @@ export declare class DataGrid extends LitElement {
|
|
|
19
19
|
private scrollbarWidth;
|
|
20
20
|
private columnDefs;
|
|
21
21
|
private sourceColumnDefs;
|
|
22
|
+
private _inferColumns;
|
|
22
23
|
private columnWidths;
|
|
23
24
|
private hiddenColumnKeys;
|
|
24
25
|
private _columnStateStorageKey;
|
|
@@ -202,6 +203,7 @@ export declare class DataGrid extends LitElement {
|
|
|
202
203
|
private updateColumnDragPreview;
|
|
203
204
|
private removeColumnDragPreview;
|
|
204
205
|
private stopColumnReorder;
|
|
206
|
+
private finishColumnReorder;
|
|
205
207
|
private getGridCellId;
|
|
206
208
|
private getHeaderRowId;
|
|
207
209
|
private getHeaderMenuId;
|
|
@@ -212,6 +214,7 @@ export declare class DataGrid extends LitElement {
|
|
|
212
214
|
private startColumnResize;
|
|
213
215
|
private handleColumnResize;
|
|
214
216
|
private stopColumnResize;
|
|
217
|
+
private finishColumnResize;
|
|
215
218
|
private startRowResize;
|
|
216
219
|
private handleRowResize;
|
|
217
220
|
private stopRowResize;
|
|
@@ -245,6 +248,10 @@ export declare class DataGrid extends LitElement {
|
|
|
245
248
|
private areAllDisplayedRowsSelected;
|
|
246
249
|
private hasPartiallySelectedDisplayedRows;
|
|
247
250
|
private handleSelectAllRows;
|
|
251
|
+
get inferColumns(): boolean;
|
|
252
|
+
set inferColumns(value: boolean);
|
|
253
|
+
/** Reconcile an explicit schema, optionally switching its persistence namespace atomically. */
|
|
254
|
+
updateColumnSchema(value: GridColumn[], applyOrder?: boolean, storageKey?: string | null): void;
|
|
248
255
|
set columns(value: GridColumn[]);
|
|
249
256
|
get columnStateStorageKey(): string | null;
|
|
250
257
|
set columnStateStorageKey(value: string | null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../../src/components/DataGrid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA2C,MAAM,KAAK,CAAA;AAEzE,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAA;AAO9B,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAQxD,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAA;AA6CtC,qBAAa,QAAS,SAAQ,UAAU;IACtC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAI;IAEjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAChE,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,mBAAmB,CAIzB;IACF,OAAO,CAAC,sBAAsB,CAI5B;IACF,OAAO,CAAC,iBAAiB,CAIvB;IACF,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,QAAQ,CAAI;IACpB,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,oBAAoB,CAAI;IAChC,OAAO,CAAC,aAAa,CAAI;IACzB,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAA4B;IAC9C,OAAO,CAAC,gBAAgB,CAAoB;IAC9C,OAAO,CAAC,sBAAsB,CAAsB;IACpD,OAAO,CAAC,UAAU,CAA4B;IAE9C,OAAO,CAAC,aAAa,CAAyC;IAC5D,OAAO,CAAC,iBAAiB,CAAiC;IAC5D,OAAO,CAAC,cAAc,CAA8B;IACpD,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,qBAAqB,CAA6C;IAC1E,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,qBAAqB,CAA6C;IAC1E,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,iBAAiB,CAAI;IAC7B,OAAO,CAAC,wBAAwB,CAAI;IAClC,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,UAAU,CAA0B;IAE9C,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,gBAAgB,CAAI;IAC5B,OAAO,CAAC,mBAAmB,CAAI;IAC/B,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,qBAAqB,CAAQ;IACrC,OAAO,CAAC,4BAA4B,CAAQ;IAC5C,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,4BAA4B,CAAK;IAIzC,OAAO,CAAC,mBAAmB,CAAW;IACtC,OAAO,CAAC,aAAa,CAAI;IACvB,OAAO,CAAC,gBAAgB,CAAI;IAC9B,4BAA4B,SAAQ;IACpC,qBAAqB,SAAM;IACjB,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,yBAAyB,EAAE,OAAO,CAAA;IAE1C,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;MAKlB;;IAUD,MAAM,CAAC,MAAM,4BA0gBP;IAEN,YAAY;IAIR,OAAO;IA+BT,oBAAoB;IAyBtB,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,oBAAoB;IAkB1B,OAAO,CAAC,kBAAkB;IAuB5B,OAAO,CAAC,iBAAiB;IAKzB,cAAc,CAAC,MAAM,EAAE,UAAU;IAIjC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB,CAAwC;IAElE,YAAY,CAAC,QAAQ,EAAE,MAAM;IAI7B,IAAI,iBAAiB,IAIQ,MAAM,CAFlC;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAOlC;IAED,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,mBAAmB;IAI3B,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK7C,cAAc,CAAC,QAAQ,EAAE,MAAM;IAK/B,kBAAkB;IAKhB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAUjD,gBAAgB,CAAC,SAAS,EAAE,MAAM;IAOhC,oBAAoB;IAStB,cAAc;IAIZ,OAAO,CAAC,gBAAgB;IAiB1B,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAcjD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE;IA2BjC,gBAAgB;IAWhB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;IAgCtD,eAAe,CAAC,SAAS,EAAE,MAAM;IAI/B,oBAAoB;IAItB,cAAc,IAAI,eAAe;IAIjC,cAAc,CAAC,KAAK,EAAE,eAAe;IAYrC,gBAAgB;IAYhB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,yBAAyB;IAQ/B,qBAAqB;IASrB,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,mBAAmB;IA8B7B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,oBAAoB;IAyF5B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,gBAAgB;IAOxB,cAAc,CAAC,KAAK,EAAE,MAAM;IAM5B,gBAAgB;IAIhB,cAAc;IAId,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,sBAAsB;IAmB9B,SAAS,CAAC,MAAM,EAAE,UAAU;IAQ5B,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM;IAY9B,UAAU;IAIV,OAAO,CAAC,SAAS,EAAE,MAAM;IAQzB,WAAW,CAAC,QAAQ,EAAE,MAAM;IAQ5B,aAAa;IAIb,gBAAgB;IAIhB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe;IAcpD,aAAa;IAQb,cAAc;IAQd,YAAY,IAAI,aAAa;IAI7B,aAAa,CAAC,QAAQ,EAAE,MAAM;IAI5B,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAIpD,OAAO,CAAC,6BAA6B;IAU7B,iBAAiB;IAezB,OAAO,CAAC,4BAA4B;IAU9B,gBAAgB;IAetB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,gBAAgB;IAIxB,aAAa,CAAC,SAAS,EAAE,MAAM;IAU7B,iBAAiB;;;;IAiBnB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,mBAAmB,CAyC1B;IAEC,OAAO,CAAC,uBAAuB;IA0CjC,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"DataGrid.d.ts","sourceRoot":"","sources":["../../src/components/DataGrid.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,7 @@ export class DataGrid extends LitElement {
|
|
|
61
61
|
this.scrollbarWidth = 0;
|
|
62
62
|
this.columnDefs = [];
|
|
63
63
|
this.sourceColumnDefs = [];
|
|
64
|
+
this._inferColumns = true;
|
|
64
65
|
this.columnWidths = new Map();
|
|
65
66
|
this.hiddenColumnKeys = new Set();
|
|
66
67
|
this._columnStateStorageKey = null;
|
|
@@ -149,22 +150,7 @@ export class DataGrid extends LitElement {
|
|
|
149
150
|
this.requestUpdate();
|
|
150
151
|
};
|
|
151
152
|
this.stopColumnReorder = () => {
|
|
152
|
-
|
|
153
|
-
if (!state)
|
|
154
|
-
return;
|
|
155
|
-
this.columnReorderState = null;
|
|
156
|
-
window.removeEventListener('pointermove', this.handleColumnReorder);
|
|
157
|
-
window.removeEventListener('pointerup', this.stopColumnReorder);
|
|
158
|
-
window.removeEventListener('pointercancel', this.stopColumnReorder);
|
|
159
|
-
this.removeColumnDragPreview();
|
|
160
|
-
if (state.hasMoved)
|
|
161
|
-
this.stopBodyResize();
|
|
162
|
-
if (state.hasMoved && state.sourceIndex !== state.targetIndex) {
|
|
163
|
-
this.moveColumn(state.columnKey, state.targetIndex);
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
this.requestUpdate();
|
|
167
|
-
}
|
|
153
|
+
this.finishColumnReorder();
|
|
168
154
|
};
|
|
169
155
|
this.handleColumnResize = (event) => {
|
|
170
156
|
if (!this.columnResizeState) {
|
|
@@ -175,14 +161,7 @@ export class DataGrid extends LitElement {
|
|
|
175
161
|
this.requestUpdate();
|
|
176
162
|
};
|
|
177
163
|
this.stopColumnResize = () => {
|
|
178
|
-
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
this.columnResizeState = null;
|
|
182
|
-
this.commitColumnState('resize');
|
|
183
|
-
this.stopBodyResize();
|
|
184
|
-
window.removeEventListener('pointermove', this.handleColumnResize);
|
|
185
|
-
window.removeEventListener('pointerup', this.stopColumnResize);
|
|
164
|
+
this.finishColumnResize();
|
|
186
165
|
};
|
|
187
166
|
this.handleRowResize = (event) => {
|
|
188
167
|
if (!this.rowResizeState) {
|
|
@@ -852,7 +831,7 @@ export class DataGrid extends LitElement {
|
|
|
852
831
|
}
|
|
853
832
|
}
|
|
854
833
|
getResolvedColumns() {
|
|
855
|
-
if (this.columnDefs.length > 0) {
|
|
834
|
+
if (this.columnDefs.length > 0 || !this._inferColumns) {
|
|
856
835
|
return this.columnDefs;
|
|
857
836
|
}
|
|
858
837
|
const firstRow = this.engine.getRows()[0];
|
|
@@ -1084,7 +1063,7 @@ export class DataGrid extends LitElement {
|
|
|
1084
1063
|
return null;
|
|
1085
1064
|
}
|
|
1086
1065
|
}
|
|
1087
|
-
restorePersistedColumnState() {
|
|
1066
|
+
restorePersistedColumnState(notify = true) {
|
|
1088
1067
|
if (!this._columnStateStorageKey || this.sourceColumnDefs.length === 0)
|
|
1089
1068
|
return;
|
|
1090
1069
|
const storage = this.getColumnStateStorage();
|
|
@@ -1100,7 +1079,8 @@ export class DataGrid extends LitElement {
|
|
|
1100
1079
|
this.hiddenColumnKeys = resolvedState.hiddenKeys;
|
|
1101
1080
|
this.activeCell = null;
|
|
1102
1081
|
this.requestUpdate();
|
|
1103
|
-
|
|
1082
|
+
if (notify)
|
|
1083
|
+
this.dispatchColumnStateChange('restore');
|
|
1104
1084
|
}
|
|
1105
1085
|
catch {
|
|
1106
1086
|
// Storage may be unavailable or blocked by browser privacy settings.
|
|
@@ -1743,6 +1723,24 @@ export class DataGrid extends LitElement {
|
|
|
1743
1723
|
this.columnDragPreview?.remove();
|
|
1744
1724
|
this.columnDragPreview = null;
|
|
1745
1725
|
}
|
|
1726
|
+
finishColumnReorder(commit = true) {
|
|
1727
|
+
const state = this.columnReorderState;
|
|
1728
|
+
if (!state)
|
|
1729
|
+
return;
|
|
1730
|
+
this.columnReorderState = null;
|
|
1731
|
+
window.removeEventListener('pointermove', this.handleColumnReorder);
|
|
1732
|
+
window.removeEventListener('pointerup', this.stopColumnReorder);
|
|
1733
|
+
window.removeEventListener('pointercancel', this.stopColumnReorder);
|
|
1734
|
+
this.removeColumnDragPreview();
|
|
1735
|
+
if (state.hasMoved)
|
|
1736
|
+
this.stopBodyResize();
|
|
1737
|
+
if (commit && state.hasMoved && state.sourceIndex !== state.targetIndex) {
|
|
1738
|
+
this.moveColumn(state.columnKey, state.targetIndex);
|
|
1739
|
+
}
|
|
1740
|
+
else {
|
|
1741
|
+
this.requestUpdate();
|
|
1742
|
+
}
|
|
1743
|
+
}
|
|
1746
1744
|
getGridCellId(rowIndex, columnIndex) {
|
|
1747
1745
|
return `${this.gridId}-cell-${rowIndex}-${columnIndex}`;
|
|
1748
1746
|
}
|
|
@@ -1789,6 +1787,17 @@ export class DataGrid extends LitElement {
|
|
|
1789
1787
|
window.addEventListener('pointermove', this.handleColumnResize);
|
|
1790
1788
|
window.addEventListener('pointerup', this.stopColumnResize);
|
|
1791
1789
|
}
|
|
1790
|
+
finishColumnResize(commit = true) {
|
|
1791
|
+
if (!this.columnResizeState) {
|
|
1792
|
+
return;
|
|
1793
|
+
}
|
|
1794
|
+
this.columnResizeState = null;
|
|
1795
|
+
if (commit)
|
|
1796
|
+
this.commitColumnState('resize');
|
|
1797
|
+
this.stopBodyResize();
|
|
1798
|
+
window.removeEventListener('pointermove', this.handleColumnResize);
|
|
1799
|
+
window.removeEventListener('pointerup', this.stopColumnResize);
|
|
1800
|
+
}
|
|
1792
1801
|
startRowResize(event, rowIndex) {
|
|
1793
1802
|
event.preventDefault();
|
|
1794
1803
|
event.stopPropagation();
|
|
@@ -2284,6 +2293,79 @@ export class DataGrid extends LitElement {
|
|
|
2284
2293
|
}
|
|
2285
2294
|
this.requestUpdate();
|
|
2286
2295
|
}
|
|
2296
|
+
get inferColumns() {
|
|
2297
|
+
return this._inferColumns;
|
|
2298
|
+
}
|
|
2299
|
+
set inferColumns(value) {
|
|
2300
|
+
if (this._inferColumns === value)
|
|
2301
|
+
return;
|
|
2302
|
+
this._inferColumns = value;
|
|
2303
|
+
this.requestUpdate();
|
|
2304
|
+
}
|
|
2305
|
+
/** Reconcile an explicit schema, optionally switching its persistence namespace atomically. */
|
|
2306
|
+
updateColumnSchema(value, applyOrder = false, storageKey = this._columnStateStorageKey) {
|
|
2307
|
+
const columns = value.map(column => ({ ...column }));
|
|
2308
|
+
const nextByKey = new Map(columns.map(column => [column.key, column]));
|
|
2309
|
+
if (nextByKey.size !== columns.length)
|
|
2310
|
+
throw new Error('Duplicate column schema keys.');
|
|
2311
|
+
const previousByKey = new Map(this.sourceColumnDefs.map(column => [column.key, column]));
|
|
2312
|
+
const activeCell = this.activeCell;
|
|
2313
|
+
const activeColumnKey = activeCell
|
|
2314
|
+
? this.getVisibleColumns()[activeCell.columnIndex]?.key
|
|
2315
|
+
: undefined;
|
|
2316
|
+
const nextStorageKey = typeof storageKey === 'string' && storageKey.trim() ? storageKey : null;
|
|
2317
|
+
const storageChanged = nextStorageKey !== this._columnStateStorageKey;
|
|
2318
|
+
this.finishColumnResize(false);
|
|
2319
|
+
this.finishColumnReorder(false);
|
|
2320
|
+
if (storageChanged) {
|
|
2321
|
+
// Install the target schema and defaults before restoring its namespace.
|
|
2322
|
+
// Do not reconcile/persist the outgoing view, or carry its customization
|
|
2323
|
+
// into an unsaved target. A namespace switch itself performs no writes.
|
|
2324
|
+
this._columnStateStorageKey = nextStorageKey;
|
|
2325
|
+
this.sourceColumnDefs = columns;
|
|
2326
|
+
this.columnDefs = [...columns];
|
|
2327
|
+
this.columnWidths.clear();
|
|
2328
|
+
this.hiddenColumnKeys = new Set(columns.filter(column => column.hidden).map(column => column.key));
|
|
2329
|
+
this.restorePersistedColumnState(false);
|
|
2330
|
+
}
|
|
2331
|
+
else {
|
|
2332
|
+
for (const key of this.columnWidths.keys()) {
|
|
2333
|
+
if (!nextByKey.has(key))
|
|
2334
|
+
this.columnWidths.delete(key);
|
|
2335
|
+
}
|
|
2336
|
+
for (const key of this.hiddenColumnKeys) {
|
|
2337
|
+
if (!nextByKey.has(key))
|
|
2338
|
+
this.hiddenColumnKeys.delete(key);
|
|
2339
|
+
}
|
|
2340
|
+
for (const column of columns) {
|
|
2341
|
+
const previous = previousByKey.get(column.key);
|
|
2342
|
+
if (!previous || previous.width !== column.width)
|
|
2343
|
+
this.columnWidths.delete(column.key);
|
|
2344
|
+
if (!previous || previous.hidden !== column.hidden) {
|
|
2345
|
+
if (column.hidden)
|
|
2346
|
+
this.hiddenColumnKeys.add(column.key);
|
|
2347
|
+
else
|
|
2348
|
+
this.hiddenColumnKeys.delete(column.key);
|
|
2349
|
+
}
|
|
2350
|
+
}
|
|
2351
|
+
// Surviving columns keep user order; newly registered columns follow them.
|
|
2352
|
+
// An explicit Order change reapplies the complete deterministic schema order.
|
|
2353
|
+
const retained = this.columnDefs.filter(column => nextByKey.has(column.key))
|
|
2354
|
+
.map(column => nextByKey.get(column.key));
|
|
2355
|
+
const retainedKeys = new Set(retained.map(column => column.key));
|
|
2356
|
+
this.columnDefs = applyOrder ? columns : [
|
|
2357
|
+
...retained, ...columns.filter(column => !retainedKeys.has(column.key))
|
|
2358
|
+
];
|
|
2359
|
+
this.sourceColumnDefs = columns;
|
|
2360
|
+
this.persistColumnState();
|
|
2361
|
+
}
|
|
2362
|
+
this.clearBestFitWidths();
|
|
2363
|
+
if (activeCell) {
|
|
2364
|
+
const columnIndex = this.getVisibleColumns().findIndex(column => column.key === activeColumnKey);
|
|
2365
|
+
this.activeCell = columnIndex < 0 ? null : { ...activeCell, columnIndex };
|
|
2366
|
+
}
|
|
2367
|
+
this.requestUpdate();
|
|
2368
|
+
}
|
|
2287
2369
|
set columns(value) {
|
|
2288
2370
|
const activeCell = this.activeCell;
|
|
2289
2371
|
this.sourceColumnDefs = Array.isArray(value) ? [...value] : [];
|