@datorama/core 22.9.9-rc → 22.9.9-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 (49) hide show
  1. package/bundle.scss +6 -6
  2. package/bundles/datorama-core.umd.js +137 -81
  3. package/bundles/datorama-core.umd.js.map +1 -1
  4. package/bundles/datorama-core.umd.min.js +38 -38
  5. package/bundles/datorama-core.umd.min.js.map +1 -1
  6. package/datorama-core.d.ts +1 -0
  7. package/datorama-core.metadata.json +1 -1
  8. package/esm2015/datorama-core.js +2 -1
  9. package/esm2015/lib/breadcrumbs/breadcrumbs.component.js +4 -2
  10. package/esm2015/lib/grid-v2/grid/grid-v2.types.js +9 -1
  11. package/esm2015/lib/grid-v2/grid-column-cell-components/grid-status-cell/grid-status-cell.component.js +19 -12
  12. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +30 -13
  13. package/esm2015/lib/grid-v2/grid-settings.js +2 -2
  14. package/esm2015/lib/grid-v2/grid-store/grid.service.js +3 -2
  15. package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +7 -1
  16. package/esm2015/lib/loaders/page-loader/page-loader.component.js +7 -2
  17. package/esm2015/lib/rich-text/rich-text.directive.js +20 -38
  18. package/esm2015/lib/rich-text/rich-text.service.js +50 -0
  19. package/esm2015/lib/select/select.component.js +5 -10
  20. package/esm2015/lib/select/trigger-single/trigger-single.component.js +2 -7
  21. package/esm2015/lib/version.js +2 -2
  22. package/esm5/datorama-core.js +2 -1
  23. package/esm5/lib/breadcrumbs/breadcrumbs.component.js +4 -2
  24. package/esm5/lib/grid-v2/grid/grid-v2.types.js +9 -1
  25. package/esm5/lib/grid-v2/grid-column-cell-components/grid-status-cell/grid-status-cell.component.js +20 -12
  26. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +29 -15
  27. package/esm5/lib/grid-v2/grid-settings.js +2 -2
  28. package/esm5/lib/grid-v2/grid-store/grid.service.js +3 -2
  29. package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +13 -1
  30. package/esm5/lib/loaders/page-loader/page-loader.component.js +7 -2
  31. package/esm5/lib/rich-text/rich-text.directive.js +21 -39
  32. package/esm5/lib/rich-text/rich-text.service.js +51 -0
  33. package/esm5/lib/select/select.component.js +5 -10
  34. package/esm5/lib/select/trigger-single/trigger-single.component.js +2 -7
  35. package/esm5/lib/version.js +2 -2
  36. package/fesm2015/datorama-core.js +129 -79
  37. package/fesm2015/datorama-core.js.map +1 -1
  38. package/fesm5/datorama-core.js +137 -82
  39. package/fesm5/datorama-core.js.map +1 -1
  40. package/lib/grid-v2/grid/grid-v2.types.d.ts +12 -3
  41. package/lib/grid-v2/grid-column-cell-components/grid-status-cell/grid-status-cell.component.d.ts +3 -5
  42. package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +1 -0
  43. package/lib/grid-v2/grid-settings.d.ts +2 -2
  44. package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +2 -0
  45. package/lib/loaders/page-loader/page-loader.component.d.ts +1 -0
  46. package/lib/rich-text/rich-text.directive.d.ts +4 -6
  47. package/lib/rich-text/rich-text.service.d.ts +10 -0
  48. package/lib/select/trigger-single/trigger-single.component.d.ts +1 -2
  49. package/package.json +2 -2
@@ -7604,9 +7604,8 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7604
7604
  writeValue(activeOptions) {
7605
7605
  this._model = activeOptions ? coerceArray$1(activeOptions) : [];
7606
7606
  if (this.options) {
7607
- const overTheLimit = this.limitSelectedTo && this.isMulti && this._model.length >= this.limitSelectedTo;
7608
7607
  this.markAsActive(this._model, { deselectAll: true });
7609
- overTheLimit && this.updateDisabledState();
7608
+ this.limitSelectedTo && this.updateDisabledState();
7610
7609
  }
7611
7610
  /** For later updates */
7612
7611
  this.cdr.markForCheck();
@@ -7711,7 +7710,6 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7711
7710
  this.onChange(this._model);
7712
7711
  }
7713
7712
  removeOption(option) {
7714
- const updateDisabled = this.limitSelectedTo && this._model.length === this.limitSelectedTo;
7715
7713
  this._model = this._model.filter(current => current[this.idKey] !== option[this.idKey]);
7716
7714
  const optionToRemove = this.options.find(datoOption => datoOption.option && datoOption.option[this.idKey] === option[this.idKey]);
7717
7715
  /**
@@ -7721,7 +7719,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7721
7719
  if (optionToRemove) {
7722
7720
  optionToRemove.active = false;
7723
7721
  }
7724
- updateDisabled && this.updateDisabledState();
7722
+ this.limitSelectedTo && this.updateDisabledState();
7725
7723
  this.onChange(this._model);
7726
7724
  this.cdr.markForCheck();
7727
7725
  this.asyncUpdateDropdownPosition();
@@ -7995,9 +7993,6 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7995
7993
  if (!datoOption) {
7996
7994
  return;
7997
7995
  }
7998
- const modelLength = this._model.length;
7999
- const updateDisabled = this.limitSelectedTo &&
8000
- (modelLength === this.limitSelectedTo || (modelLength === this.limitSelectedTo - 1 && !datoOption.active));
8001
7996
  datoOption.active = !datoOption.active;
8002
7997
  const rawOption = datoOption.option;
8003
7998
  if (datoOption.active) {
@@ -8006,7 +8001,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
8006
8001
  else {
8007
8002
  this._model = this._model.filter(current => current[this.idKey] !== rawOption[this.idKey]);
8008
8003
  }
8009
- updateDisabled && this.updateDisabledState();
8004
+ this.limitSelectedTo && this.updateDisabledState();
8010
8005
  this.onChange(this._model);
8011
8006
  this.cdr.markForCheck();
8012
8007
  this.asyncUpdateDropdownPosition();
@@ -8233,7 +8228,7 @@ __decorate([
8233
8228
  DatoSelectComponent = __decorate([
8234
8229
  Component({
8235
8230
  selector: 'dato-select',
8236
- template: "<section class=\"dato-select__trigger\" [class.dato-select--naked]=\"_naked\" [class.dato-select--disabled]=\"_disabled\">\n\n <div class=\"dato-select__single\" *ngIf=\"isSingle\" [ngClass]=\"_dropdownClass\">\n <dato-input [class.force-hide]=\"(!open && isCombo) || !isCombo\" [placeholder]=\"searchPlaceholder | translate\"\n (keyup)=\"keyup($event)\" [isFocused]=\"_focus\" [isLoading]=\"isLoading\" [formControl]=\"searchControl\" type=\"search\">\n </dato-input>\n\n <dato-trigger-single [isLoading]=\"isLoading\" [loadingTemplate]=\"loadingTemplate\" [active]=\"active\" datoErrorValidationBorderAnchor tabindex=\"0\" [labelKey]=\"labelKey\"\n [context]=\"_model[0]\" [class.force-hide]=\"open && isCombo\" [placeholder]=\"placeholder | translate\"\n class=\"ontop-overlay\" (keydown)=\"preventBodyScroll($event)\" (keyup)=\"keyup($event)\" (click)=\"openDropdown()\">\n </dato-trigger-single>\n </div>\n\n <dato-trigger-multi [loadingTemplate]=\"loadingTemplate\" [options]=\"_model\" datoErrorValidationBorderAnchor [control]=\"searchControl\"\n [placeholder]=\"placeholder | translate\" [labelKey]=\"labelKey\" [idKey]=\"idKey\" (keyup)=\"keyup($event)\"\n [isLoading]=\"isLoading\" [keepFocus]=\"keepFocus\" [limitTo]=\"limitTo\" [clickOutside]=\"_clickOutside\" [isSortable]=\"isSortable\"\n [selectAllChipTxt]=\"selectAllChipTxt\"\n [showSelectAllChip]=\"selectAllChipTxt && showSelectAllChip\"\n (unselectAll)=\"checkAll(false)\"\n (removeOption)=\"removeOption($event)\" (reorderOptions)=\"reorderOptions($event)\" *ngIf=\"isMulti\"\n (click)=\"openDropdown($event)\"></dato-trigger-multi>\n\n</section>\n\n<ng-template #dropdown>\n <section class=\"dato-select__dropdown-container\" tabindex=\"0\" (keyup)=\"keyup($event)\">\n\n <!-- HEADER -->\n\n <header class=\"dato-select__header dato-select__option dato-select__option--simple\" data-is-floating\n *ngIf=\"isMulti && allowSelectAll\" [class.force-hide]=\"_showEmptyResults\" [class.ml-10]=\"containsGroups\">\n <dato-checkbox [checked]=\"_isAllChecked\" (check)=\"checkAll($event)\"\n [indeterminatelyChecked]=\"_isIndeterminatelyChecked\">\n {{'core.select-all' | translate}}<span class=\"primary-300-color note-italic ml-5\">{{_count}}</span>\n </dato-checkbox>\n </header>\n\n <!-- END HEADER -->\n\n <!-- DROPDOWN -->\n\n <div class=\"dato-select__dropdown\">\n\n <ng-content></ng-content>\n\n <dato-select-empty [show]=\"_showEmptyResults\">{{_noItemsLabel}}</dato-select-empty>\n <div class=\"dato-select__option dato-select-infinite-spinner\" data-is-floating *ngIf=\"infiniteScrollLoading\">\n <span class=\"dato-input__spinner\"></span>\n </div>\n\n </div>\n\n <!-- END DROPDOWN -->\n\n\n <!-- FOOTER -->\n\n <footer class=\"dato-select__footer d-flex\" [class.with-actions]=\"_withActions\">\n\n <ng-content select=\"[datoSelectFooter]\"></ng-content>\n\n <ng-container *ngIf=\"_withActions\">\n <dato-link class=\"mr-20\" datoType=\"secondary\" (click)=\"close()\">Cancel</dato-link>\n <dato-button datoSize=\"sm\" (click)=\"save.emit(); close();\">Save</dato-button>\n </ng-container>\n\n </footer>\n\n <!-- END FOOTER -->\n\n </section>\n\n</ng-template>\n",
8231
+ template: "<section class=\"dato-select__trigger\" [class.dato-select--naked]=\"_naked\" [class.dato-select--disabled]=\"_disabled\">\n\n <div class=\"dato-select__single\" *ngIf=\"isSingle\" [ngClass]=\"_dropdownClass\">\n <dato-input [class.force-hide]=\"(!open && isCombo) || !isCombo\" [placeholder]=\"searchPlaceholder | translate\"\n (keyup)=\"keyup($event)\" [isFocused]=\"_focus\" [isLoading]=\"isLoading\" [formControl]=\"searchControl\" type=\"search\">\n </dato-input>\n\n <dato-trigger-single [loadingTemplate]=\"loadingTemplate\" [active]=\"active\" datoErrorValidationBorderAnchor tabindex=\"0\" [labelKey]=\"labelKey\"\n [context]=\"_model[0]\" [class.force-hide]=\"open && isCombo\" [placeholder]=\"placeholder | translate\"\n class=\"ontop-overlay\" (keydown)=\"preventBodyScroll($event)\" (keyup)=\"keyup($event)\" (click)=\"openDropdown()\">\n </dato-trigger-single>\n </div>\n\n <dato-trigger-multi [loadingTemplate]=\"loadingTemplate\" [options]=\"_model\" datoErrorValidationBorderAnchor [control]=\"searchControl\"\n [placeholder]=\"placeholder | translate\" [labelKey]=\"labelKey\" [idKey]=\"idKey\" (keyup)=\"keyup($event)\"\n [isLoading]=\"isLoading\" [keepFocus]=\"keepFocus\" [limitTo]=\"limitTo\" [clickOutside]=\"_clickOutside\" [isSortable]=\"isSortable\"\n [selectAllChipTxt]=\"selectAllChipTxt\"\n [showSelectAllChip]=\"selectAllChipTxt && showSelectAllChip\"\n (unselectAll)=\"checkAll(false)\"\n (removeOption)=\"removeOption($event)\" (reorderOptions)=\"reorderOptions($event)\" *ngIf=\"isMulti\"\n (click)=\"openDropdown($event)\"></dato-trigger-multi>\n\n</section>\n\n<ng-template #dropdown>\n <section class=\"dato-select__dropdown-container\" tabindex=\"0\" (keyup)=\"keyup($event)\">\n\n <!-- HEADER -->\n\n <header class=\"dato-select__header dato-select__option dato-select__option--simple\" data-is-floating\n *ngIf=\"isMulti && allowSelectAll\" [class.force-hide]=\"_showEmptyResults\" [class.ml-10]=\"containsGroups\">\n <dato-checkbox [checked]=\"_isAllChecked\" (check)=\"checkAll($event)\"\n [indeterminatelyChecked]=\"_isIndeterminatelyChecked\">\n {{'core.select-all' | translate}}<span class=\"primary-300-color note-italic ml-5\">{{_count}}</span>\n </dato-checkbox>\n </header>\n\n <!-- END HEADER -->\n\n <!-- DROPDOWN -->\n\n <div class=\"dato-select__dropdown\">\n\n <ng-content></ng-content>\n\n <dato-select-empty [show]=\"_showEmptyResults\">{{_noItemsLabel}}</dato-select-empty>\n <div class=\"dato-select__option dato-select-infinite-spinner\" data-is-floating *ngIf=\"infiniteScrollLoading\">\n <span class=\"dato-input__spinner\"></span>\n </div>\n\n </div>\n\n <!-- END DROPDOWN -->\n\n\n <!-- FOOTER -->\n\n <footer class=\"dato-select__footer d-flex\" [class.with-actions]=\"_withActions\">\n\n <ng-content select=\"[datoSelectFooter]\"></ng-content>\n\n <ng-container *ngIf=\"_withActions\">\n <dato-link class=\"mr-20\" datoType=\"secondary\" (click)=\"close()\">Cancel</dato-link>\n <dato-button datoSize=\"sm\" (click)=\"save.emit(); close();\">Save</dato-button>\n </ng-container>\n\n </footer>\n\n <!-- END FOOTER -->\n\n </section>\n\n</ng-template>\n",
8237
8232
  preserveWhitespaces: false,
8238
8233
  providers: [valueAccessor$3, DatoOverlay],
8239
8234
  encapsulation: ViewEncapsulation.None,
@@ -8259,7 +8254,6 @@ DatoSelectComponent = __decorate([
8259
8254
  let DatoTriggerSingle = class DatoTriggerSingle {
8260
8255
  constructor(cdr) {
8261
8256
  this.cdr = cdr;
8262
- this.isLoading = false;
8263
8257
  this._placeholder = '';
8264
8258
  }
8265
8259
  set placeholder(value) {
@@ -8283,10 +8277,6 @@ let DatoTriggerSingle = class DatoTriggerSingle {
8283
8277
  DatoTriggerSingle.ctorParameters = () => [
8284
8278
  { type: ChangeDetectorRef }
8285
8279
  ];
8286
- __decorate([
8287
- Input(),
8288
- __metadata("design:type", Object)
8289
- ], DatoTriggerSingle.prototype, "isLoading", void 0);
8290
8280
  __decorate([
8291
8281
  Input(),
8292
8282
  __metadata("design:type", TemplateRef)
@@ -8312,7 +8302,7 @@ __decorate([
8312
8302
  DatoTriggerSingle = __decorate([
8313
8303
  Component({
8314
8304
  selector: 'dato-trigger-single',
8315
- template: "<ng-template *ngIf=\"isLoading\" [ngTemplateOutlet]=\"loadingTemplate\"></ng-template>\n<ng-container\n *ngIf=\"active && !hidePlaceholder\"\n [ngTemplateOutlet]=\"active.tpl\"\n [ngTemplateOutletContext]=\"_model\">\n</ng-container>\n<ng-container *ngIf=\"!active\">{{getLabel | translate}}</ng-container>\n<span class=\"dato-select__placeholder\" *ngIf=\"hidePlaceholder\">{{_placeholder}}</span>\n<dato-icon datoIcon=\"arrow-down\" datoSize=\"sm\" class=\"dato-select__single__arrow\"></dato-icon>\n",
8305
+ template: "<ng-template *ngIf=\"loadingTemplate\" [ngTemplateOutlet]=\"loadingTemplate\"></ng-template>\n<ng-container\n *ngIf=\"active && !hidePlaceholder\"\n [ngTemplateOutlet]=\"active.tpl\"\n [ngTemplateOutletContext]=\"_model\">\n</ng-container>\n<ng-container *ngIf=\"!active\">{{getLabel | translate}}</ng-container>\n<span class=\"dato-select__placeholder\" *ngIf=\"hidePlaceholder\">{{_placeholder}}</span>\n<dato-icon datoIcon=\"arrow-down\" datoSize=\"sm\" class=\"dato-select__single__arrow\"></dato-icon>\n",
8316
8306
  changeDetection: ChangeDetectionStrategy.OnPush,
8317
8307
  styles: [":host{display:block;position:relative;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host dato-icon{position:absolute;top:50%;transform:translateY(-50%);right:10px}"]
8318
8308
  }),
@@ -10523,7 +10513,7 @@ function toolbarActionToContextAction(params) {
10523
10513
  return contextActions;
10524
10514
  }
10525
10515
 
10526
- const DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_API');
10516
+ const DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_AP');
10527
10517
 
10528
10518
  const defaultEditableColumnRenderer = params => params && params.value ? `<div class="value-wrapper ellipsis">${params.value}</div>` : null;
10529
10519
  const editableCellRendererWithSearchHighlight = (params, searchTerm) => {
@@ -10560,6 +10550,14 @@ var GridRowSelectionType;
10560
10550
  GridRowSelectionType["SINGLE"] = "single";
10561
10551
  GridRowSelectionType["MULTIPLE"] = "multiple";
10562
10552
  })(GridRowSelectionType || (GridRowSelectionType = {}));
10553
+ var GridStatusColumnTypes;
10554
+ (function (GridStatusColumnTypes) {
10555
+ GridStatusColumnTypes["SUCCESS"] = "SUCCESS";
10556
+ GridStatusColumnTypes["FAILURE"] = "FAILURE";
10557
+ GridStatusColumnTypes["IN_PROGRESS"] = "IN_PROGRESS";
10558
+ GridStatusColumnTypes["PENDING"] = "PENDING";
10559
+ GridStatusColumnTypes["WAITING"] = "WAITING";
10560
+ })(GridStatusColumnTypes || (GridStatusColumnTypes = {}));
10563
10561
 
10564
10562
  /**
10565
10563
  * @license
@@ -12879,7 +12877,8 @@ let GridService = class GridService {
12879
12877
  this.updateSettings({ gridAlignment, columnsSizes: null });
12880
12878
  }
12881
12879
  saveSettingsToServer(settings) {
12882
- this.storageAPI.set(this.gridName, settings);
12880
+ const isGlobal = this.gridQuery.getGridOptions().isGlobalSettings;
12881
+ this.storageAPI.set(this.gridName, settings, isGlobal);
12883
12882
  }
12884
12883
  /**
12885
12884
  * @internal used to log grid events to the platform's logging service
@@ -13772,7 +13771,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13772
13771
  }
13773
13772
  ngOnDestroy() {
13774
13773
  this.contentInit.complete();
13775
- this.tooltip && this.clearTooltip();
13774
+ this.clearTooltip();
13776
13775
  this.rowHoverComponent && this.rowHoverComponent.destroy();
13777
13776
  this.rowHoverComponent = null;
13778
13777
  }
@@ -13788,7 +13787,10 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13788
13787
  .pipe(switchMap(() => {
13789
13788
  this.gridOptions = this.normalizeOptions();
13790
13789
  agGrid.gridOptions = this.gridOptions;
13791
- const settingsLoader = this.gridOptions.saveSettings === false ? of(null) : this.storageAPI.get(this.gridOptions.gridName);
13790
+ const isGlobal = this.gridOptions.isGlobalSettings;
13791
+ const settingsLoader = this.gridOptions.saveSettings === false
13792
+ ? of(null)
13793
+ : this.storageAPI.get(this.gridOptions.gridName, isGlobal);
13792
13794
  return combineLatest([agGrid.gridReady, settingsLoader]);
13793
13795
  }), untilDestroyed(this))
13794
13796
  .subscribe(([{ api, columnApi }, savedSettings = {}]) => {
@@ -13973,37 +13975,51 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13973
13975
  });
13974
13976
  this.addOnHoverElement();
13975
13977
  }
13976
- agGrid.cellMouseOver
13977
- .pipe(filter$1(({ node, column }) => lastHoveredCell !== `${node.id}-${column.getColId()}`), untilDestroyed(this))
13978
- .subscribe((event) => {
13979
- lastHoveredCell = `${event.node.id}-${event.column.getColId()}`;
13978
+ agGrid.cellMouseOver.pipe(untilDestroyed(this)).subscribe((event) => {
13979
+ const { node, column } = event;
13980
+ if (lastHoveredCell === `${node.id}-${column.getColId()}`) {
13981
+ clearTimeout(this.cellMouseOutTimer);
13982
+ return;
13983
+ }
13984
+ lastHoveredCell = `${node.id}-${column.getColId()}`;
13980
13985
  this.showTooltip(event);
13981
13986
  const row = event.event.target.parentElement;
13982
- if (onHoverEnabled && (event.node.group === false || isNil(event.node.group)) && this.lastHoveredRow !== row) {
13987
+ if (onHoverEnabled && (node.group === false || isNil(node.group)) && this.lastHoveredRow !== row) {
13983
13988
  const previousNode = this.lastHoveredRow;
13984
13989
  this.lastHoveredRow = row;
13985
13990
  this.toggleRowHoverClass([previousNode, this.lastHoveredRow]);
13986
13991
  this.setOnHoverState(true, event);
13987
13992
  }
13988
13993
  });
13989
- const onTooltipOut = merge$1(fromEvent(bodyViewport, 'scroll'), fromEvent(this.agGridEl, 'mouseleave'), agGrid.cellMouseOut);
13990
- onTooltipOut
13994
+ const onTooltipOut = merge$1(fromEvent(bodyViewport, 'scroll'), fromEvent(this.agGridEl, 'mouseleave'));
13995
+ onTooltipOut.pipe(untilDestroyed(this)).subscribe(() => {
13996
+ lastHoveredCell = null;
13997
+ this.clearTooltip();
13998
+ });
13999
+ agGrid.cellMouseOut
13991
14000
  .pipe(filter$1(() => !isNil(this.tooltip)), untilDestroyed(this))
13992
14001
  .subscribe(() => {
13993
- this.clearTooltip();
14002
+ this.cellMouseOutTimer = window.setTimeout(() => this.clearTooltip());
13994
14003
  });
13995
14004
  }
13996
14005
  /**
13997
14006
  * Dispose the tooltip
13998
14007
  */
13999
14008
  clearTooltip() {
14000
- this.tooltip.dispose();
14009
+ this.tooltip && this.tooltip.dispose();
14001
14010
  this.tooltip = null;
14002
14011
  }
14003
14012
  showTooltip(event) {
14004
- const cell = event.event.target;
14013
+ let cell = event.event.target;
14014
+ if (cell.tagName === 'SPAN' && cell.scrollWidth === 0) {
14015
+ cell = cell.parentElement;
14016
+ }
14017
+ if (event.colDef.editable) {
14018
+ cell = cell.querySelector('.value-wrapper') || cell;
14019
+ }
14005
14020
  const textOverflow = cell.offsetWidth < cell.scrollWidth;
14006
14021
  if (textOverflow) {
14022
+ clearTimeout(this.cellMouseOutTimer);
14007
14023
  const params = { cell, value: cell.innerText };
14008
14024
  isNil(this.tooltip) ? this.createAndShowTooltip(params) : this.updateTooltip(params);
14009
14025
  }
@@ -14913,6 +14929,12 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
14913
14929
  this.registerGroupListeners();
14914
14930
  this.subscribeRowsSelectionData();
14915
14931
  }
14932
+ getCellValueChangeEvent() {
14933
+ return this.gridController.gridQuery.waitForGrid(() => this.gridQuery.gridRef.cellValueChanged.pipe(debounceTime(100), untilDestroyed(this)));
14934
+ }
14935
+ getRowDataUpdatedEvent() {
14936
+ return this.gridController.gridQuery.waitForGrid(() => this.gridQuery.gridRef.rowDataUpdated.pipe(debounceTime(100), untilDestroyed(this)));
14937
+ }
14916
14938
  onActionClick(action) {
14917
14939
  if (isFunction(action.onClick)) {
14918
14940
  const selectedRowsCount = this.gridController.gridQuery.getSelectedRowsCount();
@@ -17283,6 +17305,7 @@ let DatoPageLoaderComponent = class DatoPageLoaderComponent {
17283
17305
  constructor() {
17284
17306
  this.msg = '';
17285
17307
  this.salesforce = false;
17308
+ this.size = 'medium';
17286
17309
  this.circleIds = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'];
17287
17310
  }
17288
17311
  };
@@ -17294,10 +17317,14 @@ __decorate([
17294
17317
  Input(),
17295
17318
  __metadata("design:type", Object)
17296
17319
  ], DatoPageLoaderComponent.prototype, "salesforce", void 0);
17320
+ __decorate([
17321
+ Input(),
17322
+ __metadata("design:type", String)
17323
+ ], DatoPageLoaderComponent.prototype, "size", void 0);
17297
17324
  DatoPageLoaderComponent = __decorate([
17298
17325
  Component({
17299
17326
  selector: 'dato-page-loader',
17300
- template: "<div class=\"d-flex-column align-center\">\n <ng-container *ngIf=\"salesforce; else datoramaPageLoader\">\n <div class=\"slds-spinner_container\">\n <div role=\"status\" class=\"slds-spinner slds-spinner_medium slds-spinner_brand\">\n <div class=\"slds-spinner__dot-a\"></div>\n <div class=\"slds-spinner__dot-b\"></div>\n </div>\n </div>\n </ng-container>\n <ng-template #datoramaPageLoader>\n <div class=\"animation-container d-flex align-center d-flex-wrap\">\n <div class=\"circle d-flex align-center\" *ngFor=\"let id of circleIds\" [ngClass]=\"'circle-' + id\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\">\n <circle cx=\"6\" cy=\"6\" r=\"5\" />\n </svg>\n </div>\n </div>\n </ng-template>\n <span class=\"loading-message simple-bold\">{{msg | translate}}</span>\n</div>",
17327
+ template: "<div class=\"d-flex-column align-center\">\n <ng-container *ngIf=\"salesforce; else datoramaPageLoader\">\n <div class=\"slds-spinner_container\">\n <div role=\"status\" class=\"slds-spinner slds-spinner_brand\" [ngClass]=\"'slds-spinner_' + size\">\n <div class=\"slds-spinner__dot-a\"></div>\n <div class=\"slds-spinner__dot-b\"></div>\n </div>\n </div>\n </ng-container>\n <ng-template #datoramaPageLoader>\n <div class=\"animation-container d-flex align-center d-flex-wrap\">\n <div class=\"circle d-flex align-center\" *ngFor=\"let id of circleIds\" [ngClass]=\"'circle-' + id\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\">\n <circle cx=\"6\" cy=\"6\" r=\"5\" />\n </svg>\n </div>\n </div>\n </ng-template>\n <span class=\"loading-message simple-bold\">{{msg | translate}}</span>\n</div>\n",
17301
17328
  changeDetection: ChangeDetectionStrategy.OnPush
17302
17329
  })
17303
17330
  ], DatoPageLoaderComponent);
@@ -18185,7 +18212,13 @@ DatoGridV2ToolbarMoreMenuComponent = __decorate([
18185
18212
  let DatoGridStatusCellComponent = class DatoGridStatusCellComponent {
18186
18213
  constructor(cdr) {
18187
18214
  this.cdr = cdr;
18188
- this.DEFAULT_MIN_WIDTH = 100;
18215
+ this.defaultConfigByStatus = {
18216
+ [GridStatusColumnTypes.SUCCESS]: { icon: 'success-line', iconCssClass: 'green-400-color' },
18217
+ [GridStatusColumnTypes.FAILURE]: { icon: 'failed-line', iconCssClass: 'red-400-color' },
18218
+ [GridStatusColumnTypes.PENDING]: { icon: 'time', iconCssClass: 'yellow-400-color' },
18219
+ [GridStatusColumnTypes.WAITING]: { icon: 'info-line', iconCssClass: 'orange-400-color' },
18220
+ [GridStatusColumnTypes.IN_PROGRESS]: { showSpinner: true }
18221
+ };
18189
18222
  }
18190
18223
  agInit(params) {
18191
18224
  const { value, valueFormatted, node } = params;
@@ -18200,15 +18233,14 @@ let DatoGridStatusCellComponent = class DatoGridStatusCellComponent {
18200
18233
  const mainCustomCellConfig = customCellConfig || {};
18201
18234
  const valueCustomCellConfig = valueToCustomCellConfig ? valueToCustomCellConfig[params.value] || {} : {};
18202
18235
  const config = Object.assign(Object.assign({}, mainCustomCellConfig), valueCustomCellConfig);
18203
- const { color, icon, cssClass, iconCssClass, minWidth, showSpinner, getAdditionalText, getIsVisible } = config;
18236
+ const { textCssClass, icon, iconCssClass, showSpinner, getAdditionalText, additionalTextCssClass, getIsVisible, status } = config;
18237
+ const defaultConfig = this.defaultConfigByStatus[status] || {};
18204
18238
  this.isVisible = !getIsVisible || getIsVisible(params.data);
18205
- this.color = color || 'primary';
18206
- this.backgroundClass = `${this.color}-${this.color === 'accent' ? '100' : '200'}-background-color`;
18207
- this.icon = icon;
18208
- this.minWidth = minWidth || this.DEFAULT_MIN_WIDTH;
18209
- this.cssClass = cssClass || '';
18210
- this.iconCssClass = iconCssClass || '';
18211
- this.showSpinner = showSpinner;
18239
+ this.icon = icon || defaultConfig.icon;
18240
+ this.iconCssClass = iconCssClass || defaultConfig.iconCssClass || '';
18241
+ this.textCssClass = textCssClass || '';
18242
+ this.additionalTextCssClass = additionalTextCssClass || '';
18243
+ this.showSpinner = !!showSpinner || !!defaultConfig.showSpinner;
18212
18244
  this.additionalText = getAdditionalText ? getAdditionalText(params.data) : null;
18213
18245
  }
18214
18246
  refresh(params) {
@@ -18223,8 +18255,9 @@ DatoGridStatusCellComponent.ctorParameters = () => [
18223
18255
  DatoGridStatusCellComponent = __decorate([
18224
18256
  Component({
18225
18257
  selector: 'dato-grid-status-cell',
18226
- template: "<div *ngIf=\"!isGroup && isVisible\" class=\"height-100 d-flex items-center\">\n <div *ngIf=\"status\" class=\"d-flex justify-center items-center px-15 py-5 {{backgroundClass}} {{cssClass}}\" [style.min-width.px]=\"minWidth\">\n <dato-icon *ngIf=\"icon\" class=\"mr-5 {{iconCssClass}}\" [icon]=\"icon\" datoSize=\"sm\"></dato-icon>\n <div class=\"dato-note {{color}}-800-color\" [class.ellipsis]=\"!additionalText\"\n [datoTooltipV2]=\"status\" [showOnlyOnTextOverflow]=\"true\" [tooltipCheckInView]=\"false\" [datoTooltipDisabled]=\"!!additionalText\">\n {{status}}\n </div>\n <div *ngIf=\"additionalText\" class=\"dato-note {{color}}-800-color ml-3 ellipsis\"\n [datoTooltipV2]=\"status + ' ' + additionalText\" [showOnlyOnTextOverflow]=\"true\" [tooltipCheckInView]=\"false\">\n {{additionalText}}\n </div>\n <span *ngIf=\"showSpinner\" class=\"dato-spinner-loader ml-5\"></span>\n </div>\n</div>\n<span *ngIf=\"isGroup\">{{status}}</span>\n",
18227
- changeDetection: ChangeDetectionStrategy.OnPush
18258
+ template: "<div *ngIf=\"!isGroup && isVisible\" class=\"height-100 d-flex items-center\">\n <dato-icon *ngIf=\"icon\" class=\"mr-6 {{iconCssClass}}\" [icon]=\"icon\" datoSize=\"sm\"></dato-icon>\n <dato-page-loader *ngIf=\"showSpinner\" [salesforce]=\"true\" size=\"x-small\" class=\"mr-10 mt-15\"></dato-page-loader>\n <div class=\"dato-simple status line-height-18 {{textCssClass}}\" [class.ellipsis]=\"!additionalText\"\n [datoTooltipV2]=\"status\" [showOnlyOnTextOverflow]=\"true\" [tooltipCheckInView]=\"false\">\n {{status}}\n </div>\n <div *ngIf=\"additionalText\" class=\"dato-simple ml-3 ellipsis line-height-18 {{additionalTextCssClass}}\"\n [datoTooltipV2]=\"status + ' ' + additionalText\" [showOnlyOnTextOverflow]=\"true\" [tooltipCheckInView]=\"false\">\n {{additionalText}}\n </div>\n</div>\n<span *ngIf=\"isGroup\">{{status}}</span>\n",
18259
+ changeDetection: ChangeDetectionStrategy.OnPush,
18260
+ styles: [".line-height-18{line-height:18px}"]
18228
18261
  }),
18229
18262
  __metadata("design:paramtypes", [ChangeDetectorRef])
18230
18263
  ], DatoGridStatusCellComponent);
@@ -18980,6 +19013,39 @@ DatoEditableHeaderModule = __decorate([
18980
19013
  * found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
18981
19014
  */
18982
19015
 
19016
+ let RichTextService = class RichTextService {
19017
+ constructor(http, config) {
19018
+ this.http = http;
19019
+ this.config = config;
19020
+ }
19021
+ getLib(appendScriptFunc, appendStyleFunc) {
19022
+ if (!this.richTextScript$) {
19023
+ this.initLib(appendScriptFunc, appendStyleFunc);
19024
+ }
19025
+ return this.richTextScript$;
19026
+ }
19027
+ initLib(appendScriptFunc, appendStyleFunc) {
19028
+ this.richTextScript$ = combineLatest([
19029
+ this.http
19030
+ .get(`${this.config.paths.richText}/index.js`, { responseType: 'text' })
19031
+ .pipe(tap(lib => appendScriptFunc(lib, 'rich-text-editor'))),
19032
+ this.http
19033
+ .get(`${this.config.paths.richText}/plugins/autocomplete/plugin.css`, { responseType: 'text' })
19034
+ .pipe(tap(style => appendStyleFunc(style, 'tinymce-autocomplete')))
19035
+ ]).pipe(shareReplay(1));
19036
+ }
19037
+ };
19038
+ RichTextService.ctorParameters = () => [
19039
+ { type: HttpClient },
19040
+ { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
19041
+ ];
19042
+ RichTextService.ɵprov = ɵɵdefineInjectable({ factory: function RichTextService_Factory() { return new RichTextService(ɵɵinject(HttpClient), ɵɵinject(DATO_CORE_CONFIG)); }, token: RichTextService, providedIn: "root" });
19043
+ RichTextService = __decorate([
19044
+ Injectable({ providedIn: 'root' }),
19045
+ __param(1, Inject(DATO_CORE_CONFIG)),
19046
+ __metadata("design:paramtypes", [HttpClient, Object])
19047
+ ], RichTextService);
19048
+
18983
19049
  /**
18984
19050
  * @license
18985
19051
  * Copyright Datorama. All Rights Reserved.
@@ -18993,20 +19059,20 @@ const getTinymce = () => {
18993
19059
  };
18994
19060
  const ɵ0$3 = getTinymce;
18995
19061
  let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirective extends BaseCustomControl {
18996
- constructor(ngZone, http, host, config) {
19062
+ constructor(ngZone, richTextService, config, host) {
18997
19063
  super();
18998
19064
  this.ngZone = ngZone;
18999
- this.http = http;
19000
- this.host = host;
19065
+ this.richTextService = richTextService;
19001
19066
  this.config = config;
19067
+ this.host = host;
19002
19068
  this.autocompleteOptions = {};
19003
19069
  this.forcePlainTextPasting = false;
19004
19070
  this.format = 'html';
19005
19071
  this.isOneLine = false;
19006
19072
  this.initialValue = '';
19007
- this.defaultPlugins = 'link fullscreen textcolor colorpicker image lists table textpattern autocomplete';
19073
+ this.defaultPlugins = 'link fullscreen image lists table autocomplete';
19008
19074
  this.defaultToolbar = [
19009
- 'fontselect fontsizeselect forecolor backcolor bold italic underline link',
19075
+ 'fontfamily fontsize forecolor backcolor bold italic underline link',
19010
19076
  'alignleft aligncenter alignright alignjustify outdent indent | table numlist bullist | image fullscreen'
19011
19077
  ];
19012
19078
  }
@@ -19025,28 +19091,11 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
19025
19091
  base: this.config.paths.richText,
19026
19092
  query: ''
19027
19093
  };
19028
- /**
19029
- * We support only one instance in load time
19030
- */
19031
- if (window.tinymce) {
19094
+ this.richTextService
19095
+ .getLib(appendScript, appendStyle)
19096
+ .pipe(untilDestroyed(this))
19097
+ .subscribe(() => {
19032
19098
  this.init.call(this);
19033
- }
19034
- else {
19035
- this.loadLib().subscribe(lib => {
19036
- appendScript(lib, 'rich-text-editor');
19037
- this.init.call(this);
19038
- this.loadAutoCompleteStyle();
19039
- });
19040
- }
19041
- }
19042
- loadLib() {
19043
- return this.http.get(`${this.config.paths.richText}/index.js`, { responseType: 'text' });
19044
- }
19045
- loadAutoCompleteStyle() {
19046
- this.http
19047
- .get(`${this.config.paths.richText}/plugins/autocomplete/plugin.css`, { responseType: 'text' })
19048
- .subscribe(style => {
19049
- appendStyle(style, 'tinymce-autocomplete');
19050
19099
  });
19051
19100
  }
19052
19101
  initEditor(_, editor) {
@@ -19067,8 +19116,6 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
19067
19116
  target: this.host.nativeElement,
19068
19117
  width: this.width || 600,
19069
19118
  height: this.height || 300,
19070
- force_br_newlines: true,
19071
- force_p_newlines: false,
19072
19119
  resize: 'both',
19073
19120
  branding: false,
19074
19121
  inline: this.inline,
@@ -19076,10 +19123,12 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
19076
19123
  readonly: this.disabled,
19077
19124
  plugins: this.plugins || this.defaultPlugins,
19078
19125
  toolbar: isNil(this.toolbar) ? this.defaultToolbar : this.toolbar,
19079
- fontsize_formats: '8px 10px 12px 14px 18px 24px 36px',
19126
+ font_size_formats: '8px 10px 12px 14px 18px 24px 36px',
19080
19127
  min_width: 480,
19081
19128
  menubar: false,
19082
19129
  autocomplete: this.autocompleteOptions,
19130
+ suffix: '.min',
19131
+ skin: 'tinymce-5',
19083
19132
  setup: editor => {
19084
19133
  this.editor = editor;
19085
19134
  editor.on('init', (e) => {
@@ -19147,9 +19196,9 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
19147
19196
  };
19148
19197
  DatoRichTextDirective.ctorParameters = () => [
19149
19198
  { type: NgZone },
19150
- { type: HttpClient },
19151
- { type: ElementRef },
19152
- { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
19199
+ { type: RichTextService },
19200
+ { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] },
19201
+ { type: ElementRef }
19153
19202
  ];
19154
19203
  __decorate([
19155
19204
  Input(),
@@ -19215,10 +19264,9 @@ DatoRichTextDirective = DatoRichTextDirective_1 = __decorate([
19215
19264
  }
19216
19265
  ]
19217
19266
  }),
19218
- __param(3, Inject(DATO_CORE_CONFIG)),
19267
+ __param(2, Inject(DATO_CORE_CONFIG)),
19219
19268
  __metadata("design:paramtypes", [NgZone,
19220
- HttpClient,
19221
- ElementRef, Object])
19269
+ RichTextService, Object, ElementRef])
19222
19270
  ], DatoRichTextDirective);
19223
19271
 
19224
19272
  /**
@@ -21499,7 +21547,9 @@ let DatoBreadcrumbsComponent = class DatoBreadcrumbsComponent {
21499
21547
  this._breadcrumbs = [...start, ...dots, ...end];
21500
21548
  }
21501
21549
  initEditableHeader() {
21502
- this.headerControl.valueChanges.pipe(debounceTime(300), untilDestroyed(this)).subscribe((res) => {
21550
+ this.headerControl.valueChanges
21551
+ .pipe(debounceTime(300), untilDestroyed(this))
21552
+ .subscribe((res) => {
21503
21553
  this.updateEditableText.emit(res);
21504
21554
  this.cdr.detectChanges();
21505
21555
  });
@@ -22764,7 +22814,7 @@ function fixNgLeaks() {
22764
22814
  };
22765
22815
  }
22766
22816
 
22767
- window.coreVersion = '22.9.7';
22817
+ window.coreVersion = '22.10.7-rc.';
22768
22818
 
22769
22819
  /**
22770
22820
  * @license
@@ -22778,5 +22828,5 @@ window.coreVersion = '22.9.7';
22778
22828
  * Generated bundle index. Do not edit.
22779
22829
  */
22780
22830
 
22781
- 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 };
22831
+ 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, GridStatusColumnTypes, 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 };
22782
22832
  //# sourceMappingURL=datorama-core.js.map