react-native-wagmi-charts 1.8.0 → 2.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.
- package/.DS_Store +0 -0
- package/README.md +331 -196
- package/example/.DS_Store +0 -0
- package/example/src/LineChart.tsx +10 -4
- package/example/src/data/line-data.json +20 -20
- package/lib/commonjs/charts/candle/utils/getDomain.js +19 -0
- package/lib/commonjs/charts/candle/utils/getDomain.js.map +1 -0
- package/lib/commonjs/charts/candle/utils/getHeight.js +19 -0
- package/lib/commonjs/charts/candle/utils/getHeight.js.map +1 -0
- package/lib/commonjs/charts/candle/utils/getPrice.js +20 -0
- package/lib/commonjs/charts/candle/utils/getPrice.js.map +1 -0
- package/lib/commonjs/charts/candle/utils/getY.js +19 -0
- package/lib/commonjs/charts/candle/utils/getY.js.map +1 -0
- package/lib/commonjs/charts/candle/utils/index.js +58 -0
- package/lib/commonjs/charts/candle/utils/index.js.map +1 -0
- package/lib/commonjs/charts/line/Chart.js +9 -3
- package/lib/commonjs/charts/line/Chart.js.map +1 -1
- package/lib/commonjs/charts/line/ChartPath.js +73 -17
- package/lib/commonjs/charts/line/ChartPath.js.map +1 -1
- package/lib/commonjs/charts/line/Context.js +1 -0
- package/lib/commonjs/charts/line/Context.js.map +1 -1
- package/lib/commonjs/charts/line/Cursor.js +1 -0
- package/lib/commonjs/charts/line/Cursor.js.map +1 -1
- package/lib/commonjs/charts/line/CursorCrosshair.js +10 -3
- package/lib/commonjs/charts/line/CursorCrosshair.js.map +1 -1
- package/lib/commonjs/charts/line/CursorLine.js +6 -6
- package/lib/commonjs/charts/line/CursorLine.js.map +1 -1
- package/lib/commonjs/charts/line/DatetimeText.js +2 -0
- package/lib/commonjs/charts/line/DatetimeText.js.map +1 -1
- package/lib/commonjs/charts/line/Dot.js +67 -62
- package/lib/commonjs/charts/line/Dot.js.map +1 -1
- package/lib/commonjs/charts/line/Gradient.js +8 -25
- package/lib/commonjs/charts/line/Gradient.js.map +1 -1
- package/lib/commonjs/charts/line/Group.js +5 -25
- package/lib/commonjs/charts/line/Group.js.map +1 -1
- package/lib/commonjs/charts/line/Highlight.js +92 -0
- package/lib/commonjs/charts/line/Highlight.js.map +1 -0
- package/lib/commonjs/charts/line/HorizontalLine.js +6 -6
- package/lib/commonjs/charts/line/HorizontalLine.js.map +1 -1
- package/lib/commonjs/charts/line/Path.js +19 -30
- package/lib/commonjs/charts/line/Path.js.map +1 -1
- package/lib/commonjs/charts/line/PriceText.js +2 -0
- package/lib/commonjs/charts/line/PriceText.js.map +1 -1
- package/lib/commonjs/charts/line/Tooltip.js +2 -0
- package/lib/commonjs/charts/line/Tooltip.js.map +1 -1
- package/lib/commonjs/charts/line/index.js +47 -20
- package/lib/commonjs/charts/line/index.js.map +1 -1
- package/lib/commonjs/charts/line/useAnimatedPath.js +44 -0
- package/lib/commonjs/charts/line/useAnimatedPath.js.map +1 -0
- package/lib/commonjs/charts/line/{utils.js → utils/getArea.js} +2 -49
- package/lib/commonjs/charts/line/utils/getArea.js.map +1 -0
- package/lib/commonjs/charts/line/utils/getDomain.js +16 -0
- package/lib/commonjs/charts/line/utils/getDomain.js.map +1 -0
- package/lib/commonjs/charts/line/utils/getPath.js +34 -0
- package/lib/commonjs/charts/line/utils/getPath.js.map +1 -0
- package/lib/commonjs/charts/line/utils/index.js +71 -0
- package/lib/commonjs/charts/line/utils/index.js.map +1 -0
- package/lib/commonjs/charts/line/{interpolatePath.js → utils/interpolatePath.js} +1 -1
- package/lib/commonjs/charts/line/{interpolatePath.js.map → utils/interpolatePath.js.map} +1 -1
- package/lib/commonjs/charts/line/utils/lineChartDataPropToArray.js +27 -0
- package/lib/commonjs/charts/line/utils/lineChartDataPropToArray.js.map +1 -0
- package/lib/commonjs/index.js +8 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/formatDatetime.js +21 -0
- package/lib/commonjs/utils/formatDatetime.js.map +1 -0
- package/lib/commonjs/utils/formatPrice.js +46 -0
- package/lib/commonjs/utils/formatPrice.js.map +1 -0
- package/lib/commonjs/utils/index.js +45 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/commonjs/{utils.js → utils/usePrevious.js} +1 -57
- package/lib/commonjs/utils/usePrevious.js.map +1 -0
- package/lib/module/charts/candle/utils/getDomain.js +12 -0
- package/lib/module/charts/candle/utils/getDomain.js.map +1 -0
- package/lib/module/charts/candle/utils/getHeight.js +11 -0
- package/lib/module/charts/candle/utils/getHeight.js.map +1 -0
- package/lib/module/charts/candle/utils/getPrice.js +12 -0
- package/lib/module/charts/candle/utils/getPrice.js.map +1 -0
- package/lib/module/charts/candle/utils/getY.js +11 -0
- package/lib/module/charts/candle/utils/getY.js.map +1 -0
- package/lib/module/charts/candle/utils/index.js +5 -0
- package/lib/module/charts/candle/utils/index.js.map +1 -0
- package/lib/module/charts/line/Chart.js +9 -4
- package/lib/module/charts/line/Chart.js.map +1 -1
- package/lib/module/charts/line/ChartPath.js +69 -17
- package/lib/module/charts/line/ChartPath.js.map +1 -1
- package/lib/module/charts/line/Context.js +1 -0
- package/lib/module/charts/line/Context.js.map +1 -1
- package/lib/module/charts/line/Cursor.js +1 -0
- package/lib/module/charts/line/Cursor.js.map +1 -1
- package/lib/module/charts/line/CursorCrosshair.js +10 -4
- package/lib/module/charts/line/CursorCrosshair.js.map +1 -1
- package/lib/module/charts/line/CursorLine.js +4 -3
- package/lib/module/charts/line/CursorLine.js.map +1 -1
- package/lib/module/charts/line/DatetimeText.js +1 -0
- package/lib/module/charts/line/DatetimeText.js.map +1 -1
- package/lib/module/charts/line/Dot.js +66 -63
- package/lib/module/charts/line/Dot.js.map +1 -1
- package/lib/module/charts/line/Gradient.js +8 -24
- package/lib/module/charts/line/Gradient.js.map +1 -1
- package/lib/module/charts/line/Group.js +2 -24
- package/lib/module/charts/line/Group.js.map +1 -1
- package/lib/module/charts/line/Highlight.js +69 -0
- package/lib/module/charts/line/Highlight.js.map +1 -0
- package/lib/module/charts/line/HorizontalLine.js +4 -3
- package/lib/module/charts/line/HorizontalLine.js.map +1 -1
- package/lib/module/charts/line/Path.js +17 -29
- package/lib/module/charts/line/Path.js.map +1 -1
- package/lib/module/charts/line/PriceText.js +1 -0
- package/lib/module/charts/line/PriceText.js.map +1 -1
- package/lib/module/charts/line/Tooltip.js +1 -0
- package/lib/module/charts/line/Tooltip.js.map +1 -1
- package/lib/module/charts/line/index.js +12 -8
- package/lib/module/charts/line/index.js.map +1 -1
- package/lib/module/charts/line/useAnimatedPath.js +34 -0
- package/lib/module/charts/line/useAnimatedPath.js.map +1 -0
- package/lib/module/charts/line/utils/getArea.js +19 -0
- package/lib/module/charts/line/utils/getArea.js.map +1 -0
- package/lib/module/charts/line/utils/getDomain.js +9 -0
- package/lib/module/charts/line/utils/getDomain.js.map +1 -0
- package/lib/module/charts/line/utils/getPath.js +21 -0
- package/lib/module/charts/line/utils/getPath.js.map +1 -0
- package/lib/module/charts/line/utils/index.js +6 -0
- package/lib/module/charts/line/utils/index.js.map +1 -0
- package/lib/module/charts/line/{interpolatePath.js → utils/interpolatePath.js} +1 -1
- package/lib/module/charts/line/{interpolatePath.js.map → utils/interpolatePath.js.map} +1 -1
- package/lib/module/charts/line/utils/lineChartDataPropToArray.js +20 -0
- package/lib/module/charts/line/utils/lineChartDataPropToArray.js.map +1 -0
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/formatDatetime.js +14 -0
- package/lib/module/utils/formatDatetime.js.map +1 -0
- package/lib/module/{utils.js → utils/formatPrice.js} +1 -29
- package/lib/module/utils/formatPrice.js.map +1 -0
- package/lib/module/utils/index.js +4 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/module/utils/usePrevious.js +14 -0
- package/lib/module/utils/usePrevious.js.map +1 -0
- package/lib/typescript/src/charts/candle/utils/getDomain.d.ts +2 -0
- package/lib/typescript/src/charts/candle/utils/getHeight.d.ts +6 -0
- package/lib/typescript/src/charts/candle/utils/getPrice.d.ts +6 -0
- package/lib/typescript/src/charts/candle/utils/getY.d.ts +6 -0
- package/lib/typescript/src/charts/candle/utils/index.d.ts +4 -0
- package/lib/typescript/src/charts/line/Chart.d.ts +5 -1
- package/lib/typescript/src/charts/line/ChartPath.d.ts +10 -1
- package/lib/typescript/src/charts/line/Context.d.ts +3 -0
- package/lib/typescript/src/charts/line/Cursor.d.ts +3 -0
- package/lib/typescript/src/charts/line/CursorCrosshair.d.ts +4 -1
- package/lib/typescript/src/charts/line/CursorLine.d.ts +4 -1
- package/lib/typescript/src/charts/line/DatetimeText.d.ts +3 -0
- package/lib/typescript/src/charts/line/Dot.d.ts +10 -7
- package/lib/typescript/src/charts/line/Gradient.d.ts +3 -0
- package/lib/typescript/src/charts/line/Group.d.ts +1 -2
- package/lib/typescript/src/charts/line/Highlight.d.ts +15 -0
- package/lib/typescript/src/charts/line/HorizontalLine.d.ts +4 -1
- package/lib/typescript/src/charts/line/Path.d.ts +5 -1
- package/lib/typescript/src/charts/line/PriceText.d.ts +3 -0
- package/lib/typescript/src/charts/line/Tooltip.d.ts +3 -0
- package/lib/typescript/src/charts/line/index.d.ts +15 -25
- package/lib/typescript/src/charts/line/useAnimatedPath.d.ts +8 -0
- package/lib/typescript/src/charts/line/utils/getArea.d.ts +9 -0
- package/lib/typescript/src/charts/line/utils/getDomain.d.ts +2 -0
- package/lib/typescript/src/charts/line/utils/getPath.d.ts +11 -0
- package/lib/typescript/src/charts/line/utils/index.d.ts +5 -0
- package/lib/typescript/src/charts/line/{interpolatePath.d.ts → utils/interpolatePath.d.ts} +1 -1
- package/lib/typescript/src/charts/line/utils/lineChartDataPropToArray.d.ts +2 -0
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/utils/formatDatetime.d.ts +8 -0
- package/lib/typescript/src/utils/formatPrice.d.ts +8 -0
- package/lib/typescript/src/utils/index.d.ts +3 -0
- package/lib/typescript/src/utils/usePrevious.d.ts +1 -0
- package/package.json +4 -2
- package/src/charts/candle/utils/getDomain.ts +9 -0
- package/src/charts/candle/utils/getHeight.ts +21 -0
- package/src/charts/candle/utils/getPrice.ts +17 -0
- package/src/charts/candle/utils/getY.ts +16 -0
- package/src/charts/candle/utils/index.ts +4 -0
- package/src/charts/line/Chart.tsx +9 -3
- package/src/charts/line/ChartPath.tsx +109 -33
- package/src/charts/line/Context.tsx +2 -0
- package/src/charts/line/Cursor.tsx +2 -0
- package/src/charts/line/CursorCrosshair.tsx +20 -5
- package/src/charts/line/CursorLine.tsx +5 -3
- package/src/charts/line/DatetimeText.tsx +2 -0
- package/src/charts/line/Dot.tsx +83 -86
- package/src/charts/line/Gradient.tsx +7 -34
- package/src/charts/line/Group.tsx +4 -47
- package/src/charts/line/Highlight.tsx +78 -0
- package/src/charts/line/HorizontalLine.tsx +5 -3
- package/src/charts/line/Path.tsx +14 -38
- package/src/charts/line/PriceText.tsx +2 -0
- package/src/charts/line/Tooltip.tsx +2 -0
- package/src/charts/line/index.ts +11 -7
- package/src/charts/line/useAnimatedPath.ts +47 -0
- package/src/charts/line/utils/getArea.ts +38 -0
- package/src/charts/line/utils/getDomain.ts +7 -0
- package/src/charts/line/utils/getPath.ts +48 -0
- package/src/charts/line/utils/index.ts +5 -0
- package/src/charts/line/{interpolatePath.ts → utils/interpolatePath.ts} +1 -1
- package/src/charts/line/utils/lineChartDataPropToArray.ts +25 -0
- package/src/index.ts +1 -1
- package/src/utils/formatDatetime.ts +16 -0
- package/src/{utils.ts → utils/formatPrice.ts} +0 -31
- package/src/utils/index.ts +3 -0
- package/src/utils/usePrevious.ts +13 -0
- package/yarn.lock +8 -1
- package/lib/commonjs/charts/line/utils.js.map +0 -1
- package/lib/commonjs/utils.js.map +0 -1
- package/lib/module/charts/line/utils.js +0 -60
- package/lib/module/charts/line/utils.js.map +0 -1
- package/lib/module/utils.js.map +0 -1
- package/lib/typescript/src/charts/line/utils.d.ts +0 -20
- package/lib/typescript/src/utils.d.ts +0 -17
- package/src/charts/line/utils.ts +0 -100
package/example/.DS_Store
CHANGED
|
Binary file
|
|
@@ -48,10 +48,15 @@ export default function App() {
|
|
|
48
48
|
|
|
49
49
|
let chart = (
|
|
50
50
|
<LineChart>
|
|
51
|
-
<LineChart.Path color="
|
|
51
|
+
<LineChart.Path color="black">
|
|
52
52
|
<LineChart.Gradient color="black" />
|
|
53
|
-
<LineChart.HorizontalLine at={{
|
|
54
|
-
|
|
53
|
+
<LineChart.HorizontalLine at={{ index: 0 }} />
|
|
54
|
+
<LineChart.Highlight color="red" from={10} to={15} />
|
|
55
|
+
<LineChart.Dot color="red" at={10} />
|
|
56
|
+
<LineChart.Dot color="red" at={15} />
|
|
57
|
+
{partialDay && (
|
|
58
|
+
<LineChart.Dot at={data.length - 1} color="red" hasPulse />
|
|
59
|
+
)}
|
|
55
60
|
</LineChart.Path>
|
|
56
61
|
<LineChart.CursorCrosshair
|
|
57
62
|
onActivated={invokeHaptic}
|
|
@@ -70,7 +75,7 @@ export default function App() {
|
|
|
70
75
|
chart = (
|
|
71
76
|
<LineChart.Group>
|
|
72
77
|
<LineChart id="one">
|
|
73
|
-
<LineChart.Path color="blue" />
|
|
78
|
+
<LineChart.Path animateOnMount="foreground" color="blue" />
|
|
74
79
|
<LineChart.CursorCrosshair
|
|
75
80
|
onActivated={invokeHaptic}
|
|
76
81
|
onEnded={invokeHaptic}
|
|
@@ -84,6 +89,7 @@ export default function App() {
|
|
|
84
89
|
<LineChart.HorizontalLine at={{ index: 4 }} />
|
|
85
90
|
</LineChart.Path>
|
|
86
91
|
<LineChart.CursorCrosshair
|
|
92
|
+
color="hotpink"
|
|
87
93
|
onActivated={invokeHaptic}
|
|
88
94
|
onEnded={invokeHaptic}
|
|
89
95
|
>
|
|
@@ -1,82 +1,82 @@
|
|
|
1
1
|
[
|
|
2
2
|
{
|
|
3
|
-
"timestamp":
|
|
3
|
+
"timestamp": 1626945400000,
|
|
4
4
|
"value": 33575.25
|
|
5
5
|
},
|
|
6
6
|
{
|
|
7
|
-
"timestamp":
|
|
7
|
+
"timestamp": 1626946300000,
|
|
8
8
|
"value": 33545.25
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
|
-
"timestamp":
|
|
11
|
+
"timestamp": 1626947200000,
|
|
12
12
|
"value": 33510.15
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
|
-
"timestamp":
|
|
15
|
+
"timestamp": 1626948100000,
|
|
16
16
|
"value": 33215.61
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
|
-
"timestamp":
|
|
19
|
+
"timestamp": 1626949000000,
|
|
20
20
|
"value": 33445.23
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
"timestamp":
|
|
23
|
+
"timestamp": 1626949900000,
|
|
24
24
|
"value": 33435.51
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
|
-
"timestamp":
|
|
27
|
+
"timestamp": 1626950800000,
|
|
28
28
|
"value": 33480.66
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
|
-
"timestamp":
|
|
31
|
+
"timestamp": 1626951700000,
|
|
32
32
|
"value": 33440.25
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
"timestamp":
|
|
35
|
+
"timestamp": 1626952600000,
|
|
36
36
|
"value": 33485.23
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
"timestamp":
|
|
39
|
+
"timestamp": 1626953500000,
|
|
40
40
|
"value": 33515.21
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
"timestamp":
|
|
43
|
+
"timestamp": 1626954400000,
|
|
44
44
|
"value": 33570.77
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
|
-
"timestamp":
|
|
47
|
+
"timestamp": 1626955300000,
|
|
48
48
|
"value": 33640.45
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
|
-
"timestamp":
|
|
51
|
+
"timestamp": 1626956200000,
|
|
52
52
|
"value": 33645.34
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
|
-
"timestamp":
|
|
55
|
+
"timestamp": 1626957100000,
|
|
56
56
|
"value": 33670.33
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
|
-
"timestamp":
|
|
59
|
+
"timestamp": 1626958000000,
|
|
60
60
|
"value": 33740.25
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
|
-
"timestamp":
|
|
63
|
+
"timestamp": 1626958900000,
|
|
64
64
|
"value": 33770.25
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
|
-
"timestamp":
|
|
67
|
+
"timestamp": 1626959800000,
|
|
68
68
|
"value": 33705.25
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
|
-
"timestamp":
|
|
71
|
+
"timestamp": 1626960700000,
|
|
72
72
|
"value": 33760.25
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
|
-
"timestamp":
|
|
75
|
+
"timestamp": 1626961600000,
|
|
76
76
|
"value": 33670.25
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
|
-
"timestamp":
|
|
79
|
+
"timestamp": 1626962500000,
|
|
80
80
|
"value": 33870.25
|
|
81
81
|
}
|
|
82
82
|
]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getDomain = getDomain;
|
|
7
|
+
|
|
8
|
+
function getDomain(rows) {
|
|
9
|
+
'worklet';
|
|
10
|
+
|
|
11
|
+
const values = rows.map(({
|
|
12
|
+
high,
|
|
13
|
+
low
|
|
14
|
+
}) => [high, low]).flat();
|
|
15
|
+
const min = Math.min(...values);
|
|
16
|
+
const max = Math.max(...values);
|
|
17
|
+
return [min - (max - min) * 0.025, max + (max - min) * 0.025];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=getDomain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["getDomain.ts"],"names":["getDomain","rows","values","map","high","low","flat","min","Math","max"],"mappings":";;;;;;;AAEO,SAASA,SAAT,CAAmBC,IAAnB,EAAgE;AACrE;;AACA,QAAMC,MAAM,GAAGD,IAAI,CAACE,GAAL,CAAS,CAAC;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,KAAmB,CAACD,IAAD,EAAOC,GAAP,CAA5B,EAAyCC,IAAzC,EAAf;AACA,QAAMC,GAAG,GAAGC,IAAI,CAACD,GAAL,CAAS,GAAGL,MAAZ,CAAZ;AACA,QAAMO,GAAG,GAAGD,IAAI,CAACC,GAAL,CAAS,GAAGP,MAAZ,CAAZ;AACA,SAAO,CAACK,GAAG,GAAG,CAACE,GAAG,GAAGF,GAAP,IAAc,KAArB,EAA4BE,GAAG,GAAG,CAACA,GAAG,GAAGF,GAAP,IAAc,KAAhD,CAAP;AACD","sourcesContent":["import type { TCandle } from '../types';\n\nexport function getDomain(rows: TCandle[]): [min: number, max: number] {\n 'worklet';\n const values = rows.map(({ high, low }) => [high, low]).flat();\n const min = Math.min(...values);\n const max = Math.max(...values);\n return [min - (max - min) * 0.025, max + (max - min) * 0.025];\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getHeight = getHeight;
|
|
7
|
+
|
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
+
|
|
10
|
+
function getHeight({
|
|
11
|
+
value,
|
|
12
|
+
domain,
|
|
13
|
+
maxHeight
|
|
14
|
+
}) {
|
|
15
|
+
'worklet';
|
|
16
|
+
|
|
17
|
+
return (0, _reactNativeReanimated.interpolate)(value, [0, Math.max(...domain) - Math.min(...domain)], [0, maxHeight], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=getHeight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["getHeight.ts"],"names":["getHeight","value","domain","maxHeight","Math","max","min","Extrapolate","CLAMP"],"mappings":";;;;;;;AAAA;;AAIO,SAASA,SAAT,CAAmB;AACxBC,EAAAA,KADwB;AAExBC,EAAAA,MAFwB;AAGxBC,EAAAA;AAHwB,CAAnB,EAQJ;AACD;;AACA,SAAO,wCACLF,KADK,EAEL,CAAC,CAAD,EAAIG,IAAI,CAACC,GAAL,CAAS,GAAGH,MAAZ,IAAsBE,IAAI,CAACE,GAAL,CAAS,GAAGJ,MAAZ,CAA1B,CAFK,EAGL,CAAC,CAAD,EAAIC,SAAJ,CAHK,EAILI,mCAAYC,KAJP,CAAP;AAMD","sourcesContent":["import { interpolate, Extrapolate } from 'react-native-reanimated';\n\nimport type { TDomain } from '../types';\n\nexport function getHeight({\n value,\n domain,\n maxHeight,\n}: {\n value: number;\n domain: TDomain;\n maxHeight: number;\n}) {\n 'worklet';\n return interpolate(\n value,\n [0, Math.max(...domain) - Math.min(...domain)],\n [0, maxHeight],\n Extrapolate.CLAMP\n );\n}\n"]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getPrice = getPrice;
|
|
7
|
+
|
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
+
|
|
10
|
+
function getPrice({
|
|
11
|
+
y,
|
|
12
|
+
domain,
|
|
13
|
+
maxHeight
|
|
14
|
+
}) {
|
|
15
|
+
'worklet';
|
|
16
|
+
|
|
17
|
+
if (y === -1) return -1;
|
|
18
|
+
return (0, _reactNativeReanimated.interpolate)(y, [0, maxHeight], domain.reverse(), _reactNativeReanimated.Extrapolate.CLAMP);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=getPrice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["getPrice.ts"],"names":["getPrice","y","domain","maxHeight","reverse","Extrapolate","CLAMP"],"mappings":";;;;;;;AAAA;;AAIO,SAASA,QAAT,CAAkB;AACvBC,EAAAA,CADuB;AAEvBC,EAAAA,MAFuB;AAGvBC,EAAAA;AAHuB,CAAlB,EAQJ;AACD;;AACA,MAAIF,CAAC,KAAK,CAAC,CAAX,EAAc,OAAO,CAAC,CAAR;AACd,SAAO,wCAAYA,CAAZ,EAAe,CAAC,CAAD,EAAIE,SAAJ,CAAf,EAA+BD,MAAM,CAACE,OAAP,EAA/B,EAAiDC,mCAAYC,KAA7D,CAAP;AACD","sourcesContent":["import { interpolate, Extrapolate } from 'react-native-reanimated';\n\nimport type { TDomain } from '../types';\n\nexport function getPrice({\n y,\n domain,\n maxHeight,\n}: {\n y: number;\n domain: TDomain;\n maxHeight: number;\n}) {\n 'worklet';\n if (y === -1) return -1;\n return interpolate(y, [0, maxHeight], domain.reverse(), Extrapolate.CLAMP);\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getY = getY;
|
|
7
|
+
|
|
8
|
+
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
+
|
|
10
|
+
function getY({
|
|
11
|
+
value,
|
|
12
|
+
domain,
|
|
13
|
+
maxHeight
|
|
14
|
+
}) {
|
|
15
|
+
'worklet';
|
|
16
|
+
|
|
17
|
+
return (0, _reactNativeReanimated.interpolate)(value, domain, [maxHeight, 0], _reactNativeReanimated.Extrapolate.CLAMP);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=getY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["getY.ts"],"names":["getY","value","domain","maxHeight","Extrapolate","CLAMP"],"mappings":";;;;;;;AAAA;;AAIO,SAASA,IAAT,CAAc;AACnBC,EAAAA,KADmB;AAEnBC,EAAAA,MAFmB;AAGnBC,EAAAA;AAHmB,CAAd,EAQJ;AACD;;AACA,SAAO,wCAAYF,KAAZ,EAAmBC,MAAnB,EAA2B,CAACC,SAAD,EAAY,CAAZ,CAA3B,EAA2CC,mCAAYC,KAAvD,CAAP;AACD","sourcesContent":["import { interpolate, Extrapolate } from 'react-native-reanimated';\n\nimport type { TDomain } from '../types';\n\nexport function getY({\n value,\n domain,\n maxHeight,\n}: {\n value: number;\n domain: TDomain;\n maxHeight: number;\n}) {\n 'worklet';\n return interpolate(value, domain, [maxHeight, 0], Extrapolate.CLAMP);\n}\n"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _getDomain = require("./getDomain");
|
|
8
|
+
|
|
9
|
+
Object.keys(_getDomain).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _getDomain[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _getDomain[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
var _getHeight = require("./getHeight");
|
|
21
|
+
|
|
22
|
+
Object.keys(_getHeight).forEach(function (key) {
|
|
23
|
+
if (key === "default" || key === "__esModule") return;
|
|
24
|
+
if (key in exports && exports[key] === _getHeight[key]) return;
|
|
25
|
+
Object.defineProperty(exports, key, {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _getHeight[key];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
var _getPrice = require("./getPrice");
|
|
34
|
+
|
|
35
|
+
Object.keys(_getPrice).forEach(function (key) {
|
|
36
|
+
if (key === "default" || key === "__esModule") return;
|
|
37
|
+
if (key in exports && exports[key] === _getPrice[key]) return;
|
|
38
|
+
Object.defineProperty(exports, key, {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function () {
|
|
41
|
+
return _getPrice[key];
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
var _getY = require("./getY");
|
|
47
|
+
|
|
48
|
+
Object.keys(_getY).forEach(function (key) {
|
|
49
|
+
if (key === "default" || key === "__esModule") return;
|
|
50
|
+
if (key in exports && exports[key] === _getY[key]) return;
|
|
51
|
+
Object.defineProperty(exports, key, {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function () {
|
|
54
|
+
return _getY[key];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './getDomain';\nexport * from './getHeight';\nexport * from './getPrice';\nexport * from './getY';\n"]}
|
|
@@ -8,6 +8,8 @@ exports.LineChartDimensionsContext = void 0;
|
|
|
8
8
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
|
|
11
|
+
var d3Shape = _interopRequireWildcard(require("d3-shape"));
|
|
12
|
+
|
|
11
13
|
var _reactNative = require("react-native");
|
|
12
14
|
|
|
13
15
|
var _Context = require("./Context");
|
|
@@ -27,6 +29,7 @@ const LineChartDimensionsContext = /*#__PURE__*/React.createContext({
|
|
|
27
29
|
height: 0,
|
|
28
30
|
path: '',
|
|
29
31
|
area: '',
|
|
32
|
+
shape: d3Shape.curveBumpX,
|
|
30
33
|
gutter: 0,
|
|
31
34
|
pathWidth: 0
|
|
32
35
|
});
|
|
@@ -36,12 +39,14 @@ const {
|
|
|
36
39
|
width: screenWidth
|
|
37
40
|
} = _reactNative.Dimensions.get('window');
|
|
38
41
|
|
|
42
|
+
LineChart.displayName = 'LineChart';
|
|
43
|
+
|
|
39
44
|
function LineChart({
|
|
40
45
|
children,
|
|
41
46
|
yGutter = 16,
|
|
42
47
|
width = screenWidth,
|
|
43
48
|
height = screenWidth,
|
|
44
|
-
shape,
|
|
49
|
+
shape = d3Shape.curveBumpX,
|
|
45
50
|
id,
|
|
46
51
|
absolute,
|
|
47
52
|
...props
|
|
@@ -98,8 +103,9 @@ function LineChart({
|
|
|
98
103
|
path,
|
|
99
104
|
width,
|
|
100
105
|
height,
|
|
101
|
-
pathWidth
|
|
102
|
-
|
|
106
|
+
pathWidth,
|
|
107
|
+
shape
|
|
108
|
+
}), [yGutter, area, path, width, height, pathWidth, shape]);
|
|
103
109
|
return /*#__PURE__*/React.createElement(_Data.LineChartIdProvider, {
|
|
104
110
|
id: id
|
|
105
111
|
}, /*#__PURE__*/React.createElement(LineChartDimensionsContext.Provider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Chart.tsx"],"names":["LineChartDimensionsContext","React","createContext","width","height","path","area","gutter","pathWidth","screenWidth","Dimensions","get","LineChart","
|
|
1
|
+
{"version":3,"sources":["Chart.tsx"],"names":["LineChartDimensionsContext","React","createContext","width","height","path","area","shape","d3Shape","curveBumpX","gutter","pathWidth","screenWidth","Dimensions","get","LineChart","displayName","children","yGutter","id","absolute","props","yDomain","xLength","useContext","LineChartContext","data","useMemo","allowedWidth","length","contextValue","styles","style","StyleSheet","create","position"],"mappings":"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","sourcesContent":["import * as React from 'react';\n// @ts-ignore\nimport * as d3Shape from 'd3-shape';\nimport { Dimensions, StyleSheet, View, ViewProps } from 'react-native';\nimport { LineChartContext } from './Context';\nimport { LineChartIdProvider, useLineChartData } from './Data';\n\nimport { getArea, getPath } from './utils';\n\nexport const LineChartDimensionsContext = React.createContext({\n width: 0,\n height: 0,\n path: '',\n area: '',\n shape: d3Shape.curveBumpX,\n gutter: 0,\n pathWidth: 0,\n});\n\ntype LineChartProps = ViewProps & {\n children: React.ReactNode;\n yGutter?: number;\n width?: number;\n height?: number;\n shape?: unknown;\n /**\n * If your `LineChart.Provider` uses a dictionary with multiple IDs for multiple paths, then this field is required.\n */\n id?: string;\n absolute?: boolean;\n};\n\nconst { width: screenWidth } = Dimensions.get('window');\n\nLineChart.displayName = 'LineChart';\n\nexport function LineChart({\n children,\n yGutter = 16,\n width = screenWidth,\n height = screenWidth,\n shape = d3Shape.curveBumpX,\n id,\n absolute,\n ...props\n}: LineChartProps) {\n const { yDomain, xLength } = React.useContext(LineChartContext);\n const { data } = useLineChartData({\n id,\n });\n\n const pathWidth = React.useMemo(() => {\n let allowedWidth = width;\n if (xLength > data.length) {\n allowedWidth = (width * data.length) / xLength;\n }\n return allowedWidth;\n }, [data.length, width, xLength]);\n\n const path = React.useMemo(() => {\n if (data && data.length > 0) {\n return getPath({\n data,\n width: pathWidth,\n height,\n gutter: yGutter,\n shape,\n yDomain,\n });\n }\n return '';\n }, [data, pathWidth, height, yGutter, shape, yDomain]);\n\n const area = React.useMemo(() => {\n if (data && data.length > 0) {\n return getArea({\n data,\n width: pathWidth,\n height,\n gutter: yGutter,\n shape,\n yDomain,\n });\n }\n return '';\n }, [data, pathWidth, height, yGutter, shape, yDomain]);\n\n const contextValue = React.useMemo(\n () => ({\n gutter: yGutter,\n area,\n path,\n width,\n height,\n pathWidth,\n shape,\n }),\n [yGutter, area, path, width, height, pathWidth, shape]\n );\n\n return (\n <LineChartIdProvider id={id}>\n <LineChartDimensionsContext.Provider value={contextValue}>\n <View {...props} style={[absolute && styles.absolute, props.style]}>\n {children}\n </View>\n </LineChartDimensionsContext.Provider>\n </LineChartIdProvider>\n );\n}\n\nconst styles = StyleSheet.create({\n absolute: {\n position: 'absolute',\n },\n});\n"]}
|
|
@@ -14,36 +14,50 @@ var _reactNativeSvg = require("react-native-svg");
|
|
|
14
14
|
|
|
15
15
|
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
16
16
|
|
|
17
|
+
var _reactKeyedFlattenChildren = _interopRequireDefault(require("react-keyed-flatten-children"));
|
|
18
|
+
|
|
17
19
|
var _Chart = require("./Chart");
|
|
18
20
|
|
|
19
21
|
var _Path = require("./Path");
|
|
20
22
|
|
|
21
23
|
var _useLineChart = require("./useLineChart");
|
|
22
24
|
|
|
25
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
+
|
|
23
27
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
24
28
|
|
|
25
29
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
26
30
|
|
|
27
31
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
28
32
|
|
|
33
|
+
const BACKGROUND_COMPONENTS = ['LineChartHighlight', 'LineChartHorizontalLine', 'LineChartGradient', 'LineChartDot'];
|
|
34
|
+
const FOREGROUND_COMPONENTS = ['LineChartHighlight', 'LineChartDot'];
|
|
35
|
+
|
|
29
36
|
const AnimatedSVG = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeSvg.Svg);
|
|
30
37
|
|
|
31
38
|
const LineChartPathContext = /*#__PURE__*/React.createContext({
|
|
32
39
|
color: '',
|
|
40
|
+
isInactive: false,
|
|
33
41
|
isTransitionEnabled: true
|
|
34
42
|
});
|
|
35
43
|
exports.LineChartPathContext = LineChartPathContext;
|
|
44
|
+
LineChartPathWrapper.displayName = 'LineChartPathWrapper';
|
|
36
45
|
|
|
37
46
|
function LineChartPathWrapper({
|
|
38
47
|
animationDuration = 300,
|
|
39
48
|
animationProps = {},
|
|
40
49
|
children,
|
|
41
50
|
color = 'black',
|
|
51
|
+
inactiveColor,
|
|
42
52
|
width: strokeWidth = 3,
|
|
53
|
+
widthOffset = 20,
|
|
43
54
|
pathProps = {},
|
|
44
|
-
showInactivePath = true
|
|
55
|
+
showInactivePath = true,
|
|
56
|
+
animateOnMount,
|
|
57
|
+
mountAnimationDuration = animationDuration,
|
|
58
|
+
mountAnimationProps = animationProps
|
|
45
59
|
}) {
|
|
46
|
-
var _pathProps$isTransiti;
|
|
60
|
+
var _pathProps$isTransiti, _pathProps$isTransiti2;
|
|
47
61
|
|
|
48
62
|
const {
|
|
49
63
|
height,
|
|
@@ -53,23 +67,59 @@ function LineChartPathWrapper({
|
|
|
53
67
|
const {
|
|
54
68
|
currentX,
|
|
55
69
|
isActive
|
|
56
|
-
} = (0, _useLineChart.useLineChart)();
|
|
57
|
-
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
70
|
+
} = (0, _useLineChart.useLineChart)();
|
|
71
|
+
const isMounted = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
72
|
+
const hasMountedAnimation = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
73
|
+
React.useEffect(() => {
|
|
74
|
+
isMounted.value = true; // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
75
|
+
}, []); ////////////////////////////////////////////////
|
|
76
|
+
|
|
77
|
+
const svgProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
|
|
78
|
+
const shouldAnimateOnMount = animateOnMount === 'foreground';
|
|
79
|
+
const inactiveWidth = !isMounted.value && shouldAnimateOnMount ? 0 : pathWidth;
|
|
80
|
+
const duration = shouldAnimateOnMount && !hasMountedAnimation.value ? mountAnimationDuration : animationDuration;
|
|
81
|
+
const props = shouldAnimateOnMount && !hasMountedAnimation.value ? mountAnimationProps : animationProps;
|
|
82
|
+
return {
|
|
83
|
+
width: isActive.value ? // on Web, <svg /> elements don't support negative widths
|
|
84
|
+
// https://github.com/coinjar/react-native-wagmi-charts/issues/24#issuecomment-955789904
|
|
85
|
+
Math.max(currentX.value, 0) : (0, _reactNativeReanimated.withTiming)(inactiveWidth + widthOffset, Object.assign({
|
|
86
|
+
duration
|
|
87
|
+
}, props), () => {
|
|
88
|
+
hasMountedAnimation.value = true;
|
|
89
|
+
})
|
|
90
|
+
};
|
|
91
|
+
});
|
|
65
92
|
const viewSize = React.useMemo(() => ({
|
|
66
93
|
width,
|
|
67
94
|
height
|
|
68
95
|
}), [width, height]); ////////////////////////////////////////////////
|
|
69
96
|
|
|
70
|
-
|
|
97
|
+
let backgroundChildren;
|
|
98
|
+
let foregroundChildren;
|
|
99
|
+
|
|
100
|
+
if (children) {
|
|
101
|
+
const iterableChildren = (0, _reactKeyedFlattenChildren.default)(children);
|
|
102
|
+
backgroundChildren = iterableChildren.filter(child => {
|
|
103
|
+
var _child$type;
|
|
104
|
+
|
|
105
|
+
return (// @ts-ignore
|
|
106
|
+
BACKGROUND_COMPONENTS.includes(child === null || child === void 0 ? void 0 : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName)
|
|
107
|
+
);
|
|
108
|
+
});
|
|
109
|
+
foregroundChildren = iterableChildren.filter(child => {
|
|
110
|
+
var _child$type2;
|
|
111
|
+
|
|
112
|
+
return (// @ts-ignore
|
|
113
|
+
FOREGROUND_COMPONENTS.includes(child === null || child === void 0 ? void 0 : (_child$type2 = child.type) === null || _child$type2 === void 0 ? void 0 : _child$type2.displayName)
|
|
114
|
+
);
|
|
115
|
+
});
|
|
116
|
+
} ////////////////////////////////////////////////
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(LineChartPathContext.Provider, {
|
|
71
120
|
value: {
|
|
72
121
|
color,
|
|
122
|
+
isInactive: showInactivePath,
|
|
73
123
|
isTransitionEnabled: (_pathProps$isTransiti = pathProps.isTransitionEnabled) !== null && _pathProps$isTransiti !== void 0 ? _pathProps$isTransiti : true
|
|
74
124
|
}
|
|
75
125
|
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
@@ -77,11 +127,17 @@ function LineChartPathWrapper({
|
|
|
77
127
|
}, /*#__PURE__*/React.createElement(_reactNativeSvg.Svg, {
|
|
78
128
|
width: width,
|
|
79
129
|
height: height
|
|
80
|
-
},
|
|
130
|
+
}, /*#__PURE__*/React.createElement(_Path.LineChartPath, _extends({
|
|
81
131
|
color: color,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}, pathProps)))), /*#__PURE__*/React.createElement(
|
|
132
|
+
inactiveColor: inactiveColor,
|
|
133
|
+
width: strokeWidth
|
|
134
|
+
}, pathProps)), backgroundChildren))), /*#__PURE__*/React.createElement(LineChartPathContext.Provider, {
|
|
135
|
+
value: {
|
|
136
|
+
color,
|
|
137
|
+
isInactive: false,
|
|
138
|
+
isTransitionEnabled: (_pathProps$isTransiti2 = pathProps.isTransitionEnabled) !== null && _pathProps$isTransiti2 !== void 0 ? _pathProps$isTransiti2 : true
|
|
139
|
+
}
|
|
140
|
+
}, /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
85
141
|
style: _reactNative.StyleSheet.absoluteFill
|
|
86
142
|
}, /*#__PURE__*/React.createElement(AnimatedSVG, {
|
|
87
143
|
animatedProps: svgProps,
|
|
@@ -89,6 +145,6 @@ function LineChartPathWrapper({
|
|
|
89
145
|
}, /*#__PURE__*/React.createElement(_Path.LineChartPath, _extends({
|
|
90
146
|
color: color,
|
|
91
147
|
width: strokeWidth
|
|
92
|
-
}, pathProps)))));
|
|
148
|
+
}, pathProps)), foregroundChildren))));
|
|
93
149
|
}
|
|
94
150
|
//# sourceMappingURL=ChartPath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ChartPath.tsx"],"names":["AnimatedSVG","Animated","createAnimatedComponent","Svg","LineChartPathContext","React","createContext","color","isTransitionEnabled","LineChartPathWrapper","animationDuration","animationProps","children","width","strokeWidth","pathProps","showInactivePath","height","pathWidth","useContext","LineChartDimensionsContext","currentX","isActive","
|
|
1
|
+
{"version":3,"sources":["ChartPath.tsx"],"names":["BACKGROUND_COMPONENTS","FOREGROUND_COMPONENTS","AnimatedSVG","Animated","createAnimatedComponent","Svg","LineChartPathContext","React","createContext","color","isInactive","isTransitionEnabled","LineChartPathWrapper","displayName","animationDuration","animationProps","children","inactiveColor","width","strokeWidth","widthOffset","pathProps","showInactivePath","animateOnMount","mountAnimationDuration","mountAnimationProps","height","pathWidth","useContext","LineChartDimensionsContext","currentX","isActive","isMounted","hasMountedAnimation","useEffect","value","svgProps","shouldAnimateOnMount","inactiveWidth","duration","props","Math","max","Object","assign","viewSize","useMemo","backgroundChildren","foregroundChildren","iterableChildren","filter","child","includes","type","StyleSheet","absoluteFill"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { Svg } from 'react-native-svg';\nimport Animated, {\n useAnimatedProps,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport flattenChildren from 'react-keyed-flatten-children';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { LineChartPath, LineChartPathProps } from './Path';\nimport { useLineChart } from './useLineChart';\n\nconst BACKGROUND_COMPONENTS = [\n 'LineChartHighlight',\n 'LineChartHorizontalLine',\n 'LineChartGradient',\n 'LineChartDot',\n];\nconst FOREGROUND_COMPONENTS = ['LineChartHighlight', 'LineChartDot'];\n\nconst AnimatedSVG = Animated.createAnimatedComponent(Svg);\n\nexport const LineChartPathContext = React.createContext({\n color: '',\n isInactive: false,\n isTransitionEnabled: true,\n});\n\ntype LineChartPathWrapperProps = {\n animationDuration?: number;\n animationProps?: Partial<Animated.WithTimingConfig>;\n children?: React.ReactNode;\n color?: string;\n inactiveColor?: string;\n width?: number;\n widthOffset?: number;\n pathProps?: Partial<LineChartPathProps>;\n showInactivePath?: boolean;\n animateOnMount?: 'foreground';\n mountAnimationDuration?: number;\n mountAnimationProps?: Partial<Animated.WithTimingConfig>;\n};\n\nLineChartPathWrapper.displayName = 'LineChartPathWrapper';\n\nexport function LineChartPathWrapper({\n animationDuration = 300,\n animationProps = {},\n children,\n color = 'black',\n inactiveColor,\n width: strokeWidth = 3,\n widthOffset = 20,\n pathProps = {},\n showInactivePath = true,\n animateOnMount,\n mountAnimationDuration = animationDuration,\n mountAnimationProps = animationProps,\n}: LineChartPathWrapperProps) {\n const { height, pathWidth, width } = React.useContext(\n LineChartDimensionsContext\n );\n const { currentX, isActive } = useLineChart();\n const isMounted = useSharedValue(false);\n const hasMountedAnimation = useSharedValue(false);\n\n React.useEffect(() => {\n isMounted.value = true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n ////////////////////////////////////////////////\n\n const svgProps = useAnimatedProps(() => {\n const shouldAnimateOnMount = animateOnMount === 'foreground';\n const inactiveWidth =\n !isMounted.value && shouldAnimateOnMount ? 0 : pathWidth;\n\n const duration =\n shouldAnimateOnMount && !hasMountedAnimation.value\n ? mountAnimationDuration\n : animationDuration;\n const props =\n shouldAnimateOnMount && !hasMountedAnimation.value\n ? mountAnimationProps\n : animationProps;\n\n return {\n width: isActive.value\n ? // on Web, <svg /> elements don't support negative widths\n // https://github.com/coinjar/react-native-wagmi-charts/issues/24#issuecomment-955789904\n Math.max(currentX.value, 0)\n : withTiming(\n inactiveWidth + widthOffset,\n Object.assign({ duration }, props),\n () => {\n hasMountedAnimation.value = true;\n }\n ),\n };\n });\n\n const viewSize = React.useMemo(() => ({ width, height }), [width, height]);\n\n ////////////////////////////////////////////////\n\n let backgroundChildren;\n let foregroundChildren;\n if (children) {\n const iterableChildren = flattenChildren(children);\n backgroundChildren = iterableChildren.filter((child) =>\n // @ts-ignore\n BACKGROUND_COMPONENTS.includes(child?.type?.displayName)\n );\n foregroundChildren = iterableChildren.filter((child) =>\n // @ts-ignore\n FOREGROUND_COMPONENTS.includes(child?.type?.displayName)\n );\n }\n\n ////////////////////////////////////////////////\n\n return (\n <>\n <LineChartPathContext.Provider\n value={{\n color,\n isInactive: showInactivePath,\n isTransitionEnabled: pathProps.isTransitionEnabled ?? true,\n }}\n >\n <View style={viewSize}>\n <Svg width={width} height={height}>\n <LineChartPath\n color={color}\n inactiveColor={inactiveColor}\n width={strokeWidth}\n {...pathProps}\n />\n {backgroundChildren}\n </Svg>\n </View>\n </LineChartPathContext.Provider>\n <LineChartPathContext.Provider\n value={{\n color,\n isInactive: false,\n isTransitionEnabled: pathProps.isTransitionEnabled ?? true,\n }}\n >\n <View style={StyleSheet.absoluteFill}>\n <AnimatedSVG animatedProps={svgProps} height={height}>\n <LineChartPath color={color} width={strokeWidth} {...pathProps} />\n {foregroundChildren}\n </AnimatedSVG>\n </View>\n </LineChartPathContext.Provider>\n </>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Context.tsx"],"names":["LineChartContext","React","createContext","currentX","value","currentIndex","domain","isActive","yDomain","min","max","xLength","LineChartProvider","children","data","yRange","onCurrentIndexChange","useMemo","Array","isArray","Object","values","contextValue","map","Math","length","x","prevX"],"mappings":";;;;;;;;AAAA;;AACA;;AAMA;;AAGA;;;;;;AAEO,MAAMA,gBAAgB,gBAAGC,KAAK,CAACC,aAAN,CAAuC;AACrEC,EAAAA,QAAQ,EAAE;AAAEC,IAAAA,KAAK,EAAE,CAAC;AAAV,GAD2D;AAErEC,EAAAA,YAAY,EAAE;AAAED,IAAAA,KAAK,EAAE,CAAC;AAAV,GAFuD;AAGrEE,EAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,CAH6D;AAIrEC,EAAAA,QAAQ,EAAE;AAAEH,IAAAA,KAAK,EAAE;AAAT,GAJ2D;AAKrEI,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE,CADE;AAEPC,IAAAA,GAAG,EAAE;AAFE,GAL4D;AASrEC,EAAAA,OAAO,EAAE;AAT4D,CAAvC,CAAzB
|
|
1
|
+
{"version":3,"sources":["Context.tsx"],"names":["LineChartContext","React","createContext","currentX","value","currentIndex","domain","isActive","yDomain","min","max","xLength","LineChartProvider","displayName","children","data","yRange","onCurrentIndexChange","useMemo","Array","isArray","Object","values","contextValue","map","Math","length","x","prevX"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {\n runOnJS,\n useAnimatedReaction,\n useSharedValue,\n} from 'react-native-reanimated';\nimport type { TLineChartDataProp } from './types';\nimport { LineChartDataProvider } from './Data';\n\nimport type { TLineChartContext, YRangeProp } from './types';\nimport { getDomain, lineChartDataPropToArray } from './utils';\n\nexport const LineChartContext = React.createContext<TLineChartContext>({\n currentX: { value: -1 },\n currentIndex: { value: -1 },\n domain: [0, 0],\n isActive: { value: false },\n yDomain: {\n min: 0,\n max: 0,\n },\n xLength: 0,\n});\n\ntype LineChartProviderProps = {\n children: React.ReactNode;\n data: TLineChartDataProp;\n yRange?: YRangeProp;\n onCurrentIndexChange?: (x: number) => void;\n xLength?: number;\n};\n\nLineChartProvider.displayName = 'LineChartProvider';\n\nexport function LineChartProvider({\n children,\n data = [],\n yRange,\n onCurrentIndexChange,\n xLength,\n}: LineChartProviderProps) {\n const currentX = useSharedValue(-1);\n const currentIndex = useSharedValue(-1);\n const isActive = useSharedValue(false);\n\n const domain = React.useMemo(\n () => getDomain(Array.isArray(data) ? data : Object.values(data)[0]),\n [data]\n );\n\n const contextValue = React.useMemo<TLineChartContext>(() => {\n const values = lineChartDataPropToArray(data).map(({ value }) => value);\n\n return {\n currentX,\n currentIndex,\n isActive,\n domain,\n yDomain: {\n min: yRange?.min ?? Math.min(...values),\n max: yRange?.max ?? Math.max(...values),\n },\n xLength:\n xLength ?? (Array.isArray(data) ? data : Object.values(data)[0]).length,\n };\n }, [\n currentIndex,\n currentX,\n data,\n domain,\n isActive,\n yRange?.max,\n yRange?.min,\n xLength,\n ]);\n\n useAnimatedReaction(\n () => currentIndex.value,\n (x, prevX) => {\n if (x !== -1 && x !== prevX && onCurrentIndexChange) {\n runOnJS(onCurrentIndexChange)(x);\n }\n }\n );\n\n return (\n <LineChartDataProvider data={data}>\n <LineChartContext.Provider value={contextValue}>\n {children}\n </LineChartContext.Provider>\n </LineChartDataProvider>\n );\n}\n"]}
|