@flexilla/alpine-dropdown 0.0.1 → 0.0.2
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/dist/cdn.js +84 -73
- package/dist/cdn.min.js +1 -1
- package/dist/module.cjs.js +84 -73
- package/dist/module.esm.js +84 -73
- package/package.json +3 -3
package/dist/cdn.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
// ../../node_modules/@flexilla/dropdown/dist/dropdown.js
|
|
3
3
|
var j = Object.defineProperty;
|
|
4
4
|
var q = (s, e, t) => e in s ? j(s, e, { enumerable: true, configurable: true, writable: true, value: t }) : s[e] = t;
|
|
5
|
-
var
|
|
5
|
+
var a = (s, e, t) => q(s, typeof e != "symbol" ? e + "" : e, t);
|
|
6
6
|
var B = Object.defineProperty;
|
|
7
7
|
var N = (s, e, t) => e in s ? B(s, e, { enumerable: true, configurable: true, writable: true, value: t }) : s[e] = t;
|
|
8
|
-
var
|
|
8
|
+
var l = (s, e, t) => N(s, typeof e != "symbol" ? e + "" : e, t);
|
|
9
9
|
var J = "bottom";
|
|
10
10
|
var Q = ({ reference: s, popper: e }) => {
|
|
11
11
|
if (!s || !e)
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
var ee = (s, e, t, n) => s <= n && t - s <= e;
|
|
34
34
|
var te = (s, e, t, n) => t <= n && -s <= e;
|
|
35
35
|
var ne = (s, e, t, n, o, i) => {
|
|
36
|
-
const r = o - t - i,
|
|
37
|
-
return s() ? 0 : e() ?
|
|
36
|
+
const r = o - t - i, h = t - n, g = t + i - n + (o - t - i), d = r >= 0 ? o - n : h >= 0 ? t - n : t;
|
|
37
|
+
return s() ? 0 : e() ? g : d;
|
|
38
38
|
};
|
|
39
39
|
var se = (s, e, t, n) => s <= t && e - s - n >= s;
|
|
40
40
|
var ie = (s, e) => s >= e;
|
|
@@ -46,27 +46,27 @@
|
|
|
46
46
|
refHeight: o,
|
|
47
47
|
popperWidth: i,
|
|
48
48
|
popperHeight: r,
|
|
49
|
-
windowHeight:
|
|
50
|
-
windowWidth:
|
|
49
|
+
windowHeight: h,
|
|
50
|
+
windowWidth: g,
|
|
51
51
|
offsetDistance: d
|
|
52
52
|
}) => {
|
|
53
|
-
const c =
|
|
54
|
-
() => te(t, o, r,
|
|
55
|
-
() => ee(t, o, r,
|
|
53
|
+
const c = g - n - e, f = n, v = h - t - o, m = t, w = () => _(
|
|
54
|
+
() => te(t, o, r, h),
|
|
55
|
+
() => ee(t, o, r, h),
|
|
56
56
|
t,
|
|
57
57
|
o,
|
|
58
58
|
r
|
|
59
59
|
), y = () => ne(
|
|
60
|
-
() => se(n,
|
|
60
|
+
() => se(n, g, i, e),
|
|
61
61
|
() => ie(n, i),
|
|
62
62
|
n,
|
|
63
63
|
i,
|
|
64
|
-
|
|
64
|
+
g,
|
|
65
65
|
e
|
|
66
|
-
), H = () => Y(i, e, n,
|
|
66
|
+
), H = () => Y(i, e, n, g) ? n + e / 2 - i / 2 : y(), T = () => Z(r, o, t, h) ? t + o / 2 - r / 2 : w(), C = () => n + i <= g ? n : y(), O = () => n + e - i >= 0 ? n + e - i : y(), L = () => t + r <= h ? t : w(), G = () => t + o - r >= 0 ? t + o - r : w();
|
|
67
67
|
let u = 0, E = 0;
|
|
68
|
-
const M = t - r - d, k = t + o + d,
|
|
69
|
-
switch (s.startsWith("top") ? E = P ? M : F ? k : Math.max(M, k) : s.startsWith("bottom") ? E = F ? k : P ? M : Math.max(k) : s.startsWith("left") ? u = R ?
|
|
68
|
+
const M = t - r - d, k = t + o + d, D = n - i - d, I = n + e + d, P = m >= r + d, F = v >= r + d, R = f >= i + d, $ = c >= i + d;
|
|
69
|
+
switch (s.startsWith("top") ? E = P ? M : F ? k : Math.max(M, k) : s.startsWith("bottom") ? E = F ? k : P ? M : Math.max(k) : s.startsWith("left") ? u = R ? D : $ ? I : Math.max(D, I) : s.startsWith("right") && (u = $ ? I : R ? D : Math.max(I, D)), s) {
|
|
70
70
|
case "bottom":
|
|
71
71
|
case "bottom-middle":
|
|
72
72
|
case "top":
|
|
@@ -77,11 +77,11 @@
|
|
|
77
77
|
case "left-middle":
|
|
78
78
|
case "right":
|
|
79
79
|
case "right-middle":
|
|
80
|
-
E =
|
|
80
|
+
E = T();
|
|
81
81
|
break;
|
|
82
82
|
case "bottom-start":
|
|
83
83
|
case "top-start":
|
|
84
|
-
u =
|
|
84
|
+
u = C();
|
|
85
85
|
break;
|
|
86
86
|
case "bottom-end":
|
|
87
87
|
case "top-end":
|
|
@@ -132,15 +132,15 @@
|
|
|
132
132
|
}), p(this, "initPlacement", () => {
|
|
133
133
|
var c;
|
|
134
134
|
this.validateElements(), this.setInitialStyles();
|
|
135
|
-
const f = window.innerWidth, v = window.innerHeight, { popperHeight:
|
|
135
|
+
const f = window.innerWidth, v = window.innerHeight, { popperHeight: m, popperWidth: w, refHeight: y, refWidth: H, refLeft: T, refTop: C } = Q({ reference: this.reference, popper: this.popper }), { x: O, y: L } = oe(
|
|
136
136
|
{
|
|
137
137
|
placement: this.placement,
|
|
138
138
|
refWidth: H,
|
|
139
|
-
refTop:
|
|
140
|
-
refLeft:
|
|
139
|
+
refTop: C,
|
|
140
|
+
refLeft: T,
|
|
141
141
|
popperWidth: w,
|
|
142
142
|
refHeight: y,
|
|
143
|
-
popperHeight:
|
|
143
|
+
popperHeight: m,
|
|
144
144
|
windowHeight: v,
|
|
145
145
|
windowWidth: f,
|
|
146
146
|
offsetDistance: this.offsetDistance
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
offsetDistance: o = 10,
|
|
163
163
|
placement: i = J,
|
|
164
164
|
eventEffect: r = {},
|
|
165
|
-
onUpdate:
|
|
165
|
+
onUpdate: h
|
|
166
166
|
} = n;
|
|
167
167
|
if (!(e instanceof HTMLElement))
|
|
168
168
|
throw new Error("Invalid HTMLElement for Reference Element");
|
|
@@ -170,8 +170,8 @@
|
|
|
170
170
|
throw new Error("Invalid HTMLElement for Popper");
|
|
171
171
|
if (n.offsetDistance && typeof n.offsetDistance != "number")
|
|
172
172
|
throw new Error("OffsetDistance must be a number");
|
|
173
|
-
const { disableOnResize:
|
|
174
|
-
this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = o, this.placement = i, this.disableOnResize =
|
|
173
|
+
const { disableOnResize: g, disableOnScroll: d } = r;
|
|
174
|
+
this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = o, this.placement = i, this.disableOnResize = g || false, this.disableOnScroll = d || false, this.onUpdate = h;
|
|
175
175
|
}
|
|
176
176
|
/**
|
|
177
177
|
* Updates popper configuration and recalculates position
|
|
@@ -197,10 +197,10 @@
|
|
|
197
197
|
}) => {
|
|
198
198
|
const o = getComputedStyle(s), i = o.transition;
|
|
199
199
|
if (i !== "none" && i !== "" && !n.includes(i)) {
|
|
200
|
-
const r = "transitionend",
|
|
201
|
-
s.removeEventListener(r,
|
|
200
|
+
const r = "transitionend", h = () => {
|
|
201
|
+
s.removeEventListener(r, h), e();
|
|
202
202
|
};
|
|
203
|
-
s.addEventListener(r,
|
|
203
|
+
s.addEventListener(r, h, { once: true });
|
|
204
204
|
} else
|
|
205
205
|
e();
|
|
206
206
|
};
|
|
@@ -216,10 +216,11 @@
|
|
|
216
216
|
});
|
|
217
217
|
};
|
|
218
218
|
var b = ({ state: s, trigger: e, popper: t }) => {
|
|
219
|
+
const n = s === "open";
|
|
219
220
|
A(t, {
|
|
220
221
|
"data-state": s
|
|
221
222
|
}), A(e, {
|
|
222
|
-
"aria-expanded": `${
|
|
223
|
+
"aria-expanded": `${n}`
|
|
223
224
|
});
|
|
224
225
|
};
|
|
225
226
|
var ce = class {
|
|
@@ -229,43 +230,47 @@
|
|
|
229
230
|
* @param {string | HTMLElement} params.trigger - The trigger element selector or HTMLElement
|
|
230
231
|
* @param {string | HTMLElement} params.content - The content element selector or HTMLElement
|
|
231
232
|
* @param {OverlayOptions} [params.options] - Configuration options for the overlay
|
|
232
|
-
* @throws {Error} When trigger or content elements are invalid
|
|
233
233
|
*/
|
|
234
234
|
constructor({ trigger: e, content: t, options: n = {} }) {
|
|
235
|
-
|
|
235
|
+
l(this, "triggerElement"), l(this, "contentElement"), l(this, "triggerStrategy"), l(this, "placement"), l(this, "offsetDistance"), l(this, "preventFromCloseOutside"), l(this, "preventFromCloseInside"), l(this, "options"), l(this, "defaultState"), l(this, "popper"), l(this, "eventEffect"), l(this, "getElement", (i) => typeof i == "string" ? ae(i) : i instanceof HTMLElement ? i : void 0), l(this, "handleDocumentClick", (i) => {
|
|
236
236
|
this.contentElement.getAttribute("data-state") === "open" && (!this.triggerElement.contains(i.target) && !this.preventFromCloseInside && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(i.target) && !this.contentElement.contains(i.target) && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(i.target) && !this.contentElement.contains(i.target) && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(i.target) && this.contentElement.contains(i.target) && !this.preventFromCloseInside && this.hide());
|
|
237
|
-
}),
|
|
237
|
+
}), l(this, "handleKeyDown", (i) => {
|
|
238
238
|
i.preventDefault(), this.triggerStrategy !== "hover" && i.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
|
|
239
|
-
}),
|
|
239
|
+
}), l(this, "toggleStateOnClick", () => {
|
|
240
240
|
(this.contentElement.dataset.state || "close") === "close" ? (this.show(), this.triggerStrategy === "hover" && this.addEventOnMouseEnter()) : this.hide();
|
|
241
|
-
}),
|
|
241
|
+
}), l(this, "hideOnMouseLeaseTrigger", () => {
|
|
242
242
|
setTimeout(() => {
|
|
243
243
|
this.contentElement.matches(":hover") || this.hide();
|
|
244
244
|
}, 150);
|
|
245
|
-
}),
|
|
245
|
+
}), l(this, "hideOnMouseLeave", () => {
|
|
246
246
|
setTimeout(() => {
|
|
247
247
|
this.triggerElement.matches(":hover") || this.hide();
|
|
248
248
|
}, 150);
|
|
249
|
-
}),
|
|
249
|
+
}), l(this, "addEventOnMouseEnter", () => {
|
|
250
250
|
this.triggerElement.addEventListener("mouseleave", this.hideOnMouseLeaseTrigger), this.contentElement.addEventListener("mouseleave", this.hideOnMouseLeave);
|
|
251
|
-
}),
|
|
251
|
+
}), l(this, "showOnMouseEnter", () => {
|
|
252
252
|
this.show(), this.addEventOnMouseEnter();
|
|
253
|
-
}),
|
|
254
|
-
var
|
|
253
|
+
}), l(this, "setShowOptions", ({ placement: i, offsetDistance: r }) => {
|
|
254
|
+
var h, g, d, c;
|
|
255
255
|
this.popper.setOptions({
|
|
256
256
|
placement: i,
|
|
257
257
|
offsetDistance: r
|
|
258
|
-
}), document.addEventListener("keydown", this.handleKeyDown), document.addEventListener("click", this.handleDocumentClick), (
|
|
258
|
+
}), document.addEventListener("keydown", this.handleKeyDown), document.addEventListener("click", this.handleDocumentClick), (g = (h = this.options).beforeShow) == null || g.call(h), b({
|
|
259
259
|
state: "open",
|
|
260
260
|
popper: this.contentElement,
|
|
261
261
|
trigger: this.triggerElement
|
|
262
262
|
}), this.onToggleState(false), (c = (d = this.options).onShow) == null || c.call(d);
|
|
263
|
-
}),
|
|
263
|
+
}), l(this, "setPopperOptions", ({ placement: i, offsetDistance: r }) => {
|
|
264
264
|
this.popper.setOptions({
|
|
265
265
|
placement: i,
|
|
266
|
-
offsetDistance: r
|
|
266
|
+
offsetDistance: r || this.offsetDistance
|
|
267
267
|
});
|
|
268
|
-
}),
|
|
268
|
+
}), l(this, "setPopperTrigger", (i, r) => {
|
|
269
|
+
this.cleanup(), this.popper.setOptions({
|
|
270
|
+
placement: r.placement || this.placement,
|
|
271
|
+
offsetDistance: r.offsetDistance || this.offsetDistance
|
|
272
|
+
}), this.triggerElement = i, this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
|
|
273
|
+
}), l(this, "cleanup", () => {
|
|
269
274
|
this.triggerElement.removeEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.removeEventListener("mouseenter", this.showOnMouseEnter);
|
|
270
275
|
});
|
|
271
276
|
var o;
|
|
@@ -334,32 +339,32 @@
|
|
|
334
339
|
var de = (s) => typeof s == "string" ? W(s) : s;
|
|
335
340
|
var pe = ({ containerElement: s, targetChildren: e = "a:not([disabled]), button:not([disabled])", direction: t }) => {
|
|
336
341
|
let n = false;
|
|
337
|
-
const o = de(s) || document.body, i = typeof e == "string" ? U(e, o) : e, r = (
|
|
338
|
-
if (
|
|
342
|
+
const o = de(s) || document.body, i = typeof e == "string" ? U(e, o) : e, r = (h) => {
|
|
343
|
+
if (h.preventDefault(), o.focus(), i.length === 0)
|
|
339
344
|
return;
|
|
340
|
-
const
|
|
341
|
-
let c = i.findIndex((
|
|
345
|
+
const g = h.key, d = document.activeElement;
|
|
346
|
+
let c = i.findIndex((m) => m === d);
|
|
342
347
|
if (c === -1) {
|
|
343
|
-
|
|
348
|
+
g === "ArrowUp" || g === "ArrowLeft" ? i[i.length - 1].focus() : i[0].focus();
|
|
344
349
|
return;
|
|
345
350
|
}
|
|
346
|
-
const f = (
|
|
347
|
-
switch (
|
|
351
|
+
const f = (m) => m > 0 ? m - 1 : i.length - 1, v = (m) => m < i.length - 1 ? m + 1 : 0;
|
|
352
|
+
switch (g) {
|
|
348
353
|
case "ArrowDown":
|
|
349
|
-
|
|
354
|
+
h.preventDefault(), c = v(c);
|
|
350
355
|
break;
|
|
351
356
|
case "ArrowRight":
|
|
352
357
|
break;
|
|
353
358
|
case "ArrowUp":
|
|
354
|
-
|
|
359
|
+
h.preventDefault(), c = f(c);
|
|
355
360
|
break;
|
|
356
361
|
case "ArrowLeft":
|
|
357
362
|
break;
|
|
358
363
|
case "Home":
|
|
359
|
-
|
|
364
|
+
h.preventDefault(), c = 0;
|
|
360
365
|
break;
|
|
361
366
|
case "End":
|
|
362
|
-
|
|
367
|
+
h.preventDefault(), c = i.length - 1;
|
|
363
368
|
break;
|
|
364
369
|
default:
|
|
365
370
|
return;
|
|
@@ -406,49 +411,55 @@
|
|
|
406
411
|
* @throws {Error} If provided elements are not valid HTMLElements
|
|
407
412
|
*/
|
|
408
413
|
constructor(e, t = {}) {
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
414
|
+
a(this, "triggerElement");
|
|
415
|
+
a(this, "contentElement");
|
|
416
|
+
a(this, "options");
|
|
417
|
+
a(this, "OverlayInstance");
|
|
418
|
+
a(this, "navigationKeys");
|
|
419
|
+
a(this, "triggerStrategy");
|
|
420
|
+
a(this, "placement");
|
|
421
|
+
a(this, "offsetDistance");
|
|
422
|
+
a(this, "preventFromCloseOutside");
|
|
423
|
+
a(this, "preventFromCloseInside");
|
|
424
|
+
a(this, "defaultState");
|
|
425
|
+
a(this, "onToggle", ({ isHidden: e2 }) => {
|
|
421
426
|
var t2, n2;
|
|
422
427
|
(n2 = (t2 = this.options).onToggle) == null || n2.call(t2, { isHidden: e2 });
|
|
423
428
|
});
|
|
424
|
-
|
|
429
|
+
a(this, "beforeShow", () => {
|
|
425
430
|
this.contentElement.focus(), this.navigationKeys.make();
|
|
426
431
|
});
|
|
427
|
-
|
|
432
|
+
a(this, "beforeHide", () => {
|
|
428
433
|
this.contentElement.blur(), this.navigationKeys.destroy();
|
|
429
434
|
});
|
|
430
|
-
|
|
435
|
+
a(this, "onShow", () => {
|
|
431
436
|
var e2, t2;
|
|
432
437
|
K(this.contentElement, "dropdown-show", {
|
|
433
438
|
isHidden: false
|
|
434
439
|
}), (t2 = (e2 = this.options).onShow) == null || t2.call(e2);
|
|
435
440
|
});
|
|
436
|
-
|
|
441
|
+
a(this, "onHide", () => {
|
|
437
442
|
var e2, t2;
|
|
438
443
|
K(this.contentElement, "dropdown-hide", {
|
|
439
444
|
isHidden: true
|
|
440
445
|
}), (t2 = (e2 = this.options).onHide) == null || t2.call(e2);
|
|
441
446
|
});
|
|
442
|
-
|
|
447
|
+
a(this, "show", () => {
|
|
443
448
|
this.OverlayInstance.show();
|
|
444
449
|
});
|
|
445
|
-
|
|
450
|
+
a(this, "hide", () => {
|
|
446
451
|
this.OverlayInstance.hide();
|
|
447
452
|
});
|
|
448
|
-
|
|
453
|
+
a(this, "setShowOptions", ({ placement: e2, offsetDistance: t2 }) => {
|
|
449
454
|
this.OverlayInstance.setShowOptions({ placement: e2, offsetDistance: t2 });
|
|
450
455
|
});
|
|
451
|
-
|
|
456
|
+
a(this, "setOptions", ({ placement: e2, offsetDistance: t2 }) => {
|
|
457
|
+
this.OverlayInstance.setPopperOptions({ placement: e2, offsetDistance: t2 });
|
|
458
|
+
});
|
|
459
|
+
a(this, "setPopperTrigger", (e2, t2) => {
|
|
460
|
+
this.OverlayInstance.setPopperTrigger(e2, t2);
|
|
461
|
+
});
|
|
462
|
+
a(this, "cleanup", () => {
|
|
452
463
|
this.OverlayInstance.cleanup(), x.removeInstance("dropdown", this.contentElement);
|
|
453
464
|
});
|
|
454
465
|
const n = typeof e == "string" ? W(e) : e;
|
|
@@ -500,7 +511,7 @@
|
|
|
500
511
|
new S2(e, t);
|
|
501
512
|
}
|
|
502
513
|
};
|
|
503
|
-
|
|
514
|
+
a(S, "autoInit", (e = "[data-fx-dropdown]") => {
|
|
504
515
|
const t = U(e);
|
|
505
516
|
for (const n of t)
|
|
506
517
|
new S(n);
|
package/dist/cdn.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var J=Object.defineProperty,Q=(n,e,t)=>e in n?J(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,h=(n,e,t)=>Q(n,typeof e!="symbol"?e+"":e,t),V=Object.defineProperty,X=(n,e,t)=>e in n?V(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,l=(n,e,t)=>X(n,typeof e!="symbol"?e+"":e,t),Y="bottom",Z=({reference:n,popper:e})=>{if(!n||!e)throw new Error("Reference or popper element is null or undefined");let t=new WeakMap,i=r=>(t.has(r)||t.set(r,r.getBoundingClientRect()),t.get(r)),o=i(e),s=i(n);return{popperHeight:o.height,popperWidth:o.width,refHeight:s.height,refWidth:s.width,refLeft:s.left,refTop:s.top,refRight:s.right}},_=Object.defineProperty,ee=(n,e,t)=>e in n?_(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,m=(n,e,t)=>ee(n,typeof e!="symbol"?e+"":e,t),te=(n,e,t,i)=>{let o=t,s=i-(t+e);return o>=(n-e)/2&&s>=(n-e)/2},ne=(n,e,t,i)=>(n-e)/2<=t&&t+n/2+e/2<=i,ie=(n,e,t,i,o)=>t>o-i?e()?window.innerHeight-o:t-o:n()?0:t+i,se=(n,e,t,i)=>n<=i&&t-n<=e,oe=(n,e,t,i)=>t<=i&&-n<=e,re=(n,e,t,i,o,s)=>{let r=o-t-s,a=t-i,c=t+s-i+(o-t-s),p=r>=0?o-i:a>=0?t-i:t;return n()?0:e()?c:p},ae=(n,e,t,i)=>n<=t&&e-n-i>=n,le=(n,e)=>n>=e,he=({placement:n,refWidth:e,refTop:t,refLeft:i,refHeight:o,popperWidth:s,popperHeight:r,windowHeight:a,windowWidth:c,offsetDistance:p})=>{let d=c-i-e,f=i,E=a-t-o,g=t,w=()=>ie(()=>oe(t,o,r,a),()=>se(t,o,r,a),t,o,r),y=()=>re(()=>ae(i,c,s,e),()=>le(i,s),i,s,c,e),I=()=>te(s,e,i,c)?i+e/2-s/2:y(),C=()=>ne(r,o,t,a)?t+o/2-r/2:w(),T=()=>i+s<=c?i:y(),O=()=>i+e-s>=0?i+e-s:y(),L=()=>t+r<=a?t:w(),N=()=>t+o-r>=0?t+o-r:w(),u=0,v=0,M=t-r-p,D=t+o+p,H=i-s-p,k=i+e+p,R=g>=r+p,$=E>=r+p,A=f>=s+p,K=d>=s+p;switch(n.startsWith("top")?v=R?M:$?D:Math.max(M,D):n.startsWith("bottom")?v=$?D:R?M:Math.max(D):n.startsWith("left")?u=A?H:K?k:Math.max(H,k):n.startsWith("right")&&(u=K?k:A?H:Math.max(k,H)),n){case"bottom":case"bottom-middle":case"top":case"top-middle":u=I();break;case"left":case"left-middle":case"right":case"right-middle":v=C();break;case"bottom-start":case"top-start":u=T();break;case"bottom-end":case"top-end":u=O();break;case"left-start":case"right-start":v=L();break;case"left-end":case"right-end":v=N();break}return{x:u,y:v}},x=class{constructor(e,t,i={}){m(this,"reference"),m(this,"popper"),m(this,"offsetDistance"),m(this,"placement"),m(this,"disableOnResize"),m(this,"disableOnScroll"),m(this,"onUpdate"),m(this,"isWindowEventsRegistered"),m(this,"validateElements",()=>{if(!(this.reference instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(this.popper instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(typeof this.offsetDistance!="number")throw new Error("OffsetDistance must be a number")}),m(this,"setPopperStyleProperty",(d,f)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${d}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${f}px`)}),m(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),m(this,"initPlacement",()=>{var d;this.validateElements(),this.setInitialStyles();let f=window.innerWidth,E=window.innerHeight,{popperHeight:g,popperWidth:w,refHeight:y,refWidth:I,refLeft:C,refTop:T}=Z({reference:this.reference,popper:this.popper}),{x:O,y:L}=he({placement:this.placement,refWidth:I,refTop:T,refLeft:C,popperWidth:w,refHeight:y,popperHeight:g,windowHeight:E,windowWidth:f,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(O,L),(d=this.onUpdate)==null||d.call(this,{x:O,y:L,placement:this.placement})}),m(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),m(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),m(this,"resetPosition",()=>{this.setInitialStyles()}),m(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),m(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:o=10,placement:s=Y,eventEffect:r={},onUpdate:a}=i;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(t instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(i.offsetDistance&&typeof i.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:c,disableOnScroll:p}=r;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=t,this.offsetDistance=o,this.placement=s,this.disableOnResize=c||!1,this.disableOnScroll=p||!1,this.onUpdate=a}setOptions({placement:e,offsetDistance:t}){this.placement=e,this.offsetDistance=t||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},ce=(n,e=document.body)=>e.querySelector(n),z=(n,e)=>{for(let[t,i]of Object.entries(e))n.setAttribute(t,i)},de=({element:n,callback:e,type:t,keysCheck:i})=>{let o=getComputedStyle(n),s=o.transition;if(s!=="none"&&s!==""&&!i.includes(s)){let r="transitionend",a=()=>{n.removeEventListener(r,a),e()};n.addEventListener(r,a,{once:!0})}else e()},pe=({element:n,callback:e})=>{de({element:n,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},b=({state:n,trigger:e,popper:t})=>{z(t,{"data-state":n}),z(e,{"aria-expanded":`${n}`})},W=class{constructor({trigger:e,content:t,options:i={}}){l(this,"triggerElement"),l(this,"contentElement"),l(this,"triggerStrategy"),l(this,"placement"),l(this,"offsetDistance"),l(this,"preventFromCloseOutside"),l(this,"preventFromCloseInside"),l(this,"options"),l(this,"defaultState"),l(this,"popper"),l(this,"eventEffect"),l(this,"getElement",s=>typeof s=="string"?ce(s):s instanceof HTMLElement?s:void 0),l(this,"handleDocumentClick",s=>{this.contentElement.getAttribute("data-state")==="open"&&(!this.triggerElement.contains(s.target)&&!this.preventFromCloseInside&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&!this.contentElement.contains(s.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&!this.contentElement.contains(s.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&this.contentElement.contains(s.target)&&!this.preventFromCloseInside&&this.hide())}),l(this,"handleKeyDown",s=>{s.preventDefault(),this.triggerStrategy!=="hover"&&s.key==="Escape"&&this.contentElement.getAttribute("data-state")==="open"&&(this.preventFromCloseOutside||this.hide())}),l(this,"toggleStateOnClick",()=>{(this.contentElement.dataset.state||"close")==="close"?(this.show(),this.triggerStrategy==="hover"&&this.addEventOnMouseEnter()):this.hide()}),l(this,"hideOnMouseLeaseTrigger",()=>{setTimeout(()=>{this.contentElement.matches(":hover")||this.hide()},150)}),l(this,"hideOnMouseLeave",()=>{setTimeout(()=>{this.triggerElement.matches(":hover")||this.hide()},150)}),l(this,"addEventOnMouseEnter",()=>{this.triggerElement.addEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.addEventListener("mouseleave",this.hideOnMouseLeave)}),l(this,"showOnMouseEnter",()=>{this.show(),this.addEventOnMouseEnter()}),l(this,"setShowOptions",({placement:s,offsetDistance:r})=>{var a,c,p,d;this.popper.setOptions({placement:s,offsetDistance:r}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(c=(a=this.options).beforeShow)==null||c.call(a),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(d=(p=this.options).onShow)==null||d.call(p)}),l(this,"setPopperOptions",({placement:s,offsetDistance:r})=>{this.popper.setOptions({placement:s,offsetDistance:r})}),l(this,"cleanup",()=>{this.triggerElement.removeEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.removeEventListener("mouseenter",this.showOnMouseEnter)});var o;if(this.contentElement=this.getElement(t),this.triggerElement=this.getElement(e),!(this.triggerElement instanceof HTMLElement))throw new Error("Trigger element must be a valid HTML element");if(!(this.contentElement instanceof HTMLElement))throw new Error("Content element must be a valid HTML element");this.options=i,this.triggerStrategy=this.options.triggerStrategy||"click",this.placement=this.options.placement||"bottom",this.offsetDistance=this.options.offsetDistance||6,this.preventFromCloseOutside=this.options.preventFromCloseOutside||!1,this.preventFromCloseInside=this.options.preventCloseFromInside||!1,this.defaultState=this.options.defaultState||"close",this.eventEffect=(o=this.options.popper)==null?void 0:o.eventEffect,this.popper=new x(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var t,i;(i=(t=this.options).onToggle)==null||i.call(t,{isHidden:e})}show(){var e,t,i,o;this.popper.updatePosition(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(t=(e=this.options).beforeShow)==null||t.call(e),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(o=(i=this.options).onShow)==null||o.call(i)}hide(){var e,t;(t=(e=this.options).beforeHide)==null||t.call(e),b({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerStrategy==="click"&&document.removeEventListener("click",this.handleDocumentClick),document.removeEventListener("keydown",this.handleKeyDown),this.triggerStrategy==="hover"&&(this.triggerElement.removeEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.removeEventListener("mouseleave",this.hideOnMouseLeave)),pe({element:this.contentElement,callback:()=>{var i,o;this.onToggleState(!0),this.popper.cleanupEvents(),(o=(i=this.options).onHide)==null||o.call(i)}})}initInstance(){b({state:this.defaultState,popper:this.contentElement,trigger:this.triggerElement}),this.defaultState==="open"?this.show():b({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}},P=(n,e=document.body)=>e.querySelector(n),j=(n,e=document.body)=>Array.from(e.querySelectorAll(n)),me=n=>typeof n=="string"?P(n):n,ge=({containerElement:n,targetChildren:e="a:not([disabled]), button:not([disabled])",direction:t})=>{let i=!1,o=me(n)||document.body,s=typeof e=="string"?j(e,o):e,r=a=>{if(a.preventDefault(),o.focus(),s.length===0)return;let c=a.key,p=document.activeElement,d=s.findIndex(g=>g===p);if(d===-1){c==="ArrowUp"||c==="ArrowLeft"?s[s.length-1].focus():s[0].focus();return}let f=g=>g>0?g-1:s.length-1,E=g=>g<s.length-1?g+1:0;switch(c){case"ArrowDown":a.preventDefault(),d=E(d);break;case"ArrowRight":break;case"ArrowUp":a.preventDefault(),d=f(d);break;case"ArrowLeft":break;case"Home":a.preventDefault(),d=0;break;case"End":a.preventDefault(),d=s.length-1;break;default:return}s[d]!==p&&s[d].focus()};return{make:()=>{i||(document.addEventListener("keydown",r),i=!0)},destroy:()=>{i&&(document.removeEventListener("keydown",r),i=!1)}}},U=(n,e,t)=>{let i=new CustomEvent(e,{detail:t});n.dispatchEvent(i)},S=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,t,i){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,t)||(window.$flexillaInstances[e].push({element:t,instance:i}),i)}static getInstance(e,t){var i,o;return this.initGlobalRegistry(),(o=(i=window.$flexillaInstances[e])==null?void 0:i.find(s=>s.element===t))==null?void 0:o.instance}static removeInstance(e,t){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(i=>i.element!==t))}},F=class G{constructor(e,t={}){h(this,"triggerElement"),h(this,"contentElement"),h(this,"options"),h(this,"OverlayInstance"),h(this,"navigationKeys"),h(this,"triggerStrategy"),h(this,"placement"),h(this,"offsetDistance"),h(this,"preventFromCloseOutside"),h(this,"preventFromCloseInside"),h(this,"defaultState"),h(this,"onToggle",({isHidden:r})=>{var a,c;(c=(a=this.options).onToggle)==null||c.call(a,{isHidden:r})}),h(this,"beforeShow",()=>{this.contentElement.focus(),this.navigationKeys.make()}),h(this,"beforeHide",()=>{this.contentElement.blur(),this.navigationKeys.destroy()}),h(this,"onShow",()=>{var r,a;U(this.contentElement,"dropdown-show",{isHidden:!1}),(a=(r=this.options).onShow)==null||a.call(r)}),h(this,"onHide",()=>{var r,a;U(this.contentElement,"dropdown-hide",{isHidden:!0}),(a=(r=this.options).onHide)==null||a.call(r)}),h(this,"show",()=>{this.OverlayInstance.show()}),h(this,"hide",()=>{this.OverlayInstance.hide()}),h(this,"setShowOptions",({placement:r,offsetDistance:a})=>{this.OverlayInstance.setShowOptions({placement:r,offsetDistance:a})}),h(this,"cleanup",()=>{this.OverlayInstance.cleanup(),S.removeInstance("dropdown",this.contentElement)});let i=typeof e=="string"?P(e):e;if(!(i instanceof HTMLElement))throw new Error("Invalid dropdown content element: Must provide either a valid HTMLElement or a selector string that resolves to an existing HTMLElement");if(!i.id)throw new Error("Dropdown content element must have an 'id' attribute for trigger association");this.contentElement=i;let o=S.getInstance("dropdown",this.contentElement);if(o)return o;let s=`[data-dropdown-trigger][data-dropdown-id=${this.contentElement.id}]`;if(this.triggerElement=P(s),!(this.triggerElement instanceof HTMLElement))throw new Error(`No valid trigger element found. Ensure a trigger element exists with attributes: data-dropdown-trigger and data-dropdown-id="${this.contentElement.id}"`);this.options=t,this.triggerStrategy=this.options.triggerStrategy||this.contentElement.dataset.triggerStrategy||"click",this.placement=this.options.placement||this.contentElement.dataset.placement||"bottom-start",this.offsetDistance=this.options.offsetDistance||parseInt(`${this.contentElement.dataset.offsetDistance}`)|6,this.preventFromCloseOutside=this.options.preventFromCloseOutside||this.contentElement.hasAttribute("data-prevent-close-outside")||!1,this.preventFromCloseInside=this.options.preventCloseFromInside||this.contentElement.hasAttribute("data-prevent-close-inside")||!1,this.defaultState=this.options.defaultState||this.contentElement.dataset.defaultState||"close",this.OverlayInstance=new W({trigger:this.triggerElement,content:this.contentElement,options:{placement:this.placement,offsetDistance:this.offsetDistance,triggerStrategy:this.triggerStrategy,preventFromCloseOutside:this.preventFromCloseOutside,preventCloseFromInside:this.preventFromCloseInside,defaultState:this.defaultState,beforeShow:this.beforeShow,beforeHide:this.beforeHide,onShow:this.onShow,onHide:this.onHide,onToggle:({isHidden:r})=>{this.onToggle({isHidden:r})},popper:this.options.popper}}),this.navigationKeys=ge({containerElement:this.contentElement,targetChildren:"a:not([disabled]), button:not([disabled])",direction:"up-down"}),S.register("dropdown",this.contentElement,this)}static init(e,t={}){new G(e,t)}};h(F,"autoInit",(n="[data-fx-dropdown]")=>{let e=j(n);for(let t of e)new F(t)});var q=F;function fe(n){n.directive("dropdown",(e,{},{cleanup:t})=>{let i=new q(e);t(()=>{i.cleanup()})})}var B=fe;document.addEventListener("alpine:init",()=>{B(window.Alpine)});})();
|
|
1
|
+
(()=>{var J=Object.defineProperty,Q=(n,e,t)=>e in n?J(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,h=(n,e,t)=>Q(n,typeof e!="symbol"?e+"":e,t),V=Object.defineProperty,X=(n,e,t)=>e in n?V(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,l=(n,e,t)=>X(n,typeof e!="symbol"?e+"":e,t),Y="bottom",Z=({reference:n,popper:e})=>{if(!n||!e)throw new Error("Reference or popper element is null or undefined");let t=new WeakMap,i=o=>(t.has(o)||t.set(o,o.getBoundingClientRect()),t.get(o)),r=i(e),s=i(n);return{popperHeight:r.height,popperWidth:r.width,refHeight:s.height,refWidth:s.width,refLeft:s.left,refTop:s.top,refRight:s.right}},_=Object.defineProperty,ee=(n,e,t)=>e in n?_(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,m=(n,e,t)=>ee(n,typeof e!="symbol"?e+"":e,t),te=(n,e,t,i)=>{let r=t,s=i-(t+e);return r>=(n-e)/2&&s>=(n-e)/2},ne=(n,e,t,i)=>(n-e)/2<=t&&t+n/2+e/2<=i,ie=(n,e,t,i,r)=>t>r-i?e()?window.innerHeight-r:t-r:n()?0:t+i,se=(n,e,t,i)=>n<=i&&t-n<=e,oe=(n,e,t,i)=>t<=i&&-n<=e,re=(n,e,t,i,r,s)=>{let o=r-t-s,a=t-i,c=t+s-i+(r-t-s),d=o>=0?r-i:a>=0?t-i:t;return n()?0:e()?c:d},ae=(n,e,t,i)=>n<=t&&e-n-i>=n,le=(n,e)=>n>=e,he=({placement:n,refWidth:e,refTop:t,refLeft:i,refHeight:r,popperWidth:s,popperHeight:o,windowHeight:a,windowWidth:c,offsetDistance:d})=>{let p=c-i-e,f=i,E=a-t-r,g=t,w=()=>ie(()=>oe(t,r,o,a),()=>se(t,r,o,a),t,r,o),y=()=>re(()=>ae(i,c,s,e),()=>le(i,s),i,s,c,e),I=()=>te(s,e,i,c)?i+e/2-s/2:y(),T=()=>ne(o,r,t,a)?t+r/2-o/2:w(),C=()=>i+s<=c?i:y(),O=()=>i+e-s>=0?i+e-s:y(),D=()=>t+o<=a?t:w(),N=()=>t+r-o>=0?t+r-o:w(),v=0,u=0,M=t-o-d,L=t+r+d,k=i-s-d,H=i+e+d,R=g>=o+d,$=E>=o+d,A=f>=s+d,K=p>=s+d;switch(n.startsWith("top")?u=R?M:$?L:Math.max(M,L):n.startsWith("bottom")?u=$?L:R?M:Math.max(L):n.startsWith("left")?v=A?k:K?H:Math.max(k,H):n.startsWith("right")&&(v=K?H:A?k:Math.max(H,k)),n){case"bottom":case"bottom-middle":case"top":case"top-middle":v=I();break;case"left":case"left-middle":case"right":case"right-middle":u=T();break;case"bottom-start":case"top-start":v=C();break;case"bottom-end":case"top-end":v=O();break;case"left-start":case"right-start":u=D();break;case"left-end":case"right-end":u=N();break}return{x:v,y:u}},x=class{constructor(e,t,i={}){m(this,"reference"),m(this,"popper"),m(this,"offsetDistance"),m(this,"placement"),m(this,"disableOnResize"),m(this,"disableOnScroll"),m(this,"onUpdate"),m(this,"isWindowEventsRegistered"),m(this,"validateElements",()=>{if(!(this.reference instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(this.popper instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(typeof this.offsetDistance!="number")throw new Error("OffsetDistance must be a number")}),m(this,"setPopperStyleProperty",(p,f)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${p}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${f}px`)}),m(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),m(this,"initPlacement",()=>{var p;this.validateElements(),this.setInitialStyles();let f=window.innerWidth,E=window.innerHeight,{popperHeight:g,popperWidth:w,refHeight:y,refWidth:I,refLeft:T,refTop:C}=Z({reference:this.reference,popper:this.popper}),{x:O,y:D}=he({placement:this.placement,refWidth:I,refTop:C,refLeft:T,popperWidth:w,refHeight:y,popperHeight:g,windowHeight:E,windowWidth:f,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(O,D),(p=this.onUpdate)==null||p.call(this,{x:O,y:D,placement:this.placement})}),m(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),m(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),m(this,"resetPosition",()=>{this.setInitialStyles()}),m(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),m(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:r=10,placement:s=Y,eventEffect:o={},onUpdate:a}=i;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(t instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(i.offsetDistance&&typeof i.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:c,disableOnScroll:d}=o;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=t,this.offsetDistance=r,this.placement=s,this.disableOnResize=c||!1,this.disableOnScroll=d||!1,this.onUpdate=a}setOptions({placement:e,offsetDistance:t}){this.placement=e,this.offsetDistance=t||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},ce=(n,e=document.body)=>e.querySelector(n),z=(n,e)=>{for(let[t,i]of Object.entries(e))n.setAttribute(t,i)},pe=({element:n,callback:e,type:t,keysCheck:i})=>{let r=getComputedStyle(n),s=r.transition;if(s!=="none"&&s!==""&&!i.includes(s)){let o="transitionend",a=()=>{n.removeEventListener(o,a),e()};n.addEventListener(o,a,{once:!0})}else e()},de=({element:n,callback:e})=>{pe({element:n,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},b=({state:n,trigger:e,popper:t})=>{let i=n==="open";z(t,{"data-state":n}),z(e,{"aria-expanded":`${i}`})},P=class{constructor({trigger:e,content:t,options:i={}}){l(this,"triggerElement"),l(this,"contentElement"),l(this,"triggerStrategy"),l(this,"placement"),l(this,"offsetDistance"),l(this,"preventFromCloseOutside"),l(this,"preventFromCloseInside"),l(this,"options"),l(this,"defaultState"),l(this,"popper"),l(this,"eventEffect"),l(this,"getElement",s=>typeof s=="string"?ce(s):s instanceof HTMLElement?s:void 0),l(this,"handleDocumentClick",s=>{this.contentElement.getAttribute("data-state")==="open"&&(!this.triggerElement.contains(s.target)&&!this.preventFromCloseInside&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&!this.contentElement.contains(s.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&!this.contentElement.contains(s.target)&&!this.preventFromCloseOutside?this.hide():!this.triggerElement.contains(s.target)&&this.contentElement.contains(s.target)&&!this.preventFromCloseInside&&this.hide())}),l(this,"handleKeyDown",s=>{s.preventDefault(),this.triggerStrategy!=="hover"&&s.key==="Escape"&&this.contentElement.getAttribute("data-state")==="open"&&(this.preventFromCloseOutside||this.hide())}),l(this,"toggleStateOnClick",()=>{(this.contentElement.dataset.state||"close")==="close"?(this.show(),this.triggerStrategy==="hover"&&this.addEventOnMouseEnter()):this.hide()}),l(this,"hideOnMouseLeaseTrigger",()=>{setTimeout(()=>{this.contentElement.matches(":hover")||this.hide()},150)}),l(this,"hideOnMouseLeave",()=>{setTimeout(()=>{this.triggerElement.matches(":hover")||this.hide()},150)}),l(this,"addEventOnMouseEnter",()=>{this.triggerElement.addEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.addEventListener("mouseleave",this.hideOnMouseLeave)}),l(this,"showOnMouseEnter",()=>{this.show(),this.addEventOnMouseEnter()}),l(this,"setShowOptions",({placement:s,offsetDistance:o})=>{var a,c,d,p;this.popper.setOptions({placement:s,offsetDistance:o}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(c=(a=this.options).beforeShow)==null||c.call(a),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(p=(d=this.options).onShow)==null||p.call(d)}),l(this,"setPopperOptions",({placement:s,offsetDistance:o})=>{this.popper.setOptions({placement:s,offsetDistance:o||this.offsetDistance})}),l(this,"setPopperTrigger",(s,o)=>{this.cleanup(),this.popper.setOptions({placement:o.placement||this.placement,offsetDistance:o.offsetDistance||this.offsetDistance}),this.triggerElement=s,this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}),l(this,"cleanup",()=>{this.triggerElement.removeEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.removeEventListener("mouseenter",this.showOnMouseEnter)});var r;if(this.contentElement=this.getElement(t),this.triggerElement=this.getElement(e),!(this.triggerElement instanceof HTMLElement))throw new Error("Trigger element must be a valid HTML element");if(!(this.contentElement instanceof HTMLElement))throw new Error("Content element must be a valid HTML element");this.options=i,this.triggerStrategy=this.options.triggerStrategy||"click",this.placement=this.options.placement||"bottom",this.offsetDistance=this.options.offsetDistance||6,this.preventFromCloseOutside=this.options.preventFromCloseOutside||!1,this.preventFromCloseInside=this.options.preventCloseFromInside||!1,this.defaultState=this.options.defaultState||"close",this.eventEffect=(r=this.options.popper)==null?void 0:r.eventEffect,this.popper=new x(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var t,i;(i=(t=this.options).onToggle)==null||i.call(t,{isHidden:e})}show(){var e,t,i,r;this.popper.updatePosition(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(t=(e=this.options).beforeShow)==null||t.call(e),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(r=(i=this.options).onShow)==null||r.call(i)}hide(){var e,t;(t=(e=this.options).beforeHide)==null||t.call(e),b({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerStrategy==="click"&&document.removeEventListener("click",this.handleDocumentClick),document.removeEventListener("keydown",this.handleKeyDown),this.triggerStrategy==="hover"&&(this.triggerElement.removeEventListener("mouseleave",this.hideOnMouseLeaseTrigger),this.contentElement.removeEventListener("mouseleave",this.hideOnMouseLeave)),de({element:this.contentElement,callback:()=>{var i,r;this.onToggleState(!0),this.popper.cleanupEvents(),(r=(i=this.options).onHide)==null||r.call(i)}})}initInstance(){b({state:this.defaultState,popper:this.contentElement,trigger:this.triggerElement}),this.defaultState==="open"?this.show():b({state:"close",popper:this.contentElement,trigger:this.triggerElement}),this.triggerElement.addEventListener("click",this.toggleStateOnClick),this.triggerStrategy==="hover"&&this.triggerElement.addEventListener("mouseenter",this.showOnMouseEnter)}},W=(n,e=document.body)=>e.querySelector(n),j=(n,e=document.body)=>Array.from(e.querySelectorAll(n)),me=n=>typeof n=="string"?W(n):n,ge=({containerElement:n,targetChildren:e="a:not([disabled]), button:not([disabled])",direction:t})=>{let i=!1,r=me(n)||document.body,s=typeof e=="string"?j(e,r):e,o=a=>{if(a.preventDefault(),r.focus(),s.length===0)return;let c=a.key,d=document.activeElement,p=s.findIndex(g=>g===d);if(p===-1){c==="ArrowUp"||c==="ArrowLeft"?s[s.length-1].focus():s[0].focus();return}let f=g=>g>0?g-1:s.length-1,E=g=>g<s.length-1?g+1:0;switch(c){case"ArrowDown":a.preventDefault(),p=E(p);break;case"ArrowRight":break;case"ArrowUp":a.preventDefault(),p=f(p);break;case"ArrowLeft":break;case"Home":a.preventDefault(),p=0;break;case"End":a.preventDefault(),p=s.length-1;break;default:return}s[p]!==d&&s[p].focus()};return{make:()=>{i||(document.addEventListener("keydown",o),i=!0)},destroy:()=>{i&&(document.removeEventListener("keydown",o),i=!1)}}},U=(n,e,t)=>{let i=new CustomEvent(e,{detail:t});n.dispatchEvent(i)},S=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,t,i){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,t)||(window.$flexillaInstances[e].push({element:t,instance:i}),i)}static getInstance(e,t){var i,r;return this.initGlobalRegistry(),(r=(i=window.$flexillaInstances[e])==null?void 0:i.find(s=>s.element===t))==null?void 0:r.instance}static removeInstance(e,t){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(i=>i.element!==t))}},F=class G{constructor(e,t={}){h(this,"triggerElement"),h(this,"contentElement"),h(this,"options"),h(this,"OverlayInstance"),h(this,"navigationKeys"),h(this,"triggerStrategy"),h(this,"placement"),h(this,"offsetDistance"),h(this,"preventFromCloseOutside"),h(this,"preventFromCloseInside"),h(this,"defaultState"),h(this,"onToggle",({isHidden:o})=>{var a,c;(c=(a=this.options).onToggle)==null||c.call(a,{isHidden:o})}),h(this,"beforeShow",()=>{this.contentElement.focus(),this.navigationKeys.make()}),h(this,"beforeHide",()=>{this.contentElement.blur(),this.navigationKeys.destroy()}),h(this,"onShow",()=>{var o,a;U(this.contentElement,"dropdown-show",{isHidden:!1}),(a=(o=this.options).onShow)==null||a.call(o)}),h(this,"onHide",()=>{var o,a;U(this.contentElement,"dropdown-hide",{isHidden:!0}),(a=(o=this.options).onHide)==null||a.call(o)}),h(this,"show",()=>{this.OverlayInstance.show()}),h(this,"hide",()=>{this.OverlayInstance.hide()}),h(this,"setShowOptions",({placement:o,offsetDistance:a})=>{this.OverlayInstance.setShowOptions({placement:o,offsetDistance:a})}),h(this,"setOptions",({placement:o,offsetDistance:a})=>{this.OverlayInstance.setPopperOptions({placement:o,offsetDistance:a})}),h(this,"setPopperTrigger",(o,a)=>{this.OverlayInstance.setPopperTrigger(o,a)}),h(this,"cleanup",()=>{this.OverlayInstance.cleanup(),S.removeInstance("dropdown",this.contentElement)});let i=typeof e=="string"?W(e):e;if(!(i instanceof HTMLElement))throw new Error("Invalid dropdown content element: Must provide either a valid HTMLElement or a selector string that resolves to an existing HTMLElement");if(!i.id)throw new Error("Dropdown content element must have an 'id' attribute for trigger association");this.contentElement=i;let r=S.getInstance("dropdown",this.contentElement);if(r)return r;let s=`[data-dropdown-trigger][data-dropdown-id=${this.contentElement.id}]`;if(this.triggerElement=W(s),!(this.triggerElement instanceof HTMLElement))throw new Error(`No valid trigger element found. Ensure a trigger element exists with attributes: data-dropdown-trigger and data-dropdown-id="${this.contentElement.id}"`);this.options=t,this.triggerStrategy=this.options.triggerStrategy||this.contentElement.dataset.triggerStrategy||"click",this.placement=this.options.placement||this.contentElement.dataset.placement||"bottom-start",this.offsetDistance=this.options.offsetDistance||parseInt(`${this.contentElement.dataset.offsetDistance}`)|6,this.preventFromCloseOutside=this.options.preventFromCloseOutside||this.contentElement.hasAttribute("data-prevent-close-outside")||!1,this.preventFromCloseInside=this.options.preventCloseFromInside||this.contentElement.hasAttribute("data-prevent-close-inside")||!1,this.defaultState=this.options.defaultState||this.contentElement.dataset.defaultState||"close",this.OverlayInstance=new P({trigger:this.triggerElement,content:this.contentElement,options:{placement:this.placement,offsetDistance:this.offsetDistance,triggerStrategy:this.triggerStrategy,preventFromCloseOutside:this.preventFromCloseOutside,preventCloseFromInside:this.preventFromCloseInside,defaultState:this.defaultState,beforeShow:this.beforeShow,beforeHide:this.beforeHide,onShow:this.onShow,onHide:this.onHide,onToggle:({isHidden:o})=>{this.onToggle({isHidden:o})},popper:this.options.popper}}),this.navigationKeys=ge({containerElement:this.contentElement,targetChildren:"a:not([disabled]), button:not([disabled])",direction:"up-down"}),S.register("dropdown",this.contentElement,this)}static init(e,t={}){new G(e,t)}};h(F,"autoInit",(n="[data-fx-dropdown]")=>{let e=j(n);for(let t of e)new F(t)});var q=F;function fe(n){n.directive("dropdown",(e,{},{cleanup:t})=>{let i=new q(e);t(()=>{i.cleanup()})})}var B=fe;document.addEventListener("alpine:init",()=>{B(window.Alpine)});})();
|
package/dist/module.cjs.js
CHANGED
|
@@ -26,10 +26,10 @@ module.exports = __toCommonJS(module_exports);
|
|
|
26
26
|
// ../../node_modules/@flexilla/dropdown/dist/dropdown.js
|
|
27
27
|
var j = Object.defineProperty;
|
|
28
28
|
var q = (s, e, t) => e in s ? j(s, e, { enumerable: true, configurable: true, writable: true, value: t }) : s[e] = t;
|
|
29
|
-
var
|
|
29
|
+
var a = (s, e, t) => q(s, typeof e != "symbol" ? e + "" : e, t);
|
|
30
30
|
var B = Object.defineProperty;
|
|
31
31
|
var N = (s, e, t) => e in s ? B(s, e, { enumerable: true, configurable: true, writable: true, value: t }) : s[e] = t;
|
|
32
|
-
var
|
|
32
|
+
var l = (s, e, t) => N(s, typeof e != "symbol" ? e + "" : e, t);
|
|
33
33
|
var J = "bottom";
|
|
34
34
|
var Q = ({ reference: s, popper: e }) => {
|
|
35
35
|
if (!s || !e)
|
|
@@ -57,8 +57,8 @@ var _ = (s, e, t, n, o) => t > o - n ? e() ? window.innerHeight - o : t - o : s(
|
|
|
57
57
|
var ee = (s, e, t, n) => s <= n && t - s <= e;
|
|
58
58
|
var te = (s, e, t, n) => t <= n && -s <= e;
|
|
59
59
|
var ne = (s, e, t, n, o, i) => {
|
|
60
|
-
const r = o - t - i,
|
|
61
|
-
return s() ? 0 : e() ?
|
|
60
|
+
const r = o - t - i, h = t - n, g = t + i - n + (o - t - i), d = r >= 0 ? o - n : h >= 0 ? t - n : t;
|
|
61
|
+
return s() ? 0 : e() ? g : d;
|
|
62
62
|
};
|
|
63
63
|
var se = (s, e, t, n) => s <= t && e - s - n >= s;
|
|
64
64
|
var ie = (s, e) => s >= e;
|
|
@@ -70,27 +70,27 @@ var oe = ({
|
|
|
70
70
|
refHeight: o,
|
|
71
71
|
popperWidth: i,
|
|
72
72
|
popperHeight: r,
|
|
73
|
-
windowHeight:
|
|
74
|
-
windowWidth:
|
|
73
|
+
windowHeight: h,
|
|
74
|
+
windowWidth: g,
|
|
75
75
|
offsetDistance: d
|
|
76
76
|
}) => {
|
|
77
|
-
const c =
|
|
78
|
-
() => te(t, o, r,
|
|
79
|
-
() => ee(t, o, r,
|
|
77
|
+
const c = g - n - e, f = n, v = h - t - o, m = t, w = () => _(
|
|
78
|
+
() => te(t, o, r, h),
|
|
79
|
+
() => ee(t, o, r, h),
|
|
80
80
|
t,
|
|
81
81
|
o,
|
|
82
82
|
r
|
|
83
83
|
), y = () => ne(
|
|
84
|
-
() => se(n,
|
|
84
|
+
() => se(n, g, i, e),
|
|
85
85
|
() => ie(n, i),
|
|
86
86
|
n,
|
|
87
87
|
i,
|
|
88
|
-
|
|
88
|
+
g,
|
|
89
89
|
e
|
|
90
|
-
), H = () => Y(i, e, n,
|
|
90
|
+
), H = () => Y(i, e, n, g) ? n + e / 2 - i / 2 : y(), T = () => Z(r, o, t, h) ? t + o / 2 - r / 2 : w(), C = () => n + i <= g ? n : y(), O = () => n + e - i >= 0 ? n + e - i : y(), L = () => t + r <= h ? t : w(), G = () => t + o - r >= 0 ? t + o - r : w();
|
|
91
91
|
let u = 0, E = 0;
|
|
92
|
-
const M = t - r - d, k = t + o + d,
|
|
93
|
-
switch (s.startsWith("top") ? E = P ? M : F ? k : Math.max(M, k) : s.startsWith("bottom") ? E = F ? k : P ? M : Math.max(k) : s.startsWith("left") ? u = R ?
|
|
92
|
+
const M = t - r - d, k = t + o + d, D = n - i - d, I = n + e + d, P = m >= r + d, F = v >= r + d, R = f >= i + d, $ = c >= i + d;
|
|
93
|
+
switch (s.startsWith("top") ? E = P ? M : F ? k : Math.max(M, k) : s.startsWith("bottom") ? E = F ? k : P ? M : Math.max(k) : s.startsWith("left") ? u = R ? D : $ ? I : Math.max(D, I) : s.startsWith("right") && (u = $ ? I : R ? D : Math.max(I, D)), s) {
|
|
94
94
|
case "bottom":
|
|
95
95
|
case "bottom-middle":
|
|
96
96
|
case "top":
|
|
@@ -101,11 +101,11 @@ var oe = ({
|
|
|
101
101
|
case "left-middle":
|
|
102
102
|
case "right":
|
|
103
103
|
case "right-middle":
|
|
104
|
-
E =
|
|
104
|
+
E = T();
|
|
105
105
|
break;
|
|
106
106
|
case "bottom-start":
|
|
107
107
|
case "top-start":
|
|
108
|
-
u =
|
|
108
|
+
u = C();
|
|
109
109
|
break;
|
|
110
110
|
case "bottom-end":
|
|
111
111
|
case "top-end":
|
|
@@ -156,15 +156,15 @@ var re = class {
|
|
|
156
156
|
}), p(this, "initPlacement", () => {
|
|
157
157
|
var c;
|
|
158
158
|
this.validateElements(), this.setInitialStyles();
|
|
159
|
-
const f = window.innerWidth, v = window.innerHeight, { popperHeight:
|
|
159
|
+
const f = window.innerWidth, v = window.innerHeight, { popperHeight: m, popperWidth: w, refHeight: y, refWidth: H, refLeft: T, refTop: C } = Q({ reference: this.reference, popper: this.popper }), { x: O, y: L } = oe(
|
|
160
160
|
{
|
|
161
161
|
placement: this.placement,
|
|
162
162
|
refWidth: H,
|
|
163
|
-
refTop:
|
|
164
|
-
refLeft:
|
|
163
|
+
refTop: C,
|
|
164
|
+
refLeft: T,
|
|
165
165
|
popperWidth: w,
|
|
166
166
|
refHeight: y,
|
|
167
|
-
popperHeight:
|
|
167
|
+
popperHeight: m,
|
|
168
168
|
windowHeight: v,
|
|
169
169
|
windowWidth: f,
|
|
170
170
|
offsetDistance: this.offsetDistance
|
|
@@ -186,7 +186,7 @@ var re = class {
|
|
|
186
186
|
offsetDistance: o = 10,
|
|
187
187
|
placement: i = J,
|
|
188
188
|
eventEffect: r = {},
|
|
189
|
-
onUpdate:
|
|
189
|
+
onUpdate: h
|
|
190
190
|
} = n;
|
|
191
191
|
if (!(e instanceof HTMLElement))
|
|
192
192
|
throw new Error("Invalid HTMLElement for Reference Element");
|
|
@@ -194,8 +194,8 @@ var re = class {
|
|
|
194
194
|
throw new Error("Invalid HTMLElement for Popper");
|
|
195
195
|
if (n.offsetDistance && typeof n.offsetDistance != "number")
|
|
196
196
|
throw new Error("OffsetDistance must be a number");
|
|
197
|
-
const { disableOnResize:
|
|
198
|
-
this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = o, this.placement = i, this.disableOnResize =
|
|
197
|
+
const { disableOnResize: g, disableOnScroll: d } = r;
|
|
198
|
+
this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = o, this.placement = i, this.disableOnResize = g || false, this.disableOnScroll = d || false, this.onUpdate = h;
|
|
199
199
|
}
|
|
200
200
|
/**
|
|
201
201
|
* Updates popper configuration and recalculates position
|
|
@@ -221,10 +221,10 @@ var le = ({
|
|
|
221
221
|
}) => {
|
|
222
222
|
const o = getComputedStyle(s), i = o.transition;
|
|
223
223
|
if (i !== "none" && i !== "" && !n.includes(i)) {
|
|
224
|
-
const r = "transitionend",
|
|
225
|
-
s.removeEventListener(r,
|
|
224
|
+
const r = "transitionend", h = () => {
|
|
225
|
+
s.removeEventListener(r, h), e();
|
|
226
226
|
};
|
|
227
|
-
s.addEventListener(r,
|
|
227
|
+
s.addEventListener(r, h, { once: true });
|
|
228
228
|
} else
|
|
229
229
|
e();
|
|
230
230
|
};
|
|
@@ -240,10 +240,11 @@ var he = ({
|
|
|
240
240
|
});
|
|
241
241
|
};
|
|
242
242
|
var b = ({ state: s, trigger: e, popper: t }) => {
|
|
243
|
+
const n = s === "open";
|
|
243
244
|
A(t, {
|
|
244
245
|
"data-state": s
|
|
245
246
|
}), A(e, {
|
|
246
|
-
"aria-expanded": `${
|
|
247
|
+
"aria-expanded": `${n}`
|
|
247
248
|
});
|
|
248
249
|
};
|
|
249
250
|
var ce = class {
|
|
@@ -253,43 +254,47 @@ var ce = class {
|
|
|
253
254
|
* @param {string | HTMLElement} params.trigger - The trigger element selector or HTMLElement
|
|
254
255
|
* @param {string | HTMLElement} params.content - The content element selector or HTMLElement
|
|
255
256
|
* @param {OverlayOptions} [params.options] - Configuration options for the overlay
|
|
256
|
-
* @throws {Error} When trigger or content elements are invalid
|
|
257
257
|
*/
|
|
258
258
|
constructor({ trigger: e, content: t, options: n = {} }) {
|
|
259
|
-
|
|
259
|
+
l(this, "triggerElement"), l(this, "contentElement"), l(this, "triggerStrategy"), l(this, "placement"), l(this, "offsetDistance"), l(this, "preventFromCloseOutside"), l(this, "preventFromCloseInside"), l(this, "options"), l(this, "defaultState"), l(this, "popper"), l(this, "eventEffect"), l(this, "getElement", (i) => typeof i == "string" ? ae(i) : i instanceof HTMLElement ? i : void 0), l(this, "handleDocumentClick", (i) => {
|
|
260
260
|
this.contentElement.getAttribute("data-state") === "open" && (!this.triggerElement.contains(i.target) && !this.preventFromCloseInside && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(i.target) && !this.contentElement.contains(i.target) && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(i.target) && !this.contentElement.contains(i.target) && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(i.target) && this.contentElement.contains(i.target) && !this.preventFromCloseInside && this.hide());
|
|
261
|
-
}),
|
|
261
|
+
}), l(this, "handleKeyDown", (i) => {
|
|
262
262
|
i.preventDefault(), this.triggerStrategy !== "hover" && i.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
|
|
263
|
-
}),
|
|
263
|
+
}), l(this, "toggleStateOnClick", () => {
|
|
264
264
|
(this.contentElement.dataset.state || "close") === "close" ? (this.show(), this.triggerStrategy === "hover" && this.addEventOnMouseEnter()) : this.hide();
|
|
265
|
-
}),
|
|
265
|
+
}), l(this, "hideOnMouseLeaseTrigger", () => {
|
|
266
266
|
setTimeout(() => {
|
|
267
267
|
this.contentElement.matches(":hover") || this.hide();
|
|
268
268
|
}, 150);
|
|
269
|
-
}),
|
|
269
|
+
}), l(this, "hideOnMouseLeave", () => {
|
|
270
270
|
setTimeout(() => {
|
|
271
271
|
this.triggerElement.matches(":hover") || this.hide();
|
|
272
272
|
}, 150);
|
|
273
|
-
}),
|
|
273
|
+
}), l(this, "addEventOnMouseEnter", () => {
|
|
274
274
|
this.triggerElement.addEventListener("mouseleave", this.hideOnMouseLeaseTrigger), this.contentElement.addEventListener("mouseleave", this.hideOnMouseLeave);
|
|
275
|
-
}),
|
|
275
|
+
}), l(this, "showOnMouseEnter", () => {
|
|
276
276
|
this.show(), this.addEventOnMouseEnter();
|
|
277
|
-
}),
|
|
278
|
-
var
|
|
277
|
+
}), l(this, "setShowOptions", ({ placement: i, offsetDistance: r }) => {
|
|
278
|
+
var h, g, d, c;
|
|
279
279
|
this.popper.setOptions({
|
|
280
280
|
placement: i,
|
|
281
281
|
offsetDistance: r
|
|
282
|
-
}), document.addEventListener("keydown", this.handleKeyDown), document.addEventListener("click", this.handleDocumentClick), (
|
|
282
|
+
}), document.addEventListener("keydown", this.handleKeyDown), document.addEventListener("click", this.handleDocumentClick), (g = (h = this.options).beforeShow) == null || g.call(h), b({
|
|
283
283
|
state: "open",
|
|
284
284
|
popper: this.contentElement,
|
|
285
285
|
trigger: this.triggerElement
|
|
286
286
|
}), this.onToggleState(false), (c = (d = this.options).onShow) == null || c.call(d);
|
|
287
|
-
}),
|
|
287
|
+
}), l(this, "setPopperOptions", ({ placement: i, offsetDistance: r }) => {
|
|
288
288
|
this.popper.setOptions({
|
|
289
289
|
placement: i,
|
|
290
|
-
offsetDistance: r
|
|
290
|
+
offsetDistance: r || this.offsetDistance
|
|
291
291
|
});
|
|
292
|
-
}),
|
|
292
|
+
}), l(this, "setPopperTrigger", (i, r) => {
|
|
293
|
+
this.cleanup(), this.popper.setOptions({
|
|
294
|
+
placement: r.placement || this.placement,
|
|
295
|
+
offsetDistance: r.offsetDistance || this.offsetDistance
|
|
296
|
+
}), this.triggerElement = i, this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
|
|
297
|
+
}), l(this, "cleanup", () => {
|
|
293
298
|
this.triggerElement.removeEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.removeEventListener("mouseenter", this.showOnMouseEnter);
|
|
294
299
|
});
|
|
295
300
|
var o;
|
|
@@ -358,32 +363,32 @@ var U = (s, e = document.body) => Array.from(e.querySelectorAll(s));
|
|
|
358
363
|
var de = (s) => typeof s == "string" ? W(s) : s;
|
|
359
364
|
var pe = ({ containerElement: s, targetChildren: e = "a:not([disabled]), button:not([disabled])", direction: t }) => {
|
|
360
365
|
let n = false;
|
|
361
|
-
const o = de(s) || document.body, i = typeof e == "string" ? U(e, o) : e, r = (
|
|
362
|
-
if (
|
|
366
|
+
const o = de(s) || document.body, i = typeof e == "string" ? U(e, o) : e, r = (h) => {
|
|
367
|
+
if (h.preventDefault(), o.focus(), i.length === 0)
|
|
363
368
|
return;
|
|
364
|
-
const
|
|
365
|
-
let c = i.findIndex((
|
|
369
|
+
const g = h.key, d = document.activeElement;
|
|
370
|
+
let c = i.findIndex((m) => m === d);
|
|
366
371
|
if (c === -1) {
|
|
367
|
-
|
|
372
|
+
g === "ArrowUp" || g === "ArrowLeft" ? i[i.length - 1].focus() : i[0].focus();
|
|
368
373
|
return;
|
|
369
374
|
}
|
|
370
|
-
const f = (
|
|
371
|
-
switch (
|
|
375
|
+
const f = (m) => m > 0 ? m - 1 : i.length - 1, v = (m) => m < i.length - 1 ? m + 1 : 0;
|
|
376
|
+
switch (g) {
|
|
372
377
|
case "ArrowDown":
|
|
373
|
-
|
|
378
|
+
h.preventDefault(), c = v(c);
|
|
374
379
|
break;
|
|
375
380
|
case "ArrowRight":
|
|
376
381
|
break;
|
|
377
382
|
case "ArrowUp":
|
|
378
|
-
|
|
383
|
+
h.preventDefault(), c = f(c);
|
|
379
384
|
break;
|
|
380
385
|
case "ArrowLeft":
|
|
381
386
|
break;
|
|
382
387
|
case "Home":
|
|
383
|
-
|
|
388
|
+
h.preventDefault(), c = 0;
|
|
384
389
|
break;
|
|
385
390
|
case "End":
|
|
386
|
-
|
|
391
|
+
h.preventDefault(), c = i.length - 1;
|
|
387
392
|
break;
|
|
388
393
|
default:
|
|
389
394
|
return;
|
|
@@ -430,49 +435,55 @@ var S = class S2 {
|
|
|
430
435
|
* @throws {Error} If provided elements are not valid HTMLElements
|
|
431
436
|
*/
|
|
432
437
|
constructor(e, t = {}) {
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
438
|
+
a(this, "triggerElement");
|
|
439
|
+
a(this, "contentElement");
|
|
440
|
+
a(this, "options");
|
|
441
|
+
a(this, "OverlayInstance");
|
|
442
|
+
a(this, "navigationKeys");
|
|
443
|
+
a(this, "triggerStrategy");
|
|
444
|
+
a(this, "placement");
|
|
445
|
+
a(this, "offsetDistance");
|
|
446
|
+
a(this, "preventFromCloseOutside");
|
|
447
|
+
a(this, "preventFromCloseInside");
|
|
448
|
+
a(this, "defaultState");
|
|
449
|
+
a(this, "onToggle", ({ isHidden: e2 }) => {
|
|
445
450
|
var t2, n2;
|
|
446
451
|
(n2 = (t2 = this.options).onToggle) == null || n2.call(t2, { isHidden: e2 });
|
|
447
452
|
});
|
|
448
|
-
|
|
453
|
+
a(this, "beforeShow", () => {
|
|
449
454
|
this.contentElement.focus(), this.navigationKeys.make();
|
|
450
455
|
});
|
|
451
|
-
|
|
456
|
+
a(this, "beforeHide", () => {
|
|
452
457
|
this.contentElement.blur(), this.navigationKeys.destroy();
|
|
453
458
|
});
|
|
454
|
-
|
|
459
|
+
a(this, "onShow", () => {
|
|
455
460
|
var e2, t2;
|
|
456
461
|
K(this.contentElement, "dropdown-show", {
|
|
457
462
|
isHidden: false
|
|
458
463
|
}), (t2 = (e2 = this.options).onShow) == null || t2.call(e2);
|
|
459
464
|
});
|
|
460
|
-
|
|
465
|
+
a(this, "onHide", () => {
|
|
461
466
|
var e2, t2;
|
|
462
467
|
K(this.contentElement, "dropdown-hide", {
|
|
463
468
|
isHidden: true
|
|
464
469
|
}), (t2 = (e2 = this.options).onHide) == null || t2.call(e2);
|
|
465
470
|
});
|
|
466
|
-
|
|
471
|
+
a(this, "show", () => {
|
|
467
472
|
this.OverlayInstance.show();
|
|
468
473
|
});
|
|
469
|
-
|
|
474
|
+
a(this, "hide", () => {
|
|
470
475
|
this.OverlayInstance.hide();
|
|
471
476
|
});
|
|
472
|
-
|
|
477
|
+
a(this, "setShowOptions", ({ placement: e2, offsetDistance: t2 }) => {
|
|
473
478
|
this.OverlayInstance.setShowOptions({ placement: e2, offsetDistance: t2 });
|
|
474
479
|
});
|
|
475
|
-
|
|
480
|
+
a(this, "setOptions", ({ placement: e2, offsetDistance: t2 }) => {
|
|
481
|
+
this.OverlayInstance.setPopperOptions({ placement: e2, offsetDistance: t2 });
|
|
482
|
+
});
|
|
483
|
+
a(this, "setPopperTrigger", (e2, t2) => {
|
|
484
|
+
this.OverlayInstance.setPopperTrigger(e2, t2);
|
|
485
|
+
});
|
|
486
|
+
a(this, "cleanup", () => {
|
|
476
487
|
this.OverlayInstance.cleanup(), x.removeInstance("dropdown", this.contentElement);
|
|
477
488
|
});
|
|
478
489
|
const n = typeof e == "string" ? W(e) : e;
|
|
@@ -524,7 +535,7 @@ var S = class S2 {
|
|
|
524
535
|
new S2(e, t);
|
|
525
536
|
}
|
|
526
537
|
};
|
|
527
|
-
|
|
538
|
+
a(S, "autoInit", (e = "[data-fx-dropdown]") => {
|
|
528
539
|
const t = U(e);
|
|
529
540
|
for (const n of t)
|
|
530
541
|
new S(n);
|
package/dist/module.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// ../../node_modules/@flexilla/dropdown/dist/dropdown.js
|
|
2
2
|
var j = Object.defineProperty;
|
|
3
3
|
var q = (s, e, t) => e in s ? j(s, e, { enumerable: true, configurable: true, writable: true, value: t }) : s[e] = t;
|
|
4
|
-
var
|
|
4
|
+
var a = (s, e, t) => q(s, typeof e != "symbol" ? e + "" : e, t);
|
|
5
5
|
var B = Object.defineProperty;
|
|
6
6
|
var N = (s, e, t) => e in s ? B(s, e, { enumerable: true, configurable: true, writable: true, value: t }) : s[e] = t;
|
|
7
|
-
var
|
|
7
|
+
var l = (s, e, t) => N(s, typeof e != "symbol" ? e + "" : e, t);
|
|
8
8
|
var J = "bottom";
|
|
9
9
|
var Q = ({ reference: s, popper: e }) => {
|
|
10
10
|
if (!s || !e)
|
|
@@ -32,8 +32,8 @@ var _ = (s, e, t, n, o) => t > o - n ? e() ? window.innerHeight - o : t - o : s(
|
|
|
32
32
|
var ee = (s, e, t, n) => s <= n && t - s <= e;
|
|
33
33
|
var te = (s, e, t, n) => t <= n && -s <= e;
|
|
34
34
|
var ne = (s, e, t, n, o, i) => {
|
|
35
|
-
const r = o - t - i,
|
|
36
|
-
return s() ? 0 : e() ?
|
|
35
|
+
const r = o - t - i, h = t - n, g = t + i - n + (o - t - i), d = r >= 0 ? o - n : h >= 0 ? t - n : t;
|
|
36
|
+
return s() ? 0 : e() ? g : d;
|
|
37
37
|
};
|
|
38
38
|
var se = (s, e, t, n) => s <= t && e - s - n >= s;
|
|
39
39
|
var ie = (s, e) => s >= e;
|
|
@@ -45,27 +45,27 @@ var oe = ({
|
|
|
45
45
|
refHeight: o,
|
|
46
46
|
popperWidth: i,
|
|
47
47
|
popperHeight: r,
|
|
48
|
-
windowHeight:
|
|
49
|
-
windowWidth:
|
|
48
|
+
windowHeight: h,
|
|
49
|
+
windowWidth: g,
|
|
50
50
|
offsetDistance: d
|
|
51
51
|
}) => {
|
|
52
|
-
const c =
|
|
53
|
-
() => te(t, o, r,
|
|
54
|
-
() => ee(t, o, r,
|
|
52
|
+
const c = g - n - e, f = n, v = h - t - o, m = t, w = () => _(
|
|
53
|
+
() => te(t, o, r, h),
|
|
54
|
+
() => ee(t, o, r, h),
|
|
55
55
|
t,
|
|
56
56
|
o,
|
|
57
57
|
r
|
|
58
58
|
), y = () => ne(
|
|
59
|
-
() => se(n,
|
|
59
|
+
() => se(n, g, i, e),
|
|
60
60
|
() => ie(n, i),
|
|
61
61
|
n,
|
|
62
62
|
i,
|
|
63
|
-
|
|
63
|
+
g,
|
|
64
64
|
e
|
|
65
|
-
), H = () => Y(i, e, n,
|
|
65
|
+
), H = () => Y(i, e, n, g) ? n + e / 2 - i / 2 : y(), T = () => Z(r, o, t, h) ? t + o / 2 - r / 2 : w(), C = () => n + i <= g ? n : y(), O = () => n + e - i >= 0 ? n + e - i : y(), L = () => t + r <= h ? t : w(), G = () => t + o - r >= 0 ? t + o - r : w();
|
|
66
66
|
let u = 0, E = 0;
|
|
67
|
-
const M = t - r - d, k = t + o + d,
|
|
68
|
-
switch (s.startsWith("top") ? E = P ? M : F ? k : Math.max(M, k) : s.startsWith("bottom") ? E = F ? k : P ? M : Math.max(k) : s.startsWith("left") ? u = R ?
|
|
67
|
+
const M = t - r - d, k = t + o + d, D = n - i - d, I = n + e + d, P = m >= r + d, F = v >= r + d, R = f >= i + d, $ = c >= i + d;
|
|
68
|
+
switch (s.startsWith("top") ? E = P ? M : F ? k : Math.max(M, k) : s.startsWith("bottom") ? E = F ? k : P ? M : Math.max(k) : s.startsWith("left") ? u = R ? D : $ ? I : Math.max(D, I) : s.startsWith("right") && (u = $ ? I : R ? D : Math.max(I, D)), s) {
|
|
69
69
|
case "bottom":
|
|
70
70
|
case "bottom-middle":
|
|
71
71
|
case "top":
|
|
@@ -76,11 +76,11 @@ var oe = ({
|
|
|
76
76
|
case "left-middle":
|
|
77
77
|
case "right":
|
|
78
78
|
case "right-middle":
|
|
79
|
-
E =
|
|
79
|
+
E = T();
|
|
80
80
|
break;
|
|
81
81
|
case "bottom-start":
|
|
82
82
|
case "top-start":
|
|
83
|
-
u =
|
|
83
|
+
u = C();
|
|
84
84
|
break;
|
|
85
85
|
case "bottom-end":
|
|
86
86
|
case "top-end":
|
|
@@ -131,15 +131,15 @@ var re = class {
|
|
|
131
131
|
}), p(this, "initPlacement", () => {
|
|
132
132
|
var c;
|
|
133
133
|
this.validateElements(), this.setInitialStyles();
|
|
134
|
-
const f = window.innerWidth, v = window.innerHeight, { popperHeight:
|
|
134
|
+
const f = window.innerWidth, v = window.innerHeight, { popperHeight: m, popperWidth: w, refHeight: y, refWidth: H, refLeft: T, refTop: C } = Q({ reference: this.reference, popper: this.popper }), { x: O, y: L } = oe(
|
|
135
135
|
{
|
|
136
136
|
placement: this.placement,
|
|
137
137
|
refWidth: H,
|
|
138
|
-
refTop:
|
|
139
|
-
refLeft:
|
|
138
|
+
refTop: C,
|
|
139
|
+
refLeft: T,
|
|
140
140
|
popperWidth: w,
|
|
141
141
|
refHeight: y,
|
|
142
|
-
popperHeight:
|
|
142
|
+
popperHeight: m,
|
|
143
143
|
windowHeight: v,
|
|
144
144
|
windowWidth: f,
|
|
145
145
|
offsetDistance: this.offsetDistance
|
|
@@ -161,7 +161,7 @@ var re = class {
|
|
|
161
161
|
offsetDistance: o = 10,
|
|
162
162
|
placement: i = J,
|
|
163
163
|
eventEffect: r = {},
|
|
164
|
-
onUpdate:
|
|
164
|
+
onUpdate: h
|
|
165
165
|
} = n;
|
|
166
166
|
if (!(e instanceof HTMLElement))
|
|
167
167
|
throw new Error("Invalid HTMLElement for Reference Element");
|
|
@@ -169,8 +169,8 @@ var re = class {
|
|
|
169
169
|
throw new Error("Invalid HTMLElement for Popper");
|
|
170
170
|
if (n.offsetDistance && typeof n.offsetDistance != "number")
|
|
171
171
|
throw new Error("OffsetDistance must be a number");
|
|
172
|
-
const { disableOnResize:
|
|
173
|
-
this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = o, this.placement = i, this.disableOnResize =
|
|
172
|
+
const { disableOnResize: g, disableOnScroll: d } = r;
|
|
173
|
+
this.isWindowEventsRegistered = false, this.reference = e, this.popper = t, this.offsetDistance = o, this.placement = i, this.disableOnResize = g || false, this.disableOnScroll = d || false, this.onUpdate = h;
|
|
174
174
|
}
|
|
175
175
|
/**
|
|
176
176
|
* Updates popper configuration and recalculates position
|
|
@@ -196,10 +196,10 @@ var le = ({
|
|
|
196
196
|
}) => {
|
|
197
197
|
const o = getComputedStyle(s), i = o.transition;
|
|
198
198
|
if (i !== "none" && i !== "" && !n.includes(i)) {
|
|
199
|
-
const r = "transitionend",
|
|
200
|
-
s.removeEventListener(r,
|
|
199
|
+
const r = "transitionend", h = () => {
|
|
200
|
+
s.removeEventListener(r, h), e();
|
|
201
201
|
};
|
|
202
|
-
s.addEventListener(r,
|
|
202
|
+
s.addEventListener(r, h, { once: true });
|
|
203
203
|
} else
|
|
204
204
|
e();
|
|
205
205
|
};
|
|
@@ -215,10 +215,11 @@ var he = ({
|
|
|
215
215
|
});
|
|
216
216
|
};
|
|
217
217
|
var b = ({ state: s, trigger: e, popper: t }) => {
|
|
218
|
+
const n = s === "open";
|
|
218
219
|
A(t, {
|
|
219
220
|
"data-state": s
|
|
220
221
|
}), A(e, {
|
|
221
|
-
"aria-expanded": `${
|
|
222
|
+
"aria-expanded": `${n}`
|
|
222
223
|
});
|
|
223
224
|
};
|
|
224
225
|
var ce = class {
|
|
@@ -228,43 +229,47 @@ var ce = class {
|
|
|
228
229
|
* @param {string | HTMLElement} params.trigger - The trigger element selector or HTMLElement
|
|
229
230
|
* @param {string | HTMLElement} params.content - The content element selector or HTMLElement
|
|
230
231
|
* @param {OverlayOptions} [params.options] - Configuration options for the overlay
|
|
231
|
-
* @throws {Error} When trigger or content elements are invalid
|
|
232
232
|
*/
|
|
233
233
|
constructor({ trigger: e, content: t, options: n = {} }) {
|
|
234
|
-
|
|
234
|
+
l(this, "triggerElement"), l(this, "contentElement"), l(this, "triggerStrategy"), l(this, "placement"), l(this, "offsetDistance"), l(this, "preventFromCloseOutside"), l(this, "preventFromCloseInside"), l(this, "options"), l(this, "defaultState"), l(this, "popper"), l(this, "eventEffect"), l(this, "getElement", (i) => typeof i == "string" ? ae(i) : i instanceof HTMLElement ? i : void 0), l(this, "handleDocumentClick", (i) => {
|
|
235
235
|
this.contentElement.getAttribute("data-state") === "open" && (!this.triggerElement.contains(i.target) && !this.preventFromCloseInside && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(i.target) && !this.contentElement.contains(i.target) && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(i.target) && !this.contentElement.contains(i.target) && !this.preventFromCloseOutside ? this.hide() : !this.triggerElement.contains(i.target) && this.contentElement.contains(i.target) && !this.preventFromCloseInside && this.hide());
|
|
236
|
-
}),
|
|
236
|
+
}), l(this, "handleKeyDown", (i) => {
|
|
237
237
|
i.preventDefault(), this.triggerStrategy !== "hover" && i.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
|
|
238
|
-
}),
|
|
238
|
+
}), l(this, "toggleStateOnClick", () => {
|
|
239
239
|
(this.contentElement.dataset.state || "close") === "close" ? (this.show(), this.triggerStrategy === "hover" && this.addEventOnMouseEnter()) : this.hide();
|
|
240
|
-
}),
|
|
240
|
+
}), l(this, "hideOnMouseLeaseTrigger", () => {
|
|
241
241
|
setTimeout(() => {
|
|
242
242
|
this.contentElement.matches(":hover") || this.hide();
|
|
243
243
|
}, 150);
|
|
244
|
-
}),
|
|
244
|
+
}), l(this, "hideOnMouseLeave", () => {
|
|
245
245
|
setTimeout(() => {
|
|
246
246
|
this.triggerElement.matches(":hover") || this.hide();
|
|
247
247
|
}, 150);
|
|
248
|
-
}),
|
|
248
|
+
}), l(this, "addEventOnMouseEnter", () => {
|
|
249
249
|
this.triggerElement.addEventListener("mouseleave", this.hideOnMouseLeaseTrigger), this.contentElement.addEventListener("mouseleave", this.hideOnMouseLeave);
|
|
250
|
-
}),
|
|
250
|
+
}), l(this, "showOnMouseEnter", () => {
|
|
251
251
|
this.show(), this.addEventOnMouseEnter();
|
|
252
|
-
}),
|
|
253
|
-
var
|
|
252
|
+
}), l(this, "setShowOptions", ({ placement: i, offsetDistance: r }) => {
|
|
253
|
+
var h, g, d, c;
|
|
254
254
|
this.popper.setOptions({
|
|
255
255
|
placement: i,
|
|
256
256
|
offsetDistance: r
|
|
257
|
-
}), document.addEventListener("keydown", this.handleKeyDown), document.addEventListener("click", this.handleDocumentClick), (
|
|
257
|
+
}), document.addEventListener("keydown", this.handleKeyDown), document.addEventListener("click", this.handleDocumentClick), (g = (h = this.options).beforeShow) == null || g.call(h), b({
|
|
258
258
|
state: "open",
|
|
259
259
|
popper: this.contentElement,
|
|
260
260
|
trigger: this.triggerElement
|
|
261
261
|
}), this.onToggleState(false), (c = (d = this.options).onShow) == null || c.call(d);
|
|
262
|
-
}),
|
|
262
|
+
}), l(this, "setPopperOptions", ({ placement: i, offsetDistance: r }) => {
|
|
263
263
|
this.popper.setOptions({
|
|
264
264
|
placement: i,
|
|
265
|
-
offsetDistance: r
|
|
265
|
+
offsetDistance: r || this.offsetDistance
|
|
266
266
|
});
|
|
267
|
-
}),
|
|
267
|
+
}), l(this, "setPopperTrigger", (i, r) => {
|
|
268
|
+
this.cleanup(), this.popper.setOptions({
|
|
269
|
+
placement: r.placement || this.placement,
|
|
270
|
+
offsetDistance: r.offsetDistance || this.offsetDistance
|
|
271
|
+
}), this.triggerElement = i, this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
|
|
272
|
+
}), l(this, "cleanup", () => {
|
|
268
273
|
this.triggerElement.removeEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.removeEventListener("mouseenter", this.showOnMouseEnter);
|
|
269
274
|
});
|
|
270
275
|
var o;
|
|
@@ -333,32 +338,32 @@ var U = (s, e = document.body) => Array.from(e.querySelectorAll(s));
|
|
|
333
338
|
var de = (s) => typeof s == "string" ? W(s) : s;
|
|
334
339
|
var pe = ({ containerElement: s, targetChildren: e = "a:not([disabled]), button:not([disabled])", direction: t }) => {
|
|
335
340
|
let n = false;
|
|
336
|
-
const o = de(s) || document.body, i = typeof e == "string" ? U(e, o) : e, r = (
|
|
337
|
-
if (
|
|
341
|
+
const o = de(s) || document.body, i = typeof e == "string" ? U(e, o) : e, r = (h) => {
|
|
342
|
+
if (h.preventDefault(), o.focus(), i.length === 0)
|
|
338
343
|
return;
|
|
339
|
-
const
|
|
340
|
-
let c = i.findIndex((
|
|
344
|
+
const g = h.key, d = document.activeElement;
|
|
345
|
+
let c = i.findIndex((m) => m === d);
|
|
341
346
|
if (c === -1) {
|
|
342
|
-
|
|
347
|
+
g === "ArrowUp" || g === "ArrowLeft" ? i[i.length - 1].focus() : i[0].focus();
|
|
343
348
|
return;
|
|
344
349
|
}
|
|
345
|
-
const f = (
|
|
346
|
-
switch (
|
|
350
|
+
const f = (m) => m > 0 ? m - 1 : i.length - 1, v = (m) => m < i.length - 1 ? m + 1 : 0;
|
|
351
|
+
switch (g) {
|
|
347
352
|
case "ArrowDown":
|
|
348
|
-
|
|
353
|
+
h.preventDefault(), c = v(c);
|
|
349
354
|
break;
|
|
350
355
|
case "ArrowRight":
|
|
351
356
|
break;
|
|
352
357
|
case "ArrowUp":
|
|
353
|
-
|
|
358
|
+
h.preventDefault(), c = f(c);
|
|
354
359
|
break;
|
|
355
360
|
case "ArrowLeft":
|
|
356
361
|
break;
|
|
357
362
|
case "Home":
|
|
358
|
-
|
|
363
|
+
h.preventDefault(), c = 0;
|
|
359
364
|
break;
|
|
360
365
|
case "End":
|
|
361
|
-
|
|
366
|
+
h.preventDefault(), c = i.length - 1;
|
|
362
367
|
break;
|
|
363
368
|
default:
|
|
364
369
|
return;
|
|
@@ -405,49 +410,55 @@ var S = class S2 {
|
|
|
405
410
|
* @throws {Error} If provided elements are not valid HTMLElements
|
|
406
411
|
*/
|
|
407
412
|
constructor(e, t = {}) {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
413
|
+
a(this, "triggerElement");
|
|
414
|
+
a(this, "contentElement");
|
|
415
|
+
a(this, "options");
|
|
416
|
+
a(this, "OverlayInstance");
|
|
417
|
+
a(this, "navigationKeys");
|
|
418
|
+
a(this, "triggerStrategy");
|
|
419
|
+
a(this, "placement");
|
|
420
|
+
a(this, "offsetDistance");
|
|
421
|
+
a(this, "preventFromCloseOutside");
|
|
422
|
+
a(this, "preventFromCloseInside");
|
|
423
|
+
a(this, "defaultState");
|
|
424
|
+
a(this, "onToggle", ({ isHidden: e2 }) => {
|
|
420
425
|
var t2, n2;
|
|
421
426
|
(n2 = (t2 = this.options).onToggle) == null || n2.call(t2, { isHidden: e2 });
|
|
422
427
|
});
|
|
423
|
-
|
|
428
|
+
a(this, "beforeShow", () => {
|
|
424
429
|
this.contentElement.focus(), this.navigationKeys.make();
|
|
425
430
|
});
|
|
426
|
-
|
|
431
|
+
a(this, "beforeHide", () => {
|
|
427
432
|
this.contentElement.blur(), this.navigationKeys.destroy();
|
|
428
433
|
});
|
|
429
|
-
|
|
434
|
+
a(this, "onShow", () => {
|
|
430
435
|
var e2, t2;
|
|
431
436
|
K(this.contentElement, "dropdown-show", {
|
|
432
437
|
isHidden: false
|
|
433
438
|
}), (t2 = (e2 = this.options).onShow) == null || t2.call(e2);
|
|
434
439
|
});
|
|
435
|
-
|
|
440
|
+
a(this, "onHide", () => {
|
|
436
441
|
var e2, t2;
|
|
437
442
|
K(this.contentElement, "dropdown-hide", {
|
|
438
443
|
isHidden: true
|
|
439
444
|
}), (t2 = (e2 = this.options).onHide) == null || t2.call(e2);
|
|
440
445
|
});
|
|
441
|
-
|
|
446
|
+
a(this, "show", () => {
|
|
442
447
|
this.OverlayInstance.show();
|
|
443
448
|
});
|
|
444
|
-
|
|
449
|
+
a(this, "hide", () => {
|
|
445
450
|
this.OverlayInstance.hide();
|
|
446
451
|
});
|
|
447
|
-
|
|
452
|
+
a(this, "setShowOptions", ({ placement: e2, offsetDistance: t2 }) => {
|
|
448
453
|
this.OverlayInstance.setShowOptions({ placement: e2, offsetDistance: t2 });
|
|
449
454
|
});
|
|
450
|
-
|
|
455
|
+
a(this, "setOptions", ({ placement: e2, offsetDistance: t2 }) => {
|
|
456
|
+
this.OverlayInstance.setPopperOptions({ placement: e2, offsetDistance: t2 });
|
|
457
|
+
});
|
|
458
|
+
a(this, "setPopperTrigger", (e2, t2) => {
|
|
459
|
+
this.OverlayInstance.setPopperTrigger(e2, t2);
|
|
460
|
+
});
|
|
461
|
+
a(this, "cleanup", () => {
|
|
451
462
|
this.OverlayInstance.cleanup(), x.removeInstance("dropdown", this.contentElement);
|
|
452
463
|
});
|
|
453
464
|
const n = typeof e == "string" ? W(e) : e;
|
|
@@ -499,7 +510,7 @@ var S = class S2 {
|
|
|
499
510
|
new S2(e, t);
|
|
500
511
|
}
|
|
501
512
|
};
|
|
502
|
-
|
|
513
|
+
a(S, "autoInit", (e = "[data-fx-dropdown]") => {
|
|
503
514
|
const t = U(e);
|
|
504
515
|
for (const n of t)
|
|
505
516
|
new S(n);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flexilla/alpine-dropdown",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "AlpineJS plugin for adding Dropdown functionality to your AlpineJS components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"Flexilla"
|
|
59
59
|
],
|
|
60
60
|
"dependencies": {
|
|
61
|
-
"@flexilla/dropdown": "^2.1.
|
|
61
|
+
"@flexilla/dropdown": "^2.1.3"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "584636c3f3b85dfa71666f5354221dcfc385f9e6"
|
|
64
64
|
}
|