@ohioepa/oepa-ui-lib 2.0.7 → 2.0.8
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.
|
@@ -113,11 +113,11 @@ export class AddressComponent {
|
|
|
113
113
|
this.subscription.unsubscribe();
|
|
114
114
|
}
|
|
115
115
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddressComponent, deps: [{ token: i1.OepaAddressService }, { token: i2.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AddressComponent, selector: "oepa-address", inputs: { group: "group", showValidation: "showValidation", addressOneLabel: "addressOneLabel", addressTwoLabel: "addressTwoLabel", cityLabel: "cityLabel", stateLabel: "stateLabel", zipCodeLabel: "zipCodeLabel", disableState: "disableState", isSearch: "isSearch", hideLine2: "hideLine2", line1MaxLength: "line1MaxLength", line2MaxLength: "line2MaxLength", cityMaxLength: "cityMaxLength", foreignStateLabel: "foreignStateLabel", foreignZipLabel: "foreignZipLabel", countryLabel: "countryLabel", sameAsGroup: "sameAsGroup", sameAsLabel: "sameAsLabel", sameAsChecked: "sameAsChecked" }, ngImport: i0, template: "<div *ngIf=\"sameAsGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [ngStyle]=\"{ 'font-weight': sameAsChecked && group.disabled ? 'bold' : '' }\" for=\"copyFromCheckbox\">\n {{sameAsLabel}} \n <input id=\"copyFromCheckbox\" type=\"checkbox\" [checked]=\"sameAsChecked\" (change)=\"toggleCopyFromSelection()\" [disabled]=\"group.parent?.disabled\"/>\n </label>\n </div>\n </div>\n </div>\n</div>\n<div *ngIf=\"!sameAsGroup || !sameAsChecked\" [formGroup]=\"group\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line1Input'\">{{addressOneLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line1'].status === 'INVALID'}\" \n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line1\" [maxlength]=\"line1MaxLength\"\n [id]=\"componentId+'_Line1Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('required')\">{{addressOneLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('maxlength')\">{{addressOneLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"!hideLine2\" class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line2Input'\">{{addressTwoLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line2'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line2\" [maxlength]=\"line2MaxLength\"\n [id]=\"componentId+'_Line2Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('required')\">{{addressTwoLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('maxlength')\">{{addressTwoLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CityInput'\">{{cityLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['city'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"City\" maxlength=\"30\" formControlName=\"city\" [maxlength]=\"cityMaxLength\"\n [id]=\"componentId+'_CityInput'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('required')\">{{cityLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('maxlength')\">{{cityLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n <div class=\"col-md-2\">\n <div *ngIf=\"showStates && (!group.controls['country'] || group.get('country')?.value ==='USA')\" class=\"form-group\">\n <label [for]=\"componentId+'_StateSelect'\">{{stateLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['state'].status === 'INVALID'}\" \n name=\"AddressState\" formControlName=\"state\" [id]=\"componentId+'_StateSelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let s of usStates\" [ngValue]=\"s\">{{s}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['state'].hasError('required')\">State is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div *ngIf=\"!group.controls['country'] || group.get('country')?.value ==='USA'\" class=\"form-group\">\n <label [for]=\"componentId+'_ZipInput'\">{{zipCodeLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['postalCode'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Zip Code\" formControlName=\"postalCode\" [id]=\"componentId+'_ZipInput'\" mask=\"00000\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('required')\">{{zipCodeLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('minlength')\">{{zipCodeLabel}} must contain exactly 5 digits</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"group.controls['country'] && group.get('country')?.value !=='USA'\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_ForeignStateInput'\">{{foreignStateLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignState'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign State\" formControlName=\"foreignState\" [id]=\"componentId+'_ForeignStateInput'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignState'].hasError('required')\">{{foreignStateLabel}} is required</small>\n \n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_foreignZipInput'\">{{foreignZipLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignZip'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign Zip Code\" formControlName=\"foreignZip\" [id]=\"componentId+'_foreignZipInput'\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('required')\">{{foreignZipLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('minlength')\">{{foreignZipLabel}} must contain exactly ? digits</small>\n </div> \n </div>\n </div>\n <div *ngIf=\"group.controls['country']\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CountrySelect'\">{{countryLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['country'].status === 'INVALID'}\" \n name=\"AddressCountry\" formControlName=\"country\" [id]=\"componentId+'_CountrySelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let c of countries\" [ngValue]=\"c\">{{c}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['country'].hasError('required')\">Country{{countryLabel}} is required</small>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] });
|
|
116
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AddressComponent, selector: "oepa-address", inputs: { group: "group", showValidation: "showValidation", addressOneLabel: "addressOneLabel", addressTwoLabel: "addressTwoLabel", cityLabel: "cityLabel", stateLabel: "stateLabel", zipCodeLabel: "zipCodeLabel", disableState: "disableState", isSearch: "isSearch", hideLine2: "hideLine2", line1MaxLength: "line1MaxLength", line2MaxLength: "line2MaxLength", cityMaxLength: "cityMaxLength", foreignStateLabel: "foreignStateLabel", foreignZipLabel: "foreignZipLabel", countryLabel: "countryLabel", sameAsGroup: "sameAsGroup", sameAsLabel: "sameAsLabel", sameAsChecked: "sameAsChecked" }, ngImport: i0, template: "<div *ngIf=\"sameAsGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [ngStyle]=\"{ 'font-weight': sameAsChecked && group.disabled ? 'bold' : '' }\" [for]=\"componentId+'_CopyFromCheckbox'\">\n {{sameAsLabel}} \n <input [id]=\"componentId+'_CopyFromCheckbox'\" type=\"checkbox\" [checked]=\"sameAsChecked\" (change)=\"toggleCopyFromSelection()\" [disabled]=\"group.parent?.disabled\"/>\n </label>\n </div>\n </div>\n </div>\n</div>\n<div *ngIf=\"!sameAsGroup || !sameAsChecked\" [formGroup]=\"group\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line1Input'\">{{addressOneLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line1'].status === 'INVALID'}\" \n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line1\" [maxlength]=\"line1MaxLength\"\n [id]=\"componentId+'_Line1Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('required')\">{{addressOneLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('maxlength')\">{{addressOneLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"!hideLine2\" class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line2Input'\">{{addressTwoLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line2'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line2\" [maxlength]=\"line2MaxLength\"\n [id]=\"componentId+'_Line2Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('required')\">{{addressTwoLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('maxlength')\">{{addressTwoLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CityInput'\">{{cityLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['city'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"City\" maxlength=\"30\" formControlName=\"city\" [maxlength]=\"cityMaxLength\"\n [id]=\"componentId+'_CityInput'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('required')\">{{cityLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('maxlength')\">{{cityLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n <div class=\"col-md-2\">\n <div *ngIf=\"showStates && (!group.controls['country'] || group.get('country')?.value ==='USA')\" class=\"form-group\">\n <label [for]=\"componentId+'_StateSelect'\">{{stateLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['state'].status === 'INVALID'}\" \n name=\"AddressState\" formControlName=\"state\" [id]=\"componentId+'_StateSelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let s of usStates\" [ngValue]=\"s\">{{s}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['state'].hasError('required')\">State is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div *ngIf=\"!group.controls['country'] || group.get('country')?.value ==='USA'\" class=\"form-group\">\n <label [for]=\"componentId+'_ZipInput'\">{{zipCodeLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['postalCode'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Zip Code\" formControlName=\"postalCode\" [id]=\"componentId+'_ZipInput'\" mask=\"00000\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('required')\">{{zipCodeLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('minlength')\">{{zipCodeLabel}} must contain exactly 5 digits</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"group.controls['country'] && group.get('country')?.value !=='USA'\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_ForeignStateInput'\">{{foreignStateLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignState'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign State\" formControlName=\"foreignState\" [id]=\"componentId+'_ForeignStateInput'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignState'].hasError('required')\">{{foreignStateLabel}} is required</small>\n \n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_foreignZipInput'\">{{foreignZipLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignZip'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign Zip Code\" formControlName=\"foreignZip\" [id]=\"componentId+'_foreignZipInput'\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('required')\">{{foreignZipLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('minlength')\">{{foreignZipLabel}} must contain exactly ? digits</small>\n </div> \n </div>\n </div>\n <div *ngIf=\"group.controls['country']\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CountrySelect'\">{{countryLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['country'].status === 'INVALID'}\" \n name=\"AddressCountry\" formControlName=\"country\" [id]=\"componentId+'_CountrySelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let c of countries\" [ngValue]=\"c\">{{c}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['country'].hasError('required')\">Country{{countryLabel}} is required</small>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] });
|
|
117
117
|
}
|
|
118
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddressComponent, decorators: [{
|
|
119
119
|
type: Component,
|
|
120
|
-
args: [{ selector: 'oepa-address', template: "<div *ngIf=\"sameAsGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [ngStyle]=\"{ 'font-weight': sameAsChecked && group.disabled ? 'bold' : '' }\" for=\"
|
|
120
|
+
args: [{ selector: 'oepa-address', template: "<div *ngIf=\"sameAsGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [ngStyle]=\"{ 'font-weight': sameAsChecked && group.disabled ? 'bold' : '' }\" [for]=\"componentId+'_CopyFromCheckbox'\">\n {{sameAsLabel}} \n <input [id]=\"componentId+'_CopyFromCheckbox'\" type=\"checkbox\" [checked]=\"sameAsChecked\" (change)=\"toggleCopyFromSelection()\" [disabled]=\"group.parent?.disabled\"/>\n </label>\n </div>\n </div>\n </div>\n</div>\n<div *ngIf=\"!sameAsGroup || !sameAsChecked\" [formGroup]=\"group\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line1Input'\">{{addressOneLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line1'].status === 'INVALID'}\" \n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line1\" [maxlength]=\"line1MaxLength\"\n [id]=\"componentId+'_Line1Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('required')\">{{addressOneLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('maxlength')\">{{addressOneLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"!hideLine2\" class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line2Input'\">{{addressTwoLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line2'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line2\" [maxlength]=\"line2MaxLength\"\n [id]=\"componentId+'_Line2Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('required')\">{{addressTwoLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('maxlength')\">{{addressTwoLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CityInput'\">{{cityLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['city'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"City\" maxlength=\"30\" formControlName=\"city\" [maxlength]=\"cityMaxLength\"\n [id]=\"componentId+'_CityInput'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('required')\">{{cityLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('maxlength')\">{{cityLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n <div class=\"col-md-2\">\n <div *ngIf=\"showStates && (!group.controls['country'] || group.get('country')?.value ==='USA')\" class=\"form-group\">\n <label [for]=\"componentId+'_StateSelect'\">{{stateLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['state'].status === 'INVALID'}\" \n name=\"AddressState\" formControlName=\"state\" [id]=\"componentId+'_StateSelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let s of usStates\" [ngValue]=\"s\">{{s}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['state'].hasError('required')\">State is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div *ngIf=\"!group.controls['country'] || group.get('country')?.value ==='USA'\" class=\"form-group\">\n <label [for]=\"componentId+'_ZipInput'\">{{zipCodeLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['postalCode'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Zip Code\" formControlName=\"postalCode\" [id]=\"componentId+'_ZipInput'\" mask=\"00000\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('required')\">{{zipCodeLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('minlength')\">{{zipCodeLabel}} must contain exactly 5 digits</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"group.controls['country'] && group.get('country')?.value !=='USA'\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_ForeignStateInput'\">{{foreignStateLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignState'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign State\" formControlName=\"foreignState\" [id]=\"componentId+'_ForeignStateInput'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignState'].hasError('required')\">{{foreignStateLabel}} is required</small>\n \n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_foreignZipInput'\">{{foreignZipLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignZip'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign Zip Code\" formControlName=\"foreignZip\" [id]=\"componentId+'_foreignZipInput'\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('required')\">{{foreignZipLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('minlength')\">{{foreignZipLabel}} must contain exactly ? digits</small>\n </div> \n </div>\n </div>\n <div *ngIf=\"group.controls['country']\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CountrySelect'\">{{countryLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['country'].status === 'INVALID'}\" \n name=\"AddressCountry\" formControlName=\"country\" [id]=\"componentId+'_CountrySelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let c of countries\" [ngValue]=\"c\">{{c}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['country'].hasError('required')\">Country{{countryLabel}} is required</small>\n </div>\n </div>\n </div>\n</div>" }]
|
|
121
121
|
}], ctorParameters: () => [{ type: i1.OepaAddressService }, { type: i2.OepaComponentIdService }], propDecorators: { group: [{
|
|
122
122
|
type: Input
|
|
123
123
|
}], showValidation: [{
|
|
@@ -171,4 +171,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
171
171
|
}], sameAsChecked: [{
|
|
172
172
|
type: Input
|
|
173
173
|
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVd6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBdUNQO0lBQTRDO0lBdEN6RCxXQUFXLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0MsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNsQixRQUFRLEdBQWEsRUFBRSxDQUFDO0lBQ3hCLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFDekIsV0FBVyxHQUFHLHNCQUFzQixDQUFDO0lBR3BDLGVBQWUsQ0FBZTtJQUM5QixZQUFZLENBQWdCO0lBRTNCLEtBQUssQ0FBYTtJQUNsQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBRUMsZUFBZSxHQUFXLFdBQVcsQ0FBQztJQUN0QyxlQUFlLEdBQVcsV0FBVyxDQUFDO0lBQzVDLFNBQVMsR0FBVyxNQUFNLENBQUM7SUFDMUIsVUFBVSxHQUFXLE9BQU8sQ0FBQztJQUMzQixZQUFZLEdBQVcsVUFBVSxDQUFDO0lBQ2xDLFlBQVksR0FBVyxLQUFLLENBQUM7SUFDakMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUV6QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRTdDLHdDQUF3QztJQUNSLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDcEIsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUNyQixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBRWYsaUJB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Z0JBQ1MsWUFBWTtzQkFBekMsS0FBSzt1QkFBQyxjQUFjO2dCQUNLLFFBQVE7c0JBQWpDLEtBQUs7dUJBQUMsVUFBVTtnQkFFVSxTQUFTO3NCQUFuQyxLQUFLO3VCQUFDLFdBQVc7Z0JBR2MsY0FBYztzQkFBN0MsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ1MsY0FBYztzQkFBN0MsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ1EsYUFBYTtzQkFBM0MsS0FBSzt1QkFBQyxlQUFlO2dCQUVhLGlCQUFpQjtzQkFBbkQsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ08sZUFBZTtzQkFBL0MsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ00sWUFBWTtzQkFBekMsS0FBSzt1QkFBQyxjQUFjO2dCQUlaLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9lcGFBZGRyZXNzU2VydmljZSB9IGZyb20gJy4vb2VwYS1hZGRyZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2VwYUNvbXBvbmVudElkU2VydmljZSwgT0VQQUFkZHJlc3MgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWFkZHJlc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkcmVzcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hZGRyZXNzLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBBZGRyZXNzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHppcENvZGVNYXNrID0gWy9cXGQvLCAvXFxkLywgL1xcZC8sIC9cXGQvLCAvXFxkL107XG4gIHB1YmxpYyBzaG93U3RhdGVzID0gdHJ1ZTtcbiAgcHVibGljIHVzU3RhdGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgY291bnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnT2VwYUFkZHJlc3NDb21wb25lbnQnO1xuXG4gIFxuICBwcml2YXRlIG9yaWdpbmFsQWRkcmVzcyE6IE9FUEFBZGRyZXNzO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRpb24gPSBmYWxzZTtcblxuICBASW5wdXQoJ2FkZHJlc3NPbmVMYWJlbCcpIHB1YmxpYyBhZGRyZXNzT25lTGFiZWw6IHN0cmluZyA9ICdBZGRyZXNzIDEnO1xuICBASW5wdXQoJ2FkZHJlc3NUd29MYWJlbCcpIHB1YmxpYyBhZGRyZXNzVHdvTGFiZWw6IHN0cmluZyA9ICdBZGRyZXNzIDInO1xuICBASW5wdXQoJ2NpdHlMYWJlbCcpIHB1YmxpYyBjaXR5TGFiZWw6IHN0cmluZyA9ICdDaXR5JztcbiAgQElucHV0KCdzdGF0ZUxhYmVsJykgcHVibGljIHN0YXRlTGFiZWw6IHN0cmluZyA9ICdTdGF0ZSc7XG4gIEBJbnB1dCgnemlwQ29kZUxhYmVsJykgcHVibGljIHppcENvZGVMYWJlbDogc3RyaW5nID0gJ1ppcCBDb2RlJztcbiAgQElucHV0KCdkaXNhYmxlU3RhdGUnKSBwdWJsaWMgZGlzYWJsZVN0YXRlOmJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdpc1NlYXJjaCcpIHB1YmxpYyBpc1NlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnaGlkZUxpbmUyJykgcHVibGljIGhpZGVMaW5lMiA9IGZhbHNlO1xuXG4gIC8vIG1heCBsZW5ndGggdmFsdWVzLiBvdmVycmlkZSBpZiBuZWVkZWRcbiAgQElucHV0KCdsaW5lMU1heExlbmd0aCcpIHB1YmxpYyBsaW5lMU1heExlbmd0aCA9IDQwO1xuICBASW5wdXQoJ2xpbmUyTWF4TGVuZ3RoJykgcHVibGljIGxpbmUyTWF4TGVuZ3RoID0gNDA7XG4gIEBJbnB1dCgnY2l0eU1heExlbmd0aCcpIHB1YmxpYyBjaXR5TWF4TGVuZ3RoID0gMzA7XG4gIFxuICBASW5wdXQoJ2ZvcmVpZ25TdGF0ZUxhYmVsJykgcHVibGljIGZvcmVpZ25TdGF0ZUxhYmVsOiBzdHJpbmcgPSAnRm9yZWlnbiBTdGF0ZSc7XG4gIEBJbnB1dCgnZm9yZWlnblppcExhYmVsJykgcHVibGljIGZvcmVpZ25aaXBMYWJlbDogc3RyaW5nID0gJ0ZvcmVpZ24gWmlwIENvZGUnO1xuICBASW5wdXQoJ2NvdW50cnlMYWJlbCcpIHB1YmxpYyBjb3VudHJ5TGFiZWw6IHN0cmluZyA9ICdDb3VudHJ5JztcblxuICAvLyBUaGVzZSB2YWx1ZXMgYXJlIG9ubHkgdXNlZCBpZiB5b3Ugd2FudCBhIFwic2FtZSBhc1wiIGNoZWNrYm94IGZvciB0aGUgYWRkcmVzc1xuICAvLyBBbGwgdGhyZWUgdmFsdWVzIG11c3QgYmUgcHJvdmlkZWQgaWYgdXNpbmcgdGhlIFwic2FtZSBhc1wiIGNhcGFiaWxpdHlcbiAgQElucHV0KCkgc2FtZUFzR3JvdXAgITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBzYW1lQXNMYWJlbCAhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNhbWVBc0NoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFkZHJlc3NTZXJ2aWNlOiBPZXBhQWRkcmVzc1NlcnZpY2UsIHByaXZhdGUgaWRTZXJ2aWNlOiBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlKSB7XG4gICAgdGhpcy5hZGRyZXNzU2VydmljZS5nZXRTdGF0ZXMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHN0YXRlcykgPT4ge1xuICAgICAgdGhpcy51c1N0YXRlcyA9IHN0YXRlcztcbiAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdFUlJPUiByZXRyaWV2aW5nIHN0YXRlcyBmb3IgYWRkcmVzczogJyArIGVycik7XG4gICAgfX0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZ3JvdXApIHtcbiAgICAgIFxuICAgICAgaWYodGhpcy5ncm91cC5jb250cm9sc1snY291bnRyeSddKXtcbiAgICAgICAgIHRoaXMuYWRkcmVzc1NlcnZpY2UuZ2V0Q291bnRyaWVzKCkuc3Vic2NyaWJlKHsgXG4gICAgICAgICAgbmV4dDogKGNvdW50cmllczogYW55KSA9PiB7XG4gICAgICAgICAgICBsZXQgY291bnRyeUxpc3Q6c3RyaW5nW109W107XG4gICAgICAgICAgICAvL1JlbW92ZSBcIkNheW1lbiBJc2xhbmRzXCJcbiAgICAgICAgICAgIGNvdW50cmllcy5mb3JFYWNoKChjb3VudHJ5OiBhbnkpID0+e1xuICAgICAgICAgICAgICBpZihjb3VudHJ5ICE9PSBcIkNheW1lbiBJc2xhbmRzXCIpXG4gICAgICAgICAgICAgICAgY291bnRyeUxpc3QucHVzaChjb3VudHJ5KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLmNvdW50cmllcyA9IGNvdW50cnlMaXN0O1xuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0VSUk9SIHJldHJpZXZpbmcgY291bnRyaWVzIGZvciBhZGRyZXNzOiAnICsgZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5jb21wb25lbnRJZCA9IHRoaXMuaWRTZXJ2aWNlLmdldENvbXBvbmVudElkKHRoaXMuZ3JvdXApO1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MgPSB0aGlzLmFkZHJlc3NGcm9tRm9ybUdyb3VwKHRoaXMuZ3JvdXApO1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVDb3B5RnJvbVNlbGVjdGlvbigpIHtcbiAgICB0aGlzLnNhbWVBc0NoZWNrZWQgPSAhdGhpcy5zYW1lQXNDaGVja2VkO1xuICAgIGlmICh0aGlzLnNhbWVBc0NoZWNrZWQpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpO1xuICAgICAgdGhpcy5ncm91cC5wYXRjaFZhbHVlKHRoaXMuYWRkcmVzc0Zyb21Gb3JtR3JvdXAodGhpcy5zYW1lQXNHcm91cCkpO1xuICAgICAgdGhpcy5ncm91cC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCk7XG4gICAgICB0aGlzLmdyb3VwLnBhdGNoVmFsdWUodGhpcy5vcmlnaW5hbEFkZHJlc3MpO1xuICAgICAgdGhpcy5ncm91cC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZHJlc3NGcm9tRm9ybUdyb3VwKGdyb3VwOiBGb3JtR3JvdXApOiBPRVBBQWRkcmVzcyB7XG4gICAgbGV0IGFkZHJlc3M6IE9FUEFBZGRyZXNzID0ge307XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICBhZGRyZXNzID0ge1xuICAgICAgICBsaW5lMTogZ3JvdXAuY29udHJvbHNbJ2xpbmUxJ10udmFsdWUsXG4gICAgICAgIGxpbmUyOiBncm91cC5jb250cm9sc1snbGluZTInXS52YWx1ZSxcbiAgICAgICAgY2l0eTogZ3JvdXAuY29udHJvbHNbJ2NpdHknXS52YWx1ZSxcbiAgICAgICAgc3RhdGU6IGdyb3VwLmNvbnRyb2xzWydzdGF0ZSddLnZhbHVlLFxuICAgICAgICBwb3N0YWxDb2RlOiAoZ3JvdXAuY29udHJvbHNbJ2NvdW50cnknXSAmJiBncm91cC5jb250cm9sc1snY291bnRyeSddLnZhbHVlICE9PSAnVVNBJykgPyBncm91cC5jb250cm9sc1snZm9yZWlnblppcCddOmdyb3VwLmNvbnRyb2xzWydwb3N0YWxDb2RlJ10udmFsdWUsXG4gICAgICAgIGZvcmVpZ25TdGF0ZTogZ3JvdXAuY29udHJvbHNbJ2ZvcmVpZ25TdGF0ZSddPyBncm91cC5jb250cm9sc1snZm9yZWlnblN0YXRlJ10udmFsdWU6bnVsbCxcbiAgICAgICAgY291bnRyeTogZ3JvdXAuY29udHJvbHNbJ2NvdW50cnknXSA/IGdyb3VwLmNvbnRyb2xzWydjb3VudHJ5J10udmFsdWU6bnVsbFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWRkcmVzcztcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9DaGFuZ2VzKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5ncm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGFkZHJlc3MgPT4ge1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MubGluZTEgPSBhZGRyZXNzLmxpbmUxO1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MubGluZTIgPSBhZGRyZXNzLmxpbmUyO1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MuY2l0eSA9IGFkZHJlc3MuY2l0eTtcbiAgICAgIHRoaXMub3JpZ2luYWxBZGRyZXNzLnN0YXRlID0gYWRkcmVzcy5zdGF0ZTtcbiAgICAgIHRoaXMub3JpZ2luYWxBZGRyZXNzLnBvc3RhbENvZGUgPSAoYWRkcmVzcy5jb3VudHJ5ICYmIGFkZHJlc3MuY291bnRyeSAhPT0gJ1VTQScpID8gYWRkcmVzcy5mb3JlaWduWmlwOmFkZHJlc3MucG9zdGFsQ29kZTtcbiAgICAgIHRoaXMub3JpZ2luYWxBZGRyZXNzLmZvcmVpZ25TdGF0ZSA9IGFkZHJlc3MuZm9yZWlnblN0YXRlID8gYWRkcmVzcy5mb3JlaWduU3RhdGUgOiBudWxsO1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MuY291bnRyeSA9IGFkZHJlc3MuY291bnRyeSA/IGFkZHJlc3MuY291bnRyeSA6IG51bGw7XG4gICAgICBcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwic2FtZUFzR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtuZ1N0eWxlXT1cInsgJ2ZvbnQtd2VpZ2h0Jzogc2FtZUFzQ2hlY2tlZCAmJiBncm91cC5kaXNhYmxlZCA/ICdib2xkJyA6ICcnIH1cIiBmb3I9XCJjb3B5RnJvbUNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7c2FtZUFzTGFiZWx9fSBcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiY29weUZyb21DaGVja2JveFwiIHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cInNhbWVBc0NoZWNrZWRcIiAoY2hhbmdlKT1cInRvZ2dsZUNvcHlGcm9tU2VsZWN0aW9uKClcIiBbZGlzYWJsZWRdPVwiZ3JvdXAucGFyZW50Py5kaXNhYmxlZFwiLz5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwiIXNhbWVBc0dyb3VwIHx8ICFzYW1lQXNDaGVja2VkXCIgW2Zvcm1Hcm91cF09XCJncm91cFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb21wb25lbnRJZCsnX0xpbmUxSW5wdXQnXCI+e3thZGRyZXNzT25lTGFiZWx9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cC5jb250cm9sc1snbGluZTEnXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIiBcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiaXNTZWFyY2ggPyAnc2VhcmNoJyA6ICd0ZXh0J1wiIHBsYWNlaG9sZGVyPVwiQWRkcmVzc1wiIG1heGxlbmd0aD1cIjQwXCIgZm9ybUNvbnRyb2xOYW1lPVwibGluZTFcIiBbbWF4bGVuZ3RoXT1cImxpbmUxTWF4TGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImNvbXBvbmVudElkKydfTGluZTFJbnB1dCdcIj5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1snbGluZTEnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7YWRkcmVzc09uZUxhYmVsfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydsaW5lMSddLmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPnt7YWRkcmVzc09uZUxhYmVsfX0gaGFzIGV4Y2VlZGVkIGl0cyBtYXhpbXVtIGxlbmd0aDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cIiFoaWRlTGluZTJcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImNvbXBvbmVudElkKydfTGluZTJJbnB1dCdcIj57e2FkZHJlc3NUd29MYWJlbH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmNvbnRyb2xzWydsaW5lMiddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiaXNTZWFyY2ggPyAnc2VhcmNoJyA6ICd0ZXh0J1wiIHBsYWNlaG9sZGVyPVwiQWRkcmVzc1wiIG1heGxlbmd0aD1cIjQwXCIgZm9ybUNvbnRyb2xOYW1lPVwibGluZTJcIiBbbWF4bGVuZ3RoXT1cImxpbmUyTWF4TGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImNvbXBvbmVudElkKydfTGluZTJJbnB1dCdcIj5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1snbGluZTInXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7YWRkcmVzc1R3b0xhYmVsfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydsaW5lMiddLmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPnt7YWRkcmVzc1R3b0xhYmVsfX0gaGFzIGV4Y2VlZGVkIGl0cyBtYXhpbXVtIGxlbmd0aDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY29tcG9uZW50SWQrJ19DaXR5SW5wdXQnXCI+e3tjaXR5TGFiZWx9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cC5jb250cm9sc1snY2l0eSddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImlzU2VhcmNoID8gJ3NlYXJjaCcgOiAndGV4dCdcIiBwbGFjZWhvbGRlcj1cIkNpdHlcIiBtYXhsZW5ndGg9XCIzMFwiIGZvcm1Db250cm9sTmFtZT1cImNpdHlcIiBbbWF4bGVuZ3RoXT1cImNpdHlNYXhMZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiY29tcG9uZW50SWQrJ19DaXR5SW5wdXQnXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ2NpdHknXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7Y2l0eUxhYmVsfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydjaXR5J10uaGFzRXJyb3IoJ21heGxlbmd0aCcpXCI+e3tjaXR5TGFiZWx9fSBoYXMgZXhjZWVkZWQgaXRzIG1heGltdW0gbGVuZ3RoPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0yXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd1N0YXRlcyAmJiAoIWdyb3VwLmNvbnRyb2xzWydjb3VudHJ5J10gfHwgZ3JvdXAuZ2V0KCdjb3VudHJ5Jyk/LnZhbHVlID09PSdVU0EnKVwiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImNvbXBvbmVudElkKydfU3RhdGVTZWxlY3QnXCI+e3tzdGF0ZUxhYmVsfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuY29udHJvbHNbJ3N0YXRlJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCIgXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJBZGRyZXNzU3RhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGF0ZVwiIFtpZF09XCJjb21wb25lbnRJZCsnX1N0YXRlU2VsZWN0J1wiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVTdGF0ZSB8fCBncm91cC5kaXNhYmxlZCA/ICcnIDogbnVsbFwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHMgb2YgdXNTdGF0ZXNcIiBbbmdWYWx1ZV09XCJzXCI+e3tzfX08L29wdGlvbj5cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ3N0YXRlJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5TdGF0ZSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFncm91cC5jb250cm9sc1snY291bnRyeSddICB8fCBncm91cC5nZXQoJ2NvdW50cnknKT8udmFsdWUgPT09J1VTQSdcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb21wb25lbnRJZCsnX1ppcElucHV0J1wiPnt7emlwQ29kZUxhYmVsfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuY29udHJvbHNbJ3Bvc3RhbENvZGUnXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIlxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJpc1NlYXJjaCA/ICdzZWFyY2gnIDogJ3RleHQnXCIgcGxhY2Vob2xkZXI9XCJaaXAgQ29kZVwiIGZvcm1Db250cm9sTmFtZT1cInBvc3RhbENvZGVcIiBbaWRdPVwiY29tcG9uZW50SWQrJ19aaXBJbnB1dCdcIiBtYXNrPVwiMDAwMDBcIj5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1sncG9zdGFsQ29kZSddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3t6aXBDb2RlTGFiZWx9fSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ3Bvc3RhbENvZGUnXS5oYXNFcnJvcignbWlubGVuZ3RoJylcIj57e3ppcENvZGVMYWJlbH19IG11c3QgY29udGFpbiBleGFjdGx5IDUgZGlnaXRzPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ2NvdW50cnknXSAmJiBncm91cC5nZXQoJ2NvdW50cnknKT8udmFsdWUgIT09J1VTQSdcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY29tcG9uZW50SWQrJ19Gb3JlaWduU3RhdGVJbnB1dCdcIj57e2ZvcmVpZ25TdGF0ZUxhYmVsfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuY29udHJvbHNbJ2ZvcmVpZ25TdGF0ZSddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkZvcmVpZ24gU3RhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JlaWduU3RhdGVcIiBbaWRdPVwiY29tcG9uZW50SWQrJ19Gb3JlaWduU3RhdGVJbnB1dCdcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlU3RhdGUgfHwgZ3JvdXAuZGlzYWJsZWQgPyAnJyA6IG51bGxcIiA+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ2ZvcmVpZ25TdGF0ZSddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3tmb3JlaWduU3RhdGVMYWJlbH19IGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImNvbXBvbmVudElkKydfZm9yZWlnblppcElucHV0J1wiPnt7Zm9yZWlnblppcExhYmVsfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuY29udHJvbHNbJ2ZvcmVpZ25aaXAnXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJGb3JlaWduIFppcCBDb2RlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZm9yZWlnblppcFwiIFtpZF09XCJjb21wb25lbnRJZCsnX2ZvcmVpZ25aaXBJbnB1dCdcIiAgPlxuICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydmb3JlaWduWmlwJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57e2ZvcmVpZ25aaXBMYWJlbH19IGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1snZm9yZWlnblppcCddLmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPnt7Zm9yZWlnblppcExhYmVsfX0gbXVzdCBjb250YWluIGV4YWN0bHkgPyBkaWdpdHM8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+IFxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ2NvdW50cnknXVwiIGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb21wb25lbnRJZCsnX0NvdW50cnlTZWxlY3QnXCI+e3tjb3VudHJ5TGFiZWx9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cC5jb250cm9sc1snY291bnRyeSddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiIFxuICAgICAgICAgICAgICAgIG5hbWU9XCJBZGRyZXNzQ291bnRyeVwiIGZvcm1Db250cm9sTmFtZT1cImNvdW50cnlcIiBbaWRdPVwiY29tcG9uZW50SWQrJ19Db3VudHJ5U2VsZWN0J1wiIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVTdGF0ZSB8fCBncm91cC5kaXNhYmxlZCA/ICcnIDogbnVsbFwiPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGMgb2YgY291bnRyaWVzXCIgW25nVmFsdWVdPVwiY1wiPnt7Y319PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydjb3VudHJ5J10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5Db3VudHJ5e3tjb3VudHJ5TGFiZWx9fSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVd6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBdUNQO0lBQTRDO0lBdEN6RCxXQUFXLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0MsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNsQixRQUFRLEdBQWEsRUFBRSxDQUFDO0lBQ3hCLFNBQVMsR0FBYSxFQUFFLENBQUM7SUFDekIsV0FBVyxHQUFHLHNCQUFzQixDQUFDO0lBR3BDLGVBQWUsQ0FBZTtJQUM5QixZQUFZLENBQWdCO0lBRTNCLEtBQUssQ0FBYTtJQUNsQixjQUFjLEdBQUcsS0FBSyxDQUFDO0lBRUMsZUFBZSxHQUFXLFdBQVcsQ0FBQztJQUN0QyxlQUFlLEdBQVcsV0FBVyxDQUFDO0lBQzVDLFNBQVMsR0FBVyxNQUFNLENBQUM7SUFDMUIsVUFBVSxHQUFXLE9BQU8sQ0FBQztJQUMzQixZQUFZLEdBQVcsVUFBVSxDQUFDO0lBQ2xDLFlBQVksR0FBVyxLQUFLLENBQUM7SUFDakMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUV6QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRTdDLHdDQUF3QztJQUNSLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDcEIsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUNyQixhQUFhLEdBQUcsRUFBRSxDQUFDO0lBRWYsaUJBQWlCLEdBQVcsZUFBZSxDQUFDO0lBQzlDLGVBQWUsR0FBVyxrQkFBa0IsQ0FBQztJQUNoRCxZQUFZLEdBQVcsU0FBUyxDQUFDO0lBRS9ELDhFQUE4RTtJQUM5RSxzRUFBc0U7SUFDN0QsV0FBVyxDQUFjO0lBQ3pCLFdBQVcsQ0FBVztJQUN0QixhQUFhLEdBQVksS0FBSyxDQUFDO0lBRXhDLFlBQW9CLGNBQWtDLEVBQVUsU0FBaUM7UUFBN0UsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBd0I7UUFDL0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDeEMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDO1lBQ3pCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsR0FBRyxHQUFHLENBQUMsQ0FBQztZQUM3RCxDQUFDO1NBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUVmLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUM7b0JBQzVDLElBQUksRUFBRSxDQUFDLFNBQWMsRUFBRSxFQUFFO3dCQUN2QixJQUFJLFdBQVcsR0FBVSxFQUFFLENBQUM7d0JBQzVCLHlCQUF5Qjt3QkFDekIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQVksRUFBRSxFQUFFOzRCQUNqQyxJQUFHLE9BQU8sS0FBSyxnQkFBZ0I7Z0NBQzdCLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQzlCLENBQUMsQ0FBQyxDQUFBO3dCQUNGLElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO29CQUMvQixDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO3dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsMENBQTBDLEdBQUcsR0FBRyxDQUFDLENBQUM7b0JBQ2hFLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBZ0I7UUFDM0MsSUFBSSxPQUFPLEdBQWdCLEVBQUUsQ0FBQztRQUM5QixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsT0FBTyxHQUFHO2dCQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUs7Z0JBQ3BDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUs7Z0JBQ3BDLElBQUksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUs7Z0JBQ2xDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUs7Z0JBQ3BDLFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUEsQ0FBQyxDQUFBLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSztnQkFDdEosWUFBWSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQSxJQUFJO2dCQUN2RixPQUFPLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFBLElBQUk7YUFDMUUsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxVQUFVLENBQUM7WUFDekgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3ZGLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUUxRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO3dHQXBIVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw0bkJDWDdCLGc2T0FvR007OzRGRHpGTyxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYzs0SEFlZixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFMkIsZUFBZTtzQkFBL0MsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ1MsZUFBZTtzQkFBL0MsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ0csU0FBUztzQkFBbkMsS0FBSzt1QkFBQyxXQUFXO2dCQUNVLFVBQVU7c0JBQXJDLEtBQUs7dUJBQUMsWUFBWTtnQkFDVyxZQUFZO3NCQUF6QyxLQUFLO3VCQUFDLGNBQWM7Z0JBQ1MsWUFBWTtzQkFBekMsS0FBSzt1QkFBQyxjQUFjO2dCQUNLLFFBQVE7c0JBQWpDLEtBQUs7dUJBQUMsVUFBVTtnQkFFVSxTQUFTO3NCQUFuQyxLQUFLO3VCQUFDLFdBQVc7Z0JBR2MsY0FBYztzQkFBN0MsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ1MsY0FBYztzQkFBN0MsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBQ1EsYUFBYTtzQkFBM0MsS0FBSzt1QkFBQyxlQUFlO2dCQUVhLGlCQUFpQjtzQkFBbkQsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ08sZUFBZTtzQkFBL0MsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ00sWUFBWTtzQkFBekMsS0FBSzt1QkFBQyxjQUFjO2dCQUlaLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9lcGFBZGRyZXNzU2VydmljZSB9IGZyb20gJy4vb2VwYS1hZGRyZXNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2VwYUNvbXBvbmVudElkU2VydmljZSwgT0VQQUFkZHJlc3MgfSBmcm9tICdAb2hpb2VwYS9vZXBhLWNvbW1vbi1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZXBhLWFkZHJlc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkcmVzcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hZGRyZXNzLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBBZGRyZXNzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHppcENvZGVNYXNrID0gWy9cXGQvLCAvXFxkLywgL1xcZC8sIC9cXGQvLCAvXFxkL107XG4gIHB1YmxpYyBzaG93U3RhdGVzID0gdHJ1ZTtcbiAgcHVibGljIHVzU3RhdGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgY291bnRyaWVzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgY29tcG9uZW50SWQgPSAnT2VwYUFkZHJlc3NDb21wb25lbnQnO1xuXG4gIFxuICBwcml2YXRlIG9yaWdpbmFsQWRkcmVzcyE6IE9FUEFBZGRyZXNzO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoKSBncm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRpb24gPSBmYWxzZTtcblxuICBASW5wdXQoJ2FkZHJlc3NPbmVMYWJlbCcpIHB1YmxpYyBhZGRyZXNzT25lTGFiZWw6IHN0cmluZyA9ICdBZGRyZXNzIDEnO1xuICBASW5wdXQoJ2FkZHJlc3NUd29MYWJlbCcpIHB1YmxpYyBhZGRyZXNzVHdvTGFiZWw6IHN0cmluZyA9ICdBZGRyZXNzIDInO1xuICBASW5wdXQoJ2NpdHlMYWJlbCcpIHB1YmxpYyBjaXR5TGFiZWw6IHN0cmluZyA9ICdDaXR5JztcbiAgQElucHV0KCdzdGF0ZUxhYmVsJykgcHVibGljIHN0YXRlTGFiZWw6IHN0cmluZyA9ICdTdGF0ZSc7XG4gIEBJbnB1dCgnemlwQ29kZUxhYmVsJykgcHVibGljIHppcENvZGVMYWJlbDogc3RyaW5nID0gJ1ppcCBDb2RlJztcbiAgQElucHV0KCdkaXNhYmxlU3RhdGUnKSBwdWJsaWMgZGlzYWJsZVN0YXRlOmJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdpc1NlYXJjaCcpIHB1YmxpYyBpc1NlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgnaGlkZUxpbmUyJykgcHVibGljIGhpZGVMaW5lMiA9IGZhbHNlO1xuXG4gIC8vIG1heCBsZW5ndGggdmFsdWVzLiBvdmVycmlkZSBpZiBuZWVkZWRcbiAgQElucHV0KCdsaW5lMU1heExlbmd0aCcpIHB1YmxpYyBsaW5lMU1heExlbmd0aCA9IDQwO1xuICBASW5wdXQoJ2xpbmUyTWF4TGVuZ3RoJykgcHVibGljIGxpbmUyTWF4TGVuZ3RoID0gNDA7XG4gIEBJbnB1dCgnY2l0eU1heExlbmd0aCcpIHB1YmxpYyBjaXR5TWF4TGVuZ3RoID0gMzA7XG4gIFxuICBASW5wdXQoJ2ZvcmVpZ25TdGF0ZUxhYmVsJykgcHVibGljIGZvcmVpZ25TdGF0ZUxhYmVsOiBzdHJpbmcgPSAnRm9yZWlnbiBTdGF0ZSc7XG4gIEBJbnB1dCgnZm9yZWlnblppcExhYmVsJykgcHVibGljIGZvcmVpZ25aaXBMYWJlbDogc3RyaW5nID0gJ0ZvcmVpZ24gWmlwIENvZGUnO1xuICBASW5wdXQoJ2NvdW50cnlMYWJlbCcpIHB1YmxpYyBjb3VudHJ5TGFiZWw6IHN0cmluZyA9ICdDb3VudHJ5JztcblxuICAvLyBUaGVzZSB2YWx1ZXMgYXJlIG9ubHkgdXNlZCBpZiB5b3Ugd2FudCBhIFwic2FtZSBhc1wiIGNoZWNrYm94IGZvciB0aGUgYWRkcmVzc1xuICAvLyBBbGwgdGhyZWUgdmFsdWVzIG11c3QgYmUgcHJvdmlkZWQgaWYgdXNpbmcgdGhlIFwic2FtZSBhc1wiIGNhcGFiaWxpdHlcbiAgQElucHV0KCkgc2FtZUFzR3JvdXAgITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBzYW1lQXNMYWJlbCAhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNhbWVBc0NoZWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFkZHJlc3NTZXJ2aWNlOiBPZXBhQWRkcmVzc1NlcnZpY2UsIHByaXZhdGUgaWRTZXJ2aWNlOiBPZXBhQ29tcG9uZW50SWRTZXJ2aWNlKSB7XG4gICAgdGhpcy5hZGRyZXNzU2VydmljZS5nZXRTdGF0ZXMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHN0YXRlcykgPT4ge1xuICAgICAgdGhpcy51c1N0YXRlcyA9IHN0YXRlcztcbiAgICB9LCBlcnJvcjogZXJyID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdFUlJPUiByZXRyaWV2aW5nIHN0YXRlcyBmb3IgYWRkcmVzczogJyArIGVycik7XG4gICAgfX0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZ3JvdXApIHtcbiAgICAgIFxuICAgICAgaWYodGhpcy5ncm91cC5jb250cm9sc1snY291bnRyeSddKXtcbiAgICAgICAgIHRoaXMuYWRkcmVzc1NlcnZpY2UuZ2V0Q291bnRyaWVzKCkuc3Vic2NyaWJlKHsgXG4gICAgICAgICAgbmV4dDogKGNvdW50cmllczogYW55KSA9PiB7XG4gICAgICAgICAgICBsZXQgY291bnRyeUxpc3Q6c3RyaW5nW109W107XG4gICAgICAgICAgICAvL1JlbW92ZSBcIkNheW1lbiBJc2xhbmRzXCJcbiAgICAgICAgICAgIGNvdW50cmllcy5mb3JFYWNoKChjb3VudHJ5OiBhbnkpID0+e1xuICAgICAgICAgICAgICBpZihjb3VudHJ5ICE9PSBcIkNheW1lbiBJc2xhbmRzXCIpXG4gICAgICAgICAgICAgICAgY291bnRyeUxpc3QucHVzaChjb3VudHJ5KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB0aGlzLmNvdW50cmllcyA9IGNvdW50cnlMaXN0O1xuICAgICAgICAgIH0sIGVycm9yOiBlcnIgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0VSUk9SIHJldHJpZXZpbmcgY291bnRyaWVzIGZvciBhZGRyZXNzOiAnICsgZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5jb21wb25lbnRJZCA9IHRoaXMuaWRTZXJ2aWNlLmdldENvbXBvbmVudElkKHRoaXMuZ3JvdXApO1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MgPSB0aGlzLmFkZHJlc3NGcm9tRm9ybUdyb3VwKHRoaXMuZ3JvdXApO1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb0NoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVDb3B5RnJvbVNlbGVjdGlvbigpIHtcbiAgICB0aGlzLnNhbWVBc0NoZWNrZWQgPSAhdGhpcy5zYW1lQXNDaGVja2VkO1xuICAgIGlmICh0aGlzLnNhbWVBc0NoZWNrZWQpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpO1xuICAgICAgdGhpcy5ncm91cC5wYXRjaFZhbHVlKHRoaXMuYWRkcmVzc0Zyb21Gb3JtR3JvdXAodGhpcy5zYW1lQXNHcm91cCkpO1xuICAgICAgdGhpcy5ncm91cC5kaXNhYmxlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9DaGFuZ2VzKCk7XG4gICAgICB0aGlzLmdyb3VwLnBhdGNoVmFsdWUodGhpcy5vcmlnaW5hbEFkZHJlc3MpO1xuICAgICAgdGhpcy5ncm91cC5lbmFibGUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZHJlc3NGcm9tRm9ybUdyb3VwKGdyb3VwOiBGb3JtR3JvdXApOiBPRVBBQWRkcmVzcyB7XG4gICAgbGV0IGFkZHJlc3M6IE9FUEFBZGRyZXNzID0ge307XG4gICAgaWYgKGdyb3VwKSB7XG4gICAgICBhZGRyZXNzID0ge1xuICAgICAgICBsaW5lMTogZ3JvdXAuY29udHJvbHNbJ2xpbmUxJ10udmFsdWUsXG4gICAgICAgIGxpbmUyOiBncm91cC5jb250cm9sc1snbGluZTInXS52YWx1ZSxcbiAgICAgICAgY2l0eTogZ3JvdXAuY29udHJvbHNbJ2NpdHknXS52YWx1ZSxcbiAgICAgICAgc3RhdGU6IGdyb3VwLmNvbnRyb2xzWydzdGF0ZSddLnZhbHVlLFxuICAgICAgICBwb3N0YWxDb2RlOiAoZ3JvdXAuY29udHJvbHNbJ2NvdW50cnknXSAmJiBncm91cC5jb250cm9sc1snY291bnRyeSddLnZhbHVlICE9PSAnVVNBJykgPyBncm91cC5jb250cm9sc1snZm9yZWlnblppcCddOmdyb3VwLmNvbnRyb2xzWydwb3N0YWxDb2RlJ10udmFsdWUsXG4gICAgICAgIGZvcmVpZ25TdGF0ZTogZ3JvdXAuY29udHJvbHNbJ2ZvcmVpZ25TdGF0ZSddPyBncm91cC5jb250cm9sc1snZm9yZWlnblN0YXRlJ10udmFsdWU6bnVsbCxcbiAgICAgICAgY291bnRyeTogZ3JvdXAuY29udHJvbHNbJ2NvdW50cnknXSA/IGdyb3VwLmNvbnRyb2xzWydjb3VudHJ5J10udmFsdWU6bnVsbFxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWRkcmVzcztcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9DaGFuZ2VzKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5ncm91cC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGFkZHJlc3MgPT4ge1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MubGluZTEgPSBhZGRyZXNzLmxpbmUxO1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MubGluZTIgPSBhZGRyZXNzLmxpbmUyO1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MuY2l0eSA9IGFkZHJlc3MuY2l0eTtcbiAgICAgIHRoaXMub3JpZ2luYWxBZGRyZXNzLnN0YXRlID0gYWRkcmVzcy5zdGF0ZTtcbiAgICAgIHRoaXMub3JpZ2luYWxBZGRyZXNzLnBvc3RhbENvZGUgPSAoYWRkcmVzcy5jb3VudHJ5ICYmIGFkZHJlc3MuY291bnRyeSAhPT0gJ1VTQScpID8gYWRkcmVzcy5mb3JlaWduWmlwOmFkZHJlc3MucG9zdGFsQ29kZTtcbiAgICAgIHRoaXMub3JpZ2luYWxBZGRyZXNzLmZvcmVpZ25TdGF0ZSA9IGFkZHJlc3MuZm9yZWlnblN0YXRlID8gYWRkcmVzcy5mb3JlaWduU3RhdGUgOiBudWxsO1xuICAgICAgdGhpcy5vcmlnaW5hbEFkZHJlc3MuY291bnRyeSA9IGFkZHJlc3MuY291bnRyeSA/IGFkZHJlc3MuY291bnRyeSA6IG51bGw7XG4gICAgICBcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVGcm9tQ2hhbmdlcygpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwic2FtZUFzR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtuZ1N0eWxlXT1cInsgJ2ZvbnQtd2VpZ2h0Jzogc2FtZUFzQ2hlY2tlZCAmJiBncm91cC5kaXNhYmxlZCA/ICdib2xkJyA6ICcnIH1cIiBbZm9yXT1cImNvbXBvbmVudElkKydfQ29weUZyb21DaGVja2JveCdcIj5cbiAgICAgICAgICAgICAgICAgICAge3tzYW1lQXNMYWJlbH19IFxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2lkXT1cImNvbXBvbmVudElkKydfQ29weUZyb21DaGVja2JveCdcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJzYW1lQXNDaGVja2VkXCIgKGNoYW5nZSk9XCJ0b2dnbGVDb3B5RnJvbVNlbGVjdGlvbigpXCIgW2Rpc2FibGVkXT1cImdyb3VwLnBhcmVudD8uZGlzYWJsZWRcIi8+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiAqbmdJZj1cIiFzYW1lQXNHcm91cCB8fCAhc2FtZUFzQ2hlY2tlZFwiIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY29tcG9uZW50SWQrJ19MaW5lMUlucHV0J1wiPnt7YWRkcmVzc09uZUxhYmVsfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuY29udHJvbHNbJ2xpbmUxJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCIgXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImlzU2VhcmNoID8gJ3NlYXJjaCcgOiAndGV4dCdcIiBwbGFjZWhvbGRlcj1cIkFkZHJlc3NcIiBtYXhsZW5ndGg9XCI0MFwiIGZvcm1Db250cm9sTmFtZT1cImxpbmUxXCIgW21heGxlbmd0aF09XCJsaW5lMU1heExlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCsnX0xpbmUxSW5wdXQnXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ2xpbmUxJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57e2FkZHJlc3NPbmVMYWJlbH19IGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1snbGluZTEnXS5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj57e2FkZHJlc3NPbmVMYWJlbH19IGhhcyBleGNlZWRlZCBpdHMgbWF4aW11bSBsZW5ndGg8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIhaGlkZUxpbmUyXCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb21wb25lbnRJZCsnX0xpbmUySW5wdXQnXCI+e3thZGRyZXNzVHdvTGFiZWx9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW25nQ2xhc3NdPVwieydpcy1pbnZhbGlkJzpzaG93VmFsaWRhdGlvbiAmJiBncm91cC5jb250cm9sc1snbGluZTInXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cImlzU2VhcmNoID8gJ3NlYXJjaCcgOiAndGV4dCdcIiBwbGFjZWhvbGRlcj1cIkFkZHJlc3NcIiBtYXhsZW5ndGg9XCI0MFwiIGZvcm1Db250cm9sTmFtZT1cImxpbmUyXCIgW21heGxlbmd0aF09XCJsaW5lMk1heExlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJjb21wb25lbnRJZCsnX0xpbmUySW5wdXQnXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ2xpbmUyJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57e2FkZHJlc3NUd29MYWJlbH19IGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1snbGluZTInXS5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj57e2FkZHJlc3NUd29MYWJlbH19IGhhcyBleGNlZWRlZCBpdHMgbWF4aW11bSBsZW5ndGg8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImNvbXBvbmVudElkKydfQ2l0eUlucHV0J1wiPnt7Y2l0eUxhYmVsfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuY29udHJvbHNbJ2NpdHknXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIlxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJpc1NlYXJjaCA/ICdzZWFyY2gnIDogJ3RleHQnXCIgcGxhY2Vob2xkZXI9XCJDaXR5XCIgbWF4bGVuZ3RoPVwiMzBcIiBmb3JtQ29udHJvbE5hbWU9XCJjaXR5XCIgW21heGxlbmd0aF09XCJjaXR5TWF4TGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImNvbXBvbmVudElkKydfQ2l0eUlucHV0J1wiPlxuICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydjaXR5J10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj57e2NpdHlMYWJlbH19IGlzIHJlcXVpcmVkPC9zbWFsbD5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1snY2l0eSddLmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPnt7Y2l0eUxhYmVsfX0gaGFzIGV4Y2VlZGVkIGl0cyBtYXhpbXVtIGxlbmd0aDwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMlwiPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dTdGF0ZXMgJiYgKCFncm91cC5jb250cm9sc1snY291bnRyeSddIHx8IGdyb3VwLmdldCgnY291bnRyeScpPy52YWx1ZSA9PT0nVVNBJylcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb21wb25lbnRJZCsnX1N0YXRlU2VsZWN0J1wiPnt7c3RhdGVMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmNvbnRyb2xzWydzdGF0ZSddLnN0YXR1cyA9PT0gJ0lOVkFMSUQnfVwiIFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiQWRkcmVzc1N0YXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwic3RhdGVcIiBbaWRdPVwiY29tcG9uZW50SWQrJ19TdGF0ZVNlbGVjdCdcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlU3RhdGUgfHwgZ3JvdXAuZGlzYWJsZWQgPyAnJyA6IG51bGxcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBzIG9mIHVzU3RhdGVzXCIgW25nVmFsdWVdPVwic1wiPnt7c319PC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydzdGF0ZSddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+U3RhdGUgaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZ3JvdXAuY29udHJvbHNbJ2NvdW50cnknXSAgfHwgZ3JvdXAuZ2V0KCdjb3VudHJ5Jyk/LnZhbHVlID09PSdVU0EnXCIgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY29tcG9uZW50SWQrJ19aaXBJbnB1dCdcIj57e3ppcENvZGVMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmNvbnRyb2xzWydwb3N0YWxDb2RlJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCJcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiaXNTZWFyY2ggPyAnc2VhcmNoJyA6ICd0ZXh0J1wiIHBsYWNlaG9sZGVyPVwiWmlwIENvZGVcIiBmb3JtQ29udHJvbE5hbWU9XCJwb3N0YWxDb2RlXCIgW2lkXT1cImNvbXBvbmVudElkKydfWmlwSW5wdXQnXCIgbWFzaz1cIjAwMDAwXCI+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ3Bvc3RhbENvZGUnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7emlwQ29kZUxhYmVsfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydwb3N0YWxDb2RlJ10uaGFzRXJyb3IoJ21pbmxlbmd0aCcpXCI+e3t6aXBDb2RlTGFiZWx9fSBtdXN0IGNvbnRhaW4gZXhhY3RseSA1IGRpZ2l0czwvc21hbGw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydjb3VudHJ5J10gJiYgZ3JvdXAuZ2V0KCdjb3VudHJ5Jyk/LnZhbHVlICE9PSdVU0EnXCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImNvbXBvbmVudElkKydfRm9yZWlnblN0YXRlSW5wdXQnXCI+e3tmb3JlaWduU3RhdGVMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmNvbnRyb2xzWydmb3JlaWduU3RhdGUnXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJGb3JlaWduIFN0YXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZm9yZWlnblN0YXRlXCIgW2lkXT1cImNvbXBvbmVudElkKydfRm9yZWlnblN0YXRlSW5wdXQnXCIgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZVN0YXRlIHx8IGdyb3VwLmRpc2FibGVkID8gJycgOiBudWxsXCIgPlxuICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydmb3JlaWduU3RhdGUnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7Zm9yZWlnblN0YXRlTGFiZWx9fSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb21wb25lbnRJZCsnX2ZvcmVpZ25aaXBJbnB1dCdcIj57e2ZvcmVpZ25aaXBMYWJlbH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbbmdDbGFzc109XCJ7J2lzLWludmFsaWQnOnNob3dWYWxpZGF0aW9uICYmIGdyb3VwLmNvbnRyb2xzWydmb3JlaWduWmlwJ10uc3RhdHVzID09PSAnSU5WQUxJRCd9XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiRm9yZWlnbiBaaXAgQ29kZVwiIGZvcm1Db250cm9sTmFtZT1cImZvcmVpZ25aaXBcIiBbaWRdPVwiY29tcG9uZW50SWQrJ19mb3JlaWduWmlwSW5wdXQnXCIgID5cbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1snZm9yZWlnblppcCddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3tmb3JlaWduWmlwTGFiZWx9fSBpcyByZXF1aXJlZDwvc21hbGw+XG4gICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiZ3JvdXAuY29udHJvbHNbJ2ZvcmVpZ25aaXAnXS5oYXNFcnJvcignbWlubGVuZ3RoJylcIj57e2ZvcmVpZ25aaXBMYWJlbH19IG11c3QgY29udGFpbiBleGFjdGx5ID8gZGlnaXRzPC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PiBcbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImdyb3VwLmNvbnRyb2xzWydjb3VudHJ5J11cIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY29tcG9uZW50SWQrJ19Db3VudHJ5U2VsZWN0J1wiPnt7Y291bnRyeUxhYmVsfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIFtuZ0NsYXNzXT1cInsnaXMtaW52YWxpZCc6c2hvd1ZhbGlkYXRpb24gJiYgZ3JvdXAuY29udHJvbHNbJ2NvdW50cnknXS5zdGF0dXMgPT09ICdJTlZBTElEJ31cIiBcbiAgICAgICAgICAgICAgICBuYW1lPVwiQWRkcmVzc0NvdW50cnlcIiBmb3JtQ29udHJvbE5hbWU9XCJjb3VudHJ5XCIgW2lkXT1cImNvbXBvbmVudElkKydfQ291bnRyeVNlbGVjdCdcIiBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlU3RhdGUgfHwgZ3JvdXAuZGlzYWJsZWQgPyAnJyA6IG51bGxcIj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjIG9mIGNvdW50cmllc1wiIFtuZ1ZhbHVlXT1cImNcIj57e2N9fTwvb3B0aW9uPlxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJncm91cC5jb250cm9sc1snY291bnRyeSddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+Q291bnRyeXt7Y291bnRyeUxhYmVsfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -232,11 +232,11 @@ class AddressComponent {
|
|
|
232
232
|
this.subscription.unsubscribe();
|
|
233
233
|
}
|
|
234
234
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddressComponent, deps: [{ token: OepaAddressService }, { token: i1$1.OepaComponentIdService }], target: i0.ɵɵFactoryTarget.Component });
|
|
235
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AddressComponent, selector: "oepa-address", inputs: { group: "group", showValidation: "showValidation", addressOneLabel: "addressOneLabel", addressTwoLabel: "addressTwoLabel", cityLabel: "cityLabel", stateLabel: "stateLabel", zipCodeLabel: "zipCodeLabel", disableState: "disableState", isSearch: "isSearch", hideLine2: "hideLine2", line1MaxLength: "line1MaxLength", line2MaxLength: "line2MaxLength", cityMaxLength: "cityMaxLength", foreignStateLabel: "foreignStateLabel", foreignZipLabel: "foreignZipLabel", countryLabel: "countryLabel", sameAsGroup: "sameAsGroup", sameAsLabel: "sameAsLabel", sameAsChecked: "sameAsChecked" }, ngImport: i0, template: "<div *ngIf=\"sameAsGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [ngStyle]=\"{ 'font-weight': sameAsChecked && group.disabled ? 'bold' : '' }\" for=\"copyFromCheckbox\">\n {{sameAsLabel}} \n <input id=\"copyFromCheckbox\" type=\"checkbox\" [checked]=\"sameAsChecked\" (change)=\"toggleCopyFromSelection()\" [disabled]=\"group.parent?.disabled\"/>\n </label>\n </div>\n </div>\n </div>\n</div>\n<div *ngIf=\"!sameAsGroup || !sameAsChecked\" [formGroup]=\"group\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line1Input'\">{{addressOneLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line1'].status === 'INVALID'}\" \n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line1\" [maxlength]=\"line1MaxLength\"\n [id]=\"componentId+'_Line1Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('required')\">{{addressOneLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('maxlength')\">{{addressOneLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"!hideLine2\" class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line2Input'\">{{addressTwoLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line2'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line2\" [maxlength]=\"line2MaxLength\"\n [id]=\"componentId+'_Line2Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('required')\">{{addressTwoLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('maxlength')\">{{addressTwoLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CityInput'\">{{cityLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['city'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"City\" maxlength=\"30\" formControlName=\"city\" [maxlength]=\"cityMaxLength\"\n [id]=\"componentId+'_CityInput'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('required')\">{{cityLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('maxlength')\">{{cityLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n <div class=\"col-md-2\">\n <div *ngIf=\"showStates && (!group.controls['country'] || group.get('country')?.value ==='USA')\" class=\"form-group\">\n <label [for]=\"componentId+'_StateSelect'\">{{stateLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['state'].status === 'INVALID'}\" \n name=\"AddressState\" formControlName=\"state\" [id]=\"componentId+'_StateSelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let s of usStates\" [ngValue]=\"s\">{{s}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['state'].hasError('required')\">State is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div *ngIf=\"!group.controls['country'] || group.get('country')?.value ==='USA'\" class=\"form-group\">\n <label [for]=\"componentId+'_ZipInput'\">{{zipCodeLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['postalCode'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Zip Code\" formControlName=\"postalCode\" [id]=\"componentId+'_ZipInput'\" mask=\"00000\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('required')\">{{zipCodeLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('minlength')\">{{zipCodeLabel}} must contain exactly 5 digits</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"group.controls['country'] && group.get('country')?.value !=='USA'\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_ForeignStateInput'\">{{foreignStateLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignState'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign State\" formControlName=\"foreignState\" [id]=\"componentId+'_ForeignStateInput'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignState'].hasError('required')\">{{foreignStateLabel}} is required</small>\n \n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_foreignZipInput'\">{{foreignZipLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignZip'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign Zip Code\" formControlName=\"foreignZip\" [id]=\"componentId+'_foreignZipInput'\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('required')\">{{foreignZipLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('minlength')\">{{foreignZipLabel}} must contain exactly ? digits</small>\n </div> \n </div>\n </div>\n <div *ngIf=\"group.controls['country']\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CountrySelect'\">{{countryLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['country'].status === 'INVALID'}\" \n name=\"AddressCountry\" formControlName=\"country\" [id]=\"componentId+'_CountrySelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let c of countries\" [ngValue]=\"c\">{{c}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['country'].hasError('required')\">Country{{countryLabel}} is required</small>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] });
|
|
235
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AddressComponent, selector: "oepa-address", inputs: { group: "group", showValidation: "showValidation", addressOneLabel: "addressOneLabel", addressTwoLabel: "addressTwoLabel", cityLabel: "cityLabel", stateLabel: "stateLabel", zipCodeLabel: "zipCodeLabel", disableState: "disableState", isSearch: "isSearch", hideLine2: "hideLine2", line1MaxLength: "line1MaxLength", line2MaxLength: "line2MaxLength", cityMaxLength: "cityMaxLength", foreignStateLabel: "foreignStateLabel", foreignZipLabel: "foreignZipLabel", countryLabel: "countryLabel", sameAsGroup: "sameAsGroup", sameAsLabel: "sameAsLabel", sameAsChecked: "sameAsChecked" }, ngImport: i0, template: "<div *ngIf=\"sameAsGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [ngStyle]=\"{ 'font-weight': sameAsChecked && group.disabled ? 'bold' : '' }\" [for]=\"componentId+'_CopyFromCheckbox'\">\n {{sameAsLabel}} \n <input [id]=\"componentId+'_CopyFromCheckbox'\" type=\"checkbox\" [checked]=\"sameAsChecked\" (change)=\"toggleCopyFromSelection()\" [disabled]=\"group.parent?.disabled\"/>\n </label>\n </div>\n </div>\n </div>\n</div>\n<div *ngIf=\"!sameAsGroup || !sameAsChecked\" [formGroup]=\"group\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line1Input'\">{{addressOneLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line1'].status === 'INVALID'}\" \n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line1\" [maxlength]=\"line1MaxLength\"\n [id]=\"componentId+'_Line1Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('required')\">{{addressOneLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('maxlength')\">{{addressOneLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"!hideLine2\" class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line2Input'\">{{addressTwoLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line2'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line2\" [maxlength]=\"line2MaxLength\"\n [id]=\"componentId+'_Line2Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('required')\">{{addressTwoLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('maxlength')\">{{addressTwoLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CityInput'\">{{cityLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['city'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"City\" maxlength=\"30\" formControlName=\"city\" [maxlength]=\"cityMaxLength\"\n [id]=\"componentId+'_CityInput'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('required')\">{{cityLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('maxlength')\">{{cityLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n <div class=\"col-md-2\">\n <div *ngIf=\"showStates && (!group.controls['country'] || group.get('country')?.value ==='USA')\" class=\"form-group\">\n <label [for]=\"componentId+'_StateSelect'\">{{stateLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['state'].status === 'INVALID'}\" \n name=\"AddressState\" formControlName=\"state\" [id]=\"componentId+'_StateSelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let s of usStates\" [ngValue]=\"s\">{{s}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['state'].hasError('required')\">State is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div *ngIf=\"!group.controls['country'] || group.get('country')?.value ==='USA'\" class=\"form-group\">\n <label [for]=\"componentId+'_ZipInput'\">{{zipCodeLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['postalCode'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Zip Code\" formControlName=\"postalCode\" [id]=\"componentId+'_ZipInput'\" mask=\"00000\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('required')\">{{zipCodeLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('minlength')\">{{zipCodeLabel}} must contain exactly 5 digits</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"group.controls['country'] && group.get('country')?.value !=='USA'\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_ForeignStateInput'\">{{foreignStateLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignState'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign State\" formControlName=\"foreignState\" [id]=\"componentId+'_ForeignStateInput'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignState'].hasError('required')\">{{foreignStateLabel}} is required</small>\n \n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_foreignZipInput'\">{{foreignZipLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignZip'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign Zip Code\" formControlName=\"foreignZip\" [id]=\"componentId+'_foreignZipInput'\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('required')\">{{foreignZipLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('minlength')\">{{foreignZipLabel}} must contain exactly ? digits</small>\n </div> \n </div>\n </div>\n <div *ngIf=\"group.controls['country']\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CountrySelect'\">{{countryLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['country'].status === 'INVALID'}\" \n name=\"AddressCountry\" formControlName=\"country\" [id]=\"componentId+'_CountrySelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let c of countries\" [ngValue]=\"c\">{{c}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['country'].hasError('required')\">Country{{countryLabel}} is required</small>\n </div>\n </div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }] });
|
|
236
236
|
}
|
|
237
237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AddressComponent, decorators: [{
|
|
238
238
|
type: Component,
|
|
239
|
-
args: [{ selector: 'oepa-address', template: "<div *ngIf=\"sameAsGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [ngStyle]=\"{ 'font-weight': sameAsChecked && group.disabled ? 'bold' : '' }\" for=\"
|
|
239
|
+
args: [{ selector: 'oepa-address', template: "<div *ngIf=\"sameAsGroup\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [ngStyle]=\"{ 'font-weight': sameAsChecked && group.disabled ? 'bold' : '' }\" [for]=\"componentId+'_CopyFromCheckbox'\">\n {{sameAsLabel}} \n <input [id]=\"componentId+'_CopyFromCheckbox'\" type=\"checkbox\" [checked]=\"sameAsChecked\" (change)=\"toggleCopyFromSelection()\" [disabled]=\"group.parent?.disabled\"/>\n </label>\n </div>\n </div>\n </div>\n</div>\n<div *ngIf=\"!sameAsGroup || !sameAsChecked\" [formGroup]=\"group\">\n <div class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line1Input'\">{{addressOneLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line1'].status === 'INVALID'}\" \n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line1\" [maxlength]=\"line1MaxLength\"\n [id]=\"componentId+'_Line1Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('required')\">{{addressOneLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line1'].hasError('maxlength')\">{{addressOneLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"!hideLine2\" class=\"row\">\n <div class=\"col-md-12\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_Line2Input'\">{{addressTwoLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['line2'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Address\" maxlength=\"40\" formControlName=\"line2\" [maxlength]=\"line2MaxLength\"\n [id]=\"componentId+'_Line2Input'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('required')\">{{addressTwoLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['line2'].hasError('maxlength')\">{{addressTwoLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CityInput'\">{{cityLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['city'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"City\" maxlength=\"30\" formControlName=\"city\" [maxlength]=\"cityMaxLength\"\n [id]=\"componentId+'_CityInput'\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('required')\">{{cityLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['city'].hasError('maxlength')\">{{cityLabel}} has exceeded its maximum length</small>\n </div>\n </div>\n <div class=\"col-md-2\">\n <div *ngIf=\"showStates && (!group.controls['country'] || group.get('country')?.value ==='USA')\" class=\"form-group\">\n <label [for]=\"componentId+'_StateSelect'\">{{stateLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['state'].status === 'INVALID'}\" \n name=\"AddressState\" formControlName=\"state\" [id]=\"componentId+'_StateSelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let s of usStates\" [ngValue]=\"s\">{{s}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['state'].hasError('required')\">State is required</small>\n </div>\n </div>\n <div class=\"col-md-4\">\n <div *ngIf=\"!group.controls['country'] || group.get('country')?.value ==='USA'\" class=\"form-group\">\n <label [for]=\"componentId+'_ZipInput'\">{{zipCodeLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['postalCode'].status === 'INVALID'}\"\n [type]=\"isSearch ? 'search' : 'text'\" placeholder=\"Zip Code\" formControlName=\"postalCode\" [id]=\"componentId+'_ZipInput'\" mask=\"00000\">\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('required')\">{{zipCodeLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['postalCode'].hasError('minlength')\">{{zipCodeLabel}} must contain exactly 5 digits</small>\n </div>\n </div>\n </div>\n <div *ngIf=\"group.controls['country'] && group.get('country')?.value !=='USA'\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_ForeignStateInput'\">{{foreignStateLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignState'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign State\" formControlName=\"foreignState\" [id]=\"componentId+'_ForeignStateInput'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignState'].hasError('required')\">{{foreignStateLabel}} is required</small>\n \n </div>\n </div>\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_foreignZipInput'\">{{foreignZipLabel}}</label>\n <input class=\"form-control\" [ngClass]=\"{'is-invalid':showValidation && group.controls['foreignZip'].status === 'INVALID'}\"\n type=\"text\" placeholder=\"Foreign Zip Code\" formControlName=\"foreignZip\" [id]=\"componentId+'_foreignZipInput'\" >\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('required')\">{{foreignZipLabel}} is required</small>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['foreignZip'].hasError('minlength')\">{{foreignZipLabel}} must contain exactly ? digits</small>\n </div> \n </div>\n </div>\n <div *ngIf=\"group.controls['country']\" class=\"row\">\n <div class=\"col-md-6\">\n <div class=\"form-group\">\n <label [for]=\"componentId+'_CountrySelect'\">{{countryLabel}}</label>\n <select class=\"form-select\" [ngClass]=\"{'is-invalid':showValidation && group.controls['country'].status === 'INVALID'}\" \n name=\"AddressCountry\" formControlName=\"country\" [id]=\"componentId+'_CountrySelect'\" [attr.disabled]=\"disableState || group.disabled ? '' : null\">\n <option *ngFor=\"let c of countries\" [ngValue]=\"c\">{{c}}</option>\n </select>\n <small class=\"invalid-feedback\" *ngIf=\"group.controls['country'].hasError('required')\">Country{{countryLabel}} is required</small>\n </div>\n </div>\n </div>\n</div>" }]
|
|
240
240
|
}], ctorParameters: () => [{ type: OepaAddressService }, { type: i1$1.OepaComponentIdService }], propDecorators: { group: [{
|
|
241
241
|
type: Input
|
|
242
242
|
}], showValidation: [{
|