fx-form-builder-wrapper 2.0.25 → 2.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/lib/components/dropdown-with-other/dropdown-with-other.component.mjs +57 -15
- package/fesm2022/fx-form-builder-wrapper.mjs +66 -24
- package/fesm2022/fx-form-builder-wrapper.mjs.map +1 -1
- package/lib/components/dropdown-with-other/dropdown-with-other.component.d.ts +4 -1
- package/package.json +1 -1
|
@@ -99,13 +99,13 @@ export class DatePickerComponent extends FxBaseComponent {
|
|
|
99
99
|
return [FxValidatorService.required];
|
|
100
100
|
}
|
|
101
101
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.FxBuilderWrapperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
102
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatePickerComponent, isStandalone: true, selector: "lib-date-picker", viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"
|
|
102
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DatePickerComponent, isStandalone: true, selector: "lib-date-picker", viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"custom-date-picker relative\">\r\n <form [formGroup]=\"datePickerForm\">\r\n <!-- <p-calendar formControlName=\"date\" [showIcon]=\"true\" [minDate]=\"minDate\" [maxDate]=\"maxDate\"\r\n [iconDisplay]=\"'input'\" [showOnFocus]=\"false\" dateFormat=\"dd/mm/yy\" [showButtonBar]=\"true\"\r\n placeholder=\"{{ setting('placeHolder') }}\">\r\n <ng-template pTemplate=\"inputicon\">\r\n <span class=\"absolute right-0 pt-2 pr-2\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"cursor-pointer\">\r\n <path\r\n d=\"M19.5624 2.25991H18.1956V3.13582C18.1956 3.61948 17.7982 4.01173 17.3078 4.01173C16.8177 4.01173 16.4202 3.61948 16.4202 3.13582V2.25991H7.58001V3.13582C7.58001 3.61948 7.18253 4.01173 6.69244 4.01173C6.20209 4.01173 5.80486 3.61948 5.80486 3.13582V2.25991H4.43787C3.26107 2.2604 2.13252 2.72182 1.30042 3.54299C0.468323 4.36441 0.000507185 5.47813 0 6.63946V19.6204C0.000495266 20.7818 0.468304 21.8955 1.30042 22.7167C2.13252 23.5381 3.26107 23.9995 4.43787 24H19.5621C20.7389 23.9995 21.8675 23.5381 22.6996 22.7167C23.5317 21.8955 23.9995 20.7818 24 19.6204V6.63946C23.9995 5.47813 23.5317 4.36441 22.6996 3.54299C21.8675 2.72183 20.7389 2.26041 19.5621 2.25991H19.5624ZM19.5624 22.2482H4.43818C3.73262 22.246 3.05655 21.9686 2.55779 21.4761C2.05878 20.9839 1.77768 20.3167 1.77546 19.6204V9.05698H22.2252V19.6204C22.2229 20.3167 21.9419 20.9839 21.4428 21.4761C20.9441 21.9686 20.268 22.246 19.5624 22.2482ZM7.58001 2.25991H5.80486L5.80505 0.87591C5.80505 0.392251 6.20227 0 6.69262 0C7.18272 0 7.58019 0.392251 7.58019 0.87591L7.58001 2.25991ZM18.1956 2.25991H16.4202L16.4202 0.87591C16.4202 0.392251 16.8177 0 17.3078 0C17.7981 0 18.1953 0.392251 18.1953 0.87591L18.1956 2.25991Z\"\r\n fill=\"#F3A041\" />\r\n <rect x=\"5.33203\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"5.33203\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"10.3711\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"10.3711\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"15.4062\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"15.4062\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n </svg>\r\n </span>\r\n </ng-template>\r\n </p-calendar> -->\r\n <!-- <p-calendar formControlName=\"date\"\r\n dateFormat=\"dd/mm/yy\"\r\n placeholder=\"{{ setting('placeHolder') }}\"> -->\r\n <label for=\"date\">{{ setting('label') }}</label>\r\n <div class=\"relative\">\r\n <input type=\"date\" id=\"date\" name=\"date\" formControlName=\"date\" [min]=\"minDate\" [max]=\"maxDate\">\r\n </div>\r\n <!-- <label for=\"date\" class=\"placeholder\">Select Date</label> -->\r\n <!-- <ng-template pTemplate=\"inputicon\">\r\n <span class=\"absolute right-0 pt-2 pr-2\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"cursor-pointer\">\r\n <path\r\n d=\"M19.5624 2.25991H18.1956V3.13582C18.1956 3.61948 17.7982 4.01173 17.3078 4.01173C16.8177 4.01173 16.4202 3.61948 16.4202 3.13582V2.25991H7.58001V3.13582C7.58001 3.61948 7.18253 4.01173 6.69244 4.01173C6.20209 4.01173 5.80486 3.61948 5.80486 3.13582V2.25991H4.43787C3.26107 2.2604 2.13252 2.72182 1.30042 3.54299C0.468323 4.36441 0.000507185 5.47813 0 6.63946V19.6204C0.000495266 20.7818 0.468304 21.8955 1.30042 22.7167C2.13252 23.5381 3.26107 23.9995 4.43787 24H19.5621C20.7389 23.9995 21.8675 23.5381 22.6996 22.7167C23.5317 21.8955 23.9995 20.7818 24 19.6204V6.63946C23.9995 5.47813 23.5317 4.36441 22.6996 3.54299C21.8675 2.72183 20.7389 2.26041 19.5621 2.25991H19.5624ZM19.5624 22.2482H4.43818C3.73262 22.246 3.05655 21.9686 2.55779 21.4761C2.05878 20.9839 1.77768 20.3167 1.77546 19.6204V9.05698H22.2252V19.6204C22.2229 20.3167 21.9419 20.9839 21.4428 21.4761C20.9441 21.9686 20.268 22.246 19.5624 22.2482ZM7.58001 2.25991H5.80486L5.80505 0.87591C5.80505 0.392251 6.20227 0 6.69262 0C7.18272 0 7.58019 0.392251 7.58019 0.87591L7.58001 2.25991ZM18.1956 2.25991H16.4202L16.4202 0.87591C16.4202 0.392251 16.8177 0 17.3078 0C17.7981 0 18.1953 0.392251 18.1953 0.87591L18.1956 2.25991Z\"\r\n fill=\"#F3A041\" />\r\n <rect x=\"5.33203\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"5.33203\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"10.3711\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"10.3711\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"15.4062\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"15.4062\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n </svg>\r\n </span>\r\n </ng-template> -->\r\n <!-- </p-calendar> -->\r\n <div>\r\n <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Date is required.\r\n </small>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n</fx-component>", styles: [".cursor-pointer{cursor:pointer!important}input[type=date]{border-color:#ccc;width:100%;height:38px!important;padding:.5rem .75rem!important;border-radius:4px!important}input[type=date]::placeholder{color:#aaa}input[type=date]:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}input[type=date]::-webkit-calendar-picker-indicator{background:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f59e0b' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-2 .89-2 2v14c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 16H5V9h14v11z'/%3E%3C/svg%3E\") no-repeat center;background-size:20px 20px;cursor:pointer;opacity:.8}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}input[type=date]:not(:focus):invalid+.placeholder{color:gray;position:absolute;left:10px;top:8px;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: CalendarModule }] });
|
|
103
103
|
}
|
|
104
104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
105
105
|
type: Component,
|
|
106
|
-
args: [{ selector: 'lib-date-picker', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent, CalendarModule], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"
|
|
106
|
+
args: [{ selector: 'lib-date-picker', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent, CalendarModule], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <div class=\"custom-date-picker relative\">\r\n <form [formGroup]=\"datePickerForm\">\r\n <!-- <p-calendar formControlName=\"date\" [showIcon]=\"true\" [minDate]=\"minDate\" [maxDate]=\"maxDate\"\r\n [iconDisplay]=\"'input'\" [showOnFocus]=\"false\" dateFormat=\"dd/mm/yy\" [showButtonBar]=\"true\"\r\n placeholder=\"{{ setting('placeHolder') }}\">\r\n <ng-template pTemplate=\"inputicon\">\r\n <span class=\"absolute right-0 pt-2 pr-2\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"cursor-pointer\">\r\n <path\r\n d=\"M19.5624 2.25991H18.1956V3.13582C18.1956 3.61948 17.7982 4.01173 17.3078 4.01173C16.8177 4.01173 16.4202 3.61948 16.4202 3.13582V2.25991H7.58001V3.13582C7.58001 3.61948 7.18253 4.01173 6.69244 4.01173C6.20209 4.01173 5.80486 3.61948 5.80486 3.13582V2.25991H4.43787C3.26107 2.2604 2.13252 2.72182 1.30042 3.54299C0.468323 4.36441 0.000507185 5.47813 0 6.63946V19.6204C0.000495266 20.7818 0.468304 21.8955 1.30042 22.7167C2.13252 23.5381 3.26107 23.9995 4.43787 24H19.5621C20.7389 23.9995 21.8675 23.5381 22.6996 22.7167C23.5317 21.8955 23.9995 20.7818 24 19.6204V6.63946C23.9995 5.47813 23.5317 4.36441 22.6996 3.54299C21.8675 2.72183 20.7389 2.26041 19.5621 2.25991H19.5624ZM19.5624 22.2482H4.43818C3.73262 22.246 3.05655 21.9686 2.55779 21.4761C2.05878 20.9839 1.77768 20.3167 1.77546 19.6204V9.05698H22.2252V19.6204C22.2229 20.3167 21.9419 20.9839 21.4428 21.4761C20.9441 21.9686 20.268 22.246 19.5624 22.2482ZM7.58001 2.25991H5.80486L5.80505 0.87591C5.80505 0.392251 6.20227 0 6.69262 0C7.18272 0 7.58019 0.392251 7.58019 0.87591L7.58001 2.25991ZM18.1956 2.25991H16.4202L16.4202 0.87591C16.4202 0.392251 16.8177 0 17.3078 0C17.7981 0 18.1953 0.392251 18.1953 0.87591L18.1956 2.25991Z\"\r\n fill=\"#F3A041\" />\r\n <rect x=\"5.33203\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"5.33203\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"10.3711\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"10.3711\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"15.4062\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"15.4062\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n </svg>\r\n </span>\r\n </ng-template>\r\n </p-calendar> -->\r\n <!-- <p-calendar formControlName=\"date\"\r\n dateFormat=\"dd/mm/yy\"\r\n placeholder=\"{{ setting('placeHolder') }}\"> -->\r\n <label for=\"date\">{{ setting('label') }}</label>\r\n <div class=\"relative\">\r\n <input type=\"date\" id=\"date\" name=\"date\" formControlName=\"date\" [min]=\"minDate\" [max]=\"maxDate\">\r\n </div>\r\n <!-- <label for=\"date\" class=\"placeholder\">Select Date</label> -->\r\n <!-- <ng-template pTemplate=\"inputicon\">\r\n <span class=\"absolute right-0 pt-2 pr-2\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"cursor-pointer\">\r\n <path\r\n d=\"M19.5624 2.25991H18.1956V3.13582C18.1956 3.61948 17.7982 4.01173 17.3078 4.01173C16.8177 4.01173 16.4202 3.61948 16.4202 3.13582V2.25991H7.58001V3.13582C7.58001 3.61948 7.18253 4.01173 6.69244 4.01173C6.20209 4.01173 5.80486 3.61948 5.80486 3.13582V2.25991H4.43787C3.26107 2.2604 2.13252 2.72182 1.30042 3.54299C0.468323 4.36441 0.000507185 5.47813 0 6.63946V19.6204C0.000495266 20.7818 0.468304 21.8955 1.30042 22.7167C2.13252 23.5381 3.26107 23.9995 4.43787 24H19.5621C20.7389 23.9995 21.8675 23.5381 22.6996 22.7167C23.5317 21.8955 23.9995 20.7818 24 19.6204V6.63946C23.9995 5.47813 23.5317 4.36441 22.6996 3.54299C21.8675 2.72183 20.7389 2.26041 19.5621 2.25991H19.5624ZM19.5624 22.2482H4.43818C3.73262 22.246 3.05655 21.9686 2.55779 21.4761C2.05878 20.9839 1.77768 20.3167 1.77546 19.6204V9.05698H22.2252V19.6204C22.2229 20.3167 21.9419 20.9839 21.4428 21.4761C20.9441 21.9686 20.268 22.246 19.5624 22.2482ZM7.58001 2.25991H5.80486L5.80505 0.87591C5.80505 0.392251 6.20227 0 6.69262 0C7.18272 0 7.58019 0.392251 7.58019 0.87591L7.58001 2.25991ZM18.1956 2.25991H16.4202L16.4202 0.87591C16.4202 0.392251 16.8177 0 17.3078 0C17.7981 0 18.1953 0.392251 18.1953 0.87591L18.1956 2.25991Z\"\r\n fill=\"#F3A041\" />\r\n <rect x=\"5.33203\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"5.33203\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"10.3711\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"10.3711\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"15.4062\" y=\"11.5547\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n <rect x=\"15.4062\" y=\"16.5898\" width=\"2.96296\" height=\"2.96296\" rx=\"0.444444\" fill=\"#F3A041\" />\r\n </svg>\r\n </span>\r\n </ng-template> -->\r\n <!-- </p-calendar> -->\r\n <div>\r\n <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Date is required.\r\n </small>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n</fx-component>", styles: [".cursor-pointer{cursor:pointer!important}input[type=date]{border-color:#ccc;width:100%;height:38px!important;padding:.5rem .75rem!important;border-radius:4px!important}input[type=date]::placeholder{color:#aaa}input[type=date]:focus{border-color:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}input[type=date]::-webkit-calendar-picker-indicator{background:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f59e0b' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-2 .89-2 2v14c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 16H5V9h14v11z'/%3E%3C/svg%3E\") no-repeat center;background-size:20px 20px;cursor:pointer;opacity:.8}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}input[type=date]:not(:focus):invalid+.placeholder{color:gray;position:absolute;left:10px;top:8px;pointer-events:none}\n"] }]
|
|
107
107
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }], propDecorators: { fxComponent: [{
|
|
108
108
|
type: ViewChild,
|
|
109
109
|
args: ['fxComponent']
|
|
110
110
|
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQWlCakM7SUFBK0I7SUFBeUI7SUFoQnBFLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUM1QixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2QsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDTyxXQUFXLENBQWU7SUFDNUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDekMsYUFB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IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRnhCYXNlQ29tcG9uZW50LCBGeENvbXBvbmVudCwgRnhTZXR0aW5nLCBGeFN0cmluZ1NldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IENhbGVuZGFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGF0ZS1waWNrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnhDb21wb25lbnQsIENhbGVuZGFyTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEZ4QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgLy8gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8vICBtYXhEYXRlICA9IG5ldyBEYXRlKCk7XHJcbm1pbkRhdGUhOiBzdHJpbmc7XHJcbm1heERhdGUhOiBzdHJpbmc7XHJcbiAgIHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgQFZpZXdDaGlsZCgnZnhDb21wb25lbnQnKSBmeENvbXBvbmVudCE6IEZ4Q29tcG9uZW50O1xyXG4gICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuICAgIGRhdGVQaWNrZXJNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG4gICBcclxuXHJcblxyXG4gICAgcHVibGljIGRhdGVQaWNrZXJGb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgIGRhdGU6IFsnJyxbXV0sXHJcbiAgICAgfSlcclxuXHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQscHJpdmF0ZSBmeEJ1aWxkZXJXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UpIHtcclxuICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICB0aGlzLm9uSW5pdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuZGF0ZVBpY2tlckZvcm0pO1xyXG4gICAgICB9KTtcclxuICAgICBcclxuICAgIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZGF0ZVBpY2tlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICAgICAgaWYgKGtleS5pbmNsdWRlcygnbGliLWRhdGUtcGlja2VyJykpIHtcclxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJNYXAuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gWW91IGNhbiBub3cgdXNlIGRhdGVQaWNrZXJNYXAgYXMgbmVlZGVkXHJcbiAgICBjb25zb2xlLmxvZygnRGF0ZSBQaWNrZXIgVmFyaWFibGVzOicsIHRoaXMuZGF0ZVBpY2tlck1hcCk7XHJcbiAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIC8vIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcclxuICAgIC8vIHRoaXMubWluRGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSAtIDMwKTtcclxuXHJcbiAgICAvLyB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAvLyB0aGlzLm1heERhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyAzMCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpIC0gMzApKSk7XHJcbiAgdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIDMwKSkpO1xyXG4gICAgdGhpcy5nZXRSYW5nZVZhbHVlcygpO1xyXG5cclxuICB9XHJcblxyXG4gIGdldCBkYXRlQ29udHJvbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpO1xyXG4gIH1cclxuXHJcbiAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZnhDb21wb25lbnQ/LmZ4RGF0YT8ubmFtZTtcclxuICAgIGlmKGtleSl7XHJcbiAgICAgIHRoaXMuZGF0ZVBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7ZGF0ZTp0aGlzLmRhdGVQaWNrZXJNYXAuZ2V0KGtleSl9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q29udGV4dEJhc2VJZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZ2VWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLmh0dHAuZ2V0PGFueT4odGhpcy5zZXR0aW5nKCdhcGlVUkwnKSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIFxyXG4gICAgICBjb25zdCBtaW5PZmZzZXQgPSByZXNwb25zZVt0aGlzLnNldHRpbmcoJ21pbkRhdGVLZXknKV0gfHwgdGhpcy5zZXR0aW5nKCdtaW5WYWxpZGF0aW9uJyk7XHJcbiAgICAgIGNvbnN0IG1heE9mZnNldCA9IHJlc3BvbnNlW3RoaXMuc2V0dGluZygnbWF4RGF0ZUtleScpXSB8fCB0aGlzLnNldHRpbmcoJ21heFZhbGlkYXRpb24nKTtcclxuICBcclxuICAgICAgLy8gdGhpcy5taW5EYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgICAvLyB0aGlzLm1pbkRhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyBtaW5PZmZzZXQpO1xyXG4gIFxyXG4gICAgICAvLyB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAgIC8vIHRoaXMubWF4RGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSArIG1heE9mZnNldCk7XHJcblxyXG4gICAgICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgKyBtaW5PZmZzZXQpKSk7XHJcbiAgdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIG1heE9mZnNldCkpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTsgLy8gXCIyMDI1LTA4LTIyXCJcclxufVxyXG4gIFxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWluVmFsaWRhdGlvbicsICR0aXRsZTogJ01pbiBWYWxpZGF0aW9uJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21heFZhbGlkYXRpb24nLCAkdGl0bGU6ICdNYXggVmFsaWRhdGlvbicsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdhcGlVUkwnLCAkdGl0bGU6ICdBUEkgVXJsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21pbkRhdGVLZXknLCAkdGl0bGU6ICdNaW4gUmFuZ2UgQVBJIEtleScsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtYXhEYXRlS2V5JywgJHRpdGxlOiAnTWF4IFJhbmdlIEFQSSBLZXknLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncGxhY2VIb2xkZXInLCAkdGl0bGU6ICdQbGFjZWhvbGRlcicsIHZhbHVlOiAnU2VsZWN0IERhdGUnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2xhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgIFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICAgICAgfVxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciByZWxhdGl2ZVwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkYXRlUGlja2VyRm9ybVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxyXG4gICAgICA8IS0tIDxwLWNhbGVuZGFyICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgW2ljb25EaXNwbGF5XT1cIidpbnB1dCdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIiBbc2hvd0J1dHRvbkJhcl09XCJ0cnVlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHNldHRpbmcoJ3BsYWNlSG9sZGVyJykgfX1cIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgICAgICAgPCEtLSA8cC1jYWxlbmRhciAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2V0dGluZygncGxhY2VIb2xkZXInKSB9fVwiPiAtLT5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJcIiBjbGFzcz1cImlucHV0LXRpdGxlXCI+e3sgc2V0dGluZygnbGFiZWwnKSB9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJkYXRlXCIgaWQ9XCJkYXRlXCIgbmFtZT1cImRhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgIFttaW5dPVwibWluRGF0ZVwiIFttYXhdPVwibWF4RGF0ZVwiPlxyXG4gICAgICAgIDwhLS0gPGxhYmVsIGZvcj1cImRhdGVcIiBjbGFzcz1cInBsYWNlaG9sZGVyXCI+U2VsZWN0IERhdGU8L2xhYmVsPiAtLT5cclxuICAgICAgICA8IS0tIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJpbnB1dGljb25cIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtMCBwdC0yIHByLTJcIj5cclxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTE5LjU2MjQgMi4yNTk5MUgxOC4xOTU2VjMuMTM1ODJDMTguMTk1NiAzLjYxOTQ4IDE3Ljc5ODIgNC4wMTE3MyAxNy4zMDc4IDQuMDExNzNDMTYuODE3NyA0LjAxMTczIDE2LjQyMDIgMy42MTk0OCAxNi40MjAyIDMuMTM1ODJWMi4yNTk5MUg3LjU4MDAxVjMuMTM1ODJDNy41ODAwMSAzLjYxOTQ4IDcuMTgyNTMgNC4wMTE3MyA2LjY5MjQ0IDQuMDExNzNDNi4yMDIwOSA0LjAxMTczIDUuODA0ODYgMy42MTk0OCA1LjgwNDg2IDMuMTM1ODJWMi4yNTk5MUg0LjQzNzg3QzMuMjYxMDcgMi4yNjA0IDIuMTMyNTIgMi43MjE4MiAxLjMwMDQyIDMuNTQyOTlDMC40NjgzMjMgNC4zNjQ0MSAwLjAwMDUwNzE4NSA1LjQ3ODEzIDAgNi42Mzk0NlYxOS42MjA0QzAuMDAwNDk1MjY2IDIwLjc4MTggMC40NjgzMDQgMjEuODk1NSAxLjMwMDQyIDIyLjcxNjdDMi4xMzI1MiAyMy41MzgxIDMuMjYxMDcgMjMuOTk5NSA0LjQzNzg3IDI0SDE5LjU2MjFDMjAuNzM4OSAyMy45OTk1IDIxLjg2NzUgMjMuNTM4MSAyMi42OTk2IDIyLjcxNjdDMjMuNTMxNyAyMS44OTU1IDIzLjk5OTUgMjAuNzgxOCAyNCAxOS42MjA0VjYuNjM5NDZDMjMuOTk5NSA1LjQ3ODEzIDIzLjUzMTcgNC4zNjQ0MSAyMi42OTk2IDMuNTQyOTlDMjEuODY3NSAyLjcyMTgzIDIwLjczODkgMi4yNjA0MSAxOS41NjIxIDIuMjU5OTFIMTkuNTYyNFpNMTkuNTYyNCAyMi4yNDgySDQuNDM4MThDMy43MzI2MiAyMi4yNDYgMy4wNTY1NSAyMS45Njg2IDIuNTU3NzkgMjEuNDc2MUMyLjA1ODc4IDIwLjk4MzkgMS43Nzc2OCAyMC4zMTY3IDEuNzc1NDYgMTkuNjIwNFY5LjA1Njk4SDIyLjIyNTJWMTkuNjIwNEMyMi4yMjI5IDIwLjMxNjcgMjEuOTQxOSAyMC45ODM5IDIxLjQ0MjggMjEuNDc2MUMyMC45NDQxIDIxLjk2ODYgMjAuMjY4IDIyLjI0NiAxOS41NjI0IDIyLjI0ODJaTTcuNTgwMDEgMi4yNTk5MUg1LjgwNDg2TDUuODA1MDUgMC44NzU5MUM1LjgwNTA1IDAuMzkyMjUxIDYuMjAyMjcgMCA2LjY5MjYyIDBDNy4xODI3MiAwIDcuNTgwMTkgMC4zOTIyNTEgNy41ODAxOSAwLjg3NTkxTDcuNTgwMDEgMi4yNTk5MVpNMTguMTk1NiAyLjI1OTkxSDE2LjQyMDJMMTYuNDIwMiAwLjg3NTkxQzE2LjQyMDIgMC4zOTIyNTEgMTYuODE3NyAwIDE3LjMwNzggMEMxNy43OTgxIDAgMTguMTk1MyAwLjM5MjI1MSAxOC4xOTUzIDAuODc1OTFMMTguMTk1NiAyLjI1OTkxWlwiXHJcbiAgICAgICAgICAgICAgICBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjUuMzMyMDNcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTAuMzcxMVwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxNS40MDYyXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+IC0tPlxyXG4gICAgICA8IS0tIDwvcC1jYWxlbmRhcj4gLS0+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8c21hbGwgKm5nSWY9XCJkYXRlUGlja2VyRm9ybS5nZXQoJ2RhdGUnKT8udG91Y2hlZCAmJiBkYXRlUGlja2VyRm9ybS5nZXQoJ2RhdGUnKT8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+XHJcbiAgICAgICAgRGF0ZSBpcyByZXF1aXJlZC5cclxuICAgICAgPC9zbWFsbD5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9meC1jb21wb25lbnQ+Il19
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQWlCakM7SUFBK0I7SUFBeUI7SUFoQnBFLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUM1QixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2QsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDTyxXQUFXLENBQWU7SUFDNUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDekMsYUFB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IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRnhCYXNlQ29tcG9uZW50LCBGeENvbXBvbmVudCwgRnhTZXR0aW5nLCBGeFN0cmluZ1NldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IENhbGVuZGFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGF0ZS1waWNrZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnhDb21wb25lbnQsIENhbGVuZGFyTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEZ4QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgLy8gIG1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8vICBtYXhEYXRlICA9IG5ldyBEYXRlKCk7XHJcbm1pbkRhdGUhOiBzdHJpbmc7XHJcbm1heERhdGUhOiBzdHJpbmc7XHJcbiAgIHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgQFZpZXdDaGlsZCgnZnhDb21wb25lbnQnKSBmeENvbXBvbmVudCE6IEZ4Q29tcG9uZW50O1xyXG4gICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuICAgIGRhdGVQaWNrZXJNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG4gICBcclxuXHJcblxyXG4gICAgcHVibGljIGRhdGVQaWNrZXJGb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgIGRhdGU6IFsnJyxbXV0sXHJcbiAgICAgfSlcclxuXHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQscHJpdmF0ZSBmeEJ1aWxkZXJXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UpIHtcclxuICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICB0aGlzLm9uSW5pdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuZGF0ZVBpY2tlckZvcm0pO1xyXG4gICAgICB9KTtcclxuICAgICBcclxuICAgIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZGF0ZVBpY2tlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICAgICAgaWYgKGtleS5pbmNsdWRlcygnbGliLWRhdGUtcGlja2VyJykpIHtcclxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJNYXAuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gWW91IGNhbiBub3cgdXNlIGRhdGVQaWNrZXJNYXAgYXMgbmVlZGVkXHJcbiAgICBjb25zb2xlLmxvZygnRGF0ZSBQaWNrZXIgVmFyaWFibGVzOicsIHRoaXMuZGF0ZVBpY2tlck1hcCk7XHJcbiAgfSk7XHJcblxyXG5cclxuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIC8vIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcclxuICAgIC8vIHRoaXMubWluRGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSAtIDMwKTtcclxuXHJcbiAgICAvLyB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAvLyB0aGlzLm1heERhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyAzMCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpIC0gMzApKSk7XHJcbiAgdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIDMwKSkpO1xyXG4gICAgdGhpcy5nZXRSYW5nZVZhbHVlcygpO1xyXG5cclxuICB9XHJcblxyXG4gIGdldCBkYXRlQ29udHJvbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpO1xyXG4gIH1cclxuXHJcbiAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZnhDb21wb25lbnQ/LmZ4RGF0YT8ubmFtZTtcclxuICAgIGlmKGtleSl7XHJcbiAgICAgIHRoaXMuZGF0ZVBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7ZGF0ZTp0aGlzLmRhdGVQaWNrZXJNYXAuZ2V0KGtleSl9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q29udGV4dEJhc2VJZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZ2VWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLmh0dHAuZ2V0PGFueT4odGhpcy5zZXR0aW5nKCdhcGlVUkwnKSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIFxyXG4gICAgICBjb25zdCBtaW5PZmZzZXQgPSByZXNwb25zZVt0aGlzLnNldHRpbmcoJ21pbkRhdGVLZXknKV0gfHwgdGhpcy5zZXR0aW5nKCdtaW5WYWxpZGF0aW9uJyk7XHJcbiAgICAgIGNvbnN0IG1heE9mZnNldCA9IHJlc3BvbnNlW3RoaXMuc2V0dGluZygnbWF4RGF0ZUtleScpXSB8fCB0aGlzLnNldHRpbmcoJ21heFZhbGlkYXRpb24nKTtcclxuICBcclxuICAgICAgLy8gdGhpcy5taW5EYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgICAvLyB0aGlzLm1pbkRhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyBtaW5PZmZzZXQpO1xyXG4gIFxyXG4gICAgICAvLyB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAgIC8vIHRoaXMubWF4RGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSArIG1heE9mZnNldCk7XHJcblxyXG4gICAgICAgIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgKyBtaW5PZmZzZXQpKSk7XHJcbiAgdGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIG1heE9mZnNldCkpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gIHJldHVybiBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXTsgLy8gXCIyMDI1LTA4LTIyXCJcclxufVxyXG4gIFxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWluVmFsaWRhdGlvbicsICR0aXRsZTogJ01pbiBWYWxpZGF0aW9uJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21heFZhbGlkYXRpb24nLCAkdGl0bGU6ICdNYXggVmFsaWRhdGlvbicsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdhcGlVUkwnLCAkdGl0bGU6ICdBUEkgVXJsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21pbkRhdGVLZXknLCAkdGl0bGU6ICdNaW4gUmFuZ2UgQVBJIEtleScsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtYXhEYXRlS2V5JywgJHRpdGxlOiAnTWF4IFJhbmdlIEFQSSBLZXknLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncGxhY2VIb2xkZXInLCAkdGl0bGU6ICdQbGFjZWhvbGRlcicsIHZhbHVlOiAnU2VsZWN0IERhdGUnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2xhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgIFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICAgICAgfVxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImN1c3RvbS1kYXRlLXBpY2tlciByZWxhdGl2ZVwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkYXRlUGlja2VyRm9ybVwiPlxyXG4gICAgICA8IS0tIDxwLWNhbGVuZGFyICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgW2ljb25EaXNwbGF5XT1cIidpbnB1dCdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIiBbc2hvd0J1dHRvbkJhcl09XCJ0cnVlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHNldHRpbmcoJ3BsYWNlSG9sZGVyJykgfX1cIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgICAgICAgPCEtLSA8cC1jYWxlbmRhciAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2V0dGluZygncGxhY2VIb2xkZXInKSB9fVwiPiAtLT5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZGF0ZVwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGlkPVwiZGF0ZVwiIG5hbWU9XCJkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiICBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxsYWJlbCBmb3I9XCJkYXRlXCIgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlNlbGVjdCBEYXRlPC9sYWJlbD4gLS0+XHJcbiAgICAgICAgPCEtLSA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuICAgICAgPCEtLSA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgPGRpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LnRvdWNoZWQgJiYgZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICAgIERhdGUgaXMgcmVxdWlyZWQuXHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuXHJcbjwvZngtY29tcG9uZW50PiJdfQ==
|
|
@@ -1,36 +1,39 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, inject } from '@angular/core';
|
|
3
|
-
import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { FxBaseComponent, FxComponent, FxStringSetting, FxValidatorService } from '@instantsys-labs/fx';
|
|
3
|
+
import { FormBuilder, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
4
|
+
import { FxBaseComponent, FxComponent, FxSelectSetting, FxStringSetting, FxValidatorService } from '@instantsys-labs/fx';
|
|
5
5
|
import { CalendarModule } from 'primeng/calendar';
|
|
6
6
|
import { Subject, takeUntil } from 'rxjs';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/common/http";
|
|
9
9
|
import * as i2 from "../../fx-builder-wrapper.service";
|
|
10
|
-
import * as i3 from "@
|
|
11
|
-
import * as i4 from "@angular/
|
|
10
|
+
import * as i3 from "@instantsys-labs/core";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
import * as i5 from "@angular/forms";
|
|
12
13
|
export class DropdownWithOtherComponent extends FxBaseComponent {
|
|
13
14
|
cdr;
|
|
14
15
|
http;
|
|
15
16
|
fxBuilderWrapperService;
|
|
17
|
+
fxApiService;
|
|
16
18
|
fb = inject(FormBuilder);
|
|
17
19
|
destroy$ = new Subject();
|
|
18
20
|
formObject = {};
|
|
19
21
|
options = [
|
|
20
|
-
{ optionValue: '1', optionName: '
|
|
21
|
-
{ optionValue: '2', optionName: '
|
|
22
|
+
{ optionValue: 'Clinical Notes 1', optionName: 'Clinical Notes 1' },
|
|
23
|
+
{ optionValue: 'Clinical Notes 2', optionName: 'Clinical Notes 2' },
|
|
24
|
+
{ optionValue: 'Clinical Notes 3', optionName: 'Clinical Notes 3' },
|
|
22
25
|
{ optionValue: 'other', optionName: 'Other' }
|
|
23
26
|
];
|
|
24
27
|
dropDownForm = this.fb.group({
|
|
25
28
|
selectedOption: ['', []],
|
|
26
|
-
otherInput: ['',
|
|
27
|
-
// config:['',[]]
|
|
29
|
+
otherInput: [{ value: '', disabled: true }],
|
|
28
30
|
});
|
|
29
|
-
constructor(cdr, http, fxBuilderWrapperService) {
|
|
31
|
+
constructor(cdr, http, fxBuilderWrapperService, fxApiService) {
|
|
30
32
|
super(cdr);
|
|
31
33
|
this.cdr = cdr;
|
|
32
34
|
this.http = http;
|
|
33
35
|
this.fxBuilderWrapperService = fxBuilderWrapperService;
|
|
36
|
+
this.fxApiService = fxApiService;
|
|
34
37
|
this.onInit.subscribe(() => {
|
|
35
38
|
this._register(this.dropDownForm);
|
|
36
39
|
});
|
|
@@ -52,23 +55,62 @@ export class DropdownWithOtherComponent extends FxBaseComponent {
|
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
});
|
|
58
|
+
// this.dropDownForm.get('selectedOption')?.valueChanges.subscribe(value => {
|
|
59
|
+
// const otherControl = this.dropDownForm.get('otherInput');
|
|
60
|
+
// if (value === 'other') {
|
|
61
|
+
// otherControl?.enable();
|
|
62
|
+
// } else {
|
|
63
|
+
// otherControl?.disable();
|
|
64
|
+
// otherControl?.reset();
|
|
65
|
+
// }
|
|
66
|
+
// });
|
|
67
|
+
// const serviceUrl = this.fxApiService.getServiceUrl(this.setting('serviceName'));
|
|
68
|
+
// this.getOptions(serviceUrl,this.setting('clinicalNotesURL'));
|
|
69
|
+
this.dropDownForm.get('selectedOption')?.valueChanges.subscribe(value => {
|
|
70
|
+
const otherControl = this.dropDownForm.get('otherInput');
|
|
71
|
+
if (value === 'other') {
|
|
72
|
+
otherControl?.enable();
|
|
73
|
+
otherControl?.setValidators([Validators.required]);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
otherControl?.disable();
|
|
77
|
+
otherControl?.reset();
|
|
78
|
+
otherControl?.clearValidators(); //
|
|
79
|
+
}
|
|
80
|
+
otherControl?.updateValueAndValidity(); //
|
|
81
|
+
otherControl?.markAsTouched();
|
|
82
|
+
});
|
|
55
83
|
}
|
|
56
84
|
settings() {
|
|
57
85
|
return [
|
|
58
|
-
new FxStringSetting({ key: '
|
|
86
|
+
new FxStringSetting({ key: 'clinicalNotesURL', $title: 'API Url', value: '' }),
|
|
59
87
|
new FxStringSetting({ key: 'select-label', $title: 'Label', value: '' }),
|
|
60
88
|
new FxStringSetting({ key: 'other-label', $title: 'Other Label', value: '' }),
|
|
61
89
|
new FxStringSetting({ key: 'other-placeholder', $title: 'Other Placeholder', value: '' }),
|
|
90
|
+
new FxSelectSetting({ key: 'serviceName', $title: 'Service', value: '' }, [{ option: 'User Service', value: 'user_service' }, { option: 'Patient Service', value: 'patient_service' }, { option: 'Workflow Service', value: 'workflow_service' }]),
|
|
91
|
+
// new FxSelectSetting({key: 'service', $title: 'Service', value: 'local'}, [{option: 'Local', value: 'local'}, {option: 'QA', value: 'qa'},{option: 'UAT', value: 'uat'},{option: 'Production', value: 'prod'}]),
|
|
62
92
|
];
|
|
63
93
|
}
|
|
64
94
|
validations() {
|
|
65
95
|
return [FxValidatorService.required];
|
|
66
96
|
}
|
|
67
|
-
|
|
68
|
-
|
|
97
|
+
getOptions(serviceUrl, url) {
|
|
98
|
+
const finalUrl = serviceUrl + url;
|
|
99
|
+
this.http.get(finalUrl).subscribe({
|
|
100
|
+
next: (response) => {
|
|
101
|
+
this.options = response;
|
|
102
|
+
console.log('Options:', this.options);
|
|
103
|
+
},
|
|
104
|
+
error: (err) => {
|
|
105
|
+
console.error('Error fetching options', err);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownWithOtherComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.FxBuilderWrapperService }, { token: i3.ApiServiceRegistry }], target: i0.ɵɵFactoryTarget.Component });
|
|
110
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownWithOtherComponent, isStandalone: true, selector: "dropdown-with-other", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <!-- <div class=\"flex justify-content-center relative\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-column gap-2\">\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <input\r\n *ngIf=\"dropDownForm.get('selectedOption')?.value === 'other'\"\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"enter other notes\"\r\n class=\"border p-2 rounded flex-1\"\r\n />\r\n\r\n \r\n </form>\r\n </div> -->\r\n\r\n <div class=\"flex justify-center custom-dropdown\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-row gap-4 items-start\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n\r\n <!-- <label class=\"mb-1 font-semibold text-sm\"></label> -->\r\n <span class=\"input-label dark:text-gray-300\">{{ setting('select-label') }}</span>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded w-full\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <!-- Other input (only if 'Other' selected) -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n <label class=\"input-label dark:text-gray-300\">{{ setting('other-label') }}</label>\r\n <div class=\"relative\">\r\n <input\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n />\r\n </div>\r\n <small *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Other is required.\r\n </small>\r\n </div>\r\n </div>\r\n\r\n \r\n </form>\r\n</div>\r\n\r\n\r\n</fx-component>\r\n\r\n <!-- <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Date is required.\r\n </small> -->", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:is() .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:is() .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:is() .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:is() .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}.confirmation-dialog .p-dialog-content{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: CalendarModule }] });
|
|
69
111
|
}
|
|
70
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownWithOtherComponent, decorators: [{
|
|
71
113
|
type: Component,
|
|
72
|
-
args: [{ selector: 'dropdown-with-other', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent, CalendarModule], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <!-- <div class=\"flex justify-content-center relative\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-column gap-2\">\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <input\r\n *ngIf=\"dropDownForm.get('selectedOption')?.value === 'other'\"\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"enter other notes\"\r\n class=\"border p-2 rounded flex-1\"\r\n />\r\n\r\n \r\n </form>\r\n </div> -->\r\n\r\n <div class=\"flex justify-center\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-row gap-4 items-start\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <label class=\"mb-1 font-semibold text-sm\">{{ setting('select-label') }}</
|
|
73
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }] });
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQWEsZUFBZSxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpJLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBUzFDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBZ0J6QztJQUErQjtJQUF5QjtJQWZ0RSxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQzFDLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsT0FBTyxHQUFHO1FBQ1QsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVB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Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZ4QmFzZUNvbXBvbmVudCwgRnhDb21wb25lbnQsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFZhbGlkYXRpb24sIEZ4VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Ryb3Bkb3duLXdpdGgtb3RoZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIEZ4Q29tcG9uZW50LCBDYWxlbmRhck1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLXdpdGgtb3RoZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kcm9wZG93bi13aXRoLW90aGVyLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bldpdGhPdGhlckNvbXBvbmVudCBleHRlbmRzIEZ4QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbnByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG5wcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuZm9ybU9iamVjdDogb2JqZWN0ID0ge307XHJcbm9wdGlvbnMgPSBbXHJcbiB7IG9wdGlvblZhbHVlOiAnMScsIG9wdGlvbk5hbWU6ICdPcHRpb24gMScgfSxcclxuICAgICAgeyBvcHRpb25WYWx1ZTogJzInLCBvcHRpb25OYW1lOiAnT3B0aW9uIDInIH0sXHJcbiAgICAgIHsgb3B0aW9uVmFsdWU6ICdvdGhlcicsIG9wdGlvbk5hbWU6ICdPdGhlcicgfVxyXG5dO1xyXG5cclxuICAgICAgcHVibGljIGRyb3BEb3duRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgIHNlbGVjdGVkT3B0aW9uOiBbJycsW11dLFxyXG4gICAgICAgICBvdGhlcklucHV0OlsnJyxbXV0sXHJcbiAgICAgICAgLy8gIGNvbmZpZzpbJycsW11dXHJcbiAgICAgICB9KVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZWdpc3Rlcih0aGlzLmRyb3BEb3duRm9ybSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICBcclxuICAgICAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCk9PntcclxuIHRoaXMuZHJvcERvd25Gb3JtLnBhdGNoVmFsdWUodGhpcy5mb3JtT2JqZWN0KTtcclxuICAgIH0sMTAwKVxyXG4gICBcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgIFxyXG4gICBcclxuICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ2Ryb3Bkb3duLXdpdGgtb3RoZXInKSkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtT2JqZWN0ID0gdmFsdWU7XHJcbiAgICAgICAgIH1cclxuICAgICAgIH1cclxuICB9KVxyXG59XHJcblxyXG4gICAgICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2FwaVVSTCcsICR0aXRsZTogJ0FQSSBVcmwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnc2VsZWN0LWxhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJycgfSksIFxyXG4gICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ290aGVyLWxhYmVsJywgJHRpdGxlOiAnT3RoZXIgTGFiZWwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ290aGVyLXBsYWNlaG9sZGVyJywgJHRpdGxlOiAnT3RoZXIgUGxhY2Vob2xkZXInLCB2YWx1ZTogJycgfSksICAgICAgICAgICBcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfVxyXG4gICAgICBcclxuICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgICAgcmV0dXJuIFtGeFZhbGlkYXRvclNlcnZpY2UucmVxdWlyZWRdO1xyXG4gICAgICAgIH1cclxuXHJcbn1cclxuIiwiPGZ4LWNvbXBvbmVudCBbZnhEYXRhXT1cImZ4RGF0YVwiICNmeENvbXBvbmVudD5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcmVsYXRpdmVcIj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZHJvcERvd25Gb3JtXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0yXCI+XHJcbiAgIDxsYWJlbCBmb3I9XCJcIiBjbGFzcz1cImlucHV0LXRpdGxlXCI+e3sgc2V0dGluZygnbGFiZWwnKSB9fTwvbGFiZWw+XHJcbiAgPHNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZE9wdGlvblwiIGNsYXNzPVwiYm9yZGVyIHAtMiByb3VuZGVkXCI+XHJcbiAgICA8b3B0aW9uICB2YWx1ZT1cIlwiPlNlbGVjdDwvb3B0aW9uPlxyXG4gICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uLm9wdGlvblZhbHVlXCI+XHJcbiAgICAgIHt7IG9wdGlvbj8ub3B0aW9uTmFtZSB9fVxyXG4gICAgPC9vcHRpb24+XHJcbiAgPC9zZWxlY3Q+XHJcblxyXG4gICA8bGFiZWwgZm9yPVwiXCIgY2xhc3M9XCJpbnB1dC10aXRsZVwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08L2xhYmVsPlxyXG4gIDxpbnB1dFxyXG4gICAgKm5nSWY9XCJkcm9wRG93bkZvcm0uZ2V0KCdzZWxlY3RlZE9wdGlvbicpPy52YWx1ZSA9PT0gJ290aGVyJ1wiXHJcbiAgICB0eXBlPVwidGV4dFwiXHJcbiAgICBmb3JtQ29udHJvbE5hbWU9XCJvdGhlcklucHV0XCJcclxuICAgIHBsYWNlaG9sZGVyPVwiZW50ZXIgb3RoZXIgbm90ZXNcIlxyXG4gICAgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgZmxleC0xXCJcclxuICAvPlxyXG5cclxuICBcclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj4gLS0+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyXCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkcm9wRG93bkZvcm1cIiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTQgaXRlbXMtc3RhcnRcIj5cclxuICAgIFxyXG4gICAgPCEtLSBEcm9wZG93biAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctMS8yXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cIm1iLTEgZm9udC1zZW1pYm9sZCB0ZXh0LXNtXCI+e3sgc2V0dGluZygnc2VsZWN0LWxhYmVsJykgfX08L2xhYmVsPlxyXG4gICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkT3B0aW9uXCIgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgdy1mdWxsXCI+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdDwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi5vcHRpb25WYWx1ZVwiPlxyXG4gICAgICAgICAge3sgb3B0aW9uPy5vcHRpb25OYW1lIH19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBPdGhlciBpbnB1dCAob25seSBpZiAnT3RoZXInIHNlbGVjdGVkKSAtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93bkZvcm0uZ2V0KCdzZWxlY3RlZE9wdGlvbicpPy52YWx1ZSA9PT0gJ290aGVyJ1wiIGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LTEvMlwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJtYi0xIGZvbnQtc2VtaWJvbGQgdGV4dC1zbVwiPnt7IHNldHRpbmcoJ290aGVyLWxhYmVsJykgfX08L2xhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJJbnB1dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3NldHRpbmcoJ290aGVyLXBsYWNlaG9sZGVyJyl9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgdy1mdWxsXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIFxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcblxyXG5cclxuPC9meC1jb21wb25lbnQ+XHJcblxyXG4gICAgICA8IS0tIDxzbWFsbCAqbmdJZj1cImRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy50b3VjaGVkICYmIGRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIj5cclxuICAgICAgICBEYXRlIGlzIHJlcXVpcmVkLlxyXG4gICAgICA8L3NtYWxsPiAtLT4iXX0=
|
|
114
|
+
args: [{ selector: 'dropdown-with-other', standalone: true, imports: [CommonModule, ReactiveFormsModule, FormsModule, FxComponent, CalendarModule], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <!-- <div class=\"flex justify-content-center relative\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-column gap-2\">\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n\r\n <label for=\"\" class=\"input-title\">{{ setting('label') }}</label>\r\n <input\r\n *ngIf=\"dropDownForm.get('selectedOption')?.value === 'other'\"\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"enter other notes\"\r\n class=\"border p-2 rounded flex-1\"\r\n />\r\n\r\n \r\n </form>\r\n </div> -->\r\n\r\n <div class=\"flex justify-center custom-dropdown\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex flex-row gap-4 items-start\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n\r\n <!-- <label class=\"mb-1 font-semibold text-sm\"></label> -->\r\n <span class=\"input-label dark:text-gray-300\">{{ setting('select-label') }}</span>\r\n <select formControlName=\"selectedOption\" class=\"border p-2 rounded w-full\">\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <!-- Other input (only if 'Other' selected) -->\r\n <div class=\"flex flex-col w-1/2\">\r\n <div class=\"relative\">\r\n <label class=\"input-label dark:text-gray-300\">{{ setting('other-label') }}</label>\r\n <div class=\"relative\">\r\n <input\r\n type=\"text\"\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n />\r\n </div>\r\n <small *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Other is required.\r\n </small>\r\n </div>\r\n </div>\r\n\r\n \r\n </form>\r\n</div>\r\n\r\n\r\n</fx-component>\r\n\r\n <!-- <small *ngIf=\"datePickerForm.get('date')?.touched && datePickerForm.get('date')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n Date is required.\r\n </small> -->", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:is() .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:is() .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:is() .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:is() .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}.confirmation-dialog .p-dialog-content{text-align:center}\n"] }]
|
|
115
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }, { type: i3.ApiServiceRegistry }] });
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBYSxlQUFlLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBVTFDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBZ0J6QztJQUErQjtJQUF5QjtJQUF5RDtJQWYvSCxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQzFDLFVBQVUsR0FBVyxFQUFFLENBQUM7SUFDeEIsT0FBTyxHQUFHO1FBQ0osRUFBRSxXQUFXLEVBQUUs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QUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO2dCQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDL0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUVMLENBQUM7d0dBckdZLDBCQUEwQjs0RkFBMUIsMEJBQTBCLHNHQ2pCdkMsOGpGQXVFa0IsNDdGRDFETixZQUFZLCtQQUFFLG1CQUFtQix1MkNBQUUsV0FBVywrQkFBRSxXQUFXLDRFQUFFLGNBQWM7OzRGQUkxRSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50LCBGeFNlbGVjdFNldHRpbmcsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFZhbGlkYXRpb24sIEZ4VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvY29yZSdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZHJvcGRvd24td2l0aC1vdGhlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnhDb21wb25lbnQsIENhbGVuZGFyTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Ryb3Bkb3duLXdpdGgtb3RoZXIuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duV2l0aE90aGVyQ29tcG9uZW50IGV4dGVuZHMgRnhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxucHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbnByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxCb29sZWFuPigpO1xyXG5mb3JtT2JqZWN0OiBvYmplY3QgPSB7fTtcclxub3B0aW9ucyA9IFtcclxuICAgICAgeyBvcHRpb25WYWx1ZTogJ0NsaW5pY2FsIE5vdGVzIDEnLCBvcHRpb25OYW1lOiAnQ2xpbmljYWwgTm90ZXMgMScgfSxcclxuICAgICAgeyBvcHRpb25WYWx1ZTogJ0NsaW5pY2FsIE5vdGVzIDInLCBvcHRpb25OYW1lOiAnQ2xpbmljYWwgTm90ZXMgMicgfSxcclxuICAgICAgeyBvcHRpb25WYWx1ZTogJ0NsaW5pY2FsIE5vdGVzIDMnLCBvcHRpb25OYW1lOiAnQ2xpbmljYWwgTm90ZXMgMycgfSxcclxuICAgICAgeyBvcHRpb25WYWx1ZTogJ290aGVyJywgb3B0aW9uTmFtZTogJ090aGVyJyB9XHJcbl07XHJcblxyXG4gICAgIHB1YmxpYyBkcm9wRG93bkZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gIHNlbGVjdGVkT3B0aW9uOiBbJycsIFtdXSxcclxuICBvdGhlcklucHV0OiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG59KTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxwcml2YXRlIGZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlOiBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSxwcml2YXRlIGZ4QXBpU2VydmljZTogQXBpU2VydmljZVJlZ2lzdHJ5KSB7XHJcbiAgICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZWdpc3Rlcih0aGlzLmRyb3BEb3duRm9ybSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICBcclxuICAgICAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCk9PntcclxuIHRoaXMuZHJvcERvd25Gb3JtLnBhdGNoVmFsdWUodGhpcy5mb3JtT2JqZWN0KTtcclxuICAgIH0sMTAwKVxyXG4gICBcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgIFxyXG4gICBcclxuICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ2Ryb3Bkb3duLXdpdGgtb3RoZXInKSkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtT2JqZWN0ID0gdmFsdWU7XHJcbiAgICAgICAgIH1cclxuICAgICAgIH1cclxuICB9KVxyXG5cclxuICAvLyAgdGhpcy5kcm9wRG93bkZvcm0uZ2V0KCdzZWxlY3RlZE9wdGlvbicpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAvLyAgIGNvbnN0IG90aGVyQ29udHJvbCA9IHRoaXMuZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpO1xyXG4gIC8vICAgaWYgKHZhbHVlID09PSAnb3RoZXInKSB7XHJcbiAgLy8gICAgIG90aGVyQ29udHJvbD8uZW5hYmxlKCk7XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICBvdGhlckNvbnRyb2w/LmRpc2FibGUoKTtcclxuICAvLyAgICAgb3RoZXJDb250cm9sPy5yZXNldCgpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH0pO1xyXG4gIC8vIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLmZ4QXBpU2VydmljZS5nZXRTZXJ2aWNlVXJsKHRoaXMuc2V0dGluZygnc2VydmljZU5hbWUnKSk7XHJcbiAgLy8gdGhpcy5nZXRPcHRpb25zKHNlcnZpY2VVcmwsdGhpcy5zZXR0aW5nKCdjbGluaWNhbE5vdGVzVVJMJykpO1xyXG5cclxuICB0aGlzLmRyb3BEb3duRm9ybS5nZXQoJ3NlbGVjdGVkT3B0aW9uJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gIGNvbnN0IG90aGVyQ29udHJvbCA9IHRoaXMuZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpO1xyXG5cclxuICBpZiAodmFsdWUgPT09ICdvdGhlcicpIHtcclxuICAgIG90aGVyQ29udHJvbD8uZW5hYmxlKCk7XHJcbiAgICBvdGhlckNvbnRyb2w/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICB9IGVsc2Uge1xyXG4gICAgb3RoZXJDb250cm9sPy5kaXNhYmxlKCk7XHJcbiAgICBvdGhlckNvbnRyb2w/LnJlc2V0KCk7XHJcbiAgICBvdGhlckNvbnRyb2w/LmNsZWFyVmFsaWRhdG9ycygpOyAvL1xyXG4gIH1cclxuXHJcbiAgb3RoZXJDb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7IC8vXHJcbiAgb3RoZXJDb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XHJcbn0pO1xyXG5cclxufVxyXG5cclxuICAgICAgcHJvdGVjdGVkIHNldHRpbmdzKCk6IEZ4U2V0dGluZ1tdIHtcclxuICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdjbGluaWNhbE5vdGVzVVJMJywgJHRpdGxlOiAnQVBJIFVybCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdzZWxlY3QtbGFiZWwnLCAkdGl0bGU6ICdMYWJlbCcsIHZhbHVlOiAnJyB9KSwgXHJcbiAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3RoZXItbGFiZWwnLCAkdGl0bGU6ICdPdGhlciBMYWJlbCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3RoZXItcGxhY2Vob2xkZXInLCAkdGl0bGU6ICdPdGhlciBQbGFjZWhvbGRlcicsIHZhbHVlOiAnJyB9KSwgIFxyXG4gICAgICAgICAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ3NlcnZpY2VOYW1lJywgJHRpdGxlOiAnU2VydmljZScsIHZhbHVlOiAnJ30sIFt7b3B0aW9uOiAnVXNlciBTZXJ2aWNlJywgdmFsdWU6ICd1c2VyX3NlcnZpY2UnfSwge29wdGlvbjogJ1BhdGllbnQgU2VydmljZScsIHZhbHVlOiAncGF0aWVudF9zZXJ2aWNlJ30se29wdGlvbjogJ1dvcmtmbG93IFNlcnZpY2UnLCB2YWx1ZTogJ3dvcmtmbG93X3NlcnZpY2UnfV0pLFxyXG4gICAgICAgICAgICAgIC8vIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ3NlcnZpY2UnLCAkdGl0bGU6ICdTZXJ2aWNlJywgdmFsdWU6ICdsb2NhbCd9LCBbe29wdGlvbjogJ0xvY2FsJywgdmFsdWU6ICdsb2NhbCd9LCB7b3B0aW9uOiAnUUEnLCB2YWx1ZTogJ3FhJ30se29wdGlvbjogJ1VBVCcsIHZhbHVlOiAndWF0J30se29wdGlvbjogJ1Byb2R1Y3Rpb24nLCB2YWx1ZTogJ3Byb2QnfV0pLCAgICAgICAgIFxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICAgICAgICByZXR1cm4gW0Z4VmFsaWRhdG9yU2VydmljZS5yZXF1aXJlZF07XHJcbiAgICAgICAgfVxyXG5cclxuICBnZXRPcHRpb25zKHNlcnZpY2VVcmw6c3RyaW5nLHVybDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmaW5hbFVybCA9IHNlcnZpY2VVcmwgKyB1cmw7XHJcbiAgdGhpcy5odHRwLmdldDxhbnlbXT4oZmluYWxVcmwpLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2U7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdPcHRpb25zOicsIHRoaXMub3B0aW9ucyk7XHJcbiAgICB9LFxyXG4gICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgb3B0aW9ucycsIGVycik7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG59XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPCEtLSA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHJlbGF0aXZlXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRyb3BEb3duRm9ybVwiIGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxyXG4gICA8bGFiZWwgZm9yPVwiXCIgY2xhc3M9XCJpbnB1dC10aXRsZVwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08L2xhYmVsPlxyXG4gIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRPcHRpb25cIiBjbGFzcz1cImJvcmRlciBwLTIgcm91bmRlZFwiPlxyXG4gICAgPG9wdGlvbiAgdmFsdWU9XCJcIj5TZWxlY3Q8L29wdGlvbj5cclxuICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi5vcHRpb25WYWx1ZVwiPlxyXG4gICAgICB7eyBvcHRpb24/Lm9wdGlvbk5hbWUgfX1cclxuICAgIDwvb3B0aW9uPlxyXG4gIDwvc2VsZWN0PlxyXG5cclxuICAgPGxhYmVsIGZvcj1cIlwiIGNsYXNzPVwiaW5wdXQtdGl0bGVcIj57eyBzZXR0aW5nKCdsYWJlbCcpIH19PC9sYWJlbD5cclxuICA8aW5wdXRcclxuICAgICpuZ0lmPVwiZHJvcERvd25Gb3JtLmdldCgnc2VsZWN0ZWRPcHRpb24nKT8udmFsdWUgPT09ICdvdGhlcidcIlxyXG4gICAgdHlwZT1cInRleHRcIlxyXG4gICAgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJJbnB1dFwiXHJcbiAgICBwbGFjZWhvbGRlcj1cImVudGVyIG90aGVyIG5vdGVzXCJcclxuICAgIGNsYXNzPVwiYm9yZGVyIHAtMiByb3VuZGVkIGZsZXgtMVwiXHJcbiAgLz5cclxuXHJcbiAgXHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+IC0tPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBjdXN0b20tZHJvcGRvd25cIj5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImRyb3BEb3duRm9ybVwiIGNsYXNzPVwiZmxleCBmbGV4LXJvdyBnYXAtNCBpdGVtcy1zdGFydFwiPlxyXG4gICAgXHJcbiAgICA8IS0tIERyb3Bkb3duIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy0xLzJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcblxyXG4gICAgICA8IS0tIDxsYWJlbCBjbGFzcz1cIm1iLTEgZm9udC1zZW1pYm9sZCB0ZXh0LXNtXCI+PC9sYWJlbD4gLS0+XHJcbiAgICAgIDxzcGFuICBjbGFzcz1cImlucHV0LWxhYmVsIGRhcms6dGV4dC1ncmF5LTMwMFwiPnt7IHNldHRpbmcoJ3NlbGVjdC1sYWJlbCcpIH19PC9zcGFuPlxyXG4gICAgICA8c2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInNlbGVjdGVkT3B0aW9uXCIgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgdy1mdWxsXCI+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdDwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvbi5vcHRpb25WYWx1ZVwiPlxyXG4gICAgICAgICAge3sgb3B0aW9uPy5vcHRpb25OYW1lIH19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gT3RoZXIgaW5wdXQgKG9ubHkgaWYgJ090aGVyJyBzZWxlY3RlZCkgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LTEvMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwgZGFyazp0ZXh0LWdyYXktMzAwXCI+e3sgc2V0dGluZygnb3RoZXItbGFiZWwnKSB9fTwvbGFiZWw+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJJbnB1dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3NldHRpbmcoJ290aGVyLXBsYWNlaG9sZGVyJyl9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgdy1mdWxsXCJcclxuICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxzbWFsbCAqbmdJZj1cImRyb3BEb3duRm9ybS5nZXQoJ290aGVySW5wdXQnKT8udG91Y2hlZCAmJiBkcm9wRG93bkZvcm0uZ2V0KCdvdGhlcklucHV0Jyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICAgIE90aGVyIGlzIHJlcXVpcmVkLlxyXG4gICAgICA8L3NtYWxsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIFxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcblxyXG5cclxuPC9meC1jb21wb25lbnQ+XHJcblxyXG4gICAgICA8IS0tIDxzbWFsbCAqbmdJZj1cImRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy50b3VjaGVkICYmIGRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIj5cclxuICAgICAgICBEYXRlIGlzIHJlcXVpcmVkLlxyXG4gICAgICA8L3NtYWxsPiAtLT4iXX0=
|