@bsachref/ng-form 1.0.2 → 1.0.4
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/LICENSE +1 -1
- package/README.md +5 -7
- package/app/base.component.d.ts +23 -0
- package/app/default-forms/default-forms.component.d.ts +3 -19
- package/app/material-form/material-form.component.d.ts +3 -16
- package/app/prime-form/prime-form.component.d.ts +3 -19
- package/esm2022/app/base.component.mjs +113 -0
- package/esm2022/app/default-forms/default-forms.component.mjs +9 -87
- package/esm2022/app/formControlConfig.mjs +1 -1
- package/esm2022/app/material-form/material-form.component.mjs +12 -78
- package/esm2022/app/prime-form/prime-form.component.mjs +14 -103
- package/esm2022/app/validation-messages/validation-messages.component.mjs +2 -2
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/bsachref-ng-form.mjs +116 -292
- package/fesm2022/bsachref-ng-form.mjs.map +1 -1
- package/package.json +20 -3
- package/app/file-upload-accessor.directive.d.ts +0 -13
- package/esm2022/app/file-upload-accessor.directive.mjs +0 -52
@@ -54,10 +54,9 @@
|
|
54
54
|
* @method onSubmit - Handles form submission, validates the form, and emits the form value.
|
55
55
|
*/
|
56
56
|
import { CommonModule } from '@angular/common';
|
57
|
-
import { ChangeDetectionStrategy, Component
|
58
|
-
import { ReactiveFormsModule, FormsModule
|
57
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
58
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
59
59
|
import { ValidationMessagesComponent } from '../validation-messages/validation-messages.component';
|
60
|
-
import { BehaviorSubject } from 'rxjs';
|
61
60
|
import { InputTextModule } from 'primeng/inputtext';
|
62
61
|
import { MultiSelectModule } from 'primeng/multiselect';
|
63
62
|
import { TextareaModule } from 'primeng/textarea';
|
@@ -69,10 +68,10 @@ import { SliderModule } from 'primeng/slider';
|
|
69
68
|
import { ButtonModule } from 'primeng/button';
|
70
69
|
import { DatePickerModule } from 'primeng/datepicker';
|
71
70
|
import { SelectModule } from 'primeng/select';
|
72
|
-
import {
|
71
|
+
import { BaseFormsComponent } from '../base.component';
|
73
72
|
import * as i0 from "@angular/core";
|
74
|
-
import * as i1 from "@angular/
|
75
|
-
import * as i2 from "@angular/
|
73
|
+
import * as i1 from "@angular/common";
|
74
|
+
import * as i2 from "@angular/forms";
|
76
75
|
import * as i3 from "primeng/inputtext";
|
77
76
|
import * as i4 from "primeng/multiselect";
|
78
77
|
import * as i5 from "primeng/textarea";
|
@@ -83,112 +82,25 @@ import * as i9 from "primeng/togglebutton";
|
|
83
82
|
import * as i10 from "primeng/slider";
|
84
83
|
import * as i11 from "primeng/button";
|
85
84
|
import * as i12 from "primeng/select";
|
86
|
-
export class PrimeNgFormsComponent {
|
87
|
-
fb;
|
88
|
-
cdr;
|
89
|
-
formName = input.required();
|
90
|
-
controls = input.required();
|
91
|
-
formSubmit = output();
|
92
|
-
form;
|
93
|
-
formChanges$ = new BehaviorSubject(false);
|
94
|
-
constructor(fb, cdr) {
|
95
|
-
this.fb = fb;
|
96
|
-
this.cdr = cdr;
|
97
|
-
}
|
98
|
-
ngOnInit() {
|
99
|
-
this.initializeForm();
|
100
|
-
}
|
101
|
-
initializeForm() {
|
102
|
-
const formControls = {};
|
103
|
-
this.controls().forEach((control) => {
|
104
|
-
formControls[control.name] = [
|
105
|
-
control.value ?? null,
|
106
|
-
this.getValidators(control),
|
107
|
-
];
|
108
|
-
});
|
109
|
-
this.form = this.fb.group(formControls);
|
110
|
-
this.controls().forEach((control) => {
|
111
|
-
const formControl = this.form.get(control.name);
|
112
|
-
if (formControl) {
|
113
|
-
formControl.valueChanges.subscribe((value) => {
|
114
|
-
this.updateValidators(formControl, value);
|
115
|
-
});
|
116
|
-
}
|
117
|
-
});
|
118
|
-
this.formChanges$.subscribe(() => this.cdr.markForCheck());
|
119
|
-
}
|
120
|
-
getValidators(control) {
|
121
|
-
const validators = [];
|
122
|
-
if (control.validators) {
|
123
|
-
control.validators.forEach((validator) => {
|
124
|
-
if (validator.required)
|
125
|
-
validators.push(Validators.required);
|
126
|
-
if (validator.minlength)
|
127
|
-
validators.push(Validators.minLength(validator.minlength));
|
128
|
-
if (validator.maxlength)
|
129
|
-
validators.push(Validators.maxLength(validator.maxlength));
|
130
|
-
if (validator.pattern)
|
131
|
-
validators.push(Validators.pattern(validator.pattern));
|
132
|
-
if (validator.email)
|
133
|
-
validators.push(Validators.email);
|
134
|
-
if (validator.custom)
|
135
|
-
validators.push(validator.custom);
|
136
|
-
});
|
137
|
-
}
|
138
|
-
return validators;
|
139
|
-
}
|
140
|
-
updateValidators(control, value) {
|
141
|
-
if (this.shouldRequireValidation(value)) {
|
142
|
-
control.addValidators(Validators.required);
|
143
|
-
}
|
144
|
-
else {
|
145
|
-
control.removeValidators(Validators.required);
|
146
|
-
}
|
147
|
-
control.updateValueAndValidity();
|
148
|
-
this.formChanges$.next(true);
|
149
|
-
}
|
150
|
-
shouldRequireValidation(value) {
|
151
|
-
return value !== null && value !== '';
|
152
|
-
}
|
85
|
+
export class PrimeNgFormsComponent extends BaseFormsComponent {
|
153
86
|
onFileSelect(event, controlName) {
|
154
|
-
const file = event.files[0];
|
87
|
+
const file = event.files[0];
|
155
88
|
if (file) {
|
156
|
-
console.log(`Selected file for ${controlName}:`, file);
|
157
|
-
console.log(this.form.get(controlName)?.value);
|
158
89
|
this.form.get(controlName)?.setValue(file);
|
159
|
-
|
160
|
-
this.
|
161
|
-
// Emit the onUpload event if defined
|
162
|
-
const controlConfig = this.controls().find(control => control.name === controlName);
|
90
|
+
this.form.get(controlName)?.updateValueAndValidity();
|
91
|
+
const controlConfig = this.controls().find((control) => control.name === controlName);
|
163
92
|
if (controlConfig?.events?.onUpload) {
|
164
93
|
controlConfig.events.onUpload(event);
|
165
94
|
}
|
166
95
|
}
|
167
96
|
}
|
168
|
-
|
169
|
-
this.form.markAllAsTouched();
|
170
|
-
this.form.markAsDirty();
|
171
|
-
this.form.updateValueAndValidity();
|
172
|
-
if (this.form.valid) {
|
173
|
-
this.formSubmit.emit(this.form.value);
|
174
|
-
this.form.reset();
|
175
|
-
// Clear the file input
|
176
|
-
const fileInput = document.querySelector('input[type="file"]');
|
177
|
-
if (fileInput) {
|
178
|
-
fileInput.value = '';
|
179
|
-
}
|
180
|
-
}
|
181
|
-
else {
|
182
|
-
console.error('Form Invalid');
|
183
|
-
}
|
184
|
-
this.formChanges$.next(true);
|
185
|
-
}
|
186
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrimeNgFormsComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
187
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PrimeNgFormsComponent, isStandalone: true, selector: "primeng-forms", inputs: { formName: { classPropertyName: "formName", publicName: "formName", isSignal: true, isRequired: true, transformFunction: null }, controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: "<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"primeng\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @switch (control.type) {\n @case (\"text\") {\n <input\n pInputText\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"number\") {\n <input\n pInputText\n type=\"number\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"password\") {\n <input\n pInputText\n type=\"password\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"email\") {\n <input\n pInputText\n type=\"email\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"select\") {\n <p-select\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"multi-select\") {\n <p-multiSelect\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-multiSelect>\n }\n @case (\"textarea\") {\n <textarea\n pTextarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n ></textarea>\n }\n @case (\"checkbox\") {\n <p-checkbox\n [binary]=\"true\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-checkbox>\n }\n @case (\"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <p-radioButton\n [name]=\"control.name\"\n [formControlName]=\"control.name\"\n [value]=\"option\"\n [inputId]=\"'radio-' + option\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-radioButton>\n <label [for]=\"'radio-' + option\">{{ option }}</label>\n </div>\n }\n }\n @case (\"date\") {\n <p-datepicker\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"toggle\") {\n <p-toggleButton\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-toggleButton>\n }\n <!-- @case (\"file\") {\n <p-fileUpload \n [customUpload]=\"true\"\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n\n <p-fileUpload\n [customUpload]=\"true\"\n (onUpload)=\"onFileSelect($event, control.name)\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n [chooseLabel]=\"control.primeng?.chooseLabel\"\n [uploadLabel]=\"control.primeng?.uploadLabel\"\n [cancelLabel]=\"control.primeng?.cancelLabel\"\n [auto]=\"control.primeng?.auto\"\n [url]=\"control.primeng?.url\"\n [withCredentials]=\"control.primeng?.withCredentials\"\n [multiple]=\"control.primeng?.multiple\"\n [maxFileSize]=\"control.primeng?.maxFileSize\"\n [customUpload]=\"control.primeng?.customUpload\"\n [showUploadButton]=\"control.primeng?.showUploadButton\"\n [showCancelButton]=\"control.primeng?.showCancelButton\"\n [accept]=\"control.primeng?.accept\"\n [mode]=\"control.primeng?.mode\"\n [previewWidth]=\"control.primeng?.previewWidth\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n <ng-template pTemplate=\"content\">\n <p-button label=\"Choose File\" icon=\"pi pi-upload\"></p-button>\n </ng-template>\n </p-fileUpload>\n } -->\n @case (\"slider\") {\n <p-slider\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onSlideEnd)=\"control.events?.onSlideEnd?.($event)\"\n ></p-slider>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button\n pButton\n type=\"submit\"\n [disabled]=\"form.invalid\"\n label=\"Submit\"\n ></button>\n</form>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ValidationMessagesComponent, selector: "validation-messages", inputs: ["control", "controlName", "config"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i3.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i4.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: TextareaModule }, { kind: "directive", type: i5.Textarea, selector: "[pTextarea]", inputs: ["autoResize", "variant", "fluid", "pSize"], outputs: ["onResize"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i6.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i7.RadioButton, selector: "p-radioButton, p-radiobutton, p-radio-button", inputs: ["value", "formControlName", "name", "disabled", "variant", "size", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "autofocus", "binary"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i8.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: ToggleButtonModule }, { kind: "component", type: i9.ToggleButton, selector: "p-toggleButton, p-togglebutton, p-toggle-button", inputs: ["onLabel", "offLabel", "onIcon", "offIcon", "ariaLabel", "ariaLabelledBy", "disabled", "style", "styleClass", "inputId", "tabindex", "size", "iconPos", "autofocus", "allowEmpty"], outputs: ["onChange"] }, { kind: "ngmodule", type: FileUploadModule }, { kind: "ngmodule", type: SliderModule }, { kind: "component", type: i10.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabel", "ariaLabelledBy", "tabindex", "autofocus"], outputs: ["onChange", "onSlideEnd"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i11.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i12.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
97
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrimeNgFormsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
98
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: PrimeNgFormsComponent, isStandalone: true, selector: "primeng-forms", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"primeng\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @switch (control.type) {\n @case (\"text\") {\n <input\n pInputText\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"number\") {\n <input\n pInputText\n type=\"number\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"password\") {\n <input\n pInputText\n type=\"password\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"email\") {\n <input\n pInputText\n type=\"email\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"select\") {\n <p-select\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"multi-select\") {\n <p-multiSelect\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-multiSelect>\n }\n @case (\"textarea\") {\n <textarea\n pTextarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n ></textarea>\n }\n @case (\"checkbox\") {\n <p-checkbox\n [binary]=\"true\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-checkbox>\n }\n @case (\"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <p-radioButton\n [name]=\"control.name\"\n [formControlName]=\"control.name\"\n [value]=\"option\"\n [inputId]=\"'radio-' + option\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-radioButton>\n <label [for]=\"'radio-' + option\">{{ option }}</label>\n </div>\n }\n }\n @case (\"date\") {\n <p-datepicker\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"toggle\") {\n <p-toggleButton\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-toggleButton>\n }\n <!-- @case (\"file\") {\n <p-fileUpload \n [customUpload]=\"true\"\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n\n <p-fileUpload\n [customUpload]=\"true\"\n (onUpload)=\"onFileSelect($event, control.name)\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n [chooseLabel]=\"control.primeng?.chooseLabel\"\n [uploadLabel]=\"control.primeng?.uploadLabel\"\n [cancelLabel]=\"control.primeng?.cancelLabel\"\n [auto]=\"control.primeng?.auto\"\n [url]=\"control.primeng?.url\"\n [withCredentials]=\"control.primeng?.withCredentials\"\n [multiple]=\"control.primeng?.multiple\"\n [maxFileSize]=\"control.primeng?.maxFileSize\"\n [customUpload]=\"control.primeng?.customUpload\"\n [showUploadButton]=\"control.primeng?.showUploadButton\"\n [showCancelButton]=\"control.primeng?.showCancelButton\"\n [accept]=\"control.primeng?.accept\"\n [mode]=\"control.primeng?.mode\"\n [previewWidth]=\"control.primeng?.previewWidth\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n <ng-template pTemplate=\"content\">\n <p-button label=\"Choose File\" icon=\"pi pi-upload\"></p-button>\n </ng-template>\n </p-fileUpload>\n } -->\n @case (\"slider\") {\n <p-slider\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onSlideEnd)=\"control.events?.onSlideEnd?.($event)\"\n ></p-slider>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button\n pButton\n type=\"submit\"\n [disabled]=\"form.invalid\"\n label=\"Submit\"\n ></button>\n</form>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ValidationMessagesComponent, selector: "validation-messages", inputs: ["control", "controlName", "config"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i3.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i4.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: TextareaModule }, { kind: "directive", type: i5.Textarea, selector: "[pTextarea]", inputs: ["autoResize", "variant", "fluid", "pSize"], outputs: ["onResize"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i6.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "name", "disabled", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "inputStyle", "styleClass", "inputClass", "indeterminate", "size", "formControl", "checkboxIcon", "readonly", "required", "autofocus", "trueValue", "falseValue", "variant"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i7.RadioButton, selector: "p-radioButton, p-radiobutton, p-radio-button", inputs: ["value", "formControlName", "name", "disabled", "variant", "size", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "autofocus", "binary"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i8.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: ToggleButtonModule }, { kind: "component", type: i9.ToggleButton, selector: "p-toggleButton, p-togglebutton, p-toggle-button", inputs: ["onLabel", "offLabel", "onIcon", "offIcon", "ariaLabel", "ariaLabelledBy", "disabled", "style", "styleClass", "inputId", "tabindex", "size", "iconPos", "autofocus", "allowEmpty"], outputs: ["onChange"] }, { kind: "ngmodule", type: FileUploadModule }, { kind: "ngmodule", type: SliderModule }, { kind: "component", type: i10.Slider, selector: "p-slider", inputs: ["animate", "disabled", "min", "max", "orientation", "step", "range", "style", "styleClass", "ariaLabel", "ariaLabelledBy", "tabindex", "autofocus"], outputs: ["onChange", "onSlideEnd"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i11.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: SelectModule }, { kind: "component", type: i12.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
188
99
|
}
|
189
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PrimeNgFormsComponent, decorators: [{
|
190
101
|
type: Component,
|
191
102
|
args: [{ selector: 'primeng-forms', standalone: true, imports: [
|
103
|
+
BaseFormsComponent,
|
192
104
|
CommonModule,
|
193
105
|
FormsModule,
|
194
106
|
ReactiveFormsModule,
|
@@ -204,7 +116,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
204
116
|
SliderModule,
|
205
117
|
ButtonModule,
|
206
118
|
SelectModule,
|
207
|
-
FileUploadValueAccessor
|
208
119
|
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"primeng\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @switch (control.type) {\n @case (\"text\") {\n <input\n pInputText\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"number\") {\n <input\n pInputText\n type=\"number\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"password\") {\n <input\n pInputText\n type=\"password\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"email\") {\n <input\n pInputText\n type=\"email\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n />\n }\n @case (\"select\") {\n <p-select\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"multi-select\") {\n <p-multiSelect\n [options]=\"control.options\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-multiSelect>\n }\n @case (\"textarea\") {\n <textarea\n pTextarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n (change)=\"control.events?.onChange?.($event)\"\n (focus)=\"control.events?.onFocus?.($event)\"\n (blur)=\"control.events?.onBlur?.($event)\"\n (keyup)=\"control.events?.onKeyUp?.($event)\"\n (keydown)=\"control.events?.onKeyDown?.($event)\"\n (paste)=\"control.events?.onPaste?.($event)\"\n ></textarea>\n }\n @case (\"checkbox\") {\n <p-checkbox\n [binary]=\"true\"\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-checkbox>\n }\n @case (\"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <p-radioButton\n [name]=\"control.name\"\n [formControlName]=\"control.name\"\n [value]=\"option\"\n [inputId]=\"'radio-' + option\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-radioButton>\n <label [for]=\"'radio-' + option\">{{ option }}</label>\n </div>\n }\n }\n @case (\"date\") {\n <p-datepicker\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n />\n }\n @case (\"toggle\") {\n <p-toggleButton\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onFocus)=\"control.events?.onFocus?.($event)\"\n (onBlur)=\"control.events?.onBlur?.($event)\"\n ></p-toggleButton>\n }\n <!-- @case (\"file\") {\n <p-fileUpload \n [customUpload]=\"true\"\n [formControlName]=\"control.name\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n\n <p-fileUpload\n [customUpload]=\"true\"\n (onUpload)=\"onFileSelect($event, control.name)\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n [chooseLabel]=\"control.primeng?.chooseLabel\"\n [uploadLabel]=\"control.primeng?.uploadLabel\"\n [cancelLabel]=\"control.primeng?.cancelLabel\"\n [auto]=\"control.primeng?.auto\"\n [url]=\"control.primeng?.url\"\n [withCredentials]=\"control.primeng?.withCredentials\"\n [multiple]=\"control.primeng?.multiple\"\n [maxFileSize]=\"control.primeng?.maxFileSize\"\n [customUpload]=\"control.primeng?.customUpload\"\n [showUploadButton]=\"control.primeng?.showUploadButton\"\n [showCancelButton]=\"control.primeng?.showCancelButton\"\n [accept]=\"control.primeng?.accept\"\n [mode]=\"control.primeng?.mode\"\n [previewWidth]=\"control.primeng?.previewWidth\"\n (onSelect)=\"control.events?.onSelect?.($event)\"\n (onClear)=\"control.events?.onClear?.($event)\"\n (onRemove)=\"control.events?.onRemove?.($event)\"\n (onError)=\"control.events?.onError?.($event)\"\n (onBeforeUpload)=\"control.events?.onBeforeUpload?.($event)\"\n (onProgress)=\"control.events?.onProgress?.($event)\"\n (onUpload)=\"control.events?.onUpload?.($event)\"\n >\n <ng-template pTemplate=\"content\">\n <p-button label=\"Choose File\" icon=\"pi pi-upload\"></p-button>\n </ng-template>\n </p-fileUpload>\n } -->\n @case (\"slider\") {\n <p-slider\n [formControlName]=\"control.name\"\n (onChange)=\"control.events?.onChange?.($event)\"\n (onSlideEnd)=\"control.events?.onSlideEnd?.($event)\"\n ></p-slider>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button\n pButton\n type=\"submit\"\n [disabled]=\"form.invalid\"\n label=\"Submit\"\n ></button>\n</form>\n" }]
|
209
|
-
}]
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uZ0Zvcm0vc3JjL2FwcC9wcmltZS1mb3JtL3ByaW1lLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbmdGb3JtL3NyYy9hcHAvcHJpbWUtZm9ybS9wcmltZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzREc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFdBQVcsRUFJWCxVQUFVLEdBRVgsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUVuRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUs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RUFBRSxDQUFDO2dCQUNkLFNBQVMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7d0dBaEhVLHFCQUFxQjs0RkFBckIscUJBQXFCLDRYQ2xIbEMsNnRTQXFOQSx5RER4SEksWUFBWSxpTkFDWixXQUFXLDZ6QkFDWCxtQkFBbUIsZ1ZBQ25CLDJCQUEyQiw2R0FDM0IsZUFBZSwwSUFDZixpQkFBaUIsZzVDQUNqQixjQUFjLDZLQUNkLGNBQWMsa2NBQ2QsaUJBQWlCLGlXQUNqQixnQkFBZ0IsMDFDQUNoQixrQkFBa0IsNlZBQ2xCLGdCQUFnQiw4QkFDaEIsWUFBWSxnU0FDWixZQUFZLHFRQUNaLFlBQVk7OzRGQU9ILHFCQUFxQjtrQkF6QmpDLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQiwyQkFBMkI7d0JBQzNCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLFlBQVk7d0JBQ1osWUFBWTt3QkFDWix1QkFBdUI7cUJBQ3hCLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcmltZU5nRm9ybXNDb21wb25lbnQgaXMgYSBzdGFuZGFsb25lIEFuZ3VsYXIgY29tcG9uZW50IHRoYXQgZHluYW1pY2FsbHkgZ2VuZXJhdGVzXG4gKiBhIGZvcm0gYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24uIEl0IGxldmVyYWdlcyBQcmltZU5HIFVJIGNvbXBvbmVudHNcbiAqIGFuZCBBbmd1bGFyIFJlYWN0aXZlIEZvcm1zIGZvciBmb3JtIGNyZWF0aW9uIGFuZCB2YWxpZGF0aW9uLlxuICogXG4gKiBAc2VsZWN0b3IgcHJpbWVuZy1mb3Jtc1xuICogQHN0YW5kYWxvbmUgdHJ1ZVxuICogQGltcG9ydHMgW1xuICogICBDb21tb25Nb2R1bGUsXG4gKiAgIEZvcm1zTW9kdWxlLFxuICogICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICogICBWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQsXG4gKiAgIElucHV0VGV4dE1vZHVsZSxcbiAqICAgTXVsdGlTZWxlY3RNb2R1bGUsXG4gKiAgIFRleHRhcmVhTW9kdWxlLFxuICogICBDaGVja2JveE1vZHVsZSxcbiAqICAgUmFkaW9CdXR0b25Nb2R1bGUsXG4gKiAgIERhdGVQaWNrZXJNb2R1bGUsXG4gKiAgIFRvZ2dsZUJ1dHRvbk1vZHVsZSxcbiAqICAgRmlsZVVwbG9hZE1vZHVsZSxcbiAqICAgU2xpZGVyTW9kdWxlLFxuICogICBCdXR0b25Nb2R1bGUsXG4gKiAgIFNlbGVjdE1vZHVsZSxcbiAqICAgRmlsZVVwbG9hZFZhbHVlQWNjZXNzb3JcbiAqIF1cbiAqIEB0ZW1wbGF0ZVVybCAuL3ByaW1lLWZvcm0uY29tcG9uZW50Lmh0bWxcbiAqIEBzdHlsZVVybCAuL3ByaW1lLWZvcm0uY29tcG9uZW50LmNzc1xuICogQGNoYW5nZURldGVjdGlvbiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbiAqIFxuICogQHByb3BlcnR5IHtzdHJpbmd9IGZvcm1OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0uXG4gKiBAcHJvcGVydHkge0Zvcm1Db250cm9sQ29uZmlnW119IGNvbnRyb2xzIC0gVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBmb3JtIGNvbnRyb2xzLlxuICogQHByb3BlcnR5IHtFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj59IGZvcm1TdWJtaXQgLSBFdmVudCBlbWl0dGVyIGZvciBmb3JtIHN1Ym1pc3Npb24uXG4gKiBAcHJvcGVydHkge0Zvcm1Hcm91cH0gZm9ybSAtIFRoZSByZWFjdGl2ZSBmb3JtIGdyb3VwLlxuICogQHByb3BlcnR5IHtCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj59IGZvcm1DaGFuZ2VzJCAtIE9ic2VydmFibGUgdG8gdHJhY2sgZm9ybSBjaGFuZ2VzLlxuICogXG4gKiBAY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7Rm9ybUJ1aWxkZXJ9IGZiIC0gRm9ybUJ1aWxkZXIgc2VydmljZSB0byBjcmVhdGUgZm9ybSBjb250cm9scy5cbiAqIEBwYXJhbSB7Q2hhbmdlRGV0ZWN0b3JSZWZ9IGNkciAtIENoYW5nZURldGVjdG9yUmVmIHRvIG1hbnVhbGx5IHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbi5cbiAqIFxuICogQG1ldGhvZCBuZ09uSW5pdCAtIExpZmVjeWNsZSBob29rIHRoYXQgaW5pdGlhbGl6ZXMgdGhlIGZvcm0uXG4gKiBAbWV0aG9kIGluaXRpYWxpemVGb3JtIC0gSW5pdGlhbGl6ZXMgdGhlIGZvcm0gY29udHJvbHMgYW5kIHNldHMgdXAgdmFsdWUgY2hhbmdlIHN1YnNjcmlwdGlvbnMuXG4gKiBAbWV0aG9kIGdldFZhbGlkYXRvcnMgLSBSZXR1cm5zIGFuIGFycmF5IG9mIHZhbGlkYXRvcnMgZm9yIGEgZ2l2ZW4gZm9ybSBjb250cm9sIGNvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0ge0Zvcm1Db250cm9sQ29uZmlnfSBjb250cm9sIC0gVGhlIGNvbmZpZ3VyYXRpb24gZm9yIGEgZm9ybSBjb250cm9sLlxuICogQHJldHVybnMge1ZhbGlkYXRvckZuW119IC0gQW4gYXJyYXkgb2YgdmFsaWRhdG9yIGZ1bmN0aW9ucy5cbiAqIEBtZXRob2QgdXBkYXRlVmFsaWRhdG9ycyAtIFVwZGF0ZXMgdGhlIHZhbGlkYXRvcnMgZm9yIGEgZm9ybSBjb250cm9sIGJhc2VkIG9uIGl0cyB2YWx1ZS5cbiAqIEBwYXJhbSB7QWJzdHJhY3RDb250cm9sfSBjb250cm9sIC0gVGhlIGZvcm0gY29udHJvbCB0byB1cGRhdGUuXG4gKiBAcGFyYW0ge2FueX0gdmFsdWUgLSBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZm9ybSBjb250cm9sLlxuICogQG1ldGhvZCBzaG91bGRSZXF1aXJlVmFsaWRhdGlvbiAtIERldGVybWluZXMgaWYgYSBmb3JtIGNvbnRyb2wgc2hvdWxkIHJlcXVpcmUgdmFsaWRhdGlvbi5cbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBmb3JtIGNvbnRyb2wuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBUcnVlIGlmIHZhbGlkYXRpb24gaXMgcmVxdWlyZWQsIGZhbHNlIG90aGVyd2lzZS5cbiAqIEBtZXRob2Qgb25GaWxlU2VsZWN0IC0gSGFuZGxlcyBmaWxlIHNlbGVjdGlvbiBmb3IgZmlsZSB1cGxvYWQgY29udHJvbHMuXG4gKiBAcGFyYW0ge2FueX0gZXZlbnQgLSBUaGUgZmlsZSBzZWxlY3Rpb24gZXZlbnQuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29udHJvbE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZm9ybSBjb250cm9sLlxuICogQG1ldGhvZCBvblN1Ym1pdCAtIEhhbmRsZXMgZm9ybSBzdWJtaXNzaW9uLCB2YWxpZGF0ZXMgdGhlIGZvcm0sIGFuZCBlbWl0cyB0aGUgZm9ybSB2YWx1ZS5cbiAqL1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIEZvcm1zTW9kdWxlLFxuICBGb3JtR3JvdXAsXG4gIEZvcm1CdWlsZGVyLFxuICBWYWxpZGF0b3JGbixcbiAgVmFsaWRhdG9ycyxcbiAgQWJzdHJhY3RDb250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uLW1lc3NhZ2VzL3ZhbGlkYXRpb24tbWVzc2FnZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250cm9sQ29uZmlnIH0gZnJvbSAnLi4vZm9ybUNvbnRyb2xDb25maWcnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbnB1dFRleHRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0dGV4dCc7XG5pbXBvcnQgeyBNdWx0aVNlbGVjdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvbXVsdGlzZWxlY3QnO1xuaW1wb3J0IHsgVGV4dGFyZWFNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RleHRhcmVhJztcbmltcG9ydCB7IENoZWNrYm94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmFkaW9idXR0b24nO1xuaW1wb3J0IHsgVG9nZ2xlQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2dnbGVidXR0b24nO1xuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XG5pbXBvcnQgeyBTbGlkZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NsaWRlcic7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBEYXRlUGlja2VyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kYXRlcGlja2VyJztcbmltcG9ydCB7IFNlbGVjdE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2VsZWN0JztcbmltcG9ydCB7IEZpbGVVcGxvYWRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi4vZmlsZS11cGxvYWQtYWNjZXNzb3IuZGlyZWN0aXZlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcmltZW5nLWZvcm1zJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRpb25NZXNzYWdlc0NvbXBvbmVudCxcbiAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgTXVsdGlTZWxlY3RNb2R1bGUsXG4gICAgVGV4dGFyZWFNb2R1bGUsXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXG4gICAgRGF0ZVBpY2tlck1vZHVsZSxcbiAgICBUb2dnbGVCdXR0b25Nb2R1bGUsXG4gICAgRmlsZVVwbG9hZE1vZHVsZSxcbiAgICBTbGlkZXJNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIFNlbGVjdE1vZHVsZSxcbiAgICBGaWxlVXBsb2FkVmFsdWVBY2Nlc3NvclxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJpbWUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9wcmltZS1mb3JtLmNvbXBvbmVudC5jc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUHJpbWVOZ0Zvcm1zQ29tcG9uZW50IHtcbiAgZm9ybU5hbWUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIGNvbnRyb2xzID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUNvbnRyb2xDb25maWdbXT4oKTtcbiAgZm9ybVN1Ym1pdCA9IG91dHB1dDxSZWNvcmQ8c3RyaW5nLCBhbnk+PigpO1xuXG4gIGZvcm0hOiBGb3JtR3JvdXA7XG4gIHByaXZhdGUgZm9ybUNoYW5nZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplRm9ybSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcblxuICAgIHRoaXMuY29udHJvbHMoKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICBmb3JtQ29udHJvbHNbY29udHJvbC5uYW1lXSA9IFtcbiAgICAgICAgY29udHJvbC52YWx1ZSA/PyBudWxsLFxuICAgICAgICB0aGlzLmdldFZhbGlkYXRvcnMoY29udHJvbCksXG4gICAgICBdO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChmb3JtQ29udHJvbHMpO1xuXG4gICAgdGhpcy5jb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtLmdldChjb250cm9sLm5hbWUpO1xuICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgIGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0b3JzKGZvcm1Db250cm9sLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtQ2hhbmdlcyQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsaWRhdG9ycyhjb250cm9sOiBGb3JtQ29udHJvbENvbmZpZyk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcblxuICAgIGlmIChjb250cm9sLnZhbGlkYXRvcnMpIHtcbiAgICAgIGNvbnRyb2wudmFsaWRhdG9ycy5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcbiAgICAgICAgaWYgKHZhbGlkYXRvci5yZXF1aXJlZCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLm1pbmxlbmd0aClcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodmFsaWRhdG9yLm1pbmxlbmd0aCkpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLm1heGxlbmd0aClcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodmFsaWRhdG9yLm1heGxlbmd0aCkpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLnBhdHRlcm4pXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih2YWxpZGF0b3IucGF0dGVybikpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLmVtYWlsKSB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5lbWFpbCk7XG4gICAgICAgIGlmICh2YWxpZGF0b3IuY3VzdG9tKSB2YWxpZGF0b3JzLnB1c2godmFsaWRhdG9yLmN1c3RvbSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsaWRhdG9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG91bGRSZXF1aXJlVmFsaWRhdGlvbih2YWx1ZSkpIHtcbiAgICAgIGNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udHJvbC5yZW1vdmVWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cblxuICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuZm9ybUNoYW5nZXMkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJlcXVpcmVWYWxpZGF0aW9uKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnO1xuICB9XG5cbiAgb25GaWxlU2VsZWN0KGV2ZW50OiBhbnksIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZmlsZXNbMF07IC8vIEdldHRpbmcgdGhlIGZpcnN0IHNlbGVjdGVkIGZpbGVcbiAgICBpZiAoZmlsZSkge1xuICAgICAgY29uc29sZS5sb2coYFNlbGVjdGVkIGZpbGUgZm9yICR7Y29udHJvbE5hbWV9OmAsIGZpbGUpO1xuICAgICAgY29uc29sZS5sb2codGhpcy5mb3JtLmdldChjb250cm9sTmFtZSk/LnZhbHVlKTtcbiAgICAgIFxuICAgICAgdGhpcy5mb3JtLmdldChjb250cm9sTmFtZSk/LnNldFZhbHVlKGZpbGUpO1xuICAgICAgY29uc29sZS5sb2codGhpcy5mb3JtLmdldChjb250cm9sTmFtZSk/LnZhbHVlKTtcbiAgICAgIHRoaXMuZm9ybS5nZXQoY29udHJvbE5hbWUpPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7IC8vIFVwZGF0ZSB0aGUgZm9ybSBjb250cm9sJ3MgdmFsaWRpdHlcbiAgXG4gICAgICAvLyBFbWl0IHRoZSBvblVwbG9hZCBldmVudCBpZiBkZWZpbmVkXG4gICAgICBjb25zdCBjb250cm9sQ29uZmlnID0gdGhpcy5jb250cm9scygpLmZpbmQoY29udHJvbCA9PiBjb250cm9sLm5hbWUgPT09IGNvbnRyb2xOYW1lKTtcbiAgICAgIGlmIChjb250cm9sQ29uZmlnPy5ldmVudHM/Lm9uVXBsb2FkKSB7XG4gICAgICAgIGNvbnRyb2xDb25maWcuZXZlbnRzLm9uVXBsb2FkKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvblN1Ym1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIFxuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgIC8vIENsZWFyIHRoZSBmaWxlIGlucHV0XG4gICAgICBjb25zdCBmaWxlSW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPVwiZmlsZVwiXScpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICBpZiAoZmlsZUlucHV0KSB7XG4gICAgICAgIGZpbGVJbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGb3JtIEludmFsaWQnKTtcbiAgICB9XG4gIFxuICAgIHRoaXMuZm9ybUNoYW5nZXMkLm5leHQodHJ1ZSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIFthdHRyLm5hbWVdPVwiZm9ybU5hbWUoKVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XG4gIEBmb3IgKGNvbnRyb2wgb2YgY29udHJvbHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgQGlmIChjb250cm9sLnVpRnJhbWV3b3JrID09PSBcInByaW1lbmdcIiB8fCAhY29udHJvbC51aUZyYW1ld29yaykge1xuICAgICAgQGlmIChmb3JtLmdldChjb250cm9sLm5hbWUpKSB7XG4gICAgICAgIDxzZWN0aW9uIFtuZ0NsYXNzXT1cImNvbnRyb2wuY2xhc3NcIiBbbmdTdHlsZV09XCJjb250cm9sLnN0eWxlXCI+XG4gICAgICAgICAgQGlmIChjb250cm9sLmxhYmVsKSB7XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgW2F0dHIuZm9yXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbnRyb2wubGFiZWxDbGFzc1wiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImNvbnRyb2wubGFiZWxTdHlsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGNvbnRyb2wubGFiZWwgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQHN3aXRjaCAoY29udHJvbC50eXBlKSB7XG4gICAgICAgICAgICBAY2FzZSAoXCJ0ZXh0XCIpIHtcbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNoYW5nZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCJjb250cm9sLmV2ZW50cz8ub25Gb2N1cz8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJsdXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXApPVwiY29udHJvbC5ldmVudHM/Lm9uS2V5VXA/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJjb250cm9sLmV2ZW50cz8ub25LZXlEb3duPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBhc3RlKT1cImNvbnRyb2wuZXZlbnRzPy5vblBhc3RlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoXCJudW1iZXJcIikge1xuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBwSW5wdXRUZXh0XG4gICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2hhbmdlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzKT1cImNvbnRyb2wuZXZlbnRzPy5vbkZvY3VzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwiY29udHJvbC5ldmVudHM/Lm9uQmx1cj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXl1cCk9XCJjb250cm9sLmV2ZW50cz8ub25LZXlVcD8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImNvbnRyb2wuZXZlbnRzPy5vbktleURvd24/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocGFzdGUpPVwiY29udHJvbC5ldmVudHM/Lm9uUGFzdGU/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChcInBhc3N3b3JkXCIpIHtcbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2hhbmdlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzKT1cImNvbnRyb2wuZXZlbnRzPy5vbkZvY3VzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwiY29udHJvbC5ldmVudHM/Lm9uQmx1cj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXl1cCk9XCJjb250cm9sLmV2ZW50cz8ub25LZXlVcD8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImNvbnRyb2wuZXZlbnRzPy5vbktleURvd24/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocGFzdGUpPVwiY29udHJvbC5ldmVudHM/Lm9uUGFzdGU/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChcImVtYWlsXCIpIHtcbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2hhbmdlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzKT1cImNvbnRyb2wuZXZlbnRzPy5vbkZvY3VzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwiY29udHJvbC5ldmVudHM/Lm9uQmx1cj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXl1cCk9XCJjb250cm9sLmV2ZW50cz8ub25LZXlVcD8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImNvbnRyb2wuZXZlbnRzPy5vbktleURvd24/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocGFzdGUpPVwiY29udHJvbC5ldmVudHM/Lm9uUGFzdGU/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChcInNlbGVjdFwiKSB7XG4gICAgICAgICAgICAgIDxwLXNlbGVjdFxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cImNvbnRyb2wub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJjb250cm9sLmV2ZW50cz8ub25DaGFuZ2U/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25Gb2N1cyk9XCJjb250cm9sLmV2ZW50cz8ub25Gb2N1cz8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvbkJsdXIpPVwiY29udHJvbC5ldmVudHM/Lm9uQmx1cj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKFwibXVsdGktc2VsZWN0XCIpIHtcbiAgICAgICAgICAgICAgPHAtbXVsdGlTZWxlY3RcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJjb250cm9sLm9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2hhbmdlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwiY29udHJvbC5ldmVudHM/Lm9uRm9jdXM/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25CbHVyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJsdXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvcC1tdWx0aVNlbGVjdD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChcInRleHRhcmVhXCIpIHtcbiAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgcFRleHRhcmVhXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2hhbmdlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzKT1cImNvbnRyb2wuZXZlbnRzPy5vbkZvY3VzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGJsdXIpPVwiY29udHJvbC5ldmVudHM/Lm9uQmx1cj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXl1cCk9XCJjb250cm9sLmV2ZW50cz8ub25LZXlVcD8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImNvbnRyb2wuZXZlbnRzPy5vbktleURvd24/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAocGFzdGUpPVwiY29udHJvbC5ldmVudHM/Lm9uUGFzdGU/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoXCJjaGVja2JveFwiKSB7XG4gICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgW2JpbmFyeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNoYW5nZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvbkZvY3VzKT1cImNvbnRyb2wuZXZlbnRzPy5vbkZvY3VzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJjb250cm9sLmV2ZW50cz8ub25CbHVyPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoXCJyYWRpb1wiKSB7XG4gICAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBjb250cm9sLm9wdGlvbnMgPz8gW107IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8cC1yYWRpb0J1dHRvblxuICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCIncmFkaW8tJyArIG9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJjb250cm9sLmV2ZW50cz8ub25DaGFuZ2U/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwiY29udHJvbC5ldmVudHM/Lm9uRm9jdXM/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQmx1cik9XCJjb250cm9sLmV2ZW50cz8ub25CbHVyPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ3JhZGlvLScgKyBvcHRpb25cIj57eyBvcHRpb24gfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoXCJkYXRlXCIpIHtcbiAgICAgICAgICAgICAgPHAtZGF0ZXBpY2tlclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiY29udHJvbC5ldmVudHM/Lm9uU2VsZWN0Py4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwiY29udHJvbC5ldmVudHM/Lm9uRm9jdXM/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25CbHVyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJsdXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChcInRvZ2dsZVwiKSB7XG4gICAgICAgICAgICAgIDxwLXRvZ2dsZUJ1dHRvblxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2hhbmdlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwiY29udHJvbC5ldmVudHM/Lm9uRm9jdXM/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25CbHVyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJsdXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvcC10b2dnbGVCdXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8IS0tIEBjYXNlIChcImZpbGVcIikge1xuICAgICAgICAgICAgICA8cC1maWxlVXBsb2FkIFxuICAgICAgICAgICAgICBbY3VzdG9tVXBsb2FkXT1cInRydWVcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgIChvblNlbGVjdCk9XCJjb250cm9sLmV2ZW50cz8ub25TZWxlY3Q/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uQ2xlYXIpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2xlYXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uUmVtb3ZlKT1cImNvbnRyb2wuZXZlbnRzPy5vblJlbW92ZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAob25FcnJvcik9XCJjb250cm9sLmV2ZW50cz8ub25FcnJvcj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAob25CZWZvcmVVcGxvYWQpPVwiY29udHJvbC5ldmVudHM/Lm9uQmVmb3JlVXBsb2FkPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChvblByb2dyZXNzKT1cImNvbnRyb2wuZXZlbnRzPy5vblByb2dyZXNzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChvblVwbG9hZCk9XCJjb250cm9sLmV2ZW50cz8ub25VcGxvYWQ/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuXG4gICAgICAgICAgICAgIDxwLWZpbGVVcGxvYWRcbiAgICAgICAgICAgICAgICBbY3VzdG9tVXBsb2FkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIChvblVwbG9hZCk9XCJvbkZpbGVTZWxlY3QoJGV2ZW50LCBjb250cm9sLm5hbWUpXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgW2lkXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgW2Nob29zZUxhYmVsXT1cImNvbnRyb2wucHJpbWVuZz8uY2hvb3NlTGFiZWxcIlxuICAgICAgICAgICAgICAgIFt1cGxvYWRMYWJlbF09XCJjb250cm9sLnByaW1lbmc/LnVwbG9hZExhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2FuY2VsTGFiZWxdPVwiY29udHJvbC5wcmltZW5nPy5jYW5jZWxMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2F1dG9dPVwiY29udHJvbC5wcmltZW5nPy5hdXRvXCJcbiAgICAgICAgICAgICAgICBbdXJsXT1cImNvbnRyb2wucHJpbWVuZz8udXJsXCJcbiAgICAgICAgICAgICAgICBbd2l0aENyZWRlbnRpYWxzXT1cImNvbnRyb2wucHJpbWVuZz8ud2l0aENyZWRlbnRpYWxzXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiY29udHJvbC5wcmltZW5nPy5tdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgW21heEZpbGVTaXplXT1cImNvbnRyb2wucHJpbWVuZz8ubWF4RmlsZVNpemVcIlxuICAgICAgICAgICAgICAgIFtjdXN0b21VcGxvYWRdPVwiY29udHJvbC5wcmltZW5nPy5jdXN0b21VcGxvYWRcIlxuICAgICAgICAgICAgICAgIFtzaG93VXBsb2FkQnV0dG9uXT1cImNvbnRyb2wucHJpbWVuZz8uc2hvd1VwbG9hZEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW3Nob3dDYW5jZWxCdXR0b25dPVwiY29udHJvbC5wcmltZW5nPy5zaG93Q2FuY2VsQnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbYWNjZXB0XT1cImNvbnRyb2wucHJpbWVuZz8uYWNjZXB0XCJcbiAgICAgICAgICAgICAgICBbbW9kZV09XCJjb250cm9sLnByaW1lbmc/Lm1vZGVcIlxuICAgICAgICAgICAgICAgIFtwcmV2aWV3V2lkdGhdPVwiY29udHJvbC5wcmltZW5nPy5wcmV2aWV3V2lkdGhcIlxuICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJjb250cm9sLmV2ZW50cz8ub25TZWxlY3Q/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25DbGVhcik9XCJjb250cm9sLmV2ZW50cz8ub25DbGVhcj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvblJlbW92ZSk9XCJjb250cm9sLmV2ZW50cz8ub25SZW1vdmU/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25FcnJvcik9XCJjb250cm9sLmV2ZW50cz8ub25FcnJvcj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvbkJlZm9yZVVwbG9hZCk9XCJjb250cm9sLmV2ZW50cz8ub25CZWZvcmVVcGxvYWQ/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25Qcm9ncmVzcyk9XCJjb250cm9sLmV2ZW50cz8ub25Qcm9ncmVzcz8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvblVwbG9hZCk9XCJjb250cm9sLmV2ZW50cz8ub25VcGxvYWQ/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8cC1idXR0b24gbGFiZWw9XCJDaG9vc2UgRmlsZVwiIGljb249XCJwaSBwaS11cGxvYWRcIj48L3AtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvcC1maWxlVXBsb2FkPlxuICAgICAgICAgICAgfSAtLT5cbiAgICAgICAgICAgIEBjYXNlIChcInNsaWRlclwiKSB7XG4gICAgICAgICAgICAgIDxwLXNsaWRlclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2hhbmdlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uU2xpZGVFbmQpPVwiY29udHJvbC5ldmVudHM/Lm9uU2xpZGVFbmQ/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvcC1zbGlkZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPHZhbGlkYXRpb24tbWVzc2FnZXNcbiAgICAgICAgICAgIFtjb250cm9sXT1cImZvcm0uZ2V0KGNvbnRyb2wubmFtZSlcIlxuICAgICAgICAgICAgW2NvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICBbY29uZmlnXT1cImNvbnRyb2xcIlxuICAgICAgICAgID48L3ZhbGlkYXRpb24tbWVzc2FnZXM+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgPGJ1dHRvblxuICAgIHBCdXR0b25cbiAgICB0eXBlPVwic3VibWl0XCJcbiAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCJcbiAgICBsYWJlbD1cIlN1Ym1pdFwiXG4gID48L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==
|
120
|
+
}] });
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uZ0Zvcm0vc3JjL2FwcC9wcmltZS1mb3JtL3ByaW1lLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbmdGb3JtL3NyYy9hcHAvcHJpbWUtZm9ybS9wcmltZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzREc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBMEJ2RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsa0JBQWtCO0lBQzNELFlBQVksQ0FBQyxLQUFVLEVBQUUsV0FBbUI7UUFDMUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLENBQUM7WUFFckQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FDeEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUMxQyxDQUFDO1lBQ0YsSUFBSSxhQUFhLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUNwQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7d0dBZFUscUJBQXFCOzRGQUFyQixxQkFBcUIsZ0dDaEdsQyw2dFNBcU5BLDJDRHhJSSxZQUFZLGlOQUNaLFdBQVcsNnpCQUNYLG1CQUFtQixnVkFDbkIsMkJBQTJCLDZHQUMzQixlQUFlLDBJQUNmLGlCQUFpQixnNUNBQ2pCLGNBQWMsNktBQ2QsY0FBYyxrY0FDZCxpQkFBaUIsaVdBQ2pCLGdCQUFnQiwwMUNBQ2hCLGtCQUFrQiw2VkFDbEIsZ0JBQWdCLDhCQUNoQixZQUFZLGdTQUNaLFlBQVkscVFBQ1osWUFBWTs7NEZBS0gscUJBQXFCO2tCQXhCakMsU0FBUzsrQkFDRSxlQUFlLGNBQ2IsSUFBSSxXQUNQO3dCQUNQLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsMkJBQTJCO3dCQUMzQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFlBQVk7cUJBQ2IsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByaW1lTmdGb3Jtc0NvbXBvbmVudCBpcyBhIHN0YW5kYWxvbmUgQW5ndWxhciBjb21wb25lbnQgdGhhdCBkeW5hbWljYWxseSBnZW5lcmF0ZXNcbiAqIGEgZm9ybSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi4gSXQgbGV2ZXJhZ2VzIFByaW1lTkcgVUkgY29tcG9uZW50c1xuICogYW5kIEFuZ3VsYXIgUmVhY3RpdmUgRm9ybXMgZm9yIGZvcm0gY3JlYXRpb24gYW5kIHZhbGlkYXRpb24uXG4gKlxuICogQHNlbGVjdG9yIHByaW1lbmctZm9ybXNcbiAqIEBzdGFuZGFsb25lIHRydWVcbiAqIEBpbXBvcnRzIFtcbiAqICAgQ29tbW9uTW9kdWxlLFxuICogICBGb3Jtc01vZHVsZSxcbiAqICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAqICAgVmFsaWRhdGlvbk1lc3NhZ2VzQ29tcG9uZW50LFxuICogICBJbnB1dFRleHRNb2R1bGUsXG4gKiAgIE11bHRpU2VsZWN0TW9kdWxlLFxuICogICBUZXh0YXJlYU1vZHVsZSxcbiAqICAgQ2hlY2tib3hNb2R1bGUsXG4gKiAgIFJhZGlvQnV0dG9uTW9kdWxlLFxuICogICBEYXRlUGlja2VyTW9kdWxlLFxuICogICBUb2dnbGVCdXR0b25Nb2R1bGUsXG4gKiAgIEZpbGVVcGxvYWRNb2R1bGUsXG4gKiAgIFNsaWRlck1vZHVsZSxcbiAqICAgQnV0dG9uTW9kdWxlLFxuICogICBTZWxlY3RNb2R1bGUsXG4gKiAgIEZpbGVVcGxvYWRWYWx1ZUFjY2Vzc29yXG4gKiBdXG4gKiBAdGVtcGxhdGVVcmwgLi9wcmltZS1mb3JtLmNvbXBvbmVudC5odG1sXG4gKiBAc3R5bGVVcmwgLi9wcmltZS1mb3JtLmNvbXBvbmVudC5jc3NcbiAqIEBjaGFuZ2VEZXRlY3Rpb24gQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGZvcm1OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0uXG4gKiBAcHJvcGVydHkge0Zvcm1Db250cm9sQ29uZmlnW119IGNvbnRyb2xzIC0gVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBmb3JtIGNvbnRyb2xzLlxuICogQHByb3BlcnR5IHtFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj59IGZvcm1TdWJtaXQgLSBFdmVudCBlbWl0dGVyIGZvciBmb3JtIHN1Ym1pc3Npb24uXG4gKiBAcHJvcGVydHkge0Zvcm1Hcm91cH0gZm9ybSAtIFRoZSByZWFjdGl2ZSBmb3JtIGdyb3VwLlxuICogQHByb3BlcnR5IHtCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj59IGZvcm1DaGFuZ2VzJCAtIE9ic2VydmFibGUgdG8gdHJhY2sgZm9ybSBjaGFuZ2VzLlxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtGb3JtQnVpbGRlcn0gZmIgLSBGb3JtQnVpbGRlciBzZXJ2aWNlIHRvIGNyZWF0ZSBmb3JtIGNvbnRyb2xzLlxuICogQHBhcmFtIHtDaGFuZ2VEZXRlY3RvclJlZn0gY2RyIC0gQ2hhbmdlRGV0ZWN0b3JSZWYgdG8gbWFudWFsbHkgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uLlxuICpcbiAqIEBtZXRob2QgbmdPbkluaXQgLSBMaWZlY3ljbGUgaG9vayB0aGF0IGluaXRpYWxpemVzIHRoZSBmb3JtLlxuICogQG1ldGhvZCBpbml0aWFsaXplRm9ybSAtIEluaXRpYWxpemVzIHRoZSBmb3JtIGNvbnRyb2xzIGFuZCBzZXRzIHVwIHZhbHVlIGNoYW5nZSBzdWJzY3JpcHRpb25zLlxuICogQG1ldGhvZCBnZXRWYWxpZGF0b3JzIC0gUmV0dXJucyBhbiBhcnJheSBvZiB2YWxpZGF0b3JzIGZvciBhIGdpdmVuIGZvcm0gY29udHJvbCBjb25maWd1cmF0aW9uLlxuICogQHBhcmFtIHtGb3JtQ29udHJvbENvbmZpZ30gY29udHJvbCAtIFRoZSBjb25maWd1cmF0aW9uIGZvciBhIGZvcm0gY29udHJvbC5cbiAqIEByZXR1cm5zIHtWYWxpZGF0b3JGbltdfSAtIEFuIGFycmF5IG9mIHZhbGlkYXRvciBmdW5jdGlvbnMuXG4gKiBAbWV0aG9kIHVwZGF0ZVZhbGlkYXRvcnMgLSBVcGRhdGVzIHRoZSB2YWxpZGF0b3JzIGZvciBhIGZvcm0gY29udHJvbCBiYXNlZCBvbiBpdHMgdmFsdWUuXG4gKiBAcGFyYW0ge0Fic3RyYWN0Q29udHJvbH0gY29udHJvbCAtIFRoZSBmb3JtIGNvbnRyb2wgdG8gdXBkYXRlLlxuICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGZvcm0gY29udHJvbC5cbiAqIEBtZXRob2Qgc2hvdWxkUmVxdWlyZVZhbGlkYXRpb24gLSBEZXRlcm1pbmVzIGlmIGEgZm9ybSBjb250cm9sIHNob3VsZCByZXF1aXJlIHZhbGlkYXRpb24uXG4gKiBAcGFyYW0ge2FueX0gdmFsdWUgLSBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZm9ybSBjb250cm9sLlxuICogQHJldHVybnMge2Jvb2xlYW59IC0gVHJ1ZSBpZiB2YWxpZGF0aW9uIGlzIHJlcXVpcmVkLCBmYWxzZSBvdGhlcndpc2UuXG4gKiBAbWV0aG9kIG9uRmlsZVNlbGVjdCAtIEhhbmRsZXMgZmlsZSBzZWxlY3Rpb24gZm9yIGZpbGUgdXBsb2FkIGNvbnRyb2xzLlxuICogQHBhcmFtIHthbnl9IGV2ZW50IC0gVGhlIGZpbGUgc2VsZWN0aW9uIGV2ZW50LlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbnRyb2xOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0gY29udHJvbC5cbiAqIEBtZXRob2Qgb25TdWJtaXQgLSBIYW5kbGVzIGZvcm0gc3VibWlzc2lvbiwgdmFsaWRhdGVzIHRoZSBmb3JtLCBhbmQgZW1pdHMgdGhlIGZvcm0gdmFsdWUuXG4gKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlc0NvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24tbWVzc2FnZXMvdmFsaWRhdGlvbi1tZXNzYWdlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL211bHRpc2VsZWN0JztcbmltcG9ydCB7IFRleHRhcmVhTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90ZXh0YXJlYSc7XG5pbXBvcnQgeyBDaGVja2JveE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hlY2tib3gnO1xuaW1wb3J0IHsgUmFkaW9CdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3JhZGlvYnV0dG9uJztcbmltcG9ydCB7IFRvZ2dsZUJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdG9nZ2xlYnV0dG9uJztcbmltcG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xuaW1wb3J0IHsgU2xpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zbGlkZXInO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgRGF0ZVBpY2tlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBTZWxlY3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3NlbGVjdCc7XG5pbXBvcnQgeyBCYXNlRm9ybXNDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByaW1lbmctZm9ybXMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQmFzZUZvcm1zQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFZhbGlkYXRpb25NZXNzYWdlc0NvbXBvbmVudCxcbiAgICBJbnB1dFRleHRNb2R1bGUsXG4gICAgTXVsdGlTZWxlY3RNb2R1bGUsXG4gICAgVGV4dGFyZWFNb2R1bGUsXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgUmFkaW9CdXR0b25Nb2R1bGUsXG4gICAgRGF0ZVBpY2tlck1vZHVsZSxcbiAgICBUb2dnbGVCdXR0b25Nb2R1bGUsXG4gICAgRmlsZVVwbG9hZE1vZHVsZSxcbiAgICBTbGlkZXJNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIFNlbGVjdE1vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByaW1lLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUHJpbWVOZ0Zvcm1zQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1zQ29tcG9uZW50IHtcbiAgb25GaWxlU2VsZWN0KGV2ZW50OiBhbnksIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZmlsZXNbMF07XG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIHRoaXMuZm9ybS5nZXQoY29udHJvbE5hbWUpPy5zZXRWYWx1ZShmaWxlKTtcbiAgICAgIHRoaXMuZm9ybS5nZXQoY29udHJvbE5hbWUpPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICAgIGNvbnN0IGNvbnRyb2xDb25maWcgPSB0aGlzLmNvbnRyb2xzKCkuZmluZChcbiAgICAgICAgKGNvbnRyb2wpID0+IGNvbnRyb2wubmFtZSA9PT0gY29udHJvbE5hbWVcbiAgICAgICk7XG4gICAgICBpZiAoY29udHJvbENvbmZpZz8uZXZlbnRzPy5vblVwbG9hZCkge1xuICAgICAgICBjb250cm9sQ29uZmlnLmV2ZW50cy5vblVwbG9hZChldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBbYXR0ci5uYW1lXT1cImZvcm1OYW1lKClcIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxuICBAZm9yIChjb250cm9sIG9mIGNvbnRyb2xzKCk7IHRyYWNrICRpbmRleCkge1xuICAgIEBpZiAoY29udHJvbC51aUZyYW1ld29yayA9PT0gXCJwcmltZW5nXCIgfHwgIWNvbnRyb2wudWlGcmFtZXdvcmspIHtcbiAgICAgIEBpZiAoZm9ybS5nZXQoY29udHJvbC5uYW1lKSkge1xuICAgICAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJjb250cm9sLmNsYXNzXCIgW25nU3R5bGVdPVwiY29udHJvbC5zdHlsZVwiPlxuICAgICAgICAgIEBpZiAoY29udHJvbC5sYWJlbCkge1xuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb250cm9sLmxhYmVsQ2xhc3NcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJjb250cm9sLmxhYmVsU3R5bGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBjb250cm9sLmxhYmVsIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBzd2l0Y2ggKGNvbnRyb2wudHlwZSkge1xuICAgICAgICAgICAgQGNhc2UgKFwidGV4dFwiKSB7XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgW2lkXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJjb250cm9sLmV2ZW50cz8ub25DaGFuZ2U/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoZm9jdXMpPVwiY29udHJvbC5ldmVudHM/Lm9uRm9jdXM/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJjb250cm9sLmV2ZW50cz8ub25CbHVyPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleXVwKT1cImNvbnRyb2wuZXZlbnRzPy5vbktleVVwPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwiY29udHJvbC5ldmVudHM/Lm9uS2V5RG93bj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChwYXN0ZSk9XCJjb250cm9sLmV2ZW50cz8ub25QYXN0ZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgcElucHV0VGV4dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNoYW5nZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCJjb250cm9sLmV2ZW50cz8ub25Gb2N1cz8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJsdXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXApPVwiY29udHJvbC5ldmVudHM/Lm9uS2V5VXA/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJjb250cm9sLmV2ZW50cz8ub25LZXlEb3duPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBhc3RlKT1cImNvbnRyb2wuZXZlbnRzPy5vblBhc3RlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoXCJwYXNzd29yZFwiKSB7XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNoYW5nZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCJjb250cm9sLmV2ZW50cz8ub25Gb2N1cz8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJsdXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXApPVwiY29udHJvbC5ldmVudHM/Lm9uS2V5VXA/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJjb250cm9sLmV2ZW50cz8ub25LZXlEb3duPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBhc3RlKT1cImNvbnRyb2wuZXZlbnRzPy5vblBhc3RlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoXCJlbWFpbFwiKSB7XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHBJbnB1dFRleHRcbiAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNoYW5nZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCJjb250cm9sLmV2ZW50cz8ub25Gb2N1cz8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJsdXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXApPVwiY29udHJvbC5ldmVudHM/Lm9uS2V5VXA/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJjb250cm9sLmV2ZW50cz8ub25LZXlEb3duPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBhc3RlKT1cImNvbnRyb2wuZXZlbnRzPy5vblBhc3RlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoXCJzZWxlY3RcIikge1xuICAgICAgICAgICAgICA8cC1zZWxlY3RcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJjb250cm9sLm9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2hhbmdlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uRm9jdXMpPVwiY29udHJvbC5ldmVudHM/Lm9uRm9jdXM/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25CbHVyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJsdXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChcIm11bHRpLXNlbGVjdFwiKSB7XG4gICAgICAgICAgICAgIDxwLW11bHRpU2VsZWN0XG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiY29udHJvbC5vcHRpb25zXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNoYW5nZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvbkZvY3VzKT1cImNvbnRyb2wuZXZlbnRzPy5vbkZvY3VzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJjb250cm9sLmV2ZW50cz8ub25CbHVyPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgID48L3AtbXVsdGlTZWxlY3Q+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoXCJ0ZXh0YXJlYVwiKSB7XG4gICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIHBUZXh0YXJlYVxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNoYW5nZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChmb2N1cyk9XCJjb250cm9sLmV2ZW50cz8ub25Gb2N1cz8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJsdXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXApPVwiY29udHJvbC5ldmVudHM/Lm9uS2V5VXA/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJjb250cm9sLmV2ZW50cz8ub25LZXlEb3duPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBhc3RlKT1cImNvbnRyb2wuZXZlbnRzPy5vblBhc3RlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKFwiY2hlY2tib3hcIikge1xuICAgICAgICAgICAgICA8cC1jaGVja2JveFxuICAgICAgICAgICAgICAgIFtiaW5hcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJjb250cm9sLmV2ZW50cz8ub25DaGFuZ2U/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25Gb2N1cyk9XCJjb250cm9sLmV2ZW50cz8ub25Gb2N1cz8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvbkJsdXIpPVwiY29udHJvbC5ldmVudHM/Lm9uQmx1cj8uKCRldmVudClcIlxuICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKFwicmFkaW9cIikge1xuICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgY29udHJvbC5vcHRpb25zID8/IFtdOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiJ3JhZGlvLScgKyBvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAob25DaGFuZ2UpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2hhbmdlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChvbkZvY3VzKT1cImNvbnRyb2wuZXZlbnRzPy5vbkZvY3VzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChvbkJsdXIpPVwiY29udHJvbC5ldmVudHM/Lm9uQmx1cj8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPjwvcC1yYWRpb0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidyYWRpby0nICsgb3B0aW9uXCI+e3sgb3B0aW9uIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKFwiZGF0ZVwiKSB7XG4gICAgICAgICAgICAgIDxwLWRhdGVwaWNrZXJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cImNvbnRyb2wuZXZlbnRzPy5vblNlbGVjdD8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvbkZvY3VzKT1cImNvbnRyb2wuZXZlbnRzPy5vbkZvY3VzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJjb250cm9sLmV2ZW50cz8ub25CbHVyPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoXCJ0b2dnbGVcIikge1xuICAgICAgICAgICAgICA8cC10b2dnbGVCdXR0b25cbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNoYW5nZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvbkZvY3VzKT1cImNvbnRyb2wuZXZlbnRzPy5vbkZvY3VzPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uQmx1cik9XCJjb250cm9sLmV2ZW50cz8ub25CbHVyPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgID48L3AtdG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPCEtLSBAY2FzZSAoXCJmaWxlXCIpIHtcbiAgICAgICAgICAgICAgPHAtZmlsZVVwbG9hZCBcbiAgICAgICAgICAgICAgW2N1c3RvbVVwbG9hZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAob25TZWxlY3QpPVwiY29udHJvbC5ldmVudHM/Lm9uU2VsZWN0Py4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChvbkNsZWFyKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNsZWFyPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChvblJlbW92ZSk9XCJjb250cm9sLmV2ZW50cz8ub25SZW1vdmU/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uRXJyb3IpPVwiY29udHJvbC5ldmVudHM/Lm9uRXJyb3I/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uQmVmb3JlVXBsb2FkKT1cImNvbnRyb2wuZXZlbnRzPy5vbkJlZm9yZVVwbG9hZD8uKCRldmVudClcIlxuICAgICAgICAgICAgICAob25Qcm9ncmVzcyk9XCJjb250cm9sLmV2ZW50cz8ub25Qcm9ncmVzcz8uKCRldmVudClcIlxuICAgICAgICAgICAgICAob25VcGxvYWQpPVwiY29udHJvbC5ldmVudHM/Lm9uVXBsb2FkPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cblxuICAgICAgICAgICAgICA8cC1maWxlVXBsb2FkXG4gICAgICAgICAgICAgICAgW2N1c3RvbVVwbG9hZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAob25VcGxvYWQpPVwib25GaWxlU2VsZWN0KCRldmVudCwgY29udHJvbC5uYW1lKVwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtpZF09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgIFtjaG9vc2VMYWJlbF09XCJjb250cm9sLnByaW1lbmc/LmNob29zZUxhYmVsXCJcbiAgICAgICAgICAgICAgICBbdXBsb2FkTGFiZWxdPVwiY29udHJvbC5wcmltZW5nPy51cGxvYWRMYWJlbFwiXG4gICAgICAgICAgICAgICAgW2NhbmNlbExhYmVsXT1cImNvbnRyb2wucHJpbWVuZz8uY2FuY2VsTGFiZWxcIlxuICAgICAgICAgICAgICAgIFthdXRvXT1cImNvbnRyb2wucHJpbWVuZz8uYXV0b1wiXG4gICAgICAgICAgICAgICAgW3VybF09XCJjb250cm9sLnByaW1lbmc/LnVybFwiXG4gICAgICAgICAgICAgICAgW3dpdGhDcmVkZW50aWFsc109XCJjb250cm9sLnByaW1lbmc/LndpdGhDcmVkZW50aWFsc1wiXG4gICAgICAgICAgICAgICAgW211bHRpcGxlXT1cImNvbnRyb2wucHJpbWVuZz8ubXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgIFttYXhGaWxlU2l6ZV09XCJjb250cm9sLnByaW1lbmc/Lm1heEZpbGVTaXplXCJcbiAgICAgICAgICAgICAgICBbY3VzdG9tVXBsb2FkXT1cImNvbnRyb2wucHJpbWVuZz8uY3VzdG9tVXBsb2FkXCJcbiAgICAgICAgICAgICAgICBbc2hvd1VwbG9hZEJ1dHRvbl09XCJjb250cm9sLnByaW1lbmc/LnNob3dVcGxvYWRCdXR0b25cIlxuICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsQnV0dG9uXT1cImNvbnRyb2wucHJpbWVuZz8uc2hvd0NhbmNlbEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2FjY2VwdF09XCJjb250cm9sLnByaW1lbmc/LmFjY2VwdFwiXG4gICAgICAgICAgICAgICAgW21vZGVdPVwiY29udHJvbC5wcmltZW5nPy5tb2RlXCJcbiAgICAgICAgICAgICAgICBbcHJldmlld1dpZHRoXT1cImNvbnRyb2wucHJpbWVuZz8ucHJldmlld1dpZHRoXCJcbiAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwiY29udHJvbC5ldmVudHM/Lm9uU2VsZWN0Py4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uQ2xlYXIpPVwiY29udHJvbC5ldmVudHM/Lm9uQ2xlYXI/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25SZW1vdmUpPVwiY29udHJvbC5ldmVudHM/Lm9uUmVtb3ZlPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uRXJyb3IpPVwiY29udHJvbC5ldmVudHM/Lm9uRXJyb3I/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25CZWZvcmVVcGxvYWQpPVwiY29udHJvbC5ldmVudHM/Lm9uQmVmb3JlVXBsb2FkPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uUHJvZ3Jlc3MpPVwiY29udHJvbC5ldmVudHM/Lm9uUHJvZ3Jlc3M/LigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25VcGxvYWQpPVwiY29udHJvbC5ldmVudHM/Lm9uVXBsb2FkPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uIGxhYmVsPVwiQ2hvb3NlIEZpbGVcIiBpY29uPVwicGkgcGktdXBsb2FkXCI+PC9wLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L3AtZmlsZVVwbG9hZD5cbiAgICAgICAgICAgIH0gLS0+XG4gICAgICAgICAgICBAY2FzZSAoXCJzbGlkZXJcIikge1xuICAgICAgICAgICAgICA8cC1zbGlkZXJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImNvbnRyb2wuZXZlbnRzPy5vbkNoYW5nZT8uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvblNsaWRlRW5kKT1cImNvbnRyb2wuZXZlbnRzPy5vblNsaWRlRW5kPy4oJGV2ZW50KVwiXG4gICAgICAgICAgICAgID48L3Atc2xpZGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIDx2YWxpZGF0aW9uLW1lc3NhZ2VzXG4gICAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldChjb250cm9sLm5hbWUpXCJcbiAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb250cm9sXCJcbiAgICAgICAgICA+PC92YWxpZGF0aW9uLW1lc3NhZ2VzPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG4gICAgfVxuICB9XG4gIDxidXR0b25cbiAgICBwQnV0dG9uXG4gICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgbGFiZWw9XCJTdWJtaXRcIlxuICA+PC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
|
@@ -14,7 +14,7 @@ export class ValidationMessagesComponent {
|
|
14
14
|
return null;
|
15
15
|
}
|
16
16
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ValidationMessagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
17
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ValidationMessagesComponent, isStandalone: true, selector: "validation-messages", inputs: { control: "control", controlName: "controlName", config: "config" }, ngImport: i0, template: "@if (control?.invalid && control?.touched) {\n <section class=\"error-messages\" style=\"color: red\">\n @if (control?.errors?.[\"required\"]) {\n <small>{{ controlName }} is required</small>\n }\n @if (control?.errors?.[\"minlength\"]) {\n <small\n >Minimum length:\n {{ getValidatorValue(\"minlength\", \"requiredLength\") }}</small\n >\n }\n @if (control?.errors?.[\"maxlength\"]) {\n <small\n >Maximum length:\n {{ getValidatorValue(\"maxlength\", \"requiredLength\") }}</small\n >\n }\n @if (control?.errors?.[\"pattern\"]) {\n <small>Invalid format</small>\n }\n @if (control?.errors?.[\"email\"]) {\n <small>Invalid email address</small>\n }\n @if (control?.errors?.[\"min\"]) {\n <small\n >Value must be at least {{ getValidatorValue(\"min\", \"min\") }}</small\n >\n }\n @if (control?.errors?.[\"max\"]) {\n <small>Value must not exceed {{ getValidatorValue(\"max\", \"max\") }}</small>\n }\n @if (control?.errors?.[\"custom\"]) {\n <small>{{ getCustomErrorMessage() }}</small>\n }\n </section>\n}\n"
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ValidationMessagesComponent, isStandalone: true, selector: "validation-messages", inputs: { control: "control", controlName: "controlName", config: "config" }, ngImport: i0, template: "@if (control?.invalid && control?.touched) {\n <section class=\"error-messages\" style=\"color: red\">\n @if (control?.errors?.[\"required\"]) {\n <small>{{ controlName }} is required</small>\n }\n @if (control?.errors?.[\"minlength\"]) {\n <small\n >Minimum length:\n {{ getValidatorValue(\"minlength\", \"requiredLength\") }}</small\n >\n }\n @if (control?.errors?.[\"maxlength\"]) {\n <small\n >Maximum length:\n {{ getValidatorValue(\"maxlength\", \"requiredLength\") }}</small\n >\n }\n @if (control?.errors?.[\"pattern\"]) {\n <small>Invalid format</small>\n }\n @if (control?.errors?.[\"email\"]) {\n <small>Invalid email address</small>\n }\n @if (control?.errors?.[\"min\"]) {\n <small\n >Value must be at least {{ getValidatorValue(\"min\", \"min\") }}</small\n >\n }\n @if (control?.errors?.[\"max\"]) {\n <small>Value must not exceed {{ getValidatorValue(\"max\", \"max\") }}</small>\n }\n @if (control?.errors?.[\"custom\"]) {\n <small>{{ getCustomErrorMessage() }}</small>\n }\n </section>\n}\n" });
|
18
18
|
}
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ValidationMessagesComponent, decorators: [{
|
20
20
|
type: Component,
|
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
26
26
|
}], config: [{
|
27
27
|
type: Input
|
28
28
|
}] } });
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uZ0Zvcm0vc3JjL2FwcC92YWxpZGF0aW9uLW1lc3NhZ2VzL3ZhbGlkYXRpb24tbWVzc2FnZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbmdGb3JtL3NyYy9hcHAvdmFsaWRhdGlvbi1tZXNzYWdlcy92YWxpZGF0aW9uLW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVVqRCxNQUFNLE9BQU8sMkJBQTJCO0lBQzdCLE9BQU8sQ0FBMEIsQ0FBQywrQkFBK0I7SUFDakUsV0FBVyxDQUFVLENBQUMsdURBQXVEO0lBQzdFLE1BQU0sQ0FBcUIsQ0FBQyxvQ0FBb0M7SUFFekUsaUJBQWlCLENBQUMsYUFBcUMsRUFBRSxHQUFXO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDO1FBQ2xFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7d0dBZFUsMkJBQTJCOzRGQUEzQiwyQkFBMkIsNkpDVnhDLDhuQ0FvQ0E7OzRGRDFCYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUCxFQUFFOzhCQUlGLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1Db250cm9sQ29uZmlnIH0gZnJvbSAnLi4vZm9ybUNvbnRyb2xDb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWxpZGF0aW9uLW1lc3NhZ2VzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlVXJsOiAnLi92YWxpZGF0aW9uLW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbk1lc3NhZ2VzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29udHJvbCE6IEFic3RyYWN0Q29udHJvbCB8IG51bGw7IC8vIFRoZSBmb3JtIGNvbnRyb2wgdG8gdmFsaWRhdGVcbiAgQElucHV0KCkgY29udHJvbE5hbWUhOiBzdHJpbmc7IC8vIFRoZSBuYW1lIG9mIHRoZSBjb250cm9sIChmb3IgZGlzcGxheWluZyBpbiBtZXNzYWdlcylcbiAgQElucHV0KCkgY29uZmlnITogRm9ybUNvbnRyb2xDb25maWc7IC8vIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgY29udHJvbFxuXG4gIGdldFZhbGlkYXRvclZhbHVlKHZhbGlkYXRvck5hbWU6IGtleW9mIFZhbGlkYXRpb25FcnJvcnMsIGtleTogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5lcnJvcnM/Llt2YWxpZGF0b3JOYW1lXT8uW2tleV07XG4gIH1cblxuICBnZXRDdXN0b21FcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuY29udHJvbD8uZXJyb3JzPy5bJ2N1c3RvbSddKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250cm9sLmVycm9yc1snY3VzdG9tJ10ubWVzc2FnZSA/PyAnSW52YWxpZCBpbnB1dCc7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG59XG4iLCJAaWYgKGNvbnRyb2w/LmludmFsaWQgJiYgY29udHJvbD8udG91Y2hlZCkge1xuICA8c2VjdGlvbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VzXCIgc3R5bGU9XCJjb2xvcjogcmVkXCI+XG4gICAgQGlmIChjb250cm9sPy5lcnJvcnM/LltcInJlcXVpcmVkXCJdKSB7XG4gICAgICA8c21hbGw+e3sgY29udHJvbE5hbWUgfX0gaXMgcmVxdWlyZWQ8L3NtYWxsPlxuICAgIH1cbiAgICBAaWYgKGNvbnRyb2w/LmVycm9ycz8uW1wibWlubGVuZ3RoXCJdKSB7XG4gICAgICA8c21hbGxcbiAgICAgICAgPk1pbmltdW0gbGVuZ3RoOlxuICAgICAgICB7eyBnZXRWYWxpZGF0b3JWYWx1ZShcIm1pbmxlbmd0aFwiLCBcInJlcXVpcmVkTGVuZ3RoXCIpIH19PC9zbWFsbFxuICAgICAgPlxuICAgIH1cbiAgICBAaWYgKGNvbnRyb2w/LmVycm9ycz8uW1wibWF4bGVuZ3RoXCJdKSB7XG4gICAgICA8c21hbGxcbiAgICAgICAgPk1heGltdW0gbGVuZ3RoOlxuICAgICAgICB7eyBnZXRWYWxpZGF0b3JWYWx1ZShcIm1heGxlbmd0aFwiLCBcInJlcXVpcmVkTGVuZ3RoXCIpIH19PC9zbWFsbFxuICAgICAgPlxuICAgIH1cbiAgICBAaWYgKGNvbnRyb2w/LmVycm9ycz8uW1wicGF0dGVyblwiXSkge1xuICAgICAgPHNtYWxsPkludmFsaWQgZm9ybWF0PC9zbWFsbD5cbiAgICB9XG4gICAgQGlmIChjb250cm9sPy5lcnJvcnM/LltcImVtYWlsXCJdKSB7XG4gICAgICA8c21hbGw+SW52YWxpZCBlbWFpbCBhZGRyZXNzPC9zbWFsbD5cbiAgICB9XG4gICAgQGlmIChjb250cm9sPy5lcnJvcnM/LltcIm1pblwiXSkge1xuICAgICAgPHNtYWxsXG4gICAgICAgID5WYWx1ZSBtdXN0IGJlIGF0IGxlYXN0IHt7IGdldFZhbGlkYXRvclZhbHVlKFwibWluXCIsIFwibWluXCIpIH19PC9zbWFsbFxuICAgICAgPlxuICAgIH1cbiAgICBAaWYgKGNvbnRyb2w/LmVycm9ycz8uW1wibWF4XCJdKSB7XG4gICAgICA8c21hbGw+VmFsdWUgbXVzdCBub3QgZXhjZWVkIHt7IGdldFZhbGlkYXRvclZhbHVlKFwibWF4XCIsIFwibWF4XCIpIH19PC9zbWFsbD5cbiAgICB9XG4gICAgQGlmIChjb250cm9sPy5lcnJvcnM/LltcImN1c3RvbVwiXSkge1xuICAgICAgPHNtYWxsPnt7IGdldEN1c3RvbUVycm9yTWVzc2FnZSgpIH19PC9zbWFsbD5cbiAgICB9XG4gIDwvc2VjdGlvbj5cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
@@ -2,4 +2,4 @@ export * from './app/default-forms/default-forms.component';
|
|
2
2
|
export * from './app/formControlConfig';
|
3
3
|
export * from './app/material-form/material-form.component';
|
4
4
|
export * from './app/prime-form/prime-form.component';
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25nRm9ybS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHAvZGVmYXVsdC1mb3Jtcy9kZWZhdWx0LWZvcm1zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9mb3JtQ29udHJvbENvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2FwcC9tYXRlcmlhbC1mb3JtL21hdGVyaWFsLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vYXBwL3ByaW1lLWZvcm0vcHJpbWUtZm9ybS5jb21wb25lbnQnO1xuICJdfQ==
|