allaw-ui 5.4.4 → 5.4.6
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/dist/components/molecules/breadcrumb/Breadcrumb.d.ts +1 -1
- package/dist/components/molecules/breadcrumb/Breadcrumb.js +3 -2
- package/dist/components/molecules/proSwitch/ProSwitchModal.js +46 -2
- package/dist/components/molecules/proSwitch/proSwitchModal.module.css +34 -0
- package/package.json +1 -1
|
@@ -6,7 +6,8 @@ var Breadcrumb = function (_a) {
|
|
|
6
6
|
return (React.createElement("nav", { className: "breadcrumb" }, items.map(function (item, index) { return (React.createElement(React.Fragment, { key: item.key },
|
|
7
7
|
index > 0 && (React.createElement("span", { className: "breadcrumb-separator" },
|
|
8
8
|
React.createElement("i", { className: "allaw-icon-chevron-right" }))),
|
|
9
|
-
React.createElement("a", { href: item.link, className: "breadcrumb-link" },
|
|
10
|
-
React.createElement(TinyInfo, { variant: "medium14", color: index === items.length - 1 ? "dark-grey" : "mid-grey", text: item.label, align: "left" })))
|
|
9
|
+
item.link ? (React.createElement("a", { href: item.link, className: "breadcrumb-link" },
|
|
10
|
+
React.createElement(TinyInfo, { variant: "medium14", color: index === items.length - 1 ? "dark-grey" : "mid-grey", text: item.label, align: "left" }))) : (React.createElement("span", { className: "breadcrumb-link" },
|
|
11
|
+
React.createElement(TinyInfo, { variant: "medium14", color: index === items.length - 1 ? "dark-grey" : "mid-grey", text: item.label, align: "left" }))))); })));
|
|
11
12
|
};
|
|
12
13
|
export default Breadcrumb;
|
|
@@ -200,6 +200,42 @@ var ProSwitchModal = function (_a) {
|
|
|
200
200
|
var selectedPros = pros.filter(function (p) { return newSelected.includes(p.proUserId); });
|
|
201
201
|
onSelect(selectedPros);
|
|
202
202
|
};
|
|
203
|
+
// Sélectionner tous les pros filtrés
|
|
204
|
+
var handleSelectAll = function () {
|
|
205
|
+
if (!onSelect || mode !== "multiple")
|
|
206
|
+
return;
|
|
207
|
+
var allFilteredIds = sortedAndFilteredPros.map(function (p) { return p.proUserId; });
|
|
208
|
+
var allFilteredPros = pros.filter(function (p) {
|
|
209
|
+
return allFilteredIds.includes(p.proUserId);
|
|
210
|
+
});
|
|
211
|
+
onSelect(allFilteredPros);
|
|
212
|
+
};
|
|
213
|
+
// Désélectionner tous les pros filtrés (en gardant au moins un sélectionné)
|
|
214
|
+
var handleDeselectAll = function () {
|
|
215
|
+
if (!onSelect || mode !== "multiple")
|
|
216
|
+
return;
|
|
217
|
+
var allFilteredIds = sortedAndFilteredPros.map(function (p) { return p.proUserId; });
|
|
218
|
+
// Désélectionner tous les pros filtrés, mais garder au moins un pro sélectionné au total
|
|
219
|
+
var remainingSelected = selected.filter(function (id) { return !allFilteredIds.includes(id); });
|
|
220
|
+
if (remainingSelected.length === 0 && pros.length > 0) {
|
|
221
|
+
// Si on désélectionne tout, garder le premier pro de la liste complète (pas filtré)
|
|
222
|
+
var firstPro = pros[0];
|
|
223
|
+
if (firstPro) {
|
|
224
|
+
onSelect([firstPro]);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
else if (remainingSelected.length > 0) {
|
|
228
|
+
// Garder les pros non filtrés qui étaient sélectionnés
|
|
229
|
+
var remainingPros = pros.filter(function (p) {
|
|
230
|
+
return remainingSelected.includes(p.proUserId);
|
|
231
|
+
});
|
|
232
|
+
onSelect(remainingPros);
|
|
233
|
+
}
|
|
234
|
+
};
|
|
235
|
+
// Vérifier si tous les pros filtrés sont sélectionnés
|
|
236
|
+
var allFilteredSelected = mode === "multiple" &&
|
|
237
|
+
sortedAndFilteredPros.length > 0 &&
|
|
238
|
+
sortedAndFilteredPros.every(function (p) { return selected.includes(p.proUserId); });
|
|
203
239
|
// Validation en mode multiple
|
|
204
240
|
var handleValidateSelection = function () {
|
|
205
241
|
onClosePortal();
|
|
@@ -237,8 +273,16 @@ var ProSwitchModal = function (_a) {
|
|
|
237
273
|
React.createElement("div", { className: styles.headerReorderLabel }, reorderLabel && (React.createElement(Paragraph, { variant: "medium", color: "mid-grey", text: reorderLabel }))),
|
|
238
274
|
React.createElement("div", { className: styles.headerReorderActions },
|
|
239
275
|
React.createElement("button", { className: styles.cancelBtn, onClick: handleCancel, type: "button" }, "Annuler"),
|
|
240
|
-
React.createElement("button", { className: styles.validateBtn, onClick: handleValidate, type: "button" }, "Valider")))) : (React.createElement(
|
|
241
|
-
React.createElement(
|
|
276
|
+
React.createElement("button", { className: styles.validateBtn, onClick: handleValidate, type: "button" }, "Valider")))) : (React.createElement(React.Fragment, null,
|
|
277
|
+
React.createElement("div", { className: styles.searchContainer },
|
|
278
|
+
React.createElement(SearchBar, { value: search, onChange: setSearch, placeholder: "Rechercher...", showClear: true, endIcon: "allaw-icon-search" })),
|
|
279
|
+
mode === "multiple" && (React.createElement("button", { className: styles.selectAllBtn, onClick: allFilteredSelected ? handleDeselectAll : handleSelectAll, type: "button", "aria-label": allFilteredSelected
|
|
280
|
+
? "Tout désélectionner"
|
|
281
|
+
: "Tout sélectionner" }, allFilteredSelected ? "Tout désélectionner" : "Tout sélectionner"))))) : (React.createElement(React.Fragment, null,
|
|
282
|
+
React.createElement("div", { style: { flex: 1 } }),
|
|
283
|
+
mode === "multiple" && !isReorder && (React.createElement("button", { className: styles.selectAllBtn, onClick: allFilteredSelected ? handleDeselectAll : handleSelectAll, type: "button", "aria-label": allFilteredSelected
|
|
284
|
+
? "Tout désélectionner"
|
|
285
|
+
: "Tout sélectionner" }, allFilteredSelected ? "Tout désélectionner" : "Tout sélectionner")))),
|
|
242
286
|
pros.length > 4 && (React.createElement("div", { className: styles.buttonContainer, style: { justifyContent: "flex-start" } },
|
|
243
287
|
React.createElement("div", { className: styles.reorderContainer },
|
|
244
288
|
React.createElement("button", { className: styles.reorderBtn, onClick: function () { return setIsReorder(function (v) { return !v; }); }, "aria-label": isReorder
|
|
@@ -75,6 +75,27 @@
|
|
|
75
75
|
transition: background 0.15s;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
.selectAllBtn {
|
|
79
|
+
padding: 8px 16px;
|
|
80
|
+
border-radius: 8px;
|
|
81
|
+
font-size: 14px;
|
|
82
|
+
font-family: var(--font-open-sans, "Open Sans");
|
|
83
|
+
font-weight: 600;
|
|
84
|
+
color: var(--bleu-allaw, #25beeb);
|
|
85
|
+
background: transparent;
|
|
86
|
+
border: 1px solid var(--bleu-allaw, #25beeb);
|
|
87
|
+
cursor: pointer;
|
|
88
|
+
transition: all 0.15s;
|
|
89
|
+
white-space: nowrap;
|
|
90
|
+
margin-left: 12px;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.selectAllBtn:hover {
|
|
94
|
+
background: #f6fcfe;
|
|
95
|
+
color: #1ca6d6;
|
|
96
|
+
border-color: #1ca6d6;
|
|
97
|
+
}
|
|
98
|
+
|
|
78
99
|
.reorderBtn {
|
|
79
100
|
margin-right: 8px;
|
|
80
101
|
}
|
|
@@ -288,6 +309,19 @@
|
|
|
288
309
|
.grid {
|
|
289
310
|
gap: 16px 8px;
|
|
290
311
|
}
|
|
312
|
+
.selectAllBtn {
|
|
313
|
+
font-size: 13px;
|
|
314
|
+
padding: 6px 12px;
|
|
315
|
+
margin-left: 8px;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
@media (max-width: 480px) {
|
|
320
|
+
.selectAllBtn {
|
|
321
|
+
font-size: 12px;
|
|
322
|
+
padding: 6px 10px;
|
|
323
|
+
margin-left: 6px;
|
|
324
|
+
}
|
|
291
325
|
}
|
|
292
326
|
|
|
293
327
|
.selectionFooter {
|