@datorama/core 22.8.2-rc.1 → 22.9.0

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 (47) hide show
  1. package/bundles/datorama-core.umd.js +113 -116
  2. package/bundles/datorama-core.umd.js.map +1 -1
  3. package/bundles/datorama-core.umd.min.js +15 -15
  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-column-header/grid-column-header.component.js +9 -3
  11. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +3 -8
  12. package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +20 -4
  13. package/esm2015/lib/grid-v2/grid-settings.js +2 -2
  14. package/esm2015/lib/grid-v2/grid-store/grid.query.js +20 -17
  15. package/esm2015/lib/grid-v2/grid-store/grid.service.js +19 -22
  16. package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +1 -7
  17. package/esm2015/lib/rich-text/rich-text.directive.js +33 -15
  18. package/esm2015/lib/select/select.component.js +10 -5
  19. package/esm2015/lib/version.js +2 -2
  20. package/esm5/datorama-core.js +1 -2
  21. package/esm5/lib/breadcrumbs/breadcrumbs.component.js +2 -4
  22. package/esm5/lib/grid-v2/grid/grid-v2.types.js +1 -1
  23. package/esm5/lib/grid-v2/grid-column-header/grid-column-header.component.js +9 -3
  24. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +3 -8
  25. package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +24 -4
  26. package/esm5/lib/grid-v2/grid-settings.js +2 -2
  27. package/esm5/lib/grid-v2/grid-store/grid.query.js +21 -17
  28. package/esm5/lib/grid-v2/grid-store/grid.service.js +19 -22
  29. package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +1 -13
  30. package/esm5/lib/rich-text/rich-text.directive.js +34 -16
  31. package/esm5/lib/select/select.component.js +10 -5
  32. package/esm5/lib/version.js +2 -2
  33. package/fesm2015/datorama-core.js +108 -108
  34. package/fesm2015/datorama-core.js.map +1 -1
  35. package/fesm5/datorama-core.js +114 -116
  36. package/fesm5/datorama-core.js.map +1 -1
  37. package/lib/grid-v2/grid/grid-v2.types.d.ts +2 -1
  38. package/lib/grid-v2/grid-filter/grid-filter.component.d.ts +4 -1
  39. package/lib/grid-v2/grid-settings.d.ts +2 -2
  40. package/lib/grid-v2/grid-store/grid.query.d.ts +2 -2
  41. package/lib/grid-v2/grid-store/grid.service.d.ts +1 -0
  42. package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +0 -2
  43. package/lib/rich-text/rich-text.directive.d.ts +6 -4
  44. package/package.json +1 -1
  45. package/esm2015/lib/rich-text/rich-text.service.js +0 -50
  46. package/esm5/lib/rich-text/rich-text.service.js +0 -51
  47. package/lib/rich-text/rich-text.service.d.ts +0 -10
@@ -8549,8 +8549,9 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8549
8549
  DatoSelectComponent.prototype.writeValue = function (activeOptions) {
8550
8550
  this._model = activeOptions ? coerceArray$1(activeOptions) : [];
8551
8551
  if (this.options) {
8552
+ var overTheLimit = this.limitSelectedTo && this.isMulti && this._model.length >= this.limitSelectedTo;
8552
8553
  this.markAsActive(this._model, { deselectAll: true });
8553
- this.limitSelectedTo && this.updateDisabledState();
8554
+ overTheLimit && this.updateDisabledState();
8554
8555
  }
8555
8556
  /** For later updates */
8556
8557
  this.cdr.markForCheck();
@@ -8587,7 +8588,7 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8587
8588
  */
8588
8589
  if (this.hasValue && this._initialOpen) {
8589
8590
  this.markAsActive(this._model);
8590
- if (this.limitSelectedTo) {
8591
+ if (this.limitSelectedTo && this._model.length === this.limitSelectedTo) {
8591
8592
  this.updateDisabledState();
8592
8593
  }
8593
8594
  this._initialOpen = false;
@@ -8676,6 +8677,7 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8676
8677
  };
8677
8678
  DatoSelectComponent.prototype.removeOption = function (option) {
8678
8679
  var _this = this;
8680
+ var updateDisabled = this.limitSelectedTo && this._model.length === this.limitSelectedTo;
8679
8681
  this._model = this._model.filter(function (current) { return current[_this.idKey] !== option[_this.idKey]; });
8680
8682
  var optionToRemove = this.options.find(function (datoOption) { return datoOption.option && datoOption.option[_this.idKey] === option[_this.idKey]; });
8681
8683
  /**
@@ -8685,7 +8687,7 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8685
8687
  if (optionToRemove) {
8686
8688
  optionToRemove.active = false;
8687
8689
  }
8688
- this.limitSelectedTo && this.updateDisabledState();
8690
+ updateDisabled && this.updateDisabledState();
8689
8691
  this.onChange(this._model);
8690
8692
  this.cdr.markForCheck();
8691
8693
  this.asyncUpdateDropdownPosition();
@@ -9033,6 +9035,9 @@ var DatoSelectComponent = /** @class */ (function (_super) {
9033
9035
  if (!datoOption) {
9034
9036
  return;
9035
9037
  }
9038
+ var modelLength = this._model.length;
9039
+ var updateDisabled = this.limitSelectedTo &&
9040
+ (modelLength === this.limitSelectedTo || (modelLength === this.limitSelectedTo - 1 && !datoOption.active));
9036
9041
  datoOption.active = !datoOption.active;
9037
9042
  var rawOption = datoOption.option;
9038
9043
  if (datoOption.active) {
@@ -9041,7 +9046,7 @@ var DatoSelectComponent = /** @class */ (function (_super) {
9041
9046
  else {
9042
9047
  this._model = this._model.filter(function (current) { return current[_this.idKey] !== rawOption[_this.idKey]; });
9043
9048
  }
9044
- this.limitSelectedTo && this.updateDisabledState();
9049
+ updateDisabled && this.updateDisabledState();
9045
9050
  this.onChange(this._model);
9046
9051
  this.cdr.markForCheck();
9047
9052
  this.asyncUpdateDropdownPosition();
@@ -11382,7 +11387,7 @@ var GridQuery = /** @class */ (function (_super) {
11382
11387
  var storeSettings = this.getValue().settings;
11383
11388
  var settings = {
11384
11389
  gridAlignment: storeSettings.gridAlignment,
11385
- sort: this.getGridOptions().sortByStore ? this.getSort() : this.getSortModel(),
11390
+ sort: this.getGridOptions().sortByStore ? this.getSavedSort() : this.getSortModel(),
11386
11391
  hiddenColumns: hiddenColumns,
11387
11392
  groupedColumns: groupedColumns.map(toColId),
11388
11393
  filter: this.getFilter(),
@@ -11399,25 +11404,29 @@ var GridQuery = /** @class */ (function (_super) {
11399
11404
  GridQuery.prototype.getSortModel = function () {
11400
11405
  return this.api.grid.getSortModel().pop();
11401
11406
  };
11402
- GridQuery.prototype.getSort = function () {
11407
+ GridQuery.prototype.getSavedSort = function () {
11403
11408
  return this.getValue().settings.sort || this.getSortModel();
11404
11409
  };
11405
- GridQuery.prototype.getExternalSort = function () {
11406
- var _a = this.getSort() || {}, sort = _a.sort, colId = _a.colId, savedSortIndex = _a.sortIndex;
11407
- var column = this.api.columns.getColumn(colId);
11408
- var allColumns = this.api.columns.getAllGridColumns();
11409
- if (column) {
11410
- var field = getColField(column.getColDef());
11411
- return { colId: colId, sort: sort, field: field };
11412
- }
11413
- else {
11414
- var secondaryColumn = this.getSecondaryColumn(colId);
11415
- if (secondaryColumn) {
11416
- var sortIndex = savedSortIndex || allColumns.indexOf(secondaryColumn);
11417
- var field = getColField(secondaryColumn.getColDef());
11418
- return { colId: colId, sort: sort, field: field, sortIndex: sortIndex };
11410
+ GridQuery.prototype.getSort = function (savedSort) {
11411
+ if (savedSort === void 0) { savedSort = this.getSavedSort(); }
11412
+ if (savedSort) {
11413
+ var colId = savedSort.colId, sort = savedSort.sort, sortIndex = savedSort.sortIndex;
11414
+ var column = this.api.columns.getColumn(colId);
11415
+ var allColumns = this.api.columns.getAllGridColumns();
11416
+ if (column) {
11417
+ var field = getColField(column.getColDef());
11418
+ return { colId: colId, sort: sort, field: field };
11419
+ }
11420
+ else {
11421
+ var secondaryColumn = this.getSecondaryColumn(colId);
11422
+ if (secondaryColumn) {
11423
+ var columnIndex = sortIndex || allColumns.indexOf(secondaryColumn);
11424
+ var field = getColField(secondaryColumn.getColDef());
11425
+ return { colId: colId, sort: sort, field: field, sortIndex: columnIndex };
11426
+ }
11419
11427
  }
11420
11428
  }
11429
+ return { colId: null, sort: null };
11421
11430
  };
11422
11431
  /* @internal */
11423
11432
  GridQuery.prototype._setApi = function (api, gridRef) {
@@ -11842,7 +11851,7 @@ function toolbarActionToContextAction(params) {
11842
11851
  return contextActions;
11843
11852
  }
11844
11853
 
11845
- var DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_AP');
11854
+ var DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_API');
11846
11855
 
11847
11856
  var defaultEditableColumnRenderer = function (params) {
11848
11857
  return params && params.value ? "<div class=\"value-wrapper ellipsis\">" + params.value + "</div>" : null;
@@ -12567,6 +12576,20 @@ var DatoGridFilterComponent = /** @class */ (function () {
12567
12576
  this.showClearFiltersButton = true;
12568
12577
  this.excludedValues = new Set();
12569
12578
  }
12579
+ Object.defineProperty(DatoGridFilterComponent.prototype, "operatorToggler", {
12580
+ set: function (togglers) {
12581
+ if (togglers && this.inputConditionsOperator) {
12582
+ togglers.forEach(function (toggler) {
12583
+ if (!toggler.isDisabled) {
12584
+ toggler.setDisabledState(true);
12585
+ }
12586
+ });
12587
+ this.cdr.detectChanges();
12588
+ }
12589
+ },
12590
+ enumerable: true,
12591
+ configurable: true
12592
+ });
12570
12593
  Object.defineProperty(DatoGridFilterComponent.prototype, "byValueControl", {
12571
12594
  get: function () {
12572
12595
  return this.filterForm.get('byValue');
@@ -12679,6 +12702,7 @@ var DatoGridFilterComponent = /** @class */ (function () {
12679
12702
  var colFilter = filter || colDef.filter;
12680
12703
  var filterOptions = DatoGridFilterOptionsMap[colFilter];
12681
12704
  this.pivotColumn = gridQuery.api.columns.getSecondaryPivotColumn(pivotKeys, pivotValueColumn);
12705
+ this.inputConditionsOperator = filtersConfig.inputConditionsOperator;
12682
12706
  if (!isNil(filtersConfig.showClearFiltersButton)) {
12683
12707
  this.showClearFiltersButton = filtersConfig.showClearFiltersButton;
12684
12708
  }
@@ -13016,7 +13040,7 @@ var DatoGridFilterComponent = /** @class */ (function () {
13016
13040
  return this.defaultConditional;
13017
13041
  }
13018
13042
  return this.fb.group({
13019
- operator: [conditional.operator],
13043
+ operator: [this.inputConditionsOperator || conditional.operator],
13020
13044
  conditions: this.fb.array(this.buildConditions(conditional.conditions))
13021
13045
  });
13022
13046
  };
@@ -13186,10 +13210,15 @@ var DatoGridFilterComponent = /** @class */ (function () {
13186
13210
  { type: DatoTranslateService },
13187
13211
  { type: ChangeDetectorRef }
13188
13212
  ]; };
13213
+ __decorate([
13214
+ ViewChildren('operatorToggler'),
13215
+ __metadata("design:type", QueryList),
13216
+ __metadata("design:paramtypes", [QueryList])
13217
+ ], DatoGridFilterComponent.prototype, "operatorToggler", null);
13189
13218
  DatoGridFilterComponent = __decorate([
13190
13219
  Component({
13191
13220
  selector: 'dato-grid-filter',
13192
- 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",
13221
+ 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",
13193
13222
  changeDetection: ChangeDetectionStrategy.OnPush,
13194
13223
  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}"]
13195
13224
  }),
@@ -13292,6 +13321,7 @@ var DatoGridColumnHeaderComponent = /** @class */ (function () {
13292
13321
  var sortingOrder = _this.column.getColDef() ? _this.column.getColDef().sortingOrder : null;
13293
13322
  var sort;
13294
13323
  var currentSort = _this.column.getSort();
13324
+ var colId = _this.column.getColId();
13295
13325
  if (sortingOrder && sortingOrder.length > 0) {
13296
13326
  var currentSortIndex = sortingOrder.indexOf(currentSort);
13297
13327
  var newSortIndex = void 0;
@@ -13308,10 +13338,15 @@ var DatoGridColumnHeaderComponent = /** @class */ (function () {
13308
13338
  }
13309
13339
  gridService._logEvent("Grids - Column Action" /* GRID_COLUMN_ACTION */, {
13310
13340
  action: 'Sort',
13311
- column: _this.column.getColId()
13341
+ column: colId
13312
13342
  });
13313
13343
  gridQuery.isServerSide && gridService.setLoading(true);
13314
- _this.params.setSort(sort);
13344
+ if (gridQuery.getGridOptions().sortByStore) {
13345
+ gridService.setSortByColumn(colId, sort);
13346
+ }
13347
+ else {
13348
+ _this.params.setSort(sort);
13349
+ }
13315
13350
  });
13316
13351
  this.sortingInfo$ = gridQuery
13317
13352
  .waitForGrid(function () { return gridQuery.gridRef.sortChanged; })
@@ -14258,38 +14293,36 @@ var GridService = /** @class */ (function () {
14258
14293
  this.notifyFilterUpdate();
14259
14294
  }
14260
14295
  };
14296
+ GridService.prototype.setSortByColumn = function (colId, sort) {
14297
+ var sortToSet = this.gridQuery.getSort({ colId: colId, sort: sort });
14298
+ this.setGridSort(sortToSet);
14299
+ };
14261
14300
  GridService.prototype.setGridSort = function (gridSort) {
14262
14301
  if (gridSort && this.api && this.api.grid.getDisplayedRowCount() > 0) {
14263
14302
  var colId_1 = gridSort.colId, sort = gridSort.sort, sortIndex = gridSort.sortIndex;
14264
- var sortToApply = gridSort;
14265
- if (!isNil(sortIndex)) {
14266
- var gridColumns = this.api.columns.getAllGridColumns();
14267
- if (gridColumns) {
14303
+ var gridColumns = this.api.columns.getAllGridColumns();
14304
+ if (gridColumns) {
14305
+ var sortToApply = gridSort;
14306
+ /** Sort by column id */
14307
+ var columnById = gridColumns.find(function (col) {
14308
+ return (col.getColDef().showRowGroup || col.getColId()) === colId_1;
14309
+ });
14310
+ if (columnById) {
14311
+ sortToApply = { colId: columnById.getColId(), sort: sort };
14312
+ }
14313
+ else if (!isNil(sortIndex)) {
14268
14314
  var valueColumns = this.api.columns.getValueColumns();
14269
14315
  var valueColumn = valueColumns.find(function (col) { return col.getColId() === colId_1; });
14270
14316
  var isPivotColId = colId_1.startsWith('pivot');
14271
14317
  if (isPivotColId || valueColumn) {
14272
14318
  /** Column is pivot value column, sort by index */
14273
14319
  var columnByIndex = gridColumns[sortIndex];
14274
- // const pivotValueColumn = columnByIndex && columnByIndex.getColDef().pivotValueColumn;
14275
- // const pivotValueColumnId = pivotValueColumn && pivotValueColumn.getColId();
14276
- // if (pivotValueColumnId === colId) {
14277
14320
  sortToApply = { colId: columnByIndex.getColId(), sort: sort, sortIndex: sortIndex };
14278
- // }
14279
- }
14280
- else {
14281
- /** Sort by column id */
14282
- var columnById = gridColumns.find(function (col) {
14283
- return (col.getColDef().showRowGroup || col.getColId()) === colId_1;
14284
- });
14285
- if (columnById) {
14286
- sortToApply = { colId: columnById.getColId(), sort: sort };
14287
- }
14288
14321
  }
14289
14322
  }
14323
+ this.updateSettings({ sort: sortToApply });
14324
+ this.api.grid.setSortModel([sortToApply]);
14290
14325
  }
14291
- this.updateSettings({ sort: sortToApply });
14292
- this.api.grid.setSortModel([sortToApply]);
14293
14326
  }
14294
14327
  };
14295
14328
  GridService.prototype.updateFilter = function (column, filter) {
@@ -14347,8 +14380,7 @@ var GridService = /** @class */ (function () {
14347
14380
  this.updateSettings({ gridAlignment: gridAlignment, columnsSizes: null });
14348
14381
  };
14349
14382
  GridService.prototype.saveSettingsToServer = function (settings) {
14350
- var isGlobal = this.gridQuery.getGridOptions().isGlobalSettings;
14351
- this.storageAPI.set(this.gridName, settings, isGlobal);
14383
+ this.storageAPI.set(this.gridName, settings);
14352
14384
  };
14353
14385
  /**
14354
14386
  * @internal used to log grid events to the platform's logging service
@@ -15353,10 +15385,7 @@ var DatoGridControllerComponent = /** @class */ (function () {
15353
15385
  .pipe(switchMap(function () {
15354
15386
  _this.gridOptions = _this.normalizeOptions();
15355
15387
  agGrid.gridOptions = _this.gridOptions;
15356
- var isGlobal = _this.gridOptions.isGlobalSettings;
15357
- var settingsLoader = _this.gridOptions.saveSettings === false
15358
- ? of(null)
15359
- : _this.storageAPI.get(_this.gridOptions.gridName, isGlobal);
15388
+ var settingsLoader = _this.gridOptions.saveSettings === false ? of(null) : _this.storageAPI.get(_this.gridOptions.gridName);
15360
15389
  return combineLatest([agGrid.gridReady, settingsLoader]);
15361
15390
  }), untilDestroyed(this))
15362
15391
  .subscribe(function (_a) {
@@ -15470,11 +15499,10 @@ var DatoGridControllerComponent = /** @class */ (function () {
15470
15499
  var data = _this.getGridData();
15471
15500
  _this.onGridChange.emit({
15472
15501
  filter: _this.gridQuery.getExternalFilter(),
15473
- sort: _this.gridQuery.getExternalSort(),
15502
+ sort: _this.gridQuery.getSort(),
15474
15503
  type: type,
15475
15504
  data: data
15476
15505
  });
15477
- triggerWindowResize();
15478
15506
  });
15479
15507
  };
15480
15508
  DatoGridControllerComponent.prototype.listenToStoreSettingsChanges = function () {
@@ -16639,18 +16667,6 @@ var DatoGridV2ToolbarComponent = /** @class */ (function () {
16639
16667
  this.registerGroupListeners();
16640
16668
  this.subscribeRowsSelectionData();
16641
16669
  };
16642
- DatoGridV2ToolbarComponent.prototype.getCellValueChangeEvent = function () {
16643
- var _this = this;
16644
- return this.gridController.gridQuery.waitForGrid(function () {
16645
- return _this.gridQuery.gridRef.cellValueChanged.pipe(debounceTime(100), untilDestroyed(_this));
16646
- });
16647
- };
16648
- DatoGridV2ToolbarComponent.prototype.getRowDataUpdatedEvent = function () {
16649
- var _this = this;
16650
- return this.gridController.gridQuery.waitForGrid(function () {
16651
- return _this.gridQuery.gridRef.rowDataUpdated.pipe(debounceTime(100), untilDestroyed(_this));
16652
- });
16653
- };
16654
16670
  DatoGridV2ToolbarComponent.prototype.onActionClick = function (action) {
16655
16671
  if (isFunction(action.onClick)) {
16656
16672
  var selectedRowsCount = this.gridController.gridQuery.getSelectedRowsCount();
@@ -21126,40 +21142,6 @@ var DatoEditableHeaderModule = /** @class */ (function () {
21126
21142
  * found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
21127
21143
  */
21128
21144
 
21129
- var RichTextService = /** @class */ (function () {
21130
- function RichTextService(http, config) {
21131
- this.http = http;
21132
- this.config = config;
21133
- }
21134
- RichTextService.prototype.getLib = function (appendScriptFunc, appendStyleFunc) {
21135
- if (!this.richTextScript$) {
21136
- this.initLib(appendScriptFunc, appendStyleFunc);
21137
- }
21138
- return this.richTextScript$;
21139
- };
21140
- RichTextService.prototype.initLib = function (appendScriptFunc, appendStyleFunc) {
21141
- this.richTextScript$ = combineLatest([
21142
- this.http
21143
- .get(this.config.paths.richText + "/index.js", { responseType: 'text' })
21144
- .pipe(tap(function (lib) { return appendScriptFunc(lib, 'rich-text-editor'); })),
21145
- this.http
21146
- .get(this.config.paths.richText + "/plugins/autocomplete/plugin.css", { responseType: 'text' })
21147
- .pipe(tap(function (style) { return appendStyleFunc(style, 'tinymce-autocomplete'); }))
21148
- ]).pipe(shareReplay(1));
21149
- };
21150
- RichTextService.ctorParameters = function () { return [
21151
- { type: HttpClient },
21152
- { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
21153
- ]; };
21154
- RichTextService.ɵprov = ɵɵdefineInjectable({ factory: function RichTextService_Factory() { return new RichTextService(ɵɵinject(HttpClient), ɵɵinject(DATO_CORE_CONFIG)); }, token: RichTextService, providedIn: "root" });
21155
- RichTextService = __decorate([
21156
- Injectable({ providedIn: 'root' }),
21157
- __param(1, Inject(DATO_CORE_CONFIG)),
21158
- __metadata("design:paramtypes", [HttpClient, Object])
21159
- ], RichTextService);
21160
- return RichTextService;
21161
- }());
21162
-
21163
21145
  /**
21164
21146
  * @license
21165
21147
  * Copyright Datorama. All Rights Reserved.
@@ -21173,12 +21155,12 @@ var getTinymce = function () {
21173
21155
  var ɵ0$3 = getTinymce;
21174
21156
  var DatoRichTextDirective = /** @class */ (function (_super) {
21175
21157
  __extends(DatoRichTextDirective, _super);
21176
- function DatoRichTextDirective(ngZone, richTextService, config, host) {
21158
+ function DatoRichTextDirective(ngZone, http, host, config) {
21177
21159
  var _this = _super.call(this) || this;
21178
21160
  _this.ngZone = ngZone;
21179
- _this.richTextService = richTextService;
21180
- _this.config = config;
21161
+ _this.http = http;
21181
21162
  _this.host = host;
21163
+ _this.config = config;
21182
21164
  _this.autocompleteOptions = {};
21183
21165
  _this.forcePlainTextPasting = false;
21184
21166
  _this.format = 'html';
@@ -21212,11 +21194,28 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
21212
21194
  base: this.config.paths.richText,
21213
21195
  query: ''
21214
21196
  };
21215
- this.richTextService
21216
- .getLib(appendScript, appendStyle)
21217
- .pipe(untilDestroyed(this))
21218
- .subscribe(function () {
21219
- _this.init.call(_this);
21197
+ /**
21198
+ * We support only one instance in load time
21199
+ */
21200
+ if (window.tinymce) {
21201
+ this.init.call(this);
21202
+ }
21203
+ else {
21204
+ this.loadLib().subscribe(function (lib) {
21205
+ appendScript(lib, 'rich-text-editor');
21206
+ _this.init.call(_this);
21207
+ _this.loadAutoCompleteStyle();
21208
+ });
21209
+ }
21210
+ };
21211
+ DatoRichTextDirective.prototype.loadLib = function () {
21212
+ return this.http.get(this.config.paths.richText + "/index.js", { responseType: 'text' });
21213
+ };
21214
+ DatoRichTextDirective.prototype.loadAutoCompleteStyle = function () {
21215
+ this.http
21216
+ .get(this.config.paths.richText + "/plugins/autocomplete/plugin.css", { responseType: 'text' })
21217
+ .subscribe(function (style) {
21218
+ appendStyle(style, 'tinymce-autocomplete');
21220
21219
  });
21221
21220
  };
21222
21221
  DatoRichTextDirective.prototype.initEditor = function (_, editor) {
@@ -21309,9 +21308,9 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
21309
21308
  var DatoRichTextDirective_1;
21310
21309
  DatoRichTextDirective.ctorParameters = function () { return [
21311
21310
  { type: NgZone },
21312
- { type: RichTextService },
21313
- { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] },
21314
- { type: ElementRef }
21311
+ { type: HttpClient },
21312
+ { type: ElementRef },
21313
+ { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
21315
21314
  ]; };
21316
21315
  __decorate([
21317
21316
  Input(),
@@ -21377,9 +21376,10 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
21377
21376
  }
21378
21377
  ]
21379
21378
  }),
21380
- __param(2, Inject(DATO_CORE_CONFIG)),
21379
+ __param(3, Inject(DATO_CORE_CONFIG)),
21381
21380
  __metadata("design:paramtypes", [NgZone,
21382
- RichTextService, Object, ElementRef])
21381
+ HttpClient,
21382
+ ElementRef, Object])
21383
21383
  ], DatoRichTextDirective);
21384
21384
  return DatoRichTextDirective;
21385
21385
  }(BaseCustomControl));
@@ -23902,9 +23902,7 @@ var DatoBreadcrumbsComponent = /** @class */ (function () {
23902
23902
  };
23903
23903
  DatoBreadcrumbsComponent.prototype.initEditableHeader = function () {
23904
23904
  var _this = this;
23905
- this.headerControl.valueChanges
23906
- .pipe(debounceTime(300), untilDestroyed(this))
23907
- .subscribe(function (res) {
23905
+ this.headerControl.valueChanges.pipe(debounceTime(300), untilDestroyed(this)).subscribe(function (res) {
23908
23906
  _this.updateEditableText.emit(res);
23909
23907
  _this.cdr.detectChanges();
23910
23908
  });
@@ -25267,7 +25265,7 @@ function fixNgLeaks() {
25267
25265
  };
25268
25266
  }
25269
25267
 
25270
- window.coreVersion = '22.8.2-rc.';
25268
+ window.coreVersion = '22.9.0';
25271
25269
 
25272
25270
  /**
25273
25271
  * @license
@@ -25281,5 +25279,5 @@ window.coreVersion = '22.8.2-rc.';
25281
25279
  * Generated bundle index. Do not edit.
25282
25280
  */
25283
25281
 
25284
- 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 };
25282
+ 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 };
25285
25283
  //# sourceMappingURL=datorama-core.js.map