@datorama/core 22.9.2-rc.4 → 22.9.3

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 (44) hide show
  1. package/bundles/datorama-core.umd.js +77 -84
  2. package/bundles/datorama-core.umd.js.map +1 -1
  3. package/bundles/datorama-core.umd.min.js +14 -14
  4. package/bundles/datorama-core.umd.min.js.map +1 -1
  5. package/datorama-core.d.ts +0 -1
  6. package/datorama-core.metadata.json +1 -1
  7. package/esm2015/datorama-core.js +1 -2
  8. package/esm2015/lib/breadcrumbs/breadcrumbs.component.js +2 -4
  9. package/esm2015/lib/grid-v2/grid/grid-v2.types.js +1 -1
  10. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +2 -5
  11. package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +22 -6
  12. package/esm2015/lib/grid-v2/grid-settings.js +2 -2
  13. package/esm2015/lib/grid-v2/grid-store/grid.service.js +2 -3
  14. package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +1 -7
  15. package/esm2015/lib/icon/icon.types.js +1 -1
  16. package/esm2015/lib/rich-text/rich-text.directive.js +38 -20
  17. package/esm2015/lib/select/select.component.js +10 -5
  18. package/esm2015/lib/version.js +2 -2
  19. package/esm5/datorama-core.js +1 -2
  20. package/esm5/lib/breadcrumbs/breadcrumbs.component.js +2 -4
  21. package/esm5/lib/grid-v2/grid/grid-v2.types.js +1 -1
  22. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +2 -5
  23. package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +29 -6
  24. package/esm5/lib/grid-v2/grid-settings.js +2 -2
  25. package/esm5/lib/grid-v2/grid-store/grid.service.js +2 -3
  26. package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +1 -13
  27. package/esm5/lib/icon/icon.types.js +1 -1
  28. package/esm5/lib/rich-text/rich-text.directive.js +39 -21
  29. package/esm5/lib/select/select.component.js +10 -5
  30. package/esm5/lib/version.js +2 -2
  31. package/fesm2015/datorama-core.js +70 -76
  32. package/fesm2015/datorama-core.js.map +1 -1
  33. package/fesm5/datorama-core.js +78 -84
  34. package/fesm5/datorama-core.js.map +1 -1
  35. package/lib/grid-v2/grid/grid-v2.types.d.ts +2 -1
  36. package/lib/grid-v2/grid-filter/grid-filter.component.d.ts +4 -1
  37. package/lib/grid-v2/grid-settings.d.ts +2 -2
  38. package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +0 -2
  39. package/lib/icon/icon.types.d.ts +1 -1
  40. package/lib/rich-text/rich-text.directive.d.ts +6 -4
  41. package/package.json +1 -1
  42. package/esm2015/lib/rich-text/rich-text.service.js +0 -50
  43. package/esm5/lib/rich-text/rich-text.service.js +0 -51
  44. package/lib/rich-text/rich-text.service.d.ts +0 -10
@@ -7604,8 +7604,9 @@ 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;
7607
7608
  this.markAsActive(this._model, { deselectAll: true });
7608
- this.limitSelectedTo && this.updateDisabledState();
7609
+ overTheLimit && this.updateDisabledState();
7609
7610
  }
7610
7611
  /** For later updates */
7611
7612
  this.cdr.markForCheck();
@@ -7641,7 +7642,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7641
7642
  */
7642
7643
  if (this.hasValue && this._initialOpen) {
7643
7644
  this.markAsActive(this._model);
7644
- if (this.limitSelectedTo) {
7645
+ if (this.limitSelectedTo && this._model.length === this.limitSelectedTo) {
7645
7646
  this.updateDisabledState();
7646
7647
  }
7647
7648
  this._initialOpen = false;
@@ -7708,6 +7709,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7708
7709
  this.onChange(this._model);
7709
7710
  }
7710
7711
  removeOption(option) {
7712
+ const updateDisabled = this.limitSelectedTo && this._model.length === this.limitSelectedTo;
7711
7713
  this._model = this._model.filter(current => current[this.idKey] !== option[this.idKey]);
7712
7714
  const optionToRemove = this.options.find(datoOption => datoOption.option && datoOption.option[this.idKey] === option[this.idKey]);
7713
7715
  /**
@@ -7717,7 +7719,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7717
7719
  if (optionToRemove) {
7718
7720
  optionToRemove.active = false;
7719
7721
  }
7720
- this.limitSelectedTo && this.updateDisabledState();
7722
+ updateDisabled && this.updateDisabledState();
7721
7723
  this.onChange(this._model);
7722
7724
  this.cdr.markForCheck();
7723
7725
  this.asyncUpdateDropdownPosition();
@@ -7991,6 +7993,9 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7991
7993
  if (!datoOption) {
7992
7994
  return;
7993
7995
  }
7996
+ const modelLength = this._model.length;
7997
+ const updateDisabled = this.limitSelectedTo &&
7998
+ (modelLength === this.limitSelectedTo || (modelLength === this.limitSelectedTo - 1 && !datoOption.active));
7994
7999
  datoOption.active = !datoOption.active;
7995
8000
  const rawOption = datoOption.option;
7996
8001
  if (datoOption.active) {
@@ -7999,7 +8004,7 @@ let DatoSelectComponent = class DatoSelectComponent extends BaseCustomControl {
7999
8004
  else {
8000
8005
  this._model = this._model.filter(current => current[this.idKey] !== rawOption[this.idKey]);
8001
8006
  }
8002
- this.limitSelectedTo && this.updateDisabledState();
8007
+ updateDisabled && this.updateDisabledState();
8003
8008
  this.onChange(this._model);
8004
8009
  this.cdr.markForCheck();
8005
8010
  this.asyncUpdateDropdownPosition();
@@ -10511,7 +10516,7 @@ function toolbarActionToContextAction(params) {
10511
10516
  return contextActions;
10512
10517
  }
10513
10518
 
10514
- const DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_AP');
10519
+ const DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_API');
10515
10520
 
10516
10521
  const defaultEditableColumnRenderer = params => params && params.value ? `<div class="value-wrapper ellipsis">${params.value}</div>` : null;
10517
10522
  const editableCellRendererWithSearchHighlight = (params, searchTerm) => {
@@ -11196,6 +11201,16 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11196
11201
  this.showClearFiltersButton = true;
11197
11202
  this.excludedValues = new Set();
11198
11203
  }
11204
+ set operatorToggler(togglers) {
11205
+ if (togglers && this.inputConditionsOperator) {
11206
+ togglers.forEach((toggler) => {
11207
+ if (!toggler.isDisabled) {
11208
+ toggler.setDisabledState(true);
11209
+ }
11210
+ });
11211
+ this.cdr.detectChanges();
11212
+ }
11213
+ }
11199
11214
  get byValueControl() {
11200
11215
  return this.filterForm.get('byValue');
11201
11216
  }
@@ -11218,7 +11233,7 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11218
11233
  }
11219
11234
  get defaultConditional() {
11220
11235
  return this.fb.group({
11221
- operator: [OperatorTypes.AND],
11236
+ operator: [this.inputConditionsOperator || OperatorTypes.AND],
11222
11237
  conditions: this.fb.array([this.defaultOperand])
11223
11238
  });
11224
11239
  }
@@ -11258,6 +11273,7 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11258
11273
  const colFilter = filter || colDef.filter;
11259
11274
  const filterOptions = DatoGridFilterOptionsMap[colFilter];
11260
11275
  this.pivotColumn = gridQuery.api.columns.getSecondaryPivotColumn(pivotKeys, pivotValueColumn);
11276
+ this.inputConditionsOperator = filtersConfig.inputConditionsOperator;
11261
11277
  if (!isNil(filtersConfig.showClearFiltersButton)) {
11262
11278
  this.showClearFiltersButton = filtersConfig.showClearFiltersButton;
11263
11279
  }
@@ -11302,7 +11318,7 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11302
11318
  this.listOptions = rawValues.map(mapToListItem);
11303
11319
  }
11304
11320
  else {
11305
- const columnValues = this.getColumnValues();
11321
+ const columnValues = this.getColumnValues().filter(({ value }) => !isNil(value));
11306
11322
  this.columnValues = columnValues.map(({ value }) => {
11307
11323
  return !isNil(this.pivotColumn) && value ? value[this.colField] : value;
11308
11324
  });
@@ -11577,7 +11593,7 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11577
11593
  return this.defaultConditional;
11578
11594
  }
11579
11595
  return this.fb.group({
11580
- operator: [conditional.operator],
11596
+ operator: [this.inputConditionsOperator || conditional.operator],
11581
11597
  conditions: this.fb.array(this.buildConditions(conditional.conditions))
11582
11598
  });
11583
11599
  }
@@ -11732,10 +11748,15 @@ DatoGridFilterComponent.ctorParameters = () => [
11732
11748
  { type: DatoTranslateService },
11733
11749
  { type: ChangeDetectorRef }
11734
11750
  ];
11751
+ __decorate([
11752
+ ViewChildren('operatorToggler'),
11753
+ __metadata("design:type", QueryList),
11754
+ __metadata("design:paramtypes", [QueryList])
11755
+ ], DatoGridFilterComponent.prototype, "operatorToggler", null);
11735
11756
  DatoGridFilterComponent = __decorate([
11736
11757
  Component({
11737
11758
  selector: 'dato-grid-filter',
11738
- template: "<form class=\"container primary-0-background-color\" [formGroup]=\"filterForm\" datoForm\n *datoSubscribe=\"hasFilter$ as hasFilter\">\n <ng-container>\n <dato-accordion closeOthers=\"true\" class=\"filter-options\" [activeIds]=\"activeAccordionId\">\n <ng-container *ngIf=\"filterSections.Conditional\">\n\n <dato-accordion-group>\n <dato-accordion-header class=\"dato-note-bold primary-600-color\" data-auto-id=\"conditional-filters\"\n [class.primary-100-background-color]=\"header_1.isOpen\" #header_1>\n <div class=\"px-10 d-flex align-start-center\">\n <div class=\"filter-title d-flex-grow d-flex align-start-center\">{{'core.filterByCondition' | translate}}</div>\n <dato-icon class=\"primary-200-color\" height=\"18px\"\n [icon]=\"header_1.isOpen ? 'collapse' : 'expand'\"></dato-icon>\n </div>\n </dato-accordion-header>\n <dato-accordion-content #conditionalContent>\n <div class=\"conditional-content-container d-flex-column\" formGroupName=\"conditional\"\n [class.multi-conditions]=\"conditionsControls.length > 1\">\n <div class=\"operand d-flex-column mb-10\"\n [attr.data-auto-id]=\"'condition-' + i\"\n *ngFor=\"let operand of conditionsControls; index as i; last as last\">\n <div class=\"d-flex\">\n <div class=\"d-flex-column d-flex-grow min-width-0\">\n <ng-container formArrayName=\"conditions\">\n\n <ng-container [formGroupName]=\"i\">\n <dato-select datoSize=\"sm\" class=\"mb-10\" [attr.data-auto-id]=\"'condition-' + i + '-operand'\" formControlName=\"type\"\n datoSelectClass=\"operand-select\"\n [dataSet]=\"conditionalFilterOptions\"\n [isCombo]=\"false\" #select>\n <dato-option *ngFor=\"let option of select.data; index as index\"\n [option]=\"option\">\n {{ option.label }}\n </dato-option>\n </dato-select>\n <ng-container [ngSwitch]=\"filterType\">\n <div class=\"d-flex\" *ngSwitchCase=\"gridFilterTypes.Date\">\n <dato-date-picker [attr.data-auto-id]=\"'condition-date-' + i + '-value'\"\n formControlName=\"value\" class=\"d-flex-grow range-calendar\">\n <ng-template>\n <dato-date-picker-range *ngIf=\"getOperandType(i) === rangeOperand; else singleDate\"></dato-date-picker-range>\n <ng-template #singleDate>\n <dato-date-picker-single></dato-date-picker-single>\n </ng-template>\n </ng-template>\n </dato-date-picker>\n </div>\n <ng-container *ngIf=\"!isConditionalEmpty(operand)\">\n <dato-input *ngSwitchCase=\"gridFilterTypes.String\" datoSize=\"sm\"\n (keydown.enter.stop.prevent)=\"closePopUp()\"\n datoControlErrors [attr.data-auto-id]=\"'condition-string-' + i + '-value'\"\n [datoControlErrorsOnBlur]=\"false\"\n class=\"condition-value\"\n placeholder=\"core.filter\" formControlName=\"value\"\n [isFocused]=\"conditionalContent._expanded\"\n ></dato-input>\n <div class=\"d-flex\" *ngSwitchCase=\"gridFilterTypes.Number\">\n <dato-input-number (keydown.enter.stop.prevent)=\"closePopUp()\" [showControls]=\"false\"\n class=\"width-100 condition-value\" allowNegative=\"true\">\n <input type=\"number\" formControlName=\"value\" [attr.data-auto-id]=\"'condition-number-' + i + '-value'\"\n datoInputNumber datoSize=\"sm\" datoControlErrors [datoAutoFocus]=\"conditionalContent._expanded\"\n [datoControlErrorsOnBlur]=\"false\"/>\n </dato-input-number>\n <ng-container *ngIf=\"getOperandType(i) === rangeOperand\">\n <div class=\"mx-5\">-</div>\n <dato-input-number (keydown.enter.stop.prevent)=\"closePopUp()\"\n class=\"width-100 condition-value\" allowNegative=\"true\">\n <input type=\"number\" formControlName=\"rangeEnd\" [attr.data-auto-id]=\"'condition-number-' + i + '-range-end'\"\n datoInputNumber datoSize=\"sm\" datoControlErrors\n [datoControlErrorsOnBlur]=\"false\"/>\n </dato-input-number>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div>\n\n <dato-icon-button datoSize=\"md\"\n datoType=\"none\" icon=\"trash\"\n class=\"overflow-hidden delete\"\n datoTooltip=\"core.deleteFilterCondition\"\n [attr.data-auto-id]=\"'condition-' + i + '-remove'\"\n (click)=\"removeCondition(i)\"\n datoTooltipPosition=\"right-start\"></dato-icon-button>\n </div>\n </div>\n <dato-operator-toggler class=\"mt-10 justify-center width-100 d-flex\" data-auto-id=\"operator-toggler\"\n expanded=\"true\" [datoTogglerValue]=\"conditionsOperator\"\n *ngIf=\"conditionsControls.length > 1 && !last\"\n formControlName=\"operator\"></dato-operator-toggler>\n </div>\n <div class=\"d-flex align-center\">\n <dato-link *ngIf=\"conditionsControls.length < 3\" class=\"no-select\" datoSize=\"sm\" data-auto-id=\"add-condition\"\n datoType=\"secondary\" (click)=\"addCondition()\">\n <dato-icon height=\"10px\" width=\"10px\" icon=\"plus-simple\"></dato-icon>\n {{ 'core.condition' | translate }}\n </dato-link>\n </div>\n </div>\n </dato-accordion-content>\n </dato-accordion-group>\n <div class=\"separator\"></div>\n </ng-container>\n <ng-container *ngIf=\"filterSections.By_Value\">\n <dato-accordion-group class=\"list-content\">\n <dato-accordion-header class=\"dato-note-bold primary-600-color\" data-auto-id=\"by-value-filters\"\n [class.primary-100-background-color]=\"header_2.isOpen\" #header_2>\n <div class=\"px-10 d-flex align-start-center\">\n <div class=\"filter-title d-flex d-flex-grow align-start-center\">{{'core.filterByValue' | translate}}</div>\n <dato-icon class=\"primary-200-color\" height=\"18px\"\n [icon]=\"header_2.isOpen ? 'collapse' : 'expand'\"></dato-icon>\n </div>\n </dato-accordion-header>\n <dato-accordion-content #byValueContent>\n <div class=\"value-content-container d-flex-column\">\n <dato-input datoSize=\"sm\" placeholder=\"core.search-all-values\" [debounceTime]=\"300\" #search [formControl]=\"listSearchControl\" [isFocused]=\"byValueContent._expanded\"></dato-input>\n <dato-list-v2 class=\"primary-0-background-color\"\n containerHeight=\"195px\"\n [withSelectAll]=\"true\"\n [clientSearch]=\"isClientSideGrid\"\n [sortByKey]=\"listSortByKey\"\n [labelType]=\"listLabelType\"\n [searchController]=\"search\"\n [options]=\"listOptions\"\n [isSortList]=\"!keepPredefinedListOriginalOrder\"\n [loading]=\"loadingList\"\n [noDataTpl]=\"isClientSideGrid ? null : noData\"\n formControlName=\"byValue\"\n data-auto-id=\"by-value-filters-list\">\n </dato-list-v2>\n <ng-template #noData>\n <div *ngIf=\"serverSearchErrored; else noResults\" class=\"mb-10 d-flex-1 d-flex-column align-center\" data-auto-id=\"by-value-server-error\">\n <img class=\"mt-20\" datoStaticSrc=\"core/grid/filter-server-error.svg\"/>\n <p class=\"dato-note-bold mt-10 mb-10 primary-300-color\">{{ 'core.something-went-wrong' | translate }}</p>\n <p class=\"dato-note-italic primary-300-color\">{{ 'core.try-again-later' | translate }}</p>\n </div>\n <ng-template #noResults>\n <dato-list-no-result class=\"mb-10 block\" data-auto-id=\"by-value-no-results\"></dato-list-no-result>\n </ng-template>\n </ng-template>\n </div>\n </dato-accordion-content>\n </dato-accordion-group>\n <div class=\"separator\"></div>\n </ng-container>\n </dato-accordion>\n </ng-container>\n <div class=\"actions no-select px-10 py-12 d-flex align-end-center\">\n <dato-link *ngIf=\"showClearFiltersButton\" class=\"mr-30\" datoType=\"secondary\" datoSize=\"sm\"\n (click)=\"clearFilters()\" data-auto-id=\"clear-filters\" [disabled]=\"!hasFilter\">\n {{ 'core.clearFilters' | translate }}\n </dato-link>\n <dato-button datoSize=\"sm\" [datoTooltip]=\"hotKeyTooltip\" [datoHotkeys]=\"applyHotKeyConfig\" (click)=\"closePopUp()\" data-auto-id=\"apply-filters\">{{'core.apply' | translate}}</dato-button>\n </div>\n</form>\n",
11759
+ template: "<form class=\"container primary-0-background-color\" [formGroup]=\"filterForm\" datoForm\n *datoSubscribe=\"hasFilter$ as hasFilter\">\n <ng-container>\n <dato-accordion closeOthers=\"true\" class=\"filter-options\" [activeIds]=\"activeAccordionId\">\n <ng-container *ngIf=\"filterSections.Conditional\">\n\n <dato-accordion-group>\n <dato-accordion-header class=\"dato-note-bold primary-600-color\" data-auto-id=\"conditional-filters\"\n [class.primary-100-background-color]=\"header_1.isOpen\" #header_1>\n <div class=\"px-10 d-flex align-start-center\">\n <div class=\"filter-title d-flex-grow d-flex align-start-center\">{{'core.filterByCondition' | translate}}</div>\n <dato-icon class=\"primary-200-color\" height=\"18px\"\n [icon]=\"header_1.isOpen ? 'collapse' : 'expand'\"></dato-icon>\n </div>\n </dato-accordion-header>\n <dato-accordion-content #conditionalContent>\n <div class=\"conditional-content-container d-flex-column\" formGroupName=\"conditional\"\n [class.multi-conditions]=\"conditionsControls.length > 1\">\n <div class=\"operand d-flex-column mb-10\"\n [attr.data-auto-id]=\"'condition-' + i\"\n *ngFor=\"let operand of conditionsControls; index as i; last as last\">\n <div class=\"d-flex\">\n <div class=\"d-flex-column d-flex-grow min-width-0\">\n <ng-container formArrayName=\"conditions\">\n\n <ng-container [formGroupName]=\"i\">\n <dato-select datoSize=\"sm\" class=\"mb-10\" [attr.data-auto-id]=\"'condition-' + i + '-operand'\" formControlName=\"type\"\n datoSelectClass=\"operand-select\"\n [dataSet]=\"conditionalFilterOptions\"\n [isCombo]=\"false\" #select>\n <dato-option *ngFor=\"let option of select.data; index as index\"\n [option]=\"option\">\n {{ option.label }}\n </dato-option>\n </dato-select>\n <ng-container [ngSwitch]=\"filterType\">\n <div class=\"d-flex\" *ngSwitchCase=\"gridFilterTypes.Date\">\n <dato-date-picker [attr.data-auto-id]=\"'condition-date-' + i + '-value'\"\n formControlName=\"value\" class=\"d-flex-grow range-calendar\">\n <ng-template>\n <dato-date-picker-range *ngIf=\"getOperandType(i) === rangeOperand; else singleDate\"></dato-date-picker-range>\n <ng-template #singleDate>\n <dato-date-picker-single></dato-date-picker-single>\n </ng-template>\n </ng-template>\n </dato-date-picker>\n </div>\n <ng-container *ngIf=\"!isConditionalEmpty(operand)\">\n <dato-input *ngSwitchCase=\"gridFilterTypes.String\" datoSize=\"sm\"\n (keydown.enter.stop.prevent)=\"closePopUp()\"\n datoControlErrors [attr.data-auto-id]=\"'condition-string-' + i + '-value'\"\n [datoControlErrorsOnBlur]=\"false\"\n class=\"condition-value\"\n placeholder=\"core.filter\" formControlName=\"value\"\n [isFocused]=\"conditionalContent._expanded\"\n ></dato-input>\n <div class=\"d-flex\" *ngSwitchCase=\"gridFilterTypes.Number\">\n <dato-input-number (keydown.enter.stop.prevent)=\"closePopUp()\" [showControls]=\"false\"\n class=\"width-100 condition-value\" allowNegative=\"true\">\n <input type=\"number\" formControlName=\"value\" [attr.data-auto-id]=\"'condition-number-' + i + '-value'\"\n datoInputNumber datoSize=\"sm\" datoControlErrors [datoAutoFocus]=\"conditionalContent._expanded\"\n [datoControlErrorsOnBlur]=\"false\"/>\n </dato-input-number>\n <ng-container *ngIf=\"getOperandType(i) === rangeOperand\">\n <div class=\"mx-5\">-</div>\n <dato-input-number (keydown.enter.stop.prevent)=\"closePopUp()\"\n class=\"width-100 condition-value\" allowNegative=\"true\">\n <input type=\"number\" formControlName=\"rangeEnd\" [attr.data-auto-id]=\"'condition-number-' + i + '-range-end'\"\n datoInputNumber datoSize=\"sm\" datoControlErrors\n [datoControlErrorsOnBlur]=\"false\"/>\n </dato-input-number>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n <div>\n\n <dato-icon-button datoSize=\"md\"\n datoType=\"none\" icon=\"trash\"\n class=\"overflow-hidden delete\"\n datoTooltip=\"core.deleteFilterCondition\"\n [attr.data-auto-id]=\"'condition-' + i + '-remove'\"\n (click)=\"removeCondition(i)\"\n datoTooltipPosition=\"right-start\"></dato-icon-button>\n </div>\n </div>\n <dato-operator-toggler class=\"mt-10 justify-center width-100 d-flex\" data-auto-id=\"operator-toggler\"\n expanded=\"true\" [datoTogglerValue]=\"conditionsOperator\"\n *ngIf=\"conditionsControls.length > 1 && !last\"\n formControlName=\"operator\" #operatorToggler></dato-operator-toggler>\n </div>\n <div class=\"d-flex align-center\">\n <dato-link *ngIf=\"conditionsControls.length < 3\" class=\"no-select\" datoSize=\"sm\" data-auto-id=\"add-condition\"\n datoType=\"secondary\" (click)=\"addCondition()\">\n <dato-icon height=\"10px\" width=\"10px\" icon=\"plus-simple\"></dato-icon>\n {{ 'core.condition' | translate }}\n </dato-link>\n </div>\n </div>\n </dato-accordion-content>\n </dato-accordion-group>\n <div class=\"separator\"></div>\n </ng-container>\n <ng-container *ngIf=\"filterSections.By_Value\">\n <dato-accordion-group class=\"list-content\">\n <dato-accordion-header class=\"dato-note-bold primary-600-color\" data-auto-id=\"by-value-filters\"\n [class.primary-100-background-color]=\"header_2.isOpen\" #header_2>\n <div class=\"px-10 d-flex align-start-center\">\n <div class=\"filter-title d-flex d-flex-grow align-start-center\">{{'core.filterByValue' | translate}}</div>\n <dato-icon class=\"primary-200-color\" height=\"18px\"\n [icon]=\"header_2.isOpen ? 'collapse' : 'expand'\"></dato-icon>\n </div>\n </dato-accordion-header>\n <dato-accordion-content #byValueContent>\n <div class=\"value-content-container d-flex-column\">\n <dato-input datoSize=\"sm\" placeholder=\"core.search-all-values\" [debounceTime]=\"300\" #search [formControl]=\"listSearchControl\" [isFocused]=\"byValueContent._expanded\"></dato-input>\n <dato-list-v2 class=\"primary-0-background-color\"\n containerHeight=\"195px\"\n [withSelectAll]=\"true\"\n [clientSearch]=\"isClientSideGrid\"\n [sortByKey]=\"listSortByKey\"\n [labelType]=\"listLabelType\"\n [searchController]=\"search\"\n [options]=\"listOptions\"\n [isSortList]=\"!keepPredefinedListOriginalOrder\"\n [loading]=\"loadingList\"\n [noDataTpl]=\"isClientSideGrid ? null : noData\"\n formControlName=\"byValue\"\n data-auto-id=\"by-value-filters-list\">\n </dato-list-v2>\n <ng-template #noData>\n <div *ngIf=\"serverSearchErrored; else noResults\" class=\"mb-10 d-flex-1 d-flex-column align-center\" data-auto-id=\"by-value-server-error\">\n <img class=\"mt-20\" datoStaticSrc=\"core/grid/filter-server-error.svg\"/>\n <p class=\"dato-note-bold mt-10 mb-10 primary-300-color\">{{ 'core.something-went-wrong' | translate }}</p>\n <p class=\"dato-note-italic primary-300-color\">{{ 'core.try-again-later' | translate }}</p>\n </div>\n <ng-template #noResults>\n <dato-list-no-result class=\"mb-10 block\" data-auto-id=\"by-value-no-results\"></dato-list-no-result>\n </ng-template>\n </ng-template>\n </div>\n </dato-accordion-content>\n </dato-accordion-group>\n <div class=\"separator\"></div>\n </ng-container>\n </dato-accordion>\n </ng-container>\n <div class=\"actions no-select px-10 py-12 d-flex align-end-center\">\n <dato-link *ngIf=\"showClearFiltersButton\" class=\"mr-30\" datoType=\"secondary\" datoSize=\"sm\"\n (click)=\"clearFilters()\" data-auto-id=\"clear-filters\" [disabled]=\"!hasFilter\">\n {{ 'core.clearFilters' | translate }}\n </dato-link>\n <dato-button datoSize=\"sm\" [datoTooltip]=\"hotKeyTooltip\" [datoHotkeys]=\"applyHotKeyConfig\" (click)=\"closePopUp()\" data-auto-id=\"apply-filters\">{{'core.apply' | translate}}</dato-button>\n </div>\n</form>\n",
11739
11760
  changeDetection: ChangeDetectionStrategy.OnPush,
11740
11761
  styles: [":host dato-accordion-header{transition:background-color .2s ease-in-out}:host>.container{width:242px}:host .value-content-container dato-input{padding:10px}:host .conditional-content-container{padding:10px;transition:padding-right .2s ease-in-out}:host .conditional-content-container.multi-conditions{padding-right:0}:host .conditional-content-container.multi-conditions .delete{width:24px}:host .filter-title{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;height:40px;transition:color .2s ease-in-out}:host .separator{height:1px;width:100%}:host .delete{transition:width .2s ease-in-out;width:0}"]
11741
11762
  }),
@@ -12808,8 +12829,7 @@ let GridService = class GridService {
12808
12829
  this.updateSettings({ gridAlignment, columnsSizes: null });
12809
12830
  }
12810
12831
  saveSettingsToServer(settings) {
12811
- const isGlobal = this.gridQuery.getGridOptions().isGlobalSettings;
12812
- this.storageAPI.set(this.gridName, settings, isGlobal);
12832
+ this.storageAPI.set(this.gridName, settings);
12813
12833
  }
12814
12834
  /**
12815
12835
  * @internal used to log grid events to the platform's logging service
@@ -13718,10 +13738,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13718
13738
  .pipe(switchMap(() => {
13719
13739
  this.gridOptions = this.normalizeOptions();
13720
13740
  agGrid.gridOptions = this.gridOptions;
13721
- const isGlobal = this.gridOptions.isGlobalSettings;
13722
- const settingsLoader = this.gridOptions.saveSettings === false
13723
- ? of(null)
13724
- : this.storageAPI.get(this.gridOptions.gridName, isGlobal);
13741
+ const settingsLoader = this.gridOptions.saveSettings === false ? of(null) : this.storageAPI.get(this.gridOptions.gridName);
13725
13742
  return combineLatest([agGrid.gridReady, settingsLoader]);
13726
13743
  }), untilDestroyed(this))
13727
13744
  .subscribe(([{ api, columnApi }, savedSettings = {}]) => {
@@ -14846,12 +14863,6 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
14846
14863
  this.registerGroupListeners();
14847
14864
  this.subscribeRowsSelectionData();
14848
14865
  }
14849
- getCellValueChangeEvent() {
14850
- return this.gridController.gridQuery.waitForGrid(() => this.gridQuery.gridRef.cellValueChanged.pipe(debounceTime(100), untilDestroyed(this)));
14851
- }
14852
- getRowDataUpdatedEvent() {
14853
- return this.gridController.gridQuery.waitForGrid(() => this.gridQuery.gridRef.rowDataUpdated.pipe(debounceTime(100), untilDestroyed(this)));
14854
- }
14855
14866
  onActionClick(action) {
14856
14867
  if (isFunction(action.onClick)) {
14857
14868
  const selectedRowsCount = this.gridController.gridQuery.getSelectedRowsCount();
@@ -18919,39 +18930,6 @@ DatoEditableHeaderModule = __decorate([
18919
18930
  * found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
18920
18931
  */
18921
18932
 
18922
- let RichTextService = class RichTextService {
18923
- constructor(http, config) {
18924
- this.http = http;
18925
- this.config = config;
18926
- }
18927
- getLib(appendScriptFunc, appendStyleFunc) {
18928
- if (!this.richTextScript$) {
18929
- this.initLib(appendScriptFunc, appendStyleFunc);
18930
- }
18931
- return this.richTextScript$;
18932
- }
18933
- initLib(appendScriptFunc, appendStyleFunc) {
18934
- this.richTextScript$ = combineLatest([
18935
- this.http
18936
- .get(`${this.config.paths.richText}/index.js`, { responseType: 'text' })
18937
- .pipe(tap(lib => appendScriptFunc(lib, 'rich-text-editor'))),
18938
- this.http
18939
- .get(`${this.config.paths.richText}/plugins/autocomplete/plugin.css`, { responseType: 'text' })
18940
- .pipe(tap(style => appendStyleFunc(style, 'tinymce-autocomplete')))
18941
- ]).pipe(shareReplay(1));
18942
- }
18943
- };
18944
- RichTextService.ctorParameters = () => [
18945
- { type: HttpClient },
18946
- { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
18947
- ];
18948
- RichTextService.ɵprov = ɵɵdefineInjectable({ factory: function RichTextService_Factory() { return new RichTextService(ɵɵinject(HttpClient), ɵɵinject(DATO_CORE_CONFIG)); }, token: RichTextService, providedIn: "root" });
18949
- RichTextService = __decorate([
18950
- Injectable({ providedIn: 'root' }),
18951
- __param(1, Inject(DATO_CORE_CONFIG)),
18952
- __metadata("design:paramtypes", [HttpClient, Object])
18953
- ], RichTextService);
18954
-
18955
18933
  /**
18956
18934
  * @license
18957
18935
  * Copyright Datorama. All Rights Reserved.
@@ -18965,20 +18943,20 @@ const getTinymce = () => {
18965
18943
  };
18966
18944
  const ɵ0$3 = getTinymce;
18967
18945
  let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirective extends BaseCustomControl {
18968
- constructor(ngZone, richTextService, config, host) {
18946
+ constructor(ngZone, http, host, config) {
18969
18947
  super();
18970
18948
  this.ngZone = ngZone;
18971
- this.richTextService = richTextService;
18972
- this.config = config;
18949
+ this.http = http;
18973
18950
  this.host = host;
18951
+ this.config = config;
18974
18952
  this.autocompleteOptions = {};
18975
18953
  this.forcePlainTextPasting = false;
18976
18954
  this.format = 'html';
18977
18955
  this.isOneLine = false;
18978
18956
  this.initialValue = '';
18979
- this.defaultPlugins = 'link fullscreen image lists table autocomplete';
18957
+ this.defaultPlugins = 'link fullscreen textcolor colorpicker image lists table textpattern autocomplete';
18980
18958
  this.defaultToolbar = [
18981
- 'fontfamily fontsize forecolor backcolor bold italic underline link',
18959
+ 'fontselect fontsizeselect forecolor backcolor bold italic underline link',
18982
18960
  'alignleft aligncenter alignright alignjustify outdent indent | table numlist bullist | image fullscreen'
18983
18961
  ];
18984
18962
  }
@@ -18997,11 +18975,28 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
18997
18975
  base: this.config.paths.richText,
18998
18976
  query: ''
18999
18977
  };
19000
- this.richTextService
19001
- .getLib(appendScript, appendStyle)
19002
- .pipe(untilDestroyed(this))
19003
- .subscribe(() => {
18978
+ /**
18979
+ * We support only one instance in load time
18980
+ */
18981
+ if (window.tinymce) {
19004
18982
  this.init.call(this);
18983
+ }
18984
+ else {
18985
+ this.loadLib().subscribe(lib => {
18986
+ appendScript(lib, 'rich-text-editor');
18987
+ this.init.call(this);
18988
+ this.loadAutoCompleteStyle();
18989
+ });
18990
+ }
18991
+ }
18992
+ loadLib() {
18993
+ return this.http.get(`${this.config.paths.richText}/index.js`, { responseType: 'text' });
18994
+ }
18995
+ loadAutoCompleteStyle() {
18996
+ this.http
18997
+ .get(`${this.config.paths.richText}/plugins/autocomplete/plugin.css`, { responseType: 'text' })
18998
+ .subscribe(style => {
18999
+ appendStyle(style, 'tinymce-autocomplete');
19005
19000
  });
19006
19001
  }
19007
19002
  initEditor(_, editor) {
@@ -19022,6 +19017,8 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
19022
19017
  target: this.host.nativeElement,
19023
19018
  width: this.width || 600,
19024
19019
  height: this.height || 300,
19020
+ force_br_newlines: true,
19021
+ force_p_newlines: false,
19025
19022
  resize: 'both',
19026
19023
  branding: false,
19027
19024
  inline: this.inline,
@@ -19029,12 +19026,10 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
19029
19026
  readonly: this.disabled,
19030
19027
  plugins: this.plugins || this.defaultPlugins,
19031
19028
  toolbar: isNil(this.toolbar) ? this.defaultToolbar : this.toolbar,
19032
- font_size_formats: '8px 10px 12px 14px 18px 24px 36px',
19029
+ fontsize_formats: '8px 10px 12px 14px 18px 24px 36px',
19033
19030
  min_width: 480,
19034
19031
  menubar: false,
19035
19032
  autocomplete: this.autocompleteOptions,
19036
- suffix: '.min',
19037
- skin: 'tinymce-5',
19038
19033
  setup: editor => {
19039
19034
  this.editor = editor;
19040
19035
  editor.on('init', (e) => {
@@ -19102,9 +19097,9 @@ let DatoRichTextDirective = DatoRichTextDirective_1 = class DatoRichTextDirectiv
19102
19097
  };
19103
19098
  DatoRichTextDirective.ctorParameters = () => [
19104
19099
  { type: NgZone },
19105
- { type: RichTextService },
19106
- { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] },
19107
- { type: ElementRef }
19100
+ { type: HttpClient },
19101
+ { type: ElementRef },
19102
+ { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
19108
19103
  ];
19109
19104
  __decorate([
19110
19105
  Input(),
@@ -19170,9 +19165,10 @@ DatoRichTextDirective = DatoRichTextDirective_1 = __decorate([
19170
19165
  }
19171
19166
  ]
19172
19167
  }),
19173
- __param(2, Inject(DATO_CORE_CONFIG)),
19168
+ __param(3, Inject(DATO_CORE_CONFIG)),
19174
19169
  __metadata("design:paramtypes", [NgZone,
19175
- RichTextService, Object, ElementRef])
19170
+ HttpClient,
19171
+ ElementRef, Object])
19176
19172
  ], DatoRichTextDirective);
19177
19173
 
19178
19174
  /**
@@ -21453,9 +21449,7 @@ let DatoBreadcrumbsComponent = class DatoBreadcrumbsComponent {
21453
21449
  this._breadcrumbs = [...start, ...dots, ...end];
21454
21450
  }
21455
21451
  initEditableHeader() {
21456
- this.headerControl.valueChanges
21457
- .pipe(debounceTime(300), untilDestroyed(this))
21458
- .subscribe((res) => {
21452
+ this.headerControl.valueChanges.pipe(debounceTime(300), untilDestroyed(this)).subscribe((res) => {
21459
21453
  this.updateEditableText.emit(res);
21460
21454
  this.cdr.detectChanges();
21461
21455
  });
@@ -22720,7 +22714,7 @@ function fixNgLeaks() {
22720
22714
  };
22721
22715
  }
22722
22716
 
22723
- window.coreVersion = '22.9.2-rc.';
22717
+ window.coreVersion = '22.9.3';
22724
22718
 
22725
22719
  /**
22726
22720
  * @license
@@ -22734,5 +22728,5 @@ window.coreVersion = '22.9.2-rc.';
22734
22728
  * Generated bundle index. Do not edit.
22735
22729
  */
22736
22730
 
22737
- 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 };
22731
+ 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 };
22738
22732
  //# sourceMappingURL=datorama-core.js.map