@esfaenza/forms-and-validations 19.2.84 → 19.2.86

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.
@@ -470,19 +470,23 @@ class EsFormInputComponent extends BaseFormControl {
470
470
  super(...arguments);
471
471
  this.Password = false;
472
472
  this.passShown = signal(false);
473
- this.Type = signal("text");
473
+ this.Type = "text";
474
474
  }
475
475
  ngOnInit() {
476
476
  super.ngOnInit();
477
477
  if (this.Password)
478
- this.Type.set("password");
478
+ this.setType("password");
479
+ }
480
+ setType(type) {
481
+ this.Type = type;
482
+ this.cdr.markForCheck();
479
483
  }
480
484
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: EsFormInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
481
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", type: EsFormInputComponent, isStandalone: true, selector: "form-input", inputs: { minlength: ["minlength", "minlength", numberAttribute], maxlength: ["maxlength", "maxlength", numberAttribute], pattern: "pattern", Password: "Password" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EsFormInputComponent), multi: true }], usesInheritance: true, ngImport: i0, template: "<input-skeleton [Control]=\"controlTemplate\" [For]=\"this\"></input-skeleton>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <p-inputgroup>\r\n <p-inputgroup-addon *ngIf=\"!!prefix\">\r\n <span (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </span>\r\n </p-inputgroup-addon>\r\n\r\n <p-floatlabel variant=\"on\">\r\n <input \r\n pInputText \r\n pSize=\"small\"\r\n #innerInput=\"ngModel\"\r\n #innerElement\r\n autocomplete=\"off\"\r\n style=\"width: 100%;\"\r\n [attr.name]=\"InternalName\"\r\n [attr.id]=\"InternalName\"\r\n [attr.type]=\"Type\"\r\n [disabled]=\"disabled\" \r\n [required]=\"required\"\r\n [readOnly]=\"readonly\"\r\n [minlength]=\"minlength\" \r\n [maxlength]=\"maxlength\" \r\n [pattern]=\"pattern\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"changed($event)\" \r\n (click)=\"focused($event);\"\r\n (blur)=\"onTouched(); finalized()\"\r\n />\r\n \r\n <label>{{Placeholder}}</label>\r\n </p-floatlabel>\r\n\r\n <p-inputgroup-addon *ngIf=\"Password\">\r\n <a *ngIf=\"passShown()\" class=\"far fa-eye-slash app-fs-16 app-pointer\" (click)=\"Type.set('password'); passShown.set(false); $event.preventDefault()\"></a>\r\n <a *ngIf=\"!passShown()\" class=\"far fa-eye app-fs-16 app-pointer\" (click)=\"Type.set('text'); passShown.set(true); $event.preventDefault()\"></a>\r\n </p-inputgroup-addon>\r\n\r\n <p-inputgroup-addon *ngIf=\"!!suffix\">\r\n <span (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </span>\r\n </p-inputgroup-addon>\r\n </p-inputgroup>\r\n\r\n</ng-template>\r\n\r\n<p-popover appendTo=\"body\" styleClass='validation-tooltip' #tooltip>{{TooltipText}}</p-popover>", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n"], dependencies: [{ kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i1.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i3$1.FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i4.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i6.InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["style", "styleClass"] }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "component", type: i7.InputGroupAddon, selector: "p-inputgroup-addon, p-inputGroupAddon", inputs: ["style", "styleClass"] }, { kind: "component", type: InputSkeletonComponent, selector: "input-skeleton", inputs: ["For", "Control"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
485
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.15", type: EsFormInputComponent, isStandalone: true, selector: "form-input", inputs: { minlength: ["minlength", "minlength", numberAttribute], maxlength: ["maxlength", "maxlength", numberAttribute], pattern: "pattern", Password: "Password", Type: "Type" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EsFormInputComponent), multi: true }], usesInheritance: true, ngImport: i0, template: "<input-skeleton [Control]=\"controlTemplate\" [For]=\"this\"></input-skeleton>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <p-inputgroup>\r\n <p-inputgroup-addon *ngIf=\"!!prefix\">\r\n <span (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </span>\r\n </p-inputgroup-addon>\r\n\r\n <p-floatlabel variant=\"on\">\r\n <input \r\n pInputText \r\n pSize=\"small\"\r\n #innerInput=\"ngModel\"\r\n #innerElement\r\n autocomplete=\"off\"\r\n style=\"width: 100%;\"\r\n [attr.name]=\"InternalName\"\r\n [attr.id]=\"InternalName\"\r\n [attr.type]=\"Type\"\r\n [disabled]=\"disabled\" \r\n [required]=\"required\"\r\n [readOnly]=\"readonly\"\r\n [minlength]=\"minlength\" \r\n [maxlength]=\"maxlength\" \r\n [pattern]=\"pattern\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"changed($event)\" \r\n (click)=\"focused($event);\"\r\n (blur)=\"onTouched(); finalized()\"\r\n />\r\n \r\n <label>{{Placeholder}}</label>\r\n </p-floatlabel>\r\n\r\n <p-inputgroup-addon *ngIf=\"Password\">\r\n <a *ngIf=\"passShown()\" class=\"far fa-eye-slash app-fs-16 app-pointer\" (click)=\"setType('password'); passShown.set(false); $event.preventDefault()\"></a>\r\n <a *ngIf=\"!passShown()\" class=\"far fa-eye app-fs-16 app-pointer\" (click)=\"setType('text'); passShown.set(true); $event.preventDefault()\"></a>\r\n </p-inputgroup-addon>\r\n\r\n <p-inputgroup-addon *ngIf=\"!!suffix\">\r\n <span (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </span>\r\n </p-inputgroup-addon>\r\n </p-inputgroup>\r\n\r\n</ng-template>\r\n\r\n<p-popover appendTo=\"body\" styleClass='validation-tooltip' #tooltip>{{TooltipText}}</p-popover>", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n"], dependencies: [{ kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i1.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "component", type: i3$1.FloatLabel, selector: "p-floatlabel, p-floatLabel, p-float-label", inputs: ["variant"] }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i4.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "component", type: i6.InputGroup, selector: "p-inputgroup, p-inputGroup, p-input-group", inputs: ["style", "styleClass"] }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "component", type: i7.InputGroupAddon, selector: "p-inputgroup-addon, p-inputGroupAddon", inputs: ["style", "styleClass"] }, { kind: "component", type: InputSkeletonComponent, selector: "input-skeleton", inputs: ["For", "Control"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
482
486
  }
483
487
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: EsFormInputComponent, decorators: [{
484
488
  type: Component,
485
- args: [{ selector: "form-input", encapsulation: ViewEncapsulation.None, imports: [InputTextModule, FormsModule, CommonModule, FloatLabelModule, PopoverModule, InputGroupModule, InputGroupAddonModule, InputSkeletonComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EsFormInputComponent), multi: true }], standalone: true, template: "<input-skeleton [Control]=\"controlTemplate\" [For]=\"this\"></input-skeleton>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <p-inputgroup>\r\n <p-inputgroup-addon *ngIf=\"!!prefix\">\r\n <span (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </span>\r\n </p-inputgroup-addon>\r\n\r\n <p-floatlabel variant=\"on\">\r\n <input \r\n pInputText \r\n pSize=\"small\"\r\n #innerInput=\"ngModel\"\r\n #innerElement\r\n autocomplete=\"off\"\r\n style=\"width: 100%;\"\r\n [attr.name]=\"InternalName\"\r\n [attr.id]=\"InternalName\"\r\n [attr.type]=\"Type\"\r\n [disabled]=\"disabled\" \r\n [required]=\"required\"\r\n [readOnly]=\"readonly\"\r\n [minlength]=\"minlength\" \r\n [maxlength]=\"maxlength\" \r\n [pattern]=\"pattern\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"changed($event)\" \r\n (click)=\"focused($event);\"\r\n (blur)=\"onTouched(); finalized()\"\r\n />\r\n \r\n <label>{{Placeholder}}</label>\r\n </p-floatlabel>\r\n\r\n <p-inputgroup-addon *ngIf=\"Password\">\r\n <a *ngIf=\"passShown()\" class=\"far fa-eye-slash app-fs-16 app-pointer\" (click)=\"Type.set('password'); passShown.set(false); $event.preventDefault()\"></a>\r\n <a *ngIf=\"!passShown()\" class=\"far fa-eye app-fs-16 app-pointer\" (click)=\"Type.set('text'); passShown.set(true); $event.preventDefault()\"></a>\r\n </p-inputgroup-addon>\r\n\r\n <p-inputgroup-addon *ngIf=\"!!suffix\">\r\n <span (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </span>\r\n </p-inputgroup-addon>\r\n </p-inputgroup>\r\n\r\n</ng-template>\r\n\r\n<p-popover appendTo=\"body\" styleClass='validation-tooltip' #tooltip>{{TooltipText}}</p-popover>", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n"] }]
489
+ args: [{ selector: "form-input", encapsulation: ViewEncapsulation.None, imports: [InputTextModule, FormsModule, CommonModule, FloatLabelModule, PopoverModule, InputGroupModule, InputGroupAddonModule, InputSkeletonComponent], changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EsFormInputComponent), multi: true }], standalone: true, template: "<input-skeleton [Control]=\"controlTemplate\" [For]=\"this\"></input-skeleton>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <p-inputgroup>\r\n <p-inputgroup-addon *ngIf=\"!!prefix\">\r\n <span (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </span>\r\n </p-inputgroup-addon>\r\n\r\n <p-floatlabel variant=\"on\">\r\n <input \r\n pInputText \r\n pSize=\"small\"\r\n #innerInput=\"ngModel\"\r\n #innerElement\r\n autocomplete=\"off\"\r\n style=\"width: 100%;\"\r\n [attr.name]=\"InternalName\"\r\n [attr.id]=\"InternalName\"\r\n [attr.type]=\"Type\"\r\n [disabled]=\"disabled\" \r\n [required]=\"required\"\r\n [readOnly]=\"readonly\"\r\n [minlength]=\"minlength\" \r\n [maxlength]=\"maxlength\" \r\n [pattern]=\"pattern\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"changed($event)\" \r\n (click)=\"focused($event);\"\r\n (blur)=\"onTouched(); finalized()\"\r\n />\r\n \r\n <label>{{Placeholder}}</label>\r\n </p-floatlabel>\r\n\r\n <p-inputgroup-addon *ngIf=\"Password\">\r\n <a *ngIf=\"passShown()\" class=\"far fa-eye-slash app-fs-16 app-pointer\" (click)=\"setType('password'); passShown.set(false); $event.preventDefault()\"></a>\r\n <a *ngIf=\"!passShown()\" class=\"far fa-eye app-fs-16 app-pointer\" (click)=\"setType('text'); passShown.set(true); $event.preventDefault()\"></a>\r\n </p-inputgroup-addon>\r\n\r\n <p-inputgroup-addon *ngIf=\"!!suffix\">\r\n <span (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </span>\r\n </p-inputgroup-addon>\r\n </p-inputgroup>\r\n\r\n</ng-template>\r\n\r\n<p-popover appendTo=\"body\" styleClass='validation-tooltip' #tooltip>{{TooltipText}}</p-popover>", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n"] }]
486
490
  }], propDecorators: { minlength: [{
487
491
  type: Input,
488
492
  args: [{ transform: numberAttribute }]
@@ -493,6 +497,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
493
497
  type: Input
494
498
  }], Password: [{
495
499
  type: Input
500
+ }], Type: [{
501
+ type: Input
496
502
  }] } });
497
503
 
498
504
  // Angular
@@ -1053,14 +1059,14 @@ class EsFormFileComponent extends BaseFormControl {
1053
1059
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: EsFormFileComponent, isStandalone: true, selector: "form-file", inputs: { Multiple: "Multiple", AllowDownload: "AllowDownload", MaxSize: "MaxSize", FancyMode: "FancyMode", ReadFile: "ReadFile" }, providers: [
1054
1060
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EsFormFileComponent), multi: true },
1055
1061
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => EsFormFileComponent), multi: true }
1056
- ], usesInheritance: true, ngImport: i0, template: "<input-skeleton *ngIf=\"FancyMode === false\" [Control]=\"controlTemplate\" [For]=\"this\"></input-skeleton>\r\n\r\n<ng-template #controlTemplate>\r\n <div class=\"input-group file-upload\" style=\"padding: 0 !important;\">\r\n <input type=\"file\" (change)=\"fileChange()\" id=\"{{InternalName}}\" #innerElement style=\"height: 0; width:0; padding:0; margin:0; position: absolute; opacity:0\" [multiple]=\"Multiple ? true : null\" />\r\n <input type=\"text\" \r\n (click)=\"openFileDialog();\"\r\n [class.frm-padding-left-22]=\"AllowDownload && value.filename && value.fileb64\" \r\n class=\"form-control checking-field\" \r\n style=\"border-top-left-radius: 5px; border-bottom-left-radius: 5px; height: 46px;\"\r\n [style.padding-left.px]=\"AllowDownload && value.filename && value.fileb64 ? 40 : 12\"\r\n placeholder=\"{{Placeholder || ('Seleziona un File' | localize : lc)}}...\" \r\n [(ngModel)]=\"value.filename\" name=\"dsfile_{{InternalName}}\" \r\n #innerInput=\"ngModel\" />\r\n \r\n <a class=\"fa fa-download app-pointer app-input-icon\" style=\"padding-left: 10px; padding-top: 5px; color: #666; z-index: 9999;\" *ngIf=\"AllowDownload && value.filename && value.fileb64\" (click)=\"onDownloadFile()\"></a>\r\n <i class=\"fa fa-times delete-file\" style=\"margin-right: 15px; margin-top: 7px; color: #666;\" (click)=\"fileChange(true)\" *ngIf=\"value.filename\"></i>\r\n \r\n <span class=\"input-group-btn\">\r\n <button class=\"btn btn-primary btn-file-upload\" style=\"height: 46px;\r\n border-top-right-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n background: var(--p-surface-50) !important;\r\n border: 1px solid var(--p-surface-300) !important;\r\n color: #777;\" type=\"button\"><i class=\"fa fa-upload\" (click)=\"openFileDialog();\"></i></button>\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<!--Fancy Mode-->\r\n<div *ngIf=\"FancyMode === true\" (drop)=\"onFileDropped($event)\" (dragover)=\"onFileDragOver($event)\">\r\n <!--Drop-->\r\n <label for=\"{{InternalName}}\" class=\"drop-container\">\r\n <span class=\"drop-title\">{{Label}}</span>\r\n <div class=\"file-name-container\">{{value.filename || 'Nessun file selezionato'}}</div>\r\n <!--Hidden Forms-->\r\n <input hidden type=\"file\" (change)=\"fileChange()\" id=\"{{InternalName}}\" #innerElement class=\"file-upload-btn app-pointer\" [multiple]=\"Multiple ? true : null\" />\r\n <input hidden type=\"text\" [class.frm-padding-left-22]=\"AllowDownload && value.filename && value.fileb64\" class=\"form-control checking-field\" \r\n placeholder=\"{{Placeholder || ('Seleziona un File' | localize : lc)}}...\" [(ngModel)]=\"value.filename\" name=\"dsfile_{{InternalName}}\" #innerInput=\"ngModel\" />\r\n <!--Clean-->\r\n <i class=\"fa fa-times file-delete-btn\" (click)=\"fileChange(true); $event.stopPropagation(); false;\" *ngIf=\"value.filename\"></i>\r\n <!--Download-->\r\n <div *ngIf=\"AllowDownload && value.filename && value.fileb64\" class=\"app-pointer file-download-btn\" (click)=\"onDownloadFile(); $event.stopPropagation(); false;\">\r\n <span class=\"file-download-btn-text\">Download <i class=\"fa fa-download\"></i></span>\r\n </div>\r\n </label>\r\n</div>\r\n\r\n<p-popover appendTo=\"body\" styleClass='validation-tooltip' #tooltip>{{TooltipText}}</p-popover>", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n", ".frm-padding-left-22{padding-left:22px}.drop-container{position:relative;display:flex;gap:10px;flex-direction:column;justify-content:center;align-items:center;height:200px;padding:20px;border-radius:10px;border:2px dashed #0d45a5;color:#444;cursor:pointer;transition:background .2s ease-in-out,border .2s ease-in-out}.drop-container:hover{background:#eee;border-color:#111}.drop-container:hover .drop-title{color:#222}.drop-title{color:#444;font-size:20px;font-weight:700;text-align:center;transition:color .2s ease-in-out}input[type=file]{width:350px;max-width:100%;color:#444;padding:5px;background:#fff;border-radius:10px;border:1px solid #555}input[type=file]::file-selector-button{margin-right:20px;border:none;background:#084cdf;padding:10px 20px;border-radius:10px;color:#fff;cursor:pointer;transition:background .2s ease-in-out}input[type=file]::file-selector-button:hover{background:#0d45a5}.file-download-btn{border-radius:5px;padding:5px 10px;background-color:#0d45a5}.file-download-btn:hover{background-color:#084cdf}.file-download-btn-text{color:#fff}.file-delete-btn{color:red;position:absolute;right:10px;top:10px}.file-name-container{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow-y:clip;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: TextareaModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.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: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i4.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "component", type: InputSkeletonComponent, selector: "input-skeleton", inputs: ["For", "Control"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i4$1.LocalizePipe, name: "localize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1062
+ ], usesInheritance: true, ngImport: i0, template: "<input-skeleton *ngIf=\"FancyMode === false\" [Control]=\"controlTemplate\" [For]=\"this\"></input-skeleton>\r\n\r\n<ng-template #controlTemplate>\r\n <div class=\"input-group file-upload\" style=\"padding: 0 !important;\">\r\n <input type=\"file\" (change)=\"fileChange()\" id=\"{{InternalName}}\" #innerElement class=\"file-upload-btn app-pointer\" style=\"height: 46px;\" [multiple]=\"Multiple ? true : null\" />\r\n <input type=\"text\" \r\n [class.frm-padding-left-22]=\"AllowDownload && value.filename && value.fileb64\" \r\n class=\"form-control checking-field\" \r\n style=\"border-top-left-radius: 5px; border-bottom-left-radius: 5px; height: 46px;\"\r\n [style.padding-left.px]=\"AllowDownload && value.filename && value.fileb64 ? 40 : 12\"\r\n placeholder=\"{{Placeholder || ('Seleziona un File' | localize : lc)}}...\" \r\n [(ngModel)]=\"value.filename\" name=\"dsfile_{{InternalName}}\" \r\n #innerInput=\"ngModel\" />\r\n \r\n <a class=\"fa fa-download app-pointer app-input-icon\" style=\"padding-left: 10px; padding-top: 5px; color: #666; z-index: 9999;\" *ngIf=\"AllowDownload && value.filename && value.fileb64\" (click)=\"onDownloadFile()\"></a>\r\n <i class=\"fa fa-times delete-file\" style=\"margin-right: 15px; margin-top: 7px; color: #666;\" (click)=\"fileChange(true)\" *ngIf=\"value.filename\"></i>\r\n \r\n <span class=\"input-group-btn\">\r\n <button class=\"btn btn-primary btn-file-upload\" style=\"height: 46px;\r\n border-top-right-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n background: var(--p-surface-50) !important;\r\n border: 1px solid var(--p-surface-300) !important;\r\n color: #777;\" type=\"button\"><i class=\"fa fa-upload\"></i></button>\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<!--Fancy Mode-->\r\n<div *ngIf=\"FancyMode === true\" (drop)=\"onFileDropped($event)\" (dragover)=\"onFileDragOver($event)\">\r\n <!--Drop-->\r\n <label for=\"{{InternalName}}\" class=\"drop-container\">\r\n <span class=\"drop-title\">{{Label}}</span>\r\n <div class=\"file-name-container\">{{value.filename || 'Nessun file selezionato'}}</div>\r\n <!--Hidden Forms-->\r\n <input hidden type=\"file\" (change)=\"fileChange()\" id=\"{{InternalName}}\" #innerElement class=\"file-upload-btn app-pointer\" [multiple]=\"Multiple ? true : null\" />\r\n <input hidden type=\"text\" [class.frm-padding-left-22]=\"AllowDownload && value.filename && value.fileb64\" class=\"form-control checking-field\" \r\n placeholder=\"{{Placeholder || ('Seleziona un File' | localize : lc)}}...\" [(ngModel)]=\"value.filename\" name=\"dsfile_{{InternalName}}\" #innerInput=\"ngModel\" />\r\n <!--Clean-->\r\n <i class=\"fa fa-times file-delete-btn\" (click)=\"fileChange(true); $event.stopPropagation(); false;\" *ngIf=\"value.filename\"></i>\r\n <!--Download-->\r\n <div *ngIf=\"AllowDownload && value.filename && value.fileb64\" class=\"app-pointer file-download-btn\" (click)=\"onDownloadFile(); $event.stopPropagation(); false;\">\r\n <span class=\"file-download-btn-text\">Download <i class=\"fa fa-download\"></i></span>\r\n </div>\r\n </label>\r\n</div>\r\n\r\n<p-popover appendTo=\"body\" styleClass='validation-tooltip' #tooltip>{{TooltipText}}</p-popover>", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n", ".frm-padding-left-22{padding-left:22px}.drop-container{position:relative;display:flex;gap:10px;flex-direction:column;justify-content:center;align-items:center;height:200px;padding:20px;border-radius:10px;border:2px dashed #0d45a5;color:#444;cursor:pointer;transition:background .2s ease-in-out,border .2s ease-in-out}.drop-container:hover{background:#eee;border-color:#111}.drop-container:hover .drop-title{color:#222}.drop-title{color:#444;font-size:20px;font-weight:700;text-align:center;transition:color .2s ease-in-out}input[type=file]{width:350px;max-width:100%;color:#444;padding:5px;background:#fff;border-radius:10px;border:1px solid #555}input[type=file]::file-selector-button{margin-right:20px;border:none;background:#084cdf;padding:10px 20px;border-radius:10px;color:#fff;cursor:pointer;transition:background .2s ease-in-out}input[type=file]::file-selector-button:hover{background:#0d45a5}.file-download-btn{border-radius:5px;padding:5px 10px;background-color:#0d45a5}.file-download-btn:hover{background-color:#084cdf}.file-download-btn-text{color:#fff}.file-delete-btn{color:red;position:absolute;right:10px;top:10px}.file-name-container{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow-y:clip;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: TextareaModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.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: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "ngmodule", type: PopoverModule }, { kind: "component", type: i4.Popover, selector: "p-popover", inputs: ["ariaLabel", "ariaLabelledBy", "dismissable", "style", "styleClass", "appendTo", "autoZIndex", "ariaCloseLabel", "baseZIndex", "focusOnShow", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide"] }, { kind: "ngmodule", type: InputGroupModule }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "component", type: InputSkeletonComponent, selector: "input-skeleton", inputs: ["For", "Control"] }, { kind: "ngmodule", type: LocalizationModule }, { kind: "pipe", type: i4$1.LocalizePipe, name: "localize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1057
1063
  }
1058
1064
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: EsFormFileComponent, decorators: [{
1059
1065
  type: Component,
1060
1066
  args: [{ selector: "form-file", encapsulation: ViewEncapsulation.None, imports: [TextareaModule, FormsModule, CommonModule, FloatLabelModule, PopoverModule, InputGroupModule, InputGroupAddonModule, InputSkeletonComponent, LocalizationModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1061
1067
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EsFormFileComponent), multi: true },
1062
1068
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => EsFormFileComponent), multi: true }
1063
- ], standalone: true, template: "<input-skeleton *ngIf=\"FancyMode === false\" [Control]=\"controlTemplate\" [For]=\"this\"></input-skeleton>\r\n\r\n<ng-template #controlTemplate>\r\n <div class=\"input-group file-upload\" style=\"padding: 0 !important;\">\r\n <input type=\"file\" (change)=\"fileChange()\" id=\"{{InternalName}}\" #innerElement style=\"height: 0; width:0; padding:0; margin:0; position: absolute; opacity:0\" [multiple]=\"Multiple ? true : null\" />\r\n <input type=\"text\" \r\n (click)=\"openFileDialog();\"\r\n [class.frm-padding-left-22]=\"AllowDownload && value.filename && value.fileb64\" \r\n class=\"form-control checking-field\" \r\n style=\"border-top-left-radius: 5px; border-bottom-left-radius: 5px; height: 46px;\"\r\n [style.padding-left.px]=\"AllowDownload && value.filename && value.fileb64 ? 40 : 12\"\r\n placeholder=\"{{Placeholder || ('Seleziona un File' | localize : lc)}}...\" \r\n [(ngModel)]=\"value.filename\" name=\"dsfile_{{InternalName}}\" \r\n #innerInput=\"ngModel\" />\r\n \r\n <a class=\"fa fa-download app-pointer app-input-icon\" style=\"padding-left: 10px; padding-top: 5px; color: #666; z-index: 9999;\" *ngIf=\"AllowDownload && value.filename && value.fileb64\" (click)=\"onDownloadFile()\"></a>\r\n <i class=\"fa fa-times delete-file\" style=\"margin-right: 15px; margin-top: 7px; color: #666;\" (click)=\"fileChange(true)\" *ngIf=\"value.filename\"></i>\r\n \r\n <span class=\"input-group-btn\">\r\n <button class=\"btn btn-primary btn-file-upload\" style=\"height: 46px;\r\n border-top-right-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n background: var(--p-surface-50) !important;\r\n border: 1px solid var(--p-surface-300) !important;\r\n color: #777;\" type=\"button\"><i class=\"fa fa-upload\" (click)=\"openFileDialog();\"></i></button>\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<!--Fancy Mode-->\r\n<div *ngIf=\"FancyMode === true\" (drop)=\"onFileDropped($event)\" (dragover)=\"onFileDragOver($event)\">\r\n <!--Drop-->\r\n <label for=\"{{InternalName}}\" class=\"drop-container\">\r\n <span class=\"drop-title\">{{Label}}</span>\r\n <div class=\"file-name-container\">{{value.filename || 'Nessun file selezionato'}}</div>\r\n <!--Hidden Forms-->\r\n <input hidden type=\"file\" (change)=\"fileChange()\" id=\"{{InternalName}}\" #innerElement class=\"file-upload-btn app-pointer\" [multiple]=\"Multiple ? true : null\" />\r\n <input hidden type=\"text\" [class.frm-padding-left-22]=\"AllowDownload && value.filename && value.fileb64\" class=\"form-control checking-field\" \r\n placeholder=\"{{Placeholder || ('Seleziona un File' | localize : lc)}}...\" [(ngModel)]=\"value.filename\" name=\"dsfile_{{InternalName}}\" #innerInput=\"ngModel\" />\r\n <!--Clean-->\r\n <i class=\"fa fa-times file-delete-btn\" (click)=\"fileChange(true); $event.stopPropagation(); false;\" *ngIf=\"value.filename\"></i>\r\n <!--Download-->\r\n <div *ngIf=\"AllowDownload && value.filename && value.fileb64\" class=\"app-pointer file-download-btn\" (click)=\"onDownloadFile(); $event.stopPropagation(); false;\">\r\n <span class=\"file-download-btn-text\">Download <i class=\"fa fa-download\"></i></span>\r\n </div>\r\n </label>\r\n</div>\r\n\r\n<p-popover appendTo=\"body\" styleClass='validation-tooltip' #tooltip>{{TooltipText}}</p-popover>", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n", ".frm-padding-left-22{padding-left:22px}.drop-container{position:relative;display:flex;gap:10px;flex-direction:column;justify-content:center;align-items:center;height:200px;padding:20px;border-radius:10px;border:2px dashed #0d45a5;color:#444;cursor:pointer;transition:background .2s ease-in-out,border .2s ease-in-out}.drop-container:hover{background:#eee;border-color:#111}.drop-container:hover .drop-title{color:#222}.drop-title{color:#444;font-size:20px;font-weight:700;text-align:center;transition:color .2s ease-in-out}input[type=file]{width:350px;max-width:100%;color:#444;padding:5px;background:#fff;border-radius:10px;border:1px solid #555}input[type=file]::file-selector-button{margin-right:20px;border:none;background:#084cdf;padding:10px 20px;border-radius:10px;color:#fff;cursor:pointer;transition:background .2s ease-in-out}input[type=file]::file-selector-button:hover{background:#0d45a5}.file-download-btn{border-radius:5px;padding:5px 10px;background-color:#0d45a5}.file-download-btn:hover{background-color:#084cdf}.file-download-btn-text{color:#fff}.file-delete-btn{color:red;position:absolute;right:10px;top:10px}.file-name-container{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow-y:clip;text-align:center}\n"] }]
1069
+ ], standalone: true, template: "<input-skeleton *ngIf=\"FancyMode === false\" [Control]=\"controlTemplate\" [For]=\"this\"></input-skeleton>\r\n\r\n<ng-template #controlTemplate>\r\n <div class=\"input-group file-upload\" style=\"padding: 0 !important;\">\r\n <input type=\"file\" (change)=\"fileChange()\" id=\"{{InternalName}}\" #innerElement class=\"file-upload-btn app-pointer\" style=\"height: 46px;\" [multiple]=\"Multiple ? true : null\" />\r\n <input type=\"text\" \r\n [class.frm-padding-left-22]=\"AllowDownload && value.filename && value.fileb64\" \r\n class=\"form-control checking-field\" \r\n style=\"border-top-left-radius: 5px; border-bottom-left-radius: 5px; height: 46px;\"\r\n [style.padding-left.px]=\"AllowDownload && value.filename && value.fileb64 ? 40 : 12\"\r\n placeholder=\"{{Placeholder || ('Seleziona un File' | localize : lc)}}...\" \r\n [(ngModel)]=\"value.filename\" name=\"dsfile_{{InternalName}}\" \r\n #innerInput=\"ngModel\" />\r\n \r\n <a class=\"fa fa-download app-pointer app-input-icon\" style=\"padding-left: 10px; padding-top: 5px; color: #666; z-index: 9999;\" *ngIf=\"AllowDownload && value.filename && value.fileb64\" (click)=\"onDownloadFile()\"></a>\r\n <i class=\"fa fa-times delete-file\" style=\"margin-right: 15px; margin-top: 7px; color: #666;\" (click)=\"fileChange(true)\" *ngIf=\"value.filename\"></i>\r\n \r\n <span class=\"input-group-btn\">\r\n <button class=\"btn btn-primary btn-file-upload\" style=\"height: 46px;\r\n border-top-right-radius: 5px;\r\n border-bottom-right-radius: 5px;\r\n background: var(--p-surface-50) !important;\r\n border: 1px solid var(--p-surface-300) !important;\r\n color: #777;\" type=\"button\"><i class=\"fa fa-upload\"></i></button>\r\n </span>\r\n </div>\r\n</ng-template>\r\n\r\n<!--Fancy Mode-->\r\n<div *ngIf=\"FancyMode === true\" (drop)=\"onFileDropped($event)\" (dragover)=\"onFileDragOver($event)\">\r\n <!--Drop-->\r\n <label for=\"{{InternalName}}\" class=\"drop-container\">\r\n <span class=\"drop-title\">{{Label}}</span>\r\n <div class=\"file-name-container\">{{value.filename || 'Nessun file selezionato'}}</div>\r\n <!--Hidden Forms-->\r\n <input hidden type=\"file\" (change)=\"fileChange()\" id=\"{{InternalName}}\" #innerElement class=\"file-upload-btn app-pointer\" [multiple]=\"Multiple ? true : null\" />\r\n <input hidden type=\"text\" [class.frm-padding-left-22]=\"AllowDownload && value.filename && value.fileb64\" class=\"form-control checking-field\" \r\n placeholder=\"{{Placeholder || ('Seleziona un File' | localize : lc)}}...\" [(ngModel)]=\"value.filename\" name=\"dsfile_{{InternalName}}\" #innerInput=\"ngModel\" />\r\n <!--Clean-->\r\n <i class=\"fa fa-times file-delete-btn\" (click)=\"fileChange(true); $event.stopPropagation(); false;\" *ngIf=\"value.filename\"></i>\r\n <!--Download-->\r\n <div *ngIf=\"AllowDownload && value.filename && value.fileb64\" class=\"app-pointer file-download-btn\" (click)=\"onDownloadFile(); $event.stopPropagation(); false;\">\r\n <span class=\"file-download-btn-text\">Download <i class=\"fa fa-download\"></i></span>\r\n </div>\r\n </label>\r\n</div>\r\n\r\n<p-popover appendTo=\"body\" styleClass='validation-tooltip' #tooltip>{{TooltipText}}</p-popover>", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n", ".frm-padding-left-22{padding-left:22px}.drop-container{position:relative;display:flex;gap:10px;flex-direction:column;justify-content:center;align-items:center;height:200px;padding:20px;border-radius:10px;border:2px dashed #0d45a5;color:#444;cursor:pointer;transition:background .2s ease-in-out,border .2s ease-in-out}.drop-container:hover{background:#eee;border-color:#111}.drop-container:hover .drop-title{color:#222}.drop-title{color:#444;font-size:20px;font-weight:700;text-align:center;transition:color .2s ease-in-out}input[type=file]{width:350px;max-width:100%;color:#444;padding:5px;background:#fff;border-radius:10px;border:1px solid #555}input[type=file]::file-selector-button{margin-right:20px;border:none;background:#084cdf;padding:10px 20px;border-radius:10px;color:#fff;cursor:pointer;transition:background .2s ease-in-out}input[type=file]::file-selector-button:hover{background:#0d45a5}.file-download-btn{border-radius:5px;padding:5px 10px;background-color:#0d45a5}.file-download-btn:hover{background-color:#084cdf}.file-download-btn-text{color:#fff}.file-delete-btn{color:red;position:absolute;right:10px;top:10px}.file-name-container{width:100%;white-space:nowrap;text-overflow:ellipsis;overflow-y:clip;text-align:center}\n"] }]
1064
1070
  }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { Multiple: [{
1065
1071
  type: Input
1066
1072
  }], AllowDownload: [{
@@ -1458,7 +1464,7 @@ class EsFormAdaptiveComponent extends BaseFormControl {
1458
1464
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: EsFormAdaptiveComponent, isStandalone: true, selector: "form-adaptive", inputs: { Type: "Type", TypeMissingMessage: "TypeMissingMessage", SearchFunction: "SearchFunction", Precision: "Precision", TypePattern: "TypePattern" }, providers: [
1459
1465
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => EsFormAdaptiveComponent), multi: true },
1460
1466
  { provide: NG_VALIDATORS, useExisting: forwardRef(() => EsFormAdaptiveComponent), multi: true }
1461
- ], queries: [{ propertyName: "suffixAdaptive", first: true, predicate: ["suffix"], descendants: true }, { propertyName: "prefixAdaptive", first: true, predicate: ["prefix"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Riga di debug -->\r\n<!-- <div><strong>Valore interno:</strong> {{value | json}}</div> -->\r\n\r\n@if(!Type){\r\n <div class=\"app-margin-top-5\"><em>{{TypeMissingMessage}}</em></div>\r\n}\r\n\r\n@if(config()){\r\n @switch(Type){\r\n @case (\"currency\") {\r\n <form-currency [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [Precision]=\"Precision\"></form-currency>\r\n }\r\n @case (\"date\") {\r\n <form-date [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-date>\r\n }\r\n @case (\"boolean\") {\r\n <form-checkbox [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-checkbox>\r\n }\r\n @case (\"enum\") {\r\n <form-select [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [Source]=\"BoundSource()\">\r\n @if(suffixAdaptive){\r\n <ng-template #suffix><ng-container *ngTemplateOutlet=\"suffixAdaptive\"></ng-container></ng-template>\r\n }\r\n @if(prefixAdaptive){\r\n <ng-template #prefix><ng-container *ngTemplateOutlet=\"prefixAdaptive\"></ng-container></ng-template>\r\n }\r\n </form-select>\r\n }\r\n @case (\"autocomplete\") {\r\n <form-autocomplete [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [SearchFunction]=\"SearchFunction\"></form-autocomplete>\r\n }\r\n @case (\"datetime\") {\r\n <form-datetime [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-datetime>\r\n }\r\n @case (\"time\") {\r\n <form-time [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-time>\r\n }\r\n @case (\"file\") {\r\n <form-file [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-file>\r\n }\r\n @case (\"string\") {\r\n <form-input [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [pattern]=\"pattern ?? ''\">\r\n @if(suffixAdaptive){\r\n <ng-template #suffix><ng-container *ngTemplateOutlet=\"suffixAdaptive\"></ng-container></ng-template>\r\n }\r\n @if(prefixAdaptive){\r\n <ng-template #prefix><ng-container *ngTemplateOutlet=\"prefixAdaptive\"></ng-container></ng-template>\r\n }\r\n </form-input>\r\n }\r\n @case (\"int\") {\r\n <form-input [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [pattern]=\"pattern ?? IntPattern()\">\r\n @if(suffixAdaptive){\r\n <ng-template #suffix><ng-container *ngTemplateOutlet=\"suffixAdaptive\"></ng-container></ng-template>\r\n }\r\n @if(prefixAdaptive){\r\n <ng-template #prefix><ng-container *ngTemplateOutlet=\"prefixAdaptive\"></ng-container></ng-template>\r\n }\r\n </form-input>\r\n }\r\n @default {\r\n <!-- float e number -->\r\n <form-input [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\">\r\n @if(suffixAdaptive){\r\n <ng-template #suffix><ng-container *ngTemplateOutlet=\"suffixAdaptive\"></ng-container></ng-template>\r\n }\r\n @if(prefixAdaptive){\r\n <ng-template #prefix><ng-container *ngTemplateOutlet=\"prefixAdaptive\"></ng-container></ng-template>\r\n }\r\n </form-input>\r\n }\r\n }\r\n}", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "ngmodule", type: PopoverModule }, { kind: "ngmodule", type: InputGroupModule }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "component", type: EsFormInputComponent, selector: "form-input", inputs: ["minlength", "maxlength", "pattern", "Password"] }, { kind: "component", type: EsFormDateComponent, selector: "form-date", inputs: ["InOutFormat", "FloatingLabel"] }, { kind: "component", type: EsFormCheckboxComponent, selector: "form-checkbox", inputs: ["SliderMode"] }, { kind: "component", type: EsFormSelectComponent, selector: "form-select", inputs: ["OptionsTemplate"] }, { kind: "component", type: EsFormAutocompleteComponent, selector: "form-autocomplete", inputs: ["MinChars", "SearchFunctionContext", "SearchFunction", "multiple", "forceSelection"] }, { kind: "component", type: EsFormDateTimeComponent, selector: "form-datetime" }, { kind: "component", type: EsFormTimeComponent, selector: "form-time" }, { kind: "component", type: EsFormFileComponent, selector: "form-file", inputs: ["Multiple", "AllowDownload", "MaxSize", "FancyMode", "ReadFile"] }, { kind: "component", type: EsFormCurrencyComponent, selector: "form-currency", inputs: ["mode", "Precision"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1467
+ ], queries: [{ propertyName: "suffixAdaptive", first: true, predicate: ["suffix"], descendants: true }, { propertyName: "prefixAdaptive", first: true, predicate: ["prefix"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!-- Riga di debug -->\r\n<!-- <div><strong>Valore interno:</strong> {{value | json}}</div> -->\r\n\r\n@if(!Type){\r\n <div class=\"app-margin-top-5\"><em>{{TypeMissingMessage}}</em></div>\r\n}\r\n\r\n@if(config()){\r\n @switch(Type){\r\n @case (\"currency\") {\r\n <form-currency [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [Precision]=\"Precision\"></form-currency>\r\n }\r\n @case (\"date\") {\r\n <form-date [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-date>\r\n }\r\n @case (\"boolean\") {\r\n <form-checkbox [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-checkbox>\r\n }\r\n @case (\"enum\") {\r\n <form-select [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [Source]=\"BoundSource()\">\r\n @if(suffixAdaptive){\r\n <ng-template #suffix><ng-container *ngTemplateOutlet=\"suffixAdaptive\"></ng-container></ng-template>\r\n }\r\n @if(prefixAdaptive){\r\n <ng-template #prefix><ng-container *ngTemplateOutlet=\"prefixAdaptive\"></ng-container></ng-template>\r\n }\r\n </form-select>\r\n }\r\n @case (\"autocomplete\") {\r\n <form-autocomplete [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [SearchFunction]=\"SearchFunction\"></form-autocomplete>\r\n }\r\n @case (\"datetime\") {\r\n <form-datetime [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-datetime>\r\n }\r\n @case (\"time\") {\r\n <form-time [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-time>\r\n }\r\n @case (\"file\") {\r\n <form-file [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\"></form-file>\r\n }\r\n @case (\"string\") {\r\n <form-input [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [pattern]=\"pattern ?? ''\">\r\n @if(suffixAdaptive){\r\n <ng-template #suffix><ng-container *ngTemplateOutlet=\"suffixAdaptive\"></ng-container></ng-template>\r\n }\r\n @if(prefixAdaptive){\r\n <ng-template #prefix><ng-container *ngTemplateOutlet=\"prefixAdaptive\"></ng-container></ng-template>\r\n }\r\n </form-input>\r\n }\r\n @case (\"int\") {\r\n <form-input [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\" [pattern]=\"pattern ?? IntPattern()\">\r\n @if(suffixAdaptive){\r\n <ng-template #suffix><ng-container *ngTemplateOutlet=\"suffixAdaptive\"></ng-container></ng-template>\r\n }\r\n @if(prefixAdaptive){\r\n <ng-template #prefix><ng-container *ngTemplateOutlet=\"prefixAdaptive\"></ng-container></ng-template>\r\n }\r\n </form-input>\r\n }\r\n @default {\r\n <!-- float e number -->\r\n <form-input [Form]=\"Form\" [FormLayout]=\"FormLayout\" [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (inputChange)=\"inputChange.emit($event)\" (inputFinalized)=\"inputFinalized.emit($event)\" (inputFocus)=\"inputFocus.emit($event)\" [name]=\"name\" [disabled]=\"disabled\" [Configuration]=\"config()\">\r\n @if(suffixAdaptive){\r\n <ng-template #suffix><ng-container *ngTemplateOutlet=\"suffixAdaptive\"></ng-container></ng-template>\r\n }\r\n @if(prefixAdaptive){\r\n <ng-template #prefix><ng-container *ngTemplateOutlet=\"prefixAdaptive\"></ng-container></ng-template>\r\n }\r\n </form-input>\r\n }\r\n }\r\n}", styles: [".validation-tooltip.p-popover:before,.validation-tooltip.p-popover:after{border-bottom-color:var(--p-form-field-invalid-placeholder-color)}.validation-tooltip .p-popover-content{padding:5px;color:#fff;background:var(--p-form-field-invalid-placeholder-color);border-radius:5px}p-datepicker{display:flex}.p-datepicker{flex-grow:1}.p-datepicker-panel{min-width:400px!important}.p-inputgroupaddon{padding:0!important}p-autocomplete input.p-autocomplete-input{width:100%}input.p-select-filter{width:100%!important}textarea{resize:none}.p-select-clear-icon{margin-top:-.5rem!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FloatLabelModule }, { kind: "ngmodule", type: PopoverModule }, { kind: "ngmodule", type: InputGroupModule }, { kind: "ngmodule", type: InputGroupAddonModule }, { kind: "component", type: EsFormInputComponent, selector: "form-input", inputs: ["minlength", "maxlength", "pattern", "Password", "Type"] }, { kind: "component", type: EsFormDateComponent, selector: "form-date", inputs: ["InOutFormat", "FloatingLabel"] }, { kind: "component", type: EsFormCheckboxComponent, selector: "form-checkbox", inputs: ["SliderMode"] }, { kind: "component", type: EsFormSelectComponent, selector: "form-select", inputs: ["OptionsTemplate"] }, { kind: "component", type: EsFormAutocompleteComponent, selector: "form-autocomplete", inputs: ["MinChars", "SearchFunctionContext", "SearchFunction", "multiple", "forceSelection"] }, { kind: "component", type: EsFormDateTimeComponent, selector: "form-datetime" }, { kind: "component", type: EsFormTimeComponent, selector: "form-time" }, { kind: "component", type: EsFormFileComponent, selector: "form-file", inputs: ["Multiple", "AllowDownload", "MaxSize", "FancyMode", "ReadFile"] }, { kind: "component", type: EsFormCurrencyComponent, selector: "form-currency", inputs: ["mode", "Precision"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1462
1468
  }
1463
1469
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: EsFormAdaptiveComponent, decorators: [{
1464
1470
  type: Component,