@keenmate/web-multiselect 1.12.0-rc07 → 1.12.0-rc08
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 +8 -11
- package/component-variables.manifest.json +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/multiselect.js +783 -702
- package/dist/multiselect.umd.js +15 -14
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/css/controls.css +10 -2
- package/src/css/floating.css +1 -0
- package/src/css/variables.css +29 -10
package/dist/multiselect.js
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var h = (o, e, t) =>
|
|
4
|
-
const
|
|
1
|
+
var yt = Object.defineProperty;
|
|
2
|
+
var wt = (o, e, t) => e in o ? yt(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t;
|
|
3
|
+
var h = (o, e, t) => wt(o, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
const me = Math.min, Y = Math.max, pe = Math.round, de = Math.floor, F = (o) => ({
|
|
5
5
|
x: o,
|
|
6
6
|
y: o
|
|
7
|
-
}),
|
|
7
|
+
}), Ct = {
|
|
8
8
|
left: "right",
|
|
9
9
|
right: "left",
|
|
10
10
|
bottom: "top",
|
|
11
11
|
top: "bottom"
|
|
12
|
-
},
|
|
12
|
+
}, xt = {
|
|
13
13
|
start: "end",
|
|
14
14
|
end: "start"
|
|
15
15
|
};
|
|
16
|
-
function
|
|
17
|
-
return
|
|
16
|
+
function Re(o, e, t) {
|
|
17
|
+
return Y(o, me(e, t));
|
|
18
18
|
}
|
|
19
|
-
function
|
|
19
|
+
function ge(o, e) {
|
|
20
20
|
return typeof o == "function" ? o(e) : o;
|
|
21
21
|
}
|
|
22
22
|
function J(o) {
|
|
23
23
|
return o.split("-")[0];
|
|
24
24
|
}
|
|
25
|
-
function
|
|
25
|
+
function fe(o) {
|
|
26
26
|
return o.split("-")[1];
|
|
27
27
|
}
|
|
28
|
-
function
|
|
28
|
+
function st(o) {
|
|
29
29
|
return o === "x" ? "y" : "x";
|
|
30
30
|
}
|
|
31
|
-
function
|
|
31
|
+
function ot(o) {
|
|
32
32
|
return o === "y" ? "height" : "width";
|
|
33
33
|
}
|
|
34
|
-
const
|
|
34
|
+
const St = /* @__PURE__ */ new Set(["top", "bottom"]);
|
|
35
35
|
function G(o) {
|
|
36
|
-
return
|
|
36
|
+
return St.has(J(o)) ? "y" : "x";
|
|
37
37
|
}
|
|
38
|
-
function
|
|
39
|
-
return
|
|
38
|
+
function it(o) {
|
|
39
|
+
return st(G(o));
|
|
40
40
|
}
|
|
41
|
-
function
|
|
41
|
+
function Tt(o, e, t) {
|
|
42
42
|
t === void 0 && (t = !1);
|
|
43
|
-
const s =
|
|
44
|
-
let
|
|
45
|
-
return e.reference[r] > e.floating[r] && (
|
|
43
|
+
const s = fe(o), i = it(o), r = ot(i);
|
|
44
|
+
let n = i === "x" ? s === (t ? "end" : "start") ? "right" : "left" : s === "start" ? "bottom" : "top";
|
|
45
|
+
return e.reference[r] > e.floating[r] && (n = ue(n)), [n, ue(n)];
|
|
46
46
|
}
|
|
47
|
-
function
|
|
48
|
-
const e =
|
|
47
|
+
function It(o) {
|
|
48
|
+
const e = ue(o);
|
|
49
49
|
return [xe(o), e, xe(e)];
|
|
50
50
|
}
|
|
51
51
|
function xe(o) {
|
|
52
|
-
return o.replace(/start|end/g, (e) =>
|
|
52
|
+
return o.replace(/start|end/g, (e) => xt[e]);
|
|
53
53
|
}
|
|
54
|
-
const
|
|
55
|
-
function
|
|
54
|
+
const Fe = ["left", "right"], He = ["right", "left"], Mt = ["top", "bottom"], At = ["bottom", "top"];
|
|
55
|
+
function Ot(o, e, t) {
|
|
56
56
|
switch (o) {
|
|
57
57
|
case "top":
|
|
58
58
|
case "bottom":
|
|
59
|
-
return t ? e ?
|
|
59
|
+
return t ? e ? He : Fe : e ? Fe : He;
|
|
60
60
|
case "left":
|
|
61
61
|
case "right":
|
|
62
|
-
return e ?
|
|
62
|
+
return e ? Mt : At;
|
|
63
63
|
default:
|
|
64
64
|
return [];
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
function
|
|
68
|
-
const i =
|
|
69
|
-
let r =
|
|
70
|
-
return i && (r = r.map((
|
|
67
|
+
function Pt(o, e, t, s) {
|
|
68
|
+
const i = fe(o);
|
|
69
|
+
let r = Ot(J(o), t === "start", s);
|
|
70
|
+
return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(xe)))), r;
|
|
71
71
|
}
|
|
72
|
-
function
|
|
73
|
-
return o.replace(/left|right|bottom|top/g, (e) =>
|
|
72
|
+
function ue(o) {
|
|
73
|
+
return o.replace(/left|right|bottom|top/g, (e) => Ct[e]);
|
|
74
74
|
}
|
|
75
|
-
function
|
|
75
|
+
function Lt(o) {
|
|
76
76
|
return {
|
|
77
77
|
top: 0,
|
|
78
78
|
right: 0,
|
|
@@ -81,15 +81,15 @@ function Ot(o) {
|
|
|
81
81
|
...o
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
function
|
|
85
|
-
return typeof o != "number" ?
|
|
84
|
+
function Vt(o) {
|
|
85
|
+
return typeof o != "number" ? Lt(o) : {
|
|
86
86
|
top: o,
|
|
87
87
|
right: o,
|
|
88
88
|
bottom: o,
|
|
89
89
|
left: o
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
-
function
|
|
92
|
+
function be(o) {
|
|
93
93
|
const {
|
|
94
94
|
x: e,
|
|
95
95
|
y: t,
|
|
@@ -107,12 +107,12 @@ function ue(o) {
|
|
|
107
107
|
y: t
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
|
-
function
|
|
110
|
+
function Ne(o, e, t) {
|
|
111
111
|
let {
|
|
112
112
|
reference: s,
|
|
113
113
|
floating: i
|
|
114
114
|
} = o;
|
|
115
|
-
const r = G(e),
|
|
115
|
+
const r = G(e), n = it(e), a = ot(n), 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[a] / 2 - i[a] / 2;
|
|
116
116
|
let m;
|
|
117
117
|
switch (l) {
|
|
118
118
|
case "top":
|
|
@@ -145,37 +145,37 @@ function He(o, e, t) {
|
|
|
145
145
|
y: s.y
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
|
-
switch (
|
|
148
|
+
switch (fe(e)) {
|
|
149
149
|
case "start":
|
|
150
|
-
m[
|
|
150
|
+
m[n] -= u * (t && c ? -1 : 1);
|
|
151
151
|
break;
|
|
152
152
|
case "end":
|
|
153
|
-
m[
|
|
153
|
+
m[n] += u * (t && c ? -1 : 1);
|
|
154
154
|
break;
|
|
155
155
|
}
|
|
156
156
|
return m;
|
|
157
157
|
}
|
|
158
|
-
const
|
|
158
|
+
const Et = async (o, e, t) => {
|
|
159
159
|
const {
|
|
160
160
|
placement: s = "bottom",
|
|
161
161
|
strategy: i = "absolute",
|
|
162
162
|
middleware: r = [],
|
|
163
|
-
platform:
|
|
164
|
-
} = t,
|
|
165
|
-
let c = await
|
|
163
|
+
platform: n
|
|
164
|
+
} = t, a = r.filter(Boolean), l = await (n.isRTL == null ? void 0 : n.isRTL(e));
|
|
165
|
+
let c = await n.getElementRects({
|
|
166
166
|
reference: o,
|
|
167
167
|
floating: e,
|
|
168
168
|
strategy: i
|
|
169
169
|
}), {
|
|
170
170
|
x: d,
|
|
171
171
|
y: p
|
|
172
|
-
} =
|
|
173
|
-
for (let v = 0; v <
|
|
172
|
+
} = Ne(c, s, l), u = s, m = {}, b = 0;
|
|
173
|
+
for (let v = 0; v < a.length; v++) {
|
|
174
174
|
const {
|
|
175
175
|
name: f,
|
|
176
176
|
fn: g
|
|
177
|
-
} =
|
|
178
|
-
x:
|
|
177
|
+
} = a[v], {
|
|
178
|
+
x: k,
|
|
179
179
|
y,
|
|
180
180
|
data: w,
|
|
181
181
|
reset: M
|
|
@@ -187,26 +187,26 @@ const Pt = async (o, e, t) => {
|
|
|
187
187
|
strategy: i,
|
|
188
188
|
middlewareData: m,
|
|
189
189
|
rects: c,
|
|
190
|
-
platform:
|
|
190
|
+
platform: n,
|
|
191
191
|
elements: {
|
|
192
192
|
reference: o,
|
|
193
193
|
floating: e
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
|
-
d =
|
|
196
|
+
d = k ?? d, p = y ?? p, m = {
|
|
197
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 && (c = M.rects === !0 ? await
|
|
202
|
+
}, M && b <= 50 && (b++, typeof M == "object" && (M.placement && (u = M.placement), M.rects && (c = M.rects === !0 ? await n.getElementRects({
|
|
203
203
|
reference: o,
|
|
204
204
|
floating: e,
|
|
205
205
|
strategy: i
|
|
206
206
|
}) : M.rects), {
|
|
207
207
|
x: d,
|
|
208
208
|
y: p
|
|
209
|
-
} =
|
|
209
|
+
} = Ne(c, u, l)), v = -1);
|
|
210
210
|
}
|
|
211
211
|
return {
|
|
212
212
|
x: d,
|
|
@@ -216,15 +216,15 @@ const Pt = async (o, e, t) => {
|
|
|
216
216
|
middlewareData: m
|
|
217
217
|
};
|
|
218
218
|
};
|
|
219
|
-
async function
|
|
219
|
+
async function rt(o, e) {
|
|
220
220
|
var t;
|
|
221
221
|
e === void 0 && (e = {});
|
|
222
222
|
const {
|
|
223
223
|
x: s,
|
|
224
224
|
y: i,
|
|
225
225
|
platform: r,
|
|
226
|
-
rects:
|
|
227
|
-
elements:
|
|
226
|
+
rects: n,
|
|
227
|
+
elements: a,
|
|
228
228
|
strategy: l
|
|
229
229
|
} = o, {
|
|
230
230
|
boundary: c = "clippingAncestors",
|
|
@@ -232,28 +232,28 @@ async function st(o, e) {
|
|
|
232
232
|
elementContext: p = "floating",
|
|
233
233
|
altBoundary: u = !1,
|
|
234
234
|
padding: m = 0
|
|
235
|
-
} =
|
|
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(
|
|
235
|
+
} = ge(e, o), b = Vt(m), f = a[u ? p === "floating" ? "reference" : "floating" : p], g = be(await r.getClippingRect({
|
|
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(a.floating)),
|
|
237
237
|
boundary: c,
|
|
238
238
|
rootBoundary: d,
|
|
239
239
|
strategy: l
|
|
240
|
-
})),
|
|
240
|
+
})), k = p === "floating" ? {
|
|
241
241
|
x: s,
|
|
242
242
|
y: i,
|
|
243
|
-
width:
|
|
244
|
-
height:
|
|
245
|
-
} :
|
|
243
|
+
width: n.floating.width,
|
|
244
|
+
height: n.floating.height
|
|
245
|
+
} : n.reference, y = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), w = await (r.isElement == null ? void 0 : r.isElement(y)) ? await (r.getScale == null ? void 0 : r.getScale(y)) || {
|
|
246
246
|
x: 1,
|
|
247
247
|
y: 1
|
|
248
248
|
} : {
|
|
249
249
|
x: 1,
|
|
250
250
|
y: 1
|
|
251
|
-
}, M =
|
|
252
|
-
elements:
|
|
253
|
-
rect:
|
|
251
|
+
}, M = be(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
252
|
+
elements: a,
|
|
253
|
+
rect: k,
|
|
254
254
|
offsetParent: y,
|
|
255
255
|
strategy: l
|
|
256
|
-
}) :
|
|
256
|
+
}) : k);
|
|
257
257
|
return {
|
|
258
258
|
top: (g.top - M.top + b.top) / w.y,
|
|
259
259
|
bottom: (M.bottom - g.bottom + b.bottom) / w.y,
|
|
@@ -261,7 +261,7 @@ async function st(o, e) {
|
|
|
261
261
|
right: (M.right - g.right + b.right) / w.x
|
|
262
262
|
};
|
|
263
263
|
}
|
|
264
|
-
const
|
|
264
|
+
const Dt = function(o) {
|
|
265
265
|
return o === void 0 && (o = {}), {
|
|
266
266
|
name: "flip",
|
|
267
267
|
options: o,
|
|
@@ -270,8 +270,8 @@ const Lt = function(o) {
|
|
|
270
270
|
const {
|
|
271
271
|
placement: i,
|
|
272
272
|
middlewareData: r,
|
|
273
|
-
rects:
|
|
274
|
-
initialPlacement:
|
|
273
|
+
rects: n,
|
|
274
|
+
initialPlacement: a,
|
|
275
275
|
platform: l,
|
|
276
276
|
elements: c
|
|
277
277
|
} = e, {
|
|
@@ -282,54 +282,54 @@ const Lt = function(o) {
|
|
|
282
282
|
fallbackAxisSideDirection: b = "none",
|
|
283
283
|
flipAlignment: v = !0,
|
|
284
284
|
...f
|
|
285
|
-
} =
|
|
285
|
+
} = ge(o, e);
|
|
286
286
|
if ((t = r.arrow) != null && t.alignmentOffset)
|
|
287
287
|
return {};
|
|
288
|
-
const g = J(i),
|
|
289
|
-
!u &&
|
|
290
|
-
const j = [
|
|
291
|
-
let
|
|
288
|
+
const g = J(i), k = G(a), y = J(a) === a, w = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), M = u || (y || !v ? [ue(a)] : It(a)), V = b !== "none";
|
|
289
|
+
!u && V && M.push(...Pt(a, v, b, w));
|
|
290
|
+
const j = [a, ...M], se = await rt(e, f), I = [];
|
|
291
|
+
let x = ((s = r.flip) == null ? void 0 : s.overflows) || [];
|
|
292
292
|
if (d && I.push(se[g]), p) {
|
|
293
|
-
const
|
|
294
|
-
I.push(se[
|
|
293
|
+
const _ = Tt(i, n, w);
|
|
294
|
+
I.push(se[_[0]], se[_[1]]);
|
|
295
295
|
}
|
|
296
|
-
if (
|
|
296
|
+
if (x = [...x, {
|
|
297
297
|
placement: i,
|
|
298
298
|
overflows: I
|
|
299
|
-
}], !I.every((
|
|
300
|
-
var
|
|
301
|
-
const
|
|
302
|
-
if (P && (!(p === "alignment" ?
|
|
299
|
+
}], !I.every((_) => _ <= 0)) {
|
|
300
|
+
var C, S;
|
|
301
|
+
const _ = (((C = r.flip) == null ? void 0 : C.index) || 0) + 1, P = j[_];
|
|
302
|
+
if (P && (!(p === "alignment" ? k !== G(P) : !1) || // We leave the current main axis only if every placement on that axis
|
|
303
303
|
// overflows the main axis.
|
|
304
|
-
|
|
304
|
+
x.every((D) => G(D.placement) === k ? D.overflows[0] > 0 : !0)))
|
|
305
305
|
return {
|
|
306
306
|
data: {
|
|
307
|
-
index:
|
|
308
|
-
overflows:
|
|
307
|
+
index: _,
|
|
308
|
+
overflows: x
|
|
309
309
|
},
|
|
310
310
|
reset: {
|
|
311
311
|
placement: P
|
|
312
312
|
}
|
|
313
313
|
};
|
|
314
|
-
let oe = (S =
|
|
314
|
+
let oe = (S = x.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
316
|
switch (m) {
|
|
317
317
|
case "bestFit": {
|
|
318
|
-
var
|
|
319
|
-
const q = (
|
|
320
|
-
if (
|
|
318
|
+
var O;
|
|
319
|
+
const q = (O = x.filter((D) => {
|
|
320
|
+
if (V) {
|
|
321
321
|
const W = G(D.placement);
|
|
322
|
-
return W ===
|
|
322
|
+
return W === k || // Create a bias to the `y` side axis due to horizontal
|
|
323
323
|
// reading directions favoring greater width.
|
|
324
324
|
W === "y";
|
|
325
325
|
}
|
|
326
326
|
return !0;
|
|
327
|
-
}).map((D) => [D.placement, D.overflows.filter((W) => W > 0).reduce((W,
|
|
327
|
+
}).map((D) => [D.placement, D.overflows.filter((W) => W > 0).reduce((W, _t) => W + _t, 0)]).sort((D, W) => D[1] - W[1])[0]) == null ? void 0 : O[0];
|
|
328
328
|
q && (oe = q);
|
|
329
329
|
break;
|
|
330
330
|
}
|
|
331
331
|
case "initialPlacement":
|
|
332
|
-
oe =
|
|
332
|
+
oe = a;
|
|
333
333
|
break;
|
|
334
334
|
}
|
|
335
335
|
if (i !== oe)
|
|
@@ -342,13 +342,13 @@ const Lt = function(o) {
|
|
|
342
342
|
return {};
|
|
343
343
|
}
|
|
344
344
|
};
|
|
345
|
-
},
|
|
346
|
-
async function
|
|
345
|
+
}, Bt = /* @__PURE__ */ new Set(["left", "top"]);
|
|
346
|
+
async function $t(o, e) {
|
|
347
347
|
const {
|
|
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)),
|
|
351
|
+
} = o, r = await (s.isRTL == null ? void 0 : s.isRTL(i.floating)), n = J(t), a = fe(t), l = G(t) === "y", c = Bt.has(n) ? -1 : 1, d = r && l ? -1 : 1, p = ge(e, o);
|
|
352
352
|
let {
|
|
353
353
|
mainAxis: u,
|
|
354
354
|
crossAxis: m,
|
|
@@ -362,7 +362,7 @@ async function Vt(o, e) {
|
|
|
362
362
|
crossAxis: p.crossAxis || 0,
|
|
363
363
|
alignmentAxis: p.alignmentAxis
|
|
364
364
|
};
|
|
365
|
-
return
|
|
365
|
+
return a && typeof b == "number" && (m = a === "end" ? b * -1 : b), l ? {
|
|
366
366
|
x: m * d,
|
|
367
367
|
y: u * c
|
|
368
368
|
} : {
|
|
@@ -370,7 +370,7 @@ async function Vt(o, e) {
|
|
|
370
370
|
y: m * d
|
|
371
371
|
};
|
|
372
372
|
}
|
|
373
|
-
const
|
|
373
|
+
const zt = function(o) {
|
|
374
374
|
return o === void 0 && (o = 0), {
|
|
375
375
|
name: "offset",
|
|
376
376
|
options: o,
|
|
@@ -379,20 +379,20 @@ const Dt = function(o) {
|
|
|
379
379
|
const {
|
|
380
380
|
x: i,
|
|
381
381
|
y: r,
|
|
382
|
-
placement:
|
|
383
|
-
middlewareData:
|
|
384
|
-
} = e, l = await
|
|
385
|
-
return
|
|
382
|
+
placement: n,
|
|
383
|
+
middlewareData: a
|
|
384
|
+
} = e, l = await $t(e, o);
|
|
385
|
+
return n === ((t = a.offset) == null ? void 0 : t.placement) && (s = a.arrow) != null && s.alignmentOffset ? {} : {
|
|
386
386
|
x: i + l.x,
|
|
387
387
|
y: r + l.y,
|
|
388
388
|
data: {
|
|
389
389
|
...l,
|
|
390
|
-
placement:
|
|
390
|
+
placement: n
|
|
391
391
|
}
|
|
392
392
|
};
|
|
393
393
|
}
|
|
394
394
|
};
|
|
395
|
-
},
|
|
395
|
+
}, Rt = function(o) {
|
|
396
396
|
return o === void 0 && (o = {}), {
|
|
397
397
|
name: "shift",
|
|
398
398
|
options: o,
|
|
@@ -403,34 +403,34 @@ const Dt = function(o) {
|
|
|
403
403
|
placement: i
|
|
404
404
|
} = e, {
|
|
405
405
|
mainAxis: r = !0,
|
|
406
|
-
crossAxis:
|
|
407
|
-
limiter:
|
|
406
|
+
crossAxis: n = !1,
|
|
407
|
+
limiter: a = {
|
|
408
408
|
fn: (f) => {
|
|
409
409
|
let {
|
|
410
410
|
x: g,
|
|
411
|
-
y:
|
|
411
|
+
y: k
|
|
412
412
|
} = f;
|
|
413
413
|
return {
|
|
414
414
|
x: g,
|
|
415
|
-
y:
|
|
415
|
+
y: k
|
|
416
416
|
};
|
|
417
417
|
}
|
|
418
418
|
},
|
|
419
419
|
...l
|
|
420
|
-
} =
|
|
420
|
+
} = ge(o, e), c = {
|
|
421
421
|
x: t,
|
|
422
422
|
y: s
|
|
423
|
-
}, d = await
|
|
423
|
+
}, d = await rt(e, l), p = G(J(i)), u = st(p);
|
|
424
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
|
-
m =
|
|
426
|
+
const f = u === "y" ? "top" : "left", g = u === "y" ? "bottom" : "right", k = m + d[f], y = m - d[g];
|
|
427
|
+
m = Re(k, m, y);
|
|
428
428
|
}
|
|
429
|
-
if (
|
|
430
|
-
const f = p === "y" ? "top" : "left", g = p === "y" ? "bottom" : "right",
|
|
431
|
-
b =
|
|
429
|
+
if (n) {
|
|
430
|
+
const f = p === "y" ? "top" : "left", g = p === "y" ? "bottom" : "right", k = b + d[f], y = b - d[g];
|
|
431
|
+
b = Re(k, b, y);
|
|
432
432
|
}
|
|
433
|
-
const v =
|
|
433
|
+
const v = a.fn({
|
|
434
434
|
...e,
|
|
435
435
|
[u]: m,
|
|
436
436
|
[p]: b
|
|
@@ -442,56 +442,56 @@ const Dt = function(o) {
|
|
|
442
442
|
y: v.y - s,
|
|
443
443
|
enabled: {
|
|
444
444
|
[u]: r,
|
|
445
|
-
[p]:
|
|
445
|
+
[p]: n
|
|
446
446
|
}
|
|
447
447
|
}
|
|
448
448
|
};
|
|
449
449
|
}
|
|
450
450
|
};
|
|
451
451
|
};
|
|
452
|
-
function
|
|
452
|
+
function ve() {
|
|
453
453
|
return typeof window < "u";
|
|
454
454
|
}
|
|
455
455
|
function te(o) {
|
|
456
|
-
return
|
|
456
|
+
return nt(o) ? (o.nodeName || "").toLowerCase() : "#document";
|
|
457
457
|
}
|
|
458
|
-
function
|
|
458
|
+
function E(o) {
|
|
459
459
|
var e;
|
|
460
460
|
return (o == null || (e = o.ownerDocument) == null ? void 0 : e.defaultView) || window;
|
|
461
461
|
}
|
|
462
462
|
function N(o) {
|
|
463
463
|
var e;
|
|
464
|
-
return (e = (
|
|
464
|
+
return (e = (nt(o) ? o.ownerDocument : o.document) || window.document) == null ? void 0 : e.documentElement;
|
|
465
465
|
}
|
|
466
|
-
function
|
|
467
|
-
return
|
|
466
|
+
function nt(o) {
|
|
467
|
+
return ve() ? o instanceof Node || o instanceof E(o).Node : !1;
|
|
468
468
|
}
|
|
469
|
-
function
|
|
470
|
-
return
|
|
469
|
+
function $(o) {
|
|
470
|
+
return ve() ? o instanceof Element || o instanceof E(o).Element : !1;
|
|
471
471
|
}
|
|
472
472
|
function H(o) {
|
|
473
|
-
return
|
|
473
|
+
return ve() ? o instanceof HTMLElement || o instanceof E(o).HTMLElement : !1;
|
|
474
474
|
}
|
|
475
|
-
function
|
|
476
|
-
return !
|
|
475
|
+
function je(o) {
|
|
476
|
+
return !ve() || typeof ShadowRoot > "u" ? !1 : o instanceof ShadowRoot || o instanceof E(o).ShadowRoot;
|
|
477
477
|
}
|
|
478
|
-
const
|
|
479
|
-
function
|
|
478
|
+
const Ft = /* @__PURE__ */ new Set(["inline", "contents"]);
|
|
479
|
+
function ce(o) {
|
|
480
480
|
const {
|
|
481
481
|
overflow: e,
|
|
482
482
|
overflowX: t,
|
|
483
483
|
overflowY: s,
|
|
484
484
|
display: i
|
|
485
|
-
} =
|
|
486
|
-
return /auto|scroll|overlay|hidden|clip/.test(e + s + t) && !
|
|
485
|
+
} = z(o);
|
|
486
|
+
return /auto|scroll|overlay|hidden|clip/.test(e + s + t) && !Ft.has(i);
|
|
487
487
|
}
|
|
488
|
-
const
|
|
489
|
-
function
|
|
490
|
-
return
|
|
488
|
+
const Ht = /* @__PURE__ */ new Set(["table", "td", "th"]);
|
|
489
|
+
function Nt(o) {
|
|
490
|
+
return Ht.has(te(o));
|
|
491
491
|
}
|
|
492
|
-
const
|
|
493
|
-
function
|
|
494
|
-
return
|
|
492
|
+
const jt = [":popover-open", ":modal"];
|
|
493
|
+
function ke(o) {
|
|
494
|
+
return jt.some((e) => {
|
|
495
495
|
try {
|
|
496
496
|
return o.matches(e);
|
|
497
497
|
} catch {
|
|
@@ -499,17 +499,17 @@ function ve(o) {
|
|
|
499
499
|
}
|
|
500
500
|
});
|
|
501
501
|
}
|
|
502
|
-
const
|
|
503
|
-
function
|
|
504
|
-
const e = Ee(), t =
|
|
505
|
-
return
|
|
502
|
+
const Wt = ["transform", "translate", "scale", "rotate", "perspective"], Ut = ["transform", "translate", "scale", "rotate", "perspective", "filter"], Gt = ["paint", "layout", "strict", "content"];
|
|
503
|
+
function Ve(o) {
|
|
504
|
+
const e = Ee(), t = $(o) ? z(o) : o;
|
|
505
|
+
return Wt.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) || Ut.some((s) => (t.willChange || "").includes(s)) || Gt.some((s) => (t.contain || "").includes(s));
|
|
506
506
|
}
|
|
507
|
-
function
|
|
507
|
+
function Kt(o) {
|
|
508
508
|
let e = K(o);
|
|
509
509
|
for (; H(e) && !ee(e); ) {
|
|
510
|
-
if (
|
|
510
|
+
if (Ve(e))
|
|
511
511
|
return e;
|
|
512
|
-
if (
|
|
512
|
+
if (ke(e))
|
|
513
513
|
return null;
|
|
514
514
|
e = K(e);
|
|
515
515
|
}
|
|
@@ -518,15 +518,15 @@ function Wt(o) {
|
|
|
518
518
|
function Ee() {
|
|
519
519
|
return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
|
|
520
520
|
}
|
|
521
|
-
const
|
|
521
|
+
const qt = /* @__PURE__ */ new Set(["html", "body", "#document"]);
|
|
522
522
|
function ee(o) {
|
|
523
|
-
return
|
|
523
|
+
return qt.has(te(o));
|
|
524
524
|
}
|
|
525
|
-
function
|
|
526
|
-
return
|
|
525
|
+
function z(o) {
|
|
526
|
+
return E(o).getComputedStyle(o);
|
|
527
527
|
}
|
|
528
528
|
function _e(o) {
|
|
529
|
-
return
|
|
529
|
+
return $(o) ? {
|
|
530
530
|
scrollLeft: o.scrollLeft,
|
|
531
531
|
scrollTop: o.scrollTop
|
|
532
532
|
} : {
|
|
@@ -541,120 +541,120 @@ 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
|
+
je(o) && o.host || // Fallback.
|
|
545
545
|
N(o)
|
|
546
546
|
);
|
|
547
|
-
return
|
|
547
|
+
return je(e) ? e.host : e;
|
|
548
548
|
}
|
|
549
|
-
function
|
|
549
|
+
function at(o) {
|
|
550
550
|
const e = K(o);
|
|
551
|
-
return ee(e) ? o.ownerDocument ? o.ownerDocument.body : o.body : H(e) &&
|
|
551
|
+
return ee(e) ? o.ownerDocument ? o.ownerDocument.body : o.body : H(e) && ce(e) ? e : at(e);
|
|
552
552
|
}
|
|
553
553
|
function ae(o, e, t) {
|
|
554
554
|
var s;
|
|
555
555
|
e === void 0 && (e = []), t === void 0 && (t = !0);
|
|
556
|
-
const i =
|
|
556
|
+
const i = at(o), r = i === ((s = o.ownerDocument) == null ? void 0 : s.body), n = E(i);
|
|
557
557
|
if (r) {
|
|
558
|
-
const
|
|
559
|
-
return e.concat(
|
|
558
|
+
const a = Se(n);
|
|
559
|
+
return e.concat(n, n.visualViewport || [], ce(i) ? i : [], a && t ? ae(a) : []);
|
|
560
560
|
}
|
|
561
561
|
return e.concat(i, ae(i, [], t));
|
|
562
562
|
}
|
|
563
|
-
function
|
|
563
|
+
function Se(o) {
|
|
564
564
|
return o.parent && Object.getPrototypeOf(o.parent) ? o.frameElement : null;
|
|
565
565
|
}
|
|
566
|
-
function
|
|
567
|
-
const e =
|
|
566
|
+
function lt(o) {
|
|
567
|
+
const e = z(o);
|
|
568
568
|
let t = parseFloat(e.width) || 0, s = parseFloat(e.height) || 0;
|
|
569
|
-
const i = H(o), r = i ? o.offsetWidth : t,
|
|
570
|
-
return
|
|
569
|
+
const i = H(o), r = i ? o.offsetWidth : t, n = i ? o.offsetHeight : s, a = pe(t) !== r || pe(s) !== n;
|
|
570
|
+
return a && (t = r, s = n), {
|
|
571
571
|
width: t,
|
|
572
572
|
height: s,
|
|
573
|
-
$:
|
|
573
|
+
$: a
|
|
574
574
|
};
|
|
575
575
|
}
|
|
576
|
-
function
|
|
577
|
-
return
|
|
576
|
+
function De(o) {
|
|
577
|
+
return $(o) ? o : o.contextElement;
|
|
578
578
|
}
|
|
579
579
|
function Q(o) {
|
|
580
|
-
const e =
|
|
580
|
+
const e = De(o);
|
|
581
581
|
if (!H(e))
|
|
582
582
|
return F(1);
|
|
583
583
|
const t = e.getBoundingClientRect(), {
|
|
584
584
|
width: s,
|
|
585
585
|
height: i,
|
|
586
586
|
$: r
|
|
587
|
-
} =
|
|
588
|
-
let
|
|
589
|
-
return (!
|
|
590
|
-
x:
|
|
591
|
-
y:
|
|
587
|
+
} = lt(e);
|
|
588
|
+
let n = (r ? pe(t.width) : t.width) / s, a = (r ? pe(t.height) : t.height) / i;
|
|
589
|
+
return (!n || !Number.isFinite(n)) && (n = 1), (!a || !Number.isFinite(a)) && (a = 1), {
|
|
590
|
+
x: n,
|
|
591
|
+
y: a
|
|
592
592
|
};
|
|
593
593
|
}
|
|
594
|
-
const
|
|
595
|
-
function
|
|
596
|
-
const e =
|
|
597
|
-
return !Ee() || !e.visualViewport ?
|
|
594
|
+
const Xt = /* @__PURE__ */ F(0);
|
|
595
|
+
function ct(o) {
|
|
596
|
+
const e = E(o);
|
|
597
|
+
return !Ee() || !e.visualViewport ? Xt : {
|
|
598
598
|
x: e.visualViewport.offsetLeft,
|
|
599
599
|
y: e.visualViewport.offsetTop
|
|
600
600
|
};
|
|
601
601
|
}
|
|
602
|
-
function
|
|
603
|
-
return e === void 0 && (e = !1), !t || e && t !==
|
|
602
|
+
function Yt(o, e, t) {
|
|
603
|
+
return e === void 0 && (e = !1), !t || e && t !== E(o) ? !1 : e;
|
|
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 =
|
|
608
|
-
let
|
|
609
|
-
e && (s ?
|
|
610
|
-
const
|
|
611
|
-
let l = (i.left +
|
|
607
|
+
const i = o.getBoundingClientRect(), r = De(o);
|
|
608
|
+
let n = F(1);
|
|
609
|
+
e && (s ? $(s) && (n = Q(s)) : n = Q(o));
|
|
610
|
+
const a = Yt(r, t, s) ? ct(r) : F(0);
|
|
611
|
+
let l = (i.left + a.x) / n.x, c = (i.top + a.y) / n.y, d = i.width / n.x, p = i.height / n.y;
|
|
612
612
|
if (r) {
|
|
613
|
-
const u =
|
|
614
|
-
let b = u, v =
|
|
613
|
+
const u = E(r), m = s && $(s) ? E(s) : s;
|
|
614
|
+
let b = u, v = Se(b);
|
|
615
615
|
for (; v && s && m !== b; ) {
|
|
616
|
-
const f = Q(v), g = v.getBoundingClientRect(),
|
|
617
|
-
l *= f.x, c *= f.y, d *= f.x, p *= f.y, l += y, c += w, b =
|
|
616
|
+
const f = Q(v), g = v.getBoundingClientRect(), k = z(v), y = g.left + (v.clientLeft + parseFloat(k.paddingLeft)) * f.x, w = g.top + (v.clientTop + parseFloat(k.paddingTop)) * f.y;
|
|
617
|
+
l *= f.x, c *= f.y, d *= f.x, p *= f.y, l += y, c += w, b = E(v), v = Se(b);
|
|
618
618
|
}
|
|
619
619
|
}
|
|
620
|
-
return
|
|
620
|
+
return be({
|
|
621
621
|
width: d,
|
|
622
622
|
height: p,
|
|
623
623
|
x: l,
|
|
624
624
|
y: c
|
|
625
625
|
});
|
|
626
626
|
}
|
|
627
|
-
function
|
|
627
|
+
function ye(o, e) {
|
|
628
628
|
const t = _e(o).scrollLeft;
|
|
629
629
|
return e ? e.left + t : Z(N(o)).left + t;
|
|
630
630
|
}
|
|
631
|
-
function
|
|
632
|
-
const t = o.getBoundingClientRect(), s = t.left + e.scrollLeft -
|
|
631
|
+
function dt(o, e) {
|
|
632
|
+
const t = o.getBoundingClientRect(), s = t.left + e.scrollLeft - ye(o, t), i = t.top + e.scrollTop;
|
|
633
633
|
return {
|
|
634
634
|
x: s,
|
|
635
635
|
y: i
|
|
636
636
|
};
|
|
637
637
|
}
|
|
638
|
-
function
|
|
638
|
+
function Jt(o) {
|
|
639
639
|
let {
|
|
640
640
|
elements: e,
|
|
641
641
|
rect: t,
|
|
642
642
|
offsetParent: s,
|
|
643
643
|
strategy: i
|
|
644
644
|
} = o;
|
|
645
|
-
const r = i === "fixed",
|
|
646
|
-
if (s ===
|
|
645
|
+
const r = i === "fixed", n = N(s), a = e ? ke(e.floating) : !1;
|
|
646
|
+
if (s === n || a && r)
|
|
647
647
|
return t;
|
|
648
648
|
let l = {
|
|
649
649
|
scrollLeft: 0,
|
|
650
650
|
scrollTop: 0
|
|
651
651
|
}, c = F(1);
|
|
652
652
|
const d = F(0), p = H(s);
|
|
653
|
-
if ((p || !p && !r) && ((te(s) !== "body" ||
|
|
653
|
+
if ((p || !p && !r) && ((te(s) !== "body" || ce(n)) && (l = _e(s)), H(s))) {
|
|
654
654
|
const m = Z(s);
|
|
655
655
|
c = Q(s), d.x = m.x + s.clientLeft, d.y = m.y + s.clientTop;
|
|
656
656
|
}
|
|
657
|
-
const u =
|
|
657
|
+
const u = n && !p && !r ? dt(n, l) : F(0);
|
|
658
658
|
return {
|
|
659
659
|
width: t.width * c.x,
|
|
660
660
|
height: t.height * c.y,
|
|
@@ -662,61 +662,61 @@ function qt(o) {
|
|
|
662
662
|
y: t.y * c.y - l.scrollTop * c.y + d.y + u.y
|
|
663
663
|
};
|
|
664
664
|
}
|
|
665
|
-
function
|
|
665
|
+
function Zt(o) {
|
|
666
666
|
return Array.from(o.getClientRects());
|
|
667
667
|
}
|
|
668
|
-
function
|
|
669
|
-
const e = N(o), t = _e(o), s = o.ownerDocument.body, i =
|
|
670
|
-
let
|
|
671
|
-
const
|
|
672
|
-
return
|
|
668
|
+
function Qt(o) {
|
|
669
|
+
const e = N(o), t = _e(o), s = o.ownerDocument.body, i = Y(e.scrollWidth, e.clientWidth, s.scrollWidth, s.clientWidth), r = Y(e.scrollHeight, e.clientHeight, s.scrollHeight, s.clientHeight);
|
|
670
|
+
let n = -t.scrollLeft + ye(o);
|
|
671
|
+
const a = -t.scrollTop;
|
|
672
|
+
return z(s).direction === "rtl" && (n += Y(e.clientWidth, s.clientWidth) - i), {
|
|
673
673
|
width: i,
|
|
674
674
|
height: r,
|
|
675
|
-
x:
|
|
676
|
-
y:
|
|
675
|
+
x: n,
|
|
676
|
+
y: a
|
|
677
677
|
};
|
|
678
678
|
}
|
|
679
|
-
const
|
|
680
|
-
function
|
|
681
|
-
const t =
|
|
682
|
-
let r = s.clientWidth,
|
|
679
|
+
const We = 25;
|
|
680
|
+
function es(o, e) {
|
|
681
|
+
const t = E(o), s = N(o), i = t.visualViewport;
|
|
682
|
+
let r = s.clientWidth, n = s.clientHeight, a = 0, l = 0;
|
|
683
683
|
if (i) {
|
|
684
|
-
r = i.width,
|
|
684
|
+
r = i.width, n = i.height;
|
|
685
685
|
const d = Ee();
|
|
686
|
-
(!d || d && e === "fixed") && (
|
|
686
|
+
(!d || d && e === "fixed") && (a = i.offsetLeft, l = i.offsetTop);
|
|
687
687
|
}
|
|
688
|
-
const c =
|
|
688
|
+
const c = ye(s);
|
|
689
689
|
if (c <= 0) {
|
|
690
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 <=
|
|
692
|
-
} else c <=
|
|
691
|
+
b <= We && (r -= b);
|
|
692
|
+
} else c <= We && (r += c);
|
|
693
693
|
return {
|
|
694
694
|
width: r,
|
|
695
|
-
height:
|
|
696
|
-
x:
|
|
695
|
+
height: n,
|
|
696
|
+
x: a,
|
|
697
697
|
y: l
|
|
698
698
|
};
|
|
699
699
|
}
|
|
700
|
-
const
|
|
701
|
-
function
|
|
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),
|
|
700
|
+
const ts = /* @__PURE__ */ new Set(["absolute", "fixed"]);
|
|
701
|
+
function ss(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), n = o.clientWidth * r.x, a = o.clientHeight * r.y, l = i * r.x, c = s * r.y;
|
|
703
703
|
return {
|
|
704
|
-
width:
|
|
705
|
-
height:
|
|
704
|
+
width: n,
|
|
705
|
+
height: a,
|
|
706
706
|
x: l,
|
|
707
707
|
y: c
|
|
708
708
|
};
|
|
709
709
|
}
|
|
710
|
-
function
|
|
710
|
+
function Ue(o, e, t) {
|
|
711
711
|
let s;
|
|
712
712
|
if (e === "viewport")
|
|
713
|
-
s =
|
|
713
|
+
s = es(o, t);
|
|
714
714
|
else if (e === "document")
|
|
715
|
-
s =
|
|
716
|
-
else if (
|
|
717
|
-
s =
|
|
715
|
+
s = Qt(N(o));
|
|
716
|
+
else if ($(e))
|
|
717
|
+
s = ss(e, t);
|
|
718
718
|
else {
|
|
719
|
-
const i =
|
|
719
|
+
const i = ct(o);
|
|
720
720
|
s = {
|
|
721
721
|
x: e.x - i.x,
|
|
722
722
|
y: e.y - i.y,
|
|
@@ -724,36 +724,36 @@ function We(o, e, t) {
|
|
|
724
724
|
height: e.height
|
|
725
725
|
};
|
|
726
726
|
}
|
|
727
|
-
return
|
|
727
|
+
return be(s);
|
|
728
728
|
}
|
|
729
|
-
function
|
|
729
|
+
function ht(o, e) {
|
|
730
730
|
const t = K(o);
|
|
731
|
-
return t === e ||
|
|
731
|
+
return t === e || !$(t) || ee(t) ? !1 : z(t).position === "fixed" || ht(t, e);
|
|
732
732
|
}
|
|
733
|
-
function
|
|
733
|
+
function os(o, e) {
|
|
734
734
|
const t = e.get(o);
|
|
735
735
|
if (t)
|
|
736
736
|
return t;
|
|
737
|
-
let s = ae(o, [], !1).filter((
|
|
738
|
-
const r =
|
|
739
|
-
let
|
|
740
|
-
for (;
|
|
741
|
-
const
|
|
742
|
-
!l &&
|
|
737
|
+
let s = ae(o, [], !1).filter((a) => $(a) && te(a) !== "body"), i = null;
|
|
738
|
+
const r = z(o).position === "fixed";
|
|
739
|
+
let n = r ? K(o) : o;
|
|
740
|
+
for (; $(n) && !ee(n); ) {
|
|
741
|
+
const a = z(n), l = Ve(n);
|
|
742
|
+
!l && a.position === "fixed" && (i = null), (r ? !l && !i : !l && a.position === "static" && !!i && ts.has(i.position) || ce(n) && !l && ht(o, n)) ? s = s.filter((d) => d !== n) : i = a, n = K(n);
|
|
743
743
|
}
|
|
744
744
|
return e.set(o, s), s;
|
|
745
745
|
}
|
|
746
|
-
function
|
|
746
|
+
function is(o) {
|
|
747
747
|
let {
|
|
748
748
|
element: e,
|
|
749
749
|
boundary: t,
|
|
750
750
|
rootBoundary: s,
|
|
751
751
|
strategy: i
|
|
752
752
|
} = o;
|
|
753
|
-
const
|
|
754
|
-
const p =
|
|
755
|
-
return c.top =
|
|
756
|
-
},
|
|
753
|
+
const n = [...t === "clippingAncestors" ? ke(e) ? [] : os(e, this._c) : [].concat(t), s], a = n[0], l = n.reduce((c, d) => {
|
|
754
|
+
const p = Ue(e, d, i);
|
|
755
|
+
return c.top = Y(p.top, c.top), c.right = me(p.right, c.right), c.bottom = me(p.bottom, c.bottom), c.left = Y(p.left, c.left), c;
|
|
756
|
+
}, Ue(e, a, i));
|
|
757
757
|
return {
|
|
758
758
|
width: l.right - l.left,
|
|
759
759
|
height: l.bottom - l.top,
|
|
@@ -761,73 +761,73 @@ function ts(o) {
|
|
|
761
761
|
y: l.top
|
|
762
762
|
};
|
|
763
763
|
}
|
|
764
|
-
function
|
|
764
|
+
function rs(o) {
|
|
765
765
|
const {
|
|
766
766
|
width: e,
|
|
767
767
|
height: t
|
|
768
|
-
} =
|
|
768
|
+
} = lt(o);
|
|
769
769
|
return {
|
|
770
770
|
width: e,
|
|
771
771
|
height: t
|
|
772
772
|
};
|
|
773
773
|
}
|
|
774
|
-
function
|
|
775
|
-
const s = H(e), i = N(e), r = t === "fixed",
|
|
776
|
-
let
|
|
774
|
+
function ns(o, e, t) {
|
|
775
|
+
const s = H(e), i = N(e), r = t === "fixed", n = Z(o, !0, r, e);
|
|
776
|
+
let a = {
|
|
777
777
|
scrollLeft: 0,
|
|
778
778
|
scrollTop: 0
|
|
779
779
|
};
|
|
780
780
|
const l = F(0);
|
|
781
781
|
function c() {
|
|
782
|
-
l.x =
|
|
782
|
+
l.x = ye(i);
|
|
783
783
|
}
|
|
784
784
|
if (s || !s && !r)
|
|
785
|
-
if ((te(e) !== "body" ||
|
|
785
|
+
if ((te(e) !== "body" || ce(i)) && (a = _e(e)), s) {
|
|
786
786
|
const m = Z(e, !0, r, e);
|
|
787
787
|
l.x = m.x + e.clientLeft, l.y = m.y + e.clientTop;
|
|
788
788
|
} else i && c();
|
|
789
789
|
r && !s && i && c();
|
|
790
|
-
const d = i && !s && !r ?
|
|
790
|
+
const d = i && !s && !r ? dt(i, a) : F(0), p = n.left + a.scrollLeft - l.x - d.x, u = n.top + a.scrollTop - l.y - d.y;
|
|
791
791
|
return {
|
|
792
792
|
x: p,
|
|
793
793
|
y: u,
|
|
794
|
-
width:
|
|
795
|
-
height:
|
|
794
|
+
width: n.width,
|
|
795
|
+
height: n.height
|
|
796
796
|
};
|
|
797
797
|
}
|
|
798
|
-
function
|
|
799
|
-
return
|
|
798
|
+
function we(o) {
|
|
799
|
+
return z(o).position === "static";
|
|
800
800
|
}
|
|
801
|
-
function
|
|
802
|
-
if (!H(o) ||
|
|
801
|
+
function Ge(o, e) {
|
|
802
|
+
if (!H(o) || z(o).position === "fixed")
|
|
803
803
|
return null;
|
|
804
804
|
if (e)
|
|
805
805
|
return e(o);
|
|
806
806
|
let t = o.offsetParent;
|
|
807
807
|
return N(o) === t && (t = t.ownerDocument.body), t;
|
|
808
808
|
}
|
|
809
|
-
function
|
|
810
|
-
const t =
|
|
811
|
-
if (
|
|
809
|
+
function mt(o, e) {
|
|
810
|
+
const t = E(o);
|
|
811
|
+
if (ke(o))
|
|
812
812
|
return t;
|
|
813
813
|
if (!H(o)) {
|
|
814
814
|
let i = K(o);
|
|
815
815
|
for (; i && !ee(i); ) {
|
|
816
|
-
if (
|
|
816
|
+
if ($(i) && !we(i))
|
|
817
817
|
return i;
|
|
818
818
|
i = K(i);
|
|
819
819
|
}
|
|
820
820
|
return t;
|
|
821
821
|
}
|
|
822
|
-
let s =
|
|
823
|
-
for (; s &&
|
|
824
|
-
s =
|
|
825
|
-
return s && ee(s) &&
|
|
822
|
+
let s = Ge(o, e);
|
|
823
|
+
for (; s && Nt(s) && we(s); )
|
|
824
|
+
s = Ge(s, e);
|
|
825
|
+
return s && ee(s) && we(s) && !Ve(s) ? t : s || Kt(o) || t;
|
|
826
826
|
}
|
|
827
|
-
const
|
|
828
|
-
const e = this.getOffsetParent ||
|
|
827
|
+
const as = async function(o) {
|
|
828
|
+
const e = this.getOffsetParent || mt, t = this.getDimensions, s = await t(o.floating);
|
|
829
829
|
return {
|
|
830
|
-
reference:
|
|
830
|
+
reference: ns(o.reference, await e(o.floating), o.strategy),
|
|
831
831
|
floating: {
|
|
832
832
|
x: 0,
|
|
833
833
|
y: 0,
|
|
@@ -836,56 +836,56 @@ const is = async function(o) {
|
|
|
836
836
|
}
|
|
837
837
|
};
|
|
838
838
|
};
|
|
839
|
-
function
|
|
840
|
-
return
|
|
839
|
+
function ls(o) {
|
|
840
|
+
return z(o).direction === "rtl";
|
|
841
841
|
}
|
|
842
|
-
const
|
|
843
|
-
convertOffsetParentRelativeRectToViewportRelativeRect:
|
|
842
|
+
const pt = {
|
|
843
|
+
convertOffsetParentRelativeRectToViewportRelativeRect: Jt,
|
|
844
844
|
getDocumentElement: N,
|
|
845
|
-
getClippingRect:
|
|
846
|
-
getOffsetParent:
|
|
847
|
-
getElementRects:
|
|
848
|
-
getClientRects:
|
|
849
|
-
getDimensions:
|
|
845
|
+
getClippingRect: is,
|
|
846
|
+
getOffsetParent: mt,
|
|
847
|
+
getElementRects: as,
|
|
848
|
+
getClientRects: Zt,
|
|
849
|
+
getDimensions: rs,
|
|
850
850
|
getScale: Q,
|
|
851
|
-
isElement:
|
|
852
|
-
isRTL:
|
|
851
|
+
isElement: $,
|
|
852
|
+
isRTL: ls
|
|
853
853
|
};
|
|
854
|
-
function
|
|
854
|
+
function ut(o, e) {
|
|
855
855
|
return o.x === e.x && o.y === e.y && o.width === e.width && o.height === e.height;
|
|
856
856
|
}
|
|
857
|
-
function
|
|
857
|
+
function cs(o, e) {
|
|
858
858
|
let t = null, s;
|
|
859
859
|
const i = N(o);
|
|
860
860
|
function r() {
|
|
861
|
-
var
|
|
862
|
-
clearTimeout(s), (
|
|
861
|
+
var a;
|
|
862
|
+
clearTimeout(s), (a = t) == null || a.disconnect(), t = null;
|
|
863
863
|
}
|
|
864
|
-
function a
|
|
865
|
-
|
|
864
|
+
function n(a, l) {
|
|
865
|
+
a === void 0 && (a = !1), l === void 0 && (l = 1), r();
|
|
866
866
|
const c = o.getBoundingClientRect(), {
|
|
867
867
|
left: d,
|
|
868
868
|
top: p,
|
|
869
869
|
width: u,
|
|
870
870
|
height: m
|
|
871
871
|
} = c;
|
|
872
|
-
if (
|
|
872
|
+
if (a || e(), !u || !m)
|
|
873
873
|
return;
|
|
874
|
-
const b =
|
|
874
|
+
const b = de(p), v = de(i.clientWidth - (d + u)), f = de(i.clientHeight - (p + m)), g = de(d), y = {
|
|
875
875
|
rootMargin: -b + "px " + -v + "px " + -f + "px " + -g + "px",
|
|
876
|
-
threshold:
|
|
876
|
+
threshold: Y(0, me(1, l)) || 1
|
|
877
877
|
};
|
|
878
878
|
let w = !0;
|
|
879
|
-
function M(
|
|
880
|
-
const j =
|
|
879
|
+
function M(V) {
|
|
880
|
+
const j = V[0].intersectionRatio;
|
|
881
881
|
if (j !== l) {
|
|
882
882
|
if (!w)
|
|
883
|
-
return
|
|
884
|
-
j ?
|
|
885
|
-
|
|
883
|
+
return n();
|
|
884
|
+
j ? n(!1, j) : s = setTimeout(() => {
|
|
885
|
+
n(!1, 1e-7);
|
|
886
886
|
}, 1e3);
|
|
887
887
|
}
|
|
888
|
-
j === 1 && !
|
|
888
|
+
j === 1 && !ut(c, o.getBoundingClientRect()) && n(), w = !1;
|
|
889
889
|
}
|
|
890
890
|
try {
|
|
891
891
|
t = new IntersectionObserver(M, {
|
|
@@ -898,27 +898,27 @@ function as(o, e) {
|
|
|
898
898
|
}
|
|
899
899
|
t.observe(o);
|
|
900
900
|
}
|
|
901
|
-
return
|
|
901
|
+
return n(!0), r;
|
|
902
902
|
}
|
|
903
|
-
function
|
|
903
|
+
function Te(o, e, t, s) {
|
|
904
904
|
s === void 0 && (s = {});
|
|
905
905
|
const {
|
|
906
906
|
ancestorScroll: i = !0,
|
|
907
907
|
ancestorResize: r = !0,
|
|
908
|
-
elementResize:
|
|
909
|
-
layoutShift:
|
|
908
|
+
elementResize: n = typeof ResizeObserver == "function",
|
|
909
|
+
layoutShift: a = typeof IntersectionObserver == "function",
|
|
910
910
|
animationFrame: l = !1
|
|
911
|
-
} = s, c =
|
|
911
|
+
} = s, c = De(o), d = i || r ? [...c ? ae(c) : [], ...ae(e)] : [];
|
|
912
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 p = c &&
|
|
917
|
+
const p = c && a ? cs(c, t) : null;
|
|
918
918
|
let u = -1, m = null;
|
|
919
|
-
|
|
920
|
-
let [
|
|
921
|
-
|
|
919
|
+
n && (m = new ResizeObserver((g) => {
|
|
920
|
+
let [k] = g;
|
|
921
|
+
k && k.target === c && m && (m.unobserve(e), cancelAnimationFrame(u), u = requestAnimationFrame(() => {
|
|
922
922
|
var y;
|
|
923
923
|
(y = m) == null || y.observe(e);
|
|
924
924
|
})), t();
|
|
@@ -927,37 +927,37 @@ function Se(o, e, t, s) {
|
|
|
927
927
|
l && f();
|
|
928
928
|
function f() {
|
|
929
929
|
const g = Z(o);
|
|
930
|
-
v && !
|
|
930
|
+
v && !ut(v, g) && t(), v = g, b = requestAnimationFrame(f);
|
|
931
931
|
}
|
|
932
932
|
return t(), () => {
|
|
933
933
|
var g;
|
|
934
|
-
d.forEach((
|
|
935
|
-
i &&
|
|
934
|
+
d.forEach((k) => {
|
|
935
|
+
i && k.removeEventListener("scroll", t), r && k.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 Ie = zt, Me = Rt, bt = Dt, Ae = (o, e, t) => {
|
|
940
940
|
const s = /* @__PURE__ */ new Map(), i = {
|
|
941
|
-
platform:
|
|
941
|
+
platform: pt,
|
|
942
942
|
...t
|
|
943
943
|
}, r = {
|
|
944
944
|
...i.platform,
|
|
945
945
|
_c: s
|
|
946
946
|
};
|
|
947
|
-
return
|
|
947
|
+
return Et(o, e, {
|
|
948
948
|
...i,
|
|
949
949
|
platform: r
|
|
950
950
|
});
|
|
951
951
|
};
|
|
952
|
-
var
|
|
953
|
-
},
|
|
952
|
+
var gt = function() {
|
|
953
|
+
}, B = "undefined", ds = typeof window !== B && typeof window.navigator !== B && /Trident\/|MSIE /.test(window.navigator.userAgent), Oe = [
|
|
954
954
|
"trace",
|
|
955
955
|
"debug",
|
|
956
956
|
"info",
|
|
957
957
|
"warn",
|
|
958
958
|
"error"
|
|
959
|
-
],
|
|
960
|
-
function
|
|
959
|
+
], le = {}, T = null;
|
|
960
|
+
function Ke(o, e) {
|
|
961
961
|
var t = o[e];
|
|
962
962
|
if (typeof t.bind == "function")
|
|
963
963
|
return t.bind(o);
|
|
@@ -969,55 +969,55 @@ function Ge(o, e) {
|
|
|
969
969
|
};
|
|
970
970
|
}
|
|
971
971
|
}
|
|
972
|
-
function
|
|
972
|
+
function hs() {
|
|
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
|
-
function
|
|
976
|
-
return o === "debug" && (o = "log"), typeof console ===
|
|
975
|
+
function ms(o) {
|
|
976
|
+
return o === "debug" && (o = "log"), typeof console === B ? !1 : o === "trace" && ds ? hs : console[o] !== void 0 ? Ke(console, o) : console.log !== void 0 ? Ke(console, "log") : gt;
|
|
977
977
|
}
|
|
978
|
-
function
|
|
978
|
+
function re() {
|
|
979
979
|
for (var o = this.getLevel(), e = 0; e < Oe.length; e++) {
|
|
980
980
|
var t = Oe[e];
|
|
981
|
-
this[t] = e < o ?
|
|
981
|
+
this[t] = e < o ? gt : this.methodFactory(t, o, this.name);
|
|
982
982
|
}
|
|
983
|
-
if (this.log = this.debug, typeof console ===
|
|
983
|
+
if (this.log = this.debug, typeof console === B && o < this.levels.SILENT)
|
|
984
984
|
return "No console available for logging";
|
|
985
985
|
}
|
|
986
|
-
function
|
|
986
|
+
function ps(o) {
|
|
987
987
|
return function() {
|
|
988
|
-
typeof console !==
|
|
988
|
+
typeof console !== B && (re.call(this), this[o].apply(this, arguments));
|
|
989
989
|
};
|
|
990
990
|
}
|
|
991
|
-
function
|
|
992
|
-
return
|
|
991
|
+
function us(o, e, t) {
|
|
992
|
+
return ms(o) || ps.apply(this, arguments);
|
|
993
993
|
}
|
|
994
|
-
function
|
|
995
|
-
var t = this, s, i, r,
|
|
996
|
-
typeof o == "string" ?
|
|
997
|
-
function
|
|
994
|
+
function ft(o, e) {
|
|
995
|
+
var t = this, s, i, r, n = "loglevel";
|
|
996
|
+
typeof o == "string" ? n += ":" + o : typeof o == "symbol" && (n = void 0);
|
|
997
|
+
function a(u) {
|
|
998
998
|
var m = (Oe[u] || "silent").toUpperCase();
|
|
999
|
-
if (!(typeof window ===
|
|
999
|
+
if (!(typeof window === B || !n)) {
|
|
1000
1000
|
try {
|
|
1001
|
-
window.localStorage[
|
|
1001
|
+
window.localStorage[n] = m;
|
|
1002
1002
|
return;
|
|
1003
1003
|
} catch {
|
|
1004
1004
|
}
|
|
1005
1005
|
try {
|
|
1006
|
-
window.document.cookie = encodeURIComponent(
|
|
1006
|
+
window.document.cookie = encodeURIComponent(n) + "=" + m + ";";
|
|
1007
1007
|
} catch {
|
|
1008
1008
|
}
|
|
1009
1009
|
}
|
|
1010
1010
|
}
|
|
1011
1011
|
function l() {
|
|
1012
1012
|
var u;
|
|
1013
|
-
if (!(typeof window ===
|
|
1013
|
+
if (!(typeof window === B || !n)) {
|
|
1014
1014
|
try {
|
|
1015
|
-
u = window.localStorage[
|
|
1015
|
+
u = window.localStorage[n];
|
|
1016
1016
|
} catch {
|
|
1017
1017
|
}
|
|
1018
|
-
if (typeof u ===
|
|
1018
|
+
if (typeof u === B)
|
|
1019
1019
|
try {
|
|
1020
|
-
var m = window.document.cookie, b = encodeURIComponent(
|
|
1020
|
+
var m = window.document.cookie, b = encodeURIComponent(n), v = m.indexOf(b + "=");
|
|
1021
1021
|
v !== -1 && (u = /^([^;]+)/.exec(
|
|
1022
1022
|
m.slice(v + b.length + 1)
|
|
1023
1023
|
)[1]);
|
|
@@ -1027,13 +1027,13 @@ function ut(o, e) {
|
|
|
1027
1027
|
}
|
|
1028
1028
|
}
|
|
1029
1029
|
function c() {
|
|
1030
|
-
if (!(typeof window ===
|
|
1030
|
+
if (!(typeof window === B || !n)) {
|
|
1031
1031
|
try {
|
|
1032
|
-
window.localStorage.removeItem(
|
|
1032
|
+
window.localStorage.removeItem(n);
|
|
1033
1033
|
} catch {
|
|
1034
1034
|
}
|
|
1035
1035
|
try {
|
|
1036
|
-
window.document.cookie = encodeURIComponent(
|
|
1036
|
+
window.document.cookie = encodeURIComponent(n) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
|
|
1037
1037
|
} catch {
|
|
1038
1038
|
}
|
|
1039
1039
|
}
|
|
@@ -1051,52 +1051,52 @@ function ut(o, e) {
|
|
|
1051
1051
|
WARN: 3,
|
|
1052
1052
|
ERROR: 4,
|
|
1053
1053
|
SILENT: 5
|
|
1054
|
-
}, t.methodFactory = e ||
|
|
1054
|
+
}, t.methodFactory = e || us, t.getLevel = function() {
|
|
1055
1055
|
return r ?? i ?? s;
|
|
1056
1056
|
}, t.setLevel = function(u, m) {
|
|
1057
|
-
return r = d(u), m !== !1 &&
|
|
1057
|
+
return r = d(u), m !== !1 && a(r), re.call(t);
|
|
1058
1058
|
}, t.setDefaultLevel = function(u) {
|
|
1059
1059
|
i = d(u), l() || t.setLevel(u, !1);
|
|
1060
1060
|
}, t.resetLevel = function() {
|
|
1061
|
-
r = null, c(),
|
|
1061
|
+
r = null, c(), re.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 = d(T.getLevel())),
|
|
1068
|
-
for (var u in
|
|
1069
|
-
|
|
1067
|
+
if (T !== t && (s = d(T.getLevel())), re.call(t), T === t)
|
|
1068
|
+
for (var u in le)
|
|
1069
|
+
le[u].rebuild();
|
|
1070
1070
|
}, s = d(
|
|
1071
1071
|
T ? T.getLevel() : "WARN"
|
|
1072
1072
|
);
|
|
1073
1073
|
var p = l();
|
|
1074
|
-
p != null && (r = d(p)),
|
|
1074
|
+
p != null && (r = d(p)), re.call(t);
|
|
1075
1075
|
}
|
|
1076
|
-
T = new
|
|
1076
|
+
T = new ft();
|
|
1077
1077
|
T.getLogger = function(e) {
|
|
1078
1078
|
if (typeof e != "symbol" && typeof e != "string" || e === "")
|
|
1079
1079
|
throw new TypeError("You must supply a name when creating a logger.");
|
|
1080
|
-
var t =
|
|
1081
|
-
return t || (t =
|
|
1080
|
+
var t = le[e];
|
|
1081
|
+
return t || (t = le[e] = new ft(
|
|
1082
1082
|
e,
|
|
1083
1083
|
T.methodFactory
|
|
1084
1084
|
)), t;
|
|
1085
1085
|
};
|
|
1086
|
-
var
|
|
1086
|
+
var bs = typeof window !== B ? window.log : void 0;
|
|
1087
1087
|
T.noConflict = function() {
|
|
1088
|
-
return typeof window !==
|
|
1088
|
+
return typeof window !== B && window.log === T && (window.log = bs), T;
|
|
1089
1089
|
};
|
|
1090
1090
|
T.getLoggers = function() {
|
|
1091
|
-
return
|
|
1091
|
+
return le;
|
|
1092
1092
|
};
|
|
1093
1093
|
T.default = T;
|
|
1094
|
-
var
|
|
1094
|
+
var gs = function(o) {
|
|
1095
1095
|
for (var e = 1, t = arguments.length, s; e < t; e++)
|
|
1096
1096
|
for (s in arguments[e])
|
|
1097
1097
|
Object.prototype.hasOwnProperty.call(arguments[e], s) && (o[s] = arguments[e][s]);
|
|
1098
1098
|
return o;
|
|
1099
|
-
},
|
|
1099
|
+
}, fs = {
|
|
1100
1100
|
template: "[%t] %l:",
|
|
1101
1101
|
levelFormatter: function(o) {
|
|
1102
1102
|
return o.toUpperCase();
|
|
@@ -1108,34 +1108,34 @@ var ps = function(o) {
|
|
|
1108
1108
|
return o.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
|
|
1109
1109
|
},
|
|
1110
1110
|
format: void 0
|
|
1111
|
-
},
|
|
1111
|
+
}, vt, X = {}, vs = function(o) {
|
|
1112
1112
|
if (!o || !o.getLogger)
|
|
1113
1113
|
throw new TypeError("Argument is not a root logger");
|
|
1114
|
-
|
|
1115
|
-
},
|
|
1114
|
+
vt = o;
|
|
1115
|
+
}, ks = function(o, e) {
|
|
1116
1116
|
if (!o || !o.setLevel)
|
|
1117
1117
|
throw new TypeError("Argument is not a logger");
|
|
1118
|
-
var t = o.methodFactory, s = o.name || "", i =
|
|
1119
|
-
function r(
|
|
1120
|
-
var c = t(
|
|
1118
|
+
var t = o.methodFactory, s = o.name || "", i = X[s] || X[""] || fs;
|
|
1119
|
+
function r(n, a, l) {
|
|
1120
|
+
var c = t(n, a, l), d = X[l] || X[""], 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
|
-
if (s || !
|
|
1125
|
-
var
|
|
1126
|
-
d.format ? b += d.format(y, w,
|
|
1124
|
+
if (s || !X[l]) {
|
|
1125
|
+
var k = d.timestampFormatter(/* @__PURE__ */ new Date()), y = d.levelFormatter(n), w = d.nameFormatter(l);
|
|
1126
|
+
d.format ? b += d.format(y, w, k) : (b += d.template, p && (b = b.replace(/%t/, k)), 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
|
-
return
|
|
1131
|
+
return X[s] || (o.methodFactory = r), e = e || {}, e.template && (e.format = void 0), X[s] = gs({}, i, e), o.setLevel(o.getLevel()), vt || o.warn(
|
|
1132
1132
|
"It is necessary to call the function reg() of loglevel-plugin-prefix before calling apply. From the next release, it will throw an error. See more: https://github.com/kutuluk/loglevel-plugin-prefix/blob/master/README.md"
|
|
1133
1133
|
), o;
|
|
1134
|
-
},
|
|
1135
|
-
reg:
|
|
1136
|
-
apply:
|
|
1134
|
+
}, _s = {
|
|
1135
|
+
reg: vs,
|
|
1136
|
+
apply: ks
|
|
1137
1137
|
};
|
|
1138
|
-
const
|
|
1138
|
+
const ys = {
|
|
1139
1139
|
debug: "#0ea5e9",
|
|
1140
1140
|
// Blue
|
|
1141
1141
|
info: "#10b981",
|
|
@@ -1145,39 +1145,39 @@ const vs = {
|
|
|
1145
1145
|
error: "#ef4444"
|
|
1146
1146
|
// Red
|
|
1147
1147
|
};
|
|
1148
|
-
|
|
1149
|
-
const
|
|
1148
|
+
_s.reg(T);
|
|
1149
|
+
const ws = (o) => o.toTimeString().split(" ")[0] + "." + o.getMilliseconds().toString().padStart(3, "0"), Cs = T.methodFactory;
|
|
1150
1150
|
T.methodFactory = function(o, e, t) {
|
|
1151
|
-
const s =
|
|
1152
|
-
return function(...
|
|
1153
|
-
const l =
|
|
1154
|
-
s(d, ...t ? [r,
|
|
1151
|
+
const s = Cs(o, e, t), r = `color: ${ys[o] || "#666"}; font-weight: bold;`, n = "color: inherit;";
|
|
1152
|
+
return function(...a) {
|
|
1153
|
+
const l = ws(/* @__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, n, r, n, r, n] : [r, n, r, n], ...a);
|
|
1155
1155
|
};
|
|
1156
1156
|
};
|
|
1157
1157
|
typeof T.setDefaultLevel == "function" ? T.setDefaultLevel("silent") : T.setLevel("silent", !1);
|
|
1158
|
-
const
|
|
1158
|
+
const he = T.getLogger("MULTISELECT:INIT"), A = T.getLogger("MULTISELECT:DATA"), R = T.getLogger("MULTISELECT:UI"), L = T.getLogger("MULTISELECT:INTERACTION"), xs = [
|
|
1159
1159
|
"MULTISELECT:INIT",
|
|
1160
1160
|
"MULTISELECT:DATA",
|
|
1161
1161
|
"MULTISELECT:UI",
|
|
1162
1162
|
"MULTISELECT:INTERACTION"
|
|
1163
1163
|
];
|
|
1164
|
-
function
|
|
1164
|
+
function Be() {
|
|
1165
1165
|
typeof T.rebuild == "function" && T.rebuild();
|
|
1166
1166
|
}
|
|
1167
|
-
function
|
|
1168
|
-
T.setLevel("debug"),
|
|
1167
|
+
function Ss() {
|
|
1168
|
+
T.setLevel("debug"), Be();
|
|
1169
1169
|
}
|
|
1170
|
-
function
|
|
1171
|
-
T.setLevel("silent"),
|
|
1170
|
+
function Ts() {
|
|
1171
|
+
T.setLevel("silent"), Be();
|
|
1172
1172
|
}
|
|
1173
|
-
function
|
|
1174
|
-
T.setLevel(o),
|
|
1173
|
+
function Is(o) {
|
|
1174
|
+
T.setLevel(o), Be();
|
|
1175
1175
|
}
|
|
1176
|
-
function
|
|
1176
|
+
function Ms(o, e) {
|
|
1177
1177
|
const t = o.includes(":") ? o : `MULTISELECT:${o}`;
|
|
1178
1178
|
T.getLogger(t).setLevel(e);
|
|
1179
1179
|
}
|
|
1180
|
-
class
|
|
1180
|
+
class qe {
|
|
1181
1181
|
constructor(e) {
|
|
1182
1182
|
h(this, "container");
|
|
1183
1183
|
h(this, "wrapper");
|
|
@@ -1240,8 +1240,8 @@ class Ke {
|
|
|
1240
1240
|
this.visibleStart = e, this.visibleEnd = t, this.onVisibleRangeChange && this.onVisibleRangeChange(e, t);
|
|
1241
1241
|
let s = "";
|
|
1242
1242
|
for (let i = e; i < t; i++) {
|
|
1243
|
-
const r = this.items[i],
|
|
1244
|
-
s += `<div class="ms__virtual-item" style="position: absolute; top: ${
|
|
1243
|
+
const r = this.items[i], n = this.renderItem(r, i), a = i * this.itemHeight;
|
|
1244
|
+
s += `<div class="ms__virtual-item" style="position: absolute; top: ${a}px; left: 0; right: 0; height: ${this.itemHeight}px;" data-index="${i}">`, s += n, s += "</div>";
|
|
1245
1245
|
}
|
|
1246
1246
|
this.viewport.innerHTML = s;
|
|
1247
1247
|
}
|
|
@@ -1299,7 +1299,7 @@ class Ke {
|
|
|
1299
1299
|
this.container.removeEventListener("scroll", this.scrollHandler), this.resizeObserver && this.resizeObserver.disconnect(), this.container.innerHTML = "";
|
|
1300
1300
|
}
|
|
1301
1301
|
}
|
|
1302
|
-
class
|
|
1302
|
+
class As {
|
|
1303
1303
|
constructor(e) {
|
|
1304
1304
|
h(this, "element");
|
|
1305
1305
|
h(this, "trigger");
|
|
@@ -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 = Te(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
|
+
Ae(e, this.element, {
|
|
1346
1346
|
placement: this.placement,
|
|
1347
1347
|
strategy: "fixed",
|
|
1348
1348
|
middleware: [
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1349
|
+
Ie(this.offsetDistance),
|
|
1350
|
+
bt(),
|
|
1351
|
+
Me({ 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 Xe(o) {
|
|
1388
1388
|
return {
|
|
1389
1389
|
treeId: "",
|
|
1390
1390
|
id: -1,
|
|
@@ -1399,32 +1399,32 @@ function qe(o) {
|
|
|
1399
1399
|
...o
|
|
1400
1400
|
};
|
|
1401
1401
|
}
|
|
1402
|
-
const
|
|
1403
|
-
function
|
|
1402
|
+
const ne = (o) => !o || typeof o == "string" && o.trim() === "";
|
|
1403
|
+
function Os(o, e = ".") {
|
|
1404
1404
|
if (!o || typeof o != "string") return null;
|
|
1405
1405
|
const t = o.lastIndexOf(e);
|
|
1406
1406
|
return t === -1 ? "" : o.substring(0, t);
|
|
1407
1407
|
}
|
|
1408
1408
|
function Ye(o, e, t = ".") {
|
|
1409
|
-
return
|
|
1409
|
+
return ne(e) ? o : o.startsWith(e + t) ? o.substring(e.length + t.length) : o;
|
|
1410
1410
|
}
|
|
1411
|
-
function
|
|
1411
|
+
function Je(o, e = 0, t = 1, s = ".") {
|
|
1412
1412
|
return o.split(s).slice(e, e + t).join(s);
|
|
1413
1413
|
}
|
|
1414
|
-
function
|
|
1414
|
+
function Ps(o, e) {
|
|
1415
1415
|
return o.split(e).length;
|
|
1416
1416
|
}
|
|
1417
1417
|
function U(o, e) {
|
|
1418
1418
|
return o[e];
|
|
1419
1419
|
}
|
|
1420
|
-
function
|
|
1421
|
-
const e = o.idMember, t = o.pathMember, s = o.getPathCallback, i = o.parentPathMember, r = o.levelMember,
|
|
1420
|
+
function Ls(o = {}) {
|
|
1421
|
+
const e = o.idMember, t = o.pathMember, s = o.getPathCallback, i = o.parentPathMember, r = o.levelMember, n = o.hasChildrenMember, a = o.isSelectableMember, l = o.getIsSelectableCallback, c = o.treeId || "multiselect-tree", d = o.orderMember, p = o.getDisplayValueCallback, u = ne(i), m = ne(r), b = ne(n), v = ne(a), f = "x", g = o.treePathSeparator || ".", k = Xe();
|
|
1422
1422
|
let y = 0, w = null;
|
|
1423
|
-
const M = (I) => s ? s(I) : t ? U(I, t) : void 0,
|
|
1423
|
+
const M = (I) => s ? s(I) : t ? U(I, t) : void 0, V = {
|
|
1424
1424
|
treePathSeparator: g,
|
|
1425
|
-
root:
|
|
1425
|
+
root: k,
|
|
1426
1426
|
get tree() {
|
|
1427
|
-
return Object.values(
|
|
1427
|
+
return Object.values(k.children);
|
|
1428
1428
|
},
|
|
1429
1429
|
/**
|
|
1430
1430
|
* Every node in depth-first render order (a parent immediately precedes
|
|
@@ -1432,101 +1432,101 @@ function Os(o = {}) {
|
|
|
1432
1432
|
*/
|
|
1433
1433
|
get flatNodes() {
|
|
1434
1434
|
if (w) return w;
|
|
1435
|
-
const I = [],
|
|
1436
|
-
function S(
|
|
1437
|
-
let
|
|
1438
|
-
|
|
1439
|
-
for (const P of
|
|
1435
|
+
const I = [], x = o.isSorted ?? !1, C = o.sortCallback;
|
|
1436
|
+
function S(O) {
|
|
1437
|
+
let _ = Object.values(O.children);
|
|
1438
|
+
x && C && _.length > 0 && (_ = C(_));
|
|
1439
|
+
for (const P of _)
|
|
1440
1440
|
I.push(P), P.hasChildren && S(P);
|
|
1441
1441
|
}
|
|
1442
|
-
return S(
|
|
1442
|
+
return S(k), w = I, I;
|
|
1443
1443
|
},
|
|
1444
1444
|
insertArray(I) {
|
|
1445
|
-
I = I || [],
|
|
1446
|
-
const
|
|
1447
|
-
let
|
|
1448
|
-
const
|
|
1449
|
-
|
|
1445
|
+
I = I || [], k.children = {}, y = 0, w = null;
|
|
1446
|
+
const x = [];
|
|
1447
|
+
let C = I.map((S, O) => {
|
|
1448
|
+
const _ = Xe();
|
|
1449
|
+
_.treeId = c, _.id = e ? U(S, e) : void 0;
|
|
1450
1450
|
const P = M(S);
|
|
1451
|
-
return P == null || P === "" || typeof P != "string" ? (
|
|
1452
|
-
Ye(
|
|
1451
|
+
return P == null || P === "" || typeof P != "string" ? (x.push(`index ${O}`), null) : (_.path = P, (_.id === void 0 || _.id === -1) && (_.id = P), u ? _.parentPath = Os(_.path, g) : _.parentPath = U(S, i), _.pathSegment = Je(
|
|
1452
|
+
Ye(_.path, _.parentPath ?? "", g),
|
|
1453
1453
|
0,
|
|
1454
1454
|
1,
|
|
1455
1455
|
g
|
|
1456
|
-
), m ?
|
|
1456
|
+
), m ? _.level = Ps(_.path, g) : _.level = U(S, r), b || (_.hasChildren = U(S, n)), _.data = S, _);
|
|
1457
1457
|
}).filter((S) => S !== null);
|
|
1458
|
-
o.isSorted || (o.sortCallback ?
|
|
1459
|
-
for (const S of
|
|
1458
|
+
o.isSorted || (o.sortCallback ? C = o.sortCallback(C) : C = se(C));
|
|
1459
|
+
for (const S of C)
|
|
1460
1460
|
j(S.parentPath ?? "", S);
|
|
1461
1461
|
if (l || !v)
|
|
1462
|
-
for (const S of
|
|
1462
|
+
for (const S of C)
|
|
1463
1463
|
if (l)
|
|
1464
1464
|
S.isSelectable = l(S) !== !1;
|
|
1465
1465
|
else {
|
|
1466
|
-
const
|
|
1467
|
-
S.isSelectable =
|
|
1466
|
+
const O = U(S.data, a);
|
|
1467
|
+
S.isSelectable = O == null ? !0 : !!O;
|
|
1468
1468
|
}
|
|
1469
|
-
|
|
1470
|
-
`[ltree ${c}] ${
|
|
1469
|
+
x.length > 0 && console.warn(
|
|
1470
|
+
`[ltree ${c}] ${x.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${x.slice(0, 5).join(", ")}` + (x.length > 5 ? ", …" : "")
|
|
1471
1471
|
);
|
|
1472
1472
|
},
|
|
1473
|
-
getNodeByPath(I,
|
|
1474
|
-
let
|
|
1473
|
+
getNodeByPath(I, x) {
|
|
1474
|
+
let C = x || k;
|
|
1475
1475
|
if (I) {
|
|
1476
1476
|
const S = I.split(g);
|
|
1477
|
-
for (let
|
|
1478
|
-
const
|
|
1479
|
-
if (!
|
|
1477
|
+
for (let O = 0; O < S.length; O++) {
|
|
1478
|
+
const _ = f + S[O];
|
|
1479
|
+
if (!C.children.hasOwnProperty(_))
|
|
1480
1480
|
return null;
|
|
1481
|
-
|
|
1481
|
+
C = C.children[_];
|
|
1482
1482
|
}
|
|
1483
1483
|
}
|
|
1484
|
-
return
|
|
1484
|
+
return C;
|
|
1485
1485
|
}
|
|
1486
1486
|
};
|
|
1487
|
-
function j(I,
|
|
1488
|
-
const
|
|
1489
|
-
if (!
|
|
1490
|
-
return `Node: ${
|
|
1491
|
-
m && (
|
|
1492
|
-
const S = f +
|
|
1493
|
-
return
|
|
1487
|
+
function j(I, x) {
|
|
1488
|
+
const C = V.getNodeByPath(I);
|
|
1489
|
+
if (!C)
|
|
1490
|
+
return `Node: ${x.path} - Could not find parent node: ${I}`;
|
|
1491
|
+
m && (x.level = (C.level || 0) + 1);
|
|
1492
|
+
const S = f + Je(Ye(x.path, I, g), 0, 1, g);
|
|
1493
|
+
return C.children.hasOwnProperty(S) || (C.children[S] = x, b && !C.hasChildren && (C.hasChildren = !0), y = Math.max(y, x.level || 0)), null;
|
|
1494
1494
|
}
|
|
1495
1495
|
function se(I) {
|
|
1496
|
-
return I.sort((
|
|
1497
|
-
const S =
|
|
1498
|
-
if (S !==
|
|
1499
|
-
if (
|
|
1500
|
-
return
|
|
1501
|
-
if (d &&
|
|
1502
|
-
const
|
|
1503
|
-
if (
|
|
1496
|
+
return I.sort((x, C) => {
|
|
1497
|
+
const S = x.level || 0, O = C.level || 0;
|
|
1498
|
+
if (S !== O) return S - O;
|
|
1499
|
+
if (x.parentPath !== C.parentPath)
|
|
1500
|
+
return x.parentPath ? C.parentPath ? x.parentPath.localeCompare(C.parentPath) : 1 : -1;
|
|
1501
|
+
if (d && x.data && C.data) {
|
|
1502
|
+
const _ = U(x.data, d) ?? 0, P = U(C.data, d) ?? 0;
|
|
1503
|
+
if (_ !== P) return _ - P;
|
|
1504
1504
|
}
|
|
1505
|
-
return p ? p(
|
|
1505
|
+
return p ? p(x).localeCompare(p(C)) : x.path.localeCompare(C.path);
|
|
1506
1506
|
});
|
|
1507
1507
|
}
|
|
1508
|
-
return
|
|
1508
|
+
return V;
|
|
1509
1509
|
}
|
|
1510
|
-
function
|
|
1511
|
-
const t = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)),
|
|
1510
|
+
function Ze(o, e) {
|
|
1511
|
+
const t = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), n = (l) => {
|
|
1512
1512
|
t.set(r(l), l);
|
|
1513
1513
|
const c = [];
|
|
1514
1514
|
for (const p of Object.values(l.children))
|
|
1515
|
-
c.push(...
|
|
1515
|
+
c.push(...n(p));
|
|
1516
1516
|
let d;
|
|
1517
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
|
-
},
|
|
1519
|
-
for (const l of
|
|
1520
|
-
return { nodeByValue: t, atomsUnder: s, atomPaths: i, roots:
|
|
1518
|
+
}, a = o.tree;
|
|
1519
|
+
for (const l of a) n(l);
|
|
1520
|
+
return { nodeByValue: t, atomsUnder: s, atomPaths: i, roots: a };
|
|
1521
1521
|
}
|
|
1522
|
-
function
|
|
1522
|
+
function $e(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 ie(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));
|
|
@@ -1535,36 +1535,36 @@ function we(o, e) {
|
|
|
1535
1535
|
}
|
|
1536
1536
|
return t;
|
|
1537
1537
|
}
|
|
1538
|
-
function
|
|
1539
|
-
const s = o.atomsUnder.get(e.path) ?? [], i = new Set(t), r =
|
|
1538
|
+
function Vs(o, e, t) {
|
|
1539
|
+
const s = o.atomsUnder.get(e.path) ?? [], i = new Set(t), r = $e(o, e, t), n = [], a = [];
|
|
1540
1540
|
if (r === "checked")
|
|
1541
|
-
for (const l of s) i.delete(l) &&
|
|
1541
|
+
for (const l of s) i.delete(l) && a.push(l);
|
|
1542
1542
|
else
|
|
1543
|
-
for (const l of s) i.has(l) || (i.add(l),
|
|
1544
|
-
return { checkedAtoms: i, addedAtoms:
|
|
1543
|
+
for (const l of s) i.has(l) || (i.add(l), n.push(l));
|
|
1544
|
+
return { checkedAtoms: i, addedAtoms: n, removedAtoms: a };
|
|
1545
1545
|
}
|
|
1546
|
-
function
|
|
1547
|
-
const i = (
|
|
1548
|
-
const l =
|
|
1546
|
+
function Ce(o, e, t, s) {
|
|
1547
|
+
const i = (a) => String(s(a.data)), r = [], n = (a) => {
|
|
1548
|
+
const l = $e(o, a, e);
|
|
1549
1549
|
if (l === "unchecked") return;
|
|
1550
|
-
const c =
|
|
1550
|
+
const c = a.isSelectable !== !1, d = Object.values(a.children);
|
|
1551
1551
|
if (t === "leaves") {
|
|
1552
|
-
o.atomPaths.has(
|
|
1553
|
-
for (const p of d)
|
|
1552
|
+
o.atomPaths.has(a.path) && l === "checked" && r.push(i(a));
|
|
1553
|
+
for (const p of d) n(p);
|
|
1554
1554
|
return;
|
|
1555
1555
|
}
|
|
1556
1556
|
if (t === "all") {
|
|
1557
|
-
l === "checked" && c && r.push(i(
|
|
1558
|
-
for (const p of d)
|
|
1557
|
+
l === "checked" && c && r.push(i(a));
|
|
1558
|
+
for (const p of d) n(p);
|
|
1559
1559
|
return;
|
|
1560
1560
|
}
|
|
1561
1561
|
if (l === "checked" && c) {
|
|
1562
|
-
r.push(i(
|
|
1562
|
+
r.push(i(a));
|
|
1563
1563
|
return;
|
|
1564
1564
|
}
|
|
1565
|
-
for (const p of d)
|
|
1565
|
+
for (const p of d) n(p);
|
|
1566
1566
|
};
|
|
1567
|
-
for (const
|
|
1567
|
+
for (const a of o.roots) n(a);
|
|
1568
1568
|
return r;
|
|
1569
1569
|
}
|
|
1570
1570
|
function Es(o) {
|
|
@@ -1581,7 +1581,7 @@ function Es(o) {
|
|
|
1581
1581
|
}
|
|
1582
1582
|
return window;
|
|
1583
1583
|
}
|
|
1584
|
-
function
|
|
1584
|
+
function Ds(o, e, t) {
|
|
1585
1585
|
let s = o;
|
|
1586
1586
|
for (; s && !(s === document.body || s === document.documentElement); ) {
|
|
1587
1587
|
if (s instanceof Element) {
|
|
@@ -1593,13 +1593,13 @@ function Vs(o, e, t) {
|
|
|
1593
1593
|
}
|
|
1594
1594
|
return null;
|
|
1595
1595
|
}
|
|
1596
|
-
function
|
|
1596
|
+
function Bs(o) {
|
|
1597
1597
|
const e = getComputedStyle(o), t = [];
|
|
1598
1598
|
e.transform !== "none" && t.push(`transform: ${e.transform}`), e.perspective !== "none" && t.push(`perspective: ${e.perspective}`), e.filter !== "none" && t.push(`filter: ${e.filter}`);
|
|
1599
1599
|
const s = e.backdropFilter;
|
|
1600
1600
|
return s && s !== "none" && t.push(`backdrop-filter: ${s}`), e.willChange && /\b(transform|filter|perspective)\b/.test(e.willChange) && t.push(`will-change: ${e.willChange}`), e.contain && /\b(paint|layout|strict|content)\b/.test(e.contain) && t.push(`contain: ${e.contain}`), e.containerType && e.containerType !== "normal" && t.push(`container-type: ${e.containerType}`), t.join("; ");
|
|
1601
1601
|
}
|
|
1602
|
-
class
|
|
1602
|
+
class $s {
|
|
1603
1603
|
constructor(e, t = {}) {
|
|
1604
1604
|
h(this, "element");
|
|
1605
1605
|
h(this, "instanceId");
|
|
@@ -1832,7 +1832,7 @@ class zs {
|
|
|
1832
1832
|
return i ? i.isSelectable !== !1 : !0;
|
|
1833
1833
|
}
|
|
1834
1834
|
init() {
|
|
1835
|
-
this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(),
|
|
1835
|
+
this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(), he.debug(`Initialized [${this.instanceId}] with options:`, {
|
|
1836
1836
|
placeholder: this.options.searchPlaceholder,
|
|
1837
1837
|
totalOptions: this.allOptions.length,
|
|
1838
1838
|
isCloseOnSelect: this.options.isCloseOnSelect,
|
|
@@ -1845,7 +1845,7 @@ class zs {
|
|
|
1845
1845
|
try {
|
|
1846
1846
|
this.allOptions = JSON.parse(e);
|
|
1847
1847
|
} catch (t) {
|
|
1848
|
-
|
|
1848
|
+
A.error(`[${this.instanceId}] Failed to parse data-options:`, t), this.allOptions = [];
|
|
1849
1849
|
}
|
|
1850
1850
|
else this.options.options && (this.allOptions = this.options.options);
|
|
1851
1851
|
this.filteredOptions = [...this.allOptions], this.isTreeMode() && this.buildTree();
|
|
@@ -1859,7 +1859,7 @@ class zs {
|
|
|
1859
1859
|
}
|
|
1860
1860
|
/** (Re)build the ltree from `allOptions` and derive the visible flat list. */
|
|
1861
1861
|
buildTree() {
|
|
1862
|
-
this.tree =
|
|
1862
|
+
this.tree = Ls({
|
|
1863
1863
|
idMember: this.options.valueMember,
|
|
1864
1864
|
pathMember: this.options.pathMember,
|
|
1865
1865
|
getPathCallback: this.options.getPathCallback,
|
|
@@ -1871,7 +1871,7 @@ class zs {
|
|
|
1871
1871
|
treePathSeparator: this.options.treePathSeparator,
|
|
1872
1872
|
treeId: this.instanceId,
|
|
1873
1873
|
getDisplayValueCallback: (e) => this.getItemDisplayValue(e.data)
|
|
1874
|
-
}), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ?
|
|
1874
|
+
}), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? Ze(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
|
|
1875
1875
|
}
|
|
1876
1876
|
/**
|
|
1877
1877
|
* Whether cascade checkbox mode is active: a multi-select tree with
|
|
@@ -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 = ie(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,7 +1894,7 @@ class zs {
|
|
|
1894
1894
|
* so badges / form / change events reflect the policy (rolled-up branches, etc.).
|
|
1895
1895
|
*/
|
|
1896
1896
|
toggleTreeCascade(e) {
|
|
1897
|
-
const t = this.cascadeIndex, s =
|
|
1897
|
+
const t = this.cascadeIndex, s = ie(t, this.selectedValues), { checkedAtoms: i } = Vs(t, e, s);
|
|
1898
1898
|
this.commitCascadeAtoms(i);
|
|
1899
1899
|
}
|
|
1900
1900
|
/**
|
|
@@ -1905,20 +1905,50 @@ class zs {
|
|
|
1905
1905
|
*/
|
|
1906
1906
|
commitCascadeAtoms(e) {
|
|
1907
1907
|
var l;
|
|
1908
|
-
const t = this.cascadeIndex, s =
|
|
1908
|
+
const t = this.cascadeIndex, s = Ce(
|
|
1909
1909
|
t,
|
|
1910
1910
|
e,
|
|
1911
1911
|
this.cascadePolicy(),
|
|
1912
1912
|
(c) => String(this.getItemValue(c))
|
|
1913
|
-
), i = new Set(s), r = [],
|
|
1913
|
+
), i = new Set(s), r = [], n = [];
|
|
1914
1914
|
for (const [c, d] of this.selectedOptions)
|
|
1915
|
-
i.has(c) ||
|
|
1916
|
-
const
|
|
1915
|
+
i.has(c) || n.push(d);
|
|
1916
|
+
const a = /* @__PURE__ */ new Map();
|
|
1917
1917
|
for (const c of s) {
|
|
1918
1918
|
const p = ((l = t.nodeByValue.get(c)) == null ? void 0 : l.data) ?? this.selectedOptions.get(c);
|
|
1919
|
-
p !== void 0 && (
|
|
1919
|
+
p !== void 0 && (a.set(c, p), this.selectedValues.has(c) || r.push(p));
|
|
1920
1920
|
}
|
|
1921
|
-
this.selectedValues = i, this.selectedOptions =
|
|
1921
|
+
this.selectedValues = i, this.selectedOptions = a, this.cascadeCheckedAtoms = e, this.commit({ added: r, removed: n });
|
|
1922
|
+
}
|
|
1923
|
+
/**
|
|
1924
|
+
* The "meaningful selection" list used by the counter chip — the rolled-up
|
|
1925
|
+
* minimal cover, regardless of the active emit policy. In cascade mode
|
|
1926
|
+
* `leaves`/`all` emit many values for a single branch pick, which made the
|
|
1927
|
+
* counter read e.g. `[5]` for what a person experiences as two selections.
|
|
1928
|
+
* The counter should count the branches actually chosen, and stay stable when
|
|
1929
|
+
* the policy knob flips. Outside cascade this is just the selected options.
|
|
1930
|
+
*/
|
|
1931
|
+
counterSelection() {
|
|
1932
|
+
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
1933
|
+
const e = Ce(
|
|
1934
|
+
this.cascadeIndex,
|
|
1935
|
+
this.cascadeCheckedAtoms,
|
|
1936
|
+
"rolled-up",
|
|
1937
|
+
(s) => String(this.getItemValue(s))
|
|
1938
|
+
), t = [];
|
|
1939
|
+
for (const s of e) {
|
|
1940
|
+
const i = this.cascadeIndex.nodeByValue.get(s), r = (i == null ? void 0 : i.data) ?? this.selectedOptions.get(s);
|
|
1941
|
+
r !== void 0 && t.push(r);
|
|
1942
|
+
}
|
|
1943
|
+
return t;
|
|
1944
|
+
}
|
|
1945
|
+
return Array.from(this.selectedOptions.values());
|
|
1946
|
+
}
|
|
1947
|
+
/** Native `title` for the counter chip: the picked items, capped so it can't grow unbounded. */
|
|
1948
|
+
buildCounterTooltip(e) {
|
|
1949
|
+
const s = e.slice(0, 12).map((i) => this.getItemBadgeDisplayValue(i));
|
|
1950
|
+
return e.length > 12 && s.push(`…and ${e.length - 12} more`), s.join(`
|
|
1951
|
+
`);
|
|
1922
1952
|
}
|
|
1923
1953
|
/**
|
|
1924
1954
|
* Derive `treeNodes` + `filteredOptions` from the full tree, applying the
|
|
@@ -1936,13 +1966,13 @@ class zs {
|
|
|
1936
1966
|
s = e;
|
|
1937
1967
|
else {
|
|
1938
1968
|
const i = this.tree.treePathSeparator, r = /* @__PURE__ */ new Set();
|
|
1939
|
-
for (const
|
|
1940
|
-
if (this.getItemSearchValue(
|
|
1941
|
-
const l =
|
|
1969
|
+
for (const n of e)
|
|
1970
|
+
if (this.getItemSearchValue(n.data).toLowerCase().includes(t)) {
|
|
1971
|
+
const l = n.path.split(i);
|
|
1942
1972
|
for (let c = 1; c <= l.length; c++)
|
|
1943
1973
|
r.add(l.slice(0, c).join(i));
|
|
1944
1974
|
}
|
|
1945
|
-
s = e.filter((
|
|
1975
|
+
s = e.filter((n) => r.has(n.path));
|
|
1946
1976
|
}
|
|
1947
1977
|
this.treeNodes = s, this.filteredOptions = s.map((i) => i.data);
|
|
1948
1978
|
}
|
|
@@ -1971,32 +2001,32 @@ class zs {
|
|
|
1971
2001
|
this.treeNodes = [], this.filteredOptions = [];
|
|
1972
2002
|
return;
|
|
1973
2003
|
}
|
|
1974
|
-
const t = this.tree.flatNodes, s = this.tree.treePathSeparator, i = new Set((e || []).map((
|
|
1975
|
-
for (const
|
|
1976
|
-
if (i.has(String(this.getItemValue(
|
|
1977
|
-
const l =
|
|
2004
|
+
const t = this.tree.flatNodes, s = this.tree.treePathSeparator, i = new Set((e || []).map((a) => String(this.getItemValue(a)))), r = /* @__PURE__ */ new Set();
|
|
2005
|
+
for (const a of t)
|
|
2006
|
+
if (i.has(String(this.getItemValue(a.data)))) {
|
|
2007
|
+
const l = a.path.split(s);
|
|
1978
2008
|
for (let c = 1; c <= l.length; c++)
|
|
1979
2009
|
r.add(l.slice(0, c).join(s));
|
|
1980
2010
|
}
|
|
1981
|
-
const
|
|
1982
|
-
this.treeNodes =
|
|
2011
|
+
const n = t.filter((a) => r.has(a.path));
|
|
2012
|
+
this.treeNodes = n, this.filteredOptions = n.map((a) => a.data);
|
|
1983
2013
|
}
|
|
1984
2014
|
buildHTML() {
|
|
1985
2015
|
const e = this.options.container || document.body, t = this.element.getRootNode(), s = t instanceof ShadowRoot ? t.host : this.element, i = s.getAttribute("dir") === "rtl", r = s.closest('[dir="rtl"]') !== null;
|
|
1986
|
-
this.isRTL = i || r,
|
|
2016
|
+
this.isRTL = i || r, he.debug(`[${this.instanceId}] RTL Debug:`, {
|
|
1987
2017
|
isShadowRoot: t instanceof ShadowRoot,
|
|
1988
2018
|
hostElement: s,
|
|
1989
2019
|
elementDir: s.getAttribute("dir"),
|
|
1990
2020
|
hasElementDir: i,
|
|
1991
2021
|
hasAncestorDir: r,
|
|
1992
2022
|
isRTL: this.isRTL
|
|
1993
|
-
}), this.effectiveBadgesPosition = this.options.badgesPosition || "bottom", this.isRTL && (this.effectiveBadgesPosition === "left" ? this.effectiveBadgesPosition = "right" : this.effectiveBadgesPosition === "right" && (this.effectiveBadgesPosition = "left")), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"),
|
|
1994
|
-
const
|
|
1995
|
-
|
|
1996
|
-
const
|
|
1997
|
-
|
|
2023
|
+
}), this.effectiveBadgesPosition = this.options.badgesPosition || "bottom", this.isRTL && (this.effectiveBadgesPosition === "left" ? this.effectiveBadgesPosition = "right" : this.effectiveBadgesPosition === "right" && (this.effectiveBadgesPosition = "left")), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"), he.debug(`[${this.instanceId}] Added ms--rtl class to element`)), (!this.options.isCheckboxesShown || !this.options.isMultipleEnabled) && this.element.classList.add("ms--no-checkboxes");
|
|
2024
|
+
const n = document.createElement("div");
|
|
2025
|
+
n.className = "ms__input-wrapper", this.input = document.createElement("input"), this.input.type = "text", this.input.className = "ms__input", this.input.placeholder = this.getPlaceholderText(), this.input.autocomplete = "off", this.options.searchInputMode === "readonly" ? this.input.readOnly = !0 : this.options.searchInputMode === "hidden" && (this.input.style.display = "none");
|
|
2026
|
+
const a = document.createElement("span");
|
|
2027
|
+
a.className = "ms__toggle", a.innerHTML = "▼", this.counter = document.createElement("span"), this.counter.className = "ms__counter", this.counter.style.display = "none", n.appendChild(this.input), n.appendChild(this.counter), n.appendChild(a), this.badgesContainer = document.createElement("div"), this.badgesContainer.className = "ms__badges";
|
|
1998
2028
|
const l = document.createElement("div");
|
|
1999
|
-
l.className = "ms__wrapper", (this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right") && l.classList.add("ms__wrapper--inline"), l.appendChild(
|
|
2029
|
+
l.className = "ms__wrapper", (this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right") && l.classList.add("ms__wrapper--inline"), l.appendChild(n), l.appendChild(this.badgesContainer), this.element.appendChild(l), this.dropdown = document.createElement("div"), this.dropdown.className = "ms__dropdown", this.dropdownInner = document.createElement("div"), this.dropdownInner.className = "ms__dropdown-inner", this.dropdown.appendChild(this.dropdownInner), e.appendChild(this.dropdown), this.options.searchHint && (this.hint = document.createElement("div"), this.hint.className = "ms__hint", this.hint.textContent = this.options.searchHint, e.appendChild(this.hint)), this.selectedPopover = document.createElement("div"), this.selectedPopover.className = "ms__selected-popover", e.appendChild(this.selectedPopover), this.renderDropdown();
|
|
2000
2030
|
}
|
|
2001
2031
|
/**
|
|
2002
2032
|
* Check if virtual scroll should be used
|
|
@@ -2040,19 +2070,19 @@ class zs {
|
|
|
2040
2070
|
});
|
|
2041
2071
|
else if (this.options.isGroupsAllowed) {
|
|
2042
2072
|
const i = this.groupOptions(this.filteredOptions), r = /* @__PURE__ */ new Map();
|
|
2043
|
-
this.filteredOptions.forEach((
|
|
2044
|
-
if (e += '<div class="ms__group">',
|
|
2073
|
+
this.filteredOptions.forEach((n, a) => r.set(n, a)), Object.keys(i).forEach((n) => {
|
|
2074
|
+
if (e += '<div class="ms__group">', n !== "__ungrouped__")
|
|
2045
2075
|
if (this.options.renderGroupLabelContentCallback) {
|
|
2046
|
-
const
|
|
2047
|
-
if (
|
|
2076
|
+
const a = this.options.renderGroupLabelContentCallback(n);
|
|
2077
|
+
if (a instanceof HTMLElement) {
|
|
2048
2078
|
const l = document.createElement("div");
|
|
2049
|
-
l.className = "ms__group-label", l.appendChild(
|
|
2079
|
+
l.className = "ms__group-label", l.appendChild(a), e += l.outerHTML;
|
|
2050
2080
|
} else
|
|
2051
|
-
e += `<div class="ms__group-label">${
|
|
2081
|
+
e += `<div class="ms__group-label">${a}</div>`;
|
|
2052
2082
|
} else
|
|
2053
|
-
e += `<div class="ms__group-label">${
|
|
2054
|
-
i[
|
|
2055
|
-
e += this.renderOption(
|
|
2083
|
+
e += `<div class="ms__group-label">${n}</div>`;
|
|
2084
|
+
i[n].forEach((a) => {
|
|
2085
|
+
e += this.renderOption(a, r.get(a) ?? -1);
|
|
2056
2086
|
}), e += "</div>";
|
|
2057
2087
|
});
|
|
2058
2088
|
} else
|
|
@@ -2069,8 +2099,8 @@ class zs {
|
|
|
2069
2099
|
let s = "";
|
|
2070
2100
|
const i = this.renderActionsHTML(), r = this.options.actionsPosition === "bottom";
|
|
2071
2101
|
r || (s += i);
|
|
2072
|
-
const
|
|
2073
|
-
s += `<div class="ms__options ms__options--virtual" style="height: ${
|
|
2102
|
+
const n = this.options.maxHeight || "20rem", a = this.options.optionHeight ?? 50;
|
|
2103
|
+
s += `<div class="ms__options ms__options--virtual" style="height: ${n}; max-height: ${n}; overflow-y: auto; position: relative; --ms-option-height: ${a}px;"></div>`, r && (s += i), this.dropdownInner.innerHTML = s, this.optionsContainer = this.dropdownInner.querySelector(".ms__options");
|
|
2074
2104
|
}
|
|
2075
2105
|
if (this.filteredOptions.length === 0) {
|
|
2076
2106
|
this.virtualScroll && (this.virtualScroll.destroy(), this.virtualScroll = null), this.optionsContainer.innerHTML = `<div class="ms__empty">${this.options.emptyMessage}</div>`;
|
|
@@ -2078,7 +2108,7 @@ class zs {
|
|
|
2078
2108
|
}
|
|
2079
2109
|
const e = this.options.optionHeight ?? 50, t = this.options.virtualScrollBuffer ?? 10;
|
|
2080
2110
|
requestAnimationFrame(() => {
|
|
2081
|
-
this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new
|
|
2111
|
+
this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new qe({
|
|
2082
2112
|
container: this.optionsContainer,
|
|
2083
2113
|
itemHeight: e,
|
|
2084
2114
|
items: this.filteredOptions,
|
|
@@ -2107,7 +2137,7 @@ class zs {
|
|
|
2107
2137
|
renderActionsHTML() {
|
|
2108
2138
|
const e = this.options.actionButtons;
|
|
2109
2139
|
if (!this.options.isMultipleEnabled || !e || e.length === 0) return "";
|
|
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" : "",
|
|
2140
|
+
const t = this.options.actionsPosition === "bottom" ? "bottom" : "top", s = this.options.actionsAlign ?? "stretch", i = ` ms__actions--${t}`, r = this.options.isActionsSticky ? " ms__actions--sticky" : "", n = this.options.actionsLayout === "wrap" ? " ms__actions--wrap" : "", a = ` ms__actions--align-${s}`, l = /* @__PURE__ */ new Map();
|
|
2111
2141
|
if (e.forEach((d, p) => {
|
|
2112
2142
|
if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
|
|
2113
2143
|
let m;
|
|
@@ -2118,28 +2148,29 @@ class zs {
|
|
|
2118
2148
|
const y = d.getClassCallback(this);
|
|
2119
2149
|
f = Array.isArray(y) ? ` ${y.join(" ")}` : y ? ` ${y}` : "";
|
|
2120
2150
|
} else d.cssClass && (f = ` ${d.cssClass}`);
|
|
2121
|
-
const g = Math.max(1, Math.floor(d.row ?? 1)),
|
|
2122
|
-
l.has(g) || l.set(g, []), l.get(g).push(
|
|
2151
|
+
const g = Math.max(1, Math.floor(d.row ?? 1)), k = `<button type="button"${b} class="ms__action-btn${f}" data-action="${d.action}" data-button-index="${p}">${v}</button>`;
|
|
2152
|
+
l.has(g) || l.set(g, []), l.get(g).push(k);
|
|
2123
2153
|
}), l.size === 0) return "";
|
|
2124
2154
|
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}${
|
|
2155
|
+
return `<div class="ms__actions${i}${r}${n}${a}">${c}</div>`;
|
|
2126
2156
|
}
|
|
2127
2157
|
renderOption(e, t) {
|
|
2128
|
-
const s = this.getItemValue(e), i = this.getItemDisplayValue(e), r = this.getItemIcon(e),
|
|
2129
|
-
l && p.push("ms__option--selected"), c && p.push("ms__option--focused"), d && p.push("ms__option--matched"),
|
|
2158
|
+
const s = this.getItemValue(e), i = this.getItemDisplayValue(e), r = this.getItemIcon(e), n = this.getItemSubtitle(e), a = this.getItemDisabled(e), l = this.selectedValues.has(String(s)), c = t === this.focusedIndex, d = this.matchingIndices.has(t), p = ["ms__option"];
|
|
2159
|
+
l && p.push("ms__option--selected"), c && p.push("ms__option--focused"), d && p.push("ms__option--matched"), a && p.push("ms__option--disabled");
|
|
2130
2160
|
const u = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "";
|
|
2131
2161
|
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" : ""} ${
|
|
2162
|
+
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (m += `<input type="checkbox" class="ms__checkbox" ${l ? "checked" : ""} ${a ? "disabled" : ""}>`), m += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
|
|
2133
2163
|
const b = {
|
|
2134
2164
|
index: t,
|
|
2135
2165
|
isSelected: l,
|
|
2136
2166
|
isFocused: c,
|
|
2137
2167
|
isMatched: d,
|
|
2138
|
-
isDisabled:
|
|
2168
|
+
isDisabled: a,
|
|
2169
|
+
isTreeNode: !1
|
|
2139
2170
|
}, v = this.options.renderOptionContentCallback(e, b);
|
|
2140
2171
|
typeof v == "string" ? m += v : m += v.outerHTML;
|
|
2141
2172
|
} else
|
|
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>`,
|
|
2173
|
+
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>`, n && (m += `<div class="ms__option-subtitle">${n}</div>`), m += "</div>";
|
|
2143
2174
|
return m += "</div>", m += "</div>", m;
|
|
2144
2175
|
}
|
|
2145
2176
|
/**
|
|
@@ -2150,21 +2181,32 @@ class zs {
|
|
|
2150
2181
|
* chevron/toggle — every node is just a normal, selectable option.
|
|
2151
2182
|
*/
|
|
2152
2183
|
renderTreeNode(e, t) {
|
|
2153
|
-
const s = e.data, i = this.getItemValue(s), r = this.getItemDisplayValue(s),
|
|
2184
|
+
const s = e.data, i = this.getItemValue(s), r = this.getItemDisplayValue(s), n = this.getItemIcon(s), a = this.getItemSubtitle(s), l = this.getItemDisabled(s), c = this.isCascadeMode() && this.cascadeIndex, d = c ? $e(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
2185
|
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");
|
|
2155
|
-
const
|
|
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};"${
|
|
2186
|
+
const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", y = b ? "" : ' data-selectable="false"';
|
|
2187
|
+
let w = `<div class="${g.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${v}" style="--ms-tree-depth: ${f};"${k}${y}>`;
|
|
2157
2188
|
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) {
|
|
2158
2189
|
const M = {
|
|
2159
2190
|
index: t,
|
|
2160
2191
|
isSelected: p,
|
|
2161
2192
|
isFocused: m,
|
|
2162
2193
|
isMatched: !1,
|
|
2163
|
-
isDisabled: l
|
|
2164
|
-
|
|
2165
|
-
|
|
2194
|
+
isDisabled: l,
|
|
2195
|
+
// Tree metadata — lets the callback branch on depth / branch-vs-leaf /
|
|
2196
|
+
// tristate without re-deriving any of it from the raw data item.
|
|
2197
|
+
isTreeNode: !0,
|
|
2198
|
+
isBranch: e.hasChildren,
|
|
2199
|
+
isLeaf: !e.hasChildren,
|
|
2200
|
+
childCount: Object.keys(e.children).length,
|
|
2201
|
+
level: v,
|
|
2202
|
+
depth: f,
|
|
2203
|
+
path: e.path,
|
|
2204
|
+
isSelectable: b,
|
|
2205
|
+
isIndeterminate: u
|
|
2206
|
+
}, V = this.options.renderOptionContentCallback(s, M);
|
|
2207
|
+
w += typeof V == "string" ? V : V.outerHTML;
|
|
2166
2208
|
} else
|
|
2167
|
-
|
|
2209
|
+
n && (w += `<span class="ms__option-icon">${n}</span>`), w += '<div class="ms__option-text">', w += `<div class="ms__option-title">${this.highlightMatch(r, this.searchTerm)}</div>`, a && (w += `<div class="ms__option-subtitle">${a}</div>`), w += "</div>";
|
|
2168
2210
|
return w += "</div>", w += "</div>", w;
|
|
2169
2211
|
}
|
|
2170
2212
|
highlightMatch(e, t) {
|
|
@@ -2207,7 +2249,12 @@ class zs {
|
|
|
2207
2249
|
this.input.placeholder = r;
|
|
2208
2250
|
} else
|
|
2209
2251
|
this.input.placeholder = this.getPlaceholderText();
|
|
2210
|
-
if (this.options.isCounterShown && t > 0
|
|
2252
|
+
if (this.options.isCounterShown && t > 0) {
|
|
2253
|
+
const r = this.counterSelection(), n = r.length;
|
|
2254
|
+
this.counter.textContent = `[${n}]`, this.counter.title = this.buildCounterTooltip(r), this.counter.style.display = n > 0 ? "" : "none";
|
|
2255
|
+
} else
|
|
2256
|
+
this.counter.title = "", this.counter.style.display = "none";
|
|
2257
|
+
if (s === "none") {
|
|
2211
2258
|
this.badgesContainer.innerHTML = "";
|
|
2212
2259
|
return;
|
|
2213
2260
|
}
|
|
@@ -2215,21 +2262,21 @@ class zs {
|
|
|
2215
2262
|
this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, this.badgesContainer.innerHTML = e.map((r) => this.renderBadgeHTML(r, { displayMode: "badges", isInPopover: !1 })).join("");
|
|
2216
2263
|
else if (s === "partial") {
|
|
2217
2264
|
this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`;
|
|
2218
|
-
const r = this.options.badgesMaxVisible || 3,
|
|
2265
|
+
const r = this.options.badgesMaxVisible || 3, n = e.slice(0, r), a = t - r, l = n.map((d) => this.renderBadgeHTML(d, { displayMode: "partial", isInPopover: !1 })).join("");
|
|
2219
2266
|
let c = "";
|
|
2220
|
-
|
|
2267
|
+
a > 0 && (c = `
|
|
2221
2268
|
<div class="ms__badge ms__badge--counter ms__badge--more" data-action="show-selected">
|
|
2222
|
-
<span class="ms__badge-text">${this.options.getCounterCallback ? this.options.getCounterCallback(t,
|
|
2223
|
-
<button type="button" class="ms__badge-remove" data-action="remove-hidden" aria-label="Remove ${
|
|
2269
|
+
<span class="ms__badge-text">${this.options.getCounterCallback ? this.options.getCounterCallback(t, a) : `+${a} more`}</span>
|
|
2270
|
+
<button type="button" class="ms__badge-remove" data-action="remove-hidden" aria-label="Remove ${a} hidden items"></button>
|
|
2224
2271
|
</div>
|
|
2225
2272
|
`), this.badgesContainer.innerHTML = l + c;
|
|
2226
2273
|
} else if (s === "compact")
|
|
2227
2274
|
if (this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, t > 0) {
|
|
2228
|
-
const r = e[0],
|
|
2229
|
-
let l =
|
|
2230
|
-
if (
|
|
2231
|
-
const c = this.options.getCounterCallback ? this.options.getCounterCallback(t,
|
|
2232
|
-
l = `${
|
|
2275
|
+
const r = e[0], n = this.getItemBadgeDisplayValue(r), a = t - 1;
|
|
2276
|
+
let l = n;
|
|
2277
|
+
if (a > 0) {
|
|
2278
|
+
const c = this.options.getCounterCallback ? this.options.getCounterCallback(t, a) : `+${a} more`;
|
|
2279
|
+
l = `${n} (${c})`;
|
|
2233
2280
|
}
|
|
2234
2281
|
this.badgesContainer.innerHTML = `
|
|
2235
2282
|
<div class="ms__badge" data-action="show-selected">
|
|
@@ -2285,14 +2332,14 @@ class zs {
|
|
|
2285
2332
|
if (this.options.beforeSearchCallback) {
|
|
2286
2333
|
const s = this.options.beforeSearchCallback(e);
|
|
2287
2334
|
if (s === null) {
|
|
2288
|
-
|
|
2335
|
+
A.debug(`[${this.instanceId}] beforeSearchCallback blocked search for term:`, e), this.abortInFlightSearch(), this.matchingIndices.clear(), this.isTreeMode() ? (this.searchTerm = "", this.rebuildTreeVisible()) : this.filteredOptions = [...this.allOptions], this.renderDropdown();
|
|
2289
2336
|
return;
|
|
2290
2337
|
}
|
|
2291
|
-
t = s, t !== e &&
|
|
2338
|
+
t = s, t !== e && A.debug(`[${this.instanceId}] beforeSearchCallback transformed: "${e}" -> "${t}"`);
|
|
2292
2339
|
}
|
|
2293
2340
|
if (this.options.searchCallback) {
|
|
2294
2341
|
if (t.length < this.options.minSearchLength) {
|
|
2295
|
-
this.abortInFlightSearch(), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? (this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions],
|
|
2342
|
+
this.abortInFlightSearch(), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? (this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions], A.debug(`[${this.instanceId}] Search term below minimum, showing ${this.allOptions.length} initial options`)) : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
|
|
2296
2343
|
return;
|
|
2297
2344
|
}
|
|
2298
2345
|
this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0);
|
|
@@ -2310,13 +2357,13 @@ class zs {
|
|
|
2310
2357
|
else {
|
|
2311
2358
|
const s = this.options.searchMode || "filter", i = t.toLowerCase();
|
|
2312
2359
|
if (s === "filter")
|
|
2313
|
-
this.filteredOptions = this.allOptions.filter((r) => this.getItemSearchValue(r).toLowerCase().includes(i)), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1,
|
|
2360
|
+
this.filteredOptions = this.allOptions.filter((r) => this.getItemSearchValue(r).toLowerCase().includes(i)), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, A.debug(`[${this.instanceId}] Filter mode: ${this.filteredOptions.length} matches for "${t}"`);
|
|
2314
2361
|
else {
|
|
2315
2362
|
this.filteredOptions = [...this.allOptions], this.matchingIndices.clear();
|
|
2316
2363
|
let r = -1;
|
|
2317
|
-
this.allOptions.forEach((
|
|
2318
|
-
this.getItemSearchValue(
|
|
2319
|
-
}), r >= 0 ? (this.focusedIndex = r,
|
|
2364
|
+
this.allOptions.forEach((n, a) => {
|
|
2365
|
+
this.getItemSearchValue(n).toLowerCase().includes(i) && (this.matchingIndices.add(a), r === -1 && (r = a));
|
|
2366
|
+
}), r >= 0 ? (this.focusedIndex = r, A.debug(`[${this.instanceId}] Navigate mode: ${this.matchingIndices.size} matches, jumped to index ${r}`)) : A.debug(`[${this.instanceId}] Navigate mode: No matches found, keeping previous focus`);
|
|
2320
2367
|
}
|
|
2321
2368
|
}
|
|
2322
2369
|
this.renderDropdown(), this.options.searchMode === "navigate" && this.focusedIndex >= 0 && this.scrollToFocused();
|
|
@@ -2340,15 +2387,15 @@ class zs {
|
|
|
2340
2387
|
async performAsyncSearch(e, t) {
|
|
2341
2388
|
this.abortInFlightSearch();
|
|
2342
2389
|
const s = new AbortController();
|
|
2343
|
-
this.searchAbortController = s, this.isLoading = !0, this.renderDropdown(),
|
|
2390
|
+
this.searchAbortController = s, this.isLoading = !0, this.renderDropdown(), A.debug(`[${this.instanceId}] Loading data for search term:`, t);
|
|
2344
2391
|
try {
|
|
2345
2392
|
const i = await this.options.searchCallback(t, s.signal);
|
|
2346
2393
|
if (s.signal.aborted || this.searchTerm !== e) return;
|
|
2347
2394
|
const r = i || [];
|
|
2348
|
-
this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(r) : this.filteredOptions = [...r], this.isLoading = !1, this.matchingIndices.clear(), this.focusedIndex = this.options.isSearchEnabled && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(),
|
|
2395
|
+
this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(r) : this.filteredOptions = [...r], this.isLoading = !1, this.matchingIndices.clear(), this.focusedIndex = this.options.isSearchEnabled && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(), A.debug(`[${this.instanceId}] Loaded ${r.length} results`);
|
|
2349
2396
|
} catch (i) {
|
|
2350
2397
|
if (s.signal.aborted) return;
|
|
2351
|
-
|
|
2398
|
+
A.error(`[${this.instanceId}] Error loading data:`, i), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions] : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
|
|
2352
2399
|
} finally {
|
|
2353
2400
|
this.searchAbortController === s && (this.searchAbortController = void 0);
|
|
2354
2401
|
}
|
|
@@ -2407,21 +2454,21 @@ class zs {
|
|
|
2407
2454
|
else if (r === "clear-all")
|
|
2408
2455
|
this.clearAll();
|
|
2409
2456
|
else if (r === "custom") {
|
|
2410
|
-
const
|
|
2411
|
-
|
|
2457
|
+
const n = parseInt(t.dataset.buttonIndex || "-1"), a = (i = this.options.actionButtons) == null ? void 0 : i[n];
|
|
2458
|
+
a != null && a.onClick && a.onClick(this);
|
|
2412
2459
|
}
|
|
2413
2460
|
return;
|
|
2414
2461
|
}
|
|
2415
2462
|
const s = e.target.closest(".ms__option");
|
|
2416
2463
|
if (s && !s.classList.contains("ms__option--disabled")) {
|
|
2417
2464
|
e.preventDefault();
|
|
2418
|
-
const r = s.dataset.value,
|
|
2465
|
+
const r = s.dataset.value, n = this.filteredOptions.findIndex((a) => String(this.getItemValue(a)) === r);
|
|
2419
2466
|
L.debug(`[${this.instanceId}] Option clicked:`, {
|
|
2420
2467
|
value: r,
|
|
2421
|
-
optionIndex:
|
|
2468
|
+
optionIndex: n,
|
|
2422
2469
|
closeOnSelect: this.options.isCloseOnSelect,
|
|
2423
2470
|
placeholder: this.options.searchPlaceholder
|
|
2424
|
-
}),
|
|
2471
|
+
}), n >= 0 && (this.focusedIndex = n, this.toggleOption(this.filteredOptions[n]), this.isOpen && this.input.focus());
|
|
2425
2472
|
}
|
|
2426
2473
|
}
|
|
2427
2474
|
handleBadgeClick(e) {
|
|
@@ -2441,8 +2488,8 @@ class zs {
|
|
|
2441
2488
|
Array.from(this.selectedOptions.values()).slice(l).forEach((p) => this.interactiveDeselect(p));
|
|
2442
2489
|
return;
|
|
2443
2490
|
}
|
|
2444
|
-
const
|
|
2445
|
-
|
|
2491
|
+
const n = i.dataset.value, a = this.selectedOptions.get(n);
|
|
2492
|
+
a && this.interactiveDeselect(a);
|
|
2446
2493
|
return;
|
|
2447
2494
|
}
|
|
2448
2495
|
if (e.target.closest(".ms__badge--more") && !e.target.closest(".ms__badge-remove")) {
|
|
@@ -2454,7 +2501,7 @@ class zs {
|
|
|
2454
2501
|
var i;
|
|
2455
2502
|
const t = e.composedPath();
|
|
2456
2503
|
if (this.showSelectedPopover && !t.some(
|
|
2457
|
-
(
|
|
2504
|
+
(n) => n instanceof Node && (this.selectedPopover.contains(n) || this.counter.contains(n) || n.closest && n.closest('[data-action="show-selected"]'))
|
|
2458
2505
|
)) {
|
|
2459
2506
|
R.debug(`[${this.instanceId}] Closing selected popover due to click outside`), this.hideSelectedPopover();
|
|
2460
2507
|
return;
|
|
@@ -2547,9 +2594,9 @@ class zs {
|
|
|
2547
2594
|
}
|
|
2548
2595
|
const t = this.getItemValue(e), s = String(t);
|
|
2549
2596
|
if (L.debug(`[${this.instanceId}] toggleOption called`, { value: t, multiple: this.options.isMultipleEnabled }), this.isCascadeMode() && this.cascadeIndex) {
|
|
2550
|
-
const
|
|
2551
|
-
if (
|
|
2552
|
-
this.toggleTreeCascade(
|
|
2597
|
+
const n = this.cascadeIndex.nodeByValue.get(s);
|
|
2598
|
+
if (n) {
|
|
2599
|
+
this.toggleTreeCascade(n), this.options.isCloseOnSelect && this.close();
|
|
2553
2600
|
return;
|
|
2554
2601
|
}
|
|
2555
2602
|
}
|
|
@@ -2579,11 +2626,11 @@ class zs {
|
|
|
2579
2626
|
async handleAddNew(e) {
|
|
2580
2627
|
if (this.options.addNewCallback)
|
|
2581
2628
|
try {
|
|
2582
|
-
|
|
2629
|
+
A.debug(`[${this.instanceId}] Adding new option:`, e);
|
|
2583
2630
|
const t = await this.options.addNewCallback(e);
|
|
2584
2631
|
this.allOptions.push(t), this.filteredOptions.push(t), this.selectOption(t), this.input.value = "", this.renderDropdown(), this.renderBadges(), this.options.isCloseOnSelect && this.close();
|
|
2585
2632
|
} catch (t) {
|
|
2586
|
-
|
|
2633
|
+
A.error(`[${this.instanceId}] Error adding new option:`, t);
|
|
2587
2634
|
}
|
|
2588
2635
|
}
|
|
2589
2636
|
selectOption(e) {
|
|
@@ -2592,11 +2639,20 @@ class zs {
|
|
|
2592
2639
|
}
|
|
2593
2640
|
deselectOption(e) {
|
|
2594
2641
|
const t = this.getItemValue(e), s = String(t);
|
|
2642
|
+
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
2643
|
+
const i = this.cascadeIndex.nodeByValue.get(s);
|
|
2644
|
+
if (i) {
|
|
2645
|
+
const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(ie(this.cascadeIndex, this.selectedValues));
|
|
2646
|
+
for (const a of r) n.delete(a);
|
|
2647
|
+
this.commitCascadeAtoms(n);
|
|
2648
|
+
return;
|
|
2649
|
+
}
|
|
2650
|
+
}
|
|
2595
2651
|
this.selectedValues.delete(s), this.selectedOptions.delete(s), this.commit({ removed: [e] });
|
|
2596
2652
|
}
|
|
2597
2653
|
selectAll() {
|
|
2598
2654
|
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
2599
|
-
const t = this.cascadeIndex, s = new Set(
|
|
2655
|
+
const t = this.cascadeIndex, s = new Set(ie(t, this.selectedValues));
|
|
2600
2656
|
for (const i of this.treeNodes)
|
|
2601
2657
|
t.atomPaths.has(i.path) && (this.getItemDisabled(i.data) || s.add(String(this.getItemValue(i.data))));
|
|
2602
2658
|
this.commitCascadeAtoms(s);
|
|
@@ -2638,18 +2694,18 @@ class zs {
|
|
|
2638
2694
|
*/
|
|
2639
2695
|
anchorFloatingPanel(e, t) {
|
|
2640
2696
|
const s = {
|
|
2641
|
-
...
|
|
2697
|
+
...pt,
|
|
2642
2698
|
getOffsetParent: () => Es(this.input)
|
|
2643
2699
|
};
|
|
2644
|
-
return
|
|
2700
|
+
return Te(this.input, e, () => {
|
|
2645
2701
|
var l;
|
|
2646
|
-
|
|
2647
|
-
const i = ((l = t.isLocked) == null ? void 0 : l.call(t)) ?? !0, r = t.getPlacement(),
|
|
2648
|
-
|
|
2649
|
-
...i && r ? [] : [
|
|
2650
|
-
|
|
2702
|
+
(this.options.hostElement ?? this.element).style.setProperty("--ms-input-current-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);
|
|
2703
|
+
const i = ((l = t.isLocked) == null ? void 0 : l.call(t)) ?? !0, r = t.getPlacement(), n = i && r ? r : "bottom-start", a = [
|
|
2704
|
+
Ie(4),
|
|
2705
|
+
...i && r ? [] : [bt()],
|
|
2706
|
+
Me({ padding: 8 })
|
|
2651
2707
|
];
|
|
2652
|
-
|
|
2708
|
+
Ae(this.input, e, { placement: n, strategy: "fixed", middleware: a, platform: s }).then(({ x: c, y: d, placement: p }) => {
|
|
2653
2709
|
var u;
|
|
2654
2710
|
r || t.setPlacement(p), Object.assign(e.style, {
|
|
2655
2711
|
position: "fixed",
|
|
@@ -2672,12 +2728,12 @@ class zs {
|
|
|
2672
2728
|
*/
|
|
2673
2729
|
verifyPanelLanded(e, t, s) {
|
|
2674
2730
|
if (this.positioningDriftWarned) return;
|
|
2675
|
-
const i = e.getBoundingClientRect(), r = i.x - t,
|
|
2676
|
-
if (Math.abs(r) < 1 && Math.abs(
|
|
2731
|
+
const i = e.getBoundingClientRect(), r = i.x - t, n = i.y - s;
|
|
2732
|
+
if (Math.abs(r) < 1 && Math.abs(n) < 1) return;
|
|
2677
2733
|
this.positioningDriftWarned = !0;
|
|
2678
|
-
const
|
|
2734
|
+
const a = Ds(this.input, r, n), l = a ? `<${a.tagName.toLowerCase()}${a.id ? "#" + a.id : ""}${typeof a.className == "string" && a.className ? "." + a.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : ""}>` : "an ancestor element (could not auto-identify)", c = a ? Bs(a) : "";
|
|
2679
2735
|
console.warn(
|
|
2680
|
-
`[@keenmate/web-multiselect] Dropdown panel rendered ${r.toFixed(0)}px / ${
|
|
2736
|
+
`[@keenmate/web-multiselect] Dropdown panel rendered ${r.toFixed(0)}px / ${n.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."
|
|
2681
2737
|
);
|
|
2682
2738
|
}
|
|
2683
2739
|
positionDropdown() {
|
|
@@ -2694,18 +2750,18 @@ class zs {
|
|
|
2694
2750
|
});
|
|
2695
2751
|
}
|
|
2696
2752
|
positionHint() {
|
|
2697
|
-
this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup =
|
|
2753
|
+
this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup = Te(
|
|
2698
2754
|
this.input,
|
|
2699
2755
|
this.hint,
|
|
2700
2756
|
() => {
|
|
2701
2757
|
let e = "top-start";
|
|
2702
|
-
this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom"))),
|
|
2758
|
+
this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom"))), Ae(this.input, this.hint, {
|
|
2703
2759
|
placement: e,
|
|
2704
2760
|
strategy: "fixed",
|
|
2705
2761
|
middleware: [
|
|
2706
|
-
|
|
2762
|
+
Ie(4),
|
|
2707
2763
|
// Don't use flip() - we want hint to stay opposite of dropdown
|
|
2708
|
-
|
|
2764
|
+
Me({ padding: 8 })
|
|
2709
2765
|
]
|
|
2710
2766
|
}).then(({ x: t, y: s }) => {
|
|
2711
2767
|
Object.assign(this.hint.style, {
|
|
@@ -2725,7 +2781,7 @@ class zs {
|
|
|
2725
2781
|
this.selectedValues.add(String(s));
|
|
2726
2782
|
}), this.reconcileSelectedOptions(), this.renderBadges();
|
|
2727
2783
|
} catch (t) {
|
|
2728
|
-
|
|
2784
|
+
A.error(`[${this.instanceId}] Failed to parse initial values:`, t);
|
|
2729
2785
|
}
|
|
2730
2786
|
}
|
|
2731
2787
|
/**
|
|
@@ -2775,27 +2831,27 @@ class zs {
|
|
|
2775
2831
|
}
|
|
2776
2832
|
renderSelectedPopoverVirtual(e, t) {
|
|
2777
2833
|
if (this.selectedPopoverVirtualScroll) {
|
|
2778
|
-
const
|
|
2779
|
-
|
|
2834
|
+
const a = this.selectedPopover.querySelector(".ms__selected-popover-header span");
|
|
2835
|
+
a && (a.textContent = `Selected Items (${t})`);
|
|
2780
2836
|
} else {
|
|
2781
|
-
const
|
|
2837
|
+
const a = this.options.badgeHeight ?? 36, l = `
|
|
2782
2838
|
<div class="ms__selected-popover-header">
|
|
2783
2839
|
<span>Selected Items (${t})</span>
|
|
2784
2840
|
<button type="button" class="ms__selected-popover-close" aria-label="Close"></button>
|
|
2785
2841
|
</div>
|
|
2786
|
-
<div class="ms__selected-popover-body ms__selected-popover-body--virtual" style="height: 18rem; overflow-y: auto; position: relative; --ms-badge-height-virtual: ${
|
|
2842
|
+
<div class="ms__selected-popover-body ms__selected-popover-body--virtual" style="height: 18rem; overflow-y: auto; position: relative; --ms-badge-height-virtual: ${a}px;"></div>
|
|
2787
2843
|
`;
|
|
2788
2844
|
this.selectedPopover.innerHTML = l, this.selectedPopoverContainer = this.selectedPopover.querySelector(".ms__selected-popover-body");
|
|
2789
2845
|
}
|
|
2790
2846
|
if (!this.selectedPopoverContainer) return;
|
|
2791
|
-
const r = (this.options.badgeHeight ?? 36) + 4,
|
|
2847
|
+
const r = (this.options.badgeHeight ?? 36) + 4, n = this.options.virtualScrollBuffer ?? 10;
|
|
2792
2848
|
requestAnimationFrame(() => {
|
|
2793
|
-
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new
|
|
2849
|
+
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new qe({
|
|
2794
2850
|
container: this.selectedPopoverContainer,
|
|
2795
2851
|
itemHeight: r,
|
|
2796
2852
|
items: e,
|
|
2797
|
-
renderItem: (
|
|
2798
|
-
bufferSize:
|
|
2853
|
+
renderItem: (a) => this.renderBadgeHTML(a, { displayMode: this.options.badgesDisplayMode || "badges", isInPopover: !0 }),
|
|
2854
|
+
bufferSize: n,
|
|
2799
2855
|
onVisibleRangeChange: () => {
|
|
2800
2856
|
this.attachBadgeTooltips(this.selectedPopoverContainer);
|
|
2801
2857
|
}
|
|
@@ -2823,15 +2879,15 @@ class zs {
|
|
|
2823
2879
|
i = typeof c == "string" ? c : c.outerHTML;
|
|
2824
2880
|
} else
|
|
2825
2881
|
i = this.getItemBadgeDisplayValue(e);
|
|
2826
|
-
const
|
|
2827
|
-
let
|
|
2828
|
-
if (
|
|
2829
|
-
const c =
|
|
2830
|
-
|
|
2882
|
+
const n = t.isInPopover ? this.options.getSelectedItemClassCallback || this.options.getBadgeClassCallback : this.options.getBadgeClassCallback;
|
|
2883
|
+
let a = "ms__badge";
|
|
2884
|
+
if (n) {
|
|
2885
|
+
const c = n(e), d = Array.isArray(c) ? c : [c];
|
|
2886
|
+
a += " " + d.filter((p) => p).join(" ");
|
|
2831
2887
|
}
|
|
2832
2888
|
const l = this.getItemBadgeDisplayValue(e);
|
|
2833
2889
|
return `
|
|
2834
|
-
<div class="${
|
|
2890
|
+
<div class="${a}">
|
|
2835
2891
|
<span class="ms__badge-text">${i}</span>
|
|
2836
2892
|
<button type="button" class="ms__badge-remove" data-value="${s}" aria-label="Remove ${l}"></button>
|
|
2837
2893
|
</div>
|
|
@@ -2895,7 +2951,7 @@ class zs {
|
|
|
2895
2951
|
*/
|
|
2896
2952
|
setSelected(e, t = {}) {
|
|
2897
2953
|
this.selectedValues = new Set(e.map((s) => String(s))), this.selectedOptions.clear(), e.forEach((s) => {
|
|
2898
|
-
const i = String(s), r = this.allOptions.find((
|
|
2954
|
+
const i = String(s), r = this.allOptions.find((n) => String(this.getItemValue(n)) === i);
|
|
2899
2955
|
r && this.selectedOptions.set(i, r);
|
|
2900
2956
|
}), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput(), t.notify && this.options.onChange && this.options.onChange(this.getSelected());
|
|
2901
2957
|
}
|
|
@@ -2911,17 +2967,32 @@ class zs {
|
|
|
2911
2967
|
* should fall back to destroy + re-init in that case.
|
|
2912
2968
|
*/
|
|
2913
2969
|
updateOptions(e) {
|
|
2970
|
+
var n;
|
|
2914
2971
|
const t = !!this.hint, s = "searchHint" in e ? !!e.searchHint : t;
|
|
2915
2972
|
if (t !== s) return !1;
|
|
2916
2973
|
Object.assign(this.options, e);
|
|
2917
2974
|
const i = "pathMember" in e || "getPathCallback" in e || "parentPathMember" in e || "levelMember" in e || "hasChildrenMember" in e || "treePathSeparator" in e || "isTreeEnabled" in e || "isSelectableMember" in e || "getIsSelectableCallback" in e;
|
|
2918
|
-
if ("options" in e && e.options !== void 0 ? (this.allOptions = e.options, this.reconcileSelectedOptions(), this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]) : i && (this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), this.
|
|
2975
|
+
if ("options" in e && e.options !== void 0 ? (this.allOptions = e.options, this.reconcileSelectedOptions(), this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]) : i && (this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), ("checkboxMode" in e || "cascadeSelectPolicy" in e) && !i && !("options" in e) && this.isTreeMode() && (this.cascadeIndex = this.isCascadeMode() ? Ze(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
|
|
2976
|
+
this.cascadeCheckedAtoms = ie(this.cascadeIndex, this.selectedValues);
|
|
2977
|
+
const a = Ce(
|
|
2978
|
+
this.cascadeIndex,
|
|
2979
|
+
this.cascadeCheckedAtoms,
|
|
2980
|
+
this.cascadePolicy(),
|
|
2981
|
+
(c) => String(this.getItemValue(c))
|
|
2982
|
+
), l = /* @__PURE__ */ new Map();
|
|
2983
|
+
for (const c of a) {
|
|
2984
|
+
const d = ((n = this.cascadeIndex.nodeByValue.get(c)) == null ? void 0 : n.data) ?? this.selectedOptions.get(c);
|
|
2985
|
+
d !== void 0 && l.set(c, d);
|
|
2986
|
+
}
|
|
2987
|
+
this.selectedValues = new Set(a), this.selectedOptions = l;
|
|
2988
|
+
}
|
|
2989
|
+
if (this.element.classList.toggle(
|
|
2919
2990
|
"ms--no-checkboxes",
|
|
2920
2991
|
!this.options.isCheckboxesShown || !this.options.isMultipleEnabled
|
|
2921
2992
|
), "badgesPosition" in e) {
|
|
2922
2993
|
this.effectiveBadgesPosition = this.options.badgesPosition || "bottom", this.isRTL && (this.effectiveBadgesPosition === "left" ? this.effectiveBadgesPosition = "right" : this.effectiveBadgesPosition === "right" && (this.effectiveBadgesPosition = "left"));
|
|
2923
|
-
const
|
|
2924
|
-
|
|
2994
|
+
const a = this.element.querySelector(".ms__wrapper");
|
|
2995
|
+
a == null || a.classList.toggle(
|
|
2925
2996
|
"ms__wrapper--inline",
|
|
2926
2997
|
this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right"
|
|
2927
2998
|
);
|
|
@@ -2955,7 +3026,7 @@ class zs {
|
|
|
2955
3026
|
spawnTooltip(e) {
|
|
2956
3027
|
var r;
|
|
2957
3028
|
(r = this.tooltips.get(e.id)) == null || r.destroy();
|
|
2958
|
-
const t = this.element.getRootNode(), s = t instanceof ShadowRoot ? t : null, i = new
|
|
3029
|
+
const t = this.element.getRootNode(), s = t instanceof ShadowRoot ? t : null, i = new As({
|
|
2959
3030
|
trigger: e.trigger,
|
|
2960
3031
|
container: this.options.container ?? s ?? document.body,
|
|
2961
3032
|
content: e.content,
|
|
@@ -2986,12 +3057,12 @@ ${s}` : t;
|
|
|
2986
3057
|
attachBadgeTooltips(e) {
|
|
2987
3058
|
if (!this.options.isBadgeTooltipsEnabled) return;
|
|
2988
3059
|
const t = !!e, s = e || this.badgesContainer, i = t ? "popover-" : "";
|
|
2989
|
-
if (s.querySelectorAll(".ms__badge:not(.ms__badge--more)").forEach((
|
|
2990
|
-
const
|
|
2991
|
-
if (!
|
|
2992
|
-
const l =
|
|
3060
|
+
if (s.querySelectorAll(".ms__badge:not(.ms__badge--more)").forEach((n) => {
|
|
3061
|
+
const a = n.querySelector(".ms__badge-remove");
|
|
3062
|
+
if (!a) return;
|
|
3063
|
+
const l = a.dataset.value, c = this.selectedOptions.get(l);
|
|
2993
3064
|
if (!c) return;
|
|
2994
|
-
const d = `${i}${l}`, p = `${i}${l}-remove`, u =
|
|
3065
|
+
const d = `${i}${l}`, p = `${i}${l}-remove`, u = n.querySelector(".ms__badge-text");
|
|
2995
3066
|
u && this.spawnTooltip({
|
|
2996
3067
|
id: d,
|
|
2997
3068
|
trigger: u,
|
|
@@ -3000,7 +3071,7 @@ ${s}` : t;
|
|
|
3000
3071
|
const m = this.getItemBadgeDisplayValue(c);
|
|
3001
3072
|
this.spawnTooltip({
|
|
3002
3073
|
id: p,
|
|
3003
|
-
trigger:
|
|
3074
|
+
trigger: a,
|
|
3004
3075
|
content: this.buildRemoveButtonTooltipText(m, c),
|
|
3005
3076
|
// Keep parent badge tooltip from overlapping the remove-button tooltip.
|
|
3006
3077
|
onBeforeShow: () => {
|
|
@@ -3009,12 +3080,12 @@ ${s}` : t;
|
|
|
3009
3080
|
}
|
|
3010
3081
|
});
|
|
3011
3082
|
}), !t) {
|
|
3012
|
-
const
|
|
3013
|
-
if (
|
|
3083
|
+
const n = this.badgesContainer.querySelector(".ms__badge--more"), a = n == null ? void 0 : n.querySelector(".ms__badge-remove");
|
|
3084
|
+
if (a && a.dataset.action === "remove-hidden") {
|
|
3014
3085
|
const l = this.options.badgesMaxVisible || 3, c = this.selectedOptions.size - l;
|
|
3015
3086
|
this.spawnTooltip({
|
|
3016
3087
|
id: "more-badge-remove",
|
|
3017
|
-
trigger:
|
|
3088
|
+
trigger: a,
|
|
3018
3089
|
content: this.buildRemoveButtonTooltipText(`${c} hidden items`)
|
|
3019
3090
|
});
|
|
3020
3091
|
}
|
|
@@ -3040,11 +3111,11 @@ ${s}` : t;
|
|
|
3040
3111
|
if (i < 0) return;
|
|
3041
3112
|
const r = this.filteredOptions[i];
|
|
3042
3113
|
if (!r) return;
|
|
3043
|
-
const
|
|
3044
|
-
|
|
3114
|
+
const n = this.buildOptionTooltipContent(r);
|
|
3115
|
+
n && this.spawnTooltip({
|
|
3045
3116
|
id: `option-${i}`,
|
|
3046
3117
|
trigger: s,
|
|
3047
|
-
content:
|
|
3118
|
+
content: n,
|
|
3048
3119
|
// Default to `top-start` (anchored to the row's start edge) so the tooltip doesn't
|
|
3049
3120
|
// center on a full-width row. Falls through to the badge settings for delay/offset.
|
|
3050
3121
|
placement: this.options.optionTooltipPlacement ?? "top-start",
|
|
@@ -3070,12 +3141,12 @@ ${s}` : t;
|
|
|
3070
3141
|
var c, d;
|
|
3071
3142
|
const s = t, i = s.dataset.action;
|
|
3072
3143
|
if (!i) return;
|
|
3073
|
-
const r = parseInt(s.dataset.buttonIndex || "-1"),
|
|
3074
|
-
if (!a) return;
|
|
3075
|
-
const n = a.getTooltipCallback ? a.getTooltipCallback(this) : a.tooltip;
|
|
3144
|
+
const r = parseInt(s.dataset.buttonIndex || "-1"), n = r >= 0 ? (c = this.options.actionButtons) == null ? void 0 : c[r] : (d = this.options.actionButtons) == null ? void 0 : d.find((p) => p.action === i);
|
|
3076
3145
|
if (!n) return;
|
|
3146
|
+
const a = n.getTooltipCallback ? n.getTooltipCallback(this) : n.tooltip;
|
|
3147
|
+
if (!a) return;
|
|
3077
3148
|
const l = `action-${r >= 0 ? r : i}`;
|
|
3078
|
-
this.spawnTooltip({ id: l, trigger: s, content:
|
|
3149
|
+
this.spawnTooltip({ id: l, trigger: s, content: a });
|
|
3079
3150
|
});
|
|
3080
3151
|
}
|
|
3081
3152
|
/**
|
|
@@ -3101,11 +3172,11 @@ ${s}` : t;
|
|
|
3101
3172
|
// PUBLIC API
|
|
3102
3173
|
// ========================================================================
|
|
3103
3174
|
destroy() {
|
|
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"),
|
|
3175
|
+
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"), he.info(`[${this.instanceId}] Component destroyed`);
|
|
3105
3176
|
}
|
|
3106
3177
|
}
|
|
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
|
-
},
|
|
3178
|
+
const zs = `@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-accent-color-light-hover));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--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-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-input-current-width: auto;--ms-dropdown-width: var(--ms-input-current-width);--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__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);width:var(--ms-dropdown-width);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}}`, Rs = typeof HTMLElement < "u" ? HTMLElement : class {
|
|
3179
|
+
}, Pe = [
|
|
3109
3180
|
// Strings
|
|
3110
3181
|
{ attr: "search-hint", key: "searchHint", parser: "string-or-undefined" },
|
|
3111
3182
|
{ attr: "search-placeholder", key: "searchPlaceholder", parser: "string", default: "Search..." },
|
|
@@ -3264,7 +3335,10 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
3264
3335
|
{ attr: "enable-badge-tooltips", key: "isBadgeTooltipsEnabled", parser: "bool-default-false" },
|
|
3265
3336
|
{ attr: "enable-option-tooltips", key: "isOptionTooltipsEnabled", parser: "bool-default-false" },
|
|
3266
3337
|
{ attr: "option-tooltip-follow-cursor", key: "isOptionTooltipFollowCursor", parser: "bool-default-false" }
|
|
3267
|
-
],
|
|
3338
|
+
], Fs = new Map(Pe.map((o) => [o.attr, o])), Qe = {
|
|
3339
|
+
"dropdown-width": "--ms-dropdown-width",
|
|
3340
|
+
"selected-popover-width": "--ms-selected-popover-width"
|
|
3341
|
+
}, et = [
|
|
3268
3342
|
{ key: "valueMember", field: "_valueMember" },
|
|
3269
3343
|
{ key: "displayValueMember", field: "_displayValueMember" },
|
|
3270
3344
|
{ key: "searchValueMember", field: "_searchValueMember" },
|
|
@@ -3272,7 +3346,7 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
3272
3346
|
{ key: "subtitleMember", field: "_subtitleMember" },
|
|
3273
3347
|
{ key: "groupMember", field: "_groupMember" },
|
|
3274
3348
|
{ key: "disabledMember", field: "_disabledMember" }
|
|
3275
|
-
],
|
|
3349
|
+
], Hs = [
|
|
3276
3350
|
{ key: "valueMember", member: "value" },
|
|
3277
3351
|
{ key: "displayValueMember", member: "label" },
|
|
3278
3352
|
{ key: "groupMember", member: "group" },
|
|
@@ -3280,7 +3354,7 @@ const Bs = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
3280
3354
|
{ key: "subtitleMember", member: "subtitle" },
|
|
3281
3355
|
{ key: "disabledMember", member: "disabled" }
|
|
3282
3356
|
];
|
|
3283
|
-
function
|
|
3357
|
+
function tt(o, e) {
|
|
3284
3358
|
if (e === null || e === "")
|
|
3285
3359
|
switch (o.parser) {
|
|
3286
3360
|
case "bool-default-true":
|
|
@@ -3306,11 +3380,11 @@ function Ze(o, e) {
|
|
|
3306
3380
|
return e === "true";
|
|
3307
3381
|
}
|
|
3308
3382
|
}
|
|
3309
|
-
const
|
|
3310
|
-
function
|
|
3311
|
-
return Array.from(
|
|
3383
|
+
const Le = /* @__PURE__ */ new Set();
|
|
3384
|
+
function kt() {
|
|
3385
|
+
return Array.from(Le);
|
|
3312
3386
|
}
|
|
3313
|
-
class
|
|
3387
|
+
class ze extends Rs {
|
|
3314
3388
|
constructor() {
|
|
3315
3389
|
super();
|
|
3316
3390
|
h(this, "picker");
|
|
@@ -3381,16 +3455,17 @@ class Be extends $s {
|
|
|
3381
3455
|
} catch {
|
|
3382
3456
|
}
|
|
3383
3457
|
const t = document.createElement("style");
|
|
3384
|
-
t.textContent =
|
|
3458
|
+
t.textContent = zs, this.shadow.appendChild(t), requestAnimationFrame(() => {
|
|
3385
3459
|
this.setAttribute("data-ready", "");
|
|
3386
3460
|
});
|
|
3387
3461
|
}
|
|
3388
3462
|
static get observedAttributes() {
|
|
3389
3463
|
return [
|
|
3390
|
-
...
|
|
3464
|
+
...Pe.map((t) => t.attr),
|
|
3391
3465
|
// Out-of-table attributes (handled by special-case logic in attributeChangedCallback)
|
|
3392
3466
|
"initial-values",
|
|
3393
|
-
"show-debug-info"
|
|
3467
|
+
"show-debug-info",
|
|
3468
|
+
...Object.keys(Qe)
|
|
3394
3469
|
];
|
|
3395
3470
|
}
|
|
3396
3471
|
/**
|
|
@@ -3405,30 +3480,36 @@ class Be extends $s {
|
|
|
3405
3480
|
(t = this.picker) == null || t.clearAll();
|
|
3406
3481
|
}
|
|
3407
3482
|
connectedCallback() {
|
|
3408
|
-
|
|
3483
|
+
Le.add(this), this.render();
|
|
3409
3484
|
const t = this.parseDeclarativeOptions();
|
|
3410
|
-
t && (this._options && this._options.length > 0 &&
|
|
3485
|
+
t && (this._options && this._options.length > 0 && A.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), this._options = t, this._hasDeclarativeOptions = !0), this.initializePicker();
|
|
3411
3486
|
}
|
|
3412
3487
|
disconnectedCallback() {
|
|
3413
|
-
|
|
3488
|
+
Le.delete(this), this.picker && this.picker.destroy();
|
|
3414
3489
|
}
|
|
3415
3490
|
attributeChangedCallback(t, s, i) {
|
|
3416
3491
|
var a;
|
|
3417
|
-
if (s === i
|
|
3492
|
+
if (s === i) return;
|
|
3493
|
+
const r = Qe[t];
|
|
3494
|
+
if (r !== void 0) {
|
|
3495
|
+
i === null || i === "" ? this.style.removeProperty(r) : this.style.setProperty(r, i);
|
|
3496
|
+
return;
|
|
3497
|
+
}
|
|
3498
|
+
if (!this.picker || t === "initial-values") return;
|
|
3418
3499
|
if (t === "show-debug-info") {
|
|
3419
|
-
const
|
|
3420
|
-
|
|
3500
|
+
const l = this.shadow.querySelector(".ms__debug-info");
|
|
3501
|
+
l && l.remove(), i === "true" && this.renderDebugInfo();
|
|
3421
3502
|
return;
|
|
3422
3503
|
}
|
|
3423
|
-
const
|
|
3424
|
-
if (
|
|
3425
|
-
const
|
|
3504
|
+
const n = Fs.get(t);
|
|
3505
|
+
if (n) {
|
|
3506
|
+
const l = tt(n, i), c = (a = et.find((m) => m.key === n.key)) == null ? void 0 : a.field, d = l === void 0 && c ? this[c] : l;
|
|
3426
3507
|
if (this._batchDepth > 0) {
|
|
3427
|
-
this._batchPartial[
|
|
3508
|
+
this._batchPartial[n.key] = d;
|
|
3428
3509
|
return;
|
|
3429
3510
|
}
|
|
3430
|
-
const
|
|
3431
|
-
if (this.picker.updateOptions(
|
|
3511
|
+
const p = { [n.key]: d };
|
|
3512
|
+
if (this.picker.updateOptions(p)) return;
|
|
3432
3513
|
}
|
|
3433
3514
|
if (this._batchDepth > 0) {
|
|
3434
3515
|
this._batchNeedsReinit = !0;
|
|
@@ -3452,8 +3533,8 @@ class Be extends $s {
|
|
|
3452
3533
|
setAttributes(t) {
|
|
3453
3534
|
this._batchDepth++;
|
|
3454
3535
|
try {
|
|
3455
|
-
for (const [r,
|
|
3456
|
-
|
|
3536
|
+
for (const [r, n] of Object.entries(t))
|
|
3537
|
+
n == null || n === !1 ? this.removeAttribute(r) : this.setAttribute(r, n === !0 ? "" : String(n));
|
|
3457
3538
|
} finally {
|
|
3458
3539
|
this._batchDepth--;
|
|
3459
3540
|
}
|
|
@@ -3477,20 +3558,20 @@ class Be extends $s {
|
|
|
3477
3558
|
s.className = "ms__debug-info";
|
|
3478
3559
|
const i = document.createElement("details"), r = document.createElement("summary");
|
|
3479
3560
|
r.textContent = "Debug Info";
|
|
3480
|
-
const
|
|
3481
|
-
|
|
3561
|
+
const n = document.createElement("div");
|
|
3562
|
+
n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), s.appendChild(i), this.shadow.appendChild(s), this.updateDebugInfo();
|
|
3482
3563
|
}
|
|
3483
3564
|
updateDebugInfo() {
|
|
3484
3565
|
var m, b;
|
|
3485
3566
|
const t = this.shadow.querySelector(".ms__debug-stats");
|
|
3486
3567
|
if (!t || !this.picker) return;
|
|
3487
|
-
const s = "1.12.0-
|
|
3568
|
+
const s = "1.12.0-rc08", i = kt().length, n = this.picker.getSelected().length, a = ((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;
|
|
3488
3569
|
t.innerHTML = `
|
|
3489
3570
|
<span>Version: ${s}</span>
|
|
3490
3571
|
<span>Total Instances: ${i}</span>
|
|
3491
|
-
<span>Options: ${
|
|
3572
|
+
<span>Options: ${a}</span>
|
|
3492
3573
|
<span>Filtered: ${u}</span>
|
|
3493
|
-
<span>Selected: ${
|
|
3574
|
+
<span>Selected: ${n}</span>
|
|
3494
3575
|
<span>Dropdown: ${c ? "Open" : "Closed"}</span>
|
|
3495
3576
|
<span>Search: ${d || "none"}</span>
|
|
3496
3577
|
<span>Loading: ${p ? "Yes" : "No"}</span>
|
|
@@ -3503,7 +3584,7 @@ class Be extends $s {
|
|
|
3503
3584
|
* Returns array of options in the format expected by the picker
|
|
3504
3585
|
*/
|
|
3505
3586
|
parseDeclarativeOptions() {
|
|
3506
|
-
var r,
|
|
3587
|
+
var r, n, a, l;
|
|
3507
3588
|
const t = [], s = Array.from(this.children);
|
|
3508
3589
|
if (s.length === 0)
|
|
3509
3590
|
return null;
|
|
@@ -3512,29 +3593,29 @@ class Be extends $s {
|
|
|
3512
3593
|
if (c.tagName === "OPTION") {
|
|
3513
3594
|
const d = c, p = {
|
|
3514
3595
|
value: d.value || ((r = d.textContent) == null ? void 0 : r.trim()) || "",
|
|
3515
|
-
label: ((
|
|
3596
|
+
label: ((n = d.textContent) == null ? void 0 : n.trim()) || d.value || ""
|
|
3516
3597
|
};
|
|
3517
3598
|
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
3599
|
} else if (c.tagName === "OPTGROUP") {
|
|
3519
3600
|
const d = c, p = d.label || d.getAttribute("label") || "Group", u = Array.from(d.querySelectorAll("option"));
|
|
3520
3601
|
for (const m of u) {
|
|
3521
3602
|
const b = {
|
|
3522
|
-
value: m.value || ((
|
|
3603
|
+
value: m.value || ((a = m.textContent) == null ? void 0 : a.trim()) || "",
|
|
3523
3604
|
label: ((l = m.textContent) == null ? void 0 : l.trim()) || m.value || "",
|
|
3524
3605
|
group: p
|
|
3525
3606
|
};
|
|
3526
3607
|
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;
|
|
3527
3608
|
}
|
|
3528
3609
|
}
|
|
3529
|
-
return i ? (
|
|
3610
|
+
return i ? (A.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), s.forEach((c) => {
|
|
3530
3611
|
(c.tagName === "OPTION" || c.tagName === "OPTGROUP") && c.remove();
|
|
3531
3612
|
}), t) : null;
|
|
3532
3613
|
}
|
|
3533
3614
|
/** Parse all observed attributes via ATTRIBUTE_TABLE into a partial config object. */
|
|
3534
3615
|
parseAttributesFromTable() {
|
|
3535
3616
|
const t = {};
|
|
3536
|
-
for (const s of
|
|
3537
|
-
const i =
|
|
3617
|
+
for (const s of Pe) {
|
|
3618
|
+
const i = tt(s, this.getAttribute(s.attr));
|
|
3538
3619
|
i !== void 0 && (t[s.key] = i);
|
|
3539
3620
|
}
|
|
3540
3621
|
return t;
|
|
@@ -3546,26 +3627,26 @@ class Be extends $s {
|
|
|
3546
3627
|
if (s && this._options === void 0)
|
|
3547
3628
|
try {
|
|
3548
3629
|
t = JSON.parse(s);
|
|
3549
|
-
} catch (
|
|
3550
|
-
|
|
3630
|
+
} catch (n) {
|
|
3631
|
+
A.error("[MultiSelectElement] Failed to parse data-options:", n);
|
|
3551
3632
|
}
|
|
3552
3633
|
let i;
|
|
3553
3634
|
if (this._declarativeSelectedValues && this._declarativeSelectedValues.length > 0)
|
|
3554
|
-
i = this._declarativeSelectedValues,
|
|
3635
|
+
i = this._declarativeSelectedValues, A.debug(`[MultiSelectElement] Using ${i.length} declaratively selected values`);
|
|
3555
3636
|
else {
|
|
3556
|
-
const
|
|
3557
|
-
if (
|
|
3637
|
+
const n = this.getAttribute("initial-values");
|
|
3638
|
+
if (n)
|
|
3558
3639
|
try {
|
|
3559
|
-
i = JSON.parse(
|
|
3560
|
-
} catch (
|
|
3561
|
-
|
|
3640
|
+
i = JSON.parse(n);
|
|
3641
|
+
} catch (a) {
|
|
3642
|
+
A.error("[MultiSelectElement] Failed to parse initial-values:", a);
|
|
3562
3643
|
}
|
|
3563
3644
|
}
|
|
3564
3645
|
const r = this.parseAttributesFromTable();
|
|
3565
|
-
for (const { key:
|
|
3566
|
-
r[
|
|
3646
|
+
for (const { key: n, field: a } of et)
|
|
3647
|
+
r[n] === void 0 && (r[n] = this[a]);
|
|
3567
3648
|
if (this._hasDeclarativeOptions) {
|
|
3568
|
-
const
|
|
3649
|
+
const n = {
|
|
3569
3650
|
valueMember: this._getValueCallback,
|
|
3570
3651
|
displayValueMember: this._getDisplayValueCallback,
|
|
3571
3652
|
groupMember: this._getGroupCallback,
|
|
@@ -3573,8 +3654,8 @@ class Be extends $s {
|
|
|
3573
3654
|
subtitleMember: this._getSubtitleCallback,
|
|
3574
3655
|
disabledMember: this._getDisabledCallback
|
|
3575
3656
|
};
|
|
3576
|
-
for (const { key:
|
|
3577
|
-
r[
|
|
3657
|
+
for (const { key: a, member: l } of Hs)
|
|
3658
|
+
r[a] === void 0 && !n[a] && (r[a] = l);
|
|
3578
3659
|
}
|
|
3579
3660
|
if (Object.assign(r, {
|
|
3580
3661
|
actionButtons: this._actionButtons,
|
|
@@ -3602,43 +3683,43 @@ class Be extends $s {
|
|
|
3602
3683
|
getBadgeTooltipCallback: this._getBadgeTooltipCallback,
|
|
3603
3684
|
getOptionTooltipCallback: this._getOptionTooltipCallback,
|
|
3604
3685
|
getRemoveButtonTooltipCallback: this._getRemoveButtonTooltipCallback,
|
|
3605
|
-
getCounterCallback: this._getCounterCallback || ((
|
|
3686
|
+
getCounterCallback: this._getCounterCallback || ((n, a) => a !== void 0 ? `+${a} more` : `${n} selected`),
|
|
3606
3687
|
options: this._options ?? t,
|
|
3607
3688
|
beforeSearchCallback: this._beforeSearchCallback,
|
|
3608
3689
|
beforeSelectCallback: this._beforeSelectCallback,
|
|
3609
3690
|
beforeDeselectCallback: this._beforeDeselectCallback,
|
|
3610
3691
|
searchCallback: this._searchCallback,
|
|
3611
3692
|
addNewCallback: this._addNewCallback,
|
|
3612
|
-
onSelect: (
|
|
3613
|
-
var
|
|
3614
|
-
this._onSelect && this._onSelect(
|
|
3693
|
+
onSelect: (n) => {
|
|
3694
|
+
var a;
|
|
3695
|
+
this._onSelect && this._onSelect(n), this.dispatchEvent(new CustomEvent("select", {
|
|
3615
3696
|
bubbles: !0,
|
|
3616
3697
|
composed: !0,
|
|
3617
3698
|
detail: {
|
|
3618
|
-
option:
|
|
3619
|
-
selectedOptions: (
|
|
3699
|
+
option: n,
|
|
3700
|
+
selectedOptions: (a = this.picker) == null ? void 0 : a.getSelected(),
|
|
3620
3701
|
selectedValues: this.collectSelectedValues()
|
|
3621
3702
|
}
|
|
3622
3703
|
}));
|
|
3623
3704
|
},
|
|
3624
|
-
onDeselect: (
|
|
3625
|
-
var
|
|
3626
|
-
this._onDeselect && this._onDeselect(
|
|
3705
|
+
onDeselect: (n) => {
|
|
3706
|
+
var a;
|
|
3707
|
+
this._onDeselect && this._onDeselect(n), this.dispatchEvent(new CustomEvent("deselect", {
|
|
3627
3708
|
bubbles: !0,
|
|
3628
3709
|
composed: !0,
|
|
3629
3710
|
detail: {
|
|
3630
|
-
option:
|
|
3631
|
-
selectedOptions: (
|
|
3711
|
+
option: n,
|
|
3712
|
+
selectedOptions: (a = this.picker) == null ? void 0 : a.getSelected(),
|
|
3632
3713
|
selectedValues: this.collectSelectedValues()
|
|
3633
3714
|
}
|
|
3634
3715
|
}));
|
|
3635
3716
|
},
|
|
3636
|
-
onChange: (
|
|
3637
|
-
this._onChange && this._onChange(
|
|
3717
|
+
onChange: (n) => {
|
|
3718
|
+
this._onChange && this._onChange(n), this.dispatchEvent(new CustomEvent("change", {
|
|
3638
3719
|
bubbles: !0,
|
|
3639
3720
|
composed: !0,
|
|
3640
3721
|
detail: {
|
|
3641
|
-
selectedOptions:
|
|
3722
|
+
selectedOptions: n,
|
|
3642
3723
|
selectedValues: this.collectSelectedValues()
|
|
3643
3724
|
}
|
|
3644
3725
|
}));
|
|
@@ -3647,11 +3728,11 @@ class Be extends $s {
|
|
|
3647
3728
|
container: this.shadow,
|
|
3648
3729
|
// Pass host element (this) for hidden inputs in light DOM
|
|
3649
3730
|
hostElement: this
|
|
3650
|
-
}), i && (this.containerElement.dataset.initialValues = JSON.stringify(i)), this.picker = new
|
|
3651
|
-
const
|
|
3652
|
-
if (
|
|
3653
|
-
const
|
|
3654
|
-
|
|
3731
|
+
}), i && (this.containerElement.dataset.initialValues = JSON.stringify(i)), this.picker = new $s(this.containerElement, r), this._customStylesCallback) {
|
|
3732
|
+
const n = this._customStylesCallback();
|
|
3733
|
+
if (n) {
|
|
3734
|
+
const a = document.createElement("style");
|
|
3735
|
+
a.className = "ms-custom-styles", a.textContent = n, this.shadow.insertBefore(a, this.shadow.firstChild);
|
|
3655
3736
|
}
|
|
3656
3737
|
}
|
|
3657
3738
|
}
|
|
@@ -4119,40 +4200,40 @@ class Be extends $s {
|
|
|
4119
4200
|
// makes `form.reset()`, `form.elements`, and (in the future) constraint
|
|
4120
4201
|
// validation actually do something. Without this flag the element is
|
|
4121
4202
|
// invisible to the form lifecycle even when it has a `name`.
|
|
4122
|
-
h(
|
|
4123
|
-
typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect",
|
|
4203
|
+
h(ze, "formAssociated", !0);
|
|
4204
|
+
typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect", ze));
|
|
4124
4205
|
typeof window < "u" && (window.components = window.components || {}, window.components["web-multiselect"] = {
|
|
4125
|
-
version: () => "1.12.0-
|
|
4206
|
+
version: () => "1.12.0-rc08",
|
|
4126
4207
|
config: {
|
|
4127
4208
|
name: "@keenmate/web-multiselect",
|
|
4128
|
-
version: "1.12.0-
|
|
4209
|
+
version: "1.12.0-rc08",
|
|
4129
4210
|
author: "Keenmate",
|
|
4130
4211
|
license: "MIT",
|
|
4131
4212
|
repository: "git+https://github.com/keenmate/web-multiselect.git",
|
|
4132
4213
|
homepage: "https://web-multiselect.keenmate.dev"
|
|
4133
4214
|
},
|
|
4134
4215
|
logging: {
|
|
4135
|
-
enableLogging:
|
|
4136
|
-
disableLogging:
|
|
4137
|
-
setLogLevel:
|
|
4138
|
-
setCategoryLevel:
|
|
4139
|
-
getCategories: () => [...
|
|
4216
|
+
enableLogging: Ss,
|
|
4217
|
+
disableLogging: Ts,
|
|
4218
|
+
setLogLevel: Is,
|
|
4219
|
+
setCategoryLevel: Ms,
|
|
4220
|
+
getCategories: () => [...xs]
|
|
4140
4221
|
},
|
|
4141
4222
|
register: () => {
|
|
4142
|
-
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect",
|
|
4223
|
+
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", ze);
|
|
4143
4224
|
},
|
|
4144
|
-
getInstances: () =>
|
|
4225
|
+
getInstances: () => kt()
|
|
4145
4226
|
});
|
|
4146
4227
|
export {
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4228
|
+
xs as LOGGING_CATEGORIES,
|
|
4229
|
+
ze as MultiSelectElement,
|
|
4230
|
+
$s as WebMultiSelect,
|
|
4231
|
+
A as dataLogger,
|
|
4232
|
+
Ts as disableLogging,
|
|
4233
|
+
Ss as enableLogging,
|
|
4234
|
+
he as initLogger,
|
|
4154
4235
|
L as interactionLogger,
|
|
4155
|
-
|
|
4156
|
-
|
|
4236
|
+
Ms as setCategoryLevel,
|
|
4237
|
+
Is as setLogLevel,
|
|
4157
4238
|
R as uiLogger
|
|
4158
4239
|
};
|