master-control 0.4.99 → 0.5.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/esm2022/lib/age-date/age-date.component.mjs +7 -3
- package/esm2022/lib/amount-textbox/amount-textbox.component.mjs +7 -3
- package/esm2022/lib/annuity-calculator-radio/annuity-calculator-radio.component.mjs +8 -4
- package/esm2022/lib/autocomplete/autocomplete.component.mjs +5 -3
- package/esm2022/lib/button/button.component.mjs +7 -3
- package/esm2022/lib/checkbox/checkbox.component.mjs +7 -3
- package/esm2022/lib/dob/dob.component.mjs +7 -3
- package/esm2022/lib/email-with-domain/email-with-domain.component.mjs +7 -3
- package/esm2022/lib/field-name-attribute.util.mjs +11 -0
- package/esm2022/lib/info-textbox/info-textbox.component.mjs +7 -3
- package/esm2022/lib/master-control.component.mjs +8 -3
- package/esm2022/lib/medial-questions/medial-questions.component.mjs +3 -3
- package/esm2022/lib/mob-number/mob-number.component.mjs +5 -3
- package/esm2022/lib/multiple-select/multiple-select.component.mjs +5 -3
- package/esm2022/lib/otp-mob-number/otp-mob-number.component.mjs +7 -3
- package/esm2022/lib/otp-textbox/otp-textbox.component.mjs +7 -3
- package/esm2022/lib/radio/radio.component.mjs +5 -3
- package/esm2022/lib/search-multi-select/search-multi-select.component.mjs +5 -3
- package/esm2022/lib/select/select.component.mjs +7 -6
- package/esm2022/lib/select-textbox/select-textbox.component.mjs +7 -3
- package/esm2022/lib/subscript-textbox/subscript-textbox.component.mjs +7 -3
- package/esm2022/lib/suffix-textbox/suffix-textbox.component.mjs +7 -3
- package/esm2022/lib/tag-mob-number/tag-mob-number.component.mjs +7 -3
- package/esm2022/lib/textarea/textarea.component.mjs +7 -3
- package/esm2022/lib/textbox/textbox.component.mjs +5 -3
- package/esm2022/lib/textbox-with-image/textbox-with-image.component.mjs +7 -3
- package/esm2022/lib/textbox-with-text/textbox-with-text.component.mjs +7 -3
- package/esm2022/lib/textbox-with-underscore/textbox-with-underscore.component.mjs +7 -3
- package/esm2022/lib/toggle/toggle.component.mjs +7 -3
- package/esm2022/lib/toggle-button/toggle-button.component.mjs +7 -3
- package/esm2022/lib/upload/upload.component.mjs +7 -3
- package/fesm2022/master-control.mjs +146 -62
- package/fesm2022/master-control.mjs.map +1 -1
- package/lib/age-date/age-date.component.d.ts +1 -0
- package/lib/amount-textbox/amount-textbox.component.d.ts +1 -0
- package/lib/button/button.component.d.ts +3 -1
- package/lib/checkbox/checkbox.component.d.ts +1 -0
- package/lib/dob/dob.component.d.ts +1 -0
- package/lib/email-with-domain/email-with-domain.component.d.ts +1 -0
- package/lib/field-name-attribute.util.d.ts +1 -0
- package/lib/info-textbox/info-textbox.component.d.ts +1 -0
- package/lib/otp-mob-number/otp-mob-number.component.d.ts +1 -0
- package/lib/otp-textbox/otp-textbox.component.d.ts +1 -0
- package/lib/select/select.component.d.ts +1 -0
- package/lib/select-textbox/select-textbox.component.d.ts +1 -0
- package/lib/subscript-textbox/subscript-textbox.component.d.ts +1 -0
- package/lib/suffix-textbox/suffix-textbox.component.d.ts +1 -0
- package/lib/tag-mob-number/tag-mob-number.component.d.ts +1 -0
- package/lib/textarea/textarea.component.d.ts +1 -0
- package/lib/textbox-with-image/textbox-with-image.component.d.ts +1 -0
- package/lib/textbox-with-text/textbox-with-text.component.d.ts +1 -0
- package/lib/textbox-with-underscore/textbox-with-underscore.component.d.ts +1 -0
- package/lib/toggle/toggle.component.d.ts +1 -0
- package/lib/toggle-button/toggle-button.component.d.ts +3 -2
- package/lib/upload/upload.component.d.ts +1 -0
- package/master-control-0.5.02.tgz +0 -0
- package/package.json +1 -1
- package/master-control-0.4.99.tgz +0 -0
|
@@ -6,6 +6,7 @@ import { MAT_DATE_FORMATS } from '@angular/material/core';
|
|
|
6
6
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
7
7
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
8
8
|
import { MatInputModule } from '@angular/material/input';
|
|
9
|
+
import { initializeFieldNameAttribute } from '../field-name-attribute.util';
|
|
9
10
|
import * as i0 from "@angular/core";
|
|
10
11
|
import * as i1 from "../master-control.service";
|
|
11
12
|
import * as i2 from "@angular/material/input";
|
|
@@ -26,6 +27,9 @@ export class AgeDateComponent {
|
|
|
26
27
|
constructor(service) {
|
|
27
28
|
this.service = service;
|
|
28
29
|
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
initializeFieldNameAttribute(this.field());
|
|
32
|
+
}
|
|
29
33
|
ngAfterViewChecked() {
|
|
30
34
|
if (this.inputValue) {
|
|
31
35
|
this.calculateAge(this.inputValue);
|
|
@@ -194,7 +198,7 @@ export class AgeDateComponent {
|
|
|
194
198
|
useExisting: AgeDateComponent,
|
|
195
199
|
multi: true
|
|
196
200
|
},
|
|
197
|
-
], ngImport: i0, template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n<mat-form-field\n class=\"w-100\"\n appearance=\"outline\"\n *ngIf=\"field() && field()?.isVisible\"\n [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n <input\n matInput\n autocomplete=\"off\"\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n [matDatepicker]=\"picker\"\n (input)=\"dateDivisionFormat($event)\"\n [disabled]=\"field()?.isDisable\"\n [min]=\"field()?.configData?.min\"\n [max]=\"field()?.configData?.max\"\n (dateChange)=\"onInputChange($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"inputValue\"\n [formControl]=\"reactiveFormControlobject()\"\n />\n }@else{\n <input\n matInput\n autocomplete=\"off\"\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldName\"\n [id]=\"field()?.fieldName\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n [matDatepicker]=\"picker\"\n [min]=\"field()?.configData?.min\"\n [max]=\"field()?.configData?.max\"\n (input)=\"dateDivisionFormat($event)\"\n [disabled]=\"field()?.isDisable\"\n (dateChange)=\"onInputChange($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"inputValue\"\n />\n }\n <span matSuffix class=\"right-date-text\" *ngIf=\"!this.service.checkIfValueIsEmpty(age) && !this.service.checkIfValueIsEmpty(inputValue) && age >= 0\">\n ({{ age }}) yrs\n </span>\n <mat-datepicker-toggle matSuffix [for]=\"picker\" *ngIf=\"!field()?.isDisable\">\n <img\n src=\"https://cdn.godigit.com/digitPlusAssets/retail-life-icon/svgicon/date_picker_icon.svg\"\n style=\"width: 16px\"\n matDatepickerToggleIcon\n />\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}\n </mat-error>\n</mat-form-field>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}.\n</div>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.patternMessage }}.\n</div>\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0}.right-date-text{padding:4px 8px;border-radius:4px;font-weight:600;font-size:12px;color:#444;background:#f5f5f5;margin-right:8px;display:inline-flex;align-items:center;vertical-align:middle;height:20px;white-space:nowrap!important}::ng-deep .mat-mdc-form-field-icon-suffix{display:inline-flex!important;align-items:center!important;gap:0px!important}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important;font-size:12px!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.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: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "ngmodule", type: MomentDateModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
201
|
+
], ngImport: i0, template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n<mat-form-field\n class=\"w-100\"\n appearance=\"outline\"\n *ngIf=\"field() && field()?.isVisible\"\n [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n <input\n matInput\n autocomplete=\"off\"\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n [matDatepicker]=\"picker\"\n (input)=\"dateDivisionFormat($event)\"\n [disabled]=\"field()?.isDisable\"\n [min]=\"field()?.configData?.min\"\n [max]=\"field()?.configData?.max\"\n (dateChange)=\"onInputChange($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"inputValue\"\n [formControl]=\"reactiveFormControlobject()\"\n />\n }@else{\n <input\n matInput\n autocomplete=\"off\"\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n [matDatepicker]=\"picker\"\n [min]=\"field()?.configData?.min\"\n [max]=\"field()?.configData?.max\"\n (input)=\"dateDivisionFormat($event)\"\n [disabled]=\"field()?.isDisable\"\n (dateChange)=\"onInputChange($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"inputValue\"\n />\n }\n <span matSuffix class=\"right-date-text\" *ngIf=\"!this.service.checkIfValueIsEmpty(age) && !this.service.checkIfValueIsEmpty(inputValue) && age >= 0\">\n ({{ age }}) yrs\n </span>\n <mat-datepicker-toggle matSuffix [for]=\"picker\" *ngIf=\"!field()?.isDisable\">\n <img\n src=\"https://cdn.godigit.com/digitPlusAssets/retail-life-icon/svgicon/date_picker_icon.svg\"\n style=\"width: 16px\"\n matDatepickerToggleIcon\n />\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}\n </mat-error>\n</mat-form-field>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}.\n</div>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.patternMessage }}.\n</div>\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0}.right-date-text{padding:4px 8px;border-radius:4px;font-weight:600;font-size:12px;color:#444;background:#f5f5f5;margin-right:8px;display:inline-flex;align-items:center;vertical-align:middle;height:20px;white-space:nowrap!important}::ng-deep .mat-mdc-form-field-icon-suffix{display:inline-flex!important;align-items:center!important;gap:0px!important}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important;font-size:12px!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.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: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "ngmodule", type: MomentDateModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
198
202
|
}
|
|
199
203
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AgeDateComponent, decorators: [{
|
|
200
204
|
type: Component,
|
|
@@ -230,7 +234,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
230
234
|
useExisting: AgeDateComponent,
|
|
231
235
|
multi: true
|
|
232
236
|
},
|
|
233
|
-
], template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n<mat-form-field\n class=\"w-100\"\n appearance=\"outline\"\n *ngIf=\"field() && field()?.isVisible\"\n [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n <input\n matInput\n autocomplete=\"off\"\n [type]=\"field()?.controlType\"\n [name]=\"field()?.
|
|
237
|
+
], template: "<label *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\" class=\"field-lable\">{{field()?.label}}<span style=\"color: red;\" *ngIf=\"field() && field()?.validators?.isRequired\">*</span></label>\n<mat-form-field\n class=\"w-100\"\n appearance=\"outline\"\n *ngIf=\"field() && field()?.isVisible\"\n [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n <input\n matInput\n autocomplete=\"off\"\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n [matDatepicker]=\"picker\"\n (input)=\"dateDivisionFormat($event)\"\n [disabled]=\"field()?.isDisable\"\n [min]=\"field()?.configData?.min\"\n [max]=\"field()?.configData?.max\"\n (dateChange)=\"onInputChange($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"inputValue\"\n [formControl]=\"reactiveFormControlobject()\"\n />\n }@else{\n <input\n matInput\n autocomplete=\"off\"\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n [placeholder]=\"field()?.placeHolder\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n [matDatepicker]=\"picker\"\n [min]=\"field()?.configData?.min\"\n [max]=\"field()?.configData?.max\"\n (input)=\"dateDivisionFormat($event)\"\n [disabled]=\"field()?.isDisable\"\n (dateChange)=\"onInputChange($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"inputValue\"\n />\n }\n <span matSuffix class=\"right-date-text\" *ngIf=\"!this.service.checkIfValueIsEmpty(age) && !this.service.checkIfValueIsEmpty(inputValue) && age >= 0\">\n ({{ age }}) yrs\n </span>\n <mat-datepicker-toggle matSuffix [for]=\"picker\" *ngIf=\"!field()?.isDisable\">\n <img\n src=\"https://cdn.godigit.com/digitPlusAssets/retail-life-icon/svgicon/date_picker_icon.svg\"\n style=\"width: 16px\"\n matDatepickerToggleIcon\n />\n </mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}\n </mat-error>\n</mat-form-field>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.isRequiredMessage }}.\n</div>\n<div class=\"error-message\" *ngIf=\"false\">\n {{ field()?.validators?.patternMessage }}.\n</div>\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0}.right-date-text{padding:4px 8px;border-radius:4px;font-weight:600;font-size:12px;color:#444;background:#f5f5f5;margin-right:8px;display:inline-flex;align-items:center;vertical-align:middle;height:20px;white-space:nowrap!important}::ng-deep .mat-mdc-form-field-icon-suffix{display:inline-flex!important;align-items:center!important;gap:0px!important}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important;font-size:12px!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}*{font-family:mulish!important}\n"] }]
|
|
234
238
|
}], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { blur: [{
|
|
235
239
|
type: Output
|
|
236
240
|
}], valueChange: [{
|
|
@@ -240,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
240
244
|
}], invalidDate: [{
|
|
241
245
|
type: Output
|
|
242
246
|
}] } });
|
|
243
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hZ2UtZGF0ZS9hZ2UtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2FnZS1kYXRlL2FnZS1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0IsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBMkN6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBU1I7SUFSbkIsS0FBSyxHQUFRLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUNuQyxVQUFVLEdBQVEsSUFBSSxDQUFDO0lBQ3ZCLHlCQUF5QixHQUFTLEtBQUssRUFBTyxDQUFDO0lBQy9DLEdBQUcsR0FBUyxJQUFJLENBQUM7SUFDUCxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMvQixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN0QyxZQUFZLEdBQUcs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QixZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7cUJBQ3BCLGFBQ1UsQ0FBQyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUU7Z0NBQ25ELEtBQUssRUFBRTtvQ0FDTCxTQUFTLEVBQUU7d0NBQ1QsWUFBWTt3Q0FDWixZQUFZO3dDQUNaLFlBQVk7d0NBQ1osWUFBWTt3Q0FDWixhQUFhO3dDQUNiLGNBQWM7d0NBQ2QsYUFBYTtxQ0FDZDtpQ0FDRjtnQ0FDRCxPQUFPLEVBQUU7b0NBQ1AsU0FBUyxFQUFFLGFBQWE7b0NBQ3hCLGNBQWMsRUFBRSxVQUFVO29DQUMxQixhQUFhLEVBQUUsYUFBYTtvQ0FDNUIsa0JBQWtCLEVBQUUsV0FBVztpQ0FDaEM7NkJBQ0E7eUJBQ0E7d0JBQ0M7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxrQkFBa0I7NEJBQzdCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNKO3lGQVNXLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBBZnRlclZpZXdDaGVja2VkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNb21lbnREYXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwtbW9tZW50LWFkYXB0ZXInO1xuaW1wb3J0IHsgTUFUX0RBVEVfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hc3RlckNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vbWFzdGVyLWNvbnRyb2wuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hZ2UtZGF0ZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTW9tZW50RGF0ZU1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IHtcbiAgcGFyc2U6IHtcbiAgICBkYXRlSW5wdXQ6IFtcbiAgICAgICdERC1NTS1ZWVlZJyxcbiAgICAgICdERC9NTS9ZWVlZJyxcbiAgICAgICdZWVlZL01NL0REJyxcbiAgICAgICdNTS9ERC9ZWVlZJyxcbiAgICAgICdERCBNTU0gWVlZWScsXG4gICAgICAnREQgTU1NTSBZWVlZJyxcbiAgICAgICdERC1NTU0tWVlZWScsXG4gICAgXSxcbiAgfSxcbiAgZGlzcGxheToge1xuICAgIGRhdGVJbnB1dDogJ0REL01NTS9ZWVlZJyxcbiAgICBtb250aFllYXJMYWJlbDogJ01NTSBZWVlZJyxcbiAgICBkYXRlQTExeUxhYmVsOiAnREQvTU1NL1lZWVknLFxuICAgIG1vbnRoWWVhckExMXlMYWJlbDogJ01NTU0gWVlZWScsXG4gIH0sXG4gIH1cbiAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBBZ2VEYXRlQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FnZS1kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FnZS1kYXRlLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBBZ2VEYXRlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XG4gIGZpZWxkOiBhbnkgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XG4gIGlucHV0VmFsdWU6IGFueSA9IG51bGw7XG4gIHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QgOiBhbnkgPSBpbnB1dDxhbnk+KCk7XG4gIGFnZSA6IGFueSA9IG51bGw7XG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZGF0ZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBpbnZhbGlkRGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZSA6IE1hc3RlckNvbnRyb2xTZXJ2aWNlKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dFZhbHVlKSB7XG4gICAgICB0aGlzLmNhbGN1bGF0ZUFnZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGRhdGVEaXZpc2lvbkZvcm1hdChldmVudDogYW55KSB7XG4gICAgbGV0IGV2dCA9IGV2ZW50LnRhcmdldDtcblxuICAgIC8vIENoZWNrIGlmIHVzZXIgaXMgZGVsZXRpbmcgKGJhY2tzcGFjZS9kZWxldGUpXG4gICAgY29uc3QgaXNEZWxldGluZyA9IGV2ZW50LmlucHV0VHlwZSA9PT0gJ2RlbGV0ZUNvbnRlbnRCYWNrd2FyZCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuaW5wdXRUeXBlID09PSAnZGVsZXRlQ29udGVudEZvcndhcmQnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICFldmVudC5kYXRhO1xuXG4gICAgLy8gSWYgZGVsZXRpbmcsIGFsbG93IG5vcm1hbCBkZWxldGlvbiB3aXRob3V0IGF1dG8tYWRkaW5nIHNsYXNoZXNcbiAgICBpZiAoaXNEZWxldGluZykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZSA9IGV2dC52YWx1ZTtcblxuICAgIC8vIEhhbmRsZSBjYXNlIHdoZXJlIHdlIGhhdmUgZXhpc3Rpbmcgc2xhc2hlcyBidXQgbmVlZCB0byByZWZvcm1hdFxuICAgIC8vIFNwbGl0IGJ5IHNsYXNoIHRvIHVuZGVyc3RhbmQgY3VycmVudCBzdHJ1Y3R1cmVcbiAgICBjb25zdCBwYXJ0cyA9IHZhbHVlLnNwbGl0KCcvJyk7XG5cbiAgICAvLyBJZiB3ZSBoYXZlIGV4YWN0bHkgMyBwYXJ0cyAoZGF0ZS9tb250aC95ZWFyKSwgZG9uJ3QgYWRkIG1vcmUgc2xhc2hlc1xuICAgIGlmIChwYXJ0cy5sZW5ndGggPCAzKSB7XG4gICAgICAgLy8gRm9yIGZpcnN0IHNsYXNoIGFmdGVyIGRhdGUgKDIgZGlnaXRzKVxuICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyICYmICF2YWx1ZS5pbmNsdWRlcygnLycpKSB7XG4gICAgICBldnQudmFsdWUgPSBbdmFsdWUuc2xpY2UoMCwgMiksICcvJywgdmFsdWUuc2xpY2UoMildLmpvaW4oJycpO1xuICAgIH1cbiAgICAvLyBGb3Igc2Vjb25kIHNsYXNoIGFmdGVyIG1vbnRoXG4gICAgZWxzZSBpZiAocGFydHMubGVuZ3RoID09PSAyKSB7XG4gICAgICBjb25zdCBkYXRlUGFydCA9IHBhcnRzWzBdO1xuICAgICAgY29uc3QgbW9udGhQYXJ0ID0gcGFydHNbMV07XG5cblxuXG4gICAgICAvLyBBZGQgc2xhc2ggYWZ0ZXIgbnVtZXJpYyBtb250aCAoZXhhY3RseSAyIGRpZ2l0cykgb3IgYWxwaGFiZXRpYyBtb250aCAoZXhhY3RseSAzIGxldHRlcnMpXG4gICAgICBpZiAoKG1vbnRoUGFydC5sZW5ndGggPT09IDIgJiYgL15cXGR7Mn0kLy50ZXN0KG1vbnRoUGFydCkpIHx8XG4gICAgICAgICAgKG1vbnRoUGFydC5sZW5ndGggPT09IDMgJiYgL15bYS16QS1aXXszfSQvLnRlc3QobW9udGhQYXJ0KSkpIHtcbiAgICAgICAgZXZ0LnZhbHVlID0gZGF0ZVBhcnQgKyAnLycgKyBtb250aFBhcnQgKyAnLyc7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICB9XG4gICAgIGNvbnN0IGRhdGVQYXJ0ID0gcGFydHNbMF0gfHwgJyc7XG4gICAgICBjb25zdCBtb250aFBhcnQgPSBwYXJ0c1sxXSB8fCAnJztcbiAgICAgIGNvbnN0IHllYXJQYXJ0ID0gcGFydHNbMl0gfHwgJyc7XG5cbiAgICAgLy8gUHJldmVudCBmdXJ0aGVyIGlucHV0IGlmIGxpbWl0cyBhcmUgcmVhY2hlZCBhbmQgcmVzdG9yZSBwcmV2aW91cyB2YWx1ZVxuICAgICAgaWYgKChkYXRlUGFydC5sZW5ndGggPj0gMikgfHxcbiAgICAgICAgICAobW9udGhQYXJ0Lmxlbmd0aCA+PSAyICYmIC9eXFxkKyQvLnRlc3QobW9udGhQYXJ0KSkgfHxcbiAgICAgICAgICAobW9udGhQYXJ0Lmxlbmd0aCA+PSAzICYmIC9eW2EtekEtWl0rJC8udGVzdChtb250aFBhcnQpKSB8fFxuICAgICAgICAgICh5ZWFyUGFydC5sZW5ndGggPj0gNCkpIHtcblxuICAgICAgICAvLyBHZXQgY3Vyc29yIHBvc2l0aW9uIHRvIGRldGVybWluZSB3aGljaCBwYXJ0IGlzIGJlaW5nIGVkaXRlZFxuICAgICAgICBjb25zdCBjdXJzb3JQb3MgPSBldnQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgIGNvbnN0IGlzRWRpdGluZ0RhdGUgPSBjdXJzb3JQb3MgPD0gMztcbiAgICAgICAgY29uc3QgaXNFZGl0aW5nTW9udGggPSBjdXJzb3JQb3MgPiAzICYmIGN1cnNvclBvcyA8PSAoMyArIG1vbnRoUGFydC5sZW5ndGgpO1xuICAgICAgICBjb25zdCBpc0VkaXRpbmdZZWFyID0gY3Vyc29yUG9zID4gKDMgKyBtb250aFBhcnQubGVuZ3RoICsgMSk7XG5cbiAgICAgICAgLy8gUmVjb25zdHJ1Y3QgdGhlIHByZXZpb3VzIHZhbGlkIHZhbHVlIGJ5IHRyaW1taW5nIGV4Y2VzcyBjaGFyYWN0ZXJzXG4gICAgICAgIGxldCBwcmV2aW91c1ZhbGlkVmFsdWU9Jyc7XG4gICAgICAgIGlmIChpc0VkaXRpbmdEYXRlICYmIGRhdGVQYXJ0Lmxlbmd0aCA+PSAyKSB7XG4gICAgICAgICAgLy8gVHJpbSBkYXRlIHBhcnQgdG8gMiBjaGFyYWN0ZXJzIG1heFxuICAgICAgICAgIGNvbnN0IHZhbGlkRGF0ZVBhcnQgPSBkYXRlUGFydC5zdWJzdHJpbmcoMCwgMik7XG4gICAgICAgICAgcHJldmlvdXNWYWxpZFZhbHVlID0gdmFsaWREYXRlUGFydCArIChwYXJ0c1sxXSA/ICcvJyArIHBhcnRzWzFdIDogJycpICsgKHBhcnRzWzJdID8gJy8nICsgcGFydHNbMl0gOiAnJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNFZGl0aW5nTW9udGggJiYgbW9udGhQYXJ0Lmxlbmd0aCA+PSAyICYmIC9eXFxkKyQvLnRlc3QobW9udGhQYXJ0KSkge1xuICAgICAgICAgIC8vIFRyaW0gbnVtZXJpYyBtb250aCB0byAyIGNoYXJhY3RlcnMgbWF4XG4gICAgICAgICAgY29uc3QgdmFsaWRNb250aFBhcnQgPSBtb250aFBhcnQuc3Vic3RyaW5nKDAsIDIpO1xuICAgICAgICAgIHByZXZpb3VzVmFsaWRWYWx1ZSA9IHBhcnRzWzBdICsgJy8nICsgdmFsaWRNb250aFBhcnQgKyAocGFydHNbMl0gPyAnLycgKyBwYXJ0c1syXSA6ICcnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0VkaXRpbmdNb250aCAmJiBtb250aFBhcnQubGVuZ3RoID49IDMgKSB7XG4gICAgICAgICAgLy8gVHJpbSBhbHBoYWJldGljIG1vbnRoIHRvIDMgY2hhcmFjdGVycyBtYXhcbiAgICAgICAgICBjb25zdCB2YWxpZE1vbnRoUGFydCA9IG1vbnRoUGFydC5zdWJzdHJpbmcoMCwgMyk7XG4gICAgICAgICAgcHJldmlvdXNWYWxpZFZhbHVlID0gcGFydHNbMF0gKyAnLycgKyB2YWxpZE1vbnRoUGFydCArIChwYXJ0c1syXSA/ICcvJyArIHBhcnRzWzJdIDogJycpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRWRpdGluZ1llYXIgJiYgeWVhclBhcnQubGVuZ3RoID49IDQpIHtcbiAgICAgICAgICAvLyBUcmltIHllYXIgcGFydCB0byA0IGNoYXJhY3RlcnMgbWF4XG4gICAgICAgICAgY29uc3QgdmFsaWRZZWFyUGFydCA9IHllYXJQYXJ0LnN1YnN0cmluZygwLCA0KTtcbiAgICAgICAgICBwcmV2aW91c1ZhbGlkVmFsdWUgPSBwYXJ0c1swXSArICcvJyArIHBhcnRzWzFdICsgJy8nICsgdmFsaWRZZWFyUGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXZlbnQgaW5wdXQgaWYgdHJ5aW5nIHRvIGV4Y2VlZCBsaW1pdHMgYnkgcmVzdG9yaW5nIHByZXZpb3VzIHZhbHVlXG4gICAgICAgIGlmICgoaXNFZGl0aW5nRGF0ZSAmJiBkYXRlUGFydC5sZW5ndGggPj0gMikgfHxcbiAgICAgICAgICAgIChpc0VkaXRpbmdNb250aCAmJiBtb250aFBhcnQubGVuZ3RoID49IDIgJiYgL15cXGQrJC8udGVzdChtb250aFBhcnQpKSB8fFxuICAgICAgICAgICAgKGlzRWRpdGluZ01vbnRoICYmIG1vbnRoUGFydC5sZW5ndGggPj0gMyApIHx8XG4gICAgICAgICAgICAoaXNFZGl0aW5nWWVhciAmJiB5ZWFyUGFydC5sZW5ndGggPj0gNCkpIHtcblxuICAgICAgICAgIC8vIFJlc3RvcmUgdGhlIHByZXZpb3VzIHZhbGlkIHZhbHVlXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBldnQudmFsdWUgPSBwcmV2aW91c1ZhbGlkVmFsdWU7XG4gICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuXG4gIH1cbiAgIF9vbkNoYW5nZTogYW55ID0gKGlucHV0VmFsdWU6YW55KSA9PiB7fTtcbiAgX3VuVG91Y2hlZDogYW55ID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWR7XG4gICAgdGhpcy5pbnB1dFZhbHVlPW9iajtcbiAgfTtcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZHtcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xuICB9O1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZHtcbiAgICB0aGlzLl91blRvdWNoZWQgPSBmbjtcbiAgfTtcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWR7fTtcblxuICBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQudmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGV2ZW50LnZhbHVlO1xuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcbiAgICAgIHRoaXMuY2FsY3VsYXRlQWdlKGV2ZW50LnZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5pbnB1dFZhbHVlKTtcbiAgICB9XG4gICAgdGhpcy5kYXRlU2VsZWN0ZWQuZW1pdCh7XG4gICAgICAgIGZvcm1hdHRlZFZhbHVlOiB0aGlzLmlucHV0VmFsdWUsXG4gICAgICAgIGRhdGVPYmplY3Q6IHRoaXMuaW5wdXRWYWx1ZSxcbiAgICAgICAgaXNWYWxpZDogdHJ1ZSxcbiAgICAgICAgc291cmNlOiAnZGF0ZXBpY2tlcidcbiAgICAgIH0pO1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLmlucHV0VmFsdWUpO1xuICB9XG5cbiAgb25JbnB1dEJsdXIoZXZlbnQgOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZS5jaGVja0lmVmFsdWVJc0VtcHR5KGV2ZW50LnRhcmdldC52YWx1ZSkpIHtcbiAgICAgIGlmIChpc05hTihEYXRlLnBhcnNlKGV2ZW50LnRhcmdldC52YWx1ZSkpKSB7XG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVBZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fdW5Ub3VjaGVkKCk7XG4gICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgY2FsY3VsYXRlQWdlKGJpcnRoRGF0ZTogRGF0ZSkge1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBiaXJ0aGRhdGUgPSBuZXcgRGF0ZShiaXJ0aERhdGUpO1xuICAgIGxldCBhZ2UgPSB0b2RheS5nZXRGdWxsWWVhcigpIC0gYmlydGhkYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgbW9udGhEaWZmID0gdG9kYXkuZ2V0TW9udGgoKSAtIGJpcnRoZGF0ZS5nZXRNb250aCgpO1xuICAgIGNvbnN0IGRheXNfZGlmZmVyZW5jZSA9IHRvZGF5LmdldERhdGUoKSAtIGJpcnRoZGF0ZS5nZXREYXRlKCk7XG4gICAgaWYgKG1vbnRoRGlmZiA8IDAgfHwgKG1vbnRoRGlmZiA9PT0gMCAmJiBkYXlzX2RpZmZlcmVuY2UgPCAwKSkge1xuICAgICAgYWdlID0gYWdlIC0gMTtcbiAgICB9XG4gICAgdGhpcy5hZ2UgPSBhZ2U7XG4gIH1cblxuXG59XG4iLCI8bGFiZWwgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5pc1Nob3dMYWJlbFwiIGNsYXNzPVwiZmllbGQtbGFibGVcIj57e2ZpZWxkKCk/LmxhYmVsfX08c3BhbiBzdHlsZT1cImNvbG9yOiByZWQ7XCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWw+XG48bWF0LWZvcm0tZmllbGRcbiAgY2xhc3M9XCJ3LTEwMFwiXG4gIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcbiAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXG4gIFtuZ1N0eWxlXT1cIntcbictLWN1c3RvbS1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcbictLWN1c3RvbS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcbictLWN1c3RvbS1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJSYWRpdXMgLFxuJy0tY3VzdG9tLWJnLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5iYWNrZ3JvdW5kICxcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxuJy0tY3VzdG9tLWJvcmRlci13aWR0aC1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJXaWR0aCAsXG4nLS1jdXN0b20tYmctY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQmFja2dyb3VuZCAsXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlckNvbG9yICxcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyV2lkdGggLFxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJDb2xvciAsXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlcldpZHRoICxcbictLWN1c3RvbS1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplICxcbictLWN1c3RvbS1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCAsXG4nLS1jdXN0b20tZm9udC1mYW1pbHknOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRGYW1pbHkgLFxuJy0tY3VzdG9tLWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNvbG9yICxcbictLWN1c3RvbS1jYXJldC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY2FyZXRDb2xvciAsXG4nLS1jdXN0b20tZm9udC1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVDb2xvciAsXG4nLS1jdXN0b20tYmctY29sb3ItZGlzYWJsZWQnIDogZmllbGQoKT8uY29udHJvbFN0eWxlPy5kaXNhYmxlQmFja2dyb3VuZCAsXG59XCI+XG4gQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xuIDxpbnB1dFxuICAgIG1hdElucHV0XG4gICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICBbdHlwZV09XCJmaWVsZCgpPy5jb250cm9sVHlwZVwiXG4gICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxuICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcbiAgICBbcGF0dGVybl09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuXCJcbiAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIlxuICAgIChpbnB1dCk9XCJkYXRlRGl2aXNpb25Gb3JtYXQoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXG4gICAgW21pbl09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5taW5cIlxuICAgIFttYXhdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubWF4XCJcbiAgICAoZGF0ZUNoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxuICAgIFt2YWx1ZV09XCJpbnB1dFZhbHVlXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCJcbiAgLz5cbiB9QGVsc2V7XG4gICAgPGlucHV0XG4gICAgbWF0SW5wdXRcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcbiAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxuICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpPy5wbGFjZUhvbGRlclwiXG4gICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxuICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxuICAgIFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiXG4gICAgW21pbl09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5taW5cIlxuICAgIFttYXhdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubWF4XCJcbiAgICAoaW5wdXQpPVwiZGF0ZURpdmlzaW9uRm9ybWF0KCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxuICAgIChkYXRlQ2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImlucHV0VmFsdWVcIlxuICAvPlxuIH1cbiAgPHNwYW4gbWF0U3VmZml4IGNsYXNzPVwicmlnaHQtZGF0ZS10ZXh0XCIgKm5nSWY9XCIhdGhpcy5zZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkoYWdlKSAmJiAhdGhpcy5zZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkoaW5wdXRWYWx1ZSkgJiYgYWdlID49IDBcIj5cbiAgICAoe3sgYWdlIH19KSB5cnNcbiAgPC9zcGFuPlxuICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiICpuZ0lmPVwiIWZpZWxkKCk/LmlzRGlzYWJsZVwiPlxuICAgIDxpbWdcbiAgICAgIHNyYz1cImh0dHBzOi8vY2RuLmdvZGlnaXQuY29tL2RpZ2l0UGx1c0Fzc2V0cy9yZXRhaWwtbGlmZS1pY29uL3N2Z2ljb24vZGF0ZV9waWNrZXJfaWNvbi5zdmdcIlxuICAgICAgc3R5bGU9XCJ3aWR0aDogMTZweFwiXG4gICAgICBtYXREYXRlcGlja2VyVG9nZ2xlSWNvblxuICAgIC8+XG4gIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgPG1hdC1lcnJvciAqbmdJZj1cImZhbHNlXCI+XG4gICAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZE1lc3NhZ2UgfX1cbiAgPC9tYXQtZXJyb3I+XG48L21hdC1mb3JtLWZpZWxkPlxuPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZhbHNlXCI+XG4gIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRNZXNzYWdlIH19LlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmFsc2VcIj5cbiAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVybk1lc3NhZ2UgfX0uXG48L2Rpdj5cbiJdfQ==
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlLWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hZ2UtZGF0ZS9hZ2UtZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2FnZS1kYXRlL2FnZS1kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0IsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7O0FBMEM1RSxNQUFNLE9BQU8sZ0JBQWdCO0lBU1I7SUFSbkIsS0FBSyxHQUFRLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUNuQyxVQUFVLEdBQVEsSUFBSSxDQUFDO0lBQ3ZCLHlCQUF5QixHQUFTLEtBQUssRUFBTyxDQUFDO0lBQy9DLEdBQUcsR0FBUyxJQUFJLENBQUM7SUFDUCxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMvQixX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LGltQkFDbkIsZ0JBQWdCLDhCQUNoQixtQkFBbUI7OzRGQStCVixnQkFBZ0I7a0JBeEM1QixTQUFTOytCQUNFLGNBQWMsY0FDWixJQUFJLFdBQ1A7d0JBQ1AsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLG1CQUFtQjtxQkFDcEIsYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRTtnQ0FDbkQsS0FBSyxFQUFFO29DQUNMLFNBQVMsRUFBRTt3Q0FDVCxZQUFZO3dDQUNaLFlBQVk7d0NBQ1osWUFBWTt3Q0FDWixZQUFZO3dDQUNaLGFBQWE7d0NBQ2IsY0FBYzt3Q0FDZCxhQUFhO3FDQUNkO2lDQUNGO2dDQUNELE9BQU8sRUFBRTtvQ0FDUCxTQUFTLEVBQUUsYUFBYTtvQ0FDeEIsY0FBYyxFQUFFLFVBQVU7b0NBQzFCLGFBQWEsRUFBRSxhQUFhO29DQUM1QixrQkFBa0IsRUFBRSxXQUFXO2lDQUNoQzs2QkFDQTt5QkFDQTt3QkFDQzs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLGtCQUFrQjs0QkFDN0IsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0o7eUZBU1csSUFBSTtzQkFBYixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIEFmdGVyVmlld0NoZWNrZWQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1vbWVudERhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlcic7XG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IGluaXRpYWxpemVGaWVsZE5hbWVBdHRyaWJ1dGUgfSBmcm9tICcuLi9maWVsZC1uYW1lLWF0dHJpYnV0ZS51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFnZS1kYXRlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0RGF0ZXBpY2tlck1vZHVsZSxcbiAgICBNb21lbnREYXRlTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZToge1xuICBwYXJzZToge1xuICAgIGRhdGVJbnB1dDogW1xuICAgICAgJ0RELU1NLVlZWVknLFxuICAgICAgJ0REL01NL1lZWVknLFxuICAgICAgJ1lZWVkvTU0vREQnLFxuICAgICAgJ01NL0REL1lZWVknLFxuICAgICAgJ0REIE1NTSBZWVlZJyxcbiAgICAgICdERCBNTU1NIFlZWVknLFxuICAgICAgJ0RELU1NTS1ZWVlZJyxcbiAgICBdLFxuICB9LFxuICBkaXNwbGF5OiB7XG4gICAgZGF0ZUlucHV0OiAnREQvTU1NL1lZWVknLFxuICAgIG1vbnRoWWVhckxhYmVsOiAnTU1NIFlZWVknLFxuICAgIGRhdGVBMTF5TGFiZWw6ICdERC9NTU0vWVlZWScsXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcbiAgfSxcbiAgfVxuICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IEFnZURhdGVDb21wb25lbnQsXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG5dLFxuICB0ZW1wbGF0ZVVybDogJy4vYWdlLWRhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYWdlLWRhdGUuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIEFnZURhdGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcbiAgZmllbGQ6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbiAgaW5wdXRWYWx1ZTogYW55ID0gbnVsbDtcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcbiAgYWdlIDogYW55ID0gbnVsbDtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBkYXRlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGludmFsaWREYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBzZXJ2aWNlIDogTWFzdGVyQ29udHJvbFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaW5pdGlhbGl6ZUZpZWxkTmFtZUF0dHJpYnV0ZSh0aGlzLmZpZWxkKCkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlQWdlKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgZGF0ZURpdmlzaW9uRm9ybWF0KGV2ZW50OiBhbnkpIHtcbiAgICBsZXQgZXZ0ID0gZXZlbnQudGFyZ2V0O1xuXG4gICAgLy8gQ2hlY2sgaWYgdXNlciBpcyBkZWxldGluZyAoYmFja3NwYWNlL2RlbGV0ZSlcbiAgICBjb25zdCBpc0RlbGV0aW5nID0gZXZlbnQuaW5wdXRUeXBlID09PSAnZGVsZXRlQ29udGVudEJhY2t3YXJkJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICBldmVudC5pbnB1dFR5cGUgPT09ICdkZWxldGVDb250ZW50Rm9yd2FyZCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIWV2ZW50LmRhdGE7XG5cbiAgICAvLyBJZiBkZWxldGluZywgYWxsb3cgbm9ybWFsIGRlbGV0aW9uIHdpdGhvdXQgYXV0by1hZGRpbmcgc2xhc2hlc1xuICAgIGlmIChpc0RlbGV0aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlID0gZXZ0LnZhbHVlO1xuXG4gICAgLy8gSGFuZGxlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBleGlzdGluZyBzbGFzaGVzIGJ1dCBuZWVkIHRvIHJlZm9ybWF0XG4gICAgLy8gU3BsaXQgYnkgc2xhc2ggdG8gdW5kZXJzdGFuZCBjdXJyZW50IHN0cnVjdHVyZVxuICAgIGNvbnN0IHBhcnRzID0gdmFsdWUuc3BsaXQoJy8nKTtcblxuICAgIC8vIElmIHdlIGhhdmUgZXhhY3RseSAzIHBhcnRzIChkYXRlL21vbnRoL3llYXIpLCBkb24ndCBhZGQgbW9yZSBzbGFzaGVzXG4gICAgaWYgKHBhcnRzLmxlbmd0aCA8IDMpIHtcbiAgICAgICAvLyBGb3IgZmlyc3Qgc2xhc2ggYWZ0ZXIgZGF0ZSAoMiBkaWdpdHMpXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIgJiYgIXZhbHVlLmluY2x1ZGVzKCcvJykpIHtcbiAgICAgIGV2dC52YWx1ZSA9IFt2YWx1ZS5zbGljZSgwLCAyKSwgJy8nLCB2YWx1ZS5zbGljZSgyKV0uam9pbignJyk7XG4gICAgfVxuICAgIC8vIEZvciBzZWNvbmQgc2xhc2ggYWZ0ZXIgbW9udGhcbiAgICBlbHNlIGlmIChwYXJ0cy5sZW5ndGggPT09IDIpIHtcbiAgICAgIGNvbnN0IGRhdGVQYXJ0ID0gcGFydHNbMF07XG4gICAgICBjb25zdCBtb250aFBhcnQgPSBwYXJ0c1sxXTtcblxuXG5cbiAgICAgIC8vIEFkZCBzbGFzaCBhZnRlciBudW1lcmljIG1vbnRoIChleGFjdGx5IDIgZGlnaXRzKSBvciBhbHBoYWJldGljIG1vbnRoIChleGFjdGx5IDMgbGV0dGVycylcbiAgICAgIGlmICgobW9udGhQYXJ0Lmxlbmd0aCA9PT0gMiAmJiAvXlxcZHsyfSQvLnRlc3QobW9udGhQYXJ0KSkgfHxcbiAgICAgICAgICAobW9udGhQYXJ0Lmxlbmd0aCA9PT0gMyAmJiAvXlthLXpBLVpdezN9JC8udGVzdChtb250aFBhcnQpKSkge1xuICAgICAgICBldnQudmFsdWUgPSBkYXRlUGFydCArICcvJyArIG1vbnRoUGFydCArICcvJztcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIH1cbiAgICAgY29uc3QgZGF0ZVBhcnQgPSBwYXJ0c1swXSB8fCAnJztcbiAgICAgIGNvbnN0IG1vbnRoUGFydCA9IHBhcnRzWzFdIHx8ICcnO1xuICAgICAgY29uc3QgeWVhclBhcnQgPSBwYXJ0c1syXSB8fCAnJztcblxuICAgICAvLyBQcmV2ZW50IGZ1cnRoZXIgaW5wdXQgaWYgbGltaXRzIGFyZSByZWFjaGVkIGFuZCByZXN0b3JlIHByZXZpb3VzIHZhbHVlXG4gICAgICBpZiAoKGRhdGVQYXJ0Lmxlbmd0aCA+PSAyKSB8fFxuICAgICAgICAgIChtb250aFBhcnQubGVuZ3RoID49IDIgJiYgL15cXGQrJC8udGVzdChtb250aFBhcnQpKSB8fFxuICAgICAgICAgIChtb250aFBhcnQubGVuZ3RoID49IDMgJiYgL15bYS16QS1aXSskLy50ZXN0KG1vbnRoUGFydCkpIHx8XG4gICAgICAgICAgKHllYXJQYXJ0Lmxlbmd0aCA+PSA0KSkge1xuXG4gICAgICAgIC8vIEdldCBjdXJzb3IgcG9zaXRpb24gdG8gZGV0ZXJtaW5lIHdoaWNoIHBhcnQgaXMgYmVpbmcgZWRpdGVkXG4gICAgICAgIGNvbnN0IGN1cnNvclBvcyA9IGV2dC5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgY29uc3QgaXNFZGl0aW5nRGF0ZSA9IGN1cnNvclBvcyA8PSAzO1xuICAgICAgICBjb25zdCBpc0VkaXRpbmdNb250aCA9IGN1cnNvclBvcyA+IDMgJiYgY3Vyc29yUG9zIDw9ICgzICsgbW9udGhQYXJ0Lmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IGlzRWRpdGluZ1llYXIgPSBjdXJzb3JQb3MgPiAoMyArIG1vbnRoUGFydC5sZW5ndGggKyAxKTtcblxuICAgICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgcHJldmlvdXMgdmFsaWQgdmFsdWUgYnkgdHJpbW1pbmcgZXhjZXNzIGNoYXJhY3RlcnNcbiAgICAgICAgbGV0IHByZXZpb3VzVmFsaWRWYWx1ZT0nJztcbiAgICAgICAgaWYgKGlzRWRpdGluZ0RhdGUgJiYgZGF0ZVBhcnQubGVuZ3RoID49IDIpIHtcbiAgICAgICAgICAvLyBUcmltIGRhdGUgcGFydCB0byAyIGNoYXJhY3RlcnMgbWF4XG4gICAgICAgICAgY29uc3QgdmFsaWREYXRlUGFydCA9IGRhdGVQYXJ0LnN1YnN0cmluZygwLCAyKTtcbiAgICAgICAgICBwcmV2aW91c1ZhbGlkVmFsdWUgPSB2YWxpZERhdGVQYXJ0ICsgKHBhcnRzWzFdID8gJy8nICsgcGFydHNbMV0gOiAnJykgKyAocGFydHNbMl0gPyAnLycgKyBwYXJ0c1syXSA6ICcnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0VkaXRpbmdNb250aCAmJiBtb250aFBhcnQubGVuZ3RoID49IDIgJiYgL15cXGQrJC8udGVzdChtb250aFBhcnQpKSB7XG4gICAgICAgICAgLy8gVHJpbSBudW1lcmljIG1vbnRoIHRvIDIgY2hhcmFjdGVycyBtYXhcbiAgICAgICAgICBjb25zdCB2YWxpZE1vbnRoUGFydCA9IG1vbnRoUGFydC5zdWJzdHJpbmcoMCwgMik7XG4gICAgICAgICAgcHJldmlvdXNWYWxpZFZhbHVlID0gcGFydHNbMF0gKyAnLycgKyB2YWxpZE1vbnRoUGFydCArIChwYXJ0c1syXSA/ICcvJyArIHBhcnRzWzJdIDogJycpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRWRpdGluZ01vbnRoICYmIG1vbnRoUGFydC5sZW5ndGggPj0gMyApIHtcbiAgICAgICAgICAvLyBUcmltIGFscGhhYmV0aWMgbW9udGggdG8gMyBjaGFyYWN0ZXJzIG1heFxuICAgICAgICAgIGNvbnN0IHZhbGlkTW9udGhQYXJ0ID0gbW9udGhQYXJ0LnN1YnN0cmluZygwLCAzKTtcbiAgICAgICAgICBwcmV2aW91c1ZhbGlkVmFsdWUgPSBwYXJ0c1swXSArICcvJyArIHZhbGlkTW9udGhQYXJ0ICsgKHBhcnRzWzJdID8gJy8nICsgcGFydHNbMl0gOiAnJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNFZGl0aW5nWWVhciAmJiB5ZWFyUGFydC5sZW5ndGggPj0gNCkge1xuICAgICAgICAgIC8vIFRyaW0geWVhciBwYXJ0IHRvIDQgY2hhcmFjdGVycyBtYXhcbiAgICAgICAgICBjb25zdCB2YWxpZFllYXJQYXJ0ID0geWVhclBhcnQuc3Vic3RyaW5nKDAsIDQpO1xuICAgICAgICAgIHByZXZpb3VzVmFsaWRWYWx1ZSA9IHBhcnRzWzBdICsgJy8nICsgcGFydHNbMV0gKyAnLycgKyB2YWxpZFllYXJQYXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJldmVudCBpbnB1dCBpZiB0cnlpbmcgdG8gZXhjZWVkIGxpbWl0cyBieSByZXN0b3JpbmcgcHJldmlvdXMgdmFsdWVcbiAgICAgICAgaWYgKChpc0VkaXRpbmdEYXRlICYmIGRhdGVQYXJ0Lmxlbmd0aCA+PSAyKSB8fFxuICAgICAgICAgICAgKGlzRWRpdGluZ01vbnRoICYmIG1vbnRoUGFydC5sZW5ndGggPj0gMiAmJiAvXlxcZCskLy50ZXN0KG1vbnRoUGFydCkpIHx8XG4gICAgICAgICAgICAoaXNFZGl0aW5nTW9udGggJiYgbW9udGhQYXJ0Lmxlbmd0aCA+PSAzICkgfHxcbiAgICAgICAgICAgIChpc0VkaXRpbmdZZWFyICYmIHllYXJQYXJ0Lmxlbmd0aCA+PSA0KSkge1xuXG4gICAgICAgICAgLy8gUmVzdG9yZSB0aGUgcHJldmlvdXMgdmFsaWQgdmFsdWVcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGV2dC52YWx1ZSA9IHByZXZpb3VzVmFsaWRWYWx1ZTtcbiAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG5cbiAgfVxuICAgX29uQ2hhbmdlOiBhbnkgPSAoaW5wdXRWYWx1ZTphbnkpID0+IHt9O1xuICBfdW5Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZHtcbiAgICB0aGlzLmlucHV0VmFsdWU9b2JqO1xuICB9O1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lke1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH07XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lke1xuICAgIHRoaXMuX3VuVG91Y2hlZCA9IGZuO1xuICB9O1xuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZHt9O1xuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudC52YWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gZXZlbnQudmFsdWU7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgdGhpcy5jYWxjdWxhdGVBZ2UoZXZlbnQudmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmRhdGVTZWxlY3RlZC5lbWl0KHtcbiAgICAgICAgZm9ybWF0dGVkVmFsdWU6IHRoaXMuaW5wdXRWYWx1ZSxcbiAgICAgICAgZGF0ZU9iamVjdDogdGhpcy5pbnB1dFZhbHVlLFxuICAgICAgICBpc1ZhbGlkOiB0cnVlLFxuICAgICAgICBzb3VyY2U6ICdkYXRlcGlja2VyJ1xuICAgICAgfSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuaW5wdXRWYWx1ZSk7XG4gIH1cblxuICBvbklucHV0Qmx1cihldmVudCA6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZXJ2aWNlLmNoZWNrSWZWYWx1ZUlzRW1wdHkoZXZlbnQudGFyZ2V0LnZhbHVlKSkge1xuICAgICAgaWYgKGlzTmFOKERhdGUucGFyc2UoZXZlbnQudGFyZ2V0LnZhbHVlKSkpIHtcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNhbGN1bGF0ZUFnZShldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl91blRvdWNoZWQoKTtcbiAgICB0aGlzLmJsdXIuZW1pdChldmVudCk7XG4gIH1cblxuICBjYWxjdWxhdGVBZ2UoYmlydGhEYXRlOiBEYXRlKSB7XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGJpcnRoZGF0ZSA9IG5ldyBEYXRlKGJpcnRoRGF0ZSk7XG4gICAgbGV0IGFnZSA9IHRvZGF5LmdldEZ1bGxZZWFyKCkgLSBiaXJ0aGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBtb250aERpZmYgPSB0b2RheS5nZXRNb250aCgpIC0gYmlydGhkYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgZGF5c19kaWZmZXJlbmNlID0gdG9kYXkuZ2V0RGF0ZSgpIC0gYmlydGhkYXRlLmdldERhdGUoKTtcbiAgICBpZiAobW9udGhEaWZmIDwgMCB8fCAobW9udGhEaWZmID09PSAwICYmIGRheXNfZGlmZmVyZW5jZSA8IDApKSB7XG4gICAgICBhZ2UgPSBhZ2UgLSAxO1xuICAgIH1cbiAgICB0aGlzLmFnZSA9IGFnZTtcbiAgfVxuXG5cbn1cbiIsIjxsYWJlbCAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCk/LmlzU2hvd0xhYmVsXCIgY2xhc3M9XCJmaWVsZC1sYWJsZVwiPnt7ZmllbGQoKT8ubGFiZWx9fTxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cbjxtYXQtZm9ybS1maWVsZFxuICBjbGFzcz1cInctMTAwXCJcbiAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlXCJcbiAgW25nU3R5bGVdPVwie1xuJy0tY3VzdG9tLWJvcmRlci1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyQ29sb3IgLFxuJy0tY3VzdG9tLWJvcmRlci13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyV2lkdGggLFxuJy0tY3VzdG9tLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlclJhZGl1cyAsXG4nLS1jdXN0b20tYmctY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJhY2tncm91bmQgLFxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJDb2xvciAsXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlcldpZHRoICxcbictLWN1c3RvbS1iZy1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCYWNrZ3JvdW5kICxcbictLWN1c3RvbS1ib3JkZXItY29sb3ItaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyQ29sb3IgLFxuJy0tY3VzdG9tLWJvcmRlci13aWR0aC1ob3Zlcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaG92ZXJCb3JkZXJXaWR0aCAsXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlckNvbG9yICxcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyV2lkdGggLFxuJy0tY3VzdG9tLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxuJy0tY3VzdG9tLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250V2VpZ2h0ICxcbictLWN1c3RvbS1mb250LWZhbWlseSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udEZhbWlseSAsXG4nLS1jdXN0b20tZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxuJy0tY3VzdG9tLWNhcmV0LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jYXJldENvbG9yICxcbictLWN1c3RvbS1mb250LWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUNvbG9yICxcbictLWN1c3RvbS1iZy1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVCYWNrZ3JvdW5kICxcbn1cIj5cbiBAaWYocmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpKSB7XG4gPGlucHV0XG4gICAgbWF0SW5wdXRcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcbiAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVBdHRyaWJ1dGVcIlxuICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpPy5wbGFjZUhvbGRlclwiXG4gICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxuICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxuICAgIFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiXG4gICAgKGlucHV0KT1cImRhdGVEaXZpc2lvbkZvcm1hdCgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcbiAgICBbbWluXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm1pblwiXG4gICAgW21heF09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5tYXhcIlxuICAgIChkYXRlQ2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgW3ZhbHVlXT1cImlucHV0VmFsdWVcIlxuICAgIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIlxuICAvPlxuIH1AZWxzZXtcbiAgICA8aW5wdXRcbiAgICBtYXRJbnB1dFxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxuICAgIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZUF0dHJpYnV0ZVwiXG4gICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcbiAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXG4gICAgW3BhdHRlcm5dPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVyblwiXG4gICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICBbbWluXT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/Lm1pblwiXG4gICAgW21heF09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5tYXhcIlxuICAgIChpbnB1dCk9XCJkYXRlRGl2aXNpb25Gb3JtYXQoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXG4gICAgKGRhdGVDaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXG4gIC8+XG4gfVxuICA8c3BhbiBtYXRTdWZmaXggY2xhc3M9XCJyaWdodC1kYXRlLXRleHRcIiAqbmdJZj1cIiF0aGlzLnNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eShhZ2UpICYmICF0aGlzLnNlcnZpY2UuY2hlY2tJZlZhbHVlSXNFbXB0eShpbnB1dFZhbHVlKSAmJiBhZ2UgPj0gMFwiPlxuICAgICh7eyBhZ2UgfX0pIHlyc1xuICA8L3NwYW4+XG4gIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCIgKm5nSWY9XCIhZmllbGQoKT8uaXNEaXNhYmxlXCI+XG4gICAgPGltZ1xuICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vZGlnaXRQbHVzQXNzZXRzL3JldGFpbC1saWZlLWljb24vc3ZnaWNvbi9kYXRlX3BpY2tlcl9pY29uLnN2Z1wiXG4gICAgICBzdHlsZT1cIndpZHRoOiAxNnB4XCJcbiAgICAgIG1hdERhdGVwaWNrZXJUb2dnbGVJY29uXG4gICAgLz5cbiAgPC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cbiAgICB7eyBmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkTWVzc2FnZSB9fVxuICA8L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+XG48ZGl2IGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmFsc2VcIj5cbiAge3sgZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZE1lc3NhZ2UgfX0uXG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmYWxzZVwiPlxuICB7eyBmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuTWVzc2FnZSB9fS5cbjwvZGl2PlxuIl19
|
|
@@ -3,6 +3,7 @@ import { Component, input, Output, EventEmitter } from '@angular/core';
|
|
|
3
3
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
4
4
|
import { MatInputModule } from '@angular/material/input';
|
|
5
5
|
import { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import { initializeFieldNameAttribute } from '../field-name-attribute.util';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "../master-control.service";
|
|
8
9
|
import * as i2 from "@angular/material/form-field";
|
|
@@ -25,6 +26,9 @@ export class AmountTextboxComponent {
|
|
|
25
26
|
}
|
|
26
27
|
// Declare Output event emitter here (class level)
|
|
27
28
|
blur = new EventEmitter();
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
initializeFieldNameAttribute(this.field());
|
|
31
|
+
}
|
|
28
32
|
// ControlValueAccessor implementation
|
|
29
33
|
writeValue(obj) {
|
|
30
34
|
if (obj !== null && obj !== undefined) {
|
|
@@ -204,7 +208,7 @@ export class AmountTextboxComponent {
|
|
|
204
208
|
useExisting: AmountTextboxComponent,
|
|
205
209
|
multi: true
|
|
206
210
|
}
|
|
207
|
-
], ngImport: i0, template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\n >{{ field().label\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\n >*</span\n ></label\n>\n <mat-form-field\n class=\"w-100\"\n appearance=\"outline\"\n *ngIf=\"field() && field()?.isVisible\"\n [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n<input\n matInput\n [type]=\"field()?.controlType\"\n [name]=\"field()?.
|
|
211
|
+
], ngImport: i0, template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\n >{{ field().label\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\n >*</span\n ></label\n>\n <mat-form-field\n class=\"w-100\"\n appearance=\"outline\"\n *ngIf=\"field() && field()?.isVisible\"\n [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n<input\n matInput\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n autocomplete=\"off\"\n [placeholder]=\"field()?.placeHolder\"\n [maxLength]=\"field()?.validators?.maxLength\"\n [minLength]=\"field()?.validators?.minLength\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"getDisplayValue()\"\n [formControl]=\"reactiveFormControlobject()\"\n />\n }@else {\n <input\n matInput\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n autocomplete=\"off\"\n [placeholder]=\"field()?.placeHolder\"\n [maxLength]=\"field()?.validators?.maxLength\"\n [minLength]=\"field()?.validators?.minLength\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"getDisplayValue()\"\n />\n }\n\n <mat-error *ngIf=\"false\">\n {{ field()?.validators?.requiredMessage }}\n </mat-error>\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\n <span matSuffix class=\"me-2 right-amount-text\" *ngIf=\"inputValue\">{{ getFormattedAmount() }}</span>\n </mat-form-field>\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.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: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
208
212
|
}
|
|
209
213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AmountTextboxComponent, decorators: [{
|
|
210
214
|
type: Component,
|
|
@@ -219,8 +223,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
219
223
|
useExisting: AmountTextboxComponent,
|
|
220
224
|
multi: true
|
|
221
225
|
}
|
|
222
|
-
], template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\n >{{ field().label\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\n >*</span\n ></label\n>\n <mat-form-field\n class=\"w-100\"\n appearance=\"outline\"\n *ngIf=\"field() && field()?.isVisible\"\n [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n<input\n matInput\n [type]=\"field()?.controlType\"\n [name]=\"field()?.
|
|
226
|
+
], template: "<label class=\"field-lable\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\"\n >{{ field().label\n }}<span style=\"color: red\" *ngIf=\"field() && field()?.validators.isRequired\"\n >*</span\n ></label\n>\n <mat-form-field\n class=\"w-100\"\n appearance=\"outline\"\n *ngIf=\"field() && field()?.isVisible\"\n [ngStyle]=\"{\n'--custom-border-color': field()?.controlStyle?.borderColor ,\n'--custom-border-width': field()?.controlStyle?.borderWidth ,\n'--custom-border-radius': field()?.controlStyle?.borderRadius ,\n'--custom-bg-color': field()?.controlStyle?.background ,\n'--custom-border-color-focus': field()?.controlStyle?.focusBorderColor ,\n'--custom-border-width-focus': field()?.controlStyle?.focusBorderWidth ,\n'--custom-bg-color-focus': field()?.controlStyle?.focusBackground ,\n'--custom-border-color-hover': field()?.controlStyle?.hoverBorderColor ,\n'--custom-border-width-hover': field()?.controlStyle?.hoverBorderWidth ,\n'--custom-border-color-error': field()?.controlStyle?.errorBorderColor ,\n'--custom-border-width-error': field()?.controlStyle?.errorBorderWidth ,\n'--custom-font-size': field()?.controlStyle?.fontSize ,\n'--custom-font-weight': field()?.controlStyle?.fontWeight ,\n'--custom-font-family': field()?.controlStyle?.fontFamily ,\n'--custom-font-color': field()?.controlStyle?.color ,\n'--custom-caret-color': field()?.controlStyle?.caretColor ,\n'--custom-font-color-disabled' : field()?.controlStyle?.disableColor ,\n'--custom-bg-color-disabled' : field()?.controlStyle?.disableBackground ,\n}\">\n @if(reactiveFormControlobject()) {\n<input\n matInput\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n autocomplete=\"off\"\n [placeholder]=\"field()?.placeHolder\"\n [maxLength]=\"field()?.validators?.maxLength\"\n [minLength]=\"field()?.validators?.minLength\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"getDisplayValue()\"\n [formControl]=\"reactiveFormControlobject()\"\n />\n }@else {\n <input\n matInput\n [type]=\"field()?.controlType\"\n [name]=\"field()?.fieldNameAttribute\"\n [id]=\"field()?.fieldName\"\n autocomplete=\"off\"\n [placeholder]=\"field()?.placeHolder\"\n [maxLength]=\"field()?.validators?.maxLength\"\n [minLength]=\"field()?.validators?.minLength\"\n [disabled]=\"field()?.isDisable\"\n [required]=\"field()?.validators?.isRequired\"\n [pattern]=\"field()?.validators?.pattern\"\n (input)=\"onInputChange($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onInputBlur($event)\"\n [value]=\"getDisplayValue()\"\n />\n }\n\n <mat-error *ngIf=\"false\">\n {{ field()?.validators?.requiredMessage }}\n </mat-error>\n <span matPrefix class=\"rupee-symbol px-2\">\u20B9</span>\n <span matSuffix class=\"me-2 right-amount-text\" *ngIf=\"inputValue\">{{ getFormattedAmount() }}</span>\n </mat-form-field>\n", styles: [".field-lable{font-size:12px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}*{font-family:mulish!important}.right-amount-text{font-weight:600;font-size:10px;color:#444;background:#f5f5f5;border-radius:2px;padding:5.5px 6px 4px}.error-message{color:red}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--focused .mat-mdc-notch-piece{border-color:var(--custom-border-color-focus, #ffbb00)!important;border-width:var(--custom-border-width-focus, 1.5px)!important}::ng-deep .mat-mdc-form-field{background-color:var(--custom-bg-color, #ffffff)!important;border-radius:var(--custom-border-radius , 4px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__leading{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__notch{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled):not(.mdc-text-field--focused):hover .mdc-notched-outline .mdc-notched-outline__trailing{border-color:var(--custom-border-color-hover, #ffbb00)!important;border-width:var(--custom-border-width-hover, 1.5px)!important}::ng-deep .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color, #dddddd)!important;border-width:var(--custom-border-width, 1.5px)!important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input{caret-color:var(--custom-caret-color, #ffbb00)!important;font-size:.75rem!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important;color:var(--custom-font-color, #444444)!important}::ng-deep .mat-form-field-invalid .mdc-text-field--outlined .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field.mat-form-field-disabled{background:var(--custom-bg-color-disabled, #ECECEC)!important}::ng-deep .mdc-text-field--outlined.mdc-text-field--disabled .mdc-text-field__input{color:var(--custom-font-color-disabled, #999999)!important}::ng-deep .mdc-label{color:var(--custom-font-color, #444)!important;font-size:var(--custom-font-size, 16px)!important;font-weight:var(--custom-font-weight, 400)!important;font-family:var(--custom-font-family, \"Mulish\")!important}::placeholder{color:#8f8f8f!important;font-size:12px!important}::ng-deep .mat-mdc-form-field-hint-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error-wrapper{padding:0!important}::ng-deep .mat-mdc-form-field-error{color:#e00!important;font-size:12px;font-weight:500;font-family:Mulish!important;letter-spacing:0}::ng-deep .mdc-text-field--outlined{--mdc-outlined-text-field-container-shape: var(--custom-border-radius , 4px) !important}::ng-deep .mdc-text-field--outlined:not(.mdc-text-field--disabled).mdc-text-field--invalid .mat-mdc-notch-piece{border-color:var(--custom-border-color-error, red)!important;border-width:var(--custom-border-width-error, 1.5px)!important}::ng-deep .mat-mdc-form-field-subscript-wrapper{display:none!important}.rupee-symbol{color:#444;font-size:12px;font-weight:400}\n"] }]
|
|
223
227
|
}], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { blur: [{
|
|
224
228
|
type: Output
|
|
225
229
|
}] } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1vdW50LXRleHRib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hbW91bnQtdGV4dGJveC9hbW91bnQtdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2Ftb3VudC10ZXh0Ym94L2Ftb3VudC10ZXh0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFzQjlGLE1BQU0sT0FBTyxzQkFBc0I7SUFDZDtJQUFuQixZQUFtQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFBRSxDQUFDO0lBQzFELEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMsVUFBVSxHQUFRLElBQUksQ0FBQztJQUN2Qix5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUMvQyxTQUFTLEdBQVEsQ0FBQyxVQUFjLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN4QyxVQUFVLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzNCLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxjQUFjLEtBQUss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RUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxzQkFBc0I7Z0JBQ25DLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkN4QkwsaXBHQTJFQSwwZ0hEaEVJLGtCQUFrQix3a0JBQ2xCLFlBQVksdU5BQ1osY0FBYywwV0FDZCxtQkFBbUI7OzRGQVlWLHNCQUFzQjtrQkFuQmxDLFNBQVM7K0JBQ0Usb0JBQW9CLGNBQ2xCLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7cUJBQ3BCLGFBR1U7d0JBQ1A7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx3QkFBd0I7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3lGQWVPLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hc3RlckNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vbWFzdGVyLWNvbnRyb2wuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hbW91bnQtdGV4dGJveCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ftb3VudC10ZXh0Ym94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Ftb3VudC10ZXh0Ym94LmNvbXBvbmVudC5jc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgIHVzZUV4aXN0aW5nOiBBbW91bnRUZXh0Ym94Q29tcG9uZW50LFxuICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQW1vdW50VGV4dGJveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IocHVibGljIHNoYXJlZFNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSl7fVxuICBmaWVsZCA6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcbiAgaW5wdXRWYWx1ZTogYW55ID0gbnVsbDtcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcbiAgX29uQ2hhbmdlOiBhbnkgPSAoaW5wdXRWYWx1ZTphbnkpID0+IHt9O1xuICBfdW5Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcbiAgZ2V0IGlzQ29tbWFBZGRlZCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkKCk/LmNvbmZpZ0RhdGE/LmlzQ29tbWFBbGxvd2VkICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5maWVsZCgpPy5jb25maWdEYXRhPy5pc0NvbW1hQWxsb3dlZCA6IHRydWU7XG4gIH1cblxuICAgLy8gRGVjbGFyZSBPdXRwdXQgZXZlbnQgZW1pdHRlciBoZXJlIChjbGFzcyBsZXZlbClcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgaWYgKG9iaiAhPT0gbnVsbCAmJiBvYmogIT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgcmF3VmFsdWUgPSBvYmoudG9TdHJpbmcoKTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHJhd1ZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSBudWxsO1xuICAgIH1cbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lke1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH07XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lke1xuICAgIHRoaXMuX3VuVG91Y2hlZCA9IGZuO1xuICB9O1xuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZHt9O1xuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IGlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydDtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IGlucHV0RWxlbWVudC52YWx1ZTtcbiAgICBjb25zdCByYXdWYWx1ZSA9IG9sZFZhbHVlLnJlcGxhY2UoLywvZywgJycpO1xuICAgIGlmIChyYXdWYWx1ZSA9PT0gJycgfHwgL15cXGQqXFwuP1xcZCokLy50ZXN0KHJhd1ZhbHVlKSkge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gcmF3VmFsdWU7XG4gICAgICBpZiAodGhpcy5pc0NvbW1hQWRkZWQgJiYgcmF3VmFsdWUgJiYgIWlzTmFOKHBhcnNlRmxvYXQocmF3VmFsdWUpKSkge1xuICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuc2hhcmVkU2VydmljZS5hZGRDb21hc1RvTnVtYmVyVmFsdWVzKHJhd1ZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV3Q3Vyc29yUG9zaXRpb24gPSB0aGlzLmNhbGN1bGF0ZU5ld0N1cnNvclBvc2l0aW9uKFxuICAgICAgICAgIG9sZFZhbHVlLFxuICAgICAgICAgIGZvcm1hdHRlZFZhbHVlLFxuICAgICAgICAgIGN1cnNvclBvc2l0aW9uXG4gICAgICAgICk7XG4gICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBpbnB1dEVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UobmV3Q3Vyc29yUG9zaXRpb24sIG5ld0N1cnNvclBvc2l0aW9uKTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXZlcnRWYWx1ZSA9IHRoaXMuaXNDb21tYUFkZGVkICYmIHRoaXMuaW5wdXRWYWx1ZSA/XG4gICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5hZGRDb21hc1RvTnVtYmVyVmFsdWVzKHRoaXMuaW5wdXRWYWx1ZSkgOiB0aGlzLmlucHV0VmFsdWUgfHwgJyc7XG4gICAgICBpbnB1dEVsZW1lbnQudmFsdWUgPSByZXZlcnRWYWx1ZTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBzYWZlQ3Vyc29yUG9zID0gTWF0aC5taW4oY3Vyc29yUG9zaXRpb24sIHJldmVydFZhbHVlLmxlbmd0aCk7XG4gICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShzYWZlQ3Vyc29yUG9zLCBzYWZlQ3Vyc29yUG9zKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXRCbHVyKGV2ZW50PzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fdW5Ub3VjaGVkKCk7XG4gICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgfVxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IGlucHV0RWxlbWVudC5zZWxlY3Rpb25TdGFydCB8fCAwO1xuICAgIGNvbnN0IHZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnICYmIGN1cnNvclBvc2l0aW9uID4gMCkge1xuICAgICAgaWYgKHZhbHVlW2N1cnNvclBvc2l0aW9uIC0gMV0gPT09ICcsJykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBjdXJzb3JQb3NpdGlvbiAtIDIpICsgdmFsdWUuc3Vic3RyaW5nKGN1cnNvclBvc2l0aW9uKTtcbiAgICAgICAgY29uc3QgcmF3VmFsdWUgPSBuZXdWYWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgaWYgKHJhd1ZhbHVlID09PSAnJyB8fCAvXlxcZCpcXC4/XFxkKiQvLnRlc3QocmF3VmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gcmF3VmFsdWU7XG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmlzQ29tbWFBZGRlZCAmJiByYXdWYWx1ZSA/IHRoaXMuc2hhcmVkU2VydmljZS5hZGRDb21hc1RvTnVtYmVyVmFsdWVzKHJhd1ZhbHVlKSA6IHJhd1ZhbHVlO1xuICAgICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3Q3Vyc29yUG9zID0gTWF0aC5tYXgoMCwgY3Vyc29yUG9zaXRpb24gLSAyKTtcbiAgICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShuZXdDdXJzb3JQb3MsIG5ld0N1cnNvclBvcyk7XG4gICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChldmVudC5rZXkgPT09ICdEZWxldGUnICYmIGN1cnNvclBvc2l0aW9uIDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICBpZiAodmFsdWVbY3Vyc29yUG9zaXRpb25dID09PSAnLCcpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKGN1cnNvclBvc2l0aW9uICsgMSA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclBvc2l0aW9uKSArIHZhbHVlLnN1YnN0cmluZyhjdXJzb3JQb3NpdGlvbiArIDIpO1xuICAgICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gbmV3VmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgICAgICAgaWYgKHJhd1ZhbHVlID09PSAnJyB8fCAvXlxcZCpcXC4/XFxkKiQvLnRlc3QocmF3VmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgcmF3VmFsdWUgPyB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyhyYXdWYWx1ZSkgOiByYXdWYWx1ZTtcbiAgICAgICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdHRlZFZhbHVlO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShjdXJzb3JQb3NpdGlvbiwgY3Vyc29yUG9zaXRpb24pO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEFkZCBjb21tYXMgdG8gbnVtYmVyIGZvciBJbmRpYW4gZm9ybWF0XG4gIC8vIGFkZENvbW1hc1RvTnVtYmVyKHZhbHVlOiBhbnkgfCBudW1iZXIpOiBhbnkge1xuICAvLyAgIGlmICghdmFsdWUgfHwgdmFsdWUgPT09ICcnKSByZXR1cm4gJyc7XG4gIC8vICAgY29uc3Qgc3RyaW5nVmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAvLyAgIGNvbnN0IHBhcnRzID0gc3RyaW5nVmFsdWUuc3BsaXQoJy4nKTtcbiAgLy8gICBsZXQgaW50ZWdlclBhcnQgPSBwYXJ0c1swXTtcbiAgLy8gICBpZiAoaW50ZWdlclBhcnQubGVuZ3RoID4gMykge1xuICAvLyAgICAgY29uc3QgbGFzdFRocmVlRGlnaXRzID0gaW50ZWdlclBhcnQuc2xpY2UoLTMpO1xuICAvLyAgICAgY29uc3QgcmVtYWluaW5nRGlnaXRzID0gaW50ZWdlclBhcnQuc2xpY2UoMCwgLTMpO1xuICAvLyAgICAgY29uc3QgZm9ybWF0dGVkUmVtYWluaW5nID0gcmVtYWluaW5nRGlnaXRzLnJlcGxhY2UoL1xcQig/PShcXGR7Mn0pKyg/IVxcZCkpL2csICcsJyk7XG4gIC8vICAgICBpbnRlZ2VyUGFydCA9IGZvcm1hdHRlZFJlbWFpbmluZyArICcsJyArIGxhc3RUaHJlZURpZ2l0cztcbiAgLy8gICB9XG5cbiAgLy8gICByZXR1cm4gcGFydHNbMV0gPyBpbnRlZ2VyUGFydCArICcuJyArIHBhcnRzWzFdIDogaW50ZWdlclBhcnQ7XG4gIC8vIH1cbiAgY2FsY3VsYXRlTmV3Q3Vyc29yUG9zaXRpb24ob2xkVmFsdWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZywgb2xkQ3Vyc29yUG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKG9sZEN1cnNvclBvc2l0aW9uID09PSAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgaWYgKG9sZEN1cnNvclBvc2l0aW9uID49IG9sZFZhbHVlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG5ld1ZhbHVlLmxlbmd0aDtcbiAgICB9XG4gICAgbGV0IGRpZ2l0c0JlZm9yZUN1cnNvciA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvbGRDdXJzb3JQb3NpdGlvbjsgaSsrKSB7XG4gICAgICBjb25zdCBjaGFyID0gb2xkVmFsdWVbaV07XG4gICAgICBpZiAoY2hhciAhPT0gJywnKSB7XG4gICAgICAgIGRpZ2l0c0JlZm9yZUN1cnNvcisrO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgZGlnaXRDb3VudCA9IDA7XG4gICAgbGV0IG5ld1Bvc2l0aW9uID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5ld1ZhbHVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjaGFyID0gbmV3VmFsdWVbaV07XG4gICAgICBpZiAoY2hhciAhPT0gJywnKSB7XG4gICAgICAgIGRpZ2l0Q291bnQrKztcbiAgICAgICAgaWYgKGRpZ2l0Q291bnQgPT09IGRpZ2l0c0JlZm9yZUN1cnNvcikge1xuICAgICAgICAgIG5ld1Bvc2l0aW9uID0gaSArIDE7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChkaWdpdENvdW50IDwgZGlnaXRzQmVmb3JlQ3Vyc29yKSB7XG4gICAgICAgIG5ld1Bvc2l0aW9uID0gaSArIDE7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBNYXRoLm1pbihuZXdQb3NpdGlvbiwgbmV3VmFsdWUubGVuZ3RoKTtcbiAgfVxuXG4gIC8vIEdldCB0aGUgZGlzcGxheSB2YWx1ZSB3aXRoIGNvbW1hcyBpZiBlbmFibGVkXG4gIGdldERpc3BsYXlWYWx1ZSgpOiBhbnkge1xuICAgIGlmICghdGhpcy5pbnB1dFZhbHVlKSByZXR1cm4gJyc7XG4gICAgaWYgKHRoaXMuaXNDb21tYUFkZGVkICYmICFpc05hTihwYXJzZUZsb2F0KHRoaXMuaW5wdXRWYWx1ZSkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5zaGFyZWRTZXJ2aWNlLmFkZENvbWFzVG9OdW1iZXJWYWx1ZXModGhpcy5pbnB1dFZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW5wdXRWYWx1ZTtcbiAgfVxuXG4gIC8vIEZvcm1hdCBhbW91bnQgdG8gSW5kaWFuIGN1cnJlbmN5IGZvcm1hdFxuICBmb3JtYXRJbmRpYW5DdXJyZW5jeShhbW91bnQ6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFhbW91bnQgfHwgYW1vdW50ID09PSAnJykgcmV0dXJuICcnO1xuXG4gICAgY29uc3QgbnVtQW1vdW50ID0gdHlwZW9mIGFtb3VudCA9PT0gJ3N0cmluZycgPyBwYXJzZUZsb2F0KGFtb3VudC5yZXBsYWNlKC8sL2csICcnKSkgOiBhbW91bnQ7XG4gICAgaWYgKGlzTmFOKG51bUFtb3VudCkgfHwgbnVtQW1vdW50ID09PSAwKSByZXR1cm4gJ+KCuSc7XG4gICAgaWYgKG51bUFtb3VudCA+PSAxMDAwMDAwMCkge1xuICAgICAgY29uc3QgY3JvcmVzID0gKG51bUFtb3VudCAvIDEwMDAwMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgcmV0dXJuIGDigrkgJHtjcm9yZXN9IENyYDtcbiAgICB9IGVsc2UgaWYgKG51bUFtb3VudCA+PSAxMDAwMDApIHtcbiAgICAgIGNvbnN0IGxha2hzID0gKG51bUFtb3VudCAvIDEwMDAwMCkudG9GaXhlZCgyKTtcbiAgICAgIHJldHVybiBg4oK5ICR7bGFraHN9IExgO1xuICAgIH0gZWxzZSBpZiAobnVtQW1vdW50ID49IDEwMDApIHtcbiAgICAgIGNvbnN0IHRob3VzYW5kcyA9IChudW1BbW91bnQgLyAxMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgcmV0dXJuIGDigrkgJHt0aG91c2FuZHN9IEtgO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYOKCuSAke251bUFtb3VudC50b0ZpeGVkKDIpfWA7XG4gICAgfVxuICB9XG5cbiAgLy8gR2V0IGZvcm1hdHRlZCBkaXNwbGF5IHZhbHVlXG4gIGdldEZvcm1hdHRlZEFtb3VudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdEluZGlhbkN1cnJlbmN5KHRoaXMuc2hhcmVkU2VydmljZS5yZW1vdmVDb21hc0FuZEN1cnJlbmN5U3ltYm9sRnJvbU51bWJlclZhbHVlcyh0aGlzLmlucHV0VmFsdWUpKTtcbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiZmllbGQtbGFibGVcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlICYmIGZpZWxkKCk/LmlzU2hvd0xhYmVsXCJcbiAgPnt7IGZpZWxkKCkubGFiZWxcbiAgfX08c3BhbiBzdHlsZT1cImNvbG9yOiByZWRcIiAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8udmFsaWRhdG9ycy5pc1JlcXVpcmVkXCJcbiAgICA+Kjwvc3BhblxuICA+PC9sYWJlbFxuPlxuICA8bWF0LWZvcm0tZmllbGRcbiAgY2xhc3M9XCJ3LTEwMFwiXG4gIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCJcbiAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXG4gIFtuZ1N0eWxlXT1cIntcbictLWN1c3RvbS1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcbictLWN1c3RvbS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcbictLWN1c3RvbS1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJSYWRpdXMgLFxuJy0tY3VzdG9tLWJnLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5iYWNrZ3JvdW5kICxcbictLWN1c3RvbS1ib3JkZXItY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxuJy0tY3VzdG9tLWJvcmRlci13aWR0aC1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJXaWR0aCAsXG4nLS1jdXN0b20tYmctY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQmFja2dyb3VuZCAsXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yLWhvdmVyJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ob3ZlckJvcmRlckNvbG9yICxcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyV2lkdGggLFxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1lcnJvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZXJyb3JCb3JkZXJDb2xvciAsXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlcldpZHRoICxcbictLWN1c3RvbS1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplICxcbictLWN1c3RvbS1mb250LXdlaWdodCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFdlaWdodCAsXG4nLS1jdXN0b20tZm9udC1mYW1pbHknOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRGYW1pbHkgLFxuJy0tY3VzdG9tLWZvbnQtY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmNvbG9yICxcbictLWN1c3RvbS1jYXJldC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY2FyZXRDb2xvciAsXG4nLS1jdXN0b20tZm9udC1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVDb2xvciAsXG4nLS1jdXN0b20tYmctY29sb3ItZGlzYWJsZWQnIDogZmllbGQoKT8uY29udHJvbFN0eWxlPy5kaXNhYmxlQmFja2dyb3VuZCAsXG59XCI+XG4gQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xuPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxuICAgICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpPy5wbGFjZUhvbGRlclwiXG4gICAgICBbbWF4TGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1heExlbmd0aFwiXG4gICAgICBbbWluTGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1pbkxlbmd0aFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcbiAgICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcbiAgICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgIFt2YWx1ZV09XCJnZXREaXNwbGF5VmFsdWUoKVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwicmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpXCJcbiAgICAvPlxuIH1AZWxzZSB7XG4gIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcbiAgICAgIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxuICAgICAgW21heExlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5tYXhMZW5ndGhcIlxuICAgICAgW21pbkxlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5taW5MZW5ndGhcIlxuICAgICAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXG4gICAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXG4gICAgICBbcGF0dGVybl09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5wYXR0ZXJuXCJcbiAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICBbdmFsdWVdPVwiZ2V0RGlzcGxheVZhbHVlKClcIlxuICAgIC8+XG4gfVxuXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZhbHNlXCI+XG4gICAgICB7eyBmaWVsZCgpPy52YWxpZGF0b3JzPy5yZXF1aXJlZE1lc3NhZ2UgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8c3BhbiBtYXRQcmVmaXggY2xhc3M9XCJydXBlZS1zeW1ib2wgcHgtMlwiPuKCuTwvc3Bhbj5cbiAgICA8c3BhbiBtYXRTdWZmaXggY2xhc3M9XCJtZS0yIHJpZ2h0LWFtb3VudC10ZXh0XCIgKm5nSWY9XCJpbnB1dFZhbHVlXCI+e3sgZ2V0Rm9ybWF0dGVkQW1vdW50KCkgfX08L3NwYW4+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1vdW50LXRleHRib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi9hbW91bnQtdGV4dGJveC9hbW91bnQtdGV4dGJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL2Ftb3VudC10ZXh0Ym94L2Ftb3VudC10ZXh0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7QUFxQjVFLE1BQU0sT0FBTyxzQkFBc0I7SUFDZDtJQUFuQixZQUFtQixhQUFvQztRQUFwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7SUFBRSxDQUFDO0lBQzFELEtBQUssR0FBUyxLQUFLLENBQUMsUUFBUSxFQUFPLENBQUM7SUFDcEMsVUFBVSxHQUFRLElBQUksQ0FBQztJQUN2Qix5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUMvQyxTQUFTLEdBQVEsQ0FBQyxVQUFjLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN4QyxVQUFVLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQzNCLElBQUksWUFBWTtRQUNkLE9BQU8s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QUFhLENBQUMsNENBQTRDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDckgsQ0FBQzt3R0FoTVUsc0JBQXNCOzRGQUF0QixzQkFBc0IsbVpBUnRCO1lBQ1A7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLHNCQUFzQjtnQkFDbkMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQ3pCTCxtcUdBMkVBLDBnSEQvREksa0JBQWtCLHdrQkFDbEIsWUFBWSx1TkFDWixjQUFjLDBXQUNkLG1CQUFtQjs7NEZBWVYsc0JBQXNCO2tCQW5CbEMsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNQO3dCQUNQLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjtxQkFDcEIsYUFHVTt3QkFDUDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHdCQUF3Qjs0QkFDbkMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7eUZBZU8sSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7IGluaXRpYWxpemVGaWVsZE5hbWVBdHRyaWJ1dGUgfSBmcm9tICcuLi9maWVsZC1uYW1lLWF0dHJpYnV0ZS51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFtb3VudC10ZXh0Ym94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYW1vdW50LXRleHRib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYW1vdW50LXRleHRib3guY29tcG9uZW50LmNzcycsXG4gIHByb3ZpZGVyczogW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgdXNlRXhpc3Rpbmc6IEFtb3VudFRleHRib3hDb21wb25lbnQsXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBbW91bnRUZXh0Ym94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2hhcmVkU2VydmljZSA6IE1hc3RlckNvbnRyb2xTZXJ2aWNlKXt9XG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xuICBpbnB1dFZhbHVlOiBhbnkgPSBudWxsO1xuICByZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0IDogYW55ID0gaW5wdXQ8YW55PigpO1xuICBfb25DaGFuZ2U6IGFueSA9IChpbnB1dFZhbHVlOmFueSkgPT4ge307XG4gIF91blRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuICBnZXQgaXNDb21tYUFkZGVkKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQoKT8uY29uZmlnRGF0YT8uaXNDb21tYUFsbG93ZWQgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLmZpZWxkKCk/LmNvbmZpZ0RhdGE/LmlzQ29tbWFBbGxvd2VkIDogdHJ1ZTtcbiAgfVxuXG4gICAvLyBEZWNsYXJlIE91dHB1dCBldmVudCBlbWl0dGVyIGhlcmUgKGNsYXNzIGxldmVsKVxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGluaXRpYWxpemVGaWVsZE5hbWVBdHRyaWJ1dGUodGhpcy5maWVsZCgpKTtcbiAgfVxuXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAob2JqICE9PSBudWxsICYmIG9iaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCByYXdWYWx1ZSA9IG9iai50b1N0cmluZygpO1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gcmF3VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IG51bGw7XG4gICAgfVxuICB9XG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWR7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfTtcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWR7XG4gICAgdGhpcy5fdW5Ub3VjaGVkID0gZm47XG4gIH07XG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lke307XG5cbiAgb25JbnB1dENoYW5nZShldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIGNvbnN0IGN1cnNvclBvc2l0aW9uID0gaW5wdXRFbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IG9sZFZhbHVlID0gaW5wdXRFbGVtZW50LnZhbHVlO1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gb2xkVmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgaWYgKHJhd1ZhbHVlID09PSAnJyB8fCAvXlxcZCpcXC4/XFxkKiQvLnRlc3QocmF3VmFsdWUpKSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcbiAgICAgIGlmICh0aGlzLmlzQ29tbWFBZGRlZCAmJiByYXdWYWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdChyYXdWYWx1ZSkpKSB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gdGhpcy5zaGFyZWRTZXJ2aWNlLmFkZENvbWFzVG9OdW1iZXJWYWx1ZXMocmF3VmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdDdXJzb3JQb3NpdGlvbiA9IHRoaXMuY2FsY3VsYXRlTmV3Q3Vyc29yUG9zaXRpb24oXG4gICAgICAgICAgb2xkVmFsdWUsXG4gICAgICAgICAgZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgICAgY3Vyc29yUG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShuZXdDdXJzb3JQb3NpdGlvbiwgbmV3Q3Vyc29yUG9zaXRpb24pO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJldmVydFZhbHVlID0gdGhpcy5pc0NvbW1hQWRkZWQgJiYgdGhpcy5pbnB1dFZhbHVlID9cbiAgICAgICAgdGhpcy5zaGFyZWRTZXJ2aWNlLmFkZENvbWFzVG9OdW1iZXJWYWx1ZXModGhpcy5pbnB1dFZhbHVlKSA6IHRoaXMuaW5wdXRWYWx1ZSB8fCAnJztcbiAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9IHJldmVydFZhbHVlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNhZmVDdXJzb3JQb3MgPSBNYXRoLm1pbihjdXJzb3JQb3NpdGlvbiwgcmV2ZXJ0VmFsdWUubGVuZ3RoKTtcbiAgICAgICAgaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNhZmVDdXJzb3JQb3MsIHNhZmVDdXJzb3JQb3MpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEJsdXIoZXZlbnQ/OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl91blRvdWNoZWQoKTtcbiAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICB9XG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGN1cnNvclBvc2l0aW9uID0gaW5wdXRFbGVtZW50LnNlbGVjdGlvblN0YXJ0IHx8IDA7XG4gICAgY29uc3QgdmFsdWUgPSBpbnB1dEVsZW1lbnQudmFsdWU7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0JhY2tzcGFjZScgJiYgY3Vyc29yUG9zaXRpb24gPiAwKSB7XG4gICAgICBpZiAodmFsdWVbY3Vyc29yUG9zaXRpb24gLSAxXSA9PT0gJywnKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclBvc2l0aW9uIC0gMikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yUG9zaXRpb24pO1xuICAgICAgICBjb25zdCByYXdWYWx1ZSA9IG5ld1ZhbHVlLnJlcGxhY2UoLywvZywgJycpO1xuICAgICAgICBpZiAocmF3VmFsdWUgPT09ICcnIHx8IC9eXFxkKlxcLj9cXGQqJC8udGVzdChyYXdWYWx1ZSkpIHtcbiAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSByYXdWYWx1ZTtcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuaXNDb21tYUFkZGVkICYmIHJhd1ZhbHVlID8gdGhpcy5zaGFyZWRTZXJ2aWNlLmFkZENvbWFzVG9OdW1iZXJWYWx1ZXMocmF3VmFsdWUpIDogcmF3VmFsdWU7XG4gICAgICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdDdXJzb3JQb3MgPSBNYXRoLm1heCgwLCBjdXJzb3JQb3NpdGlvbiAtIDIpO1xuICAgICAgICAgICAgaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKG5ld0N1cnNvclBvcywgbmV3Q3Vyc29yUG9zKTtcbiAgICAgICAgICB9LCAwKTtcblxuICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0RlbGV0ZScgJiYgY3Vyc29yUG9zaXRpb24gPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIGlmICh2YWx1ZVtjdXJzb3JQb3NpdGlvbl0gPT09ICcsJykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gKyAxIDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgY3Vyc29yUG9zaXRpb24pICsgdmFsdWUuc3Vic3RyaW5nKGN1cnNvclBvc2l0aW9uICsgMik7XG4gICAgICAgICAgY29uc3QgcmF3VmFsdWUgPSBuZXdWYWx1ZS5yZXBsYWNlKC8sL2csICcnKTtcbiAgICAgICAgICBpZiAocmF3VmFsdWUgPT09ICcnIHx8IC9eXFxkKlxcLj9cXGQqJC8udGVzdChyYXdWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHJhd1ZhbHVlO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmlzQ29tbWFBZGRlZCAmJiByYXdWYWx1ZSA/IHRoaXMuc2hhcmVkU2VydmljZS5hZGRDb21hc1RvTnVtYmVyVmFsdWVzKHJhd1ZhbHVlKSA6IHJhd1ZhbHVlO1xuICAgICAgICAgICAgaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKGN1cnNvclBvc2l0aW9uLCBjdXJzb3JQb3NpdGlvbik7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQWRkIGNvbW1hcyB0byBudW1iZXIgZm9yIEluZGlhbiBmb3JtYXRcbiAgLy8gYWRkQ29tbWFzVG9OdW1iZXIodmFsdWU6IGFueSB8IG51bWJlcik6IGFueSB7XG4gIC8vICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA9PT0gJycpIHJldHVybiAnJztcbiAgLy8gICBjb25zdCBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gIC8vICAgY29uc3QgcGFydHMgPSBzdHJpbmdWYWx1ZS5zcGxpdCgnLicpO1xuICAvLyAgIGxldCBpbnRlZ2VyUGFydCA9IHBhcnRzWzBdO1xuICAvLyAgIGlmIChpbnRlZ2VyUGFydC5sZW5ndGggPiAzKSB7XG4gIC8vICAgICBjb25zdCBsYXN0VGhyZWVEaWdpdHMgPSBpbnRlZ2VyUGFydC5zbGljZSgtMyk7XG4gIC8vICAgICBjb25zdCByZW1haW5pbmdEaWdpdHMgPSBpbnRlZ2VyUGFydC5zbGljZSgwLCAtMyk7XG4gIC8vICAgICBjb25zdCBmb3JtYXR0ZWRSZW1haW5pbmcgPSByZW1haW5pbmdEaWdpdHMucmVwbGFjZSgvXFxCKD89KFxcZHsyfSkrKD8hXFxkKSkvZywgJywnKTtcbiAgLy8gICAgIGludGVnZXJQYXJ0ID0gZm9ybWF0dGVkUmVtYWluaW5nICsgJywnICsgbGFzdFRocmVlRGlnaXRzO1xuICAvLyAgIH1cblxuICAvLyAgIHJldHVybiBwYXJ0c1sxXSA/IGludGVnZXJQYXJ0ICsgJy4nICsgcGFydHNbMV0gOiBpbnRlZ2VyUGFydDtcbiAgLy8gfVxuICBjYWxjdWxhdGVOZXdDdXJzb3JQb3NpdGlvbihvbGRWYWx1ZTogc3RyaW5nLCBuZXdWYWx1ZTogc3RyaW5nLCBvbGRDdXJzb3JQb3NpdGlvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAob2xkQ3Vyc29yUG9zaXRpb24gPT09IDApIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICBpZiAob2xkQ3Vyc29yUG9zaXRpb24gPj0gb2xkVmFsdWUubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbmV3VmFsdWUubGVuZ3RoO1xuICAgIH1cbiAgICBsZXQgZGlnaXRzQmVmb3JlQ3Vyc29yID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9sZEN1cnNvclBvc2l0aW9uOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYXIgPSBvbGRWYWx1ZVtpXTtcbiAgICAgIGlmIChjaGFyICE9PSAnLCcpIHtcbiAgICAgICAgZGlnaXRzQmVmb3JlQ3Vyc29yKys7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBkaWdpdENvdW50ID0gMDtcbiAgICBsZXQgbmV3UG9zaXRpb24gPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmV3VmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYXIgPSBuZXdWYWx1ZVtpXTtcbiAgICAgIGlmIChjaGFyICE9PSAnLCcpIHtcbiAgICAgICAgZGlnaXRDb3VudCsrO1xuICAgICAgICBpZiAoZGlnaXRDb3VudCA9PT0gZGlnaXRzQmVmb3JlQ3Vyc29yKSB7XG4gICAgICAgICAgbmV3UG9zaXRpb24gPSBpICsgMTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGRpZ2l0Q291bnQgPCBkaWdpdHNCZWZvcmVDdXJzb3IpIHtcbiAgICAgICAgbmV3UG9zaXRpb24gPSBpICsgMTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIE1hdGgubWluKG5ld1Bvc2l0aW9uLCBuZXdWYWx1ZS5sZW5ndGgpO1xuICB9XG5cbiAgLy8gR2V0IHRoZSBkaXNwbGF5IHZhbHVlIHdpdGggY29tbWFzIGlmIGVuYWJsZWRcbiAgZ2V0RGlzcGxheVZhbHVlKCk6IGFueSB7XG4gICAgaWYgKCF0aGlzLmlucHV0VmFsdWUpIHJldHVybiAnJztcbiAgICBpZiAodGhpcy5pc0NvbW1hQWRkZWQgJiYgIWlzTmFOKHBhcnNlRmxvYXQodGhpcy5pbnB1dFZhbHVlKSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnNoYXJlZFNlcnZpY2UuYWRkQ29tYXNUb051bWJlclZhbHVlcyh0aGlzLmlucHV0VmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbnB1dFZhbHVlO1xuICB9XG5cbiAgLy8gRm9ybWF0IGFtb3VudCB0byBJbmRpYW4gY3VycmVuY3kgZm9ybWF0XG4gIGZvcm1hdEluZGlhbkN1cnJlbmN5KGFtb3VudDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWFtb3VudCB8fCBhbW91bnQgPT09ICcnKSByZXR1cm4gJyc7XG5cbiAgICBjb25zdCBudW1BbW91bnQgPSB0eXBlb2YgYW1vdW50ID09PSAnc3RyaW5nJyA/IHBhcnNlRmxvYXQoYW1vdW50LnJlcGxhY2UoLywvZywgJycpKSA6IGFtb3VudDtcbiAgICBpZiAoaXNOYU4obnVtQW1vdW50KSB8fCBudW1BbW91bnQgPT09IDApIHJldHVybiAn4oK5JztcbiAgICBpZiAobnVtQW1vdW50ID49IDEwMDAwMDAwKSB7XG4gICAgICBjb25zdCBjcm9yZXMgPSAobnVtQW1vdW50IC8gMTAwMDAwMDApLnRvRml4ZWQoMik7XG4gICAgICByZXR1cm4gYOKCuSAke2Nyb3Jlc30gQ3JgO1xuICAgIH0gZWxzZSBpZiAobnVtQW1vdW50ID49IDEwMDAwMCkge1xuICAgICAgY29uc3QgbGFraHMgPSAobnVtQW1vdW50IC8gMTAwMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgcmV0dXJuIGDigrkgJHtsYWtoc30gTGA7XG4gICAgfSBlbHNlIGlmIChudW1BbW91bnQgPj0gMTAwMCkge1xuICAgICAgY29uc3QgdGhvdXNhbmRzID0gKG51bUFtb3VudCAvIDEwMDApLnRvRml4ZWQoMik7XG4gICAgICByZXR1cm4gYOKCuSAke3Rob3VzYW5kc30gS2A7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBg4oK5ICR7bnVtQW1vdW50LnRvRml4ZWQoMil9YDtcbiAgICB9XG4gIH1cblxuICAvLyBHZXQgZm9ybWF0dGVkIGRpc3BsYXkgdmFsdWVcbiAgZ2V0Rm9ybWF0dGVkQW1vdW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0SW5kaWFuQ3VycmVuY3kodGhpcy5zaGFyZWRTZXJ2aWNlLnJlbW92ZUNvbWFzQW5kQ3VycmVuY3lTeW1ib2xGcm9tTnVtYmVyVmFsdWVzKHRoaXMuaW5wdXRWYWx1ZSkpO1xuICB9XG59XG4iLCI8bGFiZWwgY2xhc3M9XCJmaWVsZC1sYWJsZVwiICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGUgJiYgZmllbGQoKT8uaXNTaG93TGFiZWxcIlxuICA+e3sgZmllbGQoKS5sYWJlbFxuICB9fTxzcGFuIHN0eWxlPVwiY29sb3I6IHJlZFwiICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy52YWxpZGF0b3JzLmlzUmVxdWlyZWRcIlxuICAgID4qPC9zcGFuXG4gID48L2xhYmVsXG4+XG4gIDxtYXQtZm9ybS1maWVsZFxuICBjbGFzcz1cInctMTAwXCJcbiAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAqbmdJZj1cImZpZWxkKCkgJiYgZmllbGQoKT8uaXNWaXNpYmxlXCJcbiAgW25nU3R5bGVdPVwie1xuJy0tY3VzdG9tLWJvcmRlci1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyQ29sb3IgLFxuJy0tY3VzdG9tLWJvcmRlci13aWR0aCc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyV2lkdGggLFxuJy0tY3VzdG9tLWJvcmRlci1yYWRpdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlclJhZGl1cyAsXG4nLS1jdXN0b20tYmctY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJhY2tncm91bmQgLFxuJy0tY3VzdG9tLWJvcmRlci1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJDb2xvciAsXG4nLS1jdXN0b20tYm9yZGVyLXdpZHRoLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlcldpZHRoICxcbictLWN1c3RvbS1iZy1jb2xvci1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCYWNrZ3JvdW5kICxcbictLWN1c3RvbS1ib3JkZXItY29sb3ItaG92ZXInOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmhvdmVyQm9yZGVyQ29sb3IgLFxuJy0tY3VzdG9tLWJvcmRlci13aWR0aC1ob3Zlcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uaG92ZXJCb3JkZXJXaWR0aCAsXG4nLS1jdXN0b20tYm9yZGVyLWNvbG9yLWVycm9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5lcnJvckJvcmRlckNvbG9yICxcbictLWN1c3RvbS1ib3JkZXItd2lkdGgtZXJyb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmVycm9yQm9yZGVyV2lkdGggLFxuJy0tY3VzdG9tLWZvbnQtc2l6ZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udFNpemUgLFxuJy0tY3VzdG9tLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250V2VpZ2h0ICxcbictLWN1c3RvbS1mb250LWZhbWlseSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9udEZhbWlseSAsXG4nLS1jdXN0b20tZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxuJy0tY3VzdG9tLWNhcmV0LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jYXJldENvbG9yICxcbictLWN1c3RvbS1mb250LWNvbG9yLWRpc2FibGVkJyA6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZGlzYWJsZUNvbG9yICxcbictLWN1c3RvbS1iZy1jb2xvci1kaXNhYmxlZCcgOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmRpc2FibGVCYWNrZ3JvdW5kICxcbn1cIj5cbiBAaWYocmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCgpKSB7XG48aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICBbdHlwZV09XCJmaWVsZCgpPy5jb250cm9sVHlwZVwiXG4gICAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVBdHRyaWJ1dGVcIlxuICAgICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcbiAgICAgIFttYXhMZW5ndGhdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ubWF4TGVuZ3RoXCJcbiAgICAgIFttaW5MZW5ndGhdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ubWluTGVuZ3RoXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxuICAgICAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxuICAgICAgW3BhdHRlcm5dPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ucGF0dGVyblwiXG4gICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxuICAgICAgW3ZhbHVlXT1cImdldERpc3BsYXlWYWx1ZSgpXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJyZWFjdGl2ZUZvcm1Db250cm9sb2JqZWN0KClcIlxuICAgIC8+XG4gfUBlbHNlIHtcbiAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgW3R5cGVdPVwiZmllbGQoKT8uY29udHJvbFR5cGVcIlxuICAgICAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lQXR0cmlidXRlXCJcbiAgICAgIFtpZF09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpPy5wbGFjZUhvbGRlclwiXG4gICAgICBbbWF4TGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1heExlbmd0aFwiXG4gICAgICBbbWluTGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1pbkxlbmd0aFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZmllbGQoKT8uaXNEaXNhYmxlXCJcbiAgICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcbiAgICAgIFtwYXR0ZXJuXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LnBhdHRlcm5cIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgIFt2YWx1ZV09XCJnZXREaXNwbGF5VmFsdWUoKVwiXG4gICAgLz5cbiB9XG5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZmFsc2VcIj5cbiAgICAgIHt7IGZpZWxkKCk/LnZhbGlkYXRvcnM/LnJlcXVpcmVkTWVzc2FnZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxzcGFuIG1hdFByZWZpeCBjbGFzcz1cInJ1cGVlLXN5bWJvbCBweC0yXCI+4oK5PC9zcGFuPlxuICAgIDxzcGFuIG1hdFN1ZmZpeCBjbGFzcz1cIm1lLTIgcmlnaHQtYW1vdW50LXRleHRcIiAqbmdJZj1cImlucHV0VmFsdWVcIj57eyBnZXRGb3JtYXR0ZWRBbW91bnQoKSB9fTwvc3Bhbj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbiJdfQ==
|