@esfaenza/forms-and-validations 13.3.5 → 13.3.6
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/esm2020/lib/forms/base-form-control.mjs +67 -119
- package/esm2020/lib/forms/form-adaptive/form-adaptive.component.mjs +53 -66
- package/esm2020/lib/forms/form-autocomplete/form-autocomplete.component.mjs +25 -47
- package/esm2020/lib/forms/form-checkbox/form-checkbox.component.mjs +21 -21
- package/esm2020/lib/forms/form-date/form-date.component.mjs +30 -28
- package/esm2020/lib/forms/form-datetime/form-datetime.component.mjs +29 -25
- package/esm2020/lib/forms/form-empty/form-empty.component.mjs +4 -10
- package/esm2020/lib/forms/form-error/form-error.component.mjs +6 -16
- package/esm2020/lib/forms/form-file/form-file.component.mjs +21 -31
- package/esm2020/lib/forms/form-info/form-info.component.mjs +6 -16
- package/esm2020/lib/forms/form-input/form-input.component.mjs +26 -36
- package/esm2020/lib/forms/form-multiselect/form-multiselect.component.mjs +22 -36
- package/esm2020/lib/forms/form-select/form-select.component.mjs +29 -31
- package/esm2020/lib/forms/form-template/form-template.component.mjs +10 -28
- package/esm2020/lib/forms/form-textarea/form-textarea.component.mjs +20 -18
- package/esm2020/lib/forms/form-time/form-time.component.mjs +18 -35
- package/esm2020/lib/forms-and-validations.module.mjs +3 -2
- package/esm2020/lib/models/FormsAndValidationsModuleConfig.mjs +1 -1
- package/esm2020/lib/tokens.mjs +5 -7
- package/fesm2015/esfaenza-forms-and-validations.mjs +374 -551
- package/fesm2015/esfaenza-forms-and-validations.mjs.map +1 -1
- package/fesm2020/esfaenza-forms-and-validations.mjs +371 -551
- package/fesm2020/esfaenza-forms-and-validations.mjs.map +1 -1
- package/lib/forms/base-form-control.d.ts +57 -131
- package/lib/forms/form-adaptive/form-adaptive.component.d.ts +26 -73
- package/lib/forms/form-autocomplete/form-autocomplete.component.d.ts +14 -42
- package/lib/forms/form-checkbox/form-checkbox.component.d.ts +9 -13
- package/lib/forms/form-date/form-date.component.d.ts +10 -16
- package/lib/forms/form-datetime/form-datetime.component.d.ts +9 -13
- package/lib/forms/form-empty/form-empty.component.d.ts +3 -9
- package/lib/forms/form-error/form-error.component.d.ts +5 -15
- package/lib/forms/form-file/form-file.component.d.ts +10 -28
- package/lib/forms/form-info/form-info.component.d.ts +5 -15
- package/lib/forms/form-input/form-input.component.d.ts +15 -37
- package/lib/forms/form-multiselect/form-multiselect.component.d.ts +11 -31
- package/lib/forms/form-select/form-select.component.d.ts +12 -25
- package/lib/forms/form-template/form-template.component.d.ts +9 -27
- package/lib/forms/form-textarea/form-textarea.component.d.ts +8 -16
- package/lib/forms/form-time/form-time.component.d.ts +10 -30
- package/lib/models/FormsAndValidationsModuleConfig.d.ts +6 -8
- package/lib/tokens.d.ts +4 -6
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { ChangeDetectionStrategy, Component, Inject, Input, Optional, Self } fro
|
|
|
3
3
|
import { NG_VALIDATORS } from "@angular/forms";
|
|
4
4
|
// Configurazioni
|
|
5
5
|
import { LocalizationService } from "@esfaenza/localizations";
|
|
6
|
-
import { ACO_CUSTOMKEY } from '../../tokens';
|
|
6
|
+
import { ACO_CUSTOMKEY, FAV_DEBUG_MODE } from '../../tokens';
|
|
7
7
|
// Applicazione
|
|
8
8
|
import { BaseFormControl } from "../base-form-control";
|
|
9
9
|
import { FormSelectComponentLoc } from "./form-select.component.loc";
|
|
@@ -13,21 +13,13 @@ import * as i2 from "@angular/forms";
|
|
|
13
13
|
import * as i3 from "@esfaenza/access-control";
|
|
14
14
|
import * as i4 from "../../validations/validation-select/validation-select.component";
|
|
15
15
|
import * as i5 from "@angular/common";
|
|
16
|
-
/**
|
|
17
|
-
* Componente che permette di selezionare un valore da una lista di valori disponibili
|
|
18
|
-
*/
|
|
16
|
+
/** Componente che permette di selezionare un valore da una lista di valori disponibili */
|
|
19
17
|
export class FormSelectComponent extends BaseFormControl {
|
|
20
|
-
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* @ignore
|
|
24
|
-
*/
|
|
25
|
-
constructor(cdr, lc, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY) {
|
|
26
|
-
super(cdr, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY);
|
|
18
|
+
/** @ignore Costruttore */
|
|
19
|
+
constructor(cdr, lc, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY, FAV_DEBUG_MODE) {
|
|
20
|
+
super(cdr, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY, FAV_DEBUG_MODE);
|
|
27
21
|
this.lc = lc;
|
|
28
|
-
/**
|
|
29
|
-
* Permette di specificare il testo della Label flottante material-style
|
|
30
|
-
*/
|
|
22
|
+
/** Permette di specificare il testo della Label flottante material-style */
|
|
31
23
|
this.SelectLabel = "";
|
|
32
24
|
/**
|
|
33
25
|
* Permette al componente di considerare questo valore come "valore placeholder"
|
|
@@ -35,9 +27,7 @@ export class FormSelectComponent extends BaseFormControl {
|
|
|
35
27
|
* Si consiglia di mantenere il default
|
|
36
28
|
*/
|
|
37
29
|
this.PlaceholderValue = '';
|
|
38
|
-
/**
|
|
39
|
-
* Override del placeholder per select requried
|
|
40
|
-
*/
|
|
30
|
+
/** Override del placeholder per select requried */
|
|
41
31
|
this.RequiredPlaceholder = null;
|
|
42
32
|
/**
|
|
43
33
|
* Permette al componente di considerare questo valore come "valore vuoto"
|
|
@@ -45,14 +35,10 @@ export class FormSelectComponent extends BaseFormControl {
|
|
|
45
35
|
* Si consiglia di mantenere il default
|
|
46
36
|
*/
|
|
47
37
|
this.EmptyFieldValue = '-2';
|
|
48
|
-
/**
|
|
49
|
-
* Se **true** rimuove il simbolino di validazione (croce rossa o tick verde)
|
|
50
|
-
*/
|
|
38
|
+
/** Se **true** rimuove il simbolino di validazione (croce rossa o tick verde) */
|
|
51
39
|
this.ShowValidationSymbol = true;
|
|
52
40
|
}
|
|
53
|
-
/**
|
|
54
|
-
* @ignore
|
|
55
|
-
*/
|
|
41
|
+
/** @ignore */
|
|
56
42
|
ngOnChanges(changes) {
|
|
57
43
|
let newSource = changes["Source"];
|
|
58
44
|
if (!newSource)
|
|
@@ -97,6 +83,7 @@ export class FormSelectComponent extends BaseFormControl {
|
|
|
97
83
|
this.cdr.markForCheck();
|
|
98
84
|
}
|
|
99
85
|
}
|
|
86
|
+
/** @ignore */
|
|
100
87
|
detatchPreviousAndRetatchNext(doStuff) {
|
|
101
88
|
if (this.validationControl && this.Form)
|
|
102
89
|
this.Form.removeControl(this.validationControl);
|
|
@@ -107,21 +94,27 @@ export class FormSelectComponent extends BaseFormControl {
|
|
|
107
94
|
else if (this.validationControl && this.Form) {
|
|
108
95
|
this.Form.addControl(this.validationControl);
|
|
109
96
|
}
|
|
110
|
-
else
|
|
97
|
+
else if (!this.validationControl && this.Form) {
|
|
98
|
+
// Questo messaggio ha senso solo se almeno il form esiste... se non esiste sticazzi insomma...
|
|
111
99
|
console.error(`Impossibile aggiungere il componente di validaazione per ${this.GeneratedName}, le validazioni potrebbero funzionare in maniera erratica`);
|
|
100
|
+
}
|
|
112
101
|
});
|
|
113
102
|
});
|
|
114
103
|
}
|
|
115
|
-
/**
|
|
116
|
-
|
|
117
|
-
|
|
104
|
+
/** @ignore */
|
|
105
|
+
writeValue(obj) {
|
|
106
|
+
if (this.BoundSource && this.BoundSource.length > 0)
|
|
107
|
+
this.EvaluatedModel = this.BoundSource.find(t => t.id == obj)?.description;
|
|
108
|
+
super.writeValue(obj);
|
|
109
|
+
}
|
|
110
|
+
/** @ignore */
|
|
118
111
|
onNotNullValueSet() { }
|
|
119
112
|
}
|
|
120
|
-
FormSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FormSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.LocalizationService }, { token: i2.NgControl, optional: true, self: true }, { token: NG_VALIDATORS, optional: true }, { token: i3.AccessControlService, optional: true }, { token: i3.ComponentContext, optional: true }, { token: ACO_CUSTOMKEY, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
121
|
-
FormSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: FormSelectComponent, selector: "form-select", inputs: { SelectLabel: "SelectLabel", PlaceholderValue: "PlaceholderValue", RequiredPlaceholder: "RequiredPlaceholder", EmptyFieldValue: "EmptyFieldValue", ShowValidationSymbol: "ShowValidationSymbol" }, providers: [{ provide: LocalizationService, useClass: FormSelectComponentLoc }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <!-- Select vuota per quando non ho Sorgenti dati da cui selezionare. Uguale identica alla piena ma senza option\r\n Purtroppo devono essere due componenti distinti perch\u00E9 una select una volta creata non riesce pi\u00F9 ad adattarsi ai cambi di options -->\r\n <val-select *ngIf=\"!BoundSource || BoundSource.length == 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}_zero\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n #validationControl=\"ngModel\">\r\n </val-select>\r\n\r\n <!-- Select vera e propria per quando arrivano i dati -->\r\n <val-select *ngIf=\"BoundSource && BoundSource.length > 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}_filled\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n #validationControl=\"ngModel\">\r\n <option *ngFor=\"let obj of BoundSource\" [value]=\"obj.id\">{{obj.description}}</option>\r\n </val-select>\r\n</ng-template>", components: [{ type: i4.ValidationSelectComponent, selector: "val-select", inputs: ["emptyFieldValue", "placeHolderValue", "emptyValue", "showValidationSymbol", "label"], outputs: ["onBlur"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "localize": i1.LocalizePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
|
+
FormSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FormSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.LocalizationService }, { token: i2.NgControl, optional: true, self: true }, { token: NG_VALIDATORS, optional: true }, { token: i3.AccessControlService, optional: true }, { token: i3.ComponentContext, optional: true }, { token: ACO_CUSTOMKEY, optional: true }, { token: FAV_DEBUG_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
114
|
+
FormSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: FormSelectComponent, selector: "form-select", inputs: { SelectLabel: "SelectLabel", PlaceholderValue: "PlaceholderValue", RequiredPlaceholder: "RequiredPlaceholder", EmptyFieldValue: "EmptyFieldValue", ShowValidationSymbol: "ShowValidationSymbol" }, providers: [{ provide: LocalizationService, useClass: FormSelectComponentLoc }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\" [class.app-strong]=\"DisplayMode\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <!-- Select vuota per quando non ho Sorgenti dati da cui selezionare. Uguale identica alla piena ma senza option\r\n Purtroppo devono essere due componenti distinti perch\u00E9 una select una volta creata non riesce pi\u00F9 ad adattarsi ai cambi di options -->\r\n <val-select *ngIf=\"!BoundSource || BoundSource.length == 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}_zero\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n #validationControl=\"ngModel\">\r\n </val-select>\r\n\r\n <!-- Select vera e propria per quando arrivano i dati -->\r\n <val-select *ngIf=\"BoundSource && BoundSource.length > 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}_filled\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n #validationControl=\"ngModel\">\r\n <option *ngFor=\"let obj of BoundSource\" [value]=\"obj.id\">{{obj.description}}</option>\r\n </val-select>\r\n</ng-template>", components: [{ type: i4.ValidationSelectComponent, selector: "val-select", inputs: ["emptyFieldValue", "placeHolderValue", "emptyValue", "showValidationSymbol", "label"], outputs: ["onBlur"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }], pipes: { "localize": i1.LocalizePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
122
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FormSelectComponent, decorators: [{
|
|
123
116
|
type: Component,
|
|
124
|
-
args: [{ selector: "form-select", providers: [{ provide: LocalizationService, useClass: FormSelectComponentLoc }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <!-- Select vuota per quando non ho Sorgenti dati da cui selezionare. Uguale identica alla piena ma senza option\r\n Purtroppo devono essere due componenti distinti perch\u00E9 una select una volta creata non riesce pi\u00F9 ad adattarsi ai cambi di options -->\r\n <val-select *ngIf=\"!BoundSource || BoundSource.length == 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}_zero\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n #validationControl=\"ngModel\">\r\n </val-select>\r\n\r\n <!-- Select vera e propria per quando arrivano i dati -->\r\n <val-select *ngIf=\"BoundSource && BoundSource.length > 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}_filled\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n #validationControl=\"ngModel\">\r\n <option *ngFor=\"let obj of BoundSource\" [value]=\"obj.id\">{{obj.description}}</option>\r\n </val-select>\r\n</ng-template>" }]
|
|
117
|
+
args: [{ selector: "form-select", providers: [{ provide: LocalizationService, useClass: FormSelectComponentLoc }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\" [class.app-strong]=\"DisplayMode\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <!-- Select vuota per quando non ho Sorgenti dati da cui selezionare. Uguale identica alla piena ma senza option\r\n Purtroppo devono essere due componenti distinti perch\u00E9 una select una volta creata non riesce pi\u00F9 ad adattarsi ai cambi di options -->\r\n <val-select *ngIf=\"!BoundSource || BoundSource.length == 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}_zero\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n #validationControl=\"ngModel\">\r\n </val-select>\r\n\r\n <!-- Select vera e propria per quando arrivano i dati -->\r\n <val-select *ngIf=\"BoundSource && BoundSource.length > 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}_filled\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n #validationControl=\"ngModel\">\r\n <option *ngFor=\"let obj of BoundSource\" [value]=\"obj.id\">{{obj.description}}</option>\r\n </val-select>\r\n</ng-template>" }]
|
|
125
118
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.LocalizationService }, { type: i2.NgControl, decorators: [{
|
|
126
119
|
type: Optional
|
|
127
120
|
}, {
|
|
@@ -140,6 +133,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
|
|
|
140
133
|
}, {
|
|
141
134
|
type: Inject,
|
|
142
135
|
args: [ACO_CUSTOMKEY]
|
|
136
|
+
}] }, { type: undefined, decorators: [{
|
|
137
|
+
type: Optional
|
|
138
|
+
}, {
|
|
139
|
+
type: Inject,
|
|
140
|
+
args: [FAV_DEBUG_MODE]
|
|
143
141
|
}] }]; }, propDecorators: { SelectLabel: [{
|
|
144
142
|
type: Input
|
|
145
143
|
}], PlaceholderValue: [{
|
|
@@ -151,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
|
|
|
151
149
|
}], ShowValidationSymbol: [{
|
|
152
150
|
type: Input
|
|
153
151
|
}] } });
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1zZWxlY3QvZm9ybS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1zZWxlY3QvZm9ybS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQXdCLGFBQWEsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRWhGLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdDLGVBQWU7QUFDZixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFFckU7O0dBRUc7QUFPSCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQStCcEQ7Ozs7T0FJRztJQUNILFlBQVksR0FBc0IsRUFBUyxFQUF1QixFQUFzQixTQUFvQixFQUFxQyxXQUF1QixFQUFjLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBcUI7UUFDOVMsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFEM0IsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFsQ2xFOztXQUVHO1FBQ00sZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFFbEM7Ozs7V0FJRztRQUNNLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUV2Qzs7V0FFRztRQUNNLHdCQUFtQixHQUFXLElBQUksQ0FBQztRQUU1Qzs7OztXQUlHO1FBQ00sb0JBQWUsR0FBVyxJQUFJLENBQUM7UUFFeEM7O1dBRUc7UUFDTSx5QkFBb0IsR0FBWSxJQUFJLENBQUM7SUFTOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQXNCO1FBQ3JDLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUztZQUNWLE9BQU87UUFFWCxJQUFJLElBQUksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQ2xDLElBQUksSUFBSSxHQUFHLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFFbkMsNEdBQTRHO1FBQzVHLElBQUksQ0FBQyxJQUFJO1lBQ0wsT0FBTztRQUVYLDBJQUEwSTtRQUMxSSx1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLElBQUk7WUFDTCxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWQsb0RBQW9EO1FBQ3BELCtFQUErRTtRQUMvRSwyS0FBMks7UUFDM0ssSUFBSSxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xIOzs7Ozs7O2VBT0c7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUUzQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDOUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7b0JBQ3hCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQ1osSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7d0JBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7d0JBQ3pCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUV2QyxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUMsQ0FBQzthQUNOOztnQkFFRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDOUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7b0JBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3pCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN2QyxDQUFDLENBQUMsQ0FBQztZQUVQLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRU8sNkJBQTZCLENBQUMsT0FBaUI7UUFDbkQsSUFBRyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLElBQUk7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFcEQsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLElBQUk7b0JBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO3FCQUU3QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztpQkFDaEQ7O29CQUVHLE9BQU8sQ0FBQyxLQUFLLENBQUMsNERBQTRELElBQUksQ0FBQyxhQUFhLDREQUE0RCxDQUFDLENBQUE7WUFDckssQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQixLQUFXLENBQUM7O2dIQXBIcEIsbUJBQW1CLDJJQW9Dc0csYUFBYSxpSUFBK0gsYUFBYTtvR0FwQ2xSLG1CQUFtQixrUEFKakIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxzRUNsQm5GLHFtSEE0RGM7MkZEdENELG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxhQUFhLGFBQ1osQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxtQkFFOUQsdUJBQXVCLENBQUMsTUFBTTs7MEJBc0NzQixRQUFROzswQkFBSSxJQUFJOzhCQUF5RSxLQUFLOzBCQUFwRCxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUE0QixRQUFROzswQkFBOEIsUUFBUTs7MEJBQWtDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs0Q0EvQmxSLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUtHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFPRyxlQUFlO3NCQUF2QixLQUFLO2dCQUtHLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFNlbGYsIFNpbXBsZUNoYW5nZXMsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sU2VydmljZSwgQ29tcG9uZW50Q29udGV4dCB9IGZyb20gJ0Blc2ZhZW56YS9hY2Nlc3MtY29udHJvbCc7XHJcbmltcG9ydCB7IEFDT19DVVNUT01LRVkgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5pbXBvcnQgeyBGb3JtU2VsZWN0Q29tcG9uZW50TG9jIH0gZnJvbSBcIi4vZm9ybS1zZWxlY3QuY29tcG9uZW50LmxvY1wiO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgY2hlIHBlcm1ldHRlIGRpIHNlbGV6aW9uYXJlIHVuIHZhbG9yZSBkYSB1bmEgbGlzdGEgZGkgdmFsb3JpIGRpc3BvbmliaWxpXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImZvcm0tc2VsZWN0XCIsXHJcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBGb3JtU2VsZWN0Q29tcG9uZW50TG9jIH1dLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1zZWxlY3QuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db250cm9sIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVybWV0dGUgZGkgc3BlY2lmaWNhcmUgaWwgdGVzdG8gZGVsbGEgTGFiZWwgZmxvdHRhbnRlIG1hdGVyaWFsLXN0eWxlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIFNlbGVjdExhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVybWV0dGUgYWwgY29tcG9uZW50ZSBkaSBjb25zaWRlcmFyZSBxdWVzdG8gdmFsb3JlIGNvbWUgXCJ2YWxvcmUgcGxhY2Vob2xkZXJcIlxyXG4gICAgICogXHJcbiAgICAgKiBTaSBjb25zaWdsaWEgZGkgbWFudGVuZXJlIGlsIGRlZmF1bHRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgUGxhY2Vob2xkZXJWYWx1ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdmVycmlkZSBkZWwgcGxhY2Vob2xkZXIgcGVyIHNlbGVjdCByZXF1cmllZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBSZXF1aXJlZFBsYWNlaG9sZGVyOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVybWV0dGUgYWwgY29tcG9uZW50ZSBkaSBjb25zaWRlcmFyZSBxdWVzdG8gdmFsb3JlIGNvbWUgXCJ2YWxvcmUgdnVvdG9cIlxyXG4gICAgICogXHJcbiAgICAgKiBTaSBjb25zaWdsaWEgZGkgbWFudGVuZXJlIGlsIGRlZmF1bHRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgRW1wdHlGaWVsZFZhbHVlOiBzdHJpbmcgPSAnLTInO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2UgKip0cnVlKiogcmltdW92ZSBpbCBzaW1ib2xpbm8gZGkgdmFsaWRhemlvbmUgKGNyb2NlIHJvc3NhIG8gdGljayB2ZXJkZSlcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgU2hvd1ZhbGlkYXRpb25TeW1ib2w6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29zdHJ1dHRvcmUgXHJcbiAgICAgKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGxjOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sLCBAT3B0aW9uYWwoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIF92YWxpZGF0b3JzOiBBcnJheTxhbnk+LCBAT3B0aW9uYWwoKSBhYzogQWNjZXNzQ29udHJvbFNlcnZpY2UsIEBPcHRpb25hbCgpIEFwcENvbnRleHQ6IENvbXBvbmVudENvbnRleHQsIEBPcHRpb25hbCgpIEBJbmplY3QoQUNPX0NVU1RPTUtFWSkgQUNPX0NVU1RPTUtFWTogc3RyaW5nKSB7XHJcbiAgICAgICAgc3VwZXIoY2RyLCBuZ0NvbnRyb2wsIF92YWxpZGF0b3JzLCBhYywgQXBwQ29udGV4dCwgQUNPX0NVU1RPTUtFWSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgbGV0IG5ld1NvdXJjZSA9IGNoYW5nZXNbXCJTb3VyY2VcIl07XHJcbiAgICAgICAgaWYgKCFuZXdTb3VyY2UpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgbGV0IGN1cnIgPSBuZXdTb3VyY2UuY3VycmVudFZhbHVlO1xyXG4gICAgICAgIGxldCBwcmV2ID0gbmV3U291cmNlLnByZXZpb3VzVmFsdWU7XHJcblxyXG4gICAgICAgIC8vIFNlIG1hbmNhIGN1cnIgdnVvbCBkaXJlIGNoZSBub24gaG8gdW4gdmFsb3JlIGUgcG9zc28gaWdub3JhcmUgKGFsbGEgcGVnZ2lvIGRldmUgYXJyaXZhcm1pIHVuIGFycmF5IHZ1b3RvKVxyXG4gICAgICAgIGlmICghY3VycilcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG5cclxuICAgICAgICAvLyBTZSBtYW5jYSBwcmV2IHZ1b2wgZGlyZSBjaGUgw6ggbGEgcHJpbWEgYXNzZWduYXppb25lLCBsbyBjb25zaWRlcm8gdW4gYXJyYXkgdnVvdG8gZSBwcm9zZWd1by4uLiBvZ25pIHRhbnRvIHZpZW5lIGNoaWFtYXRvIHVuYSBzb2xhIHZvbHRhXHJcbiAgICAgICAgLy8gb2duaSB0YW50byB2aWVuZSBjaGlhbWF0byBkdWUgdm9sdGUuLi4gw6ggdW4gcGVsbyBhcmJpdHJhcmlvIG1hIHZhYmLDqFxyXG4gICAgICAgIGlmICghcHJldilcclxuICAgICAgICAgICAgcHJldiA9IFtdO1xyXG5cclxuICAgICAgICAvLyBDb25zaWRlcm8gZGkgYXZlciByaWNldnV0byB1bmEgbnVvdmEgc29yZ2VudGUgc2U6XHJcbiAgICAgICAgLy8gMTogTGEgc29yZ2VudGUgbnVvdmEgaGEgdW4gbnVtZXJvIGRpIGVsZW1lbnRpIGRpdmVyc28gZGFsbGEgc29yZ2VudGUgdmVjY2hpYVxyXG4gICAgICAgIC8vIDI6IFNpYSBsYSBzb3JnZW50ZSBudW92YSBjaGUgdmVjY2hpYSBoYW5ubyBhbG1lbm8gdW4gZWxlbWVudG8gZSBsJ2lkIGRlbCBwcmltbyBlbGVtZW50byBkZWxsYSBzb3JnZW50ZSBudW92YSDDqCBkaXZlcnNvIGRhbGwnaWQgZGVsIHByaW1vIGVsZW1lbnRvIGRlbGxhIHNvcmdlbnRlIHZlY2NoaWFcclxuICAgICAgICBpZiAobmV3U291cmNlICYmIChjdXJyLmxlbmd0aCAhPSBwcmV2Lmxlbmd0aCB8fCAoY3Vyci5sZW5ndGggPiAwICYmIGN1cnJbMF1bdGhpcy5JZEZpZWxkXSAhPSBwcmV2WzBdW3RoaXMuSWRGaWVsZF0pKSkge1xyXG4gICAgICAgICAgICAvKlxyXG4gICAgICAgICAgICAgKiBOR0JVRzpcclxuICAgICAgICAgICAgICogVXNvIHF1ZXN0byBlc2NhbW90YWdlIHBlciBkaXN0cnVnZ2VyZSBpbCB2YWwtc2VsZWN0IGUgcmljcmVhcmxvXHJcbiAgICAgICAgICAgICAqIFB1cnRyb3BwbyB1bmEgdm9sdGEgYmluZGF0byBhIHVuYSBzb3JnZW50ZSwgY2FtYmlhcmdsaWVsYSBzb3R0byBzaWduaWZpY2EgbWFuZGFyZSBpbiBwYWxsYSBtYXRlcmlhbFxyXG4gICAgICAgICAgICAgKiBjaGUgc2kgbWV0dGUgYSBmYXIgZmxvYXR0YXJlIGxhIGxhYmVsIGFuY2hlIHNlIGlsIHZhbG9yZSBlJyB2dW90b1xyXG4gICAgICAgICAgICAgKiBEaXN0cnVnZ2VuZG8gaWwgY29tcG9uZW50ZSBlIHJpY3JlYW5kb2xvIG1hdGVyaWFsIHJpcGFydGUgZGEgMCBlIG5vbiBkYScgcHJvYmxlbWkuXHJcbiAgICAgICAgICAgICAqIE92dmlhbWVudGUgbG8gZmFjY2lvIHNvbG8gcXVhbmRvIGhvIHVuYSBTZWxlY3RMYWJlbCwgYWx0cmltZW50aSBub24gaG8gcHJvYmxlbWkgZGkgZmxvYXR0YW1lbnRpXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuU291cmNlRmlyc3RCaW5kICYmIHRoaXMuU2VsZWN0TGFiZWwpIHtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRldGF0Y2hQcmV2aW91c0FuZFJldGF0Y2hOZXh0KChhZnRlclN0dWZmKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Cb3VuZFNvdXJjZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJ5QmluZFNvdXJjZURpc3BsYXkoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgYWZ0ZXJTdHVmZigpOyB9KVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHRoaXMuZGV0YXRjaFByZXZpb3VzQW5kUmV0YXRjaE5leHQoKGFmdGVyU3R1ZmYpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRyeUJpbmRTb3VyY2VEaXNwbGF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geyBhZnRlclN0dWZmKCk7IH0pXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRldGF0Y2hQcmV2aW91c0FuZFJldGF0Y2hOZXh0KGRvU3R1ZmY6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgaWYodGhpcy52YWxpZGF0aW9uQ29udHJvbCAmJiB0aGlzLkZvcm0pXHJcbiAgICAgICAgICAgIHRoaXMuRm9ybS5yZW1vdmVDb250cm9sKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wpO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgZG9TdHVmZigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbCAmJiB0aGlzLkZvcm0pXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Gb3JtLmFkZENvbnRyb2wodGhpcy52YWxpZGF0aW9uQ29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wgJiYgdGhpcy5Gb3JtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRm9ybS5hZGRDb250cm9sKHRoaXMudmFsaWRhdGlvbkNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEltcG9zc2liaWxlIGFnZ2l1bmdlcmUgaWwgY29tcG9uZW50ZSBkaSB2YWxpZGFhemlvbmUgcGVyICR7dGhpcy5HZW5lcmF0ZWROYW1lfSwgbGUgdmFsaWRhemlvbmkgcG90cmViYmVybyBmdW56aW9uYXJlIGluIG1hbmllcmEgZXJyYXRpY2FgKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGlnbm9yZVxyXG4gICAgICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG59IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFGb3JtTGF5b3V0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udHJvbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPGRpdiAqbmdJZj1cIkZvcm1MYXlvdXQgJiYgQm91bmRTb3VyY2VcIiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93IHt7Rm9ybUdyb3VwQ2xhc3N9fVwiIFtjbGFzcy5hcHAtbWFyZ2luLWJvdHRvbS0wXT1cIkxhc3RcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC17e0xhYmVsQ29sV2lkdGh9fSBtLXQtNVwiPnt7TGFiZWx9fXt7UmVxdWlyZWQgPyAnKicgOiAnJ319OjwvbGFiZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLXt7SW5wdXRDb2xXaWR0aH19XCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRyb2xUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRyb2xUZW1wbGF0ZT5cclxuXHJcbiAgICA8IS0tIFNlbGVjdCB2dW90YSBwZXIgcXVhbmRvIG5vbiBobyBTb3JnZW50aSBkYXRpIGRhIGN1aSBzZWxlemlvbmFyZS4gVWd1YWxlIGlkZW50aWNhIGFsbGEgcGllbmEgbWEgc2VuemEgb3B0aW9uXHJcbiAgICBQdXJ0cm9wcG8gZGV2b25vIGVzc2VyZSBkdWUgY29tcG9uZW50aSBkaXN0aW50aSBwZXJjaMOpIHVuYSBzZWxlY3QgdW5hIHZvbHRhIGNyZWF0YSBub24gcmllc2NlIHBpw7kgYWQgYWRhdHRhcnNpIGFpIGNhbWJpIGRpIG9wdGlvbnMgLS0+XHJcbiAgICA8dmFsLXNlbGVjdCAqbmdJZj1cIiFCb3VuZFNvdXJjZSB8fCBCb3VuZFNvdXJjZS5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICAgICAgICBbRm9jdXNTdWJqZWN0XT1cIkZvY3VzU3ViamVjdFwiIFtGaWVsZEFwcGVhcmVuY2VdPVwiRmllbGRBcHBlYXJlbmNlXCJcclxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJSZXF1aXJlZCA/ICdyZXF1aXJlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgIFtub1ZhbGlkYXRlXT1cIiFWYWxpZGF0aW9uXCJcclxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICBbZm9yY2VJbnZhbGlkXT1cIkZvcmNlZEVycm9yXCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJTZWxlY3RMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICBbdmFsaWRhdGlvbkZhaWxlZF09XCJGYWlsZWRWYWxpZGF0aW9uTWVzc2FnZVwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiUmVxdWlyZWQgPyAoKFJlcXVpcmVkUGxhY2Vob2xkZXIgIT0gbnVsbCA/IFJlcXVpcmVkUGxhY2Vob2xkZXIgOiAoJ1NlbGVjdCcgfCBsb2NhbGl6ZSA6IGxjKSArICcuLi4nKSkgIDogUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlSG9sZGVyVmFsdWVdPVwiUGxhY2Vob2xkZXJWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc3VibWl0dGVkXT1cIkZvcm0/LnN1Ym1pdHRlZFwiXHJcbiAgICAgICAgICAgICAgICBbZW1wdHlGaWVsZFZhbHVlXT1cIlJlcXVpcmVkIHx8IFBsYWNlaG9sZGVyIHx8IFNlbGVjdExhYmVsID8gRW1wdHlGaWVsZFZhbHVlIDogJydcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25TeW1ib2xdPVwiU2hvd1ZhbGlkYXRpb25TeW1ib2xcIlxyXG4gICAgICAgICAgICAgICAgW2lkXT1cIkdlbmVyYXRlZE5hbWVcIlxyXG4gICAgICAgICAgICAgICAgbmFtZT1cInt7R2VuZXJhdGVkTmFtZX19X3plcm9cIlxyXG4gICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlKT1cIk1vZGVsID0gJGV2ZW50ID09IEVtcHR5RmllbGRWYWx1ZSA/IChSZXF1aXJlZD8gUGxhY2Vob2xkZXJWYWx1ZSA6ICcnKSA6ICRldmVudDsgY2hhbmdlZCgpO1wiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXRGb2N1cyk9XCJmb2N1c2VkKCRldmVudCk7XCJcclxuICAgICAgICAgICAgICAgICN2YWxpZGF0aW9uQ29udHJvbD1cIm5nTW9kZWxcIj5cclxuICAgIDwvdmFsLXNlbGVjdD5cclxuXHJcbiAgICA8IS0tIFNlbGVjdCB2ZXJhIGUgcHJvcHJpYSBwZXIgcXVhbmRvIGFycml2YW5vIGkgZGF0aSAtLT5cclxuICAgIDx2YWwtc2VsZWN0ICpuZ0lmPVwiQm91bmRTb3VyY2UgJiYgQm91bmRTb3VyY2UubGVuZ3RoID4gMFwiXHJcbiAgICAgICAgICAgICAgICBbRm9jdXNTdWJqZWN0XT1cIkZvY3VzU3ViamVjdFwiIFtGaWVsZEFwcGVhcmVuY2VdPVwiRmllbGRBcHBlYXJlbmNlXCJcclxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJSZXF1aXJlZCA/ICdyZXF1aXJlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgIFtub1ZhbGlkYXRlXT1cIiFWYWxpZGF0aW9uXCJcclxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICBbZm9yY2VJbnZhbGlkXT1cIkZvcmNlZEVycm9yXCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJTZWxlY3RMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICBbdmFsaWRhdGlvbkZhaWxlZF09XCJGYWlsZWRWYWxpZGF0aW9uTWVzc2FnZVwiXHJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25TeW1ib2xdPVwiU2hvd1ZhbGlkYXRpb25TeW1ib2xcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIlJlcXVpcmVkID8gKChSZXF1aXJlZFBsYWNlaG9sZGVyICE9IG51bGwgPyBSZXF1aXJlZFBsYWNlaG9sZGVyIDogKCdTZWxlY3QnIHwgbG9jYWxpemUgOiBsYykgKyAnLi4uJykpIDogUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlSG9sZGVyVmFsdWVdPVwiUGxhY2Vob2xkZXJWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICBbc3VibWl0dGVkXT1cIkZvcm0/LnN1Ym1pdHRlZFwiXHJcbiAgICAgICAgICAgICAgICBbZW1wdHlGaWVsZFZhbHVlXT1cIlJlcXVpcmVkIHx8IFBsYWNlaG9sZGVyIHx8IFNlbGVjdExhYmVsID8gRW1wdHlGaWVsZFZhbHVlIDogJydcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiR2VuZXJhdGVkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwie3tHZW5lcmF0ZWROYW1lfX1fZmlsbGVkXCJcclxuICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZSk9XCJNb2RlbCA9ICRldmVudCA9PSBFbXB0eUZpZWxkVmFsdWUgPyAoUmVxdWlyZWQ/IFBsYWNlaG9sZGVyVmFsdWUgOiAnJykgOiAkZXZlbnQ7IGNoYW5nZWQoKTtcIlxyXG4gICAgICAgICAgICAgICAgKGlucHV0Rm9jdXMpPVwiZm9jdXNlZCgkZXZlbnQpO1wiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXRGaW5hbGl6ZWQpPVwiZmluYWxpemVkKClcIlxyXG4gICAgICAgICAgICAgICAgI3ZhbGlkYXRpb25Db250cm9sPVwibmdNb2RlbFwiPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9iaiBvZiBCb3VuZFNvdXJjZVwiIFt2YWx1ZV09XCJvYmouaWRcIj57e29iai5kZXNjcmlwdGlvbn19PC9vcHRpb24+XHJcbiAgICA8L3ZhbC1zZWxlY3Q+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1zZWxlY3QvZm9ybS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1zZWxlY3QvZm9ybS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQXdCLGFBQWEsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRWhGLGlCQUFpQjtBQUNqQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RCxlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7O0FBRXJFLDBGQUEwRjtBQU8xRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsZUFBZTtJQXlCcEQsMkJBQTJCO0lBQzNCLFlBQVksR0FBc0IsRUFBUyxFQUF1QixFQUFzQixTQUFvQixFQUFxQyxXQUF1QixFQUFjLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBcUIsRUFBc0MsY0FBd0I7UUFDNVcsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNB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UUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzswQkFBNEIsUUFBUTs7MEJBQThCLFFBQVE7OzBCQUFrQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUEwQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWM7NENBdkI3VSxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBT0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9wdGlvbmFsLCBTZWxmLCBTaW1wbGVDaGFuZ2VzLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vIENvbmZpZ3VyYXppb25pXHJcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGVzZmFlbnphL2xvY2FsaXphdGlvbnNcIjtcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UsIENvbXBvbmVudENvbnRleHQgfSBmcm9tICdAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcblxyXG4vLyBBcHBsaWNhemlvbmVcclxuaW1wb3J0IHsgQmFzZUZvcm1Db250cm9sIH0gZnJvbSBcIi4uL2Jhc2UtZm9ybS1jb250cm9sXCI7XHJcbmltcG9ydCB7IEZvcm1TZWxlY3RDb21wb25lbnRMb2MgfSBmcm9tIFwiLi9mb3JtLXNlbGVjdC5jb21wb25lbnQubG9jXCI7XHJcblxyXG4vKiogQ29tcG9uZW50ZSBjaGUgcGVybWV0dGUgZGkgc2VsZXppb25hcmUgdW4gdmFsb3JlIGRhIHVuYSBsaXN0YSBkaSB2YWxvcmkgZGlzcG9uaWJpbGkgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJmb3JtLXNlbGVjdFwiLFxyXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogRm9ybVNlbGVjdENvbXBvbmVudExvYyB9XSxcclxuICAgIHRlbXBsYXRlVXJsOiBcImZvcm0tc2VsZWN0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKiogUGVybWV0dGUgZGkgc3BlY2lmaWNhcmUgaWwgdGVzdG8gZGVsbGEgTGFiZWwgZmxvdHRhbnRlIG1hdGVyaWFsLXN0eWxlICovXHJcbiAgICBASW5wdXQoKSBTZWxlY3RMYWJlbDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcm1ldHRlIGFsIGNvbXBvbmVudGUgZGkgY29uc2lkZXJhcmUgcXVlc3RvIHZhbG9yZSBjb21lIFwidmFsb3JlIHBsYWNlaG9sZGVyXCJcclxuICAgICAqIFxyXG4gICAgICogU2kgY29uc2lnbGlhIGRpIG1hbnRlbmVyZSBpbCBkZWZhdWx0XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIFBsYWNlaG9sZGVyVmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKiBPdmVycmlkZSBkZWwgcGxhY2Vob2xkZXIgcGVyIHNlbGVjdCByZXF1cmllZCAqL1xyXG4gICAgQElucHV0KCkgUmVxdWlyZWRQbGFjZWhvbGRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcm1ldHRlIGFsIGNvbXBvbmVudGUgZGkgY29uc2lkZXJhcmUgcXVlc3RvIHZhbG9yZSBjb21lIFwidmFsb3JlIHZ1b3RvXCJcclxuICAgICAqIFxyXG4gICAgICogU2kgY29uc2lnbGlhIGRpIG1hbnRlbmVyZSBpbCBkZWZhdWx0XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIEVtcHR5RmllbGRWYWx1ZTogc3RyaW5nID0gJy0yJztcclxuXHJcbiAgICAvKiogU2UgKip0cnVlKiogcmltdW92ZSBpbCBzaW1ib2xpbm8gZGkgdmFsaWRhemlvbmUgKGNyb2NlIHJvc3NhIG8gdGljayB2ZXJkZSkgKi9cclxuICAgIEBJbnB1dCgpIFNob3dWYWxpZGF0aW9uU3ltYm9sOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBsYzogTG9jYWxpemF0aW9uU2VydmljZSwgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBfdmFsaWRhdG9yczogQXJyYXk8YW55PiwgQE9wdGlvbmFsKCkgYWM6IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBAT3B0aW9uYWwoKSBBcHBDb250ZXh0OiBDb21wb25lbnRDb250ZXh0LCBAT3B0aW9uYWwoKSBASW5qZWN0KEFDT19DVVNUT01LRVkpIEFDT19DVVNUT01LRVk6IHN0cmluZywgQE9wdGlvbmFsKCkgQEluamVjdChGQVZfREVCVUdfTU9ERSkgRkFWX0RFQlVHX01PREUgOiBib29sZWFuKSB7XHJcbiAgICAgICAgc3VwZXIoY2RyLCBuZ0NvbnRyb2wsIF92YWxpZGF0b3JzLCBhYywgQXBwQ29udGV4dCwgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGxldCBuZXdTb3VyY2UgPSBjaGFuZ2VzW1wiU291cmNlXCJdO1xyXG4gICAgICAgIGlmICghbmV3U291cmNlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcblxyXG4gICAgICAgIGxldCBjdXJyID0gbmV3U291cmNlLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgICBsZXQgcHJldiA9IG5ld1NvdXJjZS5wcmV2aW91c1ZhbHVlO1xyXG5cclxuICAgICAgICAvLyBTZSBtYW5jYSBjdXJyIHZ1b2wgZGlyZSBjaGUgbm9uIGhvIHVuIHZhbG9yZSBlIHBvc3NvIGlnbm9yYXJlIChhbGxhIHBlZ2dpbyBkZXZlIGFycml2YXJtaSB1biBhcnJheSB2dW90bylcclxuICAgICAgICBpZiAoIWN1cnIpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuXHJcbiAgICAgICAgLy8gU2UgbWFuY2EgcHJldiB2dW9sIGRpcmUgY2hlIMOoIGxhIHByaW1hIGFzc2VnbmF6aW9uZSwgbG8gY29uc2lkZXJvIHVuIGFycmF5IHZ1b3RvIGUgcHJvc2VndW8uLi4gb2duaSB0YW50byB2aWVuZSBjaGlhbWF0byB1bmEgc29sYSB2b2x0YVxyXG4gICAgICAgIC8vIG9nbmkgdGFudG8gdmllbmUgY2hpYW1hdG8gZHVlIHZvbHRlLi4uIMOoIHVuIHBlbG8gYXJiaXRyYXJpbyBtYSB2YWJiw6hcclxuICAgICAgICBpZiAoIXByZXYpXHJcbiAgICAgICAgICAgIHByZXYgPSBbXTtcclxuXHJcbiAgICAgICAgLy8gQ29uc2lkZXJvIGRpIGF2ZXIgcmljZXZ1dG8gdW5hIG51b3ZhIHNvcmdlbnRlIHNlOlxyXG4gICAgICAgIC8vIDE6IExhIHNvcmdlbnRlIG51b3ZhIGhhIHVuIG51bWVybyBkaSBlbGVtZW50aSBkaXZlcnNvIGRhbGxhIHNvcmdlbnRlIHZlY2NoaWFcclxuICAgICAgICAvLyAyOiBTaWEgbGEgc29yZ2VudGUgbnVvdmEgY2hlIHZlY2NoaWEgaGFubm8gYWxtZW5vIHVuIGVsZW1lbnRvIGUgbCdpZCBkZWwgcHJpbW8gZWxlbWVudG8gZGVsbGEgc29yZ2VudGUgbnVvdmEgw6ggZGl2ZXJzbyBkYWxsJ2lkIGRlbCBwcmltbyBlbGVtZW50byBkZWxsYSBzb3JnZW50ZSB2ZWNjaGlhXHJcbiAgICAgICAgaWYgKG5ld1NvdXJjZSAmJiAoY3Vyci5sZW5ndGggIT0gcHJldi5sZW5ndGggfHwgKGN1cnIubGVuZ3RoID4gMCAmJiBjdXJyWzBdW3RoaXMuSWRGaWVsZF0gIT0gcHJldlswXVt0aGlzLklkRmllbGRdKSkpIHtcclxuICAgICAgICAgICAgLypcclxuICAgICAgICAgICAgICogTkdCVUc6XHJcbiAgICAgICAgICAgICAqIFVzbyBxdWVzdG8gZXNjYW1vdGFnZSBwZXIgZGlzdHJ1Z2dlcmUgaWwgdmFsLXNlbGVjdCBlIHJpY3JlYXJsb1xyXG4gICAgICAgICAgICAgKiBQdXJ0cm9wcG8gdW5hIHZvbHRhIGJpbmRhdG8gYSB1bmEgc29yZ2VudGUsIGNhbWJpYXJnbGllbGEgc290dG8gc2lnbmlmaWNhIG1hbmRhcmUgaW4gcGFsbGEgbWF0ZXJpYWxcclxuICAgICAgICAgICAgICogY2hlIHNpIG1ldHRlIGEgZmFyIGZsb2F0dGFyZSBsYSBsYWJlbCBhbmNoZSBzZSBpbCB2YWxvcmUgZScgdnVvdG9cclxuICAgICAgICAgICAgICogRGlzdHJ1Z2dlbmRvIGlsIGNvbXBvbmVudGUgZSByaWNyZWFuZG9sbyBtYXRlcmlhbCByaXBhcnRlIGRhIDAgZSBub24gZGEnIHByb2JsZW1pLlxyXG4gICAgICAgICAgICAgKiBPdnZpYW1lbnRlIGxvIGZhY2NpbyBzb2xvIHF1YW5kbyBobyB1bmEgU2VsZWN0TGFiZWwsIGFsdHJpbWVudGkgbm9uIGhvIHByb2JsZW1pIGRpIGZsb2F0dGFtZW50aVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKCF0aGlzLlNvdXJjZUZpcnN0QmluZCAmJiB0aGlzLlNlbGVjdExhYmVsKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5kZXRhdGNoUHJldmlvdXNBbmRSZXRhdGNoTmV4dCgoYWZ0ZXJTdHVmZikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuQm91bmRTb3VyY2UgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyeUJpbmRTb3VyY2VEaXNwbGF5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGFmdGVyU3R1ZmYoKTsgfSlcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRldGF0Y2hQcmV2aW91c0FuZFJldGF0Y2hOZXh0KChhZnRlclN0dWZmKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cnlCaW5kU291cmNlRGlzcGxheSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgYWZ0ZXJTdHVmZigpOyB9KVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHByaXZhdGUgZGV0YXRjaFByZXZpb3VzQW5kUmV0YXRjaE5leHQoZG9TdHVmZjogRnVuY3Rpb24pIHtcclxuICAgICAgICBpZih0aGlzLnZhbGlkYXRpb25Db250cm9sICYmIHRoaXMuRm9ybSlcclxuICAgICAgICAgICAgdGhpcy5Gb3JtLnJlbW92ZUNvbnRyb2wodGhpcy52YWxpZGF0aW9uQ29udHJvbCk7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBkb1N0dWZmKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25Db250cm9sICYmIHRoaXMuRm9ybSlcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLkZvcm0uYWRkQ29udHJvbCh0aGlzLnZhbGlkYXRpb25Db250cm9sKTtcclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbCAmJiB0aGlzLkZvcm0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Gb3JtLmFkZENvbnRyb2wodGhpcy52YWxpZGF0aW9uQ29udHJvbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLnZhbGlkYXRpb25Db250cm9sICYmIHRoaXMuRm9ybSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBRdWVzdG8gbWVzc2FnZ2lvIGhhIHNlbnNvIHNvbG8gc2UgYWxtZW5vIGlsIGZvcm0gZXNpc3RlLi4uIHNlIG5vbiBlc2lzdGUgc3RpY2F6emkgaW5zb21tYS4uLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBJbXBvc3NpYmlsZSBhZ2dpdW5nZXJlIGlsIGNvbXBvbmVudGUgZGkgdmFsaWRhYXppb25lIHBlciAke3RoaXMuR2VuZXJhdGVkTmFtZX0sIGxlIHZhbGlkYXppb25pIHBvdHJlYmJlcm8gZnVuemlvbmFyZSBpbiBtYW5pZXJhIGVycmF0aWNhYClcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5Cb3VuZFNvdXJjZSAmJiB0aGlzLkJvdW5kU291cmNlLmxlbmd0aCA+IDApXHJcbiAgICAgICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSB0aGlzLkJvdW5kU291cmNlLmZpbmQodCA9PiB0LmlkID09IG9iaik/LmRlc2NyaXB0aW9uO1xyXG5cclxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG9uTm90TnVsbFZhbHVlU2V0KCk6IHZvaWQgeyB9XHJcbn0iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIUZvcm1MYXlvdXRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJEaXNwbGF5TW9kZSAmJiAhRGlzcGxheU1vZGVUZW1wbGF0ZVwiPnt7IEV2YWx1YXRlZE1vZGVsIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGlzcGxheU1vZGUgJiYgRGlzcGxheU1vZGVUZW1wbGF0ZVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJEaXNwbGF5TW9kZVRlbXBsYXRlLCBjb250ZXh0OiB7ICRpbXBsaWNpdDogRXZhbHVhdGVkTW9kZWwgfVwiPjwvbmctY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBbaGlkZGVuXT1cIkRpc3BsYXlNb2RlXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRyb2xUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPjwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxkaXYgKm5nSWY9XCJGb3JtTGF5b3V0ICYmIEJvdW5kU291cmNlXCIgY2xhc3M9XCJmb3JtLWdyb3VwIHJvdyB7e0Zvcm1Hcm91cENsYXNzfX1cIiBbY2xhc3MuYXBwLW1hcmdpbi1ib3R0b20tMF09XCJMYXN0XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQte3tMYWJlbENvbFdpZHRofX0gbS10LTVcIiBbY2xhc3MuYXBwLXN0cm9uZ109XCJEaXNwbGF5TW9kZVwiPnt7TGFiZWx9fXt7UmVxdWlyZWQgJiYgIURpc3BsYXlNb2RlID8gJyonIDogJyd9fTo8L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC17e0lucHV0Q29sV2lkdGh9fVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJEaXNwbGF5TW9kZSAmJiAhRGlzcGxheU1vZGVUZW1wbGF0ZVwiPnt7IEV2YWx1YXRlZE1vZGVsIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkRpc3BsYXlNb2RlICYmIERpc3BsYXlNb2RlVGVtcGxhdGVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRGlzcGxheU1vZGVUZW1wbGF0ZSwgY29udGV4dDogeyAkaW1wbGljaXQ6IEV2YWx1YXRlZE1vZGVsIH1cIj48L25nLWNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IFtoaWRkZW5dPVwiRGlzcGxheU1vZGVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udHJvbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29udHJvbFRlbXBsYXRlPlxyXG5cclxuICAgIDwhLS0gU2VsZWN0IHZ1b3RhIHBlciBxdWFuZG8gbm9uIGhvIFNvcmdlbnRpIGRhdGkgZGEgY3VpIHNlbGV6aW9uYXJlLiBVZ3VhbGUgaWRlbnRpY2EgYWxsYSBwaWVuYSBtYSBzZW56YSBvcHRpb25cclxuICAgIFB1cnRyb3BwbyBkZXZvbm8gZXNzZXJlIGR1ZSBjb21wb25lbnRpIGRpc3RpbnRpIHBlcmNow6kgdW5hIHNlbGVjdCB1bmEgdm9sdGEgY3JlYXRhIG5vbiByaWVzY2UgcGnDuSBhZCBhZGF0dGFyc2kgYWkgY2FtYmkgZGkgb3B0aW9ucyAtLT5cclxuICAgIDx2YWwtc2VsZWN0ICpuZ0lmPVwiIUJvdW5kU291cmNlIHx8IEJvdW5kU291cmNlLmxlbmd0aCA9PSAwXCJcclxuICAgICAgICAgICAgICAgIFtGb2N1c1N1YmplY3RdPVwiRm9jdXNTdWJqZWN0XCIgW0ZpZWxkQXBwZWFyZW5jZV09XCJGaWVsZEFwcGVhcmVuY2VcIlxyXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlJlcXVpcmVkID8gJ3JlcXVpcmVkJyA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgW25vVmFsaWRhdGVdPVwiIVZhbGlkYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIlJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgIFtmb3JjZUludmFsaWRdPVwiRm9yY2VkRXJyb3JcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlNlbGVjdExhYmVsXCJcclxuICAgICAgICAgICAgICAgIFt2YWxpZGF0aW9uRmFpbGVkXT1cIkZhaWxlZFZhbGlkYXRpb25NZXNzYWdlXCJcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJSZXF1aXJlZCA/ICgoUmVxdWlyZWRQbGFjZWhvbGRlciAhPSBudWxsID8gUmVxdWlyZWRQbGFjZWhvbGRlciA6ICgnU2VsZWN0JyB8IGxvY2FsaXplIDogbGMpICsgJy4uLicpKSAgOiBQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2VIb2xkZXJWYWx1ZV09XCJQbGFjZWhvbGRlclZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtzdWJtaXR0ZWRdPVwiRm9ybT8uc3VibWl0dGVkXCJcclxuICAgICAgICAgICAgICAgIFtlbXB0eUZpZWxkVmFsdWVdPVwiUmVxdWlyZWQgfHwgUGxhY2Vob2xkZXIgfHwgU2VsZWN0TGFiZWwgPyBFbXB0eUZpZWxkVmFsdWUgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIk1vZGVsXCJcclxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvblN5bWJvbF09XCJTaG93VmFsaWRhdGlvblN5bWJvbFwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiR2VuZXJhdGVkTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBuYW1lPVwie3tHZW5lcmF0ZWROYW1lfX1femVyb1wiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXRDaGFuZ2UpPVwiTW9kZWwgPSAkZXZlbnQgPT0gRW1wdHlGaWVsZFZhbHVlID8gKFJlcXVpcmVkPyBQbGFjZWhvbGRlclZhbHVlIDogJycpIDogJGV2ZW50OyBjaGFuZ2VkKCk7XCJcclxuICAgICAgICAgICAgICAgIChpbnB1dEZvY3VzKT1cImZvY3VzZWQoJGV2ZW50KTtcIlxyXG4gICAgICAgICAgICAgICAgI3ZhbGlkYXRpb25Db250cm9sPVwibmdNb2RlbFwiPlxyXG4gICAgPC92YWwtc2VsZWN0PlxyXG5cclxuICAgIDwhLS0gU2VsZWN0IHZlcmEgZSBwcm9wcmlhIHBlciBxdWFuZG8gYXJyaXZhbm8gaSBkYXRpIC0tPlxyXG4gICAgPHZhbC1zZWxlY3QgKm5nSWY9XCJCb3VuZFNvdXJjZSAmJiBCb3VuZFNvdXJjZS5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICAgIFtGb2N1c1N1YmplY3RdPVwiRm9jdXNTdWJqZWN0XCIgW0ZpZWxkQXBwZWFyZW5jZV09XCJGaWVsZEFwcGVhcmVuY2VcIlxyXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlJlcXVpcmVkID8gJ3JlcXVpcmVkJyA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgW25vVmFsaWRhdGVdPVwiIVZhbGlkYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIlJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgIFtmb3JjZUludmFsaWRdPVwiRm9yY2VkRXJyb3JcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlNlbGVjdExhYmVsXCJcclxuICAgICAgICAgICAgICAgIFt2YWxpZGF0aW9uRmFpbGVkXT1cIkZhaWxlZFZhbGlkYXRpb25NZXNzYWdlXCJcclxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvblN5bWJvbF09XCJTaG93VmFsaWRhdGlvblN5bWJvbFwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiUmVxdWlyZWQgPyAoKFJlcXVpcmVkUGxhY2Vob2xkZXIgIT0gbnVsbCA/IFJlcXVpcmVkUGxhY2Vob2xkZXIgOiAoJ1NlbGVjdCcgfCBsb2NhbGl6ZSA6IGxjKSArICcuLi4nKSkgOiBQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2VIb2xkZXJWYWx1ZV09XCJQbGFjZWhvbGRlclZhbHVlXCJcclxuICAgICAgICAgICAgICAgIFtzdWJtaXR0ZWRdPVwiRm9ybT8uc3VibWl0dGVkXCJcclxuICAgICAgICAgICAgICAgIFtlbXB0eUZpZWxkVmFsdWVdPVwiUmVxdWlyZWQgfHwgUGxhY2Vob2xkZXIgfHwgU2VsZWN0TGFiZWwgPyBFbXB0eUZpZWxkVmFsdWUgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIk1vZGVsXCJcclxuICAgICAgICAgICAgICAgIFtpZF09XCJHZW5lcmF0ZWROYW1lXCJcclxuICAgICAgICAgICAgICAgIG5hbWU9XCJ7e0dlbmVyYXRlZE5hbWV9fV9maWxsZWRcIlxyXG4gICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlKT1cIk1vZGVsID0gJGV2ZW50ID09IEVtcHR5RmllbGRWYWx1ZSA/IChSZXF1aXJlZD8gUGxhY2Vob2xkZXJWYWx1ZSA6ICcnKSA6ICRldmVudDsgY2hhbmdlZCgpO1wiXHJcbiAgICAgICAgICAgICAgICAoaW5wdXRGb2N1cyk9XCJmb2N1c2VkKCRldmVudCk7XCJcclxuICAgICAgICAgICAgICAgIChpbnB1dEZpbmFsaXplZCk9XCJmaW5hbGl6ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAjdmFsaWRhdGlvbkNvbnRyb2w9XCJuZ01vZGVsXCI+XHJcbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb2JqIG9mIEJvdW5kU291cmNlXCIgW3ZhbHVlXT1cIm9iai5pZFwiPnt7b2JqLmRlc2NyaXB0aW9ufX08L29wdGlvbj5cclxuICAgIDwvdmFsLXNlbGVjdD5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
|
|
@@ -8,42 +8,24 @@ import * as i1 from "@angular/common";
|
|
|
8
8
|
*/
|
|
9
9
|
export class FormTemplateComponent {
|
|
10
10
|
constructor() {
|
|
11
|
-
/**
|
|
12
|
-
* Indica se l'input è obbligatorio o no
|
|
13
|
-
*/
|
|
11
|
+
/** Indica se l'input è obbligatorio o no */
|
|
14
12
|
this.Required = false;
|
|
15
|
-
/**
|
|
16
|
-
* Mostra un testo a sinistra dell'input, **FormLayout** permettendo
|
|
17
|
-
*/
|
|
13
|
+
/** Mostra un testo a sinistra dell'input, **FormLayout** permettendo */
|
|
18
14
|
this.Label = "";
|
|
19
|
-
/**
|
|
20
|
-
* Eventuali classi extra da applicare alla Label, di default c'è solo un leggero margin top
|
|
21
|
-
*/
|
|
15
|
+
/** Eventuali classi extra da applicare alla Label, di default c'è solo un leggero margin top */
|
|
22
16
|
this.LabelClass = "m-t-5";
|
|
23
|
-
/**
|
|
24
|
-
* Utilizza o meno il Layout di un form (Label con input di fianco), se false mostra solo l'input
|
|
25
|
-
*/
|
|
17
|
+
/** Utilizza o meno il Layout di un form (Label con input di fianco), se false mostra solo l'input */
|
|
26
18
|
this.FormLayout = true;
|
|
27
|
-
/**
|
|
28
|
-
* col-md-X per la label
|
|
29
|
-
*/
|
|
19
|
+
/** col-md-X per la label */
|
|
30
20
|
this.LabelColWidth = 4;
|
|
31
|
-
/**
|
|
32
|
-
* col-md-X per l'input
|
|
33
|
-
*/
|
|
21
|
+
/** col-md-X per l'input */
|
|
34
22
|
this.InputColWidth = 8;
|
|
35
|
-
/**
|
|
36
|
-
* Indica se è l'ultimo componente di un form (serve per rimuovere il margine finale)
|
|
37
|
-
*/
|
|
23
|
+
/** Indica se è l'ultimo componente di un form (serve per rimuovere il margine finale) */
|
|
38
24
|
this.Last = false;
|
|
39
|
-
/**
|
|
40
|
-
* Classe extra per il form-group in cui viene wrappato l'input
|
|
41
|
-
*/
|
|
25
|
+
/** Classe extra per il form-group in cui viene wrappato l'input */
|
|
42
26
|
this.FormGroupClass = "";
|
|
43
27
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Permette di settare in una volta solo gli input LabelColWidth e InputColWidth, basta scriverlo con la sintassi "X Y"
|
|
46
|
-
*/
|
|
28
|
+
/** Permette di settare in una volta solo gli input LabelColWidth e InputColWidth, basta scriverlo con la sintassi "X Y" */
|
|
47
29
|
set LabelInputRatio(input) {
|
|
48
30
|
var ratio = input.split(/\s/);
|
|
49
31
|
this.LabelColWidth = parseInt(ratio[0]);
|
|
@@ -74,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
|
|
|
74
56
|
}], LabelInputRatio: [{
|
|
75
57
|
type: Input
|
|
76
58
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLXRlbXBsYXRlL2Zvcm0tdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS10ZW1wbGF0ZS9mb3JtLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRTFFOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFPSSw0Q0FBNEM7UUFDbkMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUVuQyx3RUFBd0U7UUFDL0QsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUU1QixnR0FBZ0c7UUFDdkYsZUFBVSxHQUFXLE9BQU8sQ0FBQztRQUV0QyxxR0FBcUc7UUFDNUYsZUFBVSxHQUFZLElBQUksQ0FBQztRQUVwQyw0QkFBNEI7UUFDbkIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFFbkMsMkJBQTJCO1FBQ2xCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBRW5DLHlGQUF5RjtRQUNoRixTQUFJLEdBQVksS0FBSyxDQUFDO1FBRS9CLG1FQUFtRTtRQUMxRCxtQkFBYyxHQUFXLEVBQUUsQ0FBQztLQVF4QztJQU5HLDJIQUEySDtJQUMzSCxJQUFhLGVBQWUsQ0FBQyxLQUFhO1FBQ3RDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7a0hBL0JRLHFCQUFxQjtzR0FBckIscUJBQXFCLCtTQ1psQyx1ZUFVTTsyRkRFTyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksZUFBZSxtQkFFUix1QkFBdUIsQ0FBQyxNQUFNOzhCQUt0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdPLGVBQWU7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIGRhIHV0aWxpenphcmUgcXVhbmRvIGwnaW1wbGVtZW50YXppb25lIGRlbGwnaW5wdXQgbm9uIMOoIGRpc3BvbmliaWxlIG5lbGxhIGxpYnJlcmlhLCAgXHJcbiAqIGZvcm5pc2NlIGxhIHN0cnV0dHVyYSBzdGFuZGFyZCBkaSB1biBmb3JtLWNvbXBvbmVudCBtYSBsJ2lucHV0IHZlcm8gZSBwcm9wcmlvIHZpZW5lIHByb2lldHRhdG8gZGFsbCdlc3Rlcm5vXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImZvcm0tdGVtcGxhdGVcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcImZvcm0tdGVtcGxhdGUuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtVGVtcGxhdGVDb21wb25lbnQge1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbCdpbnB1dCDDqCBvYmJsaWdhdG9yaW8gbyBubyAqL1xyXG4gICAgQElucHV0KCkgUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogTW9zdHJhIHVuIHRlc3RvIGEgc2luaXN0cmEgZGVsbCdpbnB1dCwgKipGb3JtTGF5b3V0KiogcGVybWV0dGVuZG8gKi9cclxuICAgIEBJbnB1dCgpIExhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBFdmVudHVhbGkgY2xhc3NpIGV4dHJhIGRhIGFwcGxpY2FyZSBhbGxhIExhYmVsLCBkaSBkZWZhdWx0IGMnw6ggc29sbyB1biBsZWdnZXJvIG1hcmdpbiB0b3AgKi9cclxuICAgIEBJbnB1dCgpIExhYmVsQ2xhc3M6IHN0cmluZyA9IFwibS10LTVcIjtcclxuXHJcbiAgICAvKiogVXRpbGl6emEgbyBtZW5vIGlsIExheW91dCBkaSB1biBmb3JtIChMYWJlbCBjb24gaW5wdXQgZGkgZmlhbmNvKSwgc2UgZmFsc2UgbW9zdHJhIHNvbG8gbCdpbnB1dCAqL1xyXG4gICAgQElucHV0KCkgRm9ybUxheW91dDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqIGNvbC1tZC1YIHBlciBsYSBsYWJlbCAqL1xyXG4gICAgQElucHV0KCkgTGFiZWxDb2xXaWR0aDogbnVtYmVyID0gNDtcclxuXHJcbiAgICAvKiogY29sLW1kLVggcGVyIGwnaW5wdXQgKi9cclxuICAgIEBJbnB1dCgpIElucHV0Q29sV2lkdGg6IG51bWJlciA9IDg7XHJcblxyXG4gICAgLyoqIEluZGljYSBzZSDDqCBsJ3VsdGltbyBjb21wb25lbnRlIGRpIHVuIGZvcm0gKHNlcnZlIHBlciByaW11b3ZlcmUgaWwgbWFyZ2luZSBmaW5hbGUpICovXHJcbiAgICBASW5wdXQoKSBMYXN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIENsYXNzZSBleHRyYSBwZXIgaWwgZm9ybS1ncm91cCBpbiBjdWkgdmllbmUgd3JhcHBhdG8gbCdpbnB1dCAqL1xyXG4gICAgQElucHV0KCkgRm9ybUdyb3VwQ2xhc3M6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgLyoqIFBlcm1ldHRlIGRpIHNldHRhcmUgaW4gdW5hIHZvbHRhIHNvbG8gZ2xpIGlucHV0IExhYmVsQ29sV2lkdGggZSBJbnB1dENvbFdpZHRoLCBiYXN0YSBzY3JpdmVybG8gY29uIGxhIHNpbnRhc3NpIFwiWCBZXCIgKi9cclxuICAgIEBJbnB1dCgpIHNldCBMYWJlbElucHV0UmF0aW8oaW5wdXQ6IHN0cmluZykge1xyXG4gICAgICAgIHZhciByYXRpbyA9IGlucHV0LnNwbGl0KC9cXHMvKTtcclxuICAgICAgICB0aGlzLkxhYmVsQ29sV2lkdGggPSBwYXJzZUludChyYXRpb1swXSk7XHJcbiAgICAgICAgdGhpcy5JbnB1dENvbFdpZHRoID0gcGFyc2VJbnQocmF0aW9bMV0pO1xyXG4gICAgfVxyXG59IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFGb3JtTGF5b3V0XCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPGRpdiAqbmdJZj1cIkZvcm1MYXlvdXRcIiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93IHt7Rm9ybUdyb3VwQ2xhc3N9fVwiIFtjbGFzcy5hcHAtbWFyZ2luLWJvdHRvbS0wXT1cIkxhc3RcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC17e0xhYmVsQ29sV2lkdGh9fSB7e0xhYmVsQ2xhc3N9fVwiPnt7TGFiZWx9fXt7UmVxdWlyZWQgPyAnKicgOiAnJ319PHNwYW4gKm5nSWY9XCJMYWJlbFwiPjo8L3NwYW4+PC9sYWJlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQte3tJbnB1dENvbFdpZHRofX1cIj5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -3,34 +3,31 @@ import { NG_VALIDATORS } from "@angular/forms";
|
|
|
3
3
|
import { ChangeDetectionStrategy, Component, Inject, Input, Optional, Self } from "@angular/core";
|
|
4
4
|
// Applicazione
|
|
5
5
|
import { BaseFormControl } from "../base-form-control";
|
|
6
|
-
import { ACO_CUSTOMKEY } from '../../tokens';
|
|
6
|
+
import { ACO_CUSTOMKEY, FAV_DEBUG_MODE } from '../../tokens';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@angular/forms";
|
|
9
9
|
import * as i2 from "@esfaenza/access-control";
|
|
10
10
|
import * as i3 from "../../validations/validation-text-area/validation-text-area.component";
|
|
11
11
|
import * as i4 from "@angular/common";
|
|
12
|
-
/**
|
|
13
|
-
* Componente che presenta una casella di testo tipicamente utilizzata per scrivere delle note o del log breve
|
|
14
|
-
*/
|
|
12
|
+
/** Componente che presenta una casella di testo tipicamente utilizzata per scrivere delle note o del log breve */
|
|
15
13
|
export class FormTextareaComponent extends BaseFormControl {
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* @ignore
|
|
20
|
-
*/
|
|
21
|
-
constructor(cdr, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY) {
|
|
22
|
-
super(cdr, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY);
|
|
14
|
+
/** @ignore Costruttore */
|
|
15
|
+
constructor(cdr, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY, FAV_DEBUG_MODE) {
|
|
16
|
+
super(cdr, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY, FAV_DEBUG_MODE);
|
|
23
17
|
}
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
/** @ignore */
|
|
19
|
+
writeValue(obj) {
|
|
20
|
+
this.EvaluatedModel = obj?.toString() || "";
|
|
21
|
+
super.writeValue(obj);
|
|
22
|
+
}
|
|
23
|
+
/** @ignore */
|
|
27
24
|
onNotNullValueSet() { }
|
|
28
25
|
}
|
|
29
|
-
FormTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FormTextareaComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NgControl, optional: true, self: true }, { token: NG_VALIDATORS, optional: true }, { token: i2.AccessControlService, optional: true }, { token: i2.ComponentContext, optional: true }, { token: ACO_CUSTOMKEY, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
FormTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: FormTextareaComponent, selector: "form-textarea", inputs: { Rows: "Rows" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-textarea \r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [noValidate]=\"!Validation\" \r\n [submitted]=\"Form?.submitted\" \r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\" \r\n [rows]=\"Rows\" \r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey app-no-resize' : 'app-no-resize'\" \r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\" \r\n autocomplete=\"off\" \r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\" \r\n #validationControl=\"ngModel\" \r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n >\r\n </val-textarea>\r\n</ng-template>", components: [{ type: i3.ValidationTextAreaComponent, selector: "val-textarea", inputs: ["rows"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
26
|
+
FormTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FormTextareaComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NgControl, optional: true, self: true }, { token: NG_VALIDATORS, optional: true }, { token: i2.AccessControlService, optional: true }, { token: i2.ComponentContext, optional: true }, { token: ACO_CUSTOMKEY, optional: true }, { token: FAV_DEBUG_MODE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
27
|
+
FormTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: FormTextareaComponent, selector: "form-textarea", inputs: { Rows: "Rows" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\" [class.app-strong]=\"DisplayMode\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-textarea \r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [noValidate]=\"!Validation\" \r\n [submitted]=\"Form?.submitted\" \r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\" \r\n [rows]=\"Rows\" \r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey app-no-resize' : 'app-no-resize'\" \r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\" \r\n autocomplete=\"off\" \r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\" \r\n #validationControl=\"ngModel\" \r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n >\r\n </val-textarea>\r\n</ng-template>", components: [{ type: i3.ValidationTextAreaComponent, selector: "val-textarea", inputs: ["rows"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: FormTextareaComponent, decorators: [{
|
|
32
29
|
type: Component,
|
|
33
|
-
args: [{ selector: "form-textarea", changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-textarea \r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [noValidate]=\"!Validation\" \r\n [submitted]=\"Form?.submitted\" \r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\" \r\n [rows]=\"Rows\" \r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey app-no-resize' : 'app-no-resize'\" \r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\" \r\n autocomplete=\"off\" \r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\" \r\n #validationControl=\"ngModel\" \r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n >\r\n </val-textarea>\r\n</ng-template>" }]
|
|
30
|
+
args: [{ selector: "form-textarea", changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\" [class.app-strong]=\"DisplayMode\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">{{ EvaluatedModel }}</ng-container>\r\n <ng-container *ngIf=\"DisplayMode && DisplayModeTemplate\"><ng-container *ngTemplateOutlet=\"DisplayModeTemplate, context: { $implicit: EvaluatedModel }\"></ng-container></ng-container>\r\n <div [hidden]=\"DisplayMode\"><ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container></div>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-textarea \r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [noValidate]=\"!Validation\" \r\n [submitted]=\"Form?.submitted\" \r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\" \r\n [rows]=\"Rows\" \r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey app-no-resize' : 'app-no-resize'\" \r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\" \r\n autocomplete=\"off\" \r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\" \r\n #validationControl=\"ngModel\" \r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n >\r\n </val-textarea>\r\n</ng-template>" }]
|
|
34
31
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.NgControl, decorators: [{
|
|
35
32
|
type: Optional
|
|
36
33
|
}, {
|
|
@@ -49,7 +46,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
|
|
|
49
46
|
}, {
|
|
50
47
|
type: Inject,
|
|
51
48
|
args: [ACO_CUSTOMKEY]
|
|
49
|
+
}] }, { type: undefined, decorators: [{
|
|
50
|
+
type: Optional
|
|
51
|
+
}, {
|
|
52
|
+
type: Inject,
|
|
53
|
+
args: [FAV_DEBUG_MODE]
|
|
52
54
|
}] }]; }, propDecorators: { Rows: [{
|
|
53
55
|
type: Input
|
|
54
56
|
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLXRleHRhcmVhL2Zvcm0tdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS10ZXh0YXJlYS9mb3JtLXRleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQXdCLGFBQWEsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVySCxlQUFlO0FBQ2YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSXZELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFFN0Qsa0hBQWtIO0FBTWxILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFlO0lBS3RELDJCQUEyQjtJQUMzQixZQUFZLEdBQXNCLEVBQXNCLFNBQW9CLEVBQXFDLFdBQXVCLEVBQWMsRUFBd0IsRUFBYyxVQUE0QixFQUFvQyxhQUFhLEVBQXNDLGNBQXdCO1FBQ25VLEtBQUssQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVUsQ0FBQyxHQUFRO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzVDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUIsS0FBVyxDQUFDOztrSEFqQnBCLHFCQUFxQix3R0FNb0UsYUFBYSxpSUFBOEgsYUFBYSw2QkFBcUMsY0FBYztzR0FOcFMscUJBQXFCLHNHQ2pCbEMsMG1FQXFDYzsyRkRwQkQscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNJLGVBQWUsbUJBRVIsdUJBQXVCLENBQUMsTUFBTTs7MEJBUVYsUUFBUTs7MEJBQUksSUFBSTs4QkFBeUUsS0FBSzswQkFBcEQsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzswQkFBNEIsUUFBUTs7MEJBQThCLFFBQVE7OzBCQUFrQyxRQUFROzswQkFBRyxNQUFNOzJCQUFDLGFBQWE7OzBCQUFrQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGNBQWM7NENBSHBTLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFNlbGYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UsIENvbXBvbmVudENvbnRleHQgfSBmcm9tICdAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcblxyXG4vKiogQ29tcG9uZW50ZSBjaGUgcHJlc2VudGEgdW5hIGNhc2VsbGEgZGkgdGVzdG8gdGlwaWNhbWVudGUgdXRpbGl6emF0YSBwZXIgc2NyaXZlcmUgZGVsbGUgbm90ZSBvIGRlbCBsb2cgYnJldmUgKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogXCJmb3JtLXRleHRhcmVhXCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCJmb3JtLXRleHRhcmVhLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db250cm9sIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAgIC8qKiBOdW1lcm8gZGkgcmlnaGUgZGEgdmlzdWFsaXp6YXJlIGRpIGRlZmF1bHQgKi9cclxuICAgIEBJbnB1dCgpIFJvd3M6IG51bWJlcjtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgX3ZhbGlkYXRvcnM6IEFycmF5PGFueT4sIEBPcHRpb25hbCgpIGFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgQE9wdGlvbmFsKCkgQXBwQ29udGV4dDogQ29tcG9uZW50Q29udGV4dCwgQE9wdGlvbmFsKClASW5qZWN0KEFDT19DVVNUT01LRVkpIEFDT19DVVNUT01LRVksIEBPcHRpb25hbCgpIEBJbmplY3QoRkFWX0RFQlVHX01PREUpIEZBVl9ERUJVR19NT0RFIDogYm9vbGVhbikge1xyXG4gICAgICAgIHN1cGVyKGNkciwgbmdDb250cm9sLCBfdmFsaWRhdG9ycywgYWMsIEFwcENvbnRleHQsIEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSBvYmo/LnRvU3RyaW5nKCkgfHwgXCJcIjtcclxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG9uTm90TnVsbFZhbHVlU2V0KCk6IHZvaWQgeyB9XHJcbn0iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIUZvcm1MYXlvdXRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJEaXNwbGF5TW9kZSAmJiAhRGlzcGxheU1vZGVUZW1wbGF0ZVwiPnt7IEV2YWx1YXRlZE1vZGVsIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGlzcGxheU1vZGUgJiYgRGlzcGxheU1vZGVUZW1wbGF0ZVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJEaXNwbGF5TW9kZVRlbXBsYXRlLCBjb250ZXh0OiB7ICRpbXBsaWNpdDogRXZhbHVhdGVkTW9kZWwgfVwiPjwvbmctY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG4gICAgPGRpdiBbaGlkZGVuXT1cIkRpc3BsYXlNb2RlXCI+PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRyb2xUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPjwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxkaXYgKm5nSWY9XCJGb3JtTGF5b3V0ICYmIEJvdW5kU291cmNlXCIgY2xhc3M9XCJmb3JtLWdyb3VwIHJvdyB7e0Zvcm1Hcm91cENsYXNzfX1cIiBbY2xhc3MuYXBwLW1hcmdpbi1ib3R0b20tMF09XCJMYXN0XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQte3tMYWJlbENvbFdpZHRofX0gbS10LTVcIiBbY2xhc3MuYXBwLXN0cm9uZ109XCJEaXNwbGF5TW9kZVwiPnt7TGFiZWx9fXt7UmVxdWlyZWQgJiYgIURpc3BsYXlNb2RlID8gJyonIDogJyd9fTo8L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC17e0lucHV0Q29sV2lkdGh9fVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJEaXNwbGF5TW9kZSAmJiAhRGlzcGxheU1vZGVUZW1wbGF0ZVwiPnt7IEV2YWx1YXRlZE1vZGVsIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkRpc3BsYXlNb2RlICYmIERpc3BsYXlNb2RlVGVtcGxhdGVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRGlzcGxheU1vZGVUZW1wbGF0ZSwgY29udGV4dDogeyAkaW1wbGljaXQ6IEV2YWx1YXRlZE1vZGVsIH1cIj48L25nLWNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8ZGl2IFtoaWRkZW5dPVwiRGlzcGxheU1vZGVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udHJvbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjbGVhcmZpeFwiPjwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29udHJvbFRlbXBsYXRlPlxyXG4gICAgPHZhbC10ZXh0YXJlYSBcclxuICAgICAgICBbRm9jdXNTdWJqZWN0XT1cIkZvY3VzU3ViamVjdFwiIFtGaWVsZEFwcGVhcmVuY2VdPVwiRmllbGRBcHBlYXJlbmNlXCJcclxuICAgICAgICBbbm9WYWxpZGF0ZV09XCIhVmFsaWRhdGlvblwiIFxyXG4gICAgICAgIFtzdWJtaXR0ZWRdPVwiRm9ybT8uc3VibWl0dGVkXCIgXHJcbiAgICAgICAgW2ZvcmNlSW52YWxpZF09XCJGb3JjZWRFcnJvclwiXHJcbiAgICAgICAgW2lkXT1cIkdlbmVyYXRlZE5hbWVcIiBcclxuICAgICAgICBbcm93c109XCJSb3dzXCIgXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cIlJlYWRvbmx5XCJcclxuICAgICAgICBbY2xhc3NdPVwiUmVhZG9ubHkgPyAnYXBwLWJnLWxpZ2h0Z3JleSBhcHAtbm8tcmVzaXplJyA6ICdhcHAtbm8tcmVzaXplJ1wiIFxyXG4gICAgICAgIFsobmdNb2RlbCldPVwiTW9kZWxcIlxyXG4gICAgICAgIG5hbWU9XCJ7e0dlbmVyYXRlZE5hbWV9fVwiIFxyXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW3ZhbGlkYXRpb25GYWlsZWRdPVwiRmFpbGVkVmFsaWRhdGlvbk1lc3NhZ2VcIiBcclxuICAgICAgICAjdmFsaWRhdGlvbkNvbnRyb2w9XCJuZ01vZGVsXCIgXHJcbiAgICAgICAgKGlucHV0Q2hhbmdlKT1cImNoYW5nZWQoKTtcIlxyXG4gICAgICAgIChpbnB1dEZvY3VzKT1cImZvY3VzZWQoJGV2ZW50KTtcIlxyXG4gICAgICAgIChpbnB1dEZpbmFsaXplZCk9XCJmaW5hbGl6ZWQoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgPC92YWwtdGV4dGFyZWE+XHJcbjwvbmctdGVtcGxhdGU+Il19
|