@datorama/core 22.1.1-rc.1 → 22.2.2

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 (60) hide show
  1. package/bundle.scss +16 -17
  2. package/bundles/datorama-core.umd.js +148 -113
  3. package/bundles/datorama-core.umd.js.map +1 -1
  4. package/bundles/datorama-core.umd.min.js +15 -15
  5. package/bundles/datorama-core.umd.min.js.map +1 -1
  6. package/datorama-core.d.ts +0 -1
  7. package/datorama-core.metadata.json +1 -1
  8. package/esm2015/datorama-core.js +1 -2
  9. package/esm2015/lib/breadcrumbs/breadcrumbs.component.js +2 -4
  10. package/esm2015/lib/grid-v2/grid/grid-v2.types.js +1 -1
  11. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +11 -6
  12. package/esm2015/lib/grid-v2/grid-filter/filter-validator.js +3 -1
  13. package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +12 -4
  14. package/esm2015/lib/grid-v2/grid-filter/grid-filter.types.js +3 -1
  15. package/esm2015/lib/grid-v2/grid-pagination/grid-pagination.component.js +5 -5
  16. package/esm2015/lib/grid-v2/grid-settings.js +2 -2
  17. package/esm2015/lib/grid-v2/grid-store/grid.query.js +13 -14
  18. package/esm2015/lib/grid-v2/grid-store/grid.service.js +32 -8
  19. package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +1 -7
  20. package/esm2015/lib/icon/icon.types.js +1 -1
  21. package/esm2015/lib/progress-bar/progress-bar.component.js +36 -16
  22. package/esm2015/lib/rich-text/rich-text.directive.js +33 -15
  23. package/esm2015/lib/select/select.component.js +10 -5
  24. package/esm2015/lib/version.js +2 -2
  25. package/esm5/datorama-core.js +1 -2
  26. package/esm5/lib/breadcrumbs/breadcrumbs.component.js +2 -4
  27. package/esm5/lib/grid-v2/grid/grid-v2.types.js +1 -1
  28. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +11 -6
  29. package/esm5/lib/grid-v2/grid-filter/filter-validator.js +3 -1
  30. package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +12 -4
  31. package/esm5/lib/grid-v2/grid-filter/grid-filter.types.js +3 -1
  32. package/esm5/lib/grid-v2/grid-pagination/grid-pagination.component.js +5 -5
  33. package/esm5/lib/grid-v2/grid-settings.js +2 -2
  34. package/esm5/lib/grid-v2/grid-store/grid.query.js +13 -14
  35. package/esm5/lib/grid-v2/grid-store/grid.service.js +32 -8
  36. package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +1 -13
  37. package/esm5/lib/icon/icon.types.js +1 -1
  38. package/esm5/lib/progress-bar/progress-bar.component.js +36 -16
  39. package/esm5/lib/rich-text/rich-text.directive.js +34 -16
  40. package/esm5/lib/select/select.component.js +10 -5
  41. package/esm5/lib/version.js +2 -2
  42. package/fesm2015/datorama-core.js +148 -105
  43. package/fesm2015/datorama-core.js.map +1 -1
  44. package/fesm5/datorama-core.js +149 -113
  45. package/fesm5/datorama-core.js.map +1 -1
  46. package/i18n/locale-en_US.json +2 -0
  47. package/lib/grid-v2/grid/grid-v2.types.d.ts +1 -2
  48. package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +1 -0
  49. package/lib/grid-v2/grid-filter/grid-filter.types.d.ts +3 -1
  50. package/lib/grid-v2/grid-pagination/grid-pagination.component.d.ts +1 -0
  51. package/lib/grid-v2/grid-settings.d.ts +2 -2
  52. package/lib/grid-v2/grid-store/grid.service.d.ts +2 -1
  53. package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +0 -2
  54. package/lib/icon/icon.types.d.ts +1 -1
  55. package/lib/progress-bar/progress-bar.component.d.ts +8 -2
  56. package/lib/rich-text/rich-text.directive.d.ts +6 -4
  57. package/package.json +1 -1
  58. package/esm2015/lib/rich-text/rich-text.service.js +0 -50
  59. package/esm5/lib/rich-text/rich-text.service.js +0 -51
  60. package/lib/rich-text/rich-text.service.d.ts +0 -10
@@ -7495,8 +7495,9 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7495
7495
  writeValue(activeOptions) {
7496
7496
  this._model = activeOptions ? coerceArray$1(activeOptions) : [];
7497
7497
  if (this.options) {
7498
+ const overTheLimit = this.limitSelectedTo && this.isMulti && this._model.length >= this.limitSelectedTo;
7498
7499
  this.markAsActive(this._model, { deselectAll: true });
7499
- this.limitSelectedTo && this.updateDisabledState();
7500
+ overTheLimit && this.updateDisabledState();
7500
7501
  }
7501
7502
  /** For later updates */
7502
7503
  this.cdr.markForCheck();
@@ -7532,7 +7533,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7532
7533
  */
7533
7534
  if (this.hasValue && this._initialOpen) {
7534
7535
  this.markAsActive(this._model);
7535
- if (this.limitSelectedTo) {
7536
+ if (this.limitSelectedTo && this._model.length === this.limitSelectedTo) {
7536
7537
  this.updateDisabledState();
7537
7538
  }
7538
7539
  this._initialOpen = false;
@@ -7599,6 +7600,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7599
7600
  this.onChange(this._model);
7600
7601
  }
7601
7602
  removeOption(option) {
7603
+ const updateDisabled = this.limitSelectedTo && this._model.length === this.limitSelectedTo;
7602
7604
  this._model = this._model.filter(current => current[this.idKey] !== option[this.idKey]);
7603
7605
  const optionToRemove = this.options.find(datoOption => datoOption.option && datoOption.option[this.idKey] === option[this.idKey]);
7604
7606
  /**
@@ -7608,7 +7610,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7608
7610
  if (optionToRemove) {
7609
7611
  optionToRemove.active = false;
7610
7612
  }
7611
- this.limitSelectedTo && this.updateDisabledState();
7613
+ updateDisabled && this.updateDisabledState();
7612
7614
  this.onChange(this._model);
7613
7615
  this.cdr.markForCheck();
7614
7616
  if (this.datoOverlay.attached) {
@@ -7884,6 +7886,9 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7884
7886
  if (!datoOption) {
7885
7887
  return;
7886
7888
  }
7889
+ const modelLength = this._model.length;
7890
+ const updateDisabled = this.limitSelectedTo &&
7891
+ (modelLength === this.limitSelectedTo || (modelLength === this.limitSelectedTo - 1 && !datoOption.active));
7887
7892
  datoOption.active = !datoOption.active;
7888
7893
  const rawOption = datoOption.option;
7889
7894
  if (datoOption.active) {
@@ -7892,7 +7897,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7892
7897
  else {
7893
7898
  this._model = this._model.filter(current => current[this.idKey] !== rawOption[this.idKey]);
7894
7899
  }
7895
- this.limitSelectedTo && this.updateDisabledState();
7900
+ updateDisabled && this.updateDisabledState();
7896
7901
  this.onChange(this._model);
7897
7902
  this.cdr.markForCheck();
7898
7903
  this.datoOverlay.scheduleUpdate();
@@ -10094,20 +10099,17 @@ let GridQuery = class GridQuery extends Query {
10094
10099
  if (this.gridRef.gridOptions.pivotMode) {
10095
10100
  const { sort, colId } = this.api.grid.getSortModel().pop() || {};
10096
10101
  const column = this.api.columns.getColumn(colId);
10097
- const pivotedColumn = this.getSecondaryColumn(colId);
10098
- if (pivotedColumn) {
10099
- const uniquePivotParents = uniq(this.api.columns.getSecondaryColumns().map(column => column.getParent()));
10100
- const secondaryColumn = this.getSecondaryColumn(pivotedColumn.getColId());
10101
- const pivotColIndex = uniquePivotParents.indexOf(secondaryColumn.getParent());
10102
- return { colId: getColField(pivotedColumn.getColDef()), sort, pivotColIndex };
10102
+ if (column) {
10103
+ return { colId, sort, colField: getColField(column.getColDef()) };
10103
10104
  }
10104
- else if (column) {
10105
- return { colId: getColField(column.getColDef()), sort };
10105
+ else {
10106
+ const secondaryColumn = this.getSecondaryColumn(colId);
10107
+ if (secondaryColumn) {
10108
+ return { colId, sort, colField: getColField(secondaryColumn.getColDef()) };
10109
+ }
10106
10110
  }
10107
10111
  }
10108
- else {
10109
- return this.api.grid.getSortModel().pop();
10110
- }
10112
+ return this.api.grid.getSortModel().pop();
10111
10113
  }
10112
10114
  selectSort() {
10113
10115
  return this.select(state => state.settings.sort);
@@ -10204,7 +10206,10 @@ let GridQuery = class GridQuery extends Query {
10204
10206
  }
10205
10207
  getSecondaryColumn(colId) {
10206
10208
  const secondaryColumns = this.api.columns.getSecondaryColumns();
10207
- return secondaryColumns && secondaryColumns.find(col => col.getColId() === colId);
10209
+ if (secondaryColumns) {
10210
+ return secondaryColumns.find(col => col.getColId() === colId);
10211
+ }
10212
+ return null;
10208
10213
  }
10209
10214
  filterCheckboxSelectionColumn(columns) {
10210
10215
  return columns.filter((column) => !column.getUserProvidedColDef() || !column.getUserProvidedColDef().checkboxSelection);
@@ -10254,6 +10259,8 @@ var DatoFilterConditions;
10254
10259
  DatoFilterConditions["NOT_IN_LIST"] = "NOT_IN_LIST";
10255
10260
  DatoFilterConditions["IS_EMPTY"] = "IS_EMPTY";
10256
10261
  DatoFilterConditions["NOT_EMPTY"] = "NOT_EMPTY";
10262
+ DatoFilterConditions["IS_NULL"] = "IS_NULL";
10263
+ DatoFilterConditions["NOT_NULL"] = "NOT_NULL";
10257
10264
  })(DatoFilterConditions || (DatoFilterConditions = {}));
10258
10265
  const DatoGridDateFilterOptions = [
10259
10266
  DatoFilterConditions.IN_RANGE,
@@ -10334,8 +10341,10 @@ function validateNumberCondition(unparsedRowValue, { condition, value, rangeEnd
10334
10341
  case DatoFilterConditions.IN_RANGE:
10335
10342
  return rowValue >= filterValue && rowValue <= parseFloat(rangeEnd);
10336
10343
  case DatoFilterConditions.IS_EMPTY:
10344
+ case DatoFilterConditions.IS_NULL:
10337
10345
  return isNil(rowValue);
10338
10346
  case DatoFilterConditions.NOT_EMPTY:
10347
+ case DatoFilterConditions.NOT_NULL:
10339
10348
  return !isNil(rowValue);
10340
10349
  }
10341
10350
  }
@@ -10482,7 +10491,7 @@ function toolbarActionToContextAction(params) {
10482
10491
  return contextActions;
10483
10492
  }
10484
10493
 
10485
- const DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_AP');
10494
+ const DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_API');
10486
10495
 
10487
10496
  const defaultEditableColumnRenderer = params => params && params.value ? `<div class="value-wrapper ellipsis">${params.value}</div>` : null;
10488
10497
  const editableCellRendererWithSearchHighlight = (params, searchTerm) => {
@@ -11211,10 +11220,11 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11211
11220
  }
11212
11221
  ngOnInit() {
11213
11222
  const { gridService, gridQuery } = this.popover.data;
11214
- const { filter, filtersConfig = {}, pivotValueColumn, pivotKeys } = this.colDef;
11223
+ const { filter, pivotValueColumn, pivotKeys } = this.colDef;
11215
11224
  const colDefs = gridQuery.api.columns.getAllColumns().map(column => column.getColDef());
11216
11225
  this.colField = getColField(this.colDef);
11217
11226
  const colDef = colDefs.find(colDef => colDef.field === this.colField);
11227
+ const filtersConfig = colDef.filtersConfig || this.colDef.filtersConfig || {};
11218
11228
  const colFilter = filter || colDef.filter;
11219
11229
  const filterOptions = DatoGridFilterOptionsMap[colFilter];
11220
11230
  this.pivotColumn = gridQuery.api.columns.getSecondaryPivotColumn(pivotKeys, pivotValueColumn);
@@ -11236,7 +11246,11 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11236
11246
  if (this.filterSections.Conditional) {
11237
11247
  let filterConditions = filterOptions || DatoGridStringFilterOptions;
11238
11248
  if (filtersConfig.showEmptyConditions) {
11239
- filterConditions = [...filterConditions, DatoFilterConditions.IS_EMPTY, DatoFilterConditions.NOT_EMPTY];
11249
+ let emptyConditions = [DatoFilterConditions.IS_EMPTY, DatoFilterConditions.NOT_EMPTY];
11250
+ if (this.filterType === DatoGridFilterTypes.Number) {
11251
+ emptyConditions = [DatoFilterConditions.IS_NULL, DatoFilterConditions.NOT_NULL];
11252
+ }
11253
+ filterConditions = [...filterConditions, ...emptyConditions];
11240
11254
  }
11241
11255
  this.conditionalFilterOptions = filterConditions.map((operand, id) => ({
11242
11256
  id,
@@ -11599,7 +11613,10 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11599
11613
  valueControl.updateValueAndValidity();
11600
11614
  }
11601
11615
  isEmptyOperand(operand) {
11602
- return operand === DatoFilterConditions.IS_EMPTY || operand === DatoFilterConditions.NOT_EMPTY;
11616
+ return (operand === DatoFilterConditions.IS_EMPTY ||
11617
+ operand === DatoFilterConditions.NOT_EMPTY ||
11618
+ operand === DatoFilterConditions.IS_NULL ||
11619
+ operand === DatoFilterConditions.NOT_NULL);
11603
11620
  }
11604
11621
  isStringArray(value) {
11605
11622
  return isString(value[0]);
@@ -12657,18 +12674,36 @@ let GridService = class GridService {
12657
12674
  }
12658
12675
  }
12659
12676
  setGridFilters(filters) {
12660
- if (this.api) {
12677
+ if (this.api && filters) {
12661
12678
  for (const { filter } of filters) {
12662
12679
  const column = this.api.columns.getColumn(filter.colId);
12663
12680
  if (column) {
12664
- this.setColumnFilter(column, filter);
12681
+ this.setColumnFilter(column, filter, false);
12665
12682
  }
12666
12683
  else {
12667
- const pivotColumn = this.gridQuery.getSecondaryColumn(filter.colId);
12668
- this.setColumnFilter(pivotColumn, filter);
12684
+ const secondaryColumn = this.gridQuery.getSecondaryColumn(filter.colId);
12685
+ if (secondaryColumn) {
12686
+ this.setColumnFilter(secondaryColumn, filter, false);
12687
+ }
12669
12688
  }
12670
12689
  }
12671
- this.notifyFilterUpdate();
12690
+ this.api.grid.onFilterChanged();
12691
+ }
12692
+ }
12693
+ setGridSort(gridSort) {
12694
+ if (this.api && gridSort) {
12695
+ const { colId, sort } = gridSort;
12696
+ const column = this.api.columns.getColumn(colId);
12697
+ if (column) {
12698
+ column.setSort(sort);
12699
+ }
12700
+ else {
12701
+ const secondaryColumn = this.gridQuery.getSecondaryColumn(colId);
12702
+ if (secondaryColumn) {
12703
+ secondaryColumn.setSort(sort);
12704
+ }
12705
+ }
12706
+ this.api.grid.onSortChanged();
12672
12707
  }
12673
12708
  }
12674
12709
  updateFilter(column, filter) {
@@ -12725,8 +12760,7 @@ let GridService = class GridService {
12725
12760
  this.updateSettings({ gridAlignment, columnsSizes: null });
12726
12761
  }
12727
12762
  saveSettingsToServer(settings) {
12728
- const isGlobal = this.gridQuery.getGridOptions().isGlobalSettings;
12729
- this.storageAPI.set(this.gridName, settings, isGlobal);
12763
+ this.storageAPI.set(this.gridName, settings);
12730
12764
  }
12731
12765
  /**
12732
12766
  * @internal used to log grid events to the platform's logging service
@@ -13087,6 +13121,13 @@ let GridService = class GridService {
13087
13121
  column
13088
13122
  };
13089
13123
  }
13124
+ if (condition === DatoFilterConditions.IS_NULL || condition === DatoFilterConditions.NOT_NULL) {
13125
+ return {
13126
+ condition: DatoFilterConditions.IS_NULL,
13127
+ value: condition === DatoFilterConditions.IS_NULL ? 'true' : 'false',
13128
+ column
13129
+ };
13130
+ }
13090
13131
  return Object.assign(Object.assign({}, item), { column });
13091
13132
  })
13092
13133
  };
@@ -13628,16 +13669,18 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13628
13669
  .pipe(switchMap(() => {
13629
13670
  this.gridOptions = this.normalizeOptions();
13630
13671
  agGrid.gridOptions = this.gridOptions;
13631
- const isGlobal = this.gridOptions.isGlobalSettings;
13632
- const settingsLoader = this.gridOptions.saveSettings === false
13633
- ? of(null)
13634
- : this.storageAPI.get(this.gridOptions.gridName, isGlobal);
13672
+ const settingsLoader = this.gridOptions.saveSettings === false ? of(null) : this.storageAPI.get(this.gridOptions.gridName);
13635
13673
  return combineLatest([agGrid.gridReady, settingsLoader]);
13636
13674
  }), untilDestroyed(this))
13637
13675
  .subscribe(([{ api, columnApi }, savedSettings = {}]) => {
13638
13676
  if (!this.gridOptions.rowData) {
13639
13677
  api.showLoadingOverlay();
13640
13678
  }
13679
+ if (!this.gridOptions.statusBar) {
13680
+ /** Fix ag-grid bug that doesn't add ag-hidden class to the status bar, which only get fixed in later versions */
13681
+ const el = agGridEl.querySelector('.ag-status-bar');
13682
+ addClass(el, 'ag-hidden');
13683
+ }
13641
13684
  const gridApi = { grid: api, columns: columnApi };
13642
13685
  this.gridService._setApi(gridApi, agGrid);
13643
13686
  this.gridQuery._setApi(gridApi, agGrid);
@@ -13677,6 +13720,9 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13677
13720
  setGridFilters(filters) {
13678
13721
  this.gridService.setGridFilters(filters);
13679
13722
  }
13723
+ setGridSort(sort) {
13724
+ this.gridService.setGridSort(sort);
13725
+ }
13680
13726
  onFilterChanged() {
13681
13727
  return this.gridQuery.filterChanged();
13682
13728
  }
@@ -14326,6 +14372,7 @@ let DatoGridPaginationV2Component = class DatoGridPaginationV2Component {
14326
14372
  // Show fit cell content and collapse/expand row groups controls
14327
14373
  this.showBottomControls = false;
14328
14374
  this.isExpanded = true;
14375
+ this.hasRowGroupColumns = false;
14329
14376
  this.isServerSidePagination = false;
14330
14377
  // The number of pages displayed in the navigation panel for each view as defined by product.
14331
14378
  this.MINI_DISPLAY_LENGTH = 2;
@@ -14361,8 +14408,10 @@ let DatoGridPaginationV2Component = class DatoGridPaginationV2Component {
14361
14408
  });
14362
14409
  this.gridQuery.gridReady$
14363
14410
  .pipe(tap(() => {
14411
+ const rowGroupColumns = this.gridQuery.api.columns.getRowGroupColumns();
14364
14412
  this.gridApi = this.gridQuery.api.grid;
14365
14413
  this.showBottomControls = this.gridQuery.getGridOptions().showBottomControls;
14414
+ this.hasRowGroupColumns = rowGroupColumns && rowGroupColumns.length > 0;
14366
14415
  }), switchMap(() => {
14367
14416
  this.isServerSidePagination = this.gridQuery.isServerSide;
14368
14417
  return this.isServerSidePagination ? this.gridQuery.serverDataLoaded$ : this.gridQuery.rowDataChanged$;
@@ -14482,9 +14531,6 @@ let DatoGridPaginationV2Component = class DatoGridPaginationV2Component {
14482
14531
  toggleGroupsState() {
14483
14532
  this.isExpanded ? this.gridApi.collapseAll() : this.gridApi.expandAll();
14484
14533
  this.isExpanded = !this.isExpanded;
14485
- // this.gridApi.forEachNode((node: RowNode) => {
14486
- // node.setExpanded(this.isExpanded);
14487
- // });
14488
14534
  }
14489
14535
  autoFitGrid(type) {
14490
14536
  this.gridService.fitGrid(type);
@@ -14578,7 +14624,7 @@ DatoGridPaginationV2Component = __decorate([
14578
14624
  Component({
14579
14625
  selector: 'dato-grid-pagination-v2',
14580
14626
  changeDetection: ChangeDetectionStrategy.OnPush,
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",
14627
+ 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 *ngIf=\"hasRowGroupColumns\" [icon]=\"isExpanded ? 'collapse' : 'expand'\" datoType=\"secondary\"\n datoSize=\"md\" (click)=\"toggleGroupsState()\" data-auto-id=\"pagination-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=\"pagination-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=\"pagination-fit-to-container\">\n </dato-icon-button>\n </div>\n</div>\n",
14582
14628
  providers: [DecimalPipe],
14583
14629
  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}"]
14584
14630
  }),
@@ -14752,12 +14798,6 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
14752
14798
  this.registerGroupListeners();
14753
14799
  this.subscribeRowsSelectionData();
14754
14800
  }
14755
- getCellValueChangeEvent() {
14756
- return this.gridController.gridQuery.waitForGrid(() => this.gridQuery.gridRef.cellValueChanged.pipe(debounceTime(100), untilDestroyed(this)));
14757
- }
14758
- getRowDataUpdatedEvent() {
14759
- return this.gridController.gridQuery.waitForGrid(() => this.gridQuery.gridRef.rowDataUpdated.pipe(debounceTime(100), untilDestroyed(this)));
14760
- }
14761
14801
  onActionClick(action) {
14762
14802
  if (isFunction(action.onClick)) {
14763
14803
  const selectedRowsCount = this.gridController.gridQuery.getSelectedRowsCount();
@@ -18825,39 +18865,6 @@ DatoEditableHeaderModule = __decorate([
18825
18865
  * found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
18826
18866
  */
18827
18867
 
18828
- let RichTextService = class RichTextService {
18829
- constructor(http, config) {
18830
- this.http = http;
18831
- this.config = config;
18832
- }
18833
- getLib(appendScriptFunc, appendStyleFunc) {
18834
- if (!this.richTextScript$) {
18835
- this.initLib(appendScriptFunc, appendStyleFunc);
18836
- }
18837
- return this.richTextScript$;
18838
- }
18839
- initLib(appendScriptFunc, appendStyleFunc) {
18840
- this.richTextScript$ = combineLatest([
18841
- this.http
18842
- .get(`${this.config.paths.richText}/index.js`, { responseType: 'text' })
18843
- .pipe(tap(lib => appendScriptFunc(lib, 'rich-text-editor'))),
18844
- this.http
18845
- .get(`${this.config.paths.richText}/plugins/autocomplete/plugin.css`, { responseType: 'text' })
18846
- .pipe(tap(style => appendStyleFunc(style, 'tinymce-autocomplete')))
18847
- ]).pipe(shareReplay(1));
18848
- }
18849
- };
18850
- RichTextService.ctorParameters = () => [
18851
- { type: HttpClient },
18852
- { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
18853
- ];
18854
- RichTextService.ɵprov = ɵɵdefineInjectable({ factory: function RichTextService_Factory() { return new RichTextService(ɵɵinject(HttpClient), ɵɵinject(DATO_CORE_CONFIG)); }, token: RichTextService, providedIn: "root" });
18855
- RichTextService = __decorate([
18856
- Injectable({ providedIn: 'root' }),
18857
- __param(1, Inject(DATO_CORE_CONFIG)),
18858
- __metadata("design:paramtypes", [HttpClient, Object])
18859
- ], RichTextService);
18860
-
18861
18868
  /**
18862
18869
  * @license
18863
18870
  * Copyright Datorama. All Rights Reserved.
@@ -18871,12 +18878,12 @@ const getTinymce = () => {
18871
18878
  };
18872
18879
  const ɵ0$3 = getTinymce;
18873
18880
  let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirective extends BaseCustomControl {
18874
- constructor(ngZone, richTextService, config, host) {
18881
+ constructor(ngZone, http, host, config) {
18875
18882
  super();
18876
18883
  this.ngZone = ngZone;
18877
- this.richTextService = richTextService;
18878
- this.config = config;
18884
+ this.http = http;
18879
18885
  this.host = host;
18886
+ this.config = config;
18880
18887
  this.autocompleteOptions = {};
18881
18888
  this.forcePlainTextPasting = false;
18882
18889
  this.format = 'html';
@@ -18903,11 +18910,28 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
18903
18910
  base: this.config.paths.richText,
18904
18911
  query: ''
18905
18912
  };
18906
- this.richTextService
18907
- .getLib(appendScript, appendStyle)
18908
- .pipe(untilDestroyed(this))
18909
- .subscribe(() => {
18913
+ /**
18914
+ * We support only one instance in load time
18915
+ */
18916
+ if (window.tinymce) {
18910
18917
  this.init.call(this);
18918
+ }
18919
+ else {
18920
+ this.loadLib().subscribe(lib => {
18921
+ appendScript(lib, 'rich-text-editor');
18922
+ this.init.call(this);
18923
+ this.loadAutoCompleteStyle();
18924
+ });
18925
+ }
18926
+ }
18927
+ loadLib() {
18928
+ return this.http.get(`${this.config.paths.richText}/index.js`, { responseType: 'text' });
18929
+ }
18930
+ loadAutoCompleteStyle() {
18931
+ this.http
18932
+ .get(`${this.config.paths.richText}/plugins/autocomplete/plugin.css`, { responseType: 'text' })
18933
+ .subscribe(style => {
18934
+ appendStyle(style, 'tinymce-autocomplete');
18911
18935
  });
18912
18936
  }
18913
18937
  initEditor(_, editor) {
@@ -19008,9 +19032,9 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
19008
19032
  };
19009
19033
  DatoRichTextDirective.ctorParameters = () => [
19010
19034
  { type: NgZone },
19011
- { type: RichTextService },
19012
- { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] },
19013
- { type: ElementRef }
19035
+ { type: HttpClient },
19036
+ { type: ElementRef },
19037
+ { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
19014
19038
  ];
19015
19039
  __decorate([
19016
19040
  Input(),
@@ -19076,9 +19100,10 @@ DatoRichTextDirective = DatoRichTextDirective_1 = __decorate([
19076
19100
  }
19077
19101
  ]
19078
19102
  }),
19079
- __param(2, Inject(DATO_CORE_CONFIG)),
19103
+ __param(3, Inject(DATO_CORE_CONFIG)),
19080
19104
  __metadata("design:paramtypes", [NgZone,
19081
- RichTextService, Object, ElementRef])
19105
+ HttpClient,
19106
+ ElementRef, Object])
19082
19107
  ], DatoRichTextDirective);
19083
19108
 
19084
19109
  /**
@@ -21359,9 +21384,7 @@ let DatoBreadcrumbsComponent = class DatoBreadcrumbsComponent {
21359
21384
  this._breadcrumbs = [...start, ...dots, ...end];
21360
21385
  }
21361
21386
  initEditableHeader() {
21362
- this.headerControl.valueChanges
21363
- .pipe(debounceTime(300), untilDestroyed(this))
21364
- .subscribe((res) => {
21387
+ this.headerControl.valueChanges.pipe(debounceTime(300), untilDestroyed(this)).subscribe((res) => {
21365
21388
  this.updateEditableText.emit(res);
21366
21389
  this.cdr.detectChanges();
21367
21390
  });
@@ -21984,22 +22007,17 @@ DatoPillsModule = __decorate([
21984
22007
  ], DatoPillsModule);
21985
22008
 
21986
22009
  let DatoProgressBarComponent = class DatoProgressBarComponent {
21987
- constructor() {
22010
+ constructor(cdr) {
22011
+ this.cdr = cdr;
21988
22012
  this.barColor = 'primary-100';
21989
22013
  this.thresholds = [33, 66];
21990
22014
  }
21991
22015
  ngOnInit() {
21992
- if (!this.parts && this.percent) {
21993
- if (!this.color) {
21994
- this.initColor();
21995
- }
21996
- this.parts = [
21997
- {
21998
- percent: this.percent,
21999
- color: this.color,
22000
- tooltip: this.tooltip
22001
- }
22002
- ];
22016
+ if (!this.parts) {
22017
+ this.percent = this.percent || 0;
22018
+ this.isByPercent = true;
22019
+ this.hasInitialColor = !!this.color;
22020
+ this.initSinglePart();
22003
22021
  }
22004
22022
  else if (this.parts &&
22005
22023
  this.parts.every((part) => part.weight >= 0) &&
@@ -22007,6 +22025,27 @@ let DatoProgressBarComponent = class DatoProgressBarComponent {
22007
22025
  this.initPartsPercent();
22008
22026
  }
22009
22027
  }
22028
+ ngOnChanges(changes) {
22029
+ if (this.isByPercent &&
22030
+ ((changes.percent && !changes.percent.firstChange) ||
22031
+ (changes.color && !changes.color.firstChange) ||
22032
+ (changes.tooltip && !changes.tooltip.firstChange))) {
22033
+ this.initSinglePart();
22034
+ this.cdr.detectChanges();
22035
+ }
22036
+ }
22037
+ initSinglePart() {
22038
+ if (!this.color || !this.hasInitialColor) {
22039
+ this.initColor();
22040
+ }
22041
+ this.parts = [
22042
+ {
22043
+ percent: this.percent,
22044
+ color: this.color,
22045
+ tooltip: this.tooltip
22046
+ }
22047
+ ];
22048
+ }
22010
22049
  initColor() {
22011
22050
  if (isEmpty(this.thresholds)) {
22012
22051
  this.color = 'accent-400';
@@ -22048,6 +22087,9 @@ let DatoProgressBarComponent = class DatoProgressBarComponent {
22048
22087
  }
22049
22088
  }
22050
22089
  };
22090
+ DatoProgressBarComponent.ctorParameters = () => [
22091
+ { type: ChangeDetectorRef }
22092
+ ];
22051
22093
  __decorate([
22052
22094
  Input(),
22053
22095
  __metadata("design:type", String)
@@ -22083,11 +22125,12 @@ __decorate([
22083
22125
  DatoProgressBarComponent = __decorate([
22084
22126
  Component({
22085
22127
  selector: 'dato-progress-bar',
22086
- template: "<div class=\"bar d-flex width-100 overflow-hidden\"\n [style.width]=\"width\"\n [class]=\"barColor + '-background-color'\">\n <div *ngFor=\"let part of parts; index as i\"\n class=\"part height-100\"\n [ngClass]=\"part.color ? part.color + '-background-color' : ''\"\n [style.width]=\"i > 0 ? 'calc(' + part.percent + '% + 8px)' : part.percent + '%'\"\n [style.z-index]=\"100 - i\"\n [datoTooltipV2]=\"part.tooltip\">\n </div>\n</div>\n\n<div *ngIf=\"showLegend\" class=\"d-flex mt-12\">\n <div *ngFor=\"let part of parts; index as i\" class=\"d-flex mr-16\">\n <div class=\"d-flex dato-note primary-400-color\">\n <div class=\"legend-color mr-6\" [ngClass]=\"part.color ? part.color + '-background-color' : ''\"></div>\n <div>{{ part.legendLabel || part.tooltip }}</div>\n </div>\n </div>\n</div>\n",
22128
+ template: "<div class=\"bar d-flex width-100 overflow-hidden\"\n [style.width]=\"width\"\n [class]=\"barColor + '-background-color'\">\n <div *ngFor=\"let part of parts; index as i\"\n class=\"part height-100\"\n [ngClass]=\"part.color ? part.color + '-background-color' : ''\"\n [style.width]=\"i > 0 ? 'calc(' + part.percent + '% + 8px)' : part.percent + '%'\"\n [style.z-index]=\"100 - i\"\n [datoTooltipV2]=\"part.tooltip\">\n </div>\n</div>\n\n<ng-content></ng-content>\n\n<div *ngIf=\"showLegend\" class=\"d-flex mt-12\">\n <div *ngFor=\"let part of parts; index as i\" class=\"d-flex mr-16\">\n <div class=\"d-flex dato-note primary-400-color\">\n <div class=\"legend-color mr-6\" [ngClass]=\"part.color ? part.color + '-background-color' : ''\"></div>\n <div>{{ part.legendLabel || part.tooltip }}</div>\n </div>\n </div>\n</div>\n",
22087
22129
  changeDetection: ChangeDetectionStrategy.OnPush,
22088
22130
  encapsulation: ViewEncapsulation.None,
22089
22131
  styles: ["dato-progress-bar .bar{height:8px;border-radius:4px}dato-progress-bar .part{border-radius:0 4px 4px 0}dato-progress-bar .part:not(:first-child){margin-left:-8px}dato-progress-bar .legend-color{width:16px;height:16px;min-width:16px;border-radius:50%}"]
22090
- })
22132
+ }),
22133
+ __metadata("design:paramtypes", [ChangeDetectorRef])
22091
22134
  ], DatoProgressBarComponent);
22092
22135
 
22093
22136
  const declarations$4 = [DatoProgressBarComponent];
@@ -22606,7 +22649,7 @@ function fixNgLeaks() {
22606
22649
  };
22607
22650
  }
22608
22651
 
22609
- window.coreVersion = '22.1.1-rc.';
22652
+ window.coreVersion = '22.2.2';
22610
22653
 
22611
22654
  /**
22612
22655
  * @license
@@ -22620,5 +22663,5 @@ window.coreVersion = '22.1.1-rc.';
22620
22663
  * Generated bundle index. Do not edit.
22621
22664
  */
22622
22665
 
22623
- 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 };
22666
+ 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 };
22624
22667
  //# sourceMappingURL=datorama-core.js.map