@keenmate/web-multiselect 2.0.0 → 2.1.0
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 +172 -208
- package/component-variables.manifest.json +5 -30
- package/custom-elements.json +86 -103
- package/dist/index.d.ts +28 -0
- package/dist/multiselect.js +859 -804
- package/dist/multiselect.umd.js +11 -11
- package/dist/style.css +1 -1
- package/docs/examples.md +69 -0
- package/docs/theming.md +7 -7
- package/docs/usage.md +4 -0
- package/package.json +5 -3
- package/src/css/base.css +10 -0
- package/src/css/options.css +9 -4
- package/src/css/variables.css +969 -964
- package/vscode.css-custom-data.json +5 -125
- package/vscode.html-custom-data.json +6 -1
- package/web-types.json +33 -84
package/dist/multiselect.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
1
|
+
var Bo = Object.defineProperty;
|
|
2
|
+
var Cs = (s) => {
|
|
3
3
|
throw TypeError(s);
|
|
4
4
|
};
|
|
5
|
-
var
|
|
6
|
-
var p = (s, e, t) =>
|
|
7
|
-
var h = (s, e, t) => (
|
|
5
|
+
var Ho = (s, e, t) => e in s ? Bo(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
|
|
6
|
+
var p = (s, e, t) => Ho(s, typeof e != "symbol" ? e + "" : e, t), jt = (s, e, t) => e.has(s) || Cs("Cannot " + t);
|
|
7
|
+
var h = (s, e, t) => (jt(s, e, "read from private field"), t ? t.call(s) : e.get(s)), M = (s, e, t) => e.has(s) ? Cs("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(s) : e.set(s, t), I = (s, e, t, o) => (jt(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), b = (s, e, t) => (jt(s, e, "access private method"), t);
|
|
8
8
|
function j(s, e = {}) {
|
|
9
9
|
const t = new Set(s), o = e.shouldNullOnInvalid ? null : e.default ?? null;
|
|
10
10
|
return {
|
|
@@ -54,11 +54,11 @@ function A(s = {}) {
|
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
|
-
const
|
|
57
|
+
const Fo = /* @__PURE__ */ new Set(["", "true", "1", "yes", "on"]), Ko = /* @__PURE__ */ new Set(["false", "0", "no", "off"]);
|
|
58
58
|
function H(s = "presence") {
|
|
59
59
|
const e = (t) => {
|
|
60
60
|
const o = t.trim().toLowerCase();
|
|
61
|
-
return
|
|
61
|
+
return Fo.has(o) ? !0 : Ko.has(o) ? !1 : null;
|
|
62
62
|
};
|
|
63
63
|
return {
|
|
64
64
|
fromAttribute(t) {
|
|
@@ -81,7 +81,7 @@ function H(s = "presence") {
|
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
function
|
|
84
|
+
function Wo(s = {}) {
|
|
85
85
|
const e = s.default;
|
|
86
86
|
return {
|
|
87
87
|
fromAttribute(t) {
|
|
@@ -101,7 +101,7 @@ function Fo(s = {}) {
|
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
-
function
|
|
104
|
+
function jo(s = {}) {
|
|
105
105
|
const e = s.default ?? [], t = (o) => Array.isArray(o) && (!s.validateItem || o.every(s.validateItem));
|
|
106
106
|
return {
|
|
107
107
|
fromAttribute(o) {
|
|
@@ -121,22 +121,22 @@ function Ko(s = {}) {
|
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
-
function
|
|
124
|
+
function Uo() {
|
|
125
125
|
return {
|
|
126
126
|
validate(s) {
|
|
127
127
|
return s == null || typeof s == "function";
|
|
128
128
|
}
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function Go(s, e, t) {
|
|
132
132
|
const o = s.converter, i = o != null && o.fromAttribute ? o.fromAttribute(e, t, s.attribute ?? s.configKey) : e ?? s.default;
|
|
133
133
|
return { configKey: s.configKey, field: s.field, value: i, on: s.on ?? "update" };
|
|
134
134
|
}
|
|
135
|
-
function
|
|
135
|
+
function qo(s, e) {
|
|
136
136
|
const t = s.converter;
|
|
137
137
|
return t != null && t.validate && !t.validate(e) ? null : { configKey: s.configKey, field: s.field, value: e, on: s.on ?? "update" };
|
|
138
138
|
}
|
|
139
|
-
function
|
|
139
|
+
function Xo() {
|
|
140
140
|
const s = /* @__PURE__ */ new Set();
|
|
141
141
|
let e = !1;
|
|
142
142
|
const t = () => {
|
|
@@ -164,7 +164,7 @@ function Go() {
|
|
|
164
164
|
}
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
|
-
const
|
|
167
|
+
const eo = {
|
|
168
168
|
pointer: "fine",
|
|
169
169
|
hasCoarsePointer: !1,
|
|
170
170
|
canHover: !0,
|
|
@@ -176,29 +176,29 @@ const Qs = {
|
|
|
176
176
|
os: "unknown",
|
|
177
177
|
isApple: !1,
|
|
178
178
|
isAndroid: !1
|
|
179
|
-
},
|
|
180
|
-
let
|
|
181
|
-
const
|
|
182
|
-
let Pe = null,
|
|
183
|
-
const
|
|
184
|
-
let Ee,
|
|
185
|
-
function
|
|
179
|
+
}, Yo = { mobile: 640, tablet: 1024, desktop: 1 / 0 };
|
|
180
|
+
let wt = to(Yo);
|
|
181
|
+
const it = /* @__PURE__ */ new Set(), rt = /* @__PURE__ */ new Set();
|
|
182
|
+
let Pe = null, St = [], yt = !1;
|
|
183
|
+
const Ss = 30;
|
|
184
|
+
let Ee, xt = 0;
|
|
185
|
+
function to(s) {
|
|
186
186
|
return Object.entries(s).sort((e, t) => e[1] - t[1]);
|
|
187
187
|
}
|
|
188
|
-
function
|
|
189
|
-
for (const [t, o] of
|
|
188
|
+
function Jo(s) {
|
|
189
|
+
for (const [t, o] of wt)
|
|
190
190
|
if (s <= o)
|
|
191
191
|
return t;
|
|
192
|
-
const e =
|
|
192
|
+
const e = wt[wt.length - 1];
|
|
193
193
|
return e ? e[0] : "desktop";
|
|
194
194
|
}
|
|
195
|
-
function
|
|
195
|
+
function ps() {
|
|
196
196
|
return typeof window < "u" && typeof window.matchMedia == "function";
|
|
197
197
|
}
|
|
198
|
-
function
|
|
198
|
+
function Ts() {
|
|
199
199
|
return typeof navigator < "u" && (navigator.maxTouchPoints ?? 0) > 1;
|
|
200
200
|
}
|
|
201
|
-
function
|
|
201
|
+
function Qo() {
|
|
202
202
|
var o;
|
|
203
203
|
if (typeof navigator > "u")
|
|
204
204
|
return "unknown";
|
|
@@ -209,219 +209,219 @@ function Yo() {
|
|
|
209
209
|
if (e.includes("ios"))
|
|
210
210
|
return "ios";
|
|
211
211
|
if (e.includes("mac"))
|
|
212
|
-
return
|
|
212
|
+
return Ts() ? "ios" : "macos";
|
|
213
213
|
if (e.includes("windows"))
|
|
214
214
|
return "windows";
|
|
215
215
|
if (e.includes("linux"))
|
|
216
216
|
return "linux";
|
|
217
217
|
}
|
|
218
218
|
const t = navigator.userAgent ?? "";
|
|
219
|
-
return /android/i.test(t) ? "android" : /iphone|ipod|ipad/i.test(t) ? "ios" : /macintosh|mac os x/i.test(t) ?
|
|
219
|
+
return /android/i.test(t) ? "android" : /iphone|ipod|ipad/i.test(t) ? "ios" : /macintosh|mac os x/i.test(t) ? Ts() ? "ios" : "macos" : /windows/i.test(t) ? "windows" : /linux/i.test(t) ? "linux" : "unknown";
|
|
220
220
|
}
|
|
221
|
-
let
|
|
222
|
-
function
|
|
223
|
-
return
|
|
221
|
+
let Zo;
|
|
222
|
+
function ei() {
|
|
223
|
+
return Zo ?? (Zo = Qo());
|
|
224
224
|
}
|
|
225
|
-
function
|
|
226
|
-
return
|
|
225
|
+
function Ge(s) {
|
|
226
|
+
return ps() && window.matchMedia(s).matches;
|
|
227
227
|
}
|
|
228
|
-
function
|
|
229
|
-
if (!
|
|
230
|
-
return { ...
|
|
231
|
-
const s =
|
|
228
|
+
function fs() {
|
|
229
|
+
if (!ps())
|
|
230
|
+
return { ...eo };
|
|
231
|
+
const s = Ge("(any-pointer: coarse)"), e = Ge("(pointer: coarse)"), t = Ge("(pointer: fine)"), o = Ge("(hover: hover)"), i = e ? "coarse" : t ? "fine" : "none", r = window.innerWidth, n = window.innerHeight, a = ei();
|
|
232
232
|
return {
|
|
233
233
|
pointer: i,
|
|
234
234
|
hasCoarsePointer: s,
|
|
235
235
|
canHover: o,
|
|
236
236
|
isTouchPrimary: e && !o,
|
|
237
|
-
orientation:
|
|
237
|
+
orientation: Ge("(orientation: portrait)") ? "portrait" : "landscape",
|
|
238
238
|
viewportWidth: r,
|
|
239
239
|
viewportHeight: n,
|
|
240
|
-
breakpoint:
|
|
240
|
+
breakpoint: Jo(r),
|
|
241
241
|
os: a,
|
|
242
242
|
isApple: a === "ios" || a === "macos",
|
|
243
243
|
isAndroid: a === "android"
|
|
244
244
|
};
|
|
245
245
|
}
|
|
246
|
-
function
|
|
246
|
+
function ti(s, e) {
|
|
247
247
|
return s.pointer === e.pointer && s.hasCoarsePointer === e.hasCoarsePointer && s.canHover === e.canHover && s.isTouchPrimary === e.isTouchPrimary && s.orientation === e.orientation && s.breakpoint === e.breakpoint;
|
|
248
248
|
}
|
|
249
|
-
function
|
|
249
|
+
function si(s, e) {
|
|
250
250
|
return s.viewportWidth === e.viewportWidth && s.viewportHeight === e.viewportHeight;
|
|
251
251
|
}
|
|
252
|
-
function
|
|
253
|
-
const s =
|
|
254
|
-
if (Pe = s, !e || !
|
|
255
|
-
for (const t of [...
|
|
252
|
+
function Tt() {
|
|
253
|
+
const s = fs(), e = Pe;
|
|
254
|
+
if (Pe = s, !e || !ti(e, s))
|
|
255
|
+
for (const t of [...it])
|
|
256
256
|
t(s);
|
|
257
|
-
|
|
257
|
+
rt.size > 0 && (!e || !si(e, s)) && oi();
|
|
258
258
|
}
|
|
259
|
-
function
|
|
259
|
+
function Is() {
|
|
260
260
|
const s = Pe;
|
|
261
261
|
if (s)
|
|
262
|
-
for (const e of [...
|
|
262
|
+
for (const e of [...rt])
|
|
263
263
|
e(s);
|
|
264
264
|
}
|
|
265
|
-
function
|
|
265
|
+
function oi() {
|
|
266
266
|
if (Ee !== void 0)
|
|
267
267
|
return;
|
|
268
|
-
const s = Date.now() -
|
|
269
|
-
s >=
|
|
270
|
-
Ee = void 0,
|
|
271
|
-
},
|
|
268
|
+
const s = Date.now() - xt;
|
|
269
|
+
s >= Ss ? (xt = Date.now(), Is()) : Ee = setTimeout(() => {
|
|
270
|
+
Ee = void 0, xt = Date.now(), Is();
|
|
271
|
+
}, Ss - s);
|
|
272
272
|
}
|
|
273
|
-
const
|
|
273
|
+
const It = () => Tt(), so = () => {
|
|
274
274
|
if (typeof requestAnimationFrame == "function") {
|
|
275
|
-
if (
|
|
275
|
+
if (yt)
|
|
276
276
|
return;
|
|
277
|
-
|
|
278
|
-
|
|
277
|
+
yt = !0, requestAnimationFrame(() => {
|
|
278
|
+
yt = !1, Tt();
|
|
279
279
|
});
|
|
280
280
|
} else
|
|
281
|
-
|
|
281
|
+
Tt();
|
|
282
282
|
};
|
|
283
|
-
function
|
|
284
|
-
typeof s.addEventListener == "function" ? s.addEventListener("change",
|
|
283
|
+
function ii(s) {
|
|
284
|
+
typeof s.addEventListener == "function" ? s.addEventListener("change", It) : typeof s.addListener == "function" && s.addListener(It);
|
|
285
285
|
}
|
|
286
|
-
function
|
|
287
|
-
typeof s.removeEventListener == "function" ? s.removeEventListener("change",
|
|
286
|
+
function ri(s) {
|
|
287
|
+
typeof s.removeEventListener == "function" ? s.removeEventListener("change", It) : typeof s.removeListener == "function" && s.removeListener(It);
|
|
288
288
|
}
|
|
289
|
-
function
|
|
290
|
-
if (!
|
|
291
|
-
Pe = { ...
|
|
289
|
+
function oo() {
|
|
290
|
+
if (!ps()) {
|
|
291
|
+
Pe = { ...eo };
|
|
292
292
|
return;
|
|
293
293
|
}
|
|
294
|
-
|
|
294
|
+
St = [
|
|
295
295
|
window.matchMedia("(pointer: coarse)"),
|
|
296
296
|
window.matchMedia("(pointer: fine)"),
|
|
297
297
|
window.matchMedia("(any-pointer: coarse)"),
|
|
298
298
|
window.matchMedia("(hover: hover)"),
|
|
299
299
|
window.matchMedia("(orientation: portrait)")
|
|
300
300
|
];
|
|
301
|
-
for (const s of
|
|
302
|
-
|
|
303
|
-
typeof window.addEventListener == "function" && window.addEventListener("resize",
|
|
301
|
+
for (const s of St)
|
|
302
|
+
ii(s);
|
|
303
|
+
typeof window.addEventListener == "function" && window.addEventListener("resize", so), Pe = fs();
|
|
304
304
|
}
|
|
305
|
-
function
|
|
306
|
-
for (const s of
|
|
307
|
-
|
|
308
|
-
|
|
305
|
+
function io() {
|
|
306
|
+
for (const s of St)
|
|
307
|
+
ri(s);
|
|
308
|
+
St = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", so), yt = !1, Ee !== void 0 && (clearTimeout(Ee), Ee = void 0), xt = 0, Pe = null;
|
|
309
309
|
}
|
|
310
|
-
function
|
|
311
|
-
return
|
|
310
|
+
function Pt() {
|
|
311
|
+
return it.size + rt.size;
|
|
312
312
|
}
|
|
313
|
-
function
|
|
314
|
-
return Pe ??
|
|
313
|
+
function Ot() {
|
|
314
|
+
return Pe ?? fs();
|
|
315
315
|
}
|
|
316
|
-
function
|
|
317
|
-
const t =
|
|
318
|
-
|
|
316
|
+
function ni(s, e = {}) {
|
|
317
|
+
const t = Pt() === 0;
|
|
318
|
+
it.add(s), t && oo(), e.immediate !== !1 && s(Ot());
|
|
319
319
|
let o = !0;
|
|
320
320
|
return () => {
|
|
321
|
-
o && (o = !1,
|
|
321
|
+
o && (o = !1, it.delete(s), Pt() === 0 && io());
|
|
322
322
|
};
|
|
323
323
|
}
|
|
324
|
-
function
|
|
325
|
-
const t =
|
|
326
|
-
|
|
324
|
+
function ai(s, e = {}) {
|
|
325
|
+
const t = Pt() === 0;
|
|
326
|
+
rt.add(s), t && oo(), e.immediate !== !1 && s(Ot());
|
|
327
327
|
let o = !0;
|
|
328
328
|
return () => {
|
|
329
|
-
o && (o = !1,
|
|
329
|
+
o && (o = !1, rt.delete(s), Pt() === 0 && io());
|
|
330
330
|
};
|
|
331
331
|
}
|
|
332
|
-
function
|
|
333
|
-
|
|
332
|
+
function Cn(s) {
|
|
333
|
+
wt = to(s), it.size > 0 && Tt();
|
|
334
334
|
}
|
|
335
|
-
const
|
|
336
|
-
function
|
|
337
|
-
return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) <
|
|
335
|
+
const li = 600;
|
|
336
|
+
function ci(s) {
|
|
337
|
+
return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) < li ? "mobile" : "tablet" : "desktop";
|
|
338
338
|
}
|
|
339
|
-
const
|
|
339
|
+
const di = 30;
|
|
340
340
|
let oe = null;
|
|
341
|
-
const
|
|
342
|
-
let
|
|
343
|
-
function
|
|
341
|
+
const Qe = /* @__PURE__ */ new WeakMap();
|
|
342
|
+
let Ut = 0;
|
|
343
|
+
function hi() {
|
|
344
344
|
return typeof ResizeObserver < "u";
|
|
345
345
|
}
|
|
346
|
-
function
|
|
346
|
+
function ro(s) {
|
|
347
347
|
if (typeof s.getBoundingClientRect != "function")
|
|
348
348
|
return { width: 0, height: 0 };
|
|
349
349
|
const e = s.getBoundingClientRect();
|
|
350
350
|
return { width: e.width, height: e.height };
|
|
351
351
|
}
|
|
352
|
-
function
|
|
352
|
+
function ui(s, e) {
|
|
353
353
|
return !!s && s.width === e.width && s.height === e.height;
|
|
354
354
|
}
|
|
355
|
-
function
|
|
356
|
-
if (
|
|
355
|
+
function mi(s, e) {
|
|
356
|
+
if (ui(s.lastFired, e) || (s.pendingSize = e, s.timer !== void 0))
|
|
357
357
|
return;
|
|
358
358
|
const t = Date.now() - s.lastNotify;
|
|
359
|
-
t >= s.throttleMs ? (s.lastNotify = Date.now(),
|
|
360
|
-
s.timer = void 0, s.lastNotify = Date.now(),
|
|
359
|
+
t >= s.throttleMs ? (s.lastNotify = Date.now(), Ps(s)) : s.timer = setTimeout(() => {
|
|
360
|
+
s.timer = void 0, s.lastNotify = Date.now(), Ps(s);
|
|
361
361
|
}, s.throttleMs - t);
|
|
362
362
|
}
|
|
363
|
-
function
|
|
363
|
+
function Ps(s) {
|
|
364
364
|
const e = s.pendingSize;
|
|
365
365
|
e && (s.lastFired = e, s.cb(e, s.el));
|
|
366
366
|
}
|
|
367
|
-
function
|
|
367
|
+
function pi(s) {
|
|
368
368
|
for (const e of s) {
|
|
369
|
-
const t =
|
|
369
|
+
const t = Qe.get(e.target);
|
|
370
370
|
if (!t)
|
|
371
371
|
continue;
|
|
372
|
-
const o =
|
|
372
|
+
const o = ro(e.target);
|
|
373
373
|
for (const i of [...t])
|
|
374
|
-
|
|
374
|
+
mi(i, o);
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
|
-
function
|
|
378
|
-
return
|
|
377
|
+
function fi() {
|
|
378
|
+
return hi() ? (oe || (oe = new ResizeObserver(pi)), oe) : null;
|
|
379
379
|
}
|
|
380
|
-
function
|
|
380
|
+
function gi(s, e, t = {}) {
|
|
381
381
|
const o = {
|
|
382
382
|
el: s,
|
|
383
383
|
cb: e,
|
|
384
|
-
throttleMs: t.throttleMs ??
|
|
384
|
+
throttleMs: t.throttleMs ?? di,
|
|
385
385
|
lastNotify: 0
|
|
386
386
|
};
|
|
387
387
|
if (t.immediate !== !1) {
|
|
388
|
-
const n =
|
|
388
|
+
const n = ro(s);
|
|
389
389
|
o.lastFired = n, o.lastNotify = Date.now(), e(n, s);
|
|
390
390
|
}
|
|
391
|
-
const i =
|
|
391
|
+
const i = fi();
|
|
392
392
|
if (i) {
|
|
393
|
-
let n =
|
|
394
|
-
n || (
|
|
393
|
+
let n = Qe.get(s);
|
|
394
|
+
n || (Qe.set(s, n = /* @__PURE__ */ new Set()), Ut++, i.observe(s)), n.add(o);
|
|
395
395
|
}
|
|
396
396
|
let r = !0;
|
|
397
397
|
return () => {
|
|
398
398
|
if (!r)
|
|
399
399
|
return;
|
|
400
400
|
r = !1, o.timer !== void 0 && (clearTimeout(o.timer), o.timer = void 0);
|
|
401
|
-
const n =
|
|
402
|
-
n && (n.delete(o), n.size === 0 && (
|
|
401
|
+
const n = Qe.get(s);
|
|
402
|
+
n && (n.delete(o), n.size === 0 && (Qe.delete(s), oe == null || oe.unobserve(s), Ut--, Ut === 0 && oe && (oe.disconnect(), oe = null)));
|
|
403
403
|
};
|
|
404
404
|
}
|
|
405
|
-
const
|
|
406
|
-
function
|
|
407
|
-
let t =
|
|
408
|
-
t ||
|
|
405
|
+
const Mt = /* @__PURE__ */ new Map();
|
|
406
|
+
function bi(s, e) {
|
|
407
|
+
let t = Mt.get(s);
|
|
408
|
+
t || Mt.set(s, t = /* @__PURE__ */ new Set()), t.add(e);
|
|
409
409
|
}
|
|
410
|
-
function
|
|
410
|
+
function vi(s, e) {
|
|
411
411
|
var t;
|
|
412
|
-
(t =
|
|
412
|
+
(t = Mt.get(s)) == null || t.delete(e);
|
|
413
413
|
}
|
|
414
|
-
function
|
|
415
|
-
return Array.from(
|
|
414
|
+
function wi(s) {
|
|
415
|
+
return Array.from(Mt.get(s) ?? []);
|
|
416
416
|
}
|
|
417
|
-
const
|
|
418
|
-
function
|
|
419
|
-
|
|
417
|
+
const no = /* @__PURE__ */ new Map();
|
|
418
|
+
function yi(s, e) {
|
|
419
|
+
no.set(s.toLowerCase(), e);
|
|
420
420
|
}
|
|
421
|
-
function
|
|
422
|
-
return
|
|
421
|
+
function xi(s) {
|
|
422
|
+
return no.get(s.toLowerCase());
|
|
423
423
|
}
|
|
424
|
-
function
|
|
424
|
+
function _i(s, e, t, o = {}) {
|
|
425
425
|
return s.dispatchEvent(new CustomEvent(e, {
|
|
426
426
|
detail: t,
|
|
427
427
|
bubbles: o.bubbles ?? !0,
|
|
@@ -429,44 +429,44 @@ function yi(s, e, t, o = {}) {
|
|
|
429
429
|
cancelable: o.cancelable ?? !1
|
|
430
430
|
}));
|
|
431
431
|
}
|
|
432
|
-
function
|
|
432
|
+
function ki(s) {
|
|
433
433
|
return s.split(/[-_]/).filter(Boolean).map((e) => e[0].toUpperCase() + e.slice(1)).join("");
|
|
434
434
|
}
|
|
435
|
-
function
|
|
436
|
-
return `on${
|
|
435
|
+
function Ci(s) {
|
|
436
|
+
return `on${ki(s)}`;
|
|
437
437
|
}
|
|
438
|
-
function
|
|
438
|
+
function Si(s) {
|
|
439
439
|
return s ? s.map((e) => {
|
|
440
|
-
const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ??
|
|
440
|
+
const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ?? Ci(t.name);
|
|
441
441
|
return { name: t.name, property: o, bubbles: t.bubbles, composed: t.composed, cancelable: t.cancelable };
|
|
442
442
|
}) : [];
|
|
443
443
|
}
|
|
444
|
-
const
|
|
445
|
-
},
|
|
446
|
-
let
|
|
447
|
-
const
|
|
444
|
+
const Ti = typeof HTMLElement < "u" ? HTMLElement : class {
|
|
445
|
+
}, Os = /* @__PURE__ */ new WeakSet();
|
|
446
|
+
let Ii = 0;
|
|
447
|
+
const Pi = { trace() {
|
|
448
448
|
}, debug() {
|
|
449
449
|
}, info() {
|
|
450
450
|
}, warn() {
|
|
451
451
|
}, error() {
|
|
452
|
-
} },
|
|
453
|
-
var me,
|
|
454
|
-
const xe = class xe extends
|
|
452
|
+
} }, Oi = new Proxy({}, { get: () => Pi });
|
|
453
|
+
var me, lt, _e, ct, ke, dt, Dt, Ce, pe, Se, Te, ze, Ne, $e, Ve, De, Re, Rt, ie, Be, P, ao, lo, co, Q, ho, uo, Zt, es, Ze, ts, mo;
|
|
454
|
+
const xe = class xe extends Ti {
|
|
455
455
|
constructor() {
|
|
456
456
|
super();
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
457
|
+
M(this, P);
|
|
458
|
+
M(this, me, {});
|
|
459
|
+
M(this, lt, /* @__PURE__ */ new Map());
|
|
460
|
+
M(this, _e, /* @__PURE__ */ new Map());
|
|
461
|
+
M(this, ct, /* @__PURE__ */ new Map());
|
|
462
462
|
/** Live handler currently bound via each managed `on<Name>` property, keyed by event name. */
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
463
|
+
M(this, ke, /* @__PURE__ */ new Map());
|
|
464
|
+
M(this, dt, Xo());
|
|
465
|
+
M(this, Dt, () => b(this, P, ts).call(this));
|
|
466
|
+
M(this, Ce, null);
|
|
467
|
+
M(this, pe, !1);
|
|
468
|
+
M(this, Se, []);
|
|
469
|
+
M(this, Te, !1);
|
|
470
470
|
/**
|
|
471
471
|
* configKeys that carried a value assigned BEFORE the element was upgraded
|
|
472
472
|
* (`el.foo = …` before its class was defined). The browser fires the initial
|
|
@@ -476,25 +476,25 @@ const xe = class xe extends Ci {
|
|
|
476
476
|
* guarantee); post-connect attribute changes react normally. Cleared on first
|
|
477
477
|
* connect.
|
|
478
478
|
*/
|
|
479
|
-
|
|
480
|
-
|
|
479
|
+
M(this, ze, null);
|
|
480
|
+
M(this, Ne, !1);
|
|
481
481
|
/** Unsubscribe from the environment observable; set only while connected AND `environmentChanged` is overridden. */
|
|
482
|
-
|
|
482
|
+
M(this, $e);
|
|
483
483
|
/** Unsubscribe from the throttled viewport observable; set only while connected AND `viewportChanged` is overridden. */
|
|
484
|
-
|
|
484
|
+
M(this, Ve);
|
|
485
485
|
/** Unsubscribe from the per-element ResizeObserver; set only while connected AND `resized` is overridden. */
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
const t = this.constructor, o = t.inputs ?? [], i =
|
|
492
|
-
b(this,
|
|
486
|
+
M(this, De);
|
|
487
|
+
M(this, Re);
|
|
488
|
+
M(this, Rt);
|
|
489
|
+
M(this, ie);
|
|
490
|
+
M(this, Be);
|
|
491
|
+
const t = this.constructor, o = t.inputs ?? [], i = Si(t.events);
|
|
492
|
+
b(this, P, co).call(this, o, i);
|
|
493
493
|
for (const r of o)
|
|
494
|
-
h(this,
|
|
494
|
+
h(this, lt).set(r.configKey, r), r.attribute && h(this, _e).set(r.attribute, r);
|
|
495
495
|
for (const r of i)
|
|
496
|
-
h(this,
|
|
497
|
-
b(this,
|
|
496
|
+
h(this, ct).set(r.name, r);
|
|
497
|
+
b(this, P, ao).call(this, o), b(this, P, ho).call(this, o), b(this, P, uo).call(this, i);
|
|
498
498
|
}
|
|
499
499
|
static get observedAttributes() {
|
|
500
500
|
const t = (this.inputs ?? []).filter((o) => o.attribute).map((o) => o.attribute);
|
|
@@ -514,31 +514,31 @@ const xe = class xe extends Ci {
|
|
|
514
514
|
return;
|
|
515
515
|
let n;
|
|
516
516
|
try {
|
|
517
|
-
n =
|
|
517
|
+
n = Go(r, i, this);
|
|
518
518
|
} catch (l) {
|
|
519
|
-
b(this,
|
|
519
|
+
b(this, P, Q).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = b(this, P, lo).call(this, r);
|
|
520
520
|
}
|
|
521
|
-
b(this,
|
|
521
|
+
b(this, P, es).call(this, n);
|
|
522
522
|
}
|
|
523
523
|
connectedCallback() {
|
|
524
|
-
|
|
524
|
+
bi(this.localName, this), h(this, Te) || (I(this, Te, !0), I(this, ze, null), I(this, pe, !0)), b(this, P, Ze).call(this), this.connect(), this.environmentChanged !== xe.prototype.environmentChanged && I(this, $e, ni((t) => this.environmentChanged(t))), this.viewportChanged !== xe.prototype.viewportChanged && I(this, Ve, ai((t) => this.viewportChanged(t))), this.resized !== xe.prototype.resized && I(this, De, gi(this, (t) => this.resized(t), { immediate: !1 }));
|
|
525
525
|
}
|
|
526
526
|
disconnectedCallback() {
|
|
527
527
|
var t, o, i;
|
|
528
|
-
|
|
528
|
+
vi(this.localName, this), (t = h(this, $e)) == null || t.call(this), I(this, $e, void 0), (o = h(this, Ve)) == null || o.call(this), I(this, Ve, void 0), (i = h(this, De)) == null || i.call(this), I(this, De, void 0), this.disconnect();
|
|
529
529
|
}
|
|
530
530
|
// ── public batching API ─────────────────────────────────────────────────
|
|
531
531
|
/** Apply many inputs (by `configKey` or attribute name) as ONE reinit/update. */
|
|
532
532
|
setAttributes(t) {
|
|
533
533
|
for (const [o, i] of Object.entries(t)) {
|
|
534
|
-
const r = h(this,
|
|
535
|
-
r && b(this,
|
|
534
|
+
const r = h(this, lt).get(o) ?? h(this, _e).get(o);
|
|
535
|
+
r && b(this, P, Zt).call(this, r, i);
|
|
536
536
|
}
|
|
537
|
-
b(this,
|
|
537
|
+
b(this, P, Ze).call(this);
|
|
538
538
|
}
|
|
539
539
|
/** Run `fn` and coalesce every input change it makes into a single reinit/update. */
|
|
540
540
|
batch(t) {
|
|
541
|
-
t(), b(this,
|
|
541
|
+
t(), b(this, P, Ze).call(this);
|
|
542
542
|
}
|
|
543
543
|
/**
|
|
544
544
|
* Apply any pending input writes **synchronously, now** — running the
|
|
@@ -554,7 +554,7 @@ const xe = class xe extends Ci {
|
|
|
554
554
|
* `await whenSettled()` between the two.
|
|
555
555
|
*/
|
|
556
556
|
flush() {
|
|
557
|
-
b(this,
|
|
557
|
+
b(this, P, Ze).call(this);
|
|
558
558
|
}
|
|
559
559
|
/**
|
|
560
560
|
* Resolves once the element is **settled** — i.e. every staged input change
|
|
@@ -592,11 +592,11 @@ const xe = class xe extends Ci {
|
|
|
592
592
|
get log() {
|
|
593
593
|
if (h(this, Be))
|
|
594
594
|
return h(this, Be);
|
|
595
|
-
const t =
|
|
595
|
+
const t = xi(this.localName);
|
|
596
596
|
if (!t)
|
|
597
|
-
return
|
|
598
|
-
const o = h(this,
|
|
599
|
-
return
|
|
597
|
+
return Oi;
|
|
598
|
+
const o = h(this, Rt) ?? I(this, Rt, `${this.localName}#${this.id || ++Ii}`);
|
|
599
|
+
return I(this, Be, t.forInstance(o, () => h(this, ie)));
|
|
600
600
|
}
|
|
601
601
|
/**
|
|
602
602
|
* Turn on verbose logging for THIS element only (default `debug`), independent
|
|
@@ -604,11 +604,11 @@ const xe = class xe extends Ci {
|
|
|
604
604
|
* picks one instance. Pairs with {@link disableLogging}.
|
|
605
605
|
*/
|
|
606
606
|
enableLogging(t = "debug") {
|
|
607
|
-
|
|
607
|
+
I(this, ie, t);
|
|
608
608
|
}
|
|
609
609
|
/** Clear this element's logging override (falls back to the type-level level). */
|
|
610
610
|
disableLogging() {
|
|
611
|
-
|
|
611
|
+
I(this, ie, void 0);
|
|
612
612
|
}
|
|
613
613
|
/** Whether this element has an active logging override (not unset/`silent`). */
|
|
614
614
|
get isLoggingEnabled() {
|
|
@@ -732,7 +732,7 @@ const xe = class xe extends Ci {
|
|
|
732
732
|
if (typeof this.attachInternals != "function")
|
|
733
733
|
return null;
|
|
734
734
|
try {
|
|
735
|
-
return
|
|
735
|
+
return I(this, Re, this.attachInternals());
|
|
736
736
|
} catch {
|
|
737
737
|
return null;
|
|
738
738
|
}
|
|
@@ -762,8 +762,8 @@ const xe = class xe extends Ci {
|
|
|
762
762
|
* `emit` does not call it separately.
|
|
763
763
|
*/
|
|
764
764
|
emit(t, o, i) {
|
|
765
|
-
const r = h(this,
|
|
766
|
-
return
|
|
765
|
+
const r = h(this, ct).get(t);
|
|
766
|
+
return _i(this, t, o, {
|
|
767
767
|
bubbles: (i == null ? void 0 : i.bubbles) ?? (r == null ? void 0 : r.bubbles),
|
|
768
768
|
composed: (i == null ? void 0 : i.composed) ?? (r == null ? void 0 : r.composed),
|
|
769
769
|
cancelable: (i == null ? void 0 : i.cancelable) ?? (r == null ? void 0 : r.cancelable)
|
|
@@ -801,8 +801,8 @@ const xe = class xe extends Ci {
|
|
|
801
801
|
}
|
|
802
802
|
}
|
|
803
803
|
};
|
|
804
|
-
me = new WeakMap(),
|
|
805
|
-
|
|
804
|
+
me = new WeakMap(), lt = new WeakMap(), _e = new WeakMap(), ct = new WeakMap(), ke = new WeakMap(), dt = new WeakMap(), Dt = new WeakMap(), Ce = new WeakMap(), pe = new WeakMap(), Se = new WeakMap(), Te = new WeakMap(), ze = new WeakMap(), Ne = new WeakMap(), $e = new WeakMap(), Ve = new WeakMap(), De = new WeakMap(), Re = new WeakMap(), Rt = new WeakMap(), ie = new WeakMap(), Be = new WeakMap(), P = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
|
|
805
|
+
ao = function(t) {
|
|
806
806
|
var o;
|
|
807
807
|
for (const i of t) {
|
|
808
808
|
let r = i.default;
|
|
@@ -810,25 +810,25 @@ ro = function(t) {
|
|
|
810
810
|
try {
|
|
811
811
|
r = i.converter.fromAttribute(null, this, i.attribute ?? i.configKey);
|
|
812
812
|
} catch (n) {
|
|
813
|
-
b(this,
|
|
813
|
+
b(this, P, Q).call(this, `converter for "${i.configKey}" threw computing its default; using \`default\``, n), r = i.default;
|
|
814
814
|
}
|
|
815
815
|
h(this, me)[i.configKey] = r, i.field && (this[i.field] = r);
|
|
816
816
|
}
|
|
817
|
-
},
|
|
817
|
+
}, lo = function(t) {
|
|
818
818
|
return { configKey: t.configKey, field: t.field, value: t.default, on: t.on ?? "update" };
|
|
819
819
|
}, /** Sanity-check the input + event tables once per class; warn (never throw) on mistakes. */
|
|
820
|
-
|
|
820
|
+
co = function(t, o) {
|
|
821
821
|
var l;
|
|
822
822
|
const i = this.constructor;
|
|
823
|
-
if (
|
|
823
|
+
if (Os.has(i))
|
|
824
824
|
return;
|
|
825
|
-
|
|
825
|
+
Os.add(i);
|
|
826
826
|
const r = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
827
827
|
for (const c of t)
|
|
828
|
-
r.has(c.configKey) && b(this,
|
|
828
|
+
r.has(c.configKey) && b(this, P, Q).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && b(this, P, Q).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && b(this, P, Q).call(this, `invalid input table: "${c.configKey}" has reflect:true but no attribute to reflect to`), c.reflect && !((l = c.converter) != null && l.toAttribute) && b(this, P, Q).call(this, `invalid input table: "${c.configKey}" has reflect:true but its converter has no toAttribute`);
|
|
829
829
|
const a = /* @__PURE__ */ new Set();
|
|
830
830
|
for (const c of o)
|
|
831
|
-
a.has(c.name) && b(this,
|
|
831
|
+
a.has(c.name) && b(this, P, Q).call(this, `invalid event table: duplicate event "${c.name}"`), a.add(c.name), /^[a-z][a-z0-9-]*$/.test(c.name) || b(this, P, Q).call(this, `invalid event table: event "${c.name}" should be lowercase kebab-case (e.g. "date-select")`), c.property && r.has(c.property) && b(this, P, Q).call(this, `invalid event table: event "${c.name}" property "${c.property}" collides with an input configKey`);
|
|
832
832
|
}, /**
|
|
833
833
|
* Always-on console warning for input validation failures. Deliberately uses
|
|
834
834
|
* `console.warn` directly — NOT the (future) categorized logger — so rejected
|
|
@@ -836,22 +836,22 @@ ao = function(t, o) {
|
|
|
836
836
|
*/
|
|
837
837
|
Q = function(t, ...o) {
|
|
838
838
|
console.warn(`[BlissElement] <${this.localName ?? "unknown"}> ${t}`, ...o);
|
|
839
|
-
},
|
|
839
|
+
}, ho = function(t) {
|
|
840
840
|
for (const o of t) {
|
|
841
841
|
const i = o.configKey, r = Object.prototype.hasOwnProperty.call(this, i), n = r ? this[i] : void 0;
|
|
842
842
|
r && delete this[i], Object.defineProperty(this, i, {
|
|
843
843
|
configurable: !0,
|
|
844
844
|
enumerable: !0,
|
|
845
845
|
get: () => h(this, me)[i],
|
|
846
|
-
set: (a) => b(this,
|
|
847
|
-
}), r && ((h(this, ze) ??
|
|
846
|
+
set: (a) => b(this, P, Zt).call(this, o, a)
|
|
847
|
+
}), r && ((h(this, ze) ?? I(this, ze, /* @__PURE__ */ new Set())).add(i), this[i] = n);
|
|
848
848
|
}
|
|
849
849
|
}, /**
|
|
850
850
|
* Install a managed `on<Name>` handler property per event. Assigning it
|
|
851
851
|
* (de)registers a real listener for the event, so the property behaves like
|
|
852
852
|
* `addEventListener(name, …)` and its handler receives the `CustomEvent`.
|
|
853
853
|
*/
|
|
854
|
-
|
|
854
|
+
uo = function(t) {
|
|
855
855
|
for (const o of t) {
|
|
856
856
|
const i = o.property;
|
|
857
857
|
if (!i)
|
|
@@ -871,38 +871,38 @@ co = function(t) {
|
|
|
871
871
|
}
|
|
872
872
|
}), n && (this[i] = a);
|
|
873
873
|
}
|
|
874
|
-
},
|
|
874
|
+
}, Zt = function(t, o) {
|
|
875
875
|
var r;
|
|
876
|
-
const i =
|
|
876
|
+
const i = qo(t, o);
|
|
877
877
|
if (!i) {
|
|
878
|
-
b(this,
|
|
878
|
+
b(this, P, Q).call(this, `rejected invalid value for property "${t.configKey}"; keeping previous value`, o);
|
|
879
879
|
return;
|
|
880
880
|
}
|
|
881
|
-
if (b(this,
|
|
881
|
+
if (b(this, P, es).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
|
|
882
882
|
const n = t.converter.toAttribute(i.value);
|
|
883
|
-
|
|
883
|
+
I(this, Ne, !0);
|
|
884
884
|
try {
|
|
885
885
|
n === null ? this.removeAttribute(t.attribute) : this.setAttribute(t.attribute, n);
|
|
886
886
|
} finally {
|
|
887
|
-
|
|
887
|
+
I(this, Ne, !1);
|
|
888
888
|
}
|
|
889
889
|
}
|
|
890
|
-
},
|
|
891
|
-
h(this, me)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" &&
|
|
890
|
+
}, es = function(t) {
|
|
891
|
+
h(this, me)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" && I(this, pe, !0), (h(this, Ce) ?? I(this, Ce, {}))[t.configKey] = t.value, h(this, dt).schedule(h(this, Dt)));
|
|
892
892
|
}, /** Cancel any queued microtask and flush pending changes synchronously now. */
|
|
893
|
-
|
|
894
|
-
h(this,
|
|
895
|
-
},
|
|
893
|
+
Ze = function() {
|
|
894
|
+
h(this, dt).cancel(), b(this, P, ts).call(this);
|
|
895
|
+
}, ts = function() {
|
|
896
896
|
if (!this.isConnected)
|
|
897
897
|
return;
|
|
898
898
|
const t = h(this, pe), o = h(this, Ce);
|
|
899
|
-
|
|
899
|
+
I(this, pe, !1), I(this, Ce, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), b(this, P, mo).call(this);
|
|
900
900
|
}, /** Resolve everyone awaiting {@link whenSettled} for the flush that just ran. */
|
|
901
|
-
|
|
901
|
+
mo = function() {
|
|
902
902
|
if (h(this, Se).length === 0)
|
|
903
903
|
return;
|
|
904
904
|
const t = h(this, Se);
|
|
905
|
-
|
|
905
|
+
I(this, Se, []);
|
|
906
906
|
for (const o of t)
|
|
907
907
|
o();
|
|
908
908
|
}, /** The opt-in input table. Subclasses set this to enable attribute/property reactivity. */
|
|
@@ -912,11 +912,11 @@ p(xe, "inputs"), /**
|
|
|
912
912
|
* {@link emit} can fire and installs a managed `on<Name>` handler property.
|
|
913
913
|
*/
|
|
914
914
|
p(xe, "events");
|
|
915
|
-
let
|
|
916
|
-
function
|
|
915
|
+
let Qt = xe;
|
|
916
|
+
function Ms(s, e, t) {
|
|
917
917
|
typeof customElements > "u" || customElements.get(s) || customElements.define(s, e, t);
|
|
918
918
|
}
|
|
919
|
-
function
|
|
919
|
+
function Mi(s) {
|
|
920
920
|
return {
|
|
921
921
|
enableLogging: (e) => s.enableLogging(e),
|
|
922
922
|
disableLogging: () => s.disableLogging(),
|
|
@@ -925,45 +925,45 @@ function Pi(s) {
|
|
|
925
925
|
getCategories: () => [...s.LOGGING_CATEGORIES]
|
|
926
926
|
};
|
|
927
927
|
}
|
|
928
|
-
function
|
|
928
|
+
function Li(s, e, t) {
|
|
929
929
|
const { config: o, logging: i, shouldAutoDefine: r = !0 } = t;
|
|
930
|
-
i &&
|
|
930
|
+
i && yi(s, i);
|
|
931
931
|
const n = {
|
|
932
932
|
version: () => o.version,
|
|
933
933
|
config: o,
|
|
934
|
-
...i ? { logging:
|
|
935
|
-
register: () =>
|
|
936
|
-
getInstances: () =>
|
|
934
|
+
...i ? { logging: Mi(i) } : {},
|
|
935
|
+
register: () => Ms(s, e),
|
|
936
|
+
getInstances: () => wi(s)
|
|
937
937
|
};
|
|
938
|
-
return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r &&
|
|
938
|
+
return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && Ms(s, e), n;
|
|
939
939
|
}
|
|
940
|
-
const
|
|
941
|
-
let
|
|
942
|
-
function
|
|
940
|
+
const Ls = /* @__PURE__ */ new Map(), Es = /* @__PURE__ */ new WeakMap();
|
|
941
|
+
let pt;
|
|
942
|
+
function Ei(s) {
|
|
943
943
|
if (typeof CSSStyleSheet > "u" || !("adoptedStyleSheets" in s))
|
|
944
944
|
return !1;
|
|
945
|
-
if (
|
|
945
|
+
if (pt === void 0)
|
|
946
946
|
try {
|
|
947
|
-
new CSSStyleSheet().replaceSync(""),
|
|
947
|
+
new CSSStyleSheet().replaceSync(""), pt = !0;
|
|
948
948
|
} catch {
|
|
949
|
-
|
|
949
|
+
pt = !1;
|
|
950
950
|
}
|
|
951
|
-
return
|
|
951
|
+
return pt;
|
|
952
952
|
}
|
|
953
|
-
function
|
|
953
|
+
function Ai(s, ...e) {
|
|
954
954
|
if (typeof document > "u")
|
|
955
955
|
return;
|
|
956
|
-
let t =
|
|
957
|
-
t ||
|
|
956
|
+
let t = Es.get(s);
|
|
957
|
+
t || Es.set(s, t = /* @__PURE__ */ new Set());
|
|
958
958
|
const o = e.filter((r) => r && !t.has(r));
|
|
959
959
|
if (o.length === 0)
|
|
960
960
|
return;
|
|
961
961
|
for (const r of o)
|
|
962
962
|
t.add(r);
|
|
963
|
-
if (
|
|
963
|
+
if (Ei(s)) {
|
|
964
964
|
const r = o.map((n) => {
|
|
965
|
-
let a =
|
|
966
|
-
return a || (a = new CSSStyleSheet(), a.replaceSync(n),
|
|
965
|
+
let a = Ls.get(n);
|
|
966
|
+
return a || (a = new CSSStyleSheet(), a.replaceSync(n), Ls.set(n, a)), a;
|
|
967
967
|
});
|
|
968
968
|
s.adoptedStyleSheets = [...s.adoptedStyleSheets, ...r];
|
|
969
969
|
return;
|
|
@@ -974,7 +974,7 @@ function Li(s, ...e) {
|
|
|
974
974
|
n.textContent = r, i.appendChild(n);
|
|
975
975
|
}
|
|
976
976
|
}
|
|
977
|
-
function
|
|
977
|
+
function zi(s, e = {}) {
|
|
978
978
|
const t = e.position ?? "last", o = s.head ?? s;
|
|
979
979
|
let i = null;
|
|
980
980
|
const r = () => typeof document > "u" ? null : (i || (i = document.createElement("style"), e.className && (i.className = e.className)), i.parentNode !== o && (t === "first" && o.firstChild ? o.insertBefore(i, o.firstChild) : o.appendChild(i)), i), n = () => {
|
|
@@ -995,65 +995,65 @@ function Ei(s, e = {}) {
|
|
|
995
995
|
}
|
|
996
996
|
};
|
|
997
997
|
}
|
|
998
|
-
function
|
|
998
|
+
function po(s) {
|
|
999
999
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1000
1000
|
}
|
|
1001
|
-
function
|
|
1002
|
-
const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${
|
|
1001
|
+
function Ni(s, e) {
|
|
1002
|
+
const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${po(e)}[a-z0-9-]+)`, "gi");
|
|
1003
1003
|
let i;
|
|
1004
1004
|
for (; i = o.exec(s); )
|
|
1005
1005
|
i[1] && t.add(i[1]);
|
|
1006
1006
|
return t;
|
|
1007
1007
|
}
|
|
1008
|
-
function
|
|
1009
|
-
const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${
|
|
1008
|
+
function $i(s, e) {
|
|
1009
|
+
const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${po(e)}[a-z0-9-]+)\\s*:`, "gi");
|
|
1010
1010
|
let i;
|
|
1011
1011
|
for (; i = o.exec(s); )
|
|
1012
1012
|
i[1] && t.add(i[1]);
|
|
1013
1013
|
return [...t];
|
|
1014
1014
|
}
|
|
1015
|
-
function
|
|
1015
|
+
function Vi(s, e, t = {}) {
|
|
1016
1016
|
const o = t.minScore ?? 3, i = t.limit ?? 3, r = new Set(s.split("-").filter(Boolean));
|
|
1017
1017
|
return [...e].map((n) => ({ k: n, score: n.split("-").filter((a) => r.has(a)).length })).filter((n) => n.score >= o).sort((n, a) => a.score - n.score).slice(0, i).map((n) => n.k);
|
|
1018
1018
|
}
|
|
1019
|
-
function
|
|
1019
|
+
function Di(s, e) {
|
|
1020
1020
|
if (e.consumed.size === 0)
|
|
1021
1021
|
return [];
|
|
1022
1022
|
const t = [];
|
|
1023
|
-
for (const o of
|
|
1024
|
-
e.consumed.has(o) || t.push({ name: o, suggestions:
|
|
1023
|
+
for (const o of $i(s, e.prefix))
|
|
1024
|
+
e.consumed.has(o) || t.push({ name: o, suggestions: Vi(o, e.consumed, { minScore: e.minScore }) });
|
|
1025
1025
|
return t;
|
|
1026
1026
|
}
|
|
1027
|
-
const
|
|
1027
|
+
const Ri = {
|
|
1028
1028
|
mobile: "fullscreen",
|
|
1029
1029
|
tablet: "floating",
|
|
1030
1030
|
desktop: "floating"
|
|
1031
1031
|
};
|
|
1032
|
-
function
|
|
1032
|
+
function Bi(s, e, t = {}) {
|
|
1033
1033
|
if (s !== "auto")
|
|
1034
1034
|
return s;
|
|
1035
|
-
const o =
|
|
1036
|
-
return t[o] ??
|
|
1035
|
+
const o = ci(e);
|
|
1036
|
+
return t[o] ?? Ri[o];
|
|
1037
1037
|
}
|
|
1038
|
-
function
|
|
1038
|
+
function Gt(s) {
|
|
1039
1039
|
return {
|
|
1040
1040
|
presentation: s,
|
|
1041
1041
|
isFullscreen: s === "fullscreen",
|
|
1042
1042
|
isModal: s === "modal"
|
|
1043
1043
|
};
|
|
1044
1044
|
}
|
|
1045
|
-
let
|
|
1046
|
-
function
|
|
1045
|
+
let qe = 0, ft = null;
|
|
1046
|
+
function Hi() {
|
|
1047
1047
|
if (typeof document > "u")
|
|
1048
1048
|
return () => {
|
|
1049
1049
|
};
|
|
1050
|
-
|
|
1050
|
+
qe === 0 && (ft = document.body.style.overflow, document.body.style.overflow = "hidden"), qe++;
|
|
1051
1051
|
let s = !1;
|
|
1052
1052
|
return () => {
|
|
1053
|
-
s || (s = !0,
|
|
1053
|
+
s || (s = !0, qe = Math.max(0, qe - 1), qe === 0 && ft !== null && (document.body.style.overflow = ft, ft = null));
|
|
1054
1054
|
};
|
|
1055
1055
|
}
|
|
1056
|
-
function
|
|
1056
|
+
function Fi(s) {
|
|
1057
1057
|
const e = typeof window < "u" ? window.visualViewport : null;
|
|
1058
1058
|
if (!e)
|
|
1059
1059
|
return () => {
|
|
@@ -1068,39 +1068,39 @@ function Bi(s) {
|
|
|
1068
1068
|
e.removeEventListener("resize", i), e.removeEventListener("scroll", i), s.style.height = "", s.style.top = "";
|
|
1069
1069
|
};
|
|
1070
1070
|
}
|
|
1071
|
-
const
|
|
1072
|
-
let
|
|
1073
|
-
function
|
|
1071
|
+
const gs = "km-overlay-activated", Ki = Symbol("km-overlay-all-groups"), Lt = /* @__PURE__ */ new Set(), Xe = /* @__PURE__ */ new Map();
|
|
1072
|
+
let Et = !1;
|
|
1073
|
+
function bs() {
|
|
1074
1074
|
return typeof document < "u";
|
|
1075
1075
|
}
|
|
1076
|
-
function
|
|
1077
|
-
return e ===
|
|
1076
|
+
function Wi(s, e) {
|
|
1077
|
+
return e === Ki || s === e;
|
|
1078
1078
|
}
|
|
1079
|
-
function
|
|
1079
|
+
function fo(s) {
|
|
1080
1080
|
const e = s.detail, t = e == null ? void 0 : e.source, o = e == null ? void 0 : e.group;
|
|
1081
|
-
for (const i of Array.from(
|
|
1082
|
-
i.id !== t &&
|
|
1081
|
+
for (const i of Array.from(Lt))
|
|
1082
|
+
i.id !== t && Wi(i.group, o) && i.dismiss();
|
|
1083
1083
|
}
|
|
1084
|
-
function
|
|
1085
|
-
|
|
1084
|
+
function ji() {
|
|
1085
|
+
Et || !bs() || (document.addEventListener(gs, fo), Et = !0);
|
|
1086
1086
|
}
|
|
1087
|
-
function
|
|
1088
|
-
|
|
1087
|
+
function Ui() {
|
|
1088
|
+
Et && Lt.size === 0 && bs() && (document.removeEventListener(gs, fo), Et = !1);
|
|
1089
1089
|
}
|
|
1090
|
-
function
|
|
1091
|
-
|
|
1090
|
+
function Gi(s, e) {
|
|
1091
|
+
bs() && document.dispatchEvent(new CustomEvent(gs, { detail: { source: s, group: e } }));
|
|
1092
1092
|
}
|
|
1093
|
-
function
|
|
1093
|
+
function qi(s, e) {
|
|
1094
1094
|
const t = { id: {}, group: e, dismiss: s };
|
|
1095
|
-
return
|
|
1095
|
+
return Lt.add(t), ji(), {
|
|
1096
1096
|
activate() {
|
|
1097
|
-
|
|
1097
|
+
Xe.set(t.group, t), Gi(t.id, t.group);
|
|
1098
1098
|
},
|
|
1099
1099
|
deactivate() {
|
|
1100
|
-
|
|
1100
|
+
Xe.get(t.group) === t && Xe.delete(t.group);
|
|
1101
1101
|
},
|
|
1102
1102
|
dispose() {
|
|
1103
|
-
|
|
1103
|
+
Lt.delete(t), Xe.get(t.group) === t && Xe.delete(t.group), Ui();
|
|
1104
1104
|
}
|
|
1105
1105
|
};
|
|
1106
1106
|
}
|
|
@@ -1111,21 +1111,21 @@ const U = {
|
|
|
1111
1111
|
WARN: 3,
|
|
1112
1112
|
ERROR: 4,
|
|
1113
1113
|
SILENT: 5
|
|
1114
|
-
},
|
|
1114
|
+
}, As = ["trace", "debug", "info", "warn", "error"], At = () => {
|
|
1115
1115
|
};
|
|
1116
|
-
let
|
|
1117
|
-
function
|
|
1116
|
+
let Xi = "km-log";
|
|
1117
|
+
function zs(s) {
|
|
1118
1118
|
const t = console[s];
|
|
1119
|
-
return typeof t == "function" ? t.bind(console) :
|
|
1119
|
+
return typeof t == "function" ? t.bind(console) : At;
|
|
1120
1120
|
}
|
|
1121
|
-
function
|
|
1121
|
+
function Yi(s) {
|
|
1122
1122
|
if (s === "debug" && (s = "log"), typeof console > "u")
|
|
1123
|
-
return
|
|
1123
|
+
return At;
|
|
1124
1124
|
const e = console;
|
|
1125
|
-
return e[s] !== void 0 ?
|
|
1125
|
+
return e[s] !== void 0 ? zs(s) : e.log !== void 0 ? zs("log") : At;
|
|
1126
1126
|
}
|
|
1127
|
-
const
|
|
1128
|
-
function
|
|
1127
|
+
const Ji = (s) => Yi(s);
|
|
1128
|
+
function Ye(s) {
|
|
1129
1129
|
let e = s;
|
|
1130
1130
|
const t = U;
|
|
1131
1131
|
if (typeof e == "string" && t[e.toUpperCase()] !== void 0 && (e = t[e.toUpperCase()]), typeof e == "number" && e >= 0 && e <= U.SILENT)
|
|
@@ -1133,8 +1133,8 @@ function Xe(s) {
|
|
|
1133
1133
|
throw new TypeError(`setLevel() called with an invalid level: ${String(s)}`);
|
|
1134
1134
|
}
|
|
1135
1135
|
let ue;
|
|
1136
|
-
const
|
|
1137
|
-
class
|
|
1136
|
+
const zt = {};
|
|
1137
|
+
class go {
|
|
1138
1138
|
constructor(e, t) {
|
|
1139
1139
|
p(this, "name");
|
|
1140
1140
|
p(this, "levels", U);
|
|
@@ -1152,18 +1152,18 @@ class po {
|
|
|
1152
1152
|
p(this, "defaultLevel", null);
|
|
1153
1153
|
/** Optional user-set level; overrides default. */
|
|
1154
1154
|
p(this, "userLevel", null);
|
|
1155
|
-
this.name = e, this.methodFactory = t, this.inheritedLevel =
|
|
1155
|
+
this.name = e, this.methodFactory = t, this.inheritedLevel = Ye(ue ? ue.getLevel() : "WARN");
|
|
1156
1156
|
const o = this.getPersistedLevel();
|
|
1157
|
-
o != null && (this.userLevel =
|
|
1157
|
+
o != null && (this.userLevel = Ye(o)), this.replaceLoggingMethods();
|
|
1158
1158
|
}
|
|
1159
1159
|
storageKey() {
|
|
1160
|
-
return typeof this.name == "string" ? `${
|
|
1160
|
+
return typeof this.name == "string" ? `${Xi}:${this.name}` : void 0;
|
|
1161
1161
|
}
|
|
1162
1162
|
persist(e) {
|
|
1163
1163
|
const t = this.storageKey();
|
|
1164
1164
|
if (typeof window > "u" || !t)
|
|
1165
1165
|
return;
|
|
1166
|
-
const o = (
|
|
1166
|
+
const o = (As[e] ?? "silent").toUpperCase();
|
|
1167
1167
|
try {
|
|
1168
1168
|
window.localStorage[t] = o;
|
|
1169
1169
|
} catch {
|
|
@@ -1191,18 +1191,18 @@ class po {
|
|
|
1191
1191
|
}
|
|
1192
1192
|
replaceLoggingMethods() {
|
|
1193
1193
|
const e = this.getLevel();
|
|
1194
|
-
|
|
1195
|
-
this[t] = o < e ?
|
|
1194
|
+
As.forEach((t, o) => {
|
|
1195
|
+
this[t] = o < e ? At : this.methodFactory(t, e, this.name);
|
|
1196
1196
|
}), this.log = this.debug;
|
|
1197
1197
|
}
|
|
1198
1198
|
getLevel() {
|
|
1199
1199
|
return this.userLevel != null ? this.userLevel : this.defaultLevel != null ? this.defaultLevel : this.inheritedLevel;
|
|
1200
1200
|
}
|
|
1201
1201
|
setLevel(e, t) {
|
|
1202
|
-
this.userLevel =
|
|
1202
|
+
this.userLevel = Ye(e), t !== !1 && this.persist(this.userLevel), this.replaceLoggingMethods();
|
|
1203
1203
|
}
|
|
1204
1204
|
setDefaultLevel(e) {
|
|
1205
|
-
this.defaultLevel =
|
|
1205
|
+
this.defaultLevel = Ye(e), this.getPersistedLevel() || this.setLevel(e, !1);
|
|
1206
1206
|
}
|
|
1207
1207
|
resetLevel() {
|
|
1208
1208
|
this.userLevel = null, this.clearPersisted(), this.replaceLoggingMethods();
|
|
@@ -1214,19 +1214,19 @@ class po {
|
|
|
1214
1214
|
this.setLevel(U.SILENT, e);
|
|
1215
1215
|
}
|
|
1216
1216
|
rebuild() {
|
|
1217
|
-
if (ue && ue !== this && (this.inheritedLevel =
|
|
1218
|
-
for (const e in
|
|
1219
|
-
|
|
1217
|
+
if (ue && ue !== this && (this.inheritedLevel = Ye(ue.getLevel())), this.replaceLoggingMethods(), ue === this)
|
|
1218
|
+
for (const e in zt)
|
|
1219
|
+
zt[e].rebuild();
|
|
1220
1220
|
}
|
|
1221
1221
|
}
|
|
1222
|
-
ue = new
|
|
1223
|
-
function
|
|
1222
|
+
ue = new go(void 0, Ji);
|
|
1223
|
+
function Qi(s) {
|
|
1224
1224
|
if (typeof s != "string" || s === "")
|
|
1225
1225
|
throw new TypeError("You must supply a non-empty name when creating a logger.");
|
|
1226
|
-
let e =
|
|
1227
|
-
return e || (e =
|
|
1226
|
+
let e = zt[s];
|
|
1227
|
+
return e || (e = zt[s] = new go(s, ue.methodFactory)), e;
|
|
1228
1228
|
}
|
|
1229
|
-
const
|
|
1229
|
+
const Zi = ["INIT", "DATA", "UI"], er = "debug", Ns = [
|
|
1230
1230
|
"#4c8bf5",
|
|
1231
1231
|
// blue
|
|
1232
1232
|
"#2ea043",
|
|
@@ -1243,43 +1243,43 @@ const Ji = ["INIT", "DATA", "UI"], Qi = "debug", As = [
|
|
|
1243
1243
|
// teal
|
|
1244
1244
|
"#8a6d3b"
|
|
1245
1245
|
// brown
|
|
1246
|
-
],
|
|
1247
|
-
function
|
|
1248
|
-
if (
|
|
1246
|
+
], $s = /* @__PURE__ */ new WeakSet();
|
|
1247
|
+
function tr(s, e, t) {
|
|
1248
|
+
if ($s.has(s))
|
|
1249
1249
|
return;
|
|
1250
|
-
|
|
1250
|
+
$s.add(s);
|
|
1251
1251
|
const o = s.methodFactory, i = `color:${t};font-weight:bold`;
|
|
1252
1252
|
s.methodFactory = (r, n, a) => {
|
|
1253
1253
|
const l = o(r, n, a);
|
|
1254
1254
|
return (...c) => l(`%c[${e}]`, i, ...c);
|
|
1255
1255
|
}, s.setLevel(s.getLevel(), !1);
|
|
1256
1256
|
}
|
|
1257
|
-
function
|
|
1257
|
+
function sr(s) {
|
|
1258
1258
|
return typeof s == "number" ? s : U[s.toUpperCase()] ?? U.SILENT;
|
|
1259
1259
|
}
|
|
1260
|
-
const
|
|
1260
|
+
const or = [
|
|
1261
1261
|
["trace", U.TRACE, "debug"],
|
|
1262
1262
|
["debug", U.DEBUG, "debug"],
|
|
1263
1263
|
["info", U.INFO, "info"],
|
|
1264
1264
|
["warn", U.WARN, "warn"],
|
|
1265
1265
|
["error", U.ERROR, "error"]
|
|
1266
1266
|
];
|
|
1267
|
-
function
|
|
1267
|
+
function ir(s, e, t) {
|
|
1268
1268
|
const o = `color:${s.color};font-weight:bold`, i = "color:#888", r = {};
|
|
1269
|
-
for (const [n, a, l] of
|
|
1269
|
+
for (const [n, a, l] of or)
|
|
1270
1270
|
r[n] = (...c) => {
|
|
1271
|
-
const d = t(), u = Math.min(s.logger.getLevel(), d == null ? U.SILENT :
|
|
1271
|
+
const d = t(), u = Math.min(s.logger.getLevel(), d == null ? U.SILENT : sr(d));
|
|
1272
1272
|
if (a < u)
|
|
1273
1273
|
return;
|
|
1274
1274
|
(console[l] ?? console.log).bind(console)(`%c[${s.label}]%c ${e}`, o, i, ...c);
|
|
1275
1275
|
};
|
|
1276
1276
|
return r;
|
|
1277
1277
|
}
|
|
1278
|
-
function
|
|
1278
|
+
function rr(s, e = Zi) {
|
|
1279
1279
|
const t = {}, o = {};
|
|
1280
1280
|
e.forEach((r, n) => {
|
|
1281
|
-
const a = `${s}:${r}`, l =
|
|
1282
|
-
|
|
1281
|
+
const a = `${s}:${r}`, l = Ns[n % Ns.length], c = Qi(a);
|
|
1282
|
+
tr(c, a, l), t[r] = c, o[r] = { label: a, color: l, logger: c };
|
|
1283
1283
|
});
|
|
1284
1284
|
const i = (r) => {
|
|
1285
1285
|
for (const n of e)
|
|
@@ -1288,7 +1288,7 @@ function or(s, e = Ji) {
|
|
|
1288
1288
|
return {
|
|
1289
1289
|
loggers: t,
|
|
1290
1290
|
LOGGING_CATEGORIES: e,
|
|
1291
|
-
enableLogging(r =
|
|
1291
|
+
enableLogging(r = er) {
|
|
1292
1292
|
i(r);
|
|
1293
1293
|
},
|
|
1294
1294
|
disableLogging() {
|
|
@@ -1304,81 +1304,81 @@ function or(s, e = Ji) {
|
|
|
1304
1304
|
forInstance(r, n) {
|
|
1305
1305
|
const a = {};
|
|
1306
1306
|
for (const l of e)
|
|
1307
|
-
a[l] =
|
|
1307
|
+
a[l] = ir(o[l], r, n);
|
|
1308
1308
|
return a;
|
|
1309
1309
|
}
|
|
1310
1310
|
};
|
|
1311
1311
|
}
|
|
1312
|
-
const be = Math.min, ne = Math.max,
|
|
1312
|
+
const be = Math.min, ne = Math.max, Nt = Math.round, gt = Math.floor, ae = (s) => ({
|
|
1313
1313
|
x: s,
|
|
1314
1314
|
y: s
|
|
1315
|
-
}),
|
|
1315
|
+
}), nr = {
|
|
1316
1316
|
left: "right",
|
|
1317
1317
|
right: "left",
|
|
1318
1318
|
bottom: "top",
|
|
1319
1319
|
top: "bottom"
|
|
1320
1320
|
};
|
|
1321
|
-
function
|
|
1321
|
+
function bo(s, e, t) {
|
|
1322
1322
|
return ne(s, be(e, t));
|
|
1323
1323
|
}
|
|
1324
|
-
function
|
|
1324
|
+
function We(s, e) {
|
|
1325
1325
|
return typeof s == "function" ? s(e) : s;
|
|
1326
1326
|
}
|
|
1327
1327
|
function Oe(s) {
|
|
1328
1328
|
return s.split("-")[0];
|
|
1329
1329
|
}
|
|
1330
|
-
function
|
|
1330
|
+
function je(s) {
|
|
1331
1331
|
return s.split("-")[1];
|
|
1332
1332
|
}
|
|
1333
|
-
function
|
|
1333
|
+
function vo(s) {
|
|
1334
1334
|
return s === "x" ? "y" : "x";
|
|
1335
1335
|
}
|
|
1336
|
-
function
|
|
1336
|
+
function vs(s) {
|
|
1337
1337
|
return s === "y" ? "height" : "width";
|
|
1338
1338
|
}
|
|
1339
1339
|
function re(s) {
|
|
1340
1340
|
const e = s[0];
|
|
1341
1341
|
return e === "t" || e === "b" ? "y" : "x";
|
|
1342
1342
|
}
|
|
1343
|
-
function
|
|
1344
|
-
return
|
|
1343
|
+
function ws(s) {
|
|
1344
|
+
return vo(re(s));
|
|
1345
1345
|
}
|
|
1346
|
-
function
|
|
1346
|
+
function ar(s, e, t) {
|
|
1347
1347
|
t === void 0 && (t = !1);
|
|
1348
|
-
const o =
|
|
1348
|
+
const o = je(s), i = ws(s), r = vs(i);
|
|
1349
1349
|
let n = i === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
|
|
1350
|
-
return e.reference[r] > e.floating[r] && (n =
|
|
1350
|
+
return e.reference[r] > e.floating[r] && (n = $t(n)), [n, $t(n)];
|
|
1351
1351
|
}
|
|
1352
|
-
function
|
|
1353
|
-
const e =
|
|
1354
|
-
return [
|
|
1352
|
+
function lr(s) {
|
|
1353
|
+
const e = $t(s);
|
|
1354
|
+
return [ss(s), e, ss(e)];
|
|
1355
1355
|
}
|
|
1356
|
-
function
|
|
1356
|
+
function ss(s) {
|
|
1357
1357
|
return s.includes("start") ? s.replace("start", "end") : s.replace("end", "start");
|
|
1358
1358
|
}
|
|
1359
|
-
const
|
|
1360
|
-
function
|
|
1359
|
+
const Vs = ["left", "right"], Ds = ["right", "left"], cr = ["top", "bottom"], dr = ["bottom", "top"];
|
|
1360
|
+
function hr(s, e, t) {
|
|
1361
1361
|
switch (s) {
|
|
1362
1362
|
case "top":
|
|
1363
1363
|
case "bottom":
|
|
1364
|
-
return t ? e ?
|
|
1364
|
+
return t ? e ? Ds : Vs : e ? Vs : Ds;
|
|
1365
1365
|
case "left":
|
|
1366
1366
|
case "right":
|
|
1367
|
-
return e ?
|
|
1367
|
+
return e ? cr : dr;
|
|
1368
1368
|
default:
|
|
1369
1369
|
return [];
|
|
1370
1370
|
}
|
|
1371
1371
|
}
|
|
1372
|
-
function
|
|
1373
|
-
const i =
|
|
1374
|
-
let r =
|
|
1375
|
-
return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(
|
|
1372
|
+
function ur(s, e, t, o) {
|
|
1373
|
+
const i = je(s);
|
|
1374
|
+
let r = hr(Oe(s), t === "start", o);
|
|
1375
|
+
return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(ss)))), r;
|
|
1376
1376
|
}
|
|
1377
|
-
function
|
|
1377
|
+
function $t(s) {
|
|
1378
1378
|
const e = Oe(s);
|
|
1379
|
-
return
|
|
1379
|
+
return nr[e] + s.slice(e.length);
|
|
1380
1380
|
}
|
|
1381
|
-
function
|
|
1381
|
+
function mr(s) {
|
|
1382
1382
|
var e, t, o, i;
|
|
1383
1383
|
return {
|
|
1384
1384
|
top: (e = s.top) != null ? e : 0,
|
|
@@ -1387,15 +1387,15 @@ function hr(s) {
|
|
|
1387
1387
|
left: (i = s.left) != null ? i : 0
|
|
1388
1388
|
};
|
|
1389
1389
|
}
|
|
1390
|
-
function
|
|
1391
|
-
return typeof s != "number" ?
|
|
1390
|
+
function wo(s) {
|
|
1391
|
+
return typeof s != "number" ? mr(s) : {
|
|
1392
1392
|
top: s,
|
|
1393
1393
|
right: s,
|
|
1394
1394
|
bottom: s,
|
|
1395
1395
|
left: s
|
|
1396
1396
|
};
|
|
1397
1397
|
}
|
|
1398
|
-
function
|
|
1398
|
+
function Vt(s) {
|
|
1399
1399
|
const {
|
|
1400
1400
|
x: e,
|
|
1401
1401
|
y: t,
|
|
@@ -1413,12 +1413,12 @@ function Nt(s) {
|
|
|
1413
1413
|
y: t
|
|
1414
1414
|
};
|
|
1415
1415
|
}
|
|
1416
|
-
function
|
|
1416
|
+
function Rs(s, e, t) {
|
|
1417
1417
|
let {
|
|
1418
1418
|
reference: o,
|
|
1419
1419
|
floating: i
|
|
1420
1420
|
} = s;
|
|
1421
|
-
const r = re(e), n =
|
|
1421
|
+
const r = re(e), n = ws(e), a = vs(n), l = Oe(e), c = r === "y", d = o.x + o.width / 2 - i.width / 2, u = o.y + o.height / 2 - i.height / 2, f = o[a] / 2 - i[a] / 2;
|
|
1422
1422
|
let m;
|
|
1423
1423
|
switch (l) {
|
|
1424
1424
|
case "top":
|
|
@@ -1451,10 +1451,10 @@ function Vs(s, e, t) {
|
|
|
1451
1451
|
y: o.y
|
|
1452
1452
|
};
|
|
1453
1453
|
}
|
|
1454
|
-
const g =
|
|
1454
|
+
const g = je(e);
|
|
1455
1455
|
return g && (m[n] += f * (g === "end" ? 1 : -1) * (t && c ? -1 : 1)), m;
|
|
1456
1456
|
}
|
|
1457
|
-
async function
|
|
1457
|
+
async function pr(s, e) {
|
|
1458
1458
|
var t;
|
|
1459
1459
|
e === void 0 && (e = {});
|
|
1460
1460
|
const {
|
|
@@ -1470,8 +1470,8 @@ async function ur(s, e) {
|
|
|
1470
1470
|
elementContext: u = "floating",
|
|
1471
1471
|
altBoundary: f = !1,
|
|
1472
1472
|
padding: m = 0
|
|
1473
|
-
} =
|
|
1474
|
-
element: (t = await (r.isElement == null ? void 0 : r.isElement(
|
|
1473
|
+
} = We(e, s), g = wo(m), x = a[f ? u === "floating" ? "reference" : "floating" : u], v = Vt(await r.getClippingRect({
|
|
1474
|
+
element: (t = await (r.isElement == null ? void 0 : r.isElement(x))) == null || t ? x : x.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(a.floating)),
|
|
1475
1475
|
boundary: c,
|
|
1476
1476
|
rootBoundary: d,
|
|
1477
1477
|
strategy: l
|
|
@@ -1483,7 +1483,7 @@ async function ur(s, e) {
|
|
|
1483
1483
|
} : n.reference, C = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), E = await (r.isElement == null ? void 0 : r.isElement(C)) && await (r.getScale == null ? void 0 : r.getScale(C)) || {
|
|
1484
1484
|
x: 1,
|
|
1485
1485
|
y: 1
|
|
1486
|
-
}, z =
|
|
1486
|
+
}, z = Vt(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
1487
1487
|
elements: a,
|
|
1488
1488
|
rect: _,
|
|
1489
1489
|
offsetParent: C,
|
|
@@ -1496,7 +1496,7 @@ async function ur(s, e) {
|
|
|
1496
1496
|
right: (z.right - v.right + g.right) / E.x
|
|
1497
1497
|
};
|
|
1498
1498
|
}
|
|
1499
|
-
const
|
|
1499
|
+
const fr = 50, gr = async (s, e, t) => {
|
|
1500
1500
|
const {
|
|
1501
1501
|
placement: o = "bottom",
|
|
1502
1502
|
strategy: i = "absolute",
|
|
@@ -1504,7 +1504,7 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1504
1504
|
platform: n
|
|
1505
1505
|
} = t, a = n.detectOverflow ? n : {
|
|
1506
1506
|
...n,
|
|
1507
|
-
detectOverflow:
|
|
1507
|
+
detectOverflow: pr
|
|
1508
1508
|
}, l = await (n.isRTL == null ? void 0 : n.isRTL(e));
|
|
1509
1509
|
let c = await n.getElementRects({
|
|
1510
1510
|
reference: s,
|
|
@@ -1513,16 +1513,16 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1513
1513
|
}), {
|
|
1514
1514
|
x: d,
|
|
1515
1515
|
y: u
|
|
1516
|
-
} =
|
|
1516
|
+
} = Rs(c, o, l), f = o, m = 0;
|
|
1517
1517
|
const g = {};
|
|
1518
|
-
for (let
|
|
1519
|
-
const
|
|
1520
|
-
if (!
|
|
1518
|
+
for (let y = 0; y < r.length; y++) {
|
|
1519
|
+
const x = r[y];
|
|
1520
|
+
if (!x)
|
|
1521
1521
|
continue;
|
|
1522
1522
|
const {
|
|
1523
1523
|
name: v,
|
|
1524
1524
|
fn: _
|
|
1525
|
-
} =
|
|
1525
|
+
} = x, {
|
|
1526
1526
|
x: C,
|
|
1527
1527
|
y: E,
|
|
1528
1528
|
data: z,
|
|
@@ -1544,14 +1544,14 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1544
1544
|
d = C ?? d, u = E ?? u, g[v] = {
|
|
1545
1545
|
...g[v],
|
|
1546
1546
|
...z
|
|
1547
|
-
}, D && m <
|
|
1547
|
+
}, D && m < fr && (m++, typeof D == "object" && (D.placement && (f = D.placement), D.rects && (c = D.rects === !0 ? await n.getElementRects({
|
|
1548
1548
|
reference: s,
|
|
1549
1549
|
floating: e,
|
|
1550
1550
|
strategy: i
|
|
1551
1551
|
}) : D.rects), {
|
|
1552
1552
|
x: d,
|
|
1553
1553
|
y: u
|
|
1554
|
-
} =
|
|
1554
|
+
} = Rs(c, f, l)), y = -1);
|
|
1555
1555
|
}
|
|
1556
1556
|
return {
|
|
1557
1557
|
x: d,
|
|
@@ -1560,7 +1560,7 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1560
1560
|
strategy: i,
|
|
1561
1561
|
middlewareData: g
|
|
1562
1562
|
};
|
|
1563
|
-
},
|
|
1563
|
+
}, br = (s) => ({
|
|
1564
1564
|
name: "arrow",
|
|
1565
1565
|
options: s,
|
|
1566
1566
|
async fn(e) {
|
|
@@ -1575,16 +1575,16 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1575
1575
|
} = e, {
|
|
1576
1576
|
element: c,
|
|
1577
1577
|
padding: d = 0
|
|
1578
|
-
} =
|
|
1578
|
+
} = We(s, e) || {};
|
|
1579
1579
|
if (c == null)
|
|
1580
1580
|
return {};
|
|
1581
|
-
const u =
|
|
1581
|
+
const u = wo(d), f = {
|
|
1582
1582
|
x: t,
|
|
1583
1583
|
y: o
|
|
1584
|
-
}, m =
|
|
1584
|
+
}, m = ws(i), g = vs(m), y = await n.getDimensions(c), x = m === "y", v = x ? "top" : "left", _ = x ? "bottom" : "right", C = x ? "clientHeight" : "clientWidth", E = r.reference[g] + r.reference[m] - f[m] - r.floating[g], z = f[m] - r.reference[m], D = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
|
|
1585
1585
|
let W = D ? D[C] : 0;
|
|
1586
1586
|
(!W || !await (n.isElement == null ? void 0 : n.isElement(D))) && (W = a.floating[C] || r.floating[g]);
|
|
1587
|
-
const q = E / 2 - z / 2, V = W / 2 -
|
|
1587
|
+
const q = E / 2 - z / 2, V = W / 2 - y[g] / 2 - 1, S = be(u[v], V), O = be(u[_], V), L = W - y[g] - O, B = W / 2 - y[g] / 2 + q, T = bo(S, B, L), F = !l.arrow && je(i) != null && B !== T && r.reference[g] / 2 - (B < S ? S : O) - y[g] / 2 < 0, se = F ? B < S ? B - S : B - L : 0;
|
|
1588
1588
|
return {
|
|
1589
1589
|
[m]: f[m] + se,
|
|
1590
1590
|
data: {
|
|
@@ -1597,7 +1597,7 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1597
1597
|
reset: F
|
|
1598
1598
|
};
|
|
1599
1599
|
}
|
|
1600
|
-
}),
|
|
1600
|
+
}), vr = function(s) {
|
|
1601
1601
|
return s === void 0 && (s = {}), {
|
|
1602
1602
|
name: "flip",
|
|
1603
1603
|
options: s,
|
|
@@ -1616,24 +1616,24 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1616
1616
|
fallbackPlacements: f,
|
|
1617
1617
|
fallbackStrategy: m = "bestFit",
|
|
1618
1618
|
fallbackAxisSideDirection: g = "none",
|
|
1619
|
-
flipAlignment:
|
|
1620
|
-
...
|
|
1621
|
-
} =
|
|
1619
|
+
flipAlignment: y = !0,
|
|
1620
|
+
...x
|
|
1621
|
+
} = We(s, e);
|
|
1622
1622
|
if ((t = r.arrow) != null && t.alignmentOffset)
|
|
1623
1623
|
return {};
|
|
1624
|
-
const v = Oe(i), _ = re(a), C = Oe(a) === a, E = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), z = f || (C || !
|
|
1625
|
-
!f && D && z.push(...
|
|
1626
|
-
const W = [a, ...z], q = await l.detectOverflow(e,
|
|
1624
|
+
const v = Oe(i), _ = re(a), C = Oe(a) === a, E = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), z = f || (C || !y ? [$t(a)] : lr(a)), D = g !== "none";
|
|
1625
|
+
!f && D && z.push(...ur(a, y, g, E));
|
|
1626
|
+
const W = [a, ...z], q = await l.detectOverflow(e, x), V = [];
|
|
1627
1627
|
let S = ((o = r.flip) == null ? void 0 : o.overflows) || [];
|
|
1628
1628
|
if (d && V.push(q[v]), u) {
|
|
1629
|
-
const T =
|
|
1629
|
+
const T = ar(i, n, E);
|
|
1630
1630
|
V.push(q[T[0]], q[T[1]]);
|
|
1631
1631
|
}
|
|
1632
1632
|
if (S = [...S, {
|
|
1633
1633
|
placement: i,
|
|
1634
1634
|
overflows: V
|
|
1635
1635
|
}], !V.every((T) => T <= 0)) {
|
|
1636
|
-
var O,
|
|
1636
|
+
var O, L;
|
|
1637
1637
|
const T = (((O = r.flip) == null ? void 0 : O.index) || 0) + 1, F = W[T];
|
|
1638
1638
|
if (F && (!(u === "alignment" ? _ !== re(F) : !1) || // We leave the current main axis only if every placement on that axis
|
|
1639
1639
|
// overflows the main axis.
|
|
@@ -1647,7 +1647,7 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1647
1647
|
placement: F
|
|
1648
1648
|
}
|
|
1649
1649
|
};
|
|
1650
|
-
let se = (
|
|
1650
|
+
let se = (L = S.filter((we) => we.overflows[0] <= 0).sort((we, Y) => we.overflows[1] - Y.overflows[1])[0]) == null ? void 0 : L.placement;
|
|
1651
1651
|
if (!se)
|
|
1652
1652
|
switch (m) {
|
|
1653
1653
|
case "bestFit": {
|
|
@@ -1660,7 +1660,7 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1660
1660
|
de === "y";
|
|
1661
1661
|
}
|
|
1662
1662
|
return !0;
|
|
1663
|
-
}).map((Y) => [Y.placement, Y.overflows.filter((de) => de > 0).reduce((de,
|
|
1663
|
+
}).map((Y) => [Y.placement, Y.overflows.filter((de) => de > 0).reduce((de, Ro) => de + Ro, 0)]).sort((Y, de) => Y[1] - de[1])[0]) == null ? void 0 : B[0];
|
|
1664
1664
|
we && (se = we);
|
|
1665
1665
|
break;
|
|
1666
1666
|
}
|
|
@@ -1678,13 +1678,13 @@ const mr = 50, pr = async (s, e, t) => {
|
|
|
1678
1678
|
return {};
|
|
1679
1679
|
}
|
|
1680
1680
|
};
|
|
1681
|
-
},
|
|
1682
|
-
async function
|
|
1681
|
+
}, wr = /* @__PURE__ */ new Set(["left", "top"]);
|
|
1682
|
+
async function yr(s, e) {
|
|
1683
1683
|
const {
|
|
1684
1684
|
placement: t,
|
|
1685
1685
|
platform: o,
|
|
1686
1686
|
elements: i
|
|
1687
|
-
} = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Oe(t), a =
|
|
1687
|
+
} = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Oe(t), a = je(t), l = re(t) === "y", c = wr.has(n) ? -1 : 1, d = r && l ? -1 : 1, u = We(e, s);
|
|
1688
1688
|
let {
|
|
1689
1689
|
mainAxis: f,
|
|
1690
1690
|
crossAxis: m,
|
|
@@ -1706,7 +1706,7 @@ async function vr(s, e) {
|
|
|
1706
1706
|
y: m * d
|
|
1707
1707
|
};
|
|
1708
1708
|
}
|
|
1709
|
-
const
|
|
1709
|
+
const xr = function(s) {
|
|
1710
1710
|
return s === void 0 && (s = 0), {
|
|
1711
1711
|
name: "offset",
|
|
1712
1712
|
options: s,
|
|
@@ -1717,7 +1717,7 @@ const wr = function(s) {
|
|
|
1717
1717
|
y: r,
|
|
1718
1718
|
placement: n,
|
|
1719
1719
|
middlewareData: a
|
|
1720
|
-
} = e, l = await
|
|
1720
|
+
} = e, l = await yr(e, s);
|
|
1721
1721
|
return n === ((t = a.offset) == null ? void 0 : t.placement) && (o = a.arrow) != null && o.alignmentOffset ? {} : {
|
|
1722
1722
|
x: i + l.x,
|
|
1723
1723
|
y: r + l.y,
|
|
@@ -1728,7 +1728,7 @@ const wr = function(s) {
|
|
|
1728
1728
|
};
|
|
1729
1729
|
}
|
|
1730
1730
|
};
|
|
1731
|
-
},
|
|
1731
|
+
}, _r = function(s) {
|
|
1732
1732
|
return s === void 0 && (s = {}), {
|
|
1733
1733
|
name: "shift",
|
|
1734
1734
|
options: s,
|
|
@@ -1754,17 +1754,17 @@ const wr = function(s) {
|
|
|
1754
1754
|
}
|
|
1755
1755
|
},
|
|
1756
1756
|
...c
|
|
1757
|
-
} =
|
|
1757
|
+
} = We(s, e), d = {
|
|
1758
1758
|
x: t,
|
|
1759
1759
|
y: o
|
|
1760
|
-
}, u = await r.detectOverflow(e, c), f = re(i), m =
|
|
1761
|
-
let g = d[m],
|
|
1762
|
-
const
|
|
1763
|
-
n && (g =
|
|
1760
|
+
}, u = await r.detectOverflow(e, c), f = re(i), m = vo(f);
|
|
1761
|
+
let g = d[m], y = d[f];
|
|
1762
|
+
const x = (_, C) => bo(C + u[_ === "y" ? "top" : "left"], C, C - u[_ === "y" ? "bottom" : "right"]);
|
|
1763
|
+
n && (g = x(m, g)), a && (y = x(f, y));
|
|
1764
1764
|
const v = l.fn({
|
|
1765
1765
|
...e,
|
|
1766
1766
|
[m]: g,
|
|
1767
|
-
[f]:
|
|
1767
|
+
[f]: y
|
|
1768
1768
|
});
|
|
1769
1769
|
return {
|
|
1770
1770
|
...v,
|
|
@@ -1779,7 +1779,7 @@ const wr = function(s) {
|
|
|
1779
1779
|
};
|
|
1780
1780
|
}
|
|
1781
1781
|
};
|
|
1782
|
-
},
|
|
1782
|
+
}, kr = function(s) {
|
|
1783
1783
|
return s === void 0 && (s = {}), {
|
|
1784
1784
|
name: "size",
|
|
1785
1785
|
options: s,
|
|
@@ -1793,15 +1793,15 @@ const wr = function(s) {
|
|
|
1793
1793
|
apply: n = () => {
|
|
1794
1794
|
},
|
|
1795
1795
|
...a
|
|
1796
|
-
} =
|
|
1796
|
+
} = We(s, e), l = await i.detectOverflow(e, a), c = Oe(t), d = je(t), u = re(t) === "y", {
|
|
1797
1797
|
width: f,
|
|
1798
1798
|
height: m
|
|
1799
1799
|
} = o.floating;
|
|
1800
|
-
let g,
|
|
1801
|
-
c === "top" || c === "bottom" ? (g = c,
|
|
1802
|
-
const
|
|
1800
|
+
let g, y;
|
|
1801
|
+
c === "top" || c === "bottom" ? (g = c, y = d === (await (i.isRTL == null ? void 0 : i.isRTL(r.floating)) ? "start" : "end") ? "left" : "right") : (y = c, g = d === "end" ? "top" : "bottom");
|
|
1802
|
+
const x = m - l.top - l.bottom, v = f - l.left - l.right, _ = be(m - l[g], x), C = be(f - l[y], v), E = e.middlewareData.shift, z = !E;
|
|
1803
1803
|
let D = _, W = C;
|
|
1804
|
-
E != null && E.enabled.x && (W = v), E != null && E.enabled.y && (D =
|
|
1804
|
+
E != null && E.enabled.x && (W = v), E != null && E.enabled.y && (D = x), z && !d && (u ? W = f - 2 * ne(l.left, l.right) : D = m - 2 * ne(l.top, l.bottom)), await n({
|
|
1805
1805
|
...e,
|
|
1806
1806
|
availableWidth: W,
|
|
1807
1807
|
availableHeight: D
|
|
@@ -1815,11 +1815,11 @@ const wr = function(s) {
|
|
|
1815
1815
|
}
|
|
1816
1816
|
};
|
|
1817
1817
|
};
|
|
1818
|
-
function
|
|
1818
|
+
function Bt() {
|
|
1819
1819
|
return typeof window < "u";
|
|
1820
1820
|
}
|
|
1821
|
-
function
|
|
1822
|
-
return
|
|
1821
|
+
function Ue(s) {
|
|
1822
|
+
return yo(s) ? (s.nodeName || "").toLowerCase() : "#document";
|
|
1823
1823
|
}
|
|
1824
1824
|
function G(s) {
|
|
1825
1825
|
var e;
|
|
@@ -1827,21 +1827,21 @@ function G(s) {
|
|
|
1827
1827
|
}
|
|
1828
1828
|
function le(s) {
|
|
1829
1829
|
var e;
|
|
1830
|
-
return (e = (
|
|
1830
|
+
return (e = (yo(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
|
|
1831
1831
|
}
|
|
1832
|
-
function
|
|
1833
|
-
return
|
|
1832
|
+
function yo(s) {
|
|
1833
|
+
return Bt() ? s instanceof Node || s instanceof G(s).Node : !1;
|
|
1834
1834
|
}
|
|
1835
1835
|
function ee(s) {
|
|
1836
|
-
return
|
|
1836
|
+
return Bt() ? s instanceof Element || s instanceof G(s).Element : !1;
|
|
1837
1837
|
}
|
|
1838
1838
|
function ve(s) {
|
|
1839
|
-
return
|
|
1839
|
+
return Bt() ? s instanceof HTMLElement || s instanceof G(s).HTMLElement : !1;
|
|
1840
1840
|
}
|
|
1841
|
-
function
|
|
1842
|
-
return !
|
|
1841
|
+
function Bs(s) {
|
|
1842
|
+
return !Bt() || typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof G(s).ShadowRoot;
|
|
1843
1843
|
}
|
|
1844
|
-
function
|
|
1844
|
+
function Ht(s) {
|
|
1845
1845
|
const {
|
|
1846
1846
|
overflow: e,
|
|
1847
1847
|
overflowX: t,
|
|
@@ -1850,10 +1850,10 @@ function Rt(s) {
|
|
|
1850
1850
|
} = te(s);
|
|
1851
1851
|
return /auto|scroll|overlay|hidden|clip/.test(e + o + t) && i !== "inline" && i !== "contents";
|
|
1852
1852
|
}
|
|
1853
|
-
function
|
|
1854
|
-
return /^(table|td|th)$/.test(
|
|
1853
|
+
function Cr(s) {
|
|
1854
|
+
return /^(table|td|th)$/.test(Ue(s));
|
|
1855
1855
|
}
|
|
1856
|
-
function
|
|
1856
|
+
function Ft(s) {
|
|
1857
1857
|
try {
|
|
1858
1858
|
if (s.matches(":popover-open"))
|
|
1859
1859
|
return !0;
|
|
@@ -1865,33 +1865,33 @@ function Bt(s) {
|
|
|
1865
1865
|
return !1;
|
|
1866
1866
|
}
|
|
1867
1867
|
}
|
|
1868
|
-
const
|
|
1869
|
-
let
|
|
1870
|
-
function
|
|
1868
|
+
const Sr = /transform|translate|scale|rotate|perspective|filter/, Tr = /paint|layout|strict|content/, ye = (s) => !!s && s !== "none";
|
|
1869
|
+
let qt;
|
|
1870
|
+
function ys(s) {
|
|
1871
1871
|
const e = ee(s) ? te(s) : s;
|
|
1872
|
-
return ye(e.transform) || ye(e.translate) || ye(e.scale) || ye(e.rotate) || ye(e.perspective) || !
|
|
1872
|
+
return ye(e.transform) || ye(e.translate) || ye(e.scale) || ye(e.rotate) || ye(e.perspective) || !xs() && (ye(e.backdropFilter) || ye(e.filter)) || Sr.test(e.willChange || "") || Tr.test(e.contain || "");
|
|
1873
1873
|
}
|
|
1874
|
-
function
|
|
1874
|
+
function Ir(s) {
|
|
1875
1875
|
let e = Me(s);
|
|
1876
|
-
for (; ve(e) && !
|
|
1877
|
-
if (
|
|
1876
|
+
for (; ve(e) && !nt(e); ) {
|
|
1877
|
+
if (ys(e))
|
|
1878
1878
|
return e;
|
|
1879
|
-
if (
|
|
1879
|
+
if (Ft(e))
|
|
1880
1880
|
return null;
|
|
1881
1881
|
e = Me(e);
|
|
1882
1882
|
}
|
|
1883
1883
|
return null;
|
|
1884
1884
|
}
|
|
1885
|
-
function
|
|
1886
|
-
return
|
|
1885
|
+
function xs() {
|
|
1886
|
+
return qt == null && (qt = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), qt;
|
|
1887
1887
|
}
|
|
1888
|
-
function
|
|
1889
|
-
return /^(html|body|#document)$/.test(
|
|
1888
|
+
function nt(s) {
|
|
1889
|
+
return /^(html|body|#document)$/.test(Ue(s));
|
|
1890
1890
|
}
|
|
1891
1891
|
function te(s) {
|
|
1892
1892
|
return G(s).getComputedStyle(s);
|
|
1893
1893
|
}
|
|
1894
|
-
function
|
|
1894
|
+
function Kt(s) {
|
|
1895
1895
|
return ee(s) ? {
|
|
1896
1896
|
scrollLeft: s.scrollLeft,
|
|
1897
1897
|
scrollTop: s.scrollTop
|
|
@@ -1901,114 +1901,114 @@ function Ht(s) {
|
|
|
1901
1901
|
};
|
|
1902
1902
|
}
|
|
1903
1903
|
function Me(s) {
|
|
1904
|
-
if (
|
|
1904
|
+
if (Ue(s) === "html")
|
|
1905
1905
|
return s;
|
|
1906
1906
|
const e = (
|
|
1907
1907
|
// Step into the shadow DOM of the parent of a slotted node.
|
|
1908
1908
|
s.assignedSlot || // DOM Element detected.
|
|
1909
1909
|
s.parentNode || // ShadowRoot detected.
|
|
1910
|
-
|
|
1910
|
+
Bs(s) && s.host || // Fallback.
|
|
1911
1911
|
le(s)
|
|
1912
1912
|
);
|
|
1913
|
-
return
|
|
1913
|
+
return Bs(e) ? e.host : e;
|
|
1914
1914
|
}
|
|
1915
|
-
function
|
|
1915
|
+
function xo(s) {
|
|
1916
1916
|
const e = Me(s);
|
|
1917
|
-
return
|
|
1917
|
+
return nt(e) ? (s.ownerDocument || s).body : ve(e) && Ht(e) ? e : xo(e);
|
|
1918
1918
|
}
|
|
1919
|
-
function
|
|
1919
|
+
function at(s, e, t) {
|
|
1920
1920
|
var o;
|
|
1921
1921
|
e === void 0 && (e = []), t === void 0 && (t = !0);
|
|
1922
|
-
const i =
|
|
1922
|
+
const i = xo(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = G(i);
|
|
1923
1923
|
if (r) {
|
|
1924
|
-
const a =
|
|
1925
|
-
return e.concat(n, n.visualViewport || [],
|
|
1924
|
+
const a = os(n);
|
|
1925
|
+
return e.concat(n, n.visualViewport || [], Ht(i) ? i : [], a && t ? at(a) : []);
|
|
1926
1926
|
} else
|
|
1927
|
-
return e.concat(i,
|
|
1927
|
+
return e.concat(i, at(i, [], t));
|
|
1928
1928
|
}
|
|
1929
|
-
function
|
|
1929
|
+
function os(s) {
|
|
1930
1930
|
return s.parent && Object.getPrototypeOf(s.parent) ? s.frameElement : null;
|
|
1931
1931
|
}
|
|
1932
|
-
function
|
|
1932
|
+
function _o(s) {
|
|
1933
1933
|
const e = te(s);
|
|
1934
1934
|
let t = parseFloat(e.width) || 0, o = parseFloat(e.height) || 0;
|
|
1935
|
-
const i = ve(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a =
|
|
1935
|
+
const i = ve(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a = Nt(t) !== r || Nt(o) !== n;
|
|
1936
1936
|
return a && (t = r, o = n), {
|
|
1937
1937
|
width: t,
|
|
1938
1938
|
height: o,
|
|
1939
1939
|
$: a
|
|
1940
1940
|
};
|
|
1941
1941
|
}
|
|
1942
|
-
function
|
|
1942
|
+
function _s(s) {
|
|
1943
1943
|
return ee(s) ? s : s.contextElement;
|
|
1944
1944
|
}
|
|
1945
1945
|
function Ae(s) {
|
|
1946
|
-
const e =
|
|
1946
|
+
const e = _s(s);
|
|
1947
1947
|
if (!ve(e))
|
|
1948
1948
|
return ae(1);
|
|
1949
1949
|
const t = e.getBoundingClientRect(), {
|
|
1950
1950
|
width: o,
|
|
1951
1951
|
height: i,
|
|
1952
1952
|
$: r
|
|
1953
|
-
} =
|
|
1954
|
-
let n = (r ?
|
|
1953
|
+
} = _o(e);
|
|
1954
|
+
let n = (r ? Nt(t.width) : t.width) / o, a = (r ? Nt(t.height) : t.height) / i;
|
|
1955
1955
|
return (!n || !Number.isFinite(n)) && (n = 1), (!a || !Number.isFinite(a)) && (a = 1), {
|
|
1956
1956
|
x: n,
|
|
1957
1957
|
y: a
|
|
1958
1958
|
};
|
|
1959
1959
|
}
|
|
1960
|
-
const
|
|
1961
|
-
function
|
|
1960
|
+
const Pr = /* @__PURE__ */ ae(0);
|
|
1961
|
+
function ko(s) {
|
|
1962
1962
|
const e = G(s);
|
|
1963
|
-
return !
|
|
1963
|
+
return !xs() || !e.visualViewport ? Pr : {
|
|
1964
1964
|
x: e.visualViewport.offsetLeft,
|
|
1965
1965
|
y: e.visualViewport.offsetTop
|
|
1966
1966
|
};
|
|
1967
1967
|
}
|
|
1968
|
-
function
|
|
1968
|
+
function Or(s, e, t) {
|
|
1969
1969
|
return e === void 0 && (e = !1), !!t && e && t === G(s);
|
|
1970
1970
|
}
|
|
1971
1971
|
function Le(s, e, t, o) {
|
|
1972
1972
|
e === void 0 && (e = !1), t === void 0 && (t = !1);
|
|
1973
|
-
const i = s.getBoundingClientRect(), r =
|
|
1973
|
+
const i = s.getBoundingClientRect(), r = _s(s);
|
|
1974
1974
|
let n = ae(1);
|
|
1975
1975
|
e && (o ? ee(o) && (n = Ae(o)) : n = Ae(s));
|
|
1976
|
-
const a =
|
|
1976
|
+
const a = Or(r, t, o) ? ko(r) : ae(0);
|
|
1977
1977
|
let l = (i.left + a.x) / n.x, c = (i.top + a.y) / n.y, d = i.width / n.x, u = i.height / n.y;
|
|
1978
1978
|
if (r && o) {
|
|
1979
1979
|
const f = G(r), m = ee(o) ? G(o) : o;
|
|
1980
|
-
let g = f,
|
|
1981
|
-
for (;
|
|
1982
|
-
const
|
|
1983
|
-
l *=
|
|
1980
|
+
let g = f, y = os(g);
|
|
1981
|
+
for (; y && m !== g; ) {
|
|
1982
|
+
const x = Ae(y), v = y.getBoundingClientRect(), _ = te(y), C = v.left + (y.clientLeft + parseFloat(_.paddingLeft)) * x.x, E = v.top + (y.clientTop + parseFloat(_.paddingTop)) * x.y;
|
|
1983
|
+
l *= x.x, c *= x.y, d *= x.x, u *= x.y, l += C, c += E, g = G(y), y = os(g);
|
|
1984
1984
|
}
|
|
1985
1985
|
}
|
|
1986
|
-
return
|
|
1986
|
+
return Vt({
|
|
1987
1987
|
width: d,
|
|
1988
1988
|
height: u,
|
|
1989
1989
|
x: l,
|
|
1990
1990
|
y: c
|
|
1991
1991
|
});
|
|
1992
1992
|
}
|
|
1993
|
-
function
|
|
1994
|
-
const t =
|
|
1993
|
+
function Wt(s, e) {
|
|
1994
|
+
const t = Kt(s).scrollLeft;
|
|
1995
1995
|
return e ? e.left + t : Le(le(s)).left + t;
|
|
1996
1996
|
}
|
|
1997
|
-
function
|
|
1998
|
-
const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft -
|
|
1997
|
+
function Co(s, e) {
|
|
1998
|
+
const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft - Wt(s, t), i = t.top + e.scrollTop;
|
|
1999
1999
|
return {
|
|
2000
2000
|
x: o,
|
|
2001
2001
|
y: i
|
|
2002
2002
|
};
|
|
2003
2003
|
}
|
|
2004
|
-
function
|
|
2004
|
+
function Mr(s) {
|
|
2005
2005
|
let {
|
|
2006
2006
|
elements: e,
|
|
2007
2007
|
rect: t,
|
|
2008
2008
|
offsetParent: o,
|
|
2009
2009
|
strategy: i
|
|
2010
2010
|
} = s;
|
|
2011
|
-
const r = i === "fixed", n = le(o), a = e ?
|
|
2011
|
+
const r = i === "fixed", n = le(o), a = e ? Ft(e.floating) : !1;
|
|
2012
2012
|
if (o === n || a && r)
|
|
2013
2013
|
return t;
|
|
2014
2014
|
let l = {
|
|
@@ -2016,11 +2016,11 @@ function Pr(s) {
|
|
|
2016
2016
|
scrollTop: 0
|
|
2017
2017
|
}, c = ae(1);
|
|
2018
2018
|
const d = ae(0), u = ve(o);
|
|
2019
|
-
if ((u || !r) && ((
|
|
2019
|
+
if ((u || !r) && ((Ue(o) !== "body" || Ht(n)) && (l = Kt(o)), u)) {
|
|
2020
2020
|
const m = Le(o);
|
|
2021
2021
|
c = Ae(o), d.x = m.x + o.clientLeft, d.y = m.y + o.clientTop;
|
|
2022
2022
|
}
|
|
2023
|
-
const f = n && !u && !r ?
|
|
2023
|
+
const f = n && !u && !r ? Co(n, l) : ae(0);
|
|
2024
2024
|
return {
|
|
2025
2025
|
width: t.width * c.x,
|
|
2026
2026
|
height: t.height * c.y,
|
|
@@ -2028,12 +2028,12 @@ function Pr(s) {
|
|
|
2028
2028
|
y: t.y * c.y - l.scrollTop * c.y + d.y + f.y
|
|
2029
2029
|
};
|
|
2030
2030
|
}
|
|
2031
|
-
function
|
|
2031
|
+
function Lr(s) {
|
|
2032
2032
|
return s.getClientRects ? Array.from(s.getClientRects()) : [];
|
|
2033
2033
|
}
|
|
2034
|
-
function
|
|
2035
|
-
const e =
|
|
2036
|
-
let r = -e.scrollLeft +
|
|
2034
|
+
function Er(s) {
|
|
2035
|
+
const e = Kt(s), t = s.ownerDocument.body, o = ne(s.scrollWidth, s.clientWidth, t.scrollWidth, t.clientWidth), i = ne(s.scrollHeight, s.clientHeight, t.scrollHeight, t.clientHeight);
|
|
2036
|
+
let r = -e.scrollLeft + Wt(s);
|
|
2037
2037
|
const n = -e.scrollTop;
|
|
2038
2038
|
return te(t).direction === "rtl" && (r += ne(s.clientWidth, t.clientWidth) - o), {
|
|
2039
2039
|
width: o,
|
|
@@ -2042,18 +2042,18 @@ function Mr(s) {
|
|
|
2042
2042
|
y: n
|
|
2043
2043
|
};
|
|
2044
2044
|
}
|
|
2045
|
-
const
|
|
2046
|
-
function
|
|
2045
|
+
const Ar = 25;
|
|
2046
|
+
function zr(s, e, t) {
|
|
2047
2047
|
t === void 0 && (t = "viewport");
|
|
2048
2048
|
const o = t === "layoutViewport", i = G(s), r = le(s), n = i.visualViewport;
|
|
2049
2049
|
let a = r.clientWidth, l = r.clientHeight, c = 0, d = 0;
|
|
2050
2050
|
if (n) {
|
|
2051
|
-
const f = !
|
|
2051
|
+
const f = !xs() || e === "fixed";
|
|
2052
2052
|
o ? f || (c = -n.offsetLeft, d = -n.offsetTop) : (a = n.width, l = n.height, f && (c = n.offsetLeft, d = n.offsetTop));
|
|
2053
2053
|
}
|
|
2054
|
-
if (
|
|
2055
|
-
const f = r.ownerDocument, m = f.body, g = getComputedStyle(m),
|
|
2056
|
-
v <=
|
|
2054
|
+
if (Wt(r) <= 0) {
|
|
2055
|
+
const f = r.ownerDocument, m = f.body, g = getComputedStyle(m), y = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, x = Math.abs(r.clientWidth - m.clientWidth - y), v = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? x / 2 : x;
|
|
2056
|
+
v <= Ar && (a -= v);
|
|
2057
2057
|
}
|
|
2058
2058
|
return {
|
|
2059
2059
|
width: a,
|
|
@@ -2062,7 +2062,7 @@ function Er(s, e, t) {
|
|
|
2062
2062
|
y: d
|
|
2063
2063
|
};
|
|
2064
2064
|
}
|
|
2065
|
-
function
|
|
2065
|
+
function Nr(s, e) {
|
|
2066
2066
|
const t = Le(s, !0, e === "fixed"), o = t.top + s.clientTop, i = t.left + s.clientLeft, r = Ae(s), n = s.clientWidth * r.x, a = s.clientHeight * r.y, l = i * r.x, c = o * r.y;
|
|
2067
2067
|
return {
|
|
2068
2068
|
width: n,
|
|
@@ -2071,16 +2071,16 @@ function Ar(s, e) {
|
|
|
2071
2071
|
y: c
|
|
2072
2072
|
};
|
|
2073
2073
|
}
|
|
2074
|
-
function
|
|
2074
|
+
function Hs(s, e, t) {
|
|
2075
2075
|
let o;
|
|
2076
2076
|
if (e === "viewport" || e === "layoutViewport")
|
|
2077
|
-
o =
|
|
2077
|
+
o = zr(s, t, e);
|
|
2078
2078
|
else if (e === "document")
|
|
2079
|
-
o =
|
|
2079
|
+
o = Er(le(s));
|
|
2080
2080
|
else if (ee(e))
|
|
2081
|
-
o =
|
|
2081
|
+
o = Nr(e, t);
|
|
2082
2082
|
else {
|
|
2083
|
-
const i =
|
|
2083
|
+
const i = ko(s);
|
|
2084
2084
|
o = {
|
|
2085
2085
|
x: e.x - i.x,
|
|
2086
2086
|
y: e.y - i.y,
|
|
@@ -2088,32 +2088,32 @@ function Rs(s, e, t) {
|
|
|
2088
2088
|
height: e.height
|
|
2089
2089
|
};
|
|
2090
2090
|
}
|
|
2091
|
-
return
|
|
2091
|
+
return Vt(o);
|
|
2092
2092
|
}
|
|
2093
|
-
function
|
|
2093
|
+
function $r(s, e) {
|
|
2094
2094
|
const t = e.get(s);
|
|
2095
2095
|
if (t)
|
|
2096
2096
|
return t;
|
|
2097
|
-
let o =
|
|
2097
|
+
let o = at(s, [], !1).filter((a) => ee(a) && Ue(a) !== "body"), i = null;
|
|
2098
2098
|
const r = te(s).position === "fixed";
|
|
2099
2099
|
let n = r ? Me(s) : s;
|
|
2100
|
-
for (; ee(n) && !
|
|
2101
|
-
const a = te(n), l =
|
|
2100
|
+
for (; ee(n) && !nt(n); ) {
|
|
2101
|
+
const a = te(n), l = ys(n), c = i ? i.position : r ? "fixed" : "";
|
|
2102
2102
|
!l && (c === "fixed" || c === "absolute" && a.position === "static") ? o = o.filter((u) => u !== n) : i = a, n = Me(n);
|
|
2103
2103
|
}
|
|
2104
2104
|
return e.set(s, o), o;
|
|
2105
2105
|
}
|
|
2106
|
-
function
|
|
2106
|
+
function Vr(s) {
|
|
2107
2107
|
let {
|
|
2108
2108
|
element: e,
|
|
2109
2109
|
boundary: t,
|
|
2110
2110
|
rootBoundary: o,
|
|
2111
2111
|
strategy: i
|
|
2112
2112
|
} = s;
|
|
2113
|
-
const n = [...t === "clippingAncestors" ?
|
|
2113
|
+
const n = [...t === "clippingAncestors" ? Ft(e) ? [] : $r(e, this._c) : [].concat(t), o], a = Hs(e, n[0], i);
|
|
2114
2114
|
let l = a.top, c = a.right, d = a.bottom, u = a.left;
|
|
2115
2115
|
for (let f = 1; f < n.length; f++) {
|
|
2116
|
-
const m =
|
|
2116
|
+
const m = Hs(e, n[f], i);
|
|
2117
2117
|
l = ne(m.top, l), c = be(m.right, c), d = be(m.bottom, d), u = ne(m.left, u);
|
|
2118
2118
|
}
|
|
2119
2119
|
return {
|
|
@@ -2123,29 +2123,29 @@ function Nr(s) {
|
|
|
2123
2123
|
y: l
|
|
2124
2124
|
};
|
|
2125
2125
|
}
|
|
2126
|
-
function
|
|
2126
|
+
function Dr(s) {
|
|
2127
2127
|
const {
|
|
2128
2128
|
width: e,
|
|
2129
2129
|
height: t
|
|
2130
|
-
} =
|
|
2130
|
+
} = _o(s);
|
|
2131
2131
|
return {
|
|
2132
2132
|
width: e,
|
|
2133
2133
|
height: t
|
|
2134
2134
|
};
|
|
2135
2135
|
}
|
|
2136
|
-
function
|
|
2136
|
+
function Rr(s, e, t) {
|
|
2137
2137
|
const o = ve(e), i = le(e), r = t === "fixed", n = Le(s, !0, r, e);
|
|
2138
2138
|
let a = {
|
|
2139
2139
|
scrollLeft: 0,
|
|
2140
2140
|
scrollTop: 0
|
|
2141
2141
|
};
|
|
2142
2142
|
const l = ae(0);
|
|
2143
|
-
if ((o || !r) && ((
|
|
2143
|
+
if ((o || !r) && ((Ue(e) !== "body" || Ht(i)) && (a = Kt(e)), o)) {
|
|
2144
2144
|
const f = Le(e, !0, r, e);
|
|
2145
2145
|
l.x = f.x + e.clientLeft, l.y = f.y + e.clientTop;
|
|
2146
2146
|
}
|
|
2147
|
-
!o && i && (l.x =
|
|
2148
|
-
const c = i && !o && !r ?
|
|
2147
|
+
!o && i && (l.x = Wt(i));
|
|
2148
|
+
const c = i && !o && !r ? Co(i, a) : ae(0), d = n.left + a.scrollLeft - l.x - c.x, u = n.top + a.scrollTop - l.y - c.y;
|
|
2149
2149
|
return {
|
|
2150
2150
|
x: d,
|
|
2151
2151
|
y: u,
|
|
@@ -2153,10 +2153,10 @@ function Vr(s, e, t) {
|
|
|
2153
2153
|
height: n.height
|
|
2154
2154
|
};
|
|
2155
2155
|
}
|
|
2156
|
-
function
|
|
2156
|
+
function Xt(s) {
|
|
2157
2157
|
return te(s).position === "static";
|
|
2158
2158
|
}
|
|
2159
|
-
function
|
|
2159
|
+
function Fs(s, e) {
|
|
2160
2160
|
if (!ve(s) || te(s).position === "fixed")
|
|
2161
2161
|
return null;
|
|
2162
2162
|
if (e)
|
|
@@ -2164,28 +2164,28 @@ function Bs(s, e) {
|
|
|
2164
2164
|
let t = s.offsetParent;
|
|
2165
2165
|
return le(s) === t && (t = t.ownerDocument.body), t;
|
|
2166
2166
|
}
|
|
2167
|
-
function
|
|
2167
|
+
function So(s, e) {
|
|
2168
2168
|
const t = G(s);
|
|
2169
|
-
if (
|
|
2169
|
+
if (Ft(s))
|
|
2170
2170
|
return t;
|
|
2171
2171
|
if (!ve(s)) {
|
|
2172
2172
|
let i = Me(s);
|
|
2173
|
-
for (; i && !
|
|
2174
|
-
if (ee(i) && !
|
|
2173
|
+
for (; i && !nt(i); ) {
|
|
2174
|
+
if (ee(i) && !Xt(i))
|
|
2175
2175
|
return i;
|
|
2176
2176
|
i = Me(i);
|
|
2177
2177
|
}
|
|
2178
2178
|
return t;
|
|
2179
2179
|
}
|
|
2180
|
-
let o =
|
|
2181
|
-
for (; o &&
|
|
2182
|
-
o =
|
|
2183
|
-
return o &&
|
|
2180
|
+
let o = Fs(s, e);
|
|
2181
|
+
for (; o && Cr(o) && Xt(o); )
|
|
2182
|
+
o = Fs(o, e);
|
|
2183
|
+
return o && nt(o) && Xt(o) && !ys(o) ? t : o || Ir(s) || t;
|
|
2184
2184
|
}
|
|
2185
|
-
const
|
|
2186
|
-
const e = this.getOffsetParent ||
|
|
2185
|
+
const Br = async function(s) {
|
|
2186
|
+
const e = this.getOffsetParent || So, t = this.getDimensions, o = await t(s.floating);
|
|
2187
2187
|
return {
|
|
2188
|
-
reference:
|
|
2188
|
+
reference: Rr(s.reference, await e(s.floating), s.strategy),
|
|
2189
2189
|
floating: {
|
|
2190
2190
|
x: 0,
|
|
2191
2191
|
y: 0,
|
|
@@ -2194,25 +2194,25 @@ const Dr = async function(s) {
|
|
|
2194
2194
|
}
|
|
2195
2195
|
};
|
|
2196
2196
|
};
|
|
2197
|
-
function
|
|
2197
|
+
function Hr(s) {
|
|
2198
2198
|
return te(s).direction === "rtl";
|
|
2199
2199
|
}
|
|
2200
|
-
const
|
|
2201
|
-
convertOffsetParentRelativeRectToViewportRelativeRect:
|
|
2200
|
+
const To = {
|
|
2201
|
+
convertOffsetParentRelativeRectToViewportRelativeRect: Mr,
|
|
2202
2202
|
getDocumentElement: le,
|
|
2203
|
-
getClippingRect:
|
|
2204
|
-
getOffsetParent:
|
|
2205
|
-
getElementRects:
|
|
2206
|
-
getClientRects:
|
|
2207
|
-
getDimensions:
|
|
2203
|
+
getClippingRect: Vr,
|
|
2204
|
+
getOffsetParent: So,
|
|
2205
|
+
getElementRects: Br,
|
|
2206
|
+
getClientRects: Lr,
|
|
2207
|
+
getDimensions: Dr,
|
|
2208
2208
|
getScale: Ae,
|
|
2209
2209
|
isElement: ee,
|
|
2210
|
-
isRTL:
|
|
2210
|
+
isRTL: Hr
|
|
2211
2211
|
};
|
|
2212
|
-
function
|
|
2212
|
+
function Io(s, e) {
|
|
2213
2213
|
return s.x === e.x && s.y === e.y && s.width === e.width && s.height === e.height;
|
|
2214
2214
|
}
|
|
2215
|
-
function
|
|
2215
|
+
function Fr(s, e, t) {
|
|
2216
2216
|
let o = null, i;
|
|
2217
2217
|
const r = le(s);
|
|
2218
2218
|
function n() {
|
|
@@ -2224,19 +2224,19 @@ function Br(s, e, t) {
|
|
|
2224
2224
|
const f = s.getBoundingClientRect(), {
|
|
2225
2225
|
left: m,
|
|
2226
2226
|
top: g,
|
|
2227
|
-
width:
|
|
2228
|
-
height:
|
|
2227
|
+
width: y,
|
|
2228
|
+
height: x
|
|
2229
2229
|
} = f;
|
|
2230
|
-
if (d || e(), !
|
|
2230
|
+
if (d || e(), !y || !x)
|
|
2231
2231
|
return;
|
|
2232
|
-
const v =
|
|
2232
|
+
const v = gt(g), _ = gt(r.clientWidth - (m + y)), C = gt(r.clientHeight - (g + x)), E = gt(m), D = {
|
|
2233
2233
|
rootMargin: -v + "px " + -_ + "px " + -C + "px " + -E + "px",
|
|
2234
2234
|
threshold: ne(0, be(1, u)) || 1
|
|
2235
2235
|
};
|
|
2236
2236
|
let W = !0;
|
|
2237
2237
|
function q(V) {
|
|
2238
2238
|
const S = V[0].intersectionRatio;
|
|
2239
|
-
if (!
|
|
2239
|
+
if (!Io(f, s.getBoundingClientRect()))
|
|
2240
2240
|
return a();
|
|
2241
2241
|
if (S !== u) {
|
|
2242
2242
|
if (!W)
|
|
@@ -2263,7 +2263,7 @@ function Br(s, e, t) {
|
|
|
2263
2263
|
l.removeEventListener("resize", c), n();
|
|
2264
2264
|
};
|
|
2265
2265
|
}
|
|
2266
|
-
function
|
|
2266
|
+
function Kr(s, e, t, o) {
|
|
2267
2267
|
o === void 0 && (o = {});
|
|
2268
2268
|
const {
|
|
2269
2269
|
ancestorScroll: i = !0,
|
|
@@ -2271,11 +2271,11 @@ function Hr(s, e, t, o) {
|
|
|
2271
2271
|
elementResize: n = typeof ResizeObserver == "function",
|
|
2272
2272
|
layoutShift: a = typeof IntersectionObserver == "function",
|
|
2273
2273
|
animationFrame: l = !1
|
|
2274
|
-
} = o, c =
|
|
2274
|
+
} = o, c = _s(s), d = i || r ? [...c ? at(c) : [], ...e ? at(e) : []] : [];
|
|
2275
2275
|
d.forEach((v) => {
|
|
2276
2276
|
i && v.addEventListener("scroll", t), r && v.addEventListener("resize", t);
|
|
2277
2277
|
});
|
|
2278
|
-
const u = c && a ?
|
|
2278
|
+
const u = c && a ? Fr(c, t, r) : null;
|
|
2279
2279
|
let f = -1, m = null;
|
|
2280
2280
|
n && (m = new ResizeObserver((v) => {
|
|
2281
2281
|
let [_] = v;
|
|
@@ -2284,11 +2284,11 @@ function Hr(s, e, t, o) {
|
|
|
2284
2284
|
(C = m) == null || C.observe(e);
|
|
2285
2285
|
})), t();
|
|
2286
2286
|
}), c && !l && m.observe(c), e && m.observe(e));
|
|
2287
|
-
let g,
|
|
2288
|
-
l &&
|
|
2289
|
-
function
|
|
2287
|
+
let g, y = l ? Le(s) : null;
|
|
2288
|
+
l && x();
|
|
2289
|
+
function x() {
|
|
2290
2290
|
const v = Le(s);
|
|
2291
|
-
|
|
2291
|
+
y && !Io(y, v) && t(), y = v, g = requestAnimationFrame(x);
|
|
2292
2292
|
}
|
|
2293
2293
|
return t(), () => {
|
|
2294
2294
|
var v;
|
|
@@ -2297,37 +2297,37 @@ function Hr(s, e, t, o) {
|
|
|
2297
2297
|
}), u == null || u(), (v = m) == null || v.disconnect(), m = null, l && cancelAnimationFrame(g);
|
|
2298
2298
|
};
|
|
2299
2299
|
}
|
|
2300
|
-
const
|
|
2300
|
+
const Wr = xr, jr = _r, Ur = vr, Yt = kr, Gr = br, qr = (s, e, t) => {
|
|
2301
2301
|
const o = /* @__PURE__ */ new Map(), i = t ?? {}, r = {
|
|
2302
|
-
...
|
|
2302
|
+
...To,
|
|
2303
2303
|
...i.platform,
|
|
2304
2304
|
_c: o
|
|
2305
2305
|
};
|
|
2306
|
-
return
|
|
2306
|
+
return gr(s, e, {
|
|
2307
2307
|
...i,
|
|
2308
2308
|
platform: r
|
|
2309
2309
|
});
|
|
2310
2310
|
};
|
|
2311
|
-
function
|
|
2311
|
+
function is(s) {
|
|
2312
2312
|
const e = s.parentNode ?? null;
|
|
2313
2313
|
return e instanceof ShadowRoot ? e.host : e;
|
|
2314
2314
|
}
|
|
2315
|
-
function
|
|
2315
|
+
function Xr(s) {
|
|
2316
2316
|
if (s.transform !== "none" || s.perspective !== "none" || s.filter !== "none")
|
|
2317
2317
|
return !0;
|
|
2318
2318
|
const e = s.backdropFilter;
|
|
2319
2319
|
return !!(e && e !== "none" || s.willChange && /\b(transform|filter|perspective)\b/.test(s.willChange));
|
|
2320
2320
|
}
|
|
2321
|
-
function
|
|
2322
|
-
let e =
|
|
2321
|
+
function rs(s) {
|
|
2322
|
+
let e = is(s);
|
|
2323
2323
|
for (; e && !(e === document.body || e === document.documentElement); ) {
|
|
2324
|
-
if (e instanceof Element &&
|
|
2324
|
+
if (e instanceof Element && Xr(getComputedStyle(e)))
|
|
2325
2325
|
return e;
|
|
2326
|
-
e =
|
|
2326
|
+
e = is(e);
|
|
2327
2327
|
}
|
|
2328
2328
|
return window;
|
|
2329
2329
|
}
|
|
2330
|
-
function
|
|
2330
|
+
function Yr(s, e, t) {
|
|
2331
2331
|
let o = s;
|
|
2332
2332
|
for (; o && !(o === document.body || o === document.documentElement); ) {
|
|
2333
2333
|
if (o instanceof Element) {
|
|
@@ -2335,11 +2335,11 @@ function qr(s, e, t) {
|
|
|
2335
2335
|
if (Math.abs(i.x - e) < 2 && Math.abs(i.y - t) < 2)
|
|
2336
2336
|
return o;
|
|
2337
2337
|
}
|
|
2338
|
-
o =
|
|
2338
|
+
o = is(o);
|
|
2339
2339
|
}
|
|
2340
2340
|
return null;
|
|
2341
2341
|
}
|
|
2342
|
-
function
|
|
2342
|
+
function Po(s) {
|
|
2343
2343
|
const e = getComputedStyle(s), t = [];
|
|
2344
2344
|
e.transform !== "none" && t.push(`transform: ${e.transform}`), e.perspective !== "none" && t.push(`perspective: ${e.perspective}`), e.filter !== "none" && t.push(`filter: ${e.filter}`);
|
|
2345
2345
|
const o = e.backdropFilter;
|
|
@@ -2347,11 +2347,11 @@ function To(s) {
|
|
|
2347
2347
|
const i = e.containerType;
|
|
2348
2348
|
return i && i !== "normal" && t.push(`container-type: ${i}`), t.join("; ");
|
|
2349
2349
|
}
|
|
2350
|
-
function
|
|
2350
|
+
function Jr(s) {
|
|
2351
2351
|
const e = s.id ? `#${s.id}` : "", t = typeof s.className == "string" && s.className ? "." + s.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : "";
|
|
2352
2352
|
return `<${s.tagName.toLowerCase()}${e}${t}>`;
|
|
2353
2353
|
}
|
|
2354
|
-
function
|
|
2354
|
+
function Qr(s) {
|
|
2355
2355
|
const e = s.tolerance ?? 1.5;
|
|
2356
2356
|
let t = 0, o = 0;
|
|
2357
2357
|
if (s.offsetParent instanceof Element) {
|
|
@@ -2361,46 +2361,46 @@ function Yr(s) {
|
|
|
2361
2361
|
const i = s.panel.getBoundingClientRect(), r = i.x - (t + s.expectedX), n = i.y - (o + s.expectedY);
|
|
2362
2362
|
if (Math.abs(r) < e && Math.abs(n) < e)
|
|
2363
2363
|
return null;
|
|
2364
|
-
const a =
|
|
2364
|
+
const a = Yr(s.reference, r, n);
|
|
2365
2365
|
return {
|
|
2366
2366
|
driftX: r,
|
|
2367
2367
|
driftY: n,
|
|
2368
2368
|
culprit: a,
|
|
2369
|
-
culpritDescription: a ?
|
|
2370
|
-
culpritCss: a ?
|
|
2369
|
+
culpritDescription: a ? Jr(a) : "an ancestor element (could not auto-identify)",
|
|
2370
|
+
culpritCss: a ? Po(a) : ""
|
|
2371
2371
|
};
|
|
2372
2372
|
}
|
|
2373
|
-
function
|
|
2373
|
+
function Zr(s, e) {
|
|
2374
2374
|
var i;
|
|
2375
2375
|
const t = (i = s.closest) == null ? void 0 : i.call(s, "[data-theme]"), o = t == null ? void 0 : t.getAttribute("data-theme");
|
|
2376
2376
|
o != null && e.setAttribute("data-theme", o);
|
|
2377
2377
|
}
|
|
2378
|
-
const
|
|
2379
|
-
function
|
|
2378
|
+
const en = { top: "bottom", right: "left", bottom: "top", left: "right" };
|
|
2379
|
+
function tn(s, e, t) {
|
|
2380
2380
|
if (!t)
|
|
2381
2381
|
return;
|
|
2382
|
-
const o = e.split("-")[0], i =
|
|
2382
|
+
const o = e.split("-")[0], i = en[o];
|
|
2383
2383
|
s.style.left = t.x != null ? `${t.x}px` : "", s.style.top = t.y != null ? `${t.y}px` : "", s.style.right = "", s.style.bottom = "", s.style[i] = `-${s.offsetWidth / 2}px`;
|
|
2384
2384
|
}
|
|
2385
|
-
function
|
|
2386
|
-
const t = [
|
|
2385
|
+
function Ks(s, e) {
|
|
2386
|
+
const t = [Wr(s.offset ?? 4)];
|
|
2387
2387
|
if (s.matchWidth) {
|
|
2388
2388
|
const i = s.matchWidth;
|
|
2389
|
-
t.push(
|
|
2389
|
+
t.push(Yt({
|
|
2390
2390
|
apply({ rects: r, elements: n }) {
|
|
2391
2391
|
const a = `${r.reference.width}px`;
|
|
2392
2392
|
i === "exact" ? n.floating.style.width = a : n.floating.style.minWidth = a;
|
|
2393
2393
|
}
|
|
2394
2394
|
}));
|
|
2395
2395
|
}
|
|
2396
|
-
e && t.push(
|
|
2396
|
+
e && t.push(Ur({
|
|
2397
2397
|
...s.lockPlacement === !0 ? { fallbackStrategy: "initialPlacement" } : {},
|
|
2398
2398
|
...s.flipPadding != null ? { padding: s.flipPadding } : {}
|
|
2399
2399
|
}));
|
|
2400
2400
|
const o = s.shift ?? 8;
|
|
2401
|
-
if (o !== !1 && t.push(
|
|
2401
|
+
if (o !== !1 && t.push(jr({ padding: o })), s.maxHeight) {
|
|
2402
2402
|
const i = typeof s.maxHeight == "object" ? s.maxHeight.padding : void 0;
|
|
2403
|
-
t.push(
|
|
2403
|
+
t.push(Yt({
|
|
2404
2404
|
padding: i,
|
|
2405
2405
|
apply({ availableHeight: r, elements: n }) {
|
|
2406
2406
|
n.floating.style.maxHeight = `${Math.max(0, r)}px`;
|
|
@@ -2409,49 +2409,49 @@ function Hs(s, e) {
|
|
|
2409
2409
|
}
|
|
2410
2410
|
if (s.maxWidth) {
|
|
2411
2411
|
const i = typeof s.maxWidth == "object" ? s.maxWidth.padding : void 0;
|
|
2412
|
-
t.push(
|
|
2412
|
+
t.push(Yt({
|
|
2413
2413
|
padding: i,
|
|
2414
2414
|
apply({ availableWidth: r, elements: n }) {
|
|
2415
2415
|
n.floating.style.maxWidth = `${Math.max(0, r)}px`;
|
|
2416
2416
|
}
|
|
2417
2417
|
}));
|
|
2418
2418
|
}
|
|
2419
|
-
return s.arrow && t.push(
|
|
2419
|
+
return s.arrow && t.push(Gr({ element: s.arrow.element, padding: s.arrow.padding })), t;
|
|
2420
2420
|
}
|
|
2421
|
-
function
|
|
2421
|
+
function st(s, e, t = {}) {
|
|
2422
2422
|
const o = t.strategy ?? "fixed";
|
|
2423
|
-
t.inheritThemeFrom &&
|
|
2424
|
-
let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n =
|
|
2423
|
+
t.inheritThemeFrom && Zr(t.inheritThemeFrom, s), s.style.position = o, s.style.left = "0", s.style.top = "0";
|
|
2424
|
+
let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n = Ks(t, r);
|
|
2425
2425
|
const a = t.lockPlacement === "freeze";
|
|
2426
2426
|
let l = !1;
|
|
2427
|
-
const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...
|
|
2427
|
+
const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...To, getOffsetParent: () => rs(s) } : void 0), u = () => {
|
|
2428
2428
|
var m;
|
|
2429
|
-
(m = t.beforeCompute) == null || m.call(t),
|
|
2429
|
+
(m = t.beforeCompute) == null || m.call(t), qr(e, s, {
|
|
2430
2430
|
placement: i,
|
|
2431
2431
|
strategy: o,
|
|
2432
2432
|
middleware: n,
|
|
2433
2433
|
...d ? { platform: d } : {}
|
|
2434
|
-
}).then(({ x: g, y
|
|
2434
|
+
}).then(({ x: g, y, placement: x, middlewareData: v }) => {
|
|
2435
2435
|
var _, C;
|
|
2436
|
-
if (s.style.left = `${g}px`, s.style.top = `${
|
|
2437
|
-
const E = c ?
|
|
2436
|
+
if (s.style.left = `${g}px`, s.style.top = `${y}px`, t.arrow && tn(t.arrow.element, x, v.arrow), a && !l && (l = !0, i = x, r = !1, n = Ks(t, !1)), (_ = t.onPlaced) == null || _.call(t, x), (C = t.onComputed) == null || C.call(t, { x: g, y, placement: x }), t.onDrift && e instanceof Element) {
|
|
2437
|
+
const E = c ? rs(s) : window, z = Qr({ panel: s, reference: e, expectedX: g, expectedY: y, offsetParent: E });
|
|
2438
2438
|
z && t.onDrift(z);
|
|
2439
2439
|
}
|
|
2440
2440
|
});
|
|
2441
2441
|
};
|
|
2442
2442
|
let f;
|
|
2443
|
-
return t.autoUpdate ?? !0 ? f =
|
|
2443
|
+
return t.autoUpdate ?? !0 ? f = Kr(e, s, u, t.autoUpdateOptions) : u(), {
|
|
2444
2444
|
update: u,
|
|
2445
2445
|
destroy() {
|
|
2446
2446
|
f == null || f(), f = void 0;
|
|
2447
2447
|
}
|
|
2448
2448
|
};
|
|
2449
2449
|
}
|
|
2450
|
-
function
|
|
2450
|
+
function sn(s) {
|
|
2451
2451
|
return typeof s == "number" ? { show: s, hide: s } : { show: (s == null ? void 0 : s.show) ?? 0, hide: (s == null ? void 0 : s.hide) ?? 0 };
|
|
2452
2452
|
}
|
|
2453
|
-
function
|
|
2454
|
-
const e = s.container ?? document.body, t = s.placement ?? "top", o = s.visibleClass ?? "is-visible", i =
|
|
2453
|
+
function on(s) {
|
|
2454
|
+
const e = s.container ?? document.body, t = s.placement ?? "top", o = s.visibleClass ?? "is-visible", i = sn(s.delay), r = document.createElement("div");
|
|
2455
2455
|
r.setAttribute("role", "tooltip"), s.cssClass && (r.className = s.cssClass), typeof s.content == "string" ? r.textContent = s.content : r.append(s.content);
|
|
2456
2456
|
let n, a = !1, l, c, d;
|
|
2457
2457
|
const u = {
|
|
@@ -2467,32 +2467,32 @@ function tn(s) {
|
|
|
2467
2467
|
return;
|
|
2468
2468
|
(C = s.onBeforeShow) == null || C.call(s), a = !0, e.append(r);
|
|
2469
2469
|
const _ = s.followCursor ? u : s.trigger;
|
|
2470
|
-
n =
|
|
2470
|
+
n = st(r, _, {
|
|
2471
2471
|
placement: t,
|
|
2472
2472
|
strategy: s.strategy,
|
|
2473
2473
|
offset: s.offset ?? 8,
|
|
2474
2474
|
inheritThemeFrom: s.inheritThemeFrom ?? s.trigger
|
|
2475
2475
|
}), s.followCursor && s.trigger.addEventListener("mousemove", f), r.classList.add(o);
|
|
2476
|
-
}, w = () => {
|
|
2477
|
-
m(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
|
|
2478
2476
|
}, y = () => {
|
|
2477
|
+
m(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
|
|
2478
|
+
}, x = () => {
|
|
2479
2479
|
m(), i.show > 0 ? l = setTimeout(g, i.show) : g();
|
|
2480
2480
|
}, v = () => {
|
|
2481
|
-
m(), i.hide > 0 ? c = setTimeout(
|
|
2481
|
+
m(), i.hide > 0 ? c = setTimeout(y, i.hide) : y();
|
|
2482
2482
|
};
|
|
2483
|
-
return s.trigger.addEventListener("mouseenter",
|
|
2483
|
+
return s.trigger.addEventListener("mouseenter", x), s.trigger.addEventListener("mouseleave", v), s.trigger.addEventListener("focusin", x), s.trigger.addEventListener("focusout", v), {
|
|
2484
2484
|
element: r,
|
|
2485
2485
|
get isVisible() {
|
|
2486
2486
|
return a;
|
|
2487
2487
|
},
|
|
2488
2488
|
show: g,
|
|
2489
|
-
hide:
|
|
2489
|
+
hide: y,
|
|
2490
2490
|
destroy() {
|
|
2491
|
-
s.trigger.removeEventListener("mouseenter",
|
|
2491
|
+
s.trigger.removeEventListener("mouseenter", x), s.trigger.removeEventListener("mouseleave", v), s.trigger.removeEventListener("focusin", x), s.trigger.removeEventListener("focusout", v), y();
|
|
2492
2492
|
}
|
|
2493
2493
|
};
|
|
2494
2494
|
}
|
|
2495
|
-
function
|
|
2495
|
+
function rn(s) {
|
|
2496
2496
|
const e = s.container ?? document.body;
|
|
2497
2497
|
let t, o = !1;
|
|
2498
2498
|
const i = s.inheritThemeFrom ?? (s.reference instanceof HTMLElement ? s.reference : void 0);
|
|
@@ -2501,7 +2501,7 @@ function sn(s) {
|
|
|
2501
2501
|
return o;
|
|
2502
2502
|
},
|
|
2503
2503
|
open() {
|
|
2504
|
-
o || (o = !0, e.append(s.panel), t =
|
|
2504
|
+
o || (o = !0, e.append(s.panel), t = st(s.panel, s.reference, {
|
|
2505
2505
|
placement: s.placement ?? "bottom-start",
|
|
2506
2506
|
strategy: s.strategy,
|
|
2507
2507
|
offset: s.offset,
|
|
@@ -2527,21 +2527,21 @@ function sn(s) {
|
|
|
2527
2527
|
}
|
|
2528
2528
|
};
|
|
2529
2529
|
}
|
|
2530
|
-
const
|
|
2531
|
-
function
|
|
2530
|
+
const Oo = ["INIT", "DATA", "UI", "INTERACTION"], ce = rr("MULTISELECT", Oo), bt = ce.loggers.INIT, K = ce.loggers.DATA, J = ce.loggers.UI, R = ce.loggers.INTERACTION, Sn = Oo.map((s) => `MULTISELECT:${s}`);
|
|
2531
|
+
function Tn() {
|
|
2532
2532
|
ce.enableLogging();
|
|
2533
2533
|
}
|
|
2534
|
-
function
|
|
2534
|
+
function In() {
|
|
2535
2535
|
ce.disableLogging();
|
|
2536
2536
|
}
|
|
2537
|
-
function
|
|
2537
|
+
function Pn(s) {
|
|
2538
2538
|
ce.setLogLevel(s);
|
|
2539
2539
|
}
|
|
2540
|
-
function
|
|
2540
|
+
function On(s, e) {
|
|
2541
2541
|
const t = s.includes(":") ? s.split(":").pop() : s;
|
|
2542
2542
|
ce.setCategoryLevel(t, e);
|
|
2543
2543
|
}
|
|
2544
|
-
class
|
|
2544
|
+
class Ws {
|
|
2545
2545
|
constructor(e) {
|
|
2546
2546
|
p(this, "container");
|
|
2547
2547
|
p(this, "wrapper");
|
|
@@ -2673,7 +2673,7 @@ class Fs {
|
|
|
2673
2673
|
this.container.removeEventListener("scroll", this.scrollHandler), this.resizeObserver && this.resizeObserver.disconnect(), this.container.innerHTML = "";
|
|
2674
2674
|
}
|
|
2675
2675
|
}
|
|
2676
|
-
function
|
|
2676
|
+
function js(s) {
|
|
2677
2677
|
return {
|
|
2678
2678
|
treeId: "",
|
|
2679
2679
|
id: -1,
|
|
@@ -2688,26 +2688,26 @@ function Ks(s) {
|
|
|
2688
2688
|
...s
|
|
2689
2689
|
};
|
|
2690
2690
|
}
|
|
2691
|
-
const
|
|
2692
|
-
function
|
|
2691
|
+
const et = (s) => !s || typeof s == "string" && s.trim() === "";
|
|
2692
|
+
function nn(s, e = ".") {
|
|
2693
2693
|
if (!s || typeof s != "string") return null;
|
|
2694
2694
|
const t = s.lastIndexOf(e);
|
|
2695
2695
|
return t === -1 ? "" : s.substring(0, t);
|
|
2696
2696
|
}
|
|
2697
|
-
function
|
|
2698
|
-
return
|
|
2697
|
+
function Us(s, e, t = ".") {
|
|
2698
|
+
return et(e) ? s : s.startsWith(e + t) ? s.substring(e.length + t.length) : s;
|
|
2699
2699
|
}
|
|
2700
|
-
function
|
|
2700
|
+
function Gs(s, e = 0, t = 1, o = ".") {
|
|
2701
2701
|
return s.split(o).slice(e, e + t).join(o);
|
|
2702
2702
|
}
|
|
2703
|
-
function
|
|
2703
|
+
function an(s, e) {
|
|
2704
2704
|
return s.split(e).length;
|
|
2705
2705
|
}
|
|
2706
2706
|
function he(s, e) {
|
|
2707
2707
|
return s[e];
|
|
2708
2708
|
}
|
|
2709
|
-
function
|
|
2710
|
-
const e = s.idMember, t = s.pathMember, o = s.getPathCallback, i = s.parentPathMember, r = s.levelMember, n = s.hasChildrenMember, a = s.isSelectableMember, l = s.getIsSelectableCallback, c = s.treeId || "multiselect-tree", d = s.orderMember, u = s.getDisplayValueCallback, f =
|
|
2709
|
+
function ln(s = {}) {
|
|
2710
|
+
const e = s.idMember, t = s.pathMember, o = s.getPathCallback, i = s.parentPathMember, r = s.levelMember, n = s.hasChildrenMember, a = s.isSelectableMember, l = s.getIsSelectableCallback, c = s.treeId || "multiselect-tree", d = s.orderMember, u = s.getDisplayValueCallback, f = et(i), m = et(r), g = et(n), y = et(a), x = "x", v = s.treePathSeparator || ".", _ = js();
|
|
2711
2711
|
let C = 0, E = null;
|
|
2712
2712
|
const z = (V) => o ? o(V) : t ? he(V, t) : void 0, D = {
|
|
2713
2713
|
treePathSeparator: v,
|
|
@@ -2722,38 +2722,38 @@ function nn(s = {}) {
|
|
|
2722
2722
|
get flatNodes() {
|
|
2723
2723
|
if (E) return E;
|
|
2724
2724
|
const V = [], S = s.isSorted ?? !1, O = s.sortCallback;
|
|
2725
|
-
function
|
|
2725
|
+
function L(B) {
|
|
2726
2726
|
let T = Object.values(B.children);
|
|
2727
2727
|
S && O && T.length > 0 && (T = O(T));
|
|
2728
2728
|
for (const F of T)
|
|
2729
|
-
V.push(F), F.hasChildren &&
|
|
2729
|
+
V.push(F), F.hasChildren && L(F);
|
|
2730
2730
|
}
|
|
2731
|
-
return
|
|
2731
|
+
return L(_), E = V, V;
|
|
2732
2732
|
},
|
|
2733
2733
|
insertArray(V) {
|
|
2734
2734
|
V = V || [], _.children = {}, C = 0, E = null;
|
|
2735
2735
|
const S = [];
|
|
2736
|
-
let O = V.map((
|
|
2737
|
-
const T =
|
|
2738
|
-
T.treeId = c, T.id = e ? he(
|
|
2739
|
-
const F = z(
|
|
2740
|
-
return F == null || F === "" || typeof F != "string" ? (S.push(`index ${B}`), null) : (T.path = F, (T.id === void 0 || T.id === -1) && (T.id = F), f ? T.parentPath =
|
|
2741
|
-
|
|
2736
|
+
let O = V.map((L, B) => {
|
|
2737
|
+
const T = js();
|
|
2738
|
+
T.treeId = c, T.id = e ? he(L, e) : void 0;
|
|
2739
|
+
const F = z(L);
|
|
2740
|
+
return F == null || F === "" || typeof F != "string" ? (S.push(`index ${B}`), null) : (T.path = F, (T.id === void 0 || T.id === -1) && (T.id = F), f ? T.parentPath = nn(T.path, v) : T.parentPath = he(L, i), T.pathSegment = Gs(
|
|
2741
|
+
Us(T.path, T.parentPath ?? "", v),
|
|
2742
2742
|
0,
|
|
2743
2743
|
1,
|
|
2744
2744
|
v
|
|
2745
|
-
), m ? T.level =
|
|
2746
|
-
}).filter((
|
|
2745
|
+
), m ? T.level = an(T.path, v) : T.level = he(L, r), g || (T.hasChildren = he(L, n)), T.data = L, T);
|
|
2746
|
+
}).filter((L) => L !== null);
|
|
2747
2747
|
s.isSorted || (s.sortCallback ? O = s.sortCallback(O) : O = q(O));
|
|
2748
|
-
for (const
|
|
2749
|
-
W(
|
|
2750
|
-
if (l || !
|
|
2751
|
-
for (const
|
|
2748
|
+
for (const L of O)
|
|
2749
|
+
W(L.parentPath ?? "", L);
|
|
2750
|
+
if (l || !y)
|
|
2751
|
+
for (const L of O)
|
|
2752
2752
|
if (l)
|
|
2753
|
-
|
|
2753
|
+
L.isSelectable = l(L) !== !1;
|
|
2754
2754
|
else {
|
|
2755
|
-
const B = he(
|
|
2756
|
-
|
|
2755
|
+
const B = he(L.data, a);
|
|
2756
|
+
L.isSelectable = B == null ? !0 : !!B;
|
|
2757
2757
|
}
|
|
2758
2758
|
S.length > 0 && console.warn(
|
|
2759
2759
|
`[ltree ${c}] ${S.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${S.slice(0, 5).join(", ")}` + (S.length > 5 ? ", …" : "")
|
|
@@ -2762,9 +2762,9 @@ function nn(s = {}) {
|
|
|
2762
2762
|
getNodeByPath(V, S) {
|
|
2763
2763
|
let O = S || _;
|
|
2764
2764
|
if (V) {
|
|
2765
|
-
const
|
|
2766
|
-
for (let B = 0; B <
|
|
2767
|
-
const T =
|
|
2765
|
+
const L = V.split(v);
|
|
2766
|
+
for (let B = 0; B < L.length; B++) {
|
|
2767
|
+
const T = x + L[B];
|
|
2768
2768
|
if (!O.children.hasOwnProperty(T))
|
|
2769
2769
|
return null;
|
|
2770
2770
|
O = O.children[T];
|
|
@@ -2778,13 +2778,13 @@ function nn(s = {}) {
|
|
|
2778
2778
|
if (!O)
|
|
2779
2779
|
return `Node: ${S.path} - Could not find parent node: ${V}`;
|
|
2780
2780
|
m && (S.level = (O.level || 0) + 1);
|
|
2781
|
-
const
|
|
2782
|
-
return O.children.hasOwnProperty(
|
|
2781
|
+
const L = x + Gs(Us(S.path, V, v), 0, 1, v);
|
|
2782
|
+
return O.children.hasOwnProperty(L) || (O.children[L] = S, g && !O.hasChildren && (O.hasChildren = !0), C = Math.max(C, S.level || 0)), null;
|
|
2783
2783
|
}
|
|
2784
2784
|
function q(V) {
|
|
2785
2785
|
return V.sort((S, O) => {
|
|
2786
|
-
const
|
|
2787
|
-
if (
|
|
2786
|
+
const L = S.level || 0, B = O.level || 0;
|
|
2787
|
+
if (L !== B) return L - B;
|
|
2788
2788
|
if (S.parentPath !== O.parentPath)
|
|
2789
2789
|
return S.parentPath ? O.parentPath ? S.parentPath.localeCompare(O.parentPath) : 1 : -1;
|
|
2790
2790
|
if (d && S.data && O.data) {
|
|
@@ -2796,7 +2796,7 @@ function nn(s = {}) {
|
|
|
2796
2796
|
}
|
|
2797
2797
|
return D;
|
|
2798
2798
|
}
|
|
2799
|
-
function
|
|
2799
|
+
function qs(s, e) {
|
|
2800
2800
|
const t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), n = (l) => {
|
|
2801
2801
|
t.set(r(l), l);
|
|
2802
2802
|
const c = [];
|
|
@@ -2808,14 +2808,14 @@ function Us(s, e) {
|
|
|
2808
2808
|
for (const l of a) n(l);
|
|
2809
2809
|
return { nodeByValue: t, atomsUnder: o, atomPaths: i, roots: a };
|
|
2810
2810
|
}
|
|
2811
|
-
function
|
|
2811
|
+
function ks(s, e, t) {
|
|
2812
2812
|
const o = s.atomsUnder.get(e.path);
|
|
2813
2813
|
if (!o || o.length === 0) return "unchecked";
|
|
2814
2814
|
let i = 0;
|
|
2815
2815
|
for (const r of o) t.has(r) && i++;
|
|
2816
2816
|
return i === 0 ? "unchecked" : i === o.length ? "checked" : "indeterminate";
|
|
2817
2817
|
}
|
|
2818
|
-
function
|
|
2818
|
+
function Je(s, e) {
|
|
2819
2819
|
const t = /* @__PURE__ */ new Set();
|
|
2820
2820
|
for (const o of e) {
|
|
2821
2821
|
const i = s.nodeByValue.get(String(o));
|
|
@@ -2824,17 +2824,17 @@ function Ye(s, e) {
|
|
|
2824
2824
|
}
|
|
2825
2825
|
return t;
|
|
2826
2826
|
}
|
|
2827
|
-
function
|
|
2828
|
-
const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r =
|
|
2827
|
+
function cn(s, e, t) {
|
|
2828
|
+
const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r = ks(s, e, t), n = [], a = [];
|
|
2829
2829
|
if (r === "checked")
|
|
2830
2830
|
for (const l of o) i.delete(l) && a.push(l);
|
|
2831
2831
|
else
|
|
2832
2832
|
for (const l of o) i.has(l) || (i.add(l), n.push(l));
|
|
2833
2833
|
return { checkedAtoms: i, addedAtoms: n, removedAtoms: a };
|
|
2834
2834
|
}
|
|
2835
|
-
function
|
|
2835
|
+
function Jt(s, e, t, o) {
|
|
2836
2836
|
const i = (a) => String(o(a.data)), r = [], n = (a) => {
|
|
2837
|
-
const l =
|
|
2837
|
+
const l = ks(s, a, e);
|
|
2838
2838
|
if (l === "unchecked") return;
|
|
2839
2839
|
const c = a.isSelectable !== !1, d = Object.values(a.children);
|
|
2840
2840
|
if (t === "leaves") {
|
|
@@ -2857,7 +2857,7 @@ function Xt(s, e, t, o) {
|
|
|
2857
2857
|
return r;
|
|
2858
2858
|
}
|
|
2859
2859
|
var $;
|
|
2860
|
-
class
|
|
2860
|
+
class dn {
|
|
2861
2861
|
constructor(e, t = {}) {
|
|
2862
2862
|
p(this, "element");
|
|
2863
2863
|
p(this, "instanceId");
|
|
@@ -2865,7 +2865,7 @@ class ln {
|
|
|
2865
2865
|
// Backing field for the open state. Read/written internally via `this.#isOpen`
|
|
2866
2866
|
// so the public `isOpen` accessor (get/set) can drive open()/close() without
|
|
2867
2867
|
// recursing. See the imperative API at the bottom of the class.
|
|
2868
|
-
|
|
2868
|
+
M(this, $, !1);
|
|
2869
2869
|
p(this, "selectedValues", /* @__PURE__ */ new Set());
|
|
2870
2870
|
p(this, "selectedOptions", /* @__PURE__ */ new Map());
|
|
2871
2871
|
p(this, "allOptions", []);
|
|
@@ -2899,11 +2899,16 @@ class ln {
|
|
|
2899
2899
|
p(this, "isRTL", !1);
|
|
2900
2900
|
p(this, "effectiveBadgesPosition", "bottom");
|
|
2901
2901
|
p(this, "justClosedViaClick", !1);
|
|
2902
|
-
// Set for one tick when the dropdown is opened by a pointer gesture
|
|
2903
|
-
//
|
|
2904
|
-
//
|
|
2905
|
-
//
|
|
2906
|
-
// that
|
|
2902
|
+
// Set for one tick when the dropdown is opened by a pointer gesture, or when a
|
|
2903
|
+
// consumer drives the already-open panel from their own click handler (a repeat
|
|
2904
|
+
// open()/toggle(), or a scrollTo* command). A fullscreen overlay (position:fixed,
|
|
2905
|
+
// inset:0) appears over the pointer between mousedown and the follow-up click, so
|
|
2906
|
+
// that click can target a common ancestor above the portaled panel and be misread
|
|
2907
|
+
// as an outside-click; and an EXTERNAL control clicked to re-drive the open panel
|
|
2908
|
+
// sends its click bubbling to our document-level outside-click listener, which
|
|
2909
|
+
// would otherwise close the very panel the command just re-scrolled. This guard
|
|
2910
|
+
// swallows exactly that one click. See armClickGuard(), attachEvents() (mousedown)
|
|
2911
|
+
// and handleClickOutside().
|
|
2907
2912
|
p(this, "justOpenedViaClick", !1);
|
|
2908
2913
|
p(this, "positioningDriftWarned", !1);
|
|
2909
2914
|
// Fullscreen counterpart of positioningDriftWarned: warn once per instance when an
|
|
@@ -3183,7 +3188,7 @@ class ln {
|
|
|
3183
3188
|
return i ? i.isSelectable !== !1 : !0;
|
|
3184
3189
|
}
|
|
3185
3190
|
init() {
|
|
3186
|
-
this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(),
|
|
3191
|
+
this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(), bt.debug(`Initialized [${this.instanceId}] with options:`, {
|
|
3187
3192
|
placeholder: this.options.searchPlaceholder,
|
|
3188
3193
|
totalOptions: this.allOptions.length,
|
|
3189
3194
|
isCloseOnSelect: this.options.isCloseOnSelect,
|
|
@@ -3210,7 +3215,7 @@ class ln {
|
|
|
3210
3215
|
}
|
|
3211
3216
|
/** (Re)build the ltree from `allOptions` and derive the visible flat list. */
|
|
3212
3217
|
buildTree() {
|
|
3213
|
-
this.tree =
|
|
3218
|
+
this.tree = ln({
|
|
3214
3219
|
idMember: this.options.valueMember,
|
|
3215
3220
|
pathMember: this.options.pathMember,
|
|
3216
3221
|
getPathCallback: this.options.getPathCallback,
|
|
@@ -3222,7 +3227,7 @@ class ln {
|
|
|
3222
3227
|
treePathSeparator: this.options.treePathSeparator,
|
|
3223
3228
|
treeId: this.instanceId,
|
|
3224
3229
|
getDisplayValueCallback: (e) => this.getItemDisplayValue(e.data)
|
|
3225
|
-
}), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ?
|
|
3230
|
+
}), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? qs(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
|
|
3226
3231
|
}
|
|
3227
3232
|
/**
|
|
3228
3233
|
* Whether cascade checkbox mode is active: a multi-select tree with
|
|
@@ -3237,7 +3242,7 @@ class ln {
|
|
|
3237
3242
|
}
|
|
3238
3243
|
/** Refresh the derived checked-atom set from the emitted `selectedValues`. */
|
|
3239
3244
|
refreshCascadeAtoms() {
|
|
3240
|
-
this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms =
|
|
3245
|
+
this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms = Je(this.cascadeIndex, this.selectedValues));
|
|
3241
3246
|
}
|
|
3242
3247
|
/**
|
|
3243
3248
|
* Toggle a tree node in cascade mode: flip its whole subtree, re-project the
|
|
@@ -3245,7 +3250,7 @@ class ln {
|
|
|
3245
3250
|
* so badges / form / change events reflect the policy (rolled-up branches, etc.).
|
|
3246
3251
|
*/
|
|
3247
3252
|
toggleTreeCascade(e) {
|
|
3248
|
-
const t = this.cascadeIndex, o =
|
|
3253
|
+
const t = this.cascadeIndex, o = Je(t, this.selectedValues), { checkedAtoms: i } = cn(t, e, o);
|
|
3249
3254
|
this.commitCascadeAtoms(i);
|
|
3250
3255
|
}
|
|
3251
3256
|
/**
|
|
@@ -3256,7 +3261,7 @@ class ln {
|
|
|
3256
3261
|
*/
|
|
3257
3262
|
commitCascadeAtoms(e) {
|
|
3258
3263
|
var l;
|
|
3259
|
-
const t = this.cascadeIndex, o =
|
|
3264
|
+
const t = this.cascadeIndex, o = Jt(
|
|
3260
3265
|
t,
|
|
3261
3266
|
e,
|
|
3262
3267
|
this.cascadePolicy(),
|
|
@@ -3281,7 +3286,7 @@ class ln {
|
|
|
3281
3286
|
*/
|
|
3282
3287
|
counterSelection() {
|
|
3283
3288
|
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
3284
|
-
const e =
|
|
3289
|
+
const e = Jt(
|
|
3285
3290
|
this.cascadeIndex,
|
|
3286
3291
|
this.cascadeCheckedAtoms,
|
|
3287
3292
|
"rolled-up",
|
|
@@ -3391,7 +3396,7 @@ class ln {
|
|
|
3391
3396
|
*/
|
|
3392
3397
|
detectRTL() {
|
|
3393
3398
|
const e = this.element.getRootNode(), t = e instanceof ShadowRoot ? e.host : this.element, o = t.getAttribute("dir") === "rtl", i = t.closest('[dir="rtl"]') !== null;
|
|
3394
|
-
this.isRTL = o || i,
|
|
3399
|
+
this.isRTL = o || i, bt.debug(`[${this.instanceId}] RTL Debug:`, {
|
|
3395
3400
|
isShadowRoot: e instanceof ShadowRoot,
|
|
3396
3401
|
elementDir: t.getAttribute("dir"),
|
|
3397
3402
|
hasElementDir: o,
|
|
@@ -3417,7 +3422,7 @@ class ln {
|
|
|
3417
3422
|
}
|
|
3418
3423
|
buildHTML() {
|
|
3419
3424
|
const e = this.options.container || document.body;
|
|
3420
|
-
this.detectRTL(), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"),
|
|
3425
|
+
this.detectRTL(), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"), bt.debug(`[${this.instanceId}] Added ms--rtl class to element`)), (!this.options.isCheckboxesShown || !this.options.isMultipleEnabled) && this.element.classList.add("ms--no-checkboxes"), this.options.isSelectedPopoverEnabled || this.element.classList.add("ms--no-selected-popover");
|
|
3421
3426
|
const t = document.createElement("div");
|
|
3422
3427
|
t.className = "ms__input-wrapper", this.inputWrapper = t, 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");
|
|
3423
3428
|
const o = document.createElement("span");
|
|
@@ -3555,7 +3560,7 @@ class ln {
|
|
|
3555
3560
|
}
|
|
3556
3561
|
const e = this.scaledOptionHeight(), t = this.options.virtualScrollBuffer ?? 10;
|
|
3557
3562
|
requestAnimationFrame(() => {
|
|
3558
|
-
this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new
|
|
3563
|
+
this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new Ws({
|
|
3559
3564
|
container: this.optionsContainer,
|
|
3560
3565
|
itemHeight: e,
|
|
3561
3566
|
items: this.filteredOptions,
|
|
@@ -3589,13 +3594,13 @@ class ln {
|
|
|
3589
3594
|
if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
|
|
3590
3595
|
let m;
|
|
3591
3596
|
d.getIsDisabledCallback ? m = d.getIsDisabledCallback(this) : d.isDisabled !== void 0 ? m = d.isDisabled : m = this.getBuiltInActionDisabled(d.action);
|
|
3592
|
-
const g = m ? " disabled" : "",
|
|
3593
|
-
let
|
|
3597
|
+
const g = m ? " disabled" : "", y = d.getTextCallback ? d.getTextCallback(this) : d.text;
|
|
3598
|
+
let x = "";
|
|
3594
3599
|
if (d.getClassCallback) {
|
|
3595
3600
|
const C = this.classSuffix(d.getClassCallback(this));
|
|
3596
|
-
C && (
|
|
3597
|
-
} else d.cssClass && (
|
|
3598
|
-
const v = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${g} class="ms__action-btn${
|
|
3601
|
+
C && (x = ` ${C}`);
|
|
3602
|
+
} else d.cssClass && (x = ` ${d.cssClass}`);
|
|
3603
|
+
const v = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${g} class="ms__action-btn${x}" data-action="${d.action}" data-button-index="${u}">${y}</button>`;
|
|
3599
3604
|
l.has(v) || l.set(v, []), l.get(v).push(_);
|
|
3600
3605
|
}), l.size === 0) return "";
|
|
3601
3606
|
const c = Array.from(l.keys()).sort((d, u) => d - u).map((d) => `<div class="ms__actions-row" data-row="${d}">${l.get(d).join("")}</div>`).join("");
|
|
@@ -3613,7 +3618,7 @@ class ln {
|
|
|
3613
3618
|
isFocused: c,
|
|
3614
3619
|
isMatched: d,
|
|
3615
3620
|
isDisabled: a,
|
|
3616
|
-
...
|
|
3621
|
+
...Gt(this.presentationMode),
|
|
3617
3622
|
isTreeNode: !1
|
|
3618
3623
|
};
|
|
3619
3624
|
m += this.toHtml(this.options.renderOptionContentCallback(e, g));
|
|
@@ -3640,28 +3645,28 @@ class ln {
|
|
|
3640
3645
|
* chevron/toggle — every node is just a normal, selectable option.
|
|
3641
3646
|
*/
|
|
3642
3647
|
renderTreeNode(e, t) {
|
|
3643
|
-
const o = e.data, i = this.getItemValue(o), r = this.getItemDisplayValue(o), n = this.getItemIcon(o), a = this.getItemSubtitle(o), l = this.getItemDisabled(o), c = this.isCascadeMode() && this.cascadeIndex, d = c ?
|
|
3644
|
-
_.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), u && _.push("ms__option--selected"), f && _.push("ms__option--indeterminate"), m && _.push("ms__option--focused"), g && _.push("ms__option--matched"), l && _.push("ms__option--disabled"),
|
|
3645
|
-
const C = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", E =
|
|
3646
|
-
let z = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${
|
|
3647
|
-
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled &&
|
|
3648
|
+
const o = e.data, i = this.getItemValue(o), r = this.getItemDisplayValue(o), n = this.getItemIcon(o), a = this.getItemSubtitle(o), l = this.getItemDisabled(o), c = this.isCascadeMode() && this.cascadeIndex, d = c ? ks(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, u = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", m = t === this.focusedIndex, g = this.matchingIndices.has(t), y = e.isSelectable !== !1, x = e.level ?? 1, v = Math.max(0, x - 1), _ = ["ms__option", "ms__option--tree"];
|
|
3649
|
+
_.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), u && _.push("ms__option--selected"), f && _.push("ms__option--indeterminate"), m && _.push("ms__option--focused"), g && _.push("ms__option--matched"), l && _.push("ms__option--disabled"), y || _.push("ms__option--tree-unselectable");
|
|
3650
|
+
const C = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", E = y ? "" : ' data-selectable="false"';
|
|
3651
|
+
let z = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${x}" style="--ms-tree-depth: ${v};"${C}${E}>`;
|
|
3652
|
+
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && y && (z += `<input type="checkbox" class="${f ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${u ? "checked" : ""}${f ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), z += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
|
|
3648
3653
|
const D = {
|
|
3649
3654
|
index: t,
|
|
3650
3655
|
isSelected: u,
|
|
3651
3656
|
isFocused: m,
|
|
3652
3657
|
isMatched: g,
|
|
3653
3658
|
isDisabled: l,
|
|
3654
|
-
...
|
|
3659
|
+
...Gt(this.presentationMode),
|
|
3655
3660
|
// Tree metadata — lets the callback branch on depth / branch-vs-leaf /
|
|
3656
3661
|
// tristate without re-deriving any of it from the raw data item.
|
|
3657
3662
|
isTreeNode: !0,
|
|
3658
3663
|
isBranch: e.hasChildren,
|
|
3659
3664
|
isLeaf: !e.hasChildren,
|
|
3660
3665
|
childCount: Object.keys(e.children).length,
|
|
3661
|
-
level:
|
|
3666
|
+
level: x,
|
|
3662
3667
|
depth: v,
|
|
3663
3668
|
path: e.path,
|
|
3664
|
-
isSelectable:
|
|
3669
|
+
isSelectable: y,
|
|
3665
3670
|
isIndeterminate: f
|
|
3666
3671
|
};
|
|
3667
3672
|
z += this.toHtml(this.options.renderOptionContentCallback(o, D));
|
|
@@ -3818,7 +3823,7 @@ class ln {
|
|
|
3818
3823
|
this.options.isSearchEnabled && !h(this, $) && this.open(), this.handleSearch(t);
|
|
3819
3824
|
}), this.input.addEventListener("keydown", (e) => this.handleKeydown(e)), this.documentClickHandler = (e) => this.handleClickOutside(e), setTimeout(() => {
|
|
3820
3825
|
document.addEventListener("click", this.documentClickHandler);
|
|
3821
|
-
}, 0), this.overlayCoord =
|
|
3826
|
+
}, 0), this.overlayCoord = qi(() => this.close(), this.options.overlayGroup || void 0), this.documentKeydownHandler = (e) => {
|
|
3822
3827
|
e.key === "Escape" && this.showSelectedPopover && (e.preventDefault(), this.hideSelectedPopover());
|
|
3823
3828
|
}, document.addEventListener("keydown", this.documentKeydownHandler), this.dropdown.addEventListener("mousedown", (e) => {
|
|
3824
3829
|
if (this.presentationMode !== "fullscreen") return;
|
|
@@ -4217,7 +4222,7 @@ class ln {
|
|
|
4217
4222
|
*/
|
|
4218
4223
|
scrollToIndex(e, t) {
|
|
4219
4224
|
const o = (t == null ? void 0 : t.block) ?? "start";
|
|
4220
|
-
return h(this, $) ? e < 0 || e >= this.filteredOptions.length ? (R.debug(`[${this.instanceId}] scrollToIndex(${e}) → false (out of range, ${this.filteredOptions.length} options)`), !1) : (R.debug(`[${this.instanceId}] scrollToIndex(${e}, block=${o}) — virtual=${!!this.virtualScroll}, mode=${this.presentationMode}`), this.scrollToRenderedIndex(e, { block: o }), !0) : (R.debug(`[${this.instanceId}] scrollToIndex(${e}) → false (closed)`), !1);
|
|
4225
|
+
return h(this, $) ? e < 0 || e >= this.filteredOptions.length ? (R.debug(`[${this.instanceId}] scrollToIndex(${e}) → false (out of range, ${this.filteredOptions.length} options)`), !1) : (R.debug(`[${this.instanceId}] scrollToIndex(${e}, block=${o}) — virtual=${!!this.virtualScroll}, mode=${this.presentationMode}`), this.armClickGuard(), this.scrollToRenderedIndex(e, { block: o }), !0) : (R.debug(`[${this.instanceId}] scrollToIndex(${e}) → false (closed)`), !1);
|
|
4221
4226
|
}
|
|
4222
4227
|
/**
|
|
4223
4228
|
* Scroll to the option whose value matches `value` (resolved within the current
|
|
@@ -4239,7 +4244,7 @@ class ln {
|
|
|
4239
4244
|
const o = (t == null ? void 0 : t.block) ?? "start";
|
|
4240
4245
|
if (!h(this, $) || this.isTreeMode())
|
|
4241
4246
|
return R.debug(`[${this.instanceId}] scrollToGroup(${e}) → false (${this.isTreeMode() ? "tree mode" : "closed"})`), !1;
|
|
4242
|
-
if (!this.virtualScroll) {
|
|
4247
|
+
if (this.armClickGuard(), !this.virtualScroll) {
|
|
4243
4248
|
const r = this.dropdown.querySelector(
|
|
4244
4249
|
`.ms__group-label[data-group="${CSS.escape(e)}"]`
|
|
4245
4250
|
);
|
|
@@ -4286,7 +4291,12 @@ class ln {
|
|
|
4286
4291
|
return;
|
|
4287
4292
|
}
|
|
4288
4293
|
}
|
|
4289
|
-
|
|
4294
|
+
const i = this.selectedValues.has(o);
|
|
4295
|
+
if (i && !this.options.isMultipleEnabled) {
|
|
4296
|
+
this.close();
|
|
4297
|
+
return;
|
|
4298
|
+
}
|
|
4299
|
+
(i ? this.interactiveDeselect(e) : this.interactiveSelect(e)) && (this.options.isMultipleEnabled ? this.options.isCloseOnSelect && this.close() : this.close());
|
|
4290
4300
|
}
|
|
4291
4301
|
/**
|
|
4292
4302
|
* The single funnel for an interactive (user-initiated) selection. Consults
|
|
@@ -4352,7 +4362,7 @@ class ln {
|
|
|
4352
4362
|
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
4353
4363
|
const i = this.cascadeIndex.nodeByValue.get(o);
|
|
4354
4364
|
if (i) {
|
|
4355
|
-
const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(
|
|
4365
|
+
const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(Je(this.cascadeIndex, this.selectedValues));
|
|
4356
4366
|
for (const a of r) n.delete(a);
|
|
4357
4367
|
this.commitCascadeAtoms(n);
|
|
4358
4368
|
return;
|
|
@@ -4362,7 +4372,7 @@ class ln {
|
|
|
4362
4372
|
}
|
|
4363
4373
|
selectAll() {
|
|
4364
4374
|
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
4365
|
-
const t = this.cascadeIndex, o = new Set(
|
|
4375
|
+
const t = this.cascadeIndex, o = new Set(Je(t, this.selectedValues));
|
|
4366
4376
|
for (const i of this.treeNodes)
|
|
4367
4377
|
t.atomPaths.has(i.path) && (this.getItemDisabled(i.data) || o.add(String(this.getItemValue(i.data))));
|
|
4368
4378
|
this.commitCascadeAtoms(o);
|
|
@@ -4409,17 +4419,31 @@ class ln {
|
|
|
4409
4419
|
const t = e.added ?? [], o = e.removed ?? [];
|
|
4410
4420
|
this.options.onSelect && t.forEach((i) => this.options.onSelect(i)), this.options.onDeselect && o.forEach((i) => this.options.onDeselect(i)), (t.length > 0 || o.length > 0) && this.options.onChange && this.options.onChange(this.getSelected());
|
|
4411
4421
|
}
|
|
4422
|
+
/**
|
|
4423
|
+
* Shield the trailing document `click` for one tick. A consumer that drives the
|
|
4424
|
+
* dropdown from their OWN button's click handler (`el.open()` / `el.toggle()`, or a
|
|
4425
|
+
* scrollTo* command re-driving the already-open panel) would otherwise have that
|
|
4426
|
+
* same click bubble to our document-level outside-click listener and immediately
|
|
4427
|
+
* close it. Centralizing it here means every entry point — open(), the internal
|
|
4428
|
+
* pointer path, and the public scrollTo* API — is covered. Cleared next tick, so a
|
|
4429
|
+
* genuine later outside-click still closes as normal. Harmless for non-click
|
|
4430
|
+
* callers (typing, programmatic-on-load, server-driven): no trailing click arrives
|
|
4431
|
+
* before it clears.
|
|
4432
|
+
*/
|
|
4433
|
+
armClickGuard() {
|
|
4434
|
+
this.justOpenedViaClick = !0, setTimeout(() => {
|
|
4435
|
+
this.justOpenedViaClick = !1;
|
|
4436
|
+
}, 0);
|
|
4437
|
+
}
|
|
4412
4438
|
/** Open the dropdown (no-op if already open, or if there is nothing to show). */
|
|
4413
4439
|
open() {
|
|
4414
4440
|
var e;
|
|
4415
|
-
J.debug(`[${this.instanceId}] open() called`, { isOpen: h(this, $) }), !h(this, $) && (this.
|
|
4416
|
-
this.justOpenedViaClick = !1;
|
|
4417
|
-
}, 0), this.hideMessage(), P(this, $, !0), this.element.classList.add("ms--open"), this.dropdown.classList.add("ms__dropdown--visible"), J.info(`[${this.instanceId}] Dropdown opened`), this.input.placeholder = this.getPlaceholderText(), !this.options.isMultipleEnabled && this.options.isSearchEnabled && (this.input.value = this.searchTerm), this.options.searchCallback && this.options.isKeepOptionsOnSearch && !this.searchTerm && (this.filteredOptions = [...this.allOptions], J.debug(`[${this.instanceId}] Showing ${this.allOptions.length} initial options on open`)), this.presentationMode === "fullscreen" && this.enterFullscreen(), this.renderDropdown(), this.presentationMode !== "fullscreen" && this.positionDropdown(), this.dropdown.addEventListener("scroll", this.onDropdownScroll, !0), this.hint && this.presentationMode === "floating" && (this.hint.classList.add("ms__hint--visible"), this.positionHint()), (e = this.overlayCoord) == null || e.activate());
|
|
4441
|
+
J.debug(`[${this.instanceId}] open() called`, { isOpen: h(this, $) }), this.armClickGuard(), !h(this, $) && (this.hideMessage(), I(this, $, !0), this.element.classList.add("ms--open"), this.dropdown.classList.add("ms__dropdown--visible"), J.info(`[${this.instanceId}] Dropdown opened`), this.input.placeholder = this.getPlaceholderText(), !this.options.isMultipleEnabled && this.options.isSearchEnabled && (this.input.value = this.searchTerm), this.options.searchCallback && this.options.isKeepOptionsOnSearch && !this.searchTerm && (this.filteredOptions = [...this.allOptions], J.debug(`[${this.instanceId}] Showing ${this.allOptions.length} initial options on open`)), this.presentationMode === "fullscreen" && this.enterFullscreen(), this.renderDropdown(), this.presentationMode !== "fullscreen" && this.positionDropdown(), this.dropdown.addEventListener("scroll", this.onDropdownScroll, !0), this.hint && this.presentationMode === "floating" && (this.hint.classList.add("ms__hint--visible"), this.positionHint()), (e = this.overlayCoord) == null || e.activate());
|
|
4418
4442
|
}
|
|
4419
4443
|
/** Close the dropdown (no-op if already closed). */
|
|
4420
4444
|
close() {
|
|
4421
4445
|
var e;
|
|
4422
|
-
J.debug(`[${this.instanceId}] close() called`, { isOpen: h(this, $) }), h(this, $) && (
|
|
4446
|
+
J.debug(`[${this.instanceId}] close() called`, { isOpen: h(this, $) }), h(this, $) && (I(this, $, !1), this.element.classList.remove("ms--open"), this.dropdown.classList.remove("ms__dropdown--visible"), this.hint && this.hint.classList.remove("ms__hint--visible"), this.options.shouldKeepSearchOnClose || (this.searchTerm = "", (this.options.isMultipleEnabled || this.options.isSearchEnabled) && (this.input.value = ""), this.resetVisibleToAll()), this.focusedIndex = -1, this.dropdown.removeEventListener("scroll", this.onDropdownScroll, !0), this.destroyAllOptionTooltips(), this.hideLabelReveal(), this.hideMessage(), this.renderBadges(), this.dropdownCleanup && (this.dropdownCleanup(), this.dropdownCleanup = null), this.hintCleanup && (this.hintCleanup(), this.hintCleanup = null), this.exitFullscreen(), this.dropdownPlacement = null, (e = this.overlayCoord) == null || e.deactivate(), J.debug(`[${this.instanceId}] Dropdown closed`));
|
|
4423
4447
|
}
|
|
4424
4448
|
/** Toggle the dropdown open/closed. */
|
|
4425
4449
|
toggle() {
|
|
@@ -4441,7 +4465,7 @@ class ln {
|
|
|
4441
4465
|
*/
|
|
4442
4466
|
anchorFloatingPanel(e, t) {
|
|
4443
4467
|
var r;
|
|
4444
|
-
const o = ((r = t.isLocked) == null ? void 0 : r.call(t)) ?? !0, i =
|
|
4468
|
+
const o = ((r = t.isLocked) == null ? void 0 : r.call(t)) ?? !0, i = st(e, this.inputWrapper, {
|
|
4445
4469
|
strategy: "fixed",
|
|
4446
4470
|
placement: "bottom-start",
|
|
4447
4471
|
offset: 4,
|
|
@@ -4511,10 +4535,10 @@ class ln {
|
|
|
4511
4535
|
*/
|
|
4512
4536
|
warnFullscreenContainingBlock() {
|
|
4513
4537
|
if (this.fullscreenContainingBlockWarned || typeof window > "u") return;
|
|
4514
|
-
const e =
|
|
4538
|
+
const e = rs(this.dropdown);
|
|
4515
4539
|
if (e === window) return;
|
|
4516
4540
|
this.fullscreenContainingBlockWarned = !0;
|
|
4517
|
-
const t = e, o = t.id ? `#${t.id}` : "", i = t.classList.length ? `.${Array.from(t.classList).join(".")}` : "", r = `<${t.tagName.toLowerCase()}${o}${i}>`, n =
|
|
4541
|
+
const t = e, o = t.id ? `#${t.id}` : "", i = t.classList.length ? `.${Array.from(t.classList).join(".")}` : "", r = `<${t.tagName.toLowerCase()}${o}${i}>`, n = Po(t);
|
|
4518
4542
|
console.warn(
|
|
4519
4543
|
`[@keenmate/web-multiselect] Fullscreen overlay is anchored to an ancestor ${r}` + (n ? ` (has ${n})` : "") + ` instead of the viewport, so it may not cover the screen (offset, clipped, or mis-sized).
|
|
4520
4544
|
An ancestor of <web-multiselect> establishes a fixed-positioning containing block (transform / perspective / filter / backdrop-filter / will-change). Fix on your side: move the component out of that ancestor's subtree, OR remove/replace that property. If neither is acceptable, please file an issue at https://github.com/keenmate/web-multiselect/issues with the ancestor's computed CSS.`
|
|
@@ -4552,7 +4576,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4552
4576
|
* and a redundant call is a no-op rather than acquiring a second.
|
|
4553
4577
|
*/
|
|
4554
4578
|
lockBodyScroll() {
|
|
4555
|
-
this.bodyScrollUnlock || (this.bodyScrollUnlock =
|
|
4579
|
+
this.bodyScrollUnlock || (this.bodyScrollUnlock = Hi());
|
|
4556
4580
|
}
|
|
4557
4581
|
/** Restore page scroll (no-op if it wasn't locked). */
|
|
4558
4582
|
unlockBodyScroll() {
|
|
@@ -4591,7 +4615,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4591
4615
|
* we just hold the returned cleanup. No-op where `visualViewport` is unavailable.
|
|
4592
4616
|
*/
|
|
4593
4617
|
observeKeyboardInset() {
|
|
4594
|
-
this.keyboardInsetCleanup =
|
|
4618
|
+
this.keyboardInsetCleanup = Fi(this.dropdown);
|
|
4595
4619
|
}
|
|
4596
4620
|
/** Detach keyboard-inset tracking and restore the panel's CSS-driven geometry. */
|
|
4597
4621
|
unobserveKeyboardInset() {
|
|
@@ -4797,7 +4821,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4797
4821
|
this.hintCleanup && this.hintCleanup();
|
|
4798
4822
|
let e = "top-start";
|
|
4799
4823
|
this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom")));
|
|
4800
|
-
const t =
|
|
4824
|
+
const t = st(this.hint, this.inputWrapper, {
|
|
4801
4825
|
strategy: "fixed",
|
|
4802
4826
|
placement: e,
|
|
4803
4827
|
offset: 4,
|
|
@@ -4883,7 +4907,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4883
4907
|
if (!this.selectedPopoverContainer) return;
|
|
4884
4908
|
const o = this.scaledBadgeHeight(), i = Math.round(4 * this.fullscreenScale()), r = o + i, n = this.options.virtualScrollBuffer ?? 10;
|
|
4885
4909
|
requestAnimationFrame(() => {
|
|
4886
|
-
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new
|
|
4910
|
+
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Ws({
|
|
4887
4911
|
container: this.selectedPopoverContainer,
|
|
4888
4912
|
itemHeight: r,
|
|
4889
4913
|
items: e,
|
|
@@ -4925,7 +4949,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4925
4949
|
renderBadgeHTML(e, t) {
|
|
4926
4950
|
const o = this.getItemValue(e), i = {
|
|
4927
4951
|
...t,
|
|
4928
|
-
...
|
|
4952
|
+
...Gt(this.presentationMode)
|
|
4929
4953
|
};
|
|
4930
4954
|
if (!t.isInPopover && this.options.renderBadgeCallback) {
|
|
4931
4955
|
const d = this.toHtml(this.options.renderBadgeCallback(e, i));
|
|
@@ -5035,9 +5059,9 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
5035
5059
|
if (t !== o) return !1;
|
|
5036
5060
|
Object.assign(this.options, e);
|
|
5037
5061
|
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;
|
|
5038
|
-
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() ?
|
|
5039
|
-
this.cascadeCheckedAtoms =
|
|
5040
|
-
const a =
|
|
5062
|
+
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() ? qs(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
|
|
5063
|
+
this.cascadeCheckedAtoms = Je(this.cascadeIndex, this.selectedValues);
|
|
5064
|
+
const a = Jt(
|
|
5041
5065
|
this.cascadeIndex,
|
|
5042
5066
|
this.cascadeCheckedAtoms,
|
|
5043
5067
|
this.cascadePolicy(),
|
|
@@ -5096,7 +5120,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
5096
5120
|
spawnTooltip(e) {
|
|
5097
5121
|
var r;
|
|
5098
5122
|
(r = this.tooltips.get(e.id)) == null || r.destroy();
|
|
5099
|
-
const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i =
|
|
5123
|
+
const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i = on({
|
|
5100
5124
|
trigger: e.trigger,
|
|
5101
5125
|
container: this.options.container ?? o ?? document.body,
|
|
5102
5126
|
content: e.content,
|
|
@@ -5243,7 +5267,7 @@ ${o}` : t;
|
|
|
5243
5267
|
const n = document.createElement("div");
|
|
5244
5268
|
n.className = "ms__option-tooltip ms__option-tooltip--fullscreen", typeof r == "string" ? n.textContent = r : n.appendChild(r);
|
|
5245
5269
|
const a = this.element.getRootNode(), l = a instanceof ShadowRoot ? a : null, c = this.options.container ?? l ?? document.body;
|
|
5246
|
-
this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover =
|
|
5270
|
+
this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover = rn({
|
|
5247
5271
|
reference: e,
|
|
5248
5272
|
panel: n,
|
|
5249
5273
|
container: c,
|
|
@@ -5278,7 +5302,7 @@ ${o}` : t;
|
|
|
5278
5302
|
if ((this.options.container ?? l ?? document.body).appendChild(n), this.messageEl = n, this.presentationMode === "fullscreen" && (h(this, $) || this.showSelectedPopover))
|
|
5279
5303
|
n.classList.add("ms__message--fullscreen");
|
|
5280
5304
|
else {
|
|
5281
|
-
const u =
|
|
5305
|
+
const u = st(n, this.inputWrapper, {
|
|
5282
5306
|
strategy: "fixed",
|
|
5283
5307
|
placement: (t == null ? void 0 : t.placement) ?? "bottom",
|
|
5284
5308
|
offset: 8,
|
|
@@ -5352,11 +5376,11 @@ ${o}` : t;
|
|
|
5352
5376
|
// ========================================================================
|
|
5353
5377
|
destroy() {
|
|
5354
5378
|
var e;
|
|
5355
|
-
this.destroyAllTooltips(), this.hideLabelReveal(), this.hideMessage(), this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0), this.abortInFlightSearch(), this.dropdownCleanup && this.dropdownCleanup(), this.hintCleanup && this.hintCleanup(), this.selectedPopoverCleanup && this.selectedPopoverCleanup(), this.overlayHistoryActive && (this.overlayHistoryActive = !1, typeof window < "u" && window.removeEventListener("popstate", this.onOverlayPopstate)), this.exitFullscreen(), this.documentClickHandler && (document.removeEventListener("click", this.documentClickHandler), this.documentClickHandler = null), this.documentKeydownHandler && (document.removeEventListener("keydown", this.documentKeydownHandler), this.documentKeydownHandler = null), (e = this.overlayCoord) == null || e.dispose(), this.overlayCoord = 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"),
|
|
5379
|
+
this.destroyAllTooltips(), this.hideLabelReveal(), this.hideMessage(), this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0), this.abortInFlightSearch(), this.dropdownCleanup && this.dropdownCleanup(), this.hintCleanup && this.hintCleanup(), this.selectedPopoverCleanup && this.selectedPopoverCleanup(), this.overlayHistoryActive && (this.overlayHistoryActive = !1, typeof window < "u" && window.removeEventListener("popstate", this.onOverlayPopstate)), this.exitFullscreen(), this.documentClickHandler && (document.removeEventListener("click", this.documentClickHandler), this.documentClickHandler = null), this.documentKeydownHandler && (document.removeEventListener("keydown", this.documentKeydownHandler), this.documentKeydownHandler = null), (e = this.overlayCoord) == null || e.dispose(), this.overlayCoord = 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"), bt.info(`[${this.instanceId}] Component destroyed`);
|
|
5356
5380
|
}
|
|
5357
5381
|
}
|
|
5358
5382
|
$ = new WeakMap();
|
|
5359
|
-
function
|
|
5383
|
+
function hn() {
|
|
5360
5384
|
return {
|
|
5361
5385
|
fromAttribute(s) {
|
|
5362
5386
|
if (s === null || s.trim() === "") return [];
|
|
@@ -5377,29 +5401,29 @@ function cn() {
|
|
|
5377
5401
|
}
|
|
5378
5402
|
};
|
|
5379
5403
|
}
|
|
5380
|
-
const
|
|
5404
|
+
const un = ["json", "csv", "plain"], Xs = ",", Ys = `
|
|
5381
5405
|
`;
|
|
5382
|
-
function
|
|
5406
|
+
function mn(s, e, t = {}) {
|
|
5383
5407
|
if (s == null || s.trim() === "") return { options: [] };
|
|
5384
|
-
const o =
|
|
5408
|
+
const o = Js(t.splitter ?? Xs) || Xs, i = Js(t.rowSplitter ?? Ys) || Ys;
|
|
5385
5409
|
switch (e) {
|
|
5386
5410
|
case "csv":
|
|
5387
|
-
return
|
|
5411
|
+
return gn(s, o, i);
|
|
5388
5412
|
case "plain":
|
|
5389
|
-
return
|
|
5413
|
+
return fn(s, o, i);
|
|
5390
5414
|
case "json":
|
|
5391
5415
|
default:
|
|
5392
|
-
return
|
|
5416
|
+
return pn(s);
|
|
5393
5417
|
}
|
|
5394
5418
|
}
|
|
5395
|
-
function
|
|
5419
|
+
function Js(s) {
|
|
5396
5420
|
return s.replace(
|
|
5397
5421
|
/\\[ntr\\]/g,
|
|
5398
5422
|
(e) => e === "\\n" ? `
|
|
5399
5423
|
` : e === "\\t" ? " " : e === "\\r" ? "\r" : "\\"
|
|
5400
5424
|
);
|
|
5401
5425
|
}
|
|
5402
|
-
function
|
|
5426
|
+
function pn(s) {
|
|
5403
5427
|
let e;
|
|
5404
5428
|
try {
|
|
5405
5429
|
e = JSON.parse(s);
|
|
@@ -5408,11 +5432,11 @@ function un(s) {
|
|
|
5408
5432
|
}
|
|
5409
5433
|
return Array.isArray(e) ? { options: e } : { options: [], error: "data-options JSON must be an array" };
|
|
5410
5434
|
}
|
|
5411
|
-
function
|
|
5435
|
+
function fn(s, e, t) {
|
|
5412
5436
|
return { options: s.split(t).flatMap((i) => i.split(e)).map((i) => i.trim()).filter((i) => i.length > 0).map((i) => [i, i]) };
|
|
5413
5437
|
}
|
|
5414
|
-
function
|
|
5415
|
-
const o =
|
|
5438
|
+
function gn(s, e, t) {
|
|
5439
|
+
const o = bn(s, e, t).filter((n) => !(n.length === 1 && n[0].trim() === ""));
|
|
5416
5440
|
if (o.length < 2)
|
|
5417
5441
|
return { options: [], error: "data-options CSV needs a header row and at least one data row" };
|
|
5418
5442
|
const i = o[0].map((n) => n.trim());
|
|
@@ -5423,7 +5447,7 @@ function pn(s, e, t) {
|
|
|
5423
5447
|
}), a;
|
|
5424
5448
|
}) };
|
|
5425
5449
|
}
|
|
5426
|
-
function
|
|
5450
|
+
function bn(s, e, t) {
|
|
5427
5451
|
const o = [];
|
|
5428
5452
|
let i = [], r = "", n = !1;
|
|
5429
5453
|
for (let a = 0; a < s.length; ) {
|
|
@@ -5436,7 +5460,7 @@ function fn(s, e, t) {
|
|
|
5436
5460
|
}
|
|
5437
5461
|
return i.push(r), o.push(i), o;
|
|
5438
5462
|
}
|
|
5439
|
-
const Po = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: var(--base-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(#cbd5e1, #52525b));--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-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-toggle-icon-size: calc(1.6 * var(--ms-rem));--ms-toggle-rotate-closed: 90deg;--ms-toggle-rotate-open: -90deg;--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: color-mix(in srgb, var(--ms-badge-bg) 88%, var(--ms-badge-text-color) 12%);--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: color-mix(in srgb, var(--ms-badge-text-bg) 88%, var(--ms-badge-text-color) 12%);--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: color-mix(in srgb, var(--ms-text-color-1) 10%, transparent);--ms-badge-counter-text-bg-hover: color-mix(in srgb, var(--ms-text-color-1) 16%, transparent);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-text-color-hover: var(--ms-text-color-1);--ms-badge-counter-remove-bg: color-mix(in srgb, var(--ms-text-color-1) 10%, transparent);--ms-badge-counter-remove-bg-hover: color-mix(in srgb, var(--ms-text-color-1) 16%, transparent);--ms-badge-counter-remove-color: var(--ms-text-color-3);--ms-badge-counter-remove-color-hover: var(--ms-text-color-1);--ms-counter-wrapper-border-color: var(--ms-border-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-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-gap: calc(.6 * 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: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-rotate-180: 180deg;--ms-input-clear-size: calc(2.4 * var(--ms-rem));--ms-input-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-input-clear-color: var(--base-input-clear-color, var(--ms-text-secondary));--ms-input-clear-bg-hover: var(--base-input-clear-bg-hover, var(--ms-option-bg-matched, transparent));--ms-input-clear-border-radius: var(--ms-border-radius);--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-inner-border-radius: max(0px, calc(var(--ms-dropdown-border-radius) - 1px));--ms-dropdown-box-shadow: var(--base-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-z-index-fullscreen: 10001;--ms-z-index-fullscreen-tooltip: 10002;--ms-fullscreen-rem: 12px;--ms-fullscreen-bg: var(--ms-dropdown-bg);--ms-fullscreen-text-color: var(--ms-dropdown-text-color);--ms-fullscreen-header-bg: var(--ms-dropdown-bg);--ms-fullscreen-header-border: 1px solid var(--ms-dropdown-border-color);--ms-fullscreen-header-gap: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-v: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-h: calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding: var(--ms-fullscreen-header-padding-v) var(--ms-fullscreen-header-padding-h);--ms-fullscreen-header-min-height: calc(5.6 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-size: calc(1.7 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-weight: var(--base-font-weight-semibold, 600);--ms-fullscreen-search-border: var(--ms-input-border);--ms-fullscreen-search-border-radius: var(--ms-input-border-radius);--ms-fullscreen-search-padding: calc(.8 * var(--ms-fullscreen-rem)) calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-search-font-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-icon-size: calc(1.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-inset: calc(.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-gutter: calc(3.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-search-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-mode-toggle-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-icon-size: calc(1.5 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-gap: var(--ms-fullscreen-header-gap);--ms-fullscreen-mode-toggle-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-mode-toggle-bg: transparent;--ms-fullscreen-mode-toggle-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: color-mix(in srgb, var(--ms-accent-color) 22%, transparent);--ms-fullscreen-nav-btn-icon: var(--ms-icon-chevron);--ms-icon-chevron: var(--base-icon-chevron, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m9 18 6-6-6-6'/></svg>"));--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--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: 0;--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-add-new-padding: var(--ms-option-padding);--ms-add-new-gap: var(--ms-option-gap);--ms-add-new-font-size: var(--ms-empty-font-size);--ms-add-new-color: var(--ms-accent-color);--ms-add-new-color-hover: var(--ms-accent-color);--ms-add-new-bg-hover: var(--ms-option-bg-hover);--ms-add-new-icon-size: calc(1.6 * var(--ms-rem));--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.4 * var(--ms-rem));--ms-icon-remove: var(--base-icon-remove, var(--base-icon-close, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>")));--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-search: var(--base-icon-search, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>"));--ms-icon-filter: var(--base-icon-filter, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/></svg>"));--ms-icon-check: var(--base-icon-check, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>"));--ms-icon-indeterminate: var(--base-icon-indeterminate, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/></svg>"));--ms-icon-add-new: var(--base-icon-plus, var(--base-icon-add, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/><path d='M12 5v14'/></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: var(--ms-accent-color);--ms-count-clear-color-hover: var(--ms-text-color-on-accent);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--base-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-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: var(--ms-input-current-width);--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: var(--ms-accent-color);--ms-selected-popover-close-color-hover: var(--ms-text-color-on-accent);--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: var(--base-ease-standard, 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}:host{-webkit-tap-highlight-color: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{box-sizing:border-box;position:relative;display:flex;align-items:center;gap:var(--ms-input-gap);height:var(--ms-input-height);padding-inline:var(--ms-input-padding-h);background:var(--ms-input-bg);color:var(--ms-input-color);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-wrapper:hover:not(:focus-within){border:var(--ms-input-border-hover)}.ms__input-wrapper:focus-within{border:var(--ms-input-border-focus)}.ms__input{flex:1 1 auto;min-width:0;box-sizing:border-box;font-family:inherit;height:100%;padding:0;border:none;background:transparent;font-size:var(--ms-input-font-size);color:var(--ms-input-color);cursor:pointer;outline:none}.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{flex:0 0 auto;display:block;width:var(--ms-toggle-icon-size);height:var(--ms-toggle-icon-size);color:var(--ms-toggle-icon-color);cursor:pointer}.ms__toggle:before{content:"";display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat;transform:rotate(var(--ms-toggle-rotate-closed, 90deg));transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{color:var(--ms-toggle-icon-color-open)}.ms--open .ms__toggle:before{transform:rotate(var(--ms-toggle-rotate-open, -90deg))}.ms__counter{flex:0 0 auto;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:scale(var(--ms-transform-scale-hover))}.ms__input-clear{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-input-clear-size);height:var(--ms-input-clear-size);padding:0;color:var(--ms-input-clear-color);background:transparent;border:none;border-radius:var(--ms-input-clear-border-radius);cursor:pointer;transition:background var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-clear:hover{background:var(--ms-input-clear-bg-hover)}.ms__input-clear:before{content:"";display:block;width:var(--ms-input-clear-icon-size);height:var(--ms-input-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}.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)}@media (hover: hover){.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;box-sizing:border-box;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--fullscreen,.ms__selected-popover--fullscreen{--ms-rem: var(--ms-fullscreen-rem);--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tree-base-indent: var(--ms-fullscreen-tree-base-indent);--ms-tree-indent: var(--ms-fullscreen-tree-indent)}.ms__selected-popover--fullscreen{--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(4.2 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-badge-text-padding: 0 calc(1.2 * var(--ms-rem));--ms-badge-remove-width: calc(3.6 * var(--ms-rem));--ms-badge-remove-icon-size: calc(1.2 * var(--ms-rem));--ms-badge-remove-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;--ms-dropdown-inner-border-radius: 0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-header{align-content:flex-start}.ms__fullscreen-header>.ms__fullscreen-search-wrapper{min-height:var(--ms-fullscreen-header-min-height)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;transform:rotate(-90deg)}.ms__fullscreen-nav-btn--next:before{transform:rotate(90deg)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 0;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex;align-items:center}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-mode-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-mode-toggle-size);height:var(--ms-fullscreen-mode-toggle-size);margin-inline-end:var(--ms-fullscreen-mode-toggle-gap);margin-inline-start:calc((var(--ms-fullscreen-close-size) - var(--ms-fullscreen-mode-toggle-size)) / 2 - var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-mode-toggle-color);background:var(--ms-fullscreen-mode-toggle-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-mode-toggle:hover{background:var(--ms-fullscreen-mode-toggle-bg-hover)}.ms__fullscreen-mode-toggle:before{content:"";display:block;width:var(--ms-fullscreen-mode-toggle-icon-size);height:var(--ms-fullscreen-mode-toggle-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat;mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat}.ms__fullscreen-mode-toggle[data-mode=navigate]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-search)}.ms__fullscreen-mode-toggle[data-mode=filter]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-filter)}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-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__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;border-radius:var(--ms-dropdown-inner-border-radius);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:hidden}.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__option-tooltip--fullscreen{z-index:var(--ms-z-index-fullscreen-tooltip)}.ms__message{position:fixed;z-index:var(--ms-message-z-index);box-sizing:border-box;max-width:var(--ms-message-max-width);padding:var(--ms-message-padding);font-family:inherit;font-size:var(--ms-message-font-size);font-weight:var(--ms-message-font-weight);line-height:var(--ms-line-height-normal);color:var(--ms-message-color);background:var(--ms-message-bg);border:var(--ms-message-border);border-radius:var(--ms-message-border-radius);box-shadow:var(--ms-message-shadow);cursor:pointer;opacity:0;transition:opacity var(--ms-transition-normal) ease;-webkit-tap-highlight-color:transparent}.ms__message--visible{opacity:1}.ms__message--info{background:var(--ms-message-info-bg);color:var(--ms-message-info-color)}.ms__message--warning{background:var(--ms-message-warning-bg);color:var(--ms-message-warning-color)}.ms__message--error{background:var(--ms-message-error-bg);color:var(--ms-message-error-color)}.ms__message--success{background:var(--ms-message-success-bg);color:var(--ms-message-success-color)}.ms__message--fullscreen{left:50%;right:auto;bottom:calc(var(--ms-message-fullscreen-offset) + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(var(--ms-message-max-width),calc(100vw - 4 * var(--ms-fullscreen-rem)));padding:calc(1 * var(--ms-fullscreen-rem)) calc(1.4 * var(--ms-fullscreen-rem));font-size:calc(var(--base-font-size-sm, 1.4) * var(--ms-fullscreen-rem))}.ms__selected-popover{display:none;position:fixed;box-sizing:border-box;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--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;overflow:hidden;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__selected-popover--fullscreen .ms__selected-popover-body{flex:1 1 0;min-height:0;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);flex-shrink:0}.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-wrapper{opacity:var(--ms-disabled-input-opacity);background:var(--ms-input-bg-disabled);cursor:not-allowed}.ms--disabled .ms__input{cursor:not-allowed}.ms--no-checkboxes .ms__option{gap:0;padding-inline-start:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-inline-start:0}.ms--no-selected-popover .ms__counter,.ms--no-selected-popover .ms__badge[data-action=show-selected],.ms--no-selected-popover .ms__badge--counter,.ms--no-selected-popover .ms__badge--more{cursor:default}}@layer component{@keyframes ms-spin{to{transform:rotate(360deg)}}}@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--custom{display:block;height:auto;max-width:none;overflow:visible;border-radius:0;font-size:inherit;font-weight:inherit}.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-inline-end:none;border-start-start-radius:var(--ms-badge-border-radius);border-end-start-radius:var(--ms-badge-border-radius);border-start-end-radius:0;border-end-end-radius:0;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;padding:0;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-inline-start:none;border-start-end-radius:var(--ms-badge-border-radius);border-end-end-radius:var(--ms-badge-border-radius);border-start-start-radius:0;border-end-start-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-inline-end: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-inline-start:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover);color:var(--ms-badge-counter-remove-color-hover, var(--ms-badge-counter-remove-color))}.ms__badge--counter:hover .ms__badge-text{background:var(--ms-badge-counter-text-bg-hover, var(--ms-badge-counter-text-bg));color:var(--ms-badge-counter-text-color-hover, var(--ms-badge-counter-text-color))}.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-inline-end: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);position:relative;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}@media (hover: hover){.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)}.ms__option--matched:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--ms-option-border-matched);pointer-events:none}.ms__option--selected{background:var(--ms-option-bg-selected)}@media (hover: hover){.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)}@media (hover: hover){.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)}.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-checkbox-margin-top: calc(.2 * var(--ms-rem))}.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-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start: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;top:0;right:0;bottom:0;left:0;background-color:var(--ms-checkbox-checkmark-color);-webkit-mask:var(--ms-icon-check) no-repeat center / contain;mask:var(--ms-icon-check) no-repeat center / contain}.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;-webkit-mask-image:var(--ms-icon-indeterminate);mask-image:var(--ms-icon-indeterminate)}.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)}@media (hover: hover){.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))}@media (hover: hover){.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)}@media (hover: hover){.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))}@media (hover: hover){.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__add-new{display:flex;align-items:center;gap:var(--ms-add-new-gap);padding:var(--ms-add-new-padding);font-size:var(--ms-add-new-font-size);color:var(--ms-add-new-color);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__add-new:hover{background:var(--ms-add-new-bg-hover);color:var(--ms-add-new-color-hover)}}.ms__add-new--focused{background:var(--ms-add-new-bg-hover);color:var(--ms-add-new-color-hover)}.ms__add-new--loading{cursor:default}.ms__add-new-spinner{flex-shrink:0;width:var(--ms-add-new-icon-size);height:var(--ms-add-new-icon-size);border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:ms-spin .6s linear infinite}@media (prefers-reduced-motion: reduce){.ms__add-new-spinner{animation-duration:1.5s}}.ms__add-new-icon{flex-shrink:0;width:var(--ms-add-new-icon-size);height:var(--ms-add-new-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-add-new) center / contain no-repeat;mask:var(--ms-icon-add-new) center / contain no-repeat}.ms__add-new-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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__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__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)}}@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}}`, Ys = [
|
|
5463
|
+
const Mo = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: var(--base-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(#cbd5e1, #52525b));--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-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-toggle-icon-size: calc(1.6 * var(--ms-rem));--ms-toggle-rotate-closed: 90deg;--ms-toggle-rotate-open: -90deg;--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: color-mix(in srgb, var(--ms-badge-bg) 88%, var(--ms-badge-text-color) 12%);--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: color-mix(in srgb, var(--ms-badge-text-bg) 88%, var(--ms-badge-text-color) 12%);--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: color-mix(in srgb, var(--ms-text-color-1) 10%, transparent);--ms-badge-counter-text-bg-hover: color-mix(in srgb, var(--ms-text-color-1) 16%, transparent);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-text-color-hover: var(--ms-text-color-1);--ms-badge-counter-remove-bg: color-mix(in srgb, var(--ms-text-color-1) 10%, transparent);--ms-badge-counter-remove-bg-hover: color-mix(in srgb, var(--ms-text-color-1) 16%, transparent);--ms-badge-counter-remove-color: var(--ms-text-color-3);--ms-badge-counter-remove-color-hover: var(--ms-text-color-1);--ms-counter-wrapper-border-color: var(--ms-border-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-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-gap: calc(.6 * 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: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-rotate-180: 180deg;--ms-input-clear-size: calc(2.4 * var(--ms-rem));--ms-input-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-input-clear-color: var(--base-input-clear-color, var(--ms-text-secondary));--ms-input-clear-bg-hover: var(--base-input-clear-bg-hover, var(--ms-option-bg-matched, transparent));--ms-input-clear-border-radius: var(--ms-border-radius);--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-inner-border-radius: max(0px, calc(var(--ms-dropdown-border-radius) - 1px));--ms-dropdown-box-shadow: var(--base-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-z-index-fullscreen: 10001;--ms-z-index-fullscreen-tooltip: 10002;--ms-fullscreen-rem: 12px;--ms-fullscreen-bg: var(--ms-dropdown-bg);--ms-fullscreen-text-color: var(--ms-dropdown-text-color);--ms-fullscreen-header-bg: var(--ms-dropdown-bg);--ms-fullscreen-header-border: 1px solid var(--ms-dropdown-border-color);--ms-fullscreen-header-gap: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-v: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-h: calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding: var(--ms-fullscreen-header-padding-v) var(--ms-fullscreen-header-padding-h);--ms-fullscreen-header-min-height: calc(5.6 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-size: calc(1.7 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-weight: var(--base-font-weight-semibold, 600);--ms-fullscreen-search-border: var(--ms-input-border);--ms-fullscreen-search-border-radius: var(--ms-input-border-radius);--ms-fullscreen-search-padding: calc(.8 * var(--ms-fullscreen-rem)) calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-search-font-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-icon-size: calc(1.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-inset: calc(.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-gutter: calc(3.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-search-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-mode-toggle-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-icon-size: calc(1.5 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-gap: var(--ms-fullscreen-header-gap);--ms-fullscreen-mode-toggle-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-mode-toggle-bg: transparent;--ms-fullscreen-mode-toggle-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: color-mix(in srgb, var(--ms-accent-color) 22%, transparent);--ms-fullscreen-nav-btn-icon: var(--ms-icon-chevron);--ms-icon-chevron: var(--base-icon-chevron, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m9 18 6-6-6-6'/></svg>"));--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--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: 0;--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-add-new-padding: var(--ms-option-padding);--ms-add-new-gap: var(--ms-option-gap);--ms-add-new-font-size: var(--ms-empty-font-size);--ms-add-new-color: var(--ms-accent-color);--ms-add-new-color-hover: var(--ms-accent-color);--ms-add-new-bg-hover: var(--ms-option-bg-hover);--ms-add-new-icon-size: calc(1.6 * var(--ms-rem));--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.4 * var(--ms-rem));--ms-icon-remove: var(--base-icon-remove, var(--base-icon-close, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>")));--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-search: var(--base-icon-search, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>"));--ms-icon-filter: var(--base-icon-filter, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/></svg>"));--ms-icon-check: var(--base-icon-check, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>"));--ms-icon-indeterminate: var(--base-icon-indeterminate, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/></svg>"));--ms-icon-check-size: var(--base-icon-check-size, 68%);--ms-icon-add-new: var(--base-icon-plus, var(--base-icon-add, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14'/><path d='M12 5v14'/></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: var(--ms-accent-color);--ms-count-clear-color-hover: var(--ms-text-color-on-accent);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--base-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-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: var(--ms-input-current-width);--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: var(--ms-accent-color);--ms-selected-popover-close-color-hover: var(--ms-text-color-on-accent);--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: var(--base-ease-standard, 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}:host([defer]:not([is-ready])){display:block;min-height:calc(3.5 * var(--ms-rem))}:host{-webkit-tap-highlight-color: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{box-sizing:border-box;position:relative;display:flex;align-items:center;gap:var(--ms-input-gap);height:var(--ms-input-height);padding-inline:var(--ms-input-padding-h);background:var(--ms-input-bg);color:var(--ms-input-color);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-wrapper:hover:not(:focus-within){border:var(--ms-input-border-hover)}.ms__input-wrapper:focus-within{border:var(--ms-input-border-focus)}.ms__input{flex:1 1 auto;min-width:0;box-sizing:border-box;font-family:inherit;height:100%;padding:0;border:none;background:transparent;font-size:var(--ms-input-font-size);color:var(--ms-input-color);cursor:pointer;outline:none}.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{flex:0 0 auto;display:block;width:var(--ms-toggle-icon-size);height:var(--ms-toggle-icon-size);color:var(--ms-toggle-icon-color);cursor:pointer}.ms__toggle:before{content:"";display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat;transform:rotate(var(--ms-toggle-rotate-closed, 90deg));transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{color:var(--ms-toggle-icon-color-open)}.ms--open .ms__toggle:before{transform:rotate(var(--ms-toggle-rotate-open, -90deg))}.ms__counter{flex:0 0 auto;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:scale(var(--ms-transform-scale-hover))}.ms__input-clear{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-input-clear-size);height:var(--ms-input-clear-size);padding:0;color:var(--ms-input-clear-color);background:transparent;border:none;border-radius:var(--ms-input-clear-border-radius);cursor:pointer;transition:background var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-clear:hover{background:var(--ms-input-clear-bg-hover)}.ms__input-clear:before{content:"";display:block;width:var(--ms-input-clear-icon-size);height:var(--ms-input-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}.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)}@media (hover: hover){.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;box-sizing:border-box;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--fullscreen,.ms__selected-popover--fullscreen{--ms-rem: var(--ms-fullscreen-rem);--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tree-base-indent: var(--ms-fullscreen-tree-base-indent);--ms-tree-indent: var(--ms-fullscreen-tree-indent)}.ms__selected-popover--fullscreen{--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(4.2 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-badge-text-padding: 0 calc(1.2 * var(--ms-rem));--ms-badge-remove-width: calc(3.6 * var(--ms-rem));--ms-badge-remove-icon-size: calc(1.2 * var(--ms-rem));--ms-badge-remove-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;--ms-dropdown-inner-border-radius: 0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-header{align-content:flex-start}.ms__fullscreen-header>.ms__fullscreen-search-wrapper{min-height:var(--ms-fullscreen-header-min-height)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;transform:rotate(-90deg)}.ms__fullscreen-nav-btn--next:before{transform:rotate(90deg)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 0;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex;align-items:center}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-mode-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-mode-toggle-size);height:var(--ms-fullscreen-mode-toggle-size);margin-inline-end:var(--ms-fullscreen-mode-toggle-gap);margin-inline-start:calc((var(--ms-fullscreen-close-size) - var(--ms-fullscreen-mode-toggle-size)) / 2 - var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-mode-toggle-color);background:var(--ms-fullscreen-mode-toggle-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-mode-toggle:hover{background:var(--ms-fullscreen-mode-toggle-bg-hover)}.ms__fullscreen-mode-toggle:before{content:"";display:block;width:var(--ms-fullscreen-mode-toggle-icon-size);height:var(--ms-fullscreen-mode-toggle-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat;mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat}.ms__fullscreen-mode-toggle[data-mode=navigate]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-search)}.ms__fullscreen-mode-toggle[data-mode=filter]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-filter)}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-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__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;border-radius:var(--ms-dropdown-inner-border-radius);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:hidden}.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__option-tooltip--fullscreen{z-index:var(--ms-z-index-fullscreen-tooltip)}.ms__message{position:fixed;z-index:var(--ms-message-z-index);box-sizing:border-box;max-width:var(--ms-message-max-width);padding:var(--ms-message-padding);font-family:inherit;font-size:var(--ms-message-font-size);font-weight:var(--ms-message-font-weight);line-height:var(--ms-line-height-normal);color:var(--ms-message-color);background:var(--ms-message-bg);border:var(--ms-message-border);border-radius:var(--ms-message-border-radius);box-shadow:var(--ms-message-shadow);cursor:pointer;opacity:0;transition:opacity var(--ms-transition-normal) ease;-webkit-tap-highlight-color:transparent}.ms__message--visible{opacity:1}.ms__message--info{background:var(--ms-message-info-bg);color:var(--ms-message-info-color)}.ms__message--warning{background:var(--ms-message-warning-bg);color:var(--ms-message-warning-color)}.ms__message--error{background:var(--ms-message-error-bg);color:var(--ms-message-error-color)}.ms__message--success{background:var(--ms-message-success-bg);color:var(--ms-message-success-color)}.ms__message--fullscreen{left:50%;right:auto;bottom:calc(var(--ms-message-fullscreen-offset) + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(var(--ms-message-max-width),calc(100vw - 4 * var(--ms-fullscreen-rem)));padding:calc(1 * var(--ms-fullscreen-rem)) calc(1.4 * var(--ms-fullscreen-rem));font-size:calc(var(--base-font-size-sm, 1.4) * var(--ms-fullscreen-rem))}.ms__selected-popover{display:none;position:fixed;box-sizing:border-box;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--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;overflow:hidden;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__selected-popover--fullscreen .ms__selected-popover-body{flex:1 1 0;min-height:0;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);flex-shrink:0}.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-wrapper{opacity:var(--ms-disabled-input-opacity);background:var(--ms-input-bg-disabled);cursor:not-allowed}.ms--disabled .ms__input{cursor:not-allowed}.ms--no-checkboxes .ms__option{gap:0;padding-inline-start:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-inline-start:0}.ms--no-selected-popover .ms__counter,.ms--no-selected-popover .ms__badge[data-action=show-selected],.ms--no-selected-popover .ms__badge--counter,.ms--no-selected-popover .ms__badge--more{cursor:default}}@layer component{@keyframes ms-spin{to{transform:rotate(360deg)}}}@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--custom{display:block;height:auto;max-width:none;overflow:visible;border-radius:0;font-size:inherit;font-weight:inherit}.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-inline-end:none;border-start-start-radius:var(--ms-badge-border-radius);border-end-start-radius:var(--ms-badge-border-radius);border-start-end-radius:0;border-end-end-radius:0;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;padding:0;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-inline-start:none;border-start-end-radius:var(--ms-badge-border-radius);border-end-end-radius:var(--ms-badge-border-radius);border-start-start-radius:0;border-end-start-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-inline-end: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-inline-start:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover);color:var(--ms-badge-counter-remove-color-hover, var(--ms-badge-counter-remove-color))}.ms__badge--counter:hover .ms__badge-text{background:var(--ms-badge-counter-text-bg-hover, var(--ms-badge-counter-text-bg));color:var(--ms-badge-counter-text-color-hover, var(--ms-badge-counter-text-color))}.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-inline-end: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);position:relative;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}@media (hover: hover){.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)}.ms__option--matched:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--ms-option-border-matched);pointer-events:none}.ms__option--selected{background:var(--ms-option-bg-selected)}@media (hover: hover){.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)}@media (hover: hover){.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)}.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-checkbox-margin-top: calc(.2 * var(--ms-rem))}.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-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start: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;top:0;right:0;bottom:0;left:0;background-color:var(--ms-checkbox-checkmark-color);-webkit-mask:var(--ms-icon-check) no-repeat center / var(--ms-icon-check-size);mask:var(--ms-icon-check) no-repeat center / var(--ms-icon-check-size)}.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;-webkit-mask-image:var(--ms-icon-indeterminate);mask-image:var(--ms-icon-indeterminate)}.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)}@media (hover: hover){.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))}@media (hover: hover){.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)}@media (hover: hover){.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))}@media (hover: hover){.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__add-new{display:flex;align-items:center;gap:var(--ms-add-new-gap);padding:var(--ms-add-new-padding);font-size:var(--ms-add-new-font-size);color:var(--ms-add-new-color);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__add-new:hover{background:var(--ms-add-new-bg-hover);color:var(--ms-add-new-color-hover)}}.ms__add-new--focused{background:var(--ms-add-new-bg-hover);color:var(--ms-add-new-color-hover)}.ms__add-new--loading{cursor:default}.ms__add-new-spinner{flex-shrink:0;width:var(--ms-add-new-icon-size);height:var(--ms-add-new-icon-size);border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:ms-spin .6s linear infinite}@media (prefers-reduced-motion: reduce){.ms__add-new-spinner{animation-duration:1.5s}}.ms__add-new-icon{flex-shrink:0;width:var(--ms-add-new-icon-size);height:var(--ms-add-new-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-add-new) center / contain no-repeat;mask:var(--ms-icon-add-new) center / contain no-repeat}.ms__add-new-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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__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__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)}}@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}}`, Qs = [
|
|
5440
5464
|
"top",
|
|
5441
5465
|
"top-start",
|
|
5442
5466
|
"top-end",
|
|
@@ -5449,7 +5473,7 @@ const Po = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
5449
5473
|
"right",
|
|
5450
5474
|
"right-start",
|
|
5451
5475
|
"right-end"
|
|
5452
|
-
], N = () =>
|
|
5476
|
+
], N = () => Uo(), vn = [
|
|
5453
5477
|
// ── Strings (cosmetic → update). Optional ones are nullable: absent → null ─
|
|
5454
5478
|
{ configKey: "searchHint", attribute: "search-hint", converter: A({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
|
|
5455
5479
|
{ configKey: "searchPlaceholder", attribute: "search-placeholder", converter: A({ isNullable: !0 }), on: "update", description: 'Placeholder text for the search input. When unset it defaults to "Search..."; if `show-search-mode-toggle` is on, the default instead becomes mode-aware ("Search…" in navigate, "Filter…" in filter). An explicit value always wins and stays fixed.' },
|
|
@@ -5512,8 +5536,8 @@ const Po = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
5512
5536
|
{ configKey: "actionsAlign", attribute: "actions-align", converter: j(["stretch", "left", "right", "center", "space-between"], { default: "stretch" }), on: "update", description: "Horizontal alignment of the action buttons." },
|
|
5513
5537
|
{ configKey: "checkboxAlign", attribute: "checkbox-align", converter: j(["top", "center", "bottom"], { default: "center" }), on: "update", description: "Vertical alignment of an option checkbox." },
|
|
5514
5538
|
{ configKey: "valueFormat", attribute: "value-format", converter: j(["json", "csv", "array"], { default: "json" }), on: "reinit", description: "Serialization format the control emits its value in." },
|
|
5515
|
-
{ configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: j(
|
|
5516
|
-
{ configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: j(
|
|
5539
|
+
{ configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: j(Qs, { default: "top" }), on: "update", description: "Preferred placement of a badge tooltip relative to its badge (floating-ui placement)." },
|
|
5540
|
+
{ configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: j(Qs, { default: "top-start" }), on: "update", description: "Preferred placement of an option tooltip (floating-ui placement)." },
|
|
5517
5541
|
{
|
|
5518
5542
|
configKey: "mobilePresentation",
|
|
5519
5543
|
attribute: "mobile-presentation",
|
|
@@ -5565,16 +5589,24 @@ const Po = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
5565
5589
|
{ configKey: "isOptionTooltipFollowCursor", attribute: "option-tooltip-follow-cursor", converter: H("default-false"), on: "update", description: "Make option tooltips follow the pointer." },
|
|
5566
5590
|
{ configKey: "isSearchModeToggleShown", attribute: "show-search-mode-toggle", converter: H("default-false"), on: "update", description: "Show a clickable toggle in the phone fullscreen overlay search header that flips `search-mode` between `filter` and `navigate` live. Fullscreen-only; no effect in the floating presentation or when search is disabled." },
|
|
5567
5591
|
// ── Special attributes ───────────────────────────────────────────────────
|
|
5568
|
-
{ configKey: "initialValues", attribute: "initial-values", converter:
|
|
5592
|
+
{ configKey: "initialValues", attribute: "initial-values", converter: hn(), default: [], on: "reinit", type: "Array<string | number>", description: 'Values selected on first render. Accepts a JSON array (`["a","b"]`) or a bare CSV (`a,b,c`).' },
|
|
5569
5593
|
{ configKey: "showDebugInfo", attribute: "show-debug-info", converter: H("default-false"), on: "update", description: "Render an in-component debug panel.", deprecated: "Use per-instance logging (el.enableLogging()) instead." },
|
|
5594
|
+
// ── Render gate (element-only; NON_PICKER) ───────────────────────────────
|
|
5595
|
+
{
|
|
5596
|
+
configKey: "deferRender",
|
|
5597
|
+
attribute: "defer",
|
|
5598
|
+
converter: H("presence"),
|
|
5599
|
+
on: "reinit",
|
|
5600
|
+
description: "Hold the initial render. When the `defer` attribute is present on upgrade the component builds nothing (it only reserves space) — so options, callbacks (e.g. `customStylesCallback`) and event listeners can all be wired first, then released with `el.ready()` (or by removing the `defer` attribute, for server-driven frameworks). The release builds the picker ONCE with everything already in place, avoiding the upgrade-then-restyle flash. Absent (default): builds immediately on connect. Latched — once released the gate never re-closes."
|
|
5601
|
+
},
|
|
5570
5602
|
// ── Complex property (data) ──────────────────────────────────────────────
|
|
5571
|
-
{ configKey: "options", converter:
|
|
5603
|
+
{ configKey: "options", converter: jo(), on: "reinit", type: "ReadonlyArray<Record<string, unknown>>", description: "The array of option objects to render. The JS API — assign `el.options` directly. For HTML authoring use the `data-options` attribute (parsed per `data-options-format`) or declarative <option> children; both feed the same list and take precedence over this property in the order: <option> children > property > data-options." },
|
|
5572
5604
|
{ configKey: "optionsSource", attribute: "data-options", converter: A({ isNullable: !0 }), on: "reinit", type: "string", description: "HTML-authoring source for the option list, parsed per `data-options-format`. Reactive: changing either attribute re-renders. Prefer the `options` property in JS; a set `options` property and declarative <option> children both win over this." },
|
|
5573
|
-
{ configKey: "optionsFormat", attribute: "data-options-format", converter: j(
|
|
5605
|
+
{ configKey: "optionsFormat", attribute: "data-options-format", converter: j(un, { default: "json" }), on: "reinit", type: "'json' | 'csv' | 'plain'", description: "How to parse the `data-options` attribute: `json` (a JSON array of objects or [value, label] tuples), `csv` (rows split on `data-options-row-splitter`, cells on `data-options-splitter`; the first row is a header — map columns via *-member), or `plain` (bare values split on both splitters -> [value, label] tuples, value === label). Default `json`." },
|
|
5574
5606
|
{ configKey: "optionsSplitter", attribute: "data-options-splitter", converter: A({ default: "," }), on: "reinit", type: "string", description: 'Field/cell delimiter for the `csv` and `plain` `data-options` formats. Default `,`. Escapes `\\t` `\\n` `\\r` are honoured (e.g. `data-options-splitter="\\t"` for TSV). Ignored for `json`.' },
|
|
5575
5607
|
{ configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: A({ default: `
|
|
5576
5608
|
` }), on: "reinit", type: "string", description: 'Row/record delimiter for the `csv` and `plain` `data-options` formats. Default newline. Escapes honoured (e.g. `data-options-row-splitter=";"` for single-line data). Ignored for `json`.' },
|
|
5577
|
-
{ configKey: "actionButtons", converter:
|
|
5609
|
+
{ configKey: "actionButtons", converter: Wo({ validate: (s) => Array.isArray(s) }), on: "reinit", type: "Array<Record<string, unknown>>", description: "Custom action buttons for the dropdown footer/header. Property-only; when unset the default Select-All / Clear buttons apply." },
|
|
5578
5610
|
// ── Callbacks: data shape (structural → reinit) ──────────────────────────
|
|
5579
5611
|
{ configKey: "getValueCallback", converter: N(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
|
|
5580
5612
|
{ configKey: "getPathCallback", converter: N(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
|
|
@@ -5610,20 +5642,21 @@ const Po = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
5610
5642
|
{ configKey: "addNewCallback", converter: N(), on: "update", type: "(value: string) => unknown | null | undefined | Promise<unknown | null | undefined>", description: "Create a new option from the typed text. May return a rich option object (renders via the same get*/render* callbacks as any option). Async + cancelable: return null/undefined to abort (no add, no `add` event). Omit entirely to handle creation yourself via the `add` event." },
|
|
5611
5643
|
{ configKey: "getAddNewTextCallback", converter: N(), on: "update", type: "(value: string) => string", description: 'Dynamically compute the "add new" prompt label from the typed text (returns plain text). Takes precedence over `add-new-text`.' },
|
|
5612
5644
|
{ configKey: "keydownCallback", converter: N(), on: "update", type: "(context: MultiSelectKeydownContext) => boolean | void", description: "Intercept keydown before built-in handling; return true to suppress the default. Gets the event, current state, and an imperative controller." }
|
|
5613
|
-
],
|
|
5645
|
+
], wn = [
|
|
5614
5646
|
{ name: "select", description: "An option was selected. `detail.option` is the selected option; `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
|
|
5615
5647
|
{ name: "deselect", description: "An option was removed from the selection. `detail.option` is that option." },
|
|
5616
5648
|
{ name: "change", description: "The selection changed. `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
|
|
5617
|
-
{ name: "add", description: 'The user chose to create a new option from the typed text (via the "add new" prompt or Enter) — requires `allow-add-new`. `detail.value` is the typed text; `detail.option` is the created item when `addNewCallback` produced one.' }
|
|
5618
|
-
|
|
5649
|
+
{ name: "add", description: 'The user chose to create a new option from the typed text (via the "add new" prompt or Enter) — requires `allow-add-new`. `detail.value` is the typed text; `detail.option` is the created item when `addNewCallback` produced one.' },
|
|
5650
|
+
{ name: "ready", description: "The picker was built and painted for the first time (once per element lifetime). Fires right after the first build — synchronously during upgrade for a normal element, or when the render gate is released (`el.ready()` / removing `defer`) for a deferred one. No detail." }
|
|
5651
|
+
], Zs = /* @__PURE__ */ new Set(["dropdownWidth", "selectedPopoverWidth", "showDebugInfo", "initialValues", "optionsSource", "optionsFormat", "optionsSplitter", "optionsRowSplitter", "mobilePresentation", "collapseBadgesBelow", "deferRender"]), vt = {
|
|
5619
5652
|
dropdownWidth: "--ms-dropdown-width",
|
|
5620
5653
|
selectedPopoverWidth: "--ms-selected-popover-width"
|
|
5621
5654
|
};
|
|
5622
|
-
let
|
|
5623
|
-
function
|
|
5624
|
-
return
|
|
5655
|
+
let yn = null;
|
|
5656
|
+
function xn() {
|
|
5657
|
+
return yn ?? (yn = Ni(Mo, "--ms-"));
|
|
5625
5658
|
}
|
|
5626
|
-
const
|
|
5659
|
+
const _n = [
|
|
5627
5660
|
{ key: "valueMember", member: "value", callbackKey: "getValueCallback" },
|
|
5628
5661
|
{ key: "displayValueMember", member: "label", callbackKey: "getDisplayValueCallback" },
|
|
5629
5662
|
{ key: "groupMember", member: "group", callbackKey: "getGroupCallback" },
|
|
@@ -5631,26 +5664,29 @@ const yn = [
|
|
|
5631
5664
|
{ key: "subtitleMember", member: "subtitle", callbackKey: "getSubtitleCallback" },
|
|
5632
5665
|
{ key: "disabledMember", member: "disabled", callbackKey: "getDisabledCallback" }
|
|
5633
5666
|
];
|
|
5634
|
-
var Z, k, fe,
|
|
5635
|
-
class
|
|
5667
|
+
var Z, k, fe, He, ht, ut, mt, Fe, Ke, Ie, w, ns, _t, ge, kt, as, ls, cs, Ct, Lo, Eo, Ao, tt, ds, zo, No, $o, hs, Vo, Do, us, ms;
|
|
5668
|
+
class ot extends Qt {
|
|
5636
5669
|
constructor() {
|
|
5637
5670
|
super();
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
|
|
5641
|
-
|
|
5642
|
-
|
|
5671
|
+
M(this, w);
|
|
5672
|
+
M(this, Z);
|
|
5673
|
+
M(this, k);
|
|
5674
|
+
M(this, fe);
|
|
5675
|
+
// Render gate (`defer`): true once released via ready() / attribute removal /
|
|
5676
|
+
// the first build. Latched — the gate never re-closes. See #renderHeld().
|
|
5677
|
+
M(this, He, !1);
|
|
5678
|
+
M(this, ht, null);
|
|
5643
5679
|
// Dev-mode customStylesCallback lint: unknown --ms-* names already warned about.
|
|
5644
|
-
|
|
5680
|
+
M(this, ut, /* @__PURE__ */ new Set());
|
|
5645
5681
|
// Declarative <option>/<optgroup> state (parsed once from light DOM).
|
|
5646
|
-
|
|
5647
|
-
|
|
5648
|
-
|
|
5649
|
-
|
|
5682
|
+
M(this, mt, !1);
|
|
5683
|
+
M(this, Fe, !1);
|
|
5684
|
+
M(this, Ke);
|
|
5685
|
+
M(this, Ie);
|
|
5650
5686
|
// ── container-responsive badge collapse (core §12.9 `resized`) ─────────────
|
|
5651
5687
|
/** Whether the live picker is currently forced to the collapsed count view. */
|
|
5652
|
-
|
|
5653
|
-
|
|
5688
|
+
M(this, ge, !1);
|
|
5689
|
+
I(this, Z, this.attachShadow({ mode: "open" })), Ai(h(this, Z), Mo), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
|
|
5654
5690
|
}
|
|
5655
5691
|
/**
|
|
5656
5692
|
* Called by the browser when the surrounding <form> is reset. Clears the
|
|
@@ -5671,24 +5707,24 @@ class st extends Yt {
|
|
|
5671
5707
|
}
|
|
5672
5708
|
/** Structural change (or first connect): mirror CSS vars, then (re)build the picker. */
|
|
5673
5709
|
reinit() {
|
|
5674
|
-
b(this,
|
|
5710
|
+
b(this, w, No).call(this), this.isConnected && !b(this, w, ns).call(this) && b(this, w, cs).call(this);
|
|
5675
5711
|
}
|
|
5676
5712
|
/** Cosmetic change: mirror CSS vars / custom styles / debug, patch the picker in place. */
|
|
5677
5713
|
update(t) {
|
|
5678
|
-
b(this,
|
|
5714
|
+
b(this, w, $o).call(this, t), "customStylesCallback" in t && b(this, w, ds).call(this), "showDebugInfo" in t && b(this, w, us).call(this);
|
|
5679
5715
|
const o = {};
|
|
5680
5716
|
for (const [i, r] of Object.entries(t))
|
|
5681
|
-
|
|
5682
|
-
h(this, k) && Object.keys(o).length > 0 && (h(this, k).updateOptions(o) || b(this,
|
|
5717
|
+
Zs.has(i) || (o[i] = r === null ? void 0 : r);
|
|
5718
|
+
h(this, k) && Object.keys(o).length > 0 && (h(this, k).updateOptions(o) || b(this, w, cs).call(this)), "mobilePresentation" in t && b(this, w, _t).call(this, Ot()), "collapseBadgesBelow" in t && b(this, w, kt).call(this, this.getBoundingClientRect().width);
|
|
5683
5719
|
}
|
|
5684
5720
|
/** Activate: ensure the picker exists (a DOM move destroyed it in disconnect()). */
|
|
5685
5721
|
connect() {
|
|
5686
|
-
h(this, k)
|
|
5722
|
+
!h(this, k) && !b(this, w, ns).call(this) && b(this, w, Ct).call(this);
|
|
5687
5723
|
}
|
|
5688
5724
|
/** Deactivate: tear the picker down (rebuilt on the next connect). */
|
|
5689
5725
|
disconnect() {
|
|
5690
5726
|
var t;
|
|
5691
|
-
(t = h(this, k)) == null || t.destroy(),
|
|
5727
|
+
(t = h(this, k)) == null || t.destroy(), I(this, k, void 0);
|
|
5692
5728
|
}
|
|
5693
5729
|
/**
|
|
5694
5730
|
* Device/viewport/orientation changed (core §12.9). Overriding this opts the
|
|
@@ -5699,7 +5735,7 @@ class st extends Yt {
|
|
|
5699
5735
|
* set before the dropdown can open.
|
|
5700
5736
|
*/
|
|
5701
5737
|
environmentChanged(t) {
|
|
5702
|
-
b(this,
|
|
5738
|
+
b(this, w, _t).call(this, t);
|
|
5703
5739
|
}
|
|
5704
5740
|
/**
|
|
5705
5741
|
* This element's own border box changed (core §12.9 `resized`). Overriding the
|
|
@@ -5710,7 +5746,7 @@ class st extends Yt {
|
|
|
5710
5746
|
* below` is set; otherwise it's a cheap no-op.
|
|
5711
5747
|
*/
|
|
5712
5748
|
resized({ width: t }) {
|
|
5713
|
-
b(this,
|
|
5749
|
+
b(this, w, kt).call(this, t);
|
|
5714
5750
|
}
|
|
5715
5751
|
// ── non-input public API ──────────────────────────────────────────────────
|
|
5716
5752
|
/** Form field name (mirrors the `name` attribute → `formFieldId`). */
|
|
@@ -5832,11 +5868,30 @@ class st extends Yt {
|
|
|
5832
5868
|
var t;
|
|
5833
5869
|
(t = h(this, k)) == null || t.destroy();
|
|
5834
5870
|
}
|
|
5871
|
+
// ── render gate (`defer`) ───────────────────────────────────────────────────
|
|
5872
|
+
/**
|
|
5873
|
+
* Release the `defer` render gate: build the picker now (once), with every
|
|
5874
|
+
* option, callback and listener wired while deferred already in place. No-op
|
|
5875
|
+
* when the element wasn't deferred or is already built. `flush()` first so a
|
|
5876
|
+
* synchronous `el.options = …; el.customStylesCallback = …; el.ready()` lands
|
|
5877
|
+
* those pending writes in the single build rather than after it. Latched — the
|
|
5878
|
+
* gate never re-closes. Fires the `ready` event on the first build.
|
|
5879
|
+
*/
|
|
5880
|
+
ready() {
|
|
5881
|
+
I(this, He, !0), this.flush(), this.isConnected && !h(this, k) && b(this, w, Ct).call(this);
|
|
5882
|
+
}
|
|
5883
|
+
/** Whether the picker has been built (the `ready` event has fired). False while a `defer` gate is still held. */
|
|
5884
|
+
get isReady() {
|
|
5885
|
+
return this.hasAttribute("is-ready");
|
|
5886
|
+
}
|
|
5835
5887
|
}
|
|
5836
|
-
Z = new WeakMap(), k = new WeakMap(), fe = new WeakMap(),
|
|
5837
|
-
|
|
5888
|
+
Z = new WeakMap(), k = new WeakMap(), fe = new WeakMap(), He = new WeakMap(), ht = new WeakMap(), ut = new WeakMap(), mt = new WeakMap(), Fe = new WeakMap(), Ke = new WeakMap(), Ie = new WeakMap(), w = new WeakSet(), /** Whether the initial render is being held by the `defer` gate (not yet released). */
|
|
5889
|
+
ns = function() {
|
|
5890
|
+
return this.config.deferRender === !0 && !h(this, He);
|
|
5891
|
+
}, /** Resolve `mobile-presentation` against `env` and relay it to the live picker. */
|
|
5892
|
+
_t = function(t) {
|
|
5838
5893
|
var r;
|
|
5839
|
-
const o = this.config.mobilePresentation ?? "auto", i =
|
|
5894
|
+
const o = this.config.mobilePresentation ?? "auto", i = Bi(o, t);
|
|
5840
5895
|
(r = h(this, k)) == null || r.setPresentation(i === "modal" ? "fullscreen" : i);
|
|
5841
5896
|
}, ge = new WeakMap(), /**
|
|
5842
5897
|
* Resolve `collapse-badges-below` against `width` and relay the decision to the
|
|
@@ -5845,78 +5900,78 @@ xt = function(t) {
|
|
|
5845
5900
|
* and widening past the threshold restores it exactly. A structural JS decision,
|
|
5846
5901
|
* so it lives here rather than in a CSS container query.
|
|
5847
5902
|
*/
|
|
5848
|
-
|
|
5903
|
+
kt = function(t) {
|
|
5849
5904
|
const o = this.config.collapseBadgesBelow;
|
|
5850
5905
|
if (o == null) {
|
|
5851
|
-
h(this, ge) && (
|
|
5906
|
+
h(this, ge) && (I(this, ge, !1), b(this, w, as).call(this));
|
|
5852
5907
|
return;
|
|
5853
5908
|
}
|
|
5854
5909
|
const i = t > 0 && t < o;
|
|
5855
|
-
i !== h(this, ge) && (
|
|
5910
|
+
i !== h(this, ge) && (I(this, ge, i), i ? b(this, w, ls).call(this, "count") : b(this, w, as).call(this));
|
|
5856
5911
|
}, /** Re-assert the consumer's configured badges mode from the pristine base config. */
|
|
5857
|
-
|
|
5912
|
+
as = function() {
|
|
5858
5913
|
const t = this.config.badgesDisplayMode ?? "badges";
|
|
5859
|
-
b(this,
|
|
5914
|
+
b(this, w, ls).call(this, t);
|
|
5860
5915
|
}, /** Relay a badges-display-mode override to the live picker (never written to `this.config`). */
|
|
5861
|
-
|
|
5916
|
+
ls = function(t) {
|
|
5862
5917
|
var o;
|
|
5863
5918
|
(o = h(this, k)) == null || o.updateOptions({ badgesDisplayMode: t });
|
|
5864
5919
|
}, // ── picker lifecycle ──────────────────────────────────────────────────────
|
|
5865
|
-
|
|
5920
|
+
cs = function() {
|
|
5866
5921
|
var t;
|
|
5867
|
-
(t = h(this, k)) == null || t.destroy(),
|
|
5868
|
-
},
|
|
5869
|
-
b(this,
|
|
5870
|
-
const t = b(this,
|
|
5871
|
-
o && o.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(o) : delete h(this, fe).dataset.initialValues,
|
|
5872
|
-
},
|
|
5922
|
+
(t = h(this, k)) == null || t.destroy(), I(this, k, void 0), b(this, w, Ct).call(this);
|
|
5923
|
+
}, Ct = function() {
|
|
5924
|
+
b(this, w, Lo).call(this), b(this, w, Vo).call(this);
|
|
5925
|
+
const t = b(this, w, Eo).call(this), o = b(this, w, Ao).call(this);
|
|
5926
|
+
o && o.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(o) : delete h(this, fe).dataset.initialValues, I(this, k, new dn(h(this, fe), t)), b(this, w, ds).call(this), b(this, w, us).call(this), b(this, w, _t).call(this, Ot()), I(this, ge, !1), b(this, w, kt).call(this, this.getBoundingClientRect().width), this.hasAttribute("is-ready") || (I(this, He, !0), this.setAttribute("is-ready", ""), this.emit("ready"));
|
|
5927
|
+
}, Lo = function() {
|
|
5873
5928
|
if (h(this, fe)) return;
|
|
5874
5929
|
const t = document.createElement("div");
|
|
5875
|
-
t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), h(this, Z).appendChild(t),
|
|
5930
|
+
t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), h(this, Z).appendChild(t), I(this, ht, zi(h(this, Z), { position: "first", className: "ms-custom-styles" })), I(this, fe, t);
|
|
5876
5931
|
}, /**
|
|
5877
5932
|
* Build the picker config from the merged `this.config`, minus the keys the
|
|
5878
5933
|
* picker doesn't own, plus the runtime wiring (event bridges, container, host,
|
|
5879
5934
|
* declarative option data + member defaults, counter default).
|
|
5880
5935
|
*/
|
|
5881
|
-
|
|
5936
|
+
Eo = function() {
|
|
5882
5937
|
const t = { ...this.config };
|
|
5883
|
-
for (const i of
|
|
5938
|
+
for (const i of Zs) delete t[i];
|
|
5884
5939
|
for (const i of Object.keys(t))
|
|
5885
5940
|
t[i] === null && delete t[i];
|
|
5886
5941
|
let o = t.options;
|
|
5887
|
-
if (h(this,
|
|
5888
|
-
o && o.length > 0 && K.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), o = h(this,
|
|
5942
|
+
if (h(this, Fe) && h(this, Ke))
|
|
5943
|
+
o && o.length > 0 && K.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), o = h(this, Ke);
|
|
5889
5944
|
else if (!o || o.length === 0) {
|
|
5890
5945
|
const i = this.config.optionsSource;
|
|
5891
5946
|
if (i != null) {
|
|
5892
|
-
const r = this.config.optionsFormat ?? "json", { options: n, error: a } =
|
|
5947
|
+
const r = this.config.optionsFormat ?? "json", { options: n, error: a } = mn(i, r, {
|
|
5893
5948
|
splitter: this.config.optionsSplitter,
|
|
5894
5949
|
rowSplitter: this.config.optionsRowSplitter
|
|
5895
5950
|
});
|
|
5896
5951
|
a && K.error(`[MultiSelectElement] ${a}`), o = n;
|
|
5897
5952
|
}
|
|
5898
5953
|
}
|
|
5899
|
-
if (t.options = o, h(this,
|
|
5900
|
-
for (const { key: i, member: r, callbackKey: n } of
|
|
5954
|
+
if (t.options = o, h(this, Fe))
|
|
5955
|
+
for (const { key: i, member: r, callbackKey: n } of _n)
|
|
5901
5956
|
t[i] === void 0 && !t[n] && (t[i] = r);
|
|
5902
5957
|
return t.getCounterCallback || (t.getCounterCallback = (i, r) => r !== void 0 ? `+${r} more` : `${i} selected`), t.onSelect = (i) => {
|
|
5903
5958
|
var r;
|
|
5904
5959
|
this.emit("select", {
|
|
5905
5960
|
option: i,
|
|
5906
5961
|
selectedOptions: ((r = h(this, k)) == null ? void 0 : r.getSelected()) ?? [],
|
|
5907
|
-
selectedValues: b(this,
|
|
5962
|
+
selectedValues: b(this, w, tt).call(this)
|
|
5908
5963
|
});
|
|
5909
5964
|
}, t.onDeselect = (i) => {
|
|
5910
5965
|
var r;
|
|
5911
5966
|
this.emit("deselect", {
|
|
5912
5967
|
option: i,
|
|
5913
5968
|
selectedOptions: ((r = h(this, k)) == null ? void 0 : r.getSelected()) ?? [],
|
|
5914
|
-
selectedValues: b(this,
|
|
5969
|
+
selectedValues: b(this, w, tt).call(this)
|
|
5915
5970
|
});
|
|
5916
5971
|
}, t.onChange = (i) => {
|
|
5917
5972
|
this.emit("change", {
|
|
5918
5973
|
selectedOptions: i,
|
|
5919
|
-
selectedValues: b(this,
|
|
5974
|
+
selectedValues: b(this, w, tt).call(this)
|
|
5920
5975
|
});
|
|
5921
5976
|
}, t.onAddNew = (i) => {
|
|
5922
5977
|
var r;
|
|
@@ -5924,21 +5979,21 @@ Mo = function() {
|
|
|
5924
5979
|
value: i.value,
|
|
5925
5980
|
option: i.option,
|
|
5926
5981
|
selectedOptions: ((r = h(this, k)) == null ? void 0 : r.getSelected()) ?? [],
|
|
5927
|
-
selectedValues: b(this,
|
|
5982
|
+
selectedValues: b(this, w, tt).call(this)
|
|
5928
5983
|
});
|
|
5929
5984
|
}, t.container = h(this, Z), t.hostElement = this, t;
|
|
5930
|
-
},
|
|
5985
|
+
}, Ao = function() {
|
|
5931
5986
|
if (h(this, Ie) && h(this, Ie).length > 0)
|
|
5932
5987
|
return h(this, Ie);
|
|
5933
5988
|
const t = this.config.initialValues;
|
|
5934
5989
|
return t && t.length > 0 ? t : void 0;
|
|
5935
|
-
},
|
|
5990
|
+
}, tt = function() {
|
|
5936
5991
|
var o;
|
|
5937
5992
|
const t = (o = h(this, k)) == null ? void 0 : o.getValue();
|
|
5938
5993
|
return t == null ? [] : Array.isArray(t) ? t : [t];
|
|
5939
5994
|
}, // ── §12.8 custom styles ───────────────────────────────────────────────────
|
|
5940
|
-
|
|
5941
|
-
const t = h(this,
|
|
5995
|
+
ds = function() {
|
|
5996
|
+
const t = h(this, ht);
|
|
5942
5997
|
if (!t) return;
|
|
5943
5998
|
const o = this.config.customStylesCallback;
|
|
5944
5999
|
if (typeof o != "function") {
|
|
@@ -5947,7 +6002,7 @@ ls = function() {
|
|
|
5947
6002
|
}
|
|
5948
6003
|
try {
|
|
5949
6004
|
const i = o();
|
|
5950
|
-
t.set(i), i && b(this,
|
|
6005
|
+
t.set(i), i && b(this, w, zo).call(this, i);
|
|
5951
6006
|
} catch (i) {
|
|
5952
6007
|
K.warn("[MultiSelectElement] customStylesCallback threw", i), t.clear();
|
|
5953
6008
|
}
|
|
@@ -5960,28 +6015,28 @@ ls = function() {
|
|
|
5960
6015
|
* De-duped per instance. If you genuinely define a `--ms-*` var for your own
|
|
5961
6016
|
* custom-rendered content, ignore the warning (or use a different prefix).
|
|
5962
6017
|
*/
|
|
5963
|
-
|
|
5964
|
-
const o =
|
|
6018
|
+
zo = function(t) {
|
|
6019
|
+
const o = xn();
|
|
5965
6020
|
if (o.size !== 0)
|
|
5966
|
-
for (const { name: i, suggestions: r } of
|
|
5967
|
-
h(this,
|
|
6021
|
+
for (const { name: i, suggestions: r } of Di(t, { prefix: "--ms-", consumed: o }))
|
|
6022
|
+
h(this, ut).has(i) || (h(this, ut).add(i), console.warn(
|
|
5968
6023
|
`[web-multiselect] customStylesCallback sets "${i}", which no web-multiselect style consumes — it will have no effect.` + (r.length ? ` Did you mean: ${r.join(", ")}?` : "") + " (If it's for your own custom-rendered content, ignore this.)"
|
|
5969
6024
|
));
|
|
5970
6025
|
}, // ── CSS-var sugar ─────────────────────────────────────────────────────────
|
|
5971
|
-
|
|
5972
|
-
for (const t of Object.keys(
|
|
5973
|
-
},
|
|
5974
|
-
for (const o of Object.keys(
|
|
5975
|
-
o in t && b(this,
|
|
5976
|
-
},
|
|
6026
|
+
No = function() {
|
|
6027
|
+
for (const t of Object.keys(vt)) b(this, w, hs).call(this, vt[t], this.config[t]);
|
|
6028
|
+
}, $o = function(t) {
|
|
6029
|
+
for (const o of Object.keys(vt))
|
|
6030
|
+
o in t && b(this, w, hs).call(this, vt[o], t[o]);
|
|
6031
|
+
}, hs = function(t, o) {
|
|
5977
6032
|
o == null || o === "" ? this.style.removeProperty(t) : this.style.setProperty(t, String(o));
|
|
5978
6033
|
}, // ── declarative <option> parsing (light DOM, once) ────────────────────────
|
|
5979
|
-
|
|
5980
|
-
if (h(this,
|
|
5981
|
-
|
|
5982
|
-
const t = b(this,
|
|
5983
|
-
t && (
|
|
5984
|
-
},
|
|
6034
|
+
Vo = function() {
|
|
6035
|
+
if (h(this, mt)) return;
|
|
6036
|
+
I(this, mt, !0);
|
|
6037
|
+
const t = b(this, w, Do).call(this);
|
|
6038
|
+
t && (I(this, Ke, t), I(this, Fe, !0));
|
|
6039
|
+
}, Do = function() {
|
|
5985
6040
|
const t = Array.from(this.children);
|
|
5986
6041
|
if (t.length === 0) return null;
|
|
5987
6042
|
const o = [];
|
|
@@ -5992,7 +6047,7 @@ No = function() {
|
|
|
5992
6047
|
value: n.value || ((c = n.textContent) == null ? void 0 : c.trim()) || "",
|
|
5993
6048
|
label: ((d = n.textContent) == null ? void 0 : d.trim()) || n.value || ""
|
|
5994
6049
|
};
|
|
5995
|
-
a && (l.group = a), n.hasAttribute("selected") && (h(this, Ie) ??
|
|
6050
|
+
a && (l.group = a), n.hasAttribute("selected") && (h(this, Ie) ?? I(this, Ie, [])).push(l.value), n.hasAttribute("disabled") && (l.disabled = !0), n.hasAttribute("data-icon") && (l.icon = n.getAttribute("data-icon")), n.hasAttribute("data-subtitle") && (l.subtitle = n.getAttribute("data-subtitle")), o.push(l), i = !0;
|
|
5996
6051
|
};
|
|
5997
6052
|
for (const n of t)
|
|
5998
6053
|
if (n.tagName === "OPTION")
|
|
@@ -6008,7 +6063,7 @@ No = function() {
|
|
|
6008
6063
|
(n.tagName === "OPTION" || n.tagName === "OPTGROUP") && n.remove();
|
|
6009
6064
|
return o;
|
|
6010
6065
|
}, // ── debug panel (deprecated; kept for back-compat) ────────────────────────
|
|
6011
|
-
|
|
6066
|
+
us = function() {
|
|
6012
6067
|
const t = h(this, Z).querySelector(".ms__debug-info");
|
|
6013
6068
|
if (t && t.remove(), !this.config.showDebugInfo) return;
|
|
6014
6069
|
const o = document.createElement("div");
|
|
@@ -6016,12 +6071,12 @@ ds = function() {
|
|
|
6016
6071
|
const i = document.createElement("details"), r = document.createElement("summary");
|
|
6017
6072
|
r.textContent = "Debug Info";
|
|
6018
6073
|
const n = document.createElement("div");
|
|
6019
|
-
n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Z).appendChild(o), b(this,
|
|
6020
|
-
},
|
|
6074
|
+
n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Z).appendChild(o), b(this, w, ms).call(this);
|
|
6075
|
+
}, ms = function() {
|
|
6021
6076
|
var l, c, d, u;
|
|
6022
6077
|
const t = h(this, Z).querySelector(".ms__debug-stats");
|
|
6023
6078
|
if (!t || !h(this, k)) return;
|
|
6024
|
-
const o = "2.
|
|
6079
|
+
const o = "2.1.0", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = h(this, k).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = h(this, k);
|
|
6025
6080
|
t.innerHTML = `
|
|
6026
6081
|
<span>Version: ${o}</span>
|
|
6027
6082
|
<span>Total Instances: ${i}</span>
|
|
@@ -6032,17 +6087,17 @@ ds = function() {
|
|
|
6032
6087
|
<span>Search: ${a.searchTerm || "none"}</span>
|
|
6033
6088
|
<span>Loading: ${a.isLoading ? "Yes" : "No"}</span>
|
|
6034
6089
|
`, setTimeout(() => {
|
|
6035
|
-
this.config.showDebugInfo && b(this,
|
|
6090
|
+
this.config.showDebugInfo && b(this, w, ms).call(this);
|
|
6036
6091
|
}, 500);
|
|
6037
6092
|
}, // Opt into the form-associated custom element lifecycle so form.reset() and
|
|
6038
6093
|
// form.elements see the control.
|
|
6039
|
-
p(
|
|
6040
|
-
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect",
|
|
6041
|
-
|
|
6094
|
+
p(ot, "formAssociated", !0), p(ot, "inputs", vn), p(ot, "events", wn);
|
|
6095
|
+
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", ot);
|
|
6096
|
+
Li("web-multiselect", ot, {
|
|
6042
6097
|
config: {
|
|
6043
6098
|
name: "@keenmate/web-multiselect",
|
|
6044
|
-
version: "2.
|
|
6045
|
-
author: "Keenmate",
|
|
6099
|
+
version: "2.1.0",
|
|
6100
|
+
author: "Keenmate s.r.o.",
|
|
6046
6101
|
license: "MIT",
|
|
6047
6102
|
repository: "git+https://github.com/keenmate/web-multiselect.git",
|
|
6048
6103
|
homepage: "https://web-multiselect.keenmate.dev"
|
|
@@ -6050,23 +6105,23 @@ Oi("web-multiselect", st, {
|
|
|
6050
6105
|
logging: ce
|
|
6051
6106
|
});
|
|
6052
6107
|
export {
|
|
6053
|
-
|
|
6054
|
-
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6108
|
+
Sn as LOGGING_CATEGORIES,
|
|
6109
|
+
ot as MultiSelectElement,
|
|
6110
|
+
un as OPTIONS_FORMATS,
|
|
6111
|
+
li as TABLET_MIN_SHORT_SIDE,
|
|
6112
|
+
dn as WebMultiSelect,
|
|
6113
|
+
ci as classifyDevice,
|
|
6114
|
+
Cn as configureBreakpoints,
|
|
6060
6115
|
K as dataLogger,
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6064
|
-
|
|
6116
|
+
In as disableLogging,
|
|
6117
|
+
Tn as enableLogging,
|
|
6118
|
+
Ot as getEnvironment,
|
|
6119
|
+
bt as initLogger,
|
|
6065
6120
|
R as interactionLogger,
|
|
6066
|
-
|
|
6067
|
-
|
|
6068
|
-
|
|
6069
|
-
|
|
6070
|
-
|
|
6121
|
+
ni as observeEnvironment,
|
|
6122
|
+
ai as observeViewport,
|
|
6123
|
+
mn as parseOptionsData,
|
|
6124
|
+
On as setCategoryLevel,
|
|
6125
|
+
Pn as setLogLevel,
|
|
6071
6126
|
J as uiLogger
|
|
6072
6127
|
};
|