inconel 0.1.12 → 0.1.13
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/cjs/components/Button/Button.cjs +1 -1
- package/dist/cjs/components/Button/Button.cjs.map +1 -1
- package/dist/cjs/components/DropDownBox/DropDownBox.cjs +2 -0
- package/dist/cjs/components/DropDownBox/DropDownBox.cjs.map +1 -0
- package/dist/cjs/components/Select/Select.cjs +1 -1
- package/dist/cjs/components/Select/Select.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/styles.css +1 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/Button.js +32 -31
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/DropDownBox/DropDownBox.d.ts +40 -0
- package/dist/components/DropDownBox/DropDownBox.d.ts.map +1 -0
- package/dist/components/DropDownBox/DropDownBox.js +157 -0
- package/dist/components/DropDownBox/DropDownBox.js.map +1 -0
- package/dist/components/DropDownBox/index.d.ts +3 -0
- package/dist/components/DropDownBox/index.d.ts.map +1 -0
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +87 -87
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/shared/types.d.ts +1 -1
- package/dist/components/shared/types.d.ts.map +1 -1
- package/dist/index.js +62 -60
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { forwardRef as vt, useId as kt, useRef as te, useState as S, useEffect as
|
|
1
|
+
import { jsxs as B, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as vt, useId as kt, useRef as te, useState as S, useEffect as D, useCallback as x, useMemo as xe, useImperativeHandle as wt } from "react";
|
|
3
3
|
import { useFloating as St, autoUpdate as xt, offset as It, flip as Lt, shift as At, size as Et } from "@floating-ui/react";
|
|
4
4
|
import { useVirtualizer as zt } from "@tanstack/react-virtual";
|
|
5
5
|
import { createPortal as Bt } from "react-dom";
|
|
@@ -13,24 +13,24 @@ import { useInconelAdapters as Ot } from "../../adapters/context.js";
|
|
|
13
13
|
function Vt({
|
|
14
14
|
id: Ie,
|
|
15
15
|
name: ne,
|
|
16
|
-
label:
|
|
16
|
+
label: I,
|
|
17
17
|
options: M = [],
|
|
18
18
|
value: Le,
|
|
19
|
-
onChange:
|
|
20
|
-
optionLabel:
|
|
21
|
-
optionValue:
|
|
19
|
+
onChange: O,
|
|
20
|
+
optionLabel: V = "label",
|
|
21
|
+
optionValue: C = "value",
|
|
22
22
|
getOptionSearchText: U,
|
|
23
|
-
isOptionDisabled:
|
|
23
|
+
isOptionDisabled: F = () => !1,
|
|
24
24
|
placeholder: Ae,
|
|
25
25
|
isClearable: le = !1,
|
|
26
26
|
isDisabled: Ee = !1,
|
|
27
27
|
isReadOnly: ze = !1,
|
|
28
28
|
isRequired: oe = !1,
|
|
29
29
|
isLoading: Be = !1,
|
|
30
|
-
loadOptions:
|
|
30
|
+
loadOptions: h,
|
|
31
31
|
loadOptionsDebounceMs: re = 250,
|
|
32
32
|
hint: ie,
|
|
33
|
-
errorMessage:
|
|
33
|
+
errorMessage: y,
|
|
34
34
|
asyncErrorMessage: De,
|
|
35
35
|
loadingMessage: Oe,
|
|
36
36
|
noOptionsMessage: Ve,
|
|
@@ -38,14 +38,14 @@ function Vt({
|
|
|
38
38
|
openMenuButtonLabel: Fe,
|
|
39
39
|
closeMenuButtonLabel: Ne,
|
|
40
40
|
searchLocale: $,
|
|
41
|
-
menuPortalTarget:
|
|
41
|
+
menuPortalTarget: N,
|
|
42
42
|
virtualize: je = !1,
|
|
43
43
|
virtualizationThreshold: Re = 100,
|
|
44
44
|
optionHeight: qe = 44,
|
|
45
45
|
className: He,
|
|
46
46
|
classNames: i = {},
|
|
47
47
|
styles: s = {},
|
|
48
|
-
onInputChange:
|
|
48
|
+
onInputChange: L,
|
|
49
49
|
onMenuOpen: Me,
|
|
50
50
|
onMenuClose: se,
|
|
51
51
|
autoFocus: Ue,
|
|
@@ -65,30 +65,30 @@ function Vt({
|
|
|
65
65
|
size: ce = "md",
|
|
66
66
|
required: Pe
|
|
67
67
|
}, et) {
|
|
68
|
-
const f = Ot(), de = Qe !== void 0 || ae !== void 0 || T !== void 0,
|
|
69
|
-
|
|
70
|
-
if (!
|
|
68
|
+
const f = Ot(), de = Qe !== void 0 || ae !== void 0 || T !== void 0, j = Le ?? Ge ?? Ke ?? null, tt = kt(), d = Ie ?? `inconel-select-${tt.replace(/:/g, "")}`, ue = `${d}-label`, fe = `${d}-listbox`, me = `${d}-message`, pe = `${d}-hint`, ge = te(null), A = te(null), Y = te(null), [n, he] = S(!1), [m, K] = S(""), [a, u] = S(0), [nt, lt] = S(null), [ot, ye] = S(!1), [rt, be] = S(!1);
|
|
69
|
+
D(() => {
|
|
70
|
+
if (!h) return;
|
|
71
71
|
const e = new AbortController(), t = window.setTimeout(async () => {
|
|
72
|
-
|
|
72
|
+
ye(!0), be(!1);
|
|
73
73
|
try {
|
|
74
|
-
const r = await
|
|
74
|
+
const r = await h(
|
|
75
75
|
m,
|
|
76
76
|
e.signal
|
|
77
77
|
);
|
|
78
78
|
e.signal.aborted || lt(r);
|
|
79
79
|
} catch {
|
|
80
|
-
e.signal.aborted ||
|
|
80
|
+
e.signal.aborted || be(!0);
|
|
81
81
|
} finally {
|
|
82
|
-
e.signal.aborted ||
|
|
82
|
+
e.signal.aborted || ye(!1);
|
|
83
83
|
}
|
|
84
84
|
}, re);
|
|
85
85
|
return () => {
|
|
86
86
|
window.clearTimeout(t), e.abort();
|
|
87
87
|
};
|
|
88
|
-
}, [m,
|
|
89
|
-
const
|
|
90
|
-
(e) => typeof
|
|
91
|
-
[
|
|
88
|
+
}, [m, h, re]);
|
|
89
|
+
const b = h ? nt ?? M : M, W = Be || ot, p = Ee || !!$e, E = ze || !!Ye, G = oe || !!Pe, it = (T === "in" && y ? String(y) : Ae) ?? String(f.translate?.("select", "Seçim yapın...") ?? "Seçim yapın..."), st = Ve ?? f.translate?.("noData", "Sonuç bulunamadı.") ?? "Sonuç bulunamadı.", at = Oe ?? f.translate?.("loading", "Yükleniyor...") ?? "Yükleniyor...", ct = Ce ?? String(f.translate?.("clearSelection", "Seçimi temizle") ?? "Seçimi temizle"), dt = Fe ?? String(f.translate?.("openOptions", "Seçenekleri aç") ?? "Seçenekleri aç"), ut = Ne ?? String(f.translate?.("closeOptions", "Seçenekleri kapat") ?? "Seçenekleri kapat"), J = x(
|
|
90
|
+
(e) => typeof V == "function" ? V(e) : String(e[V]),
|
|
91
|
+
[V]
|
|
92
92
|
), Q = x(
|
|
93
93
|
(e) => {
|
|
94
94
|
if (U) return U(e);
|
|
@@ -98,38 +98,38 @@ function Vt({
|
|
|
98
98
|
[J, U]
|
|
99
99
|
), v = x(
|
|
100
100
|
(e) => {
|
|
101
|
-
const t = typeof
|
|
101
|
+
const t = typeof C == "function" ? C(e) : e[C];
|
|
102
102
|
if (typeof t != "string" && typeof t != "number")
|
|
103
103
|
throw new TypeError("optionValue must resolve to a string or number.");
|
|
104
104
|
return t;
|
|
105
105
|
},
|
|
106
|
-
[
|
|
107
|
-
), g =
|
|
106
|
+
[C]
|
|
107
|
+
), g = j && typeof j == "object" ? v(j) : j, X = x(
|
|
108
108
|
(e, t) => {
|
|
109
|
-
|
|
109
|
+
O && (de ? O(t) : O(e, t));
|
|
110
110
|
},
|
|
111
|
-
[de,
|
|
111
|
+
[de, O]
|
|
112
112
|
), Z = xe(() => {
|
|
113
113
|
const e = /* @__PURE__ */ new Set();
|
|
114
|
-
return
|
|
115
|
-
}, [
|
|
116
|
-
|
|
114
|
+
return b.map(v).filter((t) => e.has(t) ? !0 : (e.add(t), !1));
|
|
115
|
+
}, [b, v]);
|
|
116
|
+
D(() => {
|
|
117
117
|
Z.length && console.warn(
|
|
118
|
-
`Duplicate optionValue found in Select "${
|
|
118
|
+
`Duplicate optionValue found in Select "${I}":`,
|
|
119
119
|
Z
|
|
120
120
|
);
|
|
121
|
-
}, [Z,
|
|
122
|
-
const _ = [...M, ...
|
|
121
|
+
}, [Z, I]);
|
|
122
|
+
const _ = [...M, ...b].find(
|
|
123
123
|
(e) => v(e) === g
|
|
124
124
|
), ft = _ ? Q(_) : "", l = xe(() => {
|
|
125
125
|
const e = m.trim().toLocaleLowerCase($);
|
|
126
|
-
return !e ||
|
|
126
|
+
return !e || h ? b : b.filter(
|
|
127
127
|
(t) => Q(t).toLocaleLowerCase($).includes(e)
|
|
128
128
|
);
|
|
129
|
-
}, [
|
|
129
|
+
}, [b, Q, m, h, $]), { refs: ve, floatingStyles: mt } = St({
|
|
130
130
|
open: n,
|
|
131
131
|
placement: "bottom-start",
|
|
132
|
-
strategy:
|
|
132
|
+
strategy: N ? "fixed" : "absolute",
|
|
133
133
|
whileElementsMounted: xt,
|
|
134
134
|
middleware: [
|
|
135
135
|
It(8),
|
|
@@ -145,63 +145,63 @@ function Vt({
|
|
|
145
145
|
}
|
|
146
146
|
})
|
|
147
147
|
]
|
|
148
|
-
}),
|
|
148
|
+
}), R = je || l.length >= Re, q = zt({
|
|
149
149
|
count: l.length,
|
|
150
150
|
getScrollElement: () => Y.current,
|
|
151
151
|
estimateSize: () => qe,
|
|
152
152
|
overscan: 5,
|
|
153
|
-
enabled:
|
|
153
|
+
enabled: R && n
|
|
154
154
|
}), k = x(() => {
|
|
155
|
-
|
|
156
|
-
}, [
|
|
157
|
-
p ||
|
|
158
|
-
},
|
|
159
|
-
p ||
|
|
160
|
-
}, [p,
|
|
155
|
+
he(!1), K(""), L?.(""), se?.();
|
|
156
|
+
}, [L, se]), z = () => {
|
|
157
|
+
p || E || (n || Me?.(), he(!0));
|
|
158
|
+
}, H = x(() => {
|
|
159
|
+
p || E || (X(null, null), K(""), u(0), L?.(""), A.current?.focus());
|
|
160
|
+
}, [p, E, X, L]);
|
|
161
161
|
wt(
|
|
162
162
|
et,
|
|
163
163
|
() => ({
|
|
164
|
-
focus: () =>
|
|
165
|
-
blur: () =>
|
|
166
|
-
clear:
|
|
164
|
+
focus: () => A.current?.focus(),
|
|
165
|
+
blur: () => A.current?.blur(),
|
|
166
|
+
clear: H
|
|
167
167
|
}),
|
|
168
|
-
[
|
|
169
|
-
),
|
|
168
|
+
[H]
|
|
169
|
+
), D(() => {
|
|
170
170
|
const e = (t) => {
|
|
171
171
|
const r = t.target;
|
|
172
172
|
!ge.current?.contains(r) && !Y.current?.contains(r) && k();
|
|
173
173
|
};
|
|
174
174
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
175
|
-
}, [k]),
|
|
175
|
+
}, [k]), D(() => {
|
|
176
176
|
a >= l.length && u(0);
|
|
177
|
-
}, [a, l.length]),
|
|
178
|
-
|
|
177
|
+
}, [a, l.length]), D(() => {
|
|
178
|
+
R && n && l[a] && q.scrollToIndex(a, { align: "auto" });
|
|
179
179
|
}, [
|
|
180
180
|
a,
|
|
181
181
|
l,
|
|
182
182
|
n,
|
|
183
|
-
|
|
184
|
-
|
|
183
|
+
R,
|
|
184
|
+
q
|
|
185
185
|
]);
|
|
186
186
|
const ke = (e) => {
|
|
187
|
-
|
|
187
|
+
F(e) || (X(v(e), e), k(), A.current?.focus());
|
|
188
188
|
}, pt = (e) => {
|
|
189
189
|
if (!l.length) return;
|
|
190
190
|
let t = a;
|
|
191
191
|
do
|
|
192
192
|
t = (t + e + l.length) % l.length;
|
|
193
|
-
while (
|
|
193
|
+
while (F(l[t]) && t !== a);
|
|
194
194
|
u(t);
|
|
195
195
|
}, P = (e = !1) => {
|
|
196
196
|
const t = l.map((r, w) => ({ option: r, index: w }));
|
|
197
|
-
return e && t.reverse(), t.find(({ option: r }) => !
|
|
197
|
+
return e && t.reverse(), t.find(({ option: r }) => !F(r))?.index ?? 0;
|
|
198
198
|
}, gt = (e) => {
|
|
199
199
|
if (e.key === "Backspace" && !m && g !== null && le) {
|
|
200
|
-
e.preventDefault(),
|
|
200
|
+
e.preventDefault(), H();
|
|
201
201
|
return;
|
|
202
202
|
}
|
|
203
203
|
if (e.key === "ArrowDown" || e.key === "ArrowUp")
|
|
204
|
-
e.preventDefault(), n ? pt(e.key === "ArrowDown" ? 1 : -1) : (
|
|
204
|
+
e.preventDefault(), n ? pt(e.key === "ArrowDown" ? 1 : -1) : (z(), u(P(e.key === "ArrowUp")));
|
|
205
205
|
else if (e.key === "Home" && n)
|
|
206
206
|
e.preventDefault(), u(P());
|
|
207
207
|
else if (e.key === "End" && n)
|
|
@@ -212,8 +212,8 @@ function Vt({
|
|
|
212
212
|
t && ke(t);
|
|
213
213
|
} else e.key === "Escape" && n ? (e.preventDefault(), k()) : e.key === "Tab" && k();
|
|
214
214
|
}, we = (e, t, r) => {
|
|
215
|
-
const w = v(e), Se =
|
|
216
|
-
return /* @__PURE__ */
|
|
215
|
+
const w = v(e), Se = F(e);
|
|
216
|
+
return /* @__PURE__ */ B(
|
|
217
217
|
"div",
|
|
218
218
|
{
|
|
219
219
|
id: `${d}-option-${t}`,
|
|
@@ -231,7 +231,7 @@ function Vt({
|
|
|
231
231
|
),
|
|
232
232
|
style: { ...r, ...s.option },
|
|
233
233
|
onMouseEnter: () => u(t),
|
|
234
|
-
onMouseDown: (
|
|
234
|
+
onMouseDown: (bt) => bt.preventDefault(),
|
|
235
235
|
onClick: () => ke(e),
|
|
236
236
|
children: [
|
|
237
237
|
/* @__PURE__ */ o("span", { children: J(e) }),
|
|
@@ -240,7 +240,7 @@ function Vt({
|
|
|
240
240
|
},
|
|
241
241
|
w
|
|
242
242
|
);
|
|
243
|
-
},
|
|
243
|
+
}, ht = W ? /* @__PURE__ */ B(
|
|
244
244
|
"div",
|
|
245
245
|
{
|
|
246
246
|
role: "status",
|
|
@@ -266,13 +266,13 @@ function Vt({
|
|
|
266
266
|
style: s.message,
|
|
267
267
|
children: st
|
|
268
268
|
}
|
|
269
|
-
) :
|
|
269
|
+
) : R ? /* @__PURE__ */ o(
|
|
270
270
|
"div",
|
|
271
271
|
{
|
|
272
272
|
role: "presentation",
|
|
273
273
|
className: "inconel-select-virtual-content",
|
|
274
|
-
style: { height:
|
|
275
|
-
children:
|
|
274
|
+
style: { height: q.getTotalSize() },
|
|
275
|
+
children: q.getVirtualItems().map(
|
|
276
276
|
(e) => we(l[e.index], e.index, {
|
|
277
277
|
position: "absolute",
|
|
278
278
|
top: 0,
|
|
@@ -291,17 +291,17 @@ function Vt({
|
|
|
291
291
|
},
|
|
292
292
|
id: fe,
|
|
293
293
|
role: "listbox",
|
|
294
|
-
"aria-labelledby": ue,
|
|
294
|
+
"aria-labelledby": I ? ue : void 0,
|
|
295
295
|
className: c(
|
|
296
296
|
"inconel-select-menu",
|
|
297
|
-
|
|
297
|
+
N && "inconel-select-menu-portal",
|
|
298
298
|
i.menu
|
|
299
299
|
),
|
|
300
300
|
style: { ...mt, ...s.menu },
|
|
301
|
-
children:
|
|
301
|
+
children: ht
|
|
302
302
|
}
|
|
303
|
-
) : null,
|
|
304
|
-
return Je ? /* @__PURE__ */
|
|
303
|
+
) : null, yt = y ? me : ie ? pe : void 0;
|
|
304
|
+
return Je ? /* @__PURE__ */ B(
|
|
305
305
|
"div",
|
|
306
306
|
{
|
|
307
307
|
ref: ge,
|
|
@@ -314,7 +314,7 @@ function Vt({
|
|
|
314
314
|
),
|
|
315
315
|
style: s.root,
|
|
316
316
|
children: [
|
|
317
|
-
/* @__PURE__ */
|
|
317
|
+
I && /* @__PURE__ */ B(
|
|
318
318
|
"label",
|
|
319
319
|
{
|
|
320
320
|
id: ue,
|
|
@@ -322,12 +322,12 @@ function Vt({
|
|
|
322
322
|
className: c(i.label, _e),
|
|
323
323
|
style: s.label,
|
|
324
324
|
children: [
|
|
325
|
-
|
|
325
|
+
I,
|
|
326
326
|
G && /* @__PURE__ */ o("span", { "aria-hidden": "true", children: " *" })
|
|
327
327
|
]
|
|
328
328
|
}
|
|
329
329
|
),
|
|
330
|
-
/* @__PURE__ */
|
|
330
|
+
/* @__PURE__ */ B(
|
|
331
331
|
"div",
|
|
332
332
|
{
|
|
333
333
|
ref: ve.setReference,
|
|
@@ -335,7 +335,7 @@ function Vt({
|
|
|
335
335
|
"inconel-select-control",
|
|
336
336
|
n && "inconel-is-open",
|
|
337
337
|
p && "inconel-is-disabled",
|
|
338
|
-
!!
|
|
338
|
+
!!y && "inconel-has-error",
|
|
339
339
|
i.control
|
|
340
340
|
),
|
|
341
341
|
style: s.control,
|
|
@@ -343,20 +343,20 @@ function Vt({
|
|
|
343
343
|
/* @__PURE__ */ o(
|
|
344
344
|
"input",
|
|
345
345
|
{
|
|
346
|
-
ref:
|
|
346
|
+
ref: A,
|
|
347
347
|
id: d,
|
|
348
348
|
role: "combobox",
|
|
349
349
|
"aria-expanded": n,
|
|
350
350
|
"aria-controls": fe,
|
|
351
351
|
"aria-autocomplete": "list",
|
|
352
352
|
"aria-activedescendant": n && l[a] ? `${d}-option-${a}` : void 0,
|
|
353
|
-
"aria-describedby":
|
|
354
|
-
"aria-invalid": !!
|
|
353
|
+
"aria-describedby": yt,
|
|
354
|
+
"aria-invalid": !!y,
|
|
355
355
|
"aria-required": oe,
|
|
356
356
|
"aria-busy": W,
|
|
357
357
|
required: G,
|
|
358
358
|
disabled: p,
|
|
359
|
-
readOnly:
|
|
359
|
+
readOnly: E || !Te,
|
|
360
360
|
autoFocus: Ue,
|
|
361
361
|
autoComplete: "off",
|
|
362
362
|
placeholder: it,
|
|
@@ -367,25 +367,25 @@ function Vt({
|
|
|
367
367
|
const t = Xe ? e.target.value.toLocaleUpperCase(
|
|
368
368
|
f.locale ?? "tr-TR"
|
|
369
369
|
) : e.target.value;
|
|
370
|
-
K(t), u(0),
|
|
370
|
+
K(t), u(0), L?.(t), z();
|
|
371
371
|
},
|
|
372
|
-
onClick:
|
|
372
|
+
onClick: z,
|
|
373
373
|
onFocus: (e) => {
|
|
374
|
-
|
|
374
|
+
z(), _ && !m && e.currentTarget.select();
|
|
375
375
|
},
|
|
376
376
|
onBlur: We,
|
|
377
377
|
onKeyDown: gt
|
|
378
378
|
}
|
|
379
379
|
),
|
|
380
380
|
W && /* @__PURE__ */ o("span", { className: "inconel-select-spinner", "aria-hidden": "true" }),
|
|
381
|
-
le && g !== null && !p && !
|
|
381
|
+
le && g !== null && !p && !E && /* @__PURE__ */ o(
|
|
382
382
|
"button",
|
|
383
383
|
{
|
|
384
384
|
type: "button",
|
|
385
385
|
className: c("inconel-select-clear", i.clearButton),
|
|
386
386
|
style: s.clearButton,
|
|
387
387
|
"aria-label": ct,
|
|
388
|
-
onClick:
|
|
388
|
+
onClick: H,
|
|
389
389
|
children: "×"
|
|
390
390
|
}
|
|
391
391
|
),
|
|
@@ -399,7 +399,7 @@ function Vt({
|
|
|
399
399
|
"aria-expanded": n,
|
|
400
400
|
disabled: p,
|
|
401
401
|
tabIndex: -1,
|
|
402
|
-
onClick: () => n ? k() :
|
|
402
|
+
onClick: () => n ? k() : z(),
|
|
403
403
|
children: /* @__PURE__ */ o(
|
|
404
404
|
"svg",
|
|
405
405
|
{
|
|
@@ -438,12 +438,12 @@ function Vt({
|
|
|
438
438
|
Dt,
|
|
439
439
|
{
|
|
440
440
|
hint: ie,
|
|
441
|
-
errorMessage: T === "in" ? void 0 :
|
|
441
|
+
errorMessage: T === "in" ? void 0 : y,
|
|
442
442
|
hintId: pe,
|
|
443
443
|
errorId: me
|
|
444
444
|
}
|
|
445
445
|
),
|
|
446
|
-
|
|
446
|
+
N && ee ? Bt(ee, N) : ee
|
|
447
447
|
]
|
|
448
448
|
}
|
|
449
449
|
) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ForwardedRef,\n type KeyboardEvent,\n type ReactNode,\n} from 'react'\nimport {\n autoUpdate,\n flip,\n offset,\n shift,\n size as floatingSize,\n useFloating,\n} from '@floating-ui/react'\nimport { useVirtualizer } from '@tanstack/react-virtual'\nimport { createPortal } from 'react-dom'\nimport { useInconelAdapters } from '../../adapters'\nimport { classNames as mergeClassNames } from '../shared/classNames'\nimport '../shared/field.css'\nimport '../shared/field-controls.css'\nimport '../shared/sizes.css'\nimport type { ControlSize } from '../shared/types'\nimport './styles.css'\n\nimport FieldFeedback from '../FieldFeedback/FieldFeedback'\nimport type { FieldFeedbackContentProps } from '../FieldFeedback/FieldFeedback'\n\nexport type OptionValue = string | number\n\nexport interface SelectHandle {\n focus: () => void\n blur: () => void\n clear: () => void\n}\n\ntype SelectPart =\n | 'root'\n | 'label'\n | 'control'\n | 'input'\n | 'clearButton'\n | 'toggleButton'\n | 'menu'\n | 'option'\n | 'message'\n\nexport type SelectClassNames = Partial<Record<SelectPart, string>>\nexport type SelectStyles = Partial<Record<SelectPart, CSSProperties>>\n\nexport interface SelectProps<T extends object> extends FieldFeedbackContentProps {\n id?: string\n name?: string\n label?: ReactNode\n options?: T[]\n value?: OptionValue | T | null\n onChange?:\n | ((value: OptionValue | null, option: T | null) => void)\n | ((option: T | null) => void)\n optionLabel?: keyof T | ((option: T) => ReactNode)\n optionValue?: keyof T | ((option: T) => OptionValue)\n getOptionSearchText?: (option: T) => string\n isOptionDisabled?: (option: T) => boolean\n placeholder?: string\n isClearable?: boolean\n isDisabled?: boolean\n isReadOnly?: boolean\n isRequired?: boolean\n isLoading?: boolean\n loadOptions?: (inputValue: string, signal: AbortSignal) => Promise<T[]>\n loadOptionsDebounceMs?: number\n asyncErrorMessage?: ReactNode\n loadingMessage?: ReactNode\n noOptionsMessage?: ReactNode\n clearButtonLabel?: string\n openMenuButtonLabel?: string\n closeMenuButtonLabel?: string\n searchLocale?: string\n menuPortalTarget?: HTMLElement | null\n virtualize?: boolean\n virtualizationThreshold?: number\n optionHeight?: number\n className?: string\n classNames?: SelectClassNames\n styles?: SelectStyles\n onInputChange?: (value: string) => void\n onMenuOpen?: () => void\n onMenuClose?: () => void\n autoFocus?: boolean\n selectClassName?: string\n disabled?: boolean\n isSearchable?: boolean\n readOnly?: boolean\n defaultValue?: OptionValue | T | null\n errorPlace?: 'in' | 'out' | string\n onBlur?: () => void\n setFieldValue?: OptionValue | string | null\n render?: boolean\n singleValue?: boolean\n sortByUppercase?: boolean\n selectClassNamePrefix?: string\n menuPlacement?: 'auto' | 'bottom' | 'top'\n maxMenuHeight?: number\n inputClassName?: string\n labelClassName?: string\n size?: ControlSize\n required?: boolean\n components?: Record<string, unknown>\n}\n\nfunction SelectInner<T extends object>(\n {\n id,\n name,\n label,\n options = [],\n value,\n onChange,\n optionLabel = 'label' as keyof T,\n optionValue = 'value' as keyof T,\n getOptionSearchText,\n isOptionDisabled = () => false,\n placeholder,\n isClearable = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n isLoading = false,\n loadOptions,\n loadOptionsDebounceMs = 250,\n hint,\n errorMessage,\n asyncErrorMessage,\n loadingMessage,\n noOptionsMessage,\n clearButtonLabel,\n openMenuButtonLabel,\n closeMenuButtonLabel,\n searchLocale,\n menuPortalTarget,\n virtualize = false,\n virtualizationThreshold = 100,\n optionHeight = 44,\n className,\n classNames = {},\n styles = {},\n onInputChange,\n onMenuOpen,\n onMenuClose,\n autoFocus,\n selectClassName,\n disabled,\n isSearchable = true,\n readOnly,\n defaultValue,\n errorPlace,\n onBlur,\n setFieldValue,\n render = true,\n singleValue,\n sortByUppercase,\n inputClassName,\n labelClassName,\n size = 'md',\n required,\n }: SelectProps<T>,\n forwardedRef: ForwardedRef<SelectHandle>,\n) {\n const adapters = useInconelAdapters()\n const legacyMode =\n singleValue !== undefined ||\n selectClassName !== undefined ||\n errorPlace !== undefined\n const controlledValue = value ?? setFieldValue ?? defaultValue ?? null\n const generatedId = useId()\n const inputId = id ?? `inconel-select-${generatedId.replace(/:/g, '')}`\n const labelId = `${inputId}-label`\n const listboxId = `${inputId}-listbox`\n const messageId = `${inputId}-message`\n const hintId = `${inputId}-hint`\n const rootRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const menuRef = useRef<HTMLDivElement>(null)\n const [isOpen, setIsOpen] = useState(false)\n const [inputValue, setInputValue] = useState('')\n const [activeIndex, setActiveIndex] = useState(0)\n const [asyncOptions, setAsyncOptions] = useState<T[] | null>(null)\n const [isAsyncLoading, setIsAsyncLoading] = useState(false)\n const [hasAsyncError, setHasAsyncError] = useState(false)\n\n useEffect(() => {\n if (!loadOptions) return\n const controller = new AbortController()\n const timeout = window.setTimeout(async () => {\n setIsAsyncLoading(true)\n setHasAsyncError(false)\n try {\n const loadedOptions = await loadOptions(\n inputValue,\n controller.signal,\n )\n if (!controller.signal.aborted) setAsyncOptions(loadedOptions)\n } catch {\n if (!controller.signal.aborted) setHasAsyncError(true)\n } finally {\n if (!controller.signal.aborted) setIsAsyncLoading(false)\n }\n }, loadOptionsDebounceMs)\n\n return () => {\n window.clearTimeout(timeout)\n controller.abort()\n }\n }, [inputValue, loadOptions, loadOptionsDebounceMs])\n\n const availableOptions = loadOptions\n ? (asyncOptions ?? options)\n : options\n const loading = isLoading || isAsyncLoading\n const componentDisabled = isDisabled || Boolean(disabled)\n const componentReadOnly = isReadOnly || Boolean(readOnly)\n const componentRequired = isRequired || Boolean(required)\n const resolvedPlaceholder =\n (errorPlace === 'in' && errorMessage\n ? String(errorMessage)\n : placeholder) ??\n String(adapters.translate?.('select', 'Seçim yapın...') ?? 'Seçim yapın...')\n const resolvedNoOptionsMessage =\n noOptionsMessage ??\n adapters.translate?.('noData', 'Sonuç bulunamadı.') ??\n 'Sonuç bulunamadı.'\n const resolvedLoadingMessage =\n loadingMessage ??\n adapters.translate?.('loading', 'Yükleniyor...') ??\n 'Yükleniyor...'\n const resolvedClearLabel =\n clearButtonLabel ??\n String(adapters.translate?.('clearSelection', 'Seçimi temizle') ?? 'Seçimi temizle')\n const resolvedOpenLabel =\n openMenuButtonLabel ??\n String(adapters.translate?.('openOptions', 'Seçenekleri aç') ?? 'Seçenekleri aç')\n const resolvedCloseLabel =\n closeMenuButtonLabel ??\n String(adapters.translate?.('closeOptions', 'Seçenekleri kapat') ?? 'Seçenekleri kapat')\n\n const getLabel = useCallback(\n (option: T): ReactNode =>\n typeof optionLabel === 'function'\n ? optionLabel(option)\n : String(option[optionLabel]),\n [optionLabel],\n )\n\n const getSearchLabel = useCallback(\n (option: T) => {\n if (getOptionSearchText) return getOptionSearchText(option)\n const renderedLabel = getLabel(option)\n return typeof renderedLabel === 'string' ||\n typeof renderedLabel === 'number'\n ? String(renderedLabel)\n : ''\n },\n [getLabel, getOptionSearchText],\n )\n\n const getValue = useCallback(\n (option: T): OptionValue => {\n const resolvedValue =\n typeof optionValue === 'function'\n ? optionValue(option)\n : option[optionValue]\n\n if (\n typeof resolvedValue !== 'string' &&\n typeof resolvedValue !== 'number'\n ) {\n throw new TypeError('optionValue must resolve to a string or number.')\n }\n return resolvedValue\n },\n [optionValue],\n )\n\n const normalizedValue =\n controlledValue && typeof controlledValue === 'object'\n ? getValue(controlledValue as T)\n : (controlledValue as OptionValue | null)\n\n const emitChange = useCallback(\n (nextValue: OptionValue | null, option: T | null) => {\n if (!onChange) return\n if (legacyMode) {\n ;(onChange as (selected: T | null) => void)(option)\n } else {\n ;(\n onChange as (\n value: OptionValue | null,\n selected: T | null,\n ) => void\n )(nextValue, option)\n }\n },\n [legacyMode, onChange],\n )\n\n const duplicateValues = useMemo(() => {\n const seen = new Set<OptionValue>()\n return availableOptions\n .map(getValue)\n .filter((optionId) => {\n if (seen.has(optionId)) return true\n seen.add(optionId)\n return false\n })\n }, [availableOptions, getValue])\n\n useEffect(() => {\n if (duplicateValues.length) {\n console.warn(\n `Duplicate optionValue found in Select \"${label}\":`,\n duplicateValues,\n )\n }\n }, [duplicateValues, label])\n\n const selectedOption = [...options, ...availableOptions].find(\n (option) => getValue(option) === normalizedValue,\n )\n const selectedLabel = selectedOption ? getSearchLabel(selectedOption) : ''\n\n const filteredOptions = useMemo(() => {\n const query = inputValue.trim().toLocaleLowerCase(searchLocale)\n if (!query || loadOptions) return availableOptions\n return availableOptions.filter((option) =>\n getSearchLabel(option).toLocaleLowerCase(searchLocale).includes(query),\n )\n }, [availableOptions, getSearchLabel, inputValue, loadOptions, searchLocale])\n\n const { refs, floatingStyles } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n strategy: menuPortalTarget ? 'fixed' : 'absolute',\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(8),\n flip({ padding: 12 }),\n shift({ padding: 12 }),\n floatingSize({\n padding: 12,\n apply({ availableHeight, rects, elements }) {\n Object.assign(elements.floating.style, {\n maxHeight: `${Math.min(230, availableHeight)}px`,\n width: `${rects.reference.width}px`,\n })\n },\n }),\n ],\n })\n\n const shouldVirtualize =\n virtualize || filteredOptions.length >= virtualizationThreshold\n const virtualizer = useVirtualizer({\n count: filteredOptions.length,\n getScrollElement: () => menuRef.current,\n estimateSize: () => optionHeight,\n overscan: 5,\n enabled: shouldVirtualize && isOpen,\n })\n\n const closeMenu = useCallback(() => {\n setIsOpen(false)\n setInputValue('')\n onInputChange?.('')\n onMenuClose?.()\n }, [onInputChange, onMenuClose])\n\n const openMenu = () => {\n if (componentDisabled || componentReadOnly) return\n if (!isOpen) onMenuOpen?.()\n setIsOpen(true)\n }\n\n const clearSelection = useCallback(() => {\n if (componentDisabled || componentReadOnly) return\n emitChange(null, null)\n setInputValue('')\n setActiveIndex(0)\n onInputChange?.('')\n inputRef.current?.focus()\n }, [componentDisabled, componentReadOnly, emitChange, onInputChange])\n\n useImperativeHandle(\n forwardedRef,\n () => ({\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n clear: clearSelection,\n }),\n [clearSelection],\n )\n\n useEffect(() => {\n const closeOnOutsideClick = (event: MouseEvent) => {\n const target = event.target as Node\n if (\n !rootRef.current?.contains(target) &&\n !menuRef.current?.contains(target)\n ) {\n closeMenu()\n }\n }\n\n document.addEventListener('mousedown', closeOnOutsideClick)\n return () => document.removeEventListener('mousedown', closeOnOutsideClick)\n }, [closeMenu])\n\n useEffect(() => {\n if (activeIndex >= filteredOptions.length) setActiveIndex(0)\n }, [activeIndex, filteredOptions.length])\n\n useEffect(() => {\n if (shouldVirtualize && isOpen && filteredOptions[activeIndex]) {\n virtualizer.scrollToIndex(activeIndex, { align: 'auto' })\n }\n }, [\n activeIndex,\n filteredOptions,\n isOpen,\n shouldVirtualize,\n virtualizer,\n ])\n\n const selectOption = (option: T) => {\n if (isOptionDisabled(option)) return\n emitChange(getValue(option), option)\n closeMenu()\n inputRef.current?.focus()\n }\n\n const moveActiveOption = (direction: 1 | -1) => {\n if (!filteredOptions.length) return\n let nextIndex = activeIndex\n do {\n nextIndex =\n (nextIndex + direction + filteredOptions.length) %\n filteredOptions.length\n } while (\n isOptionDisabled(filteredOptions[nextIndex]) &&\n nextIndex !== activeIndex\n )\n setActiveIndex(nextIndex)\n }\n\n const findEnabledIndex = (fromEnd = false) => {\n const entries = filteredOptions.map((option, index) => ({ option, index }))\n if (fromEnd) entries.reverse()\n return entries.find(({ option }) => !isOptionDisabled(option))?.index ?? 0\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (\n event.key === 'Backspace' &&\n !inputValue &&\n normalizedValue !== null &&\n isClearable\n ) {\n event.preventDefault()\n clearSelection()\n return\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault()\n if (!isOpen) {\n openMenu()\n setActiveIndex(findEnabledIndex(event.key === 'ArrowUp'))\n } else {\n moveActiveOption(event.key === 'ArrowDown' ? 1 : -1)\n }\n } else if (event.key === 'Home' && isOpen) {\n event.preventDefault()\n setActiveIndex(findEnabledIndex())\n } else if (event.key === 'End' && isOpen) {\n event.preventDefault()\n setActiveIndex(findEnabledIndex(true))\n } else if (event.key === 'Enter' && isOpen) {\n event.preventDefault()\n const activeOption = filteredOptions[activeIndex]\n if (activeOption) selectOption(activeOption)\n } else if (event.key === 'Escape' && isOpen) {\n event.preventDefault()\n closeMenu()\n } else if (event.key === 'Tab') {\n closeMenu()\n }\n }\n\n const renderOption = (option: T, index: number, style?: CSSProperties) => {\n const optionId = getValue(option)\n const disabled = isOptionDisabled(option)\n return (\n <div\n id={`${inputId}-option-${index}`}\n key={optionId}\n role=\"option\"\n aria-selected={optionId === normalizedValue}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n aria-setsize={filteredOptions.length}\n className={mergeClassNames(\n 'inconel-select-option',\n index === activeIndex && 'inconel-is-active',\n optionId === normalizedValue && 'inconel-is-selected',\n disabled && 'inconel-is-disabled',\n classNames.option,\n )}\n style={{ ...style, ...styles.option }}\n onMouseEnter={() => setActiveIndex(index)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => selectOption(option)}\n >\n <span>{getLabel(option)}</span>\n {optionId === normalizedValue && <span aria-hidden=\"true\">✓</span>}\n </div>\n )\n }\n\n const menuContent = loading ? (\n <div\n role=\"status\"\n className={mergeClassNames('inconel-select-message', classNames.message)}\n style={styles.message}\n >\n <span className=\"inconel-select-spinner\" aria-hidden=\"true\" />\n {resolvedLoadingMessage}\n </div>\n ) : hasAsyncError ? (\n <div\n role=\"alert\"\n className={mergeClassNames('inconel-select-message inconel-select-message-error', classNames.message)}\n style={styles.message}\n >\n {asyncErrorMessage}\n </div>\n ) : filteredOptions.length === 0 ? (\n <div\n className={mergeClassNames('inconel-select-message', classNames.message)}\n style={styles.message}\n >\n {resolvedNoOptionsMessage}\n </div>\n ) : shouldVirtualize ? (\n <div\n role=\"presentation\"\n className=\"inconel-select-virtual-content\"\n style={{ height: virtualizer.getTotalSize() }}\n >\n {virtualizer.getVirtualItems().map((virtualRow) =>\n renderOption(filteredOptions[virtualRow.index], virtualRow.index, {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: virtualRow.size,\n transform: `translateY(${virtualRow.start}px)`,\n }),\n )}\n </div>\n ) : (\n filteredOptions.map((option, index) => renderOption(option, index))\n )\n\n const menu = isOpen ? (\n <div\n ref={(node) => {\n menuRef.current = node\n refs.setFloating(node)\n }}\n id={listboxId}\n role=\"listbox\"\n aria-labelledby={labelId}\n className={mergeClassNames(\n 'inconel-select-menu',\n menuPortalTarget && 'inconel-select-menu-portal',\n classNames.menu,\n )}\n style={{ ...floatingStyles, ...styles.menu }}\n >\n {menuContent}\n </div>\n ) : null\n\n const describedBy = errorMessage ? messageId : hint ? hintId : undefined\n\n if (!render) return null\n\n return (\n <div\n ref={rootRef}\n className={mergeClassNames(\n 'inconel-select-field',\n `inconel-size-${size}`,\n `inconel-select-field--${size}`,\n className,\n classNames.root,\n )}\n style={styles.root}\n >\n <label\n id={labelId}\n htmlFor={inputId}\n className={mergeClassNames(classNames.label, labelClassName)}\n style={styles.label}\n >\n {label}\n {componentRequired && <span aria-hidden=\"true\"> *</span>}\n </label>\n <div\n ref={refs.setReference}\n className={mergeClassNames(\n 'inconel-select-control',\n isOpen && 'inconel-is-open',\n componentDisabled && 'inconel-is-disabled',\n Boolean(errorMessage) && 'inconel-has-error',\n classNames.control,\n )}\n style={styles.control}\n >\n <input\n ref={inputRef}\n id={inputId}\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-autocomplete=\"list\"\n aria-activedescendant={\n isOpen && filteredOptions[activeIndex]\n ? `${inputId}-option-${activeIndex}`\n : undefined\n }\n aria-describedby={describedBy}\n aria-invalid={Boolean(errorMessage)}\n aria-required={isRequired}\n aria-busy={loading}\n required={componentRequired}\n disabled={componentDisabled}\n readOnly={componentReadOnly || !isSearchable}\n autoFocus={autoFocus}\n autoComplete=\"off\"\n placeholder={resolvedPlaceholder}\n value={inputValue || selectedLabel}\n className={mergeClassNames(classNames.input, inputClassName, selectClassName)}\n style={styles.input}\n onChange={(event) => {\n const nextInput = sortByUppercase\n ? event.target.value.toLocaleUpperCase(\n adapters.locale ?? 'tr-TR',\n )\n : event.target.value\n setInputValue(nextInput)\n setActiveIndex(0)\n onInputChange?.(nextInput)\n openMenu()\n }}\n onClick={openMenu}\n onFocus={(event) => {\n openMenu()\n if (selectedOption && !inputValue) event.currentTarget.select()\n }}\n onBlur={onBlur}\n onKeyDown={handleKeyDown}\n />\n {loading && <span className=\"inconel-select-spinner\" aria-hidden=\"true\" />}\n {isClearable && normalizedValue !== null && !componentDisabled && !componentReadOnly && (\n <button\n type=\"button\"\n className={mergeClassNames('inconel-select-clear', classNames.clearButton)}\n style={styles.clearButton}\n aria-label={resolvedClearLabel}\n onClick={clearSelection}\n >\n ×\n </button>\n )}\n <button\n type=\"button\"\n className={mergeClassNames('inconel-select-toggle', classNames.toggleButton)}\n style={styles.toggleButton}\n aria-label={isOpen ? resolvedCloseLabel : resolvedOpenLabel}\n aria-expanded={isOpen}\n disabled={componentDisabled}\n tabIndex={-1}\n onClick={() => (isOpen ? closeMenu() : openMenu())}\n >\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n >\n <path\n d=\"m5 7.5 5 5 5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n\n {name && (\n <input\n type=\"hidden\"\n name={name}\n value={normalizedValue ?? ''}\n required={componentRequired}\n />\n )}\n <FieldFeedback\n hint={hint}\n errorMessage={errorPlace === 'in' ? undefined : errorMessage}\n hintId={hintId}\n errorId={messageId}\n />\n\n {menuPortalTarget && menu\n ? createPortal(menu, menuPortalTarget)\n : menu}\n </div>\n )\n}\n\nconst Select = forwardRef(SelectInner) as <T extends object>(\n props: SelectProps<T> & { ref?: ForwardedRef<SelectHandle> },\n) => ReactNode\n\nexport default Select\n"],"names":["SelectInner","id","name","label","options","value","onChange","optionLabel","optionValue","getOptionSearchText","isOptionDisabled","placeholder","isClearable","isDisabled","isReadOnly","isRequired","isLoading","loadOptions","loadOptionsDebounceMs","hint","errorMessage","asyncErrorMessage","loadingMessage","noOptionsMessage","clearButtonLabel","openMenuButtonLabel","closeMenuButtonLabel","searchLocale","menuPortalTarget","virtualize","virtualizationThreshold","optionHeight","className","classNames","styles","onInputChange","onMenuOpen","onMenuClose","autoFocus","selectClassName","disabled","isSearchable","readOnly","defaultValue","errorPlace","onBlur","setFieldValue","render","singleValue","sortByUppercase","inputClassName","labelClassName","size","required","forwardedRef","adapters","useInconelAdapters","legacyMode","controlledValue","generatedId","useId","inputId","labelId","listboxId","messageId","hintId","rootRef","useRef","inputRef","menuRef","isOpen","setIsOpen","useState","inputValue","setInputValue","activeIndex","setActiveIndex","asyncOptions","setAsyncOptions","isAsyncLoading","setIsAsyncLoading","hasAsyncError","setHasAsyncError","useEffect","controller","timeout","loadedOptions","availableOptions","loading","componentDisabled","componentReadOnly","componentRequired","resolvedPlaceholder","resolvedNoOptionsMessage","resolvedLoadingMessage","resolvedClearLabel","resolvedOpenLabel","resolvedCloseLabel","getLabel","useCallback","option","getSearchLabel","renderedLabel","getValue","resolvedValue","normalizedValue","emitChange","nextValue","duplicateValues","useMemo","seen","optionId","selectedOption","selectedLabel","filteredOptions","query","refs","floatingStyles","useFloating","autoUpdate","offset","flip","shift","floatingSize","availableHeight","rects","elements","shouldVirtualize","virtualizer","useVirtualizer","closeMenu","openMenu","clearSelection","useImperativeHandle","closeOnOutsideClick","event","target","selectOption","moveActiveOption","direction","nextIndex","findEnabledIndex","fromEnd","entries","index","handleKeyDown","activeOption","renderOption","style","jsxs","mergeClassNames","jsx","menuContent","virtualRow","menu","node","describedBy","nextInput","FieldFeedback","createPortal","Select","forwardRef"],"mappings":";;;;;;;;;;;;AAqHA,SAASA,GACP;AAAA,EACE,IAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC,IAAU,CAAA;AAAA,EACV,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,aAAAC,IAAc;AAAA,EACd,qBAAAC;AAAA,EACA,kBAAAC,IAAmB,MAAM;AAAA,EACzB,aAAAC;AAAA,EACA,aAAAC,KAAc;AAAA,EACd,YAAAC,KAAa;AAAA,EACb,YAAAC,KAAa;AAAA,EACb,YAAAC,KAAa;AAAA,EACb,WAAAC,KAAY;AAAA,EACZ,aAAAC;AAAA,EACA,uBAAAC,KAAwB;AAAA,EACxB,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,YAAAC,KAAa;AAAA,EACb,yBAAAC,KAA0B;AAAA,EAC1B,cAAAC,KAAe;AAAA,EACf,WAAAC;AAAA,EAAA,YACAC,IAAa,CAAA;AAAA,EACb,QAAAC,IAAS,CAAA;AAAA,EACT,eAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC,KAAe;AAAA,EACf,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC,KAAS;AAAA,EACT,aAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EAAA,MACAC,KAAO;AAAA,EACP,UAAAC;AACF,GACAC,IACA;AACA,QAAMC,IAAWC,GAAA,GACXC,KACJT,OAAgB,UAChBT,OAAoB,UACpBK,MAAe,QACXc,IAAkBrD,MAASyC,MAAiBH,MAAgB,MAC5DgB,KAAcC,GAAA,GACdC,IAAU5D,MAAM,kBAAkB0D,GAAY,QAAQ,MAAM,EAAE,CAAC,IAC/DG,KAAU,GAAGD,CAAO,UACpBE,KAAY,GAAGF,CAAO,YACtBG,KAAY,GAAGH,CAAO,YACtBI,KAAS,GAAGJ,CAAO,SACnBK,KAAUC,GAAuB,IAAI,GACrCC,IAAWD,GAAyB,IAAI,GACxCE,IAAUF,GAAuB,IAAI,GACrC,CAACG,GAAQC,EAAS,IAAIC,EAAS,EAAK,GACpC,CAACC,GAAYC,CAAa,IAAIF,EAAS,EAAE,GACzC,CAACG,GAAaC,CAAc,IAAIJ,EAAS,CAAC,GAC1C,CAACK,IAAcC,EAAe,IAAIN,EAAqB,IAAI,GAC3D,CAACO,IAAgBC,EAAiB,IAAIR,EAAS,EAAK,GACpD,CAACS,IAAeC,EAAgB,IAAIV,EAAS,EAAK;AAExD,EAAAW,EAAU,MAAM;AACd,QAAI,CAAClE,EAAa;AAClB,UAAMmE,IAAa,IAAI,gBAAA,GACjBC,IAAU,OAAO,WAAW,YAAY;AAC5C,MAAAL,GAAkB,EAAI,GACtBE,GAAiB,EAAK;AACtB,UAAI;AACF,cAAMI,IAAgB,MAAMrE;AAAA,UAC1BwD;AAAA,UACAW,EAAW;AAAA,QAAA;AAEb,QAAKA,EAAW,OAAO,cAAyBE,CAAa;AAAA,MAC/D,QAAQ;AACN,QAAKF,EAAW,OAAO,cAA0B,EAAI;AAAA,MACvD,UAAA;AACE,QAAKA,EAAW,OAAO,cAA2B,EAAK;AAAA,MACzD;AAAA,IACF,GAAGlE,EAAqB;AAExB,WAAO,MAAM;AACX,aAAO,aAAamE,CAAO,GAC3BD,EAAW,MAAA;AAAA,IACb;AAAA,EACF,GAAG,CAACX,GAAYxD,GAAaC,EAAqB,CAAC;AAEnD,QAAMqE,IAAmBtE,IACpB4D,MAAgBzE,IACjBA,GACEoF,IAAUxE,MAAa+D,IACvBU,IAAoB5E,MAAc,EAAQ2B,IAC1CkD,IAAoB5E,MAAc,EAAQ4B,IAC1CiD,IAAoB5E,MAAc,EAAQsC,IAC1CuC,MACHhD,MAAe,QAAQxB,IACpB,OAAOA,CAAY,IACnBT,OACJ,OAAO4C,EAAS,YAAY,UAAU,gBAAgB,KAAK,gBAAgB,GACvEsC,KACJtE,MACAgC,EAAS,YAAY,UAAU,mBAAmB,KAClD,qBACIuC,KACJxE,MACAiC,EAAS,YAAY,WAAW,eAAe,KAC/C,iBACIwC,KACJvE,MACA,OAAO+B,EAAS,YAAY,kBAAkB,gBAAgB,KAAK,gBAAgB,GAC/EyC,KACJvE,MACA,OAAO8B,EAAS,YAAY,eAAe,gBAAgB,KAAK,gBAAgB,GAC5E0C,KACJvE,MACA,OAAO6B,EAAS,YAAY,gBAAgB,mBAAmB,KAAK,mBAAmB,GAEnF2C,IAAWC;AAAA,IACf,CAACC,MACC,OAAO7F,KAAgB,aACnBA,EAAY6F,CAAM,IAClB,OAAOA,EAAO7F,CAAW,CAAC;AAAA,IAChC,CAACA,CAAW;AAAA,EAAA,GAGR8F,IAAiBF;AAAA,IACrB,CAACC,MAAc;AACb,UAAI3F,EAAqB,QAAOA,EAAoB2F,CAAM;AAC1D,YAAME,IAAgBJ,EAASE,CAAM;AACrC,aAAO,OAAOE,KAAkB,YAC9B,OAAOA,KAAkB,WACvB,OAAOA,CAAa,IACpB;AAAA,IACN;AAAA,IACA,CAACJ,GAAUzF,CAAmB;AAAA,EAAA,GAG1B8F,IAAWJ;AAAA,IACf,CAACC,MAA2B;AAC1B,YAAMI,IACJ,OAAOhG,KAAgB,aACnBA,EAAY4F,CAAM,IAClBA,EAAO5F,CAAW;AAExB,UACE,OAAOgG,KAAkB,YACzB,OAAOA,KAAkB;AAEzB,cAAM,IAAI,UAAU,iDAAiD;AAEvE,aAAOA;AAAA,IACT;AAAA,IACA,CAAChG,CAAW;AAAA,EAAA,GAGRiG,IACJ/C,KAAmB,OAAOA,KAAoB,WAC1C6C,EAAS7C,CAAoB,IAC5BA,GAEDgD,IAAaP;AAAA,IACjB,CAACQ,GAA+BP,MAAqB;AACnD,MAAK9F,MACDmD,KACAnD,EAA0C8F,CAAM,IAGhD9F,EAIAqG,GAAWP,CAAM;AAAA,IAEvB;AAAA,IACA,CAAC3C,IAAYnD,CAAQ;AAAA,EAAA,GAGjBsG,IAAkBC,GAAQ,MAAM;AACpC,UAAMC,wBAAW,IAAA;AACjB,WAAOvB,EACJ,IAAIgB,CAAQ,EACZ,OAAO,CAACQ,MACHD,EAAK,IAAIC,CAAQ,IAAU,MAC/BD,EAAK,IAAIC,CAAQ,GACV,GACR;AAAA,EACL,GAAG,CAACxB,GAAkBgB,CAAQ,CAAC;AAE/B,EAAApB,EAAU,MAAM;AACd,IAAIyB,EAAgB,UAClB,QAAQ;AAAA,MACN,0CAA0CzG,CAAK;AAAA,MAC/CyG;AAAA,IAAA;AAAA,EAGN,GAAG,CAACA,GAAiBzG,CAAK,CAAC;AAE3B,QAAM6G,IAAiB,CAAC,GAAG5G,GAAS,GAAGmF,CAAgB,EAAE;AAAA,IACvD,CAACa,MAAWG,EAASH,CAAM,MAAMK;AAAA,EAAA,GAE7BQ,KAAgBD,IAAiBX,EAAeW,CAAc,IAAI,IAElEE,IAAkBL,GAAQ,MAAM;AACpC,UAAMM,IAAQ1C,EAAW,KAAA,EAAO,kBAAkB9C,CAAY;AAC9D,WAAI,CAACwF,KAASlG,IAAoBsE,IAC3BA,EAAiB;AAAA,MAAO,CAACa,MAC9BC,EAAeD,CAAM,EAAE,kBAAkBzE,CAAY,EAAE,SAASwF,CAAK;AAAA,IAAA;AAAA,EAEzE,GAAG,CAAC5B,GAAkBc,GAAgB5B,GAAYxD,GAAaU,CAAY,CAAC,GAEtE,EAAE,MAAAyF,IAAM,gBAAAC,GAAA,IAAmBC,GAAY;AAAA,IAC3C,MAAMhD;AAAA,IACN,WAAW;AAAA,IACX,UAAU1C,IAAmB,UAAU;AAAA,IACvC,sBAAsB2F;AAAA,IACtB,YAAY;AAAA,MACVC,GAAO,CAAC;AAAA,MACRC,GAAK,EAAE,SAAS,IAAI;AAAA,MACpBC,GAAM,EAAE,SAAS,IAAI;AAAA,MACrBC,GAAa;AAAA,QACX,SAAS;AAAA,QACT,MAAM,EAAE,iBAAAC,GAAiB,OAAAC,GAAO,UAAAC,KAAY;AAC1C,iBAAO,OAAOA,EAAS,SAAS,OAAO;AAAA,YACrC,WAAW,GAAG,KAAK,IAAI,KAAKF,CAAe,CAAC;AAAA,YAC5C,OAAO,GAAGC,EAAM,UAAU,KAAK;AAAA,UAAA,CAChC;AAAA,QACH;AAAA,MAAA,CACD;AAAA,IAAA;AAAA,EACH,CACD,GAEKE,IACJlG,MAAcqF,EAAgB,UAAUpF,IACpCkG,IAAcC,GAAe;AAAA,IACjC,OAAOf,EAAgB;AAAA,IACvB,kBAAkB,MAAM7C,EAAQ;AAAA,IAChC,cAAc,MAAMtC;AAAA,IACpB,UAAU;AAAA,IACV,SAASgG,KAAoBzD;AAAA,EAAA,CAC9B,GAEK4D,IAAY/B,EAAY,MAAM;AAClC,IAAA5B,GAAU,EAAK,GACfG,EAAc,EAAE,GAChBvC,IAAgB,EAAE,GAClBE,KAAA;AAAA,EACF,GAAG,CAACF,GAAeE,EAAW,CAAC,GAEzB8F,IAAW,MAAM;AACrB,IAAI1C,KAAqBC,MACpBpB,KAAQlC,KAAA,GACbmC,GAAU,EAAI;AAAA,EAChB,GAEM6D,IAAiBjC,EAAY,MAAM;AACvC,IAAIV,KAAqBC,MACzBgB,EAAW,MAAM,IAAI,GACrBhC,EAAc,EAAE,GAChBE,EAAe,CAAC,GAChBzC,IAAgB,EAAE,GAClBiC,EAAS,SAAS,MAAA;AAAA,EACpB,GAAG,CAACqB,GAAmBC,GAAmBgB,GAAYvE,CAAa,CAAC;AAEpE,EAAAkG;AAAA,IACE/E;AAAA,IACA,OAAO;AAAA,MACL,OAAO,MAAMc,EAAS,SAAS,MAAA;AAAA,MAC/B,MAAM,MAAMA,EAAS,SAAS,KAAA;AAAA,MAC9B,OAAOgE;AAAA,IAAA;AAAA,IAET,CAACA,CAAc;AAAA,EAAA,GAGjBjD,EAAU,MAAM;AACd,UAAMmD,IAAsB,CAACC,MAAsB;AACjD,YAAMC,IAASD,EAAM;AACrB,MACE,CAACrE,GAAQ,SAAS,SAASsE,CAAM,KACjC,CAACnE,EAAQ,SAAS,SAASmE,CAAM,KAEjCN,EAAA;AAAA,IAEJ;AAEA,oBAAS,iBAAiB,aAAaI,CAAmB,GACnD,MAAM,SAAS,oBAAoB,aAAaA,CAAmB;AAAA,EAC5E,GAAG,CAACJ,CAAS,CAAC,GAEd/C,EAAU,MAAM;AACd,IAAIR,KAAeuC,EAAgB,UAAQtC,EAAe,CAAC;AAAA,EAC7D,GAAG,CAACD,GAAauC,EAAgB,MAAM,CAAC,GAExC/B,EAAU,MAAM;AACd,IAAI4C,KAAoBzD,KAAU4C,EAAgBvC,CAAW,KAC3DqD,EAAY,cAAcrD,GAAa,EAAE,OAAO,QAAQ;AAAA,EAE5D,GAAG;AAAA,IACDA;AAAA,IACAuC;AAAA,IACA5C;AAAA,IACAyD;AAAA,IACAC;AAAA,EAAA,CACD;AAED,QAAMS,KAAe,CAACrC,MAAc;AAClC,IAAI1F,EAAiB0F,CAAM,MAC3BM,EAAWH,EAASH,CAAM,GAAGA,CAAM,GACnC8B,EAAA,GACA9D,EAAS,SAAS,MAAA;AAAA,EACpB,GAEMsE,KAAmB,CAACC,MAAsB;AAC9C,QAAI,CAACzB,EAAgB,OAAQ;AAC7B,QAAI0B,IAAYjE;AAChB;AACE,MAAAiE,KACGA,IAAYD,IAAYzB,EAAgB,UACzCA,EAAgB;AAAA,WAElBxG,EAAiBwG,EAAgB0B,CAAS,CAAC,KAC3CA,MAAcjE;AAEhB,IAAAC,EAAegE,CAAS;AAAA,EAC1B,GAEMC,IAAmB,CAACC,IAAU,OAAU;AAC5C,UAAMC,IAAU7B,EAAgB,IAAI,CAACd,GAAQ4C,OAAW,EAAE,QAAA5C,GAAQ,OAAA4C,EAAA,EAAQ;AAC1E,WAAIF,OAAiB,QAAA,GACdC,EAAQ,KAAK,CAAC,EAAE,QAAA3C,EAAA,MAAa,CAAC1F,EAAiB0F,CAAM,CAAC,GAAG,SAAS;AAAA,EAC3E,GAEM6C,KAAgB,CAACV,MAA2C;AAChE,QACEA,EAAM,QAAQ,eACd,CAAC9D,KACDgC,MAAoB,QACpB7F,IACA;AACA,MAAA2H,EAAM,eAAA,GACNH,EAAA;AACA;AAAA,IACF;AAEA,QAAIG,EAAM,QAAQ,eAAeA,EAAM,QAAQ;AAC7C,MAAAA,EAAM,eAAA,GACDjE,IAIHoE,GAAiBH,EAAM,QAAQ,cAAc,IAAI,EAAE,KAHnDJ,EAAA,GACAvD,EAAeiE,EAAiBN,EAAM,QAAQ,SAAS,CAAC;AAAA,aAIjDA,EAAM,QAAQ,UAAUjE;AACjC,MAAAiE,EAAM,eAAA,GACN3D,EAAeiE,GAAkB;AAAA,aACxBN,EAAM,QAAQ,SAASjE;AAChC,MAAAiE,EAAM,eAAA,GACN3D,EAAeiE,EAAiB,EAAI,CAAC;AAAA,aAC5BN,EAAM,QAAQ,WAAWjE,GAAQ;AAC1C,MAAAiE,EAAM,eAAA;AACN,YAAMW,IAAehC,EAAgBvC,CAAW;AAChD,MAAIuE,QAA2BA,CAAY;AAAA,IAC7C,MAAA,CAAWX,EAAM,QAAQ,YAAYjE,KACnCiE,EAAM,eAAA,GACNL,EAAA,KACSK,EAAM,QAAQ,SACvBL,EAAA;AAAA,EAEJ,GAEMiB,KAAe,CAAC/C,GAAW4C,GAAeI,MAA0B;AACxE,UAAMrC,IAAWR,EAASH,CAAM,GAC1B5D,KAAW9B,EAAiB0F,CAAM;AACxC,WACE,gBAAAiD;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI,GAAGxF,CAAO,WAAWmF,CAAK;AAAA,QAE9B,MAAK;AAAA,QACL,iBAAejC,MAAaN;AAAA,QAC5B,iBAAejE;AAAAA,QACf,iBAAewG,IAAQ;AAAA,QACvB,gBAAc9B,EAAgB;AAAA,QAC9B,WAAWoC;AAAAA,UACT;AAAA,UACAN,MAAUrE,KAAe;AAAA,UACzBoC,MAAaN,KAAmB;AAAA,UAChCjE,MAAY;AAAA,UACZP,EAAW;AAAA,QAAA;AAAA,QAEb,OAAO,EAAE,GAAGmH,GAAO,GAAGlH,EAAO,OAAA;AAAA,QAC7B,cAAc,MAAM0C,EAAeoE,CAAK;AAAA,QACxC,aAAa,CAACT,OAAUA,GAAM,eAAA;AAAA,QAC9B,SAAS,MAAME,GAAarC,CAAM;AAAA,QAElC,UAAA;AAAA,UAAA,gBAAAmD,EAAC,QAAA,EAAM,UAAArD,EAASE,CAAM,EAAA,CAAE;AAAA,UACvBW,MAAaN,KAAmB,gBAAA8C,EAAC,QAAA,EAAK,eAAY,QAAO,UAAA,IAAA,CAAC;AAAA,QAAA;AAAA,MAAA;AAAA,MAnBtDxC;AAAA,IAAA;AAAA,EAsBX,GAEMyC,KAAchE,IAClB,gBAAA6D;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWC,EAAgB,0BAA0BrH,EAAW,OAAO;AAAA,MACvE,OAAOC,EAAO;AAAA,MAEd,UAAA;AAAA,QAAA,gBAAAqH,EAAC,QAAA,EAAK,WAAU,0BAAyB,eAAY,QAAO;AAAA,QAC3DzD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAEDb,KACF,gBAAAsE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAWD,EAAgB,uDAAuDrH,EAAW,OAAO;AAAA,MACpG,OAAOC,EAAO;AAAA,MAEb,UAAAb;AAAA,IAAA;AAAA,EAAA,IAED6F,EAAgB,WAAW,IAC7B,gBAAAqC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWD,EAAgB,0BAA0BrH,EAAW,OAAO;AAAA,MACvE,OAAOC,EAAO;AAAA,MAEb,UAAA2D;AAAA,IAAA;AAAA,EAAA,IAEDkC,IACF,gBAAAwB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA,MACV,OAAO,EAAE,QAAQvB,EAAY,eAAa;AAAA,MAEzC,UAAAA,EAAY,kBAAkB;AAAA,QAAI,CAACyB,MAClCN,GAAajC,EAAgBuC,EAAW,KAAK,GAAGA,EAAW,OAAO;AAAA,UAChE,UAAU;AAAA,UACV,KAAK;AAAA,UACL,MAAM;AAAA,UACN,OAAO;AAAA,UACP,QAAQA,EAAW;AAAA,UACnB,WAAW,cAAcA,EAAW,KAAK;AAAA,QAAA,CAC1C;AAAA,MAAA;AAAA,IACH;AAAA,EAAA,IAGFvC,EAAgB,IAAI,CAACd,GAAQ4C,MAAUG,GAAa/C,GAAQ4C,CAAK,CAAC,GAG9DU,KAAOpF,IACX,gBAAAiF;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK,CAACI,MAAS;AACb,QAAAtF,EAAQ,UAAUsF,GAClBvC,GAAK,YAAYuC,CAAI;AAAA,MACvB;AAAA,MACA,IAAI5F;AAAA,MACJ,MAAK;AAAA,MACL,mBAAiBD;AAAA,MACjB,WAAWwF;AAAAA,QACT;AAAA,QACA1H,KAAoB;AAAA,QACpBK,EAAW;AAAA,MAAA;AAAA,MAEb,OAAO,EAAE,GAAGoF,IAAgB,GAAGnF,EAAO,KAAA;AAAA,MAErC,UAAAsH;AAAA,IAAA;AAAA,EAAA,IAED,MAEEI,KAAcxI,IAAe4C,KAAY7C,KAAO8C,KAAS;AAE/D,SAAKlB,KAGH,gBAAAsG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKnF;AAAA,MACL,WAAWoF;AAAAA,QACT;AAAA,QACA,gBAAgBlG,EAAI;AAAA,QACpB,yBAAyBA,EAAI;AAAA,QAC7BpB;AAAA,QACAC,EAAW;AAAA,MAAA;AAAA,MAEb,OAAOC,EAAO;AAAA,MAEd,UAAA;AAAA,QAAA,gBAAAmH;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAIvF;AAAA,YACJ,SAASD;AAAA,YACT,WAAWyF,EAAgBrH,EAAW,OAAOkB,EAAc;AAAA,YAC3D,OAAOjB,EAAO;AAAA,YAEb,UAAA;AAAA,cAAA/B;AAAA,cACAwF,KAAqB,gBAAA4D,EAAC,QAAA,EAAK,eAAY,QAAO,UAAA,KAAA,CAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAEnD,gBAAAF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAKjC,GAAK;AAAA,YACV,WAAWkC;AAAAA,cACT;AAAA,cACAhF,KAAU;AAAA,cACVmB,KAAqB;AAAA,cACrB,EAAQrE,KAAiB;AAAA,cACzBa,EAAW;AAAA,YAAA;AAAA,YAEb,OAAOC,EAAO;AAAA,YAEd,UAAA;AAAA,cAAA,gBAAAqH;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,KAAKnF;AAAA,kBACL,IAAIP;AAAA,kBACJ,MAAK;AAAA,kBACL,iBAAeS;AAAA,kBACf,iBAAeP;AAAA,kBACf,qBAAkB;AAAA,kBAClB,yBACEO,KAAU4C,EAAgBvC,CAAW,IACjC,GAAGd,CAAO,WAAWc,CAAW,KAChC;AAAA,kBAEN,oBAAkBiF;AAAA,kBAClB,gBAAc,EAAQxI;AAAA,kBACtB,iBAAeL;AAAA,kBACf,aAAWyE;AAAA,kBACX,UAAUG;AAAA,kBACV,UAAUF;AAAA,kBACV,UAAUC,KAAqB,CAACjD;AAAA,kBAChC,WAAAH;AAAA,kBACA,cAAa;AAAA,kBACb,aAAasD;AAAA,kBACb,OAAOnB,KAAcwC;AAAA,kBACrB,WAAWqC,EAAgBrH,EAAW,OAAOiB,IAAgBX,EAAe;AAAA,kBAC5E,OAAOL,EAAO;AAAA,kBACd,UAAU,CAACqG,MAAU;AACnB,0BAAMsB,IAAY5G,KACdsF,EAAM,OAAO,MAAM;AAAA,sBACjBhF,EAAS,UAAU;AAAA,oBAAA,IAErBgF,EAAM,OAAO;AACjB,oBAAA7D,EAAcmF,CAAS,GACvBjF,EAAe,CAAC,GAChBzC,IAAgB0H,CAAS,GACzB1B,EAAA;AAAA,kBACF;AAAA,kBACA,SAASA;AAAA,kBACT,SAAS,CAACI,MAAU;AAClB,oBAAAJ,EAAA,GACInB,KAAkB,CAACvC,KAAY8D,EAAM,cAAc,OAAA;AAAA,kBACzD;AAAA,kBACA,QAAA1F;AAAA,kBACA,WAAWoG;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEZzD,KAAW,gBAAA+D,EAAC,QAAA,EAAK,WAAU,0BAAyB,eAAY,QAAO;AAAA,cACvE3I,MAAe6F,MAAoB,QAAQ,CAAChB,KAAqB,CAACC,KACjE,gBAAA6D;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,WAAWD,EAAgB,wBAAwBrH,EAAW,WAAW;AAAA,kBACzE,OAAOC,EAAO;AAAA,kBACd,cAAY6D;AAAA,kBACZ,SAASqC;AAAA,kBACV,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,cAIH,gBAAAmB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,WAAWD,EAAgB,yBAAyBrH,EAAW,YAAY;AAAA,kBAC3E,OAAOC,EAAO;AAAA,kBACd,cAAYoC,IAAS2B,KAAqBD;AAAA,kBAC1C,iBAAe1B;AAAA,kBACf,UAAUmB;AAAA,kBACV,UAAU;AAAA,kBACV,SAAS,MAAOnB,IAAS4D,EAAA,IAAcC,EAAA;AAAA,kBAEvC,UAAA,gBAAAoB;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,eAAY;AAAA,sBACZ,SAAQ;AAAA,sBACR,OAAM;AAAA,sBACN,QAAO;AAAA,sBACP,MAAK;AAAA,sBAEL,UAAA,gBAAAA;AAAA,wBAAC;AAAA,wBAAA;AAAA,0BACC,GAAE;AAAA,0BACF,QAAO;AAAA,0BACP,aAAY;AAAA,0BACZ,eAAc;AAAA,0BACd,gBAAe;AAAA,wBAAA;AAAA,sBAAA;AAAA,oBACjB;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,QAGDrJ,MACC,gBAAAqJ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,MAAArJ;AAAA,YACA,OAAOuG,KAAmB;AAAA,YAC1B,UAAUd;AAAA,UAAA;AAAA,QAAA;AAAA,QAGd,gBAAA4D;AAAA,UAACO;AAAA,UAAA;AAAA,YACC,MAAA3I;AAAA,YACA,cAAcyB,MAAe,OAAO,SAAYxB;AAAA,YAChD,QAAA6C;AAAA,YACA,SAASD;AAAA,UAAA;AAAA,QAAA;AAAA,QAGVpC,KAAoB8H,KACjBK,GAAaL,IAAM9H,CAAgB,IACnC8H;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,IAvIY;AA0ItB;AAEA,MAAMM,KAASC,GAAWjK,EAAW;"}
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/Select/Select.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ForwardedRef,\n type KeyboardEvent,\n type ReactNode,\n} from 'react'\nimport {\n autoUpdate,\n flip,\n offset,\n shift,\n size as floatingSize,\n useFloating,\n} from '@floating-ui/react'\nimport { useVirtualizer } from '@tanstack/react-virtual'\nimport { createPortal } from 'react-dom'\nimport { useInconelAdapters } from '../../adapters'\nimport { classNames as mergeClassNames } from '../shared/classNames'\nimport '../shared/field.css'\nimport '../shared/field-controls.css'\nimport '../shared/sizes.css'\nimport type { ControlSize } from '../shared/types'\nimport './styles.css'\n\nimport FieldFeedback from '../FieldFeedback/FieldFeedback'\nimport type { FieldFeedbackContentProps } from '../FieldFeedback/FieldFeedback'\n\nexport type OptionValue = string | number\n\nexport interface SelectHandle {\n focus: () => void\n blur: () => void\n clear: () => void\n}\n\ntype SelectPart =\n | 'root'\n | 'label'\n | 'control'\n | 'input'\n | 'clearButton'\n | 'toggleButton'\n | 'menu'\n | 'option'\n | 'message'\n\nexport type SelectClassNames = Partial<Record<SelectPart, string>>\nexport type SelectStyles = Partial<Record<SelectPart, CSSProperties>>\n\nexport interface SelectProps<T extends object> extends FieldFeedbackContentProps {\n id?: string\n name?: string\n label?: ReactNode\n options?: T[]\n value?: OptionValue | T | null\n onChange?:\n | ((value: OptionValue | null, option: T | null) => void)\n | ((option: T | null) => void)\n optionLabel?: keyof T | ((option: T) => ReactNode)\n optionValue?: keyof T | ((option: T) => OptionValue)\n getOptionSearchText?: (option: T) => string\n isOptionDisabled?: (option: T) => boolean\n placeholder?: string\n isClearable?: boolean\n isDisabled?: boolean\n isReadOnly?: boolean\n isRequired?: boolean\n isLoading?: boolean\n loadOptions?: (inputValue: string, signal: AbortSignal) => Promise<T[]>\n loadOptionsDebounceMs?: number\n asyncErrorMessage?: ReactNode\n loadingMessage?: ReactNode\n noOptionsMessage?: ReactNode\n clearButtonLabel?: string\n openMenuButtonLabel?: string\n closeMenuButtonLabel?: string\n searchLocale?: string\n menuPortalTarget?: HTMLElement | null\n virtualize?: boolean\n virtualizationThreshold?: number\n optionHeight?: number\n className?: string\n classNames?: SelectClassNames\n styles?: SelectStyles\n onInputChange?: (value: string) => void\n onMenuOpen?: () => void\n onMenuClose?: () => void\n autoFocus?: boolean\n selectClassName?: string\n disabled?: boolean\n isSearchable?: boolean\n readOnly?: boolean\n defaultValue?: OptionValue | T | null\n errorPlace?: 'in' | 'out' | string\n onBlur?: () => void\n setFieldValue?: OptionValue | string | null\n render?: boolean\n singleValue?: boolean\n sortByUppercase?: boolean\n selectClassNamePrefix?: string\n menuPlacement?: 'auto' | 'bottom' | 'top'\n maxMenuHeight?: number\n inputClassName?: string\n labelClassName?: string\n size?: ControlSize\n required?: boolean\n components?: Record<string, unknown>\n}\n\nfunction SelectInner<T extends object>(\n {\n id,\n name,\n label,\n options = [],\n value,\n onChange,\n optionLabel = 'label' as keyof T,\n optionValue = 'value' as keyof T,\n getOptionSearchText,\n isOptionDisabled = () => false,\n placeholder,\n isClearable = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n isLoading = false,\n loadOptions,\n loadOptionsDebounceMs = 250,\n hint,\n errorMessage,\n asyncErrorMessage,\n loadingMessage,\n noOptionsMessage,\n clearButtonLabel,\n openMenuButtonLabel,\n closeMenuButtonLabel,\n searchLocale,\n menuPortalTarget,\n virtualize = false,\n virtualizationThreshold = 100,\n optionHeight = 44,\n className,\n classNames = {},\n styles = {},\n onInputChange,\n onMenuOpen,\n onMenuClose,\n autoFocus,\n selectClassName,\n disabled,\n isSearchable = true,\n readOnly,\n defaultValue,\n errorPlace,\n onBlur,\n setFieldValue,\n render = true,\n singleValue,\n sortByUppercase,\n inputClassName,\n labelClassName,\n size = 'md',\n required,\n }: SelectProps<T>,\n forwardedRef: ForwardedRef<SelectHandle>,\n) {\n const adapters = useInconelAdapters()\n const legacyMode =\n singleValue !== undefined ||\n selectClassName !== undefined ||\n errorPlace !== undefined\n const controlledValue = value ?? setFieldValue ?? defaultValue ?? null\n const generatedId = useId()\n const inputId = id ?? `inconel-select-${generatedId.replace(/:/g, '')}`\n const labelId = `${inputId}-label`\n const listboxId = `${inputId}-listbox`\n const messageId = `${inputId}-message`\n const hintId = `${inputId}-hint`\n const rootRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const menuRef = useRef<HTMLDivElement>(null)\n const [isOpen, setIsOpen] = useState(false)\n const [inputValue, setInputValue] = useState('')\n const [activeIndex, setActiveIndex] = useState(0)\n const [asyncOptions, setAsyncOptions] = useState<T[] | null>(null)\n const [isAsyncLoading, setIsAsyncLoading] = useState(false)\n const [hasAsyncError, setHasAsyncError] = useState(false)\n\n useEffect(() => {\n if (!loadOptions) return\n const controller = new AbortController()\n const timeout = window.setTimeout(async () => {\n setIsAsyncLoading(true)\n setHasAsyncError(false)\n try {\n const loadedOptions = await loadOptions(\n inputValue,\n controller.signal,\n )\n if (!controller.signal.aborted) setAsyncOptions(loadedOptions)\n } catch {\n if (!controller.signal.aborted) setHasAsyncError(true)\n } finally {\n if (!controller.signal.aborted) setIsAsyncLoading(false)\n }\n }, loadOptionsDebounceMs)\n\n return () => {\n window.clearTimeout(timeout)\n controller.abort()\n }\n }, [inputValue, loadOptions, loadOptionsDebounceMs])\n\n const availableOptions = loadOptions\n ? (asyncOptions ?? options)\n : options\n const loading = isLoading || isAsyncLoading\n const componentDisabled = isDisabled || Boolean(disabled)\n const componentReadOnly = isReadOnly || Boolean(readOnly)\n const componentRequired = isRequired || Boolean(required)\n const resolvedPlaceholder =\n (errorPlace === 'in' && errorMessage\n ? String(errorMessage)\n : placeholder) ??\n String(adapters.translate?.('select', 'Seçim yapın...') ?? 'Seçim yapın...')\n const resolvedNoOptionsMessage =\n noOptionsMessage ??\n adapters.translate?.('noData', 'Sonuç bulunamadı.') ??\n 'Sonuç bulunamadı.'\n const resolvedLoadingMessage =\n loadingMessage ??\n adapters.translate?.('loading', 'Yükleniyor...') ??\n 'Yükleniyor...'\n const resolvedClearLabel =\n clearButtonLabel ??\n String(adapters.translate?.('clearSelection', 'Seçimi temizle') ?? 'Seçimi temizle')\n const resolvedOpenLabel =\n openMenuButtonLabel ??\n String(adapters.translate?.('openOptions', 'Seçenekleri aç') ?? 'Seçenekleri aç')\n const resolvedCloseLabel =\n closeMenuButtonLabel ??\n String(adapters.translate?.('closeOptions', 'Seçenekleri kapat') ?? 'Seçenekleri kapat')\n\n const getLabel = useCallback(\n (option: T): ReactNode =>\n typeof optionLabel === 'function'\n ? optionLabel(option)\n : String(option[optionLabel]),\n [optionLabel],\n )\n\n const getSearchLabel = useCallback(\n (option: T) => {\n if (getOptionSearchText) return getOptionSearchText(option)\n const renderedLabel = getLabel(option)\n return typeof renderedLabel === 'string' ||\n typeof renderedLabel === 'number'\n ? String(renderedLabel)\n : ''\n },\n [getLabel, getOptionSearchText],\n )\n\n const getValue = useCallback(\n (option: T): OptionValue => {\n const resolvedValue =\n typeof optionValue === 'function'\n ? optionValue(option)\n : option[optionValue]\n\n if (\n typeof resolvedValue !== 'string' &&\n typeof resolvedValue !== 'number'\n ) {\n throw new TypeError('optionValue must resolve to a string or number.')\n }\n return resolvedValue\n },\n [optionValue],\n )\n\n const normalizedValue =\n controlledValue && typeof controlledValue === 'object'\n ? getValue(controlledValue as T)\n : (controlledValue as OptionValue | null)\n\n const emitChange = useCallback(\n (nextValue: OptionValue | null, option: T | null) => {\n if (!onChange) return\n if (legacyMode) {\n ;(onChange as (selected: T | null) => void)(option)\n } else {\n ;(\n onChange as (\n value: OptionValue | null,\n selected: T | null,\n ) => void\n )(nextValue, option)\n }\n },\n [legacyMode, onChange],\n )\n\n const duplicateValues = useMemo(() => {\n const seen = new Set<OptionValue>()\n return availableOptions\n .map(getValue)\n .filter((optionId) => {\n if (seen.has(optionId)) return true\n seen.add(optionId)\n return false\n })\n }, [availableOptions, getValue])\n\n useEffect(() => {\n if (duplicateValues.length) {\n console.warn(\n `Duplicate optionValue found in Select \"${label}\":`,\n duplicateValues,\n )\n }\n }, [duplicateValues, label])\n\n const selectedOption = [...options, ...availableOptions].find(\n (option) => getValue(option) === normalizedValue,\n )\n const selectedLabel = selectedOption ? getSearchLabel(selectedOption) : ''\n\n const filteredOptions = useMemo(() => {\n const query = inputValue.trim().toLocaleLowerCase(searchLocale)\n if (!query || loadOptions) return availableOptions\n return availableOptions.filter((option) =>\n getSearchLabel(option).toLocaleLowerCase(searchLocale).includes(query),\n )\n }, [availableOptions, getSearchLabel, inputValue, loadOptions, searchLocale])\n\n const { refs, floatingStyles } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n strategy: menuPortalTarget ? 'fixed' : 'absolute',\n whileElementsMounted: autoUpdate,\n middleware: [\n offset(8),\n flip({ padding: 12 }),\n shift({ padding: 12 }),\n floatingSize({\n padding: 12,\n apply({ availableHeight, rects, elements }) {\n Object.assign(elements.floating.style, {\n maxHeight: `${Math.min(230, availableHeight)}px`,\n width: `${rects.reference.width}px`,\n })\n },\n }),\n ],\n })\n\n const shouldVirtualize =\n virtualize || filteredOptions.length >= virtualizationThreshold\n const virtualizer = useVirtualizer({\n count: filteredOptions.length,\n getScrollElement: () => menuRef.current,\n estimateSize: () => optionHeight,\n overscan: 5,\n enabled: shouldVirtualize && isOpen,\n })\n\n const closeMenu = useCallback(() => {\n setIsOpen(false)\n setInputValue('')\n onInputChange?.('')\n onMenuClose?.()\n }, [onInputChange, onMenuClose])\n\n const openMenu = () => {\n if (componentDisabled || componentReadOnly) return\n if (!isOpen) onMenuOpen?.()\n setIsOpen(true)\n }\n\n const clearSelection = useCallback(() => {\n if (componentDisabled || componentReadOnly) return\n emitChange(null, null)\n setInputValue('')\n setActiveIndex(0)\n onInputChange?.('')\n inputRef.current?.focus()\n }, [componentDisabled, componentReadOnly, emitChange, onInputChange])\n\n useImperativeHandle(\n forwardedRef,\n () => ({\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n clear: clearSelection,\n }),\n [clearSelection],\n )\n\n useEffect(() => {\n const closeOnOutsideClick = (event: MouseEvent) => {\n const target = event.target as Node\n if (\n !rootRef.current?.contains(target) &&\n !menuRef.current?.contains(target)\n ) {\n closeMenu()\n }\n }\n\n document.addEventListener('mousedown', closeOnOutsideClick)\n return () => document.removeEventListener('mousedown', closeOnOutsideClick)\n }, [closeMenu])\n\n useEffect(() => {\n if (activeIndex >= filteredOptions.length) setActiveIndex(0)\n }, [activeIndex, filteredOptions.length])\n\n useEffect(() => {\n if (shouldVirtualize && isOpen && filteredOptions[activeIndex]) {\n virtualizer.scrollToIndex(activeIndex, { align: 'auto' })\n }\n }, [\n activeIndex,\n filteredOptions,\n isOpen,\n shouldVirtualize,\n virtualizer,\n ])\n\n const selectOption = (option: T) => {\n if (isOptionDisabled(option)) return\n emitChange(getValue(option), option)\n closeMenu()\n inputRef.current?.focus()\n }\n\n const moveActiveOption = (direction: 1 | -1) => {\n if (!filteredOptions.length) return\n let nextIndex = activeIndex\n do {\n nextIndex =\n (nextIndex + direction + filteredOptions.length) %\n filteredOptions.length\n } while (\n isOptionDisabled(filteredOptions[nextIndex]) &&\n nextIndex !== activeIndex\n )\n setActiveIndex(nextIndex)\n }\n\n const findEnabledIndex = (fromEnd = false) => {\n const entries = filteredOptions.map((option, index) => ({ option, index }))\n if (fromEnd) entries.reverse()\n return entries.find(({ option }) => !isOptionDisabled(option))?.index ?? 0\n }\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (\n event.key === 'Backspace' &&\n !inputValue &&\n normalizedValue !== null &&\n isClearable\n ) {\n event.preventDefault()\n clearSelection()\n return\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault()\n if (!isOpen) {\n openMenu()\n setActiveIndex(findEnabledIndex(event.key === 'ArrowUp'))\n } else {\n moveActiveOption(event.key === 'ArrowDown' ? 1 : -1)\n }\n } else if (event.key === 'Home' && isOpen) {\n event.preventDefault()\n setActiveIndex(findEnabledIndex())\n } else if (event.key === 'End' && isOpen) {\n event.preventDefault()\n setActiveIndex(findEnabledIndex(true))\n } else if (event.key === 'Enter' && isOpen) {\n event.preventDefault()\n const activeOption = filteredOptions[activeIndex]\n if (activeOption) selectOption(activeOption)\n } else if (event.key === 'Escape' && isOpen) {\n event.preventDefault()\n closeMenu()\n } else if (event.key === 'Tab') {\n closeMenu()\n }\n }\n\n const renderOption = (option: T, index: number, style?: CSSProperties) => {\n const optionId = getValue(option)\n const disabled = isOptionDisabled(option)\n return (\n <div\n id={`${inputId}-option-${index}`}\n key={optionId}\n role=\"option\"\n aria-selected={optionId === normalizedValue}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n aria-setsize={filteredOptions.length}\n className={mergeClassNames(\n 'inconel-select-option',\n index === activeIndex && 'inconel-is-active',\n optionId === normalizedValue && 'inconel-is-selected',\n disabled && 'inconel-is-disabled',\n classNames.option,\n )}\n style={{ ...style, ...styles.option }}\n onMouseEnter={() => setActiveIndex(index)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => selectOption(option)}\n >\n <span>{getLabel(option)}</span>\n {optionId === normalizedValue && <span aria-hidden=\"true\">✓</span>}\n </div>\n )\n }\n\n const menuContent = loading ? (\n <div\n role=\"status\"\n className={mergeClassNames('inconel-select-message', classNames.message)}\n style={styles.message}\n >\n <span className=\"inconel-select-spinner\" aria-hidden=\"true\" />\n {resolvedLoadingMessage}\n </div>\n ) : hasAsyncError ? (\n <div\n role=\"alert\"\n className={mergeClassNames('inconel-select-message inconel-select-message-error', classNames.message)}\n style={styles.message}\n >\n {asyncErrorMessage}\n </div>\n ) : filteredOptions.length === 0 ? (\n <div\n className={mergeClassNames('inconel-select-message', classNames.message)}\n style={styles.message}\n >\n {resolvedNoOptionsMessage}\n </div>\n ) : shouldVirtualize ? (\n <div\n role=\"presentation\"\n className=\"inconel-select-virtual-content\"\n style={{ height: virtualizer.getTotalSize() }}\n >\n {virtualizer.getVirtualItems().map((virtualRow) =>\n renderOption(filteredOptions[virtualRow.index], virtualRow.index, {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: virtualRow.size,\n transform: `translateY(${virtualRow.start}px)`,\n }),\n )}\n </div>\n ) : (\n filteredOptions.map((option, index) => renderOption(option, index))\n )\n\n const menu = isOpen ? (\n <div\n ref={(node) => {\n menuRef.current = node\n refs.setFloating(node)\n }}\n id={listboxId}\n role=\"listbox\"\n aria-labelledby={label ? labelId : undefined}\n className={mergeClassNames(\n 'inconel-select-menu',\n menuPortalTarget && 'inconel-select-menu-portal',\n classNames.menu,\n )}\n style={{ ...floatingStyles, ...styles.menu }}\n >\n {menuContent}\n </div>\n ) : null\n\n const describedBy = errorMessage ? messageId : hint ? hintId : undefined\n\n if (!render) return null\n\n return (\n <div\n ref={rootRef}\n className={mergeClassNames(\n 'inconel-select-field',\n `inconel-size-${size}`,\n `inconel-select-field--${size}`,\n className,\n classNames.root,\n )}\n style={styles.root}\n >\n {label && (\n <label\n id={labelId}\n htmlFor={inputId}\n className={mergeClassNames(classNames.label, labelClassName)}\n style={styles.label}\n >\n {label}\n {componentRequired && <span aria-hidden=\"true\"> *</span>}\n </label>\n )}\n <div\n ref={refs.setReference}\n className={mergeClassNames(\n 'inconel-select-control',\n isOpen && 'inconel-is-open',\n componentDisabled && 'inconel-is-disabled',\n Boolean(errorMessage) && 'inconel-has-error',\n classNames.control,\n )}\n style={styles.control}\n >\n <input\n ref={inputRef}\n id={inputId}\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-autocomplete=\"list\"\n aria-activedescendant={\n isOpen && filteredOptions[activeIndex]\n ? `${inputId}-option-${activeIndex}`\n : undefined\n }\n aria-describedby={describedBy}\n aria-invalid={Boolean(errorMessage)}\n aria-required={isRequired}\n aria-busy={loading}\n required={componentRequired}\n disabled={componentDisabled}\n readOnly={componentReadOnly || !isSearchable}\n autoFocus={autoFocus}\n autoComplete=\"off\"\n placeholder={resolvedPlaceholder}\n value={inputValue || selectedLabel}\n className={mergeClassNames(classNames.input, inputClassName, selectClassName)}\n style={styles.input}\n onChange={(event) => {\n const nextInput = sortByUppercase\n ? event.target.value.toLocaleUpperCase(\n adapters.locale ?? 'tr-TR',\n )\n : event.target.value\n setInputValue(nextInput)\n setActiveIndex(0)\n onInputChange?.(nextInput)\n openMenu()\n }}\n onClick={openMenu}\n onFocus={(event) => {\n openMenu()\n if (selectedOption && !inputValue) event.currentTarget.select()\n }}\n onBlur={onBlur}\n onKeyDown={handleKeyDown}\n />\n {loading && <span className=\"inconel-select-spinner\" aria-hidden=\"true\" />}\n {isClearable && normalizedValue !== null && !componentDisabled && !componentReadOnly && (\n <button\n type=\"button\"\n className={mergeClassNames('inconel-select-clear', classNames.clearButton)}\n style={styles.clearButton}\n aria-label={resolvedClearLabel}\n onClick={clearSelection}\n >\n ×\n </button>\n )}\n <button\n type=\"button\"\n className={mergeClassNames('inconel-select-toggle', classNames.toggleButton)}\n style={styles.toggleButton}\n aria-label={isOpen ? resolvedCloseLabel : resolvedOpenLabel}\n aria-expanded={isOpen}\n disabled={componentDisabled}\n tabIndex={-1}\n onClick={() => (isOpen ? closeMenu() : openMenu())}\n >\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n >\n <path\n d=\"m5 7.5 5 5 5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.75\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n\n {name && (\n <input\n type=\"hidden\"\n name={name}\n value={normalizedValue ?? ''}\n required={componentRequired}\n />\n )}\n <FieldFeedback\n hint={hint}\n errorMessage={errorPlace === 'in' ? undefined : errorMessage}\n hintId={hintId}\n errorId={messageId}\n />\n\n {menuPortalTarget && menu\n ? createPortal(menu, menuPortalTarget)\n : menu}\n </div>\n )\n}\n\nconst Select = forwardRef(SelectInner) as <T extends object>(\n props: SelectProps<T> & { ref?: ForwardedRef<SelectHandle> },\n) => ReactNode\n\nexport default Select\n"],"names":["SelectInner","id","name","label","options","value","onChange","optionLabel","optionValue","getOptionSearchText","isOptionDisabled","placeholder","isClearable","isDisabled","isReadOnly","isRequired","isLoading","loadOptions","loadOptionsDebounceMs","hint","errorMessage","asyncErrorMessage","loadingMessage","noOptionsMessage","clearButtonLabel","openMenuButtonLabel","closeMenuButtonLabel","searchLocale","menuPortalTarget","virtualize","virtualizationThreshold","optionHeight","className","classNames","styles","onInputChange","onMenuOpen","onMenuClose","autoFocus","selectClassName","disabled","isSearchable","readOnly","defaultValue","errorPlace","onBlur","setFieldValue","render","singleValue","sortByUppercase","inputClassName","labelClassName","size","required","forwardedRef","adapters","useInconelAdapters","legacyMode","controlledValue","generatedId","useId","inputId","labelId","listboxId","messageId","hintId","rootRef","useRef","inputRef","menuRef","isOpen","setIsOpen","useState","inputValue","setInputValue","activeIndex","setActiveIndex","asyncOptions","setAsyncOptions","isAsyncLoading","setIsAsyncLoading","hasAsyncError","setHasAsyncError","useEffect","controller","timeout","loadedOptions","availableOptions","loading","componentDisabled","componentReadOnly","componentRequired","resolvedPlaceholder","resolvedNoOptionsMessage","resolvedLoadingMessage","resolvedClearLabel","resolvedOpenLabel","resolvedCloseLabel","getLabel","useCallback","option","getSearchLabel","renderedLabel","getValue","resolvedValue","normalizedValue","emitChange","nextValue","duplicateValues","useMemo","seen","optionId","selectedOption","selectedLabel","filteredOptions","query","refs","floatingStyles","useFloating","autoUpdate","offset","flip","shift","floatingSize","availableHeight","rects","elements","shouldVirtualize","virtualizer","useVirtualizer","closeMenu","openMenu","clearSelection","useImperativeHandle","closeOnOutsideClick","event","target","selectOption","moveActiveOption","direction","nextIndex","findEnabledIndex","fromEnd","entries","index","handleKeyDown","activeOption","renderOption","style","jsxs","mergeClassNames","jsx","menuContent","virtualRow","menu","node","describedBy","nextInput","FieldFeedback","createPortal","Select","forwardRef"],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ export * from './DatePicker';
|
|
|
9
9
|
export * from './DndFileUpload';
|
|
10
10
|
export * from './DotLoader';
|
|
11
11
|
export * from './DragDropUpload';
|
|
12
|
+
export * from './DropDownBox';
|
|
12
13
|
export * from './ExcelTable';
|
|
13
14
|
export * from './FieldFeedback';
|
|
14
15
|
export * from './FileUpload';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,2BAA2B,CAAA;AACzC,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,2BAA2B,CAAA;AACzC,cAAc,UAAU,CAAA;AACxB,cAAc,kBAAkB,CAAA;AAChC,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type ControlSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1
|
+
export type ControlSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
2
2
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/shared/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/shared/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA"}
|