arengibook 3.3.1-mainv5.7Table-2 → 3.3.1-mainv5.7Table-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.
Files changed (2) hide show
  1. package/dist/index.js +77 -31
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -31,6 +31,7 @@ var MESSAGES = {
31
31
  'arengibook.table.toolbar.rowHeight': 'Hauteur des lignes',
32
32
  'arengibook.table.settings.rowHeightFit': 'Ajuster au contenu',
33
33
  'arengibook.table.settings.resetRowHeights': 'Réinitialiser la hauteur des lignes',
34
+ 'arengibook.table.settings.resetSortFilters': 'Réinitialiser tri et filtres',
34
35
  'arengibook.table.filter.all': 'Tous',
35
36
  'arengibook.table.action.delete': 'Supprimer',
36
37
  'arengibook.table.action.edit': 'Éditer',
@@ -41,8 +42,8 @@ var MESSAGES = {
41
42
  'arengibook.table.cell.documents': 'documents',
42
43
  'arengibook.table.empty': 'Aucun résultat',
43
44
  'arengibook.table.reorder.button': 'Réordonner les lignes',
44
- 'arengibook.table.reorder.disabledSort': 'Réordonnancement indisponible : tri actif sur « %col% ». Retirez le tri pour réordonner.',
45
- 'arengibook.table.reorder.disabledFilter': 'Réordonnancement indisponible : un filtre est actif. Retirez le filtre pour réordonner.',
45
+ 'arengibook.table.reorder.clearSort': 'Retirer le tri sur « %col% » et réordonner',
46
+ 'arengibook.table.reorder.clearFilter': 'Retirer les filtres et réordonner',
46
47
  'arengibook.table.bulk.button': 'Actions groupées',
47
48
  'arengibook.table.column.readOnly': 'Colonne en lecture seule',
48
49
  'arengibook.table.bulk.empty': 'Sélectionnez au moins une ligne',
@@ -74,6 +75,7 @@ var MESSAGES = {
74
75
  'arengibook.table.toolbar.rowHeight': 'Row height',
75
76
  'arengibook.table.settings.rowHeightFit': 'Fit to content',
76
77
  'arengibook.table.settings.resetRowHeights': 'Reset row heights',
78
+ 'arengibook.table.settings.resetSortFilters': 'Reset sorting and filters',
77
79
  'arengibook.table.filter.all': 'All',
78
80
  'arengibook.table.action.delete': 'Delete',
79
81
  'arengibook.table.action.edit': 'Edit',
@@ -84,8 +86,8 @@ var MESSAGES = {
84
86
  'arengibook.table.cell.documents': 'documents',
85
87
  'arengibook.table.empty': 'No results',
86
88
  'arengibook.table.reorder.button': 'Reorder rows',
87
- 'arengibook.table.reorder.disabledSort': 'Reordering unavailable: sorted by "%col%". Remove the sort to reorder.',
88
- 'arengibook.table.reorder.disabledFilter': 'Reordering unavailable: a filter is active. Remove the filter to reorder.',
89
+ 'arengibook.table.reorder.clearSort': 'Clear the sort on "%col%" and reorder',
90
+ 'arengibook.table.reorder.clearFilter': 'Clear the filters and reorder',
89
91
  'arengibook.table.bulk.button': 'Bulk actions',
90
92
  'arengibook.table.column.readOnly': 'Read-only column',
91
93
  'arengibook.table.bulk.empty': 'Select at least one row',
@@ -117,6 +119,7 @@ var MESSAGES = {
117
119
  'arengibook.table.toolbar.rowHeight': 'Altura de filas',
118
120
  'arengibook.table.settings.rowHeightFit': 'Ajustar al contenido',
119
121
  'arengibook.table.settings.resetRowHeights': 'Restablecer la altura de filas',
122
+ 'arengibook.table.settings.resetSortFilters': 'Restablecer orden y filtros',
120
123
  'arengibook.table.filter.all': 'Todos',
121
124
  'arengibook.table.action.delete': 'Eliminar',
122
125
  'arengibook.table.action.edit': 'Editar',
@@ -127,8 +130,8 @@ var MESSAGES = {
127
130
  'arengibook.table.cell.documents': 'documentos',
128
131
  'arengibook.table.empty': 'Sin resultados',
129
132
  'arengibook.table.reorder.button': 'Reordenar las filas',
130
- 'arengibook.table.reorder.disabledSort': 'Reordenamiento no disponible: ordenado por «%col%». Quite el orden para reordenar.',
131
- 'arengibook.table.reorder.disabledFilter': 'Reordenamiento no disponible: hay un filtro activo. Quite el filtro para reordenar.',
133
+ 'arengibook.table.reorder.clearSort': 'Quitar el orden por «%col%» y reordenar',
134
+ 'arengibook.table.reorder.clearFilter': 'Quitar los filtros y reordenar',
132
135
  'arengibook.table.bulk.button': 'Acciones masivas',
133
136
  'arengibook.table.column.readOnly': 'Columna de solo lectura',
134
137
  'arengibook.table.bulk.empty': 'Seleccione al menos una fila',
@@ -160,6 +163,7 @@ var MESSAGES = {
160
163
  'arengibook.table.toolbar.rowHeight': 'Zeilenhöhe',
161
164
  'arengibook.table.settings.rowHeightFit': 'An Inhalt anpassen',
162
165
  'arengibook.table.settings.resetRowHeights': 'Zeilenhöhen zurücksetzen',
166
+ 'arengibook.table.settings.resetSortFilters': 'Sortierung und Filter zurücksetzen',
163
167
  'arengibook.table.filter.all': 'Alle',
164
168
  'arengibook.table.action.delete': 'Löschen',
165
169
  'arengibook.table.action.edit': 'Bearbeiten',
@@ -170,8 +174,8 @@ var MESSAGES = {
170
174
  'arengibook.table.cell.documents': 'Dokumente',
171
175
  'arengibook.table.empty': 'Keine Ergebnisse',
172
176
  'arengibook.table.reorder.button': 'Zeilen neu ordnen',
173
- 'arengibook.table.reorder.disabledSort': 'Neuordnen nicht möglich: sortiert nach „%col%". Sortierung entfernen zum Neuordnen.',
174
- 'arengibook.table.reorder.disabledFilter': 'Neuordnen nicht möglich: ein Filter ist aktiv. Filter entfernen zum Neuordnen.',
177
+ 'arengibook.table.reorder.clearSort': 'Sortierung nach „%col%" entfernen und neu ordnen',
178
+ 'arengibook.table.reorder.clearFilter': 'Filter entfernen und neu ordnen',
175
179
  'arengibook.table.bulk.button': 'Sammelaktionen',
176
180
  'arengibook.table.column.readOnly': 'Schreibgeschützte Spalte',
177
181
  'arengibook.table.bulk.empty': 'Wählen Sie mindestens eine Zeile aus',
@@ -42601,7 +42605,7 @@ var css_248z$5 = "@charset \"UTF-8\";\n@keyframes fadeIn {\n from {\n opacit
42601
42605
  styleInject(css_248z$5);
42602
42606
 
42603
42607
  var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
42604
- var _extends2, _window$Translator, _window$Translator2;
42608
+ var _window$Translator, _window$Translator2;
42605
42609
  var _ref$value = _ref.value,
42606
42610
  value = _ref$value === void 0 ? [] : _ref$value,
42607
42611
  options = _ref.options,
@@ -43957,7 +43961,7 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
43957
43961
  }))))
43958
43962
  }), !displayBadge && {
43959
43963
  selectedItemsLabel: '{0} éléments sélectionnés'
43960
- }, (_extends2 = {
43964
+ }, {
43961
43965
  onShow: function onShow() {
43962
43966
  var _containerRef$current;
43963
43967
  var el = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.parentElement;
@@ -44018,10 +44022,23 @@ var MultiSelectMetaAsync = function MultiSelectMetaAsync(_ref) {
44018
44022
  // la ou tout le reste du composant attend des valeurs
44019
44023
  // (`getAllOptionValues`, les recherches `find`, `includes`).
44020
44024
  ,
44021
- optionValue: optionValue
44022
- }, _defineProperty$e(_defineProperty$e(_defineProperty$e(_defineProperty$e(_defineProperty$e(_defineProperty$e(_defineProperty$e(_defineProperty$e(_defineProperty$e(_defineProperty$e(_extends2, "optionValue", optionValue), "style", style), "loading", false), "maxSelectedLabels", maxSelectedLabels), "emptyMessage", loading ? loadingMessage : emptyMessage), "onChange", handleChange), "itemTemplate", optionTemplate), "selectedItemTemplate", displayBadge ? undefined : selectedItemTemplate), "showClear", effectiveShowClear), "closeIcon", closeIcon), _defineProperty$e(_defineProperty$e(_defineProperty$e(_defineProperty$e(_extends2, "showSelectAll", showSelectAll), "panelStyle", {
44023
- width: containerRef.current ? containerRef.current.offsetWidth + 'px' : undefined
44024
- }), "panelHeaderTemplate", customPanelHeader), "panelFooterTemplate", customPanelFooter)), isGroupedOption && {
44025
+ optionValue: optionValue,
44026
+ style: style,
44027
+ loading: false,
44028
+ maxSelectedLabels: maxSelectedLabels,
44029
+ emptyMessage: loading ? loadingMessage : emptyMessage,
44030
+ onChange: handleChange,
44031
+ itemTemplate: optionTemplate,
44032
+ selectedItemTemplate: displayBadge ? undefined : selectedItemTemplate,
44033
+ showClear: effectiveShowClear,
44034
+ closeIcon: closeIcon,
44035
+ showSelectAll: showSelectAll,
44036
+ panelStyle: {
44037
+ width: containerRef.current ? containerRef.current.offsetWidth + 'px' : undefined
44038
+ },
44039
+ panelHeaderTemplate: customPanelHeader,
44040
+ panelFooterTemplate: customPanelFooter
44041
+ }, isGroupedOption && {
44025
44042
  optionGroupChildren: optionGroupChildren,
44026
44043
  optionGroupLabel: optionGroupLabel
44027
44044
  }, {
@@ -57669,6 +57686,30 @@ var Table$1 = function Table(_ref15) {
57669
57686
  return col ? col.header || activeSort.field : activeSort.field;
57670
57687
  }, [activeSort, columns]);
57671
57688
 
57689
+ // Remise à zéro du tri et des filtres, état persisté compris. Nécessaire parce que
57690
+ // ces deux états survivent dans le navigateur et bloquent le réordonnancement sans
57691
+ // rien afficher : un tri posé une fois reste actif à la visite suivante.
57692
+ // Le remontage (tableKey) est indispensable : le tri de PrimeReact est interne et
57693
+ // n'est relu qu'au montage, via customRestoreState.
57694
+ var clearSortAndFilters = useCallback(function () {
57695
+ try {
57696
+ var s = JSON.parse(localStorage.getItem(DT_STATE_KEY) || '{}');
57697
+ delete s.sortField;
57698
+ delete s.sortOrder;
57699
+ delete s.multiSortMeta;
57700
+ localStorage.setItem(DT_STATE_KEY, JSON.stringify(s));
57701
+ } catch (_unused11) {/* noop */}
57702
+ try {
57703
+ localStorage.removeItem(FILTERS_VALUES_KEY);
57704
+ } catch (_unused12) {/* noop */}
57705
+ setActiveSort(null);
57706
+ setGlobalFilter('');
57707
+ setFilters(initialFilters);
57708
+ setTableKey(function (k) {
57709
+ return k + 1;
57710
+ });
57711
+ }, [DT_STATE_KEY, FILTERS_VALUES_KEY, initialFilters]);
57712
+
57672
57713
  // --- Mode lazy (pagination/tri/filtres/recherche côté serveur) ---
57673
57714
  // En lazy, `value` est LA page courante et `totalRecords` le total serveur.
57674
57715
  // Toute interaction (page, tri, filtre colonne, recherche globale) émet
@@ -57942,7 +57983,7 @@ var Table$1 = function Table(_ref15) {
57942
57983
  return c.field;
57943
57984
  })
57944
57985
  }));
57945
- } catch (_unused11) {/* noop */}
57986
+ } catch (_unused13) {/* noop */}
57946
57987
  setVisibleColumns(applySavedColumnOrder(orderedSelectedColumns));
57947
57988
  // Remontage : PrimeReact repart des largeurs reconstruites pour la nouvelle
57948
57989
  // structure (les largeurs des colonnes masquées sont conservées dans la map).
@@ -58886,7 +58927,7 @@ var Table$1 = function Table(_ref15) {
58886
58927
  delete state.columnWidths;
58887
58928
  delete state.tableWidth;
58888
58929
  localStorage.setItem(DT_STATE_KEY, JSON.stringify(state));
58889
- } catch (_unused12) {
58930
+ } catch (_unused14) {
58890
58931
  return;
58891
58932
  }
58892
58933
  autoWidthsWritten.current = true;
@@ -58960,24 +59001,22 @@ var Table$1 = function Table(_ref15) {
58960
59001
  fontSize: '12px'
58961
59002
  }
58962
59003
  }, addLabel)), typeof onReorderClick === 'function' && function () {
58963
- // Réordonnancement (R57-38.6) : désactivé sous un tri ou un filtre
59004
+ // Réordonnancement (R57-38.6) : incompatible avec un tri ou un filtre
58964
59005
  // (l'ordre affiché ≠ ordre des données → réordonner corromprait les
58965
- // positions). Le tooltip explique pourquoi, en nommant la colonne triée.
59006
+ // positions). Plutôt que de griser le bouton dans une impasse — ces états
59007
+ // sont persistés, donc invisibles et difficiles à lever — le clic les
59008
+ // retire lui-même, et le tooltip l'annonce en nommant la colonne triée.
58966
59009
  var blocked = !!activeSort || hasActiveFilter;
58967
- var tip = blocked ? activeSort ? translate('arengibook.table.reorder.disabledSort', labels).replace('%col%', sortedColumnHeader) : translate('arengibook.table.reorder.disabledFilter', labels) : translate('arengibook.table.reorder.button', labels);
59010
+ var tip = blocked ? activeSort ? translate('arengibook.table.reorder.clearSort', labels).replace('%col%', sortedColumnHeader) : translate('arengibook.table.reorder.clearFilter', labels) : translate('arengibook.table.reorder.button', labels);
58968
59011
  return /*#__PURE__*/React__default.createElement("button", {
58969
59012
  type: "button",
58970
59013
  className: "p-button p-component p-button-outlined p-button-sm",
58971
59014
  onClick: function onClick() {
58972
- if (!blocked) onReorderClick();
59015
+ if (blocked) clearSortAndFilters();
59016
+ onReorderClick();
58973
59017
  },
58974
- disabled: blocked,
58975
59018
  "aria-label": tip,
58976
- title: tip,
58977
- style: blocked ? {
58978
- opacity: 0.5,
58979
- cursor: 'not-allowed'
58980
- } : undefined
59019
+ title: tip
58981
59020
  }, /*#__PURE__*/React__default.createElement("span", {
58982
59021
  className: "material-icons",
58983
59022
  style: {
@@ -59332,7 +59371,7 @@ var Table$1 = function Table(_ref15) {
59332
59371
  var st = JSON.parse(localStorage.getItem(DT_STATE_KEY) || '{}');
59333
59372
  delete st.columnOrderFields;
59334
59373
  localStorage.setItem(DT_STATE_KEY, JSON.stringify(st));
59335
- } catch (_unused13) {/* noop */}
59374
+ } catch (_unused15) {/* noop */}
59336
59375
  var def = columns.filter(function (c) {
59337
59376
  return !c.hidden;
59338
59377
  });
@@ -59355,6 +59394,13 @@ var Table$1 = function Table(_ref15) {
59355
59394
  });
59356
59395
  setSettingsOpen(false);
59357
59396
  }
59397
+ }, {
59398
+ icon: 'clear_all',
59399
+ label: translate('arengibook.table.settings.resetSortFilters', labels),
59400
+ action: function action() {
59401
+ clearSortAndFilters();
59402
+ setSettingsOpen(false);
59403
+ }
59358
59404
  }, {
59359
59405
  icon: 'swap_vert',
59360
59406
  label: translate('arengibook.table.settings.resetRowHeights', labels),
@@ -59363,7 +59409,7 @@ var Table$1 = function Table(_ref15) {
59363
59409
  try {
59364
59410
  localStorage.removeItem(ROW_HEIGHTS_KEY);
59365
59411
  localStorage.removeItem(ROW_PRESET_KEY);
59366
- } catch (_unused14) {/* noop */}
59412
+ } catch (_unused16) {/* noop */}
59367
59413
  setRowPreset(defaultRowHeight === 'fit' || ROW_PRESETS[defaultRowHeight] ? defaultRowHeight : 'small');
59368
59414
  setSettingsOpen(false);
59369
59415
  }
@@ -59446,7 +59492,7 @@ var Table$1 = function Table(_ref15) {
59446
59492
  try {
59447
59493
  localStorage.removeItem(ROW_HEIGHTS_KEY);
59448
59494
  localStorage.setItem(ROW_PRESET_KEY, key);
59449
- } catch (_unused15) {/* noop */}
59495
+ } catch (_unused17) {/* noop */}
59450
59496
  setRowPreset(key);
59451
59497
  setSettingsOpen(false);
59452
59498
  },
@@ -59666,7 +59712,7 @@ var Table$1 = function Table(_ref15) {
59666
59712
  }
59667
59713
  if (Object.keys(previous).length) saved.columnWidthsByField = previous;
59668
59714
  localStorage.setItem(DT_STATE_KEY, JSON.stringify(saved));
59669
- } catch (_unused16) {}
59715
+ } catch (_unused18) {}
59670
59716
  },
59671
59717
  customRestoreState: function customRestoreState() {
59672
59718
  // CRUCIAL : dès que l'objet restauré est non vide, PrimeReact
@@ -59718,7 +59764,7 @@ var Table$1 = function Table(_ref15) {
59718
59764
  restored.tableWidth = "".concat(widths.reduce(function (a, b) {
59719
59765
  return a + b;
59720
59766
  }, 0), "px");
59721
- } catch (_unused17) {/* noop */}
59767
+ } catch (_unused19) {/* noop */}
59722
59768
  return restored;
59723
59769
  },
59724
59770
  scrollable: true,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arengibook",
3
3
  "private": false,
4
- "version": "3.3.1-mainv5.7Table-2",
4
+ "version": "3.3.1-mainv5.7Table-4",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "exports": {