@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
JavaScript
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(