@eqproject/eqp-dynamic-module 2.10.24 → 2.10.26

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 (29) hide show
  1. package/esm2020/lib/components/private/form-statistics/filter-templates/attachment-filter-template/attachment-filter-template.component.mjs +9 -7
  2. package/esm2020/lib/components/private/form-statistics/filter-templates/boolean-filter-template/boolean-filter-template.component.mjs +11 -7
  3. package/esm2020/lib/components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component.mjs +17 -7
  4. package/esm2020/lib/components/private/form-statistics/filter-templates/image-filter-template/image-filter-template.component.mjs +9 -7
  5. package/esm2020/lib/components/private/form-statistics/filter-templates/image-selector-filter-template/image-selector-filter-template.component.mjs +9 -7
  6. package/esm2020/lib/components/private/form-statistics/filter-templates/list-form-record-filter-template/list-form-record-filter-template.component.mjs +6 -4
  7. package/esm2020/lib/components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component.mjs +11 -7
  8. package/esm2020/lib/components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component.mjs +16 -6
  9. package/esm2020/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +11 -7
  10. package/esm2020/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +15 -10
  11. package/esm2020/lib/components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component.mjs +5 -3
  12. package/esm2020/lib/models/statistic.model.mjs +2 -1
  13. package/fesm2015/eqproject-eqp-dynamic-module.mjs +104 -56
  14. package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
  15. package/fesm2020/eqproject-eqp-dynamic-module.mjs +104 -56
  16. package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
  17. package/lib/components/private/form-statistics/filter-templates/attachment-filter-template/attachment-filter-template.component.d.ts +1 -0
  18. package/lib/components/private/form-statistics/filter-templates/boolean-filter-template/boolean-filter-template.component.d.ts +2 -0
  19. package/lib/components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component.d.ts +2 -0
  20. package/lib/components/private/form-statistics/filter-templates/image-filter-template/image-filter-template.component.d.ts +1 -0
  21. package/lib/components/private/form-statistics/filter-templates/image-selector-filter-template/image-selector-filter-template.component.d.ts +1 -0
  22. package/lib/components/private/form-statistics/filter-templates/list-form-record-filter-template/list-form-record-filter-template.component.d.ts +1 -0
  23. package/lib/components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component.d.ts +2 -0
  24. package/lib/components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component.d.ts +2 -0
  25. package/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.d.ts +2 -0
  26. package/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.d.ts +2 -0
  27. package/lib/components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component.d.ts +1 -0
  28. package/lib/models/statistic.model.d.ts +1 -0
  29. package/package.json +1 -1
@@ -1950,6 +1950,7 @@ class Statistic {
1950
1950
  this.isX = false;
1951
1951
  this.isY = false;
1952
1952
  this.aggregations = null;
1953
+ this.operatorsGroupBy = null;
1953
1954
  }
1954
1955
  }
1955
1956
  class FilterStatistic {
@@ -8877,6 +8878,7 @@ class TextFilterTemplateComponent {
8877
8878
  this.activeCondition = false;
8878
8879
  this.platform = Capacitor.getPlatform();
8879
8880
  this.aggregationFunctionEnum = NotNumberAggregationFunctionEnum;
8881
+ this.operatorsGroupByEnum = NumberAggregationFunctionEnum;
8880
8882
  }
8881
8883
  ngOnInit() {
8882
8884
  if (this.Statistic != null) {
@@ -8884,6 +8886,7 @@ class TextFilterTemplateComponent {
8884
8886
  this.record[this.field.Name] = this.Statistic.value;
8885
8887
  this.visible = this.Statistic.visible;
8886
8888
  this.aggregations = this.Statistic.aggregations;
8889
+ this.operatorsGroupBy = this.Statistic.operatorsGroupBy;
8887
8890
  }
8888
8891
  this.initStyles();
8889
8892
  }
@@ -8892,6 +8895,7 @@ class TextFilterTemplateComponent {
8892
8895
  this.isX = changes['Statistic'].currentValue.hasOwnProperty('isX') ? changes['Statistic'].currentValue.isX : null;
8893
8896
  this.isY = changes['Statistic'].currentValue.hasOwnProperty('isY') ? changes['Statistic'].currentValue.isY : null;
8894
8897
  this.aggregations = changes['Statistic'].currentValue.hasOwnProperty('aggregations') ? changes['Statistic'].currentValue.aggregations : null;
8898
+ this.operatorsGroupBy = changes['Statistic'].currentValue.hasOwnProperty('operatorsGroupBy') ? changes['Statistic'].currentValue.operatorsGroupBy : null;
8895
8899
  }
8896
8900
  }
8897
8901
  initStyles() {
@@ -8928,9 +8932,10 @@ class TextFilterTemplateComponent {
8928
8932
  logicoperator: this.selectedLogicOperator,
8929
8933
  fieldtype: this.field.FieldType,
8930
8934
  visible: this.visible,
8931
- isX: this.isX,
8932
- isY: this.isY,
8933
- aggregations: this.aggregations
8935
+ isX: this.isX === undefined ? false : this.isX,
8936
+ isY: this.isY === undefined ? false : this.isY,
8937
+ aggregations: this.aggregations,
8938
+ operatorsGroupBy: this.operatorsGroupBy
8934
8939
  };
8935
8940
  this.filterChange.emit(statistic);
8936
8941
  }
@@ -8946,10 +8951,10 @@ class TextFilterTemplateComponent {
8946
8951
  }
8947
8952
  }
8948
8953
  TextFilterTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextFilterTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8949
- TextFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TextFilterTemplateComponent, selector: "text-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY" }, outputs: { recordChange: "recordChange", filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <input\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [formControlName]=\"field.Name\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"record[field.Name]\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n />\r\n <mat-error\r\n *ngIf=\"\r\n !field.FormFormGroup.valid &&\r\n field.FormFormGroup.controls[field.Name].touched\r\n \"\r\n >\r\n Min. Caratteri: {{ field.MinLenght }} - Max. Caratteri:\r\n {{ field.MaxLenght }}\r\n </mat-error>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone || platform != 'web'\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModelInput)]=\"selectedLogicOperator\"\r\n [showCancelButton]=\"false\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n \r\n </div>\r\n</div>\r\n", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}.keyboard_speaking{color:red}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"], dependencies: [{ kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "directive", type: SpeechToTextDirective, selector: "[SpeechToText]", inputs: ["bindedText"], outputs: ["bindedTextChange"] }] });
8954
+ TextFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TextFilterTemplateComponent, selector: "text-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY" }, outputs: { recordChange: "recordChange", filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <input\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [formControlName]=\"field.Name\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"record[field.Name]\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n />\r\n <mat-error\r\n *ngIf=\"\r\n !field.FormFormGroup.valid &&\r\n field.FormFormGroup.controls[field.Name].touched\r\n \"\r\n >\r\n Min. Caratteri: {{ field.MinLenght }} - Max. Caratteri:\r\n {{ field.MaxLenght }}\r\n </mat-error>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone || platform != 'web'\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModelInput)]=\"selectedLogicOperator\"\r\n [showCancelButton]=\"false\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n \r\n </div>\r\n</div>\r\n", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}.keyboard_speaking{color:red}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"], dependencies: [{ kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "directive", type: SpeechToTextDirective, selector: "[SpeechToText]", inputs: ["bindedText"], outputs: ["bindedTextChange"] }] });
8950
8955
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextFilterTemplateComponent, decorators: [{
8951
8956
  type: Component,
8952
- args: [{ selector: 'text-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <input\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [formControlName]=\"field.Name\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"record[field.Name]\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n />\r\n <mat-error\r\n *ngIf=\"\r\n !field.FormFormGroup.valid &&\r\n field.FormFormGroup.controls[field.Name].touched\r\n \"\r\n >\r\n Min. Caratteri: {{ field.MinLenght }} - Max. Caratteri:\r\n {{ field.MaxLenght }}\r\n </mat-error>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone || platform != 'web'\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModelInput)]=\"selectedLogicOperator\"\r\n [showCancelButton]=\"false\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n \r\n </div>\r\n</div>\r\n", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}.keyboard_speaking{color:red}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"] }]
8957
+ args: [{ selector: 'text-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <input\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [formControlName]=\"field.Name\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"record[field.Name]\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n />\r\n <mat-error\r\n *ngIf=\"\r\n !field.FormFormGroup.valid &&\r\n field.FormFormGroup.controls[field.Name].touched\r\n \"\r\n >\r\n Min. Caratteri: {{ field.MinLenght }} - Max. Caratteri:\r\n {{ field.MaxLenght }}\r\n </mat-error>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone || platform != 'web'\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModelInput)]=\"selectedLogicOperator\"\r\n [showCancelButton]=\"false\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n \r\n </div>\r\n</div>\r\n", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}.keyboard_speaking{color:red}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"] }]
8953
8958
  }], ctorParameters: function () { return []; }, propDecorators: { field: [{
8954
8959
  type: Input
8955
8960
  }], record: [{
@@ -8977,6 +8982,7 @@ class NumericFilterTemplateComponent {
8977
8982
  this.visible = false;
8978
8983
  this.currentStatistic = null;
8979
8984
  this.aggregationFunctionEnum = NumberAggregationFunctionEnum;
8985
+ this.operatorsGroupByEnum = NumberAggregationFunctionEnum;
8980
8986
  }
8981
8987
  ngOnInit() {
8982
8988
  if (this.Statistic != null) {
@@ -8986,6 +8992,13 @@ class NumericFilterTemplateComponent {
8986
8992
  this.isX = this.Statistic.isX;
8987
8993
  this.isY = this.Statistic.isY;
8988
8994
  this.aggregations = this.Statistic.aggregations;
8995
+ this.operatorsGroupBy = this.Statistic.operatorsGroupBy;
8996
+ if (this.isX === undefined) {
8997
+ this.isX = false;
8998
+ }
8999
+ if (this.isY === undefined) {
9000
+ this.isY = false;
9001
+ }
8989
9002
  }
8990
9003
  this.configureEqpNumericOptions();
8991
9004
  this.configureControllers();
@@ -8996,6 +9009,7 @@ class NumericFilterTemplateComponent {
8996
9009
  this.isX = changes['Statistic'].currentValue.hasOwnProperty('isX') ? changes['Statistic'].currentValue.isX : null;
8997
9010
  this.isY = changes['Statistic'].currentValue.hasOwnProperty('isY') ? changes['Statistic'].currentValue.isY : null;
8998
9011
  this.aggregations = changes['Statistic'].currentValue.hasOwnProperty('aggregations') ? changes['Statistic'].currentValue.aggregations : null;
9012
+ this.operatorsGroupBy = changes['Statistic'].currentValue.hasOwnProperty('operatorsGroupBy') ? changes['Statistic'].currentValue.operatorsGroupBy : null;
8999
9013
  }
9000
9014
  }
9001
9015
  //Funzione per parsare il campo stylecss dell'oggetto field ed applicarlo all'html
@@ -9022,9 +9036,10 @@ class NumericFilterTemplateComponent {
9022
9036
  logicoperator: this.selectedLogicOperator,
9023
9037
  fieldtype: this.field.FieldType,
9024
9038
  visible: this.visible,
9025
- isX: this.isX,
9026
- isY: this.isY,
9027
- aggregations: this.aggregations
9039
+ isX: this.isX === undefined ? false : this.isX,
9040
+ isY: this.isY === undefined ? false : this.isY,
9041
+ aggregations: this.aggregations,
9042
+ operatorsGroupBy: this.operatorsGroupBy
9028
9043
  };
9029
9044
  return statistic;
9030
9045
  }
@@ -9087,10 +9102,10 @@ class NumericFilterTemplateComponent {
9087
9102
  }
9088
9103
  }
9089
9104
  NumericFilterTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NumericFilterTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9090
- NumericFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NumericFilterTemplateComponent, selector: "numeric-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY", filterResultViewMode: "filterResultViewMode" }, outputs: { filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isX , 'btn-success': isX }\" (click)=\"becomeTheCoord('X')\">X</button>\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isY , 'btn-success': isY }\" (click)=\"becomeTheCoord('Y')\">Y</button>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <input [ngStyle]=\"FieldstyleObj\" matInput eqpNumericMask [formControlName]=\"field.Name\" [readonly]=\"false\"\r\n [required]=\"false\" [(ngModel)]=\"record[field.Name]\" [options]=\"eqpNumericOptions\"\r\n [step]=\"field.IsInteger ? 1 : null\" (ngModelChange)=\"onFilterChange()\" />\r\n <mat-error *ngIf=\"!field.FormFormGroup.valid && field.FormFormGroup.controls[field.Name].touched\">\r\n Min: {{field.MinValue}} - Max: {{field.MaxValue}}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorNumeric\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;border-top-left-radius:0;border-bottom-left-radius:0;width:35px;min-width:35px}.rowCol .coordinatesCol button{height:30px;width:30px;margin:1px;padding:0}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep eqp-select mat-form-field.mat-mdc-form-field{margin-top:initial!important}::ng-deep eqp-select mat-form-field .mdc-text-field{padding-top:initial!important;height:56px}\n"], dependencies: [{ kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "directive", type: i5$1.EqpNumericDirective, selector: "[eqpNumericMask]", inputs: ["options"] }] });
9105
+ NumericFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NumericFilterTemplateComponent, selector: "numeric-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY", filterResultViewMode: "filterResultViewMode" }, outputs: { filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isX , 'btn-success': isX }\" (click)=\"becomeTheCoord('X')\">X</button>\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isY , 'btn-success': isY }\" (click)=\"becomeTheCoord('Y')\">Y</button>\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <input [ngStyle]=\"FieldstyleObj\" matInput eqpNumericMask [formControlName]=\"field.Name\" [readonly]=\"false\"\r\n [required]=\"false\" [(ngModel)]=\"record[field.Name]\" [options]=\"eqpNumericOptions\"\r\n [step]=\"field.IsInteger ? 1 : null\" (ngModelChange)=\"onFilterChange()\" />\r\n <mat-error *ngIf=\"!field.FormFormGroup.valid && field.FormFormGroup.controls[field.Name].touched\">\r\n Min: {{field.MinValue}} - Max: {{field.MaxValue}}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorNumeric\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;border-top-left-radius:0;border-bottom-left-radius:0;width:35px;min-width:35px}.rowCol .coordinatesCol button{height:30px;width:30px;margin:1px;padding:0}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep eqp-select mat-form-field.mat-mdc-form-field{margin-top:initial!important}::ng-deep eqp-select mat-form-field .mdc-text-field{padding-top:initial!important;height:56px}\n"], dependencies: [{ kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "directive", type: i5$1.EqpNumericDirective, selector: "[eqpNumericMask]", inputs: ["options"] }] });
9091
9106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NumericFilterTemplateComponent, decorators: [{
9092
9107
  type: Component,
9093
- args: [{ selector: 'numeric-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isX , 'btn-success': isX }\" (click)=\"becomeTheCoord('X')\">X</button>\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isY , 'btn-success': isY }\" (click)=\"becomeTheCoord('Y')\">Y</button>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <input [ngStyle]=\"FieldstyleObj\" matInput eqpNumericMask [formControlName]=\"field.Name\" [readonly]=\"false\"\r\n [required]=\"false\" [(ngModel)]=\"record[field.Name]\" [options]=\"eqpNumericOptions\"\r\n [step]=\"field.IsInteger ? 1 : null\" (ngModelChange)=\"onFilterChange()\" />\r\n <mat-error *ngIf=\"!field.FormFormGroup.valid && field.FormFormGroup.controls[field.Name].touched\">\r\n Min: {{field.MinValue}} - Max: {{field.MaxValue}}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorNumeric\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;border-top-left-radius:0;border-bottom-left-radius:0;width:35px;min-width:35px}.rowCol .coordinatesCol button{height:30px;width:30px;margin:1px;padding:0}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep eqp-select mat-form-field.mat-mdc-form-field{margin-top:initial!important}::ng-deep eqp-select mat-form-field .mdc-text-field{padding-top:initial!important;height:56px}\n"] }]
9108
+ args: [{ selector: 'numeric-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isX , 'btn-success': isX }\" (click)=\"becomeTheCoord('X')\">X</button>\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isY , 'btn-success': isY }\" (click)=\"becomeTheCoord('Y')\">Y</button>\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <input [ngStyle]=\"FieldstyleObj\" matInput eqpNumericMask [formControlName]=\"field.Name\" [readonly]=\"false\"\r\n [required]=\"false\" [(ngModel)]=\"record[field.Name]\" [options]=\"eqpNumericOptions\"\r\n [step]=\"field.IsInteger ? 1 : null\" (ngModelChange)=\"onFilterChange()\" />\r\n <mat-error *ngIf=\"!field.FormFormGroup.valid && field.FormFormGroup.controls[field.Name].touched\">\r\n Min: {{field.MinValue}} - Max: {{field.MaxValue}}\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorNumeric\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;border-top-left-radius:0;border-bottom-left-radius:0;width:35px;min-width:35px}.rowCol .coordinatesCol button{height:30px;width:30px;margin:1px;padding:0}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep eqp-select mat-form-field.mat-mdc-form-field{margin-top:initial!important}::ng-deep eqp-select mat-form-field .mdc-text-field{padding-top:initial!important;height:56px}\n"] }]
9094
9109
  }], ctorParameters: function () { return []; }, propDecorators: { field: [{
9095
9110
  type: Input
9096
9111
  }], record: [{
@@ -9117,6 +9132,7 @@ class BooleanFilterTemplateComponent {
9117
9132
  this.visible = false;
9118
9133
  this.currentStatistic = null;
9119
9134
  this.aggregationFunctionEnum = NotNumberAggregationFunctionEnum;
9135
+ this.operatorsGroupByEnum = NumberAggregationFunctionEnum;
9120
9136
  }
9121
9137
  ngOnInit() {
9122
9138
  if (this.Statistic != null) {
@@ -9124,6 +9140,7 @@ class BooleanFilterTemplateComponent {
9124
9140
  this.record[this.field.Name] = this.Statistic.value;
9125
9141
  this.visible = this.Statistic.visible;
9126
9142
  this.aggregations = this.Statistic.aggregations;
9143
+ this.operatorsGroupBy = this.Statistic.operatorsGroupBy;
9127
9144
  }
9128
9145
  this.configureControllers();
9129
9146
  this.initStyles();
@@ -9138,6 +9155,7 @@ class BooleanFilterTemplateComponent {
9138
9155
  this.isX = changes['Statistic'].currentValue.hasOwnProperty('isX') ? changes['Statistic'].currentValue.isX : null;
9139
9156
  this.isY = changes['Statistic'].currentValue.hasOwnProperty('isY') ? changes['Statistic'].currentValue.isY : null;
9140
9157
  this.aggregations = changes['Statistic'].currentValue.hasOwnProperty('aggregations') ? changes['Statistic'].currentValue.aggregations : null;
9158
+ this.operatorsGroupBy = changes['Statistic'].currentValue.hasOwnProperty('operatorsGroupBy') ? changes['Statistic'].currentValue.operatorsGroupBy : null;
9141
9159
  }
9142
9160
  }
9143
9161
  /**
@@ -9153,9 +9171,10 @@ class BooleanFilterTemplateComponent {
9153
9171
  logicoperator: this.selectedLogicOperator,
9154
9172
  fieldtype: this.field.FieldType,
9155
9173
  visible: this.visible,
9156
- isX: this.isX,
9157
- isY: this.isY,
9158
- aggregations: this.aggregations
9174
+ isX: this.isX === undefined ? false : this.isX,
9175
+ isY: this.isY === undefined ? false : this.isY,
9176
+ aggregations: this.aggregations,
9177
+ operatorsGroupBy: this.operatorsGroupBy
9159
9178
  };
9160
9179
  this.filterChange.emit(statistic);
9161
9180
  }
@@ -9178,10 +9197,10 @@ class BooleanFilterTemplateComponent {
9178
9197
  }
9179
9198
  }
9180
9199
  BooleanFilterTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BooleanFilterTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9181
- BooleanFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BooleanFilterTemplateComponent, selector: "boolean-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY" }, outputs: { filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1 ps-3\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <input [ngStyle]=\"FieldstyleObj\" matInput [formControlName]=\"field.Name\" [disabled] [readonly]=\"true\"\r\n [required]=\"false\" [(ngModel)]=\"record[field.Name]\" \r\n />\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorBoolean\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div> \r\n</div>\r\n", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"], dependencies: [{ kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }] });
9200
+ BooleanFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: BooleanFilterTemplateComponent, selector: "boolean-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY" }, outputs: { filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1 ps-3\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <input [ngStyle]=\"FieldstyleObj\" matInput [formControlName]=\"field.Name\" [disabled] [readonly]=\"true\"\r\n [required]=\"false\" [(ngModel)]=\"record[field.Name]\" \r\n />\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorBoolean\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div> \r\n</div>\r\n", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"], dependencies: [{ kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }] });
9182
9201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: BooleanFilterTemplateComponent, decorators: [{
9183
9202
  type: Component,
9184
- args: [{ selector: 'boolean-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1 ps-3\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <input [ngStyle]=\"FieldstyleObj\" matInput [formControlName]=\"field.Name\" [disabled] [readonly]=\"true\"\r\n [required]=\"false\" [(ngModel)]=\"record[field.Name]\" \r\n />\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorBoolean\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div> \r\n</div>\r\n", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"] }]
9203
+ args: [{ selector: 'boolean-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1 ps-3\" [ngStyle]=\"LabelstyleObj\"> {{field.Description}} </mat-label>\r\n <input [ngStyle]=\"FieldstyleObj\" matInput [formControlName]=\"field.Name\" [disabled] [readonly]=\"true\"\r\n [required]=\"false\" [(ngModel)]=\"record[field.Name]\" \r\n />\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorBoolean\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div> \r\n</div>\r\n", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"] }]
9185
9204
  }], ctorParameters: function () { return []; }, propDecorators: { field: [{
9186
9205
  type: Input
9187
9206
  }], record: [{
@@ -9208,6 +9227,7 @@ class DateFilterTemplateComponent {
9208
9227
  this.visible = false;
9209
9228
  this.currentStatistic = null;
9210
9229
  this.aggregationFunctionEnum = NotNumberAggregationFunctionEnum;
9230
+ this.operatorsGroupByEnum = NumberAggregationFunctionEnum;
9211
9231
  }
9212
9232
  ngOnInit() {
9213
9233
  if (this.Statistic != null) {
@@ -9217,6 +9237,13 @@ class DateFilterTemplateComponent {
9217
9237
  this.isX = this.Statistic.isX;
9218
9238
  this.isY = this.Statistic.isY;
9219
9239
  this.aggregations = this.Statistic.aggregations;
9240
+ this.operatorsGroupBy = this.Statistic.operatorsGroupBy;
9241
+ if (this.isX === undefined) {
9242
+ this.isX = false;
9243
+ }
9244
+ if (this.isY === undefined) {
9245
+ this.isY = false;
9246
+ }
9220
9247
  }
9221
9248
  this.setTimeType();
9222
9249
  this.setOutputFormat();
@@ -9226,6 +9253,7 @@ class DateFilterTemplateComponent {
9226
9253
  this.isX = changes['Statistic'].currentValue.hasOwnProperty('isX') ? changes['Statistic'].currentValue.isX : null;
9227
9254
  this.isY = changes['Statistic'].currentValue.hasOwnProperty('isY') ? changes['Statistic'].currentValue.isY : null;
9228
9255
  this.aggregations = changes['Statistic'].currentValue.hasOwnProperty('aggregations') ? changes['Statistic'].currentValue.aggregations : null;
9256
+ this.operatorsGroupBy = changes['Statistic'].currentValue.hasOwnProperty('operatorsGroupBy') ? changes['Statistic'].currentValue.operatorsGroupBy : null;
9229
9257
  }
9230
9258
  }
9231
9259
  /**
@@ -9262,9 +9290,10 @@ class DateFilterTemplateComponent {
9262
9290
  logicoperator: this.selectedLogicOperator,
9263
9291
  fieldtype: this.field.FieldType,
9264
9292
  visible: this.visible,
9265
- isX: this.isX,
9266
- isY: this.isY,
9267
- aggregations: this.aggregations
9293
+ isX: this.isX === undefined ? false : this.isX,
9294
+ isY: this.isY === undefined ? false : this.isY,
9295
+ aggregations: this.aggregations,
9296
+ operatorsGroupBy: this.operatorsGroupBy
9268
9297
  };
9269
9298
  return statistic;
9270
9299
  }
@@ -9307,10 +9336,10 @@ class DateFilterTemplateComponent {
9307
9336
  }
9308
9337
  }
9309
9338
  DateFilterTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateFilterTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9310
- DateFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DateFilterTemplateComponent, selector: "date-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY", filterResultViewMode: "filterResultViewMode" }, outputs: { filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isX , 'btn-success': isX }\" (click)=\"becomeTheCoord('X')\">X</button>\r\n </div> \r\n <div class=\"valueCol\">\r\n <tmw-datetimepicker [placeholder]=\"field.Description\" [label]=\"field.Description\" [pickerMode]=\"mode\"\r\n [formGroupInput]=\"field.FormFormGroup\" [formControlNameInput]=\"field.Name\"\r\n [minDate]=\"field.MinDate ? field.MinDate : null\" [maxDate]=\"field.MaxDate ? field.MaxDate : null\"\r\n [disabled]=\"field.FormFormGroup.disabled\" [(ngModelInput)]=\"record[field.Name]\"\r\n (ngModelInputChange)=\"onFilterChange()\" [outputFormat]=\"outputFormat\" >\r\n </tmw-datetimepicker>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorNumeric\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;border-top-left-radius:0;border-bottom-left-radius:0;width:35px;min-width:35px}.rowCol .coordinatesCol button{height:30px;width:30px;margin:1px;padding:0}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"], dependencies: [{ kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "component", type: i8.TmwDateTimePickerComponent, selector: "tmw-datetimepicker", inputs: ["debugMode", "ngModelInput", "formGroupInput", "formControlNameInput", "pickerMode", "timeType", "label", "placeholder", "hint", "minDate", "maxDate", "locale", "inputFormat", "outputFormat", "forSaveLocalOnDB", "disabled", "readonly", "currentDateAsDefault", "showSpinners", "touchUi", "enableMeridian", "hideTime", "stepHour", "showHours", "hourLabel", "stepMinute", "showMinutes", "minuteLabel", "stepSecond", "showSeconds", "secondLabel", "disableMinute", "dayLabel", "monthLabel", "yearLabel", "highLightedDates", "highLightedAriaFormat"], outputs: ["ngModelInputChange"] }] });
9339
+ DateFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DateFilterTemplateComponent, selector: "date-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY", filterResultViewMode: "filterResultViewMode" }, outputs: { filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isX , 'btn-success': isX }\" (click)=\"becomeTheCoord('X')\">X</button>\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <tmw-datetimepicker [placeholder]=\"field.Description\" [label]=\"field.Description\" [pickerMode]=\"mode\"\r\n [formGroupInput]=\"field.FormFormGroup\" [formControlNameInput]=\"field.Name\"\r\n [minDate]=\"field.MinDate ? field.MinDate : null\" [maxDate]=\"field.MaxDate ? field.MaxDate : null\"\r\n [disabled]=\"field.FormFormGroup.disabled\" [(ngModelInput)]=\"record[field.Name]\"\r\n (ngModelInputChange)=\"onFilterChange()\" [outputFormat]=\"outputFormat\" >\r\n </tmw-datetimepicker>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorNumeric\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;border-top-left-radius:0;border-bottom-left-radius:0;width:35px;min-width:35px}.rowCol .coordinatesCol button{height:30px;width:30px;margin:1px;padding:0}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"], dependencies: [{ kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "component", type: i8.TmwDateTimePickerComponent, selector: "tmw-datetimepicker", inputs: ["debugMode", "ngModelInput", "formGroupInput", "formControlNameInput", "pickerMode", "timeType", "label", "placeholder", "hint", "minDate", "maxDate", "locale", "inputFormat", "outputFormat", "forSaveLocalOnDB", "disabled", "readonly", "currentDateAsDefault", "showSpinners", "touchUi", "enableMeridian", "hideTime", "stepHour", "showHours", "hourLabel", "stepMinute", "showMinutes", "minuteLabel", "stepSecond", "showSeconds", "secondLabel", "disableMinute", "dayLabel", "monthLabel", "yearLabel", "highLightedDates", "highLightedAriaFormat"], outputs: ["ngModelInputChange"] }] });
9311
9340
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DateFilterTemplateComponent, decorators: [{
9312
9341
  type: Component,
9313
- args: [{ selector: 'date-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isX , 'btn-success': isX }\" (click)=\"becomeTheCoord('X')\">X</button>\r\n </div> \r\n <div class=\"valueCol\">\r\n <tmw-datetimepicker [placeholder]=\"field.Description\" [label]=\"field.Description\" [pickerMode]=\"mode\"\r\n [formGroupInput]=\"field.FormFormGroup\" [formControlNameInput]=\"field.Name\"\r\n [minDate]=\"field.MinDate ? field.MinDate : null\" [maxDate]=\"field.MaxDate ? field.MaxDate : null\"\r\n [disabled]=\"field.FormFormGroup.disabled\" [(ngModelInput)]=\"record[field.Name]\"\r\n (ngModelInputChange)=\"onFilterChange()\" [outputFormat]=\"outputFormat\" >\r\n </tmw-datetimepicker>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorNumeric\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;border-top-left-radius:0;border-bottom-left-radius:0;width:35px;min-width:35px}.rowCol .coordinatesCol button{height:30px;width:30px;margin:1px;padding:0}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"] }]
9342
+ args: [{ selector: 'date-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-primary': !isX , 'btn-success': isX }\" (click)=\"becomeTheCoord('X')\">X</button>\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <tmw-datetimepicker [placeholder]=\"field.Description\" [label]=\"field.Description\" [pickerMode]=\"mode\"\r\n [formGroupInput]=\"field.FormFormGroup\" [formControlNameInput]=\"field.Name\"\r\n [minDate]=\"field.MinDate ? field.MinDate : null\" [maxDate]=\"field.MaxDate ? field.MaxDate : null\"\r\n [disabled]=\"field.FormFormGroup.disabled\" [(ngModelInput)]=\"record[field.Name]\"\r\n (ngModelInputChange)=\"onFilterChange()\" [outputFormat]=\"outputFormat\" >\r\n </tmw-datetimepicker>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorNumeric\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{display:flex;justify-content:center;align-items:flex-start;flex-direction:column;border-top-left-radius:0;border-bottom-left-radius:0;width:35px;min-width:35px}.rowCol .coordinatesCol button{height:30px;width:30px;margin:1px;padding:0}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"] }]
9314
9343
  }], ctorParameters: function () { return []; }, propDecorators: { field: [{
9315
9344
  type: Input
9316
9345
  }], record: [{
@@ -9337,6 +9366,7 @@ class ListValueFilterTemplateComponent {
9337
9366
  this.visible = false;
9338
9367
  this.currentStatistic = null;
9339
9368
  this.aggregationFunctionEnum = NotNumberAggregationFunctionEnum;
9369
+ this.operatorsGroupByEnum = NumberAggregationFunctionEnum;
9340
9370
  this.arrayData = [];
9341
9371
  }
9342
9372
  ngOnInit() {
@@ -9345,6 +9375,7 @@ class ListValueFilterTemplateComponent {
9345
9375
  this.record[this.field.Name] = this.Statistic.value;
9346
9376
  this.visible = this.Statistic.visible;
9347
9377
  this.aggregations = this.Statistic.aggregations;
9378
+ this.operatorsGroupBy = this.Statistic.operatorsGroupBy;
9348
9379
  }
9349
9380
  this.configureControllers();
9350
9381
  this.initStyles();
@@ -9355,6 +9386,7 @@ class ListValueFilterTemplateComponent {
9355
9386
  this.isX = changes['Statistic'].currentValue.hasOwnProperty('isX') ? changes['Statistic'].currentValue.isX : null;
9356
9387
  this.isY = changes['Statistic'].currentValue.hasOwnProperty('isY') ? changes['Statistic'].currentValue.isY : null;
9357
9388
  this.aggregations = changes['Statistic'].currentValue.hasOwnProperty('aggregations') ? changes['Statistic'].currentValue.aggregations : null;
9389
+ this.operatorsGroupBy = changes['Statistic'].currentValue.hasOwnProperty('operatorsGroupBy') ? changes['Statistic'].currentValue.operatorsGroupBy : null;
9358
9390
  }
9359
9391
  }
9360
9392
  //Funzione per parsare il campo stylecss dell'oggetto field ed applicarlo all'html
@@ -9375,9 +9407,10 @@ class ListValueFilterTemplateComponent {
9375
9407
  logicoperator: this.selectedLogicOperator,
9376
9408
  fieldtype: this.field.FieldType,
9377
9409
  visible: this.visible,
9378
- isX: this.isX,
9379
- isY: this.isY,
9380
- aggregations: this.aggregations
9410
+ isX: this.isX === undefined ? false : this.isX,
9411
+ isY: this.isY === undefined ? false : this.isY,
9412
+ aggregations: this.aggregations,
9413
+ operatorsGroupBy: this.operatorsGroupBy
9381
9414
  };
9382
9415
  this.filterChange.emit(statistic);
9383
9416
  }
@@ -9451,10 +9484,10 @@ class ListValueFilterTemplateComponent {
9451
9484
  }
9452
9485
  }
9453
9486
  ListValueFilterTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListValueFilterTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9454
- ListValueFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ListValueFilterTemplateComponent, selector: "list-value-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY" }, outputs: { filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"valueCol\">\r\n <eqp-select [ngStyle]=\"FieldstyleObj\" [arrayData]=\"arrayData\"\r\n [arrayKeyProperty]=\"'Value'\" [showCancelButton]=\"true\" [arrayValueProperty]=\"'Key'\"\r\n [formGroupInput]=\"field.FormFormGroup\" [formControlNameInput]=\"field.Name\" [placeholder]=\"field.Description\"\r\n [includeFullObject]=\"false\" [isRequired]=\"false\" [isDisabled]=\"false\"\r\n [(ngModelInput)]=\"record[field.Name]\" [isMultiSelect]=\"true\"\r\n (ngModelInputChange)=\"onFilterChange()\">\r\n </eqp-select>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorListValue\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"], dependencies: [{ kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }] });
9487
+ ListValueFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ListValueFilterTemplateComponent, selector: "list-value-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY" }, outputs: { filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"groupByCol\">\r\n <!-- Come faccio a fare il groupBy di una lista? -->\r\n <eqp-select\r\n [isDisabled]=\"true\"\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <eqp-select [ngStyle]=\"FieldstyleObj\" [arrayData]=\"arrayData\"\r\n [arrayKeyProperty]=\"'Value'\" [showCancelButton]=\"true\" [arrayValueProperty]=\"'Key'\"\r\n [formGroupInput]=\"field.FormFormGroup\" [formControlNameInput]=\"field.Name\" [placeholder]=\"field.Description\"\r\n [includeFullObject]=\"false\" [isRequired]=\"false\" [isDisabled]=\"false\"\r\n [(ngModelInput)]=\"record[field.Name]\" [isMultiSelect]=\"true\"\r\n (ngModelInputChange)=\"onFilterChange()\">\r\n </eqp-select>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorListValue\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"], dependencies: [{ kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }] });
9455
9488
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ListValueFilterTemplateComponent, decorators: [{
9456
9489
  type: Component,
9457
- args: [{ selector: 'list-value-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"valueCol\">\r\n <eqp-select [ngStyle]=\"FieldstyleObj\" [arrayData]=\"arrayData\"\r\n [arrayKeyProperty]=\"'Value'\" [showCancelButton]=\"true\" [arrayValueProperty]=\"'Key'\"\r\n [formGroupInput]=\"field.FormFormGroup\" [formControlNameInput]=\"field.Name\" [placeholder]=\"field.Description\"\r\n [includeFullObject]=\"false\" [isRequired]=\"false\" [isDisabled]=\"false\"\r\n [(ngModelInput)]=\"record[field.Name]\" [isMultiSelect]=\"true\"\r\n (ngModelInputChange)=\"onFilterChange()\">\r\n </eqp-select>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorListValue\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"] }]
9490
+ args: [{ selector: 'list-value-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"groupByCol\">\r\n <!-- Come faccio a fare il groupBy di una lista? -->\r\n <eqp-select\r\n [isDisabled]=\"true\"\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <eqp-select [ngStyle]=\"FieldstyleObj\" [arrayData]=\"arrayData\"\r\n [arrayKeyProperty]=\"'Value'\" [showCancelButton]=\"true\" [arrayValueProperty]=\"'Key'\"\r\n [formGroupInput]=\"field.FormFormGroup\" [formControlNameInput]=\"field.Name\" [placeholder]=\"field.Description\"\r\n [includeFullObject]=\"false\" [isRequired]=\"false\" [isDisabled]=\"false\"\r\n [(ngModelInput)]=\"record[field.Name]\" [isMultiSelect]=\"true\"\r\n (ngModelInputChange)=\"onFilterChange()\">\r\n </eqp-select>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select [enumData]=\"logicOperatorListValue\" [(ngModelInput)]=\"selectedLogicOperator\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onFilterChange()\"></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}::ng-deep .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important}::ng-deep .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"] }]
9458
9491
  }], ctorParameters: function () { return []; }, propDecorators: { field: [{
9459
9492
  type: Input
9460
9493
  }], record: [{
@@ -9485,6 +9518,7 @@ class TextareaFilterTemplateComponent {
9485
9518
  this.visible = false;
9486
9519
  this.currentStatistic = null;
9487
9520
  this.aggregationFunctionEnum = NotNumberAggregationFunctionEnum;
9521
+ this.operatorsGroupByEnum = NumberAggregationFunctionEnum;
9488
9522
  }
9489
9523
  ngOnInit() {
9490
9524
  if (this.Statistic != null) {
@@ -9492,6 +9526,7 @@ class TextareaFilterTemplateComponent {
9492
9526
  this.record[this.field.Name] = this.Statistic.value;
9493
9527
  this.visible = this.Statistic.visible;
9494
9528
  this.aggregations = this.Statistic.aggregations;
9529
+ this.operatorsGroupBy = this.Statistic.operatorsGroupBy;
9495
9530
  }
9496
9531
  this.initStyles();
9497
9532
  }
@@ -9521,6 +9556,7 @@ class TextareaFilterTemplateComponent {
9521
9556
  this.isX = changes['Statistic'].currentValue.hasOwnProperty('isX') ? changes['Statistic'].currentValue.isX : null;
9522
9557
  this.isY = changes['Statistic'].currentValue.hasOwnProperty('isY') ? changes['Statistic'].currentValue.isY : null;
9523
9558
  this.aggregations = changes['Statistic'].currentValue.hasOwnProperty('aggregations') ? changes['Statistic'].currentValue.aggregations : null;
9559
+ this.operatorsGroupBy = changes['Statistic'].currentValue.hasOwnProperty('operatorsGroupBy') ? changes['Statistic'].currentValue.operatorsGroupBy : null;
9524
9560
  }
9525
9561
  }
9526
9562
  /**
@@ -9551,9 +9587,10 @@ class TextareaFilterTemplateComponent {
9551
9587
  logicoperator: this.selectedLogicOperator,
9552
9588
  fieldtype: this.field.FieldType,
9553
9589
  visible: this.visible,
9554
- isX: this.isX,
9555
- isY: this.isY,
9556
- aggregations: this.aggregations
9590
+ isX: this.isX === undefined ? false : this.isX,
9591
+ isY: this.isY === undefined ? false : this.isY,
9592
+ aggregations: this.aggregations,
9593
+ operatorsGroupBy: this.operatorsGroupBy
9557
9594
  };
9558
9595
  }
9559
9596
  else {
@@ -9563,9 +9600,10 @@ class TextareaFilterTemplateComponent {
9563
9600
  logicoperator: null,
9564
9601
  fieldtype: null,
9565
9602
  visible: this.visible,
9566
- isX: this.isX,
9567
- isY: this.isY,
9568
- aggregations: this.aggregations
9603
+ isX: this.isX === undefined ? false : this.isX,
9604
+ isY: this.isY === undefined ? false : this.isY,
9605
+ aggregations: this.aggregations,
9606
+ operatorsGroupBy: this.operatorsGroupBy
9569
9607
  };
9570
9608
  }
9571
9609
  return output;
@@ -9582,10 +9620,10 @@ class TextareaFilterTemplateComponent {
9582
9620
  }
9583
9621
  }
9584
9622
  TextareaFilterTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextareaFilterTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9585
- TextareaFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TextareaFilterTemplateComponent, selector: "textarea-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY" }, outputs: { recordChange: "recordChange", filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 textareaFilterTemplate rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <textarea\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [formControlName]=\"field.Name\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"record[field.Name]\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n ></textarea>\r\n <mat-error\r\n *ngIf=\"\r\n !field.FormFormGroup.valid &&\r\n field.FormFormGroup.controls[field.Name].touched\r\n \"\r\n >\r\n Min. Caratteri: {{ field.MinLenght }} - Max. Caratteri:\r\n {{ field.MaxLenght }}\r\n </mat-error>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone || platform != 'web'\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModel)]=\"selectedLogicOperator\"\r\n [showCancelButton]=\"false\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".valueCol{padding-right:0;width:100%}.operatorCol{padding-left:0;width:110px;min-width:110px}.visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.visibleCol button{height:100%}.coordinatesCol{width:35px;min-width:35px}.aggregatorCol{min-width:219px}.keyboard_speaking{color:red}::ng-deep .textareaFilterTemplate .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important;min-height:80px!important}::ng-deep .textareaFilterTemplate .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"], dependencies: [{ kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "directive", type: SpeechToTextDirective, selector: "[SpeechToText]", inputs: ["bindedText"], outputs: ["bindedTextChange"] }] });
9623
+ TextareaFilterTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TextareaFilterTemplateComponent, selector: "textarea-filter-template", inputs: { field: "field", record: "record", Statistic: "Statistic", showXY: "showXY" }, outputs: { recordChange: "recordChange", filterChange: "filterChange" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"row\">\r\n <div class=\"col-12 textareaFilterTemplate rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <textarea\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [formControlName]=\"field.Name\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"record[field.Name]\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n ></textarea>\r\n <mat-error\r\n *ngIf=\"\r\n !field.FormFormGroup.valid &&\r\n field.FormFormGroup.controls[field.Name].touched\r\n \"\r\n >\r\n Min. Caratteri: {{ field.MinLenght }} - Max. Caratteri:\r\n {{ field.MaxLenght }}\r\n </mat-error>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone || platform != 'web'\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModel)]=\"selectedLogicOperator\"\r\n [showCancelButton]=\"false\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .valueCol textarea{resize:none;height:25px}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}.keyboard_speaking{color:red}::ng-deep .textareaFilterTemplate .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important;min-height:56px!important}::ng-deep .textareaFilterTemplate .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep .valueCol .mat-form-field{height:56px;overflow:hidden}::ng-deep .valueCol .mat-mdc-text-field-wrapper{min-height:56px;height:56px}\n"], dependencies: [{ kind: "directive", type: i1$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2$2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6$2.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "directive", type: SpeechToTextDirective, selector: "[SpeechToText]", inputs: ["bindedText"], outputs: ["bindedTextChange"] }] });
9586
9624
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TextareaFilterTemplateComponent, decorators: [{
9587
9625
  type: Component,
9588
- args: [{ selector: 'textarea-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 textareaFilterTemplate rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <textarea\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [formControlName]=\"field.Name\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"record[field.Name]\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n ></textarea>\r\n <mat-error\r\n *ngIf=\"\r\n !field.FormFormGroup.valid &&\r\n field.FormFormGroup.controls[field.Name].touched\r\n \"\r\n >\r\n Min. Caratteri: {{ field.MinLenght }} - Max. Caratteri:\r\n {{ field.MaxLenght }}\r\n </mat-error>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone || platform != 'web'\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModel)]=\"selectedLogicOperator\"\r\n [showCancelButton]=\"false\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".valueCol{padding-right:0;width:100%}.operatorCol{padding-left:0;width:110px;min-width:110px}.visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.visibleCol button{height:100%}.coordinatesCol{width:35px;min-width:35px}.aggregatorCol{min-width:219px}.keyboard_speaking{color:red}::ng-deep .textareaFilterTemplate .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important;min-height:80px!important}::ng-deep .textareaFilterTemplate .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}\n"] }]
9626
+ args: [{ selector: 'textarea-filter-template', template: "<div class=\"row\">\r\n <div class=\"col-12 textareaFilterTemplate rowCol\">\r\n <div class=\"visibleCol\">\r\n <button class=\"btn\" [ngClass]=\"{'btn-success': visible , 'btn-danger': !visible }\" (click)=\"changeVisibility()\">\r\n <mat-icon *ngIf=\"visible\">visibility</mat-icon>\r\n <mat-icon *ngIf=\"!visible\">visibility_off</mat-icon>\r\n </button>\r\n </div> \r\n <div class=\"coordinatesCol\" [hidden]=\"!showXY\">\r\n\r\n </div> \r\n <div class=\"groupByCol\">\r\n <eqp-select\r\n [placeholder]=\"'Operatori di confronto'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"operatorsGroupByEnum\"\r\n [(ngModelInput)]=\"operatorsGroupBy\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"valueCol\">\r\n <mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1\" [ngStyle]=\"LabelstyleObj\">\r\n {{ field.Description }}\r\n </mat-label>\r\n <textarea\r\n [ngStyle]=\"FieldstyleObj\"\r\n matInput\r\n [type]=\"getInputType()\"\r\n [formControlName]=\"field.Name\"\r\n [readonly]=\"false\"\r\n [required]=\"false\"\r\n [(ngModel)]=\"record[field.Name]\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n ></textarea>\r\n <mat-error\r\n *ngIf=\"\r\n !field.FormFormGroup.valid &&\r\n field.FormFormGroup.controls[field.Name].touched\r\n \"\r\n >\r\n Min. Caratteri: {{ field.MinLenght }} - Max. Caratteri:\r\n {{ field.MaxLenght }}\r\n </mat-error>\r\n <mat-icon\r\n [hidden]=\"!field.Microphone || platform != 'web'\"\r\n matSuffix\r\n SpeechToText\r\n [(bindedText)]=\"record[field.Name]\"\r\n style=\"cursor: pointer\"\r\n >keyboard_voice</mat-icon\r\n >\r\n </mat-form-field>\r\n </div>\r\n <div class=\"operatorCol\">\r\n <eqp-select\r\n [enumData]=\"logicOperatorText\"\r\n [(ngModel)]=\"selectedLogicOperator\"\r\n [showCancelButton]=\"false\"\r\n (ngModelChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n <div class=\"aggregatorCol\">\r\n <eqp-select\r\n [placeholder]=\"'Aggregazioni'\"\r\n [isMultiSelect]=\"true\"\r\n [enumData]=\"aggregationFunctionEnum\"\r\n [(ngModelInput)]=\"aggregations\"\r\n (ngModelInputChange)=\"onFilterChange()\"\r\n ></eqp-select>\r\n </div> \r\n </div>\r\n</div>", styles: [".rowCol{display:flex;height:56px}.rowCol>*{height:100%}.rowCol .valueCol{padding-right:0;width:100%}.rowCol .valueCol textarea{resize:none;height:25px}.rowCol .operatorCol{padding-left:0;padding-right:0;width:110px;min-width:110px}.rowCol .visibleCol{display:flex;justify-content:center;align-items:flex-start;border-top-left-radius:0;border-bottom-left-radius:0;width:50px;min-width:50px}.rowCol .visibleCol button{height:100%}.rowCol .coordinatesCol{width:35px;min-width:35px}.rowCol .aggregatorCol{min-width:219px}.keyboard_speaking{color:red}::ng-deep .textareaFilterTemplate .operatorCol .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#a5afc0!important;min-height:56px!important}::ng-deep .textareaFilterTemplate .operatorCol .mat-mdc-select-value{color:#081c45;font-size:16px;font-weight:700;position:relative;top:-6px}::ng-deep .valueCol .mat-form-field{height:56px;overflow:hidden}::ng-deep .valueCol .mat-mdc-text-field-wrapper{min-height:56px;height:56px}\n"] }]
9589
9627
  }], ctorParameters: function () { return []; }, propDecorators: { field: [{
9590
9628
  type: Input
9591
9629
  }], record: [{
@@ -9629,9 +9667,10 @@ class AttachmentFilterTemplateComponent {
9629
9667
  logicoperator: this.selectedLogicOperator,
9630
9668
  fieldtype: this.field.FieldType,
9631
9669
  visible: false,
9632
- isX: this.isX,
9633
- isY: this.isY,
9634
- aggregations: this.aggregations
9670
+ isX: this.isX === undefined ? false : this.isX,
9671
+ isY: this.isY === undefined ? false : this.isY,
9672
+ aggregations: this.aggregations,
9673
+ operatorsGroupBy: this.operatorsGroupBy
9635
9674
  };
9636
9675
  }
9637
9676
  else {
@@ -9641,9 +9680,10 @@ class AttachmentFilterTemplateComponent {
9641
9680
  logicoperator: null,
9642
9681
  fieldtype: null,
9643
9682
  visible: false,
9644
- isX: this.isX,
9645
- isY: this.isY,
9646
- aggregations: this.aggregations
9683
+ isX: this.isX === undefined ? false : this.isX,
9684
+ isY: this.isY === undefined ? false : this.isY,
9685
+ aggregations: this.aggregations,
9686
+ operatorsGroupBy: this.operatorsGroupBy
9647
9687
  };
9648
9688
  }
9649
9689
  return output;
@@ -9691,9 +9731,10 @@ class ImageFilterTemplateComponent {
9691
9731
  logicoperator: this.selectedLogicOperator,
9692
9732
  fieldtype: this.field.FieldType,
9693
9733
  visible: false,
9694
- isX: this.isX,
9695
- isY: this.isY,
9696
- aggregations: this.aggregations
9734
+ isX: this.isX === undefined ? false : this.isX,
9735
+ isY: this.isY === undefined ? false : this.isY,
9736
+ aggregations: this.aggregations,
9737
+ operatorsGroupBy: this.operatorsGroupBy
9697
9738
  };
9698
9739
  }
9699
9740
  else {
@@ -9703,9 +9744,10 @@ class ImageFilterTemplateComponent {
9703
9744
  logicoperator: null,
9704
9745
  fieldtype: null,
9705
9746
  visible: false,
9706
- isX: this.isX,
9707
- isY: this.isY,
9708
- aggregations: this.aggregations
9747
+ isX: this.isX === undefined ? false : this.isX,
9748
+ isY: this.isY === undefined ? false : this.isY,
9749
+ aggregations: this.aggregations,
9750
+ operatorsGroupBy: this.operatorsGroupBy
9709
9751
  };
9710
9752
  }
9711
9753
  return output;
@@ -9735,6 +9777,7 @@ class ListFormRecordFilterTemplateComponent {
9735
9777
  this.isX = changes['Statistic'].currentValue.hasOwnProperty('isX') ? changes['Statistic'].currentValue.isX : null;
9736
9778
  this.isY = changes['Statistic'].currentValue.hasOwnProperty('isY') ? changes['Statistic'].currentValue.isY : null;
9737
9779
  this.aggregations = changes['Statistic'].currentValue.hasOwnProperty('aggregations') ? changes['Statistic'].currentValue.aggregations : null;
9780
+ this.operatorsGroupBy = changes['Statistic'].currentValue.hasOwnProperty('operatorsGroupBy') ? changes['Statistic'].currentValue.operatorsGroupBy : null;
9738
9781
  }
9739
9782
  }
9740
9783
  /**
@@ -9747,9 +9790,10 @@ class ListFormRecordFilterTemplateComponent {
9747
9790
  logicoperator: this.selectedLogicOperator,
9748
9791
  fieldtype: this.field.FieldType,
9749
9792
  visible: false,
9750
- isX: this.isX,
9751
- isY: this.isY,
9752
- aggregations: this.aggregations
9793
+ isX: this.isX === undefined ? false : this.isX,
9794
+ isY: this.isY === undefined ? false : this.isY,
9795
+ aggregations: this.aggregations,
9796
+ operatorsGroupBy: this.operatorsGroupBy
9753
9797
  };
9754
9798
  this.filterChange.emit(statistic);
9755
9799
  }
@@ -9811,9 +9855,10 @@ class ImageSelectorFilterTemplateComponent {
9811
9855
  logicoperator: this.selectedLogicOperator,
9812
9856
  fieldtype: this.field.FieldType,
9813
9857
  visible: false,
9814
- isX: this.isX,
9815
- isY: this.isY,
9816
- aggregations: this.aggregations
9858
+ isX: this.isX === undefined ? false : this.isX,
9859
+ isY: this.isY === undefined ? false : this.isY,
9860
+ aggregations: this.aggregations,
9861
+ operatorsGroupBy: this.operatorsGroupBy
9817
9862
  };
9818
9863
  }
9819
9864
  else {
@@ -9823,9 +9868,10 @@ class ImageSelectorFilterTemplateComponent {
9823
9868
  logicoperator: null,
9824
9869
  fieldtype: null,
9825
9870
  visible: false,
9826
- isX: this.isX,
9827
- isY: this.isY,
9828
- aggregations: this.aggregations
9871
+ isX: this.isX === undefined ? false : this.isX,
9872
+ isY: this.isY === undefined ? false : this.isY,
9873
+ aggregations: this.aggregations,
9874
+ operatorsGroupBy: this.operatorsGroupBy
9829
9875
  };
9830
9876
  }
9831
9877
  return output;
@@ -15616,7 +15662,8 @@ class ListFormRecordTriggerTemplateComponent {
15616
15662
  visible: true,
15617
15663
  isX: this.isX,
15618
15664
  isY: this.isY,
15619
- aggregations: this.aggregations
15665
+ aggregations: this.aggregations,
15666
+ operatorsGroupBy: this.operatorsGroupBy
15620
15667
  };
15621
15668
  }
15622
15669
  else {
@@ -15628,7 +15675,8 @@ class ListFormRecordTriggerTemplateComponent {
15628
15675
  visible: true,
15629
15676
  isX: this.isX,
15630
15677
  isY: this.isY,
15631
- aggregations: this.aggregations
15678
+ aggregations: this.aggregations,
15679
+ operatorsGroupBy: this.operatorsGroupBy
15632
15680
  };
15633
15681
  }
15634
15682
  return output;