UNPKG

v-toggle-theme

Version:

A Vue 3 and Vuetify 3 compatible component that automatically switches between light and dark themes based on sunrise and sunset times. Includes manual override capabilities and full support for SSR and geolocation.

1,748 lines 92.9 kB
import { Fragment as st, reactive as le, computed as h, watchEffect as ce, toRefs as nn, capitalize as Yn, shallowRef as U, warn as lt, getCurrentInstance as Xn, inject as J, ref as A, unref as K, provide as fe, defineComponent as Ze, isRef as ue, createVNode as p, toRef as j, watch as I, onScopeDispose as q, effectScope as ut, toRaw as rn, onBeforeUnmount as Ce, onMounted as ct, onUpdated as Kn, mergeProps as z, Text as Jn, readonly as on, resolveDynamicComponent as Zn, nextTick as de, withDirectives as an, h as Qn, TransitionGroup as er, Transition as sn, Teleport as tr, vShow as nr, resolveDirective as rr, onUnmounted as ir, openBlock as or, createBlock as ar, withCtx as xt, createElementVNode as sr, toDisplayString as lr } from "vue"; import { getSunrise as ze, getSunset as kt } from "sunrise-sunset-js"; import { useTheme as ur } from "vuetify"; var cr = "M17.75,4.09L15.22,6.03L16.13,9.09L13.5,7.28L10.87,9.09L11.78,6.03L9.25,4.09L12.44,4L13.5,1L14.56,4L17.75,4.09M21.25,11L19.61,12.25L20.2,14.23L18.5,13.06L16.8,14.23L17.39,12.25L15.75,11L17.81,10.95L18.5,9L19.19,10.95L21.25,11M18.97,15.95C19.8,15.87 20.69,17.05 20.16,17.8C19.84,18.25 19.5,18.67 19.08,19.07C15.17,23 8.84,23 4.94,19.07C1.03,15.17 1.03,8.83 4.94,4.93C5.34,4.53 5.76,4.17 6.21,3.85C6.96,3.32 8.14,4.21 8.06,5.04C7.79,7.9 8.75,10.87 10.95,13.06C13.14,15.26 16.1,16.22 18.97,15.95M17.33,17.97C14.5,17.81 11.7,16.64 9.53,14.5C7.36,12.31 6.2,9.5 6.04,6.68C3.23,9.82 3.34,14.64 6.35,17.66C9.37,20.67 14.19,20.78 17.33,17.97Z", fr = "M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,2L14.39,5.42C13.65,5.15 12.84,5 12,5C11.16,5 10.35,5.15 9.61,5.42L12,2M3.34,7L7.5,6.65C6.9,7.16 6.36,7.78 5.94,8.5C5.5,9.24 5.25,10 5.11,10.79L3.34,7M3.36,17L5.12,13.23C5.26,14 5.53,14.78 5.95,15.5C6.37,16.24 6.91,16.86 7.5,17.37L3.36,17M20.65,7L18.88,10.79C18.74,10 18.47,9.23 18.05,8.5C17.63,7.78 17.1,7.15 16.5,6.64L20.65,7M20.64,17L16.5,17.36C17.09,16.85 17.62,16.22 18.04,15.5C18.46,14.77 18.73,14 18.87,13.21L20.64,17M12,22L9.59,18.56C10.33,18.83 11.14,19 12,19C12.82,19 13.63,18.83 14.37,18.56L12,22Z"; const G = typeof window < "u", dr = G && "IntersectionObserver" in window; function ft(e, t) { if (e === t) return !0; if (e instanceof Date && t instanceof Date && e.getTime() !== t.getTime() || e !== Object(e) || t !== Object(t)) return !1; const n = Object.keys(e); return n.length !== Object.keys(t).length ? !1 : n.every((r) => ft(e[r], t[r])); } function T(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "px"; if (!(e == null || e === "")) return isNaN(+e) ? String(e) : isFinite(+e) ? `${Number(e)}${t}` : void 0; } function vr(e) { return e !== null && typeof e == "object" && !Array.isArray(e); } function Et(e) { let t; return e !== null && typeof e == "object" && ((t = Object.getPrototypeOf(e)) === Object.prototype || t === null); } function mr(e) { if (e && "$el" in e) { const t = e.$el; return (t == null ? void 0 : t.nodeType) === Node.TEXT_NODE ? t.nextElementSibling : t; } return e; } const Pt = Object.freeze({ enter: 13, tab: 9, delete: 46, esc: 27, space: 32, up: 38, down: 40, left: 37, right: 39, end: 35, home: 36, del: 46, backspace: 8, insert: 45, pageup: 33, pagedown: 34, shift: 16 }); function He(e, t) { return t.every((n) => e.hasOwnProperty(n)); } function gr(e, t) { const n = {}, r = new Set(Object.keys(e)); for (const i of t) r.has(i) && (n[i] = e[i]); return n; } function hr(e, t) { const n = { ...e }; return t.forEach((r) => delete n[r]), n; } const yr = /^on[^a-z]/, ln = (e) => yr.test(e); function br(e) { return e == null ? [] : Array.isArray(e) ? e : [e]; } function Lt(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1; return Math.max(t, Math.min(n, e)); } function Ot(e, t) { let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "0"; return e + n.repeat(Math.max(0, t - e.length)); } function pr(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1; const n = []; let r = 0; for (; r < e.length; ) n.push(e.substr(r, t)), r += t; return n; } function ae() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, n = arguments.length > 2 ? arguments[2] : void 0; const r = {}; for (const i in e) r[i] = e[i]; for (const i in t) { const o = e[i], a = t[i]; if (Et(o) && Et(a)) { r[i] = ae(o, a, n); continue; } if (n && Array.isArray(o) && Array.isArray(a)) { r[i] = n(o, a); continue; } r[i] = a; } return r; } function un(e) { return e.map((t) => t.type === st ? un(t.children) : t).flat(); } function Q() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ""; if (Q.cache.has(e)) return Q.cache.get(e); const t = e.replace(/[^a-z]/gi, "-").replace(/\B([A-Z])/g, "-$1").toLowerCase(); return Q.cache.set(e, t), t; } Q.cache = /* @__PURE__ */ new Map(); function he(e, t) { if (!t || typeof t != "object") return []; if (Array.isArray(t)) return t.map((n) => he(e, n)).flat(1); if (t.suspense) return he(e, t.ssContent); if (Array.isArray(t.children)) return t.children.map((n) => he(e, n)).flat(1); if (t.component) { if (Object.getOwnPropertySymbols(t.component.provides).includes(e)) return [t.component]; if (t.component.subTree) return he(e, t.component.subTree).flat(1); } return []; } function dt(e) { const t = le({}), n = h(e); return ce(() => { for (const r in n.value) t[r] = n.value[r]; }, { flush: "sync" }), nn(t); } function Be(e, t) { return e.includes(t); } function cn(e) { return e[2].toLowerCase() + e.slice(3); } function Tt(e, t) { return t = "on" + Yn(t), !!(e[t] || e[`${t}Once`] || e[`${t}Capture`] || e[`${t}OnceCapture`] || e[`${t}CaptureOnce`]); } function wr(e, t) { if (!(G && typeof CSS < "u" && typeof CSS.supports < "u" && CSS.supports(`selector(${t})`))) return null; try { return !!e && e.matches(t); } catch { return null; } } function Cr(e, t) { if (!G || e === 0) return t(), () => { }; const n = window.setTimeout(t, e); return () => window.clearTimeout(n); } function Qe() { const e = U(), t = (n) => { e.value = n; }; return Object.defineProperty(t, "value", { enumerable: !0, get: () => e.value, set: (n) => e.value = n }), Object.defineProperty(t, "el", { enumerable: !0, get: () => mr(e.value) }), t; } const fn = ["top", "bottom"], Sr = ["start", "end", "left", "right"]; function et(e, t) { let [n, r] = e.split(" "); return r || (r = Be(fn, n) ? "start" : Be(Sr, n) ? "top" : "center"), { side: _t(n, t), align: _t(r, t) }; } function _t(e, t) { return e === "start" ? t ? "right" : "left" : e === "end" ? t ? "left" : "right" : e; } function je(e) { return { side: { center: "center", top: "bottom", bottom: "top", left: "right", right: "left" }[e.side], align: e.align }; } function Ge(e) { return { side: e.side, align: { center: "center", top: "bottom", bottom: "top", left: "right", right: "left" }[e.align] }; } function At(e) { return { side: e.align, align: e.side }; } function Bt(e) { return Be(fn, e.side) ? "y" : "x"; } class ee { constructor(t) { let { x: n, y: r, width: i, height: o } = t; this.x = n, this.y = r, this.width = i, this.height = o; } get top() { return this.y; } get bottom() { return this.y + this.height; } get left() { return this.x; } get right() { return this.x + this.width; } } function It(e, t) { return { x: { before: Math.max(0, t.left - e.left), after: Math.max(0, e.right - t.right) }, y: { before: Math.max(0, t.top - e.top), after: Math.max(0, e.bottom - t.bottom) } }; } function xr(e) { return Array.isArray(e) ? new ee({ x: e[0], y: e[1], width: 0, height: 0 }) : e.getBoundingClientRect(); } function kr(e) { const t = e.getBoundingClientRect(), n = getComputedStyle(e), r = n.transform; if (r) { let i, o, a, s, l; if (r.startsWith("matrix3d(")) i = r.slice(9, -1).split(/, /), o = +i[0], a = +i[5], s = +i[12], l = +i[13]; else if (r.startsWith("matrix(")) i = r.slice(7, -1).split(/, /), o = +i[0], a = +i[3], s = +i[4], l = +i[5]; else return new ee(t); const u = n.transformOrigin, c = t.x - s - (1 - o) * parseFloat(u), v = t.y - l - (1 - a) * parseFloat(u.slice(u.indexOf(" ") + 1)), d = o ? t.width / o : e.offsetWidth + 1, g = a ? t.height / a : e.offsetHeight + 1; return new ee({ x: c, y: v, width: d, height: g }); } else return new ee(t); } function Er(e, t, n) { if (typeof e.animate > "u") return { finished: Promise.resolve() }; let r; try { r = e.animate(t, n); } catch { return { finished: Promise.resolve() }; } return typeof r.finished > "u" && (r.finished = new Promise((i) => { r.onfinish = () => { i(r); }; })), r; } const Oe = /* @__PURE__ */ new WeakMap(); function Pr(e, t) { Object.keys(t).forEach((n) => { if (ln(n)) { const r = cn(n), i = Oe.get(e); if (t[n] == null) i == null || i.forEach((o) => { const [a, s] = o; a === r && (e.removeEventListener(r, s), i.delete(o)); }); else if (!i || ![...i].some((o) => o[0] === r && o[1] === t[n])) { e.addEventListener(r, t[n]); const o = i || /* @__PURE__ */ new Set(); o.add([r, t[n]]), Oe.has(e) || Oe.set(e, o); } } else t[n] == null ? e.removeAttribute(n) : e.setAttribute(n, t[n]); }); } function Lr(e, t) { Object.keys(t).forEach((n) => { if (ln(n)) { const r = cn(n), i = Oe.get(e); i == null || i.forEach((o) => { const [a, s] = o; a === r && (e.removeEventListener(r, s), i.delete(o)); }); } else e.removeAttribute(n); }); } const oe = 2.4, Rt = 0.2126729, Vt = 0.7151522, Nt = 0.072175, Or = 0.55, Tr = 0.58, _r = 0.57, Ar = 0.62, Pe = 0.03, $t = 1.45, Br = 5e-4, Ir = 1.25, Rr = 1.25, Mt = 0.078, Dt = 12.82051282051282, Le = 0.06, Ft = 1e-3; function Wt(e, t) { const n = (e.r / 255) ** oe, r = (e.g / 255) ** oe, i = (e.b / 255) ** oe, o = (t.r / 255) ** oe, a = (t.g / 255) ** oe, s = (t.b / 255) ** oe; let l = n * Rt + r * Vt + i * Nt, u = o * Rt + a * Vt + s * Nt; if (l <= Pe && (l += (Pe - l) ** $t), u <= Pe && (u += (Pe - u) ** $t), Math.abs(u - l) < Br) return 0; let c; if (u > l) { const v = (u ** Or - l ** Tr) * Ir; c = v < Ft ? 0 : v < Mt ? v - v * Dt * Le : v - Le; } else { const v = (u ** Ar - l ** _r) * Rr; c = v > -Ft ? 0 : v > -Mt ? v - v * Dt * Le : v + Le; } return c * 100; } function se(e) { lt(`Vuetify: ${e}`); } function Vr(e) { lt(`Vuetify error: ${e}`); } function tt(e) { return !!e && /^(#|var\(--|(rgb|hsl)a?\()/.test(e); } function Nr(e) { return tt(e) && !/^((rgb|hsl)a?\()?var\(--/.test(e); } const zt = /^(?<fn>(?:rgb|hsl)a?)\((?<values>.+)\)/, $r = { rgb: (e, t, n, r) => ({ r: e, g: t, b: n, a: r }), rgba: (e, t, n, r) => ({ r: e, g: t, b: n, a: r }), hsl: (e, t, n, r) => Ht({ h: e, s: t, l: n, a: r }), hsla: (e, t, n, r) => Ht({ h: e, s: t, l: n, a: r }), hsv: (e, t, n, r) => be({ h: e, s: t, v: n, a: r }), hsva: (e, t, n, r) => be({ h: e, s: t, v: n, a: r }) }; function ye(e) { if (typeof e == "number") return (isNaN(e) || e < 0 || e > 16777215) && se(`'${e}' is not a valid hex color`), { r: (e & 16711680) >> 16, g: (e & 65280) >> 8, b: e & 255 }; if (typeof e == "string" && zt.test(e)) { const { groups: t } = e.match(zt), { fn: n, values: r } = t, i = r.split(/,\s*/).map((o) => o.endsWith("%") && ["hsl", "hsla", "hsv", "hsva"].includes(n) ? parseFloat(o) / 100 : parseFloat(o)); return $r[n](...i); } else if (typeof e == "string") { let t = e.startsWith("#") ? e.slice(1) : e; [3, 4].includes(t.length) ? t = t.split("").map((r) => r + r).join("") : [6, 8].includes(t.length) || se(`'${e}' is not a valid hex(a) color`); const n = parseInt(t, 16); return (isNaN(n) || n < 0 || n > 4294967295) && se(`'${e}' is not a valid hex(a) color`), Mr(t); } else if (typeof e == "object") { if (He(e, ["r", "g", "b"])) return e; if (He(e, ["h", "s", "l"])) return be(dn(e)); if (He(e, ["h", "s", "v"])) return be(e); } throw new TypeError(`Invalid color: ${e == null ? e : String(e) || e.constructor.name} Expected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`); } function be(e) { const { h: t, s: n, v: r, a: i } = e, o = (s) => { const l = (s + t / 60) % 6; return r - r * n * Math.max(Math.min(l, 4 - l, 1), 0); }, a = [o(5), o(3), o(1)].map((s) => Math.round(s * 255)); return { r: a[0], g: a[1], b: a[2], a: i }; } function Ht(e) { return be(dn(e)); } function dn(e) { const { h: t, s: n, l: r, a: i } = e, o = r + n * Math.min(r, 1 - r), a = o === 0 ? 0 : 2 - 2 * r / o; return { h: t, s: a, v: o, a: i }; } function Mr(e) { e = Dr(e); let [t, n, r, i] = pr(e, 2).map((o) => parseInt(o, 16)); return i = i === void 0 ? i : i / 255, { r: t, g: n, b: r, a: i }; } function Dr(e) { return e.startsWith("#") && (e = e.slice(1)), e = e.replace(/([^0-9a-f])/gi, "F"), (e.length === 3 || e.length === 4) && (e = e.split("").map((t) => t + t).join("")), e.length !== 6 && (e = Ot(Ot(e, 6), 8, "F")), e; } function Fr(e) { const t = Math.abs(Wt(ye(0), ye(e))); return Math.abs(Wt(ye(16777215), ye(e))) > Math.min(t, 50) ? "#fff" : "#000"; } function S(e, t) { return (n) => Object.keys(e).reduce((r, i) => { const a = typeof e[i] == "object" && e[i] != null && !Array.isArray(e[i]) ? e[i] : { type: e[i] }; return n && i in n ? r[i] = { ...a, default: n[i] } : r[i] = a, t && !r[i].source && (r[i].source = t), r; }, {}); } const Se = S({ class: [String, Array, Object], style: { type: [String, Array, Object], default: null } }, "component"); function $(e, t) { const n = Xn(); if (!n) throw new Error(`[Vuetify] ${e} must be called from inside a setup function`); return n; } function Z() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "composables"; const t = $(e).type; return Q((t == null ? void 0 : t.aliasName) || (t == null ? void 0 : t.name)); } let vn = 0, Te = /* @__PURE__ */ new WeakMap(); function vt() { const e = $("getUid"); if (Te.has(e)) return Te.get(e); { const t = vn++; return Te.set(e, t), t; } } vt.reset = () => { vn = 0, Te = /* @__PURE__ */ new WeakMap(); }; function Wr(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : $("injectSelf"); const { provides: n } = t; if (n && e in n) return n[e]; } const Ie = Symbol.for("vuetify:defaults"); function mt() { const e = J(Ie); if (!e) throw new Error("[Vuetify] Could not find defaults instance"); return e; } function mn(e, t) { const n = mt(), r = A(e), i = h(() => { if (K(t == null ? void 0 : t.disabled)) return n.value; const a = K(t == null ? void 0 : t.scoped), s = K(t == null ? void 0 : t.reset), l = K(t == null ? void 0 : t.root); if (r.value == null && !(a || s || l)) return n.value; let u = ae(r.value, { prev: n.value }); if (a) return u; if (s || l) { const c = Number(s || 1 / 0); for (let v = 0; v <= c && !(!u || !("prev" in u)); v++) u = u.prev; return u && typeof l == "string" && l in u && (u = ae(ae(u, { prev: u }), u[l])), u; } return u.prev ? ae(u.prev, u) : u; }); return fe(Ie, i), i; } function zr(e, t) { var n, r; return typeof ((n = e.props) == null ? void 0 : n[t]) < "u" || typeof ((r = e.props) == null ? void 0 : r[Q(t)]) < "u"; } function Hr() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, t = arguments.length > 1 ? arguments[1] : void 0, n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : mt(); const r = $("useDefaults"); if (t = t ?? r.type.name ?? r.type.__name, !t) throw new Error("[Vuetify] Could not determine component name"); const i = h(() => { var l; return (l = n.value) == null ? void 0 : l[e._as ?? t]; }), o = new Proxy(e, { get(l, u) { var v, d, g, m, f, b, w; const c = Reflect.get(l, u); return u === "class" || u === "style" ? [(v = i.value) == null ? void 0 : v[u], c].filter((x) => x != null) : typeof u == "string" && !zr(r.vnode, u) ? ((d = i.value) == null ? void 0 : d[u]) !== void 0 ? (g = i.value) == null ? void 0 : g[u] : ((f = (m = n.value) == null ? void 0 : m.global) == null ? void 0 : f[u]) !== void 0 ? (w = (b = n.value) == null ? void 0 : b.global) == null ? void 0 : w[u] : c : c; } }), a = U(); ce(() => { if (i.value) { const l = Object.entries(i.value).filter((u) => { let [c] = u; return c.startsWith(c[0].toUpperCase()); }); a.value = l.length ? Object.fromEntries(l) : void 0; } else a.value = void 0; }); function s() { const l = Wr(Ie, r); fe(Ie, h(() => a.value ? ae((l == null ? void 0 : l.value) ?? {}, a.value) : l == null ? void 0 : l.value)); } return { props: o, provideSubDefaults: s }; } function Me(e) { if (e._setup = e._setup ?? e.setup, !e.name) return se("The component is missing an explicit name, unable to generate default prop value"), e; if (e._setup) { e.props = S(e.props ?? {}, e.name)(); const t = Object.keys(e.props).filter((n) => n !== "class" && n !== "style"); e.filterProps = function(r) { return gr(r, t); }, e.props._as = String, e.setup = function(r, i) { const o = mt(); if (!o.value) return e._setup(r, i); const { props: a, provideSubDefaults: s } = Hr(r, r._as ?? e.name, o), l = e._setup(a, i); return s(), l; }; } return e; } function Y() { let e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : !0; return (t) => (e ? Me : Ze)(t); } function gn(e) { if (typeof e.getRootNode != "function") { for (; e.parentNode; ) e = e.parentNode; return e !== document ? null : document; } const t = e.getRootNode(); return t !== document && t.getRootNode({ composed: !0 }) !== document ? null : t; } const jr = "cubic-bezier(0.4, 0, 0.2, 1)"; function Gr(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1; for (; e; ) { if (t ? qr(e) : gt(e)) return e; e = e.parentElement; } return document.scrollingElement; } function Re(e, t) { const n = []; if (t && e && !t.contains(e)) return n; for (; e && (gt(e) && n.push(e), e !== t); ) e = e.parentElement; return n; } function gt(e) { if (!e || e.nodeType !== Node.ELEMENT_NODE) return !1; const t = window.getComputedStyle(e); return t.overflowY === "scroll" || t.overflowY === "auto" && e.scrollHeight > e.clientHeight; } function qr(e) { if (!e || e.nodeType !== Node.ELEMENT_NODE) return !1; const t = window.getComputedStyle(e); return ["scroll", "auto"].includes(t.overflowY); } function Ur(e) { for (; e; ) { if (window.getComputedStyle(e).position === "fixed") return !0; e = e.offsetParent; } return !1; } function te(e) { const t = $("useRender"); t.render = e; } const hn = S({ border: [Boolean, Number, String] }, "border"); function yn(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Z(); return { borderClasses: h(() => { const r = ue(e) ? e.value : e.border, i = []; if (r === !0 || r === "") i.push(`${t}--border`); else if (typeof r == "string" || r === 0) for (const o of String(r).split(" ")) i.push(`border-${o}`); return i; }) }; } const Yr = [null, "default", "comfortable", "compact"], bn = S({ density: { type: String, default: "default", validator: (e) => Yr.includes(e) } }, "density"); function pn(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Z(); return { densityClasses: h(() => `${t}--density-${e.density}`) }; } const wn = S({ elevation: { type: [Number, String], validator(e) { const t = parseInt(e); return !isNaN(t) && t >= 0 && // Material Design has a maximum elevation of 24 // https://material.io/design/environment/elevation.html#default-elevations t <= 24; } } }, "elevation"); function Cn(e) { return { elevationClasses: h(() => { const n = ue(e) ? e.value : e.elevation, r = []; return n == null || r.push(`elevation-${n}`), r; }) }; } const Sn = S({ rounded: { type: [Boolean, Number, String], default: void 0 }, tile: Boolean }, "rounded"); function xn(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Z(); return { roundedClasses: h(() => { const r = ue(e) ? e.value : e.rounded, i = ue(e) ? e.value : e.tile, o = []; if (r === !0 || r === "") o.push(`${t}--rounded`); else if (typeof r == "string" || r === 0) for (const a of String(r).split(" ")) o.push(`rounded-${a}`); else (i || r === !1) && o.push("rounded-0"); return o; }) }; } const De = S({ tag: { type: String, default: "div" } }, "tag"), jt = Symbol.for("vuetify:theme"), xe = S({ theme: String }, "theme"); function ke(e) { $("provideTheme"); const t = J(jt, null); if (!t) throw new Error("Could not find Vuetify theme injection"); const n = h(() => e.theme ?? t.name.value), r = h(() => t.themes.value[n.value]), i = h(() => t.isDisabled ? void 0 : `v-theme--${n.value}`), o = { ...t, name: n, current: r, themeClasses: i }; return fe(jt, o), o; } function ht(e) { return dt(() => { const t = [], n = {}; if (e.value.background) if (tt(e.value.background)) { if (n.backgroundColor = e.value.background, !e.value.text && Nr(e.value.background)) { const r = ye(e.value.background); if (r.a == null || r.a === 1) { const i = Fr(r); n.color = i, n.caretColor = i; } } } else t.push(`bg-${e.value.background}`); return e.value.text && (tt(e.value.text) ? (n.color = e.value.text, n.caretColor = e.value.text) : t.push(`text-${e.value.text}`)), { colorClasses: t, colorStyles: n }; }); } function nt(e, t) { const n = h(() => ({ text: ue(e) ? e.value : null })), { colorClasses: r, colorStyles: i } = ht(n); return { textColorClasses: r, textColorStyles: i }; } function Xr(e, t) { const n = h(() => ({ background: ue(e) ? e.value : null })), { colorClasses: r, colorStyles: i } = ht(n); return { backgroundColorClasses: r, backgroundColorStyles: i }; } const Kr = ["elevated", "flat", "tonal", "outlined", "text", "plain"]; function Jr(e, t) { return p(st, null, [p("span", { key: "overlay", class: `${t}__overlay` }, null), p("span", { key: "underlay", class: `${t}__underlay` }, null)]); } const kn = S({ color: String, variant: { type: String, default: "elevated", validator: (e) => Kr.includes(e) } }, "variant"); function Zr(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Z(); const n = h(() => { const { variant: o } = K(e); return `${t}--variant-${o}`; }), { colorClasses: r, colorStyles: i } = ht(h(() => { const { variant: o, color: a } = K(e); return { [["elevated", "flat"].includes(o) ? "background" : "text"]: a }; })); return { colorClasses: r, colorStyles: i, variantClasses: n }; } const En = S({ baseColor: String, divided: Boolean, ...hn(), ...Se(), ...bn(), ...wn(), ...Sn(), ...De(), ...xe(), ...kn() }, "VBtnGroup"), Gt = Y()({ name: "VBtnGroup", props: En(), setup(e, t) { let { slots: n } = t; const { themeClasses: r } = ke(e), { densityClasses: i } = pn(e), { borderClasses: o } = yn(e), { elevationClasses: a } = Cn(e), { roundedClasses: s } = xn(e); mn({ VBtn: { height: "auto", baseColor: j(e, "baseColor"), color: j(e, "color"), density: j(e, "density"), flat: !0, variant: j(e, "variant") } }), te(() => p(e.tag, { class: ["v-btn-group", { "v-btn-group--divided": e.divided }, r.value, o.value, i.value, a.value, s.value, e.class], style: e.style }, n)); } }); function Fe(e, t) { let n; function r() { n = ut(), n.run(() => t.length ? t(() => { n == null || n.stop(), r(); }) : t()); } I(e, (i) => { i && !n ? r() : i || (n == null || n.stop(), n = void 0); }, { immediate: !0 }), q(() => { n == null || n.stop(); }); } function yt(e, t, n) { let r = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : (v) => v, i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : (v) => v; const o = $("useProxiedModel"), a = A(e[t] !== void 0 ? e[t] : n), s = Q(t), u = s !== t ? h(() => { var v, d, g, m; return e[t], !!(((v = o.vnode.props) != null && v.hasOwnProperty(t) || (d = o.vnode.props) != null && d.hasOwnProperty(s)) && ((g = o.vnode.props) != null && g.hasOwnProperty(`onUpdate:${t}`) || (m = o.vnode.props) != null && m.hasOwnProperty(`onUpdate:${s}`))); }) : h(() => { var v, d; return e[t], !!((v = o.vnode.props) != null && v.hasOwnProperty(t) && ((d = o.vnode.props) != null && d.hasOwnProperty(`onUpdate:${t}`))); }); Fe(() => !u.value, () => { I(() => e[t], (v) => { a.value = v; }); }); const c = h({ get() { const v = e[t]; return r(u.value ? v : a.value); }, set(v) { const d = i(v), g = rn(u.value ? e[t] : a.value); g === d || r(g) === v || (a.value = d, o == null || o.emit(`update:${t}`, d)); } }); return Object.defineProperty(c, "externalValue", { get: () => u.value ? e[t] : a.value }), c; } const Qr = S({ modelValue: { type: null, default: void 0 }, multiple: Boolean, mandatory: [Boolean, String], max: Number, selectedClass: String, disabled: Boolean }, "group"), ei = S({ value: null, disabled: Boolean, selectedClass: String }, "group-item"); function ti(e, t) { let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : !0; const r = $("useGroupItem"); if (!r) throw new Error("[Vuetify] useGroupItem composable must be used inside a component setup function"); const i = vt(); fe(Symbol.for(`${t.description}:id`), i); const o = J(t, null); if (!o) { if (!n) return o; throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${t.description}`); } const a = j(e, "value"), s = h(() => !!(o.disabled.value || e.disabled)); o.register({ id: i, value: a, disabled: s }, r), Ce(() => { o.unregister(i); }); const l = h(() => o.isSelected(i)), u = h(() => o.items.value[0].id === i), c = h(() => o.items.value[o.items.value.length - 1].id === i), v = h(() => l.value && [o.selectedClass.value, e.selectedClass]); return I(l, (d) => { r.emit("group:selected", { value: d }); }, { flush: "sync" }), { id: i, isSelected: l, isFirst: u, isLast: c, toggle: () => o.select(i, !l.value), select: (d) => o.select(i, d), selectedClass: v, value: a, disabled: s, group: o }; } function ni(e, t) { let n = !1; const r = le([]), i = yt(e, "modelValue", [], (d) => d == null ? [] : Pn(r, br(d)), (d) => { const g = ii(r, d); return e.multiple ? g : g[0]; }), o = $("useGroup"); function a(d, g) { const m = d, f = Symbol.for(`${t.description}:id`), w = he(f, o == null ? void 0 : o.vnode).indexOf(g); K(m.value) == null && (m.value = w, m.useIndexAsValue = !0), w > -1 ? r.splice(w, 0, m) : r.push(m); } function s(d) { if (n) return; l(); const g = r.findIndex((m) => m.id === d); r.splice(g, 1); } function l() { const d = r.find((g) => !g.disabled); d && e.mandatory === "force" && !i.value.length && (i.value = [d.id]); } ct(() => { l(); }), Ce(() => { n = !0; }), Kn(() => { for (let d = 0; d < r.length; d++) r[d].useIndexAsValue && (r[d].value = d); }); function u(d, g) { const m = r.find((f) => f.id === d); if (!(g && (m != null && m.disabled))) if (e.multiple) { const f = i.value.slice(), b = f.findIndex((x) => x === d), w = ~b; if (g = g ?? !w, w && e.mandatory && f.length <= 1 || !w && e.max != null && f.length + 1 > e.max) return; b < 0 && g ? f.push(d) : b >= 0 && !g && f.splice(b, 1), i.value = f; } else { const f = i.value.includes(d); if (e.mandatory && f) return; i.value = g ?? !f ? [d] : []; } } function c(d) { if (e.multiple && se('This method is not supported when using "multiple" prop'), i.value.length) { const g = i.value[0], m = r.findIndex((w) => w.id === g); let f = (m + d) % r.length, b = r[f]; for (; b.disabled && f !== m; ) f = (f + d) % r.length, b = r[f]; if (b.disabled) return; i.value = [r[f].id]; } else { const g = r.find((m) => !m.disabled); g && (i.value = [g.id]); } } const v = { register: a, unregister: s, selected: i, select: u, disabled: j(e, "disabled"), prev: () => c(r.length - 1), next: () => c(1), isSelected: (d) => i.value.includes(d), selectedClass: h(() => e.selectedClass), items: h(() => r), getItemIndex: (d) => ri(r, d) }; return fe(t, v), v; } function ri(e, t) { const n = Pn(e, [t]); return n.length ? e.findIndex((r) => r.id === n[0]) : -1; } function Pn(e, t) { const n = []; return t.forEach((r) => { const i = e.find((a) => ft(r, a.value)), o = e[r]; (i == null ? void 0 : i.value) != null ? n.push(i.id) : o != null && n.push(o.id); }), n; } function ii(e, t) { const n = []; return t.forEach((r) => { const i = e.findIndex((o) => o.id === r); if (~i) { const o = e[i]; n.push(o.value != null ? o.value : i); } }), n; } const Ln = Symbol.for("vuetify:v-btn-toggle"), oi = S({ ...En(), ...Qr() }, "VBtnToggle"); Y()({ name: "VBtnToggle", props: oi(), emits: { "update:modelValue": (e) => !0 }, setup(e, t) { let { slots: n } = t; const { isSelected: r, next: i, prev: o, select: a, selected: s } = ni(e, Ln); return te(() => { const l = Gt.filterProps(e); return p(Gt, z({ class: ["v-btn-toggle", e.class] }, l, { style: e.style }), { default: () => { var u; return [(u = n.default) == null ? void 0 : u.call(n, { isSelected: r, next: i, prev: o, select: a, selected: s })]; } }); }), { next: i, prev: o, select: a }; } }); const ai = S({ defaults: Object, disabled: Boolean, reset: [Number, String], root: [Boolean, String], scoped: Boolean }, "VDefaultsProvider"), qe = Y(!1)({ name: "VDefaultsProvider", props: ai(), setup(e, t) { let { slots: n } = t; const { defaults: r, disabled: i, reset: o, root: a, scoped: s } = nn(e); return mn(r, { reset: o, root: a, scoped: s, disabled: i }), () => { var l; return (l = n.default) == null ? void 0 : l.call(n); }; } }), Ve = [String, Function, Object, Array], si = Symbol.for("vuetify:icons"), We = S({ icon: { type: Ve }, // Could not remove this and use makeTagProps, types complained because it is not required tag: { type: String, required: !0 } }, "icon"), qt = Y()({ name: "VComponentIcon", props: We(), setup(e, t) { let { slots: n } = t; return () => { const r = e.icon; return p(e.tag, null, { default: () => { var i; return [e.icon ? p(r, null, null) : (i = n.default) == null ? void 0 : i.call(n)]; } }); }; } }), li = Me({ name: "VSvgIcon", inheritAttrs: !1, props: We(), setup(e, t) { let { attrs: n } = t; return () => p(e.tag, z(n, { style: null }), { default: () => [p("svg", { class: "v-icon__svg", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", role: "img", "aria-hidden": "true" }, [Array.isArray(e.icon) ? e.icon.map((r) => Array.isArray(r) ? p("path", { d: r[0], "fill-opacity": r[1] }, null) : p("path", { d: r }, null)) : p("path", { d: e.icon }, null)])] }); } }); Me({ name: "VLigatureIcon", props: We(), setup(e) { return () => p(e.tag, null, { default: () => [e.icon] }); } }); Me({ name: "VClassIcon", props: We(), setup(e) { return () => p(e.tag, { class: e.icon }, null); } }); const ui = (e) => { const t = J(si); if (!t) throw new Error("Missing Vuetify Icons provide!"); return { iconData: h(() => { var l; const r = K(e); if (!r) return { component: qt }; let i = r; if (typeof i == "string" && (i = i.trim(), i.startsWith("$") && (i = (l = t.aliases) == null ? void 0 : l[i.slice(1)])), i || se(`Could not find aliased icon "${r}"`), Array.isArray(i)) return { component: li, icon: i }; if (typeof i != "string") return { component: qt, icon: i }; const o = Object.keys(t.sets).find((u) => typeof i == "string" && i.startsWith(`${u}:`)), a = o ? i.slice(o.length + 1) : i; return { component: t.sets[o ?? t.defaultSet].component, icon: a }; }) }; }, ci = ["x-small", "small", "default", "large", "x-large"], bt = S({ size: { type: [String, Number], default: "default" } }, "size"); function pt(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Z(); return dt(() => { let n, r; return Be(ci, e.size) ? n = `${t}--size-${e.size}` : e.size && (r = { width: T(e.size), height: T(e.size) }), { sizeClasses: n, sizeStyles: r }; }); } const fi = S({ color: String, disabled: Boolean, start: Boolean, end: Boolean, icon: Ve, ...Se(), ...bt(), ...De({ tag: "i" }), ...xe() }, "VIcon"), _e = Y()({ name: "VIcon", props: fi(), setup(e, t) { let { attrs: n, slots: r } = t; const i = A(), { themeClasses: o } = ke(e), { iconData: a } = ui(h(() => i.value || e.icon)), { sizeClasses: s } = pt(e), { textColorClasses: l, textColorStyles: u } = nt(j(e, "color")); return te(() => { var d, g; const c = (d = r.default) == null ? void 0 : d.call(r); c && (i.value = (g = un(c).filter((m) => m.type === Jn && m.children && typeof m.children == "string")[0]) == null ? void 0 : g.children); const v = !!(n.onClick || n.onClickOnce); return p(a.value.component, { tag: e.tag, icon: a.value.icon, class: ["v-icon", "notranslate", o.value, s.value, l.value, { "v-icon--clickable": v, "v-icon--disabled": e.disabled, "v-icon--start": e.start, "v-icon--end": e.end }, e.class], style: [s.value ? void 0 : { fontSize: T(e.size), height: T(e.size), width: T(e.size) }, u.value, e.style], role: v ? "button" : void 0, "aria-hidden": !v, tabindex: v ? e.disabled ? -1 : 0 : void 0 }, { default: () => [c] }); }), {}; } }); function di(e, t) { const n = A(), r = U(!1); if (dr) { const i = new IntersectionObserver((o) => { r.value = !!o.find((a) => a.isIntersecting); }, t); Ce(() => { i.disconnect(); }), I(n, (o, a) => { a && (i.unobserve(a), r.value = !1), o && i.observe(o); }, { flush: "post" }); } return { intersectionRef: n, isIntersecting: r }; } function vi(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "content"; const n = Qe(), r = A(); if (G) { const i = new ResizeObserver((o) => { o.length && (t === "content" ? r.value = o[0].contentRect : r.value = o[0].target.getBoundingClientRect()); }); Ce(() => { i.disconnect(); }), I(() => n.el, (o, a) => { a && (i.unobserve(a), r.value = void 0), o && i.observe(o); }, { flush: "post" }); } return { resizeRef: n, contentRect: on(r) }; } const mi = S({ bgColor: String, color: String, indeterminate: [Boolean, String], modelValue: { type: [Number, String], default: 0 }, rotate: { type: [Number, String], default: 0 }, width: { type: [Number, String], default: 4 }, ...Se(), ...bt(), ...De({ tag: "div" }), ...xe() }, "VProgressCircular"), gi = Y()({ name: "VProgressCircular", props: mi(), setup(e, t) { let { slots: n } = t; const r = 20, i = 2 * Math.PI * r, o = A(), { themeClasses: a } = ke(e), { sizeClasses: s, sizeStyles: l } = pt(e), { textColorClasses: u, textColorStyles: c } = nt(j(e, "color")), { textColorClasses: v, textColorStyles: d } = nt(j(e, "bgColor")), { intersectionRef: g, isIntersecting: m } = di(), { resizeRef: f, contentRect: b } = vi(), w = h(() => Math.max(0, Math.min(100, parseFloat(e.modelValue)))), x = h(() => Number(e.width)), P = h(() => l.value ? Number(e.size) : b.value ? b.value.width : Math.max(x.value, 32)), B = h(() => r / (1 - x.value / P.value) * 2), R = h(() => x.value / P.value * B.value), V = h(() => T((100 - w.value) / 100 * i)); return ce(() => { g.value = o.value, f.value = o.value; }), te(() => p(e.tag, { ref: o, class: ["v-progress-circular", { "v-progress-circular--indeterminate": !!e.indeterminate, "v-progress-circular--visible": m.value, "v-progress-circular--disable-shrink": e.indeterminate === "disable-shrink" }, a.value, s.value, u.value, e.class], style: [l.value, c.value, e.style], role: "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "aria-valuenow": e.indeterminate ? void 0 : w.value }, { default: () => [p("svg", { style: { transform: `rotate(calc(-90deg + ${Number(e.rotate)}deg))` }, xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${B.value} ${B.value}` }, [p("circle", { class: ["v-progress-circular__underlay", v.value], style: d.value, fill: "transparent", cx: "50%", cy: "50%", r, "stroke-width": R.value, "stroke-dasharray": i, "stroke-dashoffset": 0 }, null), p("circle", { class: "v-progress-circular__overlay", fill: "transparent", cx: "50%", cy: "50%", r, "stroke-width": R.value, "stroke-dasharray": i, "stroke-dashoffset": V.value }, null)]), n.default && p("div", { class: "v-progress-circular__content" }, [n.default({ value: w.value })])] })), {}; } }), On = S({ height: [Number, String], maxHeight: [Number, String], maxWidth: [Number, String], minHeight: [Number, String], minWidth: [Number, String], width: [Number, String] }, "dimension"); function Tn(e) { return { dimensionStyles: h(() => { const n = {}, r = T(e.height), i = T(e.maxHeight), o = T(e.maxWidth), a = T(e.minHeight), s = T(e.minWidth), l = T(e.width); return r != null && (n.height = r), i != null && (n.maxHeight = i), o != null && (n.maxWidth = o), a != null && (n.minHeight = a), s != null && (n.minWidth = s), l != null && (n.width = l), n; }) }; } const hi = Symbol.for("vuetify:locale"); function _n() { const e = J(hi); if (!e) throw new Error("[Vuetify] Could not find injected rtl instance"); return { isRtl: e.isRtl, rtlClasses: e.rtlClasses }; } const Ut = { center: "center", top: "bottom", bottom: "top", left: "right", right: "left" }, yi = S({ location: String }, "location"); function bi(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !1, n = arguments.length > 2 ? arguments[2] : void 0; const { isRtl: r } = _n(); return { locationStyles: h(() => { if (!e.location) return {}; const { side: o, align: a } = et(e.location.split(" ").length > 1 ? e.location : `${e.location} center`, r.value); function s(u) { return n ? n(u) : 0; } const l = {}; return o !== "center" && (t ? l[Ut[o]] = `calc(100% - ${s(o)}px)` : l[o] = 0), a !== "center" ? t ? l[Ut[a]] = `calc(100% - ${s(a)}px)` : l[a] = 0 : (o === "center" ? l.top = l.left = "50%" : l[{ top: "left", bottom: "left", left: "top", right: "top" }[o]] = "50%", l.transform = { top: "translateX(-50%)", bottom: "translateX(-50%)", left: "translateY(-50%)", right: "translateY(-50%)", center: "translate(-50%, -50%)" }[o]), l; }) }; } const pi = S({ loading: [Boolean, String] }, "loader"); function wi(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Z(); return { loaderClasses: h(() => ({ [`${t}--loading`]: e.loading })) }; } const Ci = ["static", "relative", "fixed", "absolute", "sticky"], Si = S({ position: { type: String, validator: ( /* istanbul ignore next */ (e) => Ci.includes(e) ) } }, "position"); function xi(e) { let t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : Z(); return { positionClasses: h(() => e.position ? `${t}--${e.position}` : void 0) }; } function ki() { const e = $("useRoute"); return h(() => { var t; return (t = e == null ? void 0 : e.proxy) == null ? void 0 : t.$route; }); } function Ei() { var e, t; return (t = (e = $("useRouter")) == null ? void 0 : e.proxy) == null ? void 0 : t.$router; } function Pi(e, t) { var v, d; const n = Zn("RouterLink"), r = h(() => !!(e.href || e.to)), i = h(() => (r == null ? void 0 : r.value) || Tt(t, "click") || Tt(e, "click")); if (typeof n == "string" || !("useLink" in n)) { const g = j(e, "href"); return { isLink: r, isClickable: i, href: g, linkProps: le({ href: g }) }; } const o = h(() => ({ ...e, to: j(() => e.to || "") })), a = n.useLink(o.value), s = h(() => e.to ? a : void 0), l = ki(), u = h(() => { var g, m, f; return s.value ? e.exact ? l.value ? ((f = s.value.isExactActive) == null ? void 0 : f.value) && ft(s.value.route.value.query, l.value.query) : ((m = s.value.isExactActive) == null ? void 0 : m.value) ?? !1 : ((g = s.value.isActive) == null ? void 0 : g.value) ?? !1 : !1; }), c = h(() => { var g; return e.to ? (g = s.value) == null ? void 0 : g.route.value.href : e.href; }); return { isLink: r, isClickable: i, isActive: u, route: (v = s.value) == null ? void 0 : v.route, navigate: (d = s.value) == null ? void 0 : d.navigate, href: c, linkProps: le({ href: c, "aria-current": h(() => u.value ? "page" : void 0) }) }; } const Li = S({ href: String, replace: Boolean, to: [String, Object], exact: Boolean }, "router"); let Ue = !1; function Oi(e, t) { let n = !1, r, i; G && (de(() => { window.addEventListener("popstate", o), r = e == null ? void 0 : e.beforeEach((a, s, l) => { Ue ? n ? t(l) : l() : setTimeout(() => n ? t(l) : l()), Ue = !0; }), i = e == null ? void 0 : e.afterEach(() => { Ue = !1; }); }), q(() => { window.removeEventListener("popstate", o), r == null || r(), i == null || i(); })); function o(a) { var s; (s = a.state) != null && s.replaced || (n = !0, setTimeout(() => n = !1)); } } function Ti(e, t) { I(() => { var n; return (n = e.isActive) == null ? void 0 : n.value; }, (n) => { e.isLink.value && n && t && de(() => { t(!0); }); }, { immediate: !0 }); } const rt = Symbol("rippleStop"), _i = 80; function Yt(e, t) { e.style.transform = t, e.style.webkitTransform = t; } function it(e) { return e.constructor.name === "TouchEvent"; } function An(e) { return e.constructor.name === "KeyboardEvent"; } const Ai = function(e, t) { var v; let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}, r = 0, i = 0; if (!An(e)) { const d = t.getBoundingClientRect(), g = it(e) ? e.touches[e.touches.length - 1] : e; r = g.clientX - d.left, i = g.clientY - d.top; } let o = 0, a = 0.3; (v = t._ripple) != null && v.circle ? (a = 0.15, o = t.clientWidth / 2, o = n.center ? o : o + Math.sqrt((r - o) ** 2 + (i - o) ** 2) / 4) : o = Math.sqrt(t.clientWidth ** 2 + t.clientHeight ** 2) / 2; const s = `${(t.clientWidth - o * 2) / 2}px`, l = `${(t.clientHeight - o * 2) / 2}px`, u = n.center ? s : `${r - o}px`, c = n.center ? l : `${i - o}px`; return { radius: o, scale: a, x: u, y: c, centerX: s, centerY: l }; }, Ne = { /* eslint-disable max-statements */ show(e, t) { var g; let n = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; if (!((g = t == null ? void 0 : t._ripple) != null && g.enabled)) return; const r = document.createElement("span"), i = document.createElement("span"); r.appendChild(i), r.className = "v-ripple__container", n.class && (r.className += ` ${n.class}`); const { radius: o, scale: a, x: s, y: l, centerX: u, centerY: c } = Ai(e, t, n), v = `${o * 2}px`; i.className = "v-ripple__animation", i.style.width = v, i.style.height = v, t.appendChild(r); const d = window.getComputedStyle(t); d && d.position === "static" && (t.style.position = "relative", t.dataset.previousPosition = "static"), i.classList.add("v-ripple__animation--enter"), i.classList.add("v-ripple__animation--visible"), Yt(i, `translate(${s}, ${l}) scale3d(${a},${a},${a})`), i.dataset.activated = String(performance.now()), setTimeout(() => { i.classList.remove("v-ripple__animation--enter"), i.classList.add("v-ripple__animation--in"), Yt(i, `translate(${u}, ${c}) scale3d(1,1,1)`); }, 0); }, hide(e) { var o; if (!((o = e == null ? void 0 : e._ripple) != null && o.enabled)) return; const t = e.getElementsByClassName("v-ripple__animation"); if (t.length === 0) return; const n = t[t.length - 1]; if (n.dataset.isHiding) return; n.dataset.isHiding = "true"; const r = performance.now() - Number(n.dataset.activated), i = Math.max(250 - r, 0); setTimeout(() => { n.classList.remove("v-ripple__animation--in"), n.classList.add("v-ripple__animation--out"), setTimeout(() => { var s; e.getElementsByClassName("v-ripple__animation").length === 1 && e.dataset.previousPosition && (e.style.position = e.dataset.previousPosition, delete e.dataset.previousPosition), ((s = n.parentNode) == null ? void 0 : s.parentNode) === e && e.removeChild(n.parentNode); }, 300); }, i); } }; function Bn(e) { return typeof e > "u" || !!e; } function pe(e) { const t = {}, n = e.currentTarget; if (!(!(n != null && n._ripple) || n._ripple.touched || e[rt])) { if (e[rt] = !0, it(e)) n._ripple.touched = !0, n._ripple.isTouch = !0; else if (n._ripple.isTouch) return; if (t.center = n._ripple.centered || An(e), n._ripple.class && (t.class = n._ripple.class), it(e)) { if (n._ripple.showTimerCommit) return; n._ripple.showTimerCommit = () => { Ne.show(e, n, t); }, n._ripple.showTimer = window.setTimeout(() => { var r; (r = n == null ? void 0 : n._ripple) != null && r.showTimerCommit && (n._ripple.showTimerCommit(), n._ripple.showTimerCommit = null); }, _i); } else Ne.show(e, n, t); } } function Xt(e) { e[rt] = !0; } function W(e) { const t = e.currentTarget; if (t != null && t._ripple) { if (window.clearTimeout(t._ripple.showTimer), e.type === "touchend" && t._ripple.showTimerCommit) { t._ripple.showTimerCommit(), t._ripple.showTimerCommit = null, t._ripple.showTimer = window.setTimeout(() => { W(e); }); return; } window.setTimeout(() => { t._ripple && (t._ripple.touched = !1); }), Ne.hide(t); } } function In(e) { const t = e.currentTarget; t != null && t._ripple && (t._ripple.showTimerCommit && (t._ripple.showTimerCommit = null), window.clearTimeout(t._ripple.showTimer)); } let we = !