@msbci/form-editor 1.3.3 → 1.3.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.
package/README.md CHANGED
@@ -88,6 +88,15 @@ Uses the same `IMosobiTheme` system as `@msbci/form-renderer`:
88
88
  <FormEditor theme={myTheme} dataSources={connectors} adapter={adapter} />
89
89
  ```
90
90
 
91
+ ## v1.3.4
92
+
93
+ - **DataSourceConfigManager** — nouveau dialog modal (`/dialogs/DataSourceConfigManager.tsx`) qui pilote le CRUD des `IDataSourceConfig` côté admin. Liste filtrable par scope (badge de provenance), formulaire d'ajout/édition (code, name, URL, method, queryParam, value/label fields, headers password-masked, dépendances). Bouton **"Sources"** ajouté dans la barre d'outils (`data-testid="toolbar-datasources"`).
94
+ - `IEditorAdapter` étendu : `loadDataSources(scopeId)`, `createDataSource(scopeId, data)`, `updateDataSource(id, data)`, `deleteDataSource(id)` — toutes optionnelles.
95
+ - Store : nouveau `availableDataSources: IDataSourceConfig[]` + setter `setAvailableDataSources()`. Hors undo/redo (UI state). Chargé par `FormEditor` via `Promise.all(scopeIds.map(loadDataSources))` + dédup par `code` (premier scope gagne, comme les templates).
96
+ - `DataSourceSelector` lit désormais le store en plus de la prop legacy `availableConnectors` — les configs admin l'emportent sur les connecteurs hardcodés du host.
97
+ - Labels FR/EN : `toolbar.dataSources`, `toolbar.manageDataSourcesTitle`, bloc complet `dataSourceManager.*` (titre dialog, formulaire, badges, confirmations).
98
+ - 6 nouveaux tests RTL (`dataSourceConfigManager.test.tsx`) — 151 tests passants.
99
+
91
100
  ## v1.3.3
92
101
 
93
102
  - **Régression zone vide canvas** corrigée — un clic sur la zone vide entre les pages déclenche désormais `select({ type: 'form' })` et ouvre les propriétés du formulaire (garde `e.target === e.currentTarget` pour ne pas capturer les clics enfants)