@eqproject/eqp-dynamic-module 0.0.1 → 0.0.4

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 (33) hide show
  1. package/bundles/eqproject-eqp-dynamic-module.umd.js +305 -75
  2. package/bundles/eqproject-eqp-dynamic-module.umd.js.map +1 -1
  3. package/bundles/eqproject-eqp-dynamic-module.umd.min.js +2 -2
  4. package/bundles/eqproject-eqp-dynamic-module.umd.min.js.map +1 -1
  5. package/eqproject-eqp-dynamic-module.metadata.json +1 -1
  6. package/esm2015/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +33 -12
  7. package/esm2015/lib/components/private/add-form-field/add-form-field.component.js +45 -6
  8. package/esm2015/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +10 -21
  9. package/esm2015/lib/components/private/field-templates/image-field-template/image-field-template.component.js +149 -7
  10. package/esm2015/lib/components/private/form-records/add-form-record/add-form-record.component.js +7 -3
  11. package/esm2015/lib/components/private/form-records/list-form-record/list-form-record.component.js +40 -18
  12. package/esm2015/lib/eqp-dynamic-module.module.js +4 -2
  13. package/esm2015/lib/models/fields/imageField.model.js +5 -1
  14. package/esm5/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +33 -12
  15. package/esm5/lib/components/private/add-form-field/add-form-field.component.js +45 -6
  16. package/esm5/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +10 -21
  17. package/esm5/lib/components/private/field-templates/image-field-template/image-field-template.component.js +158 -7
  18. package/esm5/lib/components/private/form-records/add-form-record/add-form-record.component.js +7 -3
  19. package/esm5/lib/components/private/form-records/list-form-record/list-form-record.component.js +40 -20
  20. package/esm5/lib/eqp-dynamic-module.module.js +4 -2
  21. package/esm5/lib/models/fields/imageField.model.js +9 -1
  22. package/fesm2015/eqproject-eqp-dynamic-module.js +291 -74
  23. package/fesm2015/eqproject-eqp-dynamic-module.js.map +1 -1
  24. package/fesm5/eqproject-eqp-dynamic-module.js +304 -76
  25. package/fesm5/eqproject-eqp-dynamic-module.js.map +1 -1
  26. package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +7 -1
  27. package/lib/components/private/add-form-field/add-form-field.component.d.ts +14 -0
  28. package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +1 -17
  29. package/lib/components/private/field-templates/image-field-template/image-field-template.component.d.ts +51 -2
  30. package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +3 -1
  31. package/lib/components/private/form-records/list-form-record/list-form-record.component.d.ts +8 -3
  32. package/lib/models/fields/imageField.model.d.ts +10 -4
  33. package/package.json +3 -1
@@ -1,4 +1,4 @@
1
- import { OnInit } from '@angular/core';
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
2
  import { Context } from '../../../models/context.model';
3
3
  import { Form, FormTypeEnum } from '../../../models/form.model';
4
4
  import { Record } from '../../../models/record.model';
@@ -7,7 +7,11 @@ export declare class EqpDynamicModuleComponent implements OnInit {
7
7
  form: Form;
8
8
  values: Array<Record>;
9
9
  showButtons: boolean;
10
+ showTitle: boolean;
10
11
  viewMode: FormTypeEnum;
12
+ saveRecord: EventEmitter<Record>;
13
+ deleteRecord: EventEmitter<Record>;
14
+ duplicateRecord: EventEmitter<Record>;
11
15
  FormTypeEnum: typeof FormTypeEnum;
12
16
  selectedRecord: Record;
13
17
  onlyView: boolean;
@@ -18,4 +22,6 @@ export declare class EqpDynamicModuleComponent implements OnInit {
18
22
  onlyView: boolean;
19
23
  }): void;
20
24
  onSaveForm(event: Record): void;
25
+ onDuplicateRecord(record: Record): void;
26
+ onDeleteRecord(record: Record): void;
21
27
  }
@@ -1,6 +1,7 @@
1
1
  import { 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
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';
@@ -81,6 +82,19 @@ export declare class AddFormFieldComponent implements OnInit {
81
82
  * @param restoreField Se TRUE ripristina i valori base (ereditati dal modello BaseField) del campo aggiunto/modificato
82
83
  */
83
84
  onFieldTypeChange(restoreField?: boolean): void;
85
+ /**
86
+ * Metodo invocato al cambio del valore della proprietà ImageIsContextualAttachment nel caso
87
+ * di campi di tipo Immagine. Se TRUE allora rimuove i FormControl per le proprietà IsMultiAttach
88
+ * e AllowedExtensions e aggiunge i FormControl per le proprietà ImgName e ContextualAttachment,
89
+ * altrimenti il contrario.
90
+ */
91
+ onImageIsContextualAttachmentChange(): void;
92
+ /**
93
+ * Metodo per intercettare l'aggiunta di un allegato nei campi di tipo Immagine per aggiornare
94
+ * il valore della proprietà ContextualAttachment e la validazione del relativo FormControl.
95
+ * @param event Array contenente l'elenco aggiornato degli allegati caricati (nel nostro caso ne contiene al più 1).
96
+ */
97
+ catchContextualAttachmentChange(event: Array<IAttachmentDTO>): void;
84
98
  /**
85
99
  * Metodo invocato alla selezione di una classe nella select per le colonne di bootstrap
86
100
  * da usare nella visualizzazione del campo. Questa funzione manipola la sorgente dati per
@@ -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
- constructor();
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
  }
@@ -1,12 +1,14 @@
1
1
  import { ChangeDetectorRef, EventEmitter, OnInit, QueryList } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
- import { DynamicModuleFieldComponent, UtilityHelperService } from 'projects/eqp-dynamic-module/src/public-api';
4
3
  import { BaseField, FieldTypeEnum } from '../../../../models/baseField.model';
5
4
  import { Form, FormScalarTypeEnum } from '../../../../models/form.model';
6
5
  import { Record } from '../../../../models/record.model';
6
+ import { UtilityHelperService } from '../../../../services/utilityHelper.services';
7
+ import { DynamicModuleFieldComponent } from '../../dynamic-module-field/dynamic-module-field.component';
7
8
  export declare class AddFormRecordComponent implements OnInit {
8
9
  private cdr;
9
10
  utilityService: UtilityHelperService;
11
+ showTitle: boolean;
10
12
  showButtons: boolean;
11
13
  form: Form;
12
14
  record: Record;
@@ -1,7 +1,9 @@
1
- import { OnInit, EventEmitter } from '@angular/core';
1
+ import { OnInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import { ConfigColumn, EqpTableComponent } from '@eqproject/eqp-table';
3
- import { Form, Record } from 'projects/eqp-dynamic-module/src/public-api';
4
- export declare class ListFormRecordComponent implements OnInit {
3
+ import { Form } from '../../../../models/form.model';
4
+ import { Record } from '../../../../models/record.model';
5
+ export declare class ListFormRecordComponent implements OnInit, OnChanges {
6
+ showTitle: boolean;
5
7
  form: Form;
6
8
  values: Array<Record>;
7
9
  tableRecords: EqpTableComponent;
@@ -10,8 +12,11 @@ export declare class ListFormRecordComponent implements OnInit {
10
12
  record: Record;
11
13
  onlyView: boolean;
12
14
  }>;
15
+ onDeleteRecord: EventEmitter<Record>;
16
+ onDuplicateRecord: EventEmitter<Record>;
13
17
  constructor();
14
18
  ngOnInit(): void;
19
+ ngOnChanges(changes: SimpleChanges): void;
15
20
  /**
16
21
  * Metodo per configurare le colonne della eqp-table.
17
22
  */
@@ -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
- ImgName: string;
5
- /**Se true il medico può indicare più punti nell'immagine */
6
- IsMultiPoint: boolean;
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
  }
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "author": {
5
5
  "name": "EqProject"
6
6
  },
7
- "version": "0.0.1",
7
+ "version": "0.0.4",
8
8
  "peerDependencies": {
9
9
  "@angular/common": "^9.0.7",
10
10
  "@angular/core": "^9.0.7",
@@ -18,10 +18,12 @@
18
18
  "@eqproject/eqp-attachments": "^0.1.12",
19
19
  "@eqproject/eqp-datetimepicker": "^0.0.18",
20
20
  "@eqproject/eqp-filters": "^0.1.6",
21
+ "@eqproject/eqp-img-drawing": "0.0.2",
21
22
  "@eqproject/eqp-numeric": "^0.0.1",
22
23
  "@eqproject/eqp-select": "^0.4.7",
23
24
  "@eqproject/eqp-table": "^0.8.5",
24
25
  "browser-image-compression": "^1.0.15",
26
+ "fabric": "^3.6.2",
25
27
  "ngx-image-cropper": "^3.3.5",
26
28
  "ngx-mat-select-search": "^3.3.0",
27
29
  "tslib": "^1.10.0"