@webority/ui-elements 0.31.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui-elements.global.js +67 -67
- package/dist/ui-elements.js +826 -777
- package/package.json +1 -1
package/dist/ui-elements.js
CHANGED
|
@@ -589,6 +589,9 @@ var at = Object.freeze([
|
|
|
589
589
|
cancelled: (e) => `${e} was not moved.`,
|
|
590
590
|
rolledBack: (e, t) => `${e} went back to ${t}.`,
|
|
591
591
|
locked: (e) => `${e} cannot be moved.`,
|
|
592
|
+
more: (e) => `Show ${e} more`,
|
|
593
|
+
fewer: "Show fewer",
|
|
594
|
+
swipeHint: "Swipe sideways or tap a column",
|
|
592
595
|
busy: "This card is still saving. Try again in a moment.",
|
|
593
596
|
failed: Object.freeze({
|
|
594
597
|
forbidden: "You do not have permission to move this card.",
|
|
@@ -597,16 +600,29 @@ var at = Object.freeze([
|
|
|
597
600
|
server: "Something went wrong on our side, so the card went back. Try again in a moment.",
|
|
598
601
|
network: "Could not reach the server, so the card went back. Check your connection and try again."
|
|
599
602
|
})
|
|
600
|
-
}), dt = "[data-wui-column]", ft = "[data-wui-body]", pt = "[data-wui-card]", mt = "[data-wui-count]", ht = "[data-wui-summary]", gt = "[data-wui-empty]", _t = "[data-wui-drop-note]", vt = "[data-wui-live]", yt = "[data-wui-help]", bt = "[data-wui-switch]", xt = "[data-wui-scroller]", St = "[data-wui-collapse]", Ct = "input, select, textarea, [contenteditable=\"\"], [contenteditable=\"true\"], [data-wui-no-drag]",
|
|
601
|
-
function
|
|
603
|
+
}), dt = "[data-wui-column]", ft = "[data-wui-body]", pt = "[data-wui-card]", mt = "[data-wui-count]", ht = "[data-wui-summary]", gt = "[data-wui-empty]", _t = "[data-wui-drop-note]", vt = "[data-wui-live]", yt = "[data-wui-help]", bt = "[data-wui-switch]", xt = "[data-wui-scroller]", St = "[data-wui-collapse]", Ct = "[data-wui-more]", wt = "data-wui-visible-limit", Tt = "data-wui-overflow", Et = "input, select, textarea, [contenteditable=\"\"], [contenteditable=\"true\"], [data-wui-no-drag]", Dt = 48, Ot = 16, M = (e) => e.getAttribute("data-wui-column"), N = (e) => e.getAttribute("data-wui-card"), kt = (e) => e.hidden || e.hasAttribute("hidden"), At = (e) => kt(e) || e.hasAttribute(Tt);
|
|
604
|
+
function jt(e) {
|
|
605
|
+
if (e == null || e === "") return null;
|
|
606
|
+
let t = typeof e == "number" ? e : Number(e);
|
|
607
|
+
if (!Number.isInteger(t) || t < 1) throw TypeError(`Unsupported kanban visible limit "${String(e)}". Use a whole number of 1 or more.`);
|
|
608
|
+
return t;
|
|
609
|
+
}
|
|
610
|
+
function Mt(e, t, n, r) {
|
|
611
|
+
let i = /* @__PURE__ */ new Set();
|
|
612
|
+
if (t == null || n) return i;
|
|
613
|
+
let a = 0;
|
|
614
|
+
for (let n of e) r.has(n) || (a < t ? a++ : i.add(n));
|
|
615
|
+
return i;
|
|
616
|
+
}
|
|
617
|
+
function P(e) {
|
|
602
618
|
let t = (e.getAttribute("aria-label") || e.textContent || "").replace(/\s+/g, " ").trim();
|
|
603
|
-
return t.length > 80 ? `${t.slice(0, 79)}…` : t ||
|
|
619
|
+
return t.length > 80 ? `${t.slice(0, 79)}…` : t || N(e) || "Card";
|
|
604
620
|
}
|
|
605
|
-
function
|
|
621
|
+
function Nt(e) {
|
|
606
622
|
return e ? `${st}${e}` : null;
|
|
607
623
|
}
|
|
608
|
-
function
|
|
609
|
-
let n =
|
|
624
|
+
function Pt(e, t = globalThis.localStorage) {
|
|
625
|
+
let n = Nt(e);
|
|
610
626
|
if (!n || !t) return {};
|
|
611
627
|
try {
|
|
612
628
|
let e = JSON.parse(t.getItem(n) || "null");
|
|
@@ -615,18 +631,18 @@ function kt(e, t = globalThis.localStorage) {
|
|
|
615
631
|
return {};
|
|
616
632
|
}
|
|
617
633
|
}
|
|
618
|
-
function
|
|
619
|
-
let i =
|
|
634
|
+
function Ft(e, t, n, r = globalThis.localStorage) {
|
|
635
|
+
let i = Nt(e);
|
|
620
636
|
if (!i || !r) return;
|
|
621
637
|
let a = {
|
|
622
|
-
...
|
|
638
|
+
...Pt(e, r),
|
|
623
639
|
[t]: !!n
|
|
624
640
|
};
|
|
625
641
|
try {
|
|
626
642
|
r.setItem(i, JSON.stringify({ collapsed: a }));
|
|
627
643
|
} catch {}
|
|
628
644
|
}
|
|
629
|
-
function
|
|
645
|
+
function It(e, t) {
|
|
630
646
|
if (!ot.includes(e)) throw TypeError(`Unsupported kanban summary format "${String(e)}". Use ${ot.join(", ")}.`);
|
|
631
647
|
if (t != null && t !== "" && !r.includes(t)) throw TypeError(`Unsupported kanban summary unit "${String(t)}". Use ${r.join(", ")}.`);
|
|
632
648
|
return e === "currency" ? {
|
|
@@ -641,7 +657,7 @@ function jt(e, t) {
|
|
|
641
657
|
decimals: 0
|
|
642
658
|
};
|
|
643
659
|
}
|
|
644
|
-
function
|
|
660
|
+
function Lt(e) {
|
|
645
661
|
let t = 0;
|
|
646
662
|
for (let n of e) {
|
|
647
663
|
if (n == null || n === "") continue;
|
|
@@ -650,11 +666,11 @@ function Mt(e) {
|
|
|
650
666
|
}
|
|
651
667
|
return t;
|
|
652
668
|
}
|
|
653
|
-
var
|
|
669
|
+
var Rt = (e, t) => {
|
|
654
670
|
e && window.WUI?.toast?.(e, { variant: t });
|
|
655
|
-
},
|
|
671
|
+
}, zt = class extends e {
|
|
656
672
|
constructor() {
|
|
657
|
-
super(), this._wired = !1, this._filter = null, this._press = null, this._drag = null, this._kbd = null, this._suppressClick = !1, this._observer = null, this._refreshQueued = !1, this._scrollTimer = 0, this._onPointerMove = (e) => this._pointerMove(e), this._onPointerUp = (e) => this._pointerUp(e), this._onPointerCancel = () => this._endPointer(!1), this._onDocKeyDown = (e) => {
|
|
673
|
+
super(), this._wired = !1, this._filter = null, this._expanded = /* @__PURE__ */ new Set(), this._revealed = /* @__PURE__ */ new Set(), this._press = null, this._drag = null, this._kbd = null, this._suppressClick = !1, this._observer = null, this._refreshQueued = !1, this._scrollTimer = 0, this._onPointerMove = (e) => this._pointerMove(e), this._onPointerUp = (e) => this._pointerUp(e), this._onPointerCancel = () => this._endPointer(!1), this._onDocKeyDown = (e) => {
|
|
658
674
|
e.key === "Escape" && this._drag && (e.preventDefault(), this._endPointer(!1));
|
|
659
675
|
}, this._onScroll = () => {
|
|
660
676
|
clearTimeout(this._scrollTimer), this._scrollTimer = setTimeout(() => this._syncSwitcherFromScroll(), 80);
|
|
@@ -694,14 +710,28 @@ var Nt = (e, t) => {
|
|
|
694
710
|
this._refreshQueued = !1;
|
|
695
711
|
let e = this._summaryFormat();
|
|
696
712
|
for (let t of this._columns()) {
|
|
697
|
-
let n =
|
|
698
|
-
for (let e of this._cardsIn(t))
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
713
|
+
let n = M(t), r = jt(t.getAttribute(wt)), i = [], a = [];
|
|
714
|
+
for (let e of this._cardsIn(t)) {
|
|
715
|
+
if (this._filter && (e.hidden = this._filter(e) === !1), kt(e)) {
|
|
716
|
+
e.removeAttribute(Tt);
|
|
717
|
+
continue;
|
|
718
|
+
}
|
|
719
|
+
i.push(e), a.push(e.getAttribute("data-wui-value"));
|
|
720
|
+
}
|
|
721
|
+
let o = this._expanded.has(n), s = Mt(i.map(N), r, o, this._revealed);
|
|
722
|
+
for (let e of i) e.toggleAttribute(Tt, s.has(N(e)));
|
|
723
|
+
let c = String(i.length);
|
|
724
|
+
for (let e of this._countsOf(t)) e.textContent !== c && (e.textContent = c);
|
|
725
|
+
let l = t.querySelector(gt);
|
|
726
|
+
if (l && (l.hidden = i.length > 0), e) {
|
|
703
727
|
let n = t.querySelector(ht);
|
|
704
|
-
n && (n.textContent = ie(
|
|
728
|
+
n && (n.textContent = ie(Lt(a), e));
|
|
729
|
+
}
|
|
730
|
+
let u = t.querySelector(Ct);
|
|
731
|
+
if (u) {
|
|
732
|
+
u.hidden = r == null || (o ? i.length <= r : s.size === 0), u.setAttribute("aria-expanded", o ? "true" : "false");
|
|
733
|
+
let e = o ? j.fewer : j.more(s.size);
|
|
734
|
+
u.textContent !== e && (u.textContent = e);
|
|
705
735
|
}
|
|
706
736
|
}
|
|
707
737
|
}
|
|
@@ -731,13 +761,13 @@ var Nt = (e, t) => {
|
|
|
731
761
|
return t ? [...t.children].filter((e) => e.matches(pt)) : [];
|
|
732
762
|
}
|
|
733
763
|
_visibleCardsIn(e) {
|
|
734
|
-
return this._cardsIn(e).filter((e) => !
|
|
764
|
+
return this._cardsIn(e).filter((e) => !At(e));
|
|
735
765
|
}
|
|
736
766
|
_allCards() {
|
|
737
767
|
return [...this.querySelectorAll(`${ft} > ${pt}`)];
|
|
738
768
|
}
|
|
739
769
|
_cardByKey(e) {
|
|
740
|
-
return this._allCards().find((t) =>
|
|
770
|
+
return this._allCards().find((t) => N(t) === e) || null;
|
|
741
771
|
}
|
|
742
772
|
_countsOf(e) {
|
|
743
773
|
let t = M(e), n = [...this.querySelectorAll(bt)].filter((e) => e.getAttribute("data-wui-switch") === t);
|
|
@@ -748,7 +778,7 @@ var Nt = (e, t) => {
|
|
|
748
778
|
}
|
|
749
779
|
_summaryFormat() {
|
|
750
780
|
let e = this.getAttribute("summary-format");
|
|
751
|
-
return e ?
|
|
781
|
+
return e ? It(e, this.getAttribute("summary-unit")) : null;
|
|
752
782
|
}
|
|
753
783
|
_queueRefresh() {
|
|
754
784
|
this._refreshQueued || (this._refreshQueued = !0, queueMicrotask(() => {
|
|
@@ -771,8 +801,12 @@ var Nt = (e, t) => {
|
|
|
771
801
|
}));
|
|
772
802
|
}
|
|
773
803
|
_canLift(e) {
|
|
774
|
-
let t =
|
|
775
|
-
return
|
|
804
|
+
let t = P(e), n = this.hasAttribute("readonly");
|
|
805
|
+
return n || e.hasAttribute("data-wui-locked") ? (this._announce(j.locked(t)), this._fire("wui:kanban:locked", {
|
|
806
|
+
key: N(e),
|
|
807
|
+
card: e,
|
|
808
|
+
reason: n ? "readonly" : "locked"
|
|
809
|
+
}, !0), !1) : e.getAttribute("aria-busy") === "true" ? (this._announce(j.busy), Rt(j.busy, "info"), !1) : !0;
|
|
776
810
|
}
|
|
777
811
|
_check(e, t, n) {
|
|
778
812
|
if (t === n) return {
|
|
@@ -802,7 +836,7 @@ var Nt = (e, t) => {
|
|
|
802
836
|
};
|
|
803
837
|
}
|
|
804
838
|
_markTargets(e, t) {
|
|
805
|
-
let n =
|
|
839
|
+
let n = P(e), r = /* @__PURE__ */ new Map();
|
|
806
840
|
for (let i of this._columns()) {
|
|
807
841
|
let a = M(i), o = this._check(e, t, a);
|
|
808
842
|
r.set(a, o), i.setAttribute("data-wui-drop", o.source ? "source" : o.ok ? "ok" : "refused");
|
|
@@ -819,12 +853,12 @@ var Nt = (e, t) => {
|
|
|
819
853
|
}
|
|
820
854
|
}
|
|
821
855
|
async _commit(e, t, n) {
|
|
822
|
-
let r = this._columnOf(e), i = M(r), a = this._columnByKey(t), o =
|
|
856
|
+
let r = this._columnOf(e), i = M(r), a = this._columnByKey(t), o = P(e);
|
|
823
857
|
if (i === t || !this._canLift(e)) return !1;
|
|
824
858
|
let s = this._check(e, i, t);
|
|
825
|
-
if (!s.ok) return this._announce(s.reason),
|
|
859
|
+
if (!s.ok) return this._announce(s.reason), Rt(s.reason, "info"), !1;
|
|
826
860
|
let c = this._cardsIn(a), l = Number.isInteger(n) ? Math.max(0, Math.min(n, c.length)) : c.length, u = {
|
|
827
|
-
key:
|
|
861
|
+
key: N(e),
|
|
828
862
|
card: e,
|
|
829
863
|
from: i,
|
|
830
864
|
to: t,
|
|
@@ -832,21 +866,24 @@ var Nt = (e, t) => {
|
|
|
832
866
|
}, d = e.contains(document.activeElement);
|
|
833
867
|
if (this._controlled()) return this._fire("wui:kanban:move", u), this._announce(j.moved(o, this._titleOf(a))), d && this._refocusSoon(u.key), !0;
|
|
834
868
|
if (!this._fire("wui:kanban:move", u, !0)) return !1;
|
|
835
|
-
let f =
|
|
869
|
+
let f = a.hasAttribute(wt) && !this._revealed.has(u.key);
|
|
870
|
+
f && this._revealed.add(u.key);
|
|
871
|
+
let p = {
|
|
836
872
|
parent: e.parentNode,
|
|
837
873
|
next: e.nextSibling,
|
|
838
|
-
column: r
|
|
874
|
+
column: r,
|
|
875
|
+
revealed: f
|
|
839
876
|
};
|
|
840
877
|
this._bodyOf(a).insertBefore(e, c[l] || null), d && e.focus(), this.refresh();
|
|
841
|
-
let
|
|
842
|
-
if (
|
|
843
|
-
let
|
|
844
|
-
if (!
|
|
878
|
+
let m = a.getAttribute("data-wui-step");
|
|
879
|
+
if (m) return this._runStep(e, u, p, m, a.getAttribute("data-wui-step-size"));
|
|
880
|
+
let h = this.getAttribute("move-url");
|
|
881
|
+
if (!h) return this._announce(j.moved(o, this._titleOf(a))), this._fire("wui:kanban:moved", {
|
|
845
882
|
...u,
|
|
846
883
|
result: null
|
|
847
884
|
}), !0;
|
|
848
885
|
this._lock(e, !0), this._announce(j.saving(o, this._titleOf(a)));
|
|
849
|
-
let
|
|
886
|
+
let g = await fe(h, {
|
|
850
887
|
method: "POST",
|
|
851
888
|
body: new URLSearchParams({
|
|
852
889
|
card: u.key,
|
|
@@ -855,24 +892,24 @@ var Nt = (e, t) => {
|
|
|
855
892
|
index: String(l)
|
|
856
893
|
})
|
|
857
894
|
});
|
|
858
|
-
if (this._lock(e, !1),
|
|
859
|
-
if (
|
|
860
|
-
let t = this._applyFragment(
|
|
861
|
-
return
|
|
895
|
+
if (this._lock(e, !1), g.kind === "session") return !1;
|
|
896
|
+
if (g.ok) {
|
|
897
|
+
let t = this._applyFragment(g.html) || e;
|
|
898
|
+
return Rt(g.message, "success"), this._announce(j.moved(P(t), this._titleOf(a))), this._fire("wui:kanban:moved", {
|
|
862
899
|
...u,
|
|
863
900
|
card: t,
|
|
864
|
-
result:
|
|
901
|
+
result: g
|
|
865
902
|
}), !0;
|
|
866
903
|
}
|
|
867
|
-
return this._rollback(e,
|
|
904
|
+
return this._rollback(e, p), g.kind !== "aborted" && Rt(g.message || j.failed[g.kind] || j.failed.server, "danger"), this._fire("wui:kanban:failed", {
|
|
868
905
|
...u,
|
|
869
|
-
kind:
|
|
870
|
-
status:
|
|
871
|
-
message:
|
|
906
|
+
kind: g.kind,
|
|
907
|
+
status: g.status,
|
|
908
|
+
message: g.message
|
|
872
909
|
}), !1;
|
|
873
910
|
}
|
|
874
911
|
async _runStep(e, t, n, r, i) {
|
|
875
|
-
let a =
|
|
912
|
+
let a = P(e), o = this._columnByKey(t.to), s = new URLSearchParams({
|
|
876
913
|
card: t.key,
|
|
877
914
|
from: t.from,
|
|
878
915
|
to: t.to
|
|
@@ -885,7 +922,7 @@ var Nt = (e, t) => {
|
|
|
885
922
|
size: i || void 0
|
|
886
923
|
})).closed;
|
|
887
924
|
} catch (r) {
|
|
888
|
-
return this._lock(e, !1), this._rollback(e, n), r?.name !== "AbortError" &&
|
|
925
|
+
return this._lock(e, !1), this._rollback(e, n), r?.name !== "AbortError" && Rt(j.failed.server, "danger"), this._fire("wui:kanban:failed", {
|
|
889
926
|
...t,
|
|
890
927
|
kind: "step",
|
|
891
928
|
status: 0,
|
|
@@ -903,7 +940,7 @@ var Nt = (e, t) => {
|
|
|
903
940
|
let n = await fe(`${d}${d.includes("?") ? "&" : "?"}${new URLSearchParams({ card: t.key })}`);
|
|
904
941
|
n.ok && (u = this._applyFragment(n.html) || e);
|
|
905
942
|
}
|
|
906
|
-
return this._lock(u, !1), this._announce(j.moved(
|
|
943
|
+
return this._lock(u, !1), this._announce(j.moved(P(u), this._titleOf(o))), this._fire("wui:kanban:moved", {
|
|
907
944
|
...t,
|
|
908
945
|
card: u,
|
|
909
946
|
result: l
|
|
@@ -914,7 +951,7 @@ var Nt = (e, t) => {
|
|
|
914
951
|
}
|
|
915
952
|
_rollback(e, t) {
|
|
916
953
|
let n = e.contains(document.activeElement), r = t.next && t.next.parentNode === t.parent ? t.next : null;
|
|
917
|
-
t.parent.insertBefore(e, r), n && e.focus(), this.refresh(), this._announce(j.rolledBack(
|
|
954
|
+
t.revealed && this._revealed.delete(N(e)), t.parent.insertBefore(e, r), n && e.focus(), this.refresh(), this._announce(j.rolledBack(P(e), this._titleOf(t.column)));
|
|
918
955
|
}
|
|
919
956
|
_applyFragment(e) {
|
|
920
957
|
if (!e) return null;
|
|
@@ -924,7 +961,7 @@ var Nt = (e, t) => {
|
|
|
924
961
|
let n = null;
|
|
925
962
|
for (let e of [...t.content.querySelectorAll(pt)]) {
|
|
926
963
|
if (e.closest("template")) continue;
|
|
927
|
-
let t = this._cardByKey(
|
|
964
|
+
let t = this._cardByKey(N(e));
|
|
928
965
|
if (!t) continue;
|
|
929
966
|
let r = t.contains(document.activeElement);
|
|
930
967
|
t.dispatchEvent(new CustomEvent("wui:teardown", { bubbles: !0 })), t.hidden && (e.hidden = !0), t.replaceWith(e), this._prepareCard(e), r && e.focus(), n ??= e;
|
|
@@ -939,7 +976,7 @@ var Nt = (e, t) => {
|
|
|
939
976
|
_pointerDown(e) {
|
|
940
977
|
if (e.button !== 0 || e.isPrimary === !1 || this._drag || this._kbd) return;
|
|
941
978
|
let t = e.target.closest?.(pt);
|
|
942
|
-
if (!t || !this.contains(t) || e.target.closest(
|
|
979
|
+
if (!t || !this.contains(t) || e.target.closest(Et)) return;
|
|
943
980
|
let n = {
|
|
944
981
|
card: t,
|
|
945
982
|
id: e.pointerId,
|
|
@@ -985,7 +1022,7 @@ var Nt = (e, t) => {
|
|
|
985
1022
|
dy: n - a.top,
|
|
986
1023
|
over: null,
|
|
987
1024
|
verdicts: this._markTargets(r, i)
|
|
988
|
-
}, this._announce(j.lifted(
|
|
1025
|
+
}, this._announce(j.lifted(P(r), this._titleOf(this._columnOf(r)))), document.addEventListener("keydown", this._onDocKeyDown), this._dragTo(t, n);
|
|
989
1026
|
}
|
|
990
1027
|
_dragTo(e, t) {
|
|
991
1028
|
let n = this._drag;
|
|
@@ -1011,10 +1048,10 @@ var Nt = (e, t) => {
|
|
|
1011
1048
|
let n = this._scroller();
|
|
1012
1049
|
if (n) {
|
|
1013
1050
|
let t = n.getBoundingClientRect();
|
|
1014
|
-
t.width > 0 && (e < t.left +
|
|
1051
|
+
t.width > 0 && (e < t.left + Dt ? n.scrollBy?.({ left: -16 }) : e > t.right - Dt && n.scrollBy?.({ left: Ot }));
|
|
1015
1052
|
}
|
|
1016
1053
|
let r = window.innerHeight || 0;
|
|
1017
|
-
r > 0 && (t <
|
|
1054
|
+
r > 0 && (t < Dt ? window.scrollBy?.({ top: -16 }) : t > r - Dt && window.scrollBy?.({ top: Ot }));
|
|
1018
1055
|
}
|
|
1019
1056
|
_endPointer(e) {
|
|
1020
1057
|
let t = this._press, n = this._drag;
|
|
@@ -1024,16 +1061,16 @@ var Nt = (e, t) => {
|
|
|
1024
1061
|
}, 0);
|
|
1025
1062
|
let r = n.over;
|
|
1026
1063
|
if (this._clearTargets(), !e || !r) {
|
|
1027
|
-
this._announce(j.cancelled(
|
|
1064
|
+
this._announce(j.cancelled(P(n.card)));
|
|
1028
1065
|
return;
|
|
1029
1066
|
}
|
|
1030
1067
|
let i = M(r), a = n.verdicts.get(i);
|
|
1031
1068
|
if (a?.source) {
|
|
1032
|
-
this._announce(j.cancelled(
|
|
1069
|
+
this._announce(j.cancelled(P(n.card)));
|
|
1033
1070
|
return;
|
|
1034
1071
|
}
|
|
1035
1072
|
if (!a?.ok) {
|
|
1036
|
-
this._announce(a?.reason),
|
|
1073
|
+
this._announce(a?.reason), Rt(a?.reason, "info");
|
|
1037
1074
|
return;
|
|
1038
1075
|
}
|
|
1039
1076
|
this._commit(n.card, i, this._indexAt(r, n.y));
|
|
@@ -1049,8 +1086,13 @@ var Nt = (e, t) => {
|
|
|
1049
1086
|
e && this._setCollapsed(e, !e.hasAttribute("data-collapsed"), !0);
|
|
1050
1087
|
return;
|
|
1051
1088
|
}
|
|
1052
|
-
let n = e.target.closest?.(
|
|
1053
|
-
|
|
1089
|
+
let n = e.target.closest?.(Ct);
|
|
1090
|
+
if (n && this.contains(n)) {
|
|
1091
|
+
this._controlled() || this._toggleMore(n.closest(dt));
|
|
1092
|
+
return;
|
|
1093
|
+
}
|
|
1094
|
+
let r = e.target.closest?.(bt);
|
|
1095
|
+
r && this.contains(r) && this._showColumn(r.getAttribute("data-wui-switch"));
|
|
1054
1096
|
}
|
|
1055
1097
|
_keyDown(e) {
|
|
1056
1098
|
if (this._kbd) {
|
|
@@ -1070,7 +1112,7 @@ var Nt = (e, t) => {
|
|
|
1070
1112
|
from: r,
|
|
1071
1113
|
target: i.indexOf(n),
|
|
1072
1114
|
verdicts: this._markTargets(t, r)
|
|
1073
|
-
}, t.setAttribute("data-wui-lifted", ""), this.setAttribute("data-wui-dragging", ""), n.setAttribute("data-wui-target", ""), this._announce(j.lifted(
|
|
1115
|
+
}, t.setAttribute("data-wui-lifted", ""), this.setAttribute("data-wui-dragging", ""), n.setAttribute("data-wui-target", ""), this._announce(j.lifted(P(t), this._titleOf(n)));
|
|
1074
1116
|
return;
|
|
1075
1117
|
}
|
|
1076
1118
|
case "ArrowDown":
|
|
@@ -1106,7 +1148,7 @@ var Nt = (e, t) => {
|
|
|
1106
1148
|
let i = n[r];
|
|
1107
1149
|
i.setAttribute("data-wui-target", ""), this._showColumn(M(i), !1);
|
|
1108
1150
|
let a = t.verdicts.get(M(i)), o = this._titleOf(i);
|
|
1109
|
-
this._announce(a.source ? j.overSource(o) : a.ok ? j.over(o, this.
|
|
1151
|
+
this._announce(a.source ? j.overSource(o) : a.ok ? j.over(o, this._cardsIn(i).filter((e) => !kt(e)).length) : j.overRefused(o, a.reason));
|
|
1110
1152
|
return;
|
|
1111
1153
|
}
|
|
1112
1154
|
case " ":
|
|
@@ -1118,12 +1160,12 @@ var Nt = (e, t) => {
|
|
|
1118
1160
|
this._announce(a.reason);
|
|
1119
1161
|
return;
|
|
1120
1162
|
}
|
|
1121
|
-
this._endKeyboard(), a.source ? this._announce(j.cancelled(
|
|
1163
|
+
this._endKeyboard(), a.source ? this._announce(j.cancelled(P(t.card))) : this._commit(t.card, i);
|
|
1122
1164
|
return;
|
|
1123
1165
|
}
|
|
1124
1166
|
case "Escape":
|
|
1125
1167
|
case "Tab":
|
|
1126
|
-
e.key === "Escape" && e.preventDefault(), this._endKeyboard(), this._showColumn(t.from, !1), this._announce(j.cancelled(
|
|
1168
|
+
e.key === "Escape" && e.preventDefault(), this._endKeyboard(), this._showColumn(t.from, !1), this._announce(j.cancelled(P(t.card)));
|
|
1127
1169
|
return;
|
|
1128
1170
|
default:
|
|
1129
1171
|
}
|
|
@@ -1133,7 +1175,7 @@ var Nt = (e, t) => {
|
|
|
1133
1175
|
this._kbd = null, e && (e.card.removeAttribute("data-wui-lifted"), this.removeAttribute("data-wui-dragging"), this._clearTargets());
|
|
1134
1176
|
}
|
|
1135
1177
|
_restoreCollapsed() {
|
|
1136
|
-
let e =
|
|
1178
|
+
let e = Pt(this.getAttribute("board-id"));
|
|
1137
1179
|
for (let t of this._columns()) {
|
|
1138
1180
|
let n = M(t);
|
|
1139
1181
|
t.hasAttribute("data-collapsible") && Object.hasOwn(e, n) && this._setCollapsed(t, e[n], !1);
|
|
@@ -1144,11 +1186,18 @@ var Nt = (e, t) => {
|
|
|
1144
1186
|
e.toggleAttribute("data-collapsed", t);
|
|
1145
1187
|
let i = this._titleOf(e);
|
|
1146
1188
|
for (let n of e.querySelectorAll(St)) n.setAttribute("aria-expanded", t ? "false" : "true"), n.setAttribute("aria-label", t ? j.expand(i) : j.collapse(i));
|
|
1147
|
-
n && (
|
|
1189
|
+
n && (Ft(this.getAttribute("board-id"), r, t), this._fire("wui:kanban:collapse", {
|
|
1148
1190
|
column: r,
|
|
1149
1191
|
collapsed: t
|
|
1150
1192
|
}));
|
|
1151
1193
|
}
|
|
1194
|
+
_toggleMore(e) {
|
|
1195
|
+
if (!e) return;
|
|
1196
|
+
let t = M(e);
|
|
1197
|
+
if (this._expanded.delete(t)) for (let t of this._cardsIn(e)) this._revealed.delete(N(t));
|
|
1198
|
+
else this._expanded.add(t);
|
|
1199
|
+
this.refresh();
|
|
1200
|
+
}
|
|
1152
1201
|
_isPhone() {
|
|
1153
1202
|
return typeof matchMedia == "function" && matchMedia("(max-width: 767.98px)").matches;
|
|
1154
1203
|
}
|
|
@@ -1168,20 +1217,20 @@ var Nt = (e, t) => {
|
|
|
1168
1217
|
let t = e.clientWidth || 1, n = this._columns()[Math.round(e.scrollLeft / t)];
|
|
1169
1218
|
if (n) for (let e of this.querySelectorAll(bt)) e.getAttribute("data-wui-switch") === M(n) ? e.setAttribute("aria-current", "true") : e.removeAttribute("aria-current");
|
|
1170
1219
|
}
|
|
1171
|
-
},
|
|
1220
|
+
}, Bt = {
|
|
1172
1221
|
delete: "data:image/webp;base64,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",
|
|
1173
1222
|
info: "data:image/webp;base64,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",
|
|
1174
1223
|
primary: "data:image/webp;base64,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",
|
|
1175
1224
|
success: "data:image/webp;base64,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",
|
|
1176
1225
|
warning: "data:image/webp;base64,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"
|
|
1177
|
-
},
|
|
1226
|
+
}, Vt = { error: "<rect width=\"174\" height=\"174\" rx=\"87\" fill=\"var(--wui-danger-5)\"/>\n<rect x=\"24\" y=\"24\" width=\"126\" height=\"126\" rx=\"63\" stroke=\"var(--wui-danger-20)\" stroke-width=\"16\"/>\n<g clip-path=\"url(#wui_error_clip0)\">\n<rect x=\"32\" y=\"32\" width=\"110\" height=\"110\" rx=\"55\" fill=\"var(--wui-danger)\"/>\n<rect x=\"110.758\" y=\"62\" width=\"75.5044\" height=\"69.9535\" transform=\"rotate(45 110.758 62)\" fill=\"var(--wui-danger-active)\"/>\n<g clip-path=\"url(#wui_error_clip1)\">\n<path d=\"M95.9285 87.0037L112.943 69.9887C114.823 68.1087 114.823 65.0608 112.943 63.1838L110.675 60.9155C108.795 59.0349 105.747 59.0349 103.87 60.9155L86.8552 77.9298L69.8403 60.9119C67.9603 59.032 64.9124 59.032 63.0353 60.9119L60.7635 63.1802C58.8835 65.0608 58.8835 68.1087 60.7635 69.9858L77.7814 87.0037L60.767 104.018C58.8865 105.899 58.8865 108.947 60.767 110.824L63.0353 113.092C64.9153 114.972 67.9632 114.972 69.8403 113.092L86.8552 96.0769L103.87 113.092C105.75 114.972 108.798 114.972 110.675 113.092L112.943 110.824C114.823 108.943 114.823 105.895 112.943 104.018L95.9285 87.0037Z\" fill=\"white\"/>\n</g>\n</g>\n<defs><clipPath id=\"wui_error_clip0\"><rect x=\"32\" y=\"32\" width=\"110\" height=\"110\" rx=\"55\" fill=\"white\"/></clipPath><clipPath id=\"wui_error_clip1\"><rect width=\"55\" height=\"55\" fill=\"white\" transform=\"translate(59.3535 59.502)\"/></clipPath></defs>" }, Ht = [
|
|
1178
1227
|
"success",
|
|
1179
1228
|
"error",
|
|
1180
1229
|
"warning",
|
|
1181
1230
|
"info",
|
|
1182
1231
|
"delete",
|
|
1183
1232
|
"primary"
|
|
1184
|
-
],
|
|
1233
|
+
], Ut = class extends e {
|
|
1185
1234
|
static get observedAttributes() {
|
|
1186
1235
|
return ["tone", "size"];
|
|
1187
1236
|
}
|
|
@@ -1192,67 +1241,67 @@ var Nt = (e, t) => {
|
|
|
1192
1241
|
this.isConnected && this.render();
|
|
1193
1242
|
}
|
|
1194
1243
|
render() {
|
|
1195
|
-
let e = this.getAttribute("tone"), t = Number.parseInt(this.getAttribute("size"), 10) || 72, n =
|
|
1244
|
+
let e = this.getAttribute("tone"), t = Number.parseInt(this.getAttribute("size"), 10) || 72, n = Vt[e];
|
|
1196
1245
|
if (n) {
|
|
1197
1246
|
this.innerHTML = `<svg width="${t}" height="${t}" viewBox="0 0 174 174" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">${n}</svg>`;
|
|
1198
1247
|
return;
|
|
1199
1248
|
}
|
|
1200
|
-
let r =
|
|
1249
|
+
let r = Bt[e] || Bt.info;
|
|
1201
1250
|
this.innerHTML = `<img src="${r}" width="${t}" height="${t}" alt="" aria-hidden="true" draggable="false" />`;
|
|
1202
1251
|
}
|
|
1203
|
-
},
|
|
1204
|
-
function
|
|
1252
|
+
}, F = 4, Wt = 300, Gt = 400;
|
|
1253
|
+
function I(e, t, n = {}) {
|
|
1205
1254
|
if (!e || !t) return;
|
|
1206
1255
|
let r = e.getBoundingClientRect(), i = n.clampHeight ? t.scrollTop : 0;
|
|
1207
1256
|
n.clampHeight && (t.style.maxHeight = "");
|
|
1208
|
-
let a = t.offsetHeight, o = window.innerHeight - r.bottom, s = o < a +
|
|
1209
|
-
if (t.classList.toggle("drop-up", s), t.style.position = "fixed", t.style.top = s ? `${Math.max(
|
|
1210
|
-
let e = s ? r.top -
|
|
1257
|
+
let a = t.offsetHeight, o = window.innerHeight - r.bottom, s = o < a + F && r.top > o;
|
|
1258
|
+
if (t.classList.toggle("drop-up", s), t.style.position = "fixed", t.style.top = s ? `${Math.max(F, r.top - a - F)}px` : `${r.bottom + F}px`, n.clampHeight) {
|
|
1259
|
+
let e = s ? r.top - F * 2 : window.innerHeight - r.bottom - F * 2;
|
|
1211
1260
|
e < a && (t.style.maxHeight = `${Math.max(e, 0)}px`), t.scrollTop = i;
|
|
1212
1261
|
}
|
|
1213
|
-
n.matchWidth && (r.width >=
|
|
1214
|
-
let c = t.offsetWidth, l = Math.min(r.left, window.innerWidth - c -
|
|
1215
|
-
t.style.left = `${Math.max(
|
|
1262
|
+
n.matchWidth && (r.width >= Wt ? (t.style.minWidth = `${r.width}px`, t.style.width = `${r.width}px`, t.style.maxWidth = `${r.width}px`) : (t.style.minWidth = `${r.width}px`, t.style.width = "max-content", t.style.maxWidth = `${Math.min(Gt, window.innerWidth - F * 2)}px`));
|
|
1263
|
+
let c = t.offsetWidth, l = Math.min(r.left, window.innerWidth - c - F);
|
|
1264
|
+
t.style.left = `${Math.max(F, l)}px`;
|
|
1216
1265
|
}
|
|
1217
|
-
function
|
|
1218
|
-
|
|
1266
|
+
function L(e, t) {
|
|
1267
|
+
R(e), e._reanchor = t, e._reanchorScroll = (n) => {
|
|
1219
1268
|
n.target instanceof Node && typeof e.contains == "function" && e.contains(n.target) || t();
|
|
1220
1269
|
}, window.addEventListener("resize", e._reanchor), window.addEventListener("scroll", e._reanchorScroll, !0);
|
|
1221
1270
|
}
|
|
1222
|
-
function
|
|
1271
|
+
function R(e) {
|
|
1223
1272
|
e?._reanchor && (window.removeEventListener("resize", e._reanchor), window.removeEventListener("scroll", e._reanchorScroll, !0), e._reanchor = null, e._reanchorScroll = null);
|
|
1224
1273
|
}
|
|
1225
1274
|
//#endregion
|
|
1226
1275
|
//#region src/formMirror.js
|
|
1227
|
-
var
|
|
1228
|
-
function
|
|
1276
|
+
var Kt = "data-wui-mirror";
|
|
1277
|
+
function qt(e, t, n, r) {
|
|
1229
1278
|
t.name = n, t.value = r == null ? "" : String(r);
|
|
1230
1279
|
for (let n of [...t.attributes]) n.name.startsWith("data-val") && !e.hasAttribute(n.name) && t.removeAttribute(n.name);
|
|
1231
1280
|
for (let n of e.attributes) n.name.startsWith("data-val") && t.setAttribute(n.name, n.value);
|
|
1232
1281
|
t.disabled = e.hasAttribute("disabled");
|
|
1233
1282
|
}
|
|
1234
|
-
function
|
|
1283
|
+
function Jt(e) {
|
|
1235
1284
|
let t = document.createElement("input");
|
|
1236
|
-
return t.type = "hidden", t.setAttribute(
|
|
1285
|
+
return t.type = "hidden", t.setAttribute(Kt, ""), e.appendChild(t), t;
|
|
1237
1286
|
}
|
|
1238
|
-
function
|
|
1239
|
-
let n = e.getAttribute("name"), r = e.querySelector(`:scope > input[${
|
|
1287
|
+
function z(e, t) {
|
|
1288
|
+
let n = e.getAttribute("name"), r = e.querySelector(`:scope > input[${Kt}]`);
|
|
1240
1289
|
if (!n) {
|
|
1241
1290
|
r?.remove();
|
|
1242
1291
|
return;
|
|
1243
1292
|
}
|
|
1244
|
-
r ||=
|
|
1293
|
+
r ||= Jt(e), qt(e, r, n, t);
|
|
1245
1294
|
}
|
|
1246
|
-
function
|
|
1247
|
-
let n = e.getAttribute("name"), r = [...e.querySelectorAll(`:scope > input[${
|
|
1295
|
+
function B(e, t) {
|
|
1296
|
+
let n = e.getAttribute("name"), r = [...e.querySelectorAll(`:scope > input[${Kt}]`)], i = [...e.attributes].some((e) => e.name.startsWith("data-val")), a = n ? t.length > 0 ? t : i ? [""] : [] : [];
|
|
1248
1297
|
for (let e of r.splice(a.length)) e.remove();
|
|
1249
1298
|
a.forEach((t, i) => {
|
|
1250
|
-
|
|
1299
|
+
qt(e, r[i] ?? Jt(e), n, t);
|
|
1251
1300
|
});
|
|
1252
1301
|
}
|
|
1253
1302
|
//#endregion
|
|
1254
1303
|
//#region src/iconGlyphs.g.js
|
|
1255
|
-
var
|
|
1304
|
+
var Yt = {
|
|
1256
1305
|
activity: "<path d=\"M9 22h6c5 0 7-2 7-7V9c0-5-2-7-7-7H9C4 2 2 4 2 9v6c0 5 2 7 7 7Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path><path d=\"m7.33 14.49 2.38-3.09c.34-.44.97-.52 1.41-.18l1.83 1.44c.44.34 1.07.26 1.41-.17l2.31-2.98\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>",
|
|
1257
1306
|
add: "<path d=\"M6 12h12M12 18V6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>",
|
|
1258
1307
|
"add-circle": "<path d=\"M12 22c5.5 0 10-4.5 10-10S17.5 2 12 2 2 6.5 2 12s4.5 10 10 10ZM8 12h8M12 16V8\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>",
|
|
@@ -1459,14 +1508,14 @@ var Wt = {
|
|
|
1459
1508
|
"zoom-in": "<path d=\"M11 20a9 9 0 1 0 0-18 9 9 0 0 0 0 18ZM8.5 11h5M11 13.5v-5M18.93 20.69c.53 1.6 1.74 1.76 2.67.36.85-1.28.29-2.33-1.25-2.33-1.14-.01-1.78.88-1.42 1.97Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>",
|
|
1460
1509
|
"zoom-out": "<path d=\"M9 11.7h5M11.5 21a9.5 9.5 0 1 0 0-19 9.5 9.5 0 0 0 0 19ZM22 22l-2-2\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>"
|
|
1461
1510
|
};
|
|
1462
|
-
Object.keys(
|
|
1463
|
-
function
|
|
1464
|
-
let i =
|
|
1511
|
+
Object.keys(Yt);
|
|
1512
|
+
function V(e, { size: t = 16, className: n = "", style: r = "" } = {}) {
|
|
1513
|
+
let i = Yt[e];
|
|
1465
1514
|
return i ? `<svg class="${n ? `wui-icon ${n}` : "wui-icon"}" data-icon="${e}" width="${t}" height="${t}" viewBox="0 0 24 24" fill="none" aria-hidden="true" style="vertical-align:-.125em${r ? `;${r}` : ""}">${i}</svg>` : "";
|
|
1466
1515
|
}
|
|
1467
1516
|
//#endregion
|
|
1468
1517
|
//#region src/listboxKeyNav.js
|
|
1469
|
-
function
|
|
1518
|
+
function Xt(e) {
|
|
1470
1519
|
let { getVisibleOptions: t, getActive: n, setActive: r, onEnter: i, onEscape: a, onTypeahead: o, typeaheadMs: s = 500 } = e, c = "", l = null, u = () => {
|
|
1471
1520
|
clearTimeout(l), l = null, c = "";
|
|
1472
1521
|
};
|
|
@@ -1497,18 +1546,18 @@ function Gt(e) {
|
|
|
1497
1546
|
}
|
|
1498
1547
|
//#endregion
|
|
1499
1548
|
//#region src/optionLabel.js
|
|
1500
|
-
var
|
|
1549
|
+
var Zt = Symbol("wui.trustedHtml"), H = (e) => String(e ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'"), Qt = (e) => {
|
|
1501
1550
|
if (!e) return "";
|
|
1502
1551
|
let t = String(e).toLowerCase().replace(/[^a-z0-9-]/g, "");
|
|
1503
|
-
return t ?
|
|
1504
|
-
},
|
|
1552
|
+
return t ? V(t) : "";
|
|
1553
|
+
}, $t = (e) => `wui-flag wui-flag-${e}`, en = (e) => {
|
|
1505
1554
|
let t = String(e ?? "").toLowerCase();
|
|
1506
|
-
return /^[a-z]{2}$/.test(t) ? `<span class="${
|
|
1507
|
-
},
|
|
1555
|
+
return /^[a-z]{2}$/.test(t) ? `<span class="${$t(t)}" aria-hidden="true"></span>` : "";
|
|
1556
|
+
}, tn = (e) => {
|
|
1508
1557
|
if (e == null) return "";
|
|
1509
|
-
let t = e[
|
|
1558
|
+
let t = e[Zt] ? String(e.label ?? "") : H(e.label), n = en(e.flag) + Qt(e.icon);
|
|
1510
1559
|
return n ? `<span class="wui-opt-label">${n}${t}</span>` : t;
|
|
1511
|
-
},
|
|
1560
|
+
}, nn = class extends e {
|
|
1512
1561
|
static formAssociated = !0;
|
|
1513
1562
|
_accessibleName() {
|
|
1514
1563
|
return this.getAttribute("aria-label") || this.getAttribute("placeholder") || "Select";
|
|
@@ -1567,14 +1616,14 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1567
1616
|
return this._value;
|
|
1568
1617
|
}
|
|
1569
1618
|
set value(e) {
|
|
1570
|
-
this._value = e == null ? "" : String(e),
|
|
1619
|
+
this._value = e == null ? "" : String(e), z(this, this._value);
|
|
1571
1620
|
let t = this._readOptions().find((e) => String(e.value) === this._value);
|
|
1572
|
-
this._label = t ?
|
|
1621
|
+
this._label = t ? an(t.label) : "", this._syncInput(), this._renderOptions("");
|
|
1573
1622
|
}
|
|
1574
1623
|
set options(e) {
|
|
1575
1624
|
this._optionsProp = Array.isArray(e) ? e : [];
|
|
1576
1625
|
let t = this._readOptions().find((e) => String(e.value) === this._value);
|
|
1577
|
-
t && (this._label =
|
|
1626
|
+
t && (this._label = an(t.label)), this._renderOptions(), this._syncInput();
|
|
1578
1627
|
}
|
|
1579
1628
|
get options() {
|
|
1580
1629
|
return this._readOptions();
|
|
@@ -1593,7 +1642,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1593
1642
|
}
|
|
1594
1643
|
_matchesKnownOption(e) {
|
|
1595
1644
|
let t = e.toLowerCase();
|
|
1596
|
-
return this._readOptions().some((e) =>
|
|
1645
|
+
return this._readOptions().some((e) => an(e.label).toLowerCase() === t || String(e.value ?? "").toLowerCase() === t);
|
|
1597
1646
|
}
|
|
1598
1647
|
get _minChars() {
|
|
1599
1648
|
return Math.max(0, Number(this.getAttribute("min-chars")) || +!!this._remote);
|
|
@@ -1611,7 +1660,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1611
1660
|
value: e.getAttribute("value") ?? e.textContent.trim(),
|
|
1612
1661
|
label: e.innerHTML,
|
|
1613
1662
|
icon: e.getAttribute("icon") || void 0,
|
|
1614
|
-
[
|
|
1663
|
+
[Zt]: !0,
|
|
1615
1664
|
selected: e.hasAttribute("selected")
|
|
1616
1665
|
})));
|
|
1617
1666
|
}
|
|
@@ -1625,17 +1674,17 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1625
1674
|
let r = `${this.id}-listbox`;
|
|
1626
1675
|
this._listboxId = r, this.innerHTML = `
|
|
1627
1676
|
<div class="search-select${n}">
|
|
1628
|
-
<div class="input search-select-control search-select-ac" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${
|
|
1629
|
-
<input class="search-select-input search-select-ac-input" placeholder="${
|
|
1677
|
+
<div class="input search-select-control search-select-ac" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${rn(r)}" aria-label="${rn(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}>
|
|
1678
|
+
<input class="search-select-input search-select-ac-input" placeholder="${rn(e)}" aria-autocomplete="list" autocomplete="off"${this.hasAttribute("disabled") ? " disabled" : ""} />
|
|
1630
1679
|
<span class="search-select-spinner spinner-border spinner-border-sm" role="status" aria-hidden="true" hidden></span>
|
|
1631
|
-
<button type="button" class="search-select-clear" aria-label="Clear" hidden>${
|
|
1680
|
+
<button type="button" class="search-select-clear" aria-label="Clear" hidden>${V("x")}</button>
|
|
1632
1681
|
</div>
|
|
1633
|
-
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${
|
|
1682
|
+
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${rn(r)}" tabindex="-1" hidden>
|
|
1634
1683
|
<div class="search-select-options"></div>
|
|
1635
1684
|
<div class="search-select-empty" hidden>No matches</div>
|
|
1636
1685
|
<div class="search-select-hint" hidden>Type to search…</div>
|
|
1637
1686
|
</div>
|
|
1638
|
-
</div>`, this._rendered = !0,
|
|
1687
|
+
</div>`, this._rendered = !0, z(this, this._value), this._wire(), this._syncInput(), this._renderOptions();
|
|
1639
1688
|
}
|
|
1640
1689
|
_refs() {
|
|
1641
1690
|
return {
|
|
@@ -1664,7 +1713,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1664
1713
|
let t = this._refs();
|
|
1665
1714
|
if (!t.optionsWrap) return;
|
|
1666
1715
|
let n = e ?? (t.input ? t.input.value : ""), r = n.trim().toLowerCase(), i = this._readOptions();
|
|
1667
|
-
!this._remote && r && (i = i.filter((e) =>
|
|
1716
|
+
!this._remote && r && (i = i.filter((e) => an(e.label).toLowerCase().includes(r)));
|
|
1668
1717
|
let a = n.trim(), o = this._allowCustom && a && !this._matchesKnownOption(a) ? [...i, {
|
|
1669
1718
|
value: a,
|
|
1670
1719
|
custom: !0
|
|
@@ -1672,11 +1721,11 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1672
1721
|
t.optionsWrap.innerHTML = o.map((e, t) => {
|
|
1673
1722
|
let n = `${s}-opt-${t}`;
|
|
1674
1723
|
if (e.custom) {
|
|
1675
|
-
let t = `Add “${
|
|
1676
|
-
return `<button type="button" role="option" id="${
|
|
1724
|
+
let t = `Add “${H(e.value)}”`;
|
|
1725
|
+
return `<button type="button" role="option" id="${rn(n)}" class="search-select-option search-select-option-custom" data-value="${rn(e.value)}" data-custom="true" aria-selected="false">${t}</button>`;
|
|
1677
1726
|
}
|
|
1678
1727
|
let r = String(e.value) === String(this._value);
|
|
1679
|
-
return `<button type="button" role="option" id="${
|
|
1728
|
+
return `<button type="button" role="option" id="${rn(n)}" class="search-select-option${r ? " selected" : ""}" data-value="${rn(e.value)}" aria-selected="${r}">${tn(e)}</button>`;
|
|
1680
1729
|
}).join(""), this._active = -1, t.control?.removeAttribute("aria-activedescendant");
|
|
1681
1730
|
let c = r.length < this._minChars;
|
|
1682
1731
|
t.hint && (t.hint.hidden = !(this._remote && c && !i.length)), t.empty && (t.empty.hidden = this._loading || o.length > 0 || this._remote && c), this._reanchor?.();
|
|
@@ -1685,7 +1734,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1685
1734
|
this._teardown();
|
|
1686
1735
|
let e = this._refs();
|
|
1687
1736
|
if (!e.control || !e.input) return;
|
|
1688
|
-
let t = () =>
|
|
1737
|
+
let t = () => I(e.control, e.menu, { matchWidth: !0 }), n = () => this._optionEls().filter((e) => !e.hidden), r = (t) => {
|
|
1689
1738
|
let r = n();
|
|
1690
1739
|
this._active = t;
|
|
1691
1740
|
for (let e of this._optionEls()) e.classList.remove("is-active");
|
|
@@ -1696,12 +1745,12 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1696
1745
|
e.menu.hidden = !0, e.control.setAttribute("aria-expanded", "false"), e.control.classList.remove("open"), r(-1), clearTimeout(this._typeaheadTimer), this._typeaheadTimer = null, this._typeahead = "", this._syncInput();
|
|
1697
1746
|
}, s = (t) => {
|
|
1698
1747
|
let n = t.dataset.custom === "true";
|
|
1699
|
-
this._value = t.dataset.value, this._label = n ? t.dataset.value :
|
|
1748
|
+
this._value = t.dataset.value, this._label = n ? t.dataset.value : an(t.innerHTML), z(this, this._value), e.input.value = this._label, this.dispatchEvent(new CustomEvent("change", {
|
|
1700
1749
|
bubbles: !0,
|
|
1701
1750
|
detail: { isCustom: n }
|
|
1702
1751
|
})), o(), e.input.focus();
|
|
1703
1752
|
}, c = (t) => {
|
|
1704
|
-
this._value = t, this._label = t,
|
|
1753
|
+
this._value = t, this._label = t, z(this, t), e.input.value = t, this.dispatchEvent(new CustomEvent("change", {
|
|
1705
1754
|
bubbles: !0,
|
|
1706
1755
|
detail: { isCustom: !0 }
|
|
1707
1756
|
})), o();
|
|
@@ -1719,7 +1768,7 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1719
1768
|
}, this._timer = setTimeout(() => this._fireSearch(t, e), this._debounceMs);
|
|
1720
1769
|
} else this._renderOptions(t);
|
|
1721
1770
|
};
|
|
1722
|
-
this._navHandler =
|
|
1771
|
+
this._navHandler = Xt({
|
|
1723
1772
|
getVisibleOptions: n,
|
|
1724
1773
|
getActive: () => this._active,
|
|
1725
1774
|
setActive: (e) => r(e),
|
|
@@ -1759,11 +1808,11 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1759
1808
|
let t = e.target.closest(".search-select-option");
|
|
1760
1809
|
t && r(this._optionEls().indexOf(t));
|
|
1761
1810
|
}), e.optionsWrap.addEventListener("mouseleave", () => r(-1)), e.clear?.addEventListener("click", () => {
|
|
1762
|
-
this._value = "", this._label = "",
|
|
1811
|
+
this._value = "", this._label = "", z(this, ""), e.input.value = "", e.clear.hidden = !0, this._renderOptions(""), this.dispatchEvent(new Event("change", { bubbles: !0 })), e.input.focus();
|
|
1763
1812
|
}), this._bindGlobal = () => {
|
|
1764
1813
|
this._teardown(), this._onDocClick = (e) => {
|
|
1765
1814
|
i() && !this.contains(e.target) && o();
|
|
1766
|
-
}, document.addEventListener("click", this._onDocClick),
|
|
1815
|
+
}, document.addEventListener("click", this._onDocClick), L(this, () => {
|
|
1767
1816
|
i() && t();
|
|
1768
1817
|
});
|
|
1769
1818
|
}, this._bindGlobal();
|
|
@@ -1778,15 +1827,15 @@ var Kt = Symbol("wui.trustedHtml"), V = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1778
1827
|
}));
|
|
1779
1828
|
}
|
|
1780
1829
|
_teardown() {
|
|
1781
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null),
|
|
1830
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), R(this), clearTimeout(this._timer), this._navHandler?.teardown();
|
|
1782
1831
|
}
|
|
1783
1832
|
disconnectedCallback() {
|
|
1784
1833
|
this._teardown();
|
|
1785
1834
|
}
|
|
1786
|
-
},
|
|
1835
|
+
}, rn = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), an = (e) => String(e ?? "").replace(/<[^>]*>/g, "");
|
|
1787
1836
|
//#endregion
|
|
1788
1837
|
//#region src/textMatch.js
|
|
1789
|
-
function
|
|
1838
|
+
function on(e, t) {
|
|
1790
1839
|
let n = String(e ?? ""), r = String(t ?? "").trim();
|
|
1791
1840
|
if (!r || !n) return [{
|
|
1792
1841
|
text: n,
|
|
@@ -1812,7 +1861,7 @@ function $t(e, t) {
|
|
|
1812
1861
|
}
|
|
1813
1862
|
//#endregion
|
|
1814
1863
|
//#region src/WuiCommandPalette.js
|
|
1815
|
-
var
|
|
1864
|
+
var sn = "[role=\"option\"]", cn = "No results", ln = class extends e {
|
|
1816
1865
|
static get observedAttributes() {
|
|
1817
1866
|
return [
|
|
1818
1867
|
"filter",
|
|
@@ -1855,7 +1904,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
1855
1904
|
this.setAttribute("highlight", e ? "true" : "false");
|
|
1856
1905
|
}
|
|
1857
1906
|
get emptyText() {
|
|
1858
|
-
return this.getAttribute("empty-text") ??
|
|
1907
|
+
return this.getAttribute("empty-text") ?? cn;
|
|
1859
1908
|
}
|
|
1860
1909
|
set emptyText(e) {
|
|
1861
1910
|
this.setAttribute("empty-text", String(e ?? ""));
|
|
@@ -1872,7 +1921,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
1872
1921
|
return this.querySelector("[role=\"combobox\"]");
|
|
1873
1922
|
}
|
|
1874
1923
|
_optionFrom(e, t = !1) {
|
|
1875
|
-
let n = e?.closest?.(
|
|
1924
|
+
let n = e?.closest?.(sn);
|
|
1876
1925
|
return n && this.contains(n) && !this._isHidden(n) && (t || !this._isDisabled(n)) ? n : null;
|
|
1877
1926
|
}
|
|
1878
1927
|
_isDisabled(e) {
|
|
@@ -1882,11 +1931,11 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
1882
1931
|
return e.hidden || !!e.closest("[role=\"group\"]")?.hidden;
|
|
1883
1932
|
}
|
|
1884
1933
|
_selectableOptions() {
|
|
1885
|
-
return [...this.querySelectorAll(
|
|
1934
|
+
return [...this.querySelectorAll(sn)].filter((e) => !this._isHidden(e) && !this._isDisabled(e));
|
|
1886
1935
|
}
|
|
1887
1936
|
_setActive(e, t) {
|
|
1888
1937
|
this._activeId = e ? e.id : null;
|
|
1889
|
-
for (let t of this.querySelectorAll(
|
|
1938
|
+
for (let t of this.querySelectorAll(sn)) t.setAttribute("aria-selected", t === e ? "true" : "false");
|
|
1890
1939
|
let n = this._input();
|
|
1891
1940
|
n && (e ? n.setAttribute("aria-activedescendant", e.id) : n.removeAttribute("aria-activedescendant")), e && t && e.scrollIntoView({ block: "nearest" });
|
|
1892
1941
|
}
|
|
@@ -1922,11 +1971,11 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
1922
1971
|
}
|
|
1923
1972
|
_applyFilter() {
|
|
1924
1973
|
let e = this._input(), t = (e ? e.value : "").trim(), n = t.toLowerCase(), r = this.highlight, i = 0;
|
|
1925
|
-
for (let e of this.querySelectorAll(
|
|
1974
|
+
for (let e of this.querySelectorAll(sn)) {
|
|
1926
1975
|
let a = e.querySelector(".wui-cmd-item-label"), o = e.dataset.label ?? a?.textContent ?? "", s = !n || o.toLowerCase().includes(n);
|
|
1927
|
-
e.hidden = !s, s && i++, a && (a.innerHTML =
|
|
1976
|
+
e.hidden = !s, s && i++, a && (a.innerHTML = on(o, r ? t : "").map((e) => e.match ? `<mark class="wui-cmd-mark">${H(e.text)}</mark>` : H(e.text)).join(""));
|
|
1928
1977
|
}
|
|
1929
|
-
for (let e of this.querySelectorAll("[role=\"group\"]")) e.hidden = ![...e.querySelectorAll(
|
|
1978
|
+
for (let e of this.querySelectorAll("[role=\"group\"]")) e.hidden = ![...e.querySelectorAll(sn)].some((e) => !e.hidden);
|
|
1930
1979
|
let a = this.querySelector("[role=\"listbox\"]");
|
|
1931
1980
|
a && (a.hidden = i === 0);
|
|
1932
1981
|
let o = this.querySelector(".wui-cmd-empty");
|
|
@@ -1935,7 +1984,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
1935
1984
|
_teardown() {
|
|
1936
1985
|
this.removeEventListener("keydown", this._onKeyDown), this.removeEventListener("click", this._onClick), this.removeEventListener("mousedown", this._onMouseDown), this.removeEventListener("mousemove", this._onMouseMove), this.removeEventListener("input", this._onInput);
|
|
1937
1986
|
}
|
|
1938
|
-
},
|
|
1987
|
+
}, un = {
|
|
1939
1988
|
"--color-primary": "#4F46E5",
|
|
1940
1989
|
"--color-primary-hover": "#4338CA",
|
|
1941
1990
|
"--color-text": "#071437",
|
|
@@ -1945,7 +1994,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
1945
1994
|
"--wui-radius-lg": "14px",
|
|
1946
1995
|
"--wui-shadow-overlay-lg": "0 24px 60px -16px rgba(7, 20, 55, 0.28)",
|
|
1947
1996
|
"--wui-z-fixed": "1030"
|
|
1948
|
-
}, U = (e) => `var(${e}, ${
|
|
1997
|
+
}, U = (e) => `var(${e}, ${un[e]})`, dn = `
|
|
1949
1998
|
:host {
|
|
1950
1999
|
all: initial;
|
|
1951
2000
|
position: fixed;
|
|
@@ -2123,7 +2172,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
2123
2172
|
max-width: none;
|
|
2124
2173
|
}
|
|
2125
2174
|
}
|
|
2126
|
-
`,
|
|
2175
|
+
`, fn = "wui-consent-save", pn = "[data-consent-settings]", W = {
|
|
2127
2176
|
heading: "Cookies on this site",
|
|
2128
2177
|
description: "We use cookies to understand how the site is used and to measure our campaigns. You can change your choice at any time.",
|
|
2129
2178
|
policyLabel: "Cookie policy",
|
|
@@ -2139,11 +2188,11 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
2139
2188
|
rejectLabel: "Reject all",
|
|
2140
2189
|
acceptLabel: "Accept all",
|
|
2141
2190
|
saveLabel: "Save preferences"
|
|
2142
|
-
},
|
|
2191
|
+
}, mn = [
|
|
2143
2192
|
"analytics",
|
|
2144
2193
|
"functional",
|
|
2145
2194
|
"marketing"
|
|
2146
|
-
],
|
|
2195
|
+
], hn = 0, gn = class extends e {
|
|
2147
2196
|
static get observedAttributes() {
|
|
2148
2197
|
return [
|
|
2149
2198
|
"heading",
|
|
@@ -2156,12 +2205,12 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
2156
2205
|
];
|
|
2157
2206
|
}
|
|
2158
2207
|
constructor() {
|
|
2159
|
-
super(),
|
|
2208
|
+
super(), hn += 1, this._uid = `wui-consent-${hn}`, this._preferences = {
|
|
2160
2209
|
analytics: !1,
|
|
2161
2210
|
functional: !1,
|
|
2162
2211
|
marketing: !1
|
|
2163
2212
|
}, this._settings = !1, this._onDocumentClick = (e) => {
|
|
2164
|
-
e.target instanceof Element && e.target.closest(
|
|
2213
|
+
e.target instanceof Element && e.target.closest(pn) && (e.preventDefault(), this.open({
|
|
2165
2214
|
settings: !0,
|
|
2166
2215
|
focus: !0
|
|
2167
2216
|
}));
|
|
@@ -2244,16 +2293,16 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
2244
2293
|
this._rendered && this.render();
|
|
2245
2294
|
}
|
|
2246
2295
|
render() {
|
|
2247
|
-
let e = this.isOpen, t = this._uid, n = this.policyHref ? ` <a class="wui-consent-banner-policy" href="${
|
|
2248
|
-
r.innerHTML = `${r === this ? "" : `<style>${
|
|
2296
|
+
let e = this.isOpen, t = this._uid, n = this.policyHref ? ` <a class="wui-consent-banner-policy" href="${yn(this.policyHref)}">${vn(this.policyLabel)}</a>` : "", r = this._root();
|
|
2297
|
+
r.innerHTML = `${r === this ? "" : `<style>${dn}</style>`}
|
|
2249
2298
|
<div class="wui-consent-banner-panel" role="dialog" aria-labelledby="${t}-heading" aria-describedby="${t}-description" hidden>
|
|
2250
|
-
<h2 class="wui-consent-banner-heading" id="${t}-heading">${
|
|
2251
|
-
<p class="wui-consent-banner-description" id="${t}-description">${
|
|
2299
|
+
<h2 class="wui-consent-banner-heading" id="${t}-heading">${vn(this.heading)}</h2>
|
|
2300
|
+
<p class="wui-consent-banner-description" id="${t}-description">${vn(this.description)}${n}</p>
|
|
2252
2301
|
<div class="wui-consent-banner-settings" hidden>
|
|
2253
|
-
${
|
|
2254
|
-
${
|
|
2255
|
-
${
|
|
2256
|
-
${
|
|
2302
|
+
${_n(t, "essential", W.essentialLabel, W.essentialDescription, !0)}
|
|
2303
|
+
${_n(t, "analytics", W.analyticsLabel, this.analyticsDescription, !1)}
|
|
2304
|
+
${_n(t, "functional", W.functionalLabel, this.functionalDescription, !1)}
|
|
2305
|
+
${_n(t, "marketing", W.marketingLabel, this.marketingDescription, !1)}
|
|
2257
2306
|
</div>
|
|
2258
2307
|
<div class="wui-consent-banner-actions">
|
|
2259
2308
|
<button type="button" class="btn btn-sm btn-link wui-consent-banner-settings-toggle" aria-expanded="false">${W.settingsLabel}</button>
|
|
@@ -2289,7 +2338,7 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
2289
2338
|
})), e.querySelector(".wui-consent-banner-save")?.addEventListener("click", () => this._save(this._switchValues())), e.querySelector(".wui-consent-banner-settings-toggle")?.addEventListener("click", () => this._showSettings(!this._settings));
|
|
2290
2339
|
}
|
|
2291
2340
|
_save(e) {
|
|
2292
|
-
this._preferences = { ...e }, this.dispatchEvent(new CustomEvent(
|
|
2341
|
+
this._preferences = { ...e }, this.dispatchEvent(new CustomEvent(fn, {
|
|
2293
2342
|
bubbles: !0,
|
|
2294
2343
|
composed: !0,
|
|
2295
2344
|
detail: { ...e }
|
|
@@ -2297,11 +2346,11 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
2297
2346
|
}
|
|
2298
2347
|
_switchValues() {
|
|
2299
2348
|
let e = {};
|
|
2300
|
-
for (let t of
|
|
2349
|
+
for (let t of mn) e[t] = this._root().querySelector(`input[data-category="${t}"]`)?.checked === !0;
|
|
2301
2350
|
return e;
|
|
2302
2351
|
}
|
|
2303
2352
|
_applyPreferences() {
|
|
2304
|
-
for (let e of
|
|
2353
|
+
for (let e of mn) {
|
|
2305
2354
|
let t = this._root().querySelector(`input[data-category="${e}"]`);
|
|
2306
2355
|
t && (t.checked = this._preferences[e]);
|
|
2307
2356
|
}
|
|
@@ -2319,47 +2368,47 @@ var en = "[role=\"option\"]", tn = "No results", nn = class extends e {
|
|
|
2319
2368
|
}
|
|
2320
2369
|
}
|
|
2321
2370
|
};
|
|
2322
|
-
function
|
|
2371
|
+
function _n(e, t, n, r, i) {
|
|
2323
2372
|
let a = `${e}-${t}`;
|
|
2324
2373
|
return `<div class="wui-consent-banner-category">
|
|
2325
2374
|
<div class="form-check form-switch">
|
|
2326
2375
|
<input class="form-check-input" type="checkbox" role="switch" id="${a}" data-category="${t}"${i ? " checked disabled" : ""} />
|
|
2327
|
-
<label class="form-check-label" for="${a}">${
|
|
2376
|
+
<label class="form-check-label" for="${a}">${vn(n)}</label>
|
|
2328
2377
|
</div>
|
|
2329
|
-
<p class="wui-consent-banner-category-description">${
|
|
2378
|
+
<p class="wui-consent-banner-category-description">${vn(r)}</p>
|
|
2330
2379
|
</div>`;
|
|
2331
2380
|
}
|
|
2332
|
-
var
|
|
2333
|
-
function
|
|
2334
|
-
let r =
|
|
2381
|
+
var vn = (e) => String(e ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), yn = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), bn = "[role=\"menuitem\"]", xn = "input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"]", Sn = "data-open", Cn = 500, wn = 10, Tn = 400, En = null, Dn = null, On = /* @__PURE__ */ new WeakMap();
|
|
2382
|
+
function kn(e, t, n) {
|
|
2383
|
+
let r = On.get(e);
|
|
2335
2384
|
if (r) {
|
|
2336
2385
|
if (r.region === t || t.contains(r.region)) return !1;
|
|
2337
2386
|
r.cancel();
|
|
2338
2387
|
}
|
|
2339
|
-
return
|
|
2388
|
+
return On.set(e, {
|
|
2340
2389
|
region: t,
|
|
2341
2390
|
cancel: n
|
|
2342
2391
|
}), !0;
|
|
2343
2392
|
}
|
|
2344
|
-
var
|
|
2393
|
+
var An = (e) => e instanceof Element ? e : e?.parentElement ?? null, jn = class extends e {
|
|
2345
2394
|
static get observedAttributes() {
|
|
2346
2395
|
return ["disabled"];
|
|
2347
2396
|
}
|
|
2348
2397
|
constructor() {
|
|
2349
|
-
super(), this._region = null, this._origin = null, this._returnFocus = null, this._press = null, this._swallowClick = !1, this._nav =
|
|
2398
|
+
super(), this._region = null, this._origin = null, this._returnFocus = null, this._press = null, this._swallowClick = !1, this._nav = Xt({
|
|
2350
2399
|
getVisibleOptions: () => this._items(),
|
|
2351
2400
|
getActive: () => this._items().indexOf(document.activeElement),
|
|
2352
2401
|
setActive: (e) => this._items()[e]?.focus({ preventScroll: !0 })
|
|
2353
2402
|
}), this._onContextMenu = (e) => this._handleContextMenu(e), this._onContextMenuCapture = (e) => {
|
|
2354
2403
|
this.isOpen && !this._inPanel(e.target) && !this._isKeyEcho() && this.close();
|
|
2355
2404
|
}, this._onDocKeyDown = (e) => this._handleDocKeyDown(e), this._onPointerDown = (e) => this._handlePointerDown(e), this._onPressMove = (e) => {
|
|
2356
|
-
this._press && Math.hypot(e.clientX - this._press.x, e.clientY - this._press.y) >
|
|
2405
|
+
this._press && Math.hypot(e.clientX - this._press.x, e.clientY - this._press.y) > wn && this._cancelPress();
|
|
2357
2406
|
}, this._onPressEnd = () => this._cancelPress(), this._onClickCapture = (e) => {
|
|
2358
2407
|
!this._swallowClick || !this._region?.contains(e.target) || (this._swallowClick = !1, e.preventDefault(), e.stopImmediatePropagation());
|
|
2359
2408
|
}, this._onKeyDown = (e) => {
|
|
2360
2409
|
this._inPanel(e.target) && this._handleMenuKey(e);
|
|
2361
2410
|
}, this._onClick = (e) => this._handleClick(e), this._onMouseMove = (e) => {
|
|
2362
|
-
let t =
|
|
2411
|
+
let t = An(e.target)?.closest(bn);
|
|
2363
2412
|
t && this._inPanel(t) && !this._isDisabled(t) && t !== document.activeElement && t.focus({ preventScroll: !0 });
|
|
2364
2413
|
}, this._onDismiss = (e) => {
|
|
2365
2414
|
e.type === "scroll" && this._inPanel(e.target) || this.close();
|
|
@@ -2389,16 +2438,16 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
2389
2438
|
this.toggleAttribute("disabled", !!e);
|
|
2390
2439
|
}
|
|
2391
2440
|
get isOpen() {
|
|
2392
|
-
return this._panel()?.hasAttribute(
|
|
2441
|
+
return this._panel()?.hasAttribute(Sn) ?? !1;
|
|
2393
2442
|
}
|
|
2394
2443
|
open(e, t, { region: n = this, origin: r = n, keyboard: i = !1 } = {}) {
|
|
2395
2444
|
let a = this._panel();
|
|
2396
2445
|
if (a) {
|
|
2397
|
-
if (
|
|
2446
|
+
if (En && En !== this && En.close(!0), !this.isOpen) {
|
|
2398
2447
|
let e = document.activeElement;
|
|
2399
2448
|
this._returnFocus = e && e !== document.body && !this._inPanel(e) ? e : null;
|
|
2400
2449
|
}
|
|
2401
|
-
this._region = n, this._origin = r,
|
|
2450
|
+
this._region = n, this._origin = r, Dn = null, a.setAttribute(Sn, ""), En = this, I({ getBoundingClientRect: () => ({
|
|
2402
2451
|
left: e,
|
|
2403
2452
|
right: e,
|
|
2404
2453
|
top: t,
|
|
@@ -2418,8 +2467,8 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
2418
2467
|
}
|
|
2419
2468
|
close(e = !1) {
|
|
2420
2469
|
let t = this._panel();
|
|
2421
|
-
if (!t?.hasAttribute(
|
|
2422
|
-
t.removeAttribute(
|
|
2470
|
+
if (!t?.hasAttribute(Sn)) return;
|
|
2471
|
+
t.removeAttribute(Sn), En === this && (En = null), window.removeEventListener("scroll", this._onDismiss, !0), window.removeEventListener("resize", this._onDismiss), window.removeEventListener("blur", this._onDismiss), this._nav.teardown();
|
|
2423
2472
|
let n = this._returnFocus;
|
|
2424
2473
|
this._returnFocus = null, e && n?.isConnected && n.focus({ preventScroll: !0 });
|
|
2425
2474
|
}
|
|
@@ -2430,49 +2479,49 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
2430
2479
|
return !!e && !!this._panel()?.contains(e);
|
|
2431
2480
|
}
|
|
2432
2481
|
_items() {
|
|
2433
|
-
return [...this._panel()?.querySelectorAll(
|
|
2482
|
+
return [...this._panel()?.querySelectorAll(bn) ?? []].filter((e) => !this._isDisabled(e));
|
|
2434
2483
|
}
|
|
2435
2484
|
_isDisabled(e) {
|
|
2436
2485
|
return e.getAttribute("aria-disabled") === "true";
|
|
2437
2486
|
}
|
|
2438
2487
|
_regionFor(e) {
|
|
2439
|
-
let t =
|
|
2440
|
-
if (!t || this.disabled || !this._panel() || this._inPanel(t) || t.closest(
|
|
2488
|
+
let t = An(e);
|
|
2489
|
+
if (!t || this.disabled || !this._panel() || this._inPanel(t) || t.closest(xn)) return null;
|
|
2441
2490
|
let n = this.target;
|
|
2442
2491
|
return n ? t.closest(n) : this.contains(t) ? this : null;
|
|
2443
2492
|
}
|
|
2444
2493
|
_isKeyEcho() {
|
|
2445
|
-
return
|
|
2494
|
+
return Dn?.menu === this && this.isOpen && performance.now() - Dn.at < Tn;
|
|
2446
2495
|
}
|
|
2447
2496
|
_handleContextMenu(e) {
|
|
2448
2497
|
if (this._inPanel(e.target)) {
|
|
2449
2498
|
e.preventDefault();
|
|
2450
2499
|
return;
|
|
2451
2500
|
}
|
|
2452
|
-
if (e.defaultPrevented && !
|
|
2501
|
+
if (e.defaultPrevented && !On.has(e)) return;
|
|
2453
2502
|
let t = this._regionFor(e.target);
|
|
2454
2503
|
if (t) {
|
|
2455
2504
|
if (this._isKeyEcho()) {
|
|
2456
2505
|
e.preventDefault();
|
|
2457
2506
|
return;
|
|
2458
2507
|
}
|
|
2459
|
-
e.shiftKey ||
|
|
2508
|
+
e.shiftKey || kn(e, t, () => this.close(!0)) && (e.preventDefault(), this.open(e.clientX, e.clientY, {
|
|
2460
2509
|
region: t,
|
|
2461
|
-
origin:
|
|
2510
|
+
origin: An(e.target)
|
|
2462
2511
|
}));
|
|
2463
2512
|
}
|
|
2464
2513
|
}
|
|
2465
2514
|
_handleDocKeyDown(e) {
|
|
2466
|
-
if (e.defaultPrevented && !
|
|
2515
|
+
if (e.defaultPrevented && !On.has(e) || !(e.key === "ContextMenu" || e.key === "F10" && e.shiftKey) || this._inPanel(e.target)) return;
|
|
2467
2516
|
let t = this._regionFor(e.target);
|
|
2468
|
-
if (!t || !
|
|
2517
|
+
if (!t || !kn(e, t, () => this.close(!0))) return;
|
|
2469
2518
|
e.preventDefault();
|
|
2470
|
-
let n =
|
|
2519
|
+
let n = An(e.target), r = n.getBoundingClientRect();
|
|
2471
2520
|
this.open(r.left + Math.min(16, r.width / 2), r.bottom, {
|
|
2472
2521
|
region: t,
|
|
2473
2522
|
origin: n,
|
|
2474
2523
|
keyboard: !0
|
|
2475
|
-
}),
|
|
2524
|
+
}), Dn = {
|
|
2476
2525
|
menu: this,
|
|
2477
2526
|
at: performance.now()
|
|
2478
2527
|
};
|
|
@@ -2480,9 +2529,9 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
2480
2529
|
_handlePointerDown(e) {
|
|
2481
2530
|
if (e.pointerType !== "touch") return;
|
|
2482
2531
|
let t = this._regionFor(e.target);
|
|
2483
|
-
if (!t || !
|
|
2532
|
+
if (!t || !kn(e, t, () => this._cancelPress())) return;
|
|
2484
2533
|
this._cancelPress();
|
|
2485
|
-
let { clientX: n, clientY: r } = e, i =
|
|
2534
|
+
let { clientX: n, clientY: r } = e, i = An(e.target);
|
|
2486
2535
|
this._press = {
|
|
2487
2536
|
x: n,
|
|
2488
2537
|
y: r,
|
|
@@ -2491,7 +2540,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
2491
2540
|
region: t,
|
|
2492
2541
|
origin: i
|
|
2493
2542
|
});
|
|
2494
|
-
},
|
|
2543
|
+
}, Cn)
|
|
2495
2544
|
}, document.addEventListener("pointermove", this._onPressMove, { passive: !0 }), document.addEventListener("pointerup", this._onPressEnd), document.addEventListener("pointercancel", this._onPressEnd), window.addEventListener("scroll", this._onPressEnd, !0);
|
|
2496
2545
|
}
|
|
2497
2546
|
_cancelPress() {
|
|
@@ -2502,7 +2551,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
2502
2551
|
else if (e.key === "Tab") this.close(!0);
|
|
2503
2552
|
else if (e.key === "ArrowDown" || e.key === "ArrowUp") e.preventDefault(), this._step(e.key === "ArrowDown" ? 1 : -1);
|
|
2504
2553
|
else if (e.key === " ") {
|
|
2505
|
-
let t =
|
|
2554
|
+
let t = An(e.target)?.closest(bn);
|
|
2506
2555
|
e.preventDefault(), t && t.click();
|
|
2507
2556
|
} else this._nav.handler(e);
|
|
2508
2557
|
}
|
|
@@ -2513,7 +2562,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
2513
2562
|
t[n < 0 ? e > 0 ? 0 : t.length - 1 : (n + e + t.length) % t.length].focus({ preventScroll: !0 });
|
|
2514
2563
|
}
|
|
2515
2564
|
_handleClick(e) {
|
|
2516
|
-
let t =
|
|
2565
|
+
let t = An(e.target)?.closest(bn);
|
|
2517
2566
|
if (!(!t || !this._inPanel(t))) {
|
|
2518
2567
|
if (this._isDisabled(t)) {
|
|
2519
2568
|
e.preventDefault(), e.stopPropagation();
|
|
@@ -2533,7 +2582,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
2533
2582
|
_teardown() {
|
|
2534
2583
|
this.close(), this._cancelPress(), document.removeEventListener("contextmenu", this._onContextMenuCapture, !0), document.removeEventListener("contextmenu", this._onContextMenu), document.removeEventListener("keydown", this._onDocKeyDown), document.removeEventListener("pointerdown", this._onPointerDownCapture, !0), document.removeEventListener("pointerdown", this._onPointerDown), document.removeEventListener("click", this._onClickCapture, !0), this.removeEventListener("keydown", this._onKeyDown), this.removeEventListener("click", this._onClick), this.removeEventListener("mousemove", this._onMouseMove);
|
|
2535
2584
|
}
|
|
2536
|
-
},
|
|
2585
|
+
}, Mn = [
|
|
2537
2586
|
[
|
|
2538
2587
|
"AF",
|
|
2539
2588
|
"Afghanistan",
|
|
@@ -3759,11 +3808,11 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
3759
3808
|
"Zimbabwe",
|
|
3760
3809
|
"263"
|
|
3761
3810
|
]
|
|
3762
|
-
],
|
|
3811
|
+
], Nn = (e) => (Mn.find((t) => t[0] === e) || [
|
|
3763
3812
|
"",
|
|
3764
3813
|
"",
|
|
3765
3814
|
""
|
|
3766
|
-
])[2],
|
|
3815
|
+
])[2], Pn = class extends e {
|
|
3767
3816
|
static formAssociated = !0;
|
|
3768
3817
|
static get observedAttributes() {
|
|
3769
3818
|
return [
|
|
@@ -3822,7 +3871,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
3822
3871
|
return this._value;
|
|
3823
3872
|
}
|
|
3824
3873
|
set value(e) {
|
|
3825
|
-
this._value = e == null ? "" : String(e),
|
|
3874
|
+
this._value = e == null ? "" : String(e), z(this, this._value), this._syncSelected(), this._syncReset();
|
|
3826
3875
|
}
|
|
3827
3876
|
set options(e) {
|
|
3828
3877
|
this._optionsProp = Array.isArray(e) ? e : null, this.isConnected && this.render();
|
|
@@ -3837,7 +3886,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
3837
3886
|
value: e.getAttribute("value") ?? e.textContent.trim(),
|
|
3838
3887
|
label: e.innerHTML,
|
|
3839
3888
|
icon: e.getAttribute("icon") || void 0,
|
|
3840
|
-
[
|
|
3889
|
+
[Zt]: !0,
|
|
3841
3890
|
selected: e.hasAttribute("selected")
|
|
3842
3891
|
})));
|
|
3843
3892
|
}
|
|
@@ -3847,27 +3896,27 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
3847
3896
|
render() {
|
|
3848
3897
|
this._defaultValue === void 0 && (this._defaultValue = this.getAttribute("value") || ""), this._snapshotDeclared();
|
|
3849
3898
|
let e = this._readOptions(), t = this.hasAttribute("searchable"), n = this.hasAttribute("clearable"), r = this.getAttribute("size"), i = r === "sm" ? " search-select-sm" : r === "lg" ? " search-select-lg" : "", a = this.getAttribute("icon"), o = this.getAttribute("prefix"), s = this.getAttribute("placeholder") || "Select...", c = this.getAttribute("search-placeholder") || "Search...", l = e.find((e) => String(e.value) === String(this._value)) || e.find((e) => e.selected);
|
|
3850
|
-
l && (this._value = String(l.value)),
|
|
3899
|
+
l && (this._value = String(l.value)), z(this, this._value), this.id ||= `wui-select-${Math.random().toString(36).slice(2, 9)}`;
|
|
3851
3900
|
let u = `${this.id}-listbox`;
|
|
3852
3901
|
this._listboxId = u;
|
|
3853
3902
|
let d = e.map((e, t) => {
|
|
3854
3903
|
let n = String(e.value) === String(this._value);
|
|
3855
|
-
return `<button type="button" role="option" id="${
|
|
3904
|
+
return `<button type="button" role="option" id="${Fn(`${u}-opt-${t}`)}" class="search-select-option${n ? " selected" : ""}" data-value="${Fn(e.value)}" aria-selected="${n}">${tn(e)}</button>`;
|
|
3856
3905
|
}).join("");
|
|
3857
3906
|
this.innerHTML = `
|
|
3858
3907
|
<div class="search-select${this.hasAttribute("compact") ? " search-select-compact" : ""}${i}">
|
|
3859
|
-
<button type="button" role="combobox" class="input search-select-control" aria-haspopup="listbox" aria-expanded="false" aria-controls="${
|
|
3860
|
-
${a ?
|
|
3861
|
-
${o ? `<span class="search-select-prefix">${
|
|
3862
|
-
<span class="${l ? "" : "search-select-placeholder"}" data-label>${l ?
|
|
3863
|
-
${n ? `<span class="search-select-reset" role="button" aria-label="Clear selection" hidden>${
|
|
3864
|
-
${
|
|
3908
|
+
<button type="button" role="combobox" class="input search-select-control" aria-haspopup="listbox" aria-expanded="false" aria-controls="${Fn(u)}" aria-label="${Fn(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}>
|
|
3909
|
+
${a ? V(a, { className: "search-select-icon" }) : ""}
|
|
3910
|
+
${o ? `<span class="search-select-prefix">${H(o)}</span>` : ""}
|
|
3911
|
+
<span class="${l ? "" : "search-select-placeholder"}" data-label>${l ? tn(l) : H(s)}</span>
|
|
3912
|
+
${n ? `<span class="search-select-reset" role="button" aria-label="Clear selection" hidden>${V("x")}</span>` : ""}
|
|
3913
|
+
${V("chevron-down", { className: "search-select-caret" })}
|
|
3865
3914
|
</button>
|
|
3866
|
-
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${
|
|
3867
|
-
${t ? `<div class="search-select-search">${
|
|
3915
|
+
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${Fn(u)}" tabindex="-1" hidden>
|
|
3916
|
+
${t ? `<div class="search-select-search">${V("search")}<input class="search-select-input" placeholder="${Fn(c)}" aria-autocomplete="list" /><button type="button" class="search-select-clear" aria-label="Clear search" hidden>${V("x")}</button></div>` : ""}
|
|
3868
3917
|
<div class="search-select-options">${d}<div class="search-select-empty" hidden>No matches</div></div>
|
|
3869
3918
|
</div>
|
|
3870
|
-
</div>`, this._rendered = !0,
|
|
3919
|
+
</div>`, this._rendered = !0, z(this, this._value), this._wire(), this._syncReset();
|
|
3871
3920
|
}
|
|
3872
3921
|
_refs() {
|
|
3873
3922
|
return {
|
|
@@ -3893,7 +3942,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
3893
3942
|
let t = e.dataset.value === String(this._value);
|
|
3894
3943
|
e.classList.toggle("selected", t), e.setAttribute("aria-selected", String(t));
|
|
3895
3944
|
}
|
|
3896
|
-
e && (e.innerHTML = t ?
|
|
3945
|
+
e && (e.innerHTML = t ? tn(t) : H(this.getAttribute("placeholder") || "Select..."), e.classList.toggle("search-select-placeholder", !t));
|
|
3897
3946
|
}
|
|
3898
3947
|
_syncReset() {
|
|
3899
3948
|
let { reset: e } = this._refs();
|
|
@@ -3906,8 +3955,8 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
3906
3955
|
let t = () => {
|
|
3907
3956
|
if (this.hasAttribute("compact")) {
|
|
3908
3957
|
let t = e.control.getBoundingClientRect();
|
|
3909
|
-
e.menu.style.width = "max-content", e.menu.style.minWidth = `${t.width}px`, e.menu.style.maxWidth = "280px",
|
|
3910
|
-
} else
|
|
3958
|
+
e.menu.style.width = "max-content", e.menu.style.minWidth = `${t.width}px`, e.menu.style.maxWidth = "280px", I(e.control, e.menu);
|
|
3959
|
+
} else I(e.control, e.menu, { matchWidth: !0 });
|
|
3911
3960
|
}, n = (t) => {
|
|
3912
3961
|
let n = this._visible();
|
|
3913
3962
|
this._active = t;
|
|
@@ -3927,7 +3976,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
3927
3976
|
}, s = (t) => {
|
|
3928
3977
|
this.value = t.dataset.value, this.dispatchEvent(new Event("change", { bubbles: !0 })), o(), e.control.focus();
|
|
3929
3978
|
};
|
|
3930
|
-
this._navHandler =
|
|
3979
|
+
this._navHandler = Xt({
|
|
3931
3980
|
getVisibleOptions: () => this._visible(),
|
|
3932
3981
|
getActive: () => this._active,
|
|
3933
3982
|
setActive: (e) => n(e),
|
|
@@ -3958,40 +4007,40 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
3958
4007
|
}), e.menu.addEventListener("keydown", this._navHandler.handler), this._bindGlobal = () => {
|
|
3959
4008
|
this._teardown(), this._onDocClick = (e) => {
|
|
3960
4009
|
i() && !this.contains(e.target) && o();
|
|
3961
|
-
}, document.addEventListener("click", this._onDocClick),
|
|
4010
|
+
}, document.addEventListener("click", this._onDocClick), L(this, () => {
|
|
3962
4011
|
i() && t();
|
|
3963
4012
|
});
|
|
3964
4013
|
}, this._bindGlobal();
|
|
3965
4014
|
}
|
|
3966
4015
|
_teardown() {
|
|
3967
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null),
|
|
4016
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), R(this), this._navHandler?.teardown();
|
|
3968
4017
|
}
|
|
3969
4018
|
disconnectedCallback() {
|
|
3970
4019
|
this._teardown();
|
|
3971
4020
|
}
|
|
3972
|
-
},
|
|
4021
|
+
}, Fn = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), In = (e) => {
|
|
3973
4022
|
if (e == null) return null;
|
|
3974
4023
|
let t = String(e).split(",").map((e) => e.trim().toUpperCase()).filter(Boolean);
|
|
3975
4024
|
return t.length ? new Set(t) : null;
|
|
3976
|
-
},
|
|
3977
|
-
let t =
|
|
3978
|
-
return
|
|
4025
|
+
}, Ln = (e) => {
|
|
4026
|
+
let t = In(e);
|
|
4027
|
+
return Mn.filter(([e]) => !t || t.has(e)).map(([e, t]) => ({
|
|
3979
4028
|
value: e,
|
|
3980
4029
|
label: t,
|
|
3981
4030
|
flag: e
|
|
3982
4031
|
}));
|
|
3983
|
-
},
|
|
4032
|
+
}, Rn = class extends Pn {
|
|
3984
4033
|
static get observedAttributes() {
|
|
3985
|
-
return [...
|
|
4034
|
+
return [...Pn.observedAttributes, "countries"];
|
|
3986
4035
|
}
|
|
3987
4036
|
_readOptions() {
|
|
3988
4037
|
let e = this.getAttribute("countries");
|
|
3989
4038
|
return this._countryCache?.attr !== e && (this._countryCache = {
|
|
3990
4039
|
attr: e,
|
|
3991
|
-
options:
|
|
4040
|
+
options: Ln(e)
|
|
3992
4041
|
}), this._countryCache.options;
|
|
3993
4042
|
}
|
|
3994
|
-
},
|
|
4043
|
+
}, zn = [
|
|
3995
4044
|
"January",
|
|
3996
4045
|
"February",
|
|
3997
4046
|
"March",
|
|
@@ -4004,7 +4053,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4004
4053
|
"October",
|
|
4005
4054
|
"November",
|
|
4006
4055
|
"December"
|
|
4007
|
-
],
|
|
4056
|
+
], Bn = [
|
|
4008
4057
|
"Su",
|
|
4009
4058
|
"Mo",
|
|
4010
4059
|
"Tu",
|
|
@@ -4012,24 +4061,24 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4012
4061
|
"Th",
|
|
4013
4062
|
"Fr",
|
|
4014
4063
|
"Sa"
|
|
4015
|
-
],
|
|
4064
|
+
], Vn = (e) => String(e).padStart(2, "0"), Hn = (e, t, n) => `${e}-${Vn(t + 1)}-${Vn(n)}`, G = (e) => {
|
|
4016
4065
|
let t = /^(\d{4})-(\d{2})-(\d{2})$/.exec(e || "");
|
|
4017
4066
|
return t ? {
|
|
4018
4067
|
y: +t[1],
|
|
4019
4068
|
m: t[2] - 1,
|
|
4020
4069
|
d: +t[3]
|
|
4021
4070
|
} : null;
|
|
4022
|
-
},
|
|
4071
|
+
}, Un = (e) => {
|
|
4023
4072
|
let t = G(e);
|
|
4024
|
-
return t ? `${
|
|
4025
|
-
},
|
|
4073
|
+
return t ? `${Vn(t.d)} ${zn[t.m].slice(0, 3)} ${t.y}` : "";
|
|
4074
|
+
}, Wn = (e, t) => new Date(e, t + 1, 0).getDate(), K = (e, t) => {
|
|
4026
4075
|
for (; t < 0;) t += 12, --e;
|
|
4027
4076
|
for (; t > 11;) t -= 12, e += 1;
|
|
4028
4077
|
return {
|
|
4029
4078
|
y: e,
|
|
4030
4079
|
m: t
|
|
4031
4080
|
};
|
|
4032
|
-
},
|
|
4081
|
+
}, Gn = class extends e {
|
|
4033
4082
|
static formAssociated = !0;
|
|
4034
4083
|
static get observedAttributes() {
|
|
4035
4084
|
return [
|
|
@@ -4081,7 +4130,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4081
4130
|
return this._value;
|
|
4082
4131
|
}
|
|
4083
4132
|
set value(e) {
|
|
4084
|
-
this._value = e || "",
|
|
4133
|
+
this._value = e || "", z(this, this._value), this._syncTrigger();
|
|
4085
4134
|
}
|
|
4086
4135
|
_firstDay() {
|
|
4087
4136
|
let e = Number.parseInt(this.getAttribute("first-day") ?? "", 10);
|
|
@@ -4094,21 +4143,21 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4094
4143
|
let n = this.getAttribute("size"), r = n === "sm" ? " input-sm" : n === "lg" ? " input-lg" : "", i = this.getAttribute("aria-label"), a = this.getAttribute("aria-describedby");
|
|
4095
4144
|
this.innerHTML = `
|
|
4096
4145
|
<div class="datepicker">
|
|
4097
|
-
<button type="button" class="input datepicker-trigger${r}${t ? " has-value" : ""}" aria-haspopup="dialog" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${i ? ` aria-label="${
|
|
4098
|
-
<span data-trigger-label class="${t ? "" : "search-select-placeholder"}">${t ?
|
|
4099
|
-
${
|
|
4146
|
+
<button type="button" class="input datepicker-trigger${r}${t ? " has-value" : ""}" aria-haspopup="dialog" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${i ? ` aria-label="${H(i)}"` : ""}${a ? ` aria-describedby="${H(a)}"` : ""}>
|
|
4147
|
+
<span data-trigger-label class="${t ? "" : "search-select-placeholder"}">${t ? Un(this._value) : H(e)}</span>
|
|
4148
|
+
${V("calendar-dots")}
|
|
4100
4149
|
</button>
|
|
4101
4150
|
<div class="datepicker-pop" role="dialog" aria-modal="false" hidden></div>
|
|
4102
|
-
</div>`, this._rendered = !0,
|
|
4151
|
+
</div>`, this._rendered = !0, z(this, this._value), this._wire();
|
|
4103
4152
|
}
|
|
4104
4153
|
_syncFormValue() {
|
|
4105
|
-
|
|
4154
|
+
z(this, this._value);
|
|
4106
4155
|
}
|
|
4107
4156
|
_syncTrigger() {
|
|
4108
4157
|
let e = this.querySelector(".datepicker-trigger"), t = this.querySelector("[data-trigger-label]");
|
|
4109
4158
|
if (!t) return;
|
|
4110
4159
|
let n = G(this._value);
|
|
4111
|
-
t.textContent = n ?
|
|
4160
|
+
t.textContent = n ? Un(this._value) : this.getAttribute("placeholder") || "Enter Date", t.classList.toggle("search-select-placeholder", !n), e?.classList.toggle("has-value", !!n);
|
|
4112
4161
|
}
|
|
4113
4162
|
_limits() {
|
|
4114
4163
|
let e = G(this.getAttribute("min")), t = G(this.getAttribute("max")), n = e ? new Date(e.y, e.m, e.d).getTime() : -Infinity, r = t ? new Date(t.y, t.m, t.d).getTime() : Infinity;
|
|
@@ -4119,7 +4168,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4119
4168
|
},
|
|
4120
4169
|
monthDisabled: (e, t) => {
|
|
4121
4170
|
let i = new Date(e, t, 1).getTime();
|
|
4122
|
-
return new Date(e, t,
|
|
4171
|
+
return new Date(e, t, Wn(e, t)).getTime() < n || i > r;
|
|
4123
4172
|
},
|
|
4124
4173
|
yearDisabled: (e) => {
|
|
4125
4174
|
let t = new Date(e, 0, 1).getTime();
|
|
@@ -4132,29 +4181,29 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4132
4181
|
e && (this._mode === "months" ? e.innerHTML = this._monthsHtml() : this._mode === "years" ? e.innerHTML = this._yearsHtml() : e.innerHTML = this._daysHtml(), this._focusActive());
|
|
4133
4182
|
}
|
|
4134
4183
|
_daysHtml() {
|
|
4135
|
-
let e = this._firstDay(), t = (new Date(this._viewY, this._viewM, 1).getDay() - e + 7) % 7, n =
|
|
4184
|
+
let e = this._firstDay(), t = (new Date(this._viewY, this._viewM, 1).getDay() - e + 7) % 7, n = Wn(this._viewY, this._viewM), r = G(this._value), i = /* @__PURE__ */ new Date(), { dayDisabled: a } = this._limits(), o = this._focus || r || {
|
|
4136
4185
|
y: this._viewY,
|
|
4137
4186
|
m: this._viewM,
|
|
4138
4187
|
d: 1
|
|
4139
4188
|
}, s = (e, t, n, s) => {
|
|
4140
|
-
let c =
|
|
4189
|
+
let c = Hn(e, t, n), l = r && r.y === e && r.m === t && r.d === n, u = i.getFullYear() === e && i.getMonth() === t && i.getDate() === n, d = o.y === e && o.m === t && o.d === n, f = a(e, t, n);
|
|
4141
4190
|
return `<button type="button" class="${[
|
|
4142
4191
|
"datepicker-day",
|
|
4143
4192
|
s ? "is-outside" : "",
|
|
4144
4193
|
u ? "is-today" : "",
|
|
4145
4194
|
l ? "is-selected" : ""
|
|
4146
4195
|
].filter(Boolean).join(" ")}" data-iso="${c}" role="gridcell" tabindex="${d && !f ? "0" : "-1"}"${l ? " aria-selected=\"true\"" : ""}${f ? " disabled aria-disabled=\"true\"" : ""}>${n}</button>`;
|
|
4147
|
-
}, c = "", l = K(this._viewY, this._viewM - 1), u =
|
|
4196
|
+
}, c = "", l = K(this._viewY, this._viewM - 1), u = Wn(l.y, l.m);
|
|
4148
4197
|
for (let e = t - 1; e >= 0; e--) c += s(l.y, l.m, u - e, !0);
|
|
4149
4198
|
for (let e = 1; e <= n; e++) c += s(this._viewY, this._viewM, e, !1);
|
|
4150
4199
|
let d = K(this._viewY, this._viewM + 1), f = (7 - (t + n) % 7) % 7;
|
|
4151
4200
|
for (let e = 1; e <= f; e++) c += s(d.y, d.m, e, !0);
|
|
4152
|
-
let p = a(i.getFullYear(), i.getMonth(), i.getDate()), m =
|
|
4201
|
+
let p = a(i.getFullYear(), i.getMonth(), i.getDate()), m = Bn.map((t, n) => Bn[(n + e) % 7]).map((e) => `<span>${e}</span>`).join("");
|
|
4153
4202
|
return `
|
|
4154
4203
|
<div class="datepicker-head">
|
|
4155
|
-
<button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${
|
|
4156
|
-
<button type="button" class="datepicker-month" data-view="months" aria-label="Choose month and year">${
|
|
4157
|
-
<button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${
|
|
4204
|
+
<button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${V("chevron-left")}</button>
|
|
4205
|
+
<button type="button" class="datepicker-month" data-view="months" aria-label="Choose month and year">${zn[this._viewM]} ${this._viewY}</button>
|
|
4206
|
+
<button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${V("chevron-right")}</button>
|
|
4158
4207
|
</div>
|
|
4159
4208
|
<div class="datepicker-weekdays">${m}</div>
|
|
4160
4209
|
<div class="datepicker-grid${this._slide ? ` ${this._slide}` : ""}" role="grid">${c}</div>
|
|
@@ -4171,13 +4220,13 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4171
4220
|
o ? "is-today" : "",
|
|
4172
4221
|
a ? "is-selected" : ""
|
|
4173
4222
|
].filter(Boolean).join(" ");
|
|
4174
|
-
r += `<button type="button" class="${c}" data-month="${i}"${s ? " disabled" : ""}>${
|
|
4223
|
+
r += `<button type="button" class="${c}" data-month="${i}"${s ? " disabled" : ""}>${zn[i].slice(0, 3)}</button>`;
|
|
4175
4224
|
}
|
|
4176
4225
|
return `
|
|
4177
4226
|
<div class="datepicker-head">
|
|
4178
|
-
<button type="button" class="datepicker-nav-btn" data-nav-year="-1" aria-label="Previous year">${
|
|
4227
|
+
<button type="button" class="datepicker-nav-btn" data-nav-year="-1" aria-label="Previous year">${V("chevron-left")}</button>
|
|
4179
4228
|
<button type="button" class="datepicker-month" data-view="years" aria-label="Choose year">${this._viewY}</button>
|
|
4180
|
-
<button type="button" class="datepicker-nav-btn" data-nav-year="1" aria-label="Next year">${
|
|
4229
|
+
<button type="button" class="datepicker-nav-btn" data-nav-year="1" aria-label="Next year">${V("chevron-right")}</button>
|
|
4181
4230
|
</div>
|
|
4182
4231
|
<div class="datepicker-cells">${r}</div>`;
|
|
4183
4232
|
}
|
|
@@ -4193,9 +4242,9 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4193
4242
|
}
|
|
4194
4243
|
return `
|
|
4195
4244
|
<div class="datepicker-head">
|
|
4196
|
-
<button type="button" class="datepicker-nav-btn" data-nav-decade="-1" aria-label="Previous decade">${
|
|
4245
|
+
<button type="button" class="datepicker-nav-btn" data-nav-decade="-1" aria-label="Previous decade">${V("chevron-left")}</button>
|
|
4197
4246
|
<span class="datepicker-month">${r + 1} to ${r + 10}</span>
|
|
4198
|
-
<button type="button" class="datepicker-nav-btn" data-nav-decade="1" aria-label="Next decade">${
|
|
4247
|
+
<button type="button" class="datepicker-nav-btn" data-nav-decade="1" aria-label="Next decade">${V("chevron-right")}</button>
|
|
4199
4248
|
</div>
|
|
4200
4249
|
<div class="datepicker-cells">${i}</div>`;
|
|
4201
4250
|
}
|
|
@@ -4204,7 +4253,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4204
4253
|
t && e.contains(document.activeElement) && t.focus();
|
|
4205
4254
|
}
|
|
4206
4255
|
_position(e, t) {
|
|
4207
|
-
|
|
4256
|
+
I(e, t, { clampHeight: !0 });
|
|
4208
4257
|
}
|
|
4209
4258
|
_setFocus(e, t, n, r) {
|
|
4210
4259
|
let { y: i, m: a } = K(e, t);
|
|
@@ -4214,7 +4263,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4214
4263
|
d: n
|
|
4215
4264
|
};
|
|
4216
4265
|
let o = i !== this._viewY || a !== this._viewM;
|
|
4217
|
-
this._viewY = i, this._viewM = a, this._slide = o && r || "", this._renderView(), this._slide = "", this.querySelector(`.datepicker-day[data-iso="${
|
|
4266
|
+
this._viewY = i, this._viewM = a, this._slide = o && r || "", this._renderView(), this._slide = "", this.querySelector(`.datepicker-day[data-iso="${Hn(i, a, n)}"]`)?.focus();
|
|
4218
4267
|
}
|
|
4219
4268
|
_onKey(e) {
|
|
4220
4269
|
if (this._mode !== "days") {
|
|
@@ -4240,16 +4289,16 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4240
4289
|
case "PageUp": {
|
|
4241
4290
|
e.preventDefault();
|
|
4242
4291
|
let n = K(t.y, t.m - (e.shiftKey ? 12 : 1));
|
|
4243
|
-
return this._setFocus(n.y, n.m, Math.min(t.d,
|
|
4292
|
+
return this._setFocus(n.y, n.m, Math.min(t.d, Wn(n.y, n.m)), "slide-prev");
|
|
4244
4293
|
}
|
|
4245
4294
|
case "PageDown": {
|
|
4246
4295
|
e.preventDefault();
|
|
4247
4296
|
let n = K(t.y, t.m + (e.shiftKey ? 12 : 1));
|
|
4248
|
-
return this._setFocus(n.y, n.m, Math.min(t.d,
|
|
4297
|
+
return this._setFocus(n.y, n.m, Math.min(t.d, Wn(n.y, n.m)), "slide-next");
|
|
4249
4298
|
}
|
|
4250
4299
|
case "Enter":
|
|
4251
4300
|
case " ":
|
|
4252
|
-
e.preventDefault(), this._limits().dayDisabled(t.y, t.m, t.d) || (this.value =
|
|
4301
|
+
e.preventDefault(), this._limits().dayDisabled(t.y, t.m, t.d) || (this.value = Hn(t.y, t.m, t.d), this.dispatchEvent(new Event("change", { bubbles: !0 })), this._close());
|
|
4253
4302
|
return;
|
|
4254
4303
|
case "Escape": return this._close();
|
|
4255
4304
|
default:
|
|
@@ -4316,7 +4365,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4316
4365
|
if (e.target.closest("[data-today]")) {
|
|
4317
4366
|
let e = /* @__PURE__ */ new Date();
|
|
4318
4367
|
if (this._limits().dayDisabled(e.getFullYear(), e.getMonth(), e.getDate())) return;
|
|
4319
|
-
this.value =
|
|
4368
|
+
this.value = Hn(e.getFullYear(), e.getMonth(), e.getDate()), this.dispatchEvent(new Event("change", { bubbles: !0 })), this._close();
|
|
4320
4369
|
return;
|
|
4321
4370
|
}
|
|
4322
4371
|
if (e.target.closest("[data-clear]")) {
|
|
@@ -4333,18 +4382,18 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4333
4382
|
this._popClick = !1, r() && !t && !this.contains(e.target) && this._close();
|
|
4334
4383
|
}, document.addEventListener("click", this._onDocClick), this._onDocKey = (e) => {
|
|
4335
4384
|
r() && e.key === "Escape" && this._close();
|
|
4336
|
-
}, document.addEventListener("keydown", this._onDocKey),
|
|
4385
|
+
}, document.addEventListener("keydown", this._onDocKey), L(this, () => {
|
|
4337
4386
|
r() && this._position(e, t);
|
|
4338
4387
|
});
|
|
4339
4388
|
}, this._bindGlobal(), this._syncFormValue();
|
|
4340
4389
|
}
|
|
4341
4390
|
_teardown() {
|
|
4342
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null),
|
|
4391
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), R(this);
|
|
4343
4392
|
}
|
|
4344
4393
|
disconnectedCallback() {
|
|
4345
4394
|
this._teardown();
|
|
4346
4395
|
}
|
|
4347
|
-
},
|
|
4396
|
+
}, Kn = class extends e {
|
|
4348
4397
|
static formAssociated = !0;
|
|
4349
4398
|
static get observedAttributes() {
|
|
4350
4399
|
return [
|
|
@@ -4412,7 +4461,7 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4412
4461
|
text: e,
|
|
4413
4462
|
empty: !0
|
|
4414
4463
|
} : {
|
|
4415
|
-
text: `${
|
|
4464
|
+
text: `${Un(this._start) || "Start"} to ${Un(this._end) || "End"}`,
|
|
4416
4465
|
empty: !1
|
|
4417
4466
|
};
|
|
4418
4467
|
}
|
|
@@ -4423,9 +4472,9 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4423
4472
|
let t = this.getAttribute("size"), n = t === "sm" ? " input-sm" : t === "lg" ? " input-lg" : "", { text: r, empty: i } = this._label(), a = this.getAttribute("aria-label"), o = this.getAttribute("aria-describedby");
|
|
4424
4473
|
this.innerHTML = `
|
|
4425
4474
|
<div class="daterange">
|
|
4426
|
-
<button type="button" class="input daterange-trigger${n}${i ? "" : " has-value"}" aria-haspopup="dialog" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${a ? ` aria-label="${
|
|
4427
|
-
<span data-range-label class="${i ? "search-select-placeholder" : ""}">${
|
|
4428
|
-
${
|
|
4475
|
+
<button type="button" class="input daterange-trigger${n}${i ? "" : " has-value"}" aria-haspopup="dialog" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${a ? ` aria-label="${H(a)}"` : ""}${o ? ` aria-describedby="${H(o)}"` : ""}>
|
|
4476
|
+
<span data-range-label class="${i ? "search-select-placeholder" : ""}">${H(r)}</span>
|
|
4477
|
+
${V("calendar")}
|
|
4429
4478
|
</button>
|
|
4430
4479
|
<div class="daterange-pop" role="dialog" aria-modal="false" hidden></div>
|
|
4431
4480
|
</div>`, this._rendered = !0, this._syncMirrors(), this._wire();
|
|
@@ -4459,17 +4508,17 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4459
4508
|
};
|
|
4460
4509
|
}
|
|
4461
4510
|
_monthHtml(e, t) {
|
|
4462
|
-
let n = this._firstDay(), r = (new Date(e, t, 1).getDay() - n + 7) % 7, i =
|
|
4463
|
-
let i =
|
|
4511
|
+
let n = this._firstDay(), r = (new Date(e, t, 1).getDay() - n + 7) % 7, i = Wn(e, t), a = this._limits(), o = Bn.map((e, t) => Bn[(t + n) % 7]).map((e) => `<span>${e}</span>`).join(""), s = (e, t, n, r) => {
|
|
4512
|
+
let i = Hn(e, t, n), o = a(e, t, n);
|
|
4464
4513
|
return `<button type="button" class="${["datepicker-day", r ? "is-outside" : ""].filter(Boolean).join(" ")}" data-iso="${i}"${o ? " disabled" : ""}>${n}</button>`;
|
|
4465
|
-
}, c = "", l = K(e, t - 1), u =
|
|
4514
|
+
}, c = "", l = K(e, t - 1), u = Wn(l.y, l.m);
|
|
4466
4515
|
for (let e = r - 1; e >= 0; e--) c += s(l.y, l.m, u - e, !0);
|
|
4467
4516
|
for (let n = 1; n <= i; n++) c += s(e, t, n, !1);
|
|
4468
4517
|
let d = K(e, t + 1), f = (7 - (r + i) % 7) % 7;
|
|
4469
4518
|
for (let e = 1; e <= f; e++) c += s(d.y, d.m, e, !0);
|
|
4470
4519
|
return `
|
|
4471
4520
|
<div class="daterange-cal">
|
|
4472
|
-
<div class="datepicker-month-label">${
|
|
4521
|
+
<div class="datepicker-month-label">${zn[t]} ${e}</div>
|
|
4473
4522
|
<div class="datepicker-weekdays">${o}</div>
|
|
4474
4523
|
<div class="datepicker-grid" role="grid">${c}</div>
|
|
4475
4524
|
</div>`;
|
|
@@ -4480,8 +4529,8 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4480
4529
|
let t = K(this._viewY, this._viewM + 1);
|
|
4481
4530
|
e.innerHTML = `
|
|
4482
4531
|
<div class="daterange-head">
|
|
4483
|
-
<button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${
|
|
4484
|
-
<button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${
|
|
4532
|
+
<button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${V("chevron-left")}</button>
|
|
4533
|
+
<button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${V("chevron-right")}</button>
|
|
4485
4534
|
</div>
|
|
4486
4535
|
<div class="daterange-cals">
|
|
4487
4536
|
${this._monthHtml(this._viewY, this._viewM)}
|
|
@@ -4503,10 +4552,10 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4503
4552
|
n.classList.toggle("is-range-start", i), n.classList.toggle("is-range-end", a), n.classList.toggle("in-range", o);
|
|
4504
4553
|
}
|
|
4505
4554
|
let i = e.querySelector("[data-range-hint]");
|
|
4506
|
-
i && (i.textContent = this._start ? this._end ? `${
|
|
4555
|
+
i && (i.textContent = this._start ? this._end ? `${Un(this._start)} to ${Un(this._end)}` : "Pick an end date" : "Pick a start date");
|
|
4507
4556
|
}
|
|
4508
4557
|
_position(e, t) {
|
|
4509
|
-
|
|
4558
|
+
I(e, t, { clampHeight: !0 });
|
|
4510
4559
|
}
|
|
4511
4560
|
_pick(e) {
|
|
4512
4561
|
if (!this._start || this._start && this._end) {
|
|
@@ -4557,18 +4606,18 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4557
4606
|
this._popClick = !1, r() && !t && !this.contains(e.target) && this._close();
|
|
4558
4607
|
}, document.addEventListener("click", this._onDocClick), this._onDocKey = (e) => {
|
|
4559
4608
|
r() && e.key === "Escape" && this._close();
|
|
4560
|
-
}, document.addEventListener("keydown", this._onDocKey),
|
|
4609
|
+
}, document.addEventListener("keydown", this._onDocKey), L(this, () => {
|
|
4561
4610
|
r() && this._position(e, t);
|
|
4562
4611
|
});
|
|
4563
4612
|
}, this._bindGlobal(), this._syncMirrors();
|
|
4564
4613
|
}
|
|
4565
4614
|
_teardown() {
|
|
4566
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null),
|
|
4615
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), R(this);
|
|
4567
4616
|
}
|
|
4568
4617
|
disconnectedCallback() {
|
|
4569
4618
|
this._teardown();
|
|
4570
4619
|
}
|
|
4571
|
-
},
|
|
4620
|
+
}, qn = class extends e {
|
|
4572
4621
|
static get observedAttributes() {
|
|
4573
4622
|
return [
|
|
4574
4623
|
"static",
|
|
@@ -4589,10 +4638,10 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4589
4638
|
e === "static" && this.isConnected && this._wire();
|
|
4590
4639
|
}
|
|
4591
4640
|
_maxScale() {
|
|
4592
|
-
return
|
|
4641
|
+
return Jn(this.getAttribute("max-scale"), 1.6);
|
|
4593
4642
|
}
|
|
4594
4643
|
_radius() {
|
|
4595
|
-
return
|
|
4644
|
+
return Jn(this.getAttribute("radius"), 100);
|
|
4596
4645
|
}
|
|
4597
4646
|
_magnifyEnabled() {
|
|
4598
4647
|
return !(this.hasAttribute("static") || typeof matchMedia == "function" && (matchMedia("(pointer: coarse)").matches || matchMedia("(prefers-reduced-motion: reduce)").matches));
|
|
@@ -4617,21 +4666,21 @@ var wn = (e) => e instanceof Element ? e : e?.parentElement ?? null, Tn = class
|
|
|
4617
4666
|
_teardown() {
|
|
4618
4667
|
this._pointerMoveListener &&= (this.removeEventListener("pointermove", this._pointerMoveListener), null), this._pointerLeaveListener &&= (this.removeEventListener("pointerleave", this._pointerLeaveListener), null), this._resetMagnification();
|
|
4619
4668
|
}
|
|
4620
|
-
},
|
|
4669
|
+
}, Jn = (e, t) => {
|
|
4621
4670
|
let n = Number.parseFloat(e);
|
|
4622
4671
|
return Number.isFinite(n) ? n : t;
|
|
4623
|
-
},
|
|
4672
|
+
}, Yn = 4096, Xn = [
|
|
4624
4673
|
.92,
|
|
4625
4674
|
.8,
|
|
4626
4675
|
.65,
|
|
4627
4676
|
.5
|
|
4628
|
-
],
|
|
4629
|
-
function
|
|
4677
|
+
], Zn = .8, Qn = 8;
|
|
4678
|
+
function $n(e) {
|
|
4630
4679
|
if (e == null || e === "" || e === "free") return null;
|
|
4631
4680
|
let t = typeof e == "number" ? e : Number(e);
|
|
4632
4681
|
return Number.isFinite(t) && t > 0 ? t : null;
|
|
4633
4682
|
}
|
|
4634
|
-
function
|
|
4683
|
+
function er(e, t, n) {
|
|
4635
4684
|
if (!n) return {
|
|
4636
4685
|
x: 0,
|
|
4637
4686
|
y: 0,
|
|
@@ -4646,46 +4695,46 @@ function Jn(e, t, n) {
|
|
|
4646
4695
|
h: i
|
|
4647
4696
|
};
|
|
4648
4697
|
}
|
|
4649
|
-
function
|
|
4698
|
+
function tr(e, t, n) {
|
|
4650
4699
|
return {
|
|
4651
4700
|
...e,
|
|
4652
4701
|
x: Math.min(Math.max(e.x, 0), Math.max(t - e.w, 0)),
|
|
4653
4702
|
y: Math.min(Math.max(e.y, 0), Math.max(n - e.h, 0))
|
|
4654
4703
|
};
|
|
4655
4704
|
}
|
|
4656
|
-
function
|
|
4657
|
-
return
|
|
4705
|
+
function nr(e, t, n, r, i) {
|
|
4706
|
+
return tr({
|
|
4658
4707
|
...e,
|
|
4659
4708
|
x: e.x + t,
|
|
4660
4709
|
y: e.y + n
|
|
4661
4710
|
}, r, i);
|
|
4662
4711
|
}
|
|
4663
|
-
function
|
|
4712
|
+
function rr(e, t) {
|
|
4664
4713
|
return Math.min(32, e, t);
|
|
4665
4714
|
}
|
|
4666
|
-
function
|
|
4715
|
+
function ir(e, t) {
|
|
4667
4716
|
return t.w / e.w;
|
|
4668
4717
|
}
|
|
4669
|
-
function
|
|
4670
|
-
return Math.max(4,
|
|
4718
|
+
function ar(e, t) {
|
|
4719
|
+
return Math.max(4, ir(e, t));
|
|
4671
4720
|
}
|
|
4672
|
-
function
|
|
4673
|
-
let a = Math.min(Math.max(n, 1),
|
|
4674
|
-
return
|
|
4721
|
+
function or(e, t, n, r, i) {
|
|
4722
|
+
let a = Math.min(Math.max(n, 1), ar(e, t)), o = e.h / e.w, s = Math.min(r, i / o), c = Math.min(Math.max(rr(r, i), rr(r, i) / o), s), l = Math.min(Math.max(t.w / a, c), s), u = l * o, d = e.x + e.w / 2, f = e.y + e.h / 2;
|
|
4723
|
+
return tr({
|
|
4675
4724
|
x: d - l / 2,
|
|
4676
4725
|
y: f - u / 2,
|
|
4677
4726
|
w: l,
|
|
4678
4727
|
h: u
|
|
4679
4728
|
}, r, i);
|
|
4680
4729
|
}
|
|
4681
|
-
var
|
|
4730
|
+
var sr = [
|
|
4682
4731
|
"nw",
|
|
4683
4732
|
"ne",
|
|
4684
4733
|
"sw",
|
|
4685
4734
|
"se"
|
|
4686
4735
|
];
|
|
4687
|
-
function
|
|
4688
|
-
let o =
|
|
4736
|
+
function cr(e, t, n, r, i, a) {
|
|
4737
|
+
let o = rr(i, a), s = t.endsWith("w"), c = t.startsWith("n"), l = s ? e.x + e.w : e.x, u = c ? e.y + e.h : e.y, d = Math.min(Math.max(n, 0), i), f = Math.min(Math.max(r, 0), a);
|
|
4689
4738
|
return d = s ? Math.min(d, l - o) : Math.max(d, l + o), f = c ? Math.min(f, u - o) : Math.max(f, u + o), {
|
|
4690
4739
|
x: Math.min(d, l),
|
|
4691
4740
|
y: Math.min(f, u),
|
|
@@ -4693,53 +4742,53 @@ function nr(e, t, n, r, i, a) {
|
|
|
4693
4742
|
h: Math.abs(f - u)
|
|
4694
4743
|
};
|
|
4695
4744
|
}
|
|
4696
|
-
function
|
|
4745
|
+
function lr(e, t = Yn) {
|
|
4697
4746
|
let n = Math.min(1, t / Math.max(e.w, e.h));
|
|
4698
4747
|
return {
|
|
4699
4748
|
width: Math.max(1, Math.round(e.w * n)),
|
|
4700
4749
|
height: Math.max(1, Math.round(e.h * n))
|
|
4701
4750
|
};
|
|
4702
4751
|
}
|
|
4703
|
-
var
|
|
4752
|
+
var ur = [
|
|
4704
4753
|
"image/png",
|
|
4705
4754
|
"image/jpeg",
|
|
4706
4755
|
"image/webp"
|
|
4707
|
-
],
|
|
4756
|
+
], dr = {
|
|
4708
4757
|
"image/png": ".png",
|
|
4709
4758
|
"image/jpeg": ".jpg",
|
|
4710
4759
|
"image/webp": ".webp"
|
|
4711
4760
|
};
|
|
4712
|
-
function
|
|
4761
|
+
function fr(e) {
|
|
4713
4762
|
let t = String(e || "").toLowerCase();
|
|
4714
|
-
return
|
|
4763
|
+
return ur.includes(t) ? t : "image/png";
|
|
4715
4764
|
}
|
|
4716
|
-
function
|
|
4717
|
-
let n = String(e || "image"), r =
|
|
4765
|
+
function pr(e, t) {
|
|
4766
|
+
let n = String(e || "image"), r = dr[t];
|
|
4718
4767
|
return (t === "image/jpeg" ? /\.jpe?g$/i.test(n) : n.toLowerCase().endsWith(r)) ? n : `${n.replace(/\.[^./\\]+$/, "") || "image"}${r}`;
|
|
4719
4768
|
}
|
|
4720
|
-
async function
|
|
4769
|
+
async function mr(e, { width: t, height: n, type: r, maxBytes: i }) {
|
|
4721
4770
|
let a = r, o = t, s = n, c = null;
|
|
4722
|
-
for (let t = 0; t <=
|
|
4723
|
-
let n = a === "image/png" ? [void 0] : t === 0 ?
|
|
4771
|
+
for (let t = 0; t <= Qn; t++) {
|
|
4772
|
+
let n = a === "image/png" ? [void 0] : t === 0 ? Xn : [Xn[1]];
|
|
4724
4773
|
for (let t of n) {
|
|
4725
4774
|
if (c = await e(o, s, a, t), !c || (c.type && c.type !== a && (a = c.type), !(i > 0) || c.size <= i)) return c;
|
|
4726
4775
|
if (a === "image/png") break;
|
|
4727
4776
|
}
|
|
4728
|
-
o = Math.max(1, Math.round(o *
|
|
4777
|
+
o = Math.max(1, Math.round(o * Zn)), s = Math.max(1, Math.round(s * Zn));
|
|
4729
4778
|
}
|
|
4730
4779
|
return c;
|
|
4731
4780
|
}
|
|
4732
4781
|
//#endregion
|
|
4733
4782
|
//#region src/WuiImageCrop.js
|
|
4734
|
-
var
|
|
4783
|
+
var hr = .05, gr = .2, _r = {
|
|
4735
4784
|
w: 320,
|
|
4736
4785
|
h: 240
|
|
4737
|
-
},
|
|
4786
|
+
}, vr = {
|
|
4738
4787
|
nw: "top left",
|
|
4739
4788
|
ne: "top right",
|
|
4740
4789
|
sw: "bottom left",
|
|
4741
4790
|
se: "bottom right"
|
|
4742
|
-
},
|
|
4791
|
+
}, yr = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14\"/></svg>", br = "<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14M12 5v14\"/></svg>", xr = class extends e {
|
|
4743
4792
|
static get observedAttributes() {
|
|
4744
4793
|
return [
|
|
4745
4794
|
"src",
|
|
@@ -4757,7 +4806,7 @@ var lr = .05, ur = .2, dr = {
|
|
|
4757
4806
|
e == null || e === "" ? this.removeAttribute("src") : this.setAttribute("src", String(e));
|
|
4758
4807
|
}
|
|
4759
4808
|
get aspect() {
|
|
4760
|
-
return
|
|
4809
|
+
return $n(this.getAttribute("aspect"));
|
|
4761
4810
|
}
|
|
4762
4811
|
set aspect(e) {
|
|
4763
4812
|
e == null || e === "" ? this.removeAttribute("aspect") : this.setAttribute("aspect", String(e));
|
|
@@ -4772,10 +4821,10 @@ var lr = .05, ur = .2, dr = {
|
|
|
4772
4821
|
return this._rect ? { ...this._rect } : null;
|
|
4773
4822
|
}
|
|
4774
4823
|
get zoom() {
|
|
4775
|
-
return this._rect ?
|
|
4824
|
+
return this._rect ? ir(this._rect, this._base) : 1;
|
|
4776
4825
|
}
|
|
4777
4826
|
set zoom(e) {
|
|
4778
|
-
this._rect && (this._rect =
|
|
4827
|
+
this._rect && (this._rect = or(this._rect, this._base, Number(e) || 1, this._natural.w, this._natural.h), this._paint(), this._announce());
|
|
4779
4828
|
}
|
|
4780
4829
|
connectedCallback() {
|
|
4781
4830
|
if (!this._rendered) {
|
|
@@ -4797,18 +4846,18 @@ var lr = .05, ur = .2, dr = {
|
|
|
4797
4846
|
<div class="wui-crop-frame"></div>
|
|
4798
4847
|
</div>
|
|
4799
4848
|
<div class="wui-crop-controls">
|
|
4800
|
-
<button type="button" class="wui-crop-zoombtn" data-zoom="out" aria-label="Zoom out">${
|
|
4849
|
+
<button type="button" class="wui-crop-zoombtn" data-zoom="out" aria-label="Zoom out">${yr}</button>
|
|
4801
4850
|
<input type="range" class="form-range wui-crop-zoom" min="1" max="4" step="0.01" value="1" aria-label="Zoom">
|
|
4802
|
-
<button type="button" class="wui-crop-zoombtn" data-zoom="in" aria-label="Zoom in">${
|
|
4851
|
+
<button type="button" class="wui-crop-zoombtn" data-zoom="in" aria-label="Zoom in">${br}</button>
|
|
4803
4852
|
</div>
|
|
4804
4853
|
<div class="visually-hidden" data-wui-crop-live aria-live="polite"></div>
|
|
4805
4854
|
</div>`, this._stage = this.querySelector(".wui-crop-stage"), this._img = this.querySelector(".wui-crop-img"), this._frame = this.querySelector(".wui-crop-frame"), this._slider = this.querySelector(".wui-crop-zoom"), this._live = this.querySelector("[data-wui-crop-live]"), this._rendered = !0, this._frame.classList.toggle("wui-crop-frame--round", this.round), this._rebuildHandles(), this._wire(), this._observe(), this._loadImage();
|
|
4806
4855
|
}
|
|
4807
4856
|
_rebuildHandles() {
|
|
4808
4857
|
for (let e of this._frame.querySelectorAll(".wui-crop-handle")) e.remove();
|
|
4809
|
-
if (!this.aspect) for (let e of
|
|
4858
|
+
if (!this.aspect) for (let e of sr) {
|
|
4810
4859
|
let t = document.createElement("button");
|
|
4811
|
-
t.type = "button", t.className = `wui-crop-handle wui-crop-handle--${e}`, t.dataset.handle = e, t.setAttribute("aria-label", `Resize ${
|
|
4860
|
+
t.type = "button", t.className = `wui-crop-handle wui-crop-handle--${e}`, t.dataset.handle = e, t.setAttribute("aria-label", `Resize ${vr[e]} corner`), this._frame.appendChild(t);
|
|
4812
4861
|
}
|
|
4813
4862
|
}
|
|
4814
4863
|
_loadImage() {
|
|
@@ -4824,13 +4873,13 @@ var lr = .05, ur = .2, dr = {
|
|
|
4824
4873
|
}, this._img.src = e);
|
|
4825
4874
|
}
|
|
4826
4875
|
_resetRect() {
|
|
4827
|
-
this._natural && (this._base =
|
|
4876
|
+
this._natural && (this._base = er(this._natural.w, this._natural.h, this.aspect), this._rect = { ...this._base }, this._frame.hidden = !1, this._paint());
|
|
4828
4877
|
}
|
|
4829
4878
|
_observe() {
|
|
4830
4879
|
typeof ResizeObserver > "u" || this._resizeObserver || (this._resizeObserver = new ResizeObserver(() => this._paint()), this._resizeObserver.observe(this._stage));
|
|
4831
4880
|
}
|
|
4832
4881
|
_view() {
|
|
4833
|
-
let e = this._stage.clientWidth ||
|
|
4882
|
+
let e = this._stage.clientWidth || _r.w, t = this._stage.clientHeight || _r.h, n = Math.min(e / this._natural.w, t / this._natural.h), r = this._natural.w * n, i = this._natural.h * n;
|
|
4834
4883
|
return {
|
|
4835
4884
|
scale: n,
|
|
4836
4885
|
left: (e - r) / 2,
|
|
@@ -4855,7 +4904,7 @@ var lr = .05, ur = .2, dr = {
|
|
|
4855
4904
|
width: `${t.w * e.scale}px`,
|
|
4856
4905
|
height: `${t.h * e.scale}px`
|
|
4857
4906
|
});
|
|
4858
|
-
let n =
|
|
4907
|
+
let n = ir(t, this._base), r = ar(t, this._base);
|
|
4859
4908
|
this._slider.max = String(r), this._slider.value = String(Math.min(Math.max(n, 1), r)), this._slider.setAttribute("aria-valuetext", `${Math.round(n * 100)}%`);
|
|
4860
4909
|
}
|
|
4861
4910
|
_announce() {
|
|
@@ -4865,7 +4914,7 @@ var lr = .05, ur = .2, dr = {
|
|
|
4865
4914
|
}));
|
|
4866
4915
|
}
|
|
4867
4916
|
_say() {
|
|
4868
|
-
let e = this._rect, t = `Frame ${Math.round(e.w)} by ${Math.round(e.h)} pixels, ${Math.round(e.x)} from the left, ${Math.round(e.y)} from the top, zoom ${Math.round(
|
|
4917
|
+
let e = this._rect, t = `Frame ${Math.round(e.w)} by ${Math.round(e.h)} pixels, ${Math.round(e.x)} from the left, ${Math.round(e.y)} from the top, zoom ${Math.round(ir(e, this._base) * 100)}%.`;
|
|
4869
4918
|
this._live.textContent = t === this._live.textContent ? `${t}\u00a0` : t;
|
|
4870
4919
|
}
|
|
4871
4920
|
_wire() {
|
|
@@ -4886,8 +4935,8 @@ var lr = .05, ur = .2, dr = {
|
|
|
4886
4935
|
let r = this._view(), { w: i, h: a } = this._natural;
|
|
4887
4936
|
if (n.corner) {
|
|
4888
4937
|
let o = e.getBoundingClientRect(), s = (t.clientX - o.left - e.clientLeft - r.left) / r.scale, c = (t.clientY - o.top - e.clientTop - r.top) / r.scale;
|
|
4889
|
-
this._rect =
|
|
4890
|
-
} else this._rect =
|
|
4938
|
+
this._rect = cr(this._rect, n.corner, s, c, i, a);
|
|
4939
|
+
} else this._rect = nr(n.start, (t.clientX - n.x) / r.scale, (t.clientY - n.y) / r.scale, i, a);
|
|
4891
4940
|
this._paint();
|
|
4892
4941
|
});
|
|
4893
4942
|
let t = (t) => {
|
|
@@ -4911,19 +4960,19 @@ var lr = .05, ur = .2, dr = {
|
|
|
4911
4960
|
if (e.key === "+" || e.key === "=") this.zoom *= 1.25, this._say();
|
|
4912
4961
|
else if (e.key === "-" || e.key === "_") this.zoom *= .8, this._say();
|
|
4913
4962
|
else if (e.key.startsWith("Arrow")) {
|
|
4914
|
-
let r = e.shiftKey ?
|
|
4963
|
+
let r = e.shiftKey ? gr : hr, i = e.key === "ArrowRight" ? 1 : e.key === "ArrowLeft" ? -1 : 0, a = e.key === "ArrowDown" ? 1 : e.key === "ArrowUp" ? -1 : 0, o = e.target.closest?.(".wui-crop-handle")?.dataset.handle;
|
|
4915
4964
|
if (o) {
|
|
4916
4965
|
let e = this._rect, s = (o.endsWith("w") ? e.x : e.x + e.w) + i * r * e.w, c = (o.startsWith("n") ? e.y : e.y + e.h) + a * r * e.h;
|
|
4917
|
-
this._rect =
|
|
4918
|
-
} else this._rect =
|
|
4966
|
+
this._rect = cr(e, o, s, c, t, n);
|
|
4967
|
+
} else this._rect = nr(this._rect, i * r * this._rect.w, a * r * this._rect.h, t, n);
|
|
4919
4968
|
this._paint(), this._announce(), this._say();
|
|
4920
4969
|
} else return;
|
|
4921
4970
|
e.preventDefault();
|
|
4922
4971
|
}
|
|
4923
4972
|
async toBlob({ type: e, maxBytes: t = 0 } = {}) {
|
|
4924
4973
|
if (!this._rect) return null;
|
|
4925
|
-
let n =
|
|
4926
|
-
return
|
|
4974
|
+
let n = fr(e), r = tr(this._rect, this._natural.w, this._natural.h), { width: i, height: a } = lr(r);
|
|
4975
|
+
return mr((e, t, n, i) => new Promise((a) => {
|
|
4927
4976
|
let o = document.createElement("canvas");
|
|
4928
4977
|
o.width = e, o.height = t;
|
|
4929
4978
|
let s = o.getContext("2d");
|
|
@@ -4944,25 +4993,25 @@ var lr = .05, ur = .2, dr = {
|
|
|
4944
4993
|
type: t,
|
|
4945
4994
|
maxBytes: n
|
|
4946
4995
|
});
|
|
4947
|
-
return r ? new File([r],
|
|
4996
|
+
return r ? new File([r], pr(e, r.type), { type: r.type }) : null;
|
|
4948
4997
|
}
|
|
4949
|
-
},
|
|
4998
|
+
}, Sr = {
|
|
4950
4999
|
enter: "Enter",
|
|
4951
5000
|
comma: ",",
|
|
4952
5001
|
space: " ",
|
|
4953
5002
|
tab: "Tab"
|
|
4954
|
-
},
|
|
5003
|
+
}, Cr = {
|
|
4955
5004
|
enter: "\n",
|
|
4956
5005
|
comma: ",",
|
|
4957
5006
|
space: " ",
|
|
4958
5007
|
tab: " "
|
|
4959
|
-
},
|
|
4960
|
-
function
|
|
5008
|
+
}, wr = (e) => Sr[e], Tr = (e) => Cr[e];
|
|
5009
|
+
function Er(e, t) {
|
|
4961
5010
|
let n = [String(e ?? "")];
|
|
4962
5011
|
for (let e of t) n = n.flatMap((t) => t.split(e));
|
|
4963
5012
|
return n.map((e) => e.trim()).filter(Boolean);
|
|
4964
5013
|
}
|
|
4965
|
-
var
|
|
5014
|
+
var Dr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Or = class extends e {
|
|
4966
5015
|
static formAssociated = !0;
|
|
4967
5016
|
_accessibleName() {
|
|
4968
5017
|
return this.getAttribute("aria-label") || this.getAttribute("placeholder") || "Select";
|
|
@@ -5026,7 +5075,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5026
5075
|
return this._values.slice();
|
|
5027
5076
|
}
|
|
5028
5077
|
set values(e) {
|
|
5029
|
-
this._values = Array.isArray(e) ? e.map(String) : [],
|
|
5078
|
+
this._values = Array.isArray(e) ? e.map(String) : [], B(this, this._values), this._rendered && (this._renderControl(), this._renderOptions(this._query()));
|
|
5030
5079
|
}
|
|
5031
5080
|
set options(e) {
|
|
5032
5081
|
if (this._optionsProp = Array.isArray(e) ? e : null, this._rendered && this._allowCustom) {
|
|
@@ -5059,10 +5108,10 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5059
5108
|
value: e.getAttribute("value") ?? e.textContent.trim(),
|
|
5060
5109
|
label: e.innerHTML,
|
|
5061
5110
|
icon: e.getAttribute("icon") || void 0,
|
|
5062
|
-
[
|
|
5111
|
+
[Zt]: !0,
|
|
5063
5112
|
selected: e.hasAttribute("selected")
|
|
5064
5113
|
};
|
|
5065
|
-
for (let [n, r] of
|
|
5114
|
+
for (let [n, r] of Ar) {
|
|
5066
5115
|
let i = e.getAttribute(n);
|
|
5067
5116
|
i && (t[r] = i);
|
|
5068
5117
|
}
|
|
@@ -5078,12 +5127,12 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5078
5127
|
}
|
|
5079
5128
|
_labelHtmlFor(e) {
|
|
5080
5129
|
let t = this._readOptions().find((t) => String(t.value) === String(e));
|
|
5081
|
-
return t ?
|
|
5130
|
+
return t ? tn(t) : H(e);
|
|
5082
5131
|
}
|
|
5083
5132
|
render() {
|
|
5084
5133
|
this._snapshotDeclared();
|
|
5085
5134
|
let e = this._allowCustom, t = this.hasAttribute("searchable") && !e, n = this.getAttribute("search-placeholder") || "Search…", r = this.getAttribute("icon"), i = this.getAttribute("size"), a = i === "sm" ? " search-select-sm" : i === "lg" ? " search-select-lg" : "";
|
|
5086
|
-
|
|
5135
|
+
B(this, this._values), this.id ||= `wui-multiselect-${Math.random().toString(36).slice(2, 9)}`;
|
|
5087
5136
|
let o = `${this.id}-listbox`;
|
|
5088
5137
|
this._listboxId = o;
|
|
5089
5138
|
let s = this.hasAttribute("disabled");
|
|
@@ -5092,9 +5141,9 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5092
5141
|
this.innerHTML = `
|
|
5093
5142
|
<div class="search-select${a}">
|
|
5094
5143
|
<div class="input search-select-control search-select-multi"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${s ? " aria-disabled=\"true\"" : ""}>
|
|
5095
|
-
${r ?
|
|
5144
|
+
${r ? V(r, { className: "search-select-icon" }) : ""}
|
|
5096
5145
|
<div class="ms-chips" data-chips><input type="text" class="ms-input" data-input role="combobox" aria-autocomplete="list" aria-haspopup="listbox" aria-expanded="false" aria-controls="${q(o)}" aria-label="${q(this._accessibleName())}" aria-describedby="${q(e)}" autocomplete="off"${s ? " disabled" : ""} /></div>
|
|
5097
|
-
${
|
|
5146
|
+
${V("chevron-down", { className: "search-select-caret" })}
|
|
5098
5147
|
</div>
|
|
5099
5148
|
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${q(o)}" aria-multiselectable="true" tabindex="-1" hidden>
|
|
5100
5149
|
<div class="search-select-options"></div>
|
|
@@ -5104,29 +5153,29 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5104
5153
|
} else this.innerHTML = `
|
|
5105
5154
|
<div class="search-select${a}">
|
|
5106
5155
|
<div class="input search-select-control search-select-multi" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${q(o)}" aria-label="${q(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${s ? " aria-disabled=\"true\"" : " tabindex=\"0\""}>
|
|
5107
|
-
${r ?
|
|
5156
|
+
${r ? V(r, { className: "search-select-icon" }) : ""}
|
|
5108
5157
|
<div class="ms-chips" data-chips></div>
|
|
5109
|
-
${
|
|
5158
|
+
${V("chevron-down", { className: "search-select-caret" })}
|
|
5110
5159
|
</div>
|
|
5111
5160
|
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${q(o)}" aria-multiselectable="true" tabindex="-1" hidden>
|
|
5112
|
-
${t ? `<div class="search-select-search">${
|
|
5161
|
+
${t ? `<div class="search-select-search">${V("search")}<input class="search-select-input" placeholder="${q(n)}" aria-autocomplete="list" /><button type="button" class="search-select-clear" aria-label="Clear search" hidden>${V("x")}</button></div>` : ""}
|
|
5113
5162
|
<div class="search-select-options"></div>
|
|
5114
5163
|
<div class="search-select-empty" hidden>No matches</div>
|
|
5115
5164
|
</div>
|
|
5116
5165
|
</div>`;
|
|
5117
|
-
this._rendered = !0, this._customError = "",
|
|
5166
|
+
this._rendered = !0, this._customError = "", B(this, this._values), this._renderControl(), this._renderOptions(), this._wire();
|
|
5118
5167
|
}
|
|
5119
5168
|
_renderControl() {
|
|
5120
5169
|
let e = this.querySelector("[data-chips]");
|
|
5121
5170
|
if (!e) return;
|
|
5122
|
-
let t = this.getAttribute("placeholder") || "Select…", n = this._allowCustom ? e.querySelector("[data-input]") : null, r = this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${this._labelHtmlFor(e)}</span><button type="button" class="chip-remove" data-remove="${q(e)}" aria-label="Remove ${q(
|
|
5171
|
+
let t = this.getAttribute("placeholder") || "Select…", n = this._allowCustom ? e.querySelector("[data-input]") : null, r = this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${this._labelHtmlFor(e)}</span><button type="button" class="chip-remove" data-remove="${q(e)}" aria-label="Remove ${q(Lr(this._labelFor(e)))}">${V("x")}</button></span>`).join("");
|
|
5123
5172
|
if (n) {
|
|
5124
5173
|
for (let t of [...e.querySelectorAll(":scope > .chip")]) t.remove();
|
|
5125
5174
|
n.insertAdjacentHTML("beforebegin", r), n.placeholder = this._values.length ? "" : t, this._collapseChips();
|
|
5126
5175
|
return;
|
|
5127
5176
|
}
|
|
5128
5177
|
if (!this._values.length) {
|
|
5129
|
-
e.innerHTML = `<span class="search-select-placeholder">${
|
|
5178
|
+
e.innerHTML = `<span class="search-select-placeholder">${H(t)}</span>`;
|
|
5130
5179
|
return;
|
|
5131
5180
|
}
|
|
5132
5181
|
e.innerHTML = r, this._collapseChips();
|
|
@@ -5150,11 +5199,11 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5150
5199
|
i.textContent = `+${t.length - o}`;
|
|
5151
5200
|
}
|
|
5152
5201
|
_matches(e, t) {
|
|
5153
|
-
return
|
|
5202
|
+
return Lr(e.label).toLowerCase().includes(t) || String(e.description ?? "").toLowerCase().includes(t);
|
|
5154
5203
|
}
|
|
5155
5204
|
_optionNamed(e) {
|
|
5156
5205
|
let t = e.trim().toLowerCase();
|
|
5157
|
-
return this._readOptions().find((e) => String(e.value ?? "").toLowerCase() === t ||
|
|
5206
|
+
return this._readOptions().find((e) => String(e.value ?? "").toLowerCase() === t || Lr(e.label).trim().toLowerCase() === t);
|
|
5158
5207
|
}
|
|
5159
5208
|
_renderOptions(e) {
|
|
5160
5209
|
let t = this.querySelector(".search-select-options"), n = this.querySelector(".search-select-empty");
|
|
@@ -5163,9 +5212,9 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5163
5212
|
i && (a = a.filter((e) => this._matches(e, i)));
|
|
5164
5213
|
let o = this._listboxId || `${this.id || "wui-multiselect"}-listbox`, s = this._allowCustom && r && !this._optionNamed(r), c = a.map((e, t) => {
|
|
5165
5214
|
let n = this._values.includes(String(e.value)), r = `${o}-opt-${t}`;
|
|
5166
|
-
return
|
|
5215
|
+
return jr(e) ? Pr(e, r, n) : `<button type="button" role="option" id="${q(r)}" class="search-select-option${n ? " selected" : ""}" data-value="${q(e.value)}" aria-selected="${n}"><span class="ms-opt-label">${tn(e)}</span><span class="ms-check">${V("check")}</span></button>`;
|
|
5167
5216
|
});
|
|
5168
|
-
s && c.push(`<button type="button" role="option" id="${q(`${o}-opt-${a.length}`)}" class="search-select-option search-select-option-custom" data-value="${q(r)}" data-custom="true" aria-selected="false">Add “${
|
|
5217
|
+
s && c.push(`<button type="button" role="option" id="${q(`${o}-opt-${a.length}`)}" class="search-select-option search-select-option-custom" data-value="${q(r)}" data-custom="true" aria-selected="false">Add “${H(r)}”</button>`), t.innerHTML = c.join(""), n && (n.hidden = a.length > 0), this._active = -1, this._combobox()?.removeAttribute("aria-activedescendant"), this._allowCustom && this._syncCustomMenu?.(), this._reanchor?.();
|
|
5169
5218
|
}
|
|
5170
5219
|
_combobox() {
|
|
5171
5220
|
return this._allowCustom ? this.querySelector("[data-input]") : this.querySelector(".search-select-control");
|
|
@@ -5178,7 +5227,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5178
5227
|
_customRefusal(e) {
|
|
5179
5228
|
let t = this.getAttribute("custom-invalid-message") || "Enter a valid value.", n = this.getAttribute("custom-pattern");
|
|
5180
5229
|
if (n) {
|
|
5181
|
-
let r =
|
|
5230
|
+
let r = Ir(n);
|
|
5182
5231
|
if (r && !r.test(e)) return t;
|
|
5183
5232
|
}
|
|
5184
5233
|
let r = this._validateCustom;
|
|
@@ -5207,7 +5256,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5207
5256
|
this._teardown();
|
|
5208
5257
|
let e = this.querySelector(".search-select-control"), t = this.querySelector(".search-select-menu"), n = this.querySelector(".search-select-input"), r = this.querySelector(".search-select-clear"), i = this.querySelector(".search-select-options"), a = this._allowCustom, o = a ? this.querySelector("[data-input]") : null, s = o || e;
|
|
5209
5258
|
if (!e || !t) return;
|
|
5210
|
-
let c = () => this.hasAttribute("disabled"), l = () =>
|
|
5259
|
+
let c = () => this.hasAttribute("disabled"), l = () => I(e, t, { matchWidth: !0 }), u = () => [...this.querySelectorAll(".search-select-option")], d = () => u().filter((e) => !e.hidden), f = (e) => {
|
|
5211
5260
|
let t = d();
|
|
5212
5261
|
this._active = e;
|
|
5213
5262
|
for (let e of u()) e.classList.remove("is-active");
|
|
@@ -5228,7 +5277,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5228
5277
|
}, _ = () => {
|
|
5229
5278
|
a ? (p = !1, h()) : (t.hidden = !0, e.setAttribute("aria-expanded", "false"), e.classList.remove("open")), f(-1), clearTimeout(this._typeaheadTimer), this._typeaheadTimer = null, this._typeahead = "";
|
|
5230
5279
|
}, v = () => {
|
|
5231
|
-
|
|
5280
|
+
B(this, this._values), this.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
5232
5281
|
}, y = (e) => {
|
|
5233
5282
|
let t = String(e);
|
|
5234
5283
|
if (this._values.includes(t)) this._values = this._values.filter((e) => e !== t);
|
|
@@ -5238,7 +5287,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5238
5287
|
}, b = (e) => {
|
|
5239
5288
|
this._values = this._values.filter((t) => t !== String(e)), this._renderControl(), this._renderOptions(this._query()), v();
|
|
5240
5289
|
}, x = (e, { quiet: t = !1 } = {}) => {
|
|
5241
|
-
let n = this._values.length, r =
|
|
5290
|
+
let n = this._values.length, r = Dr(e, kr) ? Er(e, kr) : [e], i = [], a = "";
|
|
5242
5291
|
for (let e of r) {
|
|
5243
5292
|
let t = this._commitTyped(e);
|
|
5244
5293
|
t && (i.push(e.trim()), a ||= t);
|
|
@@ -5276,7 +5325,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5276
5325
|
e.target?.classList?.contains("avatar-img") && e.target.remove();
|
|
5277
5326
|
}, !0), n?.addEventListener("input", () => {
|
|
5278
5327
|
this._renderOptions(n.value), r && (r.hidden = !n.value), f(-1);
|
|
5279
|
-
}), this._navHandler =
|
|
5328
|
+
}), this._navHandler = Xt({
|
|
5280
5329
|
getVisibleOptions: d,
|
|
5281
5330
|
getActive: () => this._active,
|
|
5282
5331
|
setActive: (e) => f(e),
|
|
@@ -5316,7 +5365,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5316
5365
|
(e.key === "ArrowDown" || e.key === "ArrowUp") && !m() && g(), ee(e);
|
|
5317
5366
|
}), o.addEventListener("paste", (e) => {
|
|
5318
5367
|
let t = e.clipboardData?.getData("text/plain") ?? "";
|
|
5319
|
-
|
|
5368
|
+
Dr(t, kr) && (e.preventDefault(), x(`${o.value}${t}`));
|
|
5320
5369
|
}), o.addEventListener("blur", (e) => {
|
|
5321
5370
|
e.relatedTarget && this.contains(e.relatedTarget) || (o.value.trim() && x(o.value, { quiet: !0 }), _());
|
|
5322
5371
|
});
|
|
@@ -5330,46 +5379,46 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5330
5379
|
this._bindGlobal = () => {
|
|
5331
5380
|
this._teardown(), !this._ro && typeof ResizeObserver < "u" && (this._ro = new ResizeObserver(() => this._collapseChips()), this._ro.observe(this)), this._onDocClick = (e) => {
|
|
5332
5381
|
m() && !this.contains(e.target) && _();
|
|
5333
|
-
}, document.addEventListener("click", this._onDocClick),
|
|
5382
|
+
}, document.addEventListener("click", this._onDocClick), L(this, () => {
|
|
5334
5383
|
m() && l();
|
|
5335
5384
|
});
|
|
5336
5385
|
}, this._bindGlobal();
|
|
5337
5386
|
}
|
|
5338
5387
|
_teardown() {
|
|
5339
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null),
|
|
5388
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), R(this), this._navHandler?.teardown();
|
|
5340
5389
|
}
|
|
5341
5390
|
disconnectedCallback() {
|
|
5342
5391
|
this._teardown(), this._ro?.disconnect(), this._ro = null;
|
|
5343
5392
|
}
|
|
5344
|
-
},
|
|
5393
|
+
}, kr = [
|
|
5345
5394
|
",",
|
|
5346
5395
|
";",
|
|
5347
5396
|
"\n",
|
|
5348
5397
|
" "
|
|
5349
|
-
],
|
|
5398
|
+
], Ar = [
|
|
5350
5399
|
["description", "description"],
|
|
5351
5400
|
["avatar", "avatar"],
|
|
5352
5401
|
["initials", "initials"],
|
|
5353
5402
|
["disabled-hint", "disabledHint"]
|
|
5354
|
-
],
|
|
5403
|
+
], jr = (e) => !!(e.description || e.avatar || e.initials || e.disabled || e.disabledHint), Mr = (e) => {
|
|
5355
5404
|
let t = String(e ?? "").trim();
|
|
5356
5405
|
return /^(https?:)?\/\//i.test(t) || /^\/(?!\/)/.test(t) || /^data:image\/(png|jpe?g|gif|webp|avif);/i.test(t) ? t : "";
|
|
5357
|
-
},
|
|
5358
|
-
let t =
|
|
5359
|
-
return !t && !e.initials ? "" : `<span class="avatar wui-opt-avatar" aria-hidden="true"><span class="avatar-face">${
|
|
5360
|
-
},
|
|
5361
|
-
let r = !!e.disabled, i = e.description ? `<span class="wui-opt-desc">${
|
|
5362
|
-
return `<button type="button" role="option" id="${q(t)}" class="search-select-option wui-opt-rich${n ? " selected" : ""}" data-value="${q(e.value)}" aria-selected="${n}"${r ? " aria-disabled=\"true\"" : ""}><span class="ms-opt-label"><span class="wui-opt-name">${
|
|
5363
|
-
},
|
|
5364
|
-
if (
|
|
5406
|
+
}, Nr = (e) => {
|
|
5407
|
+
let t = Mr(e.avatar);
|
|
5408
|
+
return !t && !e.initials ? "" : `<span class="avatar wui-opt-avatar" aria-hidden="true"><span class="avatar-face">${H(e.initials ?? "")}</span>${t ? `<img class="avatar-img" src="${q(t)}" alt="" />` : ""}</span>`;
|
|
5409
|
+
}, Pr = (e, t, n) => {
|
|
5410
|
+
let r = !!e.disabled, i = e.description ? `<span class="wui-opt-desc">${H(e.description)}</span>` : "", a = e.disabledHint && r ? `<span class="wui-opt-hint">${H(e.disabledHint)}</span>` : "";
|
|
5411
|
+
return `<button type="button" role="option" id="${q(t)}" class="search-select-option wui-opt-rich${n ? " selected" : ""}" data-value="${q(e.value)}" aria-selected="${n}"${r ? " aria-disabled=\"true\"" : ""}><span class="ms-opt-label"><span class="wui-opt-name">${tn(e)}</span>${i}</span>${a}${Nr(e)}<span class="ms-check">${V("check")}</span></button>`;
|
|
5412
|
+
}, Fr = /* @__PURE__ */ new Map(), Ir = (e) => {
|
|
5413
|
+
if (Fr.has(e)) return Fr.get(e);
|
|
5365
5414
|
let t = null;
|
|
5366
5415
|
try {
|
|
5367
5416
|
t = RegExp(`^(?:${e})$`, "u");
|
|
5368
5417
|
} catch {
|
|
5369
5418
|
console.warn(`<wui-multiselect> custom-pattern is not a valid regular expression and is ignored: ${e}`);
|
|
5370
5419
|
}
|
|
5371
|
-
return
|
|
5372
|
-
}, q = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"),
|
|
5420
|
+
return Fr.set(e, t), t;
|
|
5421
|
+
}, q = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), Lr = (e) => String(e ?? "").replace(/<[^>]*>/g, ""), Rr = /[^0-9]/g, zr = /[^0-9a-zA-Z]/g, Br = class extends e {
|
|
5373
5422
|
static formAssociated = !0;
|
|
5374
5423
|
static get observedAttributes() {
|
|
5375
5424
|
return [
|
|
@@ -5397,10 +5446,10 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5397
5446
|
return this._value ?? "";
|
|
5398
5447
|
}
|
|
5399
5448
|
set value(e) {
|
|
5400
|
-
this._value = this._clean(e),
|
|
5449
|
+
this._value = this._clean(e), z(this, this._value), this._paint();
|
|
5401
5450
|
}
|
|
5402
5451
|
_clean(e) {
|
|
5403
|
-
return (e == null ? "" : String(e)).replace(this.mode === "alphanumeric" ?
|
|
5452
|
+
return (e == null ? "" : String(e)).replace(this.mode === "alphanumeric" ? zr : Rr, "").slice(0, this.length);
|
|
5404
5453
|
}
|
|
5405
5454
|
constructor() {
|
|
5406
5455
|
super();
|
|
@@ -5414,10 +5463,10 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5414
5463
|
this._rendered ? this._onSelectionChange && document.addEventListener("selectionchange", this._onSelectionChange) : (this._defaultCaptured ||= (this._defaultValue = this._value, !0), this.render());
|
|
5415
5464
|
}
|
|
5416
5465
|
formResetCallback() {
|
|
5417
|
-
this._value = this._defaultValue || "",
|
|
5466
|
+
this._value = this._defaultValue || "", z(this, this._value), this._paint();
|
|
5418
5467
|
}
|
|
5419
5468
|
attributeChangedCallback(e, t, n) {
|
|
5420
|
-
this._rendered && (e === "value" ? (this._value = this._clean(n),
|
|
5469
|
+
this._rendered && (e === "value" ? (this._value = this._clean(n), z(this, this._value), this._paint()) : this.render());
|
|
5421
5470
|
}
|
|
5422
5471
|
render() {
|
|
5423
5472
|
this._value = this._clean(this.getAttribute("value") ?? this._value);
|
|
@@ -5435,7 +5484,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5435
5484
|
spellcheck="false"
|
|
5436
5485
|
${n ? "disabled" : ""} />
|
|
5437
5486
|
<div class="otp-slots" aria-hidden="true">${r}</div>
|
|
5438
|
-
</div>`, this._rendered = !0,
|
|
5487
|
+
</div>`, this._rendered = !0, z(this, this._value), this._wire(), this._paint();
|
|
5439
5488
|
}
|
|
5440
5489
|
_refs() {
|
|
5441
5490
|
return {
|
|
@@ -5457,7 +5506,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5457
5506
|
if (!e) return;
|
|
5458
5507
|
let t = (e) => {
|
|
5459
5508
|
let t = this._clean(e), n = t !== this._value;
|
|
5460
|
-
this._value = t,
|
|
5509
|
+
this._value = t, z(this, this._value), this._paint(), n && this.dispatchEvent(new Event("change", { bubbles: !0 })), n && t.length === this.length && this.dispatchEvent(new CustomEvent("complete", {
|
|
5461
5510
|
bubbles: !0,
|
|
5462
5511
|
detail: t
|
|
5463
5512
|
}));
|
|
@@ -5491,7 +5540,7 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5491
5540
|
disconnectedCallback() {
|
|
5492
5541
|
this._onSelectionChange && document.removeEventListener("selectionchange", this._onSelectionChange);
|
|
5493
5542
|
}
|
|
5494
|
-
},
|
|
5543
|
+
}, Vr = {
|
|
5495
5544
|
AD: ["Europe/Andorra"],
|
|
5496
5545
|
AE: ["Asia/Dubai"],
|
|
5497
5546
|
AF: ["Asia/Kabul"],
|
|
@@ -5893,13 +5942,13 @@ var xr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Sr = class extend
|
|
|
5893
5942
|
ZA: ["Africa/Johannesburg"],
|
|
5894
5943
|
ZM: ["Africa/Lusaka"],
|
|
5895
5944
|
ZW: ["Africa/Harare"]
|
|
5896
|
-
},
|
|
5897
|
-
for (let [e, t] of Object.entries(
|
|
5898
|
-
function
|
|
5899
|
-
let t =
|
|
5900
|
-
return t &&
|
|
5945
|
+
}, Hr = new Set(Mn.map(([e]) => e)), Ur = /* @__PURE__ */ new Map();
|
|
5946
|
+
for (let [e, t] of Object.entries(Vr)) for (let n of t) Ur.set(n, e);
|
|
5947
|
+
function Wr(e) {
|
|
5948
|
+
let t = Ur.get(e);
|
|
5949
|
+
return t && Hr.has(t) ? t : null;
|
|
5901
5950
|
}
|
|
5902
|
-
function
|
|
5951
|
+
function Gr(e) {
|
|
5903
5952
|
if (!e) return null;
|
|
5904
5953
|
let t;
|
|
5905
5954
|
try {
|
|
@@ -5907,9 +5956,9 @@ function zr(e) {
|
|
|
5907
5956
|
} catch {
|
|
5908
5957
|
return null;
|
|
5909
5958
|
}
|
|
5910
|
-
return t &&
|
|
5959
|
+
return t && Hr.has(t) ? t : null;
|
|
5911
5960
|
}
|
|
5912
|
-
function
|
|
5961
|
+
function Kr() {
|
|
5913
5962
|
let e;
|
|
5914
5963
|
try {
|
|
5915
5964
|
e = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
@@ -5917,47 +5966,47 @@ function Br() {
|
|
|
5917
5966
|
e = void 0;
|
|
5918
5967
|
}
|
|
5919
5968
|
let t = typeof navigator > "u" ? void 0 : navigator.language;
|
|
5920
|
-
return
|
|
5969
|
+
return Wr(e) || Gr(t) || "IN";
|
|
5921
5970
|
}
|
|
5922
5971
|
//#endregion
|
|
5923
5972
|
//#region src/WuiPhone.js
|
|
5924
|
-
var
|
|
5925
|
-
function
|
|
5926
|
-
return J ? Promise.resolve(J) : (
|
|
5973
|
+
var qr = (e) => `wui-flag wui-flag-${String(e).toLowerCase()}`, J = null, Jr = null;
|
|
5974
|
+
function Yr() {
|
|
5975
|
+
return J ? Promise.resolve(J) : (Jr ||= Promise.all([import("./max-BDKx469G.js"), import("./examples.mobile.json-BMXTGiGC.js")]).then(([e, t]) => (J = {
|
|
5927
5976
|
AsYouType: e.AsYouType,
|
|
5928
5977
|
getExampleNumber: e.getExampleNumber,
|
|
5929
5978
|
isValidPhoneNumber: e.isValidPhoneNumber,
|
|
5930
5979
|
parsePhoneNumber: e.parsePhoneNumber,
|
|
5931
5980
|
examples: t.default || t
|
|
5932
|
-
}, J)).catch(() => null),
|
|
5981
|
+
}, J)).catch(() => null), Jr);
|
|
5933
5982
|
}
|
|
5934
|
-
function
|
|
5935
|
-
let n = `+${
|
|
5983
|
+
function Xr(e, t) {
|
|
5984
|
+
let n = `+${Nn(e)}`;
|
|
5936
5985
|
return t?.startsWith(n) ? t.slice(n.length).trimStart() : null;
|
|
5937
5986
|
}
|
|
5938
|
-
function
|
|
5987
|
+
function Zr(e, t) {
|
|
5939
5988
|
if (!J || !t) return t;
|
|
5940
5989
|
try {
|
|
5941
|
-
return
|
|
5990
|
+
return Xr(e, new J.AsYouType(e).input(`+${Nn(e)}${t}`)) || t;
|
|
5942
5991
|
} catch {
|
|
5943
5992
|
return t;
|
|
5944
5993
|
}
|
|
5945
5994
|
}
|
|
5946
|
-
function
|
|
5995
|
+
function Qr(e, t) {
|
|
5947
5996
|
if (t <= 0) return 0;
|
|
5948
5997
|
let n = 0;
|
|
5949
5998
|
for (let r = 0; r < e.length; r++) if (/[0-9]/.test(e[r]) && (n += 1, n === t)) return r + 1;
|
|
5950
5999
|
return e.length;
|
|
5951
6000
|
}
|
|
5952
|
-
function
|
|
6001
|
+
function $r(e) {
|
|
5953
6002
|
if (!J) return null;
|
|
5954
6003
|
try {
|
|
5955
|
-
return
|
|
6004
|
+
return Xr(e, J.getExampleNumber(e, J.examples)?.formatInternational()) || null;
|
|
5956
6005
|
} catch {
|
|
5957
6006
|
return null;
|
|
5958
6007
|
}
|
|
5959
6008
|
}
|
|
5960
|
-
function
|
|
6009
|
+
function ei(e) {
|
|
5961
6010
|
if (!J || !e) return null;
|
|
5962
6011
|
try {
|
|
5963
6012
|
if (!J.isValidPhoneNumber(e)) return !1;
|
|
@@ -5967,7 +6016,7 @@ function Jr(e) {
|
|
|
5967
6016
|
return null;
|
|
5968
6017
|
}
|
|
5969
6018
|
}
|
|
5970
|
-
function
|
|
6019
|
+
function ti(e) {
|
|
5971
6020
|
if (!J) return null;
|
|
5972
6021
|
try {
|
|
5973
6022
|
let t = J.getExampleNumber(e, J.examples);
|
|
@@ -5976,7 +6025,7 @@ function Yr(e) {
|
|
|
5976
6025
|
return null;
|
|
5977
6026
|
}
|
|
5978
6027
|
}
|
|
5979
|
-
function
|
|
6028
|
+
function ni(e, t, n) {
|
|
5980
6029
|
try {
|
|
5981
6030
|
let r = J.parsePhoneNumber(t, e), i = r?.nationalNumber;
|
|
5982
6031
|
return !i || r.country !== e || i.length > n || !t.endsWith(i) ? null : i;
|
|
@@ -5984,7 +6033,7 @@ function Xr(e, t, n) {
|
|
|
5984
6033
|
return null;
|
|
5985
6034
|
}
|
|
5986
6035
|
}
|
|
5987
|
-
function
|
|
6036
|
+
function ri(e) {
|
|
5988
6037
|
if (!J || !e?.trim().startsWith("+")) return null;
|
|
5989
6038
|
try {
|
|
5990
6039
|
let t = new J.AsYouType();
|
|
@@ -5998,7 +6047,7 @@ function Zr(e) {
|
|
|
5998
6047
|
return null;
|
|
5999
6048
|
}
|
|
6000
6049
|
}
|
|
6001
|
-
var
|
|
6050
|
+
var ii = class extends e {
|
|
6002
6051
|
static formAssociated = !0;
|
|
6003
6052
|
static get observedAttributes() {
|
|
6004
6053
|
return [
|
|
@@ -6018,7 +6067,7 @@ var Qr = class extends e {
|
|
|
6018
6067
|
} catch {
|
|
6019
6068
|
this._internals = null;
|
|
6020
6069
|
}
|
|
6021
|
-
this._defaultCountry =
|
|
6070
|
+
this._defaultCountry = Kr(), this._country = this._defaultCountry, this._national = "", this._active = -1, this._committedValue = "";
|
|
6022
6071
|
}
|
|
6023
6072
|
connectedCallback() {
|
|
6024
6073
|
if (!this._rendered) {
|
|
@@ -6045,19 +6094,19 @@ var Qr = class extends e {
|
|
|
6045
6094
|
this.value = this._defaultValue || "";
|
|
6046
6095
|
}
|
|
6047
6096
|
get value() {
|
|
6048
|
-
return this._national ? `+${
|
|
6097
|
+
return this._national ? `+${Nn(this._country)}${this._national}` : "";
|
|
6049
6098
|
}
|
|
6050
6099
|
set value(e) {
|
|
6051
|
-
let t = String(e ?? "").trim(), n =
|
|
6100
|
+
let t = String(e ?? "").trim(), n = ri(t);
|
|
6052
6101
|
if (n) this._country = n.country, this._national = n.national.replace(/[^0-9]/g, "");
|
|
6053
6102
|
else if (t.startsWith("+")) {
|
|
6054
|
-
let e = t.replace(/[^0-9]/g, ""), n = String(
|
|
6103
|
+
let e = t.replace(/[^0-9]/g, ""), n = String(Nn(this._country));
|
|
6055
6104
|
n && e.startsWith(n) && (e = e.slice(n.length)), this._national = e;
|
|
6056
6105
|
} else this._national = t.replace(/[^0-9]/g, "");
|
|
6057
6106
|
n && this.getAttribute("country") !== this._country ? this.setAttribute("country", this._country) : this._rendered && this.render(), this._committedValue = this.value, this._syncMirror();
|
|
6058
6107
|
}
|
|
6059
6108
|
_syncMirror() {
|
|
6060
|
-
|
|
6109
|
+
z(this, this.value);
|
|
6061
6110
|
}
|
|
6062
6111
|
_emitInput() {
|
|
6063
6112
|
this.dispatchEvent(new Event("input", { bubbles: !0 }));
|
|
@@ -6067,30 +6116,30 @@ var Qr = class extends e {
|
|
|
6067
6116
|
}
|
|
6068
6117
|
render() {
|
|
6069
6118
|
this._defaultValue === void 0 && (this._defaultValue = this.getAttribute("value") || ""), this._country = this.getAttribute("country") || this._country;
|
|
6070
|
-
let e = this.getAttribute("placeholder") ||
|
|
6119
|
+
let e = this.getAttribute("placeholder") || $r(this._country) || "Enter phone number";
|
|
6071
6120
|
this.id ||= `wui-phone-${Math.random().toString(36).slice(2, 9)}`;
|
|
6072
6121
|
let t = `${this.id}-listbox`;
|
|
6073
6122
|
this._listboxId = t, this.innerHTML = `
|
|
6074
6123
|
<div class="phone-input-wrap">
|
|
6075
6124
|
<div class="phone-country-adornment">
|
|
6076
|
-
<button type="button" class="country-toggle" aria-label="Choose country" aria-haspopup="listbox" aria-expanded="false" aria-controls="${
|
|
6077
|
-
<span class="${
|
|
6078
|
-
${
|
|
6079
|
-
<span class="phone-dial" data-dial>+${
|
|
6125
|
+
<button type="button" class="country-toggle" aria-label="Choose country" aria-haspopup="listbox" aria-expanded="false" aria-controls="${ai(t)}"${this.hasAttribute("disabled") ? " disabled" : ""}>
|
|
6126
|
+
<span class="${qr(this._country)}" data-flag aria-hidden="true"></span>
|
|
6127
|
+
${V("chevron-down", { className: "phone-chevron" })}
|
|
6128
|
+
<span class="phone-dial" data-dial>+${Nn(this._country)}</span>
|
|
6080
6129
|
</button>
|
|
6081
|
-
<div class="country-dropdown-menu" role="listbox" id="${
|
|
6082
|
-
<div class="dropdown-search-wrapper"><span class="dropdown-search-icon">${
|
|
6130
|
+
<div class="country-dropdown-menu" role="listbox" id="${ai(t)}" tabindex="-1" hidden>
|
|
6131
|
+
<div class="dropdown-search-wrapper"><span class="dropdown-search-icon">${V("search")}</span><input type="text" class="dropdown-search-input" placeholder="Search country or code" aria-label="Search countries" aria-controls="${ai(t)}" aria-autocomplete="list" /></div>
|
|
6083
6132
|
<div class="country-list-scroll"><div class="country-empty" hidden>No countries found</div></div>
|
|
6084
6133
|
</div>
|
|
6085
6134
|
</div>
|
|
6086
|
-
<input type="tel" class="input" placeholder="${
|
|
6135
|
+
<input type="tel" class="input" placeholder="${ai(e)}" value="${ai(Zr(this._country, this._national))}"${this.getAttribute("aria-label") ? ` aria-label="${ai(this.getAttribute("aria-label"))}"` : ""}${this.getAttribute("aria-describedby") ? ` aria-describedby="${ai(this.getAttribute("aria-describedby"))}"` : ""}${this.hasAttribute("required") ? " required aria-required=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""} />
|
|
6087
6136
|
</div>
|
|
6088
|
-
<div class="field-error" data-phone-error hidden></div>`, this._rendered = !0,
|
|
6137
|
+
<div class="field-error" data-phone-error hidden></div>`, this._rendered = !0, z(this, this.value), this._wire();
|
|
6089
6138
|
}
|
|
6090
6139
|
_ensureItems() {
|
|
6091
6140
|
let e = this.querySelector(".country-list-scroll");
|
|
6092
6141
|
if (!e || e.querySelector(".country-dropdown-item")) return;
|
|
6093
|
-
let t = this._listboxId, n =
|
|
6142
|
+
let t = this._listboxId, n = Mn.map(([e, n, r], i) => `<button type="button" role="option" id="${ai(`${t}-opt-${i}`)}" class="country-dropdown-item${e === this._country ? " selected" : ""}" data-iso="${e}" aria-selected="${e === this._country}"><span class="${qr(e)}" aria-hidden="true"></span><span class="country-name-text">${n}<span class="country-code-text">+${r}</span></span></button>`).join("");
|
|
6094
6143
|
e.insertAdjacentHTML("afterbegin", n);
|
|
6095
6144
|
}
|
|
6096
6145
|
_itemEls() {
|
|
@@ -6103,7 +6152,7 @@ var Qr = class extends e {
|
|
|
6103
6152
|
this._teardown();
|
|
6104
6153
|
let e = this.querySelector(".country-toggle"), t = this.querySelector(".phone-input-wrap"), n = this.querySelector(".country-dropdown-menu"), r = this.querySelector(".dropdown-search-input"), i = this.querySelector(".country-list-scroll"), a = this.querySelector(".country-empty"), o = this.querySelector("input[type=tel]"), s = this.querySelector("[data-flag]"), c = this.querySelector("[data-dial]");
|
|
6105
6154
|
if (!e || !n) return;
|
|
6106
|
-
let l = () => !n.hidden, u = () =>
|
|
6155
|
+
let l = () => !n.hidden, u = () => I(t || e, n), d = (e) => {
|
|
6107
6156
|
let t = this._visibleItems();
|
|
6108
6157
|
this._active = e;
|
|
6109
6158
|
for (let e of this._itemEls()) e.classList.remove("is-active");
|
|
@@ -6120,12 +6169,12 @@ var Qr = class extends e {
|
|
|
6120
6169
|
}
|
|
6121
6170
|
a && (a.hidden = n > 0);
|
|
6122
6171
|
}, h = (e) => {
|
|
6123
|
-
this._country = e, this.getAttribute("country") !== e && (this._suppressCountryRender = !0, this.setAttribute("country", e), this._suppressCountryRender = !1), s && (s.className =
|
|
6172
|
+
this._country = e, this.getAttribute("country") !== e && (this._suppressCountryRender = !0, this.setAttribute("country", e), this._suppressCountryRender = !1), s && (s.className = qr(e)), c && (c.textContent = `+${Nn(e)}`);
|
|
6124
6173
|
for (let t of this._itemEls()) {
|
|
6125
6174
|
let n = t.dataset.iso === e;
|
|
6126
6175
|
t.classList.toggle("selected", n), t.setAttribute("aria-selected", String(n));
|
|
6127
6176
|
}
|
|
6128
|
-
!this.getAttribute("placeholder") && o && (o.placeholder =
|
|
6177
|
+
!this.getAttribute("placeholder") && o && (o.placeholder = $r(e) || "Enter phone number"), o && this._national && (o.value = Zr(e, this._national)), p(), this._syncMirror(), this._emitChange(), o?.focus();
|
|
6129
6178
|
}, g = (t) => {
|
|
6130
6179
|
let n = this._visibleItems();
|
|
6131
6180
|
if (t.key === "ArrowDown") {
|
|
@@ -6159,7 +6208,7 @@ var Qr = class extends e {
|
|
|
6159
6208
|
let _ = this.querySelector("[data-phone-error]"), v = (e) => {
|
|
6160
6209
|
if (o.classList.toggle("is-invalid", e), e ? o.setAttribute("aria-invalid", "true") : o.removeAttribute("aria-invalid"), _) {
|
|
6161
6210
|
if (e) {
|
|
6162
|
-
let e =
|
|
6211
|
+
let e = $r(this._country);
|
|
6163
6212
|
_.textContent = e ? `Enter a valid phone number, e.g. ${e}` : "Enter a valid phone number";
|
|
6164
6213
|
}
|
|
6165
6214
|
_.hidden = !e;
|
|
@@ -6167,35 +6216,35 @@ var Qr = class extends e {
|
|
|
6167
6216
|
};
|
|
6168
6217
|
o.addEventListener("input", (e) => {
|
|
6169
6218
|
e.stopPropagation();
|
|
6170
|
-
let t = o.selectionStart ?? o.value.length, n = o.value.slice(0, t).replace(/[^0-9]/g, "").length, r = o.value.replace(/[^0-9]/g, ""), i =
|
|
6219
|
+
let t = o.selectionStart ?? o.value.length, n = o.value.slice(0, t).replace(/[^0-9]/g, "").length, r = o.value.replace(/[^0-9]/g, ""), i = ti(this._country);
|
|
6171
6220
|
if (i && r.length > i) {
|
|
6172
|
-
let e =
|
|
6221
|
+
let e = ni(this._country, r, i);
|
|
6173
6222
|
e ? (n = Math.max(0, n - (r.length - e.length)), r = e) : r = r.slice(0, i);
|
|
6174
6223
|
}
|
|
6175
6224
|
this._national = r;
|
|
6176
|
-
let a =
|
|
6225
|
+
let a = Zr(this._country, this._national);
|
|
6177
6226
|
if (o.value !== a) {
|
|
6178
6227
|
o.value = a;
|
|
6179
|
-
let e =
|
|
6228
|
+
let e = Qr(a, Math.min(n, r.length));
|
|
6180
6229
|
o.setSelectionRange(e, e);
|
|
6181
6230
|
}
|
|
6182
|
-
this._syncMirror(), this._emitInput(), o.classList.contains("is-invalid") && (!this._national ||
|
|
6231
|
+
this._syncMirror(), this._emitInput(), o.classList.contains("is-invalid") && (!this._national || ei(this.value) === !0) && v(!1);
|
|
6183
6232
|
}), o.addEventListener("change", (e) => e.stopPropagation()), o.addEventListener("blur", () => {
|
|
6184
|
-
v(this._national.length > 0 &&
|
|
6233
|
+
v(this._national.length > 0 && ei(this.value) === !1), this.value !== this._committedValue && this._emitChange();
|
|
6185
6234
|
}), o.addEventListener("paste", (e) => {
|
|
6186
|
-
let t =
|
|
6187
|
-
t && (e.preventDefault(), this._national = t.national.replace(/[^0-9]/g, ""), t.country === this._country ? o.value =
|
|
6235
|
+
let t = ri(e.clipboardData?.getData("text"));
|
|
6236
|
+
t && (e.preventDefault(), this._national = t.national.replace(/[^0-9]/g, ""), t.country === this._country ? o.value = Zr(this._country, this._national) : this.setAttribute("country", t.country), this._syncMirror(), this._emitInput(), this._emitChange(), this.querySelector("input[type=tel]")?.focus());
|
|
6188
6237
|
}), this._bindGlobal = () => {
|
|
6189
6238
|
this._teardownGlobals?.(), this._onDocClick = (e) => {
|
|
6190
6239
|
l() && !this.contains(e.target) && p();
|
|
6191
|
-
}, document.addEventListener("click", this._onDocClick),
|
|
6240
|
+
}, document.addEventListener("click", this._onDocClick), L(this, () => {
|
|
6192
6241
|
l() && u();
|
|
6193
6242
|
});
|
|
6194
6243
|
}, this._teardownGlobals = () => {
|
|
6195
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null),
|
|
6196
|
-
}, this._bindGlobal(),
|
|
6197
|
-
if (!(!e || !o.isConnected) && (this._national && (o.value =
|
|
6198
|
-
let e =
|
|
6244
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), R(this);
|
|
6245
|
+
}, this._bindGlobal(), Yr().then((e) => {
|
|
6246
|
+
if (!(!e || !o.isConnected) && (this._national && (o.value = Zr(this._country, this._national)), !this.getAttribute("placeholder"))) {
|
|
6247
|
+
let e = $r(this._country);
|
|
6199
6248
|
e && (o.placeholder = e);
|
|
6200
6249
|
}
|
|
6201
6250
|
}), this._syncMirror();
|
|
@@ -6206,7 +6255,7 @@ var Qr = class extends e {
|
|
|
6206
6255
|
disconnectedCallback() {
|
|
6207
6256
|
this._teardown();
|
|
6208
6257
|
}
|
|
6209
|
-
},
|
|
6258
|
+
}, ai = (e) => String(e ?? "").replace(/"/g, """).replace(/</g, "<"), oi = class extends e {
|
|
6210
6259
|
static formAssociated = !0;
|
|
6211
6260
|
static get observedAttributes() {
|
|
6212
6261
|
return [
|
|
@@ -6351,7 +6400,7 @@ var Qr = class extends e {
|
|
|
6351
6400
|
aria-valuenow="${this._value}"
|
|
6352
6401
|
aria-valuetext="${this._formatValue(this._value)}"
|
|
6353
6402
|
${a ? "disabled" : ""}
|
|
6354
|
-
aria-label="${
|
|
6403
|
+
aria-label="${si(this.getAttribute("aria-label") || "Value")}"
|
|
6355
6404
|
></button>
|
|
6356
6405
|
`}
|
|
6357
6406
|
${this.hasAttribute("show-value") ? n ? `<span class="slider-value">${this._formatValue(this._start)} to ${this._formatValue(this._end)}</span>` : `<span class="slider-value">${this._formatValue(this._value)}</span>` : ""}
|
|
@@ -6386,7 +6435,7 @@ var Qr = class extends e {
|
|
|
6386
6435
|
this._isRange() ? this._syncRangeMirrors() : this._syncSingleMirror();
|
|
6387
6436
|
}
|
|
6388
6437
|
_syncSingleMirror() {
|
|
6389
|
-
this.getAttribute("name") &&
|
|
6438
|
+
this.getAttribute("name") && z(this, String(this._value));
|
|
6390
6439
|
}
|
|
6391
6440
|
_syncRangeMirrors() {
|
|
6392
6441
|
let e = this.getAttribute("start-name") || this.getAttribute("name"), t = this.getAttribute("end-name");
|
|
@@ -6456,7 +6505,7 @@ var Qr = class extends e {
|
|
|
6456
6505
|
}, Y = (e, t) => {
|
|
6457
6506
|
let n = Number.parseFloat(e);
|
|
6458
6507
|
return Number.isFinite(n) ? n : t;
|
|
6459
|
-
},
|
|
6508
|
+
}, si = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), ci = /* @__PURE__ */ new Set(), li = ".wui-sortable-handle", ui = "a[href],button,input,select,textarea,label,summary,[contenteditable='true'],[role='button'],[role='link']", di = 4, fi = 8, pi = 250, mi = 48, hi = 18, gi = class extends e {
|
|
6460
6509
|
static get observedAttributes() {
|
|
6461
6510
|
return ["name", "disabled"];
|
|
6462
6511
|
}
|
|
@@ -6466,10 +6515,10 @@ var Qr = class extends e {
|
|
|
6466
6515
|
}, this._onSelectStart = (e) => e.preventDefault(), this._scrollTick = this._scrollTick.bind(this);
|
|
6467
6516
|
}
|
|
6468
6517
|
connectedCallback() {
|
|
6469
|
-
|
|
6518
|
+
ci.add(this), this.addEventListener("pointerdown", this._onPointerDown), this.addEventListener("keydown", this._onKeyDown), this.addEventListener("focusout", this._onFocusOut), this.addEventListener("dragstart", this._onDragStart), this._observer = new MutationObserver(() => this._syncMirrors()), this._observer.observe(this, { childList: !0 }), this._syncMirrors();
|
|
6470
6519
|
}
|
|
6471
6520
|
disconnectedCallback() {
|
|
6472
|
-
|
|
6521
|
+
ci.delete(this), this.removeEventListener("pointerdown", this._onPointerDown), this.removeEventListener("keydown", this._onKeyDown), this.removeEventListener("focusout", this._onFocusOut), this.removeEventListener("dragstart", this._onDragStart), this._observer?.disconnect(), this._observer = null, this._abort();
|
|
6473
6522
|
}
|
|
6474
6523
|
attributeChangedCallback(e) {
|
|
6475
6524
|
e === "disabled" && this._abort(), this.isConnected && this._syncMirrors();
|
|
@@ -6504,7 +6553,7 @@ var Qr = class extends e {
|
|
|
6504
6553
|
return this.getAttribute("orientation") === "horizontal";
|
|
6505
6554
|
}
|
|
6506
6555
|
_syncMirrors() {
|
|
6507
|
-
|
|
6556
|
+
B(this, this.order);
|
|
6508
6557
|
}
|
|
6509
6558
|
_insertAt(e, t) {
|
|
6510
6559
|
let n = this._items();
|
|
@@ -6522,7 +6571,7 @@ var Qr = class extends e {
|
|
|
6522
6571
|
}
|
|
6523
6572
|
_peers() {
|
|
6524
6573
|
let e = this.getAttribute("group");
|
|
6525
|
-
return [...
|
|
6574
|
+
return [...ci].filter((t) => t === this || e && t.getAttribute("group") === e && !t.hasAttribute("disabled"));
|
|
6526
6575
|
}
|
|
6527
6576
|
_labelOf(e) {
|
|
6528
6577
|
return e.getAttribute("data-label") || e.textContent.replace(/\s+/g, " ").trim() || e.getAttribute("data-id");
|
|
@@ -6539,10 +6588,10 @@ var Qr = class extends e {
|
|
|
6539
6588
|
if (this._drag || this._kb || this.hasAttribute("disabled") || e.pointerType === "mouse" && e.button !== 0) return;
|
|
6540
6589
|
let t = this._itemFrom(e.target);
|
|
6541
6590
|
if (!t || this._itemDisabled(t)) return;
|
|
6542
|
-
let n = t.querySelector(`:scope > ${
|
|
6591
|
+
let n = t.querySelector(`:scope > ${li}`), r = !!n && n.contains(e.target);
|
|
6543
6592
|
if (this.hasAttribute("handle") && !r) return;
|
|
6544
6593
|
if (!r) {
|
|
6545
|
-
let n = e.target.closest?.(
|
|
6594
|
+
let n = e.target.closest?.(ui);
|
|
6546
6595
|
if (n && n !== t && t.contains(n)) return;
|
|
6547
6596
|
}
|
|
6548
6597
|
let i = e.pointerType === "touch" && !r, a = {
|
|
@@ -6552,7 +6601,7 @@ var Qr = class extends e {
|
|
|
6552
6601
|
startY: e.clientY,
|
|
6553
6602
|
x: e.clientX,
|
|
6554
6603
|
y: e.clientY,
|
|
6555
|
-
slop: e.pointerType === "touch" ?
|
|
6604
|
+
slop: e.pointerType === "touch" ? fi : di,
|
|
6556
6605
|
ready: !i,
|
|
6557
6606
|
started: !1,
|
|
6558
6607
|
timer: null,
|
|
@@ -6562,7 +6611,7 @@ var Qr = class extends e {
|
|
|
6562
6611
|
};
|
|
6563
6612
|
this._drag = a, i && (a.timer = setTimeout(() => {
|
|
6564
6613
|
a.timer = null, a.ready = !0, this._begin();
|
|
6565
|
-
},
|
|
6614
|
+
}, pi)), document.addEventListener("pointermove", this._onDocMove), document.addEventListener("pointerup", this._onDocUp), document.addEventListener("pointercancel", this._onDocCancel), document.addEventListener("keydown", this._onDocKey, !0), document.addEventListener("touchmove", this._onDocTouchMove, { passive: !1 });
|
|
6566
6615
|
}
|
|
6567
6616
|
_onDocMove(e) {
|
|
6568
6617
|
let t = this._drag;
|
|
@@ -6618,7 +6667,7 @@ var Qr = class extends e {
|
|
|
6618
6667
|
_scrollTick() {
|
|
6619
6668
|
let e = this._drag;
|
|
6620
6669
|
if (!e?.started) return;
|
|
6621
|
-
let t =
|
|
6670
|
+
let t = vi(e.list), n = t ? t.getBoundingClientRect() : null, r = Math.max(n?.top ?? 0, 0), i = Math.min(n?.bottom ?? window.innerHeight, window.innerHeight), a = Math.max(n?.left ?? 0, 0), o = Math.min(n?.right ?? window.innerWidth, window.innerWidth), s = _i(e.y, r, i), c = _i(e.x, a, o);
|
|
6622
6671
|
(c || s) && (t ? (t.scrollTop += s, t.scrollLeft += c) : window.scrollBy(c, s), this._update()), e.raf = requestAnimationFrame(this._scrollTick);
|
|
6623
6672
|
}
|
|
6624
6673
|
_finish(e) {
|
|
@@ -6662,7 +6711,7 @@ var Qr = class extends e {
|
|
|
6662
6711
|
}
|
|
6663
6712
|
_onKeyDown(e) {
|
|
6664
6713
|
if (this.hasAttribute("disabled")) return;
|
|
6665
|
-
let t = e.target.closest?.(
|
|
6714
|
+
let t = e.target.closest?.(li), n = t && t.parentElement?.parentElement === this ? t.parentElement : null;
|
|
6666
6715
|
if (!n || this._itemDisabled(n) || this._drag) return;
|
|
6667
6716
|
let r = e.key;
|
|
6668
6717
|
if (!this._kb) {
|
|
@@ -6721,10 +6770,10 @@ var Qr = class extends e {
|
|
|
6721
6770
|
e(), n && document.activeElement !== t && t.focus(), this._moving = !1;
|
|
6722
6771
|
}
|
|
6723
6772
|
};
|
|
6724
|
-
function
|
|
6725
|
-
return e < t +
|
|
6773
|
+
function _i(e, t, n) {
|
|
6774
|
+
return e < t + mi ? -Math.ceil(hi * Math.min(1, (t + mi - e) / mi)) : e > n - mi ? Math.ceil(hi * Math.min(1, (e - (n - mi)) / mi)) : 0;
|
|
6726
6775
|
}
|
|
6727
|
-
function
|
|
6776
|
+
function vi(e) {
|
|
6728
6777
|
for (let t = e.parentElement; t && t !== document.body && t !== document.documentElement; t = t.parentElement) {
|
|
6729
6778
|
let e = getComputedStyle(t), n = /(auto|scroll)/.test(e.overflowY) && t.scrollHeight > t.clientHeight, r = /(auto|scroll)/.test(e.overflowX) && t.scrollWidth > t.clientWidth;
|
|
6730
6779
|
if (n || r) return t;
|
|
@@ -6733,7 +6782,7 @@ function fi(e) {
|
|
|
6733
6782
|
}
|
|
6734
6783
|
//#endregion
|
|
6735
6784
|
//#region src/WuiTagInput.js
|
|
6736
|
-
var
|
|
6785
|
+
var yi = class extends e {
|
|
6737
6786
|
static formAssociated = !0;
|
|
6738
6787
|
_accessibleName() {
|
|
6739
6788
|
return this.getAttribute("aria-label") || this.getAttribute("placeholder") || "Add tags";
|
|
@@ -6799,30 +6848,30 @@ var pi = class extends e {
|
|
|
6799
6848
|
return this._values.slice();
|
|
6800
6849
|
}
|
|
6801
6850
|
set values(e) {
|
|
6802
|
-
this._values = Array.isArray(e) ? e.map(String) : [],
|
|
6851
|
+
this._values = Array.isArray(e) ? e.map(String) : [], B(this, this._values), this._rendered && this._renderControl();
|
|
6803
6852
|
}
|
|
6804
6853
|
render() {
|
|
6805
6854
|
let e = this.getAttribute("size"), t = e === "sm" ? " search-select-sm" : e === "lg" ? " search-select-lg" : "";
|
|
6806
|
-
|
|
6855
|
+
B(this, this._values), this.innerHTML = `
|
|
6807
6856
|
<div class="search-select${t}">
|
|
6808
6857
|
<div class="input search-select-control search-select-multi"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " aria-disabled=\"true\"" : ""}>
|
|
6809
|
-
<div class="ms-chips" data-chips><input type="text" class="ms-input" data-input aria-label="${
|
|
6858
|
+
<div class="ms-chips" data-chips><input type="text" class="ms-input" data-input aria-label="${xi(this._accessibleName())}" placeholder="${xi(this.getAttribute("placeholder") || "Add…")}" autocomplete="off"${this.hasAttribute("disabled") ? " disabled" : ""}/></div>
|
|
6810
6859
|
</div>
|
|
6811
|
-
</div>`, this._rendered = !0,
|
|
6860
|
+
</div>`, this._rendered = !0, B(this, this._values), this._renderControl(), this._wire();
|
|
6812
6861
|
}
|
|
6813
6862
|
_renderControl() {
|
|
6814
6863
|
let e = this.querySelector("[data-chips]");
|
|
6815
6864
|
if (e) {
|
|
6816
6865
|
for (let t of e.querySelectorAll(":scope > .chip")) t.remove();
|
|
6817
|
-
this._values.length && e.querySelector("[data-input]").insertAdjacentHTML("beforebegin", this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${
|
|
6866
|
+
this._values.length && e.querySelector("[data-input]").insertAdjacentHTML("beforebegin", this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${bi(e)}</span><button type="button" class="chip-remove" data-remove="${xi(e)}" aria-label="Remove ${xi(e)}">${V("x")}</button></span>`).join(""));
|
|
6818
6867
|
}
|
|
6819
6868
|
}
|
|
6820
6869
|
_wire() {
|
|
6821
6870
|
this._teardown();
|
|
6822
6871
|
let e = this.querySelector(".search-select-control"), t = this.querySelector("[data-input]");
|
|
6823
6872
|
if (!e || !t) return;
|
|
6824
|
-
let n = () => this.hasAttribute("disabled"), r = (this.getAttribute("separators") || "enter,comma").split(",").map((e) => e.trim()), i = this.getAttribute("max-tags"), a = this.hasAttribute("allow-duplicates"), o = new Set(r.map(
|
|
6825
|
-
|
|
6873
|
+
let n = () => this.hasAttribute("disabled"), r = (this.getAttribute("separators") || "enter,comma").split(",").map((e) => e.trim()), i = this.getAttribute("max-tags"), a = this.hasAttribute("allow-duplicates"), o = new Set(r.map(wr).filter(Boolean)), s = () => {
|
|
6874
|
+
B(this, this._values), this.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
6826
6875
|
}, c = (e) => {
|
|
6827
6876
|
let t = e.trim();
|
|
6828
6877
|
if (!t || i && this._values.length >= parseInt(i, 10)) return;
|
|
@@ -6853,9 +6902,9 @@ var pi = class extends e {
|
|
|
6853
6902
|
e.preventDefault();
|
|
6854
6903
|
let n = e.clipboardData.getData("text/plain"), a = [];
|
|
6855
6904
|
for (let e of r) {
|
|
6856
|
-
let t =
|
|
6857
|
-
if (
|
|
6858
|
-
a.push(...
|
|
6905
|
+
let t = Tr(e) ?? e;
|
|
6906
|
+
if (Dr(n, [t])) {
|
|
6907
|
+
a.push(...Er(n, [t]));
|
|
6859
6908
|
break;
|
|
6860
6909
|
}
|
|
6861
6910
|
}
|
|
@@ -6883,18 +6932,18 @@ var pi = class extends e {
|
|
|
6883
6932
|
disconnectedCallback() {
|
|
6884
6933
|
this._teardown();
|
|
6885
6934
|
}
|
|
6886
|
-
},
|
|
6935
|
+
}, bi = (e) => String(e ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), xi = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), Si = (e) => String(e).padStart(2, "0"), Ci = (e, t) => `${Si(e)}:${Si(t)}`, wi = (e) => {
|
|
6887
6936
|
let t = /^(\d{2}):(\d{2})$/.exec(e || "");
|
|
6888
6937
|
return t ? {
|
|
6889
6938
|
h: +t[1],
|
|
6890
6939
|
m: +t[2]
|
|
6891
6940
|
} : null;
|
|
6892
|
-
},
|
|
6941
|
+
}, Ti = (e, t = "24") => {
|
|
6893
6942
|
if (!e) return "";
|
|
6894
|
-
if (t === "24") return
|
|
6943
|
+
if (t === "24") return Ci(e.h, e.m);
|
|
6895
6944
|
let n = e.h % 12 || 12, r = e.h >= 12 ? "PM" : "AM";
|
|
6896
|
-
return `${n}:${
|
|
6897
|
-
},
|
|
6945
|
+
return `${n}:${Si(e.m)} ${r}`;
|
|
6946
|
+
}, Ei = (e) => {
|
|
6898
6947
|
let t = String(e || "").trim().toLowerCase(), n = /^(\d{1,2})(?:[:.](\d{2})|(\d{2}))?\s*(?:([ap])\.?\s*(?:m\.?)?)?$/.exec(t);
|
|
6899
6948
|
if (!n) return null;
|
|
6900
6949
|
let r = +n[1], i = +(n[2] ?? n[3] ?? "0");
|
|
@@ -6907,7 +6956,7 @@ var pi = class extends e {
|
|
|
6907
6956
|
h: r,
|
|
6908
6957
|
m: i
|
|
6909
6958
|
};
|
|
6910
|
-
},
|
|
6959
|
+
}, Di = 0, Oi = class extends e {
|
|
6911
6960
|
static formAssociated = !0;
|
|
6912
6961
|
static get observedAttributes() {
|
|
6913
6962
|
return [
|
|
@@ -6932,7 +6981,7 @@ var pi = class extends e {
|
|
|
6932
6981
|
} catch {
|
|
6933
6982
|
this._internals = null;
|
|
6934
6983
|
}
|
|
6935
|
-
this._value = "", this._uid = `wui-tp-${++
|
|
6984
|
+
this._value = "", this._uid = `wui-tp-${++Di}`, this._typedError = "", this._typeahead = "", this._typeaheadTimer = null, this.addEventListener("focusout", (e) => {
|
|
6936
6985
|
this._isOpen?.() && e.relatedTarget && !this.contains(e.relatedTarget) && this._close({ commit: !0 });
|
|
6937
6986
|
});
|
|
6938
6987
|
}
|
|
@@ -6968,7 +7017,7 @@ var pi = class extends e {
|
|
|
6968
7017
|
return this._value;
|
|
6969
7018
|
}
|
|
6970
7019
|
set value(e) {
|
|
6971
|
-
this._value = e || "", this._typedError = "",
|
|
7020
|
+
this._value = e || "", this._typedError = "", z(this, this._value), this._syncText(), this._syncInvalid();
|
|
6972
7021
|
}
|
|
6973
7022
|
_format() {
|
|
6974
7023
|
return this.getAttribute("format") || "24";
|
|
@@ -6977,10 +7026,10 @@ var pi = class extends e {
|
|
|
6977
7026
|
return Math.max(1, parseInt(this.getAttribute("step") || "30", 10) || 30);
|
|
6978
7027
|
}
|
|
6979
7028
|
_bounds() {
|
|
6980
|
-
let e =
|
|
7029
|
+
let e = wi(this.getAttribute("min")) || {
|
|
6981
7030
|
h: 0,
|
|
6982
7031
|
m: 0
|
|
6983
|
-
}, t =
|
|
7032
|
+
}, t = wi(this.getAttribute("max")) || {
|
|
6984
7033
|
h: 23,
|
|
6985
7034
|
m: 59
|
|
6986
7035
|
};
|
|
@@ -7006,12 +7055,12 @@ var pi = class extends e {
|
|
|
7006
7055
|
}
|
|
7007
7056
|
_refusal(e) {
|
|
7008
7057
|
if (this._allowed(e.h, e.m)) return "";
|
|
7009
|
-
let t = this._format(), { min: n, max: r } = this._bounds(), i = e.h * 60 + e.m, a = (e) =>
|
|
7058
|
+
let t = this._format(), { min: n, max: r } = this._bounds(), i = e.h * 60 + e.m, a = (e) => Ti({
|
|
7010
7059
|
h: Math.floor(e / 60),
|
|
7011
7060
|
m: e % 60
|
|
7012
7061
|
}, t);
|
|
7013
7062
|
if (i < n || i > r) {
|
|
7014
|
-
let e = !!
|
|
7063
|
+
let e = !!wi(this.getAttribute("min")), t = !!wi(this.getAttribute("max"));
|
|
7015
7064
|
return e && t ? `Enter a time between ${a(n)} and ${a(r)}.` : e ? `Enter a time at or after ${a(n)}.` : `Enter a time at or before ${a(r)}.`;
|
|
7016
7065
|
}
|
|
7017
7066
|
return `Enter a time in ${this._step()}-minute steps.`;
|
|
@@ -7023,11 +7072,11 @@ var pi = class extends e {
|
|
|
7023
7072
|
<div class="timepicker">
|
|
7024
7073
|
<div class="wui-timepicker-field">
|
|
7025
7074
|
<input type="text" class="input timepicker-trigger${t}" id="${n}-input" role="combobox" aria-haspopup="dialog" aria-expanded="false" aria-controls="${n}-pop" aria-autocomplete="none" autocomplete="off" spellcheck="false">
|
|
7026
|
-
<button type="button" class="wui-timepicker-toggle" tabindex="-1" aria-label="Choose time" aria-haspopup="dialog" aria-expanded="false" aria-controls="${n}-pop">${
|
|
7075
|
+
<button type="button" class="wui-timepicker-toggle" tabindex="-1" aria-label="Choose time" aria-haspopup="dialog" aria-expanded="false" aria-controls="${n}-pop">${V("clock")}</button>
|
|
7027
7076
|
</div>
|
|
7028
7077
|
<div class="timepicker-pop" id="${n}-pop" role="dialog" aria-label="Choose time" hidden></div>
|
|
7029
7078
|
<div class="field-error wui-timepicker-error" id="${n}-error" hidden></div>
|
|
7030
|
-
</div>`, this._rendered = !0, this._syncAttrs(), this._syncText(), this._syncInvalid(),
|
|
7079
|
+
</div>`, this._rendered = !0, this._syncAttrs(), this._syncText(), this._syncInvalid(), z(this, this._value), this._wire();
|
|
7031
7080
|
}
|
|
7032
7081
|
_input() {
|
|
7033
7082
|
return this.querySelector(".timepicker-trigger");
|
|
@@ -7036,7 +7085,7 @@ var pi = class extends e {
|
|
|
7036
7085
|
return this.querySelector(".timepicker-pop");
|
|
7037
7086
|
}
|
|
7038
7087
|
_syncFormValue() {
|
|
7039
|
-
|
|
7088
|
+
z(this, this._value);
|
|
7040
7089
|
}
|
|
7041
7090
|
_syncAttrs() {
|
|
7042
7091
|
let e = this._input(), t = this.querySelector(".wui-timepicker-toggle");
|
|
@@ -7044,11 +7093,11 @@ var pi = class extends e {
|
|
|
7044
7093
|
let n = this.hasAttribute("disabled");
|
|
7045
7094
|
e.disabled = n, t && (t.disabled = n), e.placeholder = this.getAttribute("placeholder") || "Select time", this.hasAttribute("required") ? e.setAttribute("aria-required", "true") : e.removeAttribute("aria-required");
|
|
7046
7095
|
let r = this.getAttribute("aria-label");
|
|
7047
|
-
r ? e.setAttribute("aria-label", r) : e.removeAttribute("aria-label"),
|
|
7096
|
+
r ? e.setAttribute("aria-label", r) : e.removeAttribute("aria-label"), z(this, this._value), n && this._isOpen?.() && this._close({ commit: !1 });
|
|
7048
7097
|
}
|
|
7049
7098
|
_syncText() {
|
|
7050
7099
|
let e = this._input();
|
|
7051
|
-
e && (e.value =
|
|
7100
|
+
e && (e.value = Ti(wi(this._value), this._format()), this._isOpen?.() && this._syncColumns());
|
|
7052
7101
|
}
|
|
7053
7102
|
_syncInvalid() {
|
|
7054
7103
|
let e = this._input(), t = this.querySelector(".wui-timepicker-error");
|
|
@@ -7060,18 +7109,18 @@ var pi = class extends e {
|
|
|
7060
7109
|
}
|
|
7061
7110
|
_commitText() {
|
|
7062
7111
|
let e = this._input();
|
|
7063
|
-
if (!e || e.value ===
|
|
7112
|
+
if (!e || e.value === Ti(wi(this._value), this._format())) return !0;
|
|
7064
7113
|
let t = e.value.trim(), n = "";
|
|
7065
7114
|
if (t) {
|
|
7066
|
-
let e =
|
|
7115
|
+
let e = Ei(t), r = e ? this._refusal(e) : `Enter a time like ${this._format() === "12" ? "7:45 PM" : "19:45"}.`;
|
|
7067
7116
|
if (r) return this._typedError = r, this._syncInvalid(), !1;
|
|
7068
|
-
n =
|
|
7117
|
+
n = Ci(e.h, e.m);
|
|
7069
7118
|
}
|
|
7070
7119
|
let r = n !== this._value;
|
|
7071
7120
|
return this.value = n, r && this.dispatchEvent(new Event("change", { bubbles: !0 })), !0;
|
|
7072
7121
|
}
|
|
7073
7122
|
_pending() {
|
|
7074
|
-
let e =
|
|
7123
|
+
let e = Ei(this._input()?.value);
|
|
7075
7124
|
return e && this._allowed(e.h, e.m) ? e : null;
|
|
7076
7125
|
}
|
|
7077
7126
|
_columnsHtml() {
|
|
@@ -7083,17 +7132,17 @@ var pi = class extends e {
|
|
|
7083
7132
|
text: String(e || 12)
|
|
7084
7133
|
}))) + n("minute", "Minute", i.map((e) => ({
|
|
7085
7134
|
v: e,
|
|
7086
|
-
text:
|
|
7135
|
+
text: Si(e)
|
|
7087
7136
|
}))) + n("period", "AM or PM", t.map((e) => ({
|
|
7088
7137
|
v: e,
|
|
7089
7138
|
text: e.toUpperCase()
|
|
7090
7139
|
})));
|
|
7091
7140
|
} else a = n("hour", "Hour", r.map((e) => ({
|
|
7092
7141
|
v: e,
|
|
7093
|
-
text:
|
|
7142
|
+
text: Si(e)
|
|
7094
7143
|
}))) + n("minute", "Minute", i.map((e) => ({
|
|
7095
7144
|
v: e,
|
|
7096
|
-
text:
|
|
7145
|
+
text: Si(e)
|
|
7097
7146
|
})));
|
|
7098
7147
|
return `<div class="wui-timepicker-cols">${a}</div>`;
|
|
7099
7148
|
}
|
|
@@ -7133,13 +7182,13 @@ var pi = class extends e {
|
|
|
7133
7182
|
a = r.h, o = r.m;
|
|
7134
7183
|
}
|
|
7135
7184
|
let s = this._input();
|
|
7136
|
-
s.value =
|
|
7185
|
+
s.value = Ti({
|
|
7137
7186
|
h: a,
|
|
7138
7187
|
m: o
|
|
7139
7188
|
}, this._format()), this._typedError = "", this._syncInvalid(), this._syncColumns();
|
|
7140
7189
|
}
|
|
7141
7190
|
_position() {
|
|
7142
|
-
|
|
7191
|
+
I(this.querySelector(".wui-timepicker-field"), this._pop());
|
|
7143
7192
|
}
|
|
7144
7193
|
_onColumnKey(e) {
|
|
7145
7194
|
let t = e.target.closest?.(".timepicker-option"), n = t?.closest(".wui-timepicker-col");
|
|
@@ -7234,29 +7283,29 @@ var pi = class extends e {
|
|
|
7234
7283
|
this._popClick = !1, i() && !t && !this.contains(e.target) && this._close({ commit: !0 });
|
|
7235
7284
|
}, document.addEventListener("click", this._onDocClick), this._onDocKey = (e) => {
|
|
7236
7285
|
i() && e.key === "Escape" && this._close({ commit: !1 });
|
|
7237
|
-
}, document.addEventListener("keydown", this._onDocKey),
|
|
7286
|
+
}, document.addEventListener("keydown", this._onDocKey), L(this, () => {
|
|
7238
7287
|
i() && this._position();
|
|
7239
7288
|
});
|
|
7240
7289
|
}, this._bindGlobal();
|
|
7241
7290
|
}
|
|
7242
7291
|
_teardown() {
|
|
7243
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null),
|
|
7292
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), R(this), clearTimeout(this._typeaheadTimer), this._typeaheadTimer = null, this._typeahead = "";
|
|
7244
7293
|
}
|
|
7245
7294
|
disconnectedCallback() {
|
|
7246
7295
|
this._teardown();
|
|
7247
7296
|
}
|
|
7248
|
-
},
|
|
7297
|
+
}, ki = "wui-tour-step", Ai = "wui-tour-seen:", ji = {
|
|
7249
7298
|
back: "Back",
|
|
7250
7299
|
next: "Next",
|
|
7251
7300
|
skip: "Skip",
|
|
7252
7301
|
done: "Done"
|
|
7253
|
-
},
|
|
7302
|
+
}, Mi = {
|
|
7254
7303
|
back: "back-label",
|
|
7255
7304
|
next: "next-label",
|
|
7256
7305
|
skip: "skip-label",
|
|
7257
7306
|
done: "done-label"
|
|
7258
|
-
},
|
|
7259
|
-
function
|
|
7307
|
+
}, Ni = 4, Pi = 0;
|
|
7308
|
+
function Fi(e = Ai, t = globalThis.localStorage) {
|
|
7260
7309
|
return {
|
|
7261
7310
|
isSeen: async (n) => t.getItem(e + n) === "1",
|
|
7262
7311
|
markSeen: async (n) => {
|
|
@@ -7264,7 +7313,7 @@ function ki(e = wi, t = globalThis.localStorage) {
|
|
|
7264
7313
|
}
|
|
7265
7314
|
};
|
|
7266
7315
|
}
|
|
7267
|
-
var
|
|
7316
|
+
var Ii = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ? !1 : e.getClientRects().length > 0, Li = class extends e {
|
|
7268
7317
|
static get observedAttributes() {
|
|
7269
7318
|
return ["open"];
|
|
7270
7319
|
}
|
|
@@ -7284,17 +7333,17 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
|
|
|
7284
7333
|
return this.getAttribute("tour-id") || "";
|
|
7285
7334
|
}
|
|
7286
7335
|
_stepList() {
|
|
7287
|
-
return Array.from(this.querySelectorAll(`:scope > ${
|
|
7336
|
+
return Array.from(this.querySelectorAll(`:scope > ${ki}`), (e) => ({
|
|
7288
7337
|
target: e.getAttribute("target") || "",
|
|
7289
7338
|
title: e.getAttribute("title") || void 0,
|
|
7290
7339
|
description: e.textContent.trim()
|
|
7291
7340
|
}));
|
|
7292
7341
|
}
|
|
7293
7342
|
_store() {
|
|
7294
|
-
return this.seenStore ? this.seenStore : this.getAttribute("seen-store") === "local" ?
|
|
7343
|
+
return this.seenStore ? this.seenStore : this.getAttribute("seen-store") === "local" ? Fi() : globalThis.window?.WUI?.tour?.seenStore || null;
|
|
7295
7344
|
}
|
|
7296
7345
|
_label(e) {
|
|
7297
|
-
return this.getAttribute(
|
|
7346
|
+
return this.getAttribute(Mi[e]) || ji[e];
|
|
7298
7347
|
}
|
|
7299
7348
|
async start() {
|
|
7300
7349
|
if (this._running) return;
|
|
@@ -7334,7 +7383,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
|
|
|
7334
7383
|
let e = r[i];
|
|
7335
7384
|
if (await this._beforeStep(e, i), n !== this._run) return null;
|
|
7336
7385
|
let t = document.querySelector(e.target);
|
|
7337
|
-
if (
|
|
7386
|
+
if (Ii(t)) return {
|
|
7338
7387
|
index: i,
|
|
7339
7388
|
target: t
|
|
7340
7389
|
};
|
|
@@ -7353,7 +7402,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
|
|
|
7353
7402
|
})), await Promise.all(n), typeof this.onBeforeStep == "function" && await this.onBeforeStep(e, t);
|
|
7354
7403
|
}
|
|
7355
7404
|
_build() {
|
|
7356
|
-
let e = `wui-tour-${++
|
|
7405
|
+
let e = `wui-tour-${++Pi}`, t = document.createElement("div");
|
|
7357
7406
|
t.className = "wui-tour-layer", t.innerHTML = `
|
|
7358
7407
|
<div class="wui-tour-spot" aria-hidden="true"></div>
|
|
7359
7408
|
<div class="wui-tour-card" role="dialog" aria-modal="true" tabindex="-1" aria-labelledby="${e}-title" aria-describedby="${e}-text">
|
|
@@ -7370,7 +7419,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
|
|
|
7370
7419
|
</div>
|
|
7371
7420
|
<div class="visually-hidden" role="status" aria-live="polite"></div>`, document.body.appendChild(t), this._layer = t, this._spot = t.querySelector(".wui-tour-spot"), this._card = t.querySelector(".wui-tour-card"), this._live = t.querySelector("[role=status]"), this._card.querySelector(".wui-tour-skip").addEventListener("click", () => this._close("skipped")), this._card.querySelector(".wui-tour-back").addEventListener("click", () => this._move(-1)), this._card.querySelector(".wui-tour-next").addEventListener("click", () => this._move(1)), this._onKey = (e) => this._key(e), this._onFocusIn = (e) => {
|
|
7372
7421
|
this._layer && !this._layer.contains(e.target) && this._card.focus();
|
|
7373
|
-
}, document.addEventListener("keydown", this._onKey, !0), document.addEventListener("focusin", this._onFocusIn),
|
|
7422
|
+
}, document.addEventListener("keydown", this._onKey, !0), document.addEventListener("focusin", this._onFocusIn), L(t, () => this._place());
|
|
7374
7423
|
}
|
|
7375
7424
|
_show(e) {
|
|
7376
7425
|
this._current = e;
|
|
@@ -7395,7 +7444,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
|
|
|
7395
7444
|
_place() {
|
|
7396
7445
|
if (!this._current || !this._layer) return;
|
|
7397
7446
|
let e = this._current.target.getBoundingClientRect(), t = this._spot.style;
|
|
7398
|
-
t.top = `${e.top -
|
|
7447
|
+
t.top = `${e.top - Ni}px`, t.left = `${e.left - Ni}px`, t.width = `${e.width + Ni * 2}px`, t.height = `${e.height + Ni * 2}px`, I(this._spot, this._card, { clampHeight: !0 });
|
|
7399
7448
|
}
|
|
7400
7449
|
async _move(e) {
|
|
7401
7450
|
if (!this._current || this._moving) return;
|
|
@@ -7421,7 +7470,7 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
|
|
|
7421
7470
|
}
|
|
7422
7471
|
_teardown() {
|
|
7423
7472
|
if (!this._layer) return;
|
|
7424
|
-
document.removeEventListener("keydown", this._onKey, !0), document.removeEventListener("focusin", this._onFocusIn),
|
|
7473
|
+
document.removeEventListener("keydown", this._onKey, !0), document.removeEventListener("focusin", this._onFocusIn), R(this._layer), this._layer.remove(), this._layer = null, this._current = null;
|
|
7425
7474
|
let e = this._returnFocus;
|
|
7426
7475
|
this._returnFocus = null, e?.isConnected && e.focus?.();
|
|
7427
7476
|
}
|
|
@@ -7441,11 +7490,11 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
|
|
|
7441
7490
|
detail: { reason: e }
|
|
7442
7491
|
}));
|
|
7443
7492
|
}
|
|
7444
|
-
},
|
|
7493
|
+
}, Ri = [
|
|
7445
7494
|
"none",
|
|
7446
7495
|
"single",
|
|
7447
7496
|
"multiple"
|
|
7448
|
-
],
|
|
7497
|
+
], zi = "parentId", Bi = "Loading", Vi = "Could not load. Try again.", Hi = ":scope > input[data-wui-mirror]", Ui = [
|
|
7449
7498
|
"nodes",
|
|
7450
7499
|
"selection",
|
|
7451
7500
|
"selected",
|
|
@@ -7453,14 +7502,14 @@ var Ai = (e) => !e?.isConnected || getComputedStyle(e).visibility === "hidden" ?
|
|
|
7453
7502
|
"loadChildren",
|
|
7454
7503
|
"loadUrl",
|
|
7455
7504
|
"name"
|
|
7456
|
-
],
|
|
7505
|
+
], Wi = 0;
|
|
7457
7506
|
function X(e, t, n) {
|
|
7458
7507
|
let r = document.createElement(e);
|
|
7459
7508
|
t && (r.className = t);
|
|
7460
7509
|
for (let [e, t] of Object.entries(n ?? {})) t != null && r.setAttribute(e, String(t));
|
|
7461
7510
|
return r;
|
|
7462
7511
|
}
|
|
7463
|
-
var
|
|
7512
|
+
var Gi = class extends e {
|
|
7464
7513
|
static get observedAttributes() {
|
|
7465
7514
|
return [
|
|
7466
7515
|
"selection",
|
|
@@ -7472,7 +7521,7 @@ var zi = class extends e {
|
|
|
7472
7521
|
];
|
|
7473
7522
|
}
|
|
7474
7523
|
constructor() {
|
|
7475
|
-
super(), this._uid = `wui-tree-${++
|
|
7524
|
+
super(), this._uid = `wui-tree-${++Wi}`, this._seq = 0, this._roots = [], this._byId = /* @__PURE__ */ new Map(), this._prev = null, this._staged = null, this._els = /* @__PURE__ */ new Map(), this._checked = /* @__PURE__ */ new Set(), this._selected = null, this._focusId = null, this._loader = null, this._list = null, this._live = null, this._ready = !1, this._nav = Xt({
|
|
7476
7525
|
getVisibleOptions: () => this._visible().map((e) => this._els.get(e.id)?.row),
|
|
7477
7526
|
getActive: () => this._visible().findIndex((e) => e.id === this._focusId),
|
|
7478
7527
|
setActive: (e) => this._focusNode(this._visible()[e]),
|
|
@@ -7487,7 +7536,7 @@ var zi = class extends e {
|
|
|
7487
7536
|
}
|
|
7488
7537
|
connectedCallback() {
|
|
7489
7538
|
let e = {};
|
|
7490
|
-
for (let t of
|
|
7539
|
+
for (let t of Ui) Object.hasOwn(this, t) && (e[t] = this[t], delete this[t]);
|
|
7491
7540
|
if (!this._ready) {
|
|
7492
7541
|
this._ready = !0;
|
|
7493
7542
|
let e = this._readScript();
|
|
@@ -7513,7 +7562,7 @@ var zi = class extends e {
|
|
|
7513
7562
|
}
|
|
7514
7563
|
get selection() {
|
|
7515
7564
|
let e = this.getAttribute("selection");
|
|
7516
|
-
return
|
|
7565
|
+
return Ri.includes(e) ? e : "none";
|
|
7517
7566
|
}
|
|
7518
7567
|
set selection(e) {
|
|
7519
7568
|
this.setAttribute("selection", String(e));
|
|
@@ -7557,13 +7606,13 @@ var zi = class extends e {
|
|
|
7557
7606
|
e == null ? this.removeAttribute("name") : this.setAttribute("name", String(e));
|
|
7558
7607
|
}
|
|
7559
7608
|
get loadingText() {
|
|
7560
|
-
return this.getAttribute("loading-text") ??
|
|
7609
|
+
return this.getAttribute("loading-text") ?? Bi;
|
|
7561
7610
|
}
|
|
7562
7611
|
set loadingText(e) {
|
|
7563
7612
|
this.setAttribute("loading-text", String(e ?? ""));
|
|
7564
7613
|
}
|
|
7565
7614
|
get errorText() {
|
|
7566
|
-
return this.getAttribute("error-text") ??
|
|
7615
|
+
return this.getAttribute("error-text") ?? Vi;
|
|
7567
7616
|
}
|
|
7568
7617
|
set errorText(e) {
|
|
7569
7618
|
this.setAttribute("error-text", String(e ?? ""));
|
|
@@ -7752,7 +7801,7 @@ var zi = class extends e {
|
|
|
7752
7801
|
let t = this.getAttribute("load-url");
|
|
7753
7802
|
if (!t) throw Error("<wui-tree> has a node with children to load but no loadChildren or load-url.");
|
|
7754
7803
|
let n = new URL(t, window.location.href);
|
|
7755
|
-
n.searchParams.set(
|
|
7804
|
+
n.searchParams.set(zi, e.id);
|
|
7756
7805
|
let r = await fe(n.href, { headers: { Accept: "application/json" } });
|
|
7757
7806
|
if (!r.ok) throw Error(`Loading children answered ${r.kind}.`);
|
|
7758
7807
|
return JSON.parse(r.html);
|
|
@@ -7771,9 +7820,9 @@ var zi = class extends e {
|
|
|
7771
7820
|
}
|
|
7772
7821
|
_syncForm() {
|
|
7773
7822
|
let e = this.selection;
|
|
7774
|
-
if (e === "multiple")
|
|
7775
|
-
else if (e === "single")
|
|
7776
|
-
else for (let e of this.querySelectorAll(
|
|
7823
|
+
if (e === "multiple") B(this, this.values);
|
|
7824
|
+
else if (e === "single") z(this, this._selected ?? "");
|
|
7825
|
+
else for (let e of this.querySelectorAll(Hi)) e.remove();
|
|
7777
7826
|
}
|
|
7778
7827
|
_render() {
|
|
7779
7828
|
if (!this._list) return;
|
|
@@ -7799,7 +7848,7 @@ var zi = class extends e {
|
|
|
7799
7848
|
let s = X("div", "wui-tree-row", { role: "presentation" });
|
|
7800
7849
|
s.style.setProperty("--wui-tree-level", String(e.level - 1)), r === "single" && e.id === this._selected && s.classList.add("wui-tree-row-selected"), e.failed && s.classList.add("wui-tree-row-error");
|
|
7801
7850
|
let c = X("span", i ? "wui-tree-toggle" : "wui-tree-toggle wui-tree-toggle-leaf", { "aria-hidden": "true" });
|
|
7802
|
-
if (i && (c.innerHTML =
|
|
7851
|
+
if (i && (c.innerHTML = V("chevron-right", { size: 16 })), s.append(c), r === "multiple") {
|
|
7803
7852
|
let t = X("input", "form-check-input wui-tree-check", {
|
|
7804
7853
|
type: "checkbox",
|
|
7805
7854
|
tabindex: -1,
|
|
@@ -7809,7 +7858,7 @@ var zi = class extends e {
|
|
|
7809
7858
|
}
|
|
7810
7859
|
if (e.icon) {
|
|
7811
7860
|
let t = X("span", "wui-tree-icon", { "aria-hidden": "true" });
|
|
7812
|
-
t.innerHTML =
|
|
7861
|
+
t.innerHTML = V(e.icon, { size: 16 }), s.append(t);
|
|
7813
7862
|
}
|
|
7814
7863
|
let l = X("span", "wui-tree-label", { id: `${this._uid}-${e.seq}` });
|
|
7815
7864
|
if (l.textContent = e.label, s.append(l), e.badge) {
|
|
@@ -7825,7 +7874,7 @@ var zi = class extends e {
|
|
|
7825
7874
|
row: s
|
|
7826
7875
|
}), o;
|
|
7827
7876
|
}
|
|
7828
|
-
},
|
|
7877
|
+
}, Ki = "wui-wizard-step", qi = class extends e {
|
|
7829
7878
|
static get observedAttributes() {
|
|
7830
7879
|
return [
|
|
7831
7880
|
"active",
|
|
@@ -7860,7 +7909,7 @@ var zi = class extends e {
|
|
|
7860
7909
|
this._beforeNext = typeof e == "function" ? e : null;
|
|
7861
7910
|
}
|
|
7862
7911
|
get _steps() {
|
|
7863
|
-
return [...this.querySelectorAll(`:scope > ${
|
|
7912
|
+
return [...this.querySelectorAll(`:scope > ${Ki}`)];
|
|
7864
7913
|
}
|
|
7865
7914
|
refresh() {
|
|
7866
7915
|
this._rendered && this._renderChrome();
|
|
@@ -7899,7 +7948,7 @@ var zi = class extends e {
|
|
|
7899
7948
|
}
|
|
7900
7949
|
_reconcileSteps() {
|
|
7901
7950
|
let e = this._steps, t = this._known;
|
|
7902
|
-
if (this._known = e,
|
|
7951
|
+
if (this._known = e, Ji(e, t)) return e;
|
|
7903
7952
|
let n = (n) => new Set([...n].map((n) => e.indexOf(t[n])).filter((e) => e >= 0));
|
|
7904
7953
|
this._skipped = n(this._skipped), this._invalid = n(this._invalid);
|
|
7905
7954
|
let r = t[this._active];
|
|
@@ -7919,7 +7968,7 @@ var zi = class extends e {
|
|
|
7919
7968
|
_onStepsMutated() {
|
|
7920
7969
|
if (!this._rendered) return;
|
|
7921
7970
|
let e = this._steps;
|
|
7922
|
-
(!e.length || this._header.nextElementSibling === e[0] && this._footer.previousElementSibling === e[e.length - 1]) &&
|
|
7971
|
+
(!e.length || this._header.nextElementSibling === e[0] && this._footer.previousElementSibling === e[e.length - 1]) && Ji(e, this._known) || (this._renderChrome(), this._observer?.takeRecords());
|
|
7923
7972
|
}
|
|
7924
7973
|
_syncPanels(e) {
|
|
7925
7974
|
e.forEach((e, t) => {
|
|
@@ -7943,16 +7992,16 @@ var zi = class extends e {
|
|
|
7943
7992
|
let a = this.hasAttribute("non-linear");
|
|
7944
7993
|
return e.map((r, o) => {
|
|
7945
7994
|
let s = this._stepStatus(r, o), c = r.getAttribute("label") || "", l = r.getAttribute("description") || "", u = r.getAttribute("icon") || "", d = o + 1, f;
|
|
7946
|
-
f = s === "done" ?
|
|
7947
|
-
let p = s === "pending" ? "step" : `step ${s}`, m = s === "active" ? " aria-current=\"step\"" : "", h = a || o < this._active, g = l ? `<span class="step-desc">${
|
|
7948
|
-
_ = t ? `<span class="step-circle">${f}</span><span class="step-text"><span class="step-index">Step ${d}</span><span class="step-label">${
|
|
7995
|
+
f = s === "done" ? V("check") : s === "error" ? V("alert-triangle") : s === "skipped" ? V("minus") : u ? V(u) : String(d);
|
|
7996
|
+
let p = s === "pending" ? "step" : `step ${s}`, m = s === "active" ? " aria-current=\"step\"" : "", h = a || o < this._active, g = l ? `<span class="step-desc">${Yi(l)}</span>` : "", _;
|
|
7997
|
+
_ = t ? `<span class="step-circle">${f}</span><span class="step-text"><span class="step-index">Step ${d}</span><span class="step-label">${Yi(c)}</span>${g}</span>` : n ? `<span class="step-circle">${f}</span><span class="step-index">Step ${d}</span><span class="step-label">${Yi(c)}</span>${g}` : `<span class="step-circle">${f}</span><span class="step-label">${Yi(c)}</span>${g}`;
|
|
7949
7998
|
let v = h ? `<button type="button" class="${p}" data-step="${o}"${m}>${_}</button>` : `<div class="${p}"${m}>${_}</div>`;
|
|
7950
7999
|
return t && i && o < e.length - 1 ? `${v}<span class="step-line${s === "done" ? " done" : ""}" aria-hidden="true"></span>` : v;
|
|
7951
8000
|
}).join("");
|
|
7952
8001
|
}
|
|
7953
8002
|
_footerHtml(e) {
|
|
7954
8003
|
let t = this._active, n = e.length - 1, r = this.hasAttribute("disabled") ? " disabled" : "", i = e[t]?.hasAttribute("optional") || this.hasAttribute("skippable"), a = this.getAttribute("back-label") || "Back", o = this.getAttribute("next-label") || "Next", s = this.getAttribute("skip-label") || "Skip", c = this.getAttribute("finish-label") || "Finish";
|
|
7955
|
-
return `${t > 0 ? `<button type="button" class="btn btn-secondary" data-nav="back"${r}>${
|
|
8004
|
+
return `${t > 0 ? `<button type="button" class="btn btn-secondary" data-nav="back"${r}>${V("arrow-left", { className: "me-2" })}${Yi(a)}</button>` : "<span></span>"}<span class="wizard-footer-actions">${i && t < n ? `<button type="button" class="btn btn-subtle" data-nav="skip"${r}>${Yi(s)}</button>` : ""}${t < n ? `<button type="button" class="btn btn-primary" data-nav="next"${r}>${Yi(o)}${V("arrow-right", { className: "ms-2" })}</button>` : `<button type="button" class="btn btn-primary" data-nav="finish"${r}>${Yi(c)}</button>`}</span>`;
|
|
7956
8005
|
}
|
|
7957
8006
|
_wire() {
|
|
7958
8007
|
this._teardown(), this._onHeaderClick = (e) => {
|
|
@@ -8026,7 +8075,7 @@ var zi = class extends e {
|
|
|
8026
8075
|
_reflectActive(e) {
|
|
8027
8076
|
this._reflecting = !0, this.setAttribute("active", String(e)), this._reflecting = !1;
|
|
8028
8077
|
}
|
|
8029
|
-
},
|
|
8078
|
+
}, Ji = (e, t) => e.length === t.length && e.every((e, n) => e === t[n]), Yi = (e) => String(e ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), Xi = class extends e {
|
|
8030
8079
|
static get observedAttributes() {
|
|
8031
8080
|
return [
|
|
8032
8081
|
"label",
|
|
@@ -8040,8 +8089,8 @@ var zi = class extends e {
|
|
|
8040
8089
|
let e = this.closest("wui-wizard");
|
|
8041
8090
|
e && typeof e.refresh == "function" && e.refresh();
|
|
8042
8091
|
}
|
|
8043
|
-
},
|
|
8044
|
-
async function
|
|
8092
|
+
}, Zi = 2e3;
|
|
8093
|
+
async function Qi(e) {
|
|
8045
8094
|
try {
|
|
8046
8095
|
if (navigator.clipboard?.writeText) return await navigator.clipboard.writeText(e), !0;
|
|
8047
8096
|
} catch {}
|
|
@@ -8056,14 +8105,14 @@ async function Ki(e) {
|
|
|
8056
8105
|
}
|
|
8057
8106
|
//#endregion
|
|
8058
8107
|
//#region src/fileValidation.js
|
|
8059
|
-
var
|
|
8108
|
+
var $i = "image/png,image/jpeg,image/webp", ea = 5, ta = {
|
|
8060
8109
|
"image/png": [".png"],
|
|
8061
8110
|
"image/jpeg": [".jpg", ".jpeg"],
|
|
8062
8111
|
"image/webp": [".webp"],
|
|
8063
8112
|
"image/gif": [".gif"],
|
|
8064
8113
|
"image/svg+xml": [".svg"],
|
|
8065
8114
|
"application/pdf": [".pdf"]
|
|
8066
|
-
},
|
|
8115
|
+
}, na = {
|
|
8067
8116
|
"image/png": "PNG",
|
|
8068
8117
|
"image/jpeg": "JPG",
|
|
8069
8118
|
"image/webp": "WEBP",
|
|
@@ -8077,7 +8126,7 @@ var qi = "image/png,image/jpeg,image/webp", Ji = 5, Yi = {
|
|
|
8077
8126
|
".gif": "GIF",
|
|
8078
8127
|
".svg": "SVG",
|
|
8079
8128
|
".pdf": "PDF"
|
|
8080
|
-
},
|
|
8129
|
+
}, ra = (e) => String(e || "").split(",").map((e) => e.trim().toLowerCase()).filter(Boolean), ia = [
|
|
8081
8130
|
".png",
|
|
8082
8131
|
".jpg",
|
|
8083
8132
|
".jpeg",
|
|
@@ -8088,71 +8137,71 @@ var qi = "image/png,image/jpeg,image/webp", Ji = 5, Yi = {
|
|
|
8088
8137
|
".avif",
|
|
8089
8138
|
".heic"
|
|
8090
8139
|
];
|
|
8091
|
-
function
|
|
8140
|
+
function aa(e) {
|
|
8092
8141
|
if (!e) return !1;
|
|
8093
8142
|
let t = typeof e == "object" && e.type ? String(e.type).toLowerCase() : "";
|
|
8094
8143
|
if (t) return t.startsWith("image/");
|
|
8095
8144
|
let n = typeof e == "string" ? e : e.name || e.url || "", r = String(n).toLowerCase();
|
|
8096
|
-
return
|
|
8145
|
+
return ia.some((e) => r.endsWith(e));
|
|
8097
8146
|
}
|
|
8098
|
-
function
|
|
8147
|
+
function oa(e) {
|
|
8099
8148
|
if (!e) return !1;
|
|
8100
8149
|
let t = typeof e == "object" && e.type ? String(e.type).toLowerCase() : "";
|
|
8101
8150
|
if (t) return t === "application/pdf";
|
|
8102
8151
|
let n = typeof e == "string" ? e : e.name || e.url || "";
|
|
8103
8152
|
return String(n).toLowerCase().split(/[?#]/)[0].endsWith(".pdf");
|
|
8104
8153
|
}
|
|
8105
|
-
function
|
|
8106
|
-
let t =
|
|
8107
|
-
return t.length ? t.every((e) => e.startsWith(".") ?
|
|
8154
|
+
function sa(e) {
|
|
8155
|
+
let t = ra(e);
|
|
8156
|
+
return t.length ? t.every((e) => e.startsWith(".") ? ia.includes(e) : e === "image/*" || e.startsWith("image/")) : !1;
|
|
8108
8157
|
}
|
|
8109
|
-
function
|
|
8158
|
+
function ca(e) {
|
|
8110
8159
|
let t = [];
|
|
8111
|
-
for (let n of
|
|
8112
|
-
let e =
|
|
8160
|
+
for (let n of ra(e)) {
|
|
8161
|
+
let e = na[n] || (n.startsWith(".") ? n.slice(1).toUpperCase() : n.toUpperCase());
|
|
8113
8162
|
t.includes(e) || t.push(e);
|
|
8114
8163
|
}
|
|
8115
8164
|
return t.length <= 1 ? t[0] || "supported" : `${t.slice(0, -1).join(", ")} or ${t[t.length - 1]}`;
|
|
8116
8165
|
}
|
|
8117
|
-
function
|
|
8118
|
-
let n =
|
|
8166
|
+
function la(e, t) {
|
|
8167
|
+
let n = ra(t);
|
|
8119
8168
|
if (!n.length) return !0;
|
|
8120
8169
|
let r = (e.type || "").toLowerCase(), i = (e.name || "").toLowerCase();
|
|
8121
|
-
return n.some((e) => e.startsWith(".") ? i.endsWith(e) : e.endsWith("/*") ? r.startsWith(e.slice(0, -1)) : r && r === e ? !0 : !r && (
|
|
8170
|
+
return n.some((e) => e.startsWith(".") ? i.endsWith(e) : e.endsWith("/*") ? r.startsWith(e.slice(0, -1)) : r && r === e ? !0 : !r && (ta[e] || []).some((e) => i.endsWith(e)));
|
|
8122
8171
|
}
|
|
8123
|
-
function
|
|
8172
|
+
function ua(e, t = {}) {
|
|
8124
8173
|
if (!e) return null;
|
|
8125
|
-
let n = t.accept === void 0 ?
|
|
8126
|
-
return
|
|
8174
|
+
let n = t.accept === void 0 ? $i : t.accept, r = t.maxSizeMb === void 0 ? 5 : t.maxSizeMb;
|
|
8175
|
+
return la(e, n) ? r > 0 && e.size > r * 1024 * 1024 ? `Keep the file under ${r} MB.` : null : `Choose a ${ca(n)} file.`;
|
|
8127
8176
|
}
|
|
8128
8177
|
//#endregion
|
|
8129
8178
|
//#region src/inputMask.js
|
|
8130
|
-
var
|
|
8131
|
-
9:
|
|
8179
|
+
var da = /[0-9]/, fa = {
|
|
8180
|
+
9: da,
|
|
8132
8181
|
A: /[A-Za-z]/,
|
|
8133
8182
|
"*": /[0-9A-Za-z]/
|
|
8134
|
-
},
|
|
8183
|
+
}, pa = /[9A*]/, ma = /* @__PURE__ */ new Set([
|
|
8135
8184
|
"text",
|
|
8136
8185
|
"tel",
|
|
8137
8186
|
"search",
|
|
8138
8187
|
"url",
|
|
8139
8188
|
"password"
|
|
8140
|
-
]),
|
|
8189
|
+
]), ha = (e) => {
|
|
8141
8190
|
let t = e.replace(/\D/g, "");
|
|
8142
8191
|
return t.length === 12 && t.startsWith("91") ? t.slice(2) : t.length === 11 && t.startsWith("0") ? t.slice(1) : e;
|
|
8143
|
-
},
|
|
8192
|
+
}, ga = (e) => {
|
|
8144
8193
|
let t = Number(e.slice(0, 2)), n = Number(e.slice(2, 4)), r = Number(e.slice(4, 8));
|
|
8145
8194
|
if (r < 1) return !1;
|
|
8146
8195
|
let i = new Date(Date.UTC(r, n - 1, t));
|
|
8147
8196
|
return i.getUTCFullYear() === r && i.getUTCMonth() === n - 1 && i.getUTCDate() === t;
|
|
8148
|
-
},
|
|
8197
|
+
}, _a = (e) => e.length <= 3 ? e : `${e.slice(0, -3).replace(/\B(?=(\d{2})+(?!\d))/g, ",")},${e.slice(-3)}`, va = (e) => {
|
|
8149
8198
|
let t = /^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());
|
|
8150
8199
|
return t ? `${t[3]}-${t[2]}-${t[1]}` : e;
|
|
8151
8200
|
};
|
|
8152
|
-
function
|
|
8153
|
-
let o = [...e].map((e) =>
|
|
8201
|
+
function ya(e, { upper: t = !1, normalize: n, valid: r, post: i = (e) => e, message: a = "Enter the full value" } = {}) {
|
|
8202
|
+
let o = [...e].map((e) => fa[e] ? { re: fa[e] } : { lit: e }), s = o.filter((e) => e.re).length;
|
|
8154
8203
|
return {
|
|
8155
|
-
inputMode: o.every((e) => !e.re || e.re ===
|
|
8204
|
+
inputMode: o.every((e) => !e.re || e.re === da) ? "numeric" : "text",
|
|
8156
8205
|
normalize: n,
|
|
8157
8206
|
post: i,
|
|
8158
8207
|
message: a,
|
|
@@ -8177,18 +8226,18 @@ function pa(e, { upper: t = !1, normalize: n, valid: r, post: i = (e) => e, mess
|
|
|
8177
8226
|
isValid: (e) => e.length === s && (!r || r(e))
|
|
8178
8227
|
};
|
|
8179
8228
|
}
|
|
8180
|
-
function
|
|
8229
|
+
function ba() {
|
|
8181
8230
|
return {
|
|
8182
8231
|
inputMode: "decimal",
|
|
8183
8232
|
post: (e) => e,
|
|
8184
8233
|
message: "Enter a valid amount",
|
|
8185
8234
|
extract(e) {
|
|
8186
8235
|
let t = "", n = !1, r = 0;
|
|
8187
|
-
for (let i of e)
|
|
8236
|
+
for (let i of e) da.test(i) ? n ? r < 2 && (t += i, r++) : t += i : i === "." && !n && (n = !0, t += i);
|
|
8188
8237
|
return t.startsWith(".") && (t = `0${t}`), t.replace(/^0+(?=\d)/, "");
|
|
8189
8238
|
},
|
|
8190
8239
|
layout(e) {
|
|
8191
|
-
let [t, n] = e.split("."), r =
|
|
8240
|
+
let [t, n] = e.split("."), r = _a(t) + (e.includes(".") ? `.${n}` : "");
|
|
8192
8241
|
return {
|
|
8193
8242
|
text: r,
|
|
8194
8243
|
isRaw: [...r].map((e) => e !== ",")
|
|
@@ -8197,75 +8246,75 @@ function ma() {
|
|
|
8197
8246
|
isValid: (e) => /^\d+(\.\d{1,2})?$/.test(e)
|
|
8198
8247
|
};
|
|
8199
8248
|
}
|
|
8200
|
-
var
|
|
8201
|
-
"phone-in": () =>
|
|
8202
|
-
normalize:
|
|
8249
|
+
var xa = {
|
|
8250
|
+
"phone-in": () => ya("99999 99999", {
|
|
8251
|
+
normalize: ha,
|
|
8203
8252
|
valid: (e) => /^[6-9]/.test(e),
|
|
8204
8253
|
message: "Enter a 10-digit mobile number"
|
|
8205
8254
|
}),
|
|
8206
|
-
pan: () =>
|
|
8255
|
+
pan: () => ya("AAAAA9999A", {
|
|
8207
8256
|
upper: !0,
|
|
8208
8257
|
valid: (e) => /^[A-Z]{5}\d{4}[A-Z]$/.test(e),
|
|
8209
8258
|
message: "Enter a valid PAN"
|
|
8210
8259
|
}),
|
|
8211
|
-
gstin: () =>
|
|
8260
|
+
gstin: () => ya("99AAAAA9999A***", {
|
|
8212
8261
|
upper: !0,
|
|
8213
8262
|
valid: (e) => /^\d{2}[A-Z]{5}\d{4}[A-Z][1-9A-Z]Z[0-9A-Z]$/.test(e),
|
|
8214
8263
|
message: "Enter a valid GSTIN"
|
|
8215
8264
|
}),
|
|
8216
|
-
aadhaar: () =>
|
|
8265
|
+
aadhaar: () => ya("9999 9999 9999", {
|
|
8217
8266
|
valid: (e) => /^[2-9]/.test(e),
|
|
8218
8267
|
message: "Enter a valid 12-digit Aadhaar number"
|
|
8219
8268
|
}),
|
|
8220
|
-
ifsc: () =>
|
|
8269
|
+
ifsc: () => ya("AAAA*******", {
|
|
8221
8270
|
upper: !0,
|
|
8222
8271
|
valid: (e) => /^[A-Z]{4}0[A-Z0-9]{6}$/.test(e),
|
|
8223
8272
|
message: "Enter a valid IFSC"
|
|
8224
8273
|
}),
|
|
8225
|
-
"pin-code": () =>
|
|
8274
|
+
"pin-code": () => ya("999999", {
|
|
8226
8275
|
valid: (e) => /^[1-9]/.test(e),
|
|
8227
8276
|
message: "Enter a valid 6-digit PIN code"
|
|
8228
8277
|
}),
|
|
8229
|
-
date: () =>
|
|
8230
|
-
normalize:
|
|
8231
|
-
valid:
|
|
8232
|
-
post: (e, t) => e.length === 8 &&
|
|
8278
|
+
date: () => ya("99-99-9999", {
|
|
8279
|
+
normalize: va,
|
|
8280
|
+
valid: ga,
|
|
8281
|
+
post: (e, t) => e.length === 8 && ga(e) ? `${e.slice(4)}-${e.slice(2, 4)}-${e.slice(0, 2)}` : t,
|
|
8233
8282
|
message: "Enter a valid date as DD-MM-YYYY"
|
|
8234
8283
|
}),
|
|
8235
|
-
amount:
|
|
8236
|
-
},
|
|
8284
|
+
amount: ba
|
|
8285
|
+
}, Sa = Object.keys(xa), Ca = (e) => {
|
|
8237
8286
|
let t = String(e).toLowerCase();
|
|
8238
|
-
return Object.hasOwn(
|
|
8239
|
-
},
|
|
8240
|
-
function
|
|
8287
|
+
return Object.hasOwn(xa, t) ? t : void 0;
|
|
8288
|
+
}, wa = (e) => pa.test(String(e)) && Ca(e) === void 0, Ta = /* @__PURE__ */ new Map();
|
|
8289
|
+
function Ea(e) {
|
|
8241
8290
|
if (e == null || e === "") return null;
|
|
8242
8291
|
let t = String(e);
|
|
8243
|
-
return
|
|
8292
|
+
return Ta.has(t) || (wa(t) ? Ta.set(t, ya(t)) : Ta.set(t, Object.hasOwn(xa, t) ? xa[t]() : null)), Ta.get(t);
|
|
8244
8293
|
}
|
|
8245
8294
|
var Z = (e, t) => e.normalize ? e.normalize(t) : t;
|
|
8246
|
-
function
|
|
8247
|
-
let n =
|
|
8295
|
+
function Da(e, t) {
|
|
8296
|
+
let n = Ea(e);
|
|
8248
8297
|
return n ? n.extract(Z(n, String(t ?? ""))) : String(t ?? "");
|
|
8249
8298
|
}
|
|
8250
|
-
function
|
|
8251
|
-
let n =
|
|
8299
|
+
function Oa(e, t) {
|
|
8300
|
+
let n = Ea(e);
|
|
8252
8301
|
if (!n) return String(t ?? "");
|
|
8253
8302
|
let r = n.extract(Z(n, String(t ?? "")));
|
|
8254
8303
|
return n.post(r, n.layout(r).text);
|
|
8255
8304
|
}
|
|
8256
|
-
function
|
|
8257
|
-
let n =
|
|
8305
|
+
function ka(e, t) {
|
|
8306
|
+
let n = Ea(e);
|
|
8258
8307
|
return n ? n.layout(n.extract(Z(n, String(t ?? "")))).text : String(t ?? "");
|
|
8259
8308
|
}
|
|
8260
|
-
var
|
|
8309
|
+
var Aa = (e, t) => {
|
|
8261
8310
|
if (t <= 0) return 0;
|
|
8262
8311
|
let n = 0;
|
|
8263
8312
|
for (let r = 0; r < e.length; r++) if (e[r] && ++n === t) return r + 1;
|
|
8264
8313
|
return e.length;
|
|
8265
|
-
},
|
|
8266
|
-
function
|
|
8267
|
-
let i = e.getAll(t), a =
|
|
8268
|
-
a ||
|
|
8314
|
+
}, ja = /* @__PURE__ */ new WeakMap(), Ma = (e) => ja.get(e)?.(), Na = /* @__PURE__ */ new WeakMap();
|
|
8315
|
+
function Pa(e, t, n, r) {
|
|
8316
|
+
let i = e.getAll(t), a = Na.get(e);
|
|
8317
|
+
a || Na.set(e, a = /* @__PURE__ */ new Set());
|
|
8269
8318
|
let o = i.findIndex((e, r) => e === n && !a.has(`${t}\u0000${r}`));
|
|
8270
8319
|
if (!(o < 0)) {
|
|
8271
8320
|
if (a.add(`${t}\u0000${o}`), i[o] = r, i.length === 1) {
|
|
@@ -8276,7 +8325,7 @@ function Oa(e, t, n, r) {
|
|
|
8276
8325
|
for (let n of i) e.append(t, n);
|
|
8277
8326
|
}
|
|
8278
8327
|
}
|
|
8279
|
-
function
|
|
8328
|
+
function Fa(e) {
|
|
8280
8329
|
let t = null, n = null, r = !1, i = (t, n) => n === null ? e.removeAttribute(t) : e.setAttribute(t, n), a, o, s = () => {
|
|
8281
8330
|
t?.remove(), t = null, n && (n.hidden = !1), n = null, r && e.classList.remove("error"), r = !1, a !== void 0 && i("aria-invalid", a), o !== void 0 && i("aria-describedby", o), a = void 0, o = void 0;
|
|
8282
8331
|
};
|
|
@@ -8289,18 +8338,18 @@ function ka(e) {
|
|
|
8289
8338
|
l && l !== t && l.textContent.trim() || (t || (r = !e.classList.contains("error"), e.classList.add("error"), a = e.getAttribute("aria-invalid"), o = e.getAttribute("aria-describedby"), c && (t = document.createElement("div"), t.className = "field-error", e.id && (t.id = `${e.id}-error`), n = c.querySelector(".field-hint"), n && (n.hidden = !0), c.insertBefore(t, [...c.children].find((e) => e.classList.contains("field-count")) ?? null), t.id && e.setAttribute("aria-describedby", t.id)), e.setAttribute("aria-invalid", "true")), t && (t.textContent = i));
|
|
8290
8339
|
};
|
|
8291
8340
|
}
|
|
8292
|
-
function
|
|
8293
|
-
let a =
|
|
8294
|
-
if (!a || !
|
|
8341
|
+
function Ia(e, { mask: t, postFormatted: n = !1, onChange: r, onInvalidChange: i } = {}) {
|
|
8342
|
+
let a = Ea(t);
|
|
8343
|
+
if (!a || !ma.has(e.type)) return () => {};
|
|
8295
8344
|
let o = Object.getPrototypeOf(e), s = Object.getOwnPropertyDescriptor(o, "value").set, c = !e.hasAttribute("inputmode");
|
|
8296
8345
|
c && e.setAttribute("inputmode", a.inputMode);
|
|
8297
|
-
let l = i ??
|
|
8346
|
+
let l = i ?? Fa(e), u = null, d = !1, f = !1, p = !1, m = "", h = "", g, _ = () => {
|
|
8298
8347
|
let e = p ? m : "";
|
|
8299
8348
|
e !== h && (h = e, l(h));
|
|
8300
8349
|
}, v = (t, n, i) => {
|
|
8301
8350
|
let o = a.extract(t.slice(0, n)).length, c = a.extract(t), { text: l, isRaw: d } = a.layout(c);
|
|
8302
|
-
if (e.value !== l && (s.call(e, l), document.activeElement === e &&
|
|
8303
|
-
let t =
|
|
8351
|
+
if (e.value !== l && (s.call(e, l), document.activeElement === e && ma.has(e.type))) {
|
|
8352
|
+
let t = Aa(d, o);
|
|
8304
8353
|
e.setSelectionRange(t, t);
|
|
8305
8354
|
}
|
|
8306
8355
|
e.dataset.maskRaw = c, m = c && !a.isValid(c) ? a.message : "", e.setCustomValidity(m), _(), i && c !== u && r?.(c, l), u = c;
|
|
@@ -8350,52 +8399,52 @@ function Aa(e, { mask: t, postFormatted: n = !1, onChange: r, onInvalidChange: i
|
|
|
8350
8399
|
};
|
|
8351
8400
|
e.addEventListener("input", S), e.addEventListener("beforeinput", te), e.addEventListener("paste", ne), e.addEventListener("compositionstart", ee), e.addEventListener("compositionend", C), e.addEventListener("blur", w), e.addEventListener("invalid", w);
|
|
8352
8401
|
let T = e.form, ie = (t) => {
|
|
8353
|
-
e.name && !e.disabled &&
|
|
8402
|
+
e.name && !e.disabled && Pa(t.formData, e.name, e.value, re());
|
|
8354
8403
|
}, ae = () => {
|
|
8355
8404
|
clearTimeout(g), g = setTimeout(() => {
|
|
8356
8405
|
p = !1, v(Z(a, e.value), e.value.length, !0);
|
|
8357
8406
|
}, 0);
|
|
8358
8407
|
};
|
|
8359
|
-
n || (T?.addEventListener("formdata", ie),
|
|
8408
|
+
n || (T?.addEventListener("formdata", ie), ja.set(e, re)), T?.addEventListener("reset", ae), T?.addEventListener("submit", w);
|
|
8360
8409
|
let E = Z(a, e.value);
|
|
8361
8410
|
return v(E, E.length, !1), () => {
|
|
8362
|
-
clearTimeout(g), e.removeEventListener("input", S), e.removeEventListener("beforeinput", te), e.removeEventListener("paste", ne), e.removeEventListener("compositionstart", ee), e.removeEventListener("compositionend", C), e.removeEventListener("blur", w), e.removeEventListener("invalid", w), T?.removeEventListener("formdata", ie), T?.removeEventListener("reset", ae), T?.removeEventListener("submit", w),
|
|
8411
|
+
clearTimeout(g), e.removeEventListener("input", S), e.removeEventListener("beforeinput", te), e.removeEventListener("paste", ne), e.removeEventListener("compositionstart", ee), e.removeEventListener("compositionend", C), e.removeEventListener("blur", w), e.removeEventListener("invalid", w), T?.removeEventListener("formdata", ie), T?.removeEventListener("reset", ae), T?.removeEventListener("submit", w), ja.delete(e), y ? Object.defineProperty(e, "value", y) : delete e.value, p = !1, m = "", _(), e.setCustomValidity(""), delete e.dataset.maskRaw, c && e.removeAttribute("inputmode");
|
|
8363
8412
|
};
|
|
8364
8413
|
}
|
|
8365
|
-
function
|
|
8414
|
+
function La() {
|
|
8366
8415
|
let e = typeof window > "u" ? void 0 : window.jQuery?.validator?.prototype;
|
|
8367
8416
|
if (!e || e.wuiMaskHook) return;
|
|
8368
8417
|
let t = e.elementValue;
|
|
8369
8418
|
e.elementValue = function(e) {
|
|
8370
|
-
let n =
|
|
8419
|
+
let n = Ma(e);
|
|
8371
8420
|
return n === void 0 ? t.call(this, e) : n;
|
|
8372
8421
|
}, e.wuiMaskHook = !0;
|
|
8373
8422
|
}
|
|
8374
|
-
var
|
|
8375
|
-
|
|
8423
|
+
var Ra = /* @__PURE__ */ new WeakMap(), za, Ba = (e) => {
|
|
8424
|
+
Ra.has(e) || Ra.set(e, Ia(e, {
|
|
8376
8425
|
mask: e.dataset.appMask,
|
|
8377
8426
|
postFormatted: e.hasAttribute("data-mask-post-formatted")
|
|
8378
8427
|
}));
|
|
8379
|
-
},
|
|
8380
|
-
function
|
|
8381
|
-
|
|
8428
|
+
}, Va = (e) => e.nodeType === 1 ? [...e.matches("input[data-app-mask]") ? [e] : [], ...e.querySelectorAll("input[data-app-mask]")] : [];
|
|
8429
|
+
function Ha() {
|
|
8430
|
+
za || typeof MutationObserver > "u" || (za = new MutationObserver((e) => {
|
|
8382
8431
|
for (let t of e) {
|
|
8383
|
-
for (let e of t.removedNodes) for (let t of
|
|
8384
|
-
for (let e of t.addedNodes) for (let t of
|
|
8432
|
+
for (let e of t.removedNodes) for (let t of Va(e)) Ra.get(t)?.(), Ra.delete(t);
|
|
8433
|
+
for (let e of t.addedNodes) for (let t of Va(e)) Ba(t);
|
|
8385
8434
|
}
|
|
8386
|
-
}),
|
|
8435
|
+
}), za.observe(document.documentElement, {
|
|
8387
8436
|
childList: !0,
|
|
8388
8437
|
subtree: !0
|
|
8389
8438
|
}));
|
|
8390
8439
|
}
|
|
8391
|
-
function
|
|
8392
|
-
|
|
8393
|
-
for (let t of e.querySelectorAll("input[data-app-mask]"))
|
|
8394
|
-
e === document &&
|
|
8440
|
+
function Ua(e = document) {
|
|
8441
|
+
La();
|
|
8442
|
+
for (let t of e.querySelectorAll("input[data-app-mask]")) Ba(t);
|
|
8443
|
+
e === document && Ha();
|
|
8395
8444
|
}
|
|
8396
8445
|
//#endregion
|
|
8397
8446
|
//#region src/passwordRules.js
|
|
8398
|
-
var
|
|
8447
|
+
var Wa = {
|
|
8399
8448
|
minLength: 10,
|
|
8400
8449
|
uppercase: !0,
|
|
8401
8450
|
lowercase: !0,
|
|
@@ -8403,15 +8452,15 @@ var Ra = {
|
|
|
8403
8452
|
special: !0,
|
|
8404
8453
|
uniqueChars: 0,
|
|
8405
8454
|
customRules: []
|
|
8406
|
-
},
|
|
8407
|
-
function
|
|
8408
|
-
return e === !0 || e == null ? { ...
|
|
8409
|
-
...
|
|
8455
|
+
}, Ga = "Password requirements";
|
|
8456
|
+
function Ka(e) {
|
|
8457
|
+
return e === !0 || e == null ? { ...Wa } : {
|
|
8458
|
+
...Wa,
|
|
8410
8459
|
...e
|
|
8411
8460
|
};
|
|
8412
8461
|
}
|
|
8413
|
-
function
|
|
8414
|
-
let t =
|
|
8462
|
+
function qa(e) {
|
|
8463
|
+
let t = Ka(e), n = [];
|
|
8415
8464
|
if (t.minLength > 0 && n.push({
|
|
8416
8465
|
key: "length",
|
|
8417
8466
|
label: `At least ${t.minLength} characters long`,
|
|
@@ -8450,47 +8499,47 @@ function Va(e) {
|
|
|
8450
8499
|
}
|
|
8451
8500
|
return n;
|
|
8452
8501
|
}
|
|
8453
|
-
function
|
|
8502
|
+
function Ja(e, t) {
|
|
8454
8503
|
let n = e == null ? "" : String(e);
|
|
8455
|
-
return
|
|
8504
|
+
return qa(t).map((e) => ({
|
|
8456
8505
|
key: e.key,
|
|
8457
8506
|
label: e.label,
|
|
8458
8507
|
met: e.test(n)
|
|
8459
8508
|
}));
|
|
8460
8509
|
}
|
|
8461
|
-
function
|
|
8462
|
-
return
|
|
8510
|
+
function Ya(e, t) {
|
|
8511
|
+
return Ja(e, t).every((e) => e.met);
|
|
8463
8512
|
}
|
|
8464
8513
|
//#endregion
|
|
8465
8514
|
//#region src/tableSelect.js
|
|
8466
|
-
var
|
|
8515
|
+
var Xa = "Select all rows", Za = "Select row", Q = "wui-select-cell", Qa = (e, t) => {
|
|
8467
8516
|
let n = e.createElement("input");
|
|
8468
8517
|
return n.type = "checkbox", n.className = "wui-check", n.setAttribute("aria-label", t), n;
|
|
8469
8518
|
};
|
|
8470
|
-
function
|
|
8519
|
+
function $a(e = document) {
|
|
8471
8520
|
let t = e.createElement("th");
|
|
8472
|
-
return t.className = Q, t.appendChild(
|
|
8521
|
+
return t.className = Q, t.appendChild(Qa(e, Xa)), t;
|
|
8473
8522
|
}
|
|
8474
|
-
function
|
|
8523
|
+
function eo(e = document) {
|
|
8475
8524
|
let t = e.createElement("td");
|
|
8476
|
-
return t.className = Q, t.appendChild(
|
|
8525
|
+
return t.className = Q, t.appendChild(Qa(e, Za)), t;
|
|
8477
8526
|
}
|
|
8478
|
-
function
|
|
8527
|
+
function to(e = document) {
|
|
8479
8528
|
let t = e.createElement("td");
|
|
8480
8529
|
return t.className = Q, t;
|
|
8481
8530
|
}
|
|
8482
|
-
var
|
|
8483
|
-
function
|
|
8484
|
-
for (let t of e)
|
|
8531
|
+
var no = (e) => e.firstElementChild?.classList.contains(Q);
|
|
8532
|
+
function ro(e) {
|
|
8533
|
+
for (let t of e) no(t) || t.insertBefore(eo(t.ownerDocument), t.firstChild);
|
|
8485
8534
|
}
|
|
8486
|
-
function
|
|
8535
|
+
function io(e) {
|
|
8487
8536
|
let t = e.querySelector("thead tr");
|
|
8488
8537
|
if (!t) return null;
|
|
8489
|
-
|
|
8490
|
-
for (let t of e.querySelectorAll("tfoot tr"))
|
|
8538
|
+
no(t) || t.insertBefore($a(e.ownerDocument), t.firstChild), ro(e.querySelectorAll("tbody tr"));
|
|
8539
|
+
for (let t of e.querySelectorAll("tfoot tr")) no(t) || t.insertBefore(to(e.ownerDocument), t.firstChild);
|
|
8491
8540
|
return t.querySelector(`.${Q} .wui-check`);
|
|
8492
8541
|
}
|
|
8493
|
-
function
|
|
8542
|
+
function ao(e) {
|
|
8494
8543
|
let t = e.querySelector(`thead .${Q} .wui-check`), n = [...e.querySelectorAll("tbody tr .wui-check")], r = n.length, i = n.filter((e) => e.checked).length;
|
|
8495
8544
|
t && (t.checked = r > 0 && i === r, t.indeterminate = i > 0 && i < r);
|
|
8496
8545
|
for (let t of e.querySelectorAll("tbody tr")) t.classList.toggle("is-selected", !!t.querySelector(".wui-check")?.checked);
|
|
@@ -8501,12 +8550,12 @@ function $a(e) {
|
|
|
8501
8550
|
}
|
|
8502
8551
|
//#endregion
|
|
8503
8552
|
//#region src/serverTable.js
|
|
8504
|
-
var
|
|
8553
|
+
var oo = Object.freeze([
|
|
8505
8554
|
"page",
|
|
8506
8555
|
"pageSize",
|
|
8507
8556
|
"sortBy",
|
|
8508
8557
|
"sortOrder"
|
|
8509
|
-
]),
|
|
8558
|
+
]), so = "search", co = Object.freeze({
|
|
8510
8559
|
loading: "Loading rows",
|
|
8511
8560
|
error: "These rows did not load. Try again.",
|
|
8512
8561
|
network: "The connection dropped before the rows loaded. Check it and try again.",
|
|
@@ -8515,28 +8564,28 @@ var eo = Object.freeze([
|
|
|
8515
8564
|
actionFailed: "That did not work. Try again.",
|
|
8516
8565
|
actionForbidden: "You do not have permission to do that.",
|
|
8517
8566
|
empty: "No rows"
|
|
8518
|
-
}),
|
|
8567
|
+
}), lo = 5, uo = /* @__PURE__ */ new WeakMap(), fo = (e, t) => {
|
|
8519
8568
|
let n = Number(e);
|
|
8520
8569
|
return Number.isInteger(n) ? n : t;
|
|
8521
|
-
},
|
|
8522
|
-
total:
|
|
8523
|
-
page:
|
|
8524
|
-
pageSize:
|
|
8570
|
+
}, po = (e) => ({
|
|
8571
|
+
total: fo(e.dataset.total, 0),
|
|
8572
|
+
page: fo(e.dataset.page, 1),
|
|
8573
|
+
pageSize: fo(e.dataset.pageSize, 0),
|
|
8525
8574
|
sortBy: e.dataset.sortBy || "",
|
|
8526
8575
|
sortOrder: e.dataset.sortOrder === "desc" ? "desc" : "asc"
|
|
8527
|
-
}),
|
|
8576
|
+
}), mo = (e, t) => {
|
|
8528
8577
|
e && window.WUI?.toast?.(e, { variant: t });
|
|
8529
8578
|
};
|
|
8530
|
-
function
|
|
8579
|
+
function ho(e = document) {
|
|
8531
8580
|
let t = e.querySelectorAll ? [...e.querySelectorAll("[data-wui-server]")] : [];
|
|
8532
8581
|
e instanceof Element && e.matches("[data-wui-server]") && t.unshift(e);
|
|
8533
|
-
for (let e of t)
|
|
8582
|
+
for (let e of t) uo.has(e) || uo.set(e, _o(e));
|
|
8534
8583
|
}
|
|
8535
|
-
function
|
|
8584
|
+
function go(e) {
|
|
8536
8585
|
let t = e instanceof Element ? e.closest("[data-wui-server]") : null;
|
|
8537
|
-
return t &&
|
|
8586
|
+
return t && uo.get(t) || null;
|
|
8538
8587
|
}
|
|
8539
|
-
function
|
|
8588
|
+
function _o(e) {
|
|
8540
8589
|
let t = e.querySelector(".table-wrap"), n = t?.querySelector(":scope > table"), r = e.dataset.src;
|
|
8541
8590
|
if (!n || !r) throw Error("A server-paged table needs data-src and a .table-wrap > table: render it with <app-data-table src>.");
|
|
8542
8591
|
let i = t.querySelector(":scope > [data-wui-table-state]"), a = e.querySelector("[data-wui-table-pager]"), o = e.querySelector("[data-wui-table-status]"), s = {
|
|
@@ -8545,11 +8594,11 @@ function uo(e) {
|
|
|
8545
8594
|
filtersForm: e.dataset.filtersForm || null,
|
|
8546
8595
|
filtersRegion: e.dataset.filtersRegion || null,
|
|
8547
8596
|
searchInput: e.dataset.searchInput || null,
|
|
8548
|
-
loadingText: e.dataset.loadingText ||
|
|
8549
|
-
errorText: e.dataset.errorText ||
|
|
8597
|
+
loadingText: e.dataset.loadingText || co.loading,
|
|
8598
|
+
errorText: e.dataset.errorText || co.error
|
|
8550
8599
|
}, c = new URL(r, window.location.href), l = new Set(c.searchParams.keys()), u = n.hasAttribute("data-app-datatable-selectable"), d = /* @__PURE__ */ new Set(), f = pe(), p = new AbortController(), m = { signal: p.signal }, h = n.querySelector(":scope > tbody[data-wui-rows]");
|
|
8551
8600
|
if (!h) throw Error("A server-paged table needs its rows in <app-table-rows> (tbody[data-wui-rows]).");
|
|
8552
|
-
let g =
|
|
8601
|
+
let g = po(h), _ = null, v = null, y = (e) => {
|
|
8553
8602
|
let t = new URLSearchParams();
|
|
8554
8603
|
for (let [n, r] of new URLSearchParams(e)) l.has(n) || t.append(n, r);
|
|
8555
8604
|
return t;
|
|
@@ -8571,7 +8620,7 @@ function uo(e) {
|
|
|
8571
8620
|
})), ne = (e) => {
|
|
8572
8621
|
o && (o.textContent = e);
|
|
8573
8622
|
}, re = (e) => {
|
|
8574
|
-
if (e.total === 0) return
|
|
8623
|
+
if (e.total === 0) return co.empty;
|
|
8575
8624
|
let t = e.pageSize > 0 ? Math.max(1, Math.ceil(e.total / e.pageSize)) : 1;
|
|
8576
8625
|
return `Page ${e.page} of ${t}, ${e.total} ${e.total === 1 ? "row" : "rows"}`;
|
|
8577
8626
|
}, w = () => [...n.querySelectorAll(":scope > thead > tr:first-child > th")], T = (e) => {
|
|
@@ -8579,12 +8628,12 @@ function uo(e) {
|
|
|
8579
8628
|
}, ie = (e) => {
|
|
8580
8629
|
let t = [...e.querySelectorAll(":scope > tr")];
|
|
8581
8630
|
if (u) {
|
|
8582
|
-
|
|
8631
|
+
ro(t);
|
|
8583
8632
|
for (let e of t) {
|
|
8584
8633
|
let t = e.querySelector(`.${Q} .wui-check`);
|
|
8585
8634
|
t && (t.checked = d.has(e.dataset.rowKey));
|
|
8586
8635
|
}
|
|
8587
|
-
|
|
8636
|
+
ao(n);
|
|
8588
8637
|
}
|
|
8589
8638
|
let r = w();
|
|
8590
8639
|
if (n.classList.contains("wui-table-stack")) for (let e of t) [...e.cells].forEach((e, t) => {
|
|
@@ -8601,7 +8650,7 @@ function uo(e) {
|
|
|
8601
8650
|
let n = e.querySelector(":scope > template[data-wui-empty]");
|
|
8602
8651
|
E(i), t.total === 0 && n ? (i.replaceChildren(n.content.cloneNode(!0)), i.hidden = !1) : (i.replaceChildren(), i.hidden = !0);
|
|
8603
8652
|
}, oe = (e) => {
|
|
8604
|
-
let r =
|
|
8653
|
+
let r = po(e);
|
|
8605
8654
|
if (a) {
|
|
8606
8655
|
let t = e.querySelector(":scope > template[data-wui-pager]");
|
|
8607
8656
|
E(a), a.replaceChildren(...t ? [t.content.cloneNode(!0)] : []), a.hidden = !1;
|
|
@@ -8617,7 +8666,7 @@ function uo(e) {
|
|
|
8617
8666
|
}, ce = () => {
|
|
8618
8667
|
if (h.querySelector(":scope > tr:not([data-wui-skeleton])")) return;
|
|
8619
8668
|
let e = Math.max(1, w().length);
|
|
8620
|
-
h.replaceChildren(...Array.from({ length:
|
|
8669
|
+
h.replaceChildren(...Array.from({ length: lo }, () => {
|
|
8621
8670
|
let t = document.createElement("tr");
|
|
8622
8671
|
t.setAttribute("data-wui-skeleton", "");
|
|
8623
8672
|
for (let n = 0; n < e; n++) {
|
|
@@ -8628,19 +8677,19 @@ function uo(e) {
|
|
|
8628
8677
|
})), t.removeAttribute("data-wui-table-error"), i && (i.hidden = !0);
|
|
8629
8678
|
}, le = (e) => {
|
|
8630
8679
|
e ? (t.setAttribute("aria-busy", "true"), ce()) : t.removeAttribute("aria-busy");
|
|
8631
|
-
}, ue = (e) => e === "forbidden" ?
|
|
8680
|
+
}, ue = (e) => e === "forbidden" ? co.forbidden : e === "network" ? co.network : s.errorText, de = (e) => {
|
|
8632
8681
|
let n = ue(e);
|
|
8633
8682
|
if (t.setAttribute("data-wui-table-error", e), a && (a.hidden = !0), i) {
|
|
8634
8683
|
let t = document.createElement("div");
|
|
8635
8684
|
t.className = "tbl-empty wui-table-error", t.setAttribute("role", "alert");
|
|
8636
8685
|
let r = document.createElement("span");
|
|
8637
|
-
r.className = "tbl-empty-icon", r.innerHTML =
|
|
8686
|
+
r.className = "tbl-empty-icon", r.innerHTML = V(e === "forbidden" ? "lock" : "alert-circle", { size: 24 });
|
|
8638
8687
|
let a = document.createElement("div");
|
|
8639
8688
|
a.className = "tbl-empty-title", a.textContent = n;
|
|
8640
8689
|
let o = document.createElement("div");
|
|
8641
8690
|
o.className = "tbl-empty-action";
|
|
8642
8691
|
let s = document.createElement("button");
|
|
8643
|
-
s.type = "button", s.className = "btn btn-outline-primary btn-sm", s.setAttribute("data-wui-table-retry", ""), s.textContent =
|
|
8692
|
+
s.type = "button", s.className = "btn btn-outline-primary btn-sm", s.setAttribute("data-wui-table-retry", ""), s.textContent = co.retry, o.append(s), t.append(r, a, o), E(i), i.replaceChildren(t), i.hidden = !1;
|
|
8644
8693
|
}
|
|
8645
8694
|
ne(n);
|
|
8646
8695
|
}, O = async (e, t = "none") => {
|
|
@@ -8677,7 +8726,7 @@ function uo(e) {
|
|
|
8677
8726
|
};
|
|
8678
8727
|
for (let e of he()) if (e.classList.add("sortable"), e.tabIndex = 0, !e.querySelector(".sort-icon")) {
|
|
8679
8728
|
let t = e.classList.contains("num") || e.classList.contains("text-end"), n = document.createElement("span");
|
|
8680
|
-
n.className = t ? "sort-icon wui-sort-lead" : "sort-icon", n.innerHTML =
|
|
8729
|
+
n.className = t ? "sort-icon wui-sort-lead" : "sort-icon", n.innerHTML = V("chevrons-up-down", { size: 14 }), t ? e.prepend(n) : e.append(n);
|
|
8681
8730
|
}
|
|
8682
8731
|
let ge = (e) => {
|
|
8683
8732
|
let t = me(new URLSearchParams(C)), n = g.sortBy === e && g.sortOrder === "asc" ? "desc" : "asc";
|
|
@@ -8692,7 +8741,7 @@ function uo(e) {
|
|
|
8692
8741
|
!t || !n.tHead?.contains(t) || (e.preventDefault(), ge(t.dataset.sortKey));
|
|
8693
8742
|
});
|
|
8694
8743
|
let _e = () => {
|
|
8695
|
-
|
|
8744
|
+
ao(n), n.dispatchEvent(new CustomEvent("selectionchange", {
|
|
8696
8745
|
bubbles: !0,
|
|
8697
8746
|
detail: {
|
|
8698
8747
|
selected: d.size,
|
|
@@ -8726,13 +8775,13 @@ function uo(e) {
|
|
|
8726
8775
|
return e && (e.matches("input, textarea") ? e : e.querySelector("input"));
|
|
8727
8776
|
}, A = () => e.isConnected ? !0 : (p.abort(), clearTimeout(v), !1), ye = (e, t) => {
|
|
8728
8777
|
let n = t?.name ? new FormData(e, t) : new FormData(e), r = new Set([...e.querySelectorAll("[name]")].map((e) => e.getAttribute("name"))), i = new URLSearchParams();
|
|
8729
|
-
for (let [e, t] of C) e !== "page" && (
|
|
8730
|
-
for (let [e, t] of n) typeof t != "string" || t === "" ||
|
|
8778
|
+
for (let [e, t] of C) e !== "page" && (oo.includes(e) || !r.has(e)) && i.append(e, t);
|
|
8779
|
+
for (let [e, t] of n) typeof t != "string" || t === "" || oo.includes(e) || l.has(e) || i.append(e, t);
|
|
8731
8780
|
let a = ve();
|
|
8732
8781
|
if (a) {
|
|
8733
|
-
i.delete(
|
|
8782
|
+
i.delete(so);
|
|
8734
8783
|
let e = a.value.trim();
|
|
8735
|
-
e && i.set(
|
|
8784
|
+
e && i.set(so, e);
|
|
8736
8785
|
}
|
|
8737
8786
|
return O(i, "push");
|
|
8738
8787
|
}, be = (e) => s.filtersForm && e.closest?.(s.filtersForm) || s.filtersRegion && e.closest?.(s.filtersRegion) || null;
|
|
@@ -8763,7 +8812,7 @@ function uo(e) {
|
|
|
8763
8812
|
let t = ve();
|
|
8764
8813
|
!t || e.target !== t || (clearTimeout(v), v = setTimeout(() => {
|
|
8765
8814
|
let e = me(new URLSearchParams(C)), n = t.value.trim();
|
|
8766
|
-
n ? e.set(
|
|
8815
|
+
n ? e.set(so, n) : e.delete(so), e.toString() !== C.toString() && O(e, "replace");
|
|
8767
8816
|
}, 300));
|
|
8768
8817
|
}, m), s.urlState && window.addEventListener("popstate", () => {
|
|
8769
8818
|
if (!A()) return;
|
|
@@ -8782,7 +8831,7 @@ function uo(e) {
|
|
|
8782
8831
|
let i = await fe(t, { method: (e.dataset.method || "post").toUpperCase() });
|
|
8783
8832
|
if (e.disabled = !1, e.removeAttribute("aria-busy"), i.kind === "session" || i.kind === "aborted") return;
|
|
8784
8833
|
let a = i.message;
|
|
8785
|
-
i.ok ? (
|
|
8834
|
+
i.ok ? (mo(a, i.toastVariant || "success"), await O(C, "none")) : mo(a || (i.kind === "forbidden" ? co.actionForbidden : co.actionFailed), "danger"), te("wui:table:action", {
|
|
8786
8835
|
action: r,
|
|
8787
8836
|
key: n,
|
|
8788
8837
|
ok: i.ok,
|
|
@@ -8792,7 +8841,7 @@ function uo(e) {
|
|
|
8792
8841
|
return n.addEventListener("click", (e) => {
|
|
8793
8842
|
let t = e.target.closest("[data-wui-row-action]");
|
|
8794
8843
|
!t || !h.contains(t) || t.disabled || (e.preventDefault(), Se(t));
|
|
8795
|
-
}), T(h), ae(h), u &&
|
|
8844
|
+
}), T(h), ae(h), u && io(n), ie(h), k(), {
|
|
8796
8845
|
el: e,
|
|
8797
8846
|
reload: () => O(C, "none"),
|
|
8798
8847
|
query: () => new URLSearchParams(C),
|
|
@@ -8817,80 +8866,80 @@ function uo(e) {
|
|
|
8817
8866
|
}
|
|
8818
8867
|
//#endregion
|
|
8819
8868
|
//#region src/serverActions.js
|
|
8820
|
-
var
|
|
8869
|
+
var vo = "wuiConfirm", yo = Object.freeze(["danger"]), bo = Object.freeze([
|
|
8821
8870
|
"success",
|
|
8822
8871
|
"info",
|
|
8823
8872
|
"warning",
|
|
8824
8873
|
"danger"
|
|
8825
|
-
]),
|
|
8874
|
+
]), xo = "wui.flash", So = Object.freeze({
|
|
8826
8875
|
confirmTitle: "Are you sure?",
|
|
8827
8876
|
confirmLabel: "Confirm",
|
|
8828
8877
|
cancelLabel: "Cancel",
|
|
8829
8878
|
failed: "That did not work. Try again.",
|
|
8830
8879
|
forbidden: "You do not have permission to do that.",
|
|
8831
8880
|
network: "Could not reach the server. Check your connection and try again."
|
|
8832
|
-
}),
|
|
8881
|
+
}), Co = /* @__PURE__ */ new WeakSet(), wo = null, To = null, Eo = !1, Do = (e) => {
|
|
8833
8882
|
let t = document.createElement("span");
|
|
8834
8883
|
return t.textContent = e ?? "", t.innerHTML;
|
|
8835
|
-
},
|
|
8884
|
+
}, Oo = (e, t) => {
|
|
8836
8885
|
e && window.WUI?.toast?.(e, { variant: t });
|
|
8837
|
-
},
|
|
8886
|
+
}, ko = () => {
|
|
8838
8887
|
let e = window.bootstrap?.Modal;
|
|
8839
8888
|
if (!e) throw Error("data-wui-confirm: Bootstrap's bundle (window.bootstrap) is not loaded on this page.");
|
|
8840
8889
|
return e;
|
|
8841
8890
|
};
|
|
8842
|
-
function
|
|
8843
|
-
let e = document.getElementById(
|
|
8844
|
-
return e || (e = document.createElement("div"), e.id =
|
|
8891
|
+
function Ao() {
|
|
8892
|
+
let e = document.getElementById(vo);
|
|
8893
|
+
return e || (e = document.createElement("div"), e.id = vo, e.className = "modal fade wui-modal-shell", e.tabIndex = -1, e.setAttribute("aria-hidden", "true"), e.setAttribute("role", "dialog"), e.setAttribute("aria-modal", "true"), e.style.setProperty("--wui-modal-max-width", `${he.md}px`), e.innerHTML = `<div class="modal-dialog modal-dialog-centered wui-rb-dialog"><div class="modal-content wui-modal wui-confirm"><div class="wui-modal-body"><div class="wui-confirm-content"><span class="wui-confirm-icon"><wui-status-icon tone="info" size="120"></wui-status-icon></span><h3 class="wui-confirm-title" tabindex="-1"></h3><p class="wui-confirm-msg"></p></div></div><div class="wui-modal-footer"><div class="wui-confirm-actions"><button type="button" class="btn btn-secondary" data-bs-dismiss="modal">${Do(So.cancelLabel)}</button><button type="button" class="btn btn-primary" data-app-confirm></button></div></div></div></div>`, document.body.appendChild(e), e);
|
|
8845
8894
|
}
|
|
8846
|
-
function
|
|
8895
|
+
function jo(e, t) {
|
|
8847
8896
|
let n = e.getAttribute("data-wui-confirm-tone");
|
|
8848
|
-
if (n !== null && !
|
|
8849
|
-
let r =
|
|
8850
|
-
if (!a || !o) throw Error(`#${
|
|
8897
|
+
if (n !== null && !yo.includes(n)) throw TypeError(`data-wui-confirm-tone="${n}" is not supported. Use danger, or leave it off.`);
|
|
8898
|
+
let r = ko(), i = Ao(), a = i.querySelector(".wui-confirm-title"), o = i.querySelector("[data-app-confirm]");
|
|
8899
|
+
if (!a || !o) throw Error(`#${vo} is not a confirm dialog with a confirm button. Render <app-confirm-dialog id="${vo}"> without confirm-href, or leave the dialog to the library.`);
|
|
8851
8900
|
let s = i.querySelector(".wui-confirm-msg");
|
|
8852
8901
|
s || (s = document.createElement("p"), s.className = "wui-confirm-msg", a.after(s));
|
|
8853
8902
|
let c = n === "danger";
|
|
8854
|
-
a.textContent = e.getAttribute("data-wui-confirm-title") ||
|
|
8903
|
+
a.textContent = e.getAttribute("data-wui-confirm-title") || So.confirmTitle, s.textContent = e.getAttribute("data-wui-confirm"), o.textContent = e.getAttribute("data-wui-confirm-label") || So.confirmLabel, o.classList.toggle("btn-danger", c), o.classList.toggle("btn-primary", !c), i.querySelector("wui-status-icon")?.setAttribute("tone", c ? "delete" : "info"), i.setAttribute("aria-label", a.textContent), To = t, Eo = !1, r.getOrCreateInstance(i).show();
|
|
8855
8904
|
}
|
|
8856
|
-
var
|
|
8857
|
-
|
|
8905
|
+
var Mo = (e, t) => {
|
|
8906
|
+
wo = e;
|
|
8858
8907
|
try {
|
|
8859
8908
|
t();
|
|
8860
8909
|
} finally {
|
|
8861
|
-
|
|
8910
|
+
wo = null;
|
|
8862
8911
|
}
|
|
8863
|
-
},
|
|
8864
|
-
function
|
|
8912
|
+
}, No = (e) => e.disabled === !0 || e.getAttribute("aria-disabled") === "true";
|
|
8913
|
+
function Po(e) {
|
|
8865
8914
|
let t = e.target.closest?.("[data-wui-confirm]:not(form)");
|
|
8866
|
-
!t || t ===
|
|
8915
|
+
!t || t === wo || No(t) || (e.preventDefault(), e.stopImmediatePropagation(), jo(t, () => Mo(t, () => t.click())));
|
|
8867
8916
|
}
|
|
8868
|
-
function
|
|
8917
|
+
function Fo(e) {
|
|
8869
8918
|
let t = e.target;
|
|
8870
|
-
if (!(t instanceof HTMLFormElement) || !t.hasAttribute("data-wui-confirm") || t ===
|
|
8919
|
+
if (!(t instanceof HTMLFormElement) || !t.hasAttribute("data-wui-confirm") || t === wo || e.submitter && e.submitter === wo) return;
|
|
8871
8920
|
e.preventDefault(), e.stopImmediatePropagation();
|
|
8872
8921
|
let n = e.submitter?.form === t ? e.submitter : void 0;
|
|
8873
|
-
|
|
8922
|
+
jo(t, () => Mo(t, () => t.requestSubmit(n)));
|
|
8874
8923
|
}
|
|
8875
|
-
function
|
|
8876
|
-
let t = e.target.closest?.(`#${
|
|
8877
|
-
!t || t.disabled || !
|
|
8924
|
+
function Io(e) {
|
|
8925
|
+
let t = e.target.closest?.(`#${vo} [data-app-confirm]`);
|
|
8926
|
+
!t || t.disabled || !To || (Eo = !0, ko().getOrCreateInstance(t.closest(`#${vo}`)).hide());
|
|
8878
8927
|
}
|
|
8879
|
-
function
|
|
8928
|
+
function Lo(e) {
|
|
8880
8929
|
if (e.target.id !== "wuiConfirm") return;
|
|
8881
|
-
let t =
|
|
8882
|
-
|
|
8930
|
+
let t = Eo ? To : null;
|
|
8931
|
+
To = null, Eo = !1, t?.();
|
|
8883
8932
|
}
|
|
8884
|
-
var
|
|
8885
|
-
e && window.sessionStorage.setItem(
|
|
8933
|
+
var Ro = (e, t) => {
|
|
8934
|
+
e && window.sessionStorage.setItem(xo, JSON.stringify({
|
|
8886
8935
|
message: e,
|
|
8887
8936
|
variant: t
|
|
8888
8937
|
}));
|
|
8889
|
-
},
|
|
8890
|
-
function
|
|
8891
|
-
for (let e of document.querySelectorAll("[data-wui-server]")) e.dataset.refreshOnSuccess !== "false" &&
|
|
8938
|
+
}, zo = (e) => e === "forbidden" ? So.forbidden : e === "network" ? So.network : So.failed;
|
|
8939
|
+
function Bo() {
|
|
8940
|
+
for (let e of document.querySelectorAll("[data-wui-server]")) e.dataset.refreshOnSuccess !== "false" && go(e)?.reload();
|
|
8892
8941
|
}
|
|
8893
|
-
async function
|
|
8942
|
+
async function Vo(e) {
|
|
8894
8943
|
let t = e.getAttribute("data-wui-post");
|
|
8895
8944
|
if (!t) throw Error("A data-wui-post button needs the URL the action posts to.");
|
|
8896
8945
|
let n = e.getAttribute("data-wui-post-reload");
|
|
@@ -8900,68 +8949,68 @@ async function Fo(e) {
|
|
|
8900
8949
|
if (r.kind === "session" || r.kind === "aborted") return;
|
|
8901
8950
|
let i = r.toastVariant || "success";
|
|
8902
8951
|
if (r.ok && (r.redirect || n === "page")) {
|
|
8903
|
-
|
|
8952
|
+
Ro(r.message, i), r.redirect ? window.location.assign(r.redirect) : window.location.reload();
|
|
8904
8953
|
return;
|
|
8905
8954
|
}
|
|
8906
8955
|
if (e.disabled = !1, e.removeAttribute("aria-busy"), r.ok) {
|
|
8907
|
-
|
|
8956
|
+
Oo(r.message, i), Bo();
|
|
8908
8957
|
return;
|
|
8909
8958
|
}
|
|
8910
|
-
|
|
8959
|
+
Oo(r.message || zo(r.kind), "danger");
|
|
8911
8960
|
}
|
|
8912
|
-
function
|
|
8961
|
+
function Ho(e) {
|
|
8913
8962
|
let t = e.target.closest?.("[data-wui-post]");
|
|
8914
|
-
t && (e.preventDefault(), !(
|
|
8963
|
+
t && (e.preventDefault(), !(No(t) || t.getAttribute("aria-busy") === "true") && Vo(t).catch((e) => console.error(e)));
|
|
8915
8964
|
}
|
|
8916
|
-
function
|
|
8917
|
-
let e = window.sessionStorage.getItem(
|
|
8965
|
+
function Uo() {
|
|
8966
|
+
let e = window.sessionStorage.getItem(xo);
|
|
8918
8967
|
if (!e) return;
|
|
8919
|
-
window.sessionStorage.removeItem(
|
|
8968
|
+
window.sessionStorage.removeItem(xo);
|
|
8920
8969
|
let { message: t, variant: n } = JSON.parse(e);
|
|
8921
|
-
|
|
8970
|
+
Oo(t, n);
|
|
8922
8971
|
}
|
|
8923
|
-
function
|
|
8972
|
+
function Wo(e) {
|
|
8924
8973
|
let t = e.querySelectorAll ? [...e.querySelectorAll("[data-wui-flash]")] : [];
|
|
8925
8974
|
e instanceof Element && e.matches("[data-wui-flash]") && t.unshift(e);
|
|
8926
8975
|
for (let e of t) {
|
|
8927
8976
|
let t = e.getAttribute("data-wui-flash-variant") || "success";
|
|
8928
|
-
if (!
|
|
8977
|
+
if (!bo.includes(t)) throw TypeError(`data-wui-flash-variant="${t}" is not supported. Use ${bo.join(", ")}.`);
|
|
8929
8978
|
let n = e.getAttribute("data-wui-flash") || e.textContent.trim();
|
|
8930
|
-
e.remove(),
|
|
8979
|
+
e.remove(), Oo(n, t);
|
|
8931
8980
|
}
|
|
8932
8981
|
}
|
|
8933
|
-
function
|
|
8982
|
+
function Go(e = document) {
|
|
8934
8983
|
let t = e.ownerDocument || e;
|
|
8935
|
-
|
|
8984
|
+
Co.has(t) || (Co.add(t), t.addEventListener("click", Po, !0), t.addEventListener("submit", Fo, !0), t.addEventListener("click", Io), t.addEventListener("click", Ho), t.addEventListener("hidden.bs.modal", Lo), Uo()), Wo(e);
|
|
8936
8985
|
}
|
|
8937
|
-
var
|
|
8938
|
-
function
|
|
8939
|
-
n.cookie = `${e}=${t ? "1" : "0"}; Path=/; Max-Age=${
|
|
8986
|
+
var Ko = 31536e3, qo = /* @__PURE__ */ new WeakMap(), Jo = (e) => e > 99 ? "99+" : String(e);
|
|
8987
|
+
function Yo(e, t, n = document) {
|
|
8988
|
+
n.cookie = `${e}=${t ? "1" : "0"}; Path=/; Max-Age=${Ko}; SameSite=Lax`;
|
|
8940
8989
|
}
|
|
8941
|
-
var
|
|
8990
|
+
var Xo = (e) => {
|
|
8942
8991
|
let t = document.createElement("template");
|
|
8943
8992
|
return t.innerHTML = e, t.content;
|
|
8944
|
-
},
|
|
8993
|
+
}, Zo = (e, t) => {
|
|
8945
8994
|
let n = document.createElement("div");
|
|
8946
8995
|
return n.className = e, n.textContent = t, n;
|
|
8947
8996
|
};
|
|
8948
|
-
function
|
|
8997
|
+
function Qo(e, t) {
|
|
8949
8998
|
let n = e.querySelector(".wui-bell-trigger"), r = e.querySelector(".wui-bell-count"), i = e.querySelector("[data-wui-bell-live]"), a = e.querySelector("[data-wui-bell-list]"), o = e.querySelector(".wui-bell-menu"), { src: s, readAction: c } = e.dataset, l = e.dataset.label || "Notifications", u = e.dataset.emptyText || "You are all caught up.", d = Number(e.dataset.pollSeconds ?? 60), f = pe(), p = Number(e.dataset.unread) || 0, m = (t, a = !0) => {
|
|
8950
8999
|
let o = Math.max(0, Number(t) || 0), s = o !== p;
|
|
8951
|
-
p = o, e.dataset.unread = String(o), r && (r.textContent =
|
|
9000
|
+
p = o, e.dataset.unread = String(o), r && (r.textContent = Jo(o), r.hidden = o === 0), n?.setAttribute("aria-label", o === 0 ? l : `${l}, ${Jo(o)} unread`), a && s && i && (i.textContent = o === 0 ? "No unread notifications" : `${Jo(o)} unread notifications`);
|
|
8952
9001
|
}, h = () => o?.classList.contains("show") ?? !1, g = () => {
|
|
8953
|
-
let e =
|
|
9002
|
+
let e = Zo("wui-bell-state", "Could not load notifications. "), t = document.createElement("button");
|
|
8954
9003
|
t.type = "button", t.className = "btn btn-link btn-sm", t.dataset.wuiBellRetry = "", t.textContent = "Retry", e.append(t), a.replaceChildren(e);
|
|
8955
9004
|
}, _ = async (t) => {
|
|
8956
|
-
t && (a.setAttribute("aria-busy", "true"), a.querySelector(".wui-bell-item") || a.replaceChildren(
|
|
9005
|
+
t && (a.setAttribute("aria-busy", "true"), a.querySelector(".wui-bell-item") || a.replaceChildren(Zo("wui-bell-state", "Loading…")));
|
|
8957
9006
|
let n = await f.run(s);
|
|
8958
9007
|
if (n.kind === "aborted" || n.kind === "stale" || n.kind === "session") return;
|
|
8959
9008
|
if (a.removeAttribute("aria-busy"), !n.ok) {
|
|
8960
9009
|
t && g();
|
|
8961
9010
|
return;
|
|
8962
9011
|
}
|
|
8963
|
-
let r =
|
|
8964
|
-
m(o), (t || h()) && (r.querySelector(".wui-bell-item") ? a.replaceChildren(r) : a.replaceChildren(
|
|
9012
|
+
let r = Xo(n.html), i = r.querySelector("[data-wui-unread]"), o = i ? Number(i.getAttribute("data-wui-unread")) : p;
|
|
9013
|
+
m(o), (t || h()) && (r.querySelector(".wui-bell-item") ? a.replaceChildren(r) : a.replaceChildren(Zo("wui-bell-state", u))), e.dispatchEvent(new CustomEvent("wui:notifications:loaded", {
|
|
8965
9014
|
bubbles: !0,
|
|
8966
9015
|
detail: { unread: o }
|
|
8967
9016
|
}));
|
|
@@ -8991,8 +9040,8 @@ function Ko(e, t) {
|
|
|
8991
9040
|
refresh: () => _(h())
|
|
8992
9041
|
};
|
|
8993
9042
|
}
|
|
8994
|
-
var
|
|
8995
|
-
function
|
|
9043
|
+
var $o = (e) => !!e && (e.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(e.tagName)), es = (e, t, n) => `${e}${e.includes("?") ? "&" : "?"}${encodeURIComponent(t)}=${encodeURIComponent(n)}`;
|
|
9044
|
+
function ts(e, t) {
|
|
8996
9045
|
let n = e.querySelector("input.search-input"), r = e.querySelector(".wui-topsearch-results"), i = e.querySelector(".wui-topsearch-open"), a = e.querySelector("[data-wui-topsearch-live]"), { src: o, param: s = "q", resultsHref: c } = e.dataset, l = Number(e.dataset.minChars ?? 2), u = Number(e.dataset.debounceMs ?? 250), d = pe(), f = null, p = -1, m = () => [...r.querySelectorAll(".wui-topsearch-hit")], h = (e) => {
|
|
8997
9046
|
let t = m();
|
|
8998
9047
|
p = t.length === 0 ? -1 : (e + t.length) % t.length, t.forEach((e, t) => {
|
|
@@ -9014,16 +9063,16 @@ function Yo(e, t) {
|
|
|
9014
9063
|
e.dispatchEvent(n) && window.location.assign(t);
|
|
9015
9064
|
}, b = async (t) => {
|
|
9016
9065
|
e.classList.add("is-loading");
|
|
9017
|
-
let n = await d.run(
|
|
9066
|
+
let n = await d.run(es(o, s, t));
|
|
9018
9067
|
if (!(n.kind === "aborted" || n.kind === "stale" || n.kind === "session")) {
|
|
9019
9068
|
if (e.classList.remove("is-loading"), n.ok) {
|
|
9020
|
-
let e =
|
|
9069
|
+
let e = Xo(n.html), t = e.querySelector("[data-wui-count]");
|
|
9021
9070
|
r.replaceChildren(e), m().forEach((e, t) => {
|
|
9022
9071
|
e.id = `${r.id}-opt-${t}`;
|
|
9023
9072
|
});
|
|
9024
9073
|
let i = t ? Number(t.getAttribute("data-wui-count")) : m().length;
|
|
9025
9074
|
a && (a.textContent = i === 0 ? "No results" : `${i} ${i === 1 ? "result" : "results"}`);
|
|
9026
|
-
} else r.replaceChildren(
|
|
9075
|
+
} else r.replaceChildren(Zo("wui-topsearch-empty", "Search is unavailable right now."));
|
|
9027
9076
|
p = -1, _();
|
|
9028
9077
|
}
|
|
9029
9078
|
};
|
|
@@ -9041,7 +9090,7 @@ function Yo(e, t) {
|
|
|
9041
9090
|
t.preventDefault(), h(p + (t.key === "ArrowDown" ? 1 : -1));
|
|
9042
9091
|
} else if (t.key === "Enter") {
|
|
9043
9092
|
let e = m();
|
|
9044
|
-
!r.hidden && p >= 0 && e[p] ? (t.preventDefault(), y(e[p].getAttribute("href"))) : c && n.value.trim() !== "" && (t.preventDefault(), y(
|
|
9093
|
+
!r.hidden && p >= 0 && e[p] ? (t.preventDefault(), y(e[p].getAttribute("href"))) : c && n.value.trim() !== "" && (t.preventDefault(), y(es(c, s, n.value.trim())));
|
|
9045
9094
|
} else t.key === "Escape" && (r.hidden ? e.classList.contains("is-open") && (t.preventDefault(), v(!1), i?.focus()) : (t.preventDefault(), g()));
|
|
9046
9095
|
}), r.addEventListener("click", (e) => {
|
|
9047
9096
|
let t = e.target.closest(".wui-topsearch-hit");
|
|
@@ -9051,7 +9100,7 @@ function Yo(e, t) {
|
|
|
9051
9100
|
v(t), t && n.focus();
|
|
9052
9101
|
});
|
|
9053
9102
|
let x = (e) => {
|
|
9054
|
-
e.key !== "/" || e.ctrlKey || e.metaKey || e.altKey ||
|
|
9103
|
+
e.key !== "/" || e.ctrlKey || e.metaKey || e.altKey || $o(e.target) || (e.preventDefault(), v(!0), n.focus());
|
|
9055
9104
|
}, S = (t) => {
|
|
9056
9105
|
e.contains(t.target) || (g(), e.classList.contains("is-open") && v(!1));
|
|
9057
9106
|
};
|
|
@@ -9059,13 +9108,13 @@ function Yo(e, t) {
|
|
|
9059
9108
|
clearTimeout(f), d.abort(), document.removeEventListener("keydown", x), document.removeEventListener("pointerdown", S);
|
|
9060
9109
|
});
|
|
9061
9110
|
}
|
|
9062
|
-
function
|
|
9111
|
+
function ns(e) {
|
|
9063
9112
|
let t = [], n = e.dataset.wuiCollapsedCookie;
|
|
9064
|
-
n && e.addEventListener("wui:shell:collapse", (e) =>
|
|
9113
|
+
n && e.addEventListener("wui:shell:collapse", (e) => Yo(n, !!e.detail?.collapsed)), e.addEventListener("click", (t) => {
|
|
9065
9114
|
t.target.closest("[data-wui-tabbar-more]") && e.querySelector("[data-app-shell-menu]")?.click();
|
|
9066
9115
|
});
|
|
9067
|
-
let r = e.querySelector("[data-wui-bell]"), i = r ?
|
|
9068
|
-
a &&
|
|
9116
|
+
let r = e.querySelector("[data-wui-bell]"), i = r ? Qo(r, t) : null, a = e.querySelector("[data-wui-topsearch]");
|
|
9117
|
+
a && ts(a, t);
|
|
9069
9118
|
let o = {
|
|
9070
9119
|
el: e,
|
|
9071
9120
|
setUnread(e) {
|
|
@@ -9085,109 +9134,109 @@ function Xo(e) {
|
|
|
9085
9134
|
n ? n.click() : e.classList.toggle("collapsed", !!t);
|
|
9086
9135
|
}
|
|
9087
9136
|
};
|
|
9088
|
-
|
|
9137
|
+
qo.set(e, o);
|
|
9089
9138
|
let s = (n) => {
|
|
9090
9139
|
if (n.target === e || n.target.contains?.(e)) {
|
|
9091
9140
|
for (let e of t) e();
|
|
9092
|
-
|
|
9141
|
+
qo.delete(e), delete e.dataset.wuiPartsWired, document.removeEventListener("wui:teardown", s);
|
|
9093
9142
|
}
|
|
9094
9143
|
};
|
|
9095
9144
|
return document.addEventListener("wui:teardown", s), o;
|
|
9096
9145
|
}
|
|
9097
|
-
function
|
|
9146
|
+
function rs(e = document) {
|
|
9098
9147
|
let t = [];
|
|
9099
9148
|
e instanceof Element && e.matches("[data-app-shell]") && t.push(e), t.push(...e.querySelectorAll("[data-app-shell]"));
|
|
9100
|
-
for (let e of t) e.dataset.wuiPartsWired || (e.dataset.wuiPartsWired = "1",
|
|
9149
|
+
for (let e of t) e.dataset.wuiPartsWired || (e.dataset.wuiPartsWired = "1", ns(e));
|
|
9101
9150
|
}
|
|
9102
|
-
function
|
|
9151
|
+
function is(e) {
|
|
9103
9152
|
let t = e?.closest?.("[data-app-shell]") ?? null;
|
|
9104
|
-
return t ? (
|
|
9153
|
+
return t ? (qo.has(t) || rs(t), qo.get(t) ?? null) : null;
|
|
9105
9154
|
}
|
|
9106
9155
|
//#endregion
|
|
9107
9156
|
//#region src/themeTransition.js
|
|
9108
|
-
var
|
|
9157
|
+
var as = [
|
|
9109
9158
|
"light",
|
|
9110
9159
|
"dark",
|
|
9111
9160
|
"auto"
|
|
9112
|
-
],
|
|
9161
|
+
], os = [
|
|
9113
9162
|
"wave",
|
|
9114
9163
|
"circle",
|
|
9115
9164
|
"slide",
|
|
9116
9165
|
"blinds",
|
|
9117
9166
|
"fade",
|
|
9118
9167
|
"none"
|
|
9119
|
-
],
|
|
9168
|
+
], ss = "wave", cs = "theme", ls = {
|
|
9120
9169
|
wave: 1100,
|
|
9121
9170
|
circle: 700,
|
|
9122
9171
|
slide: 600,
|
|
9123
9172
|
blinds: 900,
|
|
9124
9173
|
fade: 350,
|
|
9125
9174
|
none: 0
|
|
9126
|
-
},
|
|
9127
|
-
function
|
|
9128
|
-
return e === "dark" || e === "auto" &&
|
|
9175
|
+
}, us = "wui-theme-switching", ds = "wui:theme:change", fs = "wui-theme-toggle", ps = "(prefers-color-scheme: dark)", ms = (e) => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia(e).matches, hs = (e) => as.includes(e);
|
|
9176
|
+
function gs(e) {
|
|
9177
|
+
return e === "dark" || e === "auto" && ms(ps) ? "dark" : "light";
|
|
9129
9178
|
}
|
|
9130
|
-
function
|
|
9179
|
+
function _s(e = cs, { includeAuto: t = !1 } = {}) {
|
|
9131
9180
|
let n = null;
|
|
9132
9181
|
try {
|
|
9133
9182
|
n = window.localStorage.getItem(e);
|
|
9134
9183
|
} catch {}
|
|
9135
|
-
return !
|
|
9184
|
+
return !hs(n) || n === "auto" && !t ? "light" : n;
|
|
9136
9185
|
}
|
|
9137
|
-
function
|
|
9186
|
+
function vs(e, t = cs) {
|
|
9138
9187
|
try {
|
|
9139
9188
|
window.localStorage.setItem(t, e);
|
|
9140
9189
|
} catch {}
|
|
9141
9190
|
}
|
|
9142
|
-
function
|
|
9191
|
+
function ys(e) {
|
|
9143
9192
|
let t = document.documentElement;
|
|
9144
|
-
t.setAttribute("data-theme", e), t.setAttribute("data-bs-theme",
|
|
9193
|
+
t.setAttribute("data-theme", e), t.setAttribute("data-bs-theme", gs(e)), document.dispatchEvent(new CustomEvent(ds, { detail: { mode: e } }));
|
|
9145
9194
|
}
|
|
9146
|
-
function
|
|
9195
|
+
function bs(e, { includeAuto: t = !1 } = {}) {
|
|
9147
9196
|
return e === "light" ? "dark" : e === "dark" && t ? "auto" : "light";
|
|
9148
9197
|
}
|
|
9149
|
-
function
|
|
9198
|
+
function xs(e) {
|
|
9150
9199
|
if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
|
|
9151
|
-
let t = window.matchMedia(
|
|
9200
|
+
let t = window.matchMedia(ps), n = () => e(t.matches ? "dark" : "light");
|
|
9152
9201
|
return t.addEventListener("change", n), () => t.removeEventListener("change", n);
|
|
9153
9202
|
}
|
|
9154
|
-
var
|
|
9203
|
+
var Ss = 60, Cs = (e) => e < .5 ? 4 * e * e * e : 1 - (-2 * e + 2) ** 3 / 2, ws = (e) => e.toFixed(1), Ts = (e, t) => `${ws(e)}px ${ws(t)}px`, Es = {
|
|
9155
9204
|
amplitude: 22,
|
|
9156
9205
|
segments: 36,
|
|
9157
9206
|
cycles: 1.5,
|
|
9158
9207
|
ripples: 2
|
|
9159
|
-
},
|
|
9160
|
-
let { amplitude: a, segments: o, cycles: s } =
|
|
9208
|
+
}, Ds = 6, Os = (e, t, n, r, i) => {
|
|
9209
|
+
let { amplitude: a, segments: o, cycles: s } = Es, c = n * (t + 2 * a), l = i ? t + a - c : c - a, u = i ? t + 2 * a : -2 * a, d = [Ts(0, u)];
|
|
9161
9210
|
for (let t = 0; t <= o; t++) {
|
|
9162
9211
|
let n = e * t / o, i = l + a * Math.sin(2 * Math.PI * s * t / o + r);
|
|
9163
|
-
d.push(
|
|
9212
|
+
d.push(Ts(n, i));
|
|
9164
9213
|
}
|
|
9165
|
-
return d.push(
|
|
9166
|
-
},
|
|
9167
|
-
let i = t /
|
|
9168
|
-
for (let t = 0; t <
|
|
9214
|
+
return d.push(Ts(e, u)), `polygon(${d.join(", ")})`;
|
|
9215
|
+
}, ks = (e, t, n, r) => {
|
|
9216
|
+
let i = t / Ds, a = [];
|
|
9217
|
+
for (let t = 0; t < Ds; t++) {
|
|
9169
9218
|
let o = t * i, s = i * n, c = r ? o + i - s : o, l = r ? o + i : o + s;
|
|
9170
|
-
a.push(
|
|
9219
|
+
a.push(Ts(0, c), Ts(e, c), Ts(e, l), Ts(0, l));
|
|
9171
9220
|
}
|
|
9172
9221
|
return `polygon(${a.join(", ")})`;
|
|
9173
9222
|
};
|
|
9174
|
-
function
|
|
9223
|
+
function As(e, { width: t, height: n, to: r = "dark", origin: i } = {}) {
|
|
9175
9224
|
let a = r === "dark", o = [];
|
|
9176
|
-
for (let r = 0; r <=
|
|
9177
|
-
let s = r /
|
|
9225
|
+
for (let r = 0; r <= Ss; r++) {
|
|
9226
|
+
let s = r / Ss, c = Cs(s);
|
|
9178
9227
|
switch (e) {
|
|
9179
9228
|
case "circle": {
|
|
9180
9229
|
let e = i?.x ?? t / 2, r = i?.y ?? n / 2, a = Math.hypot(Math.max(e, t - e), Math.max(r, n - r));
|
|
9181
|
-
o.push({ clipPath: `circle(${
|
|
9230
|
+
o.push({ clipPath: `circle(${ws(a * c)}px at ${ws(e)}px ${ws(r)}px)` });
|
|
9182
9231
|
break;
|
|
9183
9232
|
}
|
|
9184
9233
|
case "slide": {
|
|
9185
9234
|
let e = n * (1 - c);
|
|
9186
|
-
o.push({ clipPath: a ? `inset(${
|
|
9235
|
+
o.push({ clipPath: a ? `inset(${ws(e)}px 0px 0px 0px)` : `inset(0px 0px ${ws(e)}px 0px)` });
|
|
9187
9236
|
break;
|
|
9188
9237
|
}
|
|
9189
9238
|
case "blinds":
|
|
9190
|
-
o.push({ clipPath:
|
|
9239
|
+
o.push({ clipPath: ks(t, n, c, a) });
|
|
9191
9240
|
break;
|
|
9192
9241
|
case "fade":
|
|
9193
9242
|
o.push({
|
|
@@ -9196,20 +9245,20 @@ function ws(e, { width: t, height: n, to: r = "dark", origin: i } = {}) {
|
|
|
9196
9245
|
});
|
|
9197
9246
|
break;
|
|
9198
9247
|
case "none": return [];
|
|
9199
|
-
default: o.push({ clipPath:
|
|
9248
|
+
default: o.push({ clipPath: Os(t, n, c, s * Es.ripples * 2 * Math.PI, a) });
|
|
9200
9249
|
}
|
|
9201
9250
|
}
|
|
9202
9251
|
return o;
|
|
9203
9252
|
}
|
|
9204
|
-
function
|
|
9253
|
+
function js(e, { effect: t = ss, to: n, origin: r, duration: i, live: a } = {}) {
|
|
9205
9254
|
let o = document.documentElement, s = n !== void 0 && o.getAttribute("data-bs-theme") === n;
|
|
9206
|
-
if (t === "none" || s ||
|
|
9207
|
-
o.classList.add(
|
|
9255
|
+
if (t === "none" || s || ms("(prefers-reduced-motion: reduce)") || typeof document.startViewTransition != "function" || typeof o.animate != "function") return e(), Promise.resolve(!1);
|
|
9256
|
+
o.classList.add(us);
|
|
9208
9257
|
let c = a instanceof Element ? a : null;
|
|
9209
|
-
c && (c.style.viewTransitionName =
|
|
9210
|
-
let l = document.startViewTransition(e), u = i ??
|
|
9258
|
+
c && (c.style.viewTransitionName = fs);
|
|
9259
|
+
let l = document.startViewTransition(e), u = i ?? ls[t] ?? ls.wave;
|
|
9211
9260
|
return l.ready.then(() => {
|
|
9212
|
-
let e =
|
|
9261
|
+
let e = As(t, {
|
|
9213
9262
|
width: window.innerWidth,
|
|
9214
9263
|
height: window.innerHeight,
|
|
9215
9264
|
to: n,
|
|
@@ -9221,16 +9270,16 @@ function Ts(e, { effect: t = ts, to: n, origin: r, duration: i, live: a } = {})
|
|
|
9221
9270
|
fill: "both",
|
|
9222
9271
|
pseudoElement: "::view-transition-new(root)"
|
|
9223
9272
|
});
|
|
9224
|
-
}).catch(() => {}), l.finished.catch(() => {}).then(() => (o.classList.remove(
|
|
9273
|
+
}).catch(() => {}), l.finished.catch(() => {}).then(() => (o.classList.remove(us), c && (c.style.viewTransitionName = ""), !0));
|
|
9225
9274
|
}
|
|
9226
9275
|
//#endregion
|
|
9227
9276
|
//#region src/index.js
|
|
9228
9277
|
var $ = (e, t) => {
|
|
9229
9278
|
typeof customElements < "u" && !customElements.get(e) && customElements.define(e, t);
|
|
9230
9279
|
};
|
|
9231
|
-
function
|
|
9232
|
-
$("wui-select",
|
|
9280
|
+
function Ms() {
|
|
9281
|
+
$("wui-select", Pn), $("wui-country-select", Rn), $("wui-phone", ii), $("wui-datepicker", Gn), $("wui-date-range", Kn), $("wui-dock", qn), $("wui-image-crop", xr), $("wui-kanban", zt), $("wui-consent-banner", gn), $("wui-slider", oi), $("wui-sortable", gi), $("wui-timepicker", Oi), $("wui-tour", Li), $("wui-tree", Gi), $("wui-autocomplete", nn), $("wui-command-palette", ln), $("wui-context-menu", jn), $("wui-multiselect", Or), $("wui-taginput", yi), $("wui-otp", Br), $("wui-status-icon", Ut), $("wui-wizard-step", Xi), $("wui-wizard", qi);
|
|
9233
9282
|
}
|
|
9234
|
-
|
|
9283
|
+
Ms();
|
|
9235
9284
|
//#endregion
|
|
9236
|
-
export {
|
|
9285
|
+
export { vo as CONFIRM_DIALOG_ID, yo as CONFIRM_TONES, Zi as COPY_FEEDBACK_MS, ae as CSRF_META_NAME, n as CURRENCIES, a as DATE_PATTERNS, E as DEFAULT_CSRF_HEADER, $i as DEFAULT_IMAGE_ACCEPT, ea as DEFAULT_MAX_SIZE_MB, Wa as DEFAULT_PASSWORD_RULES, Ga as DEFAULT_REQUIREMENTS_TITLE, ss as DEFAULT_THEME_EFFECT, cs as DEFAULT_THEME_STORAGE_KEY, i as DURATION_UNITS, s as EMPTY_VALUE, xo as FLASH_STORAGE_KEY, bo as FLASH_VARIANTS, t as FORMAT_STYLES, oe as HTTP_KINDS, o as IST_TIME_ZONE, ut as KANBAN_DRAG_THRESHOLD_PX, lt as KANBAN_LONG_PRESS_MS, ct as KANBAN_PHONE_QUERY, st as KANBAN_STORAGE_PREFIX, ot as KANBAN_SUMMARY_FORMATS, j as KANBAN_TEXT, at as KANBAN_TONES, ma as MASK_INPUT_TYPES, Sa as MASK_NAMES, r as MONEY_UNITS, Xa as SELECT_ALL_LABEL, Q as SELECT_CELL_CLASS, Za as SELECT_ROW_LABEL, So as SERVER_ACTION_TEXT, Ht as STATUS_TONES, ds as THEME_CHANGE_EVENT, os as THEME_EFFECTS, ls as THEME_EFFECT_DURATION, fs as THEME_LIVE_NAME, as as THEME_MODES, us as THEME_SWITCHING_CLASS, D as WUI_HEADERS, nn as WuiAutocomplete, ln as WuiCommandPalette, gn as WuiConsentBanner, jn as WuiContextMenu, Rn as WuiCountrySelect, Gn as WuiDatePicker, Kn as WuiDateRange, qn as WuiDock, zt as WuiKanban, Or as WuiMultiSelect, Br as WuiOtp, ii as WuiPhone, Pn as WuiSelect, oi as WuiSlider, gi as WuiSortable, Ut as WuiStatusIcon, yi as WuiTagInput, Oi as WuiTimePicker, Li as WuiTour, Gi as WuiTree, qi as WuiWizard, Xi as WuiWizardStep, ca as acceptLabel, ro as addRowSelectCells, io as addSelectColumn, ys as applyTheme, Ia as attachInputMask, qa as buildPasswordRules, ue as classifyStatus, Qi as copyTextToClipboard, Fi as createLocalSeenStore, pe as createRequestQueue, $a as createSelectHeaderCell, eo as createSelectRowCell, to as createSelectSpacerCell, Ms as defineWeborityElements, Ja as evaluatePassword, C as formatCompact, S as formatCurrency, T as formatDate, ne as formatDuration, ka as formatMasked, x as formatNumber, te as formatPercent, ie as formatValue, go as getServerTable, is as getShell, V as glyphSvg, Ua as initInputMasks, rt as initRemoteModals, Go as initServerActions, ho as initServerTables, rs as initShellParts, aa as isImageFile, sa as isImageOnlyAccept, wa as isMaskPattern, oa as isPdfFile, P as kanbanCardLabel, Mt as kanbanOverflow, Nt as kanbanStorageKey, It as kanbanSummaryFormat, jt as kanbanVisibleLimit, it as loadRemoteModal, Ma as maskedPostValue, on as matchSegments, la as matchesAccept, bs as nextTheme, Ya as passwordSatisfies, Oa as postedMasked, Da as rawMasked, ce as readCsrf, Pt as readKanbanCollapsed, _s as readStoredTheme, Ea as resolveMask, gs as resolveTheme, vs as storeTheme, Lt as sumKanbanValues, ao as syncSelectAll, As as themeKeyframes, re as toInstant, js as transitionTheme, ua as validateFile, xs as watchSystemTheme, Ft as writeKanbanCollapsed, fe as wuiFetch };
|