@eqproject/eqp-dynamic-module 0.0.1

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 (125) hide show
  1. package/README.md +24 -0
  2. package/bundles/eqproject-eqp-dynamic-module.umd.js +3117 -0
  3. package/bundles/eqproject-eqp-dynamic-module.umd.js.map +1 -0
  4. package/bundles/eqproject-eqp-dynamic-module.umd.min.js +17 -0
  5. package/bundles/eqproject-eqp-dynamic-module.umd.min.js.map +1 -0
  6. package/eqproject-eqp-dynamic-module.d.ts +5 -0
  7. package/eqproject-eqp-dynamic-module.metadata.json +1 -0
  8. package/esm2015/eqproject-eqp-dynamic-module.js +6 -0
  9. package/esm2015/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +65 -0
  10. package/esm2015/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +534 -0
  11. package/esm2015/lib/components/private/add-form-field/add-form-field.component.js +486 -0
  12. package/esm2015/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +127 -0
  13. package/esm2015/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +181 -0
  14. package/esm2015/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +56 -0
  15. package/esm2015/lib/components/private/field-templates/date-field-template/date-field-template.component.js +71 -0
  16. package/esm2015/lib/components/private/field-templates/image-field-template/image-field-template.component.js +54 -0
  17. package/esm2015/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +118 -0
  18. package/esm2015/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +63 -0
  19. package/esm2015/lib/components/private/field-templates/text-field-template/text-field-template.component.js +51 -0
  20. package/esm2015/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +51 -0
  21. package/esm2015/lib/components/private/form-records/add-form-record/add-form-record.component.js +126 -0
  22. package/esm2015/lib/components/private/form-records/list-form-record/list-form-record.component.js +210 -0
  23. package/esm2015/lib/eqp-dynamic-module.module.js +67 -0
  24. package/esm2015/lib/interfaces/iBaseFieldComponent.interface.js +1 -0
  25. package/esm2015/lib/interfaces/iRootObject.interface.js +1 -0
  26. package/esm2015/lib/models/baseField.model.js +36 -0
  27. package/esm2015/lib/models/baseObj.model.js +9 -0
  28. package/esm2015/lib/models/context.model.js +8 -0
  29. package/esm2015/lib/models/entity.model.js +7 -0
  30. package/esm2015/lib/models/fields/attachmentField.model.js +22 -0
  31. package/esm2015/lib/models/fields/booleanField.model.js +12 -0
  32. package/esm2015/lib/models/fields/dateField.model.js +11 -0
  33. package/esm2015/lib/models/fields/imageField.model.js +4 -0
  34. package/esm2015/lib/models/fields/listValueField.model.js +12 -0
  35. package/esm2015/lib/models/fields/lookupField.model.js +5 -0
  36. package/esm2015/lib/models/fields/numericField.model.js +5 -0
  37. package/esm2015/lib/models/fields/testareaField.model.js +4 -0
  38. package/esm2015/lib/models/fields/textField.model.js +5 -0
  39. package/esm2015/lib/models/form.model.js +24 -0
  40. package/esm2015/lib/models/record.model.js +3 -0
  41. package/esm2015/lib/modules/material.module.js +108 -0
  42. package/esm2015/lib/services/custom-form-validators.service.js +19 -0
  43. package/esm2015/lib/services/eqp-dynamic-module-dialog.service.js +104 -0
  44. package/esm2015/lib/services/utilityHelper.services.js +220 -0
  45. package/esm2015/public-api.js +37 -0
  46. package/esm5/eqproject-eqp-dynamic-module.js +6 -0
  47. package/esm5/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.js +66 -0
  48. package/esm5/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.js +546 -0
  49. package/esm5/lib/components/private/add-form-field/add-form-field.component.js +497 -0
  50. package/esm5/lib/components/private/dynamic-module-field/dynamic-module-field.component.js +128 -0
  51. package/esm5/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.js +184 -0
  52. package/esm5/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.js +57 -0
  53. package/esm5/lib/components/private/field-templates/date-field-template/date-field-template.component.js +72 -0
  54. package/esm5/lib/components/private/field-templates/image-field-template/image-field-template.component.js +55 -0
  55. package/esm5/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.js +121 -0
  56. package/esm5/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.js +64 -0
  57. package/esm5/lib/components/private/field-templates/text-field-template/text-field-template.component.js +52 -0
  58. package/esm5/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.js +52 -0
  59. package/esm5/lib/components/private/form-records/add-form-record/add-form-record.component.js +129 -0
  60. package/esm5/lib/components/private/form-records/list-form-record/list-form-record.component.js +216 -0
  61. package/esm5/lib/eqp-dynamic-module.module.js +70 -0
  62. package/esm5/lib/interfaces/iBaseFieldComponent.interface.js +1 -0
  63. package/esm5/lib/interfaces/iRootObject.interface.js +1 -0
  64. package/esm5/lib/models/baseField.model.js +43 -0
  65. package/esm5/lib/models/baseObj.model.js +13 -0
  66. package/esm5/lib/models/context.model.js +14 -0
  67. package/esm5/lib/models/entity.model.js +14 -0
  68. package/esm5/lib/models/fields/attachmentField.model.js +29 -0
  69. package/esm5/lib/models/fields/booleanField.model.js +19 -0
  70. package/esm5/lib/models/fields/dateField.model.js +18 -0
  71. package/esm5/lib/models/fields/imageField.model.js +11 -0
  72. package/esm5/lib/models/fields/listValueField.model.js +19 -0
  73. package/esm5/lib/models/fields/lookupField.model.js +12 -0
  74. package/esm5/lib/models/fields/numericField.model.js +12 -0
  75. package/esm5/lib/models/fields/testareaField.model.js +11 -0
  76. package/esm5/lib/models/fields/textField.model.js +12 -0
  77. package/esm5/lib/models/form.model.js +39 -0
  78. package/esm5/lib/models/record.model.js +7 -0
  79. package/esm5/lib/modules/material.module.js +111 -0
  80. package/esm5/lib/services/custom-form-validators.service.js +23 -0
  81. package/esm5/lib/services/eqp-dynamic-module-dialog.service.js +113 -0
  82. package/esm5/lib/services/utilityHelper.services.js +225 -0
  83. package/esm5/public-api.js +37 -0
  84. package/fesm2015/eqproject-eqp-dynamic-module.js +2757 -0
  85. package/fesm2015/eqproject-eqp-dynamic-module.js.map +1 -0
  86. package/fesm5/eqproject-eqp-dynamic-module.js +2902 -0
  87. package/fesm5/eqproject-eqp-dynamic-module.js.map +1 -0
  88. package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +21 -0
  89. package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +186 -0
  90. package/lib/components/private/add-form-field/add-form-field.component.d.ts +160 -0
  91. package/lib/components/private/dynamic-module-field/dynamic-module-field.component.d.ts +55 -0
  92. package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +84 -0
  93. package/lib/components/private/field-templates/boolean-field-template/boolean-field-template.component.d.ts +21 -0
  94. package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +27 -0
  95. package/lib/components/private/field-templates/image-field-template/image-field-template.component.d.ts +16 -0
  96. package/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.d.ts +59 -0
  97. package/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.d.ts +26 -0
  98. package/lib/components/private/field-templates/text-field-template/text-field-template.component.d.ts +20 -0
  99. package/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.d.ts +20 -0
  100. package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +50 -0
  101. package/lib/components/private/form-records/list-form-record/list-form-record.component.d.ts +59 -0
  102. package/lib/eqp-dynamic-module.module.d.ts +2 -0
  103. package/lib/interfaces/iBaseFieldComponent.interface.d.ts +8 -0
  104. package/lib/interfaces/iRootObject.interface.d.ts +10 -0
  105. package/lib/models/baseField.model.d.ts +56 -0
  106. package/lib/models/baseObj.model.d.ts +9 -0
  107. package/lib/models/context.model.d.ts +9 -0
  108. package/lib/models/entity.model.d.ts +10 -0
  109. package/lib/models/fields/attachmentField.model.d.ts +17 -0
  110. package/lib/models/fields/booleanField.model.d.ts +11 -0
  111. package/lib/models/fields/dateField.model.d.ts +12 -0
  112. package/lib/models/fields/imageField.model.d.ts +10 -0
  113. package/lib/models/fields/listValueField.model.d.ts +21 -0
  114. package/lib/models/fields/lookupField.model.d.ts +10 -0
  115. package/lib/models/fields/numericField.model.d.ts +9 -0
  116. package/lib/models/fields/testareaField.model.d.ts +7 -0
  117. package/lib/models/fields/textField.model.d.ts +7 -0
  118. package/lib/models/form.model.d.ts +45 -0
  119. package/lib/models/record.model.d.ts +5 -0
  120. package/lib/modules/material.module.d.ts +2 -0
  121. package/lib/services/custom-form-validators.service.d.ts +5 -0
  122. package/lib/services/eqp-dynamic-module-dialog.service.d.ts +28 -0
  123. package/lib/services/utilityHelper.services.d.ts +48 -0
  124. package/package.json +39 -0
  125. package/public-api.d.ts +35 -0
@@ -0,0 +1,20 @@
1
+ import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
+ import { IBaseFieldComponent } from '../../../../interfaces/iBaseFieldComponent.interface';
3
+ import { Record } from '../../../../models/record.model';
4
+ import { TextareaField } from '../../../../models/fields/testareaField.model';
5
+ export declare class TextareaFieldTemplateComponent implements OnInit, OnChanges, IBaseFieldComponent {
6
+ field: TextareaField;
7
+ record: Record;
8
+ recordChange: EventEmitter<Record>;
9
+ constructor();
10
+ ngOnInit(): void;
11
+ ngOnChanges(changes: SimpleChanges): void;
12
+ /**
13
+ * Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
14
+ */
15
+ updateField(): void;
16
+ /**
17
+ * Metodo per emettere l'evento che il valore del record è cambiato.
18
+ */
19
+ onRecordValueChange(): void;
20
+ }
@@ -0,0 +1,50 @@
1
+ import { ChangeDetectorRef, EventEmitter, OnInit, QueryList } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { DynamicModuleFieldComponent, UtilityHelperService } from 'projects/eqp-dynamic-module/src/public-api';
4
+ import { BaseField, FieldTypeEnum } from '../../../../models/baseField.model';
5
+ import { Form, FormScalarTypeEnum } from '../../../../models/form.model';
6
+ import { Record } from '../../../../models/record.model';
7
+ export declare class AddFormRecordComponent implements OnInit {
8
+ private cdr;
9
+ utilityService: UtilityHelperService;
10
+ showButtons: boolean;
11
+ form: Form;
12
+ record: Record;
13
+ onlyView: boolean;
14
+ formForm: FormGroup;
15
+ fieldGroups: {
16
+ [key: string]: Array<BaseField>;
17
+ };
18
+ FormScalarTypeEnum: typeof FormScalarTypeEnum;
19
+ FieldTypeEnum: typeof FieldTypeEnum;
20
+ saveRecordEvent: EventEmitter<Record>;
21
+ fieldTemplate: QueryList<DynamicModuleFieldComponent>;
22
+ constructor(cdr: ChangeDetectorRef, utilityService: UtilityHelperService);
23
+ ngOnInit(): void;
24
+ /**
25
+ * Metodo invocato al cambio del valore di ogni proprietà dell'oggetto record.
26
+ * Serve ad aggiornare il valore di tutti i campi che hanno una formula.
27
+ */
28
+ onRecordChange(): void;
29
+ /**
30
+ * Metodo per salvare i dati inseriti dall'utente una volta conclusa la compilazione della form.
31
+ */
32
+ saveOrExitForm(exit: boolean): void;
33
+ /**
34
+ * Metodo per creare nell'oggetto Record le proprietà mancanti rispetto ai campi che compongono la form.
35
+ */
36
+ private createRecordProperties;
37
+ /**
38
+ * Metodo per riordinare i campi che compongono la form.
39
+ */
40
+ private reorderFormFields;
41
+ /**
42
+ * Metodo per creare il FormGroup che rappresenta la form.
43
+ */
44
+ private createFormGroup;
45
+ /**
46
+ * Metodo per creare i gruppi in cui raggruppare i campi della form in base
47
+ * a come è stata configurata dall'utente.
48
+ */
49
+ private createFieldGroups;
50
+ }
@@ -0,0 +1,59 @@
1
+ import { OnInit, EventEmitter } from '@angular/core';
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 {
5
+ form: Form;
6
+ values: Array<Record>;
7
+ tableRecords: EqpTableComponent;
8
+ columns: ConfigColumn[];
9
+ onAddViewEditRecord: EventEmitter<{
10
+ record: Record;
11
+ onlyView: boolean;
12
+ }>;
13
+ constructor();
14
+ ngOnInit(): void;
15
+ /**
16
+ * Metodo per configurare le colonne della eqp-table.
17
+ */
18
+ private configureColumns;
19
+ /**
20
+ * Metodo per aggiungere nella colonna "action" della eqp-table le azioni sui record
21
+ * definite dall'utente all'interno della Form.
22
+ */
23
+ private createAdditionalActions;
24
+ /**
25
+ * Metodo che scatena l'evento di Output per mostrare o modificare il record
26
+ * selezionato sulla eqp-table.
27
+ * @param record Record da visualizzare o modificare selezionato sulla eqp-table.
28
+ * @param onlyView Se TRUE viene mostrato il componente add-form-record in sola lettura.
29
+ */
30
+ private viewOrEditRecord;
31
+ /**
32
+ * Metodo per duplicare un record della form.
33
+ * @param record Record da duplicare.
34
+ */
35
+ private duplicateRecord;
36
+ /**
37
+ * Metodo per eliminare un record dalla lista.
38
+ * @param record Record da eliminare selezionato sulla eqp-table.
39
+ */
40
+ private deleteRecord;
41
+ /**
42
+ * Metodo per creare la configurazione delle colonne per la eqp-table.
43
+ * Individua i BaseField da mostrare e li usa per creare le ConfigColumn.
44
+ * Le colonne vengono create per i BaseField con il flag InListView a TRUE
45
+ * oppure, nel caso non siano stati specificati i campi da visualizzare,
46
+ * seleziona i primi 6.
47
+ */
48
+ private createColumnsFromFormFields;
49
+ /**
50
+ * Metodo per creare l'oggetto ConfigureColumn che rappresenta il BaseField passato in input.
51
+ * @param field BaseField per cui creare la colonna nella eqp-table
52
+ * @returns Restituisce una ConfigColumn per la eqp-table
53
+ */
54
+ private createFieldColumn;
55
+ /**
56
+ * Metodo per ricaricare i dati della eqp-table.
57
+ */
58
+ private reloadTables;
59
+ }
@@ -0,0 +1,2 @@
1
+ export declare class EqpDynamicModuleModule {
2
+ }
@@ -0,0 +1,8 @@
1
+ export declare interface IBaseFieldComponent {
2
+ /**
3
+ * Funzione da invocare per aggiornare il template del campo.
4
+ * Invocata principalmente al cambio del valore di un campo per aggiornare
5
+ * le formule che utilizzano il campo modificato.
6
+ */
7
+ updateField(): void;
8
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Interfaccia degli oggetti radice della configurazione.
3
+ * Gli oggetti radice sono le entità e le form.
4
+ * Il client esegue le CRUD su questi oggetti radice. Se lo fa su una form, a sua volta i dati vengono salvati dentro ogni entità relazionata
5
+ * a partire da quella radice.
6
+ */
7
+ export interface IRootObject {
8
+ ID: string;
9
+ Name: string;
10
+ }
@@ -0,0 +1,56 @@
1
+ import { FormGroup } from '@angular/forms';
2
+ import { BaseObj } from './baseObj.model';
3
+ /**
4
+ * Contiene le informazioni di base del campo, indipendentemente dal tipo.
5
+ * Questa classe è volutamente astratta perché il tipo di campo è dettato dal tipo
6
+ */
7
+ export declare class BaseField extends BaseObj {
8
+ /**
9
+ * Nome del campo che per progettazione è una sostituzione della label
10
+ * Il vero identificativo del campo è l'ID
11
+ */
12
+ Name: string;
13
+ Label: string;
14
+ Description: string;
15
+ Required: boolean;
16
+ Formula: string;
17
+ OrdinalPosition: number;
18
+ /**
19
+ * Entità a cui appartiene il campo. Si tenga presente che sono ammessi anche campi
20
+ * di sola visualizzazione e calcolati, da utilizzare nelle form,
21
+ * e per questo motivo possono essere con Entity == null
22
+ */
23
+ EntityID: string;
24
+ FieldGroup: string;
25
+ ColSpanSizes: Array<ColSpanSizesEnum>;
26
+ InListView: boolean;
27
+ FieldType: FieldTypeEnum;
28
+ FieldValue: any;
29
+ FormFormGroup: FormGroup;
30
+ }
31
+ export declare enum FieldTypeEnum {
32
+ 'Campo di testo' = 1,
33
+ 'Area di testo' = 2,
34
+ 'Booleano' = 3,
35
+ 'Data e/o ora' = 4,
36
+ 'Campo numerico' = 5,
37
+ 'Allegato' = 6,
38
+ 'Immagine' = 7,
39
+ 'Elenco generico' = 8,
40
+ 'Lookup' = 9,
41
+ 'Form di dettaglio' = 10
42
+ }
43
+ export declare enum ColSpanSizesEnum {
44
+ 'col-sm-3' = 1,
45
+ 'col-sm-4' = 2,
46
+ 'col-sm-6' = 3,
47
+ 'col-sm-12' = 4,
48
+ 'col-md-3' = 5,
49
+ 'col-md-4' = 6,
50
+ 'col-md-6' = 7,
51
+ 'col-md-12' = 8,
52
+ 'col-lg-3' = 9,
53
+ 'col-lg-4' = 10,
54
+ 'col-lg-6' = 11,
55
+ 'col-lg-12' = 12
56
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Classe base che implementa la valorizzazione dell'ID (se null) con una nuova GUID
3
+ * in creazione dell'oggetto.
4
+ * Per scelta architetturale, visto che non possiamo assumere la persistenza su DB relazionale o su NOSQL, ogni
5
+ * oggetto della configurazione viene persistito, e gestito con ID di tipo stringa creato da una GUID.
6
+ */
7
+ export declare class BaseObj {
8
+ ID: string;
9
+ }
@@ -0,0 +1,9 @@
1
+ export declare class Context {
2
+ User: ContextUser;
3
+ Organizzation: string;
4
+ }
5
+ export declare class ContextUser {
6
+ Name: string;
7
+ Surname: string;
8
+ Role: string;
9
+ }
@@ -0,0 +1,10 @@
1
+ import { IRootObject } from "../interfaces/iRootObject.interface";
2
+ import { BaseField } from "./baseField.model";
3
+ import { BaseObj } from "./baseObj.model";
4
+ /**
5
+ * Rappresenta l'entità su cui vengono eseguite le operazioni di salvataggio.
6
+ */
7
+ export declare class Entity extends BaseObj implements IRootObject {
8
+ Name: string;
9
+ Fields: Array<BaseField>;
10
+ }
@@ -0,0 +1,17 @@
1
+ import { BaseField } from "../baseField.model";
2
+ export declare class AttachmentField extends BaseField {
3
+ /**Elenco delle estensioni consentite. Se vuoto usa il default (pdf) */
4
+ AllowedExtensions: Array<string>;
5
+ /**Se true permette l'inserimento di più allegati. In questo caso i metadati vengono rappresentati come una detail */
6
+ IsMultiAttach: boolean;
7
+ /**Elenco campi che possono rappresentare i metadati dell'allegato, ad esempio nome, ecc... */
8
+ MetadataFields: Array<BaseField>;
9
+ }
10
+ export declare const AvailableFileExtensions: Array<{
11
+ key: string;
12
+ value: string;
13
+ }>;
14
+ export declare const AvailableImageExtensions: Array<{
15
+ key: string;
16
+ value: string;
17
+ }>;
@@ -0,0 +1,11 @@
1
+ import { BaseField } from "../baseField.model";
2
+ export declare class BooleanField extends BaseField {
3
+ /**Se true il boolean accetta anche il valore N/A (non assegnato) */
4
+ IsTristate: boolean;
5
+ PresetationType: BoolPresentantioEnum;
6
+ }
7
+ export declare enum BoolPresentantioEnum {
8
+ "Checkbox" = 1,
9
+ "Toggle" = 2,
10
+ "Radio button" = 3
11
+ }
@@ -0,0 +1,12 @@
1
+ import { BaseField } from "../baseField.model";
2
+ /**Rappresenta la configurazione di un campo Data o Data e ora, o solo ora */
3
+ export declare class DateField extends BaseField {
4
+ IsOnlyDate: DateTimeTypeEnum;
5
+ MinDate: Date;
6
+ MaxDate: Date;
7
+ }
8
+ export declare enum DateTimeTypeEnum {
9
+ "Solo data" = 1,
10
+ "Solo orario" = 2,
11
+ "Data e ora" = 3
12
+ }
@@ -0,0 +1,10 @@
1
+ import { BaseField } from "../baseField.model";
2
+ import { AttachmentField } from "./attachmentField.model";
3
+ 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; */
8
+ ImageIsContextualAttachment: boolean;
9
+ AttachDefinition: AttachmentField;
10
+ }
@@ -0,0 +1,21 @@
1
+ import { BaseField } from "../baseField.model";
2
+ /**Lista di valori */
3
+ export declare class ListValueField extends BaseField {
4
+ /**
5
+ * Lista di valori ordinata. La parte "Value", viene utilizzata in modi diversi a seconda del tipo di presentazione, e/o
6
+ * come valore relazionato nelle formule
7
+ */
8
+ ValuePairs: {
9
+ [key: string]: any;
10
+ };
11
+ /**Se true è l'utente può scegliere più di un valore */
12
+ IsMultiChoiche: boolean;
13
+ /**Modalità di presentazione */
14
+ PresentationMode: ListPresentationEnum;
15
+ }
16
+ export declare enum ListPresentationEnum {
17
+ "Combo box" = 1,
18
+ "Radio button" = 2,
19
+ "Pulsante con testo" = 3,
20
+ "Immagini" = 4
21
+ }
@@ -0,0 +1,10 @@
1
+ import { BaseField } from "../baseField.model";
2
+ /**Questo tipo di campo rappresenta una lookup ad altri valori */
3
+ export declare class LookupField extends BaseField {
4
+ /**Entità relazionata (il padre) */
5
+ EntitySourceName: string;
6
+ /**Elenco di campi ordinato che verrà visualizzato nella lookup */
7
+ FieldNames: string[];
8
+ /**Se true la lookup viene visualizzata in una modale per lo scegli scarta */
9
+ UseAsGetOrDiscard: boolean;
10
+ }
@@ -0,0 +1,9 @@
1
+ import { BaseField } from "../baseField.model";
2
+ /**Classe contiene la configurazione dei campi numerici */
3
+ export declare class NumericField extends BaseField {
4
+ IsInteger: boolean;
5
+ MinValue: number;
6
+ MaxValue: number;
7
+ NumberFormat: string;
8
+ CurrencySymbol: string;
9
+ }
@@ -0,0 +1,7 @@
1
+ import { BaseField } from "../baseField.model";
2
+ export declare class TextareaField extends BaseField {
3
+ /**Numero di righe in altezza con cui viene rappresentata la text area */
4
+ Rows: number;
5
+ MaxLenght: number;
6
+ MinLenght: number;
7
+ }
@@ -0,0 +1,7 @@
1
+ import { BaseField } from "../baseField.model";
2
+ /**Campo di testo */
3
+ export declare class TextField extends BaseField {
4
+ TextMask: string;
5
+ MaxLenght: number;
6
+ MinLenght: number;
7
+ }
@@ -0,0 +1,45 @@
1
+ import { BaseObj } from "./baseObj.model";
2
+ import { IRootObject } from "../interfaces/iRootObject.interface";
3
+ import { BaseField } from "./baseField.model";
4
+ /**
5
+ * Classe che rappresenta una Form completa.
6
+ * Si tratta dell'oggetto che viene rappresentato a video e con cui l'utente interagisce.
7
+ */
8
+ export declare class Form extends BaseObj implements IRootObject {
9
+ Name: string;
10
+ FormScalarType: FormScalarTypeEnum;
11
+ FormFieldsGroups: Array<FormFieldGroup>;
12
+ /**
13
+ * Elenco dei campi rappresentati nella form
14
+ * possono appartenere ad una sola entità
15
+ */
16
+ Fields: Array<BaseField>;
17
+ ActionsOnRecord: Array<ActionOnRecord>;
18
+ /**
19
+ * Elenco delle form contenute nella form base, ad esempio possono essere le varie form di
20
+ * dettaglio
21
+ */
22
+ InnerForms: Array<Form>;
23
+ RootEntityID: string;
24
+ OldName?: string;
25
+ }
26
+ export declare class FormFieldGroup {
27
+ Name: string;
28
+ OrdinalPosition?: number;
29
+ }
30
+ export declare class ActionOnRecord {
31
+ Name: string;
32
+ Icon: string;
33
+ Action: string;
34
+ OrdinalPosition: number;
35
+ }
36
+ export declare enum FormTypeEnum {
37
+ SCALAR = 1,
38
+ LIST = 2
39
+ }
40
+ export declare enum FormScalarTypeEnum {
41
+ "Semplice" = 1,
42
+ "A step" = 2,
43
+ "In tab" = 3,
44
+ "In accordion" = 4
45
+ }
@@ -0,0 +1,5 @@
1
+ export declare class Record {
2
+ ID: string;
3
+ EntID: string;
4
+ [key: string]: any;
5
+ }
@@ -0,0 +1,2 @@
1
+ export declare class MaterialModule {
2
+ }
@@ -0,0 +1,5 @@
1
+ import { ValidationErrors } from "@angular/forms";
2
+ export declare class ArrayValidators {
3
+ static minLenght(minLenght: number): (AbstractControl: any) => ValidationErrors | null;
4
+ static maxLenght(maxLenght: number): (AbstractControl: any) => ValidationErrors | null;
5
+ }
@@ -0,0 +1,28 @@
1
+ export declare class EqpDynamicModuleDialogService {
2
+ constructor();
3
+ /**
4
+ * Mostra uno sweet alert di tipo ERROR con il messaggio passato come parametro.
5
+ * @param message Messaggio d'errore da mostrare nello sweetalert
6
+ * @param title Titolo dello sweetalert (di default mostra 'Errore')
7
+ */
8
+ static Error(message: string | string[], title?: string): void;
9
+ /**
10
+ * Mostra uno sweetalert di tipo CONFIRM con il messaggio passato come parametro e se viene premuto
11
+ * CONFERMA lancia la funzione di callback passata come parametro
12
+ * @param message Messaggio da mostrare nello sweetalert
13
+ * @param title Titolo dello sweetalert (di default mostra 'Info')
14
+ */
15
+ static Confirm(message: string | string[], confirmCallback: any, isWarning?: boolean, title?: string, customWidth?: string): void;
16
+ /**
17
+ * Mostra uno sweetalert di tipo INFO con il messaggio passato come parametro
18
+ * @param message Messaggio da mostrare nello sweetalert
19
+ * @param title Titolo dello sweetalert (di default mostra 'Info')
20
+ */
21
+ static Info(message: string, title?: string, isToast?: boolean): void;
22
+ /**
23
+ * Mostra uno sweetalert di tipo WARNING con il messaggio passato come parametro
24
+ * @param message Messaggio da mostrare nello sweetalert
25
+ * @param title Titolo dello sweetalert (di default mostra 'Attenzione!')
26
+ */
27
+ static Warning(message: string | string[], title?: string, isToast?: boolean): void;
28
+ }
@@ -0,0 +1,48 @@
1
+ import { FormBuilder, FormGroup } from "@angular/forms";
2
+ import { BaseField } from "../models/baseField.model";
3
+ import { Context } from "../models/context.model";
4
+ import { Record } from "../models/record.model";
5
+ export declare class UtilityHelperService {
6
+ private formBuilder;
7
+ static context: Context;
8
+ constructor(formBuilder: FormBuilder);
9
+ static EvaluateFieldFormula(formula: string, rec: Record, ctx: any): any;
10
+ static SetContext(ctx: Context): void;
11
+ /**
12
+ * Metodo per impostare i valori da suggerire nell'autocomplete per i campi in cui l'utente deve scrivere comandi javascript.
13
+ * In base all'ultimo carattere digitato viene impostato un elenco di oggetti o proprietà che l'utente ha a disposizione in quel momento.
14
+ * @param fields Array di BaseField aggiunti alla Form
15
+ * @param typedFormula Stringa digitata dall'utente
16
+ * @summary Il metodo imposta i suggerimenti basandosi su 3 casi:
17
+ * 1) l'utente non ha digitato nulla o la stringa digitata dall'utente finisce con uno spazio vuoto
18
+ * 2) la stringa digitata dall'utente finisce con un "."
19
+ * 3) la stringa digitata dall'utente non coincide con nessun altro caso sopra (finisce con un carattere qualunque)
20
+ */
21
+ static GetAutocompleteOptions(fields: Array<BaseField>, typedFormula: string): Array<{
22
+ label: string;
23
+ value: string;
24
+ }>;
25
+ /**
26
+ * Metodo invocato dall'html per impostare le classi css per visualizzare il campo all'interno della form.
27
+ * Se per il field sono state specificate delle classi allora vengono applcate quelle, altrimenti vengono usate
28
+ * delle classi di default.
29
+ * @param field BaseField da visualizzare.
30
+ * @returns Restituisce una stringa contenente le classi css da applicare.
31
+ */
32
+ getFieldSyleClass(field: BaseField): string;
33
+ /**
34
+ * Metodo per creare il FormGroup che rappresenta una Form a partire dai suoi BaseField.
35
+ * @param formFields Lista dei BaseField che compongono la form.
36
+ * @param record Oggetto di tipo Record che contiene i valori dei campi.
37
+ * @param onlyView Se TRUE disabilita la form per renderla in sola lettura.
38
+ * @param includeCurrentFormInField Se TRUE popola la proprietà FormFormGroup all'interno di ogni BaseField con il FormGroup corrente.
39
+ * @returns Restituisce un FormGroup rappresentate la Form a cui appartengono i BaseField ricevuti in input.
40
+ */
41
+ CreateFormFormGroup(formFields: Array<BaseField>, record: Record, onlyView?: boolean, includeCurrentFormInField?: boolean): FormGroup;
42
+ /**
43
+ * Funzione per creare e aggiungere al FormGroup rappresentante la form un nuovo FormControl a partire da un Field.
44
+ * In nuovo FormControl avrà il nome del campo passato e verranno impostati i Validators in base al tipo del campo stesso.
45
+ * @param field BaseField per cui creare il FormControl da inserire nel FormGroup dela form.
46
+ */
47
+ private createFieldFormControl;
48
+ }
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@eqproject/eqp-dynamic-module",
3
+ "description": "Dynamic module component - Angular Material based",
4
+ "author": {
5
+ "name": "EqProject"
6
+ },
7
+ "version": "0.0.1",
8
+ "peerDependencies": {
9
+ "@angular/common": "^9.0.7",
10
+ "@angular/core": "^9.0.7",
11
+ "@angular/material": "^10.0.1",
12
+ "@angular-material-components/datetime-picker": "^2.0.4",
13
+ "@angular-material-components/moment-adapter": "^6.0.0",
14
+ "moment": "^2.29.1",
15
+ "sweetalert2": "^9.10.9"
16
+ },
17
+ "dependencies": {
18
+ "@eqproject/eqp-attachments": "^0.1.12",
19
+ "@eqproject/eqp-datetimepicker": "^0.0.18",
20
+ "@eqproject/eqp-filters": "^0.1.6",
21
+ "@eqproject/eqp-numeric": "^0.0.1",
22
+ "@eqproject/eqp-select": "^0.4.7",
23
+ "@eqproject/eqp-table": "^0.8.5",
24
+ "browser-image-compression": "^1.0.15",
25
+ "ngx-image-cropper": "^3.3.5",
26
+ "ngx-mat-select-search": "^3.3.0",
27
+ "tslib": "^1.10.0"
28
+ },
29
+ "main": "bundles/eqproject-eqp-dynamic-module.umd.js",
30
+ "module": "fesm5/eqproject-eqp-dynamic-module.js",
31
+ "es2015": "fesm2015/eqproject-eqp-dynamic-module.js",
32
+ "esm5": "esm5/eqproject-eqp-dynamic-module.js",
33
+ "esm2015": "esm2015/eqproject-eqp-dynamic-module.js",
34
+ "fesm5": "fesm5/eqproject-eqp-dynamic-module.js",
35
+ "fesm2015": "fesm2015/eqproject-eqp-dynamic-module.js",
36
+ "typings": "eqproject-eqp-dynamic-module.d.ts",
37
+ "metadata": "eqproject-eqp-dynamic-module.metadata.json",
38
+ "sideEffects": false
39
+ }
@@ -0,0 +1,35 @@
1
+ export * from './lib/eqp-dynamic-module.module';
2
+ export * from './lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component';
3
+ export * from './lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component';
4
+ export * from './lib/components/private/add-form-field/add-form-field.component';
5
+ export * from './lib/components/private/dynamic-module-field/dynamic-module-field.component';
6
+ export * from './lib/components/private/field-templates/attachment-field-template/attachment-field-template.component';
7
+ export * from './lib/components/private/field-templates/boolean-field-template/boolean-field-template.component';
8
+ export * from './lib/components/private/field-templates/date-field-template/date-field-template.component';
9
+ export * from './lib/components/private/field-templates/image-field-template/image-field-template.component';
10
+ export * from './lib/components/private/field-templates/list-value-field-template/list-value-field-template.component';
11
+ export * from './lib/components/private/field-templates/numeric-field-template/numeric-field-template.component';
12
+ export * from './lib/components/private/field-templates/text-field-template/text-field-template.component';
13
+ export * from './lib/components/private/field-templates/textarea-field-template/textarea-field-template.component';
14
+ export * from './lib/components/private/form-records/add-form-record/add-form-record.component';
15
+ export * from './lib/components/private/form-records/list-form-record/list-form-record.component';
16
+ export * from './lib/interfaces/iBaseFieldComponent.interface';
17
+ export * from './lib/interfaces/iRootObject.interface';
18
+ export * from './lib/models/baseField.model';
19
+ export * from './lib/models/baseObj.model';
20
+ export * from './lib/models/context.model';
21
+ export * from './lib/models/entity.model';
22
+ export * from './lib/models/form.model';
23
+ export * from './lib/models/record.model';
24
+ export * from './lib/models/fields/attachmentField.model';
25
+ export * from './lib/models/fields/booleanField.model';
26
+ export * from './lib/models/fields/dateField.model';
27
+ export * from './lib/models/fields/imageField.model';
28
+ export * from './lib/models/fields/listValueField.model';
29
+ export * from './lib/models/fields/lookupField.model';
30
+ export * from './lib/models/fields/numericField.model';
31
+ export * from './lib/models/fields/testareaField.model';
32
+ export * from './lib/models/fields/textField.model';
33
+ export * from './lib/services/custom-form-validators.service';
34
+ export * from './lib/services/eqp-dynamic-module-dialog.service';
35
+ export * from './lib/services/utilityHelper.services';