@cascivo/charts 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/chart-frame.module-B498IKO9.js +1 -0
- package/dist/index.d.ts +209 -15
- package/dist/index.js +1 -5006
- package/dist/node/chart-frame.module-B498IKO9.js +1 -0
- package/dist/node/index.js +1 -5007
- package/dist/node/sparkline.js +1 -61
- package/dist/sparkline.js +1 -60
- package/package.json +3 -3
- package/dist/chart-frame.module-CkOcXGSL.js +0 -191
- package/dist/node/chart-frame.module-CkOcXGSL.js +0 -191
package/dist/node/sparkline.js
CHANGED
|
@@ -1,61 +1 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { i as e, l as t, t as n } from "./chart-frame.module-CkOcXGSL.js";
|
|
3
|
-
import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
4
|
-
//#region src/core/mini-frame.tsx
|
|
5
|
-
var o = {
|
|
6
|
-
position: "absolute",
|
|
7
|
-
insetInlineStart: "-9999px",
|
|
8
|
-
inlineSize: "1px",
|
|
9
|
-
blockSize: "1px",
|
|
10
|
-
overflow: "hidden",
|
|
11
|
-
clipPath: "inset(50%)",
|
|
12
|
-
whiteSpace: "nowrap"
|
|
13
|
-
};
|
|
14
|
-
function s({ title: e, width: t, height: r, className: s, fallback: c, children: l }) {
|
|
15
|
-
return /* @__PURE__ */ a("div", {
|
|
16
|
-
className: [n.frame, s].filter(Boolean).join(" "),
|
|
17
|
-
"data-plain": "",
|
|
18
|
-
children: [/* @__PURE__ */ i("svg", {
|
|
19
|
-
role: "img",
|
|
20
|
-
"aria-label": e,
|
|
21
|
-
width: t,
|
|
22
|
-
height: r,
|
|
23
|
-
viewBox: `0 0 ${t} ${r}`,
|
|
24
|
-
children: l
|
|
25
|
-
}), c && /* @__PURE__ */ i("div", {
|
|
26
|
-
className: n.fallback,
|
|
27
|
-
style: o,
|
|
28
|
-
children: c
|
|
29
|
-
})]
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
33
|
-
//#region src/charts/sparkline/sparkline-lite.tsx
|
|
34
|
-
function c({ data: n, width: o = 120, height: c = 32, label: l, ariaLabel: u, color: d = "var(--cascivo-chart-1)", endDot: f = !0, className: p }) {
|
|
35
|
-
let m = (() => {
|
|
36
|
-
if (n.length === 0) return [];
|
|
37
|
-
let e = t([0, n.length - 1], [2, o - 2]), r = Math.min(...n), i = Math.max(...n), a = t([r === i ? r - 1 : r, i], [c - 2, 2]);
|
|
38
|
-
return n.map((t, n) => [e.map(n), a.map(t)]);
|
|
39
|
-
})(), h = m[m.length - 1];
|
|
40
|
-
return /* @__PURE__ */ i(s, {
|
|
41
|
-
title: l ?? u,
|
|
42
|
-
width: o,
|
|
43
|
-
height: c,
|
|
44
|
-
...p === void 0 ? {} : { className: p },
|
|
45
|
-
children: m.length > 0 && /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("path", {
|
|
46
|
-
d: e(m, "monotone"),
|
|
47
|
-
fill: "none",
|
|
48
|
-
stroke: d,
|
|
49
|
-
strokeWidth: 1.5,
|
|
50
|
-
strokeLinecap: "round",
|
|
51
|
-
strokeLinejoin: "round"
|
|
52
|
-
}), f && h && /* @__PURE__ */ i("circle", {
|
|
53
|
-
cx: h[0],
|
|
54
|
-
cy: h[1],
|
|
55
|
-
r: 2.5,
|
|
56
|
-
fill: d
|
|
57
|
-
})] })
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
//#endregion
|
|
61
|
-
export { c as Sparkline };
|
|
1
|
+
"use client";import{i as e,l as t,t as n}from"./chart-frame.module-B498IKO9.js";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";var o={position:`absolute`,insetInlineStart:`-9999px`,inlineSize:`1px`,blockSize:`1px`,overflow:`hidden`,clipPath:`inset(50%)`,whiteSpace:`nowrap`};function MiniFrame({title:e,width:t,height:r,className:s,fallback:c,children:l}){return a(`div`,{className:[n.frame,s].filter(Boolean).join(` `),"data-plain":``,children:[i(`svg`,{role:`img`,"aria-label":e,width:t,height:r,viewBox:`0 0 ${t} ${r}`,children:l}),c&&i(`div`,{className:n.fallback,style:o,children:c})]})}function Sparkline({data:n,width:o=120,height:s=32,label:c,ariaLabel:l,color:u=`var(--cascivo-chart-1)`,endDot:d=!0,className:f}){let p=(()=>{if(n.length===0)return[];let e=t([0,n.length-1],[2,o-2]),r=Math.min(...n),i=Math.max(...n),a=t([r===i?r-1:r,i],[s-2,2]);return n.map((t,n)=>[e.map(n),a.map(t)])})(),m=p[p.length-1];return i(MiniFrame,{title:c??l,width:o,height:s,...f===void 0?{}:{className:f},children:p.length>0&&a(r,{children:[i(`path`,{d:e(p,`monotone`),fill:`none`,stroke:u,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`}),d&&m&&i(`circle`,{cx:m[0],cy:m[1],r:2.5,fill:u})]})})}export{Sparkline};
|
package/dist/sparkline.js
CHANGED
|
@@ -1,62 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import './charts.css';
|
|
3
|
-
import
|
|
4
|
-
import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
5
|
-
//#region src/core/mini-frame.tsx
|
|
6
|
-
var o = {
|
|
7
|
-
position: "absolute",
|
|
8
|
-
insetInlineStart: "-9999px",
|
|
9
|
-
inlineSize: "1px",
|
|
10
|
-
blockSize: "1px",
|
|
11
|
-
overflow: "hidden",
|
|
12
|
-
clipPath: "inset(50%)",
|
|
13
|
-
whiteSpace: "nowrap"
|
|
14
|
-
};
|
|
15
|
-
function s({ title: e, width: t, height: r, className: s, fallback: c, children: l }) {
|
|
16
|
-
return /* @__PURE__ */ a("div", {
|
|
17
|
-
className: [n.frame, s].filter(Boolean).join(" "),
|
|
18
|
-
"data-plain": "",
|
|
19
|
-
children: [/* @__PURE__ */ i("svg", {
|
|
20
|
-
role: "img",
|
|
21
|
-
"aria-label": e,
|
|
22
|
-
width: t,
|
|
23
|
-
height: r,
|
|
24
|
-
viewBox: `0 0 ${t} ${r}`,
|
|
25
|
-
children: l
|
|
26
|
-
}), c && /* @__PURE__ */ i("div", {
|
|
27
|
-
className: n.fallback,
|
|
28
|
-
style: o,
|
|
29
|
-
children: c
|
|
30
|
-
})]
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
//#endregion
|
|
34
|
-
//#region src/charts/sparkline/sparkline-lite.tsx
|
|
35
|
-
function c({ data: n, width: o = 120, height: c = 32, label: l, ariaLabel: u, color: d = "var(--cascivo-chart-1)", endDot: f = !0, className: p }) {
|
|
36
|
-
let m = (() => {
|
|
37
|
-
if (n.length === 0) return [];
|
|
38
|
-
let e = t([0, n.length - 1], [2, o - 2]), r = Math.min(...n), i = Math.max(...n), a = t([r === i ? r - 1 : r, i], [c - 2, 2]);
|
|
39
|
-
return n.map((t, n) => [e.map(n), a.map(t)]);
|
|
40
|
-
})(), h = m[m.length - 1];
|
|
41
|
-
return /* @__PURE__ */ i(s, {
|
|
42
|
-
title: l ?? u,
|
|
43
|
-
width: o,
|
|
44
|
-
height: c,
|
|
45
|
-
...p === void 0 ? {} : { className: p },
|
|
46
|
-
children: m.length > 0 && /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i("path", {
|
|
47
|
-
d: e(m, "monotone"),
|
|
48
|
-
fill: "none",
|
|
49
|
-
stroke: d,
|
|
50
|
-
strokeWidth: 1.5,
|
|
51
|
-
strokeLinecap: "round",
|
|
52
|
-
strokeLinejoin: "round"
|
|
53
|
-
}), f && h && /* @__PURE__ */ i("circle", {
|
|
54
|
-
cx: h[0],
|
|
55
|
-
cy: h[1],
|
|
56
|
-
r: 2.5,
|
|
57
|
-
fill: d
|
|
58
|
-
})] })
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
//#endregion
|
|
62
|
-
export { c as Sparkline };
|
|
3
|
+
import{i as e,l as t,t as n}from"./chart-frame.module-B498IKO9.js";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";var o={position:`absolute`,insetInlineStart:`-9999px`,inlineSize:`1px`,blockSize:`1px`,overflow:`hidden`,clipPath:`inset(50%)`,whiteSpace:`nowrap`};function MiniFrame({title:e,width:t,height:r,className:s,fallback:c,children:l}){return a(`div`,{className:[n.frame,s].filter(Boolean).join(` `),"data-plain":``,children:[i(`svg`,{role:`img`,"aria-label":e,width:t,height:r,viewBox:`0 0 ${t} ${r}`,children:l}),c&&i(`div`,{className:n.fallback,style:o,children:c})]})}function Sparkline({data:n,width:o=120,height:s=32,label:c,ariaLabel:l,color:u=`var(--cascivo-chart-1)`,endDot:d=!0,className:f}){let p=(()=>{if(n.length===0)return[];let e=t([0,n.length-1],[2,o-2]),r=Math.min(...n),i=Math.max(...n),a=t([r===i?r-1:r,i],[s-2,2]);return n.map((t,n)=>[e.map(n),a.map(t)])})(),m=p[p.length-1];return i(MiniFrame,{title:c??l,width:o,height:s,...f===void 0?{}:{className:f},children:p.length>0&&a(r,{children:[i(`path`,{d:e(p,`monotone`),fill:`none`,stroke:u,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`}),d&&m&&i(`circle`,{cx:m[0],cy:m[1],r:2.5,fill:u})]})})}export{Sparkline};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cascivo/charts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Chart components built from scratch — scales, shapes, and signal-driven rendering, zero dependencies. Colors come from @cascivo/themes; components from @cascivo/react. Docs offline: npx @cascivo/docs",
|
|
6
6
|
"keywords": [
|
|
@@ -51,8 +51,8 @@
|
|
|
51
51
|
"provenance": true
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@cascivo/core": "^1.
|
|
55
|
-
"@cascivo/i18n": "^1.
|
|
54
|
+
"@cascivo/core": "^1.2.0",
|
|
55
|
+
"@cascivo/i18n": "^1.2.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@preact/signals": "^2",
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
//#region src/engine/scale.ts
|
|
3
|
-
function e(e, n) {
|
|
4
|
-
let [r, i] = e, [a, o] = n, s = i - r;
|
|
5
|
-
return {
|
|
6
|
-
domain: e,
|
|
7
|
-
range: n,
|
|
8
|
-
map: (e) => s === 0 ? a : a + (e - r) / s * (o - a),
|
|
9
|
-
invert: (e) => o - a === 0 ? r : r + (e - a) / (o - a) * s,
|
|
10
|
-
ticks: (e = 5, n) => t(r, i, e, n)
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
function t(e, t, n = 5, r) {
|
|
14
|
-
if (!Number.isFinite(e) || !Number.isFinite(t) || e === t) return [e];
|
|
15
|
-
e > t && ([e, t] = [t, e]);
|
|
16
|
-
let i = r ?? !(Number.isInteger(e) && Number.isInteger(t)), a = (t - e) / Math.max(1, n), o = 10 ** Math.floor(Math.log10(a)), s = i ? [
|
|
17
|
-
1,
|
|
18
|
-
2,
|
|
19
|
-
2.5,
|
|
20
|
-
5,
|
|
21
|
-
10
|
|
22
|
-
] : [
|
|
23
|
-
1,
|
|
24
|
-
2,
|
|
25
|
-
5,
|
|
26
|
-
10
|
|
27
|
-
], c = a / o, l = (s.find((e) => e >= c) ?? 10) * o;
|
|
28
|
-
i || (l = Math.max(1, Math.round(l)));
|
|
29
|
-
let u = Math.ceil(e / l), d = Math.floor(t / l + 1e-9), f = [], p = Math.max(0, Math.ceil(-Math.log10(l)) + 2);
|
|
30
|
-
for (let e = u; e <= d; e++) f.push(parseFloat((e * l).toFixed(p)));
|
|
31
|
-
return f;
|
|
32
|
-
}
|
|
33
|
-
function n(e, t, n = .1) {
|
|
34
|
-
let [r, i] = t, a = e.length, o = (i - r) / Math.max(1, a + n * (a + 1)), s = o, c = o * n, l = new Map(e.map((e, t) => [e, t]));
|
|
35
|
-
return {
|
|
36
|
-
domain: e,
|
|
37
|
-
range: t,
|
|
38
|
-
bandwidth: s,
|
|
39
|
-
map: (e) => {
|
|
40
|
-
let t = l.get(e);
|
|
41
|
-
return t === void 0 ? void 0 : r + c + t * (o + c);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
function r(e, t) {
|
|
46
|
-
let [n, r] = e, [i, a] = t, o = Math.sqrt(Math.max(0, n)), s = Math.sqrt(Math.max(0, r)) - o;
|
|
47
|
-
return (e) => s === 0 ? (i + a) / 2 : i + (Math.sqrt(Math.max(0, e)) - o) / s * (a - i);
|
|
48
|
-
}
|
|
49
|
-
//#endregion
|
|
50
|
-
//#region src/engine/shape.ts
|
|
51
|
-
function i(e) {
|
|
52
|
-
return Math.round(e * 100) / 100;
|
|
53
|
-
}
|
|
54
|
-
function a(e, t = !1) {
|
|
55
|
-
if (t) {
|
|
56
|
-
let t = e.filter((e) => e !== null);
|
|
57
|
-
return t.length > 0 ? [t] : [];
|
|
58
|
-
}
|
|
59
|
-
let n = [], r = [];
|
|
60
|
-
for (let t of e) t === null ? (r.length > 0 && n.push(r), r = []) : r.push(t);
|
|
61
|
-
return r.length > 0 && n.push(r), n;
|
|
62
|
-
}
|
|
63
|
-
function o(e, t = "linear") {
|
|
64
|
-
if (e.length === 0) return "";
|
|
65
|
-
if (e.length === 1 || t === "linear") return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
66
|
-
switch (t) {
|
|
67
|
-
case "monotone": return p(e);
|
|
68
|
-
case "step":
|
|
69
|
-
case "stepBefore":
|
|
70
|
-
case "stepAfter": return s(e, t);
|
|
71
|
-
case "natural": return l(e);
|
|
72
|
-
case "basis": return u(e);
|
|
73
|
-
case "cardinal": return d(e, 0);
|
|
74
|
-
case "catmullRom": return f(e, .5);
|
|
75
|
-
default: return p(e);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function s(e, t) {
|
|
79
|
-
let n = `M${e[0][0]},${e[0][1]}`;
|
|
80
|
-
for (let r = 0; r < e.length - 1; r++) {
|
|
81
|
-
let [i, a] = e[r], [o, s] = e[r + 1];
|
|
82
|
-
if (t === "stepBefore") n += `L${i},${s}L${o},${s}`;
|
|
83
|
-
else if (t === "stepAfter") n += `L${o},${a}L${o},${s}`;
|
|
84
|
-
else {
|
|
85
|
-
let e = (i + o) / 2;
|
|
86
|
-
n += `L${e},${a}L${e},${s}L${o},${s}`;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return n;
|
|
90
|
-
}
|
|
91
|
-
function c(e) {
|
|
92
|
-
let t = e.length - 1;
|
|
93
|
-
if (t < 1) return [[], []];
|
|
94
|
-
let n = Array(t), r = Array(t), i = Array(t);
|
|
95
|
-
r[0] = 2, i[0] = e[0] + 2 * e[1];
|
|
96
|
-
for (let a = 1; a < t - 1; a++) n[a] = 1, r[a] = 4, i[a] = 4 * e[a] + 2 * e[a + 1];
|
|
97
|
-
n[t - 1] = 2, r[t - 1] = 7, i[t - 1] = 8 * e[t - 1] + e[t];
|
|
98
|
-
for (let e = 1; e < t; e++) {
|
|
99
|
-
let t = (n[e] ?? 0) / r[e - 1];
|
|
100
|
-
r[e] = r[e] - t, i[e] = i[e] - t * i[e - 1];
|
|
101
|
-
}
|
|
102
|
-
let a = Array(t), o = Array(t);
|
|
103
|
-
a[t - 1] = i[t - 1] / r[t - 1];
|
|
104
|
-
for (let e = t - 2; e >= 0; e--) a[e] = (i[e] - a[e + 1]) / r[e];
|
|
105
|
-
for (let n = 0; n < t - 1; n++) o[n] = 2 * e[n + 1] - a[n + 1];
|
|
106
|
-
return o[t - 1] = (e[t] + a[t - 1]) / 2, [a, o];
|
|
107
|
-
}
|
|
108
|
-
function l(e) {
|
|
109
|
-
let t = e.length;
|
|
110
|
-
if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
111
|
-
let n = e.map((e) => e[0]), r = e.map((e) => e[1]), [i, a] = c(n), [o, s] = c(r), l = `M${n[0]},${r[0]}`;
|
|
112
|
-
for (let e = 0; e < t - 1; e++) l += `C${i[e]},${o[e]} ${a[e]},${s[e]} ${n[e + 1]},${r[e + 1]}`;
|
|
113
|
-
return l;
|
|
114
|
-
}
|
|
115
|
-
function u(e) {
|
|
116
|
-
let t = e.length;
|
|
117
|
-
if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
118
|
-
let n = (n) => e[Math.max(0, Math.min(t - 1, n))][0], r = (n) => e[Math.max(0, Math.min(t - 1, n))][1], i = `M${n(0)},${r(0)}`;
|
|
119
|
-
for (let e = 0; e < t - 1; e++) {
|
|
120
|
-
let t = n(e - 1), a = r(e - 1), o = n(e), s = r(e), c = n(e + 1), l = r(e + 1), u = (2 * t + o) / 3, d = (2 * a + s) / 3, f = (t + 2 * o) / 3, p = (a + 2 * s) / 3, m = (t + 4 * o + c) / 6, h = (a + 4 * s + l) / 6;
|
|
121
|
-
i += `C${u},${d} ${f},${p} ${m},${h}`;
|
|
122
|
-
}
|
|
123
|
-
let a = e[t - 1];
|
|
124
|
-
return i += `L${a[0]},${a[1]}`, i;
|
|
125
|
-
}
|
|
126
|
-
function d(e, t) {
|
|
127
|
-
let n = e.length;
|
|
128
|
-
if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
129
|
-
let r = (1 - t) / 6, i = (t) => e[Math.max(0, Math.min(n - 1, t))], a = `M${e[0][0]},${e[0][1]}`;
|
|
130
|
-
for (let e = 0; e < n - 1; e++) {
|
|
131
|
-
let t = i(e - 1), n = i(e), o = i(e + 1), s = i(e + 2), c = n[0] + r * (o[0] - t[0]), l = n[1] + r * (o[1] - t[1]), u = o[0] - r * (s[0] - n[0]), d = o[1] - r * (s[1] - n[1]);
|
|
132
|
-
a += `C${c},${l} ${u},${d} ${o[0]},${o[1]}`;
|
|
133
|
-
}
|
|
134
|
-
return a;
|
|
135
|
-
}
|
|
136
|
-
function f(e, t) {
|
|
137
|
-
let n = e.length;
|
|
138
|
-
if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
139
|
-
let r = (t) => e[Math.max(0, Math.min(n - 1, t))], i = (e, t) => Math.hypot(t[0] - e[0], t[1] - e[1]), a = `M${e[0][0]},${e[0][1]}`;
|
|
140
|
-
for (let e = 0; e < n - 1; e++) {
|
|
141
|
-
let n = r(e - 1), o = r(e), s = r(e + 1), c = r(e + 2), l = i(n, o) ** +t || 1e-6, u = i(o, s) ** +t || 1e-6, d = i(s, c) ** +t || 1e-6, f = s[0] - o[0] + u * ((o[0] - n[0]) / l - (s[0] - n[0]) / (l + u)), p = s[1] - o[1] + u * ((o[1] - n[1]) / l - (s[1] - n[1]) / (l + u)), m = s[0] - o[0] + u * ((c[0] - s[0]) / d - (c[0] - o[0]) / (u + d)), h = s[1] - o[1] + u * ((c[1] - s[1]) / d - (c[1] - o[1]) / (u + d)), g = o[0] + f / 3, _ = o[1] + p / 3, v = s[0] - m / 3, y = s[1] - h / 3;
|
|
142
|
-
a += `C${g},${_} ${v},${y} ${s[0]},${s[1]}`;
|
|
143
|
-
}
|
|
144
|
-
return a;
|
|
145
|
-
}
|
|
146
|
-
function p(e) {
|
|
147
|
-
let t = e.length, n = [], r = [], i = [];
|
|
148
|
-
for (let a = 0; a < t - 1; a++) n[a] = e[a + 1][0] - e[a][0], r[a] = e[a + 1][1] - e[a][1], i[a] = n[a] === 0 ? 0 : r[a] / n[a];
|
|
149
|
-
let a = [i[0] ?? 0];
|
|
150
|
-
for (let e = 1; e < t - 1; e++) {
|
|
151
|
-
let t = i[e - 1], n = i[e];
|
|
152
|
-
a[e] = t * n <= 0 ? 0 : 2 * t * n / (t + n);
|
|
153
|
-
}
|
|
154
|
-
a[t - 1] = i[t - 2] ?? 0;
|
|
155
|
-
let o = `M${e[0][0]},${e[0][1]}`;
|
|
156
|
-
for (let n = 0; n < t - 1; n++) {
|
|
157
|
-
let [t, r] = e[n], [i, s] = e[n + 1], c = (i - t) / 3;
|
|
158
|
-
o += `C${t + c},${r + c * a[n]} ${i - c},${s - c * a[n + 1]} ${i},${s}`;
|
|
159
|
-
}
|
|
160
|
-
return o;
|
|
161
|
-
}
|
|
162
|
-
function m(e, t, n = "linear") {
|
|
163
|
-
if (e.length === 0) return "";
|
|
164
|
-
let r = o(e, n), i = e[e.length - 1], a = e[0];
|
|
165
|
-
return `${r}L${i[0]},${t}L${a[0]},${t}Z`;
|
|
166
|
-
}
|
|
167
|
-
function h(e, t, n, r, a, o) {
|
|
168
|
-
let s = 2 * Math.PI;
|
|
169
|
-
if (Math.abs(o - a) >= s - 1e-9) {
|
|
170
|
-
let i = a + Math.PI;
|
|
171
|
-
return h(e, t, n, r, a, i) + h(e, t, n, r, i, a + s - 1e-9);
|
|
172
|
-
}
|
|
173
|
-
let c = (n, r) => [i(e + n * Math.sin(r)), i(t - n * Math.cos(r))], l = +(o - a > Math.PI), u = i(n), d = i(r), [f, p] = c(n, a), [m, g] = c(n, o);
|
|
174
|
-
if (r <= 0) return `M${i(e)},${i(t)}L${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}Z`;
|
|
175
|
-
let [_, v] = c(r, o), [y, b] = c(r, a);
|
|
176
|
-
return `M${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}L${_},${v}A${d},${d} 0 ${l} 0 ${y},${b}Z`;
|
|
177
|
-
}
|
|
178
|
-
function g(e) {
|
|
179
|
-
let t = e[0]?.length ?? 0, n = Array.from({ length: t }, () => 0);
|
|
180
|
-
return e.map((e) => e.map((e, t) => {
|
|
181
|
-
let r = n[t];
|
|
182
|
-
return n[t] = r + e, [r, n[t]];
|
|
183
|
-
}));
|
|
184
|
-
}
|
|
185
|
-
var _ = {
|
|
186
|
-
frame: "_frame_1gm0a_2",
|
|
187
|
-
"cascivo-chart-in": "_cascivo-chart-in_1gm0a_1",
|
|
188
|
-
fallback: "_fallback_1gm0a_78"
|
|
189
|
-
};
|
|
190
|
-
//#endregion
|
|
191
|
-
export { i as a, n as c, r as d, o as i, e as l, h as n, a as o, m as r, g as s, _ as t, t as u };
|
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
//#region src/engine/scale.ts
|
|
3
|
-
function e(e, n) {
|
|
4
|
-
let [r, i] = e, [a, o] = n, s = i - r;
|
|
5
|
-
return {
|
|
6
|
-
domain: e,
|
|
7
|
-
range: n,
|
|
8
|
-
map: (e) => s === 0 ? a : a + (e - r) / s * (o - a),
|
|
9
|
-
invert: (e) => o - a === 0 ? r : r + (e - a) / (o - a) * s,
|
|
10
|
-
ticks: (e = 5, n) => t(r, i, e, n)
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
function t(e, t, n = 5, r) {
|
|
14
|
-
if (!Number.isFinite(e) || !Number.isFinite(t) || e === t) return [e];
|
|
15
|
-
e > t && ([e, t] = [t, e]);
|
|
16
|
-
let i = r ?? !(Number.isInteger(e) && Number.isInteger(t)), a = (t - e) / Math.max(1, n), o = 10 ** Math.floor(Math.log10(a)), s = i ? [
|
|
17
|
-
1,
|
|
18
|
-
2,
|
|
19
|
-
2.5,
|
|
20
|
-
5,
|
|
21
|
-
10
|
|
22
|
-
] : [
|
|
23
|
-
1,
|
|
24
|
-
2,
|
|
25
|
-
5,
|
|
26
|
-
10
|
|
27
|
-
], c = a / o, l = (s.find((e) => e >= c) ?? 10) * o;
|
|
28
|
-
i || (l = Math.max(1, Math.round(l)));
|
|
29
|
-
let u = Math.ceil(e / l), d = Math.floor(t / l + 1e-9), f = [], p = Math.max(0, Math.ceil(-Math.log10(l)) + 2);
|
|
30
|
-
for (let e = u; e <= d; e++) f.push(parseFloat((e * l).toFixed(p)));
|
|
31
|
-
return f;
|
|
32
|
-
}
|
|
33
|
-
function n(e, t, n = .1) {
|
|
34
|
-
let [r, i] = t, a = e.length, o = (i - r) / Math.max(1, a + n * (a + 1)), s = o, c = o * n, l = new Map(e.map((e, t) => [e, t]));
|
|
35
|
-
return {
|
|
36
|
-
domain: e,
|
|
37
|
-
range: t,
|
|
38
|
-
bandwidth: s,
|
|
39
|
-
map: (e) => {
|
|
40
|
-
let t = l.get(e);
|
|
41
|
-
return t === void 0 ? void 0 : r + c + t * (o + c);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
function r(e, t) {
|
|
46
|
-
let [n, r] = e, [i, a] = t, o = Math.sqrt(Math.max(0, n)), s = Math.sqrt(Math.max(0, r)) - o;
|
|
47
|
-
return (e) => s === 0 ? (i + a) / 2 : i + (Math.sqrt(Math.max(0, e)) - o) / s * (a - i);
|
|
48
|
-
}
|
|
49
|
-
//#endregion
|
|
50
|
-
//#region src/engine/shape.ts
|
|
51
|
-
function i(e) {
|
|
52
|
-
return Math.round(e * 100) / 100;
|
|
53
|
-
}
|
|
54
|
-
function a(e, t = !1) {
|
|
55
|
-
if (t) {
|
|
56
|
-
let t = e.filter((e) => e !== null);
|
|
57
|
-
return t.length > 0 ? [t] : [];
|
|
58
|
-
}
|
|
59
|
-
let n = [], r = [];
|
|
60
|
-
for (let t of e) t === null ? (r.length > 0 && n.push(r), r = []) : r.push(t);
|
|
61
|
-
return r.length > 0 && n.push(r), n;
|
|
62
|
-
}
|
|
63
|
-
function o(e, t = "linear") {
|
|
64
|
-
if (e.length === 0) return "";
|
|
65
|
-
if (e.length === 1 || t === "linear") return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
66
|
-
switch (t) {
|
|
67
|
-
case "monotone": return p(e);
|
|
68
|
-
case "step":
|
|
69
|
-
case "stepBefore":
|
|
70
|
-
case "stepAfter": return s(e, t);
|
|
71
|
-
case "natural": return l(e);
|
|
72
|
-
case "basis": return u(e);
|
|
73
|
-
case "cardinal": return d(e, 0);
|
|
74
|
-
case "catmullRom": return f(e, .5);
|
|
75
|
-
default: return p(e);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
function s(e, t) {
|
|
79
|
-
let n = `M${e[0][0]},${e[0][1]}`;
|
|
80
|
-
for (let r = 0; r < e.length - 1; r++) {
|
|
81
|
-
let [i, a] = e[r], [o, s] = e[r + 1];
|
|
82
|
-
if (t === "stepBefore") n += `L${i},${s}L${o},${s}`;
|
|
83
|
-
else if (t === "stepAfter") n += `L${o},${a}L${o},${s}`;
|
|
84
|
-
else {
|
|
85
|
-
let e = (i + o) / 2;
|
|
86
|
-
n += `L${e},${a}L${e},${s}L${o},${s}`;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
return n;
|
|
90
|
-
}
|
|
91
|
-
function c(e) {
|
|
92
|
-
let t = e.length - 1;
|
|
93
|
-
if (t < 1) return [[], []];
|
|
94
|
-
let n = Array(t), r = Array(t), i = Array(t);
|
|
95
|
-
r[0] = 2, i[0] = e[0] + 2 * e[1];
|
|
96
|
-
for (let a = 1; a < t - 1; a++) n[a] = 1, r[a] = 4, i[a] = 4 * e[a] + 2 * e[a + 1];
|
|
97
|
-
n[t - 1] = 2, r[t - 1] = 7, i[t - 1] = 8 * e[t - 1] + e[t];
|
|
98
|
-
for (let e = 1; e < t; e++) {
|
|
99
|
-
let t = (n[e] ?? 0) / r[e - 1];
|
|
100
|
-
r[e] = r[e] - t, i[e] = i[e] - t * i[e - 1];
|
|
101
|
-
}
|
|
102
|
-
let a = Array(t), o = Array(t);
|
|
103
|
-
a[t - 1] = i[t - 1] / r[t - 1];
|
|
104
|
-
for (let e = t - 2; e >= 0; e--) a[e] = (i[e] - a[e + 1]) / r[e];
|
|
105
|
-
for (let n = 0; n < t - 1; n++) o[n] = 2 * e[n + 1] - a[n + 1];
|
|
106
|
-
return o[t - 1] = (e[t] + a[t - 1]) / 2, [a, o];
|
|
107
|
-
}
|
|
108
|
-
function l(e) {
|
|
109
|
-
let t = e.length;
|
|
110
|
-
if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
111
|
-
let n = e.map((e) => e[0]), r = e.map((e) => e[1]), [i, a] = c(n), [o, s] = c(r), l = `M${n[0]},${r[0]}`;
|
|
112
|
-
for (let e = 0; e < t - 1; e++) l += `C${i[e]},${o[e]} ${a[e]},${s[e]} ${n[e + 1]},${r[e + 1]}`;
|
|
113
|
-
return l;
|
|
114
|
-
}
|
|
115
|
-
function u(e) {
|
|
116
|
-
let t = e.length;
|
|
117
|
-
if (t < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
118
|
-
let n = (n) => e[Math.max(0, Math.min(t - 1, n))][0], r = (n) => e[Math.max(0, Math.min(t - 1, n))][1], i = `M${n(0)},${r(0)}`;
|
|
119
|
-
for (let e = 0; e < t - 1; e++) {
|
|
120
|
-
let t = n(e - 1), a = r(e - 1), o = n(e), s = r(e), c = n(e + 1), l = r(e + 1), u = (2 * t + o) / 3, d = (2 * a + s) / 3, f = (t + 2 * o) / 3, p = (a + 2 * s) / 3, m = (t + 4 * o + c) / 6, h = (a + 4 * s + l) / 6;
|
|
121
|
-
i += `C${u},${d} ${f},${p} ${m},${h}`;
|
|
122
|
-
}
|
|
123
|
-
let a = e[t - 1];
|
|
124
|
-
return i += `L${a[0]},${a[1]}`, i;
|
|
125
|
-
}
|
|
126
|
-
function d(e, t) {
|
|
127
|
-
let n = e.length;
|
|
128
|
-
if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
129
|
-
let r = (1 - t) / 6, i = (t) => e[Math.max(0, Math.min(n - 1, t))], a = `M${e[0][0]},${e[0][1]}`;
|
|
130
|
-
for (let e = 0; e < n - 1; e++) {
|
|
131
|
-
let t = i(e - 1), n = i(e), o = i(e + 1), s = i(e + 2), c = n[0] + r * (o[0] - t[0]), l = n[1] + r * (o[1] - t[1]), u = o[0] - r * (s[0] - n[0]), d = o[1] - r * (s[1] - n[1]);
|
|
132
|
-
a += `C${c},${l} ${u},${d} ${o[0]},${o[1]}`;
|
|
133
|
-
}
|
|
134
|
-
return a;
|
|
135
|
-
}
|
|
136
|
-
function f(e, t) {
|
|
137
|
-
let n = e.length;
|
|
138
|
-
if (n < 3) return e.map(([e, t], n) => `${n === 0 ? "M" : "L"}${e},${t}`).join("");
|
|
139
|
-
let r = (t) => e[Math.max(0, Math.min(n - 1, t))], i = (e, t) => Math.hypot(t[0] - e[0], t[1] - e[1]), a = `M${e[0][0]},${e[0][1]}`;
|
|
140
|
-
for (let e = 0; e < n - 1; e++) {
|
|
141
|
-
let n = r(e - 1), o = r(e), s = r(e + 1), c = r(e + 2), l = i(n, o) ** +t || 1e-6, u = i(o, s) ** +t || 1e-6, d = i(s, c) ** +t || 1e-6, f = s[0] - o[0] + u * ((o[0] - n[0]) / l - (s[0] - n[0]) / (l + u)), p = s[1] - o[1] + u * ((o[1] - n[1]) / l - (s[1] - n[1]) / (l + u)), m = s[0] - o[0] + u * ((c[0] - s[0]) / d - (c[0] - o[0]) / (u + d)), h = s[1] - o[1] + u * ((c[1] - s[1]) / d - (c[1] - o[1]) / (u + d)), g = o[0] + f / 3, _ = o[1] + p / 3, v = s[0] - m / 3, y = s[1] - h / 3;
|
|
142
|
-
a += `C${g},${_} ${v},${y} ${s[0]},${s[1]}`;
|
|
143
|
-
}
|
|
144
|
-
return a;
|
|
145
|
-
}
|
|
146
|
-
function p(e) {
|
|
147
|
-
let t = e.length, n = [], r = [], i = [];
|
|
148
|
-
for (let a = 0; a < t - 1; a++) n[a] = e[a + 1][0] - e[a][0], r[a] = e[a + 1][1] - e[a][1], i[a] = n[a] === 0 ? 0 : r[a] / n[a];
|
|
149
|
-
let a = [i[0] ?? 0];
|
|
150
|
-
for (let e = 1; e < t - 1; e++) {
|
|
151
|
-
let t = i[e - 1], n = i[e];
|
|
152
|
-
a[e] = t * n <= 0 ? 0 : 2 * t * n / (t + n);
|
|
153
|
-
}
|
|
154
|
-
a[t - 1] = i[t - 2] ?? 0;
|
|
155
|
-
let o = `M${e[0][0]},${e[0][1]}`;
|
|
156
|
-
for (let n = 0; n < t - 1; n++) {
|
|
157
|
-
let [t, r] = e[n], [i, s] = e[n + 1], c = (i - t) / 3;
|
|
158
|
-
o += `C${t + c},${r + c * a[n]} ${i - c},${s - c * a[n + 1]} ${i},${s}`;
|
|
159
|
-
}
|
|
160
|
-
return o;
|
|
161
|
-
}
|
|
162
|
-
function m(e, t, n = "linear") {
|
|
163
|
-
if (e.length === 0) return "";
|
|
164
|
-
let r = o(e, n), i = e[e.length - 1], a = e[0];
|
|
165
|
-
return `${r}L${i[0]},${t}L${a[0]},${t}Z`;
|
|
166
|
-
}
|
|
167
|
-
function h(e, t, n, r, a, o) {
|
|
168
|
-
let s = 2 * Math.PI;
|
|
169
|
-
if (Math.abs(o - a) >= s - 1e-9) {
|
|
170
|
-
let i = a + Math.PI;
|
|
171
|
-
return h(e, t, n, r, a, i) + h(e, t, n, r, i, a + s - 1e-9);
|
|
172
|
-
}
|
|
173
|
-
let c = (n, r) => [i(e + n * Math.sin(r)), i(t - n * Math.cos(r))], l = +(o - a > Math.PI), u = i(n), d = i(r), [f, p] = c(n, a), [m, g] = c(n, o);
|
|
174
|
-
if (r <= 0) return `M${i(e)},${i(t)}L${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}Z`;
|
|
175
|
-
let [_, v] = c(r, o), [y, b] = c(r, a);
|
|
176
|
-
return `M${f},${p}A${u},${u} 0 ${l} 1 ${m},${g}L${_},${v}A${d},${d} 0 ${l} 0 ${y},${b}Z`;
|
|
177
|
-
}
|
|
178
|
-
function g(e) {
|
|
179
|
-
let t = e[0]?.length ?? 0, n = Array.from({ length: t }, () => 0);
|
|
180
|
-
return e.map((e) => e.map((e, t) => {
|
|
181
|
-
let r = n[t];
|
|
182
|
-
return n[t] = r + e, [r, n[t]];
|
|
183
|
-
}));
|
|
184
|
-
}
|
|
185
|
-
var _ = {
|
|
186
|
-
frame: "_frame_1gm0a_2",
|
|
187
|
-
"cascivo-chart-in": "_cascivo-chart-in_1gm0a_1",
|
|
188
|
-
fallback: "_fallback_1gm0a_78"
|
|
189
|
-
};
|
|
190
|
-
//#endregion
|
|
191
|
-
export { i as a, n as c, r as d, o as i, e as l, h as n, a as o, m as r, g as s, _ as t, t as u };
|