@datorama/core 21.4.0-rc.1 → 21.4.0-rc.12

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 (40) hide show
  1. package/bundle.scss +12 -1
  2. package/bundles/datorama-core.umd.js +137 -44
  3. package/bundles/datorama-core.umd.js.map +1 -1
  4. package/bundles/datorama-core.umd.min.js +49 -49
  5. package/bundles/datorama-core.umd.min.js.map +1 -1
  6. package/datorama-core.metadata.json +1 -1
  7. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +5 -2
  8. package/esm2015/lib/grid-v2/grid-filter/filter-validator.js +7 -14
  9. package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +14 -5
  10. package/esm2015/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
  11. package/esm2015/lib/grid-v2/grid-store/grid.query.js +34 -9
  12. package/esm2015/lib/grid-v2/grid-store/grid.service.js +53 -11
  13. package/esm2015/lib/grid-v2/grid-store/grid.store.types.js +1 -1
  14. package/esm2015/lib/grid-v2/grid-store/public_api.js +2 -0
  15. package/esm2015/lib/grid-v2/grid-store/util.js +11 -1
  16. package/esm2015/lib/grid-v2/public_api.js +2 -2
  17. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +5 -2
  18. package/esm5/lib/grid-v2/grid-filter/filter-validator.js +7 -14
  19. package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +13 -5
  20. package/esm5/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
  21. package/esm5/lib/grid-v2/grid-store/grid.query.js +34 -9
  22. package/esm5/lib/grid-v2/grid-store/grid.service.js +75 -20
  23. package/esm5/lib/grid-v2/grid-store/grid.store.types.js +1 -1
  24. package/esm5/lib/grid-v2/grid-store/public_api.js +2 -0
  25. package/esm5/lib/grid-v2/grid-store/util.js +11 -1
  26. package/esm5/lib/grid-v2/public_api.js +2 -2
  27. package/fesm2015/datorama-core.js +116 -36
  28. package/fesm2015/datorama-core.js.map +1 -1
  29. package/fesm5/datorama-core.js +137 -45
  30. package/fesm5/datorama-core.js.map +1 -1
  31. package/i18n/locale-en_US.json +2 -1
  32. package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +3 -2
  33. package/lib/grid-v2/grid-filter/grid-filter.types.d.ts +7 -1
  34. package/lib/grid-v2/grid-store/grid.query.d.ts +3 -1
  35. package/lib/grid-v2/grid-store/grid.service.d.ts +4 -2
  36. package/lib/grid-v2/grid-store/grid.store.types.d.ts +4 -0
  37. package/lib/grid-v2/grid-store/public_api.d.ts +2 -0
  38. package/lib/grid-v2/grid-store/util.d.ts +2 -0
  39. package/lib/grid-v2/public_api.d.ts +1 -2
  40. package/package.json +1 -1
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5zdG9yZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1zdG9yZS9ncmlkLnN0b3JlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvd0FjdGlvbiB9IGZyb20gJy4uL2dyaWQtdG9vbGJhci9ncmlkLXRvb2xiYXIudHlwZXMnO1xuaW1wb3J0IHsgRGF0b0dyaWRBbGlnbm1lbnQsIERhdG9HcmlkT3B0aW9ucywgRGF0b0dyaWRTb3J0IH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXYyLnR5cGVzJztcbmltcG9ydCB7IERhdG9DdXN0b21IZWFkZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtY3VzdG9tLWhlYWRlci9jdXN0b20taGVhZGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRvR3JpZEZpbHRlcnNNYXAgfSBmcm9tICcuLi9ncmlkLWZpbHRlci9ncmlkLWZpbHRlci50eXBlcyc7XG5pbXBvcnQgeyBIYXNoTWFwIH0gZnJvbSAnQGRhdG9yYW1hL2FraXRhJztcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplT3B0aW9uc1BhcmFtcyA9IHtcbiAgZ3JpZE9wdGlvbnM6IERhdG9HcmlkT3B0aW9ucztcbiAgY3VzdG9tSGVhZGVyc1RlbXBsYXRlcz86IFF1ZXJ5TGlzdDxEYXRvQ3VzdG9tSGVhZGVyVGVtcGxhdGVDb21wb25lbnQ+O1xuICByb3dBY3Rpb25zOiBSb3dBY3Rpb25bXTtcbn07XG5cbmV4cG9ydCB0eXBlIFN1Y2Nlc3NXcmFwcGVyUGFyYW1zID0ge1xuICBzdWNjZXNzQ2I6IChyb3dzVGhpc0Jsb2NrOiBhbnlbXSwgbGFzdFJvdz86IG51bWJlcikgPT4gdm9pZDtcbiAgcGFnZU51bWJlcjogbnVtYmVyO1xuICBpc1BlbmRpbmdSZXR1cm5Ub1BhZ2U6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBTZXJ2ZXJTaWRlUGFnaW5hdGlvbkNvbmZpZyA9IHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgdG90YWxSb3dzOiBudW1iZXI7XG4gIGhhc0Vycm9yOiBib29sZWFuO1xuICBzZWxlY3RBbGxSb3dzRW5hYmxlZDogYm9vbGVhbjtcbiAgZXhjbHVkZWRGcm9tU2VsZWN0QWxsOiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIERhdG9HcmlkU2V0dGluZ3MgPSB7XG4gIHNvcnQ6IERhdG9HcmlkU29ydDtcbiAgZmlsdGVyOiBEYXRvR3JpZEZpbHRlcnNNYXA7XG4gIGdyb3VwZWRDb2x1bW5zOiBzdHJpbmdbXTtcbiAgY29sdW1uc09yZGVyOiBzdHJpbmdbXTtcbiAgcGlubmVkQ29sdW1uczogc3RyaW5nW107XG4gIGhpZGRlbkNvbHVtbnM6IHN0cmluZ1tdO1xuICBjb2x1bW5zU2l6ZXM6IEhhc2hNYXA8bnVtYmVyPjtcbiAgZ3JpZEFsaWdubWVudDogRGF0b0dyaWRBbGlnbm1lbnQ7XG4gIHNlYXJjaFRlcm06IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFN0b3JlU3RhdGUge1xuICBzZXR0aW5nczogRGF0b0dyaWRTZXR0aW5ncztcbiAgc2VydmVyU2lkZVBhZ2luYXRpb246IFNlcnZlclNpZGVQYWdpbmF0aW9uQ29uZmlnO1xufVxuIl19
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5zdG9yZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1zdG9yZS9ncmlkLnN0b3JlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvd0FjdGlvbiB9IGZyb20gJy4uL2dyaWQtdG9vbGJhci9ncmlkLXRvb2xiYXIudHlwZXMnO1xuaW1wb3J0IHsgRGF0b0dyaWRBbGlnbm1lbnQsIERhdG9HcmlkT3B0aW9ucywgRGF0b0dyaWRTb3J0IH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXYyLnR5cGVzJztcbmltcG9ydCB7IERhdG9DdXN0b21IZWFkZXJUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2dyaWQtY3VzdG9tLWhlYWRlci9jdXN0b20taGVhZGVyLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRvR3JpZEZpbHRlcnNNYXAgfSBmcm9tICcuLi9ncmlkLWZpbHRlci9ncmlkLWZpbHRlci50eXBlcyc7XG5pbXBvcnQgeyBIYXNoTWFwIH0gZnJvbSAnQGRhdG9yYW1hL2FraXRhJztcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplT3B0aW9uc1BhcmFtcyA9IHtcbiAgZ3JpZE9wdGlvbnM6IERhdG9HcmlkT3B0aW9ucztcbiAgY3VzdG9tSGVhZGVyc1RlbXBsYXRlcz86IFF1ZXJ5TGlzdDxEYXRvQ3VzdG9tSGVhZGVyVGVtcGxhdGVDb21wb25lbnQ+O1xuICByb3dBY3Rpb25zOiBSb3dBY3Rpb25bXTtcbn07XG5cbmV4cG9ydCB0eXBlIFN1Y2Nlc3NXcmFwcGVyUGFyYW1zID0ge1xuICBzdWNjZXNzQ2I6IChyb3dzVGhpc0Jsb2NrOiBhbnlbXSwgbGFzdFJvdz86IG51bWJlcikgPT4gdm9pZDtcbiAgcGFnZU51bWJlcjogbnVtYmVyO1xuICBpc1BlbmRpbmdSZXR1cm5Ub1BhZ2U6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBTZXJ2ZXJTaWRlUGFnaW5hdGlvbkNvbmZpZyA9IHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgdG90YWxSb3dzOiBudW1iZXI7XG4gIGhhc0Vycm9yOiBib29sZWFuO1xuICBzZWxlY3RBbGxSb3dzRW5hYmxlZDogYm9vbGVhbjtcbiAgZXhjbHVkZWRGcm9tU2VsZWN0QWxsOiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIERhdG9HcmlkU2V0dGluZ3MgPSB7XG4gIHNvcnQ6IERhdG9HcmlkU29ydDtcbiAgZmlsdGVyOiBEYXRvR3JpZEZpbHRlcnNNYXA7XG4gIGdyb3VwZWRDb2x1bW5zOiBzdHJpbmdbXTtcbiAgY29sdW1uc09yZGVyOiBzdHJpbmdbXTtcbiAgcGlubmVkQ29sdW1uczogc3RyaW5nW107XG4gIGhpZGRlbkNvbHVtbnM6IHN0cmluZ1tdO1xuICBjb2x1bW5zU2l6ZXM6IEhhc2hNYXA8bnVtYmVyPjtcbiAgZ3JpZEFsaWdubWVudDogRGF0b0dyaWRBbGlnbm1lbnQ7XG4gIHNlYXJjaFRlcm06IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFN0b3JlU3RhdGUge1xuICBzZXR0aW5nczogRGF0b0dyaWRTZXR0aW5ncztcbiAgc2VydmVyU2lkZVBhZ2luYXRpb246IFNlcnZlclNpZGVQYWdpbmF0aW9uQ29uZmlnO1xufVxuXG5leHBvcnQgdHlwZSBQaXZvdENvbHVtbkRhdGEgPSB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuIl19
@@ -0,0 +1,2 @@
1
+ export { tryParsePivotValue } from './util';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1zdG9yZS9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ3JpZC5zdG9yZS50eXBlcyc7XG5leHBvcnQgeyB0cnlQYXJzZVBpdm90VmFsdWUgfSBmcm9tICcuL3V0aWwnO1xuIl19
@@ -14,4 +14,14 @@ export function getColField(colDef) {
14
14
  var field = colDef.field, showRowGroup = colDef.showRowGroup, pivotValueColumn = colDef.pivotValueColumn;
15
15
  return pivotValueColumn ? pivotValueColumn.getColId() : field || showRowGroup;
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1zdG9yZS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBaUIsRUFBRSxRQUFrQjtJQUNuRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBQyxPQUFPLEVBQUUsVUFBVTtRQUN4QyxJQUFJLE1BQU0sR0FBUSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDekMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBYztJQUNoQyxJQUFBLG9CQUFLLEVBQUUsa0NBQVksRUFBRSwwQ0FBZ0IsQ0FBWTtJQUV6RCxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFLLFlBQXVCLENBQUM7QUFDNUYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbERlZiwgQ29sdW1uIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgSGFzaE1hcCB9IGZyb20gJy4uLy4uL3V0aWxzL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbHVtbnNTaXplcyhjb2x1bW5zOiBDb2x1bW5bXSwgb3JpZ2luYWw/OiBib29sZWFuKTogSGFzaE1hcDxudW1iZXI+IHtcbiAgcmV0dXJuIGNvbHVtbnMucmVkdWNlKChzaXplTWFwLCBjdXJyZW50Q29sKSA9PiB7XG4gICAgbGV0IGNvbERlZjogYW55ID0gY3VycmVudENvbC5nZXRDb2xEZWYoKTtcbiAgICBzaXplTWFwW2N1cnJlbnRDb2wuZ2V0Q29sSWQoKV0gPSAob3JpZ2luYWwgJiYgY29sRGVmLm9yaWdpbmFsV2lkdGgpIHx8IGNvbERlZi53aWR0aCB8fCBjdXJyZW50Q29sLmdldEFjdHVhbFdpZHRoKCk7XG4gICAgcmV0dXJuIHNpemVNYXA7XG4gIH0sIHt9KTtcbn1cblxuLyoqXG4gKiBUYWtlIHBpdm90ZWQgdmFsdWUgZmllbGQgaWYgcGl2b3QgY29sdW1uLFxuICogb3IgZmllbGQgb2YgdGhlIGNvbERlZixcbiAqIG9yIGdyb3VwIGZpZWxkIGZvcm0gc2hvd1Jvd0dyb3VwIGlmIGl0cyBhZ2cgY29sdW1uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb2xGaWVsZChjb2xEZWY6IENvbERlZik6IHN0cmluZyB7XG4gIGNvbnN0IHsgZmllbGQsIHNob3dSb3dHcm91cCwgcGl2b3RWYWx1ZUNvbHVtbiB9ID0gY29sRGVmO1xuXG4gIHJldHVybiBwaXZvdFZhbHVlQ29sdW1uID8gcGl2b3RWYWx1ZUNvbHVtbi5nZXRDb2xJZCgpIDogZmllbGQgfHwgKHNob3dSb3dHcm91cCBhcyBzdHJpbmcpO1xufVxuIl19
17
+ export function tryParsePivotValue(str) {
18
+ var value;
19
+ try {
20
+ value = JSON.parse(str);
21
+ }
22
+ catch (e) {
23
+ // Do nothing
24
+ }
25
+ return value;
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvZ3JpZC1zdG9yZS91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBaUIsRUFBRSxRQUFrQjtJQUNuRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBQyxPQUFPLEVBQUUsVUFBVTtRQUN4QyxJQUFJLE1BQU0sR0FBUSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDekMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBYztJQUNoQyxJQUFBLG9CQUFLLEVBQUUsa0NBQVksRUFBRSwwQ0FBZ0IsQ0FBWTtJQUV6RCxPQUFPLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFLLFlBQXVCLENBQUM7QUFDNUYsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUFXO0lBQzVDLElBQUksS0FBSyxDQUFDO0lBRVYsSUFBSTtRQUNGLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3pCO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixhQUFhO0tBQ2Q7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xEZWYsIENvbHVtbiB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IEhhc2hNYXAgfSBmcm9tICcuLi8uLi91dGlscy90eXBlcyc7XG5pbXBvcnQgeyBQaXZvdENvbHVtbkRhdGEgfSBmcm9tICcuL2dyaWQuc3RvcmUudHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29sdW1uc1NpemVzKGNvbHVtbnM6IENvbHVtbltdLCBvcmlnaW5hbD86IGJvb2xlYW4pOiBIYXNoTWFwPG51bWJlcj4ge1xuICByZXR1cm4gY29sdW1ucy5yZWR1Y2UoKHNpemVNYXAsIGN1cnJlbnRDb2wpID0+IHtcbiAgICBsZXQgY29sRGVmOiBhbnkgPSBjdXJyZW50Q29sLmdldENvbERlZigpO1xuICAgIHNpemVNYXBbY3VycmVudENvbC5nZXRDb2xJZCgpXSA9IChvcmlnaW5hbCAmJiBjb2xEZWYub3JpZ2luYWxXaWR0aCkgfHwgY29sRGVmLndpZHRoIHx8IGN1cnJlbnRDb2wuZ2V0QWN0dWFsV2lkdGgoKTtcbiAgICByZXR1cm4gc2l6ZU1hcDtcbiAgfSwge30pO1xufVxuXG4vKipcbiAqIFRha2UgcGl2b3RlZCB2YWx1ZSBmaWVsZCBpZiBwaXZvdCBjb2x1bW4sXG4gKiBvciBmaWVsZCBvZiB0aGUgY29sRGVmLFxuICogb3IgZ3JvdXAgZmllbGQgZm9ybSBzaG93Um93R3JvdXAgaWYgaXRzIGFnZyBjb2x1bW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbEZpZWxkKGNvbERlZjogQ29sRGVmKTogc3RyaW5nIHtcbiAgY29uc3QgeyBmaWVsZCwgc2hvd1Jvd0dyb3VwLCBwaXZvdFZhbHVlQ29sdW1uIH0gPSBjb2xEZWY7XG5cbiAgcmV0dXJuIHBpdm90VmFsdWVDb2x1bW4gPyBwaXZvdFZhbHVlQ29sdW1uLmdldENvbElkKCkgOiBmaWVsZCB8fCAoc2hvd1Jvd0dyb3VwIGFzIHN0cmluZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cnlQYXJzZVBpdm90VmFsdWUoc3RyOiBzdHJpbmcpOiBQaXZvdENvbHVtbkRhdGEgfCB1bmRlZmluZWQge1xuICBsZXQgdmFsdWU7XG5cbiAgdHJ5IHtcbiAgICB2YWx1ZSA9IEpTT04ucGFyc2Uoc3RyKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIERvIG5vdGhpbmdcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdfQ==
@@ -3,7 +3,6 @@ export * from './grid-on-hover/grid-on-hover.component';
3
3
  export * from './grid-loader/grid-v2-loader.component';
4
4
  export * from './grid-columns-display-menu/grid-columns-display-menu.component';
5
5
  export * from './grid-groups-menu/grid-groups-menu.component';
6
- export * from './grid/public_api';
7
6
  export * from './grid-controller/public_api';
8
7
  export * from './grid-column-header/public_api';
9
8
  export * from './grid-column-header-more-menu/public_api';
@@ -14,7 +13,8 @@ export * from './grid-header/public_api';
14
13
  export * from './grid-pagination/public_api';
15
14
  export * from './grid-toolbar/public_api';
16
15
  export * from './grid-settings';
16
+ export * from './grid-store/public_api';
17
17
  export * from './grid-no-data-overlay/public_api';
18
18
  export * from './grid-v2.module';
19
19
  export * from './grid-column-cell-components/public_api';
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ncmlkL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLW9uLWhvdmVyL2dyaWQtb24taG92ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1sb2FkZXIvZ3JpZC12Mi1sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1jb2x1bW5zLWRpc3BsYXktbWVudS9ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQtZ3JvdXBzLW1lbnUvZ3JpZC1ncm91cHMtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLWNvbnRyb2xsZXIvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQtY29sdW1uLWhlYWRlci9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1jb2x1bW4taGVhZGVyLW1vcmUtbWVudS9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1jb250cm9sbGVyL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLWN1c3RvbS1oZWFkZXIvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQtZmlsdGVyL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLWhlYWRlci9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1wYWdpbmF0aW9uL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLXRvb2xiYXIvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQtc2V0dGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLXN0b3JlL2dyaWQuc3RvcmUudHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLW5vLWRhdGEtb3ZlcmxheS9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC12Mi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLWNvbHVtbi1jZWxsLWNvbXBvbmVudHMvcHVibGljX2FwaSc7XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2dyaWQtdjIvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ncmlkL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLW9uLWhvdmVyL2dyaWQtb24taG92ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1sb2FkZXIvZ3JpZC12Mi1sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1jb2x1bW5zLWRpc3BsYXktbWVudS9ncmlkLWNvbHVtbnMtZGlzcGxheS1tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQtZ3JvdXBzLW1lbnUvZ3JpZC1ncm91cHMtbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLWNvbnRyb2xsZXIvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQtY29sdW1uLWhlYWRlci9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1jb2x1bW4taGVhZGVyLW1vcmUtbWVudS9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1jb250cm9sbGVyL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLWN1c3RvbS1oZWFkZXIvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQtZmlsdGVyL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLWhlYWRlci9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC1wYWdpbmF0aW9uL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLXRvb2xiYXIvcHVibGljX2FwaSc7XG5leHBvcnQgKiBmcm9tICcuL2dyaWQtc2V0dGluZ3MnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLXN0b3JlL3B1YmxpY19hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLW5vLWRhdGEtb3ZlcmxheS9wdWJsaWNfYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vZ3JpZC12Mi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkLWNvbHVtbi1jZWxsLWNvbXBvbmVudHMvcHVibGljX2FwaSc7XG4iXX0=
@@ -10010,6 +10010,16 @@ function getColField(colDef) {
10010
10010
  const { field, showRowGroup, pivotValueColumn } = colDef;
10011
10011
  return pivotValueColumn ? pivotValueColumn.getColId() : field || showRowGroup;
10012
10012
  }
10013
+ function tryParsePivotValue(str) {
10014
+ let value;
10015
+ try {
10016
+ value = JSON.parse(str);
10017
+ }
10018
+ catch (e) {
10019
+ // Do nothing
10020
+ }
10021
+ return value;
10022
+ }
10013
10023
 
10014
10024
  let GridQuery = class GridQuery extends Query {
10015
10025
  constructor(store) {
@@ -10081,14 +10091,23 @@ let GridQuery = class GridQuery extends Query {
10081
10091
  return settings;
10082
10092
  }
10083
10093
  getSort() {
10084
- const { sort, colId } = this.api.grid.getSortModel().pop() || {};
10085
- const column = this.api.columns.getColumn(colId);
10086
- const secondaryColumns = this.api.columns.getSecondaryColumns();
10087
- const pivotedColumn = secondaryColumns && secondaryColumns.find(col => col.getColId() === colId);
10088
- const sortColumn = column || pivotedColumn;
10089
- const sortField = sortColumn && getColField(sortColumn.getColDef());
10090
- const pivotColIndex = secondaryColumns && pivotedColumn && secondaryColumns.indexOf(pivotedColumn);
10091
- return { colId: sortField, sort, pivotColIndex };
10094
+ if (this.gridRef.gridOptions.pivotMode) {
10095
+ const { sort, colId } = this.api.grid.getSortModel().pop() || {};
10096
+ const column = this.api.columns.getColumn(colId);
10097
+ const pivotedColumn = this.getSecondaryColumn(colId);
10098
+ if (pivotedColumn) {
10099
+ const uniquePivotParents = uniq(this.api.columns.getSecondaryColumns().map(column => column.getParent()));
10100
+ const secondaryColumn = this.getSecondaryColumn(pivotedColumn.getColId());
10101
+ const pivotColIndex = uniquePivotParents.indexOf(secondaryColumn.getParent());
10102
+ return { colId: getColField(pivotedColumn.getColDef()), sort, pivotColIndex };
10103
+ }
10104
+ else if (column) {
10105
+ return { colId: getColField(column.getColDef()), sort };
10106
+ }
10107
+ }
10108
+ else {
10109
+ return this.api.grid.getSortModel().pop();
10110
+ }
10092
10111
  }
10093
10112
  selectSort() {
10094
10113
  return this.select(state => state.settings.sort);
@@ -10112,6 +10131,17 @@ let GridQuery = class GridQuery extends Query {
10112
10131
  selectFilter() {
10113
10132
  return this.select(state => state.settings.filter);
10114
10133
  }
10134
+ filterChanged() {
10135
+ return this.selectFilter().pipe(map$1(filter => {
10136
+ return Object.keys(filter).reduce((filters, field) => {
10137
+ const datoFilter = filter[field];
10138
+ if (datoFilter) {
10139
+ filters.push({ field, filter: datoFilter });
10140
+ }
10141
+ return filters;
10142
+ }, []);
10143
+ }));
10144
+ }
10115
10145
  getSearchTerm() {
10116
10146
  return this.getValue().settings.searchTerm;
10117
10147
  }
@@ -10172,6 +10202,10 @@ let GridQuery = class GridQuery extends Query {
10172
10202
  selectIsSelectAllRowsEnabled() {
10173
10203
  return this.select(state => state.serverSidePagination.selectAllRowsEnabled);
10174
10204
  }
10205
+ getSecondaryColumn(colId) {
10206
+ const secondaryColumns = this.api.columns.getSecondaryColumns();
10207
+ return secondaryColumns && secondaryColumns.find(col => col.getColId() === colId);
10208
+ }
10175
10209
  filterCheckboxSelectionColumn(columns) {
10176
10210
  return columns.filter((column) => !column.getUserProvidedColDef() || !column.getUserProvidedColDef().checkboxSelection);
10177
10211
  }
@@ -10261,7 +10295,7 @@ var OperatorTypes;
10261
10295
 
10262
10296
  function validateStringCondition(rowValue, { condition, value: filterValue }) {
10263
10297
  const filterTextLowerCase = filterValue ? filterValue.toLowerCase() : '';
10264
- const valueLowerCase = rowValue ? rowValue.toLowerCase() : '';
10298
+ const valueLowerCase = rowValue ? `${rowValue}`.toLowerCase() : '';
10265
10299
  switch (condition) {
10266
10300
  case DatoFilterConditions.EQUALS:
10267
10301
  return valueLowerCase === filterTextLowerCase;
@@ -10347,7 +10381,7 @@ function validateFilter({ row, api }, activeFilters) {
10347
10381
  const currentRowPivotKeys = row.parent.childrenMapped && getRowPivotKeys(row.parent.childrenMapped);
10348
10382
  const rowValue = api.getValue(filter, row);
10349
10383
  /** If value is under a pivoted column but doesn't match the filter pivot */
10350
- if (pivotKeys && !isArrayValuesEqual(pivotKeys, currentRowPivotKeys)) {
10384
+ if (pivotKeys && pivotKeys.length > 0 && !isArrayValuesEqual(pivotKeys, currentRowPivotKeys)) {
10351
10385
  return true;
10352
10386
  }
10353
10387
  if (conditional) {
@@ -10371,17 +10405,9 @@ function validateFilter({ row, api }, activeFilters) {
10371
10405
  */
10372
10406
  function getRowPivotKeys(childrenMapped, keys = []) {
10373
10407
  const key = Object.keys(childrenMapped)[0];
10374
- let parsedKey;
10375
- try {
10376
- parsedKey = JSON.parse(key);
10377
- }
10378
- catch (e) {
10379
- console.error(`Can't parse ${key} from JSON`);
10380
- }
10381
- finally {
10382
- if (parsedKey) {
10383
- keys = getRowPivotKeys(childrenMapped[key], [...keys, parsedKey.value]);
10384
- }
10408
+ const parsedKey = tryParsePivotValue(key);
10409
+ if (parsedKey) {
10410
+ keys = getRowPivotKeys(childrenMapped[key], [...keys, parsedKey.value]);
10385
10411
  }
10386
10412
  return keys;
10387
10413
  }
@@ -11227,7 +11253,9 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11227
11253
  }
11228
11254
  else {
11229
11255
  const columnValues = this.getColumnValues();
11230
- this.columnValues = columnValues.map(({ value }) => value);
11256
+ this.columnValues = columnValues.map(({ value }) => {
11257
+ return this.pivotColumn ? value[this.colField] : value;
11258
+ });
11231
11259
  this.listOptions = columnValues.map(mapToListItemWithFormatted);
11232
11260
  }
11233
11261
  }
@@ -11266,6 +11294,7 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11266
11294
  isEmpty(filter)
11267
11295
  ? this.gridService.clearColumnFilter(this.colField)
11268
11296
  : this.gridService.setColumnFilter(column, filter);
11297
+ this.gridService.notifyFilterUpdate();
11269
11298
  }
11270
11299
  }
11271
11300
  clearFilters() {
@@ -11310,10 +11339,15 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11310
11339
  }
11311
11340
  buildFilter() {
11312
11341
  const { byValue, conditional } = this.filterForm.value;
11313
- const filter = {};
11342
+ const filter = { colId: this.colDef.colId };
11314
11343
  filter.pivotKeys = this.pivotKeys;
11315
11344
  if (this.pivotColumn) {
11316
- filter.pivotFields = this.getPivotFields(this.pivotColumn.getParent());
11345
+ filter.pivotFieldsMap = this.getPivotFields(this.pivotColumn.getParent()).reduce((fieldMap, field, index) => {
11346
+ if (this.pivotKeys[index]) {
11347
+ fieldMap[field] = this.pivotKeys[index];
11348
+ }
11349
+ return fieldMap;
11350
+ }, {});
11317
11351
  }
11318
11352
  if (this.filterSections.Conditional) {
11319
11353
  this.setConditionalFilter(filter, conditional);
@@ -11626,10 +11660,11 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11626
11660
  */
11627
11661
  getPivotFields(parent, fields = []) {
11628
11662
  const grandParent = parent.getParent();
11663
+ const headerClass = parent.getOriginalColumnGroup().getColGroupDef().headerClass;
11629
11664
  if (grandParent) {
11630
11665
  this.getPivotFields(grandParent, fields);
11631
11666
  }
11632
- fields.push(parent.getOriginalColumnGroup().getColGroupDef().headerClass);
11667
+ headerClass && fields.push(headerClass[0]);
11633
11668
  return fields;
11634
11669
  }
11635
11670
  };
@@ -12603,19 +12638,37 @@ let GridService = class GridService {
12603
12638
  });
12604
12639
  this.notifyFilterUpdate();
12605
12640
  }
12606
- setColumnFilter(column, filter) {
12641
+ setColumnFilter(column, filter, notifyGrid = true) {
12607
12642
  this._logEvent("Grids - Filter Applied" /* GRID_FILTER_APPLIED */, {
12608
12643
  column: column.getColId(),
12609
12644
  numOfConditions: (filter.conditional && filter.conditional.conditions.length) || 0,
12610
12645
  byValue: !!filter.byValue ? 'Yes' : 'No'
12611
12646
  });
12647
+ this.updateFilter(column, filter);
12648
+ if (notifyGrid) {
12649
+ this.notifyFilterUpdate();
12650
+ }
12651
+ }
12652
+ setGridFilters(filters) {
12653
+ for (const { filter } of filters) {
12654
+ const column = this.api.columns.getColumn(filter.colId);
12655
+ if (column) {
12656
+ this.setColumnFilter(column, filter);
12657
+ }
12658
+ else {
12659
+ const pivotColumn = this.gridQuery.getSecondaryColumn(filter.colId);
12660
+ this.setColumnFilter(pivotColumn, filter);
12661
+ }
12662
+ }
12663
+ this.notifyFilterUpdate();
12664
+ }
12665
+ updateFilter(column, filter) {
12612
12666
  const colField = getColField(column.getColDef());
12613
12667
  this.store.update(state => {
12614
12668
  return {
12615
12669
  settings: Object.assign(Object.assign({}, state.settings), { filter: Object.assign(Object.assign({}, state.settings.filter), { [colField]: filter }) })
12616
12670
  };
12617
12671
  });
12618
- this.notifyFilterUpdate();
12619
12672
  }
12620
12673
  setSearchTerm(searchTerm) {
12621
12674
  this.store.update(state => {
@@ -13074,7 +13127,7 @@ let GridService = class GridService {
13074
13127
  */
13075
13128
  initPivotSecondaryColsProcess({ gridOptions }) {
13076
13129
  gridOptions.processSecondaryColDef = colDef => {
13077
- const api = colDef.headerComponentParams.gridQuery.api;
13130
+ const api = colDef.headerComponentParams && colDef.headerComponentParams.gridQuery.api;
13078
13131
  if (api) {
13079
13132
  const valueColumns = colDef.headerComponentParams.gridQuery.api.columns.getValueColumns();
13080
13133
  const originalColDef = valueColumns
@@ -13085,17 +13138,40 @@ let GridService = class GridService {
13085
13138
  }
13086
13139
  }
13087
13140
  if (colDef.pivotKeys) {
13088
- colDef.pivotKeys = colDef.pivotKeys.map(key => JSON.parse(key).value);
13141
+ colDef.pivotKeys = colDef.pivotKeys.map(key => {
13142
+ const parsedKey = tryParsePivotValue(key);
13143
+ return (parsedKey && parsedKey.value) || '';
13144
+ });
13089
13145
  }
13090
13146
  };
13091
13147
  gridOptions.processSecondaryColGroupDef = (colGroupDef) => {
13092
13148
  if (colGroupDef.headerName) {
13093
- const { field, value } = JSON.parse(colGroupDef.headerName);
13094
- colGroupDef.headerClass = field;
13095
- colGroupDef.headerName = value;
13149
+ const parsedValue = tryParsePivotValue(colGroupDef.headerName);
13150
+ if (parsedValue) {
13151
+ const { field, value } = parsedValue;
13152
+ colGroupDef.headerClass = [field];
13153
+ colGroupDef.headerName = value;
13154
+ if (colGroupDef.children && colGroupDef.children.length > 1) {
13155
+ colGroupDef.headerClass.push('group-pivot-cell');
13156
+ }
13157
+ }
13158
+ }
13159
+ else if (colGroupDef.children) {
13160
+ const [colChild] = colGroupDef.children;
13161
+ const pivotTotalColumnIds = colChild && colChild.pivotTotalColumnIds;
13162
+ if (pivotTotalColumnIds && pivotTotalColumnIds.length > 0) {
13163
+ colGroupDef.headerClass = ['total-pivot-cell'];
13164
+ colGroupDef.headerName = this.translate.transform('core.total');
13165
+ }
13166
+ }
13167
+ else {
13168
+ colGroupDef.headerClass = ['empty-pivot-header'];
13096
13169
  }
13097
13170
  if (colGroupDef.pivotKeys) {
13098
- colGroupDef.pivotKeys = colGroupDef.pivotKeys.map(key => JSON.parse(key).value);
13171
+ colGroupDef.pivotKeys = colGroupDef.pivotKeys.map(key => {
13172
+ const parsedKey = tryParsePivotValue(key);
13173
+ return (parsedKey && parsedKey.value) || '';
13174
+ });
13099
13175
  }
13100
13176
  };
13101
13177
  }
@@ -13105,7 +13181,8 @@ let GridService = class GridService {
13105
13181
  const mappedValues = Object.assign({}, currentValue);
13106
13182
  for (const col of pivotColumns) {
13107
13183
  const field = col.getColDef().field;
13108
- mappedValues[field] = JSON.stringify({ field, value: currentValue[field] });
13184
+ const pivotValue = { field, value: currentValue[field] };
13185
+ mappedValues[field] = JSON.stringify(pivotValue);
13109
13186
  }
13110
13187
  return mappedValues;
13111
13188
  });
@@ -13595,8 +13672,11 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13595
13672
  setGridRows(data) {
13596
13673
  this.gridService.setRows(data);
13597
13674
  }
13675
+ setGridFilters(filters) {
13676
+ this.gridService.setGridFilters(filters);
13677
+ }
13598
13678
  onFilterChanged() {
13599
- return this.gridQuery.selectFilter();
13679
+ return this.gridQuery.filterChanged();
13600
13680
  }
13601
13681
  onSortChanged() {
13602
13682
  return this.gridQuery.selectSort();
@@ -22530,5 +22610,5 @@ window.coreVersion = '21.4.0-rc.';
22530
22610
  * Generated bundle index. Do not edit.
22531
22611
  */
22532
22612
 
22533
- export { APP_TRANSLATE, AceService, BaseCustomControl, COMPARE_RESULT, CUSTOM_RANGE_ID, ColorPalette, ConfirmationType, ContentRef, ContentType, CustomHeaderControllerService, DATE_PICKER_CONFIG, DATE_PICKER_POPOVER_ID, DATO_CORE_LOGGER, DATO_FORM_ERRORS, DATO_GRID_STORAGE_API, DEFAULT_FORMAT, DEFAULT_GRID_SEARCH_DEBOUNCE_TIME, DatePickerConfig, DatePickerMonthComponent, DateType, DatoAccordionComponent, DatoAccordionContentComponent, DatoAccordionGroupComponent, DatoAccordionHeaderComponent, DatoAccordionModule, DatoAceDirective, DatoAceDraggableDirective, DatoAceModule, DatoActionType, DatoAutoCompleteContentDirective, DatoAutoFocusDirective, DatoAutocompleteComponent, DatoAutocompleteDirective, DatoAutocompleteModule, DatoBreadcrumbsComponent, DatoBreadcrumbsModule, DatoButtonComponent, DatoButtonGroupComponent, DatoButtonGroupModule, DatoButtonModule, DatoCamelCasePipe, DatoCarouselComponent, DatoCarouselItemDirective, DatoCarouselItemElement, DatoCarouselModule, DatoCheckboxComponent, DatoCheckboxModule, DatoClipboardDirective, DatoColorDirective, DatoConfirmationDialogComponent, DatoControlErrorComponent, DatoControlErrorContainerDirective, DatoControlErrorsDirective, DatoCoreError, DatoCoreModule, DatoCustomHeaderTemplateComponent, DatoCustomHeaderTemplateDirective, DatoCustomMoreMenuTemplateDirective, DatoDatePickerContainerComponent, DatoDatePickerModule, DatoDatePickerRangeComponent, DatoDatePickerSingleComponent, DatoDialog, DatoDialogCloseDirective, DatoDialogComponent, DatoDialogContentComponent, DatoDialogDismissDirective, DatoDialogFooterComponent, DatoDialogHeaderComponent, DatoDialogModule, DatoDialogRef, DatoDirectivesModule, DatoDisableControlDirective, DatoDraggableDirective, DatoDynamicContentComponent, DatoDynamicContentModule, DatoEditableHeaderComponent, DatoEditableHeaderModule, DatoFileInputComponent, DatoFileInputDefaultComponent, DatoFileInputModule, DatoFilterConditions, DatoFontDirective, DatoFontIconComponent, DatoFontIconModule, DatoFormSubmitDirective, DatoFormValidationModule, DatoGrid, DatoGridAPI, DatoGridAvatarCellComponent, DatoGridColumnDisplayMenuComponent, DatoGridColumnHeaderComponent, DatoGridColumnHeaderMoreMenuComponent, DatoGridColumnTypes, DatoGridComponent, DatoGridControllerComponent, DatoGridDateFilterOptions, DatoGridFilterComponent, DatoGridFilterOptionsMap, DatoGridFilterSections, DatoGridFilterTypes, DatoGridGroupsMenuComponent, DatoGridHeaderComponent, DatoGridHeaderV2Component, DatoGridInitialsCellComponent, DatoGridItemsCellComponent, DatoGridModule, DatoGridMoreMenuActions, DatoGridNumberFilterOptions, DatoGridOnHoverComponent, DatoGridPaginationComponent, DatoGridPaginationV2Component, DatoGridStatusCellComponent, DatoGridStringFilterOptions, DatoGridToolbarComponent, DatoGridToolbarItemDirective, DatoGridToolbarItemElementDirective, DatoGridV2Component, DatoGridV2LoaderComponent, DatoGridV2Module, DatoGridV2NoDataOverlayComponent, DatoGridV2ToolbarButtonComponent, DatoGridV2ToolbarComponent, DatoGroupComponent, DatoHighlightPipe, DatoHotkeys, DatoHotkeysDirective, DatoHotkeysHelpComponent, DatoHotkeysModule, DatoIconButtonComponent, DatoIconButtonModule, DatoIconComponent, DatoIconModule, DatoInfiniteScrollComponent, DatoInfiniteScrollModule, DatoInputComponent, DatoInputModule, DatoInputNumberComponent, DatoInputNumberDirective, DatoInputNumberModule, DatoKebabCasePipe, DatoLinkButtonComponent, DatoLinkButtonModule, DatoListComponent, DatoListModule, DatoListNoDataComponent, DatoListNoResultComponent, DatoListV2Component, DatoListV2Module, DatoLoaderComponent, DatoLoadersModule, DatoMenuComponent, DatoMenuContentDirective, DatoMenuItemDirective, DatoMenuModule, DatoMenuTriggerForDirective, DatoMultiOptionComponent, DatoMultiOptionV2Component, DatoOperatorTogglerComponent, DatoOperatorTogglerModule, DatoOptionComponent, DatoOptionV2Component, DatoOptionsModule, DatoOriginDirective, DatoOverlay, DatoPageLoaderComponent, DatoPanel, DatoPanelComponent, DatoPanelContentComponent, DatoPanelFooterComponent, DatoPanelHeaderComponent, DatoPanelInternalConfig, DatoPanelModule, DatoPanelRef, DatoPillsComponent, DatoPillsModule, DatoPipesModule, DatoPopover, DatoPopoverComponent, DatoPopoverModule, DatoProgressBarComponent, DatoProgressBarModule, DatoRadioComponent, DatoRadioModule, DatoRichTextDirective, DatoRichTextModule, DatoSearchResultsGroupSortPipe, DatoSearchResultsSortPipe, DatoSearchableContainerComponent, DatoSearchableDirective, DatoSearchableHighlightDirective, DatoSearchableModule, DatoSelectActiveDirective, DatoSelectComponent, DatoSelectEmptyComponent, DatoSelectModule, DatoSliderComponent, DatoSliderModule, DatoSnackbar, DatoSnackbarComponent, DatoSnackbarModule, DatoSortableComponent, DatoSortableHandleDirective, DatoSortableModule, DatoStaticImageSrcDirective, DatoStaticImagesSrcModule, DatoSubscribeContext, DatoSubscribeDirective, DatoTab, DatoTabContent, DatoTabTitle, DatoTabsModule, DatoTabset, DatoTemplatePortal, DatoTextModule, DatoThemesModule, DatoToast, DatoToastComponent, DatoToastModule, DatoTogglerComponent, DatoTogglerModule, DatoTooltipDirective, DatoTooltipV2Directive, DatoTrackByPropPipe, DatoTranslateService, DatoTreePipe, DatoTriggerMulti, DatoTriggerSingle, DialogConfig, DialogResultStatus, Dimensions, EventModifiersPlugin, GridActionType, GridMinWidths, GridRowSelectionType, GridToolbarService, ISO_FORMAT, IconRegistry, KeyCodes, KeyboardEventKeys, ListValueTypes, MockService, OperatorTypes, POPPER_BOUNDARY, PaletteDirective, PanelResultCloseTrigger, PillType, PopoverCloseDirective, PopoverContentDirective, PopoverRef, PopoverTrigger, ROOT_NODE_ID, RelativeDateType, RenderMethod, RowSelectionType, RowSelectionTypeV2, SELECT_MAX_HEIGHT, SUPPORTED_LOCALES, SelectType, SnackbarRef, SnackbarType, Store, SvgRegistry, ToolbarActionType, ToolbarArea, ToolbarConfirmation, ToolbarDeleteConfirmation, ToolbarHandler, TranslatePipe, Types, _valueChanges, a, addClass, addJSObjectCompletor, allowedFileTypes, alphabeticalGroupSort, alphabeticalSort, appendChild, appendScript, appendStyle, appendToBody, assertString, camelCase, capitalize, cloneDeep, closest, coerceArray, coerceElement, compareWith, compose, convertFromTreeData, convertToTreeData, copyToClipboard, createComponent, createElement, createGUID, createHTMLCompletor, curry, dateCompare, daysOfTheMonth, debounce, declarations$2 as declarations, deepEqual, deepmerge, defaultActions$1 as defaultActions, defaultConfig, defaultEditableColumnRenderer, defaultGridOptions, defaultGridTreeLabel, defaultOptionsDisplayLimit, defaultTreeOptions, dialogSizePreset, diff, difference, differenceBy, dimensionsChanges, directives, drop, editableCellRendererWithSearchHighlight, escape, escapeRegExp, filter, filterByControlValue, filterByTerm, filterDialogDismissed, filterDialogSuccess, filterGroupByControlValue, filterGroupByTerm, filterKey, find, findIndex, findKey, fixNgLeaks, forEach, formatKeys, generateMonths, get, getAttr, getCustomRange, getDateISOString, getDefaultConfirmationOptions, getDefaultOptions, getDefaultsToastOptions, getElementCoords, getFunctionName, getGridConfiguration, getGridModel, getInitials, getLocalizedFormat, getMultiTemplate, getOptionTemplate, getPopperDefaults, getUTCDate, getVisibleActions, gridTreeFilePathKey, groupBy, groupSortOrder, has, inView, intersection, invert, isArrayValuesEqual, isArrowUpDown, isBoolean, isEmpty, isEmptyString, isEnter, isEqual, isEscape, isFraction, isFunction, isMacintosh, isNil, isNumber, isObject, isRangeCondition, isRangeCustom, isString, isTestEnv, isValidMediaLink, kebabCase, keyBy, keysSymbols, last, map, mapKeys, mapValues, maxFileSize, merge, minBy, mockInDev, mocks, ngContentResolver, noop, normalizeData, omit, omitBy, optionalDebounce, pallete, parseDateString, partial, polling, prependChild, publicApi$1 as publicApi, query, queryAll, random, rawDiff, reject, relativeDateTypes, removeClass, resolveRange, round, searchHighlightCellRenderer, searchResultsGroupSort, searchResultsSort, setAttr, setAttribute, setDimensions, setEmptyFolderClass, setGridConfiguration, setGridModel, setMaxDimensions, setMinDimensions, setStyle, setStyles, size, sortBy, stubs, supportedLocales, tapLog, tapOnce, throttle, toBoolean, toFormData, toNumber, toResponseBody, toString, toggleClass, toolbarActionToContextAction, unescape, union, uniq, uniqBy, uploadProgress, validBase64Image, validUrl, validateCondition, validateDate, validateDateCondition, validateFilter, validateNumberCondition, validateRange, validateStringCondition, values, workerMap, zoneStable, ɵ0$2 as ɵ0, ɵ1$2 as ɵ1, ɵ2, DATO_CORE_CONFIG as ɵb, DatoGridHelper as ɵc, Popper as ɵd, GridQuery as ɵe, GridStore as ɵf, GridService as ɵg, DatoDateRangesFilterPipe as ɵh, ListStore as ɵi, DatoListSelectAllComponent as ɵj, DatoGridMultiSelectColumnHeaderComponent as ɵk, DatoGridItemsCountCellComponent as ɵl, DatoGridV2ToolbarMoreMenuComponent as ɵm, DatoGridSearchBarComponent as ɵn, RichTextService as ɵo };
22613
+ export { APP_TRANSLATE, AceService, BaseCustomControl, COMPARE_RESULT, CUSTOM_RANGE_ID, ColorPalette, ConfirmationType, ContentRef, ContentType, CustomHeaderControllerService, DATE_PICKER_CONFIG, DATE_PICKER_POPOVER_ID, DATO_CORE_LOGGER, DATO_FORM_ERRORS, DATO_GRID_STORAGE_API, DEFAULT_FORMAT, DEFAULT_GRID_SEARCH_DEBOUNCE_TIME, DatePickerConfig, DatePickerMonthComponent, DateType, DatoAccordionComponent, DatoAccordionContentComponent, DatoAccordionGroupComponent, DatoAccordionHeaderComponent, DatoAccordionModule, DatoAceDirective, DatoAceDraggableDirective, DatoAceModule, DatoActionType, DatoAutoCompleteContentDirective, DatoAutoFocusDirective, DatoAutocompleteComponent, DatoAutocompleteDirective, DatoAutocompleteModule, DatoBreadcrumbsComponent, DatoBreadcrumbsModule, DatoButtonComponent, DatoButtonGroupComponent, DatoButtonGroupModule, DatoButtonModule, DatoCamelCasePipe, DatoCarouselComponent, DatoCarouselItemDirective, DatoCarouselItemElement, DatoCarouselModule, DatoCheckboxComponent, DatoCheckboxModule, DatoClipboardDirective, DatoColorDirective, DatoConfirmationDialogComponent, DatoControlErrorComponent, DatoControlErrorContainerDirective, DatoControlErrorsDirective, DatoCoreError, DatoCoreModule, DatoCustomHeaderTemplateComponent, DatoCustomHeaderTemplateDirective, DatoCustomMoreMenuTemplateDirective, DatoDatePickerContainerComponent, DatoDatePickerModule, DatoDatePickerRangeComponent, DatoDatePickerSingleComponent, DatoDialog, DatoDialogCloseDirective, DatoDialogComponent, DatoDialogContentComponent, DatoDialogDismissDirective, DatoDialogFooterComponent, DatoDialogHeaderComponent, DatoDialogModule, DatoDialogRef, DatoDirectivesModule, DatoDisableControlDirective, DatoDraggableDirective, DatoDynamicContentComponent, DatoDynamicContentModule, DatoEditableHeaderComponent, DatoEditableHeaderModule, DatoFileInputComponent, DatoFileInputDefaultComponent, DatoFileInputModule, DatoFilterConditions, DatoFontDirective, DatoFontIconComponent, DatoFontIconModule, DatoFormSubmitDirective, DatoFormValidationModule, DatoGrid, DatoGridAPI, DatoGridAvatarCellComponent, DatoGridColumnDisplayMenuComponent, DatoGridColumnHeaderComponent, DatoGridColumnHeaderMoreMenuComponent, DatoGridColumnTypes, DatoGridComponent, DatoGridControllerComponent, DatoGridDateFilterOptions, DatoGridFilterComponent, DatoGridFilterOptionsMap, DatoGridFilterSections, DatoGridFilterTypes, DatoGridGroupsMenuComponent, DatoGridHeaderComponent, DatoGridHeaderV2Component, DatoGridInitialsCellComponent, DatoGridItemsCellComponent, DatoGridModule, DatoGridMoreMenuActions, DatoGridNumberFilterOptions, DatoGridOnHoverComponent, DatoGridPaginationComponent, DatoGridPaginationV2Component, DatoGridStatusCellComponent, DatoGridStringFilterOptions, DatoGridToolbarComponent, DatoGridToolbarItemDirective, DatoGridToolbarItemElementDirective, DatoGridV2Component, DatoGridV2LoaderComponent, DatoGridV2Module, DatoGridV2NoDataOverlayComponent, DatoGridV2ToolbarButtonComponent, DatoGridV2ToolbarComponent, DatoGroupComponent, DatoHighlightPipe, DatoHotkeys, DatoHotkeysDirective, DatoHotkeysHelpComponent, DatoHotkeysModule, DatoIconButtonComponent, DatoIconButtonModule, DatoIconComponent, DatoIconModule, DatoInfiniteScrollComponent, DatoInfiniteScrollModule, DatoInputComponent, DatoInputModule, DatoInputNumberComponent, DatoInputNumberDirective, DatoInputNumberModule, DatoKebabCasePipe, DatoLinkButtonComponent, DatoLinkButtonModule, DatoListComponent, DatoListModule, DatoListNoDataComponent, DatoListNoResultComponent, DatoListV2Component, DatoListV2Module, DatoLoaderComponent, DatoLoadersModule, DatoMenuComponent, DatoMenuContentDirective, DatoMenuItemDirective, DatoMenuModule, DatoMenuTriggerForDirective, DatoMultiOptionComponent, DatoMultiOptionV2Component, DatoOperatorTogglerComponent, DatoOperatorTogglerModule, DatoOptionComponent, DatoOptionV2Component, DatoOptionsModule, DatoOriginDirective, DatoOverlay, DatoPageLoaderComponent, DatoPanel, DatoPanelComponent, DatoPanelContentComponent, DatoPanelFooterComponent, DatoPanelHeaderComponent, DatoPanelInternalConfig, DatoPanelModule, DatoPanelRef, DatoPillsComponent, DatoPillsModule, DatoPipesModule, DatoPopover, DatoPopoverComponent, DatoPopoverModule, DatoProgressBarComponent, DatoProgressBarModule, DatoRadioComponent, DatoRadioModule, DatoRichTextDirective, DatoRichTextModule, DatoSearchResultsGroupSortPipe, DatoSearchResultsSortPipe, DatoSearchableContainerComponent, DatoSearchableDirective, DatoSearchableHighlightDirective, DatoSearchableModule, DatoSelectActiveDirective, DatoSelectComponent, DatoSelectEmptyComponent, DatoSelectModule, DatoSliderComponent, DatoSliderModule, DatoSnackbar, DatoSnackbarComponent, DatoSnackbarModule, DatoSortableComponent, DatoSortableHandleDirective, DatoSortableModule, DatoStaticImageSrcDirective, DatoStaticImagesSrcModule, DatoSubscribeContext, DatoSubscribeDirective, DatoTab, DatoTabContent, DatoTabTitle, DatoTabsModule, DatoTabset, DatoTemplatePortal, DatoTextModule, DatoThemesModule, DatoToast, DatoToastComponent, DatoToastModule, DatoTogglerComponent, DatoTogglerModule, DatoTooltipDirective, DatoTooltipV2Directive, DatoTrackByPropPipe, DatoTranslateService, DatoTreePipe, DatoTriggerMulti, DatoTriggerSingle, DialogConfig, DialogResultStatus, Dimensions, EventModifiersPlugin, GridActionType, GridMinWidths, GridRowSelectionType, GridToolbarService, ISO_FORMAT, IconRegistry, KeyCodes, KeyboardEventKeys, ListValueTypes, MockService, OperatorTypes, POPPER_BOUNDARY, PaletteDirective, PanelResultCloseTrigger, PillType, PopoverCloseDirective, PopoverContentDirective, PopoverRef, PopoverTrigger, ROOT_NODE_ID, RelativeDateType, RenderMethod, RowSelectionType, RowSelectionTypeV2, SELECT_MAX_HEIGHT, SUPPORTED_LOCALES, SelectType, SnackbarRef, SnackbarType, Store, SvgRegistry, ToolbarActionType, ToolbarArea, ToolbarConfirmation, ToolbarDeleteConfirmation, ToolbarHandler, TranslatePipe, Types, _valueChanges, a, addClass, addJSObjectCompletor, allowedFileTypes, alphabeticalGroupSort, alphabeticalSort, appendChild, appendScript, appendStyle, appendToBody, assertString, camelCase, capitalize, cloneDeep, closest, coerceArray, coerceElement, compareWith, compose, convertFromTreeData, convertToTreeData, copyToClipboard, createComponent, createElement, createGUID, createHTMLCompletor, curry, dateCompare, daysOfTheMonth, debounce, declarations$2 as declarations, deepEqual, deepmerge, defaultActions$1 as defaultActions, defaultConfig, defaultEditableColumnRenderer, defaultGridOptions, defaultGridTreeLabel, defaultOptionsDisplayLimit, defaultTreeOptions, dialogSizePreset, diff, difference, differenceBy, dimensionsChanges, directives, drop, editableCellRendererWithSearchHighlight, escape, escapeRegExp, filter, filterByControlValue, filterByTerm, filterDialogDismissed, filterDialogSuccess, filterGroupByControlValue, filterGroupByTerm, filterKey, find, findIndex, findKey, fixNgLeaks, forEach, formatKeys, generateMonths, get, getAttr, getCustomRange, getDateISOString, getDefaultConfirmationOptions, getDefaultOptions, getDefaultsToastOptions, getElementCoords, getFunctionName, getGridConfiguration, getGridModel, getInitials, getLocalizedFormat, getMultiTemplate, getOptionTemplate, getPopperDefaults, getUTCDate, getVisibleActions, gridTreeFilePathKey, groupBy, groupSortOrder, has, inView, intersection, invert, isArrayValuesEqual, isArrowUpDown, isBoolean, isEmpty, isEmptyString, isEnter, isEqual, isEscape, isFraction, isFunction, isMacintosh, isNil, isNumber, isObject, isRangeCondition, isRangeCustom, isString, isTestEnv, isValidMediaLink, kebabCase, keyBy, keysSymbols, last, map, mapKeys, mapValues, maxFileSize, merge, minBy, mockInDev, mocks, ngContentResolver, noop, normalizeData, omit, omitBy, optionalDebounce, pallete, parseDateString, partial, polling, prependChild, publicApi$1 as publicApi, query, queryAll, random, rawDiff, reject, relativeDateTypes, removeClass, resolveRange, round, searchHighlightCellRenderer, searchResultsGroupSort, searchResultsSort, setAttr, setAttribute, setDimensions, setEmptyFolderClass, setGridConfiguration, setGridModel, setMaxDimensions, setMinDimensions, setStyle, setStyles, size, sortBy, stubs, supportedLocales, tapLog, tapOnce, throttle, toBoolean, toFormData, toNumber, toResponseBody, toString, toggleClass, toolbarActionToContextAction, tryParsePivotValue, unescape, union, uniq, uniqBy, uploadProgress, validBase64Image, validUrl, validateCondition, validateDate, validateDateCondition, validateFilter, validateNumberCondition, validateRange, validateStringCondition, values, workerMap, zoneStable, ɵ0$2 as ɵ0, ɵ1$2 as ɵ1, ɵ2, DATO_CORE_CONFIG as ɵb, DatoGridHelper as ɵc, Popper as ɵd, GridQuery as ɵe, GridStore as ɵf, GridService as ɵg, DatoDateRangesFilterPipe as ɵh, ListStore as ɵi, DatoListSelectAllComponent as ɵj, DatoGridMultiSelectColumnHeaderComponent as ɵk, DatoGridItemsCountCellComponent as ɵl, DatoGridV2ToolbarMoreMenuComponent as ɵm, DatoGridSearchBarComponent as ɵn, RichTextService as ɵo };
22534
22614
  //# sourceMappingURL=datorama-core.js.map