@keenmate/web-multiselect 1.1.0 → 1.3.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 +198 -110
- package/dist/multiselect.js +930 -908
- package/dist/multiselect.umd.js +22 -22
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/scss/_badges-display.scss +1 -0
- package/src/scss/_base.scss +1 -1
- package/src/scss/_css-variables.scss +65 -0
- package/src/scss/_input-dropdown.scss +52 -0
- package/src/scss/_options.scss +90 -3
- package/src/scss/_tooltips-popover.scss +21 -0
- package/src/scss/_variables.scss +91 -40
package/dist/multiselect.js
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
1
|
var lt = Object.defineProperty;
|
|
2
|
-
var ct = (
|
|
3
|
-
var p = (
|
|
4
|
-
const ce = Math.min, H = Math.max, de = Math.round,
|
|
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 p = (i, e, t) => ct(i, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
+
const ce = Math.min, H = Math.max, de = Math.round, ae = 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
|
+
}, mt = {
|
|
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
|
|
20
|
-
return typeof
|
|
19
|
+
function he(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
34
|
const pt = /* @__PURE__ */ new Set(["top", "bottom"]);
|
|
35
|
-
function
|
|
36
|
-
return pt.has(F(
|
|
35
|
+
function P(i) {
|
|
36
|
+
return pt.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
|
|
41
|
+
function ht(i, e, t) {
|
|
42
42
|
t === void 0 && (t = !1);
|
|
43
|
-
const
|
|
44
|
-
let
|
|
45
|
-
return e.reference[
|
|
43
|
+
const s = ue(i), o = We(i), r = Ge(o);
|
|
44
|
+
let a = o === "x" ? s === (t ? "end" : "start") ? "right" : "left" : s === "start" ? "bottom" : "top";
|
|
45
|
+
return e.reference[r] > e.floating[r] && (a = me(a)), [a, me(a)];
|
|
46
46
|
}
|
|
47
|
-
function ut(
|
|
48
|
-
const e =
|
|
49
|
-
return [
|
|
47
|
+
function ut(i) {
|
|
48
|
+
const e = me(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) => mt[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,272 +64,272 @@ function ft(s, e, t) {
|
|
|
64
64
|
return [];
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
-
function vt(
|
|
68
|
-
const o = ue(
|
|
69
|
-
let
|
|
70
|
-
return o && (
|
|
67
|
+
function vt(i, e, t, s) {
|
|
68
|
+
const o = ue(i);
|
|
69
|
+
let r = ft(F(i), t === "start", s);
|
|
70
|
+
return o && (r = r.map((a) => a + "-" + o), e && (r = r.concat(r.map(xe)))), r;
|
|
71
71
|
}
|
|
72
|
-
function
|
|
73
|
-
return
|
|
72
|
+
function me(i) {
|
|
73
|
+
return i.replace(/left|right|bottom|top/g, (e) => dt[e]);
|
|
74
74
|
}
|
|
75
|
-
function
|
|
75
|
+
function _t(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 wt(i) {
|
|
85
|
+
return typeof i != "number" ? _t(i) : {
|
|
86
|
+
top: i,
|
|
87
|
+
right: i,
|
|
88
|
+
bottom: i,
|
|
89
|
+
left: i
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
-
function pe(
|
|
92
|
+
function pe(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
|
|
116
|
-
let
|
|
114
|
+
} = i;
|
|
115
|
+
const r = P(e), a = We(e), n = Ge(a), l = F(e), c = r === "y", d = s.x + s.width / 2 - o.width / 2, h = s.y + s.height / 2 - o.height / 2, u = s[n] / 2 - o[n] / 2;
|
|
116
|
+
let m;
|
|
117
117
|
switch (l) {
|
|
118
118
|
case "top":
|
|
119
|
-
|
|
119
|
+
m = {
|
|
120
120
|
x: d,
|
|
121
|
-
y:
|
|
121
|
+
y: s.y - o.height
|
|
122
122
|
};
|
|
123
123
|
break;
|
|
124
124
|
case "bottom":
|
|
125
|
-
|
|
125
|
+
m = {
|
|
126
126
|
x: d,
|
|
127
|
-
y:
|
|
127
|
+
y: s.y + s.height
|
|
128
128
|
};
|
|
129
129
|
break;
|
|
130
130
|
case "right":
|
|
131
|
-
|
|
132
|
-
x:
|
|
133
|
-
y:
|
|
131
|
+
m = {
|
|
132
|
+
x: s.x + s.width,
|
|
133
|
+
y: h
|
|
134
134
|
};
|
|
135
135
|
break;
|
|
136
136
|
case "left":
|
|
137
|
-
|
|
138
|
-
x:
|
|
139
|
-
y:
|
|
137
|
+
m = {
|
|
138
|
+
x: s.x - o.width,
|
|
139
|
+
y: h
|
|
140
140
|
};
|
|
141
141
|
break;
|
|
142
142
|
default:
|
|
143
|
-
|
|
144
|
-
x:
|
|
145
|
-
y:
|
|
143
|
+
m = {
|
|
144
|
+
x: s.x,
|
|
145
|
+
y: s.y
|
|
146
146
|
};
|
|
147
147
|
}
|
|
148
148
|
switch (ue(e)) {
|
|
149
149
|
case "start":
|
|
150
|
-
|
|
150
|
+
m[a] -= u * (t && c ? -1 : 1);
|
|
151
151
|
break;
|
|
152
152
|
case "end":
|
|
153
|
-
|
|
153
|
+
m[a] += u * (t && c ? -1 : 1);
|
|
154
154
|
break;
|
|
155
155
|
}
|
|
156
|
-
return
|
|
156
|
+
return m;
|
|
157
157
|
}
|
|
158
|
-
const
|
|
158
|
+
const yt = async (i, e, t) => {
|
|
159
159
|
const {
|
|
160
|
-
placement:
|
|
160
|
+
placement: s = "bottom",
|
|
161
161
|
strategy: o = "absolute",
|
|
162
|
-
middleware:
|
|
163
|
-
platform:
|
|
164
|
-
} = t,
|
|
165
|
-
let c = await
|
|
166
|
-
reference:
|
|
162
|
+
middleware: r = [],
|
|
163
|
+
platform: a
|
|
164
|
+
} = t, n = r.filter(Boolean), l = await (a.isRTL == null ? void 0 : a.isRTL(e));
|
|
165
|
+
let c = await a.getElementRects({
|
|
166
|
+
reference: i,
|
|
167
167
|
floating: e,
|
|
168
168
|
strategy: o
|
|
169
169
|
}), {
|
|
170
170
|
x: d,
|
|
171
|
-
y:
|
|
172
|
-
} =
|
|
173
|
-
for (let b = 0; b <
|
|
171
|
+
y: h
|
|
172
|
+
} = Ve(c, s, l), u = s, m = {}, g = 0;
|
|
173
|
+
for (let b = 0; b < n.length; b++) {
|
|
174
174
|
const {
|
|
175
175
|
name: v,
|
|
176
|
-
fn:
|
|
177
|
-
} =
|
|
178
|
-
x:
|
|
179
|
-
y:
|
|
180
|
-
data:
|
|
181
|
-
reset:
|
|
182
|
-
} = await
|
|
176
|
+
fn: _
|
|
177
|
+
} = n[b], {
|
|
178
|
+
x: w,
|
|
179
|
+
y: x,
|
|
180
|
+
data: C,
|
|
181
|
+
reset: k
|
|
182
|
+
} = await _({
|
|
183
183
|
x: d,
|
|
184
|
-
y:
|
|
185
|
-
initialPlacement:
|
|
184
|
+
y: h,
|
|
185
|
+
initialPlacement: s,
|
|
186
186
|
placement: u,
|
|
187
187
|
strategy: o,
|
|
188
|
-
middlewareData:
|
|
188
|
+
middlewareData: m,
|
|
189
189
|
rects: c,
|
|
190
|
-
platform:
|
|
190
|
+
platform: a,
|
|
191
191
|
elements: {
|
|
192
|
-
reference:
|
|
192
|
+
reference: i,
|
|
193
193
|
floating: e
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
|
-
d =
|
|
197
|
-
...
|
|
196
|
+
d = w ?? d, h = x ?? h, m = {
|
|
197
|
+
...m,
|
|
198
198
|
[v]: {
|
|
199
|
-
...
|
|
200
|
-
...
|
|
199
|
+
...m[v],
|
|
200
|
+
...C
|
|
201
201
|
}
|
|
202
|
-
},
|
|
203
|
-
reference:
|
|
202
|
+
}, k && g <= 50 && (g++, typeof k == "object" && (k.placement && (u = k.placement), k.rects && (c = k.rects === !0 ? await a.getElementRects({
|
|
203
|
+
reference: i,
|
|
204
204
|
floating: e,
|
|
205
205
|
strategy: o
|
|
206
|
-
}) :
|
|
206
|
+
}) : k.rects), {
|
|
207
207
|
x: d,
|
|
208
|
-
y:
|
|
209
|
-
} =
|
|
208
|
+
y: h
|
|
209
|
+
} = Ve(c, u, l)), b = -1);
|
|
210
210
|
}
|
|
211
211
|
return {
|
|
212
212
|
x: d,
|
|
213
|
-
y:
|
|
213
|
+
y: h,
|
|
214
214
|
placement: u,
|
|
215
215
|
strategy: o,
|
|
216
|
-
middlewareData:
|
|
216
|
+
middlewareData: m
|
|
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
|
-
platform:
|
|
226
|
-
rects:
|
|
227
|
-
elements:
|
|
225
|
+
platform: r,
|
|
226
|
+
rects: a,
|
|
227
|
+
elements: n,
|
|
228
228
|
strategy: l
|
|
229
|
-
} =
|
|
229
|
+
} = i, {
|
|
230
230
|
boundary: c = "clippingAncestors",
|
|
231
231
|
rootBoundary: d = "viewport",
|
|
232
|
-
elementContext:
|
|
232
|
+
elementContext: h = "floating",
|
|
233
233
|
altBoundary: u = !1,
|
|
234
|
-
padding:
|
|
235
|
-
} =
|
|
236
|
-
element: (t = await (
|
|
234
|
+
padding: m = 0
|
|
235
|
+
} = he(e, i), g = wt(m), v = n[u ? h === "floating" ? "reference" : "floating" : h], _ = pe(await r.getClippingRect({
|
|
236
|
+
element: (t = await (r.isElement == null ? void 0 : r.isElement(v))) == null || t ? v : v.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(n.floating)),
|
|
237
237
|
boundary: c,
|
|
238
238
|
rootBoundary: d,
|
|
239
239
|
strategy: l
|
|
240
|
-
})),
|
|
241
|
-
x:
|
|
240
|
+
})), w = h === "floating" ? {
|
|
241
|
+
x: s,
|
|
242
242
|
y: o,
|
|
243
|
-
width:
|
|
244
|
-
height:
|
|
245
|
-
} :
|
|
243
|
+
width: a.floating.width,
|
|
244
|
+
height: a.floating.height
|
|
245
|
+
} : a.reference, x = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(n.floating)), C = await (r.isElement == null ? void 0 : r.isElement(x)) ? await (r.getScale == null ? void 0 : r.getScale(x)) || {
|
|
246
246
|
x: 1,
|
|
247
247
|
y: 1
|
|
248
248
|
} : {
|
|
249
249
|
x: 1,
|
|
250
250
|
y: 1
|
|
251
|
-
},
|
|
252
|
-
elements:
|
|
253
|
-
rect:
|
|
254
|
-
offsetParent:
|
|
251
|
+
}, k = pe(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
252
|
+
elements: n,
|
|
253
|
+
rect: w,
|
|
254
|
+
offsetParent: x,
|
|
255
255
|
strategy: l
|
|
256
|
-
}) :
|
|
256
|
+
}) : w);
|
|
257
257
|
return {
|
|
258
|
-
top: (
|
|
259
|
-
bottom: (
|
|
260
|
-
left: (
|
|
261
|
-
right: (
|
|
258
|
+
top: (_.top - k.top + g.top) / C.y,
|
|
259
|
+
bottom: (k.bottom - _.bottom + g.bottom) / C.y,
|
|
260
|
+
left: (_.left - k.left + g.left) / C.x,
|
|
261
|
+
right: (k.right - _.right + g.right) / C.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
|
-
middlewareData:
|
|
273
|
-
rects:
|
|
274
|
-
initialPlacement:
|
|
272
|
+
middlewareData: r,
|
|
273
|
+
rects: a,
|
|
274
|
+
initialPlacement: n,
|
|
275
275
|
platform: l,
|
|
276
276
|
elements: c
|
|
277
277
|
} = e, {
|
|
278
278
|
mainAxis: d = !0,
|
|
279
|
-
crossAxis:
|
|
279
|
+
crossAxis: h = !0,
|
|
280
280
|
fallbackPlacements: u,
|
|
281
|
-
fallbackStrategy:
|
|
281
|
+
fallbackStrategy: m = "bestFit",
|
|
282
282
|
fallbackAxisSideDirection: g = "none",
|
|
283
283
|
flipAlignment: b = !0,
|
|
284
284
|
...v
|
|
285
|
-
} =
|
|
286
|
-
if ((t =
|
|
285
|
+
} = he(i, e);
|
|
286
|
+
if ((t = r.arrow) != null && t.alignmentOffset)
|
|
287
287
|
return {};
|
|
288
|
-
const
|
|
289
|
-
!u && J &&
|
|
290
|
-
const W = [
|
|
291
|
-
let j = ((
|
|
292
|
-
if (d &&
|
|
293
|
-
const
|
|
294
|
-
|
|
288
|
+
const _ = F(o), w = P(n), x = F(n) === n, C = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), k = u || (x || !b ? [me(n)] : ut(n)), J = g !== "none";
|
|
289
|
+
!u && J && k.push(...vt(n, b, g, C));
|
|
290
|
+
const W = [n, ...k], _e = await je(e, v), re = [];
|
|
291
|
+
let j = ((s = r.flip) == null ? void 0 : s.overflows) || [];
|
|
292
|
+
if (d && re.push(_e[_]), h) {
|
|
293
|
+
const D = ht(o, a, C);
|
|
294
|
+
re.push(_e[D[0]], _e[D[1]]);
|
|
295
295
|
}
|
|
296
296
|
if (j = [...j, {
|
|
297
297
|
placement: o,
|
|
298
|
-
overflows:
|
|
299
|
-
}], !
|
|
298
|
+
overflows: re
|
|
299
|
+
}], !re.every((D) => D <= 0)) {
|
|
300
300
|
var Oe, Le;
|
|
301
|
-
const
|
|
302
|
-
if (
|
|
301
|
+
const D = (((Oe = r.flip) == null ? void 0 : Oe.index) || 0) + 1, we = W[D];
|
|
302
|
+
if (we && (!(h === "alignment" ? w !== P(we) : !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) === w ? 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: we
|
|
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 (m) {
|
|
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 === w || // 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, nt) => V + nt, 0)]).sort((T, V) => T[1] - V[1])[0]) == null ? void 0 : $e[0];
|
|
328
328
|
R && (X = R);
|
|
329
329
|
break;
|
|
330
330
|
}
|
|
331
331
|
case "initialPlacement":
|
|
332
|
-
X =
|
|
332
|
+
X = n;
|
|
333
333
|
break;
|
|
334
334
|
}
|
|
335
335
|
if (o !== X)
|
|
@@ -342,107 +342,107 @@ const Ct = function(s) {
|
|
|
342
342
|
return {};
|
|
343
343
|
}
|
|
344
344
|
};
|
|
345
|
-
},
|
|
346
|
-
async function
|
|
345
|
+
}, kt = /* @__PURE__ */ new Set(["left", "top"]);
|
|
346
|
+
async function Ct(i, e) {
|
|
347
347
|
const {
|
|
348
348
|
placement: t,
|
|
349
|
-
platform:
|
|
349
|
+
platform: s,
|
|
350
350
|
elements: o
|
|
351
|
-
} =
|
|
351
|
+
} = i, r = await (s.isRTL == null ? void 0 : s.isRTL(o.floating)), a = F(t), n = ue(t), l = P(t) === "y", c = kt.has(a) ? -1 : 1, d = r && l ? -1 : 1, h = he(e, i);
|
|
352
352
|
let {
|
|
353
353
|
mainAxis: u,
|
|
354
|
-
crossAxis:
|
|
354
|
+
crossAxis: m,
|
|
355
355
|
alignmentAxis: g
|
|
356
|
-
} = typeof
|
|
357
|
-
mainAxis:
|
|
356
|
+
} = typeof h == "number" ? {
|
|
357
|
+
mainAxis: h,
|
|
358
358
|
crossAxis: 0,
|
|
359
359
|
alignmentAxis: null
|
|
360
360
|
} : {
|
|
361
|
-
mainAxis:
|
|
362
|
-
crossAxis:
|
|
363
|
-
alignmentAxis:
|
|
361
|
+
mainAxis: h.mainAxis || 0,
|
|
362
|
+
crossAxis: h.crossAxis || 0,
|
|
363
|
+
alignmentAxis: h.alignmentAxis
|
|
364
364
|
};
|
|
365
|
-
return
|
|
366
|
-
x:
|
|
365
|
+
return n && typeof g == "number" && (m = n === "end" ? g * -1 : g), l ? {
|
|
366
|
+
x: m * d,
|
|
367
367
|
y: u * c
|
|
368
368
|
} : {
|
|
369
369
|
x: u * c,
|
|
370
|
-
y:
|
|
370
|
+
y: m * 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
|
-
y:
|
|
382
|
-
placement:
|
|
383
|
-
middlewareData:
|
|
384
|
-
} = e, l = await
|
|
385
|
-
return
|
|
381
|
+
y: r,
|
|
382
|
+
placement: a,
|
|
383
|
+
middlewareData: n
|
|
384
|
+
} = e, l = await Ct(e, i);
|
|
385
|
+
return a === ((t = n.offset) == null ? void 0 : t.placement) && (s = n.arrow) != null && s.alignmentOffset ? {} : {
|
|
386
386
|
x: o + l.x,
|
|
387
|
-
y:
|
|
387
|
+
y: r + l.y,
|
|
388
388
|
data: {
|
|
389
389
|
...l,
|
|
390
|
-
placement:
|
|
390
|
+
placement: a
|
|
391
391
|
}
|
|
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
|
-
mainAxis:
|
|
406
|
-
crossAxis:
|
|
407
|
-
limiter:
|
|
405
|
+
mainAxis: r = !0,
|
|
406
|
+
crossAxis: a = !1,
|
|
407
|
+
limiter: n = {
|
|
408
408
|
fn: (v) => {
|
|
409
409
|
let {
|
|
410
|
-
x:
|
|
411
|
-
y
|
|
410
|
+
x: _,
|
|
411
|
+
y: w
|
|
412
412
|
} = v;
|
|
413
413
|
return {
|
|
414
|
-
x:
|
|
415
|
-
y
|
|
414
|
+
x: _,
|
|
415
|
+
y: w
|
|
416
416
|
};
|
|
417
417
|
}
|
|
418
418
|
},
|
|
419
419
|
...l
|
|
420
|
-
} =
|
|
420
|
+
} = he(i, e), c = {
|
|
421
421
|
x: t,
|
|
422
|
-
y:
|
|
423
|
-
}, d = await je(e, l),
|
|
424
|
-
let
|
|
425
|
-
if (n) {
|
|
426
|
-
const v = u === "y" ? "top" : "left", w = u === "y" ? "bottom" : "right", y = h + d[v], C = h - d[w];
|
|
427
|
-
h = Ee(y, h, C);
|
|
428
|
-
}
|
|
422
|
+
y: s
|
|
423
|
+
}, d = await je(e, l), h = P(F(o)), u = Fe(h);
|
|
424
|
+
let m = c[u], g = c[h];
|
|
429
425
|
if (r) {
|
|
430
|
-
const v =
|
|
431
|
-
|
|
426
|
+
const v = u === "y" ? "top" : "left", _ = u === "y" ? "bottom" : "right", w = m + d[v], x = m - d[_];
|
|
427
|
+
m = Ee(w, m, x);
|
|
432
428
|
}
|
|
433
|
-
|
|
429
|
+
if (a) {
|
|
430
|
+
const v = h === "y" ? "top" : "left", _ = h === "y" ? "bottom" : "right", w = g + d[v], x = g - d[_];
|
|
431
|
+
g = Ee(w, g, x);
|
|
432
|
+
}
|
|
433
|
+
const b = n.fn({
|
|
434
434
|
...e,
|
|
435
|
-
[u]:
|
|
436
|
-
[
|
|
435
|
+
[u]: m,
|
|
436
|
+
[h]: 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
|
-
[u]:
|
|
445
|
-
[
|
|
444
|
+
[u]: r,
|
|
445
|
+
[h]: a
|
|
446
446
|
}
|
|
447
447
|
}
|
|
448
448
|
};
|
|
@@ -452,209 +452,209 @@ 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(
|
|
557
|
-
if (
|
|
558
|
-
const
|
|
559
|
-
return e.concat(
|
|
556
|
+
const o = Ke(i), r = o === ((s = i.ownerDocument) == null ? void 0 : s.body), a = I(o);
|
|
557
|
+
if (r) {
|
|
558
|
+
const n = ke(a);
|
|
559
|
+
return e.concat(a, a.visualViewport || [], oe(o) ? o : [], n && t ? se(n) : []);
|
|
560
560
|
}
|
|
561
561
|
return e.concat(o, se(o, [], t));
|
|
562
562
|
}
|
|
563
|
-
function
|
|
564
|
-
return
|
|
563
|
+
function ke(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
|
|
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), r = o ? i.offsetWidth : t, a = o ? i.offsetHeight : s, n = de(t) !== r || de(s) !== a;
|
|
570
|
+
return n && (t = r, s = a), {
|
|
571
571
|
width: t,
|
|
572
|
-
height:
|
|
573
|
-
$:
|
|
572
|
+
height: s,
|
|
573
|
+
$: n
|
|
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
|
+
$: r
|
|
587
587
|
} = Ye(e);
|
|
588
|
-
let
|
|
589
|
-
return (!
|
|
590
|
-
x:
|
|
591
|
-
y:
|
|
588
|
+
let a = (r ? de(t.width) : t.width) / s, n = (r ? de(t.height) : t.height) / o;
|
|
589
|
+
return (!a || !Number.isFinite(a)) && (a = 1), (!n || !Number.isFinite(n)) && (n = 1), {
|
|
590
|
+
x: a,
|
|
591
|
+
y: n
|
|
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 =
|
|
608
|
-
let
|
|
609
|
-
e && (
|
|
610
|
-
const
|
|
611
|
-
let l = (o.left +
|
|
612
|
-
if (
|
|
613
|
-
const u = I(
|
|
614
|
-
let g = u, b =
|
|
615
|
-
for (; b &&
|
|
616
|
-
const v = U(b),
|
|
617
|
-
l *= v.x, c *= v.y, d *= v.x,
|
|
607
|
+
const o = i.getBoundingClientRect(), r = Te(i);
|
|
608
|
+
let a = E(1);
|
|
609
|
+
e && (s ? L(s) && (a = U(s)) : a = U(i));
|
|
610
|
+
const n = Bt(r, t, s) ? Je(r) : E(0);
|
|
611
|
+
let l = (o.left + n.x) / a.x, c = (o.top + n.y) / a.y, d = o.width / a.x, h = o.height / a.y;
|
|
612
|
+
if (r) {
|
|
613
|
+
const u = I(r), m = s && L(s) ? I(s) : s;
|
|
614
|
+
let g = u, b = ke(g);
|
|
615
|
+
for (; b && s && m !== g; ) {
|
|
616
|
+
const v = U(b), _ = b.getBoundingClientRect(), w = $(b), x = _.left + (b.clientLeft + parseFloat(w.paddingLeft)) * v.x, C = _.top + (b.clientTop + parseFloat(w.paddingTop)) * v.y;
|
|
617
|
+
l *= v.x, c *= v.y, d *= v.x, h *= v.y, l += x, c += C, g = I(b), b = ke(g);
|
|
618
618
|
}
|
|
619
619
|
}
|
|
620
620
|
return pe({
|
|
621
621
|
width: d,
|
|
622
|
-
height:
|
|
622
|
+
height: h,
|
|
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
|
|
646
|
-
if (
|
|
644
|
+
} = i;
|
|
645
|
+
const r = o === "fixed", a = M(s), n = e ? be(e.floating) : !1;
|
|
646
|
+
if (s === a || n && r)
|
|
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),
|
|
653
|
-
if ((
|
|
654
|
-
const
|
|
655
|
-
c = U(
|
|
652
|
+
const d = E(0), h = z(s);
|
|
653
|
+
if ((h || !h && !r) && ((Y(s) !== "body" || oe(a)) && (l = fe(s)), z(s))) {
|
|
654
|
+
const m = G(s);
|
|
655
|
+
c = U(s), d.x = m.x + s.clientLeft, d.y = m.y + s.clientTop;
|
|
656
656
|
}
|
|
657
|
-
const u =
|
|
657
|
+
const u = a && !h && !r ? Xe(a, l) : E(0);
|
|
658
658
|
return {
|
|
659
659
|
width: t.width * c.x,
|
|
660
660
|
height: t.height * c.y,
|
|
@@ -662,98 +662,98 @@ 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
|
|
671
|
-
const
|
|
672
|
-
return $(
|
|
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), r = H(e.scrollHeight, e.clientHeight, s.scrollHeight, s.clientHeight);
|
|
670
|
+
let a = -t.scrollLeft + ve(i);
|
|
671
|
+
const n = -t.scrollTop;
|
|
672
|
+
return $(s).direction === "rtl" && (a += H(e.clientWidth, s.clientWidth) - o), {
|
|
673
673
|
width: o,
|
|
674
|
-
height:
|
|
675
|
-
x:
|
|
676
|
-
y:
|
|
674
|
+
height: r,
|
|
675
|
+
x: a,
|
|
676
|
+
y: n
|
|
677
677
|
};
|
|
678
678
|
}
|
|
679
|
-
const
|
|
680
|
-
function Ht(
|
|
681
|
-
const t = I(
|
|
682
|
-
let
|
|
679
|
+
const Be = 25;
|
|
680
|
+
function Ht(i, e) {
|
|
681
|
+
const t = I(i), s = M(i), o = t.visualViewport;
|
|
682
|
+
let r = s.clientWidth, a = s.clientHeight, n = 0, l = 0;
|
|
683
683
|
if (o) {
|
|
684
|
-
|
|
684
|
+
r = o.width, a = o.height;
|
|
685
685
|
const d = Ie();
|
|
686
|
-
(!d || d && e === "fixed") && (
|
|
686
|
+
(!d || d && e === "fixed") && (n = 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, h = d.body, u = getComputedStyle(h), m = d.compatMode === "CSS1Compat" && parseFloat(u.marginLeft) + parseFloat(u.marginRight) || 0, g = Math.abs(s.clientWidth - h.clientWidth - m);
|
|
691
|
+
g <= Be && (r -= g);
|
|
692
|
+
} else c <= Be && (r += c);
|
|
693
693
|
return {
|
|
694
|
-
width:
|
|
695
|
-
height:
|
|
696
|
-
x:
|
|
694
|
+
width: r,
|
|
695
|
+
height: a,
|
|
696
|
+
x: n,
|
|
697
697
|
y: l
|
|
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, r = z(i) ? U(i) : E(1), a = i.clientWidth * r.x, n = i.clientHeight * r.y, l = o * r.x, c = s * r.y;
|
|
703
703
|
return {
|
|
704
|
-
width:
|
|
705
|
-
height:
|
|
704
|
+
width: a,
|
|
705
|
+
height: n,
|
|
706
706
|
x: l,
|
|
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 pe(
|
|
727
|
+
return pe(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
|
|
739
|
-
let
|
|
740
|
-
for (; L(
|
|
741
|
-
const
|
|
742
|
-
!l &&
|
|
737
|
+
let s = se(i, [], !1).filter((n) => L(n) && Y(n) !== "body"), o = null;
|
|
738
|
+
const r = $(i).position === "fixed";
|
|
739
|
+
let a = r ? B(i) : i;
|
|
740
|
+
for (; L(a) && !K(a); ) {
|
|
741
|
+
const n = $(a), l = Ae(a);
|
|
742
|
+
!l && n.position === "fixed" && (o = null), (r ? !l && !o : !l && n.position === "static" && !!o && Ft.has(o.position) || oe(a) && !l && qe(i, a)) ? s = s.filter((d) => d !== a) : o = n, a = B(a);
|
|
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
|
|
754
|
-
const
|
|
755
|
-
return c.top = H(
|
|
756
|
-
},
|
|
752
|
+
} = i;
|
|
753
|
+
const a = [...t === "clippingAncestors" ? be(e) ? [] : Wt(e, this._c) : [].concat(t), s], n = a[0], l = a.reduce((c, d) => {
|
|
754
|
+
const h = De(e, d, o);
|
|
755
|
+
return c.top = H(h.top, c.top), c.right = ce(h.right, c.right), c.bottom = ce(h.bottom, c.bottom), c.left = H(h.left, c.left), c;
|
|
756
|
+
}, De(e, n, o));
|
|
757
757
|
return {
|
|
758
758
|
width: l.right - l.left,
|
|
759
759
|
height: l.bottom - l.top,
|
|
@@ -761,19 +761,19 @@ 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
|
|
776
|
-
let
|
|
774
|
+
function Kt(i, e, t) {
|
|
775
|
+
const s = z(e), o = M(e), r = t === "fixed", a = G(i, !0, r, e);
|
|
776
|
+
let n = {
|
|
777
777
|
scrollLeft: 0,
|
|
778
778
|
scrollTop: 0
|
|
779
779
|
};
|
|
@@ -781,67 +781,67 @@ 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)) && (
|
|
786
|
-
const
|
|
787
|
-
l.x =
|
|
784
|
+
if (s || !s && !r)
|
|
785
|
+
if ((Y(e) !== "body" || oe(o)) && (n = fe(e)), s) {
|
|
786
|
+
const m = G(e, !0, r, e);
|
|
787
|
+
l.x = m.x + e.clientLeft, l.y = m.y + e.clientTop;
|
|
788
788
|
} else o && c();
|
|
789
|
-
|
|
790
|
-
const d = o && !
|
|
789
|
+
r && !s && o && c();
|
|
790
|
+
const d = o && !s && !r ? Xe(o, n) : E(0), h = a.left + n.scrollLeft - l.x - d.x, u = a.top + n.scrollTop - l.y - d.y;
|
|
791
791
|
return {
|
|
792
|
-
x:
|
|
792
|
+
x: h,
|
|
793
793
|
y: u,
|
|
794
|
-
width:
|
|
795
|
-
height:
|
|
794
|
+
width: a.width,
|
|
795
|
+
height: a.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,175 +851,175 @@ const Xt = {
|
|
|
851
851
|
isElement: L,
|
|
852
852
|
isRTL: Jt
|
|
853
853
|
};
|
|
854
|
-
function Qe(
|
|
855
|
-
return
|
|
856
|
-
}
|
|
857
|
-
function qt(
|
|
858
|
-
let t = null,
|
|
859
|
-
const o =
|
|
860
|
-
function
|
|
861
|
-
var
|
|
862
|
-
clearTimeout(
|
|
863
|
-
}
|
|
864
|
-
function
|
|
865
|
-
|
|
866
|
-
const c =
|
|
854
|
+
function Qe(i, e) {
|
|
855
|
+
return i.x === e.x && i.y === e.y && i.width === e.width && i.height === e.height;
|
|
856
|
+
}
|
|
857
|
+
function qt(i, e) {
|
|
858
|
+
let t = null, s;
|
|
859
|
+
const o = M(i);
|
|
860
|
+
function r() {
|
|
861
|
+
var n;
|
|
862
|
+
clearTimeout(s), (n = t) == null || n.disconnect(), t = null;
|
|
863
|
+
}
|
|
864
|
+
function a(n, l) {
|
|
865
|
+
n === void 0 && (n = !1), l === void 0 && (l = 1), r();
|
|
866
|
+
const c = i.getBoundingClientRect(), {
|
|
867
867
|
left: d,
|
|
868
|
-
top:
|
|
868
|
+
top: h,
|
|
869
869
|
width: u,
|
|
870
|
-
height:
|
|
870
|
+
height: m
|
|
871
871
|
} = c;
|
|
872
|
-
if (
|
|
872
|
+
if (n || e(), !u || !m)
|
|
873
873
|
return;
|
|
874
|
-
const g =
|
|
875
|
-
rootMargin: -g + "px " + -b + "px " + -v + "px " + -
|
|
874
|
+
const g = ae(h), b = ae(o.clientWidth - (d + u)), v = ae(o.clientHeight - (h + m)), _ = ae(d), x = {
|
|
875
|
+
rootMargin: -g + "px " + -b + "px " + -v + "px " + -_ + "px",
|
|
876
876
|
threshold: H(0, ce(1, l)) || 1
|
|
877
877
|
};
|
|
878
|
-
let
|
|
879
|
-
function
|
|
878
|
+
let C = !0;
|
|
879
|
+
function k(J) {
|
|
880
880
|
const W = J[0].intersectionRatio;
|
|
881
881
|
if (W !== l) {
|
|
882
|
-
if (!
|
|
883
|
-
return
|
|
884
|
-
W ?
|
|
885
|
-
|
|
882
|
+
if (!C)
|
|
883
|
+
return a();
|
|
884
|
+
W ? a(!1, W) : s = setTimeout(() => {
|
|
885
|
+
a(!1, 1e-7);
|
|
886
886
|
}, 1e3);
|
|
887
887
|
}
|
|
888
|
-
W === 1 && !Qe(c,
|
|
888
|
+
W === 1 && !Qe(c, i.getBoundingClientRect()) && a(), C = !1;
|
|
889
889
|
}
|
|
890
890
|
try {
|
|
891
|
-
t = new IntersectionObserver(
|
|
892
|
-
...
|
|
891
|
+
t = new IntersectionObserver(k, {
|
|
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(k, x);
|
|
898
898
|
}
|
|
899
|
-
t.observe(
|
|
899
|
+
t.observe(i);
|
|
900
900
|
}
|
|
901
|
-
return
|
|
901
|
+
return a(!0), r;
|
|
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
|
-
ancestorResize:
|
|
908
|
-
elementResize:
|
|
909
|
-
layoutShift:
|
|
907
|
+
ancestorResize: r = !0,
|
|
908
|
+
elementResize: a = typeof ResizeObserver == "function",
|
|
909
|
+
layoutShift: n = typeof IntersectionObserver == "function",
|
|
910
910
|
animationFrame: l = !1
|
|
911
|
-
} =
|
|
912
|
-
d.forEach((
|
|
913
|
-
o &&
|
|
911
|
+
} = s, c = Te(i), d = o || r ? [...c ? se(c) : [], ...se(e)] : [];
|
|
912
|
+
d.forEach((_) => {
|
|
913
|
+
o && _.addEventListener("scroll", t, {
|
|
914
914
|
passive: !0
|
|
915
|
-
}),
|
|
915
|
+
}), r && _.addEventListener("resize", t);
|
|
916
916
|
});
|
|
917
|
-
const
|
|
918
|
-
let u = -1,
|
|
919
|
-
|
|
920
|
-
let [
|
|
921
|
-
|
|
922
|
-
var
|
|
923
|
-
(
|
|
917
|
+
const h = c && n ? qt(c, t) : null;
|
|
918
|
+
let u = -1, m = null;
|
|
919
|
+
a && (m = new ResizeObserver((_) => {
|
|
920
|
+
let [w] = _;
|
|
921
|
+
w && w.target === c && m && (m.unobserve(e), cancelAnimationFrame(u), u = requestAnimationFrame(() => {
|
|
922
|
+
var x;
|
|
923
|
+
(x = m) == null || x.observe(e);
|
|
924
924
|
})), t();
|
|
925
|
-
}), c && !l &&
|
|
926
|
-
let g, b = l ? G(
|
|
925
|
+
}), c && !l && m.observe(c), m.observe(e));
|
|
926
|
+
let g, b = l ? G(i) : null;
|
|
927
927
|
l && v();
|
|
928
928
|
function v() {
|
|
929
|
-
const
|
|
930
|
-
b && !Qe(b,
|
|
929
|
+
const _ = G(i);
|
|
930
|
+
b && !Qe(b, _) && t(), b = _, g = requestAnimationFrame(v);
|
|
931
931
|
}
|
|
932
932
|
return t(), () => {
|
|
933
|
-
var
|
|
934
|
-
d.forEach((
|
|
935
|
-
o &&
|
|
936
|
-
}),
|
|
933
|
+
var _;
|
|
934
|
+
d.forEach((w) => {
|
|
935
|
+
o && w.removeEventListener("scroll", t), r && w.removeEventListener("resize", t);
|
|
936
|
+
}), h == null || h(), (_ = m) == null || _.disconnect(), m = null, l && cancelAnimationFrame(g);
|
|
937
937
|
};
|
|
938
938
|
}
|
|
939
|
-
const Z = St, Q = At,
|
|
940
|
-
const
|
|
939
|
+
const Z = St, Q = At, ne = xt, ee = (i, e, t) => {
|
|
940
|
+
const s = /* @__PURE__ */ new Map(), o = {
|
|
941
941
|
platform: Xt,
|
|
942
942
|
...t
|
|
943
|
-
},
|
|
943
|
+
}, r = {
|
|
944
944
|
...o.platform,
|
|
945
|
-
_c:
|
|
945
|
+
_c: s
|
|
946
946
|
};
|
|
947
|
-
return
|
|
947
|
+
return yt(i, e, {
|
|
948
948
|
...o,
|
|
949
|
-
platform:
|
|
949
|
+
platform: r
|
|
950
950
|
});
|
|
951
951
|
};
|
|
952
952
|
var et = function() {
|
|
953
|
-
}, O = "undefined", Zt = typeof window !== O && typeof window.navigator !== O && /Trident\/|MSIE /.test(window.navigator.userAgent),
|
|
953
|
+
}, O = "undefined", Zt = typeof window !== O && typeof window.navigator !== O && /Trident\/|MSIE /.test(window.navigator.userAgent), Ce = [
|
|
954
954
|
"trace",
|
|
955
955
|
"debug",
|
|
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
|
|
980
|
-
var t =
|
|
981
|
-
this[t] = e <
|
|
979
|
+
for (var i = this.getLevel(), e = 0; e < Ce.length; e++) {
|
|
980
|
+
var t = Ce[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
|
|
997
|
-
function
|
|
998
|
-
var
|
|
999
|
-
if (!(typeof window === O || !
|
|
994
|
+
function tt(i, e) {
|
|
995
|
+
var t = this, s, o, r, a = "loglevel";
|
|
996
|
+
typeof i == "string" ? a += ":" + i : typeof i == "symbol" && (a = void 0);
|
|
997
|
+
function n(u) {
|
|
998
|
+
var m = (Ce[u] || "silent").toUpperCase();
|
|
999
|
+
if (!(typeof window === O || !a)) {
|
|
1000
1000
|
try {
|
|
1001
|
-
window.localStorage[
|
|
1001
|
+
window.localStorage[a] = m;
|
|
1002
1002
|
return;
|
|
1003
1003
|
} catch {
|
|
1004
1004
|
}
|
|
1005
1005
|
try {
|
|
1006
|
-
window.document.cookie = encodeURIComponent(
|
|
1006
|
+
window.document.cookie = encodeURIComponent(a) + "=" + m + ";";
|
|
1007
1007
|
} catch {
|
|
1008
1008
|
}
|
|
1009
1009
|
}
|
|
1010
1010
|
}
|
|
1011
1011
|
function l() {
|
|
1012
1012
|
var u;
|
|
1013
|
-
if (!(typeof window === O || !
|
|
1013
|
+
if (!(typeof window === O || !a)) {
|
|
1014
1014
|
try {
|
|
1015
|
-
u = window.localStorage[
|
|
1015
|
+
u = window.localStorage[a];
|
|
1016
1016
|
} catch {
|
|
1017
1017
|
}
|
|
1018
1018
|
if (typeof u === O)
|
|
1019
1019
|
try {
|
|
1020
|
-
var
|
|
1020
|
+
var m = window.document.cookie, g = encodeURIComponent(a), b = m.indexOf(g + "=");
|
|
1021
1021
|
b !== -1 && (u = /^([^;]+)/.exec(
|
|
1022
|
-
|
|
1022
|
+
m.slice(b + g.length + 1)
|
|
1023
1023
|
)[1]);
|
|
1024
1024
|
} catch {
|
|
1025
1025
|
}
|
|
@@ -1027,24 +1027,24 @@ function tt(s, e) {
|
|
|
1027
1027
|
}
|
|
1028
1028
|
}
|
|
1029
1029
|
function c() {
|
|
1030
|
-
if (!(typeof window === O || !
|
|
1030
|
+
if (!(typeof window === O || !a)) {
|
|
1031
1031
|
try {
|
|
1032
|
-
window.localStorage.removeItem(
|
|
1032
|
+
window.localStorage.removeItem(a);
|
|
1033
1033
|
} catch {
|
|
1034
1034
|
}
|
|
1035
1035
|
try {
|
|
1036
|
-
window.document.cookie = encodeURIComponent(
|
|
1036
|
+
window.document.cookie = encodeURIComponent(a) + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC";
|
|
1037
1037
|
} catch {
|
|
1038
1038
|
}
|
|
1039
1039
|
}
|
|
1040
1040
|
}
|
|
1041
1041
|
function d(u) {
|
|
1042
|
-
var
|
|
1043
|
-
if (typeof
|
|
1044
|
-
return
|
|
1042
|
+
var m = u;
|
|
1043
|
+
if (typeof m == "string" && t.levels[m.toUpperCase()] !== void 0 && (m = t.levels[m.toUpperCase()]), typeof m == "number" && m >= 0 && m <= t.levels.SILENT)
|
|
1044
|
+
return m;
|
|
1045
1045
|
throw new TypeError("log.setLevel() called with invalid level: " + u);
|
|
1046
1046
|
}
|
|
1047
|
-
t.name =
|
|
1047
|
+
t.name = i, t.levels = {
|
|
1048
1048
|
TRACE: 0,
|
|
1049
1049
|
DEBUG: 1,
|
|
1050
1050
|
INFO: 2,
|
|
@@ -1052,88 +1052,88 @@ function tt(s, e) {
|
|
|
1052
1052
|
ERROR: 4,
|
|
1053
1053
|
SILENT: 5
|
|
1054
1054
|
}, t.methodFactory = e || ss, t.getLevel = function() {
|
|
1055
|
-
return
|
|
1056
|
-
}, t.setLevel = function(u,
|
|
1057
|
-
return
|
|
1055
|
+
return r ?? o ?? s;
|
|
1056
|
+
}, t.setLevel = function(u, m) {
|
|
1057
|
+
return r = d(u), m !== !1 && n(r), te.call(t);
|
|
1058
1058
|
}, t.setDefaultLevel = function(u) {
|
|
1059
1059
|
o = d(u), l() || t.setLevel(u, !1);
|
|
1060
1060
|
}, t.resetLevel = function() {
|
|
1061
|
-
|
|
1061
|
+
r = null, c(), te.call(t);
|
|
1062
1062
|
}, t.enableAll = function(u) {
|
|
1063
1063
|
t.setLevel(t.levels.TRACE, u);
|
|
1064
1064
|
}, t.disableAll = function(u) {
|
|
1065
1065
|
t.setLevel(t.levels.SILENT, u);
|
|
1066
1066
|
}, t.rebuild = function() {
|
|
1067
|
-
if (
|
|
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
|
-
var
|
|
1074
|
-
|
|
1073
|
+
var h = l();
|
|
1074
|
+
h != null && (r = d(h)), 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
|
|
1099
|
-
},
|
|
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
|
+
}, rs = {
|
|
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 = {},
|
|
1112
|
-
if (!
|
|
1111
|
+
}, st, N = {}, as = function(i) {
|
|
1112
|
+
if (!i || !i.getLogger)
|
|
1113
1113
|
throw new TypeError("Argument is not a root logger");
|
|
1114
|
-
st =
|
|
1115
|
-
},
|
|
1116
|
-
if (!
|
|
1114
|
+
st = i;
|
|
1115
|
+
}, ns = function(i, e) {
|
|
1116
|
+
if (!i || !i.setLevel)
|
|
1117
1117
|
throw new TypeError("Argument is not a logger");
|
|
1118
|
-
var t =
|
|
1119
|
-
function
|
|
1120
|
-
var c = t(
|
|
1118
|
+
var t = i.methodFactory, s = i.name || "", o = N[s] || N[""] || rs;
|
|
1119
|
+
function r(a, n, l) {
|
|
1120
|
+
var c = t(a, n, l), d = N[l] || N[""], h = d.template.indexOf("%t") !== -1, u = d.template.indexOf("%l") !== -1, m = d.template.indexOf("%n") !== -1;
|
|
1121
1121
|
return function() {
|
|
1122
|
-
for (var g = "", b = arguments.length, v = Array(b),
|
|
1123
|
-
v[
|
|
1124
|
-
if (
|
|
1125
|
-
var
|
|
1126
|
-
d.format ? g += d.format(
|
|
1122
|
+
for (var g = "", b = arguments.length, v = Array(b), _ = 0; _ < b; _++)
|
|
1123
|
+
v[_] = arguments[_];
|
|
1124
|
+
if (s || !N[l]) {
|
|
1125
|
+
var w = d.timestampFormatter(/* @__PURE__ */ new Date()), x = d.levelFormatter(a), C = d.nameFormatter(l);
|
|
1126
|
+
d.format ? g += d.format(x, C, w) : (g += d.template, h && (g = g.replace(/%t/, w)), u && (g = g.replace(/%l/, x)), m && (g = g.replace(/%n/, C))), 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 = r), 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
|
-
reg:
|
|
1136
|
-
apply:
|
|
1135
|
+
reg: as,
|
|
1136
|
+
apply: ns
|
|
1137
1137
|
};
|
|
1138
1138
|
const ot = {
|
|
1139
1139
|
debug: "#0ea5e9",
|
|
@@ -1145,61 +1145,61 @@ 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
|
|
1162
|
+
const r = ot[i] || "#666", a = [
|
|
1163
1163
|
o[0],
|
|
1164
|
-
`color: ${
|
|
1164
|
+
`color: ${r}; font-weight: bold;`,
|
|
1165
1165
|
// timestamp color
|
|
1166
1166
|
"color: inherit;",
|
|
1167
1167
|
// reset
|
|
1168
|
-
`color: ${
|
|
1168
|
+
`color: ${r}; font-weight: bold;`,
|
|
1169
1169
|
// level color
|
|
1170
1170
|
"color: inherit;",
|
|
1171
1171
|
// reset
|
|
1172
1172
|
...t ? [
|
|
1173
|
-
`color: ${
|
|
1173
|
+
`color: ${r}; font-weight: bold;`,
|
|
1174
1174
|
// name color
|
|
1175
1175
|
"color: inherit;"
|
|
1176
1176
|
// reset
|
|
1177
1177
|
] : [],
|
|
1178
1178
|
...o.slice(1)
|
|
1179
1179
|
];
|
|
1180
|
-
|
|
1180
|
+
s(...a);
|
|
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 ms() {
|
|
1196
|
+
y.setLevel("silent");
|
|
1197
1197
|
}
|
|
1198
|
-
function ps(
|
|
1199
|
-
|
|
1198
|
+
function ps(i) {
|
|
1199
|
+
y.setLevel(i);
|
|
1200
1200
|
}
|
|
1201
|
-
function
|
|
1202
|
-
|
|
1201
|
+
function hs(i, e) {
|
|
1202
|
+
y.getLogger(i).setLevel(e);
|
|
1203
1203
|
}
|
|
1204
1204
|
class He {
|
|
1205
1205
|
constructor(e) {
|
|
@@ -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
|
-
const
|
|
1267
|
-
|
|
1266
|
+
const r = this.items[o], a = this.renderItem(r, o), n = o * this.itemHeight;
|
|
1267
|
+
s += `<div class="ms__virtual-item" style="position: absolute; top: ${n}px; left: 0; right: 0; height: ${this.itemHeight}px;" data-index="${o}">`, s += a, s += "</div>";
|
|
1268
1268
|
}
|
|
1269
|
-
this.viewport.innerHTML =
|
|
1269
|
+
this.viewport.innerHTML = s;
|
|
1270
1270
|
}
|
|
1271
1271
|
/**
|
|
1272
1272
|
* Update items and re-render
|
|
@@ -1488,21 +1488,21 @@ 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(),
|
|
1492
|
-
this.isRTL = o ||
|
|
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", r = s.closest('[dir="rtl"]') !== null;
|
|
1492
|
+
this.isRTL = o || r, 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
|
-
hasAncestorDir:
|
|
1497
|
+
hasAncestorDir: r,
|
|
1498
1498
|
isRTL: this.isRTL
|
|
1499
1499
|
}), this.effectiveBadgesPosition = this.options.badgesPosition || "bottom", this.isRTL && (this.effectiveBadgesPosition === "left" ? this.effectiveBadgesPosition = "right" : this.effectiveBadgesPosition === "right" && (this.effectiveBadgesPosition = "left")), this.element.classList.add("ml"), this.isRTL && (this.element.classList.add("ms--rtl"), le.debug(`[${this.instanceId}] Added ms--rtl class to element`)), (!this.options.isCheckboxesShown || !this.options.isMultipleEnabled) && this.element.classList.add("ms--no-checkboxes");
|
|
1500
|
-
const
|
|
1501
|
-
|
|
1502
|
-
const
|
|
1503
|
-
|
|
1500
|
+
const a = document.createElement("div");
|
|
1501
|
+
a.className = "ms__input-wrapper", this.input = document.createElement("input"), this.input.type = "text", this.input.className = "ms__input", this.input.placeholder = this.options.searchPlaceholder, this.input.autocomplete = "off", this.options.searchInputMode === "readonly" ? this.input.readOnly = !0 : this.options.searchInputMode === "hidden" && (this.input.style.display = "none");
|
|
1502
|
+
const n = document.createElement("span");
|
|
1503
|
+
n.className = "ms__toggle", n.innerHTML = "▼", this.counter = document.createElement("span"), this.counter.className = "ms__counter", this.counter.style.display = "none", a.appendChild(this.input), a.appendChild(this.counter), a.appendChild(n), this.badgesContainer = document.createElement("div"), this.badgesContainer.className = "ms__badges";
|
|
1504
1504
|
const l = document.createElement("div");
|
|
1505
|
-
l.className = "ml-wrapper", (this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right") && l.classList.add("ml-wrapper--inline"), l.appendChild(
|
|
1505
|
+
l.className = "ml-wrapper", (this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right") && l.classList.add("ml-wrapper--inline"), l.appendChild(a), l.appendChild(this.badgesContainer), this.element.appendChild(l), this.dropdown = document.createElement("div"), this.dropdown.className = "ms__dropdown", e.appendChild(this.dropdown), this.options.searchHint && (this.hint = document.createElement("div"), this.hint.className = "ms__hint", this.hint.textContent = this.options.searchHint, e.appendChild(this.hint)), this.selectedPopover = document.createElement("div"), this.selectedPopover.className = "ms__selected-popover", e.appendChild(this.selectedPopover), this.renderDropdown();
|
|
1506
1506
|
}
|
|
1507
1507
|
/**
|
|
1508
1508
|
* Check if virtual scroll should be used
|
|
@@ -1533,41 +1533,41 @@ 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
|
-
const
|
|
1540
|
+
const n = (o.isDisabledCallback ? o.isDisabledCallback(this) : o.isDisabled ?? !1) ? " disabled" : "", l = o.getTextCallback ? o.getTextCallback(this) : o.text;
|
|
1541
1541
|
let c = "";
|
|
1542
1542
|
if (o.getClassCallback) {
|
|
1543
1543
|
const d = o.getClassCallback(this);
|
|
1544
1544
|
c = Array.isArray(d) ? ` ${d.join(" ")}` : d ? ` ${d}` : "";
|
|
1545
1545
|
} else o.cssClass && (c = ` ${o.cssClass}`);
|
|
1546
|
-
e += `<button type="button"${
|
|
1546
|
+
e += `<button type="button"${n} class="ms__action-btn${c}" data-action="${o.action}">${l}</button>`;
|
|
1547
1547
|
}), e += "</div>";
|
|
1548
1548
|
}
|
|
1549
1549
|
if (e += '<div class="ms__options">', this.filteredOptions.length === 0)
|
|
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
|
-
const
|
|
1559
|
-
|
|
1558
|
+
const r = document.createElement("div");
|
|
1559
|
+
r.className = "ms__group-label", r.appendChild(o), e += r.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[
|
|
1565
|
-
e += this.renderOption(o,
|
|
1563
|
+
e += `<div class="ms__group-label">${s}</div>`;
|
|
1564
|
+
t[s].forEach((o, r) => {
|
|
1565
|
+
e += this.renderOption(o, r);
|
|
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
|
-
const
|
|
1582
|
-
|
|
1581
|
+
const a = this.options.isActionsSticky ? " ms__actions--sticky" : "", n = this.options.actionsLayout === "wrap" ? " ms__actions--wrap" : "";
|
|
1582
|
+
s += `<div class="ms__actions${a}${n}">`, this.options.actionButtons.forEach((l) => {
|
|
1583
1583
|
if (!(l.isVisibleCallback ? l.isVisibleCallback(this) : l.isVisible ?? !0))
|
|
1584
1584
|
return;
|
|
1585
|
-
const
|
|
1586
|
-
let
|
|
1585
|
+
const h = (l.isDisabledCallback ? l.isDisabledCallback(this) : l.isDisabled ?? !1) ? " disabled" : "", u = l.getTextCallback ? l.getTextCallback(this) : l.text;
|
|
1586
|
+
let m = "";
|
|
1587
1587
|
if (l.getClassCallback) {
|
|
1588
1588
|
const g = l.getClassCallback(this);
|
|
1589
|
-
|
|
1590
|
-
} else l.cssClass && (
|
|
1591
|
-
|
|
1592
|
-
}),
|
|
1589
|
+
m = Array.isArray(g) ? ` ${g.join(" ")}` : g ? ` ${g}` : "";
|
|
1590
|
+
} else l.cssClass && (m = ` ${l.cssClass}`);
|
|
1591
|
+
s += `<button type="button"${h} class="ms__action-btn${m}" data-action="${l.action}">${u}</button>`;
|
|
1592
|
+
}), s += "</div>";
|
|
1593
1593
|
}
|
|
1594
|
-
const o = this.options.maxHeight || "20rem",
|
|
1595
|
-
|
|
1594
|
+
const o = this.options.maxHeight || "20rem", r = this.options.optionHeight ?? 50;
|
|
1595
|
+
s += `<div class="ms__options ms__options--virtual" style="height: ${o}; max-height: ${o}; overflow-y: auto; position: relative; --ml-option-height: ${r}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,39 +1604,39 @@ 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
|
|
1614
|
-
l &&
|
|
1613
|
+
const s = this.getItemValue(e), o = this.getItemDisplayValue(e), r = this.getItemIcon(e), a = this.getItemSubtitle(e), n = this.getItemDisabled(e), l = this.selectedValues.has(String(s)), c = t === this.focusedIndex, d = this.matchingIndices.has(t), h = ["ms__option"];
|
|
1614
|
+
l && h.push("ms__option--selected"), c && h.push("ms__option--focused"), d && h.push("ms__option--matched"), n && h.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 m = `<div class="${h.join(" ")}" data-value="${s}" data-index="${t}"${u}>`;
|
|
1617
|
+
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (m += `<input type="checkbox" class="ms__checkbox" ${l ? "checked" : ""} ${n ? "disabled" : ""}>`), m += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
|
|
1618
1618
|
const g = {
|
|
1619
1619
|
index: t,
|
|
1620
1620
|
isSelected: l,
|
|
1621
1621
|
isFocused: c,
|
|
1622
1622
|
isMatched: d,
|
|
1623
|
-
isDisabled:
|
|
1623
|
+
isDisabled: n
|
|
1624
1624
|
}, b = this.options.renderOptionContentCallback(e, g);
|
|
1625
|
-
typeof b == "string" ?
|
|
1625
|
+
typeof b == "string" ? m += b : m += b.outerHTML;
|
|
1626
1626
|
} else
|
|
1627
|
-
|
|
1628
|
-
return
|
|
1627
|
+
r && (m += `<span class="ms__option-icon">${r}</span>`), m += '<div class="ms__option-text">', m += `<div class="ms__option-title">${this.highlightMatch(o, this.searchTerm)}</div>`, a && (m += `<div class="ms__option-subtitle">${a}</div>`), m += "</div>";
|
|
1628
|
+
return m += "</div>", m += "</div>", m;
|
|
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() {
|
|
@@ -1644,55 +1644,55 @@ class us {
|
|
|
1644
1644
|
const e = Array.from(this.selectedOptions.values()), t = this.selectedValues.size;
|
|
1645
1645
|
if (!this.options.isMultipleEnabled) {
|
|
1646
1646
|
this.badgesContainer.innerHTML = "", this.counter.style.display = "none";
|
|
1647
|
-
let
|
|
1648
|
-
e[0] && (this.options.renderSelectedContentCallback ?
|
|
1647
|
+
let r;
|
|
1648
|
+
e[0] && (this.options.renderSelectedContentCallback ? r = this.options.renderSelectedContentCallback(e[0]) : r = this.getItemDisplayValue(e[0])), f.warn(`[${this.instanceId}] renderBadges() single-select mode`, {
|
|
1649
1649
|
isOpen: this.isOpen,
|
|
1650
1650
|
count: t,
|
|
1651
1651
|
selectedOptionsLength: e.length,
|
|
1652
1652
|
willSetValue: !this.isOpen && t > 0 && e.length > 0,
|
|
1653
|
-
selectedLabel:
|
|
1654
|
-
}), !this.isOpen && t > 0 && e.length > 0 ? (f.info(`[${this.instanceId}] ✅ SETTING input.value = "${
|
|
1653
|
+
selectedLabel: r
|
|
1654
|
+
}), !this.isOpen && t > 0 && e.length > 0 ? (f.info(`[${this.instanceId}] ✅ SETTING input.value = "${r}"`), this.input.value = r, 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 &&
|
|
1660
|
-
const
|
|
1661
|
-
this.input.placeholder =
|
|
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
|
+
const r = this.options.getCounterCallback ? this.options.getCounterCallback(t) : `${t} selected`;
|
|
1661
|
+
this.input.placeholder = r;
|
|
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 (
|
|
1669
|
-
this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, this.badgesContainer.innerHTML = e.map((
|
|
1670
|
-
const
|
|
1671
|
-
let
|
|
1668
|
+
if (s === "badges")
|
|
1669
|
+
this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, this.badgesContainer.innerHTML = e.map((r) => {
|
|
1670
|
+
const a = this.getItemValue(r);
|
|
1671
|
+
let n;
|
|
1672
1672
|
if (this.options.renderBadgeContentCallback) {
|
|
1673
1673
|
const c = {
|
|
1674
1674
|
displayMode: "badges",
|
|
1675
1675
|
isInPopover: !1
|
|
1676
|
-
}, d = this.options.renderBadgeContentCallback(
|
|
1677
|
-
|
|
1676
|
+
}, d = this.options.renderBadgeContentCallback(r, c);
|
|
1677
|
+
n = typeof d == "string" ? d : d.outerHTML;
|
|
1678
1678
|
} else
|
|
1679
|
-
|
|
1679
|
+
n = this.getItemBadgeDisplayValue(r);
|
|
1680
1680
|
let l = "ms__badge";
|
|
1681
1681
|
if (this.options.getBadgeClassCallback) {
|
|
1682
|
-
const c = this.options.getBadgeClassCallback(
|
|
1683
|
-
l += " " + d.filter((
|
|
1682
|
+
const c = this.options.getBadgeClassCallback(r), d = Array.isArray(c) ? c : [c];
|
|
1683
|
+
l += " " + d.filter((h) => h).join(" ");
|
|
1684
1684
|
}
|
|
1685
1685
|
return `
|
|
1686
1686
|
<div class="${l}">
|
|
1687
|
-
<span class="ms__badge-text">${
|
|
1688
|
-
<button type="button" class="ms__badge-remove" data-value="${
|
|
1687
|
+
<span class="ms__badge-text">${n}</span>
|
|
1688
|
+
<button type="button" class="ms__badge-remove" data-value="${a}" aria-label="Remove ${this.getItemBadgeDisplayValue(r)}"></button>
|
|
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
|
-
const
|
|
1695
|
-
const
|
|
1694
|
+
const r = this.options.badgesMaxVisible || 3, a = e.slice(0, r), n = t - r, l = a.map((d) => {
|
|
1695
|
+
const h = this.getItemValue(d);
|
|
1696
1696
|
let u;
|
|
1697
1697
|
if (this.options.renderBadgeContentCallback) {
|
|
1698
1698
|
const g = {
|
|
@@ -1702,32 +1702,32 @@ class us {
|
|
|
1702
1702
|
u = typeof b == "string" ? b : b.outerHTML;
|
|
1703
1703
|
} else
|
|
1704
1704
|
u = this.getItemBadgeDisplayValue(d);
|
|
1705
|
-
let
|
|
1705
|
+
let m = "ms__badge";
|
|
1706
1706
|
if (this.options.getBadgeClassCallback) {
|
|
1707
1707
|
const g = this.options.getBadgeClassCallback(d), b = Array.isArray(g) ? g : [g];
|
|
1708
|
-
|
|
1708
|
+
m += " " + b.filter((v) => v).join(" ");
|
|
1709
1709
|
}
|
|
1710
1710
|
return `
|
|
1711
|
-
<div class="${
|
|
1711
|
+
<div class="${m}">
|
|
1712
1712
|
<span class="ms__badge-text">${u}</span>
|
|
1713
|
-
<button type="button" class="ms__badge-remove" data-value="${
|
|
1713
|
+
<button type="button" class="ms__badge-remove" data-value="${h}" aria-label="Remove ${this.getItemBadgeDisplayValue(d)}"></button>
|
|
1714
1714
|
</div>
|
|
1715
1715
|
`;
|
|
1716
1716
|
}).join("");
|
|
1717
1717
|
let c = "";
|
|
1718
|
-
|
|
1718
|
+
n > 0 && (c = `
|
|
1719
1719
|
<div class="ms__badge ms__badge--counter ms__badge--more" data-action="show-selected">
|
|
1720
|
-
<span class="ms__badge-text">${this.options.getCounterCallback ? this.options.getCounterCallback(t,
|
|
1721
|
-
<button type="button" class="ms__badge-remove" data-action="remove-hidden" aria-label="Remove ${
|
|
1720
|
+
<span class="ms__badge-text">${this.options.getCounterCallback ? this.options.getCounterCallback(t, n) : `+${n} more`}</span>
|
|
1721
|
+
<button type="button" class="ms__badge-remove" data-action="remove-hidden" aria-label="Remove ${n} 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
|
-
const
|
|
1727
|
-
let l =
|
|
1728
|
-
if (
|
|
1729
|
-
const c = this.options.getCounterCallback ? this.options.getCounterCallback(t,
|
|
1730
|
-
l = `${
|
|
1726
|
+
const r = e[0], a = this.getItemBadgeDisplayValue(r), n = t - 1;
|
|
1727
|
+
let l = a;
|
|
1728
|
+
if (n > 0) {
|
|
1729
|
+
const c = this.options.getCounterCallback ? this.options.getCounterCallback(t, n) : `+${n} more`;
|
|
1730
|
+
l = `${a} (${c})`;
|
|
1731
1731
|
}
|
|
1732
1732
|
this.badgesContainer.innerHTML = `
|
|
1733
1733
|
<div class="ms__badge ms__badge--counter" data-action="show-selected">
|
|
@@ -1738,10 +1738,10 @@ class us {
|
|
|
1738
1738
|
} else
|
|
1739
1739
|
this.badgesContainer.innerHTML = "";
|
|
1740
1740
|
else if (this.badgesContainer.className = `ms__badges ms__badges--${this.effectiveBadgesPosition}`, t > 0) {
|
|
1741
|
-
const
|
|
1741
|
+
const r = this.options.getCounterCallback ? this.options.getCounterCallback(t) : `${t} selected`;
|
|
1742
1742
|
this.badgesContainer.innerHTML = `
|
|
1743
1743
|
<div class="ms__badge ms__badge--counter" data-action="show-selected">
|
|
1744
|
-
<span class="ms__badge-text">${
|
|
1744
|
+
<span class="ms__badge-text">${r}</span>
|
|
1745
1745
|
<button type="button" class="ms__badge-remove" data-action="clear-count" aria-label="Clear all selections"></button>
|
|
1746
1746
|
</div>
|
|
1747
1747
|
`;
|
|
@@ -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,27 +1793,27 @@ 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 (
|
|
1810
|
-
this.filteredOptions = this.allOptions.filter((
|
|
1808
|
+
const s = this.options.searchMode || "filter", o = t.toLowerCase();
|
|
1809
|
+
if (s === "filter")
|
|
1810
|
+
this.filteredOptions = this.allOptions.filter((r) => this.getItemSearchValue(r).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();
|
|
1813
|
-
let
|
|
1814
|
-
this.allOptions.forEach((
|
|
1815
|
-
this.getItemSearchValue(
|
|
1816
|
-
}),
|
|
1813
|
+
let r = -1;
|
|
1814
|
+
this.allOptions.forEach((a, n) => {
|
|
1815
|
+
this.getItemSearchValue(a).toLowerCase().includes(o) && (this.matchingIndices.add(n), r === -1 && (r = n));
|
|
1816
|
+
}), r >= 0 ? (this.focusedIndex = r, S.debug(`[${this.instanceId}] Navigate mode: ${this.matchingIndices.size} matches, jumped to index ${r}`)) : S.debug(`[${this.instanceId}] Navigate mode: No matches found, keeping previous focus`);
|
|
1817
1817
|
}
|
|
1818
1818
|
}
|
|
1819
1819
|
this.renderDropdown(), this.options.searchMode === "navigate" && this.focusedIndex >= 0 && this.scrollToFocused();
|
|
@@ -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
|
}
|
|
@@ -1867,31 +1867,31 @@ class us {
|
|
|
1867
1867
|
const t = e.target.closest("[data-action]");
|
|
1868
1868
|
if (t) {
|
|
1869
1869
|
e.preventDefault();
|
|
1870
|
-
const
|
|
1871
|
-
if (A.debug(`[${this.instanceId}] Action button clicked:`,
|
|
1870
|
+
const r = t.dataset.action;
|
|
1871
|
+
if (A.debug(`[${this.instanceId}] Action button clicked:`, r), r === "select-all")
|
|
1872
1872
|
this.selectAll();
|
|
1873
|
-
else if (
|
|
1873
|
+
else if (r === "clear-all")
|
|
1874
1874
|
this.clearAll();
|
|
1875
|
-
else if (
|
|
1876
|
-
const
|
|
1877
|
-
(
|
|
1875
|
+
else if (r === "custom") {
|
|
1876
|
+
const a = (o = this.options.actionButtons) == null ? void 0 : o.find(
|
|
1877
|
+
(n) => {
|
|
1878
1878
|
var l;
|
|
1879
|
-
return
|
|
1879
|
+
return n.action === "custom" && n.text === ((l = t.textContent) == null ? void 0 : l.trim());
|
|
1880
1880
|
}
|
|
1881
1881
|
);
|
|
1882
|
-
|
|
1882
|
+
a != null && a.onClick && a.onClick(this);
|
|
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
|
|
1889
|
+
const r = s.dataset.value, a = this.filteredOptions.find((n) => String(this.getItemValue(n)) === r);
|
|
1890
1890
|
A.debug(`[${this.instanceId}] Option clicked:`, {
|
|
1891
|
-
value:
|
|
1891
|
+
value: r,
|
|
1892
1892
|
closeOnSelect: this.options.isCloseOnSelect,
|
|
1893
1893
|
placeholder: this.options.searchPlaceholder
|
|
1894
|
-
}),
|
|
1894
|
+
}), a && this.toggleOption(a);
|
|
1895
1895
|
}
|
|
1896
1896
|
}
|
|
1897
1897
|
handleBadgeClick(e) {
|
|
@@ -1908,11 +1908,11 @@ class us {
|
|
|
1908
1908
|
if (e.preventDefault(), e.stopPropagation(), o.dataset.action === "remove-hidden") {
|
|
1909
1909
|
A.debug(`[${this.instanceId}] Remove hidden items button clicked`);
|
|
1910
1910
|
const l = this.options.badgesMaxVisible || 3;
|
|
1911
|
-
Array.from(this.selectedOptions.values()).slice(l).forEach((
|
|
1911
|
+
Array.from(this.selectedOptions.values()).slice(l).forEach((h) => this.deselectOption(h));
|
|
1912
1912
|
return;
|
|
1913
1913
|
}
|
|
1914
|
-
const
|
|
1915
|
-
|
|
1914
|
+
const a = o.dataset.value, n = this.selectedOptions.get(a);
|
|
1915
|
+
n && this.deselectOption(n);
|
|
1916
1916
|
return;
|
|
1917
1917
|
}
|
|
1918
1918
|
if (e.target.closest(".ms__badge--more") && !e.target.closest(".ms__badge-remove")) {
|
|
@@ -1924,25 +1924,25 @@ class us {
|
|
|
1924
1924
|
var o;
|
|
1925
1925
|
const t = e.composedPath();
|
|
1926
1926
|
if (this.showSelectedPopover && !t.some(
|
|
1927
|
-
(
|
|
1927
|
+
(a) => a instanceof Node && (this.selectedPopover.contains(a) || this.counter.contains(a) || a.closest && a.closest('[data-action="show-selected"]'))
|
|
1928
1928
|
)) {
|
|
1929
1929
|
f.debug(`[${this.instanceId}] Closing selected popover due to click outside`), this.hideSelectedPopover();
|
|
1930
1930
|
return;
|
|
1931
1931
|
}
|
|
1932
1932
|
if (!this.isOpen) return;
|
|
1933
|
-
const
|
|
1934
|
-
(
|
|
1933
|
+
const s = t.some(
|
|
1934
|
+
(r) => r instanceof Node && (this.element.contains(r) || this.dropdown.contains(r) || this.hint && this.hint.contains(r))
|
|
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
|
-
elementContains: t.some((
|
|
1943
|
-
dropdownContains: t.some((
|
|
1942
|
+
elementContains: t.some((r) => r instanceof Node && this.element.contains(r)),
|
|
1943
|
+
dropdownContains: t.some((r) => r instanceof Node && this.dropdown.contains(r)),
|
|
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,
|
|
1962
|
-
this.focusedIndex = e[
|
|
1961
|
+
const e = Array.from(this.matchingIndices).sort((o, r) => o - r), 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,
|
|
1967
|
-
this.focusedIndex = e[
|
|
1966
|
+
const e = Array.from(this.matchingIndices).sort((o, r) => o - r), 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
|
}
|
|
@@ -2042,20 +2042,20 @@ class us {
|
|
|
2042
2042
|
() => {
|
|
2043
2043
|
const e = this.options.isPlacementLocked && this.dropdownPlacement ? this.dropdownPlacement : "bottom-start", t = [
|
|
2044
2044
|
Z(4),
|
|
2045
|
-
...this.options.isPlacementLocked && this.dropdownPlacement ? [] : [
|
|
2045
|
+
...this.options.isPlacementLocked && this.dropdownPlacement ? [] : [ne()],
|
|
2046
2046
|
Q({ padding: 8 })
|
|
2047
2047
|
];
|
|
2048
2048
|
ee(this.input, this.dropdown, {
|
|
2049
2049
|
placement: e,
|
|
2050
2050
|
middleware: t
|
|
2051
|
-
}).then(({ x:
|
|
2052
|
-
this.options.isPlacementLocked && !this.dropdownPlacement && (this.dropdownPlacement =
|
|
2053
|
-
const
|
|
2054
|
-
left: `${
|
|
2051
|
+
}).then(({ x: s, y: o, placement: r }) => {
|
|
2052
|
+
this.options.isPlacementLocked && !this.dropdownPlacement && (this.dropdownPlacement = r, f.debug(`[${this.instanceId}] Locked dropdown placement:`, r));
|
|
2053
|
+
const a = {
|
|
2054
|
+
left: `${s}px`,
|
|
2055
2055
|
top: `${o}px`,
|
|
2056
2056
|
width: `${this.input.offsetWidth}px`
|
|
2057
2057
|
};
|
|
2058
|
-
this.options.dropdownMinWidth && (
|
|
2058
|
+
this.options.dropdownMinWidth && (a.minWidth = this.options.dropdownMinWidth), Object.assign(this.dropdown.style, a), this.hint && this.isOpen && this.positionHint();
|
|
2059
2059
|
});
|
|
2060
2060
|
}
|
|
2061
2061
|
);
|
|
@@ -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,11 +2086,11 @@ 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
|
-
const
|
|
2093
|
-
|
|
2092
|
+
const r = this.allOptions.find((a) => String(this.getItemValue(a)) === o);
|
|
2093
|
+
r && this.selectedOptions.set(o, r);
|
|
2094
2094
|
}), this.renderBadges();
|
|
2095
2095
|
} catch (t) {
|
|
2096
2096
|
S.error(`[${this.instanceId}] Failed to parse initial values:`, t);
|
|
@@ -2123,53 +2123,53 @@ class us {
|
|
|
2123
2123
|
}
|
|
2124
2124
|
renderSelectedPopoverVirtual(e, t) {
|
|
2125
2125
|
if (this.selectedPopoverVirtualScroll) {
|
|
2126
|
-
const
|
|
2127
|
-
|
|
2126
|
+
const n = this.selectedPopover.querySelector(".ms__selected-popover-header span");
|
|
2127
|
+
n && (n.textContent = `Selected Items (${t})`);
|
|
2128
2128
|
} else {
|
|
2129
|
-
const
|
|
2129
|
+
const n = this.options.badgeHeight ?? 36, l = `
|
|
2130
2130
|
<div class="ms__selected-popover-header">
|
|
2131
2131
|
<span>Selected Items (${t})</span>
|
|
2132
2132
|
<button type="button" class="ms__selected-popover-close" aria-label="Close">×</button>
|
|
2133
2133
|
</div>
|
|
2134
|
-
<div class="ms__selected-popover-body ms__selected-popover-body--virtual" style="height: 18rem; overflow-y: auto; position: relative; --ml-badge-height-virtual: ${
|
|
2134
|
+
<div class="ms__selected-popover-body ms__selected-popover-body--virtual" style="height: 18rem; overflow-y: auto; position: relative; --ml-badge-height-virtual: ${n}px;"></div>
|
|
2135
2135
|
`;
|
|
2136
2136
|
this.selectedPopover.innerHTML = l, this.selectedPopoverContainer = this.selectedPopover.querySelector(".ms__selected-popover-body");
|
|
2137
2137
|
}
|
|
2138
2138
|
if (!this.selectedPopoverContainer) return;
|
|
2139
|
-
const
|
|
2139
|
+
const r = (this.options.badgeHeight ?? 36) + 4, a = this.options.virtualScrollBuffer ?? 10;
|
|
2140
2140
|
requestAnimationFrame(() => {
|
|
2141
2141
|
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new He({
|
|
2142
2142
|
container: this.selectedPopoverContainer,
|
|
2143
|
-
itemHeight:
|
|
2143
|
+
itemHeight: r,
|
|
2144
2144
|
items: e,
|
|
2145
|
-
renderItem: (
|
|
2146
|
-
bufferSize:
|
|
2145
|
+
renderItem: (n) => this.renderBadgeForPopover(n),
|
|
2146
|
+
bufferSize: a
|
|
2147
2147
|
}));
|
|
2148
2148
|
});
|
|
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
|
-
const
|
|
2155
|
-
|
|
2154
|
+
const a = this.options.renderSelectedItemContentCallback(e);
|
|
2155
|
+
s = typeof a == "string" ? a : a.outerHTML;
|
|
2156
2156
|
} else if (this.options.renderBadgeContentCallback) {
|
|
2157
|
-
const
|
|
2157
|
+
const a = {
|
|
2158
2158
|
displayMode: this.options.badgesDisplayMode || "badges",
|
|
2159
2159
|
isInPopover: !0
|
|
2160
|
-
},
|
|
2161
|
-
|
|
2160
|
+
}, n = this.options.renderBadgeContentCallback(e, a);
|
|
2161
|
+
s = typeof n == "string" ? n : n.outerHTML;
|
|
2162
2162
|
} else
|
|
2163
|
-
|
|
2163
|
+
s = this.getItemBadgeDisplayValue(e);
|
|
2164
2164
|
let o = "ms__badge";
|
|
2165
|
-
const
|
|
2166
|
-
if (
|
|
2167
|
-
const
|
|
2168
|
-
o += " " +
|
|
2165
|
+
const r = this.options.getSelectedItemClassCallback || this.options.getBadgeClassCallback;
|
|
2166
|
+
if (r) {
|
|
2167
|
+
const a = r(e), n = Array.isArray(a) ? a : [a];
|
|
2168
|
+
o += " " + n.filter((l) => l).join(" ");
|
|
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,11 +2179,11 @@ 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 =
|
|
2186
|
-
|
|
2185
|
+
const o = s.dataset.value, r = this.selectedOptions.get(o);
|
|
2186
|
+
r && (this.deselectOption(r), this.renderSelectedPopover(), this.selectedValues.size === 0 && this.hideSelectedPopover());
|
|
2187
2187
|
}
|
|
2188
2188
|
}
|
|
2189
2189
|
positionSelectedPopover() {
|
|
@@ -2196,17 +2196,17 @@ class us {
|
|
|
2196
2196
|
placement: e,
|
|
2197
2197
|
middleware: [
|
|
2198
2198
|
Z(4),
|
|
2199
|
-
...this.selectedPopoverPlacement ? [] : [
|
|
2199
|
+
...this.selectedPopoverPlacement ? [] : [ne()],
|
|
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
|
-
const
|
|
2204
|
+
const r = {
|
|
2205
2205
|
left: `${t}px`,
|
|
2206
|
-
top: `${
|
|
2206
|
+
top: `${s}px`,
|
|
2207
2207
|
width: `${this.input.offsetWidth}px`
|
|
2208
2208
|
};
|
|
2209
|
-
this.options.dropdownMinWidth && (
|
|
2209
|
+
this.options.dropdownMinWidth && (r.minWidth = this.options.dropdownMinWidth), Object.assign(this.selectedPopover.style, r);
|
|
2210
2210
|
});
|
|
2211
2211
|
}
|
|
2212
2212
|
);
|
|
@@ -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
|
-
const
|
|
2224
|
-
|
|
2223
|
+
const r = document.createElement("input");
|
|
2224
|
+
r.type = "hidden", r.name = `${this.options.formFieldId}[]`, r.value = String(o), s.appendChild(r), this.hiddenInputs.push(r);
|
|
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((r) => String(this.getItemValue(r)) === s);
|
|
2244
|
+
o && this.selectedOptions.set(s, o);
|
|
2245
2245
|
}), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput();
|
|
2246
2246
|
}
|
|
2247
2247
|
get selectedItem() {
|
|
@@ -2270,83 +2270,83 @@ 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, r = o.querySelector(".ms__badge-remove");
|
|
2275
|
+
if (!r) return;
|
|
2276
|
+
const a = r.dataset.value, n = this.selectedOptions.get(a);
|
|
2275
2277
|
if (!n) return;
|
|
2276
|
-
const r = n.dataset.value, a = this.selectedOptions.get(r);
|
|
2277
|
-
if (!a) return;
|
|
2278
2278
|
const l = o.querySelector(".ms__badge-text");
|
|
2279
|
-
l && this.createTooltipForElement(l,
|
|
2280
|
-
const c = this.getItemBadgeDisplayValue(
|
|
2281
|
-
this.createRemoveButtonTooltip(
|
|
2279
|
+
l && this.createTooltipForElement(l, n, a);
|
|
2280
|
+
const c = this.getItemBadgeDisplayValue(n);
|
|
2281
|
+
this.createRemoveButtonTooltip(r, c, a);
|
|
2282
2282
|
});
|
|
2283
2283
|
const t = this.badgesContainer.querySelector(".ms__badge--more");
|
|
2284
2284
|
if (t) {
|
|
2285
|
-
const
|
|
2286
|
-
if (
|
|
2287
|
-
const o = this.options.badgesMaxVisible || 3,
|
|
2288
|
-
this.createRemoveButtonTooltip(
|
|
2285
|
+
const s = t.querySelector(".ms__badge-remove");
|
|
2286
|
+
if (s && s.dataset.action === "remove-hidden") {
|
|
2287
|
+
const o = this.options.badgesMaxVisible || 3, a = Array.from(this.selectedOptions.values()).length - o;
|
|
2288
|
+
this.createRemoveButtonTooltip(s, `${a} 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
|
-
let
|
|
2295
|
+
let r;
|
|
2296
2296
|
if (this.options.getBadgeTooltipCallback)
|
|
2297
|
-
|
|
2297
|
+
r = this.options.getBadgeTooltipCallback(t), f.debug(`[${this.instanceId}] Using custom callback for tooltip content`);
|
|
2298
2298
|
else {
|
|
2299
|
-
const
|
|
2300
|
-
|
|
2301
|
-
${u}` :
|
|
2299
|
+
const h = this.getItemBadgeDisplayValue(t), u = this.getItemSubtitle(t);
|
|
2300
|
+
r = u ? `${h}
|
|
2301
|
+
${u}` : h, f.debug(`[${this.instanceId}] Using default content: "${r}"`);
|
|
2302
2302
|
}
|
|
2303
|
-
typeof
|
|
2304
|
-
let
|
|
2303
|
+
typeof r == "string" ? o.textContent = r : o.appendChild(r), (this.options.container || document.body).appendChild(o), f.debug(`[${this.instanceId}] Tooltip element created and appended for "${s}"`), this.badgeTooltips.set(s, o);
|
|
2304
|
+
let n, 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`), n = 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
|
-
clearTimeout(
|
|
2311
|
-
o.classList.remove("ms__badge-tooltip--visible"), this.cleanupBadgeTooltip(
|
|
2310
|
+
clearTimeout(n), l = window.setTimeout(() => {
|
|
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
|
|
2320
|
-
this.badgeTooltips.set(
|
|
2321
|
-
let
|
|
2319
|
+
const a = `${s}-remove`;
|
|
2320
|
+
this.badgeTooltips.set(a, o);
|
|
2321
|
+
let n, l;
|
|
2322
2322
|
const c = () => {
|
|
2323
2323
|
clearTimeout(l);
|
|
2324
|
-
const
|
|
2325
|
-
|
|
2326
|
-
o.classList.add("ms__badge-tooltip--visible"), this.positionBadgeTooltip(e, o,
|
|
2324
|
+
const h = this.badgeTooltips.get(s);
|
|
2325
|
+
h && h.classList.remove("ms__badge-tooltip--visible"), n = window.setTimeout(() => {
|
|
2326
|
+
o.classList.add("ms__badge-tooltip--visible"), this.positionBadgeTooltip(e, o, a);
|
|
2327
2327
|
}, this.options.badgeTooltipDelay || 300);
|
|
2328
2328
|
}, d = () => {
|
|
2329
|
-
clearTimeout(
|
|
2330
|
-
o.classList.remove("ms__badge-tooltip--visible"), this.cleanupBadgeTooltip(
|
|
2329
|
+
clearTimeout(n), l = window.setTimeout(() => {
|
|
2330
|
+
o.classList.remove("ms__badge-tooltip--visible"), this.cleanupBadgeTooltip(a);
|
|
2331
2331
|
}, 100);
|
|
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",
|
|
2339
2339
|
strategy: "fixed",
|
|
2340
2340
|
middleware: [
|
|
2341
2341
|
Z(this.options.badgeTooltipOffset || 8),
|
|
2342
|
-
|
|
2342
|
+
ne(),
|
|
2343
2343
|
Q({ padding: 8 })
|
|
2344
2344
|
]
|
|
2345
|
-
}).then(({ x:
|
|
2345
|
+
}).then(({ x: r, y: a }) => {
|
|
2346
2346
|
Object.assign(t.style, {
|
|
2347
|
-
left: `${
|
|
2348
|
-
top: `${
|
|
2349
|
-
}), f.debug(`[${this.instanceId}] Positioned tooltip "${
|
|
2347
|
+
left: `${r}px`,
|
|
2348
|
+
top: `${a}px`
|
|
2349
|
+
}), f.debug(`[${this.instanceId}] Positioned tooltip "${s}" at x:${r}, y:${a}`, {
|
|
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,52 +2373,52 @@ ${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
|
|
2379
|
-
if (!
|
|
2380
|
-
let
|
|
2381
|
-
if (
|
|
2378
|
+
const r = (l = this.options.actionButtons) == null ? void 0 : l.find((c) => c.action === "custom" ? s.dataset.customAction === s.dataset.action : c.action === o);
|
|
2379
|
+
if (!r) return;
|
|
2380
|
+
let a;
|
|
2381
|
+
if (r.getTooltipCallback ? (a = r.getTooltipCallback(this), f.debug(`[${this.instanceId}] Using getTooltipCallback for action button "${o}": "${a}"`)) : (a = r.tooltip, f.debug(`[${this.instanceId}] Using static tooltip for action button "${o}": "${a}"`)), !a) {
|
|
2382
2382
|
f.debug(`[${this.instanceId}] No tooltip for action button "${o}"`);
|
|
2383
2383
|
return;
|
|
2384
2384
|
}
|
|
2385
|
-
const
|
|
2386
|
-
this.createActionButtonTooltip(
|
|
2385
|
+
const n = `action-${o}-${Date.now()}`;
|
|
2386
|
+
this.createActionButtonTooltip(s, a, n);
|
|
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 "${
|
|
2392
|
-
let
|
|
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
|
+
let a, n;
|
|
2393
2393
|
const l = () => {
|
|
2394
|
-
clearTimeout(
|
|
2395
|
-
f.debug(`[${this.instanceId}] Showing tooltip for action button "${
|
|
2394
|
+
clearTimeout(n), f.debug(`[${this.instanceId}] Mouse entered action button "${s}", will show tooltip in ${this.options.badgeTooltipDelay || 300}ms`), a = 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
|
-
clearTimeout(
|
|
2399
|
-
o.classList.remove("ms__badge-tooltip--visible"), this.cleanupActionButtonTooltip(
|
|
2398
|
+
clearTimeout(a), n = window.setTimeout(() => {
|
|
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",
|
|
2408
2408
|
strategy: "fixed",
|
|
2409
2409
|
middleware: [
|
|
2410
2410
|
Z(this.options.badgeTooltipOffset || 8),
|
|
2411
|
-
|
|
2411
|
+
ne(),
|
|
2412
2412
|
Q({ padding: 8 })
|
|
2413
2413
|
]
|
|
2414
|
-
}).then(({ x:
|
|
2414
|
+
}).then(({ x: r, y: a }) => {
|
|
2415
2415
|
Object.assign(t.style, {
|
|
2416
|
-
left: `${
|
|
2417
|
-
top: `${
|
|
2418
|
-
}), f.debug(`[${this.instanceId}] Positioned action button tooltip "${
|
|
2416
|
+
left: `${r}px`,
|
|
2417
|
+
top: `${a}px`
|
|
2418
|
+
}), f.debug(`[${this.instanceId}] Positioned action button tooltip "${s}" at x:${r}, y:${a}`);
|
|
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,12 +2434,12 @@ ${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-rem: 10px;--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-color-hover: inherit;--ms-option-background-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-background-selected: var(--ms-option-bg-selected);--ms-option-color-selected: inherit;--ms-option-color-selected-hover: var(--ms-option-color-selected);--ms-option-background-matched: var(--ms-option-bg-matched);--ms-option-color-matched: inherit;--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: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-font-size: calc(1.4 * var(--ms-rem));--ms-input-border-style: 1px solid #d1d5db;--ms-input-border-radius: calc(.6 * var(--ms-rem));--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: calc(1.2 * var(--ms-rem));--ms-input-size-xs-padding-v: calc(.4 * var(--ms-rem));--ms-input-size-xs-padding-h: calc(.8 * var(--ms-rem));--ms-input-size-xs-height: calc(3.1 * var(--ms-rem));--ms-input-size-sm-font: calc(1.3 * var(--ms-rem));--ms-input-size-sm-padding-v: calc(.5 * var(--ms-rem));--ms-input-size-sm-padding-h: calc(.8 * var(--ms-rem));--ms-input-size-sm-height: calc(3.3 * var(--ms-rem));--ms-input-size-md-font: calc(1.4 * var(--ms-rem));--ms-input-size-md-padding-v: calc(.8 * var(--ms-rem));--ms-input-size-md-padding-h: calc(1.2 * var(--ms-rem));--ms-input-size-md-height: calc(3.5 * var(--ms-rem));--ms-input-size-lg-font: calc(1.6 * var(--ms-rem));--ms-input-size-lg-padding-v: calc(1 * var(--ms-rem));--ms-input-size-lg-padding-h: calc(1.4 * var(--ms-rem));--ms-input-size-lg-height: calc(3.8 * var(--ms-rem));--ms-input-size-xl-font: calc(1.8 * var(--ms-rem));--ms-input-size-xl-padding-v: calc(1.2 * var(--ms-rem));--ms-input-size-xl-padding-h: calc(1.6 * var(--ms-rem));--ms-input-size-xl-height: calc(4.1 * var(--ms-rem));--ms-toggle-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: #6b7280;--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: #3b82f6;--ms-counter-color: #ffffff;--ms-counter-font-size: calc(1.2 * var(--ms-rem));--ms-counter-font-weight: 600;--ms-counter-border-radius: calc(.4 * var(--ms-rem));--ms-counter-bg-hover: #2563eb;--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-bg: #ffffff;--ms-hint-border: 1px solid #e5e7eb;--ms-hint-border-radius: calc(.6 * var(--ms-rem));--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: calc(1.2 * var(--ms-rem));--ms-hint-color: #6b7280;--ms-line-height-relaxed: 1.4;--ms-dropdown-bg: #ffffff;--ms-dropdown-border: 1px solid #e5e7eb;--ms-dropdown-border-radius: calc(.6 * var(--ms-rem));--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: calc(32 * var(--ms-rem));--ms-option-color: #111827;--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid #e5e7eb;--ms-actions-bg: #ffffff;--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(1.2 * var(--ms-rem));--ms-action-btn-border: 1px solid #e5e7eb;--ms-action-btn-border-radius: calc(.4 * var(--ms-rem));--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: calc(.4 * var(--ms-rem)) 0;--ms-group-border-top: 1px solid #e5e7eb;--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(1.2 * var(--ms-rem));--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: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-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: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(1.6 * var(--ms-rem));--ms-option-title-font-size: calc(1.4 * var(--ms-rem));--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: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(1.2 * var(--ms-rem));--ms-option-subtitle-color: #6b7280;--ms-option-subtitle-line-height: 1.3;--ms-checkbox-margin-top: calc(.2 * var(--ms-rem));--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: flex-start;--ms-checkbox-bg: #ffffff;--ms-checkbox-border: 1px solid #d1d5db;--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checked-bg: #3b82f6;--ms-checkbox-checked-border: 1px solid #3b82f6;--ms-checkbox-checkmark-color: #ffffff;--ms-checkbox-hover-border-color: #3b82f6;--ms-checkbox-disabled-bg: #e5e7eb;--ms-checkbox-disabled-border: 1px solid #e5e7eb;--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(1.4 * var(--ms-rem));--ms-empty-color: #6b7280;--ms-loader-padding: calc(1.6 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(1.4 * var(--ms-rem));--ms-loading-text-color: #6b7280;--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(1.2 * var(--ms-rem));--ms-badge-font-weight: 600;--ms-badge-border-radius: calc(.6 * var(--ms-rem));--ms-badge-border: none;--ms-badge-bg: #eff6ff;--ms-badge-bg-hover: #ffffff;--ms-badge-bg-active: #e0f2fe;--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: #eff6ff;--ms-badge-text-color: #3b82f6;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: #3b82f6;--ms-badge-remove-color: #ffffff;--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(1.2 * var(--ms-rem));--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: calc(.4 * var(--ms-rem));--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: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: 1px solid #e5e7eb;--ms-counter-wrapper-border-radius: calc(.4 * var(--ms-rem));--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: #f9fafb;--ms-counter-wrapper-border-color-hover: #3b82f6;--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(1.4 * var(--ms-rem));--ms-count-text-color: #111827;--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: #6b7280;--ms-count-clear-font-size: calc(1.8 * var(--ms-rem));--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: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: calc(.6 * var(--ms-rem));--ms-tooltip-font-size: calc(1.4 * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-z-index-popover: 10000;--ms-selected-popover-width: calc(32 * var(--ms-rem));--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-bg: #ffffff;--ms-selected-popover-border: 1px solid #e5e7eb;--ms-selected-popover-border-radius: calc(.6 * var(--ms-rem));--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: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--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: calc(1.4 * var(--ms-rem));--ms-selected-popover-header-font-weight: 600;--ms-selected-popover-header-color: #111827;--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: #6b7280;--ms-selected-popover-close-font-size: calc(2 * var(--ms-rem));--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: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(1 * var(--ms-rem));--ms-font-size-xs: calc(1.2 * var(--ms-rem));--ms-font-size-sm: calc(1.4 * var(--ms-rem));--ms-font-size-base: calc(1.6 * var(--ms-rem));--ms-font-size-lg: calc(1.8 * var(--ms-rem));--ms-font-weight-medium: 500;--ms-font-weight-semibold: 600;--ms-line-height-none: 1;--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: #d1d5db;--ms-scrollbar-thumb-bg-hover: #6b7280;--ms-scrollbar-thumb-border-radius: 4px}multi-select:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));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%;height:var(--ms-input-size-md-height, calc(3.5 * var(--ms-rem)));padding:var(--ms-input-padding, calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem)));padding-right:var(--ms-input-padding-right, calc(4 * var(--ms-rem)));font-size:var(--ms-input-font-size, calc(1.4 * var(--ms-rem)));border:var(--ms-input-border-style, 1px solid #d1d5db);border-radius:var(--ms-input-border-radius, calc(.6 * var(--ms-rem)));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, calc(1.2 * var(--ms-rem)));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, calc(3.2 * var(--ms-rem)));top:50%;transform:var(--ms-transform-center-y, translateY(-50%));padding:var(--ms-counter-padding, calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem)));background:var(--ms-counter-badge-background, #3b82f6);color:var(--ms-counter-badge-color, #ffffff);font-size:var(--ms-counter-font-size, calc(1.2 * var(--ms-rem)));font-weight:var(--ms-counter-font-weight, 600);border-radius:var(--ms-counter-border-radius, calc(.4 * var(--ms-rem)));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, calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem)));background:var(--ms-hint-background, #ffffff);border:var(--ms-hint-border, 1px solid #e5e7eb);border-radius:var(--ms-hint-border-radius, calc(.6 * var(--ms-rem)));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, calc(1.2 * var(--ms-rem)));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, calc(.6 * var(--ms-rem)));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, calc(32 * var(--ms-rem)));overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;color:var(--ms-dropdown-text-color, #111827);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg, #d1d5db) var(--ms-scrollbar-track-bg, transparent)}.ms__dropdown::-webkit-scrollbar{width:var(--ms-scrollbar-width, 8px)}.ms__dropdown::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg, transparent)}.ms__dropdown::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg, #d1d5db);border-radius:var(--ms-scrollbar-thumb-border-radius, 4px)}.ms__dropdown::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover, #6b7280)}.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, calc(.4 * var(--ms-rem)));padding:var(--ms-actions-padding, calc(.8 * var(--ms-rem)));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, calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem)));font-size:var(--ms-action-btn-font-size, calc(1.2 * var(--ms-rem)));border:var(--ms-action-btn-border, 1px solid #e5e7eb);border-radius:var(--ms-action-btn-border-radius, calc(.4 * var(--ms-rem)));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, calc(.4 * var(--ms-rem)) 0);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg, #d1d5db) var(--ms-scrollbar-track-bg, transparent)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width, 8px)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg, transparent)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg, #d1d5db);border-radius:var(--ms-scrollbar-thumb-border-radius, 4px)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover, #6b7280)}.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, calc(.4 * var(--ms-rem)));padding-top:var(--ms-group-padding-top, calc(.4 * var(--ms-rem)))}.ms__group-label{padding:var(--ms-group-label-padding, calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem)));font-size:var(--ms-group-label-font-size, calc(1.2 * var(--ms-rem)));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, calc(.8 * var(--ms-rem)));padding:var(--ms-option-padding, calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem)));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);color:var(--ms-option-color-hover, inherit)}.ms__option--focused{background:var(--ms-option-background-focused, #f9fafb);color:var(--ms-option-color-focused, inherit);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));color:var(--ms-option-color-matched, inherit);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));color:var(--ms-option-color-selected, inherit)}.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-background-selected, rgba(59, 130, 246, .1)));color:var(--ms-option-color-selected-hover, var(--ms-option-color-selected, inherit))}.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{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top, calc(.2 * var(--ms-rem)));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, calc(1.6 * var(--ms-rem)));height:var(--ms-checkbox-size, calc(1.6 * var(--ms-rem)));transform:scale(var(--ms-checkbox-scale, 1));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg, #ffffff);border:var(--ms-checkbox-border, 1px solid #d1d5db);border-radius:var(--ms-checkbox-border-radius, calc(.3 * var(--ms-rem)));transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;left:50%;top:45%;width:30%;height:55%;transform:translate(-50%,-50%) rotate(45deg);border:solid var(--ms-checkbox-checkmark-color, #ffffff);border-width:0 2px 2px 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color, #3b82f6)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg, #3b82f6);border:var(--ms-checkbox-checked-border, 1px solid #3b82f6)}.ms__checkbox:checked:after{display:block}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg, #3b82f6);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg, #e5e7eb);border:var(--ms-checkbox-disabled-border, 1px solid #e5e7eb);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg, #e5e7eb)}.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, calc(.8 * var(--ms-rem)));min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size, calc(2 * var(--ms-rem)));height:var(--ms-option-icon-size, calc(2 * var(--ms-rem)));display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size, calc(1.6 * var(--ms-rem)))}.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, calc(1.4 * var(--ms-rem)));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, calc(.4 * var(--ms-rem)));font-size:var(--ms-option-subtitle-font-size, calc(1.2 * var(--ms-rem)));color:var(--ms-option-subtitle-color, #6b7280);line-height:var(--ms-option-subtitle-line-height, 1.3)}.ms__empty{padding:var(--ms-empty-padding, calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem)));text-align:center;font-size:var(--ms-empty-font-size, calc(1.4 * var(--ms-rem)));color:var(--ms-empty-color, #6b7280)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--ms-loader-padding, calc(1.6 * var(--ms-rem)));gap:var(--ms-loader-gap, calc(.8 * var(--ms-rem)))}.ms__loading-text{font-size:var(--ms-loading-text-font-size, calc(1.4 * var(--ms-rem)));color:var(--ms-loading-color, #6b7280)}.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap, calc(.8 * var(--ms-rem)));padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom, calc(.8 * var(--ms-rem)))}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top, calc(.8 * var(--ms-rem)));order:var(--ms-order-first, -1)}.ms__badges--left{order:var(--ms-order-first, -1);margin-right:var(--ms-badges-margin-left, calc(.4 * var(--ms-rem)));justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right, calc(.4 * var(--ms-rem)));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, calc(.8 * var(--ms-rem)))}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top, calc(.8 * var(--ms-rem)));order:var(--ms-order-first, -1)}.ms__count-display--left{order:var(--ms-order-first, -1);margin-right:var(--ms-count-display-margin-left, calc(.8 * var(--ms-rem)));justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right, calc(.8 * var(--ms-rem)));justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap, calc(.4 * var(--ms-rem)));background:var(--ms-counter-wrapper-background, transparent);border:var(--ms-counter-wrapper-border, 1px solid #e5e7eb);border-radius:var(--ms-counter-wrapper-border-radius, calc(.4 * var(--ms-rem)));padding:var(--ms-counter-wrapper-padding, calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem)));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, calc(1.4 * var(--ms-rem)));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, calc(1.6 * var(--ms-rem)));height:var(--ms-count-clear-size, calc(1.6 * var(--ms-rem)));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, calc(1.8 * var(--ms-rem)));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, calc(2.7 * var(--ms-rem)));font-size:var(--ms-badge-font-size, calc(1.2 * var(--ms-rem)));font-weight:var(--ms-badge-font-weight, 600);line-height:var(--ms-line-height-none, 1);border-radius:var(--ms-badge-border-radius, calc(.6 * var(--ms-rem)));border:var(--ms-badge-border, none);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;height:100%;padding:var(--ms-badge-text-padding, 0 calc(.8 * var(--ms-rem)));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, calc(2.7 * var(--ms-rem)));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, calc(1.2 * var(--ms-rem)))}.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, calc(1.6 * var(--ms-rem)));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, calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem)));border-radius:var(--ms-tooltip-border-radius, calc(.6 * var(--ms-rem)));font-size:var(--ms-tooltip-font-size, calc(1.4 * var(--ms-rem)));line-height:var(--ms-line-height-relaxed, 1.4);max-width:var(--ms-tooltip-max-width, calc(32 * var(--ms-rem)));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, calc(.6 * var(--ms-rem)));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, calc(32 * var(--ms-rem)));max-height:var(--ms-selected-popover-max-height, calc(32 * var(--ms-rem)));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, calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem)));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, calc(1.4 * var(--ms-rem)));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, calc(2.4 * var(--ms-rem)));height:var(--ms-popover-close-size, calc(2.4 * var(--ms-rem)));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, calc(2 * var(--ms-rem)));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, calc(.4 * var(--ms-rem)));padding:var(--ms-selected-popover-body-padding, calc(.8 * var(--ms-rem)));overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height, calc(28.8 * var(--ms-rem)));scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg, #d1d5db) var(--ms-scrollbar-track-bg, transparent)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width, 8px)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg, transparent)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg, #d1d5db);border-radius:var(--ms-scrollbar-thumb-border-radius, 4px)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover, #6b7280)}.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, calc(.4 * var(--ms-rem)));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, calc(4 * var(--ms-rem)));padding-right:var(--ms-input-padding-h, calc(1.2 * var(--ms-rem)))}.ms--rtl .ms__toggle{left:var(--ms-toggle-right, calc(1.2 * var(--ms-rem)))!important;right:auto!important}.ms--rtl .ms__counter{left:var(--ms-counter-offset, calc(3.2 * var(--ms-rem)))!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, calc(.8 * var(--ms-rem)));margin-right:0}.ms--rtl .ms__option-content{text-align:right}.ms--rtl .ms__option-icon{margin-left:var(--ms-spacing-xs, calc(.4 * var(--ms-rem)));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, calc(.6 * var(--ms-rem))) 0 0 var(--ms-badge-remove-border-radius-rtl, calc(.6 * var(--ms-rem)));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, calc(.6 * var(--ms-rem))) var(--ms-badge-text-border-radius-rtl, calc(.6 * var(--ms-rem))) 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, calc(1.2 * var(--ms-rem)))}.ms--xs .ms__option{padding:var(--ms-spacing-xs, calc(.4 * var(--ms-rem))) var(--ms-spacing-sm, calc(.8 * var(--ms-rem)))}.ms--xs .ms__option-title{font-size:var(--ms-font-size-xs, calc(1.2 * var(--ms-rem)))}.ms--xs .ms__badge{font-size:var(--ms-font-size-2xs, calc(1 * var(--ms-rem)))}.ms--sm .ms__input,.ms--sm .ms__option-title{font-size:var(--ms-font-size-xs, calc(1.2 * var(--ms-rem)))}.ms--lg .ms__input,.ms--lg .ms__option-title{font-size:var(--ms-font-size-base, calc(1.6 * var(--ms-rem)))}.ms--lg .ms__badge{font-size:var(--ms-font-size-sm, calc(1.4 * var(--ms-rem)))}.ms--xl .ms__input,.ms--xl .ms__option-title{font-size:var(--ms-font-size-lg, calc(1.8 * var(--ms-rem)))}.ms--xl .ms__badge{font-size:var(--ms-font-size-base, calc(1.6 * var(--ms-rem)))}.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, calc(1.2 * var(--ms-rem)))}.ms--no-checkboxes .ms__option-content{padding-left:0}.ml-debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:calc(.6 * var(--ms-rem));font-size:calc(1.2 * var(--ms-rem));color:#111827}.ml-debug-info details summary{cursor:pointer;font-weight:600;color:#2563eb;-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:calc(.4 * var(--ms-rem))}.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:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:#fff;border-radius:calc(.4 * var(--ms-rem))}.ml-debug-info .ml-debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ml-debug-info .ml-debug-stats span:before{content:"•";margin-right:calc(.4 * var(--ms-rem));color:#3b82f6}', bs = typeof HTMLElement < "u" ? HTMLElement : class {
|
|
2438
2438
|
}, Se = /* @__PURE__ */ new Set();
|
|
2439
|
-
function
|
|
2439
|
+
function rt() {
|
|
2440
2440
|
return Array.from(Se);
|
|
2441
2441
|
}
|
|
2442
|
-
class
|
|
2442
|
+
class at extends bs {
|
|
2443
2443
|
constructor() {
|
|
2444
2444
|
super();
|
|
2445
2445
|
p(this, "picker");
|
|
@@ -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,27 +2578,27 @@ 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
|
-
|
|
2569
|
-
const o = document.createElement("details"),
|
|
2570
|
-
|
|
2571
|
-
const
|
|
2572
|
-
|
|
2581
|
+
const s = document.createElement("div");
|
|
2582
|
+
s.className = "ml-debug-info";
|
|
2583
|
+
const o = document.createElement("details"), r = document.createElement("summary");
|
|
2584
|
+
r.textContent = "Debug Info";
|
|
2585
|
+
const a = document.createElement("div");
|
|
2586
|
+
a.className = "ml-debug-stats", o.appendChild(r), o.appendChild(a), s.appendChild(o), this.shadow.appendChild(s), this.updateDebugInfo();
|
|
2573
2587
|
}
|
|
2574
2588
|
updateDebugInfo() {
|
|
2575
|
-
var
|
|
2589
|
+
var m, g;
|
|
2576
2590
|
const t = this.shadow.querySelector(".ml-debug-stats");
|
|
2577
2591
|
if (!t || !this.picker) return;
|
|
2578
|
-
const
|
|
2592
|
+
const s = "1.3.0", o = rt().length, a = this.picker.getSelected().length, n = ((m = this._options) == null ? void 0 : m.length) || 0, l = this.picker, c = l.isOpen || !1, d = l.searchTerm || "", h = 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
|
-
<span>Options: ${
|
|
2596
|
+
<span>Options: ${n}</span>
|
|
2583
2597
|
<span>Filtered: ${u}</span>
|
|
2584
|
-
<span>Selected: ${
|
|
2598
|
+
<span>Selected: ${a}</span>
|
|
2585
2599
|
<span>Dropdown: ${c ? "Open" : "Closed"}</span>
|
|
2586
2600
|
<span>Search: ${d || "none"}</span>
|
|
2587
|
-
<span>Loading: ${
|
|
2601
|
+
<span>Loading: ${h ? "Yes" : "No"}</span>
|
|
2588
2602
|
`, setTimeout(() => {
|
|
2589
2603
|
this.getAttribute("show-debug-info") === "true" && this.updateDebugInfo();
|
|
2590
2604
|
}, 500);
|
|
@@ -2594,30 +2608,30 @@ class rt extends bs {
|
|
|
2594
2608
|
* Returns array of options in the format expected by the picker
|
|
2595
2609
|
*/
|
|
2596
2610
|
parseDeclarativeOptions() {
|
|
2597
|
-
var
|
|
2598
|
-
const t = [],
|
|
2599
|
-
if (
|
|
2611
|
+
var r, a, n, l;
|
|
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
|
-
const d = c,
|
|
2605
|
-
value: d.value || ((
|
|
2606
|
-
label: ((
|
|
2618
|
+
const d = c, h = {
|
|
2619
|
+
value: d.value || ((r = d.textContent) == null ? void 0 : r.trim()) || "",
|
|
2620
|
+
label: ((a = d.textContent) == null ? void 0 : a.trim()) || d.value || ""
|
|
2607
2621
|
};
|
|
2608
|
-
d.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(
|
|
2622
|
+
d.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(h.value)), d.hasAttribute("disabled") && (h.disabled = !0), d.hasAttribute("data-icon") && (h.icon = d.getAttribute("data-icon")), d.hasAttribute("data-subtitle") && (h.subtitle = d.getAttribute("data-subtitle")), t.push(h), o = !0;
|
|
2609
2623
|
} else if (c.tagName === "OPTGROUP") {
|
|
2610
|
-
const d = c,
|
|
2611
|
-
for (const
|
|
2624
|
+
const d = c, h = d.label || d.getAttribute("label") || "Group", u = Array.from(d.querySelectorAll("option"));
|
|
2625
|
+
for (const m of u) {
|
|
2612
2626
|
const g = {
|
|
2613
|
-
value:
|
|
2614
|
-
label: ((l =
|
|
2615
|
-
group:
|
|
2627
|
+
value: m.value || ((n = m.textContent) == null ? void 0 : n.trim()) || "",
|
|
2628
|
+
label: ((l = m.textContent) == null ? void 0 : l.trim()) || m.value || "",
|
|
2629
|
+
group: h
|
|
2616
2630
|
};
|
|
2617
|
-
|
|
2631
|
+
m.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(g.value)), m.hasAttribute("disabled") && (g.disabled = !0), m.hasAttribute("data-icon") && (g.icon = m.getAttribute("data-icon")), m.hasAttribute("data-subtitle") && (g.subtitle = m.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
|
}
|
|
@@ -2631,11 +2645,11 @@ class rt extends bs {
|
|
|
2631
2645
|
if (o)
|
|
2632
2646
|
try {
|
|
2633
2647
|
t = JSON.parse(o);
|
|
2634
|
-
} catch (
|
|
2635
|
-
S.error("[MultiSelectElement] Failed to parse initial-values:",
|
|
2648
|
+
} catch (r) {
|
|
2649
|
+
S.error("[MultiSelectElement] Failed to parse initial-values:", r);
|
|
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...",
|
|
@@ -2711,36 +2725,36 @@ class rt extends bs {
|
|
|
2711
2725
|
badgeTooltipDelay: parseInt(this.getAttribute("badge-tooltip-delay") || "300"),
|
|
2712
2726
|
badgeTooltipOffset: parseInt(this.getAttribute("badge-tooltip-offset") || "8"),
|
|
2713
2727
|
// Count badge callback
|
|
2714
|
-
getCounterCallback: this._getCounterCallback || ((o,
|
|
2728
|
+
getCounterCallback: this._getCounterCallback || ((o, r) => r !== void 0 ? `+${r} more` : `${o} selected`),
|
|
2715
2729
|
// Data and callbacks
|
|
2716
2730
|
options: this._options,
|
|
2717
2731
|
beforeSearchCallback: this._beforeSearchCallback,
|
|
2718
2732
|
searchCallback: this._searchCallback,
|
|
2719
2733
|
addNewCallback: this._addNewCallback,
|
|
2720
2734
|
selectCallback: (o) => {
|
|
2721
|
-
var
|
|
2735
|
+
var r;
|
|
2722
2736
|
this._selectCallback && this._selectCallback(o), this.dispatchEvent(new CustomEvent("select", {
|
|
2723
2737
|
detail: {
|
|
2724
2738
|
option: o,
|
|
2725
|
-
selectedOptions: (
|
|
2739
|
+
selectedOptions: (r = this.picker) == null ? void 0 : r.getSelected(),
|
|
2726
2740
|
selectedValues: (() => {
|
|
2727
|
-
var
|
|
2728
|
-
const
|
|
2729
|
-
return
|
|
2741
|
+
var n;
|
|
2742
|
+
const a = (n = this.picker) == null ? void 0 : n.getValue();
|
|
2743
|
+
return a == null ? [] : Array.isArray(a) ? a : [a];
|
|
2730
2744
|
})()
|
|
2731
2745
|
}
|
|
2732
2746
|
}));
|
|
2733
2747
|
},
|
|
2734
2748
|
deselectCallback: (o) => {
|
|
2735
|
-
var
|
|
2749
|
+
var r;
|
|
2736
2750
|
this._deselectCallback && this._deselectCallback(o), this.dispatchEvent(new CustomEvent("deselect", {
|
|
2737
2751
|
detail: {
|
|
2738
2752
|
option: o,
|
|
2739
|
-
selectedOptions: (
|
|
2753
|
+
selectedOptions: (r = this.picker) == null ? void 0 : r.getSelected(),
|
|
2740
2754
|
selectedValues: (() => {
|
|
2741
|
-
var
|
|
2742
|
-
const
|
|
2743
|
-
return
|
|
2755
|
+
var n;
|
|
2756
|
+
const a = (n = this.picker) == null ? void 0 : n.getValue();
|
|
2757
|
+
return a == null ? [] : Array.isArray(a) ? a : [a];
|
|
2744
2758
|
})()
|
|
2745
2759
|
}
|
|
2746
2760
|
}));
|
|
@@ -2750,9 +2764,9 @@ class rt extends bs {
|
|
|
2750
2764
|
detail: {
|
|
2751
2765
|
selectedOptions: o,
|
|
2752
2766
|
selectedValues: (() => {
|
|
2753
|
-
var
|
|
2754
|
-
const
|
|
2755
|
-
return
|
|
2767
|
+
var a;
|
|
2768
|
+
const r = (a = this.picker) == null ? void 0 : a.getValue();
|
|
2769
|
+
return r == null ? [] : Array.isArray(r) ? r : [r];
|
|
2756
2770
|
})()
|
|
2757
2771
|
}
|
|
2758
2772
|
}));
|
|
@@ -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
|
-
const
|
|
2769
|
-
|
|
2782
|
+
const r = document.createElement("style");
|
|
2783
|
+
r.className = "ml-custom-styles", r.textContent = o, this.shadow.appendChild(r);
|
|
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
|
-
const
|
|
2861
|
-
|
|
2875
|
+
const r = document.createElement("style");
|
|
2876
|
+
r.className = "ml-custom-styles", r.textContent = s, this.shadow.appendChild(r), 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
|
}
|
|
@@ -3066,12 +3088,12 @@ class rt extends bs {
|
|
|
3066
3088
|
this.picker && this.picker.destroy();
|
|
3067
3089
|
}
|
|
3068
3090
|
}
|
|
3069
|
-
typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect",
|
|
3091
|
+
typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect", at));
|
|
3070
3092
|
typeof window < "u" && (window.components = window.components || {}, window.components["web-multiselect"] = {
|
|
3071
|
-
version: () => "1.
|
|
3093
|
+
version: () => "1.3.0",
|
|
3072
3094
|
config: {
|
|
3073
3095
|
name: "@keenmate/web-multiselect",
|
|
3074
|
-
version: "1.
|
|
3096
|
+
version: "1.3.0",
|
|
3075
3097
|
author: "Keenmate",
|
|
3076
3098
|
license: "MIT",
|
|
3077
3099
|
repository: "git+https://github.com/keenmate/web-multiselect.git",
|
|
@@ -3079,26 +3101,26 @@ typeof window < "u" && (window.components = window.components || {}, window.comp
|
|
|
3079
3101
|
},
|
|
3080
3102
|
logging: {
|
|
3081
3103
|
enableLogging: ds,
|
|
3082
|
-
disableLogging:
|
|
3104
|
+
disableLogging: ms,
|
|
3083
3105
|
setLogLevel: ps,
|
|
3084
|
-
setCategoryLevel:
|
|
3106
|
+
setCategoryLevel: hs,
|
|
3085
3107
|
getCategories: () => [...cs]
|
|
3086
3108
|
},
|
|
3087
3109
|
register: () => {
|
|
3088
|
-
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect",
|
|
3110
|
+
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", at);
|
|
3089
3111
|
},
|
|
3090
|
-
getInstances: () =>
|
|
3112
|
+
getInstances: () => rt()
|
|
3091
3113
|
});
|
|
3092
3114
|
export {
|
|
3093
3115
|
cs as LOGGING_CATEGORIES,
|
|
3094
|
-
|
|
3116
|
+
at as MultiSelectElement,
|
|
3095
3117
|
us as WebMultiSelect,
|
|
3096
3118
|
S as dataLogger,
|
|
3097
|
-
|
|
3119
|
+
ms as disableLogging,
|
|
3098
3120
|
ds as enableLogging,
|
|
3099
3121
|
le as initLogger,
|
|
3100
3122
|
A as interactionLogger,
|
|
3101
|
-
|
|
3123
|
+
hs as setCategoryLevel,
|
|
3102
3124
|
ps as setLogLevel,
|
|
3103
3125
|
f as uiLogger
|
|
3104
3126
|
};
|