UNPKG

@jsburbano-dev/payflux

Version:

A modern and customizable component library built with Vue 3 and Tailwind CSS, designed for building financial dashboards and modern web apps with ease.

1,764 lines 223 kB
import { defineComponent as J, createElementBlock as st, openBlock as N, normalizeClass as rt, renderSlot as ti, computed as $, normalizeStyle as un, createBlock as Lt, createElementVNode as w, resolveDynamicComponent as gn, toDisplayString as Y, ref as ks, withCtx as ei, Fragment as Ss, renderList as Ms, shallowRef as Cs, h as Xe, onMounted as pn, onUnmounted as mn, watch as bn, toRaw as Ue, nextTick as _n, version as xn, isProxy as Ds, unref as yn, createVNode as vn, createCommentVNode as Os } from "vue"; const ii = /* @__PURE__ */ J({ __name: "Card", props: { direction: { default: "row" }, class: { default: "" }, isDark: { type: Boolean, default: !1 } }, setup(i) { const t = i; return (e, s) => (N(), st("article", { class: rt([ "rounded-2xl p-6 bg-white dark:bg-zinc-900 shadow-md text-zinc-800 dark:text-white flex items-center justify-between gap-6 transition-colors flex-1", e.direction === "column" ? "flex-col" : "flex-row", t.class, t.isDark ? "bg-zinc-900 text-zinc-100" : "bg-white text-zinc-900" ]) }, [ ti(e.$slots, "default") ], 2)); } }); function Ie(i, t) { const e = { yellow: { light: "bg-yellow-50 text-yellow-500", dark: "bg-yellow-500 text-yellow-50" }, blue: { light: "bg-blue-50 text-blue-500", dark: "bg-blue-500 text-blue-50" }, indigo: { light: "bg-indigo-50 text-indigo-500", dark: "bg-indigo-500 text-indigo-50" }, green: { light: "bg-green-50 text-green-500", dark: "bg-green-500 text-green-50" }, zinc: { light: "bg-zinc-50 text-zinc-500", dark: "bg-zinc-950 text-zinc-50" } }, n = e[i ?? "zinc"] ?? e.zinc; return { classes: t ? n.dark : n.light }; } const wn = /* @__PURE__ */ J({ __name: "IconCard", props: { icon: {}, label: {}, colorName: {}, isActive: { type: Boolean }, isDark: { type: Boolean }, height: {}, width: {}, onClick: { type: Function } }, emits: ["click"], setup(i, { emit: t }) { const e = i, s = t, n = $(() => [ "flex flex-col items-center justify-center rounded-xl p-4 transition-colors duration-200", Ie(e.colorName, e.isDark).classes, e.isActive ? "ring-2 ring-offset-2 ring-primary-600" : "" ].filter(Boolean).join(" ")), o = $(() => ["w-6 h-6 mb-2", Ie(e.colorName, e.isDark).classes].filter(Boolean).join(" ")), r = $(() => ["text-sm font-semibold text-center", Ie(e.colorName, e.isDark).classes].filter(Boolean).join(" ")), a = () => { s("click"), e.onClick?.(); }; return (l, c) => (N(), st("button", { type: "button", class: rt(n.value), onClick: a, style: un({ width: l.width ? l.width + "px" : "100%", height: l.height ? l.height + "px" : "96px" }) }, [ (N(), Lt(gn(l.icon), { class: rt(o.value) }, null, 8, ["class"])), w("span", { class: rt(r.value) }, Y(l.label), 3) ], 6)); } }), kn = { class: "text-xl font-bold text-zinc-900 dark:text-white self-start" }, Sn = { class: /* @__PURE__ */ rt(["grid gap-4 grid-cols-2 sm:grid-cols-3 md:grid-cols-4"]) }, Wl = /* @__PURE__ */ J({ __name: "GridIconCard", props: { cards: {}, isDark: { type: Boolean, default: !1 }, selectable: { type: Boolean, default: !0 }, title: { default: "Services" } }, emits: ["cardClick"], setup(i, { emit: t }) { const e = i, s = t, n = ks(null), o = (r) => { e.selectable && (n.value = r.label), s("cardClick", r); }; return (r, a) => (N(), Lt(ii, { direction: "column" }, { default: ei(() => [ w("h2", kn, Y(r.title || "Available Balance"), 1), w("div", Sn, [ (N(!0), st(Ss, null, Ms(r.cards, (l) => (N(), Lt(wn, { key: l.label, icon: l.icon, label: l.label, colorName: l.colorName, isDark: r.isDark, isActive: r.selectable && n.value === l.label, onClick: () => o(l), height: 96, width: 96 }, null, 8, ["icon", "label", "colorName", "isDark", "isActive", "onClick"]))), 128)) ]) ]), _: 1 })); } }); /*! * @kurkle/color v0.3.4 * https://github.com/kurkle/color#readme * (c) 2024 Jukka Kurkela * Released under the MIT License */ function ne(i) { return i + 0.5 | 0; } const mt = (i, t, e) => Math.max(Math.min(i, e), t); function Yt(i) { return mt(ne(i * 2.55), 0, 255); } function bt(i) { return mt(ne(i * 255), 0, 255); } function gt(i) { return mt(ne(i / 2.55) / 100, 0, 1); } function _i(i) { return mt(ne(i * 100), 0, 100); } const tt = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15 }, Ke = [..."0123456789ABCDEF"], Mn = (i) => Ke[i & 15], Cn = (i) => Ke[(i & 240) >> 4] + Ke[i & 15], re = (i) => (i & 240) >> 4 === (i & 15), Dn = (i) => re(i.r) && re(i.g) && re(i.b) && re(i.a); function On(i) { var t = i.length, e; return i[0] === "#" && (t === 4 || t === 5 ? e = { r: 255 & tt[i[1]] * 17, g: 255 & tt[i[2]] * 17, b: 255 & tt[i[3]] * 17, a: t === 5 ? tt[i[4]] * 17 : 255 } : (t === 7 || t === 9) && (e = { r: tt[i[1]] << 4 | tt[i[2]], g: tt[i[3]] << 4 | tt[i[4]], b: tt[i[5]] << 4 | tt[i[6]], a: t === 9 ? tt[i[7]] << 4 | tt[i[8]] : 255 })), e; } const An = (i, t) => i < 255 ? t(i) : ""; function Pn(i) { var t = Dn(i) ? Mn : Cn; return i ? "#" + t(i.r) + t(i.g) + t(i.b) + An(i.a, t) : void 0; } const Tn = /^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/; function As(i, t, e) { const s = t * Math.min(e, 1 - e), n = (o, r = (o + i / 30) % 12) => e - s * Math.max(Math.min(r - 3, 9 - r, 1), -1); return [n(0), n(8), n(4)]; } function Rn(i, t, e) { const s = (n, o = (n + i / 60) % 6) => e - e * t * Math.max(Math.min(o, 4 - o, 1), 0); return [s(5), s(3), s(1)]; } function zn(i, t, e) { const s = As(i, 1, 0.5); let n; for (t + e > 1 && (n = 1 / (t + e), t *= n, e *= n), n = 0; n < 3; n++) s[n] *= 1 - t - e, s[n] += t; return s; } function Ln(i, t, e, s, n) { return i === n ? (t - e) / s + (t < e ? 6 : 0) : t === n ? (e - i) / s + 2 : (i - t) / s + 4; } function si(i) { const e = i.r / 255, s = i.g / 255, n = i.b / 255, o = Math.max(e, s, n), r = Math.min(e, s, n), a = (o + r) / 2; let l, c, h; return o !== r && (h = o - r, c = a > 0.5 ? h / (2 - o - r) : h / (o + r), l = Ln(e, s, n, h, o), l = l * 60 + 0.5), [l | 0, c || 0, a]; } function ni(i, t, e, s) { return (Array.isArray(t) ? i(t[0], t[1], t[2]) : i(t, e, s)).map(bt); } function oi(i, t, e) { return ni(As, i, t, e); } function En(i, t, e) { return ni(zn, i, t, e); } function In(i, t, e) { return ni(Rn, i, t, e); } function Ps(i) { return (i % 360 + 360) % 360; } function Fn(i) { const t = Tn.exec(i); let e = 255, s; if (!t) return; t[5] !== s && (e = t[6] ? Yt(+t[5]) : bt(+t[5])); const n = Ps(+t[2]), o = +t[3] / 100, r = +t[4] / 100; return t[1] === "hwb" ? s = En(n, o, r) : t[1] === "hsv" ? s = In(n, o, r) : s = oi(n, o, r), { r: s[0], g: s[1], b: s[2], a: e }; } function Bn(i, t) { var e = si(i); e[0] = Ps(e[0] + t), e = oi(e), i.r = e[0], i.g = e[1], i.b = e[2]; } function Hn(i) { if (!i) return; const t = si(i), e = t[0], s = _i(t[1]), n = _i(t[2]); return i.a < 255 ? `hsla(${e}, ${s}%, ${n}%, ${gt(i.a)})` : `hsl(${e}, ${s}%, ${n}%)`; } const xi = { x: "dark", Z: "light", Y: "re", X: "blu", W: "gr", V: "medium", U: "slate", A: "ee", T: "ol", S: "or", B: "ra", C: "lateg", D: "ights", R: "in", Q: "turquois", E: "hi", P: "ro", O: "al", N: "le", M: "de", L: "yello", F: "en", K: "ch", G: "arks", H: "ea", I: "ightg", J: "wh" }, yi = { OiceXe: "f0f8ff", antiquewEte: "faebd7", aqua: "ffff", aquamarRe: "7fffd4", azuY: "f0ffff", beige: "f5f5dc", bisque: "ffe4c4", black: "0", blanKedOmond: "ffebcd", Xe: "ff", XeviTet: "8a2be2", bPwn: "a52a2a", burlywood: "deb887", caMtXe: "5f9ea0", KartYuse: "7fff00", KocTate: "d2691e", cSO: "ff7f50", cSnflowerXe: "6495ed", cSnsilk: "fff8dc", crimson: "dc143c", cyan: "ffff", xXe: "8b", xcyan: "8b8b", xgTMnPd: "b8860b", xWay: "a9a9a9", xgYF: "6400", xgYy: "a9a9a9", xkhaki: "bdb76b", xmagFta: "8b008b", xTivegYF: "556b2f", xSange: "ff8c00", xScEd: "9932cc", xYd: "8b0000", xsOmon: "e9967a", xsHgYF: "8fbc8f", xUXe: "483d8b", xUWay: "2f4f4f", xUgYy: "2f4f4f", xQe: "ced1", xviTet: "9400d3", dAppRk: "ff1493", dApskyXe: "bfff", dimWay: "696969", dimgYy: "696969", dodgerXe: "1e90ff", fiYbrick: "b22222", flSOwEte: "fffaf0", foYstWAn: "228b22", fuKsia: "ff00ff", gaRsbSo: "dcdcdc", ghostwEte: "f8f8ff", gTd: "ffd700", gTMnPd: "daa520", Way: "808080", gYF: "8000", gYFLw: "adff2f", gYy: "808080", honeyMw: "f0fff0", hotpRk: "ff69b4", RdianYd: "cd5c5c", Rdigo: "4b0082", ivSy: "fffff0", khaki: "f0e68c", lavFMr: "e6e6fa", lavFMrXsh: "fff0f5", lawngYF: "7cfc00", NmoncEffon: "fffacd", ZXe: "add8e6", ZcSO: "f08080", Zcyan: "e0ffff", ZgTMnPdLw: "fafad2", ZWay: "d3d3d3", ZgYF: "90ee90", ZgYy: "d3d3d3", ZpRk: "ffb6c1", ZsOmon: "ffa07a", ZsHgYF: "20b2aa", ZskyXe: "87cefa", ZUWay: "778899", ZUgYy: "778899", ZstAlXe: "b0c4de", ZLw: "ffffe0", lime: "ff00", limegYF: "32cd32", lRF: "faf0e6", magFta: "ff00ff", maPon: "800000", VaquamarRe: "66cdaa", VXe: "cd", VScEd: "ba55d3", VpurpN: "9370db", VsHgYF: "3cb371", VUXe: "7b68ee", VsprRggYF: "fa9a", VQe: "48d1cc", VviTetYd: "c71585", midnightXe: "191970", mRtcYam: "f5fffa", mistyPse: "ffe4e1", moccasR: "ffe4b5", navajowEte: "ffdead", navy: "80", Tdlace: "fdf5e6", Tive: "808000", TivedBb: "6b8e23", Sange: "ffa500", SangeYd: "ff4500", ScEd: "da70d6", pOegTMnPd: "eee8aa", pOegYF: "98fb98", pOeQe: "afeeee", pOeviTetYd: "db7093", papayawEp: "ffefd5", pHKpuff: "ffdab9", peru: "cd853f", pRk: "ffc0cb", plum: "dda0dd", powMrXe: "b0e0e6", purpN: "800080", YbeccapurpN: "663399", Yd: "ff0000", Psybrown: "bc8f8f", PyOXe: "4169e1", saddNbPwn: "8b4513", sOmon: "fa8072", sandybPwn: "f4a460", sHgYF: "2e8b57", sHshell: "fff5ee", siFna: "a0522d", silver: "c0c0c0", skyXe: "87ceeb", UXe: "6a5acd", UWay: "708090", UgYy: "708090", snow: "fffafa", sprRggYF: "ff7f", stAlXe: "4682b4", tan: "d2b48c", teO: "8080", tEstN: "d8bfd8", tomato: "ff6347", Qe: "40e0d0", viTet: "ee82ee", JHt: "f5deb3", wEte: "ffffff", wEtesmoke: "f5f5f5", Lw: "ffff00", LwgYF: "9acd32" }; function Wn() { const i = {}, t = Object.keys(yi), e = Object.keys(xi); let s, n, o, r, a; for (s = 0; s < t.length; s++) { for (r = a = t[s], n = 0; n < e.length; n++) o = e[n], a = a.replace(o, xi[o]); o = parseInt(yi[r], 16), i[a] = [o >> 16 & 255, o >> 8 & 255, o & 255]; } return i; } let ae; function jn(i) { ae || (ae = Wn(), ae.transparent = [0, 0, 0, 0]); const t = ae[i.toLowerCase()]; return t && { r: t[0], g: t[1], b: t[2], a: t.length === 4 ? t[3] : 255 }; } const Nn = /^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/; function Vn(i) { const t = Nn.exec(i); let e = 255, s, n, o; if (t) { if (t[7] !== s) { const r = +t[7]; e = t[8] ? Yt(r) : mt(r * 255, 0, 255); } return s = +t[1], n = +t[3], o = +t[5], s = 255 & (t[2] ? Yt(s) : mt(s, 0, 255)), n = 255 & (t[4] ? Yt(n) : mt(n, 0, 255)), o = 255 & (t[6] ? Yt(o) : mt(o, 0, 255)), { r: s, g: n, b: o, a: e }; } } function $n(i) { return i && (i.a < 255 ? `rgba(${i.r}, ${i.g}, ${i.b}, ${gt(i.a)})` : `rgb(${i.r}, ${i.g}, ${i.b})`); } const Fe = (i) => i <= 31308e-7 ? i * 12.92 : Math.pow(i, 1 / 2.4) * 1.055 - 0.055, Pt = (i) => i <= 0.04045 ? i / 12.92 : Math.pow((i + 0.055) / 1.055, 2.4); function Yn(i, t, e) { const s = Pt(gt(i.r)), n = Pt(gt(i.g)), o = Pt(gt(i.b)); return { r: bt(Fe(s + e * (Pt(gt(t.r)) - s))), g: bt(Fe(n + e * (Pt(gt(t.g)) - n))), b: bt(Fe(o + e * (Pt(gt(t.b)) - o))), a: i.a + e * (t.a - i.a) }; } function le(i, t, e) { if (i) { let s = si(i); s[t] = Math.max(0, Math.min(s[t] + s[t] * e, t === 0 ? 360 : 1)), s = oi(s), i.r = s[0], i.g = s[1], i.b = s[2]; } } function Ts(i, t) { return i && Object.assign(t || {}, i); } function vi(i) { var t = { r: 0, g: 0, b: 0, a: 255 }; return Array.isArray(i) ? i.length >= 3 && (t = { r: i[0], g: i[1], b: i[2], a: 255 }, i.length > 3 && (t.a = bt(i[3]))) : (t = Ts(i, { r: 0, g: 0, b: 0, a: 1 }), t.a = bt(t.a)), t; } function Xn(i) { return i.charAt(0) === "r" ? Vn(i) : Fn(i); } class Jt { constructor(t) { if (t instanceof Jt) return t; const e = typeof t; let s; e === "object" ? s = vi(t) : e === "string" && (s = On(t) || jn(t) || Xn(t)), this._rgb = s, this._valid = !!s; } get valid() { return this._valid; } get rgb() { var t = Ts(this._rgb); return t && (t.a = gt(t.a)), t; } set rgb(t) { this._rgb = vi(t); } rgbString() { return this._valid ? $n(this._rgb) : void 0; } hexString() { return this._valid ? Pn(this._rgb) : void 0; } hslString() { return this._valid ? Hn(this._rgb) : void 0; } mix(t, e) { if (t) { const s = this.rgb, n = t.rgb; let o; const r = e === o ? 0.5 : e, a = 2 * r - 1, l = s.a - n.a, c = ((a * l === -1 ? a : (a + l) / (1 + a * l)) + 1) / 2; o = 1 - c, s.r = 255 & c * s.r + o * n.r + 0.5, s.g = 255 & c * s.g + o * n.g + 0.5, s.b = 255 & c * s.b + o * n.b + 0.5, s.a = r * s.a + (1 - r) * n.a, this.rgb = s; } return this; } interpolate(t, e) { return t && (this._rgb = Yn(this._rgb, t._rgb, e)), this; } clone() { return new Jt(this.rgb); } alpha(t) { return this._rgb.a = bt(t), this; } clearer(t) { const e = this._rgb; return e.a *= 1 - t, this; } greyscale() { const t = this._rgb, e = ne(t.r * 0.3 + t.g * 0.59 + t.b * 0.11); return t.r = t.g = t.b = e, this; } opaquer(t) { const e = this._rgb; return e.a *= 1 + t, this; } negate() { const t = this._rgb; return t.r = 255 - t.r, t.g = 255 - t.g, t.b = 255 - t.b, this; } lighten(t) { return le(this._rgb, 2, t), this; } darken(t) { return le(this._rgb, 2, -t), this; } saturate(t) { return le(this._rgb, 1, t), this; } desaturate(t) { return le(this._rgb, 1, -t), this; } rotate(t) { return Bn(this._rgb, t), this; } } /*! * Chart.js v4.5.0 * https://www.chartjs.org * (c) 2025 Chart.js Contributors * Released under the MIT License */ function dt() { } const Un = /* @__PURE__ */ (() => { let i = 0; return () => i++; })(); function q(i) { return i == null; } function j(i) { if (Array.isArray && Array.isArray(i)) return !0; const t = Object.prototype.toString.call(i); return t.slice(0, 7) === "[object" && t.slice(-6) === "Array]"; } function D(i) { return i !== null && Object.prototype.toString.call(i) === "[object Object]"; } function pt(i) { return (typeof i == "number" || i instanceof Number) && isFinite(+i); } function at(i, t) { return pt(i) ? i : t; } function T(i, t) { return typeof i > "u" ? t : i; } const Kn = (i, t) => typeof i == "string" && i.endsWith("%") ? parseFloat(i) / 100 : +i / t, Rs = (i, t) => typeof i == "string" && i.endsWith("%") ? parseFloat(i) / 100 * t : +i; function E(i, t, e) { if (i && typeof i.call == "function") return i.apply(e, t); } function P(i, t, e, s) { let n, o, r; if (j(i)) for (o = i.length, n = 0; n < o; n++) t.call(e, i[n], n); else if (D(i)) for (r = Object.keys(i), o = r.length, n = 0; n < o; n++) t.call(e, i[r[n]], r[n]); } function we(i, t) { let e, s, n, o; if (!i || !t || i.length !== t.length) return !1; for (e = 0, s = i.length; e < s; ++e) if (n = i[e], o = t[e], n.datasetIndex !== o.datasetIndex || n.index !== o.index) return !1; return !0; } function ke(i) { if (j(i)) return i.map(ke); if (D(i)) { const t = /* @__PURE__ */ Object.create(null), e = Object.keys(i), s = e.length; let n = 0; for (; n < s; ++n) t[e[n]] = ke(i[e[n]]); return t; } return i; } function zs(i) { return [ "__proto__", "prototype", "constructor" ].indexOf(i) === -1; } function qn(i, t, e, s) { if (!zs(i)) return; const n = t[i], o = e[i]; D(n) && D(o) ? te(n, o, s) : t[i] = ke(o); } function te(i, t, e) { const s = j(t) ? t : [ t ], n = s.length; if (!D(i)) return i; e = e || {}; const o = e.merger || qn; let r; for (let a = 0; a < n; ++a) { if (r = s[a], !D(r)) continue; const l = Object.keys(r); for (let c = 0, h = l.length; c < h; ++c) o(l[c], i, r, e); } return i; } function qt(i, t) { return te(i, t, { merger: Gn }); } function Gn(i, t, e) { if (!zs(i)) return; const s = t[i], n = e[i]; D(s) && D(n) ? qt(s, n) : Object.prototype.hasOwnProperty.call(t, i) || (t[i] = ke(n)); } const wi = { // Chart.helpers.core resolveObjectKey should resolve empty key to root object "": (i) => i, // default resolvers x: (i) => i.x, y: (i) => i.y }; function Zn(i) { const t = i.split("."), e = []; let s = ""; for (const n of t) s += n, s.endsWith("\\") ? s = s.slice(0, -1) + "." : (e.push(s), s = ""); return e; } function Qn(i) { const t = Zn(i); return (e) => { for (const s of t) { if (s === "") break; e = e && e[s]; } return e; }; } function ee(i, t) { return (wi[t] || (wi[t] = Qn(t)))(i); } function ri(i) { return i.charAt(0).toUpperCase() + i.slice(1); } const Se = (i) => typeof i < "u", _t = (i) => typeof i == "function", ki = (i, t) => { if (i.size !== t.size) return !1; for (const e of i) if (!t.has(e)) return !1; return !0; }; function Jn(i) { return i.type === "mouseup" || i.type === "click" || i.type === "contextmenu"; } const z = Math.PI, H = 2 * z, Me = Number.POSITIVE_INFINITY, to = z / 180, W = z / 2, vt = z / 4, Si = z * 2 / 3, Mi = Math.sign; function eo(i) { const t = [], e = Math.sqrt(i); let s; for (s = 1; s < e; s++) i % s === 0 && (t.push(s), t.push(i / s)); return e === (e | 0) && t.push(e), t.sort((n, o) => n - o).pop(), t; } function io(i) { return typeof i == "symbol" || typeof i == "object" && i !== null && !(Symbol.toPrimitive in i || "toString" in i || "valueOf" in i); } function Ce(i) { return !io(i) && !isNaN(parseFloat(i)) && isFinite(i); } function Mt(i) { return i * (z / 180); } function so(i) { return i * (180 / z); } function Ls(i, t) { const e = t.x - i.x, s = t.y - i.y, n = Math.sqrt(e * e + s * s); let o = Math.atan2(s, e); return o < -0.5 * z && (o += H), { angle: o, distance: n }; } function no(i, t) { return Math.sqrt(Math.pow(t.x - i.x, 2) + Math.pow(t.y - i.y, 2)); } function ht(i) { return (i % H + H) % H; } function De(i, t, e, s) { const n = ht(i), o = ht(t), r = ht(e), a = ht(o - n), l = ht(r - n), c = ht(n - o), h = ht(n - r); return n === o || n === r || s && o === r || a > l && c < h; } function et(i, t, e) { return Math.max(t, Math.min(e, i)); } function oo(i) { return et(i, -32768, 32767); } function Xt(i, t, e, s = 1e-6) { return i >= Math.min(t, e) - s && i <= Math.max(t, e) + s; } function ai(i, t, e) { e = e || ((r) => i[r] < t); let s = i.length - 1, n = 0, o; for (; s - n > 1; ) o = n + s >> 1, e(o) ? n = o : s = o; return { lo: n, hi: s }; } const qe = (i, t, e, s) => ai(i, e, s ? (n) => { const o = i[n][t]; return o < e || o === e && i[n + 1][t] === e; } : (n) => i[n][t] < e), ro = (i, t, e) => ai(i, e, (s) => i[s][t] >= e); function ao(i, t, e) { let s = 0, n = i.length; for (; s < n && i[s] < t; ) s++; for (; n > s && i[n - 1] > e; ) n--; return s > 0 || n < i.length ? i.slice(s, n) : i; } const Es = [ "push", "pop", "shift", "splice", "unshift" ]; function lo(i, t) { if (i._chartjs) { i._chartjs.listeners.push(t); return; } Object.defineProperty(i, "_chartjs", { configurable: !0, enumerable: !1, value: { listeners: [ t ] } }), Es.forEach((e) => { const s = "_onData" + ri(e), n = i[e]; Object.defineProperty(i, e, { configurable: !0, enumerable: !1, value(...o) { const r = n.apply(this, o); return i._chartjs.listeners.forEach((a) => { typeof a[s] == "function" && a[s](...o); }), r; } }); }); } function Ci(i, t) { const e = i._chartjs; if (!e) return; const s = e.listeners, n = s.indexOf(t); n !== -1 && s.splice(n, 1), !(s.length > 0) && (Es.forEach((o) => { delete i[o]; }), delete i._chartjs); } function co(i) { const t = new Set(i); return t.size === i.length ? i : Array.from(t); } const Is = function() { return typeof window > "u" ? function(i) { return i(); } : window.requestAnimationFrame; }(); function Fs(i, t) { let e = [], s = !1; return function(...n) { e = n, s || (s = !0, Is.call(window, () => { s = !1, i.apply(t, e); })); }; } function ho(i, t) { let e; return function(...s) { return t ? (clearTimeout(e), e = setTimeout(i, t, s)) : i.apply(this, s), t; }; } const li = (i) => i === "start" ? "left" : i === "end" ? "right" : "center", U = (i, t, e) => i === "start" ? t : i === "end" ? e : (t + e) / 2, fo = (i, t, e, s) => i === (s ? "left" : "right") ? e : i === "center" ? (t + e) / 2 : t, ce = (i) => i === 0 || i === 1, Di = (i, t, e) => -(Math.pow(2, 10 * (i -= 1)) * Math.sin((i - t) * H / e)), Oi = (i, t, e) => Math.pow(2, -10 * i) * Math.sin((i - t) * H / e) + 1, Gt = { linear: (i) => i, easeInQuad: (i) => i * i, easeOutQuad: (i) => -i * (i - 2), easeInOutQuad: (i) => (i /= 0.5) < 1 ? 0.5 * i * i : -0.5 * (--i * (i - 2) - 1), easeInCubic: (i) => i * i * i, easeOutCubic: (i) => (i -= 1) * i * i + 1, easeInOutCubic: (i) => (i /= 0.5) < 1 ? 0.5 * i * i * i : 0.5 * ((i -= 2) * i * i + 2), easeInQuart: (i) => i * i * i * i, easeOutQuart: (i) => -((i -= 1) * i * i * i - 1), easeInOutQuart: (i) => (i /= 0.5) < 1 ? 0.5 * i * i * i * i : -0.5 * ((i -= 2) * i * i * i - 2), easeInQuint: (i) => i * i * i * i * i, easeOutQuint: (i) => (i -= 1) * i * i * i * i + 1, easeInOutQuint: (i) => (i /= 0.5) < 1 ? 0.5 * i * i * i * i * i : 0.5 * ((i -= 2) * i * i * i * i + 2), easeInSine: (i) => -Math.cos(i * W) + 1, easeOutSine: (i) => Math.sin(i * W), easeInOutSine: (i) => -0.5 * (Math.cos(z * i) - 1), easeInExpo: (i) => i === 0 ? 0 : Math.pow(2, 10 * (i - 1)), easeOutExpo: (i) => i === 1 ? 1 : -Math.pow(2, -10 * i) + 1, easeInOutExpo: (i) => ce(i) ? i : i < 0.5 ? 0.5 * Math.pow(2, 10 * (i * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (i * 2 - 1)) + 2), easeInCirc: (i) => i >= 1 ? i : -(Math.sqrt(1 - i * i) - 1), easeOutCirc: (i) => Math.sqrt(1 - (i -= 1) * i), easeInOutCirc: (i) => (i /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - i * i) - 1) : 0.5 * (Math.sqrt(1 - (i -= 2) * i) + 1), easeInElastic: (i) => ce(i) ? i : Di(i, 0.075, 0.3), easeOutElastic: (i) => ce(i) ? i : Oi(i, 0.075, 0.3), easeInOutElastic(i) { return ce(i) ? i : i < 0.5 ? 0.5 * Di(i * 2, 0.1125, 0.45) : 0.5 + 0.5 * Oi(i * 2 - 1, 0.1125, 0.45); }, easeInBack(i) { return i * i * ((1.70158 + 1) * i - 1.70158); }, easeOutBack(i) { return (i -= 1) * i * ((1.70158 + 1) * i + 1.70158) + 1; }, easeInOutBack(i) { let t = 1.70158; return (i /= 0.5) < 1 ? 0.5 * (i * i * (((t *= 1.525) + 1) * i - t)) : 0.5 * ((i -= 2) * i * (((t *= 1.525) + 1) * i + t) + 2); }, easeInBounce: (i) => 1 - Gt.easeOutBounce(1 - i), easeOutBounce(i) { return i < 1 / 2.75 ? 7.5625 * i * i : i < 2 / 2.75 ? 7.5625 * (i -= 1.5 / 2.75) * i + 0.75 : i < 2.5 / 2.75 ? 7.5625 * (i -= 2.25 / 2.75) * i + 0.9375 : 7.5625 * (i -= 2.625 / 2.75) * i + 0.984375; }, easeInOutBounce: (i) => i < 0.5 ? Gt.easeInBounce(i * 2) * 0.5 : Gt.easeOutBounce(i * 2 - 1) * 0.5 + 0.5 }; function Bs(i) { if (i && typeof i == "object") { const t = i.toString(); return t === "[object CanvasPattern]" || t === "[object CanvasGradient]"; } return !1; } function Ai(i) { return Bs(i) ? i : new Jt(i); } function Be(i) { return Bs(i) ? i : new Jt(i).saturate(0.5).darken(0.1).hexString(); } const uo = [ "x", "y", "borderWidth", "radius", "tension" ], go = [ "color", "borderColor", "backgroundColor" ]; function po(i) { i.set("animation", { delay: void 0, duration: 1e3, easing: "easeOutQuart", fn: void 0, from: void 0, loop: void 0, to: void 0, type: void 0 }), i.describe("animation", { _fallback: !1, _indexable: !1, _scriptable: (t) => t !== "onProgress" && t !== "onComplete" && t !== "fn" }), i.set("animations", { colors: { type: "color", properties: go }, numbers: { type: "number", properties: uo } }), i.describe("animations", { _fallback: "animation" }), i.set("transitions", { active: { animation: { duration: 400 } }, resize: { animation: { duration: 0 } }, show: { animations: { colors: { from: "transparent" }, visible: { type: "boolean", duration: 0 } } }, hide: { animations: { colors: { to: "transparent" }, visible: { type: "boolean", easing: "linear", fn: (t) => t | 0 } } } }); } function mo(i) { i.set("layout", { autoPadding: !0, padding: { top: 0, right: 0, bottom: 0, left: 0 } }); } const Pi = /* @__PURE__ */ new Map(); function bo(i, t) { t = t || {}; const e = i + JSON.stringify(t); let s = Pi.get(e); return s || (s = new Intl.NumberFormat(i, t), Pi.set(e, s)), s; } function _o(i, t, e) { return bo(t, e).format(i); } const xo = { values(i) { return j(i) ? i : "" + i; } }; var yo = { formatters: xo }; function vo(i) { i.set("scale", { display: !0, offset: !1, reverse: !1, beginAtZero: !1, bounds: "ticks", clip: !0, grace: 0, grid: { display: !0, lineWidth: 1, drawOnChartArea: !0, drawTicks: !0, tickLength: 8, tickWidth: (t, e) => e.lineWidth, tickColor: (t, e) => e.color, offset: !1 }, border: { display: !0, dash: [], dashOffset: 0, width: 1 }, title: { display: !1, text: "", padding: { top: 4, bottom: 4 } }, ticks: { minRotation: 0, maxRotation: 50, mirror: !1, textStrokeWidth: 0, textStrokeColor: "", padding: 3, display: !0, autoSkip: !0, autoSkipPadding: 3, labelOffset: 0, callback: yo.formatters.values, minor: {}, major: {}, align: "center", crossAlign: "near", showLabelBackdrop: !1, backdropColor: "rgba(255, 255, 255, 0.75)", backdropPadding: 2 } }), i.route("scale.ticks", "color", "", "color"), i.route("scale.grid", "color", "", "borderColor"), i.route("scale.border", "color", "", "borderColor"), i.route("scale.title", "color", "", "color"), i.describe("scale", { _fallback: !1, _scriptable: (t) => !t.startsWith("before") && !t.startsWith("after") && t !== "callback" && t !== "parser", _indexable: (t) => t !== "borderDash" && t !== "tickBorderDash" && t !== "dash" }), i.describe("scales", { _fallback: "scale" }), i.describe("scale.ticks", { _scriptable: (t) => t !== "backdropPadding" && t !== "callback", _indexable: (t) => t !== "backdropPadding" }); } const Dt = /* @__PURE__ */ Object.create(null), Ge = /* @__PURE__ */ Object.create(null); function Zt(i, t) { if (!t) return i; const e = t.split("."); for (let s = 0, n = e.length; s < n; ++s) { const o = e[s]; i = i[o] || (i[o] = /* @__PURE__ */ Object.create(null)); } return i; } function He(i, t, e) { return typeof t == "string" ? te(Zt(i, t), e) : te(Zt(i, ""), t); } class wo { constructor(t, e) { this.animation = void 0, this.backgroundColor = "rgba(0,0,0,0.1)", this.borderColor = "rgba(0,0,0,0.1)", this.color = "#666", this.datasets = {}, this.devicePixelRatio = (s) => s.chart.platform.getDevicePixelRatio(), this.elements = {}, this.events = [ "mousemove", "mouseout", "click", "touchstart", "touchmove" ], this.font = { family: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", size: 12, style: "normal", lineHeight: 1.2, weight: null }, this.hover = {}, this.hoverBackgroundColor = (s, n) => Be(n.backgroundColor), this.hoverBorderColor = (s, n) => Be(n.borderColor), this.hoverColor = (s, n) => Be(n.color), this.indexAxis = "x", this.interaction = { mode: "nearest", intersect: !0, includeInvisible: !1 }, this.maintainAspectRatio = !0, this.onHover = null, this.onClick = null, this.parsing = !0, this.plugins = {}, this.responsive = !0, this.scale = void 0, this.scales = {}, this.showLine = !0, this.drawActiveElementsOnTop = !0, this.describe(t), this.apply(e); } set(t, e) { return He(this, t, e); } get(t) { return Zt(this, t); } describe(t, e) { return He(Ge, t, e); } override(t, e) { return He(Dt, t, e); } route(t, e, s, n) { const o = Zt(this, t), r = Zt(this, s), a = "_" + e; Object.defineProperties(o, { [a]: { value: o[e], writable: !0 }, [e]: { enumerable: !0, get() { const l = this[a], c = r[n]; return D(l) ? Object.assign({}, c, l) : T(l, c); }, set(l) { this[a] = l; } } }); } apply(t) { t.forEach((e) => e(this)); } } var B = /* @__PURE__ */ new wo({ _scriptable: (i) => !i.startsWith("on"), _indexable: (i) => i !== "events", hover: { _fallback: "interaction" }, interaction: { _scriptable: !1, _indexable: !1 } }, [ po, mo, vo ]); function ko(i) { return !i || q(i.size) || q(i.family) ? null : (i.style ? i.style + " " : "") + (i.weight ? i.weight + " " : "") + i.size + "px " + i.family; } function Ti(i, t, e, s, n) { let o = t[n]; return o || (o = t[n] = i.measureText(n).width, e.push(n)), o > s && (s = o), s; } function wt(i, t, e) { const s = i.currentDevicePixelRatio, n = e !== 0 ? Math.max(e / 2, 0.5) : 0; return Math.round((t - n) * s) / s + n; } function Ri(i, t) { !t && !i || (t = t || i.getContext("2d"), t.save(), t.resetTransform(), t.clearRect(0, 0, i.width, i.height), t.restore()); } function zi(i, t, e, s) { Hs(i, t, e, s, null); } function Hs(i, t, e, s, n) { let o, r, a, l, c, h, d, f; const u = t.pointStyle, m = t.rotation, g = t.radius; let p = (m || 0) * to; if (u && typeof u == "object" && (o = u.toString(), o === "[object HTMLImageElement]" || o === "[object HTMLCanvasElement]")) { i.save(), i.translate(e, s), i.rotate(p), i.drawImage(u, -u.width / 2, -u.height / 2, u.width, u.height), i.restore(); return; } if (!(isNaN(g) || g <= 0)) { switch (i.beginPath(), u) { // Default includes circle default: n ? i.ellipse(e, s, n / 2, g, 0, 0, H) : i.arc(e, s, g, 0, H), i.closePath(); break; case "triangle": h = n ? n / 2 : g, i.moveTo(e + Math.sin(p) * h, s - Math.cos(p) * g), p += Si, i.lineTo(e + Math.sin(p) * h, s - Math.cos(p) * g), p += Si, i.lineTo(e + Math.sin(p) * h, s - Math.cos(p) * g), i.closePath(); break; case "rectRounded": c = g * 0.516, l = g - c, r = Math.cos(p + vt) * l, d = Math.cos(p + vt) * (n ? n / 2 - c : l), a = Math.sin(p + vt) * l, f = Math.sin(p + vt) * (n ? n / 2 - c : l), i.arc(e - d, s - a, c, p - z, p - W), i.arc(e + f, s - r, c, p - W, p), i.arc(e + d, s + a, c, p, p + W), i.arc(e - f, s + r, c, p + W, p + z), i.closePath(); break; case "rect": if (!m) { l = Math.SQRT1_2 * g, h = n ? n / 2 : l, i.rect(e - h, s - l, 2 * h, 2 * l); break; } p += vt; /* falls through */ case "rectRot": d = Math.cos(p) * (n ? n / 2 : g), r = Math.cos(p) * g, a = Math.sin(p) * g, f = Math.sin(p) * (n ? n / 2 : g), i.moveTo(e - d, s - a), i.lineTo(e + f, s - r), i.lineTo(e + d, s + a), i.lineTo(e - f, s + r), i.closePath(); break; case "crossRot": p += vt; /* falls through */ case "cross": d = Math.cos(p) * (n ? n / 2 : g), r = Math.cos(p) * g, a = Math.sin(p) * g, f = Math.sin(p) * (n ? n / 2 : g), i.moveTo(e - d, s - a), i.lineTo(e + d, s + a), i.moveTo(e + f, s - r), i.lineTo(e - f, s + r); break; case "star": d = Math.cos(p) * (n ? n / 2 : g), r = Math.cos(p) * g, a = Math.sin(p) * g, f = Math.sin(p) * (n ? n / 2 : g), i.moveTo(e - d, s - a), i.lineTo(e + d, s + a), i.moveTo(e + f, s - r), i.lineTo(e - f, s + r), p += vt, d = Math.cos(p) * (n ? n / 2 : g), r = Math.cos(p) * g, a = Math.sin(p) * g, f = Math.sin(p) * (n ? n / 2 : g), i.moveTo(e - d, s - a), i.lineTo(e + d, s + a), i.moveTo(e + f, s - r), i.lineTo(e - f, s + r); break; case "line": r = n ? n / 2 : Math.cos(p) * g, a = Math.sin(p) * g, i.moveTo(e - r, s - a), i.lineTo(e + r, s + a); break; case "dash": i.moveTo(e, s), i.lineTo(e + Math.cos(p) * (n ? n / 2 : g), s + Math.sin(p) * g); break; case !1: i.closePath(); break; } i.fill(), t.borderWidth > 0 && i.stroke(); } } function Ws(i, t, e) { return e = e || 0.5, !t || i && i.x > t.left - e && i.x < t.right + e && i.y > t.top - e && i.y < t.bottom + e; } function ci(i, t) { i.save(), i.beginPath(), i.rect(t.left, t.top, t.right - t.left, t.bottom - t.top), i.clip(); } function hi(i) { i.restore(); } function So(i, t) { t.translation && i.translate(t.translation[0], t.translation[1]), q(t.rotation) || i.rotate(t.rotation), t.color && (i.fillStyle = t.color), t.textAlign && (i.textAlign = t.textAlign), t.textBaseline && (i.textBaseline = t.textBaseline); } function Mo(i, t, e, s, n) { if (n.strikethrough || n.underline) { const o = i.measureText(s), r = t - o.actualBoundingBoxLeft, a = t + o.actualBoundingBoxRight, l = e - o.actualBoundingBoxAscent, c = e + o.actualBoundingBoxDescent, h = n.strikethrough ? (l + c) / 2 : c; i.strokeStyle = i.fillStyle, i.beginPath(), i.lineWidth = n.decorationWidth || 2, i.moveTo(r, h), i.lineTo(a, h), i.stroke(); } } function Co(i, t) { const e = i.fillStyle; i.fillStyle = t.color, i.fillRect(t.left, t.top, t.width, t.height), i.fillStyle = e; } function ie(i, t, e, s, n, o = {}) { const r = j(t) ? t : [ t ], a = o.strokeWidth > 0 && o.strokeColor !== ""; let l, c; for (i.save(), i.font = n.string, So(i, o), l = 0; l < r.length; ++l) c = r[l], o.backdrop && Co(i, o.backdrop), a && (o.strokeColor && (i.strokeStyle = o.strokeColor), q(o.strokeWidth) || (i.lineWidth = o.strokeWidth), i.strokeText(c, e, s, o.maxWidth)), i.fillText(c, e, s, o.maxWidth), Mo(i, e, s, c, o), s += Number(n.lineHeight); i.restore(); } function Ze(i, t) { const { x: e, y: s, w: n, h: o, radius: r } = t; i.arc(e + r.topLeft, s + r.topLeft, r.topLeft, 1.5 * z, z, !0), i.lineTo(e, s + o - r.bottomLeft), i.arc(e + r.bottomLeft, s + o - r.bottomLeft, r.bottomLeft, z, W, !0), i.lineTo(e + n - r.bottomRight, s + o), i.arc(e + n - r.bottomRight, s + o - r.bottomRight, r.bottomRight, W, 0, !0), i.lineTo(e + n, s + r.topRight), i.arc(e + n - r.topRight, s + r.topRight, r.topRight, 0, -W, !0), i.lineTo(e + r.topLeft, s); } const Do = /^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/, Oo = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/; function Ao(i, t) { const e = ("" + i).match(Do); if (!e || e[1] === "normal") return t * 1.2; switch (i = +e[2], e[3]) { case "px": return i; case "%": i /= 100; break; } return t * i; } const Po = (i) => +i || 0; function di(i, t) { const e = {}, s = D(t), n = s ? Object.keys(t) : t, o = D(i) ? s ? (r) => T(i[r], i[t[r]]) : (r) => i[r] : () => i; for (const r of n) e[r] = Po(o(r)); return e; } function To(i) { return di(i, { top: "y", right: "x", bottom: "y", left: "x" }); } function Qt(i) { return di(i, [ "topLeft", "topRight", "bottomLeft", "bottomRight" ]); } function nt(i) { const t = To(i); return t.width = t.left + t.right, t.height = t.top + t.bottom, t; } function K(i, t) { i = i || {}, t = t || B.font; let e = T(i.size, t.size); typeof e == "string" && (e = parseInt(e, 10)); let s = T(i.style, t.style); s && !("" + s).match(Oo) && (console.warn('Invalid font style specified: "' + s + '"'), s = void 0); const n = { family: T(i.family, t.family), lineHeight: Ao(T(i.lineHeight, t.lineHeight), e), size: e, style: s, weight: T(i.weight, t.weight), string: "" }; return n.string = ko(n), n; } function he(i, t, e, s) { let n, o, r; for (n = 0, o = i.length; n < o; ++n) if (r = i[n], r !== void 0 && r !== void 0) return r; } function Ro(i, t, e) { const { min: s, max: n } = i, o = Rs(t, (n - s) / 2), r = (a, l) => e && a === 0 ? 0 : a + l; return { min: r(s, -Math.abs(o)), max: r(n, o) }; } function It(i, t) { return Object.assign(Object.create(i), t); } function fi(i, t = [ "" ], e, s, n = () => i[0]) { const o = e || i; typeof s > "u" && (s = $s("_fallback", i)); const r = { [Symbol.toStringTag]: "Object", _cacheable: !0, _scopes: i, _rootScopes: o, _fallback: s, _getTarget: n, override: (a) => fi([ a, ...i ], t, o, s) }; return new Proxy(r, { /** * A trap for the delete operator. */ deleteProperty(a, l) { return delete a[l], delete a._keys, delete i[0][l], !0; }, /** * A trap for getting property values. */ get(a, l) { return Ns(a, l, () => Wo(l, t, i, a)); }, /** * A trap for Object.getOwnPropertyDescriptor. * Also used by Object.hasOwnProperty. */ getOwnPropertyDescriptor(a, l) { return Reflect.getOwnPropertyDescriptor(a._scopes[0], l); }, /** * A trap for Object.getPrototypeOf. */ getPrototypeOf() { return Reflect.getPrototypeOf(i[0]); }, /** * A trap for the in operator. */ has(a, l) { return Ei(a).includes(l); }, /** * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols. */ ownKeys(a) { return Ei(a); }, /** * A trap for setting property values. */ set(a, l, c) { const h = a._storage || (a._storage = n()); return a[l] = h[l] = c, delete a._keys, !0; } }); } function Et(i, t, e, s) { const n = { _cacheable: !1, _proxy: i, _context: t, _subProxy: e, _stack: /* @__PURE__ */ new Set(), _descriptors: js(i, s), setContext: (o) => Et(i, o, e, s), override: (o) => Et(i.override(o), t, e, s) }; return new Proxy(n, { /** * A trap for the delete operator. */ deleteProperty(o, r) { return delete o[r], delete i[r], !0; }, /** * A trap for getting property values. */ get(o, r, a) { return Ns(o, r, () => Lo(o, r, a)); }, /** * A trap for Object.getOwnPropertyDescriptor. * Also used by Object.hasOwnProperty. */ getOwnPropertyDescriptor(o, r) { return o._descriptors.allKeys ? Reflect.has(i, r) ? { enumerable: !0, configurable: !0 } : void 0 : Reflect.getOwnPropertyDescriptor(i, r); }, /** * A trap for Object.getPrototypeOf. */ getPrototypeOf() { return Reflect.getPrototypeOf(i); }, /** * A trap for the in operator. */ has(o, r) { return Reflect.has(i, r); }, /** * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols. */ ownKeys() { return Reflect.ownKeys(i); }, /** * A trap for setting property values. */ set(o, r, a) { return i[r] = a, delete o[r], !0; } }); } function js(i, t = { scriptable: !0, indexable: !0 }) { const { _scriptable: e = t.scriptable, _indexable: s = t.indexable, _allKeys: n = t.allKeys } = i; return { allKeys: n, scriptable: e, indexable: s, isScriptable: _t(e) ? e : () => e, isIndexable: _t(s) ? s : () => s }; } const zo = (i, t) => i ? i + ri(t) : t, ui = (i, t) => D(t) && i !== "adapters" && (Object.getPrototypeOf(t) === null || t.constructor === Object); function Ns(i, t, e) { if (Object.prototype.hasOwnProperty.call(i, t) || t === "constructor") return i[t]; const s = e(); return i[t] = s, s; } function Lo(i, t, e) { const { _proxy: s, _context: n, _subProxy: o, _descriptors: r } = i; let a = s[t]; return _t(a) && r.isScriptable(t) && (a = Eo(t, a, i, e)), j(a) && a.length && (a = Io(t, a, i, r.isIndexable)), ui(t, a) && (a = Et(a, n, o && o[t], r)), a; } function Eo(i, t, e, s) { const { _proxy: n, _context: o, _subProxy: r, _stack: a } = e; if (a.has(i)) throw new Error("Recursion detected: " + Array.from(a).join("->") + "->" + i); a.add(i); let l = t(o, r || s); return a.delete(i), ui(i, l) && (l = gi(n._scopes, n, i, l)), l; } function Io(i, t, e, s) { const { _proxy: n, _context: o, _subProxy: r, _descriptors: a } = e; if (typeof o.index < "u" && s(i)) return t[o.index % t.length]; if (D(t[0])) { const l = t, c = n._scopes.filter((h) => h !== l); t = []; for (const h of l) { const d = gi(c, n, i, h); t.push(Et(d, o, r && r[i], a)); } } return t; } function Vs(i, t, e) { return _t(i) ? i(t, e) : i; } const Fo = (i, t) => i === !0 ? t : typeof i == "string" ? ee(t, i) : void 0; function Bo(i, t, e, s, n) { for (const o of t) { const r = Fo(e, o); if (r) { i.add(r); const a = Vs(r._fallback, e, n); if (typeof a < "u" && a !== e && a !== s) return a; } else if (r === !1 && typeof s < "u" && e !== s) return null; } return !1; } function gi(i, t, e, s) { const n = t._rootScopes, o = Vs(t._fallback, e, s), r = [ ...i, ...n ], a = /* @__PURE__ */ new Set(); a.add(s); let l = Li(a, r, e, o || e, s); return l === null || typeof o < "u" && o !== e && (l = Li(a, r, o, l, s), l === null) ? !1 : fi(Array.from(a), [ "" ], n, o, () => Ho(t, e, s)); } function Li(i, t, e, s, n) { for (; e; ) e = Bo(i, t, e, s, n); return e; } function Ho(i, t, e) { const s = i._getTarget(); t in s || (s[t] = {}); const n = s[t]; return j(n) && D(e) ? e : n || {}; } function Wo(i, t, e, s) { let n; for (const o of t) if (n = $s(zo(o, i), e), typeof n < "u") return ui(i, n) ? gi(e, s, i, n) : n; } function $s(i, t) { for (const e of t) { if (!e) continue; const s = e[i]; if (typeof s < "u") return s; } } function Ei(i) { let t = i._keys; return t || (t = i._keys = jo(i._scopes)), t; } function jo(i) { const t = /* @__PURE__ */ new Set(); for (const e of i) for (const s of Object.keys(e).filter((n) => !n.startsWith("_"))) t.add(s); return Array.from(t); } function pi() { return typeof window < "u" && typeof document < "u"; } function mi(i) { let t = i.parentNode; return t && t.toString() === "[object ShadowRoot]" && (t = t.host), t; } function Oe(i, t, e) { let s; return typeof i == "string" ? (s = parseInt(i, 10), i.indexOf("%") !== -1 && (s = s / 100 * t.parentNode[e])) : s = i, s; } const Te = (i) => i.ownerDocument.defaultView.getComputedStyle(i, null); function No(i, t) { return Te(i).getPropertyValue(t); } const Vo = [ "top", "right", "bottom", "left" ]; function Ct(i, t, e) { const s = {}; e = e ? "-" + e : ""; for (let n = 0; n < 4; n++) { const o = Vo[n]; s[o] = parseFloat(i[t + "-" + o + e]) || 0; } return s.width = s.left + s.right, s.height = s.top + s.bottom, s; } const $o = (i, t, e) => (i > 0 || t > 0) && (!e || !e.shadowRoot); function Yo(i, t) { const e = i.touches, s = e && e.length ? e[0] : i, { offsetX: n, offsetY: o } = s; let r = !1, a, l; if ($o(n, o, i.target)) a = n, l = o; else { const c = t.getBoundingClientRect(); a = s.clientX - c.left, l = s.clientY - c.top, r = !0; } return { x: a, y: l, box: r }; } function St(i, t) { if ("native" in i) return i; const { canvas: e, currentDevicePixelRatio: s } = t, n = Te(e), o = n.boxSizing === "border-box", r = Ct(n, "padding"), a = Ct(n, "border", "width"), { x: l, y: c, box: h } = Yo(i, e), d = r.left + (h && a.left), f = r.top + (h && a.top); let { width: u, height: m } = t; return o && (u -= r.width + a.width, m -= r.height + a.height), { x: Math.round((l - d) / u * e.width / s), y: Math.round((c - f) / m * e.height / s) }; } function Xo(i, t, e) { let s, n; if (t === void 0 || e === void 0) { const o = i && mi(i); if (!o) t = i.clientWidth, e = i.clientHeight; else { const r = o.getBoundingClientRect(), a = Te(o), l = Ct(a, "border", "width"), c = Ct(a, "padding"); t = r.width - c.width - l.width, e = r.height - c.height - l.height, s = Oe(a.maxWidth, o, "clientWidth"), n = Oe(a.maxHeight, o, "clientHeight"); } } return { width: t, height: e, maxWidth: s || Me, maxHeight: n || Me }; } const de = (i) => Math.round(i * 10) / 10; function Uo(i, t, e, s) { const n = Te(i), o = Ct(n, "margin"), r = Oe(n.maxWidth, i, "clientWidth") || Me, a = Oe(n.maxHeight, i, "clientHeight") || Me, l = Xo(i, t, e); let { width: c, height: h } = l; if (n.boxSizing === "content-box") { const f = Ct(n, "border", "width"), u = Ct(n, "padding"); c -= u.width + f.width, h -= u.height + f.height; } return c = Math.max(0, c - o.width), h = Math.max(0, s ? c / s : h - o.height), c = de(Math.min(c, r, l.maxWidth)), h = de(Math.min(h, a, l.maxHeight)), c && !h && (h = de(c / 2)), (t !== void 0 || e !== void 0) && s && l.height && h > l.height && (h = l.height, c = de(Math.floor(h * s))), { width: c, height: h }; } function Ii(i, t, e) { const s = t || 1, n = Math.floor(i.height * s), o = Math.floor(i.width * s); i.height = Math.floor(i.height), i.width = Math.floor(i.width); const r = i.canvas; return r.style && (e || !r.style.height && !r.style.width) && (r.style.height = `${i.height}px`, r.style.width = `${i.width}px`), i.currentDevicePixelRatio !== s || r.height !== n || r.width !== o ? (i.currentDevicePixelRatio = s, r.height = n, r.width = o, i.ctx.setTransform(s, 0, 0, s, 0, 0), !0) : !1; } const Ko = function() { let i = !1; try { const t = { get passive() { return i = !0, !1; } }; pi() && (window.addEventListener("test", null, t), window.removeEventListener("test", null, t)); } catch { } return i; }(); function Fi(i, t) { const e = No(i, t), s = e && e.match(/^(\d+)(\.\d+)?px$/); return s ? +s[1] : void 0; } const qo = function(i, t) { return { x(e) { return i + i + t - e; }, setWidth(e) { t = e; }, textAlign(e) { return e === "center" ? e : e === "right" ? "left" : "right"; }, xPlus(e, s) { return e - s; }, leftForLtr(e, s) { return e - s; } }; }, Go = function() { return { x(i) { return i; }, setWidth(i) { }, textAlign(i) { return i; }, xPlus(i, t) { return i + t; }, leftForLtr(i, t) { return i; } }; }; function zt(i, t, e) { return i ? qo(t, e) : Go(); } function Ys(i, t) { let e, s; (t === "ltr" || t === "rtl") && (e = i.canvas.style, s = [ e.getPropertyValue("direction"), e.getPropertyPriority("direction") ], e.setProperty("direction", t, "important"), i.prevTextDirection = s); } function Xs(i, t) { t !== void 0 && (delete i.prevTextDirection, i.canvas.style.setProperty("direction", t[0], t[1])); } function fe(i, t, e) { return i.options.clip ? i[e] : t[e]; } function Zo(i, t) { const { xScale: e, yScale: s } = i; return e && s ? { left: fe(e, t, "left"), right: fe(e, t, "right"), top: fe(s, t, "top"), bottom: fe(s, t, "bottom") } : t; } function Qo(i, t) { const e = t._clip; if (e.disabled) return !1; const s = Zo(t, i.chartArea); return { left: e.left === !1 ? 0 : s.left - (e.left === !0 ? 0 : e.left), right: e.right === !1 ? i.width : s.right + (e.right === !0 ? 0 : e.right), top: e.top === !1 ? 0 : s.top - (e.top === !0 ? 0 : e.top), bottom: e.bottom === !1 ? i.height : s.bottom + (e.bottom === !0 ? 0 : e.bottom) }; } /*! * Chart.js v4.5.0 * https://www.chartjs.org * (c) 2025 Chart.js Contributors * Released under the MIT License */ class Jo { constructor() { this._request = null, this._charts = /* @__PURE__ */ new Map(), this._running = !1, this._lastDate = void 0; } _notify(t, e, s, n) { const o = e.listeners[n], r = e.duration; o.forEach((a) => a({ chart: t, initial: e.initial, numSteps: r, currentStep: Math.min(s - e.start, r) })); } _refresh() { this._request || (this._running = !0, this._request = Is.call(window, () => { this._update(), this._request = null, this._running && this._refresh(); })); } _update(t = Date.now()) { let e = 0; this._charts.forEach(