@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.
Files changed (32) hide show
  1. package/bundles/esfaenza-forms-and-validations.umd.js +146 -27
  2. package/bundles/esfaenza-forms-and-validations.umd.js.map +1 -1
  3. package/esfaenza-forms-and-validations.metadata.json +1 -1
  4. package/esm2015/lib/forms/base-form-control.js +28 -2
  5. package/esm2015/lib/forms/form-adaptive/form-adaptive.component.js +22 -8
  6. package/esm2015/lib/forms/form-autocomplete/form-autocomplete.component.js +2 -2
  7. package/esm2015/lib/forms/form-checkbox/form-checkbox.component.js +2 -2
  8. package/esm2015/lib/forms/form-date/form-date.component.js +2 -2
  9. package/esm2015/lib/forms/form-datetime/form-datetime.component.js +2 -2
  10. package/esm2015/lib/forms/form-input/form-input.component.js +2 -2
  11. package/esm2015/lib/forms/form-multiselect/form-multiselect.component.js +2 -1
  12. package/esm2015/lib/forms/form-select/form-select.component.js +2 -2
  13. package/esm2015/lib/forms/form-textarea/form-textarea.component.js +2 -2
  14. package/esm2015/lib/validations/base-validation.js +37 -2
  15. package/esm2015/lib/validations/validation-autocomplete/validation-autocomplete.component.js +7 -7
  16. package/esm2015/lib/validations/validation-currency/validation-currency.component.js +14 -2
  17. package/esm2015/lib/validations/validation-date/validation-date.component.js +9 -2
  18. package/esm2015/lib/validations/validation-datetime/validation-datetime.component.js +9 -2
  19. package/esm2015/lib/validations/validation-input/validation-input.component.js +4 -2
  20. package/esm2015/lib/validations/validation-select/validation-select.component.js +4 -2
  21. package/esm2015/lib/validations/validation-text-area/validation-text-area.component.js +14 -2
  22. package/fesm2015/esfaenza-forms-and-validations.js +145 -27
  23. package/fesm2015/esfaenza-forms-and-validations.js.map +1 -1
  24. package/lib/forms/base-form-control.d.ts +24 -0
  25. package/lib/forms/form-adaptive/form-adaptive.component.d.ts +8 -0
  26. package/lib/validations/base-validation.d.ts +35 -2
  27. package/lib/validations/validation-autocomplete/validation-autocomplete.component.d.ts +2 -3
  28. package/lib/validations/validation-currency/validation-currency.component.d.ts +8 -0
  29. package/lib/validations/validation-date/validation-date.component.d.ts +4 -0
  30. package/lib/validations/validation-datetime/validation-datetime.component.d.ts +4 -0
  31. package/lib/validations/validation-text-area/validation-text-area.component.d.ts +8 -0
  32. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  import { ControlValueAccessor, NgControl, NgForm, NgModel } from "@angular/forms";
2
2
  import { EventEmitter, ChangeDetectorRef } from "@angular/core";
3
3
  import { AccessControlService, ComponentContext } from "@esfaenza/access-control";
4
+ import { Subject } from "rxjs";
4
5
  /**
5
6
  * Componente base da cui tutti i componenti Form implementano
6
7
  */
@@ -59,10 +60,22 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
59
60
  * Se non lo sono, il campo risulterà in sola lettura
60
61
  */
61
62
  private AppContextOwnership;
63
+ /**
64
+ * Subject a cui l'oggetto interno si collega per effettuare il focus dell'elemento input sottostante
65
+ */
66
+ FocusSubject: Subject<void>;
67
+ /**
68
+ * Modalità in cui viene mostrato il campo, 1-1 rispetto alle definizioni di Angular Material
69
+ */
70
+ FieldAppearence: "legacy" | "standard" | "fill" | "outline";
62
71
  /**
63
72
  * Utilizza o meno il Layout di un form (Label con input di fianco), se false mostra solo l'input
64
73
  */
65
74
  FormLayout: boolean;
75
+ /**
76
+ * Definisce se richiamare l'EventEmitter **inputChange** in maniera classica (true) o solo per la change considerate definitive come tasto invio / blur / ecc... (false)
77
+ */
78
+ EmitPendingChanges: boolean;
66
79
  /**
67
80
  * Attiva o disattiva la validazione per questo componente
68
81
  */
@@ -171,6 +184,10 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
171
184
  * Evento chiamato al focus del campo di testo/combo/quelcheè, riemitta l'evento originale Javascript
172
185
  */
173
186
  inputFocus: EventEmitter<any>;
187
+ /**
188
+ * Evento chiamato al finalize del campo di testo/combo/quelcheè
189
+ */
190
+ inputFinalized: EventEmitter<any>;
174
191
  /**
175
192
  * Cache delle condizioni scritte tipo :prop?(Roba con {prop})
176
193
  */
@@ -273,6 +290,13 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
273
290
  * Non posso tenerlo protected altrimenti posso eseguirlo solo dal .ts e non dall' .html
274
291
  */
275
292
  focused(event: any): void;
293
+ /**
294
+ * @ignore
295
+ * Classico "spara fuori" sulla finalizzazione del valore dell'input (blur / tasto invio, ecc...). Mantengo lo stesso nome dell'evento dei <val-*> (inputChange) per retrocompatibilità.
296
+ *
297
+ * Non posso tenerlo protected altrimenti posso eseguirlo solo dal .ts e non dall' .html
298
+ */
299
+ finalized(): void;
276
300
  /**
277
301
  * @ignore
278
302
  */
@@ -107,7 +107,15 @@ export declare class FormAdaptiveComponent extends BaseFormControl implements Co
107
107
  * Metodo richiamato quando viene modificato il modello del campo di input
108
108
  */
109
109
  changed(): void;
110
+ finalized(): void;
111
+ /**
112
+ * Metodo richiamato quando viene selezionato il campo col mouse
113
+ */
110
114
  focused(event: any): void;
115
+ /**
116
+ * Effettua gli aggiustamenti dati del caso ed emette il modello corretto
117
+ */
118
+ private getModelToEmit;
111
119
  /**
112
120
  * Helper per gestire la modifica del file attualmente bindato. Ovviamente funziona solo qualora il **Type** fosse **file**
113
121
  *
@@ -1,7 +1,8 @@
1
- import { EventEmitter } from "@angular/core";
1
+ import { EventEmitter, ElementRef } from "@angular/core";
2
2
  import { NgModel } from "@angular/forms";
3
3
  import { LocalizationService } from "@esfaenza/localizations";
4
4
  import { TooltipDirective } from "ngx-bootstrap/tooltip";
5
+ import { Subject } from "rxjs";
5
6
  /**
6
7
  * Classe astratta base che contiene le logiche / proprietà in comune a tutti i validatori
7
8
  *
@@ -34,6 +35,10 @@ export declare abstract class BaseValidation {
34
35
  * @param {TooltipDirective} comp Elemento HTML a cui è applicata la direttiva del tooltip
35
36
  */
36
37
  set tooltip_static(comp: TooltipDirective);
38
+ /**
39
+ * Elemento HTML rappresentante l'Input
40
+ */
41
+ htmlInput: ElementRef;
37
42
  /**
38
43
  * Query che raccoglie l'input o direttiva che contiene il valore in maniera statica (solo all'inizio)
39
44
  */
@@ -44,6 +49,10 @@ export declare abstract class BaseValidation {
44
49
  * @param {NgModel} comp Elemento HTML associato al ngModel del componente
45
50
  */
46
51
  set baseInput_static(comp: NgModel);
52
+ /**
53
+ * Subject a cui l'oggetto interno si collega per effettuare il focus dell'elemento input sottostante
54
+ */
55
+ FocusSubject: Subject<void>;
47
56
  /**
48
57
  * Indica se di default deve valutare il messaggio di errore in base al validatore che fallisce.
49
58
  *
@@ -51,6 +60,10 @@ export declare abstract class BaseValidation {
51
60
  * un eventuale pattern validator scriverà che il formato dell'input è invalido
52
61
  */
53
62
  InferErrorMessages: boolean;
63
+ /**
64
+ * Modalità in cui viene mostrato il campo, 1-1 rispetto alle definizioni di Angular Material
65
+ */
66
+ FieldAppearence: "legacy" | "standard" | "fill" | "outline";
54
67
  /**
55
68
  * Messaggio da mostrare se la validazione fallisce.
56
69
  *
@@ -102,9 +115,13 @@ export declare abstract class BaseValidation {
102
115
  */
103
116
  inputChange: EventEmitter<string>;
104
117
  /**
105
- * Evento che sostituisce l'ngModelChange facendolo funzionare in maniera un po' più consistente
118
+ * Evento che indica il focus avvenuto su un controllo
106
119
  */
107
120
  inputFocus: EventEmitter<any>;
121
+ /**
122
+ * Evento che indica la finalizzazione del valore avvenuta su un controllo
123
+ */
124
+ inputFinalized: EventEmitter<any>;
108
125
  /**
109
126
  * Imposta il componente come "submitted" scatenandone le validazioni ed eventualmente la visualizzazione del tooltip di errore
110
127
  *
@@ -156,4 +173,20 @@ export declare abstract class BaseValidation {
156
173
  * @param {any} toEmit valore da propagare all'esterno
157
174
  */
158
175
  onFocus(toEmit: any): void;
176
+ /**
177
+ * Finalizzazione Input
178
+ */
179
+ onFinalize(): void;
180
+ /**
181
+ * Subscription alle richieste di focus
182
+ */
183
+ observable: any;
184
+ /**
185
+ * Registra il Subject per ricevere le richieste di Focus dall'esterno
186
+ */
187
+ registerFocusRequest(): any;
188
+ /**
189
+ * Deregistra il Subject delle richieste di focus
190
+ */
191
+ deregisterFocusRequest(): void;
159
192
  }
@@ -1,5 +1,5 @@
1
1
  import { ControlValueAccessor } from "@angular/forms";
2
- import { ChangeDetectorRef, EventEmitter, Injector } from "@angular/core";
2
+ import { EventEmitter, Injector } from "@angular/core";
3
3
  import { LocalizationService } from "@esfaenza/localizations";
4
4
  import { BaseValidation } from "../base-validation";
5
5
  /**
@@ -10,7 +10,6 @@ export declare class ValidationAutocompleteComponent extends BaseValidation impl
10
10
  private _asyncValidators;
11
11
  private injector;
12
12
  protected lc: LocalizationService;
13
- private cdr;
14
13
  /**
15
14
  * Sorgente da cui scegliere valori filtrata in base a quello che ha scritto l'utente
16
15
  */
@@ -41,7 +40,7 @@ export declare class ValidationAutocompleteComponent extends BaseValidation impl
41
40
  /**
42
41
  * @ignore
43
42
  */
44
- constructor(_validators: Array<any>, _asyncValidators: Array<any>, injector: Injector, lc: LocalizationService, cdr: ChangeDetectorRef);
43
+ constructor(_validators: Array<any>, _asyncValidators: Array<any>, injector: Injector, lc: LocalizationService);
45
44
  /**
46
45
  * @ignore
47
46
  */
@@ -14,4 +14,12 @@ export declare class ValidationCurrencyComponent extends ValidationInputComponen
14
14
  * @ignore
15
15
  */
16
16
  constructor(cdr: ChangeDetectorRef, validators: Array<any>, asyncValidators: Array<any>, injector: Injector, lc: LocalizationService);
17
+ /**
18
+ * @ignore
19
+ */
20
+ ngOnInit(): void;
21
+ /**
22
+ * @ignore
23
+ */
24
+ ngOnDestroy(): void;
17
25
  }
@@ -37,6 +37,10 @@ export declare class ValidationDateComponent extends BaseValidation implements C
37
37
  * @ignore
38
38
  */
39
39
  ngOnInit(): void;
40
+ /**
41
+ * @ignore
42
+ */
43
+ ngOnDestroy(): void;
40
44
  /**
41
45
  * @ignore
42
46
  */
@@ -67,6 +67,10 @@ export declare class ValidationDateTimeComponent extends BaseValidation implemen
67
67
  * @ignore
68
68
  */
69
69
  ngOnInit(): void;
70
+ /**
71
+ * @ignore
72
+ */
73
+ ngOnDestroy(): void;
70
74
  /**
71
75
  * @ignore
72
76
  */
@@ -14,4 +14,12 @@ export declare class ValidationTextAreaComponent extends ValidationInputComponen
14
14
  * @ignore
15
15
  */
16
16
  constructor(cdr: ChangeDetectorRef, validators: Array<any>, asyncValidators: Array<any>, injector: Injector, lc: LocalizationService);
17
+ /**
18
+ * @ignore
19
+ */
20
+ ngOnInit(): void;
21
+ /**
22
+ * @ignore
23
+ */
24
+ ngOnDestroy(): void;
17
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/forms-and-validations",
3
- "version": "11.2.51",
3
+ "version": "11.2.54",
4
4
  "private": false,
5
5
  "dependencies": {
6
6
  "tslib": "^2.0.0"