@obitrain/charts 0.10.0 → 0.10.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.
Files changed (148) hide show
  1. package/README.md +79 -0
  2. package/lib/commonjs/Charts/BottomAxis/AxisLine.js +5 -5
  3. package/lib/commonjs/Charts/BottomAxis/AxisLine.js.map +1 -1
  4. package/lib/commonjs/Charts/BottomAxis/BottomAxis.js +3 -3
  5. package/lib/commonjs/Charts/BottomAxis/BottomAxis.js.map +1 -1
  6. package/lib/commonjs/Charts/BottomAxis/Tick.js +2 -2
  7. package/lib/commonjs/Charts/BottomAxis/Tick.js.map +1 -1
  8. package/lib/commonjs/Charts/BottomAxis/index.js +3 -3
  9. package/lib/commonjs/Charts/Cursor.js +5 -6
  10. package/lib/commonjs/Charts/Cursor.js.map +1 -1
  11. package/lib/commonjs/Charts/Linechart/index.js +2 -0
  12. package/lib/commonjs/Charts/Linechart/index.js.map +1 -1
  13. package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js +4 -11
  14. package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js.map +1 -1
  15. package/lib/commonjs/Charts/ZoomableLinechart/index.js +1 -1
  16. package/lib/commonjs/Charts/gesture.js +28 -34
  17. package/lib/commonjs/Charts/gesture.js.map +1 -1
  18. package/lib/commonjs/Charts/graphUtils.js +25 -22
  19. package/lib/commonjs/Charts/graphUtils.js.map +1 -1
  20. package/lib/commonjs/Charts/index.js +13 -13
  21. package/lib/commonjs/Charts/index.js.map +1 -1
  22. package/lib/commonjs/Charts/maths.js.map +1 -1
  23. package/lib/commonjs/dateUtils.js +11 -15
  24. package/lib/commonjs/dateUtils.js.map +1 -1
  25. package/lib/commonjs/index.js +6 -6
  26. package/lib/commonjs/index.js.map +1 -1
  27. package/lib/module/Charts/BottomAxis/AxisLine.js +5 -5
  28. package/lib/module/Charts/BottomAxis/AxisLine.js.map +1 -1
  29. package/lib/module/Charts/BottomAxis/BottomAxis.js +3 -3
  30. package/lib/module/Charts/BottomAxis/BottomAxis.js.map +1 -1
  31. package/lib/module/Charts/BottomAxis/Tick.js +2 -2
  32. package/lib/module/Charts/BottomAxis/Tick.js.map +1 -1
  33. package/lib/module/Charts/BottomAxis/index.js +3 -3
  34. package/lib/module/Charts/BottomAxis/index.js.map +1 -1
  35. package/lib/module/Charts/Cursor.js +5 -6
  36. package/lib/module/Charts/Cursor.js.map +1 -1
  37. package/lib/module/Charts/Linechart/index.js +2 -0
  38. package/lib/module/Charts/Linechart/index.js.map +1 -1
  39. package/lib/module/Charts/ZoomableLinechart/ScalablePath.js +4 -11
  40. package/lib/module/Charts/ZoomableLinechart/ScalablePath.js.map +1 -1
  41. package/lib/module/Charts/ZoomableLinechart/index.js +1 -1
  42. package/lib/module/Charts/ZoomableLinechart/index.js.map +1 -1
  43. package/lib/module/Charts/gesture.js +29 -35
  44. package/lib/module/Charts/gesture.js.map +1 -1
  45. package/lib/module/Charts/graphUtils.js +26 -22
  46. package/lib/module/Charts/graphUtils.js.map +1 -1
  47. package/lib/module/Charts/index.js +7 -7
  48. package/lib/module/Charts/index.js.map +1 -1
  49. package/lib/module/Charts/maths.js.map +1 -1
  50. package/lib/module/dateUtils.js +10 -14
  51. package/lib/module/dateUtils.js.map +1 -1
  52. package/lib/module/index.js +3 -3
  53. package/lib/module/index.js.map +1 -1
  54. package/lib/module/package.json +1 -0
  55. package/lib/typescript/commonjs/package.json +1 -0
  56. package/lib/typescript/commonjs/src/Charts/BottomAxis/AxisLine.d.ts.map +1 -0
  57. package/lib/typescript/commonjs/src/Charts/BottomAxis/BottomAxis.d.ts.map +1 -0
  58. package/lib/typescript/commonjs/src/Charts/BottomAxis/Tick.d.ts.map +1 -0
  59. package/lib/typescript/commonjs/src/Charts/BottomAxis/index.d.ts.map +1 -0
  60. package/lib/typescript/{src → commonjs/src}/Charts/Cursor.d.ts +1 -1
  61. package/lib/typescript/commonjs/src/Charts/Cursor.d.ts.map +1 -0
  62. package/lib/typescript/{src → commonjs/src}/Charts/Linechart/index.d.ts +10 -4
  63. package/lib/typescript/commonjs/src/Charts/Linechart/index.d.ts.map +1 -0
  64. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/ScalablePath.d.ts.map +1 -0
  65. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/index.d.ts.map +1 -0
  66. package/lib/typescript/commonjs/src/Charts/gesture.d.ts.map +1 -0
  67. package/lib/typescript/{src → commonjs/src}/Charts/graphUtils.d.ts +5 -3
  68. package/lib/typescript/commonjs/src/Charts/graphUtils.d.ts.map +1 -0
  69. package/lib/typescript/{src → commonjs/src}/Charts/index.d.ts +4 -3
  70. package/lib/typescript/commonjs/src/Charts/index.d.ts.map +1 -0
  71. package/lib/typescript/{src → commonjs/src}/Charts/maths.d.ts +1 -2
  72. package/lib/typescript/commonjs/src/Charts/maths.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/src/Charts/types.d.ts.map +1 -0
  74. package/lib/typescript/commonjs/src/dateUtils.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  76. package/lib/typescript/commonjs/src/textUtils.d.ts.map +1 -0
  77. package/lib/typescript/module/package.json +1 -0
  78. package/lib/typescript/module/src/Charts/BottomAxis/AxisLine.d.ts +15 -0
  79. package/lib/typescript/module/src/Charts/BottomAxis/AxisLine.d.ts.map +1 -0
  80. package/lib/typescript/module/src/Charts/BottomAxis/BottomAxis.d.ts +17 -0
  81. package/lib/typescript/module/src/Charts/BottomAxis/BottomAxis.d.ts.map +1 -0
  82. package/lib/typescript/module/src/Charts/BottomAxis/Tick.d.ts +14 -0
  83. package/lib/typescript/module/src/Charts/BottomAxis/Tick.d.ts.map +1 -0
  84. package/lib/typescript/module/src/Charts/BottomAxis/index.d.ts +4 -0
  85. package/lib/typescript/module/src/Charts/BottomAxis/index.d.ts.map +1 -0
  86. package/lib/typescript/module/src/Charts/Cursor.d.ts +14 -0
  87. package/lib/typescript/module/src/Charts/Cursor.d.ts.map +1 -0
  88. package/lib/typescript/module/src/Charts/Linechart/index.d.ts +31 -0
  89. package/lib/typescript/module/src/Charts/Linechart/index.d.ts.map +1 -0
  90. package/lib/typescript/module/src/Charts/ZoomableLinechart/ScalablePath.d.ts +14 -0
  91. package/lib/typescript/module/src/Charts/ZoomableLinechart/ScalablePath.d.ts.map +1 -0
  92. package/lib/typescript/module/src/Charts/ZoomableLinechart/index.d.ts +23 -0
  93. package/lib/typescript/module/src/Charts/ZoomableLinechart/index.d.ts.map +1 -0
  94. package/lib/typescript/module/src/Charts/gesture.d.ts +54 -0
  95. package/lib/typescript/module/src/Charts/gesture.d.ts.map +1 -0
  96. package/lib/typescript/module/src/Charts/graphUtils.d.ts +45 -0
  97. package/lib/typescript/module/src/Charts/graphUtils.d.ts.map +1 -0
  98. package/lib/typescript/module/src/Charts/index.d.ts +15 -0
  99. package/lib/typescript/module/src/Charts/index.d.ts.map +1 -0
  100. package/lib/typescript/module/src/Charts/maths.d.ts +18 -0
  101. package/lib/typescript/module/src/Charts/maths.d.ts.map +1 -0
  102. package/lib/typescript/module/src/Charts/types.d.ts +14 -0
  103. package/lib/typescript/module/src/Charts/types.d.ts.map +1 -0
  104. package/lib/typescript/module/src/dateUtils.d.ts +37 -0
  105. package/lib/typescript/module/src/dateUtils.d.ts.map +1 -0
  106. package/lib/typescript/module/src/index.d.ts +5 -0
  107. package/lib/typescript/module/src/index.d.ts.map +1 -0
  108. package/lib/typescript/module/src/textUtils.d.ts +3 -0
  109. package/lib/typescript/module/src/textUtils.d.ts.map +1 -0
  110. package/package.json +53 -41
  111. package/src/Charts/BottomAxis/AxisLine.tsx +4 -4
  112. package/src/Charts/BottomAxis/BottomAxis.tsx +1 -1
  113. package/src/Charts/BottomAxis/Tick.tsx +10 -13
  114. package/src/Charts/Cursor.tsx +15 -16
  115. package/src/Charts/Linechart/index.tsx +8 -4
  116. package/src/Charts/ZoomableLinechart/ScalablePath.tsx +9 -17
  117. package/src/Charts/gesture.ts +40 -39
  118. package/src/Charts/graphUtils.ts +32 -27
  119. package/src/Charts/index.tsx +22 -3
  120. package/src/Charts/maths.ts +5 -3
  121. package/src/dateUtils.ts +9 -16
  122. package/lib/typescript/src/Charts/BottomAxis/AxisLine.d.ts.map +0 -1
  123. package/lib/typescript/src/Charts/BottomAxis/BottomAxis.d.ts.map +0 -1
  124. package/lib/typescript/src/Charts/BottomAxis/Tick.d.ts.map +0 -1
  125. package/lib/typescript/src/Charts/BottomAxis/index.d.ts.map +0 -1
  126. package/lib/typescript/src/Charts/Cursor.d.ts.map +0 -1
  127. package/lib/typescript/src/Charts/Linechart/index.d.ts.map +0 -1
  128. package/lib/typescript/src/Charts/ZoomableLinechart/ScalablePath.d.ts.map +0 -1
  129. package/lib/typescript/src/Charts/ZoomableLinechart/index.d.ts.map +0 -1
  130. package/lib/typescript/src/Charts/gesture.d.ts.map +0 -1
  131. package/lib/typescript/src/Charts/graphUtils.d.ts.map +0 -1
  132. package/lib/typescript/src/Charts/index.d.ts.map +0 -1
  133. package/lib/typescript/src/Charts/maths.d.ts.map +0 -1
  134. package/lib/typescript/src/Charts/types.d.ts.map +0 -1
  135. package/lib/typescript/src/dateUtils.d.ts.map +0 -1
  136. package/lib/typescript/src/index.d.ts.map +0 -1
  137. package/lib/typescript/src/textUtils.d.ts.map +0 -1
  138. /package/lib/typescript/{src → commonjs/src}/Charts/BottomAxis/AxisLine.d.ts +0 -0
  139. /package/lib/typescript/{src → commonjs/src}/Charts/BottomAxis/BottomAxis.d.ts +0 -0
  140. /package/lib/typescript/{src → commonjs/src}/Charts/BottomAxis/Tick.d.ts +0 -0
  141. /package/lib/typescript/{src → commonjs/src}/Charts/BottomAxis/index.d.ts +0 -0
  142. /package/lib/typescript/{src → commonjs/src}/Charts/ZoomableLinechart/ScalablePath.d.ts +0 -0
  143. /package/lib/typescript/{src → commonjs/src}/Charts/ZoomableLinechart/index.d.ts +0 -0
  144. /package/lib/typescript/{src → commonjs/src}/Charts/gesture.d.ts +0 -0
  145. /package/lib/typescript/{src → commonjs/src}/Charts/types.d.ts +0 -0
  146. /package/lib/typescript/{src → commonjs/src}/dateUtils.d.ts +0 -0
  147. /package/lib/typescript/{src → commonjs/src}/index.d.ts +0 -0
  148. /package/lib/typescript/{src → commonjs/src}/textUtils.d.ts +0 -0
package/README.md CHANGED
@@ -30,6 +30,75 @@ yarn add @shopify/react-native-skia react-native-reanimated react-native-worklet
30
30
  The exact ranges live in the `peerDependencies` of `package.json`. Development and tests run on
31
31
  Expo SDK 57 / React Native 0.86 / Node `>= 20.19.4`.
32
32
 
33
+ ## Usage
34
+
35
+ ### Static line chart
36
+
37
+ `buildGraph` converts raw `[x, y][]` data into a `GraphData` (Skia path, data points, d3 scales).
38
+ `LineChart` renders one (`path`) or several (`paths`) paths on a Skia canvas:
39
+
40
+ ```tsx
41
+ import { buildGraph, LineChart } from '@obitrain/charts';
42
+
43
+ const WIDTH = 300;
44
+ const HEIGHT = 140;
45
+
46
+ const data: [number, number][] = [
47
+ [0, 10],
48
+ [1, 25],
49
+ [2, 18],
50
+ [3, 40],
51
+ ];
52
+
53
+ const graph = buildGraph(data, WIDTH, HEIGHT);
54
+
55
+ export function MyChart() {
56
+ return (
57
+ <LineChart
58
+ path={graph.skiaPath}
59
+ width={WIDTH}
60
+ height={HEIGHT}
61
+ color="dodgerblue"
62
+ />
63
+ );
64
+ }
65
+ ```
66
+
67
+ ### Zoomable line chart
68
+
69
+ `useScalableGesture` provides the `scale`, `focalX` and `offsetX` shared values plus the pinch/pan
70
+ gestures to wire into a `GestureDetector`:
71
+
72
+ ```tsx
73
+ import {
74
+ buildGraph,
75
+ useScalableGesture,
76
+ ZoomableLineChart,
77
+ } from '@obitrain/charts';
78
+ import { Gesture, GestureDetector } from 'react-native-gesture-handler';
79
+ import { useSharedValue } from 'react-native-reanimated';
80
+
81
+ export function MyZoomableChart() {
82
+ const graph = buildGraph(data, WIDTH, HEIGHT);
83
+ const path = useSharedValue(graph.skiaPath);
84
+
85
+ const { scale, focalX, offsetX, pinchGesture, panGesture } =
86
+ useScalableGesture({ width: WIDTH });
87
+
88
+ const gesture = Gesture.Simultaneous(pinchGesture, panGesture);
89
+
90
+ return (
91
+ <GestureDetector gesture={gesture}>
92
+ <ZoomableLineChart
93
+ width={WIDTH}
94
+ height={HEIGHT}
95
+ {...{ path, scale, focalX, offsetX }}
96
+ />
97
+ </GestureDetector>
98
+ );
99
+ }
100
+ ```
101
+
33
102
  ## What's inside
34
103
 
35
104
  **Components** — `BottomAxis`, `AxisLine`, `Tick`, `Cursor`, `LineChart`, `ZoomableLineChart`,
@@ -116,6 +185,16 @@ yarn gifs --device "iPhone 17 Pro"
116
185
  Requires Xcode with an iOS simulator, `ffmpeg` and `jq`. The script boots the simulator, freezes the
117
186
  status bar, drives each screen through its deep link and writes `static/<slug>.gif`.
118
187
 
188
+ ## Releasing
189
+
190
+ Releases are automated from conventional commits. Every push to `main` updates a "Release" pull
191
+ request (release-please) with the next version and changelog; merging it tags the release, creates the
192
+ GitHub release and publishes `@obitrain/charts` to npm from CI via trusted publishing, so no npm token
193
+ or one-time password is involved.
194
+
195
+ One-time setup on npmjs.com, under the package's *Settings → Trusted publishing*: add a GitHub Actions
196
+ publisher for `Obitrain/obi-chart` with workflow `release.yml`.
197
+
119
198
  ## Contributing
120
199
 
121
200
  See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
@@ -7,7 +7,7 @@ exports.AxisLine = void 0;
7
7
  var _reactNativeSkia = require("@shopify/react-native-skia");
8
8
  var _reactNative = require("react-native");
9
9
  var _reactNativeReanimated = require("react-native-reanimated");
10
- var _gesture = require("../gesture");
10
+ var _gesture = require("../gesture.js");
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
12
  const AxisLine = function (props) {
13
13
  const {
@@ -22,11 +22,11 @@ const AxisLine = function (props) {
22
22
  const p1 = (0, _reactNativeReanimated.useDerivedValue)(() => {
23
23
  const p1X = (0, _gesture.getPositionWl)(0, focalX.value, scale.value, offsetX.value);
24
24
  return (0, _reactNativeSkia.vec)(p1X, offsetY);
25
- }, []);
25
+ });
26
26
  const p2 = (0, _reactNativeReanimated.useDerivedValue)(() => {
27
- const p1X = (0, _gesture.getPositionWl)(width, focalX.value, scale.value, offsetX.value);
28
- return (0, _reactNativeSkia.vec)(p1X, offsetY);
29
- }, [width]);
27
+ const p2X = (0, _gesture.getPositionWl)(width, focalX.value, scale.value, offsetX.value);
28
+ return (0, _reactNativeSkia.vec)(p2X, offsetY);
29
+ });
30
30
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Line, {
31
31
  p1,
32
32
  p2,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_reactNative","_reactNativeReanimated","_gesture","_jsxRuntime","AxisLine","props","width","focalX","scale","offsetX","offsetY","strokeWidth","StyleSheet","hairlineWidth","color","p1","useDerivedValue","p1X","getPositionWl","value","vec","p2","jsx","Line","exports"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/AxisLine.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAA2C,IAAAI,WAAA,GAAAJ,OAAA;AAY3C,MAAMK,QAA2B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACnD,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,KAAK;IACLC,OAAO;IACPC,OAAO,GAAG,CAAC;IACXC,WAAW,GAAGC,uBAAU,CAACC,aAAa;IACtCC,KAAK,GAAG;EACV,CAAC,GAAGT,KAAK;EACT,MAAMU,EAAE,GAAG,IAAAC,sCAAe,EAAC,MAAM;IAC/B,MAAMC,GAAG,GAAG,IAAAC,sBAAa,EAAC,CAAC,EAAEX,MAAM,CAACY,KAAK,EAAEX,KAAK,CAACW,KAAK,EAAEV,OAAO,CAACU,KAAK,CAAC;IACtE,OAAO,IAAAC,oBAAG,EAACH,GAAG,EAAEP,OAAO,CAAC;EAC1B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMW,EAAE,GAAG,IAAAL,sCAAe,EAAC,MAAM;IAC/B,MAAMC,GAAG,GAAG,IAAAC,sBAAa,EAACZ,KAAK,EAAEC,MAAM,CAACY,KAAK,EAAEX,KAAK,CAACW,KAAK,EAAEV,OAAO,CAACU,KAAK,CAAC;IAC1E,OAAO,IAAAC,oBAAG,EAACH,GAAG,EAAEP,OAAO,CAAC;EAC1B,CAAC,EAAE,CAACJ,KAAK,CAAC,CAAC;EAEX,oBAAO,IAAAH,WAAA,CAAAmB,GAAA,EAACxB,gBAAA,CAAAyB,IAAI;IAAOR,EAAE;IAAEM,EAAE;IAAEP,KAAK;IAAEH;EAAW,CAAK,CAAC;AACrD,CAAC;AAACa,OAAA,CAAApB,QAAA,GAAAA,QAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_reactNative","_reactNativeReanimated","_gesture","_jsxRuntime","AxisLine","props","width","focalX","scale","offsetX","offsetY","strokeWidth","StyleSheet","hairlineWidth","color","p1","useDerivedValue","p1X","getPositionWl","value","vec","p2","p2X","jsx","Line","exports"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/AxisLine.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAA2C,IAAAI,WAAA,GAAAJ,OAAA;AAY3C,MAAMK,QAA2B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACnD,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,KAAK;IACLC,OAAO;IACPC,OAAO,GAAG,CAAC;IACXC,WAAW,GAAGC,uBAAU,CAACC,aAAa;IACtCC,KAAK,GAAG;EACV,CAAC,GAAGT,KAAK;EACT,MAAMU,EAAE,GAAG,IAAAC,sCAAe,EAAC,MAAM;IAC/B,MAAMC,GAAG,GAAG,IAAAC,sBAAa,EAAC,CAAC,EAAEX,MAAM,CAACY,KAAK,EAAEX,KAAK,CAACW,KAAK,EAAEV,OAAO,CAACU,KAAK,CAAC;IACtE,OAAO,IAAAC,oBAAG,EAACH,GAAG,EAAEP,OAAO,CAAC;EAC1B,CAAC,CAAC;EAEF,MAAMW,EAAE,GAAG,IAAAL,sCAAe,EAAC,MAAM;IAC/B,MAAMM,GAAG,GAAG,IAAAJ,sBAAa,EAACZ,KAAK,EAAEC,MAAM,CAACY,KAAK,EAAEX,KAAK,CAACW,KAAK,EAAEV,OAAO,CAACU,KAAK,CAAC;IAC1E,OAAO,IAAAC,oBAAG,EAACE,GAAG,EAAEZ,OAAO,CAAC;EAC1B,CAAC,CAAC;EAEF,oBAAO,IAAAP,WAAA,CAAAoB,GAAA,EAACzB,gBAAA,CAAA0B,IAAI;IAAOT,EAAE;IAAEM,EAAE;IAAEP,KAAK;IAAEH;EAAW,CAAK,CAAC;AACrD,CAAC;AAACc,OAAA,CAAArB,QAAA,GAAAA,QAAA","ignoreList":[]}
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.BottomAxis = void 0;
7
7
  var _reactNativeSkia = require("@shopify/react-native-skia");
8
- var _AxisLine = require("./AxisLine");
9
- var _Tick = require("./Tick");
8
+ var _AxisLine = require("./AxisLine.js");
9
+ var _Tick = require("./Tick.js");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  // ChartUtilsScreen.tsx
12
12
 
@@ -21,7 +21,7 @@ const BottomAxis = function (props) {
21
21
  font
22
22
  } = props;
23
23
  const offsetY = props.offsetY ?? 0;
24
- const tickInterval = width / (labels.length - 1);
24
+ const tickInterval = labels.length > 1 ? width / (labels.length - 1) : 0;
25
25
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Canvas, {
26
26
  style: style,
27
27
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_AxisLine.AxisLine, {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_AxisLine","_Tick","_jsxRuntime","BottomAxis","props","labels","scale","focalX","offsetX","style","width","font","offsetY","tickInterval","length","jsxs","Canvas","children","jsx","AxisLine","map","_label","i","Tick","label","initPosition","exports"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/BottomAxis.tsx"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAIA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA8B,IAAAG,WAAA,GAAAH,OAAA;AAN9B;;AAoBA,MAAMI,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,oBACE,IAAAZ,WAAA,CAAAa,IAAA,EAACjB,gBAAA,CAAAkB,MAAM;IAACP,KAAK,EAAEA,KAAM;IAAAQ,QAAA,gBACnB,IAAAf,WAAA,CAAAgB,GAAA,EAAClB,SAAA,CAAAmB,QAAQ;MAAOT,KAAK;MAAEE,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEE;IAAO,CAAK,CAAC,EAC3DH,MAAM,CAACe,GAAG,CAAC,CAACC,MAAM,EAAEC,CAAC,kBACpB,IAAApB,WAAA,CAAAgB,GAAA,EAACjB,KAAA,CAAAsB,IAAI;MAEHC,KAAK,EAAEH,MAAO;MACdI,YAAY,EAAEZ,YAAY,GAAGS,CAAE;MACzBd,OAAO;MAAEI,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEK;IAAI,GAHtCW,CAIN,CACF,CAAC;EAAA,CACI,CAAC;AAEb,CAAC;AAACI,OAAA,CAAAvB,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_AxisLine","_Tick","_jsxRuntime","BottomAxis","props","labels","scale","focalX","offsetX","style","width","font","offsetY","tickInterval","length","jsxs","Canvas","children","jsx","AxisLine","map","_label","i","Tick","label","initPosition","exports"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/BottomAxis.tsx"],"mappings":";;;;;;AACA,IAAAA,gBAAA,GAAAC,OAAA;AAIA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA8B,IAAAG,WAAA,GAAAH,OAAA;AAN9B;;AAoBA,MAAMI,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,GAAGR,MAAM,CAACS,MAAM,GAAG,CAAC,GAAGJ,KAAK,IAAIL,MAAM,CAACS,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;EAExE,oBACE,IAAAZ,WAAA,CAAAa,IAAA,EAACjB,gBAAA,CAAAkB,MAAM;IAACP,KAAK,EAAEA,KAAM;IAAAQ,QAAA,gBACnB,IAAAf,WAAA,CAAAgB,GAAA,EAAClB,SAAA,CAAAmB,QAAQ;MAAOT,KAAK;MAAEE,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEE;IAAO,CAAK,CAAC,EAC3DH,MAAM,CAACe,GAAG,CAAC,CAACC,MAAM,EAAEC,CAAC,kBACpB,IAAApB,WAAA,CAAAgB,GAAA,EAACjB,KAAA,CAAAsB,IAAI;MAEHC,KAAK,EAAEH,MAAO;MACdI,YAAY,EAAEZ,YAAY,GAAGS,CAAE;MACzBd,OAAO;MAAEI,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEK;IAAI,GAHtCW,CAIN,CACF,CAAC;EAAA,CACI,CAAC;AAEb,CAAC;AAACI,OAAA,CAAAvB,UAAA,GAAAA,UAAA","ignoreList":[]}
@@ -7,7 +7,7 @@ exports.Tick = void 0;
7
7
  var _reactNativeSkia = require("@shopify/react-native-skia");
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _reactNativeReanimated = require("react-native-reanimated");
10
- var _gesture = require("../gesture");
10
+ var _gesture = require("../gesture.js");
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  const Tick = props => {
@@ -22,7 +22,7 @@ const Tick = props => {
22
22
  const offsetY = props.offsetY ?? 0;
23
23
  const transform = (0, _reactNativeReanimated.useDerivedValue)(() => [{
24
24
  translateX: (0, _gesture.getPositionWl)(initPosition, focalX.value, scale.value, offsetX.value)
25
- }], [initPosition, offsetX]);
25
+ }]);
26
26
  const width = font.getGlyphWidths(font.getGlyphIDs(label)).reduce((a, b) => a + b, 0);
27
27
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
28
28
  transform: transform,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_react","_interopRequireDefault","_reactNativeReanimated","_gesture","_jsxRuntime","e","__esModule","default","Tick","props","label","scale","focalX","offsetX","initPosition","font","offsetY","transform","useDerivedValue","translateX","getPositionWl","value","width","getGlyphWidths","getGlyphIDs","reduce","a","b","jsxs","Group","children","jsx","Line","color","p1","vec","p2","Text","text","x","y","exports"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/Tick.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAOA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAA2C,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAYpC,MAAMG,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,GAAG,IAAAC,sCAAe,EAC/B,MAAM,CACJ;IACEC,UAAU,EAAE,IAAAC,sBAAa,EACvBN,YAAY,EACZF,MAAM,CAACS,KAAK,EACZV,KAAK,CAACU,KAAK,EACXR,OAAO,CAACQ,KACV;EACF,CAAC,CACF,EACD,CAACP,YAAY,EAAED,OAAO,CACxB,CAAC;EACD,MAAMS,KAAK,GAAGP,IAAI,CACfQ,cAAc,CAACR,IAAI,CAACS,WAAW,CAACd,KAAK,CAAC,CAAC,CACvCe,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;EAE7B,oBACE,IAAAvB,WAAA,CAAAwB,IAAA,EAAC9B,gBAAA,CAAA+B,KAAK;IAACZ,SAAS,EAAEA,SAAU;IAAAa,QAAA,gBAC1B,IAAA1B,WAAA,CAAA2B,GAAA,EAACjC,gBAAA,CAAAkC,IAAI;MAACC,KAAK,EAAC,OAAO;MAACC,EAAE,EAAE,IAAAC,oBAAG,EAAC,CAAC,EAAEnB,OAAO,CAAE;MAACoB,EAAE,EAAE,IAAAD,oBAAG,EAAC,CAAC,EAAEnB,OAAO,GAAG,EAAE;IAAE,CAAE,CAAC,eACrE,IAAAZ,WAAA,CAAA2B,GAAA,EAACjC,gBAAA,CAAAuC,IAAI;MACHC,IAAI,EAAE5B,KAAM;MACZuB,KAAK,EAAC,OAAO;MACbM,CAAC,EAAE,CAACjB,KAAK,GAAG,CAAE;MACdkB,CAAC,EAAExB,OAAO,GAAG,EAAG;MAChBD,IAAI,EAAEA;IAAK,CACZ,CAAC;EAAA,CACG,CAAC;AAEZ,CAAC;AAAC0B,OAAA,CAAAjC,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_react","_interopRequireDefault","_reactNativeReanimated","_gesture","_jsxRuntime","e","__esModule","default","Tick","props","label","scale","focalX","offsetX","initPosition","font","offsetY","transform","useDerivedValue","translateX","getPositionWl","value","width","getGlyphWidths","getGlyphIDs","reduce","a","b","jsxs","Group","children","jsx","Line","color","p1","vec","p2","Text","text","x","y","exports"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/Tick.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAOA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAA2C,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAYpC,MAAMG,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,GAAG,IAAAC,sCAAe,EAAC,MAAM,CACtC;IACEC,UAAU,EAAE,IAAAC,sBAAa,EACvBN,YAAY,EACZF,MAAM,CAACS,KAAK,EACZV,KAAK,CAACU,KAAK,EACXR,OAAO,CAACQ,KACV;EACF,CAAC,CACF,CAAC;EACF,MAAMC,KAAK,GAAGP,IAAI,CACfQ,cAAc,CAACR,IAAI,CAACS,WAAW,CAACd,KAAK,CAAC,CAAC,CACvCe,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;EAE7B,oBACE,IAAAvB,WAAA,CAAAwB,IAAA,EAAC9B,gBAAA,CAAA+B,KAAK;IAACZ,SAAS,EAAEA,SAAU;IAAAa,QAAA,gBAC1B,IAAA1B,WAAA,CAAA2B,GAAA,EAACjC,gBAAA,CAAAkC,IAAI;MAACC,KAAK,EAAC,OAAO;MAACC,EAAE,EAAE,IAAAC,oBAAG,EAAC,CAAC,EAAEnB,OAAO,CAAE;MAACoB,EAAE,EAAE,IAAAD,oBAAG,EAAC,CAAC,EAAEnB,OAAO,GAAG,EAAE;IAAE,CAAE,CAAC,eACrE,IAAAZ,WAAA,CAAA2B,GAAA,EAACjC,gBAAA,CAAAuC,IAAI;MACHC,IAAI,EAAE5B,KAAM;MACZuB,KAAK,EAAC,OAAO;MACbM,CAAC,EAAE,CAACjB,KAAK,GAAG,CAAE;MACdkB,CAAC,EAAExB,OAAO,GAAG,EAAG;MAChBD,IAAI,EAAEA;IAAK,CACZ,CAAC;EAAA,CACG,CAAC;AAEZ,CAAC;AAAC0B,OAAA,CAAAjC,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -21,7 +21,7 @@ Object.defineProperty(exports, "Tick", {
21
21
  return _Tick.Tick;
22
22
  }
23
23
  });
24
- var _AxisLine = require("./AxisLine");
25
- var _BottomAxis = require("./BottomAxis");
26
- var _Tick = require("./Tick");
24
+ var _AxisLine = require("./AxisLine.js");
25
+ var _BottomAxis = require("./BottomAxis.js");
26
+ var _Tick = require("./Tick.js");
27
27
  //# sourceMappingURL=index.js.map
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Cursor = void 0;
7
7
  var _reactNativeSkia = require("@shopify/react-native-skia");
8
8
  var _reactNativeReanimated = require("react-native-reanimated");
9
- var _maths = require("./maths");
9
+ var _maths = require("./maths.js");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  const CURSOR_SIZE = 10;
12
12
  const Cursor = function ({
@@ -18,21 +18,20 @@ const Cursor = function ({
18
18
  size = CURSOR_SIZE
19
19
  }) {
20
20
  if (currentValue !== undefined && translateY !== undefined) {
21
- console.warn('Current value as no effect when translateY is set');
21
+ console.warn('currentValue has no effect when translateY is set');
22
22
  }
23
- const _translateY = translateY ? translateY :
24
- // eslint-disable-next-line react-hooks/rules-of-hooks
25
- (0, _reactNativeReanimated.useDerivedValue)(() => {
23
+ const derivedTranslateY = (0, _reactNativeReanimated.useDerivedValue)(() => {
26
24
  const _commands = commands?.value;
27
25
  if (_commands === undefined) {
28
26
  return 0;
29
27
  }
30
28
  const _value = (0, _maths.getYForX)(_commands, positionX.value) ?? 0;
31
- if (currentValue !== undefined) {
29
+ if (translateY === undefined && currentValue !== undefined) {
32
30
  currentValue.value = _value;
33
31
  }
34
32
  return _value;
35
33
  });
34
+ const _translateY = translateY ?? derivedTranslateY;
36
35
  const transform = (0, _reactNativeReanimated.useDerivedValue)(() => [{
37
36
  translateX: positionX.value
38
37
  }, {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_reactNativeReanimated","_maths","_jsxRuntime","CURSOR_SIZE","Cursor","commands","positionX","color","currentValue","translateY","size","undefined","console","warn","_translateY","useDerivedValue","_commands","value","_value","getYForX","transform","translateX","jsx","Circle","cx","cy","r","exports"],"sourceRoot":"../../../src","sources":["Charts/Cursor.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAAmC,IAAAG,WAAA,GAAAH,OAAA;AAEnC,MAAMI,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;EACA,IAAAM,sCAAe,EAAC,MAAM;IACpB,MAAMC,SAAS,GAAGX,QAAQ,EAAEY,KAAK;IACjC,IAAID,SAAS,KAAKL,SAAS,EAAE;MAC3B,OAAO,CAAC;IACV;IACA,MAAMO,MAAM,GAAG,IAAAC,eAAQ,EAACH,SAAS,EAAEV,SAAS,CAACW,KAAK,CAAC,IAAI,CAAC;IACxD,IAAIT,YAAY,KAAKG,SAAS,EAAE;MAC9BH,YAAY,CAACS,KAAK,GAAGC,MAAM;IAC7B;IACA,OAAOA,MAAM;EACf,CAAC,CAAC;EAEN,MAAME,SAAS,GAAG,IAAAL,sCAAe,EAAC,MAAM,CACtC;IAAEM,UAAU,EAAEf,SAAS,CAACW;EAAM,CAAC,EAC/B;IAAER,UAAU,EAAEK,WAAW,CAACG,KAAK,IAAI;EAAE,CAAC,CACvC,CAAC;EACF,oBAAO,IAAAf,WAAA,CAAAoB,GAAA,EAACxB,gBAAA,CAAAyB,MAAM;IAACH,SAAS,EAAEA,SAAU;IAACI,EAAE,EAAE,CAAE;IAACC,EAAE,EAAE,CAAE;IAACC,CAAC,EAAEhB,IAAK;IAACH,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC9E,CAAC;AAACoB,OAAA,CAAAvB,MAAA,GAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_reactNativeReanimated","_maths","_jsxRuntime","CURSOR_SIZE","Cursor","commands","positionX","color","currentValue","translateY","size","undefined","console","warn","derivedTranslateY","useDerivedValue","_commands","value","_value","getYForX","_translateY","transform","translateX","jsx","Circle","cx","cy","r","exports"],"sourceRoot":"../../../src","sources":["Charts/Cursor.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAAmC,IAAAG,WAAA,GAAAH,OAAA;AAEnC,MAAMI,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,iBAAiB,GAAG,IAAAC,sCAAe,EAAC,MAAM;IAC9C,MAAMC,SAAS,GAAGX,QAAQ,EAAEY,KAAK;IACjC,IAAID,SAAS,KAAKL,SAAS,EAAE;MAC3B,OAAO,CAAC;IACV;IACA,MAAMO,MAAM,GAAG,IAAAC,eAAQ,EAACH,SAAS,EAAEV,SAAS,CAACW,KAAK,CAAC,IAAI,CAAC;IACxD,IAAIR,UAAU,KAAKE,SAAS,IAAIH,YAAY,KAAKG,SAAS,EAAE;MAC1DH,YAAY,CAACS,KAAK,GAAGC,MAAM;IAC7B;IACA,OAAOA,MAAM;EACf,CAAC,CAAC;EAEF,MAAME,WAAW,GAAGX,UAAU,IAAIK,iBAAiB;EAEnD,MAAMO,SAAS,GAAG,IAAAN,sCAAe,EAAC,MAAM,CACtC;IAAEO,UAAU,EAAEhB,SAAS,CAACW;EAAM,CAAC,EAC/B;IAAER,UAAU,EAAEW,WAAW,CAACH,KAAK,IAAI;EAAE,CAAC,CACvC,CAAC;EACF,oBAAO,IAAAf,WAAA,CAAAqB,GAAA,EAACzB,gBAAA,CAAA0B,MAAM;IAACH,SAAS,EAAEA,SAAU;IAACI,EAAE,EAAE,CAAE;IAACC,EAAE,EAAE,CAAE;IAACC,CAAC,EAAEjB,IAAK;IAACH,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC9E,CAAC;AAACqB,OAAA,CAAAxB,MAAA,GAAAA,MAAA","ignoreList":[]}
@@ -8,6 +8,8 @@ var _reactNativeSkia = require("@shopify/react-native-skia");
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _jsxRuntime = require("react/jsx-runtime");
10
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ // Require at least one of `path` / `paths` at compile time
12
+
11
13
  const LineChart = function (props) {
12
14
  const {
13
15
  width,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_react","_interopRequireDefault","_jsxRuntime","e","__esModule","default","LineChart","props","width","height","style","path","children","color","paths","background","offsetX","offsetY","_paths","undefined","length","console","warn","jsx","Canvas","jsxs","Group","transform","translateY","translateX","map","_path","i","Path","strokeWidth","strokeJoin","strokeCap","id","exports"],"sourceRoot":"../../../../src","sources":["Charts/Linechart/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAuB1B,MAAMG,SAA6B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACrD,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,KAAK;IACLC,IAAI;IACJC,QAAQ;IACRC,KAAK;IACLC,KAAK;IACLC,UAAU;IACVC,OAAO,GAAG,CAAC;IACXC,OAAO,GAAG;EACZ,CAAC,GAAGV,KAAK;EAET,MAAMW,MAAkB,GACtBJ,KAAK,KAAKK,SAAS,GACfL,KAAK,GACLH,IAAI,KAAKQ,SAAS,GAClB,CAAC;IAAER,IAAI,EAAEA,IAAI;IAAEE,KAAK,EAAEA,KAAK,IAAI;EAAM,CAAC,CAAC,GACvC,EAAE;EACR,IAAIK,MAAM,CAACE,MAAM,KAAK,CAAC,EAAE;IACvBC,OAAO,CAACC,IAAI,CAAC,0CAA0C,CAAC;IACxD,OAAO,IAAI;IACX;EACF;EACA,oBACE,IAAApB,WAAA,CAAAqB,GAAA,EAACzB,gBAAA,CAAA0B,MAAM;IACLd,KAAK,EAAE,CACL;MACEF,KAAK;MACLC;IACF,CAAC,EACDC,KAAK,CACL;IAAAE,QAAA,eAEF,IAAAV,WAAA,CAAAuB,IAAA,EAAC3B,gBAAA,CAAA4B,KAAK;MAACC,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEX;MAAQ,CAAC,EAAE;QAAEY,UAAU,EAAEb;MAAQ,CAAC,CAAE;MAAAJ,QAAA,GAClEG,UAAU,EACVG,MAAM,CAACY,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,kBACnB,IAAA9B,WAAA,CAAAqB,GAAA,EAACzB,gBAAA,CAAAmC,IAAI;QAEHvB,KAAK,EAAC,QAAQ;QAAA,GACVqB,KAAK;QACTG,WAAW,EAAE,CAAE;QACfC,UAAU,EAAC,OAAO;QAClBC,SAAS,EAAC;MAAO,GALZ,GAAGL,KAAK,CAACM,EAAE,IAAIL,CAAC,EAMtB,CACF,CAAC,EACDpB,QAAQ;IAAA,CACJ;EAAC,CACF,CAAC;AAEb,CAAC;AAAC0B,OAAA,CAAAhC,SAAA,GAAAA,SAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_react","_interopRequireDefault","_jsxRuntime","e","__esModule","default","LineChart","props","width","height","style","path","children","color","paths","background","offsetX","offsetY","_paths","undefined","length","console","warn","jsx","Canvas","jsxs","Group","transform","translateY","translateX","map","_path","i","Path","strokeWidth","strokeJoin","strokeCap","id","exports"],"sourceRoot":"../../../../src","sources":["Charts/Linechart/index.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA0B,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAoB1B;;AAOA,MAAMG,SAA6B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACrD,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,KAAK;IACLC,IAAI;IACJC,QAAQ;IACRC,KAAK;IACLC,KAAK;IACLC,UAAU;IACVC,OAAO,GAAG,CAAC;IACXC,OAAO,GAAG;EACZ,CAAC,GAAGV,KAAK;EAET,MAAMW,MAAkB,GACtBJ,KAAK,KAAKK,SAAS,GACfL,KAAK,GACLH,IAAI,KAAKQ,SAAS,GAClB,CAAC;IAAER,IAAI,EAAEA,IAAI;IAAEE,KAAK,EAAEA,KAAK,IAAI;EAAM,CAAC,CAAC,GACvC,EAAE;EACR,IAAIK,MAAM,CAACE,MAAM,KAAK,CAAC,EAAE;IACvBC,OAAO,CAACC,IAAI,CAAC,0CAA0C,CAAC;IACxD,OAAO,IAAI;IACX;EACF;EACA,oBACE,IAAApB,WAAA,CAAAqB,GAAA,EAACzB,gBAAA,CAAA0B,MAAM;IACLd,KAAK,EAAE,CACL;MACEF,KAAK;MACLC;IACF,CAAC,EACDC,KAAK,CACL;IAAAE,QAAA,eAEF,IAAAV,WAAA,CAAAuB,IAAA,EAAC3B,gBAAA,CAAA4B,KAAK;MAACC,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEX;MAAQ,CAAC,EAAE;QAAEY,UAAU,EAAEb;MAAQ,CAAC,CAAE;MAAAJ,QAAA,GAClEG,UAAU,EACVG,MAAM,CAACY,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,kBACnB,IAAA9B,WAAA,CAAAqB,GAAA,EAACzB,gBAAA,CAAAmC,IAAI;QAEHvB,KAAK,EAAC,QAAQ;QAAA,GACVqB,KAAK;QACTG,WAAW,EAAE,CAAE;QACfC,UAAU,EAAC,OAAO;QAClBC,SAAS,EAAC;MAAO,GALZ,GAAGL,KAAK,CAACM,EAAE,IAAIL,CAAC,EAMtB,CACF,CAAC,EACDpB,QAAQ;IAAA,CACJ;EAAC,CACF,CAAC;AAEb,CAAC;AAAC0B,OAAA,CAAAhC,SAAA,GAAAA,SAAA","ignoreList":[]}
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.ScalablePath = void 0;
7
7
  var _reactNativeSkia = require("@shopify/react-native-skia");
8
8
  var _reactNativeReanimated = require("react-native-reanimated");
9
- var _graphUtils = require("../graphUtils");
10
9
  var _jsxRuntime = require("react/jsx-runtime");
11
10
  const ScalablePath = function (props) {
12
11
  const {
@@ -18,17 +17,11 @@ const ScalablePath = function (props) {
18
17
  color = 'red'
19
18
  } = props;
20
19
  const animatedPath = (0, _reactNativeReanimated.useDerivedValue)(() => {
21
- let _cmds = [];
22
- try {
23
- _cmds = (0, _graphUtils.scaleCommands)(path.value?.toCmds() ?? [], scale, focalX, offsetX);
24
- } catch (e) {
25
- console.error('Got error while scaling path: ', typeof e);
26
- _cmds = [];
27
- }
28
- const _path = _reactNativeSkia.Skia.Path.MakeFromCmds(_cmds);
29
- if (!_path) throw new Error('Path is null');
20
+ // Affine equivalent of getPositionWl: x' = scale * x + focalX * (1 - scale) + offsetX
21
+ const _path = path.value.copy();
22
+ _path.transform(_reactNativeSkia.Skia.Matrix().translate(focalX.value * (1 - scale.value) + offsetX.value, 0).scale(scale.value, 1));
30
23
  return _path;
31
- }, [scale]);
24
+ });
32
25
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
33
26
  style: "stroke",
34
27
  path: animatedPath,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_reactNativeReanimated","_graphUtils","_jsxRuntime","ScalablePath","props","path","scale","focalX","offsetX","pathProps","color","animatedPath","useDerivedValue","_cmds","scaleCommands","value","toCmds","e","console","error","_path","Skia","Path","MakeFromCmds","Error","jsx","style","strokeWidth","strokeJoin","strokeCap","exports"],"sourceRoot":"../../../../src","sources":["Charts/ZoomableLinechart/ScalablePath.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAOA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAA8C,IAAAG,WAAA,GAAAH,OAAA;AAW9C,MAAMI,YAAmC,GAAG,SAAAA,CAAUC,KAAK,EAAE;EAC3D,MAAM;IAAEC,IAAI;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO;IAAEC,SAAS;IAAEC,KAAK,GAAG;EAAM,CAAC,GAAGN,KAAK;EAExE,MAAMO,YAAY,GAAG,IAAAC,sCAAe,EAAC,MAAM;IACzC,IAAIC,KAAoB,GAAG,EAAE;IAC7B,IAAI;MACFA,KAAK,GAAG,IAAAC,yBAAa,EAACT,IAAI,CAACU,KAAK,EAAEC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAEV,KAAK,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC3E,CAAC,CAAC,OAAOS,CAAC,EAAE;MACVC,OAAO,CAACC,KAAK,CAAC,gCAAgC,EAAE,OAAOF,CAAC,CAAC;MACzDJ,KAAK,GAAG,EAAE;IACZ;IACA,MAAMO,KAAK,GAAGC,qBAAI,CAACC,IAAI,CAACC,YAAY,CAACV,KAAK,CAAC;IAC3C,IAAI,CAACO,KAAK,EAAE,MAAM,IAAII,KAAK,CAAC,cAAc,CAAC;IAC3C,OAAOJ,KAAK;EACd,CAAC,EAAE,CAACd,KAAK,CAAC,CAAC;EAEX,oBACE,IAAAJ,WAAA,CAAAuB,GAAA,EAAC3B,gBAAA,CAAAwB,IAAI;IACHI,KAAK,EAAC,QAAQ;IACdrB,IAAI,EAAEM,YAAa;IACnBgB,WAAW,EAAE,CAAE;IACfC,UAAU,EAAC,OAAO;IAClBC,SAAS,EAAC,OAAO;IACjBnB,KAAK,EAAEA,KAAM;IAAA,GACTD;EAAS,CACd,CAAC;AAEN,CAAC;AAACqB,OAAA,CAAA3B,YAAA,GAAAA,YAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_reactNativeReanimated","_jsxRuntime","ScalablePath","props","path","scale","focalX","offsetX","pathProps","color","animatedPath","useDerivedValue","_path","value","copy","transform","Skia","Matrix","translate","jsx","Path","style","strokeWidth","strokeJoin","strokeCap","exports"],"sourceRoot":"../../../../src","sources":["Charts/ZoomableLinechart/ScalablePath.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AAA4E,IAAAE,WAAA,GAAAF,OAAA;AAW5E,MAAMG,YAAmC,GAAG,SAAAA,CAAUC,KAAK,EAAE;EAC3D,MAAM;IAAEC,IAAI;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO;IAAEC,SAAS;IAAEC,KAAK,GAAG;EAAM,CAAC,GAAGN,KAAK;EAExE,MAAMO,YAAY,GAAG,IAAAC,sCAAe,EAAC,MAAM;IACzC;IACA,MAAMC,KAAK,GAAGR,IAAI,CAACS,KAAK,CAACC,IAAI,CAAC,CAAC;IAC/BF,KAAK,CAACG,SAAS,CACbC,qBAAI,CAACC,MAAM,CAAC,CAAC,CACVC,SAAS,CAACZ,MAAM,CAACO,KAAK,IAAI,CAAC,GAAGR,KAAK,CAACQ,KAAK,CAAC,GAAGN,OAAO,CAACM,KAAK,EAAE,CAAC,CAAC,CAC9DR,KAAK,CAACA,KAAK,CAACQ,KAAK,EAAE,CAAC,CACzB,CAAC;IACD,OAAOD,KAAK;EACd,CAAC,CAAC;EAEF,oBACE,IAAAX,WAAA,CAAAkB,GAAA,EAACrB,gBAAA,CAAAsB,IAAI;IACHC,KAAK,EAAC,QAAQ;IACdjB,IAAI,EAAEM,YAAa;IACnBY,WAAW,EAAE,CAAE;IACfC,UAAU,EAAC,OAAO;IAClBC,SAAS,EAAC,OAAO;IACjBf,KAAK,EAAEA,KAAM;IAAA,GACTD;EAAS,CACd,CAAC;AAEN,CAAC;AAACiB,OAAA,CAAAvB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "ScalablePath", {
12
12
  exports.ZoomableLineChart = void 0;
13
13
  var _reactNativeSkia = require("@shopify/react-native-skia");
14
14
  var _react = _interopRequireDefault(require("react"));
15
- var _ScalablePath = require("./ScalablePath");
15
+ var _ScalablePath = require("./ScalablePath.js");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
18
  const ZoomableLineChart = function (props) {
@@ -8,6 +8,7 @@ var _reactNativeSkia = require("@shopify/react-native-skia");
8
8
  var _react = require("react");
9
9
  var _reactNativeGestureHandler = require("react-native-gesture-handler");
10
10
  var _reactNativeReanimated = require("react-native-reanimated");
11
+ var _reactNativeWorklets = require("react-native-worklets");
11
12
  /**
12
13
  * Get the position of a point on the axis,
13
14
  * given the current focal, scale and offset
@@ -44,13 +45,6 @@ const useScalableGesture = props => {
44
45
  offsetX.value = startOffset;
45
46
  lastOffsetX.value = startOffset;
46
47
  }, [focalX, lastFocalX, lastOffsetX, lastScale, offsetX, scale, startOffset, startScale]);
47
- const animateFocalPoint = newFocalX => {
48
- 'worklet';
49
-
50
- focalX.value = (0, _reactNativeReanimated.withTiming)(newFocalX, {
51
- duration: 300
52
- }); // Smooth transition with duration
53
- };
54
48
  const panGesture = _reactNativeGestureHandler.Gesture.Pan().onUpdate(event => {
55
49
  const newOffsetX = lastOffsetX.value + event.translationX;
56
50
  offsetX.value = newOffsetX;
@@ -61,27 +55,26 @@ const useScalableGesture = props => {
61
55
  const rightBound = getPositionWl(width, focalX.value, scale.value, offsetX.value);
62
56
  let newOffset;
63
57
  if (leftBound > startOffset) {
64
- // console.log(`Left Boundary reached`);
65
58
  newOffset = offsetX.value - leftBound + startOffset;
66
- } else if (rightBound < width) {
67
- // console.log(`Right Boundary reached`);
59
+ } else if (rightBound < width + startOffset) {
68
60
  newOffset = offsetX.value + width - rightBound + startOffset;
69
61
  } else {
70
62
  newOffset = offsetX.value;
71
63
  }
72
- if (newOffset === undefined) throw new Error('newOffset is undefined');
73
64
  offsetX.value = (0, _reactNativeReanimated.withTiming)(newOffset, {
74
65
  duration: 300
75
66
  });
76
67
  lastOffsetX.value = newOffset;
77
68
  });
78
69
  const pinchGesture = _reactNativeGestureHandler.Gesture.Pinch().onUpdate(event => {
79
- const newScale = lastScale.value * event.scale;
80
- scale.value = (0, _reactNativeSkia.clamp)(newScale, 1, Infinity); // Clamp the scale value
81
- animateFocalPoint(event.focalX);
70
+ // Rebase offsetX so moving the focal point doesn't shift the content
71
+ offsetX.value += (focalX.value - event.focalX) * (1 - scale.value);
72
+ focalX.value = event.focalX;
73
+ scale.value = (0, _reactNativeSkia.clamp)(lastScale.value * event.scale, 1, Infinity);
82
74
  }).onEnd(() => {
83
75
  lastScale.value = scale.value;
84
76
  lastFocalX.value = focalX.value;
77
+ lastOffsetX.value = offsetX.value;
85
78
  });
86
79
  return {
87
80
  scale,
@@ -107,11 +100,11 @@ const useUpdateAxis = function (props) {
107
100
  if (_curScale === undefined || _prevScale === undefined) throw new Error('Got undefined scale');
108
101
  if (currentScale >= _prevScale && currentScale < _curScale && currentIndex.value !== i) {
109
102
  currentIndex.value = i;
110
- if (onScaleChange !== undefined) (0, _reactNativeReanimated.runOnJS)(onScaleChange)(i);
103
+ if (onScaleChange !== undefined) (0, _reactNativeWorklets.scheduleOnRN)(onScaleChange, i);
111
104
  break;
112
105
  }
113
106
  }
114
- }, []);
107
+ });
115
108
  return {
116
109
  currentIndex
117
110
  };
@@ -150,30 +143,31 @@ const useCursorGesture = function (props) {
150
143
  closestDataPoint,
151
144
  isContinuous = true
152
145
  } = props;
146
+ if (!isContinuous && points === undefined) console.warn('Points must be defined for non-continuous mode');
153
147
  const xPosition = (0, _reactNativeReanimated.useSharedValue)(0);
154
- const yPosition = (0, _reactNativeReanimated.useSharedValue)(height); // GRAPH_HEIGHT
148
+ const yPosition = (0, _reactNativeReanimated.useSharedValue)(height);
149
+ const setPosition = (x, y) => {
150
+ 'worklet';
155
151
 
156
- const panGesture = _reactNativeGestureHandler.Gesture.Pan().onBegin(event => {
157
- xPosition.value = (0, _reactNativeSkia.clamp)(event.x, 0, width);
158
- yPosition.value = (0, _reactNativeSkia.clamp)(event.y, 0, height);
159
- }).onUpdate(event => {
160
- xPosition.value = (0, _reactNativeSkia.clamp)(event.x, 0, width);
161
- yPosition.value = (0, _reactNativeSkia.clamp)(event.y, 0, height);
162
- });
163
- const tapGesture = _reactNativeGestureHandler.Gesture.Tap().onBegin(event => {
164
- xPosition.value = (0, _reactNativeSkia.clamp)(event.x, 0, width);
165
- yPosition.value = (0, _reactNativeSkia.clamp)(event.y, 0, height);
166
- });
167
- (0, _reactNativeReanimated.useDerivedValue)(() => {
168
- if (isContinuous) return;
169
- if (points === undefined) {
170
- console.warn('Points must be defined for non-continuous mode');
152
+ yPosition.value = (0, _reactNativeSkia.clamp)(y, 0, height);
153
+ if (isContinuous || points === undefined) {
154
+ xPosition.value = (0, _reactNativeSkia.clamp)(x, 0, width);
171
155
  return;
172
156
  }
173
- const _closestDot = getClosestPoint(xPosition.value, points.value);
157
+ const _closestDot = getClosestPoint((0, _reactNativeSkia.clamp)(x, 0, width), points.value);
158
+ if (closestDataPoint !== undefined) closestDataPoint.value = _closestDot;
159
+ xPosition.value = _closestDot.x;
160
+ };
161
+ const panGesture = _reactNativeGestureHandler.Gesture.Pan().onBegin(event => setPosition(event.x, event.y)).onUpdate(event => setPosition(event.x, event.y));
162
+ const tapGesture = _reactNativeGestureHandler.Gesture.Tap().onBegin(event => setPosition(event.x, event.y));
163
+
164
+ // Re-snap the cursor when the data points change (e.g. switching graphs)
165
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => points?.value, _points => {
166
+ if (isContinuous || _points === undefined || _points.length === 0) return;
167
+ const _closestDot = getClosestPoint(xPosition.value, _points);
174
168
  if (closestDataPoint !== undefined) closestDataPoint.value = _closestDot;
175
169
  xPosition.value = _closestDot.x;
176
- }, [xPosition, isContinuous]);
170
+ });
177
171
  return {
178
172
  panGesture,
179
173
  tapGesture,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_react","_reactNativeGestureHandler","_reactNativeReanimated","getPositionWl","position","focalX","scale","offsetX","exports","useScalableGesture","props","width","startOffset","startScale","useSharedValue","lastScale","lastFocalX","lastOffsetX","reset","useCallback","value","animateFocalPoint","newFocalX","withTiming","duration","panGesture","Gesture","Pan","onUpdate","event","newOffsetX","translationX","onEnd","leftBound","rightBound","newOffset","undefined","Error","pinchGesture","Pinch","newScale","clamp","Infinity","useUpdateAxis","scales","onScaleChange","currentIndex","useAnimatedReaction","currentScale","_","i","length","_prevScale","_curScale","runOnJS","getClosestPoint","x","dataPoints","closestPoint","minDistance","Math","abs","point","distance","useCursorGesture","height","points","closestDataPoint","isContinuous","xPosition","yPosition","onBegin","y","tapGesture","Tap","useDerivedValue","console","warn","_closestDot"],"sourceRoot":"../../../src","sources":["Charts/gesture.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_react","_reactNativeGestureHandler","_reactNativeReanimated","_reactNativeWorklets","getPositionWl","position","focalX","scale","offsetX","exports","useScalableGesture","props","width","startOffset","startScale","useSharedValue","lastScale","lastFocalX","lastOffsetX","reset","useCallback","value","panGesture","Gesture","Pan","onUpdate","event","newOffsetX","translationX","onEnd","leftBound","rightBound","newOffset","withTiming","duration","pinchGesture","Pinch","clamp","Infinity","useUpdateAxis","scales","onScaleChange","currentIndex","useAnimatedReaction","currentScale","_","i","length","_prevScale","_curScale","undefined","Error","scheduleOnRN","getClosestPoint","x","dataPoints","closestPoint","minDistance","Math","abs","point","distance","useCursorGesture","height","points","closestDataPoint","isContinuous","console","warn","xPosition","yPosition","setPosition","y","_closestDot","onBegin","tapGesture","Tap","_points"],"sourceRoot":"../../../src","sources":["Charts/gesture.ts"],"mappings":"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","ignoreList":[]}
@@ -8,27 +8,30 @@ var _reactNativeSkia = require("@shopify/react-native-skia");
8
8
  var _d3Scale = require("d3-scale");
9
9
  var shape = _interopRequireWildcard(require("d3-shape"));
10
10
  var _reactNativeReanimated = require("react-native-reanimated");
11
- var _gesture = require("./gesture");
12
- var _maths = require("./maths");
11
+ var _gesture = require("./gesture.js");
12
+ var _maths = require("./maths.js");
13
13
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ /** @deprecated Use {@link BuildGraphConfig} instead */
15
+
14
16
  const buildGraph = function (data, width, height, config) {
15
- const minX = config?.minX ?? Math.min(...data.map(x => x[0]));
16
- const maxX = config?.maxX ?? Math.max(...data.map(x => x[0]));
17
+ if (data.length === 0) throw new Error('buildGraph requires at least one data point');
18
+ const minX = config?.minX ?? Math.min(...data.map(d => d[0]));
19
+ const maxX = config?.maxX ?? Math.max(...data.map(d => d[0]));
17
20
  const scaleX = (0, _d3Scale.scaleLinear)().domain([minX, maxX]).range([0, width]);
18
- const minY = config?.minY ?? Math.min(...data.map(x => x[1]));
19
- const maxY = config?.maxY ?? Math.max(...data.map(x => x[1]));
21
+ const minY = config?.minY ?? Math.min(...data.map(d => d[1]));
22
+ const maxY = config?.maxY ?? Math.max(...data.map(d => d[1]));
20
23
  const scaleY = (0, _d3Scale.scaleLinear)().domain([minY, maxY]).range([height, 0]);
21
- const fmtValues = data.map(x => [x[1], x[0]]);
22
- const path = shape.line().x(([, x]) => scaleX(x)).y(([y]) => scaleY(y)).curve(config?.curve ?? shape.curveBasis)(fmtValues);
23
- const dataPoints = fmtValues.map(([y, x]) => ({
24
+ const path = shape.line().x(([x]) => scaleX(x)).y(([, y]) => scaleY(y)).curve(config?.curve ?? shape.curveBasis)(data);
25
+ if (path === null) throw new Error('Failed to build the line path');
26
+ const dataPoints = data.map(([x, y]) => ({
24
27
  x: scaleX(x),
25
28
  y: scaleY(y),
26
29
  value: y
27
30
  }));
28
31
  const skiaPath = _reactNativeSkia.Skia.Path.MakeFromSVGString(path);
29
- if (skiaPath == null) throw new Error('Path not found');
32
+ if (skiaPath == null) throw new Error('Failed to parse the SVG path');
30
33
  return {
31
- data: fmtValues,
34
+ data,
32
35
  minY,
33
36
  maxY,
34
37
  path,
@@ -71,7 +74,6 @@ const scaleCommands = function (commands, scaleX, focalX, offsetX, scaleY) {
71
74
  (0, _gesture.getPositionWl)(command[5], focalX.value, scaleX.value, offsetX.value), command[6] * _scaleY];
72
75
  }
73
76
  if (commandType === _reactNativeSkia.PathVerb.Close) return command;
74
- if (commandType === _reactNativeSkia.PathVerb.Move) return command;
75
77
  throw new Error(`Unsupported command type ${commandType}`);
76
78
  });
77
79
  };
@@ -103,27 +105,28 @@ const useDotsTransition = function (props) {
103
105
  } = props;
104
106
  (0, _reactNativeReanimated.useAnimatedReaction)(() => ({
105
107
  _currentGraph: currentGraph.value,
106
- _currentCommands: path.value.toCmds()
108
+ _currentCommands: path.value.toCmds(),
109
+ // Track the animating x values so y stays glued to the curve
110
+ // even when the path is swapped instantly or tweens on another duration
111
+ _xs: dots.map(d => d.x.value)
107
112
  }), ({
108
113
  _currentGraph,
109
114
  _currentCommands
110
115
  }) => {
111
116
  const newDataPoints = dataPoints[_currentGraph];
112
117
  if (newDataPoints === undefined) throw new Error('Data points cannot be undefined');
113
- dots.map((_dot, i) => {
118
+ dots.forEach((_dot, i) => {
114
119
  const _newDot = newDataPoints[i];
115
120
  if (!_newDot) {
116
121
  _dot.opacity.value = opacityWl(0);
117
122
  return;
118
- } else {
119
- _dot.x.value = translateWl(_newDot.x);
120
- const newY = (0, _maths.getYForX)(_currentCommands, _dot.x.value);
121
- if (newY !== undefined) {
122
- _dot.y.value = newY;
123
- }
124
- // _dot.y.value = withTiming(newDots[i]!.y, { duration: 1000 });
125
- _dot.opacity.value = opacityWl(1);
126
123
  }
124
+ _dot.x.value = translateWl(_newDot.x);
125
+ const newY = (0, _maths.getYForX)(_currentCommands, _dot.x.value);
126
+ if (newY !== undefined) {
127
+ _dot.y.value = newY;
128
+ }
129
+ _dot.opacity.value = opacityWl(1);
127
130
  });
128
131
  });
129
132
  };