@vielzeug/prism 2.2.5 → 2.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/charts/area/area-chart.cjs +1 -1
- package/dist/charts/area/area-chart.cjs.map +1 -1
- package/dist/charts/area/area-chart.d.ts.map +1 -1
- package/dist/charts/area/area-chart.js +47 -43
- package/dist/charts/area/area-chart.js.map +1 -1
- package/dist/charts/bar/bar-chart.cjs +1 -1
- package/dist/charts/bar/bar-chart.cjs.map +1 -1
- package/dist/charts/bar/bar-chart.d.ts.map +1 -1
- package/dist/charts/bar/bar-chart.js +145 -140
- package/dist/charts/bar/bar-chart.js.map +1 -1
- package/dist/charts/line/line-chart.cjs +1 -1
- package/dist/charts/line/line-chart.cjs.map +1 -1
- package/dist/charts/line/line-chart.d.ts.map +1 -1
- package/dist/charts/line/line-chart.js +48 -44
- package/dist/charts/line/line-chart.js.map +1 -1
- package/dist/charts/pie/pie-chart.cjs +1 -1
- package/dist/charts/pie/pie-chart.cjs.map +1 -1
- package/dist/charts/pie/pie-chart.d.ts.map +1 -1
- package/dist/charts/pie/pie-chart.js +101 -97
- package/dist/charts/pie/pie-chart.js.map +1 -1
- package/dist/charts/sparkline/sparkline.cjs +1 -1
- package/dist/charts/sparkline/sparkline.cjs.map +1 -1
- package/dist/charts/sparkline/sparkline.d.ts.map +1 -1
- package/dist/charts/sparkline/sparkline.js +65 -62
- package/dist/charts/sparkline/sparkline.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/resolve.cjs +2 -0
- package/dist/core/resolve.cjs.map +1 -0
- package/dist/core/resolve.d.ts +9 -0
- package/dist/core/resolve.d.ts.map +1 -0
- package/dist/core/resolve.js +15 -0
- package/dist/core/resolve.js.map +1 -0
- package/dist/prism.cjs +1 -1
- package/dist/prism.cjs.map +1 -1
- package/dist/prism.iife.js +1 -1
- package/dist/prism.iife.js.map +1 -1
- package/dist/prism.js +1 -1
- package/dist/prism.js.map +1 -1
- package/package.json +3 -3
|
@@ -3,8 +3,9 @@ import { resolveMotion as t } from "../../animation/motion.js";
|
|
|
3
3
|
import { tweenNumber as n } from "../../animation/tween.js";
|
|
4
4
|
import { createSvgElement as r, setAttributes as i } from "../../svg/element.js";
|
|
5
5
|
import { createChartBase as a } from "../../core/chart-base.js";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { resolveMaybeSignal as o } from "../../core/resolve.js";
|
|
7
|
+
import { areaPath as s, linePath as c, monotonePath as l, stepPath as u } from "../../svg/path.js";
|
|
8
|
+
import { createScope as d, effect as f } from "@vielzeug/ripple";
|
|
8
9
|
//#region src/charts/sparkline/sparkline.ts
|
|
9
10
|
function p(e, t, n) {
|
|
10
11
|
if (e.length === 0) return [];
|
|
@@ -20,12 +21,12 @@ function m(e, t, n, r = "linear") {
|
|
|
20
21
|
x: e.x,
|
|
21
22
|
y: n
|
|
22
23
|
}));
|
|
23
|
-
return
|
|
24
|
+
return s(i, a, r ?? "linear");
|
|
24
25
|
}
|
|
25
26
|
function h(e, t, n, r) {
|
|
26
27
|
if (e.length === 0) return "";
|
|
27
28
|
let i = p(e, t, n);
|
|
28
|
-
return r === "monotone" ?
|
|
29
|
+
return r === "monotone" ? l(i) : r === "step" ? u(i) : c(i);
|
|
29
30
|
}
|
|
30
31
|
function g(a, o, s, c, l, u, d) {
|
|
31
32
|
let f = o.length, p = Math.max(1, s / f - 1), m = s / f, h = Math.min(0, ...o), g = Math.max(...o) - h || 1, _ = t(u, 0), v = _.duration, y = e(_.easing);
|
|
@@ -88,7 +89,7 @@ function y(e) {
|
|
|
88
89
|
return `var(--prism-color-${e % 8 + 1})`;
|
|
89
90
|
}
|
|
90
91
|
function b(e, t) {
|
|
91
|
-
let n = t.variant ?? "line",
|
|
92
|
+
let n = t.variant ?? "line", s = t.color ?? "var(--prism-color-1)", c = t.curve ?? "linear", l = t.strokeWidth ?? 1.5, u = t.fillOpacity ?? .2, p = o(t.data), b = a(e, {
|
|
92
93
|
...t.a11y ? { a11y: t.a11y } : { ariaHidden: !0 },
|
|
93
94
|
margin: {
|
|
94
95
|
bottom: 0,
|
|
@@ -96,25 +97,25 @@ function b(e, t) {
|
|
|
96
97
|
right: 0,
|
|
97
98
|
top: 0
|
|
98
99
|
}
|
|
99
|
-
}), { svg:
|
|
100
|
-
|
|
101
|
-
let
|
|
102
|
-
|
|
103
|
-
let
|
|
104
|
-
function
|
|
105
|
-
let { height: e, width: a } =
|
|
106
|
-
for (;
|
|
107
|
-
if (
|
|
108
|
-
if (n === "stack" && _(
|
|
100
|
+
}), { svg: x } = b;
|
|
101
|
+
x.classList.add("prism-sparkline");
|
|
102
|
+
let S = r("g", { class: "prism-spark-inner" });
|
|
103
|
+
x.appendChild(S);
|
|
104
|
+
let C;
|
|
105
|
+
function w() {
|
|
106
|
+
let { height: e, width: a } = b.dimensions.value, o = p.value;
|
|
107
|
+
for (; S.firstChild;) S.removeChild(S.firstChild);
|
|
108
|
+
if (o.length !== 0) {
|
|
109
|
+
if (n === "stack" && _(o)) {
|
|
109
110
|
let n = r("g", { class: "prism-spark-stack" });
|
|
110
|
-
|
|
111
|
-
let
|
|
112
|
-
if (
|
|
113
|
-
let
|
|
114
|
-
|
|
111
|
+
S.appendChild(n);
|
|
112
|
+
let s = t.cornerRadius ?? 4, c = o, l = c.reduce((e, t) => e + Math.max(0, t.value), 0);
|
|
113
|
+
if (l > 0) {
|
|
114
|
+
let o = (t.padPixels ?? 0) / 2, u = 0;
|
|
115
|
+
c.forEach((t, d) => {
|
|
115
116
|
let f = Math.round(u);
|
|
116
|
-
u += Math.max(0, t.value) /
|
|
117
|
-
let p = d ===
|
|
117
|
+
u += Math.max(0, t.value) / l * a;
|
|
118
|
+
let p = d === c.length - 1 ? a : Math.round(u), m = d === 0, h = d === c.length - 1, g = v(f + (m ? 0 : o), 0, Math.max(0, p - f - (m ? 0 : o) - (h ? 0 : o)), e, s, m, h), _ = r("path", { class: "prism-spark-stack-segment" });
|
|
118
119
|
i(_, {
|
|
119
120
|
d: g,
|
|
120
121
|
fill: t.color ?? y(d)
|
|
@@ -123,66 +124,68 @@ function b(e, t) {
|
|
|
123
124
|
}
|
|
124
125
|
} else if (n === "bar") {
|
|
125
126
|
let n = r("g", { class: "prism-spark-bars" });
|
|
126
|
-
|
|
127
|
+
S.appendChild(n), g(n, o, a, e, s, t.transition, E.signal);
|
|
127
128
|
} else {
|
|
128
129
|
if (n === "area") {
|
|
129
|
-
let t = r("path", { class: "prism-spark-fill" }), n = m(
|
|
130
|
+
let t = r("path", { class: "prism-spark-fill" }), n = m(o, a, e, c);
|
|
130
131
|
i(t, {
|
|
131
132
|
d: n,
|
|
132
|
-
fill:
|
|
133
|
-
"fill-opacity":
|
|
133
|
+
fill: s,
|
|
134
|
+
"fill-opacity": u,
|
|
134
135
|
stroke: "none"
|
|
135
|
-
}),
|
|
136
|
+
}), S.appendChild(t);
|
|
136
137
|
}
|
|
137
|
-
let t = r("path", { class: "prism-spark-line" }), d = h(
|
|
138
|
+
let t = r("path", { class: "prism-spark-line" }), d = h(o, a, e, c);
|
|
138
139
|
i(t, {
|
|
139
140
|
d,
|
|
140
141
|
fill: "none",
|
|
141
|
-
stroke:
|
|
142
|
-
"stroke-width":
|
|
143
|
-
}),
|
|
142
|
+
stroke: s,
|
|
143
|
+
"stroke-width": l
|
|
144
|
+
}), S.appendChild(t);
|
|
144
145
|
}
|
|
145
|
-
_(
|
|
146
|
+
_(o) || T(o);
|
|
146
147
|
}
|
|
147
148
|
}
|
|
148
|
-
function
|
|
149
|
-
if (
|
|
150
|
-
let { width: n } =
|
|
151
|
-
|
|
149
|
+
function T(e) {
|
|
150
|
+
if (C?.(), C = void 0, !t.onHover && !t.onClick || e.length <= 1) return;
|
|
151
|
+
let { width: n } = b.dimensions.value;
|
|
152
|
+
x.style.cursor = "crosshair";
|
|
152
153
|
let r = n / (e.length - 1), i = (n) => {
|
|
153
|
-
let i =
|
|
154
|
+
let i = x.getBoundingClientRect(), a = n.clientX - i.left, o = Math.max(0, Math.min(e.length - 1, Math.round(a / r)));
|
|
154
155
|
t.onHover?.(o, e[o]);
|
|
155
156
|
}, a = () => t.onHover?.(null, null), o = (n) => {
|
|
156
157
|
if (!t.onClick) return;
|
|
157
|
-
let i =
|
|
158
|
+
let i = x.getBoundingClientRect(), a = n.clientX - i.left, o = Math.max(0, Math.min(e.length - 1, Math.round(a / r)));
|
|
158
159
|
t.onClick(o, e[o]);
|
|
159
160
|
};
|
|
160
|
-
|
|
161
|
-
|
|
161
|
+
x.addEventListener("mousemove", i), x.addEventListener("mouseleave", a), x.addEventListener("click", o), C = () => {
|
|
162
|
+
x.removeEventListener("mousemove", i), x.removeEventListener("mouseleave", a), x.removeEventListener("click", o);
|
|
162
163
|
};
|
|
163
164
|
}
|
|
164
|
-
let
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
}
|
|
185
|
-
}
|
|
165
|
+
let E = new AbortController(), D = d(), O = !1;
|
|
166
|
+
try {
|
|
167
|
+
return D.run(() => {
|
|
168
|
+
f(() => {
|
|
169
|
+
w();
|
|
170
|
+
}, { scheduler: "microtask" });
|
|
171
|
+
}), {
|
|
172
|
+
get disposalSignal() {
|
|
173
|
+
return E.signal;
|
|
174
|
+
},
|
|
175
|
+
dispose() {
|
|
176
|
+
O || (O = !0, E.abort(), C?.(), D.dispose(), b.dispose());
|
|
177
|
+
},
|
|
178
|
+
get disposed() {
|
|
179
|
+
return O;
|
|
180
|
+
},
|
|
181
|
+
el: x,
|
|
182
|
+
[Symbol.dispose]() {
|
|
183
|
+
this.dispose();
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
} catch (e) {
|
|
187
|
+
throw E.abort(), D.dispose(), b.dispose(), e;
|
|
188
|
+
}
|
|
186
189
|
}
|
|
187
190
|
//#endregion
|
|
188
191
|
export { b as createSparkline };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sparkline.js","names":[],"sources":["../../../src/charts/sparkline/sparkline.ts"],"sourcesContent":["import { createScope, effect, isReactive } from '@vielzeug/ripple';\nimport { resolveEasing } from '../../animation/easing';\nimport { resolveMotion } from '../../animation/motion';\nimport { tweenNumber } from '../../animation/tween';\nimport { createChartBase } from '../../core/chart-base';\nimport { createSvgElement, setAttributes } from '../../svg/element';\nimport type { Point } from '../../svg/path';\nimport { areaPath, linePath, monotonePath, stepPath } from '../../svg/path';\nimport type { ChartHandle, SparklineConfig, StackSegment } from '../../types';\n\nfunction buildTopPoints(data: number[], width: number, height: number): Point[] {\n if (data.length === 0) return [];\n\n const xStep = width / Math.max(1, data.length - 1);\n const min = Math.min(...data);\n const max = Math.max(...data);\n const yRange = max - min || 1;\n\n return data.map((v, i) => ({\n x: i * xStep,\n y: height - ((v - min) / yRange) * height,\n }));\n}\n\nfunction buildAreaPath(\n data: number[],\n width: number,\n height: number,\n curve: SparklineConfig['curve'] = 'linear',\n): string {\n if (data.length === 0) return '';\n\n const top = buildTopPoints(data, width, height);\n const bottom = top.map((p) => ({ x: p.x, y: height }));\n\n return areaPath(top, bottom, curve ?? 'linear');\n}\n\nfunction buildPath(data: number[], width: number, height: number, curve: SparklineConfig['curve']): string {\n if (data.length === 0) return '';\n\n const points = buildTopPoints(data, width, height);\n\n return curve === 'monotone' ? monotonePath(points) : curve === 'step' ? stepPath(points) : linePath(points);\n}\n\nfunction renderSparkBars(\n parent: SVGGElement,\n data: number[],\n width: number,\n height: number,\n color: string,\n transition?: SparklineConfig['transition'],\n disposalSignal?: AbortSignal,\n): void {\n const count = data.length;\n const barW = Math.max(1, width / count - 1);\n const gap = width / count;\n const min = Math.min(0, ...data);\n const max = Math.max(...data);\n const yRange = max - min || 1;\n const motion = resolveMotion(transition, 0);\n const dur = motion.duration;\n const easing = resolveEasing(motion.easing);\n\n while (parent.children.length > count) {\n const last = parent.lastElementChild;\n\n if (last) parent.removeChild(last);\n }\n\n for (let i = 0; i < count; i++) {\n const finalH = Math.max(1, ((data[i] - min) / yRange) * height);\n const finalY = height - finalH;\n\n let rect = parent.children[i] as SVGRectElement | undefined;\n\n if (!rect) {\n rect = createSvgElement('rect', { class: 'prism-spark-bar' });\n parent.appendChild(rect);\n }\n\n setAttributes(rect, { fill: color, width: barW, x: i * gap });\n\n if (dur > 0 && !rect.hasAttribute('data-init')) {\n rect.setAttribute('data-init', '1');\n setAttributes(rect, { height: 0, y: height });\n\n let start: number | null = null;\n const from = { h: 0, y: height };\n const to = { h: finalH, y: finalY };\n\n const frame = (ts: number) => {\n if (disposalSignal?.aborted) return;\n\n if (start === null) start = ts;\n\n const t = easing(Math.min(1, (ts - start) / dur));\n\n setAttributes(rect!, {\n height: tweenNumber(from.h, to.h, t),\n y: tweenNumber(from.y, to.y, t),\n });\n\n if (t < 1) requestAnimationFrame(frame);\n };\n\n requestAnimationFrame(frame);\n } else {\n rect.setAttribute('data-init', '1');\n setAttributes(rect, { height: finalH, y: finalY });\n }\n }\n}\n\nfunction isStackData(data: number[] | StackSegment[]): data is StackSegment[] {\n return data.length > 0 && data[0] !== null && typeof data[0] === 'object';\n}\n\nfunction buildRoundedStackRect(\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n roundLeft: boolean,\n roundRight: boolean,\n): string {\n const maxR = Math.min(r, w / 2, h / 2);\n const tl = roundLeft ? maxR : 0;\n const bl = roundLeft ? maxR : 0;\n const tr = roundRight ? maxR : 0;\n const br = roundRight ? maxR : 0;\n\n return [\n `M${x + tl},${y}`,\n `H${x + w - tr}`,\n tr ? `Q${x + w},${y} ${x + w},${y + tr}` : '',\n `V${y + h - br}`,\n br ? `Q${x + w},${y + h} ${x + w - br},${y + h}` : '',\n `H${x + bl}`,\n bl ? `Q${x},${y + h} ${x},${y + h - bl}` : '',\n `V${y + tl}`,\n tl ? `Q${x},${y} ${x + tl},${y}` : '',\n 'Z',\n ]\n .filter(Boolean)\n .join('');\n}\n\nfunction defaultStackColor(i: number): string {\n return `var(--prism-color-${(i % 8) + 1})`;\n}\n\nexport function createSparkline(container: HTMLElement, config: SparklineConfig): ChartHandle {\n const variant = config.variant ?? 'line';\n const color = config.color ?? 'var(--prism-color-1)';\n const curve = config.curve ?? 'linear';\n const strokeWidth = config.strokeWidth ?? 1.5;\n const fillOpacity = config.fillOpacity ?? 0.2;\n\n const base = createChartBase(container, {\n ...(config.a11y ? { a11y: config.a11y } : { ariaHidden: true }),\n margin: { bottom: 0, left: 0, right: 0, top: 0 },\n });\n\n const { svg } = base;\n\n svg.classList.add('prism-sparkline');\n\n const innerGroup = createSvgElement('g', { class: 'prism-spark-inner' });\n\n svg.appendChild(innerGroup);\n\n let cleanupInteraction: (() => void) | undefined;\n\n function renderAll(): void {\n const { height: h, width: w } = base.dimensions.value;\n const data = isReactive(config.data) ? config.data.value : config.data;\n\n while (innerGroup.firstChild) innerGroup.removeChild(innerGroup.firstChild);\n\n if (data.length === 0) return;\n\n if (variant === 'stack' && isStackData(data)) {\n const stackGroup = createSvgElement('g', { class: 'prism-spark-stack' });\n\n innerGroup.appendChild(stackGroup);\n\n const cornerRadius = config.cornerRadius ?? 4;\n const segs = data as StackSegment[];\n const total = segs.reduce((s, d) => s + Math.max(0, d.value), 0);\n\n if (total > 0) {\n const half = (config.padPixels ?? 0) / 2;\n let xAcc = 0;\n\n segs.forEach((seg, i) => {\n const xStart = Math.round(xAcc);\n\n xAcc += (Math.max(0, seg.value) / total) * w;\n\n const xEnd = i === segs.length - 1 ? w : Math.round(xAcc);\n const isFirst = i === 0;\n const isLast = i === segs.length - 1;\n const drawX = xStart + (isFirst ? 0 : half);\n const drawW = Math.max(0, xEnd - xStart - (isFirst ? 0 : half) - (isLast ? 0 : half));\n const d = buildRoundedStackRect(drawX, 0, drawW, h, cornerRadius, isFirst, isLast);\n const path = createSvgElement('path', { class: 'prism-spark-stack-segment' });\n\n setAttributes(path, { d, fill: seg.color ?? defaultStackColor(i) });\n stackGroup.appendChild(path);\n });\n }\n } else if (variant === 'bar') {\n const barsGroup = createSvgElement('g', { class: 'prism-spark-bars' });\n\n innerGroup.appendChild(barsGroup);\n renderSparkBars(barsGroup, data as number[], w, h, color, config.transition, ac.signal);\n } else {\n if (variant === 'area') {\n const fill = createSvgElement('path', { class: 'prism-spark-fill' });\n const fillD = buildAreaPath(data as number[], w, h, curve);\n\n setAttributes(fill, { d: fillD, fill: color, 'fill-opacity': fillOpacity, stroke: 'none' });\n innerGroup.appendChild(fill);\n }\n\n const path = createSvgElement('path', { class: 'prism-spark-line' });\n const pathD = buildPath(data as number[], w, h, curve);\n\n setAttributes(path, { d: pathD, fill: 'none', stroke: color, 'stroke-width': strokeWidth });\n innerGroup.appendChild(path);\n }\n\n if (!isStackData(data)) attachInteraction(data as number[]);\n }\n\n function attachInteraction(data: number[]): void {\n cleanupInteraction?.();\n cleanupInteraction = undefined;\n\n if (!config.onHover && !config.onClick) return;\n\n if (data.length <= 1) return;\n\n const { width: w } = base.dimensions.value;\n\n svg.style.cursor = 'crosshair';\n\n const xStep = w / (data.length - 1);\n\n const handleMove = (e: MouseEvent) => {\n const rect = svg.getBoundingClientRect();\n const relX = e.clientX - rect.left;\n const idx = Math.max(0, Math.min(data.length - 1, Math.round(relX / xStep)));\n\n config.onHover?.(idx, data[idx]);\n };\n\n const handleLeave = () => config.onHover?.(null, null);\n\n const handleClick = (e: MouseEvent) => {\n if (!config.onClick) return;\n\n const rect = svg.getBoundingClientRect();\n const relX = e.clientX - rect.left;\n const idx = Math.max(0, Math.min(data.length - 1, Math.round(relX / xStep)));\n\n config.onClick(idx, data[idx]);\n };\n\n svg.addEventListener('mousemove', handleMove);\n svg.addEventListener('mouseleave', handleLeave);\n svg.addEventListener('click', handleClick);\n\n cleanupInteraction = () => {\n svg.removeEventListener('mousemove', handleMove);\n svg.removeEventListener('mouseleave', handleLeave);\n svg.removeEventListener('click', handleClick);\n };\n }\n\n const ac = new AbortController();\n\n const scope = createScope();\n\n scope.run(() => {\n effect(\n () => {\n renderAll();\n },\n { scheduler: 'microtask' },\n );\n });\n\n let isDisposed = false;\n\n return {\n get disposalSignal(): AbortSignal {\n return ac.signal;\n },\n\n dispose() {\n if (isDisposed) return;\n\n isDisposed = true;\n ac.abort();\n cleanupInteraction?.();\n scope.dispose();\n base.dispose();\n },\n\n get disposed(): boolean {\n return isDisposed;\n },\n\n el: svg,\n\n [Symbol.dispose]() {\n this.dispose();\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sparkline.js","names":[],"sources":["../../../src/charts/sparkline/sparkline.ts"],"sourcesContent":["import { createScope, effect } from '@vielzeug/ripple';\nimport { resolveEasing } from '../../animation/easing';\nimport { resolveMotion } from '../../animation/motion';\nimport { tweenNumber } from '../../animation/tween';\nimport { createChartBase } from '../../core/chart-base';\nimport { resolveMaybeSignal } from '../../core/resolve';\nimport { createSvgElement, setAttributes } from '../../svg/element';\nimport type { Point } from '../../svg/path';\nimport { areaPath, linePath, monotonePath, stepPath } from '../../svg/path';\nimport type { ChartHandle, SparklineConfig, StackSegment } from '../../types';\n\nfunction buildTopPoints(data: number[], width: number, height: number): Point[] {\n if (data.length === 0) return [];\n\n const xStep = width / Math.max(1, data.length - 1);\n const min = Math.min(...data);\n const max = Math.max(...data);\n const yRange = max - min || 1;\n\n return data.map((v, i) => ({\n x: i * xStep,\n y: height - ((v - min) / yRange) * height,\n }));\n}\n\nfunction buildAreaPath(\n data: number[],\n width: number,\n height: number,\n curve: SparklineConfig['curve'] = 'linear',\n): string {\n if (data.length === 0) return '';\n\n const top = buildTopPoints(data, width, height);\n const bottom = top.map((p) => ({ x: p.x, y: height }));\n\n return areaPath(top, bottom, curve ?? 'linear');\n}\n\nfunction buildPath(data: number[], width: number, height: number, curve: SparklineConfig['curve']): string {\n if (data.length === 0) return '';\n\n const points = buildTopPoints(data, width, height);\n\n return curve === 'monotone' ? monotonePath(points) : curve === 'step' ? stepPath(points) : linePath(points);\n}\n\nfunction renderSparkBars(\n parent: SVGGElement,\n data: number[],\n width: number,\n height: number,\n color: string,\n transition?: SparklineConfig['transition'],\n disposalSignal?: AbortSignal,\n): void {\n const count = data.length;\n const barW = Math.max(1, width / count - 1);\n const gap = width / count;\n const min = Math.min(0, ...data);\n const max = Math.max(...data);\n const yRange = max - min || 1;\n const motion = resolveMotion(transition, 0);\n const dur = motion.duration;\n const easing = resolveEasing(motion.easing);\n\n while (parent.children.length > count) {\n const last = parent.lastElementChild;\n\n if (last) parent.removeChild(last);\n }\n\n for (let i = 0; i < count; i++) {\n const finalH = Math.max(1, ((data[i] - min) / yRange) * height);\n const finalY = height - finalH;\n\n let rect = parent.children[i] as SVGRectElement | undefined;\n\n if (!rect) {\n rect = createSvgElement('rect', { class: 'prism-spark-bar' });\n parent.appendChild(rect);\n }\n\n setAttributes(rect, { fill: color, width: barW, x: i * gap });\n\n if (dur > 0 && !rect.hasAttribute('data-init')) {\n rect.setAttribute('data-init', '1');\n setAttributes(rect, { height: 0, y: height });\n\n let start: number | null = null;\n const from = { h: 0, y: height };\n const to = { h: finalH, y: finalY };\n\n const frame = (ts: number) => {\n if (disposalSignal?.aborted) return;\n\n if (start === null) start = ts;\n\n const t = easing(Math.min(1, (ts - start) / dur));\n\n setAttributes(rect!, {\n height: tweenNumber(from.h, to.h, t),\n y: tweenNumber(from.y, to.y, t),\n });\n\n if (t < 1) requestAnimationFrame(frame);\n };\n\n requestAnimationFrame(frame);\n } else {\n rect.setAttribute('data-init', '1');\n setAttributes(rect, { height: finalH, y: finalY });\n }\n }\n}\n\nfunction isStackData(data: number[] | StackSegment[]): data is StackSegment[] {\n return data.length > 0 && data[0] !== null && typeof data[0] === 'object';\n}\n\nfunction buildRoundedStackRect(\n x: number,\n y: number,\n w: number,\n h: number,\n r: number,\n roundLeft: boolean,\n roundRight: boolean,\n): string {\n const maxR = Math.min(r, w / 2, h / 2);\n const tl = roundLeft ? maxR : 0;\n const bl = roundLeft ? maxR : 0;\n const tr = roundRight ? maxR : 0;\n const br = roundRight ? maxR : 0;\n\n return [\n `M${x + tl},${y}`,\n `H${x + w - tr}`,\n tr ? `Q${x + w},${y} ${x + w},${y + tr}` : '',\n `V${y + h - br}`,\n br ? `Q${x + w},${y + h} ${x + w - br},${y + h}` : '',\n `H${x + bl}`,\n bl ? `Q${x},${y + h} ${x},${y + h - bl}` : '',\n `V${y + tl}`,\n tl ? `Q${x},${y} ${x + tl},${y}` : '',\n 'Z',\n ]\n .filter(Boolean)\n .join('');\n}\n\nfunction defaultStackColor(i: number): string {\n return `var(--prism-color-${(i % 8) + 1})`;\n}\n\nexport function createSparkline(container: HTMLElement, config: SparklineConfig): ChartHandle {\n const variant = config.variant ?? 'line';\n const color = config.color ?? 'var(--prism-color-1)';\n const curve = config.curve ?? 'linear';\n const strokeWidth = config.strokeWidth ?? 1.5;\n const fillOpacity = config.fillOpacity ?? 0.2;\n const dataSignal = resolveMaybeSignal(config.data);\n\n const base = createChartBase(container, {\n ...(config.a11y ? { a11y: config.a11y } : { ariaHidden: true }),\n margin: { bottom: 0, left: 0, right: 0, top: 0 },\n });\n\n const { svg } = base;\n\n svg.classList.add('prism-sparkline');\n\n const innerGroup = createSvgElement('g', { class: 'prism-spark-inner' });\n\n svg.appendChild(innerGroup);\n\n let cleanupInteraction: (() => void) | undefined;\n\n function renderAll(): void {\n const { height: h, width: w } = base.dimensions.value;\n const data = dataSignal.value;\n\n while (innerGroup.firstChild) innerGroup.removeChild(innerGroup.firstChild);\n\n if (data.length === 0) return;\n\n if (variant === 'stack' && isStackData(data)) {\n const stackGroup = createSvgElement('g', { class: 'prism-spark-stack' });\n\n innerGroup.appendChild(stackGroup);\n\n const cornerRadius = config.cornerRadius ?? 4;\n const segs = data as StackSegment[];\n const total = segs.reduce((s, d) => s + Math.max(0, d.value), 0);\n\n if (total > 0) {\n const half = (config.padPixels ?? 0) / 2;\n let xAcc = 0;\n\n segs.forEach((seg, i) => {\n const xStart = Math.round(xAcc);\n\n xAcc += (Math.max(0, seg.value) / total) * w;\n\n const xEnd = i === segs.length - 1 ? w : Math.round(xAcc);\n const isFirst = i === 0;\n const isLast = i === segs.length - 1;\n const drawX = xStart + (isFirst ? 0 : half);\n const drawW = Math.max(0, xEnd - xStart - (isFirst ? 0 : half) - (isLast ? 0 : half));\n const d = buildRoundedStackRect(drawX, 0, drawW, h, cornerRadius, isFirst, isLast);\n const path = createSvgElement('path', { class: 'prism-spark-stack-segment' });\n\n setAttributes(path, { d, fill: seg.color ?? defaultStackColor(i) });\n stackGroup.appendChild(path);\n });\n }\n } else if (variant === 'bar') {\n const barsGroup = createSvgElement('g', { class: 'prism-spark-bars' });\n\n innerGroup.appendChild(barsGroup);\n renderSparkBars(barsGroup, data as number[], w, h, color, config.transition, ac.signal);\n } else {\n if (variant === 'area') {\n const fill = createSvgElement('path', { class: 'prism-spark-fill' });\n const fillD = buildAreaPath(data as number[], w, h, curve);\n\n setAttributes(fill, { d: fillD, fill: color, 'fill-opacity': fillOpacity, stroke: 'none' });\n innerGroup.appendChild(fill);\n }\n\n const path = createSvgElement('path', { class: 'prism-spark-line' });\n const pathD = buildPath(data as number[], w, h, curve);\n\n setAttributes(path, { d: pathD, fill: 'none', stroke: color, 'stroke-width': strokeWidth });\n innerGroup.appendChild(path);\n }\n\n if (!isStackData(data)) attachInteraction(data as number[]);\n }\n\n function attachInteraction(data: number[]): void {\n cleanupInteraction?.();\n cleanupInteraction = undefined;\n\n if (!config.onHover && !config.onClick) return;\n\n if (data.length <= 1) return;\n\n const { width: w } = base.dimensions.value;\n\n svg.style.cursor = 'crosshair';\n\n const xStep = w / (data.length - 1);\n\n const handleMove = (e: MouseEvent) => {\n const rect = svg.getBoundingClientRect();\n const relX = e.clientX - rect.left;\n const idx = Math.max(0, Math.min(data.length - 1, Math.round(relX / xStep)));\n\n config.onHover?.(idx, data[idx]);\n };\n\n const handleLeave = () => config.onHover?.(null, null);\n\n const handleClick = (e: MouseEvent) => {\n if (!config.onClick) return;\n\n const rect = svg.getBoundingClientRect();\n const relX = e.clientX - rect.left;\n const idx = Math.max(0, Math.min(data.length - 1, Math.round(relX / xStep)));\n\n config.onClick(idx, data[idx]);\n };\n\n svg.addEventListener('mousemove', handleMove);\n svg.addEventListener('mouseleave', handleLeave);\n svg.addEventListener('click', handleClick);\n\n cleanupInteraction = () => {\n svg.removeEventListener('mousemove', handleMove);\n svg.removeEventListener('mouseleave', handleLeave);\n svg.removeEventListener('click', handleClick);\n };\n }\n\n const ac = new AbortController();\n\n const scope = createScope();\n\n let isDisposed = false;\n\n try {\n scope.run(() => {\n effect(\n () => {\n renderAll();\n },\n { scheduler: 'microtask' },\n );\n });\n\n return {\n get disposalSignal(): AbortSignal {\n return ac.signal;\n },\n\n dispose() {\n if (isDisposed) return;\n\n isDisposed = true;\n ac.abort();\n cleanupInteraction?.();\n scope.dispose();\n base.dispose();\n },\n\n get disposed(): boolean {\n return isDisposed;\n },\n\n el: svg,\n\n [Symbol.dispose]() {\n this.dispose();\n },\n };\n } catch (error) {\n ac.abort();\n scope.dispose();\n base.dispose();\n throw error;\n }\n}\n"],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ export { createChartBase } from './chart-base';
|
|
|
3
3
|
export type { ChartEventHandlers, RadialScaffoldContext, ScaffoldContext, ScaffoldGroups } from './chart-scaffold';
|
|
4
4
|
export { createChartScaffold, createRadialScaffold } from './chart-scaffold';
|
|
5
5
|
export { chartArea, resolveMargin } from './layout';
|
|
6
|
+
export { resolveMaybeSignal } from './resolve';
|
|
6
7
|
export { observeResize } from './responsive';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnH,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnH,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.cjs","names":[],"sources":["../../src/core/resolve.ts"],"sourcesContent":["import { isReactive, type Readable } from '@vielzeug/ripple';\nimport type { MaybeSignal } from '../types';\n\n/**\n * Normalizes a `MaybeSignal<T>` into a `Readable<T>`. Plain values are wrapped\n * in a constant readable so chart factories can `.value`/`.peek` uniformly and\n * drop repeated `isReactive()` checks per render.\n */\nexport function resolveMaybeSignal<T>(value: MaybeSignal<T>): Readable<T> {\n return isReactive(value)\n ? value\n : {\n peek: () => value,\n subscribe: () => () => {},\n get value() {\n return value;\n },\n };\n}\n"],"mappings":"kCAQA,SAAgB,EAAsB,EAAoC,CACxE,OAAA,EAAO,EAAA,WAAA,CAAW,CAAK,EACnB,EACA,CACE,SAAY,EACZ,kBAAuB,CAAC,EACxB,IAAI,OAAQ,CACV,OAAO,CACT,CACF,CACN"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Readable } from '@vielzeug/ripple';
|
|
2
|
+
import type { MaybeSignal } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes a `MaybeSignal<T>` into a `Readable<T>`. Plain values are wrapped
|
|
5
|
+
* in a constant readable so chart factories can `.value`/`.peek` uniformly and
|
|
6
|
+
* drop repeated `isReactive()` checks per render.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveMaybeSignal<T>(value: MaybeSignal<T>): Readable<T>;
|
|
9
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/core/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAUxE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isReactive as e } from "@vielzeug/ripple";
|
|
2
|
+
//#region src/core/resolve.ts
|
|
3
|
+
function t(t) {
|
|
4
|
+
return e(t) ? t : {
|
|
5
|
+
peek: () => t,
|
|
6
|
+
subscribe: () => () => {},
|
|
7
|
+
get value() {
|
|
8
|
+
return t;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { t as resolveMaybeSignal };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","names":[],"sources":["../../src/core/resolve.ts"],"sourcesContent":["import { isReactive, type Readable } from '@vielzeug/ripple';\nimport type { MaybeSignal } from '../types';\n\n/**\n * Normalizes a `MaybeSignal<T>` into a `Readable<T>`. Plain values are wrapped\n * in a constant readable so chart factories can `.value`/`.peek` uniformly and\n * drop repeated `isReactive()` checks per render.\n */\nexport function resolveMaybeSignal<T>(value: MaybeSignal<T>): Readable<T> {\n return isReactive(value)\n ? value\n : {\n peek: () => value,\n subscribe: () => () => {},\n get value() {\n return value;\n },\n };\n}\n"],"mappings":";;AAQA,SAAgB,EAAsB,GAAoC;CACxE,OAAO,EAAW,CAAK,IACnB,IACA;EACE,YAAY;EACZ,uBAAuB,CAAC;EACxB,IAAI,QAAQ;GACV,OAAO;EACT;CACF;AACN"}
|
package/dist/prism.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@vielzeug/ripple"),t=require("@vielzeug/orbit");var n={"ease-in":e=>e*e,"ease-in-out":e=>e<.5?2*e*e:1-(-2*e+2)**2/2,"ease-out":e=>1-(1-e)*(1-e),linear:e=>e};function r(e){return typeof e==`function`?e:e!==void 0&&Object.hasOwn(n,e)?n[e]:n[`ease-out`]}function i(e,t=300){let n=e?.preference??`system`,r=typeof matchMedia<`u`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches,i=n===`never`||n===`system`&&r?0:e?.duration??t;return{...e,duration:i,stagger:Math.max(0,e?.stagger??0)}}function a(e,t,n){return e+(t-e)*n}function o(e,t,n,o){let s=i(t),c=s.duration,l=r(s.easing),u=s.stagger;if(c===0||e.length===0){for(let t of e)for(let[e,{to:n}]of Object.entries(t.attrs))t.el.setAttribute(e,String(n));return n?.(),()=>{}}let d=null,f=!1,p=Math.max(c,c+u*(e.length-1));function m(t){if(f||o?.aborted)return;d===null&&(d=t);let r=t-d;for(let t=0;t<e.length;t++){let n=e[t],i=u*t,o=Math.max(0,r-i),s=Math.min(1,o/c),d=l(s);for(let[e,{from:t,to:r}]of Object.entries(n.attrs))n.el.setAttribute(e,String(a(t,r,d)))}r<p?requestAnimationFrame(m):n?.()}return requestAnimationFrame(m),()=>{f=!0}}var s=`http://www.w3.org/2000/svg`;function c(e,t){let n=document.createElementNS(s,e);return t&&l(n,t),n}function l(e,t){for(let[n,r]of Object.entries(t)){if(r===void 0){e.removeAttribute(n);continue}typeof r==`number`&&!Number.isFinite(r)&&`${n}${e.tagName}${r}`,e.setAttribute(n,String(r))}}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function d(e,t){let n=c(`text`,t);return n.textContent=e,n}function f(e){return typeof e.bandwidth==`function`}function p(e,t){return f(e)?e.map(t)+e.bandwidth()/2:e.map(t)}var m=e=>e instanceof Date?e.toLocaleDateString(void 0,{month:`short`,year:`numeric`}):String(e);function h(e,t,n){let r=e.position??n,i=r===`bottom`||r===`top`?Math.max(2,Math.floor(t/80)):Math.max(2,Math.floor(t/50));return e.tickCount??i}function g(e,t,n,r,i=`bottom`){u(e);let a=n.position??i,o=a===`bottom`||a===`top`,s=a===`top`||a===`left`,f=s?-1:1,g=c(`line`,{"aria-hidden":`true`,class:`prism-axis-line`,x1:0,x2:o?r:0,y1:0,y2:o?0:r});e.appendChild(g);let _=t.ticks(h(n,r,i)),v=n.tickFormat??m;for(let n of _){let r=p(t,n),i=c(`line`,{"aria-hidden":`true`,class:`prism-axis-tick`,x1:o?r:0,x2:o?r:6*f,y1:o?0:r,y2:o?6*f:r});e.appendChild(i);let a=d(v(n),{"aria-hidden":`true`,class:`prism-axis-label`,"dominant-baseline":o?s?`auto`:`hanging`:`middle`,"text-anchor":o?`middle`:s?`end`:`start`,x:o?r:6*f*1.5,y:o?6*f*1.5:r});e.appendChild(a)}if(n.label){let t=d(n.label,{class:`prism-axis-title`,"dominant-baseline":`middle`,"text-anchor":`middle`});o?l(t,{x:r/2,y:6*f*3.5}):l(t,{transform:`translate(${6*f*4}, ${r/2}) rotate(-90)`}),e.appendChild(t)}}function _(e,t,n,r,i,a=10){u(e);let o=n!==!0&&n.color||void 0,s=n!==!0&&n.dash||void 0,l=t.ticks(a);for(let n of l){let a=p(t,n),l={class:`prism-grid-line`,stroke:o??`var(--prism-grid-color)`,"stroke-dasharray":s,"stroke-opacity":`var(--prism-grid-opacity)`};i===`vertical`?Object.assign(l,{x1:a,x2:a,y1:0,y2:r}):Object.assign(l,{x1:0,x2:r,y1:a,y2:a}),e.appendChild(c(`line`,l))}}function v(e,t){let n=Math.floor(Math.log10(e)),r=e/10**n,i;return i=t?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10,i*10**n}function y(e,t,n){if(!Number.isFinite(e)||!Number.isFinite(t))return[0,1];if(e>t&&([e,t]=[t,e]),e===t)return[e-1,t+1];let r=v(v(t-e,!1)/Math.max(1,n-1),!0);return[Math.floor(e/r)*r,Math.ceil(t/r)*r]}function b(e){let t=()=>e.nice===!1?e.domain:y(e.domain[0],e.domain[1],10),n=()=>e.range;return{get domain(){return t()},invert(e){let[r,i]=t(),[a,o]=n();return o===a?r:r+(e-a)/(o-a)*(i-r)},map(r){let[i,a]=t(),[o,s]=n();if(a===i)return o;let c=(r-i)/(a-i);return e.clamp&&(c=Math.max(0,Math.min(1,c))),o+c*(s-o)},get range(){return n()},ticks(e=10){if(e<=0)return[];let[n,r]=t();if(n===r||e===1)return[n];let i=Math.min(n,r),a=Math.max(n,r),o=v(v(a-i,!1)/(e-1),!0),s=Math.ceil(i/o)*o,c=Math.floor(a/o)*o,l=[];for(let e=s;e<=c+o*.5;e+=o)l.push(Math.round(e*0xe8d4a51000)/0xe8d4a51000);return l}}}var x=1e3,S=60*x,C=60*S,w=24*C,T=30*w,E=365*w,D=[x,5*x,15*x,30*x,S,5*S,15*S,30*S,C,3*C,6*C,12*C,w,7*w,T,3*T,6*T,E];function O(e,t){let n=Math.abs(e)/Math.max(1,t);for(let e of D)if(e>=n)return e;return E}function k(e,t){let[n,r]=e;n.getTime()>r.getTime()&&([n,r]=[r,n]);let i=O(r.getTime()-n.getTime(),t);return[new Date(Math.floor(n.getTime()/i)*i),new Date(Math.ceil(r.getTime()/i)*i)]}function A(e){let t=()=>e.nice===!1?e.domain:k(e.domain,10),n=()=>e.range;return{get domain(){return t()},invert(e){let[r,i]=t(),[a,o]=n();if(o===a)return r;let s=(e-a)/(o-a);return new Date(r.getTime()+s*(i.getTime()-r.getTime()))},map(e){let[r,i]=t(),[a,o]=n(),s=i.getTime()-r.getTime();return s===0?a:a+(e.getTime()-r.getTime())/s*(o-a)},get range(){return n()},ticks(e=10){let[n,r]=t(),i=O(r.getTime()-n.getTime(),e),a=Math.ceil(n.getTime()/i)*i,o=[];for(let e=a;e<=r.getTime();e+=i)o.push(new Date(e));return o}}}function j(e,t){if(e.length===0||e.some(e=>e==null)||e.some(e=>typeof e==`number`&&!Number.isFinite(e)))return b({domain:[0,1],range:[0,t]});if(e[0]instanceof Date){let n=e,r=Math.min(...n.map(Number)),i=Math.max(...n.map(Number));return A({domain:[new Date(r),new Date(r===i?i+1:i)],range:[0,t]})}let n=e,r=Math.min(...n),i=Math.max(...n);return b({domain:[r,r===i?i+1:i],nice:!1,range:[0,t]})}function M(e,t,n=!0){if(e.length===0||e.some(e=>e==null)||e.some(e=>!Number.isFinite(e)))return b({domain:[0,1],range:[t,0]});let r=Math.min(...e),i=n?Math.min(0,r):r,a=Math.max(...e);return b({domain:[i,i===a?a+1:a],range:[t,0]})}function N(e){return e===!0?`bottom`:e.position??`bottom`}function P(e,t){let n=N(t),r=document.createElement(`div`);r.className=`prism-legend prism-legend-${n}`,n===`top`?e.insertBefore(r,e.firstChild):e.appendChild(r);let i=()=>{r.remove()};return{dispose:i,el:r,[Symbol.dispose]:i,update(e){r.innerHTML=``;for(let t of e){let e=document.createElement(`div`);e.className=`prism-legend-item`;let n=document.createElement(`span`);n.className=`prism-legend-dot`,n.style.backgroundColor=t.color;let i=document.createElement(`span`);i.className=`prism-legend-label`,i.textContent=t.name,e.appendChild(n),e.appendChild(i),r.appendChild(e)}}}}function ee(e,n){getComputedStyle(e).position===`static`&&(e.style.position=`relative`);let r=e.ownerDocument.createElement(`div`);r.className=`prism-tooltip`,r.style.position=`absolute`,r.style.pointerEvents=`none`,r.style.top=`0`,r.style.left=`0`,r.setAttribute(`role`,`status`),r.setAttribute(`aria-live`,`polite`),e.appendChild(r);let i=n!==!0&&n?.offset||8,a=n===!0?void 0:n?.render,o=n===!0?void 0:n?.sanitize,s=null,c=null,l=!1,u=()=>{c!==null&&(clearTimeout(c),c=null)},d=()=>{s!==null&&(cancelAnimationFrame(s),s=null)},f=()=>{d(),u(),r.remove()};return{dispose:f,el:r,hide(){d(),u(),l=!1,r.style.opacity=`0`,c=setTimeout(()=>{c=null,l||(r.textContent=``)},150)},show(n,c,d,f){if(!e.isConnected)return;if(u(),a){let e=a(d,f);o?r.innerHTML=o(e):r.textContent=e}else r.textContent=`${f.name}: ${d.value}`;let{x:p,y:m}=(0,t.computePosition)({getBoundingClientRect:()=>{let t=e.getBoundingClientRect();return{bottom:t.top+c,height:0,left:t.left+n,right:t.left+n,top:t.top+c,width:0,x:t.left+n,y:t.top+c}}},r,{containingBlock:e,middleware:[(0,t.offset)(i),(0,t.flip)(),(0,t.shift)({padding:8})],placement:`top`});if(r.style.left=`${p}px`,r.style.top=`${m}px`,l){s===null&&(r.style.opacity=`1`);return}l=!0,r.style.opacity=`0`,s=requestAnimationFrame(()=>{s=null,l&&(r.style.opacity=`1`)})},[Symbol.dispose]:f}}var te=class extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},ne=class extends te{},F={bottom:40,left:50,right:20,top:20};function re(e){return{...F,...e}}function I(e,t,n){return{height:Math.max(0,t-n.top-n.bottom),width:Math.max(0,e-n.left-n.right)}}function ie(e,t){let n=null,r=new ResizeObserver(e=>{n!==null&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{n=null;let r=e[0];if(r){let{height:e,width:n}=r.contentRect;t(n,e)}})});return r.observe(e),()=>{n!==null&&cancelAnimationFrame(n),r.disconnect()}}function ae(t,n){if(!(typeof t==`object`&&t&&t.nodeType===1&&typeof t.appendChild==`function`&&typeof t.getBoundingClientRect==`function`)){let e=t;throw new ne(`Invalid chart configuration: \`container\` must be a DOM Element, received ${e===null?`null`:typeof e==`object`?e.constructor?.name??`object`:typeof e}.`)}let r=re(n.margin),i=n.a11y,a=c(`svg`,{...n.ariaHidden||i?.decorative?{"aria-hidden":`true`}:{...i?{"aria-label":i.ariaLabel,tabindex:`0`}:{},role:`img`},class:`prism-chart`,style:`display:block;width:100%;height:100%`}),o=c(`g`,{class:`prism-chart-area`,transform:`translate(${r.left},${r.top})`});a.appendChild(o);let s=t.getBoundingClientRect();s.width===0||s.height;let u=typeof getComputedStyle<`u`?getComputedStyle(t):null;u&&u.position;let d=(0,e.signal)({height:s.height||300,margin:r,width:s.width||600}),f=ie(t,(e,t)=>{d.value={height:t,margin:r,width:e},l(a,{height:t,viewBox:`0 0 ${e} ${t}`,width:e})}),p=s.width||600,m=s.height||300;return l(a,{height:m,viewBox:`0 0 ${p} ${m}`,width:p}),t.appendChild(a),{chartArea:o,dimensions:d,dispose(){f(),a.remove()},svg:a}}function L(e,t,n,r){u(e.series),u(e.grid),u(e.xAxis),u(e.yAxis),t?.update([]),n?.hide(),r?.hide()}function oe(t,n,r,i){let a=ae(t,{a11y:n.a11y,margin:n.margin}),o=n.tooltip?ee(t,n.tooltip):null,s=n.legend?P(t,n.legend):null,c=new AbortController,l=r(a,o,s,c.signal),u=!1,d=se(a.svg),f=(0,e.createScope)();f.run(()=>{(0,e.effect)(()=>{u||d.attach(i(l))},{scheduler:`microtask`})});let p=[];if(n.plugins){let e={container:t,dimensions:a.dimensions,disposalSignal:c.signal,svg:a.svg};for(let t of n.plugins)try{t.install(e),p.push(t)}catch{}}return{get disposalSignal(){return c.signal},dispose(){if(!u){u=!0,c.abort(),d.detach();for(let e of p)try{e.dispose()}catch{}o?.dispose(),s?.dispose(),f.dispose(),a.dispose()}},get disposed(){return u},el:a.svg,[Symbol.dispose](){this.dispose()}}}function se(e){let t=null;return{attach(n){t&&=(t.onMouseMove&&e.removeEventListener(`mousemove`,t.onMouseMove),t.onMouseLeave&&e.removeEventListener(`mouseleave`,t.onMouseLeave),t.onClick&&e.removeEventListener(`click`,t.onClick),t.onKeyDown&&e.removeEventListener(`keydown`,t.onKeyDown),null),n&&(t=n,n.onMouseMove&&e.addEventListener(`mousemove`,n.onMouseMove),n.onMouseLeave&&e.addEventListener(`mouseleave`,n.onMouseLeave),n.onClick&&e.addEventListener(`click`,n.onClick),n.onKeyDown&&e.addEventListener(`keydown`,n.onKeyDown))},detach(){this.attach(void 0)}}}function R(e,t,n){return oe(e,t,(t,n,r,i)=>{let a={grid:c(`g`,{"aria-hidden":`true`,class:`prism-grid`}),series:c(`g`,{class:`prism-series`}),xAxis:c(`g`,{class:`prism-x-axis`}),yAxis:c(`g`,{class:`prism-y-axis`})};return t.chartArea.appendChild(a.grid),t.chartArea.appendChild(a.xAxis),t.chartArea.appendChild(a.yAxis),t.chartArea.appendChild(a.series),{chartArea:t.chartArea,container:e,dimensions:t.dimensions,disposalSignal:i,groups:a,legend:r,svg:t.svg,tooltip:n}},n)}function ce(e,t,n){return oe(e,t,(t,n,r,i)=>({container:e,dimensions:t.dimensions,disposalSignal:i,legend:r,svg:t.svg,tooltip:n}),n)}function le(e,t){let n=t===!0||t?.vertical!==!1,r=t!==!0&&t?.horizontal===!0,i=t===!0||t?.snap!==!1,a=c(`g`,{"aria-hidden":`true`,class:`prism-crosshair`,style:`display:none`}),o=n?c(`line`,{class:`prism-crosshair-v`,"stroke-dasharray":`var(--prism-crosshair-dash, 4 2)`}):null,s=r?c(`line`,{class:`prism-crosshair-h`,"stroke-dasharray":`var(--prism-crosshair-dash, 4 2)`}):null;o&&a.appendChild(o),s&&a.appendChild(s),e.appendChild(a);let u=c(`text`,{"aria-live":`polite`,class:`prism-crosshair-live`,role:`status`,x:-9999,y:-9999});return e.appendChild(u),{hide(){a.style.display=`none`,u.textContent=``},show(e,t,n,r,i){a.style.display=``,o&&l(o,{x1:e,x2:e,y1:0,y2:r}),s&&l(s,{x1:0,x2:n,y1:t,y2:t}),i!==void 0&&(u.textContent=i)},snap:i}}function z(e){return e instanceof Date?`date:${e.getTime()}`:`${typeof e}:${String(e)}`}function ue(e,t){let n=[],r=new Map;return{domain:n,labels:r,series:e.map((e,i)=>{let a=new Map;for(let o of t[i]??[]){let t=z(o.key);if(a.has(t)){`${String(o.key)}${e.name}`;continue}a.set(t,o),r.has(t)||(r.set(t,o.key),n.push(t))}return{byKey:a,config:e}})}}function B(e,t,n,r){let i=e.getBoundingClientRect();return{x:t.clientX-i.left-n,y:t.clientY-i.top-r}}function de(e,t,n){let r=null,i=1/0;for(let a=0;a<t.length;a++)for(let o=0;o<(t[a]?.length??0);o++){let s=e[a]?.[o],c=t[a]?.[o];if(!s||!c)continue;let l=Math.abs(c.x-n);l<i&&(i=l,r=s.key)}return r}function V(e,t,n,r){let i=z(n),a=null,o=1/0;for(let n=0;n<t.length;n++){let s=e[n]?.findIndex(e=>z(e.key)===i)??-1,c=s===-1?void 0:e[n]?.[s],l=s===-1?void 0:t[n]?.[s];if(!c||!l)continue;let u=Number.isFinite(r)?Math.abs(l.y-r):0;u<o&&(o=u,a={datum:c,point:l,seriesIndex:n})}return a}function fe(e){let t=0;return{onClick:t=>{if(!e.onClick)return;let n=e.getPoints();if(n.length===0||n[0].length===0)return;let r=e.dims(),i=B(e.svg,t,r.margin.left,r.margin.top),a=I(r.width,r.height,r.margin);if(i.x<0||i.x>a.width||i.y<0||i.y>a.height)return;let o=de(e.getData(),n,i.x);if(o===null)return;let s=V(e.getData(),n,o,i.y),c=s?e.getSeriesList()[s.seriesIndex]:void 0;s&&c&&e.onClick({datum:s.datum,originalEvent:t,series:c})},onKeyDown:n=>{let r=e.getData(),i=e.getPoints(),a=[...new Map(r.flat().map(e=>[z(e.key),e.key])).values()];if(a.length!==0){if(n.key===`ArrowLeft`||n.key===`ArrowRight`){n.preventDefault(),t=Math.max(0,Math.min(a.length-1,t+(n.key===`ArrowLeft`?-1:1)));let o=a[t],s=V(r,i,o,1/0),c=s?e.getSeriesList()[s.seriesIndex]:void 0;if(!s||!c)return;let l=e.tooltip?void 0:`${c.name}: ${s.datum.value}`;e.crosshair?.show(s.point.x,s.point.y,e.dims().width,e.dims().height,l),e.tooltip?.show(s.point.x+e.dims().margin.left,s.point.y+e.dims().margin.top,s.datum,c),e.onHover?.({datum:s.datum,originalEvent:n,series:c})}if((n.key===`Enter`||n.key===` `)&&e.onClick){n.preventDefault();let o=a[t],s=V(r,i,o,1/0),c=s?e.getSeriesList()[s.seriesIndex]:void 0;s&&c&&e.onClick({datum:s.datum,originalEvent:n,series:c})}n.key===`Escape`&&(e.crosshair?.hide(),e.tooltip?.hide(),e.onHover?.(null))}},onMouseLeave:()=>{e.crosshair?.hide(),e.tooltip?.hide(),e.onHover?.(null)},onMouseMove:t=>{let n=e.getPoints();if(n.length===0||n[0].length===0)return;let r=e.dims(),i=B(e.svg,t,r.margin.left,r.margin.top),a=I(r.width,r.height,r.margin);if(i.x<0||i.x>a.width||i.y<0||i.y>a.height){e.crosshair?.hide(),e.tooltip?.hide();return}let o=de(e.getData(),n,i.x);if(o===null)return;let s=V(e.getData(),n,o,i.y),c=s?e.getSeriesList()[s.seriesIndex]:void 0,l=e.crosshair?.snap===!1?i.x:s?.point.x??i.x,u=e.crosshair?.snap===!1?i.y:s?.point.y??i.y,d=!e.tooltip&&c&&s?`${c.name}: ${s.datum.value}`:void 0;e.crosshair?.show(l,u,a.width,a.height,d),s&&c&&(e.tooltip?.show(s.point.x+r.margin.left,s.point.y+r.margin.top,s.datum,c),e.onHover?.({datum:s.datum,originalEvent:t,series:c}))}}}var H=8;function pe(e){let t=document.documentElement;if(e.colors)for(let n=0;n<H;n++){let r=e.colors[n];r?t.style.setProperty(`--prism-color-${n+1}`,r):t.style.removeProperty(`--prism-color-${n+1}`)}e.fontFamily&&t.style.setProperty(`--prism-font-family`,e.fontFamily),e.gridColor&&t.style.setProperty(`--prism-grid-color`,e.gridColor),e.gridOpacity!==void 0&&t.style.setProperty(`--prism-grid-opacity`,String(e.gridOpacity))}function me(){let e=document.documentElement;for(let t=1;t<=H;t++)e.style.removeProperty(`--prism-color-${t}`);e.style.removeProperty(`--prism-font-family`),e.style.removeProperty(`--prism-grid-color`),e.style.removeProperty(`--prism-grid-opacity`)}function U(e,t){return t??`var(--prism-color-${e%H+1})`}function W(e){if(e.length===0)return``;let t=`M${e[0].x},${e[0].y}`;for(let n=1;n<e.length;n++)t+=`L${e[n].x},${e[n].y}`;return t}function G(e){if(e.length<3)return W(e);let t=e.length,n=[];for(let r=0;r<t;r++)r===0?n.push({x:e[1].x-e[0].x,y:e[1].y-e[0].y}):r===t-1?n.push({x:e[t-1].x-e[t-2].x,y:e[t-1].y-e[t-2].y}):n.push({x:(e[r+1].x-e[r-1].x)/2,y:(e[r+1].y-e[r-1].y)/2});let r=`M${e[0].x},${e[0].y}`;for(let i=0;i<t-1;i++){let t=e[i],a=e[i+1],o=n[i],s=n[i+1],c=(a.x-t.x)/3;r+=`C${t.x+c},${t.y+o.y/3},${a.x-c},${a.y-s.y/3},${a.x},${a.y}`}return r}function K(e){if(e.length===0)return``;let t=`M${e[0].x},${e[0].y}`;for(let n=1;n<e.length;n++){let r=(e[n-1].x+e[n].x)/2;t+=`H${r}V${e[n].y}H${e[n].x}`}return t}function q(e,t,n=`linear`){if(e.length===0)return``;let r=n===`monotone`?G(e):n===`step`?K(e):W(e),i=[...t].reverse();if(i.length>0){r+=`L${i[0].x},${i[0].y}`;for(let e=1;e<i.length;e++)r+=`L${i[e].x},${i[e].y}`}return r+=`Z`,r}var J=new WeakMap,Y=new WeakMap;function he(e,t){return t===`monotone`?G(e):t===`step`?K(e):W(e)}function ge(e,t,n,o){let s=i(o.transition,0),u=s.duration,d=r(s.easing),f=e.querySelector(`.prism-area-fill`);f||(f=c(`path`,{class:`prism-area-fill`}),e.appendChild(f)),l(f,{fill:o.color,"fill-opacity":o.fillOpacity,stroke:`none`});let p=null;if(o.showLine?(p=e.querySelector(`.prism-area-line`),p||(p=c(`path`,{class:`prism-area-line`,fill:`none`}),e.appendChild(p)),l(p,{stroke:o.color,"stroke-width":2})):e.querySelector(`.prism-area-line`)?.remove(),u===0){let e=t.map(e=>({x:e.x,y:n}));l(f,{d:q(t,e,o.curve)}),p&&l(p,{d:he(t,o.curve)});return}if(J.get(e)?.(),!f.hasAttribute(`d`)){let r=t.map(e=>({x:e.x,y:n}));l(f,{d:q(t,r,o.curve)}),p&&l(p,{d:he(t,o.curve)}),Y.set(e,t);return}let m=Y.get(e)??t,h=t.map((e,n)=>m[n]??m[m.length-1]??t[n]),g=null;function _(r){if(o.disposalSignal?.aborted){J.delete(e);return}g===null&&(g=r);let i=Math.min(1,(r-g)/u),s=d(i),c=t.map((e,t)=>({x:a(h[t].x,e.x,s),y:a(h[t].y,e.y,s)})),m=c.map(e=>({x:e.x,y:n}));if(l(f,{d:q(c,m,o.curve)}),p&&l(p,{d:he(c,o.curve)}),i<1){let t=requestAnimationFrame(_);J.set(e,()=>cancelAnimationFrame(t))}else J.delete(e),Y.set(e,t)}Y.set(e,h);let v=requestAnimationFrame(_);J.set(e,()=>cancelAnimationFrame(v))}function _e(e,t,n){return e.some(e=>e.key==null)||e.some(e=>typeof e.key==`string`),e.map(e=>({x:t.map(e.key),y:n.map(e.value)}))}function ve(t,n){let r=null;return R(t,n,t=>{let{groups:i,legend:a,tooltip:o}=t,s=t.dimensions.value,l=I(s.width,s.height,s.margin),u=(0,e.isReactive)(n.series)?n.series.value:n.series,d=u.map(t=>(0,e.isReactive)(t.data)?t.data.value:t.data),f=d.flat().map(e=>e.key),p=d.flat().map(e=>e.value);if(f.length===0){L(i,a,o,r);return}n.crosshair&&!r&&(r=le(t.chartArea,n.crosshair));let m=j(f,l.width),v=M(p,l.height),y=v.map(0);for(n.yAxis?.grid&&_(i.grid,v,n.yAxis.grid,l.width,`horizontal`,h(n.yAxis,l.height,`left`)),n.xAxis?.grid&&_(i.grid,m,n.xAxis.grid,l.height,`vertical`,h(n.xAxis,l.width,`bottom`)),n.xAxis&&(i.xAxis.setAttribute(`transform`,`translate(0,${l.height})`),g(i.xAxis,m,n.xAxis,l.width,`bottom`)),n.yAxis&&g(i.yAxis,v,n.yAxis,l.height,`left`);i.series.children.length>u.length;)i.series.removeChild(i.series.lastChild);let b=[];for(let e=0;e<u.length;e++){let r=u[e],a=i.series.children[e];a||(a=c(`g`,{class:`prism-area-series`}),i.series.appendChild(a));let o=_e(d[e],m,v);b.push(o),ge(a,o,y,{color:U(e,r.color),curve:r.curve??`linear`,disposalSignal:t.disposalSignal,fillOpacity:r.fillOpacity??.3,showLine:r.showLine!==!1,transition:n.transition})}return a?.update(u.map((e,t)=>({color:U(t,e.color),name:e.name}))),o?.hide(),fe({crosshair:r,dims:()=>t.dimensions.value,getData:()=>d,getPoints:()=>b,getSeriesList:()=>(0,e.isReactive)(n.series)?n.series.value:n.series,onClick:n.onClick,onHover:n.onHover,svg:t.svg,tooltip:o})})}function ye(e){let t=()=>e.domain,n=()=>e.range,r=()=>{let r=t().length;if(r===0)return 0;let[i,a]=n(),o=e.padding??.1;return(a-i)/(r+(r-1)*o+(e.paddingOuter??o)*2)};return{bandwidth:r,get domain(){return t()},gap(){let t=e.padding??.1;return r()*t},map(i){let a=t().indexOf(i);if(a===-1)return`${i}`,0;let[o]=n(),s=r(),c=e.padding??.1;return o+(e.paddingOuter??c)*s+a*(s+s*c)},get range(){return n()},ticks(e){let n=t();if(e===void 0||e>=n.length)return[...n];if(e<=0)return[];let r=Math.ceil(n.length/e);return n.filter((e,t)=>t%r===0)}}}function be(e,t,n){for(let r=0;r<t.length;r++){let i=n.bandCenter(t[r])-n.bandwidth/2;if(e>=i&&e<i+n.bandwidth)return r}return-1}function xe(e,t,n,r,i){if(r.stacked)if(r.horizontal){for(let n=0;n<i;n++)if(r.valueScale.map(r.stackedTops[n]?.[t]??0)>=e.x)return n;return i-1}else{for(let n=0;n<i;n++)if(r.valueScale.map(r.stackedTops[n]?.[t]??0)<=e.y)return n;return i-1}{let a=r.bandwidth/i,o=r.bandCenter(n[t])-r.bandwidth/2,s=r.horizontal?e.y-o:e.x-o,c=Math.floor(s/a);return Math.max(0,Math.min(i-1,c))}}function Se(e,t,n,r,i){let a=i-1,o=r.stacked?r.stackedTops[a]?.[t]??0:Math.max(...Array.from({length:i},(e,r)=>n[r]?.[t]?.value??0)),s=r.valueScale.map(o);return r.horizontal?e.x>s:e.y<s}var Ce=new WeakMap;function we(e,t,n,r,i,a){for(;e.children.length>t.length;){let t=e.lastElementChild;t&&e.removeChild(t)}let s=n.bandwidth(),u=a.stacked?s:s/a.seriesCount,d=a.stacked?0:u*a.seriesIndex,f=a.horizontal??!1,p=[],m=[];for(let o=0;o<t.length;o++){let s=t[o],h=n.map(s.key)+d,g=a.baselineYs?a.baselineYs[o]:i,_=r.map(s.y),v=e.children[o],y=!v;if(v||(v=c(`rect`,{class:`prism-bar`}),e.appendChild(v)),v.style.display=s.present?``:`none`,f){let e=Math.max(0,Math.abs(g-_)),t=Math.min(_,g);l(v,{fill:a.color,height:Math.max(0,u-1),rx:a.borderRadius,ry:a.borderRadius,y:h}),a.transition?y?(l(v,{width:0,x:g}),p.push({attrs:{width:{from:0,to:e},x:{from:g,to:t}},el:v})):m.push({attrs:{width:{from:Number(v.getAttribute(`width`)??e),to:e},x:{from:Number(v.getAttribute(`x`)??t),to:t}},el:v}):l(v,{width:e,x:t})}else{let e=Math.max(0,Math.abs(g-_)),t=Math.min(_,g);l(v,{fill:a.color,rx:a.borderRadius,ry:a.borderRadius,width:Math.max(0,u-1),x:h}),a.transition?y?(l(v,{height:0,y:g}),p.push({attrs:{height:{from:0,to:e},y:{from:g,to:t}},el:v})):m.push({attrs:{height:{from:Number(v.getAttribute(`height`)??e),to:e},y:{from:Number(v.getAttribute(`y`)??t),to:t}},el:v}):l(v,{height:e,y:t})}}if(a.transition){Ce.get(e)?.();let t=[];p.length>0&&t.push(o(p,a.transition,void 0,a.disposalSignal)),m.length>0&&t.push(o(m,{...a.transition,stagger:0},void 0,a.disposalSignal)),Ce.set(e,()=>{for(let e of t)e()})}}function Te(e){return{horizontal:e===`grouped-horizontal`||e===`stacked-horizontal`,stacked:e===`stacked`||e===`stacked-horizontal`}}function Ee(t,n){return R(t,n,t=>{let{groups:r,legend:i,tooltip:a}=t,o=t.dimensions.value,s=I(o.width,o.height,o.margin),l=(0,e.isReactive)(n.series)?n.series.value:n.series,u=ue(l,l.map(t=>(0,e.isReactive)(t.data)?t.data.value:t.data)),d=u.domain,f=u.series.map(({byKey:e})=>d.map(t=>e.get(t))),p=e=>{if(e)return{...e,tickFormat:t=>{let n=String(t),r=u.labels.get(n)??t;return e.tickFormat?e.tickFormat(r):String(r)}}};if(d.length===0){L(r,i,a);return}let{horizontal:m,stacked:v}=Te(n.variant??`grouped`),y,x;if(v){f.some(e=>e.some(e=>(e?.value??0)<0));let e=d.map((e,t)=>f.reduce((e,n)=>e+Math.max(0,n[t]?.value??0),0));y=Math.max(...e),x=0}else{let e=f.flatMap(e=>e.flatMap(e=>e?[e.value]:[]));y=Math.max(...e),x=Math.min(0,...e)}let S=ye(m?{domain:d,range:[0,s.height]}:{domain:d,range:[0,s.width]}),C=b(m?{domain:[x,y],range:[0,s.width]}:{domain:[x,y],range:[s.height,0]}),w=[],T=Object.create(null);for(let e of d)T[e]=0;let E={bandCenter:e=>S.map(e)+S.bandwidth()/2,bandwidth:S.bandwidth(),baselinePx:C.map(0),horizontal:m,stacked:v,stackedTops:w,valueScale:C};if(m){n.xAxis?.grid&&_(r.grid,C,n.xAxis.grid,s.height,`vertical`,h(n.xAxis,s.width,`bottom`));let e=p(n.yAxis);e&&g(r.yAxis,S,e,s.height,`left`),n.xAxis&&(r.xAxis.setAttribute(`transform`,`translate(0,${s.height})`),g(r.xAxis,C,n.xAxis,s.width,`bottom`))}else{n.yAxis?.grid&&_(r.grid,C,n.yAxis.grid,s.width,`horizontal`,h(n.yAxis,s.height,`left`));let e=p(n.xAxis);e&&(r.xAxis.setAttribute(`transform`,`translate(0,${s.height})`),g(r.xAxis,S,e,s.width,`bottom`)),n.yAxis&&g(r.yAxis,C,n.yAxis,s.height,`left`)}for(;r.series.children.length>l.length;){let e=r.series.lastElementChild;e&&r.series.removeChild(e)}for(let e=0;e<l.length;e++){let i=l[e],a=r.series.children[e];a||(a=c(`g`,{class:`prism-bar-series`}),r.series.appendChild(a));let o=d.map((t,n)=>{let r=f[e]?.[n];if(v){let e=T[t]??0,n=e+Math.max(0,r?.value??0);return T[t]=n,{base:e,key:t,present:r!==void 0,y:n}}return{base:0,key:t,present:r!==void 0,y:r?.value??0}});w[e]=o.map(e=>e.y);let s=v?o.map(e=>C.map(e.base)):void 0;we(a,o,S,C,E.baselinePx,{baselineYs:s,borderRadius:i.borderRadius??0,color:U(e,i.color),disposalSignal:t.disposalSignal,horizontal:m,seriesCount:l.length,seriesIndex:e,stacked:v,transition:n.transition})}return i?.update(l.map((e,t)=>({color:U(t,e.color),name:e.name}))),a?.hide(),{onClick:e=>{if(!n.onClick)return;let r=t.dimensions.value,i=B(t.svg,e,r.margin.left,r.margin.top),a=I(r.width,r.height,r.margin);if(i.x<0||i.x>a.width||i.y<0||i.y>a.height)return;let o=be(m?i.y:i.x,d,E);if(o===-1)return;let s=xe(i,o,d,E,l.length),c=f[s]?.[o];c&&n.onClick({datum:c,originalEvent:e,series:l[s]})},onMouseLeave:()=>{a?.hide(),n.onHover?.(null)},onMouseMove:e=>{let r=t.dimensions.value,i=B(t.svg,e,r.margin.left,r.margin.top),o=I(r.width,r.height,r.margin);if(i.x<0||i.x>o.width||i.y<0||i.y>o.height){a?.hide();return}let s=be(m?i.y:i.x,d,E);if(s===-1){a?.hide();return}if(Se(i,s,f,E,l.length)){a?.hide();return}let c=xe(i,s,d,E,l.length),u=f[c]?.[s];if(u){let t=E.bandCenter(d[s]),i=v?w[c]?.[s]??u.value:u.value,o=C.map(i),f=m?o+r.margin.left:t+r.margin.left,p=m?t+r.margin.top:o+r.margin.top;a?.show(f,p,u,l[c]),n.onHover?.({datum:u,originalEvent:e,series:l[c]})}}}})}var X=new WeakMap;function De(e,t){return t===`monotone`?G(e):t===`step`?K(e):W(e)}function Oe(e,t,n){let o=i(n.transition,0),s=o.duration,u=r(o.easing),d=e.querySelector(`.prism-line-path`);d||(d=c(`path`,{class:`prism-line-path`,fill:`none`}),e.appendChild(d)),l(d,{stroke:n.color,"stroke-width":n.strokeWidth});let f=e.querySelector(`.prism-line-dots`);if(n.showPoints?f||(f=c(`g`,{class:`prism-line-dots`}),e.appendChild(f)):f&&=(f.remove(),null),s===0){if(l(d,{d:De(t,n.curve)}),f){for(;f.children.length>t.length;)f.removeChild(f.lastChild);for(let e=0;e<t.length;e++){let r=f.children[e];r||(r=c(`circle`,{class:`prism-line-dot`}),f.appendChild(r)),l(r,{cx:t[e].x,cy:t[e].y,fill:n.color,r:n.pointRadius})}}return}X.get(e)?.();let p=!!d.getAttribute(`d`),m=[],h=null;if(f){let e=f.children.length;for(let t=0;t<e;t++){let e=f.children[t],n={x:Number(e.getAttribute(`cx`)),y:Number(e.getAttribute(`cy`))};m.push(n),h=n}for(;f.children.length>t.length;)f.removeChild(f.lastChild);for(let e=f.children.length;e<t.length;e++){let r=c(`circle`,{class:`prism-line-dot`});l(r,{cx:t[e].x,cy:t[e].y,fill:n.color,r:n.pointRadius}),f.appendChild(r)}}for(let e=m.length;e<t.length;e++)m.push(h??t[e]);let g=null;function _(r){if(n.disposalSignal?.aborted){X.delete(e);return}g===null&&(g=r);let i=Math.min(1,(r-g)/s),o=u(i),c=t.map((e,t)=>{let n=m[t]??e;return{x:a(n.x,e.x,o),y:a(n.y,e.y,o)}});if(l(d,{d:De(c,n.curve)}),f)for(let e=0;e<t.length;e++){let t=f.children[e];t&&l(t,{cx:c[e].x,cy:c[e].y})}if(i<1){let t=requestAnimationFrame(_);X.set(e,()=>cancelAnimationFrame(t))}else X.delete(e)}if(!p)l(d,{d:De(t,n.curve)});else{let t=requestAnimationFrame(_);X.set(e,()=>cancelAnimationFrame(t))}}function ke(e,t,n){return e.some(e=>e.key==null)||e.some(e=>typeof e.key==`string`),e.map(e=>({x:t.map(e.key),y:n.map(e.value)}))}function Ae(t,n){let r=null;return R(t,n,t=>{let{groups:i,legend:a,tooltip:o}=t,s=t.dimensions.value,l=I(s.width,s.height,s.margin),u=(0,e.isReactive)(n.series)?n.series.value:n.series,d=u.map(t=>(0,e.isReactive)(t.data)?t.data.value:t.data),f=d.flat().map(e=>e.key),p=d.flat().map(e=>e.value);if(f.length===0){L(i,a,o,r);return}n.crosshair&&!r&&(r=le(t.chartArea,n.crosshair));let m=j(f,l.width),v=M(p,l.height);for(n.yAxis?.grid&&_(i.grid,v,n.yAxis.grid,l.width,`horizontal`,h(n.yAxis,l.height,`left`)),n.xAxis?.grid&&_(i.grid,m,n.xAxis.grid,l.height,`vertical`,h(n.xAxis,l.width,`bottom`)),n.xAxis&&(i.xAxis.setAttribute(`transform`,`translate(0,${l.height})`),g(i.xAxis,m,n.xAxis,l.width,`bottom`)),n.yAxis&&g(i.yAxis,v,n.yAxis,l.height,`left`);i.series.children.length>u.length;)i.series.removeChild(i.series.lastChild);let y=[];for(let e=0;e<u.length;e++){let r=u[e],a=i.series.children[e];a||(a=c(`g`,{class:`prism-line-series`}),i.series.appendChild(a));let o=ke(d[e],m,v);y.push(o),Oe(a,o,{color:U(e,r.color),curve:r.curve??`linear`,disposalSignal:t.disposalSignal,pointRadius:r.pointRadius??3,showPoints:r.showPoints??!1,strokeWidth:r.strokeWidth??2,transition:n.transition})}return a?.update(u.map((e,t)=>({color:U(t,e.color),name:e.name}))),o?.hide(),fe({crosshair:r,dims:()=>t.dimensions.value,getData:()=>d,getPoints:()=>y,getSeriesList:()=>(0,e.isReactive)(n.series)?n.series.value:n.series,onClick:n.onClick,onHover:n.onHover,svg:t.svg,tooltip:o})})}function je(e,t,n,r,i,a,o,s,c,l,u=!1){let d=e.reduce((e,t)=>e+Math.max(0,t.value),0);if(d===0)return[];let f=o-a,p=r>0?Math.asin(Math.min(1,s/2/r)):0,m=a,h=e.length;return e.map((e,a)=>{let o=Math.max(0,e.value)/d*f,s=m,g=m+o;m+=o;let _=Math.min(p,o/2);return{capEnd:u&&a===h-1,capStart:u&&a===0,centerX:t,centerY:n,color:e.color??l(a),cornerRadius:c,endAngle:g,index:a,innerRadius:i,outerRadius:r,padAngle:_,slice:e,startAngle:s}})}function Z(e,t,n,r){return`${e+n*Math.sin(r)},${t-n*Math.cos(r)}`}function Q(e,t,n){return e+t*Math.sin(n)}function $(e,t,n){return e-t*Math.cos(n)}function Me(e){let{capEnd:t,capStart:n,centerX:r,centerY:i,cornerRadius:a,endAngle:o,innerRadius:s,outerRadius:c,padAngle:l,startAngle:u}=e,d=o-u;if(d<=0)return``;if(d>=2*Math.PI-1e-6){let e=u+Math.PI;return s<=0?`M${Z(r,i,c,u)}A${c},${c},0,1,1,${Z(r,i,c,e)}A${c},${c},0,1,1,${Z(r,i,c,u)}Z`:[`M${Z(r,i,c,u)}`,`A${c},${c},0,1,1,${Z(r,i,c,e)}`,`A${c},${c},0,1,1,${Z(r,i,c,u)}`,`M${Z(r,i,s,u)}`,`A${s},${s},0,1,0,${Z(r,i,s,e)}`,`A${s},${s},0,1,0,${Z(r,i,s,u)}`,`Z`].join(``)}let f=n?u:u+l,p=t?o:o-l;if(p<=f)return``;let m=p-f;if(a<=0){let e=+(m>Math.PI);return s<=0?`M${r},${i}L${Z(r,i,c,f)}A${c},${c},0,${e},1,${Z(r,i,c,p)}Z`:[`M${Z(r,i,c,f)}`,`A${c},${c},0,${e},1,${Z(r,i,c,p)}`,`L${Z(r,i,s,p)}`,`A${s},${s},0,${e},0,${Z(r,i,s,f)}`,`Z`].join(``)}let h=Math.min(a/c,m/2),g=Math.min(a/s,m/2),_=Math.min(a,(c-s)/2),v=(c-s)/2,y=f+(n?0:h),b=p-(t?0:h),x=f+(n?0:g),S=p-(t?0:g),C=+(b-y>Math.PI),w=+(S-x>Math.PI),T=Q(r,c,f),E=$(i,c,f),D=Q(r,c,p),O=$(i,c,p),k=Q(r,s,f),A=$(i,s,f),j=Q(r,s,p),M=$(i,s,p),N=_/(c-s),P=`${T+(k-T)*N},${E+(A-E)*N}`,ee=`${D+(j-D)*N},${O+(M-O)*N}`,te=`${k+(T-k)*N},${A+(E-A)*N}`,ne=`${j+(D-j)*N},${M+(O-M)*N}`,F=[];return n?F.push(`M${Z(r,i,c,f)}`):(F.push(`M${P}`),F.push(`Q${T},${E},${Z(r,i,c,y)}`)),F.push(`A${c},${c},0,${C},1,${Z(r,i,c,b)}`),t?F.push(`A${v},${v},0,0,1,${Z(r,i,s,p)}`):(F.push(`Q${D},${O},${ee}`),F.push(`L${ne}`),F.push(`Q${j},${M},${Z(r,i,s,S)}`)),F.push(`A${s},${s},0,${w},0,${Z(r,i,s,x)}`),n?F.push(`A${v},${v},0,0,0,${Z(r,i,c,f)}`):F.push(`Q${k},${A},${te}`),F.push(`Z`),F.join(``)}function Ne(e){let t=(e.startAngle+e.endAngle)/2,n=(e.outerRadius+e.innerRadius)/2;return{x:e.centerX+n*Math.sin(t),y:e.centerY-n*Math.cos(t)}}var Pe=2*Math.PI,Fe=-Math.PI/2,Ie=Math.PI/2;function Le(e){return e===`semi`?{end:Ie,start:Fe}:{end:Pe,start:0}}function Re(t,n){let o=n.variant??`pie`,s=n.padPixels??(o===`pie`?0:8),u=n.cornerRadius??(o===`pie`?0:8),d=c(`circle`,{class:`prism-pie-bg`,"pointer-events":`none`}),f=c(`g`,{class:`prism-pie-slices`,"shape-rendering":`geometricPrecision`}),p=c(`g`,{class:`prism-pie-labels`,"pointer-events":`none`}),m=[],h=null;function g(e){for(;p.children.length>m.length;)p.removeChild(p.lastChild);for(let t=0;t<m.length;t++){let n=m[t],r=e[t];if(!r?.label)continue;let{x:i,y:a}=Ne(n),o=p.children[t];o||(o=c(`text`,{class:`prism-pie-label`}),p.appendChild(o)),l(o,{"dominant-baseline":`middle`,fill:`var(--prism-pie-label-color, #fff)`,"font-family":`var(--prism-font-family, system-ui)`,"font-size":`var(--prism-pie-label-size, 12px)`,"text-anchor":`middle`,x:i,y:a}),o.textContent=r.label}}let _=ce(t,{a11y:n.a11y,legend:n.legend,plugins:n.plugins,tooltip:n.tooltip},_=>{let{legend:v,svg:y,tooltip:b}=_;y.contains(d)||(y.appendChild(d),y.appendChild(f),y.appendChild(p));let{height:x,width:S}=_.dimensions.value,C=o===`semi`,w=S/2,T=C?x*.85:x/2,E=C?Math.min(w,T)-8:Math.min(S,x)/2-8,D=o===`pie`?0:Math.round(E*.55),O=n.innerRadius===void 0?D:n.innerRadius,k=Math.max(O+1,E),A=(0,e.isReactive)(n.data)?n.data.value:n.data,{end:j,start:M}=Le(o);for(m=je(A,w,T,k,O,M,j,s,u,e=>U(e),!1),l(d,{cx:w,cy:T,r:O>0?O:0}),d.setAttribute(`style`,`fill:var(--prism-bg,#fff)`);f.children.length>m.length;)f.removeChild(f.lastChild);for(;p.children.length>m.length;)p.removeChild(p.lastChild);let N=i(n.transition,0),P=N.duration,ee=r(N.easing);for(let e=0;e<m.length;e++){let t=m[e],r=f.children[e];r||(r=c(`path`,{class:`prism-pie-slice`}),f.appendChild(r)),r.setAttribute(`fill`,t.color),r.setAttribute(`stroke`,`none`),r.style.cursor=n.onClick||n.onHover?`pointer`:``}if(h!==null&&(cancelAnimationFrame(h),h=null),P>0){let e=null,t=n=>{e===null&&(e=n);let r=ee(Math.min(1,(n-e)/P)),i=a(M,j,r);for(let e=0;e<m.length;e++){let t=m[e],n=f.children[e];if(n)if(i<=t.startAngle)l(n,{d:``});else{let e=Math.min(t.endAngle,i);l(n,{d:Me({...t,endAngle:e})})}}r<1?h=requestAnimationFrame(t):(h=null,g(A))};h=requestAnimationFrame(t)}else{for(let e=0;e<m.length;e++){let t=m[e],n=f.children[e];n&&l(n,{d:Me(t)})}g(A)}return v?.update(m.map(e=>({color:e.color,name:e.slice.label??``}))),b?.hide(),{onClick:e=>{if(!n.onClick)return;let t=y.getBoundingClientRect(),r=e.clientX-t.left,i=e.clientY-t.top,a=ze(m,r,i,o);a>=0&&n.onClick(m[a].slice,a)},onMouseLeave:()=>{n.onHover?.(null,null),b?.hide()},onMouseMove:e=>{let r=y.getBoundingClientRect(),i=e.clientX-r.left,a=e.clientY-r.top,s=ze(m,i,a,o);if(s>=0){let e=m[s];n.onHover?.(e.slice,s);let{x:i,y:a}=Ne(e),o=t.getBoundingClientRect();b?.show(i+(r.left-o.left),a+(r.top-o.top),{key:s,value:e.slice.value},{color:e.color,data:[],name:e.slice.label??``})}else n.onHover?.(null,null),b?.hide()}}});return{get disposalSignal(){return _.disposalSignal},dispose(){h!==null&&(cancelAnimationFrame(h),h=null),_.dispose()},get disposed(){return _.disposed},el:_.el,[Symbol.dispose](){this.dispose()}}}function ze(e,t,n,r){for(let i=0;i<e.length;i++){let a=e[i],o=t-a.centerX,s=n-a.centerY,c=Math.sqrt(o*o+s*s);if(c<a.outerRadius&&c>=a.innerRadius){let e=Math.atan2(o,-s);if(r===`semi`){if(e>=a.startAngle-1e-9&&e<=a.endAngle+1e-9)return i}else{let t=e<0?e+Pe:e;if(t>=a.startAngle-1e-9&&t<=a.endAngle+1e-9)return i}}}return-1}function Be(e,t,n){if(e.length===0)return[];let r=t/Math.max(1,e.length-1),i=Math.min(...e),a=Math.max(...e)-i||1;return e.map((e,t)=>({x:t*r,y:n-(e-i)/a*n}))}function Ve(e,t,n,r=`linear`){if(e.length===0)return``;let i=Be(e,t,n);return q(i,i.map(e=>({x:e.x,y:n})),r??`linear`)}function He(e,t,n,r){if(e.length===0)return``;let i=Be(e,t,n);return r===`monotone`?G(i):r===`step`?K(i):W(i)}function Ue(e,t,n,o,s,u,d){let f=t.length,p=Math.max(1,n/f-1),m=n/f,h=Math.min(0,...t),g=Math.max(...t)-h||1,_=i(u,0),v=_.duration,y=r(_.easing);for(;e.children.length>f;){let t=e.lastElementChild;t&&e.removeChild(t)}for(let n=0;n<f;n++){let r=Math.max(1,(t[n]-h)/g*o),i=o-r,u=e.children[n];if(u||(u=c(`rect`,{class:`prism-spark-bar`}),e.appendChild(u)),l(u,{fill:s,width:p,x:n*m}),v>0&&!u.hasAttribute(`data-init`)){u.setAttribute(`data-init`,`1`),l(u,{height:0,y:o});let e=null,t={h:0,y:o},n={h:r,y:i},s=r=>{if(d?.aborted)return;e===null&&(e=r);let i=y(Math.min(1,(r-e)/v));l(u,{height:a(t.h,n.h,i),y:a(t.y,n.y,i)}),i<1&&requestAnimationFrame(s)};requestAnimationFrame(s)}else u.setAttribute(`data-init`,`1`),l(u,{height:r,y:i})}}function We(e){return e.length>0&&e[0]!==null&&typeof e[0]==`object`}function Ge(e,t,n,r,i,a,o){let s=Math.min(i,n/2,r/2),c=a?s:0,l=a?s:0,u=o?s:0,d=o?s:0;return[`M${e+c},${t}`,`H${e+n-u}`,u?`Q${e+n},${t} ${e+n},${t+u}`:``,`V${t+r-d}`,d?`Q${e+n},${t+r} ${e+n-d},${t+r}`:``,`H${e+l}`,l?`Q${e},${t+r} ${e},${t+r-l}`:``,`V${t+c}`,c?`Q${e},${t} ${e+c},${t}`:``,`Z`].filter(Boolean).join(``)}function Ke(e){return`var(--prism-color-${e%8+1})`}function qe(t,n){let r=n.variant??`line`,i=n.color??`var(--prism-color-1)`,a=n.curve??`linear`,o=n.strokeWidth??1.5,s=n.fillOpacity??.2,u=ae(t,{...n.a11y?{a11y:n.a11y}:{ariaHidden:!0},margin:{bottom:0,left:0,right:0,top:0}}),{svg:d}=u;d.classList.add(`prism-sparkline`);let f=c(`g`,{class:`prism-spark-inner`});d.appendChild(f);let p;function m(){let{height:t,width:d}=u.dimensions.value,p=(0,e.isReactive)(n.data)?n.data.value:n.data;for(;f.firstChild;)f.removeChild(f.firstChild);if(p.length!==0){if(r===`stack`&&We(p)){let e=c(`g`,{class:`prism-spark-stack`});f.appendChild(e);let r=n.cornerRadius??4,i=p,a=i.reduce((e,t)=>e+Math.max(0,t.value),0);if(a>0){let o=(n.padPixels??0)/2,s=0;i.forEach((n,u)=>{let f=Math.round(s);s+=Math.max(0,n.value)/a*d;let p=u===i.length-1?d:Math.round(s),m=u===0,h=u===i.length-1,g=Ge(f+(m?0:o),0,Math.max(0,p-f-(m?0:o)-(h?0:o)),t,r,m,h),_=c(`path`,{class:`prism-spark-stack-segment`});l(_,{d:g,fill:n.color??Ke(u)}),e.appendChild(_)})}}else if(r===`bar`){let e=c(`g`,{class:`prism-spark-bars`});f.appendChild(e),Ue(e,p,d,t,i,n.transition,g.signal)}else{if(r===`area`){let e=c(`path`,{class:`prism-spark-fill`});l(e,{d:Ve(p,d,t,a),fill:i,"fill-opacity":s,stroke:`none`}),f.appendChild(e)}let e=c(`path`,{class:`prism-spark-line`});l(e,{d:He(p,d,t,a),fill:`none`,stroke:i,"stroke-width":o}),f.appendChild(e)}We(p)||h(p)}}function h(e){if(p?.(),p=void 0,!n.onHover&&!n.onClick||e.length<=1)return;let{width:t}=u.dimensions.value;d.style.cursor=`crosshair`;let r=t/(e.length-1),i=t=>{let i=d.getBoundingClientRect(),a=t.clientX-i.left,o=Math.max(0,Math.min(e.length-1,Math.round(a/r)));n.onHover?.(o,e[o])},a=()=>n.onHover?.(null,null),o=t=>{if(!n.onClick)return;let i=d.getBoundingClientRect(),a=t.clientX-i.left,o=Math.max(0,Math.min(e.length-1,Math.round(a/r)));n.onClick(o,e[o])};d.addEventListener(`mousemove`,i),d.addEventListener(`mouseleave`,a),d.addEventListener(`click`,o),p=()=>{d.removeEventListener(`mousemove`,i),d.removeEventListener(`mouseleave`,a),d.removeEventListener(`click`,o)}}let g=new AbortController,_=(0,e.createScope)();_.run(()=>{(0,e.effect)(()=>{m()},{scheduler:`microtask`})});let v=!1;return{get disposalSignal(){return g.signal},dispose(){v||(v=!0,g.abort(),p?.(),_.dispose(),u.dispose())},get disposed(){return v},el:d,[Symbol.dispose](){this.dispose()}}}exports.PrismError=te,exports.PrismRenderError=ne,exports.animate=o,exports.bandScale=ye,exports.createAreaChart=ve,exports.createBarChart=Ee,exports.createLineChart=Ae,exports.createPieChart=Re,exports.createSparkline=qe,exports.linearScale=b,exports.resetTheme=me,exports.seriesColor=U,exports.setTheme=pe,exports.timeScale=A;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@vielzeug/ripple"),t=require("@vielzeug/orbit");var n={"ease-in":e=>e*e,"ease-in-out":e=>e<.5?2*e*e:1-(-2*e+2)**2/2,"ease-out":e=>1-(1-e)*(1-e),linear:e=>e};function r(e){return typeof e==`function`?e:e!==void 0&&Object.hasOwn(n,e)?n[e]:n[`ease-out`]}function i(e,t=300){let n=e?.preference??`system`,r=typeof matchMedia<`u`&&matchMedia(`(prefers-reduced-motion: reduce)`).matches,i=n===`never`||n===`system`&&r?0:e?.duration??t;return{...e,duration:i,stagger:Math.max(0,e?.stagger??0)}}function a(e,t,n){return e+(t-e)*n}function o(e,t,n,o){let s=i(t),c=s.duration,l=r(s.easing),u=s.stagger;if(c===0||e.length===0){for(let t of e)for(let[e,{to:n}]of Object.entries(t.attrs))t.el.setAttribute(e,String(n));return n?.(),()=>{}}let d=null,f=!1,p=Math.max(c,c+u*(e.length-1));function m(t){if(f||o?.aborted)return;d===null&&(d=t);let r=t-d;for(let t=0;t<e.length;t++){let n=e[t],i=u*t,o=Math.max(0,r-i),s=Math.min(1,o/c),d=l(s);for(let[e,{from:t,to:r}]of Object.entries(n.attrs))n.el.setAttribute(e,String(a(t,r,d)))}r<p?requestAnimationFrame(m):n?.()}return requestAnimationFrame(m),()=>{f=!0}}var s=`http://www.w3.org/2000/svg`;function c(e,t){let n=document.createElementNS(s,e);return t&&l(n,t),n}function l(e,t){for(let[n,r]of Object.entries(t)){if(r===void 0){e.removeAttribute(n);continue}typeof r==`number`&&!Number.isFinite(r)&&`${n}${e.tagName}${r}`,e.setAttribute(n,String(r))}}function u(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function d(e,t){let n=c(`text`,t);return n.textContent=e,n}function f(e){return typeof e.bandwidth==`function`}function p(e,t){return f(e)?e.map(t)+e.bandwidth()/2:e.map(t)}var m=e=>e instanceof Date?e.toLocaleDateString(void 0,{month:`short`,year:`numeric`}):String(e);function h(e,t,n){let r=e.position??n,i=r===`bottom`||r===`top`?Math.max(2,Math.floor(t/80)):Math.max(2,Math.floor(t/50));return e.tickCount??i}function g(e,t,n,r,i=`bottom`){u(e);let a=n.position??i,o=a===`bottom`||a===`top`,s=a===`top`||a===`left`,f=s?-1:1,g=c(`line`,{"aria-hidden":`true`,class:`prism-axis-line`,x1:0,x2:o?r:0,y1:0,y2:o?0:r});e.appendChild(g);let _=t.ticks(h(n,r,i)),v=n.tickFormat??m;for(let n of _){let r=p(t,n),i=c(`line`,{"aria-hidden":`true`,class:`prism-axis-tick`,x1:o?r:0,x2:o?r:6*f,y1:o?0:r,y2:o?6*f:r});e.appendChild(i);let a=d(v(n),{"aria-hidden":`true`,class:`prism-axis-label`,"dominant-baseline":o?s?`auto`:`hanging`:`middle`,"text-anchor":o?`middle`:s?`end`:`start`,x:o?r:6*f*1.5,y:o?6*f*1.5:r});e.appendChild(a)}if(n.label){let t=d(n.label,{class:`prism-axis-title`,"dominant-baseline":`middle`,"text-anchor":`middle`});o?l(t,{x:r/2,y:6*f*3.5}):l(t,{transform:`translate(${6*f*4}, ${r/2}) rotate(-90)`}),e.appendChild(t)}}function _(e,t,n,r,i,a=10){u(e);let o=n!==!0&&n.color||void 0,s=n!==!0&&n.dash||void 0,l=t.ticks(a);for(let n of l){let a=p(t,n),l={class:`prism-grid-line`,stroke:o??`var(--prism-grid-color)`,"stroke-dasharray":s,"stroke-opacity":`var(--prism-grid-opacity)`};i===`vertical`?Object.assign(l,{x1:a,x2:a,y1:0,y2:r}):Object.assign(l,{x1:0,x2:r,y1:a,y2:a}),e.appendChild(c(`line`,l))}}function v(e,t){let n=Math.floor(Math.log10(e)),r=e/10**n,i;return i=t?r<1.5?1:r<3?2:r<7?5:10:r<=1?1:r<=2?2:r<=5?5:10,i*10**n}function y(e,t,n){if(!Number.isFinite(e)||!Number.isFinite(t))return[0,1];if(e>t&&([e,t]=[t,e]),e===t)return[e-1,t+1];let r=v(v(t-e,!1)/Math.max(1,n-1),!0);return[Math.floor(e/r)*r,Math.ceil(t/r)*r]}function b(e){let t=()=>e.nice===!1?e.domain:y(e.domain[0],e.domain[1],10),n=()=>e.range;return{get domain(){return t()},invert(e){let[r,i]=t(),[a,o]=n();return o===a?r:r+(e-a)/(o-a)*(i-r)},map(r){let[i,a]=t(),[o,s]=n();if(a===i)return o;let c=(r-i)/(a-i);return e.clamp&&(c=Math.max(0,Math.min(1,c))),o+c*(s-o)},get range(){return n()},ticks(e=10){if(e<=0)return[];let[n,r]=t();if(n===r||e===1)return[n];let i=Math.min(n,r),a=Math.max(n,r),o=v(v(a-i,!1)/(e-1),!0),s=Math.ceil(i/o)*o,c=Math.floor(a/o)*o,l=[];for(let e=s;e<=c+o*.5;e+=o)l.push(Math.round(e*0xe8d4a51000)/0xe8d4a51000);return l}}}var x=1e3,S=60*x,C=60*S,w=24*C,T=30*w,E=365*w,D=[x,5*x,15*x,30*x,S,5*S,15*S,30*S,C,3*C,6*C,12*C,w,7*w,T,3*T,6*T,E];function O(e,t){let n=Math.abs(e)/Math.max(1,t);for(let e of D)if(e>=n)return e;return E}function k(e,t){let[n,r]=e;n.getTime()>r.getTime()&&([n,r]=[r,n]);let i=O(r.getTime()-n.getTime(),t);return[new Date(Math.floor(n.getTime()/i)*i),new Date(Math.ceil(r.getTime()/i)*i)]}function A(e){let t=()=>e.nice===!1?e.domain:k(e.domain,10),n=()=>e.range;return{get domain(){return t()},invert(e){let[r,i]=t(),[a,o]=n();if(o===a)return r;let s=(e-a)/(o-a);return new Date(r.getTime()+s*(i.getTime()-r.getTime()))},map(e){let[r,i]=t(),[a,o]=n(),s=i.getTime()-r.getTime();return s===0?a:a+(e.getTime()-r.getTime())/s*(o-a)},get range(){return n()},ticks(e=10){let[n,r]=t(),i=O(r.getTime()-n.getTime(),e),a=Math.ceil(n.getTime()/i)*i,o=[];for(let e=a;e<=r.getTime();e+=i)o.push(new Date(e));return o}}}function j(e,t){if(e.length===0||e.some(e=>e==null)||e.some(e=>typeof e==`number`&&!Number.isFinite(e)))return b({domain:[0,1],range:[0,t]});if(e[0]instanceof Date){let n=e,r=Math.min(...n.map(Number)),i=Math.max(...n.map(Number));return A({domain:[new Date(r),new Date(r===i?i+1:i)],range:[0,t]})}let n=e,r=Math.min(...n),i=Math.max(...n);return b({domain:[r,r===i?i+1:i],nice:!1,range:[0,t]})}function M(e,t,n=!0){if(e.length===0||e.some(e=>e==null)||e.some(e=>!Number.isFinite(e)))return b({domain:[0,1],range:[t,0]});let r=Math.min(...e),i=n?Math.min(0,r):r,a=Math.max(...e);return b({domain:[i,i===a?a+1:a],range:[t,0]})}function N(e){return e===!0?`bottom`:e.position??`bottom`}function P(e,t){let n=N(t),r=document.createElement(`div`);r.className=`prism-legend prism-legend-${n}`,n===`top`?e.insertBefore(r,e.firstChild):e.appendChild(r);let i=()=>{r.remove()};return{dispose:i,el:r,[Symbol.dispose]:i,update(e){r.innerHTML=``;for(let t of e){let e=document.createElement(`div`);e.className=`prism-legend-item`;let n=document.createElement(`span`);n.className=`prism-legend-dot`,n.style.backgroundColor=t.color;let i=document.createElement(`span`);i.className=`prism-legend-label`,i.textContent=t.name,e.appendChild(n),e.appendChild(i),r.appendChild(e)}}}}function ee(e,n){getComputedStyle(e).position===`static`&&(e.style.position=`relative`);let r=e.ownerDocument.createElement(`div`);r.className=`prism-tooltip`,r.style.position=`absolute`,r.style.pointerEvents=`none`,r.style.top=`0`,r.style.left=`0`,r.setAttribute(`role`,`status`),r.setAttribute(`aria-live`,`polite`),e.appendChild(r);let i=n!==!0&&n?.offset||8,a=n===!0?void 0:n?.render,o=n===!0?void 0:n?.sanitize,s=null,c=null,l=!1,u=()=>{c!==null&&(clearTimeout(c),c=null)},d=()=>{s!==null&&(cancelAnimationFrame(s),s=null)},f=()=>{d(),u(),r.remove()};return{dispose:f,el:r,hide(){d(),u(),l=!1,r.style.opacity=`0`,c=setTimeout(()=>{c=null,l||(r.textContent=``)},150)},show(n,c,d,f){if(!e.isConnected)return;if(u(),a){let e=a(d,f);o?r.innerHTML=o(e):r.textContent=e}else r.textContent=`${f.name}: ${d.value}`;let{x:p,y:m}=(0,t.computePosition)({getBoundingClientRect:()=>{let t=e.getBoundingClientRect();return{bottom:t.top+c,height:0,left:t.left+n,right:t.left+n,top:t.top+c,width:0,x:t.left+n,y:t.top+c}}},r,{containingBlock:e,middleware:[(0,t.offset)(i),(0,t.flip)(),(0,t.shift)({padding:8})],placement:`top`});if(r.style.left=`${p}px`,r.style.top=`${m}px`,l){s===null&&(r.style.opacity=`1`);return}l=!0,r.style.opacity=`0`,s=requestAnimationFrame(()=>{s=null,l&&(r.style.opacity=`1`)})},[Symbol.dispose]:f}}var F=class extends Error{constructor(e,t){super(e,t),this.name=new.target.name,Object.setPrototypeOf(this,new.target.prototype)}},te=class extends F{},I={bottom:40,left:50,right:20,top:20};function ne(e){return{...I,...e}}function L(e,t,n){return{height:Math.max(0,t-n.top-n.bottom),width:Math.max(0,e-n.left-n.right)}}function re(e,t){let n=null,r=new ResizeObserver(e=>{n!==null&&cancelAnimationFrame(n),n=requestAnimationFrame(()=>{n=null;let r=e[0];if(r){let{height:e,width:n}=r.contentRect;t(n,e)}})});return r.observe(e),()=>{n!==null&&cancelAnimationFrame(n),r.disconnect()}}function ie(t,n){if(!(typeof t==`object`&&t&&t.nodeType===1&&typeof t.appendChild==`function`&&typeof t.getBoundingClientRect==`function`)){let e=t;throw new te(`Invalid chart configuration: \`container\` must be a DOM Element, received ${e===null?`null`:typeof e==`object`?e.constructor?.name??`object`:typeof e}.`)}let r=ne(n.margin),i=n.a11y,a=c(`svg`,{...n.ariaHidden||i?.decorative?{"aria-hidden":`true`}:{...i?{"aria-label":i.ariaLabel,tabindex:`0`}:{},role:`img`},class:`prism-chart`,style:`display:block;width:100%;height:100%`}),o=c(`g`,{class:`prism-chart-area`,transform:`translate(${r.left},${r.top})`});a.appendChild(o);let s=t.getBoundingClientRect();s.width===0||s.height;let u=typeof getComputedStyle<`u`?getComputedStyle(t):null;u&&u.position;let d=(0,e.signal)({height:s.height||300,margin:r,width:s.width||600}),f=re(t,(e,t)=>{d.value={height:t,margin:r,width:e},l(a,{height:t,viewBox:`0 0 ${e} ${t}`,width:e})}),p=s.width||600,m=s.height||300;return l(a,{height:m,viewBox:`0 0 ${p} ${m}`,width:p}),t.appendChild(a),{chartArea:o,dimensions:d,dispose(){f(),a.remove()},svg:a}}function ae(e,t,n,r){u(e.series),u(e.grid),u(e.xAxis),u(e.yAxis),t?.update([]),n?.hide(),r?.hide()}function oe(t,n,r,i){let a=ie(t,{a11y:n.a11y,margin:n.margin}),o=n.tooltip?ee(t,n.tooltip):null,s=n.legend?P(t,n.legend):null,c=new AbortController,l=r(a,o,s,c.signal),u=!1,d=se(a.svg),f=(0,e.createScope)();f.run(()=>{(0,e.effect)(()=>{u||d.attach(i(l))},{scheduler:`microtask`})});let p=[];if(n.plugins){let e={container:t,dimensions:a.dimensions,disposalSignal:c.signal,svg:a.svg};for(let t of n.plugins)try{t.install(e),p.push(t)}catch{}}return{get disposalSignal(){return c.signal},dispose(){if(!u){u=!0,c.abort(),d.detach();for(let e of p)try{e.dispose()}catch{}o?.dispose(),s?.dispose(),f.dispose(),a.dispose()}},get disposed(){return u},el:a.svg,[Symbol.dispose](){this.dispose()}}}function se(e){let t=null;return{attach(n){t&&=(t.onMouseMove&&e.removeEventListener(`mousemove`,t.onMouseMove),t.onMouseLeave&&e.removeEventListener(`mouseleave`,t.onMouseLeave),t.onClick&&e.removeEventListener(`click`,t.onClick),t.onKeyDown&&e.removeEventListener(`keydown`,t.onKeyDown),null),n&&(t=n,n.onMouseMove&&e.addEventListener(`mousemove`,n.onMouseMove),n.onMouseLeave&&e.addEventListener(`mouseleave`,n.onMouseLeave),n.onClick&&e.addEventListener(`click`,n.onClick),n.onKeyDown&&e.addEventListener(`keydown`,n.onKeyDown))},detach(){this.attach(void 0)}}}function R(e,t,n){return oe(e,t,(t,n,r,i)=>{let a={grid:c(`g`,{"aria-hidden":`true`,class:`prism-grid`}),series:c(`g`,{class:`prism-series`}),xAxis:c(`g`,{class:`prism-x-axis`}),yAxis:c(`g`,{class:`prism-y-axis`})};return t.chartArea.appendChild(a.grid),t.chartArea.appendChild(a.xAxis),t.chartArea.appendChild(a.yAxis),t.chartArea.appendChild(a.series),{chartArea:t.chartArea,container:e,dimensions:t.dimensions,disposalSignal:i,groups:a,legend:r,svg:t.svg,tooltip:n}},n)}function ce(e,t,n){return oe(e,t,(t,n,r,i)=>({container:e,dimensions:t.dimensions,disposalSignal:i,legend:r,svg:t.svg,tooltip:n}),n)}function z(t){return(0,e.isReactive)(t)?t:{peek:()=>t,subscribe:()=>()=>{},get value(){return t}}}function le(e,t){let n=t===!0||t?.vertical!==!1,r=t!==!0&&t?.horizontal===!0,i=t===!0||t?.snap!==!1,a=c(`g`,{"aria-hidden":`true`,class:`prism-crosshair`,style:`display:none`}),o=n?c(`line`,{class:`prism-crosshair-v`,"stroke-dasharray":`var(--prism-crosshair-dash, 4 2)`}):null,s=r?c(`line`,{class:`prism-crosshair-h`,"stroke-dasharray":`var(--prism-crosshair-dash, 4 2)`}):null;o&&a.appendChild(o),s&&a.appendChild(s),e.appendChild(a);let u=c(`text`,{"aria-live":`polite`,class:`prism-crosshair-live`,role:`status`,x:-9999,y:-9999});return e.appendChild(u),{hide(){a.style.display=`none`,u.textContent=``},show(e,t,n,r,i){a.style.display=``,o&&l(o,{x1:e,x2:e,y1:0,y2:r}),s&&l(s,{x1:0,x2:n,y1:t,y2:t}),i!==void 0&&(u.textContent=i)},snap:i}}function B(e){return e instanceof Date?`date:${e.getTime()}`:`${typeof e}:${String(e)}`}function ue(e,t){let n=[],r=new Map;return{domain:n,labels:r,series:e.map((e,i)=>{let a=new Map;for(let o of t[i]??[]){let t=B(o.key);if(a.has(t)){`${String(o.key)}${e.name}`;continue}a.set(t,o),r.has(t)||(r.set(t,o.key),n.push(t))}return{byKey:a,config:e}})}}function V(e,t,n,r){let i=e.getBoundingClientRect();return{x:t.clientX-i.left-n,y:t.clientY-i.top-r}}function de(e,t,n){let r=null,i=1/0;for(let a=0;a<t.length;a++)for(let o=0;o<(t[a]?.length??0);o++){let s=e[a]?.[o],c=t[a]?.[o];if(!s||!c)continue;let l=Math.abs(c.x-n);l<i&&(i=l,r=s.key)}return r}function H(e,t,n,r){let i=B(n),a=null,o=1/0;for(let n=0;n<t.length;n++){let s=e[n]?.findIndex(e=>B(e.key)===i)??-1,c=s===-1?void 0:e[n]?.[s],l=s===-1?void 0:t[n]?.[s];if(!c||!l)continue;let u=Number.isFinite(r)?Math.abs(l.y-r):0;u<o&&(o=u,a={datum:c,point:l,seriesIndex:n})}return a}function fe(e){let t=0;return{onClick:t=>{if(!e.onClick)return;let n=e.getPoints();if(n.length===0||n[0].length===0)return;let r=e.dims(),i=V(e.svg,t,r.margin.left,r.margin.top),a=L(r.width,r.height,r.margin);if(i.x<0||i.x>a.width||i.y<0||i.y>a.height)return;let o=de(e.getData(),n,i.x);if(o===null)return;let s=H(e.getData(),n,o,i.y),c=s?e.getSeriesList()[s.seriesIndex]:void 0;s&&c&&e.onClick({datum:s.datum,originalEvent:t,series:c})},onKeyDown:n=>{let r=e.getData(),i=e.getPoints(),a=[...new Map(r.flat().map(e=>[B(e.key),e.key])).values()];if(a.length!==0){if(n.key===`ArrowLeft`||n.key===`ArrowRight`){n.preventDefault(),t=Math.max(0,Math.min(a.length-1,t+(n.key===`ArrowLeft`?-1:1)));let o=a[t],s=H(r,i,o,1/0),c=s?e.getSeriesList()[s.seriesIndex]:void 0;if(!s||!c)return;let l=e.tooltip?void 0:`${c.name}: ${s.datum.value}`;e.crosshair?.show(s.point.x,s.point.y,e.dims().width,e.dims().height,l),e.tooltip?.show(s.point.x+e.dims().margin.left,s.point.y+e.dims().margin.top,s.datum,c),e.onHover?.({datum:s.datum,originalEvent:n,series:c})}if((n.key===`Enter`||n.key===` `)&&e.onClick){n.preventDefault();let o=a[t],s=H(r,i,o,1/0),c=s?e.getSeriesList()[s.seriesIndex]:void 0;s&&c&&e.onClick({datum:s.datum,originalEvent:n,series:c})}n.key===`Escape`&&(e.crosshair?.hide(),e.tooltip?.hide(),e.onHover?.(null))}},onMouseLeave:()=>{e.crosshair?.hide(),e.tooltip?.hide(),e.onHover?.(null)},onMouseMove:t=>{let n=e.getPoints();if(n.length===0||n[0].length===0)return;let r=e.dims(),i=V(e.svg,t,r.margin.left,r.margin.top),a=L(r.width,r.height,r.margin);if(i.x<0||i.x>a.width||i.y<0||i.y>a.height){e.crosshair?.hide(),e.tooltip?.hide();return}let o=de(e.getData(),n,i.x);if(o===null)return;let s=H(e.getData(),n,o,i.y),c=s?e.getSeriesList()[s.seriesIndex]:void 0,l=e.crosshair?.snap===!1?i.x:s?.point.x??i.x,u=e.crosshair?.snap===!1?i.y:s?.point.y??i.y,d=!e.tooltip&&c&&s?`${c.name}: ${s.datum.value}`:void 0;e.crosshair?.show(l,u,a.width,a.height,d),s&&c&&(e.tooltip?.show(s.point.x+r.margin.left,s.point.y+r.margin.top,s.datum,c),e.onHover?.({datum:s.datum,originalEvent:t,series:c}))}}}var pe=8;function me(e){let t=document.documentElement;if(e.colors)for(let n=0;n<pe;n++){let r=e.colors[n];r?t.style.setProperty(`--prism-color-${n+1}`,r):t.style.removeProperty(`--prism-color-${n+1}`)}e.fontFamily&&t.style.setProperty(`--prism-font-family`,e.fontFamily),e.gridColor&&t.style.setProperty(`--prism-grid-color`,e.gridColor),e.gridOpacity!==void 0&&t.style.setProperty(`--prism-grid-opacity`,String(e.gridOpacity))}function he(){let e=document.documentElement;for(let t=1;t<=pe;t++)e.style.removeProperty(`--prism-color-${t}`);e.style.removeProperty(`--prism-font-family`),e.style.removeProperty(`--prism-grid-color`),e.style.removeProperty(`--prism-grid-opacity`)}function U(e,t){return t??`var(--prism-color-${e%pe+1})`}function W(e){if(e.length===0)return``;let t=`M${e[0].x},${e[0].y}`;for(let n=1;n<e.length;n++)t+=`L${e[n].x},${e[n].y}`;return t}function G(e){if(e.length<3)return W(e);let t=e.length,n=[];for(let r=0;r<t;r++)r===0?n.push({x:e[1].x-e[0].x,y:e[1].y-e[0].y}):r===t-1?n.push({x:e[t-1].x-e[t-2].x,y:e[t-1].y-e[t-2].y}):n.push({x:(e[r+1].x-e[r-1].x)/2,y:(e[r+1].y-e[r-1].y)/2});let r=`M${e[0].x},${e[0].y}`;for(let i=0;i<t-1;i++){let t=e[i],a=e[i+1],o=n[i],s=n[i+1],c=(a.x-t.x)/3;r+=`C${t.x+c},${t.y+o.y/3},${a.x-c},${a.y-s.y/3},${a.x},${a.y}`}return r}function K(e){if(e.length===0)return``;let t=`M${e[0].x},${e[0].y}`;for(let n=1;n<e.length;n++){let r=(e[n-1].x+e[n].x)/2;t+=`H${r}V${e[n].y}H${e[n].x}`}return t}function q(e,t,n=`linear`){if(e.length===0)return``;let r=n===`monotone`?G(e):n===`step`?K(e):W(e),i=[...t].reverse();if(i.length>0){r+=`L${i[0].x},${i[0].y}`;for(let e=1;e<i.length;e++)r+=`L${i[e].x},${i[e].y}`}return r+=`Z`,r}var J=new WeakMap,Y=new WeakMap;function ge(e,t){return t===`monotone`?G(e):t===`step`?K(e):W(e)}function _e(e,t,n,o){let s=i(o.transition,0),u=s.duration,d=r(s.easing),f=e.querySelector(`.prism-area-fill`);f||(f=c(`path`,{class:`prism-area-fill`}),e.appendChild(f)),l(f,{fill:o.color,"fill-opacity":o.fillOpacity,stroke:`none`});let p=null;if(o.showLine?(p=e.querySelector(`.prism-area-line`),p||(p=c(`path`,{class:`prism-area-line`,fill:`none`}),e.appendChild(p)),l(p,{stroke:o.color,"stroke-width":2})):e.querySelector(`.prism-area-line`)?.remove(),u===0){let e=t.map(e=>({x:e.x,y:n}));l(f,{d:q(t,e,o.curve)}),p&&l(p,{d:ge(t,o.curve)});return}if(J.get(e)?.(),!f.hasAttribute(`d`)){let r=t.map(e=>({x:e.x,y:n}));l(f,{d:q(t,r,o.curve)}),p&&l(p,{d:ge(t,o.curve)}),Y.set(e,t);return}let m=Y.get(e)??t,h=t.map((e,n)=>m[n]??m[m.length-1]??t[n]),g=null;function _(r){if(o.disposalSignal?.aborted){J.delete(e);return}g===null&&(g=r);let i=Math.min(1,(r-g)/u),s=d(i),c=t.map((e,t)=>({x:a(h[t].x,e.x,s),y:a(h[t].y,e.y,s)})),m=c.map(e=>({x:e.x,y:n}));if(l(f,{d:q(c,m,o.curve)}),p&&l(p,{d:ge(c,o.curve)}),i<1){let t=requestAnimationFrame(_);J.set(e,()=>cancelAnimationFrame(t))}else J.delete(e),Y.set(e,t)}Y.set(e,h);let v=requestAnimationFrame(_);J.set(e,()=>cancelAnimationFrame(v))}function ve(e,t,n){return e.some(e=>e.key==null)||e.some(e=>typeof e.key==`string`),e.map(e=>({x:t.map(e.key),y:n.map(e.value)}))}function ye(e,t){let n=null,r=z(t.series),i;try{return i=R(e,t,e=>{let{groups:i,legend:a,tooltip:o}=e,s=e.dimensions.value,l=L(s.width,s.height,s.margin),u=r.value,d=u.map(e=>z(e.data)).map(e=>e.value),f=d.flat().map(e=>e.key),p=d.flat().map(e=>e.value);if(f.length===0){ae(i,a,o,n);return}t.crosshair&&!n&&(n=le(e.chartArea,t.crosshair));let m=j(f,l.width),v=M(p,l.height),y=v.map(0);for(t.yAxis?.grid&&_(i.grid,v,t.yAxis.grid,l.width,`horizontal`,h(t.yAxis,l.height,`left`)),t.xAxis?.grid&&_(i.grid,m,t.xAxis.grid,l.height,`vertical`,h(t.xAxis,l.width,`bottom`)),t.xAxis&&(i.xAxis.setAttribute(`transform`,`translate(0,${l.height})`),g(i.xAxis,m,t.xAxis,l.width,`bottom`)),t.yAxis&&g(i.yAxis,v,t.yAxis,l.height,`left`);i.series.children.length>u.length;)i.series.removeChild(i.series.lastChild);let b=[];for(let n=0;n<u.length;n++){let r=u[n],a=i.series.children[n];a||(a=c(`g`,{class:`prism-area-series`}),i.series.appendChild(a));let o=ve(d[n],m,v);b.push(o),_e(a,o,y,{color:U(n,r.color),curve:r.curve??`linear`,disposalSignal:e.disposalSignal,fillOpacity:r.fillOpacity??.3,showLine:r.showLine!==!1,transition:t.transition})}return a?.update(u.map((e,t)=>({color:U(t,e.color),name:e.name}))),o?.hide(),fe({crosshair:n,dims:()=>e.dimensions.value,getData:()=>d,getPoints:()=>b,getSeriesList:()=>r.value,onClick:t.onClick,onHover:t.onHover,svg:e.svg,tooltip:o})}),i}catch(e){throw i?.dispose(),e}}function be(e){let t=()=>e.domain,n=()=>e.range,r=()=>{let r=t().length;if(r===0)return 0;let[i,a]=n(),o=e.padding??.1;return(a-i)/(r+(r-1)*o+(e.paddingOuter??o)*2)};return{bandwidth:r,get domain(){return t()},gap(){let t=e.padding??.1;return r()*t},map(i){let a=t().indexOf(i);if(a===-1)return`${i}`,0;let[o]=n(),s=r(),c=e.padding??.1;return o+(e.paddingOuter??c)*s+a*(s+s*c)},get range(){return n()},ticks(e){let n=t();if(e===void 0||e>=n.length)return[...n];if(e<=0)return[];let r=Math.ceil(n.length/e);return n.filter((e,t)=>t%r===0)}}}function xe(e,t,n){for(let r=0;r<t.length;r++){let i=n.bandCenter(t[r])-n.bandwidth/2;if(e>=i&&e<i+n.bandwidth)return r}return-1}function Se(e,t,n,r,i){if(r.stacked)if(r.horizontal){for(let n=0;n<i;n++)if(r.valueScale.map(r.stackedTops[n]?.[t]??0)>=e.x)return n;return i-1}else{for(let n=0;n<i;n++)if(r.valueScale.map(r.stackedTops[n]?.[t]??0)<=e.y)return n;return i-1}{let a=r.bandwidth/i,o=r.bandCenter(n[t])-r.bandwidth/2,s=r.horizontal?e.y-o:e.x-o,c=Math.floor(s/a);return Math.max(0,Math.min(i-1,c))}}function Ce(e,t,n,r,i){let a=i-1,o=r.stacked?r.stackedTops[a]?.[t]??0:Math.max(...Array.from({length:i},(e,r)=>n[r]?.[t]?.value??0)),s=r.valueScale.map(o);return r.horizontal?e.x>s:e.y<s}var we=new WeakMap;function Te(e,t,n,r,i,a){for(;e.children.length>t.length;){let t=e.lastElementChild;t&&e.removeChild(t)}let s=n.bandwidth(),u=a.stacked?s:s/a.seriesCount,d=a.stacked?0:u*a.seriesIndex,f=a.horizontal??!1,p=[],m=[];for(let o=0;o<t.length;o++){let s=t[o],h=n.map(s.key)+d,g=a.baselineYs?a.baselineYs[o]:i,_=r.map(s.y),v=e.children[o],y=!v;if(v||(v=c(`rect`,{class:`prism-bar`}),e.appendChild(v)),v.style.display=s.present?``:`none`,f){let e=Math.max(0,Math.abs(g-_)),t=Math.min(_,g);l(v,{fill:a.color,height:Math.max(0,u-1),rx:a.borderRadius,ry:a.borderRadius,y:h}),a.transition?y?(l(v,{width:0,x:g}),p.push({attrs:{width:{from:0,to:e},x:{from:g,to:t}},el:v})):m.push({attrs:{width:{from:Number(v.getAttribute(`width`)??e),to:e},x:{from:Number(v.getAttribute(`x`)??t),to:t}},el:v}):l(v,{width:e,x:t})}else{let e=Math.max(0,Math.abs(g-_)),t=Math.min(_,g);l(v,{fill:a.color,rx:a.borderRadius,ry:a.borderRadius,width:Math.max(0,u-1),x:h}),a.transition?y?(l(v,{height:0,y:g}),p.push({attrs:{height:{from:0,to:e},y:{from:g,to:t}},el:v})):m.push({attrs:{height:{from:Number(v.getAttribute(`height`)??e),to:e},y:{from:Number(v.getAttribute(`y`)??t),to:t}},el:v}):l(v,{height:e,y:t})}}if(a.transition){we.get(e)?.();let t=[];p.length>0&&t.push(o(p,a.transition,void 0,a.disposalSignal)),m.length>0&&t.push(o(m,{...a.transition,stagger:0},void 0,a.disposalSignal)),we.set(e,()=>{for(let e of t)e()})}}function Ee(e){return{horizontal:e===`grouped-horizontal`||e===`stacked-horizontal`,stacked:e===`stacked`||e===`stacked-horizontal`}}function De(e,t){let n=z(t.series),r;try{return r=R(e,t,e=>{let{groups:r,legend:i,tooltip:a}=e,o=e.dimensions.value,s=L(o.width,o.height,o.margin),l=n.value,u=ue(l,l.map(e=>z(e.data).value)),d=u.domain,f=u.series.map(({byKey:e})=>d.map(t=>e.get(t))),p=e=>{if(e)return{...e,tickFormat:t=>{let n=String(t),r=u.labels.get(n)??t;return e.tickFormat?e.tickFormat(r):String(r)}}};if(d.length===0){ae(r,i,a);return}let{horizontal:m,stacked:v}=Ee(t.variant??`grouped`),y,x;if(v){f.some(e=>e.some(e=>(e?.value??0)<0));let e=d.map((e,t)=>f.reduce((e,n)=>e+Math.max(0,n[t]?.value??0),0));y=Math.max(...e),x=0}else{let e=f.flatMap(e=>e.flatMap(e=>e?[e.value]:[]));y=Math.max(...e),x=Math.min(0,...e)}let S=be(m?{domain:d,range:[0,s.height]}:{domain:d,range:[0,s.width]}),C=b(m?{domain:[x,y],range:[0,s.width]}:{domain:[x,y],range:[s.height,0]}),w=[],T=Object.create(null);for(let e of d)T[e]=0;let E={bandCenter:e=>S.map(e)+S.bandwidth()/2,bandwidth:S.bandwidth(),baselinePx:C.map(0),horizontal:m,stacked:v,stackedTops:w,valueScale:C};if(m){t.xAxis?.grid&&_(r.grid,C,t.xAxis.grid,s.height,`vertical`,h(t.xAxis,s.width,`bottom`));let e=p(t.yAxis);e&&g(r.yAxis,S,e,s.height,`left`),t.xAxis&&(r.xAxis.setAttribute(`transform`,`translate(0,${s.height})`),g(r.xAxis,C,t.xAxis,s.width,`bottom`))}else{t.yAxis?.grid&&_(r.grid,C,t.yAxis.grid,s.width,`horizontal`,h(t.yAxis,s.height,`left`));let e=p(t.xAxis);e&&(r.xAxis.setAttribute(`transform`,`translate(0,${s.height})`),g(r.xAxis,S,e,s.width,`bottom`)),t.yAxis&&g(r.yAxis,C,t.yAxis,s.height,`left`)}for(;r.series.children.length>l.length;){let e=r.series.lastElementChild;e&&r.series.removeChild(e)}for(let n=0;n<l.length;n++){let i=l[n],a=r.series.children[n];a||(a=c(`g`,{class:`prism-bar-series`}),r.series.appendChild(a));let o=d.map((e,t)=>{let r=f[n]?.[t];if(v){let t=T[e]??0,n=t+Math.max(0,r?.value??0);return T[e]=n,{base:t,key:e,present:r!==void 0,y:n}}return{base:0,key:e,present:r!==void 0,y:r?.value??0}});w[n]=o.map(e=>e.y);let s=v?o.map(e=>C.map(e.base)):void 0;Te(a,o,S,C,E.baselinePx,{baselineYs:s,borderRadius:i.borderRadius??0,color:U(n,i.color),disposalSignal:e.disposalSignal,horizontal:m,seriesCount:l.length,seriesIndex:n,stacked:v,transition:t.transition})}return i?.update(l.map((e,t)=>({color:U(t,e.color),name:e.name}))),a?.hide(),{onClick:n=>{if(!t.onClick)return;let r=e.dimensions.value,i=V(e.svg,n,r.margin.left,r.margin.top),a=L(r.width,r.height,r.margin);if(i.x<0||i.x>a.width||i.y<0||i.y>a.height)return;let o=xe(m?i.y:i.x,d,E);if(o===-1)return;let s=Se(i,o,d,E,l.length),c=f[s]?.[o];c&&t.onClick({datum:c,originalEvent:n,series:l[s]})},onMouseLeave:()=>{a?.hide(),t.onHover?.(null)},onMouseMove:n=>{let r=e.dimensions.value,i=V(e.svg,n,r.margin.left,r.margin.top),o=L(r.width,r.height,r.margin);if(i.x<0||i.x>o.width||i.y<0||i.y>o.height){a?.hide();return}let s=xe(m?i.y:i.x,d,E);if(s===-1){a?.hide();return}if(Ce(i,s,f,E,l.length)){a?.hide();return}let c=Se(i,s,d,E,l.length),u=f[c]?.[s];if(u){let e=E.bandCenter(d[s]),i=v?w[c]?.[s]??u.value:u.value,o=C.map(i),f=m?o+r.margin.left:e+r.margin.left,p=m?e+r.margin.top:o+r.margin.top;a?.show(f,p,u,l[c]),t.onHover?.({datum:u,originalEvent:n,series:l[c]})}}}}),r}catch(e){throw r?.dispose(),e}}var X=new WeakMap;function Oe(e,t){return t===`monotone`?G(e):t===`step`?K(e):W(e)}function ke(e,t,n){let o=i(n.transition,0),s=o.duration,u=r(o.easing),d=e.querySelector(`.prism-line-path`);d||(d=c(`path`,{class:`prism-line-path`,fill:`none`}),e.appendChild(d)),l(d,{stroke:n.color,"stroke-width":n.strokeWidth});let f=e.querySelector(`.prism-line-dots`);if(n.showPoints?f||(f=c(`g`,{class:`prism-line-dots`}),e.appendChild(f)):f&&=(f.remove(),null),s===0){if(l(d,{d:Oe(t,n.curve)}),f){for(;f.children.length>t.length;)f.removeChild(f.lastChild);for(let e=0;e<t.length;e++){let r=f.children[e];r||(r=c(`circle`,{class:`prism-line-dot`}),f.appendChild(r)),l(r,{cx:t[e].x,cy:t[e].y,fill:n.color,r:n.pointRadius})}}return}X.get(e)?.();let p=!!d.getAttribute(`d`),m=[],h=null;if(f){let e=f.children.length;for(let t=0;t<e;t++){let e=f.children[t],n={x:Number(e.getAttribute(`cx`)),y:Number(e.getAttribute(`cy`))};m.push(n),h=n}for(;f.children.length>t.length;)f.removeChild(f.lastChild);for(let e=f.children.length;e<t.length;e++){let r=c(`circle`,{class:`prism-line-dot`});l(r,{cx:t[e].x,cy:t[e].y,fill:n.color,r:n.pointRadius}),f.appendChild(r)}}for(let e=m.length;e<t.length;e++)m.push(h??t[e]);let g=null;function _(r){if(n.disposalSignal?.aborted){X.delete(e);return}g===null&&(g=r);let i=Math.min(1,(r-g)/s),o=u(i),c=t.map((e,t)=>{let n=m[t]??e;return{x:a(n.x,e.x,o),y:a(n.y,e.y,o)}});if(l(d,{d:Oe(c,n.curve)}),f)for(let e=0;e<t.length;e++){let t=f.children[e];t&&l(t,{cx:c[e].x,cy:c[e].y})}if(i<1){let t=requestAnimationFrame(_);X.set(e,()=>cancelAnimationFrame(t))}else X.delete(e)}if(!p)l(d,{d:Oe(t,n.curve)});else{let t=requestAnimationFrame(_);X.set(e,()=>cancelAnimationFrame(t))}}function Ae(e,t,n){return e.some(e=>e.key==null)||e.some(e=>typeof e.key==`string`),e.map(e=>({x:t.map(e.key),y:n.map(e.value)}))}function je(e,t){let n=null,r=z(t.series),i;try{return i=R(e,t,e=>{let{groups:i,legend:a,tooltip:o}=e,s=e.dimensions.value,l=L(s.width,s.height,s.margin),u=r.value,d=u.map(e=>z(e.data)).map(e=>e.value),f=d.flat().map(e=>e.key),p=d.flat().map(e=>e.value);if(f.length===0){ae(i,a,o,n);return}t.crosshair&&!n&&(n=le(e.chartArea,t.crosshair));let m=j(f,l.width),v=M(p,l.height);for(t.yAxis?.grid&&_(i.grid,v,t.yAxis.grid,l.width,`horizontal`,h(t.yAxis,l.height,`left`)),t.xAxis?.grid&&_(i.grid,m,t.xAxis.grid,l.height,`vertical`,h(t.xAxis,l.width,`bottom`)),t.xAxis&&(i.xAxis.setAttribute(`transform`,`translate(0,${l.height})`),g(i.xAxis,m,t.xAxis,l.width,`bottom`)),t.yAxis&&g(i.yAxis,v,t.yAxis,l.height,`left`);i.series.children.length>u.length;)i.series.removeChild(i.series.lastChild);let y=[];for(let n=0;n<u.length;n++){let r=u[n],a=i.series.children[n];a||(a=c(`g`,{class:`prism-line-series`}),i.series.appendChild(a));let o=Ae(d[n],m,v);y.push(o),ke(a,o,{color:U(n,r.color),curve:r.curve??`linear`,disposalSignal:e.disposalSignal,pointRadius:r.pointRadius??3,showPoints:r.showPoints??!1,strokeWidth:r.strokeWidth??2,transition:t.transition})}return a?.update(u.map((e,t)=>({color:U(t,e.color),name:e.name}))),o?.hide(),fe({crosshair:n,dims:()=>e.dimensions.value,getData:()=>d,getPoints:()=>y,getSeriesList:()=>r.value,onClick:t.onClick,onHover:t.onHover,svg:e.svg,tooltip:o})}),i}catch(e){throw i?.dispose(),e}}function Me(e,t,n,r,i,a,o,s,c,l,u=!1){let d=e.reduce((e,t)=>e+Math.max(0,t.value),0);if(d===0)return[];let f=o-a,p=r>0?Math.asin(Math.min(1,s/2/r)):0,m=a,h=e.length;return e.map((e,a)=>{let o=Math.max(0,e.value)/d*f,s=m,g=m+o;m+=o;let _=Math.min(p,o/2);return{capEnd:u&&a===h-1,capStart:u&&a===0,centerX:t,centerY:n,color:e.color??l(a),cornerRadius:c,endAngle:g,index:a,innerRadius:i,outerRadius:r,padAngle:_,slice:e,startAngle:s}})}function Z(e,t,n,r){return`${e+n*Math.sin(r)},${t-n*Math.cos(r)}`}function Q(e,t,n){return e+t*Math.sin(n)}function $(e,t,n){return e-t*Math.cos(n)}function Ne(e){let{capEnd:t,capStart:n,centerX:r,centerY:i,cornerRadius:a,endAngle:o,innerRadius:s,outerRadius:c,padAngle:l,startAngle:u}=e,d=o-u;if(d<=0)return``;if(d>=2*Math.PI-1e-6){let e=u+Math.PI;return s<=0?`M${Z(r,i,c,u)}A${c},${c},0,1,1,${Z(r,i,c,e)}A${c},${c},0,1,1,${Z(r,i,c,u)}Z`:[`M${Z(r,i,c,u)}`,`A${c},${c},0,1,1,${Z(r,i,c,e)}`,`A${c},${c},0,1,1,${Z(r,i,c,u)}`,`M${Z(r,i,s,u)}`,`A${s},${s},0,1,0,${Z(r,i,s,e)}`,`A${s},${s},0,1,0,${Z(r,i,s,u)}`,`Z`].join(``)}let f=n?u:u+l,p=t?o:o-l;if(p<=f)return``;let m=p-f;if(a<=0){let e=+(m>Math.PI);return s<=0?`M${r},${i}L${Z(r,i,c,f)}A${c},${c},0,${e},1,${Z(r,i,c,p)}Z`:[`M${Z(r,i,c,f)}`,`A${c},${c},0,${e},1,${Z(r,i,c,p)}`,`L${Z(r,i,s,p)}`,`A${s},${s},0,${e},0,${Z(r,i,s,f)}`,`Z`].join(``)}let h=Math.min(a/c,m/2),g=Math.min(a/s,m/2),_=Math.min(a,(c-s)/2),v=(c-s)/2,y=f+(n?0:h),b=p-(t?0:h),x=f+(n?0:g),S=p-(t?0:g),C=+(b-y>Math.PI),w=+(S-x>Math.PI),T=Q(r,c,f),E=$(i,c,f),D=Q(r,c,p),O=$(i,c,p),k=Q(r,s,f),A=$(i,s,f),j=Q(r,s,p),M=$(i,s,p),N=_/(c-s),P=`${T+(k-T)*N},${E+(A-E)*N}`,ee=`${D+(j-D)*N},${O+(M-O)*N}`,F=`${k+(T-k)*N},${A+(E-A)*N}`,te=`${j+(D-j)*N},${M+(O-M)*N}`,I=[];return n?I.push(`M${Z(r,i,c,f)}`):(I.push(`M${P}`),I.push(`Q${T},${E},${Z(r,i,c,y)}`)),I.push(`A${c},${c},0,${C},1,${Z(r,i,c,b)}`),t?I.push(`A${v},${v},0,0,1,${Z(r,i,s,p)}`):(I.push(`Q${D},${O},${ee}`),I.push(`L${te}`),I.push(`Q${j},${M},${Z(r,i,s,S)}`)),I.push(`A${s},${s},0,${w},0,${Z(r,i,s,x)}`),n?I.push(`A${v},${v},0,0,0,${Z(r,i,c,f)}`):I.push(`Q${k},${A},${F}`),I.push(`Z`),I.join(``)}function Pe(e){let t=(e.startAngle+e.endAngle)/2,n=(e.outerRadius+e.innerRadius)/2;return{x:e.centerX+n*Math.sin(t),y:e.centerY-n*Math.cos(t)}}var Fe=2*Math.PI,Ie=-Math.PI/2,Le=Math.PI/2;function Re(e){return e===`semi`?{end:Le,start:Ie}:{end:Fe,start:0}}function ze(e,t){let n=t.variant??`pie`,o=t.padPixels??(n===`pie`?0:8),s=t.cornerRadius??(n===`pie`?0:8),u=z(t.data),d=c(`circle`,{class:`prism-pie-bg`,"pointer-events":`none`}),f=c(`g`,{class:`prism-pie-slices`,"shape-rendering":`geometricPrecision`}),p=c(`g`,{class:`prism-pie-labels`,"pointer-events":`none`}),m=[],h=null;function g(e){for(;p.children.length>m.length;)p.removeChild(p.lastChild);for(let t=0;t<m.length;t++){let n=m[t],r=e[t];if(!r?.label)continue;let{x:i,y:a}=Pe(n),o=p.children[t];o||(o=c(`text`,{class:`prism-pie-label`}),p.appendChild(o)),l(o,{"dominant-baseline":`middle`,fill:`var(--prism-pie-label-color, #fff)`,"font-family":`var(--prism-font-family, system-ui)`,"font-size":`var(--prism-pie-label-size, 12px)`,"text-anchor":`middle`,x:i,y:a}),o.textContent=r.label}}let _;try{return _=ce(e,{a11y:t.a11y,legend:t.legend,plugins:t.plugins,tooltip:t.tooltip},_=>{let{legend:v,svg:y,tooltip:b}=_;y.contains(d)||(y.appendChild(d),y.appendChild(f),y.appendChild(p));let{height:x,width:S}=_.dimensions.value,C=n===`semi`,w=S/2,T=C?x*.85:x/2,E=C?Math.min(w,T)-8:Math.min(S,x)/2-8,D=n===`pie`?0:Math.round(E*.55),O=t.innerRadius===void 0?D:t.innerRadius,k=Math.max(O+1,E),A=u.value,{end:j,start:M}=Re(n);for(m=Me(A,w,T,k,O,M,j,o,s,e=>U(e),!1),l(d,{cx:w,cy:T,r:O>0?O:0}),d.setAttribute(`style`,`fill:var(--prism-bg,#fff)`);f.children.length>m.length;)f.removeChild(f.lastChild);for(;p.children.length>m.length;)p.removeChild(p.lastChild);let N=i(t.transition,0),P=N.duration,ee=r(N.easing);for(let e=0;e<m.length;e++){let n=m[e],r=f.children[e];r||(r=c(`path`,{class:`prism-pie-slice`}),f.appendChild(r)),r.setAttribute(`fill`,n.color),r.setAttribute(`stroke`,`none`),r.style.cursor=t.onClick||t.onHover?`pointer`:``}if(h!==null&&(cancelAnimationFrame(h),h=null),P>0){let e=null,t=n=>{e===null&&(e=n);let r=ee(Math.min(1,(n-e)/P)),i=a(M,j,r);for(let e=0;e<m.length;e++){let t=m[e],n=f.children[e];if(n)if(i<=t.startAngle)l(n,{d:``});else{let e=Math.min(t.endAngle,i);l(n,{d:Ne({...t,endAngle:e})})}}r<1?h=requestAnimationFrame(t):(h=null,g(A))};h=requestAnimationFrame(t)}else{for(let e=0;e<m.length;e++){let t=m[e],n=f.children[e];n&&l(n,{d:Ne(t)})}g(A)}return v?.update(m.map(e=>({color:e.color,name:e.slice.label??``}))),b?.hide(),{onClick:e=>{if(!t.onClick)return;let r=y.getBoundingClientRect(),i=e.clientX-r.left,a=e.clientY-r.top,o=Be(m,i,a,n);o>=0&&t.onClick(m[o].slice,o)},onMouseLeave:()=>{t.onHover?.(null,null),b?.hide()},onMouseMove:r=>{let i=y.getBoundingClientRect(),a=r.clientX-i.left,o=r.clientY-i.top,s=Be(m,a,o,n);if(s>=0){let n=m[s];t.onHover?.(n.slice,s);let{x:r,y:a}=Pe(n),o=e.getBoundingClientRect();b?.show(r+(i.left-o.left),a+(i.top-o.top),{key:s,value:n.slice.value},{color:n.color,data:[],name:n.slice.label??``})}else t.onHover?.(null,null),b?.hide()}}}),{get disposalSignal(){return _.disposalSignal},dispose(){h!==null&&(cancelAnimationFrame(h),h=null),_.dispose()},get disposed(){return _.disposed},el:_.el,[Symbol.dispose](){this.dispose()}}}catch(e){throw _?.dispose(),e}}function Be(e,t,n,r){for(let i=0;i<e.length;i++){let a=e[i],o=t-a.centerX,s=n-a.centerY,c=Math.sqrt(o*o+s*s);if(c<a.outerRadius&&c>=a.innerRadius){let e=Math.atan2(o,-s);if(r===`semi`){if(e>=a.startAngle-1e-9&&e<=a.endAngle+1e-9)return i}else{let t=e<0?e+Fe:e;if(t>=a.startAngle-1e-9&&t<=a.endAngle+1e-9)return i}}}return-1}function Ve(e,t,n){if(e.length===0)return[];let r=t/Math.max(1,e.length-1),i=Math.min(...e),a=Math.max(...e)-i||1;return e.map((e,t)=>({x:t*r,y:n-(e-i)/a*n}))}function He(e,t,n,r=`linear`){if(e.length===0)return``;let i=Ve(e,t,n);return q(i,i.map(e=>({x:e.x,y:n})),r??`linear`)}function Ue(e,t,n,r){if(e.length===0)return``;let i=Ve(e,t,n);return r===`monotone`?G(i):r===`step`?K(i):W(i)}function We(e,t,n,o,s,u,d){let f=t.length,p=Math.max(1,n/f-1),m=n/f,h=Math.min(0,...t),g=Math.max(...t)-h||1,_=i(u,0),v=_.duration,y=r(_.easing);for(;e.children.length>f;){let t=e.lastElementChild;t&&e.removeChild(t)}for(let n=0;n<f;n++){let r=Math.max(1,(t[n]-h)/g*o),i=o-r,u=e.children[n];if(u||(u=c(`rect`,{class:`prism-spark-bar`}),e.appendChild(u)),l(u,{fill:s,width:p,x:n*m}),v>0&&!u.hasAttribute(`data-init`)){u.setAttribute(`data-init`,`1`),l(u,{height:0,y:o});let e=null,t={h:0,y:o},n={h:r,y:i},s=r=>{if(d?.aborted)return;e===null&&(e=r);let i=y(Math.min(1,(r-e)/v));l(u,{height:a(t.h,n.h,i),y:a(t.y,n.y,i)}),i<1&&requestAnimationFrame(s)};requestAnimationFrame(s)}else u.setAttribute(`data-init`,`1`),l(u,{height:r,y:i})}}function Ge(e){return e.length>0&&e[0]!==null&&typeof e[0]==`object`}function Ke(e,t,n,r,i,a,o){let s=Math.min(i,n/2,r/2),c=a?s:0,l=a?s:0,u=o?s:0,d=o?s:0;return[`M${e+c},${t}`,`H${e+n-u}`,u?`Q${e+n},${t} ${e+n},${t+u}`:``,`V${t+r-d}`,d?`Q${e+n},${t+r} ${e+n-d},${t+r}`:``,`H${e+l}`,l?`Q${e},${t+r} ${e},${t+r-l}`:``,`V${t+c}`,c?`Q${e},${t} ${e+c},${t}`:``,`Z`].filter(Boolean).join(``)}function qe(e){return`var(--prism-color-${e%8+1})`}function Je(t,n){let r=n.variant??`line`,i=n.color??`var(--prism-color-1)`,a=n.curve??`linear`,o=n.strokeWidth??1.5,s=n.fillOpacity??.2,u=z(n.data),d=ie(t,{...n.a11y?{a11y:n.a11y}:{ariaHidden:!0},margin:{bottom:0,left:0,right:0,top:0}}),{svg:f}=d;f.classList.add(`prism-sparkline`);let p=c(`g`,{class:`prism-spark-inner`});f.appendChild(p);let m;function h(){let{height:e,width:t}=d.dimensions.value,f=u.value;for(;p.firstChild;)p.removeChild(p.firstChild);if(f.length!==0){if(r===`stack`&&Ge(f)){let r=c(`g`,{class:`prism-spark-stack`});p.appendChild(r);let i=n.cornerRadius??4,a=f,o=a.reduce((e,t)=>e+Math.max(0,t.value),0);if(o>0){let s=(n.padPixels??0)/2,u=0;a.forEach((n,d)=>{let f=Math.round(u);u+=Math.max(0,n.value)/o*t;let p=d===a.length-1?t:Math.round(u),m=d===0,h=d===a.length-1,g=Ke(f+(m?0:s),0,Math.max(0,p-f-(m?0:s)-(h?0:s)),e,i,m,h),_=c(`path`,{class:`prism-spark-stack-segment`});l(_,{d:g,fill:n.color??qe(d)}),r.appendChild(_)})}}else if(r===`bar`){let r=c(`g`,{class:`prism-spark-bars`});p.appendChild(r),We(r,f,t,e,i,n.transition,_.signal)}else{if(r===`area`){let n=c(`path`,{class:`prism-spark-fill`});l(n,{d:He(f,t,e,a),fill:i,"fill-opacity":s,stroke:`none`}),p.appendChild(n)}let n=c(`path`,{class:`prism-spark-line`});l(n,{d:Ue(f,t,e,a),fill:`none`,stroke:i,"stroke-width":o}),p.appendChild(n)}Ge(f)||g(f)}}function g(e){if(m?.(),m=void 0,!n.onHover&&!n.onClick||e.length<=1)return;let{width:t}=d.dimensions.value;f.style.cursor=`crosshair`;let r=t/(e.length-1),i=t=>{let i=f.getBoundingClientRect(),a=t.clientX-i.left,o=Math.max(0,Math.min(e.length-1,Math.round(a/r)));n.onHover?.(o,e[o])},a=()=>n.onHover?.(null,null),o=t=>{if(!n.onClick)return;let i=f.getBoundingClientRect(),a=t.clientX-i.left,o=Math.max(0,Math.min(e.length-1,Math.round(a/r)));n.onClick(o,e[o])};f.addEventListener(`mousemove`,i),f.addEventListener(`mouseleave`,a),f.addEventListener(`click`,o),m=()=>{f.removeEventListener(`mousemove`,i),f.removeEventListener(`mouseleave`,a),f.removeEventListener(`click`,o)}}let _=new AbortController,v=(0,e.createScope)(),y=!1;try{return v.run(()=>{(0,e.effect)(()=>{h()},{scheduler:`microtask`})}),{get disposalSignal(){return _.signal},dispose(){y||(y=!0,_.abort(),m?.(),v.dispose(),d.dispose())},get disposed(){return y},el:f,[Symbol.dispose](){this.dispose()}}}catch(e){throw _.abort(),v.dispose(),d.dispose(),e}}exports.PrismError=F,exports.PrismRenderError=te,exports.animate=o,exports.bandScale=be,exports.createAreaChart=ye,exports.createBarChart=De,exports.createLineChart=je,exports.createPieChart=ze,exports.createSparkline=Je,exports.linearScale=b,exports.resetTheme=he,exports.seriesColor=U,exports.setTheme=me,exports.timeScale=A;
|
|
2
2
|
//# sourceMappingURL=prism.cjs.map
|