@esfaenza/forms-and-validations 13.3.7 → 13.3.10

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 (37) hide show
  1. package/esm2020/lib/forms/base-form-control.mjs +22 -11
  2. package/esm2020/lib/forms/form-adaptive/form-adaptive.component.mjs +27 -8
  3. package/esm2020/lib/forms/form-autocomplete/form-autocomplete.component.mjs +52 -8
  4. package/esm2020/lib/forms/form-checkbox/form-checkbox.component.mjs +7 -3
  5. package/esm2020/lib/forms/form-date/form-date.component.mjs +7 -3
  6. package/esm2020/lib/forms/form-datetime/form-datetime.component.mjs +7 -3
  7. package/esm2020/lib/forms/form-file/form-file.component.mjs +7 -4
  8. package/esm2020/lib/forms/form-input/form-input.component.mjs +3 -3
  9. package/esm2020/lib/forms/form-multiselect/form-multiselect.component.mjs +15 -6
  10. package/esm2020/lib/forms/form-select/form-select.component.mjs +10 -5
  11. package/esm2020/lib/forms/form-template/form-template.component.mjs +17 -3
  12. package/esm2020/lib/forms/form-textarea/form-textarea.component.mjs +3 -3
  13. package/esm2020/lib/forms/form-time/form-time.component.mjs +6 -3
  14. package/esm2020/lib/forms-and-validations.module.mjs +14 -1
  15. package/esm2020/lib/validations/base-validation.loc.mjs +2 -1
  16. package/esm2020/lib/validations/validation-autocomplete/validation-autocomplete.component.mjs +12 -34
  17. package/esm2020/lib/validations/validation-autocomplete-multi/validation-autocomplete-multi.component.mjs +199 -0
  18. package/esm2020/lib/validations/validation-input/validation-input.component.mjs +8 -7
  19. package/esm2020/public-api.mjs +2 -1
  20. package/fesm2015/esfaenza-forms-and-validations.mjs +418 -120
  21. package/fesm2015/esfaenza-forms-and-validations.mjs.map +1 -1
  22. package/fesm2020/esfaenza-forms-and-validations.mjs +412 -120
  23. package/fesm2020/esfaenza-forms-and-validations.mjs.map +1 -1
  24. package/lib/forms/base-form-control.d.ts +8 -4
  25. package/lib/forms/form-adaptive/form-adaptive.component.d.ts +2 -0
  26. package/lib/forms/form-autocomplete/form-autocomplete.component.d.ts +12 -1
  27. package/lib/forms/form-checkbox/form-checkbox.component.d.ts +1 -0
  28. package/lib/forms/form-date/form-date.component.d.ts +1 -0
  29. package/lib/forms/form-datetime/form-datetime.component.d.ts +1 -0
  30. package/lib/forms/form-multiselect/form-multiselect.component.d.ts +4 -2
  31. package/lib/forms/form-select/form-select.component.d.ts +1 -0
  32. package/lib/forms/form-template/form-template.component.d.ts +10 -1
  33. package/lib/forms-and-validations.module.d.ts +20 -16
  34. package/lib/validations/validation-autocomplete/validation-autocomplete.component.d.ts +14 -42
  35. package/lib/validations/validation-autocomplete-multi/validation-autocomplete-multi.component.d.ts +81 -0
  36. package/package.json +1 -1
  37. package/public-api.d.ts +1 -0
@@ -55,8 +55,6 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
55
55
  FieldAppearence: "legacy" | "standard" | "fill" | "outline";
56
56
  /** Utilizza o meno il Layout di un form (Label con input di fianco), se false mostra solo l'input */
57
57
  FormLayout: boolean;
58
- /** Indica che la parte input del controllo dev'essere una label readonly e la parte label di titolo dev'essere in bold. Per utilizzare un solo componente sia per la modifica che per il dettaglio */
59
- DisplayMode: boolean;
60
58
  /** Definisce se richiamare l'EventEmitter **inputChange** in maniera classica (true) o solo per la change considerate definitive come tasto invio / blur / ecc... (false) */
61
59
  EmitPendingChanges: boolean;
62
60
  /** Attiva o disattiva la validazione per questo componente */
@@ -83,8 +81,14 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
83
81
  Source: any[];
84
82
  /** Nome della proprietà che contiene l'Id degli oggetti bindati nella **Source** */
85
83
  IdField: string;
84
+ /** Indica che la parte input del controllo dev'essere una label readonly e la parte label di titolo dev'essere in bold. Per utilizzare un solo componente sia per la modifica che per il dettaglio */
85
+ DisplayMode: boolean;
86
+ /** Indica la condizione per cui un elemento in Modalità Display può essere visibile in base a ulteriori controlli */
87
+ DisplayCondition: boolean;
86
88
  /** Template per visualizzare la modalità **DisplayMode** come vuole il programmatore frocio di turno */
87
89
  DisplayModeTemplate: TemplateRef<any>;
90
+ /** Layout del Form quando è in modalità Display. Di default mantiene la formattazione a form */
91
+ DisplayLayout: 'form' | 'inline' | 'hidden';
88
92
  /**
89
93
  * Espressione simil-Angular per cambiare il testo dei componenti che scelgono il proprio modello da una **Source**
90
94
  *
@@ -205,7 +209,7 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
205
209
  *
206
210
  * Non posso tenerlo protected altrimenti posso eseguirlo solo dal .ts e non dall' .html
207
211
  */
208
- changed(forcedValue?: any, markForCheck?: boolean): void;
212
+ changed(forcedValue?: any, markForCheck?: boolean, modelEvaluationHandled?: boolean): void;
209
213
  /**
210
214
  * @ignore
211
215
  * Classico "spara fuori" sul focus. Mantengo lo stesso nome dell'evento dei <val-*> (inputChange) per retrocompatibilità.
@@ -229,5 +233,5 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
229
233
  /** @ignore */
230
234
  abstract onNotNullValueSet(): void;
231
235
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormControl, never>;
232
- static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFormControl, never, never, { "FocusSubject": "FocusSubject"; "FieldAppearence": "FieldAppearence"; "FormLayout": "FormLayout"; "DisplayMode": "DisplayMode"; "EmitPendingChanges": "EmitPendingChanges"; "Validation": "Validation"; "Placeholder": "Placeholder"; "FormGroupClass": "FormGroupClass"; "FailedValidationMessage": "FailedValidationMessage"; "ForcedError": "ForcedError"; "Label": "Label"; "LabelColWidth": "LabelColWidth"; "InputColWidth": "InputColWidth"; "Last": "Last"; "Form": "Form"; "Source": "Source"; "IdField": "IdField"; "DisplayModeTemplate": "DisplayModeTemplate"; "Display": "Display"; "Readonly": "Readonly"; "LabelInputRatio": "LabelInputRatio"; }, { "inputChange": "inputChange"; "inputFocus": "inputFocus"; "inputFinalized": "inputFinalized"; }, never>;
236
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFormControl, never, never, { "FocusSubject": "FocusSubject"; "FieldAppearence": "FieldAppearence"; "FormLayout": "FormLayout"; "EmitPendingChanges": "EmitPendingChanges"; "Validation": "Validation"; "Placeholder": "Placeholder"; "FormGroupClass": "FormGroupClass"; "FailedValidationMessage": "FailedValidationMessage"; "ForcedError": "ForcedError"; "Label": "Label"; "LabelColWidth": "LabelColWidth"; "InputColWidth": "InputColWidth"; "Last": "Last"; "Form": "Form"; "Source": "Source"; "IdField": "IdField"; "DisplayMode": "DisplayMode"; "DisplayCondition": "DisplayCondition"; "DisplayModeTemplate": "DisplayModeTemplate"; "DisplayLayout": "DisplayLayout"; "Display": "Display"; "Readonly": "Readonly"; "LabelInputRatio": "LabelInputRatio"; }, { "inputChange": "inputChange"; "inputFocus": "inputFocus"; "inputFinalized": "inputFinalized"; }, never>;
233
237
  }
@@ -71,6 +71,8 @@ export declare class FormAdaptiveComponent extends BaseFormControl implements Co
71
71
  * @param {string} event Input utente
72
72
  */
73
73
  filterSource(event: string): void;
74
+ /** @ignore */
75
+ private removeFilteredSourceOnDescriptionSelection;
74
76
  /** Metodo richiamato quando viene modificato il modello del campo di input */
75
77
  changed(): void;
76
78
  /** @ignore */
@@ -21,6 +21,10 @@ export declare class FormAutocompleteComponent extends BaseFormControl implement
21
21
  RequiredPlaceholder: string;
22
22
  /** Indica se i controlli devono essere effettuati tenendo conto del Case o meno. Vale solo qualora la **Source** fosse fornita */
23
23
  CaseSensitive: boolean;
24
+ /** Indica se usare la modalità multiselezione o no */
25
+ Multi: boolean;
26
+ /** Indica se usare la modalità multiselezione o no */
27
+ MultiElementsThreshold: number;
24
28
  /**
25
29
  * Indica se ignorare il prossimo evento writeValue che normalmente dovrebbe richiedere la nuova source. Serve per quando l'utente seleziona un elemento:
26
30
  * Subito dopo partirebbe un altro evento modelChange che ricaricherebbe nuovamente la source
@@ -41,6 +45,11 @@ export declare class FormAutocompleteComponent extends BaseFormControl implement
41
45
  * @param {any} value Valore scritto nell'input di testo
42
46
  */
43
47
  private finalizeValue;
48
+ /**
49
+ * Quando viene scritto un nuovo valore bisogna controllare se per botta di culo fosse un id, in tal caso dev'essere rieffettuato il bind
50
+ * per mostrare solo la descrizione nell'autocomplete
51
+ */
52
+ evaluateIdResearch(): void;
44
53
  /**
45
54
  * Evento di filtro della sorgente dati in base all'input utente
46
55
  *
@@ -48,6 +57,8 @@ export declare class FormAutocompleteComponent extends BaseFormControl implement
48
57
  */
49
58
  filterSource(event: string): void;
50
59
  /** @ignore */
60
+ private removeFilteredSourceOnDescriptionSelection;
61
+ /** @ignore */
51
62
  ngOnChanges(changes: SimpleChanges): void;
52
63
  /** @ignore Override che marca anche il prossimo evento di filterSource da ignorare */
53
64
  changed(forcedValue?: any, markForCheck?: boolean): void;
@@ -58,5 +69,5 @@ export declare class FormAutocompleteComponent extends BaseFormControl implement
58
69
  /** @ignore */
59
70
  private throttla;
60
71
  static ɵfac: i0.ɵɵFactoryDeclaration<FormAutocompleteComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
61
- static ɵcmp: i0.ɵɵComponentDeclaration<FormAutocompleteComponent, "form-autocomplete", never, { "SelectLabel": "SelectLabel"; "SearchFunction": "SearchFunction"; "MinChars": "MinChars"; "RequiredPlaceholder": "RequiredPlaceholder"; "CaseSensitive": "CaseSensitive"; }, {}, never, never>;
72
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormAutocompleteComponent, "form-autocomplete", never, { "SelectLabel": "SelectLabel"; "SearchFunction": "SearchFunction"; "MinChars": "MinChars"; "RequiredPlaceholder": "RequiredPlaceholder"; "CaseSensitive": "CaseSensitive"; "Multi": "Multi"; "MultiElementsThreshold": "MultiElementsThreshold"; }, {}, never, never>;
62
73
  }
@@ -11,6 +11,7 @@ export declare class FormCheckboxComponent extends BaseFormControl implements Co
11
11
  constructor(lc: LocalizationService, cdr: ChangeDetectorRef, ngControl: NgControl, _validators: Array<any>, ac: AccessControlService, AppContext: ComponentContext, ACO_CUSTOMKEY: string);
12
12
  /** @ignore */
13
13
  writeValue(obj: any): void;
14
+ changed(): void;
14
15
  /** @ignore */
15
16
  onNotNullValueSet(): void;
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<FormCheckboxComponent, [null, null, { optional: true; self: true; }, { optional: true; host: true; }, null, { optional: true; }, { optional: true; }]>;
@@ -13,6 +13,7 @@ export declare class FormDateComponent extends BaseFormControl implements Contro
13
13
  constructor(datesExts: DateService, cdr: ChangeDetectorRef, ngControl: NgControl, _validators: Array<any>, ac: AccessControlService, AppContext: ComponentContext, ACO_CUSTOMKEY: string, FAV_DEBUG_MODE: boolean);
14
14
  /** @ignore */
15
15
  writeValue(obj: any): void;
16
+ changed(): void;
16
17
  /** @ignore */
17
18
  onNotNullValueSet(): void;
18
19
  static ɵfac: i0.ɵɵFactoryDeclaration<FormDateComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
@@ -15,6 +15,7 @@ export declare class FormDateTimeComponent extends BaseFormControl implements Co
15
15
  constructor(datesExts: DateService, cdr: ChangeDetectorRef, ngControl: NgControl, _validators: Array<any>, ac: AccessControlService, AppContext: ComponentContext, ACO_CUSTOMKEY: string, FAV_DEBUG_MODE: boolean);
16
16
  /** @ignore */
17
17
  writeValue(obj: any): void;
18
+ changed(): void;
18
19
  /** @ignore */
19
20
  onNotNullValueSet(): void;
20
21
  static ɵfac: i0.ɵɵFactoryDeclaration<FormDateTimeComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
@@ -25,6 +25,8 @@ export declare class FormMultiSelectComponent extends BaseFormControl implements
25
25
  SelectLabel: string;
26
26
  /** Permette al componente di gestire come modello non una lista di chiavi, ma una lista di KeyValue */
27
27
  UseKeyValues: boolean;
28
+ /** Indica al componente di emettere una lista di chiavi separate da virgola piuttosto che una lista vera e propria di chiavi/KeyValue */
29
+ UseCommaSeparatedList: boolean;
28
30
  /** Impostazioni del componente interno **angular2-multiselect** */
29
31
  Settings: {
30
32
  selectAllText: string;
@@ -55,9 +57,9 @@ export declare class FormMultiSelectComponent extends BaseFormControl implements
55
57
  */
56
58
  handleNullNgControl(): boolean;
57
59
  /** @ignore Override per gestire input in ingresso */
58
- writeValue(obj: any[]): void;
60
+ writeValue(obj: any[] | string): void;
59
61
  /** @ignore Override per gestire input in uscita */
60
62
  changed(): void;
61
63
  static ɵfac: i0.ɵɵFactoryDeclaration<FormMultiSelectComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
62
- static ɵcmp: i0.ɵɵComponentDeclaration<FormMultiSelectComponent, "form-multiselect", never, { "SelectLabel": "SelectLabel"; "UseKeyValues": "UseKeyValues"; }, {}, never, never>;
64
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormMultiSelectComponent, "form-multiselect", never, { "SelectLabel": "SelectLabel"; "UseKeyValues": "UseKeyValues"; "UseCommaSeparatedList": "UseCommaSeparatedList"; }, {}, never, never>;
63
65
  }
@@ -33,6 +33,7 @@ export declare class FormSelectComponent extends BaseFormControl implements Cont
33
33
  private detatchPreviousAndRetatchNext;
34
34
  /** @ignore */
35
35
  writeValue(obj: any): void;
36
+ changed(): void;
36
37
  /** @ignore */
37
38
  onNotNullValueSet(): void;
38
39
  static ɵfac: i0.ɵɵFactoryDeclaration<FormSelectComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
@@ -1,3 +1,4 @@
1
+ import { TemplateRef } from "@angular/core";
1
2
  import * as i0 from "@angular/core";
2
3
  /**
3
4
  * Componente da utilizzare quando l'implementazione dell'input non è disponibile nella libreria,
@@ -20,8 +21,16 @@ export declare class FormTemplateComponent {
20
21
  Last: boolean;
21
22
  /** Classe extra per il form-group in cui viene wrappato l'input */
22
23
  FormGroupClass: string;
24
+ /** Indica che la parte input del controllo dev'essere una label readonly e la parte label di titolo dev'essere in bold. Per utilizzare un solo componente sia per la modifica che per il dettaglio */
25
+ DisplayMode: boolean;
26
+ /** Template per visualizzare la modalità **DisplayMode** come vuole il programmatore frocio di turno */
27
+ DisplayModeTemplate: TemplateRef<any>;
28
+ /** Layout del Form quando è in modalità Display. Di default mantiene la formattazione a form */
29
+ DisplayLayout: 'form' | 'inline' | 'hidden';
30
+ /** Indica la condizione per cui un elemento in Modalità Display può essere visibile in base a ulteriori controlli */
31
+ DisplayCondition: boolean;
23
32
  /** Permette di settare in una volta solo gli input LabelColWidth e InputColWidth, basta scriverlo con la sintassi "X Y" */
24
33
  set LabelInputRatio(input: string);
25
34
  static ɵfac: i0.ɵɵFactoryDeclaration<FormTemplateComponent, never>;
26
- static ɵcmp: i0.ɵɵComponentDeclaration<FormTemplateComponent, "form-template", never, { "Required": "Required"; "Label": "Label"; "LabelClass": "LabelClass"; "FormLayout": "FormLayout"; "LabelColWidth": "LabelColWidth"; "InputColWidth": "InputColWidth"; "Last": "Last"; "FormGroupClass": "FormGroupClass"; "LabelInputRatio": "LabelInputRatio"; }, {}, never, ["*", "*"]>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormTemplateComponent, "form-template", never, { "Required": "Required"; "Label": "Label"; "LabelClass": "LabelClass"; "FormLayout": "FormLayout"; "LabelColWidth": "LabelColWidth"; "InputColWidth": "InputColWidth"; "Last": "Last"; "FormGroupClass": "FormGroupClass"; "DisplayMode": "DisplayMode"; "DisplayModeTemplate": "DisplayModeTemplate"; "DisplayLayout": "DisplayLayout"; "DisplayCondition": "DisplayCondition"; "LabelInputRatio": "LabelInputRatio"; }, {}, never, ["*"]>;
27
36
  }
@@ -20,24 +20,28 @@ import * as i16 from "./forms/form-adaptive/form-adaptive.component";
20
20
  import * as i17 from "./forms/form-multiselect/form-multiselect.component";
21
21
  import * as i18 from "./forms/form-file/form-file.component";
22
22
  import * as i19 from "./validations/validation-autocomplete/validation-autocomplete.component";
23
- import * as i20 from "./forms/form-autocomplete/form-autocomplete.component";
24
- import * as i21 from "./forms/form-datetime/form-datetime.component";
25
- import * as i22 from "./validations/validation-datetime/validation-datetime.component";
26
- import * as i23 from "./forms/form-time/form-time.component";
27
- import * as i24 from "@angular/common";
28
- import * as i25 from "@angular/forms";
29
- import * as i26 from "@esfaenza/localizations";
30
- import * as i27 from "@angular/material/input";
31
- import * as i28 from "@angular/material/datepicker";
32
- import * as i29 from "@esfaenza/material-dayjs-adapter";
33
- import * as i30 from "ngx-bootstrap/tooltip";
34
- import * as i31 from "@esfaenza/ngx-currency-mask";
35
- import * as i32 from "@angular/material/autocomplete";
36
- import * as i33 from "@angular-material-components/datetime-picker";
37
- import * as i34 from "angular2-multiselect-dropdown";
23
+ import * as i20 from "./validations/validation-autocomplete-multi/validation-autocomplete-multi.component";
24
+ import * as i21 from "./forms/form-autocomplete/form-autocomplete.component";
25
+ import * as i22 from "./forms/form-datetime/form-datetime.component";
26
+ import * as i23 from "./validations/validation-datetime/validation-datetime.component";
27
+ import * as i24 from "./forms/form-time/form-time.component";
28
+ import * as i25 from "@angular/common";
29
+ import * as i26 from "@angular/forms";
30
+ import * as i27 from "@esfaenza/localizations";
31
+ import * as i28 from "@angular/material/input";
32
+ import * as i29 from "@angular/material/chips";
33
+ import * as i30 from "@angular/material/icon";
34
+ import * as i31 from "@angular/material/checkbox";
35
+ import * as i32 from "@angular/material/datepicker";
36
+ import * as i33 from "@esfaenza/material-dayjs-adapter";
37
+ import * as i34 from "ngx-bootstrap/tooltip";
38
+ import * as i35 from "@esfaenza/ngx-currency-mask";
39
+ import * as i36 from "@angular/material/autocomplete";
40
+ import * as i37 from "@angular-material-components/datetime-picker";
41
+ import * as i38 from "angular2-multiselect-dropdown";
38
42
  export declare class FormsAndValidationsModule {
39
43
  static forRoot(config?: FormsAndValidationsModuleConfig): ModuleWithProviders<FormsAndValidationsModule>;
40
44
  static ɵfac: i0.ɵɵFactoryDeclaration<FormsAndValidationsModule, never>;
41
- static ɵmod: i0.ɵɵNgModuleDeclaration<FormsAndValidationsModule, [typeof i1.ValidationInputComponent, typeof i2.ValidationSelectComponent, typeof i3.ValidationDateComponent, typeof i4.CustomRequiredDirective, typeof i5.ValidationCurrencyComponent, typeof i6.ValidationTextAreaComponent, typeof i7.FormCheckboxComponent, typeof i8.FormDateComponent, typeof i9.FormEmptyComponent, typeof i10.FormInputComponent, typeof i11.FormSelectComponent, typeof i12.FormTextareaComponent, typeof i13.FormTemplateComponent, typeof i14.FormErrorComponent, typeof i15.FormInfoComponent, typeof i16.FormAdaptiveComponent, typeof i17.FormMultiSelectComponent, typeof i18.FormFileComponent, typeof i19.ValidationAutocompleteComponent, typeof i20.FormAutocompleteComponent, typeof i21.FormDateTimeComponent, typeof i22.ValidationDateTimeComponent, typeof i23.FormTimeComponent], [typeof i24.CommonModule, typeof i25.FormsModule, typeof i26.LocalizationModule, typeof i27.MatInputModule, typeof i28.MatDatepickerModule, typeof i29.MatDayjsDateModule, typeof i30.TooltipModule, typeof i31.CurrencyMaskModule, typeof i32.MatAutocompleteModule, typeof i33.NgxMatDatetimePickerModule, typeof i33.NgxMatTimepickerModule, typeof i34.AngularMultiSelectModule], [typeof i34.AngularMultiSelectModule, typeof i1.ValidationInputComponent, typeof i2.ValidationSelectComponent, typeof i3.ValidationDateComponent, typeof i4.CustomRequiredDirective, typeof i5.ValidationCurrencyComponent, typeof i6.ValidationTextAreaComponent, typeof i7.FormCheckboxComponent, typeof i8.FormDateComponent, typeof i9.FormEmptyComponent, typeof i10.FormInputComponent, typeof i11.FormSelectComponent, typeof i12.FormTextareaComponent, typeof i13.FormTemplateComponent, typeof i14.FormErrorComponent, typeof i15.FormInfoComponent, typeof i16.FormAdaptiveComponent, typeof i17.FormMultiSelectComponent, typeof i18.FormFileComponent, typeof i19.ValidationAutocompleteComponent, typeof i20.FormAutocompleteComponent, typeof i21.FormDateTimeComponent, typeof i22.ValidationDateTimeComponent, typeof i23.FormTimeComponent]>;
45
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FormsAndValidationsModule, [typeof i1.ValidationInputComponent, typeof i2.ValidationSelectComponent, typeof i3.ValidationDateComponent, typeof i4.CustomRequiredDirective, typeof i5.ValidationCurrencyComponent, typeof i6.ValidationTextAreaComponent, typeof i7.FormCheckboxComponent, typeof i8.FormDateComponent, typeof i9.FormEmptyComponent, typeof i10.FormInputComponent, typeof i11.FormSelectComponent, typeof i12.FormTextareaComponent, typeof i13.FormTemplateComponent, typeof i14.FormErrorComponent, typeof i15.FormInfoComponent, typeof i16.FormAdaptiveComponent, typeof i17.FormMultiSelectComponent, typeof i18.FormFileComponent, typeof i19.ValidationAutocompleteComponent, typeof i20.ValidationAutocompleteMultiComponent, typeof i21.FormAutocompleteComponent, typeof i22.FormDateTimeComponent, typeof i23.ValidationDateTimeComponent, typeof i24.FormTimeComponent], [typeof i25.CommonModule, typeof i26.FormsModule, typeof i27.LocalizationModule, typeof i28.MatInputModule, typeof i29.MatChipsModule, typeof i30.MatIconModule, typeof i31.MatCheckboxModule, typeof i32.MatDatepickerModule, typeof i33.MatDayjsDateModule, typeof i34.TooltipModule, typeof i35.CurrencyMaskModule, typeof i36.MatAutocompleteModule, typeof i37.NgxMatDatetimePickerModule, typeof i37.NgxMatTimepickerModule, typeof i38.AngularMultiSelectModule], [typeof i38.AngularMultiSelectModule, typeof i1.ValidationInputComponent, typeof i2.ValidationSelectComponent, typeof i3.ValidationDateComponent, typeof i4.CustomRequiredDirective, typeof i5.ValidationCurrencyComponent, typeof i6.ValidationTextAreaComponent, typeof i7.FormCheckboxComponent, typeof i8.FormDateComponent, typeof i9.FormEmptyComponent, typeof i10.FormInputComponent, typeof i11.FormSelectComponent, typeof i12.FormTextareaComponent, typeof i13.FormTemplateComponent, typeof i14.FormErrorComponent, typeof i15.FormInfoComponent, typeof i16.FormAdaptiveComponent, typeof i17.FormMultiSelectComponent, typeof i18.FormFileComponent, typeof i19.ValidationAutocompleteComponent, typeof i20.ValidationAutocompleteMultiComponent, typeof i21.FormAutocompleteComponent, typeof i22.FormDateTimeComponent, typeof i23.ValidationDateTimeComponent, typeof i24.FormTimeComponent]>;
42
46
  static ɵinj: i0.ɵɵInjectorDeclaration<FormsAndValidationsModule>;
43
47
  }
@@ -11,61 +11,37 @@ export declare class ValidationAutocompleteComponent extends BaseValidation impl
11
11
  private _asyncValidators;
12
12
  private injector;
13
13
  protected lc: LocalizationService;
14
- /**
15
- * Sorgente da cui scegliere valori filtrata in base a quello che ha scritto l'utente
16
- */
14
+ /** Sorgente da cui scegliere valori filtrata in base a quello che ha scritto l'utente */
17
15
  FilteredSource: {
18
16
  id: string;
19
17
  description: string;
20
18
  }[];
21
- /**
22
- * Valore del modello
23
- */
19
+ /** Valore del modello */
24
20
  value: any;
25
- /**
26
- * Contenuto della label Floattante Material-Style
27
- */
21
+ /** Contenuto della label Floattante Material-Style */
28
22
  label: string;
29
- /**
30
- * Evento che indica l'opzione selezionata dal componente. Il valore finale della selezione dovrà essere questo
31
- */
23
+ /** Evento che indica l'opzione selezionata dal componente. Il valore finale della selezione dovrà essere questo */
32
24
  optionChange: EventEmitter<string>;
33
- /**
34
- * Subscription del tootltip da ripulire alla distruzione del componente
35
- */
25
+ /** Subscription del tootltip da ripulire alla distruzione del componente */
36
26
  private tooltipSubscription;
37
- /**
38
- * Controllo esposto ottenuto tramite injector
39
- */
27
+ /** Controllo esposto ottenuto tramite injector */
40
28
  private parentControl;
41
- /**
42
- * @ignore
43
- */
29
+ /** @ignore */
44
30
  constructor(_validators: Array<any>, _asyncValidators: Array<any>, injector: Injector, lc: LocalizationService);
45
- /**
46
- * @ignore
47
- */
31
+ /** @ignore */
48
32
  ngOnInit(): void;
49
- /**
50
- * @ignore
51
- */
33
+ /** @ignore */
52
34
  ngOnDestroy(): void;
53
- /**
54
- * @ignore
55
- */
35
+ /** @ignore */
56
36
  ngAfterViewInit(): void;
57
37
  /**
58
38
  * Metodo che si occupa di collegare i validatori e la funzione di reset dal **ControlValueAccessor** rappresentato
59
39
  * da questo componente al **ControlValueAccessor** rappresentato dall'effettivo elemento di Input presente lato HTML
60
40
  */
61
41
  private postBinding;
62
- /**
63
- * @ignore
64
- */
42
+ /** @ignore */
65
43
  private onTouched;
66
- /**
67
- * @ignore
68
- */
44
+ /** @ignore */
69
45
  writeValue(value: any): void;
70
46
  /**
71
47
  * L'emit della modifica al valore viene gestito su un evento custom (**inputChange**) come workaround al malfunzionamento dell'**ngModelChange** nativo
@@ -73,13 +49,9 @@ export declare class ValidationAutocompleteComponent extends BaseValidation impl
73
49
  * @param {any} toEmit valore da propagare all'esterno
74
50
  */
75
51
  onModelChange(toEmit: any): void;
76
- /**
77
- * @ignore
78
- */
52
+ /** @ignore */
79
53
  registerOnChange(fn: any): void;
80
- /**
81
- * @ignore
82
- */
54
+ /** @ignore */
83
55
  registerOnTouched(fn: any): void;
84
56
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationAutocompleteComponent, [{ optional: true; }, { optional: true; }, null, null]>;
85
57
  static ɵcmp: i0.ɵɵComponentDeclaration<ValidationAutocompleteComponent, "val-autocomplete", never, { "FilteredSource": "FilteredSource"; "value": "value"; "label": "label"; }, { "optionChange": "optionChange"; }, never, never>;
@@ -0,0 +1,81 @@
1
+ import { ControlValueAccessor } from "@angular/forms";
2
+ import { EventEmitter, Injector, SimpleChanges } from "@angular/core";
3
+ import { LocalizationService } from "@esfaenza/localizations";
4
+ import { BaseValidation } from "../base-validation";
5
+ import { MatAutocompleteTrigger } from "@angular/material/autocomplete";
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Componente di validaizone per gli input di Autocompletamento
9
+ */
10
+ export declare class ValidationAutocompleteMultiComponent extends BaseValidation implements ControlValueAccessor {
11
+ private _validators;
12
+ private _asyncValidators;
13
+ private injector;
14
+ lc: LocalizationService;
15
+ displayFn: () => string;
16
+ /** Numero massimo di chip visualizzate */
17
+ ChipThreshold: number;
18
+ /** Sorgente da cui scegliere valori filtrata in base a quello che ha scritto l'utente */
19
+ FilteredSource: {
20
+ id: string;
21
+ description: string;
22
+ }[];
23
+ /** Valore del modello */
24
+ value: any;
25
+ /** Contenuto della label Floattante Material-Style */
26
+ label: string;
27
+ /** Evento che indica l'opzione selezionata dal componente. Il valore finale della selezione dovrà essere questo */
28
+ optionChange: EventEmitter<string>;
29
+ /** Trigger dell'autocomplete per tenerlo aperto */
30
+ autoTrigger: MatAutocompleteTrigger;
31
+ /** Subscription del tootltip da ripulire alla distruzione del componente */
32
+ private tooltipSubscription;
33
+ /** Controllo esposto ottenuto tramite injector */
34
+ private parentControl;
35
+ /** Elementi selezionati */
36
+ selectData: {
37
+ id: string;
38
+ description: string;
39
+ }[];
40
+ /** @ignore */
41
+ constructor(_validators: Array<any>, _asyncValidators: Array<any>, injector: Injector, lc: LocalizationService);
42
+ /** @ignore */
43
+ ngOnInit(): void;
44
+ /** @ignore */
45
+ ngOnDestroy(): void;
46
+ /** @ignore */
47
+ ngAfterViewInit(): void;
48
+ /** In caso arrivi una nuova sorgente devo reimpostare lo stato di selezione con quello attuale */
49
+ ngOnChanges(changes: SimpleChanges): void;
50
+ /**
51
+ * Metodo che si occupa di collegare i validatori e la funzione di reset dal **ControlValueAccessor** rappresentato
52
+ * da questo componente al **ControlValueAccessor** rappresentato dall'effettivo elemento di Input presente lato HTML
53
+ */
54
+ private postBinding;
55
+ /** @ignore */
56
+ private onTouched;
57
+ /** @ignore */
58
+ writeValue(value: any, finalValue?: boolean): void;
59
+ /**
60
+ * L'emit della modifica al valore viene gestito su un evento custom (**inputChange**) come workaround al malfunzionamento dell'**ngModelChange** nativo
61
+ *
62
+ * @param {any} toEmit valore da propagare all'esterno
63
+ */
64
+ onModelChange(toEmit: any, finalValue?: boolean): void;
65
+ /** @ignore */
66
+ registerOnChange(fn: any): void;
67
+ /** @ignore */
68
+ registerOnTouched(fn: any): void;
69
+ /** Rimuove un elemento selezionato */
70
+ removeChip(data: {
71
+ id: string;
72
+ description: string;
73
+ }): void;
74
+ /** Seleziona o deseleziona un oggetto */
75
+ toggleSelection(data: {
76
+ id: string;
77
+ description: string;
78
+ }): void;
79
+ static ɵfac: i0.ɵɵFactoryDeclaration<ValidationAutocompleteMultiComponent, [{ optional: true; }, { optional: true; }, null, null]>;
80
+ static ɵcmp: i0.ɵɵComponentDeclaration<ValidationAutocompleteMultiComponent, "val-autocomplete-multi", never, { "ChipThreshold": "ChipThreshold"; "FilteredSource": "FilteredSource"; "value": "value"; "label": "label"; }, { "optionChange": "optionChange"; }, never, never>;
81
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/forms-and-validations",
3
- "version": "13.3.7",
3
+ "version": "13.3.10",
4
4
  "private": false,
5
5
  "dependencies": {
6
6
  "tslib": "^2.0.0"
package/public-api.d.ts CHANGED
@@ -9,6 +9,7 @@ export * from './lib/validations/validation-select/validation-select.component';
9
9
  export * from './lib/validations/validation-text-area/validation-text-area.component';
10
10
  export * from './lib/validations/validation-currency/validation-currency.component';
11
11
  export * from './lib/validations/validation-autocomplete/validation-autocomplete.component';
12
+ export * from './lib/validations/validation-autocomplete-multi/validation-autocomplete-multi.component';
12
13
  export * from './lib/validations/customValidators/CustomRequiredDirective';
13
14
  export * from './lib/forms/form-datetime/form-datetime.component';
14
15
  export * from './lib/forms/form-adaptive/form-adaptive.component';