@genesislcap/grid-pro 14.151.2-alpha-6dc6e2c.0 → 14.152.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/dist/custom-elements.json +245 -73
- package/dist/dts/datasource/base.datasource.d.ts +1 -2
- package/dist/dts/datasource/base.datasource.d.ts.map +1 -1
- package/dist/dts/datasource/server-side.datasource.d.ts.map +1 -1
- package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts.map +1 -1
- package/dist/dts/grid-pro.d.ts +22 -13
- package/dist/dts/grid-pro.d.ts.map +1 -1
- package/dist/dts/index.d.ts +1 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/state-persistence/index.d.ts +4 -0
- package/dist/dts/state-persistence/index.d.ts.map +1 -0
- package/dist/dts/state-persistence/kv-state.d.ts +15 -0
- package/dist/dts/state-persistence/kv-state.d.ts.map +1 -0
- package/dist/dts/state-persistence/local-state.d.ts +13 -0
- package/dist/dts/state-persistence/local-state.d.ts.map +1 -0
- package/dist/dts/state-persistence/state-persistence.d.ts +24 -0
- package/dist/dts/state-persistence/state-persistence.d.ts.map +1 -0
- package/dist/esm/datasource/base.datasource.js +1 -25
- package/dist/esm/datasource/server-side.datasource.js +41 -39
- package/dist/esm/grid-pro-genesis-datasource/grid-pro-genesis-datasource.js +65 -61
- package/dist/esm/grid-pro.js +104 -114
- package/dist/esm/index.js +1 -0
- package/dist/esm/state-persistence/index.js +3 -0
- package/dist/esm/state-persistence/kv-state.js +58 -0
- package/dist/esm/state-persistence/local-state.js +30 -0
- package/dist/esm/state-persistence/state-persistence.js +7 -0
- package/dist/grid-pro.api.json +780 -203
- package/dist/grid-pro.d.ts +71 -16
- package/docs/api/grid-pro.gridpro.applytemplatedefinitions.md +2 -2
- package/docs/api/grid-pro.gridpro.getsavedcolumnstate.md +3 -3
- package/docs/api/grid-pro.gridpro.md +2 -3
- package/docs/api/grid-pro.gridpro.mergeallcolumndefsandstates.md +2 -2
- package/docs/api/grid-pro.gridpro.statepersistence.md +11 -0
- package/docs/api/grid-pro.kvstoragestatepersistence.getcolumnstate.md +22 -0
- package/docs/api/grid-pro.kvstoragestatepersistence.kvstorage.md +11 -0
- package/docs/api/grid-pro.kvstoragestatepersistence.md +29 -0
- package/docs/api/grid-pro.kvstoragestatepersistence.savecolumnstate.md +23 -0
- package/docs/api/grid-pro.kvstoragestatepersistence.session.md +11 -0
- package/docs/api/grid-pro.localstoragestatepersistence.getcolumnstate.md +22 -0
- package/docs/api/grid-pro.localstoragestatepersistence.md +28 -0
- package/docs/api/grid-pro.localstoragestatepersistence.savecolumnstate.md +23 -0
- package/docs/api/grid-pro.localstoragestatepersistence.session.md +11 -0
- package/docs/api/grid-pro.md +3 -0
- package/docs/api/grid-pro.statepersistence.getcolumnstate.md +24 -0
- package/docs/api/grid-pro.statepersistence.md +21 -0
- package/docs/api/grid-pro.statepersistence.savecolumnstate.md +25 -0
- package/docs/api-report.md +42 -11
- package/package.json +14 -13
- package/docs/api/grid-pro.gridpro.selectedcolid.md +0 -11
- package/docs/api/grid-pro.gridpro.selectedrowid.md +0 -11
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ColumnState } from '@ag-grid-community/core';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a state persistence and its capabilities.
|
|
4
|
+
* Provides methods to set and get columns from the storage.
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface StatePersistence {
|
|
8
|
+
/**
|
|
9
|
+
* Returns the column state for the given key.
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
getColumnState(persistColumnStateKey: string): Promise<ColumnState[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Saves the column state for the given key.
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
saveColumnState(persistColumnStateKey: string, columnState: ColumnState[]): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* The DI token for the StatePersistence interface.
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare const StatePersistence: import("@microsoft/fast-foundation").InterfaceSymbol<StatePersistence>;
|
|
24
|
+
//# sourceMappingURL=state-persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-persistence.d.ts","sourceRoot":"","sources":["../../../src/state-persistence/state-persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,cAAc,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACtE;;;OAGG;IACH,eAAe,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3F;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,wEAE5B,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { Events, } from '@ag-grid-community/core';
|
|
3
2
|
import { DatasourceDefaults } from '@genesislcap/foundation-comms';
|
|
4
3
|
import { Connect } from '@genesislcap/foundation-comms';
|
|
5
|
-
import { attr,
|
|
4
|
+
import { attr, observable } from '@microsoft/fast-element';
|
|
6
5
|
import { FoundationElement } from '@microsoft/fast-foundation';
|
|
7
6
|
export class GenesisGridDatasourceElement extends FoundationElement {
|
|
8
7
|
constructor() {
|
|
@@ -178,35 +177,12 @@ export class GridProBaseDatasource extends GenesisGridDatasourceElement {
|
|
|
178
177
|
this.applyTransactionAsync(this.mapTransaction(agTransaction, [operation]), (changedNodes) => {
|
|
179
178
|
this.flashAddedCells(changedNodes.add);
|
|
180
179
|
});
|
|
181
|
-
if (this.agGrid.blockScrollingOnContextMenu) {
|
|
182
|
-
const listenerEvent = (e) => {
|
|
183
|
-
e.results.forEach((result) => {
|
|
184
|
-
if (result.add.length || result.remove.length) {
|
|
185
|
-
this.setPreviouslySelectedCell();
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
};
|
|
189
|
-
this.agGrid.gridApi.addEventListener(Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED, listenerEvent);
|
|
190
|
-
}
|
|
191
180
|
}
|
|
192
181
|
else {
|
|
193
182
|
const changedNodes = this.applyTransaction(this.mapTransaction(agTransaction, [operation]));
|
|
194
183
|
this.flashAddedCells(changedNodes.add);
|
|
195
|
-
if (this.agGrid.blockScrollingOnContextMenu) {
|
|
196
|
-
this.setPreviouslySelectedCell();
|
|
197
|
-
}
|
|
198
184
|
}
|
|
199
185
|
}
|
|
200
|
-
setPreviouslySelectedCell() {
|
|
201
|
-
const previouslySelectedRowNode = this.agGrid.gridApi.getRowNode(this.agGrid.selectedRowId);
|
|
202
|
-
const previouslySelectedColId = this.agGrid.selectedColId;
|
|
203
|
-
if (!previouslySelectedRowNode || !previouslySelectedColId)
|
|
204
|
-
return;
|
|
205
|
-
DOM.queueUpdate(() => {
|
|
206
|
-
this.agGrid.gridApi.setFocusedCell(previouslySelectedRowNode.rowIndex, previouslySelectedColId);
|
|
207
|
-
this.agGrid.gridApi.ensureIndexVisible(previouslySelectedRowNode.rowIndex, 'middle');
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
186
|
applyTransaction(agTransaction) {
|
|
211
187
|
throw new Error('Method not implemented.');
|
|
212
188
|
}
|
|
@@ -374,7 +374,7 @@ let GridProServerSideDatasource = class GridProServerSideDatasource extends Life
|
|
|
374
374
|
this.indexes = this.getResourceIndexes(meta.INDEXES);
|
|
375
375
|
this.originalFieldDef = extractFieldDefinitions(meta);
|
|
376
376
|
const fieldMetadata = toFieldMetadata(this.originalFieldDef);
|
|
377
|
-
const agColumnDefs = this.getAgColumnDefs(fieldMetadata);
|
|
377
|
+
const agColumnDefs = yield this.getAgColumnDefs(fieldMetadata);
|
|
378
378
|
this.agGrid.gridApi.setColumnDefs(agColumnDefs);
|
|
379
379
|
const dataserverStream = yield this.createDataserverStream();
|
|
380
380
|
this.ssrmDatasource = new StreamDatasource({
|
|
@@ -483,45 +483,47 @@ let GridProServerSideDatasource = class GridProServerSideDatasource extends Life
|
|
|
483
483
|
});
|
|
484
484
|
}
|
|
485
485
|
getAgColumnDefs(fieldsMetadata) {
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
486
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
487
|
+
const colDefsFromGenesisData = fieldsMetadata === null || fieldsMetadata === void 0 ? void 0 : fieldsMetadata.flatMap((field) => {
|
|
488
|
+
var _a;
|
|
489
|
+
const colDefBase = {};
|
|
490
|
+
colDefBase.filterParams = getFilterParamsByFieldType(field.type);
|
|
491
|
+
switch (field.type) {
|
|
492
|
+
case FieldTypeEnum.NUMBER:
|
|
493
|
+
colDefBase.cellEditor = GridProRendererTypes.numberEditor;
|
|
494
|
+
break;
|
|
495
|
+
case FieldTypeEnum.BOOLEAN:
|
|
496
|
+
if (this.agGrid.autoCellRendererByType) {
|
|
497
|
+
colDefBase.cellRenderer = GridProRendererTypes.boolean;
|
|
498
|
+
colDefBase.cellEditor = GridProRendererTypes.boolean;
|
|
499
|
+
}
|
|
500
|
+
break;
|
|
501
|
+
case FieldTypeEnum.DATE:
|
|
502
|
+
colDefBase.valueFormatter = dateValueFormatter;
|
|
503
|
+
break;
|
|
504
|
+
case FieldTypeEnum.DATETIME:
|
|
505
|
+
colDefBase.valueFormatter = dateTimeValueFormatter;
|
|
506
|
+
break;
|
|
507
|
+
case FieldTypeEnum.ENUM:
|
|
508
|
+
colDefBase.cellEditor = GridProRendererTypes.selectEditor;
|
|
509
|
+
colDefBase.cellEditorParams = {
|
|
510
|
+
values: field.enumOptions.map((option) => ({ value: option, label: option })),
|
|
511
|
+
valueField: 'value',
|
|
512
|
+
labelField: 'label',
|
|
513
|
+
};
|
|
514
|
+
break;
|
|
515
|
+
default:
|
|
516
|
+
break;
|
|
517
|
+
}
|
|
518
|
+
const templateColDef = (_a = this.agGrid.gridApi) === null || _a === void 0 ? void 0 : _a.getColumnDef(field.name);
|
|
519
|
+
if (this.fields && !this.fields.includes(field.name)) {
|
|
520
|
+
return [];
|
|
521
|
+
}
|
|
522
|
+
return Object.assign(Object.assign({ field: field.name, type: getColumnType(field.type), filter: getFilterByFieldType(field.type), sortable: [].concat(...this.indexes.values()).includes(field.name) }, colDefBase), templateColDef);
|
|
523
|
+
});
|
|
524
|
+
const colDefsMergedWithTemplateDefs = yield this.agGrid.mergeAllColumnDefsAndStates(colDefsFromGenesisData, true);
|
|
525
|
+
return colDefsMergedWithTemplateDefs;
|
|
522
526
|
});
|
|
523
|
-
const colDefsMergedWithTemplateDefs = this.agGrid.mergeAllColumnDefsAndStates(colDefsFromGenesisData, true);
|
|
524
|
-
return colDefsMergedWithTemplateDefs;
|
|
525
527
|
}
|
|
526
528
|
applyTransaction(agTransaction) {
|
|
527
529
|
return this.agGrid.gridApi.applyServerSideTransaction(agTransaction);
|
|
@@ -197,16 +197,18 @@ let GridProGenesisDatasource = class GridProGenesisDatasource extends LifecycleM
|
|
|
197
197
|
*/
|
|
198
198
|
setRowData(rowData) {
|
|
199
199
|
var _a;
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
200
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
201
|
+
const preSetColumnDefs = (_a = this.agGrid.gridApi) === null || _a === void 0 ? void 0 : _a.getColumnDefs();
|
|
202
|
+
if (!preSetColumnDefs || preSetColumnDefs.length === 0) {
|
|
203
|
+
const agColumnDefs = yield this.getAgColumnDefs(this.datasource.fieldMetadata);
|
|
204
|
+
if (agColumnDefs) {
|
|
205
|
+
this.agGrid.gridApi.setColumnDefs(agColumnDefs);
|
|
206
|
+
}
|
|
205
207
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
208
|
+
const data = this.rowDataMapper ? this.rowDataMapper(rowData) : rowData;
|
|
209
|
+
this.agGrid.gridApi.setRowData(data);
|
|
210
|
+
this.requiresFullRowDataAndColDefs = false;
|
|
211
|
+
});
|
|
210
212
|
}
|
|
211
213
|
/**
|
|
212
214
|
* Resets the grid data while keeping columnDefs and sends a DATA_LOGOFF message if it's a stream.
|
|
@@ -377,61 +379,63 @@ let GridProGenesisDatasource = class GridProGenesisDatasource extends LifecycleM
|
|
|
377
379
|
}
|
|
378
380
|
// FUTURE: Work with the field types vs ag grid column def types!
|
|
379
381
|
getAgColumnDefs(fieldsMetadata) {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
withTime: true,
|
|
409
|
-
};
|
|
410
|
-
break;
|
|
411
|
-
case FieldTypeEnum.ENUM:
|
|
412
|
-
if (field.enumOptions) {
|
|
413
|
-
colDefBase.cellEditor = GridProRendererTypes.selectEditor;
|
|
382
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
383
|
+
const colDefsFromGenesisData = fieldsMetadata === null || fieldsMetadata === void 0 ? void 0 : fieldsMetadata.flatMap((field) => {
|
|
384
|
+
var _a;
|
|
385
|
+
const colDefBase = {};
|
|
386
|
+
colDefBase.filterParams = getFilterParamsByFieldType(field.type);
|
|
387
|
+
switch (field.type) {
|
|
388
|
+
case FieldTypeEnum.STRING:
|
|
389
|
+
colDefBase.cellEditor = GridProRendererTypes.stringEditor;
|
|
390
|
+
break;
|
|
391
|
+
case FieldTypeEnum.NUMBER:
|
|
392
|
+
colDefBase.cellEditor = GridProRendererTypes.numberEditor;
|
|
393
|
+
colDefBase.filter = 'agNumberColumnFilter';
|
|
394
|
+
break;
|
|
395
|
+
case FieldTypeEnum.BOOLEAN:
|
|
396
|
+
if (this.agGrid.autoCellRendererByType) {
|
|
397
|
+
colDefBase.cellRenderer = GridProRendererTypes.boolean;
|
|
398
|
+
colDefBase.cellEditor = GridProRendererTypes.boolean;
|
|
399
|
+
}
|
|
400
|
+
break;
|
|
401
|
+
case FieldTypeEnum.DATE:
|
|
402
|
+
colDefBase.valueFormatter = dateValueFormatter;
|
|
403
|
+
colDefBase.cellEditor = GridProRendererTypes.dateEditor;
|
|
404
|
+
colDefBase.filter = 'agDateColumnFilter';
|
|
405
|
+
break;
|
|
406
|
+
case FieldTypeEnum.DATETIME:
|
|
407
|
+
colDefBase.valueFormatter = dateTimeValueFormatter;
|
|
408
|
+
colDefBase.filter = 'agDateColumnFilter';
|
|
409
|
+
colDefBase.cellEditor = GridProRendererTypes.dateEditor;
|
|
414
410
|
colDefBase.cellEditorParams = {
|
|
415
|
-
|
|
416
|
-
valueField: 'value',
|
|
417
|
-
labelField: 'label',
|
|
411
|
+
withTime: true,
|
|
418
412
|
};
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
413
|
+
break;
|
|
414
|
+
case FieldTypeEnum.ENUM:
|
|
415
|
+
if (field.enumOptions) {
|
|
416
|
+
colDefBase.cellEditor = GridProRendererTypes.selectEditor;
|
|
417
|
+
colDefBase.cellEditorParams = {
|
|
418
|
+
values: field.enumOptions.map((option) => ({ value: option, label: option })),
|
|
419
|
+
valueField: 'value',
|
|
420
|
+
labelField: 'label',
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
logger.warn(`No enumOptions found for field ${field.name}. Default cell editor applied.`);
|
|
425
|
+
}
|
|
426
|
+
break;
|
|
427
|
+
default:
|
|
428
|
+
break;
|
|
429
|
+
}
|
|
430
|
+
const colDefExtras = (_a = this.agGrid.gridApi) === null || _a === void 0 ? void 0 : _a.getColumnDef(field.name);
|
|
431
|
+
if (this.fields && !this.fields.includes(field.name)) {
|
|
432
|
+
return [];
|
|
433
|
+
}
|
|
434
|
+
return Object.assign(Object.assign({ field: field.name }, colDefBase), colDefExtras);
|
|
435
|
+
});
|
|
436
|
+
const colDefsMergedWithTemplateDefs = yield this.agGrid.mergeAllColumnDefsAndStates(colDefsFromGenesisData, true);
|
|
437
|
+
return colDefsMergedWithTemplateDefs;
|
|
432
438
|
});
|
|
433
|
-
const colDefsMergedWithTemplateDefs = this.agGrid.mergeAllColumnDefsAndStates(colDefsFromGenesisData, true);
|
|
434
|
-
return colDefsMergedWithTemplateDefs;
|
|
435
439
|
}
|
|
436
440
|
buildCriteria() {
|
|
437
441
|
var _a;
|