@obitrain/charts 0.9.2
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/LICENSE +21 -0
- package/README.md +125 -0
- package/lib/commonjs/Charts/BottomAxis/AxisLine.js +38 -0
- package/lib/commonjs/Charts/BottomAxis/AxisLine.js.map +1 -0
- package/lib/commonjs/Charts/BottomAxis/BottomAxis.js +45 -0
- package/lib/commonjs/Charts/BottomAxis/BottomAxis.js.map +1 -0
- package/lib/commonjs/Charts/BottomAxis/Tick.js +43 -0
- package/lib/commonjs/Charts/BottomAxis/Tick.js.map +1 -0
- package/lib/commonjs/Charts/BottomAxis/index.js +27 -0
- package/lib/commonjs/Charts/BottomAxis/index.js.map +1 -0
- package/lib/commonjs/Charts/Cursor.js +50 -0
- package/lib/commonjs/Charts/Cursor.js.map +1 -0
- package/lib/commonjs/Charts/Linechart/index.js +55 -0
- package/lib/commonjs/Charts/Linechart/index.js.map +1 -0
- package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js +43 -0
- package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js.map +1 -0
- package/lib/commonjs/Charts/ZoomableLinechart/index.js +43 -0
- package/lib/commonjs/Charts/ZoomableLinechart/index.js.map +1 -0
- package/lib/commonjs/Charts/gesture.js +185 -0
- package/lib/commonjs/Charts/gesture.js.map +1 -0
- package/lib/commonjs/Charts/graphUtils.js +131 -0
- package/lib/commonjs/Charts/graphUtils.js.map +1 -0
- package/lib/commonjs/Charts/index.js +151 -0
- package/lib/commonjs/Charts/index.js.map +1 -0
- package/lib/commonjs/Charts/maths.js +195 -0
- package/lib/commonjs/Charts/maths.js.map +1 -0
- package/lib/commonjs/Charts/types.js +6 -0
- package/lib/commonjs/Charts/types.js.map +1 -0
- package/lib/commonjs/dateUtils.js +151 -0
- package/lib/commonjs/dateUtils.js.map +1 -0
- package/lib/commonjs/index.js +39 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/textUtils.js +21 -0
- package/lib/commonjs/textUtils.js.map +1 -0
- package/lib/module/Charts/BottomAxis/AxisLine.js +34 -0
- package/lib/module/Charts/BottomAxis/AxisLine.js.map +1 -0
- package/lib/module/Charts/BottomAxis/BottomAxis.js +40 -0
- package/lib/module/Charts/BottomAxis/BottomAxis.js.map +1 -0
- package/lib/module/Charts/BottomAxis/Tick.js +37 -0
- package/lib/module/Charts/BottomAxis/Tick.js.map +1 -0
- package/lib/module/Charts/BottomAxis/index.js +6 -0
- package/lib/module/Charts/BottomAxis/index.js.map +1 -0
- package/lib/module/Charts/Cursor.js +46 -0
- package/lib/module/Charts/Cursor.js.map +1 -0
- package/lib/module/Charts/Linechart/index.js +50 -0
- package/lib/module/Charts/Linechart/index.js.map +1 -0
- package/lib/module/Charts/ZoomableLinechart/ScalablePath.js +39 -0
- package/lib/module/Charts/ZoomableLinechart/ScalablePath.js.map +1 -0
- package/lib/module/Charts/ZoomableLinechart/index.js +33 -0
- package/lib/module/Charts/ZoomableLinechart/index.js.map +1 -0
- package/lib/module/Charts/gesture.js +176 -0
- package/lib/module/Charts/gesture.js.map +1 -0
- package/lib/module/Charts/graphUtils.js +121 -0
- package/lib/module/Charts/graphUtils.js.map +1 -0
- package/lib/module/Charts/index.js +10 -0
- package/lib/module/Charts/index.js.map +1 -0
- package/lib/module/Charts/maths.js +187 -0
- package/lib/module/Charts/maths.js.map +1 -0
- package/lib/module/Charts/types.js +4 -0
- package/lib/module/Charts/types.js.map +1 -0
- package/lib/module/dateUtils.js +142 -0
- package/lib/module/dateUtils.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/textUtils.js +16 -0
- package/lib/module/textUtils.js.map +1 -0
- package/lib/typescript/src/Charts/BottomAxis/AxisLine.d.ts +15 -0
- package/lib/typescript/src/Charts/BottomAxis/AxisLine.d.ts.map +1 -0
- package/lib/typescript/src/Charts/BottomAxis/BottomAxis.d.ts +17 -0
- package/lib/typescript/src/Charts/BottomAxis/BottomAxis.d.ts.map +1 -0
- package/lib/typescript/src/Charts/BottomAxis/Tick.d.ts +14 -0
- package/lib/typescript/src/Charts/BottomAxis/Tick.d.ts.map +1 -0
- package/lib/typescript/src/Charts/BottomAxis/index.d.ts +4 -0
- package/lib/typescript/src/Charts/BottomAxis/index.d.ts.map +1 -0
- package/lib/typescript/src/Charts/Cursor.d.ts +14 -0
- package/lib/typescript/src/Charts/Cursor.d.ts.map +1 -0
- package/lib/typescript/src/Charts/Linechart/index.d.ts +25 -0
- package/lib/typescript/src/Charts/Linechart/index.d.ts.map +1 -0
- package/lib/typescript/src/Charts/ZoomableLinechart/ScalablePath.d.ts +14 -0
- package/lib/typescript/src/Charts/ZoomableLinechart/ScalablePath.d.ts.map +1 -0
- package/lib/typescript/src/Charts/ZoomableLinechart/index.d.ts +23 -0
- package/lib/typescript/src/Charts/ZoomableLinechart/index.d.ts.map +1 -0
- package/lib/typescript/src/Charts/gesture.d.ts +54 -0
- package/lib/typescript/src/Charts/gesture.d.ts.map +1 -0
- package/lib/typescript/src/Charts/graphUtils.d.ts +43 -0
- package/lib/typescript/src/Charts/graphUtils.d.ts.map +1 -0
- package/lib/typescript/src/Charts/index.d.ts +14 -0
- package/lib/typescript/src/Charts/index.d.ts.map +1 -0
- package/lib/typescript/src/Charts/maths.d.ts +19 -0
- package/lib/typescript/src/Charts/maths.d.ts.map +1 -0
- package/lib/typescript/src/Charts/types.d.ts +14 -0
- package/lib/typescript/src/Charts/types.d.ts.map +1 -0
- package/lib/typescript/src/dateUtils.d.ts +37 -0
- package/lib/typescript/src/dateUtils.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +5 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/textUtils.d.ts +3 -0
- package/lib/typescript/src/textUtils.d.ts.map +1 -0
- package/package.json +226 -0
- package/src/Charts/BottomAxis/AxisLine.tsx +40 -0
- package/src/Charts/BottomAxis/BottomAxis.tsx +41 -0
- package/src/Charts/BottomAxis/Tick.tsx +54 -0
- package/src/Charts/BottomAxis/index.tsx +3 -0
- package/src/Charts/Cursor.tsx +51 -0
- package/src/Charts/Linechart/index.tsx +79 -0
- package/src/Charts/ZoomableLinechart/ScalablePath.tsx +49 -0
- package/src/Charts/ZoomableLinechart/index.tsx +47 -0
- package/src/Charts/gesture.ts +254 -0
- package/src/Charts/graphUtils.ts +198 -0
- package/src/Charts/index.tsx +32 -0
- package/src/Charts/maths.ts +245 -0
- package/src/Charts/types.ts +16 -0
- package/src/dateUtils.ts +163 -0
- package/src/index.tsx +4 -0
- package/src/textUtils.ts +21 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.selectCurve = exports.normalize = exports.magnitude = exports.getYForX = exports.cubicBezierYForX = exports.commandsToBezier = void 0;
|
|
7
|
+
var _reactNativeSkia = require("@shopify/react-native-skia");
|
|
8
|
+
// code from William Candillon
|
|
9
|
+
|
|
10
|
+
const round = (value, precision = 0) => {
|
|
11
|
+
'worklet';
|
|
12
|
+
|
|
13
|
+
const p = Math.pow(10, precision);
|
|
14
|
+
return Math.round(value * p) / p;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
// https://stackoverflow.com/questions/27176423/function-to-solve-cubic-equation-analytically
|
|
18
|
+
const cuberoot = x => {
|
|
19
|
+
'worklet';
|
|
20
|
+
|
|
21
|
+
const y = Math.pow(Math.abs(x), 1 / 3);
|
|
22
|
+
return x < 0 ? -y : y;
|
|
23
|
+
};
|
|
24
|
+
const solveCubic = (a, b, c, d) => {
|
|
25
|
+
'worklet';
|
|
26
|
+
|
|
27
|
+
if (Math.abs(a) < 1e-8) {
|
|
28
|
+
// Quadratic case, ax^2+bx+c=0
|
|
29
|
+
a = b;
|
|
30
|
+
b = c;
|
|
31
|
+
c = d;
|
|
32
|
+
if (Math.abs(a) < 1e-8) {
|
|
33
|
+
// Linear case, ax+b=0
|
|
34
|
+
a = b;
|
|
35
|
+
b = c;
|
|
36
|
+
if (Math.abs(a) < 1e-8) {
|
|
37
|
+
// Degenerate case
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
return [-b / a];
|
|
41
|
+
}
|
|
42
|
+
const D = b * b - 4 * a * c;
|
|
43
|
+
if (Math.abs(D) < 1e-8) return [-b / (2 * a)];
|
|
44
|
+
if (D > 0) return [(-b + Math.sqrt(D)) / (2 * a), (-b - Math.sqrt(D)) / (2 * a)];
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Convert to depressed cubic t^3+pt+q = 0 (subst x = t - b/3a)
|
|
49
|
+
const p = (3 * a * c - b * b) / (3 * a * a);
|
|
50
|
+
const q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);
|
|
51
|
+
let roots = [];
|
|
52
|
+
if (Math.abs(p) < 1e-8) {
|
|
53
|
+
// p = 0 -> t^3 = -q -> t = -q^1/3
|
|
54
|
+
roots = [cuberoot(-q)];
|
|
55
|
+
} else if (Math.abs(q) < 1e-8) {
|
|
56
|
+
// q = 0 -> t^3 + pt = 0 -> t(t^2+p)=0
|
|
57
|
+
roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : []);
|
|
58
|
+
} else {
|
|
59
|
+
const D = q * q / 4 + p * p * p / 27;
|
|
60
|
+
if (Math.abs(D) < 1e-8) {
|
|
61
|
+
// D = 0 -> two roots
|
|
62
|
+
roots = [-1.5 * q / p, 3 * q / p];
|
|
63
|
+
} else if (D > 0) {
|
|
64
|
+
// Only one real root
|
|
65
|
+
const u = cuberoot(-q / 2 - Math.sqrt(D));
|
|
66
|
+
roots = [u - p / (3 * u)];
|
|
67
|
+
} else {
|
|
68
|
+
// D < 0, three roots, but needs to use complex numbers/trigonometric solution
|
|
69
|
+
const u = 2 * Math.sqrt(-p / 3);
|
|
70
|
+
const t = Math.acos(3 * q / p / u) / 3; // D < 0 implies p < 0 and acos argument in [-1..1]
|
|
71
|
+
const k = 2 * Math.PI / 3;
|
|
72
|
+
roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Convert back from depressed cubic
|
|
77
|
+
for (let i = 0; i < roots.length; i++) roots[i] -= b / (3 * a);
|
|
78
|
+
return roots;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
// const cubicBezier = (
|
|
82
|
+
// t: number,
|
|
83
|
+
// from: number,
|
|
84
|
+
// c1: number,
|
|
85
|
+
// c2: number,
|
|
86
|
+
// to: number
|
|
87
|
+
// ): number => {
|
|
88
|
+
// 'worklet';
|
|
89
|
+
|
|
90
|
+
// const term = 1 - t;
|
|
91
|
+
// const a = 1 * term ** 3 * t ** 0 * from;
|
|
92
|
+
// const b = 3 * term ** 2 * t ** 1 * c1;
|
|
93
|
+
// const c = 3 * term ** 1 * t ** 2 * c2;
|
|
94
|
+
// const d = 1 * term ** 0 * t ** 3 * to;
|
|
95
|
+
// return a + b + c + d;
|
|
96
|
+
// };
|
|
97
|
+
|
|
98
|
+
const cubicSolve = function (t, p0, p1, p2, p3) {
|
|
99
|
+
'worklet';
|
|
100
|
+
|
|
101
|
+
return (1 - t) * (1 - t) * (1 - t) * p0 + 3 * (1 - t) * (1 - t) * t * p1 + 3 * (1 - t) * t * t * p2 + t * t * t * p3;
|
|
102
|
+
};
|
|
103
|
+
const cubicBezierYForX = (x, a, b, c, d, precision = 2) => {
|
|
104
|
+
'worklet';
|
|
105
|
+
|
|
106
|
+
const pa = -a.x + 3 * b.x - 3 * c.x + d.x;
|
|
107
|
+
const pb = 3 * a.x - 6 * b.x + 3 * c.x;
|
|
108
|
+
const pc = -3 * a.x + 3 * b.x;
|
|
109
|
+
const pd = a.x - x;
|
|
110
|
+
const ts = solveCubic(pa, pb, pc, pd).map(root => round(root, precision)).filter(root => root >= 0 && root <= 1);
|
|
111
|
+
const t = ts[0];
|
|
112
|
+
if (t == null) return 0;
|
|
113
|
+
// return cubicBezier(t, a.y, b.y, c.y, d.y);
|
|
114
|
+
return cubicSolve(t, a.y, b.y, c.y, d.y);
|
|
115
|
+
};
|
|
116
|
+
exports.cubicBezierYForX = cubicBezierYForX;
|
|
117
|
+
const selectCurve = (cmds, x) => {
|
|
118
|
+
'worklet';
|
|
119
|
+
|
|
120
|
+
let from = (0, _reactNativeSkia.vec)(0, 0);
|
|
121
|
+
for (let i = 0; i < cmds.length; i++) {
|
|
122
|
+
const cmd = cmds[i];
|
|
123
|
+
if (cmd == null) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
if (cmd[0] === _reactNativeSkia.PathVerb.Move) {
|
|
127
|
+
from = (0, _reactNativeSkia.vec)(cmd[1], cmd[2]);
|
|
128
|
+
} else if (cmd[0] === _reactNativeSkia.PathVerb.Cubic) {
|
|
129
|
+
const c1 = (0, _reactNativeSkia.vec)(cmd[1], cmd[2]);
|
|
130
|
+
const c2 = (0, _reactNativeSkia.vec)(cmd[3], cmd[4]);
|
|
131
|
+
const to = (0, _reactNativeSkia.vec)(cmd[5], cmd[6]);
|
|
132
|
+
if (x >= from.x && x <= to.x) {
|
|
133
|
+
return {
|
|
134
|
+
from,
|
|
135
|
+
c1,
|
|
136
|
+
c2,
|
|
137
|
+
to
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
from = to;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return undefined;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Convert commands to cubic bezier
|
|
148
|
+
*/
|
|
149
|
+
exports.selectCurve = selectCurve;
|
|
150
|
+
const commandsToBezier = cmds => {
|
|
151
|
+
'worklet';
|
|
152
|
+
|
|
153
|
+
const normCmds = [];
|
|
154
|
+
let x = 0,
|
|
155
|
+
y = 0;
|
|
156
|
+
for (let i = 0; i < cmds.length; i++) {
|
|
157
|
+
const currCmd = cmds[i];
|
|
158
|
+
if (currCmd === undefined) throw new Error(`No command found at index ${i}`);
|
|
159
|
+
let normCmd;
|
|
160
|
+
const cmd = currCmd[0];
|
|
161
|
+
if (cmd === undefined) throw new Error('Got undefined command');
|
|
162
|
+
if (cmd === _reactNativeSkia.PathVerb.Line) {
|
|
163
|
+
normCmd = [_reactNativeSkia.PathVerb.Cubic, x, y, currCmd[1], currCmd[2], currCmd[1], currCmd[2]];
|
|
164
|
+
} else {
|
|
165
|
+
normCmd = currCmd;
|
|
166
|
+
}
|
|
167
|
+
x = normCmd[normCmd.length - 2];
|
|
168
|
+
y = normCmd[normCmd.length - 1];
|
|
169
|
+
normCmds.push(normCmd);
|
|
170
|
+
}
|
|
171
|
+
return normCmds;
|
|
172
|
+
};
|
|
173
|
+
exports.commandsToBezier = commandsToBezier;
|
|
174
|
+
const getYForX = (cmds, x, precision = 2) => {
|
|
175
|
+
'worklet';
|
|
176
|
+
|
|
177
|
+
const cmdsNorm = commandsToBezier(cmds);
|
|
178
|
+
const c = selectCurve(cmdsNorm, x);
|
|
179
|
+
if (c == null) return undefined;
|
|
180
|
+
return cubicBezierYForX(x, c.from, c.c1, c.c2, c.to, precision);
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
// See Path/getPath2D
|
|
184
|
+
exports.getYForX = getYForX;
|
|
185
|
+
const magnitude = p => Math.sqrt(p.x * p.x + p.y * p.y);
|
|
186
|
+
exports.magnitude = magnitude;
|
|
187
|
+
const normalize = p => {
|
|
188
|
+
const m = magnitude(p);
|
|
189
|
+
return {
|
|
190
|
+
x: p.x / m,
|
|
191
|
+
y: p.y / m
|
|
192
|
+
};
|
|
193
|
+
};
|
|
194
|
+
exports.normalize = normalize;
|
|
195
|
+
//# sourceMappingURL=maths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeSkia","require","round","value","precision","p","Math","pow","cuberoot","x","y","abs","solveCubic","a","b","c","d","D","sqrt","q","roots","concat","u","t","acos","k","PI","cos","i","length","cubicSolve","p0","p1","p2","p3","cubicBezierYForX","pa","pb","pc","pd","ts","map","root","filter","exports","selectCurve","cmds","from","vec","cmd","undefined","PathVerb","Move","Cubic","c1","c2","to","commandsToBezier","normCmds","currCmd","Error","normCmd","Line","push","getYForX","cmdsNorm","magnitude","normalize","m"],"sourceRoot":"../../../src","sources":["Charts/maths.ts"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAEA;;AAEA,MAAMC,KAAK,GAAGA,CAACC,KAAa,EAAEC,SAAS,GAAG,CAAC,KAAa;EACtD,SAAS;;EAET,MAAMC,CAAC,GAAGC,IAAI,CAACC,GAAG,CAAC,EAAE,EAAEH,SAAS,CAAC;EACjC,OAAOE,IAAI,CAACJ,KAAK,CAACC,KAAK,GAAGE,CAAC,CAAC,GAAGA,CAAC;AAClC,CAAC;;AAED;AACA,MAAMG,QAAQ,GAAIC,CAAS,IAAa;EACtC,SAAS;;EAET,MAAMC,CAAC,GAAGJ,IAAI,CAACC,GAAG,CAACD,IAAI,CAACK,GAAG,CAACF,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;EACtC,OAAOA,CAAC,GAAG,CAAC,GAAG,CAACC,CAAC,GAAGA,CAAC;AACvB,CAAC;AAED,MAAME,UAAU,GAAGA,CAACC,CAAS,EAAEC,CAAS,EAAEC,CAAS,EAAEC,CAAS,KAAe;EAC3E,SAAS;;EAET,IAAIV,IAAI,CAACK,GAAG,CAACE,CAAC,CAAC,GAAG,IAAI,EAAE;IACtB;IACAA,CAAC,GAAGC,CAAC;IACLA,CAAC,GAAGC,CAAC;IACLA,CAAC,GAAGC,CAAC;IACL,IAAIV,IAAI,CAACK,GAAG,CAACE,CAAC,CAAC,GAAG,IAAI,EAAE;MACtB;MACAA,CAAC,GAAGC,CAAC;MACLA,CAAC,GAAGC,CAAC;MACL,IAAIT,IAAI,CAACK,GAAG,CAACE,CAAC,CAAC,GAAG,IAAI,EAAE;QACtB;QACA,OAAO,EAAE;MACX;MACA,OAAO,CAAC,CAACC,CAAC,GAAGD,CAAC,CAAC;IACjB;IAEA,MAAMI,CAAC,GAAGH,CAAC,GAAGA,CAAC,GAAG,CAAC,GAAGD,CAAC,GAAGE,CAAC;IAC3B,IAAIT,IAAI,CAACK,GAAG,CAACM,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAACH,CAAC,IAAI,CAAC,GAAGD,CAAC,CAAC,CAAC;IAC7C,IAAII,CAAC,GAAG,CAAC,EACP,OAAO,CAAC,CAAC,CAACH,CAAC,GAAGR,IAAI,CAACY,IAAI,CAACD,CAAC,CAAC,KAAK,CAAC,GAAGJ,CAAC,CAAC,EAAE,CAAC,CAACC,CAAC,GAAGR,IAAI,CAACY,IAAI,CAACD,CAAC,CAAC,KAAK,CAAC,GAAGJ,CAAC,CAAC,CAAC;IAEvE,OAAO,EAAE;EACX;;EAEA;EACA,MAAMR,CAAC,GAAG,CAAC,CAAC,GAAGQ,CAAC,GAAGE,CAAC,GAAGD,CAAC,GAAGA,CAAC,KAAK,CAAC,GAAGD,CAAC,GAAGA,CAAC,CAAC;EAC3C,MAAMM,CAAC,GAAG,CAAC,CAAC,GAAGL,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAG,CAAC,GAAGD,CAAC,GAAGC,CAAC,GAAGC,CAAC,GAAG,EAAE,GAAGF,CAAC,GAAGA,CAAC,GAAGG,CAAC,KAAK,EAAE,GAAGH,CAAC,GAAGA,CAAC,GAAGA,CAAC,CAAC;EAC7E,IAAIO,KAAe,GAAG,EAAE;EAExB,IAAId,IAAI,CAACK,GAAG,CAACN,CAAC,CAAC,GAAG,IAAI,EAAE;IACtB;IACAe,KAAK,GAAG,CAACZ,QAAQ,CAAC,CAACW,CAAC,CAAC,CAAC;EACxB,CAAC,MAAM,IAAIb,IAAI,CAACK,GAAG,CAACQ,CAAC,CAAC,GAAG,IAAI,EAAE;IAC7B;IACAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAACC,MAAM,CAAChB,CAAC,GAAG,CAAC,GAAG,CAACC,IAAI,CAACY,IAAI,CAAC,CAACb,CAAC,CAAC,EAAE,CAACC,IAAI,CAACY,IAAI,CAAC,CAACb,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;EAClE,CAAC,MAAM;IACL,MAAMY,CAAC,GAAIE,CAAC,GAAGA,CAAC,GAAI,CAAC,GAAId,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAI,EAAE;IACxC,IAAIC,IAAI,CAACK,GAAG,CAACM,CAAC,CAAC,GAAG,IAAI,EAAE;MACtB;MACAG,KAAK,GAAG,CAAE,CAAC,GAAG,GAAGD,CAAC,GAAId,CAAC,EAAG,CAAC,GAAGc,CAAC,GAAId,CAAC,CAAC;IACvC,CAAC,MAAM,IAAIY,CAAC,GAAG,CAAC,EAAE;MAChB;MACA,MAAMK,CAAC,GAAGd,QAAQ,CAAC,CAACW,CAAC,GAAG,CAAC,GAAGb,IAAI,CAACY,IAAI,CAACD,CAAC,CAAC,CAAC;MACzCG,KAAK,GAAG,CAACE,CAAC,GAAGjB,CAAC,IAAI,CAAC,GAAGiB,CAAC,CAAC,CAAC;IAC3B,CAAC,MAAM;MACL;MACA,MAAMA,CAAC,GAAG,CAAC,GAAGhB,IAAI,CAACY,IAAI,CAAC,CAACb,CAAC,GAAG,CAAC,CAAC;MAC/B,MAAMkB,CAAC,GAAGjB,IAAI,CAACkB,IAAI,CAAE,CAAC,GAAGL,CAAC,GAAId,CAAC,GAAGiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;MAC1C,MAAMG,CAAC,GAAI,CAAC,GAAGnB,IAAI,CAACoB,EAAE,GAAI,CAAC;MAC3BN,KAAK,GAAG,CAACE,CAAC,GAAGhB,IAAI,CAACqB,GAAG,CAACJ,CAAC,CAAC,EAAED,CAAC,GAAGhB,IAAI,CAACqB,GAAG,CAACJ,CAAC,GAAGE,CAAC,CAAC,EAAEH,CAAC,GAAGhB,IAAI,CAACqB,GAAG,CAACJ,CAAC,GAAG,CAAC,GAAGE,CAAC,CAAC,CAAC;IACzE;EACF;;EAIA;EACA,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,KAAK,CAACS,MAAM,EAAED,CAAC,EAAE,EAAER,KAAK,CAACQ,CAAC,CAAC,IAAKd,CAAC,IAAI,CAAC,GAAGD,CAAC,CAAC;EAE/D,OAAOO,KAAK;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMU,UAAU,GAAG,SAAAA,CACjBP,CAAS,EACTQ,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,EAAU,EACV;EACA,SAAS;;EACT,OACE,CAAC,CAAC,GAAGX,CAAC,KAAK,CAAC,GAAGA,CAAC,CAAC,IAAI,CAAC,GAAGA,CAAC,CAAC,GAAGQ,EAAE,GAChC,CAAC,IAAI,CAAC,GAAGR,CAAC,CAAC,IAAI,CAAC,GAAGA,CAAC,CAAC,GAAGA,CAAC,GAAGS,EAAE,GAC9B,CAAC,IAAI,CAAC,GAAGT,CAAC,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAGU,EAAE,GACxBV,CAAC,GAAGA,CAAC,GAAGA,CAAC,GAAGW,EAAE;AAElB,CAAC;AAEM,MAAMC,gBAAgB,GAAGA,CAC9B1B,CAAS,EACTI,CAAS,EACTC,CAAS,EACTC,CAAS,EACTC,CAAS,EACTZ,SAAS,GAAG,CAAC,KACF;EACX,SAAS;;EAET,MAAMgC,EAAE,GAAG,CAACvB,CAAC,CAACJ,CAAC,GAAG,CAAC,GAAGK,CAAC,CAACL,CAAC,GAAG,CAAC,GAAGM,CAAC,CAACN,CAAC,GAAGO,CAAC,CAACP,CAAC;EACzC,MAAM4B,EAAE,GAAG,CAAC,GAAGxB,CAAC,CAACJ,CAAC,GAAG,CAAC,GAAGK,CAAC,CAACL,CAAC,GAAG,CAAC,GAAGM,CAAC,CAACN,CAAC;EACtC,MAAM6B,EAAE,GAAG,CAAC,CAAC,GAAGzB,CAAC,CAACJ,CAAC,GAAG,CAAC,GAAGK,CAAC,CAACL,CAAC;EAC7B,MAAM8B,EAAE,GAAG1B,CAAC,CAACJ,CAAC,GAAGA,CAAC;EAClB,MAAM+B,EAAE,GAAG5B,UAAU,CAACwB,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,CAAC,CAClCE,GAAG,CAAEC,IAAI,IAAKxC,KAAK,CAACwC,IAAI,EAAEtC,SAAS,CAAC,CAAC,CACrCuC,MAAM,CAAED,IAAI,IAAKA,IAAI,IAAI,CAAC,IAAIA,IAAI,IAAI,CAAC,CAAC;EAC3C,MAAMnB,CAAC,GAAGiB,EAAE,CAAC,CAAC,CAAC;EACf,IAAIjB,CAAC,IAAI,IAAI,EAAE,OAAO,CAAC;EACvB;EACA,OAAOO,UAAU,CAACP,CAAC,EAAEV,CAAC,CAACH,CAAC,EAAEI,CAAC,CAACJ,CAAC,EAAEK,CAAC,CAACL,CAAC,EAAEM,CAAC,CAACN,CAAC,CAAC;AAC1C,CAAC;AAACkC,OAAA,CAAAT,gBAAA,GAAAA,gBAAA;AASK,MAAMU,WAAW,GAAGA,CACzBC,IAAmB,EACnBrC,CAAS,KACa;EACtB,SAAS;;EAET,IAAIsC,IAAY,GAAG,IAAAC,oBAAG,EAAC,CAAC,EAAE,CAAC,CAAC;EAC5B,KAAK,IAAIpB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkB,IAAI,CAACjB,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAMqB,GAAG,GAAGH,IAAI,CAAClB,CAAC,CAAC;IACnB,IAAIqB,GAAG,IAAI,IAAI,EAAE;MACf,OAAOC,SAAS;IAClB;IAEA,IAAID,GAAG,CAAC,CAAC,CAAC,KAAKE,yBAAQ,CAACC,IAAI,EAAE;MAC5BL,IAAI,GAAG,IAAAC,oBAAG,EAACC,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,MAAM,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAKE,yBAAQ,CAACE,KAAK,EAAE;MACpC,MAAMC,EAAE,GAAG,IAAAN,oBAAG,EAACC,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,CAAC;MAC9B,MAAMM,EAAE,GAAG,IAAAP,oBAAG,EAACC,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,CAAC;MAC9B,MAAMO,EAAE,GAAG,IAAAR,oBAAG,EAACC,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,CAAC;MAC9B,IAAIxC,CAAC,IAAIsC,IAAI,CAACtC,CAAC,IAAIA,CAAC,IAAI+C,EAAE,CAAC/C,CAAC,EAAE;QAC5B,OAAO;UACLsC,IAAI;UACJO,EAAE;UACFC,EAAE;UACFC;QACF,CAAC;MACH;MACAT,IAAI,GAAGS,EAAE;IACX;EACF;EAEA,OAAON,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AAFAN,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAGO,MAAMY,gBAAgB,GAAIX,IAAmB,IAAoB;EACtE,SAAS;;EACT,MAAMY,QAAuB,GAAG,EAAE;EAClC,IAAIjD,CAAC,GAAG,CAAC;IACPC,CAAC,GAAG,CAAC;EACP,KAAK,IAAIkB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkB,IAAI,CAACjB,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,MAAM+B,OAAO,GAAGb,IAAI,CAAClB,CAAC,CAAC;IACvB,IAAI+B,OAAO,KAAKT,SAAS,EACvB,MAAM,IAAIU,KAAK,CAAC,6BAA6BhC,CAAC,EAAE,CAAC;IAEnD,IAAIiC,OAAO;IACX,MAAMZ,GAAG,GAAGU,OAAO,CAAC,CAAC,CAAC;IACtB,IAAIV,GAAG,KAAKC,SAAS,EAAE,MAAM,IAAIU,KAAK,CAAC,uBAAuB,CAAC;IAE/D,IAAIX,GAAG,KAAKE,yBAAQ,CAACW,IAAI,EAAE;MACzBD,OAAO,GAAG,CACRV,yBAAQ,CAACE,KAAK,EACd5C,CAAC,EACDC,CAAC,EACDiD,OAAO,CAAC,CAAC,CAAC,EACVA,OAAO,CAAC,CAAC,CAAC,EACVA,OAAO,CAAC,CAAC,CAAC,EACVA,OAAO,CAAC,CAAC,CAAC,CACX;IACH,CAAC,MAAM;MACLE,OAAO,GAAGF,OAAO;IACnB;IAEAlD,CAAC,GAAGoD,OAAO,CAACA,OAAO,CAAChC,MAAM,GAAG,CAAC,CAAE;IAChCnB,CAAC,GAAGmD,OAAO,CAACA,OAAO,CAAChC,MAAM,GAAG,CAAC,CAAE;IAEhC6B,QAAQ,CAACK,IAAI,CAACF,OAAO,CAAC;EACxB;EAEA,OAAOH,QAAQ;AACjB,CAAC;AAACd,OAAA,CAAAa,gBAAA,GAAAA,gBAAA;AAEK,MAAMO,QAAQ,GAAGA,CACtBlB,IAAmB,EACnBrC,CAAS,EACTL,SAAS,GAAG,CAAC,KACU;EACvB,SAAS;;EACT,MAAM6D,QAAQ,GAAGR,gBAAgB,CAACX,IAAI,CAAC;EACvC,MAAM/B,CAAC,GAAG8B,WAAW,CAACoB,QAAQ,EAAExD,CAAC,CAAC;EAClC,IAAIM,CAAC,IAAI,IAAI,EAAE,OAAOmC,SAAS;EAE/B,OAAOf,gBAAgB,CAAC1B,CAAC,EAAEM,CAAC,CAACgC,IAAI,EAAEhC,CAAC,CAACuC,EAAE,EAAEvC,CAAC,CAACwC,EAAE,EAAExC,CAAC,CAACyC,EAAE,EAAEpD,SAAS,CAAC;AACjE,CAAC;;AAED;AAAAwC,OAAA,CAAAoB,QAAA,GAAAA,QAAA;AAIO,MAAME,SAAS,GAAI7D,CAAU,IAClCC,IAAI,CAACY,IAAI,CAACb,CAAC,CAACI,CAAC,GAAGJ,CAAC,CAACI,CAAC,GAAGJ,CAAC,CAACK,CAAC,GAAGL,CAAC,CAACK,CAAC,CAAC;AAACkC,OAAA,CAAAsB,SAAA,GAAAA,SAAA;AAE5B,MAAMC,SAAS,GAAI9D,CAAU,IAAK;EACvC,MAAM+D,CAAC,GAAGF,SAAS,CAAC7D,CAAC,CAAC;EACtB,OAAO;IAAEI,CAAC,EAAEJ,CAAC,CAACI,CAAC,GAAG2D,CAAC;IAAE1D,CAAC,EAAEL,CAAC,CAACK,CAAC,GAAG0D;EAAE,CAAC;AACnC,CAAC;AAACxB,OAAA,CAAAuB,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["Charts/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getDateBoundaries = getDateBoundaries;
|
|
7
|
+
exports.getMonthInterval = exports.getDateInterval = void 0;
|
|
8
|
+
exports.sampleDates = sampleDates;
|
|
9
|
+
exports.sampleDatesByRange = sampleDatesByRange;
|
|
10
|
+
const getMonthInterval = function (month, nbMonths) {
|
|
11
|
+
if (month <= 0) throw new Error('Months should start at 1');
|
|
12
|
+
return (month - month % nbMonths + 1).toString().padStart(2, '0');
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Get the date interval based on the date range.
|
|
17
|
+
* For example, for the date 2021-01-01:
|
|
18
|
+
* - day: 2021-01-01
|
|
19
|
+
* - month: 2021-01
|
|
20
|
+
* - trimester: 2021-01
|
|
21
|
+
* - year: 2021
|
|
22
|
+
* @param date
|
|
23
|
+
* @param dateRange
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
exports.getMonthInterval = getMonthInterval;
|
|
27
|
+
const getDateInterval = function (date, dateRange) {
|
|
28
|
+
const year = date.getFullYear();
|
|
29
|
+
const month = date.getMonth() + 1;
|
|
30
|
+
const day = date.getDate().toString().padStart(2, '0');
|
|
31
|
+
const monthStr = month.toString().padStart(2, '0');
|
|
32
|
+
switch (dateRange) {
|
|
33
|
+
case 'day':
|
|
34
|
+
return `${year}-${monthStr}-${day}`;
|
|
35
|
+
case 'month':
|
|
36
|
+
return `${year}-${monthStr}`;
|
|
37
|
+
case 'trimester':
|
|
38
|
+
return `${year}-${getMonthInterval(month, 3)}`;
|
|
39
|
+
case 'year':
|
|
40
|
+
return `${year}`;
|
|
41
|
+
}
|
|
42
|
+
throw new Error('Invalid date range');
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
//@ts-ignore
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
47
|
+
exports.getDateInterval = getDateInterval;
|
|
48
|
+
const fmtData = function (data, dateRange) {
|
|
49
|
+
const _dataFmt = new Map();
|
|
50
|
+
for (const [date, value] of data) {
|
|
51
|
+
const _dateStr = getDateInterval(date, dateRange);
|
|
52
|
+
if (!_dataFmt.has(_dateStr)) _dataFmt.set(_dateStr, [date.getTime(), value]);
|
|
53
|
+
}
|
|
54
|
+
return [..._dataFmt.values()];
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Groups an array of Date objects by a specific time interval (day, month, trimester, year)
|
|
59
|
+
* and calculates the earliest and latest dates within each interval.
|
|
60
|
+
* For instance, given the dates [2021-01-01, 2021-01-25, 2021-03-01, 2021-10-01]:
|
|
61
|
+
* - month: { '2021-01': [2021-01-01, 2021-01-25],
|
|
62
|
+
* '2021-03': [2021-03-01, 2021-03-01],
|
|
63
|
+
'2021-10': [2021-10-01, 2021-10-01] }
|
|
64
|
+
|
|
65
|
+
* @param {Date[]} dates - An array of dates to group and find boundary dates for.
|
|
66
|
+
* @returns {Map<string, [Date, Date]>} - A map where each key represents an interval
|
|
67
|
+
* as a string (formatted according to the interval type, e.g., '2021', '2021-03', '2021-01-01'),
|
|
68
|
+
* and each value is a tuple containing the earliest and latest dates within that interval.
|
|
69
|
+
*/
|
|
70
|
+
function getDateBoundaries(dates, dateRange) {
|
|
71
|
+
const ranges = new Map();
|
|
72
|
+
for (const date of dates) {
|
|
73
|
+
const _dateStr = getDateInterval(date, dateRange);
|
|
74
|
+
const _range = ranges.get(_dateStr);
|
|
75
|
+
if (!_range) ranges.set(_dateStr, [date, date]);else if (date > _range[1]) ranges.set(_dateStr, [_range[0], date]);
|
|
76
|
+
}
|
|
77
|
+
return ranges;
|
|
78
|
+
}
|
|
79
|
+
function sampleDates(dates, sampleSize, indexOffset = 0) {
|
|
80
|
+
if (sampleSize <= 0 || dates.length === 0) {
|
|
81
|
+
return {
|
|
82
|
+
dates: [],
|
|
83
|
+
indexes: []
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (sampleSize >= dates.length) {
|
|
87
|
+
return {
|
|
88
|
+
dates,
|
|
89
|
+
indexes: Array.from({
|
|
90
|
+
length: dates.length
|
|
91
|
+
}, (_, i) => indexOffset + i)
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Calculate total time span and interval
|
|
96
|
+
const firstItem = dates[0];
|
|
97
|
+
const lastItem = dates[dates.length - 1];
|
|
98
|
+
const startTime = firstItem.getTime();
|
|
99
|
+
const endTime = lastItem.getTime();
|
|
100
|
+
const timeSpan = endTime - startTime;
|
|
101
|
+
const timeInterval = timeSpan / (sampleSize - 1);
|
|
102
|
+
const sampledDates = [firstItem]; // Always include the first date
|
|
103
|
+
const sampledIndexes = [0];
|
|
104
|
+
let nextTime = startTime + timeInterval;
|
|
105
|
+
|
|
106
|
+
// Select dates closest to each time interval
|
|
107
|
+
for (let i = 1; i < sampleSize - 1; i++) {
|
|
108
|
+
let closestDate = dates[0];
|
|
109
|
+
let minDiff = Math.abs(startTime - nextTime);
|
|
110
|
+
let closestIndex = 0;
|
|
111
|
+
for (let j = 1; j < dates.length; j++) {
|
|
112
|
+
const diff = Math.abs(dates[j].getTime() - nextTime);
|
|
113
|
+
if (diff < minDiff) {
|
|
114
|
+
closestDate = dates[j];
|
|
115
|
+
closestIndex = j;
|
|
116
|
+
minDiff = diff;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
sampledDates.push(closestDate);
|
|
120
|
+
sampledIndexes.push(closestIndex);
|
|
121
|
+
nextTime += timeInterval;
|
|
122
|
+
}
|
|
123
|
+
sampledDates.push(lastItem); // Always include the last date
|
|
124
|
+
sampledIndexes.push(dates.length - 1);
|
|
125
|
+
return {
|
|
126
|
+
dates: sampledDates,
|
|
127
|
+
indexes: sampledIndexes.map(x => indexOffset + x)
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
function sampleDatesByRange(dates, sampleSize, dateRange) {
|
|
131
|
+
const boundaries = getDateBoundaries(dates, dateRange);
|
|
132
|
+
const rangedData = new Map();
|
|
133
|
+
for (let i = 0; i < dates.length; i++) {
|
|
134
|
+
let date = dates[i];
|
|
135
|
+
for (const [key, [minDate, maxDate]] of boundaries) {
|
|
136
|
+
if (date >= minDate && date <= maxDate) {
|
|
137
|
+
if (!rangedData.has(key)) rangedData.set(key, []);
|
|
138
|
+
rangedData.get(key).push(date);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const sampledData = new Map();
|
|
144
|
+
let offset = 0;
|
|
145
|
+
for (const [key, value] of rangedData) {
|
|
146
|
+
sampledData.set(key, sampleDates(value, sampleSize, offset));
|
|
147
|
+
offset += value.length;
|
|
148
|
+
}
|
|
149
|
+
return sampledData;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=dateUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getMonthInterval","month","nbMonths","Error","toString","padStart","exports","getDateInterval","date","dateRange","year","getFullYear","getMonth","day","getDate","monthStr","fmtData","data","_dataFmt","Map","value","_dateStr","has","set","getTime","values","getDateBoundaries","dates","ranges","_range","get","sampleDates","sampleSize","indexOffset","length","indexes","Array","from","_","i","firstItem","lastItem","startTime","endTime","timeSpan","timeInterval","sampledDates","sampledIndexes","nextTime","closestDate","minDiff","Math","abs","closestIndex","j","diff","push","map","x","sampleDatesByRange","boundaries","rangedData","key","minDate","maxDate","sampledData","offset"],"sourceRoot":"../../src","sources":["dateUtils.ts"],"mappings":";;;;;;;;;AAEO,MAAMA,gBAAgB,GAAG,SAAAA,CAC9BC,KAAa,EACbC,QAAgB,EACR;EACR,IAAID,KAAK,IAAI,CAAC,EAAE,MAAM,IAAIE,KAAK,CAAC,0BAA0B,CAAC;EAC3D,OAAO,CAACF,KAAK,GAAIA,KAAK,GAAGC,QAAS,GAAG,CAAC,EAAEE,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACrE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVAC,OAAA,CAAAN,gBAAA,GAAAA,gBAAA;AAWO,MAAMO,eAAe,GAAG,SAAAA,CAC7BC,IAAU,EACVC,SAAoB,EACZ;EACR,MAAMC,IAAI,GAAGF,IAAI,CAACG,WAAW,CAAC,CAAC;EAC/B,MAAMV,KAAK,GAAGO,IAAI,CAACI,QAAQ,CAAC,CAAC,GAAG,CAAC;EACjC,MAAMC,GAAG,GAAGL,IAAI,CAACM,OAAO,CAAC,CAAC,CAACV,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAEtD,MAAMU,QAAQ,GAAGd,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAElD,QAAQI,SAAS;IACf,KAAK,KAAK;MACR,OAAO,GAAGC,IAAI,IAAIK,QAAQ,IAAIF,GAAG,EAAE;IACrC,KAAK,OAAO;MACV,OAAO,GAAGH,IAAI,IAAIK,QAAQ,EAAE;IAC9B,KAAK,WAAW;MACd,OAAO,GAAGL,IAAI,IAAIV,gBAAgB,CAACC,KAAK,EAAE,CAAC,CAAC,EAAE;IAChD,KAAK,MAAM;MACT,OAAO,GAAGS,IAAI,EAAE;EACpB;EACA,MAAM,IAAIP,KAAK,CAAC,oBAAoB,CAAC;AACvC,CAAC;;AAED;AACA;AAAAG,OAAA,CAAAC,eAAA,GAAAA,eAAA;AACA,MAAMS,OAAO,GAAG,SAAAA,CAAUC,IAAsB,EAAER,SAAoB,EAAE;EACtE,MAAMS,QAAQ,GAAG,IAAIC,GAAG,CAA2B,CAAC;EACpD,KAAK,MAAM,CAACX,IAAI,EAAEY,KAAK,CAAC,IAAIH,IAAI,EAAE;IAChC,MAAMI,QAAQ,GAAGd,eAAe,CAACC,IAAI,EAAEC,SAAS,CAAC;IACjD,IAAI,CAACS,QAAQ,CAACI,GAAG,CAACD,QAAQ,CAAC,EACzBH,QAAQ,CAACK,GAAG,CAACF,QAAQ,EAAE,CAACb,IAAI,CAACgB,OAAO,CAAC,CAAC,EAAEJ,KAAK,CAAC,CAAC;EACnD;EAEA,OAAO,CAAC,GAAGF,QAAQ,CAACO,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAACC,KAAa,EAAElB,SAAoB,EAAE;EACrE,MAAMmB,MAAM,GAAG,IAAIT,GAAG,CAAuB,CAAC;EAE9C,KAAK,MAAMX,IAAI,IAAImB,KAAK,EAAE;IACxB,MAAMN,QAAQ,GAAGd,eAAe,CAACC,IAAI,EAAEC,SAAS,CAAC;IACjD,MAAMoB,MAAM,GAAGD,MAAM,CAACE,GAAG,CAACT,QAAQ,CAAC;IACnC,IAAI,CAACQ,MAAM,EAAED,MAAM,CAACL,GAAG,CAACF,QAAQ,EAAE,CAACb,IAAI,EAAEA,IAAI,CAAC,CAAC,CAAC,KAC3C,IAAIA,IAAI,GAAGqB,MAAM,CAAC,CAAC,CAAC,EAAED,MAAM,CAACL,GAAG,CAACF,QAAQ,EAAE,CAACQ,MAAM,CAAC,CAAC,CAAC,EAAErB,IAAI,CAAC,CAAC;EACpE;EACA,OAAOoB,MAAM;AACf;AAEO,SAASG,WAAWA,CACzBJ,KAAa,EACbK,UAAkB,EAClBC,WAAmB,GAAG,CAAC,EACe;EACtC,IAAID,UAAU,IAAI,CAAC,IAAIL,KAAK,CAACO,MAAM,KAAK,CAAC,EAAE;IACzC,OAAO;MAAEP,KAAK,EAAE,EAAE;MAAEQ,OAAO,EAAE;IAAG,CAAC;EACnC;EAEA,IAAIH,UAAU,IAAIL,KAAK,CAACO,MAAM,EAAE;IAC9B,OAAO;MACLP,KAAK;MACLQ,OAAO,EAAEC,KAAK,CAACC,IAAI,CAAC;QAAEH,MAAM,EAAEP,KAAK,CAACO;MAAO,CAAC,EAAE,CAACI,CAAC,EAAEC,CAAC,KAAKN,WAAW,GAAGM,CAAC;IACzE,CAAC;EACH;;EAEA;EACA,MAAMC,SAAS,GAAGb,KAAK,CAAC,CAAC,CAAE;EAC3B,MAAMc,QAAQ,GAAGd,KAAK,CAACA,KAAK,CAACO,MAAM,GAAG,CAAC,CAAE;EACzC,MAAMQ,SAAS,GAAGF,SAAS,CAAChB,OAAO,CAAC,CAAC;EACrC,MAAMmB,OAAO,GAAGF,QAAQ,CAACjB,OAAO,CAAC,CAAC;EAClC,MAAMoB,QAAQ,GAAGD,OAAO,GAAGD,SAAS;EACpC,MAAMG,YAAY,GAAGD,QAAQ,IAAIZ,UAAU,GAAG,CAAC,CAAC;EAEhD,MAAMc,YAAoB,GAAG,CAACN,SAAS,CAAC,CAAC,CAAC;EAC1C,MAAMO,cAAc,GAAG,CAAC,CAAC,CAAC;EAC1B,IAAIC,QAAQ,GAAGN,SAAS,GAAGG,YAAY;;EAEvC;EACA,KAAK,IAAIN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,UAAU,GAAG,CAAC,EAAEO,CAAC,EAAE,EAAE;IACvC,IAAIU,WAAW,GAAGtB,KAAK,CAAC,CAAC,CAAC;IAC1B,IAAIuB,OAAO,GAAGC,IAAI,CAACC,GAAG,CAACV,SAAS,GAAGM,QAAQ,CAAC;IAC5C,IAAIK,YAAY,GAAG,CAAC;IACpB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG3B,KAAK,CAACO,MAAM,EAAEoB,CAAC,EAAE,EAAE;MACrC,MAAMC,IAAI,GAAGJ,IAAI,CAACC,GAAG,CAACzB,KAAK,CAAC2B,CAAC,CAAC,CAAE9B,OAAO,CAAC,CAAC,GAAGwB,QAAQ,CAAC;MACrD,IAAIO,IAAI,GAAGL,OAAO,EAAE;QAClBD,WAAW,GAAGtB,KAAK,CAAC2B,CAAC,CAAC;QACtBD,YAAY,GAAGC,CAAC;QAChBJ,OAAO,GAAGK,IAAI;MAChB;IACF;IACAT,YAAY,CAACU,IAAI,CAACP,WAAY,CAAC;IAC/BF,cAAc,CAACS,IAAI,CAACH,YAAY,CAAC;IACjCL,QAAQ,IAAIH,YAAY;EAC1B;EAEAC,YAAY,CAACU,IAAI,CAACf,QAAQ,CAAC,CAAC,CAAC;EAC7BM,cAAc,CAACS,IAAI,CAAC7B,KAAK,CAACO,MAAM,GAAG,CAAC,CAAC;EAErC,OAAO;IACLP,KAAK,EAAEmB,YAAY;IACnBX,OAAO,EAAEY,cAAc,CAACU,GAAG,CAAEC,CAAC,IAAKzB,WAAW,GAAGyB,CAAC;EACpD,CAAC;AACH;AAEO,SAASC,kBAAkBA,CAChChC,KAAa,EACbK,UAAkB,EAClBvB,SAAoB,EAC+B;EACnD,MAAMmD,UAAU,GAAGlC,iBAAiB,CAACC,KAAK,EAAElB,SAAS,CAAC;EACtD,MAAMoD,UAAU,GAAG,IAAI1C,GAAG,CAAiB,CAAC;EAC5C,KAAK,IAAIoB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,KAAK,CAACO,MAAM,EAAEK,CAAC,EAAE,EAAE;IACrC,IAAI/B,IAAI,GAAGmB,KAAK,CAACY,CAAC,CAAE;IACpB,KAAK,MAAM,CAACuB,GAAG,EAAE,CAACC,OAAO,EAAEC,OAAO,CAAC,CAAC,IAAIJ,UAAU,EAAE;MAClD,IAAIpD,IAAI,IAAIuD,OAAO,IAAIvD,IAAI,IAAIwD,OAAO,EAAE;QACtC,IAAI,CAACH,UAAU,CAACvC,GAAG,CAACwC,GAAG,CAAC,EAAED,UAAU,CAACtC,GAAG,CAACuC,GAAG,EAAE,EAAE,CAAC;QACjDD,UAAU,CAAC/B,GAAG,CAACgC,GAAG,CAAC,CAAEN,IAAI,CAAChD,IAAI,CAAC;QAC/B;MACF;IACF;EACF;EACA,MAAMyD,WAAW,GAAG,IAAI9C,GAAG,CAA+C,CAAC;EAC3E,IAAI+C,MAAM,GAAG,CAAC;EACd,KAAK,MAAM,CAACJ,GAAG,EAAE1C,KAAK,CAAC,IAAIyC,UAAU,EAAE;IACrCI,WAAW,CAAC1C,GAAG,CAACuC,GAAG,EAAE/B,WAAW,CAACX,KAAK,EAAEY,UAAU,EAAEkC,MAAM,CAAC,CAAC;IAC5DA,MAAM,IAAI9C,KAAK,CAACc,MAAM;EACxB;EAEA,OAAO+B,WAAW;AACpB","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _Charts = require("./Charts");
|
|
7
|
+
Object.keys(_Charts).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _Charts[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _Charts[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _dateUtils = require("./dateUtils");
|
|
18
|
+
Object.keys(_dateUtils).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _dateUtils[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _dateUtils[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _textUtils = require("./textUtils");
|
|
29
|
+
Object.keys(_textUtils).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _textUtils[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _textUtils[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_Charts","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_dateUtils","_textUtils"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,UAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,UAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,UAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,UAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AAEA,IAAAM,UAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,UAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,UAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,UAAA,CAAAN,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useSharedNumberToStr = void 0;
|
|
7
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
8
|
+
const textToString = function (value) {
|
|
9
|
+
'worklet';
|
|
10
|
+
|
|
11
|
+
return value.toFixed(0).toString();
|
|
12
|
+
};
|
|
13
|
+
const useSharedNumberToStr = function (initValue = 0) {
|
|
14
|
+
const value = (0, _reactNativeReanimated.useSharedValue)(initValue);
|
|
15
|
+
const valueStr = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
16
|
+
return textToString(value.value);
|
|
17
|
+
}, [value]);
|
|
18
|
+
return [value, valueStr];
|
|
19
|
+
};
|
|
20
|
+
exports.useSharedNumberToStr = useSharedNumberToStr;
|
|
21
|
+
//# sourceMappingURL=textUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNativeReanimated","require","textToString","value","toFixed","toString","useSharedNumberToStr","initValue","useSharedValue","valueStr","useDerivedValue","exports"],"sourceRoot":"../../src","sources":["textUtils.ts"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAMA,MAAMC,YAAY,GAAG,SAAAA,CAAUC,KAAa,EAAE;EAC5C,SAAS;;EACT,OAAOA,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAEM,MAAMC,oBAAoB,GAAG,SAAAA,CAClCC,SAAiB,GAAG,CAAC,EACuB;EAC5C,MAAMJ,KAAK,GAAG,IAAAK,qCAAc,EAASD,SAAS,CAAC;EAC/C,MAAME,QAAQ,GAAG,IAAAC,sCAAe,EAAC,MAAM;IACrC,OAAOR,YAAY,CAACC,KAAK,CAACA,KAAK,CAAC;EAClC,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OAAO,CAACA,KAAK,EAAEM,QAAQ,CAAC;AAC1B,CAAC;AAACE,OAAA,CAAAL,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Line, vec } from '@shopify/react-native-skia';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { useDerivedValue } from 'react-native-reanimated';
|
|
6
|
+
import { getPositionWl } from '../gesture';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const AxisLine = function (props) {
|
|
9
|
+
const {
|
|
10
|
+
width,
|
|
11
|
+
focalX,
|
|
12
|
+
scale,
|
|
13
|
+
offsetX,
|
|
14
|
+
offsetY = 0,
|
|
15
|
+
strokeWidth = StyleSheet.hairlineWidth,
|
|
16
|
+
color = 'black'
|
|
17
|
+
} = props;
|
|
18
|
+
const p1 = useDerivedValue(() => {
|
|
19
|
+
const p1X = getPositionWl(0, focalX.value, scale.value, offsetX.value);
|
|
20
|
+
return vec(p1X, offsetY);
|
|
21
|
+
}, []);
|
|
22
|
+
const p2 = useDerivedValue(() => {
|
|
23
|
+
const p1X = getPositionWl(width, focalX.value, scale.value, offsetX.value);
|
|
24
|
+
return vec(p1X, offsetY);
|
|
25
|
+
}, [width]);
|
|
26
|
+
return /*#__PURE__*/_jsx(Line, {
|
|
27
|
+
p1,
|
|
28
|
+
p2,
|
|
29
|
+
color,
|
|
30
|
+
strokeWidth
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
export { AxisLine };
|
|
34
|
+
//# sourceMappingURL=AxisLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Line","vec","StyleSheet","useDerivedValue","getPositionWl","jsx","_jsx","AxisLine","props","width","focalX","scale","offsetX","offsetY","strokeWidth","hairlineWidth","color","p1","p1X","value","p2"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/AxisLine.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,GAAG,QAAoB,4BAA4B;AAElE,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAY3C,MAAMC,QAA2B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACnD,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,KAAK;IACLC,OAAO;IACPC,OAAO,GAAG,CAAC;IACXC,WAAW,GAAGZ,UAAU,CAACa,aAAa;IACtCC,KAAK,GAAG;EACV,CAAC,GAAGR,KAAK;EACT,MAAMS,EAAE,GAAGd,eAAe,CAAC,MAAM;IAC/B,MAAMe,GAAG,GAAGd,aAAa,CAAC,CAAC,EAAEM,MAAM,CAACS,KAAK,EAAER,KAAK,CAACQ,KAAK,EAAEP,OAAO,CAACO,KAAK,CAAC;IACtE,OAAOlB,GAAG,CAACiB,GAAG,EAAEL,OAAO,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMO,EAAE,GAAGjB,eAAe,CAAC,MAAM;IAC/B,MAAMe,GAAG,GAAGd,aAAa,CAACK,KAAK,EAAEC,MAAM,CAACS,KAAK,EAAER,KAAK,CAACQ,KAAK,EAAEP,OAAO,CAACO,KAAK,CAAC;IAC1E,OAAOlB,GAAG,CAACiB,GAAG,EAAEL,OAAO,CAAC;EAC1B,CAAC,EAAE,CAACJ,KAAK,CAAC,CAAC;EAEX,oBAAOH,IAAA,CAACN,IAAI;IAAOiB,EAAE;IAAEG,EAAE;IAAEJ,KAAK;IAAEF;EAAW,CAAK,CAAC;AACrD,CAAC;AAED,SAASP,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// ChartUtilsScreen.tsx
|
|
4
|
+
import { Canvas } from '@shopify/react-native-skia';
|
|
5
|
+
import { AxisLine } from './AxisLine';
|
|
6
|
+
import { Tick } from './Tick';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const BottomAxis = function (props) {
|
|
9
|
+
const {
|
|
10
|
+
labels,
|
|
11
|
+
scale,
|
|
12
|
+
focalX,
|
|
13
|
+
offsetX,
|
|
14
|
+
style,
|
|
15
|
+
width,
|
|
16
|
+
font
|
|
17
|
+
} = props;
|
|
18
|
+
const offsetY = props.offsetY ?? 0;
|
|
19
|
+
const tickInterval = width / (labels.length - 1);
|
|
20
|
+
return /*#__PURE__*/_jsxs(Canvas, {
|
|
21
|
+
style: style,
|
|
22
|
+
children: [/*#__PURE__*/_jsx(AxisLine, {
|
|
23
|
+
width,
|
|
24
|
+
offsetY,
|
|
25
|
+
focalX,
|
|
26
|
+
scale,
|
|
27
|
+
offsetX
|
|
28
|
+
}), labels.map((_label, i) => /*#__PURE__*/_jsx(Tick, {
|
|
29
|
+
label: _label,
|
|
30
|
+
initPosition: tickInterval * i,
|
|
31
|
+
offsetX,
|
|
32
|
+
offsetY,
|
|
33
|
+
focalX,
|
|
34
|
+
scale,
|
|
35
|
+
font
|
|
36
|
+
}, i))]
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
export { BottomAxis };
|
|
40
|
+
//# sourceMappingURL=BottomAxis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Canvas","AxisLine","Tick","jsx","_jsx","jsxs","_jsxs","BottomAxis","props","labels","scale","focalX","offsetX","style","width","font","offsetY","tickInterval","length","children","map","_label","i","label","initPosition"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/BottomAxis.tsx"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAqB,4BAA4B;AAIhE,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,IAAI,QAAQ,QAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAc9B,MAAMC,UAA+B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACvD,MAAM;IAAEC,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGP,KAAK;EACpE,MAAMQ,OAAO,GAAGR,KAAK,CAACQ,OAAO,IAAI,CAAC;EAClC,MAAMC,YAAY,GAAGH,KAAK,IAAIL,MAAM,CAACS,MAAM,GAAG,CAAC,CAAC;EAEhD,oBACEZ,KAAA,CAACN,MAAM;IAACa,KAAK,EAAEA,KAAM;IAAAM,QAAA,gBACnBf,IAAA,CAACH,QAAQ;MAAOa,KAAK;MAAEE,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEE;IAAO,CAAK,CAAC,EAC3DH,MAAM,CAACW,GAAG,CAAC,CAACC,MAAM,EAAEC,CAAC,kBACpBlB,IAAA,CAACF,IAAI;MAEHqB,KAAK,EAAEF,MAAO;MACdG,YAAY,EAAEP,YAAY,GAAGK,CAAE;MACzBV,OAAO;MAAEI,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEK;IAAI,GAHtCO,CAIN,CACF,CAAC;EAAA,CACI,CAAC;AAEb,CAAC;AAED,SAASf,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Group, Line, Text, vec } from '@shopify/react-native-skia';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useDerivedValue } from 'react-native-reanimated';
|
|
6
|
+
import { getPositionWl } from '../gesture';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
export const Tick = props => {
|
|
9
|
+
const {
|
|
10
|
+
label,
|
|
11
|
+
scale,
|
|
12
|
+
focalX,
|
|
13
|
+
offsetX,
|
|
14
|
+
initPosition,
|
|
15
|
+
font
|
|
16
|
+
} = props;
|
|
17
|
+
const offsetY = props.offsetY ?? 0;
|
|
18
|
+
const transform = useDerivedValue(() => [{
|
|
19
|
+
translateX: getPositionWl(initPosition, focalX.value, scale.value, offsetX.value)
|
|
20
|
+
}], [initPosition, offsetX]);
|
|
21
|
+
const width = font.getGlyphWidths(font.getGlyphIDs(label)).reduce((a, b) => a + b, 0);
|
|
22
|
+
return /*#__PURE__*/_jsxs(Group, {
|
|
23
|
+
transform: transform,
|
|
24
|
+
children: [/*#__PURE__*/_jsx(Line, {
|
|
25
|
+
color: "black",
|
|
26
|
+
p1: vec(0, offsetY),
|
|
27
|
+
p2: vec(0, offsetY + 10)
|
|
28
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
29
|
+
text: label,
|
|
30
|
+
color: "black",
|
|
31
|
+
x: -width / 2,
|
|
32
|
+
y: offsetY + 23,
|
|
33
|
+
font: font
|
|
34
|
+
})]
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=Tick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Group","Line","Text","vec","React","useDerivedValue","getPositionWl","jsx","_jsx","jsxs","_jsxs","Tick","props","label","scale","focalX","offsetX","initPosition","font","offsetY","transform","translateX","value","width","getGlyphWidths","getGlyphIDs","reduce","a","b","children","color","p1","p2","text","x","y"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/Tick.tsx"],"mappings":";;AAAA,SACEA,KAAK,EACLC,IAAI,EACJC,IAAI,EACJC,GAAG,QAEE,4BAA4B;AACnC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAY3C,OAAO,MAAMC,IAAyB,GAAIC,KAAK,IAAK;EAClD,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO;IAAEC,YAAY;IAAEC;EAAK,CAAC,GAAGN,KAAK;EACnE,MAAMO,OAAO,GAAGP,KAAK,CAACO,OAAO,IAAI,CAAC;EAClC,MAAMC,SAAS,GAAGf,eAAe,CAC/B,MAAM,CACJ;IACEgB,UAAU,EAAEf,aAAa,CACvBW,YAAY,EACZF,MAAM,CAACO,KAAK,EACZR,KAAK,CAACQ,KAAK,EACXN,OAAO,CAACM,KACV;EACF,CAAC,CACF,EACD,CAACL,YAAY,EAAED,OAAO,CACxB,CAAC;EACD,MAAMO,KAAK,GAAGL,IAAI,CACfM,cAAc,CAACN,IAAI,CAACO,WAAW,CAACZ,KAAK,CAAC,CAAC,CACvCa,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;EAE7B,oBACElB,KAAA,CAACV,KAAK;IAACoB,SAAS,EAAEA,SAAU;IAAAS,QAAA,gBAC1BrB,IAAA,CAACP,IAAI;MAAC6B,KAAK,EAAC,OAAO;MAACC,EAAE,EAAE5B,GAAG,CAAC,CAAC,EAAEgB,OAAO,CAAE;MAACa,EAAE,EAAE7B,GAAG,CAAC,CAAC,EAAEgB,OAAO,GAAG,EAAE;IAAE,CAAE,CAAC,eACrEX,IAAA,CAACN,IAAI;MACH+B,IAAI,EAAEpB,KAAM;MACZiB,KAAK,EAAC,OAAO;MACbI,CAAC,EAAE,CAACX,KAAK,GAAG,CAAE;MACdY,CAAC,EAAEhB,OAAO,GAAG,EAAG;MAChBD,IAAI,EAAEA;IAAK,CACZ,CAAC;EAAA,CACG,CAAC;AAEZ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AxisLine","BottomAxis","Tick"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAA4B,YAAY;AACzD,SAASC,UAAU,QAA8B,cAAc;AAC/D,SAASC,IAAI,QAAwB,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Circle } from '@shopify/react-native-skia';
|
|
4
|
+
import { useDerivedValue } from 'react-native-reanimated';
|
|
5
|
+
import { getYForX } from './maths';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const CURSOR_SIZE = 10;
|
|
8
|
+
const Cursor = function ({
|
|
9
|
+
commands,
|
|
10
|
+
positionX,
|
|
11
|
+
color,
|
|
12
|
+
currentValue,
|
|
13
|
+
translateY,
|
|
14
|
+
size = CURSOR_SIZE
|
|
15
|
+
}) {
|
|
16
|
+
if (currentValue !== undefined && translateY !== undefined) {
|
|
17
|
+
console.warn('Current value as no effect when translateY is set');
|
|
18
|
+
}
|
|
19
|
+
const _translateY = translateY ? translateY :
|
|
20
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
21
|
+
useDerivedValue(() => {
|
|
22
|
+
const _commands = commands?.value;
|
|
23
|
+
if (_commands === undefined) {
|
|
24
|
+
return 0;
|
|
25
|
+
}
|
|
26
|
+
const _value = getYForX(_commands, positionX.value) ?? 0;
|
|
27
|
+
if (currentValue !== undefined) {
|
|
28
|
+
currentValue.value = _value;
|
|
29
|
+
}
|
|
30
|
+
return _value;
|
|
31
|
+
});
|
|
32
|
+
const transform = useDerivedValue(() => [{
|
|
33
|
+
translateX: positionX.value
|
|
34
|
+
}, {
|
|
35
|
+
translateY: _translateY.value ?? 0
|
|
36
|
+
}]);
|
|
37
|
+
return /*#__PURE__*/_jsx(Circle, {
|
|
38
|
+
transform: transform,
|
|
39
|
+
cx: 0,
|
|
40
|
+
cy: 0,
|
|
41
|
+
r: size,
|
|
42
|
+
color: color
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
export { Cursor };
|
|
46
|
+
//# sourceMappingURL=Cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Circle","useDerivedValue","getYForX","jsx","_jsx","CURSOR_SIZE","Cursor","commands","positionX","color","currentValue","translateY","size","undefined","console","warn","_translateY","_commands","value","_value","transform","translateX","cx","cy","r"],"sourceRoot":"../../../src","sources":["Charts/Cursor.tsx"],"mappings":";;AAAA,SAASA,MAAM,QAA0B,4BAA4B;AAErE,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,QAAQ,QAAQ,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEnC,MAAMC,WAAW,GAAG,EAAE;AAWtB,MAAMC,MAAuB,GAAG,SAAAA,CAAU;EACxCC,QAAQ;EACRC,SAAS;EACTC,KAAK;EACLC,YAAY;EACZC,UAAU;EACVC,IAAI,GAAGP;AACT,CAAC,EAAE;EACD,IAAIK,YAAY,KAAKG,SAAS,IAAIF,UAAU,KAAKE,SAAS,EAAE;IAC1DC,OAAO,CAACC,IAAI,CAAC,mDAAmD,CAAC;EACnE;EAEA,MAAMC,WAAW,GAAGL,UAAU,GAC1BA,UAAU;EACV;EACAV,eAAe,CAAC,MAAM;IACpB,MAAMgB,SAAS,GAAGV,QAAQ,EAAEW,KAAK;IACjC,IAAID,SAAS,KAAKJ,SAAS,EAAE;MAC3B,OAAO,CAAC;IACV;IACA,MAAMM,MAAM,GAAGjB,QAAQ,CAACe,SAAS,EAAET,SAAS,CAACU,KAAK,CAAC,IAAI,CAAC;IACxD,IAAIR,YAAY,KAAKG,SAAS,EAAE;MAC9BH,YAAY,CAACQ,KAAK,GAAGC,MAAM;IAC7B;IACA,OAAOA,MAAM;EACf,CAAC,CAAC;EAEN,MAAMC,SAAS,GAAGnB,eAAe,CAAC,MAAM,CACtC;IAAEoB,UAAU,EAAEb,SAAS,CAACU;EAAM,CAAC,EAC/B;IAAEP,UAAU,EAAEK,WAAW,CAACE,KAAK,IAAI;EAAE,CAAC,CACvC,CAAC;EACF,oBAAOd,IAAA,CAACJ,MAAM;IAACoB,SAAS,EAAEA,SAAU;IAACE,EAAE,EAAE,CAAE;IAACC,EAAE,EAAE,CAAE;IAACC,CAAC,EAAEZ,IAAK;IAACH,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC9E,CAAC;AAED,SAASH,MAAM","ignoreList":[]}
|