@datorama/core 21.4.0-rc.2 → 21.4.0-rc.20

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 (46) hide show
  1. package/bundle.scss +8 -1
  2. package/bundles/datorama-core.umd.js +179 -78
  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 +14 -21
  9. package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +30 -14
  10. package/esm2015/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
  11. package/esm2015/lib/grid-v2/grid-pagination/grid-pagination.component.js +5 -3
  12. package/esm2015/lib/grid-v2/grid-store/grid.query.js +34 -9
  13. package/esm2015/lib/grid-v2/grid-store/grid.service.js +57 -20
  14. package/esm2015/lib/grid-v2/grid-store/grid.store.types.js +1 -1
  15. package/esm2015/lib/grid-v2/grid-store/public_api.js +2 -0
  16. package/esm2015/lib/grid-v2/grid-store/util.js +11 -1
  17. package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +7 -2
  18. package/esm2015/lib/grid-v2/public_api.js +2 -2
  19. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +5 -2
  20. package/esm5/lib/grid-v2/grid-filter/filter-validator.js +16 -21
  21. package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +31 -14
  22. package/esm5/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
  23. package/esm5/lib/grid-v2/grid-pagination/grid-pagination.component.js +6 -3
  24. package/esm5/lib/grid-v2/grid-store/grid.query.js +34 -9
  25. package/esm5/lib/grid-v2/grid-store/grid.service.js +79 -35
  26. package/esm5/lib/grid-v2/grid-store/grid.store.types.js +1 -1
  27. package/esm5/lib/grid-v2/grid-store/public_api.js +2 -0
  28. package/esm5/lib/grid-v2/grid-store/util.js +11 -1
  29. package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +7 -2
  30. package/esm5/lib/grid-v2/public_api.js +2 -2
  31. package/fesm2015/datorama-core.js +153 -64
  32. package/fesm2015/datorama-core.js.map +1 -1
  33. package/fesm5/datorama-core.js +179 -79
  34. package/fesm5/datorama-core.js.map +1 -1
  35. package/i18n/locale-en_US.json +2 -1
  36. package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +3 -2
  37. package/lib/grid-v2/grid-filter/filter-validator.d.ts +4 -3
  38. package/lib/grid-v2/grid-filter/grid-filter.types.d.ts +7 -1
  39. package/lib/grid-v2/grid-store/grid.query.d.ts +3 -1
  40. package/lib/grid-v2/grid-store/grid.service.d.ts +4 -3
  41. package/lib/grid-v2/grid-store/grid.store.types.d.ts +4 -0
  42. package/lib/grid-v2/grid-store/public_api.d.ts +2 -0
  43. package/lib/grid-v2/grid-store/util.d.ts +2 -0
  44. package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +1 -0
  45. package/lib/grid-v2/public_api.d.ts +1 -2
  46. package/package.json +1 -1
@@ -11267,6 +11267,16 @@ function getColField(colDef) {
11267
11267
  var field = colDef.field, showRowGroup = colDef.showRowGroup, pivotValueColumn = colDef.pivotValueColumn;
11268
11268
  return pivotValueColumn ? pivotValueColumn.getColId() : field || showRowGroup;
11269
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
+ }
11270
11280
 
11271
11281
  var GridQuery = /** @class */ (function (_super) {
11272
11282
  __extends(GridQuery, _super);
@@ -11366,14 +11376,23 @@ var GridQuery = /** @class */ (function (_super) {
11366
11376
  return settings;
11367
11377
  };
11368
11378
  GridQuery.prototype.getSort = function () {
11369
- var _a = this.api.grid.getSortModel().pop() || {}, sort = _a.sort, colId = _a.colId;
11370
- var column = this.api.columns.getColumn(colId);
11371
- var secondaryColumns = this.api.columns.getSecondaryColumns();
11372
- var pivotedColumn = secondaryColumns && secondaryColumns.find(function (col) { return col.getColId() === colId; });
11373
- var sortColumn = column || pivotedColumn;
11374
- var sortField = sortColumn && getColField(sortColumn.getColDef());
11375
- var pivotColIndex = secondaryColumns && pivotedColumn && secondaryColumns.indexOf(pivotedColumn);
11376
- return { colId: sortField, sort: sort, pivotColIndex: pivotColIndex };
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
+ }
11377
11396
  };
11378
11397
  GridQuery.prototype.selectSort = function () {
11379
11398
  return this.select(function (state) { return state.settings.sort; });
@@ -11397,6 +11416,17 @@ var GridQuery = /** @class */ (function (_super) {
11397
11416
  GridQuery.prototype.selectFilter = function () {
11398
11417
  return this.select(function (state) { return state.settings.filter; });
11399
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({ field: field, filter: datoFilter });
11425
+ }
11426
+ return filters;
11427
+ }, []);
11428
+ }));
11429
+ };
11400
11430
  GridQuery.prototype.getSearchTerm = function () {
11401
11431
  return this.getValue().settings.searchTerm;
11402
11432
  };
@@ -11457,6 +11487,10 @@ var GridQuery = /** @class */ (function (_super) {
11457
11487
  GridQuery.prototype.selectIsSelectAllRowsEnabled = function () {
11458
11488
  return this.select(function (state) { return state.serverSidePagination.selectAllRowsEnabled; });
11459
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
+ };
11460
11494
  GridQuery.prototype.filterCheckboxSelectionColumn = function (columns) {
11461
11495
  return columns.filter(function (column) { return !column.getUserProvidedColDef() || !column.getUserProvidedColDef().checkboxSelection; });
11462
11496
  };
@@ -11549,7 +11583,7 @@ var OperatorTypes;
11549
11583
  function validateStringCondition(rowValue, _a) {
11550
11584
  var condition = _a.condition, filterValue = _a.value;
11551
11585
  var filterTextLowerCase = filterValue ? filterValue.toLowerCase() : '';
11552
- var valueLowerCase = rowValue ? rowValue.toLowerCase() : '';
11586
+ var valueLowerCase = rowValue ? ("" + rowValue).toLowerCase() : '';
11553
11587
  switch (condition) {
11554
11588
  case DatoFilterConditions.EQUALS:
11555
11589
  return valueLowerCase === filterTextLowerCase;
@@ -11569,9 +11603,9 @@ function validateStringCondition(rowValue, _a) {
11569
11603
  return !isEmpty(valueLowerCase);
11570
11604
  }
11571
11605
  }
11572
- function validateNumberCondition(unparsedRowValue, _a) {
11606
+ function validateNumberCondition(unparsedRowValue, _a, filterKey) {
11573
11607
  var condition = _a.condition, value = _a.value, rangeEnd = _a.rangeEnd;
11574
- var rowValue = !!unparsedRowValue ? parseFloat(unparsedRowValue) : null;
11608
+ var rowValue = !!unparsedRowValue ? parseFloat(unparsedRowValue[filterKey] || unparsedRowValue) : null;
11575
11609
  var filterValue = parseFloat(value);
11576
11610
  switch (condition) {
11577
11611
  case DatoFilterConditions.EQUALS:
@@ -11619,14 +11653,14 @@ function validateDateCondition(rowValue, _a) {
11619
11653
  }
11620
11654
  }
11621
11655
  function validateCondition(_a) {
11622
- var rowValue = _a.rowValue, filter = _a.filter, type = _a.type;
11656
+ var rowValue = _a.rowValue, condition = _a.condition, type = _a.type, filterKey = _a.filterKey;
11623
11657
  switch (type) {
11624
11658
  case DatoGridFilterTypes.Date:
11625
- return validateDateCondition(rowValue, filter);
11659
+ return validateDateCondition(rowValue, condition);
11626
11660
  case DatoGridFilterTypes.Number:
11627
- return validateNumberCondition(rowValue, filter);
11661
+ return validateNumberCondition(rowValue, condition, filterKey);
11628
11662
  default:
11629
- return validateStringCondition(rowValue, filter);
11663
+ return validateStringCondition(rowValue, condition);
11630
11664
  }
11631
11665
  }
11632
11666
  function validateFilter(_a, activeFilters) {
@@ -11640,13 +11674,15 @@ function validateFilter(_a, activeFilters) {
11640
11674
  var currentRowPivotKeys = row.parent.childrenMapped && getRowPivotKeys(row.parent.childrenMapped);
11641
11675
  var rowValue = api.getValue(filter, row);
11642
11676
  /** If value is under a pivoted column but doesn't match the filter pivot */
11643
- if (pivotKeys && !isArrayValuesEqual(pivotKeys, currentRowPivotKeys)) {
11677
+ if (pivotKeys && pivotKeys.length > 0 && !isArrayValuesEqual(pivotKeys, currentRowPivotKeys)) {
11644
11678
  return { value: true };
11645
11679
  }
11646
11680
  if (conditional) {
11647
11681
  var operator = conditional.operator, conditions = conditional.conditions, type_1 = conditional.type;
11648
11682
  var conditionsRelation = operator === OperatorTypes.AND ? 'every' : 'some';
11649
- filterPasses = conditions[conditionsRelation](function (filter) { return validateCondition({ rowValue: rowValue, filter: filter, type: type_1 }); });
11683
+ filterPasses = conditions[conditionsRelation](function (condition) {
11684
+ return validateCondition({ rowValue: rowValue, condition: condition, type: type_1, filterKey: filter });
11685
+ });
11650
11686
  }
11651
11687
  if (filterPasses && byValue) {
11652
11688
  var includesValue = byValue.values.includes(rowValue);
@@ -11680,17 +11716,9 @@ function validateFilter(_a, activeFilters) {
11680
11716
  function getRowPivotKeys(childrenMapped, keys) {
11681
11717
  if (keys === void 0) { keys = []; }
11682
11718
  var key = Object.keys(childrenMapped)[0];
11683
- var parsedKey;
11684
- try {
11685
- parsedKey = JSON.parse(key);
11686
- }
11687
- catch (e) {
11688
- console.error("Can't parse " + key + " from JSON");
11689
- }
11690
- finally {
11691
- if (parsedKey) {
11692
- keys = getRowPivotKeys(childrenMapped[key], __spread(keys, [parsedKey.value]));
11693
- }
11719
+ var parsedKey = tryParsePivotValue(key);
11720
+ if (parsedKey) {
11721
+ keys = getRowPivotKeys(childrenMapped[key], __spread(keys, [parsedKey.value]));
11694
11722
  }
11695
11723
  return keys;
11696
11724
  }
@@ -12454,12 +12482,12 @@ var mapToValue = function (_a) {
12454
12482
  var ɵ0$1 = mapToValue;
12455
12483
  var mapToListItem = function (val) { return ({ id: val, label: isNil(val) ? "(Empty)" : ("" + val).trim(), value: val }); };
12456
12484
  var ɵ1$1 = mapToListItem;
12457
- var mapToListItemWithFormatted = function (_a) {
12485
+ var mapToListItemWithFormatted = function (_a, key) {
12458
12486
  var value = _a.value, formattedValue = _a.formattedValue;
12459
12487
  return ({
12460
- id: value,
12461
- label: isNil(formattedValue) ? "(Empty)" : ("" + formattedValue).trim(),
12462
- value: value
12488
+ id: key && value ? value[key] : value,
12489
+ label: isNil(formattedValue) ? "(Empty)" : ("" + (key ? formattedValue[key] : formattedValue)).trim(),
12490
+ value: key && value ? value[key] : value
12463
12491
  });
12464
12492
  };
12465
12493
  var ɵ2$1 = mapToListItemWithFormatted;
@@ -12598,15 +12626,18 @@ var DatoGridFilterComponent = /** @class */ (function () {
12598
12626
  var _this = this;
12599
12627
  var _b = this.popover.data, gridService = _b.gridService, gridQuery = _b.gridQuery;
12600
12628
  var _c = this.colDef, filter = _c.filter, _d = _c.filtersConfig, filtersConfig = _d === void 0 ? {} : _d, pivotValueColumn = _c.pivotValueColumn, pivotKeys = _c.pivotKeys;
12629
+ var colDefs = gridQuery.api.columns.getAllColumns().map(function (column) { return column.getColDef(); });
12601
12630
  this.colField = getColField(this.colDef);
12631
+ var colDef = colDefs.find(function (colDef) { return colDef.field === _this.colField; });
12632
+ var colFilter = filter || colDef.filter;
12633
+ var filterOptions = DatoGridFilterOptionsMap[colFilter];
12602
12634
  this.pivotColumn = gridQuery.api.columns.getSecondaryPivotColumn(pivotKeys, pivotValueColumn);
12603
12635
  if (filtersConfig.sections) {
12604
12636
  this.filterSections = (_a = {}, _a[filtersConfig.sections] = true, _a);
12605
12637
  }
12606
12638
  this.keepPredefinedListOriginalOrder =
12607
12639
  filtersConfig.keepPredefinedListOriginalOrder && !isEmpty(filtersConfig.predefinedListValues);
12608
- var filterOptions = DatoGridFilterOptionsMap[filter];
12609
- this.filterType = filterOptions ? filter : DatoGridFilterTypes.String;
12640
+ this.filterType = filterOptions ? colFilter : DatoGridFilterTypes.String;
12610
12641
  this.listLabelType = this.filterType.toLowerCase();
12611
12642
  this.listSortByKey = this.filterType === DatoGridFilterTypes.Number && this.colDef.valueFormatter ? 'id' : 'label';
12612
12643
  this.gridQuery = gridQuery;
@@ -12641,9 +12672,11 @@ var DatoGridFilterComponent = /** @class */ (function () {
12641
12672
  var columnValues = this.getColumnValues();
12642
12673
  this.columnValues = columnValues.map(function (_a) {
12643
12674
  var value = _a.value;
12644
- return value;
12675
+ return !isNil(_this.pivotColumn) && value ? value[_this.colField] : value;
12676
+ });
12677
+ this.listOptions = columnValues.map(function (colValue) {
12678
+ return mapToListItemWithFormatted(colValue, !isNil(_this.pivotColumn) && _this.colField);
12645
12679
  });
12646
- this.listOptions = columnValues.map(mapToListItemWithFormatted);
12647
12680
  }
12648
12681
  }
12649
12682
  else {
@@ -12681,6 +12714,7 @@ var DatoGridFilterComponent = /** @class */ (function () {
12681
12714
  isEmpty(filter)
12682
12715
  ? this.gridService.clearColumnFilter(this.colField)
12683
12716
  : this.gridService.setColumnFilter(column, filter);
12717
+ this.gridService.notifyFilterUpdate();
12684
12718
  }
12685
12719
  };
12686
12720
  DatoGridFilterComponent.prototype.clearFilters = function () {
@@ -12731,18 +12765,28 @@ var DatoGridFilterComponent = /** @class */ (function () {
12731
12765
  return this.columnValues.filter(function (value) { return !includedSet.has(value); });
12732
12766
  };
12733
12767
  DatoGridFilterComponent.prototype.buildFilter = function () {
12768
+ var _this = this;
12734
12769
  var _a = this.filterForm.value, byValue = _a.byValue, conditional = _a.conditional;
12735
12770
  var filter = {};
12736
- filter.pivotKeys = this.pivotKeys;
12737
- if (this.pivotColumn) {
12738
- filter.pivotFields = this.getPivotFields(this.pivotColumn.getParent());
12739
- }
12740
12771
  if (this.filterSections.Conditional) {
12741
12772
  this.setConditionalFilter(filter, conditional);
12742
12773
  }
12743
12774
  if (this.filterSections.By_Value) {
12744
12775
  this.setByValueFilter(filter, byValue);
12745
12776
  }
12777
+ /** If filters applied, add the extra properties to be used by pivot mode */
12778
+ if (filter.byValue || filter.conditional) {
12779
+ filter.colId = this.colDef.colId;
12780
+ filter.pivotKeys = this.pivotKeys;
12781
+ if (this.pivotColumn) {
12782
+ filter.pivotFieldsMap = this.getPivotFields(this.pivotColumn.getParent()).reduce(function (fieldMap, field, index) {
12783
+ if (_this.pivotKeys[index]) {
12784
+ fieldMap[field] = _this.pivotKeys[index];
12785
+ }
12786
+ return fieldMap;
12787
+ }, {});
12788
+ }
12789
+ }
12746
12790
  return filter;
12747
12791
  };
12748
12792
  DatoGridFilterComponent.prototype.initForm = function () {
@@ -13071,10 +13115,11 @@ var DatoGridFilterComponent = /** @class */ (function () {
13071
13115
  DatoGridFilterComponent.prototype.getPivotFields = function (parent, fields) {
13072
13116
  if (fields === void 0) { fields = []; }
13073
13117
  var grandParent = parent.getParent();
13118
+ var headerClass = parent.getOriginalColumnGroup().getColGroupDef().headerClass;
13074
13119
  if (grandParent) {
13075
13120
  this.getPivotFields(grandParent, fields);
13076
13121
  }
13077
- fields.push(parent.getOriginalColumnGroup().getColGroupDef().headerClass);
13122
+ headerClass && fields.push(headerClass[0]);
13078
13123
  return fields;
13079
13124
  };
13080
13125
  DatoGridFilterComponent.ctorParameters = function () { return [
@@ -14123,12 +14168,45 @@ var GridService = /** @class */ (function () {
14123
14168
  });
14124
14169
  this.notifyFilterUpdate();
14125
14170
  };
14126
- GridService.prototype.setColumnFilter = function (column, filter) {
14171
+ GridService.prototype.setColumnFilter = function (column, filter, notifyGrid) {
14172
+ if (notifyGrid === void 0) { notifyGrid = true; }
14127
14173
  this._logEvent("Grids - Filter Applied" /* GRID_FILTER_APPLIED */, {
14128
14174
  column: column.getColId(),
14129
14175
  numOfConditions: (filter.conditional && filter.conditional.conditions.length) || 0,
14130
14176
  byValue: !!filter.byValue ? 'Yes' : 'No'
14131
14177
  });
14178
+ this.updateFilter(column, filter);
14179
+ if (notifyGrid) {
14180
+ this.notifyFilterUpdate();
14181
+ }
14182
+ };
14183
+ GridService.prototype.setGridFilters = function (filters) {
14184
+ var e_2, _a;
14185
+ if (this.api) {
14186
+ try {
14187
+ for (var filters_1 = __values(filters), filters_1_1 = filters_1.next(); !filters_1_1.done; filters_1_1 = filters_1.next()) {
14188
+ var filter = filters_1_1.value.filter;
14189
+ var column = this.api.columns.getColumn(filter.colId);
14190
+ if (column) {
14191
+ this.setColumnFilter(column, filter);
14192
+ }
14193
+ else {
14194
+ var pivotColumn = this.gridQuery.getSecondaryColumn(filter.colId);
14195
+ this.setColumnFilter(pivotColumn, filter);
14196
+ }
14197
+ }
14198
+ }
14199
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
14200
+ finally {
14201
+ try {
14202
+ if (filters_1_1 && !filters_1_1.done && (_a = filters_1.return)) _a.call(filters_1);
14203
+ }
14204
+ finally { if (e_2) throw e_2.error; }
14205
+ }
14206
+ this.notifyFilterUpdate();
14207
+ }
14208
+ };
14209
+ GridService.prototype.updateFilter = function (column, filter) {
14132
14210
  var colField = getColField(column.getColDef());
14133
14211
  this.store.update(function (state) {
14134
14212
  var _a;
@@ -14136,7 +14214,6 @@ var GridService = /** @class */ (function () {
14136
14214
  settings: __assign(__assign({}, state.settings), { filter: __assign(__assign({}, state.settings.filter), (_a = {}, _a[colField] = filter, _a)) })
14137
14215
  };
14138
14216
  });
14139
- this.notifyFilterUpdate();
14140
14217
  };
14141
14218
  GridService.prototype.setSearchTerm = function (searchTerm) {
14142
14219
  this.store.update(function (state) {
@@ -14429,7 +14506,7 @@ var GridService = /** @class */ (function () {
14429
14506
  this.api.grid.onFilterChanged();
14430
14507
  };
14431
14508
  GridService.prototype.buildServerRequestFilters = function (filter) {
14432
- var e_2, _a;
14509
+ var e_3, _a;
14433
14510
  var columnsFilters = {};
14434
14511
  try {
14435
14512
  for (var _b = __values(Object.entries(filter)), _c = _b.next(); !_c.done; _c = _b.next()) {
@@ -14465,12 +14542,12 @@ var GridService = /** @class */ (function () {
14465
14542
  }
14466
14543
  }
14467
14544
  }
14468
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
14545
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
14469
14546
  finally {
14470
14547
  try {
14471
14548
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
14472
14549
  }
14473
- finally { if (e_2) throw e_2.error; }
14550
+ finally { if (e_3) throw e_3.error; }
14474
14551
  }
14475
14552
  return columnsFilters;
14476
14553
  };
@@ -14523,7 +14600,7 @@ var GridService = /** @class */ (function () {
14523
14600
  return { operator: OperatorTypes.AND, filters: [columnFilter, searchFilter] };
14524
14601
  };
14525
14602
  GridService.prototype.buildServerColumnFilters_v2_1 = function (filter) {
14526
- var e_3, _a;
14603
+ var e_4, _a;
14527
14604
  var columnFilters = [];
14528
14605
  try {
14529
14606
  for (var _b = __values(Object.entries(filter)), _c = _b.next(); !_c.done; _c = _b.next()) {
@@ -14548,12 +14625,12 @@ var GridService = /** @class */ (function () {
14548
14625
  columnFilters.push(columnFilter);
14549
14626
  }
14550
14627
  }
14551
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
14628
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
14552
14629
  finally {
14553
14630
  try {
14554
14631
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
14555
14632
  }
14556
- finally { if (e_3) throw e_3.error; }
14633
+ finally { if (e_4) throw e_4.error; }
14557
14634
  }
14558
14635
  return columnFilters;
14559
14636
  };
@@ -14646,60 +14723,72 @@ var GridService = /** @class */ (function () {
14646
14723
  /**
14647
14724
  * When pivoting,
14648
14725
  * we add the field name to the column header class in order to access it through the auto generated pivot column.
14649
- * @private
14650
14726
  */
14651
14727
  GridService.prototype.initPivotSecondaryColsProcess = function (_a) {
14728
+ var _this = this;
14652
14729
  var gridOptions = _a.gridOptions;
14653
14730
  gridOptions.processSecondaryColDef = function (colDef) {
14654
- var api = colDef.headerComponentParams.gridQuery.api;
14655
- if (api) {
14656
- var valueColumns = colDef.headerComponentParams.gridQuery.api.columns.getValueColumns();
14657
- var originalColDef = valueColumns
14658
- .map(function (_a) {
14659
- var userProvidedColDef = _a.userProvidedColDef;
14660
- return userProvidedColDef;
14661
- })
14662
- .find(function (_a) {
14663
- var colId = _a.colId;
14664
- return colId === colDef.pivotValueColumn.getColId();
14665
- });
14666
- if (originalColDef) {
14667
- colDef.filter = originalColDef.filter;
14668
- }
14731
+ var userProvidedColDef = colDef.pivotValueColumn && colDef.pivotValueColumn.getUserProvidedColDef();
14732
+ if (userProvidedColDef) {
14733
+ colDef.filter = userProvidedColDef.filter;
14669
14734
  }
14670
14735
  if (colDef.pivotKeys) {
14671
- colDef.pivotKeys = colDef.pivotKeys.map(function (key) { return JSON.parse(key).value; });
14736
+ colDef.pivotKeys = colDef.pivotKeys.map(function (key) {
14737
+ var parsedKey = tryParsePivotValue(key);
14738
+ return (parsedKey && parsedKey.value) || '';
14739
+ });
14672
14740
  }
14673
14741
  };
14674
14742
  gridOptions.processSecondaryColGroupDef = function (colGroupDef) {
14675
14743
  if (colGroupDef.headerName) {
14676
- var _a = JSON.parse(colGroupDef.headerName), field = _a.field, value = _a.value;
14677
- colGroupDef.headerClass = field;
14678
- colGroupDef.headerName = value;
14744
+ var parsedValue = tryParsePivotValue(colGroupDef.headerName);
14745
+ if (parsedValue) {
14746
+ var field = parsedValue.field, value = parsedValue.value;
14747
+ colGroupDef.headerClass = [field];
14748
+ colGroupDef.headerName = value;
14749
+ if (colGroupDef.children && colGroupDef.children.length > 0) {
14750
+ colGroupDef.headerClass.push('group-pivot-cell');
14751
+ }
14752
+ }
14753
+ }
14754
+ else if (colGroupDef.children) {
14755
+ var _a = __read(colGroupDef.children, 1), colChild = _a[0];
14756
+ var pivotTotalColumnIds = colChild && colChild.pivotTotalColumnIds;
14757
+ if (pivotTotalColumnIds && pivotTotalColumnIds.length > 0) {
14758
+ colGroupDef.headerClass = ['total-pivot-cell'];
14759
+ colGroupDef.headerName = _this.translate.transform('core.total');
14760
+ }
14761
+ }
14762
+ else {
14763
+ colGroupDef.headerClass = ['empty-pivot-header'];
14679
14764
  }
14680
14765
  if (colGroupDef.pivotKeys) {
14681
- colGroupDef.pivotKeys = colGroupDef.pivotKeys.map(function (key) { return JSON.parse(key).value; });
14766
+ colGroupDef.pivotKeys = colGroupDef.pivotKeys.map(function (key) {
14767
+ var parsedKey = tryParsePivotValue(key);
14768
+ return (parsedKey && parsedKey.value) || '';
14769
+ });
14682
14770
  }
14683
14771
  };
14684
14772
  };
14685
14773
  GridService.prototype.setPivotModeRows = function (data) {
14686
14774
  var pivotColumns = this.gridQuery.getAllPivotColumns();
14687
14775
  var convertedData = data.map(function (currentValue, index) {
14688
- var e_4, _a;
14776
+ var e_5, _a;
14689
14777
  var mappedValues = __assign({}, currentValue);
14690
14778
  try {
14691
14779
  for (var pivotColumns_1 = __values(pivotColumns), pivotColumns_1_1 = pivotColumns_1.next(); !pivotColumns_1_1.done; pivotColumns_1_1 = pivotColumns_1.next()) {
14692
14780
  var col = pivotColumns_1_1.value;
14693
14781
  var field = col.getColDef().field;
14694
- mappedValues[field] = JSON.stringify({ field: field, value: currentValue[field] });
14782
+ var pivotValue = { field: field, value: currentValue[field] };
14783
+ mappedValues[field] = JSON.stringify(pivotValue);
14695
14784
  }
14696
14785
  }
14697
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
14786
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
14698
14787
  finally {
14699
14788
  try {
14700
14789
  if (pivotColumns_1_1 && !pivotColumns_1_1.done && (_a = pivotColumns_1.return)) _a.call(pivotColumns_1);
14701
14790
  }
14702
- finally { if (e_4) throw e_4.error; }
14791
+ finally { if (e_5) throw e_5.error; }
14703
14792
  }
14704
14793
  return mappedValues;
14705
14794
  });
@@ -15218,8 +15307,11 @@ var DatoGridControllerComponent = /** @class */ (function () {
15218
15307
  DatoGridControllerComponent.prototype.setGridRows = function (data) {
15219
15308
  this.gridService.setRows(data);
15220
15309
  };
15310
+ DatoGridControllerComponent.prototype.setGridFilters = function (filters) {
15311
+ this.gridService.setGridFilters(filters);
15312
+ };
15221
15313
  DatoGridControllerComponent.prototype.onFilterChanged = function () {
15222
- return this.gridQuery.selectFilter();
15314
+ return this.gridQuery.filterChanged();
15223
15315
  };
15224
15316
  DatoGridControllerComponent.prototype.onSortChanged = function () {
15225
15317
  return this.gridQuery.selectSort();
@@ -16129,8 +16221,11 @@ var DatoGridPaginationV2Component = /** @class */ (function () {
16129
16221
  return page;
16130
16222
  };
16131
16223
  DatoGridPaginationV2Component.prototype.toggleGroupsState = function () {
16132
- this.isExpanded ? this.gridApi.collapseAll() : this.gridApi.expandAll();
16224
+ var _this = this;
16133
16225
  this.isExpanded = !this.isExpanded;
16226
+ this.gridApi.getRenderedNodes().forEach(function (node) {
16227
+ node.setExpanded(_this.isExpanded);
16228
+ });
16134
16229
  };
16135
16230
  DatoGridPaginationV2Component.prototype.autoFitGrid = function (type) {
16136
16231
  this.gridService.fitGrid(type);
@@ -16223,7 +16318,7 @@ var DatoGridPaginationV2Component = /** @class */ (function () {
16223
16318
  Component({
16224
16319
  selector: 'dato-grid-pagination-v2',
16225
16320
  changeDetection: ChangeDetectionStrategy.OnPush,
16226
- 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",
16321
+ 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-expand-collapse\"\n [datoTooltipV2]=\"isExpanded ? 'core.collapse-rows' : 'core.expand-rows'\">\n </dato-icon-button>\n\n <dato-icon-button class=\"mx-4\" icon=\"maximize-horizontal\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"autoFitGrid('content')\" datoTooltipV2=\"core.fit-to-content\"\n data-auto-id=\"pagiantion-fit-to-content\">\n </dato-icon-button>\n\n <dato-icon-button icon=\"minimize-horizontal\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"autoFitGrid('container')\" datoTooltipV2=\"core.fit-to-container\"\n data-auto-id=\"pagiantion-fir-to-container\">\n </dato-icon-button>\n </div>\n</div>\n",
16227
16322
  providers: [DecimalPipe],
16228
16323
  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}"]
16229
16324
  }),
@@ -16337,6 +16432,7 @@ var DatoGridV2ToolbarComponent = /** @class */ (function () {
16337
16432
  this.gridActions = { mainList: [], moreMenu: [] };
16338
16433
  this.searchPlaceholder = this.translate.transform('core.search');
16339
16434
  this.rowActionsShortLabelThreshold = 1539;
16435
+ this.displayCustomGridActionsSeparator = true;
16340
16436
  this.openMenus = {
16341
16437
  group: false,
16342
16438
  settings: false
@@ -16756,10 +16852,14 @@ var DatoGridV2ToolbarComponent = /** @class */ (function () {
16756
16852
  Input(),
16757
16853
  __metadata("design:type", Number)
16758
16854
  ], DatoGridV2ToolbarComponent.prototype, "rowActionsShortLabelThreshold", void 0);
16855
+ __decorate([
16856
+ Input(),
16857
+ __metadata("design:type", Object)
16858
+ ], DatoGridV2ToolbarComponent.prototype, "displayCustomGridActionsSeparator", void 0);
16759
16859
  DatoGridV2ToolbarComponent = __decorate([
16760
16860
  Component({
16761
16861
  selector: 'dato-grid-toolbar-v2',
16762
- template: "<section *ngIf=\"gridController.gridQuery.gridReady$ | async\" class=\"d-flex mb-20 justify-between items-center main-container\" [class.mx-30]=\"enableBackground\">\n\n <section [ngClass]=\"{ 'd-flex items-center right-section': enableV2_1 }\">\n <!-- Dynamic content for the left area -->\n <div data-auto-id=\"grid-toolbar-dynamic-left\">\n <ng-content select=\"[toolbarLeftArea]\"></ng-content>\n </div>\n\n <div class=\"d-flex items-center\">\n <dato-grid-search-bar *ngIf=\"enableSearch\" [searchPlaceholder]=\"searchPlaceholder\"></dato-grid-search-bar>\n <ng-container *ngIf=\"enableV2_1 && selectedRowsCount > 0\">\n <div class=\"d-flex items-center\">\n <div class=\"chip align-center d-flex dato-note px-9 nowrap ml-16\">\n <span data-auto-id=\"grid-selected-items-text\">{{ (allPageRowsSelected ? 'core.all-items-in-page-selected' : 'core.selected-items') | translate:{ itemsCount: selectedRowsCount } }}</span>\n <dato-icon datoType=\"primary\" datoIcon=\"close\" datoSize=\"md\" class=\"ml-6 pointer\" (click)=\"clearSelectedRows()\"\n data-auto-id=\"grid-clear-selected-rows\"></dato-icon>\n </div>\n <dato-link *ngIf=\"allPageRowsSelected\" (click)=\"selectAllPages()\" datoSize=\"sm\" class=\"ml-10\"\n data-auto-id=\"grid-select-all-pages\">\n <span>{{'core.select-all-items' | translate:{ itemsCount: totalRowsCount } }}</span>\n </dato-link>\n </div>\n <div *ngIf=\"hasRowActions\" class=\"separator\"></div>\n </ng-container>\n </div>\n\n <!-- Row Actions-->\n <div class=\"d-flex items-center\" *ngIf=\"isRowActionsVisible\">\n\n <ng-container *ngFor=\"let rowAction of rowActions.mainList; index as i; last as isLast\">\n\n <div *ngIf=\"!isRowActionHidden(rowAction)\"\n [attr.data-auto-id]=\"'grid-toolbar-action-' + rowAction.key\"\n [attr.data-action-index]=\"'grid-toolbar-action-' + i\"\n [class.disabled-action]=\"isActionDisabled(rowAction)\">\n <ng-container [ngTemplateOutlet]=\"rowAction.template || defaultButton\"\n [ngTemplateOutletContext]=\"{disabled: isActionDisabled(rowAction)}\"></ng-container>\n </div>\n\n <ng-template #defaultButton>\n <div (click)=\"onActionClick(rowAction)\">\n <dato-grid-toolbar-button [icon]=\"rowAction.icon\"\n [disabled]=\"isActionDisabled(rowAction)\"\n [label]=\"rowAction.label\"\n [shortLabel]=\"rowAction.shortLabel\"\n [tooltip]=\"rowAction.tooltip\"\n [getMenu]=\"rowAction.getMenu\"\n [enableV2_1]=\"enableV2_1\"\n [isLast]=\"isLast\"\n [widthToHideLabel]=\"widthToHideActionsLabels\">\n </dato-grid-toolbar-button>\n </div>\n </ng-template>\n </ng-container>\n\n <div *ngIf=\"rowActions.moreMenu.length > 0\" class=\"separator\"></div>\n <dato-grid-toolbar-more-menu [actions]=\"rowActions.moreMenu\" (actionClick)=\"onActionClick($event)\" [isRowActions]=\"true\">\n </dato-grid-toolbar-more-menu>\n </div>\n\n </section>\n\n\n <!-- General Actions -->\n <div class=\"d-flex items-center\">\n <!-- Dynamic content for the right area -->\n <div #customActions data-auto-id=\"grid-toolbar-dynamic-right\">\n <ng-content select=\"[toolbarRightArea]\"></ng-content>\n </div>\n <div *ngIf=\"customActions.childNodes.length\" class=\"separator\"></div>\n <!-- Group buttons -->\n <div *ngIf=\"groupsAllowed\" class=\"d-flex grouping-section opacity-0 invisible\" [class.open]=\"openMenus.group || hasGroups\">\n <dato-icon-button [class.active]=\"openMenus.group\" (click)=\"executeTableAction('Group from Toolbar')\"\n data-auto-id=\"grid-toolbar-open-groups\"\n removeIconPadding datoSize=\"md\" datoType=\"none\" icon=\"group\" iconWidth=\"17px\"\n datoTooltip=\"core.row-grouping\" #groupTrigger\n class=\"mr-10 pointer\"></dato-icon-button>\n <dato-icon-button data-auto-id=\"grid-toolbar-toggle-expand\" datoSize=\"md\" datoType=\"none\"\n (click)=\"executeTableAction('Collapse Expand')\"\n [icon]=\"rowGroupsCollapsed ? 'expand' : 'collapse'\"\n [disabled]=\"!hasGroups\"\n [datoTooltip]=\"'core.' + (rowGroupsCollapsed ? 'expand' : 'collapse') + '-rows'\"\n class=\"pointer\"></dato-icon-button>\n <div class=\"separator\"></div>\n </div>\n\n <!-- Settings and export -->\n <ng-container *ngIf=\"createAction\">\n <dato-button datoSize=\"sm\" class=\"pointer primary-300-color\" (click)=\"onActionClick(createAction)\"\n [datoTooltip]=\"createAction.tooltip\" [attr.data-auto-id]=\"'grid-toolbar-action-' + createAction.key\">\n <dato-icon *ngIf=\"createAction.icon\" [icon]=\"createAction.icon\" class=\"mr-5\"></dato-icon>\n {{ createAction.label | translate }}\n </dato-button>\n <div class=\"separator\"></div>\n </ng-container>\n <ng-container *ngFor=\"let gridAction of gridActions.mainList; index as i\">\n <div *ngIf=\"gridAction.getMenu else button\" [datoMenuTriggerFor]=\"gridAction.getMenu()\">\n <ng-container [ngTemplateOutlet]=\"button\"></ng-container>\n </div>\n <ng-template #button>\n <dato-icon datoSize=\"sm\" (click)=\"onActionClick(gridAction)\"\n [attr.data-auto-id]=\"'grid-toolbar-action-' + gridAction.key\"\n [attr.data-action-index]=\"'grid-toolbar-general-action-' + i\"\n [icon]=\"gridAction.icon\" class=\"pointer primary-300-color\"\n [class.mr-16]=\"!gridAction.separator\"\n [datoTooltip]=\"gridAction.tooltip || gridAction.label\">\n </dato-icon>\n </ng-template>\n <div *ngIf=\"gridAction.separator\" class=\"separator\"></div>\n </ng-container>\n\n <dato-icon data-auto-id=\"grid-toolbar-export\" datoSize=\"sm\"\n (click)=\"executeTableAction('Export')\" *ngIf=\"displayExport && !isTreeMode\"\n icon=\"export\" class=\"pointer mr-16 primary-300-color\" datoTooltip=\"core.export-table\"></dato-icon>\n <dato-icon [class.active]=\"openMenus.settings\" (click)=\"openMenus.settings = true\"\n data-auto-id=\"grid-toolbar-settings\" datoSize=\"sm\"\n icon=\"account\" class=\"pointer primary-300-color\" datoTooltip=\"core.table-settings\"\n #settingsTrigger\n [datoMenuTriggerFor]=\"settingsMenu\"></dato-icon>\n\n <ng-container *ngIf=\"gridActions.moreMenu.length > 0\">\n <div class=\"separator\"></div>\n <dato-grid-toolbar-more-menu [actions]=\"gridActions.moreMenu\" (actionClick)=\"onActionClick($event)\" [isRowActions]=\"false\">\n </dato-grid-toolbar-more-menu>\n </ng-container>\n\n\n <dato-menu #settingsMenu=\"datoMenu\" menuClass=\"grid-settings-menu\" placement=\"bottom-end\"\n (menuClosed)=\"openMenus.settings = false\">\n <ng-template datoMenuContent>\n <button data-auto-id=\"grid-toolbar-settings-autofit-page\" datoMenuItem\n (click)=\"executeTableAction('Autofit to Page')\">\n <dato-icon datoSize=\"sm\" icon=\"maximize-horizontal\" class=\"mr-8 primary-300-color\"></dato-icon>\n {{ 'core.autofitPage' | translate }}</button>\n <button data-auto-id=\"grid-toolbar-settings-autofit-content\" datoMenuItem\n (click)=\"executeTableAction('Autofit to Content')\">\n <dato-icon datoSize=\"sm\" icon=\"minimize-horizontal\" class=\"mr-8 primary-300-color\"></dato-icon>\n {{ 'core.autofitContent' | translate }}</button>\n <ng-container *ngIf=\"groupsAllowed\">\n <button data-auto-id=\"grid-toolbar-settings-group\" datoMenuItem (click)=\"executeTableAction('Group from Settings')\">\n <dato-icon datoSize=\"sm\" icon=\"group\" class=\"mr-4 primary-300-color\"></dato-icon>\n {{ 'core.group' | translate }}\n </button>\n </ng-container>\n <button data-auto-id=\"grid-toolbar-settings-toggle-columns\" datoMenuItem (click)=\"executeTableAction('Show Hide Column')\">\n <dato-icon datoSize=\"sm\" icon=\"hide\" class=\"mr-8 primary-300-color\"></dato-icon>\n <span>{{ 'core.hideShowColumns' | translate }}<span\n class=\"dato-simple-italic ml-5 primary-200-color\">{{hiddenColumns}}</span></span>\n </button>\n <button data-auto-id=\"grid-toolbar-settings-reset-settings\" datoMenuItem\n (click)=\"executeTableAction('Reset Settings')\">\n <dato-icon datoSize=\"sm\" icon=\"reset-table\" class=\"mr-8 primary-300-color\"></dato-icon>\n {{ 'core.resetTableSettings' | translate }}\n </button>\n <button data-auto-id=\"grid-toolbar-settings-reset-filters\" datoMenuItem\n (click)=\"executeTableAction('Reset Filters')\">\n <dato-icon datoSize=\"sm\" icon=\"reset-filters\" class=\"mr-8 primary-300-color\"></dato-icon>\n {{ 'core.resetAllFilters' | translate }}\n </button>\n <button data-auto-id=\"grid-toolbar-export\" datoMenuItem\n (click)=\"executeTableAction('Export')\" *ngIf=\"this.displayExport && isTreeMode\">\n <dato-icon datoSize=\"sm\"\n icon=\"export\" class=\"pointer mr-5 primary-300-color\" datoTooltip=\"core.export-table\"></dato-icon>\n {{ 'core.export-table' | translate }}\n </button>\n </ng-template>\n </dato-menu>\n </div>\n</section>\n\n\n",
16862
+ template: "<section *ngIf=\"gridController.gridQuery.gridReady$ | async\" class=\"d-flex mb-20 justify-between items-center main-container\" [class.mx-30]=\"enableBackground\">\n\n <section [ngClass]=\"{ 'd-flex items-center right-section': enableV2_1 }\">\n <!-- Dynamic content for the left area -->\n <div data-auto-id=\"grid-toolbar-dynamic-left\">\n <ng-content select=\"[toolbarLeftArea]\"></ng-content>\n </div>\n\n <div class=\"d-flex items-center\">\n <dato-grid-search-bar *ngIf=\"enableSearch\" [searchPlaceholder]=\"searchPlaceholder\"></dato-grid-search-bar>\n <ng-container *ngIf=\"enableV2_1 && selectedRowsCount > 0\">\n <div class=\"d-flex items-center\">\n <div class=\"chip align-center d-flex dato-note px-9 nowrap ml-16\">\n <span data-auto-id=\"grid-selected-items-text\">{{ (allPageRowsSelected ? 'core.all-items-in-page-selected' : 'core.selected-items') | translate:{ itemsCount: selectedRowsCount } }}</span>\n <dato-icon datoType=\"primary\" datoIcon=\"close\" datoSize=\"md\" class=\"ml-6 pointer\" (click)=\"clearSelectedRows()\"\n data-auto-id=\"grid-clear-selected-rows\"></dato-icon>\n </div>\n <dato-link *ngIf=\"allPageRowsSelected\" (click)=\"selectAllPages()\" datoSize=\"sm\" class=\"ml-10\"\n data-auto-id=\"grid-select-all-pages\">\n <span>{{'core.select-all-items' | translate:{ itemsCount: totalRowsCount } }}</span>\n </dato-link>\n </div>\n <div *ngIf=\"hasRowActions\" class=\"separator\"></div>\n </ng-container>\n </div>\n\n <!-- Row Actions-->\n <div class=\"d-flex items-center\" *ngIf=\"isRowActionsVisible\">\n\n <ng-container *ngFor=\"let rowAction of rowActions.mainList; index as i; last as isLast\">\n\n <div *ngIf=\"!isRowActionHidden(rowAction)\"\n [attr.data-auto-id]=\"'grid-toolbar-action-' + rowAction.key\"\n [attr.data-action-index]=\"'grid-toolbar-action-' + i\"\n [class.disabled-action]=\"isActionDisabled(rowAction)\">\n <ng-container [ngTemplateOutlet]=\"rowAction.template || defaultButton\"\n [ngTemplateOutletContext]=\"{disabled: isActionDisabled(rowAction)}\"></ng-container>\n </div>\n\n <ng-template #defaultButton>\n <div (click)=\"onActionClick(rowAction)\">\n <dato-grid-toolbar-button [icon]=\"rowAction.icon\"\n [disabled]=\"isActionDisabled(rowAction)\"\n [label]=\"rowAction.label\"\n [shortLabel]=\"rowAction.shortLabel\"\n [tooltip]=\"rowAction.tooltip\"\n [getMenu]=\"rowAction.getMenu\"\n [enableV2_1]=\"enableV2_1\"\n [isLast]=\"isLast\"\n [widthToHideLabel]=\"widthToHideActionsLabels\">\n </dato-grid-toolbar-button>\n </div>\n </ng-template>\n </ng-container>\n\n <div *ngIf=\"rowActions.moreMenu.length > 0\" class=\"separator\"></div>\n <dato-grid-toolbar-more-menu [actions]=\"rowActions.moreMenu\" (actionClick)=\"onActionClick($event)\" [isRowActions]=\"true\">\n </dato-grid-toolbar-more-menu>\n </div>\n\n </section>\n\n\n <!-- General Actions -->\n <div class=\"d-flex items-center\">\n <!-- Create action -->\n <ng-container *ngIf=\"createAction\">\n <dato-button datoSize=\"sm\" class=\"pointer primary-300-color\" (click)=\"onActionClick(createAction)\"\n [datoTooltip]=\"createAction.tooltip\" [attr.data-auto-id]=\"'grid-toolbar-action-' + createAction.key\">\n <dato-icon *ngIf=\"createAction.icon\" [icon]=\"createAction.icon\" class=\"mr-5\"></dato-icon>\n {{ createAction.label | translate }}\n </dato-button>\n <div class=\"separator\"></div>\n </ng-container>\n\n <!-- Dynamic content for the right area -->\n <div #customActions data-auto-id=\"grid-toolbar-dynamic-right\">\n <ng-content select=\"[toolbarRightArea]\"></ng-content>\n </div>\n <div *ngIf=\"customActions.childNodes.length && displayCustomGridActionsSeparator\" class=\"separator\"></div>\n\n <!-- Group buttons -->\n <div *ngIf=\"groupsAllowed\" class=\"d-flex grouping-section opacity-0 invisible\" [class.open]=\"openMenus.group || hasGroups\">\n <dato-icon-button [class.active]=\"openMenus.group\" (click)=\"executeTableAction('Group from Toolbar')\"\n data-auto-id=\"grid-toolbar-open-groups\"\n removeIconPadding datoSize=\"md\" datoType=\"none\" icon=\"group\" iconWidth=\"17px\"\n datoTooltip=\"core.row-grouping\" #groupTrigger\n class=\"mr-10 pointer\"></dato-icon-button>\n <dato-icon-button data-auto-id=\"grid-toolbar-toggle-expand\" datoSize=\"md\" datoType=\"none\"\n (click)=\"executeTableAction('Collapse Expand')\"\n [icon]=\"rowGroupsCollapsed ? 'expand' : 'collapse'\"\n [disabled]=\"!hasGroups\"\n [datoTooltip]=\"'core.' + (rowGroupsCollapsed ? 'expand' : 'collapse') + '-rows'\"\n class=\"pointer\"></dato-icon-button>\n <div class=\"separator\"></div>\n </div>\n\n <!-- Grid Actions -->\n <ng-container *ngFor=\"let gridAction of gridActions.mainList; index as i\">\n <div *ngIf=\"gridAction.getMenu else button\" [datoMenuTriggerFor]=\"gridAction.getMenu()\">\n <ng-container [ngTemplateOutlet]=\"button\"></ng-container>\n </div>\n <ng-template #button>\n <dato-icon datoSize=\"sm\" (click)=\"onActionClick(gridAction)\"\n [attr.data-auto-id]=\"'grid-toolbar-action-' + gridAction.key\"\n [attr.data-action-index]=\"'grid-toolbar-general-action-' + i\"\n [icon]=\"gridAction.icon\" class=\"pointer primary-300-color\"\n [class.mr-16]=\"!gridAction.separator\"\n [datoTooltip]=\"gridAction.tooltip || gridAction.label\">\n </dato-icon>\n </ng-template>\n <div *ngIf=\"gridAction.separator\" class=\"separator\"></div>\n </ng-container>\n\n <!-- Export -->\n <dato-icon data-auto-id=\"grid-toolbar-export\" datoSize=\"sm\"\n (click)=\"executeTableAction('Export')\" *ngIf=\"displayExport && !isTreeMode\"\n icon=\"export\" class=\"pointer mr-16 primary-300-color\" datoTooltip=\"core.export-table\"></dato-icon>\n\n <!-- Settings -->\n <dato-icon [class.active]=\"openMenus.settings\" (click)=\"openMenus.settings = true\"\n data-auto-id=\"grid-toolbar-settings\" datoSize=\"sm\"\n icon=\"account\" class=\"pointer primary-300-color\" datoTooltip=\"core.table-settings\"\n #settingsTrigger\n [datoMenuTriggerFor]=\"settingsMenu\"></dato-icon>\n\n <!-- More actions menu -->\n <ng-container *ngIf=\"gridActions.moreMenu.length > 0\">\n <div class=\"separator\"></div>\n <dato-grid-toolbar-more-menu [actions]=\"gridActions.moreMenu\" (actionClick)=\"onActionClick($event)\" [isRowActions]=\"false\">\n </dato-grid-toolbar-more-menu>\n </ng-container>\n\n <dato-menu #settingsMenu=\"datoMenu\" menuClass=\"grid-settings-menu\" placement=\"bottom-end\"\n (menuClosed)=\"openMenus.settings = false\">\n <ng-template datoMenuContent>\n <button data-auto-id=\"grid-toolbar-settings-autofit-page\" datoMenuItem\n (click)=\"executeTableAction('Autofit to Page')\">\n <dato-icon datoSize=\"sm\" icon=\"maximize-horizontal\" class=\"mr-8 primary-300-color\"></dato-icon>\n {{ 'core.autofitPage' | translate }}</button>\n <button data-auto-id=\"grid-toolbar-settings-autofit-content\" datoMenuItem\n (click)=\"executeTableAction('Autofit to Content')\">\n <dato-icon datoSize=\"sm\" icon=\"minimize-horizontal\" class=\"mr-8 primary-300-color\"></dato-icon>\n {{ 'core.autofitContent' | translate }}</button>\n <ng-container *ngIf=\"groupsAllowed\">\n <button data-auto-id=\"grid-toolbar-settings-group\" datoMenuItem (click)=\"executeTableAction('Group from Settings')\">\n <dato-icon datoSize=\"sm\" icon=\"group\" class=\"mr-4 primary-300-color\"></dato-icon>\n {{ 'core.group' | translate }}\n </button>\n </ng-container>\n <button data-auto-id=\"grid-toolbar-settings-toggle-columns\" datoMenuItem (click)=\"executeTableAction('Show Hide Column')\">\n <dato-icon datoSize=\"sm\" icon=\"hide\" class=\"mr-8 primary-300-color\"></dato-icon>\n <span>{{ 'core.hideShowColumns' | translate }}<span\n class=\"dato-simple-italic ml-5 primary-200-color\">{{hiddenColumns}}</span></span>\n </button>\n <button data-auto-id=\"grid-toolbar-settings-reset-settings\" datoMenuItem\n (click)=\"executeTableAction('Reset Settings')\">\n <dato-icon datoSize=\"sm\" icon=\"reset-table\" class=\"mr-8 primary-300-color\"></dato-icon>\n {{ 'core.resetTableSettings' | translate }}\n </button>\n <button data-auto-id=\"grid-toolbar-settings-reset-filters\" datoMenuItem\n (click)=\"executeTableAction('Reset Filters')\">\n <dato-icon datoSize=\"sm\" icon=\"reset-filters\" class=\"mr-8 primary-300-color\"></dato-icon>\n {{ 'core.resetAllFilters' | translate }}\n </button>\n <button data-auto-id=\"grid-toolbar-export\" datoMenuItem\n (click)=\"executeTableAction('Export')\" *ngIf=\"this.displayExport && isTreeMode\">\n <dato-icon datoSize=\"sm\"\n icon=\"export\" class=\"pointer mr-5 primary-300-color\" datoTooltip=\"core.export-table\"></dato-icon>\n {{ 'core.export-table' | translate }}\n </button>\n </ng-template>\n </dato-menu>\n </div>\n</section>\n\n\n",
16763
16863
  changeDetection: ChangeDetectionStrategy.OnPush,
16764
16864
  styles: [".grouping-section{transition:visibility .2s ease-in-out,width .2s ease-in-out,opacity .2s ease-in-out;width:0}.grouping-section.open{width:75px;visibility:visible;opacity:1}:host .main-container{min-height:24px}:host .right-section{margin-right:50px}:host .separator{width:1px;height:24px;margin:0 16px}.disabled-action{pointer-events:none}"]
16765
16865
  }),
@@ -25063,5 +25163,5 @@ window.coreVersion = '21.4.0-rc.';
25063
25163
  * Generated bundle index. Do not edit.
25064
25164
  */
25065
25165
 
25066
- 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 };
25166
+ 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 };
25067
25167
  //# sourceMappingURL=datorama-core.js.map