@eqproject/eqp-dynamic-module 2.11.4 → 2.11.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/USERGUIDE.md +437 -437
- package/esm2020/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +143 -13
- package/esm2020/lib/components/private/add-form-field/add-form-field.component.mjs +76 -3
- package/esm2020/lib/components/private/add-formula-field/add-formula-field.component.mjs +74 -13
- package/esm2020/lib/components/private/dynamic-module-field-extra-fix/dynamic-module-field-extra-fix.component.mjs +14 -2
- package/esm2020/lib/components/private/field-graphics-editor/field-graphics-editor.component.mjs +735 -0
- package/esm2020/lib/components/private/form-records/list-form-record/list-form-record.component.mjs +1 -1
- package/esm2020/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +1 -1
- package/esm2020/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.mjs +1 -1
- package/esm2020/lib/components/private/graphs/graph/graph.component.mjs +3 -3
- package/esm2020/lib/eqp-dynamic-module.module.mjs +4 -1
- package/esm2020/lib/utils/css-color.mjs +101 -0
- package/esm2020/lib/utils/css-declarations.mjs +119 -0
- package/esm2020/lib/utils/css-property-catalog.mjs +134 -0
- package/esm2020/lib/utils/field-style-catalog.mjs +491 -0
- package/esm2020/public-api.mjs +6 -1
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +2062 -195
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +2020 -195
- package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +39 -0
- package/lib/components/private/add-form-field/add-form-field.component.d.ts +19 -0
- package/lib/components/private/add-formula-field/add-formula-field.component.d.ts +5 -1
- package/lib/components/private/field-graphics-editor/field-graphics-editor.component.d.ts +192 -0
- package/lib/eqp-dynamic-module.module.d.ts +66 -65
- package/lib/utils/css-color.d.ts +15 -0
- package/lib/utils/css-declarations.d.ts +23 -0
- package/lib/utils/css-property-catalog.d.ts +36 -0
- package/lib/utils/field-style-catalog.d.ts +130 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { BaseField, FieldTypeEnum } from '../models/baseField.model';
|
|
2
|
+
/**
|
|
3
|
+
* Catalogo centralizzato della grafica dei campi.
|
|
4
|
+
*
|
|
5
|
+
* Ogni tipologia di campo espone una mappa piatta "Elemento + Stato" -> stringa CSS
|
|
6
|
+
* (es. TextFieldStyleCSS.InputFocused = "color: red;"). Qui stanno, in un unico posto,
|
|
7
|
+
* i metadati di quali elementi e quali stati esistono per ogni tipologia, insieme agli
|
|
8
|
+
* accessor generici per leggere/scrivere quelle mappe senza duplicare codice per tipo.
|
|
9
|
+
*/
|
|
10
|
+
export interface FieldStyleEntryDef {
|
|
11
|
+
key: string;
|
|
12
|
+
label: string;
|
|
13
|
+
}
|
|
14
|
+
export interface FieldStyleTypeDef {
|
|
15
|
+
fieldType: FieldTypeEnum;
|
|
16
|
+
/** Etichetta della tipologia mostrata a video */
|
|
17
|
+
label: string;
|
|
18
|
+
/** Nome della proprietà che contiene la mappa degli stili sul field */
|
|
19
|
+
styleProp: string;
|
|
20
|
+
elements: Array<FieldStyleEntryDef>;
|
|
21
|
+
states: Array<FieldStyleEntryDef>;
|
|
22
|
+
}
|
|
23
|
+
export declare const FIELD_STYLE_CATALOG: Array<FieldStyleTypeDef>;
|
|
24
|
+
/**
|
|
25
|
+
* Nome di un campo da mostrare a video. Description può valere " " (uno spazio: truthy ma
|
|
26
|
+
* invisibile), quindi va ripulita prima di usarla; poi il testo dell'Etichetta, il codice, il Name.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getFieldDisplayName(field: BaseField): string;
|
|
29
|
+
/** Definizione del catalogo per una tipologia; null se la tipologia non ha grafica configurabile */
|
|
30
|
+
export declare function getFieldStyleTypeDef(fieldType: FieldTypeEnum | number): FieldStyleTypeDef | null;
|
|
31
|
+
/**
|
|
32
|
+
* Elementi grafici di un campo. Coincidono con quelli del catalogo, salvo l'Elenco generico
|
|
33
|
+
* dove dipendono dalla modalità di presentazione scelta sul campo.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getFieldStyleElements(field: BaseField): Array<FieldStyleEntryDef>;
|
|
36
|
+
/** Mappa degli stili del campo (può essere undefined se non è mai stata valorizzata) */
|
|
37
|
+
export declare function getFieldStyleMap(field: BaseField): {
|
|
38
|
+
[key: string]: string;
|
|
39
|
+
} | null;
|
|
40
|
+
/** Come getFieldStyleMap, ma crea la mappa se manca */
|
|
41
|
+
export declare function ensureFieldStyleMap(field: BaseField): {
|
|
42
|
+
[key: string]: string;
|
|
43
|
+
} | null;
|
|
44
|
+
/** Legge il CSS di un "Elemento + Stato" (es. "InputFocused") */
|
|
45
|
+
export declare function getFieldStyleValue(field: BaseField, key: string): string;
|
|
46
|
+
/** Scrive il CSS di un "Elemento + Stato"; il valore vuoto rimuove la chiave dal JSON */
|
|
47
|
+
export declare function setFieldStyleValue(field: BaseField, key: string, value: string): void;
|
|
48
|
+
/** True se il campo non ha ancora nessuna regola grafica impostata */
|
|
49
|
+
export declare function isFieldStyleMapEmpty(field: BaseField): boolean;
|
|
50
|
+
/** Copia profonda della mappa stili di un campo (solo le chiavi valorizzate) */
|
|
51
|
+
export declare function cloneFieldStyleMap(field: BaseField): {
|
|
52
|
+
[key: string]: string;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Elemento "logico" della grafica globale: un concetto (contenitore, etichetta, area del valore)
|
|
56
|
+
* presente in quasi tutte le tipologie ma che ogni tipologia chiama con un nome diverso.
|
|
57
|
+
* Serve alla scheda "Grafica globale", dove si modificano insieme campi di tipologie diverse.
|
|
58
|
+
*/
|
|
59
|
+
export interface GlobalStyleElementDef {
|
|
60
|
+
key: string;
|
|
61
|
+
label: string;
|
|
62
|
+
/** Per ogni tipologia, gli elementi reali su cui scrivere */
|
|
63
|
+
perType: {
|
|
64
|
+
[fieldType: number]: Array<string>;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export declare const GLOBAL_STYLE_ELEMENTS: Array<GlobalStyleElementDef>;
|
|
68
|
+
/**
|
|
69
|
+
* Elementi reali di un campo corrispondenti a un elemento logico globale.
|
|
70
|
+
* Interseca la mappatura per tipologia con gli elementi che il campo ha davvero
|
|
71
|
+
* (l'Elenco generico, per esempio, cambia elementi in base alla modalità di presentazione).
|
|
72
|
+
*/
|
|
73
|
+
export declare function resolveGlobalElementKeys(field: BaseField, globalKey: string): Array<string>;
|
|
74
|
+
/** Stati comuni a tutte le tipologie passate: sono gli unici applicabili globalmente */
|
|
75
|
+
export declare function getCommonStates(fieldTypes: Array<FieldTypeEnum | number>): Array<FieldStyleEntryDef>;
|
|
76
|
+
/**
|
|
77
|
+
* I campi hanno due proprietà storiche, LabelstyleCSS e FieldstyleCSS, che i template
|
|
78
|
+
* applicano ancora con [ngStyle], quindi come stili INLINE. Essendo inline battono le regole
|
|
79
|
+
* "#uid { ... }" iniettate dalla grafica per elemento e stato: un colore impostato dall'editor
|
|
80
|
+
* grafico non si vedeva sui campi che avevano il CSS legacy valorizzato.
|
|
81
|
+
*
|
|
82
|
+
* Questa tabella dice, per ogni tipologia, su quale elemento della grafica nuova finisce
|
|
83
|
+
* ciascuna delle due proprietà legacy, in modo da poterle assorbire e avere una sola fonte
|
|
84
|
+
* di verità. Le tipologie assenti non usano [ngStyle] in nessun template.
|
|
85
|
+
*/
|
|
86
|
+
export declare const LEGACY_STYLE_TARGETS: {
|
|
87
|
+
[fieldType: number]: {
|
|
88
|
+
label?: string;
|
|
89
|
+
field?: string;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
export interface LegacyMergeResult {
|
|
93
|
+
/** Proprietà legacy assorbite */
|
|
94
|
+
consumed: Array<'LabelstyleCSS' | 'FieldstyleCSS'>;
|
|
95
|
+
/** Chiavi "ElementoStato" toccate dall'assorbimento */
|
|
96
|
+
keys: Array<string>;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Riversa il CSS legacy del campo dentro una mappa "Elemento+Stato" -> CSS, sullo stato Normale.
|
|
100
|
+
* Non sovrascrive le proprietà già presenti nella mappa: la grafica nuova ha la precedenza.
|
|
101
|
+
*/
|
|
102
|
+
export declare function mergeLegacyStylesIntoMap(field: BaseField, map: {
|
|
103
|
+
[key: string]: string;
|
|
104
|
+
}, only?: 'LabelstyleCSS' | 'FieldstyleCSS'): LegacyMergeResult;
|
|
105
|
+
/** Chiave "ElementoNormale" su cui finirebbe una proprietà legacy, o null se non applicabile */
|
|
106
|
+
export declare function legacyTargetKey(field: BaseField, name: 'LabelstyleCSS' | 'FieldstyleCSS'): string | null;
|
|
107
|
+
/** Mappa stili "effettiva" di un campo: quella per elemento più il CSS legacy assorbito */
|
|
108
|
+
export declare function getEffectiveStyleMap(field: BaseField): {
|
|
109
|
+
[key: string]: string;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* True se il campo ha una grafica da qualche parte: nella mappa per elemento oppure nel CSS
|
|
113
|
+
* legacy. È il test giusto per "questo campo può fare da sorgente" (eredità, Copia Grafica):
|
|
114
|
+
* isFieldStyleMapEmpty guarda solo la mappa nuova e ignorerebbe i campi stilizzati solo col legacy.
|
|
115
|
+
*/
|
|
116
|
+
export declare function hasEffectiveStyles(field: BaseField): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Grafica di default costruita a partire da campi di tipologia DIVERSA.
|
|
119
|
+
*
|
|
120
|
+
* L'eredità naturale è fra campi della stessa tipologia, che condividono i nomi degli elementi.
|
|
121
|
+
* Quando però una tipologia viene usata per la prima volta non c'è nessun campo simile da cui
|
|
122
|
+
* copiare: in quel caso si passa per gli elementi logici della grafica globale (contenitore,
|
|
123
|
+
* etichetta, area del valore), che ogni tipologia sa tradurre nei propri elementi.
|
|
124
|
+
*
|
|
125
|
+
* @param field campo nuovo che deve ricevere la grafica
|
|
126
|
+
* @param sources campi già presenti nella form, in ordine
|
|
127
|
+
*/
|
|
128
|
+
export declare function buildGlobalInheritedMap(field: BaseField, sources: Array<BaseField>): {
|
|
129
|
+
[key: string]: string;
|
|
130
|
+
};
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './lib/eqp-dynamic-module.module';
|
|
|
2
2
|
export * from './lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component';
|
|
3
3
|
export * from './lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component';
|
|
4
4
|
export * from './lib/components/private/add-form-field/add-form-field.component';
|
|
5
|
+
export * from './lib/components/private/field-graphics-editor/field-graphics-editor.component';
|
|
5
6
|
export * from './lib/components/private/dynamic-module-field-fix/dynamic-module-field.component';
|
|
6
7
|
export * from './lib/components/private/dynamic-module-field-extra-fix/dynamic-module-field-extra-fix.component';
|
|
7
8
|
export * from './lib/components/private/field-templates/attachment-field-template/attachment-field-template.component';
|
|
@@ -54,3 +55,7 @@ export * from './lib/services/utilityHelper.services';
|
|
|
54
55
|
export * from './lib/models/graph.model';
|
|
55
56
|
export * from './lib/directives/dynamic-loader/dynamic-loader.directive';
|
|
56
57
|
export * from './lib/directives/speech-to-text/speech-to-text.directive';
|
|
58
|
+
export * from './lib/utils/field-style-catalog';
|
|
59
|
+
export * from './lib/utils/css-declarations';
|
|
60
|
+
export * from './lib/utils/css-property-catalog';
|
|
61
|
+
export * from './lib/utils/css-color';
|