@datorama/core 21.3.1-rc.5 → 21.4.0-rc.11

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 (58) hide show
  1. package/bundle.scss +94 -2
  2. package/bundles/datorama-core.umd.js +314 -32
  3. package/bundles/datorama-core.umd.js.map +1 -1
  4. package/bundles/datorama-core.umd.min.js +58 -58
  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/grid-v2.component.js +5 -2
  8. package/esm2015/lib/grid-v2/grid/grid-v2.types.js +1 -1
  9. package/esm2015/lib/grid-v2/grid-column-header/grid-column-header.component.js +8 -7
  10. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +14 -1
  11. package/esm2015/lib/grid-v2/grid-filter/filter-validator.js +21 -3
  12. package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +37 -7
  13. package/esm2015/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
  14. package/esm2015/lib/grid-v2/grid-pagination/grid-pagination.component.js +16 -3
  15. package/esm2015/lib/grid-v2/grid-store/grid.query.js +48 -4
  16. package/esm2015/lib/grid-v2/grid-store/grid.service.js +102 -6
  17. package/esm2015/lib/grid-v2/grid-store/grid.store.types.js +1 -1
  18. package/esm2015/lib/grid-v2/grid-store/public_api.js +2 -0
  19. package/esm2015/lib/grid-v2/grid-store/util.js +20 -1
  20. package/esm2015/lib/grid-v2/public_api.js +2 -2
  21. package/esm2015/lib/icon/icon.types.js +1 -1
  22. package/esm2015/lib/utils/array.js +10 -1
  23. package/esm5/lib/grid-v2/grid/grid-v2.component.js +9 -2
  24. package/esm5/lib/grid-v2/grid/grid-v2.types.js +1 -1
  25. package/esm5/lib/grid-v2/grid-column-header/grid-column-header.component.js +8 -11
  26. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +14 -1
  27. package/esm5/lib/grid-v2/grid-filter/filter-validator.js +23 -4
  28. package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +43 -7
  29. package/esm5/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
  30. package/esm5/lib/grid-v2/grid-pagination/grid-pagination.component.js +16 -3
  31. package/esm5/lib/grid-v2/grid-store/grid.query.js +48 -4
  32. package/esm5/lib/grid-v2/grid-store/grid.service.js +139 -12
  33. package/esm5/lib/grid-v2/grid-store/grid.store.types.js +1 -1
  34. package/esm5/lib/grid-v2/grid-store/public_api.js +2 -0
  35. package/esm5/lib/grid-v2/grid-store/util.js +20 -1
  36. package/esm5/lib/grid-v2/public_api.js +2 -2
  37. package/esm5/lib/icon/icon.types.js +1 -1
  38. package/esm5/lib/utils/array.js +12 -1
  39. package/fesm2015/datorama-core.js +263 -23
  40. package/fesm2015/datorama-core.js.map +1 -1
  41. package/fesm5/datorama-core.js +313 -33
  42. package/fesm5/datorama-core.js.map +1 -1
  43. package/i18n/locale-en_US.json +2 -1
  44. package/lib/grid-v2/grid/grid-v2.component.d.ts +1 -0
  45. package/lib/grid-v2/grid/grid-v2.types.d.ts +2 -0
  46. package/lib/grid-v2/grid-column-header/grid-column-header.component.d.ts +0 -2
  47. package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +6 -1
  48. package/lib/grid-v2/grid-filter/grid-filter.component.d.ts +6 -0
  49. package/lib/grid-v2/grid-filter/grid-filter.types.d.ts +9 -0
  50. package/lib/grid-v2/grid-pagination/grid-pagination.component.d.ts +4 -0
  51. package/lib/grid-v2/grid-store/grid.query.d.ts +8 -2
  52. package/lib/grid-v2/grid-store/grid.service.d.ts +13 -3
  53. package/lib/grid-v2/grid-store/grid.store.types.d.ts +4 -0
  54. package/lib/grid-v2/grid-store/public_api.d.ts +2 -0
  55. package/lib/grid-v2/grid-store/util.d.ts +9 -1
  56. package/lib/grid-v2/public_api.d.ts +1 -2
  57. package/lib/utils/array.d.ts +5 -0
  58. package/package.json +2 -2
@@ -1184,6 +1184,17 @@ function a(array, n) {
1184
1184
  if (n === void 0) { n = 1; }
1185
1185
  return array.filter(function (e, index) { return index >= n; });
1186
1186
  }
1187
+ /**
1188
+ * Compares 2 array and return whether their inner values are the same,
1189
+ * without considering their order
1190
+ */
1191
+ function isArrayValuesEqual(arrA, arrB) {
1192
+ if (arrA === void 0) { arrA = []; }
1193
+ if (arrB === void 0) { arrB = []; }
1194
+ var aInb = arrA.every(function (valA) { return arrB.find(function (valB) { return valB === valA; }); });
1195
+ var bIna = arrB.every(function (valB) { return arrA.find(function (valA) { return valA === valB; }); });
1196
+ return aInb && bIna && arrA.length === arrB.length;
1197
+ }
1187
1198
 
1188
1199
  function toBoolean(value, includeZero) {
1189
1200
  if (includeZero === void 0) { includeZero = false; }
@@ -11247,6 +11258,25 @@ function getColumnsSizes(columns, original) {
11247
11258
  return sizeMap;
11248
11259
  }, {});
11249
11260
  }
11261
+ /**
11262
+ * Take pivoted value field if pivot column,
11263
+ * or field of the colDef,
11264
+ * or group field form showRowGroup if its agg column
11265
+ */
11266
+ function getColField(colDef) {
11267
+ var field = colDef.field, showRowGroup = colDef.showRowGroup, pivotValueColumn = colDef.pivotValueColumn;
11268
+ return pivotValueColumn ? pivotValueColumn.getColId() : field || showRowGroup;
11269
+ }
11270
+ function tryParsePivotValue(str) {
11271
+ var value;
11272
+ try {
11273
+ value = JSON.parse(str);
11274
+ }
11275
+ catch (e) {
11276
+ // Do nothing
11277
+ }
11278
+ return value;
11279
+ }
11250
11280
 
11251
11281
  var GridQuery = /** @class */ (function (_super) {
11252
11282
  __extends(GridQuery, _super);
@@ -11321,7 +11351,7 @@ var GridQuery = /** @class */ (function (_super) {
11321
11351
  };
11322
11352
  GridQuery.prototype.getCurrentGridSettings = function () {
11323
11353
  var toColId = function (column) { return column.getColId(); };
11324
- var _a = this.api, columns = _a.columns, grid = _a.grid;
11354
+ var columns = this.api.columns;
11325
11355
  var groupedColumns = columns.getRowGroupColumns();
11326
11356
  var columnsOrder = columns.getAllColumns();
11327
11357
  var allGridColumns = columns.getAllGridColumns();
@@ -11331,7 +11361,7 @@ var GridQuery = /** @class */ (function (_super) {
11331
11361
  var storeSettings = this.getValue().settings;
11332
11362
  var settings = {
11333
11363
  gridAlignment: storeSettings.gridAlignment,
11334
- sort: grid.getSortModel().pop(),
11364
+ sort: this.getSort(),
11335
11365
  hiddenColumns: hiddenColumns,
11336
11366
  groupedColumns: groupedColumns.map(toColId),
11337
11367
  filter: this.getFilter(),
@@ -11345,6 +11375,28 @@ var GridQuery = /** @class */ (function (_super) {
11345
11375
  }
11346
11376
  return settings;
11347
11377
  };
11378
+ GridQuery.prototype.getSort = function () {
11379
+ if (this.gridRef.gridOptions.pivotMode) {
11380
+ var _a = this.api.grid.getSortModel().pop() || {}, sort = _a.sort, colId = _a.colId;
11381
+ var column = this.api.columns.getColumn(colId);
11382
+ var pivotedColumn = this.getSecondaryColumn(colId);
11383
+ if (pivotedColumn) {
11384
+ var uniquePivotParents = uniq(this.api.columns.getSecondaryColumns().map(function (column) { return column.getParent(); }));
11385
+ var secondaryColumn = this.getSecondaryColumn(pivotedColumn.getColId());
11386
+ var pivotColIndex = uniquePivotParents.indexOf(secondaryColumn.getParent());
11387
+ return { colId: getColField(pivotedColumn.getColDef()), sort: sort, pivotColIndex: pivotColIndex };
11388
+ }
11389
+ else if (column) {
11390
+ return { colId: getColField(column.getColDef()), sort: sort };
11391
+ }
11392
+ }
11393
+ else {
11394
+ return this.api.grid.getSortModel().pop();
11395
+ }
11396
+ };
11397
+ GridQuery.prototype.selectSort = function () {
11398
+ return this.select(function (state) { return state.settings.sort; });
11399
+ };
11348
11400
  /* @internal */
11349
11401
  GridQuery.prototype._setApi = function (api, gridRef) {
11350
11402
  this.api = api;
@@ -11361,6 +11413,20 @@ var GridQuery = /** @class */ (function (_super) {
11361
11413
  GridQuery.prototype.getFilter = function () {
11362
11414
  return this.getValue().settings.filter;
11363
11415
  };
11416
+ GridQuery.prototype.selectFilter = function () {
11417
+ return this.select(function (state) { return state.settings.filter; });
11418
+ };
11419
+ GridQuery.prototype.filterChanged = function () {
11420
+ return this.selectFilter().pipe(map$1(function (filter) {
11421
+ return Object.keys(filter).reduce(function (filters, field) {
11422
+ var datoFilter = filter[field];
11423
+ if (datoFilter) {
11424
+ filters.push({ colId: datoFilter.colId, field: field, filter: datoFilter });
11425
+ }
11426
+ return filters;
11427
+ }, []);
11428
+ }));
11429
+ };
11364
11430
  GridQuery.prototype.getSearchTerm = function () {
11365
11431
  return this.getValue().settings.searchTerm;
11366
11432
  };
@@ -11415,9 +11481,16 @@ var GridQuery = /** @class */ (function (_super) {
11415
11481
  GridQuery.prototype.getAllDisplayedColumns = function () {
11416
11482
  return this.filterCheckboxSelectionColumn(this.api.columns.getAllDisplayedColumns());
11417
11483
  };
11484
+ GridQuery.prototype.getAllPivotColumns = function () {
11485
+ return this.getAllColumns().filter(function (column) { return column.isPivotActive(); });
11486
+ };
11418
11487
  GridQuery.prototype.selectIsSelectAllRowsEnabled = function () {
11419
11488
  return this.select(function (state) { return state.serverSidePagination.selectAllRowsEnabled; });
11420
11489
  };
11490
+ GridQuery.prototype.getSecondaryColumn = function (colId) {
11491
+ var secondaryColumns = this.api.columns.getSecondaryColumns();
11492
+ return secondaryColumns && secondaryColumns.find(function (col) { return col.getColId() === colId; });
11493
+ };
11421
11494
  GridQuery.prototype.filterCheckboxSelectionColumn = function (columns) {
11422
11495
  return columns.filter(function (column) { return !column.getUserProvidedColDef() || !column.getUserProvidedColDef().checkboxSelection; });
11423
11496
  };
@@ -11510,7 +11583,7 @@ var OperatorTypes;
11510
11583
  function validateStringCondition(rowValue, _a) {
11511
11584
  var condition = _a.condition, filterValue = _a.value;
11512
11585
  var filterTextLowerCase = filterValue ? filterValue.toLowerCase() : '';
11513
- var valueLowerCase = rowValue ? rowValue.toLowerCase() : '';
11586
+ var valueLowerCase = rowValue ? ("" + rowValue).toLowerCase() : '';
11514
11587
  switch (condition) {
11515
11588
  case DatoFilterConditions.EQUALS:
11516
11589
  return valueLowerCase === filterTextLowerCase;
@@ -11597,8 +11670,13 @@ function validateFilter(_a, activeFilters) {
11597
11670
  var orderedFilters = Object.keys(activeFilters);
11598
11671
  var _loop_1 = function (filter) {
11599
11672
  var filterPasses = true;
11600
- var _a = activeFilters[filter], byValue = _a.byValue, conditional = _a.conditional;
11673
+ var _a = activeFilters[filter], byValue = _a.byValue, conditional = _a.conditional, pivotKeys = _a.pivotKeys;
11674
+ var currentRowPivotKeys = row.parent.childrenMapped && getRowPivotKeys(row.parent.childrenMapped);
11601
11675
  var rowValue = api.getValue(filter, row);
11676
+ /** If value is under a pivoted column but doesn't match the filter pivot */
11677
+ if (pivotKeys && pivotKeys.length > 0 && !isArrayValuesEqual(pivotKeys, currentRowPivotKeys)) {
11678
+ return { value: true };
11679
+ }
11602
11680
  if (conditional) {
11603
11681
  var operator = conditional.operator, conditions = conditional.conditions, type_1 = conditional.type;
11604
11682
  var conditionsRelation = operator === OperatorTypes.AND ? 'every' : 'some';
@@ -11630,6 +11708,18 @@ function validateFilter(_a, activeFilters) {
11630
11708
  }
11631
11709
  return true;
11632
11710
  }
11711
+ /**
11712
+ * Get pivot keys from a row parent
11713
+ */
11714
+ function getRowPivotKeys(childrenMapped, keys) {
11715
+ if (keys === void 0) { keys = []; }
11716
+ var key = Object.keys(childrenMapped)[0];
11717
+ var parsedKey = tryParsePivotValue(key);
11718
+ if (parsedKey) {
11719
+ keys = getRowPivotKeys(childrenMapped[key], __spread(keys, [parsedKey.value]));
11720
+ }
11721
+ return keys;
11722
+ }
11633
11723
 
11634
11724
  var GridActionType;
11635
11725
  (function (GridActionType) {
@@ -12509,7 +12599,8 @@ var DatoGridFilterComponent = /** @class */ (function () {
12509
12599
  });
12510
12600
  Object.defineProperty(DatoGridFilterComponent.prototype, "colFilter", {
12511
12601
  get: function () {
12512
- return this.gridQuery.getFilter()[this.colField];
12602
+ var filter = this.gridQuery.getFilter()[this.colField];
12603
+ return filter && isArrayValuesEqual(this.pivotKeys, filter.pivotKeys) ? filter : null;
12513
12604
  },
12514
12605
  enumerable: true,
12515
12606
  configurable: true
@@ -12521,12 +12612,20 @@ var DatoGridFilterComponent = /** @class */ (function () {
12521
12612
  enumerable: true,
12522
12613
  configurable: true
12523
12614
  });
12615
+ Object.defineProperty(DatoGridFilterComponent.prototype, "pivotKeys", {
12616
+ get: function () {
12617
+ return this.colDef.pivotKeys || [];
12618
+ },
12619
+ enumerable: true,
12620
+ configurable: true
12621
+ });
12524
12622
  DatoGridFilterComponent.prototype.ngOnInit = function () {
12525
12623
  var _a;
12526
12624
  var _this = this;
12527
12625
  var _b = this.popover.data, gridService = _b.gridService, gridQuery = _b.gridQuery;
12528
- var _c = this.colDef, field = _c.field, filter = _c.filter, _d = _c.filtersConfig, filtersConfig = _d === void 0 ? {} : _d;
12529
- this.colField = field;
12626
+ var _c = this.colDef, filter = _c.filter, _d = _c.filtersConfig, filtersConfig = _d === void 0 ? {} : _d, pivotValueColumn = _c.pivotValueColumn, pivotKeys = _c.pivotKeys;
12627
+ this.colField = getColField(this.colDef);
12628
+ this.pivotColumn = gridQuery.api.columns.getSecondaryPivotColumn(pivotKeys, pivotValueColumn);
12530
12629
  if (filtersConfig.sections) {
12531
12630
  this.filterSections = (_a = {}, _a[filtersConfig.sections] = true, _a);
12532
12631
  }
@@ -12538,7 +12637,11 @@ var DatoGridFilterComponent = /** @class */ (function () {
12538
12637
  this.listSortByKey = this.filterType === DatoGridFilterTypes.Number && this.colDef.valueFormatter ? 'id' : 'label';
12539
12638
  this.gridQuery = gridQuery;
12540
12639
  this.gridService = gridService;
12541
- this.hasFilter$ = this.gridQuery.select(function (state) { return state.settings.filter[field]; }).pipe(map$1(function (filter) { return !isNil(filter); }));
12640
+ this.hasFilter$ = this.gridQuery
12641
+ .select(function (state) { return state.settings.filter[_this.colField]; })
12642
+ .pipe(map$1(function (filter) {
12643
+ return !isNil(filter) && isArrayValuesEqual(filter.pivotKeys, _this.pivotKeys);
12644
+ }));
12542
12645
  if (this.filterSections.Conditional) {
12543
12646
  var filterConditions = filterOptions || DatoGridStringFilterOptions;
12544
12647
  if (filtersConfig.showEmptyConditions) {
@@ -12604,6 +12707,7 @@ var DatoGridFilterComponent = /** @class */ (function () {
12604
12707
  isEmpty(filter)
12605
12708
  ? this.gridService.clearColumnFilter(this.colField)
12606
12709
  : this.gridService.setColumnFilter(column, filter);
12710
+ this.gridService.notifyFilterUpdate();
12607
12711
  }
12608
12712
  };
12609
12713
  DatoGridFilterComponent.prototype.clearFilters = function () {
@@ -12654,8 +12758,16 @@ var DatoGridFilterComponent = /** @class */ (function () {
12654
12758
  return this.columnValues.filter(function (value) { return !includedSet.has(value); });
12655
12759
  };
12656
12760
  DatoGridFilterComponent.prototype.buildFilter = function () {
12761
+ var _this = this;
12657
12762
  var _a = this.filterForm.value, byValue = _a.byValue, conditional = _a.conditional;
12658
- var filter = {};
12763
+ var filter = { colId: this.colDef.colId };
12764
+ filter.pivotKeys = this.pivotKeys;
12765
+ if (this.pivotColumn) {
12766
+ filter.pivotFieldsMap = this.getPivotFields(this.pivotColumn.getParent()).reduce(function (fieldMap, field, index) {
12767
+ fieldMap[field] = _this.pivotKeys[index];
12768
+ return fieldMap;
12769
+ }, {});
12770
+ }
12659
12771
  if (this.filterSections.Conditional) {
12660
12772
  this.setConditionalFilter(filter, conditional);
12661
12773
  }
@@ -12984,6 +13096,19 @@ var DatoGridFilterComponent = /** @class */ (function () {
12984
13096
  var _this = this;
12985
13097
  return data.filter(function (v) { return !_this.excludedValues.has(v); });
12986
13098
  };
13099
+ /**
13100
+ * Get pivot dimensions as defined in the parent group column header class.
13101
+ */
13102
+ DatoGridFilterComponent.prototype.getPivotFields = function (parent, fields) {
13103
+ if (fields === void 0) { fields = []; }
13104
+ var grandParent = parent.getParent();
13105
+ var headerClass = parent.getOriginalColumnGroup().getColGroupDef().headerClass;
13106
+ if (grandParent) {
13107
+ this.getPivotFields(grandParent, fields);
13108
+ }
13109
+ headerClass && fields.push(headerClass[0]);
13110
+ return fields;
13111
+ };
12987
13112
  DatoGridFilterComponent.ctorParameters = function () { return [
12988
13113
  { type: ElementRef },
12989
13114
  { type: PopoverRef },
@@ -13072,10 +13197,9 @@ var DatoGridColumnHeaderComponent = /** @class */ (function () {
13072
13197
  var colDef = params.column.getColDef();
13073
13198
  this.headerInfo = colDef.info;
13074
13199
  this.headerName = colDef.headerName;
13075
- this.aggColumn = this.column.getColId().indexOf('ag-Grid-AutoColumn') !== -1;
13076
13200
  this.showFilter = colDef.filter !== DatoGridFilterTypes.None;
13077
13201
  this.showMoreMenu = isNil(colDef.moreMenuActions) || colDef.moreMenuActions.length > 0;
13078
- this.field = this.aggColumn ? this.groupField : colDef.field;
13202
+ this.field = getColField(colDef);
13079
13203
  this.context = {
13080
13204
  api: {
13081
13205
  grid: params.api,
@@ -13087,7 +13211,10 @@ var DatoGridColumnHeaderComponent = /** @class */ (function () {
13087
13211
  this.customTemplates = gridService.getCustomHeader(this.field);
13088
13212
  this.filterActive$ = gridQuery
13089
13213
  .select(function (state) { return state.settings.filter[_this.field]; })
13090
- .pipe(map$1(function (filter) { return size(filter) > 0; }));
13214
+ .pipe(map$1(function (filter) {
13215
+ var isPivotColumnMatchFilter = filter && isArrayValuesEqual(filter.pivotKeys, colDef.pivotKeys);
13216
+ return size(filter) > 0 && isPivotColumnMatchFilter;
13217
+ }));
13091
13218
  if (this.params.enableSorting) {
13092
13219
  fromEvent(this.host.nativeElement, 'click')
13093
13220
  .pipe(untilDestroyed(this))
@@ -13149,13 +13276,6 @@ var DatoGridColumnHeaderComponent = /** @class */ (function () {
13149
13276
  });
13150
13277
  };
13151
13278
  DatoGridColumnHeaderComponent.prototype.ngOnDestroy = function () { };
13152
- Object.defineProperty(DatoGridColumnHeaderComponent.prototype, "groupField", {
13153
- get: function () {
13154
- return this.column.getColDef().showRowGroup;
13155
- },
13156
- enumerable: true,
13157
- configurable: true
13158
- });
13159
13279
  DatoGridColumnHeaderComponent.ctorParameters = function () { return [
13160
13280
  { type: ViewContainerRef },
13161
13281
  { type: CustomHeaderControllerService },
@@ -13654,8 +13774,8 @@ var GridService = /** @class */ (function () {
13654
13774
  this.svgRegistry = svgRegistry;
13655
13775
  this.storageAPI = storageAPI;
13656
13776
  this.logger = logger;
13657
- this.pageNumberToReturnAfterRefresh = -1;
13658
13777
  this.treeConfig = defaultGridTreeLabel;
13778
+ this.pageNumberToReturnAfterRefresh = -1;
13659
13779
  this.CHECKBOX_SELECTION_COL_ID = 'grid-checkbox-selection';
13660
13780
  }
13661
13781
  Object.defineProperty(GridService.prototype, "treeData", {
@@ -13721,6 +13841,9 @@ var GridService = /** @class */ (function () {
13721
13841
  var treeDate = convertToTreeData(data, _this.treeConfig);
13722
13842
  _this.api.grid.setRowData(treeDate);
13723
13843
  }
13844
+ else if (_this.isPivotMode) {
13845
+ _this.setPivotModeRows(data);
13846
+ }
13724
13847
  else {
13725
13848
  _this.api.grid.setRowData(data);
13726
13849
  }
@@ -13841,6 +13964,12 @@ var GridService = /** @class */ (function () {
13841
13964
  params.gridOptions.saveSettings = saveSettings !== false && !isNil(gridName);
13842
13965
  /** Server Side Pagination for select all option */
13843
13966
  this.initOnRowSelectedForServerSidePagination(params);
13967
+ /** Add pivot specific required settings */
13968
+ if (params.gridOptions.pivotMode) {
13969
+ this.initPivotSecondaryColsProcess(params);
13970
+ params.gridOptions.enableV2_1 = true;
13971
+ params.gridOptions.saveSettings = false;
13972
+ }
13844
13973
  return params.gridOptions;
13845
13974
  };
13846
13975
  GridService.prototype.normalizeColumns = function (colDefs, gridOptions) {
@@ -14026,19 +14155,50 @@ var GridService = /** @class */ (function () {
14026
14155
  });
14027
14156
  this.notifyFilterUpdate();
14028
14157
  };
14029
- GridService.prototype.setColumnFilter = function (column, filter) {
14158
+ GridService.prototype.setColumnFilter = function (column, filter, notifyGrid) {
14159
+ if (notifyGrid === void 0) { notifyGrid = true; }
14030
14160
  this._logEvent("Grids - Filter Applied" /* GRID_FILTER_APPLIED */, {
14031
14161
  column: column.getColId(),
14032
14162
  numOfConditions: (filter.conditional && filter.conditional.conditions.length) || 0,
14033
14163
  byValue: !!filter.byValue ? 'Yes' : 'No'
14034
14164
  });
14165
+ this.updateFilter(column, filter);
14166
+ if (notifyGrid) {
14167
+ this.notifyFilterUpdate();
14168
+ }
14169
+ };
14170
+ GridService.prototype.setGridFilters = function (filters) {
14171
+ var e_2, _a;
14172
+ try {
14173
+ for (var filters_1 = __values(filters), filters_1_1 = filters_1.next(); !filters_1_1.done; filters_1_1 = filters_1.next()) {
14174
+ var _b = filters_1_1.value, colId = _b.colId, filter = _b.filter;
14175
+ var column = this.api.columns.getColumn(colId);
14176
+ if (column) {
14177
+ this.setColumnFilter(column, filter);
14178
+ }
14179
+ else {
14180
+ var pivotColumn = this.gridQuery.getSecondaryColumn(colId);
14181
+ this.setColumnFilter(pivotColumn, filter);
14182
+ }
14183
+ }
14184
+ }
14185
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
14186
+ finally {
14187
+ try {
14188
+ if (filters_1_1 && !filters_1_1.done && (_a = filters_1.return)) _a.call(filters_1);
14189
+ }
14190
+ finally { if (e_2) throw e_2.error; }
14191
+ }
14192
+ this.notifyFilterUpdate();
14193
+ };
14194
+ GridService.prototype.updateFilter = function (column, filter) {
14195
+ var colField = getColField(column.getColDef());
14035
14196
  this.store.update(function (state) {
14036
14197
  var _a;
14037
14198
  return {
14038
- settings: __assign(__assign({}, state.settings), { filter: __assign(__assign({}, state.settings.filter), (_a = {}, _a[column.getColDef().field] = filter, _a)) })
14199
+ settings: __assign(__assign({}, state.settings), { filter: __assign(__assign({}, state.settings.filter), (_a = {}, _a[colField] = filter, _a)) })
14039
14200
  };
14040
14201
  });
14041
- this.notifyFilterUpdate();
14042
14202
  };
14043
14203
  GridService.prototype.setSearchTerm = function (searchTerm) {
14044
14204
  this.store.update(function (state) {
@@ -14331,7 +14491,7 @@ var GridService = /** @class */ (function () {
14331
14491
  this.api.grid.onFilterChanged();
14332
14492
  };
14333
14493
  GridService.prototype.buildServerRequestFilters = function (filter) {
14334
- var e_2, _a;
14494
+ var e_3, _a;
14335
14495
  var columnsFilters = {};
14336
14496
  try {
14337
14497
  for (var _b = __values(Object.entries(filter)), _c = _b.next(); !_c.done; _c = _b.next()) {
@@ -14367,12 +14527,12 @@ var GridService = /** @class */ (function () {
14367
14527
  }
14368
14528
  }
14369
14529
  }
14370
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
14530
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
14371
14531
  finally {
14372
14532
  try {
14373
14533
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
14374
14534
  }
14375
- finally { if (e_2) throw e_2.error; }
14535
+ finally { if (e_3) throw e_3.error; }
14376
14536
  }
14377
14537
  return columnsFilters;
14378
14538
  };
@@ -14425,7 +14585,7 @@ var GridService = /** @class */ (function () {
14425
14585
  return { operator: OperatorTypes.AND, filters: [columnFilter, searchFilter] };
14426
14586
  };
14427
14587
  GridService.prototype.buildServerColumnFilters_v2_1 = function (filter) {
14428
- var e_3, _a;
14588
+ var e_4, _a;
14429
14589
  var columnFilters = [];
14430
14590
  try {
14431
14591
  for (var _b = __values(Object.entries(filter)), _c = _b.next(); !_c.done; _c = _b.next()) {
@@ -14450,12 +14610,12 @@ var GridService = /** @class */ (function () {
14450
14610
  columnFilters.push(columnFilter);
14451
14611
  }
14452
14612
  }
14453
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
14613
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
14454
14614
  finally {
14455
14615
  try {
14456
14616
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
14457
14617
  }
14458
- finally { if (e_3) throw e_3.error; }
14618
+ finally { if (e_4) throw e_4.error; }
14459
14619
  }
14460
14620
  return columnFilters;
14461
14621
  };
@@ -14545,6 +14705,93 @@ var GridService = /** @class */ (function () {
14545
14705
  this.setServerSidePagination({ selectAllRowsEnabled: false, excludedFromSelectAll: [] });
14546
14706
  }
14547
14707
  };
14708
+ /**
14709
+ * When pivoting,
14710
+ * we add the field name to the column header class in order to access it through the auto generated pivot column.
14711
+ * @private
14712
+ */
14713
+ GridService.prototype.initPivotSecondaryColsProcess = function (_a) {
14714
+ var _this = this;
14715
+ var gridOptions = _a.gridOptions;
14716
+ gridOptions.processSecondaryColDef = function (colDef) {
14717
+ var api = colDef.headerComponentParams && colDef.headerComponentParams.gridQuery.api;
14718
+ if (api) {
14719
+ var valueColumns = colDef.headerComponentParams.gridQuery.api.columns.getValueColumns();
14720
+ var originalColDef = valueColumns
14721
+ .map(function (_a) {
14722
+ var userProvidedColDef = _a.userProvidedColDef;
14723
+ return userProvidedColDef;
14724
+ })
14725
+ .find(function (_a) {
14726
+ var colId = _a.colId;
14727
+ return colId === colDef.pivotValueColumn.getColId();
14728
+ });
14729
+ if (originalColDef) {
14730
+ colDef.filter = originalColDef.filter;
14731
+ }
14732
+ }
14733
+ if (colDef.pivotKeys) {
14734
+ colDef.pivotKeys = colDef.pivotKeys.map(function (key) {
14735
+ var parsedKey = tryParsePivotValue(key);
14736
+ return (parsedKey && parsedKey.value) || '';
14737
+ });
14738
+ }
14739
+ };
14740
+ gridOptions.processSecondaryColGroupDef = function (colGroupDef) {
14741
+ if (colGroupDef.headerName) {
14742
+ var parsedValue = tryParsePivotValue(colGroupDef.headerName);
14743
+ if (parsedValue) {
14744
+ var field = parsedValue.field, value = parsedValue.value;
14745
+ colGroupDef.headerClass = [field];
14746
+ colGroupDef.headerName = value;
14747
+ if (colGroupDef.children && colGroupDef.children.length > 1) {
14748
+ colGroupDef.headerClass.push('group-pivot-cell');
14749
+ }
14750
+ }
14751
+ }
14752
+ else if (colGroupDef.children) {
14753
+ var _a = __read(colGroupDef.children, 1), colChild = _a[0];
14754
+ var pivotTotalColumnIds = colChild && colChild.pivotTotalColumnIds;
14755
+ if (pivotTotalColumnIds && pivotTotalColumnIds.length > 0) {
14756
+ colGroupDef.headerClass = ['total-pivot-cell'];
14757
+ colGroupDef.headerName = _this.translate.transform('core.total');
14758
+ }
14759
+ }
14760
+ else {
14761
+ colGroupDef.headerClass = ['empty-pivot-header'];
14762
+ }
14763
+ if (colGroupDef.pivotKeys) {
14764
+ colGroupDef.pivotKeys = colGroupDef.pivotKeys.map(function (key) {
14765
+ var parsedKey = tryParsePivotValue(key);
14766
+ return (parsedKey && parsedKey.value) || '';
14767
+ });
14768
+ }
14769
+ };
14770
+ };
14771
+ GridService.prototype.setPivotModeRows = function (data) {
14772
+ var pivotColumns = this.gridQuery.getAllPivotColumns();
14773
+ var convertedData = data.map(function (currentValue, index) {
14774
+ var e_5, _a;
14775
+ var mappedValues = __assign({}, currentValue);
14776
+ try {
14777
+ for (var pivotColumns_1 = __values(pivotColumns), pivotColumns_1_1 = pivotColumns_1.next(); !pivotColumns_1_1.done; pivotColumns_1_1 = pivotColumns_1.next()) {
14778
+ var col = pivotColumns_1_1.value;
14779
+ var field = col.getColDef().field;
14780
+ var pivotValue = { field: field, value: currentValue[field] };
14781
+ mappedValues[field] = JSON.stringify(pivotValue);
14782
+ }
14783
+ }
14784
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
14785
+ finally {
14786
+ try {
14787
+ if (pivotColumns_1_1 && !pivotColumns_1_1.done && (_a = pivotColumns_1.return)) _a.call(pivotColumns_1);
14788
+ }
14789
+ finally { if (e_5) throw e_5.error; }
14790
+ }
14791
+ return mappedValues;
14792
+ });
14793
+ this.api.grid.setRowData(convertedData);
14794
+ };
14548
14795
  GridService.ctorParameters = function () { return [
14549
14796
  { type: GridStore },
14550
14797
  { type: GridQuery },
@@ -14979,6 +15226,7 @@ var DatoGridControllerComponent = /** @class */ (function () {
14979
15226
  set: function (gridOptions) {
14980
15227
  this._gridOptions = gridOptions;
14981
15228
  this.gridService.treeData = gridOptions.treeData;
15229
+ this.gridService.isPivotMode = gridOptions.pivotMode;
14982
15230
  if (this.agGridEl) {
14983
15231
  if (gridOptions.treeData) {
14984
15232
  !this.agGridEl.classList.contains(this.treeGridClass) && this.agGridEl.classList.add(this.treeGridClass);
@@ -15054,6 +15302,18 @@ var DatoGridControllerComponent = /** @class */ (function () {
15054
15302
  var defaults = __assign(__assign(__assign({}, defaultGridOptions), (this.gridOptions.treeData ? defaultTreeOptions : {})), { icons: this.getGridIcons() });
15055
15303
  return deepmerge(defaults, normalized);
15056
15304
  };
15305
+ DatoGridControllerComponent.prototype.setGridRows = function (data) {
15306
+ this.gridService.setRows(data);
15307
+ };
15308
+ DatoGridControllerComponent.prototype.setGridFilters = function (filters) {
15309
+ this.gridService.setGridFilters(filters);
15310
+ };
15311
+ DatoGridControllerComponent.prototype.onFilterChanged = function () {
15312
+ return this.gridQuery.filterChanged();
15313
+ };
15314
+ DatoGridControllerComponent.prototype.onSortChanged = function () {
15315
+ return this.gridQuery.selectSort();
15316
+ };
15057
15317
  DatoGridControllerComponent.prototype.getGridIcons = function () {
15058
15318
  var moveColumnIcon = "<span class=\"da-grid-icon pointer d-flex column-move\">" + this.iconRegistry.getSvg('move-column') + "</span>";
15059
15319
  return {
@@ -15463,6 +15723,13 @@ var DatoGridV2Component = /** @class */ (function () {
15463
15723
  enumerable: true,
15464
15724
  configurable: true
15465
15725
  });
15726
+ Object.defineProperty(DatoGridV2Component.prototype, "isPivotMode", {
15727
+ get: function () {
15728
+ return this.gridOptions ? this.gridOptions.pivotMode : false;
15729
+ },
15730
+ enumerable: true,
15731
+ configurable: true
15732
+ });
15466
15733
  DatoGridV2Component.ctorParameters = function () { return [
15467
15734
  { type: DatoGridControllerComponent },
15468
15735
  { type: ElementRef }
@@ -15475,7 +15742,7 @@ var DatoGridV2Component = /** @class */ (function () {
15475
15742
  DatoGridV2Component = __decorate([
15476
15743
  Component({
15477
15744
  selector: 'dato-grid-v2',
15478
- template: "<ag-grid-angular data-auto-id=\"grid\" class=\"dato-grid ag-theme-material\" [class.has-background]=\"enableBackground\" [class.enable-v2_1]=\"enableV2_1\"\n [class.with-multi-selection-col]=\"gridOptions?.showMultiSelectionCheckboxes\">\n</ag-grid-angular>\n<dato-grid-pagination-v2 [class.has-background]=\"enableBackground\"></dato-grid-pagination-v2>\n",
15745
+ template: "<ag-grid-angular data-auto-id=\"grid\" class=\"dato-grid ag-theme-material\" [class.has-background]=\"enableBackground\" [class.enable-v2_1]=\"enableV2_1\"\n [class.with-multi-selection-col]=\"gridOptions?.showMultiSelectionCheckboxes\" [class.pivot-mode]=\"isPivotMode\">\n</ag-grid-angular>\n<dato-grid-pagination-v2 [class.has-background]=\"enableBackground\"></dato-grid-pagination-v2>\n",
15479
15746
  changeDetection: ChangeDetectionStrategy.OnPush,
15480
15747
  encapsulation: ViewEncapsulation.None,
15481
15748
  styles: ["dato-grid-v2{flex-grow:1;display:flex;flex-direction:column;position:relative}dato-grid-v2 .dato-grid,dato-grid-v2 dato-grid-pagination-v2{position:absolute;left:0;right:0;bottom:0}dato-grid-v2 .dato-grid{top:0;bottom:50px}dato-grid-v2 .grid-hover-actions{position:absolute;z-index:2;transition:opacity .2s ease-in-out}dato-grid-v2 .ag-row-drag{width:initial!important}dato-grid-v2 .da-grid-icon{display:inline-block;line-height:31px;vertical-align:middle;width:initial;height:initial}dato-grid-v2 .da-grid-icon.drag{width:14px;height:14px;margin-right:6px;opacity:0;transition:opacity .3s;transform:translateY(-50%)}dato-grid-v2 .da-grid-icon.folder{width:18px;height:35px;margin:0 8px}dato-grid-v2 .ag-row.ag-row-hover .da-grid-icon.drag{opacity:1}dato-grid-v2 ag-grid-angular.tree .ag-group-contracted,dato-grid-v2 ag-grid-angular.tree .ag-group-expanded{display:inline-block;width:18px;text-align:center}dato-grid-v2 ag-grid-angular.tree .ag-group-checkbox{display:none}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-empty-folder .folder{margin-left:26px}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-1 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 1)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-1{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-2 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 2)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-2{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-3 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 3)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-3{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-4 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 4)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-4{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row div[col-id=ag-Grid-AutoColumn]{padding-left:0}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell{display:flex;align-items:center}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell .ag-group-value>span{display:inline-block;vertical-align:middle}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell .initials{border-radius:50%;padding:4px;margin-right:8px;margin-left:20px;width:28px;height:28px;display:inline-block;text-align:center}dato-grid-v2 ag-grid-angular.tree .ag-row-group-leaf-indent{margin-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-selection-checkbox .ag-icon-checkbox-indeterminate:before{text-align:center;content:'-';display:inline-block;position:absolute;top:0;left:0;right:0;bottom:0;line-height:.5;color:#fff}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell{line-height:33px}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell.dato-editable-cell{line-height:29px}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell.ag-cell-inline-editing{height:35px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell{line-height:42px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell.dato-editable-cell{line-height:38px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell.ag-cell-inline-editing{height:44px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell{line-height:48px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell.dato-editable-cell{line-height:44px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell.ag-cell-inline-editing{height:50px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell{line-height:57px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell.dato-editable-cell{line-height:53px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell.ag-cell-inline-editing{height:59px}dato-grid-v2 ag-grid-angular .ag-cell.checkbox-selection-cell{display:flex}dato-grid-v2 .ag-menu .da-grid-icon svg{vertical-align:middle}dato-grid-v2 .ag-header-cell-sortable .ag-sort-none-icon{opacity:0;transition:opacity .2s}dato-grid-v2 .ag-header-cell-sortable:hover .ag-sort-none-icon{opacity:1}dato-grid-v2 .group-contracted-icon,dato-grid-v2 .group-expanded-icon{width:7px}dato-grid-v2 .group-expanded-icon{transform:rotate(90deg)}dato-grid-v2 .dato-grid .ag-cell{border-top:0;border-bottom:0}.ag-dnd-ghost{min-width:100px;border:none;display:flex;justify-content:flex-start;align-content:center;align-items:center;cursor:-webkit-grabbing;cursor:grabbing;z-index:10000000}.ag-dnd-ghost .da-grid-icon.column-move-hide svg{height:18px;width:18px}.ag-dnd-ghost .da-grid-icon.column-move svg,.ag-dnd-ghost .da-grid-icon.column-move-pin svg{height:16px;width:16px}"]
@@ -15776,6 +16043,9 @@ var DatoGridPaginationV2Component = /** @class */ (function () {
15776
16043
  showFirstEllipsis: false,
15777
16044
  showLastPage: false
15778
16045
  };
16046
+ // Show fit cell content and collapse/expand row groups controls
16047
+ this.showBottomControls = false;
16048
+ this.isExpanded = true;
15779
16049
  this.isServerSidePagination = false;
15780
16050
  // The number of pages displayed in the navigation panel for each view as defined by product.
15781
16051
  this.MINI_DISPLAY_LENGTH = 2;
@@ -15823,7 +16093,10 @@ var DatoGridPaginationV2Component = /** @class */ (function () {
15823
16093
  _this.initPagination();
15824
16094
  });
15825
16095
  this.gridQuery.gridReady$
15826
- .pipe(tap(function () { return (_this.gridApi = _this.gridQuery.api.grid); }), switchMap(function () {
16096
+ .pipe(tap(function () {
16097
+ _this.gridApi = _this.gridQuery.api.grid;
16098
+ _this.showBottomControls = _this.gridQuery.getGridOptions().showBottomControls;
16099
+ }), switchMap(function () {
15827
16100
  _this.isServerSidePagination = _this.gridQuery.isServerSide;
15828
16101
  return _this.isServerSidePagination ? _this.gridQuery.serverDataLoaded$ : _this.gridQuery.rowDataChanged$;
15829
16102
  }), throttleTime(100), tapOnce(function () { return _this.initPagination(); }), untilDestroyed(this))
@@ -15945,6 +16218,13 @@ var DatoGridPaginationV2Component = /** @class */ (function () {
15945
16218
  DatoGridPaginationV2Component.prototype.trackByPage = function (index, page) {
15946
16219
  return page;
15947
16220
  };
16221
+ DatoGridPaginationV2Component.prototype.toggleGroupsState = function () {
16222
+ this.isExpanded ? this.gridApi.collapseAll() : this.gridApi.expandAll();
16223
+ this.isExpanded = !this.isExpanded;
16224
+ };
16225
+ DatoGridPaginationV2Component.prototype.autoFitGrid = function (type) {
16226
+ this.gridService.fitGrid(type);
16227
+ };
15948
16228
  DatoGridPaginationV2Component.prototype.ngOnDestroy = function () { };
15949
16229
  /**
15950
16230
  * Sets the rows display string
@@ -16033,7 +16313,7 @@ var DatoGridPaginationV2Component = /** @class */ (function () {
16033
16313
  Component({
16034
16314
  selector: 'dato-grid-pagination-v2',
16035
16315
  changeDetection: ChangeDetectionStrategy.OnPush,
16036
- template: "<div class=\"d-flex-row d-flex-auto d-flex-wrap container\" [class.small]=\"smallVersion\"\n [attr.data-pages-count]=\"totalPages\"\n [attr.data-current-page]=\"pageNumbersDisplay.currentPage\"\n [attr.data-page-size]=\"rowsPerPage\"\n [attr.data-rows-count]=\"rowCount\">\n <div *ngIf=\"totalPages > 1\" #navigation\n class=\"navigation d-flex-row d-flex-0-0-auto align-center\">\n\n <!-- First Page -->\n <dato-icon-button *ngIf=\"!disableButtons\"\n class=\"mr-4\" data-auto-id=\"pagiantion-first-page\"\n icon=\"chevron-left-double\"\n datoType=\"secondary\"\n datoSize=\"md\"\n [disabled]=\"prevPageDisabled\"\n (click)=\"navigateFirstPage()\">\n </dato-icon-button>\n\n <!-- Previous Page -->\n <dato-icon-button icon=\"arrow-left\" datoType=\"secondary\" datoSize=\"md\"\n [disabled]=\"prevPageDisabled\" data-auto-id=\"pagiantion-previous-page\"\n (click)=\"navigatePrevPage()\">\n </dato-icon-button>\n\n\n <div class=\"d-flex mx-5 align-center number-container\">\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\" data-auto-id=\"pagiantion-previous-batch\"\n *ngIf=\"pageNumbersDisplay.showFirstEllipsis && !smallVersion\"\n (click)=\"showPreviousBatch()\">...\n </dato-link>\n <dato-link class=\"page-number mx-5\" [datoType]=\"page === pageNumbersDisplay.currentPage ? 'primary' : 'secondary'\" datoSize=\"sm\"\n *ngFor=\"let page of pageNumbersDisplay.pages; index as i; trackBy: trackByPage;\" [attr.data-auto-id]=\"'pagiantion-page-' + i\"\n (click)=\"navigatePage(page - 1)\">\n {{page}}\n </dato-link>\n\n <div class=\"d-flex\" *ngIf=\"pageNumbersDisplay.showLastPage && !smallVersion\">\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\" data-auto-id=\"pagiantion-next-batch\"\n (click)=\"showNextBatch()\">...</dato-link>\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\"\n [attr.data-auto-id]=\"'pagiantion-page-' + totalPages\"\n (click)=\"navigatePage(totalPages - 1)\">\n {{totalPages}}\n </dato-link>\n </div>\n\n </div>\n\n <!-- Next Page -->\n <dato-icon-button icon=\"arrow-right\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"navigateNextPage()\" data-auto-id=\"pagiantion-next-page\"\n [disabled]=\"nextPageDisabled\">\n </dato-icon-button>\n\n <!-- Last Page -->\n <dato-icon-button *ngIf=\"!disableButtons\"\n class=\"ml-4\" icon=\"chevron-right-double\"\n datoType=\"secondary\" datoSize=\"md\" data-auto-id=\"pagiantion-last-page\"\n [disabled]=\"nextPageDisabled\"\n (click)=\"navigatePage(totalPages - 1)\">\n </dato-icon-button>\n\n </div>\n\n <div *ngIf=\"totalPages > 1 && !smallVersion\"\n class=\"separator mx-10 my-auto primary-100-background-color\">\n </div>\n\n <div class=\"total d-flex-0-0-auto d-flex-row align-center\">\n <span class=\"dato-note primary-300-color\">{{rowsRange}}</span>\n </div>\n\n</div>\n",
16316
+ template: "<div class=\"d-flex-row d-flex-auto d-flex-wrap container\" [class.small]=\"smallVersion\"\n [attr.data-pages-count]=\"totalPages\"\n [attr.data-current-page]=\"pageNumbersDisplay.currentPage\"\n [attr.data-page-size]=\"rowsPerPage\"\n [attr.data-rows-count]=\"rowCount\">\n <div *ngIf=\"totalPages > 1\" #navigation\n class=\"navigation d-flex-row d-flex-0-0-auto align-center\">\n\n <!-- First Page -->\n <dato-icon-button *ngIf=\"!disableButtons\"\n class=\"mr-4\" data-auto-id=\"pagiantion-first-page\"\n icon=\"chevron-left-double\"\n datoType=\"secondary\"\n datoSize=\"md\"\n [disabled]=\"prevPageDisabled\"\n (click)=\"navigateFirstPage()\">\n </dato-icon-button>\n\n <!-- Previous Page -->\n <dato-icon-button icon=\"arrow-left\" datoType=\"secondary\" datoSize=\"md\"\n [disabled]=\"prevPageDisabled\" data-auto-id=\"pagiantion-previous-page\"\n (click)=\"navigatePrevPage()\">\n </dato-icon-button>\n\n\n <div class=\"d-flex mx-5 align-center number-container\">\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\" data-auto-id=\"pagiantion-previous-batch\"\n *ngIf=\"pageNumbersDisplay.showFirstEllipsis && !smallVersion\"\n (click)=\"showPreviousBatch()\">...\n </dato-link>\n <dato-link class=\"page-number mx-5\" [datoType]=\"page === pageNumbersDisplay.currentPage ? 'primary' : 'secondary'\" datoSize=\"sm\"\n *ngFor=\"let page of pageNumbersDisplay.pages; index as i; trackBy: trackByPage;\" [attr.data-auto-id]=\"'pagiantion-page-' + i\"\n (click)=\"navigatePage(page - 1)\">\n {{page}}\n </dato-link>\n\n <div class=\"d-flex\" *ngIf=\"pageNumbersDisplay.showLastPage && !smallVersion\">\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\" data-auto-id=\"pagiantion-next-batch\"\n (click)=\"showNextBatch()\">...</dato-link>\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\"\n [attr.data-auto-id]=\"'pagiantion-page-' + totalPages\"\n (click)=\"navigatePage(totalPages - 1)\">\n {{totalPages}}\n </dato-link>\n </div>\n\n </div>\n\n <!-- Next Page -->\n <dato-icon-button icon=\"arrow-right\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"navigateNextPage()\" data-auto-id=\"pagiantion-next-page\"\n [disabled]=\"nextPageDisabled\">\n </dato-icon-button>\n\n <!-- Last Page -->\n <dato-icon-button *ngIf=\"!disableButtons\"\n class=\"ml-4\" icon=\"chevron-right-double\"\n datoType=\"secondary\" datoSize=\"md\" data-auto-id=\"pagiantion-last-page\"\n [disabled]=\"nextPageDisabled\"\n (click)=\"navigatePage(totalPages - 1)\">\n </dato-icon-button>\n\n </div>\n\n <div *ngIf=\"totalPages > 1 && !smallVersion\"\n class=\"separator mx-10 my-auto primary-100-background-color\">\n </div>\n\n <div class=\"total d-flex-0-0-auto d-flex-row align-center\">\n <span class=\"dato-note primary-300-color\">{{rowsRange}}</span>\n </div>\n\n <div *ngIf=\"showBottomControls\" class=\"grid-controls d-flex d-flex-1 justify-end\">\n <dato-icon-button [icon]=\"isExpanded ? 'collapse' : 'expand'\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"toggleGroupsState()\" data-auto-id=\"pagiantion-next-page\">\n </dato-icon-button>\n\n <dato-icon-button class=\"mx-4\" icon=\"maximize-horizontal\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"autoFitGrid('container')\" data-auto-id=\"pagiantion-next-page\">\n </dato-icon-button>\n\n <dato-icon-button icon=\"minimize-horizontal\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"autoFitGrid('content')\" data-auto-id=\"pagiantion-next-page\">\n </dato-icon-button>\n </div>\n</div>\n",
16037
16317
  providers: [DecimalPipe],
16038
16318
  styles: [":host{padding:12px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:25px}:host .container{height:25px}:host .navigation .page-number{transition:color .3s ease-in-out}:host .navigation .page-number:first-of-type{margin-left:7px}:host .navigation .page-number:last-of-type{margin-right:7px}:host .separator{width:1px;height:25px}:host .container.small .navigation,:host .container.small .total{margin-top:8px;margin-left:auto;margin-right:auto}"]
16039
16319
  }),
@@ -24873,5 +25153,5 @@ window.coreVersion = '21.4.0-rc.';
24873
25153
  * Generated bundle index. Do not edit.
24874
25154
  */
24875
25155
 
24876
- 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, 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 };
25156
+ 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 };
24877
25157
  //# sourceMappingURL=datorama-core.js.map