@genesislcap/grid-pro 14.157.1-alpha-e60ad86.0 → 14.158.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.
Files changed (49) hide show
  1. package/dist/custom-elements.json +272 -89
  2. package/dist/dts/datasource/base.datasource.d.ts +3 -1
  3. package/dist/dts/datasource/base.datasource.d.ts.map +1 -1
  4. package/dist/dts/datasource/client-side.grid-definitions.d.ts +9 -0
  5. package/dist/dts/datasource/client-side.grid-definitions.d.ts.map +1 -0
  6. package/dist/dts/datasource/server-side.datasource.d.ts +6 -5
  7. package/dist/dts/datasource/server-side.datasource.d.ts.map +1 -1
  8. package/dist/dts/datasource/server-side.grid-definitions.d.ts +1 -17
  9. package/dist/dts/datasource/server-side.grid-definitions.d.ts.map +1 -1
  10. package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts +24 -7
  11. package/dist/dts/grid-pro-genesis-datasource/grid-pro-genesis-datasource.d.ts.map +1 -1
  12. package/dist/dts/grid-pro.d.ts +27 -18
  13. package/dist/dts/grid-pro.d.ts.map +1 -1
  14. package/dist/dts/grid-pro.definitions.d.ts +0 -8
  15. package/dist/dts/grid-pro.definitions.d.ts.map +1 -1
  16. package/dist/dts/state-persistence/kv-state.d.ts +6 -0
  17. package/dist/dts/state-persistence/kv-state.d.ts.map +1 -1
  18. package/dist/dts/state-persistence/local-state.d.ts +6 -0
  19. package/dist/dts/state-persistence/local-state.d.ts.map +1 -1
  20. package/dist/dts/state-persistence/state-persistence.d.ts +14 -0
  21. package/dist/dts/state-persistence/state-persistence.d.ts.map +1 -1
  22. package/dist/esm/datasource/base.datasource.js +59 -4
  23. package/dist/esm/datasource/client-side.grid-definitions.js +37 -0
  24. package/dist/esm/datasource/server-side.datasource.js +7 -40
  25. package/dist/esm/datasource/server-side.grid-definitions.js +1 -45
  26. package/dist/esm/grid-pro-genesis-datasource/grid-pro-genesis-datasource.js +7 -58
  27. package/dist/esm/grid-pro.definitions.js +10 -47
  28. package/dist/esm/grid-pro.js +37 -13
  29. package/dist/esm/state-persistence/kv-state.js +21 -0
  30. package/dist/esm/state-persistence/local-state.js +19 -0
  31. package/dist/grid-pro.api.json +516 -1
  32. package/dist/grid-pro.d.ts +85 -39
  33. package/docs/api/grid-pro.gridpro.getfiltermodel.md +17 -0
  34. package/docs/api/grid-pro.gridpro.md +5 -1
  35. package/docs/api/grid-pro.gridpro.persistcolumnstatekey.md +1 -1
  36. package/docs/api/grid-pro.gridpro.persistfiltermodelkey.md +13 -0
  37. package/docs/api/grid-pro.gridpro.restorecachedfilterconfig.md +15 -0
  38. package/docs/api/grid-pro.gridpro.setfiltermodel.md +24 -0
  39. package/docs/api/grid-pro.kvstoragestatepersistence.getfiltermodel.md +24 -0
  40. package/docs/api/grid-pro.kvstoragestatepersistence.md +2 -0
  41. package/docs/api/grid-pro.kvstoragestatepersistence.savefiltermodel.md +25 -0
  42. package/docs/api/grid-pro.localstoragestatepersistence.getfiltermodel.md +24 -0
  43. package/docs/api/grid-pro.localstoragestatepersistence.md +2 -0
  44. package/docs/api/grid-pro.localstoragestatepersistence.savefiltermodel.md +25 -0
  45. package/docs/api/grid-pro.statepersistence.getfiltermodel.md +26 -0
  46. package/docs/api/grid-pro.statepersistence.md +2 -0
  47. package/docs/api/grid-pro.statepersistence.savefiltermodel.md +27 -0
  48. package/docs/api-report.md +34 -3
  49. package/package.json +13 -13
@@ -45,20 +45,6 @@ declare const GridPro_base: (new (...args: any[]) => {
45
45
  removeEventListener<K_1 extends keyof HTMLElementEventMap>(type: K_1, listener: (this: HTMLElement, ev: HTMLElementEventMap[K_1]) => any, options?: boolean | EventListenerOptions): void;
46
46
  removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
47
47
  readonly attributes: NamedNodeMap;
48
- /**
49
- * Injectable config that allows to change grid options on an app level basis
50
- * To modify options, register instance of the config in DOM container that is
51
- * above the grid or on the top level of the application, so it applies to all grids.
52
- *
53
- * @example
54
- * ```
55
- * DI.getOrCreateDOMContainer().register([
56
- * Registration.instance<GridOptionsConfig>(GridOptionsConfig, {
57
- * headerHeight: 50,
58
- * }),
59
- * ]);
60
- * ```
61
- */
62
48
  readonly classList: DOMTokenList;
63
49
  className: string;
64
50
  readonly clientHeight: number;
@@ -77,7 +63,20 @@ declare const GridPro_base: (new (...args: any[]) => {
77
63
  readonly scrollHeight: number;
78
64
  scrollLeft: number;
79
65
  scrollTop: number;
80
- readonly scrollWidth: number;
66
+ readonly scrollWidth: number; /**
67
+ * Injectable config that allows to change grid options on an app level basis
68
+ * To modify options, register instance of the config in DOM container that is
69
+ * above the grid or on the top level of the application, so it applies to all grids.
70
+ *
71
+ * @example
72
+ * ```
73
+ * DI.getOrCreateDOMContainer().register([
74
+ * Registration.instance<GridOptionsConfig>(GridOptionsConfig, {
75
+ * headerHeight: 50,
76
+ * }),
77
+ * ]);
78
+ * ```
79
+ */
81
80
  readonly shadowRoot: ShadowRoot;
82
81
  slot: string;
83
82
  readonly tagName: string;
@@ -398,9 +397,13 @@ export declare class GridPro extends GridPro_base {
398
397
  */
399
398
  enableRowFlashing: boolean;
400
399
  /**
401
- * The key to use for persisting the column state in local storage.
400
+ * The key to use for persisting the column state in local broswer or KV storage.
402
401
  */
403
402
  persistColumnStateKey: string;
403
+ /**
404
+ * The key to use for persisting the filter model in local browser or KV storage.
405
+ */
406
+ persistFilterModelKey: string;
404
407
  /**
405
408
  * The case type to use for the header names. If not set, the default CONSTANT_CASE will be used.
406
409
  * @remarks Can be one of the following: camelCase, capitalCase, dotCase, headerCase, noCase, paramCase, pascalCase, pathCase, sentenceCase, snakeCase.
@@ -427,7 +430,13 @@ export declare class GridPro extends GridPro_base {
427
430
  protected initialised: boolean;
428
431
  private rehydrationAttempted;
429
432
  private gridEventsQueue;
430
- private filterConfig;
433
+ private _filterConfig;
434
+ getfilterModel(): Promise<{
435
+ [key: string]: any;
436
+ }>;
437
+ setFilterModel(value: {
438
+ [key: string]: any;
439
+ }): Promise<void>;
431
440
  /**
432
441
  * Injectable config that allows to change grid options on an app level basis
433
442
  * To modify options, register instance of the config in DOM container that is
@@ -471,7 +480,7 @@ export declare class GridPro extends GridPro_base {
471
480
  getSavedColumnState(): Promise<ColumnState[]>;
472
481
  private restoreColumnState;
473
482
  private cacheFilterConfig;
474
- private restoreCachedFilterConfig;
483
+ restoreCachedFilterConfig(): Promise<void>;
475
484
  /**
476
485
  * @public
477
486
  */
@@ -1 +1 @@
1
- {"version":3,"file":"grid-pro.d.ts","sourceRoot":"","sources":["../../src/grid-pro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grid-pro.d.ts","sourceRoot":"","sources":["../../src/grid-pro.ts"],"names":[],"mappings":"AACA,OAAO,EACL,MAAM,EACN,SAAS,EACT,WAAW,EAGX,IAAI,EACJ,OAAO,EACP,WAAW,EAGZ,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAqB/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAMrE,OAAO,EAKL,cAAc,EAId,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA0JrD;;;;;;;;;;;;;OAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAzJL;;;;;GAKG;AACH,qBAAa,OAAQ,SAAQ,YAAiC;IAChD,SAAS,EAAG,SAAS,CAAC;IACtB,OAAO,EAAG,OAAO,CAAC;IACZ,gBAAgB,EAAE,gBAAgB,CAAC;IAErD;;;OAGG;IACH,OAAO,CAAC,SAAS,CAAwB;IAG2B,sBAAsB,UAClF;IACwD,mBAAmB,UAAS;IAI5F;;;;OAIG;IACsD,qBAAqB,UAAS;IAEvF;;OAEG;IAC+B,QAAQ,SAAK;IAE/C;;;OAGG;IACgD,QAAQ,UAAS;IAEpE;;;OAGG;IACmD,WAAW,UAAS;IAE1E;;;OAGG;IACmD,WAAW,UAAQ;IAEzE;;;OAGG;IAC2D,kBAAkB,UAAS;IAEzF;;OAEG;IAC2D,kBAAkB,UAAS;IAEzF;;OAEG;IAC0D,iBAAiB,UAAS;IAEvF;;OAEG;IAC8C,qBAAqB,EAAE,MAAM,CAAC;IAE/E;;OAEG;IAC8C,qBAAqB,EAAE,MAAM,CAAC;IAE/E;;;;OAIG;IACsC,cAAc,EAAE,eAAe,CAAC;IAE7D,YAAY,SAAyB;IAC3C,mBAAmB,SAAqB;IAClC,kBAAkB,EAAE,GAAG,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAsB;IACzC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAYnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,EAAE;QAAE,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAE7D,OAAO,CAAC,WAAW,CAAgB;IACnC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC;IACrC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAE/B,OAAO,CAAC,oBAAoB,CAAS;IAErC,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAO,CAAC,aAAa,CAAiD;IAEhE,cAAc,IAAI,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IASjD,cAAc,CAAC,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE;;;;;;;;;;;;;OAaG;IACgB,iBAAiB,EAAE,iBAAiB,CAAC;;IAaxD,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,KAAA,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB;IAYjF,OAAO,CAAC,oBAAoB;IAM5B,iBAAiB,IAAI,IAAI;IA4BzB,oBAAoB,IAAI,IAAI;IAa5B,wBAAwB,CAAC,qBAAqB,EAAE,cAAc,GAAG,cAAc;IAoB/E,uBAAuB,IAAI,OAAO;IAOlC;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;YAItB,eAAe;IAc7B;;;;;OAKG;IACG,mBAAmB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAUrC,kBAAkB;IAYhC,OAAO,CAAC,iBAAiB;IAInB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC;IAShD;;OAEG;IACH,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,IAAI,iBAAiB,IAAI,qBAAqB,CAM7C;IAED,IAAI,WAAW,CAAC,OAAO,EAAE,WAAW,EA+EnC;IAED,OAAO,CAAC,eAAe;IAwBvB;;;;;;OAMG;IACH,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,yBAAyB,UAAQ;IAKhF;;;;;;;;OAQG;IACG,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,yBAAyB,UAAQ;IAuFzF,IAAI,kBAAkB,aAerB;IAED,0BAA0B,CAAC,OAAO,KAAA,EAAE,QAAQ,KAAA,EAAE,QAAQ,KAAA;IAqBtD,mBAAmB,CAAC,SAAS,KAAA,EAAE,KAAK,KAAA;IAiBpC,OAAO,CAAC,eAAe,CAAa;IAEpC,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,eAAe;CAMxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B,EAAE,cAA0B,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;CAEhC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;kBAM5B,CAAC"}
@@ -15,14 +15,6 @@ export declare function getFilterByFieldType(type: string): string;
15
15
  * @alpha
16
16
  */
17
17
  export declare function getColumnType(metadataType: string): string;
18
- /**
19
- * Returns the filter params based on the Grid Pro field/column type.
20
- * @param type - The type of the field/column
21
- * @returns the filter params for the specified field type
22
- * @remarks Currently only returns a default filter params object, for all field types
23
- * @alpha
24
- */
25
- export declare function getFilterParamsByFieldType(type: string): any;
26
18
  /**
27
19
  * Returns a formatted date value from the Grid Pro cell value.
28
20
  * @param param - A ValueFormatterParams object.
@@ -1 +1 @@
1
- {"version":3,"file":"grid-pro.definitions.d.ts","sourceRoot":"","sources":["../../src/grid-pro.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAI/D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAczD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CA+B5D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,oBAAoB,GAAG,GAAG,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,KAAK,EAAE,EAAE,oBAAoB,GAAG,GAAG,CAE3E;AAKD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC"}
1
+ {"version":3,"file":"grid-pro.definitions.d.ts","sourceRoot":"","sources":["../../src/grid-pro.definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAczD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE,oBAAoB,GAAG,GAAG,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,KAAK,EAAE,EAAE,oBAAoB,GAAG,GAAG,CAE3E;AAKD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC"}
@@ -11,5 +11,11 @@ export declare class KVStorageStatePersistence implements StatePersistence {
11
11
  getColumnState(persistColumnStateKey: string): Promise<ColumnState[]>;
12
12
  saveColumnState(persistColumnStateKey: string, columnState: ColumnState[]): Promise<void>;
13
13
  private migrateLocalStorageToKVStorage;
14
+ getFilterModel(persistFilterModelKey: string): Promise<{
15
+ [key: string]: any;
16
+ }>;
17
+ saveFilterModel(persistFilterModelKey: string, filterModel: {
18
+ [key: string]: any;
19
+ }): Promise<void>;
14
20
  }
15
21
  //# sourceMappingURL=kv-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kv-state.d.ts","sourceRoot":"","sources":["../../../src/state-persistence/kv-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,gBAAgB;IACrD,SAAS,EAAE,SAAS,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IAEpB,cAAc,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAarE,eAAe,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YASjF,8BAA8B;CAqB7C"}
1
+ {"version":3,"file":"kv-state.d.ts","sourceRoot":"","sources":["../../../src/state-persistence/kv-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,gBAAgB;IACrD,SAAS,EAAE,SAAS,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IAEpB,cAAc,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAarE,eAAe,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YASjF,8BAA8B;IAsBtC,cAAc,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAW9E,eAAe,CACnB,qBAAqB,EAAE,MAAM,EAC7B,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAClC,OAAO,CAAC,IAAI,CAAC;CAQjB"}
@@ -9,5 +9,11 @@ export declare class LocalStorageStatePersistence implements StatePersistence {
9
9
  session: Session;
10
10
  getColumnState(persistColumnStateKey: string): Promise<ColumnState[]>;
11
11
  saveColumnState(persistColumnStateKey: string, columnState: ColumnState[]): Promise<void>;
12
+ getFilterModel(persistFilterModelKey: string): Promise<{
13
+ [key: string]: any;
14
+ }>;
15
+ saveFilterModel(persistFilterModelKey: string, filterModel: {
16
+ [key: string]: any;
17
+ }): Promise<void>;
12
18
  }
13
19
  //# sourceMappingURL=local-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-state.d.ts","sourceRoot":"","sources":["../../../src/state-persistence/local-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAMvD;;;GAGG;AACH,qBAAa,4BAA6B,YAAW,gBAAgB;IAC1D,OAAO,EAAE,OAAO,CAAC;IAEpB,cAAc,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAarE,eAAe,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAQhG"}
1
+ {"version":3,"file":"local-state.d.ts","sourceRoot":"","sources":["../../../src/state-persistence/local-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAMvD;;;GAGG;AACH,qBAAa,4BAA6B,YAAW,gBAAgB;IAC1D,OAAO,EAAE,OAAO,CAAC;IAEpB,cAAc,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAarE,eAAe,CAAC,qBAAqB,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASzF,cAAc,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAa9E,eAAe,CACnB,qBAAqB,EAAE,MAAM,EAC7B,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAClC,OAAO,CAAC,IAAI,CAAC;CAQjB"}
@@ -15,6 +15,20 @@ export interface StatePersistence {
15
15
  * @public
16
16
  */
17
17
  saveColumnState(persistColumnStateKey: string, columnState: ColumnState[]): Promise<void>;
18
+ /**
19
+ * Returns the filter model for the given key.
20
+ * @public
21
+ */
22
+ getFilterModel(persistFilterModelKey: string): Promise<{
23
+ [key: string]: any;
24
+ }>;
25
+ /**
26
+ * Saves the filter model for the given key.
27
+ * @public
28
+ */
29
+ saveFilterModel(persistFilterModelKey: string, filterModel: {
30
+ [key: string]: any;
31
+ }): Promise<void>;
18
32
  }
19
33
  /**
20
34
  * The DI token for the StatePersistence interface.
@@ -1 +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
+ {"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;IAC1F;;;OAGG;IACH,cAAc,CAAC,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC,CAAC;IAC/E;;;OAGG;IACH,eAAe,CACb,qBAAqB,EAAE,MAAM,EAC7B,WAAW,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAClC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,wEAE5B,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { __decorate } from "tslib";
2
- import { DatasourceDefaults } from '@genesislcap/foundation-comms';
2
+ import { DatasourceDefaults, FieldTypeEnum, logger, } from '@genesislcap/foundation-comms';
3
3
  import { Connect } from '@genesislcap/foundation-comms';
4
4
  import { attr, observable } from '@microsoft/fast-element';
5
5
  import { FoundationElement } from '@microsoft/fast-foundation';
6
+ import { dateValueFormatter, dateTimeValueFormatter, getColumnType, getFilterByFieldType, } from '../grid-pro.definitions';
7
+ import { GridProRendererTypes } from '../grid-pro.types';
6
8
  export class GenesisGridDatasourceElement extends FoundationElement {
7
9
  constructor() {
8
10
  super(...arguments);
@@ -105,6 +107,58 @@ export class GridProBaseDatasource extends GenesisGridDatasourceElement {
105
107
  update: [],
106
108
  };
107
109
  }
110
+ generateColumnDefsFromMetadata(fieldsMetadata, getFilterParamsByFieldType) {
111
+ return fieldsMetadata === null || fieldsMetadata === void 0 ? void 0 : fieldsMetadata.flatMap((field) => {
112
+ var _a;
113
+ const colDefBase = {};
114
+ colDefBase.filterParams = getFilterParamsByFieldType(field.type);
115
+ switch (field.type) {
116
+ case FieldTypeEnum.STRING:
117
+ colDefBase.cellEditor = GridProRendererTypes.stringEditor;
118
+ break;
119
+ case FieldTypeEnum.NUMBER:
120
+ colDefBase.cellEditor = GridProRendererTypes.numberEditor;
121
+ break;
122
+ case FieldTypeEnum.BOOLEAN:
123
+ if (this.agGrid.autoCellRendererByType) {
124
+ colDefBase.cellRenderer = GridProRendererTypes.boolean;
125
+ colDefBase.cellEditor = GridProRendererTypes.boolean;
126
+ }
127
+ break;
128
+ case FieldTypeEnum.DATE:
129
+ colDefBase.valueFormatter = dateValueFormatter;
130
+ colDefBase.cellEditor = GridProRendererTypes.dateEditor;
131
+ break;
132
+ case FieldTypeEnum.DATETIME:
133
+ colDefBase.valueFormatter = dateTimeValueFormatter;
134
+ colDefBase.cellEditor = GridProRendererTypes.dateEditor;
135
+ colDefBase.cellEditorParams = {
136
+ withTime: true,
137
+ };
138
+ break;
139
+ case FieldTypeEnum.ENUM:
140
+ if (field.enumOptions) {
141
+ colDefBase.cellEditor = GridProRendererTypes.selectEditor;
142
+ colDefBase.cellEditorParams = {
143
+ values: field.enumOptions.map((option) => ({ value: option, label: option })),
144
+ valueField: 'value',
145
+ labelField: 'label',
146
+ };
147
+ }
148
+ else {
149
+ logger.warn(`No enumOptions found for field ${field.name}. Default cell editor applied.`);
150
+ }
151
+ break;
152
+ default:
153
+ break;
154
+ }
155
+ const colDefExtras = (_a = this.agGrid.gridApi) === null || _a === void 0 ? void 0 : _a.getColumnDef(field.name);
156
+ if (this.fields && !this.fields.includes(field.name)) {
157
+ return [];
158
+ }
159
+ return Object.assign(Object.assign({ field: field.name, type: getColumnType(field.type), filter: getFilterByFieldType(field.type) }, colDefBase), colDefExtras);
160
+ });
161
+ }
108
162
  handleStreamInserts(insertedRows) {
109
163
  insertedRows === null || insertedRows === void 0 ? void 0 : insertedRows.forEach((insertData) => {
110
164
  if (this.rowData.has(insertData[this.rowId]) || this.dataSubWasLoggedOff) {
@@ -148,6 +202,7 @@ export class GridProBaseDatasource extends GenesisGridDatasourceElement {
148
202
  });
149
203
  }
150
204
  applyAllAgTransactions() {
205
+ var _a, _b, _c;
151
206
  if (!this.agTransaction.add.length &&
152
207
  !this.agTransaction.update.length &&
153
208
  !this.agTransaction.remove.length) {
@@ -157,13 +212,13 @@ export class GridProBaseDatasource extends GenesisGridDatasourceElement {
157
212
  }
158
213
  return;
159
214
  }
160
- if (this.agTransaction.add.length > 0) {
215
+ if (((_a = this.agTransaction.add) === null || _a === void 0 ? void 0 : _a.length) > 0) {
161
216
  this.applyMappedAgTransaction({ add: this.agTransaction.add, addIndex: this.agGrid.addIndex }, OperationType.Add, this.agGrid.asyncAdd);
162
217
  }
163
- if (this.agTransaction.remove.length > 0) {
218
+ if (((_b = this.agTransaction.remove) === null || _b === void 0 ? void 0 : _b.length) > 0) {
164
219
  this.applyMappedAgTransaction({ remove: this.agTransaction.remove }, OperationType.Remove, this.agGrid.asyncRemove);
165
220
  }
166
- if (this.agTransaction.update.length > 0) {
221
+ if (((_c = this.agTransaction.update) === null || _c === void 0 ? void 0 : _c.length) > 0) {
167
222
  this.applyMappedAgTransaction({ update: this.agTransaction.update }, OperationType.Update, this.agGrid.asyncUpdate);
168
223
  }
169
224
  }
@@ -0,0 +1,37 @@
1
+ import { FieldTypeEnum } from '@genesislcap/foundation-comms';
2
+ /**
3
+ * Returns the filter params based on the Grid Pro field/column type.
4
+ * @param type - The type of the field/column
5
+ * @returns the filter params for the specified field type
6
+ * @remarks Currently only returns a default filter params object, for all field types
7
+ * @alpha
8
+ */
9
+ export function getClientSideFilterParamsByFieldType(type) {
10
+ switch (type) {
11
+ case FieldTypeEnum.DATE:
12
+ case FieldTypeEnum.DATETIME: {
13
+ return {
14
+ comparator: function (filterLocalDateAtMidnight, cellValue) {
15
+ if (!cellValue)
16
+ return -1;
17
+ const cellValueTime = new Date(cellValue).setHours(0, 0, 0, 0);
18
+ const filterValueTime = filterLocalDateAtMidnight.getTime();
19
+ if (cellValueTime === filterValueTime) {
20
+ return 0;
21
+ }
22
+ if (cellValueTime < filterValueTime) {
23
+ return -1;
24
+ }
25
+ if (cellValueTime > filterValueTime) {
26
+ return 1;
27
+ }
28
+ },
29
+ buttons: ['reset', 'apply'],
30
+ closeOnApply: true,
31
+ closeOnClear: true,
32
+ suppressAndOrCondition: true,
33
+ browserDatePicker: true,
34
+ };
35
+ }
36
+ }
37
+ }
@@ -1,13 +1,11 @@
1
1
  import { __awaiter, __decorate } from "tslib";
2
- import { Auth, Connect, dataServerResultFilter, extractFieldDefinitions, FieldTypeEnum, MessageType, normaliseCriteria, toFieldMetadata, } from '@genesislcap/foundation-comms';
2
+ import { Auth, Connect, dataServerResultFilter, extractFieldDefinitions, MessageType, normaliseCriteria, toFieldMetadata, } from '@genesislcap/foundation-comms';
3
3
  import { LifecycleMixin } from '@genesislcap/foundation-utils';
4
4
  import { attr, customElement, DOM } from '@microsoft/fast-element';
5
5
  import { take } from 'rxjs/operators';
6
- import { dateTimeValueFormatter, dateValueFormatter } from '../grid-pro.definitions';
7
- import { GridProRendererTypes } from '../grid-pro.types';
8
6
  import { getAvailableIndexes, getAvailableIndexFields, logger } from '../utils';
9
7
  import { GridProBaseDatasource, StreamBaseDatasource } from './base.datasource';
10
- import { getColumnType, getFilterByFieldType, getFilterParamsByFieldType, } from './server-side.grid-definitions';
8
+ import { getServerSideFilterParamsByFieldType } from './server-side.grid-definitions';
11
9
  /**
12
10
  * The IServerSideDatasource implementation, used for SSRM (Server-Side Row Model) in the grid.
13
11
  * @alpha
@@ -484,42 +482,11 @@ let GridProServerSideDatasource = class GridProServerSideDatasource extends Life
484
482
  }
485
483
  getAgColumnDefs(fieldsMetadata) {
486
484
  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);
485
+ const colDefsFromGenesisData = this.generateColumnDefsFromMetadata(fieldsMetadata, getServerSideFilterParamsByFieldType);
486
+ colDefsFromGenesisData.map((colDef) => {
487
+ return {
488
+ sortable: [].concat(...this.indexes.values()).includes(colDef.field),
489
+ };
523
490
  });
524
491
  const colDefsMergedWithTemplateDefs = yield this.agGrid.mergeAllColumnDefsAndStates(colDefsFromGenesisData, true);
525
492
  return colDefsMergedWithTemplateDefs;
@@ -1,48 +1,4 @@
1
1
  import { FieldTypeEnum } from '@genesislcap/foundation-comms';
2
- /**
3
- * Returns a filter type based on the Grid Pro field/column type.
4
- * @param type - The type of the field/column
5
- * @returns The ag-grid filter type
6
- * @remarks Currently only returns agTextColumnFilter
7
- * @alpha
8
- */
9
- export function getFilterByFieldType(type) {
10
- switch (type === null || type === void 0 ? void 0 : type.toLowerCase()) {
11
- case 'int':
12
- case 'long':
13
- case 'double':
14
- case 'bigdecimal':
15
- case 'number':
16
- return 'agNumberColumnFilter';
17
- case 'date':
18
- case 'datetime':
19
- return 'agDateColumnFilter';
20
- default:
21
- return 'agTextColumnFilter';
22
- }
23
- }
24
- /**
25
- * Return a column type base on each field's metadata from the selected resource.
26
- * @param metadataType - The type of the field/column
27
- * @returns the column type
28
- * @remarks Currently only handles numeric columns
29
- * @alpha
30
- */
31
- export function getColumnType(metadataType) {
32
- switch (metadataType === null || metadataType === void 0 ? void 0 : metadataType.toLowerCase()) {
33
- case 'int':
34
- case 'long':
35
- case 'double':
36
- case 'bigdecimal':
37
- case 'number':
38
- return 'numericColumn';
39
- case 'date':
40
- case 'datetime':
41
- return 'dateColumn';
42
- default:
43
- return null;
44
- }
45
- }
46
2
  /**
47
3
  * Returns the filter params based on the Grid Pro field/column type.
48
4
  * @param type - The type of the field/column
@@ -50,7 +6,7 @@ export function getColumnType(metadataType) {
50
6
  * @remarks Currently only returns a default filter params object, for all field types
51
7
  * @alpha
52
8
  */
53
- export function getFilterParamsByFieldType(type) {
9
+ export function getServerSideFilterParamsByFieldType(type) {
54
10
  switch (type) {
55
11
  case FieldTypeEnum.BOOLEAN: {
56
12
  return {
@@ -1,12 +1,11 @@
1
1
  import { __awaiter, __decorate } from "tslib";
2
- import { Auth, Datasource, DatasourceDefaults, FieldTypeEnum, MessageType, ResourceType, dataServerResultFilter, normaliseCriteria, } from '@genesislcap/foundation-comms';
2
+ import { Auth, Datasource, DatasourceDefaults, MessageType, ResourceType, dataServerResultFilter, normaliseCriteria, } from '@genesislcap/foundation-comms';
3
3
  import { LifecycleMixin } from '@genesislcap/foundation-utils';
4
4
  import { DOM, attr, customElement, observable } from '@microsoft/fast-element';
5
5
  import { BehaviorSubject, EMPTY } from 'rxjs';
6
6
  import { catchError, debounceTime, skip, tap } from 'rxjs/operators';
7
7
  import { GridProBaseDatasource } from '../datasource/base.datasource';
8
- import { dateTimeValueFormatter, dateValueFormatter, getFilterParamsByFieldType, } from '../grid-pro.definitions';
9
- import { GridProRendererTypes } from '../grid-pro.types';
8
+ import { getClientSideFilterParamsByFieldType } from '../datasource/client-side.grid-definitions';
10
9
  import { logger } from '../utils/logger';
11
10
  const criteriaDelimiter = ';';
12
11
  const criteriaJoin = ' && ';
@@ -217,7 +216,9 @@ let GridProGenesisDatasource = class GridProGenesisDatasource extends LifecycleM
217
216
  }
218
217
  }
219
218
  const data = this.rowDataMapper ? this.rowDataMapper(rowData) : rowData;
220
- this.agGrid.gridApi.setRowData(data);
219
+ this.agGrid.restoreCachedFilterConfig();
220
+ this.agTransaction = { add: [...data], remove: [], update: [], addIndex: 0 };
221
+ this.applyAllAgTransactions();
221
222
  this.requiresFullRowDataAndColDefs = false;
222
223
  });
223
224
  }
@@ -391,60 +392,8 @@ let GridProGenesisDatasource = class GridProGenesisDatasource extends LifecycleM
391
392
  // FUTURE: Work with the field types vs ag grid column def types!
392
393
  getAgColumnDefs(fieldsMetadata) {
393
394
  return __awaiter(this, void 0, void 0, function* () {
394
- const colDefsFromGenesisData = fieldsMetadata === null || fieldsMetadata === void 0 ? void 0 : fieldsMetadata.flatMap((field) => {
395
- var _a;
396
- const colDefBase = {};
397
- colDefBase.filterParams = getFilterParamsByFieldType(field.type);
398
- switch (field.type) {
399
- case FieldTypeEnum.STRING:
400
- colDefBase.cellEditor = GridProRendererTypes.stringEditor;
401
- break;
402
- case FieldTypeEnum.NUMBER:
403
- colDefBase.cellEditor = GridProRendererTypes.numberEditor;
404
- colDefBase.filter = 'agNumberColumnFilter';
405
- break;
406
- case FieldTypeEnum.BOOLEAN:
407
- if (this.agGrid.autoCellRendererByType) {
408
- colDefBase.cellRenderer = GridProRendererTypes.boolean;
409
- colDefBase.cellEditor = GridProRendererTypes.boolean;
410
- }
411
- break;
412
- case FieldTypeEnum.DATE:
413
- colDefBase.valueFormatter = dateValueFormatter;
414
- colDefBase.cellEditor = GridProRendererTypes.dateEditor;
415
- colDefBase.filter = 'agDateColumnFilter';
416
- break;
417
- case FieldTypeEnum.DATETIME:
418
- colDefBase.valueFormatter = dateTimeValueFormatter;
419
- colDefBase.filter = 'agDateColumnFilter';
420
- colDefBase.cellEditor = GridProRendererTypes.dateEditor;
421
- colDefBase.cellEditorParams = {
422
- withTime: true,
423
- };
424
- break;
425
- case FieldTypeEnum.ENUM:
426
- if (field.enumOptions) {
427
- colDefBase.cellEditor = GridProRendererTypes.selectEditor;
428
- colDefBase.cellEditorParams = {
429
- values: field.enumOptions.map((option) => ({ value: option, label: option })),
430
- valueField: 'value',
431
- labelField: 'label',
432
- };
433
- }
434
- else {
435
- logger.warn(`No enumOptions found for field ${field.name}. Default cell editor applied.`);
436
- }
437
- break;
438
- default:
439
- break;
440
- }
441
- const colDefExtras = (_a = this.agGrid.gridApi) === null || _a === void 0 ? void 0 : _a.getColumnDef(field.name);
442
- if (this.fields && !this.fields.includes(field.name)) {
443
- return [];
444
- }
445
- return Object.assign(Object.assign({ field: field.name }, colDefBase), colDefExtras);
446
- });
447
- const colDefsMergedWithTemplateDefs = yield this.agGrid.mergeAllColumnDefsAndStates(colDefsFromGenesisData, true);
395
+ const columnDefsFromMetadata = this.generateColumnDefsFromMetadata(fieldsMetadata, getClientSideFilterParamsByFieldType);
396
+ const colDefsMergedWithTemplateDefs = yield this.agGrid.mergeAllColumnDefsAndStates(columnDefsFromMetadata, true);
448
397
  return colDefsMergedWithTemplateDefs;
449
398
  });
450
399
  }
@@ -1,4 +1,3 @@
1
- import { FieldTypeEnum } from '@genesislcap/foundation-comms';
2
1
  import { formatDateTimestamp, formatDateTimeTimestamp } from '@genesislcap/foundation-utils';
3
2
  /**
4
3
  * Returns a filter type based on the Grid Pro field/column type.
@@ -8,16 +7,16 @@ import { formatDateTimestamp, formatDateTimeTimestamp } from '@genesislcap/found
8
7
  * @alpha
9
8
  */
10
9
  export function getFilterByFieldType(type) {
11
- switch (type) {
12
- // case 'int':
13
- // case 'long':
14
- // case 'double':
15
- // case 'bigdecimal':
16
- // case 'number':
17
- // return 'agNumberColumnFilter';
18
- // case 'date':
19
- // case 'datetime':
20
- // return 'agDateColumnFilter';
10
+ switch (type === null || type === void 0 ? void 0 : type.toLowerCase()) {
11
+ case 'int':
12
+ case 'long':
13
+ case 'double':
14
+ case 'bigdecimal':
15
+ case 'number':
16
+ return 'agNumberColumnFilter';
17
+ case 'date':
18
+ case 'datetime':
19
+ return 'agDateColumnFilter';
21
20
  default:
22
21
  return 'agTextColumnFilter';
23
22
  }
@@ -39,42 +38,6 @@ export function getColumnType(metadataType) {
39
38
  return 'numericColumn';
40
39
  }
41
40
  }
42
- /**
43
- * Returns the filter params based on the Grid Pro field/column type.
44
- * @param type - The type of the field/column
45
- * @returns the filter params for the specified field type
46
- * @remarks Currently only returns a default filter params object, for all field types
47
- * @alpha
48
- */
49
- export function getFilterParamsByFieldType(type) {
50
- switch (type) {
51
- case FieldTypeEnum.DATE:
52
- case FieldTypeEnum.DATETIME: {
53
- return {
54
- comparator: function (filterLocalDateAtMidnight, cellValue) {
55
- if (!cellValue)
56
- return -1;
57
- const cellValueTime = new Date(cellValue).setHours(0, 0, 0, 0);
58
- const filterValueTime = filterLocalDateAtMidnight.getTime();
59
- if (cellValueTime === filterValueTime) {
60
- return 0;
61
- }
62
- if (cellValueTime < filterValueTime) {
63
- return -1;
64
- }
65
- if (cellValueTime > filterValueTime) {
66
- return 1;
67
- }
68
- },
69
- buttons: ['reset', 'apply'],
70
- closeOnApply: true,
71
- closeOnClear: true,
72
- suppressAndOrCondition: true,
73
- browserDatePicker: true,
74
- };
75
- }
76
- }
77
- }
78
41
  /**
79
42
  * Returns a formatted date value from the Grid Pro cell value.
80
43
  * @param param - A ValueFormatterParams object.