@esfaenza/forms-and-validations 15.2.57 → 15.2.59

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 (80) hide show
  1. package/{esm2020 → esm2022}/lib/forms/base-form-control.mjs +10 -4
  2. package/{esm2020 → esm2022}/lib/forms/form-adaptive/form-adaptive.component.loc.mjs +4 -4
  3. package/{esm2020 → esm2022}/lib/forms/form-adaptive/form-adaptive.component.mjs +4 -4
  4. package/{esm2020 → esm2022}/lib/forms/form-autocomplete/form-autocomplete.component.loc.mjs +4 -4
  5. package/{esm2020 → esm2022}/lib/forms/form-autocomplete/form-autocomplete.component.mjs +4 -4
  6. package/{esm2020 → esm2022}/lib/forms/form-checkbox/form-checkbox.component.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/forms/form-date/form-date.component.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/forms/form-datetime/form-datetime.component.mjs +4 -4
  9. package/{esm2020 → esm2022}/lib/forms/form-empty/form-empty.component.mjs +4 -4
  10. package/{esm2020 → esm2022}/lib/forms/form-error/form-error.component.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/forms/form-file/form-file.component.loc.mjs +4 -4
  12. package/{esm2020 → esm2022}/lib/forms/form-file/form-file.component.mjs +4 -4
  13. package/{esm2020 → esm2022}/lib/forms/form-info/form-info.component.mjs +4 -4
  14. package/{esm2020 → esm2022}/lib/forms/form-input/form-input.component.mjs +5 -5
  15. package/{esm2020 → esm2022}/lib/forms/form-multiselect/form-multiselect.component.loc.mjs +4 -4
  16. package/{esm2020 → esm2022}/lib/forms/form-multiselect/form-multiselect.component.mjs +4 -4
  17. package/{esm2020 → esm2022}/lib/forms/form-select/form-select.component.loc.mjs +4 -4
  18. package/{esm2020 → esm2022}/lib/forms/form-select/form-select.component.mjs +4 -4
  19. package/{esm2020 → esm2022}/lib/forms/form-template/form-template.component.mjs +4 -4
  20. package/{esm2020 → esm2022}/lib/forms/form-textarea/form-textarea.component.mjs +4 -4
  21. package/{esm2020 → esm2022}/lib/forms/form-time/form-time.component.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/forms-and-validations.module.mjs +64 -64
  23. package/{esm2020 → esm2022}/lib/models/dayjs-adapter/dayjs-date-adapter.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/validations/base-validation.loc.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/validations/base-validation.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/validations/customValidators/CustomRequiredDirective.mjs +4 -4
  27. package/esm2022/lib/validations/validation-autocomplete/validation-autocomplete.component.mjs +147 -0
  28. package/esm2022/lib/validations/validation-autocomplete-multi/validation-autocomplete-multi.component.mjs +240 -0
  29. package/esm2022/lib/validations/validation-currency/validation-currency.component.mjs +75 -0
  30. package/esm2022/lib/validations/validation-date/validation-date.component.mjs +183 -0
  31. package/esm2022/lib/validations/validation-datetime/validation-datetime.component.mjs +212 -0
  32. package/esm2022/lib/validations/validation-input/validation-input.component.mjs +222 -0
  33. package/esm2022/lib/validations/validation-select/validation-select.component.mjs +183 -0
  34. package/esm2022/lib/validations/validation-text-area/validation-text-area.component.mjs +78 -0
  35. package/{fesm2020 → fesm2022}/esfaenza-forms-and-validations.mjs +235 -223
  36. package/fesm2022/esfaenza-forms-and-validations.mjs.map +1 -0
  37. package/lib/forms/base-form-control.d.ts +11 -1
  38. package/lib/forms/form-adaptive/form-adaptive.component.d.ts +1 -1
  39. package/lib/forms/form-autocomplete/form-autocomplete.component.d.ts +1 -1
  40. package/lib/forms/form-checkbox/form-checkbox.component.d.ts +1 -1
  41. package/lib/forms/form-date/form-date.component.d.ts +1 -1
  42. package/lib/forms/form-datetime/form-datetime.component.d.ts +1 -1
  43. package/lib/forms/form-empty/form-empty.component.d.ts +1 -1
  44. package/lib/forms/form-error/form-error.component.d.ts +1 -1
  45. package/lib/forms/form-file/form-file.component.d.ts +1 -1
  46. package/lib/forms/form-info/form-info.component.d.ts +1 -1
  47. package/lib/forms/form-input/form-input.component.d.ts +1 -1
  48. package/lib/forms/form-multiselect/form-multiselect.component.d.ts +1 -1
  49. package/lib/forms/form-select/form-select.component.d.ts +1 -1
  50. package/lib/forms/form-template/form-template.component.d.ts +1 -1
  51. package/lib/forms/form-textarea/form-textarea.component.d.ts +1 -1
  52. package/lib/forms/form-time/form-time.component.d.ts +1 -1
  53. package/lib/validations/base-validation.d.ts +1 -1
  54. package/lib/validations/customValidators/CustomRequiredDirective.d.ts +1 -1
  55. package/lib/validations/validation-autocomplete/validation-autocomplete.component.d.ts +1 -1
  56. package/lib/validations/validation-autocomplete-multi/validation-autocomplete-multi.component.d.ts +1 -1
  57. package/lib/validations/validation-currency/validation-currency.component.d.ts +1 -1
  58. package/lib/validations/validation-date/validation-date.component.d.ts +1 -1
  59. package/lib/validations/validation-datetime/validation-datetime.component.d.ts +1 -1
  60. package/lib/validations/validation-input/validation-input.component.d.ts +10 -2
  61. package/lib/validations/validation-select/validation-select.component.d.ts +1 -1
  62. package/lib/validations/validation-text-area/validation-text-area.component.d.ts +1 -1
  63. package/package.json +5 -11
  64. package/esm2020/lib/validations/validation-autocomplete/validation-autocomplete.component.mjs +0 -147
  65. package/esm2020/lib/validations/validation-autocomplete-multi/validation-autocomplete-multi.component.mjs +0 -240
  66. package/esm2020/lib/validations/validation-currency/validation-currency.component.mjs +0 -75
  67. package/esm2020/lib/validations/validation-date/validation-date.component.mjs +0 -183
  68. package/esm2020/lib/validations/validation-datetime/validation-datetime.component.mjs +0 -212
  69. package/esm2020/lib/validations/validation-input/validation-input.component.mjs +0 -216
  70. package/esm2020/lib/validations/validation-select/validation-select.component.mjs +0 -183
  71. package/esm2020/lib/validations/validation-text-area/validation-text-area.component.mjs +0 -78
  72. package/fesm2015/esfaenza-forms-and-validations.mjs +0 -4310
  73. package/fesm2015/esfaenza-forms-and-validations.mjs.map +0 -1
  74. package/fesm2020/esfaenza-forms-and-validations.mjs.map +0 -1
  75. /package/{esm2020 → esm2022}/esfaenza-forms-and-validations.mjs +0 -0
  76. /package/{esm2020 → esm2022}/lib/models/AppFile.mjs +0 -0
  77. /package/{esm2020 → esm2022}/lib/models/ChangeEvent.mjs +0 -0
  78. /package/{esm2020 → esm2022}/lib/models/FormsAndValidationsModuleConfig.mjs +0 -0
  79. /package/{esm2020 → esm2022}/lib/tokens.mjs +0 -0
  80. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
@@ -115,6 +115,8 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
115
115
  DisplayLayout: 'form' | 'inline' | 'hidden';
116
116
  /** Separatore da mettere in automatico fra un elemento Form e l'altro quando sono in **DisplayMode** con **DisplayLayout** inline */
117
117
  InlineSeparator: string;
118
+ /** Type HTML (password/text/etc...) */
119
+ Type: string;
118
120
  /**
119
121
  * Espressione simil-Angular per cambiare il testo dei componenti che scelgono il proprio modello da una **Source**
120
122
  *
@@ -129,6 +131,14 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
129
131
  }[];
130
132
  /** Indica se è il primo Bind della Source */
131
133
  protected SourceFirstBind: boolean;
134
+ /**
135
+ * Max length
136
+ */
137
+ maxlength: number;
138
+ /**
139
+ * Max length
140
+ */
141
+ minlength: number;
132
142
  /**
133
143
  * Ottiene il valore della variabile **_readonly**
134
144
  *
@@ -262,5 +272,5 @@ export declare abstract class BaseFormControl implements ControlValueAccessor {
262
272
  /** @ignore */
263
273
  abstract onNotNullValueSet(): void;
264
274
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormControl, never>;
265
- static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFormControl, never, never, { "FocusSubject": "FocusSubject"; "SetValidationSubject": "SetValidationSubject"; "FieldAppearence": "FieldAppearence"; "FormLayout": "FormLayout"; "EmitPendingChanges": "EmitPendingChanges"; "Validation": "Validation"; "Frozen": "Frozen"; "Placeholder": "Placeholder"; "FormGroupClass": "FormGroupClass"; "FailedValidationMessage": "FailedValidationMessage"; "ForcedError": "ForcedError"; "Label": "Label"; "LabelColWidth": "LabelColWidth"; "InputColWidth": "InputColWidth"; "Last": "Last"; "Form": "Form"; "Source": "Source"; "IdField": "IdField"; "FloatingLabel": "FloatingLabel"; "DisplayMode": "DisplayMode"; "DisplayCondition": "DisplayCondition"; "DisplayModeTemplate": "DisplayModeTemplate"; "DisplayLayout": "DisplayLayout"; "InlineSeparator": "InlineSeparator"; "Display": "Display"; "Readonly": "Readonly"; "LabelInputRatio": "LabelInputRatio"; }, { "inputChange": "inputChange"; "inputFocus": "inputFocus"; "inputFinalized": "inputFinalized"; }, never, never, false, never>;
275
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseFormControl, never, never, { "FocusSubject": { "alias": "FocusSubject"; "required": false; }; "SetValidationSubject": { "alias": "SetValidationSubject"; "required": false; }; "FieldAppearence": { "alias": "FieldAppearence"; "required": false; }; "FormLayout": { "alias": "FormLayout"; "required": false; }; "EmitPendingChanges": { "alias": "EmitPendingChanges"; "required": false; }; "Validation": { "alias": "Validation"; "required": false; }; "Frozen": { "alias": "Frozen"; "required": false; }; "Placeholder": { "alias": "Placeholder"; "required": false; }; "FormGroupClass": { "alias": "FormGroupClass"; "required": false; }; "FailedValidationMessage": { "alias": "FailedValidationMessage"; "required": false; }; "ForcedError": { "alias": "ForcedError"; "required": false; }; "Label": { "alias": "Label"; "required": false; }; "LabelColWidth": { "alias": "LabelColWidth"; "required": false; }; "InputColWidth": { "alias": "InputColWidth"; "required": false; }; "Last": { "alias": "Last"; "required": false; }; "Form": { "alias": "Form"; "required": false; }; "Source": { "alias": "Source"; "required": false; }; "IdField": { "alias": "IdField"; "required": false; }; "FloatingLabel": { "alias": "FloatingLabel"; "required": false; }; "DisplayMode": { "alias": "DisplayMode"; "required": false; }; "DisplayCondition": { "alias": "DisplayCondition"; "required": false; }; "DisplayModeTemplate": { "alias": "DisplayModeTemplate"; "required": false; }; "DisplayLayout": { "alias": "DisplayLayout"; "required": false; }; "InlineSeparator": { "alias": "InlineSeparator"; "required": false; }; "Type": { "alias": "Type"; "required": false; }; "Display": { "alias": "Display"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; "Readonly": { "alias": "Readonly"; "required": false; }; "LabelInputRatio": { "alias": "LabelInputRatio"; "required": false; }; }, { "inputChange": "inputChange"; "inputFocus": "inputFocus"; "inputFinalized": "inputFinalized"; }, never, never, false, never>;
266
276
  }
@@ -122,5 +122,5 @@ export declare class FormAdaptiveComponent extends BaseFormControl implements Co
122
122
  /** @ignore */
123
123
  private throttla;
124
124
  static ɵfac: i0.ɵɵFactoryDeclaration<FormAdaptiveComponent, [null, null, null, null, null, { optional: true; self: true; }, { optional: true; }, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
125
- static ɵcmp: i0.ɵɵComponentDeclaration<FormAdaptiveComponent, "form-adaptive", never, { "Type": "Type"; "TypeMissingMessage": "TypeMissingMessage"; "Pattern": "Pattern"; "AdjustNumber": "AdjustNumber"; "AllowDownload": "AllowDownload"; "Precision": "Precision"; "Alignment": "Alignment"; "SearchFunction": "SearchFunction"; "MinChars": "MinChars"; "CaseSensitive": "CaseSensitive"; "Options": "Options"; }, {}, never, never, false, never>;
125
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormAdaptiveComponent, "form-adaptive", never, { "Type": { "alias": "Type"; "required": false; }; "TypeMissingMessage": { "alias": "TypeMissingMessage"; "required": false; }; "Pattern": { "alias": "Pattern"; "required": false; }; "AdjustNumber": { "alias": "AdjustNumber"; "required": false; }; "AllowDownload": { "alias": "AllowDownload"; "required": false; }; "Precision": { "alias": "Precision"; "required": false; }; "Alignment": { "alias": "Alignment"; "required": false; }; "SearchFunction": { "alias": "SearchFunction"; "required": false; }; "MinChars": { "alias": "MinChars"; "required": false; }; "CaseSensitive": { "alias": "CaseSensitive"; "required": false; }; "Options": { "alias": "Options"; "required": false; }; }, {}, never, never, false, never>;
126
126
  }
@@ -80,5 +80,5 @@ export declare class FormAutocompleteComponent extends BaseFormControl implement
80
80
  /** @ignore */
81
81
  private throttla;
82
82
  static ɵfac: i0.ɵɵFactoryDeclaration<FormAutocompleteComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
83
- static ɵcmp: i0.ɵɵComponentDeclaration<FormAutocompleteComponent, "form-autocomplete", never, { "SelectLabel": "SelectLabel"; "SearchFunctionContext": "SearchFunctionContext"; "SearchFunction": "SearchFunction"; "MinChars": "MinChars"; "HideChoicesOnSelection": "HideChoicesOnSelection"; "RequiredPlaceholder": "RequiredPlaceholder"; "CaseSensitive": "CaseSensitive"; "Multi": "Multi"; "MultiElementsThreshold": "MultiElementsThreshold"; "UnboundMode": "UnboundMode"; }, {}, never, never, false, never>;
83
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormAutocompleteComponent, "form-autocomplete", never, { "SelectLabel": { "alias": "SelectLabel"; "required": false; }; "SearchFunctionContext": { "alias": "SearchFunctionContext"; "required": false; }; "SearchFunction": { "alias": "SearchFunction"; "required": false; }; "MinChars": { "alias": "MinChars"; "required": false; }; "HideChoicesOnSelection": { "alias": "HideChoicesOnSelection"; "required": false; }; "RequiredPlaceholder": { "alias": "RequiredPlaceholder"; "required": false; }; "CaseSensitive": { "alias": "CaseSensitive"; "required": false; }; "Multi": { "alias": "Multi"; "required": false; }; "MultiElementsThreshold": { "alias": "MultiElementsThreshold"; "required": false; }; "UnboundMode": { "alias": "UnboundMode"; "required": false; }; }, {}, never, never, false, never>;
84
84
  }
@@ -19,5 +19,5 @@ export declare class FormCheckboxComponent extends BaseFormControl implements Co
19
19
  /** @ignore */
20
20
  onNotNullValueSet(): void;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<FormCheckboxComponent, [null, null, { optional: true; self: true; }, { optional: true; }, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<FormCheckboxComponent, "form-checkbox", never, { "SliderMode": "SliderMode"; }, {}, never, never, false, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormCheckboxComponent, "form-checkbox", never, { "SliderMode": { "alias": "SliderMode"; "required": false; }; }, {}, never, never, false, never>;
23
23
  }
@@ -17,5 +17,5 @@ export declare class FormDateComponent extends BaseFormControl implements Contro
17
17
  /** @ignore */
18
18
  onNotNullValueSet(): void;
19
19
  static ɵfac: i0.ɵɵFactoryDeclaration<FormDateComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<FormDateComponent, "form-date", never, { "JsDates": "JsDates"; }, {}, never, never, false, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormDateComponent, "form-date", never, { "JsDates": { "alias": "JsDates"; "required": false; }; }, {}, never, never, false, never>;
21
21
  }
@@ -19,5 +19,5 @@ export declare class FormDateTimeComponent extends BaseFormControl implements Co
19
19
  /** @ignore */
20
20
  onNotNullValueSet(): void;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<FormDateTimeComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<FormDateTimeComponent, "form-datetime", never, { "JsDates": "JsDates"; }, {}, never, never, false, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormDateTimeComponent, "form-datetime", never, { "JsDates": { "alias": "JsDates"; "required": false; }; }, {}, never, never, false, never>;
23
23
  }
@@ -11,5 +11,5 @@ export declare class FormEmptyComponent {
11
11
  /** Valore placeholder da mostrare */
12
12
  PlaceholderModel: string;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<FormEmptyComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<FormEmptyComponent, "form-empty", never, { "Last": "Last"; "FormGroupClass": "FormGroupClass"; }, {}, never, never, false, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormEmptyComponent, "form-empty", never, { "Last": { "alias": "Last"; "required": false; }; "FormGroupClass": { "alias": "FormGroupClass"; "required": false; }; }, {}, never, never, false, never>;
15
15
  }
@@ -15,5 +15,5 @@ export declare class FormErrorComponent {
15
15
  /** Permette di settare in una volta solo gli input LabelColWidth e InputColWidth, basta scriverlo con la sintassi "X Y" */
16
16
  set LabelInputRatio(input: string);
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<FormErrorComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<FormErrorComponent, "form-error", never, { "LabelColWidth": "LabelColWidth"; "InputColWidth": "InputColWidth"; "Last": "Last"; "FormGroupClass": "FormGroupClass"; "LabelInputRatio": "LabelInputRatio"; }, {}, never, ["*"], false, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormErrorComponent, "form-error", never, { "LabelColWidth": { "alias": "LabelColWidth"; "required": false; }; "InputColWidth": { "alias": "InputColWidth"; "required": false; }; "Last": { "alias": "Last"; "required": false; }; "FormGroupClass": { "alias": "FormGroupClass"; "required": false; }; "LabelInputRatio": { "alias": "LabelInputRatio"; "required": false; }; }, {}, never, ["*"], false, never>;
19
19
  }
@@ -42,5 +42,5 @@ export declare class FormFileComponent extends BaseFormControl implements Contro
42
42
  onFileDragOver(event: DragEvent): void;
43
43
  onFileDropped(event: DragEvent): void;
44
44
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFileComponent, [null, null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, null, { optional: true; }]>;
45
- static ɵcmp: i0.ɵɵComponentDeclaration<FormFileComponent, "form-file", never, { "Multiple": "Multiple"; "AllowDownload": "AllowDownload"; "MaxSize": "MaxSize"; "FancyMode": "FancyMode"; "ReadFile": "ReadFile"; }, {}, never, never, false, never>;
45
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormFileComponent, "form-file", never, { "Multiple": { "alias": "Multiple"; "required": false; }; "AllowDownload": { "alias": "AllowDownload"; "required": false; }; "MaxSize": { "alias": "MaxSize"; "required": false; }; "FancyMode": { "alias": "FancyMode"; "required": false; }; "ReadFile": { "alias": "ReadFile"; "required": false; }; }, {}, never, never, false, never>;
46
46
  }
@@ -15,5 +15,5 @@ export declare class FormInfoComponent {
15
15
  /** Permette di settare in una volta solo gli input LabelColWidth e InputColWidth, basta scriverlo con la sintassi "X Y" */
16
16
  set LabelInputRatio(input: string);
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<FormInfoComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<FormInfoComponent, "form-info", never, { "LabelColWidth": "LabelColWidth"; "InputColWidth": "InputColWidth"; "Last": "Last"; "FormGroupClass": "FormGroupClass"; "LabelInputRatio": "LabelInputRatio"; }, {}, never, ["*"], false, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormInfoComponent, "form-info", never, { "LabelColWidth": { "alias": "LabelColWidth"; "required": false; }; "InputColWidth": { "alias": "InputColWidth"; "required": false; }; "Last": { "alias": "Last"; "required": false; }; "FormGroupClass": { "alias": "FormGroupClass"; "required": false; }; "LabelInputRatio": { "alias": "LabelInputRatio"; "required": false; }; }, {}, never, ["*"], false, never>;
19
19
  }
@@ -29,5 +29,5 @@ export declare class FormInputComponent extends BaseFormControl implements Contr
29
29
  /** @ignore */
30
30
  onNotNullValueSet(): void;
31
31
  static ɵfac: i0.ɵɵFactoryDeclaration<FormInputComponent, [null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<FormInputComponent, "form-input", never, { "Password": "Password"; }, { "onSuffixAction": "onSuffixAction"; "onPrefixAction": "onPrefixAction"; }, ["suffix", "prefix"], never, false, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormInputComponent, "form-input", never, { "Password": { "alias": "Password"; "required": false; }; }, { "onSuffixAction": "onSuffixAction"; "onPrefixAction": "onPrefixAction"; }, ["suffix", "prefix"], never, false, never>;
33
33
  }
@@ -63,5 +63,5 @@ export declare class FormMultiSelectComponent extends BaseFormControl implements
63
63
  /** @ignore Override per gestire input in uscita */
64
64
  changed(): void;
65
65
  static ɵfac: i0.ɵɵFactoryDeclaration<FormMultiSelectComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
66
- static ɵcmp: i0.ɵɵComponentDeclaration<FormMultiSelectComponent, "form-multiselect", never, { "SelectLabel": "SelectLabel"; "UseKeyValues": "UseKeyValues"; "UseCommaSeparatedList": "UseCommaSeparatedList"; "UseJsonList": "UseJsonList"; }, {}, never, never, false, never>;
66
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormMultiSelectComponent, "form-multiselect", never, { "SelectLabel": { "alias": "SelectLabel"; "required": false; }; "UseKeyValues": { "alias": "UseKeyValues"; "required": false; }; "UseCommaSeparatedList": { "alias": "UseCommaSeparatedList"; "required": false; }; "UseJsonList": { "alias": "UseJsonList"; "required": false; }; }, {}, never, never, false, never>;
67
67
  }
@@ -39,5 +39,5 @@ export declare class FormSelectComponent extends BaseFormControl implements Cont
39
39
  /** @ignore */
40
40
  onNotNullValueSet(): void;
41
41
  static ɵfac: i0.ɵɵFactoryDeclaration<FormSelectComponent, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<FormSelectComponent, "form-select", never, { "SelectLabel": "SelectLabel"; "PlaceholderValue": "PlaceholderValue"; "RequiredPlaceholder": "RequiredPlaceholder"; "EmptyFieldValue": "EmptyFieldValue"; "ShowValidationSymbol": "ShowValidationSymbol"; "OptionTemplate": "OptionTemplate"; }, {}, never, never, false, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormSelectComponent, "form-select", never, { "SelectLabel": { "alias": "SelectLabel"; "required": false; }; "PlaceholderValue": { "alias": "PlaceholderValue"; "required": false; }; "RequiredPlaceholder": { "alias": "RequiredPlaceholder"; "required": false; }; "EmptyFieldValue": { "alias": "EmptyFieldValue"; "required": false; }; "ShowValidationSymbol": { "alias": "ShowValidationSymbol"; "required": false; }; "OptionTemplate": { "alias": "OptionTemplate"; "required": false; }; }, {}, never, never, false, never>;
43
43
  }
@@ -34,5 +34,5 @@ export declare class FormTemplateComponent {
34
34
  /** Permette di settare in una volta solo gli input LabelColWidth e InputColWidth, basta scriverlo con la sintassi "X Y" */
35
35
  set LabelInputRatio(input: string);
36
36
  static ɵfac: i0.ɵɵFactoryDeclaration<FormTemplateComponent, never>;
37
- 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"; "InlineSeparator": "InlineSeparator"; "LabelInputRatio": "LabelInputRatio"; }, {}, never, ["*"], false, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormTemplateComponent, "form-template", never, { "Required": { "alias": "Required"; "required": false; }; "Label": { "alias": "Label"; "required": false; }; "LabelClass": { "alias": "LabelClass"; "required": false; }; "FormLayout": { "alias": "FormLayout"; "required": false; }; "LabelColWidth": { "alias": "LabelColWidth"; "required": false; }; "InputColWidth": { "alias": "InputColWidth"; "required": false; }; "Last": { "alias": "Last"; "required": false; }; "FormGroupClass": { "alias": "FormGroupClass"; "required": false; }; "DisplayMode": { "alias": "DisplayMode"; "required": false; }; "DisplayModeTemplate": { "alias": "DisplayModeTemplate"; "required": false; }; "DisplayLayout": { "alias": "DisplayLayout"; "required": false; }; "DisplayCondition": { "alias": "DisplayCondition"; "required": false; }; "InlineSeparator": { "alias": "InlineSeparator"; "required": false; }; "LabelInputRatio": { "alias": "LabelInputRatio"; "required": false; }; }, {}, never, ["*"], false, never>;
38
38
  }
@@ -14,5 +14,5 @@ export declare class FormTextareaComponent extends BaseFormControl implements Co
14
14
  /** @ignore */
15
15
  onNotNullValueSet(): void;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<FormTextareaComponent, [null, { optional: true; self: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<FormTextareaComponent, "form-textarea", never, { "Rows": "Rows"; }, {}, never, never, false, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormTextareaComponent, "form-textarea", never, { "Rows": { "alias": "Rows"; "required": false; }; }, {}, never, never, false, never>;
18
18
  }
@@ -36,5 +36,5 @@ export declare class FormTimeComponent extends BaseFormControl implements Contro
36
36
  /** @ignore */
37
37
  onNotNullValueSet(): void;
38
38
  static ɵfac: i0.ɵɵFactoryDeclaration<FormTimeComponent, [null, null, { optional: true; self: true; }, { optional: true; }, null, { optional: true; }, { optional: true; }]>;
39
- static ɵcmp: i0.ɵɵComponentDeclaration<FormTimeComponent, "form-time", never, { "ShowSpinners": "ShowSpinners"; "StepHour": "StepHour"; "StepMinute": "StepMinute"; "StepSecond": "StepSecond"; "ShowSeconds": "ShowSeconds"; "InOutFormat": "InOutFormat"; }, {}, never, never, false, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormTimeComponent, "form-time", never, { "ShowSpinners": { "alias": "ShowSpinners"; "required": false; }; "StepHour": { "alias": "StepHour"; "required": false; }; "StepMinute": { "alias": "StepMinute"; "required": false; }; "StepSecond": { "alias": "StepSecond"; "required": false; }; "ShowSeconds": { "alias": "ShowSeconds"; "required": false; }; "InOutFormat": { "alias": "InOutFormat"; "required": false; }; }, {}, never, never, false, never>;
40
40
  }
@@ -215,5 +215,5 @@ export declare abstract class BaseValidation {
215
215
  */
216
216
  deregisterFocusRequest(): void;
217
217
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseValidation, never>;
218
- static ɵdir: i0.ɵɵDirectiveDeclaration<BaseValidation, never, never, { "FocusSubject": "FocusSubject"; "SetValidationSubject": "SetValidationSubject"; "InferErrorMessages": "InferErrorMessages"; "FieldAppearence": "FieldAppearence"; "FloatingLabel": "FloatingLabel"; "validationFailed": "validationFailed"; "Readonly": "Readonly"; "widthPx": "widthPx"; "disabled": "disabled"; "placeholder": "placeholder"; "class": "class"; "style": "style"; "pattern": "pattern"; "noValidate": "noValidate"; "autocomplete": "autocomplete"; "id": "id"; "submitted": "submitted"; "forceInvalid": "forceInvalid"; }, { "inputChange": "inputChange"; "inputFocus": "inputFocus"; "inputFinalized": "inputFinalized"; }, never, never, false, never>;
218
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseValidation, never, never, { "FocusSubject": { "alias": "FocusSubject"; "required": false; }; "SetValidationSubject": { "alias": "SetValidationSubject"; "required": false; }; "InferErrorMessages": { "alias": "InferErrorMessages"; "required": false; }; "FieldAppearence": { "alias": "FieldAppearence"; "required": false; }; "FloatingLabel": { "alias": "FloatingLabel"; "required": false; }; "validationFailed": { "alias": "validationFailed"; "required": false; }; "Readonly": { "alias": "Readonly"; "required": false; }; "widthPx": { "alias": "widthPx"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "class": { "alias": "class"; "required": false; }; "style": { "alias": "style"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "noValidate": { "alias": "noValidate"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "id": { "alias": "id"; "required": false; }; "submitted": { "alias": "submitted"; "required": false; }; "forceInvalid": { "alias": "forceInvalid"; "required": false; }; }, { "inputChange": "inputChange"; "inputFocus": "inputFocus"; "inputFinalized": "inputFinalized"; }, never, never, false, never>;
219
219
  }
@@ -20,5 +20,5 @@ export declare class CustomRequiredDirective implements Validator {
20
20
  [key: string]: any;
21
21
  };
22
22
  static ɵfac: i0.ɵɵFactoryDeclaration<CustomRequiredDirective, never>;
23
- static ɵdir: i0.ɵɵDirectiveDeclaration<CustomRequiredDirective, "[customRequired]", never, { "NullValues": "CustomNullValues"; "customRequired": "customRequired"; }, {}, never, never, false, never>;
23
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomRequiredDirective, "[customRequired]", never, { "NullValues": { "alias": "CustomNullValues"; "required": false; }; "customRequired": { "alias": "customRequired"; "required": false; }; }, {}, never, never, false, never>;
24
24
  }
@@ -54,5 +54,5 @@ export declare class ValidationAutocompleteComponent extends BaseValidation impl
54
54
  /** @ignore */
55
55
  registerOnTouched(fn: any): void;
56
56
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationAutocompleteComponent, [null, { optional: true; }, { optional: true; }, null, null]>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<ValidationAutocompleteComponent, "val-autocomplete", never, { "FilteredSource": "FilteredSource"; "value": "value"; "label": "label"; }, { "optionChange": "optionChange"; }, never, never, false, never>;
57
+ static ɵcmp: i0.ɵɵComponentDeclaration<ValidationAutocompleteComponent, "val-autocomplete", never, { "FilteredSource": { "alias": "FilteredSource"; "required": false; }; "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; }, { "optionChange": "optionChange"; }, never, never, false, never>;
58
58
  }
@@ -84,5 +84,5 @@ export declare class ValidationAutocompleteMultiComponent extends BaseValidation
84
84
  description: string;
85
85
  }): void;
86
86
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationAutocompleteMultiComponent, [null, { optional: true; }, { optional: true; }, null, null]>;
87
- static ɵcmp: i0.ɵɵComponentDeclaration<ValidationAutocompleteMultiComponent, "val-autocomplete-multi", never, { "ChipThreshold": "ChipThreshold"; "FilteredSource": "FilteredSource"; "UnboundMode": "UnboundMode"; "value": "value"; "label": "label"; "HideChoicesOnSelection": "HideChoicesOnSelection"; }, { "optionChange": "optionChange"; }, never, never, false, never>;
87
+ static ɵcmp: i0.ɵɵComponentDeclaration<ValidationAutocompleteMultiComponent, "val-autocomplete-multi", never, { "ChipThreshold": { "alias": "ChipThreshold"; "required": false; }; "FilteredSource": { "alias": "FilteredSource"; "required": false; }; "UnboundMode": { "alias": "UnboundMode"; "required": false; }; "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "HideChoicesOnSelection": { "alias": "HideChoicesOnSelection"; "required": false; }; }, { "optionChange": "optionChange"; }, never, never, false, never>;
88
88
  }
@@ -24,5 +24,5 @@ export declare class ValidationCurrencyComponent extends ValidationInputComponen
24
24
  */
25
25
  ngOnDestroy(): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationCurrencyComponent, [null, { optional: true; }, { optional: true; }, null, null]>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<ValidationCurrencyComponent, "val-currency", never, { "CurrencyOptions": "CurrencyOptions"; }, {}, never, never, false, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<ValidationCurrencyComponent, "val-currency", never, { "CurrencyOptions": { "alias": "CurrencyOptions"; "required": false; }; }, {}, never, never, false, never>;
28
28
  }
@@ -75,5 +75,5 @@ export declare class ValidationDateComponent extends BaseValidation implements C
75
75
  */
76
76
  registerOnTouched(fn: any): void;
77
77
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationDateComponent, [null, { optional: true; }, { optional: true; }, null, null, null]>;
78
- static ɵcmp: i0.ɵɵComponentDeclaration<ValidationDateComponent, "val-date", never, { "useJsDates": "useJsDates"; }, {}, never, never, false, never>;
78
+ static ɵcmp: i0.ɵɵComponentDeclaration<ValidationDateComponent, "val-date", never, { "useJsDates": { "alias": "useJsDates"; "required": false; }; }, {}, never, never, false, never>;
79
79
  }
@@ -105,5 +105,5 @@ export declare class ValidationDateTimeComponent extends BaseValidation implemen
105
105
  */
106
106
  registerOnTouched(fn: any): void;
107
107
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationDateTimeComponent, [null, { optional: true; }, { optional: true; }, null, null, null]>;
108
- static ɵcmp: i0.ɵɵComponentDeclaration<ValidationDateTimeComponent, "val-datetime", never, { "useJsDates": "useJsDates"; }, {}, never, never, false, never>;
108
+ static ɵcmp: i0.ɵɵComponentDeclaration<ValidationDateTimeComponent, "val-datetime", never, { "useJsDates": { "alias": "useJsDates"; "required": false; }; }, {}, never, never, false, never>;
109
109
  }
@@ -61,7 +61,15 @@ export declare class ValidationInputComponent extends BaseValidation implements
61
61
  /**
62
62
  * Tipo del componente, può essere "text" o "password" e viene impostato automaticamente dall'Input **Password**
63
63
  */
64
- type: string;
64
+ Type: string;
65
+ /**
66
+ * Maxlength html
67
+ */
68
+ maxlength: number;
69
+ /**
70
+ * Minlength html
71
+ */
72
+ minlength: number;
65
73
  /**
66
74
  * Indicazione se il componente ha o meno un suffisso.
67
75
  *
@@ -122,5 +130,5 @@ export declare class ValidationInputComponent extends BaseValidation implements
122
130
  */
123
131
  registerOnTouched(fn: any): void;
124
132
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationInputComponent, [null, { optional: true; }, { optional: true; }, null, null]>;
125
- static ɵcmp: i0.ɵɵComponentDeclaration<ValidationInputComponent, "val-input", never, { "Frozen": "Frozen"; "Password": "Password"; "showWarning": "showWarning"; "warningTitle": "warningTitle"; "warningClass": "warningClass"; "value": "value"; }, {}, ["suffix_internal", "prefix_internal"], never, false, never>;
133
+ static ɵcmp: i0.ɵɵComponentDeclaration<ValidationInputComponent, "val-input", never, { "Frozen": { "alias": "Frozen"; "required": false; }; "Password": { "alias": "Password"; "required": false; }; "showWarning": { "alias": "showWarning"; "required": false; }; "warningTitle": { "alias": "warningTitle"; "required": false; }; "warningClass": { "alias": "warningClass"; "required": false; }; "value": { "alias": "value"; "required": false; }; "Type": { "alias": "Type"; "required": false; }; "maxlength": { "alias": "maxlength"; "required": false; }; "minlength": { "alias": "minlength"; "required": false; }; }, {}, ["suffix_internal", "prefix_internal"], never, false, never>;
126
134
  }
@@ -91,5 +91,5 @@ export declare class ValidationSelectComponent extends BaseValidation implements
91
91
  */
92
92
  registerOnTouched(fn: any): void;
93
93
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationSelectComponent, [{ optional: true; }, { optional: true; }, null, null, null]>;
94
- static ɵcmp: i0.ɵɵComponentDeclaration<ValidationSelectComponent, "val-select", never, { "emptyFieldValue": "emptyFieldValue"; "placeHolderValue": "placeHolderValue"; "emptyValue": "emptyValue"; "showValidationSymbol": "showValidationSymbol"; "label": "label"; }, { "onBlur": "onBlur"; }, never, ["*"], false, never>;
94
+ static ɵcmp: i0.ɵɵComponentDeclaration<ValidationSelectComponent, "val-select", never, { "emptyFieldValue": { "alias": "emptyFieldValue"; "required": false; }; "placeHolderValue": { "alias": "placeHolderValue"; "required": false; }; "emptyValue": { "alias": "emptyValue"; "required": false; }; "showValidationSymbol": { "alias": "showValidationSymbol"; "required": false; }; "label": { "alias": "label"; "required": false; }; }, { "onBlur": "onBlur"; }, never, ["*"], false, never>;
95
95
  }
@@ -24,5 +24,5 @@ export declare class ValidationTextAreaComponent extends ValidationInputComponen
24
24
  */
25
25
  ngOnDestroy(): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationTextAreaComponent, [null, { optional: true; }, { optional: true; }, null, null]>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<ValidationTextAreaComponent, "val-textarea", never, { "rows": "rows"; }, {}, never, never, false, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<ValidationTextAreaComponent, "val-textarea", never, { "rows": { "alias": "rows"; "required": false; }; }, {}, never, never, false, never>;
28
28
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/forms-and-validations",
3
- "version": "15.2.57",
3
+ "version": "15.2.59",
4
4
  "private": false,
5
5
  "dependencies": {
6
6
  "tslib": "^2.0.0"
@@ -22,11 +22,7 @@
22
22
  "dayjs": "1.11.8",
23
23
  "sweetalert2": "11.7.12"
24
24
  },
25
- "module": "fesm2015/esfaenza-forms-and-validations.mjs",
26
- "es2020": "fesm2020/esfaenza-forms-and-validations.mjs",
27
- "esm2020": "esm2020/esfaenza-forms-and-validations.mjs",
28
- "fesm2020": "fesm2020/esfaenza-forms-and-validations.mjs",
29
- "fesm2015": "fesm2015/esfaenza-forms-and-validations.mjs",
25
+ "module": "fesm2022/esfaenza-forms-and-validations.mjs",
30
26
  "typings": "index.d.ts",
31
27
  "exports": {
32
28
  "./package.json": {
@@ -34,11 +30,9 @@
34
30
  },
35
31
  ".": {
36
32
  "types": "./index.d.ts",
37
- "esm2020": "./esm2020/esfaenza-forms-and-validations.mjs",
38
- "es2020": "./fesm2020/esfaenza-forms-and-validations.mjs",
39
- "es2015": "./fesm2015/esfaenza-forms-and-validations.mjs",
40
- "node": "./fesm2015/esfaenza-forms-and-validations.mjs",
41
- "default": "./fesm2020/esfaenza-forms-and-validations.mjs"
33
+ "esm2022": "./esm2022/esfaenza-forms-and-validations.mjs",
34
+ "esm": "./esm2022/esfaenza-forms-and-validations.mjs",
35
+ "default": "./fesm2022/esfaenza-forms-and-validations.mjs"
42
36
  }
43
37
  },
44
38
  "sideEffects": false
@@ -1,147 +0,0 @@
1
- // Angular
2
- import { NG_ASYNC_VALIDATORS, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl } from "@angular/forms";
3
- import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Inject, Input, Optional, Output, ViewEncapsulation } from "@angular/core";
4
- // Configurazioni
5
- import { LocalizationService } from "@esfaenza/localizations";
6
- // Direttive, Componenti, Librerie
7
- import { BaseValidation } from "../base-validation";
8
- import { BaseValidationLoc } from '../base-validation.loc';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@esfaenza/localizations";
11
- import * as i2 from "@angular/common";
12
- import * as i3 from "@angular/forms";
13
- import * as i4 from "@angular/material/legacy-form-field";
14
- import * as i5 from "@angular/material/legacy-input";
15
- import * as i6 from "ngx-bootstrap/tooltip";
16
- import * as i7 from "@angular/material/legacy-autocomplete";
17
- import * as i8 from "@angular/material/legacy-core";
18
- /**
19
- * Componente di validaizone per gli input di Autocompletamento
20
- */
21
- export class ValidationAutocompleteComponent extends BaseValidation {
22
- /** @ignore */
23
- constructor(cdr, _validators, _asyncValidators, injector, lc) {
24
- super(cdr);
25
- this._validators = _validators;
26
- this._asyncValidators = _asyncValidators;
27
- this.injector = injector;
28
- this.lc = lc;
29
- /** Sorgente da cui scegliere valori filtrata in base a quello che ha scritto l'utente */
30
- this.FilteredSource = [];
31
- /** Contenuto della label Floattante Material-Style */
32
- this.label = "";
33
- /** Evento che indica l'opzione selezionata dal componente. Il valore finale della selezione dovrà essere questo */
34
- this.optionChange = new EventEmitter();
35
- /** @ignore */
36
- this.onTouched = () => { }; //placeholder on touched function
37
- }
38
- /** @ignore */
39
- ngOnInit() {
40
- super.ngOnInit();
41
- this.registerFocusRequest();
42
- this.checkRequiredness(this._validators);
43
- }
44
- /** @ignore */
45
- ngOnDestroy() {
46
- super.ngOnDestroy();
47
- this.deregisterFocusRequest();
48
- if (this.tooltipSubscription)
49
- this.tooltipSubscription.unsubscribe();
50
- }
51
- /** @ignore */
52
- ngAfterViewInit() {
53
- this.postBinding();
54
- }
55
- /**
56
- * Metodo che si occupa di collegare i validatori e la funzione di reset dal **ControlValueAccessor** rappresentato
57
- * da questo componente al **ControlValueAccessor** rappresentato dall'effettivo elemento di Input presente lato HTML
58
- */
59
- postBinding() {
60
- this.CheckValidity();
61
- const ngControl = this.injector.get(NgControl, null);
62
- if (ngControl) {
63
- this.parentControl = ngControl.control;
64
- //se la variabile novalidate è true, elimino tutti i validatori eventualmente inseriti
65
- if (this.noValidate) {
66
- this.parentControl.clearValidators();
67
- this.parentControl.clearAsyncValidators();
68
- }
69
- else {
70
- this.baseInput.control.setAsyncValidators(this._asyncValidators);
71
- this.baseInput.control.setValidators(this._validators);
72
- }
73
- //faccio in modo che se chiamo il reset del controllo (o della form) dall'esterno si resetti anche il controllo nativo
74
- const origFunc = this.parentControl.reset;
75
- this.parentControl.reset = () => {
76
- origFunc.apply(this.parentControl);
77
- this.baseInput.control.reset();
78
- this.tooltip.hide();
79
- };
80
- }
81
- }
82
- /** @ignore */
83
- writeValue(value) {
84
- var val = value && this.FilteredSource ? this.FilteredSource.find(t => t.id == value) : null;
85
- if (val)
86
- this.optionChange.emit(val.id);
87
- this.propagateChange(val ? val.id : value);
88
- this.value = val ? val.description : value;
89
- }
90
- /**
91
- * L'emit della modifica al valore viene gestito su un evento custom (**inputChange**) come workaround al malfunzionamento dell'**ngModelChange** nativo
92
- *
93
- * @param {any} toEmit valore da propagare all'esterno
94
- */
95
- onModelChange(toEmit) {
96
- this.writeValue(toEmit);
97
- this.inputChange.emit(toEmit);
98
- this.onTouched();
99
- }
100
- /** @ignore */
101
- registerOnChange(fn) {
102
- this.propagateChange = fn;
103
- }
104
- /** @ignore */
105
- registerOnTouched(fn) {
106
- this.onTouched = fn;
107
- }
108
- }
109
- ValidationAutocompleteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ValidationAutocompleteComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: NG_VALIDATORS, optional: true }, { token: NG_ASYNC_VALIDATORS, optional: true }, { token: i0.Injector }, { token: i1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
110
- ValidationAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ValidationAutocompleteComponent, selector: "val-autocomplete", inputs: { FilteredSource: "FilteredSource", value: "value", label: "label" }, outputs: { optionChange: "optionChange" }, providers: [
111
- { provide: LocalizationService, useClass: BaseValidationLoc },
112
- {
113
- provide: NG_VALUE_ACCESSOR,
114
- useExisting: forwardRef(() => ValidationAutocompleteComponent),
115
- multi: true
116
- }
117
- ], usesInheritance: true, ngImport: i0, template: "<!-- Val-Model: {{value}} -->\r\n<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 || $event.keyCode == 27) && 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>{{validationFailedBind}}</span>\r\n </div>\r\n</ng-template>", styles: [".tooltip-inner{background-color:#842a30;color:#fff;font-size:12px;width:max-content}.tooltip{margin:auto auto auto 20%!important}.tooltip-inner{background-color:#842a30!important;color:#fff}.tooltip.top .tooltip-arrow:before,.tooltip.top .tooltip-arrow{border-top-color:#842a30}.close-button{position:absolute;right:0;top:-.2em;float:right;font-size:16px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5}.close-button:hover,.close-button:focus{text-decoration:none;cursor:pointer;opacity:.75}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i6.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i7.MatLegacyAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i7.MatLegacyAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ValidationAutocompleteComponent, decorators: [{
119
- type: Component,
120
- args: [{ selector: "val-autocomplete", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
121
- { provide: LocalizationService, useClass: BaseValidationLoc },
122
- {
123
- provide: NG_VALUE_ACCESSOR,
124
- useExisting: forwardRef(() => ValidationAutocompleteComponent),
125
- multi: true
126
- }
127
- ], encapsulation: ViewEncapsulation.None, template: "<!-- Val-Model: {{value}} -->\r\n<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 || $event.keyCode == 27) && 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>{{validationFailedBind}}</span>\r\n </div>\r\n</ng-template>", styles: [".tooltip-inner{background-color:#842a30;color:#fff;font-size:12px;width:max-content}.tooltip{margin:auto auto auto 20%!important}.tooltip-inner{background-color:#842a30!important;color:#fff}.tooltip.top .tooltip-arrow:before,.tooltip.top .tooltip-arrow{border-top-color:#842a30}.close-button{position:absolute;right:0;top:-.2em;float:right;font-size:16px;font-weight:700;color:inherit;text-shadow:0 1px 0 #fff;opacity:.5}.close-button:hover,.close-button:focus{text-decoration:none;cursor:pointer;opacity:.75}\n"] }]
128
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: Array, decorators: [{
129
- type: Optional
130
- }, {
131
- type: Inject,
132
- args: [NG_VALIDATORS]
133
- }] }, { type: Array, decorators: [{
134
- type: Optional
135
- }, {
136
- type: Inject,
137
- args: [NG_ASYNC_VALIDATORS]
138
- }] }, { type: i0.Injector }, { type: i1.LocalizationService }]; }, propDecorators: { FilteredSource: [{
139
- type: Input
140
- }], value: [{
141
- type: Input
142
- }], label: [{
143
- type: Input
144
- }], optionChange: [{
145
- type: Output
146
- }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvdmFsaWRhdGlvbnMvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybXMtYW5kLXZhbGlkYXRpb25zL3NyYy9saWIvdmFsaWRhdGlvbnMvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUvdmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBNEMsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvSixPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBWSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxTCxpQkFBaUI7QUFDakIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQUczRDs7R0FFRztBQWdCSCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsY0FBYztJQXFCL0QsY0FBYztJQUNkLFlBQVksR0FBc0IsRUFBNkMsV0FBdUIsRUFBbUQsZ0JBQTRCLEVBQVUsUUFBa0IsRUFBWSxFQUF1QjtRQUNoUCxLQUFLLENBQUMsR0FBRyxD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Q0FBQzs0QkFDOUQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTs7MEJBeUJBLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQW9DLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1CO3FHQWxCdEksY0FBYztzQkFBdEIsS0FBSztnQkFHVSxLQUFLO3NCQUFwQixLQUFLO2dCQUdVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBR0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFVudHlwZWRGb3JtQ29udHJvbCwgTkdfQVNZTkNfVkFMSURBVE9SUywgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIE5nQ29udHJvbCwgUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuLy8gQ29uZmlndXJhemlvbmlcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gXCJAZXNmYWVuemEvbG9jYWxpemF0aW9uc1wiO1xyXG5cclxuLy8gRGlyZXR0aXZlLCBDb21wb25lbnRpLCBMaWJyZXJpZVxyXG5pbXBvcnQgeyBCYXNlVmFsaWRhdGlvbiB9IGZyb20gXCIuLi9iYXNlLXZhbGlkYXRpb25cIjtcclxuaW1wb3J0IHsgQmFzZVZhbGlkYXRpb25Mb2MgfSBmcm9tICcuLi9iYXNlLXZhbGlkYXRpb24ubG9jJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnRlIGRpIHZhbGlkYWl6b25lIHBlciBnbGkgaW5wdXQgZGkgQXV0b2NvbXBsZXRhbWVudG9cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwidmFsLWF1dG9jb21wbGV0ZVwiLFxyXG4gICAgdGVtcGxhdGVVcmw6IFwidmFsaWRhdGlvbi1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWxcIixcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLCB1c2VDbGFzczogQmFzZVZhbGlkYXRpb25Mb2MgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBWYWxpZGF0aW9uQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWVcclxuICAgICAgICB9XHJcbiAgICBdLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHN0eWxlVXJsczogW1wiLi4vdmFsaWRhdGlvbi1zdHlsZS5zY3NzXCJdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uQXV0b2NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZhbGlkYXRpb24gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG5cclxuICAgIC8qKiBTb3JnZW50ZSBkYSBjdWkgc2NlZ2xpZXJlIHZhbG9yaSBmaWx0cmF0YSBpbiBiYXNlIGEgcXVlbGxvIGNoZSBoYSBzY3JpdHRvIGwndXRlbnRlICovXHJcbiAgICBASW5wdXQoKSBGaWx0ZXJlZFNvdXJjZTogeyBpZDogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nIH1bXSA9IFtdO1xyXG5cclxuICAgIC8qKiBWYWxvcmUgZGVsIG1vZGVsbG8gKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB2YWx1ZTogYW55O1xyXG5cclxuICAgIC8qKiBDb250ZW51dG8gZGVsbGEgbGFiZWwgRmxvYXR0YW50ZSBNYXRlcmlhbC1TdHlsZSAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBFdmVudG8gY2hlIGluZGljYSBsJ29wemlvbmUgc2VsZXppb25hdGEgZGFsIGNvbXBvbmVudGUuIElsIHZhbG9yZSBmaW5hbGUgZGVsbGEgc2VsZXppb25lIGRvdnLDoCBlc3NlcmUgcXVlc3RvICovXHJcbiAgICBAT3V0cHV0KCkgb3B0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAgIC8qKiBTdWJzY3JpcHRpb24gZGVsIHRvb3RsdGlwIGRhIHJpcHVsaXJlIGFsbGEgZGlzdHJ1emlvbmUgZGVsIGNvbXBvbmVudGUgKi9cclxuICAgIHByaXZhdGUgdG9vbHRpcFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKiBDb250cm9sbG8gZXNwb3N0byBvdHRlbnV0byB0cmFtaXRlIGluamVjdG9yICovXHJcbiAgICBwcml2YXRlIHBhcmVudENvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcclxuXHJcbiAgICAvKiogQGlnbm9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IoY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgQE9wdGlvbmFsKCkgQEluamVjdChOR19WQUxJREFUT1JTKSBwcml2YXRlIF92YWxpZGF0b3JzOiBBcnJheTxhbnk+LCBAT3B0aW9uYWwoKSBASW5qZWN0KE5HX0FTWU5DX1ZBTElEQVRPUlMpIHByaXZhdGUgX2FzeW5jVmFsaWRhdG9yczogQXJyYXk8YW55PiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsIHByb3RlY3RlZCBsYzogTG9jYWxpemF0aW9uU2VydmljZSkge1xyXG4gICAgICAgIHN1cGVyKGNkcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5yZWdpc3RlckZvY3VzUmVxdWVzdCgpO1xyXG5cclxuICAgICAgICB0aGlzLmNoZWNrUmVxdWlyZWRuZXNzKHRoaXMuX3ZhbGlkYXRvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMuZGVyZWdpc3RlckZvY3VzUmVxdWVzdCgpO1xyXG4gICAgICAgIGlmICh0aGlzLnRvb2x0aXBTdWJzY3JpcHRpb24pIHRoaXMudG9vbHRpcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5wb3N0QmluZGluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIGNoZSBzaSBvY2N1cGEgZGkgY29sbGVnYXJlIGkgdmFsaWRhdG9yaSBlIGxhIGZ1bnppb25lIGRpIHJlc2V0IGRhbCAqKkNvbnRyb2xWYWx1ZUFjY2Vzc29yKiogcmFwcHJlc2VudGF0byBcclxuICAgICAqIGRhIHF1ZXN0byBjb21wb25lbnRlIGFsICoqQ29udHJvbFZhbHVlQWNjZXNzb3IqKiByYXBwcmVzZW50YXRvIGRhbGwnZWZmZXR0aXZvIGVsZW1lbnRvIGRpIElucHV0IHByZXNlbnRlIGxhdG8gSFRNTFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHBvc3RCaW5kaW5nKCkge1xyXG4gICAgICAgIHRoaXMuQ2hlY2tWYWxpZGl0eSgpO1xyXG4gICAgICAgIGNvbnN0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgICAgICBpZiAobmdDb250cm9sKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFyZW50Q29udHJvbCA9IG5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuXHJcbiAgICAgICAgICAgIC8vc2UgbGEgdmFyaWFiaWxlIG5vdmFsaWRhdGUgw6ggdHJ1ZSwgZWxpbWlubyB0dXR0aSBpIHZhbGlkYXRvcmkgZXZlbnR1YWxtZW50ZSBpbnNlcml0aVxyXG4gICAgICAgICAgICBpZiAodGhpcy5ub1ZhbGlkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudENvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudENvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmFzZUlucHV0LmNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuX2FzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VJbnB1dC5jb250cm9sLnNldFZhbGlkYXRvcnModGhpcy5fdmFsaWRhdG9ycyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vZmFjY2lvIGluIG1vZG8gY2hlIHNlIGNoaWFtbyBpbCByZXNldCBkZWwgY29udHJvbGxvIChvIGRlbGxhIGZvcm0pIGRhbGwnZXN0ZXJubyBzaSByZXNldHRpIGFuY2hlIGlsIGNvbnRyb2xsbyBuYXRpdm9cclxuICAgICAgICAgICAgY29uc3Qgb3JpZ0Z1bmMgPSB0aGlzLnBhcmVudENvbnRyb2wucmVzZXQ7XHJcbiAgICAgICAgICAgIHRoaXMucGFyZW50Q29udHJvbC5yZXNldCA9ICgpID0+IHsgLy9mYWNjaW8gaW4gbW9kbyBjaGUgc2UgY2hpYW1vIGlsIHJlc2V0IGRlbCBjb250cm9sbG8gKG8gZGVsbGEgZm9ybSkgZGFsbCdlc3Rlcm5vIHNpIHJlc2V0dGkgYW5jaGUgaWwgY29udHJvbGxvIG5hdGl2b1xyXG4gICAgICAgICAgICAgICAgb3JpZ0Z1bmMuYXBwbHkodGhpcy5wYXJlbnRDb250cm9sKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmFzZUlucHV0LmNvbnRyb2wucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudG9vbHRpcC5oaWRlKCk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHsgfTsgLy9wbGFjZWhvbGRlciBvbiB0b3VjaGVkIGZ1bmN0aW9uXHJcblxyXG4gICAgLyoqIEBpZ25vcmUgKi9cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHZhciB2YWwgPSB2YWx1ZSAmJiB0aGlzLkZpbHRlcmVkU291cmNlID8gdGhpcy5GaWx0ZXJlZFNvdXJjZS5maW5kKHQgPT4gdC5pZCA9PSB2YWx1ZSkgOiBudWxsO1xyXG4gICAgICAgIGlmKHZhbCkgdGhpcy5vcHRpb25DaGFuZ2UuZW1pdCh2YWwuaWQpO1xyXG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHZhbCA/IHZhbC5pZCA6IHZhbHVlKTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsID8gdmFsLmRlc2NyaXB0aW9uIDogdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMJ2VtaXQgZGVsbGEgbW9kaWZpY2EgYWwgdmFsb3JlIHZpZW5lIGdlc3RpdG8gc3UgdW4gZXZlbnRvIGN1c3RvbSAoKippbnB1dENoYW5nZSoqKSBjb21lIHdvcmthcm91bmQgYWwgbWFsZnVuemlvbmFtZW50byBkZWxsJyoqbmdNb2RlbENoYW5nZSoqIG5hdGl2b1xyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gdG9FbWl0IHZhbG9yZSBkYSBwcm9wYWdhcmUgYWxsJ2VzdGVybm9cclxuICAgICAqL1xyXG4gICAgb25Nb2RlbENoYW5nZSh0b0VtaXQpIHtcclxuICAgICAgICB0aGlzLndyaXRlVmFsdWUodG9FbWl0KTtcclxuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlLmVtaXQodG9FbWl0KTtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlICovXHJcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICAgIH1cclxufSIsIjwhLS0gVmFsLU1vZGVsOiB7e3ZhbHVlfX0gLS0+XHJcbjxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwie3tGaWVsZEFwcGVhcmVuY2V9fVwiIGNsYXNzPVwibWF0LWZ1bGwtd2lkdGggbWF0LW5vLWJvcmRlci10b3AgbWF0LWhlaWdodC1maXhlZFwiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFB4XCI+XHJcbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsfX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dFxyXG4gICAgICAgICAgICNodG1sSW5wdXRcclxuICAgICAgICAgICAjYmFzZUlucHV0PSduZ01vZGVsJ1xyXG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICB0cmlnZ2Vycz1cIlwiXHJcbiAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcclxuICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJ9fVwiXHJcbiAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcclxuICAgICAgICAgICBuYW1lPVwidmFsLWlucHV0XCJcclxuICAgICAgICAgICBpZD1cInt7aWR9fVwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wge3tjbGFzc319XCJcclxuICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICBbY2xhc3MuY2hlY2tpbmctZmllbGRdPVwiIW5vVmFsaWRhdGVcIlxyXG4gICAgICAgICAgIFt0b29sdGlwXT1cInRvbFRlbXBsYXRlXCJcclxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiUmVhZG9ubHkgfHwgZGlzYWJsZWRcIlxyXG4gICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgKGNsaWNrKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgKGZvY3VzKT1cImNoZWNrVG9vbHRpcCgpO1wiXHJcbiAgICAgICAgICAgKGtleXVwKT1cIigkZXZlbnQua2V5Q29kZSA9PSAxMyB8fCAkZXZlbnQua2V5Q29kZSA9PSAyNykgJiYgb25GaW5hbGl6ZSgpO1wiXHJcbiAgICAgICAgICAgKGJsdXIpPVwiY2xvc2VUb29sdGlwKCk7IG9uRmluYWxpemUoKTtcIj5cclxuXHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZSBhdXRvQWN0aXZlRmlyc3RPcHRpb24gI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIEZpbHRlcmVkU291cmNlXCIgW3ZhbHVlXT1cIm9wdGlvbi5pZFwiPlxyXG4gICAgICAgICAgICB7e29wdGlvbi5kZXNjcmlwdGlvbn19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0b2xUZW1wbGF0ZT5cclxuICAgIDxkaXYgKGNsaWNrKT1cImNsb3NlVG9vbHRpcCgpXCI+XHJcbiAgICAgICAgPHNwYW4+e3t2YWxpZGF0aW9uRmFpbGVkQmluZH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19