ontimize-web-ngx 15.3.1 → 15.3.2

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.
@@ -1,4 +1,6 @@
1
- import { Component, ElementRef, forwardRef, Inject, Injector, Optional, ViewEncapsulation } from '@angular/core';
1
+ import { Component, ElementRef, forwardRef, Inject, Injector, Optional, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { MatRadioGroup } from '@angular/material/radio';
3
+ import { OFormLayoutManagerComponent } from '../../../layouts/form-layout/o-form-layout-manager.component';
2
4
  import { OntimizeServiceProvider } from '../../../services/factories';
3
5
  import { Util } from '../../../util/util';
4
6
  import { OFormComponent } from '../../form/o-form.component';
@@ -29,12 +31,30 @@ export class ORadioComponent extends OFormServiceComponent {
29
31
  this.layout = 'column';
30
32
  this.labelPosition = 'after';
31
33
  this.labelGap = '8px';
34
+ try {
35
+ this.formLayoutManager = this.injector.get(OFormLayoutManagerComponent);
36
+ }
37
+ catch (e) {
38
+ }
32
39
  }
33
40
  ngAfterViewInit() {
34
41
  super.ngAfterViewInit();
35
42
  if (this.queryOnInit) {
36
43
  this.queryData();
37
44
  }
45
+ this.updateFormLayoutManagerState();
46
+ }
47
+ updateFormLayoutManagerState() {
48
+ if (this.formLayoutManager && this.formLayoutManager.storeState && this.formLayoutManager.isTabMode() && this.formLayoutManager.oTabGroup) {
49
+ if (!Util.isDefined(this.formLayoutManagerTabIndex)) {
50
+ this.formLayoutManagerTabIndex = this.formLayoutManager.oTabGroup.data.length;
51
+ }
52
+ this.tabsSubscriptions = this.formLayoutManager.onSelectedTabChange.subscribe((arg) => {
53
+ if (arg.index === this.formLayoutManagerTabIndex) {
54
+ this.mrg.value = this.getValue();
55
+ }
56
+ });
57
+ }
38
58
  }
39
59
  onMatRadioGroupChange(e) {
40
60
  const newValue = e.value;
@@ -63,22 +83,31 @@ export class ORadioComponent extends OFormServiceComponent {
63
83
  }
64
84
  return '';
65
85
  }
86
+ ngOnDestroy() {
87
+ super.destroy();
88
+ if (this.tabsSubscriptions) {
89
+ this.tabsSubscriptions.unsubscribe();
90
+ }
91
+ }
66
92
  }
67
93
  ORadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ORadioComponent, deps: [{ token: forwardRef(() => OFormComponent), optional: true }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
68
94
  ORadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ORadioComponent, selector: "o-radio", inputs: { layout: "layout", labelPosition: ["label-position", "labelPosition"], labelGap: ["label-gap", "labelGap"] }, host: { properties: { "class.o-radio": "true" } }, providers: [
69
95
  OntimizeServiceProvider
70
- ], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button *ngFor=\"let item of dataArray\" [value]=\"getValueColumn(item)\" [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "directive", type: i5.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: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i7.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i9.OContextMenuDirective, selector: "[oContextMenu]", inputs: ["oContextMenu", "oContextMenuData"] }, { kind: "component", type: i10.OContextMenuComponent, selector: "o-context-menu", outputs: ["onShow", "onClose"] }, { kind: "component", type: i11.OContextMenuItemComponent, selector: "o-context-menu-item", outputs: ["execute"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
96
+ ], viewQueries: [{ propertyName: "mrg", first: true, predicate: MatRadioGroup, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button [id]=\"'o-radio-button-'+i\" *ngFor=\"let item of dataArray;let i = index\" [value]=\"getValueColumn(item)\"\n [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "directive", type: i5.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: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i7.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i9.OContextMenuDirective, selector: "[oContextMenu]", inputs: ["oContextMenu", "oContextMenuData"] }, { kind: "component", type: i10.OContextMenuComponent, selector: "o-context-menu", outputs: ["onShow", "onClose"] }, { kind: "component", type: i11.OContextMenuItemComponent, selector: "o-context-menu-item", outputs: ["execute"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
71
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ORadioComponent, decorators: [{
72
98
  type: Component,
73
99
  args: [{ selector: 'o-radio', inputs: DEFAULT_INPUTS_O_RADIO, providers: [
74
100
  OntimizeServiceProvider
75
101
  ], encapsulation: ViewEncapsulation.None, host: {
76
102
  '[class.o-radio]': 'true'
77
- }, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button *ngFor=\"let item of dataArray\" [value]=\"getValueColumn(item)\" [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"] }]
103
+ }, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button [id]=\"'o-radio-button-'+i\" *ngFor=\"let item of dataArray;let i = index\" [value]=\"getValueColumn(item)\"\n [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"] }]
78
104
  }], ctorParameters: function () { return [{ type: i13.OFormComponent, decorators: [{
79
105
  type: Optional
80
106
  }, {
81
107
  type: Inject,
82
108
  args: [forwardRef(() => OFormComponent)]
83
- }] }, { type: i0.ElementRef }, { type: i0.Injector }]; } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1yYWRpby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9yYWRpby9vLXJhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3JhZGlvL28tcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUNSLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxxQkFBcUIsRUFDdEIsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBRTNDLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLFFBQVE7SUFDUiwrQkFBK0I7SUFDL0IscUJBQXFCO0NBQ3RCLENBQUM7QUFnQkYsTUFBTSxPQUFPLGVBQWdCLFNBQVEscUJBQXFCO0lBVXhELFlBQ3dELElBQW9CLEVBQzFFLEtBQWlCLEVBQ2pCLFFBQWtCO1FBRWxCLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBWnhCLFdBQU0sR0FBcUIsUUFBUSxDQUFDO1FBQ3BDLGtCQUFhLEdBQXVCLE9BQU8sQ0FBQztRQUM1QyxhQUFRLEdBQUcsS0FBSyxDQUFBO0lBV3ZCLENBQUM7SUFFRCxlQUFlO1FBQ2IsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEI7SUFDSCxDQUFDO0lBRUQscUJBQXFCLENBQUMsQ0FBaUI7UUFDckMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtZQUN0QixVQUFVLEVBQUUsaUJBQWlCLENBQUMsV0FBVztZQUN6QyxTQUFTLEVBQUUsS0FBSztZQUNoQixxQkFBcUIsRUFBRSxLQUFLO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBUztRQUN0QixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNqRCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BDLElBQUksTUFBTSxLQUFLLFdBQVcsRUFBRTtnQkFDMUIsTUFBTSxHQUFHLElBQUksQ0FBQzthQUNmO1lBQ0QsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUNELE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRTtZQUMvRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDbkYsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUM1QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdks7U0FDRjtRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs7NkdBckRVLGVBQWUsa0JBV0osVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztpR0FYM0MsZUFBZSw0TUFSZjtRQUNULHVCQUF1QjtLQUN4QixpRENuQ0gsMnFFQWdDQTs0RkRTYSxlQUFlO2tCQWIzQixTQUFTOytCQUNFLFNBQVMsVUFHWCxzQkFBc0IsYUFDbkI7d0JBQ1QsdUJBQXVCO3FCQUN4QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGlCQUFpQixFQUFFLE1BQU07cUJBQzFCOzswQkFhRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIE9wdGlvbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFJhZGlvQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuXG5pbXBvcnQgeyBPbnRpbWl6ZVNlcnZpY2VQcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZhY3Rvcmllcyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IE9Gb3JtVmFsdWUgfSBmcm9tICcuLi8uLi9mb3JtL28tZm9ybS12YWx1ZSc7XG5pbXBvcnQgeyBPRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Zvcm0vby1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPVmFsdWVDaGFuZ2VFdmVudCB9IGZyb20gJy4uLy4uL28tdmFsdWUtY2hhbmdlLWV2ZW50LmNsYXNzJztcbmltcG9ydCB7XG4gIE9Gb3JtU2VydmljZUNvbXBvbmVudFxufSBmcm9tICcuLi9vLWZvcm0tc2VydmljZS1jb21wb25lbnQuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19SQURJTyA9IFtcbiAgJ2xheW91dCcsXG4gICdsYWJlbFBvc2l0aW9uOiBsYWJlbC1wb3NpdGlvbicsXG4gICdsYWJlbEdhcDogbGFiZWwtZ2FwJ1xuXTtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXJhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19SQURJTyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT250aW1pemVTZXJ2aWNlUHJvdmlkZXJcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1yYWRpb10nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPUmFkaW9Db21wb25lbnQgZXh0ZW5kcyBPRm9ybVNlcnZpY2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAvKiBJbnB1dHMgKi9cbiAgcHVibGljIGxheW91dDogJ3JvdycgfCAnY29sdW1uJyA9ICdjb2x1bW4nO1xuICBwdWJsaWMgbGFiZWxQb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJztcbiAgcHVibGljIGxhYmVsR2FwID0gJzhweCdcbiAgLyogRW5kIGlucHV0cyovXG5cbiAgdmFsdWU6IE9Gb3JtVmFsdWU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChmb3J3YXJkUmVmKCgpID0+IE9Gb3JtQ29tcG9uZW50KSkgZm9ybTogT0Zvcm1Db21wb25lbnQsXG4gICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0b3I6IEluamVjdG9yXG4gICkge1xuICAgIHN1cGVyKGZvcm0sIGVsUmVmLCBpbmplY3Rvcik7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgaWYgKHRoaXMucXVlcnlPbkluaXQpIHtcbiAgICAgIHRoaXMucXVlcnlEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgb25NYXRSYWRpb0dyb3VwQ2hhbmdlKGU6IE1hdFJhZGlvQ2hhbmdlKTogdm9pZCB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBlLnZhbHVlO1xuICAgIHRoaXMuc2V0VmFsdWUobmV3VmFsdWUsIHtcbiAgICAgIGNoYW5nZVR5cGU6IE9WYWx1ZUNoYW5nZUV2ZW50LlVTRVJfQ0hBTkdFLFxuICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIGdldFZhbHVlQ29sdW1uKGl0ZW06IGFueSkge1xuICAgIGlmIChpdGVtICYmIGl0ZW0uaGFzT3duUHJvcGVydHkodGhpcy52YWx1ZUNvbHVtbikpIHtcbiAgICAgIGxldCBvcHRpb24gPSBpdGVtW3RoaXMudmFsdWVDb2x1bW5dO1xuICAgICAgaWYgKG9wdGlvbiA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgb3B0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb247XG4gICAgfVxuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBnZXREZXNjcmlwdGlvblZhbHVlKCkge1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLmRlc2NyaXB0aW9uQ29sQXJyYXkpICYmIHRoaXMuZGVzY3JpcHRpb25Db2xBcnJheS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGN1cnJJdGVtID0gdGhpcy5kYXRhQXJyYXkuZmluZChlID0+IGVbdGhpcy52YWx1ZUNvbHVtbl0gPT09IHRoaXMuZ2V0VmFsdWUoKSk7XG4gICAgICBpZiAoVXRpbC5pc0RlZmluZWQoY3Vyckl0ZW0pKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uQ29sQXJyYXkubWFwKGNvbCA9PiAodGhpcy50cmFuc2xhdGUgJiYgdGhpcy50cmFuc2xhdGVTZXJ2aWNlKSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoY3Vyckl0ZW1bY29sXSkgOiBjdXJySXRlbVtjb2xdKS5qb2luKHRoaXMuc2VwYXJhdG9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJnZXRGb3JtR3JvdXAoKVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIiBbbWF0VG9vbHRpcENsYXNzXT1cInRvb2x0aXBDbGFzc1wiXG4gIFttYXRUb29sdGlwUG9zaXRpb25dPVwidG9vbHRpcFBvc2l0aW9uXCIgW21hdFRvb2x0aXBTaG93RGVsYXldPVwidG9vbHRpcFNob3dEZWxheVwiXG4gIFttYXRUb29sdGlwSGlkZURlbGF5XT1cInRvb2x0aXBIaWRlRGVsYXlcIiBjbGFzcz1cInJlbGF0aXZlXCIgW29Db250ZXh0TWVudV09XCJvQ29udGV4dE1lbnVcIj5cbiAgPCEtLSBtYXQtZm9ybS1maWVsZCBhbmQgaGlkZGVuIGlucHV0IGFyZSB1c2VkIG9ubHkgZm9yIGRpc3BsYXlpbmcgY29tcG9uZW50IGxhYmVsIGFuZCBlcnJvcnMgYXMgbWF0LXJhZGlvIGlzIG5vdCBzdXBwb3J0ZWQgaW5zaWRlIGZvcm0tZmllbGQgLS0+XG4gIDwhLS0gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvbWF0ZXJpYWwyL2lzc3Vlcy83ODkxIC0tPlxuICA8bWF0LWZvcm0tZmllbGQgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwiaGlkZVJlcXVpcmVkTWFya2VyXCJcbiAgICBbY2xhc3MucmVhZC1vbmx5XT1cImlzUmVhZE9ubHlcIiBbY2xhc3MuY3VzdG9tLXdpZHRoXT1cImhhc0N1c3RvbVdpZHRoXCIgW2NsYXNzLm8tcmFkaW8tZnJvbS1maWVsZC1yb3ddPVwibGF5b3V0PT09J3JvdydcIlxuICAgIGZsb2F0TGFiZWw9XCJhbHdheXNcIiBjbGFzcz1cIm1hdC1mb3JtLWZpZWxkLS1uby11bmRlcmxpbmVcIiBmeEZpbGwgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIj5cbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxWaXNpYmxlXCI+e3sgb2xhYmVsIHwgb1RyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBbaWRdPVwiZ2V0QXR0cmlidXRlKClcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImdldEF0dHJpYnV0ZSgpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJpc1JlcXVpcmVkXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lXCIgLz5cbiAgICA8bWF0LXJhZGlvLWdyb3VwIFtpZF09XCJnZXRBdHRyaWJ1dGUoKVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZ2V0QXR0cmlidXRlKClcIiBbbmFtZV09XCJnZXRBdHRyaWJ1dGUoKVwiXG4gICAgICBbdmFsdWVdPVwiZ2V0VmFsdWUoKVwiIFtyZXF1aXJlZF09XCJpc1JlcXVpcmVkXCIgW2xhYmVsUG9zaXRpb25dPVwibGFiZWxQb3NpdGlvblwiXG4gICAgICAoY2hhbmdlKT1cIm9uTWF0UmFkaW9Hcm91cENoYW5nZSgkZXZlbnQpXCIgW2Z4TGF5b3V0XT1cImxheW91dFwiIFtmeExheW91dEdhcF09XCJsYWJlbEdhcFwiPlxuICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YUFycmF5XCIgW3ZhbHVlXT1cImdldFZhbHVlQ29sdW1uKGl0ZW0pXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVkXCI+XG4gICAgICAgIHt7IGdldE9wdGlvbkRlc2NyaXB0aW9uVmFsdWUoaXRlbSkgfX1cbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICA8L21hdC1yYWRpby1ncm91cD5cbiAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5SRVFVSVJFRCcgfCBvVHJhbnNsYXRlIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gICAgPG1hdC1lcnJvciAqbmdGb3I9XCJsZXQgb0Vycm9yIG9mIGdldEFjdGl2ZU9FcnJvcnMoKVwiPlxuICAgICAge3sgb0Vycm9yLnRleHQgfCBvVHJhbnNsYXRlIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxkaXYgKm5nSWY9XCJpc1JlYWRPbmx5XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIGNsYXNzPVwicmVhZC1vbmx5LWJsb2NrZXJcIiBmeEZpbGw+PC9kaXY+XG5cbiAgPG8tY29udGV4dC1tZW51ICpuZ0lmPVwiIXRoaXMuaXNSZWFkT25seSAmJiB0aGlzLmVuYWJsZWRcIj5cbiAgICA8by1jb250ZXh0LW1lbnUtaXRlbSBhdHRyPVwicmVmcmVzaFwiIGxhYmVsPVwiRk9STV9TRVJWSUNFX0NPTVBPTkVOVC5SRUZSRVNIXCIgc3ZnLWljb249XCJvbnRpbWl6ZTphdXRvcmVuZXdcIiAoZXhlY3V0ZSk9XCJyZWZyZXNoKClcIj5cbiAgICA8L28tY29udGV4dC1tZW51LWl0ZW0+XG4gIDwvby1jb250ZXh0LW1lbnU+XG48L2Rpdj5cbiJdfQ==
109
+ }] }, { type: i0.ElementRef }, { type: i0.Injector }]; }, propDecorators: { mrg: [{
110
+ type: ViewChild,
111
+ args: [MatRadioGroup]
112
+ }] } });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1yYWRpby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9yYWRpby9vLXJhZGlvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3JhZGlvL28tcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFhLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEosT0FBTyxFQUFrQixhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFFMUUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsUUFBUTtJQUNSLCtCQUErQjtJQUMvQixxQkFBcUI7Q0FDdEIsQ0FBQztBQWdCRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxxQkFBcUI7SUFjeEQsWUFDd0QsSUFBb0IsRUFDMUUsS0FBaUIsRUFDakIsUUFBa0I7UUFFbEIsS0FBSyxDQUFD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Q0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3ZLO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVoQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7SUFFSCxDQUFDOzs2R0F4RlUsZUFBZSxrQkFlSixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO2lHQWYzQyxlQUFlLDRNQVJmO1FBQ1QsdUJBQXVCO0tBQ3hCLCtEQWlCVSxhQUFhLHVFQzFDMUIsOHRFQWlDQTs0RkRGYSxlQUFlO2tCQWIzQixTQUFTOytCQUNFLFNBQVMsVUFHWCxzQkFBc0IsYUFDbkI7d0JBQ1QsdUJBQXVCO3FCQUN4QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLGlCQUFpQixFQUFFLE1BQU07cUJBQzFCOzswQkFpQkUsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDOzRGQUo1QixHQUFHO3NCQUE1QixTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFJhZGlvQ2hhbmdlLCBNYXRSYWRpb0dyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuXG5pbXBvcnQgeyBPRm9ybUxheW91dE1hbmFnZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9sYXlvdXRzL2Zvcm0tbGF5b3V0L28tZm9ybS1sYXlvdXQtbWFuYWdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT250aW1pemVTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mYWN0b3JpZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPRm9ybVZhbHVlIH0gZnJvbSAnLi4vLi4vZm9ybS9vLWZvcm0tdmFsdWUnO1xuaW1wb3J0IHsgT0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtL28tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT1ZhbHVlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi8uLi9vLXZhbHVlLWNoYW5nZS1ldmVudC5jbGFzcyc7XG5pbXBvcnQgeyBPRm9ybVNlcnZpY2VDb21wb25lbnQgfSBmcm9tICcuLi9vLWZvcm0tc2VydmljZS1jb21wb25lbnQuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19SQURJTyA9IFtcbiAgJ2xheW91dCcsXG4gICdsYWJlbFBvc2l0aW9uOiBsYWJlbC1wb3NpdGlvbicsXG4gICdsYWJlbEdhcDogbGFiZWwtZ2FwJ1xuXTtcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXJhZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXJhZGlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19SQURJTyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgT250aW1pemVTZXJ2aWNlUHJvdmlkZXJcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muby1yYWRpb10nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPUmFkaW9Db21wb25lbnQgZXh0ZW5kcyBPRm9ybVNlcnZpY2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qIElucHV0cyAqL1xuICBwdWJsaWMgbGF5b3V0OiAncm93JyB8ICdjb2x1bW4nID0gJ2NvbHVtbic7XG4gIHB1YmxpYyBsYWJlbFBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicgPSAnYWZ0ZXInO1xuICBwdWJsaWMgbGFiZWxHYXAgPSAnOHB4J1xuICAvKiBFbmQgaW5wdXRzKi9cblxuICB2YWx1ZTogT0Zvcm1WYWx1ZTtcbiAgZm9ybUxheW91dE1hbmFnZXI6IE9Gb3JtTGF5b3V0TWFuYWdlckNvbXBvbmVudDtcbiAgdGFic1N1YnNjcmlwdGlvbnM6IGFueTtcbiAgQFZpZXdDaGlsZChNYXRSYWRpb0dyb3VwKSBtcmc6IE1hdFJhZGlvR3JvdXA7XG4gIGZvcm1MYXlvdXRNYW5hZ2VyVGFiSW5kZXg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gT0Zvcm1Db21wb25lbnQpKSBmb3JtOiBPRm9ybUNvbXBvbmVudCxcbiAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICBpbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7XG4gICAgc3VwZXIoZm9ybSwgZWxSZWYsIGluamVjdG9yKTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyID0gdGhpcy5pbmplY3Rvci5nZXQoT0Zvcm1MYXlvdXRNYW5hZ2VyQ29tcG9uZW50KTtcblxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vIHBhcmVudCBmb3JtIGxheW91dCBtYW5hZ2VyXG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLnF1ZXJ5T25Jbml0KSB7XG4gICAgICB0aGlzLnF1ZXJ5RGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUZvcm1MYXlvdXRNYW5hZ2VyU3RhdGUoKTtcbiAgfVxuXG4gIHVwZGF0ZUZvcm1MYXlvdXRNYW5hZ2VyU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMuZm9ybUxheW91dE1hbmFnZXIgJiYgdGhpcy5mb3JtTGF5b3V0TWFuYWdlci5zdG9yZVN0YXRlICYmIHRoaXMuZm9ybUxheW91dE1hbmFnZXIuaXNUYWJNb2RlKCkgJiYgdGhpcy5mb3JtTGF5b3V0TWFuYWdlci5vVGFiR3JvdXApIHtcbiAgICAgIGlmICghVXRpbC5pc0RlZmluZWQodGhpcy5mb3JtTGF5b3V0TWFuYWdlclRhYkluZGV4KSkge1xuICAgICAgICB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyVGFiSW5kZXggPSB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyLm9UYWJHcm91cC5kYXRhLmxlbmd0aDtcbiAgICAgIH1cbiAgICAgIHRoaXMudGFic1N1YnNjcmlwdGlvbnMgPSB0aGlzLmZvcm1MYXlvdXRNYW5hZ2VyLm9uU2VsZWN0ZWRUYWJDaGFuZ2Uuc3Vic2NyaWJlKChhcmcpID0+IHtcbiAgICAgICAgaWYgKGFyZy5pbmRleCA9PT0gdGhpcy5mb3JtTGF5b3V0TWFuYWdlclRhYkluZGV4KSB7XG4gICAgICAgICAgdGhpcy5tcmcudmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG5cbiAgb25NYXRSYWRpb0dyb3VwQ2hhbmdlKGU6IE1hdFJhZGlvQ2hhbmdlKTogdm9pZCB7XG4gICAgY29uc3QgbmV3VmFsdWUgPSBlLnZhbHVlO1xuICAgIHRoaXMuc2V0VmFsdWUobmV3VmFsdWUsIHtcbiAgICAgIGNoYW5nZVR5cGU6IE9WYWx1ZUNoYW5nZUV2ZW50LlVTRVJfQ0hBTkdFLFxuICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgIGVtaXRNb2RlbFRvVmlld0NoYW5nZTogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIGdldFZhbHVlQ29sdW1uKGl0ZW06IGFueSkge1xuICAgIGlmIChpdGVtICYmIGl0ZW0uaGFzT3duUHJvcGVydHkodGhpcy52YWx1ZUNvbHVtbikpIHtcbiAgICAgIGxldCBvcHRpb24gPSBpdGVtW3RoaXMudmFsdWVDb2x1bW5dO1xuICAgICAgaWYgKG9wdGlvbiA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgb3B0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb247XG4gICAgfVxuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cblxuICBnZXREZXNjcmlwdGlvblZhbHVlKCkge1xuICAgIGlmIChVdGlsLmlzRGVmaW5lZCh0aGlzLmRlc2NyaXB0aW9uQ29sQXJyYXkpICYmIHRoaXMuZGVzY3JpcHRpb25Db2xBcnJheS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGN1cnJJdGVtID0gdGhpcy5kYXRhQXJyYXkuZmluZChlID0+IGVbdGhpcy52YWx1ZUNvbHVtbl0gPT09IHRoaXMuZ2V0VmFsdWUoKSk7XG4gICAgICBpZiAoVXRpbC5pc0RlZmluZWQoY3Vyckl0ZW0pKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlc2NyaXB0aW9uQ29sQXJyYXkubWFwKGNvbCA9PiAodGhpcy50cmFuc2xhdGUgJiYgdGhpcy50cmFuc2xhdGVTZXJ2aWNlKSA/IHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoY3Vyckl0ZW1bY29sXSkgOiBjdXJySXRlbVtjb2xdKS5qb2luKHRoaXMuc2VwYXJhdG9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLmRlc3Ryb3koKTtcblxuICAgIGlmICh0aGlzLnRhYnNTdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLnRhYnNTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gIH1cblxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdldEZvcm1Hcm91cCgpXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiIFttYXRUb29sdGlwQ2xhc3NdPVwidG9vbHRpcENsYXNzXCJcbiAgW21hdFRvb2x0aXBQb3NpdGlvbl09XCJ0b29sdGlwUG9zaXRpb25cIiBbbWF0VG9vbHRpcFNob3dEZWxheV09XCJ0b29sdGlwU2hvd0RlbGF5XCJcbiAgW21hdFRvb2x0aXBIaWRlRGVsYXldPVwidG9vbHRpcEhpZGVEZWxheVwiIGNsYXNzPVwicmVsYXRpdmVcIiBbb0NvbnRleHRNZW51XT1cIm9Db250ZXh0TWVudVwiPlxuICA8IS0tIG1hdC1mb3JtLWZpZWxkIGFuZCBoaWRkZW4gaW5wdXQgYXJlIHVzZWQgb25seSBmb3IgZGlzcGxheWluZyBjb21wb25lbnQgbGFiZWwgYW5kIGVycm9ycyBhcyBtYXQtcmFkaW8gaXMgbm90IHN1cHBvcnRlZCBpbnNpZGUgZm9ybS1maWVsZCAtLT5cbiAgPCEtLSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvaXNzdWVzLzc4OTEgLS0+XG4gIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJoaWRlUmVxdWlyZWRNYXJrZXJcIlxuICAgIFtjbGFzcy5yZWFkLW9ubHldPVwiaXNSZWFkT25seVwiIFtjbGFzcy5jdXN0b20td2lkdGhdPVwiaGFzQ3VzdG9tV2lkdGhcIiBbY2xhc3Muby1yYWRpby1mcm9tLWZpZWxkLXJvd109XCJsYXlvdXQ9PT0ncm93J1wiXG4gICAgZmxvYXRMYWJlbD1cImFsd2F5c1wiIGNsYXNzPVwibWF0LWZvcm0tZmllbGQtLW5vLXVuZGVybGluZVwiIGZ4RmlsbCBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiPlxuICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFZpc2libGVcIj57eyBvbGFiZWwgfCBvVHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IFtpZF09XCJnZXRBdHRyaWJ1dGUoKVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZ2V0QXR0cmlidXRlKClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIlxuICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiAvPlxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2lkXT1cImdldEF0dHJpYnV0ZSgpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJnZXRBdHRyaWJ1dGUoKVwiIFtuYW1lXT1cImdldEF0dHJpYnV0ZSgpXCJcbiAgICAgIFt2YWx1ZV09XCJnZXRWYWx1ZSgpXCIgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWRcIiBbbGFiZWxQb3NpdGlvbl09XCJsYWJlbFBvc2l0aW9uXCJcbiAgICAgIChjaGFuZ2UpPVwib25NYXRSYWRpb0dyb3VwQ2hhbmdlKCRldmVudClcIiBbZnhMYXlvdXRdPVwibGF5b3V0XCIgW2Z4TGF5b3V0R2FwXT1cImxhYmVsR2FwXCI+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbaWRdPVwiJ28tcmFkaW8tYnV0dG9uLScraVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFBcnJheTtsZXQgaSA9IGluZGV4XCIgW3ZhbHVlXT1cImdldFZhbHVlQ29sdW1uKGl0ZW0pXCJcbiAgICAgICBbZGlzYWJsZWRdPVwiIWVuYWJsZWRcIj5cbiAgICAgICAge3sgZ2V0T3B0aW9uRGVzY3JpcHRpb25WYWx1ZShpdGVtKSB9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICB7eyAnRk9STV9WQUxJREFUSU9OLlJFUVVJUkVEJyB8IG9UcmFuc2xhdGUgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBvRXJyb3Igb2YgZ2V0QWN0aXZlT0Vycm9ycygpXCI+XG4gICAgICB7eyBvRXJyb3IudGV4dCB8IG9UcmFuc2xhdGUgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPGRpdiAqbmdJZj1cImlzUmVhZE9ubHlcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgY2xhc3M9XCJyZWFkLW9ubHktYmxvY2tlclwiIGZ4RmlsbD48L2Rpdj5cblxuICA8by1jb250ZXh0LW1lbnUgKm5nSWY9XCIhdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMuZW5hYmxlZFwiPlxuICAgIDxvLWNvbnRleHQtbWVudS1pdGVtIGF0dHI9XCJyZWZyZXNoXCIgbGFiZWw9XCJGT1JNX1NFUlZJQ0VfQ09NUE9ORU5ULlJFRlJFU0hcIiBzdmctaWNvbj1cIm9udGltaXplOmF1dG9yZW5ld1wiIChleGVjdXRlKT1cInJlZnJlc2goKVwiPlxuICAgIDwvby1jb250ZXh0LW1lbnUtaXRlbT5cbiAgPC9vLWNvbnRleHQtbWVudT5cbjwvZGl2PlxuIl19
@@ -165,9 +165,17 @@ export class OTableComponentStateService extends AbstractComponentStateService {
165
165
  return result;
166
166
  }
167
167
  getPageState() {
168
- const result = {
169
- 'query-rows': this.component.matpaginator ? this.component.matpaginator.pageSize : ''
170
- };
168
+ const result = {};
169
+ if (this.component.matpaginator) {
170
+ result['query-rows'] = this.component.matpaginator.pageSize;
171
+ }
172
+ else if (this.component.state.queryRows) {
173
+ result['query-rows'] = this.component.state.queryRows;
174
+ }
175
+ else {
176
+ result['query-rows'] = this.component.originalQueryRows;
177
+ }
178
+ ;
171
179
  if (this.component.currentPage > 0 && this.component.storePaginationState) {
172
180
  result.currentPage = this.component.currentPage;
173
181
  }
@@ -229,4 +237,4 @@ OTableComponentStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "1
229
237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OTableComponentStateService, decorators: [{
230
238
  type: Injectable
231
239
  }] });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb21wb25lbnQtc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9zdGF0ZS9vLXRhYmxlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFHNUUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDZCQUF5RTtJQUV4SCxVQUFVLENBQUMsU0FBMEI7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDN0MsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWdDO1FBQzlDLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDN0QsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNsRCxDQUFD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QUM7SUFFUyxZQUFZO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdkQsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckYsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO1lBQ0wsY0FBYyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1NBQzlELENBQUM7SUFDSixDQUFDOzt5SEFqUFUsMkJBQTJCOzZIQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90YWJsZS9jb2x1bW4vby1jb2x1bW4uY2xhc3MnO1xuaW1wb3J0IHsgT1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90YWJsZS9vLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL28tZmlsdGVyLWRlZmluaXRpb24udHlwZSc7XG5pbXBvcnQgeyBPQ29sdW1uRGlzcGxheSB9IGZyb20gJy4uLy4uL3R5cGVzL3RhYmxlL28tY29sdW1uLWRpc3BsYXkudHlwZSc7XG5pbXBvcnQgeyBPQ29sdW1uU2VhcmNoYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3RhYmxlL28tY29sdW1uLXNlYXJjaGFibGUudHlwZSc7XG5pbXBvcnQgeyBPVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1jb25maWd1cmF0aW9uLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlRmlsdGVyc1N0YXR1cywgT1RhYmxlU3RvcmVkRmlsdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1maWx0ZXItc3RhdHVzLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4vby10YWJsZS1jb21wb25lbnQtc3RhdGUuY2xhc3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT1RhYmxlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2U8T1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcywgT1RhYmxlQ29tcG9uZW50PiB7XG5cbiAgaW5pdGlhbGl6ZShjb21wb25lbnQ6IE9UYWJsZUNvbXBvbmVudCkge1xuICAgIHRoaXMuc3RhdGUgPSBuZXcgT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcygpO1xuICAgIHN1cGVyLmluaXRpYWxpemUoY29tcG9uZW50KTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZShzdGF0ZTogT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcykge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZShzdGF0ZSk7XG4gICAgY29uc3QgaW5pdGlhbENvbmZpZ3VyYXRpb25SYXdPYmogPSBzdGF0ZS5pbml0aWFsQ29uZmlndXJhdGlvbiB8fCB7fTtcbiAgICBzdGF0ZS5pbml0aWFsQ29uZmlndXJhdGlvbiA9IG5ldyBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzKCk7XG4gICAgc3RhdGUuaW5pdGlhbENvbmZpZ3VyYXRpb24uc2V0RGF0YShpbml0aWFsQ29uZmlndXJhdGlvblJhd09iaik7XG4gIH1cblxuICByZWZyZXNoU2VsZWN0aW9uKCkge1xuICAgIHRoaXMuc3RhdGUuc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb25TdGF0ZSgpO1xuICB9XG5cbiAgZ2V0RGF0YVRvU3RvcmUoKTogYW55IHtcbiAgICBjb25zdCBkYXRhVG9TdG9yZTogYW55ID0ge307XG4gICAgY29uc3QgcHJvcGVydGllc0tleXMgPSBbXG4gICAgICAnc29ydC1jb2x1bW5zJyxcbiAgICAgICdvQ29sdW1ucy1kaXNwbGF5JyxcbiAgICAgICdjb2x1bW5zLWZpbHRlcicsXG4gICAgICAncXVpY2stZmlsdGVyJyxcbiAgICAgICdwYWdlJyxcbiAgICAgICdzZWxlY3Rpb24nLFxuICAgICAgJ2luaXRpYWwtY29uZmlndXJhdGlvbicsXG4gICAgICAnZmlsdGVyLWNvbHVtbnMnLFxuICAgICAgJ2ZpbHRlci1jb2x1bW4tYWN0aXZlJyxcbiAgICAgICdncm91cGVkLWNvbHVtbnMnLFxuICAgICAgJ2dyb3VwZWQtY29sdW1uLXR5cGVzJyxcbiAgICAgICd1c2VyLXN0b3JlZC1maWx0ZXJzJyxcbiAgICAgICd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucydcbiAgICBdO1xuICAgIE9iamVjdC5hc3NpZ24oZGF0YVRvU3RvcmUsIHRoaXMuZ2V0VGFibGVQcm9wZXJ0aWVzVG9TdG9yZShwcm9wZXJ0aWVzS2V5cykpO1xuICAgIHJldHVybiBkYXRhVG9TdG9yZTtcbiAgfVxuXG4gIHN0b3JlRmlsdGVyKGZpbHRlcjogT0ZpbHRlckRlZmluaXRpb24pIHtcbiAgICBsZXQgbmV3RmlsdGVyOiBPVGFibGVGaWx0ZXJzU3RhdHVzID0geyBuYW1lOiBmaWx0ZXIubmFtZSwgZGVzY3JpcHRpb246IGZpbHRlci5kZXNjcmlwdGlvbiB9O1xuICAgIGNvbnN0IHN0b3JlZEZpbHRlciA9IHt9XG4gICAgT2JqZWN0LmFzc2lnbihzdG9yZWRGaWx0ZXIsIHRoaXMuZ2V0Q29sdW1uRmlsdGVyc1N0YXRlKCkpO1xuICAgIE9iamVjdC5hc3NpZ24oc3RvcmVkRmlsdGVyLCB0aGlzLmdldENvbHVtbnNRdWlja0ZpbHRlclN0YXRlKCkpO1xuICAgIE9iamVjdC5hc3NpZ24oc3RvcmVkRmlsdGVyLCB0aGlzLmdldEZpbHRlckJ1aWxkZXJTdGF0ZSgpKTtcbiAgICBuZXdGaWx0ZXJbJ3N0b3JlZC1maWx0ZXInXSA9IHN0b3JlZEZpbHRlciBhcyBPVGFibGVTdG9yZWRGaWx0ZXI7XG4gICAgdGhpcy5zdGF0ZS5hZGRTdG9yZWRGaWx0ZXIobmV3RmlsdGVyKTtcbiAgfVxuXG4gIHN0b3JlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uQWdzOiBPVGFibGVDb25maWd1cmF0aW9uLCB0YWJsZVByb3BlcnRpZXM6IGFueVtdKSB7XG4gICAgY29uc3QgbmV3Q29uZmlndXJhdGlvbjogT1RhYmxlQ29uZmlndXJhdGlvbiA9IHt9O1xuICAgIHRoaXMuY29tcG9uZW50LnN0b3JlUGFnaW5hdGlvblN0YXRlID0gdHJ1ZTtcbiAgICBjb25zdCBzdG9yZWRDb25maWd1cmF0aW9uID0gdGhpcy5nZXRUYWJsZVByb3BlcnRpZXNUb1N0b3JlKHRhYmxlUHJvcGVydGllcyk7XG4gICAgdGhpcy5jb21wb25lbnQuc3RvcmVQYWdpbmF0aW9uU3RhdGUgPSBmYWxzZTtcblxuICAgIG5ld0NvbmZpZ3VyYXRpb25bJ3N0b3JlZC1jb25maWd1cmF0aW9uJ10gPSBzdG9yZWRDb25maWd1cmF0aW9uO1xuICAgIE9iamVjdC5hc3NpZ24obmV3Q29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbkFncyk7XG4gICAgbmV3Q29uZmlndXJhdGlvblsnc3RvcmVkLXByb3BlcnRpZXMnXSA9IHRhYmxlUHJvcGVydGllcztcblxuICAgIHRoaXMuc3RhdGUuYWRkU3RvcmVkQ29uZmlndXJhdGlvbihuZXdDb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUYWJsZVByb3BlcnRpZXNUb1N0b3JlKHByb3BlcnRpZXM6IHN0cmluZ1tdKTogYW55IHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBwcm9wZXJ0aWVzLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgdGhpcy5nZXRUYWJsZVByb3BlcnR5VG9TdG9yZShwcm9wKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUYWJsZVByb3BlcnR5VG9TdG9yZShwcm9wZXJ0eTogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBzd2l0Y2ggKHByb3BlcnR5KSB7XG4gICAgICBjYXNlICdzb3J0LWNvbHVtbnMnOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldFNvcnRTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29Db2x1bW5zLWRpc3BsYXknOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldENvbHVtbnNEaXNwbGF5U3RhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdxdWljay1maWx0ZXInOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldENvbHVtbnNRdWlja0ZpbHRlclN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29sdW1ucy1maWx0ZXInOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldENvbHVtbkZpbHRlcnNTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldFBhZ2VTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdGlvbic6XG4gICAgICAgIHJlc3VsdFsnc2VsZWN0aW9uJ10gPSB0aGlzLmdldFNlbGVjdGlvblN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW5pdGlhbC1jb25maWd1cmF0aW9uJzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5nZXRJbml0aWFsQ29uZmlndXJhdGlvblN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsdGVyLWNvbHVtbi1hY3RpdmUnOlxuICAgICAgICByZXN1bHRbJ2ZpbHRlci1jb2x1bW4tYWN0aXZlJ10gPSB0aGlzLmNvbXBvbmVudC5pc0NvbHVtbkZpbHRlcnNBY3RpdmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsdGVyLWNvbHVtbnMnOlxuICAgICAgICByZXN1bHRbJ2ZpbHRlci1jb2x1bW5zJ10gPSB0aGlzLmNvbXBvbmVudC5maWx0ZXJDb2x1bW5zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2dyb3VwZWQtY29sdW1ucyc6XG4gICAgICAgIHJlc3VsdFsnZ3JvdXBlZC1jb2x1bW5zJ10gPSB0aGlzLmNvbXBvbmVudC5ncm91cGVkQ29sdW1uc0FycmF5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2dyb3VwZWQtY29sdW1uLXR5cGVzJzpcbiAgICAgICAgcmVzdWx0Wydncm91cGVkLWNvbHVtbi10eXBlcyddID0gdGhpcy5jb21wb25lbnQuZ3JvdXBlZENvbHVtblR5cGVzO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VzZXItc3RvcmVkLWZpbHRlcnMnOlxuICAgICAgICByZXN1bHRbJ3VzZXItc3RvcmVkLWZpbHRlcnMnXSA9IHRoaXMuc3RhdGUuc3RvcmVkRmlsdGVycztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucyc6XG4gICAgICAgIHJlc3VsdFsndXNlci1zdG9yZWQtY29uZmlndXJhdGlvbnMnXSA9IHRoaXMuc3RhdGUuc3RvcmVkQ29uZmlndXJhdGlvbnM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsdGVyLWJ1aWxkZXInOlxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnQuZmlsdGVyQnVpbGRlcikge1xuICAgICAgICAgIHJlc3VsdFsnZmlsdGVyLWJ1aWxkZXInXSA9IHRoaXMuY29tcG9uZW50LmZpbHRlckJ1aWxkZXIuZ2V0RmlsdGVyVmFsdWVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uc0Rpc3BsYXlTdGF0ZSgpIHtcbiAgICBjb25zdCBvQ29sdW1uc0RhdGEgPSBbXTtcbiAgICB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zLmNvbHVtbnMuZm9yRWFjaCgob0NvbDogT0NvbHVtbikgPT4ge1xuICAgICAgb0NvbHVtbnNEYXRhLnB1c2goe1xuICAgICAgICBhdHRyOiBvQ29sLmF0dHIsXG4gICAgICAgIHZpc2libGU6IG9Db2wudmlzaWJsZSxcbiAgICAgICAgd2lkdGg6IG9Db2wuZ2V0V2lkdGhUb1N0b3JlKClcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnb0NvbHVtbnMtZGlzcGxheSc6IG9Db2x1bW5zRGF0YSxcbiAgICAgICdzZWxlY3QtY29sdW1uLXZpc2libGUnOiB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zLnNlbGVjdENvbHVtbi52aXNpYmxlXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5zUXVpY2tGaWx0ZXJTdGF0ZSgpIHtcbiAgICBjb25zdCB0YWJsZU9wdGlvbnMgPSB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zO1xuICAgIGNvbnN0IG9Db2x1bW5zRGF0YTogT0NvbHVtblNlYXJjaGFibGVbXSA9IFtdO1xuICAgIHRhYmxlT3B0aW9ucy5jb2x1bW5zLmZvckVhY2goKG9Db2w6IE9Db2x1bW4pID0+IHtcbiAgICAgIG9Db2x1bW5zRGF0YS5wdXNoKHtcbiAgICAgICAgYXR0cjogb0NvbC5hdHRyLFxuICAgICAgICBzZWFyY2hhYmxlOiBvQ29sLnNlYXJjaGFibGUsXG4gICAgICAgIHNlYXJjaGluZzogb0NvbC5zZWFyY2hpbmdcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnb0NvbHVtbnMnOiBvQ29sdW1uc0RhdGEsXG4gICAgICAnZmlsdGVyLWNhc2Utc2Vuc2l0aXZlJzogdGFibGVPcHRpb25zLmZpbHRlckNhc2VTZW5zaXRpdmUsXG4gICAgICAnZmlsdGVyJzogdGhpcy5jb21wb25lbnQub1RhYmxlUXVpY2tGaWx0ZXJDb21wb25lbnQgPyB0aGlzLmNvbXBvbmVudC5vVGFibGVRdWlja0ZpbHRlckNvbXBvbmVudC52YWx1ZSA6ICcnXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRGaWx0ZXJCdWlsZGVyU3RhdGUoKTogYW55IHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBpZiAodGhpcy5jb21wb25lbnQuZmlsdGVyQnVpbGRlcikge1xuICAgICAgbGV0IGZpbHRlckJ1aWxkZXIgPSB0aGlzLmNvbXBvbmVudC5maWx0ZXJCdWlsZGVyLmdldEZpbHRlclZhbHVlcygpO1xuICAgICAgaWYgKCFVdGlsLmlzT2JqZWN0RW1wdHkoZmlsdGVyQnVpbGRlcikpIHtcbiAgICAgICAgcmVzdWx0WydmaWx0ZXItYnVpbGRlci12YWx1ZXMnXSA9IGZpbHRlckJ1aWxkZXI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5GaWx0ZXJzU3RhdGUoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgaWYgKHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IGNvbHVtblZhbHVlRmlsdGVycyA9IHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UuZ2V0Q29sdW1uVmFsdWVGaWx0ZXJzKCk7XG4gICAgICBpZiAoY29sdW1uVmFsdWVGaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmVzdWx0Wydjb2x1bW4tdmFsdWUtZmlsdGVycyddID0gY29sdW1uVmFsdWVGaWx0ZXJzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBhZ2VTdGF0ZSgpOiBhbnkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge1xuICAgICAgJ3F1ZXJ5LXJvd3MnOiB0aGlzLmNvbXBvbmVudC5tYXRwYWdpbmF0b3IgPyB0aGlzLmNvbXBvbmVudC5tYXRwYWdpbmF0b3IucGFnZVNpemUgOiAnJ1xuICAgIH07XG4gICAgaWYgKHRoaXMuY29tcG9uZW50LmN1cnJlbnRQYWdlID4gMCAmJiB0aGlzLmNvbXBvbmVudC5zdG9yZVBhZ2luYXRpb25TdGF0ZSkge1xuICAgICAgcmVzdWx0LmN1cnJlbnRQYWdlID0gdGhpcy5jb21wb25lbnQuY3VycmVudFBhZ2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbXBvbmVudC5wYWdlYWJsZSAmJiB0aGlzLmNvbXBvbmVudC5zdG9yZVBhZ2luYXRpb25TdGF0ZSkge1xuICAgICAgcmVzdWx0LnRvdGFsUXVlcnlSZWNvcmRzTnVtYmVyID0gdGhpcy5jb21wb25lbnQuc3RhdGUudG90YWxRdWVyeVJlY29yZHNOdW1iZXI7XG4gICAgICByZXN1bHQucXVlcnlSZWNvcmRPZmZzZXQgPSBNYXRoLm1heChcbiAgICAgICAgKHRoaXMuY29tcG9uZW50LnN0YXRlLnF1ZXJ5UmVjb3JkT2Zmc2V0IC0gdGhpcy5jb21wb25lbnQuZGF0YVNvdXJjZS5yZW5kZXJlZERhdGEubGVuZ3RoKSxcbiAgICAgICAgKHRoaXMuY29tcG9uZW50LnN0YXRlLnF1ZXJ5UmVjb3JkT2Zmc2V0IC0gdGhpcy5jb21wb25lbnQucXVlcnlSb3dzKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTZWxlY3Rpb25TdGF0ZSgpOiBhbnkge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IFtdO1xuICAgIGlmICh0aGlzLmNvbXBvbmVudCAmJiB0aGlzLmNvbXBvbmVudC5rZWVwU2VsZWN0ZWRJdGVtcykge1xuICAgICAgLy8gc3RvcmluZyBzZWxlY3RlZCBpdGVtcyBrZXlzIHZhbHVlc1xuICAgICAgY29uc3QgdGFibGVLZXlzID0gdGhpcy5jb21wb25lbnQuZ2V0S2V5cygpO1xuICAgICAgdGhpcy5jb21wb25lbnQuZ2V0U2VsZWN0ZWRJdGVtcygpLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICAgICAgdGFibGVLZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICBkYXRhW2tleV0gPSBpdGVtW2tleV07XG4gICAgICAgIH0pO1xuICAgICAgICBzZWxlY3Rpb24ucHVzaChkYXRhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VsZWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEluaXRpYWxDb25maWd1cmF0aW9uU3RhdGUoKTogYW55IHtcbiAgICBjb25zdCBvQ29sdW1uc0RhdGE6IE9Db2x1bW5EaXNwbGF5W10gPSBbXTtcbiAgICBVdGlsLnBhcnNlQXJyYXkodGhpcy5jb21wb25lbnQudmlzaWJsZUNvbHVtbnMsIHRydWUpLmZvckVhY2goKGNvbHVtbkF0dHI6IHN0cmluZykgPT4ge1xuICAgICAgbGV0IG9Db2wgPSB0aGlzLmNvbXBvbmVudC5nZXRPQ29sdW1uKGNvbHVtbkF0dHIpO1xuICAgICAgb0NvbHVtbnNEYXRhLnB1c2goe1xuICAgICAgICBhdHRyOiBvQ29sLmF0dHIsXG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIHdpZHRoOiBvQ29sLmRlZmluaXRpb24gPyBvQ29sLmRlZmluaXRpb24ub3JpZ2luYWxXaWR0aCA6IHVuZGVmaW5lZFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdpbml0aWFsLWNvbmZpZ3VyYXRpb24nOiB7XG4gICAgICAgICdvQ29sdW1ucy1kaXNwbGF5Jzogb0NvbHVtbnNEYXRhLFxuICAgICAgICAnc29ydC1jb2x1bW5zJzogdGhpcy5jb21wb25lbnQuc29ydENvbHVtbnMsXG4gICAgICAgICdzZWxlY3QtY29sdW1uLXZpc2libGUnOiB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zLnNlbGVjdENvbHVtbi52aXNpYmxlLFxuICAgICAgICAnZmlsdGVyLWNhc2Utc2Vuc2l0aXZlJzogdGhpcy5jb21wb25lbnQuZmlsdGVyQ2FzZVNlbnNpdGl2ZSxcbiAgICAgICAgJ3F1ZXJ5LXJvd3MnOiB0aGlzLmNvbXBvbmVudC5vcmlnaW5hbFF1ZXJ5Um93cyxcbiAgICAgICAgJ2ZpbHRlci1jb2x1bW4tYWN0aXZlLWJ5LWRlZmF1bHQnOiB0aGlzLmNvbXBvbmVudC5maWx0ZXJDb2x1bW5BY3RpdmVCeURlZmF1bHQsXG4gICAgICAgICdmaWx0ZXItY29sdW1ucyc6IHRoaXMuY29tcG9uZW50Lm9yaWdpbmFsRmlsdGVyQ29sdW1ucyxcbiAgICAgICAgJ2dyb3VwZWQtY29sdW1ucyc6IHRoaXMuY29tcG9uZW50Lm9yaWdpbmFsR3JvdXBlZENvbHVtbnNBcnJheVxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U29ydFN0YXRlKCkge1xuICAgIGNvbnN0IHNvcnRDb2x1bW5zID0gW107XG4gICAgdGhpcy5jb21wb25lbnQuc29ydD8uZ2V0U29ydENvbHVtbnMoKS5mb3JFYWNoKHNvcnREYXRhID0+IHtcbiAgICAgIHNvcnRDb2x1bW5zLnB1c2goc29ydERhdGEuaWQgKyBDb2Rlcy5DT0xVTU5TX0FMSUFTX1NFUEFSQVRPUiArIHNvcnREYXRhLmRpcmVjdGlvbik7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdzb3J0LWNvbHVtbnMnOiBzb3J0Q29sdW1ucy5qb2luKENvZGVzLkFSUkFZX0lOUFVUX1NFUEFSQVRPUilcbiAgICB9O1xuICB9XG59XG5cblxuIl19
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby10YWJsZS1jb21wb25lbnQtc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9zdGF0ZS9vLXRhYmxlLWNvbXBvbmVudC1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFHNUUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLDZCQUF5RTtJQUV4SCxVQUFVLENBQUMsU0FBMEI7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDN0MsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWdDO1FBQzlDLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsTUFBTSwwQkFBMEIsR0FBRyxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFDN0QsS0FBSyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNsRCxDQUFD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QUFDLG1CQUFtQjtnQkFDM0QsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCO2dCQUM5QyxpQ0FBaUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLDJCQUEyQjtnQkFDN0UsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUI7Z0JBQ3RELGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsMkJBQTJCO2FBQzlEO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFUyxZQUFZO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdkQsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckYsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO1lBQ0wsY0FBYyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1NBQzlELENBQUM7SUFDSixDQUFDOzt5SEF4UFUsMkJBQTJCOzZIQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBPQ29sdW1uIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90YWJsZS9jb2x1bW4vby1jb2x1bW4uY2xhc3MnO1xuaW1wb3J0IHsgT1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy90YWJsZS9vLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPRmlsdGVyRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL28tZmlsdGVyLWRlZmluaXRpb24udHlwZSc7XG5pbXBvcnQgeyBPQ29sdW1uRGlzcGxheSB9IGZyb20gJy4uLy4uL3R5cGVzL3RhYmxlL28tY29sdW1uLWRpc3BsYXkudHlwZSc7XG5pbXBvcnQgeyBPQ29sdW1uU2VhcmNoYWJsZSB9IGZyb20gJy4uLy4uL3R5cGVzL3RhYmxlL28tY29sdW1uLXNlYXJjaGFibGUudHlwZSc7XG5pbXBvcnQgeyBPVGFibGVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1jb25maWd1cmF0aW9uLnR5cGUnO1xuaW1wb3J0IHsgT1RhYmxlRmlsdGVyc1N0YXR1cywgT1RhYmxlU3RvcmVkRmlsdGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvdGFibGUvby10YWJsZS1maWx0ZXItc3RhdHVzLnR5cGUnO1xuaW1wb3J0IHsgQ29kZXMgfSBmcm9tICcuLi8uLi91dGlsL2NvZGVzJztcbmltcG9ydCB7IFV0aWwgfSBmcm9tICcuLi8uLi91dGlsL3V0aWwnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL28tY29tcG9uZW50LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcyB9IGZyb20gJy4vby10YWJsZS1jb21wb25lbnQtc3RhdGUuY2xhc3MnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT1RhYmxlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnRTdGF0ZVNlcnZpY2U8T1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcywgT1RhYmxlQ29tcG9uZW50PiB7XG5cbiAgaW5pdGlhbGl6ZShjb21wb25lbnQ6IE9UYWJsZUNvbXBvbmVudCkge1xuICAgIHRoaXMuc3RhdGUgPSBuZXcgT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcygpO1xuICAgIHN1cGVyLmluaXRpYWxpemUoY29tcG9uZW50KTtcbiAgfVxuXG4gIGluaXRpYWxpemVTdGF0ZShzdGF0ZTogT1RhYmxlQ29tcG9uZW50U3RhdGVDbGFzcykge1xuICAgIHN1cGVyLmluaXRpYWxpemVTdGF0ZShzdGF0ZSk7XG4gICAgY29uc3QgaW5pdGlhbENvbmZpZ3VyYXRpb25SYXdPYmogPSBzdGF0ZS5pbml0aWFsQ29uZmlndXJhdGlvbiB8fCB7fTtcbiAgICBzdGF0ZS5pbml0aWFsQ29uZmlndXJhdGlvbiA9IG5ldyBPVGFibGVDb21wb25lbnRTdGF0ZUNsYXNzKCk7XG4gICAgc3RhdGUuaW5pdGlhbENvbmZpZ3VyYXRpb24uc2V0RGF0YShpbml0aWFsQ29uZmlndXJhdGlvblJhd09iaik7XG4gIH1cblxuICByZWZyZXNoU2VsZWN0aW9uKCkge1xuICAgIHRoaXMuc3RhdGUuc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb25TdGF0ZSgpO1xuICB9XG5cbiAgZ2V0RGF0YVRvU3RvcmUoKTogYW55IHtcbiAgICBjb25zdCBkYXRhVG9TdG9yZTogYW55ID0ge307XG4gICAgY29uc3QgcHJvcGVydGllc0tleXMgPSBbXG4gICAgICAnc29ydC1jb2x1bW5zJyxcbiAgICAgICdvQ29sdW1ucy1kaXNwbGF5JyxcbiAgICAgICdjb2x1bW5zLWZpbHRlcicsXG4gICAgICAncXVpY2stZmlsdGVyJyxcbiAgICAgICdwYWdlJyxcbiAgICAgICdzZWxlY3Rpb24nLFxuICAgICAgJ2luaXRpYWwtY29uZmlndXJhdGlvbicsXG4gICAgICAnZmlsdGVyLWNvbHVtbnMnLFxuICAgICAgJ2ZpbHRlci1jb2x1bW4tYWN0aXZlJyxcbiAgICAgICdncm91cGVkLWNvbHVtbnMnLFxuICAgICAgJ2dyb3VwZWQtY29sdW1uLXR5cGVzJyxcbiAgICAgICd1c2VyLXN0b3JlZC1maWx0ZXJzJyxcbiAgICAgICd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucydcbiAgICBdO1xuICAgIE9iamVjdC5hc3NpZ24oZGF0YVRvU3RvcmUsIHRoaXMuZ2V0VGFibGVQcm9wZXJ0aWVzVG9TdG9yZShwcm9wZXJ0aWVzS2V5cykpO1xuICAgIHJldHVybiBkYXRhVG9TdG9yZTtcbiAgfVxuXG4gIHN0b3JlRmlsdGVyKGZpbHRlcjogT0ZpbHRlckRlZmluaXRpb24pIHtcbiAgICBsZXQgbmV3RmlsdGVyOiBPVGFibGVGaWx0ZXJzU3RhdHVzID0geyBuYW1lOiBmaWx0ZXIubmFtZSwgZGVzY3JpcHRpb246IGZpbHRlci5kZXNjcmlwdGlvbiB9O1xuICAgIGNvbnN0IHN0b3JlZEZpbHRlciA9IHt9XG4gICAgT2JqZWN0LmFzc2lnbihzdG9yZWRGaWx0ZXIsIHRoaXMuZ2V0Q29sdW1uRmlsdGVyc1N0YXRlKCkpO1xuICAgIE9iamVjdC5hc3NpZ24oc3RvcmVkRmlsdGVyLCB0aGlzLmdldENvbHVtbnNRdWlja0ZpbHRlclN0YXRlKCkpO1xuICAgIE9iamVjdC5hc3NpZ24oc3RvcmVkRmlsdGVyLCB0aGlzLmdldEZpbHRlckJ1aWxkZXJTdGF0ZSgpKTtcbiAgICBuZXdGaWx0ZXJbJ3N0b3JlZC1maWx0ZXInXSA9IHN0b3JlZEZpbHRlciBhcyBPVGFibGVTdG9yZWRGaWx0ZXI7XG4gICAgdGhpcy5zdGF0ZS5hZGRTdG9yZWRGaWx0ZXIobmV3RmlsdGVyKTtcbiAgfVxuXG4gIHN0b3JlQ29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uQWdzOiBPVGFibGVDb25maWd1cmF0aW9uLCB0YWJsZVByb3BlcnRpZXM6IGFueVtdKSB7XG4gICAgY29uc3QgbmV3Q29uZmlndXJhdGlvbjogT1RhYmxlQ29uZmlndXJhdGlvbiA9IHt9O1xuICAgIHRoaXMuY29tcG9uZW50LnN0b3JlUGFnaW5hdGlvblN0YXRlID0gdHJ1ZTtcbiAgICBjb25zdCBzdG9yZWRDb25maWd1cmF0aW9uID0gdGhpcy5nZXRUYWJsZVByb3BlcnRpZXNUb1N0b3JlKHRhYmxlUHJvcGVydGllcyk7XG4gICAgdGhpcy5jb21wb25lbnQuc3RvcmVQYWdpbmF0aW9uU3RhdGUgPSBmYWxzZTtcblxuICAgIG5ld0NvbmZpZ3VyYXRpb25bJ3N0b3JlZC1jb25maWd1cmF0aW9uJ10gPSBzdG9yZWRDb25maWd1cmF0aW9uO1xuICAgIE9iamVjdC5hc3NpZ24obmV3Q29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbkFncyk7XG4gICAgbmV3Q29uZmlndXJhdGlvblsnc3RvcmVkLXByb3BlcnRpZXMnXSA9IHRhYmxlUHJvcGVydGllcztcblxuICAgIHRoaXMuc3RhdGUuYWRkU3RvcmVkQ29uZmlndXJhdGlvbihuZXdDb25maWd1cmF0aW9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUYWJsZVByb3BlcnRpZXNUb1N0b3JlKHByb3BlcnRpZXM6IHN0cmluZ1tdKTogYW55IHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBwcm9wZXJ0aWVzLmZvckVhY2gocHJvcCA9PiB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgdGhpcy5nZXRUYWJsZVByb3BlcnR5VG9TdG9yZShwcm9wKSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRUYWJsZVByb3BlcnR5VG9TdG9yZShwcm9wZXJ0eTogc3RyaW5nKTogYW55IHtcbiAgICBsZXQgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBzd2l0Y2ggKHByb3BlcnR5KSB7XG4gICAgICBjYXNlICdzb3J0LWNvbHVtbnMnOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldFNvcnRTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29Db2x1bW5zLWRpc3BsYXknOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldENvbHVtbnNEaXNwbGF5U3RhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdxdWljay1maWx0ZXInOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldENvbHVtbnNRdWlja0ZpbHRlclN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29sdW1ucy1maWx0ZXInOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldENvbHVtbkZpbHRlcnNTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3BhZ2UnOlxuICAgICAgICByZXN1bHQgPSB0aGlzLmdldFBhZ2VTdGF0ZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3NlbGVjdGlvbic6XG4gICAgICAgIHJlc3VsdFsnc2VsZWN0aW9uJ10gPSB0aGlzLmdldFNlbGVjdGlvblN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW5pdGlhbC1jb25maWd1cmF0aW9uJzpcbiAgICAgICAgcmVzdWx0ID0gdGhpcy5nZXRJbml0aWFsQ29uZmlndXJhdGlvblN0YXRlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsdGVyLWNvbHVtbi1hY3RpdmUnOlxuICAgICAgICByZXN1bHRbJ2ZpbHRlci1jb2x1bW4tYWN0aXZlJ10gPSB0aGlzLmNvbXBvbmVudC5pc0NvbHVtbkZpbHRlcnNBY3RpdmU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsdGVyLWNvbHVtbnMnOlxuICAgICAgICByZXN1bHRbJ2ZpbHRlci1jb2x1bW5zJ10gPSB0aGlzLmNvbXBvbmVudC5maWx0ZXJDb2x1bW5zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2dyb3VwZWQtY29sdW1ucyc6XG4gICAgICAgIHJlc3VsdFsnZ3JvdXBlZC1jb2x1bW5zJ10gPSB0aGlzLmNvbXBvbmVudC5ncm91cGVkQ29sdW1uc0FycmF5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2dyb3VwZWQtY29sdW1uLXR5cGVzJzpcbiAgICAgICAgcmVzdWx0Wydncm91cGVkLWNvbHVtbi10eXBlcyddID0gdGhpcy5jb21wb25lbnQuZ3JvdXBlZENvbHVtblR5cGVzO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3VzZXItc3RvcmVkLWZpbHRlcnMnOlxuICAgICAgICByZXN1bHRbJ3VzZXItc3RvcmVkLWZpbHRlcnMnXSA9IHRoaXMuc3RhdGUuc3RvcmVkRmlsdGVycztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd1c2VyLXN0b3JlZC1jb25maWd1cmF0aW9ucyc6XG4gICAgICAgIHJlc3VsdFsndXNlci1zdG9yZWQtY29uZmlndXJhdGlvbnMnXSA9IHRoaXMuc3RhdGUuc3RvcmVkQ29uZmlndXJhdGlvbnM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsdGVyLWJ1aWxkZXInOlxuICAgICAgICBpZiAodGhpcy5jb21wb25lbnQuZmlsdGVyQnVpbGRlcikge1xuICAgICAgICAgIHJlc3VsdFsnZmlsdGVyLWJ1aWxkZXInXSA9IHRoaXMuY29tcG9uZW50LmZpbHRlckJ1aWxkZXIuZ2V0RmlsdGVyVmFsdWVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29sdW1uc0Rpc3BsYXlTdGF0ZSgpIHtcbiAgICBjb25zdCBvQ29sdW1uc0RhdGEgPSBbXTtcbiAgICB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zLmNvbHVtbnMuZm9yRWFjaCgob0NvbDogT0NvbHVtbikgPT4ge1xuICAgICAgb0NvbHVtbnNEYXRhLnB1c2goe1xuICAgICAgICBhdHRyOiBvQ29sLmF0dHIsXG4gICAgICAgIHZpc2libGU6IG9Db2wudmlzaWJsZSxcbiAgICAgICAgd2lkdGg6IG9Db2wuZ2V0V2lkdGhUb1N0b3JlKClcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnb0NvbHVtbnMtZGlzcGxheSc6IG9Db2x1bW5zRGF0YSxcbiAgICAgICdzZWxlY3QtY29sdW1uLXZpc2libGUnOiB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zLnNlbGVjdENvbHVtbi52aXNpYmxlXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5zUXVpY2tGaWx0ZXJTdGF0ZSgpIHtcbiAgICBjb25zdCB0YWJsZU9wdGlvbnMgPSB0aGlzLmNvbXBvbmVudC5vVGFibGVPcHRpb25zO1xuICAgIGNvbnN0IG9Db2x1bW5zRGF0YTogT0NvbHVtblNlYXJjaGFibGVbXSA9IFtdO1xuICAgIHRhYmxlT3B0aW9ucy5jb2x1bW5zLmZvckVhY2goKG9Db2w6IE9Db2x1bW4pID0+IHtcbiAgICAgIG9Db2x1bW5zRGF0YS5wdXNoKHtcbiAgICAgICAgYXR0cjogb0NvbC5hdHRyLFxuICAgICAgICBzZWFyY2hhYmxlOiBvQ29sLnNlYXJjaGFibGUsXG4gICAgICAgIHNlYXJjaGluZzogb0NvbC5zZWFyY2hpbmdcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnb0NvbHVtbnMnOiBvQ29sdW1uc0RhdGEsXG4gICAgICAnZmlsdGVyLWNhc2Utc2Vuc2l0aXZlJzogdGFibGVPcHRpb25zLmZpbHRlckNhc2VTZW5zaXRpdmUsXG4gICAgICAnZmlsdGVyJzogdGhpcy5jb21wb25lbnQub1RhYmxlUXVpY2tGaWx0ZXJDb21wb25lbnQgPyB0aGlzLmNvbXBvbmVudC5vVGFibGVRdWlja0ZpbHRlckNvbXBvbmVudC52YWx1ZSA6ICcnXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRGaWx0ZXJCdWlsZGVyU3RhdGUoKTogYW55IHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBpZiAodGhpcy5jb21wb25lbnQuZmlsdGVyQnVpbGRlcikge1xuICAgICAgbGV0IGZpbHRlckJ1aWxkZXIgPSB0aGlzLmNvbXBvbmVudC5maWx0ZXJCdWlsZGVyLmdldEZpbHRlclZhbHVlcygpO1xuICAgICAgaWYgKCFVdGlsLmlzT2JqZWN0RW1wdHkoZmlsdGVyQnVpbGRlcikpIHtcbiAgICAgICAgcmVzdWx0WydmaWx0ZXItYnVpbGRlci12YWx1ZXMnXSA9IGZpbHRlckJ1aWxkZXI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBnZXRDb2x1bW5GaWx0ZXJzU3RhdGUoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgaWYgKHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UpIHtcbiAgICAgIGNvbnN0IGNvbHVtblZhbHVlRmlsdGVycyA9IHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UuZ2V0Q29sdW1uVmFsdWVGaWx0ZXJzKCk7XG4gICAgICBpZiAoY29sdW1uVmFsdWVGaWx0ZXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmVzdWx0Wydjb2x1bW4tdmFsdWUtZmlsdGVycyddID0gY29sdW1uVmFsdWVGaWx0ZXJzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFBhZ2VTdGF0ZSgpOiBhbnkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG5cbiAgICBpZiAodGhpcy5jb21wb25lbnQubWF0cGFnaW5hdG9yKSB7XG4gICAgICByZXN1bHRbJ3F1ZXJ5LXJvd3MnXSA9IHRoaXMuY29tcG9uZW50Lm1hdHBhZ2luYXRvci5wYWdlU2l6ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29tcG9uZW50LnN0YXRlLnF1ZXJ5Um93cykge1xuICAgICAgcmVzdWx0WydxdWVyeS1yb3dzJ10gPSB0aGlzLmNvbXBvbmVudC5zdGF0ZS5xdWVyeVJvd3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFsncXVlcnktcm93cyddID0gdGhpcy5jb21wb25lbnQub3JpZ2luYWxRdWVyeVJvd3M7XG4gICAgfTtcblxuICAgIGlmICh0aGlzLmNvbXBvbmVudC5jdXJyZW50UGFnZSA+IDAgJiYgdGhpcy5jb21wb25lbnQuc3RvcmVQYWdpbmF0aW9uU3RhdGUpIHtcbiAgICAgIHJlc3VsdC5jdXJyZW50UGFnZSA9IHRoaXMuY29tcG9uZW50LmN1cnJlbnRQYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21wb25lbnQucGFnZWFibGUgJiYgdGhpcy5jb21wb25lbnQuc3RvcmVQYWdpbmF0aW9uU3RhdGUpIHtcbiAgICAgIHJlc3VsdC50b3RhbFF1ZXJ5UmVjb3Jkc051bWJlciA9IHRoaXMuY29tcG9uZW50LnN0YXRlLnRvdGFsUXVlcnlSZWNvcmRzTnVtYmVyO1xuICAgICAgcmVzdWx0LnF1ZXJ5UmVjb3JkT2Zmc2V0ID0gTWF0aC5tYXgoXG4gICAgICAgICh0aGlzLmNvbXBvbmVudC5zdGF0ZS5xdWVyeVJlY29yZE9mZnNldCAtIHRoaXMuY29tcG9uZW50LmRhdGFTb3VyY2UucmVuZGVyZWREYXRhLmxlbmd0aCksXG4gICAgICAgICh0aGlzLmNvbXBvbmVudC5zdGF0ZS5xdWVyeVJlY29yZE9mZnNldCAtIHRoaXMuY29tcG9uZW50LnF1ZXJ5Um93cylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U2VsZWN0aW9uU3RhdGUoKTogYW55IHtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBbXTtcbiAgICBpZiAodGhpcy5jb21wb25lbnQgJiYgdGhpcy5jb21wb25lbnQua2VlcFNlbGVjdGVkSXRlbXMpIHtcbiAgICAgIC8vIHN0b3Jpbmcgc2VsZWN0ZWQgaXRlbXMga2V5cyB2YWx1ZXNcbiAgICAgIGNvbnN0IHRhYmxlS2V5cyA9IHRoaXMuY29tcG9uZW50LmdldEtleXMoKTtcbiAgICAgIHRoaXMuY29tcG9uZW50LmdldFNlbGVjdGVkSXRlbXMoKS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBkYXRhID0ge307XG4gICAgICAgIHRhYmxlS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgZGF0YVtrZXldID0gaXRlbVtrZXldO1xuICAgICAgICB9KTtcbiAgICAgICAgc2VsZWN0aW9uLnB1c2goZGF0YSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJbml0aWFsQ29uZmlndXJhdGlvblN0YXRlKCk6IGFueSB7XG4gICAgY29uc3Qgb0NvbHVtbnNEYXRhOiBPQ29sdW1uRGlzcGxheVtdID0gW107XG4gICAgVXRpbC5wYXJzZUFycmF5KHRoaXMuY29tcG9uZW50LnZpc2libGVDb2x1bW5zLCB0cnVlKS5mb3JFYWNoKChjb2x1bW5BdHRyOiBzdHJpbmcpID0+IHtcbiAgICAgIGxldCBvQ29sID0gdGhpcy5jb21wb25lbnQuZ2V0T0NvbHVtbihjb2x1bW5BdHRyKTtcbiAgICAgIG9Db2x1bW5zRGF0YS5wdXNoKHtcbiAgICAgICAgYXR0cjogb0NvbC5hdHRyLFxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICB3aWR0aDogb0NvbC5kZWZpbml0aW9uID8gb0NvbC5kZWZpbml0aW9uLm9yaWdpbmFsV2lkdGggOiB1bmRlZmluZWRcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnaW5pdGlhbC1jb25maWd1cmF0aW9uJzoge1xuICAgICAgICAnb0NvbHVtbnMtZGlzcGxheSc6IG9Db2x1bW5zRGF0YSxcbiAgICAgICAgJ3NvcnQtY29sdW1ucyc6IHRoaXMuY29tcG9uZW50LnNvcnRDb2x1bW5zLFxuICAgICAgICAnc2VsZWN0LWNvbHVtbi12aXNpYmxlJzogdGhpcy5jb21wb25lbnQub1RhYmxlT3B0aW9ucy5zZWxlY3RDb2x1bW4udmlzaWJsZSxcbiAgICAgICAgJ2ZpbHRlci1jYXNlLXNlbnNpdGl2ZSc6IHRoaXMuY29tcG9uZW50LmZpbHRlckNhc2VTZW5zaXRpdmUsXG4gICAgICAgICdxdWVyeS1yb3dzJzogdGhpcy5jb21wb25lbnQub3JpZ2luYWxRdWVyeVJvd3MsXG4gICAgICAgICdmaWx0ZXItY29sdW1uLWFjdGl2ZS1ieS1kZWZhdWx0JzogdGhpcy5jb21wb25lbnQuZmlsdGVyQ29sdW1uQWN0aXZlQnlEZWZhdWx0LFxuICAgICAgICAnZmlsdGVyLWNvbHVtbnMnOiB0aGlzLmNvbXBvbmVudC5vcmlnaW5hbEZpbHRlckNvbHVtbnMsXG4gICAgICAgICdncm91cGVkLWNvbHVtbnMnOiB0aGlzLmNvbXBvbmVudC5vcmlnaW5hbEdyb3VwZWRDb2x1bW5zQXJyYXlcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFNvcnRTdGF0ZSgpIHtcbiAgICBjb25zdCBzb3J0Q29sdW1ucyA9IFtdO1xuICAgIHRoaXMuY29tcG9uZW50LnNvcnQ/LmdldFNvcnRDb2x1bW5zKCkuZm9yRWFjaChzb3J0RGF0YSA9PiB7XG4gICAgICBzb3J0Q29sdW1ucy5wdXNoKHNvcnREYXRhLmlkICsgQ29kZXMuQ09MVU1OU19BTElBU19TRVBBUkFUT1IgKyBzb3J0RGF0YS5kaXJlY3Rpb24pO1xuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAnc29ydC1jb2x1bW5zJzogc29ydENvbHVtbnMuam9pbihDb2Rlcy5BUlJBWV9JTlBVVF9TRVBBUkFUT1IpXG4gICAgfTtcbiAgfVxufVxuXG5cbiJdfQ==
@@ -74,7 +74,7 @@ import { MatPaginatorModule, MatPaginator, MatPaginatorIntl } from '@angular/mat
74
74
  import * as i5$3 from '@angular/material/progress-spinner';
75
75
  import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
76
76
  import * as i7$4 from '@angular/material/radio';
77
- import { MatRadioModule } from '@angular/material/radio';
77
+ import { MatRadioModule, MatRadioGroup } from '@angular/material/radio';
78
78
  import * as i9$1 from '@angular/material/select';
79
79
  import { MatSelectModule, MatSelect } from '@angular/material/select';
80
80
  import * as i6$4 from '@angular/material/sidenav';
@@ -13091,9 +13091,17 @@ class OTableComponentStateService extends AbstractComponentStateService {
13091
13091
  return result;
13092
13092
  }
13093
13093
  getPageState() {
13094
- const result = {
13095
- 'query-rows': this.component.matpaginator ? this.component.matpaginator.pageSize : ''
13096
- };
13094
+ const result = {};
13095
+ if (this.component.matpaginator) {
13096
+ result['query-rows'] = this.component.matpaginator.pageSize;
13097
+ }
13098
+ else if (this.component.state.queryRows) {
13099
+ result['query-rows'] = this.component.state.queryRows;
13100
+ }
13101
+ else {
13102
+ result['query-rows'] = this.component.originalQueryRows;
13103
+ }
13104
+ ;
13097
13105
  if (this.component.currentPage > 0 && this.component.storePaginationState) {
13098
13106
  result.currentPage = this.component.currentPage;
13099
13107
  }
@@ -26014,12 +26022,30 @@ class ORadioComponent extends OFormServiceComponent {
26014
26022
  this.layout = 'column';
26015
26023
  this.labelPosition = 'after';
26016
26024
  this.labelGap = '8px';
26025
+ try {
26026
+ this.formLayoutManager = this.injector.get(OFormLayoutManagerComponent);
26027
+ }
26028
+ catch (e) {
26029
+ }
26017
26030
  }
26018
26031
  ngAfterViewInit() {
26019
26032
  super.ngAfterViewInit();
26020
26033
  if (this.queryOnInit) {
26021
26034
  this.queryData();
26022
26035
  }
26036
+ this.updateFormLayoutManagerState();
26037
+ }
26038
+ updateFormLayoutManagerState() {
26039
+ if (this.formLayoutManager && this.formLayoutManager.storeState && this.formLayoutManager.isTabMode() && this.formLayoutManager.oTabGroup) {
26040
+ if (!Util.isDefined(this.formLayoutManagerTabIndex)) {
26041
+ this.formLayoutManagerTabIndex = this.formLayoutManager.oTabGroup.data.length;
26042
+ }
26043
+ this.tabsSubscriptions = this.formLayoutManager.onSelectedTabChange.subscribe((arg) => {
26044
+ if (arg.index === this.formLayoutManagerTabIndex) {
26045
+ this.mrg.value = this.getValue();
26046
+ }
26047
+ });
26048
+ }
26023
26049
  }
26024
26050
  onMatRadioGroupChange(e) {
26025
26051
  const newValue = e.value;
@@ -26048,18 +26074,24 @@ class ORadioComponent extends OFormServiceComponent {
26048
26074
  }
26049
26075
  return '';
26050
26076
  }
26077
+ ngOnDestroy() {
26078
+ super.destroy();
26079
+ if (this.tabsSubscriptions) {
26080
+ this.tabsSubscriptions.unsubscribe();
26081
+ }
26082
+ }
26051
26083
  }
26052
26084
  ORadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ORadioComponent, deps: [{ token: forwardRef(() => OFormComponent), optional: true }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
26053
26085
  ORadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ORadioComponent, selector: "o-radio", inputs: { layout: "layout", labelPosition: ["label-position", "labelPosition"], labelGap: ["label-gap", "labelGap"] }, host: { properties: { "class.o-radio": "true" } }, providers: [
26054
26086
  OntimizeServiceProvider
26055
- ], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button *ngFor=\"let item of dataArray\" [value]=\"getValueColumn(item)\" [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i3$2.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: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "directive", type: i7$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: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7$4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i7$4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: OContextMenuDirective, selector: "[oContextMenu]", inputs: ["oContextMenu", "oContextMenuData"] }, { kind: "component", type: OContextMenuComponent, selector: "o-context-menu", outputs: ["onShow", "onClose"] }, { kind: "component", type: OContextMenuItemComponent, selector: "o-context-menu-item", outputs: ["execute"] }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
26087
+ ], viewQueries: [{ propertyName: "mrg", first: true, predicate: MatRadioGroup, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button [id]=\"'o-radio-button-'+i\" *ngFor=\"let item of dataArray;let i = index\" [value]=\"getValueColumn(item)\"\n [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i2.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i2.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i3$2.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: i3$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "directive", type: i7$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: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7$4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i7$4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: OContextMenuDirective, selector: "[oContextMenu]", inputs: ["oContextMenu", "oContextMenuData"] }, { kind: "component", type: OContextMenuComponent, selector: "o-context-menu", outputs: ["onShow", "onClose"] }, { kind: "component", type: OContextMenuItemComponent, selector: "o-context-menu-item", outputs: ["execute"] }, { kind: "pipe", type: OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
26056
26088
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ORadioComponent, decorators: [{
26057
26089
  type: Component,
26058
26090
  args: [{ selector: 'o-radio', inputs: DEFAULT_INPUTS_O_RADIO, providers: [
26059
26091
  OntimizeServiceProvider
26060
26092
  ], encapsulation: ViewEncapsulation.None, host: {
26061
26093
  '[class.o-radio]': 'true'
26062
- }, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button *ngFor=\"let item of dataArray\" [value]=\"getValueColumn(item)\" [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"] }]
26094
+ }, template: "<div [formGroup]=\"getFormGroup()\" [matTooltip]=\"tooltip\" [matTooltipClass]=\"tooltipClass\"\n [matTooltipPosition]=\"tooltipPosition\" [matTooltipShowDelay]=\"tooltipShowDelay\"\n [matTooltipHideDelay]=\"tooltipHideDelay\" class=\"relative\" [oContextMenu]=\"oContextMenu\">\n <!-- mat-form-field and hidden input are used only for displaying component label and errors as mat-radio is not supported inside form-field -->\n <!-- https://github.com/angular/material2/issues/7891 -->\n <mat-form-field [appearance]=\"appearance\" [hideRequiredMarker]=\"hideRequiredMarker\"\n [class.read-only]=\"isReadOnly\" [class.custom-width]=\"hasCustomWidth\" [class.o-radio-from-field-row]=\"layout==='row'\"\n floatLabel=\"always\" class=\"mat-form-field--no-underline\" fxFill [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <input matInput [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n [required]=\"isRequired\" style=\"display: none\" />\n <mat-radio-group [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [name]=\"getAttribute()\"\n [value]=\"getValue()\" [required]=\"isRequired\" [labelPosition]=\"labelPosition\"\n (change)=\"onMatRadioGroupChange($event)\" [fxLayout]=\"layout\" [fxLayoutGap]=\"labelGap\">\n <mat-radio-button [id]=\"'o-radio-button-'+i\" *ngFor=\"let item of dataArray;let i = index\" [value]=\"getValueColumn(item)\"\n [disabled]=\"!enabled\">\n {{ getOptionDescriptionValue(item) }}\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"isReadOnly\" (click)=\"$event.stopPropagation()\" class=\"read-only-blocker\" fxFill></div>\n\n <o-context-menu *ngIf=\"!this.isReadOnly && this.enabled\">\n <o-context-menu-item attr=\"refresh\" label=\"FORM_SERVICE_COMPONENT.REFRESH\" svg-icon=\"ontimize:autorenew\" (execute)=\"refresh()\">\n </o-context-menu-item>\n </o-context-menu>\n</div>\n", styles: [".o-radio .mdc-text-field--filled:not(.mdc-text-field--disabled) .mdc-line-ripple:before{border:none}.o-radio .mat-mdc-form-field:not(.custom-width).o-radio-from-field-row .mat-mdc-form-field-infix{width:auto}.o-radio .read-only-blocker{z-index:2;position:absolute;top:0;left:0;right:0}\n"] }]
26063
26095
  }], ctorParameters: function () {
26064
26096
  return [{ type: OFormComponent, decorators: [{
26065
26097
  type: Optional
@@ -26067,7 +26099,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
26067
26099
  type: Inject,
26068
26100
  args: [forwardRef(() => OFormComponent)]
26069
26101
  }] }, { type: i0.ElementRef }, { type: i0.Injector }];
26070
- } });
26102
+ }, propDecorators: { mrg: [{
26103
+ type: ViewChild,
26104
+ args: [MatRadioGroup]
26105
+ }] } });
26071
26106
 
26072
26107
  class ORadioModule {
26073
26108
  }