@flexilla/alpine-popover 0.3.0 → 0.3.1
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 +80 -66
- package/dist/cdn.min.js +1 -1
- package/dist/module.cjs.js +80 -66
- package/dist/module.esm.js +80 -66
- package/package.json +3 -3
package/dist/cdn.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
(() => {
|
|
2
2
|
// ../../node_modules/@flexilla/popover/dist/popover.js
|
|
3
|
-
var B = Object.defineProperty;
|
|
4
|
-
var j = (n, e, t) => e in n ? B(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
5
|
-
var a = (n, e, t) => j(n, typeof e != "symbol" ? e + "" : e, t);
|
|
6
3
|
var q = Object.defineProperty;
|
|
7
4
|
var G = (n, e, t) => e in n ? q(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
8
|
-
var
|
|
9
|
-
var U =
|
|
10
|
-
var K = ({
|
|
5
|
+
var a = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
|
|
6
|
+
var U = Object.defineProperty;
|
|
7
|
+
var K = (n, e, t) => e in n ? U(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
8
|
+
var p = (n, e, t) => K(n, typeof e != "symbol" ? e + "" : e, t);
|
|
9
|
+
var V = "bottom";
|
|
10
|
+
var X = ({ reference: n, popper: e }) => {
|
|
11
11
|
if (!n || !e)
|
|
12
12
|
throw new Error("Reference or popper element is null or undefined");
|
|
13
13
|
const t = /* @__PURE__ */ new WeakMap(), i = (r) => (t.has(r) || t.set(r, r.getBoundingClientRect()), t.get(r)), o = i(e), s = i(n);
|
|
@@ -21,21 +21,21 @@
|
|
|
21
21
|
refRight: s.right
|
|
22
22
|
};
|
|
23
23
|
};
|
|
24
|
-
var
|
|
24
|
+
var Y = (n, e, t, i) => {
|
|
25
25
|
const o = t, s = i - (t + e);
|
|
26
26
|
return o >= (n - e) / 2 && s >= (n - e) / 2;
|
|
27
27
|
};
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
var
|
|
28
|
+
var J = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
|
|
29
|
+
var Q = (n, e, t, i, o) => t > o - i ? e() ? window.innerHeight - o : t - o : n() ? 0 : t + i;
|
|
30
|
+
var Z = (n, e, t, i) => n <= i && t - n <= e;
|
|
31
|
+
var _ = (n, e, t, i) => t <= i && -n <= e;
|
|
32
|
+
var ee = (n, e, t, i, o, s) => {
|
|
33
33
|
const r = o - t - s, h = t - i, d = t + s - i + (o - t - s), c = r >= 0 ? o - i : h >= 0 ? t - i : t;
|
|
34
34
|
return n() ? 0 : e() ? d : c;
|
|
35
35
|
};
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
36
|
+
var te = (n, e, t, i) => n <= t && e - n - i >= n;
|
|
37
|
+
var ne = (n, e) => n >= e;
|
|
38
|
+
var ie = ({
|
|
39
39
|
placement: n,
|
|
40
40
|
refWidth: e,
|
|
41
41
|
refTop: t,
|
|
@@ -47,23 +47,23 @@
|
|
|
47
47
|
windowWidth: d,
|
|
48
48
|
offsetDistance: c
|
|
49
49
|
}) => {
|
|
50
|
-
const m = d - i - e,
|
|
51
|
-
() =>
|
|
52
|
-
() =>
|
|
50
|
+
const m = d - i - e, u = i, x = h - t - o, C = t, v = () => Q(
|
|
51
|
+
() => _(t, o, r, h),
|
|
52
|
+
() => Z(t, o, r, h),
|
|
53
53
|
t,
|
|
54
54
|
o,
|
|
55
55
|
r
|
|
56
|
-
), E = () =>
|
|
57
|
-
() =>
|
|
58
|
-
() =>
|
|
56
|
+
), E = () => ee(
|
|
57
|
+
() => te(i, d, s, e),
|
|
58
|
+
() => ne(i, s),
|
|
59
59
|
i,
|
|
60
60
|
s,
|
|
61
61
|
d,
|
|
62
62
|
e
|
|
63
|
-
), D = () =>
|
|
63
|
+
), D = () => Y(s, e, i, d) ? i + e / 2 - s / 2 : E(), M = () => J(r, o, t, h) ? t + o / 2 - r / 2 : v(), T = () => i + s <= d ? i : E(), y = () => i + e - s >= 0 ? i + e - s : E(), O = () => t + r <= h ? t : v(), j = () => t + o - r >= 0 ? t + o - r : v();
|
|
64
64
|
let f = 0, g = 0;
|
|
65
|
-
const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c,
|
|
66
|
-
switch (n.startsWith("top") ? g =
|
|
65
|
+
const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c, F = C >= r + c, $ = x >= r + c, R = u >= s + c, A = m >= s + c;
|
|
66
|
+
switch (n.startsWith("top") ? g = F ? k : $ ? S : Math.max(k, S) : n.startsWith("bottom") ? g = $ ? S : F ? k : Math.max(S) : n.startsWith("left") ? f = R ? L : A ? I : Math.max(L, I) : n.startsWith("right") && (f = A ? I : R ? L : Math.max(I, L)), n) {
|
|
67
67
|
case "bottom":
|
|
68
68
|
case "bottom-middle":
|
|
69
69
|
case "top":
|
|
@@ -90,12 +90,12 @@
|
|
|
90
90
|
break;
|
|
91
91
|
case "left-end":
|
|
92
92
|
case "right-end":
|
|
93
|
-
g =
|
|
93
|
+
g = j();
|
|
94
94
|
break;
|
|
95
95
|
}
|
|
96
96
|
return { x: f, y: g };
|
|
97
97
|
};
|
|
98
|
-
var
|
|
98
|
+
var se = class {
|
|
99
99
|
/**
|
|
100
100
|
* Flexilla Popper
|
|
101
101
|
* @param reference
|
|
@@ -122,24 +122,24 @@
|
|
|
122
122
|
throw new Error("Invalid HTMLElement for Popper");
|
|
123
123
|
if (typeof this.offsetDistance != "number")
|
|
124
124
|
throw new Error("OffsetDistance must be a number");
|
|
125
|
-
}), p(this, "setPopperStyleProperty", (m,
|
|
126
|
-
this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${
|
|
125
|
+
}), p(this, "setPopperStyleProperty", (m, u) => {
|
|
126
|
+
this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${u}px`);
|
|
127
127
|
}), p(this, "setInitialStyles", () => {
|
|
128
128
|
this.popper.style.setProperty("--fx-popper-placement-x", ""), this.popper.style.setProperty("--fx-popper-placement-y", "");
|
|
129
129
|
}), p(this, "initPlacement", () => {
|
|
130
130
|
var m;
|
|
131
131
|
this.validateElements(), this.setInitialStyles();
|
|
132
|
-
const
|
|
132
|
+
const u = window.innerWidth, x = window.innerHeight, { popperHeight: C, popperWidth: v, refHeight: E, refWidth: D, refLeft: M, refTop: T } = X({ reference: this.reference, popper: this.popper }), { x: y, y: O } = ie(
|
|
133
133
|
{
|
|
134
134
|
placement: this.placement,
|
|
135
135
|
refWidth: D,
|
|
136
136
|
refTop: T,
|
|
137
137
|
refLeft: M,
|
|
138
|
-
popperWidth:
|
|
138
|
+
popperWidth: v,
|
|
139
139
|
refHeight: E,
|
|
140
140
|
popperHeight: C,
|
|
141
141
|
windowHeight: x,
|
|
142
|
-
windowWidth:
|
|
142
|
+
windowWidth: u,
|
|
143
143
|
offsetDistance: this.offsetDistance
|
|
144
144
|
}
|
|
145
145
|
);
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
});
|
|
158
158
|
const {
|
|
159
159
|
offsetDistance: o = 10,
|
|
160
|
-
placement: s =
|
|
160
|
+
placement: s = V,
|
|
161
161
|
eventEffect: r = {},
|
|
162
162
|
onUpdate: h
|
|
163
163
|
} = i;
|
|
@@ -181,15 +181,15 @@
|
|
|
181
181
|
this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
|
|
182
182
|
}
|
|
183
183
|
};
|
|
184
|
-
var
|
|
185
|
-
var
|
|
186
|
-
var l = (n, e, t) =>
|
|
187
|
-
var
|
|
184
|
+
var oe = Object.defineProperty;
|
|
185
|
+
var re = (n, e, t) => e in n ? oe(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
186
|
+
var l = (n, e, t) => re(n, typeof e != "symbol" ? e + "" : e, t);
|
|
187
|
+
var ae = (n, e = document.body) => e.querySelector(n);
|
|
188
188
|
var N = (n, e) => {
|
|
189
189
|
for (const [t, i] of Object.entries(e))
|
|
190
190
|
n.setAttribute(t, i);
|
|
191
191
|
};
|
|
192
|
-
var
|
|
192
|
+
var le = ({
|
|
193
193
|
element: n,
|
|
194
194
|
callback: e,
|
|
195
195
|
type: t,
|
|
@@ -204,18 +204,18 @@
|
|
|
204
204
|
} else
|
|
205
205
|
e();
|
|
206
206
|
};
|
|
207
|
-
var
|
|
207
|
+
var he = ({
|
|
208
208
|
element: n,
|
|
209
209
|
callback: e
|
|
210
210
|
}) => {
|
|
211
|
-
|
|
211
|
+
le({
|
|
212
212
|
element: n,
|
|
213
213
|
callback: e,
|
|
214
214
|
type: "transition",
|
|
215
215
|
keysCheck: ["all 0s ease 0s", "all"]
|
|
216
216
|
});
|
|
217
217
|
};
|
|
218
|
-
var
|
|
218
|
+
var pe = (n, e, t) => {
|
|
219
219
|
const i = new CustomEvent(e, { detail: t });
|
|
220
220
|
n.dispatchEvent(i);
|
|
221
221
|
};
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
"aria-expanded": `${i}`
|
|
228
228
|
});
|
|
229
229
|
};
|
|
230
|
-
var
|
|
230
|
+
var ce = class {
|
|
231
231
|
/**
|
|
232
232
|
* Creates an instance of CreateOverlay
|
|
233
233
|
* @param {Object} params - The initialization parameters
|
|
@@ -236,7 +236,7 @@
|
|
|
236
236
|
* @param {OverlayOptions} [params.options] - Configuration options for the overlay
|
|
237
237
|
*/
|
|
238
238
|
constructor({ trigger: e, content: t, options: i = {} }) {
|
|
239
|
-
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" ?
|
|
239
|
+
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" ? ae(s) : s instanceof HTMLElement ? s : void 0), l(this, "handleDocumentClick", (s) => {
|
|
240
240
|
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());
|
|
241
241
|
}), l(this, "handleKeyDown", (s) => {
|
|
242
242
|
s.preventDefault(), this.triggerStrategy !== "hover" && s.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
|
|
@@ -282,7 +282,7 @@
|
|
|
282
282
|
throw new Error("Trigger element must be a valid HTML element");
|
|
283
283
|
if (!(this.contentElement instanceof HTMLElement))
|
|
284
284
|
throw new Error("Content element must be a valid HTML element");
|
|
285
|
-
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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new
|
|
285
|
+
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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new se(
|
|
286
286
|
this.triggerElement,
|
|
287
287
|
this.contentElement,
|
|
288
288
|
{
|
|
@@ -315,7 +315,7 @@
|
|
|
315
315
|
hide() {
|
|
316
316
|
var e, t, i;
|
|
317
317
|
let o = false;
|
|
318
|
-
|
|
318
|
+
pe(this.contentElement, "before-hide", {
|
|
319
319
|
setExitAction: (r) => {
|
|
320
320
|
o = r;
|
|
321
321
|
}
|
|
@@ -325,7 +325,7 @@
|
|
|
325
325
|
state: "close",
|
|
326
326
|
popper: this.contentElement,
|
|
327
327
|
trigger: this.triggerElement
|
|
328
|
-
}), 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)),
|
|
328
|
+
}), 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)), he({
|
|
329
329
|
element: this.contentElement,
|
|
330
330
|
callback: () => {
|
|
331
331
|
var r, h;
|
|
@@ -345,13 +345,13 @@
|
|
|
345
345
|
}), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
|
|
346
346
|
}
|
|
347
347
|
};
|
|
348
|
-
var
|
|
349
|
-
var
|
|
348
|
+
var z = (n, e = document.body) => e.querySelector(n);
|
|
349
|
+
var de = (n, e = document.body) => Array.from(e.querySelectorAll(n));
|
|
350
350
|
var H = (n, e, t) => {
|
|
351
351
|
const i = new CustomEvent(e, { detail: t });
|
|
352
352
|
n.dispatchEvent(i);
|
|
353
353
|
};
|
|
354
|
-
function
|
|
354
|
+
function me(n) {
|
|
355
355
|
const e = () => {
|
|
356
356
|
document.querySelector(
|
|
357
357
|
"[data-fx-component]:not([data-component-initialized])"
|
|
@@ -359,26 +359,40 @@
|
|
|
359
359
|
};
|
|
360
360
|
e();
|
|
361
361
|
}
|
|
362
|
-
|
|
362
|
+
var B = "data-fx-teleport-root";
|
|
363
|
+
var P = "data-fx-teleported";
|
|
364
|
+
var fe = {
|
|
365
|
+
append: () => {
|
|
366
|
+
},
|
|
367
|
+
remove: () => {
|
|
368
|
+
},
|
|
369
|
+
restore: () => {
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
function ge(n, e, t = "move") {
|
|
373
|
+
var i;
|
|
363
374
|
if (!(n instanceof HTMLElement))
|
|
364
375
|
throw new Error("Source element must be an HTMLElement");
|
|
365
376
|
if (!(e instanceof HTMLElement))
|
|
366
377
|
throw new Error("Target element must be an HTMLElement");
|
|
367
378
|
if (!["move", "detachable"].includes(t))
|
|
368
379
|
throw new Error(`Invalid teleport mode: ${t}. Must be "move" or "detachable".`);
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
380
|
+
if ((i = n.parentElement) != null && i.closest(`[${B}]`))
|
|
381
|
+
return fe;
|
|
382
|
+
n.setAttribute(B, "");
|
|
383
|
+
let o = document.createComment("teleporter-placeholder");
|
|
384
|
+
const s = n.parentNode;
|
|
385
|
+
return s && s.insertBefore(o, n), t === "move" ? (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
|
|
372
386
|
append() {
|
|
373
|
-
n.parentNode !== e && e.appendChild(n);
|
|
387
|
+
n.parentNode !== e && (e.appendChild(n), n.setAttribute(P, ""));
|
|
374
388
|
},
|
|
375
389
|
remove() {
|
|
376
|
-
|
|
390
|
+
o != null && o.parentNode && n.parentNode && o.parentNode.insertBefore(n, o);
|
|
377
391
|
},
|
|
378
392
|
restore() {
|
|
379
|
-
|
|
393
|
+
o != null && o.parentNode && n.parentNode !== s && o.parentNode.insertBefore(n, o);
|
|
380
394
|
}
|
|
381
|
-
}) : (n.parentNode && e.appendChild(n), {
|
|
395
|
+
}) : (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
|
|
382
396
|
append() {
|
|
383
397
|
e.contains(n) || e.appendChild(n);
|
|
384
398
|
},
|
|
@@ -386,7 +400,7 @@
|
|
|
386
400
|
n.parentNode && n.remove();
|
|
387
401
|
},
|
|
388
402
|
restore() {
|
|
389
|
-
|
|
403
|
+
o != null && o.parentNode && !n.parentNode && o.parentNode.insertBefore(n, o);
|
|
390
404
|
}
|
|
391
405
|
});
|
|
392
406
|
}
|
|
@@ -415,11 +429,11 @@
|
|
|
415
429
|
e.setAttribute("data-component-initialized", "initialized");
|
|
416
430
|
}
|
|
417
431
|
};
|
|
418
|
-
var
|
|
432
|
+
var ue = {
|
|
419
433
|
teleport: true,
|
|
420
434
|
teleportMode: "move"
|
|
421
435
|
};
|
|
422
|
-
var
|
|
436
|
+
var W = class _W {
|
|
423
437
|
/**
|
|
424
438
|
* Creates a new Popover instance.
|
|
425
439
|
* @param {string | HTMLElement} popoverEl - The popover content element or its selector.
|
|
@@ -449,7 +463,7 @@
|
|
|
449
463
|
a(this, "experimentalOptions");
|
|
450
464
|
a(this, "teleporter");
|
|
451
465
|
a(this, "moveElOnInit", () => {
|
|
452
|
-
this.experimentalOptions.teleport &&
|
|
466
|
+
this.experimentalOptions.teleport && me(() => {
|
|
453
467
|
this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
|
|
454
468
|
});
|
|
455
469
|
});
|
|
@@ -492,12 +506,12 @@
|
|
|
492
506
|
a(this, "cleanup", () => {
|
|
493
507
|
this.PopoverInstance.cleanup(), b.removeInstance("popover", this.contentElement);
|
|
494
508
|
});
|
|
495
|
-
const i = typeof e == "string" ?
|
|
509
|
+
const i = typeof e == "string" ? z(e) : e;
|
|
496
510
|
this.contentElement = i;
|
|
497
511
|
const o = b.getInstance("popover", this.contentElement);
|
|
498
512
|
if (o)
|
|
499
513
|
return o;
|
|
500
|
-
b.setup(this.contentElement), this.triggerElement =
|
|
514
|
+
b.setup(this.contentElement), this.triggerElement = z(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`), this.options = t, this.triggerStrategy = i.dataset.triggerStrategy ?? this.options.triggerStrategy ?? "click", this.placement = i.dataset.placement ?? this.options.placement ?? "bottom-middle", this.offsetDistance = parseInt(`${i.dataset.offsetDistance}`) ?? this.options.offsetDistance ?? 6, this.preventFromCloseOutside = i.hasAttribute("data-prevent-close-outside") ?? this.options.preventFromCloseOutside ?? false, this.preventFromCloseInside = i.hasAttribute("data-close-inside") ? false : this.options.preventCloseFromInside ?? true, this.defaultState = i.dataset.defaultState ?? this.options.defaultState ?? "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = ge(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.PopoverInstance = new ce({
|
|
501
515
|
trigger: this.triggerElement,
|
|
502
516
|
content: this.contentElement,
|
|
503
517
|
options: {
|
|
@@ -532,7 +546,7 @@
|
|
|
532
546
|
* });
|
|
533
547
|
*/
|
|
534
548
|
static init(e, t) {
|
|
535
|
-
return new
|
|
549
|
+
return new _W(e, t);
|
|
536
550
|
}
|
|
537
551
|
/**
|
|
538
552
|
* Automatically initializes all popover elements matching the specified selector.
|
|
@@ -545,16 +559,16 @@
|
|
|
545
559
|
* Popover.autoInit('.custom-popover');
|
|
546
560
|
*/
|
|
547
561
|
static autoInit(e = "[data-fx-popover]") {
|
|
548
|
-
const t =
|
|
562
|
+
const t = de(e);
|
|
549
563
|
for (const i of t)
|
|
550
|
-
new
|
|
564
|
+
new _W(i);
|
|
551
565
|
}
|
|
552
566
|
};
|
|
553
567
|
|
|
554
568
|
// src/index.js
|
|
555
569
|
function Popover(Alpine) {
|
|
556
570
|
Alpine.directive("popover", (el, {}, { cleanup }) => {
|
|
557
|
-
const popover_ = new
|
|
571
|
+
const popover_ = new W(el);
|
|
558
572
|
cleanup(() => {
|
|
559
573
|
popover_.cleanup();
|
|
560
574
|
});
|
package/dist/cdn.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var G=Object.defineProperty,K=(i,e,t)=>e in i?G(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,a=(i,e,t)=>K(i,typeof e!="symbol"?e+"":e,t),U=Object.defineProperty,J=(i,e,t)=>e in i?U(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,p=(i,e,t)=>J(i,typeof e!="symbol"?e+"":e,t),Q="bottom",V=({reference:i,popper:e})=>{if(!i||!e)throw new Error("Reference or popper element is null or undefined");let t=new WeakMap,n=o=>(t.has(o)||t.set(o,o.getBoundingClientRect()),t.get(o)),r=n(e),s=n(i);return{popperHeight:r.height,popperWidth:r.width,refHeight:s.height,refWidth:s.width,refLeft:s.left,refTop:s.top,refRight:s.right}},X=(i,e,t,n)=>{let r=t,s=n-(t+e);return r>=(i-e)/2&&s>=(i-e)/2},Y=(i,e,t,n)=>(i-e)/2<=t&&t+i/2+e/2<=n,Z=(i,e,t,n,r)=>t>r-n?e()?window.innerHeight-r:t-r:i()?0:t+n,_=(i,e,t,n)=>i<=n&&t-i<=e,ee=(i,e,t,n)=>t<=n&&-i<=e,te=(i,e,t,n,r,s)=>{let o=r-t-s,h=t-n,d=t+s-n+(r-t-s),c=o>=0?r-n:h>=0?t-n:t;return i()?0:e()?d:c},ie=(i,e,t,n)=>i<=t&&e-i-n>=i,ne=(i,e)=>i>=e,se=({placement:i,refWidth:e,refTop:t,refLeft:n,refHeight:r,popperWidth:s,popperHeight:o,windowHeight:h,windowWidth:d,offsetDistance:c})=>{let m=d-n-e,E=n,x=h-t-r,C=t,u=()=>Z(()=>ee(t,r,o,h),()=>_(t,r,o,h),t,r,o),w=()=>te(()=>ie(n,d,s,e),()=>ne(n,s),n,s,d,e),M=()=>X(s,e,n,d)?n+e/2-s/2:w(),H=()=>Y(o,r,t,h)?t+r/2-o/2:u(),P=()=>n+s<=d?n:w(),y=()=>n+e-s>=0?n+e-s:w(),O=()=>t+o<=h?t:u(),B=()=>t+r-o>=0?t+r-o:u(),g=0,v=0,T=t-o-c,S=t+r+c,L=n-s-c,D=n+e+c,R=C>=o+c,$=x>=o+c,A=E>=s+c,N=m>=s+c;switch(i.startsWith("top")?v=R?T:$?S:Math.max(T,S):i.startsWith("bottom")?v=$?S:R?T:Math.max(S):i.startsWith("left")?g=A?L:N?D:Math.max(L,D):i.startsWith("right")&&(g=N?D:A?L:Math.max(D,L)),i){case"bottom":case"bottom-middle":case"top":case"top-middle":g=M();break;case"left":case"left-middle":case"right":case"right-middle":v=H();break;case"bottom-start":case"top-start":g=P();break;case"bottom-end":case"top-end":g=y();break;case"left-start":case"right-start":v=O();break;case"left-end":case"right-end":v=B();break}return{x:g,y:v}},W=class{constructor(e,t,n={}){p(this,"reference"),p(this,"popper"),p(this,"offsetDistance"),p(this,"placement"),p(this,"disableOnResize"),p(this,"disableOnScroll"),p(this,"onUpdate"),p(this,"isWindowEventsRegistered"),p(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")}),p(this,"setPopperStyleProperty",(m,E)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${m}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${E}px`)}),p(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),p(this,"initPlacement",()=>{var m;this.validateElements(),this.setInitialStyles();let E=window.innerWidth,x=window.innerHeight,{popperHeight:C,popperWidth:u,refHeight:w,refWidth:M,refLeft:H,refTop:P}=V({reference:this.reference,popper:this.popper}),{x:y,y:O}=se({placement:this.placement,refWidth:M,refTop:P,refLeft:H,popperWidth:u,refHeight:w,popperHeight:C,windowHeight:x,windowWidth:E,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(y,O),(m=this.onUpdate)==null||m.call(this,{x:y,y:O,placement:this.placement})}),p(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),p(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),p(this,"resetPosition",()=>{this.setInitialStyles()}),p(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),p(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:r=10,placement:s=Q,eventEffect:o={},onUpdate:h}=n;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(t instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(n.offsetDistance&&typeof n.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:d,disableOnScroll:c}=o;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=t,this.offsetDistance=r,this.placement=s,this.disableOnResize=d||!1,this.disableOnScroll=c||!1,this.onUpdate=h}setOptions({placement:e,offsetDistance:t}){this.placement=e,this.offsetDistance=t||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},oe=Object.defineProperty,re=(i,e,t)=>e in i?oe(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,l=(i,e,t)=>re(i,typeof e!="symbol"?e+"":e,t),ae=(i,e=document.body)=>e.querySelector(i),z=(i,e)=>{for(let[t,n]of Object.entries(e))i.setAttribute(t,n)},le=({element:i,callback:e,type:t,keysCheck:n})=>{let r=getComputedStyle(i),s=r.transition;if(s!=="none"&&s!==""&&!n.includes(s)){let o="transitionend",h=()=>{i.removeEventListener(o,h),e()};i.addEventListener(o,h,{once:!0})}else e()},he=({element:i,callback:e})=>{le({element:i,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},pe=(i,e,t)=>{let n=new CustomEvent(e,{detail:t});i.dispatchEvent(n)},b=({state:i,trigger:e,popper:t})=>{let n=i==="open";z(t,{"data-state":i}),z(e,{"aria-expanded":`${n}`})},F=class{constructor({trigger:e,content:t,options:n={}}){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"?ae(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 h,d,c,m;this.popper.setOptions({placement:s,offsetDistance:o}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(d=(h=this.options).beforeShow)==null||d.call(h),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(m=(c=this.options).onShow)==null||m.call(c)}),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=n,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 W(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var t,n;(n=(t=this.options).onToggle)==null||n.call(t,{isHidden:e})}show(){var e,t,n,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=(n=this.options).onShow)==null||r.call(n)}hide(){var e,t,n;let r=!1;pe(this.contentElement,"before-hide",{setExitAction:o=>{r=o}});let s=(n=(t=(e=this.options).beforeHide)==null?void 0:t.call(e))==null?void 0:n.cancelAction;r||s||(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)),he({element:this.contentElement,callback:()=>{var o,h;this.onToggleState(!0),this.popper.cleanupEvents(),(h=(o=this.options).onHide)==null||h.call(o)}}))}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)}},j=(i,e=document.body)=>e.querySelector(i),ce=(i,e=document.body)=>Array.from(e.querySelectorAll(i)),k=(i,e,t)=>{let n=new CustomEvent(e,{detail:t});i.dispatchEvent(n)};function de(i){let e=()=>{document.querySelector("[data-fx-component]:not([data-component-initialized])")?requestAnimationFrame(e):i()};e()}function me(i,e,t="move"){if(!(i instanceof HTMLElement))throw new Error("Source element must be an HTMLElement");if(!(e instanceof HTMLElement))throw new Error("Target element must be an HTMLElement");if(!["move","detachable"].includes(t))throw new Error(`Invalid teleport mode: ${t}. Must be "move" or "detachable".`);let n=document.createComment("teleporter-placeholder"),r=i.parentNode;return r?r.insertBefore(n,i):console.warn("Element has no parent; placeholder not inserted."),t==="move"?(i.parentNode&&e.appendChild(i),{append(){i.parentNode!==e&&e.appendChild(i)},remove(){n!=null&&n.parentNode&&i.parentNode&&n.parentNode.insertBefore(i,n)},restore(){n!=null&&n.parentNode&&i.parentNode!==r&&n.parentNode.insertBefore(i,n)}}):(i.parentNode&&e.appendChild(i),{append(){e.contains(i)||e.appendChild(i)},remove(){i.parentNode&&i.remove()},restore(){n!=null&&n.parentNode&&!i.parentNode&&n.parentNode.insertBefore(i,n)}})}var f=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,t,n){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,t)||(window.$flexillaInstances[e].push({element:t,instance:n}),n)}static getInstance(e,t){var n,r;return this.initGlobalRegistry(),(r=(n=window.$flexillaInstances[e])==null?void 0:n.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(n=>n.element!==t))}static setup(e){e.setAttribute("data-fx-component","fx")}static initialized(e){e.setAttribute("data-component-initialized","initialized")}},fe={teleport:!0,teleportMode:"move"},I=class i{constructor(e,t={}){a(this,"triggerElement"),a(this,"contentElement"),a(this,"options"),a(this,"PopoverInstance"),a(this,"triggerStrategy"),a(this,"placement"),a(this,"offsetDistance"),a(this,"preventFromCloseOutside"),a(this,"preventFromCloseInside"),a(this,"defaultState"),a(this,"experimentalOptions"),a(this,"teleporter"),a(this,"moveElOnInit",()=>{this.experimentalOptions.teleport&&de(()=>{this.experimentalOptions.teleportMode==="detachable"?this.teleporter.remove():this.teleporter.append()})}),a(this,"moveEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.remove()}),a(this,"restoreEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.append()}),a(this,"beforeShow",()=>{this.restoreEl()}),a(this,"onHide",()=>{var s,o;(o=(s=this.options).onHide)==null||o.call(s),this.moveEl(),k(this.contentElement,"popover-hide",{isHidden:!0})}),a(this,"onShow",()=>{var s,o;(o=(s=this.options).onShow)==null||o.call(s),k(this.contentElement,"popover-show",{isHidden:!1})}),a(this,"setShowOptions",({placement:s,offsetDistance:o})=>{this.PopoverInstance.setShowOptions({placement:s,offsetDistance:o})}),a(this,"setOptions",({placement:s,offsetDistance:o})=>{this.PopoverInstance.setPopperOptions({placement:s,offsetDistance:o})}),a(this,"setPopperTrigger",(s,o)=>{this.PopoverInstance.setPopperTrigger(s,o)}),a(this,"show",()=>{this.PopoverInstance.show()}),a(this,"hide",()=>{this.PopoverInstance.hide()}),a(this,"cleanup",()=>{this.PopoverInstance.cleanup(),f.removeInstance("popover",this.contentElement)});let n=typeof e=="string"?j(e):e;this.contentElement=n;let r=f.getInstance("popover",this.contentElement);if(r)return r;f.setup(this.contentElement),this.triggerElement=j(`[data-popover-trigger][data-popover-id=${n.getAttribute("id")}]`),this.options=t,this.triggerStrategy=n.dataset.triggerStrategy??this.options.triggerStrategy??"click",this.placement=n.dataset.placement??this.options.placement??"bottom-middle",this.offsetDistance=parseInt(`${n.dataset.offsetDistance}`)??this.options.offsetDistance??6,this.preventFromCloseOutside=n.hasAttribute("data-prevent-close-outside")??this.options.preventFromCloseOutside??!1,this.preventFromCloseInside=n.hasAttribute("data-close-inside")?!1:this.options.preventCloseFromInside??!0,this.defaultState=n.dataset.defaultState??this.options.defaultState??"close",this.experimentalOptions=Object.assign({},fe,t.experimental),this.teleporter=me(this.contentElement,document.body,this.experimentalOptions.teleportMode),this.PopoverInstance=new F({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,onShow:this.onShow,onHide:this.onHide,onToggle:({isHidden:s})=>{var o,h;(h=(o=this.options).onToggle)==null||h.call(o,{isHidden:s}),k(this.contentElement,"popover-toggle",{isHidden:s})},popper:this.options.popper}}),this.moveElOnInit(),f.register("popover",this.contentElement,this),f.initialized(this.contentElement)}static init(e,t){return new i(e,t)}static autoInit(e="[data-fx-popover]"){let t=ce(e);for(let n of t)new i(n)}};function ge(i){i.directive("popover",(e,{},{cleanup:t})=>{let n=new I(e);t(()=>{n.cleanup()})})}var q=ge;document.addEventListener("alpine:init",()=>{q(window.Alpine)});})();
|
|
1
|
+
(()=>{var U=Object.defineProperty,J=(t,e,i)=>e in t?U(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,a=(t,e,i)=>J(t,typeof e!="symbol"?e+"":e,i),Q=Object.defineProperty,V=(t,e,i)=>e in t?Q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,p=(t,e,i)=>V(t,typeof e!="symbol"?e+"":e,i),X="bottom",Y=({reference:t,popper:e})=>{if(!t||!e)throw new Error("Reference or popper element is null or undefined");let i=new WeakMap,n=r=>(i.has(r)||i.set(r,r.getBoundingClientRect()),i.get(r)),o=n(e),s=n(t);return{popperHeight:o.height,popperWidth:o.width,refHeight:s.height,refWidth:s.width,refLeft:s.left,refTop:s.top,refRight:s.right}},Z=(t,e,i,n)=>{let o=i,s=n-(i+e);return o>=(t-e)/2&&s>=(t-e)/2},_=(t,e,i,n)=>(t-e)/2<=i&&i+t/2+e/2<=n,ee=(t,e,i,n,o)=>i>o-n?e()?window.innerHeight-o:i-o:t()?0:i+n,te=(t,e,i,n)=>t<=n&&i-t<=e,ie=(t,e,i,n)=>i<=n&&-t<=e,ne=(t,e,i,n,o,s)=>{let r=o-i-s,h=i-n,d=i+s-n+(o-i-s),c=r>=0?o-n:h>=0?i-n:i;return t()?0:e()?d:c},se=(t,e,i,n)=>t<=i&&e-t-n>=t,oe=(t,e)=>t>=e,re=({placement:t,refWidth:e,refTop:i,refLeft:n,refHeight:o,popperWidth:s,popperHeight:r,windowHeight:h,windowWidth:d,offsetDistance:c})=>{let m=d-n-e,u=n,x=h-i-o,C=i,E=()=>ee(()=>ie(i,o,r,h),()=>te(i,o,r,h),i,o,r),w=()=>ne(()=>se(n,d,s,e),()=>oe(n,s),n,s,d,e),M=()=>Z(s,e,n,d)?n+e/2-s/2:w(),H=()=>_(r,o,i,h)?i+o/2-r/2:E(),P=()=>n+s<=d?n:w(),y=()=>n+e-s>=0?n+e-s:w(),O=()=>i+r<=h?i:E(),K=()=>i+o-r>=0?i+o-r:E(),g=0,v=0,T=i-r-c,S=i+o+c,L=n-s-c,D=n+e+c,A=C>=r+c,$=x>=r+c,N=u>=s+c,z=m>=s+c;switch(t.startsWith("top")?v=A?T:$?S:Math.max(T,S):t.startsWith("bottom")?v=$?S:A?T:Math.max(S):t.startsWith("left")?g=N?L:z?D:Math.max(L,D):t.startsWith("right")&&(g=z?D:N?L:Math.max(D,L)),t){case"bottom":case"bottom-middle":case"top":case"top-middle":g=M();break;case"left":case"left-middle":case"right":case"right-middle":v=H();break;case"bottom-start":case"top-start":g=P();break;case"bottom-end":case"top-end":g=y();break;case"left-start":case"right-start":v=O();break;case"left-end":case"right-end":v=K();break}return{x:g,y:v}},F=class{constructor(e,i,n={}){p(this,"reference"),p(this,"popper"),p(this,"offsetDistance"),p(this,"placement"),p(this,"disableOnResize"),p(this,"disableOnScroll"),p(this,"onUpdate"),p(this,"isWindowEventsRegistered"),p(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")}),p(this,"setPopperStyleProperty",(m,u)=>{this.popper.style.setProperty("--fx-popper-placement-x",`${m}px`),this.popper.style.setProperty("--fx-popper-placement-y",`${u}px`)}),p(this,"setInitialStyles",()=>{this.popper.style.setProperty("--fx-popper-placement-x",""),this.popper.style.setProperty("--fx-popper-placement-y","")}),p(this,"initPlacement",()=>{var m;this.validateElements(),this.setInitialStyles();let u=window.innerWidth,x=window.innerHeight,{popperHeight:C,popperWidth:E,refHeight:w,refWidth:M,refLeft:H,refTop:P}=Y({reference:this.reference,popper:this.popper}),{x:y,y:O}=re({placement:this.placement,refWidth:M,refTop:P,refLeft:H,popperWidth:E,refHeight:w,popperHeight:C,windowHeight:x,windowWidth:u,offsetDistance:this.offsetDistance});this.setPopperStyleProperty(y,O),(m=this.onUpdate)==null||m.call(this,{x:y,y:O,placement:this.placement})}),p(this,"removeWindowEvents",()=>{this.isWindowEventsRegistered&&(!this.disableOnResize&&window.removeEventListener("resize",this.updatePosition),!this.disableOnScroll&&window.removeEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!1)}),p(this,"attachWindowEvent",()=>{this.isWindowEventsRegistered&&this.removeWindowEvents(),this.disableOnResize||window.addEventListener("resize",this.updatePosition),this.disableOnScroll||window.addEventListener("scroll",this.updatePosition),this.isWindowEventsRegistered=!0}),p(this,"resetPosition",()=>{this.setInitialStyles()}),p(this,"updatePosition",()=>{this.initPlacement(),this.attachWindowEvent()}),p(this,"cleanupEvents",()=>{this.setInitialStyles(),this.removeWindowEvents()});let{offsetDistance:o=10,placement:s=X,eventEffect:r={},onUpdate:h}=n;if(!(e instanceof HTMLElement))throw new Error("Invalid HTMLElement for Reference Element");if(!(i instanceof HTMLElement))throw new Error("Invalid HTMLElement for Popper");if(n.offsetDistance&&typeof n.offsetDistance!="number")throw new Error("OffsetDistance must be a number");let{disableOnResize:d,disableOnScroll:c}=r;this.isWindowEventsRegistered=!1,this.reference=e,this.popper=i,this.offsetDistance=o,this.placement=s,this.disableOnResize=d||!1,this.disableOnScroll=c||!1,this.onUpdate=h}setOptions({placement:e,offsetDistance:i}){this.placement=e,this.offsetDistance=i||this.offsetDistance,this.initPlacement(),this.attachWindowEvent()}},ae=Object.defineProperty,le=(t,e,i)=>e in t?ae(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,l=(t,e,i)=>le(t,typeof e!="symbol"?e+"":e,i),he=(t,e=document.body)=>e.querySelector(t),j=(t,e)=>{for(let[i,n]of Object.entries(e))t.setAttribute(i,n)},pe=({element:t,callback:e,type:i,keysCheck:n})=>{let o=getComputedStyle(t),s=o.transition;if(s!=="none"&&s!==""&&!n.includes(s)){let r="transitionend",h=()=>{t.removeEventListener(r,h),e()};t.addEventListener(r,h,{once:!0})}else e()},ce=({element:t,callback:e})=>{pe({element:t,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},de=(t,e,i)=>{let n=new CustomEvent(e,{detail:i});t.dispatchEvent(n)},b=({state:t,trigger:e,popper:i})=>{let n=t==="open";j(i,{"data-state":t}),j(e,{"aria-expanded":`${n}`})},R=class{constructor({trigger:e,content:i,options:n={}}){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"?he(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 h,d,c,m;this.popper.setOptions({placement:s,offsetDistance:r}),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(d=(h=this.options).beforeShow)==null||d.call(h),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(m=(c=this.options).onShow)==null||m.call(c)}),l(this,"setPopperOptions",({placement:s,offsetDistance:r})=>{this.popper.setOptions({placement:s,offsetDistance:r||this.offsetDistance})}),l(this,"setPopperTrigger",(s,r)=>{this.cleanup(),this.popper.setOptions({placement:r.placement||this.placement,offsetDistance:r.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 o;if(this.contentElement=this.getElement(i),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=n,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 F(this.triggerElement,this.contentElement,{placement:this.placement,offsetDistance:this.offsetDistance,eventEffect:this.eventEffect}),this.initInstance()}onToggleState(e){var i,n;(n=(i=this.options).onToggle)==null||n.call(i,{isHidden:e})}show(){var e,i,n,o;this.popper.updatePosition(),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("click",this.handleDocumentClick),(i=(e=this.options).beforeShow)==null||i.call(e),b({state:"open",popper:this.contentElement,trigger:this.triggerElement}),this.onToggleState(!1),(o=(n=this.options).onShow)==null||o.call(n)}hide(){var e,i,n;let o=!1;de(this.contentElement,"before-hide",{setExitAction:r=>{o=r}});let s=(n=(i=(e=this.options).beforeHide)==null?void 0:i.call(e))==null?void 0:n.cancelAction;o||s||(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)),ce({element:this.contentElement,callback:()=>{var r,h;this.onToggleState(!0),this.popper.cleanupEvents(),(h=(r=this.options).onHide)==null||h.call(r)}}))}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)}},q=(t,e=document.body)=>e.querySelector(t),me=(t,e=document.body)=>Array.from(e.querySelectorAll(t)),k=(t,e,i)=>{let n=new CustomEvent(e,{detail:i});t.dispatchEvent(n)};function fe(t){let e=()=>{document.querySelector("[data-fx-component]:not([data-component-initialized])")?requestAnimationFrame(e):t()};e()}var B="data-fx-teleport-root",W="data-fx-teleported",ge={append:()=>{},remove:()=>{},restore:()=>{}};function ve(t,e,i="move"){var n;if(!(t instanceof HTMLElement))throw new Error("Source element must be an HTMLElement");if(!(e instanceof HTMLElement))throw new Error("Target element must be an HTMLElement");if(!["move","detachable"].includes(i))throw new Error(`Invalid teleport mode: ${i}. Must be "move" or "detachable".`);if((n=t.parentElement)!=null&&n.closest(`[${B}]`))return ge;t.setAttribute(B,"");let o=document.createComment("teleporter-placeholder"),s=t.parentNode;return s&&s.insertBefore(o,t),i==="move"?(t.parentNode&&(e.appendChild(t),t.setAttribute(W,"")),{append(){t.parentNode!==e&&(e.appendChild(t),t.setAttribute(W,""))},remove(){o!=null&&o.parentNode&&t.parentNode&&o.parentNode.insertBefore(t,o)},restore(){o!=null&&o.parentNode&&t.parentNode!==s&&o.parentNode.insertBefore(t,o)}}):(t.parentNode&&(e.appendChild(t),t.setAttribute(W,"")),{append(){e.contains(t)||e.appendChild(t)},remove(){t.parentNode&&t.remove()},restore(){o!=null&&o.parentNode&&!t.parentNode&&o.parentNode.insertBefore(t,o)}})}var f=class{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,i,n){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,i)||(window.$flexillaInstances[e].push({element:i,instance:n}),n)}static getInstance(e,i){var n,o;return this.initGlobalRegistry(),(o=(n=window.$flexillaInstances[e])==null?void 0:n.find(s=>s.element===i))==null?void 0:o.instance}static removeInstance(e,i){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(n=>n.element!==i))}static setup(e){e.setAttribute("data-fx-component","fx")}static initialized(e){e.setAttribute("data-component-initialized","initialized")}},ue={teleport:!0,teleportMode:"move"},I=class t{constructor(e,i={}){a(this,"triggerElement"),a(this,"contentElement"),a(this,"options"),a(this,"PopoverInstance"),a(this,"triggerStrategy"),a(this,"placement"),a(this,"offsetDistance"),a(this,"preventFromCloseOutside"),a(this,"preventFromCloseInside"),a(this,"defaultState"),a(this,"experimentalOptions"),a(this,"teleporter"),a(this,"moveElOnInit",()=>{this.experimentalOptions.teleport&&fe(()=>{this.experimentalOptions.teleportMode==="detachable"?this.teleporter.remove():this.teleporter.append()})}),a(this,"moveEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.remove()}),a(this,"restoreEl",()=>{this.experimentalOptions.teleport&&this.experimentalOptions.teleportMode==="detachable"&&this.teleporter.append()}),a(this,"beforeShow",()=>{this.restoreEl()}),a(this,"onHide",()=>{var s,r;(r=(s=this.options).onHide)==null||r.call(s),this.moveEl(),k(this.contentElement,"popover-hide",{isHidden:!0})}),a(this,"onShow",()=>{var s,r;(r=(s=this.options).onShow)==null||r.call(s),k(this.contentElement,"popover-show",{isHidden:!1})}),a(this,"setShowOptions",({placement:s,offsetDistance:r})=>{this.PopoverInstance.setShowOptions({placement:s,offsetDistance:r})}),a(this,"setOptions",({placement:s,offsetDistance:r})=>{this.PopoverInstance.setPopperOptions({placement:s,offsetDistance:r})}),a(this,"setPopperTrigger",(s,r)=>{this.PopoverInstance.setPopperTrigger(s,r)}),a(this,"show",()=>{this.PopoverInstance.show()}),a(this,"hide",()=>{this.PopoverInstance.hide()}),a(this,"cleanup",()=>{this.PopoverInstance.cleanup(),f.removeInstance("popover",this.contentElement)});let n=typeof e=="string"?q(e):e;this.contentElement=n;let o=f.getInstance("popover",this.contentElement);if(o)return o;f.setup(this.contentElement),this.triggerElement=q(`[data-popover-trigger][data-popover-id=${n.getAttribute("id")}]`),this.options=i,this.triggerStrategy=n.dataset.triggerStrategy??this.options.triggerStrategy??"click",this.placement=n.dataset.placement??this.options.placement??"bottom-middle",this.offsetDistance=parseInt(`${n.dataset.offsetDistance}`)??this.options.offsetDistance??6,this.preventFromCloseOutside=n.hasAttribute("data-prevent-close-outside")??this.options.preventFromCloseOutside??!1,this.preventFromCloseInside=n.hasAttribute("data-close-inside")?!1:this.options.preventCloseFromInside??!0,this.defaultState=n.dataset.defaultState??this.options.defaultState??"close",this.experimentalOptions=Object.assign({},ue,i.experimental),this.teleporter=ve(this.contentElement,document.body,this.experimentalOptions.teleportMode),this.PopoverInstance=new R({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,onShow:this.onShow,onHide:this.onHide,onToggle:({isHidden:s})=>{var r,h;(h=(r=this.options).onToggle)==null||h.call(r,{isHidden:s}),k(this.contentElement,"popover-toggle",{isHidden:s})},popper:this.options.popper}}),this.moveElOnInit(),f.register("popover",this.contentElement,this),f.initialized(this.contentElement)}static init(e,i){return new t(e,i)}static autoInit(e="[data-fx-popover]"){let i=me(e);for(let n of i)new t(n)}};function Ee(t){t.directive("popover",(e,{},{cleanup:i})=>{let n=new I(e);i(()=>{n.cleanup()})})}var G=Ee;document.addEventListener("alpine:init",()=>{G(window.Alpine)});})();
|
package/dist/module.cjs.js
CHANGED
|
@@ -24,14 +24,14 @@ __export(module_exports, {
|
|
|
24
24
|
module.exports = __toCommonJS(module_exports);
|
|
25
25
|
|
|
26
26
|
// ../../node_modules/@flexilla/popover/dist/popover.js
|
|
27
|
-
var B = Object.defineProperty;
|
|
28
|
-
var j = (n, e, t) => e in n ? B(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
29
|
-
var a = (n, e, t) => j(n, typeof e != "symbol" ? e + "" : e, t);
|
|
30
27
|
var q = Object.defineProperty;
|
|
31
28
|
var G = (n, e, t) => e in n ? q(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
32
|
-
var
|
|
33
|
-
var U =
|
|
34
|
-
var K = ({
|
|
29
|
+
var a = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
|
|
30
|
+
var U = Object.defineProperty;
|
|
31
|
+
var K = (n, e, t) => e in n ? U(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
32
|
+
var p = (n, e, t) => K(n, typeof e != "symbol" ? e + "" : e, t);
|
|
33
|
+
var V = "bottom";
|
|
34
|
+
var X = ({ reference: n, popper: e }) => {
|
|
35
35
|
if (!n || !e)
|
|
36
36
|
throw new Error("Reference or popper element is null or undefined");
|
|
37
37
|
const t = /* @__PURE__ */ new WeakMap(), i = (r) => (t.has(r) || t.set(r, r.getBoundingClientRect()), t.get(r)), o = i(e), s = i(n);
|
|
@@ -45,21 +45,21 @@ var K = ({ reference: n, popper: e }) => {
|
|
|
45
45
|
refRight: s.right
|
|
46
46
|
};
|
|
47
47
|
};
|
|
48
|
-
var
|
|
48
|
+
var Y = (n, e, t, i) => {
|
|
49
49
|
const o = t, s = i - (t + e);
|
|
50
50
|
return o >= (n - e) / 2 && s >= (n - e) / 2;
|
|
51
51
|
};
|
|
52
|
-
var
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
var
|
|
56
|
-
var
|
|
52
|
+
var J = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
|
|
53
|
+
var Q = (n, e, t, i, o) => t > o - i ? e() ? window.innerHeight - o : t - o : n() ? 0 : t + i;
|
|
54
|
+
var Z = (n, e, t, i) => n <= i && t - n <= e;
|
|
55
|
+
var _ = (n, e, t, i) => t <= i && -n <= e;
|
|
56
|
+
var ee = (n, e, t, i, o, s) => {
|
|
57
57
|
const r = o - t - s, h = t - i, d = t + s - i + (o - t - s), c = r >= 0 ? o - i : h >= 0 ? t - i : t;
|
|
58
58
|
return n() ? 0 : e() ? d : c;
|
|
59
59
|
};
|
|
60
|
-
var
|
|
61
|
-
var
|
|
62
|
-
var
|
|
60
|
+
var te = (n, e, t, i) => n <= t && e - n - i >= n;
|
|
61
|
+
var ne = (n, e) => n >= e;
|
|
62
|
+
var ie = ({
|
|
63
63
|
placement: n,
|
|
64
64
|
refWidth: e,
|
|
65
65
|
refTop: t,
|
|
@@ -71,23 +71,23 @@ var te = ({
|
|
|
71
71
|
windowWidth: d,
|
|
72
72
|
offsetDistance: c
|
|
73
73
|
}) => {
|
|
74
|
-
const m = d - i - e,
|
|
75
|
-
() =>
|
|
76
|
-
() =>
|
|
74
|
+
const m = d - i - e, u = i, x = h - t - o, C = t, v = () => Q(
|
|
75
|
+
() => _(t, o, r, h),
|
|
76
|
+
() => Z(t, o, r, h),
|
|
77
77
|
t,
|
|
78
78
|
o,
|
|
79
79
|
r
|
|
80
|
-
), E = () =>
|
|
81
|
-
() =>
|
|
82
|
-
() =>
|
|
80
|
+
), E = () => ee(
|
|
81
|
+
() => te(i, d, s, e),
|
|
82
|
+
() => ne(i, s),
|
|
83
83
|
i,
|
|
84
84
|
s,
|
|
85
85
|
d,
|
|
86
86
|
e
|
|
87
|
-
), D = () =>
|
|
87
|
+
), D = () => Y(s, e, i, d) ? i + e / 2 - s / 2 : E(), M = () => J(r, o, t, h) ? t + o / 2 - r / 2 : v(), T = () => i + s <= d ? i : E(), y = () => i + e - s >= 0 ? i + e - s : E(), O = () => t + r <= h ? t : v(), j = () => t + o - r >= 0 ? t + o - r : v();
|
|
88
88
|
let f = 0, g = 0;
|
|
89
|
-
const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c,
|
|
90
|
-
switch (n.startsWith("top") ? g =
|
|
89
|
+
const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c, F = C >= r + c, $ = x >= r + c, R = u >= s + c, A = m >= s + c;
|
|
90
|
+
switch (n.startsWith("top") ? g = F ? k : $ ? S : Math.max(k, S) : n.startsWith("bottom") ? g = $ ? S : F ? k : Math.max(S) : n.startsWith("left") ? f = R ? L : A ? I : Math.max(L, I) : n.startsWith("right") && (f = A ? I : R ? L : Math.max(I, L)), n) {
|
|
91
91
|
case "bottom":
|
|
92
92
|
case "bottom-middle":
|
|
93
93
|
case "top":
|
|
@@ -114,12 +114,12 @@ var te = ({
|
|
|
114
114
|
break;
|
|
115
115
|
case "left-end":
|
|
116
116
|
case "right-end":
|
|
117
|
-
g =
|
|
117
|
+
g = j();
|
|
118
118
|
break;
|
|
119
119
|
}
|
|
120
120
|
return { x: f, y: g };
|
|
121
121
|
};
|
|
122
|
-
var
|
|
122
|
+
var se = class {
|
|
123
123
|
/**
|
|
124
124
|
* Flexilla Popper
|
|
125
125
|
* @param reference
|
|
@@ -146,24 +146,24 @@ var ne = class {
|
|
|
146
146
|
throw new Error("Invalid HTMLElement for Popper");
|
|
147
147
|
if (typeof this.offsetDistance != "number")
|
|
148
148
|
throw new Error("OffsetDistance must be a number");
|
|
149
|
-
}), p(this, "setPopperStyleProperty", (m,
|
|
150
|
-
this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${
|
|
149
|
+
}), p(this, "setPopperStyleProperty", (m, u) => {
|
|
150
|
+
this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${u}px`);
|
|
151
151
|
}), p(this, "setInitialStyles", () => {
|
|
152
152
|
this.popper.style.setProperty("--fx-popper-placement-x", ""), this.popper.style.setProperty("--fx-popper-placement-y", "");
|
|
153
153
|
}), p(this, "initPlacement", () => {
|
|
154
154
|
var m;
|
|
155
155
|
this.validateElements(), this.setInitialStyles();
|
|
156
|
-
const
|
|
156
|
+
const u = window.innerWidth, x = window.innerHeight, { popperHeight: C, popperWidth: v, refHeight: E, refWidth: D, refLeft: M, refTop: T } = X({ reference: this.reference, popper: this.popper }), { x: y, y: O } = ie(
|
|
157
157
|
{
|
|
158
158
|
placement: this.placement,
|
|
159
159
|
refWidth: D,
|
|
160
160
|
refTop: T,
|
|
161
161
|
refLeft: M,
|
|
162
|
-
popperWidth:
|
|
162
|
+
popperWidth: v,
|
|
163
163
|
refHeight: E,
|
|
164
164
|
popperHeight: C,
|
|
165
165
|
windowHeight: x,
|
|
166
|
-
windowWidth:
|
|
166
|
+
windowWidth: u,
|
|
167
167
|
offsetDistance: this.offsetDistance
|
|
168
168
|
}
|
|
169
169
|
);
|
|
@@ -181,7 +181,7 @@ var ne = class {
|
|
|
181
181
|
});
|
|
182
182
|
const {
|
|
183
183
|
offsetDistance: o = 10,
|
|
184
|
-
placement: s =
|
|
184
|
+
placement: s = V,
|
|
185
185
|
eventEffect: r = {},
|
|
186
186
|
onUpdate: h
|
|
187
187
|
} = i;
|
|
@@ -205,15 +205,15 @@ var ne = class {
|
|
|
205
205
|
this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
|
|
206
206
|
}
|
|
207
207
|
};
|
|
208
|
-
var
|
|
209
|
-
var
|
|
210
|
-
var l = (n, e, t) =>
|
|
211
|
-
var
|
|
208
|
+
var oe = Object.defineProperty;
|
|
209
|
+
var re = (n, e, t) => e in n ? oe(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
210
|
+
var l = (n, e, t) => re(n, typeof e != "symbol" ? e + "" : e, t);
|
|
211
|
+
var ae = (n, e = document.body) => e.querySelector(n);
|
|
212
212
|
var N = (n, e) => {
|
|
213
213
|
for (const [t, i] of Object.entries(e))
|
|
214
214
|
n.setAttribute(t, i);
|
|
215
215
|
};
|
|
216
|
-
var
|
|
216
|
+
var le = ({
|
|
217
217
|
element: n,
|
|
218
218
|
callback: e,
|
|
219
219
|
type: t,
|
|
@@ -228,18 +228,18 @@ var re = ({
|
|
|
228
228
|
} else
|
|
229
229
|
e();
|
|
230
230
|
};
|
|
231
|
-
var
|
|
231
|
+
var he = ({
|
|
232
232
|
element: n,
|
|
233
233
|
callback: e
|
|
234
234
|
}) => {
|
|
235
|
-
|
|
235
|
+
le({
|
|
236
236
|
element: n,
|
|
237
237
|
callback: e,
|
|
238
238
|
type: "transition",
|
|
239
239
|
keysCheck: ["all 0s ease 0s", "all"]
|
|
240
240
|
});
|
|
241
241
|
};
|
|
242
|
-
var
|
|
242
|
+
var pe = (n, e, t) => {
|
|
243
243
|
const i = new CustomEvent(e, { detail: t });
|
|
244
244
|
n.dispatchEvent(i);
|
|
245
245
|
};
|
|
@@ -251,7 +251,7 @@ var w = ({ state: n, trigger: e, popper: t }) => {
|
|
|
251
251
|
"aria-expanded": `${i}`
|
|
252
252
|
});
|
|
253
253
|
};
|
|
254
|
-
var
|
|
254
|
+
var ce = class {
|
|
255
255
|
/**
|
|
256
256
|
* Creates an instance of CreateOverlay
|
|
257
257
|
* @param {Object} params - The initialization parameters
|
|
@@ -260,7 +260,7 @@ var he = class {
|
|
|
260
260
|
* @param {OverlayOptions} [params.options] - Configuration options for the overlay
|
|
261
261
|
*/
|
|
262
262
|
constructor({ trigger: e, content: t, options: i = {} }) {
|
|
263
|
-
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" ?
|
|
263
|
+
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" ? ae(s) : s instanceof HTMLElement ? s : void 0), l(this, "handleDocumentClick", (s) => {
|
|
264
264
|
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());
|
|
265
265
|
}), l(this, "handleKeyDown", (s) => {
|
|
266
266
|
s.preventDefault(), this.triggerStrategy !== "hover" && s.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
|
|
@@ -306,7 +306,7 @@ var he = class {
|
|
|
306
306
|
throw new Error("Trigger element must be a valid HTML element");
|
|
307
307
|
if (!(this.contentElement instanceof HTMLElement))
|
|
308
308
|
throw new Error("Content element must be a valid HTML element");
|
|
309
|
-
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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new
|
|
309
|
+
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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new se(
|
|
310
310
|
this.triggerElement,
|
|
311
311
|
this.contentElement,
|
|
312
312
|
{
|
|
@@ -339,7 +339,7 @@ var he = class {
|
|
|
339
339
|
hide() {
|
|
340
340
|
var e, t, i;
|
|
341
341
|
let o = false;
|
|
342
|
-
|
|
342
|
+
pe(this.contentElement, "before-hide", {
|
|
343
343
|
setExitAction: (r) => {
|
|
344
344
|
o = r;
|
|
345
345
|
}
|
|
@@ -349,7 +349,7 @@ var he = class {
|
|
|
349
349
|
state: "close",
|
|
350
350
|
popper: this.contentElement,
|
|
351
351
|
trigger: this.triggerElement
|
|
352
|
-
}), 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)),
|
|
352
|
+
}), 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)), he({
|
|
353
353
|
element: this.contentElement,
|
|
354
354
|
callback: () => {
|
|
355
355
|
var r, h;
|
|
@@ -369,13 +369,13 @@ var he = class {
|
|
|
369
369
|
}), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
|
|
370
370
|
}
|
|
371
371
|
};
|
|
372
|
-
var
|
|
373
|
-
var
|
|
372
|
+
var z = (n, e = document.body) => e.querySelector(n);
|
|
373
|
+
var de = (n, e = document.body) => Array.from(e.querySelectorAll(n));
|
|
374
374
|
var H = (n, e, t) => {
|
|
375
375
|
const i = new CustomEvent(e, { detail: t });
|
|
376
376
|
n.dispatchEvent(i);
|
|
377
377
|
};
|
|
378
|
-
function
|
|
378
|
+
function me(n) {
|
|
379
379
|
const e = () => {
|
|
380
380
|
document.querySelector(
|
|
381
381
|
"[data-fx-component]:not([data-component-initialized])"
|
|
@@ -383,26 +383,40 @@ function ce(n) {
|
|
|
383
383
|
};
|
|
384
384
|
e();
|
|
385
385
|
}
|
|
386
|
-
|
|
386
|
+
var B = "data-fx-teleport-root";
|
|
387
|
+
var P = "data-fx-teleported";
|
|
388
|
+
var fe = {
|
|
389
|
+
append: () => {
|
|
390
|
+
},
|
|
391
|
+
remove: () => {
|
|
392
|
+
},
|
|
393
|
+
restore: () => {
|
|
394
|
+
}
|
|
395
|
+
};
|
|
396
|
+
function ge(n, e, t = "move") {
|
|
397
|
+
var i;
|
|
387
398
|
if (!(n instanceof HTMLElement))
|
|
388
399
|
throw new Error("Source element must be an HTMLElement");
|
|
389
400
|
if (!(e instanceof HTMLElement))
|
|
390
401
|
throw new Error("Target element must be an HTMLElement");
|
|
391
402
|
if (!["move", "detachable"].includes(t))
|
|
392
403
|
throw new Error(`Invalid teleport mode: ${t}. Must be "move" or "detachable".`);
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
404
|
+
if ((i = n.parentElement) != null && i.closest(`[${B}]`))
|
|
405
|
+
return fe;
|
|
406
|
+
n.setAttribute(B, "");
|
|
407
|
+
let o = document.createComment("teleporter-placeholder");
|
|
408
|
+
const s = n.parentNode;
|
|
409
|
+
return s && s.insertBefore(o, n), t === "move" ? (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
|
|
396
410
|
append() {
|
|
397
|
-
n.parentNode !== e && e.appendChild(n);
|
|
411
|
+
n.parentNode !== e && (e.appendChild(n), n.setAttribute(P, ""));
|
|
398
412
|
},
|
|
399
413
|
remove() {
|
|
400
|
-
|
|
414
|
+
o != null && o.parentNode && n.parentNode && o.parentNode.insertBefore(n, o);
|
|
401
415
|
},
|
|
402
416
|
restore() {
|
|
403
|
-
|
|
417
|
+
o != null && o.parentNode && n.parentNode !== s && o.parentNode.insertBefore(n, o);
|
|
404
418
|
}
|
|
405
|
-
}) : (n.parentNode && e.appendChild(n), {
|
|
419
|
+
}) : (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
|
|
406
420
|
append() {
|
|
407
421
|
e.contains(n) || e.appendChild(n);
|
|
408
422
|
},
|
|
@@ -410,7 +424,7 @@ function de(n, e, t = "move") {
|
|
|
410
424
|
n.parentNode && n.remove();
|
|
411
425
|
},
|
|
412
426
|
restore() {
|
|
413
|
-
|
|
427
|
+
o != null && o.parentNode && !n.parentNode && o.parentNode.insertBefore(n, o);
|
|
414
428
|
}
|
|
415
429
|
});
|
|
416
430
|
}
|
|
@@ -439,11 +453,11 @@ var b = class {
|
|
|
439
453
|
e.setAttribute("data-component-initialized", "initialized");
|
|
440
454
|
}
|
|
441
455
|
};
|
|
442
|
-
var
|
|
456
|
+
var ue = {
|
|
443
457
|
teleport: true,
|
|
444
458
|
teleportMode: "move"
|
|
445
459
|
};
|
|
446
|
-
var
|
|
460
|
+
var W = class _W {
|
|
447
461
|
/**
|
|
448
462
|
* Creates a new Popover instance.
|
|
449
463
|
* @param {string | HTMLElement} popoverEl - The popover content element or its selector.
|
|
@@ -474,7 +488,7 @@ var P = class _P {
|
|
|
474
488
|
a(this, "experimentalOptions");
|
|
475
489
|
a(this, "teleporter");
|
|
476
490
|
a(this, "moveElOnInit", () => {
|
|
477
|
-
this.experimentalOptions.teleport &&
|
|
491
|
+
this.experimentalOptions.teleport && me(() => {
|
|
478
492
|
this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
|
|
479
493
|
});
|
|
480
494
|
});
|
|
@@ -517,12 +531,12 @@ var P = class _P {
|
|
|
517
531
|
a(this, "cleanup", () => {
|
|
518
532
|
this.PopoverInstance.cleanup(), b.removeInstance("popover", this.contentElement);
|
|
519
533
|
});
|
|
520
|
-
const i = typeof e == "string" ?
|
|
534
|
+
const i = typeof e == "string" ? z(e) : e;
|
|
521
535
|
this.contentElement = i;
|
|
522
536
|
const o = b.getInstance("popover", this.contentElement);
|
|
523
537
|
if (o)
|
|
524
538
|
return o;
|
|
525
|
-
b.setup(this.contentElement), this.triggerElement =
|
|
539
|
+
b.setup(this.contentElement), this.triggerElement = z(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`), this.options = t, this.triggerStrategy = (_b = (_a = i.dataset.triggerStrategy) != null ? _a : this.options.triggerStrategy) != null ? _b : "click", this.placement = (_d = (_c = i.dataset.placement) != null ? _c : this.options.placement) != null ? _d : "bottom-middle", this.offsetDistance = (_f = (_e = parseInt(`${i.dataset.offsetDistance}`)) != null ? _e : this.options.offsetDistance) != null ? _f : 6, this.preventFromCloseOutside = (_h = (_g = i.hasAttribute("data-prevent-close-outside")) != null ? _g : this.options.preventFromCloseOutside) != null ? _h : false, this.preventFromCloseInside = i.hasAttribute("data-close-inside") ? false : (_i = this.options.preventCloseFromInside) != null ? _i : true, this.defaultState = (_k = (_j = i.dataset.defaultState) != null ? _j : this.options.defaultState) != null ? _k : "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = ge(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.PopoverInstance = new ce({
|
|
526
540
|
trigger: this.triggerElement,
|
|
527
541
|
content: this.contentElement,
|
|
528
542
|
options: {
|
|
@@ -557,7 +571,7 @@ var P = class _P {
|
|
|
557
571
|
* });
|
|
558
572
|
*/
|
|
559
573
|
static init(e, t) {
|
|
560
|
-
return new
|
|
574
|
+
return new _W(e, t);
|
|
561
575
|
}
|
|
562
576
|
/**
|
|
563
577
|
* Automatically initializes all popover elements matching the specified selector.
|
|
@@ -570,16 +584,16 @@ var P = class _P {
|
|
|
570
584
|
* Popover.autoInit('.custom-popover');
|
|
571
585
|
*/
|
|
572
586
|
static autoInit(e = "[data-fx-popover]") {
|
|
573
|
-
const t =
|
|
587
|
+
const t = de(e);
|
|
574
588
|
for (const i of t)
|
|
575
|
-
new
|
|
589
|
+
new _W(i);
|
|
576
590
|
}
|
|
577
591
|
};
|
|
578
592
|
|
|
579
593
|
// src/index.js
|
|
580
594
|
function Popover(Alpine) {
|
|
581
595
|
Alpine.directive("popover", (el, {}, { cleanup }) => {
|
|
582
|
-
const popover_ = new
|
|
596
|
+
const popover_ = new W(el);
|
|
583
597
|
cleanup(() => {
|
|
584
598
|
popover_.cleanup();
|
|
585
599
|
});
|
package/dist/module.esm.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// ../../node_modules/@flexilla/popover/dist/popover.js
|
|
2
|
-
var B = Object.defineProperty;
|
|
3
|
-
var j = (n, e, t) => e in n ? B(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
4
|
-
var a = (n, e, t) => j(n, typeof e != "symbol" ? e + "" : e, t);
|
|
5
2
|
var q = Object.defineProperty;
|
|
6
3
|
var G = (n, e, t) => e in n ? q(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
7
|
-
var
|
|
8
|
-
var U =
|
|
9
|
-
var K = ({
|
|
4
|
+
var a = (n, e, t) => G(n, typeof e != "symbol" ? e + "" : e, t);
|
|
5
|
+
var U = Object.defineProperty;
|
|
6
|
+
var K = (n, e, t) => e in n ? U(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
7
|
+
var p = (n, e, t) => K(n, typeof e != "symbol" ? e + "" : e, t);
|
|
8
|
+
var V = "bottom";
|
|
9
|
+
var X = ({ reference: n, popper: e }) => {
|
|
10
10
|
if (!n || !e)
|
|
11
11
|
throw new Error("Reference or popper element is null or undefined");
|
|
12
12
|
const t = /* @__PURE__ */ new WeakMap(), i = (r) => (t.has(r) || t.set(r, r.getBoundingClientRect()), t.get(r)), o = i(e), s = i(n);
|
|
@@ -20,21 +20,21 @@ var K = ({ reference: n, popper: e }) => {
|
|
|
20
20
|
refRight: s.right
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
|
-
var
|
|
23
|
+
var Y = (n, e, t, i) => {
|
|
24
24
|
const o = t, s = i - (t + e);
|
|
25
25
|
return o >= (n - e) / 2 && s >= (n - e) / 2;
|
|
26
26
|
};
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
27
|
+
var J = (n, e, t, i) => (n - e) / 2 <= t && t + n / 2 + e / 2 <= i;
|
|
28
|
+
var Q = (n, e, t, i, o) => t > o - i ? e() ? window.innerHeight - o : t - o : n() ? 0 : t + i;
|
|
29
|
+
var Z = (n, e, t, i) => n <= i && t - n <= e;
|
|
30
|
+
var _ = (n, e, t, i) => t <= i && -n <= e;
|
|
31
|
+
var ee = (n, e, t, i, o, s) => {
|
|
32
32
|
const r = o - t - s, h = t - i, d = t + s - i + (o - t - s), c = r >= 0 ? o - i : h >= 0 ? t - i : t;
|
|
33
33
|
return n() ? 0 : e() ? d : c;
|
|
34
34
|
};
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
35
|
+
var te = (n, e, t, i) => n <= t && e - n - i >= n;
|
|
36
|
+
var ne = (n, e) => n >= e;
|
|
37
|
+
var ie = ({
|
|
38
38
|
placement: n,
|
|
39
39
|
refWidth: e,
|
|
40
40
|
refTop: t,
|
|
@@ -46,23 +46,23 @@ var te = ({
|
|
|
46
46
|
windowWidth: d,
|
|
47
47
|
offsetDistance: c
|
|
48
48
|
}) => {
|
|
49
|
-
const m = d - i - e,
|
|
50
|
-
() =>
|
|
51
|
-
() =>
|
|
49
|
+
const m = d - i - e, u = i, x = h - t - o, C = t, v = () => Q(
|
|
50
|
+
() => _(t, o, r, h),
|
|
51
|
+
() => Z(t, o, r, h),
|
|
52
52
|
t,
|
|
53
53
|
o,
|
|
54
54
|
r
|
|
55
|
-
), E = () =>
|
|
56
|
-
() =>
|
|
57
|
-
() =>
|
|
55
|
+
), E = () => ee(
|
|
56
|
+
() => te(i, d, s, e),
|
|
57
|
+
() => ne(i, s),
|
|
58
58
|
i,
|
|
59
59
|
s,
|
|
60
60
|
d,
|
|
61
61
|
e
|
|
62
|
-
), D = () =>
|
|
62
|
+
), D = () => Y(s, e, i, d) ? i + e / 2 - s / 2 : E(), M = () => J(r, o, t, h) ? t + o / 2 - r / 2 : v(), T = () => i + s <= d ? i : E(), y = () => i + e - s >= 0 ? i + e - s : E(), O = () => t + r <= h ? t : v(), j = () => t + o - r >= 0 ? t + o - r : v();
|
|
63
63
|
let f = 0, g = 0;
|
|
64
|
-
const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c,
|
|
65
|
-
switch (n.startsWith("top") ? g =
|
|
64
|
+
const k = t - r - c, S = t + o + c, L = i - s - c, I = i + e + c, F = C >= r + c, $ = x >= r + c, R = u >= s + c, A = m >= s + c;
|
|
65
|
+
switch (n.startsWith("top") ? g = F ? k : $ ? S : Math.max(k, S) : n.startsWith("bottom") ? g = $ ? S : F ? k : Math.max(S) : n.startsWith("left") ? f = R ? L : A ? I : Math.max(L, I) : n.startsWith("right") && (f = A ? I : R ? L : Math.max(I, L)), n) {
|
|
66
66
|
case "bottom":
|
|
67
67
|
case "bottom-middle":
|
|
68
68
|
case "top":
|
|
@@ -89,12 +89,12 @@ var te = ({
|
|
|
89
89
|
break;
|
|
90
90
|
case "left-end":
|
|
91
91
|
case "right-end":
|
|
92
|
-
g =
|
|
92
|
+
g = j();
|
|
93
93
|
break;
|
|
94
94
|
}
|
|
95
95
|
return { x: f, y: g };
|
|
96
96
|
};
|
|
97
|
-
var
|
|
97
|
+
var se = class {
|
|
98
98
|
/**
|
|
99
99
|
* Flexilla Popper
|
|
100
100
|
* @param reference
|
|
@@ -121,24 +121,24 @@ var ne = class {
|
|
|
121
121
|
throw new Error("Invalid HTMLElement for Popper");
|
|
122
122
|
if (typeof this.offsetDistance != "number")
|
|
123
123
|
throw new Error("OffsetDistance must be a number");
|
|
124
|
-
}), p(this, "setPopperStyleProperty", (m,
|
|
125
|
-
this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${
|
|
124
|
+
}), p(this, "setPopperStyleProperty", (m, u) => {
|
|
125
|
+
this.popper.style.setProperty("--fx-popper-placement-x", `${m}px`), this.popper.style.setProperty("--fx-popper-placement-y", `${u}px`);
|
|
126
126
|
}), p(this, "setInitialStyles", () => {
|
|
127
127
|
this.popper.style.setProperty("--fx-popper-placement-x", ""), this.popper.style.setProperty("--fx-popper-placement-y", "");
|
|
128
128
|
}), p(this, "initPlacement", () => {
|
|
129
129
|
var m;
|
|
130
130
|
this.validateElements(), this.setInitialStyles();
|
|
131
|
-
const
|
|
131
|
+
const u = window.innerWidth, x = window.innerHeight, { popperHeight: C, popperWidth: v, refHeight: E, refWidth: D, refLeft: M, refTop: T } = X({ reference: this.reference, popper: this.popper }), { x: y, y: O } = ie(
|
|
132
132
|
{
|
|
133
133
|
placement: this.placement,
|
|
134
134
|
refWidth: D,
|
|
135
135
|
refTop: T,
|
|
136
136
|
refLeft: M,
|
|
137
|
-
popperWidth:
|
|
137
|
+
popperWidth: v,
|
|
138
138
|
refHeight: E,
|
|
139
139
|
popperHeight: C,
|
|
140
140
|
windowHeight: x,
|
|
141
|
-
windowWidth:
|
|
141
|
+
windowWidth: u,
|
|
142
142
|
offsetDistance: this.offsetDistance
|
|
143
143
|
}
|
|
144
144
|
);
|
|
@@ -156,7 +156,7 @@ var ne = class {
|
|
|
156
156
|
});
|
|
157
157
|
const {
|
|
158
158
|
offsetDistance: o = 10,
|
|
159
|
-
placement: s =
|
|
159
|
+
placement: s = V,
|
|
160
160
|
eventEffect: r = {},
|
|
161
161
|
onUpdate: h
|
|
162
162
|
} = i;
|
|
@@ -180,15 +180,15 @@ var ne = class {
|
|
|
180
180
|
this.placement = e, this.offsetDistance = t || this.offsetDistance, this.initPlacement(), this.attachWindowEvent();
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
|
-
var
|
|
184
|
-
var
|
|
185
|
-
var l = (n, e, t) =>
|
|
186
|
-
var
|
|
183
|
+
var oe = Object.defineProperty;
|
|
184
|
+
var re = (n, e, t) => e in n ? oe(n, e, { enumerable: true, configurable: true, writable: true, value: t }) : n[e] = t;
|
|
185
|
+
var l = (n, e, t) => re(n, typeof e != "symbol" ? e + "" : e, t);
|
|
186
|
+
var ae = (n, e = document.body) => e.querySelector(n);
|
|
187
187
|
var N = (n, e) => {
|
|
188
188
|
for (const [t, i] of Object.entries(e))
|
|
189
189
|
n.setAttribute(t, i);
|
|
190
190
|
};
|
|
191
|
-
var
|
|
191
|
+
var le = ({
|
|
192
192
|
element: n,
|
|
193
193
|
callback: e,
|
|
194
194
|
type: t,
|
|
@@ -203,18 +203,18 @@ var re = ({
|
|
|
203
203
|
} else
|
|
204
204
|
e();
|
|
205
205
|
};
|
|
206
|
-
var
|
|
206
|
+
var he = ({
|
|
207
207
|
element: n,
|
|
208
208
|
callback: e
|
|
209
209
|
}) => {
|
|
210
|
-
|
|
210
|
+
le({
|
|
211
211
|
element: n,
|
|
212
212
|
callback: e,
|
|
213
213
|
type: "transition",
|
|
214
214
|
keysCheck: ["all 0s ease 0s", "all"]
|
|
215
215
|
});
|
|
216
216
|
};
|
|
217
|
-
var
|
|
217
|
+
var pe = (n, e, t) => {
|
|
218
218
|
const i = new CustomEvent(e, { detail: t });
|
|
219
219
|
n.dispatchEvent(i);
|
|
220
220
|
};
|
|
@@ -226,7 +226,7 @@ var w = ({ state: n, trigger: e, popper: t }) => {
|
|
|
226
226
|
"aria-expanded": `${i}`
|
|
227
227
|
});
|
|
228
228
|
};
|
|
229
|
-
var
|
|
229
|
+
var ce = class {
|
|
230
230
|
/**
|
|
231
231
|
* Creates an instance of CreateOverlay
|
|
232
232
|
* @param {Object} params - The initialization parameters
|
|
@@ -235,7 +235,7 @@ var he = class {
|
|
|
235
235
|
* @param {OverlayOptions} [params.options] - Configuration options for the overlay
|
|
236
236
|
*/
|
|
237
237
|
constructor({ trigger: e, content: t, options: i = {} }) {
|
|
238
|
-
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" ?
|
|
238
|
+
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" ? ae(s) : s instanceof HTMLElement ? s : void 0), l(this, "handleDocumentClick", (s) => {
|
|
239
239
|
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());
|
|
240
240
|
}), l(this, "handleKeyDown", (s) => {
|
|
241
241
|
s.preventDefault(), this.triggerStrategy !== "hover" && s.key === "Escape" && this.contentElement.getAttribute("data-state") === "open" && (this.preventFromCloseOutside || this.hide());
|
|
@@ -281,7 +281,7 @@ var he = class {
|
|
|
281
281
|
throw new Error("Trigger element must be a valid HTML element");
|
|
282
282
|
if (!(this.contentElement instanceof HTMLElement))
|
|
283
283
|
throw new Error("Content element must be a valid HTML element");
|
|
284
|
-
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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new
|
|
284
|
+
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 || false, this.preventFromCloseInside = this.options.preventCloseFromInside || false, this.defaultState = this.options.defaultState || "close", this.eventEffect = (o = this.options.popper) == null ? void 0 : o.eventEffect, this.popper = new se(
|
|
285
285
|
this.triggerElement,
|
|
286
286
|
this.contentElement,
|
|
287
287
|
{
|
|
@@ -314,7 +314,7 @@ var he = class {
|
|
|
314
314
|
hide() {
|
|
315
315
|
var e, t, i;
|
|
316
316
|
let o = false;
|
|
317
|
-
|
|
317
|
+
pe(this.contentElement, "before-hide", {
|
|
318
318
|
setExitAction: (r) => {
|
|
319
319
|
o = r;
|
|
320
320
|
}
|
|
@@ -324,7 +324,7 @@ var he = class {
|
|
|
324
324
|
state: "close",
|
|
325
325
|
popper: this.contentElement,
|
|
326
326
|
trigger: this.triggerElement
|
|
327
|
-
}), 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)),
|
|
327
|
+
}), 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)), he({
|
|
328
328
|
element: this.contentElement,
|
|
329
329
|
callback: () => {
|
|
330
330
|
var r, h;
|
|
@@ -344,13 +344,13 @@ var he = class {
|
|
|
344
344
|
}), this.triggerElement.addEventListener("click", this.toggleStateOnClick), this.triggerStrategy === "hover" && this.triggerElement.addEventListener("mouseenter", this.showOnMouseEnter);
|
|
345
345
|
}
|
|
346
346
|
};
|
|
347
|
-
var
|
|
348
|
-
var
|
|
347
|
+
var z = (n, e = document.body) => e.querySelector(n);
|
|
348
|
+
var de = (n, e = document.body) => Array.from(e.querySelectorAll(n));
|
|
349
349
|
var H = (n, e, t) => {
|
|
350
350
|
const i = new CustomEvent(e, { detail: t });
|
|
351
351
|
n.dispatchEvent(i);
|
|
352
352
|
};
|
|
353
|
-
function
|
|
353
|
+
function me(n) {
|
|
354
354
|
const e = () => {
|
|
355
355
|
document.querySelector(
|
|
356
356
|
"[data-fx-component]:not([data-component-initialized])"
|
|
@@ -358,26 +358,40 @@ function ce(n) {
|
|
|
358
358
|
};
|
|
359
359
|
e();
|
|
360
360
|
}
|
|
361
|
-
|
|
361
|
+
var B = "data-fx-teleport-root";
|
|
362
|
+
var P = "data-fx-teleported";
|
|
363
|
+
var fe = {
|
|
364
|
+
append: () => {
|
|
365
|
+
},
|
|
366
|
+
remove: () => {
|
|
367
|
+
},
|
|
368
|
+
restore: () => {
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
function ge(n, e, t = "move") {
|
|
372
|
+
var i;
|
|
362
373
|
if (!(n instanceof HTMLElement))
|
|
363
374
|
throw new Error("Source element must be an HTMLElement");
|
|
364
375
|
if (!(e instanceof HTMLElement))
|
|
365
376
|
throw new Error("Target element must be an HTMLElement");
|
|
366
377
|
if (!["move", "detachable"].includes(t))
|
|
367
378
|
throw new Error(`Invalid teleport mode: ${t}. Must be "move" or "detachable".`);
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
379
|
+
if ((i = n.parentElement) != null && i.closest(`[${B}]`))
|
|
380
|
+
return fe;
|
|
381
|
+
n.setAttribute(B, "");
|
|
382
|
+
let o = document.createComment("teleporter-placeholder");
|
|
383
|
+
const s = n.parentNode;
|
|
384
|
+
return s && s.insertBefore(o, n), t === "move" ? (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
|
|
371
385
|
append() {
|
|
372
|
-
n.parentNode !== e && e.appendChild(n);
|
|
386
|
+
n.parentNode !== e && (e.appendChild(n), n.setAttribute(P, ""));
|
|
373
387
|
},
|
|
374
388
|
remove() {
|
|
375
|
-
|
|
389
|
+
o != null && o.parentNode && n.parentNode && o.parentNode.insertBefore(n, o);
|
|
376
390
|
},
|
|
377
391
|
restore() {
|
|
378
|
-
|
|
392
|
+
o != null && o.parentNode && n.parentNode !== s && o.parentNode.insertBefore(n, o);
|
|
379
393
|
}
|
|
380
|
-
}) : (n.parentNode && e.appendChild(n), {
|
|
394
|
+
}) : (n.parentNode && (e.appendChild(n), n.setAttribute(P, "")), {
|
|
381
395
|
append() {
|
|
382
396
|
e.contains(n) || e.appendChild(n);
|
|
383
397
|
},
|
|
@@ -385,7 +399,7 @@ function de(n, e, t = "move") {
|
|
|
385
399
|
n.parentNode && n.remove();
|
|
386
400
|
},
|
|
387
401
|
restore() {
|
|
388
|
-
|
|
402
|
+
o != null && o.parentNode && !n.parentNode && o.parentNode.insertBefore(n, o);
|
|
389
403
|
}
|
|
390
404
|
});
|
|
391
405
|
}
|
|
@@ -414,11 +428,11 @@ var b = class {
|
|
|
414
428
|
e.setAttribute("data-component-initialized", "initialized");
|
|
415
429
|
}
|
|
416
430
|
};
|
|
417
|
-
var
|
|
431
|
+
var ue = {
|
|
418
432
|
teleport: true,
|
|
419
433
|
teleportMode: "move"
|
|
420
434
|
};
|
|
421
|
-
var
|
|
435
|
+
var W = class _W {
|
|
422
436
|
/**
|
|
423
437
|
* Creates a new Popover instance.
|
|
424
438
|
* @param {string | HTMLElement} popoverEl - The popover content element or its selector.
|
|
@@ -448,7 +462,7 @@ var P = class _P {
|
|
|
448
462
|
a(this, "experimentalOptions");
|
|
449
463
|
a(this, "teleporter");
|
|
450
464
|
a(this, "moveElOnInit", () => {
|
|
451
|
-
this.experimentalOptions.teleport &&
|
|
465
|
+
this.experimentalOptions.teleport && me(() => {
|
|
452
466
|
this.experimentalOptions.teleportMode === "detachable" ? this.teleporter.remove() : this.teleporter.append();
|
|
453
467
|
});
|
|
454
468
|
});
|
|
@@ -491,12 +505,12 @@ var P = class _P {
|
|
|
491
505
|
a(this, "cleanup", () => {
|
|
492
506
|
this.PopoverInstance.cleanup(), b.removeInstance("popover", this.contentElement);
|
|
493
507
|
});
|
|
494
|
-
const i = typeof e == "string" ?
|
|
508
|
+
const i = typeof e == "string" ? z(e) : e;
|
|
495
509
|
this.contentElement = i;
|
|
496
510
|
const o = b.getInstance("popover", this.contentElement);
|
|
497
511
|
if (o)
|
|
498
512
|
return o;
|
|
499
|
-
b.setup(this.contentElement), this.triggerElement =
|
|
513
|
+
b.setup(this.contentElement), this.triggerElement = z(`[data-popover-trigger][data-popover-id=${i.getAttribute("id")}]`), this.options = t, this.triggerStrategy = i.dataset.triggerStrategy ?? this.options.triggerStrategy ?? "click", this.placement = i.dataset.placement ?? this.options.placement ?? "bottom-middle", this.offsetDistance = parseInt(`${i.dataset.offsetDistance}`) ?? this.options.offsetDistance ?? 6, this.preventFromCloseOutside = i.hasAttribute("data-prevent-close-outside") ?? this.options.preventFromCloseOutside ?? false, this.preventFromCloseInside = i.hasAttribute("data-close-inside") ? false : this.options.preventCloseFromInside ?? true, this.defaultState = i.dataset.defaultState ?? this.options.defaultState ?? "close", this.experimentalOptions = Object.assign({}, ue, t.experimental), this.teleporter = ge(this.contentElement, document.body, this.experimentalOptions.teleportMode), this.PopoverInstance = new ce({
|
|
500
514
|
trigger: this.triggerElement,
|
|
501
515
|
content: this.contentElement,
|
|
502
516
|
options: {
|
|
@@ -531,7 +545,7 @@ var P = class _P {
|
|
|
531
545
|
* });
|
|
532
546
|
*/
|
|
533
547
|
static init(e, t) {
|
|
534
|
-
return new
|
|
548
|
+
return new _W(e, t);
|
|
535
549
|
}
|
|
536
550
|
/**
|
|
537
551
|
* Automatically initializes all popover elements matching the specified selector.
|
|
@@ -544,16 +558,16 @@ var P = class _P {
|
|
|
544
558
|
* Popover.autoInit('.custom-popover');
|
|
545
559
|
*/
|
|
546
560
|
static autoInit(e = "[data-fx-popover]") {
|
|
547
|
-
const t =
|
|
561
|
+
const t = de(e);
|
|
548
562
|
for (const i of t)
|
|
549
|
-
new
|
|
563
|
+
new _W(i);
|
|
550
564
|
}
|
|
551
565
|
};
|
|
552
566
|
|
|
553
567
|
// src/index.js
|
|
554
568
|
function Popover(Alpine) {
|
|
555
569
|
Alpine.directive("popover", (el, {}, { cleanup }) => {
|
|
556
|
-
const popover_ = new
|
|
570
|
+
const popover_ = new W(el);
|
|
557
571
|
cleanup(() => {
|
|
558
572
|
popover_.cleanup();
|
|
559
573
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flexilla/alpine-popover",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "AlpineJS plugin for adding Popover functionality to your AlpineJS components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"Flexilla"
|
|
61
61
|
],
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@flexilla/popover": "^1.0.
|
|
63
|
+
"@flexilla/popover": "^1.0.4"
|
|
64
64
|
},
|
|
65
|
-
"gitHead": "
|
|
65
|
+
"gitHead": "ae2c044692676906202ec6d8bb7a61a553c3bf74"
|
|
66
66
|
}
|