fx-form-builder-wrapper 2.0.37 → 2.0.38
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 +6 -5
- package/esm2022/lib/components/dropdown-with-other/dropdown-with-other.component.mjs +7 -5
- package/esm2022/lib/components/uploader/uploader.component.mjs +19 -3
- package/fesm2022/fx-form-builder-wrapper.mjs +28 -9
- package/fesm2022/fx-form-builder-wrapper.mjs.map +1 -1
- package/package.json +1 -1
- package/src/styles/styles.css +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { Component, inject, ViewChild } from '@angular/core';
|
|
3
|
-
import { ReactiveFormsModule, FormsModule, FormBuilder } from '@angular/forms';
|
|
3
|
+
import { ReactiveFormsModule, FormsModule, FormBuilder, Validators } from '@angular/forms';
|
|
4
4
|
import { FxBaseComponent, FxComponent, FxStringSetting, FxValidatorService } from '@instantsys-labs/fx';
|
|
5
5
|
import { CalendarModule } from 'primeng/calendar';
|
|
6
6
|
import { Subject, takeUntil } from 'rxjs';
|
|
@@ -23,7 +23,7 @@ export class DatePickerComponent extends FxBaseComponent {
|
|
|
23
23
|
destroy$ = new Subject();
|
|
24
24
|
datePickerMap = new Map();
|
|
25
25
|
datePickerForm = this.fb.group({
|
|
26
|
-
date: [new Date(), []],
|
|
26
|
+
date: [new Date(), [Validators.required]],
|
|
27
27
|
});
|
|
28
28
|
constructor(cdr, http, fxBuilderWrapperService) {
|
|
29
29
|
super(cdr);
|
|
@@ -106,19 +106,20 @@ export class DatePickerComponent extends FxBaseComponent {
|
|
|
106
106
|
new FxStringSetting({ key: 'maxDateKey', $title: 'Max Range API Key', value: '' }),
|
|
107
107
|
new FxStringSetting({ key: 'placeHolder', $title: 'Placeholder', value: 'Select Date' }),
|
|
108
108
|
new FxStringSetting({ key: 'label', $title: 'Label', value: '' }),
|
|
109
|
+
new FxStringSetting({ key: 'datePickerErrorMessage', $title: 'Error Message', value: 'Please fill out the field' }),
|
|
109
110
|
];
|
|
110
111
|
}
|
|
111
112
|
validations() {
|
|
112
113
|
return [FxValidatorService.required];
|
|
113
114
|
}
|
|
114
115
|
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 });
|
|
115
|
-
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
|
|
116
|
+
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 {{ setting('datePickerErrorMessage') }}\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 }] });
|
|
116
117
|
}
|
|
117
118
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
118
119
|
type: Component,
|
|
119
|
-
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
|
|
120
|
+
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 {{ setting('datePickerErrorMessage') }}\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"] }]
|
|
120
121
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }], propDecorators: { fxComponent: [{
|
|
121
122
|
type: ViewChild,
|
|
122
123
|
args: ['fxComponent']
|
|
123
124
|
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUF5QixNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQWlCakM7SUFBK0I7SUFBeUI7SUFoQnBFLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUM1QixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2QsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDTyxXQUFXLENBQWU7SUFDNUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7SUFDekMsYUFB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QU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO3dHQWxJTSxtQkFBbUI7NEZBQW5CLG1CQUFtQiw4TUNmaEMsazBMQXlEZSxrNUJEOUNKLFlBQVksa0lBQUUsbUJBQW1CLDQ4QkFBRSxXQUFXLCtCQUFFLFdBQVcsNEVBQUUsY0FBYzs7NEZBSXpFLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1IsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUM7cUpBVzFELFdBQVc7c0JBQXBDLFNBQVM7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZ4QmFzZUNvbXBvbmVudCwgRnhDb21wb25lbnQsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFZhbGlkYXRpb24sIEZ4VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWRhdGUtcGlja2VyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIEZ4Q29tcG9uZW50LCBDYWxlbmRhck1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG4gIC8vICBtaW5EYXRlID0gbmV3IERhdGUoKTtcclxuICAvLyAgbWF4RGF0ZSAgPSBuZXcgRGF0ZSgpO1xyXG5taW5EYXRlITogc3RyaW5nO1xyXG5tYXhEYXRlITogc3RyaW5nO1xyXG4gICB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgIEBWaWV3Q2hpbGQoJ2Z4Q29tcG9uZW50JykgZnhDb21wb25lbnQhOiBGeENvbXBvbmVudDtcclxuICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PEJvb2xlYW4+KCk7XHJcbiAgICBkYXRlUGlja2VyTWFwID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuICAgXHJcblxyXG5cclxuICAgIHB1YmxpYyBkYXRlUGlja2VyRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICBkYXRlOiBbbmV3IERhdGUoKSxbXV0sXHJcbiAgICAgfSlcclxuXHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQscHJpdmF0ZSBmeEJ1aWxkZXJXcmFwcGVyU2VydmljZTogRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UpIHtcclxuICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICB0aGlzLm9uSW5pdC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuZGF0ZVBpY2tlckZvcm0pO1xyXG4gICAgICB9KTtcclxuICAgICBcclxuICAgIH1cclxuXHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuZGF0ZVBpY2tlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcblxyXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICAgICAgaWYgKGtleS5pbmNsdWRlcygnbGliLWRhdGUtcGlja2VyJykpIHtcclxuICAgICAgICB0aGlzLmRhdGVQaWNrZXJNYXAuc2V0KGtleSwgdmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG5cclxuICAgIC8vIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIC8vIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcclxuICAgIC8vIHRoaXMubWluRGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSAtIDMwKTtcclxuXHJcbiAgICAvLyB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAvLyB0aGlzLm1heERhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyAzMCk7XHJcblxyXG4gIC8vIHRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgLSAzMCkpKTtcclxuICAvLyB0aGlzLm1heERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpICsgMzEpKSk7XHJcblxyXG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuXHJcbmNvbnN0IG1pbiA9IG5ldyBEYXRlKCk7XHJcbm1pbi5zZXREYXRlKHRvZGF5LmdldERhdGUoKSAtIDMwKTtcclxuXHJcbmNvbnN0IG1heCA9IG5ldyBEYXRlKCk7XHJcbm1heC5zZXREYXRlKHRvZGF5LmdldERhdGUoKSk7XHJcblxyXG50aGlzLm1pbkRhdGUgPSB0aGlzLmZvcm1hdERhdGUobWluKTtcclxudGhpcy5tYXhEYXRlID0gdGhpcy5mb3JtYXREYXRlKG1heCk7XHJcblxyXG4gICAgLy8gdGhpcy5nZXRSYW5nZVZhbHVlcygpO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICBnZXQgZGF0ZUNvbnRyb2woKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlUGlja2VyRm9ybS5nZXQoJ2RhdGUnKTtcclxuICB9XHJcblxyXG4gICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLmZ4Q29tcG9uZW50Py5meERhdGE/Lm5hbWU7XHJcbiAgICBpZihrZXkpe1xyXG4gICAgICAgIGNvbnN0IGRhdGVQYXRjaCA9IHRoaXMuZGF0ZVBpY2tlck1hcC5nZXQoa2V5KVxyXG4gICAgICAgIGNvbnN0IGZpbmFsRGF0ZSA9IGRhdGVQYXRjaCB8fCB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSlcclxuICAgICAgICBpZihkYXRlUGF0Y2gpe1xyXG4gICAgICAgICAgICB0aGlzLm1pbkRhdGUgPSBkYXRlUGF0Y2hcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgdGhpcy5taW5EYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSAtIDMwKSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuXHJcbiAgICAgIHRoaXMuZGF0ZVBpY2tlckZvcm0ucGF0Y2hWYWx1ZSh7ZGF0ZTpmaW5hbERhdGV9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q29udGV4dEJhc2VJZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmFuZ2VWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLmh0dHAuZ2V0PGFueT4odGhpcy5zZXR0aW5nKCdhcGlVUkwnKSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIFxyXG4gICAgICBjb25zdCBtaW5PZmZzZXQgPSByZXNwb25zZVt0aGlzLnNldHRpbmcoJ21pbkRhdGVLZXknKV0gfHwgdGhpcy5zZXR0aW5nKCdtaW5WYWxpZGF0aW9uJyk7XHJcbiAgICAgIGNvbnN0IG1heE9mZnNldCA9IHJlc3BvbnNlW3RoaXMuc2V0dGluZygnbWF4RGF0ZUtleScpXSB8fCB0aGlzLnNldHRpbmcoJ21heFZhbGlkYXRpb24nKTtcclxuICBcclxuICAgICAgLy8gdGhpcy5taW5EYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgICAvLyB0aGlzLm1pbkRhdGUuc2V0RGF0ZSh0b2RheS5nZXREYXRlKCkgKyBtaW5PZmZzZXQpO1xyXG4gIFxyXG4gICAgICAvLyB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAgIC8vIHRoaXMubWF4RGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSArIG1heE9mZnNldCk7XHJcblxyXG4gICAgdGhpcy5taW5EYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSArIG1pbk9mZnNldCkpKTtcclxuICB0aGlzLm1heERhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpICsgbWF4T2Zmc2V0KSkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdOyBcclxufVxyXG4gIFxyXG5cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWluVmFsaWRhdGlvbicsICR0aXRsZTogJ01pbiBWYWxpZGF0aW9uJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21heFZhbGlkYXRpb24nLCAkdGl0bGU6ICdNYXggVmFsaWRhdGlvbicsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdhcGlVUkwnLCAkdGl0bGU6ICdBUEkgVXJsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21pbkRhdGVLZXknLCAkdGl0bGU6ICdNaW4gUmFuZ2UgQVBJIEtleScsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtYXhEYXRlS2V5JywgJHRpdGxlOiAnTWF4IFJhbmdlIEFQSSBLZXknLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAncGxhY2VIb2xkZXInLCAkdGl0bGU6ICdQbGFjZWhvbGRlcicsIHZhbHVlOiAnU2VsZWN0IERhdGUnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2xhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgIFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICAgICAgfVxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImN1c3RvbS1kYXRlLXBpY2tlciByZWxhdGl2ZVwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkYXRlUGlja2VyRm9ybVwiPlxyXG4gICAgICA8IS0tIDxwLWNhbGVuZGFyICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgW2ljb25EaXNwbGF5XT1cIidpbnB1dCdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIiBbc2hvd0J1dHRvbkJhcl09XCJ0cnVlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHNldHRpbmcoJ3BsYWNlSG9sZGVyJykgfX1cIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgICAgICAgPCEtLSA8cC1jYWxlbmRhciAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2V0dGluZygncGxhY2VIb2xkZXInKSB9fVwiPiAtLT5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZGF0ZVwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGlkPVwiZGF0ZVwiIG5hbWU9XCJkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiICBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxsYWJlbCBmb3I9XCJkYXRlXCIgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlNlbGVjdCBEYXRlPC9sYWJlbD4gLS0+XHJcbiAgICAgICAgPCEtLSA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuICAgICAgPCEtLSA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgPGRpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LnRvdWNoZWQgJiYgZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICAgIERhdGUgaXMgcmVxdWlyZWQuXHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuXHJcbjwvZngtY29tcG9uZW50PiJdfQ==
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQXFCLFNBQVMsRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFhLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQVExQyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQWlCakM7SUFBK0I7SUFBeUI7SUFoQnBFLEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUM1QixPQUFPLENBQVU7SUFDakIsT0FBTyxDQUFVO0lBQ2QsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDTyxXQUFXLENBQWU7SUFDNUMsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7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LGVBQWUsQ0FBQyxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxDQUFDO1NBRXBILENBQUM7SUFDSixDQUFDO0lBRVMsV0FBVztRQUNuQixPQUFPLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0FuSU0sbUJBQW1COzRGQUFuQixtQkFBbUIsOE1DZmhDLHMxTEF5RGUsazVCRDlDSixZQUFZLGtJQUFFLG1CQUFtQiw0OEJBQUUsV0FBVywrQkFBRSxXQUFXLDRFQUFFLGNBQWM7OzRGQUl6RSxtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNSLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDO3FKQVcxRCxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50LCBGeFNldHRpbmcsIEZ4U3RyaW5nU2V0dGluZywgRnhWYWxpZGF0aW9uLCBGeFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1kYXRlLXBpY2tlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1zTW9kdWxlLCBGeENvbXBvbmVudCwgQ2FsZW5kYXJNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgRnhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcclxuICAvLyAgbWluRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgLy8gIG1heERhdGUgID0gbmV3IERhdGUoKTtcclxubWluRGF0ZSE6IHN0cmluZztcclxubWF4RGF0ZSE6IHN0cmluZztcclxuICAgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICBAVmlld0NoaWxkKCdmeENvbXBvbmVudCcpIGZ4Q29tcG9uZW50ITogRnhDb21wb25lbnQ7XHJcbiAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxCb29sZWFuPigpO1xyXG4gICAgZGF0ZVBpY2tlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcbiAgIFxyXG5cclxuXHJcbiAgICBwdWJsaWMgZGF0ZVBpY2tlckZvcm06IEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgZGF0ZTogW25ldyBEYXRlKCksW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICB9KVxyXG5cclxuICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxwcml2YXRlIGZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlOiBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSkge1xyXG4gICAgICBzdXBlcihjZHIpXHJcbiAgICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcmVnaXN0ZXIodGhpcy5kYXRlUGlja2VyRm9ybSk7XHJcbiAgICAgIH0pO1xyXG4gICAgIFxyXG4gICAgfVxyXG5cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5kYXRlUGlja2VyTWFwID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpIGFzIFtzdHJpbmcsIGFueV1bXSkge1xyXG4gICAgICBpZiAoa2V5LmluY2x1ZGVzKCdsaWItZGF0ZS1waWNrZXInKSkge1xyXG4gICAgICAgIHRoaXMuZGF0ZVBpY2tlck1hcC5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxuXHJcblxyXG4gICAgLy8gY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgLy8gdGhpcy5taW5EYXRlID0gbmV3IERhdGUodG9kYXkpO1xyXG4gICAgLy8gdGhpcy5taW5EYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpIC0gMzApO1xyXG5cclxuICAgIC8vIHRoaXMubWF4RGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcclxuICAgIC8vIHRoaXMubWF4RGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSArIDMwKTtcclxuXHJcbiAgLy8gdGhpcy5taW5EYXRlID0gdGhpcy5mb3JtYXREYXRlKG5ldyBEYXRlKHRoaXMudG9kYXkuc2V0RGF0ZShuZXcgRGF0ZSgpLmdldERhdGUoKSAtIDMwKSkpO1xyXG4gIC8vIHRoaXMubWF4RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgKyAzMSkpKTtcclxuXHJcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG5cclxuY29uc3QgbWluID0gbmV3IERhdGUoKTtcclxubWluLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpIC0gMzApO1xyXG5cclxuY29uc3QgbWF4ID0gbmV3IERhdGUoKTtcclxubWF4LnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpKTtcclxuXHJcbnRoaXMubWluRGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShtaW4pO1xyXG50aGlzLm1heERhdGUgPSB0aGlzLmZvcm1hdERhdGUobWF4KTtcclxuXHJcbiAgICAvLyB0aGlzLmdldFJhbmdlVmFsdWVzKCk7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIGdldCBkYXRlQ29udHJvbCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpO1xyXG4gIH1cclxuXHJcbiAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuZnhDb21wb25lbnQ/LmZ4RGF0YT8ubmFtZTtcclxuICAgIGlmKGtleSl7XHJcbiAgICAgICAgY29uc3QgZGF0ZVBhdGNoID0gdGhpcy5kYXRlUGlja2VyTWFwLmdldChrZXkpXHJcbiAgICAgICAgY29uc3QgZmluYWxEYXRlID0gZGF0ZVBhdGNoIHx8IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpKVxyXG4gICAgICAgIGlmKGRhdGVQYXRjaCl7XHJcbiAgICAgICAgICAgIHRoaXMubWluRGF0ZSA9IGRhdGVQYXRjaFxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpIC0gMzApKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG5cclxuICAgICAgdGhpcy5kYXRlUGlja2VyRm9ybS5wYXRjaFZhbHVlKHtkYXRlOmZpbmFsRGF0ZX0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRDb250ZXh0QmFzZUlkKCk7XHJcbiAgfVxyXG5cclxuICBnZXRSYW5nZVZhbHVlcygpIHtcclxuICAgIHRoaXMuaHR0cC5nZXQ8YW55Pih0aGlzLnNldHRpbmcoJ2FwaVVSTCcpKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgXHJcbiAgICAgIGNvbnN0IG1pbk9mZnNldCA9IHJlc3BvbnNlW3RoaXMuc2V0dGluZygnbWluRGF0ZUtleScpXSB8fCB0aGlzLnNldHRpbmcoJ21pblZhbGlkYXRpb24nKTtcclxuICAgICAgY29uc3QgbWF4T2Zmc2V0ID0gcmVzcG9uc2VbdGhpcy5zZXR0aW5nKCdtYXhEYXRlS2V5JyldIHx8IHRoaXMuc2V0dGluZygnbWF4VmFsaWRhdGlvbicpO1xyXG4gIFxyXG4gICAgICAvLyB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSh0b2RheSk7XHJcbiAgICAgIC8vIHRoaXMubWluRGF0ZS5zZXREYXRlKHRvZGF5LmdldERhdGUoKSArIG1pbk9mZnNldCk7XHJcbiAgXHJcbiAgICAgIC8vIHRoaXMubWF4RGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcclxuICAgICAgLy8gdGhpcy5tYXhEYXRlLnNldERhdGUodG9kYXkuZ2V0RGF0ZSgpICsgbWF4T2Zmc2V0KTtcclxuXHJcbiAgICB0aGlzLm1pbkRhdGUgPSB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUodGhpcy50b2RheS5zZXREYXRlKG5ldyBEYXRlKCkuZ2V0RGF0ZSgpICsgbWluT2Zmc2V0KSkpO1xyXG4gIHRoaXMubWF4RGF0ZSA9IHRoaXMuZm9ybWF0RGF0ZShuZXcgRGF0ZSh0aGlzLnRvZGF5LnNldERhdGUobmV3IERhdGUoKS5nZXREYXRlKCkgKyBtYXhPZmZzZXQpKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07IFxyXG59XHJcbiAgXHJcblxyXG5cclxuICAgIHByb3RlY3RlZCBzZXR0aW5ncygpOiBGeFNldHRpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdtaW5WYWxpZGF0aW9uJywgJHRpdGxlOiAnTWluIFZhbGlkYXRpb24nLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWF4VmFsaWRhdGlvbicsICR0aXRsZTogJ01heCBWYWxpZGF0aW9uJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2FwaVVSTCcsICR0aXRsZTogJ0FQSSBVcmwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbWluRGF0ZUtleScsICR0aXRsZTogJ01pbiBSYW5nZSBBUEkgS2V5JywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ21heERhdGVLZXknLCAkdGl0bGU6ICdNYXggUmFuZ2UgQVBJIEtleScsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdwbGFjZUhvbGRlcicsICR0aXRsZTogJ1BsYWNlaG9sZGVyJywgdmFsdWU6ICdTZWxlY3QgRGF0ZScgfSksXHJcbiAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnbGFiZWwnLCAkdGl0bGU6ICdMYWJlbCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdkYXRlUGlja2VyRXJyb3JNZXNzYWdlJywgJHRpdGxlOiAnRXJyb3IgTWVzc2FnZScsIHZhbHVlOiAnUGxlYXNlIGZpbGwgb3V0IHRoZSBmaWVsZCcgfSksXHJcbiAgICAgICAgIFxyXG4gICAgICAgIF07XHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICAgICAgfVxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImN1c3RvbS1kYXRlLXBpY2tlciByZWxhdGl2ZVwiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkYXRlUGlja2VyRm9ybVwiPlxyXG4gICAgICA8IS0tIDxwLWNhbGVuZGFyICBmb3JtQ29udHJvbE5hbWU9XCJkYXRlXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgW21heERhdGVdPVwibWF4RGF0ZVwiXHJcbiAgICAgICAgW2ljb25EaXNwbGF5XT1cIidpbnB1dCdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIiBbc2hvd0J1dHRvbkJhcl09XCJ0cnVlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHNldHRpbmcoJ3BsYWNlSG9sZGVyJykgfX1cIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgICAgICAgPCEtLSA8cC1jYWxlbmRhciAgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiXHJcbiAgICAgICAgICBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2V0dGluZygncGxhY2VIb2xkZXInKSB9fVwiPiAtLT5cclxuICAgICAgICA8bGFiZWwgZm9yPVwiZGF0ZVwiPnt7IHNldHRpbmcoJ2xhYmVsJykgfX08L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIGlkPVwiZGF0ZVwiIG5hbWU9XCJkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGF0ZVwiICBbbWluXT1cIm1pbkRhdGVcIiBbbWF4XT1cIm1heERhdGVcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxsYWJlbCBmb3I9XCJkYXRlXCIgY2xhc3M9XCJwbGFjZWhvbGRlclwiPlNlbGVjdCBEYXRlPC9sYWJlbD4gLS0+XHJcbiAgICAgICAgPCEtLSA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaW5wdXRpY29uXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFic29sdXRlIHJpZ2h0LTAgcHQtMiBwci0yXCI+XHJcbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xOS41NjI0IDIuMjU5OTFIMTguMTk1NlYzLjEzNTgyQzE4LjE5NTYgMy42MTk0OCAxNy43OTgyIDQuMDExNzMgMTcuMzA3OCA0LjAxMTczQzE2LjgxNzcgNC4wMTE3MyAxNi40MjAyIDMuNjE5NDggMTYuNDIwMiAzLjEzNTgyVjIuMjU5OTFINy41ODAwMVYzLjEzNTgyQzcuNTgwMDEgMy42MTk0OCA3LjE4MjUzIDQuMDExNzMgNi42OTI0NCA0LjAxMTczQzYuMjAyMDkgNC4wMTE3MyA1LjgwNDg2IDMuNjE5NDggNS44MDQ4NiAzLjEzNTgyVjIuMjU5OTFINC40Mzc4N0MzLjI2MTA3IDIuMjYwNCAyLjEzMjUyIDIuNzIxODIgMS4zMDA0MiAzLjU0Mjk5QzAuNDY4MzIzIDQuMzY0NDEgMC4wMDA1MDcxODUgNS40NzgxMyAwIDYuNjM5NDZWMTkuNjIwNEMwLjAwMDQ5NTI2NiAyMC43ODE4IDAuNDY4MzA0IDIxLjg5NTUgMS4zMDA0MiAyMi43MTY3QzIuMTMyNTIgMjMuNTM4MSAzLjI2MTA3IDIzLjk5OTUgNC40Mzc4NyAyNEgxOS41NjIxQzIwLjczODkgMjMuOTk5NSAyMS44Njc1IDIzLjUzODEgMjIuNjk5NiAyMi43MTY3QzIzLjUzMTcgMjEuODk1NSAyMy45OTk1IDIwLjc4MTggMjQgMTkuNjIwNFY2LjYzOTQ2QzIzLjk5OTUgNS40NzgxMyAyMy41MzE3IDQuMzY0NDEgMjIuNjk5NiAzLjU0Mjk5QzIxLjg2NzUgMi43MjE4MyAyMC43Mzg5IDIuMjYwNDEgMTkuNTYyMSAyLjI1OTkxSDE5LjU2MjRaTTE5LjU2MjQgMjIuMjQ4Mkg0LjQzODE4QzMuNzMyNjIgMjIuMjQ2IDMuMDU2NTUgMjEuOTY4NiAyLjU1Nzc5IDIxLjQ3NjFDMi4wNTg3OCAyMC45ODM5IDEuNzc3NjggMjAuMzE2NyAxLjc3NTQ2IDE5LjYyMDRWOS4wNTY5OEgyMi4yMjUyVjE5LjYyMDRDMjIuMjIyOSAyMC4zMTY3IDIxLjk0MTkgMjAuOTgzOSAyMS40NDI4IDIxLjQ3NjFDMjAuOTQ0MSAyMS45Njg2IDIwLjI2OCAyMi4yNDYgMTkuNTYyNCAyMi4yNDgyWk03LjU4MDAxIDIuMjU5OTFINS44MDQ4Nkw1LjgwNTA1IDAuODc1OTFDNS44MDUwNSAwLjM5MjI1MSA2LjIwMjI3IDAgNi42OTI2MiAwQzcuMTgyNzIgMCA3LjU4MDE5IDAuMzkyMjUxIDcuNTgwMTkgMC44NzU5MUw3LjU4MDAxIDIuMjU5OTFaTTE4LjE5NTYgMi4yNTk5MUgxNi40MjAyTDE2LjQyMDIgMC44NzU5MUMxNi40MjAyIDAuMzkyMjUxIDE2LjgxNzcgMCAxNy4zMDc4IDBDMTcuNzk4MSAwIDE4LjE5NTMgMC4zOTIyNTEgMTguMTk1MyAwLjg3NTkxTDE4LjE5NTYgMi4yNTk5MVpcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCI1LjMzMjAzXCIgeT1cIjExLjU1NDdcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiNS4zMzIwM1wiIHk9XCIxNi41ODk4XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjEwLjM3MTFcIiB5PVwiMTEuNTU0N1wiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxMC4zNzExXCIgeT1cIjE2LjU4OThcIiB3aWR0aD1cIjIuOTYyOTZcIiBoZWlnaHQ9XCIyLjk2Mjk2XCIgcng9XCIwLjQ0NDQ0NFwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiMTUuNDA2MlwiIHk9XCIxMS41NTQ3XCIgd2lkdGg9XCIyLjk2Mjk2XCIgaGVpZ2h0PVwiMi45NjI5NlwiIHJ4PVwiMC40NDQ0NDRcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE1LjQwNjJcIiB5PVwiMTYuNTg5OFwiIHdpZHRoPVwiMi45NjI5NlwiIGhlaWdodD1cIjIuOTYyOTZcIiByeD1cIjAuNDQ0NDQ0XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPiAtLT5cclxuICAgICAgPCEtLSA8L3AtY2FsZW5kYXI+IC0tPlxyXG4gICAgPGRpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LnRvdWNoZWQgJiYgZGF0ZVBpY2tlckZvcm0uZ2V0KCdkYXRlJyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICB7eyBzZXR0aW5nKCdkYXRlUGlja2VyRXJyb3JNZXNzYWdlJykgfX1cclxuICAgICAgPC9zbWFsbD5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9meC1jb21wb25lbnQ+Il19
|
|
@@ -26,7 +26,7 @@ export class DropdownWithOtherComponent extends FxBaseComponent {
|
|
|
26
26
|
// ];
|
|
27
27
|
options = [];
|
|
28
28
|
dropDownForm = this.fb.group({
|
|
29
|
-
selectedOption: ['',
|
|
29
|
+
selectedOption: ['', Validators.required],
|
|
30
30
|
otherInput: [{ value: '', disabled: true }],
|
|
31
31
|
});
|
|
32
32
|
constructor(cdr, http, fxBuilderWrapperService, fxApiService) {
|
|
@@ -90,7 +90,9 @@ export class DropdownWithOtherComponent extends FxBaseComponent {
|
|
|
90
90
|
new FxStringSetting({ key: 'other-label', $title: 'Other Label', value: '' }),
|
|
91
91
|
new FxStringSetting({ key: 'other-placeholder', $title: 'Other Placeholder', value: '' }),
|
|
92
92
|
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' }]),
|
|
93
|
-
// new FxSelectSetting({key: 'service', $title: 'Service', value: 'local'}, [{option: 'Local', value: 'local'}, {option: 'QA', value: 'qa'},{option: 'UAT', value: 'uat'},{option: 'Production', value: 'prod'}]),
|
|
93
|
+
// new FxSelectSetting({key: 'service', $title: 'Service', value: 'local'}, [{option: 'Local', value: 'local'}, {option: 'QA', value: 'qa'},{option: 'UAT', value: 'uat'},{option: 'Production', value: 'prod'}]),
|
|
94
|
+
// new FxSelectSetting({key: 'isRequired', $title: 'Required', value: true}, [{option: 'Yes', value: true}, {option: 'No', value: false}]),
|
|
95
|
+
new FxStringSetting({ key: 'errorMessage', $title: 'Error Message', value: 'Please fill out the field' }),
|
|
94
96
|
];
|
|
95
97
|
}
|
|
96
98
|
validations() {
|
|
@@ -109,10 +111,10 @@ export class DropdownWithOtherComponent extends FxBaseComponent {
|
|
|
109
111
|
});
|
|
110
112
|
}
|
|
111
113
|
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 });
|
|
112
|
-
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-center custom-dropdown\" [ngClass]=\"setting('customClass')\" *ngIf=\"false\">\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.value\">\r\n {{ option?.label }}\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 <textarea\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n rows=\"2\"\r\n ></textarea>\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<div class=\"custom-dropdown\" [ngClass]=\"setting('customClass')\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex gap-4 w-full\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex-1\">\r\n <label class=\"input-label dark:text-gray-300\">\r\n {{ setting('select-label') }}\r\n </label>\r\n <select\r\n formControlName=\"selectedOption\"\r\n class=\"border p-2 rounded w-full\"\r\n >\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\">\r\n {{ option?.label }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <!-- Other input -->\r\n <div class=\"flex-1\">\r\n <label class=\"input-label dark:text-gray-300\">\r\n {{ setting('other-label') }}\r\n </label>\r\n <textarea\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{ setting('other-placeholder') }}\"\r\n class=\"border p-2 rounded w-full\"\r\n rows=\"2\"\r\n ></textarea>\r\n\r\n <small\r\n *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\"\r\n >\r\n Other is required.\r\n </small>\r\n </div>\r\n\r\n </form>\r\n</div>\r\n\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.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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 }] });
|
|
114
|
+
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-center custom-dropdown\" [ngClass]=\"setting('customClass')\" *ngIf=\"false\">\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.value\">\r\n {{ option?.label }}\r\n </option>\r\n </select>\r\n <small *ngIf=\"dropDownForm.get('selectedOption')?.touched && dropDownForm.get('selectedOption')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorMessage')}}\r\n </small>\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 <textarea\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n rows=\"2\"\r\n ></textarea>\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<div class=\"custom-dropdown\" [ngClass]=\"setting('customClass')\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex gap-4 w-full\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex-1\">\r\n <label class=\"input-label dark:text-gray-300\">\r\n {{ setting('select-label') }}\r\n </label>\r\n <select\r\n formControlName=\"selectedOption\"\r\n class=\"border p-2 rounded w-full\"\r\n >\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\">\r\n {{ option?.label }}\r\n </option>\r\n </select>\r\n <small *ngIf=\"dropDownForm.get('selectedOption')?.touched && dropDownForm.get('selectedOption')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorMessage')}}\r\n </small>\r\n </div>\r\n\r\n <!-- Other input -->\r\n <div class=\"flex-1\">\r\n <label class=\"input-label dark:text-gray-300\">\r\n {{ setting('other-label') }}\r\n </label>\r\n <textarea\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{ setting('other-placeholder') }}\"\r\n class=\"border p-2 rounded w-full\"\r\n rows=\"2\"\r\n ></textarea>\r\n\r\n <small\r\n *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\"\r\n >\r\n Other is required.\r\n </small>\r\n </div>\r\n\r\n </form>\r\n</div>\r\n\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.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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 }] });
|
|
113
115
|
}
|
|
114
116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownWithOtherComponent, decorators: [{
|
|
115
117
|
type: Component,
|
|
116
|
-
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-center custom-dropdown\" [ngClass]=\"setting('customClass')\" *ngIf=\"false\">\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.value\">\r\n {{ option?.label }}\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 <textarea\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n rows=\"2\"\r\n ></textarea>\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<div class=\"custom-dropdown\" [ngClass]=\"setting('customClass')\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex gap-4 w-full\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex-1\">\r\n <label class=\"input-label dark:text-gray-300\">\r\n {{ setting('select-label') }}\r\n </label>\r\n <select\r\n formControlName=\"selectedOption\"\r\n class=\"border p-2 rounded w-full\"\r\n >\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\">\r\n {{ option?.label }}\r\n </option>\r\n </select>\r\n </div>\r\n\r\n <!-- Other input -->\r\n <div class=\"flex-1\">\r\n <label class=\"input-label dark:text-gray-300\">\r\n {{ setting('other-label') }}\r\n </label>\r\n <textarea\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{ setting('other-placeholder') }}\"\r\n class=\"border p-2 rounded w-full\"\r\n rows=\"2\"\r\n ></textarea>\r\n\r\n <small\r\n *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\"\r\n >\r\n Other is required.\r\n </small>\r\n </div>\r\n\r\n </form>\r\n</div>\r\n\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"] }]
|
|
118
|
+
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-center custom-dropdown\" [ngClass]=\"setting('customClass')\" *ngIf=\"false\">\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.value\">\r\n {{ option?.label }}\r\n </option>\r\n </select>\r\n <small *ngIf=\"dropDownForm.get('selectedOption')?.touched && dropDownForm.get('selectedOption')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorMessage')}}\r\n </small>\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 <textarea\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{setting('other-placeholder')}}\"\r\n class=\"border p-2 rounded w-full\"\r\n rows=\"2\"\r\n ></textarea>\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<div class=\"custom-dropdown\" [ngClass]=\"setting('customClass')\">\r\n <form [formGroup]=\"dropDownForm\" class=\"flex gap-4 w-full\">\r\n \r\n <!-- Dropdown -->\r\n <div class=\"flex-1\">\r\n <label class=\"input-label dark:text-gray-300\">\r\n {{ setting('select-label') }}\r\n </label>\r\n <select\r\n formControlName=\"selectedOption\"\r\n class=\"border p-2 rounded w-full\"\r\n >\r\n <option value=\"\">Select</option>\r\n <option *ngFor=\"let option of options\" [value]=\"option.value\">\r\n {{ option?.label }}\r\n </option>\r\n </select>\r\n <small *ngIf=\"dropDownForm.get('selectedOption')?.touched && dropDownForm.get('selectedOption')?.errors?.['required']\"\r\n class=\"text-red-500\">\r\n {{ setting('errorMessage')}}\r\n </small>\r\n </div>\r\n\r\n <!-- Other input -->\r\n <div class=\"flex-1\">\r\n <label class=\"input-label dark:text-gray-300\">\r\n {{ setting('other-label') }}\r\n </label>\r\n <textarea\r\n formControlName=\"otherInput\"\r\n placeholder=\"{{ setting('other-placeholder') }}\"\r\n class=\"border p-2 rounded w-full\"\r\n rows=\"2\"\r\n ></textarea>\r\n\r\n <small\r\n *ngIf=\"dropDownForm.get('otherInput')?.touched && dropDownForm.get('otherInput')?.errors?.['required']\"\r\n class=\"text-red-500\"\r\n >\r\n Other is required.\r\n </small>\r\n </div>\r\n\r\n </form>\r\n</div>\r\n\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"] }]
|
|
117
119
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.FxBuilderWrapperService }, { type: i3.ApiServiceRegistry }] });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBYSxlQUFlLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBVTFDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBa0J6QztJQUErQjtJQUF5QjtJQUF5RDtJQWpCL0gsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUMxQyxVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3hCLGNBQWM7SUFDZCw2RUFBNkU7SUFDN0UsNkVBQTZFO0lBQzdFLDZFQUE2RTtJQUM3RSxzREFBc0Q7SUFDdEQsS0FBSztJQUVMLE9BQU8sR0FBVSxFQUFFLENBQUM7SUFFUixZQUFZLEdBQWMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDbEQsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN4QixVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0tBQzVDLENBQUMsQ0FBQztJQUVELFlBQW9CLEdBQXNCLEVBQVMsSUFBZ0IsRUFBUyx1QkFBZ0QsRUFBUyxZQUFnQztRQUMvSixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFESSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVk7UUFBUyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQVMsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBRS9KLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFDTCxlQUFlO1FBQ2IsVUFBVSxDQUFDLEdBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxFQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRVIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVTthQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxTQUFjLEVBQUUsRUFBRTtZQUM1QixJQUFJLENBQUMsU0FBUztnQkFBRSxPQUFPO1lBR3ZCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBb0IsRUFBRSxDQUFDO2dCQUN4RSxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO29CQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztnQkFDekIsQ0FBQztZQUNILENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQTtRQUVGLDhFQUE4RTtRQUM5RSw4REFBOEQ7UUFDOUQsNkJBQTZCO1FBQzdCLDhCQUE4QjtRQUM5QixhQUFhO1FBQ2IsK0JBQStCO1FBQy9CLDZCQUE2QjtRQUM3QixNQUFNO1FBQ04sTUFBTTtRQUNOLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFekQsSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ3RCLFlBQVksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3JELENBQUM7aUJBQU0sQ0FBQztnQkFDTixZQUFZLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsWUFBWSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNyQyxDQUFDO1lBRUQsWUFBWSxFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQzFDLFlBQVksRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUVILENBQUM7SUFFZSxRQUFRO1FBQ2QsT0FBTztZQUNMLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzlFLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2xGLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUN4RSxJQUFJLGVBQWUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDNUUsSUFBSSxlQUFlLENBQUMsRUFBRSxHQUFHLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUN6RixJQUFJLGVBQWUsQ0FBQyxFQUFDLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFDLEVBQUUsQ0FBQyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBQyxDQUFDLENBQUM7WUFDek8sMk5BQTJOO1NBQzlOLENBQUM7SUFDSixDQUFDO0lBRVMsV0FBVztRQUNuQixPQUFPLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVULFVBQVUsQ0FBQyxVQUFrQixFQUFFLEdBQVc7UUFDeEMsTUFBTSxRQUFRLEdBQUcsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLENBQUMsUUFBWSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxFQUFFLElBQUksQ0FBQztnQkFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9DLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO3dHQXZHWSwwQkFBMEI7NEZBQTFCLDBCQUEwQixzR0NqQnZDLHdsR0EyRmtCLDQ3RkQ5RU4sWUFBWSw2VkFBRSxtQkFBbUIsdTJDQUFFLFdBQVcsK0JBQUUsV0FBVyw0RUFBRSxjQUFjOzs0RkFJMUUsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRnhCYXNlQ29tcG9uZW50LCBGeENvbXBvbmVudCwgRnhTZWxlY3RTZXR0aW5nLCBGeFNldHRpbmcsIEZ4U3RyaW5nU2V0dGluZywgRnhWYWxpZGF0aW9uLCBGeFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgRnhCdWlsZGVyV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9meC1idWlsZGVyLXdyYXBwZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IENhbGVuZGFyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnkgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2NvcmUnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Ryb3Bkb3duLXdpdGgtb3RoZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUsIEZ4Q29tcG9uZW50LCBDYWxlbmRhck1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLXdpdGgtb3RoZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9kcm9wZG93bi13aXRoLW90aGVyLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wZG93bldpdGhPdGhlckNvbXBvbmVudCBleHRlbmRzIEZ4QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbnByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xyXG5wcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuZm9ybU9iamVjdDogb2JqZWN0ID0ge307XHJcbi8vIG9wdGlvbnMgPSBbXHJcbi8vICAgICAgIHsgb3B0aW9uVmFsdWU6ICdDbGluaWNhbCBOb3RlcyAxJywgb3B0aW9uTmFtZTogJ0NsaW5pY2FsIE5vdGVzIDEnIH0sXHJcbi8vICAgICAgIHsgb3B0aW9uVmFsdWU6ICdDbGluaWNhbCBOb3RlcyAyJywgb3B0aW9uTmFtZTogJ0NsaW5pY2FsIE5vdGVzIDInIH0sXHJcbi8vICAgICAgIHsgb3B0aW9uVmFsdWU6ICdDbGluaWNhbCBOb3RlcyAzJywgb3B0aW9uTmFtZTogJ0NsaW5pY2FsIE5vdGVzIDMnIH0sXHJcbi8vICAgICAgIHsgb3B0aW9uVmFsdWU6ICdvdGhlcicsIG9wdGlvbk5hbWU6ICdPdGhlcicgfVxyXG4vLyBdO1xyXG5cclxub3B0aW9uczogYW55W10gPSBbXTtcclxuXHJcbiAgICAgcHVibGljIGRyb3BEb3duRm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgc2VsZWN0ZWRPcHRpb246IFsnJywgW11dLFxyXG4gIG90aGVySW5wdXQ6IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfV0sXHJcbn0pO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYscHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLHByaXZhdGUgZnhBcGlTZXJ2aWNlOiBBcGlTZXJ2aWNlUmVnaXN0cnkpIHtcclxuICAgICAgICBzdXBlcihjZHIpXHJcbiAgICAgICAgdGhpcy5vbkluaXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMuZHJvcERvd25Gb3JtKTtcclxuICAgICAgICB9KTtcclxuICAgICAgIFxyXG4gICAgICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKT0+e1xyXG4gdGhpcy5kcm9wRG93bkZvcm0ucGF0Y2hWYWx1ZSh0aGlzLmZvcm1PYmplY3QpO1xyXG4gICAgfSwxMDApXHJcbiAgIFxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuICAgXHJcbiAgIFxyXG4gICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSBhcyBbc3RyaW5nLCBhbnldW10pIHtcclxuICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygnZHJvcGRvd24td2l0aC1vdGhlcicpKSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1PYmplY3QgPSB2YWx1ZTtcclxuICAgICAgICAgfVxyXG4gICAgICAgfVxyXG4gIH0pXHJcblxyXG4gIC8vICB0aGlzLmRyb3BEb3duRm9ybS5nZXQoJ3NlbGVjdGVkT3B0aW9uJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gIC8vICAgY29uc3Qgb3RoZXJDb250cm9sID0gdGhpcy5kcm9wRG93bkZvcm0uZ2V0KCdvdGhlcklucHV0Jyk7XHJcbiAgLy8gICBpZiAodmFsdWUgPT09ICdvdGhlcicpIHtcclxuICAvLyAgICAgb3RoZXJDb250cm9sPy5lbmFibGUoKTtcclxuICAvLyAgIH0gZWxzZSB7XHJcbiAgLy8gICAgIG90aGVyQ29udHJvbD8uZGlzYWJsZSgpO1xyXG4gIC8vICAgICBvdGhlckNvbnRyb2w/LnJlc2V0KCk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfSk7XHJcbiAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuZnhBcGlTZXJ2aWNlLmdldFNlcnZpY2VVcmwodGhpcy5zZXR0aW5nKCdzZXJ2aWNlTmFtZScpKTtcclxuICB0aGlzLmdldE9wdGlvbnMoc2VydmljZVVybCx0aGlzLnNldHRpbmcoJ2NsaW5pY2FsTm90ZXNVUkwnKSk7XHJcblxyXG4gIHRoaXMuZHJvcERvd25Gb3JtLmdldCgnc2VsZWN0ZWRPcHRpb24nKT8udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgY29uc3Qgb3RoZXJDb250cm9sID0gdGhpcy5kcm9wRG93bkZvcm0uZ2V0KCdvdGhlcklucHV0Jyk7XHJcblxyXG4gIGlmICh2YWx1ZSA9PT0gJ290aGVyJykge1xyXG4gICAgb3RoZXJDb250cm9sPy5lbmFibGUoKTtcclxuICAgIG90aGVyQ29udHJvbD8uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBvdGhlckNvbnRyb2w/LmRpc2FibGUoKTtcclxuICAgIG90aGVyQ29udHJvbD8ucmVzZXQoKTtcclxuICAgIG90aGVyQ29udHJvbD8uY2xlYXJWYWxpZGF0b3JzKCk7IC8vXHJcbiAgfVxyXG5cclxuICBvdGhlckNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTsgLy9cclxuICBvdGhlckNvbnRyb2w/Lm1hcmtBc1RvdWNoZWQoKTtcclxufSk7XHJcblxyXG59XHJcblxyXG4gICAgICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2NsaW5pY2FsTm90ZXNVUkwnLCAkdGl0bGU6ICdBUEkgVXJsJywgdmFsdWU6ICcnIH0pLFxyXG4gICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnY3VzdG9tQ2xhc3MnLCAkdGl0bGU6ICdDdXN0b20gQ2xhc3MgTmFtZScsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdzZWxlY3QtbGFiZWwnLCAkdGl0bGU6ICdMYWJlbCcsIHZhbHVlOiAnJyB9KSwgXHJcbiAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3RoZXItbGFiZWwnLCAkdGl0bGU6ICdPdGhlciBMYWJlbCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnb3RoZXItcGxhY2Vob2xkZXInLCAkdGl0bGU6ICdPdGhlciBQbGFjZWhvbGRlcicsIHZhbHVlOiAnJyB9KSwgIFxyXG4gICAgICAgICAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ3NlcnZpY2VOYW1lJywgJHRpdGxlOiAnU2VydmljZScsIHZhbHVlOiAnJ30sIFt7b3B0aW9uOiAnVXNlciBTZXJ2aWNlJywgdmFsdWU6ICd1c2VyX3NlcnZpY2UnfSwge29wdGlvbjogJ1BhdGllbnQgU2VydmljZScsIHZhbHVlOiAncGF0aWVudF9zZXJ2aWNlJ30se29wdGlvbjogJ1dvcmtmbG93IFNlcnZpY2UnLCB2YWx1ZTogJ3dvcmtmbG93X3NlcnZpY2UnfV0pLFxyXG4gICAgICAgICAgICAgIC8vIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ3NlcnZpY2UnLCAkdGl0bGU6ICdTZXJ2aWNlJywgdmFsdWU6ICdsb2NhbCd9LCBbe29wdGlvbjogJ0xvY2FsJywgdmFsdWU6ICdsb2NhbCd9LCB7b3B0aW9uOiAnUUEnLCB2YWx1ZTogJ3FhJ30se29wdGlvbjogJ1VBVCcsIHZhbHVlOiAndWF0J30se29wdGlvbjogJ1Byb2R1Y3Rpb24nLCB2YWx1ZTogJ3Byb2QnfV0pLCAgICAgICAgIFxyXG4gICAgICAgICAgXTtcclxuICAgICAgICB9XHJcbiAgICAgIFxyXG4gICAgICAgIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICAgICAgICByZXR1cm4gW0Z4VmFsaWRhdG9yU2VydmljZS5yZXF1aXJlZF07XHJcbiAgICAgICAgfVxyXG5cclxuZ2V0T3B0aW9ucyhzZXJ2aWNlVXJsOiBzdHJpbmcsIHVybDogc3RyaW5nKSB7XHJcbiAgY29uc3QgZmluYWxVcmwgPSBzZXJ2aWNlVXJsICsgdXJsO1xyXG4gIHRoaXMuaHR0cC5nZXQ8YW55W10+KGZpbmFsVXJsKS5zdWJzY3JpYmUoe1xyXG4gICAgbmV4dDogKHJlc3BvbnNlOmFueSkgPT4ge1xyXG4gICAgICB0aGlzLm9wdGlvbnMgPSByZXNwb25zZT8uZGF0YTtcclxuICAgICAgdGhpcy5vcHRpb25zLnB1c2goeyB2YWx1ZTogJ290aGVyJywgbGFiZWw6ICdPdGhlcicgfSk7XHJcbiAgICB9LFxyXG4gICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgb3B0aW9ucycsIGVycik7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxufVxyXG5cclxuXHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIiAjZnhDb21wb25lbnQ+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgY3VzdG9tLWRyb3Bkb3duXCIgIFtuZ0NsYXNzXT1cInNldHRpbmcoJ2N1c3RvbUNsYXNzJylcIiAqbmdJZj1cImZhbHNlXCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkcm9wRG93bkZvcm1cIiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTQgaXRlbXMtc3RhcnRcIj5cclxuICAgIFxyXG4gICAgPCEtLSBEcm9wZG93biAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctMS8yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG5cclxuICAgICAgPCEtLSA8bGFiZWwgY2xhc3M9XCJtYi0xIGZvbnQtc2VtaWJvbGQgdGV4dC1zbVwiPjwvbGFiZWw+IC0tPlxyXG4gICAgICA8c3BhbiAgY2xhc3M9XCJpbnB1dC1sYWJlbCBkYXJrOnRleHQtZ3JheS0zMDBcIj57eyBzZXR0aW5nKCdzZWxlY3QtbGFiZWwnKSB9fTwvc3Bhbj5cclxuICAgICAgPHNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZE9wdGlvblwiIGNsYXNzPVwiYm9yZGVyIHAtMiByb3VuZGVkIHctZnVsbFwiPlxyXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3Q8L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cclxuICAgICAgICAgIHt7IG9wdGlvbj8ubGFiZWwgfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBPdGhlciBpbnB1dCAob25seSBpZiAnT3RoZXInIHNlbGVjdGVkKSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHctMS8yXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbCBkYXJrOnRleHQtZ3JheS0zMDBcIj57eyBzZXR0aW5nKCdvdGhlci1sYWJlbCcpIH19PC9sYWJlbD5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm90aGVySW5wdXRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3tzZXR0aW5nKCdvdGhlci1wbGFjZWhvbGRlcicpfX1cIlxyXG4gICAgICAgIGNsYXNzPVwiYm9yZGVyIHAtMiByb3VuZGVkIHctZnVsbFwiXHJcbiAgICAgICAgcm93cz1cIjJcIlxyXG4gICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxzbWFsbCAqbmdJZj1cImRyb3BEb3duRm9ybS5nZXQoJ290aGVySW5wdXQnKT8udG91Y2hlZCAmJiBkcm9wRG93bkZvcm0uZ2V0KCdvdGhlcklucHV0Jyk/LmVycm9ycz8uWydyZXF1aXJlZCddXCJcclxuICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMFwiPlxyXG4gICAgICAgIE90aGVyIGlzIHJlcXVpcmVkLlxyXG4gICAgICA8L3NtYWxsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIFxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiY3VzdG9tLWRyb3Bkb3duXCIgW25nQ2xhc3NdPVwic2V0dGluZygnY3VzdG9tQ2xhc3MnKVwiPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZHJvcERvd25Gb3JtXCIgY2xhc3M9XCJmbGV4IGdhcC00IHctZnVsbFwiPlxyXG4gICAgXHJcbiAgICA8IS0tIERyb3Bkb3duIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbCBkYXJrOnRleHQtZ3JheS0zMDBcIj5cclxuICAgICAgICB7eyBzZXR0aW5nKCdzZWxlY3QtbGFiZWwnKSB9fVxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgICA8c2VsZWN0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRPcHRpb25cIlxyXG4gICAgICAgIGNsYXNzPVwiYm9yZGVyIHAtMiByb3VuZGVkIHctZnVsbFwiXHJcbiAgICAgID5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAgICB7eyBvcHRpb24/LmxhYmVsIH19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBPdGhlciBpbnB1dCAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LTFcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwgZGFyazp0ZXh0LWdyYXktMzAwXCI+XHJcbiAgICAgICAge3sgc2V0dGluZygnb3RoZXItbGFiZWwnKSB9fVxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgICA8dGV4dGFyZWFcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvdGhlcklucHV0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7IHNldHRpbmcoJ290aGVyLXBsYWNlaG9sZGVyJykgfX1cIlxyXG4gICAgICAgIGNsYXNzPVwiYm9yZGVyIHAtMiByb3VuZGVkIHctZnVsbFwiXHJcbiAgICAgICAgcm93cz1cIjJcIlxyXG4gICAgICA+PC90ZXh0YXJlYT5cclxuXHJcbiAgICAgIDxzbWFsbFxyXG4gICAgICAgICpuZ0lmPVwiZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpPy50b3VjaGVkICYmIGRyb3BEb3duRm9ybS5nZXQoJ290aGVySW5wdXQnKT8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1yZWQtNTAwXCJcclxuICAgICAgPlxyXG4gICAgICAgIE90aGVyIGlzIHJlcXVpcmVkLlxyXG4gICAgICA8L3NtYWxsPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcbjwvZngtY29tcG9uZW50PlxyXG5cclxuICAgICAgPCEtLSA8c21hbGwgKm5nSWY9XCJkYXRlUGlja2VyRm9ybS5nZXQoJ2RhdGUnKT8udG91Y2hlZCAmJiBkYXRlUGlja2VyRm9ybS5nZXQoJ2RhdGUnKT8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+XHJcbiAgICAgICAgRGF0ZSBpcyByZXF1aXJlZC5cclxuICAgICAgPC9zbWFsbD4gLS0+Il19
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3Bkb3duLXdpdGgtb3RoZXIvZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFvQyxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxXQUFXLEVBQWEsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBYSxlQUFlLEVBQWdCLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEosT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBVTFDLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxlQUFlO0lBa0J6QztJQUErQjtJQUF5QjtJQUF5RDtJQWpCL0gsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztJQUMxQyxVQUFVLEdBQVcsRUFBRSxDQUFDO0lBQ3hCLGNBQWM7SUFDZCw2RUFBNkU7SUFDN0UsNkVBQTZF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QU0sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLENBQUM7U0FDN0csQ0FBQztJQUNKLENBQUM7SUFFUyxXQUFXO1FBQ25CLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRVQsVUFBVSxDQUFDLFVBQWtCLEVBQUUsR0FBVztRQUN4QyxNQUFNLFFBQVEsR0FBRyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFRLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUN2QyxJQUFJLEVBQUUsQ0FBQyxRQUFZLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLEVBQUUsSUFBSSxDQUFDO2dCQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDL0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBekdZLDBCQUEwQjs0RkFBMUIsMEJBQTBCLHNHQ2pCdkMscWhIQW1Ha0IsNDdGRHRGTixZQUFZLDZWQUFFLG1CQUFtQix1MkNBQUUsV0FBVywrQkFBRSxXQUFXLDRFQUFFLGNBQWM7OzRGQUkxRSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4Q29tcG9uZW50LCBGeFNlbGVjdFNldHRpbmcsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFZhbGlkYXRpb24sIEZ4VmFsaWRhdG9yU2VydmljZSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2FsZW5kYXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvY29yZSdcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZHJvcGRvd24td2l0aC1vdGhlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnhDb21wb25lbnQsIENhbGVuZGFyTW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24td2l0aC1vdGhlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2Ryb3Bkb3duLXdpdGgtb3RoZXIuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3Bkb3duV2l0aE90aGVyQ29tcG9uZW50IGV4dGVuZHMgRnhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxucHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbnByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxCb29sZWFuPigpO1xyXG5mb3JtT2JqZWN0OiBvYmplY3QgPSB7fTtcclxuLy8gb3B0aW9ucyA9IFtcclxuLy8gICAgICAgeyBvcHRpb25WYWx1ZTogJ0NsaW5pY2FsIE5vdGVzIDEnLCBvcHRpb25OYW1lOiAnQ2xpbmljYWwgTm90ZXMgMScgfSxcclxuLy8gICAgICAgeyBvcHRpb25WYWx1ZTogJ0NsaW5pY2FsIE5vdGVzIDInLCBvcHRpb25OYW1lOiAnQ2xpbmljYWwgTm90ZXMgMicgfSxcclxuLy8gICAgICAgeyBvcHRpb25WYWx1ZTogJ0NsaW5pY2FsIE5vdGVzIDMnLCBvcHRpb25OYW1lOiAnQ2xpbmljYWwgTm90ZXMgMycgfSxcclxuLy8gICAgICAgeyBvcHRpb25WYWx1ZTogJ290aGVyJywgb3B0aW9uTmFtZTogJ090aGVyJyB9XHJcbi8vIF07XHJcblxyXG5vcHRpb25zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICBwdWJsaWMgZHJvcERvd25Gb3JtOiBGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgc2VsZWN0ZWRPcHRpb246WycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICBvdGhlcklucHV0OiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH1dLFxyXG59KTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxwcml2YXRlIGZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlOiBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSxwcml2YXRlIGZ4QXBpU2VydmljZTogQXBpU2VydmljZVJlZ2lzdHJ5KSB7XHJcbiAgICAgICAgc3VwZXIoY2RyKVxyXG4gICAgICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9yZWdpc3Rlcih0aGlzLmRyb3BEb3duRm9ybSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICBcclxuICAgICAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCk9PntcclxuIHRoaXMuZHJvcERvd25Gb3JtLnBhdGNoVmFsdWUodGhpcy5mb3JtT2JqZWN0KTtcclxuICAgIH0sMTAwKVxyXG4gICBcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgIFxyXG4gICBcclxuICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykgYXMgW3N0cmluZywgYW55XVtdKSB7XHJcbiAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ2Ryb3Bkb3duLXdpdGgtb3RoZXInKSkge1xyXG4gICAgICAgICAgdGhpcy5mb3JtT2JqZWN0ID0gdmFsdWU7XHJcbiAgICAgICAgIH1cclxuICAgICAgIH1cclxuICB9KVxyXG5cclxuICAvLyAgdGhpcy5kcm9wRG93bkZvcm0uZ2V0KCdzZWxlY3RlZE9wdGlvbicpPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAvLyAgIGNvbnN0IG90aGVyQ29udHJvbCA9IHRoaXMuZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpO1xyXG4gIC8vICAgaWYgKHZhbHVlID09PSAnb3RoZXInKSB7XHJcbiAgLy8gICAgIG90aGVyQ29udHJvbD8uZW5hYmxlKCk7XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICBvdGhlckNvbnRyb2w/LmRpc2FibGUoKTtcclxuICAvLyAgICAgb3RoZXJDb250cm9sPy5yZXNldCgpO1xyXG4gIC8vICAgfVxyXG4gIC8vIH0pO1xyXG4gIGNvbnN0IHNlcnZpY2VVcmwgPSB0aGlzLmZ4QXBpU2VydmljZS5nZXRTZXJ2aWNlVXJsKHRoaXMuc2V0dGluZygnc2VydmljZU5hbWUnKSk7XHJcbiAgdGhpcy5nZXRPcHRpb25zKHNlcnZpY2VVcmwsdGhpcy5zZXR0aW5nKCdjbGluaWNhbE5vdGVzVVJMJykpO1xyXG5cclxuICB0aGlzLmRyb3BEb3duRm9ybS5nZXQoJ3NlbGVjdGVkT3B0aW9uJyk/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gIGNvbnN0IG90aGVyQ29udHJvbCA9IHRoaXMuZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpO1xyXG5cclxuICBpZiAodmFsdWUgPT09ICdvdGhlcicpIHtcclxuICAgIG90aGVyQ29udHJvbD8uZW5hYmxlKCk7XHJcbiAgICBvdGhlckNvbnRyb2w/LnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcclxuICB9IGVsc2Uge1xyXG4gICAgb3RoZXJDb250cm9sPy5kaXNhYmxlKCk7XHJcbiAgICBvdGhlckNvbnRyb2w/LnJlc2V0KCk7XHJcbiAgICBvdGhlckNvbnRyb2w/LmNsZWFyVmFsaWRhdG9ycygpOyAvL1xyXG4gIH1cclxuXHJcbiAgb3RoZXJDb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7IC8vXHJcbiAgb3RoZXJDb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XHJcbn0pO1xyXG5cclxufVxyXG5cclxuICAgICAgcHJvdGVjdGVkIHNldHRpbmdzKCk6IEZ4U2V0dGluZ1tdIHtcclxuICAgICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIG5ldyBGeFN0cmluZ1NldHRpbmcoeyBrZXk6ICdjbGluaWNhbE5vdGVzVVJMJywgJHRpdGxlOiAnQVBJIFVybCcsIHZhbHVlOiAnJyB9KSxcclxuICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2N1c3RvbUNsYXNzJywgJHRpdGxlOiAnQ3VzdG9tIENsYXNzIE5hbWUnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnc2VsZWN0LWxhYmVsJywgJHRpdGxlOiAnTGFiZWwnLCB2YWx1ZTogJycgfSksIFxyXG4gICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ290aGVyLWxhYmVsJywgJHRpdGxlOiAnT3RoZXIgTGFiZWwnLCB2YWx1ZTogJycgfSksXHJcbiAgICAgICAgICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ290aGVyLXBsYWNlaG9sZGVyJywgJHRpdGxlOiAnT3RoZXIgUGxhY2Vob2xkZXInLCB2YWx1ZTogJycgfSksICBcclxuICAgICAgICAgICAgICBuZXcgRnhTZWxlY3RTZXR0aW5nKHtrZXk6ICdzZXJ2aWNlTmFtZScsICR0aXRsZTogJ1NlcnZpY2UnLCB2YWx1ZTogJyd9LCBbe29wdGlvbjogJ1VzZXIgU2VydmljZScsIHZhbHVlOiAndXNlcl9zZXJ2aWNlJ30sIHtvcHRpb246ICdQYXRpZW50IFNlcnZpY2UnLCB2YWx1ZTogJ3BhdGllbnRfc2VydmljZSd9LHtvcHRpb246ICdXb3JrZmxvdyBTZXJ2aWNlJywgdmFsdWU6ICd3b3JrZmxvd19zZXJ2aWNlJ31dKSxcclxuICAgICAgICAgICAgICAvLyBuZXcgRnhTZWxlY3RTZXR0aW5nKHtrZXk6ICdzZXJ2aWNlJywgJHRpdGxlOiAnU2VydmljZScsIHZhbHVlOiAnbG9jYWwnfSwgW3tvcHRpb246ICdMb2NhbCcsIHZhbHVlOiAnbG9jYWwnfSwge29wdGlvbjogJ1FBJywgdmFsdWU6ICdxYSd9LHtvcHRpb246ICdVQVQnLCB2YWx1ZTogJ3VhdCd9LHtvcHRpb246ICdQcm9kdWN0aW9uJywgdmFsdWU6ICdwcm9kJ31dKSwgICBcclxuICAgICAgICAgICAgICAvLyBuZXcgRnhTZWxlY3RTZXR0aW5nKHtrZXk6ICdpc1JlcXVpcmVkJywgJHRpdGxlOiAnUmVxdWlyZWQnLCB2YWx1ZTogdHJ1ZX0sIFt7b3B0aW9uOiAnWWVzJywgdmFsdWU6IHRydWV9LCB7b3B0aW9uOiAnTm8nLCB2YWx1ZTogZmFsc2V9XSksICAgIFxyXG4gICAgICAgICAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnZXJyb3JNZXNzYWdlJywgJHRpdGxlOiAnRXJyb3IgTWVzc2FnZScsIHZhbHVlOiAnUGxlYXNlIGZpbGwgb3V0IHRoZSBmaWVsZCcgfSksICBcclxuICAgICAgICAgIF07XHJcbiAgICAgICAgfVxyXG4gICAgICBcclxuICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgICAgICAgcmV0dXJuIFtGeFZhbGlkYXRvclNlcnZpY2UucmVxdWlyZWRdO1xyXG4gICAgICAgIH1cclxuXHJcbmdldE9wdGlvbnMoc2VydmljZVVybDogc3RyaW5nLCB1cmw6IHN0cmluZykge1xyXG4gIGNvbnN0IGZpbmFsVXJsID0gc2VydmljZVVybCArIHVybDtcclxuICB0aGlzLmh0dHAuZ2V0PGFueVtdPihmaW5hbFVybCkuc3Vic2NyaWJlKHtcclxuICAgIG5leHQ6IChyZXNwb25zZTphbnkpID0+IHtcclxuICAgICAgdGhpcy5vcHRpb25zID0gcmVzcG9uc2U/LmRhdGE7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5wdXNoKHsgdmFsdWU6ICdvdGhlcicsIGxhYmVsOiAnT3RoZXInIH0pO1xyXG4gICAgfSxcclxuICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIG9wdGlvbnMnLCBlcnIpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbn1cclxuXHJcblxyXG4iLCI8ZngtY29tcG9uZW50IFtmeERhdGFdPVwiZnhEYXRhXCIgI2Z4Q29tcG9uZW50PlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktY2VudGVyIGN1c3RvbS1kcm9wZG93blwiICBbbmdDbGFzc109XCJzZXR0aW5nKCdjdXN0b21DbGFzcycpXCIgKm5nSWY9XCJmYWxzZVwiPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZHJvcERvd25Gb3JtXCIgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC00IGl0ZW1zLXN0YXJ0XCI+XHJcbiAgICBcclxuICAgIDwhLS0gRHJvcGRvd24gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LTEvMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuXHJcbiAgICAgIDwhLS0gPGxhYmVsIGNsYXNzPVwibWItMSBmb250LXNlbWlib2xkIHRleHQtc21cIj48L2xhYmVsPiAtLT5cclxuICAgICAgPHNwYW4gIGNsYXNzPVwiaW5wdXQtbGFiZWwgZGFyazp0ZXh0LWdyYXktMzAwXCI+e3sgc2V0dGluZygnc2VsZWN0LWxhYmVsJykgfX08L3NwYW4+XHJcbiAgICAgIDxzZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwic2VsZWN0ZWRPcHRpb25cIiBjbGFzcz1cImJvcmRlciBwLTIgcm91bmRlZCB3LWZ1bGxcIj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XHJcbiAgICAgICAgICB7eyBvcHRpb24/LmxhYmVsIH19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgPHNtYWxsICpuZ0lmPVwiZHJvcERvd25Gb3JtLmdldCgnc2VsZWN0ZWRPcHRpb24nKT8udG91Y2hlZCAmJiBkcm9wRG93bkZvcm0uZ2V0KCdzZWxlY3RlZE9wdGlvbicpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIj5cclxuICAgICAgIHt7IHNldHRpbmcoJ2Vycm9yTWVzc2FnZScpfX1cclxuICAgICAgPC9zbWFsbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIE90aGVyIGlucHV0IChvbmx5IGlmICdPdGhlcicgc2VsZWN0ZWQpIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy0xLzJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsIGRhcms6dGV4dC1ncmF5LTMwMFwiPnt7IHNldHRpbmcoJ290aGVyLWxhYmVsJykgfX08L2xhYmVsPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3RoZXJJbnB1dFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3NldHRpbmcoJ290aGVyLXBsYWNlaG9sZGVyJyl9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgdy1mdWxsXCJcclxuICAgICAgICByb3dzPVwiMlwiXHJcbiAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHNtYWxsICpuZ0lmPVwiZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpPy50b3VjaGVkICYmIGRyb3BEb3duRm9ybS5nZXQoJ290aGVySW5wdXQnKT8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+XHJcbiAgICAgICAgT3RoZXIgaXMgcmVxdWlyZWQuXHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgXHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjdXN0b20tZHJvcGRvd25cIiBbbmdDbGFzc109XCJzZXR0aW5nKCdjdXN0b21DbGFzcycpXCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJkcm9wRG93bkZvcm1cIiBjbGFzcz1cImZsZXggZ2FwLTQgdy1mdWxsXCI+XHJcbiAgICBcclxuICAgIDwhLS0gRHJvcGRvd24gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleC0xXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsIGRhcms6dGV4dC1ncmF5LTMwMFwiPlxyXG4gICAgICAgIHt7IHNldHRpbmcoJ3NlbGVjdC1sYWJlbCcpIH19XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDxzZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZE9wdGlvblwiXHJcbiAgICAgICAgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgdy1mdWxsXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3Q8L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cclxuICAgICAgICAgIHt7IG9wdGlvbj8ubGFiZWwgfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgIDxzbWFsbCAqbmdJZj1cImRyb3BEb3duRm9ybS5nZXQoJ3NlbGVjdGVkT3B0aW9uJyk/LnRvdWNoZWQgJiYgZHJvcERvd25Gb3JtLmdldCgnc2VsZWN0ZWRPcHRpb24nKT8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+XHJcbiAgICAgICB7eyBzZXR0aW5nKCdlcnJvck1lc3NhZ2UnKX19XHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIE90aGVyIGlucHV0IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiPlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbCBkYXJrOnRleHQtZ3JheS0zMDBcIj5cclxuICAgICAgICB7eyBzZXR0aW5nKCdvdGhlci1sYWJlbCcpIH19XHJcbiAgICAgIDwvbGFiZWw+XHJcbiAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm90aGVySW5wdXRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgc2V0dGluZygnb3RoZXItcGxhY2Vob2xkZXInKSB9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJib3JkZXIgcC0yIHJvdW5kZWQgdy1mdWxsXCJcclxuICAgICAgICByb3dzPVwiMlwiXHJcbiAgICAgID48L3RleHRhcmVhPlxyXG5cclxuICAgICAgPHNtYWxsXHJcbiAgICAgICAgKm5nSWY9XCJkcm9wRG93bkZvcm0uZ2V0KCdvdGhlcklucHV0Jyk/LnRvdWNoZWQgJiYgZHJvcERvd25Gb3JtLmdldCgnb3RoZXJJbnB1dCcpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgT3RoZXIgaXMgcmVxdWlyZWQuXHJcbiAgICAgIDwvc21hbGw+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9mb3JtPlxyXG48L2Rpdj5cclxuXHJcblxyXG5cclxuPC9meC1jb21wb25lbnQ+XHJcblxyXG4gICAgICA8IS0tIDxzbWFsbCAqbmdJZj1cImRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy50b3VjaGVkICYmIGRhdGVQaWNrZXJGb3JtLmdldCgnZGF0ZScpPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiXHJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC01MDBcIj5cclxuICAgICAgICBEYXRlIGlzIHJlcXVpcmVkLlxyXG4gICAgICA8L3NtYWxsPiAtLT4iXX0=
|