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.
- package/esm2020/lib/components/input/radio/o-radio.component.mjs +34 -5
- package/esm2020/lib/services/state/o-table-component-state.service.mjs +12 -4
- package/fesm2015/ontimize-web-ngx.mjs +42 -7
- package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
- package/fesm2020/ontimize-web-ngx.mjs +42 -7
- package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
- package/lib/components/input/radio/o-radio.component.d.ts +10 -3
- package/package.json +1 -1
|
@@ -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)\"
|
|
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)\"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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)\"
|
|
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)\"
|
|
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
|
}
|