arengibook 3.3.7-main → 3.4.0-main

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
@@ -21,8 +21,9 @@ généré automatiquement.
21
21
  | [`docs/architecture.md`](docs/architecture.md) | devs de la bibliothèque | Build rollup, API publique, design tokens, cœur i18n, outillage Storybook |
22
22
  | [`docs/integration-symfony.md`](docs/integration-symfony.md) | intégrateurs (arengibox) | Montage des composants depuis Twig, helpers `arengibookEnhance`/`arengibookRemount`, pièges connus |
23
23
  | [`CHANGELOG.md`](CHANGELOG.md) | tous | Ce que contient chaque version publiée |
24
+ | [`RELEASE_NOTES.md`](RELEASE_NOTES.md) | chefs de projet, utilisateurs | Ce qui change pour l'utilisateur à chaque version, sans jargon technique |
24
25
  | [`TODO_DESIGN.md`](TODO_DESIGN.md) | devs de la bibliothèque | Backlog des améliorations de composants |
25
- | `Table.symfony.mdx` (Storybook) | intégrateurs | Documentation complète du composant `Table` (le plus utilisé) |
26
+ | Page Docs du `Table` (Storybook) | chefs de projet, intégrateurs | Documentation complète du composant `Table` (le plus utilisé) : onglets Doc, Implémentation, Intégration Symfony |
26
27
 
27
28
  ---
28
29
 
package/dist/index.js CHANGED
@@ -58133,6 +58133,7 @@ var Table$1 = function Table(_ref17) {
58133
58133
  addTooltip = _ref17.addTooltip,
58134
58134
  _ref17$addRowPosition = _ref17.addRowPosition,
58135
58135
  addRowPosition = _ref17$addRowPosition === void 0 ? 'end' : _ref17$addRowPosition,
58136
+ newRowDefaults = _ref17.newRowDefaults,
58136
58137
  _ref17$defaultRowHeig = _ref17.defaultRowHeight,
58137
58138
  defaultRowHeight = _ref17$defaultRowHeig === void 0 ? 'small' : _ref17$defaultRowHeig,
58138
58139
  onReorderClick = _ref17.onReorderClick,
@@ -59124,9 +59125,7 @@ var Table$1 = function Table(_ref17) {
59124
59125
  });
59125
59126
  }, [onChange]);
59126
59127
  var handleAddRow = useCallback(function () {
59127
- // id temporaire négatif pour éviter les collisions avec les id BDD positifs
59128
59128
  var newRow = {
59129
- id: -Date.now(),
59130
59129
  attributeData: buildAttributeData()
59131
59130
  };
59132
59131
  columns.forEach(function (col) {
@@ -59139,7 +59138,18 @@ var Table$1 = function Table(_ref17) {
59139
59138
  default:
59140
59139
  newRow[col.field] = null;
59141
59140
  }
59141
+ // Copie profonde : une valeur objet/tableau partagée entre les lignes neuves
59142
+ // serait modifiée dans toutes à la fois.
59143
+ if (newRowDefaults && col.field !== 'id' && col.field !== 'attributeData' && Object.prototype.hasOwnProperty.call(newRowDefaults, col.field)) {
59144
+ var def = newRowDefaults[col.field];
59145
+ newRow[col.field] = def !== null && _typeof$e(def) === 'object' ? JSON.parse(JSON.stringify(def)) : def;
59146
+ }
59142
59147
  });
59148
+ // id temporaire négatif pour éviter les collisions avec les id BDD positifs.
59149
+ // Posé APRÈS les colonnes : une colonne `field: 'id'` (ex. tableau de saisie du
59150
+ // mapper d'import) le remettait à null, et toutes les lignes ajoutées partageaient
59151
+ // alors le même id — modifier une cellule modifiait toutes ces lignes (updateRow).
59152
+ newRow.id = -Date.now();
59143
59153
  // En lazy, l'insertion optimiste n'a pas de sens (la page cible n'est pas
59144
59154
  // forcément chargée) : tout est délégué à l'app via onAdd(newRow, null) —
59145
59155
  // charge à elle de créer côté serveur puis de recharger la page voulue.
@@ -59160,7 +59170,7 @@ var Table$1 = function Table(_ref17) {
59160
59170
  setFirst(Math.floor(index / pageRows) * pageRows);
59161
59171
  }
59162
59172
  setPendingScroll(addRowPosition === 'start' ? 'top' : 'bottom');
59163
- }, [columns, data, onChange, onAdd, buildAttributeData, addRowPosition, paginator, pageRows, lazy]);
59173
+ }, [columns, data, onChange, onAdd, buildAttributeData, addRowPosition, newRowDefaults, paginator, pageRows, lazy]);
59164
59174
 
59165
59175
  // Visibilité du bouton « + » : opt-in explicite (`showAdd`), sinon déduite de la
59166
59176
  // présence de `onAdd`. Voir le commentaire de la prop `showAdd`.
@@ -60734,6 +60744,9 @@ var Table$1 = function Table(_ref17) {
60734
60744
  if (val === null || val === undefined || val === '') return '';
60735
60745
  var num = parseFloat(val);
60736
60746
  if (isNaN(num)) return val;
60747
+ // id provisoire (négatif) d'une ligne ajoutée par handleAddRow : interne au
60748
+ // composant, sans signification pour l'utilisateur tant que la ligne n'est pas créée.
60749
+ if (col.field === 'id' && num < 0) return '';
60737
60750
  var outOfRange = col.min != null && num < col.min || col.max != null && num > col.max;
60738
60751
  var message = col.min != null && num < col.min ? "Min : ".concat(col.min) : col.max != null && num > col.max ? "Max : ".concat(col.max) : null;
60739
60752
  if (outOfRange) return /*#__PURE__*/React__default.createElement("span", {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arengibook",
3
3
  "private": false,
4
- "version": "3.3.7-main",
4
+ "version": "3.4.0-main",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "exports": {