@keenmate/web-multiselect 1.1.0 → 1.2.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 +166 -110
- package/dist/multiselect.js +726 -704
- package/dist/multiselect.umd.js +5 -5
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/scss/_css-variables.scss +29 -0
- package/src/scss/_input-dropdown.scss +30 -0
- package/src/scss/_variables.scss +29 -0
package/dist/multiselect.js
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
1
|
var lt = Object.defineProperty;
|
|
2
|
-
var ct = (
|
|
3
|
-
var
|
|
4
|
-
const ce = Math.min, H = Math.max, de = Math.round, re = Math.floor, E = (
|
|
5
|
-
x:
|
|
6
|
-
y:
|
|
2
|
+
var ct = (i, e, t) => e in i ? lt(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
|
|
3
|
+
var h = (i, e, t) => ct(i, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
const ce = Math.min, H = Math.max, de = Math.round, re = Math.floor, E = (i) => ({
|
|
5
|
+
x: i,
|
|
6
|
+
y: i
|
|
7
7
|
}), dt = {
|
|
8
8
|
left: "right",
|
|
9
9
|
right: "left",
|
|
10
10
|
bottom: "top",
|
|
11
11
|
top: "bottom"
|
|
12
|
-
},
|
|
12
|
+
}, pt = {
|
|
13
13
|
start: "end",
|
|
14
14
|
end: "start"
|
|
15
15
|
};
|
|
16
|
-
function Ee(
|
|
17
|
-
return H(
|
|
16
|
+
function Ee(i, e, t) {
|
|
17
|
+
return H(i, ce(e, t));
|
|
18
18
|
}
|
|
19
|
-
function me(
|
|
20
|
-
return typeof
|
|
19
|
+
function me(i, e) {
|
|
20
|
+
return typeof i == "function" ? i(e) : i;
|
|
21
21
|
}
|
|
22
|
-
function F(
|
|
23
|
-
return
|
|
22
|
+
function F(i) {
|
|
23
|
+
return i.split("-")[0];
|
|
24
24
|
}
|
|
25
|
-
function ue(
|
|
26
|
-
return
|
|
25
|
+
function ue(i) {
|
|
26
|
+
return i.split("-")[1];
|
|
27
27
|
}
|
|
28
|
-
function Fe(
|
|
29
|
-
return
|
|
28
|
+
function Fe(i) {
|
|
29
|
+
return i === "x" ? "y" : "x";
|
|
30
30
|
}
|
|
31
|
-
function Ge(
|
|
32
|
-
return
|
|
31
|
+
function Ge(i) {
|
|
32
|
+
return i === "y" ? "height" : "width";
|
|
33
33
|
}
|
|
34
|
-
const
|
|
35
|
-
function
|
|
36
|
-
return
|
|
34
|
+
const ht = /* @__PURE__ */ new Set(["top", "bottom"]);
|
|
35
|
+
function P(i) {
|
|
36
|
+
return ht.has(F(i)) ? "y" : "x";
|
|
37
37
|
}
|
|
38
|
-
function We(
|
|
39
|
-
return Fe(
|
|
38
|
+
function We(i) {
|
|
39
|
+
return Fe(P(i));
|
|
40
40
|
}
|
|
41
|
-
function mt(
|
|
41
|
+
function mt(i, e, t) {
|
|
42
42
|
t === void 0 && (t = !1);
|
|
43
|
-
const
|
|
44
|
-
let r = o === "x" ?
|
|
45
|
-
return e.reference[n] > e.floating[n] && (r =
|
|
43
|
+
const s = ue(i), o = We(i), n = Ge(o);
|
|
44
|
+
let r = o === "x" ? s === (t ? "end" : "start") ? "right" : "left" : s === "start" ? "bottom" : "top";
|
|
45
|
+
return e.reference[n] > e.floating[n] && (r = pe(r)), [r, pe(r)];
|
|
46
46
|
}
|
|
47
|
-
function ut(
|
|
48
|
-
const e =
|
|
49
|
-
return [
|
|
47
|
+
function ut(i) {
|
|
48
|
+
const e = pe(i);
|
|
49
|
+
return [xe(i), e, xe(e)];
|
|
50
50
|
}
|
|
51
|
-
function
|
|
52
|
-
return
|
|
51
|
+
function xe(i) {
|
|
52
|
+
return i.replace(/start|end/g, (e) => pt[e]);
|
|
53
53
|
}
|
|
54
|
-
const
|
|
55
|
-
function ft(
|
|
56
|
-
switch (
|
|
54
|
+
const ze = ["left", "right"], Me = ["right", "left"], gt = ["top", "bottom"], bt = ["bottom", "top"];
|
|
55
|
+
function ft(i, e, t) {
|
|
56
|
+
switch (i) {
|
|
57
57
|
case "top":
|
|
58
58
|
case "bottom":
|
|
59
|
-
return t ? e ?
|
|
59
|
+
return t ? e ? Me : ze : e ? ze : Me;
|
|
60
60
|
case "left":
|
|
61
61
|
case "right":
|
|
62
62
|
return e ? gt : bt;
|
|
@@ -64,209 +64,209 @@ function ft(s, e, t) {
|
|
|
64
64
|
return [];
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
function vt(
|
|
68
|
-
const o = ue(
|
|
69
|
-
let n = ft(F(
|
|
70
|
-
return o && (n = n.map((r) => r + "-" + o), e && (n = n.concat(n.map(
|
|
67
|
+
function vt(i, e, t, s) {
|
|
68
|
+
const o = ue(i);
|
|
69
|
+
let n = ft(F(i), t === "start", s);
|
|
70
|
+
return o && (n = n.map((r) => r + "-" + o), e && (n = n.concat(n.map(xe)))), n;
|
|
71
71
|
}
|
|
72
|
-
function
|
|
73
|
-
return
|
|
72
|
+
function pe(i) {
|
|
73
|
+
return i.replace(/left|right|bottom|top/g, (e) => dt[e]);
|
|
74
74
|
}
|
|
75
|
-
function wt(
|
|
75
|
+
function wt(i) {
|
|
76
76
|
return {
|
|
77
77
|
top: 0,
|
|
78
78
|
right: 0,
|
|
79
79
|
bottom: 0,
|
|
80
80
|
left: 0,
|
|
81
|
-
...
|
|
81
|
+
...i
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
function
|
|
85
|
-
return typeof
|
|
86
|
-
top:
|
|
87
|
-
right:
|
|
88
|
-
bottom:
|
|
89
|
-
left:
|
|
84
|
+
function _t(i) {
|
|
85
|
+
return typeof i != "number" ? wt(i) : {
|
|
86
|
+
top: i,
|
|
87
|
+
right: i,
|
|
88
|
+
bottom: i,
|
|
89
|
+
left: i
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
-
function
|
|
92
|
+
function he(i) {
|
|
93
93
|
const {
|
|
94
94
|
x: e,
|
|
95
95
|
y: t,
|
|
96
|
-
width:
|
|
96
|
+
width: s,
|
|
97
97
|
height: o
|
|
98
|
-
} =
|
|
98
|
+
} = i;
|
|
99
99
|
return {
|
|
100
|
-
width:
|
|
100
|
+
width: s,
|
|
101
101
|
height: o,
|
|
102
102
|
top: t,
|
|
103
103
|
left: e,
|
|
104
|
-
right: e +
|
|
104
|
+
right: e + s,
|
|
105
105
|
bottom: t + o,
|
|
106
106
|
x: e,
|
|
107
107
|
y: t
|
|
108
108
|
};
|
|
109
109
|
}
|
|
110
|
-
function
|
|
110
|
+
function Ve(i, e, t) {
|
|
111
111
|
let {
|
|
112
|
-
reference:
|
|
112
|
+
reference: s,
|
|
113
113
|
floating: o
|
|
114
|
-
} =
|
|
115
|
-
const n =
|
|
116
|
-
let
|
|
114
|
+
} = i;
|
|
115
|
+
const n = P(e), r = We(e), a = Ge(r), l = F(e), c = n === "y", d = s.x + s.width / 2 - o.width / 2, m = s.y + s.height / 2 - o.height / 2, u = s[a] / 2 - o[a] / 2;
|
|
116
|
+
let p;
|
|
117
117
|
switch (l) {
|
|
118
118
|
case "top":
|
|
119
|
-
|
|
119
|
+
p = {
|
|
120
120
|
x: d,
|
|
121
|
-
y:
|
|
121
|
+
y: s.y - o.height
|
|
122
122
|
};
|
|
123
123
|
break;
|
|
124
124
|
case "bottom":
|
|
125
|
-
|
|
125
|
+
p = {
|
|
126
126
|
x: d,
|
|
127
|
-
y:
|
|
127
|
+
y: s.y + s.height
|
|
128
128
|
};
|
|
129
129
|
break;
|
|
130
130
|
case "right":
|
|
131
|
-
|
|
132
|
-
x:
|
|
131
|
+
p = {
|
|
132
|
+
x: s.x + s.width,
|
|
133
133
|
y: m
|
|
134
134
|
};
|
|
135
135
|
break;
|
|
136
136
|
case "left":
|
|
137
|
-
|
|
138
|
-
x:
|
|
137
|
+
p = {
|
|
138
|
+
x: s.x - o.width,
|
|
139
139
|
y: m
|
|
140
140
|
};
|
|
141
141
|
break;
|
|
142
142
|
default:
|
|
143
|
-
|
|
144
|
-
x:
|
|
145
|
-
y:
|
|
143
|
+
p = {
|
|
144
|
+
x: s.x,
|
|
145
|
+
y: s.y
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
switch (ue(e)) {
|
|
149
149
|
case "start":
|
|
150
|
-
|
|
150
|
+
p[r] -= u * (t && c ? -1 : 1);
|
|
151
151
|
break;
|
|
152
152
|
case "end":
|
|
153
|
-
|
|
153
|
+
p[r] += u * (t && c ? -1 : 1);
|
|
154
154
|
break;
|
|
155
155
|
}
|
|
156
|
-
return
|
|
156
|
+
return p;
|
|
157
157
|
}
|
|
158
|
-
const
|
|
158
|
+
const yt = async (i, e, t) => {
|
|
159
159
|
const {
|
|
160
|
-
placement:
|
|
160
|
+
placement: s = "bottom",
|
|
161
161
|
strategy: o = "absolute",
|
|
162
162
|
middleware: n = [],
|
|
163
163
|
platform: r
|
|
164
164
|
} = t, a = n.filter(Boolean), l = await (r.isRTL == null ? void 0 : r.isRTL(e));
|
|
165
165
|
let c = await r.getElementRects({
|
|
166
|
-
reference:
|
|
166
|
+
reference: i,
|
|
167
167
|
floating: e,
|
|
168
168
|
strategy: o
|
|
169
169
|
}), {
|
|
170
170
|
x: d,
|
|
171
171
|
y: m
|
|
172
|
-
} =
|
|
172
|
+
} = Ve(c, s, l), u = s, p = {}, g = 0;
|
|
173
173
|
for (let b = 0; b < a.length; b++) {
|
|
174
174
|
const {
|
|
175
175
|
name: v,
|
|
176
176
|
fn: w
|
|
177
177
|
} = a[b], {
|
|
178
|
-
x:
|
|
179
|
-
y:
|
|
178
|
+
x: _,
|
|
179
|
+
y: x,
|
|
180
180
|
data: k,
|
|
181
|
-
reset:
|
|
181
|
+
reset: C
|
|
182
182
|
} = await w({
|
|
183
183
|
x: d,
|
|
184
184
|
y: m,
|
|
185
|
-
initialPlacement:
|
|
185
|
+
initialPlacement: s,
|
|
186
186
|
placement: u,
|
|
187
187
|
strategy: o,
|
|
188
|
-
middlewareData:
|
|
188
|
+
middlewareData: p,
|
|
189
189
|
rects: c,
|
|
190
190
|
platform: r,
|
|
191
191
|
elements: {
|
|
192
|
-
reference:
|
|
192
|
+
reference: i,
|
|
193
193
|
floating: e
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
|
-
d =
|
|
197
|
-
...
|
|
196
|
+
d = _ ?? d, m = x ?? m, p = {
|
|
197
|
+
...p,
|
|
198
198
|
[v]: {
|
|
199
|
-
...
|
|
199
|
+
...p[v],
|
|
200
200
|
...k
|
|
201
201
|
}
|
|
202
|
-
},
|
|
203
|
-
reference:
|
|
202
|
+
}, C && g <= 50 && (g++, typeof C == "object" && (C.placement && (u = C.placement), C.rects && (c = C.rects === !0 ? await r.getElementRects({
|
|
203
|
+
reference: i,
|
|
204
204
|
floating: e,
|
|
205
205
|
strategy: o
|
|
206
|
-
}) :
|
|
206
|
+
}) : C.rects), {
|
|
207
207
|
x: d,
|
|
208
208
|
y: m
|
|
209
|
-
} =
|
|
209
|
+
} = Ve(c, u, l)), b = -1);
|
|
210
210
|
}
|
|
211
211
|
return {
|
|
212
212
|
x: d,
|
|
213
213
|
y: m,
|
|
214
214
|
placement: u,
|
|
215
215
|
strategy: o,
|
|
216
|
-
middlewareData:
|
|
216
|
+
middlewareData: p
|
|
217
217
|
};
|
|
218
218
|
};
|
|
219
|
-
async function je(
|
|
219
|
+
async function je(i, e) {
|
|
220
220
|
var t;
|
|
221
221
|
e === void 0 && (e = {});
|
|
222
222
|
const {
|
|
223
|
-
x:
|
|
223
|
+
x: s,
|
|
224
224
|
y: o,
|
|
225
225
|
platform: n,
|
|
226
226
|
rects: r,
|
|
227
227
|
elements: a,
|
|
228
228
|
strategy: l
|
|
229
|
-
} =
|
|
229
|
+
} = i, {
|
|
230
230
|
boundary: c = "clippingAncestors",
|
|
231
231
|
rootBoundary: d = "viewport",
|
|
232
232
|
elementContext: m = "floating",
|
|
233
233
|
altBoundary: u = !1,
|
|
234
|
-
padding:
|
|
235
|
-
} = me(e,
|
|
234
|
+
padding: p = 0
|
|
235
|
+
} = me(e, i), g = _t(p), v = a[u ? m === "floating" ? "reference" : "floating" : m], w = he(await n.getClippingRect({
|
|
236
236
|
element: (t = await (n.isElement == null ? void 0 : n.isElement(v))) == null || t ? v : v.contextElement || await (n.getDocumentElement == null ? void 0 : n.getDocumentElement(a.floating)),
|
|
237
237
|
boundary: c,
|
|
238
238
|
rootBoundary: d,
|
|
239
239
|
strategy: l
|
|
240
|
-
})),
|
|
241
|
-
x:
|
|
240
|
+
})), _ = m === "floating" ? {
|
|
241
|
+
x: s,
|
|
242
242
|
y: o,
|
|
243
243
|
width: r.floating.width,
|
|
244
244
|
height: r.floating.height
|
|
245
|
-
} : r.reference,
|
|
245
|
+
} : r.reference, x = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(a.floating)), k = await (n.isElement == null ? void 0 : n.isElement(x)) ? await (n.getScale == null ? void 0 : n.getScale(x)) || {
|
|
246
246
|
x: 1,
|
|
247
247
|
y: 1
|
|
248
248
|
} : {
|
|
249
249
|
x: 1,
|
|
250
250
|
y: 1
|
|
251
|
-
},
|
|
251
|
+
}, C = he(n.convertOffsetParentRelativeRectToViewportRelativeRect ? await n.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
252
252
|
elements: a,
|
|
253
|
-
rect:
|
|
254
|
-
offsetParent:
|
|
253
|
+
rect: _,
|
|
254
|
+
offsetParent: x,
|
|
255
255
|
strategy: l
|
|
256
|
-
}) :
|
|
256
|
+
}) : _);
|
|
257
257
|
return {
|
|
258
|
-
top: (w.top -
|
|
259
|
-
bottom: (
|
|
260
|
-
left: (w.left -
|
|
261
|
-
right: (
|
|
258
|
+
top: (w.top - C.top + g.top) / k.y,
|
|
259
|
+
bottom: (C.bottom - w.bottom + g.bottom) / k.y,
|
|
260
|
+
left: (w.left - C.left + g.left) / k.x,
|
|
261
|
+
right: (C.right - w.right + g.right) / k.x
|
|
262
262
|
};
|
|
263
263
|
}
|
|
264
|
-
const
|
|
265
|
-
return
|
|
264
|
+
const xt = function(i) {
|
|
265
|
+
return i === void 0 && (i = {}), {
|
|
266
266
|
name: "flip",
|
|
267
|
-
options:
|
|
267
|
+
options: i,
|
|
268
268
|
async fn(e) {
|
|
269
|
-
var t,
|
|
269
|
+
var t, s;
|
|
270
270
|
const {
|
|
271
271
|
placement: o,
|
|
272
272
|
middlewareData: n,
|
|
@@ -278,53 +278,53 @@ const Ct = function(s) {
|
|
|
278
278
|
mainAxis: d = !0,
|
|
279
279
|
crossAxis: m = !0,
|
|
280
280
|
fallbackPlacements: u,
|
|
281
|
-
fallbackStrategy:
|
|
281
|
+
fallbackStrategy: p = "bestFit",
|
|
282
282
|
fallbackAxisSideDirection: g = "none",
|
|
283
283
|
flipAlignment: b = !0,
|
|
284
284
|
...v
|
|
285
|
-
} = me(
|
|
285
|
+
} = me(i, e);
|
|
286
286
|
if ((t = n.arrow) != null && t.alignmentOffset)
|
|
287
287
|
return {};
|
|
288
|
-
const w = F(o),
|
|
289
|
-
!u && J &&
|
|
290
|
-
const W = [a, ...
|
|
291
|
-
let j = ((
|
|
288
|
+
const w = F(o), _ = P(a), x = F(a) === a, k = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), C = u || (x || !b ? [pe(a)] : ut(a)), J = g !== "none";
|
|
289
|
+
!u && J && C.push(...vt(a, b, g, k));
|
|
290
|
+
const W = [a, ...C], we = await je(e, v), ne = [];
|
|
291
|
+
let j = ((s = n.flip) == null ? void 0 : s.overflows) || [];
|
|
292
292
|
if (d && ne.push(we[w]), m) {
|
|
293
|
-
const
|
|
294
|
-
ne.push(we[
|
|
293
|
+
const D = mt(o, r, k);
|
|
294
|
+
ne.push(we[D[0]], we[D[1]]);
|
|
295
295
|
}
|
|
296
296
|
if (j = [...j, {
|
|
297
297
|
placement: o,
|
|
298
298
|
overflows: ne
|
|
299
|
-
}], !ne.every((
|
|
299
|
+
}], !ne.every((D) => D <= 0)) {
|
|
300
300
|
var Oe, Le;
|
|
301
|
-
const
|
|
302
|
-
if (
|
|
301
|
+
const D = (((Oe = n.flip) == null ? void 0 : Oe.index) || 0) + 1, _e = W[D];
|
|
302
|
+
if (_e && (!(m === "alignment" ? _ !== P(_e) : !1) || // We leave the current main axis only if every placement on that axis
|
|
303
303
|
// overflows the main axis.
|
|
304
|
-
j.every((T) =>
|
|
304
|
+
j.every((T) => P(T.placement) === _ ? T.overflows[0] > 0 : !0)))
|
|
305
305
|
return {
|
|
306
306
|
data: {
|
|
307
|
-
index:
|
|
307
|
+
index: D,
|
|
308
308
|
overflows: j
|
|
309
309
|
},
|
|
310
310
|
reset: {
|
|
311
|
-
placement:
|
|
311
|
+
placement: _e
|
|
312
312
|
}
|
|
313
313
|
};
|
|
314
314
|
let X = (Le = j.filter((R) => R.overflows[0] <= 0).sort((R, T) => R.overflows[1] - T.overflows[1])[0]) == null ? void 0 : Le.placement;
|
|
315
315
|
if (!X)
|
|
316
|
-
switch (
|
|
316
|
+
switch (p) {
|
|
317
317
|
case "bestFit": {
|
|
318
318
|
var $e;
|
|
319
319
|
const R = ($e = j.filter((T) => {
|
|
320
320
|
if (J) {
|
|
321
|
-
const
|
|
322
|
-
return
|
|
321
|
+
const V = P(T.placement);
|
|
322
|
+
return V === _ || // Create a bias to the `y` side axis due to horizontal
|
|
323
323
|
// reading directions favoring greater width.
|
|
324
|
-
|
|
324
|
+
V === "y";
|
|
325
325
|
}
|
|
326
326
|
return !0;
|
|
327
|
-
}).map((T) => [T.placement, T.overflows.filter((
|
|
327
|
+
}).map((T) => [T.placement, T.overflows.filter((V) => V > 0).reduce((V, at) => V + at, 0)]).sort((T, V) => T[1] - V[1])[0]) == null ? void 0 : $e[0];
|
|
328
328
|
R && (X = R);
|
|
329
329
|
break;
|
|
330
330
|
}
|
|
@@ -342,16 +342,16 @@ const Ct = function(s) {
|
|
|
342
342
|
return {};
|
|
343
343
|
}
|
|
344
344
|
};
|
|
345
|
-
},
|
|
346
|
-
async function kt(
|
|
345
|
+
}, Ct = /* @__PURE__ */ new Set(["left", "top"]);
|
|
346
|
+
async function kt(i, e) {
|
|
347
347
|
const {
|
|
348
348
|
placement: t,
|
|
349
|
-
platform:
|
|
349
|
+
platform: s,
|
|
350
350
|
elements: o
|
|
351
|
-
} =
|
|
351
|
+
} = i, n = await (s.isRTL == null ? void 0 : s.isRTL(o.floating)), r = F(t), a = ue(t), l = P(t) === "y", c = Ct.has(r) ? -1 : 1, d = n && l ? -1 : 1, m = me(e, i);
|
|
352
352
|
let {
|
|
353
353
|
mainAxis: u,
|
|
354
|
-
crossAxis:
|
|
354
|
+
crossAxis: p,
|
|
355
355
|
alignmentAxis: g
|
|
356
356
|
} = typeof m == "number" ? {
|
|
357
357
|
mainAxis: m,
|
|
@@ -362,27 +362,27 @@ async function kt(s, e) {
|
|
|
362
362
|
crossAxis: m.crossAxis || 0,
|
|
363
363
|
alignmentAxis: m.alignmentAxis
|
|
364
364
|
};
|
|
365
|
-
return a && typeof g == "number" && (
|
|
366
|
-
x:
|
|
365
|
+
return a && typeof g == "number" && (p = a === "end" ? g * -1 : g), l ? {
|
|
366
|
+
x: p * d,
|
|
367
367
|
y: u * c
|
|
368
368
|
} : {
|
|
369
369
|
x: u * c,
|
|
370
|
-
y:
|
|
370
|
+
y: p * d
|
|
371
371
|
};
|
|
372
372
|
}
|
|
373
|
-
const St = function(
|
|
374
|
-
return
|
|
373
|
+
const St = function(i) {
|
|
374
|
+
return i === void 0 && (i = 0), {
|
|
375
375
|
name: "offset",
|
|
376
|
-
options:
|
|
376
|
+
options: i,
|
|
377
377
|
async fn(e) {
|
|
378
|
-
var t,
|
|
378
|
+
var t, s;
|
|
379
379
|
const {
|
|
380
380
|
x: o,
|
|
381
381
|
y: n,
|
|
382
382
|
placement: r,
|
|
383
383
|
middlewareData: a
|
|
384
|
-
} = e, l = await kt(e,
|
|
385
|
-
return r === ((t = a.offset) == null ? void 0 : t.placement) && (
|
|
384
|
+
} = e, l = await kt(e, i);
|
|
385
|
+
return r === ((t = a.offset) == null ? void 0 : t.placement) && (s = a.arrow) != null && s.alignmentOffset ? {} : {
|
|
386
386
|
x: o + l.x,
|
|
387
387
|
y: n + l.y,
|
|
388
388
|
data: {
|
|
@@ -392,14 +392,14 @@ const St = function(s) {
|
|
|
392
392
|
};
|
|
393
393
|
}
|
|
394
394
|
};
|
|
395
|
-
}, At = function(
|
|
396
|
-
return
|
|
395
|
+
}, At = function(i) {
|
|
396
|
+
return i === void 0 && (i = {}), {
|
|
397
397
|
name: "shift",
|
|
398
|
-
options:
|
|
398
|
+
options: i,
|
|
399
399
|
async fn(e) {
|
|
400
400
|
const {
|
|
401
401
|
x: t,
|
|
402
|
-
y:
|
|
402
|
+
y: s,
|
|
403
403
|
placement: o
|
|
404
404
|
} = e, {
|
|
405
405
|
mainAxis: n = !0,
|
|
@@ -408,38 +408,38 @@ const St = function(s) {
|
|
|
408
408
|
fn: (v) => {
|
|
409
409
|
let {
|
|
410
410
|
x: w,
|
|
411
|
-
y
|
|
411
|
+
y: _
|
|
412
412
|
} = v;
|
|
413
413
|
return {
|
|
414
414
|
x: w,
|
|
415
|
-
y
|
|
415
|
+
y: _
|
|
416
416
|
};
|
|
417
417
|
}
|
|
418
418
|
},
|
|
419
419
|
...l
|
|
420
|
-
} = me(
|
|
420
|
+
} = me(i, e), c = {
|
|
421
421
|
x: t,
|
|
422
|
-
y:
|
|
423
|
-
}, d = await je(e, l), m =
|
|
424
|
-
let
|
|
422
|
+
y: s
|
|
423
|
+
}, d = await je(e, l), m = P(F(o)), u = Fe(m);
|
|
424
|
+
let p = c[u], g = c[m];
|
|
425
425
|
if (n) {
|
|
426
|
-
const v = u === "y" ? "top" : "left", w = u === "y" ? "bottom" : "right",
|
|
427
|
-
|
|
426
|
+
const v = u === "y" ? "top" : "left", w = u === "y" ? "bottom" : "right", _ = p + d[v], x = p - d[w];
|
|
427
|
+
p = Ee(_, p, x);
|
|
428
428
|
}
|
|
429
429
|
if (r) {
|
|
430
|
-
const v = m === "y" ? "top" : "left", w = m === "y" ? "bottom" : "right",
|
|
431
|
-
g = Ee(
|
|
430
|
+
const v = m === "y" ? "top" : "left", w = m === "y" ? "bottom" : "right", _ = g + d[v], x = g - d[w];
|
|
431
|
+
g = Ee(_, g, x);
|
|
432
432
|
}
|
|
433
433
|
const b = a.fn({
|
|
434
434
|
...e,
|
|
435
|
-
[u]:
|
|
435
|
+
[u]: p,
|
|
436
436
|
[m]: g
|
|
437
437
|
});
|
|
438
438
|
return {
|
|
439
439
|
...b,
|
|
440
440
|
data: {
|
|
441
441
|
x: b.x - t,
|
|
442
|
-
y: b.y -
|
|
442
|
+
y: b.y - s,
|
|
443
443
|
enabled: {
|
|
444
444
|
[u]: n,
|
|
445
445
|
[m]: r
|
|
@@ -452,207 +452,207 @@ const St = function(s) {
|
|
|
452
452
|
function ge() {
|
|
453
453
|
return typeof window < "u";
|
|
454
454
|
}
|
|
455
|
-
function Y(
|
|
456
|
-
return Ue(
|
|
455
|
+
function Y(i) {
|
|
456
|
+
return Ue(i) ? (i.nodeName || "").toLowerCase() : "#document";
|
|
457
457
|
}
|
|
458
|
-
function I(
|
|
458
|
+
function I(i) {
|
|
459
459
|
var e;
|
|
460
|
-
return (
|
|
460
|
+
return (i == null || (e = i.ownerDocument) == null ? void 0 : e.defaultView) || window;
|
|
461
461
|
}
|
|
462
|
-
function
|
|
462
|
+
function M(i) {
|
|
463
463
|
var e;
|
|
464
|
-
return (e = (Ue(
|
|
464
|
+
return (e = (Ue(i) ? i.ownerDocument : i.document) || window.document) == null ? void 0 : e.documentElement;
|
|
465
465
|
}
|
|
466
|
-
function Ue(
|
|
467
|
-
return ge() ?
|
|
466
|
+
function Ue(i) {
|
|
467
|
+
return ge() ? i instanceof Node || i instanceof I(i).Node : !1;
|
|
468
468
|
}
|
|
469
|
-
function L(
|
|
470
|
-
return ge() ?
|
|
469
|
+
function L(i) {
|
|
470
|
+
return ge() ? i instanceof Element || i instanceof I(i).Element : !1;
|
|
471
471
|
}
|
|
472
|
-
function
|
|
473
|
-
return ge() ?
|
|
472
|
+
function z(i) {
|
|
473
|
+
return ge() ? i instanceof HTMLElement || i instanceof I(i).HTMLElement : !1;
|
|
474
474
|
}
|
|
475
|
-
function
|
|
476
|
-
return !ge() || typeof ShadowRoot > "u" ? !1 :
|
|
475
|
+
function Pe(i) {
|
|
476
|
+
return !ge() || typeof ShadowRoot > "u" ? !1 : i instanceof ShadowRoot || i instanceof I(i).ShadowRoot;
|
|
477
477
|
}
|
|
478
478
|
const It = /* @__PURE__ */ new Set(["inline", "contents"]);
|
|
479
|
-
function oe(
|
|
479
|
+
function oe(i) {
|
|
480
480
|
const {
|
|
481
481
|
overflow: e,
|
|
482
482
|
overflowX: t,
|
|
483
|
-
overflowY:
|
|
483
|
+
overflowY: s,
|
|
484
484
|
display: o
|
|
485
|
-
} = $(
|
|
486
|
-
return /auto|scroll|overlay|hidden|clip/.test(e +
|
|
485
|
+
} = $(i);
|
|
486
|
+
return /auto|scroll|overlay|hidden|clip/.test(e + s + t) && !It.has(o);
|
|
487
487
|
}
|
|
488
488
|
const Tt = /* @__PURE__ */ new Set(["table", "td", "th"]);
|
|
489
|
-
function Ot(
|
|
490
|
-
return Tt.has(Y(
|
|
489
|
+
function Ot(i) {
|
|
490
|
+
return Tt.has(Y(i));
|
|
491
491
|
}
|
|
492
492
|
const Lt = [":popover-open", ":modal"];
|
|
493
|
-
function be(
|
|
493
|
+
function be(i) {
|
|
494
494
|
return Lt.some((e) => {
|
|
495
495
|
try {
|
|
496
|
-
return
|
|
496
|
+
return i.matches(e);
|
|
497
497
|
} catch {
|
|
498
498
|
return !1;
|
|
499
499
|
}
|
|
500
500
|
});
|
|
501
501
|
}
|
|
502
|
-
const $t = ["transform", "translate", "scale", "rotate", "perspective"], Et = ["transform", "translate", "scale", "rotate", "perspective", "filter"],
|
|
503
|
-
function Ae(
|
|
504
|
-
const e = Ie(), t = L(
|
|
505
|
-
return $t.some((
|
|
502
|
+
const $t = ["transform", "translate", "scale", "rotate", "perspective"], Et = ["transform", "translate", "scale", "rotate", "perspective", "filter"], zt = ["paint", "layout", "strict", "content"];
|
|
503
|
+
function Ae(i) {
|
|
504
|
+
const e = Ie(), t = L(i) ? $(i) : i;
|
|
505
|
+
return $t.some((s) => t[s] ? t[s] !== "none" : !1) || (t.containerType ? t.containerType !== "normal" : !1) || !e && (t.backdropFilter ? t.backdropFilter !== "none" : !1) || !e && (t.filter ? t.filter !== "none" : !1) || Et.some((s) => (t.willChange || "").includes(s)) || zt.some((s) => (t.contain || "").includes(s));
|
|
506
506
|
}
|
|
507
|
-
function
|
|
508
|
-
let e =
|
|
509
|
-
for (;
|
|
507
|
+
function Mt(i) {
|
|
508
|
+
let e = B(i);
|
|
509
|
+
for (; z(e) && !K(e); ) {
|
|
510
510
|
if (Ae(e))
|
|
511
511
|
return e;
|
|
512
512
|
if (be(e))
|
|
513
513
|
return null;
|
|
514
|
-
e =
|
|
514
|
+
e = B(e);
|
|
515
515
|
}
|
|
516
516
|
return null;
|
|
517
517
|
}
|
|
518
518
|
function Ie() {
|
|
519
519
|
return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
|
|
520
520
|
}
|
|
521
|
-
const
|
|
522
|
-
function K(
|
|
523
|
-
return
|
|
521
|
+
const Vt = /* @__PURE__ */ new Set(["html", "body", "#document"]);
|
|
522
|
+
function K(i) {
|
|
523
|
+
return Vt.has(Y(i));
|
|
524
524
|
}
|
|
525
|
-
function $(
|
|
526
|
-
return I(
|
|
525
|
+
function $(i) {
|
|
526
|
+
return I(i).getComputedStyle(i);
|
|
527
527
|
}
|
|
528
|
-
function fe(
|
|
529
|
-
return L(
|
|
530
|
-
scrollLeft:
|
|
531
|
-
scrollTop:
|
|
528
|
+
function fe(i) {
|
|
529
|
+
return L(i) ? {
|
|
530
|
+
scrollLeft: i.scrollLeft,
|
|
531
|
+
scrollTop: i.scrollTop
|
|
532
532
|
} : {
|
|
533
|
-
scrollLeft:
|
|
534
|
-
scrollTop:
|
|
533
|
+
scrollLeft: i.scrollX,
|
|
534
|
+
scrollTop: i.scrollY
|
|
535
535
|
};
|
|
536
536
|
}
|
|
537
|
-
function
|
|
538
|
-
if (Y(
|
|
539
|
-
return
|
|
537
|
+
function B(i) {
|
|
538
|
+
if (Y(i) === "html")
|
|
539
|
+
return i;
|
|
540
540
|
const e = (
|
|
541
541
|
// Step into the shadow DOM of the parent of a slotted node.
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
542
|
+
i.assignedSlot || // DOM Element detected.
|
|
543
|
+
i.parentNode || // ShadowRoot detected.
|
|
544
|
+
Pe(i) && i.host || // Fallback.
|
|
545
|
+
M(i)
|
|
546
546
|
);
|
|
547
|
-
return
|
|
547
|
+
return Pe(e) ? e.host : e;
|
|
548
548
|
}
|
|
549
|
-
function Ke(
|
|
550
|
-
const e =
|
|
551
|
-
return K(e) ?
|
|
549
|
+
function Ke(i) {
|
|
550
|
+
const e = B(i);
|
|
551
|
+
return K(e) ? i.ownerDocument ? i.ownerDocument.body : i.body : z(e) && oe(e) ? e : Ke(e);
|
|
552
552
|
}
|
|
553
|
-
function se(
|
|
554
|
-
var
|
|
553
|
+
function se(i, e, t) {
|
|
554
|
+
var s;
|
|
555
555
|
e === void 0 && (e = []), t === void 0 && (t = !0);
|
|
556
|
-
const o = Ke(
|
|
556
|
+
const o = Ke(i), n = o === ((s = i.ownerDocument) == null ? void 0 : s.body), r = I(o);
|
|
557
557
|
if (n) {
|
|
558
|
-
const a =
|
|
558
|
+
const a = Ce(r);
|
|
559
559
|
return e.concat(r, r.visualViewport || [], oe(o) ? o : [], a && t ? se(a) : []);
|
|
560
560
|
}
|
|
561
561
|
return e.concat(o, se(o, [], t));
|
|
562
562
|
}
|
|
563
|
-
function
|
|
564
|
-
return
|
|
563
|
+
function Ce(i) {
|
|
564
|
+
return i.parent && Object.getPrototypeOf(i.parent) ? i.frameElement : null;
|
|
565
565
|
}
|
|
566
|
-
function Ye(
|
|
567
|
-
const e = $(
|
|
568
|
-
let t = parseFloat(e.width) || 0,
|
|
569
|
-
const o =
|
|
570
|
-
return a && (t = n,
|
|
566
|
+
function Ye(i) {
|
|
567
|
+
const e = $(i);
|
|
568
|
+
let t = parseFloat(e.width) || 0, s = parseFloat(e.height) || 0;
|
|
569
|
+
const o = z(i), n = o ? i.offsetWidth : t, r = o ? i.offsetHeight : s, a = de(t) !== n || de(s) !== r;
|
|
570
|
+
return a && (t = n, s = r), {
|
|
571
571
|
width: t,
|
|
572
|
-
height:
|
|
572
|
+
height: s,
|
|
573
573
|
$: a
|
|
574
574
|
};
|
|
575
575
|
}
|
|
576
|
-
function Te(
|
|
577
|
-
return L(
|
|
576
|
+
function Te(i) {
|
|
577
|
+
return L(i) ? i : i.contextElement;
|
|
578
578
|
}
|
|
579
|
-
function U(
|
|
580
|
-
const e = Te(
|
|
581
|
-
if (!
|
|
579
|
+
function U(i) {
|
|
580
|
+
const e = Te(i);
|
|
581
|
+
if (!z(e))
|
|
582
582
|
return E(1);
|
|
583
583
|
const t = e.getBoundingClientRect(), {
|
|
584
|
-
width:
|
|
584
|
+
width: s,
|
|
585
585
|
height: o,
|
|
586
586
|
$: n
|
|
587
587
|
} = Ye(e);
|
|
588
|
-
let r = (n ? de(t.width) : t.width) /
|
|
588
|
+
let r = (n ? de(t.width) : t.width) / s, a = (n ? de(t.height) : t.height) / o;
|
|
589
589
|
return (!r || !Number.isFinite(r)) && (r = 1), (!a || !Number.isFinite(a)) && (a = 1), {
|
|
590
590
|
x: r,
|
|
591
591
|
y: a
|
|
592
592
|
};
|
|
593
593
|
}
|
|
594
|
-
const
|
|
595
|
-
function Je(
|
|
596
|
-
const e = I(
|
|
597
|
-
return !Ie() || !e.visualViewport ?
|
|
594
|
+
const Pt = /* @__PURE__ */ E(0);
|
|
595
|
+
function Je(i) {
|
|
596
|
+
const e = I(i);
|
|
597
|
+
return !Ie() || !e.visualViewport ? Pt : {
|
|
598
598
|
x: e.visualViewport.offsetLeft,
|
|
599
599
|
y: e.visualViewport.offsetTop
|
|
600
600
|
};
|
|
601
601
|
}
|
|
602
|
-
function
|
|
603
|
-
return e === void 0 && (e = !1), !t || e && t !== I(
|
|
602
|
+
function Bt(i, e, t) {
|
|
603
|
+
return e === void 0 && (e = !1), !t || e && t !== I(i) ? !1 : e;
|
|
604
604
|
}
|
|
605
|
-
function G(
|
|
605
|
+
function G(i, e, t, s) {
|
|
606
606
|
e === void 0 && (e = !1), t === void 0 && (t = !1);
|
|
607
|
-
const o =
|
|
607
|
+
const o = i.getBoundingClientRect(), n = Te(i);
|
|
608
608
|
let r = E(1);
|
|
609
|
-
e && (
|
|
610
|
-
const a =
|
|
609
|
+
e && (s ? L(s) && (r = U(s)) : r = U(i));
|
|
610
|
+
const a = Bt(n, t, s) ? Je(n) : E(0);
|
|
611
611
|
let l = (o.left + a.x) / r.x, c = (o.top + a.y) / r.y, d = o.width / r.x, m = o.height / r.y;
|
|
612
612
|
if (n) {
|
|
613
|
-
const u = I(n),
|
|
614
|
-
let g = u, b =
|
|
615
|
-
for (; b &&
|
|
616
|
-
const v = U(b), w = b.getBoundingClientRect(),
|
|
617
|
-
l *= v.x, c *= v.y, d *= v.x, m *= v.y, l +=
|
|
613
|
+
const u = I(n), p = s && L(s) ? I(s) : s;
|
|
614
|
+
let g = u, b = Ce(g);
|
|
615
|
+
for (; b && s && p !== g; ) {
|
|
616
|
+
const v = U(b), w = b.getBoundingClientRect(), _ = $(b), x = w.left + (b.clientLeft + parseFloat(_.paddingLeft)) * v.x, k = w.top + (b.clientTop + parseFloat(_.paddingTop)) * v.y;
|
|
617
|
+
l *= v.x, c *= v.y, d *= v.x, m *= v.y, l += x, c += k, g = I(b), b = Ce(g);
|
|
618
618
|
}
|
|
619
619
|
}
|
|
620
|
-
return
|
|
620
|
+
return he({
|
|
621
621
|
width: d,
|
|
622
622
|
height: m,
|
|
623
623
|
x: l,
|
|
624
624
|
y: c
|
|
625
625
|
});
|
|
626
626
|
}
|
|
627
|
-
function ve(
|
|
628
|
-
const t = fe(
|
|
629
|
-
return e ? e.left + t : G(
|
|
627
|
+
function ve(i, e) {
|
|
628
|
+
const t = fe(i).scrollLeft;
|
|
629
|
+
return e ? e.left + t : G(M(i)).left + t;
|
|
630
630
|
}
|
|
631
|
-
function Xe(
|
|
632
|
-
const t =
|
|
631
|
+
function Xe(i, e) {
|
|
632
|
+
const t = i.getBoundingClientRect(), s = t.left + e.scrollLeft - ve(i, t), o = t.top + e.scrollTop;
|
|
633
633
|
return {
|
|
634
|
-
x:
|
|
634
|
+
x: s,
|
|
635
635
|
y: o
|
|
636
636
|
};
|
|
637
637
|
}
|
|
638
|
-
function
|
|
638
|
+
function Dt(i) {
|
|
639
639
|
let {
|
|
640
640
|
elements: e,
|
|
641
641
|
rect: t,
|
|
642
|
-
offsetParent:
|
|
642
|
+
offsetParent: s,
|
|
643
643
|
strategy: o
|
|
644
|
-
} =
|
|
645
|
-
const n = o === "fixed", r =
|
|
646
|
-
if (
|
|
644
|
+
} = i;
|
|
645
|
+
const n = o === "fixed", r = M(s), a = e ? be(e.floating) : !1;
|
|
646
|
+
if (s === r || a && n)
|
|
647
647
|
return t;
|
|
648
648
|
let l = {
|
|
649
649
|
scrollLeft: 0,
|
|
650
650
|
scrollTop: 0
|
|
651
651
|
}, c = E(1);
|
|
652
|
-
const d = E(0), m =
|
|
653
|
-
if ((m || !m && !n) && ((Y(
|
|
654
|
-
const
|
|
655
|
-
c = U(
|
|
652
|
+
const d = E(0), m = z(s);
|
|
653
|
+
if ((m || !m && !n) && ((Y(s) !== "body" || oe(r)) && (l = fe(s)), z(s))) {
|
|
654
|
+
const p = G(s);
|
|
655
|
+
c = U(s), d.x = p.x + s.clientLeft, d.y = p.y + s.clientTop;
|
|
656
656
|
}
|
|
657
657
|
const u = r && !m && !n ? Xe(r, l) : E(0);
|
|
658
658
|
return {
|
|
@@ -662,34 +662,34 @@ function zt(s) {
|
|
|
662
662
|
y: t.y * c.y - l.scrollTop * c.y + d.y + u.y
|
|
663
663
|
};
|
|
664
664
|
}
|
|
665
|
-
function Rt(
|
|
666
|
-
return Array.from(
|
|
665
|
+
function Rt(i) {
|
|
666
|
+
return Array.from(i.getClientRects());
|
|
667
667
|
}
|
|
668
|
-
function Nt(
|
|
669
|
-
const e =
|
|
670
|
-
let r = -t.scrollLeft + ve(
|
|
668
|
+
function Nt(i) {
|
|
669
|
+
const e = M(i), t = fe(i), s = i.ownerDocument.body, o = H(e.scrollWidth, e.clientWidth, s.scrollWidth, s.clientWidth), n = H(e.scrollHeight, e.clientHeight, s.scrollHeight, s.clientHeight);
|
|
670
|
+
let r = -t.scrollLeft + ve(i);
|
|
671
671
|
const a = -t.scrollTop;
|
|
672
|
-
return $(
|
|
672
|
+
return $(s).direction === "rtl" && (r += H(e.clientWidth, s.clientWidth) - o), {
|
|
673
673
|
width: o,
|
|
674
674
|
height: n,
|
|
675
675
|
x: r,
|
|
676
676
|
y: a
|
|
677
677
|
};
|
|
678
678
|
}
|
|
679
|
-
const
|
|
680
|
-
function Ht(
|
|
681
|
-
const t = I(
|
|
682
|
-
let n =
|
|
679
|
+
const Be = 25;
|
|
680
|
+
function Ht(i, e) {
|
|
681
|
+
const t = I(i), s = M(i), o = t.visualViewport;
|
|
682
|
+
let n = s.clientWidth, r = s.clientHeight, a = 0, l = 0;
|
|
683
683
|
if (o) {
|
|
684
684
|
n = o.width, r = o.height;
|
|
685
685
|
const d = Ie();
|
|
686
686
|
(!d || d && e === "fixed") && (a = o.offsetLeft, l = o.offsetTop);
|
|
687
687
|
}
|
|
688
|
-
const c = ve(
|
|
688
|
+
const c = ve(s);
|
|
689
689
|
if (c <= 0) {
|
|
690
|
-
const d =
|
|
691
|
-
g <=
|
|
692
|
-
} else c <=
|
|
690
|
+
const d = s.ownerDocument, m = d.body, u = getComputedStyle(m), p = d.compatMode === "CSS1Compat" && parseFloat(u.marginLeft) + parseFloat(u.marginRight) || 0, g = Math.abs(s.clientWidth - m.clientWidth - p);
|
|
691
|
+
g <= Be && (n -= g);
|
|
692
|
+
} else c <= Be && (n += c);
|
|
693
693
|
return {
|
|
694
694
|
width: n,
|
|
695
695
|
height: r,
|
|
@@ -698,8 +698,8 @@ function Ht(s, e) {
|
|
|
698
698
|
};
|
|
699
699
|
}
|
|
700
700
|
const Ft = /* @__PURE__ */ new Set(["absolute", "fixed"]);
|
|
701
|
-
function Gt(
|
|
702
|
-
const t = G(
|
|
701
|
+
function Gt(i, e) {
|
|
702
|
+
const t = G(i, !0, e === "fixed"), s = t.top + i.clientTop, o = t.left + i.clientLeft, n = z(i) ? U(i) : E(1), r = i.clientWidth * n.x, a = i.clientHeight * n.y, l = o * n.x, c = s * n.y;
|
|
703
703
|
return {
|
|
704
704
|
width: r,
|
|
705
705
|
height: a,
|
|
@@ -707,53 +707,53 @@ function Gt(s, e) {
|
|
|
707
707
|
y: c
|
|
708
708
|
};
|
|
709
709
|
}
|
|
710
|
-
function
|
|
711
|
-
let
|
|
710
|
+
function De(i, e, t) {
|
|
711
|
+
let s;
|
|
712
712
|
if (e === "viewport")
|
|
713
|
-
|
|
713
|
+
s = Ht(i, t);
|
|
714
714
|
else if (e === "document")
|
|
715
|
-
|
|
715
|
+
s = Nt(M(i));
|
|
716
716
|
else if (L(e))
|
|
717
|
-
|
|
717
|
+
s = Gt(e, t);
|
|
718
718
|
else {
|
|
719
|
-
const o = Je(
|
|
720
|
-
|
|
719
|
+
const o = Je(i);
|
|
720
|
+
s = {
|
|
721
721
|
x: e.x - o.x,
|
|
722
722
|
y: e.y - o.y,
|
|
723
723
|
width: e.width,
|
|
724
724
|
height: e.height
|
|
725
725
|
};
|
|
726
726
|
}
|
|
727
|
-
return
|
|
727
|
+
return he(s);
|
|
728
728
|
}
|
|
729
|
-
function qe(
|
|
730
|
-
const t =
|
|
729
|
+
function qe(i, e) {
|
|
730
|
+
const t = B(i);
|
|
731
731
|
return t === e || !L(t) || K(t) ? !1 : $(t).position === "fixed" || qe(t, e);
|
|
732
732
|
}
|
|
733
|
-
function Wt(
|
|
734
|
-
const t = e.get(
|
|
733
|
+
function Wt(i, e) {
|
|
734
|
+
const t = e.get(i);
|
|
735
735
|
if (t)
|
|
736
736
|
return t;
|
|
737
|
-
let
|
|
738
|
-
const n = $(
|
|
739
|
-
let r = n ?
|
|
737
|
+
let s = se(i, [], !1).filter((a) => L(a) && Y(a) !== "body"), o = null;
|
|
738
|
+
const n = $(i).position === "fixed";
|
|
739
|
+
let r = n ? B(i) : i;
|
|
740
740
|
for (; L(r) && !K(r); ) {
|
|
741
741
|
const a = $(r), l = Ae(r);
|
|
742
|
-
!l && a.position === "fixed" && (o = null), (n ? !l && !o : !l && a.position === "static" && !!o && Ft.has(o.position) || oe(r) && !l && qe(
|
|
742
|
+
!l && a.position === "fixed" && (o = null), (n ? !l && !o : !l && a.position === "static" && !!o && Ft.has(o.position) || oe(r) && !l && qe(i, r)) ? s = s.filter((d) => d !== r) : o = a, r = B(r);
|
|
743
743
|
}
|
|
744
|
-
return e.set(
|
|
744
|
+
return e.set(i, s), s;
|
|
745
745
|
}
|
|
746
|
-
function jt(
|
|
746
|
+
function jt(i) {
|
|
747
747
|
let {
|
|
748
748
|
element: e,
|
|
749
749
|
boundary: t,
|
|
750
|
-
rootBoundary:
|
|
750
|
+
rootBoundary: s,
|
|
751
751
|
strategy: o
|
|
752
|
-
} =
|
|
753
|
-
const r = [...t === "clippingAncestors" ? be(e) ? [] : Wt(e, this._c) : [].concat(t),
|
|
754
|
-
const m =
|
|
752
|
+
} = i;
|
|
753
|
+
const r = [...t === "clippingAncestors" ? be(e) ? [] : Wt(e, this._c) : [].concat(t), s], a = r[0], l = r.reduce((c, d) => {
|
|
754
|
+
const m = De(e, d, o);
|
|
755
755
|
return c.top = H(m.top, c.top), c.right = ce(m.right, c.right), c.bottom = ce(m.bottom, c.bottom), c.left = H(m.left, c.left), c;
|
|
756
|
-
},
|
|
756
|
+
}, De(e, a, o));
|
|
757
757
|
return {
|
|
758
758
|
width: l.right - l.left,
|
|
759
759
|
height: l.bottom - l.top,
|
|
@@ -761,18 +761,18 @@ function jt(s) {
|
|
|
761
761
|
y: l.top
|
|
762
762
|
};
|
|
763
763
|
}
|
|
764
|
-
function Ut(
|
|
764
|
+
function Ut(i) {
|
|
765
765
|
const {
|
|
766
766
|
width: e,
|
|
767
767
|
height: t
|
|
768
|
-
} = Ye(
|
|
768
|
+
} = Ye(i);
|
|
769
769
|
return {
|
|
770
770
|
width: e,
|
|
771
771
|
height: t
|
|
772
772
|
};
|
|
773
773
|
}
|
|
774
|
-
function Kt(
|
|
775
|
-
const
|
|
774
|
+
function Kt(i, e, t) {
|
|
775
|
+
const s = z(e), o = M(e), n = t === "fixed", r = G(i, !0, n, e);
|
|
776
776
|
let a = {
|
|
777
777
|
scrollLeft: 0,
|
|
778
778
|
scrollTop: 0
|
|
@@ -781,13 +781,13 @@ function Kt(s, e, t) {
|
|
|
781
781
|
function c() {
|
|
782
782
|
l.x = ve(o);
|
|
783
783
|
}
|
|
784
|
-
if (
|
|
785
|
-
if ((Y(e) !== "body" || oe(o)) && (a = fe(e)),
|
|
786
|
-
const
|
|
787
|
-
l.x =
|
|
784
|
+
if (s || !s && !n)
|
|
785
|
+
if ((Y(e) !== "body" || oe(o)) && (a = fe(e)), s) {
|
|
786
|
+
const p = G(e, !0, n, e);
|
|
787
|
+
l.x = p.x + e.clientLeft, l.y = p.y + e.clientTop;
|
|
788
788
|
} else o && c();
|
|
789
|
-
n && !
|
|
790
|
-
const d = o && !
|
|
789
|
+
n && !s && o && c();
|
|
790
|
+
const d = o && !s && !n ? Xe(o, a) : E(0), m = r.left + a.scrollLeft - l.x - d.x, u = r.top + a.scrollTop - l.y - d.y;
|
|
791
791
|
return {
|
|
792
792
|
x: m,
|
|
793
793
|
y: u,
|
|
@@ -795,53 +795,53 @@ function Kt(s, e, t) {
|
|
|
795
795
|
height: r.height
|
|
796
796
|
};
|
|
797
797
|
}
|
|
798
|
-
function
|
|
799
|
-
return $(
|
|
798
|
+
function ye(i) {
|
|
799
|
+
return $(i).position === "static";
|
|
800
800
|
}
|
|
801
|
-
function Re(
|
|
802
|
-
if (!
|
|
801
|
+
function Re(i, e) {
|
|
802
|
+
if (!z(i) || $(i).position === "fixed")
|
|
803
803
|
return null;
|
|
804
804
|
if (e)
|
|
805
|
-
return e(
|
|
806
|
-
let t =
|
|
807
|
-
return
|
|
805
|
+
return e(i);
|
|
806
|
+
let t = i.offsetParent;
|
|
807
|
+
return M(i) === t && (t = t.ownerDocument.body), t;
|
|
808
808
|
}
|
|
809
|
-
function Ze(
|
|
810
|
-
const t = I(
|
|
811
|
-
if (be(
|
|
809
|
+
function Ze(i, e) {
|
|
810
|
+
const t = I(i);
|
|
811
|
+
if (be(i))
|
|
812
812
|
return t;
|
|
813
|
-
if (!
|
|
814
|
-
let o =
|
|
813
|
+
if (!z(i)) {
|
|
814
|
+
let o = B(i);
|
|
815
815
|
for (; o && !K(o); ) {
|
|
816
|
-
if (L(o) && !
|
|
816
|
+
if (L(o) && !ye(o))
|
|
817
817
|
return o;
|
|
818
|
-
o =
|
|
818
|
+
o = B(o);
|
|
819
819
|
}
|
|
820
820
|
return t;
|
|
821
821
|
}
|
|
822
|
-
let
|
|
823
|
-
for (;
|
|
824
|
-
|
|
825
|
-
return
|
|
822
|
+
let s = Re(i, e);
|
|
823
|
+
for (; s && Ot(s) && ye(s); )
|
|
824
|
+
s = Re(s, e);
|
|
825
|
+
return s && K(s) && ye(s) && !Ae(s) ? t : s || Mt(i) || t;
|
|
826
826
|
}
|
|
827
|
-
const Yt = async function(
|
|
828
|
-
const e = this.getOffsetParent || Ze, t = this.getDimensions,
|
|
827
|
+
const Yt = async function(i) {
|
|
828
|
+
const e = this.getOffsetParent || Ze, t = this.getDimensions, s = await t(i.floating);
|
|
829
829
|
return {
|
|
830
|
-
reference: Kt(
|
|
830
|
+
reference: Kt(i.reference, await e(i.floating), i.strategy),
|
|
831
831
|
floating: {
|
|
832
832
|
x: 0,
|
|
833
833
|
y: 0,
|
|
834
|
-
width:
|
|
835
|
-
height:
|
|
834
|
+
width: s.width,
|
|
835
|
+
height: s.height
|
|
836
836
|
}
|
|
837
837
|
};
|
|
838
838
|
};
|
|
839
|
-
function Jt(
|
|
840
|
-
return $(
|
|
839
|
+
function Jt(i) {
|
|
840
|
+
return $(i).direction === "rtl";
|
|
841
841
|
}
|
|
842
842
|
const Xt = {
|
|
843
|
-
convertOffsetParentRelativeRectToViewportRelativeRect:
|
|
844
|
-
getDocumentElement:
|
|
843
|
+
convertOffsetParentRelativeRectToViewportRelativeRect: Dt,
|
|
844
|
+
getDocumentElement: M,
|
|
845
845
|
getClippingRect: jt,
|
|
846
846
|
getOffsetParent: Ze,
|
|
847
847
|
getElementRects: Yt,
|
|
@@ -851,100 +851,100 @@ const Xt = {
|
|
|
851
851
|
isElement: L,
|
|
852
852
|
isRTL: Jt
|
|
853
853
|
};
|
|
854
|
-
function Qe(
|
|
855
|
-
return
|
|
854
|
+
function Qe(i, e) {
|
|
855
|
+
return i.x === e.x && i.y === e.y && i.width === e.width && i.height === e.height;
|
|
856
856
|
}
|
|
857
|
-
function qt(
|
|
858
|
-
let t = null,
|
|
859
|
-
const o =
|
|
857
|
+
function qt(i, e) {
|
|
858
|
+
let t = null, s;
|
|
859
|
+
const o = M(i);
|
|
860
860
|
function n() {
|
|
861
861
|
var a;
|
|
862
|
-
clearTimeout(
|
|
862
|
+
clearTimeout(s), (a = t) == null || a.disconnect(), t = null;
|
|
863
863
|
}
|
|
864
864
|
function r(a, l) {
|
|
865
865
|
a === void 0 && (a = !1), l === void 0 && (l = 1), n();
|
|
866
|
-
const c =
|
|
866
|
+
const c = i.getBoundingClientRect(), {
|
|
867
867
|
left: d,
|
|
868
868
|
top: m,
|
|
869
869
|
width: u,
|
|
870
|
-
height:
|
|
870
|
+
height: p
|
|
871
871
|
} = c;
|
|
872
|
-
if (a || e(), !u || !
|
|
872
|
+
if (a || e(), !u || !p)
|
|
873
873
|
return;
|
|
874
|
-
const g = re(m), b = re(o.clientWidth - (d + u)), v = re(o.clientHeight - (m +
|
|
874
|
+
const g = re(m), b = re(o.clientWidth - (d + u)), v = re(o.clientHeight - (m + p)), w = re(d), x = {
|
|
875
875
|
rootMargin: -g + "px " + -b + "px " + -v + "px " + -w + "px",
|
|
876
876
|
threshold: H(0, ce(1, l)) || 1
|
|
877
877
|
};
|
|
878
878
|
let k = !0;
|
|
879
|
-
function
|
|
879
|
+
function C(J) {
|
|
880
880
|
const W = J[0].intersectionRatio;
|
|
881
881
|
if (W !== l) {
|
|
882
882
|
if (!k)
|
|
883
883
|
return r();
|
|
884
|
-
W ? r(!1, W) :
|
|
884
|
+
W ? r(!1, W) : s = setTimeout(() => {
|
|
885
885
|
r(!1, 1e-7);
|
|
886
886
|
}, 1e3);
|
|
887
887
|
}
|
|
888
|
-
W === 1 && !Qe(c,
|
|
888
|
+
W === 1 && !Qe(c, i.getBoundingClientRect()) && r(), k = !1;
|
|
889
889
|
}
|
|
890
890
|
try {
|
|
891
|
-
t = new IntersectionObserver(
|
|
892
|
-
...
|
|
891
|
+
t = new IntersectionObserver(C, {
|
|
892
|
+
...x,
|
|
893
893
|
// Handle <iframe>s
|
|
894
894
|
root: o.ownerDocument
|
|
895
895
|
});
|
|
896
896
|
} catch {
|
|
897
|
-
t = new IntersectionObserver(
|
|
897
|
+
t = new IntersectionObserver(C, x);
|
|
898
898
|
}
|
|
899
|
-
t.observe(
|
|
899
|
+
t.observe(i);
|
|
900
900
|
}
|
|
901
901
|
return r(!0), n;
|
|
902
902
|
}
|
|
903
|
-
function q(
|
|
904
|
-
|
|
903
|
+
function q(i, e, t, s) {
|
|
904
|
+
s === void 0 && (s = {});
|
|
905
905
|
const {
|
|
906
906
|
ancestorScroll: o = !0,
|
|
907
907
|
ancestorResize: n = !0,
|
|
908
908
|
elementResize: r = typeof ResizeObserver == "function",
|
|
909
909
|
layoutShift: a = typeof IntersectionObserver == "function",
|
|
910
910
|
animationFrame: l = !1
|
|
911
|
-
} =
|
|
911
|
+
} = s, c = Te(i), d = o || n ? [...c ? se(c) : [], ...se(e)] : [];
|
|
912
912
|
d.forEach((w) => {
|
|
913
913
|
o && w.addEventListener("scroll", t, {
|
|
914
914
|
passive: !0
|
|
915
915
|
}), n && w.addEventListener("resize", t);
|
|
916
916
|
});
|
|
917
917
|
const m = c && a ? qt(c, t) : null;
|
|
918
|
-
let u = -1,
|
|
919
|
-
r && (
|
|
920
|
-
let [
|
|
921
|
-
|
|
922
|
-
var
|
|
923
|
-
(
|
|
918
|
+
let u = -1, p = null;
|
|
919
|
+
r && (p = new ResizeObserver((w) => {
|
|
920
|
+
let [_] = w;
|
|
921
|
+
_ && _.target === c && p && (p.unobserve(e), cancelAnimationFrame(u), u = requestAnimationFrame(() => {
|
|
922
|
+
var x;
|
|
923
|
+
(x = p) == null || x.observe(e);
|
|
924
924
|
})), t();
|
|
925
|
-
}), c && !l &&
|
|
926
|
-
let g, b = l ? G(
|
|
925
|
+
}), c && !l && p.observe(c), p.observe(e));
|
|
926
|
+
let g, b = l ? G(i) : null;
|
|
927
927
|
l && v();
|
|
928
928
|
function v() {
|
|
929
|
-
const w = G(
|
|
929
|
+
const w = G(i);
|
|
930
930
|
b && !Qe(b, w) && t(), b = w, g = requestAnimationFrame(v);
|
|
931
931
|
}
|
|
932
932
|
return t(), () => {
|
|
933
933
|
var w;
|
|
934
|
-
d.forEach((
|
|
935
|
-
o &&
|
|
936
|
-
}), m == null || m(), (w =
|
|
934
|
+
d.forEach((_) => {
|
|
935
|
+
o && _.removeEventListener("scroll", t), n && _.removeEventListener("resize", t);
|
|
936
|
+
}), m == null || m(), (w = p) == null || w.disconnect(), p = null, l && cancelAnimationFrame(g);
|
|
937
937
|
};
|
|
938
938
|
}
|
|
939
|
-
const Z = St, Q = At, ae =
|
|
940
|
-
const
|
|
939
|
+
const Z = St, Q = At, ae = xt, ee = (i, e, t) => {
|
|
940
|
+
const s = /* @__PURE__ */ new Map(), o = {
|
|
941
941
|
platform: Xt,
|
|
942
942
|
...t
|
|
943
943
|
}, n = {
|
|
944
944
|
...o.platform,
|
|
945
|
-
_c:
|
|
945
|
+
_c: s
|
|
946
946
|
};
|
|
947
|
-
return
|
|
947
|
+
return yt(i, e, {
|
|
948
948
|
...o,
|
|
949
949
|
platform: n
|
|
950
950
|
});
|
|
@@ -956,54 +956,54 @@ var et = function() {
|
|
|
956
956
|
"info",
|
|
957
957
|
"warn",
|
|
958
958
|
"error"
|
|
959
|
-
], ie = {},
|
|
960
|
-
function Ne(
|
|
961
|
-
var t =
|
|
959
|
+
], ie = {}, y = null;
|
|
960
|
+
function Ne(i, e) {
|
|
961
|
+
var t = i[e];
|
|
962
962
|
if (typeof t.bind == "function")
|
|
963
|
-
return t.bind(
|
|
963
|
+
return t.bind(i);
|
|
964
964
|
try {
|
|
965
|
-
return Function.prototype.bind.call(t,
|
|
965
|
+
return Function.prototype.bind.call(t, i);
|
|
966
966
|
} catch {
|
|
967
967
|
return function() {
|
|
968
|
-
return Function.prototype.apply.apply(t, [
|
|
968
|
+
return Function.prototype.apply.apply(t, [i, arguments]);
|
|
969
969
|
};
|
|
970
970
|
}
|
|
971
971
|
}
|
|
972
972
|
function Qt() {
|
|
973
973
|
console.log && (console.log.apply ? console.log.apply(console, arguments) : Function.prototype.apply.apply(console.log, [console, arguments])), console.trace && console.trace();
|
|
974
974
|
}
|
|
975
|
-
function es(
|
|
976
|
-
return
|
|
975
|
+
function es(i) {
|
|
976
|
+
return i === "debug" && (i = "log"), typeof console === O ? !1 : i === "trace" && Zt ? Qt : console[i] !== void 0 ? Ne(console, i) : console.log !== void 0 ? Ne(console, "log") : et;
|
|
977
977
|
}
|
|
978
978
|
function te() {
|
|
979
|
-
for (var
|
|
979
|
+
for (var i = this.getLevel(), e = 0; e < ke.length; e++) {
|
|
980
980
|
var t = ke[e];
|
|
981
|
-
this[t] = e <
|
|
981
|
+
this[t] = e < i ? et : this.methodFactory(t, i, this.name);
|
|
982
982
|
}
|
|
983
|
-
if (this.log = this.debug, typeof console === O &&
|
|
983
|
+
if (this.log = this.debug, typeof console === O && i < this.levels.SILENT)
|
|
984
984
|
return "No console available for logging";
|
|
985
985
|
}
|
|
986
|
-
function ts(
|
|
986
|
+
function ts(i) {
|
|
987
987
|
return function() {
|
|
988
|
-
typeof console !== O && (te.call(this), this[
|
|
988
|
+
typeof console !== O && (te.call(this), this[i].apply(this, arguments));
|
|
989
989
|
};
|
|
990
990
|
}
|
|
991
|
-
function ss(
|
|
992
|
-
return es(
|
|
991
|
+
function ss(i, e, t) {
|
|
992
|
+
return es(i) || ts.apply(this, arguments);
|
|
993
993
|
}
|
|
994
|
-
function tt(
|
|
995
|
-
var t = this,
|
|
996
|
-
typeof
|
|
994
|
+
function tt(i, e) {
|
|
995
|
+
var t = this, s, o, n, r = "loglevel";
|
|
996
|
+
typeof i == "string" ? r += ":" + i : typeof i == "symbol" && (r = void 0);
|
|
997
997
|
function a(u) {
|
|
998
|
-
var
|
|
998
|
+
var p = (ke[u] || "silent").toUpperCase();
|
|
999
999
|
if (!(typeof window === O || !r)) {
|
|
1000
1000
|
try {
|
|
1001
|
-
window.localStorage[r] =
|
|
1001
|
+
window.localStorage[r] = p;
|
|
1002
1002
|
return;
|
|
1003
1003
|
} catch {
|
|
1004
1004
|
}
|
|
1005
1005
|
try {
|
|
1006
|
-
window.document.cookie = encodeURIComponent(r) + "=" +
|
|
1006
|
+
window.document.cookie = encodeURIComponent(r) + "=" + p + ";";
|
|
1007
1007
|
} catch {
|
|
1008
1008
|
}
|
|
1009
1009
|
}
|
|
@@ -1017,9 +1017,9 @@ function tt(s, e) {
|
|
|
1017
1017
|
}
|
|
1018
1018
|
if (typeof u === O)
|
|
1019
1019
|
try {
|
|
1020
|
-
var
|
|
1020
|
+
var p = window.document.cookie, g = encodeURIComponent(r), b = p.indexOf(g + "=");
|
|
1021
1021
|
b !== -1 && (u = /^([^;]+)/.exec(
|
|
1022
|
-
|
|
1022
|
+
p.slice(b + g.length + 1)
|
|
1023
1023
|
)[1]);
|
|
1024
1024
|
} catch {
|
|
1025
1025
|
}
|
|
@@ -1039,12 +1039,12 @@ function tt(s, e) {
|
|
|
1039
1039
|
}
|
|
1040
1040
|
}
|
|
1041
1041
|
function d(u) {
|
|
1042
|
-
var
|
|
1043
|
-
if (typeof
|
|
1044
|
-
return
|
|
1042
|
+
var p = u;
|
|
1043
|
+
if (typeof p == "string" && t.levels[p.toUpperCase()] !== void 0 && (p = t.levels[p.toUpperCase()]), typeof p == "number" && p >= 0 && p <= t.levels.SILENT)
|
|
1044
|
+
return p;
|
|
1045
1045
|
throw new TypeError("log.setLevel() called with invalid level: " + u);
|
|
1046
1046
|
}
|
|
1047
|
-
t.name =
|
|
1047
|
+
t.name = i, t.levels = {
|
|
1048
1048
|
TRACE: 0,
|
|
1049
1049
|
DEBUG: 1,
|
|
1050
1050
|
INFO: 2,
|
|
@@ -1052,9 +1052,9 @@ function tt(s, e) {
|
|
|
1052
1052
|
ERROR: 4,
|
|
1053
1053
|
SILENT: 5
|
|
1054
1054
|
}, t.methodFactory = e || ss, t.getLevel = function() {
|
|
1055
|
-
return n ?? o ??
|
|
1056
|
-
}, t.setLevel = function(u,
|
|
1057
|
-
return n = d(u),
|
|
1055
|
+
return n ?? o ?? s;
|
|
1056
|
+
}, t.setLevel = function(u, p) {
|
|
1057
|
+
return n = d(u), p !== !1 && a(n), te.call(t);
|
|
1058
1058
|
}, t.setDefaultLevel = function(u) {
|
|
1059
1059
|
o = d(u), l() || t.setLevel(u, !1);
|
|
1060
1060
|
}, t.resetLevel = function() {
|
|
@@ -1064,73 +1064,73 @@ function tt(s, e) {
|
|
|
1064
1064
|
}, t.disableAll = function(u) {
|
|
1065
1065
|
t.setLevel(t.levels.SILENT, u);
|
|
1066
1066
|
}, t.rebuild = function() {
|
|
1067
|
-
if (
|
|
1067
|
+
if (y !== t && (s = d(y.getLevel())), te.call(t), y === t)
|
|
1068
1068
|
for (var u in ie)
|
|
1069
1069
|
ie[u].rebuild();
|
|
1070
|
-
},
|
|
1071
|
-
|
|
1070
|
+
}, s = d(
|
|
1071
|
+
y ? y.getLevel() : "WARN"
|
|
1072
1072
|
);
|
|
1073
1073
|
var m = l();
|
|
1074
1074
|
m != null && (n = d(m)), te.call(t);
|
|
1075
1075
|
}
|
|
1076
|
-
|
|
1077
|
-
|
|
1076
|
+
y = new tt();
|
|
1077
|
+
y.getLogger = function(e) {
|
|
1078
1078
|
if (typeof e != "symbol" && typeof e != "string" || e === "")
|
|
1079
1079
|
throw new TypeError("You must supply a name when creating a logger.");
|
|
1080
1080
|
var t = ie[e];
|
|
1081
1081
|
return t || (t = ie[e] = new tt(
|
|
1082
1082
|
e,
|
|
1083
|
-
|
|
1083
|
+
y.methodFactory
|
|
1084
1084
|
)), t;
|
|
1085
1085
|
};
|
|
1086
1086
|
var is = typeof window !== O ? window.log : void 0;
|
|
1087
|
-
|
|
1088
|
-
return typeof window !== O && window.log ===
|
|
1087
|
+
y.noConflict = function() {
|
|
1088
|
+
return typeof window !== O && window.log === y && (window.log = is), y;
|
|
1089
1089
|
};
|
|
1090
|
-
|
|
1090
|
+
y.getLoggers = function() {
|
|
1091
1091
|
return ie;
|
|
1092
1092
|
};
|
|
1093
|
-
|
|
1094
|
-
var os = function(
|
|
1095
|
-
for (var e = 1, t = arguments.length,
|
|
1096
|
-
for (
|
|
1097
|
-
Object.prototype.hasOwnProperty.call(arguments[e],
|
|
1098
|
-
return
|
|
1093
|
+
y.default = y;
|
|
1094
|
+
var os = function(i) {
|
|
1095
|
+
for (var e = 1, t = arguments.length, s; e < t; e++)
|
|
1096
|
+
for (s in arguments[e])
|
|
1097
|
+
Object.prototype.hasOwnProperty.call(arguments[e], s) && (i[s] = arguments[e][s]);
|
|
1098
|
+
return i;
|
|
1099
1099
|
}, ns = {
|
|
1100
1100
|
template: "[%t] %l:",
|
|
1101
|
-
levelFormatter: function(
|
|
1102
|
-
return
|
|
1101
|
+
levelFormatter: function(i) {
|
|
1102
|
+
return i.toUpperCase();
|
|
1103
1103
|
},
|
|
1104
|
-
nameFormatter: function(
|
|
1105
|
-
return
|
|
1104
|
+
nameFormatter: function(i) {
|
|
1105
|
+
return i || "root";
|
|
1106
1106
|
},
|
|
1107
|
-
timestampFormatter: function(
|
|
1108
|
-
return
|
|
1107
|
+
timestampFormatter: function(i) {
|
|
1108
|
+
return i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
|
|
1109
1109
|
},
|
|
1110
1110
|
format: void 0
|
|
1111
|
-
}, st, N = {}, rs = function(
|
|
1112
|
-
if (!
|
|
1111
|
+
}, st, N = {}, rs = function(i) {
|
|
1112
|
+
if (!i || !i.getLogger)
|
|
1113
1113
|
throw new TypeError("Argument is not a root logger");
|
|
1114
|
-
st =
|
|
1115
|
-
}, as = function(
|
|
1116
|
-
if (!
|
|
1114
|
+
st = i;
|
|
1115
|
+
}, as = function(i, e) {
|
|
1116
|
+
if (!i || !i.setLevel)
|
|
1117
1117
|
throw new TypeError("Argument is not a logger");
|
|
1118
|
-
var t =
|
|
1118
|
+
var t = i.methodFactory, s = i.name || "", o = N[s] || N[""] || ns;
|
|
1119
1119
|
function n(r, a, l) {
|
|
1120
|
-
var c = t(r, a, l), d = N[l] || N[""], m = d.template.indexOf("%t") !== -1, u = d.template.indexOf("%l") !== -1,
|
|
1120
|
+
var c = t(r, a, l), d = N[l] || N[""], m = d.template.indexOf("%t") !== -1, u = d.template.indexOf("%l") !== -1, p = d.template.indexOf("%n") !== -1;
|
|
1121
1121
|
return function() {
|
|
1122
1122
|
for (var g = "", b = arguments.length, v = Array(b), w = 0; w < b; w++)
|
|
1123
1123
|
v[w] = arguments[w];
|
|
1124
|
-
if (
|
|
1125
|
-
var
|
|
1126
|
-
d.format ? g += d.format(
|
|
1124
|
+
if (s || !N[l]) {
|
|
1125
|
+
var _ = d.timestampFormatter(/* @__PURE__ */ new Date()), x = d.levelFormatter(r), k = d.nameFormatter(l);
|
|
1126
|
+
d.format ? g += d.format(x, k, _) : (g += d.template, m && (g = g.replace(/%t/, _)), u && (g = g.replace(/%l/, x)), p && (g = g.replace(/%n/, k))), v.length && typeof v[0] == "string" ? v[0] = g + " " + v[0] : v.unshift(g);
|
|
1127
1127
|
}
|
|
1128
1128
|
c.apply(void 0, v);
|
|
1129
1129
|
};
|
|
1130
1130
|
}
|
|
1131
|
-
return N[
|
|
1131
|
+
return N[s] || (i.methodFactory = n), e = e || {}, e.template && (e.format = void 0), N[s] = os({}, o, e), i.setLevel(i.getLevel()), st || i.warn(
|
|
1132
1132
|
"It is necessary to call the function reg() of loglevel-plugin-prefix before calling apply. From the next release, it will throw an error. See more: https://github.com/kutuluk/loglevel-plugin-prefix/blob/master/README.md"
|
|
1133
|
-
),
|
|
1133
|
+
), i;
|
|
1134
1134
|
}, it = {
|
|
1135
1135
|
reg: rs,
|
|
1136
1136
|
apply: as
|
|
@@ -1145,21 +1145,21 @@ const ot = {
|
|
|
1145
1145
|
error: "#ef4444"
|
|
1146
1146
|
// Red
|
|
1147
1147
|
};
|
|
1148
|
-
it.reg(
|
|
1149
|
-
it.apply(
|
|
1150
|
-
format(
|
|
1151
|
-
return ot[
|
|
1148
|
+
it.reg(y);
|
|
1149
|
+
it.apply(y, {
|
|
1150
|
+
format(i, e, t) {
|
|
1151
|
+
return ot[i.toLowerCase()], `%c[${t}]%c %c[${i}]%c ${e ? `%c[${e}]%c ` : ""}`;
|
|
1152
1152
|
},
|
|
1153
|
-
timestampFormatter(
|
|
1154
|
-
return
|
|
1153
|
+
timestampFormatter(i) {
|
|
1154
|
+
return i.toTimeString().split(" ")[0] + "." + i.getMilliseconds().toString().padStart(3, "0");
|
|
1155
1155
|
}
|
|
1156
1156
|
});
|
|
1157
|
-
const ls =
|
|
1158
|
-
|
|
1159
|
-
const
|
|
1157
|
+
const ls = y.methodFactory;
|
|
1158
|
+
y.methodFactory = function(i, e, t) {
|
|
1159
|
+
const s = ls(i, e, t);
|
|
1160
1160
|
return function(...o) {
|
|
1161
1161
|
if (o.length > 0 && typeof o[0] == "string" && o[0].includes("%c")) {
|
|
1162
|
-
const n = ot[
|
|
1162
|
+
const n = ot[i] || "#666", r = [
|
|
1163
1163
|
o[0],
|
|
1164
1164
|
`color: ${n}; font-weight: bold;`,
|
|
1165
1165
|
// timestamp color
|
|
@@ -1177,47 +1177,47 @@ _.methodFactory = function(s, e, t) {
|
|
|
1177
1177
|
] : [],
|
|
1178
1178
|
...o.slice(1)
|
|
1179
1179
|
];
|
|
1180
|
-
|
|
1180
|
+
s(...r);
|
|
1181
1181
|
} else
|
|
1182
|
-
|
|
1182
|
+
s(...o);
|
|
1183
1183
|
};
|
|
1184
1184
|
};
|
|
1185
|
-
|
|
1186
|
-
const le =
|
|
1185
|
+
y.setLevel("silent");
|
|
1186
|
+
const le = y.getLogger("MULTISELECT:INIT"), S = y.getLogger("MULTISELECT:DATA"), f = y.getLogger("MULTISELECT:UI"), A = y.getLogger("MULTISELECT:INTERACTION"), cs = [
|
|
1187
1187
|
"MULTISELECT:INIT",
|
|
1188
1188
|
"MULTISELECT:DATA",
|
|
1189
1189
|
"MULTISELECT:UI",
|
|
1190
1190
|
"MULTISELECT:INTERACTION"
|
|
1191
1191
|
];
|
|
1192
1192
|
function ds() {
|
|
1193
|
-
|
|
1193
|
+
y.setLevel("debug");
|
|
1194
1194
|
}
|
|
1195
|
-
function
|
|
1196
|
-
|
|
1195
|
+
function ps() {
|
|
1196
|
+
y.setLevel("silent");
|
|
1197
1197
|
}
|
|
1198
|
-
function
|
|
1199
|
-
|
|
1198
|
+
function hs(i) {
|
|
1199
|
+
y.setLevel(i);
|
|
1200
1200
|
}
|
|
1201
|
-
function ms(
|
|
1202
|
-
|
|
1201
|
+
function ms(i, e) {
|
|
1202
|
+
y.getLogger(i).setLevel(e);
|
|
1203
1203
|
}
|
|
1204
1204
|
class He {
|
|
1205
1205
|
constructor(e) {
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1206
|
+
h(this, "container");
|
|
1207
|
+
h(this, "wrapper");
|
|
1208
|
+
h(this, "viewport");
|
|
1209
|
+
h(this, "itemHeight");
|
|
1210
|
+
h(this, "items");
|
|
1211
|
+
h(this, "renderItem");
|
|
1212
|
+
h(this, "bufferSize");
|
|
1213
|
+
h(this, "onVisibleRangeChange");
|
|
1214
|
+
h(this, "onScroll");
|
|
1215
|
+
h(this, "scrollTop", 0);
|
|
1216
|
+
h(this, "viewportHeight", 0);
|
|
1217
|
+
h(this, "visibleStart", 0);
|
|
1218
|
+
h(this, "visibleEnd", 0);
|
|
1219
|
+
h(this, "scrollHandler");
|
|
1220
|
+
h(this, "resizeObserver");
|
|
1221
1221
|
this.container = e.container, this.itemHeight = e.itemHeight, this.items = e.items, this.renderItem = e.renderItem, this.bufferSize = e.bufferSize ?? 10, this.onVisibleRangeChange = e.onVisibleRangeChange, this.onScroll = e.onScroll, this.scrollHandler = this.handleScroll.bind(this), this.init();
|
|
1222
1222
|
}
|
|
1223
1223
|
/**
|
|
@@ -1250,8 +1250,8 @@ class He {
|
|
|
1250
1250
|
* Calculate visible range based on scroll position
|
|
1251
1251
|
*/
|
|
1252
1252
|
calculateVisibleRange() {
|
|
1253
|
-
const e = Math.floor(this.scrollTop / this.itemHeight), t = Math.ceil((this.scrollTop + this.viewportHeight) / this.itemHeight),
|
|
1254
|
-
return { start:
|
|
1253
|
+
const e = Math.floor(this.scrollTop / this.itemHeight), t = Math.ceil((this.scrollTop + this.viewportHeight) / this.itemHeight), s = Math.max(0, e - this.bufferSize), o = Math.min(this.items.length, t + this.bufferSize);
|
|
1254
|
+
return { start: s, end: o };
|
|
1255
1255
|
}
|
|
1256
1256
|
/**
|
|
1257
1257
|
* Render visible items
|
|
@@ -1261,12 +1261,12 @@ class He {
|
|
|
1261
1261
|
if (e === this.visibleStart && t === this.visibleEnd)
|
|
1262
1262
|
return;
|
|
1263
1263
|
this.visibleStart = e, this.visibleEnd = t, this.onVisibleRangeChange && this.onVisibleRangeChange(e, t);
|
|
1264
|
-
let
|
|
1264
|
+
let s = "";
|
|
1265
1265
|
for (let o = e; o < t; o++) {
|
|
1266
1266
|
const n = this.items[o], r = this.renderItem(n, o), a = o * this.itemHeight;
|
|
1267
|
-
|
|
1267
|
+
s += `<div class="ms__virtual-item" style="position: absolute; top: ${a}px; left: 0; right: 0; height: ${this.itemHeight}px;" data-index="${o}">`, s += r, s += "</div>";
|
|
1268
1268
|
}
|
|
1269
|
-
this.viewport.innerHTML =
|
|
1269
|
+
this.viewport.innerHTML = s;
|
|
1270
1270
|
}
|
|
1271
1271
|
/**
|
|
1272
1272
|
* Update items and re-render
|
|
@@ -1322,47 +1322,47 @@ class He {
|
|
|
1322
1322
|
}
|
|
1323
1323
|
class us {
|
|
1324
1324
|
constructor(e, t = {}) {
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1325
|
+
h(this, "element");
|
|
1326
|
+
h(this, "instanceId");
|
|
1327
|
+
h(this, "options");
|
|
1328
|
+
h(this, "isOpen", !1);
|
|
1329
|
+
h(this, "selectedValues", /* @__PURE__ */ new Set());
|
|
1330
|
+
h(this, "selectedOptions", /* @__PURE__ */ new Map());
|
|
1331
|
+
h(this, "allOptions", []);
|
|
1332
|
+
h(this, "filteredOptions", []);
|
|
1333
|
+
h(this, "hiddenInputs", []);
|
|
1334
|
+
h(this, "focusedIndex", -1);
|
|
1335
|
+
h(this, "matchingIndices", /* @__PURE__ */ new Set());
|
|
1336
|
+
h(this, "searchTerm", "");
|
|
1337
|
+
h(this, "isLoading", !1);
|
|
1338
|
+
h(this, "showSelectedPopover", !1);
|
|
1339
|
+
h(this, "selectedPopoverPlacement", null);
|
|
1340
|
+
h(this, "dropdownPlacement", null);
|
|
1341
|
+
h(this, "isRTL", !1);
|
|
1342
|
+
h(this, "effectiveBadgesPosition", "bottom");
|
|
1343
|
+
h(this, "justClosedViaClick", !1);
|
|
1344
1344
|
// Floating UI cleanup functions
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1345
|
+
h(this, "dropdownCleanup", null);
|
|
1346
|
+
h(this, "hintCleanup", null);
|
|
1347
|
+
h(this, "selectedPopoverCleanup", null);
|
|
1348
1348
|
// Badge tooltip storage
|
|
1349
|
-
|
|
1350
|
-
|
|
1349
|
+
h(this, "badgeTooltips", /* @__PURE__ */ new Map());
|
|
1350
|
+
h(this, "badgeTooltipCleanups", /* @__PURE__ */ new Map());
|
|
1351
1351
|
// Action button tooltip storage
|
|
1352
|
-
|
|
1353
|
-
|
|
1352
|
+
h(this, "actionButtonTooltips", /* @__PURE__ */ new Map());
|
|
1353
|
+
h(this, "actionButtonTooltipCleanups", /* @__PURE__ */ new Map());
|
|
1354
1354
|
// Virtual scroll instance
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1355
|
+
h(this, "virtualScroll", null);
|
|
1356
|
+
h(this, "optionsContainer", null);
|
|
1357
|
+
h(this, "selectedPopoverVirtualScroll", null);
|
|
1358
|
+
h(this, "selectedPopoverContainer", null);
|
|
1359
1359
|
// DOM elements
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1360
|
+
h(this, "input");
|
|
1361
|
+
h(this, "dropdown");
|
|
1362
|
+
h(this, "badgesContainer");
|
|
1363
|
+
h(this, "counter");
|
|
1364
|
+
h(this, "hint");
|
|
1365
|
+
h(this, "selectedPopover");
|
|
1366
1366
|
this.element = e, this.instanceId = `MS-${Math.random().toString(36).substr(2, 9)}`, this.options = {
|
|
1367
1367
|
// String options
|
|
1368
1368
|
searchHint: e.dataset.searchHint || "",
|
|
@@ -1488,11 +1488,11 @@ class us {
|
|
|
1488
1488
|
this.filteredOptions = [...this.allOptions];
|
|
1489
1489
|
}
|
|
1490
1490
|
buildHTML() {
|
|
1491
|
-
const e = this.options.container || document.body, t = this.element.getRootNode(),
|
|
1491
|
+
const e = this.options.container || document.body, t = this.element.getRootNode(), s = t instanceof ShadowRoot ? t.host : this.element, o = s.getAttribute("dir") === "rtl", n = s.closest('[dir="rtl"]') !== null;
|
|
1492
1492
|
this.isRTL = o || n, le.debug(`[${this.instanceId}] RTL Debug:`, {
|
|
1493
1493
|
isShadowRoot: t instanceof ShadowRoot,
|
|
1494
|
-
hostElement:
|
|
1495
|
-
elementDir:
|
|
1494
|
+
hostElement: s,
|
|
1495
|
+
elementDir: s.getAttribute("dir"),
|
|
1496
1496
|
hasElementDir: o,
|
|
1497
1497
|
hasAncestorDir: n,
|
|
1498
1498
|
isRTL: this.isRTL
|
|
@@ -1533,8 +1533,8 @@ class us {
|
|
|
1533
1533
|
return;
|
|
1534
1534
|
}
|
|
1535
1535
|
if (this.options.isMultipleEnabled && this.options.actionButtons && this.options.actionButtons.length > 0) {
|
|
1536
|
-
const t = this.options.isActionsSticky ? " ms__actions--sticky" : "",
|
|
1537
|
-
e += `<div class="ms__actions${t}${
|
|
1536
|
+
const t = this.options.isActionsSticky ? " ms__actions--sticky" : "", s = this.options.actionsLayout === "wrap" ? " ms__actions--wrap" : "";
|
|
1537
|
+
e += `<div class="ms__actions${t}${s}">`, this.options.actionButtons.forEach((o) => {
|
|
1538
1538
|
if (!(o.isVisibleCallback ? o.isVisibleCallback(this) : o.isVisible ?? !0))
|
|
1539
1539
|
return;
|
|
1540
1540
|
const a = (o.isDisabledCallback ? o.isDisabledCallback(this) : o.isDisabled ?? !1) ? " disabled" : "", l = o.getTextCallback ? o.getTextCallback(this) : o.text;
|
|
@@ -1550,24 +1550,24 @@ class us {
|
|
|
1550
1550
|
e += `<div class="ms__empty">${this.options.emptyMessage}</div>`;
|
|
1551
1551
|
else if (this.options.isGroupsAllowed) {
|
|
1552
1552
|
const t = this.groupOptions(this.filteredOptions);
|
|
1553
|
-
Object.keys(t).forEach((
|
|
1554
|
-
if (e += '<div class="ms__group">',
|
|
1553
|
+
Object.keys(t).forEach((s) => {
|
|
1554
|
+
if (e += '<div class="ms__group">', s !== "__ungrouped__")
|
|
1555
1555
|
if (this.options.renderGroupLabelContentCallback) {
|
|
1556
|
-
const o = this.options.renderGroupLabelContentCallback(
|
|
1556
|
+
const o = this.options.renderGroupLabelContentCallback(s);
|
|
1557
1557
|
if (o instanceof HTMLElement) {
|
|
1558
1558
|
const n = document.createElement("div");
|
|
1559
1559
|
n.className = "ms__group-label", n.appendChild(o), e += n.outerHTML;
|
|
1560
1560
|
} else
|
|
1561
1561
|
e += `<div class="ms__group-label">${o}</div>`;
|
|
1562
1562
|
} else
|
|
1563
|
-
e += `<div class="ms__group-label">${
|
|
1564
|
-
t[
|
|
1563
|
+
e += `<div class="ms__group-label">${s}</div>`;
|
|
1564
|
+
t[s].forEach((o, n) => {
|
|
1565
1565
|
e += this.renderOption(o, n);
|
|
1566
1566
|
}), e += "</div>";
|
|
1567
1567
|
});
|
|
1568
1568
|
} else
|
|
1569
|
-
this.filteredOptions.forEach((t,
|
|
1570
|
-
e += this.renderOption(t,
|
|
1569
|
+
this.filteredOptions.forEach((t, s) => {
|
|
1570
|
+
e += this.renderOption(t, s);
|
|
1571
1571
|
});
|
|
1572
1572
|
e += "</div>", this.dropdown.innerHTML = e, this.attachActionButtonTooltips();
|
|
1573
1573
|
}
|
|
@@ -1576,23 +1576,23 @@ class us {
|
|
|
1576
1576
|
*/
|
|
1577
1577
|
renderDropdownVirtual() {
|
|
1578
1578
|
if (this.destroyAllActionButtonTooltips(), !this.virtualScroll) {
|
|
1579
|
-
let
|
|
1579
|
+
let s = "";
|
|
1580
1580
|
if (this.options.isMultipleEnabled && this.options.actionButtons && this.options.actionButtons.length > 0) {
|
|
1581
1581
|
const r = this.options.isActionsSticky ? " ms__actions--sticky" : "", a = this.options.actionsLayout === "wrap" ? " ms__actions--wrap" : "";
|
|
1582
|
-
|
|
1582
|
+
s += `<div class="ms__actions${r}${a}">`, this.options.actionButtons.forEach((l) => {
|
|
1583
1583
|
if (!(l.isVisibleCallback ? l.isVisibleCallback(this) : l.isVisible ?? !0))
|
|
1584
1584
|
return;
|
|
1585
1585
|
const m = (l.isDisabledCallback ? l.isDisabledCallback(this) : l.isDisabled ?? !1) ? " disabled" : "", u = l.getTextCallback ? l.getTextCallback(this) : l.text;
|
|
1586
|
-
let
|
|
1586
|
+
let p = "";
|
|
1587
1587
|
if (l.getClassCallback) {
|
|
1588
1588
|
const g = l.getClassCallback(this);
|
|
1589
|
-
|
|
1590
|
-
} else l.cssClass && (
|
|
1591
|
-
|
|
1592
|
-
}),
|
|
1589
|
+
p = Array.isArray(g) ? ` ${g.join(" ")}` : g ? ` ${g}` : "";
|
|
1590
|
+
} else l.cssClass && (p = ` ${l.cssClass}`);
|
|
1591
|
+
s += `<button type="button"${m} class="ms__action-btn${p}" data-action="${l.action}">${u}</button>`;
|
|
1592
|
+
}), s += "</div>";
|
|
1593
1593
|
}
|
|
1594
1594
|
const o = this.options.maxHeight || "20rem", n = this.options.optionHeight ?? 50;
|
|
1595
|
-
|
|
1595
|
+
s += `<div class="ms__options ms__options--virtual" style="height: ${o}; max-height: ${o}; overflow-y: auto; position: relative; --ml-option-height: ${n}px;"></div>`, this.dropdown.innerHTML = s, this.optionsContainer = this.dropdown.querySelector(".ms__options");
|
|
1596
1596
|
}
|
|
1597
1597
|
if (this.filteredOptions.length === 0) {
|
|
1598
1598
|
this.optionsContainer.innerHTML = `<div class="ms__empty">${this.options.emptyMessage}</div>`;
|
|
@@ -1604,17 +1604,17 @@ class us {
|
|
|
1604
1604
|
container: this.optionsContainer,
|
|
1605
1605
|
itemHeight: e,
|
|
1606
1606
|
items: this.filteredOptions,
|
|
1607
|
-
renderItem: (
|
|
1607
|
+
renderItem: (s, o) => this.renderOption(s, o),
|
|
1608
1608
|
bufferSize: t
|
|
1609
1609
|
}), this.attachActionButtonTooltips());
|
|
1610
1610
|
});
|
|
1611
1611
|
}
|
|
1612
1612
|
renderOption(e, t) {
|
|
1613
|
-
const
|
|
1613
|
+
const s = this.getItemValue(e), o = this.getItemDisplayValue(e), n = this.getItemIcon(e), r = this.getItemSubtitle(e), a = this.getItemDisabled(e), l = this.selectedValues.has(String(s)), c = t === this.focusedIndex, d = this.matchingIndices.has(t), m = ["ms__option"];
|
|
1614
1614
|
l && m.push("ms__option--selected"), c && m.push("ms__option--focused"), d && m.push("ms__option--matched"), a && m.push("ms__option--disabled");
|
|
1615
1615
|
const u = this.options.checkboxAlign && this.options.checkboxAlign !== "top" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "";
|
|
1616
|
-
let
|
|
1617
|
-
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (
|
|
1616
|
+
let p = `<div class="${m.join(" ")}" data-value="${s}" data-index="${t}"${u}>`;
|
|
1617
|
+
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (p += `<input type="checkbox" class="ms__checkbox" ${l ? "checked" : ""} ${a ? "disabled" : ""}>`), p += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
|
|
1618
1618
|
const g = {
|
|
1619
1619
|
index: t,
|
|
1620
1620
|
isSelected: l,
|
|
@@ -1622,21 +1622,21 @@ class us {
|
|
|
1622
1622
|
isMatched: d,
|
|
1623
1623
|
isDisabled: a
|
|
1624
1624
|
}, b = this.options.renderOptionContentCallback(e, g);
|
|
1625
|
-
typeof b == "string" ?
|
|
1625
|
+
typeof b == "string" ? p += b : p += b.outerHTML;
|
|
1626
1626
|
} else
|
|
1627
|
-
n && (
|
|
1628
|
-
return
|
|
1627
|
+
n && (p += `<span class="ms__option-icon">${n}</span>`), p += '<div class="ms__option-text">', p += `<div class="ms__option-title">${this.highlightMatch(o, this.searchTerm)}</div>`, r && (p += `<div class="ms__option-subtitle">${r}</div>`), p += "</div>";
|
|
1628
|
+
return p += "</div>", p += "</div>", p;
|
|
1629
1629
|
}
|
|
1630
1630
|
highlightMatch(e, t) {
|
|
1631
1631
|
if (!t) return e;
|
|
1632
|
-
const
|
|
1633
|
-
return e.replace(
|
|
1632
|
+
const s = new RegExp(`(${t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")})`, "gi");
|
|
1633
|
+
return e.replace(s, "<mark>$1</mark>");
|
|
1634
1634
|
}
|
|
1635
1635
|
groupOptions(e) {
|
|
1636
1636
|
const t = {};
|
|
1637
|
-
return e.forEach((
|
|
1638
|
-
const o = this.getItemGroup(
|
|
1639
|
-
t[o] || (t[o] = []), t[o].push(
|
|
1637
|
+
return e.forEach((s) => {
|
|
1638
|
+
const o = this.getItemGroup(s) || "__ungrouped__";
|
|
1639
|
+
t[o] || (t[o] = []), t[o].push(s);
|
|
1640
1640
|
}), t;
|
|
1641
1641
|
}
|
|
1642
1642
|
renderBadges() {
|
|
@@ -1654,18 +1654,18 @@ class us {
|
|
|
1654
1654
|
}), !this.isOpen && t > 0 && e.length > 0 ? (f.info(`[${this.instanceId}] ✅ SETTING input.value = "${n}"`), this.input.value = n, f.info(`[${this.instanceId}] 🔍 VERIFY input.value = "${this.input.value}"`)) : this.isOpen ? f.info(`[${this.instanceId}] ⏭️ SKIPPING input update (dropdown is open)`) : (f.info(`[${this.instanceId}] ❌ CLEARING input.value (no selection)`), this.input.value = "");
|
|
1655
1655
|
return;
|
|
1656
1656
|
}
|
|
1657
|
-
let
|
|
1658
|
-
if (this.options.badgesThreshold !== null && t > this.options.badgesThreshold &&
|
|
1659
|
-
if (t > 0 &&
|
|
1657
|
+
let s = this.options.badgesDisplayMode;
|
|
1658
|
+
if (this.options.badgesThreshold !== null && t > this.options.badgesThreshold && s !== "none" && (s = this.options.badgesThresholdMode || "count"), !this.isOpen)
|
|
1659
|
+
if (t > 0 && s === "count") {
|
|
1660
1660
|
const n = this.options.getCounterCallback ? this.options.getCounterCallback(t) : `${t} selected`;
|
|
1661
1661
|
this.input.placeholder = n;
|
|
1662
1662
|
} else
|
|
1663
1663
|
this.input.placeholder = this.options.searchPlaceholder;
|
|
1664
|
-
if (this.options.isCounterShown && t > 0 ? (this.counter.textContent = `[${t}]`, this.counter.style.display = "") : this.counter.style.display = "none",
|
|
1664
|
+
if (this.options.isCounterShown && t > 0 ? (this.counter.textContent = `[${t}]`, this.counter.style.display = "") : this.counter.style.display = "none", s === "none") {
|
|
1665
1665
|
this.badgesContainer.innerHTML = "";
|
|
1666
1666
|
return;
|
|
1667
1667
|
}
|
|
1668
|
-
if (
|
|
1668
|
+
if (s === "badges")
|
|
1669
1669
|
this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, this.badgesContainer.innerHTML = e.map((n) => {
|
|
1670
1670
|
const r = this.getItemValue(n);
|
|
1671
1671
|
let a;
|
|
@@ -1689,7 +1689,7 @@ class us {
|
|
|
1689
1689
|
</div>
|
|
1690
1690
|
`;
|
|
1691
1691
|
}).join("");
|
|
1692
|
-
else if (
|
|
1692
|
+
else if (s === "partial") {
|
|
1693
1693
|
this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`;
|
|
1694
1694
|
const n = this.options.badgesMaxVisible || 3, r = e.slice(0, n), a = t - n, l = r.map((d) => {
|
|
1695
1695
|
const m = this.getItemValue(d);
|
|
@@ -1702,13 +1702,13 @@ class us {
|
|
|
1702
1702
|
u = typeof b == "string" ? b : b.outerHTML;
|
|
1703
1703
|
} else
|
|
1704
1704
|
u = this.getItemBadgeDisplayValue(d);
|
|
1705
|
-
let
|
|
1705
|
+
let p = "ms__badge";
|
|
1706
1706
|
if (this.options.getBadgeClassCallback) {
|
|
1707
1707
|
const g = this.options.getBadgeClassCallback(d), b = Array.isArray(g) ? g : [g];
|
|
1708
|
-
|
|
1708
|
+
p += " " + b.filter((v) => v).join(" ");
|
|
1709
1709
|
}
|
|
1710
1710
|
return `
|
|
1711
|
-
<div class="${
|
|
1711
|
+
<div class="${p}">
|
|
1712
1712
|
<span class="ms__badge-text">${u}</span>
|
|
1713
1713
|
<button type="button" class="ms__badge-remove" data-value="${m}" aria-label="Remove ${this.getItemBadgeDisplayValue(d)}"></button>
|
|
1714
1714
|
</div>
|
|
@@ -1721,7 +1721,7 @@ class us {
|
|
|
1721
1721
|
<button type="button" class="ms__badge-remove" data-action="remove-hidden" aria-label="Remove ${a} hidden items"></button>
|
|
1722
1722
|
</div>
|
|
1723
1723
|
`), this.badgesContainer.innerHTML = l + c;
|
|
1724
|
-
} else if (
|
|
1724
|
+
} else if (s === "compact")
|
|
1725
1725
|
if (this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, t > 0) {
|
|
1726
1726
|
const n = e[0], r = this.getItemBadgeDisplayValue(n), a = t - 1;
|
|
1727
1727
|
let l = r;
|
|
@@ -1764,8 +1764,8 @@ class us {
|
|
|
1764
1764
|
}, 0), this.dropdown.addEventListener("click", (e) => this.handleDropdownClick(e)), this.dropdown.addEventListener("wheel", (e) => {
|
|
1765
1765
|
if (this.virtualScroll)
|
|
1766
1766
|
return;
|
|
1767
|
-
const t = e.currentTarget,
|
|
1768
|
-
(e.deltaY < 0 &&
|
|
1767
|
+
const t = e.currentTarget, s = t.scrollTop === 0, o = t.scrollTop + t.clientHeight >= t.scrollHeight;
|
|
1768
|
+
(e.deltaY < 0 && s || e.deltaY > 0 && o) && e.preventDefault(), e.stopPropagation();
|
|
1769
1769
|
}, { passive: !1 }), this.badgesContainer.addEventListener("mousedown", (e) => {
|
|
1770
1770
|
e.target.closest('[data-action="show-selected"]') && !this.showSelectedPopover && e.stopPropagation();
|
|
1771
1771
|
}), this.badgesContainer.addEventListener("click", (e) => this.handleBadgeClick(e)), this.counter.addEventListener("mousedown", (e) => {
|
|
@@ -1779,12 +1779,12 @@ class us {
|
|
|
1779
1779
|
return;
|
|
1780
1780
|
let t = e;
|
|
1781
1781
|
if (this.options.beforeSearchCallback) {
|
|
1782
|
-
const
|
|
1783
|
-
if (
|
|
1782
|
+
const s = this.options.beforeSearchCallback(e);
|
|
1783
|
+
if (s === null) {
|
|
1784
1784
|
S.debug(`[${this.instanceId}] beforeSearchCallback blocked search for term:`, e), this.filteredOptions = [...this.allOptions], this.matchingIndices.clear(), this.renderDropdown();
|
|
1785
1785
|
return;
|
|
1786
1786
|
}
|
|
1787
|
-
t =
|
|
1787
|
+
t = s, t !== e && S.debug(`[${this.instanceId}] beforeSearchCallback transformed: "${e}" -> "${t}"`);
|
|
1788
1788
|
}
|
|
1789
1789
|
if (this.options.searchCallback) {
|
|
1790
1790
|
if (t.length < this.options.minSearchLength) {
|
|
@@ -1793,20 +1793,20 @@ class us {
|
|
|
1793
1793
|
}
|
|
1794
1794
|
this.isLoading = !0, this.renderDropdown(), S.debug(`[${this.instanceId}] Loading data for search term:`, t);
|
|
1795
1795
|
try {
|
|
1796
|
-
const
|
|
1796
|
+
const s = await this.options.searchCallback(t);
|
|
1797
1797
|
if (this.searchTerm === e) {
|
|
1798
|
-
const o =
|
|
1798
|
+
const o = s || [];
|
|
1799
1799
|
this.filteredOptions = [...o], this.isLoading = !1, this.matchingIndices.clear(), this.focusedIndex = this.options.isSearchEnabled && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(), S.debug(`[${this.instanceId}] Loaded ${o.length} results`);
|
|
1800
1800
|
}
|
|
1801
|
-
} catch (
|
|
1802
|
-
S.error(`[${this.instanceId}] Error loading data:`,
|
|
1801
|
+
} catch (s) {
|
|
1802
|
+
S.error(`[${this.instanceId}] Error loading data:`, s), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? this.filteredOptions = [...this.allOptions] : this.filteredOptions = [], this.matchingIndices.clear(), this.renderDropdown();
|
|
1803
1803
|
}
|
|
1804
1804
|
} else {
|
|
1805
1805
|
if (!t)
|
|
1806
1806
|
this.filteredOptions = [...this.allOptions], this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1;
|
|
1807
1807
|
else {
|
|
1808
|
-
const
|
|
1809
|
-
if (
|
|
1808
|
+
const s = this.options.searchMode || "filter", o = t.toLowerCase();
|
|
1809
|
+
if (s === "filter")
|
|
1810
1810
|
this.filteredOptions = this.allOptions.filter((n) => this.getItemSearchValue(n).toLowerCase().includes(o)), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, S.debug(`[${this.instanceId}] Filter mode: ${this.filteredOptions.length} matches for "${t}"`);
|
|
1811
1811
|
else {
|
|
1812
1812
|
this.filteredOptions = [...this.allOptions], this.matchingIndices.clear();
|
|
@@ -1825,8 +1825,8 @@ class us {
|
|
|
1825
1825
|
return;
|
|
1826
1826
|
}
|
|
1827
1827
|
if (!this.options.isSearchEnabled) {
|
|
1828
|
-
const t = e.key.length === 1 || e.key === "Backspace" || e.key === "Delete",
|
|
1829
|
-
if (t && !
|
|
1828
|
+
const t = e.key.length === 1 || e.key === "Backspace" || e.key === "Delete", s = ["ArrowUp", "ArrowDown", "PageUp", "PageDown", "Home", "End", "Enter", "Escape", "Tab"].includes(e.key);
|
|
1829
|
+
if (t && !s) {
|
|
1830
1830
|
e.preventDefault();
|
|
1831
1831
|
return;
|
|
1832
1832
|
}
|
|
@@ -1883,10 +1883,10 @@ class us {
|
|
|
1883
1883
|
}
|
|
1884
1884
|
return;
|
|
1885
1885
|
}
|
|
1886
|
-
const
|
|
1887
|
-
if (
|
|
1886
|
+
const s = e.target.closest(".ms__option");
|
|
1887
|
+
if (s && !s.classList.contains("ms__option--disabled")) {
|
|
1888
1888
|
e.preventDefault();
|
|
1889
|
-
const n =
|
|
1889
|
+
const n = s.dataset.value, r = this.filteredOptions.find((a) => String(this.getItemValue(a)) === n);
|
|
1890
1890
|
A.debug(`[${this.instanceId}] Option clicked:`, {
|
|
1891
1891
|
value: n,
|
|
1892
1892
|
closeOnSelect: this.options.isCloseOnSelect,
|
|
@@ -1930,19 +1930,19 @@ class us {
|
|
|
1930
1930
|
return;
|
|
1931
1931
|
}
|
|
1932
1932
|
if (!this.isOpen) return;
|
|
1933
|
-
const
|
|
1933
|
+
const s = t.some(
|
|
1934
1934
|
(n) => n instanceof Node && (this.element.contains(n) || this.dropdown.contains(n) || this.hint && this.hint.contains(n))
|
|
1935
1935
|
);
|
|
1936
1936
|
A.debug(`[${this.instanceId}] handleClickOutside`, {
|
|
1937
1937
|
target: e.target.className,
|
|
1938
1938
|
targetTag: e.target.tagName,
|
|
1939
|
-
clickedInside:
|
|
1939
|
+
clickedInside: s,
|
|
1940
1940
|
pathLength: t.length,
|
|
1941
1941
|
firstInPath: (o = t[0]) == null ? void 0 : o.tagName,
|
|
1942
1942
|
elementContains: t.some((n) => n instanceof Node && this.element.contains(n)),
|
|
1943
1943
|
dropdownContains: t.some((n) => n instanceof Node && this.dropdown.contains(n)),
|
|
1944
1944
|
isConnected: this.dropdown.isConnected
|
|
1945
|
-
}),
|
|
1945
|
+
}), s || (A.warn(`[${this.instanceId}] Closing dropdown due to click outside`), this.close());
|
|
1946
1946
|
}
|
|
1947
1947
|
focusNext() {
|
|
1948
1948
|
this.filteredOptions.length !== 0 && (this.focusedIndex = Math.min(this.filteredOptions.length - 1, this.focusedIndex + 1), this.renderDropdown(), this.scrollToFocused());
|
|
@@ -1958,13 +1958,13 @@ class us {
|
|
|
1958
1958
|
}
|
|
1959
1959
|
focusNextMatch() {
|
|
1960
1960
|
if (this.matchingIndices.size === 0) return;
|
|
1961
|
-
const e = Array.from(this.matchingIndices).sort((o, n) => o - n), t = e.findIndex((o) => o === this.focusedIndex),
|
|
1962
|
-
this.focusedIndex = e[
|
|
1961
|
+
const e = Array.from(this.matchingIndices).sort((o, n) => o - n), t = e.findIndex((o) => o === this.focusedIndex), s = (t + 1) % e.length;
|
|
1962
|
+
this.focusedIndex = e[s], this.renderDropdown(), this.scrollToFocused(), A.debug(`[${this.instanceId}] Jumped to next match: index ${this.focusedIndex} (${t + 1} of ${e.length})`);
|
|
1963
1963
|
}
|
|
1964
1964
|
focusPreviousMatch() {
|
|
1965
1965
|
if (this.matchingIndices.size === 0) return;
|
|
1966
|
-
const e = Array.from(this.matchingIndices).sort((o, n) => o - n), t = e.findIndex((o) => o === this.focusedIndex),
|
|
1967
|
-
this.focusedIndex = e[
|
|
1966
|
+
const e = Array.from(this.matchingIndices).sort((o, n) => o - n), t = e.findIndex((o) => o === this.focusedIndex), s = t <= 0 ? e.length - 1 : t - 1;
|
|
1967
|
+
this.focusedIndex = e[s], this.renderDropdown(), this.scrollToFocused(), A.debug(`[${this.instanceId}] Jumped to previous match: index ${this.focusedIndex} (${t + 1} of ${e.length})`);
|
|
1968
1968
|
}
|
|
1969
1969
|
focusPageUp() {
|
|
1970
1970
|
this.filteredOptions.length !== 0 && (this.focusedIndex = Math.max(0, this.focusedIndex - 10), this.renderDropdown(), this.scrollToFocused());
|
|
@@ -1981,12 +1981,12 @@ class us {
|
|
|
1981
1981
|
}
|
|
1982
1982
|
}
|
|
1983
1983
|
toggleOption(e) {
|
|
1984
|
-
const t = this.getItemValue(e),
|
|
1984
|
+
const t = this.getItemValue(e), s = String(t);
|
|
1985
1985
|
if (A.debug(`[${this.instanceId}] toggleOption called`, { value: t, multiple: this.options.isMultipleEnabled }), !this.options.isMultipleEnabled) {
|
|
1986
|
-
this.selectedValues.has(
|
|
1986
|
+
this.selectedValues.has(s) ? (A.debug(`[${this.instanceId}] Deselecting option in single-select mode`, { value: t }), this.deselectOption(e)) : (A.debug(`[${this.instanceId}] Clearing previous selections and selecting new option`, { value: t }), this.selectedValues.clear(), this.selectedOptions.clear(), this.selectOption(e)), f.info(`[${this.instanceId}] ❌ Closing dropdown (single-select mode)`), this.close();
|
|
1987
1987
|
return;
|
|
1988
1988
|
}
|
|
1989
|
-
this.selectedValues.has(
|
|
1989
|
+
this.selectedValues.has(s) ? (A.debug(`[${this.instanceId}] Deselecting option`, { value: t }), this.deselectOption(e)) : (A.debug(`[${this.instanceId}] Selecting option`, { value: t }), this.selectOption(e)), A.debug(`[${this.instanceId}] Checking closeOnSelect`, {
|
|
1990
1990
|
closeOnSelect: this.options.isCloseOnSelect,
|
|
1991
1991
|
willClose: this.options.isCloseOnSelect === !0,
|
|
1992
1992
|
placeholder: this.options.searchPlaceholder
|
|
@@ -2003,18 +2003,18 @@ class us {
|
|
|
2003
2003
|
}
|
|
2004
2004
|
}
|
|
2005
2005
|
selectOption(e) {
|
|
2006
|
-
const t = this.getItemValue(e),
|
|
2007
|
-
this.selectedValues.add(
|
|
2006
|
+
const t = this.getItemValue(e), s = String(t);
|
|
2007
|
+
this.selectedValues.add(s), this.selectedOptions.set(s, e), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput(), this.options.selectCallback && this.options.selectCallback(e), this.options.changeCallback && this.options.changeCallback(this.getSelected());
|
|
2008
2008
|
}
|
|
2009
2009
|
deselectOption(e) {
|
|
2010
|
-
const t = this.getItemValue(e),
|
|
2011
|
-
this.selectedValues.delete(
|
|
2010
|
+
const t = this.getItemValue(e), s = String(t);
|
|
2011
|
+
this.selectedValues.delete(s), this.selectedOptions.delete(s), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput(), this.options.deselectCallback && this.options.deselectCallback(e), this.options.changeCallback && this.options.changeCallback(this.getSelected());
|
|
2012
2012
|
}
|
|
2013
2013
|
selectAll() {
|
|
2014
2014
|
this.filteredOptions.forEach((e) => {
|
|
2015
2015
|
if (!this.getItemDisabled(e)) {
|
|
2016
|
-
const t = this.getItemValue(e),
|
|
2017
|
-
this.selectedValues.add(
|
|
2016
|
+
const t = this.getItemValue(e), s = String(t);
|
|
2017
|
+
this.selectedValues.add(s), this.selectedOptions.set(s, e);
|
|
2018
2018
|
}
|
|
2019
2019
|
}), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput(), this.options.changeCallback && this.options.changeCallback(this.getSelected());
|
|
2020
2020
|
}
|
|
@@ -2048,10 +2048,10 @@ class us {
|
|
|
2048
2048
|
ee(this.input, this.dropdown, {
|
|
2049
2049
|
placement: e,
|
|
2050
2050
|
middleware: t
|
|
2051
|
-
}).then(({ x:
|
|
2051
|
+
}).then(({ x: s, y: o, placement: n }) => {
|
|
2052
2052
|
this.options.isPlacementLocked && !this.dropdownPlacement && (this.dropdownPlacement = n, f.debug(`[${this.instanceId}] Locked dropdown placement:`, n));
|
|
2053
2053
|
const r = {
|
|
2054
|
-
left: `${
|
|
2054
|
+
left: `${s}px`,
|
|
2055
2055
|
top: `${o}px`,
|
|
2056
2056
|
width: `${this.input.offsetWidth}px`
|
|
2057
2057
|
};
|
|
@@ -2073,10 +2073,10 @@ class us {
|
|
|
2073
2073
|
// Don't use flip() - we want hint to stay opposite of dropdown
|
|
2074
2074
|
Q({ padding: 8 })
|
|
2075
2075
|
]
|
|
2076
|
-
}).then(({ x: t, y:
|
|
2076
|
+
}).then(({ x: t, y: s }) => {
|
|
2077
2077
|
Object.assign(this.hint.style, {
|
|
2078
2078
|
left: `${t}px`,
|
|
2079
|
-
top: `${
|
|
2079
|
+
top: `${s}px`
|
|
2080
2080
|
});
|
|
2081
2081
|
});
|
|
2082
2082
|
}
|
|
@@ -2086,8 +2086,8 @@ class us {
|
|
|
2086
2086
|
const e = this.element.dataset.initialValues;
|
|
2087
2087
|
if (e)
|
|
2088
2088
|
try {
|
|
2089
|
-
JSON.parse(e).forEach((
|
|
2090
|
-
const o = String(
|
|
2089
|
+
JSON.parse(e).forEach((s) => {
|
|
2090
|
+
const o = String(s);
|
|
2091
2091
|
this.selectedValues.add(o);
|
|
2092
2092
|
const n = this.allOptions.find((r) => String(this.getItemValue(r)) === o);
|
|
2093
2093
|
n && this.selectedOptions.set(o, n);
|
|
@@ -2149,18 +2149,18 @@ class us {
|
|
|
2149
2149
|
}
|
|
2150
2150
|
renderBadgeForPopover(e) {
|
|
2151
2151
|
const t = this.getItemValue(e);
|
|
2152
|
-
let
|
|
2152
|
+
let s;
|
|
2153
2153
|
if (this.options.renderSelectedItemContentCallback) {
|
|
2154
2154
|
const r = this.options.renderSelectedItemContentCallback(e);
|
|
2155
|
-
|
|
2155
|
+
s = typeof r == "string" ? r : r.outerHTML;
|
|
2156
2156
|
} else if (this.options.renderBadgeContentCallback) {
|
|
2157
2157
|
const r = {
|
|
2158
2158
|
displayMode: this.options.badgesDisplayMode || "badges",
|
|
2159
2159
|
isInPopover: !0
|
|
2160
2160
|
}, a = this.options.renderBadgeContentCallback(e, r);
|
|
2161
|
-
|
|
2161
|
+
s = typeof a == "string" ? a : a.outerHTML;
|
|
2162
2162
|
} else
|
|
2163
|
-
|
|
2163
|
+
s = this.getItemBadgeDisplayValue(e);
|
|
2164
2164
|
let o = "ms__badge";
|
|
2165
2165
|
const n = this.options.getSelectedItemClassCallback || this.options.getBadgeClassCallback;
|
|
2166
2166
|
if (n) {
|
|
@@ -2169,7 +2169,7 @@ class us {
|
|
|
2169
2169
|
}
|
|
2170
2170
|
return `
|
|
2171
2171
|
<div class="${o}">
|
|
2172
|
-
<span class="ms__badge-text">${
|
|
2172
|
+
<span class="ms__badge-text">${s}</span>
|
|
2173
2173
|
<button type="button" class="ms__badge-remove" data-value="${t}" aria-label="Remove ${this.getItemBadgeDisplayValue(e)}"></button>
|
|
2174
2174
|
</div>
|
|
2175
2175
|
`;
|
|
@@ -2179,10 +2179,10 @@ class us {
|
|
|
2179
2179
|
e.preventDefault(), this.hideSelectedPopover();
|
|
2180
2180
|
return;
|
|
2181
2181
|
}
|
|
2182
|
-
const
|
|
2183
|
-
if (
|
|
2182
|
+
const s = e.target.closest(".ms__badge-remove");
|
|
2183
|
+
if (s) {
|
|
2184
2184
|
e.preventDefault();
|
|
2185
|
-
const o =
|
|
2185
|
+
const o = s.dataset.value, n = this.selectedOptions.get(o);
|
|
2186
2186
|
n && (this.deselectOption(n), this.renderSelectedPopover(), this.selectedValues.size === 0 && this.hideSelectedPopover());
|
|
2187
2187
|
}
|
|
2188
2188
|
}
|
|
@@ -2199,11 +2199,11 @@ class us {
|
|
|
2199
2199
|
...this.selectedPopoverPlacement ? [] : [ae()],
|
|
2200
2200
|
Q({ padding: 8 })
|
|
2201
2201
|
]
|
|
2202
|
-
}).then(({ x: t, y:
|
|
2202
|
+
}).then(({ x: t, y: s, placement: o }) => {
|
|
2203
2203
|
this.selectedPopoverPlacement || (this.selectedPopoverPlacement = o, f.debug(`[${this.instanceId}] Locked popover placement:`, o));
|
|
2204
2204
|
const n = {
|
|
2205
2205
|
left: `${t}px`,
|
|
2206
|
-
top: `${
|
|
2206
|
+
top: `${s}px`,
|
|
2207
2207
|
width: `${this.input.offsetWidth}px`
|
|
2208
2208
|
};
|
|
2209
2209
|
this.options.dropdownMinWidth && (n.minWidth = this.options.dropdownMinWidth), Object.assign(this.selectedPopover.style, n);
|
|
@@ -2217,19 +2217,19 @@ class us {
|
|
|
2217
2217
|
updateHiddenInput() {
|
|
2218
2218
|
if (!this.options.formFieldId) return;
|
|
2219
2219
|
this.hiddenInputs.forEach((o) => o.remove()), this.hiddenInputs = [];
|
|
2220
|
-
const e = this.options.valueFormat || "json", t = Array.from(this.selectedOptions.values()).map((o) => this.getItemValue(o)),
|
|
2220
|
+
const e = this.options.valueFormat || "json", t = Array.from(this.selectedOptions.values()).map((o) => this.getItemValue(o)), s = this.options.hostElement || this.element;
|
|
2221
2221
|
if (e === "array")
|
|
2222
2222
|
t.forEach((o) => {
|
|
2223
2223
|
const n = document.createElement("input");
|
|
2224
|
-
n.type = "hidden", n.name = `${this.options.formFieldId}[]`, n.value = String(o),
|
|
2224
|
+
n.type = "hidden", n.name = `${this.options.formFieldId}[]`, n.value = String(o), s.appendChild(n), this.hiddenInputs.push(n);
|
|
2225
2225
|
});
|
|
2226
2226
|
else {
|
|
2227
2227
|
const o = document.createElement("input");
|
|
2228
|
-
o.type = "hidden", o.name = this.options.formFieldId, o.id = this.options.formFieldId, o.value = this.getFormValue(),
|
|
2228
|
+
o.type = "hidden", o.name = this.options.formFieldId, o.id = this.options.formFieldId, o.value = this.getFormValue(), s.appendChild(o), this.hiddenInputs.push(o);
|
|
2229
2229
|
}
|
|
2230
2230
|
}
|
|
2231
2231
|
getFormValue() {
|
|
2232
|
-
const e = Array.from(this.selectedOptions.values()).map((
|
|
2232
|
+
const e = Array.from(this.selectedOptions.values()).map((s) => this.getItemValue(s));
|
|
2233
2233
|
return this.options.getValueFormatCallback ? this.options.getValueFormatCallback(e) : (this.options.valueFormat || "json") === "csv" ? e.join(",") : JSON.stringify(e);
|
|
2234
2234
|
}
|
|
2235
2235
|
// ========================================================================
|
|
@@ -2240,8 +2240,8 @@ class us {
|
|
|
2240
2240
|
}
|
|
2241
2241
|
setSelected(e) {
|
|
2242
2242
|
this.selectedValues = new Set(e.map((t) => String(t))), this.selectedOptions.clear(), e.forEach((t) => {
|
|
2243
|
-
const
|
|
2244
|
-
o && this.selectedOptions.set(
|
|
2243
|
+
const s = String(t), o = this.allOptions.find((n) => String(this.getItemValue(n)) === s);
|
|
2244
|
+
o && this.selectedOptions.set(s, o);
|
|
2245
2245
|
}), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput();
|
|
2246
2246
|
}
|
|
2247
2247
|
get selectedItem() {
|
|
@@ -2270,8 +2270,8 @@ class us {
|
|
|
2270
2270
|
return;
|
|
2271
2271
|
}
|
|
2272
2272
|
const e = this.badgesContainer.querySelectorAll(".ms__badge:not(.ms__badge--more)");
|
|
2273
|
-
f.debug(`[${this.instanceId}] Found ${e.length} badges to attach tooltips to`), e.forEach((
|
|
2274
|
-
const o =
|
|
2273
|
+
f.debug(`[${this.instanceId}] Found ${e.length} badges to attach tooltips to`), e.forEach((s) => {
|
|
2274
|
+
const o = s, n = o.querySelector(".ms__badge-remove");
|
|
2275
2275
|
if (!n) return;
|
|
2276
2276
|
const r = n.dataset.value, a = this.selectedOptions.get(r);
|
|
2277
2277
|
if (!a) return;
|
|
@@ -2282,14 +2282,14 @@ class us {
|
|
|
2282
2282
|
});
|
|
2283
2283
|
const t = this.badgesContainer.querySelector(".ms__badge--more");
|
|
2284
2284
|
if (t) {
|
|
2285
|
-
const
|
|
2286
|
-
if (
|
|
2285
|
+
const s = t.querySelector(".ms__badge-remove");
|
|
2286
|
+
if (s && s.dataset.action === "remove-hidden") {
|
|
2287
2287
|
const o = this.options.badgesMaxVisible || 3, r = Array.from(this.selectedOptions.values()).length - o;
|
|
2288
|
-
this.createRemoveButtonTooltip(
|
|
2288
|
+
this.createRemoveButtonTooltip(s, `${r} hidden items`, "more-badge-remove");
|
|
2289
2289
|
}
|
|
2290
2290
|
}
|
|
2291
2291
|
}
|
|
2292
|
-
createTooltipForElement(e, t,
|
|
2292
|
+
createTooltipForElement(e, t, s) {
|
|
2293
2293
|
const o = document.createElement("div");
|
|
2294
2294
|
o.className = "ms__badge-tooltip";
|
|
2295
2295
|
let n;
|
|
@@ -2300,28 +2300,28 @@ class us {
|
|
|
2300
2300
|
n = u ? `${m}
|
|
2301
2301
|
${u}` : m, f.debug(`[${this.instanceId}] Using default content: "${n}"`);
|
|
2302
2302
|
}
|
|
2303
|
-
typeof n == "string" ? o.textContent = n : o.appendChild(n), (this.options.container || document.body).appendChild(o), f.debug(`[${this.instanceId}] Tooltip element created and appended for "${
|
|
2303
|
+
typeof n == "string" ? o.textContent = n : o.appendChild(n), (this.options.container || document.body).appendChild(o), f.debug(`[${this.instanceId}] Tooltip element created and appended for "${s}"`), this.badgeTooltips.set(s, o);
|
|
2304
2304
|
let a, l;
|
|
2305
2305
|
const c = () => {
|
|
2306
|
-
clearTimeout(l), f.debug(`[${this.instanceId}] Mouse entered badge "${
|
|
2307
|
-
f.debug(`[${this.instanceId}] Showing tooltip for "${
|
|
2306
|
+
clearTimeout(l), f.debug(`[${this.instanceId}] Mouse entered badge "${s}", will show tooltip in ${this.options.badgeTooltipDelay || 300}ms`), a = window.setTimeout(() => {
|
|
2307
|
+
f.debug(`[${this.instanceId}] Showing tooltip for "${s}"`), o.classList.add("ms__badge-tooltip--visible"), this.positionBadgeTooltip(e, o, s);
|
|
2308
2308
|
}, this.options.badgeTooltipDelay || 300);
|
|
2309
2309
|
}, d = () => {
|
|
2310
2310
|
clearTimeout(a), l = window.setTimeout(() => {
|
|
2311
|
-
o.classList.remove("ms__badge-tooltip--visible"), this.cleanupBadgeTooltip(
|
|
2311
|
+
o.classList.remove("ms__badge-tooltip--visible"), this.cleanupBadgeTooltip(s);
|
|
2312
2312
|
}, 100);
|
|
2313
2313
|
};
|
|
2314
2314
|
e.addEventListener("mouseenter", c), e.addEventListener("mouseleave", d);
|
|
2315
2315
|
}
|
|
2316
|
-
createRemoveButtonTooltip(e, t,
|
|
2316
|
+
createRemoveButtonTooltip(e, t, s) {
|
|
2317
2317
|
const o = document.createElement("div");
|
|
2318
2318
|
o.className = "ms__badge-tooltip", o.textContent = `Remove ${t}`, (this.options.container || document.body).appendChild(o);
|
|
2319
|
-
const r = `${
|
|
2319
|
+
const r = `${s}-remove`;
|
|
2320
2320
|
this.badgeTooltips.set(r, o);
|
|
2321
2321
|
let a, l;
|
|
2322
2322
|
const c = () => {
|
|
2323
2323
|
clearTimeout(l);
|
|
2324
|
-
const m = this.badgeTooltips.get(
|
|
2324
|
+
const m = this.badgeTooltips.get(s);
|
|
2325
2325
|
m && m.classList.remove("ms__badge-tooltip--visible"), a = window.setTimeout(() => {
|
|
2326
2326
|
o.classList.add("ms__badge-tooltip--visible"), this.positionBadgeTooltip(e, o, r);
|
|
2327
2327
|
}, this.options.badgeTooltipDelay || 300);
|
|
@@ -2332,7 +2332,7 @@ ${u}` : m, f.debug(`[${this.instanceId}] Using default content: "${n}"`);
|
|
|
2332
2332
|
};
|
|
2333
2333
|
e.addEventListener("mouseenter", c), e.addEventListener("mouseleave", d);
|
|
2334
2334
|
}
|
|
2335
|
-
positionBadgeTooltip(e, t,
|
|
2335
|
+
positionBadgeTooltip(e, t, s) {
|
|
2336
2336
|
const o = q(e, t, () => {
|
|
2337
2337
|
ee(e, t, {
|
|
2338
2338
|
placement: this.options.badgeTooltipPlacement || "top",
|
|
@@ -2346,7 +2346,7 @@ ${u}` : m, f.debug(`[${this.instanceId}] Using default content: "${n}"`);
|
|
|
2346
2346
|
Object.assign(t.style, {
|
|
2347
2347
|
left: `${n}px`,
|
|
2348
2348
|
top: `${r}px`
|
|
2349
|
-
}), f.debug(`[${this.instanceId}] Positioned tooltip "${
|
|
2349
|
+
}), f.debug(`[${this.instanceId}] Positioned tooltip "${s}" at x:${n}, y:${r}`, {
|
|
2350
2350
|
placement: this.options.badgeTooltipPlacement || "top",
|
|
2351
2351
|
tooltipClasses: t.className,
|
|
2352
2352
|
tooltipDisplay: window.getComputedStyle(t).display,
|
|
@@ -2357,7 +2357,7 @@ ${u}` : m, f.debug(`[${this.instanceId}] Using default content: "${n}"`);
|
|
|
2357
2357
|
});
|
|
2358
2358
|
});
|
|
2359
2359
|
});
|
|
2360
|
-
this.badgeTooltipCleanups.set(
|
|
2360
|
+
this.badgeTooltipCleanups.set(s, o);
|
|
2361
2361
|
}
|
|
2362
2362
|
cleanupBadgeTooltip(e) {
|
|
2363
2363
|
const t = this.badgeTooltipCleanups.get(e);
|
|
@@ -2373,9 +2373,9 @@ ${u}` : m, f.debug(`[${this.instanceId}] Using default content: "${n}"`);
|
|
|
2373
2373
|
const e = this.dropdown.querySelectorAll(".ms__action-btn");
|
|
2374
2374
|
f.debug(`[${this.instanceId}] Found ${e.length} action buttons to attach tooltips to`), e.forEach((t) => {
|
|
2375
2375
|
var l;
|
|
2376
|
-
const
|
|
2376
|
+
const s = t, o = s.dataset.action;
|
|
2377
2377
|
if (!o) return;
|
|
2378
|
-
const n = (l = this.options.actionButtons) == null ? void 0 : l.find((c) => c.action === "custom" ?
|
|
2378
|
+
const n = (l = this.options.actionButtons) == null ? void 0 : l.find((c) => c.action === "custom" ? s.dataset.customAction === s.dataset.action : c.action === o);
|
|
2379
2379
|
if (!n) return;
|
|
2380
2380
|
let r;
|
|
2381
2381
|
if (n.getTooltipCallback ? (r = n.getTooltipCallback(this), f.debug(`[${this.instanceId}] Using getTooltipCallback for action button "${o}": "${r}"`)) : (r = n.tooltip, f.debug(`[${this.instanceId}] Using static tooltip for action button "${o}": "${r}"`)), !r) {
|
|
@@ -2383,25 +2383,25 @@ ${u}` : m, f.debug(`[${this.instanceId}] Using default content: "${n}"`);
|
|
|
2383
2383
|
return;
|
|
2384
2384
|
}
|
|
2385
2385
|
const a = `action-${o}-${Date.now()}`;
|
|
2386
|
-
this.createActionButtonTooltip(
|
|
2386
|
+
this.createActionButtonTooltip(s, r, a);
|
|
2387
2387
|
});
|
|
2388
2388
|
}
|
|
2389
|
-
createActionButtonTooltip(e, t,
|
|
2389
|
+
createActionButtonTooltip(e, t, s) {
|
|
2390
2390
|
const o = document.createElement("div");
|
|
2391
|
-
o.className = "ms__badge-tooltip", o.textContent = t, (this.options.container || document.body).appendChild(o), f.debug(`[${this.instanceId}] Tooltip element created for action button "${
|
|
2391
|
+
o.className = "ms__badge-tooltip", o.textContent = t, (this.options.container || document.body).appendChild(o), f.debug(`[${this.instanceId}] Tooltip element created for action button "${s}"`), this.actionButtonTooltips.set(s, o);
|
|
2392
2392
|
let r, a;
|
|
2393
2393
|
const l = () => {
|
|
2394
|
-
clearTimeout(a), f.debug(`[${this.instanceId}] Mouse entered action button "${
|
|
2395
|
-
f.debug(`[${this.instanceId}] Showing tooltip for action button "${
|
|
2394
|
+
clearTimeout(a), f.debug(`[${this.instanceId}] Mouse entered action button "${s}", will show tooltip in ${this.options.badgeTooltipDelay || 300}ms`), r = window.setTimeout(() => {
|
|
2395
|
+
f.debug(`[${this.instanceId}] Showing tooltip for action button "${s}"`), o.classList.add("ms__badge-tooltip--visible"), this.positionActionButtonTooltip(e, o, s);
|
|
2396
2396
|
}, this.options.badgeTooltipDelay || 300);
|
|
2397
2397
|
}, c = () => {
|
|
2398
2398
|
clearTimeout(r), a = window.setTimeout(() => {
|
|
2399
|
-
o.classList.remove("ms__badge-tooltip--visible"), this.cleanupActionButtonTooltip(
|
|
2399
|
+
o.classList.remove("ms__badge-tooltip--visible"), this.cleanupActionButtonTooltip(s);
|
|
2400
2400
|
}, 100);
|
|
2401
2401
|
};
|
|
2402
2402
|
e.addEventListener("mouseenter", l), e.addEventListener("mouseleave", c);
|
|
2403
2403
|
}
|
|
2404
|
-
positionActionButtonTooltip(e, t,
|
|
2404
|
+
positionActionButtonTooltip(e, t, s) {
|
|
2405
2405
|
const o = q(e, t, () => {
|
|
2406
2406
|
ee(e, t, {
|
|
2407
2407
|
placement: this.options.badgeTooltipPlacement || "top",
|
|
@@ -2415,10 +2415,10 @@ ${u}` : m, f.debug(`[${this.instanceId}] Using default content: "${n}"`);
|
|
|
2415
2415
|
Object.assign(t.style, {
|
|
2416
2416
|
left: `${n}px`,
|
|
2417
2417
|
top: `${r}px`
|
|
2418
|
-
}), f.debug(`[${this.instanceId}] Positioned action button tooltip "${
|
|
2418
|
+
}), f.debug(`[${this.instanceId}] Positioned action button tooltip "${s}" at x:${n}, y:${r}`);
|
|
2419
2419
|
});
|
|
2420
2420
|
});
|
|
2421
|
-
this.actionButtonTooltipCleanups.set(
|
|
2421
|
+
this.actionButtonTooltipCleanups.set(s, o);
|
|
2422
2422
|
}
|
|
2423
2423
|
cleanupActionButtonTooltip(e) {
|
|
2424
2424
|
const t = this.actionButtonTooltipCleanups.get(e);
|
|
@@ -2434,7 +2434,7 @@ ${u}` : m, f.debug(`[${this.instanceId}] Using default content: "${n}"`);
|
|
|
2434
2434
|
this.destroyAllBadgeTooltips(), this.destroyAllActionButtonTooltips(), this.dropdownCleanup && this.dropdownCleanup(), this.hintCleanup && this.hintCleanup(), this.selectedPopoverCleanup && this.selectedPopoverCleanup(), 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("ml", "ms--open", "ms--no-checkboxes"), le.info(`[${this.instanceId}] Component destroyed`);
|
|
2435
2435
|
}
|
|
2436
2436
|
}
|
|
2437
|
-
const gs = '@charset "UTF-8";:host{--ms-accent-color: #3b82f6;--ms-accent-color-hover: #2563eb;--ms-accent-color-active: #1d4ed8;--ms-text-primary: #111827;--ms-text-secondary: #6b7280;--ms-text-white: #ffffff;--ms-primary-bg: #f3f4f6;--ms-primary-bg-hover: #e5e7eb;--ms-border-color: #e5e7eb;--ms-input-background: var(--ms-input-bg);--ms-input-color: var(--ms-text-primary);--ms-input-border-color: var(--ms-border-color);--ms-input-border-color-focus: var(--ms-accent-color);--ms-input-placeholder-color: var(--ms-text-secondary);--ms-input-background-disabled: var(--ms-input-bg-disabled);--ms-toggle-icon-color: var(--ms-text-secondary);--ms-toggle-icon-color-open: var(--ms-text-secondary);--ms-counter-badge-background: var(--ms-accent-color);--ms-counter-badge-background-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-white);--ms-hint-background: var(--ms-hint-bg);--ms-hint-color: var(--ms-text-secondary);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-background: var(--ms-dropdown-bg);--ms-dropdown-text-color: var(--ms-text-primary);--ms-dropdown-border-color: var(--ms-border-color);--ms-actions-background: var(--ms-dropdown-bg);--ms-actions-border-color: var(--ms-border-color);--ms-action-button-background: transparent;--ms-action-button-background-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-primary);--ms-group-border-color: var(--ms-border-color);--ms-group-label-color: var(--ms-text-secondary);--ms-option-text-color: var(--ms-text-primary);--ms-option-background: transparent;--ms-option-background-hover: var(--ms-primary-bg);--ms-option-background-focused: var(--ms-primary-bg);--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-background-selected: var(--ms-option-bg-selected);--ms-option-background-matched: var(--ms-option-bg-matched);--ms-option-border-matched-color: var(--ms-option-border-matched);--ms-option-title-color: var(--ms-text-primary);--ms-option-subtitle-color: var(--ms-text-secondary);--ms-option-mark-background: var(--ms-option-mark-bg);--ms-empty-color: var(--ms-text-secondary);--ms-loading-color: var(--ms-text-secondary);--ms-badge-background: var(--ms-badge-bg);--ms-badge-background-hover: var(--ms-badge-bg-hover);--ms-badge-background-active: var(--ms-badge-bg-active);--ms-badge-text-background: var(--ms-badge-text-bg);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-remove-background: var(--ms-accent-color);--ms-badge-remove-background-hover: var(--ms-accent-color-hover);--ms-badge-remove-color: var(--ms-text-white);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-background: var(--ms-badge-counter-text-bg);--ms-badge-counter-text-color: var(--ms-text-secondary);--ms-badge-counter-remove-background: var(--ms-badge-counter-remove-bg);--ms-badge-counter-remove-background-hover: var(--ms-badge-counter-remove-bg-hover);--ms-badge-counter-remove-color: var(--ms-badge-counter-remove-color);--ms-counter-wrapper-background: transparent;--ms-counter-wrapper-background-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-color: var(--ms-text-primary);--ms-count-clear-background: transparent;--ms-count-clear-background-hover: var(--ms-accent-color);--ms-count-clear-color: var(--ms-text-secondary);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-tooltip-background: var(--ms-tooltip-bg);--ms-tooltip-text-color: var(--ms-tooltip-color);--ms-selected-popover-background: var(--ms-dropdown-bg);--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-background: var(--ms-selected-popover-header-bg);--ms-selected-popover-header-color: var(--ms-text-primary);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-background: transparent;--ms-selected-popover-close-background-hover: var(--ms-accent-color);--ms-selected-popover-close-color: var(--ms-text-secondary);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-input-padding: .5rem .75rem;--ms-input-padding-right: 2.5rem;--ms-input-font-size: .875rem;--ms-input-border-style: 1px solid #d1d5db;--ms-input-border-radius: .375rem;--ms-input-bg: #ffffff;--ms-input-text: #111827;--ms-input-focus-border-color: #3b82f6;--ms-input-placeholder-color: #6b7280;--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-toggle-right: .75rem;--ms-toggle-color: #6b7280;--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: 2rem;--ms-counter-padding: .125rem .25rem;--ms-counter-bg: #3b82f6;--ms-counter-color: #ffffff;--ms-counter-font-size: .75rem;--ms-counter-font-weight: 600;--ms-counter-border-radius: .25rem;--ms-counter-bg-hover: #2563eb;--ms-transform-scale-hover: 1.1;--ms-hint-padding: .5rem .75rem;--ms-hint-bg: #ffffff;--ms-hint-border: 1px solid #e5e7eb;--ms-hint-border-radius: .375rem;--ms-hint-box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--ms-hint-font-size: .75rem;--ms-hint-color: #6b7280;--ms-line-height-relaxed: 1.4;--ms-dropdown-bg: #ffffff;--ms-dropdown-border: 1px solid #e5e7eb;--ms-dropdown-border-radius: .375rem;--ms-dropdown-box-shadow: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--ms-options-max-height: 20rem;--ms-option-color: #111827;--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-actions-gap: .25rem;--ms-actions-padding: .5rem;--ms-actions-border-bottom: 1px solid #e5e7eb;--ms-actions-bg: #ffffff;--ms-action-btn-padding: .25rem .5rem;--ms-action-btn-font-size: .75rem;--ms-action-btn-border: 1px solid #e5e7eb;--ms-action-btn-border-radius: .25rem;--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: #f3f4f6;--ms-action-btn-border-color-hover: #3b82f6;--ms-transform-scale-active: .98;--ms-options-padding: .25rem 0;--ms-group-border-top: 1px solid #e5e7eb;--ms-group-margin-top: .25rem;--ms-group-padding-top: .25rem;--ms-group-label-padding: .25rem .75rem;--ms-group-label-font-size: .75rem;--ms-group-label-font-weight: 600;--ms-group-label-color: #6b7280;--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: .5rem;--ms-option-padding: .5rem .75rem;--ms-option-padding-h: .75rem;--ms-option-bg: transparent;--ms-option-bg-hover: #f9fafb;--ms-option-bg-focused: #f9fafb;--ms-option-outline-focused: 2px solid #3b82f6;--ms-option-focus-outline-offset: -2px;--ms-option-bg-matched: rgba(59, 130, 246, .08);--ms-option-border-matched: 3px solid rgba(59, 130, 246, .4);--ms-option-bg-selected: rgba(59, 130, 246, .1);--ms-disabled-opacity: .5;--ms-option-content-gap: .5rem;--ms-option-icon-size: 1.25rem;--ms-option-icon-font-size: 1rem;--ms-option-title-font-size: .875rem;--ms-option-title-color: inherit;--ms-option-mark-bg: rgba(59, 130, 246, .2);--ms-option-mark-color: inherit;--ms-option-mark-font-weight: 600;--ms-option-subtitle-margin-top: .25rem;--ms-option-subtitle-font-size: .75rem;--ms-option-subtitle-color: #6b7280;--ms-option-subtitle-line-height: 1.3;--ms-checkbox-margin-top: .125rem;--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: 16px;--ms-checkbox-scale: 1;--ms-checkbox-align: flex-start;--ms-empty-padding: 1rem .75rem;--ms-empty-font-size: .875rem;--ms-empty-color: #6b7280;--ms-loader-padding: 1rem;--ms-loader-gap: .5rem;--ms-loading-text-font-size: .875rem;--ms-loading-text-color: #6b7280;--ms-badges-gap: .5rem;--ms-badges-margin-bottom: .5rem;--ms-badges-margin-top: .5rem;--ms-badges-margin-left: .25rem;--ms-badges-margin-right: .25rem;--ms-badge-gap: .5rem;--ms-badge-height: 1.7rem;--ms-badge-font-size: .75rem;--ms-badge-font-weight: 600;--ms-badge-border-radius: .375rem;--ms-badge-bg: #eff6ff;--ms-badge-bg-hover: #ffffff;--ms-badge-bg-active: #e0f2fe;--ms-order-first: -1;--ms-badge-text-padding: 0 .5rem;--ms-badge-text-bg: #eff6ff;--ms-badge-text-color: #3b82f6;--ms-badge-remove-width: 1.7rem;--ms-badge-remove-bg: #3b82f6;--ms-badge-remove-color: #ffffff;--ms-badge-remove-border: none;--ms-badge-remove-font-size: .75rem;--ms-badge-remove-bg-hover: #2563eb;--ms-badge-remove-box-shadow-focus: 0 0 0 2px rgba(59, 130, 246, .5);--ms-icon-remove: "×";--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid #e5e7eb;--ms-badge-counter-border-radius: .25rem;--ms-badge-counter-text-color: #6b7280;--ms-badge-counter-text-bg: #d1d5db;--ms-badge-counter-remove-bg: #6b7280;--ms-badge-counter-remove-color: #ffffff;--ms-badge-counter-remove-bg-hover: #111827;--ms-more-badge-bg: #eff6ff;--ms-more-badge-hover-bg: #ffffff;--ms-more-badge-active-bg: #e0f2fe;--ms-count-display-margin-bottom: .5rem;--ms-count-display-margin-top: .5rem;--ms-count-display-margin-left: .5rem;--ms-count-display-margin-right: .5rem;--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: 1px solid #e5e7eb;--ms-counter-wrapper-border-radius: .25rem;--ms-counter-wrapper-padding: .25rem .5rem;--ms-counter-wrapper-gap: .25rem;--ms-counter-wrapper-bg-hover: #f9fafb;--ms-counter-wrapper-border-color-hover: #3b82f6;--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: .875rem;--ms-count-text-color: #111827;--ms-count-clear-size: 1rem;--ms-count-clear-bg: transparent;--ms-count-clear-color: #6b7280;--ms-count-clear-font-size: 1.125rem;--ms-count-clear-border-radius: 50%;--ms-count-clear-bg-hover: rgba(59, 130, 246, .2);--ms-count-clear-color-hover: #3b82f6;--ms-icon-clear: "×";--ms-tooltip-bg: #333;--ms-tooltip-color: #fff;--ms-tooltip-padding: .5rem .75rem;--ms-tooltip-border-radius: .375rem;--ms-tooltip-font-size: .875rem;--ms-tooltip-max-width: 20rem;--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-z-index-popover: 10000;--ms-selected-popover-width: 20rem;--ms-selected-popover-max-height: 20rem;--ms-selected-popover-bg: #ffffff;--ms-selected-popover-border: 1px solid #e5e7eb;--ms-selected-popover-border-radius: .375rem;--ms-selected-popover-box-shadow: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--ms-selected-popover-header-padding: .5rem .75rem;--ms-selected-popover-header-bg: rgba(59, 130, 246, .1);--ms-selected-popover-header-border-bottom: 1px solid #e5e7eb;--ms-selected-popover-header-font-size: .875rem;--ms-selected-popover-header-font-weight: 600;--ms-selected-popover-header-color: #111827;--ms-popover-close-size: 1.5rem;--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: #6b7280;--ms-selected-popover-close-font-size: 1.25rem;--ms-selected-popover-close-border-radius: 50%;--ms-selected-popover-close-bg-hover: rgba(59, 130, 246, .2);--ms-selected-popover-close-color-hover: #3b82f6;--ms-selected-popover-body-gap: .25rem;--ms-selected-popover-body-padding: .5rem;--ms-selected-popover-body-max-height: 18rem;--ms-font-size-2xs: .625rem;--ms-font-size-xs: .75rem;--ms-font-size-sm: .875rem;--ms-font-size-base: 1rem;--ms-font-size-lg: 1.125rem;--ms-font-weight-medium: 500;--ms-font-weight-semibold: 600;--ms-line-height-none: 1;--ms-spacing-xs: .25rem;--ms-spacing-sm: .5rem;--ms-spacing-md: .75rem;--ms-spacing-lg: 1rem;--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6}multi-select:not(:defined){display:block;min-height:2.5rem;color:transparent!important;background:transparent}.ml-wrapper{display:flex;flex-direction:column;align-items:stretch}.ml-wrapper--inline{flex-direction:row;align-items:flex-start}.ml{position:relative;width:100%}.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{width:100%;padding:var(--ms-input-padding, .5rem .75rem);padding-right:var(--ms-input-padding-right, 2.5rem);font-size:var(--ms-input-font-size, .875rem);border:var(--ms-input-border-style, 1px solid #d1d5db);border-radius:var(--ms-input-border-radius, .375rem);background:var(--ms-input-background, #ffffff);color:var(--ms-input-color, #111827);cursor:pointer;transition:border-color var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__input:focus{outline:none;border-color:var(--ms-input-border-color-focus, #3b82f6)}.ms__input::placeholder{color:var(--ms-input-placeholder-color, #6b7280);opacity:0;transition:opacity var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity, .6)}.ms__toggle{position:absolute;right:var(--ms-toggle-right, .75rem);top:50%;transform:var(--ms-transform-center-y, translateY(-50%));pointer-events:none;color:var(--ms-toggle-icon-color, #6b7280);transition:transform var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms--open .ms__toggle{transform:var(--ms-transform-center-y, translateY(-50%)) rotate(var(--ms-transform-rotate-180, 180deg));color:var(--ms-toggle-icon-color-open, #6b7280)}.ms__counter{position:absolute;right:var(--ms-counter-offset, 2rem);top:50%;transform:var(--ms-transform-center-y, translateY(-50%));padding:var(--ms-counter-padding, .125rem .25rem);background:var(--ms-counter-badge-background, #3b82f6);color:var(--ms-counter-badge-color, #ffffff);font-size:var(--ms-counter-font-size, .75rem);font-weight:var(--ms-counter-font-weight, 600);border-radius:var(--ms-counter-border-radius, .25rem);cursor:pointer;transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__counter:hover{background:var(--ms-counter-badge-background-hover, #2563eb);transform:var(--ms-transform-center-y, translateY(-50%)) scale(var(--ms-transform-scale-hover, 1.1))}.ms__hint{display:none;position:absolute;z-index:var(--ms-z-index-popover, 10000);padding:var(--ms-hint-padding, .5rem .75rem);background:var(--ms-hint-background, #ffffff);border:var(--ms-hint-border, 1px solid #e5e7eb);border-radius:var(--ms-hint-border-radius, .375rem);box-shadow:var(--ms-hint-box-shadow, 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1));font-size:var(--ms-hint-font-size, .75rem);color:var(--ms-hint-color, #6b7280);line-height:var(--ms-line-height-relaxed, 1.4);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:absolute;z-index:var(--ms-z-index-dropdown, 9999);background:var(--ms-dropdown-background, #ffffff);border:var(--ms-dropdown-border, 1px solid #e5e7eb);border-radius:var(--ms-dropdown-border-radius, .375rem);box-shadow:var(--ms-dropdown-box-shadow, 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1));max-height:var(--ms-options-max-height, 20rem);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;color:var(--ms-dropdown-text-color, #111827)}.ms__dropdown--visible{display:block}.ms__dropdown--virtual{overflow-y:visible;max-height:none}.ms__actions{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap, .25rem);padding:var(--ms-actions-padding, .5rem);border-bottom:var(--ms-actions-border-bottom, 1px solid #e5e7eb)}.ms__actions--wrap{flex-wrap:wrap}.ms__actions--sticky{position:sticky;top:0;z-index:var(--ms-z-index-sticky, 1);background:var(--ms-actions-background, #ffffff)}.ms__action-btn{flex:1;padding:var(--ms-action-btn-padding, .25rem .5rem);font-size:var(--ms-action-btn-font-size, .75rem);border:var(--ms-action-btn-border, 1px solid #e5e7eb);border-radius:var(--ms-action-btn-border-radius, .25rem);background:var(--ms-action-button-background, transparent);color:var(--ms-action-button-color, inherit);cursor:pointer;transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__action-btn:hover{background:var(--ms-action-button-background-hover, #f3f4f6);border-color:var(--ms-action-button-border-color-hover, #3b82f6)}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active, .98))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity, .5);cursor:not-allowed;pointer-events:none}.ms__options{padding:var(--ms-options-padding, .25rem 0)}.ms__options--virtual .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, 1px solid #e5e7eb);margin-top:var(--ms-group-margin-top, .25rem);padding-top:var(--ms-group-padding-top, .25rem)}.ms__group-label{padding:var(--ms-group-label-padding, .25rem .75rem);font-size:var(--ms-group-label-font-size, .75rem);font-weight:var(--ms-group-label-font-weight, 600);color:var(--ms-group-label-color, #6b7280);text-transform:var(--ms-group-label-transform, uppercase);letter-spacing:var(--ms-group-label-letter-spacing, .05em)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, flex-start);gap:var(--ms-option-gap, .5rem);padding:var(--ms-option-padding, .5rem .75rem);color:var(--ms-option-text-color, #111827);background:var(--ms-option-background, transparent);cursor:pointer;transition:background-color var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__option:hover{background:var(--ms-option-background-hover, #f9fafb)}.ms__option--focused{background:var(--ms-option-background-focused, #f9fafb);outline:var(--ms-option-outline-focused, 2px solid #3b82f6);outline-offset:var(--ms-option-focus-outline-offset, -2px)}.ms__option--matched{background:var(--ms-option-background-matched, rgba(59, 130, 246, .08));border-left:var(--ms-option-border-matched, 3px solid rgba(59, 130, 246, .4))}.ms__option--selected{background:var(--ms-option-background-selected, rgba(59, 130, 246, .1))}.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-background-selected, rgba(59, 130, 246, .1)))}.ms__option--disabled{opacity:var(--ms-disabled-opacity, .5);cursor:not-allowed}.ms__option--disabled:hover{background:var(--ms-option-background, transparent)}.ms__option[data-checkbox-align=center]{--ms-checkbox-align: center}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{flex-shrink:0;margin-top:var(--ms-checkbox-margin-top, .125rem);margin-right:var(--ms-checkbox-margin-right, 0);margin-bottom:var(--ms-checkbox-margin-bottom, 0);margin-left:var(--ms-checkbox-margin-left, 0);width:var(--ms-checkbox-size, 16px);height:var(--ms-checkbox-size, 16px);transform:scale(var(--ms-checkbox-scale, 1));transform-origin:top left;cursor:pointer}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:flex-start;gap:var(--ms-option-content-gap, .5rem);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size, 1.25rem);height:var(--ms-option-icon-size, 1.25rem);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size, 1rem)}.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, .875rem);color:var(--ms-option-title-color, inherit);line-height:var(--ms-line-height-relaxed, 1.4)}.ms__option-title mark{background:var(--ms-option-mark-background, rgba(59, 130, 246, .2));color:var(--ms-option-mark-color, inherit);font-weight:var(--ms-option-mark-font-weight, 600)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top, .25rem);font-size:var(--ms-option-subtitle-font-size, .75rem);color:var(--ms-option-subtitle-color, #6b7280);line-height:var(--ms-option-subtitle-line-height, 1.3)}.ms__empty{padding:var(--ms-empty-padding, 1rem .75rem);text-align:center;font-size:var(--ms-empty-font-size, .875rem);color:var(--ms-empty-color, #6b7280)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--ms-loader-padding, 1rem);gap:var(--ms-loader-gap, .5rem)}.ms__loading-text{font-size:var(--ms-loading-text-font-size, .875rem);color:var(--ms-loading-color, #6b7280)}.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap, .5rem);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom, .5rem)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top, .5rem);order:var(--ms-order-first, -1)}.ms__badges--left{order:var(--ms-order-first, -1);margin-right:var(--ms-badges-margin-left, .25rem);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right, .25rem);justify-content:flex-start}.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, .5rem)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top, .5rem);order:var(--ms-order-first, -1)}.ms__count-display--left{order:var(--ms-order-first, -1);margin-right:var(--ms-count-display-margin-left, .5rem);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right, .5rem);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap, .25rem);background:var(--ms-counter-wrapper-background, transparent);border:var(--ms-counter-wrapper-border, 1px solid #e5e7eb);border-radius:var(--ms-counter-wrapper-border-radius, .25rem);padding:var(--ms-counter-wrapper-padding, .25rem .5rem);transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-background-hover, #f9fafb);border-color:var(--ms-counter-wrapper-border-color-hover, #3b82f6)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg, transparent);border:var(--ms-count-text-border, none);padding:0;font-size:var(--ms-count-text-font-size, .875rem);color:var(--ms-count-text-color, #111827);cursor:pointer;transition:color var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size, 1rem);height:var(--ms-count-clear-size, 1rem);padding:0;border:none;background:var(--ms-count-clear-background, transparent);color:var(--ms-count-clear-color, #6b7280);font-size:var(--ms-count-clear-font-size, 1.125rem);line-height:var(--ms-line-height-none, 1);cursor:pointer;border-radius:var(--ms-count-clear-border-radius, 50%);transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__count-clear:hover{background:var(--ms-count-clear-background-hover, rgba(59, 130, 246, .2));color:var(--ms-count-clear-color-hover, #3b82f6)}.ms__count-clear:before{content:var(--ms-icon-clear, "×")}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height, 1.7rem);font-size:var(--ms-badge-font-size, .75rem);font-weight:var(--ms-badge-font-weight, 600);line-height:var(--ms-line-height-none, 1);border-radius:var(--ms-badge-border-radius, .375rem);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;height:100%;padding:var(--ms-badge-text-padding, 0 .5rem);background:var(--ms-badge-text-background, #eff6ff);color:var(--ms-badge-text-color, #3b82f6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal, .2s) ease}.ms__badge-remove{display:flex;align-items:center;justify-content:center;width:var(--ms-badge-remove-width, 1.7rem);height:100%;flex-shrink:0;background:var(--ms-badge-remove-background, #3b82f6);color:var(--ms-badge-remove-color, #ffffff);border:var(--ms-badge-remove-border, none);cursor:pointer;transition:background-color var(--ms-transition-normal, .2s) ease;font-size:var(--ms-badge-remove-font-size, .75rem)}.ms__badge-remove:hover{background:var(--ms-badge-remove-background-hover, #2563eb)}.ms__badge-remove:focus{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus, 0 0 0 2px rgba(59, 130, 246, .5))}.ms__badge-remove:before{content:var(--ms-icon-remove, "×");font-size:var(--ms-font-size-base, 1rem);line-height:var(--ms-line-height-none, 1)}.ms__badge--counter{border:var(--ms-badge-counter-border, 1px solid #e5e7eb);cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-background, #d1d5db);color:var(--ms-badge-counter-text-color, #6b7280)}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-background, #6b7280);color:var(--ms-badge-counter-remove-color, #ffffff)}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-background-hover, #111827)}.ms__badge--more{cursor:pointer}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index, 10000);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal, .2s) ease,visibility var(--ms-transition-normal, .2s) ease;background:var(--ms-tooltip-background, #333);color:var(--ms-tooltip-text-color, #fff);padding:var(--ms-tooltip-padding, .5rem .75rem);border-radius:var(--ms-tooltip-border-radius, .375rem);font-size:var(--ms-tooltip-font-size, .875rem);line-height:var(--ms-line-height-relaxed, 1.4);max-width:var(--ms-tooltip-max-width, 20rem);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow, 0 2px 8px rgba(0, 0, 0, .15));pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__selected-popover{display:none;position:absolute;z-index:var(--ms-z-index-popover, 10000);background:var(--ms-selected-popover-background, #ffffff);border:var(--ms-selected-popover-border, 1px solid #e5e7eb);border-radius:var(--ms-selected-popover-border-radius, .375rem);box-shadow:var(--ms-selected-popover-box-shadow, 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1));width:var(--ms-selected-popover-width, 20rem);max-height:var(--ms-selected-popover-max-height, 20rem);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding, .5rem .75rem);background:var(--ms-selected-popover-header-background, rgba(59, 130, 246, .1));border-bottom:var(--ms-selected-popover-header-border-bottom, 1px solid #e5e7eb);font-size:var(--ms-selected-popover-header-font-size, .875rem);font-weight:var(--ms-selected-popover-header-font-weight, 600);color:var(--ms-selected-popover-header-color, #111827)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size, 1.5rem);height:var(--ms-popover-close-size, 1.5rem);padding:0;border:none;background:var(--ms-selected-popover-close-background, transparent);color:var(--ms-selected-popover-close-color, #6b7280);font-size:var(--ms-selected-popover-close-font-size, 1.25rem);line-height:var(--ms-line-height-none, 1);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius, 50%);transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-background-hover, rgba(59, 130, 246, .2));color:var(--ms-selected-popover-close-color-hover, #3b82f6)}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap, .25rem);padding:var(--ms-selected-popover-body-padding, .5rem);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height, 18rem)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed, 1.4)}.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, .25rem);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms--rtl .ms__input-wrapper{direction:rtl}.ms--rtl .ms__input{text-align:right;padding-left:var(--ms-input-padding-right, 2.5rem);padding-right:var(--ms-input-padding-h, .75rem)}.ms--rtl .ms__toggle{left:var(--ms-toggle-right, .75rem)!important;right:auto!important}.ms--rtl .ms__counter{left:var(--ms-counter-offset, 2rem)!important;right:auto!important}.ms--rtl .ms__dropdown{direction:rtl;text-align:right}.ms--rtl .ms__option{flex-direction:row-reverse}.ms--rtl .ms__checkbox{margin-left:var(--ms-spacing-sm, .5rem);margin-right:0}.ms--rtl .ms__option-content{text-align:right}.ms--rtl .ms__option-icon{margin-left:var(--ms-spacing-xs, .25rem);margin-right:0}.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badge{flex-direction:row-reverse}.ms--rtl .ms__badge-remove{border-radius:var(--ms-badge-remove-border-radius-rtl, .375rem) 0 0 var(--ms-badge-remove-border-radius-rtl, .375rem);border-left:var(--ms-badge-remove-border, none);border-right:none}.ms--rtl .ms__badge-text{border-radius:0 var(--ms-badge-text-border-radius-rtl, .375rem) var(--ms-badge-text-border-radius-rtl, .375rem) 0}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__counter-wrapper{flex-direction:row-reverse}.ms--rtl .ms__selected-popover{direction:rtl;text-align:right}.ms--rtl .ms__actions{direction:rtl}.ms--rtl .ms__group-label,.ms--rtl .ms__empty{text-align:right}.ms--rtl .ms__hint{direction:rtl;text-align:right}.ms--xs .ms__input{font-size:var(--ms-font-size-xs, .75rem)}.ms--xs .ms__option{padding:var(--ms-spacing-xs, .25rem) var(--ms-spacing-sm, .5rem)}.ms--xs .ms__option-title{font-size:var(--ms-font-size-xs, .75rem)}.ms--xs .ms__badge{font-size:var(--ms-font-size-2xs, .625rem)}.ms--sm .ms__input,.ms--sm .ms__option-title{font-size:var(--ms-font-size-xs, .75rem)}.ms--lg .ms__input,.ms--lg .ms__option-title{font-size:var(--ms-font-size-base, 1rem)}.ms--lg .ms__badge{font-size:var(--ms-font-size-sm, .875rem)}.ms--xl .ms__input,.ms--xl .ms__option-title{font-size:var(--ms-font-size-lg, 1.125rem)}.ms--xl .ms__badge{font-size:var(--ms-font-size-base, 1rem)}.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity, .6);cursor:not-allowed;background:var(--ms-input-bg-disabled, rgba(107, 114, 128, .05))}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity, .6)}.ms--no-checkboxes .ms__option{gap:0;padding-left:var(--ms-option-padding-h, .75rem)}.ms--no-checkboxes .ms__option-content{padding-left:0}.ml-debug-info{margin-top:.25rem;padding:.25rem;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;font-size:.75rem;color:#111827}.ml-debug-info details summary{cursor:pointer;font-weight:600;color:#2563eb;-webkit-user-select:none;user-select:none;padding:.25rem;border-radius:.25rem}.ml-debug-info details summary:hover{background-color:#f3f4f6}.ml-debug-info details summary:focus{outline:2px solid #3b82f6;outline-offset:2px}.ml-debug-info .ml-debug-stats{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem;padding:.25rem;background-color:#fff;border-radius:.25rem}.ml-debug-info .ml-debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:.625rem}.ml-debug-info .ml-debug-stats span:before{content:"•";margin-right:.25rem;color:#3b82f6}', bs = typeof HTMLElement < "u" ? HTMLElement : class {
|
|
2437
|
+
const gs = '@charset "UTF-8";:host{--ms-accent-color: #3b82f6;--ms-accent-color-hover: #2563eb;--ms-accent-color-active: #1d4ed8;--ms-text-primary: #111827;--ms-text-secondary: #6b7280;--ms-text-white: #ffffff;--ms-primary-bg: #f3f4f6;--ms-primary-bg-hover: #e5e7eb;--ms-border-color: #e5e7eb;--ms-input-background: var(--ms-input-bg);--ms-input-color: var(--ms-text-primary);--ms-input-border-color: var(--ms-border-color);--ms-input-border-color-focus: var(--ms-accent-color);--ms-input-placeholder-color: var(--ms-text-secondary);--ms-input-background-disabled: var(--ms-input-bg-disabled);--ms-toggle-icon-color: var(--ms-text-secondary);--ms-toggle-icon-color-open: var(--ms-text-secondary);--ms-counter-badge-background: var(--ms-accent-color);--ms-counter-badge-background-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-white);--ms-hint-background: var(--ms-hint-bg);--ms-hint-color: var(--ms-text-secondary);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-background: var(--ms-dropdown-bg);--ms-dropdown-text-color: var(--ms-text-primary);--ms-dropdown-border-color: var(--ms-border-color);--ms-actions-background: var(--ms-dropdown-bg);--ms-actions-border-color: var(--ms-border-color);--ms-action-button-background: transparent;--ms-action-button-background-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-primary);--ms-group-border-color: var(--ms-border-color);--ms-group-label-color: var(--ms-text-secondary);--ms-option-text-color: var(--ms-text-primary);--ms-option-background: transparent;--ms-option-background-hover: var(--ms-primary-bg);--ms-option-background-focused: var(--ms-primary-bg);--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-background-selected: var(--ms-option-bg-selected);--ms-option-background-matched: var(--ms-option-bg-matched);--ms-option-border-matched-color: var(--ms-option-border-matched);--ms-option-title-color: var(--ms-text-primary);--ms-option-subtitle-color: var(--ms-text-secondary);--ms-option-mark-background: var(--ms-option-mark-bg);--ms-empty-color: var(--ms-text-secondary);--ms-loading-color: var(--ms-text-secondary);--ms-badge-background: var(--ms-badge-bg);--ms-badge-background-hover: var(--ms-badge-bg-hover);--ms-badge-background-active: var(--ms-badge-bg-active);--ms-badge-text-background: var(--ms-badge-text-bg);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-remove-background: var(--ms-accent-color);--ms-badge-remove-background-hover: var(--ms-accent-color-hover);--ms-badge-remove-color: var(--ms-text-white);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-background: var(--ms-badge-counter-text-bg);--ms-badge-counter-text-color: var(--ms-text-secondary);--ms-badge-counter-remove-background: var(--ms-badge-counter-remove-bg);--ms-badge-counter-remove-background-hover: var(--ms-badge-counter-remove-bg-hover);--ms-badge-counter-remove-color: var(--ms-badge-counter-remove-color);--ms-counter-wrapper-background: transparent;--ms-counter-wrapper-background-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-color: var(--ms-text-primary);--ms-count-clear-background: transparent;--ms-count-clear-background-hover: var(--ms-accent-color);--ms-count-clear-color: var(--ms-text-secondary);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-tooltip-background: var(--ms-tooltip-bg);--ms-tooltip-text-color: var(--ms-tooltip-color);--ms-selected-popover-background: var(--ms-dropdown-bg);--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-background: var(--ms-selected-popover-header-bg);--ms-selected-popover-header-color: var(--ms-text-primary);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-background: transparent;--ms-selected-popover-close-background-hover: var(--ms-accent-color);--ms-selected-popover-close-color: var(--ms-text-secondary);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-input-padding: .5rem .75rem;--ms-input-padding-right: 2.5rem;--ms-input-font-size: .875rem;--ms-input-border-style: 1px solid #d1d5db;--ms-input-border-radius: .375rem;--ms-input-bg: #ffffff;--ms-input-text: #111827;--ms-input-focus-border-color: #3b82f6;--ms-input-placeholder-color: #6b7280;--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-input-size-xs-font: 12px;--ms-input-size-xs-padding-v: 4px;--ms-input-size-xs-padding-h: 8px;--ms-input-size-xs-height: 24px;--ms-input-size-sm-font: 13px;--ms-input-size-sm-padding-v: 5px;--ms-input-size-sm-padding-h: 8px;--ms-input-size-sm-height: 28px;--ms-input-size-md-font: 14px;--ms-input-size-md-padding-v: 8px;--ms-input-size-md-padding-h: 12px;--ms-input-size-md-height: 35px;--ms-input-size-lg-font: 16px;--ms-input-size-lg-padding-v: 10px;--ms-input-size-lg-padding-h: 14px;--ms-input-size-lg-height: 42px;--ms-input-size-xl-font: 18px;--ms-input-size-xl-padding-v: 12px;--ms-input-size-xl-padding-h: 16px;--ms-input-size-xl-height: 50px;--ms-toggle-right: .75rem;--ms-toggle-color: #6b7280;--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: 2rem;--ms-counter-padding: .125rem .25rem;--ms-counter-bg: #3b82f6;--ms-counter-color: #ffffff;--ms-counter-font-size: .75rem;--ms-counter-font-weight: 600;--ms-counter-border-radius: .25rem;--ms-counter-bg-hover: #2563eb;--ms-transform-scale-hover: 1.1;--ms-hint-padding: .5rem .75rem;--ms-hint-bg: #ffffff;--ms-hint-border: 1px solid #e5e7eb;--ms-hint-border-radius: .375rem;--ms-hint-box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--ms-hint-font-size: .75rem;--ms-hint-color: #6b7280;--ms-line-height-relaxed: 1.4;--ms-dropdown-bg: #ffffff;--ms-dropdown-border: 1px solid #e5e7eb;--ms-dropdown-border-radius: .375rem;--ms-dropdown-box-shadow: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--ms-options-max-height: 20rem;--ms-option-color: #111827;--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-actions-gap: .25rem;--ms-actions-padding: .5rem;--ms-actions-border-bottom: 1px solid #e5e7eb;--ms-actions-bg: #ffffff;--ms-action-btn-padding: .25rem .5rem;--ms-action-btn-font-size: .75rem;--ms-action-btn-border: 1px solid #e5e7eb;--ms-action-btn-border-radius: .25rem;--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: #f3f4f6;--ms-action-btn-border-color-hover: #3b82f6;--ms-transform-scale-active: .98;--ms-options-padding: .25rem 0;--ms-group-border-top: 1px solid #e5e7eb;--ms-group-margin-top: .25rem;--ms-group-padding-top: .25rem;--ms-group-label-padding: .25rem .75rem;--ms-group-label-font-size: .75rem;--ms-group-label-font-weight: 600;--ms-group-label-color: #6b7280;--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: .5rem;--ms-option-padding: .5rem .75rem;--ms-option-padding-h: .75rem;--ms-option-bg: transparent;--ms-option-bg-hover: #f9fafb;--ms-option-bg-focused: #f9fafb;--ms-option-outline-focused: 2px solid #3b82f6;--ms-option-focus-outline-offset: -2px;--ms-option-bg-matched: rgba(59, 130, 246, .08);--ms-option-border-matched: 3px solid rgba(59, 130, 246, .4);--ms-option-bg-selected: rgba(59, 130, 246, .1);--ms-disabled-opacity: .5;--ms-option-content-gap: .5rem;--ms-option-icon-size: 1.25rem;--ms-option-icon-font-size: 1rem;--ms-option-title-font-size: .875rem;--ms-option-title-color: inherit;--ms-option-mark-bg: rgba(59, 130, 246, .2);--ms-option-mark-color: inherit;--ms-option-mark-font-weight: 600;--ms-option-subtitle-margin-top: .25rem;--ms-option-subtitle-font-size: .75rem;--ms-option-subtitle-color: #6b7280;--ms-option-subtitle-line-height: 1.3;--ms-checkbox-margin-top: .125rem;--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: 16px;--ms-checkbox-scale: 1;--ms-checkbox-align: flex-start;--ms-empty-padding: 1rem .75rem;--ms-empty-font-size: .875rem;--ms-empty-color: #6b7280;--ms-loader-padding: 1rem;--ms-loader-gap: .5rem;--ms-loading-text-font-size: .875rem;--ms-loading-text-color: #6b7280;--ms-badges-gap: .5rem;--ms-badges-margin-bottom: .5rem;--ms-badges-margin-top: .5rem;--ms-badges-margin-left: .25rem;--ms-badges-margin-right: .25rem;--ms-badge-gap: .5rem;--ms-badge-height: 1.7rem;--ms-badge-font-size: .75rem;--ms-badge-font-weight: 600;--ms-badge-border-radius: .375rem;--ms-badge-bg: #eff6ff;--ms-badge-bg-hover: #ffffff;--ms-badge-bg-active: #e0f2fe;--ms-order-first: -1;--ms-badge-text-padding: 0 .5rem;--ms-badge-text-bg: #eff6ff;--ms-badge-text-color: #3b82f6;--ms-badge-remove-width: 1.7rem;--ms-badge-remove-bg: #3b82f6;--ms-badge-remove-color: #ffffff;--ms-badge-remove-border: none;--ms-badge-remove-font-size: .75rem;--ms-badge-remove-bg-hover: #2563eb;--ms-badge-remove-box-shadow-focus: 0 0 0 2px rgba(59, 130, 246, .5);--ms-icon-remove: "×";--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid #e5e7eb;--ms-badge-counter-border-radius: .25rem;--ms-badge-counter-text-color: #6b7280;--ms-badge-counter-text-bg: #d1d5db;--ms-badge-counter-remove-bg: #6b7280;--ms-badge-counter-remove-color: #ffffff;--ms-badge-counter-remove-bg-hover: #111827;--ms-more-badge-bg: #eff6ff;--ms-more-badge-hover-bg: #ffffff;--ms-more-badge-active-bg: #e0f2fe;--ms-count-display-margin-bottom: .5rem;--ms-count-display-margin-top: .5rem;--ms-count-display-margin-left: .5rem;--ms-count-display-margin-right: .5rem;--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: 1px solid #e5e7eb;--ms-counter-wrapper-border-radius: .25rem;--ms-counter-wrapper-padding: .25rem .5rem;--ms-counter-wrapper-gap: .25rem;--ms-counter-wrapper-bg-hover: #f9fafb;--ms-counter-wrapper-border-color-hover: #3b82f6;--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: .875rem;--ms-count-text-color: #111827;--ms-count-clear-size: 1rem;--ms-count-clear-bg: transparent;--ms-count-clear-color: #6b7280;--ms-count-clear-font-size: 1.125rem;--ms-count-clear-border-radius: 50%;--ms-count-clear-bg-hover: rgba(59, 130, 246, .2);--ms-count-clear-color-hover: #3b82f6;--ms-icon-clear: "×";--ms-tooltip-bg: #333;--ms-tooltip-color: #fff;--ms-tooltip-padding: .5rem .75rem;--ms-tooltip-border-radius: .375rem;--ms-tooltip-font-size: .875rem;--ms-tooltip-max-width: 20rem;--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-z-index-popover: 10000;--ms-selected-popover-width: 20rem;--ms-selected-popover-max-height: 20rem;--ms-selected-popover-bg: #ffffff;--ms-selected-popover-border: 1px solid #e5e7eb;--ms-selected-popover-border-radius: .375rem;--ms-selected-popover-box-shadow: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--ms-selected-popover-header-padding: .5rem .75rem;--ms-selected-popover-header-bg: rgba(59, 130, 246, .1);--ms-selected-popover-header-border-bottom: 1px solid #e5e7eb;--ms-selected-popover-header-font-size: .875rem;--ms-selected-popover-header-font-weight: 600;--ms-selected-popover-header-color: #111827;--ms-popover-close-size: 1.5rem;--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: #6b7280;--ms-selected-popover-close-font-size: 1.25rem;--ms-selected-popover-close-border-radius: 50%;--ms-selected-popover-close-bg-hover: rgba(59, 130, 246, .2);--ms-selected-popover-close-color-hover: #3b82f6;--ms-selected-popover-body-gap: .25rem;--ms-selected-popover-body-padding: .5rem;--ms-selected-popover-body-max-height: 18rem;--ms-font-size-2xs: .625rem;--ms-font-size-xs: .75rem;--ms-font-size-sm: .875rem;--ms-font-size-base: 1rem;--ms-font-size-lg: 1.125rem;--ms-font-weight-medium: 500;--ms-font-weight-semibold: 600;--ms-line-height-none: 1;--ms-spacing-xs: .25rem;--ms-spacing-sm: .5rem;--ms-spacing-md: .75rem;--ms-spacing-lg: 1rem;--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6}multi-select:not(:defined){display:block;min-height:2.5rem;color:transparent!important;background:transparent}.ml-wrapper{display:flex;flex-direction:column;align-items:stretch}.ml-wrapper--inline{flex-direction:row;align-items:flex-start}.ml{position:relative;width:100%}.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;padding:var(--ms-input-padding, .5rem .75rem);padding-right:var(--ms-input-padding-right, 2.5rem);font-size:var(--ms-input-font-size, .875rem);border:var(--ms-input-border-style, 1px solid #d1d5db);border-radius:var(--ms-input-border-radius, .375rem);background:var(--ms-input-background, #ffffff);color:var(--ms-input-color, #111827);cursor:pointer;transition:border-color var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__input:focus{outline:none;border-color:var(--ms-input-border-color-focus, #3b82f6)}.ms__input::placeholder{color:var(--ms-input-placeholder-color, #6b7280);opacity:0;transition:opacity var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity, .6)}.ms__input.ms__input--xs{font-size:var(--ms-input-size-xs-font);padding:var(--ms-input-size-xs-padding-v) var(--ms-input-size-xs-padding-h);padding-right:calc(var(--ms-input-size-xs-padding-h) * 2.5);height:var(--ms-input-size-xs-height)}.ms__input.ms__input--sm{font-size:var(--ms-input-size-sm-font);padding:var(--ms-input-size-sm-padding-v) var(--ms-input-size-sm-padding-h);padding-right:calc(var(--ms-input-size-sm-padding-h) * 2.5);height:var(--ms-input-size-sm-height)}.ms__input.ms__input--lg{font-size:var(--ms-input-size-lg-font);padding:var(--ms-input-size-lg-padding-v) var(--ms-input-size-lg-padding-h);padding-right:calc(var(--ms-input-size-lg-padding-h) * 2.5);height:var(--ms-input-size-lg-height)}.ms__input.ms__input--xl{font-size:var(--ms-input-size-xl-font);padding:var(--ms-input-size-xl-padding-v) var(--ms-input-size-xl-padding-h);padding-right:calc(var(--ms-input-size-xl-padding-h) * 2.5);height:var(--ms-input-size-xl-height)}.ms__toggle{position:absolute;right:var(--ms-toggle-right, .75rem);top:50%;transform:var(--ms-transform-center-y, translateY(-50%));pointer-events:none;color:var(--ms-toggle-icon-color, #6b7280);transition:transform var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms--open .ms__toggle{transform:var(--ms-transform-center-y, translateY(-50%)) rotate(var(--ms-transform-rotate-180, 180deg));color:var(--ms-toggle-icon-color-open, #6b7280)}.ms__counter{position:absolute;right:var(--ms-counter-offset, 2rem);top:50%;transform:var(--ms-transform-center-y, translateY(-50%));padding:var(--ms-counter-padding, .125rem .25rem);background:var(--ms-counter-badge-background, #3b82f6);color:var(--ms-counter-badge-color, #ffffff);font-size:var(--ms-counter-font-size, .75rem);font-weight:var(--ms-counter-font-weight, 600);border-radius:var(--ms-counter-border-radius, .25rem);cursor:pointer;transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__counter:hover{background:var(--ms-counter-badge-background-hover, #2563eb);transform:var(--ms-transform-center-y, translateY(-50%)) scale(var(--ms-transform-scale-hover, 1.1))}.ms__hint{display:none;position:absolute;z-index:var(--ms-z-index-popover, 10000);padding:var(--ms-hint-padding, .5rem .75rem);background:var(--ms-hint-background, #ffffff);border:var(--ms-hint-border, 1px solid #e5e7eb);border-radius:var(--ms-hint-border-radius, .375rem);box-shadow:var(--ms-hint-box-shadow, 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1));font-size:var(--ms-hint-font-size, .75rem);color:var(--ms-hint-color, #6b7280);line-height:var(--ms-line-height-relaxed, 1.4);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:absolute;z-index:var(--ms-z-index-dropdown, 9999);background:var(--ms-dropdown-background, #ffffff);border:var(--ms-dropdown-border, 1px solid #e5e7eb);border-radius:var(--ms-dropdown-border-radius, .375rem);box-shadow:var(--ms-dropdown-box-shadow, 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1));max-height:var(--ms-options-max-height, 20rem);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;color:var(--ms-dropdown-text-color, #111827)}.ms__dropdown--visible{display:block}.ms__dropdown--virtual{overflow-y:visible;max-height:none}.ms__actions{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap, .25rem);padding:var(--ms-actions-padding, .5rem);border-bottom:var(--ms-actions-border-bottom, 1px solid #e5e7eb)}.ms__actions--wrap{flex-wrap:wrap}.ms__actions--sticky{position:sticky;top:0;z-index:var(--ms-z-index-sticky, 1);background:var(--ms-actions-background, #ffffff)}.ms__action-btn{flex:1;padding:var(--ms-action-btn-padding, .25rem .5rem);font-size:var(--ms-action-btn-font-size, .75rem);border:var(--ms-action-btn-border, 1px solid #e5e7eb);border-radius:var(--ms-action-btn-border-radius, .25rem);background:var(--ms-action-button-background, transparent);color:var(--ms-action-button-color, inherit);cursor:pointer;transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__action-btn:hover{background:var(--ms-action-button-background-hover, #f3f4f6);border-color:var(--ms-action-button-border-color-hover, #3b82f6)}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active, .98))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity, .5);cursor:not-allowed;pointer-events:none}.ms__options{padding:var(--ms-options-padding, .25rem 0)}.ms__options--virtual .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, 1px solid #e5e7eb);margin-top:var(--ms-group-margin-top, .25rem);padding-top:var(--ms-group-padding-top, .25rem)}.ms__group-label{padding:var(--ms-group-label-padding, .25rem .75rem);font-size:var(--ms-group-label-font-size, .75rem);font-weight:var(--ms-group-label-font-weight, 600);color:var(--ms-group-label-color, #6b7280);text-transform:var(--ms-group-label-transform, uppercase);letter-spacing:var(--ms-group-label-letter-spacing, .05em)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, flex-start);gap:var(--ms-option-gap, .5rem);padding:var(--ms-option-padding, .5rem .75rem);color:var(--ms-option-text-color, #111827);background:var(--ms-option-background, transparent);cursor:pointer;transition:background-color var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__option:hover{background:var(--ms-option-background-hover, #f9fafb)}.ms__option--focused{background:var(--ms-option-background-focused, #f9fafb);outline:var(--ms-option-outline-focused, 2px solid #3b82f6);outline-offset:var(--ms-option-focus-outline-offset, -2px)}.ms__option--matched{background:var(--ms-option-background-matched, rgba(59, 130, 246, .08));border-left:var(--ms-option-border-matched, 3px solid rgba(59, 130, 246, .4))}.ms__option--selected{background:var(--ms-option-background-selected, rgba(59, 130, 246, .1))}.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-background-selected, rgba(59, 130, 246, .1)))}.ms__option--disabled{opacity:var(--ms-disabled-opacity, .5);cursor:not-allowed}.ms__option--disabled:hover{background:var(--ms-option-background, transparent)}.ms__option[data-checkbox-align=center]{--ms-checkbox-align: center}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{flex-shrink:0;margin-top:var(--ms-checkbox-margin-top, .125rem);margin-right:var(--ms-checkbox-margin-right, 0);margin-bottom:var(--ms-checkbox-margin-bottom, 0);margin-left:var(--ms-checkbox-margin-left, 0);width:var(--ms-checkbox-size, 16px);height:var(--ms-checkbox-size, 16px);transform:scale(var(--ms-checkbox-scale, 1));transform-origin:top left;cursor:pointer}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:flex-start;gap:var(--ms-option-content-gap, .5rem);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size, 1.25rem);height:var(--ms-option-icon-size, 1.25rem);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size, 1rem)}.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, .875rem);color:var(--ms-option-title-color, inherit);line-height:var(--ms-line-height-relaxed, 1.4)}.ms__option-title mark{background:var(--ms-option-mark-background, rgba(59, 130, 246, .2));color:var(--ms-option-mark-color, inherit);font-weight:var(--ms-option-mark-font-weight, 600)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top, .25rem);font-size:var(--ms-option-subtitle-font-size, .75rem);color:var(--ms-option-subtitle-color, #6b7280);line-height:var(--ms-option-subtitle-line-height, 1.3)}.ms__empty{padding:var(--ms-empty-padding, 1rem .75rem);text-align:center;font-size:var(--ms-empty-font-size, .875rem);color:var(--ms-empty-color, #6b7280)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--ms-loader-padding, 1rem);gap:var(--ms-loader-gap, .5rem)}.ms__loading-text{font-size:var(--ms-loading-text-font-size, .875rem);color:var(--ms-loading-color, #6b7280)}.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap, .5rem);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom, .5rem)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top, .5rem);order:var(--ms-order-first, -1)}.ms__badges--left{order:var(--ms-order-first, -1);margin-right:var(--ms-badges-margin-left, .25rem);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right, .25rem);justify-content:flex-start}.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, .5rem)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top, .5rem);order:var(--ms-order-first, -1)}.ms__count-display--left{order:var(--ms-order-first, -1);margin-right:var(--ms-count-display-margin-left, .5rem);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right, .5rem);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap, .25rem);background:var(--ms-counter-wrapper-background, transparent);border:var(--ms-counter-wrapper-border, 1px solid #e5e7eb);border-radius:var(--ms-counter-wrapper-border-radius, .25rem);padding:var(--ms-counter-wrapper-padding, .25rem .5rem);transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-background-hover, #f9fafb);border-color:var(--ms-counter-wrapper-border-color-hover, #3b82f6)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg, transparent);border:var(--ms-count-text-border, none);padding:0;font-size:var(--ms-count-text-font-size, .875rem);color:var(--ms-count-text-color, #111827);cursor:pointer;transition:color var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size, 1rem);height:var(--ms-count-clear-size, 1rem);padding:0;border:none;background:var(--ms-count-clear-background, transparent);color:var(--ms-count-clear-color, #6b7280);font-size:var(--ms-count-clear-font-size, 1.125rem);line-height:var(--ms-line-height-none, 1);cursor:pointer;border-radius:var(--ms-count-clear-border-radius, 50%);transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__count-clear:hover{background:var(--ms-count-clear-background-hover, rgba(59, 130, 246, .2));color:var(--ms-count-clear-color-hover, #3b82f6)}.ms__count-clear:before{content:var(--ms-icon-clear, "×")}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height, 1.7rem);font-size:var(--ms-badge-font-size, .75rem);font-weight:var(--ms-badge-font-weight, 600);line-height:var(--ms-line-height-none, 1);border-radius:var(--ms-badge-border-radius, .375rem);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;height:100%;padding:var(--ms-badge-text-padding, 0 .5rem);background:var(--ms-badge-text-background, #eff6ff);color:var(--ms-badge-text-color, #3b82f6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal, .2s) ease}.ms__badge-remove{display:flex;align-items:center;justify-content:center;width:var(--ms-badge-remove-width, 1.7rem);height:100%;flex-shrink:0;background:var(--ms-badge-remove-background, #3b82f6);color:var(--ms-badge-remove-color, #ffffff);border:var(--ms-badge-remove-border, none);cursor:pointer;transition:background-color var(--ms-transition-normal, .2s) ease;font-size:var(--ms-badge-remove-font-size, .75rem)}.ms__badge-remove:hover{background:var(--ms-badge-remove-background-hover, #2563eb)}.ms__badge-remove:focus{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus, 0 0 0 2px rgba(59, 130, 246, .5))}.ms__badge-remove:before{content:var(--ms-icon-remove, "×");font-size:var(--ms-font-size-base, 1rem);line-height:var(--ms-line-height-none, 1)}.ms__badge--counter{border:var(--ms-badge-counter-border, 1px solid #e5e7eb);cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-background, #d1d5db);color:var(--ms-badge-counter-text-color, #6b7280)}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-background, #6b7280);color:var(--ms-badge-counter-remove-color, #ffffff)}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-background-hover, #111827)}.ms__badge--more{cursor:pointer}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index, 10000);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal, .2s) ease,visibility var(--ms-transition-normal, .2s) ease;background:var(--ms-tooltip-background, #333);color:var(--ms-tooltip-text-color, #fff);padding:var(--ms-tooltip-padding, .5rem .75rem);border-radius:var(--ms-tooltip-border-radius, .375rem);font-size:var(--ms-tooltip-font-size, .875rem);line-height:var(--ms-line-height-relaxed, 1.4);max-width:var(--ms-tooltip-max-width, 20rem);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow, 0 2px 8px rgba(0, 0, 0, .15));pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__selected-popover{display:none;position:absolute;z-index:var(--ms-z-index-popover, 10000);background:var(--ms-selected-popover-background, #ffffff);border:var(--ms-selected-popover-border, 1px solid #e5e7eb);border-radius:var(--ms-selected-popover-border-radius, .375rem);box-shadow:var(--ms-selected-popover-box-shadow, 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1));width:var(--ms-selected-popover-width, 20rem);max-height:var(--ms-selected-popover-max-height, 20rem);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding, .5rem .75rem);background:var(--ms-selected-popover-header-background, rgba(59, 130, 246, .1));border-bottom:var(--ms-selected-popover-header-border-bottom, 1px solid #e5e7eb);font-size:var(--ms-selected-popover-header-font-size, .875rem);font-weight:var(--ms-selected-popover-header-font-weight, 600);color:var(--ms-selected-popover-header-color, #111827)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size, 1.5rem);height:var(--ms-popover-close-size, 1.5rem);padding:0;border:none;background:var(--ms-selected-popover-close-background, transparent);color:var(--ms-selected-popover-close-color, #6b7280);font-size:var(--ms-selected-popover-close-font-size, 1.25rem);line-height:var(--ms-line-height-none, 1);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius, 50%);transition:all var(--ms-transition-fast, .15s) var(--ms-easing-snappy, cubic-bezier(.4, 0, .2, 1))}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-background-hover, rgba(59, 130, 246, .2));color:var(--ms-selected-popover-close-color-hover, #3b82f6)}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap, .25rem);padding:var(--ms-selected-popover-body-padding, .5rem);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height, 18rem)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed, 1.4)}.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, .25rem);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms--rtl .ms__input-wrapper{direction:rtl}.ms--rtl .ms__input{text-align:right;padding-left:var(--ms-input-padding-right, 2.5rem);padding-right:var(--ms-input-padding-h, .75rem)}.ms--rtl .ms__toggle{left:var(--ms-toggle-right, .75rem)!important;right:auto!important}.ms--rtl .ms__counter{left:var(--ms-counter-offset, 2rem)!important;right:auto!important}.ms--rtl .ms__dropdown{direction:rtl;text-align:right}.ms--rtl .ms__option{flex-direction:row-reverse}.ms--rtl .ms__checkbox{margin-left:var(--ms-spacing-sm, .5rem);margin-right:0}.ms--rtl .ms__option-content{text-align:right}.ms--rtl .ms__option-icon{margin-left:var(--ms-spacing-xs, .25rem);margin-right:0}.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badge{flex-direction:row-reverse}.ms--rtl .ms__badge-remove{border-radius:var(--ms-badge-remove-border-radius-rtl, .375rem) 0 0 var(--ms-badge-remove-border-radius-rtl, .375rem);border-left:var(--ms-badge-remove-border, none);border-right:none}.ms--rtl .ms__badge-text{border-radius:0 var(--ms-badge-text-border-radius-rtl, .375rem) var(--ms-badge-text-border-radius-rtl, .375rem) 0}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__counter-wrapper{flex-direction:row-reverse}.ms--rtl .ms__selected-popover{direction:rtl;text-align:right}.ms--rtl .ms__actions{direction:rtl}.ms--rtl .ms__group-label,.ms--rtl .ms__empty{text-align:right}.ms--rtl .ms__hint{direction:rtl;text-align:right}.ms--xs .ms__input{font-size:var(--ms-font-size-xs, .75rem)}.ms--xs .ms__option{padding:var(--ms-spacing-xs, .25rem) var(--ms-spacing-sm, .5rem)}.ms--xs .ms__option-title{font-size:var(--ms-font-size-xs, .75rem)}.ms--xs .ms__badge{font-size:var(--ms-font-size-2xs, .625rem)}.ms--sm .ms__input,.ms--sm .ms__option-title{font-size:var(--ms-font-size-xs, .75rem)}.ms--lg .ms__input,.ms--lg .ms__option-title{font-size:var(--ms-font-size-base, 1rem)}.ms--lg .ms__badge{font-size:var(--ms-font-size-sm, .875rem)}.ms--xl .ms__input,.ms--xl .ms__option-title{font-size:var(--ms-font-size-lg, 1.125rem)}.ms--xl .ms__badge{font-size:var(--ms-font-size-base, 1rem)}.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity, .6);cursor:not-allowed;background:var(--ms-input-bg-disabled, rgba(107, 114, 128, .05))}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity, .6)}.ms--no-checkboxes .ms__option{gap:0;padding-left:var(--ms-option-padding-h, .75rem)}.ms--no-checkboxes .ms__option-content{padding-left:0}.ml-debug-info{margin-top:.25rem;padding:.25rem;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.375rem;font-size:.75rem;color:#111827}.ml-debug-info details summary{cursor:pointer;font-weight:600;color:#2563eb;-webkit-user-select:none;user-select:none;padding:.25rem;border-radius:.25rem}.ml-debug-info details summary:hover{background-color:#f3f4f6}.ml-debug-info details summary:focus{outline:2px solid #3b82f6;outline-offset:2px}.ml-debug-info .ml-debug-stats{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem;padding:.25rem;background-color:#fff;border-radius:.25rem}.ml-debug-info .ml-debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:.625rem}.ml-debug-info .ml-debug-stats span:before{content:"•";margin-right:.25rem;color:#3b82f6}', bs = typeof HTMLElement < "u" ? HTMLElement : class {
|
|
2438
2438
|
}, Se = /* @__PURE__ */ new Set();
|
|
2439
2439
|
function nt() {
|
|
2440
2440
|
return Array.from(Se);
|
|
@@ -2442,52 +2442,52 @@ function nt() {
|
|
|
2442
2442
|
class rt extends bs {
|
|
2443
2443
|
constructor() {
|
|
2444
2444
|
super();
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2445
|
+
h(this, "picker");
|
|
2446
|
+
h(this, "containerElement");
|
|
2447
|
+
h(this, "shadow");
|
|
2448
2448
|
// Properties for complex data (not attributes)
|
|
2449
|
-
|
|
2449
|
+
h(this, "_options");
|
|
2450
2450
|
// Member/Callback properties
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2451
|
+
h(this, "_valueMember");
|
|
2452
|
+
h(this, "_getValueCallback");
|
|
2453
|
+
h(this, "_displayValueMember");
|
|
2454
|
+
h(this, "_getDisplayValueCallback");
|
|
2455
|
+
h(this, "_getBadgeDisplayCallback");
|
|
2456
|
+
h(this, "_getBadgeClassCallback");
|
|
2457
|
+
h(this, "_customStylesCallback");
|
|
2458
|
+
h(this, "_searchValueMember");
|
|
2459
|
+
h(this, "_getSearchValueCallback");
|
|
2460
|
+
h(this, "_iconMember");
|
|
2461
|
+
h(this, "_getIconCallback");
|
|
2462
|
+
h(this, "_subtitleMember");
|
|
2463
|
+
h(this, "_getSubtitleCallback");
|
|
2464
|
+
h(this, "_groupMember");
|
|
2465
|
+
h(this, "_getGroupCallback");
|
|
2466
|
+
h(this, "_renderGroupLabelContentCallback");
|
|
2467
|
+
h(this, "_disabledMember");
|
|
2468
|
+
h(this, "_getDisabledCallback");
|
|
2469
2469
|
// Value formatting callbacks
|
|
2470
|
-
|
|
2470
|
+
h(this, "_getValueFormatCallback");
|
|
2471
2471
|
// Tooltip callbacks
|
|
2472
|
-
|
|
2472
|
+
h(this, "_getBadgeTooltipCallback");
|
|
2473
2473
|
// Custom rendering callbacks
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2478
|
-
|
|
2474
|
+
h(this, "_renderOptionContentCallback");
|
|
2475
|
+
h(this, "_renderBadgeContentCallback");
|
|
2476
|
+
h(this, "_renderSelectedItemContentCallback");
|
|
2477
|
+
h(this, "_getSelectedItemClassCallback");
|
|
2478
|
+
h(this, "_renderSelectedContentCallback");
|
|
2479
2479
|
// Count badge callback
|
|
2480
|
-
|
|
2480
|
+
h(this, "_getCounterCallback");
|
|
2481
2481
|
// Action buttons
|
|
2482
|
-
|
|
2482
|
+
h(this, "_actionButtons");
|
|
2483
2483
|
// Event callbacks
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2484
|
+
h(this, "_beforeSearchCallback");
|
|
2485
|
+
h(this, "_searchCallback");
|
|
2486
|
+
h(this, "_addNewCallback");
|
|
2487
|
+
h(this, "_selectCallback");
|
|
2488
|
+
h(this, "_deselectCallback");
|
|
2489
|
+
h(this, "_changeCallback");
|
|
2490
|
+
h(this, "_declarativeSelectedValues");
|
|
2491
2491
|
this.shadow = this.attachShadow({ mode: "open" });
|
|
2492
2492
|
const t = document.createElement("style");
|
|
2493
2493
|
t.textContent = gs, this.shadow.appendChild(t), requestAnimationFrame(() => {
|
|
@@ -2543,6 +2543,8 @@ class rt extends bs {
|
|
|
2543
2543
|
// Tooltip options
|
|
2544
2544
|
"enable-badge-tooltips",
|
|
2545
2545
|
"badge-tooltip-placement",
|
|
2546
|
+
// Input size
|
|
2547
|
+
"input-size",
|
|
2546
2548
|
// Debug
|
|
2547
2549
|
"show-debug-info"
|
|
2548
2550
|
];
|
|
@@ -2555,8 +2557,20 @@ class rt extends bs {
|
|
|
2555
2557
|
disconnectedCallback() {
|
|
2556
2558
|
Se.delete(this), this.picker && this.picker.destroy();
|
|
2557
2559
|
}
|
|
2558
|
-
attributeChangedCallback(t,
|
|
2559
|
-
|
|
2560
|
+
attributeChangedCallback(t, s, o) {
|
|
2561
|
+
if (s !== o) {
|
|
2562
|
+
if (t === "input-size") {
|
|
2563
|
+
this.applyInputSizeStyles();
|
|
2564
|
+
return;
|
|
2565
|
+
}
|
|
2566
|
+
this.picker && t !== "initial-values" && (this.picker.destroy(), this.initializePicker());
|
|
2567
|
+
}
|
|
2568
|
+
}
|
|
2569
|
+
applyInputSizeStyles() {
|
|
2570
|
+
const t = this.shadow.querySelector(".ms__input");
|
|
2571
|
+
if (!t) return;
|
|
2572
|
+
const s = this.getAttribute("input-size");
|
|
2573
|
+
t.classList.remove("ms__input--xs", "ms__input--sm", "ms__input--lg", "ms__input--xl"), s && s !== "md" && t.classList.add(`ms__input--${s}`);
|
|
2560
2574
|
}
|
|
2561
2575
|
render() {
|
|
2562
2576
|
this.containerElement = document.createElement("div"), this.containerElement.setAttribute("data-multiselect", ""), this.className && (this.containerElement.className = this.className), this.shadow.appendChild(this.containerElement), this.getAttribute("show-debug-info") === "true" && this.renderDebugInfo();
|
|
@@ -2564,20 +2578,20 @@ class rt extends bs {
|
|
|
2564
2578
|
renderDebugInfo() {
|
|
2565
2579
|
const t = this.shadow.querySelector(".ml-debug-info");
|
|
2566
2580
|
t && t.remove();
|
|
2567
|
-
const
|
|
2568
|
-
|
|
2581
|
+
const s = document.createElement("div");
|
|
2582
|
+
s.className = "ml-debug-info";
|
|
2569
2583
|
const o = document.createElement("details"), n = document.createElement("summary");
|
|
2570
2584
|
n.textContent = "Debug Info";
|
|
2571
2585
|
const r = document.createElement("div");
|
|
2572
|
-
r.className = "ml-debug-stats", o.appendChild(n), o.appendChild(r),
|
|
2586
|
+
r.className = "ml-debug-stats", o.appendChild(n), o.appendChild(r), s.appendChild(o), this.shadow.appendChild(s), this.updateDebugInfo();
|
|
2573
2587
|
}
|
|
2574
2588
|
updateDebugInfo() {
|
|
2575
|
-
var
|
|
2589
|
+
var p, g;
|
|
2576
2590
|
const t = this.shadow.querySelector(".ml-debug-stats");
|
|
2577
2591
|
if (!t || !this.picker) return;
|
|
2578
|
-
const
|
|
2592
|
+
const s = "1.2.0", o = nt().length, r = this.picker.getSelected().length, a = ((p = this._options) == null ? void 0 : p.length) || 0, l = this.picker, c = l.isOpen || !1, d = l.searchTerm || "", m = l.isLoading || !1, u = ((g = l.filteredOptions) == null ? void 0 : g.length) || 0;
|
|
2579
2593
|
t.innerHTML = `
|
|
2580
|
-
<span>Version: ${
|
|
2594
|
+
<span>Version: ${s}</span>
|
|
2581
2595
|
<span>Total Instances: ${o}</span>
|
|
2582
2596
|
<span>Options: ${a}</span>
|
|
2583
2597
|
<span>Filtered: ${u}</span>
|
|
@@ -2595,11 +2609,11 @@ class rt extends bs {
|
|
|
2595
2609
|
*/
|
|
2596
2610
|
parseDeclarativeOptions() {
|
|
2597
2611
|
var n, r, a, l;
|
|
2598
|
-
const t = [],
|
|
2599
|
-
if (
|
|
2612
|
+
const t = [], s = Array.from(this.children);
|
|
2613
|
+
if (s.length === 0)
|
|
2600
2614
|
return null;
|
|
2601
2615
|
let o = !1;
|
|
2602
|
-
for (const c of
|
|
2616
|
+
for (const c of s)
|
|
2603
2617
|
if (c.tagName === "OPTION") {
|
|
2604
2618
|
const d = c, m = {
|
|
2605
2619
|
value: d.value || ((n = d.textContent) == null ? void 0 : n.trim()) || "",
|
|
@@ -2608,16 +2622,16 @@ class rt extends bs {
|
|
|
2608
2622
|
d.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(m.value)), d.hasAttribute("disabled") && (m.disabled = !0), d.hasAttribute("data-icon") && (m.icon = d.getAttribute("data-icon")), d.hasAttribute("data-subtitle") && (m.subtitle = d.getAttribute("data-subtitle")), t.push(m), o = !0;
|
|
2609
2623
|
} else if (c.tagName === "OPTGROUP") {
|
|
2610
2624
|
const d = c, m = d.label || d.getAttribute("label") || "Group", u = Array.from(d.querySelectorAll("option"));
|
|
2611
|
-
for (const
|
|
2625
|
+
for (const p of u) {
|
|
2612
2626
|
const g = {
|
|
2613
|
-
value:
|
|
2614
|
-
label: ((l =
|
|
2627
|
+
value: p.value || ((a = p.textContent) == null ? void 0 : a.trim()) || "",
|
|
2628
|
+
label: ((l = p.textContent) == null ? void 0 : l.trim()) || p.value || "",
|
|
2615
2629
|
group: m
|
|
2616
2630
|
};
|
|
2617
|
-
|
|
2631
|
+
p.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(g.value)), p.hasAttribute("disabled") && (g.disabled = !0), p.hasAttribute("data-icon") && (g.icon = p.getAttribute("data-icon")), p.hasAttribute("data-subtitle") && (g.subtitle = p.getAttribute("data-subtitle")), t.push(g), o = !0;
|
|
2618
2632
|
}
|
|
2619
2633
|
}
|
|
2620
|
-
return o ? (S.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`),
|
|
2634
|
+
return o ? (S.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), s.forEach((c) => {
|
|
2621
2635
|
(c.tagName === "OPTION" || c.tagName === "OPTGROUP") && c.remove();
|
|
2622
2636
|
}), t) : null;
|
|
2623
2637
|
}
|
|
@@ -2635,7 +2649,7 @@ class rt extends bs {
|
|
|
2635
2649
|
S.error("[MultiSelectElement] Failed to parse initial-values:", n);
|
|
2636
2650
|
}
|
|
2637
2651
|
}
|
|
2638
|
-
const
|
|
2652
|
+
const s = {
|
|
2639
2653
|
// String options
|
|
2640
2654
|
searchHint: this.getAttribute("search-hint") || void 0,
|
|
2641
2655
|
searchPlaceholder: this.getAttribute("search-placeholder") || "Search...",
|
|
@@ -2762,13 +2776,14 @@ class rt extends bs {
|
|
|
2762
2776
|
// Pass host element (this) for hidden inputs in light DOM
|
|
2763
2777
|
hostElement: this
|
|
2764
2778
|
};
|
|
2765
|
-
if (t && (this.containerElement.dataset.initialValues = JSON.stringify(t)), this.picker = new us(this.containerElement,
|
|
2779
|
+
if (t && (this.containerElement.dataset.initialValues = JSON.stringify(t)), this.picker = new us(this.containerElement, s), this._customStylesCallback) {
|
|
2766
2780
|
const o = this._customStylesCallback();
|
|
2767
2781
|
if (o) {
|
|
2768
2782
|
const n = document.createElement("style");
|
|
2769
2783
|
n.className = "ml-custom-styles", n.textContent = o, this.shadow.appendChild(n);
|
|
2770
2784
|
}
|
|
2771
2785
|
}
|
|
2786
|
+
setTimeout(() => this.applyInputSizeStyles(), 0);
|
|
2772
2787
|
}
|
|
2773
2788
|
reinitialize() {
|
|
2774
2789
|
this.picker && (this.picker.destroy(), this.initializePicker());
|
|
@@ -2853,12 +2868,12 @@ class rt extends bs {
|
|
|
2853
2868
|
}
|
|
2854
2869
|
set customStylesCallback(t) {
|
|
2855
2870
|
if (this._customStylesCallback = t, this.picker && t) {
|
|
2856
|
-
const
|
|
2857
|
-
if (
|
|
2871
|
+
const s = t();
|
|
2872
|
+
if (s) {
|
|
2858
2873
|
const o = this.shadow.querySelector("style.ml-custom-styles");
|
|
2859
2874
|
o && o.remove();
|
|
2860
2875
|
const n = document.createElement("style");
|
|
2861
|
-
n.className = "ml-custom-styles", n.textContent =
|
|
2876
|
+
n.className = "ml-custom-styles", n.textContent = s, this.shadow.appendChild(n), this.picker.renderBadges();
|
|
2862
2877
|
}
|
|
2863
2878
|
}
|
|
2864
2879
|
}
|
|
@@ -2985,6 +3000,13 @@ class rt extends bs {
|
|
|
2985
3000
|
get badgeTooltipPlacement() {
|
|
2986
3001
|
return this.getAttribute("badge-tooltip-placement");
|
|
2987
3002
|
}
|
|
3003
|
+
// Input size
|
|
3004
|
+
get inputSize() {
|
|
3005
|
+
return this.getAttribute("input-size") || "md";
|
|
3006
|
+
}
|
|
3007
|
+
set inputSize(t) {
|
|
3008
|
+
this.setAttribute("input-size", t);
|
|
3009
|
+
}
|
|
2988
3010
|
set getBadgeTooltipCallback(t) {
|
|
2989
3011
|
this._getBadgeTooltipCallback = t, this.reinitialize();
|
|
2990
3012
|
}
|
|
@@ -3068,10 +3090,10 @@ class rt extends bs {
|
|
|
3068
3090
|
}
|
|
3069
3091
|
typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect", rt));
|
|
3070
3092
|
typeof window < "u" && (window.components = window.components || {}, window.components["web-multiselect"] = {
|
|
3071
|
-
version: () => "1.
|
|
3093
|
+
version: () => "1.2.0",
|
|
3072
3094
|
config: {
|
|
3073
3095
|
name: "@keenmate/web-multiselect",
|
|
3074
|
-
version: "1.
|
|
3096
|
+
version: "1.2.0",
|
|
3075
3097
|
author: "Keenmate",
|
|
3076
3098
|
license: "MIT",
|
|
3077
3099
|
repository: "git+https://github.com/keenmate/web-multiselect.git",
|
|
@@ -3079,8 +3101,8 @@ typeof window < "u" && (window.components = window.components || {}, window.comp
|
|
|
3079
3101
|
},
|
|
3080
3102
|
logging: {
|
|
3081
3103
|
enableLogging: ds,
|
|
3082
|
-
disableLogging:
|
|
3083
|
-
setLogLevel:
|
|
3104
|
+
disableLogging: ps,
|
|
3105
|
+
setLogLevel: hs,
|
|
3084
3106
|
setCategoryLevel: ms,
|
|
3085
3107
|
getCategories: () => [...cs]
|
|
3086
3108
|
},
|
|
@@ -3094,11 +3116,11 @@ export {
|
|
|
3094
3116
|
rt as MultiSelectElement,
|
|
3095
3117
|
us as WebMultiSelect,
|
|
3096
3118
|
S as dataLogger,
|
|
3097
|
-
|
|
3119
|
+
ps as disableLogging,
|
|
3098
3120
|
ds as enableLogging,
|
|
3099
3121
|
le as initLogger,
|
|
3100
3122
|
A as interactionLogger,
|
|
3101
3123
|
ms as setCategoryLevel,
|
|
3102
|
-
|
|
3124
|
+
hs as setLogLevel,
|
|
3103
3125
|
f as uiLogger
|
|
3104
3126
|
};
|