@cascivo/charts 0.18.0 → 1.0.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.
@@ -0,0 +1,191 @@
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 };