@eqproject/eqp-dynamic-module 0.0.4 → 0.0.5

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 (85) hide show
  1. package/README.md +43 -24
  2. package/bundles/eqproject-eqp-dynamic-module.umd.js +871 -226
  3. package/bundles/eqproject-eqp-dynamic-module.umd.js.map +1 -1
  4. package/bundles/eqproject-eqp-dynamic-module.umd.min.js +2 -2
  5. package/bundles/eqproject-eqp-dynamic-module.umd.min.js.map +1 -1
  6. package/eqproject-eqp-dynamic-module.d.ts +2 -1
  7. package/eqproject-eqp-dynamic-module.metadata.json +1 -1
  8. package/esm2015/eqproject-eqp-dynamic-module.js +3 -2
  9. package/esm2015/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +198 -22
  10. package/esm2015/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +124 -9
  11. package/esm2015/lib/components/private/add-form-field/add-form-field.component.js +64 -12
  12. package/esm2015/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +2 -2
  13. package/esm2015/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +2 -2
  14. package/esm2015/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +2 -2
  15. package/esm2015/lib/components/private/field-templates/date-field-template/date-field-template.component.js +2 -2
  16. package/esm2015/lib/components/private/field-templates/image-field-template/image-field-template.component.js +2 -2
  17. package/esm2015/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +21 -24
  18. package/esm2015/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +10 -2
  19. package/esm2015/lib/components/private/field-templates/text-field-template/text-field-template.component.js +18 -2
  20. package/esm2015/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +2 -2
  21. package/esm2015/lib/components/private/form-records/add-form-record/add-form-record.component.js +2 -2
  22. package/esm2015/lib/components/private/form-records/list-form-record/list-form-record.component.js +2 -18
  23. package/esm2015/lib/components/private/spinner/spinner.component.js +23 -0
  24. package/esm2015/lib/eqp-dynamic-module.module.js +3 -1
  25. package/esm2015/lib/models/endPointConfiguration.model.js +23 -0
  26. package/esm2015/lib/models/fields/dateField.model.js +1 -1
  27. package/esm2015/lib/models/fields/listValueField.model.js +3 -1
  28. package/esm2015/lib/models/fields/numericField.model.js +1 -1
  29. package/esm2015/lib/models/fields/textField.model.js +10 -1
  30. package/esm2015/lib/models/form.model.js +1 -1
  31. package/esm2015/lib/models/record.model.js +6 -1
  32. package/esm2015/lib/services/eqp-dynamic-module-dialog.service.js +10 -1
  33. package/esm2015/lib/services/spinner.service.js +43 -0
  34. package/esm2015/lib/services/utilityHelper.services.js +180 -13
  35. package/esm2015/public-api.js +3 -1
  36. package/esm5/eqproject-eqp-dynamic-module.js +3 -2
  37. package/esm5/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +204 -22
  38. package/esm5/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +126 -8
  39. package/esm5/lib/components/private/add-form-field/add-form-field.component.js +64 -12
  40. package/esm5/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +2 -2
  41. package/esm5/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +2 -2
  42. package/esm5/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +2 -2
  43. package/esm5/lib/components/private/field-templates/date-field-template/date-field-template.component.js +2 -2
  44. package/esm5/lib/components/private/field-templates/image-field-template/image-field-template.component.js +2 -2
  45. package/esm5/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +22 -24
  46. package/esm5/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +10 -2
  47. package/esm5/lib/components/private/field-templates/text-field-template/text-field-template.component.js +18 -2
  48. package/esm5/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +2 -2
  49. package/esm5/lib/components/private/form-records/add-form-record/add-form-record.component.js +2 -2
  50. package/esm5/lib/components/private/form-records/list-form-record/list-form-record.component.js +2 -18
  51. package/esm5/lib/components/private/spinner/spinner.component.js +24 -0
  52. package/esm5/lib/eqp-dynamic-module.module.js +3 -1
  53. package/esm5/lib/models/endPointConfiguration.model.js +33 -0
  54. package/esm5/lib/models/fields/dateField.model.js +1 -1
  55. package/esm5/lib/models/fields/listValueField.model.js +7 -1
  56. package/esm5/lib/models/fields/numericField.model.js +1 -1
  57. package/esm5/lib/models/fields/textField.model.js +10 -1
  58. package/esm5/lib/models/form.model.js +1 -1
  59. package/esm5/lib/models/record.model.js +8 -1
  60. package/esm5/lib/services/eqp-dynamic-module-dialog.service.js +11 -1
  61. package/esm5/lib/services/spinner.service.js +46 -0
  62. package/esm5/lib/services/utilityHelper.services.js +182 -11
  63. package/esm5/public-api.js +3 -1
  64. package/fesm2015/eqproject-eqp-dynamic-module.js +820 -212
  65. package/fesm2015/eqproject-eqp-dynamic-module.js.map +1 -1
  66. package/fesm5/eqproject-eqp-dynamic-module.js +864 -226
  67. package/fesm5/eqproject-eqp-dynamic-module.js.map +1 -1
  68. package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +78 -4
  69. package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +51 -2
  70. package/lib/components/private/add-form-field/add-form-field.component.d.ts +29 -4
  71. package/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.d.ts +3 -11
  72. package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +3 -1
  73. package/lib/components/private/spinner/spinner.component.d.ts +9 -0
  74. package/lib/models/endPointConfiguration.model.d.ts +35 -0
  75. package/lib/models/fields/dateField.model.d.ts +1 -0
  76. package/lib/models/fields/listValueField.model.d.ts +17 -0
  77. package/lib/models/fields/numericField.model.d.ts +3 -1
  78. package/lib/models/fields/textField.model.d.ts +9 -1
  79. package/lib/models/form.model.d.ts +1 -0
  80. package/lib/models/record.model.d.ts +8 -0
  81. package/lib/services/eqp-dynamic-module-dialog.service.d.ts +6 -0
  82. package/lib/services/spinner.service.d.ts +15 -0
  83. package/lib/services/utilityHelper.services.d.ts +30 -1
  84. package/package.json +3 -3
  85. package/public-api.d.ts +2 -0
@@ -1,27 +1,101 @@
1
1
  import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { Context } from '../../../models/context.model';
3
+ import { EndPointConfiguration } from '../../../models/endPointConfiguration.model';
3
4
  import { Form, FormTypeEnum } from '../../../models/form.model';
4
5
  import { Record } from '../../../models/record.model';
6
+ import { UtilityHelperService } from '../../../services/utilityHelper.services';
5
7
  export declare class EqpDynamicModuleComponent implements OnInit {
8
+ private utilityHelperService;
6
9
  context: Context;
7
- form: Form;
10
+ formID: string;
8
11
  values: Array<Record>;
9
12
  showButtons: boolean;
10
13
  showTitle: boolean;
11
- viewMode: FormTypeEnum;
14
+ /**
15
+ * Url del server da chiamare per recuperare, salvare o eliminare i record.
16
+ * Usato per creare la configurazione di default degli endpoint da chiamare.
17
+ */
18
+ baseServerUrl: string;
19
+ /**
20
+ * Token da usare negli endpoint da chiamare per recuperare o salvare i record.
21
+ * Usato solo se viene popolata la proprietà "baseServerUrl".
22
+ */
23
+ userToken: string;
24
+ /**
25
+ * Configurazione degli endpoint da chiamare per recuperare o salvare i dati.
26
+ * Può essere definita dall'utente oppure lasciata null, viene popolata con dei
27
+ * valori di default se viene valorizzata la proprietà "baseServerUrl" altrimenti
28
+ * viene lasciata null e non viene eseguita nessuna chiamata al server.
29
+ */
30
+ endPointConfiguration: EndPointConfiguration;
31
+ /**
32
+ * Eventi emessi quando si salva, elimina o duplica un record
33
+ * se non è stato specificato un endpoint da chiamare.
34
+ */
12
35
  saveRecord: EventEmitter<Record>;
13
36
  deleteRecord: EventEmitter<Record>;
14
37
  duplicateRecord: EventEmitter<Record>;
38
+ /**
39
+ * Eventi emessi DOPO aver eseguito una chiamata al server per il salvataggio,
40
+ * l'eliminazione o la duplicazione di un record all'endpoint specificato.
41
+ */
42
+ afterSaveRecord: EventEmitter<Record>;
43
+ afterDeleteRecord: EventEmitter<Record>;
44
+ afterDuplicateRecord: EventEmitter<Record>;
45
+ form: Form;
46
+ viewMode: FormTypeEnum;
15
47
  FormTypeEnum: typeof FormTypeEnum;
16
48
  selectedRecord: Record;
17
49
  onlyView: boolean;
18
- constructor();
50
+ constructor(utilityHelperService: UtilityHelperService);
19
51
  ngOnInit(): void;
52
+ getFormByID(): void;
53
+ /**
54
+ * Metodo per configurare gli endpoint da usare di default a partire dall'url base del server
55
+ * a cui si deve connettere e al token da passare per autenticarsi.
56
+ * Se la proprietà "baseServerUrl" è null e non sono stati configurati i vari endpoint allora
57
+ * non viene eseguita nessuna chiamata http per recuperare/salvare i dati.
58
+ */
59
+ configureDefaultEndPoints(): void;
60
+ /**
61
+ * Metodo per recuperare tutti i record salvati per una particolare Form.
62
+ * La chiamata viene effettuata solo se è stato configurato l'endPoint da usare.
63
+ * La risposta della chiamata deve essere un array di oggetti di tipo "DynRecord"
64
+ * a partire dai quali vengono ricreati i Record usati nel client.
65
+ */
66
+ getRecordsByFormID(): void;
67
+ /**
68
+ * Metodo invocato quando si vuole aggiungere, visualizzare o modificare un record.
69
+ * Se l'evento è null vuol dire che stiamo aggiungendo un nuovo record altrimenti siamo in modifica
70
+ * o visualizzazione. In questi ultimi due casi, se è stato configurato un endpoint per il recupero
71
+ * del record completo allora viene effettuata una chiamata al server, altrimenti viene usato l'oggetto selezionato.
72
+ * @param event Oggetto con due proprietà:
73
+ * "record" = oggetto da modificare/visualizzare,
74
+ * "onlyView" = booleano (se TRUE siamo in visualizzazione altrimenti in modifica)
75
+ */
20
76
  onAddViewEditRecord(event: {
21
77
  record: Record;
22
78
  onlyView: boolean;
23
79
  }): void;
24
- onSaveForm(event: Record): void;
80
+ /**
81
+ * Metodo per salvare il record aggiunto o modificato.
82
+ * Se è stato configurato un endPoint per il salvataggio viene effettuata una chiamata al server passando l'oggeto da salvare
83
+ * nel body della chiamata, altrimenti scatena l'evento "saveRecord".
84
+ * @param event Oggetto di tipo Record da salvare.
85
+ */
86
+ onSaveRecord(event: Record): void;
87
+ /**
88
+ * Metodo per duplicare un record precedentemente salvato.
89
+ * Se è stato configurato un endPoint per la duplicazione lato server allora effettua una chiamata passando nel body
90
+ * un oggetto contenente il record da duplicare, altrimenti scatena l'evento di output "duplicateRecord".
91
+ * @param record Oggetto di tipo Record da duplicare.
92
+ */
25
93
  onDuplicateRecord(record: Record): void;
94
+ /**
95
+ * Metodo per eliminare un record.
96
+ * Se è stato configurato un endPoint per l'eliminazione allora effettua una chiamata passando l'ID del record da eliminare
97
+ * come query param all'interno della rotta, altrimenti scatena l'evento di output "deleteRecord".
98
+ * @param record Oggetto di tipo Record da duplicare.
99
+ */
26
100
  onDeleteRecord(record: Record): void;
27
101
  }
@@ -4,13 +4,34 @@ import { MatDialog, MatDialogRef } from '@angular/material/dialog';
4
4
  import { ConfigColumn, EqpTableComponent } from '@eqproject/eqp-table';
5
5
  import { BaseField } from '../../../models/baseField.model';
6
6
  import { Context } from '../../../models/context.model';
7
+ import { EndPointConfiguration } from '../../../models/endPointConfiguration.model';
7
8
  import { ActionOnRecord, Form, FormScalarTypeEnum, FormTypeEnum } from '../../../models/form.model';
9
+ import { UtilityHelperService } from '../../../services/utilityHelper.services';
8
10
  export declare class EqpDynamicModuleConfiguratorComponent implements OnInit {
9
11
  private formBuilder;
10
12
  private dialog;
13
+ private utilityHelperService;
11
14
  context: Context;
12
15
  form: Form;
16
+ formID: string;
13
17
  innerFormManagment: boolean;
18
+ /**
19
+ * Url del server da chiamare per recuerare, salvare o eliminare i record.
20
+ * Usato per creare la configurazione di default degli endpoint da chiamare.
21
+ */
22
+ baseServerUrl: string;
23
+ /**
24
+ * Token da usare negli endpoint da chiamare per recuperare o salvare i record.
25
+ * Usato solo se viene popolata la proprietà "baseServerUrl".
26
+ */
27
+ userToken: string;
28
+ /**
29
+ * Configurazione degli endpoint da chiamare per recuperare o salvare i dati.
30
+ * Può essere definita dall'utente oppure lasciata null, viene popolata con dei
31
+ * valori di default se viene valorizzata la proprietà "baseServerUrl" altrimenti
32
+ * viene lasciata null e non viene eseguita nessuna chiamata al server.
33
+ */
34
+ endPointConfiguration: EndPointConfiguration;
14
35
  formFormGroup: FormGroup;
15
36
  formCompleted: boolean;
16
37
  previewForm: Form;
@@ -39,9 +60,28 @@ export declare class EqpDynamicModuleConfiguratorComponent implements OnInit {
39
60
  indexSelectedAction: number;
40
61
  dialogActionOnRecordRef: MatDialogRef<TemplateRef<any>>;
41
62
  dialogActionOnRecord: TemplateRef<any>;
63
+ /**
64
+ * Evento emesso quando si salva una form e non è stato specificato un endpoint da chiamare.
65
+ */
42
66
  saveFormEvent: EventEmitter<Form>;
43
- constructor(formBuilder: FormBuilder, dialog: MatDialog);
67
+ /**
68
+ * Evento emesso DOPO aver eseguito una chiamata al server per il salvataggiodi una form all'endpoint specificato.
69
+ */
70
+ afterSaveFormEvent: EventEmitter<Form>;
71
+ constructor(formBuilder: FormBuilder, dialog: MatDialog, utilityHelperService: UtilityHelperService);
44
72
  ngOnInit(): void;
73
+ /**
74
+ * Metodo per configurare gli endpoint da usare di default a partire dall'url base del server
75
+ * a cui si deve connettere e al token da passare per autenticarsi.
76
+ * Se la proprietà baseServerUrl è null e non sono stati configurati i vari endpoint allora
77
+ * non viene eseguita nessuna chiamata http per recuperare/salvare i dati.
78
+ */
79
+ configureDefaultEndPoints(): void;
80
+ /**
81
+ * Metodo per recuperare tutti i record salvati per una particolare Form.
82
+ * La chiamata viene effettuata solo se è stato configurato l'endPoint da usare.
83
+ */
84
+ getFormByID(): void;
45
85
  /**
46
86
  * Metodo invocato al cambio del tipo di visualizzazione della form.
47
87
  * Se l'utente sceglie una visualizzazione raggruppata il metodo aggiunge al FormGroup un nuovo
@@ -120,9 +160,18 @@ export declare class EqpDynamicModuleConfiguratorComponent implements OnInit {
120
160
  */
121
161
  setFormStatus(completed: boolean): void;
122
162
  /**
123
- * Metodo che scatena l'evento di output per salvare la form creata alla fine del wizard
163
+ * Metodo per salvare la form creata alla fine del wizard.
164
+ * Se è stato configurato un endPoint per il salvataggio viene effettuata una chiamata al server passando l'oggeto da salvare
165
+ * nel body della chiamata, altrimenti scatena l'evento "saveFormEvent".
166
+ * NOTA: Per comunicare correttamente con la parte server del modulo dinamico bisogna modificare l'array dei Fields.
167
+ * Al posto di passare un array di BaseField bisogna passare un array di oggetti del tipo { FieldType: FieldTypeEnum, Value: BaseField }.
124
168
  */
125
169
  saveForm(): void;
170
+ /**
171
+ * Metodo per impostare la form e configurare colonne/FormGourp.
172
+ * @param form Form da utilizzare.
173
+ */
174
+ private setFormAndConfigure;
126
175
  /**
127
176
  * Configura le colonne per le tabelle necessarie alla creazione della form:
128
177
  * - per la visualizzazione dei campi inseriti
@@ -1,18 +1,20 @@
1
- import { EventEmitter, OnInit, TemplateRef } from '@angular/core';
1
+ import { ChangeDetectorRef, EventEmitter, OnInit, TemplateRef } from '@angular/core';
2
2
  import { FormBuilder, FormGroup } from '@angular/forms';
3
3
  import { MatDialog, MatDialogRef } from '@angular/material/dialog';
4
- import { IAttachmentDTO } from '@eqproject/eqp-attachments';
4
+ import { AttachmentType, EqpAttachmentsComponent, IAttachmentDTO } from '@eqproject/eqp-attachments';
5
5
  import { EnumHelper } from '@eqproject/eqp-select';
6
6
  import { ConfigColumn, EqpTableComponent } from '@eqproject/eqp-table';
7
7
  import { BaseField, ColSpanSizesEnum, FieldTypeEnum } from '../../../models/baseField.model';
8
8
  import { BoolPresentantioEnum } from '../../../models/fields/booleanField.model';
9
9
  import { DateTimeTypeEnum } from '../../../models/fields/dateField.model';
10
10
  import { ListPresentationEnum } from '../../../models/fields/listValueField.model';
11
+ import { TextMaskEnum } from '../../../models/fields/textField.model';
11
12
  import { FormFieldGroup } from '../../../models/form.model';
12
13
  export declare class AddFormFieldComponent implements OnInit {
13
14
  private formBuilder;
14
15
  private enumHelper;
15
16
  private dialog;
17
+ private cdr;
16
18
  field: BaseField | any;
17
19
  indexField: number;
18
20
  formFieldsGroups: Array<FormFieldGroup>;
@@ -54,11 +56,14 @@ export declare class AddFormFieldComponent implements OnInit {
54
56
  indexSelectedMetadata: number;
55
57
  dialogMetadataRef: MatDialogRef<TemplateRef<any>>;
56
58
  dialogMetadata: TemplateRef<any>;
59
+ buttonImagesKeyValueInputColumn: TemplateRef<any>;
57
60
  FieldTypeEnum: typeof FieldTypeEnum;
58
61
  BoolPresentantioEnum: typeof BoolPresentantioEnum;
59
62
  DateTimeTypeEnum: typeof DateTimeTypeEnum;
60
63
  ListPresentationEnum: typeof ListPresentationEnum;
61
- constructor(formBuilder: FormBuilder, enumHelper: EnumHelper, dialog: MatDialog);
64
+ TextMaskEnum: typeof TextMaskEnum;
65
+ AttachmentType: typeof AttachmentType;
66
+ constructor(formBuilder: FormBuilder, enumHelper: EnumHelper, dialog: MatDialog, cdr: ChangeDetectorRef);
62
67
  ngOnInit(): void;
63
68
  /**
64
69
  * Metodo per impostare i valori da suggerire nell'autocomplete del campo Formula.
@@ -103,7 +108,27 @@ export declare class AddFormFieldComponent implements OnInit {
103
108
  * seleziona la classe "col-sm-6", al change del valore questo metodo rimuove dalla select
104
109
  * tutti gli altri valori per la grandezza di schermo selezionata.
105
110
  */
106
- onColSizeSelect(): void;
111
+ onColSpanSizeSelect(): void;
112
+ /**
113
+ * Metodo invocato al cambio del tipo di visualizzazione scelta per i campi di tipo elenco generico.
114
+ * Se viene scelta la visualizzazione ad immagini svuota la lista delle coppie chiave-valore inserite
115
+ * in precedenza, altrimenti svuota la lista delle immagini caricate.
116
+ */
117
+ onPresentationModeChange(): void;
118
+ /**
119
+ * Metodo invocato quando viene caricato il componente eqp-attachments per caricare le immagini da usare
120
+ * nella visualizzazione ad immagini dei campi di tipo "Elenco generico". Aggiunge due colonne a quelle
121
+ * configurate nel componente in cui l'utente può indicare chiave e valore della scelta.
122
+ * @param component Istanza del componente eqp-attachments in cui effettuare la modifica.
123
+ */
124
+ configureButtonImagesColumns(component: EqpAttachmentsComponent): void;
125
+ /**
126
+ * Metodo invocato al salvataggio degli allegati quando viene configurato un campo di tipo "Elenco generico"
127
+ * con il tipo di visualizzazione ad immagini. Intercetta l'elenco aggiornato delle immagini caricate e lo
128
+ * memorizza nell'oggetto field corrente.
129
+ * @param attachments Array aggiornato degli allegati caricati.
130
+ */
131
+ catchButtonImagesChange(attachments: Array<IAttachmentDTO>): void;
107
132
  /**
108
133
  * Metodo chiamato al keyup degli input testuali che prevedono l'aggiunta del valore inserito in un array.
109
134
  * Se l'utente preme il tasto invio, in base al tipo di campo che sta inserendo/modificando, questo metodo
@@ -11,6 +11,7 @@ export declare class ListValueFieldTemplateComponent implements OnInit, OnChange
11
11
  Key: string;
12
12
  Value: any;
13
13
  Selected?: boolean;
14
+ ImgUrl?: string;
14
15
  }[];
15
16
  constructor();
16
17
  ngOnInit(): void;
@@ -19,17 +20,6 @@ export declare class ListValueFieldTemplateComponent implements OnInit, OnChange
19
20
  * Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
20
21
  */
21
22
  updateField(): void;
22
- /**
23
- * Metodo per recuperare la classe da applicare al button (nella relativa visualizzazione).
24
- * Se il pulsante è stato selezionato imposta la classe "selected-button".
25
- * @param data Oggetto bindato al pulsante
26
- * @returns Restituisce la classe da applicare tramite [ngClass]
27
- */
28
- getSelectButtonClass(data: {
29
- Key: string;
30
- Value: any;
31
- Selected?: boolean;
32
- }): string;
33
23
  /**
34
24
  * Metodo invocato quando viene selezionata un'opzione nella visualizzazione a button
35
25
  * @param data Rappresenta l'oggetto selezionato
@@ -38,6 +28,7 @@ export declare class ListValueFieldTemplateComponent implements OnInit, OnChange
38
28
  Key: string;
39
29
  Value: any;
40
30
  Selected?: boolean;
31
+ ImgUrl?: string;
41
32
  }): void;
42
33
  /**
43
34
  * Metodo per aggiornare il/i valore/i selezionato/i dall'utente.
@@ -52,6 +43,7 @@ export declare class ListValueFieldTemplateComponent implements OnInit, OnChange
52
43
  * Metodo per creare un array di oggetti del tipo { Key: string, Value: any } da usare come sorgente dati per la eqp-select.
53
44
  */
54
45
  private setArrayData;
46
+ private createArrayDataElement;
55
47
  /**
56
48
  * Metodo per aggiornare il valore e il validator del FormControl associato al campo.
57
49
  */
@@ -1,14 +1,16 @@
1
1
  import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
2
  import { Record } from '../../../../models/record.model';
3
- import { TextField } from '../../../../models/fields/textField.model';
3
+ import { TextMaskEnum, TextField } from '../../../../models/fields/textField.model';
4
4
  import { IBaseFieldComponent } from '../../../../interfaces/iBaseFieldComponent.interface';
5
5
  export declare class TextFieldTemplateComponent implements OnInit, OnChanges, IBaseFieldComponent {
6
6
  field: TextField;
7
7
  record: Record;
8
8
  recordChange: EventEmitter<Record>;
9
+ InputMaskEnum: typeof TextMaskEnum;
9
10
  constructor();
10
11
  ngOnInit(): void;
11
12
  ngOnChanges(changes: SimpleChanges): void;
13
+ getInputType(): "password" | "text" | "email" | "tel" | "url";
12
14
  /**
13
15
  * Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
14
16
  */
@@ -0,0 +1,9 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { SpinnerService } from '../../../services/spinner.service';
4
+ export declare class SpinnerComponent implements OnInit {
5
+ private spinnerService;
6
+ isLoading: Subject<boolean>;
7
+ constructor(spinnerService: SpinnerService);
8
+ ngOnInit(): void;
9
+ }
@@ -0,0 +1,35 @@
1
+ export declare class EndPointConfiguration {
2
+ Records: {
3
+ GetByFormIDEndPoint?: EndPointData;
4
+ GetByIDEndPoint?: EndPointData;
5
+ SaveEndPoint?: EndPointData;
6
+ DuplicateEndPoint?: EndPointData;
7
+ DeleteEndPoint?: EndPointData;
8
+ };
9
+ Forms: {
10
+ GetByIDEndPoint: EndPointData;
11
+ SaveEndPoint: EndPointData;
12
+ };
13
+ }
14
+ export declare class EndPointData {
15
+ Url: string;
16
+ Token?: string;
17
+ RequestMethod: RequestMethodEnum;
18
+ Params?: EndPointDataParams[];
19
+ }
20
+ export declare class EndPointDataParams {
21
+ ParamName: string;
22
+ ParamValue: any;
23
+ ParamType: ParamTypeEnum;
24
+ }
25
+ export declare enum ParamTypeEnum {
26
+ "Query param" = 1,
27
+ "In route" = 2,
28
+ "In Body" = 3
29
+ }
30
+ export declare enum RequestMethodEnum {
31
+ GET = "GET",
32
+ POST = "POST",
33
+ PUT = "PUT",
34
+ DELETE = "DELETE"
35
+ }
@@ -4,6 +4,7 @@ export declare class DateField extends BaseField {
4
4
  IsOnlyDate: DateTimeTypeEnum;
5
5
  MinDate: Date;
6
6
  MaxDate: Date;
7
+ DateFormat: string;
7
8
  }
8
9
  export declare enum DateTimeTypeEnum {
9
10
  "Solo data" = 1,
@@ -1,3 +1,4 @@
1
+ import { AttachmentType, IAttachmentDTO } from "@eqproject/eqp-attachments";
1
2
  import { BaseField } from "../baseField.model";
2
3
  /**Lista di valori */
3
4
  export declare class ListValueField extends BaseField {
@@ -12,6 +13,22 @@ export declare class ListValueField extends BaseField {
12
13
  IsMultiChoiche: boolean;
13
14
  /**Modalità di presentazione */
14
15
  PresentationMode: ListPresentationEnum;
16
+ /**Elenco delle immagini per la visualizzazione a immagini (ListPresentationEnum.Immagini) */
17
+ ButtonImageList: Array<ButtonImage>;
18
+ }
19
+ export declare class ButtonImage implements IAttachmentDTO {
20
+ ButtonKey: string;
21
+ ButtonValue: string;
22
+ ID: string | number;
23
+ FileName?: string;
24
+ FileContentType?: string;
25
+ FileExtension?: string;
26
+ FilePath?: string;
27
+ AttachmentType?: AttachmentType;
28
+ FileDataBase64?: string;
29
+ IsImage?: boolean;
30
+ FileThumbnailBase64?: string;
31
+ TrustedUrl?: any;
15
32
  }
16
33
  export declare enum ListPresentationEnum {
17
34
  "Combo box" = 1,
@@ -4,6 +4,8 @@ export declare class NumericField extends BaseField {
4
4
  IsInteger: boolean;
5
5
  MinValue: number;
6
6
  MaxValue: number;
7
- NumberFormat: string;
7
+ DecimalSeparator: string;
8
+ DecimalPrecision: number;
9
+ ThousandsSeparator: string;
8
10
  CurrencySymbol: string;
9
11
  }
@@ -1,7 +1,15 @@
1
1
  import { BaseField } from "../baseField.model";
2
2
  /**Campo di testo */
3
3
  export declare class TextField extends BaseField {
4
- TextMask: string;
4
+ TextMask: TextMaskEnum;
5
5
  MaxLenght: number;
6
6
  MinLenght: number;
7
7
  }
8
+ export declare enum TextMaskEnum {
9
+ 'Password' = 1,
10
+ 'Email' = 2,
11
+ 'Telefono' = 3,
12
+ 'Url' = 4
13
+ }
14
+ export declare const UrlRegex = "(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})[/\\w .-]*/?";
15
+ export declare const TelRegex = "([+]?[0-9]{10,14})";
@@ -7,6 +7,7 @@ import { BaseField } from "./baseField.model";
7
7
  */
8
8
  export declare class Form extends BaseObj implements IRootObject {
9
9
  Name: string;
10
+ OrgaID: string;
10
11
  FormScalarType: FormScalarTypeEnum;
11
12
  FormFieldsGroups: Array<FormFieldGroup>;
12
13
  /**
@@ -3,3 +3,11 @@ export declare class Record {
3
3
  EntID: string;
4
4
  [key: string]: any;
5
5
  }
6
+ export declare class DynRecord {
7
+ ID: string;
8
+ EntID: string;
9
+ Values: {
10
+ [key: string]: any;
11
+ };
12
+ SerializedValues: string;
13
+ }
@@ -1,5 +1,11 @@
1
1
  export declare class EqpDynamicModuleDialogService {
2
2
  constructor();
3
+ /**
4
+ * Mostra uno sweet alert di tipo SUCCESS con il messaggio passato come parametro.
5
+ * @param message Messaggio da mostrare nello sweetalert
6
+ * @param title Titolo dello sweetalert (di default mostra 'Operazione completata')
7
+ */
8
+ static Success(message: string, title?: string): void;
3
9
  /**
4
10
  * Mostra uno sweet alert di tipo ERROR con il messaggio passato come parametro.
5
11
  * @param message Messaggio d'errore da mostrare nello sweetalert
@@ -0,0 +1,15 @@
1
+ import { Subject } from 'rxjs';
2
+ export declare class SpinnerService {
3
+ isLoading: Subject<boolean>;
4
+ private requestsCount;
5
+ /**
6
+ * Mostra lo spinner
7
+ */
8
+ show(): void;
9
+ /**
10
+ * Nasconde lo spinner
11
+ */
12
+ hide(): void;
13
+ addRequestCounter(): void;
14
+ removeRequestCounter(): void;
15
+ }
@@ -1,13 +1,21 @@
1
+ import { HttpClient } from "@angular/common/http";
1
2
  import { FormBuilder, FormGroup } from "@angular/forms";
2
3
  import { BaseField } from "../models/baseField.model";
3
4
  import { Context } from "../models/context.model";
5
+ import { EndPointConfiguration, EndPointData, EndPointDataParams } from "../models/endPointConfiguration.model";
6
+ import { TextField } from "../models/fields/textField.model";
7
+ import { Form } from "../models/form.model";
4
8
  import { Record } from "../models/record.model";
9
+ import { SpinnerService } from "./spinner.service";
5
10
  export declare class UtilityHelperService {
6
11
  private formBuilder;
12
+ private http;
13
+ private spinnerService;
7
14
  static context: Context;
8
- constructor(formBuilder: FormBuilder);
15
+ constructor(formBuilder: FormBuilder, http: HttpClient, spinnerService: SpinnerService);
9
16
  static EvaluateFieldFormula(formula: string, rec: Record, ctx: any): any;
10
17
  static SetContext(ctx: Context): void;
18
+ static GetFieldType(field: BaseField): TextField;
11
19
  /**
12
20
  * Metodo per impostare i valori da suggerire nell'autocomplete per i campi in cui l'utente deve scrivere comandi javascript.
13
21
  * In base all'ultimo carattere digitato viene impostato un elenco di oggetti o proprietà che l'utente ha a disposizione in quel momento.
@@ -45,4 +53,25 @@ export declare class UtilityHelperService {
45
53
  * @param field BaseField per cui creare il FormControl da inserire nel FormGroup dela form.
46
54
  */
47
55
  private createFieldFormControl;
56
+ /**
57
+ * Metodo per configurare gli endpoint da usare di default a partire dall'url base del server
58
+ * a cui si deve connettere e al token da passare per autenticarsi.
59
+ * @param baseServerUrl Stringa dell'url base del server (es: "http://localhost:5000").
60
+ * @param userToken Token dell'utente loggato da usare per autenticarsi se necessario.
61
+ * @returns Resituisce la configurazione completa degli endPoint da usare di default.
62
+ */
63
+ ConfigureDefaultEndPoints(baseServerUrl: string, userToken: string): EndPointConfiguration;
64
+ /**
65
+ * Metodo che data la configurazione di un endpoint costruisce l'url da chiamare, gli eventuali parametri
66
+ * da passare (nel body o nella rotta) ed effettua la chiamata. Al termine della chiamata esegue le eventuali
67
+ * funzioni di callback (sia in caso di successo che in caso di errore) passate in input.
68
+ * @param endPointData Cofigurazione dell'endpoint da chiamare.
69
+ * @param dynamicModuleParams Array dei parametri aggiunti dal modulo dinamico a quelli già configurati
70
+ * (ad esempio il record o la form da salvare oppure l'ID per recuperare una particolare entità).
71
+ * @param callback Metodo da eseguire in caso di successo dopo la chiamata http.
72
+ * NOTA: in input viene passata la risposta della chiamata stessa.
73
+ * @param errorCallBack Metodo da eseguire in caso di errore dopo la chiamata http.
74
+ * NOTA: in input viene passato l'errore generato della chiamata stessa.
75
+ */
76
+ RunEndPointCall(endPointData: EndPointData, dynamicModuleParams?: Array<EndPointDataParams>, callback?: (e: Form | Record | Array<Record>) => void, errorCallBack?: (err: unknown) => void): void;
48
77
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "author": {
5
5
  "name": "EqProject"
6
6
  },
7
- "version": "0.0.4",
7
+ "version": "0.0.5",
8
8
  "peerDependencies": {
9
9
  "@angular/common": "^9.0.7",
10
10
  "@angular/core": "^9.0.7",
@@ -15,8 +15,8 @@
15
15
  "sweetalert2": "^9.10.9"
16
16
  },
17
17
  "dependencies": {
18
- "@eqproject/eqp-attachments": "^0.1.12",
19
- "@eqproject/eqp-datetimepicker": "^0.0.18",
18
+ "@eqproject/eqp-attachments": "^0.1.16",
19
+ "@eqproject/eqp-datetimepicker": "^0.0.19",
20
20
  "@eqproject/eqp-filters": "^0.1.6",
21
21
  "@eqproject/eqp-img-drawing": "0.0.2",
22
22
  "@eqproject/eqp-numeric": "^0.0.1",
package/public-api.d.ts CHANGED
@@ -18,6 +18,7 @@ export * from './lib/interfaces/iRootObject.interface';
18
18
  export * from './lib/models/baseField.model';
19
19
  export * from './lib/models/baseObj.model';
20
20
  export * from './lib/models/context.model';
21
+ export * from './lib/models/endPointConfiguration.model';
21
22
  export * from './lib/models/entity.model';
22
23
  export * from './lib/models/form.model';
23
24
  export * from './lib/models/record.model';
@@ -32,4 +33,5 @@ export * from './lib/models/fields/testareaField.model';
32
33
  export * from './lib/models/fields/textField.model';
33
34
  export * from './lib/services/custom-form-validators.service';
34
35
  export * from './lib/services/eqp-dynamic-module-dialog.service';
36
+ export * from './lib/services/spinner.service';
35
37
  export * from './lib/services/utilityHelper.services';