@eqproject/eqp-dynamic-module 2.10.104 → 2.11.0
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 +35 -15
- package/esm2020/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +25 -25
- package/esm2020/lib/components/private/action-button-creator/action-button-creator.component.mjs +4 -4
- package/esm2020/lib/components/private/add-form-field/add-form-field.component.mjs +17 -17
- package/esm2020/lib/components/private/add-formula-field/add-formula-field.component.mjs +7 -7
- package/esm2020/lib/components/private/dbg-templates/list-value-dbg-template/list-value-dbg-template.component.mjs +4 -4
- package/esm2020/lib/components/private/dbgetter/dbgetter.component.mjs +5 -5
- package/esm2020/lib/components/private/dynamic-module-field-extra-fix/dynamic-module-field-extra-fix.component.mjs +5 -5
- package/esm2020/lib/components/private/field-templates/action-button-field-template/action-button-field-template.component.mjs +5 -5
- package/esm2020/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.mjs +10 -10
- package/esm2020/lib/components/private/field-templates/date-field-template/date-field-template.component.mjs +2 -2
- package/esm2020/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.mjs +4 -4
- package/esm2020/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.mjs +16 -9
- package/esm2020/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +6 -6
- package/esm2020/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +6 -6
- package/esm2020/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +5 -5
- package/esm2020/lib/components/private/form-records/hlist-form-record/hlist-form-record.component.mjs +5 -5
- package/esm2020/lib/components/private/form-records/list-form-record/list-form-record.component.mjs +10 -10
- package/esm2020/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +10 -10
- package/esm2020/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.mjs +32 -9
- package/esm2020/lib/components/private/form-statistics/filter-templates/boolean-filter-template/boolean-filter-template.component.mjs +7 -7
- package/esm2020/lib/components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component.mjs +8 -8
- package/esm2020/lib/components/private/form-statistics/filter-templates/image-selector-filter-template/image-selector-filter-template.component.mjs +3 -3
- package/esm2020/lib/components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component.mjs +6 -6
- package/esm2020/lib/components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component.mjs +17 -10
- package/esm2020/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +7 -7
- package/esm2020/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +7 -7
- package/esm2020/lib/components/private/graphs/graphs.component.mjs +4 -4
- package/esm2020/lib/components/private/tmw-image-drawer/tmw-image-drawer.component.mjs +5 -5
- package/esm2020/lib/components/private/tmw-image-marker/tmw-image-marker.component.mjs +6 -6
- package/esm2020/lib/components/private/trigger-creator/trigger-creator.component.mjs +8 -10
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/boolean-trigger-template/boolean-trigger-template.component.mjs +4 -4
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component.mjs +5 -5
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component.mjs +4 -4
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component.mjs +14 -7
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +7 -7
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +7 -7
- package/esm2020/lib/eqp-dynamic-module.module.mjs +22 -44
- package/esm2020/lib/models/dynAttachment.mjs +1 -1
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +233 -211
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +232 -211
- 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 +8 -8
- package/lib/components/private/add-form-field/add-form-field.component.d.ts +13 -13
- package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +2 -2
- package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +1 -1
- package/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.d.ts +2 -2
- package/lib/components/private/form-records/hlist-form-record/hlist-form-record.component.d.ts +2 -2
- package/lib/components/private/form-records/list-form-record/list-form-record.component.d.ts +2 -2
- package/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.d.ts +2 -2
- package/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.d.ts +4 -3
- package/lib/components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component.d.ts +1 -1
- package/lib/components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component.d.ts +2 -2
- package/lib/components/private/trigger-creator/trigger-creator.component.d.ts +0 -2
- package/lib/components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component.d.ts +1 -1
- package/lib/components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component.d.ts +2 -2
- package/lib/eqp-dynamic-module.module.d.ts +9 -26
- package/lib/models/dynAttachment.d.ts +2 -2
- package/package.json +7 -14
package/README.md
CHANGED
|
@@ -12,17 +12,39 @@
|
|
|
12
12
|
|
|
13
13
|
## Changelog
|
|
14
14
|
|
|
15
|
-
### v2.
|
|
16
|
-
- **Bugfix
|
|
17
|
-
- **Bugfix
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
- **
|
|
15
|
+
### v2.11.0
|
|
16
|
+
- **Bugfix critico — pagina Trigger che si rompeva completamente:** `trigger-creator.component.ts` andava in eccezione in `ngOnInit()` quando il tipo di trigger salvato in precedenza (`trigger.execution`) non era più presente nel catalogo formule corrente (es. rimosso o rinominato dopo il salvataggio): l'intera pagina di modifica dei trigger diventava inutilizzabile. Ora il caso viene gestito esplicitamente — si resetta `selectedFormula` e si continua a popolare normalmente la select "Tipo Trigger", senza bloccare il resto del componente.
|
|
17
|
+
- **Bugfix — condizioni dei trigger rotte per i campi Modulo Dinamico (DMMODULE):** in `trigger-creator` e `action-button-creator`, l'elenco dei form (usato per popolare i campi di tipo `DMMODULE`) veniva ricaricato dal server ad ogni cambio di "Tipo Trigger"/"Tipo Action Button", sovrascrivendo temporaneamente `res.object` prima che la risposta arrivasse. Aggiunto `ensureModulesLoaded()`: la chiamata al server avviene solo la prima volta per apertura di modale, le volte successive si riusa `this.forms` già scaricato. Aggiunta anche una validazione minima (`isValid()`) che impedisce il salvataggio di un trigger senza descrizione o senza tipo selezionato.
|
|
18
|
+
- **Fix build da sorgente — tipi TypeScript per `fabric`:** aggiunto `@types/fabric` alle `devDependencies` della libreria; senza questi tipi `tmw-image-drawer`/`tmw-image-marker` (usati dal campo "Immagine con markers") non compilavano (`Cannot find module 'fabric'`). Aggiunto anche un cast esplicito a `HTMLCanvasElement` nell'inizializzazione di `fabric.Canvas` in entrambi i componenti. Nessun impatto sui consumatori della libreria pubblicata (i tipi servono solo in fase di sviluppo/build).
|
|
19
|
+
- **Fix ambiente di sviluppo — disallineamento versione `tmw-icons`:** nel workspace del monorepo la copia di `tmw-icons` installata dentro `projects/eqp-dynamic-module/node_modules` era rimasta bloccata alla `0.1.1` (lockfile non aggiornato) mentre l'app host ne installava la `0.1.3`, causando due classi `TmwIconComponent` fisicamente distinte e un errore di compilazione Angular (`NG3004: Unable to import class TmwIconComponent`) che a cascata rompeva l'intera compilazione dell'app host. Nessun cambio di dipendenza dichiarata (resta `^0.1.1`), solo riallineamento del lockfile locale.
|
|
20
|
+
- **Versione 2.11.0:** consolida in un'unica release la migrazione completa `eqp-*` → `tmw-*` portata avanti nelle versioni 2.10.94–2.10.103 (vedi le voci sottostanti) insieme ai fix qui sopra.
|
|
21
|
+
|
|
22
|
+
- **Critical bugfix — Trigger page completely breaking:** `trigger-creator.component.ts` threw in `ngOnInit()` whenever a previously saved trigger type (`trigger.execution`) was no longer present in the current formula catalog (e.g. removed or renamed after saving): the entire trigger edit page became unusable. This case is now handled explicitly — `selectedFormula` is reset and the "Trigger Type" select is still populated normally, without blocking the rest of the component.
|
|
23
|
+
- **Bugfix — broken trigger conditions for Dynamic Module fields (DMMODULE):** in `trigger-creator` and `action-button-creator`, the forms list (used to populate `DMMODULE`-type fields) was re-fetched from the server on every "Trigger Type"/"Action Button Type" change, temporarily wiping `res.object` before the response arrived. Added `ensureModulesLoaded()`: the server call now happens only the first time per modal opening, subsequent changes reuse the already-fetched `this.forms`. Also added minimal validation (`isValid()`) preventing a trigger from being saved without a description or a selected type.
|
|
24
|
+
- **Source-build fix — TypeScript types for `fabric`:** added `@types/fabric` to the library's `devDependencies`; without these types `tmw-image-drawer`/`tmw-image-marker` (used by the "Image with markers" field) failed to compile (`Cannot find module 'fabric'`). Also added an explicit cast to `HTMLCanvasElement` when initializing `fabric.Canvas` in both components. No impact on consumers of the published library (the types are only needed at development/build time).
|
|
25
|
+
- **Dev environment fix — `tmw-icons` version mismatch:** inside the monorepo workspace, the `tmw-icons` copy installed under `projects/eqp-dynamic-module/node_modules` was stuck at `0.1.1` (stale lockfile) while the host app installed `0.1.3`, resulting in two physically distinct `TmwIconComponent` classes and an Angular compile error (`NG3004: Unable to import class TmwIconComponent`) that cascaded into breaking the entire host app build. No change to the declared dependency (still `^0.1.1`), just a local lockfile realignment.
|
|
26
|
+
- **Version 2.11.0:** consolidates into a single release the complete `eqp-*` → `tmw-*` migration carried out across versions 2.10.94–2.10.103 (see entries below) together with the fixes above.
|
|
27
|
+
|
|
28
|
+
### v2.10.102
|
|
29
|
+
- **Bugfix `ListValueField` (Combo box) — pulsante di cancellazione (X) sempre presente:** in `list-value-field-template`, il pulsante "X" di `tmw-select` era condizionato a `!field.Required` (nascosto sui campi obbligatori). Ora `showCancelButton` è sempre `true`, indipendentemente dall'obbligatorietà del campo: l'utente può sempre svuotare la selezione, anche su un campo required (la validazione `required` interviene comunque al salvataggio). Nessun cambio di API pubblica.
|
|
30
|
+
- **Bugfix `ListValueField` (Combo box) — cancel button (X) always present:** in `list-value-field-template`, the `tmw-select` "X" clear button was conditioned on `!field.Required` (hidden on required fields). `showCancelButton` is now always `true`, regardless of whether the field is required: the user can always clear the selection, and `required` validation still applies on save. No public API change.
|
|
31
|
+
|
|
32
|
+
### v2.10.101
|
|
33
|
+
- **Migrazione interna `eqp-table`/`eqp-attachments`/`eqp-numeric` → `tmw-table`/`tmw-attachments`/`tmw-numeric`:** le ultime tre dipendenze `@eqproject/eqp-*` sono state sostituite dalle librerie Material-free `tmw-*` (stesso lavoro già fatto per `eqp-select`/`eqp-datetimepicker` nelle versioni precedenti). Nessun cambio di API pubblica di questa libreria: i tag `<eqp-table>`/`<eqp-attachments>` erano già privati, i modelli `ConfigColumn`/`TypeColumn`/`DynAttachment` restano gli stessi nomi/forma. Chi consuma questa libreria non deve più installare `@eqproject/eqp-table`, `@eqproject/eqp-attachments`, `@eqproject/eqp-numeric` né `@eqproject/eqp-filters` (import morto, mai realmente usato).
|
|
34
|
+
- **Migrazione completa `<mat-icon>` → `<tmw-icon>`:** tutte le icone della libreria (inclusi i pulsanti del builder, i template di campo e le colonne azione delle tabelle) sono ora renderizzate dalla nuova libreria `tmw-icons` (SVG inline, icone vendorizzate da Tabler Icons, nessuna dipendenza dal font Material Icons). **Attenzione per chi ha form esistenti con icone personalizzate**: i campi di testo libero "Icona" (`IconName` su `TextField`/`NumericField`/`TextareaField`, `Icon` su `ActionButton`) si aspettavano nomi Material Icons (es. `search`, `home`, `euro`) — ora si aspettano nomi Tabler Icons (es. `search`, `user`, `currency-euro`); i nomi già salvati che non trovano corrispondenza esatta nel registro `tmw-icons` semplicemente non renderizzano l'icona (nessun errore a runtime, solo icona assente). Nessun impatto sul resto del form.
|
|
35
|
+
- **Pulizia dipendenze:** rimosse dalle `peerDependencies` `@angular-material-components/datetime-picker`, `@angular-material-components/moment-adapter` e `moment` (mai più necessarie dopo la migrazione a `tmw-picker`, completata in una versione precedente). Nuove dipendenze dirette: `tmw-attachments`, `tmw-icons`, `tmw-numeric`, `tmw-table`, `xlsx` (quest'ultima solo per l'export XLSX di `filter-form-statistic`, `tmw-table` non ha un formato XLSX nativo).
|
|
36
|
+
|
|
37
|
+
- **Internal migration `eqp-table`/`eqp-attachments`/`eqp-numeric` → `tmw-table`/`tmw-attachments`/`tmw-numeric`:** the last three `@eqproject/eqp-*` dependencies have been replaced with the Material-free `tmw-*` libraries (same work already done for `eqp-select`/`eqp-datetimepicker` in previous versions). No public API change in this library: the `<eqp-table>`/`<eqp-attachments>` tags were already private, the `ConfigColumn`/`TypeColumn`/`DynAttachment` models keep the same names/shape. Consumers of this library no longer need to install `@eqproject/eqp-table`, `@eqproject/eqp-attachments`, `@eqproject/eqp-numeric` or `@eqproject/eqp-filters` (dead import, never actually used).
|
|
38
|
+
- **Complete `<mat-icon>` → `<tmw-icon>` migration:** every icon in the library (including builder buttons, field templates and table action columns) is now rendered by the new `tmw-icons` library (inline SVG, icons vendored from Tabler Icons, no dependency on the Material Icons font). **Note for existing forms with custom icons**: the free-text "Icon" fields (`IconName` on `TextField`/`NumericField`/`TextareaField`, `Icon` on `ActionButton`) used to expect Material Icons names (e.g. `search`, `home`, `euro`) — they now expect Tabler Icons names (e.g. `search`, `user`, `currency-euro`); previously saved names with no exact match in the `tmw-icons` registry simply don't render the icon (no runtime error, just a missing icon). No impact on the rest of the form.
|
|
39
|
+
- **Dependency cleanup:** removed `@angular-material-components/datetime-picker`, `@angular-material-components/moment-adapter` and `moment` from `peerDependencies` (no longer needed after the `tmw-picker` migration, completed in a previous version). New direct dependencies: `tmw-attachments`, `tmw-icons`, `tmw-numeric`, `tmw-table`, `xlsx` (the latter only for `filter-form-statistic`'s XLSX export — `tmw-table` has no native XLSX format).
|
|
40
|
+
|
|
41
|
+
### v2.10.100
|
|
42
|
+
- **Cleanup — rimossi import morti di `@eqproject/eqp-datetimepicker` e `@eqproject/eqp-img-drawing`:** entrambi erano registrati nell'`NgModule` (`EqpDatetimepickerModule`, `EqpImgDrawingModule`) e in `trigger-creator.component.ts` (`PickerModeEnum`) ma non più usati da nessun template — sostituiti internamente da tempo da `tmw-datetimepicker` (campo Data) e da `tmw-image-drawer`/`tmw-image-marker` (campo Immagine con markers). Nessun impatto funzionale: build verificata anche con i due pacchetti fisicamente assenti da `node_modules`, per provare che non fossero più necessari. Chi consuma questa libreria non deve più installare `@eqproject/eqp-datetimepicker` né `@eqproject/eqp-img-drawing`.
|
|
43
|
+
- **Cleanup — removed dead imports of `@eqproject/eqp-datetimepicker` and `@eqproject/eqp-img-drawing`:** both were registered in the `NgModule` (`EqpDatetimepickerModule`, `EqpImgDrawingModule`) and in `trigger-creator.component.ts` (`PickerModeEnum`) but no longer used by any template — internally superseded a while ago by `tmw-datetimepicker` (Date field) and `tmw-image-drawer`/`tmw-image-marker` (Image with markers field). No functional impact: build verified even with both packages physically absent from `node_modules`, to prove they were no longer required. Consumers of this library no longer need to install `@eqproject/eqp-datetimepicker` or `@eqproject/eqp-img-drawing`.
|
|
44
|
+
|
|
45
|
+
### v2.10.99
|
|
46
|
+
- **Bugfix configurator — immagine persa su campo `Immagine`/`Immagine con markers`:** `catchButtonImageChange` e `catchButtonImageWithMarkersChange` in `add-form-field` leggevano l'indice sbagliato (`attachments[1]`) dell'array emesso da `eqp-attachments`. Al primo caricamento di un'immagine su un campo nuovo l'array ha un solo elemento, quindi `field.DynAttachment` veniva sovrascritto con `undefined`: l'immagine spariva riaprendo la modale di modifica campo e non compariva mai in anteprima. Corretto leggendo `attachments[attachments.length - 1]`.
|
|
47
|
+
- **Bugfix configurator — image lost on `Image`/`Image with markers` field:** `catchButtonImageChange` and `catchButtonImageWithMarkersChange` in `add-form-field` were reading the wrong index (`attachments[1]`) from the array emitted by `eqp-attachments`. On the first image upload to a new field the array has only one element, so `field.DynAttachment` was overwritten with `undefined`: the image disappeared when reopening the field edit dialog and never showed up in the preview. Fixed to read `attachments[attachments.length - 1]`.
|
|
26
48
|
|
|
27
49
|
### v2.10.87
|
|
28
50
|
- **Bugfix configurator — sezione "Generale" assente per 5 tipi di campo:** durante il lavoro di potenziamento grafico (v2.10.68–v2.10.70), i tipi `ActionButtonField`, `ImageField`, `ImageWithMarkersField`, `ListValueField` e `ImageSelectorField` avevano ricevuto la sezione "Grafica" nel tab "Stile Compilazione" del configuratore, ma la sezione "Generale" (Larghezza campo, Visibile, VisibleIf, Tooltip, Tipo di invisibilità, Mantieni il valore) era stata rimossa per errore. Ripristinata per tutti e 5 i tipi.
|
|
@@ -139,8 +161,7 @@ Le form sono strutture JSON salvate lato server e recuperate a runtime. La libre
|
|
|
139
161
|
|
|
140
162
|
```bash
|
|
141
163
|
npm install @angular/cdk@^15.1.2 @angular/material@^15.1.2 @angular/material-luxon-adapter@^15.2.9 --legacy-peer-deps
|
|
142
|
-
npm install
|
|
143
|
-
npm install moment@^2.29.4 sweetalert2@^11.4.24 --legacy-peer-deps
|
|
164
|
+
npm install sweetalert2@^11.4.24 --legacy-peer-deps
|
|
144
165
|
```
|
|
145
166
|
|
|
146
167
|
> Tutti i comandi `npm install` per questa libreria richiedono il flag `--legacy-peer-deps`.
|
|
@@ -543,8 +564,7 @@ Forms are defined as JSON structures stored server-side and fetched at runtime.
|
|
|
543
564
|
|
|
544
565
|
```bash
|
|
545
566
|
npm install @angular/cdk@^15.1.2 @angular/material@^15.1.2 @angular/material-luxon-adapter@^15.2.9 --legacy-peer-deps
|
|
546
|
-
npm install
|
|
547
|
-
npm install moment@^2.29.4 sweetalert2@^11.4.24 --legacy-peer-deps
|
|
567
|
+
npm install sweetalert2@^11.4.24 --legacy-peer-deps
|
|
548
568
|
```
|
|
549
569
|
|
|
550
570
|
> All `npm install` commands for this library require `--legacy-peer-deps`.
|