arengibook 3.1.291-main → 3.1.312-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.
Files changed (2) hide show
  1. package/dist/index.js +52 -16
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -55485,29 +55485,30 @@ var SelfEditableCell = function SelfEditableCell(_ref11) {
55485
55485
  var parsed = parseDateAuto(localValue);
55486
55486
  var dateObj = (_parsed$date = parsed === null || parsed === void 0 ? void 0 : parsed.date) !== null && _parsed$date !== void 0 ? _parsed$date : new Date();
55487
55487
  var primeFormat = col.dbDateFormat ? dbDateFormatToPrime(col.dbDateFormat) : (_parsed$primeFormat = parsed === null || parsed === void 0 ? void 0 : parsed.primeFormat) !== null && _parsed$primeFormat !== void 0 ? _parsed$primeFormat : 'dd/mm/yy';
55488
- var commitDate = function commitDate(v) {
55489
- // commit synchrone, sans setTimeout
55490
- committedRef.current = true;
55491
- onSave(v);
55492
- setLocalValue(v);
55493
- if (!isRowEditing) setEditing(false);else committedRef.current = false;
55494
- };
55495
55488
  return /*#__PURE__*/React__default.createElement("div", {
55496
55489
  ref: containerRef
55497
55490
  }, /*#__PURE__*/React__default.createElement(DatePicker, {
55498
55491
  value: dateObj,
55499
55492
  dateFormat: primeFormat,
55493
+ onChange: function onChange(e) {
55494
+ if (e.value) {
55495
+ daySelectedRef.current = true;
55496
+ commit(fmtDateISO(e.value, primeFormat));
55497
+ }
55498
+ },
55500
55499
  onSelect: function onSelect(date, meta) {
55501
55500
  if ((meta === null || meta === void 0 ? void 0 : meta.type) === 'clear') {
55502
55501
  daySelectedRef.current = true;
55503
- commitDate(null);
55502
+ commit(null);
55504
55503
  } else if (date) {
55505
55504
  daySelectedRef.current = true;
55506
- commitDate(fmtDateISO(date, primeFormat));
55505
+ commit(fmtDateISO(date, primeFormat));
55507
55506
  }
55508
55507
  },
55509
55508
  onPanelHide: function onPanelHide() {
55510
- if (!daySelectedRef.current && !isRowEditing) setEditing(false);
55509
+ if (!daySelectedRef.current && !isRowEditing) {
55510
+ setEditing(false);
55511
+ }
55511
55512
  daySelectedRef.current = false;
55512
55513
  }
55513
55514
  }));
@@ -55743,12 +55744,41 @@ var Table$1 = function Table(_ref13) {
55743
55744
  locked = _useState32[0],
55744
55745
  setLocked = _useState32[1];
55745
55746
  var effectiveEditable = lockable ? editable && !locked : editable;
55746
- var _useState33 = useState(value),
55747
+
55748
+ // Construit l'attributeData complet d'une ligne : une entrée par colonne
55749
+ // qui déclare attributeData, disponible dès le chargement (avant toute édition).
55750
+ var buildAttributeData = useCallback(function () {
55751
+ var result = {};
55752
+ columns.forEach(function (col) {
55753
+ if (col.attributeData !== undefined) result[col.field] = col.attributeData;
55754
+ });
55755
+ return result;
55756
+ }, [columns]);
55757
+
55758
+ // Enrichit chaque ligne avec l'attributeData de toutes les colonnes.
55759
+ // Comme les mises à jour font toujours { ...row, [field]: newVal },
55760
+ // l'attributeData posé ici est préservé à travers toutes les éditions.
55761
+ var enrichRows = useCallback(function (rows) {
55762
+ var attributeData = buildAttributeData();
55763
+ if (!Object.keys(attributeData).length) return rows;
55764
+ return rows.map(function (row) {
55765
+ return _objectSpread2(_objectSpread2({}, row), {}, {
55766
+ attributeData: attributeData
55767
+ });
55768
+ });
55769
+ }, [buildAttributeData]);
55770
+ var _useState33 = useState(function () {
55771
+ return enrichRows(value);
55772
+ }),
55747
55773
  _useState34 = _slicedToArray$d(_useState33, 2),
55748
55774
  data = _useState34[0],
55749
55775
  setData = _useState34[1];
55776
+ // Dépendre uniquement de `value` : enrichRows change de référence si `columns`
55777
+ // est recréé par le parent à chaque rendu, ce qui re-synchroniserait la data
55778
+ // et écraserait les éditions en cours.
55779
+ // eslint-disable-next-line react-hooks/exhaustive-deps
55750
55780
  useEffect(function () {
55751
- setData(value);
55781
+ setData(enrichRows(value));
55752
55782
  }, [value]);
55753
55783
  var onCellChangeRef = useRef(onCellChange);
55754
55784
  useEffect(function () {
@@ -55792,7 +55822,8 @@ var Table$1 = function Table(_ref13) {
55792
55822
  var handleAddRow = useCallback(function () {
55793
55823
  // id temporaire négatif pour éviter les collisions avec les id BDD positifs
55794
55824
  var newRow = {
55795
- id: -Date.now()
55825
+ id: -Date.now(),
55826
+ attributeData: buildAttributeData()
55796
55827
  };
55797
55828
  columns.forEach(function (col) {
55798
55829
  switch (col.type) {
@@ -55811,7 +55842,7 @@ var Table$1 = function Table(_ref13) {
55811
55842
  onAdd === null || onAdd === void 0 || onAdd(newRow, updated);
55812
55843
  return updated;
55813
55844
  });
55814
- }, [columns, onChange, onAdd]);
55845
+ }, [columns, onChange, onAdd, buildAttributeData]);
55815
55846
  var _useState37 = useState({}),
55816
55847
  _useState38 = _slicedToArray$d(_useState37, 2),
55817
55848
  editingRows = _useState38[0],
@@ -56935,7 +56966,6 @@ var Table$1 = function Table(_ref13) {
56935
56966
  rowData: rowData,
56936
56967
  col: col,
56937
56968
  editable: colEditable,
56938
- isRowEditing: !!editingRows[rowData.id],
56939
56969
  onSave: function onSave(v) {
56940
56970
  var _onCellChangeRef$curr2;
56941
56971
  var enrichedFields = _defineProperty$g({}, col.field, v);
@@ -56966,6 +56996,7 @@ var Table$1 = function Table(_ref13) {
56966
56996
  newValue: v
56967
56997
  });
56968
56998
  },
56999
+ isRowEditing: !!editingRows[rowData.id],
56969
57000
  renderDisplay: displayFn !== null && displayFn !== void 0 ? displayFn : function (rd) {
56970
57001
  var _rd$col$field;
56971
57002
  return (_rd$col$field = rd[col.field]) !== null && _rd$col$field !== void 0 ? _rd$col$field : '';
@@ -58129,7 +58160,12 @@ var columnsTyped = [
58129
58160
  header: 'Inscription',
58130
58161
  type: 'date',
58131
58162
  editable: true,
58132
- dbDateFormat: 'MMMM/y'
58163
+ dbDateFormat: 'MMMM/y',
58164
+ attributeData: {
58165
+ 'data-value': 'bonjour',
58166
+ 'data-tata': 'hello',
58167
+ 'data-tab': []
58168
+ }
58133
58169
  }, {
58134
58170
  field: 'dateNaissance',
58135
58171
  header: 'Naissance',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arengibook",
3
3
  "private": false,
4
- "version": "3.1.291-main",
4
+ "version": "3.1.312-main",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "exports": {