@webority/ui-elements 0.26.1 → 0.27.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-calendar.global.js +1 -1
- package/dist/ui-calendar.js +3 -1
- package/dist/ui-elements.global.js +2 -2
- package/dist/ui-elements.js +875 -754
- package/package.json +1 -1
package/dist/ui-elements.js
CHANGED
|
@@ -51,19 +51,19 @@ function S(e, { unit: t = "rupees", decimals: n } = {}) {
|
|
|
51
51
|
let r = b(e, t), i = _(p(n, 0)).format(Math.abs(r));
|
|
52
52
|
return (Number(i.replace(/,/g, "")) === 0 ? "" : y(r)) + l + i;
|
|
53
53
|
}
|
|
54
|
-
var
|
|
55
|
-
function
|
|
54
|
+
var C = (e) => e > 0 && e < .1 ? Math.min(20, 1 - Math.floor(Math.log10(e))) : 2;
|
|
55
|
+
function w(e, { currency: t, unit: n = "rupees" } = {}) {
|
|
56
56
|
if (!v(e)) return "-";
|
|
57
57
|
let r = t ? b(e, n) : e, i = t ? l : "", a = Math.abs(r), o = f.findIndex(([e]) => a >= e);
|
|
58
58
|
if (o === -1) {
|
|
59
|
-
let e = h(
|
|
59
|
+
let e = h(C(a)).format(a);
|
|
60
60
|
if (e !== "1,000") return (e === "0" ? "" : y(r)) + i + e;
|
|
61
61
|
o = f.length - 1;
|
|
62
62
|
}
|
|
63
63
|
let [s, c] = f[o], u = a / s, d = u >= 100 ? 0 : u >= 10 ? 1 : 2, p = Number(u.toFixed(d));
|
|
64
64
|
return p >= 100 && o > 0 && (--o, [s, c] = f[o], u = a / s, d = u >= 100 ? 0 : u >= 10 ? 1 : 2, p = Number(u.toFixed(d))), `${y(r)}${i}${h(d).format(p)} ${c}`;
|
|
65
65
|
}
|
|
66
|
-
function
|
|
66
|
+
function ee(e, { decimals: t } = {}) {
|
|
67
67
|
return v(e) ? `${x(e * 100, { decimals: p(t, 1) })}%` : "-";
|
|
68
68
|
}
|
|
69
69
|
function te(e, { unit: t = "s" } = {}) {
|
|
@@ -128,21 +128,22 @@ function ie(e, t) {
|
|
|
128
128
|
if (typeof e != "number") return String(e);
|
|
129
129
|
switch (n) {
|
|
130
130
|
case "currency": return S(e, t);
|
|
131
|
-
case "percent": return
|
|
132
|
-
case "compact": return
|
|
131
|
+
case "percent": return ee(e, t);
|
|
132
|
+
case "compact": return w(e, t);
|
|
133
133
|
case "duration": return te(e, t);
|
|
134
134
|
default: return x(e, t);
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
//#endregion
|
|
138
138
|
//#region src/wuiHttp.js
|
|
139
|
-
var ae = "wui-csrf",
|
|
139
|
+
var ae = "wui-csrf", oe = "RequestVerificationToken", E = Object.freeze({
|
|
140
140
|
fragment: "X-Wui-Fragment",
|
|
141
141
|
message: "X-Wui-Message",
|
|
142
142
|
redirect: "X-Wui-Redirect",
|
|
143
143
|
result: "X-Wui-Result",
|
|
144
|
-
keepOpen: "X-Wui-Keep-Open"
|
|
145
|
-
|
|
144
|
+
keepOpen: "X-Wui-Keep-Open",
|
|
145
|
+
toastVariant: "X-Wui-Toast-Variant"
|
|
146
|
+
}), se = Object.freeze([
|
|
146
147
|
"ok",
|
|
147
148
|
"validation",
|
|
148
149
|
"forbidden",
|
|
@@ -152,33 +153,33 @@ var ae = "wui-csrf", E = "RequestVerificationToken", D = Object.freeze({
|
|
|
152
153
|
"aborted",
|
|
153
154
|
"stale",
|
|
154
155
|
"session"
|
|
155
|
-
]),
|
|
156
|
-
function
|
|
156
|
+
]), ce = /* @__PURE__ */ new Set(["GET", "HEAD"]);
|
|
157
|
+
function le(e = document) {
|
|
157
158
|
let t = e.querySelector(`meta[name="${ae}"]`), n = t?.getAttribute("content");
|
|
158
159
|
return n ? {
|
|
159
160
|
header: t.getAttribute("data-header") || "RequestVerificationToken",
|
|
160
161
|
token: n
|
|
161
162
|
} : null;
|
|
162
163
|
}
|
|
163
|
-
var
|
|
164
|
+
var ue = (e) => {
|
|
164
165
|
try {
|
|
165
166
|
return new URL(e, window.location.href).origin === window.location.origin;
|
|
166
167
|
} catch {
|
|
167
168
|
return !1;
|
|
168
169
|
}
|
|
169
170
|
};
|
|
170
|
-
function
|
|
171
|
+
function de(e) {
|
|
171
172
|
return e >= 200 && e < 300 ? "ok" : e === 401 ? "session" : e === 403 ? "forbidden" : e === 422 ? "validation" : e >= 400 && e < 500 ? "client" : "server";
|
|
172
173
|
}
|
|
173
|
-
var
|
|
174
|
-
async function
|
|
174
|
+
var D = (e) => e?.name === "AbortError";
|
|
175
|
+
async function O(e, t = {}) {
|
|
175
176
|
let n = (t.method || "GET").toUpperCase(), r = t.navigate || ((e) => window.location.assign(e)), i = {
|
|
176
177
|
Accept: "text/html",
|
|
177
178
|
"X-Requested-With": "XMLHttpRequest",
|
|
178
179
|
...t.headers
|
|
179
180
|
};
|
|
180
|
-
if (!
|
|
181
|
-
let e =
|
|
181
|
+
if (!ce.has(n) && ue(e)) {
|
|
182
|
+
let e = le();
|
|
182
183
|
e && (i[e.header] = e.token);
|
|
183
184
|
}
|
|
184
185
|
let a = (e) => {
|
|
@@ -196,11 +197,12 @@ async function de(e, t = {}) {
|
|
|
196
197
|
status: t?.status ?? 0,
|
|
197
198
|
html: n,
|
|
198
199
|
response: t,
|
|
199
|
-
message: a(r(
|
|
200
|
-
redirect: r(
|
|
201
|
-
result: r(
|
|
202
|
-
keepOpen: r(
|
|
203
|
-
|
|
200
|
+
message: a(r(E.message)),
|
|
201
|
+
redirect: r(E.redirect),
|
|
202
|
+
result: r(E.result),
|
|
203
|
+
keepOpen: r(E.keepOpen) === "1",
|
|
204
|
+
toastVariant: r(E.toastVariant),
|
|
205
|
+
fragment: r(E.fragment) === "1"
|
|
204
206
|
};
|
|
205
207
|
}, s;
|
|
206
208
|
try {
|
|
@@ -212,15 +214,15 @@ async function de(e, t = {}) {
|
|
|
212
214
|
credentials: "same-origin"
|
|
213
215
|
});
|
|
214
216
|
} catch (e) {
|
|
215
|
-
return o(
|
|
217
|
+
return o(D(e) || t.signal?.aborted ? "aborted" : "network");
|
|
216
218
|
}
|
|
217
|
-
let c =
|
|
218
|
-
if (c === "ok" && s.redirected && s.headers.get(
|
|
219
|
+
let c = de(s.status);
|
|
220
|
+
if (c === "ok" && s.redirected && s.headers.get(E.fragment) !== "1" && (c = "session"), c === "session") return r(s.status === 401 ? s.headers.get("Location") || window.location.href : s.url), o(c, s);
|
|
219
221
|
let l = "";
|
|
220
222
|
if (c === "ok" || c === "validation") try {
|
|
221
223
|
l = await s.text();
|
|
222
224
|
} catch (e) {
|
|
223
|
-
return o(
|
|
225
|
+
return o(D(e) || t.signal?.aborted ? "aborted" : "network", s);
|
|
224
226
|
}
|
|
225
227
|
return o(c, s, l);
|
|
226
228
|
}
|
|
@@ -233,7 +235,7 @@ function fe() {
|
|
|
233
235
|
e = i;
|
|
234
236
|
let a = ++t, o = r.signal;
|
|
235
237
|
o && (o.aborted ? i.abort() : o.addEventListener("abort", () => i.abort(), { once: !0 }));
|
|
236
|
-
let s = await
|
|
238
|
+
let s = await O(n, {
|
|
237
239
|
...r,
|
|
238
240
|
signal: i.signal
|
|
239
241
|
});
|
|
@@ -266,7 +268,7 @@ var pe = "wui-remote-modal", me = "wui-modal-fullscreen", he = Object.freeze({
|
|
|
266
268
|
network: "Could not reach the server. Check your connection and try again.",
|
|
267
269
|
submitFailed: "Your changes were not saved.",
|
|
268
270
|
invalid: "Some fields need attention."
|
|
269
|
-
}), ge = "a[href],button:not([disabled]),input:not([disabled]):not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"])", _e = "[aria-invalid=\"true\"], .is-invalid, .input-validation-error", ve = ".wui-error-summary, .validation-summary-errors, [data-valmsg-summary]", ye = "[data-wui-modal-content]", be = "<button type=\"button\" class=\"wui-modal-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18M6 6l12 12\"></path></svg></button>", xe = /* @__PURE__ */ new WeakMap(), Se = /* @__PURE__ */ new WeakSet(), Ce = () => Object.assign(/* @__PURE__ */ Error("The remote modal load was aborted."), { name: "AbortError" }), we = (e) => {
|
|
271
|
+
}), ge = "a[href],button:not([disabled]),input:not([disabled]):not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex=\"-1\"])", _e = "[aria-invalid=\"true\"], .is-invalid, .input-validation-error", ve = ".wui-error-summary, [data-wui-form-errors], .validation-summary-errors, [data-valmsg-summary]", ye = "[data-wui-modal-content]", be = "<button type=\"button\" class=\"wui-modal-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"><svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M18 6 6 18M6 6l12 12\"></path></svg></button>", xe = /* @__PURE__ */ new WeakMap(), Se = /* @__PURE__ */ new WeakSet(), Ce = () => Object.assign(/* @__PURE__ */ Error("The remote modal load was aborted."), { name: "AbortError" }), we = (e) => {
|
|
270
272
|
let t = window.bootstrap?.Modal;
|
|
271
273
|
if (!t) throw Error(`WUI.modal.load(${String(e)}): Bootstrap's bundle (window.bootstrap) is not loaded on this page.`);
|
|
272
274
|
return t;
|
|
@@ -595,16 +597,16 @@ var ot = Object.freeze([
|
|
|
595
597
|
server: "Something went wrong on our side, so the card went back. Try again in a moment.",
|
|
596
598
|
network: "Could not reach the server, so the card went back. Check your connection and try again."
|
|
597
599
|
})
|
|
598
|
-
}), ft = "[data-wui-column]", pt = "[data-wui-body]",
|
|
599
|
-
function
|
|
600
|
+
}), ft = "[data-wui-column]", pt = "[data-wui-body]", mt = "[data-wui-card]", ht = "[data-wui-count]", gt = "[data-wui-summary]", _t = "[data-wui-empty]", vt = "[data-wui-drop-note]", yt = "[data-wui-live]", bt = "[data-wui-help]", xt = "[data-wui-switch]", St = "[data-wui-scroller]", Ct = "[data-wui-collapse]", wt = "input, select, textarea, [contenteditable=\"\"], [contenteditable=\"true\"], [data-wui-no-drag]", Tt = 48, Et = 16, j = (e) => e.getAttribute("data-wui-column"), Dt = (e) => e.getAttribute("data-wui-card"), Ot = (e) => e.hidden || e.hasAttribute("hidden");
|
|
601
|
+
function M(e) {
|
|
600
602
|
let t = (e.getAttribute("aria-label") || e.textContent || "").replace(/\s+/g, " ").trim();
|
|
601
|
-
return t.length > 80 ? `${t.slice(0, 79)}…` : t ||
|
|
603
|
+
return t.length > 80 ? `${t.slice(0, 79)}…` : t || Dt(e) || "Card";
|
|
602
604
|
}
|
|
603
|
-
function
|
|
605
|
+
function kt(e) {
|
|
604
606
|
return e ? `${ct}${e}` : null;
|
|
605
607
|
}
|
|
606
|
-
function
|
|
607
|
-
let n =
|
|
608
|
+
function At(e, t = globalThis.localStorage) {
|
|
609
|
+
let n = kt(e);
|
|
608
610
|
if (!n || !t) return {};
|
|
609
611
|
try {
|
|
610
612
|
let e = JSON.parse(t.getItem(n) || "null");
|
|
@@ -613,18 +615,18 @@ function kt(e, t = globalThis.localStorage) {
|
|
|
613
615
|
return {};
|
|
614
616
|
}
|
|
615
617
|
}
|
|
616
|
-
function
|
|
617
|
-
let i =
|
|
618
|
+
function jt(e, t, n, r = globalThis.localStorage) {
|
|
619
|
+
let i = kt(e);
|
|
618
620
|
if (!i || !r) return;
|
|
619
621
|
let a = {
|
|
620
|
-
...
|
|
622
|
+
...At(e, r),
|
|
621
623
|
[t]: !!n
|
|
622
624
|
};
|
|
623
625
|
try {
|
|
624
626
|
r.setItem(i, JSON.stringify({ collapsed: a }));
|
|
625
627
|
} catch {}
|
|
626
628
|
}
|
|
627
|
-
function
|
|
629
|
+
function Mt(e, t) {
|
|
628
630
|
if (!st.includes(e)) throw TypeError(`Unsupported kanban summary format "${String(e)}". Use ${st.join(", ")}.`);
|
|
629
631
|
if (t != null && t !== "" && !r.includes(t)) throw TypeError(`Unsupported kanban summary unit "${String(t)}". Use ${r.join(", ")}.`);
|
|
630
632
|
return e === "currency" ? {
|
|
@@ -639,7 +641,7 @@ function jt(e, t) {
|
|
|
639
641
|
decimals: 0
|
|
640
642
|
};
|
|
641
643
|
}
|
|
642
|
-
function
|
|
644
|
+
function Nt(e) {
|
|
643
645
|
let t = 0;
|
|
644
646
|
for (let n of e) {
|
|
645
647
|
if (n == null || n === "") continue;
|
|
@@ -648,9 +650,9 @@ function Mt(e) {
|
|
|
648
650
|
}
|
|
649
651
|
return t;
|
|
650
652
|
}
|
|
651
|
-
var
|
|
653
|
+
var Pt = (e, t) => {
|
|
652
654
|
e && window.WUI?.toast?.(e, { variant: t });
|
|
653
|
-
},
|
|
655
|
+
}, Ft = class extends e {
|
|
654
656
|
constructor() {
|
|
655
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) => {
|
|
656
658
|
e.key === "Escape" && this._drag && (e.preventDefault(), this._endPointer(!1));
|
|
@@ -664,14 +666,14 @@ var Nt = (e, t) => {
|
|
|
664
666
|
connectedCallback() {
|
|
665
667
|
if (!this._wired) {
|
|
666
668
|
this._wired = !0, this.addEventListener("pointerdown", (e) => this._pointerDown(e)), this.addEventListener("keydown", (e) => this._keyDown(e)), this.addEventListener("click", (e) => this._click(e), !0), this.addEventListener("dragstart", (e) => {
|
|
667
|
-
e.target.closest?.(
|
|
669
|
+
e.target.closest?.(mt) && e.preventDefault();
|
|
668
670
|
}), this.addEventListener("touchmove", (e) => {
|
|
669
671
|
this._drag && e.preventDefault();
|
|
670
672
|
}, { passive: !1 }), this._scroller()?.addEventListener("scroll", this._onScroll, { passive: !0 }), this._restoreCollapsed();
|
|
671
673
|
for (let e of this._allCards()) this._prepareCard(e);
|
|
672
674
|
if (typeof MutationObserver == "function") {
|
|
673
675
|
this._observer = new MutationObserver((e) => {
|
|
674
|
-
for (let t of e) for (let e of t.addedNodes) e.nodeType === 1 && e.matches(
|
|
676
|
+
for (let t of e) for (let e of t.addedNodes) e.nodeType === 1 && e.matches(mt) && this._prepareCard(e);
|
|
675
677
|
this._queueRefresh();
|
|
676
678
|
});
|
|
677
679
|
for (let e of this.querySelectorAll(pt)) this._observer.observe(e, { childList: !0 });
|
|
@@ -693,13 +695,13 @@ var Nt = (e, t) => {
|
|
|
693
695
|
let e = this._summaryFormat();
|
|
694
696
|
for (let t of this._columns()) {
|
|
695
697
|
let n = 0, r = [];
|
|
696
|
-
for (let e of this._cardsIn(t)) this._filter && (e.hidden = this._filter(e) === !1), !
|
|
698
|
+
for (let e of this._cardsIn(t)) this._filter && (e.hidden = this._filter(e) === !1), !Ot(e) && (n++, r.push(e.getAttribute("data-wui-value")));
|
|
697
699
|
let i = String(n);
|
|
698
700
|
for (let e of this._countsOf(t)) e.textContent !== i && (e.textContent = i);
|
|
699
|
-
let a = t.querySelector(
|
|
701
|
+
let a = t.querySelector(_t);
|
|
700
702
|
if (a && (a.hidden = n > 0), e) {
|
|
701
|
-
let n = t.querySelector(
|
|
702
|
-
n && (n.textContent = ie(
|
|
703
|
+
let n = t.querySelector(gt);
|
|
704
|
+
n && (n.textContent = ie(Nt(r), e));
|
|
703
705
|
}
|
|
704
706
|
}
|
|
705
707
|
}
|
|
@@ -713,40 +715,40 @@ var Nt = (e, t) => {
|
|
|
713
715
|
return [...this.querySelectorAll(ft)];
|
|
714
716
|
}
|
|
715
717
|
_columnByKey(e) {
|
|
716
|
-
return this._columns().find((t) =>
|
|
718
|
+
return this._columns().find((t) => j(t) === e) || null;
|
|
717
719
|
}
|
|
718
720
|
_columnOf(e) {
|
|
719
721
|
return e.closest(ft);
|
|
720
722
|
}
|
|
721
723
|
_titleOf(e) {
|
|
722
|
-
return (e.querySelector(".wui-kanban-title")?.textContent ||
|
|
724
|
+
return (e.querySelector(".wui-kanban-title")?.textContent || j(e) || "").replace(/\s+/g, " ").trim();
|
|
723
725
|
}
|
|
724
726
|
_bodyOf(e) {
|
|
725
727
|
return e.querySelector(pt);
|
|
726
728
|
}
|
|
727
729
|
_cardsIn(e) {
|
|
728
730
|
let t = this._bodyOf(e);
|
|
729
|
-
return t ? [...t.children].filter((e) => e.matches(
|
|
731
|
+
return t ? [...t.children].filter((e) => e.matches(mt)) : [];
|
|
730
732
|
}
|
|
731
733
|
_visibleCardsIn(e) {
|
|
732
|
-
return this._cardsIn(e).filter((e) => !
|
|
734
|
+
return this._cardsIn(e).filter((e) => !Ot(e));
|
|
733
735
|
}
|
|
734
736
|
_allCards() {
|
|
735
|
-
return [...this.querySelectorAll(`${pt} > ${
|
|
737
|
+
return [...this.querySelectorAll(`${pt} > ${mt}`)];
|
|
736
738
|
}
|
|
737
739
|
_cardByKey(e) {
|
|
738
|
-
return this._allCards().find((t) =>
|
|
740
|
+
return this._allCards().find((t) => Dt(t) === e) || null;
|
|
739
741
|
}
|
|
740
742
|
_countsOf(e) {
|
|
741
|
-
let t =
|
|
742
|
-
return [...e.querySelectorAll(
|
|
743
|
+
let t = j(e), n = [...this.querySelectorAll(xt)].filter((e) => e.getAttribute("data-wui-switch") === t);
|
|
744
|
+
return [...e.querySelectorAll(ht), ...n.flatMap((e) => [...e.querySelectorAll(ht)])];
|
|
743
745
|
}
|
|
744
746
|
_scroller() {
|
|
745
|
-
return this.querySelector(
|
|
747
|
+
return this.querySelector(St);
|
|
746
748
|
}
|
|
747
749
|
_summaryFormat() {
|
|
748
750
|
let e = this.getAttribute("summary-format");
|
|
749
|
-
return e ?
|
|
751
|
+
return e ? Mt(e, this.getAttribute("summary-unit")) : null;
|
|
750
752
|
}
|
|
751
753
|
_queueRefresh() {
|
|
752
754
|
this._refreshQueued || (this._refreshQueued = !0, queueMicrotask(() => {
|
|
@@ -754,11 +756,11 @@ var Nt = (e, t) => {
|
|
|
754
756
|
}));
|
|
755
757
|
}
|
|
756
758
|
_prepareCard(e) {
|
|
757
|
-
let t = this.querySelector(
|
|
759
|
+
let t = this.querySelector(bt);
|
|
758
760
|
t?.id && !e.hasAttribute("aria-describedby") && e.setAttribute("aria-describedby", t.id), e.hasAttribute("tabindex") || (e.tabIndex = 0);
|
|
759
761
|
}
|
|
760
762
|
_announce(e) {
|
|
761
|
-
let t = this.querySelector(
|
|
763
|
+
let t = this.querySelector(yt);
|
|
762
764
|
!t || !e || (t.textContent = "", t.textContent = e);
|
|
763
765
|
}
|
|
764
766
|
_fire(e, t, n = !1) {
|
|
@@ -769,8 +771,8 @@ var Nt = (e, t) => {
|
|
|
769
771
|
}));
|
|
770
772
|
}
|
|
771
773
|
_canLift(e) {
|
|
772
|
-
let t =
|
|
773
|
-
return this.hasAttribute("readonly") || e.hasAttribute("data-wui-locked") ? (this._announce(A.locked(t)), !1) : e.getAttribute("aria-busy") === "true" ? (this._announce(A.busy),
|
|
774
|
+
let t = M(e);
|
|
775
|
+
return this.hasAttribute("readonly") || e.hasAttribute("data-wui-locked") ? (this._announce(A.locked(t)), !1) : e.getAttribute("aria-busy") === "true" ? (this._announce(A.busy), Pt(A.busy, "info"), !1) : !0;
|
|
774
776
|
}
|
|
775
777
|
_check(e, t, n) {
|
|
776
778
|
if (t === n) return {
|
|
@@ -800,11 +802,11 @@ var Nt = (e, t) => {
|
|
|
800
802
|
};
|
|
801
803
|
}
|
|
802
804
|
_markTargets(e, t) {
|
|
803
|
-
let n =
|
|
805
|
+
let n = M(e), r = /* @__PURE__ */ new Map();
|
|
804
806
|
for (let i of this._columns()) {
|
|
805
|
-
let a =
|
|
807
|
+
let a = j(i), o = this._check(e, t, a);
|
|
806
808
|
r.set(a, o), i.setAttribute("data-wui-drop", o.source ? "source" : o.ok ? "ok" : "refused");
|
|
807
|
-
let s = i.querySelector(
|
|
809
|
+
let s = i.querySelector(vt);
|
|
808
810
|
s && !o.source && (s.textContent = o.ok ? A.dropHere(n, this._titleOf(i)) : o.reason, s.hidden = !1);
|
|
809
811
|
}
|
|
810
812
|
return r;
|
|
@@ -812,17 +814,17 @@ var Nt = (e, t) => {
|
|
|
812
814
|
_clearTargets() {
|
|
813
815
|
for (let e of this._columns()) {
|
|
814
816
|
e.removeAttribute("data-wui-drop"), e.removeAttribute("data-wui-over"), e.removeAttribute("data-wui-target");
|
|
815
|
-
let t = e.querySelector(
|
|
817
|
+
let t = e.querySelector(vt);
|
|
816
818
|
t && (t.hidden = !0, t.textContent = "");
|
|
817
819
|
}
|
|
818
820
|
}
|
|
819
821
|
async _commit(e, t, n) {
|
|
820
|
-
let r = this._columnOf(e), i =
|
|
822
|
+
let r = this._columnOf(e), i = j(r), a = this._columnByKey(t), o = M(e);
|
|
821
823
|
if (i === t || !this._canLift(e)) return !1;
|
|
822
824
|
let s = this._check(e, i, t);
|
|
823
|
-
if (!s.ok) return this._announce(s.reason),
|
|
825
|
+
if (!s.ok) return this._announce(s.reason), Pt(s.reason, "info"), !1;
|
|
824
826
|
let c = this._cardsIn(a), l = Number.isInteger(n) ? Math.max(0, Math.min(n, c.length)) : c.length, u = {
|
|
825
|
-
key:
|
|
827
|
+
key: Dt(e),
|
|
826
828
|
card: e,
|
|
827
829
|
from: i,
|
|
828
830
|
to: t,
|
|
@@ -844,7 +846,7 @@ var Nt = (e, t) => {
|
|
|
844
846
|
result: null
|
|
845
847
|
}), !0;
|
|
846
848
|
this._lock(e, !0), this._announce(A.saving(o, this._titleOf(a)));
|
|
847
|
-
let h = await
|
|
849
|
+
let h = await O(m, {
|
|
848
850
|
method: "POST",
|
|
849
851
|
body: new URLSearchParams({
|
|
850
852
|
card: u.key,
|
|
@@ -856,13 +858,13 @@ var Nt = (e, t) => {
|
|
|
856
858
|
if (this._lock(e, !1), h.kind === "session") return !1;
|
|
857
859
|
if (h.ok) {
|
|
858
860
|
let t = this._applyFragment(h.html) || e;
|
|
859
|
-
return
|
|
861
|
+
return Pt(h.message, "success"), this._announce(A.moved(M(t), this._titleOf(a))), this._fire("wui:kanban:moved", {
|
|
860
862
|
...u,
|
|
861
863
|
card: t,
|
|
862
864
|
result: h
|
|
863
865
|
}), !0;
|
|
864
866
|
}
|
|
865
|
-
return this._rollback(e, f), h.kind !== "aborted" &&
|
|
867
|
+
return this._rollback(e, f), h.kind !== "aborted" && Pt(h.message || A.failed[h.kind] || A.failed.server, "danger"), this._fire("wui:kanban:failed", {
|
|
866
868
|
...u,
|
|
867
869
|
kind: h.kind,
|
|
868
870
|
status: h.status,
|
|
@@ -870,7 +872,7 @@ var Nt = (e, t) => {
|
|
|
870
872
|
}), !1;
|
|
871
873
|
}
|
|
872
874
|
async _runStep(e, t, n, r, i) {
|
|
873
|
-
let a =
|
|
875
|
+
let a = M(e), o = this._columnByKey(t.to), s = new URLSearchParams({
|
|
874
876
|
card: t.key,
|
|
875
877
|
from: t.from,
|
|
876
878
|
to: t.to
|
|
@@ -883,7 +885,7 @@ var Nt = (e, t) => {
|
|
|
883
885
|
size: i || void 0
|
|
884
886
|
})).closed;
|
|
885
887
|
} catch (r) {
|
|
886
|
-
return this._lock(e, !1), this._rollback(e, n), r?.name !== "AbortError" &&
|
|
888
|
+
return this._lock(e, !1), this._rollback(e, n), r?.name !== "AbortError" && Pt(A.failed.server, "danger"), this._fire("wui:kanban:failed", {
|
|
887
889
|
...t,
|
|
888
890
|
kind: "step",
|
|
889
891
|
status: 0,
|
|
@@ -898,10 +900,10 @@ var Nt = (e, t) => {
|
|
|
898
900
|
}), !1;
|
|
899
901
|
let u = e, d = this.getAttribute("card-url");
|
|
900
902
|
if (d) {
|
|
901
|
-
let n = await
|
|
903
|
+
let n = await O(`${d}${d.includes("?") ? "&" : "?"}${new URLSearchParams({ card: t.key })}`);
|
|
902
904
|
n.ok && (u = this._applyFragment(n.html) || e);
|
|
903
905
|
}
|
|
904
|
-
return this._lock(u, !1), this._announce(A.moved(
|
|
906
|
+
return this._lock(u, !1), this._announce(A.moved(M(u), this._titleOf(o))), this._fire("wui:kanban:moved", {
|
|
905
907
|
...t,
|
|
906
908
|
card: u,
|
|
907
909
|
result: l
|
|
@@ -912,7 +914,7 @@ var Nt = (e, t) => {
|
|
|
912
914
|
}
|
|
913
915
|
_rollback(e, t) {
|
|
914
916
|
let n = e.contains(document.activeElement), r = t.next && t.next.parentNode === t.parent ? t.next : null;
|
|
915
|
-
t.parent.insertBefore(e, r), n && e.focus(), this.refresh(), this._announce(A.rolledBack(
|
|
917
|
+
t.parent.insertBefore(e, r), n && e.focus(), this.refresh(), this._announce(A.rolledBack(M(e), this._titleOf(t.column)));
|
|
916
918
|
}
|
|
917
919
|
_applyFragment(e) {
|
|
918
920
|
if (!e) return null;
|
|
@@ -920,14 +922,14 @@ var Nt = (e, t) => {
|
|
|
920
922
|
t.innerHTML = e;
|
|
921
923
|
for (let e of t.content.querySelectorAll("script")) console.warn("[@webority/ui-elements] A kanban fragment carried a script tag; it was removed, not run."), e.remove();
|
|
922
924
|
let n = null;
|
|
923
|
-
for (let e of [...t.content.querySelectorAll(
|
|
925
|
+
for (let e of [...t.content.querySelectorAll(mt)]) {
|
|
924
926
|
if (e.closest("template")) continue;
|
|
925
|
-
let t = this._cardByKey(
|
|
927
|
+
let t = this._cardByKey(Dt(e));
|
|
926
928
|
if (!t) continue;
|
|
927
929
|
let r = t.contains(document.activeElement);
|
|
928
930
|
t.dispatchEvent(new CustomEvent("wui:teardown", { bubbles: !0 })), t.hidden && (e.hidden = !0), t.replaceWith(e), this._prepareCard(e), r && e.focus(), n ??= e;
|
|
929
931
|
}
|
|
930
|
-
for (let e of t.content.querySelectorAll("template[data-wui-kanban-summary]")) this._columnByKey(e.getAttribute("data-wui-kanban-summary"))?.querySelector(
|
|
932
|
+
for (let e of t.content.querySelectorAll("template[data-wui-kanban-summary]")) this._columnByKey(e.getAttribute("data-wui-kanban-summary"))?.querySelector(gt)?.replaceChildren(e.content.cloneNode(!0));
|
|
931
933
|
return this.refresh(), window.WUI?.refresh?.(), n;
|
|
932
934
|
}
|
|
933
935
|
_refocusSoon(e) {
|
|
@@ -936,8 +938,8 @@ var Nt = (e, t) => {
|
|
|
936
938
|
}
|
|
937
939
|
_pointerDown(e) {
|
|
938
940
|
if (e.button !== 0 || e.isPrimary === !1 || this._drag || this._kbd) return;
|
|
939
|
-
let t = e.target.closest?.(
|
|
940
|
-
if (!t || !this.contains(t) || e.target.closest(
|
|
941
|
+
let t = e.target.closest?.(mt);
|
|
942
|
+
if (!t || !this.contains(t) || e.target.closest(wt)) return;
|
|
941
943
|
let n = {
|
|
942
944
|
card: t,
|
|
943
945
|
id: e.pointerId,
|
|
@@ -973,7 +975,7 @@ var Nt = (e, t) => {
|
|
|
973
975
|
this._endPointer(!1);
|
|
974
976
|
return;
|
|
975
977
|
}
|
|
976
|
-
let i =
|
|
978
|
+
let i = j(this._columnOf(r)), a = r.getBoundingClientRect(), o = r.cloneNode(!0);
|
|
977
979
|
for (let e of [o, ...o.querySelectorAll("[id]")]) e.removeAttribute("id");
|
|
978
980
|
o.removeAttribute("data-wui-card"), o.removeAttribute("tabindex"), o.setAttribute("aria-hidden", "true"), o.classList.add("wui-kanban-ghost"), o.style.width = `${a.width}px`, this.appendChild(o), r.setAttribute("data-wui-dragging", ""), this.setAttribute("data-wui-dragging", ""), this._drag = {
|
|
979
981
|
card: r,
|
|
@@ -983,7 +985,7 @@ var Nt = (e, t) => {
|
|
|
983
985
|
dy: n - a.top,
|
|
984
986
|
over: null,
|
|
985
987
|
verdicts: this._markTargets(r, i)
|
|
986
|
-
}, this._announce(A.lifted(
|
|
988
|
+
}, this._announce(A.lifted(M(r), this._titleOf(this._columnOf(r)))), document.addEventListener("keydown", this._onDocKeyDown), this._dragTo(t, n);
|
|
987
989
|
}
|
|
988
990
|
_dragTo(e, t) {
|
|
989
991
|
let n = this._drag;
|
|
@@ -1009,10 +1011,10 @@ var Nt = (e, t) => {
|
|
|
1009
1011
|
let n = this._scroller();
|
|
1010
1012
|
if (n) {
|
|
1011
1013
|
let t = n.getBoundingClientRect();
|
|
1012
|
-
t.width > 0 && (e < t.left +
|
|
1014
|
+
t.width > 0 && (e < t.left + Tt ? n.scrollBy?.({ left: -16 }) : e > t.right - Tt && n.scrollBy?.({ left: Et }));
|
|
1013
1015
|
}
|
|
1014
1016
|
let r = window.innerHeight || 0;
|
|
1015
|
-
r > 0 && (t <
|
|
1017
|
+
r > 0 && (t < Tt ? window.scrollBy?.({ top: -16 }) : t > r - Tt && window.scrollBy?.({ top: Et }));
|
|
1016
1018
|
}
|
|
1017
1019
|
_endPointer(e) {
|
|
1018
1020
|
let t = this._press, n = this._drag;
|
|
@@ -1022,32 +1024,32 @@ var Nt = (e, t) => {
|
|
|
1022
1024
|
}, 0);
|
|
1023
1025
|
let r = n.over;
|
|
1024
1026
|
if (this._clearTargets(), !e || !r) {
|
|
1025
|
-
this._announce(A.cancelled(
|
|
1027
|
+
this._announce(A.cancelled(M(n.card)));
|
|
1026
1028
|
return;
|
|
1027
1029
|
}
|
|
1028
|
-
let i =
|
|
1030
|
+
let i = j(r), a = n.verdicts.get(i);
|
|
1029
1031
|
if (a?.source) {
|
|
1030
|
-
this._announce(A.cancelled(
|
|
1032
|
+
this._announce(A.cancelled(M(n.card)));
|
|
1031
1033
|
return;
|
|
1032
1034
|
}
|
|
1033
1035
|
if (!a?.ok) {
|
|
1034
|
-
this._announce(a?.reason),
|
|
1036
|
+
this._announce(a?.reason), Pt(a?.reason, "info");
|
|
1035
1037
|
return;
|
|
1036
1038
|
}
|
|
1037
1039
|
this._commit(n.card, i, this._indexAt(r, n.y));
|
|
1038
1040
|
}
|
|
1039
1041
|
_click(e) {
|
|
1040
|
-
if (this._suppressClick && e.target.closest?.(
|
|
1042
|
+
if (this._suppressClick && e.target.closest?.(mt)) {
|
|
1041
1043
|
e.preventDefault(), e.stopPropagation(), this._suppressClick = !1;
|
|
1042
1044
|
return;
|
|
1043
1045
|
}
|
|
1044
|
-
let t = e.target.closest?.(
|
|
1046
|
+
let t = e.target.closest?.(Ct);
|
|
1045
1047
|
if (t && this.contains(t)) {
|
|
1046
1048
|
let e = t.closest(ft);
|
|
1047
1049
|
e && this._setCollapsed(e, !e.hasAttribute("data-collapsed"), !0);
|
|
1048
1050
|
return;
|
|
1049
1051
|
}
|
|
1050
|
-
let n = e.target.closest?.(
|
|
1052
|
+
let n = e.target.closest?.(xt);
|
|
1051
1053
|
n && this.contains(n) && this._showColumn(n.getAttribute("data-wui-switch"));
|
|
1052
1054
|
}
|
|
1053
1055
|
_keyDown(e) {
|
|
@@ -1056,19 +1058,19 @@ var Nt = (e, t) => {
|
|
|
1056
1058
|
return;
|
|
1057
1059
|
}
|
|
1058
1060
|
let t = e.target;
|
|
1059
|
-
if (!t.matches?.(
|
|
1061
|
+
if (!t.matches?.(mt) || !this.contains(t)) return;
|
|
1060
1062
|
let n = this._columnOf(t);
|
|
1061
1063
|
switch (e.key) {
|
|
1062
1064
|
case " ":
|
|
1063
1065
|
case "Spacebar": {
|
|
1064
1066
|
if (e.preventDefault(), !this._canLift(t)) return;
|
|
1065
|
-
let r =
|
|
1067
|
+
let r = j(n), i = this._columns();
|
|
1066
1068
|
this._kbd = {
|
|
1067
1069
|
card: t,
|
|
1068
1070
|
from: r,
|
|
1069
1071
|
target: i.indexOf(n),
|
|
1070
1072
|
verdicts: this._markTargets(t, r)
|
|
1071
|
-
}, t.setAttribute("data-wui-lifted", ""), this.setAttribute("data-wui-dragging", ""), n.setAttribute("data-wui-target", ""), this._announce(A.lifted(
|
|
1073
|
+
}, t.setAttribute("data-wui-lifted", ""), this.setAttribute("data-wui-dragging", ""), n.setAttribute("data-wui-target", ""), this._announce(A.lifted(M(t), this._titleOf(n)));
|
|
1072
1074
|
return;
|
|
1073
1075
|
}
|
|
1074
1076
|
case "ArrowDown":
|
|
@@ -1102,8 +1104,8 @@ var Nt = (e, t) => {
|
|
|
1102
1104
|
if (r < 0 || r >= n.length) return;
|
|
1103
1105
|
n[t.target]?.removeAttribute("data-wui-target"), t.target = r;
|
|
1104
1106
|
let i = n[r];
|
|
1105
|
-
i.setAttribute("data-wui-target", ""), this._showColumn(
|
|
1106
|
-
let a = t.verdicts.get(
|
|
1107
|
+
i.setAttribute("data-wui-target", ""), this._showColumn(j(i), !1);
|
|
1108
|
+
let a = t.verdicts.get(j(i)), o = this._titleOf(i);
|
|
1107
1109
|
this._announce(a.source ? A.overSource(o) : a.ok ? A.over(o, this._visibleCardsIn(i).length) : A.overRefused(o, a.reason));
|
|
1108
1110
|
return;
|
|
1109
1111
|
}
|
|
@@ -1111,17 +1113,17 @@ var Nt = (e, t) => {
|
|
|
1111
1113
|
case "Spacebar":
|
|
1112
1114
|
case "Enter": {
|
|
1113
1115
|
e.preventDefault();
|
|
1114
|
-
let r = n[t.target], i =
|
|
1116
|
+
let r = n[t.target], i = j(r), a = t.verdicts.get(i);
|
|
1115
1117
|
if (!a.source && !a.ok) {
|
|
1116
1118
|
this._announce(a.reason);
|
|
1117
1119
|
return;
|
|
1118
1120
|
}
|
|
1119
|
-
this._endKeyboard(), a.source ? this._announce(A.cancelled(
|
|
1121
|
+
this._endKeyboard(), a.source ? this._announce(A.cancelled(M(t.card))) : this._commit(t.card, i);
|
|
1120
1122
|
return;
|
|
1121
1123
|
}
|
|
1122
1124
|
case "Escape":
|
|
1123
1125
|
case "Tab":
|
|
1124
|
-
e.key === "Escape" && e.preventDefault(), this._endKeyboard(), this._showColumn(t.from, !1), this._announce(A.cancelled(
|
|
1126
|
+
e.key === "Escape" && e.preventDefault(), this._endKeyboard(), this._showColumn(t.from, !1), this._announce(A.cancelled(M(t.card)));
|
|
1125
1127
|
return;
|
|
1126
1128
|
default:
|
|
1127
1129
|
}
|
|
@@ -1131,18 +1133,18 @@ var Nt = (e, t) => {
|
|
|
1131
1133
|
this._kbd = null, e && (e.card.removeAttribute("data-wui-lifted"), this.removeAttribute("data-wui-dragging"), this._clearTargets());
|
|
1132
1134
|
}
|
|
1133
1135
|
_restoreCollapsed() {
|
|
1134
|
-
let e =
|
|
1136
|
+
let e = At(this.getAttribute("board-id"));
|
|
1135
1137
|
for (let t of this._columns()) {
|
|
1136
|
-
let n =
|
|
1138
|
+
let n = j(t);
|
|
1137
1139
|
t.hasAttribute("data-collapsible") && Object.hasOwn(e, n) && this._setCollapsed(t, e[n], !1);
|
|
1138
1140
|
}
|
|
1139
1141
|
}
|
|
1140
1142
|
_setCollapsed(e, t, n) {
|
|
1141
|
-
let r =
|
|
1143
|
+
let r = j(e);
|
|
1142
1144
|
e.toggleAttribute("data-collapsed", t);
|
|
1143
1145
|
let i = this._titleOf(e);
|
|
1144
|
-
for (let n of e.querySelectorAll(
|
|
1145
|
-
n && (
|
|
1146
|
+
for (let n of e.querySelectorAll(Ct)) n.setAttribute("aria-expanded", t ? "false" : "true"), n.setAttribute("aria-label", t ? A.expand(i) : A.collapse(i));
|
|
1147
|
+
n && (jt(this.getAttribute("board-id"), r, t), this._fire("wui:kanban:collapse", {
|
|
1146
1148
|
column: r,
|
|
1147
1149
|
collapsed: t
|
|
1148
1150
|
}));
|
|
@@ -1151,7 +1153,7 @@ var Nt = (e, t) => {
|
|
|
1151
1153
|
return typeof matchMedia == "function" && matchMedia("(max-width: 767.98px)").matches;
|
|
1152
1154
|
}
|
|
1153
1155
|
_showColumn(e, t = !0) {
|
|
1154
|
-
for (let t of this.querySelectorAll(
|
|
1156
|
+
for (let t of this.querySelectorAll(xt)) t.getAttribute("data-wui-switch") === e ? t.setAttribute("aria-current", "true") : t.removeAttribute("aria-current");
|
|
1155
1157
|
let n = this._columnByKey(e), r = this._scroller();
|
|
1156
1158
|
if (!n || !r || !t && !this._isPhone()) return;
|
|
1157
1159
|
let i = typeof matchMedia == "function" && matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
@@ -1164,22 +1166,22 @@ var Nt = (e, t) => {
|
|
|
1164
1166
|
let e = this._scroller();
|
|
1165
1167
|
if (!e || !this._isPhone()) return;
|
|
1166
1168
|
let t = e.clientWidth || 1, n = this._columns()[Math.round(e.scrollLeft / t)];
|
|
1167
|
-
if (n) for (let e of this.querySelectorAll(
|
|
1169
|
+
if (n) for (let e of this.querySelectorAll(xt)) e.getAttribute("data-wui-switch") === j(n) ? e.setAttribute("aria-current", "true") : e.removeAttribute("aria-current");
|
|
1168
1170
|
}
|
|
1169
|
-
},
|
|
1171
|
+
}, It = {
|
|
1170
1172
|
delete: "data:image/webp;base64,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",
|
|
1171
1173
|
info: "data:image/webp;base64,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",
|
|
1172
1174
|
primary: "data:image/webp;base64,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",
|
|
1173
1175
|
success: "data:image/webp;base64,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",
|
|
1174
1176
|
warning: "data:image/webp;base64,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"
|
|
1175
|
-
},
|
|
1177
|
+
}, Lt = { 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>" }, Rt = [
|
|
1176
1178
|
"success",
|
|
1177
1179
|
"error",
|
|
1178
1180
|
"warning",
|
|
1179
1181
|
"info",
|
|
1180
1182
|
"delete",
|
|
1181
1183
|
"primary"
|
|
1182
|
-
],
|
|
1184
|
+
], zt = class extends e {
|
|
1183
1185
|
static get observedAttributes() {
|
|
1184
1186
|
return ["tone", "size"];
|
|
1185
1187
|
}
|
|
@@ -1190,67 +1192,67 @@ var Nt = (e, t) => {
|
|
|
1190
1192
|
this.isConnected && this.render();
|
|
1191
1193
|
}
|
|
1192
1194
|
render() {
|
|
1193
|
-
let e = this.getAttribute("tone"), t = Number.parseInt(this.getAttribute("size"), 10) || 72, n =
|
|
1195
|
+
let e = this.getAttribute("tone"), t = Number.parseInt(this.getAttribute("size"), 10) || 72, n = Lt[e];
|
|
1194
1196
|
if (n) {
|
|
1195
1197
|
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>`;
|
|
1196
1198
|
return;
|
|
1197
1199
|
}
|
|
1198
|
-
let r =
|
|
1200
|
+
let r = It[e] || It.info;
|
|
1199
1201
|
this.innerHTML = `<img src="${r}" width="${t}" height="${t}" alt="" aria-hidden="true" draggable="false" />`;
|
|
1200
1202
|
}
|
|
1201
|
-
},
|
|
1202
|
-
function
|
|
1203
|
+
}, N = 4, Bt = 300, Vt = 400;
|
|
1204
|
+
function P(e, t, n = {}) {
|
|
1203
1205
|
if (!e || !t) return;
|
|
1204
1206
|
let r = e.getBoundingClientRect(), i = n.clampHeight ? t.scrollTop : 0;
|
|
1205
1207
|
n.clampHeight && (t.style.maxHeight = "");
|
|
1206
|
-
let a = t.offsetHeight, o = window.innerHeight - r.bottom, s = o < a +
|
|
1207
|
-
if (t.classList.toggle("drop-up", s), t.style.position = "fixed", t.style.top = s ? `${Math.max(
|
|
1208
|
-
let e = s ? r.top -
|
|
1208
|
+
let a = t.offsetHeight, o = window.innerHeight - r.bottom, s = o < a + N && r.top > o;
|
|
1209
|
+
if (t.classList.toggle("drop-up", s), t.style.position = "fixed", t.style.top = s ? `${Math.max(N, r.top - a - N)}px` : `${r.bottom + N}px`, n.clampHeight) {
|
|
1210
|
+
let e = s ? r.top - N * 2 : window.innerHeight - r.bottom - N * 2;
|
|
1209
1211
|
e < a && (t.style.maxHeight = `${Math.max(e, 0)}px`), t.scrollTop = i;
|
|
1210
1212
|
}
|
|
1211
|
-
n.matchWidth && (r.width >=
|
|
1212
|
-
let c = t.offsetWidth, l = Math.min(r.left, window.innerWidth - c -
|
|
1213
|
-
t.style.left = `${Math.max(
|
|
1213
|
+
n.matchWidth && (r.width >= Bt ? (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(Vt, window.innerWidth - N * 2)}px`));
|
|
1214
|
+
let c = t.offsetWidth, l = Math.min(r.left, window.innerWidth - c - N);
|
|
1215
|
+
t.style.left = `${Math.max(N, l)}px`;
|
|
1214
1216
|
}
|
|
1215
|
-
function
|
|
1216
|
-
|
|
1217
|
+
function Ht(e, t) {
|
|
1218
|
+
Ut(e), e._reanchor = t, e._reanchorScroll = (n) => {
|
|
1217
1219
|
n.target instanceof Node && typeof e.contains == "function" && e.contains(n.target) || t();
|
|
1218
1220
|
}, window.addEventListener("resize", e._reanchor), window.addEventListener("scroll", e._reanchorScroll, !0);
|
|
1219
1221
|
}
|
|
1220
|
-
function
|
|
1222
|
+
function Ut(e) {
|
|
1221
1223
|
e?._reanchor && (window.removeEventListener("resize", e._reanchor), window.removeEventListener("scroll", e._reanchorScroll, !0), e._reanchor = null, e._reanchorScroll = null);
|
|
1222
1224
|
}
|
|
1223
1225
|
//#endregion
|
|
1224
1226
|
//#region src/formMirror.js
|
|
1225
|
-
var
|
|
1226
|
-
function
|
|
1227
|
+
var Wt = "data-wui-mirror";
|
|
1228
|
+
function Gt(e, t, n, r) {
|
|
1227
1229
|
t.name = n, t.value = r == null ? "" : String(r);
|
|
1228
1230
|
for (let n of [...t.attributes]) n.name.startsWith("data-val") && !e.hasAttribute(n.name) && t.removeAttribute(n.name);
|
|
1229
1231
|
for (let n of e.attributes) n.name.startsWith("data-val") && t.setAttribute(n.name, n.value);
|
|
1230
1232
|
t.disabled = e.hasAttribute("disabled");
|
|
1231
1233
|
}
|
|
1232
|
-
function
|
|
1234
|
+
function Kt(e) {
|
|
1233
1235
|
let t = document.createElement("input");
|
|
1234
|
-
return t.type = "hidden", t.setAttribute(
|
|
1236
|
+
return t.type = "hidden", t.setAttribute(Wt, ""), e.appendChild(t), t;
|
|
1235
1237
|
}
|
|
1236
|
-
function
|
|
1237
|
-
let n = e.getAttribute("name"), r = e.querySelector(`:scope > input[${
|
|
1238
|
+
function F(e, t) {
|
|
1239
|
+
let n = e.getAttribute("name"), r = e.querySelector(`:scope > input[${Wt}]`);
|
|
1238
1240
|
if (!n) {
|
|
1239
1241
|
r?.remove();
|
|
1240
1242
|
return;
|
|
1241
1243
|
}
|
|
1242
|
-
r ||=
|
|
1244
|
+
r ||= Kt(e), Gt(e, r, n, t);
|
|
1243
1245
|
}
|
|
1244
|
-
function
|
|
1245
|
-
let n = e.getAttribute("name"), r = [...e.querySelectorAll(`:scope > input[${
|
|
1246
|
+
function I(e, t) {
|
|
1247
|
+
let n = e.getAttribute("name"), r = [...e.querySelectorAll(`:scope > input[${Wt}]`)], i = n ? t.length > 0 ? t : [""] : [];
|
|
1246
1248
|
for (let e of r.splice(i.length)) e.remove();
|
|
1247
1249
|
i.forEach((t, i) => {
|
|
1248
|
-
|
|
1250
|
+
Gt(e, r[i] ?? Kt(e), n, t);
|
|
1249
1251
|
});
|
|
1250
1252
|
}
|
|
1251
1253
|
//#endregion
|
|
1252
1254
|
//#region src/iconGlyphs.g.js
|
|
1253
|
-
var
|
|
1255
|
+
var qt = {
|
|
1254
1256
|
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>",
|
|
1255
1257
|
add: "<path d=\"M6 12h12M12 18V6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>",
|
|
1256
1258
|
"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>",
|
|
@@ -1457,14 +1459,14 @@ var Kt = {
|
|
|
1457
1459
|
"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>",
|
|
1458
1460
|
"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>"
|
|
1459
1461
|
};
|
|
1460
|
-
Object.keys(
|
|
1461
|
-
function
|
|
1462
|
-
let i =
|
|
1462
|
+
Object.keys(qt);
|
|
1463
|
+
function L(e, { size: t = 16, className: n = "", style: r = "" } = {}) {
|
|
1464
|
+
let i = qt[e];
|
|
1463
1465
|
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>` : "";
|
|
1464
1466
|
}
|
|
1465
1467
|
//#endregion
|
|
1466
1468
|
//#region src/listboxKeyNav.js
|
|
1467
|
-
function
|
|
1469
|
+
function Jt(e) {
|
|
1468
1470
|
let { getVisibleOptions: t, getActive: n, setActive: r, onEnter: i, onEscape: a, onTypeahead: o, typeaheadMs: s = 500 } = e, c = "", l = null, u = () => {
|
|
1469
1471
|
clearTimeout(l), l = null, c = "";
|
|
1470
1472
|
};
|
|
@@ -1495,18 +1497,18 @@ function qt(e) {
|
|
|
1495
1497
|
}
|
|
1496
1498
|
//#endregion
|
|
1497
1499
|
//#region src/optionLabel.js
|
|
1498
|
-
var
|
|
1500
|
+
var Yt = Symbol("wui.trustedHtml"), R = (e) => String(e ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'"), Xt = (e) => {
|
|
1499
1501
|
if (!e) return "";
|
|
1500
1502
|
let t = String(e).toLowerCase().replace(/[^a-z0-9-]/g, "");
|
|
1501
|
-
return t ?
|
|
1502
|
-
},
|
|
1503
|
+
return t ? L(t) : "";
|
|
1504
|
+
}, Zt = (e) => `wui-flag wui-flag-${e}`, Qt = (e) => {
|
|
1503
1505
|
let t = String(e ?? "").toLowerCase();
|
|
1504
|
-
return /^[a-z]{2}$/.test(t) ? `<span class="${
|
|
1505
|
-
},
|
|
1506
|
+
return /^[a-z]{2}$/.test(t) ? `<span class="${Zt(t)}" aria-hidden="true"></span>` : "";
|
|
1507
|
+
}, $t = (e) => {
|
|
1506
1508
|
if (e == null) return "";
|
|
1507
|
-
let t = e[
|
|
1509
|
+
let t = e[Yt] ? String(e.label ?? "") : R(e.label), n = Qt(e.flag) + Xt(e.icon);
|
|
1508
1510
|
return n ? `<span class="wui-opt-label">${n}${t}</span>` : t;
|
|
1509
|
-
},
|
|
1511
|
+
}, en = class extends e {
|
|
1510
1512
|
static formAssociated = !0;
|
|
1511
1513
|
_accessibleName() {
|
|
1512
1514
|
return this.getAttribute("aria-label") || this.getAttribute("placeholder") || "Select";
|
|
@@ -1565,14 +1567,14 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1565
1567
|
return this._value;
|
|
1566
1568
|
}
|
|
1567
1569
|
set value(e) {
|
|
1568
|
-
this._value = e == null ? "" : String(e),
|
|
1570
|
+
this._value = e == null ? "" : String(e), F(this, this._value);
|
|
1569
1571
|
let t = this._readOptions().find((e) => String(e.value) === this._value);
|
|
1570
|
-
this._label = t ?
|
|
1572
|
+
this._label = t ? tn(t.label) : "", this._syncInput(), this._renderOptions("");
|
|
1571
1573
|
}
|
|
1572
1574
|
set options(e) {
|
|
1573
1575
|
this._optionsProp = Array.isArray(e) ? e : [];
|
|
1574
1576
|
let t = this._readOptions().find((e) => String(e.value) === this._value);
|
|
1575
|
-
t && (this._label =
|
|
1577
|
+
t && (this._label = tn(t.label)), this._renderOptions(), this._syncInput();
|
|
1576
1578
|
}
|
|
1577
1579
|
get options() {
|
|
1578
1580
|
return this._readOptions();
|
|
@@ -1591,7 +1593,7 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1591
1593
|
}
|
|
1592
1594
|
_matchesKnownOption(e) {
|
|
1593
1595
|
let t = e.toLowerCase();
|
|
1594
|
-
return this._readOptions().some((e) =>
|
|
1596
|
+
return this._readOptions().some((e) => tn(e.label).toLowerCase() === t || String(e.value ?? "").toLowerCase() === t);
|
|
1595
1597
|
}
|
|
1596
1598
|
get _minChars() {
|
|
1597
1599
|
return Math.max(0, Number(this.getAttribute("min-chars")) || +!!this._remote);
|
|
@@ -1609,7 +1611,7 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1609
1611
|
value: e.getAttribute("value") ?? e.textContent.trim(),
|
|
1610
1612
|
label: e.innerHTML,
|
|
1611
1613
|
icon: e.getAttribute("icon") || void 0,
|
|
1612
|
-
[
|
|
1614
|
+
[Yt]: !0,
|
|
1613
1615
|
selected: e.hasAttribute("selected")
|
|
1614
1616
|
})));
|
|
1615
1617
|
}
|
|
@@ -1623,17 +1625,17 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1623
1625
|
let r = `${this.id}-listbox`;
|
|
1624
1626
|
this._listboxId = r, this.innerHTML = `
|
|
1625
1627
|
<div class="search-select${n}">
|
|
1626
|
-
<div class="input search-select-control search-select-ac" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${
|
|
1627
|
-
<input class="search-select-input search-select-ac-input" placeholder="${
|
|
1628
|
+
<div class="input search-select-control search-select-ac" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${z(r)}" aria-label="${z(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}>
|
|
1629
|
+
<input class="search-select-input search-select-ac-input" placeholder="${z(e)}" aria-autocomplete="list" autocomplete="off"${this.hasAttribute("disabled") ? " disabled" : ""} />
|
|
1628
1630
|
<span class="search-select-spinner spinner-border spinner-border-sm" role="status" aria-hidden="true" hidden></span>
|
|
1629
|
-
<button type="button" class="search-select-clear" aria-label="Clear" hidden>${
|
|
1631
|
+
<button type="button" class="search-select-clear" aria-label="Clear" hidden>${L("x")}</button>
|
|
1630
1632
|
</div>
|
|
1631
|
-
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${
|
|
1633
|
+
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${z(r)}" tabindex="-1" hidden>
|
|
1632
1634
|
<div class="search-select-options"></div>
|
|
1633
1635
|
<div class="search-select-empty" hidden>No matches</div>
|
|
1634
1636
|
<div class="search-select-hint" hidden>Type to search…</div>
|
|
1635
1637
|
</div>
|
|
1636
|
-
</div>`, this._rendered = !0,
|
|
1638
|
+
</div>`, this._rendered = !0, F(this, this._value), this._wire(), this._syncInput(), this._renderOptions();
|
|
1637
1639
|
}
|
|
1638
1640
|
_refs() {
|
|
1639
1641
|
return {
|
|
@@ -1662,7 +1664,7 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1662
1664
|
let t = this._refs();
|
|
1663
1665
|
if (!t.optionsWrap) return;
|
|
1664
1666
|
let n = e ?? (t.input ? t.input.value : ""), r = n.trim().toLowerCase(), i = this._readOptions();
|
|
1665
|
-
!this._remote && r && (i = i.filter((e) =>
|
|
1667
|
+
!this._remote && r && (i = i.filter((e) => tn(e.label).toLowerCase().includes(r)));
|
|
1666
1668
|
let a = n.trim(), o = this._allowCustom && a && !this._matchesKnownOption(a) ? [...i, {
|
|
1667
1669
|
value: a,
|
|
1668
1670
|
custom: !0
|
|
@@ -1670,11 +1672,11 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1670
1672
|
t.optionsWrap.innerHTML = o.map((e, t) => {
|
|
1671
1673
|
let n = `${s}-opt-${t}`;
|
|
1672
1674
|
if (e.custom) {
|
|
1673
|
-
let t = `Add “${
|
|
1674
|
-
return `<button type="button" role="option" id="${
|
|
1675
|
+
let t = `Add “${R(e.value)}”`;
|
|
1676
|
+
return `<button type="button" role="option" id="${z(n)}" class="search-select-option search-select-option-custom" data-value="${z(e.value)}" data-custom="true" aria-selected="false">${t}</button>`;
|
|
1675
1677
|
}
|
|
1676
1678
|
let r = String(e.value) === String(this._value);
|
|
1677
|
-
return `<button type="button" role="option" id="${
|
|
1679
|
+
return `<button type="button" role="option" id="${z(n)}" class="search-select-option${r ? " selected" : ""}" data-value="${z(e.value)}" aria-selected="${r}">${$t(e)}</button>`;
|
|
1678
1680
|
}).join(""), this._active = -1, t.control?.removeAttribute("aria-activedescendant");
|
|
1679
1681
|
let c = r.length < this._minChars;
|
|
1680
1682
|
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?.();
|
|
@@ -1683,7 +1685,7 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1683
1685
|
this._teardown();
|
|
1684
1686
|
let e = this._refs();
|
|
1685
1687
|
if (!e.control || !e.input) return;
|
|
1686
|
-
let t = () =>
|
|
1688
|
+
let t = () => P(e.control, e.menu, { matchWidth: !0 }), n = () => this._optionEls().filter((e) => !e.hidden), r = (t) => {
|
|
1687
1689
|
let r = n();
|
|
1688
1690
|
this._active = t;
|
|
1689
1691
|
for (let e of this._optionEls()) e.classList.remove("is-active");
|
|
@@ -1694,12 +1696,12 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1694
1696
|
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();
|
|
1695
1697
|
}, s = (t) => {
|
|
1696
1698
|
let n = t.dataset.custom === "true";
|
|
1697
|
-
this._value = t.dataset.value, this._label = n ? t.dataset.value :
|
|
1699
|
+
this._value = t.dataset.value, this._label = n ? t.dataset.value : tn(t.innerHTML), F(this, this._value), e.input.value = this._label, this.dispatchEvent(new CustomEvent("change", {
|
|
1698
1700
|
bubbles: !0,
|
|
1699
1701
|
detail: { isCustom: n }
|
|
1700
1702
|
})), o(), e.input.focus();
|
|
1701
1703
|
}, c = (t) => {
|
|
1702
|
-
this._value = t, this._label = t,
|
|
1704
|
+
this._value = t, this._label = t, F(this, t), e.input.value = t, this.dispatchEvent(new CustomEvent("change", {
|
|
1703
1705
|
bubbles: !0,
|
|
1704
1706
|
detail: { isCustom: !0 }
|
|
1705
1707
|
})), o();
|
|
@@ -1717,7 +1719,7 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1717
1719
|
}, this._timer = setTimeout(() => this._fireSearch(t, e), this._debounceMs);
|
|
1718
1720
|
} else this._renderOptions(t);
|
|
1719
1721
|
};
|
|
1720
|
-
this._navHandler =
|
|
1722
|
+
this._navHandler = Jt({
|
|
1721
1723
|
getVisibleOptions: n,
|
|
1722
1724
|
getActive: () => this._active,
|
|
1723
1725
|
setActive: (e) => r(e),
|
|
@@ -1757,11 +1759,11 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1757
1759
|
let t = e.target.closest(".search-select-option");
|
|
1758
1760
|
t && r(this._optionEls().indexOf(t));
|
|
1759
1761
|
}), e.optionsWrap.addEventListener("mouseleave", () => r(-1)), e.clear?.addEventListener("click", () => {
|
|
1760
|
-
this._value = "", this._label = "",
|
|
1762
|
+
this._value = "", this._label = "", F(this, ""), e.input.value = "", e.clear.hidden = !0, this._renderOptions(""), this.dispatchEvent(new Event("change", { bubbles: !0 })), e.input.focus();
|
|
1761
1763
|
}), this._bindGlobal = () => {
|
|
1762
1764
|
this._teardown(), this._onDocClick = (e) => {
|
|
1763
1765
|
i() && !this.contains(e.target) && o();
|
|
1764
|
-
}, document.addEventListener("click", this._onDocClick),
|
|
1766
|
+
}, document.addEventListener("click", this._onDocClick), Ht(this, () => {
|
|
1765
1767
|
i() && t();
|
|
1766
1768
|
});
|
|
1767
1769
|
}, this._bindGlobal();
|
|
@@ -1776,15 +1778,15 @@ var Jt = Symbol("wui.trustedHtml"), z = (e) => String(e ?? "").replace(/&/g, "&a
|
|
|
1776
1778
|
}));
|
|
1777
1779
|
}
|
|
1778
1780
|
_teardown() {
|
|
1779
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null),
|
|
1781
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), Ut(this), clearTimeout(this._timer), this._navHandler?.teardown();
|
|
1780
1782
|
}
|
|
1781
1783
|
disconnectedCallback() {
|
|
1782
1784
|
this._teardown();
|
|
1783
1785
|
}
|
|
1784
|
-
},
|
|
1786
|
+
}, z = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), tn = (e) => String(e ?? "").replace(/<[^>]*>/g, "");
|
|
1785
1787
|
//#endregion
|
|
1786
1788
|
//#region src/textMatch.js
|
|
1787
|
-
function
|
|
1789
|
+
function nn(e, t) {
|
|
1788
1790
|
let n = String(e ?? ""), r = String(t ?? "").trim();
|
|
1789
1791
|
if (!r || !n) return [{
|
|
1790
1792
|
text: n,
|
|
@@ -1810,7 +1812,7 @@ function tn(e, t) {
|
|
|
1810
1812
|
}
|
|
1811
1813
|
//#endregion
|
|
1812
1814
|
//#region src/WuiCommandPalette.js
|
|
1813
|
-
var
|
|
1815
|
+
var rn = "[role=\"option\"]", an = "No results", on = class extends e {
|
|
1814
1816
|
static get observedAttributes() {
|
|
1815
1817
|
return [
|
|
1816
1818
|
"filter",
|
|
@@ -1853,7 +1855,7 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
1853
1855
|
this.setAttribute("highlight", e ? "true" : "false");
|
|
1854
1856
|
}
|
|
1855
1857
|
get emptyText() {
|
|
1856
|
-
return this.getAttribute("empty-text") ??
|
|
1858
|
+
return this.getAttribute("empty-text") ?? an;
|
|
1857
1859
|
}
|
|
1858
1860
|
set emptyText(e) {
|
|
1859
1861
|
this.setAttribute("empty-text", String(e ?? ""));
|
|
@@ -1870,7 +1872,7 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
1870
1872
|
return this.querySelector("[role=\"combobox\"]");
|
|
1871
1873
|
}
|
|
1872
1874
|
_optionFrom(e, t = !1) {
|
|
1873
|
-
let n = e?.closest?.(
|
|
1875
|
+
let n = e?.closest?.(rn);
|
|
1874
1876
|
return n && this.contains(n) && !this._isHidden(n) && (t || !this._isDisabled(n)) ? n : null;
|
|
1875
1877
|
}
|
|
1876
1878
|
_isDisabled(e) {
|
|
@@ -1880,11 +1882,11 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
1880
1882
|
return e.hidden || !!e.closest("[role=\"group\"]")?.hidden;
|
|
1881
1883
|
}
|
|
1882
1884
|
_selectableOptions() {
|
|
1883
|
-
return [...this.querySelectorAll(
|
|
1885
|
+
return [...this.querySelectorAll(rn)].filter((e) => !this._isHidden(e) && !this._isDisabled(e));
|
|
1884
1886
|
}
|
|
1885
1887
|
_setActive(e, t) {
|
|
1886
1888
|
this._activeId = e ? e.id : null;
|
|
1887
|
-
for (let t of this.querySelectorAll(
|
|
1889
|
+
for (let t of this.querySelectorAll(rn)) t.setAttribute("aria-selected", t === e ? "true" : "false");
|
|
1888
1890
|
let n = this._input();
|
|
1889
1891
|
n && (e ? n.setAttribute("aria-activedescendant", e.id) : n.removeAttribute("aria-activedescendant")), e && t && e.scrollIntoView({ block: "nearest" });
|
|
1890
1892
|
}
|
|
@@ -1920,11 +1922,11 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
1920
1922
|
}
|
|
1921
1923
|
_applyFilter() {
|
|
1922
1924
|
let e = this._input(), t = (e ? e.value : "").trim(), n = t.toLowerCase(), r = this.highlight, i = 0;
|
|
1923
|
-
for (let e of this.querySelectorAll(
|
|
1925
|
+
for (let e of this.querySelectorAll(rn)) {
|
|
1924
1926
|
let a = e.querySelector(".wui-cmd-item-label"), o = e.dataset.label ?? a?.textContent ?? "", s = !n || o.toLowerCase().includes(n);
|
|
1925
|
-
e.hidden = !s, s && i++, a && (a.innerHTML =
|
|
1927
|
+
e.hidden = !s, s && i++, a && (a.innerHTML = nn(o, r ? t : "").map((e) => e.match ? `<mark class="wui-cmd-mark">${R(e.text)}</mark>` : R(e.text)).join(""));
|
|
1926
1928
|
}
|
|
1927
|
-
for (let e of this.querySelectorAll("[role=\"group\"]")) e.hidden = ![...e.querySelectorAll(
|
|
1929
|
+
for (let e of this.querySelectorAll("[role=\"group\"]")) e.hidden = ![...e.querySelectorAll(rn)].some((e) => !e.hidden);
|
|
1928
1930
|
let a = this.querySelector("[role=\"listbox\"]");
|
|
1929
1931
|
a && (a.hidden = i === 0);
|
|
1930
1932
|
let o = this.querySelector(".wui-cmd-empty");
|
|
@@ -1933,7 +1935,7 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
1933
1935
|
_teardown() {
|
|
1934
1936
|
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);
|
|
1935
1937
|
}
|
|
1936
|
-
},
|
|
1938
|
+
}, sn = {
|
|
1937
1939
|
"--color-primary": "#4F46E5",
|
|
1938
1940
|
"--color-primary-hover": "#4338CA",
|
|
1939
1941
|
"--color-text": "#071437",
|
|
@@ -1943,21 +1945,21 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
1943
1945
|
"--wui-radius-lg": "14px",
|
|
1944
1946
|
"--wui-shadow-overlay-lg": "0 24px 60px -16px rgba(7, 20, 55, 0.28)",
|
|
1945
1947
|
"--wui-z-fixed": "1030"
|
|
1946
|
-
},
|
|
1948
|
+
}, B = (e) => `var(${e}, ${sn[e]})`, cn = `
|
|
1947
1949
|
:host {
|
|
1948
1950
|
all: initial;
|
|
1949
1951
|
position: fixed;
|
|
1950
1952
|
bottom: 20px;
|
|
1951
1953
|
left: 20px;
|
|
1952
1954
|
right: auto;
|
|
1953
|
-
z-index: ${
|
|
1955
|
+
z-index: ${B("--wui-z-fixed")};
|
|
1954
1956
|
display: block;
|
|
1955
1957
|
width: 420px;
|
|
1956
1958
|
max-width: calc(100vw - 40px);
|
|
1957
1959
|
font-family: inherit;
|
|
1958
1960
|
font-size: 16px;
|
|
1959
1961
|
line-height: 1.5;
|
|
1960
|
-
color: ${
|
|
1962
|
+
color: ${B("--color-text")};
|
|
1961
1963
|
}
|
|
1962
1964
|
:host([position="bottom-right"]) {
|
|
1963
1965
|
right: 20px;
|
|
@@ -1975,10 +1977,10 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
1975
1977
|
|
|
1976
1978
|
.wui-consent-banner-panel {
|
|
1977
1979
|
padding: 20px;
|
|
1978
|
-
background: ${
|
|
1979
|
-
border: 1px solid ${
|
|
1980
|
-
border-radius: ${
|
|
1981
|
-
box-shadow: ${
|
|
1980
|
+
background: ${B("--color-surface")};
|
|
1981
|
+
border: 1px solid ${B("--color-border")};
|
|
1982
|
+
border-radius: ${B("--wui-radius-lg")};
|
|
1983
|
+
box-shadow: ${B("--wui-shadow-overlay-lg")};
|
|
1982
1984
|
text-align: start;
|
|
1983
1985
|
pointer-events: auto;
|
|
1984
1986
|
}
|
|
@@ -1987,16 +1989,16 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
1987
1989
|
font-size: 18px;
|
|
1988
1990
|
font-weight: 600;
|
|
1989
1991
|
line-height: 1.3;
|
|
1990
|
-
color: ${
|
|
1992
|
+
color: ${B("--color-text")};
|
|
1991
1993
|
}
|
|
1992
1994
|
.wui-consent-banner-description {
|
|
1993
1995
|
margin: 0 0 16px;
|
|
1994
1996
|
font-size: 14px;
|
|
1995
1997
|
line-height: 1.5;
|
|
1996
|
-
color: ${
|
|
1998
|
+
color: ${B("--color-text-muted")};
|
|
1997
1999
|
}
|
|
1998
2000
|
.wui-consent-banner-policy {
|
|
1999
|
-
color: ${
|
|
2001
|
+
color: ${B("--color-primary")};
|
|
2000
2002
|
font-weight: 500;
|
|
2001
2003
|
}
|
|
2002
2004
|
|
|
@@ -2007,15 +2009,15 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2007
2009
|
margin: 0 0 16px;
|
|
2008
2010
|
padding: 12px 0;
|
|
2009
2011
|
overflow-y: auto;
|
|
2010
|
-
border-top: 1px solid ${
|
|
2011
|
-
border-bottom: 1px solid ${
|
|
2012
|
+
border-top: 1px solid ${B("--color-border")};
|
|
2013
|
+
border-bottom: 1px solid ${B("--color-border")};
|
|
2012
2014
|
}
|
|
2013
2015
|
.wui-consent-banner-category-description {
|
|
2014
2016
|
margin: 2px 0 0;
|
|
2015
2017
|
padding-inline-start: 2.5em;
|
|
2016
2018
|
font-size: 12px;
|
|
2017
2019
|
line-height: 1.4;
|
|
2018
|
-
color: ${
|
|
2020
|
+
color: ${B("--color-text-muted")};
|
|
2019
2021
|
}
|
|
2020
2022
|
|
|
2021
2023
|
.form-check {
|
|
@@ -2033,20 +2035,20 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2033
2035
|
margin: 0;
|
|
2034
2036
|
border: 1px solid rgba(0, 0, 0, 0.25);
|
|
2035
2037
|
border-radius: 2em;
|
|
2036
|
-
background: ${
|
|
2038
|
+
background: ${B("--color-surface")} radial-gradient(circle, rgba(0, 0, 0, 0.25) 0.35em, transparent 0.4em) left / 1em 1em no-repeat;
|
|
2037
2039
|
cursor: pointer;
|
|
2038
2040
|
transition: background-position 0.15s ease-in-out;
|
|
2039
2041
|
}
|
|
2040
2042
|
.form-check-input:checked {
|
|
2041
|
-
border-color: ${
|
|
2042
|
-
background: ${
|
|
2043
|
+
border-color: ${B("--color-primary")};
|
|
2044
|
+
background: ${B("--color-primary")} radial-gradient(circle, #fff 0.35em, transparent 0.4em) right / 1em 1em no-repeat;
|
|
2043
2045
|
}
|
|
2044
2046
|
.form-check-input:disabled {
|
|
2045
2047
|
opacity: 0.5;
|
|
2046
2048
|
cursor: default;
|
|
2047
2049
|
}
|
|
2048
2050
|
.form-check-input:focus-visible {
|
|
2049
|
-
outline: 2px solid ${
|
|
2051
|
+
outline: 2px solid ${B("--color-primary")};
|
|
2050
2052
|
outline-offset: 2px;
|
|
2051
2053
|
}
|
|
2052
2054
|
.form-check-label {
|
|
@@ -2075,33 +2077,33 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2075
2077
|
cursor: pointer;
|
|
2076
2078
|
}
|
|
2077
2079
|
.btn:focus-visible {
|
|
2078
|
-
outline: 2px solid ${
|
|
2080
|
+
outline: 2px solid ${B("--color-primary")};
|
|
2079
2081
|
outline-offset: 2px;
|
|
2080
2082
|
}
|
|
2081
2083
|
.btn-primary {
|
|
2082
|
-
background: ${
|
|
2083
|
-
border-color: ${
|
|
2084
|
+
background: ${B("--color-primary")};
|
|
2085
|
+
border-color: ${B("--color-primary")};
|
|
2084
2086
|
color: #fff;
|
|
2085
2087
|
}
|
|
2086
2088
|
.btn-primary:hover {
|
|
2087
|
-
background: ${
|
|
2088
|
-
border-color: ${
|
|
2089
|
+
background: ${B("--color-primary-hover")};
|
|
2090
|
+
border-color: ${B("--color-primary-hover")};
|
|
2089
2091
|
}
|
|
2090
2092
|
.btn-outline-secondary {
|
|
2091
|
-
border-color: ${
|
|
2092
|
-
color: ${
|
|
2093
|
+
border-color: ${B("--color-text-muted")};
|
|
2094
|
+
color: ${B("--color-text-muted")};
|
|
2093
2095
|
}
|
|
2094
2096
|
.btn-outline-secondary:hover {
|
|
2095
|
-
background: ${
|
|
2097
|
+
background: ${B("--color-text-muted")};
|
|
2096
2098
|
color: #fff;
|
|
2097
2099
|
}
|
|
2098
2100
|
.btn-link {
|
|
2099
2101
|
font-weight: 400;
|
|
2100
|
-
color: ${
|
|
2102
|
+
color: ${B("--color-primary")};
|
|
2101
2103
|
text-decoration: underline;
|
|
2102
2104
|
}
|
|
2103
2105
|
.btn-link:hover {
|
|
2104
|
-
color: ${
|
|
2106
|
+
color: ${B("--color-primary-hover")};
|
|
2105
2107
|
}
|
|
2106
2108
|
.wui-consent-banner-settings-toggle {
|
|
2107
2109
|
margin-inline-end: auto;
|
|
@@ -2121,7 +2123,7 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2121
2123
|
max-width: none;
|
|
2122
2124
|
}
|
|
2123
2125
|
}
|
|
2124
|
-
`,
|
|
2126
|
+
`, ln = "wui-consent-save", un = "[data-consent-settings]", V = {
|
|
2125
2127
|
heading: "Cookies on this site",
|
|
2126
2128
|
description: "We use cookies to understand how the site is used and to measure our campaigns. You can change your choice at any time.",
|
|
2127
2129
|
policyLabel: "Cookie policy",
|
|
@@ -2137,11 +2139,11 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2137
2139
|
rejectLabel: "Reject all",
|
|
2138
2140
|
acceptLabel: "Accept all",
|
|
2139
2141
|
saveLabel: "Save preferences"
|
|
2140
|
-
},
|
|
2142
|
+
}, dn = [
|
|
2141
2143
|
"analytics",
|
|
2142
2144
|
"functional",
|
|
2143
2145
|
"marketing"
|
|
2144
|
-
],
|
|
2146
|
+
], fn = 0, pn = class extends e {
|
|
2145
2147
|
static get observedAttributes() {
|
|
2146
2148
|
return [
|
|
2147
2149
|
"heading",
|
|
@@ -2154,12 +2156,12 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2154
2156
|
];
|
|
2155
2157
|
}
|
|
2156
2158
|
constructor() {
|
|
2157
|
-
super(),
|
|
2159
|
+
super(), fn += 1, this._uid = `wui-consent-${fn}`, this._preferences = {
|
|
2158
2160
|
analytics: !1,
|
|
2159
2161
|
functional: !1,
|
|
2160
2162
|
marketing: !1
|
|
2161
2163
|
}, this._settings = !1, this._onDocumentClick = (e) => {
|
|
2162
|
-
e.target instanceof Element && e.target.closest(
|
|
2164
|
+
e.target instanceof Element && e.target.closest(un) && (e.preventDefault(), this.open({
|
|
2163
2165
|
settings: !0,
|
|
2164
2166
|
focus: !0
|
|
2165
2167
|
}));
|
|
@@ -2178,13 +2180,13 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2178
2180
|
this.toggleAttribute("standalone", e === !0 || e === "" || e === "true");
|
|
2179
2181
|
}
|
|
2180
2182
|
get heading() {
|
|
2181
|
-
return this.getAttribute("heading") ||
|
|
2183
|
+
return this.getAttribute("heading") || V.heading;
|
|
2182
2184
|
}
|
|
2183
2185
|
set heading(e) {
|
|
2184
2186
|
this.setAttribute("heading", String(e ?? ""));
|
|
2185
2187
|
}
|
|
2186
2188
|
get description() {
|
|
2187
|
-
return this.getAttribute("description") ||
|
|
2189
|
+
return this.getAttribute("description") || V.description;
|
|
2188
2190
|
}
|
|
2189
2191
|
set description(e) {
|
|
2190
2192
|
this.setAttribute("description", String(e ?? ""));
|
|
@@ -2196,25 +2198,25 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2196
2198
|
this.setAttribute("policy-href", String(e ?? ""));
|
|
2197
2199
|
}
|
|
2198
2200
|
get policyLabel() {
|
|
2199
|
-
return this.getAttribute("policy-label") ||
|
|
2201
|
+
return this.getAttribute("policy-label") || V.policyLabel;
|
|
2200
2202
|
}
|
|
2201
2203
|
set policyLabel(e) {
|
|
2202
2204
|
this.setAttribute("policy-label", String(e ?? ""));
|
|
2203
2205
|
}
|
|
2204
2206
|
get analyticsDescription() {
|
|
2205
|
-
return this.getAttribute("analytics-description") ||
|
|
2207
|
+
return this.getAttribute("analytics-description") || V.analyticsDescription;
|
|
2206
2208
|
}
|
|
2207
2209
|
set analyticsDescription(e) {
|
|
2208
2210
|
this.setAttribute("analytics-description", String(e ?? ""));
|
|
2209
2211
|
}
|
|
2210
2212
|
get functionalDescription() {
|
|
2211
|
-
return this.getAttribute("functional-description") ||
|
|
2213
|
+
return this.getAttribute("functional-description") || V.functionalDescription;
|
|
2212
2214
|
}
|
|
2213
2215
|
set functionalDescription(e) {
|
|
2214
2216
|
this.setAttribute("functional-description", String(e ?? ""));
|
|
2215
2217
|
}
|
|
2216
2218
|
get marketingDescription() {
|
|
2217
|
-
return this.getAttribute("marketing-description") ||
|
|
2219
|
+
return this.getAttribute("marketing-description") || V.marketingDescription;
|
|
2218
2220
|
}
|
|
2219
2221
|
set marketingDescription(e) {
|
|
2220
2222
|
this.setAttribute("marketing-description", String(e ?? ""));
|
|
@@ -2242,22 +2244,22 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2242
2244
|
this._rendered && this.render();
|
|
2243
2245
|
}
|
|
2244
2246
|
render() {
|
|
2245
|
-
let e = this.isOpen, t = this._uid, n = this.policyHref ? ` <a class="wui-consent-banner-policy" href="${
|
|
2246
|
-
r.innerHTML = `${r === this ? "" : `<style>${
|
|
2247
|
+
let e = this.isOpen, t = this._uid, n = this.policyHref ? ` <a class="wui-consent-banner-policy" href="${gn(this.policyHref)}">${hn(this.policyLabel)}</a>` : "", r = this._root();
|
|
2248
|
+
r.innerHTML = `${r === this ? "" : `<style>${cn}</style>`}
|
|
2247
2249
|
<div class="wui-consent-banner-panel" role="dialog" aria-labelledby="${t}-heading" aria-describedby="${t}-description" hidden>
|
|
2248
|
-
<h2 class="wui-consent-banner-heading" id="${t}-heading">${
|
|
2249
|
-
<p class="wui-consent-banner-description" id="${t}-description">${
|
|
2250
|
+
<h2 class="wui-consent-banner-heading" id="${t}-heading">${hn(this.heading)}</h2>
|
|
2251
|
+
<p class="wui-consent-banner-description" id="${t}-description">${hn(this.description)}${n}</p>
|
|
2250
2252
|
<div class="wui-consent-banner-settings" hidden>
|
|
2251
|
-
${
|
|
2252
|
-
${
|
|
2253
|
-
${
|
|
2254
|
-
${
|
|
2253
|
+
${mn(t, "essential", V.essentialLabel, V.essentialDescription, !0)}
|
|
2254
|
+
${mn(t, "analytics", V.analyticsLabel, this.analyticsDescription, !1)}
|
|
2255
|
+
${mn(t, "functional", V.functionalLabel, this.functionalDescription, !1)}
|
|
2256
|
+
${mn(t, "marketing", V.marketingLabel, this.marketingDescription, !1)}
|
|
2255
2257
|
</div>
|
|
2256
2258
|
<div class="wui-consent-banner-actions">
|
|
2257
|
-
<button type="button" class="btn btn-sm btn-link wui-consent-banner-settings-toggle" aria-expanded="false">${
|
|
2258
|
-
<button type="button" class="btn btn-sm btn-outline-secondary wui-consent-banner-reject">${
|
|
2259
|
-
<button type="button" class="btn btn-sm btn-primary wui-consent-banner-accept">${
|
|
2260
|
-
<button type="button" class="btn btn-sm btn-primary wui-consent-banner-save" hidden>${
|
|
2259
|
+
<button type="button" class="btn btn-sm btn-link wui-consent-banner-settings-toggle" aria-expanded="false">${V.settingsLabel}</button>
|
|
2260
|
+
<button type="button" class="btn btn-sm btn-outline-secondary wui-consent-banner-reject">${V.rejectLabel}</button>
|
|
2261
|
+
<button type="button" class="btn btn-sm btn-primary wui-consent-banner-accept">${V.acceptLabel}</button>
|
|
2262
|
+
<button type="button" class="btn btn-sm btn-primary wui-consent-banner-save" hidden>${V.saveLabel}</button>
|
|
2261
2263
|
</div>
|
|
2262
2264
|
</div>`, this._rendered = !0, this._wire(), this._applyPreferences(), this._showSettings(this._settings), e && (this._panel().hidden = !1);
|
|
2263
2265
|
}
|
|
@@ -2287,7 +2289,7 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2287
2289
|
})), 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));
|
|
2288
2290
|
}
|
|
2289
2291
|
_save(e) {
|
|
2290
|
-
this._preferences = { ...e }, this.dispatchEvent(new CustomEvent(
|
|
2292
|
+
this._preferences = { ...e }, this.dispatchEvent(new CustomEvent(ln, {
|
|
2291
2293
|
bubbles: !0,
|
|
2292
2294
|
composed: !0,
|
|
2293
2295
|
detail: { ...e }
|
|
@@ -2295,11 +2297,11 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2295
2297
|
}
|
|
2296
2298
|
_switchValues() {
|
|
2297
2299
|
let e = {};
|
|
2298
|
-
for (let t of
|
|
2300
|
+
for (let t of dn) e[t] = this._root().querySelector(`input[data-category="${t}"]`)?.checked === !0;
|
|
2299
2301
|
return e;
|
|
2300
2302
|
}
|
|
2301
2303
|
_applyPreferences() {
|
|
2302
|
-
for (let e of
|
|
2304
|
+
for (let e of dn) {
|
|
2303
2305
|
let t = this._root().querySelector(`input[data-category="${e}"]`);
|
|
2304
2306
|
t && (t.checked = this._preferences[e]);
|
|
2305
2307
|
}
|
|
@@ -2317,47 +2319,47 @@ var nn = "[role=\"option\"]", rn = "No results", an = class extends e {
|
|
|
2317
2319
|
}
|
|
2318
2320
|
}
|
|
2319
2321
|
};
|
|
2320
|
-
function
|
|
2322
|
+
function mn(e, t, n, r, i) {
|
|
2321
2323
|
let a = `${e}-${t}`;
|
|
2322
2324
|
return `<div class="wui-consent-banner-category">
|
|
2323
2325
|
<div class="form-check form-switch">
|
|
2324
2326
|
<input class="form-check-input" type="checkbox" role="switch" id="${a}" data-category="${t}"${i ? " checked disabled" : ""} />
|
|
2325
|
-
<label class="form-check-label" for="${a}">${
|
|
2327
|
+
<label class="form-check-label" for="${a}">${hn(n)}</label>
|
|
2326
2328
|
</div>
|
|
2327
|
-
<p class="wui-consent-banner-category-description">${
|
|
2329
|
+
<p class="wui-consent-banner-category-description">${hn(r)}</p>
|
|
2328
2330
|
</div>`;
|
|
2329
2331
|
}
|
|
2330
|
-
var
|
|
2331
|
-
function
|
|
2332
|
-
let r =
|
|
2332
|
+
var hn = (e) => String(e ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), gn = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), _n = "[role=\"menuitem\"]", vn = "input, textarea, select, [contenteditable=\"\"], [contenteditable=\"true\"]", yn = "data-open", bn = 500, xn = 10, Sn = 400, Cn = null, wn = null, Tn = /* @__PURE__ */ new WeakMap();
|
|
2333
|
+
function En(e, t, n) {
|
|
2334
|
+
let r = Tn.get(e);
|
|
2333
2335
|
if (r) {
|
|
2334
2336
|
if (r.region === t || t.contains(r.region)) return !1;
|
|
2335
2337
|
r.cancel();
|
|
2336
2338
|
}
|
|
2337
|
-
return
|
|
2339
|
+
return Tn.set(e, {
|
|
2338
2340
|
region: t,
|
|
2339
2341
|
cancel: n
|
|
2340
2342
|
}), !0;
|
|
2341
2343
|
}
|
|
2342
|
-
var
|
|
2344
|
+
var Dn = (e) => e instanceof Element ? e : e?.parentElement ?? null, On = class extends e {
|
|
2343
2345
|
static get observedAttributes() {
|
|
2344
2346
|
return ["disabled"];
|
|
2345
2347
|
}
|
|
2346
2348
|
constructor() {
|
|
2347
|
-
super(), this._region = null, this._origin = null, this._returnFocus = null, this._press = null, this._swallowClick = !1, this._nav =
|
|
2349
|
+
super(), this._region = null, this._origin = null, this._returnFocus = null, this._press = null, this._swallowClick = !1, this._nav = Jt({
|
|
2348
2350
|
getVisibleOptions: () => this._items(),
|
|
2349
2351
|
getActive: () => this._items().indexOf(document.activeElement),
|
|
2350
2352
|
setActive: (e) => this._items()[e]?.focus({ preventScroll: !0 })
|
|
2351
2353
|
}), this._onContextMenu = (e) => this._handleContextMenu(e), this._onContextMenuCapture = (e) => {
|
|
2352
2354
|
this.isOpen && !this._inPanel(e.target) && !this._isKeyEcho() && this.close();
|
|
2353
2355
|
}, this._onDocKeyDown = (e) => this._handleDocKeyDown(e), this._onPointerDown = (e) => this._handlePointerDown(e), this._onPressMove = (e) => {
|
|
2354
|
-
this._press && Math.hypot(e.clientX - this._press.x, e.clientY - this._press.y) >
|
|
2356
|
+
this._press && Math.hypot(e.clientX - this._press.x, e.clientY - this._press.y) > xn && this._cancelPress();
|
|
2355
2357
|
}, this._onPressEnd = () => this._cancelPress(), this._onClickCapture = (e) => {
|
|
2356
2358
|
!this._swallowClick || !this._region?.contains(e.target) || (this._swallowClick = !1, e.preventDefault(), e.stopImmediatePropagation());
|
|
2357
2359
|
}, this._onKeyDown = (e) => {
|
|
2358
2360
|
this._inPanel(e.target) && this._handleMenuKey(e);
|
|
2359
2361
|
}, this._onClick = (e) => this._handleClick(e), this._onMouseMove = (e) => {
|
|
2360
|
-
let t =
|
|
2362
|
+
let t = Dn(e.target)?.closest(_n);
|
|
2361
2363
|
t && this._inPanel(t) && !this._isDisabled(t) && t !== document.activeElement && t.focus({ preventScroll: !0 });
|
|
2362
2364
|
}, this._onDismiss = (e) => {
|
|
2363
2365
|
e.type === "scroll" && this._inPanel(e.target) || this.close();
|
|
@@ -2387,16 +2389,16 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
2387
2389
|
this.toggleAttribute("disabled", !!e);
|
|
2388
2390
|
}
|
|
2389
2391
|
get isOpen() {
|
|
2390
|
-
return this._panel()?.hasAttribute(
|
|
2392
|
+
return this._panel()?.hasAttribute(yn) ?? !1;
|
|
2391
2393
|
}
|
|
2392
2394
|
open(e, t, { region: n = this, origin: r = n, keyboard: i = !1 } = {}) {
|
|
2393
2395
|
let a = this._panel();
|
|
2394
2396
|
if (a) {
|
|
2395
|
-
if (
|
|
2397
|
+
if (Cn && Cn !== this && Cn.close(!0), !this.isOpen) {
|
|
2396
2398
|
let e = document.activeElement;
|
|
2397
2399
|
this._returnFocus = e && e !== document.body && !this._inPanel(e) ? e : null;
|
|
2398
2400
|
}
|
|
2399
|
-
this._region = n, this._origin = r,
|
|
2401
|
+
this._region = n, this._origin = r, wn = null, a.setAttribute(yn, ""), Cn = this, P({ getBoundingClientRect: () => ({
|
|
2400
2402
|
left: e,
|
|
2401
2403
|
right: e,
|
|
2402
2404
|
top: t,
|
|
@@ -2416,8 +2418,8 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
2416
2418
|
}
|
|
2417
2419
|
close(e = !1) {
|
|
2418
2420
|
let t = this._panel();
|
|
2419
|
-
if (!t?.hasAttribute(
|
|
2420
|
-
t.removeAttribute(
|
|
2421
|
+
if (!t?.hasAttribute(yn)) return;
|
|
2422
|
+
t.removeAttribute(yn), Cn === this && (Cn = null), window.removeEventListener("scroll", this._onDismiss, !0), window.removeEventListener("resize", this._onDismiss), window.removeEventListener("blur", this._onDismiss), this._nav.teardown();
|
|
2421
2423
|
let n = this._returnFocus;
|
|
2422
2424
|
this._returnFocus = null, e && n?.isConnected && n.focus({ preventScroll: !0 });
|
|
2423
2425
|
}
|
|
@@ -2428,49 +2430,49 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
2428
2430
|
return !!e && !!this._panel()?.contains(e);
|
|
2429
2431
|
}
|
|
2430
2432
|
_items() {
|
|
2431
|
-
return [...this._panel()?.querySelectorAll(
|
|
2433
|
+
return [...this._panel()?.querySelectorAll(_n) ?? []].filter((e) => !this._isDisabled(e));
|
|
2432
2434
|
}
|
|
2433
2435
|
_isDisabled(e) {
|
|
2434
2436
|
return e.getAttribute("aria-disabled") === "true";
|
|
2435
2437
|
}
|
|
2436
2438
|
_regionFor(e) {
|
|
2437
|
-
let t =
|
|
2438
|
-
if (!t || this.disabled || !this._panel() || this._inPanel(t) || t.closest(
|
|
2439
|
+
let t = Dn(e);
|
|
2440
|
+
if (!t || this.disabled || !this._panel() || this._inPanel(t) || t.closest(vn)) return null;
|
|
2439
2441
|
let n = this.target;
|
|
2440
2442
|
return n ? t.closest(n) : this.contains(t) ? this : null;
|
|
2441
2443
|
}
|
|
2442
2444
|
_isKeyEcho() {
|
|
2443
|
-
return
|
|
2445
|
+
return wn?.menu === this && this.isOpen && performance.now() - wn.at < Sn;
|
|
2444
2446
|
}
|
|
2445
2447
|
_handleContextMenu(e) {
|
|
2446
2448
|
if (this._inPanel(e.target)) {
|
|
2447
2449
|
e.preventDefault();
|
|
2448
2450
|
return;
|
|
2449
2451
|
}
|
|
2450
|
-
if (e.defaultPrevented && !
|
|
2452
|
+
if (e.defaultPrevented && !Tn.has(e)) return;
|
|
2451
2453
|
let t = this._regionFor(e.target);
|
|
2452
2454
|
if (t) {
|
|
2453
2455
|
if (this._isKeyEcho()) {
|
|
2454
2456
|
e.preventDefault();
|
|
2455
2457
|
return;
|
|
2456
2458
|
}
|
|
2457
|
-
e.shiftKey ||
|
|
2459
|
+
e.shiftKey || En(e, t, () => this.close(!0)) && (e.preventDefault(), this.open(e.clientX, e.clientY, {
|
|
2458
2460
|
region: t,
|
|
2459
|
-
origin:
|
|
2461
|
+
origin: Dn(e.target)
|
|
2460
2462
|
}));
|
|
2461
2463
|
}
|
|
2462
2464
|
}
|
|
2463
2465
|
_handleDocKeyDown(e) {
|
|
2464
|
-
if (e.defaultPrevented && !
|
|
2466
|
+
if (e.defaultPrevented && !Tn.has(e) || !(e.key === "ContextMenu" || e.key === "F10" && e.shiftKey) || this._inPanel(e.target)) return;
|
|
2465
2467
|
let t = this._regionFor(e.target);
|
|
2466
|
-
if (!t || !
|
|
2468
|
+
if (!t || !En(e, t, () => this.close(!0))) return;
|
|
2467
2469
|
e.preventDefault();
|
|
2468
|
-
let n =
|
|
2470
|
+
let n = Dn(e.target), r = n.getBoundingClientRect();
|
|
2469
2471
|
this.open(r.left + Math.min(16, r.width / 2), r.bottom, {
|
|
2470
2472
|
region: t,
|
|
2471
2473
|
origin: n,
|
|
2472
2474
|
keyboard: !0
|
|
2473
|
-
}),
|
|
2475
|
+
}), wn = {
|
|
2474
2476
|
menu: this,
|
|
2475
2477
|
at: performance.now()
|
|
2476
2478
|
};
|
|
@@ -2478,9 +2480,9 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
2478
2480
|
_handlePointerDown(e) {
|
|
2479
2481
|
if (e.pointerType !== "touch") return;
|
|
2480
2482
|
let t = this._regionFor(e.target);
|
|
2481
|
-
if (!t || !
|
|
2483
|
+
if (!t || !En(e, t, () => this._cancelPress())) return;
|
|
2482
2484
|
this._cancelPress();
|
|
2483
|
-
let { clientX: n, clientY: r } = e, i =
|
|
2485
|
+
let { clientX: n, clientY: r } = e, i = Dn(e.target);
|
|
2484
2486
|
this._press = {
|
|
2485
2487
|
x: n,
|
|
2486
2488
|
y: r,
|
|
@@ -2489,7 +2491,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
2489
2491
|
region: t,
|
|
2490
2492
|
origin: i
|
|
2491
2493
|
});
|
|
2492
|
-
},
|
|
2494
|
+
}, bn)
|
|
2493
2495
|
}, document.addEventListener("pointermove", this._onPressMove, { passive: !0 }), document.addEventListener("pointerup", this._onPressEnd), document.addEventListener("pointercancel", this._onPressEnd), window.addEventListener("scroll", this._onPressEnd, !0);
|
|
2494
2496
|
}
|
|
2495
2497
|
_cancelPress() {
|
|
@@ -2500,7 +2502,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
2500
2502
|
else if (e.key === "Tab") this.close(!0);
|
|
2501
2503
|
else if (e.key === "ArrowDown" || e.key === "ArrowUp") e.preventDefault(), this._step(e.key === "ArrowDown" ? 1 : -1);
|
|
2502
2504
|
else if (e.key === " ") {
|
|
2503
|
-
let t =
|
|
2505
|
+
let t = Dn(e.target)?.closest(_n);
|
|
2504
2506
|
e.preventDefault(), t && t.click();
|
|
2505
2507
|
} else this._nav.handler(e);
|
|
2506
2508
|
}
|
|
@@ -2511,7 +2513,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
2511
2513
|
t[n < 0 ? e > 0 ? 0 : t.length - 1 : (n + e + t.length) % t.length].focus({ preventScroll: !0 });
|
|
2512
2514
|
}
|
|
2513
2515
|
_handleClick(e) {
|
|
2514
|
-
let t =
|
|
2516
|
+
let t = Dn(e.target)?.closest(_n);
|
|
2515
2517
|
if (!(!t || !this._inPanel(t))) {
|
|
2516
2518
|
if (this._isDisabled(t)) {
|
|
2517
2519
|
e.preventDefault(), e.stopPropagation();
|
|
@@ -2531,7 +2533,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
2531
2533
|
_teardown() {
|
|
2532
2534
|
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);
|
|
2533
2535
|
}
|
|
2534
|
-
},
|
|
2536
|
+
}, kn = [
|
|
2535
2537
|
[
|
|
2536
2538
|
"AF",
|
|
2537
2539
|
"Afghanistan",
|
|
@@ -3757,11 +3759,11 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
3757
3759
|
"Zimbabwe",
|
|
3758
3760
|
"263"
|
|
3759
3761
|
]
|
|
3760
|
-
],
|
|
3762
|
+
], An = (e) => (kn.find((t) => t[0] === e) || [
|
|
3761
3763
|
"",
|
|
3762
3764
|
"",
|
|
3763
3765
|
""
|
|
3764
|
-
])[2],
|
|
3766
|
+
])[2], jn = class extends e {
|
|
3765
3767
|
static formAssociated = !0;
|
|
3766
3768
|
static get observedAttributes() {
|
|
3767
3769
|
return [
|
|
@@ -3820,7 +3822,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
3820
3822
|
return this._value;
|
|
3821
3823
|
}
|
|
3822
3824
|
set value(e) {
|
|
3823
|
-
this._value = e == null ? "" : String(e),
|
|
3825
|
+
this._value = e == null ? "" : String(e), F(this, this._value), this._syncSelected(), this._syncReset();
|
|
3824
3826
|
}
|
|
3825
3827
|
set options(e) {
|
|
3826
3828
|
this._optionsProp = Array.isArray(e) ? e : null, this.isConnected && this.render();
|
|
@@ -3835,7 +3837,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
3835
3837
|
value: e.getAttribute("value") ?? e.textContent.trim(),
|
|
3836
3838
|
label: e.innerHTML,
|
|
3837
3839
|
icon: e.getAttribute("icon") || void 0,
|
|
3838
|
-
[
|
|
3840
|
+
[Yt]: !0,
|
|
3839
3841
|
selected: e.hasAttribute("selected")
|
|
3840
3842
|
})));
|
|
3841
3843
|
}
|
|
@@ -3845,27 +3847,27 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
3845
3847
|
render() {
|
|
3846
3848
|
this._defaultValue === void 0 && (this._defaultValue = this.getAttribute("value") || ""), this._snapshotDeclared();
|
|
3847
3849
|
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);
|
|
3848
|
-
l && (this._value = String(l.value)),
|
|
3850
|
+
l && (this._value = String(l.value)), F(this, this._value), this.id ||= `wui-select-${Math.random().toString(36).slice(2, 9)}`;
|
|
3849
3851
|
let u = `${this.id}-listbox`;
|
|
3850
3852
|
this._listboxId = u;
|
|
3851
3853
|
let d = e.map((e, t) => {
|
|
3852
3854
|
let n = String(e.value) === String(this._value);
|
|
3853
|
-
return `<button type="button" role="option" id="${
|
|
3855
|
+
return `<button type="button" role="option" id="${Mn(`${u}-opt-${t}`)}" class="search-select-option${n ? " selected" : ""}" data-value="${Mn(e.value)}" aria-selected="${n}">${$t(e)}</button>`;
|
|
3854
3856
|
}).join("");
|
|
3855
3857
|
this.innerHTML = `
|
|
3856
3858
|
<div class="search-select${this.hasAttribute("compact") ? " search-select-compact" : ""}${i}">
|
|
3857
|
-
<button type="button" role="combobox" class="input search-select-control" aria-haspopup="listbox" aria-expanded="false" aria-controls="${
|
|
3858
|
-
${a ?
|
|
3859
|
-
${o ? `<span class="search-select-prefix">${
|
|
3860
|
-
<span class="${l ? "" : "search-select-placeholder"}" data-label>${l ?
|
|
3861
|
-
${n ? `<span class="search-select-reset" role="button" aria-label="Clear selection" hidden>${
|
|
3862
|
-
${
|
|
3859
|
+
<button type="button" role="combobox" class="input search-select-control" aria-haspopup="listbox" aria-expanded="false" aria-controls="${Mn(u)}" aria-label="${Mn(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}>
|
|
3860
|
+
${a ? L(a, { className: "search-select-icon" }) : ""}
|
|
3861
|
+
${o ? `<span class="search-select-prefix">${R(o)}</span>` : ""}
|
|
3862
|
+
<span class="${l ? "" : "search-select-placeholder"}" data-label>${l ? $t(l) : R(s)}</span>
|
|
3863
|
+
${n ? `<span class="search-select-reset" role="button" aria-label="Clear selection" hidden>${L("x")}</span>` : ""}
|
|
3864
|
+
${L("chevron-down", { className: "search-select-caret" })}
|
|
3863
3865
|
</button>
|
|
3864
|
-
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${
|
|
3865
|
-
${t ? `<div class="search-select-search">${
|
|
3866
|
+
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${Mn(u)}" tabindex="-1" hidden>
|
|
3867
|
+
${t ? `<div class="search-select-search">${L("search")}<input class="search-select-input" placeholder="${Mn(c)}" aria-autocomplete="list" /><button type="button" class="search-select-clear" aria-label="Clear search" hidden>${L("x")}</button></div>` : ""}
|
|
3866
3868
|
<div class="search-select-options">${d}<div class="search-select-empty" hidden>No matches</div></div>
|
|
3867
3869
|
</div>
|
|
3868
|
-
</div>`, this._rendered = !0,
|
|
3870
|
+
</div>`, this._rendered = !0, F(this, this._value), this._wire(), this._syncReset();
|
|
3869
3871
|
}
|
|
3870
3872
|
_refs() {
|
|
3871
3873
|
return {
|
|
@@ -3891,7 +3893,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
3891
3893
|
let t = e.dataset.value === String(this._value);
|
|
3892
3894
|
e.classList.toggle("selected", t), e.setAttribute("aria-selected", String(t));
|
|
3893
3895
|
}
|
|
3894
|
-
e && (e.innerHTML = t ?
|
|
3896
|
+
e && (e.innerHTML = t ? $t(t) : R(this.getAttribute("placeholder") || "Select..."), e.classList.toggle("search-select-placeholder", !t));
|
|
3895
3897
|
}
|
|
3896
3898
|
_syncReset() {
|
|
3897
3899
|
let { reset: e } = this._refs();
|
|
@@ -3904,8 +3906,8 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
3904
3906
|
let t = () => {
|
|
3905
3907
|
if (this.hasAttribute("compact")) {
|
|
3906
3908
|
let t = e.control.getBoundingClientRect();
|
|
3907
|
-
e.menu.style.width = "max-content", e.menu.style.minWidth = `${t.width}px`, e.menu.style.maxWidth = "280px",
|
|
3908
|
-
} else
|
|
3909
|
+
e.menu.style.width = "max-content", e.menu.style.minWidth = `${t.width}px`, e.menu.style.maxWidth = "280px", P(e.control, e.menu);
|
|
3910
|
+
} else P(e.control, e.menu, { matchWidth: !0 });
|
|
3909
3911
|
}, n = (t) => {
|
|
3910
3912
|
let n = this._visible();
|
|
3911
3913
|
this._active = t;
|
|
@@ -3925,7 +3927,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
3925
3927
|
}, s = (t) => {
|
|
3926
3928
|
this.value = t.dataset.value, this.dispatchEvent(new Event("change", { bubbles: !0 })), o(), e.control.focus();
|
|
3927
3929
|
};
|
|
3928
|
-
this._navHandler =
|
|
3930
|
+
this._navHandler = Jt({
|
|
3929
3931
|
getVisibleOptions: () => this._visible(),
|
|
3930
3932
|
getActive: () => this._active,
|
|
3931
3933
|
setActive: (e) => n(e),
|
|
@@ -3956,40 +3958,40 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
3956
3958
|
}), e.menu.addEventListener("keydown", this._navHandler.handler), this._bindGlobal = () => {
|
|
3957
3959
|
this._teardown(), this._onDocClick = (e) => {
|
|
3958
3960
|
i() && !this.contains(e.target) && o();
|
|
3959
|
-
}, document.addEventListener("click", this._onDocClick),
|
|
3961
|
+
}, document.addEventListener("click", this._onDocClick), Ht(this, () => {
|
|
3960
3962
|
i() && t();
|
|
3961
3963
|
});
|
|
3962
3964
|
}, this._bindGlobal();
|
|
3963
3965
|
}
|
|
3964
3966
|
_teardown() {
|
|
3965
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null),
|
|
3967
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), Ut(this), this._navHandler?.teardown();
|
|
3966
3968
|
}
|
|
3967
3969
|
disconnectedCallback() {
|
|
3968
3970
|
this._teardown();
|
|
3969
3971
|
}
|
|
3970
|
-
},
|
|
3972
|
+
}, Mn = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), Nn = (e) => {
|
|
3971
3973
|
if (e == null) return null;
|
|
3972
3974
|
let t = String(e).split(",").map((e) => e.trim().toUpperCase()).filter(Boolean);
|
|
3973
3975
|
return t.length ? new Set(t) : null;
|
|
3974
|
-
},
|
|
3975
|
-
let t =
|
|
3976
|
-
return
|
|
3976
|
+
}, Pn = (e) => {
|
|
3977
|
+
let t = Nn(e);
|
|
3978
|
+
return kn.filter(([e]) => !t || t.has(e)).map(([e, t]) => ({
|
|
3977
3979
|
value: e,
|
|
3978
3980
|
label: t,
|
|
3979
3981
|
flag: e
|
|
3980
3982
|
}));
|
|
3981
|
-
},
|
|
3983
|
+
}, Fn = class extends jn {
|
|
3982
3984
|
static get observedAttributes() {
|
|
3983
|
-
return [...
|
|
3985
|
+
return [...jn.observedAttributes, "countries"];
|
|
3984
3986
|
}
|
|
3985
3987
|
_readOptions() {
|
|
3986
3988
|
let e = this.getAttribute("countries");
|
|
3987
3989
|
return this._countryCache?.attr !== e && (this._countryCache = {
|
|
3988
3990
|
attr: e,
|
|
3989
|
-
options:
|
|
3991
|
+
options: Pn(e)
|
|
3990
3992
|
}), this._countryCache.options;
|
|
3991
3993
|
}
|
|
3992
|
-
},
|
|
3994
|
+
}, In = [
|
|
3993
3995
|
"January",
|
|
3994
3996
|
"February",
|
|
3995
3997
|
"March",
|
|
@@ -4002,7 +4004,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4002
4004
|
"October",
|
|
4003
4005
|
"November",
|
|
4004
4006
|
"December"
|
|
4005
|
-
],
|
|
4007
|
+
], Ln = [
|
|
4006
4008
|
"Su",
|
|
4007
4009
|
"Mo",
|
|
4008
4010
|
"Tu",
|
|
@@ -4010,24 +4012,24 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4010
4012
|
"Th",
|
|
4011
4013
|
"Fr",
|
|
4012
4014
|
"Sa"
|
|
4013
|
-
],
|
|
4015
|
+
], Rn = (e) => String(e).padStart(2, "0"), zn = (e, t, n) => `${e}-${Rn(t + 1)}-${Rn(n)}`, H = (e) => {
|
|
4014
4016
|
let t = /^(\d{4})-(\d{2})-(\d{2})$/.exec(e || "");
|
|
4015
4017
|
return t ? {
|
|
4016
4018
|
y: +t[1],
|
|
4017
4019
|
m: t[2] - 1,
|
|
4018
4020
|
d: +t[3]
|
|
4019
4021
|
} : null;
|
|
4020
|
-
},
|
|
4021
|
-
let t =
|
|
4022
|
-
return t ? `${
|
|
4023
|
-
},
|
|
4022
|
+
}, Bn = (e) => {
|
|
4023
|
+
let t = H(e);
|
|
4024
|
+
return t ? `${Rn(t.d)} ${In[t.m].slice(0, 3)} ${t.y}` : "";
|
|
4025
|
+
}, Vn = (e, t) => new Date(e, t + 1, 0).getDate(), U = (e, t) => {
|
|
4024
4026
|
for (; t < 0;) t += 12, --e;
|
|
4025
4027
|
for (; t > 11;) t -= 12, e += 1;
|
|
4026
4028
|
return {
|
|
4027
4029
|
y: e,
|
|
4028
4030
|
m: t
|
|
4029
4031
|
};
|
|
4030
|
-
},
|
|
4032
|
+
}, Hn = class extends e {
|
|
4031
4033
|
static formAssociated = !0;
|
|
4032
4034
|
static get observedAttributes() {
|
|
4033
4035
|
return [
|
|
@@ -4079,7 +4081,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4079
4081
|
return this._value;
|
|
4080
4082
|
}
|
|
4081
4083
|
set value(e) {
|
|
4082
|
-
this._value = e || "",
|
|
4084
|
+
this._value = e || "", F(this, this._value), this._syncTrigger();
|
|
4083
4085
|
}
|
|
4084
4086
|
_firstDay() {
|
|
4085
4087
|
let e = Number.parseInt(this.getAttribute("first-day") ?? "", 10);
|
|
@@ -4087,29 +4089,29 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4087
4089
|
}
|
|
4088
4090
|
render() {
|
|
4089
4091
|
this._defaultValue === void 0 && (this._defaultValue = this.getAttribute("value") || "", this._value = this._defaultValue || this._value);
|
|
4090
|
-
let e = this.getAttribute("placeholder") || "Enter Date", t =
|
|
4092
|
+
let e = this.getAttribute("placeholder") || "Enter Date", t = H(this._value);
|
|
4091
4093
|
t && (this._viewY = t.y, this._viewM = t.m);
|
|
4092
4094
|
let n = this.getAttribute("size"), r = n === "sm" ? " input-sm" : n === "lg" ? " input-lg" : "", i = this.getAttribute("aria-label"), a = this.getAttribute("aria-describedby");
|
|
4093
4095
|
this.innerHTML = `
|
|
4094
4096
|
<div class="datepicker">
|
|
4095
|
-
<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="${
|
|
4096
|
-
<span data-trigger-label class="${t ? "" : "search-select-placeholder"}">${t ?
|
|
4097
|
-
${
|
|
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="${R(i)}"` : ""}${a ? ` aria-describedby="${R(a)}"` : ""}>
|
|
4098
|
+
<span data-trigger-label class="${t ? "" : "search-select-placeholder"}">${t ? Bn(this._value) : R(e)}</span>
|
|
4099
|
+
${L("calendar-dots")}
|
|
4098
4100
|
</button>
|
|
4099
4101
|
<div class="datepicker-pop" role="dialog" aria-modal="false" hidden></div>
|
|
4100
|
-
</div>`, this._rendered = !0,
|
|
4102
|
+
</div>`, this._rendered = !0, F(this, this._value), this._wire();
|
|
4101
4103
|
}
|
|
4102
4104
|
_syncFormValue() {
|
|
4103
|
-
|
|
4105
|
+
F(this, this._value);
|
|
4104
4106
|
}
|
|
4105
4107
|
_syncTrigger() {
|
|
4106
4108
|
let e = this.querySelector(".datepicker-trigger"), t = this.querySelector("[data-trigger-label]");
|
|
4107
4109
|
if (!t) return;
|
|
4108
|
-
let n =
|
|
4109
|
-
t.textContent = n ?
|
|
4110
|
+
let n = H(this._value);
|
|
4111
|
+
t.textContent = n ? Bn(this._value) : this.getAttribute("placeholder") || "Enter Date", t.classList.toggle("search-select-placeholder", !n), e?.classList.toggle("has-value", !!n);
|
|
4110
4112
|
}
|
|
4111
4113
|
_limits() {
|
|
4112
|
-
let e =
|
|
4114
|
+
let e = H(this.getAttribute("min")), t = H(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;
|
|
4113
4115
|
return {
|
|
4114
4116
|
dayDisabled: (e, t, i) => {
|
|
4115
4117
|
let a = new Date(e, t, i).getTime();
|
|
@@ -4117,7 +4119,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4117
4119
|
},
|
|
4118
4120
|
monthDisabled: (e, t) => {
|
|
4119
4121
|
let i = new Date(e, t, 1).getTime();
|
|
4120
|
-
return new Date(e, t,
|
|
4122
|
+
return new Date(e, t, Vn(e, t)).getTime() < n || i > r;
|
|
4121
4123
|
},
|
|
4122
4124
|
yearDisabled: (e) => {
|
|
4123
4125
|
let t = new Date(e, 0, 1).getTime();
|
|
@@ -4130,29 +4132,29 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4130
4132
|
e && (this._mode === "months" ? e.innerHTML = this._monthsHtml() : this._mode === "years" ? e.innerHTML = this._yearsHtml() : e.innerHTML = this._daysHtml(), this._focusActive());
|
|
4131
4133
|
}
|
|
4132
4134
|
_daysHtml() {
|
|
4133
|
-
let e = this._firstDay(), t = (new Date(this._viewY, this._viewM, 1).getDay() - e + 7) % 7, n =
|
|
4135
|
+
let e = this._firstDay(), t = (new Date(this._viewY, this._viewM, 1).getDay() - e + 7) % 7, n = Vn(this._viewY, this._viewM), r = H(this._value), i = /* @__PURE__ */ new Date(), { dayDisabled: a } = this._limits(), o = this._focus || r || {
|
|
4134
4136
|
y: this._viewY,
|
|
4135
4137
|
m: this._viewM,
|
|
4136
4138
|
d: 1
|
|
4137
4139
|
}, s = (e, t, n, s) => {
|
|
4138
|
-
let c =
|
|
4140
|
+
let c = zn(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);
|
|
4139
4141
|
return `<button type="button" class="${[
|
|
4140
4142
|
"datepicker-day",
|
|
4141
4143
|
s ? "is-outside" : "",
|
|
4142
4144
|
u ? "is-today" : "",
|
|
4143
4145
|
l ? "is-selected" : ""
|
|
4144
4146
|
].filter(Boolean).join(" ")}" data-iso="${c}" role="gridcell" tabindex="${d && !f ? "0" : "-1"}"${l ? " aria-selected=\"true\"" : ""}${f ? " disabled aria-disabled=\"true\"" : ""}>${n}</button>`;
|
|
4145
|
-
}, c = "", l =
|
|
4147
|
+
}, c = "", l = U(this._viewY, this._viewM - 1), u = Vn(l.y, l.m);
|
|
4146
4148
|
for (let e = t - 1; e >= 0; e--) c += s(l.y, l.m, u - e, !0);
|
|
4147
4149
|
for (let e = 1; e <= n; e++) c += s(this._viewY, this._viewM, e, !1);
|
|
4148
|
-
let d =
|
|
4150
|
+
let d = U(this._viewY, this._viewM + 1), f = (7 - (t + n) % 7) % 7;
|
|
4149
4151
|
for (let e = 1; e <= f; e++) c += s(d.y, d.m, e, !0);
|
|
4150
|
-
let p = a(i.getFullYear(), i.getMonth(), i.getDate()), m =
|
|
4152
|
+
let p = a(i.getFullYear(), i.getMonth(), i.getDate()), m = Ln.map((t, n) => Ln[(n + e) % 7]).map((e) => `<span>${e}</span>`).join("");
|
|
4151
4153
|
return `
|
|
4152
4154
|
<div class="datepicker-head">
|
|
4153
|
-
<button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${
|
|
4154
|
-
<button type="button" class="datepicker-month" data-view="months" aria-label="Choose month and year">${
|
|
4155
|
-
<button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${
|
|
4155
|
+
<button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${L("chevron-left")}</button>
|
|
4156
|
+
<button type="button" class="datepicker-month" data-view="months" aria-label="Choose month and year">${In[this._viewM]} ${this._viewY}</button>
|
|
4157
|
+
<button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${L("chevron-right")}</button>
|
|
4156
4158
|
</div>
|
|
4157
4159
|
<div class="datepicker-weekdays">${m}</div>
|
|
4158
4160
|
<div class="datepicker-grid${this._slide ? ` ${this._slide}` : ""}" role="grid">${c}</div>
|
|
@@ -4162,25 +4164,25 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4162
4164
|
</div>`;
|
|
4163
4165
|
}
|
|
4164
4166
|
_monthsHtml() {
|
|
4165
|
-
let e =
|
|
4167
|
+
let e = H(this._value), t = /* @__PURE__ */ new Date(), { monthDisabled: n } = this._limits(), r = "";
|
|
4166
4168
|
for (let i = 0; i < 12; i++) {
|
|
4167
4169
|
let a = e && e.y === this._viewY && e.m === i, o = t.getFullYear() === this._viewY && t.getMonth() === i, s = n(this._viewY, i), c = [
|
|
4168
4170
|
"datepicker-cell",
|
|
4169
4171
|
o ? "is-today" : "",
|
|
4170
4172
|
a ? "is-selected" : ""
|
|
4171
4173
|
].filter(Boolean).join(" ");
|
|
4172
|
-
r += `<button type="button" class="${c}" data-month="${i}"${s ? " disabled" : ""}>${
|
|
4174
|
+
r += `<button type="button" class="${c}" data-month="${i}"${s ? " disabled" : ""}>${In[i].slice(0, 3)}</button>`;
|
|
4173
4175
|
}
|
|
4174
4176
|
return `
|
|
4175
4177
|
<div class="datepicker-head">
|
|
4176
|
-
<button type="button" class="datepicker-nav-btn" data-nav-year="-1" aria-label="Previous year">${
|
|
4178
|
+
<button type="button" class="datepicker-nav-btn" data-nav-year="-1" aria-label="Previous year">${L("chevron-left")}</button>
|
|
4177
4179
|
<button type="button" class="datepicker-month" data-view="years" aria-label="Choose year">${this._viewY}</button>
|
|
4178
|
-
<button type="button" class="datepicker-nav-btn" data-nav-year="1" aria-label="Next year">${
|
|
4180
|
+
<button type="button" class="datepicker-nav-btn" data-nav-year="1" aria-label="Next year">${L("chevron-right")}</button>
|
|
4179
4181
|
</div>
|
|
4180
4182
|
<div class="datepicker-cells">${r}</div>`;
|
|
4181
4183
|
}
|
|
4182
4184
|
_yearsHtml() {
|
|
4183
|
-
let e =
|
|
4185
|
+
let e = H(this._value), t = (/* @__PURE__ */ new Date()).getFullYear(), { yearDisabled: n } = this._limits(), r = this._viewY - (this._viewY % 10 + 10) % 10 - 1, i = "";
|
|
4184
4186
|
for (let a = 0; a < 12; a++) {
|
|
4185
4187
|
let o = r + a, s = e && e.y === o, c = t === o, l = n(o), u = [
|
|
4186
4188
|
"datepicker-cell",
|
|
@@ -4191,9 +4193,9 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4191
4193
|
}
|
|
4192
4194
|
return `
|
|
4193
4195
|
<div class="datepicker-head">
|
|
4194
|
-
<button type="button" class="datepicker-nav-btn" data-nav-decade="-1" aria-label="Previous decade">${
|
|
4196
|
+
<button type="button" class="datepicker-nav-btn" data-nav-decade="-1" aria-label="Previous decade">${L("chevron-left")}</button>
|
|
4195
4197
|
<span class="datepicker-month">${r + 1} to ${r + 10}</span>
|
|
4196
|
-
<button type="button" class="datepicker-nav-btn" data-nav-decade="1" aria-label="Next decade">${
|
|
4198
|
+
<button type="button" class="datepicker-nav-btn" data-nav-decade="1" aria-label="Next decade">${L("chevron-right")}</button>
|
|
4197
4199
|
</div>
|
|
4198
4200
|
<div class="datepicker-cells">${i}</div>`;
|
|
4199
4201
|
}
|
|
@@ -4202,24 +4204,24 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4202
4204
|
t && e.contains(document.activeElement) && t.focus();
|
|
4203
4205
|
}
|
|
4204
4206
|
_position(e, t) {
|
|
4205
|
-
|
|
4207
|
+
P(e, t, { clampHeight: !0 });
|
|
4206
4208
|
}
|
|
4207
4209
|
_setFocus(e, t, n, r) {
|
|
4208
|
-
let { y: i, m: a } =
|
|
4210
|
+
let { y: i, m: a } = U(e, t);
|
|
4209
4211
|
this._focus = {
|
|
4210
4212
|
y: i,
|
|
4211
4213
|
m: a,
|
|
4212
4214
|
d: n
|
|
4213
4215
|
};
|
|
4214
4216
|
let o = i !== this._viewY || a !== this._viewM;
|
|
4215
|
-
this._viewY = i, this._viewM = a, this._slide = o && r || "", this._renderView(), this._slide = "", this.querySelector(`.datepicker-day[data-iso="${
|
|
4217
|
+
this._viewY = i, this._viewM = a, this._slide = o && r || "", this._renderView(), this._slide = "", this.querySelector(`.datepicker-day[data-iso="${zn(i, a, n)}"]`)?.focus();
|
|
4216
4218
|
}
|
|
4217
4219
|
_onKey(e) {
|
|
4218
4220
|
if (this._mode !== "days") {
|
|
4219
4221
|
e.key === "Escape" && this._close();
|
|
4220
4222
|
return;
|
|
4221
4223
|
}
|
|
4222
|
-
let t = this._focus ||
|
|
4224
|
+
let t = this._focus || H(this._value) || {
|
|
4223
4225
|
y: this._viewY,
|
|
4224
4226
|
m: this._viewM,
|
|
4225
4227
|
d: 1
|
|
@@ -4237,17 +4239,17 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4237
4239
|
case "End": return n(6 - (new Date(t.y, t.m, t.d).getDay() - this._firstDay() + 7) % 7, "slide-next");
|
|
4238
4240
|
case "PageUp": {
|
|
4239
4241
|
e.preventDefault();
|
|
4240
|
-
let n =
|
|
4241
|
-
return this._setFocus(n.y, n.m, Math.min(t.d,
|
|
4242
|
+
let n = U(t.y, t.m - (e.shiftKey ? 12 : 1));
|
|
4243
|
+
return this._setFocus(n.y, n.m, Math.min(t.d, Vn(n.y, n.m)), "slide-prev");
|
|
4242
4244
|
}
|
|
4243
4245
|
case "PageDown": {
|
|
4244
4246
|
e.preventDefault();
|
|
4245
|
-
let n =
|
|
4246
|
-
return this._setFocus(n.y, n.m, Math.min(t.d,
|
|
4247
|
+
let n = U(t.y, t.m + (e.shiftKey ? 12 : 1));
|
|
4248
|
+
return this._setFocus(n.y, n.m, Math.min(t.d, Vn(n.y, n.m)), "slide-next");
|
|
4247
4249
|
}
|
|
4248
4250
|
case "Enter":
|
|
4249
4251
|
case " ":
|
|
4250
|
-
e.preventDefault(), this._limits().dayDisabled(t.y, t.m, t.d) || (this.value =
|
|
4252
|
+
e.preventDefault(), this._limits().dayDisabled(t.y, t.m, t.d) || (this.value = zn(t.y, t.m, t.d), this.dispatchEvent(new Event("change", { bubbles: !0 })), this._close());
|
|
4251
4253
|
return;
|
|
4252
4254
|
case "Escape": return this._close();
|
|
4253
4255
|
default:
|
|
@@ -4259,7 +4261,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4259
4261
|
if (!e || !t) return;
|
|
4260
4262
|
let r = () => !t.hidden;
|
|
4261
4263
|
this._open = () => {
|
|
4262
|
-
let r = /* @__PURE__ */ new Date(), i =
|
|
4264
|
+
let r = /* @__PURE__ */ new Date(), i = H(this._value);
|
|
4263
4265
|
(i || !this._viewNavigated) && (this._viewY = r.getFullYear(), this._viewM = r.getMonth()), this._mode = "days";
|
|
4264
4266
|
let a = r.getFullYear() === this._viewY && r.getMonth() === this._viewM, o = i && i.y === this._viewY && i.m === this._viewM;
|
|
4265
4267
|
this._focus = o ? i : {
|
|
@@ -4274,7 +4276,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4274
4276
|
let t = e.target.closest("[data-nav]");
|
|
4275
4277
|
if (t) {
|
|
4276
4278
|
this._viewNavigated = !0, this._slide = Number(t.dataset.nav) < 0 ? "slide-prev" : "slide-next";
|
|
4277
|
-
let e =
|
|
4279
|
+
let e = U(this._viewY, this._viewM + Number(t.dataset.nav));
|
|
4278
4280
|
this._viewY = e.y, this._viewM = e.m, this._focus = {
|
|
4279
4281
|
y: e.y,
|
|
4280
4282
|
m: e.m,
|
|
@@ -4314,7 +4316,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4314
4316
|
if (e.target.closest("[data-today]")) {
|
|
4315
4317
|
let e = /* @__PURE__ */ new Date();
|
|
4316
4318
|
if (this._limits().dayDisabled(e.getFullYear(), e.getMonth(), e.getDate())) return;
|
|
4317
|
-
this.value =
|
|
4319
|
+
this.value = zn(e.getFullYear(), e.getMonth(), e.getDate()), this.dispatchEvent(new Event("change", { bubbles: !0 })), this._close();
|
|
4318
4320
|
return;
|
|
4319
4321
|
}
|
|
4320
4322
|
if (e.target.closest("[data-clear]")) {
|
|
@@ -4331,18 +4333,18 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4331
4333
|
this._popClick = !1, r() && !t && !this.contains(e.target) && this._close();
|
|
4332
4334
|
}, document.addEventListener("click", this._onDocClick), this._onDocKey = (e) => {
|
|
4333
4335
|
r() && e.key === "Escape" && this._close();
|
|
4334
|
-
}, document.addEventListener("keydown", this._onDocKey),
|
|
4336
|
+
}, document.addEventListener("keydown", this._onDocKey), Ht(this, () => {
|
|
4335
4337
|
r() && this._position(e, t);
|
|
4336
4338
|
});
|
|
4337
4339
|
}, this._bindGlobal(), this._syncFormValue();
|
|
4338
4340
|
}
|
|
4339
4341
|
_teardown() {
|
|
4340
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null),
|
|
4342
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), Ut(this);
|
|
4341
4343
|
}
|
|
4342
4344
|
disconnectedCallback() {
|
|
4343
4345
|
this._teardown();
|
|
4344
4346
|
}
|
|
4345
|
-
},
|
|
4347
|
+
}, Un = class extends e {
|
|
4346
4348
|
static formAssociated = !0;
|
|
4347
4349
|
static get observedAttributes() {
|
|
4348
4350
|
return [
|
|
@@ -4410,20 +4412,20 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4410
4412
|
text: e,
|
|
4411
4413
|
empty: !0
|
|
4412
4414
|
} : {
|
|
4413
|
-
text: `${
|
|
4415
|
+
text: `${Bn(this._start) || "Start"} to ${Bn(this._end) || "End"}`,
|
|
4414
4416
|
empty: !1
|
|
4415
4417
|
};
|
|
4416
4418
|
}
|
|
4417
4419
|
render() {
|
|
4418
4420
|
this._defaultStart === void 0 && (this._defaultStart = this.getAttribute("start") || "", this._defaultEnd = this.getAttribute("end") || "", this._start = this._defaultStart || this._start, this._end = this._defaultEnd || this._end);
|
|
4419
|
-
let e =
|
|
4421
|
+
let e = H(this._start);
|
|
4420
4422
|
e && (this._viewY = e.y, this._viewM = e.m);
|
|
4421
4423
|
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");
|
|
4422
4424
|
this.innerHTML = `
|
|
4423
4425
|
<div class="daterange">
|
|
4424
|
-
<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="${
|
|
4425
|
-
<span data-range-label class="${i ? "search-select-placeholder" : ""}">${
|
|
4426
|
-
${
|
|
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="${R(a)}"` : ""}${o ? ` aria-describedby="${R(o)}"` : ""}>
|
|
4427
|
+
<span data-range-label class="${i ? "search-select-placeholder" : ""}">${R(r)}</span>
|
|
4428
|
+
${L("calendar")}
|
|
4427
4429
|
</button>
|
|
4428
4430
|
<div class="daterange-pop" role="dialog" aria-modal="false" hidden></div>
|
|
4429
4431
|
</div>`, this._rendered = !0, this._syncMirrors(), this._wire();
|
|
@@ -4450,24 +4452,24 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4450
4452
|
r || (r = document.createElement("input"), r.type = "hidden", r.setAttribute("data-range-mirror", e), this.appendChild(r)), r.name = t, r.value = n || "", r.disabled = this.hasAttribute("disabled");
|
|
4451
4453
|
}
|
|
4452
4454
|
_limits() {
|
|
4453
|
-
let e =
|
|
4455
|
+
let e = H(this.getAttribute("min")), t = H(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;
|
|
4454
4456
|
return (e, t, i) => {
|
|
4455
4457
|
let a = new Date(e, t, i).getTime();
|
|
4456
4458
|
return a < n || a > r;
|
|
4457
4459
|
};
|
|
4458
4460
|
}
|
|
4459
4461
|
_monthHtml(e, t) {
|
|
4460
|
-
let n = this._firstDay(), r = (new Date(e, t, 1).getDay() - n + 7) % 7, i =
|
|
4461
|
-
let i =
|
|
4462
|
+
let n = this._firstDay(), r = (new Date(e, t, 1).getDay() - n + 7) % 7, i = Vn(e, t), a = this._limits(), o = Ln.map((e, t) => Ln[(t + n) % 7]).map((e) => `<span>${e}</span>`).join(""), s = (e, t, n, r) => {
|
|
4463
|
+
let i = zn(e, t, n), o = a(e, t, n);
|
|
4462
4464
|
return `<button type="button" class="${["datepicker-day", r ? "is-outside" : ""].filter(Boolean).join(" ")}" data-iso="${i}"${o ? " disabled" : ""}>${n}</button>`;
|
|
4463
|
-
}, c = "", l =
|
|
4465
|
+
}, c = "", l = U(e, t - 1), u = Vn(l.y, l.m);
|
|
4464
4466
|
for (let e = r - 1; e >= 0; e--) c += s(l.y, l.m, u - e, !0);
|
|
4465
4467
|
for (let n = 1; n <= i; n++) c += s(e, t, n, !1);
|
|
4466
|
-
let d =
|
|
4468
|
+
let d = U(e, t + 1), f = (7 - (r + i) % 7) % 7;
|
|
4467
4469
|
for (let e = 1; e <= f; e++) c += s(d.y, d.m, e, !0);
|
|
4468
4470
|
return `
|
|
4469
4471
|
<div class="daterange-cal">
|
|
4470
|
-
<div class="datepicker-month-label">${
|
|
4472
|
+
<div class="datepicker-month-label">${In[t]} ${e}</div>
|
|
4471
4473
|
<div class="datepicker-weekdays">${o}</div>
|
|
4472
4474
|
<div class="datepicker-grid" role="grid">${c}</div>
|
|
4473
4475
|
</div>`;
|
|
@@ -4475,11 +4477,11 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4475
4477
|
_renderView() {
|
|
4476
4478
|
let e = this.querySelector(".daterange-pop");
|
|
4477
4479
|
if (!e) return;
|
|
4478
|
-
let t =
|
|
4480
|
+
let t = U(this._viewY, this._viewM + 1);
|
|
4479
4481
|
e.innerHTML = `
|
|
4480
4482
|
<div class="daterange-head">
|
|
4481
|
-
<button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${
|
|
4482
|
-
<button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${
|
|
4483
|
+
<button type="button" class="datepicker-nav-btn" data-nav="-1" aria-label="Previous month">${L("chevron-left")}</button>
|
|
4484
|
+
<button type="button" class="datepicker-nav-btn" data-nav="1" aria-label="Next month">${L("chevron-right")}</button>
|
|
4483
4485
|
</div>
|
|
4484
4486
|
<div class="daterange-cals">
|
|
4485
4487
|
${this._monthHtml(this._viewY, this._viewM)}
|
|
@@ -4501,10 +4503,10 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4501
4503
|
n.classList.toggle("is-range-start", i), n.classList.toggle("is-range-end", a), n.classList.toggle("in-range", o);
|
|
4502
4504
|
}
|
|
4503
4505
|
let i = e.querySelector("[data-range-hint]");
|
|
4504
|
-
i && (i.textContent = this._start ? this._end ? `${
|
|
4506
|
+
i && (i.textContent = this._start ? this._end ? `${Bn(this._start)} to ${Bn(this._end)}` : "Pick an end date" : "Pick a start date");
|
|
4505
4507
|
}
|
|
4506
4508
|
_position(e, t) {
|
|
4507
|
-
|
|
4509
|
+
P(e, t, { clampHeight: !0 });
|
|
4508
4510
|
}
|
|
4509
4511
|
_pick(e) {
|
|
4510
4512
|
if (!this._start || this._start && this._end) {
|
|
@@ -4523,7 +4525,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4523
4525
|
if (!e || !t) return;
|
|
4524
4526
|
let r = () => !t.hidden;
|
|
4525
4527
|
this._open = () => {
|
|
4526
|
-
let r =
|
|
4528
|
+
let r = H(this._start);
|
|
4527
4529
|
if (r) this._viewY = r.y, this._viewM = r.m;
|
|
4528
4530
|
else {
|
|
4529
4531
|
let e = /* @__PURE__ */ new Date();
|
|
@@ -4536,7 +4538,7 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4536
4538
|
this._popClick = !0;
|
|
4537
4539
|
let t = e.target.closest("[data-nav]");
|
|
4538
4540
|
if (t) {
|
|
4539
|
-
let e =
|
|
4541
|
+
let e = U(this._viewY, this._viewM + Number(t.dataset.nav));
|
|
4540
4542
|
this._viewY = e.y, this._viewM = e.m, this._renderView();
|
|
4541
4543
|
return;
|
|
4542
4544
|
}
|
|
@@ -4555,18 +4557,18 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4555
4557
|
this._popClick = !1, r() && !t && !this.contains(e.target) && this._close();
|
|
4556
4558
|
}, document.addEventListener("click", this._onDocClick), this._onDocKey = (e) => {
|
|
4557
4559
|
r() && e.key === "Escape" && this._close();
|
|
4558
|
-
}, document.addEventListener("keydown", this._onDocKey),
|
|
4560
|
+
}, document.addEventListener("keydown", this._onDocKey), Ht(this, () => {
|
|
4559
4561
|
r() && this._position(e, t);
|
|
4560
4562
|
});
|
|
4561
4563
|
}, this._bindGlobal(), this._syncMirrors();
|
|
4562
4564
|
}
|
|
4563
4565
|
_teardown() {
|
|
4564
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null),
|
|
4566
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), Ut(this);
|
|
4565
4567
|
}
|
|
4566
4568
|
disconnectedCallback() {
|
|
4567
4569
|
this._teardown();
|
|
4568
4570
|
}
|
|
4569
|
-
},
|
|
4571
|
+
}, Wn = class extends e {
|
|
4570
4572
|
static get observedAttributes() {
|
|
4571
4573
|
return [
|
|
4572
4574
|
"static",
|
|
@@ -4587,10 +4589,10 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4587
4589
|
e === "static" && this.isConnected && this._wire();
|
|
4588
4590
|
}
|
|
4589
4591
|
_maxScale() {
|
|
4590
|
-
return
|
|
4592
|
+
return Gn(this.getAttribute("max-scale"), 1.6);
|
|
4591
4593
|
}
|
|
4592
4594
|
_radius() {
|
|
4593
|
-
return
|
|
4595
|
+
return Gn(this.getAttribute("radius"), 100);
|
|
4594
4596
|
}
|
|
4595
4597
|
_magnifyEnabled() {
|
|
4596
4598
|
return !(this.hasAttribute("static") || typeof matchMedia == "function" && (matchMedia("(pointer: coarse)").matches || matchMedia("(prefers-reduced-motion: reduce)").matches));
|
|
@@ -4615,21 +4617,21 @@ var En = (e) => e instanceof Element ? e : e?.parentElement ?? null, Dn = class
|
|
|
4615
4617
|
_teardown() {
|
|
4616
4618
|
this._pointerMoveListener &&= (this.removeEventListener("pointermove", this._pointerMoveListener), null), this._pointerLeaveListener &&= (this.removeEventListener("pointerleave", this._pointerLeaveListener), null), this._resetMagnification();
|
|
4617
4619
|
}
|
|
4618
|
-
},
|
|
4620
|
+
}, Gn = (e, t) => {
|
|
4619
4621
|
let n = Number.parseFloat(e);
|
|
4620
4622
|
return Number.isFinite(n) ? n : t;
|
|
4621
|
-
},
|
|
4623
|
+
}, Kn = 4096, qn = [
|
|
4622
4624
|
.92,
|
|
4623
4625
|
.8,
|
|
4624
4626
|
.65,
|
|
4625
4627
|
.5
|
|
4626
|
-
],
|
|
4627
|
-
function
|
|
4628
|
+
], Jn = .8, Yn = 8;
|
|
4629
|
+
function Xn(e) {
|
|
4628
4630
|
if (e == null || e === "" || e === "free") return null;
|
|
4629
4631
|
let t = typeof e == "number" ? e : Number(e);
|
|
4630
4632
|
return Number.isFinite(t) && t > 0 ? t : null;
|
|
4631
4633
|
}
|
|
4632
|
-
function
|
|
4634
|
+
function Zn(e, t, n) {
|
|
4633
4635
|
if (!n) return {
|
|
4634
4636
|
x: 0,
|
|
4635
4637
|
y: 0,
|
|
@@ -4644,46 +4646,46 @@ function Xn(e, t, n) {
|
|
|
4644
4646
|
h: i
|
|
4645
4647
|
};
|
|
4646
4648
|
}
|
|
4647
|
-
function
|
|
4649
|
+
function Qn(e, t, n) {
|
|
4648
4650
|
return {
|
|
4649
4651
|
...e,
|
|
4650
4652
|
x: Math.min(Math.max(e.x, 0), Math.max(t - e.w, 0)),
|
|
4651
4653
|
y: Math.min(Math.max(e.y, 0), Math.max(n - e.h, 0))
|
|
4652
4654
|
};
|
|
4653
4655
|
}
|
|
4654
|
-
function
|
|
4655
|
-
return
|
|
4656
|
+
function $n(e, t, n, r, i) {
|
|
4657
|
+
return Qn({
|
|
4656
4658
|
...e,
|
|
4657
4659
|
x: e.x + t,
|
|
4658
4660
|
y: e.y + n
|
|
4659
4661
|
}, r, i);
|
|
4660
4662
|
}
|
|
4661
|
-
function
|
|
4663
|
+
function er(e, t) {
|
|
4662
4664
|
return Math.min(32, e, t);
|
|
4663
4665
|
}
|
|
4664
|
-
function
|
|
4666
|
+
function tr(e, t) {
|
|
4665
4667
|
return t.w / e.w;
|
|
4666
4668
|
}
|
|
4667
|
-
function
|
|
4668
|
-
return Math.max(4,
|
|
4669
|
+
function nr(e, t) {
|
|
4670
|
+
return Math.max(4, tr(e, t));
|
|
4669
4671
|
}
|
|
4670
|
-
function
|
|
4671
|
-
let a = Math.min(Math.max(n, 1),
|
|
4672
|
-
return
|
|
4672
|
+
function rr(e, t, n, r, i) {
|
|
4673
|
+
let a = Math.min(Math.max(n, 1), nr(e, t)), o = e.h / e.w, s = Math.min(r, i / o), c = Math.min(Math.max(er(r, i), er(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;
|
|
4674
|
+
return Qn({
|
|
4673
4675
|
x: d - l / 2,
|
|
4674
4676
|
y: f - u / 2,
|
|
4675
4677
|
w: l,
|
|
4676
4678
|
h: u
|
|
4677
4679
|
}, r, i);
|
|
4678
4680
|
}
|
|
4679
|
-
var
|
|
4681
|
+
var ir = [
|
|
4680
4682
|
"nw",
|
|
4681
4683
|
"ne",
|
|
4682
4684
|
"sw",
|
|
4683
4685
|
"se"
|
|
4684
4686
|
];
|
|
4685
|
-
function
|
|
4686
|
-
let o =
|
|
4687
|
+
function ar(e, t, n, r, i, a) {
|
|
4688
|
+
let o = er(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);
|
|
4687
4689
|
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), {
|
|
4688
4690
|
x: Math.min(d, l),
|
|
4689
4691
|
y: Math.min(f, u),
|
|
@@ -4691,53 +4693,53 @@ function ir(e, t, n, r, i, a) {
|
|
|
4691
4693
|
h: Math.abs(f - u)
|
|
4692
4694
|
};
|
|
4693
4695
|
}
|
|
4694
|
-
function
|
|
4696
|
+
function or(e, t = Kn) {
|
|
4695
4697
|
let n = Math.min(1, t / Math.max(e.w, e.h));
|
|
4696
4698
|
return {
|
|
4697
4699
|
width: Math.max(1, Math.round(e.w * n)),
|
|
4698
4700
|
height: Math.max(1, Math.round(e.h * n))
|
|
4699
4701
|
};
|
|
4700
4702
|
}
|
|
4701
|
-
var
|
|
4703
|
+
var sr = [
|
|
4702
4704
|
"image/png",
|
|
4703
4705
|
"image/jpeg",
|
|
4704
4706
|
"image/webp"
|
|
4705
|
-
],
|
|
4707
|
+
], cr = {
|
|
4706
4708
|
"image/png": ".png",
|
|
4707
4709
|
"image/jpeg": ".jpg",
|
|
4708
4710
|
"image/webp": ".webp"
|
|
4709
4711
|
};
|
|
4710
|
-
function
|
|
4712
|
+
function lr(e) {
|
|
4711
4713
|
let t = String(e || "").toLowerCase();
|
|
4712
|
-
return
|
|
4714
|
+
return sr.includes(t) ? t : "image/png";
|
|
4713
4715
|
}
|
|
4714
|
-
function
|
|
4715
|
-
let n = String(e || "image"), r =
|
|
4716
|
+
function ur(e, t) {
|
|
4717
|
+
let n = String(e || "image"), r = cr[t];
|
|
4716
4718
|
return (t === "image/jpeg" ? /\.jpe?g$/i.test(n) : n.toLowerCase().endsWith(r)) ? n : `${n.replace(/\.[^./\\]+$/, "") || "image"}${r}`;
|
|
4717
4719
|
}
|
|
4718
|
-
async function
|
|
4720
|
+
async function dr(e, { width: t, height: n, type: r, maxBytes: i }) {
|
|
4719
4721
|
let a = r, o = t, s = n, c = null;
|
|
4720
|
-
for (let t = 0; t <=
|
|
4721
|
-
let n = a === "image/png" ? [void 0] : t === 0 ?
|
|
4722
|
+
for (let t = 0; t <= Yn; t++) {
|
|
4723
|
+
let n = a === "image/png" ? [void 0] : t === 0 ? qn : [qn[1]];
|
|
4722
4724
|
for (let t of n) {
|
|
4723
4725
|
if (c = await e(o, s, a, t), !c || (c.type && c.type !== a && (a = c.type), !(i > 0) || c.size <= i)) return c;
|
|
4724
4726
|
if (a === "image/png") break;
|
|
4725
4727
|
}
|
|
4726
|
-
o = Math.max(1, Math.round(o *
|
|
4728
|
+
o = Math.max(1, Math.round(o * Jn)), s = Math.max(1, Math.round(s * Jn));
|
|
4727
4729
|
}
|
|
4728
4730
|
return c;
|
|
4729
4731
|
}
|
|
4730
4732
|
//#endregion
|
|
4731
4733
|
//#region src/WuiImageCrop.js
|
|
4732
|
-
var
|
|
4734
|
+
var fr = .05, pr = .2, mr = {
|
|
4733
4735
|
w: 320,
|
|
4734
4736
|
h: 240
|
|
4735
|
-
},
|
|
4737
|
+
}, hr = {
|
|
4736
4738
|
nw: "top left",
|
|
4737
4739
|
ne: "top right",
|
|
4738
4740
|
sw: "bottom left",
|
|
4739
4741
|
se: "bottom right"
|
|
4740
|
-
},
|
|
4742
|
+
}, gr = "<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>", _r = "<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>", vr = class extends e {
|
|
4741
4743
|
static get observedAttributes() {
|
|
4742
4744
|
return [
|
|
4743
4745
|
"src",
|
|
@@ -4755,7 +4757,7 @@ var dr = .05, fr = .2, pr = {
|
|
|
4755
4757
|
e == null || e === "" ? this.removeAttribute("src") : this.setAttribute("src", String(e));
|
|
4756
4758
|
}
|
|
4757
4759
|
get aspect() {
|
|
4758
|
-
return
|
|
4760
|
+
return Xn(this.getAttribute("aspect"));
|
|
4759
4761
|
}
|
|
4760
4762
|
set aspect(e) {
|
|
4761
4763
|
e == null || e === "" ? this.removeAttribute("aspect") : this.setAttribute("aspect", String(e));
|
|
@@ -4770,10 +4772,10 @@ var dr = .05, fr = .2, pr = {
|
|
|
4770
4772
|
return this._rect ? { ...this._rect } : null;
|
|
4771
4773
|
}
|
|
4772
4774
|
get zoom() {
|
|
4773
|
-
return this._rect ?
|
|
4775
|
+
return this._rect ? tr(this._rect, this._base) : 1;
|
|
4774
4776
|
}
|
|
4775
4777
|
set zoom(e) {
|
|
4776
|
-
this._rect && (this._rect =
|
|
4778
|
+
this._rect && (this._rect = rr(this._rect, this._base, Number(e) || 1, this._natural.w, this._natural.h), this._paint(), this._announce());
|
|
4777
4779
|
}
|
|
4778
4780
|
connectedCallback() {
|
|
4779
4781
|
if (!this._rendered) {
|
|
@@ -4795,18 +4797,18 @@ var dr = .05, fr = .2, pr = {
|
|
|
4795
4797
|
<div class="wui-crop-frame"></div>
|
|
4796
4798
|
</div>
|
|
4797
4799
|
<div class="wui-crop-controls">
|
|
4798
|
-
<button type="button" class="wui-crop-zoombtn" data-zoom="out" aria-label="Zoom out">${
|
|
4800
|
+
<button type="button" class="wui-crop-zoombtn" data-zoom="out" aria-label="Zoom out">${gr}</button>
|
|
4799
4801
|
<input type="range" class="form-range wui-crop-zoom" min="1" max="4" step="0.01" value="1" aria-label="Zoom">
|
|
4800
|
-
<button type="button" class="wui-crop-zoombtn" data-zoom="in" aria-label="Zoom in">${
|
|
4802
|
+
<button type="button" class="wui-crop-zoombtn" data-zoom="in" aria-label="Zoom in">${_r}</button>
|
|
4801
4803
|
</div>
|
|
4802
4804
|
<div class="visually-hidden" data-wui-crop-live aria-live="polite"></div>
|
|
4803
4805
|
</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();
|
|
4804
4806
|
}
|
|
4805
4807
|
_rebuildHandles() {
|
|
4806
4808
|
for (let e of this._frame.querySelectorAll(".wui-crop-handle")) e.remove();
|
|
4807
|
-
if (!this.aspect) for (let e of
|
|
4809
|
+
if (!this.aspect) for (let e of ir) {
|
|
4808
4810
|
let t = document.createElement("button");
|
|
4809
|
-
t.type = "button", t.className = `wui-crop-handle wui-crop-handle--${e}`, t.dataset.handle = e, t.setAttribute("aria-label", `Resize ${
|
|
4811
|
+
t.type = "button", t.className = `wui-crop-handle wui-crop-handle--${e}`, t.dataset.handle = e, t.setAttribute("aria-label", `Resize ${hr[e]} corner`), this._frame.appendChild(t);
|
|
4810
4812
|
}
|
|
4811
4813
|
}
|
|
4812
4814
|
_loadImage() {
|
|
@@ -4822,13 +4824,13 @@ var dr = .05, fr = .2, pr = {
|
|
|
4822
4824
|
}, this._img.src = e);
|
|
4823
4825
|
}
|
|
4824
4826
|
_resetRect() {
|
|
4825
|
-
this._natural && (this._base =
|
|
4827
|
+
this._natural && (this._base = Zn(this._natural.w, this._natural.h, this.aspect), this._rect = { ...this._base }, this._frame.hidden = !1, this._paint());
|
|
4826
4828
|
}
|
|
4827
4829
|
_observe() {
|
|
4828
4830
|
typeof ResizeObserver > "u" || this._resizeObserver || (this._resizeObserver = new ResizeObserver(() => this._paint()), this._resizeObserver.observe(this._stage));
|
|
4829
4831
|
}
|
|
4830
4832
|
_view() {
|
|
4831
|
-
let e = this._stage.clientWidth ||
|
|
4833
|
+
let e = this._stage.clientWidth || mr.w, t = this._stage.clientHeight || mr.h, n = Math.min(e / this._natural.w, t / this._natural.h), r = this._natural.w * n, i = this._natural.h * n;
|
|
4832
4834
|
return {
|
|
4833
4835
|
scale: n,
|
|
4834
4836
|
left: (e - r) / 2,
|
|
@@ -4853,7 +4855,7 @@ var dr = .05, fr = .2, pr = {
|
|
|
4853
4855
|
width: `${t.w * e.scale}px`,
|
|
4854
4856
|
height: `${t.h * e.scale}px`
|
|
4855
4857
|
});
|
|
4856
|
-
let n =
|
|
4858
|
+
let n = tr(t, this._base), r = nr(t, this._base);
|
|
4857
4859
|
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)}%`);
|
|
4858
4860
|
}
|
|
4859
4861
|
_announce() {
|
|
@@ -4863,7 +4865,7 @@ var dr = .05, fr = .2, pr = {
|
|
|
4863
4865
|
}));
|
|
4864
4866
|
}
|
|
4865
4867
|
_say() {
|
|
4866
|
-
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(
|
|
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(tr(e, this._base) * 100)}%.`;
|
|
4867
4869
|
this._live.textContent = t === this._live.textContent ? `${t}\u00a0` : t;
|
|
4868
4870
|
}
|
|
4869
4871
|
_wire() {
|
|
@@ -4884,8 +4886,8 @@ var dr = .05, fr = .2, pr = {
|
|
|
4884
4886
|
let r = this._view(), { w: i, h: a } = this._natural;
|
|
4885
4887
|
if (n.corner) {
|
|
4886
4888
|
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;
|
|
4887
|
-
this._rect =
|
|
4888
|
-
} else this._rect =
|
|
4889
|
+
this._rect = ar(this._rect, n.corner, s, c, i, a);
|
|
4890
|
+
} else this._rect = $n(n.start, (t.clientX - n.x) / r.scale, (t.clientY - n.y) / r.scale, i, a);
|
|
4889
4891
|
this._paint();
|
|
4890
4892
|
});
|
|
4891
4893
|
let t = (t) => {
|
|
@@ -4909,19 +4911,19 @@ var dr = .05, fr = .2, pr = {
|
|
|
4909
4911
|
if (e.key === "+" || e.key === "=") this.zoom *= 1.25, this._say();
|
|
4910
4912
|
else if (e.key === "-" || e.key === "_") this.zoom *= .8, this._say();
|
|
4911
4913
|
else if (e.key.startsWith("Arrow")) {
|
|
4912
|
-
let r = e.shiftKey ?
|
|
4914
|
+
let r = e.shiftKey ? pr : fr, 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;
|
|
4913
4915
|
if (o) {
|
|
4914
4916
|
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;
|
|
4915
|
-
this._rect =
|
|
4916
|
-
} else this._rect =
|
|
4917
|
+
this._rect = ar(e, o, s, c, t, n);
|
|
4918
|
+
} else this._rect = $n(this._rect, i * r * this._rect.w, a * r * this._rect.h, t, n);
|
|
4917
4919
|
this._paint(), this._announce(), this._say();
|
|
4918
4920
|
} else return;
|
|
4919
4921
|
e.preventDefault();
|
|
4920
4922
|
}
|
|
4921
4923
|
async toBlob({ type: e, maxBytes: t = 0 } = {}) {
|
|
4922
4924
|
if (!this._rect) return null;
|
|
4923
|
-
let n =
|
|
4924
|
-
return
|
|
4925
|
+
let n = lr(e), r = Qn(this._rect, this._natural.w, this._natural.h), { width: i, height: a } = or(r);
|
|
4926
|
+
return dr((e, t, n, i) => new Promise((a) => {
|
|
4925
4927
|
let o = document.createElement("canvas");
|
|
4926
4928
|
o.width = e, o.height = t;
|
|
4927
4929
|
let s = o.getContext("2d");
|
|
@@ -4942,25 +4944,25 @@ var dr = .05, fr = .2, pr = {
|
|
|
4942
4944
|
type: t,
|
|
4943
4945
|
maxBytes: n
|
|
4944
4946
|
});
|
|
4945
|
-
return r ? new File([r],
|
|
4947
|
+
return r ? new File([r], ur(e, r.type), { type: r.type }) : null;
|
|
4946
4948
|
}
|
|
4947
|
-
},
|
|
4949
|
+
}, yr = {
|
|
4948
4950
|
enter: "Enter",
|
|
4949
4951
|
comma: ",",
|
|
4950
4952
|
space: " ",
|
|
4951
4953
|
tab: "Tab"
|
|
4952
|
-
},
|
|
4954
|
+
}, br = {
|
|
4953
4955
|
enter: "\n",
|
|
4954
4956
|
comma: ",",
|
|
4955
4957
|
space: " ",
|
|
4956
4958
|
tab: " "
|
|
4957
|
-
},
|
|
4958
|
-
function
|
|
4959
|
+
}, xr = (e) => yr[e], Sr = (e) => br[e];
|
|
4960
|
+
function Cr(e, t) {
|
|
4959
4961
|
let n = [String(e ?? "")];
|
|
4960
4962
|
for (let e of t) n = n.flatMap((t) => t.split(e));
|
|
4961
4963
|
return n.map((e) => e.trim()).filter(Boolean);
|
|
4962
4964
|
}
|
|
4963
|
-
var
|
|
4965
|
+
var wr = (e, t) => t.some((t) => String(e ?? "").includes(t)), Tr = class extends e {
|
|
4964
4966
|
static formAssociated = !0;
|
|
4965
4967
|
_accessibleName() {
|
|
4966
4968
|
return this.getAttribute("aria-label") || this.getAttribute("placeholder") || "Select";
|
|
@@ -5024,7 +5026,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5024
5026
|
return this._values.slice();
|
|
5025
5027
|
}
|
|
5026
5028
|
set values(e) {
|
|
5027
|
-
this._values = Array.isArray(e) ? e.map(String) : [],
|
|
5029
|
+
this._values = Array.isArray(e) ? e.map(String) : [], I(this, this._values), this._rendered && (this._renderControl(), this._renderOptions(this._query()));
|
|
5028
5030
|
}
|
|
5029
5031
|
set options(e) {
|
|
5030
5032
|
if (this._optionsProp = Array.isArray(e) ? e : null, this._rendered && this._allowCustom) {
|
|
@@ -5057,10 +5059,10 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5057
5059
|
value: e.getAttribute("value") ?? e.textContent.trim(),
|
|
5058
5060
|
label: e.innerHTML,
|
|
5059
5061
|
icon: e.getAttribute("icon") || void 0,
|
|
5060
|
-
[
|
|
5062
|
+
[Yt]: !0,
|
|
5061
5063
|
selected: e.hasAttribute("selected")
|
|
5062
5064
|
};
|
|
5063
|
-
for (let [n, r] of
|
|
5065
|
+
for (let [n, r] of Dr) {
|
|
5064
5066
|
let i = e.getAttribute(n);
|
|
5065
5067
|
i && (t[r] = i);
|
|
5066
5068
|
}
|
|
@@ -5076,12 +5078,12 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5076
5078
|
}
|
|
5077
5079
|
_labelHtmlFor(e) {
|
|
5078
5080
|
let t = this._readOptions().find((t) => String(t.value) === String(e));
|
|
5079
|
-
return t ?
|
|
5081
|
+
return t ? $t(t) : R(e);
|
|
5080
5082
|
}
|
|
5081
5083
|
render() {
|
|
5082
5084
|
this._snapshotDeclared();
|
|
5083
5085
|
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" : "";
|
|
5084
|
-
|
|
5086
|
+
I(this, this._values), this.id ||= `wui-multiselect-${Math.random().toString(36).slice(2, 9)}`;
|
|
5085
5087
|
let o = `${this.id}-listbox`;
|
|
5086
5088
|
this._listboxId = o;
|
|
5087
5089
|
let s = this.hasAttribute("disabled");
|
|
@@ -5090,41 +5092,41 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5090
5092
|
this.innerHTML = `
|
|
5091
5093
|
<div class="search-select${a}">
|
|
5092
5094
|
<div class="input search-select-control search-select-multi"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${s ? " aria-disabled=\"true\"" : ""}>
|
|
5093
|
-
${r ?
|
|
5094
|
-
<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="${
|
|
5095
|
-
${
|
|
5095
|
+
${r ? L(r, { className: "search-select-icon" }) : ""}
|
|
5096
|
+
<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="${W(o)}" aria-label="${W(this._accessibleName())}" aria-describedby="${W(e)}" autocomplete="off"${s ? " disabled" : ""} /></div>
|
|
5097
|
+
${L("chevron-down", { className: "search-select-caret" })}
|
|
5096
5098
|
</div>
|
|
5097
|
-
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${
|
|
5099
|
+
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${W(o)}" aria-multiselectable="true" tabindex="-1" hidden>
|
|
5098
5100
|
<div class="search-select-options"></div>
|
|
5099
5101
|
</div>
|
|
5100
5102
|
</div>
|
|
5101
|
-
<div class="field-error wui-ms-custom-error" id="${
|
|
5103
|
+
<div class="field-error wui-ms-custom-error" id="${W(e)}" aria-live="polite" hidden></div>`;
|
|
5102
5104
|
} else this.innerHTML = `
|
|
5103
5105
|
<div class="search-select${a}">
|
|
5104
|
-
<div class="input search-select-control search-select-multi" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${
|
|
5105
|
-
${r ?
|
|
5106
|
+
<div class="input search-select-control search-select-multi" role="combobox" aria-haspopup="listbox" aria-expanded="false" aria-controls="${W(o)}" aria-label="${W(this._accessibleName())}"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${s ? " aria-disabled=\"true\"" : " tabindex=\"0\""}>
|
|
5107
|
+
${r ? L(r, { className: "search-select-icon" }) : ""}
|
|
5106
5108
|
<div class="ms-chips" data-chips></div>
|
|
5107
|
-
${
|
|
5109
|
+
${L("chevron-down", { className: "search-select-caret" })}
|
|
5108
5110
|
</div>
|
|
5109
|
-
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${
|
|
5110
|
-
${t ? `<div class="search-select-search">${
|
|
5111
|
+
<div class="search-select-menu search-select-menu-fixed" role="listbox" id="${W(o)}" aria-multiselectable="true" tabindex="-1" hidden>
|
|
5112
|
+
${t ? `<div class="search-select-search">${L("search")}<input class="search-select-input" placeholder="${W(n)}" aria-autocomplete="list" /><button type="button" class="search-select-clear" aria-label="Clear search" hidden>${L("x")}</button></div>` : ""}
|
|
5111
5113
|
<div class="search-select-options"></div>
|
|
5112
5114
|
<div class="search-select-empty" hidden>No matches</div>
|
|
5113
5115
|
</div>
|
|
5114
5116
|
</div>`;
|
|
5115
|
-
this._rendered = !0, this._customError = "",
|
|
5117
|
+
this._rendered = !0, this._customError = "", I(this, this._values), this._renderControl(), this._renderOptions(), this._wire();
|
|
5116
5118
|
}
|
|
5117
5119
|
_renderControl() {
|
|
5118
5120
|
let e = this.querySelector("[data-chips]");
|
|
5119
5121
|
if (!e) return;
|
|
5120
|
-
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="${
|
|
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="${W(e)}" aria-label="Remove ${W(Pr(this._labelFor(e)))}">${L("x")}</button></span>`).join("");
|
|
5121
5123
|
if (n) {
|
|
5122
5124
|
for (let t of [...e.querySelectorAll(":scope > .chip")]) t.remove();
|
|
5123
5125
|
n.insertAdjacentHTML("beforebegin", r), n.placeholder = this._values.length ? "" : t, this._collapseChips();
|
|
5124
5126
|
return;
|
|
5125
5127
|
}
|
|
5126
5128
|
if (!this._values.length) {
|
|
5127
|
-
e.innerHTML = `<span class="search-select-placeholder">${
|
|
5129
|
+
e.innerHTML = `<span class="search-select-placeholder">${R(t)}</span>`;
|
|
5128
5130
|
return;
|
|
5129
5131
|
}
|
|
5130
5132
|
e.innerHTML = r, this._collapseChips();
|
|
@@ -5148,11 +5150,11 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5148
5150
|
i.textContent = `+${t.length - o}`;
|
|
5149
5151
|
}
|
|
5150
5152
|
_matches(e, t) {
|
|
5151
|
-
return
|
|
5153
|
+
return Pr(e.label).toLowerCase().includes(t) || String(e.description ?? "").toLowerCase().includes(t);
|
|
5152
5154
|
}
|
|
5153
5155
|
_optionNamed(e) {
|
|
5154
5156
|
let t = e.trim().toLowerCase();
|
|
5155
|
-
return this._readOptions().find((e) => String(e.value ?? "").toLowerCase() === t ||
|
|
5157
|
+
return this._readOptions().find((e) => String(e.value ?? "").toLowerCase() === t || Pr(e.label).trim().toLowerCase() === t);
|
|
5156
5158
|
}
|
|
5157
5159
|
_renderOptions(e) {
|
|
5158
5160
|
let t = this.querySelector(".search-select-options"), n = this.querySelector(".search-select-empty");
|
|
@@ -5161,9 +5163,9 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5161
5163
|
i && (a = a.filter((e) => this._matches(e, i)));
|
|
5162
5164
|
let o = this._listboxId || `${this.id || "wui-multiselect"}-listbox`, s = this._allowCustom && r && !this._optionNamed(r), c = a.map((e, t) => {
|
|
5163
5165
|
let n = this._values.includes(String(e.value)), r = `${o}-opt-${t}`;
|
|
5164
|
-
return
|
|
5166
|
+
return Or(e) ? jr(e, r, n) : `<button type="button" role="option" id="${W(r)}" class="search-select-option${n ? " selected" : ""}" data-value="${W(e.value)}" aria-selected="${n}"><span class="ms-opt-label">${$t(e)}</span><span class="ms-check">${L("check")}</span></button>`;
|
|
5165
5167
|
});
|
|
5166
|
-
s && c.push(`<button type="button" role="option" id="${
|
|
5168
|
+
s && c.push(`<button type="button" role="option" id="${W(`${o}-opt-${a.length}`)}" class="search-select-option search-select-option-custom" data-value="${W(r)}" data-custom="true" aria-selected="false">Add “${R(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?.();
|
|
5167
5169
|
}
|
|
5168
5170
|
_combobox() {
|
|
5169
5171
|
return this._allowCustom ? this.querySelector("[data-input]") : this.querySelector(".search-select-control");
|
|
@@ -5176,7 +5178,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5176
5178
|
_customRefusal(e) {
|
|
5177
5179
|
let t = this.getAttribute("custom-invalid-message") || "Enter a valid value.", n = this.getAttribute("custom-pattern");
|
|
5178
5180
|
if (n) {
|
|
5179
|
-
let r =
|
|
5181
|
+
let r = Nr(n);
|
|
5180
5182
|
if (r && !r.test(e)) return t;
|
|
5181
5183
|
}
|
|
5182
5184
|
let r = this._validateCustom;
|
|
@@ -5205,7 +5207,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5205
5207
|
this._teardown();
|
|
5206
5208
|
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;
|
|
5207
5209
|
if (!e || !t) return;
|
|
5208
|
-
let c = () => this.hasAttribute("disabled"), l = () =>
|
|
5210
|
+
let c = () => this.hasAttribute("disabled"), l = () => P(e, t, { matchWidth: !0 }), u = () => [...this.querySelectorAll(".search-select-option")], d = () => u().filter((e) => !e.hidden), f = (e) => {
|
|
5209
5211
|
let t = d();
|
|
5210
5212
|
this._active = e;
|
|
5211
5213
|
for (let e of u()) e.classList.remove("is-active");
|
|
@@ -5226,7 +5228,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5226
5228
|
}, _ = () => {
|
|
5227
5229
|
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 = "";
|
|
5228
5230
|
}, v = () => {
|
|
5229
|
-
|
|
5231
|
+
I(this, this._values), this.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
5230
5232
|
}, y = (e) => {
|
|
5231
5233
|
let t = String(e);
|
|
5232
5234
|
if (this._values.includes(t)) this._values = this._values.filter((e) => e !== t);
|
|
@@ -5236,7 +5238,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5236
5238
|
}, b = (e) => {
|
|
5237
5239
|
this._values = this._values.filter((t) => t !== String(e)), this._renderControl(), this._renderOptions(this._query()), v();
|
|
5238
5240
|
}, x = (e, { quiet: t = !1 } = {}) => {
|
|
5239
|
-
let n = this._values.length, r =
|
|
5241
|
+
let n = this._values.length, r = wr(e, Er) ? Cr(e, Er) : [e], i = [], a = "";
|
|
5240
5242
|
for (let e of r) {
|
|
5241
5243
|
let t = this._commitTyped(e);
|
|
5242
5244
|
t && (i.push(e.trim()), a ||= t);
|
|
@@ -5274,7 +5276,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5274
5276
|
e.target?.classList?.contains("avatar-img") && e.target.remove();
|
|
5275
5277
|
}, !0), n?.addEventListener("input", () => {
|
|
5276
5278
|
this._renderOptions(n.value), r && (r.hidden = !n.value), f(-1);
|
|
5277
|
-
}), this._navHandler =
|
|
5279
|
+
}), this._navHandler = Jt({
|
|
5278
5280
|
getVisibleOptions: d,
|
|
5279
5281
|
getActive: () => this._active,
|
|
5280
5282
|
setActive: (e) => f(e),
|
|
@@ -5285,7 +5287,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5285
5287
|
this._navHandler.clearTypeahead(), _(), o || e.focus();
|
|
5286
5288
|
}
|
|
5287
5289
|
});
|
|
5288
|
-
let
|
|
5290
|
+
let C = (e) => {
|
|
5289
5291
|
let t = o || n;
|
|
5290
5292
|
if (e.key === "Backspace" && !t?.value && this._values.length) {
|
|
5291
5293
|
b(this._values[this._values.length - 1]);
|
|
@@ -5293,7 +5295,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5293
5295
|
}
|
|
5294
5296
|
this._navHandler.handler(e);
|
|
5295
5297
|
};
|
|
5296
|
-
if (n?.addEventListener("keydown",
|
|
5298
|
+
if (n?.addEventListener("keydown", C), r?.addEventListener("click", () => {
|
|
5297
5299
|
n.value = "", this._renderOptions(""), r.hidden = !0, n.focus();
|
|
5298
5300
|
}), o) {
|
|
5299
5301
|
let t = (e) => {
|
|
@@ -5311,16 +5313,16 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5311
5313
|
this._navHandler.handler(e);
|
|
5312
5314
|
return;
|
|
5313
5315
|
}
|
|
5314
|
-
(e.key === "ArrowDown" || e.key === "ArrowUp") && !m() && g(),
|
|
5316
|
+
(e.key === "ArrowDown" || e.key === "ArrowUp") && !m() && g(), C(e);
|
|
5315
5317
|
}), o.addEventListener("paste", (e) => {
|
|
5316
5318
|
let t = e.clipboardData?.getData("text/plain") ?? "";
|
|
5317
|
-
|
|
5319
|
+
wr(t, Er) && (e.preventDefault(), x(`${o.value}${t}`));
|
|
5318
5320
|
}), o.addEventListener("blur", (e) => {
|
|
5319
5321
|
e.relatedTarget && this.contains(e.relatedTarget) || (o.value.trim() && x(o.value, { quiet: !0 }), _());
|
|
5320
5322
|
});
|
|
5321
5323
|
} else e.addEventListener("keydown", (e) => {
|
|
5322
5324
|
if (m()) {
|
|
5323
|
-
|
|
5325
|
+
C(e);
|
|
5324
5326
|
return;
|
|
5325
5327
|
}
|
|
5326
5328
|
(e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") && (e.preventDefault(), g());
|
|
@@ -5328,46 +5330,46 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5328
5330
|
this._bindGlobal = () => {
|
|
5329
5331
|
this._teardown(), !this._ro && typeof ResizeObserver < "u" && (this._ro = new ResizeObserver(() => this._collapseChips()), this._ro.observe(this)), this._onDocClick = (e) => {
|
|
5330
5332
|
m() && !this.contains(e.target) && _();
|
|
5331
|
-
}, document.addEventListener("click", this._onDocClick),
|
|
5333
|
+
}, document.addEventListener("click", this._onDocClick), Ht(this, () => {
|
|
5332
5334
|
m() && l();
|
|
5333
5335
|
});
|
|
5334
5336
|
}, this._bindGlobal();
|
|
5335
5337
|
}
|
|
5336
5338
|
_teardown() {
|
|
5337
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null),
|
|
5339
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), Ut(this), this._navHandler?.teardown();
|
|
5338
5340
|
}
|
|
5339
5341
|
disconnectedCallback() {
|
|
5340
5342
|
this._teardown(), this._ro?.disconnect(), this._ro = null;
|
|
5341
5343
|
}
|
|
5342
|
-
},
|
|
5344
|
+
}, Er = [
|
|
5343
5345
|
",",
|
|
5344
5346
|
";",
|
|
5345
5347
|
"\n",
|
|
5346
5348
|
" "
|
|
5347
|
-
],
|
|
5349
|
+
], Dr = [
|
|
5348
5350
|
["description", "description"],
|
|
5349
5351
|
["avatar", "avatar"],
|
|
5350
5352
|
["initials", "initials"],
|
|
5351
5353
|
["disabled-hint", "disabledHint"]
|
|
5352
|
-
],
|
|
5354
|
+
], Or = (e) => !!(e.description || e.avatar || e.initials || e.disabled || e.disabledHint), kr = (e) => {
|
|
5353
5355
|
let t = String(e ?? "").trim();
|
|
5354
5356
|
return /^(https?:)?\/\//i.test(t) || /^\/(?!\/)/.test(t) || /^data:image\/(png|jpe?g|gif|webp|avif);/i.test(t) ? t : "";
|
|
5355
|
-
},
|
|
5356
|
-
let t =
|
|
5357
|
-
return !t && !e.initials ? "" : `<span class="avatar wui-opt-avatar" aria-hidden="true"><span class="avatar-face">${
|
|
5358
|
-
},
|
|
5359
|
-
let r = !!e.disabled, i = e.description ? `<span class="wui-opt-desc">${
|
|
5360
|
-
return `<button type="button" role="option" id="${
|
|
5361
|
-
},
|
|
5362
|
-
if (
|
|
5357
|
+
}, Ar = (e) => {
|
|
5358
|
+
let t = kr(e.avatar);
|
|
5359
|
+
return !t && !e.initials ? "" : `<span class="avatar wui-opt-avatar" aria-hidden="true"><span class="avatar-face">${R(e.initials ?? "")}</span>${t ? `<img class="avatar-img" src="${W(t)}" alt="" />` : ""}</span>`;
|
|
5360
|
+
}, jr = (e, t, n) => {
|
|
5361
|
+
let r = !!e.disabled, i = e.description ? `<span class="wui-opt-desc">${R(e.description)}</span>` : "", a = e.disabledHint && r ? `<span class="wui-opt-hint">${R(e.disabledHint)}</span>` : "";
|
|
5362
|
+
return `<button type="button" role="option" id="${W(t)}" class="search-select-option wui-opt-rich${n ? " selected" : ""}" data-value="${W(e.value)}" aria-selected="${n}"${r ? " aria-disabled=\"true\"" : ""}><span class="ms-opt-label"><span class="wui-opt-name">${$t(e)}</span>${i}</span>${a}${Ar(e)}<span class="ms-check">${L("check")}</span></button>`;
|
|
5363
|
+
}, Mr = /* @__PURE__ */ new Map(), Nr = (e) => {
|
|
5364
|
+
if (Mr.has(e)) return Mr.get(e);
|
|
5363
5365
|
let t = null;
|
|
5364
5366
|
try {
|
|
5365
5367
|
t = RegExp(`^(?:${e})$`, "u");
|
|
5366
5368
|
} catch {
|
|
5367
5369
|
console.warn(`<wui-multiselect> custom-pattern is not a valid regular expression and is ignored: ${e}`);
|
|
5368
5370
|
}
|
|
5369
|
-
return
|
|
5370
|
-
},
|
|
5371
|
+
return Mr.set(e, t), t;
|
|
5372
|
+
}, W = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), Pr = (e) => String(e ?? "").replace(/<[^>]*>/g, ""), Fr = /[^0-9]/g, Ir = /[^0-9a-zA-Z]/g, Lr = class extends e {
|
|
5371
5373
|
static formAssociated = !0;
|
|
5372
5374
|
static get observedAttributes() {
|
|
5373
5375
|
return [
|
|
@@ -5395,10 +5397,10 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5395
5397
|
return this._value ?? "";
|
|
5396
5398
|
}
|
|
5397
5399
|
set value(e) {
|
|
5398
|
-
this._value = this._clean(e),
|
|
5400
|
+
this._value = this._clean(e), F(this, this._value), this._paint();
|
|
5399
5401
|
}
|
|
5400
5402
|
_clean(e) {
|
|
5401
|
-
return (e == null ? "" : String(e)).replace(this.mode === "alphanumeric" ?
|
|
5403
|
+
return (e == null ? "" : String(e)).replace(this.mode === "alphanumeric" ? Ir : Fr, "").slice(0, this.length);
|
|
5402
5404
|
}
|
|
5403
5405
|
constructor() {
|
|
5404
5406
|
super();
|
|
@@ -5412,10 +5414,10 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5412
5414
|
this._rendered ? this._onSelectionChange && document.addEventListener("selectionchange", this._onSelectionChange) : (this._defaultCaptured ||= (this._defaultValue = this._value, !0), this.render());
|
|
5413
5415
|
}
|
|
5414
5416
|
formResetCallback() {
|
|
5415
|
-
this._value = this._defaultValue || "",
|
|
5417
|
+
this._value = this._defaultValue || "", F(this, this._value), this._paint();
|
|
5416
5418
|
}
|
|
5417
5419
|
attributeChangedCallback(e, t, n) {
|
|
5418
|
-
this._rendered && (e === "value" ? (this._value = this._clean(n),
|
|
5420
|
+
this._rendered && (e === "value" ? (this._value = this._clean(n), F(this, this._value), this._paint()) : this.render());
|
|
5419
5421
|
}
|
|
5420
5422
|
render() {
|
|
5421
5423
|
this._value = this._clean(this.getAttribute("value") ?? this._value);
|
|
@@ -5433,7 +5435,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5433
5435
|
spellcheck="false"
|
|
5434
5436
|
${n ? "disabled" : ""} />
|
|
5435
5437
|
<div class="otp-slots" aria-hidden="true">${r}</div>
|
|
5436
|
-
</div>`, this._rendered = !0,
|
|
5438
|
+
</div>`, this._rendered = !0, F(this, this._value), this._wire(), this._paint();
|
|
5437
5439
|
}
|
|
5438
5440
|
_refs() {
|
|
5439
5441
|
return {
|
|
@@ -5455,7 +5457,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5455
5457
|
if (!e) return;
|
|
5456
5458
|
let t = (e) => {
|
|
5457
5459
|
let t = this._clean(e), n = t !== this._value;
|
|
5458
|
-
this._value = t,
|
|
5460
|
+
this._value = t, F(this, this._value), this._paint(), n && this.dispatchEvent(new Event("change", { bubbles: !0 })), n && t.length === this.length && this.dispatchEvent(new CustomEvent("complete", {
|
|
5459
5461
|
bubbles: !0,
|
|
5460
5462
|
detail: t
|
|
5461
5463
|
}));
|
|
@@ -5489,7 +5491,7 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5489
5491
|
disconnectedCallback() {
|
|
5490
5492
|
this._onSelectionChange && document.removeEventListener("selectionchange", this._onSelectionChange);
|
|
5491
5493
|
}
|
|
5492
|
-
},
|
|
5494
|
+
}, Rr = {
|
|
5493
5495
|
AD: ["Europe/Andorra"],
|
|
5494
5496
|
AE: ["Asia/Dubai"],
|
|
5495
5497
|
AF: ["Asia/Kabul"],
|
|
@@ -5891,13 +5893,13 @@ var Cr = (e, t) => t.some((t) => String(e ?? "").includes(t)), wr = class extend
|
|
|
5891
5893
|
ZA: ["Africa/Johannesburg"],
|
|
5892
5894
|
ZM: ["Africa/Lusaka"],
|
|
5893
5895
|
ZW: ["Africa/Harare"]
|
|
5894
|
-
},
|
|
5895
|
-
for (let [e, t] of Object.entries(
|
|
5896
|
-
function Br(e) {
|
|
5897
|
-
let t = zr.get(e);
|
|
5898
|
-
return t && Rr.has(t) ? t : null;
|
|
5899
|
-
}
|
|
5896
|
+
}, zr = new Set(kn.map(([e]) => e)), Br = /* @__PURE__ */ new Map();
|
|
5897
|
+
for (let [e, t] of Object.entries(Rr)) for (let n of t) Br.set(n, e);
|
|
5900
5898
|
function Vr(e) {
|
|
5899
|
+
let t = Br.get(e);
|
|
5900
|
+
return t && zr.has(t) ? t : null;
|
|
5901
|
+
}
|
|
5902
|
+
function Hr(e) {
|
|
5901
5903
|
if (!e) return null;
|
|
5902
5904
|
let t;
|
|
5903
5905
|
try {
|
|
@@ -5905,9 +5907,9 @@ function Vr(e) {
|
|
|
5905
5907
|
} catch {
|
|
5906
5908
|
return null;
|
|
5907
5909
|
}
|
|
5908
|
-
return t &&
|
|
5910
|
+
return t && zr.has(t) ? t : null;
|
|
5909
5911
|
}
|
|
5910
|
-
function
|
|
5912
|
+
function Ur() {
|
|
5911
5913
|
let e;
|
|
5912
5914
|
try {
|
|
5913
5915
|
e = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
@@ -5915,77 +5917,77 @@ function Hr() {
|
|
|
5915
5917
|
e = void 0;
|
|
5916
5918
|
}
|
|
5917
5919
|
let t = typeof navigator > "u" ? void 0 : navigator.language;
|
|
5918
|
-
return
|
|
5920
|
+
return Vr(e) || Hr(t) || "IN";
|
|
5919
5921
|
}
|
|
5920
5922
|
//#endregion
|
|
5921
5923
|
//#region src/WuiPhone.js
|
|
5922
|
-
var
|
|
5923
|
-
function
|
|
5924
|
-
return
|
|
5924
|
+
var Wr = (e) => `wui-flag wui-flag-${String(e).toLowerCase()}`, G = null, Gr = null;
|
|
5925
|
+
function Kr() {
|
|
5926
|
+
return G ? Promise.resolve(G) : (Gr ||= Promise.all([import("./max-BDKx469G.js"), import("./examples.mobile.json-BMXTGiGC.js")]).then(([e, t]) => (G = {
|
|
5925
5927
|
AsYouType: e.AsYouType,
|
|
5926
5928
|
getExampleNumber: e.getExampleNumber,
|
|
5927
5929
|
isValidPhoneNumber: e.isValidPhoneNumber,
|
|
5928
5930
|
parsePhoneNumber: e.parsePhoneNumber,
|
|
5929
5931
|
examples: t.default || t
|
|
5930
|
-
},
|
|
5932
|
+
}, G)).catch(() => null), Gr);
|
|
5931
5933
|
}
|
|
5932
|
-
function
|
|
5933
|
-
let n = `+${
|
|
5934
|
+
function qr(e, t) {
|
|
5935
|
+
let n = `+${An(e)}`;
|
|
5934
5936
|
return t?.startsWith(n) ? t.slice(n.length).trimStart() : null;
|
|
5935
5937
|
}
|
|
5936
|
-
function
|
|
5937
|
-
if (!
|
|
5938
|
+
function Jr(e, t) {
|
|
5939
|
+
if (!G || !t) return t;
|
|
5938
5940
|
try {
|
|
5939
|
-
return
|
|
5941
|
+
return qr(e, new G.AsYouType(e).input(`+${An(e)}${t}`)) || t;
|
|
5940
5942
|
} catch {
|
|
5941
5943
|
return t;
|
|
5942
5944
|
}
|
|
5943
5945
|
}
|
|
5944
|
-
function
|
|
5946
|
+
function Yr(e, t) {
|
|
5945
5947
|
if (t <= 0) return 0;
|
|
5946
5948
|
let n = 0;
|
|
5947
5949
|
for (let r = 0; r < e.length; r++) if (/[0-9]/.test(e[r]) && (n += 1, n === t)) return r + 1;
|
|
5948
5950
|
return e.length;
|
|
5949
5951
|
}
|
|
5950
|
-
function
|
|
5951
|
-
if (!
|
|
5952
|
+
function Xr(e) {
|
|
5953
|
+
if (!G) return null;
|
|
5952
5954
|
try {
|
|
5953
|
-
return
|
|
5955
|
+
return qr(e, G.getExampleNumber(e, G.examples)?.formatInternational()) || null;
|
|
5954
5956
|
} catch {
|
|
5955
5957
|
return null;
|
|
5956
5958
|
}
|
|
5957
5959
|
}
|
|
5958
|
-
function
|
|
5959
|
-
if (!
|
|
5960
|
+
function Zr(e) {
|
|
5961
|
+
if (!G || !e) return null;
|
|
5960
5962
|
try {
|
|
5961
|
-
if (!
|
|
5962
|
-
let t =
|
|
5963
|
+
if (!G.isValidPhoneNumber(e)) return !1;
|
|
5964
|
+
let t = G.parsePhoneNumber(e)?.getType?.();
|
|
5963
5965
|
return t === void 0 || t === "MOBILE" || t === "FIXED_LINE_OR_MOBILE";
|
|
5964
5966
|
} catch {
|
|
5965
5967
|
return null;
|
|
5966
5968
|
}
|
|
5967
5969
|
}
|
|
5968
|
-
function
|
|
5969
|
-
if (!
|
|
5970
|
+
function Qr(e) {
|
|
5971
|
+
if (!G) return null;
|
|
5970
5972
|
try {
|
|
5971
|
-
let t =
|
|
5973
|
+
let t = G.getExampleNumber(e, G.examples);
|
|
5972
5974
|
return t?.nationalNumber ? t.nationalNumber.length : null;
|
|
5973
5975
|
} catch {
|
|
5974
5976
|
return null;
|
|
5975
5977
|
}
|
|
5976
5978
|
}
|
|
5977
|
-
function
|
|
5979
|
+
function $r(e, t, n) {
|
|
5978
5980
|
try {
|
|
5979
|
-
let r =
|
|
5981
|
+
let r = G.parsePhoneNumber(t, e), i = r?.nationalNumber;
|
|
5980
5982
|
return !i || r.country !== e || i.length > n || !t.endsWith(i) ? null : i;
|
|
5981
5983
|
} catch {
|
|
5982
5984
|
return null;
|
|
5983
5985
|
}
|
|
5984
5986
|
}
|
|
5985
|
-
function
|
|
5986
|
-
if (!
|
|
5987
|
+
function ei(e) {
|
|
5988
|
+
if (!G || !e?.trim().startsWith("+")) return null;
|
|
5987
5989
|
try {
|
|
5988
|
-
let t = new
|
|
5990
|
+
let t = new G.AsYouType();
|
|
5989
5991
|
t.input(e.trim());
|
|
5990
5992
|
let n = t.getCountry();
|
|
5991
5993
|
return n ? {
|
|
@@ -5996,7 +5998,7 @@ function $r(e) {
|
|
|
5996
5998
|
return null;
|
|
5997
5999
|
}
|
|
5998
6000
|
}
|
|
5999
|
-
var
|
|
6001
|
+
var ti = class extends e {
|
|
6000
6002
|
static formAssociated = !0;
|
|
6001
6003
|
static get observedAttributes() {
|
|
6002
6004
|
return [
|
|
@@ -6016,7 +6018,7 @@ var ei = class extends e {
|
|
|
6016
6018
|
} catch {
|
|
6017
6019
|
this._internals = null;
|
|
6018
6020
|
}
|
|
6019
|
-
this._defaultCountry =
|
|
6021
|
+
this._defaultCountry = Ur(), this._country = this._defaultCountry, this._national = "", this._active = -1, this._committedValue = "";
|
|
6020
6022
|
}
|
|
6021
6023
|
connectedCallback() {
|
|
6022
6024
|
if (!this._rendered) {
|
|
@@ -6043,19 +6045,19 @@ var ei = class extends e {
|
|
|
6043
6045
|
this.value = this._defaultValue || "";
|
|
6044
6046
|
}
|
|
6045
6047
|
get value() {
|
|
6046
|
-
return this._national ? `+${
|
|
6048
|
+
return this._national ? `+${An(this._country)}${this._national}` : "";
|
|
6047
6049
|
}
|
|
6048
6050
|
set value(e) {
|
|
6049
|
-
let t = String(e ?? "").trim(), n =
|
|
6051
|
+
let t = String(e ?? "").trim(), n = ei(t);
|
|
6050
6052
|
if (n) this._country = n.country, this._national = n.national.replace(/[^0-9]/g, "");
|
|
6051
6053
|
else if (t.startsWith("+")) {
|
|
6052
|
-
let e = t.replace(/[^0-9]/g, ""), n = String(
|
|
6054
|
+
let e = t.replace(/[^0-9]/g, ""), n = String(An(this._country));
|
|
6053
6055
|
n && e.startsWith(n) && (e = e.slice(n.length)), this._national = e;
|
|
6054
6056
|
} else this._national = t.replace(/[^0-9]/g, "");
|
|
6055
6057
|
n && this.getAttribute("country") !== this._country ? this.setAttribute("country", this._country) : this._rendered && this.render(), this._committedValue = this.value, this._syncMirror();
|
|
6056
6058
|
}
|
|
6057
6059
|
_syncMirror() {
|
|
6058
|
-
|
|
6060
|
+
F(this, this.value);
|
|
6059
6061
|
}
|
|
6060
6062
|
_emitInput() {
|
|
6061
6063
|
this.dispatchEvent(new Event("input", { bubbles: !0 }));
|
|
@@ -6065,30 +6067,30 @@ var ei = class extends e {
|
|
|
6065
6067
|
}
|
|
6066
6068
|
render() {
|
|
6067
6069
|
this._defaultValue === void 0 && (this._defaultValue = this.getAttribute("value") || ""), this._country = this.getAttribute("country") || this._country;
|
|
6068
|
-
let e = this.getAttribute("placeholder") ||
|
|
6070
|
+
let e = this.getAttribute("placeholder") || Xr(this._country) || "Enter phone number";
|
|
6069
6071
|
this.id ||= `wui-phone-${Math.random().toString(36).slice(2, 9)}`;
|
|
6070
6072
|
let t = `${this.id}-listbox`;
|
|
6071
6073
|
this._listboxId = t, this.innerHTML = `
|
|
6072
6074
|
<div class="phone-input-wrap">
|
|
6073
6075
|
<div class="phone-country-adornment">
|
|
6074
|
-
<button type="button" class="country-toggle" aria-label="Choose country" aria-haspopup="listbox" aria-expanded="false" aria-controls="${
|
|
6075
|
-
<span class="${
|
|
6076
|
-
${
|
|
6077
|
-
<span class="phone-dial" data-dial>+${
|
|
6076
|
+
<button type="button" class="country-toggle" aria-label="Choose country" aria-haspopup="listbox" aria-expanded="false" aria-controls="${K(t)}"${this.hasAttribute("disabled") ? " disabled" : ""}>
|
|
6077
|
+
<span class="${Wr(this._country)}" data-flag aria-hidden="true"></span>
|
|
6078
|
+
${L("chevron-down", { className: "phone-chevron" })}
|
|
6079
|
+
<span class="phone-dial" data-dial>+${An(this._country)}</span>
|
|
6078
6080
|
</button>
|
|
6079
|
-
<div class="country-dropdown-menu" role="listbox" id="${
|
|
6080
|
-
<div class="dropdown-search-wrapper"><span class="dropdown-search-icon">${
|
|
6081
|
+
<div class="country-dropdown-menu" role="listbox" id="${K(t)}" tabindex="-1" hidden>
|
|
6082
|
+
<div class="dropdown-search-wrapper"><span class="dropdown-search-icon">${L("search")}</span><input type="text" class="dropdown-search-input" placeholder="Search country or code" aria-label="Search countries" aria-controls="${K(t)}" aria-autocomplete="list" /></div>
|
|
6081
6083
|
<div class="country-list-scroll"><div class="country-empty" hidden>No countries found</div></div>
|
|
6082
6084
|
</div>
|
|
6083
6085
|
</div>
|
|
6084
|
-
<input type="tel" class="input" placeholder="${
|
|
6086
|
+
<input type="tel" class="input" placeholder="${K(e)}" value="${K(Jr(this._country, this._national))}"${this.getAttribute("aria-label") ? ` aria-label="${K(this.getAttribute("aria-label"))}"` : ""}${this.getAttribute("aria-describedby") ? ` aria-describedby="${K(this.getAttribute("aria-describedby"))}"` : ""}${this.hasAttribute("required") ? " required aria-required=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""} />
|
|
6085
6087
|
</div>
|
|
6086
|
-
<div class="field-error" data-phone-error hidden></div>`, this._rendered = !0,
|
|
6088
|
+
<div class="field-error" data-phone-error hidden></div>`, this._rendered = !0, F(this, this.value), this._wire();
|
|
6087
6089
|
}
|
|
6088
6090
|
_ensureItems() {
|
|
6089
6091
|
let e = this.querySelector(".country-list-scroll");
|
|
6090
6092
|
if (!e || e.querySelector(".country-dropdown-item")) return;
|
|
6091
|
-
let t = this._listboxId, n =
|
|
6093
|
+
let t = this._listboxId, n = kn.map(([e, n, r], i) => `<button type="button" role="option" id="${K(`${t}-opt-${i}`)}" class="country-dropdown-item${e === this._country ? " selected" : ""}" data-iso="${e}" aria-selected="${e === this._country}"><span class="${Wr(e)}" aria-hidden="true"></span><span class="country-name-text">${n}<span class="country-code-text">+${r}</span></span></button>`).join("");
|
|
6092
6094
|
e.insertAdjacentHTML("afterbegin", n);
|
|
6093
6095
|
}
|
|
6094
6096
|
_itemEls() {
|
|
@@ -6101,7 +6103,7 @@ var ei = class extends e {
|
|
|
6101
6103
|
this._teardown();
|
|
6102
6104
|
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]");
|
|
6103
6105
|
if (!e || !n) return;
|
|
6104
|
-
let l = () => !n.hidden, u = () =>
|
|
6106
|
+
let l = () => !n.hidden, u = () => P(t || e, n), d = (e) => {
|
|
6105
6107
|
let t = this._visibleItems();
|
|
6106
6108
|
this._active = e;
|
|
6107
6109
|
for (let e of this._itemEls()) e.classList.remove("is-active");
|
|
@@ -6118,12 +6120,12 @@ var ei = class extends e {
|
|
|
6118
6120
|
}
|
|
6119
6121
|
a && (a.hidden = n > 0);
|
|
6120
6122
|
}, h = (e) => {
|
|
6121
|
-
this._country = e, this.getAttribute("country") !== e && (this._suppressCountryRender = !0, this.setAttribute("country", e), this._suppressCountryRender = !1), s && (s.className =
|
|
6123
|
+
this._country = e, this.getAttribute("country") !== e && (this._suppressCountryRender = !0, this.setAttribute("country", e), this._suppressCountryRender = !1), s && (s.className = Wr(e)), c && (c.textContent = `+${An(e)}`);
|
|
6122
6124
|
for (let t of this._itemEls()) {
|
|
6123
6125
|
let n = t.dataset.iso === e;
|
|
6124
6126
|
t.classList.toggle("selected", n), t.setAttribute("aria-selected", String(n));
|
|
6125
6127
|
}
|
|
6126
|
-
!this.getAttribute("placeholder") && o && (o.placeholder =
|
|
6128
|
+
!this.getAttribute("placeholder") && o && (o.placeholder = Xr(e) || "Enter phone number"), o && this._national && (o.value = Jr(e, this._national)), p(), this._syncMirror(), this._emitChange(), o?.focus();
|
|
6127
6129
|
}, g = (t) => {
|
|
6128
6130
|
let n = this._visibleItems();
|
|
6129
6131
|
if (t.key === "ArrowDown") {
|
|
@@ -6157,7 +6159,7 @@ var ei = class extends e {
|
|
|
6157
6159
|
let _ = this.querySelector("[data-phone-error]"), v = (e) => {
|
|
6158
6160
|
if (o.classList.toggle("is-invalid", e), e ? o.setAttribute("aria-invalid", "true") : o.removeAttribute("aria-invalid"), _) {
|
|
6159
6161
|
if (e) {
|
|
6160
|
-
let e =
|
|
6162
|
+
let e = Xr(this._country);
|
|
6161
6163
|
_.textContent = e ? `Enter a valid phone number, e.g. ${e}` : "Enter a valid phone number";
|
|
6162
6164
|
}
|
|
6163
6165
|
_.hidden = !e;
|
|
@@ -6165,35 +6167,35 @@ var ei = class extends e {
|
|
|
6165
6167
|
};
|
|
6166
6168
|
o.addEventListener("input", (e) => {
|
|
6167
6169
|
e.stopPropagation();
|
|
6168
|
-
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 =
|
|
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 = Qr(this._country);
|
|
6169
6171
|
if (i && r.length > i) {
|
|
6170
|
-
let e =
|
|
6172
|
+
let e = $r(this._country, r, i);
|
|
6171
6173
|
e ? (n = Math.max(0, n - (r.length - e.length)), r = e) : r = r.slice(0, i);
|
|
6172
6174
|
}
|
|
6173
6175
|
this._national = r;
|
|
6174
|
-
let a =
|
|
6176
|
+
let a = Jr(this._country, this._national);
|
|
6175
6177
|
if (o.value !== a) {
|
|
6176
6178
|
o.value = a;
|
|
6177
|
-
let e =
|
|
6179
|
+
let e = Yr(a, Math.min(n, r.length));
|
|
6178
6180
|
o.setSelectionRange(e, e);
|
|
6179
6181
|
}
|
|
6180
|
-
this._syncMirror(), this._emitInput(), o.classList.contains("is-invalid") && (!this._national ||
|
|
6182
|
+
this._syncMirror(), this._emitInput(), o.classList.contains("is-invalid") && (!this._national || Zr(this.value) === !0) && v(!1);
|
|
6181
6183
|
}), o.addEventListener("change", (e) => e.stopPropagation()), o.addEventListener("blur", () => {
|
|
6182
|
-
v(this._national.length > 0 &&
|
|
6184
|
+
v(this._national.length > 0 && Zr(this.value) === !1), this.value !== this._committedValue && this._emitChange();
|
|
6183
6185
|
}), o.addEventListener("paste", (e) => {
|
|
6184
|
-
let t =
|
|
6185
|
-
t && (e.preventDefault(), this._national = t.national.replace(/[^0-9]/g, ""), t.country === this._country ? o.value =
|
|
6186
|
+
let t = ei(e.clipboardData?.getData("text"));
|
|
6187
|
+
t && (e.preventDefault(), this._national = t.national.replace(/[^0-9]/g, ""), t.country === this._country ? o.value = Jr(this._country, this._national) : this.setAttribute("country", t.country), this._syncMirror(), this._emitInput(), this._emitChange(), this.querySelector("input[type=tel]")?.focus());
|
|
6186
6188
|
}), this._bindGlobal = () => {
|
|
6187
6189
|
this._teardownGlobals?.(), this._onDocClick = (e) => {
|
|
6188
6190
|
l() && !this.contains(e.target) && p();
|
|
6189
|
-
}, document.addEventListener("click", this._onDocClick),
|
|
6191
|
+
}, document.addEventListener("click", this._onDocClick), Ht(this, () => {
|
|
6190
6192
|
l() && u();
|
|
6191
6193
|
});
|
|
6192
6194
|
}, this._teardownGlobals = () => {
|
|
6193
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null),
|
|
6194
|
-
}, this._bindGlobal(),
|
|
6195
|
-
if (!(!e || !o.isConnected) && (this._national && (o.value =
|
|
6196
|
-
let e =
|
|
6195
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), Ut(this);
|
|
6196
|
+
}, this._bindGlobal(), Kr().then((e) => {
|
|
6197
|
+
if (!(!e || !o.isConnected) && (this._national && (o.value = Jr(this._country, this._national)), !this.getAttribute("placeholder"))) {
|
|
6198
|
+
let e = Xr(this._country);
|
|
6197
6199
|
e && (o.placeholder = e);
|
|
6198
6200
|
}
|
|
6199
6201
|
}), this._syncMirror();
|
|
@@ -6204,7 +6206,7 @@ var ei = class extends e {
|
|
|
6204
6206
|
disconnectedCallback() {
|
|
6205
6207
|
this._teardown();
|
|
6206
6208
|
}
|
|
6207
|
-
},
|
|
6209
|
+
}, K = (e) => String(e ?? "").replace(/"/g, """).replace(/</g, "<"), ni = class extends e {
|
|
6208
6210
|
static formAssociated = !0;
|
|
6209
6211
|
static get observedAttributes() {
|
|
6210
6212
|
return [
|
|
@@ -6244,19 +6246,19 @@ var ei = class extends e {
|
|
|
6244
6246
|
return this._value;
|
|
6245
6247
|
}
|
|
6246
6248
|
set value(e) {
|
|
6247
|
-
this._value = this._snapToStep(this._clamp(
|
|
6249
|
+
this._value = this._snapToStep(this._clamp(q(e, this._value))), this._syncValue(), this._syncMirrors();
|
|
6248
6250
|
}
|
|
6249
6251
|
get start() {
|
|
6250
6252
|
return this._start;
|
|
6251
6253
|
}
|
|
6252
6254
|
set start(e) {
|
|
6253
|
-
this._start = Math.min(this._snapToStep(this._clamp(
|
|
6255
|
+
this._start = Math.min(this._snapToStep(this._clamp(q(e, this._start))), this._end), this._syncValue(), this._syncMirrors();
|
|
6254
6256
|
}
|
|
6255
6257
|
get end() {
|
|
6256
6258
|
return this._end;
|
|
6257
6259
|
}
|
|
6258
6260
|
set end(e) {
|
|
6259
|
-
this._end = Math.max(this._snapToStep(this._clamp(
|
|
6261
|
+
this._end = Math.max(this._snapToStep(this._clamp(q(e, this._end))), this._start), this._syncValue(), this._syncMirrors();
|
|
6260
6262
|
}
|
|
6261
6263
|
attributeChangedCallback(e, t, n) {
|
|
6262
6264
|
if (e === "value" || e === "start" || e === "end" || e === "min" || e === "max" || e === "step") {
|
|
@@ -6269,19 +6271,19 @@ var ei = class extends e {
|
|
|
6269
6271
|
this._isRange() ? this._resetRange() : this._resetSingle();
|
|
6270
6272
|
}
|
|
6271
6273
|
_updateFromAttribute(e) {
|
|
6272
|
-
e === "value" ? this._value = this._snapToStep(this._clamp(
|
|
6274
|
+
e === "value" ? this._value = this._snapToStep(this._clamp(q(this.getAttribute("value"), this._value))) : e === "start" ? this._start = this._snapToStep(this._clamp(q(this.getAttribute("start"), this._start))) : e === "end" && (this._end = this._snapToStep(this._clamp(q(this.getAttribute("end"), this._end))));
|
|
6273
6275
|
}
|
|
6274
6276
|
_isRange() {
|
|
6275
6277
|
return this.hasAttribute("range");
|
|
6276
6278
|
}
|
|
6277
6279
|
_min() {
|
|
6278
|
-
return
|
|
6280
|
+
return q(this.getAttribute("min"), 0);
|
|
6279
6281
|
}
|
|
6280
6282
|
_max() {
|
|
6281
|
-
return
|
|
6283
|
+
return q(this.getAttribute("max"), 100);
|
|
6282
6284
|
}
|
|
6283
6285
|
_step() {
|
|
6284
|
-
return
|
|
6286
|
+
return q(this.getAttribute("step"), 1);
|
|
6285
6287
|
}
|
|
6286
6288
|
_clamp(e) {
|
|
6287
6289
|
return Math.max(this._min(), Math.min(e, this._max()));
|
|
@@ -6349,7 +6351,7 @@ var ei = class extends e {
|
|
|
6349
6351
|
aria-valuenow="${this._value}"
|
|
6350
6352
|
aria-valuetext="${this._formatValue(this._value)}"
|
|
6351
6353
|
${a ? "disabled" : ""}
|
|
6352
|
-
aria-label="${
|
|
6354
|
+
aria-label="${ri(this.getAttribute("aria-label") || "Value")}"
|
|
6353
6355
|
></button>
|
|
6354
6356
|
`}
|
|
6355
6357
|
${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>` : ""}
|
|
@@ -6384,7 +6386,7 @@ var ei = class extends e {
|
|
|
6384
6386
|
this._isRange() ? this._syncRangeMirrors() : this._syncSingleMirror();
|
|
6385
6387
|
}
|
|
6386
6388
|
_syncSingleMirror() {
|
|
6387
|
-
this.getAttribute("name") &&
|
|
6389
|
+
this.getAttribute("name") && F(this, String(this._value));
|
|
6388
6390
|
}
|
|
6389
6391
|
_syncRangeMirrors() {
|
|
6390
6392
|
let e = this.getAttribute("start-name") || this.getAttribute("name"), t = this.getAttribute("end-name");
|
|
@@ -6451,10 +6453,10 @@ var ei = class extends e {
|
|
|
6451
6453
|
disconnectedCallback() {
|
|
6452
6454
|
this._teardown();
|
|
6453
6455
|
}
|
|
6454
|
-
},
|
|
6456
|
+
}, q = (e, t) => {
|
|
6455
6457
|
let n = Number.parseFloat(e);
|
|
6456
6458
|
return Number.isFinite(n) ? n : t;
|
|
6457
|
-
},
|
|
6459
|
+
}, ri = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), ii = /* @__PURE__ */ new Set(), ai = ".wui-sortable-handle", oi = "a[href],button,input,select,textarea,label,summary,[contenteditable='true'],[role='button'],[role='link']", si = 4, ci = 8, li = 250, ui = 48, di = 18, fi = class extends e {
|
|
6458
6460
|
static get observedAttributes() {
|
|
6459
6461
|
return ["name", "disabled"];
|
|
6460
6462
|
}
|
|
@@ -6464,10 +6466,10 @@ var ei = class extends e {
|
|
|
6464
6466
|
}, this._onSelectStart = (e) => e.preventDefault(), this._scrollTick = this._scrollTick.bind(this);
|
|
6465
6467
|
}
|
|
6466
6468
|
connectedCallback() {
|
|
6467
|
-
|
|
6469
|
+
ii.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();
|
|
6468
6470
|
}
|
|
6469
6471
|
disconnectedCallback() {
|
|
6470
|
-
|
|
6472
|
+
ii.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();
|
|
6471
6473
|
}
|
|
6472
6474
|
attributeChangedCallback(e) {
|
|
6473
6475
|
e === "disabled" && this._abort(), this.isConnected && this._syncMirrors();
|
|
@@ -6502,7 +6504,7 @@ var ei = class extends e {
|
|
|
6502
6504
|
return this.getAttribute("orientation") === "horizontal";
|
|
6503
6505
|
}
|
|
6504
6506
|
_syncMirrors() {
|
|
6505
|
-
|
|
6507
|
+
I(this, this.order);
|
|
6506
6508
|
}
|
|
6507
6509
|
_insertAt(e, t) {
|
|
6508
6510
|
let n = this._items();
|
|
@@ -6520,7 +6522,7 @@ var ei = class extends e {
|
|
|
6520
6522
|
}
|
|
6521
6523
|
_peers() {
|
|
6522
6524
|
let e = this.getAttribute("group");
|
|
6523
|
-
return [...
|
|
6525
|
+
return [...ii].filter((t) => t === this || e && t.getAttribute("group") === e && !t.hasAttribute("disabled"));
|
|
6524
6526
|
}
|
|
6525
6527
|
_labelOf(e) {
|
|
6526
6528
|
return e.getAttribute("data-label") || e.textContent.replace(/\s+/g, " ").trim() || e.getAttribute("data-id");
|
|
@@ -6537,10 +6539,10 @@ var ei = class extends e {
|
|
|
6537
6539
|
if (this._drag || this._kb || this.hasAttribute("disabled") || e.pointerType === "mouse" && e.button !== 0) return;
|
|
6538
6540
|
let t = this._itemFrom(e.target);
|
|
6539
6541
|
if (!t || this._itemDisabled(t)) return;
|
|
6540
|
-
let n = t.querySelector(`:scope > ${
|
|
6542
|
+
let n = t.querySelector(`:scope > ${ai}`), r = !!n && n.contains(e.target);
|
|
6541
6543
|
if (this.hasAttribute("handle") && !r) return;
|
|
6542
6544
|
if (!r) {
|
|
6543
|
-
let n = e.target.closest?.(
|
|
6545
|
+
let n = e.target.closest?.(oi);
|
|
6544
6546
|
if (n && n !== t && t.contains(n)) return;
|
|
6545
6547
|
}
|
|
6546
6548
|
let i = e.pointerType === "touch" && !r, a = {
|
|
@@ -6550,7 +6552,7 @@ var ei = class extends e {
|
|
|
6550
6552
|
startY: e.clientY,
|
|
6551
6553
|
x: e.clientX,
|
|
6552
6554
|
y: e.clientY,
|
|
6553
|
-
slop: e.pointerType === "touch" ?
|
|
6555
|
+
slop: e.pointerType === "touch" ? ci : si,
|
|
6554
6556
|
ready: !i,
|
|
6555
6557
|
started: !1,
|
|
6556
6558
|
timer: null,
|
|
@@ -6560,7 +6562,7 @@ var ei = class extends e {
|
|
|
6560
6562
|
};
|
|
6561
6563
|
this._drag = a, i && (a.timer = setTimeout(() => {
|
|
6562
6564
|
a.timer = null, a.ready = !0, this._begin();
|
|
6563
|
-
},
|
|
6565
|
+
}, li)), 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 });
|
|
6564
6566
|
}
|
|
6565
6567
|
_onDocMove(e) {
|
|
6566
6568
|
let t = this._drag;
|
|
@@ -6616,7 +6618,7 @@ var ei = class extends e {
|
|
|
6616
6618
|
_scrollTick() {
|
|
6617
6619
|
let e = this._drag;
|
|
6618
6620
|
if (!e?.started) return;
|
|
6619
|
-
let t =
|
|
6621
|
+
let t = mi(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 = pi(e.y, r, i), c = pi(e.x, a, o);
|
|
6620
6622
|
(c || s) && (t ? (t.scrollTop += s, t.scrollLeft += c) : window.scrollBy(c, s), this._update()), e.raf = requestAnimationFrame(this._scrollTick);
|
|
6621
6623
|
}
|
|
6622
6624
|
_finish(e) {
|
|
@@ -6660,7 +6662,7 @@ var ei = class extends e {
|
|
|
6660
6662
|
}
|
|
6661
6663
|
_onKeyDown(e) {
|
|
6662
6664
|
if (this.hasAttribute("disabled")) return;
|
|
6663
|
-
let t = e.target.closest?.(
|
|
6665
|
+
let t = e.target.closest?.(ai), n = t && t.parentElement?.parentElement === this ? t.parentElement : null;
|
|
6664
6666
|
if (!n || this._itemDisabled(n) || this._drag) return;
|
|
6665
6667
|
let r = e.key;
|
|
6666
6668
|
if (!this._kb) {
|
|
@@ -6719,10 +6721,10 @@ var ei = class extends e {
|
|
|
6719
6721
|
e(), n && document.activeElement !== t && t.focus(), this._moving = !1;
|
|
6720
6722
|
}
|
|
6721
6723
|
};
|
|
6722
|
-
function
|
|
6723
|
-
return e < t +
|
|
6724
|
+
function pi(e, t, n) {
|
|
6725
|
+
return e < t + ui ? -Math.ceil(di * Math.min(1, (t + ui - e) / ui)) : e > n - ui ? Math.ceil(di * Math.min(1, (e - (n - ui)) / ui)) : 0;
|
|
6724
6726
|
}
|
|
6725
|
-
function
|
|
6727
|
+
function mi(e) {
|
|
6726
6728
|
for (let t = e.parentElement; t && t !== document.body && t !== document.documentElement; t = t.parentElement) {
|
|
6727
6729
|
let e = getComputedStyle(t), n = /(auto|scroll)/.test(e.overflowY) && t.scrollHeight > t.clientHeight, r = /(auto|scroll)/.test(e.overflowX) && t.scrollWidth > t.clientWidth;
|
|
6728
6730
|
if (n || r) return t;
|
|
@@ -6731,7 +6733,7 @@ function pi(e) {
|
|
|
6731
6733
|
}
|
|
6732
6734
|
//#endregion
|
|
6733
6735
|
//#region src/WuiTagInput.js
|
|
6734
|
-
var
|
|
6736
|
+
var hi = class extends e {
|
|
6735
6737
|
static formAssociated = !0;
|
|
6736
6738
|
_accessibleName() {
|
|
6737
6739
|
return this.getAttribute("aria-label") || this.getAttribute("placeholder") || "Add tags";
|
|
@@ -6797,30 +6799,30 @@ var mi = class extends e {
|
|
|
6797
6799
|
return this._values.slice();
|
|
6798
6800
|
}
|
|
6799
6801
|
set values(e) {
|
|
6800
|
-
this._values = Array.isArray(e) ? e.map(String) : [],
|
|
6802
|
+
this._values = Array.isArray(e) ? e.map(String) : [], I(this, this._values), this._rendered && this._renderControl();
|
|
6801
6803
|
}
|
|
6802
6804
|
render() {
|
|
6803
6805
|
let e = this.getAttribute("size"), t = e === "sm" ? " search-select-sm" : e === "lg" ? " search-select-lg" : "";
|
|
6804
|
-
|
|
6806
|
+
I(this, this._values), this.innerHTML = `
|
|
6805
6807
|
<div class="search-select${t}">
|
|
6806
6808
|
<div class="input search-select-control search-select-multi"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " aria-disabled=\"true\"" : ""}>
|
|
6807
|
-
<div class="ms-chips" data-chips><input type="text" class="ms-input" data-input aria-label="${
|
|
6809
|
+
<div class="ms-chips" data-chips><input type="text" class="ms-input" data-input aria-label="${_i(this._accessibleName())}" placeholder="${_i(this.getAttribute("placeholder") || "Add…")}" autocomplete="off"${this.hasAttribute("disabled") ? " disabled" : ""}/></div>
|
|
6808
6810
|
</div>
|
|
6809
|
-
</div>`, this._rendered = !0,
|
|
6811
|
+
</div>`, this._rendered = !0, I(this, this._values), this._renderControl(), this._wire();
|
|
6810
6812
|
}
|
|
6811
6813
|
_renderControl() {
|
|
6812
6814
|
let e = this.querySelector("[data-chips]");
|
|
6813
6815
|
if (e) {
|
|
6814
6816
|
for (let t of e.querySelectorAll(":scope > .chip")) t.remove();
|
|
6815
|
-
this._values.length && e.querySelector("[data-input]").insertAdjacentHTML("beforebegin", this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${
|
|
6817
|
+
this._values.length && e.querySelector("[data-input]").insertAdjacentHTML("beforebegin", this._values.map((e) => `<span class="chip chip-sm"><span class="chip-label">${gi(e)}</span><button type="button" class="chip-remove" data-remove="${_i(e)}" aria-label="Remove ${_i(e)}">${L("x")}</button></span>`).join(""));
|
|
6816
6818
|
}
|
|
6817
6819
|
}
|
|
6818
6820
|
_wire() {
|
|
6819
6821
|
this._teardown();
|
|
6820
6822
|
let e = this.querySelector(".search-select-control"), t = this.querySelector("[data-input]");
|
|
6821
6823
|
if (!e || !t) return;
|
|
6822
|
-
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(
|
|
6823
|
-
|
|
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(xr).filter(Boolean)), s = () => {
|
|
6825
|
+
I(this, this._values), this.dispatchEvent(new Event("change", { bubbles: !0 }));
|
|
6824
6826
|
}, c = (e) => {
|
|
6825
6827
|
let t = e.trim();
|
|
6826
6828
|
if (!t || i && this._values.length >= parseInt(i, 10)) return;
|
|
@@ -6851,9 +6853,9 @@ var mi = class extends e {
|
|
|
6851
6853
|
e.preventDefault();
|
|
6852
6854
|
let n = e.clipboardData.getData("text/plain"), a = [];
|
|
6853
6855
|
for (let e of r) {
|
|
6854
|
-
let t =
|
|
6855
|
-
if (
|
|
6856
|
-
a.push(...
|
|
6856
|
+
let t = Sr(e) ?? e;
|
|
6857
|
+
if (wr(n, [t])) {
|
|
6858
|
+
a.push(...Cr(n, [t]));
|
|
6857
6859
|
break;
|
|
6858
6860
|
}
|
|
6859
6861
|
}
|
|
@@ -6881,18 +6883,18 @@ var mi = class extends e {
|
|
|
6881
6883
|
disconnectedCallback() {
|
|
6882
6884
|
this._teardown();
|
|
6883
6885
|
}
|
|
6884
|
-
},
|
|
6886
|
+
}, gi = (e) => String(e ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), _i = (e) => String(e ?? "").replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<"), vi = (e) => String(e).padStart(2, "0"), yi = (e, t) => `${vi(e)}:${vi(t)}`, bi = (e) => {
|
|
6885
6887
|
let t = /^(\d{2}):(\d{2})$/.exec(e || "");
|
|
6886
6888
|
return t ? {
|
|
6887
6889
|
h: +t[1],
|
|
6888
6890
|
m: +t[2]
|
|
6889
6891
|
} : null;
|
|
6890
|
-
},
|
|
6892
|
+
}, xi = (e, t = "24") => {
|
|
6891
6893
|
if (!e) return "";
|
|
6892
|
-
if (t === "24") return
|
|
6894
|
+
if (t === "24") return yi(e.h, e.m);
|
|
6893
6895
|
let n = e.h % 12 || 12, r = e.h >= 12 ? "PM" : "AM";
|
|
6894
|
-
return `${n}:${
|
|
6895
|
-
},
|
|
6896
|
+
return `${n}:${vi(e.m)} ${r}`;
|
|
6897
|
+
}, Si = class extends e {
|
|
6896
6898
|
static formAssociated = !0;
|
|
6897
6899
|
static get observedAttributes() {
|
|
6898
6900
|
return [
|
|
@@ -6944,34 +6946,34 @@ var mi = class extends e {
|
|
|
6944
6946
|
return this._value;
|
|
6945
6947
|
}
|
|
6946
6948
|
set value(e) {
|
|
6947
|
-
this._value = e || "",
|
|
6949
|
+
this._value = e || "", F(this, this._value), this._syncTrigger();
|
|
6948
6950
|
}
|
|
6949
6951
|
render() {
|
|
6950
6952
|
this._defaultValue === void 0 && (this._defaultValue = this.getAttribute("value") || "", this._value = this._defaultValue || this._value);
|
|
6951
|
-
let e = this.getAttribute("placeholder") || "Select time", t =
|
|
6953
|
+
let e = this.getAttribute("placeholder") || "Select time", t = bi(this._value), n = this.getAttribute("format") || "24", r = this.getAttribute("size"), i = r === "sm" ? " input-sm" : r === "lg" ? " input-lg" : "", a = this.getAttribute("aria-label"), o = this.getAttribute("aria-describedby");
|
|
6952
6954
|
this.innerHTML = `
|
|
6953
6955
|
<div class="timepicker">
|
|
6954
|
-
<button type="button" class="input timepicker-trigger${i}${t ? " has-value" : ""}" aria-haspopup="listbox" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${a ? ` aria-label="${
|
|
6955
|
-
<span data-trigger-label class="${t ? "" : "timepicker-placeholder"}">${t ?
|
|
6956
|
-
${
|
|
6956
|
+
<button type="button" class="input timepicker-trigger${i}${t ? " has-value" : ""}" aria-haspopup="listbox" aria-expanded="false"${this.hasAttribute("aria-invalid") ? " aria-invalid=\"true\"" : ""}${this.hasAttribute("disabled") ? " disabled" : ""}${a ? ` aria-label="${R(a)}"` : ""}${o ? ` aria-describedby="${R(o)}"` : ""}>
|
|
6957
|
+
<span data-trigger-label class="${t ? "" : "timepicker-placeholder"}">${t ? xi(t, n) : R(e)}</span>
|
|
6958
|
+
${L("clock")}
|
|
6957
6959
|
</button>
|
|
6958
6960
|
<div class="timepicker-pop" role="listbox" tabindex="-1" hidden></div>
|
|
6959
|
-
</div>`, this._rendered = !0,
|
|
6961
|
+
</div>`, this._rendered = !0, F(this, this._value), this._wire();
|
|
6960
6962
|
}
|
|
6961
6963
|
_syncFormValue() {
|
|
6962
|
-
|
|
6964
|
+
F(this, this._value);
|
|
6963
6965
|
}
|
|
6964
6966
|
_syncTrigger() {
|
|
6965
6967
|
let e = this.querySelector(".timepicker-trigger"), t = this.querySelector("[data-trigger-label]");
|
|
6966
6968
|
if (!t) return;
|
|
6967
|
-
let n =
|
|
6968
|
-
t.textContent = n ?
|
|
6969
|
+
let n = bi(this._value), r = this.getAttribute("format") || "24";
|
|
6970
|
+
t.textContent = n ? xi(n, r) : this.getAttribute("placeholder") || "Select time", t.classList.toggle("timepicker-placeholder", !n), e?.classList.toggle("has-value", !!n);
|
|
6969
6971
|
}
|
|
6970
6972
|
_buildTimes() {
|
|
6971
|
-
let e = Math.max(1, parseInt(this.getAttribute("step") || "30", 10)), t = this.getAttribute("min") || "00:00", n = this.getAttribute("max") || "23:59", r =
|
|
6973
|
+
let e = Math.max(1, parseInt(this.getAttribute("step") || "30", 10)), t = this.getAttribute("min") || "00:00", n = this.getAttribute("max") || "23:59", r = bi(t) || {
|
|
6972
6974
|
h: 0,
|
|
6973
6975
|
m: 0
|
|
6974
|
-
}, i =
|
|
6976
|
+
}, i = bi(n) || {
|
|
6975
6977
|
h: 23,
|
|
6976
6978
|
m: 59
|
|
6977
6979
|
}, a = [], o = r.h, s = r.m;
|
|
@@ -6984,10 +6986,10 @@ var mi = class extends e {
|
|
|
6984
6986
|
_renderOptions() {
|
|
6985
6987
|
let e = this.querySelector(".timepicker-pop");
|
|
6986
6988
|
if (!e) return;
|
|
6987
|
-
let t = this.getAttribute("format") || "24", n = this._buildTimes(), r =
|
|
6989
|
+
let t = this.getAttribute("format") || "24", n = this._buildTimes(), r = bi(this._value), i = this._focus, a = "";
|
|
6988
6990
|
for (let e = 0; e < n.length; e++) {
|
|
6989
|
-
let o = n[e], s =
|
|
6990
|
-
a += `<button type="button" class="timepicker-option${c ? " is-selected" : ""}" data-hm="${s}" role="option" tabindex="${i === e ? "0" : "-1"}"${c ? " aria-selected=\"true\"" : ""}>${
|
|
6991
|
+
let o = n[e], s = yi(o.h, o.m), c = r && r.h === o.h && r.m === o.m;
|
|
6992
|
+
a += `<button type="button" class="timepicker-option${c ? " is-selected" : ""}" data-hm="${s}" role="option" tabindex="${i === e ? "0" : "-1"}"${c ? " aria-selected=\"true\"" : ""}>${xi(o, t)}</button>`;
|
|
6991
6993
|
}
|
|
6992
6994
|
e.innerHTML = a, this._focusActive();
|
|
6993
6995
|
}
|
|
@@ -6996,7 +6998,7 @@ var mi = class extends e {
|
|
|
6996
6998
|
t && !e.hidden && t.focus();
|
|
6997
6999
|
}
|
|
6998
7000
|
_position(e, t) {
|
|
6999
|
-
|
|
7001
|
+
P(e, t);
|
|
7000
7002
|
}
|
|
7001
7003
|
_onKey(e) {
|
|
7002
7004
|
let t = [...this.querySelector(".timepicker-pop").querySelectorAll(".timepicker-option")];
|
|
@@ -7074,22 +7076,22 @@ var mi = class extends e {
|
|
|
7074
7076
|
this._popClick = !1, r() && !t && !this.contains(e.target) && this._close();
|
|
7075
7077
|
}, document.addEventListener("click", this._onDocClick), this._onDocKey = (e) => {
|
|
7076
7078
|
r() && e.key === "Escape" && this._close();
|
|
7077
|
-
}, document.addEventListener("keydown", this._onDocKey),
|
|
7079
|
+
}, document.addEventListener("keydown", this._onDocKey), Ht(this, () => {
|
|
7078
7080
|
r() && this._position(e, t);
|
|
7079
7081
|
});
|
|
7080
7082
|
}, this._bindGlobal(), this._syncFormValue();
|
|
7081
7083
|
}
|
|
7082
7084
|
_teardown() {
|
|
7083
|
-
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null),
|
|
7085
|
+
this._onDocClick &&= (document.removeEventListener("click", this._onDocClick), null), this._onDocKey &&= (document.removeEventListener("keydown", this._onDocKey), null), Ut(this), clearTimeout(this._typeaheadTimer), this._typeaheadTimer = null, this._typeahead = "";
|
|
7084
7086
|
}
|
|
7085
7087
|
disconnectedCallback() {
|
|
7086
7088
|
this._teardown();
|
|
7087
7089
|
}
|
|
7088
|
-
},
|
|
7090
|
+
}, Ci = [
|
|
7089
7091
|
"none",
|
|
7090
7092
|
"single",
|
|
7091
7093
|
"multiple"
|
|
7092
|
-
],
|
|
7094
|
+
], wi = "parentId", Ti = "Loading", Ei = "Could not load. Try again.", Di = ":scope > input[data-wui-mirror]", Oi = [
|
|
7093
7095
|
"nodes",
|
|
7094
7096
|
"selection",
|
|
7095
7097
|
"selected",
|
|
@@ -7097,14 +7099,14 @@ var mi = class extends e {
|
|
|
7097
7099
|
"loadChildren",
|
|
7098
7100
|
"loadUrl",
|
|
7099
7101
|
"name"
|
|
7100
|
-
],
|
|
7101
|
-
function
|
|
7102
|
+
], ki = 0;
|
|
7103
|
+
function J(e, t, n) {
|
|
7102
7104
|
let r = document.createElement(e);
|
|
7103
7105
|
t && (r.className = t);
|
|
7104
7106
|
for (let [e, t] of Object.entries(n ?? {})) t != null && r.setAttribute(e, String(t));
|
|
7105
7107
|
return r;
|
|
7106
7108
|
}
|
|
7107
|
-
var
|
|
7109
|
+
var Ai = class extends e {
|
|
7108
7110
|
static get observedAttributes() {
|
|
7109
7111
|
return [
|
|
7110
7112
|
"selection",
|
|
@@ -7116,7 +7118,7 @@ var ki = class extends e {
|
|
|
7116
7118
|
];
|
|
7117
7119
|
}
|
|
7118
7120
|
constructor() {
|
|
7119
|
-
super(), this._uid = `wui-tree-${++
|
|
7121
|
+
super(), this._uid = `wui-tree-${++ki}`, 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 = Jt({
|
|
7120
7122
|
getVisibleOptions: () => this._visible().map((e) => this._els.get(e.id)?.row),
|
|
7121
7123
|
getActive: () => this._visible().findIndex((e) => e.id === this._focusId),
|
|
7122
7124
|
setActive: (e) => this._focusNode(this._visible()[e]),
|
|
@@ -7131,11 +7133,11 @@ var ki = class extends e {
|
|
|
7131
7133
|
}
|
|
7132
7134
|
connectedCallback() {
|
|
7133
7135
|
let e = {};
|
|
7134
|
-
for (let t of
|
|
7136
|
+
for (let t of Oi) Object.hasOwn(this, t) && (e[t] = this[t], delete this[t]);
|
|
7135
7137
|
if (!this._ready) {
|
|
7136
7138
|
this._ready = !0;
|
|
7137
7139
|
let e = this._readScript();
|
|
7138
|
-
this.replaceChildren(), this._list =
|
|
7140
|
+
this.replaceChildren(), this._list = J("ul", "wui-tree"), this._list.setAttribute("role", "tree"), this._live = J("div", "visually-hidden", {
|
|
7139
7141
|
role: "status",
|
|
7140
7142
|
"aria-live": "polite"
|
|
7141
7143
|
}), this.append(this._list, this._live), e && this._adoptAll(e);
|
|
@@ -7157,7 +7159,7 @@ var ki = class extends e {
|
|
|
7157
7159
|
}
|
|
7158
7160
|
get selection() {
|
|
7159
7161
|
let e = this.getAttribute("selection");
|
|
7160
|
-
return
|
|
7162
|
+
return Ci.includes(e) ? e : "none";
|
|
7161
7163
|
}
|
|
7162
7164
|
set selection(e) {
|
|
7163
7165
|
this.setAttribute("selection", String(e));
|
|
@@ -7201,13 +7203,13 @@ var ki = class extends e {
|
|
|
7201
7203
|
e == null ? this.removeAttribute("name") : this.setAttribute("name", String(e));
|
|
7202
7204
|
}
|
|
7203
7205
|
get loadingText() {
|
|
7204
|
-
return this.getAttribute("loading-text") ??
|
|
7206
|
+
return this.getAttribute("loading-text") ?? Ti;
|
|
7205
7207
|
}
|
|
7206
7208
|
set loadingText(e) {
|
|
7207
7209
|
this.setAttribute("loading-text", String(e ?? ""));
|
|
7208
7210
|
}
|
|
7209
7211
|
get errorText() {
|
|
7210
|
-
return this.getAttribute("error-text") ??
|
|
7212
|
+
return this.getAttribute("error-text") ?? Ei;
|
|
7211
7213
|
}
|
|
7212
7214
|
set errorText(e) {
|
|
7213
7215
|
this.setAttribute("error-text", String(e ?? ""));
|
|
@@ -7396,8 +7398,8 @@ var ki = class extends e {
|
|
|
7396
7398
|
let t = this.getAttribute("load-url");
|
|
7397
7399
|
if (!t) throw Error("<wui-tree> has a node with children to load but no loadChildren or load-url.");
|
|
7398
7400
|
let n = new URL(t, window.location.href);
|
|
7399
|
-
n.searchParams.set(
|
|
7400
|
-
let r = await
|
|
7401
|
+
n.searchParams.set(wi, e.id);
|
|
7402
|
+
let r = await O(n.href, { headers: { Accept: "application/json" } });
|
|
7401
7403
|
if (!r.ok) throw Error(`Loading children answered ${r.kind}.`);
|
|
7402
7404
|
return JSON.parse(r.html);
|
|
7403
7405
|
}
|
|
@@ -7415,9 +7417,9 @@ var ki = class extends e {
|
|
|
7415
7417
|
}
|
|
7416
7418
|
_syncForm() {
|
|
7417
7419
|
let e = this.selection;
|
|
7418
|
-
if (e === "multiple")
|
|
7419
|
-
else if (e === "single")
|
|
7420
|
-
else for (let e of this.querySelectorAll(
|
|
7420
|
+
if (e === "multiple") I(this, this.values);
|
|
7421
|
+
else if (e === "single") F(this, this._selected ?? "");
|
|
7422
|
+
else for (let e of this.querySelectorAll(Di)) e.remove();
|
|
7421
7423
|
}
|
|
7422
7424
|
_render() {
|
|
7423
7425
|
if (!this._list) return;
|
|
@@ -7430,7 +7432,7 @@ var ki = class extends e {
|
|
|
7430
7432
|
return e.map((t, n) => this._buildItem(t, n + 1, e.length));
|
|
7431
7433
|
}
|
|
7432
7434
|
_buildItem(e, t, n) {
|
|
7433
|
-
let r = this.selection, i = this._isBranch(e), a = this._state(e), o =
|
|
7435
|
+
let r = this.selection, i = this._isBranch(e), a = this._state(e), o = J("li", "wui-tree-item", {
|
|
7434
7436
|
role: "treeitem",
|
|
7435
7437
|
tabindex: e.id === this._focusId ? 0 : -1,
|
|
7436
7438
|
"aria-level": e.level,
|
|
@@ -7440,11 +7442,11 @@ var ki = class extends e {
|
|
|
7440
7442
|
"aria-describedby": e.badge ? `${this._uid}-${e.seq}-badge` : null
|
|
7441
7443
|
});
|
|
7442
7444
|
i && o.setAttribute("aria-expanded", String(e.expanded)), e.disabled && o.setAttribute("aria-disabled", "true"), e.loading && o.setAttribute("aria-busy", "true"), r === "single" && o.setAttribute("aria-selected", String(e.id === this._selected)), r === "multiple" && o.setAttribute("aria-checked", a === "mixed" ? "mixed" : String(a === "checked"));
|
|
7443
|
-
let s =
|
|
7445
|
+
let s = J("div", "wui-tree-row", { role: "presentation" });
|
|
7444
7446
|
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");
|
|
7445
|
-
let c =
|
|
7446
|
-
if (i && (c.innerHTML =
|
|
7447
|
-
let t =
|
|
7447
|
+
let c = J("span", i ? "wui-tree-toggle" : "wui-tree-toggle wui-tree-toggle-leaf", { "aria-hidden": "true" });
|
|
7448
|
+
if (i && (c.innerHTML = L("chevron-right", { size: 16 })), s.append(c), r === "multiple") {
|
|
7449
|
+
let t = J("input", "form-check-input wui-tree-check", {
|
|
7448
7450
|
type: "checkbox",
|
|
7449
7451
|
tabindex: -1,
|
|
7450
7452
|
"aria-hidden": "true"
|
|
@@ -7452,16 +7454,16 @@ var ki = class extends e {
|
|
|
7452
7454
|
t.checked = a === "checked", t.indeterminate = a === "mixed", t.disabled = e.disabled, t.addEventListener("mousedown", (e) => e.preventDefault()), s.append(t);
|
|
7453
7455
|
}
|
|
7454
7456
|
if (e.icon) {
|
|
7455
|
-
let t =
|
|
7456
|
-
t.innerHTML =
|
|
7457
|
+
let t = J("span", "wui-tree-icon", { "aria-hidden": "true" });
|
|
7458
|
+
t.innerHTML = L(e.icon, { size: 16 }), s.append(t);
|
|
7457
7459
|
}
|
|
7458
|
-
let l =
|
|
7460
|
+
let l = J("span", "wui-tree-label", { id: `${this._uid}-${e.seq}` });
|
|
7459
7461
|
if (l.textContent = e.label, s.append(l), e.badge) {
|
|
7460
|
-
let t =
|
|
7462
|
+
let t = J("span", `badge wui-tree-badge${e.badgeTone && e.badgeTone !== "neutral" ? ` badge-${e.badgeTone}` : ""}`, { id: `${this._uid}-${e.seq}-badge` });
|
|
7461
7463
|
t.textContent = e.badge, s.append(t);
|
|
7462
7464
|
}
|
|
7463
|
-
if (e.loading && s.append(
|
|
7464
|
-
let t =
|
|
7465
|
+
if (e.loading && s.append(J("span", "wui-tree-spinner", { "aria-hidden": "true" })), o.append(s), e.expanded && e.children?.length) {
|
|
7466
|
+
let t = J("ul", "wui-tree-group", { role: "group" });
|
|
7465
7467
|
t.append(...this._buildLevel(e.children)), o.append(t);
|
|
7466
7468
|
}
|
|
7467
7469
|
return this._els.set(e.id, {
|
|
@@ -7469,7 +7471,7 @@ var ki = class extends e {
|
|
|
7469
7471
|
row: s
|
|
7470
7472
|
}), o;
|
|
7471
7473
|
}
|
|
7472
|
-
},
|
|
7474
|
+
}, ji = "wui-wizard-step", Mi = class extends e {
|
|
7473
7475
|
static get observedAttributes() {
|
|
7474
7476
|
return [
|
|
7475
7477
|
"active",
|
|
@@ -7503,7 +7505,7 @@ var ki = class extends e {
|
|
|
7503
7505
|
this._beforeNext = typeof e == "function" ? e : null;
|
|
7504
7506
|
}
|
|
7505
7507
|
get _steps() {
|
|
7506
|
-
return [...this.querySelectorAll(`:scope > ${
|
|
7508
|
+
return [...this.querySelectorAll(`:scope > ${ji}`)];
|
|
7507
7509
|
}
|
|
7508
7510
|
refresh() {
|
|
7509
7511
|
this._rendered && this._renderChrome();
|
|
@@ -7542,7 +7544,7 @@ var ki = class extends e {
|
|
|
7542
7544
|
}
|
|
7543
7545
|
_reconcileSteps() {
|
|
7544
7546
|
let e = this._steps, t = this._known;
|
|
7545
|
-
if (this._known = e,
|
|
7547
|
+
if (this._known = e, Ni(e, t)) return e;
|
|
7546
7548
|
let n = (n) => new Set([...n].map((n) => e.indexOf(t[n])).filter((e) => e >= 0));
|
|
7547
7549
|
this._skipped = n(this._skipped), this._invalid = n(this._invalid);
|
|
7548
7550
|
let r = t[this._active];
|
|
@@ -7562,7 +7564,7 @@ var ki = class extends e {
|
|
|
7562
7564
|
_onStepsMutated() {
|
|
7563
7565
|
if (!this._rendered) return;
|
|
7564
7566
|
let e = this._steps;
|
|
7565
|
-
(!e.length || this._header.nextElementSibling === e[0] && this._footer.previousElementSibling === e[e.length - 1]) &&
|
|
7567
|
+
(!e.length || this._header.nextElementSibling === e[0] && this._footer.previousElementSibling === e[e.length - 1]) && Ni(e, this._known) || (this._renderChrome(), this._observer?.takeRecords());
|
|
7566
7568
|
}
|
|
7567
7569
|
_syncPanels(e) {
|
|
7568
7570
|
e.forEach((e, t) => {
|
|
@@ -7585,14 +7587,14 @@ var ki = class extends e {
|
|
|
7585
7587
|
let i = this.hasAttribute("non-linear");
|
|
7586
7588
|
return e.map((e, r) => {
|
|
7587
7589
|
let a = this._stepStatus(e, r), o = e.getAttribute("label") || "", s = e.getAttribute("description") || "", c = e.getAttribute("icon") || "", l = r + 1, u;
|
|
7588
|
-
u = a === "done" ?
|
|
7589
|
-
let d = a === "pending" ? "step" : `step ${a}`, f = a === "active" ? " aria-current=\"step\"" : "", p = i || r < this._active, m = s ? `<span class="step-desc">${
|
|
7590
|
-
return h = t ? `<span class="step-circle">${u}</span><span class="step-text"><span class="step-index">Step ${l}</span><span class="step-label">${
|
|
7590
|
+
u = a === "done" ? L("check") : a === "error" ? L("alert-triangle") : a === "skipped" ? L("minus") : c ? L(c) : String(l);
|
|
7591
|
+
let d = a === "pending" ? "step" : `step ${a}`, f = a === "active" ? " aria-current=\"step\"" : "", p = i || r < this._active, m = s ? `<span class="step-desc">${Y(s)}</span>` : "", h;
|
|
7592
|
+
return h = t ? `<span class="step-circle">${u}</span><span class="step-text"><span class="step-index">Step ${l}</span><span class="step-label">${Y(o)}</span>${m}</span>` : n ? `<span class="step-circle">${u}</span><span class="step-index">Step ${l}</span><span class="step-label">${Y(o)}</span>${m}` : `<span class="step-circle">${u}</span><span class="step-label">${Y(o)}</span>${m}`, p ? `<button type="button" class="${d}" data-step="${r}"${f}>${h}</button>` : `<div class="${d}"${f}>${h}</div>`;
|
|
7591
7593
|
}).join("");
|
|
7592
7594
|
}
|
|
7593
7595
|
_footerHtml(e) {
|
|
7594
7596
|
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";
|
|
7595
|
-
return `${t > 0 ? `<button type="button" class="btn btn-secondary" data-nav="back"${r}>${
|
|
7597
|
+
return `${t > 0 ? `<button type="button" class="btn btn-secondary" data-nav="back"${r}>${L("arrow-left", { className: "me-2" })}${Y(a)}</button>` : "<span></span>"}<span class="wizard-footer-actions">${i && t < n ? `<button type="button" class="btn btn-subtle" data-nav="skip"${r}>${Y(s)}</button>` : ""}${t < n ? `<button type="button" class="btn btn-primary" data-nav="next"${r}>${Y(o)}${L("arrow-right", { className: "ms-2" })}</button>` : `<button type="button" class="btn btn-primary" data-nav="finish"${r}>${Y(c)}</button>`}</span>`;
|
|
7596
7598
|
}
|
|
7597
7599
|
_wire() {
|
|
7598
7600
|
this._teardown(), this._onHeaderClick = (e) => {
|
|
@@ -7666,7 +7668,7 @@ var ki = class extends e {
|
|
|
7666
7668
|
_reflectActive(e) {
|
|
7667
7669
|
this._reflecting = !0, this.setAttribute("active", String(e)), this._reflecting = !1;
|
|
7668
7670
|
}
|
|
7669
|
-
},
|
|
7671
|
+
}, Ni = (e, t) => e.length === t.length && e.every((e, n) => e === t[n]), Y = (e) => String(e ?? "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">"), Pi = class extends e {
|
|
7670
7672
|
static get observedAttributes() {
|
|
7671
7673
|
return [
|
|
7672
7674
|
"label",
|
|
@@ -7954,13 +7956,13 @@ function va(e, { mask: t, postFormatted: n = !1, onChange: r, onInvalidChange: i
|
|
|
7954
7956
|
if (d || f || t.isComposing) return;
|
|
7955
7957
|
let n = t.inputType === "insertText" && (t.data?.length ?? 0) <= 1 || t.inputType?.startsWith("delete") ? e.value : Z(a, e.value);
|
|
7956
7958
|
v(n, e.selectionStart ?? n.length, !0);
|
|
7957
|
-
}, ee = () => {
|
|
7958
|
-
f = !0;
|
|
7959
7959
|
}, C = () => {
|
|
7960
|
+
f = !0;
|
|
7961
|
+
}, w = () => {
|
|
7960
7962
|
f = !1;
|
|
7961
7963
|
let t = Z(a, e.value);
|
|
7962
7964
|
v(t, e.selectionStart ?? t.length, !0), x();
|
|
7963
|
-
},
|
|
7965
|
+
}, ee = (t) => {
|
|
7964
7966
|
let n = t.inputType === "deleteContentBackward";
|
|
7965
7967
|
if (!n && t.inputType !== "deleteContentForward" || t.isComposing) return;
|
|
7966
7968
|
let r = e.selectionStart;
|
|
@@ -7981,7 +7983,7 @@ function va(e, { mask: t, postFormatted: n = !1, onChange: r, onInvalidChange: i
|
|
|
7981
7983
|
}, re = () => {
|
|
7982
7984
|
p = !0, _();
|
|
7983
7985
|
};
|
|
7984
|
-
e.addEventListener("input", S), e.addEventListener("beforeinput",
|
|
7986
|
+
e.addEventListener("input", S), e.addEventListener("beforeinput", ee), e.addEventListener("paste", te), e.addEventListener("compositionstart", C), e.addEventListener("compositionend", w), e.addEventListener("blur", re), e.addEventListener("invalid", re);
|
|
7985
7987
|
let T = e.form, ie = (t) => {
|
|
7986
7988
|
e.name && !e.disabled && ga(t.formData, e.name, e.value, ne());
|
|
7987
7989
|
}, ae = () => {
|
|
@@ -7990,9 +7992,9 @@ function va(e, { mask: t, postFormatted: n = !1, onChange: r, onInvalidChange: i
|
|
|
7990
7992
|
}, 0);
|
|
7991
7993
|
};
|
|
7992
7994
|
n || (T?.addEventListener("formdata", ie), pa.set(e, ne)), T?.addEventListener("reset", ae), T?.addEventListener("submit", re);
|
|
7993
|
-
let
|
|
7994
|
-
return v(
|
|
7995
|
-
clearTimeout(g), e.removeEventListener("input", S), e.removeEventListener("beforeinput",
|
|
7995
|
+
let oe = Z(a, e.value);
|
|
7996
|
+
return v(oe, oe.length, !1), () => {
|
|
7997
|
+
clearTimeout(g), e.removeEventListener("input", S), e.removeEventListener("beforeinput", ee), e.removeEventListener("paste", te), e.removeEventListener("compositionstart", C), e.removeEventListener("compositionend", w), e.removeEventListener("blur", re), e.removeEventListener("invalid", re), T?.removeEventListener("formdata", ie), T?.removeEventListener("reset", ae), T?.removeEventListener("submit", re), pa.delete(e), y ? Object.defineProperty(e, "value", y) : delete e.value, p = !1, m = "", _(), e.setCustomValidity(""), delete e.dataset.maskRaw, c && e.removeAttribute("inputmode");
|
|
7996
7998
|
};
|
|
7997
7999
|
}
|
|
7998
8000
|
function ya() {
|
|
@@ -8184,12 +8186,12 @@ function Za(e) {
|
|
|
8184
8186
|
let t = new URL(c.href);
|
|
8185
8187
|
for (let [n, r] of e) l.has(n) || t.searchParams.append(n, r);
|
|
8186
8188
|
return t.origin === window.location.origin ? `${t.pathname}${t.search}` : t.href;
|
|
8187
|
-
},
|
|
8189
|
+
}, C = (e, t) => {
|
|
8188
8190
|
let n = new URLSearchParams(e);
|
|
8189
8191
|
return n.has("page") && n.set("page", String(t.page)), n.has("pageSize") && n.set("pageSize", String(t.pageSize)), n.has("sortBy") ? t.sortBy ? (n.set("sortBy", t.sortBy), n.set("sortOrder", t.sortOrder)) : (n.delete("sortBy"), n.delete("sortOrder")) : n.delete("sortOrder"), n;
|
|
8190
|
-
},
|
|
8191
|
-
s.urlState && x(
|
|
8192
|
-
let
|
|
8192
|
+
}, w = C(s.urlState ? y(window.location.search) : new URLSearchParams(), g);
|
|
8193
|
+
s.urlState && x(w) !== `${window.location.pathname}${window.location.search}${window.location.hash}` && window.history.replaceState(window.history.state, "", x(w));
|
|
8194
|
+
let ee = (e, n) => t.dispatchEvent(new CustomEvent(e, {
|
|
8193
8195
|
bubbles: !0,
|
|
8194
8196
|
detail: n
|
|
8195
8197
|
})), te = (e) => {
|
|
@@ -8220,66 +8222,66 @@ function Za(e) {
|
|
|
8220
8222
|
});
|
|
8221
8223
|
}, ae = (e) => {
|
|
8222
8224
|
for (let t of e.querySelectorAll(":scope > template[data-wui-pager], :scope > template[data-wui-empty], :scope > template[data-wui-filters]")) t.remove();
|
|
8223
|
-
},
|
|
8225
|
+
}, oe = (e) => e?.dispatchEvent(new CustomEvent("wui:teardown", { bubbles: !0 })), E = (e, t) => {
|
|
8224
8226
|
if (!i) return;
|
|
8225
8227
|
let n = e.querySelector(":scope > template[data-wui-empty]");
|
|
8226
|
-
|
|
8227
|
-
},
|
|
8228
|
+
oe(i), t.total === 0 && n ? (i.replaceChildren(n.content.cloneNode(!0)), i.hidden = !1) : (i.replaceChildren(), i.hidden = !0);
|
|
8229
|
+
}, se = (e) => {
|
|
8228
8230
|
let r = qa(e);
|
|
8229
8231
|
if (a) {
|
|
8230
8232
|
let t = e.querySelector(":scope > template[data-wui-pager]");
|
|
8231
|
-
|
|
8233
|
+
oe(a), a.replaceChildren(...t ? [t.content.cloneNode(!0)] : []), a.hidden = !1;
|
|
8232
8234
|
}
|
|
8233
|
-
|
|
8235
|
+
E(e, r);
|
|
8234
8236
|
let i = e.querySelector(":scope > template[data-wui-filters]"), o = s.filtersRegion && i ? document.querySelector(s.filtersRegion) : null;
|
|
8235
|
-
o && (
|
|
8236
|
-
},
|
|
8237
|
+
o && (oe(o), o.replaceChildren(i.content.cloneNode(!0))), ae(e), oe(h), n.replaceChild(e, h), h = e, g = r, t.removeAttribute("data-wui-table-error"), ie(e), he();
|
|
8238
|
+
}, ce = (e) => {
|
|
8237
8239
|
let t = document.createElement("template");
|
|
8238
8240
|
t.innerHTML = `<table>${e}</table>`;
|
|
8239
8241
|
let n = t.content.querySelector("tbody[data-wui-rows]");
|
|
8240
8242
|
return n && T(n), n ? document.importNode(n, !0) : null;
|
|
8241
|
-
},
|
|
8243
|
+
}, le = (e) => {
|
|
8242
8244
|
e ? t.setAttribute("aria-busy", "true") : t.removeAttribute("aria-busy");
|
|
8243
|
-
},
|
|
8244
|
-
let n =
|
|
8245
|
+
}, ue = (e) => e === "forbidden" ? Wa.forbidden : e === "network" ? Wa.network : s.errorText, de = (e) => {
|
|
8246
|
+
let n = ue(e);
|
|
8245
8247
|
if (t.setAttribute("data-wui-table-error", e), a && (a.hidden = !0), i) {
|
|
8246
8248
|
let t = document.createElement("div");
|
|
8247
8249
|
t.className = "tbl-empty wui-table-error", t.setAttribute("role", "alert");
|
|
8248
8250
|
let r = document.createElement("span");
|
|
8249
|
-
r.className = "tbl-empty-icon", r.innerHTML =
|
|
8251
|
+
r.className = "tbl-empty-icon", r.innerHTML = L(e === "forbidden" ? "lock" : "alert-circle", { size: 24 });
|
|
8250
8252
|
let a = document.createElement("div");
|
|
8251
8253
|
a.className = "tbl-empty-title", a.textContent = n;
|
|
8252
8254
|
let o = document.createElement("div");
|
|
8253
8255
|
o.className = "tbl-empty-action";
|
|
8254
8256
|
let s = document.createElement("button");
|
|
8255
|
-
s.type = "button", s.className = "btn btn-outline-primary btn-sm", s.setAttribute("data-wui-table-retry", ""), s.textContent = Wa.retry, o.append(s), t.append(r, a, o),
|
|
8257
|
+
s.type = "button", s.className = "btn btn-outline-primary btn-sm", s.setAttribute("data-wui-table-retry", ""), s.textContent = Wa.retry, o.append(s), t.append(r, a, o), oe(i), i.replaceChildren(t), i.hidden = !1;
|
|
8256
8258
|
}
|
|
8257
8259
|
te(n);
|
|
8258
|
-
},
|
|
8260
|
+
}, D = async (e, t = "none") => {
|
|
8259
8261
|
let n = new URLSearchParams(e);
|
|
8260
8262
|
_ = {
|
|
8261
8263
|
query: n,
|
|
8262
8264
|
mode: t
|
|
8263
|
-
},
|
|
8265
|
+
}, le(!0), te(s.loadingText), ee("wui:table:loading", { query: n.toString() });
|
|
8264
8266
|
let r = await f.run(S(n));
|
|
8265
8267
|
if (r.kind === "aborted" || r.kind === "stale" || r.kind === "session") return r;
|
|
8266
|
-
|
|
8268
|
+
le(!1);
|
|
8267
8269
|
let i = null, a = r.ok ? null : r.kind;
|
|
8268
8270
|
if (r.ok) {
|
|
8269
8271
|
try {
|
|
8270
|
-
i =
|
|
8272
|
+
i = ce(r.html);
|
|
8271
8273
|
} catch (e) {
|
|
8272
8274
|
console.error(e);
|
|
8273
8275
|
}
|
|
8274
8276
|
i || (a = "server");
|
|
8275
8277
|
}
|
|
8276
|
-
return a ? (
|
|
8278
|
+
return a ? (de(a), ee("wui:table:error", {
|
|
8277
8279
|
status: r.status,
|
|
8278
8280
|
kind: a,
|
|
8279
|
-
message:
|
|
8280
|
-
}), r) : (
|
|
8281
|
+
message: ue(a)
|
|
8282
|
+
}), r) : (se(i), w = C(n, g), s.urlState && t === "push" ? window.history.pushState(window.history.state, "", x(w)) : s.urlState && t === "replace" && window.history.replaceState(window.history.state, "", x(w)), te(ne(g)), window.WUI?.refresh?.(), ee("wui:table:loaded", {
|
|
8281
8283
|
...g,
|
|
8282
|
-
query:
|
|
8284
|
+
query: w.toString()
|
|
8283
8285
|
}), r);
|
|
8284
8286
|
}, pe = (e) => (e.delete("page"), e), me = () => [...n.querySelectorAll(":scope > thead th[data-sort-key]")], he = () => {
|
|
8285
8287
|
for (let e of me()) {
|
|
@@ -8289,11 +8291,11 @@ function Za(e) {
|
|
|
8289
8291
|
};
|
|
8290
8292
|
for (let e of me()) if (e.classList.add("sortable"), e.tabIndex = 0, !e.querySelector(".sort-icon")) {
|
|
8291
8293
|
let t = e.classList.contains("num") || e.classList.contains("text-end"), n = document.createElement("span");
|
|
8292
|
-
n.className = t ? "sort-icon wui-sort-lead" : "sort-icon", n.innerHTML =
|
|
8294
|
+
n.className = t ? "sort-icon wui-sort-lead" : "sort-icon", n.innerHTML = L("chevrons-up-down", { size: 14 }), t ? e.prepend(n) : e.append(n);
|
|
8293
8295
|
}
|
|
8294
8296
|
let k = (e) => {
|
|
8295
|
-
let t = pe(new URLSearchParams(
|
|
8296
|
-
return t.set("sortBy", e), t.set("sortOrder", n),
|
|
8297
|
+
let t = pe(new URLSearchParams(w)), n = g.sortBy === e && g.sortOrder === "asc" ? "desc" : "asc";
|
|
8298
|
+
return t.set("sortBy", e), t.set("sortOrder", n), D(t, "push");
|
|
8297
8299
|
};
|
|
8298
8300
|
n.addEventListener("click", (e) => {
|
|
8299
8301
|
let t = e.target.closest("th[data-sort-key]");
|
|
@@ -8328,9 +8330,9 @@ function Za(e) {
|
|
|
8328
8330
|
}
|
|
8329
8331
|
}), a && (a.addEventListener("click", (e) => {
|
|
8330
8332
|
let t = e.target.closest("a[href]");
|
|
8331
|
-
!t || e.defaultPrevented || e.button !== 0 || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || (e.preventDefault(),
|
|
8333
|
+
!t || e.defaultPrevented || e.button !== 0 || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || (e.preventDefault(), D(b(t.getAttribute("href")), "push"));
|
|
8332
8334
|
}), a.addEventListener("change", (e) => {
|
|
8333
|
-
!e.target.classList?.contains("tpg-select") || !e.target.value || (e.stopPropagation(),
|
|
8335
|
+
!e.target.classList?.contains("tpg-select") || !e.target.value || (e.stopPropagation(), D(b(e.target.value), "push"));
|
|
8334
8336
|
}));
|
|
8335
8337
|
let _e = () => {
|
|
8336
8338
|
if (!s.searchInput) return null;
|
|
@@ -8338,7 +8340,7 @@ function Za(e) {
|
|
|
8338
8340
|
return e && (e.matches("input, textarea") ? e : e.querySelector("input"));
|
|
8339
8341
|
}, ve = () => e.isConnected ? !0 : (p.abort(), clearTimeout(v), !1), ye = (e, t) => {
|
|
8340
8342
|
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();
|
|
8341
|
-
for (let [e, t] of
|
|
8343
|
+
for (let [e, t] of w) e !== "page" && (Ha.includes(e) || !r.has(e)) && i.append(e, t);
|
|
8342
8344
|
for (let [e, t] of n) typeof t != "string" || t === "" || Ha.includes(e) || l.has(e) || i.append(e, t);
|
|
8343
8345
|
let a = _e();
|
|
8344
8346
|
if (a) {
|
|
@@ -8346,7 +8348,7 @@ function Za(e) {
|
|
|
8346
8348
|
let e = a.value.trim();
|
|
8347
8349
|
e && i.set(Ua, e);
|
|
8348
8350
|
}
|
|
8349
|
-
return
|
|
8351
|
+
return D(i, "push");
|
|
8350
8352
|
}, be = (e) => s.filtersForm && e.closest?.(s.filtersForm) || s.filtersRegion && e.closest?.(s.filtersRegion) || null;
|
|
8351
8353
|
document.addEventListener("submit", (e) => {
|
|
8352
8354
|
!ve() || !s.filtersForm || !(e.target instanceof HTMLFormElement) || !e.target.matches(s.filtersForm) || (e.preventDefault(), ye(e.target, e.submitter));
|
|
@@ -8359,32 +8361,32 @@ function Za(e) {
|
|
|
8359
8361
|
let t = e.target.closest?.("a[href]");
|
|
8360
8362
|
if (!t || !be(t) || e.defaultPrevented || e.button !== 0 || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) return;
|
|
8361
8363
|
let n = new URL(t.getAttribute("href"), window.location.href);
|
|
8362
|
-
n.origin !== window.location.origin || n.pathname !== window.location.pathname || (e.preventDefault(),
|
|
8364
|
+
n.origin !== window.location.origin || n.pathname !== window.location.pathname || (e.preventDefault(), D(pe(b(n.href)), "push"));
|
|
8363
8365
|
}, m), document.addEventListener("input", (e) => {
|
|
8364
8366
|
if (!ve()) return;
|
|
8365
8367
|
let t = _e();
|
|
8366
8368
|
!t || e.target !== t || (clearTimeout(v), v = setTimeout(() => {
|
|
8367
|
-
let e = pe(new URLSearchParams(
|
|
8368
|
-
n ? e.set(Ua, n) : e.delete(Ua), e.toString() !==
|
|
8369
|
+
let e = pe(new URLSearchParams(w)), n = t.value.trim();
|
|
8370
|
+
n ? e.set(Ua, n) : e.delete(Ua), e.toString() !== w.toString() && D(e, "replace");
|
|
8369
8371
|
}, 300));
|
|
8370
8372
|
}, m), s.urlState && window.addEventListener("popstate", () => {
|
|
8371
8373
|
if (!ve()) return;
|
|
8372
8374
|
let e = y(window.location.search), t = _e();
|
|
8373
|
-
t && (t.value = e.get("search") ?? ""),
|
|
8375
|
+
t && (t.value = e.get("search") ?? ""), D(e, "none");
|
|
8374
8376
|
}, m), document.addEventListener("wui:modal:success", () => {
|
|
8375
|
-
ve() && s.refreshOnSuccess &&
|
|
8377
|
+
ve() && s.refreshOnSuccess && D(w, "none");
|
|
8376
8378
|
}, m), i?.addEventListener("click", (e) => {
|
|
8377
|
-
e.target.closest("[data-wui-table-retry]") && _ &&
|
|
8379
|
+
e.target.closest("[data-wui-table-retry]") && _ && D(_.query, _.mode);
|
|
8378
8380
|
});
|
|
8379
8381
|
let xe = async (e) => {
|
|
8380
8382
|
let t = e.dataset.url;
|
|
8381
8383
|
if (!t) throw Error("A data-wui-row-action button needs data-url: the handler the action posts to.");
|
|
8382
8384
|
let n = e.closest("tr")?.dataset.rowKey ?? null, r = e.dataset.wuiRowAction || "";
|
|
8383
8385
|
e.disabled = !0, e.setAttribute("aria-busy", "true");
|
|
8384
|
-
let i = await
|
|
8386
|
+
let i = await O(t, { method: (e.dataset.method || "post").toUpperCase() });
|
|
8385
8387
|
if (e.disabled = !1, e.removeAttribute("aria-busy"), i.kind === "session" || i.kind === "aborted") return;
|
|
8386
8388
|
let a = i.message;
|
|
8387
|
-
i.ok ? (Ja(a, "success"), await
|
|
8389
|
+
i.ok ? (Ja(a, i.toastVariant || "success"), await D(w, "none")) : Ja(a || (i.kind === "forbidden" ? Wa.actionForbidden : Wa.actionFailed), "danger"), ee("wui:table:action", {
|
|
8388
8390
|
action: r,
|
|
8389
8391
|
key: n,
|
|
8390
8392
|
ok: i.ok,
|
|
@@ -8396,15 +8398,15 @@ function Za(e) {
|
|
|
8396
8398
|
!t || !h.contains(t) || t.disabled || (e.preventDefault(), !(t.dataset.confirm && !window.confirm(t.dataset.confirm)) && xe(t));
|
|
8397
8399
|
}), T(h), ae(h), u && Ba(n), ie(h), he(), {
|
|
8398
8400
|
el: e,
|
|
8399
|
-
reload: () =>
|
|
8400
|
-
query: () => new URLSearchParams(
|
|
8401
|
+
reload: () => D(w, "none"),
|
|
8402
|
+
query: () => new URLSearchParams(w),
|
|
8401
8403
|
setQuery: (e) => {
|
|
8402
|
-
let t = new URLSearchParams(
|
|
8404
|
+
let t = new URLSearchParams(w);
|
|
8403
8405
|
for (let [n, r] of Object.entries(e ?? {})) {
|
|
8404
8406
|
t.delete(n);
|
|
8405
8407
|
for (let e of Array.isArray(r) ? r : [r]) e != null && e !== "" && t.append(n, String(e));
|
|
8406
8408
|
}
|
|
8407
|
-
return (!e || !("page" in e)) && t.delete("page"),
|
|
8409
|
+
return (!e || !("page" in e)) && t.delete("page"), D(t, "push");
|
|
8408
8410
|
},
|
|
8409
8411
|
selection: {
|
|
8410
8412
|
keys: () => [...d],
|
|
@@ -8417,34 +8419,153 @@ function Za(e) {
|
|
|
8417
8419
|
}
|
|
8418
8420
|
};
|
|
8419
8421
|
}
|
|
8420
|
-
|
|
8421
|
-
|
|
8422
|
-
|
|
8422
|
+
//#endregion
|
|
8423
|
+
//#region src/serverActions.js
|
|
8424
|
+
var Qa = "wuiConfirm", $a = Object.freeze(["danger"]), eo = Object.freeze([
|
|
8425
|
+
"success",
|
|
8426
|
+
"info",
|
|
8427
|
+
"warning",
|
|
8428
|
+
"danger"
|
|
8429
|
+
]), to = "wui.flash", no = Object.freeze({
|
|
8430
|
+
confirmTitle: "Are you sure?",
|
|
8431
|
+
confirmLabel: "Confirm",
|
|
8432
|
+
cancelLabel: "Cancel",
|
|
8433
|
+
failed: "That did not work. Try again.",
|
|
8434
|
+
forbidden: "You do not have permission to do that.",
|
|
8435
|
+
network: "Could not reach the server. Check your connection and try again."
|
|
8436
|
+
}), ro = /* @__PURE__ */ new WeakSet(), io = null, ao = null, oo = !1, so = (e) => {
|
|
8437
|
+
let t = document.createElement("span");
|
|
8438
|
+
return t.textContent = e ?? "", t.innerHTML;
|
|
8439
|
+
}, co = (e, t) => {
|
|
8440
|
+
e && window.WUI?.toast?.(e, { variant: t });
|
|
8441
|
+
}, lo = () => {
|
|
8442
|
+
let e = window.bootstrap?.Modal;
|
|
8443
|
+
if (!e) throw Error("data-wui-confirm: Bootstrap's bundle (window.bootstrap) is not loaded on this page.");
|
|
8444
|
+
return e;
|
|
8445
|
+
};
|
|
8446
|
+
function uo() {
|
|
8447
|
+
let e = document.getElementById(Qa);
|
|
8448
|
+
return e || (e = document.createElement("div"), e.id = Qa, 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">${so(no.cancelLabel)}</button><button type="button" class="btn btn-primary" data-app-confirm></button></div></div></div></div>`, document.body.appendChild(e), e);
|
|
8449
|
+
}
|
|
8450
|
+
function fo(e, t) {
|
|
8451
|
+
let n = e.getAttribute("data-wui-confirm-tone");
|
|
8452
|
+
if (n !== null && !$a.includes(n)) throw TypeError(`data-wui-confirm-tone="${n}" is not supported. Use danger, or leave it off.`);
|
|
8453
|
+
let r = lo(), i = uo(), a = i.querySelector(".wui-confirm-title"), o = i.querySelector("[data-app-confirm]");
|
|
8454
|
+
if (!a || !o) throw Error(`#${Qa} is not a confirm dialog with a confirm button. Render <app-confirm-dialog id="${Qa}"> without confirm-href, or leave the dialog to the library.`);
|
|
8455
|
+
let s = i.querySelector(".wui-confirm-msg");
|
|
8456
|
+
s || (s = document.createElement("p"), s.className = "wui-confirm-msg", a.after(s));
|
|
8457
|
+
let c = n === "danger";
|
|
8458
|
+
a.textContent = e.getAttribute("data-wui-confirm-title") || no.confirmTitle, s.textContent = e.getAttribute("data-wui-confirm"), o.textContent = e.getAttribute("data-wui-confirm-label") || no.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), ao = t, oo = !1, r.getOrCreateInstance(i).show();
|
|
8459
|
+
}
|
|
8460
|
+
var po = (e, t) => {
|
|
8461
|
+
io = e;
|
|
8462
|
+
try {
|
|
8463
|
+
t();
|
|
8464
|
+
} finally {
|
|
8465
|
+
io = null;
|
|
8466
|
+
}
|
|
8467
|
+
}, mo = (e) => e.disabled === !0 || e.getAttribute("aria-disabled") === "true";
|
|
8468
|
+
function ho(e) {
|
|
8469
|
+
let t = e.target.closest?.("[data-wui-confirm]:not(form)");
|
|
8470
|
+
!t || t === io || mo(t) || (e.preventDefault(), e.stopImmediatePropagation(), fo(t, () => po(t, () => t.click())));
|
|
8471
|
+
}
|
|
8472
|
+
function go(e) {
|
|
8473
|
+
let t = e.target;
|
|
8474
|
+
if (!(t instanceof HTMLFormElement) || !t.hasAttribute("data-wui-confirm") || t === io || e.submitter && e.submitter === io) return;
|
|
8475
|
+
e.preventDefault(), e.stopImmediatePropagation();
|
|
8476
|
+
let n = e.submitter?.form === t ? e.submitter : void 0;
|
|
8477
|
+
fo(t, () => po(t, () => t.requestSubmit(n)));
|
|
8478
|
+
}
|
|
8479
|
+
function _o(e) {
|
|
8480
|
+
let t = e.target.closest?.(`#${Qa} [data-app-confirm]`);
|
|
8481
|
+
!t || t.disabled || !ao || (oo = !0, lo().getOrCreateInstance(t.closest(`#${Qa}`)).hide());
|
|
8482
|
+
}
|
|
8483
|
+
function vo(e) {
|
|
8484
|
+
if (e.target.id !== "wuiConfirm") return;
|
|
8485
|
+
let t = oo ? ao : null;
|
|
8486
|
+
ao = null, oo = !1, t?.();
|
|
8487
|
+
}
|
|
8488
|
+
var yo = (e, t) => {
|
|
8489
|
+
e && window.sessionStorage.setItem(to, JSON.stringify({
|
|
8490
|
+
message: e,
|
|
8491
|
+
variant: t
|
|
8492
|
+
}));
|
|
8493
|
+
}, bo = (e) => e === "forbidden" ? no.forbidden : e === "network" ? no.network : no.failed;
|
|
8494
|
+
function xo() {
|
|
8495
|
+
for (let e of document.querySelectorAll("[data-wui-server]")) e.dataset.refreshOnSuccess !== "false" && Xa(e)?.reload();
|
|
8496
|
+
}
|
|
8497
|
+
async function So(e) {
|
|
8498
|
+
let t = e.getAttribute("data-wui-post");
|
|
8499
|
+
if (!t) throw Error("A data-wui-post button needs the URL the action posts to.");
|
|
8500
|
+
let n = e.getAttribute("data-wui-post-reload");
|
|
8501
|
+
if (n !== null && n !== "page") throw TypeError(`data-wui-post-reload="${n}" is not supported. Use page, or leave it off to reload the server tables.`);
|
|
8502
|
+
e.disabled = !0, e.setAttribute("aria-busy", "true");
|
|
8503
|
+
let r = await O(t, { method: "POST" });
|
|
8504
|
+
if (r.kind === "session" || r.kind === "aborted") return;
|
|
8505
|
+
let i = r.toastVariant || "success";
|
|
8506
|
+
if (r.ok && (r.redirect || n === "page")) {
|
|
8507
|
+
yo(r.message, i), r.redirect ? window.location.assign(r.redirect) : window.location.reload();
|
|
8508
|
+
return;
|
|
8509
|
+
}
|
|
8510
|
+
if (e.disabled = !1, e.removeAttribute("aria-busy"), r.ok) {
|
|
8511
|
+
co(r.message, i), xo();
|
|
8512
|
+
return;
|
|
8513
|
+
}
|
|
8514
|
+
co(r.message || bo(r.kind), "danger");
|
|
8515
|
+
}
|
|
8516
|
+
function Co(e) {
|
|
8517
|
+
let t = e.target.closest?.("[data-wui-post]");
|
|
8518
|
+
t && (e.preventDefault(), !(mo(t) || t.getAttribute("aria-busy") === "true") && So(t).catch((e) => console.error(e)));
|
|
8519
|
+
}
|
|
8520
|
+
function wo() {
|
|
8521
|
+
let e = window.sessionStorage.getItem(to);
|
|
8522
|
+
if (!e) return;
|
|
8523
|
+
window.sessionStorage.removeItem(to);
|
|
8524
|
+
let { message: t, variant: n } = JSON.parse(e);
|
|
8525
|
+
co(t, n);
|
|
8526
|
+
}
|
|
8527
|
+
function To(e) {
|
|
8528
|
+
let t = e.querySelectorAll ? [...e.querySelectorAll("[data-wui-flash]")] : [];
|
|
8529
|
+
e instanceof Element && e.matches("[data-wui-flash]") && t.unshift(e);
|
|
8530
|
+
for (let e of t) {
|
|
8531
|
+
let t = e.getAttribute("data-wui-flash-variant") || "success";
|
|
8532
|
+
if (!eo.includes(t)) throw TypeError(`data-wui-flash-variant="${t}" is not supported. Use ${eo.join(", ")}.`);
|
|
8533
|
+
let n = e.getAttribute("data-wui-flash") || e.textContent.trim();
|
|
8534
|
+
e.remove(), co(n, t);
|
|
8535
|
+
}
|
|
8423
8536
|
}
|
|
8424
|
-
|
|
8537
|
+
function Eo(e = document) {
|
|
8538
|
+
let t = e.ownerDocument || e;
|
|
8539
|
+
ro.has(t) || (ro.add(t), t.addEventListener("click", ho, !0), t.addEventListener("submit", go, !0), t.addEventListener("click", _o), t.addEventListener("click", Co), t.addEventListener("hidden.bs.modal", vo), wo()), To(e);
|
|
8540
|
+
}
|
|
8541
|
+
var Do = 31536e3, Oo = /* @__PURE__ */ new WeakMap(), ko = (e) => e > 99 ? "99+" : String(e);
|
|
8542
|
+
function Ao(e, t, n = document) {
|
|
8543
|
+
n.cookie = `${e}=${t ? "1" : "0"}; Path=/; Max-Age=${Do}; SameSite=Lax`;
|
|
8544
|
+
}
|
|
8545
|
+
var jo = (e) => {
|
|
8425
8546
|
let t = document.createElement("template");
|
|
8426
8547
|
return t.innerHTML = e, t.content;
|
|
8427
|
-
},
|
|
8548
|
+
}, Mo = (e, t) => {
|
|
8428
8549
|
let n = document.createElement("div");
|
|
8429
8550
|
return n.className = e, n.textContent = t, n;
|
|
8430
8551
|
};
|
|
8431
|
-
function
|
|
8552
|
+
function No(e, t) {
|
|
8432
8553
|
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 = fe(), p = Number(e.dataset.unread) || 0, m = (t, a = !0) => {
|
|
8433
8554
|
let o = Math.max(0, Number(t) || 0), s = o !== p;
|
|
8434
|
-
p = o, e.dataset.unread = String(o), r && (r.textContent =
|
|
8555
|
+
p = o, e.dataset.unread = String(o), r && (r.textContent = ko(o), r.hidden = o === 0), n?.setAttribute("aria-label", o === 0 ? l : `${l}, ${ko(o)} unread`), a && s && i && (i.textContent = o === 0 ? "No unread notifications" : `${ko(o)} unread notifications`);
|
|
8435
8556
|
}, h = () => o?.classList.contains("show") ?? !1, g = () => {
|
|
8436
|
-
let e =
|
|
8557
|
+
let e = Mo("wui-bell-state", "Could not load notifications. "), t = document.createElement("button");
|
|
8437
8558
|
t.type = "button", t.className = "btn btn-link btn-sm", t.dataset.wuiBellRetry = "", t.textContent = "Retry", e.append(t), a.replaceChildren(e);
|
|
8438
8559
|
}, _ = async (t) => {
|
|
8439
|
-
t && (a.setAttribute("aria-busy", "true"), a.querySelector(".wui-bell-item") || a.replaceChildren(
|
|
8560
|
+
t && (a.setAttribute("aria-busy", "true"), a.querySelector(".wui-bell-item") || a.replaceChildren(Mo("wui-bell-state", "Loading…")));
|
|
8440
8561
|
let n = await f.run(s);
|
|
8441
8562
|
if (n.kind === "aborted" || n.kind === "stale" || n.kind === "session") return;
|
|
8442
8563
|
if (a.removeAttribute("aria-busy"), !n.ok) {
|
|
8443
8564
|
t && g();
|
|
8444
8565
|
return;
|
|
8445
8566
|
}
|
|
8446
|
-
let r =
|
|
8447
|
-
m(o), (t || h()) && (r.querySelector(".wui-bell-item") ? a.replaceChildren(r) : a.replaceChildren(
|
|
8567
|
+
let r = jo(n.html), i = r.querySelector("[data-wui-unread]"), o = i ? Number(i.getAttribute("data-wui-unread")) : p;
|
|
8568
|
+
m(o), (t || h()) && (r.querySelector(".wui-bell-item") ? a.replaceChildren(r) : a.replaceChildren(Mo("wui-bell-state", u))), e.dispatchEvent(new CustomEvent("wui:notifications:loaded", {
|
|
8448
8569
|
bubbles: !0,
|
|
8449
8570
|
detail: { unread: o }
|
|
8450
8571
|
}));
|
|
@@ -8457,7 +8578,7 @@ function io(e, t) {
|
|
|
8457
8578
|
let t = e.target.closest("[data-wui-bell-read]");
|
|
8458
8579
|
if (!t || !c) return;
|
|
8459
8580
|
t.disabled = !0;
|
|
8460
|
-
let n = await
|
|
8581
|
+
let n = await O(c, { method: "POST" });
|
|
8461
8582
|
t.disabled = !1, n.ok && (m(0), _(!0));
|
|
8462
8583
|
});
|
|
8463
8584
|
let v = null, y = () => {
|
|
@@ -8474,8 +8595,8 @@ function io(e, t) {
|
|
|
8474
8595
|
refresh: () => _(h())
|
|
8475
8596
|
};
|
|
8476
8597
|
}
|
|
8477
|
-
var
|
|
8478
|
-
function
|
|
8598
|
+
var Po = (e) => !!e && (e.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(e.tagName)), Fo = (e, t, n) => `${e}${e.includes("?") ? "&" : "?"}${encodeURIComponent(t)}=${encodeURIComponent(n)}`;
|
|
8599
|
+
function Io(e, t) {
|
|
8479
8600
|
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 = fe(), f = null, p = -1, m = () => [...r.querySelectorAll(".wui-topsearch-hit")], h = (e) => {
|
|
8480
8601
|
let t = m();
|
|
8481
8602
|
p = t.length === 0 ? -1 : (e + t.length) % t.length, t.forEach((e, t) => {
|
|
@@ -8497,16 +8618,16 @@ function so(e, t) {
|
|
|
8497
8618
|
e.dispatchEvent(n) && window.location.assign(t);
|
|
8498
8619
|
}, b = async (t) => {
|
|
8499
8620
|
e.classList.add("is-loading");
|
|
8500
|
-
let n = await d.run(
|
|
8621
|
+
let n = await d.run(Fo(o, s, t));
|
|
8501
8622
|
if (!(n.kind === "aborted" || n.kind === "stale" || n.kind === "session")) {
|
|
8502
8623
|
if (e.classList.remove("is-loading"), n.ok) {
|
|
8503
|
-
let e =
|
|
8624
|
+
let e = jo(n.html), t = e.querySelector("[data-wui-count]");
|
|
8504
8625
|
r.replaceChildren(e), m().forEach((e, t) => {
|
|
8505
8626
|
e.id = `${r.id}-opt-${t}`;
|
|
8506
8627
|
});
|
|
8507
8628
|
let i = t ? Number(t.getAttribute("data-wui-count")) : m().length;
|
|
8508
8629
|
a && (a.textContent = i === 0 ? "No results" : `${i} ${i === 1 ? "result" : "results"}`);
|
|
8509
|
-
} else r.replaceChildren(
|
|
8630
|
+
} else r.replaceChildren(Mo("wui-topsearch-empty", "Search is unavailable right now."));
|
|
8510
8631
|
p = -1, _();
|
|
8511
8632
|
}
|
|
8512
8633
|
};
|
|
@@ -8524,7 +8645,7 @@ function so(e, t) {
|
|
|
8524
8645
|
t.preventDefault(), h(p + (t.key === "ArrowDown" ? 1 : -1));
|
|
8525
8646
|
} else if (t.key === "Enter") {
|
|
8526
8647
|
let e = m();
|
|
8527
|
-
!r.hidden && p >= 0 && e[p] ? (t.preventDefault(), y(e[p].getAttribute("href"))) : c && n.value.trim() !== "" && (t.preventDefault(), y(
|
|
8648
|
+
!r.hidden && p >= 0 && e[p] ? (t.preventDefault(), y(e[p].getAttribute("href"))) : c && n.value.trim() !== "" && (t.preventDefault(), y(Fo(c, s, n.value.trim())));
|
|
8528
8649
|
} else t.key === "Escape" && (r.hidden ? e.classList.contains("is-open") && (t.preventDefault(), v(!1), i?.focus()) : (t.preventDefault(), g()));
|
|
8529
8650
|
}), r.addEventListener("click", (e) => {
|
|
8530
8651
|
let t = e.target.closest(".wui-topsearch-hit");
|
|
@@ -8534,7 +8655,7 @@ function so(e, t) {
|
|
|
8534
8655
|
v(t), t && n.focus();
|
|
8535
8656
|
});
|
|
8536
8657
|
let x = (e) => {
|
|
8537
|
-
e.key !== "/" || e.ctrlKey || e.metaKey || e.altKey ||
|
|
8658
|
+
e.key !== "/" || e.ctrlKey || e.metaKey || e.altKey || Po(e.target) || (e.preventDefault(), v(!0), n.focus());
|
|
8538
8659
|
}, S = (t) => {
|
|
8539
8660
|
e.contains(t.target) || (g(), e.classList.contains("is-open") && v(!1));
|
|
8540
8661
|
};
|
|
@@ -8542,13 +8663,13 @@ function so(e, t) {
|
|
|
8542
8663
|
clearTimeout(f), d.abort(), document.removeEventListener("keydown", x), document.removeEventListener("pointerdown", S);
|
|
8543
8664
|
});
|
|
8544
8665
|
}
|
|
8545
|
-
function
|
|
8666
|
+
function Lo(e) {
|
|
8546
8667
|
let t = [], n = e.dataset.wuiCollapsedCookie;
|
|
8547
|
-
n && e.addEventListener("wui:shell:collapse", (e) =>
|
|
8668
|
+
n && e.addEventListener("wui:shell:collapse", (e) => Ao(n, !!e.detail?.collapsed)), e.addEventListener("click", (t) => {
|
|
8548
8669
|
t.target.closest("[data-wui-tabbar-more]") && e.querySelector("[data-app-shell-menu]")?.click();
|
|
8549
8670
|
});
|
|
8550
|
-
let r = e.querySelector("[data-wui-bell]"), i = r ?
|
|
8551
|
-
a &&
|
|
8671
|
+
let r = e.querySelector("[data-wui-bell]"), i = r ? No(r, t) : null, a = e.querySelector("[data-wui-topsearch]");
|
|
8672
|
+
a && Io(a, t);
|
|
8552
8673
|
let o = {
|
|
8553
8674
|
el: e,
|
|
8554
8675
|
setUnread(e) {
|
|
@@ -8568,109 +8689,109 @@ function co(e) {
|
|
|
8568
8689
|
n ? n.click() : e.classList.toggle("collapsed", !!t);
|
|
8569
8690
|
}
|
|
8570
8691
|
};
|
|
8571
|
-
|
|
8692
|
+
Oo.set(e, o);
|
|
8572
8693
|
let s = (n) => {
|
|
8573
8694
|
if (n.target === e || n.target.contains?.(e)) {
|
|
8574
8695
|
for (let e of t) e();
|
|
8575
|
-
|
|
8696
|
+
Oo.delete(e), delete e.dataset.wuiPartsWired, document.removeEventListener("wui:teardown", s);
|
|
8576
8697
|
}
|
|
8577
8698
|
};
|
|
8578
8699
|
return document.addEventListener("wui:teardown", s), o;
|
|
8579
8700
|
}
|
|
8580
|
-
function
|
|
8701
|
+
function Ro(e = document) {
|
|
8581
8702
|
let t = [];
|
|
8582
8703
|
e instanceof Element && e.matches("[data-app-shell]") && t.push(e), t.push(...e.querySelectorAll("[data-app-shell]"));
|
|
8583
|
-
for (let e of t) e.dataset.wuiPartsWired || (e.dataset.wuiPartsWired = "1",
|
|
8704
|
+
for (let e of t) e.dataset.wuiPartsWired || (e.dataset.wuiPartsWired = "1", Lo(e));
|
|
8584
8705
|
}
|
|
8585
|
-
function
|
|
8706
|
+
function zo(e) {
|
|
8586
8707
|
let t = e?.closest?.("[data-app-shell]") ?? null;
|
|
8587
|
-
return t ? (
|
|
8708
|
+
return t ? (Oo.has(t) || Ro(t), Oo.get(t) ?? null) : null;
|
|
8588
8709
|
}
|
|
8589
8710
|
//#endregion
|
|
8590
8711
|
//#region src/themeTransition.js
|
|
8591
|
-
var
|
|
8712
|
+
var Bo = [
|
|
8592
8713
|
"light",
|
|
8593
8714
|
"dark",
|
|
8594
8715
|
"auto"
|
|
8595
|
-
],
|
|
8716
|
+
], Vo = [
|
|
8596
8717
|
"wave",
|
|
8597
8718
|
"circle",
|
|
8598
8719
|
"slide",
|
|
8599
8720
|
"blinds",
|
|
8600
8721
|
"fade",
|
|
8601
8722
|
"none"
|
|
8602
|
-
],
|
|
8723
|
+
], Ho = "wave", Uo = "theme", Wo = {
|
|
8603
8724
|
wave: 1100,
|
|
8604
8725
|
circle: 700,
|
|
8605
8726
|
slide: 600,
|
|
8606
8727
|
blinds: 900,
|
|
8607
8728
|
fade: 350,
|
|
8608
8729
|
none: 0
|
|
8609
|
-
},
|
|
8610
|
-
function
|
|
8611
|
-
return e === "dark" || e === "auto" &&
|
|
8730
|
+
}, Go = "wui-theme-switching", Ko = "wui-theme-change", qo = "wui-theme-toggle", Jo = "(prefers-color-scheme: dark)", Yo = (e) => typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia(e).matches, Xo = (e) => Bo.includes(e);
|
|
8731
|
+
function Zo(e) {
|
|
8732
|
+
return e === "dark" || e === "auto" && Yo(Jo) ? "dark" : "light";
|
|
8612
8733
|
}
|
|
8613
|
-
function
|
|
8734
|
+
function Qo(e = Uo, { includeAuto: t = !1 } = {}) {
|
|
8614
8735
|
let n = null;
|
|
8615
8736
|
try {
|
|
8616
8737
|
n = window.localStorage.getItem(e);
|
|
8617
8738
|
} catch {}
|
|
8618
|
-
return !
|
|
8739
|
+
return !Xo(n) || n === "auto" && !t ? "light" : n;
|
|
8619
8740
|
}
|
|
8620
|
-
function
|
|
8741
|
+
function $o(e, t = Uo) {
|
|
8621
8742
|
try {
|
|
8622
8743
|
window.localStorage.setItem(t, e);
|
|
8623
8744
|
} catch {}
|
|
8624
8745
|
}
|
|
8625
|
-
function
|
|
8746
|
+
function es(e) {
|
|
8626
8747
|
let t = document.documentElement;
|
|
8627
|
-
t.setAttribute("data-theme", e), t.setAttribute("data-bs-theme",
|
|
8748
|
+
t.setAttribute("data-theme", e), t.setAttribute("data-bs-theme", Zo(e)), document.dispatchEvent(new CustomEvent(Ko, { detail: { mode: e } }));
|
|
8628
8749
|
}
|
|
8629
|
-
function
|
|
8750
|
+
function ts(e, { includeAuto: t = !1 } = {}) {
|
|
8630
8751
|
return e === "light" ? "dark" : e === "dark" && t ? "auto" : "light";
|
|
8631
8752
|
}
|
|
8632
|
-
function
|
|
8753
|
+
function ns(e) {
|
|
8633
8754
|
if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
|
|
8634
|
-
let t = window.matchMedia(
|
|
8755
|
+
let t = window.matchMedia(Jo), n = () => e(t.matches ? "dark" : "light");
|
|
8635
8756
|
return t.addEventListener("change", n), () => t.removeEventListener("change", n);
|
|
8636
8757
|
}
|
|
8637
|
-
var
|
|
8758
|
+
var rs = 60, is = (e) => e < .5 ? 4 * e * e * e : 1 - (-2 * e + 2) ** 3 / 2, as = (e) => e.toFixed(1), os = (e, t) => `${as(e)}px ${as(t)}px`, ss = {
|
|
8638
8759
|
amplitude: 22,
|
|
8639
8760
|
segments: 36,
|
|
8640
8761
|
cycles: 1.5,
|
|
8641
8762
|
ripples: 2
|
|
8642
|
-
},
|
|
8643
|
-
let { amplitude: a, segments: o, cycles: s } =
|
|
8763
|
+
}, cs = 6, ls = (e, t, n, r, i) => {
|
|
8764
|
+
let { amplitude: a, segments: o, cycles: s } = ss, c = n * (t + 2 * a), l = i ? t + a - c : c - a, u = i ? t + 2 * a : -2 * a, d = [os(0, u)];
|
|
8644
8765
|
for (let t = 0; t <= o; t++) {
|
|
8645
8766
|
let n = e * t / o, i = l + a * Math.sin(2 * Math.PI * s * t / o + r);
|
|
8646
|
-
d.push(
|
|
8767
|
+
d.push(os(n, i));
|
|
8647
8768
|
}
|
|
8648
|
-
return d.push(
|
|
8649
|
-
},
|
|
8650
|
-
let i = t /
|
|
8651
|
-
for (let t = 0; t <
|
|
8769
|
+
return d.push(os(e, u)), `polygon(${d.join(", ")})`;
|
|
8770
|
+
}, us = (e, t, n, r) => {
|
|
8771
|
+
let i = t / cs, a = [];
|
|
8772
|
+
for (let t = 0; t < cs; t++) {
|
|
8652
8773
|
let o = t * i, s = i * n, c = r ? o + i - s : o, l = r ? o + i : o + s;
|
|
8653
|
-
a.push(
|
|
8774
|
+
a.push(os(0, c), os(e, c), os(e, l), os(0, l));
|
|
8654
8775
|
}
|
|
8655
8776
|
return `polygon(${a.join(", ")})`;
|
|
8656
8777
|
};
|
|
8657
|
-
function
|
|
8778
|
+
function ds(e, { width: t, height: n, to: r = "dark", origin: i } = {}) {
|
|
8658
8779
|
let a = r === "dark", o = [];
|
|
8659
|
-
for (let r = 0; r <=
|
|
8660
|
-
let s = r /
|
|
8780
|
+
for (let r = 0; r <= rs; r++) {
|
|
8781
|
+
let s = r / rs, c = is(s);
|
|
8661
8782
|
switch (e) {
|
|
8662
8783
|
case "circle": {
|
|
8663
8784
|
let e = i?.x ?? t / 2, r = i?.y ?? n / 2, a = Math.hypot(Math.max(e, t - e), Math.max(r, n - r));
|
|
8664
|
-
o.push({ clipPath: `circle(${
|
|
8785
|
+
o.push({ clipPath: `circle(${as(a * c)}px at ${as(e)}px ${as(r)}px)` });
|
|
8665
8786
|
break;
|
|
8666
8787
|
}
|
|
8667
8788
|
case "slide": {
|
|
8668
8789
|
let e = n * (1 - c);
|
|
8669
|
-
o.push({ clipPath: a ? `inset(${
|
|
8790
|
+
o.push({ clipPath: a ? `inset(${as(e)}px 0px 0px 0px)` : `inset(0px 0px ${as(e)}px 0px)` });
|
|
8670
8791
|
break;
|
|
8671
8792
|
}
|
|
8672
8793
|
case "blinds":
|
|
8673
|
-
o.push({ clipPath:
|
|
8794
|
+
o.push({ clipPath: us(t, n, c, a) });
|
|
8674
8795
|
break;
|
|
8675
8796
|
case "fade":
|
|
8676
8797
|
o.push({
|
|
@@ -8679,20 +8800,20 @@ function Lo(e, { width: t, height: n, to: r = "dark", origin: i } = {}) {
|
|
|
8679
8800
|
});
|
|
8680
8801
|
break;
|
|
8681
8802
|
case "none": return [];
|
|
8682
|
-
default: o.push({ clipPath:
|
|
8803
|
+
default: o.push({ clipPath: ls(t, n, c, s * ss.ripples * 2 * Math.PI, a) });
|
|
8683
8804
|
}
|
|
8684
8805
|
}
|
|
8685
8806
|
return o;
|
|
8686
8807
|
}
|
|
8687
|
-
function
|
|
8808
|
+
function fs(e, { effect: t = Ho, to: n, origin: r, duration: i, live: a } = {}) {
|
|
8688
8809
|
let o = document.documentElement, s = n !== void 0 && o.getAttribute("data-bs-theme") === n;
|
|
8689
|
-
if (t === "none" || s ||
|
|
8690
|
-
o.classList.add(
|
|
8810
|
+
if (t === "none" || s || Yo("(prefers-reduced-motion: reduce)") || typeof document.startViewTransition != "function" || typeof o.animate != "function") return e(), Promise.resolve(!1);
|
|
8811
|
+
o.classList.add(Go);
|
|
8691
8812
|
let c = a instanceof Element ? a : null;
|
|
8692
|
-
c && (c.style.viewTransitionName =
|
|
8693
|
-
let l = document.startViewTransition(e), u = i ??
|
|
8813
|
+
c && (c.style.viewTransitionName = qo);
|
|
8814
|
+
let l = document.startViewTransition(e), u = i ?? Wo[t] ?? Wo.wave;
|
|
8694
8815
|
return l.ready.then(() => {
|
|
8695
|
-
let e =
|
|
8816
|
+
let e = ds(t, {
|
|
8696
8817
|
width: window.innerWidth,
|
|
8697
8818
|
height: window.innerHeight,
|
|
8698
8819
|
to: n,
|
|
@@ -8704,16 +8825,16 @@ function Ro(e, { effect: t = mo, to: n, origin: r, duration: i, live: a } = {})
|
|
|
8704
8825
|
fill: "both",
|
|
8705
8826
|
pseudoElement: "::view-transition-new(root)"
|
|
8706
8827
|
});
|
|
8707
|
-
}).catch(() => {}), l.finished.catch(() => {}).then(() => (o.classList.remove(
|
|
8828
|
+
}).catch(() => {}), l.finished.catch(() => {}).then(() => (o.classList.remove(Go), c && (c.style.viewTransitionName = ""), !0));
|
|
8708
8829
|
}
|
|
8709
8830
|
//#endregion
|
|
8710
8831
|
//#region src/index.js
|
|
8711
8832
|
var $ = (e, t) => {
|
|
8712
8833
|
typeof customElements < "u" && !customElements.get(e) && customElements.define(e, t);
|
|
8713
8834
|
};
|
|
8714
|
-
function
|
|
8715
|
-
$("wui-select",
|
|
8835
|
+
function ps() {
|
|
8836
|
+
$("wui-select", jn), $("wui-country-select", Fn), $("wui-phone", ti), $("wui-datepicker", Hn), $("wui-date-range", Un), $("wui-dock", Wn), $("wui-image-crop", vr), $("wui-kanban", Ft), $("wui-consent-banner", pn), $("wui-slider", ni), $("wui-sortable", fi), $("wui-timepicker", Si), $("wui-tree", Ai), $("wui-autocomplete", en), $("wui-command-palette", on), $("wui-context-menu", On), $("wui-multiselect", Tr), $("wui-taginput", hi), $("wui-otp", Lr), $("wui-status-icon", zt), $("wui-wizard-step", Pi), $("wui-wizard", Mi);
|
|
8716
8837
|
}
|
|
8717
|
-
|
|
8838
|
+
ps();
|
|
8718
8839
|
//#endregion
|
|
8719
|
-
export { Fi as COPY_FEEDBACK_MS, ae as CSRF_META_NAME, n as CURRENCIES, a as DATE_PATTERNS,
|
|
8840
|
+
export { Qa as CONFIRM_DIALOG_ID, $a as CONFIRM_TONES, Fi as COPY_FEEDBACK_MS, ae as CSRF_META_NAME, n as CURRENCIES, a as DATE_PATTERNS, oe as DEFAULT_CSRF_HEADER, Li as DEFAULT_IMAGE_ACCEPT, Ri as DEFAULT_MAX_SIZE_MB, Ea as DEFAULT_PASSWORD_RULES, Da as DEFAULT_REQUIREMENTS_TITLE, Ho as DEFAULT_THEME_EFFECT, Uo as DEFAULT_THEME_STORAGE_KEY, i as DURATION_UNITS, s as EMPTY_VALUE, to as FLASH_STORAGE_KEY, eo as FLASH_VARIANTS, t as FORMAT_STYLES, se as HTTP_KINDS, o as IST_TIME_ZONE, dt as KANBAN_DRAG_THRESHOLD_PX, ut as KANBAN_LONG_PRESS_MS, lt as KANBAN_PHONE_QUERY, ct as KANBAN_STORAGE_PREFIX, st as KANBAN_SUMMARY_FORMATS, A as KANBAN_TEXT, ot as KANBAN_TONES, Zi as MASK_INPUT_TYPES, ia as MASK_NAMES, r as MONEY_UNITS, Ma as SELECT_ALL_LABEL, Q as SELECT_CELL_CLASS, Na as SELECT_ROW_LABEL, no as SERVER_ACTION_TEXT, Rt as STATUS_TONES, Ko as THEME_CHANGE_EVENT, Vo as THEME_EFFECTS, Wo as THEME_EFFECT_DURATION, qo as THEME_LIVE_NAME, Bo as THEME_MODES, Go as THEME_SWITCHING_CLASS, E as WUI_HEADERS, en as WuiAutocomplete, on as WuiCommandPalette, pn as WuiConsentBanner, On as WuiContextMenu, Fn as WuiCountrySelect, Hn as WuiDatePicker, Un as WuiDateRange, Wn as WuiDock, Ft as WuiKanban, Tr as WuiMultiSelect, Lr as WuiOtp, ti as WuiPhone, jn as WuiSelect, ni as WuiSlider, fi as WuiSortable, zt as WuiStatusIcon, hi as WuiTagInput, Si as WuiTimePicker, Ai as WuiTree, Mi as WuiWizard, Pi as WuiWizardStep, Gi as acceptLabel, za as addRowSelectCells, Ba as addSelectColumn, es as applyTheme, va as attachInputMask, ka as buildPasswordRules, de as classifyStatus, Ii as copyTextToClipboard, fe as createRequestQueue, Fa as createSelectHeaderCell, Ia as createSelectRowCell, La as createSelectSpacerCell, ps as defineWeborityElements, Aa as evaluatePassword, w as formatCompact, S as formatCurrency, T as formatDate, te as formatDuration, da as formatMasked, x as formatNumber, ee as formatPercent, ie as formatValue, Xa as getServerTable, zo as getShell, L as glyphSvg, Ta as initInputMasks, it as initRemoteModals, Eo as initServerActions, Ya as initServerTables, Ro as initShellParts, Ui as isImageFile, Wi as isImageOnlyAccept, oa as isMaskPattern, M as kanbanCardLabel, kt as kanbanStorageKey, Mt as kanbanSummaryFormat, at as loadRemoteModal, ma as maskedPostValue, nn as matchSegments, Ki as matchesAccept, ts as nextTheme, ja as passwordSatisfies, ua as postedMasked, la as rawMasked, le as readCsrf, At as readKanbanCollapsed, Qo as readStoredTheme, ca as resolveMask, Zo as resolveTheme, $o as storeTheme, Nt as sumKanbanValues, Va as syncSelectAll, ds as themeKeyframes, ne as toInstant, fs as transitionTheme, qi as validateFile, ns as watchSystemTheme, jt as writeKanbanCollapsed, O as wuiFetch };
|