@datorama/core 22.8.2 → 22.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12775,6 +12775,20 @@
12775
12775
  this.showClearFiltersButton = true;
12776
12776
  this.excludedValues = new Set();
12777
12777
  }
12778
+ Object.defineProperty(DatoGridFilterComponent.prototype, "operatorToggler", {
12779
+ set: function (togglers) {
12780
+ if (togglers && this.inputConditionsOperator) {
12781
+ togglers.forEach(function (toggler) {
12782
+ if (!toggler.isDisabled) {
12783
+ toggler.setDisabledState(true);
12784
+ }
12785
+ });
12786
+ this.cdr.detectChanges();
12787
+ }
12788
+ },
12789
+ enumerable: true,
12790
+ configurable: true
12791
+ });
12778
12792
  Object.defineProperty(DatoGridFilterComponent.prototype, "byValueControl", {
12779
12793
  get: function () {
12780
12794
  return this.filterForm.get('byValue');
@@ -12818,7 +12832,7 @@
12818
12832
  Object.defineProperty(DatoGridFilterComponent.prototype, "defaultConditional", {
12819
12833
  get: function () {
12820
12834
  return this.fb.group({
12821
- operator: [exports.OperatorTypes.AND],
12835
+ operator: [this.inputConditionsOperator || exports.OperatorTypes.AND],
12822
12836
  conditions: this.fb.array([this.defaultOperand])
12823
12837
  });
12824
12838
  },
@@ -12887,6 +12901,7 @@
12887
12901
  var colFilter = filter || colDef.filter;
12888
12902
  var filterOptions = DatoGridFilterOptionsMap[colFilter];
12889
12903
  this.pivotColumn = gridQuery.api.columns.getSecondaryPivotColumn(pivotKeys, pivotValueColumn);
12904
+ this.inputConditionsOperator = filtersConfig.inputConditionsOperator;
12890
12905
  if (!isNil(filtersConfig.showClearFiltersButton)) {
12891
12906
  this.showClearFiltersButton = filtersConfig.showClearFiltersButton;
12892
12907
  }
@@ -13224,7 +13239,7 @@
13224
13239
  return this.defaultConditional;
13225
13240
  }
13226
13241
  return this.fb.group({
13227
- operator: [conditional.operator],
13242
+ operator: [this.inputConditionsOperator || conditional.operator],
13228
13243
  conditions: this.fb.array(this.buildConditions(conditional.conditions))
13229
13244
  });
13230
13245
  };
@@ -13394,10 +13409,15 @@
13394
13409
  { type: DatoTranslateService },
13395
13410
  { type: core.ChangeDetectorRef }
13396
13411
  ]; };
13412
+ __decorate([
13413
+ core.ViewChildren('operatorToggler'),
13414
+ __metadata("design:type", core.QueryList),
13415
+ __metadata("design:paramtypes", [core.QueryList])
13416
+ ], DatoGridFilterComponent.prototype, "operatorToggler", null);
13397
13417
  DatoGridFilterComponent = __decorate([
13398
13418
  core.Component({
13399
13419
  selector: 'dato-grid-filter',
13400
- 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",
13420
+ 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",
13401
13421
  changeDetection: core.ChangeDetectionStrategy.OnPush,
13402
13422
  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}"]
13403
13423
  }),
@@ -25444,7 +25464,7 @@
25444
25464
  };
25445
25465
  }
25446
25466
 
25447
- window.coreVersion = '22.8.2';
25467
+ window.coreVersion = '22.9.1';
25448
25468
 
25449
25469
  exports.APP_TRANSLATE = APP_TRANSLATE;
25450
25470
  exports.AceService = AceService;