@esfaenza/forms-and-validations 18.2.1 → 19.2.1
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/fesm2022/esfaenza-forms-and-validations.mjs +153 -153
- package/fesm2022/esfaenza-forms-and-validations.mjs.map +1 -1
- package/lib/forms/base-form-control.d.ts +1 -1
- package/lib/forms/form-adaptive/form-adaptive.component.d.ts +2 -2
- package/lib/forms/form-time/form-time.component.d.ts +2 -2
- package/lib/validations/base-validation.d.ts +1 -1
- package/package.json +13 -15
- package/esm2022/esfaenza-forms-and-validations.mjs +0 -5
- package/esm2022/lib/forms/base-form-control.mjs +0 -558
- package/esm2022/lib/forms/form-adaptive/form-adaptive.component.loc.mjs +0 -22
- package/esm2022/lib/forms/form-adaptive/form-adaptive.component.mjs +0 -420
- package/esm2022/lib/forms/form-autocomplete/form-autocomplete.component.loc.mjs +0 -21
- package/esm2022/lib/forms/form-autocomplete/form-autocomplete.component.mjs +0 -289
- package/esm2022/lib/forms/form-checkbox/form-checkbox.component.mjs +0 -74
- package/esm2022/lib/forms/form-date/form-date.component.mjs +0 -69
- package/esm2022/lib/forms/form-datetime/form-datetime.component.mjs +0 -67
- package/esm2022/lib/forms/form-empty/form-empty.component.mjs +0 -30
- package/esm2022/lib/forms/form-error/form-error.component.mjs +0 -42
- package/esm2022/lib/forms/form-file/form-file.component.loc.mjs +0 -22
- package/esm2022/lib/forms/form-file/form-file.component.mjs +0 -175
- package/esm2022/lib/forms/form-info/form-info.component.mjs +0 -42
- package/esm2022/lib/forms/form-input/form-input.component.mjs +0 -83
- package/esm2022/lib/forms/form-multiselect/form-multiselect.component.loc.mjs +0 -23
- package/esm2022/lib/forms/form-multiselect/form-multiselect.component.mjs +0 -163
- package/esm2022/lib/forms/form-select/form-select.component.loc.mjs +0 -21
- package/esm2022/lib/forms/form-select/form-select.component.mjs +0 -165
- package/esm2022/lib/forms/form-template/form-template.component.mjs +0 -77
- package/esm2022/lib/forms/form-textarea/form-textarea.component.mjs +0 -57
- package/esm2022/lib/forms/form-time/form-time.component.mjs +0 -115
- package/esm2022/lib/forms-and-validations.module.mjs +0 -213
- package/esm2022/lib/models/AppFile.mjs +0 -14
- package/esm2022/lib/models/ChangeEvent.mjs +0 -7
- package/esm2022/lib/models/FormsAndValidationsModuleConfig.mjs +0 -6
- package/esm2022/lib/models/dayjs-adapter/dayjs-date-adapter.mjs +0 -89
- package/esm2022/lib/tokens.mjs +0 -8
- package/esm2022/lib/validations/base-validation.loc.mjs +0 -23
- package/esm2022/lib/validations/base-validation.mjs +0 -328
- package/esm2022/lib/validations/customValidators/CustomRequiredDirective.mjs +0 -41
- package/esm2022/lib/validations/validation-autocomplete/validation-autocomplete.component.mjs +0 -147
- package/esm2022/lib/validations/validation-autocomplete-multi/validation-autocomplete-multi.component.mjs +0 -240
- package/esm2022/lib/validations/validation-currency/validation-currency.component.mjs +0 -75
- package/esm2022/lib/validations/validation-date/validation-date.component.mjs +0 -183
- package/esm2022/lib/validations/validation-datetime/validation-datetime.component.mjs +0 -212
- package/esm2022/lib/validations/validation-input/validation-input.component.mjs +0 -222
- package/esm2022/lib/validations/validation-select/validation-select.component.mjs +0 -183
- package/esm2022/lib/validations/validation-text-area/validation-text-area.component.mjs +0 -78
- package/esm2022/public-api.mjs +0 -40
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Input } from "@angular/core";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Componente placeholder per la creazione dei form che rappresenta un blocchetto di informazioni,
|
|
6
|
-
* al posto del quale possono poi comparire dei componenti form senza incasinare la grafica
|
|
7
|
-
*/
|
|
8
|
-
export class FormInfoComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
/** col-md-X per la label (Che in questoc aso è vuota) */
|
|
11
|
-
this.LabelColWidth = 4;
|
|
12
|
-
/** col-md-X per l'input (che in questo caso contiene il messaggio d'errore proiettato nell'HTML) */
|
|
13
|
-
this.InputColWidth = 8;
|
|
14
|
-
/** Indica se è l'ultimo componente di un form (serve per rimuovere il margine finale) */
|
|
15
|
-
this.Last = false;
|
|
16
|
-
/** Classe extra per il form-group in cui viene wrappato l'input */
|
|
17
|
-
this.FormGroupClass = "";
|
|
18
|
-
}
|
|
19
|
-
/** Permette di settare in una volta solo gli input LabelColWidth e InputColWidth, basta scriverlo con la sintassi "X Y" */
|
|
20
|
-
set LabelInputRatio(input) {
|
|
21
|
-
var ratio = input.split(/\s/);
|
|
22
|
-
this.LabelColWidth = parseInt(ratio[0]);
|
|
23
|
-
this.InputColWidth = parseInt(ratio[1]);
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormInfoComponent, selector: "form-info", inputs: { LabelColWidth: "LabelColWidth", InputColWidth: "InputColWidth", Last: "Last", FormGroupClass: "FormGroupClass", LabelInputRatio: "LabelInputRatio" }, ngImport: i0, template: "<div class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"app-hidden-view col-md-{{LabelColWidth}} m-t-5\"></label>\r\n <span class=\"help-block col-md-{{InputColWidth}}\">\r\n <ng-content></ng-content>\r\n </span>\r\n <div class=\"clearfix\"></div>\r\n</div>", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormInfoComponent, decorators: [{
|
|
29
|
-
type: Component,
|
|
30
|
-
args: [{ selector: "form-info", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"app-hidden-view col-md-{{LabelColWidth}} m-t-5\"></label>\r\n <span class=\"help-block col-md-{{InputColWidth}}\">\r\n <ng-content></ng-content>\r\n </span>\r\n <div class=\"clearfix\"></div>\r\n</div>" }]
|
|
31
|
-
}], propDecorators: { LabelColWidth: [{
|
|
32
|
-
type: Input
|
|
33
|
-
}], InputColWidth: [{
|
|
34
|
-
type: Input
|
|
35
|
-
}], Last: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}], FormGroupClass: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}], LabelInputRatio: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}] } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm1zLWFuZC12YWxpZGF0aW9ucy9zcmMvbGliL2Zvcm1zL2Zvcm0taW5mby9mb3JtLWluZm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1pbmZvL2Zvcm0taW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFFOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFNSSx5REFBeUQ7UUFDaEQsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFFbkMsb0dBQW9HO1FBQzNGLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBRW5DLHlGQUF5RjtRQUNoRixTQUFJLEdBQVksS0FBSyxDQUFDO1FBRS9CLG1FQUFtRTtRQUMxRCxtQkFBYyxHQUFXLEVBQUUsQ0FBQztLQVF4QztJQU5HLDJIQUEySDtJQUMzSCxJQUFhLGVBQWUsQ0FBQyxLQUFhO1FBQ3RDLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQzsrR0FsQlEsaUJBQWlCO21HQUFqQixpQkFBaUIsaU5DWjlCLHdVQU1NOzs0RkRNTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksV0FBVyxtQkFFSix1QkFBdUIsQ0FBQyxNQUFNOzhCQUl0QyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR08sZUFBZTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgcGxhY2Vob2xkZXIgcGVyIGxhIGNyZWF6aW9uZSBkZWkgZm9ybSBjaGUgcmFwcHJlc2VudGEgdW4gYmxvY2NoZXR0byBkaSBpbmZvcm1hemlvbmksIFxyXG4gKiBhbCBwb3N0byBkZWwgcXVhbGUgcG9zc29ubyBwb2kgY29tcGFyaXJlIGRlaSBjb21wb25lbnRpIGZvcm0gc2VuemEgaW5jYXNpbmFyZSBsYSBncmFmaWNhXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImZvcm0taW5mb1wiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1pbmZvLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUluZm9Db21wb25lbnQge1xyXG4gICAgLyoqIGNvbC1tZC1YIHBlciBsYSBsYWJlbCAoQ2hlIGluIHF1ZXN0b2MgYXNvIMOoIHZ1b3RhKSAqL1xyXG4gICAgQElucHV0KCkgTGFiZWxDb2xXaWR0aDogbnVtYmVyID0gNDtcclxuXHJcbiAgICAvKiogY29sLW1kLVggcGVyIGwnaW5wdXQgKGNoZSBpbiBxdWVzdG8gY2FzbyBjb250aWVuZSBpbCBtZXNzYWdnaW8gZCdlcnJvcmUgcHJvaWV0dGF0byBuZWxsJ0hUTUwpICovXHJcbiAgICBASW5wdXQoKSBJbnB1dENvbFdpZHRoOiBudW1iZXIgPSA4O1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2Ugw6ggbCd1bHRpbW8gY29tcG9uZW50ZSBkaSB1biBmb3JtIChzZXJ2ZSBwZXIgcmltdW92ZXJlIGlsIG1hcmdpbmUgZmluYWxlKSAqL1xyXG4gICAgQElucHV0KCkgTGFzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBDbGFzc2UgZXh0cmEgcGVyIGlsIGZvcm0tZ3JvdXAgaW4gY3VpIHZpZW5lIHdyYXBwYXRvIGwnaW5wdXQgKi9cclxuICAgIEBJbnB1dCgpIEZvcm1Hcm91cENsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBQZXJtZXR0ZSBkaSBzZXR0YXJlIGluIHVuYSB2b2x0YSBzb2xvIGdsaSBpbnB1dCBMYWJlbENvbFdpZHRoIGUgSW5wdXRDb2xXaWR0aCwgYmFzdGEgc2NyaXZlcmxvIGNvbiBsYSBzaW50YXNzaSBcIlggWVwiICovXHJcbiAgICBASW5wdXQoKSBzZXQgTGFiZWxJbnB1dFJhdGlvKGlucHV0OiBzdHJpbmcpIHtcclxuICAgICAgICB2YXIgcmF0aW8gPSBpbnB1dC5zcGxpdCgvXFxzLyk7XHJcbiAgICAgICAgdGhpcy5MYWJlbENvbFdpZHRoID0gcGFyc2VJbnQocmF0aW9bMF0pO1xyXG4gICAgICAgIHRoaXMuSW5wdXRDb2xXaWR0aCA9IHBhcnNlSW50KHJhdGlvWzFdKTtcclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvdyB7e0Zvcm1Hcm91cENsYXNzfX1cIiBbY2xhc3MuYXBwLW1hcmdpbi1ib3R0b20tMF09XCJMYXN0XCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJhcHAtaGlkZGVuLXZpZXcgY29sLW1kLXt7TGFiZWxDb2xXaWR0aH19IG0tdC01XCI+PC9sYWJlbD5cclxuICAgIDxzcGFuIGNsYXNzPVwiaGVscC1ibG9jayBjb2wtbWQte3tJbnB1dENvbFdpZHRofX1cIj5cclxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2xlYXJmaXhcIj48L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Inject, Input, Optional, Output, Self } from "@angular/core";
|
|
3
|
-
import { NG_VALIDATORS } from "@angular/forms";
|
|
4
|
-
// Applicazione
|
|
5
|
-
import { BaseFormControl } from "../base-form-control";
|
|
6
|
-
import { ACO_CUSTOMKEY, FAV_DEBUG_MODE } from '../../tokens';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/forms";
|
|
9
|
-
import * as i2 from "@esfaenza/access-control";
|
|
10
|
-
import * as i3 from "@angular/common";
|
|
11
|
-
import * as i4 from "@angular/material/form-field";
|
|
12
|
-
import * as i5 from "../../validations/validation-input/validation-input.component";
|
|
13
|
-
/** Semplice componente di Input testuale, con eventuale prefisso/suffisso */
|
|
14
|
-
export class FormInputComponent extends BaseFormControl {
|
|
15
|
-
/** @ignore Costruttore */
|
|
16
|
-
constructor(cdr, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY, FAV_DEBUG_MODE) {
|
|
17
|
-
super(cdr, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY, FAV_DEBUG_MODE);
|
|
18
|
-
/** Indica se l'input relativo è di tipo Password */
|
|
19
|
-
this.Password = false;
|
|
20
|
-
/** Delegato per l'esecuzione di un'operazione al click del suffisso */
|
|
21
|
-
this.onSuffixAction = new EventEmitter();
|
|
22
|
-
/** Delegato per l'esecuzione di un'operazione al click del prefisso */
|
|
23
|
-
this.onPrefixAction = new EventEmitter();
|
|
24
|
-
/** Indica la presenza o meno di un suffisso, si basa sulla "truthiness" della proiezione **suffix** */
|
|
25
|
-
this.HasSuffix = false;
|
|
26
|
-
/** Indica la presenza o meno di un prefisso, si basa sulla "truthiness" della proiezione **prefix** */
|
|
27
|
-
this.HasPrefix = false;
|
|
28
|
-
}
|
|
29
|
-
/** @ignore */
|
|
30
|
-
writeValue(obj) {
|
|
31
|
-
this.EvaluatedModel = obj?.toString() || "";
|
|
32
|
-
super.writeValue(obj);
|
|
33
|
-
}
|
|
34
|
-
/** @ignore */
|
|
35
|
-
ngAfterContentInit() {
|
|
36
|
-
this.HasSuffix = !!this.suffix;
|
|
37
|
-
this.HasPrefix = !!this.prefix;
|
|
38
|
-
}
|
|
39
|
-
/** @ignore */
|
|
40
|
-
onNotNullValueSet() { }
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormInputComponent, 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 }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormInputComponent, selector: "form-input", inputs: { Password: "Password" }, outputs: { onSuffixAction: "onSuffixAction", onPrefixAction: "onPrefixAction" }, queries: [{ propertyName: "suffix", first: true, predicate: ["suffix"], descendants: true }, { propertyName: "prefix", first: true, predicate: ["prefix"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout && (!DisplayMode || (DisplayLayout != 'hidden' && DisplayCondition))\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </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 && (!DisplayMode || (DisplayLayout != 'hidden' && DisplayCondition))\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}{{Label ? \":\" : \"\"}}</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline' && InlineSeparator != ''\">{{InlineSeparator}}</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\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\r\n<ng-template #controlTemplate>\r\n <val-input [FocusSubject]=\"FocusSubject\" [SetValidationSubject]=\"SetValidationSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [maxlength]=\"maxlength\"\r\n [minlength]=\"minlength\"\r\n [noValidate]=\"!Validation\"\r\n [Frozen]=\"Frozen\"\r\n [submitted]=\"Form?.submitted\"\r\n [Readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\" \r\n [FloatingLabel]=\"FloatingLabel\"\r\n [Type]=\"Type\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n autocomplete=\"off\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [Password]=\"Password\">\r\n <ng-container *ngIf=\"HasSuffix\">\r\n <ng-template #suffix_internal>\r\n <span class=\"input-suffix\" matSuffix (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"HasPrefix\">\r\n <ng-template #prefix_internal>\r\n <span matPrefix (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n </val-input>\r\n</ng-template>", styles: [".input-suffix{height:30px;width:25px;display:inline-block;padding-top:8px;padding-left:10px;z-index:999;position:relative}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5.ValidationInputComponent, selector: "val-input", inputs: ["Frozen", "Password", "showWarning", "warningTitle", "warningClass", "value", "Type", "maxlength", "minlength"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
43
|
-
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormInputComponent, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{ selector: "form-input", changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout && (!DisplayMode || (DisplayLayout != 'hidden' && DisplayCondition))\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </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 && (!DisplayMode || (DisplayLayout != 'hidden' && DisplayCondition))\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}{{Label ? \":\" : \"\"}}</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline' && InlineSeparator != ''\">{{InlineSeparator}}</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\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\r\n<ng-template #controlTemplate>\r\n <val-input [FocusSubject]=\"FocusSubject\" [SetValidationSubject]=\"SetValidationSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [maxlength]=\"maxlength\"\r\n [minlength]=\"minlength\"\r\n [noValidate]=\"!Validation\"\r\n [Frozen]=\"Frozen\"\r\n [submitted]=\"Form?.submitted\"\r\n [Readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\" \r\n [FloatingLabel]=\"FloatingLabel\"\r\n [Type]=\"Type\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n autocomplete=\"off\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [Password]=\"Password\">\r\n <ng-container *ngIf=\"HasSuffix\">\r\n <ng-template #suffix_internal>\r\n <span class=\"input-suffix\" matSuffix (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"HasPrefix\">\r\n <ng-template #prefix_internal>\r\n <span matPrefix (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n </val-input>\r\n</ng-template>", styles: [".input-suffix{height:30px;width:25px;display:inline-block;padding-top:8px;padding-left:10px;z-index:999;position:relative}\n"] }]
|
|
47
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.NgControl, decorators: [{
|
|
48
|
-
type: Optional
|
|
49
|
-
}, {
|
|
50
|
-
type: Self
|
|
51
|
-
}] }, { type: Array, decorators: [{
|
|
52
|
-
type: Optional
|
|
53
|
-
}, {
|
|
54
|
-
type: Inject,
|
|
55
|
-
args: [NG_VALIDATORS]
|
|
56
|
-
}] }, { type: i2.AccessControlService, decorators: [{
|
|
57
|
-
type: Optional
|
|
58
|
-
}] }, { type: i2.ComponentContext, decorators: [{
|
|
59
|
-
type: Optional
|
|
60
|
-
}] }, { type: undefined, decorators: [{
|
|
61
|
-
type: Optional
|
|
62
|
-
}, {
|
|
63
|
-
type: Inject,
|
|
64
|
-
args: [ACO_CUSTOMKEY]
|
|
65
|
-
}] }, { type: undefined, decorators: [{
|
|
66
|
-
type: Optional
|
|
67
|
-
}, {
|
|
68
|
-
type: Inject,
|
|
69
|
-
args: [FAV_DEBUG_MODE]
|
|
70
|
-
}] }], propDecorators: { Password: [{
|
|
71
|
-
type: Input
|
|
72
|
-
}], onSuffixAction: [{
|
|
73
|
-
type: Output
|
|
74
|
-
}], onPrefixAction: [{
|
|
75
|
-
type: Output
|
|
76
|
-
}], suffix: [{
|
|
77
|
-
type: ContentChild,
|
|
78
|
-
args: ["suffix", { static: false }]
|
|
79
|
-
}], prefix: [{
|
|
80
|
-
type: ContentChild,
|
|
81
|
-
args: ["prefix", { static: false }]
|
|
82
|
-
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQVEsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SSxPQUFPLEVBQXdCLGFBQWEsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRWhGLGVBQWU7QUFDZixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFHN0QsNkVBQTZFO0FBTzdFLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxlQUFlO0lBdUJuRCwyQkFBMkI7SUFDM0IsWUFBWSxHQUFzQixFQUFzQixTQUFvQixFQUFxQyxXQUF1QixFQUFjLEVBQXdCLEVBQWMsVUFBNEIsRUFBcUMsYUFBcUIsRUFBc0MsY0FBd0I7UUFDNVUsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBdkJ0RixvREFBb0Q7UUFDcEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQyx1RUFBdUU7UUFDN0QsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4RSx1RUFBdUU7UUFDN0QsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVF4RSx1R0FBdUc7UUFDaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUVsQyx1R0FBdUc7UUFDaEcsY0FBUyxHQUFZLEtBQUssQ0FBQztJQUtsQyxDQUFDO0lBRUQsY0FBYztJQUNkLFVBQVUsQ0FBQyxHQUFRO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzVDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELGNBQWM7SUFDZCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7SUFDZCxpQkFBaUIsS0FBVyxDQUFDOytHQXpDcEIsa0JBQWtCLHdHQXdCdUUsYUFBYSxpSUFBK0gsYUFBYSw2QkFBNkMsY0FBYzttR0F4QjdTLGtCQUFrQiw2V0NuQi9CLDZqSUE2RGM7OzRGRDFDRCxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0ksWUFBWSxtQkFHTCx1QkFBdUIsQ0FBQyxNQUFNOzswQkEwQlYsUUFBUTs7MEJBQUksSUFBSTs7MEJBQTBCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQTRCLFFBQVE7OzBCQUE4QixRQUFROzswQkFBa0MsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxhQUFhOzswQkFBMEIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxjQUFjO3lDQXJCdFMsUUFBUTtzQkFBdkIsS0FBSztnQkFHSSxjQUFjO3NCQUF2QixNQUFNO2dCQUdHLGNBQWM7c0JBQXZCLE1BQU07Z0JBR29DLE1BQU07c0JBQWhELFlBQVk7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHRSxNQUFNO3NCQUFoRCxZQUFZO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBIb3N0LCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0LCBTZWxmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTElEQVRPUlMsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5cclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgQWNjZXNzQ29udHJvbFNlcnZpY2UsIENvbXBvbmVudENvbnRleHQgfSBmcm9tICdAZXNmYWVuemEvYWNjZXNzLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBBQ09fQ1VTVE9NS0VZLCBGQVZfREVCVUdfTU9ERSB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKiBTZW1wbGljZSBjb21wb25lbnRlIGRpIElucHV0IHRlc3R1YWxlLCBjb24gZXZlbnR1YWxlIHByZWZpc3NvL3N1ZmZpc3NvICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiZm9ybS1pbnB1dFwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwiZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc3R5bGVVcmxzOiBbXCIuL2Zvcm0taW5wdXQuY29tcG9uZW50LnNjc3NcIl0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db250cm9sIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbCdpbnB1dCByZWxhdGl2byDDqCBkaSB0aXBvIFBhc3N3b3JkICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgUGFzc3dvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogRGVsZWdhdG8gcGVyIGwnZXNlY3V6aW9uZSBkaSB1bidvcGVyYXppb25lIGFsIGNsaWNrIGRlbCBzdWZmaXNzbyAqL1xyXG4gICAgQE91dHB1dCgpIG9uU3VmZml4QWN0aW9uOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqIERlbGVnYXRvIHBlciBsJ2VzZWN1emlvbmUgZGkgdW4nb3BlcmF6aW9uZSBhbCBjbGljayBkZWwgcHJlZmlzc28gKi9cclxuICAgIEBPdXRwdXQoKSBvblByZWZpeEFjdGlvbjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIC8qKiBFbGVtZW50byBjaGUgY29udGllbmUgbGEgcHJvaWV6aW9uZSBkZWxsJ0hUTUwgZGVsIHN1ZmZpc3NvICovXHJcbiAgICBAQ29udGVudENoaWxkKFwic3VmZml4XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBzdWZmaXg7XHJcblxyXG4gICAgLyoqIEVsZW1lbnRvIGNoZSBjb250aWVuZSBsYSBwcm9pZXppb25lIGRlbGwnSFRNTCBkZWwgcHJlZmlzc28gKi9cclxuICAgIEBDb250ZW50Q2hpbGQoXCJwcmVmaXhcIiwgeyBzdGF0aWM6IGZhbHNlIH0pIHByZWZpeDtcclxuXHJcbiAgICAvKiogSW5kaWNhIGxhIHByZXNlbnphIG8gbWVubyBkaSB1biBzdWZmaXNzbywgc2kgYmFzYSBzdWxsYSBcInRydXRoaW5lc3NcIiBkZWxsYSBwcm9pZXppb25lICoqc3VmZml4KiogKi9cclxuICAgIHB1YmxpYyBIYXNTdWZmaXg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIGxhIHByZXNlbnphIG8gbWVubyBkaSB1biBwcmVmaXNzbywgc2kgYmFzYSBzdWxsYSBcInRydXRoaW5lc3NcIiBkZWxsYSBwcm9pZXppb25lICoqcHJlZml4KiogKi9cclxuICAgIHB1YmxpYyBIYXNQcmVmaXg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgX3ZhbGlkYXRvcnM6IEFycmF5PGFueT4sIEBPcHRpb25hbCgpIGFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgQE9wdGlvbmFsKCkgQXBwQ29udGV4dDogQ29tcG9uZW50Q29udGV4dCwgQE9wdGlvbmFsKCkgQEluamVjdChBQ09fQ1VTVE9NS0VZKSBBQ09fQ1VTVE9NS0VZOiBzdHJpbmcsIEBPcHRpb25hbCgpIEBJbmplY3QoRkFWX0RFQlVHX01PREUpIEZBVl9ERUJVR19NT0RFIDogYm9vbGVhbikge1xyXG4gICAgICAgIHN1cGVyKGNkciwgbmdDb250cm9sLCBfdmFsaWRhdG9ycywgYWMsIEFwcENvbnRleHQsIEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuRXZhbHVhdGVkTW9kZWwgPSBvYmo/LnRvU3RyaW5nKCkgfHwgXCJcIjtcclxuICAgICAgICBzdXBlci53cml0ZVZhbHVlKG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgICAgICB0aGlzLkhhc1N1ZmZpeCA9ICEhdGhpcy5zdWZmaXg7XHJcbiAgICAgICAgdGhpcy5IYXNQcmVmaXggPSAhIXRoaXMucHJlZml4O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG59IiwiPCEtLSBVZ3VhbGUgaW4gdHV0dGkgaSBjb21wb25lbnRpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFGb3JtTGF5b3V0ICYmICghRGlzcGxheU1vZGUgfHwgKERpc3BsYXlMYXlvdXQgIT0gJ2hpZGRlbicgJiYgRGlzcGxheUNvbmRpdGlvbikpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGlzcGxheU1vZGUgJiYgIURpc3BsYXlNb2RlVGVtcGxhdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGlzcGxheUxheW91dCA9PSAnZm9ybSdcIj57eyBFdmFsdWF0ZWRNb2RlbCB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJEaXNwbGF5TGF5b3V0ID09ICdpbmxpbmUnXCIgY2xhc3M9XCJhcHAtaW5saW5lXCI+e3sgRXZhbHVhdGVkTW9kZWwgfX08L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkRpc3BsYXlNb2RlICYmIERpc3BsYXlNb2RlVGVtcGxhdGVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRGlzcGxheU1vZGVUZW1wbGF0ZSwgY29udGV4dDogeyAkaW1wbGljaXQ6IEV2YWx1YXRlZE1vZGVsIH1cIj48L25nLWNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgW2hpZGRlbl09XCJEaXNwbGF5TW9kZVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cm9sVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj48L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48ZGl2ICpuZ0lmPVwiRm9ybUxheW91dCAmJiAoIURpc3BsYXlNb2RlIHx8IChEaXNwbGF5TGF5b3V0ICE9ICdoaWRkZW4nICYmIERpc3BsYXlDb25kaXRpb24pKVwiIGNsYXNzPVwie3tGb3JtR3JvdXBDbGFzcyArIChMYXN0ID8gJyBhcHAtbWFyZ2luLWJvdHRvbS0wIGFwcC1tYXJnaW4tcmlnaHQtMCAnIDogJycpICsgKERpc3BsYXlMYXlvdXQgPT0gJ2lubGluZScgJiYgRGlzcGxheU1vZGUgPyAoJyBhcHAtaW5saW5lLWJsb2NrICcgKyAoIUxhc3QgPyAnYXBwLW1hcmdpbi1yaWdodC0xMCcgOiAnJykpIDogJyBmb3JtLWdyb3VwIHJvdycpfX1cIj5cclxuXHJcbiAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQte3soRGlzcGxheU1vZGUgJiYgRGlzcGxheUxheW91dCA9PSAnaW5saW5lJyA/ICdub25lIGFwcC1ib2xkIGFwcC1tYXJnaW4tYm90dG9tLTAnIDogTGFiZWxDb2xXaWR0aCkgKyAoRGlzcGxheU1vZGUgPyAnIGFwcC1ib2xkJyA6ICcgbS10LTUnKSB9fVwiPnt7TGFiZWx9fXt7UmVxdWlyZWQgJiYgIURpc3BsYXlNb2RlID8gJyonIDogJyd9fXt7TGFiZWwgPyBcIjpcIiA6IFwiXCJ9fTwvbGFiZWw+XHJcbiAgICA8c3BhbiAqbmdJZj1cIkRpc3BsYXlNb2RlICYmIERpc3BsYXlMYXlvdXQgPT0gJ2lubGluZScgJiYgSW5saW5lU2VwYXJhdG9yICE9ICcnXCI+e3tJbmxpbmVTZXBhcmF0b3J9fTwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQte3tEaXNwbGF5TW9kZSAmJiBEaXNwbGF5TGF5b3V0ID09ICdpbmxpbmUnID8gJ25vbmUgYXBwLWlubGluZS1ibG9jaycgOiBJbnB1dENvbFdpZHRofX1cIj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkRpc3BsYXlNb2RlICYmICFEaXNwbGF5TW9kZVRlbXBsYXRlXCI+e3sgRXZhbHVhdGVkTW9kZWwgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGlzcGxheU1vZGUgJiYgRGlzcGxheU1vZGVUZW1wbGF0ZVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJEaXNwbGF5TW9kZVRlbXBsYXRlLCBjb250ZXh0OiB7ICRpbXBsaWNpdDogRXZhbHVhdGVkTW9kZWwgfVwiPjwvbmctY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgW2hpZGRlbl09XCJEaXNwbGF5TW9kZVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cm9sVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XHJcbjwvZGl2PlxyXG48IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250cm9sVGVtcGxhdGU+XHJcbiAgICA8dmFsLWlucHV0IFtGb2N1c1N1YmplY3RdPVwiRm9jdXNTdWJqZWN0XCIgW1NldFZhbGlkYXRpb25TdWJqZWN0XT1cIlNldFZhbGlkYXRpb25TdWJqZWN0XCIgW0ZpZWxkQXBwZWFyZW5jZV09XCJGaWVsZEFwcGVhcmVuY2VcIlxyXG4gICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgIFttaW5sZW5ndGhdPVwibWlubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgW25vVmFsaWRhdGVdPVwiIVZhbGlkYXRpb25cIlxyXG4gICAgICAgICAgICAgICBbRnJvemVuXT1cIkZyb3plblwiXHJcbiAgICAgICAgICAgICAgIFtzdWJtaXR0ZWRdPVwiRm9ybT8uc3VibWl0dGVkXCJcclxuICAgICAgICAgICAgICAgW1JlYWRvbmx5XT1cIlJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgW2ZvcmNlSW52YWxpZF09XCJGb3JjZWRFcnJvclwiIFxyXG4gICAgICAgICAgICAgICBbRmxvYXRpbmdMYWJlbF09XCJGbG9hdGluZ0xhYmVsXCJcclxuICAgICAgICAgICAgICAgW1R5cGVdPVwiVHlwZVwiXHJcbiAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiTW9kZWxcIlxyXG4gICAgICAgICAgICAgICBbaWRdPVwiR2VuZXJhdGVkTmFtZVwiXHJcbiAgICAgICAgICAgICAgIG5hbWU9XCJ7e0dlbmVyYXRlZE5hbWV9fVwiXHJcbiAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICN2YWxpZGF0aW9uQ29udHJvbD1cIm5nTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAoaW5wdXRDaGFuZ2UpPVwiY2hhbmdlZCgpO1wiXHJcbiAgICAgICAgICAgICAgIChpbnB1dEZvY3VzKT1cImZvY3VzZWQoJGV2ZW50KTtcIlxyXG4gICAgICAgICAgICAgICAoaW5wdXRGaW5hbGl6ZWQpPVwiZmluYWxpemVkKClcIlxyXG4gICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICBbdmFsaWRhdGlvbkZhaWxlZF09XCJGYWlsZWRWYWxpZGF0aW9uTWVzc2FnZVwiXHJcbiAgICAgICAgICAgICAgIFtQYXNzd29yZF09XCJQYXNzd29yZFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJIYXNTdWZmaXhcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdWZmaXhfaW50ZXJuYWw+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LXN1ZmZpeFwiIG1hdFN1ZmZpeCAoY2xpY2spPVwib25TdWZmaXhBY3Rpb24uZW1pdCgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7ICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWZmaXhcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiSGFzUHJlZml4XCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcHJlZml4X2ludGVybmFsPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gbWF0UHJlZml4IChjbGljayk9XCJvblByZWZpeEFjdGlvbi5lbWl0KCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZWZpeFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC92YWwtaW5wdXQ+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { LocalizationService } from "@esfaenza/localizations";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Classe di localizzazione per il componente **FormMultiSelectComponent**
|
|
6
|
-
*/
|
|
7
|
-
export class FormMultiSelectComponentLoc extends LocalizationService {
|
|
8
|
-
/**
|
|
9
|
-
* @ignore
|
|
10
|
-
*/
|
|
11
|
-
constructor(injector) {
|
|
12
|
-
super(injector);
|
|
13
|
-
super.set("en->it", "Select everything", ["Seleziona tutto"]);
|
|
14
|
-
super.set("en->it", "Deselect everything", ["Deseleziona tutto"]);
|
|
15
|
-
super.set("en->it", "Select one or more values...", ["Seleziona uno o più valori..."]);
|
|
16
|
-
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormMultiSelectComponentLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
18
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormMultiSelectComponentLoc }); }
|
|
19
|
-
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormMultiSelectComponentLoc, decorators: [{
|
|
21
|
-
type: Injectable
|
|
22
|
-
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tdWx0aXNlbGVjdC5jb21wb25lbnQubG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1tdWx0aXNlbGVjdC9mb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudC5sb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFOUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsbUJBQW1CO0lBRWhFOztPQUVHO0lBQ0gsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDOUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7UUFDbEUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsOEJBQThCLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQzsrR0FYUSwyQkFBMkI7bUhBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBkaSBsb2NhbGl6emF6aW9uZSBwZXIgaWwgY29tcG9uZW50ZSAqKkZvcm1NdWx0aVNlbGVjdENvbXBvbmVudCoqXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBGb3JtTXVsdGlTZWxlY3RDb21wb25lbnRMb2MgZXh0ZW5kcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICBzdXBlci5zZXQoXCJlbi0+aXRcIiwgXCJTZWxlY3QgZXZlcnl0aGluZ1wiLCBbXCJTZWxlemlvbmEgdHV0dG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIkRlc2VsZWN0IGV2ZXJ5dGhpbmdcIiwgW1wiRGVzZWxlemlvbmEgdHV0dG9cIl0pO1xyXG4gICAgICAgIHN1cGVyLnNldChcImVuLT5pdFwiLCBcIlNlbGVjdCBvbmUgb3IgbW9yZSB2YWx1ZXMuLi5cIiwgW1wiU2VsZXppb25hIHVubyBvIHBpw7kgdmFsb3JpLi4uXCJdKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { ChangeDetectionStrategy, Component, Inject, Input, Optional, Self, ViewEncapsulation } from "@angular/core";
|
|
3
|
-
import { NG_VALIDATORS } from "@angular/forms";
|
|
4
|
-
// Configurazioni
|
|
5
|
-
import { LocalizationService } from "@esfaenza/localizations";
|
|
6
|
-
import { ACO_CUSTOMKEY, FAV_DEBUG_MODE } from '../../tokens';
|
|
7
|
-
// Applicazione
|
|
8
|
-
import { BaseFormControl } from "../base-form-control";
|
|
9
|
-
import { FormMultiSelectComponentLoc } from "./form-multiselect.component.loc";
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@esfaenza/localizations";
|
|
12
|
-
import * as i2 from "@angular/forms";
|
|
13
|
-
import * as i3 from "@esfaenza/access-control";
|
|
14
|
-
import * as i4 from "@angular/common";
|
|
15
|
-
import * as i5 from "angular2-multiselect-dropdown";
|
|
16
|
-
/**
|
|
17
|
-
* Componente che permette di effettuare una selezione multipla fra gli oggetti passati nell'Input **Source**
|
|
18
|
-
*
|
|
19
|
-
* N.B: Al contrario degli altri componenti form-* questo viene tenuto con **changeDetection: ChangeDetectionStrategy.Default** in quanto il componente
|
|
20
|
-
* utilizzato internamente (angular2-multiselect) non è stato assolutamente pensato per essere usato con **ChangeDetectionStrategy.OnPush**
|
|
21
|
-
*/
|
|
22
|
-
export class FormMultiSelectComponent extends BaseFormControl {
|
|
23
|
-
/** @ignore Costruttore */
|
|
24
|
-
constructor(cdr, lc, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY, FAV_DEBUG_MODE) {
|
|
25
|
-
super(cdr, ngControl, _validators, ac, AppContext, ACO_CUSTOMKEY, FAV_DEBUG_MODE);
|
|
26
|
-
this.lc = lc;
|
|
27
|
-
/**
|
|
28
|
-
* Modello temporaneo **NON** compatibile in maniera diretta con il componente **angular2-multiselect** usato internamente
|
|
29
|
-
*
|
|
30
|
-
* Serve da appoggio per effettuare un re-bind qualora la sorgente cambiasse e qualora **RebindModelAfterSource** fosse true
|
|
31
|
-
*/
|
|
32
|
-
this.TmpModel = [];
|
|
33
|
-
/** Indica se la prossima modifica alla Source deve anche effettuare un re-bind del modello. Serve se la **BoundSource** passa da non avere oggetti ad averne */
|
|
34
|
-
this.RebindModelAfterSource = false;
|
|
35
|
-
/** Permette di specificare il testo della Label flottante material-style */
|
|
36
|
-
this.SelectLabel = "";
|
|
37
|
-
/** Permette al componente di gestire come modello non una lista di chiavi, ma una lista di KeyValue */
|
|
38
|
-
this.UseKeyValues = false;
|
|
39
|
-
/** Indica al componente di emettere una lista di chiavi separate da virgola piuttosto che una lista vera e propria di chiavi/KeyValue */
|
|
40
|
-
this.UseCommaSeparatedList = false;
|
|
41
|
-
/** Indica se effettuare l'emit come lista di valori in un Json */
|
|
42
|
-
this.UseJsonList = false;
|
|
43
|
-
/** Impostazioni del componente interno **angular2-multiselect** */
|
|
44
|
-
this.Settings = null;
|
|
45
|
-
// Default dei settings per evitare che siano mai nulli, altrimenti il cazzo di CuppaLab salta in araia che è veramente una bellezza
|
|
46
|
-
this.evaluateSettings(false);
|
|
47
|
-
}
|
|
48
|
-
/** @ignore */
|
|
49
|
-
async ngOnChanges(changes) {
|
|
50
|
-
const newSource = changes["Source"];
|
|
51
|
-
if (newSource) {
|
|
52
|
-
this.tryBindSourceDisplay();
|
|
53
|
-
if (this.RebindModelAfterSource) {
|
|
54
|
-
this.writeValue(this.TmpModel);
|
|
55
|
-
this.RebindModelAfterSource = false;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
const readonly = changes["Readonly"];
|
|
59
|
-
this.evaluateSettings(readonly ? readonly.currentValue ?? false : this.Readonly ?? false);
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Scrive i nuovi settings per il componente
|
|
63
|
-
*
|
|
64
|
-
* @param {boolean} disabled Indica se il componente dev'essere disabilitato o meno
|
|
65
|
-
*/
|
|
66
|
-
evaluateSettings(disabled) {
|
|
67
|
-
this.Settings = {
|
|
68
|
-
selectAllText: this.lc.loc("Select everything"),
|
|
69
|
-
unSelectAllText: this.lc.loc("Deselect everything"),
|
|
70
|
-
text: this.SelectLabel || this.lc.loc("Select one or more values..."),
|
|
71
|
-
enableCheckAll: true,
|
|
72
|
-
disabled: disabled,
|
|
73
|
-
labelKey: "description",
|
|
74
|
-
tagToBody: false
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
/** @ignore */
|
|
78
|
-
onNotNullValueSet() { }
|
|
79
|
-
/**
|
|
80
|
-
* Indica se il comopnente in questione è in grado di gestire ngControl nulli.
|
|
81
|
-
* In questo componente è normale che sia così quindi restituisce semplicemente **true**
|
|
82
|
-
*
|
|
83
|
-
* @returns {boolean} **true** se gestisco ngControl nulli, **false** altrimenti
|
|
84
|
-
*/
|
|
85
|
-
handleNullNgControl() {
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
/** @ignore Override per gestire input in ingresso */
|
|
89
|
-
writeValue(obj) {
|
|
90
|
-
this.TmpModel = obj;
|
|
91
|
-
let toPass = [];
|
|
92
|
-
if (this.UseCommaSeparatedList && obj && (typeof obj === 'string' || obj instanceof String))
|
|
93
|
-
obj = obj.split(',');
|
|
94
|
-
if (this.UseJsonList && obj && (typeof obj === 'string' || obj instanceof String))
|
|
95
|
-
obj = JSON.parse(obj);
|
|
96
|
-
//Qui arrivano solo gli id, o {id: x, description: y} in caso sono in UseKeyValues,
|
|
97
|
-
//devo tirare fuori gli oggetti relativi e piazzarli come lista per il Model
|
|
98
|
-
if (obj && obj.length > 0) {
|
|
99
|
-
obj.forEach(t => {
|
|
100
|
-
let item = this.BoundSource.find(o => o.id == (this.UseKeyValues ? t.id : t));
|
|
101
|
-
if (item)
|
|
102
|
-
toPass.push(JSON.parse(JSON.stringify(item)));
|
|
103
|
-
else if (!this.BoundSource || this.BoundSource.length == 0)
|
|
104
|
-
this.RebindModelAfterSource = true;
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
this.EvaluatedModel = toPass.map(t => t.description).join(', ');
|
|
108
|
-
super.writeValue(toPass);
|
|
109
|
-
}
|
|
110
|
-
/** @ignore Override per gestire input in uscita */
|
|
111
|
-
changed() {
|
|
112
|
-
let toEmit = null;
|
|
113
|
-
if (this.UseJsonList)
|
|
114
|
-
toEmit = JSON.stringify(this.Model.map(m => m.id));
|
|
115
|
-
else if (!this.UseKeyValues && !this.UseCommaSeparatedList)
|
|
116
|
-
toEmit = this.Model.map(m => m.id);
|
|
117
|
-
else if (this.UseKeyValues)
|
|
118
|
-
toEmit = this.Model.map(m => ({ id: m.id, description: m.description }));
|
|
119
|
-
else if (this.UseCommaSeparatedList)
|
|
120
|
-
toEmit = this.Model.map(m => m.id).join(',');
|
|
121
|
-
this.EvaluatedModel = this.Model.map(t => t.itemName).join(', ');
|
|
122
|
-
super.changed(toEmit, false, true);
|
|
123
|
-
super.finalized();
|
|
124
|
-
}
|
|
125
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormMultiSelectComponent, 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 }); }
|
|
126
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormMultiSelectComponent, selector: "form-multiselect", inputs: { SelectLabel: "SelectLabel", UseKeyValues: "UseKeyValues", UseCommaSeparatedList: "UseCommaSeparatedList", UseJsonList: "UseJsonList" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout && (!DisplayMode || (DisplayLayout != 'hidden' && DisplayCondition))\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </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 && (!DisplayMode || (DisplayLayout != 'hidden' && DisplayCondition))\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}{{Label ? \":\" : \"\"}}</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline' && InlineSeparator != ''\">{{InlineSeparator}}</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\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\r\n<ng-template #controlTemplate>\r\n <div [class.ms-placeholder]=\"!Model || Model.length == 0\" (click)=\"focused($event)\">\r\n <angular2-multiselect #validationControl=\"ngModel\" type=\"text\"\r\n [(ngModel)]=\"Model\" name=\"{{GeneratedName}}\"\r\n [settings]=\"Settings\" [data]=\"BoundSource\"\r\n (onSelect)=\"changed();\" \r\n (onDeSelect)=\"changed();\" \r\n (onSelectAll)=\"changed();\"\r\n (onDeSelectAll)=\"changed();\" \r\n (onDeSelectAll)=\"Model = []; changed();\">\r\n </angular2-multiselect>\r\n </div>\r\n</ng-template>", styles: [".c-btn{background:#fff;border:1px solid #ccc;color:#333}.selected-list .c-list .c-token{background:#415269}.selected-list .c-list .c-token .c-label{color:#fff}.selected-list .c-list .c-token .c-remove svg{fill:#fff}.selected-list .c-angle-down svg,.selected-list .c-angle-up svg{fill:#333}.dropdown-list ul li:hover{background:#f5f5f5}.arrow-up,.arrow-down{border-bottom:15px solid #fff}.arrow-2{border-bottom:15px solid #ccc}.list-area{border:1px solid #ccc;background:#fff;box-shadow:0 1px 5px #959595}.select-all,.list-filter{border-bottom:1px solid #ccc}.list-filter .c-search svg{fill:#888}.list-filter .c-clear svg{fill:#888}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{border-color:#415269;background-color:#f2f2f2}.pure-checkbox input[type=checkbox]+label{color:#000}.pure-checkbox input[type=checkbox]+label:before{color:#415269;border:1px solid #415269}.pure-checkbox input[type=checkbox]+label:after{background-color:#415269}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{border-color:#fff}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=checkbox]:checked+label:before{background:#415269}.single-select-mode .pure-checkbox input[type=checkbox]:focus+label:before,.single-select-mode .pure-checkbox input[type=checkbox]:hover+label:before{border-color:#415269;background-color:#f2f2f2}.single-select-mode .pure-checkbox input[type=checkbox]+label{color:#000}.single-select-mode .pure-checkbox input[type=checkbox]+label:before{color:transparent!important;border:0px solid #415269}.single-select-mode .pure-checkbox input[type=checkbox]+label:after{background-color:transparent!important}.single-select-mode .pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.single-select-mode .pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.single-select-mode .pure-checkbox input[type=checkbox]+label:after{border-color:#415269}.single-select-mode .pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.single-select-mode .pure-checkbox input[type=checkbox]:checked+label:before{background:none!important}.selected-item{background:#e9f4ff}.btn-iceblue{background:#415269;border:1px solid #ccc;color:#fff}.cuppa-dropdown{margin-top:2px;min-width:200px}.cuppa-dropdown .c-btn{min-height:34px}.cuppa-dropdown .c-angle-down,.cuppa-dropdown .c-angle-up{margin-top:-2px}.selected-list .c-list{width:auto!important;padding-right:35px!important;margin-top:-2px!important}.selected-list .c-list .c-token{padding:3px 22px 3px 8px!important}.ms-placeholder .cuppa-dropdown .selected-list>div>span{color:#aaa}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.AngularMultiSelect, selector: "angular2-multiselect", inputs: ["data", "settings", "loading"], outputs: ["onSelect", "onDeSelect", "onSelectAll", "onDeSelectAll", "onOpen", "onClose", "onScrollToEnd", "onFilterSelectAll", "onFilterDeSelectAll", "onAddFilterNewItem", "onGroupSelect", "onGroupDeSelect"] }], viewProviders: [{ provide: LocalizationService, useClass: FormMultiSelectComponentLoc }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
|
|
127
|
-
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormMultiSelectComponent, decorators: [{
|
|
129
|
-
type: Component,
|
|
130
|
-
args: [{ selector: "form-multiselect", viewProviders: [{ provide: LocalizationService, useClass: FormMultiSelectComponentLoc }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<!-- Uguale in tutti i componenti --------------------------------------------------------------------------->\r\n<ng-container *ngIf=\"!FormLayout && (!DisplayMode || (DisplayLayout != 'hidden' && DisplayCondition))\">\r\n <ng-container *ngIf=\"DisplayMode && !DisplayModeTemplate\">\r\n <ng-container *ngIf=\"DisplayLayout == 'form'\">{{ EvaluatedModel }}</ng-container>\r\n <div *ngIf=\"DisplayLayout == 'inline'\" class=\"app-inline\">{{ EvaluatedModel }}</div>\r\n </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 && (!DisplayMode || (DisplayLayout != 'hidden' && DisplayCondition))\" class=\"{{FormGroupClass + (Last ? ' app-margin-bottom-0 app-margin-right-0 ' : '') + (DisplayLayout == 'inline' && DisplayMode ? (' app-inline-block ' + (!Last ? 'app-margin-right-10' : '')) : ' form-group row')}}\">\r\n\r\n <label class=\"col-md-{{(DisplayMode && DisplayLayout == 'inline' ? 'none app-bold app-margin-bottom-0' : LabelColWidth) + (DisplayMode ? ' app-bold' : ' m-t-5') }}\">{{Label}}{{Required && !DisplayMode ? '*' : ''}}{{Label ? \":\" : \"\"}}</label>\r\n <span *ngIf=\"DisplayMode && DisplayLayout == 'inline' && InlineSeparator != ''\">{{InlineSeparator}}</span>\r\n <div class=\"col-md-{{DisplayMode && DisplayLayout == 'inline' ? 'none app-inline-block' : InputColWidth}}\">\r\n\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\r\n<ng-template #controlTemplate>\r\n <div [class.ms-placeholder]=\"!Model || Model.length == 0\" (click)=\"focused($event)\">\r\n <angular2-multiselect #validationControl=\"ngModel\" type=\"text\"\r\n [(ngModel)]=\"Model\" name=\"{{GeneratedName}}\"\r\n [settings]=\"Settings\" [data]=\"BoundSource\"\r\n (onSelect)=\"changed();\" \r\n (onDeSelect)=\"changed();\" \r\n (onSelectAll)=\"changed();\"\r\n (onDeSelectAll)=\"changed();\" \r\n (onDeSelectAll)=\"Model = []; changed();\">\r\n </angular2-multiselect>\r\n </div>\r\n</ng-template>", styles: [".c-btn{background:#fff;border:1px solid #ccc;color:#333}.selected-list .c-list .c-token{background:#415269}.selected-list .c-list .c-token .c-label{color:#fff}.selected-list .c-list .c-token .c-remove svg{fill:#fff}.selected-list .c-angle-down svg,.selected-list .c-angle-up svg{fill:#333}.dropdown-list ul li:hover{background:#f5f5f5}.arrow-up,.arrow-down{border-bottom:15px solid #fff}.arrow-2{border-bottom:15px solid #ccc}.list-area{border:1px solid #ccc;background:#fff;box-shadow:0 1px 5px #959595}.select-all,.list-filter{border-bottom:1px solid #ccc}.list-filter .c-search svg{fill:#888}.list-filter .c-clear svg{fill:#888}.pure-checkbox input[type=checkbox]:focus+label:before,.pure-checkbox input[type=checkbox]:hover+label:before{border-color:#415269;background-color:#f2f2f2}.pure-checkbox input[type=checkbox]+label{color:#000}.pure-checkbox input[type=checkbox]+label:before{color:#415269;border:1px solid #415269}.pure-checkbox input[type=checkbox]+label:after{background-color:#415269}.pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.pure-checkbox input[type=checkbox]+label:after{border-color:#fff}.pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.pure-checkbox input[type=checkbox]:checked+label:before{background:#415269}.single-select-mode .pure-checkbox input[type=checkbox]:focus+label:before,.single-select-mode .pure-checkbox input[type=checkbox]:hover+label:before{border-color:#415269;background-color:#f2f2f2}.single-select-mode .pure-checkbox input[type=checkbox]+label{color:#000}.single-select-mode .pure-checkbox input[type=checkbox]+label:before{color:transparent!important;border:0px solid #415269}.single-select-mode .pure-checkbox input[type=checkbox]+label:after{background-color:transparent!important}.single-select-mode .pure-checkbox input[type=checkbox]:disabled+label:before{border-color:#ccc}.single-select-mode .pure-checkbox input[type=checkbox]:disabled:checked+label:before{background-color:#ccc}.single-select-mode .pure-checkbox input[type=checkbox]+label:after{border-color:#415269}.single-select-mode .pure-checkbox input[type=radio]:checked+label:before{background-color:#fff}.single-select-mode .pure-checkbox input[type=checkbox]:checked+label:before{background:none!important}.selected-item{background:#e9f4ff}.btn-iceblue{background:#415269;border:1px solid #ccc;color:#fff}.cuppa-dropdown{margin-top:2px;min-width:200px}.cuppa-dropdown .c-btn{min-height:34px}.cuppa-dropdown .c-angle-down,.cuppa-dropdown .c-angle-up{margin-top:-2px}.selected-list .c-list{width:auto!important;padding-right:35px!important;margin-top:-2px!important}.selected-list .c-list .c-token{padding:3px 22px 3px 8px!important}.ms-placeholder .cuppa-dropdown .selected-list>div>span{color:#aaa}\n"] }]
|
|
131
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.LocalizationService }, { type: i2.NgControl, decorators: [{
|
|
132
|
-
type: Optional
|
|
133
|
-
}, {
|
|
134
|
-
type: Self
|
|
135
|
-
}] }, { type: Array, decorators: [{
|
|
136
|
-
type: Optional
|
|
137
|
-
}, {
|
|
138
|
-
type: Inject,
|
|
139
|
-
args: [NG_VALIDATORS]
|
|
140
|
-
}] }, { type: i3.AccessControlService, decorators: [{
|
|
141
|
-
type: Optional
|
|
142
|
-
}] }, { type: i3.ComponentContext, decorators: [{
|
|
143
|
-
type: Optional
|
|
144
|
-
}] }, { type: undefined, decorators: [{
|
|
145
|
-
type: Optional
|
|
146
|
-
}, {
|
|
147
|
-
type: Inject,
|
|
148
|
-
args: [ACO_CUSTOMKEY]
|
|
149
|
-
}] }, { type: undefined, decorators: [{
|
|
150
|
-
type: Optional
|
|
151
|
-
}, {
|
|
152
|
-
type: Inject,
|
|
153
|
-
args: [FAV_DEBUG_MODE]
|
|
154
|
-
}] }], propDecorators: { SelectLabel: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}], UseKeyValues: [{
|
|
157
|
-
type: Input
|
|
158
|
-
}], UseCommaSeparatedList: [{
|
|
159
|
-
type: Input
|
|
160
|
-
}], UseJsonList: [{
|
|
161
|
-
type: Input
|
|
162
|
-
}] } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3Jtcy1hbmQtdmFsaWRhdGlvbnMvc3JjL2xpYi9mb3Jtcy9mb3JtLW11bHRpc2VsZWN0L2Zvcm0tbXVsdGlzZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvZm9ybXMvZm9ybS1tdWx0aXNlbGVjdC9mb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFRLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxFQUF3QixhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRixpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0QsZUFBZTtBQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7OztBQUcvRTs7Ozs7R0FLRztBQVNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxlQUFlO0lBMkJ6RCwyQkFBMkI7SUFDM0IsWUFBWSxHQUFzQixFQUFTLEVBQXVCLEVBQXNCLFNBQW9CLEVBQXFDLFdBQXVCLEVBQWMsRUFBd0IsRUFBYyxVQUE0QixFQUFxQyxhQUFxQixFQUFzQyxjQUF3QjtRQUM1VyxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxXQUFX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QUFDLGlCQUd6RSxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxPQUFPOzswQkE4QnFCLFFBQVE7OzBCQUFJLElBQUk7OzBCQUEwQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUE0QixRQUFROzswQkFBOEIsUUFBUTs7MEJBQWtDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQTBCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsY0FBYzt5Q0FmN1UsV0FBVztzQkFBbkIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUdHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0LCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgU2VsZiwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMSURBVE9SUywgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vLyBDb25maWd1cmF6aW9uaVxyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xTZXJ2aWNlLCBDb21wb25lbnRDb250ZXh0IH0gZnJvbSAnQGVzZmFlbnphL2FjY2Vzcy1jb250cm9sJztcclxuaW1wb3J0IHsgQUNPX0NVU1RPTUtFWSwgRkFWX0RFQlVHX01PREUgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5cclxuLy8gQXBwbGljYXppb25lXHJcbmltcG9ydCB7IEJhc2VGb3JtQ29udHJvbCB9IGZyb20gXCIuLi9iYXNlLWZvcm0tY29udHJvbFwiO1xyXG5pbXBvcnQgeyBGb3JtTXVsdGlTZWxlY3RDb21wb25lbnRMb2MgfSBmcm9tIFwiLi9mb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudC5sb2NcIjtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudGUgY2hlIHBlcm1ldHRlIGRpIGVmZmV0dHVhcmUgdW5hIHNlbGV6aW9uZSBtdWx0aXBsYSBmcmEgZ2xpIG9nZ2V0dGkgcGFzc2F0aSBuZWxsJ0lucHV0ICoqU291cmNlKipcclxuICogXHJcbiAqIE4uQjogQWwgY29udHJhcmlvIGRlZ2xpIGFsdHJpIGNvbXBvbmVudGkgZm9ybS0qIHF1ZXN0byB2aWVuZSB0ZW51dG8gY29uICoqY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0KiogaW4gcXVhbnRvIGlsIGNvbXBvbmVudGUgXHJcbiAqIHV0aWxpenphdG8gaW50ZXJuYW1lbnRlIChhbmd1bGFyMi1tdWx0aXNlbGVjdCkgbm9uIMOoIHN0YXRvIGFzc29sdXRhbWVudGUgcGVuc2F0byBwZXIgZXNzZXJlIHVzYXRvIGNvbiAqKkNoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCoqXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImZvcm0tbXVsdGlzZWxlY3RcIixcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7IHByb3ZpZGU6IExvY2FsaXphdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBGb3JtTXVsdGlTZWxlY3RDb21wb25lbnRMb2MgfV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogXCJmb3JtLW11bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgICBzdHlsZVVybHM6IFtcImZvcm0tbXVsdGlzZWxlY3QuY29tcG9uZW50LmNzc1wiXSxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHRcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1NdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ29udHJvbCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vZGVsbG8gdGVtcG9yYW5lbyAqKk5PTioqIGNvbXBhdGliaWxlIGluIG1hbmllcmEgZGlyZXR0YSBjb24gaWwgY29tcG9uZW50ZSAqKmFuZ3VsYXIyLW11bHRpc2VsZWN0KiogdXNhdG8gaW50ZXJuYW1lbnRlXHJcbiAgICAgKiBcclxuICAgICAqIFNlcnZlIGRhIGFwcG9nZ2lvIHBlciBlZmZldHR1YXJlIHVuIHJlLWJpbmQgcXVhbG9yYSBsYSBzb3JnZW50ZSBjYW1iaWFzc2UgZSBxdWFsb3JhICoqUmViaW5kTW9kZWxBZnRlclNvdXJjZSoqIGZvc3NlIHRydWVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBUbXBNb2RlbDogc3RyaW5nIHwgc3RyaW5nW10gfCB7aWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZ31bXSA9IFtdO1xyXG5cclxuICAgIC8qKiBJbmRpY2Egc2UgbGEgcHJvc3NpbWEgbW9kaWZpY2EgYWxsYSBTb3VyY2UgZGV2ZSBhbmNoZSBlZmZldHR1YXJlIHVuIHJlLWJpbmQgZGVsIG1vZGVsbG8uIFNlcnZlIHNlIGxhICoqQm91bmRTb3VyY2UqKiBwYXNzYSBkYSBub24gYXZlcmUgb2dnZXR0aSBhZCBhdmVybmUgKi9cclxuICAgIHByaXZhdGUgUmViaW5kTW9kZWxBZnRlclNvdXJjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBQZXJtZXR0ZSBkaSBzcGVjaWZpY2FyZSBpbCB0ZXN0byBkZWxsYSBMYWJlbCBmbG90dGFudGUgbWF0ZXJpYWwtc3R5bGUgKi9cclxuICAgIEBJbnB1dCgpIFNlbGVjdExhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBQZXJtZXR0ZSBhbCBjb21wb25lbnRlIGRpIGdlc3RpcmUgY29tZSBtb2RlbGxvIG5vbiB1bmEgbGlzdGEgZGkgY2hpYXZpLCBtYSB1bmEgbGlzdGEgZGkgS2V5VmFsdWUgKi9cclxuICAgIEBJbnB1dCgpIFVzZUtleVZhbHVlczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBJbmRpY2EgYWwgY29tcG9uZW50ZSBkaSBlbWV0dGVyZSB1bmEgbGlzdGEgZGkgY2hpYXZpIHNlcGFyYXRlIGRhIHZpcmdvbGEgcGl1dHRvc3RvIGNoZSB1bmEgbGlzdGEgdmVyYSBlIHByb3ByaWEgZGkgY2hpYXZpL0tleVZhbHVlICovXHJcbiAgICBASW5wdXQoKSBVc2VDb21tYVNlcGFyYXRlZExpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogSW5kaWNhIHNlIGVmZmV0dHVhcmUgbCdlbWl0IGNvbWUgbGlzdGEgZGkgdmFsb3JpIGluIHVuIEpzb24gKi9cclxuICAgIEBJbnB1dCgpIFVzZUpzb25MaXN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIEltcG9zdGF6aW9uaSBkZWwgY29tcG9uZW50ZSBpbnRlcm5vICoqYW5ndWxhcjItbXVsdGlzZWxlY3QqKiAqL1xyXG4gICAgcHVibGljIFNldHRpbmdzOiB7IHNlbGVjdEFsbFRleHQ6IHN0cmluZywgdW5TZWxlY3RBbGxUZXh0OiBzdHJpbmcsIHRleHQ6IHN0cmluZywgZW5hYmxlQ2hlY2tBbGw6IGJvb2xlYW4sIGRpc2FibGVkOiBib29sZWFuLCBsYWJlbEtleTogc3RyaW5nLCB0YWdUb0JvZHk6IGJvb2xlYW4gfSA9IG51bGw7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgICovXHJcbiAgICBjb25zdHJ1Y3RvcihjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgbGM6IExvY2FsaXphdGlvblNlcnZpY2UsIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIEBJbmplY3QoTkdfVkFMSURBVE9SUykgX3ZhbGlkYXRvcnM6IEFycmF5PGFueT4sIEBPcHRpb25hbCgpIGFjOiBBY2Nlc3NDb250cm9sU2VydmljZSwgQE9wdGlvbmFsKCkgQXBwQ29udGV4dDogQ29tcG9uZW50Q29udGV4dCwgQE9wdGlvbmFsKCkgQEluamVjdChBQ09fQ1VTVE9NS0VZKSBBQ09fQ1VTVE9NS0VZOiBzdHJpbmcsIEBPcHRpb25hbCgpIEBJbmplY3QoRkFWX0RFQlVHX01PREUpIEZBVl9ERUJVR19NT0RFIDogYm9vbGVhbikge1xyXG4gICAgICAgIHN1cGVyKGNkciwgbmdDb250cm9sLCBfdmFsaWRhdG9ycywgYWMsIEFwcENvbnRleHQsIEFDT19DVVNUT01LRVksIEZBVl9ERUJVR19NT0RFKTtcclxuXHJcbiAgICAgICAgLy8gRGVmYXVsdCBkZWkgc2V0dGluZ3MgcGVyIGV2aXRhcmUgY2hlIHNpYW5vIG1haSBudWxsaSwgYWx0cmltZW50aSBpbCBjYXp6byBkaSBDdXBwYUxhYiBzYWx0YSBpbiBhcmFpYSBjaGUgw6ggdmVyYW1lbnRlIHVuYSBiZWxsZXp6YVxyXG4gICAgICAgIHRoaXMuZXZhbHVhdGVTZXR0aW5ncyhmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHB1YmxpYyBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgY29uc3QgbmV3U291cmNlID0gY2hhbmdlc1tcIlNvdXJjZVwiXTtcclxuICAgICAgICBpZiAobmV3U291cmNlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy50cnlCaW5kU291cmNlRGlzcGxheSgpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5SZWJpbmRNb2RlbEFmdGVyU291cmNlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5UbXBNb2RlbCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlJlYmluZE1vZGVsQWZ0ZXJTb3VyY2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcmVhZG9ubHkgPSBjaGFuZ2VzW1wiUmVhZG9ubHlcIl07XHJcbiAgICAgICAgdGhpcy5ldmFsdWF0ZVNldHRpbmdzKHJlYWRvbmx5ID8gcmVhZG9ubHkuY3VycmVudFZhbHVlID8/IGZhbHNlIDogdGhpcy5SZWFkb25seSA/PyBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTY3JpdmUgaSBudW92aSBzZXR0aW5ncyBwZXIgaWwgY29tcG9uZW50ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGRpc2FibGVkIEluZGljYSBzZSBpbCBjb21wb25lbnRlIGRldidlc3NlcmUgZGlzYWJpbGl0YXRvIG8gbWVub1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGV2YWx1YXRlU2V0dGluZ3MoZGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLlNldHRpbmdzID0ge1xyXG4gICAgICAgICAgICBzZWxlY3RBbGxUZXh0OiB0aGlzLmxjLmxvYyhcIlNlbGVjdCBldmVyeXRoaW5nXCIpLFxyXG4gICAgICAgICAgICB1blNlbGVjdEFsbFRleHQ6IHRoaXMubGMubG9jKFwiRGVzZWxlY3QgZXZlcnl0aGluZ1wiKSxcclxuICAgICAgICAgICAgdGV4dDogdGhpcy5TZWxlY3RMYWJlbCB8fCB0aGlzLmxjLmxvYyhcIlNlbGVjdCBvbmUgb3IgbW9yZSB2YWx1ZXMuLi5cIiksXHJcbiAgICAgICAgICAgIGVuYWJsZUNoZWNrQWxsOiB0cnVlLFxyXG4gICAgICAgICAgICBkaXNhYmxlZDogZGlzYWJsZWQsXHJcbiAgICAgICAgICAgIGxhYmVsS2V5OiBcImRlc2NyaXB0aW9uXCIsXHJcbiAgICAgICAgICAgIHRhZ1RvQm9keTogZmFsc2VcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBvbk5vdE51bGxWYWx1ZVNldCgpOiB2b2lkIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhIHNlIGlsIGNvbW9wbmVudGUgaW4gcXVlc3Rpb25lIMOoIGluIGdyYWRvIGRpIGdlc3RpcmUgbmdDb250cm9sIG51bGxpLiBcclxuICAgICAqIEluIHF1ZXN0byBjb21wb25lbnRlIMOoIG5vcm1hbGUgY2hlIHNpYSBjb3PDrCBxdWluZGkgcmVzdGl0dWlzY2Ugc2VtcGxpY2VtZW50ZSAqKnRydWUqKlxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gKip0cnVlKiogc2UgZ2VzdGlzY28gbmdDb250cm9sIG51bGxpLCAqKmZhbHNlKiogYWx0cmltZW50aVxyXG4gICAgICovXHJcbiAgICBoYW5kbGVOdWxsTmdDb250cm9sKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIE92ZXJyaWRlIHBlciBnZXN0aXJlIGlucHV0IGluIGluZ3Jlc3NvICovXHJcbiAgICB3cml0ZVZhbHVlKG9iajogYW55W10gfCBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLlRtcE1vZGVsID0gb2JqO1xyXG4gICAgICAgIGxldCB0b1Bhc3M6IHsgaWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZyB9W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5Vc2VDb21tYVNlcGFyYXRlZExpc3QgJiYgb2JqICYmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJyB8fCBvYmogaW5zdGFuY2VvZiBTdHJpbmcpKVxyXG4gICAgICAgICAgICBvYmogPSAoPHN0cmluZz5vYmopLnNwbGl0KCcsJyk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuVXNlSnNvbkxpc3QgJiYgb2JqICYmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJyB8fCBvYmogaW5zdGFuY2VvZiBTdHJpbmcpKVxyXG4gICAgICAgICAgICBvYmogPSBKU09OLnBhcnNlKDxzdHJpbmc+b2JqKTtcclxuXHJcbiAgICAgICAgLy9RdWkgYXJyaXZhbm8gc29sbyBnbGkgaWQsIG8ge2lkOiB4LCBkZXNjcmlwdGlvbjogeX0gaW4gY2FzbyBzb25vIGluIFVzZUtleVZhbHVlcywgXHJcbiAgICAgICAgLy9kZXZvIHRpcmFyZSBmdW9yaSBnbGkgb2dnZXR0aSByZWxhdGl2aSBlIHBpYXp6YXJsaSBjb21lIGxpc3RhIHBlciBpbCBNb2RlbFxyXG4gICAgICAgIGlmIChvYmogJiYgb2JqLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgKDxhbnlbXT5vYmopLmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaXRlbSA9IHRoaXMuQm91bmRTb3VyY2UuZmluZChvID0+IG8uaWQgPT0gKHRoaXMuVXNlS2V5VmFsdWVzID8gdC5pZCA6IHQpKTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtKVxyXG4gICAgICAgICAgICAgICAgICAgIHRvUGFzcy5wdXNoKEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbSkpKTtcclxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCF0aGlzLkJvdW5kU291cmNlIHx8IHRoaXMuQm91bmRTb3VyY2UubGVuZ3RoID09IDApXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5SZWJpbmRNb2RlbEFmdGVyU291cmNlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkV2YWx1YXRlZE1vZGVsID0gdG9QYXNzLm1hcCh0ID0+IHQuZGVzY3JpcHRpb24pLmpvaW4oJywgJyk7XHJcbiAgICAgICAgc3VwZXIud3JpdGVWYWx1ZSh0b1Bhc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIE92ZXJyaWRlIHBlciBnZXN0aXJlIGlucHV0IGluIHVzY2l0YSAqL1xyXG4gICAgY2hhbmdlZCgpIHtcclxuICAgICAgICBsZXQgdG9FbWl0ID0gbnVsbDtcclxuICAgICAgICBpZiAodGhpcy5Vc2VKc29uTGlzdClcclxuICAgICAgICAgICAgdG9FbWl0ID0gSlNPTi5zdHJpbmdpZnkoKDxhbnlbXT50aGlzLk1vZGVsKS5tYXAobSA9PiBtLmlkKSk7XHJcbiAgICAgICAgZWxzZSBpZiAoIXRoaXMuVXNlS2V5VmFsdWVzICYmICF0aGlzLlVzZUNvbW1hU2VwYXJhdGVkTGlzdClcclxuICAgICAgICAgICAgdG9FbWl0ID0gKDxhbnlbXT50aGlzLk1vZGVsKS5tYXAobSA9PiBtLmlkKTtcclxuICAgICAgICBlbHNlIGlmICh0aGlzLlVzZUtleVZhbHVlcylcclxuICAgICAgICAgICAgdG9FbWl0ID0gKDxhbnlbXT50aGlzLk1vZGVsKS5tYXAobSA9PiAoeyBpZDogbS5pZCwgZGVzY3JpcHRpb246IG0uZGVzY3JpcHRpb24gfSkpO1xyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuVXNlQ29tbWFTZXBhcmF0ZWRMaXN0KVxyXG4gICAgICAgICAgICB0b0VtaXQgPSAoPGFueVtdPnRoaXMuTW9kZWwpLm1hcChtID0+IG0uaWQpLmpvaW4oJywnKTtcclxuXHJcbiAgICAgICAgdGhpcy5FdmFsdWF0ZWRNb2RlbCA9IHRoaXMuTW9kZWwubWFwKHQgPT4gdC5pdGVtTmFtZSkuam9pbignLCAnKTtcclxuICAgICAgICBzdXBlci5jaGFuZ2VkKHRvRW1pdCwgZmFsc2UsIHRydWUpO1xyXG4gICAgICAgIHN1cGVyLmZpbmFsaXplZCgpO1xyXG4gICAgfVxyXG59IiwiPCEtLSBVZ3VhbGUgaW4gdHV0dGkgaSBjb21wb25lbnRpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFGb3JtTGF5b3V0ICYmICghRGlzcGxheU1vZGUgfHwgKERpc3BsYXlMYXlvdXQgIT0gJ2hpZGRlbicgJiYgRGlzcGxheUNvbmRpdGlvbikpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGlzcGxheU1vZGUgJiYgIURpc3BsYXlNb2RlVGVtcGxhdGVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGlzcGxheUxheW91dCA9PSAnZm9ybSdcIj57eyBFdmFsdWF0ZWRNb2RlbCB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJEaXNwbGF5TGF5b3V0ID09ICdpbmxpbmUnXCIgY2xhc3M9XCJhcHAtaW5saW5lXCI+e3sgRXZhbHVhdGVkTW9kZWwgfX08L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkRpc3BsYXlNb2RlICYmIERpc3BsYXlNb2RlVGVtcGxhdGVcIj48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRGlzcGxheU1vZGVUZW1wbGF0ZSwgY29udGV4dDogeyAkaW1wbGljaXQ6IEV2YWx1YXRlZE1vZGVsIH1cIj48L25nLWNvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgW2hpZGRlbl09XCJEaXNwbGF5TW9kZVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cm9sVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj48L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48ZGl2ICpuZ0lmPVwiRm9ybUxheW91dCAmJiAoIURpc3BsYXlNb2RlIHx8IChEaXNwbGF5TGF5b3V0ICE9ICdoaWRkZW4nICYmIERpc3BsYXlDb25kaXRpb24pKVwiIGNsYXNzPVwie3tGb3JtR3JvdXBDbGFzcyArIChMYXN0ID8gJyBhcHAtbWFyZ2luLWJvdHRvbS0wIGFwcC1tYXJnaW4tcmlnaHQtMCAnIDogJycpICsgKERpc3BsYXlMYXlvdXQgPT0gJ2lubGluZScgJiYgRGlzcGxheU1vZGUgPyAoJyBhcHAtaW5saW5lLWJsb2NrICcgKyAoIUxhc3QgPyAnYXBwLW1hcmdpbi1yaWdodC0xMCcgOiAnJykpIDogJyBmb3JtLWdyb3VwIHJvdycpfX1cIj5cclxuXHJcbiAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQte3soRGlzcGxheU1vZGUgJiYgRGlzcGxheUxheW91dCA9PSAnaW5saW5lJyA/ICdub25lIGFwcC1ib2xkIGFwcC1tYXJnaW4tYm90dG9tLTAnIDogTGFiZWxDb2xXaWR0aCkgKyAoRGlzcGxheU1vZGUgPyAnIGFwcC1ib2xkJyA6ICcgbS10LTUnKSB9fVwiPnt7TGFiZWx9fXt7UmVxdWlyZWQgJiYgIURpc3BsYXlNb2RlID8gJyonIDogJyd9fXt7TGFiZWwgPyBcIjpcIiA6IFwiXCJ9fTwvbGFiZWw+XHJcbiAgICA8c3BhbiAqbmdJZj1cIkRpc3BsYXlNb2RlICYmIERpc3BsYXlMYXlvdXQgPT0gJ2lubGluZScgJiYgSW5saW5lU2VwYXJhdG9yICE9ICcnXCI+e3tJbmxpbmVTZXBhcmF0b3J9fTwvc3Bhbj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQte3tEaXNwbGF5TW9kZSAmJiBEaXNwbGF5TGF5b3V0ID09ICdpbmxpbmUnID8gJ25vbmUgYXBwLWlubGluZS1ibG9jaycgOiBJbnB1dENvbFdpZHRofX1cIj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkRpc3BsYXlNb2RlICYmICFEaXNwbGF5TW9kZVRlbXBsYXRlXCI+e3sgRXZhbHVhdGVkTW9kZWwgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiRGlzcGxheU1vZGUgJiYgRGlzcGxheU1vZGVUZW1wbGF0ZVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJEaXNwbGF5TW9kZVRlbXBsYXRlLCBjb250ZXh0OiB7ICRpbXBsaWNpdDogRXZhbHVhdGVkTW9kZWwgfVwiPjwvbmctY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgW2hpZGRlbl09XCJEaXNwbGF5TW9kZVwiPjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250cm9sVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNsZWFyZml4XCI+PC9kaXY+XHJcbjwvZGl2PlxyXG48IS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250cm9sVGVtcGxhdGU+XHJcbiAgICA8ZGl2IFtjbGFzcy5tcy1wbGFjZWhvbGRlcl09XCIhTW9kZWwgfHwgTW9kZWwubGVuZ3RoID09IDBcIiAoY2xpY2spPVwiZm9jdXNlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPGFuZ3VsYXIyLW11bHRpc2VsZWN0ICN2YWxpZGF0aW9uQ29udHJvbD1cIm5nTW9kZWxcIiB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiTW9kZWxcIiBuYW1lPVwie3tHZW5lcmF0ZWROYW1lfX1cIlxyXG4gICAgICAgICAgICBbc2V0dGluZ3NdPVwiU2V0dGluZ3NcIiBbZGF0YV09XCJCb3VuZFNvdXJjZVwiXHJcbiAgICAgICAgICAgIChvblNlbGVjdCk9XCJjaGFuZ2VkKCk7XCIgXHJcbiAgICAgICAgICAgIChvbkRlU2VsZWN0KT1cImNoYW5nZWQoKTtcIiBcclxuICAgICAgICAgICAgKG9uU2VsZWN0QWxsKT1cImNoYW5nZWQoKTtcIlxyXG4gICAgICAgICAgICAob25EZVNlbGVjdEFsbCk9XCJjaGFuZ2VkKCk7XCIgXHJcbiAgICAgICAgICAgIChvbkRlU2VsZWN0QWxsKT1cIk1vZGVsID0gW107IGNoYW5nZWQoKTtcIj5cclxuICAgICAgICA8L2FuZ3VsYXIyLW11bHRpc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { LocalizationService } from "@esfaenza/localizations";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Classe di localizzazione per il componente **FormSelectComponent**
|
|
6
|
-
*/
|
|
7
|
-
export class FormSelectComponentLoc extends LocalizationService {
|
|
8
|
-
/**
|
|
9
|
-
* @ignore
|
|
10
|
-
*/
|
|
11
|
-
constructor(injector) {
|
|
12
|
-
super(injector);
|
|
13
|
-
super.set("it->en", "Seleziona", ["Select"]);
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormSelectComponentLoc, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
16
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormSelectComponentLoc }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormSelectComponentLoc, decorators: [{
|
|
19
|
-
type: Injectable
|
|
20
|
-
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWxlY3QuY29tcG9uZW50LmxvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm1zLWFuZC12YWxpZGF0aW9ucy9zcmMvbGliL2Zvcm1zL2Zvcm0tc2VsZWN0L2Zvcm0tc2VsZWN0LmNvbXBvbmVudC5sb2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFOUQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsbUJBQW1CO0lBRTNEOztPQUVHO0lBQ0gsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNqRCxDQUFDOytHQVRRLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBlc2ZhZW56YS9sb2NhbGl6YXRpb25zXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGRpIGxvY2FsaXp6YXppb25lIHBlciBpbCBjb21wb25lbnRlICoqRm9ybVNlbGVjdENvbXBvbmVudCoqXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBGb3JtU2VsZWN0Q29tcG9uZW50TG9jIGV4dGVuZHMgTG9jYWxpemF0aW9uU2VydmljZSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaWdub3JlXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuXHJcbiAgICAgICAgc3VwZXIuc2V0KFwiaXQtPmVuXCIsIFwiU2VsZXppb25hXCIsIFtcIlNlbGVjdFwiXSk7XHJcbiAgICB9XHJcbn0iXX0=
|