allaw-ui 4.5.6 → 4.5.8
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/atoms/selects/Select.d.ts +1 -0
- package/dist/components/atoms/selects/Select.js +15 -11
- package/dist/components/atoms/selects/Select.module.css +19 -0
- package/dist/components/atoms/selects/Select.stories.d.ts +13 -0
- package/dist/components/atoms/selects/Select.stories.js +29 -0
- package/dist/components/atoms/selects/SelectableListItem.module.css +1 -0
- package/package.json +1 -1
|
@@ -14,21 +14,21 @@ import "../../../styles/global.css";
|
|
|
14
14
|
import TinyInfo from "../typography/TinyInfo";
|
|
15
15
|
function Select(_a, ref) {
|
|
16
16
|
var _b;
|
|
17
|
-
var items = _a.items, selectedItem = _a.selectedItem, _c = _a.placeholder, placeholder = _c === void 0 ? "Choisir..." : _c, _d = _a.multiple, multiple = _d === void 0 ? false : _d, _e = _a.isRequired, isRequired = _e === void 0 ? false : _e, _f = _a.showError, showError = _f === void 0 ? false : _f, _g = _a.width, width = _g === void 0 ? 100 : _g, maxItems = _a.maxItems, _h = _a.requireAttention, requireAttention = _h === void 0 ? false : _h, _j = _a.disabledItems, disabledItems = _j === void 0 ? [] : _j, onChange = _a.onChange, onError = _a.onError;
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
-
var
|
|
17
|
+
var items = _a.items, selectedItem = _a.selectedItem, _c = _a.placeholder, placeholder = _c === void 0 ? "Choisir..." : _c, _d = _a.multiple, multiple = _d === void 0 ? false : _d, _e = _a.isRequired, isRequired = _e === void 0 ? false : _e, _f = _a.showError, showError = _f === void 0 ? false : _f, _g = _a.width, width = _g === void 0 ? 100 : _g, maxItems = _a.maxItems, _h = _a.requireAttention, requireAttention = _h === void 0 ? false : _h, _j = _a.disabledItems, disabledItems = _j === void 0 ? [] : _j, onChange = _a.onChange, onError = _a.onError, _k = _a.maxLines, maxLines = _k === void 0 ? false : _k;
|
|
18
|
+
var _l = useState(false), isOpen = _l[0], setIsOpen = _l[1];
|
|
19
|
+
var _m = useState((multiple ? selectedItem || [] : selectedItem || "")), selected = _m[0], setSelected = _m[1];
|
|
20
|
+
var _o = useState(""), error = _o[0], setError = _o[1];
|
|
21
21
|
var selectRef = useRef(null);
|
|
22
22
|
var listRef = useRef(null);
|
|
23
23
|
var tagContainerRef = useRef(null);
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
var
|
|
24
|
+
var _p = useState([]), visibleTags = _p[0], setVisibleTags = _p[1];
|
|
25
|
+
var _q = useState(0), hiddenCount = _q[0], setHiddenCount = _q[1];
|
|
26
|
+
var _r = useState({
|
|
27
27
|
top: 0,
|
|
28
28
|
left: 0,
|
|
29
29
|
width: 0,
|
|
30
|
-
}), listPosition =
|
|
31
|
-
var
|
|
30
|
+
}), listPosition = _r[0], setListPosition = _r[1];
|
|
31
|
+
var _s = useState("bottom"), placement = _s[0], setPlacement = _s[1];
|
|
32
32
|
useEffect(function () {
|
|
33
33
|
setSelected((multiple ? selectedItem || [] : selectedItem || ""));
|
|
34
34
|
}, [selectedItem, multiple]);
|
|
@@ -215,7 +215,9 @@ function Select(_a, ref) {
|
|
|
215
215
|
var isHighlighted = !multiple && item.value === selectedItem;
|
|
216
216
|
return (React.createElement("div", { key: item.value, "data-value": item.value, className: "".concat(styles.selectItem, " ").concat(isSelected ? styles.selected : "", " ").concat(isHighlighted ? styles.highlighted : "", " ").concat(!multiple ? styles.singleSelect : "", " ").concat(isDisabled ? styles.disabledItem : ""), onClick: function () { return !isDisabled && handleSelect(item); }, "aria-disabled": isDisabled },
|
|
217
217
|
multiple && React.createElement("span", { className: styles.selectItemIcon }),
|
|
218
|
-
React.createElement("span", { className: styles.selectItemText
|
|
218
|
+
React.createElement("span", { className: "".concat(styles.selectItemText, " ").concat(maxLines !== false ? styles.selectItemTextClamp : ""), style: maxLines !== false
|
|
219
|
+
? { WebkitLineClamp: maxLines }
|
|
220
|
+
: undefined }, item.label)));
|
|
219
221
|
}))); };
|
|
220
222
|
var renderTags = function (selectedValues) {
|
|
221
223
|
if (!selectedValues.length)
|
|
@@ -232,7 +234,9 @@ function Select(_a, ref) {
|
|
|
232
234
|
}); });
|
|
233
235
|
return (React.createElement("div", { ref: selectRef, className: "".concat(styles.selectContainer, " ").concat(isOpen ? styles.selectPressed : ""), style: { width: "".concat(width, "%") } },
|
|
234
236
|
React.createElement("button", { type: "button", className: "".concat(styles.select, " ").concat(isOpen ? styles.selectPressed : styles.selectDefault, " ").concat(multiple ? styles.selectMultiple : styles.selectSingle, " ").concat(requireAttention ? styles.selectRequireAttention : ""), onClick: toggleOpen, style: { width: "100%" } },
|
|
235
|
-
React.createElement("span", { className: styles.selectText
|
|
237
|
+
React.createElement("span", { className: "".concat(styles.selectText, " ").concat(maxLines !== false ? styles.selectTextClamp : ""), style: maxLines !== false
|
|
238
|
+
? { WebkitLineClamp: maxLines }
|
|
239
|
+
: undefined }, Array.isArray(selected) && selected.length > 0
|
|
236
240
|
? renderTags(selected)
|
|
237
241
|
: !Array.isArray(selected) && selected
|
|
238
242
|
? (_b = items.find(function (item) { return item.value === selected; })) === null || _b === void 0 ? void 0 : _b.label
|
|
@@ -46,6 +46,16 @@
|
|
|
46
46
|
padding: 2px 0;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
/* Enable multi-line clamping when requested */
|
|
50
|
+
.selectTextClamp {
|
|
51
|
+
white-space: normal;
|
|
52
|
+
display: -webkit-box;
|
|
53
|
+
-webkit-box-orient: vertical;
|
|
54
|
+
overflow: hidden;
|
|
55
|
+
text-overflow: ellipsis;
|
|
56
|
+
word-break: break-word;
|
|
57
|
+
}
|
|
58
|
+
|
|
49
59
|
.selectIcon {
|
|
50
60
|
width: 24px;
|
|
51
61
|
height: 24px;
|
|
@@ -134,6 +144,15 @@
|
|
|
134
144
|
width: 100%;
|
|
135
145
|
}
|
|
136
146
|
|
|
147
|
+
.selectItemTextClamp {
|
|
148
|
+
white-space: normal;
|
|
149
|
+
display: -webkit-box;
|
|
150
|
+
-webkit-box-orient: vertical;
|
|
151
|
+
overflow: hidden;
|
|
152
|
+
text-overflow: ellipsis;
|
|
153
|
+
word-break: break-word;
|
|
154
|
+
}
|
|
155
|
+
|
|
137
156
|
.errorMessage {
|
|
138
157
|
padding-top: 4px;
|
|
139
158
|
padding-left: 14px;
|
|
@@ -76,6 +76,18 @@ declare namespace _default {
|
|
|
76
76
|
}
|
|
77
77
|
export { control_8 as control };
|
|
78
78
|
}
|
|
79
|
+
namespace maxLines {
|
|
80
|
+
export namespace control_9 {
|
|
81
|
+
let type_9: string;
|
|
82
|
+
export { type_9 as type };
|
|
83
|
+
let min_2: number;
|
|
84
|
+
export { min_2 as min };
|
|
85
|
+
let max_1: number;
|
|
86
|
+
export { max_1 as max };
|
|
87
|
+
}
|
|
88
|
+
export { control_9 as control };
|
|
89
|
+
export let description: string;
|
|
90
|
+
}
|
|
79
91
|
}
|
|
80
92
|
export namespace parameters {
|
|
81
93
|
namespace backgrounds {
|
|
@@ -107,6 +119,7 @@ export const Multiple: any;
|
|
|
107
119
|
export const Required: any;
|
|
108
120
|
export const CustomWidth: any;
|
|
109
121
|
export const RequireAttention: any;
|
|
122
|
+
export const TwoLines: any;
|
|
110
123
|
export const WithDisabledItems: any;
|
|
111
124
|
export const MultipleWithDisabledItems: any;
|
|
112
125
|
import Select from "./Select";
|
|
@@ -73,6 +73,14 @@ export default {
|
|
|
73
73
|
max: 100,
|
|
74
74
|
},
|
|
75
75
|
},
|
|
76
|
+
maxLines: {
|
|
77
|
+
control: {
|
|
78
|
+
type: "number",
|
|
79
|
+
min: 1,
|
|
80
|
+
max: 5,
|
|
81
|
+
},
|
|
82
|
+
description: "Nombre de lignes max affichées (laisser vide pour 1 ligne)",
|
|
83
|
+
},
|
|
76
84
|
},
|
|
77
85
|
parameters: {
|
|
78
86
|
backgrounds: {
|
|
@@ -121,6 +129,7 @@ Default.args = {
|
|
|
121
129
|
isRequired: false,
|
|
122
130
|
requireAttention: false,
|
|
123
131
|
width: 100,
|
|
132
|
+
maxLines: undefined,
|
|
124
133
|
};
|
|
125
134
|
export var Pressed = Template.bind({});
|
|
126
135
|
Pressed.args = {
|
|
@@ -190,6 +199,26 @@ RequireAttention.args = {
|
|
|
190
199
|
requireAttention: true,
|
|
191
200
|
width: 100,
|
|
192
201
|
};
|
|
202
|
+
export var TwoLines = Template.bind({});
|
|
203
|
+
TwoLines.args = {
|
|
204
|
+
items: [
|
|
205
|
+
{
|
|
206
|
+
label: "40 Impasse de l’enclume, Saint-Julien-De-Concelles 44450 avec une adresse très longue",
|
|
207
|
+
value: "addr-1",
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
label: "12 Rue de la Paix, Paris 75002",
|
|
211
|
+
value: "addr-2",
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
selectedItem: "addr-1",
|
|
215
|
+
placeholder: "Choisir une localisation",
|
|
216
|
+
multiple: false,
|
|
217
|
+
isRequired: false,
|
|
218
|
+
requireAttention: false,
|
|
219
|
+
width: 100,
|
|
220
|
+
maxLines: 2,
|
|
221
|
+
};
|
|
193
222
|
export var WithDisabledItems = Template.bind({});
|
|
194
223
|
WithDisabledItems.args = {
|
|
195
224
|
items: [
|