@keenmate/web-multiselect 1.12.0-rc06 → 1.12.0-rc07
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/README.md +6 -13
- package/dist/index.d.ts +22 -2
- package/dist/multiselect.js +382 -356
- package/dist/multiselect.umd.js +11 -11
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/css/options.css +4 -0
package/dist/multiselect.js
CHANGED
|
@@ -13,7 +13,7 @@ const he = Math.min, X = Math.max, me = Math.round, ce = Math.floor, F = (o) =>
|
|
|
13
13
|
start: "end",
|
|
14
14
|
end: "start"
|
|
15
15
|
};
|
|
16
|
-
function
|
|
16
|
+
function $e(o, e, t) {
|
|
17
17
|
return X(o, he(e, t));
|
|
18
18
|
}
|
|
19
19
|
function be(o, e) {
|
|
@@ -46,17 +46,17 @@ function xt(o, e, t) {
|
|
|
46
46
|
}
|
|
47
47
|
function Ct(o) {
|
|
48
48
|
const e = pe(o);
|
|
49
|
-
return [
|
|
49
|
+
return [xe(o), e, xe(e)];
|
|
50
50
|
}
|
|
51
|
-
function
|
|
51
|
+
function xe(o) {
|
|
52
52
|
return o.replace(/start|end/g, (e) => yt[e]);
|
|
53
53
|
}
|
|
54
|
-
const
|
|
54
|
+
const Re = ["left", "right"], Fe = ["right", "left"], St = ["top", "bottom"], Tt = ["bottom", "top"];
|
|
55
55
|
function It(o, e, t) {
|
|
56
56
|
switch (o) {
|
|
57
57
|
case "top":
|
|
58
58
|
case "bottom":
|
|
59
|
-
return t ? e ?
|
|
59
|
+
return t ? e ? Fe : Re : e ? Re : Fe;
|
|
60
60
|
case "left":
|
|
61
61
|
case "right":
|
|
62
62
|
return e ? St : Tt;
|
|
@@ -67,7 +67,7 @@ function It(o, e, t) {
|
|
|
67
67
|
function Mt(o, e, t, s) {
|
|
68
68
|
const i = ge(o);
|
|
69
69
|
let r = It(J(o), t === "start", s);
|
|
70
|
-
return i && (r = r.map((a) => a + "-" + i), e && (r = r.concat(r.map(
|
|
70
|
+
return i && (r = r.map((a) => a + "-" + i), e && (r = r.concat(r.map(xe)))), r;
|
|
71
71
|
}
|
|
72
72
|
function pe(o) {
|
|
73
73
|
return o.replace(/left|right|bottom|top/g, (e) => kt[e]);
|
|
@@ -107,53 +107,53 @@ function ue(o) {
|
|
|
107
107
|
y: t
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
|
-
function
|
|
110
|
+
function He(o, e, t) {
|
|
111
111
|
let {
|
|
112
112
|
reference: s,
|
|
113
113
|
floating: i
|
|
114
114
|
} = o;
|
|
115
|
-
const r = G(e), a = tt(e), n = et(a), l = J(e),
|
|
116
|
-
let
|
|
115
|
+
const r = G(e), a = tt(e), n = et(a), l = J(e), c = r === "y", d = s.x + s.width / 2 - i.width / 2, p = s.y + s.height / 2 - i.height / 2, u = s[n] / 2 - i[n] / 2;
|
|
116
|
+
let m;
|
|
117
117
|
switch (l) {
|
|
118
118
|
case "top":
|
|
119
|
-
|
|
120
|
-
x:
|
|
119
|
+
m = {
|
|
120
|
+
x: d,
|
|
121
121
|
y: s.y - i.height
|
|
122
122
|
};
|
|
123
123
|
break;
|
|
124
124
|
case "bottom":
|
|
125
|
-
|
|
126
|
-
x:
|
|
125
|
+
m = {
|
|
126
|
+
x: d,
|
|
127
127
|
y: s.y + s.height
|
|
128
128
|
};
|
|
129
129
|
break;
|
|
130
130
|
case "right":
|
|
131
|
-
|
|
131
|
+
m = {
|
|
132
132
|
x: s.x + s.width,
|
|
133
|
-
y:
|
|
133
|
+
y: p
|
|
134
134
|
};
|
|
135
135
|
break;
|
|
136
136
|
case "left":
|
|
137
|
-
|
|
137
|
+
m = {
|
|
138
138
|
x: s.x - i.width,
|
|
139
|
-
y:
|
|
139
|
+
y: p
|
|
140
140
|
};
|
|
141
141
|
break;
|
|
142
142
|
default:
|
|
143
|
-
|
|
143
|
+
m = {
|
|
144
144
|
x: s.x,
|
|
145
145
|
y: s.y
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
switch (ge(e)) {
|
|
149
149
|
case "start":
|
|
150
|
-
|
|
150
|
+
m[a] -= u * (t && c ? -1 : 1);
|
|
151
151
|
break;
|
|
152
152
|
case "end":
|
|
153
|
-
|
|
153
|
+
m[a] += u * (t && c ? -1 : 1);
|
|
154
154
|
break;
|
|
155
155
|
}
|
|
156
|
-
return
|
|
156
|
+
return m;
|
|
157
157
|
}
|
|
158
158
|
const Pt = async (o, e, t) => {
|
|
159
159
|
const {
|
|
@@ -162,14 +162,14 @@ const Pt = async (o, e, t) => {
|
|
|
162
162
|
middleware: r = [],
|
|
163
163
|
platform: a
|
|
164
164
|
} = t, n = r.filter(Boolean), l = await (a.isRTL == null ? void 0 : a.isRTL(e));
|
|
165
|
-
let
|
|
165
|
+
let c = await a.getElementRects({
|
|
166
166
|
reference: o,
|
|
167
167
|
floating: e,
|
|
168
168
|
strategy: i
|
|
169
169
|
}), {
|
|
170
|
-
x:
|
|
171
|
-
y:
|
|
172
|
-
} =
|
|
170
|
+
x: d,
|
|
171
|
+
y: p
|
|
172
|
+
} = He(c, s, l), u = s, m = {}, b = 0;
|
|
173
173
|
for (let v = 0; v < n.length; v++) {
|
|
174
174
|
const {
|
|
175
175
|
name: f,
|
|
@@ -180,40 +180,40 @@ const Pt = async (o, e, t) => {
|
|
|
180
180
|
data: w,
|
|
181
181
|
reset: M
|
|
182
182
|
} = await g({
|
|
183
|
-
x:
|
|
184
|
-
y:
|
|
183
|
+
x: d,
|
|
184
|
+
y: p,
|
|
185
185
|
initialPlacement: s,
|
|
186
186
|
placement: u,
|
|
187
187
|
strategy: i,
|
|
188
|
-
middlewareData:
|
|
189
|
-
rects:
|
|
188
|
+
middlewareData: m,
|
|
189
|
+
rects: c,
|
|
190
190
|
platform: a,
|
|
191
191
|
elements: {
|
|
192
192
|
reference: o,
|
|
193
193
|
floating: e
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
|
-
|
|
197
|
-
...
|
|
196
|
+
d = _ ?? d, p = y ?? p, m = {
|
|
197
|
+
...m,
|
|
198
198
|
[f]: {
|
|
199
|
-
...
|
|
199
|
+
...m[f],
|
|
200
200
|
...w
|
|
201
201
|
}
|
|
202
|
-
}, M && b <= 50 && (b++, typeof M == "object" && (M.placement && (u = M.placement), M.rects && (
|
|
202
|
+
}, M && b <= 50 && (b++, typeof M == "object" && (M.placement && (u = M.placement), M.rects && (c = M.rects === !0 ? await a.getElementRects({
|
|
203
203
|
reference: o,
|
|
204
204
|
floating: e,
|
|
205
205
|
strategy: i
|
|
206
206
|
}) : M.rects), {
|
|
207
|
-
x:
|
|
208
|
-
y:
|
|
209
|
-
} =
|
|
207
|
+
x: d,
|
|
208
|
+
y: p
|
|
209
|
+
} = He(c, u, l)), v = -1);
|
|
210
210
|
}
|
|
211
211
|
return {
|
|
212
|
-
x:
|
|
213
|
-
y:
|
|
212
|
+
x: d,
|
|
213
|
+
y: p,
|
|
214
214
|
placement: u,
|
|
215
215
|
strategy: i,
|
|
216
|
-
middlewareData:
|
|
216
|
+
middlewareData: m
|
|
217
217
|
};
|
|
218
218
|
};
|
|
219
219
|
async function st(o, e) {
|
|
@@ -227,17 +227,17 @@ async function st(o, e) {
|
|
|
227
227
|
elements: n,
|
|
228
228
|
strategy: l
|
|
229
229
|
} = o, {
|
|
230
|
-
boundary:
|
|
231
|
-
rootBoundary:
|
|
232
|
-
elementContext:
|
|
230
|
+
boundary: c = "clippingAncestors",
|
|
231
|
+
rootBoundary: d = "viewport",
|
|
232
|
+
elementContext: p = "floating",
|
|
233
233
|
altBoundary: u = !1,
|
|
234
|
-
padding:
|
|
235
|
-
} = be(e, o), b = At(
|
|
234
|
+
padding: m = 0
|
|
235
|
+
} = be(e, o), b = At(m), f = n[u ? p === "floating" ? "reference" : "floating" : p], g = ue(await r.getClippingRect({
|
|
236
236
|
element: (t = await (r.isElement == null ? void 0 : r.isElement(f))) == null || t ? f : f.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(n.floating)),
|
|
237
|
-
boundary:
|
|
238
|
-
rootBoundary:
|
|
237
|
+
boundary: c,
|
|
238
|
+
rootBoundary: d,
|
|
239
239
|
strategy: l
|
|
240
|
-
})), _ =
|
|
240
|
+
})), _ = p === "floating" ? {
|
|
241
241
|
x: s,
|
|
242
242
|
y: i,
|
|
243
243
|
width: a.floating.width,
|
|
@@ -273,23 +273,23 @@ const Lt = function(o) {
|
|
|
273
273
|
rects: a,
|
|
274
274
|
initialPlacement: n,
|
|
275
275
|
platform: l,
|
|
276
|
-
elements:
|
|
276
|
+
elements: c
|
|
277
277
|
} = e, {
|
|
278
|
-
mainAxis:
|
|
279
|
-
crossAxis:
|
|
278
|
+
mainAxis: d = !0,
|
|
279
|
+
crossAxis: p = !0,
|
|
280
280
|
fallbackPlacements: u,
|
|
281
|
-
fallbackStrategy:
|
|
281
|
+
fallbackStrategy: m = "bestFit",
|
|
282
282
|
fallbackAxisSideDirection: b = "none",
|
|
283
283
|
flipAlignment: v = !0,
|
|
284
284
|
...f
|
|
285
285
|
} = be(o, e);
|
|
286
286
|
if ((t = r.arrow) != null && t.alignmentOffset)
|
|
287
287
|
return {};
|
|
288
|
-
const g = J(i), _ = G(n), y = J(n) === n, w = await (l.isRTL == null ? void 0 : l.isRTL(
|
|
288
|
+
const g = J(i), _ = G(n), y = J(n) === n, w = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), M = u || (y || !v ? [pe(n)] : Ct(n)), E = b !== "none";
|
|
289
289
|
!u && E && M.push(...Mt(n, v, b, w));
|
|
290
290
|
const j = [n, ...M], se = await st(e, f), I = [];
|
|
291
291
|
let C = ((s = r.flip) == null ? void 0 : s.overflows) || [];
|
|
292
|
-
if (
|
|
292
|
+
if (d && I.push(se[g]), p) {
|
|
293
293
|
const k = xt(i, a, w);
|
|
294
294
|
I.push(se[k[0]], se[k[1]]);
|
|
295
295
|
}
|
|
@@ -299,7 +299,7 @@ const Lt = function(o) {
|
|
|
299
299
|
}], !I.every((k) => k <= 0)) {
|
|
300
300
|
var x, S;
|
|
301
301
|
const k = (((x = r.flip) == null ? void 0 : x.index) || 0) + 1, P = j[k];
|
|
302
|
-
if (P && (!(
|
|
302
|
+
if (P && (!(p === "alignment" ? _ !== G(P) : !1) || // We leave the current main axis only if every placement on that axis
|
|
303
303
|
// overflows the main axis.
|
|
304
304
|
C.every((D) => G(D.placement) === _ ? D.overflows[0] > 0 : !0)))
|
|
305
305
|
return {
|
|
@@ -313,7 +313,7 @@ const Lt = function(o) {
|
|
|
313
313
|
};
|
|
314
314
|
let oe = (S = C.filter((q) => q.overflows[0] <= 0).sort((q, D) => q.overflows[1] - D.overflows[1])[0]) == null ? void 0 : S.placement;
|
|
315
315
|
if (!oe)
|
|
316
|
-
switch (
|
|
316
|
+
switch (m) {
|
|
317
317
|
case "bestFit": {
|
|
318
318
|
var A;
|
|
319
319
|
const q = (A = C.filter((D) => {
|
|
@@ -348,26 +348,26 @@ async function Vt(o, e) {
|
|
|
348
348
|
placement: t,
|
|
349
349
|
platform: s,
|
|
350
350
|
elements: i
|
|
351
|
-
} = o, r = await (s.isRTL == null ? void 0 : s.isRTL(i.floating)), a = J(t), n = ge(t), l = G(t) === "y",
|
|
351
|
+
} = o, r = await (s.isRTL == null ? void 0 : s.isRTL(i.floating)), a = J(t), n = ge(t), l = G(t) === "y", c = Et.has(a) ? -1 : 1, d = r && l ? -1 : 1, p = be(e, o);
|
|
352
352
|
let {
|
|
353
353
|
mainAxis: u,
|
|
354
|
-
crossAxis:
|
|
354
|
+
crossAxis: m,
|
|
355
355
|
alignmentAxis: b
|
|
356
|
-
} = typeof
|
|
357
|
-
mainAxis:
|
|
356
|
+
} = typeof p == "number" ? {
|
|
357
|
+
mainAxis: p,
|
|
358
358
|
crossAxis: 0,
|
|
359
359
|
alignmentAxis: null
|
|
360
360
|
} : {
|
|
361
|
-
mainAxis:
|
|
362
|
-
crossAxis:
|
|
363
|
-
alignmentAxis:
|
|
361
|
+
mainAxis: p.mainAxis || 0,
|
|
362
|
+
crossAxis: p.crossAxis || 0,
|
|
363
|
+
alignmentAxis: p.alignmentAxis
|
|
364
364
|
};
|
|
365
|
-
return n && typeof b == "number" && (
|
|
366
|
-
x:
|
|
367
|
-
y: u *
|
|
365
|
+
return n && typeof b == "number" && (m = n === "end" ? b * -1 : b), l ? {
|
|
366
|
+
x: m * d,
|
|
367
|
+
y: u * c
|
|
368
368
|
} : {
|
|
369
|
-
x: u *
|
|
370
|
-
y:
|
|
369
|
+
x: u * c,
|
|
370
|
+
y: m * d
|
|
371
371
|
};
|
|
372
372
|
}
|
|
373
373
|
const Dt = function(o) {
|
|
@@ -417,23 +417,23 @@ const Dt = function(o) {
|
|
|
417
417
|
}
|
|
418
418
|
},
|
|
419
419
|
...l
|
|
420
|
-
} = be(o, e),
|
|
420
|
+
} = be(o, e), c = {
|
|
421
421
|
x: t,
|
|
422
422
|
y: s
|
|
423
|
-
},
|
|
424
|
-
let
|
|
423
|
+
}, d = await st(e, l), p = G(J(i)), u = Qe(p);
|
|
424
|
+
let m = c[u], b = c[p];
|
|
425
425
|
if (r) {
|
|
426
|
-
const f = u === "y" ? "top" : "left", g = u === "y" ? "bottom" : "right", _ =
|
|
427
|
-
|
|
426
|
+
const f = u === "y" ? "top" : "left", g = u === "y" ? "bottom" : "right", _ = m + d[f], y = m - d[g];
|
|
427
|
+
m = $e(_, m, y);
|
|
428
428
|
}
|
|
429
429
|
if (a) {
|
|
430
|
-
const f =
|
|
431
|
-
b =
|
|
430
|
+
const f = p === "y" ? "top" : "left", g = p === "y" ? "bottom" : "right", _ = b + d[f], y = b - d[g];
|
|
431
|
+
b = $e(_, b, y);
|
|
432
432
|
}
|
|
433
433
|
const v = n.fn({
|
|
434
434
|
...e,
|
|
435
|
-
[u]:
|
|
436
|
-
[
|
|
435
|
+
[u]: m,
|
|
436
|
+
[p]: b
|
|
437
437
|
});
|
|
438
438
|
return {
|
|
439
439
|
...v,
|
|
@@ -442,7 +442,7 @@ const Dt = function(o) {
|
|
|
442
442
|
y: v.y - s,
|
|
443
443
|
enabled: {
|
|
444
444
|
[u]: r,
|
|
445
|
-
[
|
|
445
|
+
[p]: a
|
|
446
446
|
}
|
|
447
447
|
}
|
|
448
448
|
};
|
|
@@ -472,7 +472,7 @@ function B(o) {
|
|
|
472
472
|
function H(o) {
|
|
473
473
|
return fe() ? o instanceof HTMLElement || o instanceof V(o).HTMLElement : !1;
|
|
474
474
|
}
|
|
475
|
-
function
|
|
475
|
+
function Ne(o) {
|
|
476
476
|
return !fe() || typeof ShadowRoot > "u" ? !1 : o instanceof ShadowRoot || o instanceof V(o).ShadowRoot;
|
|
477
477
|
}
|
|
478
478
|
const Bt = /* @__PURE__ */ new Set(["inline", "contents"]);
|
|
@@ -500,14 +500,14 @@ function ve(o) {
|
|
|
500
500
|
});
|
|
501
501
|
}
|
|
502
502
|
const Ht = ["transform", "translate", "scale", "rotate", "perspective"], Nt = ["transform", "translate", "scale", "rotate", "perspective", "filter"], jt = ["paint", "layout", "strict", "content"];
|
|
503
|
-
function
|
|
504
|
-
const e =
|
|
503
|
+
function Le(o) {
|
|
504
|
+
const e = Ee(), t = B(o) ? $(o) : o;
|
|
505
505
|
return Ht.some((s) => t[s] ? t[s] !== "none" : !1) || (t.containerType ? t.containerType !== "normal" : !1) || !e && (t.backdropFilter ? t.backdropFilter !== "none" : !1) || !e && (t.filter ? t.filter !== "none" : !1) || Nt.some((s) => (t.willChange || "").includes(s)) || jt.some((s) => (t.contain || "").includes(s));
|
|
506
506
|
}
|
|
507
507
|
function Wt(o) {
|
|
508
508
|
let e = K(o);
|
|
509
509
|
for (; H(e) && !ee(e); ) {
|
|
510
|
-
if (
|
|
510
|
+
if (Le(e))
|
|
511
511
|
return e;
|
|
512
512
|
if (ve(e))
|
|
513
513
|
return null;
|
|
@@ -515,7 +515,7 @@ function Wt(o) {
|
|
|
515
515
|
}
|
|
516
516
|
return null;
|
|
517
517
|
}
|
|
518
|
-
function
|
|
518
|
+
function Ee() {
|
|
519
519
|
return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
|
|
520
520
|
}
|
|
521
521
|
const Ut = /* @__PURE__ */ new Set(["html", "body", "#document"]);
|
|
@@ -541,10 +541,10 @@ function K(o) {
|
|
|
541
541
|
// Step into the shadow DOM of the parent of a slotted node.
|
|
542
542
|
o.assignedSlot || // DOM Element detected.
|
|
543
543
|
o.parentNode || // ShadowRoot detected.
|
|
544
|
-
|
|
544
|
+
Ne(o) && o.host || // Fallback.
|
|
545
545
|
N(o)
|
|
546
546
|
);
|
|
547
|
-
return
|
|
547
|
+
return Ne(e) ? e.host : e;
|
|
548
548
|
}
|
|
549
549
|
function it(o) {
|
|
550
550
|
const e = K(o);
|
|
@@ -555,12 +555,12 @@ function ae(o, e, t) {
|
|
|
555
555
|
e === void 0 && (e = []), t === void 0 && (t = !0);
|
|
556
556
|
const i = it(o), r = i === ((s = o.ownerDocument) == null ? void 0 : s.body), a = V(i);
|
|
557
557
|
if (r) {
|
|
558
|
-
const n =
|
|
558
|
+
const n = Ce(a);
|
|
559
559
|
return e.concat(a, a.visualViewport || [], le(i) ? i : [], n && t ? ae(n) : []);
|
|
560
560
|
}
|
|
561
561
|
return e.concat(i, ae(i, [], t));
|
|
562
562
|
}
|
|
563
|
-
function
|
|
563
|
+
function Ce(o) {
|
|
564
564
|
return o.parent && Object.getPrototypeOf(o.parent) ? o.frameElement : null;
|
|
565
565
|
}
|
|
566
566
|
function rt(o) {
|
|
@@ -573,11 +573,11 @@ function rt(o) {
|
|
|
573
573
|
$: n
|
|
574
574
|
};
|
|
575
575
|
}
|
|
576
|
-
function
|
|
576
|
+
function Ve(o) {
|
|
577
577
|
return B(o) ? o : o.contextElement;
|
|
578
578
|
}
|
|
579
579
|
function Q(o) {
|
|
580
|
-
const e =
|
|
580
|
+
const e = Ve(o);
|
|
581
581
|
if (!H(e))
|
|
582
582
|
return F(1);
|
|
583
583
|
const t = e.getBoundingClientRect(), {
|
|
@@ -594,7 +594,7 @@ function Q(o) {
|
|
|
594
594
|
const Gt = /* @__PURE__ */ F(0);
|
|
595
595
|
function at(o) {
|
|
596
596
|
const e = V(o);
|
|
597
|
-
return !
|
|
597
|
+
return !Ee() || !e.visualViewport ? Gt : {
|
|
598
598
|
x: e.visualViewport.offsetLeft,
|
|
599
599
|
y: e.visualViewport.offsetTop
|
|
600
600
|
};
|
|
@@ -604,24 +604,24 @@ function Kt(o, e, t) {
|
|
|
604
604
|
}
|
|
605
605
|
function Z(o, e, t, s) {
|
|
606
606
|
e === void 0 && (e = !1), t === void 0 && (t = !1);
|
|
607
|
-
const i = o.getBoundingClientRect(), r =
|
|
607
|
+
const i = o.getBoundingClientRect(), r = Ve(o);
|
|
608
608
|
let a = F(1);
|
|
609
609
|
e && (s ? B(s) && (a = Q(s)) : a = Q(o));
|
|
610
610
|
const n = Kt(r, t, s) ? at(r) : F(0);
|
|
611
|
-
let l = (i.left + n.x) / a.x,
|
|
611
|
+
let l = (i.left + n.x) / a.x, c = (i.top + n.y) / a.y, d = i.width / a.x, p = i.height / a.y;
|
|
612
612
|
if (r) {
|
|
613
|
-
const u = V(r),
|
|
614
|
-
let b = u, v =
|
|
615
|
-
for (; v && s &&
|
|
613
|
+
const u = V(r), m = s && B(s) ? V(s) : s;
|
|
614
|
+
let b = u, v = Ce(b);
|
|
615
|
+
for (; v && s && m !== b; ) {
|
|
616
616
|
const f = Q(v), g = v.getBoundingClientRect(), _ = $(v), y = g.left + (v.clientLeft + parseFloat(_.paddingLeft)) * f.x, w = g.top + (v.clientTop + parseFloat(_.paddingTop)) * f.y;
|
|
617
|
-
l *= f.x,
|
|
617
|
+
l *= f.x, c *= f.y, d *= f.x, p *= f.y, l += y, c += w, b = V(v), v = Ce(b);
|
|
618
618
|
}
|
|
619
619
|
}
|
|
620
620
|
return ue({
|
|
621
|
-
width:
|
|
622
|
-
height:
|
|
621
|
+
width: d,
|
|
622
|
+
height: p,
|
|
623
623
|
x: l,
|
|
624
|
-
y:
|
|
624
|
+
y: c
|
|
625
625
|
});
|
|
626
626
|
}
|
|
627
627
|
function ke(o, e) {
|
|
@@ -648,18 +648,18 @@ function qt(o) {
|
|
|
648
648
|
let l = {
|
|
649
649
|
scrollLeft: 0,
|
|
650
650
|
scrollTop: 0
|
|
651
|
-
},
|
|
652
|
-
const
|
|
653
|
-
if ((
|
|
654
|
-
const
|
|
655
|
-
|
|
651
|
+
}, c = F(1);
|
|
652
|
+
const d = F(0), p = H(s);
|
|
653
|
+
if ((p || !p && !r) && ((te(s) !== "body" || le(a)) && (l = _e(s)), H(s))) {
|
|
654
|
+
const m = Z(s);
|
|
655
|
+
c = Q(s), d.x = m.x + s.clientLeft, d.y = m.y + s.clientTop;
|
|
656
656
|
}
|
|
657
|
-
const u = a && !
|
|
657
|
+
const u = a && !p && !r ? nt(a, l) : F(0);
|
|
658
658
|
return {
|
|
659
|
-
width: t.width *
|
|
660
|
-
height: t.height *
|
|
661
|
-
x: t.x *
|
|
662
|
-
y: t.y *
|
|
659
|
+
width: t.width * c.x,
|
|
660
|
+
height: t.height * c.y,
|
|
661
|
+
x: t.x * c.x - l.scrollLeft * c.x + d.x + u.x,
|
|
662
|
+
y: t.y * c.y - l.scrollTop * c.y + d.y + u.y
|
|
663
663
|
};
|
|
664
664
|
}
|
|
665
665
|
function Yt(o) {
|
|
@@ -676,20 +676,20 @@ function Xt(o) {
|
|
|
676
676
|
y: n
|
|
677
677
|
};
|
|
678
678
|
}
|
|
679
|
-
const
|
|
679
|
+
const je = 25;
|
|
680
680
|
function Jt(o, e) {
|
|
681
681
|
const t = V(o), s = N(o), i = t.visualViewport;
|
|
682
682
|
let r = s.clientWidth, a = s.clientHeight, n = 0, l = 0;
|
|
683
683
|
if (i) {
|
|
684
684
|
r = i.width, a = i.height;
|
|
685
|
-
const
|
|
686
|
-
(!
|
|
687
|
-
}
|
|
688
|
-
const
|
|
689
|
-
if (
|
|
690
|
-
const
|
|
691
|
-
b <=
|
|
692
|
-
} else
|
|
685
|
+
const d = Ee();
|
|
686
|
+
(!d || d && e === "fixed") && (n = i.offsetLeft, l = i.offsetTop);
|
|
687
|
+
}
|
|
688
|
+
const c = ke(s);
|
|
689
|
+
if (c <= 0) {
|
|
690
|
+
const d = s.ownerDocument, p = d.body, u = getComputedStyle(p), m = d.compatMode === "CSS1Compat" && parseFloat(u.marginLeft) + parseFloat(u.marginRight) || 0, b = Math.abs(s.clientWidth - p.clientWidth - m);
|
|
691
|
+
b <= je && (r -= b);
|
|
692
|
+
} else c <= je && (r += c);
|
|
693
693
|
return {
|
|
694
694
|
width: r,
|
|
695
695
|
height: a,
|
|
@@ -699,15 +699,15 @@ function Jt(o, e) {
|
|
|
699
699
|
}
|
|
700
700
|
const Zt = /* @__PURE__ */ new Set(["absolute", "fixed"]);
|
|
701
701
|
function Qt(o, e) {
|
|
702
|
-
const t = Z(o, !0, e === "fixed"), s = t.top + o.clientTop, i = t.left + o.clientLeft, r = H(o) ? Q(o) : F(1), a = o.clientWidth * r.x, n = o.clientHeight * r.y, l = i * r.x,
|
|
702
|
+
const t = Z(o, !0, e === "fixed"), s = t.top + o.clientTop, i = t.left + o.clientLeft, r = H(o) ? Q(o) : F(1), a = o.clientWidth * r.x, n = o.clientHeight * r.y, l = i * r.x, c = s * r.y;
|
|
703
703
|
return {
|
|
704
704
|
width: a,
|
|
705
705
|
height: n,
|
|
706
706
|
x: l,
|
|
707
|
-
y:
|
|
707
|
+
y: c
|
|
708
708
|
};
|
|
709
709
|
}
|
|
710
|
-
function
|
|
710
|
+
function We(o, e, t) {
|
|
711
711
|
let s;
|
|
712
712
|
if (e === "viewport")
|
|
713
713
|
s = Jt(o, t);
|
|
@@ -738,8 +738,8 @@ function es(o, e) {
|
|
|
738
738
|
const r = $(o).position === "fixed";
|
|
739
739
|
let a = r ? K(o) : o;
|
|
740
740
|
for (; B(a) && !ee(a); ) {
|
|
741
|
-
const n = $(a), l =
|
|
742
|
-
!l && n.position === "fixed" && (i = null), (r ? !l && !i : !l && n.position === "static" && !!i && Zt.has(i.position) || le(a) && !l && lt(o, a)) ? s = s.filter((
|
|
741
|
+
const n = $(a), l = Le(a);
|
|
742
|
+
!l && n.position === "fixed" && (i = null), (r ? !l && !i : !l && n.position === "static" && !!i && Zt.has(i.position) || le(a) && !l && lt(o, a)) ? s = s.filter((d) => d !== a) : i = n, a = K(a);
|
|
743
743
|
}
|
|
744
744
|
return e.set(o, s), s;
|
|
745
745
|
}
|
|
@@ -750,10 +750,10 @@ function ts(o) {
|
|
|
750
750
|
rootBoundary: s,
|
|
751
751
|
strategy: i
|
|
752
752
|
} = o;
|
|
753
|
-
const a = [...t === "clippingAncestors" ? ve(e) ? [] : es(e, this._c) : [].concat(t), s], n = a[0], l = a.reduce((
|
|
754
|
-
const
|
|
755
|
-
return
|
|
756
|
-
},
|
|
753
|
+
const a = [...t === "clippingAncestors" ? ve(e) ? [] : es(e, this._c) : [].concat(t), s], n = a[0], l = a.reduce((c, d) => {
|
|
754
|
+
const p = We(e, d, i);
|
|
755
|
+
return c.top = X(p.top, c.top), c.right = he(p.right, c.right), c.bottom = he(p.bottom, c.bottom), c.left = X(p.left, c.left), c;
|
|
756
|
+
}, We(e, n, i));
|
|
757
757
|
return {
|
|
758
758
|
width: l.right - l.left,
|
|
759
759
|
height: l.bottom - l.top,
|
|
@@ -778,18 +778,18 @@ function os(o, e, t) {
|
|
|
778
778
|
scrollTop: 0
|
|
779
779
|
};
|
|
780
780
|
const l = F(0);
|
|
781
|
-
function
|
|
781
|
+
function c() {
|
|
782
782
|
l.x = ke(i);
|
|
783
783
|
}
|
|
784
784
|
if (s || !s && !r)
|
|
785
785
|
if ((te(e) !== "body" || le(i)) && (n = _e(e)), s) {
|
|
786
|
-
const
|
|
787
|
-
l.x =
|
|
788
|
-
} else i &&
|
|
789
|
-
r && !s && i &&
|
|
790
|
-
const
|
|
786
|
+
const m = Z(e, !0, r, e);
|
|
787
|
+
l.x = m.x + e.clientLeft, l.y = m.y + e.clientTop;
|
|
788
|
+
} else i && c();
|
|
789
|
+
r && !s && i && c();
|
|
790
|
+
const d = i && !s && !r ? nt(i, n) : F(0), p = a.left + n.scrollLeft - l.x - d.x, u = a.top + n.scrollTop - l.y - d.y;
|
|
791
791
|
return {
|
|
792
|
-
x:
|
|
792
|
+
x: p,
|
|
793
793
|
y: u,
|
|
794
794
|
width: a.width,
|
|
795
795
|
height: a.height
|
|
@@ -798,7 +798,7 @@ function os(o, e, t) {
|
|
|
798
798
|
function ye(o) {
|
|
799
799
|
return $(o).position === "static";
|
|
800
800
|
}
|
|
801
|
-
function
|
|
801
|
+
function Ue(o, e) {
|
|
802
802
|
if (!H(o) || $(o).position === "fixed")
|
|
803
803
|
return null;
|
|
804
804
|
if (e)
|
|
@@ -819,10 +819,10 @@ function ct(o, e) {
|
|
|
819
819
|
}
|
|
820
820
|
return t;
|
|
821
821
|
}
|
|
822
|
-
let s =
|
|
822
|
+
let s = Ue(o, e);
|
|
823
823
|
for (; s && Rt(s) && ye(s); )
|
|
824
|
-
s =
|
|
825
|
-
return s && ee(s) && ye(s) && !
|
|
824
|
+
s = Ue(s, e);
|
|
825
|
+
return s && ee(s) && ye(s) && !Le(s) ? t : s || Wt(o) || t;
|
|
826
826
|
}
|
|
827
827
|
const is = async function(o) {
|
|
828
828
|
const e = this.getOffsetParent || ct, t = this.getDimensions, s = await t(o.floating);
|
|
@@ -863,15 +863,15 @@ function as(o, e) {
|
|
|
863
863
|
}
|
|
864
864
|
function a(n, l) {
|
|
865
865
|
n === void 0 && (n = !1), l === void 0 && (l = 1), r();
|
|
866
|
-
const
|
|
867
|
-
left:
|
|
868
|
-
top:
|
|
866
|
+
const c = o.getBoundingClientRect(), {
|
|
867
|
+
left: d,
|
|
868
|
+
top: p,
|
|
869
869
|
width: u,
|
|
870
|
-
height:
|
|
871
|
-
} =
|
|
872
|
-
if (n || e(), !u || !
|
|
870
|
+
height: m
|
|
871
|
+
} = c;
|
|
872
|
+
if (n || e(), !u || !m)
|
|
873
873
|
return;
|
|
874
|
-
const b = ce(
|
|
874
|
+
const b = ce(p), v = ce(i.clientWidth - (d + u)), f = ce(i.clientHeight - (p + m)), g = ce(d), y = {
|
|
875
875
|
rootMargin: -b + "px " + -v + "px " + -f + "px " + -g + "px",
|
|
876
876
|
threshold: X(0, he(1, l)) || 1
|
|
877
877
|
};
|
|
@@ -885,7 +885,7 @@ function as(o, e) {
|
|
|
885
885
|
a(!1, 1e-7);
|
|
886
886
|
}, 1e3);
|
|
887
887
|
}
|
|
888
|
-
j === 1 && !ht(
|
|
888
|
+
j === 1 && !ht(c, o.getBoundingClientRect()) && a(), w = !1;
|
|
889
889
|
}
|
|
890
890
|
try {
|
|
891
891
|
t = new IntersectionObserver(M, {
|
|
@@ -900,7 +900,7 @@ function as(o, e) {
|
|
|
900
900
|
}
|
|
901
901
|
return a(!0), r;
|
|
902
902
|
}
|
|
903
|
-
function
|
|
903
|
+
function Se(o, e, t, s) {
|
|
904
904
|
s === void 0 && (s = {});
|
|
905
905
|
const {
|
|
906
906
|
ancestorScroll: i = !0,
|
|
@@ -908,21 +908,21 @@ function Ce(o, e, t, s) {
|
|
|
908
908
|
elementResize: a = typeof ResizeObserver == "function",
|
|
909
909
|
layoutShift: n = typeof IntersectionObserver == "function",
|
|
910
910
|
animationFrame: l = !1
|
|
911
|
-
} = s,
|
|
912
|
-
|
|
911
|
+
} = s, c = Ve(o), d = i || r ? [...c ? ae(c) : [], ...ae(e)] : [];
|
|
912
|
+
d.forEach((g) => {
|
|
913
913
|
i && g.addEventListener("scroll", t, {
|
|
914
914
|
passive: !0
|
|
915
915
|
}), r && g.addEventListener("resize", t);
|
|
916
916
|
});
|
|
917
|
-
const
|
|
918
|
-
let u = -1,
|
|
919
|
-
a && (
|
|
917
|
+
const p = c && n ? as(c, t) : null;
|
|
918
|
+
let u = -1, m = null;
|
|
919
|
+
a && (m = new ResizeObserver((g) => {
|
|
920
920
|
let [_] = g;
|
|
921
|
-
_ && _.target ===
|
|
921
|
+
_ && _.target === c && m && (m.unobserve(e), cancelAnimationFrame(u), u = requestAnimationFrame(() => {
|
|
922
922
|
var y;
|
|
923
|
-
(y =
|
|
923
|
+
(y = m) == null || y.observe(e);
|
|
924
924
|
})), t();
|
|
925
|
-
}),
|
|
925
|
+
}), c && !l && m.observe(c), m.observe(e));
|
|
926
926
|
let b, v = l ? Z(o) : null;
|
|
927
927
|
l && f();
|
|
928
928
|
function f() {
|
|
@@ -931,12 +931,12 @@ function Ce(o, e, t, s) {
|
|
|
931
931
|
}
|
|
932
932
|
return t(), () => {
|
|
933
933
|
var g;
|
|
934
|
-
|
|
934
|
+
d.forEach((_) => {
|
|
935
935
|
i && _.removeEventListener("scroll", t), r && _.removeEventListener("resize", t);
|
|
936
|
-
}),
|
|
936
|
+
}), p == null || p(), (g = m) == null || g.disconnect(), m = null, l && cancelAnimationFrame(b);
|
|
937
937
|
};
|
|
938
938
|
}
|
|
939
|
-
const
|
|
939
|
+
const Te = Dt, Ie = zt, mt = Lt, Me = (o, e, t) => {
|
|
940
940
|
const s = /* @__PURE__ */ new Map(), i = {
|
|
941
941
|
platform: dt,
|
|
942
942
|
...t
|
|
@@ -950,14 +950,14 @@ const Se = Dt, Te = zt, mt = Lt, Ie = (o, e, t) => {
|
|
|
950
950
|
});
|
|
951
951
|
};
|
|
952
952
|
var pt = function() {
|
|
953
|
-
}, z = "undefined", ns = typeof window !== z && typeof window.navigator !== z && /Trident\/|MSIE /.test(window.navigator.userAgent),
|
|
953
|
+
}, z = "undefined", ns = typeof window !== z && typeof window.navigator !== z && /Trident\/|MSIE /.test(window.navigator.userAgent), Oe = [
|
|
954
954
|
"trace",
|
|
955
955
|
"debug",
|
|
956
956
|
"info",
|
|
957
957
|
"warn",
|
|
958
958
|
"error"
|
|
959
959
|
], ne = {}, T = null;
|
|
960
|
-
function
|
|
960
|
+
function Ge(o, e) {
|
|
961
961
|
var t = o[e];
|
|
962
962
|
if (typeof t.bind == "function")
|
|
963
963
|
return t.bind(o);
|
|
@@ -973,11 +973,11 @@ function ls() {
|
|
|
973
973
|
console.log && (console.log.apply ? console.log.apply(console, arguments) : Function.prototype.apply.apply(console.log, [console, arguments])), console.trace && console.trace();
|
|
974
974
|
}
|
|
975
975
|
function cs(o) {
|
|
976
|
-
return o === "debug" && (o = "log"), typeof console === z ? !1 : o === "trace" && ns ? ls : console[o] !== void 0 ?
|
|
976
|
+
return o === "debug" && (o = "log"), typeof console === z ? !1 : o === "trace" && ns ? ls : console[o] !== void 0 ? Ge(console, o) : console.log !== void 0 ? Ge(console, "log") : pt;
|
|
977
977
|
}
|
|
978
978
|
function ie() {
|
|
979
|
-
for (var o = this.getLevel(), e = 0; e <
|
|
980
|
-
var t =
|
|
979
|
+
for (var o = this.getLevel(), e = 0; e < Oe.length; e++) {
|
|
980
|
+
var t = Oe[e];
|
|
981
981
|
this[t] = e < o ? pt : this.methodFactory(t, o, this.name);
|
|
982
982
|
}
|
|
983
983
|
if (this.log = this.debug, typeof console === z && o < this.levels.SILENT)
|
|
@@ -995,15 +995,15 @@ function ut(o, e) {
|
|
|
995
995
|
var t = this, s, i, r, a = "loglevel";
|
|
996
996
|
typeof o == "string" ? a += ":" + o : typeof o == "symbol" && (a = void 0);
|
|
997
997
|
function n(u) {
|
|
998
|
-
var
|
|
998
|
+
var m = (Oe[u] || "silent").toUpperCase();
|
|
999
999
|
if (!(typeof window === z || !a)) {
|
|
1000
1000
|
try {
|
|
1001
|
-
window.localStorage[a] =
|
|
1001
|
+
window.localStorage[a] = m;
|
|
1002
1002
|
return;
|
|
1003
1003
|
} catch {
|
|
1004
1004
|
}
|
|
1005
1005
|
try {
|
|
1006
|
-
window.document.cookie = encodeURIComponent(a) + "=" +
|
|
1006
|
+
window.document.cookie = encodeURIComponent(a) + "=" + m + ";";
|
|
1007
1007
|
} catch {
|
|
1008
1008
|
}
|
|
1009
1009
|
}
|
|
@@ -1017,16 +1017,16 @@ function ut(o, e) {
|
|
|
1017
1017
|
}
|
|
1018
1018
|
if (typeof u === z)
|
|
1019
1019
|
try {
|
|
1020
|
-
var
|
|
1020
|
+
var m = window.document.cookie, b = encodeURIComponent(a), v = m.indexOf(b + "=");
|
|
1021
1021
|
v !== -1 && (u = /^([^;]+)/.exec(
|
|
1022
|
-
|
|
1022
|
+
m.slice(v + b.length + 1)
|
|
1023
1023
|
)[1]);
|
|
1024
1024
|
} catch {
|
|
1025
1025
|
}
|
|
1026
1026
|
return t.levels[u] === void 0 && (u = void 0), u;
|
|
1027
1027
|
}
|
|
1028
1028
|
}
|
|
1029
|
-
function
|
|
1029
|
+
function c() {
|
|
1030
1030
|
if (!(typeof window === z || !a)) {
|
|
1031
1031
|
try {
|
|
1032
1032
|
window.localStorage.removeItem(a);
|
|
@@ -1038,10 +1038,10 @@ function ut(o, e) {
|
|
|
1038
1038
|
}
|
|
1039
1039
|
}
|
|
1040
1040
|
}
|
|
1041
|
-
function
|
|
1042
|
-
var
|
|
1043
|
-
if (typeof
|
|
1044
|
-
return
|
|
1041
|
+
function d(u) {
|
|
1042
|
+
var m = u;
|
|
1043
|
+
if (typeof m == "string" && t.levels[m.toUpperCase()] !== void 0 && (m = t.levels[m.toUpperCase()]), typeof m == "number" && m >= 0 && m <= t.levels.SILENT)
|
|
1044
|
+
return m;
|
|
1045
1045
|
throw new TypeError("log.setLevel() called with invalid level: " + u);
|
|
1046
1046
|
}
|
|
1047
1047
|
t.name = o, t.levels = {
|
|
@@ -1053,25 +1053,25 @@ function ut(o, e) {
|
|
|
1053
1053
|
SILENT: 5
|
|
1054
1054
|
}, t.methodFactory = e || hs, t.getLevel = function() {
|
|
1055
1055
|
return r ?? i ?? s;
|
|
1056
|
-
}, t.setLevel = function(u,
|
|
1057
|
-
return r =
|
|
1056
|
+
}, t.setLevel = function(u, m) {
|
|
1057
|
+
return r = d(u), m !== !1 && n(r), ie.call(t);
|
|
1058
1058
|
}, t.setDefaultLevel = function(u) {
|
|
1059
|
-
i =
|
|
1059
|
+
i = d(u), l() || t.setLevel(u, !1);
|
|
1060
1060
|
}, t.resetLevel = function() {
|
|
1061
|
-
r = null,
|
|
1061
|
+
r = null, c(), ie.call(t);
|
|
1062
1062
|
}, t.enableAll = function(u) {
|
|
1063
1063
|
t.setLevel(t.levels.TRACE, u);
|
|
1064
1064
|
}, t.disableAll = function(u) {
|
|
1065
1065
|
t.setLevel(t.levels.SILENT, u);
|
|
1066
1066
|
}, t.rebuild = function() {
|
|
1067
|
-
if (T !== t && (s =
|
|
1067
|
+
if (T !== t && (s = d(T.getLevel())), ie.call(t), T === t)
|
|
1068
1068
|
for (var u in ne)
|
|
1069
1069
|
ne[u].rebuild();
|
|
1070
|
-
}, s =
|
|
1070
|
+
}, s = d(
|
|
1071
1071
|
T ? T.getLevel() : "WARN"
|
|
1072
1072
|
);
|
|
1073
|
-
var
|
|
1074
|
-
|
|
1073
|
+
var p = l();
|
|
1074
|
+
p != null && (r = d(p)), ie.call(t);
|
|
1075
1075
|
}
|
|
1076
1076
|
T = new ut();
|
|
1077
1077
|
T.getLogger = function(e) {
|
|
@@ -1117,15 +1117,15 @@ var ps = function(o) {
|
|
|
1117
1117
|
throw new TypeError("Argument is not a logger");
|
|
1118
1118
|
var t = o.methodFactory, s = o.name || "", i = Y[s] || Y[""] || us;
|
|
1119
1119
|
function r(a, n, l) {
|
|
1120
|
-
var
|
|
1120
|
+
var c = t(a, n, l), d = Y[l] || Y[""], p = d.template.indexOf("%t") !== -1, u = d.template.indexOf("%l") !== -1, m = d.template.indexOf("%n") !== -1;
|
|
1121
1121
|
return function() {
|
|
1122
1122
|
for (var b = "", v = arguments.length, f = Array(v), g = 0; g < v; g++)
|
|
1123
1123
|
f[g] = arguments[g];
|
|
1124
1124
|
if (s || !Y[l]) {
|
|
1125
|
-
var _ =
|
|
1126
|
-
|
|
1125
|
+
var _ = d.timestampFormatter(/* @__PURE__ */ new Date()), y = d.levelFormatter(a), w = d.nameFormatter(l);
|
|
1126
|
+
d.format ? b += d.format(y, w, _) : (b += d.template, p && (b = b.replace(/%t/, _)), u && (b = b.replace(/%l/, y)), m && (b = b.replace(/%n/, w))), f.length && typeof f[0] == "string" ? f[0] = b + " " + f[0] : f.unshift(b);
|
|
1127
1127
|
}
|
|
1128
|
-
|
|
1128
|
+
c.apply(void 0, f);
|
|
1129
1129
|
};
|
|
1130
1130
|
}
|
|
1131
1131
|
return Y[s] || (o.methodFactory = r), e = e || {}, e.template && (e.format = void 0), Y[s] = ps({}, i, e), o.setLevel(o.getLevel()), bt || o.warn(
|
|
@@ -1150,8 +1150,8 @@ const _s = (o) => o.toTimeString().split(" ")[0] + "." + o.getMilliseconds().toS
|
|
|
1150
1150
|
T.methodFactory = function(o, e, t) {
|
|
1151
1151
|
const s = ks(o, e, t), r = `color: ${vs[o] || "#666"}; font-weight: bold;`, a = "color: inherit;";
|
|
1152
1152
|
return function(...n) {
|
|
1153
|
-
const l = _s(/* @__PURE__ */ new Date()),
|
|
1154
|
-
s(
|
|
1153
|
+
const l = _s(/* @__PURE__ */ new Date()), c = o.toUpperCase(), d = t ? `%c[${l}]%c %c[${c}]%c %c[${t}]%c` : `%c[${l}]%c %c[${c}]%c`;
|
|
1154
|
+
s(d, ...t ? [r, a, r, a, r, a] : [r, a, r, a], ...n);
|
|
1155
1155
|
};
|
|
1156
1156
|
};
|
|
1157
1157
|
typeof T.setDefaultLevel == "function" ? T.setDefaultLevel("silent") : T.setLevel("silent", !1);
|
|
@@ -1161,23 +1161,23 @@ const de = T.getLogger("MULTISELECT:INIT"), O = T.getLogger("MULTISELECT:DATA"),
|
|
|
1161
1161
|
"MULTISELECT:UI",
|
|
1162
1162
|
"MULTISELECT:INTERACTION"
|
|
1163
1163
|
];
|
|
1164
|
-
function
|
|
1164
|
+
function De() {
|
|
1165
1165
|
typeof T.rebuild == "function" && T.rebuild();
|
|
1166
1166
|
}
|
|
1167
1167
|
function ws() {
|
|
1168
|
-
T.setLevel("debug"),
|
|
1168
|
+
T.setLevel("debug"), De();
|
|
1169
1169
|
}
|
|
1170
1170
|
function xs() {
|
|
1171
|
-
T.setLevel("silent"),
|
|
1171
|
+
T.setLevel("silent"), De();
|
|
1172
1172
|
}
|
|
1173
1173
|
function Cs(o) {
|
|
1174
|
-
T.setLevel(o),
|
|
1174
|
+
T.setLevel(o), De();
|
|
1175
1175
|
}
|
|
1176
1176
|
function Ss(o, e) {
|
|
1177
1177
|
const t = o.includes(":") ? o : `MULTISELECT:${o}`;
|
|
1178
1178
|
T.getLogger(t).setLevel(e);
|
|
1179
1179
|
}
|
|
1180
|
-
class
|
|
1180
|
+
class Ke {
|
|
1181
1181
|
constructor(e) {
|
|
1182
1182
|
h(this, "container");
|
|
1183
1183
|
h(this, "wrapper");
|
|
@@ -1338,17 +1338,17 @@ class Ts {
|
|
|
1338
1338
|
}
|
|
1339
1339
|
show() {
|
|
1340
1340
|
var e;
|
|
1341
|
-
(e = this.onBeforeShow) == null || e.call(this), this.visible = !0, this.element.classList.add(this.visibleClass), this.positionCleanup && (this.positionCleanup(), this.positionCleanup = null), this.followCursor ? this.positionAtCursor() : this.positionCleanup =
|
|
1341
|
+
(e = this.onBeforeShow) == null || e.call(this), this.visible = !0, this.element.classList.add(this.visibleClass), this.positionCleanup && (this.positionCleanup(), this.positionCleanup = null), this.followCursor ? this.positionAtCursor() : this.positionCleanup = Se(this.trigger, this.element, () => this.computeAt(this.trigger));
|
|
1342
1342
|
}
|
|
1343
1343
|
/** Position the tooltip relative to a reference (the trigger element or a pointer virtual element). */
|
|
1344
1344
|
computeAt(e) {
|
|
1345
|
-
|
|
1345
|
+
Me(e, this.element, {
|
|
1346
1346
|
placement: this.placement,
|
|
1347
1347
|
strategy: "fixed",
|
|
1348
1348
|
middleware: [
|
|
1349
|
-
|
|
1349
|
+
Te(this.offsetDistance),
|
|
1350
1350
|
mt(),
|
|
1351
|
-
|
|
1351
|
+
Ie({ padding: 8 })
|
|
1352
1352
|
]
|
|
1353
1353
|
}).then(({ x: t, y: s }) => {
|
|
1354
1354
|
Object.assign(this.element.style, {
|
|
@@ -1384,7 +1384,7 @@ class Ts {
|
|
|
1384
1384
|
this.showTimer !== null && clearTimeout(this.showTimer), this.hideTimer !== null && clearTimeout(this.hideTimer), this.showTimer = null, this.hideTimer = null, this.positionCleanup && (this.positionCleanup(), this.positionCleanup = null), this.trigger.removeEventListener("mouseenter", this.handleMouseEnter), this.trigger.removeEventListener("mouseleave", this.handleMouseLeave), this.handleMouseMove && this.trigger.removeEventListener("mousemove", this.handleMouseMove), this.element.remove();
|
|
1385
1385
|
}
|
|
1386
1386
|
}
|
|
1387
|
-
function
|
|
1387
|
+
function qe(o) {
|
|
1388
1388
|
return {
|
|
1389
1389
|
treeId: "",
|
|
1390
1390
|
id: -1,
|
|
@@ -1405,10 +1405,10 @@ function Is(o, e = ".") {
|
|
|
1405
1405
|
const t = o.lastIndexOf(e);
|
|
1406
1406
|
return t === -1 ? "" : o.substring(0, t);
|
|
1407
1407
|
}
|
|
1408
|
-
function
|
|
1408
|
+
function Ye(o, e, t = ".") {
|
|
1409
1409
|
return re(e) ? o : o.startsWith(e + t) ? o.substring(e.length + t.length) : o;
|
|
1410
1410
|
}
|
|
1411
|
-
function
|
|
1411
|
+
function Xe(o, e = 0, t = 1, s = ".") {
|
|
1412
1412
|
return o.split(s).slice(e, e + t).join(s);
|
|
1413
1413
|
}
|
|
1414
1414
|
function Ms(o, e) {
|
|
@@ -1418,7 +1418,7 @@ function U(o, e) {
|
|
|
1418
1418
|
return o[e];
|
|
1419
1419
|
}
|
|
1420
1420
|
function Os(o = {}) {
|
|
1421
|
-
const e = o.idMember, t = o.pathMember, s = o.getPathCallback, i = o.parentPathMember, r = o.levelMember, a = o.hasChildrenMember, n = o.isSelectableMember, l = o.getIsSelectableCallback,
|
|
1421
|
+
const e = o.idMember, t = o.pathMember, s = o.getPathCallback, i = o.parentPathMember, r = o.levelMember, a = o.hasChildrenMember, n = o.isSelectableMember, l = o.getIsSelectableCallback, c = o.treeId || "multiselect-tree", d = o.orderMember, p = o.getDisplayValueCallback, u = re(i), m = re(r), b = re(a), v = re(n), f = "x", g = o.treePathSeparator || ".", _ = qe();
|
|
1422
1422
|
let y = 0, w = null;
|
|
1423
1423
|
const M = (I) => s ? s(I) : t ? U(I, t) : void 0, E = {
|
|
1424
1424
|
treePathSeparator: g,
|
|
@@ -1445,15 +1445,15 @@ function Os(o = {}) {
|
|
|
1445
1445
|
I = I || [], _.children = {}, y = 0, w = null;
|
|
1446
1446
|
const C = [];
|
|
1447
1447
|
let x = I.map((S, A) => {
|
|
1448
|
-
const k =
|
|
1449
|
-
k.treeId =
|
|
1448
|
+
const k = qe();
|
|
1449
|
+
k.treeId = c, k.id = e ? U(S, e) : void 0;
|
|
1450
1450
|
const P = M(S);
|
|
1451
|
-
return P == null || P === "" || typeof P != "string" ? (C.push(`index ${A}`), null) : (k.path = P, (k.id === void 0 || k.id === -1) && (k.id = P), u ? k.parentPath = Is(k.path, g) : k.parentPath = U(S, i), k.pathSegment =
|
|
1452
|
-
|
|
1451
|
+
return P == null || P === "" || typeof P != "string" ? (C.push(`index ${A}`), null) : (k.path = P, (k.id === void 0 || k.id === -1) && (k.id = P), u ? k.parentPath = Is(k.path, g) : k.parentPath = U(S, i), k.pathSegment = Xe(
|
|
1452
|
+
Ye(k.path, k.parentPath ?? "", g),
|
|
1453
1453
|
0,
|
|
1454
1454
|
1,
|
|
1455
1455
|
g
|
|
1456
|
-
),
|
|
1456
|
+
), m ? k.level = Ms(k.path, g) : k.level = U(S, r), b || (k.hasChildren = U(S, a)), k.data = S, k);
|
|
1457
1457
|
}).filter((S) => S !== null);
|
|
1458
1458
|
o.isSorted || (o.sortCallback ? x = o.sortCallback(x) : x = se(x));
|
|
1459
1459
|
for (const S of x)
|
|
@@ -1467,7 +1467,7 @@ function Os(o = {}) {
|
|
|
1467
1467
|
S.isSelectable = A == null ? !0 : !!A;
|
|
1468
1468
|
}
|
|
1469
1469
|
C.length > 0 && console.warn(
|
|
1470
|
-
`[ltree ${
|
|
1470
|
+
`[ltree ${c}] ${C.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${C.slice(0, 5).join(", ")}` + (C.length > 5 ? ", …" : "")
|
|
1471
1471
|
);
|
|
1472
1472
|
},
|
|
1473
1473
|
getNodeByPath(I, C) {
|
|
@@ -1488,8 +1488,8 @@ function Os(o = {}) {
|
|
|
1488
1488
|
const x = E.getNodeByPath(I);
|
|
1489
1489
|
if (!x)
|
|
1490
1490
|
return `Node: ${C.path} - Could not find parent node: ${I}`;
|
|
1491
|
-
|
|
1492
|
-
const S = f + Ye(
|
|
1491
|
+
m && (C.level = (x.level || 0) + 1);
|
|
1492
|
+
const S = f + Xe(Ye(C.path, I, g), 0, 1, g);
|
|
1493
1493
|
return x.children.hasOwnProperty(S) || (x.children[S] = C, b && !x.hasChildren && (x.hasChildren = !0), y = Math.max(y, C.level || 0)), null;
|
|
1494
1494
|
}
|
|
1495
1495
|
function se(I) {
|
|
@@ -1498,11 +1498,11 @@ function Os(o = {}) {
|
|
|
1498
1498
|
if (S !== A) return S - A;
|
|
1499
1499
|
if (C.parentPath !== x.parentPath)
|
|
1500
1500
|
return C.parentPath ? x.parentPath ? C.parentPath.localeCompare(x.parentPath) : 1 : -1;
|
|
1501
|
-
if (
|
|
1502
|
-
const k = U(C.data,
|
|
1501
|
+
if (d && C.data && x.data) {
|
|
1502
|
+
const k = U(C.data, d) ?? 0, P = U(x.data, d) ?? 0;
|
|
1503
1503
|
if (k !== P) return k - P;
|
|
1504
1504
|
}
|
|
1505
|
-
return
|
|
1505
|
+
return p ? p(C).localeCompare(p(x)) : C.path.localeCompare(x.path);
|
|
1506
1506
|
});
|
|
1507
1507
|
}
|
|
1508
1508
|
return E;
|
|
@@ -1510,23 +1510,23 @@ function Os(o = {}) {
|
|
|
1510
1510
|
function As(o, e) {
|
|
1511
1511
|
const t = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), a = (l) => {
|
|
1512
1512
|
t.set(r(l), l);
|
|
1513
|
-
const
|
|
1514
|
-
for (const
|
|
1515
|
-
|
|
1516
|
-
let
|
|
1517
|
-
return
|
|
1513
|
+
const c = [];
|
|
1514
|
+
for (const p of Object.values(l.children))
|
|
1515
|
+
c.push(...a(p));
|
|
1516
|
+
let d;
|
|
1517
|
+
return c.length > 0 ? d = c : l.isSelectable !== !1 ? (d = [r(l)], i.add(l.path)) : d = [], s.set(l.path, d), d;
|
|
1518
1518
|
}, n = o.tree;
|
|
1519
1519
|
for (const l of n) a(l);
|
|
1520
1520
|
return { nodeByValue: t, atomsUnder: s, atomPaths: i, roots: n };
|
|
1521
1521
|
}
|
|
1522
|
-
function
|
|
1522
|
+
function ze(o, e, t) {
|
|
1523
1523
|
const s = o.atomsUnder.get(e.path);
|
|
1524
1524
|
if (!s || s.length === 0) return "unchecked";
|
|
1525
1525
|
let i = 0;
|
|
1526
1526
|
for (const r of s) t.has(r) && i++;
|
|
1527
1527
|
return i === 0 ? "unchecked" : i === s.length ? "checked" : "indeterminate";
|
|
1528
1528
|
}
|
|
1529
|
-
function
|
|
1529
|
+
function we(o, e) {
|
|
1530
1530
|
const t = /* @__PURE__ */ new Set();
|
|
1531
1531
|
for (const s of e) {
|
|
1532
1532
|
const i = o.nodeByValue.get(String(s));
|
|
@@ -1536,7 +1536,7 @@ function Xe(o, e) {
|
|
|
1536
1536
|
return t;
|
|
1537
1537
|
}
|
|
1538
1538
|
function Ps(o, e, t) {
|
|
1539
|
-
const s = o.atomsUnder.get(e.path) ?? [], i = new Set(t), r =
|
|
1539
|
+
const s = o.atomsUnder.get(e.path) ?? [], i = new Set(t), r = ze(o, e, t), a = [], n = [];
|
|
1540
1540
|
if (r === "checked")
|
|
1541
1541
|
for (const l of s) i.delete(l) && n.push(l);
|
|
1542
1542
|
else
|
|
@@ -1545,24 +1545,24 @@ function Ps(o, e, t) {
|
|
|
1545
1545
|
}
|
|
1546
1546
|
function Ls(o, e, t, s) {
|
|
1547
1547
|
const i = (n) => String(s(n.data)), r = [], a = (n) => {
|
|
1548
|
-
const l =
|
|
1548
|
+
const l = ze(o, n, e);
|
|
1549
1549
|
if (l === "unchecked") return;
|
|
1550
|
-
const
|
|
1550
|
+
const c = n.isSelectable !== !1, d = Object.values(n.children);
|
|
1551
1551
|
if (t === "leaves") {
|
|
1552
1552
|
o.atomPaths.has(n.path) && l === "checked" && r.push(i(n));
|
|
1553
|
-
for (const
|
|
1553
|
+
for (const p of d) a(p);
|
|
1554
1554
|
return;
|
|
1555
1555
|
}
|
|
1556
1556
|
if (t === "all") {
|
|
1557
|
-
l === "checked" &&
|
|
1558
|
-
for (const
|
|
1557
|
+
l === "checked" && c && r.push(i(n));
|
|
1558
|
+
for (const p of d) a(p);
|
|
1559
1559
|
return;
|
|
1560
1560
|
}
|
|
1561
|
-
if (l === "checked" &&
|
|
1561
|
+
if (l === "checked" && c) {
|
|
1562
1562
|
r.push(i(n));
|
|
1563
1563
|
return;
|
|
1564
1564
|
}
|
|
1565
|
-
for (const
|
|
1565
|
+
for (const p of d) a(p);
|
|
1566
1566
|
};
|
|
1567
1567
|
for (const n of o.roots) a(n);
|
|
1568
1568
|
return r;
|
|
@@ -1886,7 +1886,7 @@ class zs {
|
|
|
1886
1886
|
}
|
|
1887
1887
|
/** Refresh the derived checked-atom set from the emitted `selectedValues`. */
|
|
1888
1888
|
refreshCascadeAtoms() {
|
|
1889
|
-
this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms =
|
|
1889
|
+
this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms = we(this.cascadeIndex, this.selectedValues));
|
|
1890
1890
|
}
|
|
1891
1891
|
/**
|
|
1892
1892
|
* Toggle a tree node in cascade mode: flip its whole subtree, re-project the
|
|
@@ -1894,21 +1894,31 @@ class zs {
|
|
|
1894
1894
|
* so badges / form / change events reflect the policy (rolled-up branches, etc.).
|
|
1895
1895
|
*/
|
|
1896
1896
|
toggleTreeCascade(e) {
|
|
1897
|
-
|
|
1898
|
-
|
|
1897
|
+
const t = this.cascadeIndex, s = we(t, this.selectedValues), { checkedAtoms: i } = Ps(t, e, s);
|
|
1898
|
+
this.commitCascadeAtoms(i);
|
|
1899
|
+
}
|
|
1900
|
+
/**
|
|
1901
|
+
* Given a checked-atom set, project it to emitted values under the active
|
|
1902
|
+
* policy, diff it against the current selection, and commit. Shared by every
|
|
1903
|
+
* cascade entry point (node toggle, Select All) so they all emit the same
|
|
1904
|
+
* policy-projected shape (e.g. a full subtree rolls up to one value).
|
|
1905
|
+
*/
|
|
1906
|
+
commitCascadeAtoms(e) {
|
|
1907
|
+
var l;
|
|
1908
|
+
const t = this.cascadeIndex, s = Ls(
|
|
1899
1909
|
t,
|
|
1900
|
-
|
|
1910
|
+
e,
|
|
1901
1911
|
this.cascadePolicy(),
|
|
1902
|
-
(
|
|
1903
|
-
),
|
|
1904
|
-
for (const [
|
|
1905
|
-
|
|
1906
|
-
const
|
|
1907
|
-
for (const
|
|
1908
|
-
const p = ((
|
|
1909
|
-
p !== void 0 && (
|
|
1912
|
+
(c) => String(this.getItemValue(c))
|
|
1913
|
+
), i = new Set(s), r = [], a = [];
|
|
1914
|
+
for (const [c, d] of this.selectedOptions)
|
|
1915
|
+
i.has(c) || a.push(d);
|
|
1916
|
+
const n = /* @__PURE__ */ new Map();
|
|
1917
|
+
for (const c of s) {
|
|
1918
|
+
const p = ((l = t.nodeByValue.get(c)) == null ? void 0 : l.data) ?? this.selectedOptions.get(c);
|
|
1919
|
+
p !== void 0 && (n.set(c, p), this.selectedValues.has(c) || r.push(p));
|
|
1910
1920
|
}
|
|
1911
|
-
this.selectedValues =
|
|
1921
|
+
this.selectedValues = i, this.selectedOptions = n, this.cascadeCheckedAtoms = e, this.commit({ added: r, removed: a });
|
|
1912
1922
|
}
|
|
1913
1923
|
/**
|
|
1914
1924
|
* Derive `treeNodes` + `filteredOptions` from the full tree, applying the
|
|
@@ -1929,8 +1939,8 @@ class zs {
|
|
|
1929
1939
|
for (const a of e)
|
|
1930
1940
|
if (this.getItemSearchValue(a.data).toLowerCase().includes(t)) {
|
|
1931
1941
|
const l = a.path.split(i);
|
|
1932
|
-
for (let
|
|
1933
|
-
r.add(l.slice(0,
|
|
1942
|
+
for (let c = 1; c <= l.length; c++)
|
|
1943
|
+
r.add(l.slice(0, c).join(i));
|
|
1934
1944
|
}
|
|
1935
1945
|
s = e.filter((a) => r.has(a.path));
|
|
1936
1946
|
}
|
|
@@ -1965,8 +1975,8 @@ class zs {
|
|
|
1965
1975
|
for (const n of t)
|
|
1966
1976
|
if (i.has(String(this.getItemValue(n.data)))) {
|
|
1967
1977
|
const l = n.path.split(s);
|
|
1968
|
-
for (let
|
|
1969
|
-
r.add(l.slice(0,
|
|
1978
|
+
for (let c = 1; c <= l.length; c++)
|
|
1979
|
+
r.add(l.slice(0, c).join(s));
|
|
1970
1980
|
}
|
|
1971
1981
|
const a = t.filter((n) => r.has(n.path));
|
|
1972
1982
|
this.treeNodes = a, this.filteredOptions = a.map((n) => n.data);
|
|
@@ -2068,7 +2078,7 @@ class zs {
|
|
|
2068
2078
|
}
|
|
2069
2079
|
const e = this.options.optionHeight ?? 50, t = this.options.virtualScrollBuffer ?? 10;
|
|
2070
2080
|
requestAnimationFrame(() => {
|
|
2071
|
-
this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new
|
|
2081
|
+
this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new Ke({
|
|
2072
2082
|
container: this.optionsContainer,
|
|
2073
2083
|
itemHeight: e,
|
|
2074
2084
|
items: this.filteredOptions,
|
|
@@ -2098,39 +2108,39 @@ class zs {
|
|
|
2098
2108
|
const e = this.options.actionButtons;
|
|
2099
2109
|
if (!this.options.isMultipleEnabled || !e || e.length === 0) return "";
|
|
2100
2110
|
const t = this.options.actionsPosition === "bottom" ? "bottom" : "top", s = this.options.actionsAlign ?? "stretch", i = ` ms__actions--${t}`, r = this.options.isActionsSticky ? " ms__actions--sticky" : "", a = this.options.actionsLayout === "wrap" ? " ms__actions--wrap" : "", n = ` ms__actions--align-${s}`, l = /* @__PURE__ */ new Map();
|
|
2101
|
-
if (e.forEach((
|
|
2102
|
-
if (!(
|
|
2103
|
-
let
|
|
2104
|
-
|
|
2105
|
-
const b =
|
|
2111
|
+
if (e.forEach((d, p) => {
|
|
2112
|
+
if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
|
|
2113
|
+
let m;
|
|
2114
|
+
d.getIsDisabledCallback ? m = d.getIsDisabledCallback(this) : d.isDisabled !== void 0 ? m = d.isDisabled : m = this.getBuiltInActionDisabled(d.action);
|
|
2115
|
+
const b = m ? " disabled" : "", v = d.getTextCallback ? d.getTextCallback(this) : d.text;
|
|
2106
2116
|
let f = "";
|
|
2107
|
-
if (
|
|
2108
|
-
const y =
|
|
2117
|
+
if (d.getClassCallback) {
|
|
2118
|
+
const y = d.getClassCallback(this);
|
|
2109
2119
|
f = Array.isArray(y) ? ` ${y.join(" ")}` : y ? ` ${y}` : "";
|
|
2110
|
-
} else
|
|
2111
|
-
const g = Math.max(1, Math.floor(
|
|
2120
|
+
} else d.cssClass && (f = ` ${d.cssClass}`);
|
|
2121
|
+
const g = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${b} class="ms__action-btn${f}" data-action="${d.action}" data-button-index="${p}">${v}</button>`;
|
|
2112
2122
|
l.has(g) || l.set(g, []), l.get(g).push(_);
|
|
2113
2123
|
}), l.size === 0) return "";
|
|
2114
|
-
const
|
|
2115
|
-
return `<div class="ms__actions${i}${r}${a}${n}">${
|
|
2124
|
+
const c = Array.from(l.keys()).sort((d, p) => d - p).map((d) => `<div class="ms__actions-row" data-row="${d}">${l.get(d).join("")}</div>`).join("");
|
|
2125
|
+
return `<div class="ms__actions${i}${r}${a}${n}">${c}</div>`;
|
|
2116
2126
|
}
|
|
2117
2127
|
renderOption(e, t) {
|
|
2118
|
-
const s = this.getItemValue(e), i = this.getItemDisplayValue(e), r = this.getItemIcon(e), a = this.getItemSubtitle(e), n = this.getItemDisabled(e), l = this.selectedValues.has(String(s)),
|
|
2119
|
-
l &&
|
|
2128
|
+
const s = this.getItemValue(e), i = this.getItemDisplayValue(e), r = this.getItemIcon(e), a = this.getItemSubtitle(e), n = this.getItemDisabled(e), l = this.selectedValues.has(String(s)), c = t === this.focusedIndex, d = this.matchingIndices.has(t), p = ["ms__option"];
|
|
2129
|
+
l && p.push("ms__option--selected"), c && p.push("ms__option--focused"), d && p.push("ms__option--matched"), n && p.push("ms__option--disabled");
|
|
2120
2130
|
const u = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "";
|
|
2121
|
-
let
|
|
2122
|
-
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (
|
|
2131
|
+
let m = `<div class="${p.join(" ")}" data-value="${s}" data-index="${t}"${u}>`;
|
|
2132
|
+
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (m += `<input type="checkbox" class="ms__checkbox" ${l ? "checked" : ""} ${n ? "disabled" : ""}>`), m += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
|
|
2123
2133
|
const b = {
|
|
2124
2134
|
index: t,
|
|
2125
2135
|
isSelected: l,
|
|
2126
|
-
isFocused:
|
|
2127
|
-
isMatched:
|
|
2136
|
+
isFocused: c,
|
|
2137
|
+
isMatched: d,
|
|
2128
2138
|
isDisabled: n
|
|
2129
2139
|
}, v = this.options.renderOptionContentCallback(e, b);
|
|
2130
|
-
typeof v == "string" ?
|
|
2140
|
+
typeof v == "string" ? m += v : m += v.outerHTML;
|
|
2131
2141
|
} else
|
|
2132
|
-
r && (
|
|
2133
|
-
return
|
|
2142
|
+
r && (m += `<span class="ms__option-icon">${r}</span>`), m += '<div class="ms__option-text">', m += `<div class="ms__option-title">${this.highlightMatch(i, this.searchTerm)}</div>`, a && (m += `<div class="ms__option-subtitle">${a}</div>`), m += "</div>";
|
|
2143
|
+
return m += "</div>", m += "</div>", m;
|
|
2134
2144
|
}
|
|
2135
2145
|
/**
|
|
2136
2146
|
* Render a single tree-mode row. Separate from `renderOption`: a tree row is
|
|
@@ -2140,15 +2150,15 @@ class zs {
|
|
|
2140
2150
|
* chevron/toggle — every node is just a normal, selectable option.
|
|
2141
2151
|
*/
|
|
2142
2152
|
renderTreeNode(e, t) {
|
|
2143
|
-
const s = e.data, i = this.getItemValue(s), r = this.getItemDisplayValue(s), a = this.getItemIcon(s), n = this.getItemSubtitle(s), l = this.getItemDisabled(s),
|
|
2144
|
-
g.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"),
|
|
2153
|
+
const s = e.data, i = this.getItemValue(s), r = this.getItemDisplayValue(s), a = this.getItemIcon(s), n = this.getItemSubtitle(s), l = this.getItemDisabled(s), c = this.isCascadeMode() && this.cascadeIndex, d = c ? ze(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, p = c ? d === "checked" : this.selectedValues.has(String(i)), u = d === "indeterminate", m = t === this.focusedIndex, b = e.isSelectable !== !1, v = e.level ?? 1, f = Math.max(0, v - 1), g = ["ms__option", "ms__option--tree"];
|
|
2154
|
+
g.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), p && g.push("ms__option--selected"), u && g.push("ms__option--indeterminate"), m && g.push("ms__option--focused"), l && g.push("ms__option--disabled"), b || g.push("ms__option--tree-unselectable");
|
|
2145
2155
|
const _ = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", y = b ? "" : ' data-selectable="false"';
|
|
2146
2156
|
let w = `<div class="${g.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${v}" style="--ms-tree-depth: ${f};"${_}${y}>`;
|
|
2147
|
-
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && b && (w += `<input type="checkbox" class="${u ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${
|
|
2157
|
+
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && b && (w += `<input type="checkbox" class="${u ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${p ? "checked" : ""}${u ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), w += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
|
|
2148
2158
|
const M = {
|
|
2149
2159
|
index: t,
|
|
2150
|
-
isSelected:
|
|
2151
|
-
isFocused:
|
|
2160
|
+
isSelected: p,
|
|
2161
|
+
isFocused: m,
|
|
2152
2162
|
isMatched: !1,
|
|
2153
2163
|
isDisabled: l
|
|
2154
2164
|
}, E = this.options.renderOptionContentCallback(s, M);
|
|
@@ -2205,21 +2215,21 @@ class zs {
|
|
|
2205
2215
|
this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, this.badgesContainer.innerHTML = e.map((r) => this.renderBadgeHTML(r, { displayMode: "badges", isInPopover: !1 })).join("");
|
|
2206
2216
|
else if (s === "partial") {
|
|
2207
2217
|
this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`;
|
|
2208
|
-
const r = this.options.badgesMaxVisible || 3, a = e.slice(0, r), n = t - r, l = a.map((
|
|
2209
|
-
let
|
|
2210
|
-
n > 0 && (
|
|
2218
|
+
const r = this.options.badgesMaxVisible || 3, a = e.slice(0, r), n = t - r, l = a.map((d) => this.renderBadgeHTML(d, { displayMode: "partial", isInPopover: !1 })).join("");
|
|
2219
|
+
let c = "";
|
|
2220
|
+
n > 0 && (c = `
|
|
2211
2221
|
<div class="ms__badge ms__badge--counter ms__badge--more" data-action="show-selected">
|
|
2212
2222
|
<span class="ms__badge-text">${this.options.getCounterCallback ? this.options.getCounterCallback(t, n) : `+${n} more`}</span>
|
|
2213
2223
|
<button type="button" class="ms__badge-remove" data-action="remove-hidden" aria-label="Remove ${n} hidden items"></button>
|
|
2214
2224
|
</div>
|
|
2215
|
-
`), this.badgesContainer.innerHTML = l +
|
|
2225
|
+
`), this.badgesContainer.innerHTML = l + c;
|
|
2216
2226
|
} else if (s === "compact")
|
|
2217
2227
|
if (this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, t > 0) {
|
|
2218
2228
|
const r = e[0], a = this.getItemBadgeDisplayValue(r), n = t - 1;
|
|
2219
2229
|
let l = a;
|
|
2220
2230
|
if (n > 0) {
|
|
2221
|
-
const
|
|
2222
|
-
l = `${a} (${
|
|
2231
|
+
const c = this.options.getCounterCallback ? this.options.getCounterCallback(t, n) : `+${n} more`;
|
|
2232
|
+
l = `${a} (${c})`;
|
|
2223
2233
|
}
|
|
2224
2234
|
this.badgesContainer.innerHTML = `
|
|
2225
2235
|
<div class="ms__badge" data-action="show-selected">
|
|
@@ -2428,7 +2438,7 @@ class zs {
|
|
|
2428
2438
|
if (e.preventDefault(), e.stopPropagation(), i.dataset.action === "remove-hidden") {
|
|
2429
2439
|
L.debug(`[${this.instanceId}] Remove hidden items button clicked`);
|
|
2430
2440
|
const l = this.options.badgesMaxVisible || 3;
|
|
2431
|
-
Array.from(this.selectedOptions.values()).slice(l).forEach((
|
|
2441
|
+
Array.from(this.selectedOptions.values()).slice(l).forEach((p) => this.interactiveDeselect(p));
|
|
2432
2442
|
return;
|
|
2433
2443
|
}
|
|
2434
2444
|
const a = i.dataset.value, n = this.selectedOptions.get(a);
|
|
@@ -2585,6 +2595,13 @@ class zs {
|
|
|
2585
2595
|
this.selectedValues.delete(s), this.selectedOptions.delete(s), this.commit({ removed: [e] });
|
|
2586
2596
|
}
|
|
2587
2597
|
selectAll() {
|
|
2598
|
+
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
2599
|
+
const t = this.cascadeIndex, s = new Set(we(t, this.selectedValues));
|
|
2600
|
+
for (const i of this.treeNodes)
|
|
2601
|
+
t.atomPaths.has(i.path) && (this.getItemDisabled(i.data) || s.add(String(this.getItemValue(i.data))));
|
|
2602
|
+
this.commitCascadeAtoms(s);
|
|
2603
|
+
return;
|
|
2604
|
+
}
|
|
2588
2605
|
const e = [];
|
|
2589
2606
|
this.filteredOptions.forEach((t, s) => {
|
|
2590
2607
|
if (this.getItemDisabled(t) || !this.isIndexSelectable(s)) return;
|
|
@@ -2624,21 +2641,21 @@ class zs {
|
|
|
2624
2641
|
...dt,
|
|
2625
2642
|
getOffsetParent: () => Es(this.input)
|
|
2626
2643
|
};
|
|
2627
|
-
return
|
|
2644
|
+
return Se(this.input, e, () => {
|
|
2628
2645
|
var l;
|
|
2629
2646
|
e.style.width = `${this.input.offsetWidth}px`, this.options.dropdownMinWidth && (e.style.minWidth = this.options.dropdownMinWidth), t.applyMaxWidth && this.options.dropdownMaxWidth && (e.style.maxWidth = this.options.dropdownMaxWidth);
|
|
2630
2647
|
const i = ((l = t.isLocked) == null ? void 0 : l.call(t)) ?? !0, r = t.getPlacement(), a = i && r ? r : "bottom-start", n = [
|
|
2631
|
-
|
|
2648
|
+
Te(4),
|
|
2632
2649
|
...i && r ? [] : [mt()],
|
|
2633
|
-
|
|
2650
|
+
Ie({ padding: 8 })
|
|
2634
2651
|
];
|
|
2635
|
-
|
|
2652
|
+
Me(this.input, e, { placement: a, strategy: "fixed", middleware: n, platform: s }).then(({ x: c, y: d, placement: p }) => {
|
|
2636
2653
|
var u;
|
|
2637
|
-
r || t.setPlacement(
|
|
2654
|
+
r || t.setPlacement(p), Object.assign(e.style, {
|
|
2638
2655
|
position: "fixed",
|
|
2639
|
-
left: `${
|
|
2640
|
-
top: `${
|
|
2641
|
-
}), this.verifyPanelLanded(e,
|
|
2656
|
+
left: `${c}px`,
|
|
2657
|
+
top: `${d}px`
|
|
2658
|
+
}), this.verifyPanelLanded(e, c, d), (u = t.afterPosition) == null || u.call(t);
|
|
2642
2659
|
});
|
|
2643
2660
|
});
|
|
2644
2661
|
}
|
|
@@ -2658,9 +2675,9 @@ class zs {
|
|
|
2658
2675
|
const i = e.getBoundingClientRect(), r = i.x - t, a = i.y - s;
|
|
2659
2676
|
if (Math.abs(r) < 1 && Math.abs(a) < 1) return;
|
|
2660
2677
|
this.positioningDriftWarned = !0;
|
|
2661
|
-
const n = Vs(this.input, r, a), l = n ? `<${n.tagName.toLowerCase()}${n.id ? "#" + n.id : ""}${typeof n.className == "string" && n.className ? "." + n.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : ""}>` : "an ancestor element (could not auto-identify)",
|
|
2678
|
+
const n = Vs(this.input, r, a), l = n ? `<${n.tagName.toLowerCase()}${n.id ? "#" + n.id : ""}${typeof n.className == "string" && n.className ? "." + n.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : ""}>` : "an ancestor element (could not auto-identify)", c = n ? Ds(n) : "";
|
|
2662
2679
|
console.warn(
|
|
2663
|
-
`[@keenmate/web-multiselect] Dropdown panel rendered ${r.toFixed(0)}px / ${a.toFixed(0)}px away from where the library positioned it. Most likely culprit: ${l}` + (
|
|
2680
|
+
`[@keenmate/web-multiselect] Dropdown panel rendered ${r.toFixed(0)}px / ${a.toFixed(0)}px away from where the library positioned it. Most likely culprit: ${l}` + (c ? ` (has ${c})` : "") + ".\nAn ancestor of <web-multiselect> establishes a fixed-positioning containing block that the library's heuristic doesn't recognize. Fix on your side: replace the property with `transform: translateZ(0)` on that ancestor, OR move the trigger out of that ancestor's subtree. If neither is acceptable, please file an issue at https://github.com/keenmate/web-multiselect/issues with the ancestor's computed CSS."
|
|
2664
2681
|
);
|
|
2665
2682
|
}
|
|
2666
2683
|
positionDropdown() {
|
|
@@ -2677,18 +2694,18 @@ class zs {
|
|
|
2677
2694
|
});
|
|
2678
2695
|
}
|
|
2679
2696
|
positionHint() {
|
|
2680
|
-
this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup =
|
|
2697
|
+
this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup = Se(
|
|
2681
2698
|
this.input,
|
|
2682
2699
|
this.hint,
|
|
2683
2700
|
() => {
|
|
2684
2701
|
let e = "top-start";
|
|
2685
|
-
this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom"))),
|
|
2702
|
+
this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom"))), Me(this.input, this.hint, {
|
|
2686
2703
|
placement: e,
|
|
2687
2704
|
strategy: "fixed",
|
|
2688
2705
|
middleware: [
|
|
2689
|
-
|
|
2706
|
+
Te(4),
|
|
2690
2707
|
// Don't use flip() - we want hint to stay opposite of dropdown
|
|
2691
|
-
|
|
2708
|
+
Ie({ padding: 8 })
|
|
2692
2709
|
]
|
|
2693
2710
|
}).then(({ x: t, y: s }) => {
|
|
2694
2711
|
Object.assign(this.hint.style, {
|
|
@@ -2773,7 +2790,7 @@ class zs {
|
|
|
2773
2790
|
if (!this.selectedPopoverContainer) return;
|
|
2774
2791
|
const r = (this.options.badgeHeight ?? 36) + 4, a = this.options.virtualScrollBuffer ?? 10;
|
|
2775
2792
|
requestAnimationFrame(() => {
|
|
2776
|
-
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new
|
|
2793
|
+
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Ke({
|
|
2777
2794
|
container: this.selectedPopoverContainer,
|
|
2778
2795
|
itemHeight: r,
|
|
2779
2796
|
items: e,
|
|
@@ -2799,18 +2816,18 @@ class zs {
|
|
|
2799
2816
|
let i;
|
|
2800
2817
|
const r = t.isInPopover ? this.options.renderSelectedItemContentCallback : void 0;
|
|
2801
2818
|
if (r) {
|
|
2802
|
-
const
|
|
2803
|
-
i = typeof
|
|
2819
|
+
const c = r(e);
|
|
2820
|
+
i = typeof c == "string" ? c : c.outerHTML;
|
|
2804
2821
|
} else if (this.options.renderBadgeContentCallback) {
|
|
2805
|
-
const
|
|
2806
|
-
i = typeof
|
|
2822
|
+
const c = this.options.renderBadgeContentCallback(e, t);
|
|
2823
|
+
i = typeof c == "string" ? c : c.outerHTML;
|
|
2807
2824
|
} else
|
|
2808
2825
|
i = this.getItemBadgeDisplayValue(e);
|
|
2809
2826
|
const a = t.isInPopover ? this.options.getSelectedItemClassCallback || this.options.getBadgeClassCallback : this.options.getBadgeClassCallback;
|
|
2810
2827
|
let n = "ms__badge";
|
|
2811
2828
|
if (a) {
|
|
2812
|
-
const
|
|
2813
|
-
n += " " +
|
|
2829
|
+
const c = a(e), d = Array.isArray(c) ? c : [c];
|
|
2830
|
+
n += " " + d.filter((p) => p).join(" ");
|
|
2814
2831
|
}
|
|
2815
2832
|
const l = this.getItemBadgeDisplayValue(e);
|
|
2816
2833
|
return `
|
|
@@ -2867,11 +2884,20 @@ class zs {
|
|
|
2867
2884
|
getSelected() {
|
|
2868
2885
|
return Array.from(this.selectedOptions.values());
|
|
2869
2886
|
}
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2887
|
+
/**
|
|
2888
|
+
* Set the selection programmatically. **Silent by default** — it does not fire
|
|
2889
|
+
* `select`/`deselect`/`change` (so restoring saved state, cascade resets, or a
|
|
2890
|
+
* server-authoritative correction can't loop back or trip "user changed it"
|
|
2891
|
+
* handlers). Pass `{ notify: true }` to announce the result as a **single
|
|
2892
|
+
* aggregate `change`** — for a deliberate user gesture (e.g. an action button)
|
|
2893
|
+
* that should reach the same listeners a manual pick does, without the per-item
|
|
2894
|
+
* `select`/`deselect` flood a bulk change would otherwise cause.
|
|
2895
|
+
*/
|
|
2896
|
+
setSelected(e, t = {}) {
|
|
2897
|
+
this.selectedValues = new Set(e.map((s) => String(s))), this.selectedOptions.clear(), e.forEach((s) => {
|
|
2898
|
+
const i = String(s), r = this.allOptions.find((a) => String(this.getItemValue(a)) === i);
|
|
2899
|
+
r && this.selectedOptions.set(i, r);
|
|
2900
|
+
}), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput(), t.notify && this.options.onChange && this.options.onChange(this.getSelected());
|
|
2875
2901
|
}
|
|
2876
2902
|
/**
|
|
2877
2903
|
* Merge a partial config update into the live picker without tearing down the DOM.
|
|
@@ -2963,33 +2989,33 @@ ${s}` : t;
|
|
|
2963
2989
|
if (s.querySelectorAll(".ms__badge:not(.ms__badge--more)").forEach((a) => {
|
|
2964
2990
|
const n = a.querySelector(".ms__badge-remove");
|
|
2965
2991
|
if (!n) return;
|
|
2966
|
-
const l = n.dataset.value,
|
|
2967
|
-
if (!
|
|
2968
|
-
const
|
|
2992
|
+
const l = n.dataset.value, c = this.selectedOptions.get(l);
|
|
2993
|
+
if (!c) return;
|
|
2994
|
+
const d = `${i}${l}`, p = `${i}${l}-remove`, u = a.querySelector(".ms__badge-text");
|
|
2969
2995
|
u && this.spawnTooltip({
|
|
2970
|
-
id:
|
|
2996
|
+
id: d,
|
|
2971
2997
|
trigger: u,
|
|
2972
|
-
content: this.buildBadgeTooltipContent(
|
|
2998
|
+
content: this.buildBadgeTooltipContent(c)
|
|
2973
2999
|
});
|
|
2974
|
-
const
|
|
3000
|
+
const m = this.getItemBadgeDisplayValue(c);
|
|
2975
3001
|
this.spawnTooltip({
|
|
2976
|
-
id:
|
|
3002
|
+
id: p,
|
|
2977
3003
|
trigger: n,
|
|
2978
|
-
content: this.buildRemoveButtonTooltipText(
|
|
3004
|
+
content: this.buildRemoveButtonTooltipText(m, c),
|
|
2979
3005
|
// Keep parent badge tooltip from overlapping the remove-button tooltip.
|
|
2980
3006
|
onBeforeShow: () => {
|
|
2981
3007
|
var b;
|
|
2982
|
-
return (b = this.tooltips.get(
|
|
3008
|
+
return (b = this.tooltips.get(d)) == null ? void 0 : b.hideImmediate();
|
|
2983
3009
|
}
|
|
2984
3010
|
});
|
|
2985
3011
|
}), !t) {
|
|
2986
3012
|
const a = this.badgesContainer.querySelector(".ms__badge--more"), n = a == null ? void 0 : a.querySelector(".ms__badge-remove");
|
|
2987
3013
|
if (n && n.dataset.action === "remove-hidden") {
|
|
2988
|
-
const l = this.options.badgesMaxVisible || 3,
|
|
3014
|
+
const l = this.options.badgesMaxVisible || 3, c = this.selectedOptions.size - l;
|
|
2989
3015
|
this.spawnTooltip({
|
|
2990
3016
|
id: "more-badge-remove",
|
|
2991
3017
|
trigger: n,
|
|
2992
|
-
content: this.buildRemoveButtonTooltipText(`${
|
|
3018
|
+
content: this.buildRemoveButtonTooltipText(`${c} hidden items`)
|
|
2993
3019
|
});
|
|
2994
3020
|
}
|
|
2995
3021
|
}
|
|
@@ -3041,10 +3067,10 @@ ${s}` : t;
|
|
|
3041
3067
|
}
|
|
3042
3068
|
attachActionButtonTooltips() {
|
|
3043
3069
|
this.dropdown.querySelectorAll(".ms__action-btn").forEach((t) => {
|
|
3044
|
-
var
|
|
3070
|
+
var c, d;
|
|
3045
3071
|
const s = t, i = s.dataset.action;
|
|
3046
3072
|
if (!i) return;
|
|
3047
|
-
const r = parseInt(s.dataset.buttonIndex || "-1"), a = r >= 0 ? (
|
|
3073
|
+
const r = parseInt(s.dataset.buttonIndex || "-1"), a = r >= 0 ? (c = this.options.actionButtons) == null ? void 0 : c[r] : (d = this.options.actionButtons) == null ? void 0 : d.find((p) => p.action === i);
|
|
3048
3074
|
if (!a) return;
|
|
3049
3075
|
const n = a.getTooltipCallback ? a.getTooltipCallback(this) : a.tooltip;
|
|
3050
3076
|
if (!n) return;
|
|
@@ -3078,8 +3104,8 @@ ${s}` : t;
|
|
|
3078
3104
|
this.destroyAllTooltips(), this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0), this.abortInFlightSearch(), this.dropdownCleanup && this.dropdownCleanup(), this.hintCleanup && this.hintCleanup(), this.selectedPopoverCleanup && this.selectedPopoverCleanup(), this.documentClickHandler && (document.removeEventListener("click", this.documentClickHandler), this.documentClickHandler = null), this.documentKeydownHandler && (document.removeEventListener("keydown", this.documentKeydownHandler), this.documentKeydownHandler = null), this.virtualScroll && (this.virtualScroll.destroy(), this.virtualScroll = null), this.dropdown && this.dropdown.remove(), this.hint && this.hint.remove(), this.selectedPopover && this.selectedPopover.remove(), this.element.innerHTML = "", this.element.classList.remove("ms", "ms--open", "ms--no-checkboxes"), de.info(`[${this.instanceId}] Component destroyed`);
|
|
3079
3105
|
}
|
|
3080
3106
|
}
|
|
3081
|
-
const Bs = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#e5e7eb, #3a3a3a));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-input-bg));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-input-bg));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-input-size-xs-font: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-input-size-xs-padding-v: calc(.4 * var(--ms-rem));--ms-input-size-xs-padding-h: calc(.8 * var(--ms-rem));--ms-input-size-xs-height: calc(var(--base-input-size-xs-height, 3.1) * var(--ms-rem));--ms-input-size-sm-font: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-size-sm-padding-v: calc(.5 * var(--ms-rem));--ms-input-size-sm-padding-h: calc(1 * var(--ms-rem));--ms-input-size-sm-height: calc(var(--base-input-size-sm-height, 3.3) * var(--ms-rem));--ms-input-size-md-font: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-size-md-padding-v: calc(.8 * var(--ms-rem));--ms-input-size-md-padding-h: calc(1.2 * var(--ms-rem));--ms-input-size-md-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-size-lg-font: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-input-size-lg-padding-v: calc(1 * var(--ms-rem));--ms-input-size-lg-padding-h: calc(1.4 * var(--ms-rem));--ms-input-size-lg-height: calc(var(--base-input-size-lg-height, 3.8) * var(--ms-rem));--ms-input-size-xl-font: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-input-size-xl-padding-v: calc(1.2 * var(--ms-rem));--ms-input-size-xl-padding-h: calc(1.6 * var(--ms-rem));--ms-input-size-xl-height: calc(var(--base-input-size-xl-height, 4.1) * var(--ms-rem));--ms-toggle-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: calc(.2 * var(--ms-rem));--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6L18 18M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round' fill='none'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--ms-icon-remove);--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-z-index-popover: 10000;--ms-selected-popover-width: calc(32 * var(--ms-rem));--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-right:var(--ms-input-padding-right);font-size:var(--ms-input-font-size);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);background:var(--ms-input-bg);color:var(--ms-input-color);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input:hover:not(:focus):not(:disabled){border:var(--ms-input-border-hover)}.ms__input:focus{outline:none;border:var(--ms-input-border-focus)}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__input.ms__input--xs{font-size:var(--ms-input-size-xs-font);padding:var(--ms-input-size-xs-padding-v) var(--ms-input-size-xs-padding-h);padding-right:calc(var(--ms-input-size-xs-padding-h) * 2.5);height:var(--ms-input-size-xs-height)}.ms__input.ms__input--sm{font-size:var(--ms-input-size-sm-font);padding:var(--ms-input-size-sm-padding-v) var(--ms-input-size-sm-padding-h);padding-right:calc(var(--ms-input-size-sm-padding-h) * 2.5);height:var(--ms-input-size-sm-height)}.ms__input.ms__input--lg{font-size:var(--ms-input-size-lg-font);padding:var(--ms-input-size-lg-padding-v) var(--ms-input-size-lg-padding-h);padding-right:calc(var(--ms-input-size-lg-padding-h) * 2.5);height:var(--ms-input-size-lg-height)}.ms__input.ms__input--xl{font-size:var(--ms-input-size-xl-font);padding:var(--ms-input-size-xl-padding-v) var(--ms-input-size-xl-padding-h);padding-right:calc(var(--ms-input-size-xl-padding-h) * 2.5);height:var(--ms-input-size-xl-height)}.ms__toggle{position:absolute;right:var(--ms-toggle-right);top:50%;transform:var(--ms-transform-center-y);pointer-events:none;color:var(--ms-toggle-icon-color);transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{transform:var(--ms-transform-center-y) rotate(var(--ms-transform-rotate-180));color:var(--ms-toggle-icon-color-open)}.ms__counter{position:absolute;right:var(--ms-counter-offset);top:50%;transform:var(--ms-transform-center-y);padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:var(--ms-transform-center-y) scale(var(--ms-transform-scale-hover))}.ms__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown-inner{flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow-y:visible}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__selected-popover{display:none;position:fixed;z-index:var(--ms-z-index-popover);background:var(--ms-selected-popover-bg);border:var(--ms-selected-popover-border);border-radius:var(--ms-selected-popover-border-radius);box-shadow:var(--ms-selected-popover-box-shadow);width:var(--ms-selected-popover-width);max-height:var(--ms-selected-popover-max-height);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding);background:var(--ms-selected-popover-header-bg);border-bottom:var(--ms-selected-popover-header-border-bottom);font-size:var(--ms-selected-popover-header-font-size);font-weight:var(--ms-selected-popover-header-font-weight);color:var(--ms-selected-popover-header-color)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size);height:var(--ms-popover-close-size);padding:0;border:none;background:var(--ms-selected-popover-close-bg);color:var(--ms-selected-popover-close-color);font-size:var(--ms-selected-popover-close-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-bg-hover);color:var(--ms-selected-popover-close-color-hover)}.ms__selected-popover-close:before{content:"";display:block;width:var(--ms-selected-popover-close-icon-size);height:var(--ms-selected-popover-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap);padding:var(--ms-selected-popover-body-padding);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed)}.ms__selected-popover-body .ms__badge-text{flex:1;min-width:0;white-space:normal;word-wrap:break-word}.ms__selected-popover-body--virtual{display:block;max-height:none;padding:0}.ms__selected-popover-body--virtual .ms__badge{height:var(--ms-badge-height-virtual, 36px);min-height:var(--ms-badge-height-virtual, 36px);max-height:var(--ms-badge-height-virtual, 36px);margin-bottom:var(--ms-selected-popover-body-gap);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer component{.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.ms--no-checkboxes .ms__option{gap:0;padding-left:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-left:0}}@layer component;@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-right:none;border-radius:var(--ms-badge-border-radius) 0 0 var(--ms-badge-border-radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal) ease,color var(--ms-transition-normal) ease}.ms__badge:hover .ms__badge-text{background:var(--ms-badge-text-bg-hover, var(--ms-badge-text-bg));color:var(--ms-badge-text-color-hover, var(--ms-badge-text-color))}.ms__badge-remove{display:flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:inherit;width:var(--ms-badge-remove-width);height:100%;flex-shrink:0;background:var(--ms-badge-remove-bg);color:var(--ms-badge-remove-color);border:var(--ms-badge-remove-border);border-left:none;border-radius:0 var(--ms-badge-border-radius) var(--ms-badge-border-radius) 0;cursor:pointer;transition:background-color var(--ms-transition-normal) ease;font-size:var(--ms-badge-remove-font-size)}.ms__badge-remove:hover{background:var(--ms-badge-remove-bg-hover)}.ms__badge-remove:focus{outline:none}.ms__badge-remove:focus-visible{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus)}.ms__badge-remove:before{content:"";display:block;width:var(--ms-badge-remove-icon-size);height:var(--ms-badge-remove-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__badge--counter{cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-bg);color:var(--ms-badge-counter-text-color);border:var(--ms-badge-counter-border);border-right:none}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-bg);color:var(--ms-badge-counter-remove-color);border:var(--ms-badge-counter-border);border-left:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover)}.ms__badge--more,.ms__badge[data-action=show-selected]{cursor:pointer}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-right:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer}.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit);border-left:var(--ms-option-border-matched)}.ms__option--selected{background:var(--ms-option-bg-selected)}.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-bg-selected))}.ms__option--disabled{opacity:var(--ms-disabled-opacity);cursor:not-allowed;background:var(--ms-option-disabled-bg)}.ms__option--disabled:hover{background:var(--ms-option-disabled-bg)}.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched);border-left:var(--ms-option-border-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-right:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-left:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;left:50%;top:40%;width:30%;height:55%;transform:translate(-50%,-50%) rotate(45deg);border:solid var(--ms-checkbox-checkmark-color);border-width:0 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}.ms__option:hover .ms__option-title{color:var(--ms-option-title-color-hover, var(--ms-option-title-color))}.ms__option--selected .ms__option-title{color:var(--ms-option-title-color-selected, var(--ms-option-title-color))}.ms__option--selected:hover .ms__option-title{color:var(--ms-option-title-color-selected-hover, var(--ms-option-title-color-selected, var(--ms-option-title-color)))}.ms__option-title mark{background:var(--ms-option-mark-bg);color:var(--ms-option-mark-color);font-weight:var(--ms-option-mark-font-weight)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top);font-size:var(--ms-option-subtitle-font-size);color:var(--ms-option-subtitle-color);line-height:var(--ms-option-subtitle-line-height)}.ms__option:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-hover, var(--ms-option-subtitle-color))}.ms__option--selected .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color))}.ms__option--selected:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected-hover, var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color)))}.ms__empty{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__input-wrapper{direction:rtl}.ms--rtl .ms__input{text-align:right;padding-left:var(--ms-input-padding-right);padding-right:var(--ms-input-padding-h)}.ms--rtl .ms__toggle{left:var(--ms-toggle-right)!important;right:auto!important}.ms--rtl .ms__counter{left:var(--ms-counter-offset)!important;right:auto!important}.ms--rtl .ms__dropdown{direction:rtl;text-align:right}.ms--rtl .ms__option{flex-direction:row-reverse}.ms--rtl .ms__checkbox{margin-left:var(--ms-spacing-sm);margin-right:0}.ms--rtl .ms__option-content{text-align:right}.ms--rtl .ms__option-icon{margin-left:var(--ms-spacing-xs);margin-right:0}.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badges--right{margin-left:0;margin-right:var(--ms-badges-margin-right)}.ms--rtl .ms__badges--left{margin-right:0;margin-left:var(--ms-badges-margin-left)}.ms--rtl .ms__badge{flex-direction:row-reverse}.ms--rtl .ms__badge-remove{border-radius:var(--ms-badge-border-radius) 0 0 var(--ms-badge-border-radius);border-left:var(--ms-badge-remove-border);border-right:none}.ms--rtl .ms__badge-text{border-radius:0 var(--ms-badge-border-radius) var(--ms-badge-border-radius) 0;border-right:var(--ms-badge-text-border);border-left:none}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__count-display--right{margin-left:0;margin-right:var(--ms-count-display-margin-right)}.ms--rtl .ms__count-display--left{margin-right:0;margin-left:var(--ms-count-display-margin-left)}.ms--rtl .ms__counter-wrapper{flex-direction:row-reverse}.ms--rtl .ms__selected-popover{direction:rtl;text-align:right}.ms--rtl .ms__actions{direction:rtl}.ms--rtl .ms__group-label,.ms--rtl .ms__empty{text-align:right}.ms--rtl .ms__hint{direction:rtl;text-align:right}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, $s = typeof HTMLElement < "u" ? HTMLElement : class {
|
|
3082
|
-
},
|
|
3107
|
+
const Bs = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#e5e7eb, #3a3a3a));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-input-bg));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-input-bg));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-input-size-xs-font: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-input-size-xs-padding-v: calc(.4 * var(--ms-rem));--ms-input-size-xs-padding-h: calc(.8 * var(--ms-rem));--ms-input-size-xs-height: calc(var(--base-input-size-xs-height, 3.1) * var(--ms-rem));--ms-input-size-sm-font: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-size-sm-padding-v: calc(.5 * var(--ms-rem));--ms-input-size-sm-padding-h: calc(1 * var(--ms-rem));--ms-input-size-sm-height: calc(var(--base-input-size-sm-height, 3.3) * var(--ms-rem));--ms-input-size-md-font: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-size-md-padding-v: calc(.8 * var(--ms-rem));--ms-input-size-md-padding-h: calc(1.2 * var(--ms-rem));--ms-input-size-md-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-size-lg-font: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-input-size-lg-padding-v: calc(1 * var(--ms-rem));--ms-input-size-lg-padding-h: calc(1.4 * var(--ms-rem));--ms-input-size-lg-height: calc(var(--base-input-size-lg-height, 3.8) * var(--ms-rem));--ms-input-size-xl-font: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-input-size-xl-padding-v: calc(1.2 * var(--ms-rem));--ms-input-size-xl-padding-h: calc(1.6 * var(--ms-rem));--ms-input-size-xl-height: calc(var(--base-input-size-xl-height, 4.1) * var(--ms-rem));--ms-toggle-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: calc(.2 * var(--ms-rem));--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6L18 18M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round' fill='none'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--ms-icon-remove);--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-z-index-popover: 10000;--ms-selected-popover-width: calc(32 * var(--ms-rem));--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-right:var(--ms-input-padding-right);font-size:var(--ms-input-font-size);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);background:var(--ms-input-bg);color:var(--ms-input-color);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input:hover:not(:focus):not(:disabled){border:var(--ms-input-border-hover)}.ms__input:focus{outline:none;border:var(--ms-input-border-focus)}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__input.ms__input--xs{font-size:var(--ms-input-size-xs-font);padding:var(--ms-input-size-xs-padding-v) var(--ms-input-size-xs-padding-h);padding-right:calc(var(--ms-input-size-xs-padding-h) * 2.5);height:var(--ms-input-size-xs-height)}.ms__input.ms__input--sm{font-size:var(--ms-input-size-sm-font);padding:var(--ms-input-size-sm-padding-v) var(--ms-input-size-sm-padding-h);padding-right:calc(var(--ms-input-size-sm-padding-h) * 2.5);height:var(--ms-input-size-sm-height)}.ms__input.ms__input--lg{font-size:var(--ms-input-size-lg-font);padding:var(--ms-input-size-lg-padding-v) var(--ms-input-size-lg-padding-h);padding-right:calc(var(--ms-input-size-lg-padding-h) * 2.5);height:var(--ms-input-size-lg-height)}.ms__input.ms__input--xl{font-size:var(--ms-input-size-xl-font);padding:var(--ms-input-size-xl-padding-v) var(--ms-input-size-xl-padding-h);padding-right:calc(var(--ms-input-size-xl-padding-h) * 2.5);height:var(--ms-input-size-xl-height)}.ms__toggle{position:absolute;right:var(--ms-toggle-right);top:50%;transform:var(--ms-transform-center-y);pointer-events:none;color:var(--ms-toggle-icon-color);transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{transform:var(--ms-transform-center-y) rotate(var(--ms-transform-rotate-180));color:var(--ms-toggle-icon-color-open)}.ms__counter{position:absolute;right:var(--ms-counter-offset);top:50%;transform:var(--ms-transform-center-y);padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:var(--ms-transform-center-y) scale(var(--ms-transform-scale-hover))}.ms__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown-inner{flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow-y:visible}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__selected-popover{display:none;position:fixed;z-index:var(--ms-z-index-popover);background:var(--ms-selected-popover-bg);border:var(--ms-selected-popover-border);border-radius:var(--ms-selected-popover-border-radius);box-shadow:var(--ms-selected-popover-box-shadow);width:var(--ms-selected-popover-width);max-height:var(--ms-selected-popover-max-height);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding);background:var(--ms-selected-popover-header-bg);border-bottom:var(--ms-selected-popover-header-border-bottom);font-size:var(--ms-selected-popover-header-font-size);font-weight:var(--ms-selected-popover-header-font-weight);color:var(--ms-selected-popover-header-color)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size);height:var(--ms-popover-close-size);padding:0;border:none;background:var(--ms-selected-popover-close-bg);color:var(--ms-selected-popover-close-color);font-size:var(--ms-selected-popover-close-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-bg-hover);color:var(--ms-selected-popover-close-color-hover)}.ms__selected-popover-close:before{content:"";display:block;width:var(--ms-selected-popover-close-icon-size);height:var(--ms-selected-popover-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap);padding:var(--ms-selected-popover-body-padding);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed)}.ms__selected-popover-body .ms__badge-text{flex:1;min-width:0;white-space:normal;word-wrap:break-word}.ms__selected-popover-body--virtual{display:block;max-height:none;padding:0}.ms__selected-popover-body--virtual .ms__badge{height:var(--ms-badge-height-virtual, 36px);min-height:var(--ms-badge-height-virtual, 36px);max-height:var(--ms-badge-height-virtual, 36px);margin-bottom:var(--ms-selected-popover-body-gap);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer component{.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.ms--no-checkboxes .ms__option{gap:0;padding-left:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-left:0}}@layer component;@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-right:none;border-radius:var(--ms-badge-border-radius) 0 0 var(--ms-badge-border-radius);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal) ease,color var(--ms-transition-normal) ease}.ms__badge:hover .ms__badge-text{background:var(--ms-badge-text-bg-hover, var(--ms-badge-text-bg));color:var(--ms-badge-text-color-hover, var(--ms-badge-text-color))}.ms__badge-remove{display:flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:inherit;width:var(--ms-badge-remove-width);height:100%;flex-shrink:0;background:var(--ms-badge-remove-bg);color:var(--ms-badge-remove-color);border:var(--ms-badge-remove-border);border-left:none;border-radius:0 var(--ms-badge-border-radius) var(--ms-badge-border-radius) 0;cursor:pointer;transition:background-color var(--ms-transition-normal) ease;font-size:var(--ms-badge-remove-font-size)}.ms__badge-remove:hover{background:var(--ms-badge-remove-bg-hover)}.ms__badge-remove:focus{outline:none}.ms__badge-remove:focus-visible{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus)}.ms__badge-remove:before{content:"";display:block;width:var(--ms-badge-remove-icon-size);height:var(--ms-badge-remove-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__badge--counter{cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-bg);color:var(--ms-badge-counter-text-color);border:var(--ms-badge-counter-border);border-right:none}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-bg);color:var(--ms-badge-counter-remove-color);border:var(--ms-badge-counter-border);border-left:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover)}.ms__badge--more,.ms__badge[data-action=show-selected]{cursor:pointer}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-right:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit);border-left:var(--ms-option-border-matched)}.ms__option--selected{background:var(--ms-option-bg-selected)}.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-bg-selected))}.ms__option--disabled{opacity:var(--ms-disabled-opacity);cursor:not-allowed;background:var(--ms-option-disabled-bg)}.ms__option--disabled:hover{background:var(--ms-option-disabled-bg)}.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched);border-left:var(--ms-option-border-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-right:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-left:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;left:50%;top:40%;width:30%;height:55%;transform:translate(-50%,-50%) rotate(45deg);border:solid var(--ms-checkbox-checkmark-color);border-width:0 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}.ms__option:hover .ms__option-title{color:var(--ms-option-title-color-hover, var(--ms-option-title-color))}.ms__option--selected .ms__option-title{color:var(--ms-option-title-color-selected, var(--ms-option-title-color))}.ms__option--selected:hover .ms__option-title{color:var(--ms-option-title-color-selected-hover, var(--ms-option-title-color-selected, var(--ms-option-title-color)))}.ms__option-title mark{background:var(--ms-option-mark-bg);color:var(--ms-option-mark-color);font-weight:var(--ms-option-mark-font-weight)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top);font-size:var(--ms-option-subtitle-font-size);color:var(--ms-option-subtitle-color);line-height:var(--ms-option-subtitle-line-height)}.ms__option:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-hover, var(--ms-option-subtitle-color))}.ms__option--selected .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color))}.ms__option--selected:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected-hover, var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color)))}.ms__empty{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__input-wrapper{direction:rtl}.ms--rtl .ms__input{text-align:right;padding-left:var(--ms-input-padding-right);padding-right:var(--ms-input-padding-h)}.ms--rtl .ms__toggle{left:var(--ms-toggle-right)!important;right:auto!important}.ms--rtl .ms__counter{left:var(--ms-counter-offset)!important;right:auto!important}.ms--rtl .ms__dropdown{direction:rtl;text-align:right}.ms--rtl .ms__option{flex-direction:row-reverse}.ms--rtl .ms__checkbox{margin-left:var(--ms-spacing-sm);margin-right:0}.ms--rtl .ms__option-content{text-align:right}.ms--rtl .ms__option-icon{margin-left:var(--ms-spacing-xs);margin-right:0}.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badges--right{margin-left:0;margin-right:var(--ms-badges-margin-right)}.ms--rtl .ms__badges--left{margin-right:0;margin-left:var(--ms-badges-margin-left)}.ms--rtl .ms__badge{flex-direction:row-reverse}.ms--rtl .ms__badge-remove{border-radius:var(--ms-badge-border-radius) 0 0 var(--ms-badge-border-radius);border-left:var(--ms-badge-remove-border);border-right:none}.ms--rtl .ms__badge-text{border-radius:0 var(--ms-badge-border-radius) var(--ms-badge-border-radius) 0;border-right:var(--ms-badge-text-border);border-left:none}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__count-display--right{margin-left:0;margin-right:var(--ms-count-display-margin-right)}.ms--rtl .ms__count-display--left{margin-right:0;margin-left:var(--ms-count-display-margin-left)}.ms--rtl .ms__counter-wrapper{flex-direction:row-reverse}.ms--rtl .ms__selected-popover{direction:rtl;text-align:right}.ms--rtl .ms__actions{direction:rtl}.ms--rtl .ms__group-label,.ms--rtl .ms__empty{text-align:right}.ms--rtl .ms__hint{direction:rtl;text-align:right}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, $s = typeof HTMLElement < "u" ? HTMLElement : class {
|
|
3108
|
+
}, Ae = [
|
|
3083
3109
|
// Strings
|
|
3084
3110
|
{ attr: "search-hint", key: "searchHint", parser: "string-or-undefined" },
|
|
3085
3111
|
{ attr: "search-placeholder", key: "searchPlaceholder", parser: "string", default: "Search..." },
|
|
@@ -3238,7 +3264,7 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
3238
3264
|
{ attr: "enable-badge-tooltips", key: "isBadgeTooltipsEnabled", parser: "bool-default-false" },
|
|
3239
3265
|
{ attr: "enable-option-tooltips", key: "isOptionTooltipsEnabled", parser: "bool-default-false" },
|
|
3240
3266
|
{ attr: "option-tooltip-follow-cursor", key: "isOptionTooltipFollowCursor", parser: "bool-default-false" }
|
|
3241
|
-
], Rs = new Map(
|
|
3267
|
+
], Rs = new Map(Ae.map((o) => [o.attr, o])), Je = [
|
|
3242
3268
|
{ key: "valueMember", field: "_valueMember" },
|
|
3243
3269
|
{ key: "displayValueMember", field: "_displayValueMember" },
|
|
3244
3270
|
{ key: "searchValueMember", field: "_searchValueMember" },
|
|
@@ -3280,11 +3306,11 @@ function Ze(o, e) {
|
|
|
3280
3306
|
return e === "true";
|
|
3281
3307
|
}
|
|
3282
3308
|
}
|
|
3283
|
-
const
|
|
3309
|
+
const Pe = /* @__PURE__ */ new Set();
|
|
3284
3310
|
function gt() {
|
|
3285
|
-
return Array.from(
|
|
3311
|
+
return Array.from(Pe);
|
|
3286
3312
|
}
|
|
3287
|
-
class
|
|
3313
|
+
class Be extends $s {
|
|
3288
3314
|
constructor() {
|
|
3289
3315
|
super();
|
|
3290
3316
|
h(this, "picker");
|
|
@@ -3361,7 +3387,7 @@ class ze extends $s {
|
|
|
3361
3387
|
}
|
|
3362
3388
|
static get observedAttributes() {
|
|
3363
3389
|
return [
|
|
3364
|
-
...
|
|
3390
|
+
...Ae.map((t) => t.attr),
|
|
3365
3391
|
// Out-of-table attributes (handled by special-case logic in attributeChangedCallback)
|
|
3366
3392
|
"initial-values",
|
|
3367
3393
|
"show-debug-info"
|
|
@@ -3379,12 +3405,12 @@ class ze extends $s {
|
|
|
3379
3405
|
(t = this.picker) == null || t.clearAll();
|
|
3380
3406
|
}
|
|
3381
3407
|
connectedCallback() {
|
|
3382
|
-
|
|
3408
|
+
Pe.add(this), this.render();
|
|
3383
3409
|
const t = this.parseDeclarativeOptions();
|
|
3384
3410
|
t && (this._options && this._options.length > 0 && O.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), this._options = t, this._hasDeclarativeOptions = !0), this.initializePicker();
|
|
3385
3411
|
}
|
|
3386
3412
|
disconnectedCallback() {
|
|
3387
|
-
|
|
3413
|
+
Pe.delete(this), this.picker && this.picker.destroy();
|
|
3388
3414
|
}
|
|
3389
3415
|
attributeChangedCallback(t, s, i) {
|
|
3390
3416
|
var a;
|
|
@@ -3396,13 +3422,13 @@ class ze extends $s {
|
|
|
3396
3422
|
}
|
|
3397
3423
|
const r = Rs.get(t);
|
|
3398
3424
|
if (r) {
|
|
3399
|
-
const n = Ze(r, i), l = (a = Je.find((u) => u.key === r.key)) == null ? void 0 : a.field,
|
|
3425
|
+
const n = Ze(r, i), l = (a = Je.find((u) => u.key === r.key)) == null ? void 0 : a.field, c = n === void 0 && l ? this[l] : n;
|
|
3400
3426
|
if (this._batchDepth > 0) {
|
|
3401
|
-
this._batchPartial[r.key] =
|
|
3427
|
+
this._batchPartial[r.key] = c;
|
|
3402
3428
|
return;
|
|
3403
3429
|
}
|
|
3404
|
-
const
|
|
3405
|
-
if (this.picker.updateOptions(
|
|
3430
|
+
const d = { [r.key]: c };
|
|
3431
|
+
if (this.picker.updateOptions(d)) return;
|
|
3406
3432
|
}
|
|
3407
3433
|
if (this._batchDepth > 0) {
|
|
3408
3434
|
this._batchNeedsReinit = !0;
|
|
@@ -3455,19 +3481,19 @@ class ze extends $s {
|
|
|
3455
3481
|
a.className = "ms__debug-stats", i.appendChild(r), i.appendChild(a), s.appendChild(i), this.shadow.appendChild(s), this.updateDebugInfo();
|
|
3456
3482
|
}
|
|
3457
3483
|
updateDebugInfo() {
|
|
3458
|
-
var
|
|
3484
|
+
var m, b;
|
|
3459
3485
|
const t = this.shadow.querySelector(".ms__debug-stats");
|
|
3460
3486
|
if (!t || !this.picker) return;
|
|
3461
|
-
const s = "1.12.0-
|
|
3487
|
+
const s = "1.12.0-rc07", i = gt().length, a = this.picker.getSelected().length, n = ((m = this._options) == null ? void 0 : m.length) || 0, l = this.picker, c = l.isOpen || !1, d = l.searchTerm || "", p = l.isLoading || !1, u = ((b = l.filteredOptions) == null ? void 0 : b.length) || 0;
|
|
3462
3488
|
t.innerHTML = `
|
|
3463
3489
|
<span>Version: ${s}</span>
|
|
3464
3490
|
<span>Total Instances: ${i}</span>
|
|
3465
3491
|
<span>Options: ${n}</span>
|
|
3466
3492
|
<span>Filtered: ${u}</span>
|
|
3467
3493
|
<span>Selected: ${a}</span>
|
|
3468
|
-
<span>Dropdown: ${
|
|
3469
|
-
<span>Search: ${
|
|
3470
|
-
<span>Loading: ${
|
|
3494
|
+
<span>Dropdown: ${c ? "Open" : "Closed"}</span>
|
|
3495
|
+
<span>Search: ${d || "none"}</span>
|
|
3496
|
+
<span>Loading: ${p ? "Yes" : "No"}</span>
|
|
3471
3497
|
`, setTimeout(() => {
|
|
3472
3498
|
this.getAttribute("show-debug-info") === "true" && this.updateDebugInfo();
|
|
3473
3499
|
}, 500);
|
|
@@ -3482,32 +3508,32 @@ class ze extends $s {
|
|
|
3482
3508
|
if (s.length === 0)
|
|
3483
3509
|
return null;
|
|
3484
3510
|
let i = !1;
|
|
3485
|
-
for (const
|
|
3486
|
-
if (
|
|
3487
|
-
const
|
|
3488
|
-
value:
|
|
3489
|
-
label: ((a =
|
|
3511
|
+
for (const c of s)
|
|
3512
|
+
if (c.tagName === "OPTION") {
|
|
3513
|
+
const d = c, p = {
|
|
3514
|
+
value: d.value || ((r = d.textContent) == null ? void 0 : r.trim()) || "",
|
|
3515
|
+
label: ((a = d.textContent) == null ? void 0 : a.trim()) || d.value || ""
|
|
3490
3516
|
};
|
|
3491
|
-
|
|
3492
|
-
} else if (
|
|
3493
|
-
const
|
|
3494
|
-
for (const
|
|
3517
|
+
d.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(p.value)), d.hasAttribute("disabled") && (p.disabled = !0), d.hasAttribute("data-icon") && (p.icon = d.getAttribute("data-icon")), d.hasAttribute("data-subtitle") && (p.subtitle = d.getAttribute("data-subtitle")), t.push(p), i = !0;
|
|
3518
|
+
} else if (c.tagName === "OPTGROUP") {
|
|
3519
|
+
const d = c, p = d.label || d.getAttribute("label") || "Group", u = Array.from(d.querySelectorAll("option"));
|
|
3520
|
+
for (const m of u) {
|
|
3495
3521
|
const b = {
|
|
3496
|
-
value:
|
|
3497
|
-
label: ((l =
|
|
3498
|
-
group:
|
|
3522
|
+
value: m.value || ((n = m.textContent) == null ? void 0 : n.trim()) || "",
|
|
3523
|
+
label: ((l = m.textContent) == null ? void 0 : l.trim()) || m.value || "",
|
|
3524
|
+
group: p
|
|
3499
3525
|
};
|
|
3500
|
-
|
|
3526
|
+
m.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(b.value)), m.hasAttribute("disabled") && (b.disabled = !0), m.hasAttribute("data-icon") && (b.icon = m.getAttribute("data-icon")), m.hasAttribute("data-subtitle") && (b.subtitle = m.getAttribute("data-subtitle")), t.push(b), i = !0;
|
|
3501
3527
|
}
|
|
3502
3528
|
}
|
|
3503
|
-
return i ? (O.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), s.forEach((
|
|
3504
|
-
(
|
|
3529
|
+
return i ? (O.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), s.forEach((c) => {
|
|
3530
|
+
(c.tagName === "OPTION" || c.tagName === "OPTGROUP") && c.remove();
|
|
3505
3531
|
}), t) : null;
|
|
3506
3532
|
}
|
|
3507
3533
|
/** Parse all observed attributes via ATTRIBUTE_TABLE into a partial config object. */
|
|
3508
3534
|
parseAttributesFromTable() {
|
|
3509
3535
|
const t = {};
|
|
3510
|
-
for (const s of
|
|
3536
|
+
for (const s of Ae) {
|
|
3511
3537
|
const i = Ze(s, this.getAttribute(s.attr));
|
|
3512
3538
|
i !== void 0 && (t[s.key] = i);
|
|
3513
3539
|
}
|
|
@@ -4079,8 +4105,8 @@ class ze extends $s {
|
|
|
4079
4105
|
getSelected() {
|
|
4080
4106
|
return this.picker ? this.picker.getSelected() : [];
|
|
4081
4107
|
}
|
|
4082
|
-
setSelected(t) {
|
|
4083
|
-
this.picker && this.picker.setSelected(t);
|
|
4108
|
+
setSelected(t, s = {}) {
|
|
4109
|
+
this.picker && this.picker.setSelected(t, s);
|
|
4084
4110
|
}
|
|
4085
4111
|
getValue() {
|
|
4086
4112
|
return this.picker ? this.picker.getValue() : null;
|
|
@@ -4093,13 +4119,13 @@ class ze extends $s {
|
|
|
4093
4119
|
// makes `form.reset()`, `form.elements`, and (in the future) constraint
|
|
4094
4120
|
// validation actually do something. Without this flag the element is
|
|
4095
4121
|
// invisible to the form lifecycle even when it has a `name`.
|
|
4096
|
-
h(
|
|
4097
|
-
typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect",
|
|
4122
|
+
h(Be, "formAssociated", !0);
|
|
4123
|
+
typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect", Be));
|
|
4098
4124
|
typeof window < "u" && (window.components = window.components || {}, window.components["web-multiselect"] = {
|
|
4099
|
-
version: () => "1.12.0-
|
|
4125
|
+
version: () => "1.12.0-rc07",
|
|
4100
4126
|
config: {
|
|
4101
4127
|
name: "@keenmate/web-multiselect",
|
|
4102
|
-
version: "1.12.0-
|
|
4128
|
+
version: "1.12.0-rc07",
|
|
4103
4129
|
author: "Keenmate",
|
|
4104
4130
|
license: "MIT",
|
|
4105
4131
|
repository: "git+https://github.com/keenmate/web-multiselect.git",
|
|
@@ -4113,13 +4139,13 @@ typeof window < "u" && (window.components = window.components || {}, window.comp
|
|
|
4113
4139
|
getCategories: () => [...ys]
|
|
4114
4140
|
},
|
|
4115
4141
|
register: () => {
|
|
4116
|
-
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect",
|
|
4142
|
+
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", Be);
|
|
4117
4143
|
},
|
|
4118
4144
|
getInstances: () => gt()
|
|
4119
4145
|
});
|
|
4120
4146
|
export {
|
|
4121
4147
|
ys as LOGGING_CATEGORIES,
|
|
4122
|
-
|
|
4148
|
+
Be as MultiSelectElement,
|
|
4123
4149
|
zs as WebMultiSelect,
|
|
4124
4150
|
O as dataLogger,
|
|
4125
4151
|
xs as disableLogging,
|