@datorama/core 21.4.0-rc.9 → 22.1.1-rc.1

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 (35) hide show
  1. package/bundle.scss +2 -2
  2. package/bundles/datorama-core.umd.js +113 -65
  3. package/bundles/datorama-core.umd.js.map +1 -1
  4. package/bundles/datorama-core.umd.min.js +5 -5
  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 +4 -1
  8. package/esm2015/lib/grid-v2/grid-filter/filter-validator.js +9 -9
  9. package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +28 -16
  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 -2
  12. package/esm2015/lib/grid-v2/grid-store/grid.query.js +11 -8
  13. package/esm2015/lib/grid-v2/grid-store/grid.service.js +27 -14
  14. package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +7 -2
  15. package/esm2015/lib/version.js +2 -2
  16. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +4 -1
  17. package/esm5/lib/grid-v2/grid-filter/filter-validator.js +12 -9
  18. package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +28 -16
  19. package/esm5/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
  20. package/esm5/lib/grid-v2/grid-pagination/grid-pagination.component.js +5 -2
  21. package/esm5/lib/grid-v2/grid-store/grid.query.js +15 -12
  22. package/esm5/lib/grid-v2/grid-store/grid.service.js +48 -29
  23. package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +7 -2
  24. package/esm5/lib/version.js +2 -2
  25. package/fesm2015/datorama-core.js +85 -46
  26. package/fesm2015/datorama-core.js.map +1 -1
  27. package/fesm5/datorama-core.js +113 -65
  28. package/fesm5/datorama-core.js.map +1 -1
  29. package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +3 -2
  30. package/lib/grid-v2/grid-filter/filter-validator.d.ts +4 -3
  31. package/lib/grid-v2/grid-filter/grid-filter.types.d.ts +3 -2
  32. package/lib/grid-v2/grid-store/grid.query.d.ts +3 -2
  33. package/lib/grid-v2/grid-store/grid.service.d.ts +4 -3
  34. package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +1 -0
  35. package/package.json +1 -1
@@ -10094,11 +10094,10 @@ let GridQuery = class GridQuery extends Query {
10094
10094
  if (this.gridRef.gridOptions.pivotMode) {
10095
10095
  const { sort, colId } = this.api.grid.getSortModel().pop() || {};
10096
10096
  const column = this.api.columns.getColumn(colId);
10097
- const secondaryColumns = this.api.columns.getSecondaryColumns();
10098
- const pivotedColumn = secondaryColumns && secondaryColumns.find(col => col.getColId() === colId);
10097
+ const pivotedColumn = this.getSecondaryColumn(colId);
10099
10098
  if (pivotedColumn) {
10100
- const uniquePivotParents = uniq(secondaryColumns.map(column => column.getParent()));
10101
- const secondaryColumn = secondaryColumns.find(col => col.getColId() === pivotedColumn.getColId());
10099
+ const uniquePivotParents = uniq(this.api.columns.getSecondaryColumns().map(column => column.getParent()));
10100
+ const secondaryColumn = this.getSecondaryColumn(pivotedColumn.getColId());
10102
10101
  const pivotColIndex = uniquePivotParents.indexOf(secondaryColumn.getParent());
10103
10102
  return { colId: getColField(pivotedColumn.getColDef()), sort, pivotColIndex };
10104
10103
  }
@@ -10135,9 +10134,9 @@ let GridQuery = class GridQuery extends Query {
10135
10134
  filterChanged() {
10136
10135
  return this.selectFilter().pipe(map$1(filter => {
10137
10136
  return Object.keys(filter).reduce((filters, field) => {
10138
- if (filter[field]) {
10139
- const { conditional, pivotFieldsMap } = filter[field];
10140
- filters.push({ field, filter: conditional, pivotFieldsMap });
10137
+ const datoFilter = filter[field];
10138
+ if (datoFilter) {
10139
+ filters.push({ field, filter: datoFilter });
10141
10140
  }
10142
10141
  return filters;
10143
10142
  }, []);
@@ -10203,6 +10202,10 @@ let GridQuery = class GridQuery extends Query {
10203
10202
  selectIsSelectAllRowsEnabled() {
10204
10203
  return this.select(state => state.serverSidePagination.selectAllRowsEnabled);
10205
10204
  }
10205
+ getSecondaryColumn(colId) {
10206
+ const secondaryColumns = this.api.columns.getSecondaryColumns();
10207
+ return secondaryColumns && secondaryColumns.find(col => col.getColId() === colId);
10208
+ }
10206
10209
  filterCheckboxSelectionColumn(columns) {
10207
10210
  return columns.filter((column) => !column.getUserProvidedColDef() || !column.getUserProvidedColDef().checkboxSelection);
10208
10211
  }
@@ -10312,8 +10315,8 @@ function validateStringCondition(rowValue, { condition, value: filterValue }) {
10312
10315
  return !isEmpty(valueLowerCase);
10313
10316
  }
10314
10317
  }
10315
- function validateNumberCondition(unparsedRowValue, { condition, value, rangeEnd }) {
10316
- const rowValue = !!unparsedRowValue ? parseFloat(unparsedRowValue) : null;
10318
+ function validateNumberCondition(unparsedRowValue, { condition, value, rangeEnd }, filterKey = '') {
10319
+ const rowValue = !!unparsedRowValue ? parseFloat(unparsedRowValue[filterKey] || unparsedRowValue) : null;
10317
10320
  const filterValue = parseFloat(value);
10318
10321
  switch (condition) {
10319
10322
  case DatoFilterConditions.EQUALS:
@@ -10359,14 +10362,14 @@ function validateDateCondition(rowValue, { condition, value, rangeEnd }) {
10359
10362
  return !isNil(rowValue);
10360
10363
  }
10361
10364
  }
10362
- function validateCondition({ rowValue, filter, type }) {
10365
+ function validateCondition({ rowValue, condition, type, filterKey }) {
10363
10366
  switch (type) {
10364
10367
  case DatoGridFilterTypes.Date:
10365
- return validateDateCondition(rowValue, filter);
10368
+ return validateDateCondition(rowValue, condition);
10366
10369
  case DatoGridFilterTypes.Number:
10367
- return validateNumberCondition(rowValue, filter);
10370
+ return validateNumberCondition(rowValue, condition, filterKey);
10368
10371
  default:
10369
- return validateStringCondition(rowValue, filter);
10372
+ return validateStringCondition(rowValue, condition);
10370
10373
  }
10371
10374
  }
10372
10375
  function validateFilter({ row, api }, activeFilters) {
@@ -10375,7 +10378,7 @@ function validateFilter({ row, api }, activeFilters) {
10375
10378
  for (const filter of orderedFilters) {
10376
10379
  let filterPasses = true;
10377
10380
  const { byValue, conditional, pivotKeys } = activeFilters[filter];
10378
- const currentRowPivotKeys = row.parent.childrenMapped && getRowPivotKeys(row.parent.childrenMapped);
10381
+ const currentRowPivotKeys = (row.parent && row.parent.childrenMapped && getRowPivotKeys(row.parent.childrenMapped)) || [];
10379
10382
  const rowValue = api.getValue(filter, row);
10380
10383
  /** If value is under a pivoted column but doesn't match the filter pivot */
10381
10384
  if (pivotKeys && pivotKeys.length > 0 && !isArrayValuesEqual(pivotKeys, currentRowPivotKeys)) {
@@ -10384,7 +10387,7 @@ function validateFilter({ row, api }, activeFilters) {
10384
10387
  if (conditional) {
10385
10388
  const { operator, conditions, type } = conditional;
10386
10389
  const conditionsRelation = operator === OperatorTypes.AND ? 'every' : 'some';
10387
- filterPasses = conditions[conditionsRelation](filter => validateCondition({ rowValue, filter, type: type }));
10390
+ filterPasses = conditions[conditionsRelation](condition => validateCondition({ rowValue, condition, type: type, filterKey: filter }));
10388
10391
  }
10389
10392
  if (filterPasses && byValue) {
10390
10393
  const includesValue = byValue.values.includes(rowValue);
@@ -11120,10 +11123,10 @@ const mapToValue = ({ value }) => value;
11120
11123
  const ɵ0$1 = mapToValue;
11121
11124
  const mapToListItem = val => ({ id: val, label: isNil(val) ? `(Empty)` : `${val}`.trim(), value: val });
11122
11125
  const ɵ1$1 = mapToListItem;
11123
- const mapToListItemWithFormatted = ({ value, formattedValue }) => ({
11124
- id: value,
11125
- label: isNil(formattedValue) ? `(Empty)` : `${formattedValue}`.trim(),
11126
- value
11126
+ const mapToListItemWithFormatted = ({ value, formattedValue }, key) => ({
11127
+ id: key && value ? value[key] : value,
11128
+ label: isNil(formattedValue) ? `(Empty)` : `${key ? formattedValue[key] : formattedValue}`.trim(),
11129
+ value: key && value ? value[key] : value
11127
11130
  });
11128
11131
  const ɵ2$1 = mapToListItemWithFormatted;
11129
11132
  let DatoGridFilterComponent = class DatoGridFilterComponent {
@@ -11209,15 +11212,18 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11209
11212
  ngOnInit() {
11210
11213
  const { gridService, gridQuery } = this.popover.data;
11211
11214
  const { filter, filtersConfig = {}, pivotValueColumn, pivotKeys } = this.colDef;
11215
+ const colDefs = gridQuery.api.columns.getAllColumns().map(column => column.getColDef());
11212
11216
  this.colField = getColField(this.colDef);
11217
+ const colDef = colDefs.find(colDef => colDef.field === this.colField);
11218
+ const colFilter = filter || colDef.filter;
11219
+ const filterOptions = DatoGridFilterOptionsMap[colFilter];
11213
11220
  this.pivotColumn = gridQuery.api.columns.getSecondaryPivotColumn(pivotKeys, pivotValueColumn);
11214
11221
  if (filtersConfig.sections) {
11215
11222
  this.filterSections = { [filtersConfig.sections]: true };
11216
11223
  }
11217
11224
  this.keepPredefinedListOriginalOrder =
11218
11225
  filtersConfig.keepPredefinedListOriginalOrder && !isEmpty(filtersConfig.predefinedListValues);
11219
- const filterOptions = DatoGridFilterOptionsMap[filter];
11220
- this.filterType = filterOptions ? filter : DatoGridFilterTypes.String;
11226
+ this.filterType = filterOptions ? colFilter : DatoGridFilterTypes.String;
11221
11227
  this.listLabelType = this.filterType.toLowerCase();
11222
11228
  this.listSortByKey = this.filterType === DatoGridFilterTypes.Number && this.colDef.valueFormatter ? 'id' : 'label';
11223
11229
  this.gridQuery = gridQuery;
@@ -11250,8 +11256,10 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11250
11256
  }
11251
11257
  else {
11252
11258
  const columnValues = this.getColumnValues();
11253
- this.columnValues = columnValues.map(({ value }) => value);
11254
- this.listOptions = columnValues.map(mapToListItemWithFormatted);
11259
+ this.columnValues = columnValues.map(({ value }) => {
11260
+ return !isNil(this.pivotColumn) && value ? value[this.colField] : value;
11261
+ });
11262
+ this.listOptions = columnValues.map(colValue => mapToListItemWithFormatted(colValue, !isNil(this.pivotColumn) && this.colField));
11255
11263
  }
11256
11264
  }
11257
11265
  else {
@@ -11289,6 +11297,7 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11289
11297
  isEmpty(filter)
11290
11298
  ? this.gridService.clearColumnFilter(this.colField)
11291
11299
  : this.gridService.setColumnFilter(column, filter);
11300
+ this.gridService.notifyFilterUpdate();
11292
11301
  }
11293
11302
  }
11294
11303
  clearFilters() {
@@ -11334,19 +11343,25 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11334
11343
  buildFilter() {
11335
11344
  const { byValue, conditional } = this.filterForm.value;
11336
11345
  const filter = {};
11337
- filter.pivotKeys = this.pivotKeys;
11338
- if (this.pivotColumn) {
11339
- filter.pivotFieldsMap = this.getPivotFields(this.pivotColumn.getParent()).reduce((fieldMap, field, index) => {
11340
- fieldMap[field] = this.pivotKeys[index];
11341
- return fieldMap;
11342
- }, {});
11343
- }
11344
11346
  if (this.filterSections.Conditional) {
11345
11347
  this.setConditionalFilter(filter, conditional);
11346
11348
  }
11347
11349
  if (this.filterSections.By_Value) {
11348
11350
  this.setByValueFilter(filter, byValue);
11349
11351
  }
11352
+ /** If filters applied, add the extra properties to be used by pivot mode */
11353
+ if (filter.byValue || filter.conditional) {
11354
+ filter.colId = this.colDef.colId;
11355
+ filter.pivotKeys = this.pivotKeys;
11356
+ if (this.pivotColumn) {
11357
+ filter.pivotFieldsMap = this.getPivotFields(this.pivotColumn.getParent()).reduce((fieldMap, field, index) => {
11358
+ if (this.pivotKeys[index]) {
11359
+ fieldMap[field] = this.pivotKeys[index];
11360
+ }
11361
+ return fieldMap;
11362
+ }, {});
11363
+ }
11364
+ }
11350
11365
  return filter;
11351
11366
  }
11352
11367
  initForm() {
@@ -12630,19 +12645,39 @@ let GridService = class GridService {
12630
12645
  });
12631
12646
  this.notifyFilterUpdate();
12632
12647
  }
12633
- setColumnFilter(column, filter) {
12648
+ setColumnFilter(column, filter, notifyGrid = true) {
12634
12649
  this._logEvent("Grids - Filter Applied" /* GRID_FILTER_APPLIED */, {
12635
12650
  column: column.getColId(),
12636
12651
  numOfConditions: (filter.conditional && filter.conditional.conditions.length) || 0,
12637
12652
  byValue: !!filter.byValue ? 'Yes' : 'No'
12638
12653
  });
12654
+ this.updateFilter(column, filter);
12655
+ if (notifyGrid) {
12656
+ this.notifyFilterUpdate();
12657
+ }
12658
+ }
12659
+ setGridFilters(filters) {
12660
+ if (this.api) {
12661
+ for (const { filter } of filters) {
12662
+ const column = this.api.columns.getColumn(filter.colId);
12663
+ if (column) {
12664
+ this.setColumnFilter(column, filter);
12665
+ }
12666
+ else {
12667
+ const pivotColumn = this.gridQuery.getSecondaryColumn(filter.colId);
12668
+ this.setColumnFilter(pivotColumn, filter);
12669
+ }
12670
+ }
12671
+ this.notifyFilterUpdate();
12672
+ }
12673
+ }
12674
+ updateFilter(column, filter) {
12639
12675
  const colField = getColField(column.getColDef());
12640
12676
  this.store.update(state => {
12641
12677
  return {
12642
12678
  settings: Object.assign(Object.assign({}, state.settings), { filter: Object.assign(Object.assign({}, state.settings.filter), { [colField]: filter }) })
12643
12679
  };
12644
12680
  });
12645
- this.notifyFilterUpdate();
12646
12681
  }
12647
12682
  setSearchTerm(searchTerm) {
12648
12683
  this.store.update(state => {
@@ -13097,19 +13132,12 @@ let GridService = class GridService {
13097
13132
  /**
13098
13133
  * When pivoting,
13099
13134
  * we add the field name to the column header class in order to access it through the auto generated pivot column.
13100
- * @private
13101
13135
  */
13102
13136
  initPivotSecondaryColsProcess({ gridOptions }) {
13103
13137
  gridOptions.processSecondaryColDef = colDef => {
13104
- const api = colDef.headerComponentParams && colDef.headerComponentParams.gridQuery.api;
13105
- if (api) {
13106
- const valueColumns = colDef.headerComponentParams.gridQuery.api.columns.getValueColumns();
13107
- const originalColDef = valueColumns
13108
- .map(({ userProvidedColDef }) => userProvidedColDef)
13109
- .find(({ colId }) => colId === colDef.pivotValueColumn.getColId());
13110
- if (originalColDef) {
13111
- colDef.filter = originalColDef.filter;
13112
- }
13138
+ const userProvidedColDef = colDef.pivotValueColumn && colDef.pivotValueColumn.getUserProvidedColDef();
13139
+ if (userProvidedColDef) {
13140
+ colDef.filter = userProvidedColDef.filter;
13113
13141
  }
13114
13142
  if (colDef.pivotKeys) {
13115
13143
  colDef.pivotKeys = colDef.pivotKeys.map(key => {
@@ -13125,7 +13153,7 @@ let GridService = class GridService {
13125
13153
  const { field, value } = parsedValue;
13126
13154
  colGroupDef.headerClass = [field];
13127
13155
  colGroupDef.headerName = value;
13128
- if (colGroupDef.children && colGroupDef.children.length > 1) {
13156
+ if (colGroupDef.children && colGroupDef.children.length > 0) {
13129
13157
  colGroupDef.headerClass.push('group-pivot-cell');
13130
13158
  }
13131
13159
  }
@@ -13646,6 +13674,9 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13646
13674
  setGridRows(data) {
13647
13675
  this.gridService.setRows(data);
13648
13676
  }
13677
+ setGridFilters(filters) {
13678
+ this.gridService.setGridFilters(filters);
13679
+ }
13649
13680
  onFilterChanged() {
13650
13681
  return this.gridQuery.filterChanged();
13651
13682
  }
@@ -14451,6 +14482,9 @@ let DatoGridPaginationV2Component = class DatoGridPaginationV2Component {
14451
14482
  toggleGroupsState() {
14452
14483
  this.isExpanded ? this.gridApi.collapseAll() : this.gridApi.expandAll();
14453
14484
  this.isExpanded = !this.isExpanded;
14485
+ // this.gridApi.forEachNode((node: RowNode) => {
14486
+ // node.setExpanded(this.isExpanded);
14487
+ // });
14454
14488
  }
14455
14489
  autoFitGrid(type) {
14456
14490
  this.gridService.fitGrid(type);
@@ -14544,7 +14578,7 @@ DatoGridPaginationV2Component = __decorate([
14544
14578
  Component({
14545
14579
  selector: 'dato-grid-pagination-v2',
14546
14580
  changeDetection: ChangeDetectionStrategy.OnPush,
14547
- 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",
14581
+ 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-fit-to-container\">\n </dato-icon-button>\n </div>\n</div>\n",
14548
14582
  providers: [DecimalPipe],
14549
14583
  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}"]
14550
14584
  }),
@@ -14651,6 +14685,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
14651
14685
  this.gridActions = { mainList: [], moreMenu: [] };
14652
14686
  this.searchPlaceholder = this.translate.transform('core.search');
14653
14687
  this.rowActionsShortLabelThreshold = 1539;
14688
+ this.displayCustomGridActionsSeparator = true;
14654
14689
  this.openMenus = {
14655
14690
  group: false,
14656
14691
  settings: false
@@ -15004,10 +15039,14 @@ __decorate([
15004
15039
  Input(),
15005
15040
  __metadata("design:type", Number)
15006
15041
  ], DatoGridV2ToolbarComponent.prototype, "rowActionsShortLabelThreshold", void 0);
15042
+ __decorate([
15043
+ Input(),
15044
+ __metadata("design:type", Object)
15045
+ ], DatoGridV2ToolbarComponent.prototype, "displayCustomGridActionsSeparator", void 0);
15007
15046
  DatoGridV2ToolbarComponent = __decorate([
15008
15047
  Component({
15009
15048
  selector: 'dato-grid-toolbar-v2',
15010
- 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",
15049
+ 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",
15011
15050
  changeDetection: ChangeDetectionStrategy.OnPush,
15012
15051
  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}"]
15013
15052
  }),
@@ -22567,7 +22606,7 @@ function fixNgLeaks() {
22567
22606
  };
22568
22607
  }
22569
22608
 
22570
- window.coreVersion = '21.4.0-rc.';
22609
+ window.coreVersion = '22.1.1-rc.';
22571
22610
 
22572
22611
  /**
22573
22612
  * @license