@eqproject/eqp-dynamic-module 0.0.3 → 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.
- package/README.md +43 -24
- package/bundles/eqproject-eqp-dynamic-module.umd.js +1166 -334
- package/bundles/eqproject-eqp-dynamic-module.umd.js.map +1 -1
- package/bundles/eqproject-eqp-dynamic-module.umd.min.js +2 -2
- package/bundles/eqproject-eqp-dynamic-module.umd.min.js.map +1 -1
- package/eqproject-eqp-dynamic-module.d.ts +2 -1
- package/eqproject-eqp-dynamic-module.metadata.json +1 -1
- package/esm2015/eqproject-eqp-dynamic-module.js +3 -2
- package/esm2015/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +198 -22
- package/esm2015/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +124 -9
- package/esm2015/lib/components/private/add-form-field/add-form-field.component.js +107 -16
- package/esm2015/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +2 -2
- package/esm2015/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +10 -21
- package/esm2015/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +2 -2
- package/esm2015/lib/components/private/field-templates/date-field-template/date-field-template.component.js +2 -2
- package/esm2015/lib/components/private/field-templates/image-field-template/image-field-template.component.js +148 -6
- package/esm2015/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +21 -24
- package/esm2015/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +10 -2
- package/esm2015/lib/components/private/field-templates/text-field-template/text-field-template.component.js +18 -2
- package/esm2015/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +2 -2
- package/esm2015/lib/components/private/form-records/add-form-record/add-form-record.component.js +2 -2
- package/esm2015/lib/components/private/form-records/list-form-record/list-form-record.component.js +2 -18
- package/esm2015/lib/components/private/spinner/spinner.component.js +23 -0
- package/esm2015/lib/eqp-dynamic-module.module.js +6 -2
- package/esm2015/lib/models/endPointConfiguration.model.js +23 -0
- package/esm2015/lib/models/fields/dateField.model.js +1 -1
- package/esm2015/lib/models/fields/imageField.model.js +5 -1
- package/esm2015/lib/models/fields/listValueField.model.js +3 -1
- package/esm2015/lib/models/fields/numericField.model.js +1 -1
- package/esm2015/lib/models/fields/textField.model.js +10 -1
- package/esm2015/lib/models/form.model.js +1 -1
- package/esm2015/lib/models/record.model.js +6 -1
- package/esm2015/lib/services/eqp-dynamic-module-dialog.service.js +10 -1
- package/esm2015/lib/services/spinner.service.js +43 -0
- package/esm2015/lib/services/utilityHelper.services.js +180 -13
- package/esm2015/public-api.js +3 -1
- package/esm5/eqproject-eqp-dynamic-module.js +3 -2
- package/esm5/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +204 -22
- package/esm5/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +126 -8
- package/esm5/lib/components/private/add-form-field/add-form-field.component.js +107 -16
- package/esm5/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +2 -2
- package/esm5/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +10 -21
- package/esm5/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +2 -2
- package/esm5/lib/components/private/field-templates/date-field-template/date-field-template.component.js +2 -2
- package/esm5/lib/components/private/field-templates/image-field-template/image-field-template.component.js +157 -6
- package/esm5/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +22 -24
- package/esm5/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +10 -2
- package/esm5/lib/components/private/field-templates/text-field-template/text-field-template.component.js +18 -2
- package/esm5/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +2 -2
- package/esm5/lib/components/private/form-records/add-form-record/add-form-record.component.js +2 -2
- package/esm5/lib/components/private/form-records/list-form-record/list-form-record.component.js +2 -18
- package/esm5/lib/components/private/spinner/spinner.component.js +24 -0
- package/esm5/lib/eqp-dynamic-module.module.js +6 -2
- package/esm5/lib/models/endPointConfiguration.model.js +33 -0
- package/esm5/lib/models/fields/dateField.model.js +1 -1
- package/esm5/lib/models/fields/imageField.model.js +9 -1
- package/esm5/lib/models/fields/listValueField.model.js +7 -1
- package/esm5/lib/models/fields/numericField.model.js +1 -1
- package/esm5/lib/models/fields/textField.model.js +10 -1
- package/esm5/lib/models/form.model.js +1 -1
- package/esm5/lib/models/record.model.js +8 -1
- package/esm5/lib/services/eqp-dynamic-module-dialog.service.js +11 -1
- package/esm5/lib/services/spinner.service.js +46 -0
- package/esm5/lib/services/utilityHelper.services.js +182 -11
- package/esm5/public-api.js +3 -1
- package/fesm2015/eqproject-eqp-dynamic-module.js +1021 -239
- package/fesm2015/eqproject-eqp-dynamic-module.js.map +1 -1
- package/fesm5/eqproject-eqp-dynamic-module.js +1160 -335
- package/fesm5/eqproject-eqp-dynamic-module.js.map +1 -1
- package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +78 -4
- package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +51 -2
- package/lib/components/private/add-form-field/add-form-field.component.d.ts +42 -3
- package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +1 -17
- package/lib/components/private/field-templates/image-field-template/image-field-template.component.d.ts +51 -2
- package/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.d.ts +3 -11
- package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +3 -1
- package/lib/components/private/spinner/spinner.component.d.ts +9 -0
- package/lib/models/endPointConfiguration.model.d.ts +35 -0
- package/lib/models/fields/dateField.model.d.ts +1 -0
- package/lib/models/fields/imageField.model.d.ts +10 -4
- package/lib/models/fields/listValueField.model.d.ts +17 -0
- package/lib/models/fields/numericField.model.d.ts +3 -1
- package/lib/models/fields/textField.model.d.ts +9 -1
- package/lib/models/form.model.d.ts +1 -0
- package/lib/models/record.model.d.ts +8 -0
- package/lib/services/eqp-dynamic-module-dialog.service.d.ts +6 -0
- package/lib/services/spinner.service.d.ts +15 -0
- package/lib/services/utilityHelper.services.d.ts +30 -1
- package/package.json +5 -3
- 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
|
-
|
|
10
|
+
formID: string;
|
|
8
11
|
values: Array<Record>;
|
|
9
12
|
showButtons: boolean;
|
|
10
13
|
showTitle: boolean;
|
|
11
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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,17 +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 { AttachmentType, EqpAttachmentsComponent, IAttachmentDTO } from '@eqproject/eqp-attachments';
|
|
4
5
|
import { EnumHelper } from '@eqproject/eqp-select';
|
|
5
6
|
import { ConfigColumn, EqpTableComponent } from '@eqproject/eqp-table';
|
|
6
7
|
import { BaseField, ColSpanSizesEnum, FieldTypeEnum } from '../../../models/baseField.model';
|
|
7
8
|
import { BoolPresentantioEnum } from '../../../models/fields/booleanField.model';
|
|
8
9
|
import { DateTimeTypeEnum } from '../../../models/fields/dateField.model';
|
|
9
10
|
import { ListPresentationEnum } from '../../../models/fields/listValueField.model';
|
|
11
|
+
import { TextMaskEnum } from '../../../models/fields/textField.model';
|
|
10
12
|
import { FormFieldGroup } from '../../../models/form.model';
|
|
11
13
|
export declare class AddFormFieldComponent implements OnInit {
|
|
12
14
|
private formBuilder;
|
|
13
15
|
private enumHelper;
|
|
14
16
|
private dialog;
|
|
17
|
+
private cdr;
|
|
15
18
|
field: BaseField | any;
|
|
16
19
|
indexField: number;
|
|
17
20
|
formFieldsGroups: Array<FormFieldGroup>;
|
|
@@ -53,11 +56,14 @@ export declare class AddFormFieldComponent implements OnInit {
|
|
|
53
56
|
indexSelectedMetadata: number;
|
|
54
57
|
dialogMetadataRef: MatDialogRef<TemplateRef<any>>;
|
|
55
58
|
dialogMetadata: TemplateRef<any>;
|
|
59
|
+
buttonImagesKeyValueInputColumn: TemplateRef<any>;
|
|
56
60
|
FieldTypeEnum: typeof FieldTypeEnum;
|
|
57
61
|
BoolPresentantioEnum: typeof BoolPresentantioEnum;
|
|
58
62
|
DateTimeTypeEnum: typeof DateTimeTypeEnum;
|
|
59
63
|
ListPresentationEnum: typeof ListPresentationEnum;
|
|
60
|
-
|
|
64
|
+
TextMaskEnum: typeof TextMaskEnum;
|
|
65
|
+
AttachmentType: typeof AttachmentType;
|
|
66
|
+
constructor(formBuilder: FormBuilder, enumHelper: EnumHelper, dialog: MatDialog, cdr: ChangeDetectorRef);
|
|
61
67
|
ngOnInit(): void;
|
|
62
68
|
/**
|
|
63
69
|
* Metodo per impostare i valori da suggerire nell'autocomplete del campo Formula.
|
|
@@ -81,6 +87,19 @@ export declare class AddFormFieldComponent implements OnInit {
|
|
|
81
87
|
* @param restoreField Se TRUE ripristina i valori base (ereditati dal modello BaseField) del campo aggiunto/modificato
|
|
82
88
|
*/
|
|
83
89
|
onFieldTypeChange(restoreField?: boolean): void;
|
|
90
|
+
/**
|
|
91
|
+
* Metodo invocato al cambio del valore della proprietà ImageIsContextualAttachment nel caso
|
|
92
|
+
* di campi di tipo Immagine. Se TRUE allora rimuove i FormControl per le proprietà IsMultiAttach
|
|
93
|
+
* e AllowedExtensions e aggiunge i FormControl per le proprietà ImgName e ContextualAttachment,
|
|
94
|
+
* altrimenti il contrario.
|
|
95
|
+
*/
|
|
96
|
+
onImageIsContextualAttachmentChange(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Metodo per intercettare l'aggiunta di un allegato nei campi di tipo Immagine per aggiornare
|
|
99
|
+
* il valore della proprietà ContextualAttachment e la validazione del relativo FormControl.
|
|
100
|
+
* @param event Array contenente l'elenco aggiornato degli allegati caricati (nel nostro caso ne contiene al più 1).
|
|
101
|
+
*/
|
|
102
|
+
catchContextualAttachmentChange(event: Array<IAttachmentDTO>): void;
|
|
84
103
|
/**
|
|
85
104
|
* Metodo invocato alla selezione di una classe nella select per le colonne di bootstrap
|
|
86
105
|
* da usare nella visualizzazione del campo. Questa funzione manipola la sorgente dati per
|
|
@@ -89,7 +108,27 @@ export declare class AddFormFieldComponent implements OnInit {
|
|
|
89
108
|
* seleziona la classe "col-sm-6", al change del valore questo metodo rimuove dalla select
|
|
90
109
|
* tutti gli altri valori per la grandezza di schermo selezionata.
|
|
91
110
|
*/
|
|
92
|
-
|
|
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;
|
|
93
132
|
/**
|
|
94
133
|
* Metodo chiamato al keyup degli input testuali che prevedono l'aggiunta del valore inserito in un array.
|
|
95
134
|
* Se l'utente preme il tasto invio, in base al tipo di campo che sta inserendo/modificando, questo metodo
|
|
@@ -13,26 +13,10 @@ export declare class AttachmentFieldTemplateComponent implements OnInit, OnChang
|
|
|
13
13
|
field: AttachmentField;
|
|
14
14
|
record: Record;
|
|
15
15
|
recordChange: EventEmitter<Record>;
|
|
16
|
+
onAttachmentsChange: EventEmitter<void>;
|
|
16
17
|
eqpAttachments: EqpAttachmentsComponent;
|
|
17
18
|
metadataColumnTemplate: TemplateRef<any>;
|
|
18
19
|
metadataFormGroups: Array<FormGroup>;
|
|
19
|
-
previewLabel: string;
|
|
20
|
-
emptyTableMessage: string;
|
|
21
|
-
downloadTooltipPosition: string;
|
|
22
|
-
openLinkLabel: string;
|
|
23
|
-
addButtonLabel: string;
|
|
24
|
-
downloadLabel: string;
|
|
25
|
-
deleteLabel: string;
|
|
26
|
-
fileNameLabel: string;
|
|
27
|
-
uploadFileLabel: string;
|
|
28
|
-
confirmLabel: string;
|
|
29
|
-
abortLabel: string;
|
|
30
|
-
saveLabel: string;
|
|
31
|
-
exitLabel: string;
|
|
32
|
-
eqpTableSearchText: string;
|
|
33
|
-
deleteDialogTitle: string;
|
|
34
|
-
deleteDialogMessage: string;
|
|
35
|
-
noImageSelectedErrorMessage: string;
|
|
36
20
|
constructor(utilityService: UtilityHelperService, cdr: ChangeDetectorRef);
|
|
37
21
|
ngOnInit(): void;
|
|
38
22
|
ngAfterViewInit(): void;
|
|
@@ -1,16 +1,65 @@
|
|
|
1
|
-
import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
|
|
1
|
+
import { EventEmitter, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
|
|
2
2
|
import { ImageField } from '../../../../models/fields/imageField.model';
|
|
3
3
|
import { Record } from '../../../../models/record.model';
|
|
4
4
|
import { IBaseFieldComponent } from '../../../../interfaces/iBaseFieldComponent.interface';
|
|
5
|
+
import { UtilityHelperService } from '../../../../services/utilityHelper.services';
|
|
6
|
+
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
|
|
7
|
+
import { FormGroup } from '@angular/forms';
|
|
8
|
+
import { I18nInterface } from '@eqproject/eqp-img-drawing';
|
|
5
9
|
export declare class ImageFieldTemplateComponent implements OnInit, OnChanges, IBaseFieldComponent {
|
|
10
|
+
private dialog;
|
|
11
|
+
utilityService: UtilityHelperService;
|
|
6
12
|
record: Record;
|
|
7
13
|
field: ImageField;
|
|
8
14
|
recordChange: EventEmitter<Record>;
|
|
9
|
-
|
|
15
|
+
preLoadedImageMetadataFormGroup: FormGroup;
|
|
16
|
+
width: any;
|
|
17
|
+
height: any;
|
|
18
|
+
i18n: I18nInterface;
|
|
19
|
+
dialogImageDrowingRef: MatDialogRef<TemplateRef<any>>;
|
|
20
|
+
dialogImageDrowing: TemplateRef<any>;
|
|
21
|
+
constructor(dialog: MatDialog, utilityService: UtilityHelperService);
|
|
10
22
|
ngOnInit(): void;
|
|
11
23
|
ngOnChanges(changes: SimpleChanges): void;
|
|
24
|
+
updateMetadataValidity(): void;
|
|
12
25
|
/**
|
|
13
26
|
* Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
|
|
14
27
|
*/
|
|
15
28
|
updateField(): void;
|
|
29
|
+
resetPreLoadedImage(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Metodo invocato quando vengono aggiunti o eliminati gli allegati nel componente AttachmentFieldTemplate.
|
|
32
|
+
* Se l'ImageField è abilitato al disegno (EnableDrawing == true), non permette allegati multipli (IsMulitAttach == false)
|
|
33
|
+
* e nel Record corrente è presente l'immagine caricata dall'utente allora recupera le dimensioni dell'immagine e
|
|
34
|
+
* apre il dialog con il componente image-drawing per permettere il disegno sull'immagine appena caricata.
|
|
35
|
+
*/
|
|
36
|
+
onAttachmentsChange(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Metodo invocato al salvataggio dell'immagine dal componente image-drawing.
|
|
39
|
+
* Trasforma il Blob ricevuto in un base64, aggiorna il FileContetType e il FileDataBase64
|
|
40
|
+
* dell'allegato caricato e chiude il dialog in cui disegnare.
|
|
41
|
+
* @param drawnPicture Blob dell'immagine disegnata.
|
|
42
|
+
*/
|
|
43
|
+
saveDrowning(drawnPicture: Blob): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Metodo per chiudere il dialog in cui disegnare sull'immagine cariata e svuotare le dimensioni.
|
|
46
|
+
*/
|
|
47
|
+
closeImageDrowingDialog(): void;
|
|
48
|
+
/**
|
|
49
|
+
* Metodo per recuperare le dimensioni dell'immagine caricata per mostrare correttamente
|
|
50
|
+
* il componente image-drawing. Se non viene eseguito questo passaggio l'area in cui disegnare
|
|
51
|
+
* è più grande dell'immagine stessa e al salvataggio i tratti disegnati vengono spostati.
|
|
52
|
+
*/
|
|
53
|
+
private getImageDimensions;
|
|
54
|
+
/**
|
|
55
|
+
* Metodo per convertire il base64 di un'immagine in un Blob.
|
|
56
|
+
* Necessario per il recupero delle dimensioni dell'immagine caricata a partire dal suo base64.
|
|
57
|
+
* Viene eseguito solo nel caso in cui l'ImageField non ammette allegati multipli.
|
|
58
|
+
* @returns Restituisce il Blob dell'immagine caricata.
|
|
59
|
+
*/
|
|
60
|
+
private getBlobFromBase64;
|
|
61
|
+
/**
|
|
62
|
+
* Metodo per emettere l'evento che il valore del record è cambiato.
|
|
63
|
+
*/
|
|
64
|
+
private onRecordValueChange;
|
|
16
65
|
}
|
|
@@ -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
|
+
}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import { IAttachmentDTO } from "@eqproject/eqp-attachments";
|
|
1
2
|
import { BaseField } from "../baseField.model";
|
|
2
3
|
import { AttachmentField } from "./attachmentField.model";
|
|
3
4
|
export declare class ImageField extends BaseField {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/**se true l'immagine non è fissa, ma viene caricata come un allegato; */
|
|
5
|
+
/**Se true il medico può disegnare sull'immagine */
|
|
6
|
+
EnableDrawing: boolean;
|
|
7
|
+
/**Se true l'immagine non è fissa, ma viene caricata come un allegato; */
|
|
8
8
|
ImageIsContextualAttachment: boolean;
|
|
9
|
+
/**Contiene l'allegato caricato nel campo (se ImageIsContextualAttachment == true) */
|
|
10
|
+
ContextualAttachment: IAttachmentDTO;
|
|
11
|
+
/**Proprietà per recuperare l'allegato caricato come array per eqp-attachments (se ImageIsContextualAttachment == true) */
|
|
12
|
+
get _contextualAttachments(): IAttachmentDTO[];
|
|
13
|
+
/**Nome dell'immagine caricata (se ImageIsContextualAttachment == true) */
|
|
14
|
+
ImgName: string;
|
|
9
15
|
AttachDefinition: AttachmentField;
|
|
10
16
|
}
|
|
@@ -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,
|
|
@@ -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:
|
|
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})";
|
|
@@ -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
|
+
}
|