mimir-ui-kit 1.38.18 → 1.38.19
Sign up to get free protection for your applications and to get access to all the features.
@@ -1,280 +1,281 @@
|
|
1
|
-
import { jsxs as
|
2
|
-
import { c as
|
3
|
-
import { forwardRef as
|
4
|
-
import { EMultiSelectSearchSize as
|
5
|
-
import { getInitialInputValue as
|
6
|
-
import { Icon as
|
7
|
-
import { Button as
|
8
|
-
import { CheckboxMimir as
|
9
|
-
import { Chip as
|
10
|
-
import { I as
|
11
|
-
import { EInputVariant as
|
12
|
-
import { H as
|
13
|
-
import '../../assets/MultiSelectSearch.css';const
|
1
|
+
import { jsxs as E, jsx as n, Fragment as Q } from "react/jsx-runtime";
|
2
|
+
import { c as r } from "../../index-DIxK0V-G.js";
|
3
|
+
import { forwardRef as Ne, useId as Se, useRef as X, useState as w, useEffect as T, useMemo as Ce, useCallback as Ie } from "react";
|
4
|
+
import { EMultiSelectSearchSize as P } from "./constants.js";
|
5
|
+
import { getInitialInputValue as Y, shouldShowMenuOnTop as Me, MULTISELECT_OPEN_EVENT as Z, mapSizeToInputSize as ee, getDropdownArrowIcon as Ee, dispatchMultiselectOpen as L, joinSelectedItems as te } from "./utils.js";
|
6
|
+
import { Icon as Le } from "../../icons/Icon.js";
|
7
|
+
import { Button as Te } from "../Button/Button.js";
|
8
|
+
import { CheckboxMimir as ke } from "../CheckboxMimir/CheckboxMimir.js";
|
9
|
+
import { Chip as ye } from "../Chip/Chip.js";
|
10
|
+
import { I as oe } from "../../Input-BYrIS5GU.js";
|
11
|
+
import { EInputVariant as ze } from "../Input/constants.js";
|
12
|
+
import { H as Ae, U as ie, G as ne, K as Ve, W as xe } from "../../combobox-CVtJDVoZ.js";
|
13
|
+
import '../../assets/MultiSelectSearch.css';const De = "_disabled_io0c8_5", Pe = "_container_io0c8_9", qe = "_full_io0c8_27", Re = "_button_io0c8_39", Be = "_options_io0c8_53", Fe = "_visible_io0c8_66", je = "_top_io0c8_69", Ge = "_bottom_io0c8_74", Ue = "_m_io0c8_2", We = "_l_io0c8_116", He = "_focused_io0c8_134", Je = "_option_io0c8_53", Ke = "_chip_io0c8_163", $e = "_clear_io0c8_188", t = {
|
14
14
|
"multi-select-search": "_multi-select-search_io0c8_2",
|
15
|
-
disabled:
|
16
|
-
container:
|
15
|
+
disabled: De,
|
16
|
+
container: Pe,
|
17
17
|
"container-open": "_container-open_io0c8_18",
|
18
18
|
"input-container": "_input-container_io0c8_22",
|
19
|
-
full:
|
19
|
+
full: qe,
|
20
20
|
"selected-icon": "_selected-icon_io0c8_31",
|
21
21
|
"selector-icon-open": "_selector-icon-open_io0c8_35",
|
22
|
-
button:
|
22
|
+
button: Re,
|
23
23
|
"selector-icon": "_selector-icon_io0c8_35",
|
24
|
-
options:
|
25
|
-
visible:
|
26
|
-
top:
|
27
|
-
bottom:
|
24
|
+
options: Be,
|
25
|
+
visible: Fe,
|
26
|
+
top: je,
|
27
|
+
bottom: Ge,
|
28
28
|
"no-options": "_no-options_io0c8_95",
|
29
|
-
m:
|
30
|
-
l:
|
29
|
+
m: Ue,
|
30
|
+
l: We,
|
31
31
|
"multi-select-input-disabled": "_multi-select-input-disabled_io0c8_131",
|
32
32
|
"multi-select-input": "_multi-select-input_io0c8_131",
|
33
|
-
focused:
|
34
|
-
option:
|
33
|
+
focused: He,
|
34
|
+
option: Je,
|
35
35
|
"option-active": "_option-active_io0c8_153",
|
36
36
|
"option-inner": "_option-inner_io0c8_156",
|
37
|
-
chip:
|
37
|
+
chip: Ke,
|
38
38
|
"chip-container": "_chip-container_io0c8_168",
|
39
39
|
"chip-root": "_chip-root_io0c8_174",
|
40
40
|
"right-slot": "_right-slot_io0c8_178",
|
41
41
|
"required-mark": "_required-mark_io0c8_183",
|
42
|
-
clear:
|
42
|
+
clear: $e,
|
43
43
|
"icon-button": "_icon-button_io0c8_197"
|
44
|
-
},
|
45
|
-
(
|
44
|
+
}, lt = Ne(
|
45
|
+
(se, ce) => {
|
46
46
|
const {
|
47
|
-
placeholder:
|
48
|
-
size:
|
49
|
-
value:
|
50
|
-
onChange:
|
51
|
-
full:
|
52
|
-
showArrow:
|
53
|
-
items:
|
54
|
-
classNameOption:
|
55
|
-
displayValue:
|
56
|
-
filterOnSearch:
|
57
|
-
onSearch:
|
58
|
-
variant:
|
59
|
-
menuPlacement:
|
60
|
-
disabled:
|
61
|
-
searchProps:
|
62
|
-
withClearButton:
|
63
|
-
withChip:
|
64
|
-
chipVariant:
|
65
|
-
disableInput:
|
66
|
-
autocomplete:
|
67
|
-
id:
|
68
|
-
autoPlacement:
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
47
|
+
placeholder: q,
|
48
|
+
size: s = P.L,
|
49
|
+
value: m,
|
50
|
+
onChange: c,
|
51
|
+
full: le,
|
52
|
+
showArrow: re = !0,
|
53
|
+
items: f = [],
|
54
|
+
classNameOption: ae,
|
55
|
+
displayValue: v = "name",
|
56
|
+
filterOnSearch: R = !0,
|
57
|
+
onSearch: k,
|
58
|
+
variant: B = ze.DefaultGray,
|
59
|
+
menuPlacement: g = "bottom",
|
60
|
+
disabled: a = !1,
|
61
|
+
searchProps: F,
|
62
|
+
withClearButton: y = !1,
|
63
|
+
withChip: ue = !1,
|
64
|
+
chipVariant: de = "sapphire",
|
65
|
+
disableInput: N = !1,
|
66
|
+
autocomplete: j = "on",
|
67
|
+
id: me,
|
68
|
+
autoPlacement: z = !1,
|
69
|
+
onIsOpen: i
|
70
|
+
} = se, pe = Se(), p = me || `multiselect-${pe}`, S = X(null), b = X(null), [_, h] = w(!1), [C, I] = w(
|
71
|
+
() => Y(m, v)
|
72
|
+
), [l, M] = w(
|
73
|
+
m || []
|
74
|
+
), [A, G] = w(g), [V, U] = w(!1), [_e, W] = w(!1);
|
75
|
+
T(() => {
|
76
|
+
m && (M(m), JSON.stringify(m) !== JSON.stringify(l) && I(Y(m, v)));
|
77
|
+
}, [m, v, l]);
|
78
|
+
const H = Ce(() => {
|
78
79
|
var o;
|
79
|
-
if (!
|
80
|
-
const e = ((o =
|
81
|
-
return
|
82
|
-
(
|
80
|
+
if (!R) return f;
|
81
|
+
const e = ((o = C.split(",").pop()) == null ? void 0 : o.trim().toLowerCase()) ?? "";
|
82
|
+
return l.length > 0 && l[l.length - 1].name.toLowerCase() === e ? f : f.filter(
|
83
|
+
(u) => u.name.toLowerCase().includes(e)
|
83
84
|
);
|
84
|
-
}, [
|
85
|
-
|
86
|
-
const o =
|
87
|
-
|
88
|
-
if (
|
89
|
-
|
90
|
-
const
|
91
|
-
|
85
|
+
}, [R, f, C, l]), he = (e) => {
|
86
|
+
M(e), c == null || c(e);
|
87
|
+
const o = te(e, v);
|
88
|
+
I(o), h(!0), i == null || i(!0), L(p), setTimeout(() => {
|
89
|
+
if (b.current) {
|
90
|
+
b.current.focus(), b.current.scrollLeft = b.current.scrollWidth;
|
91
|
+
const u = o.length;
|
92
|
+
b.current.setSelectionRange(u, u);
|
92
93
|
}
|
93
94
|
}, 0);
|
94
|
-
},
|
95
|
-
var
|
96
|
-
if (
|
95
|
+
}, J = (e) => {
|
96
|
+
var O;
|
97
|
+
if (N) return;
|
97
98
|
const o = e.target.value;
|
98
|
-
|
99
|
-
const
|
100
|
-
(
|
99
|
+
I(o), k == null || k(o);
|
100
|
+
const u = o.split(",").map((D) => D.trim()).filter(Boolean), $ = f.filter(
|
101
|
+
(D) => u.includes(D[v])
|
101
102
|
);
|
102
|
-
|
103
|
-
const
|
103
|
+
M($), c == null || c($), h(!0), i == null || i(!0), L(p);
|
104
|
+
const x = (O = S.current) == null ? void 0 : O.querySelector(
|
104
105
|
`.${t.options}`
|
105
106
|
);
|
106
|
-
|
107
|
-
},
|
108
|
-
const o =
|
109
|
-
(
|
107
|
+
x && typeof x.scrollTo == "function" && x.scrollTo({ top: 0, behavior: "smooth" });
|
108
|
+
}, fe = (e) => {
|
109
|
+
const o = l.filter(
|
110
|
+
(u) => u.id !== e.id
|
110
111
|
);
|
111
|
-
|
112
|
-
},
|
113
|
-
if (!
|
114
|
-
|
112
|
+
M(o), c == null || c(o), I(te(o, v));
|
113
|
+
}, d = Ie(() => {
|
114
|
+
if (!z) {
|
115
|
+
G(g);
|
115
116
|
return;
|
116
117
|
}
|
117
|
-
const e =
|
118
|
-
|
119
|
-
}, [
|
120
|
-
const e = !
|
121
|
-
e && (
|
122
|
-
},
|
118
|
+
const e = Me(S, s);
|
119
|
+
G(e ? "top" : g);
|
120
|
+
}, [z, g, s]), K = () => {
|
121
|
+
const e = !_;
|
122
|
+
e && (d(), L(p)), h(e), i == null || i(e);
|
123
|
+
}, ve = (e) => {
|
123
124
|
e.preventDefault(), e.currentTarget.focus();
|
124
125
|
const o = e.currentTarget.value.length;
|
125
126
|
e.currentTarget.setSelectionRange(o, o);
|
126
|
-
},
|
127
|
-
|
128
|
-
}, be = (e) => {
|
129
|
-
e.stopPropagation(), ve();
|
127
|
+
}, be = () => {
|
128
|
+
I(""), M([]), c == null || c([]);
|
130
129
|
}, we = (e) => {
|
131
|
-
|
130
|
+
e.stopPropagation(), be();
|
131
|
+
}, ge = (e) => {
|
132
|
+
if (N) {
|
132
133
|
e.target.blur();
|
133
134
|
return;
|
134
135
|
}
|
135
|
-
|
136
|
+
d(), h(!0), i == null || i(!0), L(p);
|
136
137
|
};
|
137
|
-
return
|
138
|
+
return T(() => {
|
138
139
|
const e = (o) => {
|
139
|
-
|
140
|
+
S.current && !S.current.contains(o.target) && !o.defaultPrevented && (h(!1), i == null || i(!1));
|
140
141
|
};
|
141
142
|
return document.addEventListener("mousedown", e), () => {
|
142
143
|
document.removeEventListener("mousedown", e);
|
143
144
|
};
|
144
|
-
}, []),
|
145
|
+
}, []), T(() => {
|
145
146
|
const e = (o) => {
|
146
|
-
o.detail !== p &&
|
147
|
+
o.detail !== p && (h(!1), i == null || i(!1));
|
147
148
|
};
|
148
149
|
return window.addEventListener(
|
149
|
-
|
150
|
+
Z,
|
150
151
|
e
|
151
152
|
), () => {
|
152
153
|
window.removeEventListener(
|
153
|
-
|
154
|
+
Z,
|
154
155
|
e
|
155
156
|
);
|
156
157
|
};
|
157
|
-
}, [p]),
|
158
|
-
if (
|
159
|
-
|
158
|
+
}, [p]), T(() => {
|
159
|
+
if (_) {
|
160
|
+
d(), window.addEventListener("scroll", d), window.addEventListener("resize", d);
|
160
161
|
const e = requestAnimationFrame(() => {
|
161
|
-
|
162
|
+
W(!0), U(!0);
|
162
163
|
});
|
163
164
|
return () => {
|
164
|
-
window.removeEventListener("scroll",
|
165
|
+
window.removeEventListener("scroll", d), window.removeEventListener("resize", d), cancelAnimationFrame(e);
|
165
166
|
};
|
166
167
|
} else
|
167
|
-
|
168
|
-
}, [
|
168
|
+
U(!1), W(!1);
|
169
|
+
}, [_, g, z, s, d]), /* @__PURE__ */ E("div", { ref: S, children: [
|
169
170
|
/* @__PURE__ */ n(
|
170
|
-
|
171
|
+
Ae,
|
171
172
|
{
|
172
173
|
multiple: !0,
|
173
174
|
as: "div",
|
174
|
-
value:
|
175
|
-
className:
|
176
|
-
[t.full]:
|
177
|
-
[t.disabled]:
|
175
|
+
value: l,
|
176
|
+
className: r(t["multi-select-search"], {
|
177
|
+
[t.full]: le,
|
178
|
+
[t.disabled]: a
|
178
179
|
}),
|
179
|
-
onChange:
|
180
|
-
ref:
|
181
|
-
disabled:
|
182
|
-
virtual: { options:
|
183
|
-
children: /* @__PURE__ */
|
180
|
+
onChange: he,
|
181
|
+
ref: ce,
|
182
|
+
disabled: a,
|
183
|
+
virtual: { options: H },
|
184
|
+
children: /* @__PURE__ */ E(
|
184
185
|
"div",
|
185
186
|
{
|
186
|
-
className:
|
187
|
-
[t["container-open"]]:
|
187
|
+
className: r(t.container, t[s], {
|
188
|
+
[t["container-open"]]: _
|
188
189
|
}),
|
189
190
|
children: [
|
190
|
-
|
191
|
+
N && /* @__PURE__ */ E("div", { className: t["input-container"], children: [
|
191
192
|
/* @__PURE__ */ n(
|
192
|
-
|
193
|
+
ie,
|
193
194
|
{
|
194
|
-
disabled:
|
195
|
+
disabled: a,
|
195
196
|
style: { width: "100%" },
|
196
|
-
onClick:
|
197
|
+
onClick: K,
|
197
198
|
children: /* @__PURE__ */ n(
|
198
199
|
ne,
|
199
200
|
{
|
200
|
-
as:
|
201
|
-
label:
|
202
|
-
size:
|
203
|
-
className:
|
204
|
-
[t["multi-select-input-disabled"]]:
|
201
|
+
as: oe,
|
202
|
+
label: q,
|
203
|
+
size: ee(s),
|
204
|
+
className: r(t["multi-select-input"], {
|
205
|
+
[t["multi-select-input-disabled"]]: N && y
|
205
206
|
}),
|
206
|
-
onChange:
|
207
|
-
value:
|
208
|
-
disabled:
|
209
|
-
variant:
|
207
|
+
onChange: J,
|
208
|
+
value: C,
|
209
|
+
disabled: a,
|
210
|
+
variant: B,
|
210
211
|
rightSlotClassName: t["right-slot"],
|
211
212
|
requiredMarkClassName: t["required-mark"],
|
212
213
|
"data-testid": "select-search-input",
|
213
|
-
onFocus:
|
214
|
+
onFocus: ge,
|
214
215
|
rightAddon: {
|
215
216
|
addonType: "icon",
|
216
|
-
addonContent:
|
217
|
+
addonContent: Ee(_, s)
|
217
218
|
},
|
218
|
-
autocomplete:
|
219
|
-
...
|
219
|
+
autocomplete: j,
|
220
|
+
...F
|
220
221
|
}
|
221
222
|
)
|
222
223
|
}
|
223
224
|
),
|
224
|
-
|
225
|
-
|
225
|
+
y && C && /* @__PURE__ */ n(
|
226
|
+
Te,
|
226
227
|
{
|
227
228
|
tabIndex: -1,
|
228
|
-
className:
|
229
|
-
[t.disabled]:
|
229
|
+
className: r(t.clear, {
|
230
|
+
[t.disabled]: a
|
230
231
|
}),
|
231
232
|
iconButtonClassName: t["icon-button"],
|
232
233
|
isIconButton: !0,
|
233
234
|
iconName: "Close16px",
|
234
235
|
size: "m-s",
|
235
236
|
clear: !0,
|
236
|
-
disabled:
|
237
|
+
disabled: a,
|
237
238
|
variant: "secondary-gray",
|
238
|
-
onClick:
|
239
|
+
onClick: we,
|
239
240
|
"data-testid": "clear-button"
|
240
241
|
}
|
241
242
|
)
|
242
243
|
] }),
|
243
|
-
!
|
244
|
+
!N && /* @__PURE__ */ n(
|
244
245
|
ne,
|
245
246
|
{
|
246
|
-
as:
|
247
|
-
label:
|
248
|
-
size:
|
247
|
+
as: oe,
|
248
|
+
label: q,
|
249
|
+
size: ee(s),
|
249
250
|
className: t["multi-select-input"],
|
250
251
|
rightSlotClassName: t["right-slot"],
|
251
252
|
requiredMarkClassName: t["required-mark"],
|
252
|
-
value:
|
253
|
-
disabled:
|
254
|
-
variant:
|
255
|
-
withClearButton:
|
253
|
+
value: C,
|
254
|
+
disabled: a,
|
255
|
+
variant: B,
|
256
|
+
withClearButton: y,
|
256
257
|
onFocus: () => {
|
257
|
-
|
258
|
+
h(!0), i == null || i(!0), L(p);
|
258
259
|
},
|
259
|
-
onMouseDown:
|
260
|
-
onChange:
|
261
|
-
ref:
|
260
|
+
onMouseDown: ve,
|
261
|
+
onChange: J,
|
262
|
+
ref: b,
|
262
263
|
rightAddon: {
|
263
264
|
addonType: "react-node",
|
264
|
-
addonContent:
|
265
|
-
|
265
|
+
addonContent: re && /* @__PURE__ */ n(
|
266
|
+
ie,
|
266
267
|
{
|
267
|
-
className:
|
268
|
-
[t.disabled]:
|
268
|
+
className: r(t.button, {
|
269
|
+
[t.disabled]: a
|
269
270
|
}),
|
270
|
-
disabled:
|
271
|
-
onMouseDown:
|
271
|
+
disabled: a,
|
272
|
+
onMouseDown: K,
|
272
273
|
children: /* @__PURE__ */ n(
|
273
|
-
|
274
|
+
Le,
|
274
275
|
{
|
275
|
-
iconName:
|
276
|
-
className:
|
277
|
-
[t["selector-icon-open"]]:
|
276
|
+
iconName: s == P.M ? "DropdownArrowBottom16px" : "DropdownArrowDown24px",
|
277
|
+
className: r(t["selector-icon"], {
|
278
|
+
[t["selector-icon-open"]]: _
|
278
279
|
})
|
279
280
|
}
|
280
281
|
)
|
@@ -282,43 +283,43 @@ import '../../assets/MultiSelectSearch.css';const Ve = "_disabled_io0c8_5", xe =
|
|
282
283
|
)
|
283
284
|
},
|
284
285
|
"data-testid": "select-search-input",
|
285
|
-
autocomplete:
|
286
|
-
...
|
286
|
+
autocomplete: j,
|
287
|
+
...F
|
287
288
|
}
|
288
289
|
),
|
289
|
-
|
290
|
-
|
290
|
+
_ && _e && /* @__PURE__ */ n(Q, { children: f.length ? H.length ? /* @__PURE__ */ n(
|
291
|
+
Ve,
|
291
292
|
{
|
292
|
-
className:
|
293
|
+
className: r(
|
293
294
|
t.options,
|
294
|
-
t[
|
295
|
-
t[
|
296
|
-
{ [t.visible]:
|
295
|
+
t[s],
|
296
|
+
t[A],
|
297
|
+
{ [t.visible]: V }
|
297
298
|
),
|
298
299
|
modal: !1,
|
299
300
|
static: !0,
|
300
301
|
children: ({ option: e }) => /* @__PURE__ */ n(
|
301
|
-
|
302
|
+
xe,
|
302
303
|
{
|
303
304
|
value: e,
|
304
|
-
className: ({ focus: o }) =>
|
305
|
+
className: ({ focus: o }) => r(
|
305
306
|
t.option,
|
306
|
-
|
307
|
-
|
307
|
+
ae,
|
308
|
+
s && t[s],
|
308
309
|
{
|
309
310
|
[t["option-active"]]: o
|
310
311
|
}
|
311
312
|
),
|
312
|
-
children: /* @__PURE__ */
|
313
|
-
/* @__PURE__ */
|
313
|
+
children: /* @__PURE__ */ E(Q, { children: [
|
314
|
+
/* @__PURE__ */ E("div", { className: t["option-inner"], children: [
|
314
315
|
e.name,
|
315
316
|
e.bottom && /* @__PURE__ */ n("div", { children: e.bottom })
|
316
317
|
] }),
|
317
318
|
/* @__PURE__ */ n(
|
318
|
-
|
319
|
+
ke,
|
319
320
|
{
|
320
321
|
isInteractive: !1,
|
321
|
-
checked:
|
322
|
+
checked: l.some(
|
322
323
|
(o) => o.id === e.id
|
323
324
|
)
|
324
325
|
}
|
@@ -331,24 +332,24 @@ import '../../assets/MultiSelectSearch.css';const Ve = "_disabled_io0c8_5", xe =
|
|
331
332
|
) : /* @__PURE__ */ n(
|
332
333
|
"div",
|
333
334
|
{
|
334
|
-
className:
|
335
|
+
className: r(
|
335
336
|
t.options,
|
336
|
-
t[
|
337
|
+
t[s],
|
337
338
|
t["no-options"],
|
338
|
-
t[
|
339
|
-
{ [t.visible]:
|
339
|
+
t[A],
|
340
|
+
{ [t.visible]: V }
|
340
341
|
),
|
341
342
|
children: "Ничего не найдено"
|
342
343
|
}
|
343
344
|
) : /* @__PURE__ */ n(
|
344
345
|
"div",
|
345
346
|
{
|
346
|
-
className:
|
347
|
+
className: r(
|
347
348
|
t.options,
|
348
|
-
t[
|
349
|
+
t[s],
|
349
350
|
t["no-options"],
|
350
|
-
t[
|
351
|
-
{ [t.visible]:
|
351
|
+
t[A],
|
352
|
+
{ [t.visible]: V }
|
352
353
|
),
|
353
354
|
children: "Нет данных"
|
354
355
|
}
|
@@ -358,14 +359,14 @@ import '../../assets/MultiSelectSearch.css';const Ve = "_disabled_io0c8_5", xe =
|
|
358
359
|
)
|
359
360
|
}
|
360
361
|
),
|
361
|
-
|
362
|
-
|
362
|
+
ue && l.length > 0 && /* @__PURE__ */ n("div", { className: t["chip-container"], children: l.map((e) => /* @__PURE__ */ n(
|
363
|
+
ye,
|
363
364
|
{
|
364
|
-
size:
|
365
|
-
variant:
|
365
|
+
size: s === P.L ? "s" : "xs",
|
366
|
+
variant: de,
|
366
367
|
className: t["chip-root"],
|
367
368
|
withAction: !0,
|
368
|
-
onClose: () =>
|
369
|
+
onClose: () => fe(e),
|
369
370
|
children: /* @__PURE__ */ n("span", { className: t.chip, children: e.name })
|
370
371
|
},
|
371
372
|
e.id
|
@@ -374,5 +375,5 @@ import '../../assets/MultiSelectSearch.css';const Ve = "_disabled_io0c8_5", xe =
|
|
374
375
|
}
|
375
376
|
);
|
376
377
|
export {
|
377
|
-
|
378
|
+
lt as MultiSelectSearch
|
378
379
|
};
|
@@ -67,4 +67,6 @@ export type TMultiSelectSearchProps = Pick<TInputProps, 'withClearButton' | 'var
|
|
67
67
|
* Автоматическое определение положения выпадающего меню
|
68
68
|
*/
|
69
69
|
autoPlacement?: boolean;
|
70
|
+
/** Функция обратного вызова, срабатывающая при открытии и закрытии выпадающего списка */
|
71
|
+
onIsOpen?: (value: boolean) => void;
|
70
72
|
};
|