@esfaenza/forms-and-validations 11.2.51 → 11.2.54
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/bundles/esfaenza-forms-and-validations.umd.js +146 -27
- package/bundles/esfaenza-forms-and-validations.umd.js.map +1 -1
- package/esfaenza-forms-and-validations.metadata.json +1 -1
- package/esm2015/lib/forms/base-form-control.js +28 -2
- package/esm2015/lib/forms/form-adaptive/form-adaptive.component.js +22 -8
- package/esm2015/lib/forms/form-autocomplete/form-autocomplete.component.js +2 -2
- package/esm2015/lib/forms/form-checkbox/form-checkbox.component.js +2 -2
- package/esm2015/lib/forms/form-date/form-date.component.js +2 -2
- package/esm2015/lib/forms/form-datetime/form-datetime.component.js +2 -2
- package/esm2015/lib/forms/form-input/form-input.component.js +2 -2
- package/esm2015/lib/forms/form-multiselect/form-multiselect.component.js +2 -1
- package/esm2015/lib/forms/form-select/form-select.component.js +2 -2
- package/esm2015/lib/forms/form-textarea/form-textarea.component.js +2 -2
- package/esm2015/lib/validations/base-validation.js +37 -2
- package/esm2015/lib/validations/validation-autocomplete/validation-autocomplete.component.js +7 -7
- package/esm2015/lib/validations/validation-currency/validation-currency.component.js +14 -2
- package/esm2015/lib/validations/validation-date/validation-date.component.js +9 -2
- package/esm2015/lib/validations/validation-datetime/validation-datetime.component.js +9 -2
- package/esm2015/lib/validations/validation-input/validation-input.component.js +4 -2
- package/esm2015/lib/validations/validation-select/validation-select.component.js +4 -2
- package/esm2015/lib/validations/validation-text-area/validation-text-area.component.js +14 -2
- package/fesm2015/esfaenza-forms-and-validations.js +145 -27
- package/fesm2015/esfaenza-forms-and-validations.js.map +1 -1
- package/lib/forms/base-form-control.d.ts +24 -0
- package/lib/forms/form-adaptive/form-adaptive.component.d.ts +8 -0
- package/lib/validations/base-validation.d.ts +35 -2
- package/lib/validations/validation-autocomplete/validation-autocomplete.component.d.ts +2 -3
- package/lib/validations/validation-currency/validation-currency.component.d.ts +8 -0
- package/lib/validations/validation-date/validation-date.component.d.ts +4 -0
- package/lib/validations/validation-datetime/validation-datetime.component.d.ts +4 -0
- package/lib/validations/validation-text-area/validation-text-area.component.d.ts +8 -0
- package/package.json +1 -1
|
@@ -484,6 +484,10 @@
|
|
|
484
484
|
* un eventuale pattern validator scriverà che il formato dell'input è invalido
|
|
485
485
|
*/
|
|
486
486
|
this.InferErrorMessages = true;
|
|
487
|
+
/**
|
|
488
|
+
* Modalità in cui viene mostrato il campo, 1-1 rispetto alle definizioni di Angular Material
|
|
489
|
+
*/
|
|
490
|
+
this.FieldAppearence = "outline";
|
|
487
491
|
/**
|
|
488
492
|
* Messaggio da mostrare se la validazione fallisce.
|
|
489
493
|
*
|
|
@@ -535,9 +539,13 @@
|
|
|
535
539
|
*/
|
|
536
540
|
this.inputChange = new core.EventEmitter();
|
|
537
541
|
/**
|
|
538
|
-
* Evento che
|
|
542
|
+
* Evento che indica il focus avvenuto su un controllo
|
|
539
543
|
*/
|
|
540
544
|
this.inputFocus = new core.EventEmitter();
|
|
545
|
+
/**
|
|
546
|
+
* Evento che indica la finalizzazione del valore avvenuta su un controllo
|
|
547
|
+
*/
|
|
548
|
+
this.inputFinalized = new core.EventEmitter();
|
|
541
549
|
/**
|
|
542
550
|
* @ignore
|
|
543
551
|
*/
|
|
@@ -675,6 +683,30 @@
|
|
|
675
683
|
BaseValidation.prototype.onFocus = function (toEmit) {
|
|
676
684
|
this.inputFocus.emit(toEmit);
|
|
677
685
|
};
|
|
686
|
+
/**
|
|
687
|
+
* Finalizzazione Input
|
|
688
|
+
*/
|
|
689
|
+
BaseValidation.prototype.onFinalize = function () {
|
|
690
|
+
this.inputFinalized.emit();
|
|
691
|
+
};
|
|
692
|
+
/**
|
|
693
|
+
* Registra il Subject per ricevere le richieste di Focus dall'esterno
|
|
694
|
+
*/
|
|
695
|
+
BaseValidation.prototype.registerFocusRequest = function () {
|
|
696
|
+
var _this = this;
|
|
697
|
+
if (!this.FocusSubject)
|
|
698
|
+
return;
|
|
699
|
+
this.observable = this.FocusSubject.subscribe(function (t) {
|
|
700
|
+
_this.htmlInput.nativeElement.focus();
|
|
701
|
+
});
|
|
702
|
+
};
|
|
703
|
+
/**
|
|
704
|
+
* Deregistra il Subject delle richieste di focus
|
|
705
|
+
*/
|
|
706
|
+
BaseValidation.prototype.deregisterFocusRequest = function () {
|
|
707
|
+
if (this.observable)
|
|
708
|
+
this.observable.unsubscribe();
|
|
709
|
+
};
|
|
678
710
|
return BaseValidation;
|
|
679
711
|
}());
|
|
680
712
|
BaseValidation.decorators = [
|
|
@@ -683,9 +715,12 @@
|
|
|
683
715
|
BaseValidation.propDecorators = {
|
|
684
716
|
tooltip: [{ type: core.ViewChild, args: [tooltip.TooltipDirective, { static: false },] }],
|
|
685
717
|
tooltip_static: [{ type: core.ViewChild, args: [tooltip.TooltipDirective, { static: true },] }],
|
|
718
|
+
htmlInput: [{ type: core.ViewChild, args: ['htmlInput', { static: false },] }],
|
|
686
719
|
baseInput: [{ type: core.ViewChild, args: ["baseInput", { static: false },] }],
|
|
687
720
|
baseInput_static: [{ type: core.ViewChild, args: ["baseInput", { static: true },] }],
|
|
721
|
+
FocusSubject: [{ type: core.Input }],
|
|
688
722
|
InferErrorMessages: [{ type: core.Input }],
|
|
723
|
+
FieldAppearence: [{ type: core.Input }],
|
|
689
724
|
validationFailed: [{ type: core.Input }],
|
|
690
725
|
readonly: [{ type: core.Input }],
|
|
691
726
|
widthPx: [{ type: core.Input }],
|
|
@@ -699,6 +734,7 @@
|
|
|
699
734
|
id: [{ type: core.Input }],
|
|
700
735
|
inputChange: [{ type: core.Output }],
|
|
701
736
|
inputFocus: [{ type: core.Output }],
|
|
737
|
+
inputFinalized: [{ type: core.Output }],
|
|
702
738
|
submitted: [{ type: core.Input, args: ["submitted",] }],
|
|
703
739
|
forceInvalid: [{ type: core.Input }]
|
|
704
740
|
};
|
|
@@ -775,6 +811,7 @@
|
|
|
775
811
|
* @ignore
|
|
776
812
|
*/
|
|
777
813
|
ValidationSelectComponent.prototype.ngOnInit = function () {
|
|
814
|
+
this.registerFocusRequest();
|
|
778
815
|
//controllo se è settato un required per decidere in maniera condizionale se utilizzare il validatore required nel componente interno
|
|
779
816
|
//Lo imposto ANCHE se sono in situazione di noValidate perché comporta eventuali modifiche grafiche che potrebbero servirmi, ma comunque non va a d aggiungere
|
|
780
817
|
//validatori o cose strane, quindi GG
|
|
@@ -785,6 +822,7 @@
|
|
|
785
822
|
* @ignore
|
|
786
823
|
*/
|
|
787
824
|
ValidationSelectComponent.prototype.ngOnDestroy = function () {
|
|
825
|
+
this.deregisterFocusRequest();
|
|
788
826
|
if (this.tooltipSubscription)
|
|
789
827
|
this.tooltipSubscription.unsubscribe();
|
|
790
828
|
};
|
|
@@ -858,7 +896,7 @@
|
|
|
858
896
|
ValidationSelectComponent.decorators = [
|
|
859
897
|
{ type: core.Component, args: [{
|
|
860
898
|
selector: "val-select",
|
|
861
|
-
template: "<mat-form-field appearance=\"
|
|
899
|
+
template: "<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <select matNativeControl\r\n #baseInput=\"ngModel\"\r\n #htmlInput\r\n name=\"val-select\"\r\n class=\"form-control\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n id=\"{{id}}\"\r\n [customRequired]=\"required ? 'true' : 'false'\"\r\n [CustomNullValues]=\"[placeHolderValue,emptyFieldValue]\"\r\n [(ngModel)]=\"value\"\r\n [tooltip]=\"tolTemplate\"\r\n [class.checking-combo]=\"!noValidate\"\r\n [class.app-option-placeholder]=\"baseInput.value === placeHolderValue\"\r\n [class.no-bg-img]=\"!showValidationSymbol\"\r\n [disabled]=\"readonly\"\r\n (click)=\"onFocus($event)\"\r\n (focus)=\"checkTooltip();\"\r\n (blur)=\"closeTooltip(); onBlur.emit(true);\"\r\n (ngModelChange)=\"onModelChange($event); onFinalize()\">\r\n\r\n <option *ngIf=\"placeholder\" [value]=\"placeHolderValue\" disabled selected hidden>{{placeholder}}</option>\r\n <option *ngIf=\"required == false && emptyValue\" [value]=\"emptyFieldValue\"></option>\r\n <ng-content></ng-content>\r\n </select>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{validationFailed}}</span>\r\n </div>\r\n</ng-template>",
|
|
862
900
|
encapsulation: core.ViewEncapsulation.None,
|
|
863
901
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
864
902
|
providers: [
|
|
@@ -918,11 +956,18 @@
|
|
|
918
956
|
* @ignore
|
|
919
957
|
*/
|
|
920
958
|
ValidationDateComponent.prototype.ngOnInit = function () {
|
|
959
|
+
this.registerFocusRequest();
|
|
921
960
|
//controllo se è settato un required per decidere in maniera condizionale se utilizzare il validatore required nel componente interno
|
|
922
961
|
if (this._validators && !this.noValidate && this._validators.some(function (elem) { return elem instanceof forms.RequiredValidator; }))
|
|
923
962
|
this.required = true;
|
|
924
963
|
this._format = this.lc.token("getSmallDateDisplayFormat");
|
|
925
964
|
};
|
|
965
|
+
/**
|
|
966
|
+
* @ignore
|
|
967
|
+
*/
|
|
968
|
+
ValidationDateComponent.prototype.ngOnDestroy = function () {
|
|
969
|
+
this.deregisterFocusRequest();
|
|
970
|
+
};
|
|
926
971
|
/**
|
|
927
972
|
* @ignore
|
|
928
973
|
*/
|
|
@@ -1022,7 +1067,7 @@
|
|
|
1022
1067
|
ValidationDateComponent.decorators = [
|
|
1023
1068
|
{ type: core.Component, args: [{
|
|
1024
1069
|
selector: "val-date",
|
|
1025
|
-
template: "<mat-form-field appearance=\"
|
|
1070
|
+
template: "<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label *ngIf=\"placeholder\">{{placeholder}}</mat-label>\r\n <input matInput\r\n [matDatepicker]=\"datepicker\"\r\n #baseInput=\"ngModel\"\r\n #htmlInput\r\n type=\"text\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n name=\"val-date\"\r\n class=\"form-control {{class}}\"\r\n autocomplete=\"{{autocomplete}}\"\r\n id=\"{{id}}\"\r\n (click)=\"onFocus($event)\"\r\n [(ngModel)]=\"value\"\r\n [class.checking-field]=\"!noValidate\"\r\n [tooltip]=\"tolTemplate\"\r\n [placeholder]=\"placeholder ? '' : _format\"\r\n [disabled]=\"readonly || disabled\"\r\n [isDisabled]=\"readonly || disabled\"\r\n (dateChange)=\"outputValue($event)\" \r\n (keyup)=\"$event.keyCode == 13 && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\"\r\n />\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #datepicker></mat-datepicker>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{validationFailed}}</span>\r\n </div>\r\n</ng-template>",
|
|
1026
1071
|
encapsulation: core.ViewEncapsulation.None,
|
|
1027
1072
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
1028
1073
|
providers: [
|
|
@@ -1107,6 +1152,7 @@
|
|
|
1107
1152
|
* @ignore
|
|
1108
1153
|
*/
|
|
1109
1154
|
ValidationInputComponent.prototype.ngOnInit = function () {
|
|
1155
|
+
this.registerFocusRequest();
|
|
1110
1156
|
//controllo se è settato un required per decidere in maniera condizionale se utilizzare il validatore required nel componente interno
|
|
1111
1157
|
if (this._validators && !this.noValidate && this._validators.some(function (elem) { return elem instanceof forms.RequiredValidator; }))
|
|
1112
1158
|
this.required = true;
|
|
@@ -1117,6 +1163,7 @@
|
|
|
1117
1163
|
* @ignore
|
|
1118
1164
|
*/
|
|
1119
1165
|
ValidationInputComponent.prototype.ngOnDestroy = function () {
|
|
1166
|
+
this.deregisterFocusRequest();
|
|
1120
1167
|
if (this.tooltipSubscription)
|
|
1121
1168
|
this.tooltipSubscription.unsubscribe();
|
|
1122
1169
|
};
|
|
@@ -1199,7 +1246,7 @@
|
|
|
1199
1246
|
ValidationInputComponent.decorators = [
|
|
1200
1247
|
{ type: core.Component, args: [{
|
|
1201
1248
|
selector: "val-input",
|
|
1202
|
-
template: "<mat-form-field appearance=\"
|
|
1249
|
+
template: "<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label [class.app-margin-left-25]=\"HasPrefix\" *ngIf=\"placeholder\">{{placeholder}}</mat-label>\r\n <ng-container *ngIf=\"HasPrefix\">\r\n <ng-container *ngTemplateOutlet=\"prefix_internal\"></ng-container>\r\n </ng-container>\r\n\r\n <input matInput\r\n #baseInput='ngModel'\r\n #htmlInput\r\n type=\"{{type}}\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n autocomplete=\"{{autocomplete}}\"\r\n name=\"val-input\"\r\n class=\"form-control {{class}}\"\r\n id=\"{{id}}\"\r\n [class.app-margin-left-25]=\"HasPrefix\"\r\n [class.mat-input-with-suffix]=\"HasSuffix || Password || showWarning\"\r\n [(ngModel)]=\"value\"\r\n [class.checking-field]=\"!noValidate && !showWarning\"\r\n [tooltip]=\"tolTemplate\"\r\n [disabled]=\"readonly || disabled\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n (click)=\"onFocus($event)\"\r\n (focus)=\"checkTooltip();\"\r\n (keyup)=\"$event.keyCode == 13 && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\"\r\n >\r\n <ng-container *ngIf=\"HasSuffix || Password || showWarning\">\r\n <ng-container *ngIf=\"!Password && !showWarning\">\r\n <ng-container *ngTemplateOutlet=\"suffix_internal\"></ng-container>\r\n </ng-container>\r\n\r\n <span class=\"form-input-suffix\" *ngIf=\"Password || showWarning\">\r\n <ng-container *ngIf=\"Password\" matSuffix>\r\n <a *ngIf=\"passShown\" class=\"fa fa-eye-slash app-fs-16 app-pointer\" (click)=\"type = 'password'; passShown = !passShown; $event.preventDefault()\"></a>\r\n <a *ngIf=\"!passShown\" class=\"fa fa-eye app-fs-16 app-pointer\" (click)=\"type = 'text'; passShown = !passShown; $event.preventDefault()\"></a>\r\n </ng-container>\r\n <ng-container *ngIf=\"showWarning\" matSuffix>\r\n <span title=\"{{warningTitle}}\" class=\"{{warningClass}} text-warning app-fs-16\"></span>\r\n </ng-container>\r\n </span>\r\n </ng-container>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{validationFailed}}</span>\r\n </div>\r\n</ng-template>",
|
|
1203
1250
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
1204
1251
|
providers: [
|
|
1205
1252
|
{ provide: localizations.LocalizationService, useClass: BaseValidationLoc },
|
|
@@ -1243,12 +1290,24 @@
|
|
|
1243
1290
|
_this.lc = lc;
|
|
1244
1291
|
return _this;
|
|
1245
1292
|
}
|
|
1293
|
+
/**
|
|
1294
|
+
* @ignore
|
|
1295
|
+
*/
|
|
1296
|
+
ValidationCurrencyComponent.prototype.ngOnInit = function () {
|
|
1297
|
+
this.registerFocusRequest();
|
|
1298
|
+
};
|
|
1299
|
+
/**
|
|
1300
|
+
* @ignore
|
|
1301
|
+
*/
|
|
1302
|
+
ValidationCurrencyComponent.prototype.ngOnDestroy = function () {
|
|
1303
|
+
this.deregisterFocusRequest();
|
|
1304
|
+
};
|
|
1246
1305
|
return ValidationCurrencyComponent;
|
|
1247
1306
|
}(ValidationInputComponent));
|
|
1248
1307
|
ValidationCurrencyComponent.decorators = [
|
|
1249
1308
|
{ type: core.Component, args: [{
|
|
1250
1309
|
selector: "val-currency",
|
|
1251
|
-
template: "<mat-form-field appearance=\"
|
|
1310
|
+
template: "<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label *ngIf=\"placeholder\">{{placeholder}}</mat-label>\r\n <input #baseInput='ngModel'\r\n #htmlInput\r\n currencyMask\r\n matInput\r\n [readonly]=\"readonly\"\r\n [options]='CurrencyOptions'\r\n [(ngModel)]=\"value\"\r\n name=\"val-input\"\r\n id=\"{{id}}\"\r\n (click)=\"onFocus($event)\"\r\n (focus)=\"checkTooltip();\"\r\n (keyup)=\"$event.keyCode == 13 && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\"\r\n class=\"form-control {{class}}\"\r\n [class.checking-field]=\"!noValidate\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n type=\"{{type}}\"\r\n [tooltip]=\"tolTemplate\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n autocomplete=\"{{autocomplete}}\" />\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div>\r\n <span class=\"close-button pull-right\" (click)=\"closeTooltip()\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </span>\r\n <span>{{validationFailed}}</span>\r\n </div>\r\n</ng-template>",
|
|
1252
1311
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
1253
1312
|
providers: [
|
|
1254
1313
|
{ provide: localizations.LocalizationService, useClass: BaseValidationLoc },
|
|
@@ -1290,12 +1349,24 @@
|
|
|
1290
1349
|
_this.rows = 2;
|
|
1291
1350
|
return _this;
|
|
1292
1351
|
}
|
|
1352
|
+
/**
|
|
1353
|
+
* @ignore
|
|
1354
|
+
*/
|
|
1355
|
+
ValidationTextAreaComponent.prototype.ngOnInit = function () {
|
|
1356
|
+
this.registerFocusRequest();
|
|
1357
|
+
};
|
|
1358
|
+
/**
|
|
1359
|
+
* @ignore
|
|
1360
|
+
*/
|
|
1361
|
+
ValidationTextAreaComponent.prototype.ngOnDestroy = function () {
|
|
1362
|
+
this.deregisterFocusRequest();
|
|
1363
|
+
};
|
|
1293
1364
|
return ValidationTextAreaComponent;
|
|
1294
1365
|
}(ValidationInputComponent));
|
|
1295
1366
|
ValidationTextAreaComponent.decorators = [
|
|
1296
1367
|
{ type: core.Component, args: [{
|
|
1297
1368
|
selector: "val-textarea",
|
|
1298
|
-
template: "<mat-form-field appearance=\"
|
|
1369
|
+
template: "<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-full-height mat-no-border-top mat-height-auto\">\r\n <mat-label *ngIf=\"placeholder\">{{placeholder}}</mat-label>\r\n <textarea matInput\r\n #baseInput=\"ngModel\"\r\n #htmlInput\r\n [(ngModel)]=\"value\"\r\n name=\"val-textarea\"\r\n triggers=\"\"\r\n class=\"app-no-resize form-control {{class}}\"\r\n id=\"{{id}}\"\r\n [class.checking-field]=\"!noValidate\"\r\n rows=\"{{rows}}\"\r\n [tooltip]=\"tolTemplate\"\r\n placement=\"top\"\r\n (click)=\"onFocus($event)\"\r\n (focus)=\"checkTooltip();\"\r\n (keyup)=\"$event.keyCode == 13 && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\"\r\n (ngModelChange)=\"onModelChange($event)\">\r\n </textarea>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{validationFailed}}</span>\r\n </div>\r\n</ng-template>",
|
|
1299
1370
|
providers: [
|
|
1300
1371
|
{ provide: localizations.LocalizationService, useClass: BaseValidationLoc },
|
|
1301
1372
|
{
|
|
@@ -1380,11 +1451,18 @@
|
|
|
1380
1451
|
* @ignore
|
|
1381
1452
|
*/
|
|
1382
1453
|
ValidationDateTimeComponent.prototype.ngOnInit = function () {
|
|
1454
|
+
this.registerFocusRequest();
|
|
1383
1455
|
// Controllo se è settato un required per decidere in maniera condizionale se utilizzare il validatore required nel componente interno
|
|
1384
1456
|
if (this._validators && !this.noValidate && this._validators.some(function (elem) { return elem instanceof forms.RequiredValidator; }))
|
|
1385
1457
|
this.required = true;
|
|
1386
1458
|
this._format = this.lc.token("getSmallDateDisplayFormat");
|
|
1387
1459
|
};
|
|
1460
|
+
/**
|
|
1461
|
+
* @ignore
|
|
1462
|
+
*/
|
|
1463
|
+
ValidationDateTimeComponent.prototype.ngOnDestroy = function () {
|
|
1464
|
+
this.deregisterFocusRequest();
|
|
1465
|
+
};
|
|
1388
1466
|
/**
|
|
1389
1467
|
* @ignore
|
|
1390
1468
|
*/
|
|
@@ -1482,7 +1560,7 @@
|
|
|
1482
1560
|
ValidationDateTimeComponent.decorators = [
|
|
1483
1561
|
{ type: core.Component, args: [{
|
|
1484
1562
|
selector: "val-datetime",
|
|
1485
|
-
template: "<mat-form-field appearance=\"
|
|
1563
|
+
template: "<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label *ngIf=\"placeholder\">{{placeholder}}</mat-label>\r\n\r\n <input matInput \r\n [ngxMatDatetimePicker]=\"datepicker\" \r\n #baseInput=\"ngModel\"\r\n #htmlInput\r\n type=\"text\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n name=\"val-date\"\r\n id=\"{{id}}\"\r\n (click)=\"onFocus($event)\"\r\n class=\"form-control {{class}}\"\r\n autocomplete=\"{{autocomplete}}\"\r\n [(ngModel)]=\"value\"\r\n [class.checking-field]=\"!noValidate\"\r\n [tooltip]=\"tolTemplate\"\r\n [placeholder]=\"placeholder ? '' : _format\"\r\n [disabled]=\"readonly || disabled\"\r\n [isDisabled]=\"readonly || disabled\"\r\n (dateChange)=\"outputValue($event)\"\r\n (keyup)=\"$event.keyCode == 13 && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\"\r\n />\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n\r\n <ngx-mat-datetime-picker #datepicker \r\n [showSpinners]=\"showSpinners\" \r\n [showSeconds]=\"showSeconds\" \r\n [stepHour]=\"stepHour\" \r\n [stepMinute]=\"stepMinute\" \r\n [stepSecond]=\"stepSecond\" \r\n [touchUi]=\"false\" \r\n [color]=\"'primary'\">\r\n </ngx-mat-datetime-picker>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{validationFailed}}</span>\r\n </div>\r\n</ng-template>",
|
|
1486
1564
|
encapsulation: core.ViewEncapsulation.None,
|
|
1487
1565
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
1488
1566
|
providers: [
|
|
@@ -1516,13 +1594,12 @@
|
|
|
1516
1594
|
/**
|
|
1517
1595
|
* @ignore
|
|
1518
1596
|
*/
|
|
1519
|
-
function ValidationAutocompleteComponent(_validators, _asyncValidators, injector, lc
|
|
1597
|
+
function ValidationAutocompleteComponent(_validators, _asyncValidators, injector, lc) {
|
|
1520
1598
|
var _this = _super.call(this) || this;
|
|
1521
1599
|
_this._validators = _validators;
|
|
1522
1600
|
_this._asyncValidators = _asyncValidators;
|
|
1523
1601
|
_this.injector = injector;
|
|
1524
1602
|
_this.lc = lc;
|
|
1525
|
-
_this.cdr = cdr;
|
|
1526
1603
|
/**
|
|
1527
1604
|
* Sorgente da cui scegliere valori filtrata in base a quello che ha scritto l'utente
|
|
1528
1605
|
*/
|
|
@@ -1545,6 +1622,7 @@
|
|
|
1545
1622
|
* @ignore
|
|
1546
1623
|
*/
|
|
1547
1624
|
ValidationAutocompleteComponent.prototype.ngOnInit = function () {
|
|
1625
|
+
this.registerFocusRequest();
|
|
1548
1626
|
//controllo se è settato un required per decidere in maniera condizionale se utilizzare il validatore required nel componente interno
|
|
1549
1627
|
if (this._validators && !this.noValidate && this._validators.some(function (elem) { return elem instanceof forms.RequiredValidator; }))
|
|
1550
1628
|
this.required = true;
|
|
@@ -1553,6 +1631,7 @@
|
|
|
1553
1631
|
* @ignore
|
|
1554
1632
|
*/
|
|
1555
1633
|
ValidationAutocompleteComponent.prototype.ngOnDestroy = function () {
|
|
1634
|
+
this.deregisterFocusRequest();
|
|
1556
1635
|
if (this.tooltipSubscription)
|
|
1557
1636
|
this.tooltipSubscription.unsubscribe();
|
|
1558
1637
|
};
|
|
@@ -1627,7 +1706,7 @@
|
|
|
1627
1706
|
ValidationAutocompleteComponent.decorators = [
|
|
1628
1707
|
{ type: core.Component, args: [{
|
|
1629
1708
|
selector: "val-autocomplete",
|
|
1630
|
-
template: "<mat-form-field appearance=\"
|
|
1709
|
+
template: "<mat-form-field appearance=\"{{FieldAppearence}}\" class=\"mat-full-width mat-no-border-top mat-height-fixed\" [style.width.px]=\"widthPx\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <input matInput\r\n #htmlInput\r\n #baseInput='ngModel'\r\n type=\"text\"\r\n triggers=\"\"\r\n placement=\"top\"\r\n placeholder=\"{{placeholder}}\"\r\n [matAutocomplete]=\"auto\"\r\n name=\"val-input\"\r\n id=\"{{id}}\"\r\n class=\"form-control {{class}}\"\r\n [(ngModel)]=\"value\"\r\n [class.checking-field]=\"!noValidate\"\r\n [tooltip]=\"tolTemplate\"\r\n [disabled]=\"readonly || disabled\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n (click)=\"onFocus($event)\"\r\n (focus)=\"checkTooltip();\"\r\n (keyup)=\"$event.keyCode == 13 && onFinalize();\"\r\n (blur)=\"closeTooltip(); onFinalize();\"\r\n >\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let option of FilteredSource\" [value]=\"option.id\">\r\n {{option.description}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field>\r\n\r\n<ng-template #tolTemplate>\r\n <div (click)=\"closeTooltip()\">\r\n <span>{{validationFailed}}</span>\r\n </div>\r\n</ng-template>",
|
|
1631
1710
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
1632
1711
|
providers: [
|
|
1633
1712
|
{ provide: localizations.LocalizationService, useClass: BaseValidationLoc },
|
|
@@ -1645,8 +1724,7 @@
|
|
|
1645
1724
|
{ type: Array, decorators: [{ type: core.Optional }, { type: core.Inject, args: [forms.NG_VALIDATORS,] }] },
|
|
1646
1725
|
{ type: Array, decorators: [{ type: core.Optional }, { type: core.Inject, args: [forms.NG_ASYNC_VALIDATORS,] }] },
|
|
1647
1726
|
{ type: core.Injector },
|
|
1648
|
-
{ type: localizations.LocalizationService }
|
|
1649
|
-
{ type: core.ChangeDetectorRef }
|
|
1727
|
+
{ type: localizations.LocalizationService }
|
|
1650
1728
|
]; };
|
|
1651
1729
|
ValidationAutocompleteComponent.propDecorators = {
|
|
1652
1730
|
FilteredSource: [{ type: core.Input }],
|
|
@@ -1713,10 +1791,18 @@
|
|
|
1713
1791
|
* Se non lo sono, il campo risulterà in sola lettura
|
|
1714
1792
|
*/
|
|
1715
1793
|
this.AppContextOwnership = true;
|
|
1794
|
+
/**
|
|
1795
|
+
* Modalità in cui viene mostrato il campo, 1-1 rispetto alle definizioni di Angular Material
|
|
1796
|
+
*/
|
|
1797
|
+
this.FieldAppearence = "outline";
|
|
1716
1798
|
/**
|
|
1717
1799
|
* Utilizza o meno il Layout di un form (Label con input di fianco), se false mostra solo l'input
|
|
1718
1800
|
*/
|
|
1719
1801
|
this.FormLayout = true;
|
|
1802
|
+
/**
|
|
1803
|
+
* Definisce se richiamare l'EventEmitter **inputChange** in maniera classica (true) o solo per la change considerate definitive come tasto invio / blur / ecc... (false)
|
|
1804
|
+
*/
|
|
1805
|
+
this.EmitPendingChanges = true;
|
|
1720
1806
|
/**
|
|
1721
1807
|
* Attiva o disattiva la validazione per questo componente
|
|
1722
1808
|
*/
|
|
@@ -1784,6 +1870,10 @@
|
|
|
1784
1870
|
* Evento chiamato al focus del campo di testo/combo/quelcheè, riemitta l'evento originale Javascript
|
|
1785
1871
|
*/
|
|
1786
1872
|
this.inputFocus = new core.EventEmitter();
|
|
1873
|
+
/**
|
|
1874
|
+
* Evento chiamato al finalize del campo di testo/combo/quelcheè
|
|
1875
|
+
*/
|
|
1876
|
+
this.inputFinalized = new core.EventEmitter();
|
|
1787
1877
|
/**
|
|
1788
1878
|
* Cache delle condizioni scritte tipo :prop?(Roba con {prop})
|
|
1789
1879
|
*/
|
|
@@ -2121,6 +2211,16 @@
|
|
|
2121
2211
|
this.inputFocus.emit(event);
|
|
2122
2212
|
console.log("Control Focused: " + this.GeneratedName);
|
|
2123
2213
|
};
|
|
2214
|
+
/**
|
|
2215
|
+
* @ignore
|
|
2216
|
+
* Classico "spara fuori" sulla finalizzazione del valore dell'input (blur / tasto invio, ecc...). Mantengo lo stesso nome dell'evento dei <val-*> (inputChange) per retrocompatibilità.
|
|
2217
|
+
*
|
|
2218
|
+
* Non posso tenerlo protected altrimenti posso eseguirlo solo dal .ts e non dall' .html
|
|
2219
|
+
*/
|
|
2220
|
+
BaseFormControl.prototype.finalized = function () {
|
|
2221
|
+
this.inputFinalized.emit();
|
|
2222
|
+
console.log("Control Value Finalized: " + this.GeneratedName);
|
|
2223
|
+
};
|
|
2124
2224
|
return BaseFormControl;
|
|
2125
2225
|
}());
|
|
2126
2226
|
BaseFormControl.decorators = [
|
|
@@ -2136,7 +2236,10 @@
|
|
|
2136
2236
|
{ type: Boolean }
|
|
2137
2237
|
]; };
|
|
2138
2238
|
BaseFormControl.propDecorators = {
|
|
2239
|
+
FocusSubject: [{ type: core.Input }],
|
|
2240
|
+
FieldAppearence: [{ type: core.Input }],
|
|
2139
2241
|
FormLayout: [{ type: core.Input }],
|
|
2242
|
+
EmitPendingChanges: [{ type: core.Input }],
|
|
2140
2243
|
Validation: [{ type: core.Input }],
|
|
2141
2244
|
Placeholder: [{ type: core.Input }],
|
|
2142
2245
|
FormGroupClass: [{ type: core.Input }],
|
|
@@ -2155,7 +2258,8 @@
|
|
|
2155
2258
|
_validationControl: [{ type: core.ViewChild, args: ["validationControl", { static: false },] }],
|
|
2156
2259
|
validationControl_static: [{ type: core.ViewChild, args: ["validationControl", { static: true },] }],
|
|
2157
2260
|
inputChange: [{ type: core.Output }],
|
|
2158
|
-
inputFocus: [{ type: core.Output }]
|
|
2261
|
+
inputFocus: [{ type: core.Output }],
|
|
2262
|
+
inputFinalized: [{ type: core.Output }]
|
|
2159
2263
|
};
|
|
2160
2264
|
|
|
2161
2265
|
/**
|
|
@@ -2307,7 +2411,7 @@
|
|
|
2307
2411
|
FormDateTimeComponent.decorators = [
|
|
2308
2412
|
{ type: core.Component, args: [{
|
|
2309
2413
|
selector: "form-datetime",
|
|
2310
|
-
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-datetime [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [id]=\"GeneratedName\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey' : ''\"\r\n [useJsDates]=\"JsDates\"\r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\">\r\n </val-datetime>\r\n</ng-template>",
|
|
2414
|
+
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-datetime [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [id]=\"GeneratedName\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey' : ''\"\r\n [useJsDates]=\"JsDates\"\r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\"\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 </val-datetime>\r\n</ng-template>",
|
|
2311
2415
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
2312
2416
|
},] }
|
|
2313
2417
|
];
|
|
@@ -2525,6 +2629,25 @@
|
|
|
2525
2629
|
* Metodo richiamato quando viene modificato il modello del campo di input
|
|
2526
2630
|
*/
|
|
2527
2631
|
FormAdaptiveComponent.prototype.changed = function () {
|
|
2632
|
+
var toEmit = this.getModelToEmit();
|
|
2633
|
+
if (this.Type == "autocomplete")
|
|
2634
|
+
this.ignoreNextWriteValue = true;
|
|
2635
|
+
if (this.EmitPendingChanges)
|
|
2636
|
+
_super.prototype.changed.call(this, toEmit);
|
|
2637
|
+
};
|
|
2638
|
+
FormAdaptiveComponent.prototype.finalized = function () {
|
|
2639
|
+
_super.prototype.finalized.call(this);
|
|
2640
|
+
};
|
|
2641
|
+
/**
|
|
2642
|
+
* Metodo richiamato quando viene selezionato il campo col mouse
|
|
2643
|
+
*/
|
|
2644
|
+
FormAdaptiveComponent.prototype.focused = function (event) {
|
|
2645
|
+
_super.prototype.focused.call(this, event);
|
|
2646
|
+
};
|
|
2647
|
+
/**
|
|
2648
|
+
* Effettua gli aggiustamenti dati del caso ed emette il modello corretto
|
|
2649
|
+
*/
|
|
2650
|
+
FormAdaptiveComponent.prototype.getModelToEmit = function () {
|
|
2528
2651
|
var toEmit = this.Model ? JSON.parse(JSON.stringify(this.Model)) : null;
|
|
2529
2652
|
if ((this.Type == "float" || this.Type == "number") && toEmit)
|
|
2530
2653
|
toEmit = toEmit.replace(".", "").replace(",", ".");
|
|
@@ -2534,12 +2657,7 @@
|
|
|
2534
2657
|
var toEmit = this.dateAdapter.clone(this.Model);
|
|
2535
2658
|
toEmit = toEmit.format("HH:mm:ss");
|
|
2536
2659
|
}
|
|
2537
|
-
|
|
2538
|
-
this.ignoreNextWriteValue = true;
|
|
2539
|
-
_super.prototype.changed.call(this, toEmit);
|
|
2540
|
-
};
|
|
2541
|
-
FormAdaptiveComponent.prototype.focused = function (event) {
|
|
2542
|
-
_super.prototype.focused.call(this, event);
|
|
2660
|
+
return toEmit;
|
|
2543
2661
|
};
|
|
2544
2662
|
/**
|
|
2545
2663
|
* Helper per gestire la modifica del file attualmente bindato. Ovviamente funziona solo qualora il **Type** fosse **file**
|
|
@@ -2593,7 +2711,7 @@
|
|
|
2593
2711
|
{ type: core.Component, args: [{
|
|
2594
2712
|
selector: "form-adaptive",
|
|
2595
2713
|
providers: [{ provide: localizations.LocalizationService, useClass: FormAdaptiveComponentLoc }],
|
|
2596
|
-
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <div *ngIf=\"!Type\" class=\"app-margin-top-5\">\r\n <em>{{TypeMissingMessage}}</em>\r\n </div>\r\n \r\n <!--Se currency-->\r\n <div *ngIf=\"Type == 'currency'\">\r\n <val-currency [forceInvalid]=\"ForcedError\"\r\n [CurrencyOptions]=\"{ prefix: '', thousands: '.', decimal: ',', precision: Precision, align: Alignment }\" [noValidate]=\"!Validation\"\r\n
|
|
2714
|
+
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <div *ngIf=\"!Type\" class=\"app-margin-top-5\">\r\n <em>{{TypeMissingMessage}}</em>\r\n </div>\r\n \r\n <!--Se currency-->\r\n <div *ngIf=\"Type == 'currency'\">\r\n <val-currency #validationControl=\"ngModel\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [forceInvalid]=\"ForcedError\"\r\n [CurrencyOptions]=\"{ prefix: '', thousands: '.', decimal: ',', precision: Precision, align: Alignment }\" [noValidate]=\"!Validation\"\r\n type=\"text\" [readonly]=\"Readonly\" [submitted]=\"Form?.submitted\" [required]=\"Required\" [(ngModel)]=\"Model\" [id]=\"GeneratedName\" name=\"{{GeneratedName}}\" autocomplete=\"off\" (inputChange)=\"changed();\" (inputFocus)=\"focused($event);\" (inputFinalized)=\"finalized()\"></val-currency>\r\n </div>\r\n <!--Se data-->\r\n <div *ngIf=\"Type == 'date'\">\r\n <val-date #validationControl=\"ngModel\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [forceInvalid]=\"ForcedError\" [noValidate]=\"!Validation\" [readonly]=\"Readonly\" [submitted]=\"Form?.submitted\" [required]=\"Required\" [(ngModel)]=\"Model\" [id]=\"GeneratedName\" name=\"{{GeneratedName}}\" autocomplete=\"off\" (inputChange)=\"changed();\" (inputFocus)=\"focused($event);\" (inputFinalized)=\"finalized()\"></val-date>\r\n </div>\r\n <!--Se stringa-->\r\n <div *ngIf=\"Type == 'string'\">\r\n <val-input #validationControl=\"ngModel\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [forceInvalid]=\"ForcedError\" [noValidate]=\"!Validation\" [readonly]=\"Readonly\" [submitted]=\"Form?.submitted\" type=\"text\" pattern=\"{{Pattern || ''}}\" [required]=\"Required\" [(ngModel)]=\"Model\" [id]=\"GeneratedName\" name=\"{{GeneratedName}}\" autocomplete=\"off\" (inputChange)=\"changed();\" (inputFocus)=\"focused($event);\" (inputFinalized)=\"finalized()\"></val-input>\r\n </div>\r\n <!--Se numero-->\r\n <div *ngIf=\"Type == 'float' || Type == 'number'\">\r\n <val-input #validationControl=\"ngModel\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [forceInvalid]=\"ForcedError\" [noValidate]=\"!Validation\" [readonly]=\"Readonly\" [submitted]=\"Form?.submitted\" type=\"text\" pattern=\"{{Pattern || '^([0-9]*[,])?[0-9]+$'}}\" [required]=\"Required\" [(ngModel)]=\"Model\" [id]=\"GeneratedName\" name=\"{{GeneratedName}}\" autocomplete=\"off\" (inputChange)=\"changed();\" (inputFocus)=\"focused($event);\" (inputFinalized)=\"finalized()\"></val-input>\r\n </div>\r\n <!--Se numero intero-->\r\n <div *ngIf=\"Type == 'int'\">\r\n <val-input #validationControl=\"ngModel\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [forceInvalid]=\"ForcedError\" [noValidate]=\"!Validation\" [readonly]=\"Readonly\" [submitted]=\"Form?.submitted\" type=\"text\" pattern=\"{{Pattern || '^[0-9]\\\\d*$'}}\" [required]=\"Required\" [(ngModel)]=\"Model\" [id]=\"GeneratedName\" name=\"{{GeneratedName}}\" autocomplete=\"off\" (inputChange)=\"changed();\" (inputFocus)=\"focused($event);\" (inputFinalized)=\"finalized()\"></val-input>\r\n </div>\r\n <!--Se boolean-->\r\n <div class=\"m-t-5\" *ngIf=\"Type == 'boolean'\">\r\n <input #validationControl=\"ngModel\" [readonly]=\"Readonly\" type=\"checkbox\" class=\"app-pointer\" [(ngModel)]=\"Model\" id=\"{{GeneratedName}}\" name=\"{{GeneratedName}}\" (ngModelChange)=\"changed(); finalized();\" (click)=\"focused($event);\" />\r\n </div>\r\n <!--Se enum-->\r\n <div *ngIf=\"Type == 'enum'\">\r\n <val-select #validationControl=\"ngModel\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [forceInvalid]=\"ForcedError\" [noValidate]=\"!Validation\" [readonly]=\"Readonly\" [submitted]=\"Form?.submitted\" [placeHolderValue]=\"''\" [placeholder]=\"Required ? ('Select' | localize : lc) + '...' : Placeholder\" [required]=\"Required\" [(ngModel)]=\"Model\" (inputChange)=\"changed();\" (inputFocus)=\"focused($event);\" (inputFinalized)=\"finalized()\" [id]=\"GeneratedName\" name=\"{{GeneratedName}}\">\r\n <option *ngFor=\"let val of BoundSource\" [value]=\"val.id\">{{val.description}}</option>\r\n </val-select>\r\n </div>\r\n <!--Se autocomplete-->\r\n <div *ngIf=\"Type == 'autocomplete'\">\r\n <val-autocomplete #validationControl=\"ngModel\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [forceInvalid]=\"ForcedError\" [noValidate]=\"!Validation\" [readonly]=\"Readonly\" [submitted]=\"Form?.submitted\" [required]=\"Required\" [placeholder]=\"Required ? ('Select' | localize : lc) + '...' : Placeholder\" [(ngModel)]=\"Model\" [id]=\"GeneratedName\" name=\"{{GeneratedName}}\" [FilteredSource]=\"FilteredBoundSource\" (inputChange)=\"filterSource($event); changed();\" (inputFocus)=\"focused($event);\" (inputFinalized)=\"finalized()\"></val-autocomplete>\r\n </div>\r\n <!--Se date time-->\r\n <div *ngIf=\"Type == 'datetime'\">\r\n <val-datetime #validationControl=\"ngModel\" [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [forceInvalid]=\"ForcedError\" [noValidate]=\"!Validation\" [readonly]=\"Readonly\" [submitted]=\"Form?.submitted\" [required]=\"Required\" [(ngModel)]=\"Model\" [id]=\"GeneratedName\" name=\"{{GeneratedName}}\" autocomplete=\"off\" (inputChange)=\"changed();\" (inputFocus)=\"focused($event);\" (inputFinalized)=\"finalized()\"></val-datetime>\r\n </div>\r\n <!--Se time-->\r\n <div *ngIf=\"Type == 'time'\">\r\n <ngx-mat-timepicker name=\"val-time\" #elementRef #baseInput=\"ngModel\" [(ngModel)]=\"Model\" [disabled]=\"Readonly\"\r\n [showSpinners]=\"false\" [stepHour]=\"2\" [stepMinute]=\"5\" [stepSecond]=\"30\"\r\n [showSeconds]=\"true\" (ngModelChange)=\"changed()\" #validationControl=\"ngModel\">\r\n </ngx-mat-timepicker>\r\n </div>\r\n <!--Se file-->\r\n <div *ngIf=\"Type == 'file'\">\r\n <div class=\"input-group file-upload\">\r\n <input type=\"file\" (change)=\"fileChange()\" #fileInput id=\"{{GeneratedName}}\" class=\"file-upload-btn app-pointer\" [multiple]=\"null\"/>\r\n <input type=\"text\" [class.frm-padding-left-22]=\"AllowDownload && ModelFile.filename && ModelFile.fileb64\" class=\"form-control checking-field\" placeholder=\"{{'Select a file' | localize : lc}}...\" [(ngModel)]=\"ModelFile.filename\" name=\"dsfile\" #validationControl=\"ngModel\" [required]=\"Required\"/>\r\n \r\n <a class=\"fa fa-download app-pointer app-input-icon\" *ngIf=\"AllowDownload && ModelFile.filename && ModelFile.fileb64\" (click)=\"downloadAttachment()\"></a>\r\n <i class=\"fa fa-times delete-file\" (click)=\"fileChange(true)\" *ngIf=\"ModelFile.filename\"></i>\r\n <span class=\"input-group-btn\">\r\n <button class=\"btn btn-primary btn-file-upload\" type=\"button\"><i class=\"fa fa-upload\"></i></button>\r\n </span>\r\n </div>\r\n </div>\r\n</ng-template>",
|
|
2597
2715
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
2598
2716
|
styles: [".frm-padding-left-22{padding-left:22px}"]
|
|
2599
2717
|
},] }
|
|
@@ -2852,7 +2970,7 @@
|
|
|
2852
2970
|
FormCheckboxComponent.decorators = [
|
|
2853
2971
|
{ type: core.Component, args: [{
|
|
2854
2972
|
selector: "form-checkbox",
|
|
2855
|
-
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}} m-t-5\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <input class=\"app-pointer\" [disabled]=\"Readonly ? true : null\" type=\"checkbox\" [(ngModel)]=\"Model\" id=\"{{GeneratedName}}\" name=\"{{GeneratedName}}\" #validationControl=\"ngModel\" (ngModelChange)=\"changed()
|
|
2973
|
+
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}} m-t-5\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <input class=\"app-pointer\" [disabled]=\"Readonly ? true : null\" type=\"checkbox\" [(ngModel)]=\"Model\" id=\"{{GeneratedName}}\" name=\"{{GeneratedName}}\" #validationControl=\"ngModel\" (ngModelChange)=\"changed(); finalized()\" (click)=\"focused($event)\" />\r\n</ng-template>",
|
|
2856
2974
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
2857
2975
|
},] }
|
|
2858
2976
|
];
|
|
@@ -2892,7 +3010,7 @@
|
|
|
2892
3010
|
FormDateComponent.decorators = [
|
|
2893
3011
|
{ type: core.Component, args: [{
|
|
2894
3012
|
selector: "form-date",
|
|
2895
|
-
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-date [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\"\r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey' : ''\"\r\n [useJsDates]=\"JsDates\"\r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\">\r\n </val-date>\r\n</ng-template>",
|
|
3013
|
+
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-date [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\"\r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey' : ''\"\r\n [useJsDates]=\"JsDates\"\r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\"\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 </val-date>\r\n</ng-template>",
|
|
2896
3014
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
2897
3015
|
},] }
|
|
2898
3016
|
];
|
|
@@ -2958,7 +3076,7 @@
|
|
|
2958
3076
|
FormInputComponent.decorators = [
|
|
2959
3077
|
{ type: core.Component, args: [{
|
|
2960
3078
|
selector: "form-input",
|
|
2961
|
-
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-input [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n type=\"text\"\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 [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [Password]=\"Password\">\r\n <ng-container *ngIf=\"HasSuffix\">\r\n <ng-template #suffix_internal>\r\n <button type=\"button\" class=\"mat-button mat-icon-button mat-button-base mat-icon-button-override mat-icon-button-override-suffix\"\r\n matSuffix (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"HasPrefix\">\r\n <ng-template #prefix_internal>\r\n <button type=\"button\" class=\"mat-button mat-icon-button mat-button-base mat-icon-button-override mat-icon-button-override-prefix\"\r\n matPrefix (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n </val-input>\r\n</ng-template>",
|
|
3079
|
+
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-input [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n type=\"text\"\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 <button type=\"button\" class=\"mat-button mat-icon-button mat-button-base mat-icon-button-override mat-icon-button-override-suffix\"\r\n matSuffix (click)=\"onSuffixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"suffix\"></ng-container>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n <ng-container *ngIf=\"HasPrefix\">\r\n <ng-template #prefix_internal>\r\n <button type=\"button\" class=\"mat-button mat-icon-button mat-button-base mat-icon-button-override mat-icon-button-override-prefix\"\r\n matPrefix (click)=\"onPrefixAction.emit(); $event.stopPropagation(); $event.preventDefault();\">\r\n <ng-container *ngTemplateOutlet=\"prefix\"></ng-container>\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n </val-input>\r\n</ng-template>",
|
|
2962
3080
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
2963
3081
|
},] }
|
|
2964
3082
|
];
|
|
@@ -3085,7 +3203,7 @@
|
|
|
3085
3203
|
{ type: core.Component, args: [{
|
|
3086
3204
|
selector: "form-select",
|
|
3087
3205
|
providers: [{ provide: localizations.LocalizationService, useClass: FormSelectComponentLoc }],
|
|
3088
|
-
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <!-- Select vuota per quando non ho Sorgenti dati da cui selezionare. Uguale identica alla piena ma senza option\r\n Purtroppo devono essere due componenti distinti perch\u00E9 una select una volta creata non riesce pi\u00F9 ad adattarsi ai cambi di options -->\r\n <val-select *ngIf=\"!BoundSource || BoundSource.length == 0\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n #validationControl=\"ngModel\">\r\n </val-select>\r\n\r\n <!-- Select vera e propria per quando arrivano i dati -->\r\n <val-select *ngIf=\"BoundSource && BoundSource.length > 0\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n #validationControl=\"ngModel\">\r\n <option *ngFor=\"let obj of BoundSource\" [value]=\"obj.id\">{{obj.description}}</option>\r\n </val-select>\r\n</ng-template>",
|
|
3206
|
+
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n\r\n <!-- Select vuota per quando non ho Sorgenti dati da cui selezionare. Uguale identica alla piena ma senza option\r\n Purtroppo devono essere due componenti distinti perch\u00E9 una select una volta creata non riesce pi\u00F9 ad adattarsi ai cambi di options -->\r\n <val-select *ngIf=\"!BoundSource || BoundSource.length == 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n #validationControl=\"ngModel\">\r\n </val-select>\r\n\r\n <!-- Select vera e propria per quando arrivano i dati -->\r\n <val-select *ngIf=\"BoundSource && BoundSource.length > 0\"\r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [required]=\"Required ? 'required' : null\"\r\n [noValidate]=\"!Validation\"\r\n [readonly]=\"Readonly\"\r\n [forceInvalid]=\"ForcedError\"\r\n [label]=\"SelectLabel\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [showValidationSymbol]=\"ShowValidationSymbol\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [placeHolderValue]=\"PlaceholderValue\"\r\n [submitted]=\"Form?.submitted\"\r\n [emptyFieldValue]=\"Required || Placeholder || SelectLabel ? EmptyFieldValue : ''\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n (inputChange)=\"Model = $event == EmptyFieldValue ? (Required? PlaceholderValue : '') : $event; changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n #validationControl=\"ngModel\">\r\n <option *ngFor=\"let obj of BoundSource\" [value]=\"obj.id\">{{obj.description}}</option>\r\n </val-select>\r\n</ng-template>",
|
|
3089
3207
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
3090
3208
|
},] }
|
|
3091
3209
|
];
|
|
@@ -3253,6 +3371,7 @@
|
|
|
3253
3371
|
else
|
|
3254
3372
|
toEmit = this.Model.map(function (m) { return ({ id: m.id, description: m.itemName }); });
|
|
3255
3373
|
_super.prototype.changed.call(this, toEmit);
|
|
3374
|
+
_super.prototype.finalized.call(this);
|
|
3256
3375
|
};
|
|
3257
3376
|
return FormMultiSelectComponent;
|
|
3258
3377
|
}(BaseFormControl));
|
|
@@ -3302,7 +3421,7 @@
|
|
|
3302
3421
|
FormTextareaComponent.decorators = [
|
|
3303
3422
|
{ type: core.Component, args: [{
|
|
3304
3423
|
selector: "form-textarea",
|
|
3305
|
-
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-textarea \r\n [noValidate]=\"!Validation\" \r\n [submitted]=\"Form?.submitted\" \r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\" \r\n [rows]=\"Rows\" \r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey app-no-resize' : 'app-no-resize'\" \r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\" \r\n autocomplete=\"off\" \r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\" \r\n #validationControl=\"ngModel\" \r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n >\r\n </val-textarea>\r\n</ng-template>",
|
|
3424
|
+
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout && BoundSource\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-textarea \r\n [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\"\r\n [noValidate]=\"!Validation\" \r\n [submitted]=\"Form?.submitted\" \r\n [forceInvalid]=\"ForcedError\"\r\n [id]=\"GeneratedName\" \r\n [rows]=\"Rows\" \r\n [readonly]=\"Readonly\"\r\n [class]=\"Readonly ? 'app-bg-lightgrey app-no-resize' : 'app-no-resize'\" \r\n [(ngModel)]=\"Model\"\r\n name=\"{{GeneratedName}}\" \r\n autocomplete=\"off\" \r\n [placeholder]=\"Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\" \r\n #validationControl=\"ngModel\" \r\n (inputChange)=\"changed();\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n >\r\n </val-textarea>\r\n</ng-template>",
|
|
3306
3425
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
3307
3426
|
},] }
|
|
3308
3427
|
];
|
|
@@ -3500,7 +3619,7 @@
|
|
|
3500
3619
|
FormAutocompleteComponent.decorators = [
|
|
3501
3620
|
{ type: core.Component, args: [{
|
|
3502
3621
|
selector: "form-autocomplete",
|
|
3503
|
-
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-autocomplete [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [label]=\"SelectLabel\"\r\n type=\"text\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"filterSource($event);\"\r\n (inputFocus)=\"focused($event);\"\r\n (optionChange)=\"changed($event);\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [FilteredSource]=\"FilteredBoundSource\"\r\n >\r\n </val-autocomplete>\r\n</ng-template>",
|
|
3622
|
+
template: "<ng-container *ngIf=\"!FormLayout\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n</ng-container>\r\n\r\n<div *ngIf=\"FormLayout\" class=\"form-group row {{FormGroupClass}}\" [class.app-margin-bottom-0]=\"Last\">\r\n <label class=\"col-md-{{LabelColWidth}} m-t-5\">{{Label}}{{Required ? '*' : ''}}:</label>\r\n <div class=\"col-md-{{InputColWidth}}\">\r\n <ng-container *ngTemplateOutlet=\"controlTemplate\"></ng-container>\r\n </div>\r\n <div class=\"clearfix\"></div>\r\n</div>\r\n\r\n<ng-template #controlTemplate>\r\n <val-autocomplete [FocusSubject]=\"FocusSubject\" [FieldAppearence]=\"FieldAppearence\" [noValidate]=\"!Validation\"\r\n [submitted]=\"Form?.submitted\"\r\n [forceInvalid]=\"ForcedError\"\r\n [readonly]=\"Readonly\"\r\n [label]=\"SelectLabel\"\r\n type=\"text\"\r\n [(ngModel)]=\"Model\"\r\n [id]=\"GeneratedName\"\r\n name=\"{{GeneratedName}}\"\r\n #validationControl=\"ngModel\"\r\n (inputChange)=\"filterSource($event);\"\r\n (inputFocus)=\"focused($event);\"\r\n (inputFinalized)=\"finalized()\"\r\n (optionChange)=\"changed($event);\"\r\n [placeholder]=\"Required ? ((RequiredPlaceholder != null ? RequiredPlaceholder : ('Select' | localize : lc) + '...')) : Placeholder\"\r\n [validationFailed]=\"FailedValidationMessage\"\r\n [FilteredSource]=\"FilteredBoundSource\"\r\n >\r\n </val-autocomplete>\r\n</ng-template>",
|
|
3504
3623
|
providers: [{ provide: localizations.LocalizationService, useClass: FormAutocompleteComponentLoc }],
|
|
3505
3624
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
3506
3625
|
},] }
|