@obitrain/charts 0.10.4 → 0.12.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.
Files changed (132) hide show
  1. package/README.md +6 -4
  2. package/lib/commonjs/Charts/BottomAxis/AxisLine.js +1 -1
  3. package/lib/commonjs/Charts/BottomAxis/BottomAxis.js +54 -14
  4. package/lib/commonjs/Charts/BottomAxis/BottomAxis.js.map +1 -1
  5. package/lib/commonjs/Charts/BottomAxis/Tick.js +29 -13
  6. package/lib/commonjs/Charts/BottomAxis/Tick.js.map +1 -1
  7. package/lib/commonjs/Charts/BottomAxis/index.js.map +1 -1
  8. package/lib/commonjs/Charts/Cursor.js +33 -13
  9. package/lib/commonjs/Charts/Cursor.js.map +1 -1
  10. package/lib/commonjs/Charts/Dot.js +51 -0
  11. package/lib/commonjs/Charts/Dot.js.map +1 -0
  12. package/lib/commonjs/Charts/Dots.js +74 -0
  13. package/lib/commonjs/Charts/Dots.js.map +1 -0
  14. package/lib/commonjs/Charts/Linechart/index.js +1 -1
  15. package/lib/commonjs/Charts/YAxis.js +77 -0
  16. package/lib/commonjs/Charts/YAxis.js.map +1 -0
  17. package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js +5 -4
  18. package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js.map +1 -1
  19. package/lib/commonjs/Charts/ZoomableLinechart/index.js +1 -1
  20. package/lib/commonjs/Charts/gesture.js +90 -38
  21. package/lib/commonjs/Charts/gesture.js.map +1 -1
  22. package/lib/commonjs/Charts/graphUtils.js +69 -16
  23. package/lib/commonjs/Charts/graphUtils.js.map +1 -1
  24. package/lib/commonjs/Charts/index.js +39 -0
  25. package/lib/commonjs/Charts/index.js.map +1 -1
  26. package/lib/commonjs/Charts/maths.js +107 -16
  27. package/lib/commonjs/Charts/maths.js.map +1 -1
  28. package/lib/module/Charts/BottomAxis/AxisLine.js +1 -1
  29. package/lib/module/Charts/BottomAxis/AxisLine.js.map +1 -1
  30. package/lib/module/Charts/BottomAxis/BottomAxis.js +56 -15
  31. package/lib/module/Charts/BottomAxis/BottomAxis.js.map +1 -1
  32. package/lib/module/Charts/BottomAxis/Tick.js +29 -11
  33. package/lib/module/Charts/BottomAxis/Tick.js.map +1 -1
  34. package/lib/module/Charts/BottomAxis/index.js.map +1 -1
  35. package/lib/module/Charts/Cursor.js +35 -15
  36. package/lib/module/Charts/Cursor.js.map +1 -1
  37. package/lib/module/Charts/Dot.js +47 -0
  38. package/lib/module/Charts/Dot.js.map +1 -0
  39. package/lib/module/Charts/Dots.js +70 -0
  40. package/lib/module/Charts/Dots.js.map +1 -0
  41. package/lib/module/Charts/Linechart/index.js +1 -1
  42. package/lib/module/Charts/Linechart/index.js.map +1 -1
  43. package/lib/module/Charts/YAxis.js +73 -0
  44. package/lib/module/Charts/YAxis.js.map +1 -0
  45. package/lib/module/Charts/ZoomableLinechart/ScalablePath.js +5 -4
  46. package/lib/module/Charts/ZoomableLinechart/ScalablePath.js.map +1 -1
  47. package/lib/module/Charts/ZoomableLinechart/index.js +1 -1
  48. package/lib/module/Charts/ZoomableLinechart/index.js.map +1 -1
  49. package/lib/module/Charts/gesture.js +90 -39
  50. package/lib/module/Charts/gesture.js.map +1 -1
  51. package/lib/module/Charts/graphUtils.js +71 -18
  52. package/lib/module/Charts/graphUtils.js.map +1 -1
  53. package/lib/module/Charts/index.js +5 -2
  54. package/lib/module/Charts/index.js.map +1 -1
  55. package/lib/module/Charts/maths.js +101 -14
  56. package/lib/module/Charts/maths.js.map +1 -1
  57. package/lib/typescript/commonjs/src/Charts/BottomAxis/AxisLine.d.ts +1 -1
  58. package/lib/typescript/commonjs/src/Charts/BottomAxis/AxisLine.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/src/Charts/BottomAxis/BottomAxis.d.ts +26 -3
  60. package/lib/typescript/commonjs/src/Charts/BottomAxis/BottomAxis.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/src/Charts/BottomAxis/Tick.d.ts +16 -3
  62. package/lib/typescript/commonjs/src/Charts/BottomAxis/Tick.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/src/Charts/BottomAxis/index.d.ts +1 -1
  64. package/lib/typescript/commonjs/src/Charts/BottomAxis/index.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/src/Charts/Cursor.d.ts +5 -2
  66. package/lib/typescript/commonjs/src/Charts/Cursor.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/src/Charts/Dot.d.ts +22 -0
  68. package/lib/typescript/commonjs/src/Charts/Dot.d.ts.map +1 -0
  69. package/lib/typescript/commonjs/src/Charts/Dots.d.ts +28 -0
  70. package/lib/typescript/commonjs/src/Charts/Dots.d.ts.map +1 -0
  71. package/lib/typescript/commonjs/src/Charts/Linechart/index.d.ts +1 -1
  72. package/lib/typescript/commonjs/src/Charts/Linechart/index.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/src/Charts/YAxis.d.ts +21 -0
  74. package/lib/typescript/commonjs/src/Charts/YAxis.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/ScalablePath.d.ts +2 -2
  76. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/ScalablePath.d.ts.map +1 -1
  77. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/index.d.ts +1 -1
  78. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/index.d.ts.map +1 -1
  79. package/lib/typescript/commonjs/src/Charts/gesture.d.ts +6 -0
  80. package/lib/typescript/commonjs/src/Charts/gesture.d.ts.map +1 -1
  81. package/lib/typescript/commonjs/src/Charts/graphUtils.d.ts +1 -1
  82. package/lib/typescript/commonjs/src/Charts/graphUtils.d.ts.map +1 -1
  83. package/lib/typescript/commonjs/src/Charts/index.d.ts +9 -3
  84. package/lib/typescript/commonjs/src/Charts/index.d.ts.map +1 -1
  85. package/lib/typescript/commonjs/src/Charts/maths.d.ts +15 -1
  86. package/lib/typescript/commonjs/src/Charts/maths.d.ts.map +1 -1
  87. package/lib/typescript/module/src/Charts/BottomAxis/AxisLine.d.ts +1 -1
  88. package/lib/typescript/module/src/Charts/BottomAxis/AxisLine.d.ts.map +1 -1
  89. package/lib/typescript/module/src/Charts/BottomAxis/BottomAxis.d.ts +26 -3
  90. package/lib/typescript/module/src/Charts/BottomAxis/BottomAxis.d.ts.map +1 -1
  91. package/lib/typescript/module/src/Charts/BottomAxis/Tick.d.ts +16 -3
  92. package/lib/typescript/module/src/Charts/BottomAxis/Tick.d.ts.map +1 -1
  93. package/lib/typescript/module/src/Charts/BottomAxis/index.d.ts +1 -1
  94. package/lib/typescript/module/src/Charts/BottomAxis/index.d.ts.map +1 -1
  95. package/lib/typescript/module/src/Charts/Cursor.d.ts +5 -2
  96. package/lib/typescript/module/src/Charts/Cursor.d.ts.map +1 -1
  97. package/lib/typescript/module/src/Charts/Dot.d.ts +22 -0
  98. package/lib/typescript/module/src/Charts/Dot.d.ts.map +1 -0
  99. package/lib/typescript/module/src/Charts/Dots.d.ts +28 -0
  100. package/lib/typescript/module/src/Charts/Dots.d.ts.map +1 -0
  101. package/lib/typescript/module/src/Charts/Linechart/index.d.ts +1 -1
  102. package/lib/typescript/module/src/Charts/Linechart/index.d.ts.map +1 -1
  103. package/lib/typescript/module/src/Charts/YAxis.d.ts +21 -0
  104. package/lib/typescript/module/src/Charts/YAxis.d.ts.map +1 -0
  105. package/lib/typescript/module/src/Charts/ZoomableLinechart/ScalablePath.d.ts +2 -2
  106. package/lib/typescript/module/src/Charts/ZoomableLinechart/ScalablePath.d.ts.map +1 -1
  107. package/lib/typescript/module/src/Charts/ZoomableLinechart/index.d.ts +1 -1
  108. package/lib/typescript/module/src/Charts/ZoomableLinechart/index.d.ts.map +1 -1
  109. package/lib/typescript/module/src/Charts/gesture.d.ts +6 -0
  110. package/lib/typescript/module/src/Charts/gesture.d.ts.map +1 -1
  111. package/lib/typescript/module/src/Charts/graphUtils.d.ts +1 -1
  112. package/lib/typescript/module/src/Charts/graphUtils.d.ts.map +1 -1
  113. package/lib/typescript/module/src/Charts/index.d.ts +9 -3
  114. package/lib/typescript/module/src/Charts/index.d.ts.map +1 -1
  115. package/lib/typescript/module/src/Charts/maths.d.ts +15 -1
  116. package/lib/typescript/module/src/Charts/maths.d.ts.map +1 -1
  117. package/package.json +5 -5
  118. package/src/Charts/BottomAxis/AxisLine.tsx +1 -1
  119. package/src/Charts/BottomAxis/BottomAxis.tsx +100 -19
  120. package/src/Charts/BottomAxis/Tick.tsx +61 -15
  121. package/src/Charts/BottomAxis/index.tsx +5 -1
  122. package/src/Charts/Cursor.tsx +38 -10
  123. package/src/Charts/Dot.tsx +64 -0
  124. package/src/Charts/Dots.tsx +96 -0
  125. package/src/Charts/Linechart/index.tsx +1 -1
  126. package/src/Charts/YAxis.tsx +103 -0
  127. package/src/Charts/ZoomableLinechart/ScalablePath.tsx +8 -9
  128. package/src/Charts/ZoomableLinechart/index.tsx +1 -1
  129. package/src/Charts/gesture.ts +132 -71
  130. package/src/Charts/graphUtils.ts +78 -16
  131. package/src/Charts/index.tsx +9 -0
  132. package/src/Charts/maths.ts +107 -16
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.selectCurve = exports.normalize = exports.magnitude = exports.getYForX = exports.cubicBezierYForX = exports.commandsToBezier = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
6
+ exports.selectCurve = exports.normalize = exports.magnitude = exports.getYOnBezier = exports.getYForXOnBeziers = exports.getYForX = exports.getYBeyondPathEnds = exports.findBezierIndex = exports.cubicBezierYForX = exports.commandsToBezier = void 0;
7
+ var _reactNativeSkia = require("react-native-skia");
8
8
  // code from William Candillon
9
9
 
10
10
  const round = (value, precision = 0) => {
@@ -117,27 +117,43 @@ exports.cubicBezierYForX = cubicBezierYForX;
117
117
  const selectCurve = (cmds, x) => {
118
118
  'worklet';
119
119
 
120
- let from = (0, _reactNativeSkia.vec)(0, 0);
120
+ // Plain numbers while scanning: vec() allocates a JSI host object, which
121
+ // dominated the UI thread when called per dot per frame
122
+ let fromX = 0;
123
+ let fromY = 0;
121
124
  for (let i = 0; i < cmds.length; i++) {
122
125
  const cmd = cmds[i];
123
126
  if (cmd == null) {
124
127
  return undefined;
125
128
  }
126
129
  if (cmd[0] === _reactNativeSkia.PathVerb.Move) {
127
- from = (0, _reactNativeSkia.vec)(cmd[1], cmd[2]);
130
+ fromX = cmd[1];
131
+ fromY = cmd[2];
128
132
  } else if (cmd[0] === _reactNativeSkia.PathVerb.Cubic) {
129
- const c1 = (0, _reactNativeSkia.vec)(cmd[1], cmd[2]);
130
- const c2 = (0, _reactNativeSkia.vec)(cmd[3], cmd[4]);
131
- const to = (0, _reactNativeSkia.vec)(cmd[5], cmd[6]);
132
- if (x >= from.x && x <= to.x) {
133
+ const toX = cmd[5];
134
+ const toY = cmd[6];
135
+ if (x >= fromX && x <= toX) {
133
136
  return {
134
- from,
135
- c1,
136
- c2,
137
- to
137
+ from: {
138
+ x: fromX,
139
+ y: fromY
140
+ },
141
+ c1: {
142
+ x: cmd[1],
143
+ y: cmd[2]
144
+ },
145
+ c2: {
146
+ x: cmd[3],
147
+ y: cmd[4]
148
+ },
149
+ to: {
150
+ x: toX,
151
+ y: toY
152
+ }
138
153
  };
139
154
  }
140
- from = to;
155
+ fromX = toX;
156
+ fromY = toY;
141
157
  }
142
158
  }
143
159
  return undefined;
@@ -174,14 +190,89 @@ exports.commandsToBezier = commandsToBezier;
174
190
  const getYForX = (cmds, x, precision = 2) => {
175
191
  'worklet';
176
192
 
177
- const cmdsNorm = commandsToBezier(cmds);
178
- const c = selectCurve(cmdsNorm, x);
193
+ const c = selectCurve(commandsToBezier(cmds), x);
179
194
  if (c == null) return undefined;
180
195
  return cubicBezierYForX(x, c.from, c.c1, c.c2, c.to, precision);
181
196
  };
182
197
 
183
- // See Path/getPath2D
198
+ /**
199
+ * Index of the cubic whose x range contains `x`, scanning from `start`; -1 if none.
200
+ * `cmds` must come from {@link commandsToBezier}.
201
+ */
184
202
  exports.getYForX = getYForX;
203
+ const findBezierIndex = (cmds, x, start = 0) => {
204
+ 'worklet';
205
+
206
+ for (let i = Math.max(start, 1); i < cmds.length; i++) {
207
+ const cmd = cmds[i];
208
+ if (cmd[0] !== _reactNativeSkia.PathVerb.Cubic) continue;
209
+ const prev = cmds[i - 1];
210
+ const fromX = prev[prev.length - 2];
211
+ if (x >= fromX && x <= cmd[5]) return i;
212
+ }
213
+ return -1;
214
+ };
215
+ exports.findBezierIndex = findBezierIndex;
216
+ const EPSILON = 1e-6;
217
+
218
+ /** y of the cubic at `cmds[index]` for `x`, without allocating; undefined when x has no t in [0, 1]. */
219
+ const getYOnBezier = (cmds, index, x) => {
220
+ 'worklet';
221
+
222
+ const prev = cmds[index - 1];
223
+ const cmd = cmds[index];
224
+ const x0 = prev[prev.length - 2];
225
+ const y0 = prev[prev.length - 1];
226
+ const x1 = cmd[1];
227
+ const y1 = cmd[2];
228
+ const x2 = cmd[3];
229
+ const y2 = cmd[4];
230
+ const x3 = cmd[5];
231
+ const y3 = cmd[6];
232
+
233
+ // commandsToBezier turns lines into cubics with c1 = from and c2 = to
234
+ if (x1 === x0 && y1 === y0 && x2 === x3 && y2 === y3) {
235
+ return x3 === x0 ? y0 : y0 + (y3 - y0) * (x - x0) / (x3 - x0);
236
+ }
237
+ // A vertical curve has no single y for x: use its start, like a vertical line
238
+ if (x0 === x1 && x1 === x2 && x2 === x3) return y0;
239
+ const roots = solveCubic(-x0 + 3 * x1 - 3 * x2 + x3, 3 * x0 - 6 * x1 + 3 * x2, -3 * x0 + 3 * x1, x0 - x);
240
+ for (let i = 0; i < roots.length; i++) {
241
+ const t = roots[i];
242
+ if (t >= -EPSILON && t <= 1 + EPSILON) {
243
+ return cubicSolve(Math.min(1, Math.max(0, t)), y0, y1, y2, y3);
244
+ }
245
+ }
246
+ return undefined;
247
+ };
248
+
249
+ /**
250
+ * y of the path's start when `x` is left of it, of its end when right of it, else undefined.
251
+ * Endpoints are stored as float32, so a point's exact x can fall a hair outside the path.
252
+ */
253
+ exports.getYOnBezier = getYOnBezier;
254
+ const getYBeyondPathEnds = (cmds, x) => {
255
+ 'worklet';
256
+
257
+ const first = cmds[0];
258
+ const last = cmds[cmds.length - 1];
259
+ if (first === undefined || last === undefined) return undefined;
260
+ if (x < first[1]) return first[2];
261
+ if (x > last[last.length - 2]) return last[last.length - 1];
262
+ return undefined;
263
+ };
264
+
265
+ /** Same as {@link getYForX} for commands already passed through {@link commandsToBezier}. */
266
+ exports.getYBeyondPathEnds = getYBeyondPathEnds;
267
+ const getYForXOnBeziers = (cmds, x) => {
268
+ 'worklet';
269
+
270
+ const index = findBezierIndex(cmds, x);
271
+ return index === -1 ? undefined : getYOnBezier(cmds, index, x);
272
+ };
273
+
274
+ // See Path/getPath2D
275
+ exports.getYForXOnBeziers = getYForXOnBeziers;
185
276
  const magnitude = p => Math.sqrt(p.x * p.x + p.y * p.y);
186
277
  exports.magnitude = magnitude;
187
278
  const normalize = p => {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","round","value","precision","p","Math","pow","cuberoot","x","y","abs","solveCubic","a","b","c","d","D","sqrt","q","roots","concat","u","t","acos","k","PI","cos","i","length","cubicSolve","p0","p1","p2","p3","cubicBezierYForX","pa","pb","pc","pd","ts","map","root","filter","exports","selectCurve","cmds","from","vec","cmd","undefined","PathVerb","Move","Cubic","c1","c2","to","commandsToBezier","normCmds","currCmd","Error","normCmd","Line","push","getYForX","cmdsNorm","magnitude","normalize","m"],"sourceRoot":"../../../src","sources":["Charts/maths.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","round","value","precision","p","Math","pow","cuberoot","x","y","abs","solveCubic","a","b","c","d","D","sqrt","q","roots","concat","u","t","acos","k","PI","cos","i","length","cubicSolve","p0","p1","p2","p3","cubicBezierYForX","pa","pb","pc","pd","ts","map","root","filter","exports","selectCurve","cmds","fromX","fromY","cmd","undefined","PathVerb","Move","Cubic","toX","toY","from","c1","c2","to","commandsToBezier","normCmds","currCmd","Error","normCmd","Line","push","getYForX","findBezierIndex","start","max","prev","EPSILON","getYOnBezier","index","x0","y0","x1","y1","x2","y2","x3","y3","min","getYBeyondPathEnds","first","last","getYForXOnBeziers","magnitude","normalize","m"],"sourceRoot":"../../../src","sources":["Charts/maths.ts"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { Line, vec } from '@shopify/react-native-skia';
3
+ import { Line, vec } from 'react-native-skia';
4
4
  import { StyleSheet } from 'react-native';
5
5
  import { useDerivedValue } from 'react-native-reanimated';
6
6
  import { getPositionWl } from "../gesture.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Line","vec","StyleSheet","useDerivedValue","getPositionWl","jsx","_jsx","AxisLine","props","width","focalX","scale","offsetX","offsetY","strokeWidth","hairlineWidth","color","p1","p1X","value","p2","p2X"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/AxisLine.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,GAAG,QAAoB,4BAA4B;AAElE,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAY3C,MAAMC,QAA2B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACnD,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,KAAK;IACLC,OAAO;IACPC,OAAO,GAAG,CAAC;IACXC,WAAW,GAAGZ,UAAU,CAACa,aAAa;IACtCC,KAAK,GAAG;EACV,CAAC,GAAGR,KAAK;EACT,MAAMS,EAAE,GAAGd,eAAe,CAAC,MAAM;IAC/B,MAAMe,GAAG,GAAGd,aAAa,CAAC,CAAC,EAAEM,MAAM,CAACS,KAAK,EAAER,KAAK,CAACQ,KAAK,EAAEP,OAAO,CAACO,KAAK,CAAC;IACtE,OAAOlB,GAAG,CAACiB,GAAG,EAAEL,OAAO,CAAC;EAC1B,CAAC,CAAC;EAEF,MAAMO,EAAE,GAAGjB,eAAe,CAAC,MAAM;IAC/B,MAAMkB,GAAG,GAAGjB,aAAa,CAACK,KAAK,EAAEC,MAAM,CAACS,KAAK,EAAER,KAAK,CAACQ,KAAK,EAAEP,OAAO,CAACO,KAAK,CAAC;IAC1E,OAAOlB,GAAG,CAACoB,GAAG,EAAER,OAAO,CAAC;EAC1B,CAAC,CAAC;EAEF,oBAAOP,IAAA,CAACN,IAAI;IAAOiB,EAAE;IAAEG,EAAE;IAAEJ,KAAK;IAAEF;EAAW,CAAK,CAAC;AACrD,CAAC;AAED,SAASP,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["Line","vec","StyleSheet","useDerivedValue","getPositionWl","jsx","_jsx","AxisLine","props","width","focalX","scale","offsetX","offsetY","strokeWidth","hairlineWidth","color","p1","p1X","value","p2","p2X"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/AxisLine.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,GAAG,QAAoB,mBAAmB;AAEzD,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAY3C,MAAMC,QAA2B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACnD,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,KAAK;IACLC,OAAO;IACPC,OAAO,GAAG,CAAC;IACXC,WAAW,GAAGZ,UAAU,CAACa,aAAa;IACtCC,KAAK,GAAG;EACV,CAAC,GAAGR,KAAK;EACT,MAAMS,EAAE,GAAGd,eAAe,CAAC,MAAM;IAC/B,MAAMe,GAAG,GAAGd,aAAa,CAAC,CAAC,EAAEM,MAAM,CAACS,KAAK,EAAER,KAAK,CAACQ,KAAK,EAAEP,OAAO,CAACO,KAAK,CAAC;IACtE,OAAOlB,GAAG,CAACiB,GAAG,EAAEL,OAAO,CAAC;EAC1B,CAAC,CAAC;EAEF,MAAMO,EAAE,GAAGjB,eAAe,CAAC,MAAM;IAC/B,MAAMkB,GAAG,GAAGjB,aAAa,CAACK,KAAK,EAAEC,MAAM,CAACS,KAAK,EAAER,KAAK,CAACQ,KAAK,EAAEP,OAAO,CAACO,KAAK,CAAC;IAC1E,OAAOlB,GAAG,CAACoB,GAAG,EAAER,OAAO,CAAC;EAC1B,CAAC,CAAC;EAEF,oBAAOP,IAAA,CAACN,IAAI;IAAOiB,EAAE;IAAEG,EAAE;IAAEJ,KAAK;IAAEF;EAAW,CAAK,CAAC;AACrD,CAAC;AAED,SAASP,QAAQ","ignoreList":[]}
@@ -1,39 +1,80 @@
1
1
  "use strict";
2
2
 
3
- // ChartUtilsScreen.tsx
4
- import { Canvas } from '@shopify/react-native-skia';
3
+ import { Canvas } from 'react-native-skia';
4
+ import { useMemo } from 'react';
5
5
  import { AxisLine } from "./AxisLine.js";
6
6
  import { Tick } from "./Tick.js";
7
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+
8
+ /** A tick at an explicit position in graph space, as returned by a d3 scale. */
9
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
10
  const BottomAxis = function (props) {
9
11
  const {
10
12
  labels,
13
+ ticks,
11
14
  scale,
12
15
  focalX,
13
16
  offsetX,
14
17
  style,
15
18
  width,
16
- font
19
+ font,
20
+ offsetY = 0,
21
+ standalone = true,
22
+ showAxisLine = true,
23
+ color,
24
+ labelColor,
25
+ tickLength,
26
+ strokeWidth,
27
+ dash,
28
+ labelAlign,
29
+ labelGap,
30
+ showLabels
17
31
  } = props;
18
- const offsetY = props.offsetY ?? 0;
19
- const tickInterval = labels.length > 1 ? width / (labels.length - 1) : 0;
20
- return /*#__PURE__*/_jsxs(Canvas, {
21
- style: style,
22
- children: [/*#__PURE__*/_jsx(AxisLine, {
32
+ const items = useMemo(() => {
33
+ if (ticks !== undefined) return ticks;
34
+ if (labels === undefined) return [];
35
+ const interval = labels.length > 1 ? width / (labels.length - 1) : 0;
36
+ return labels.map((label, i) => ({
37
+ x: interval * i,
38
+ label
39
+ }));
40
+ }, [ticks, labels, width]);
41
+
42
+ // Callers naturally write `dash={[3, 4]}`; keying the memo on the values
43
+ // keeps one reference so the memoized Ticks are not rebuilt every render
44
+ const dashStart = dash?.[0];
45
+ const dashEnd = dash?.[1];
46
+ const dashIntervals = useMemo(() => dashStart === undefined || dashEnd === undefined ? undefined : [dashStart, dashEnd], [dashStart, dashEnd]);
47
+ const content = /*#__PURE__*/_jsxs(_Fragment, {
48
+ children: [showAxisLine ? /*#__PURE__*/_jsx(AxisLine, {
23
49
  width,
24
50
  offsetY,
25
51
  focalX,
26
52
  scale,
27
- offsetX
28
- }), labels.map((_label, i) => /*#__PURE__*/_jsx(Tick, {
29
- label: _label,
30
- initPosition: tickInterval * i,
53
+ offsetX,
54
+ color,
55
+ strokeWidth
56
+ }) : null, items.map(tick => /*#__PURE__*/_jsx(Tick, {
57
+ initPosition: tick.x,
58
+ label: tick.label,
59
+ dash: dashIntervals,
31
60
  offsetX,
32
61
  offsetY,
33
62
  focalX,
34
63
  scale,
35
- font
36
- }, i))]
64
+ font,
65
+ color,
66
+ labelColor,
67
+ tickLength,
68
+ strokeWidth,
69
+ labelAlign,
70
+ labelGap,
71
+ showLabel: showLabels
72
+ }, `${tick.x}:${tick.label}`))]
73
+ });
74
+ if (!standalone) return content;
75
+ return /*#__PURE__*/_jsx(Canvas, {
76
+ style: style,
77
+ children: content
37
78
  });
38
79
  };
39
80
  export { BottomAxis };
@@ -1 +1 @@
1
- {"version":3,"names":["Canvas","AxisLine","Tick","jsx","_jsx","jsxs","_jsxs","BottomAxis","props","labels","scale","focalX","offsetX","style","width","font","offsetY","tickInterval","length","children","map","_label","i","label","initPosition"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/BottomAxis.tsx"],"mappings":";;AAAA;AACA,SAASA,MAAM,QAAqB,4BAA4B;AAIhE,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,IAAI,QAAQ,WAAQ;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAc9B,MAAMC,UAA+B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACvD,MAAM;IAAEC,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO;IAAEC,KAAK;IAAEC,KAAK;IAAEC;EAAK,CAAC,GAAGP,KAAK;EACpE,MAAMQ,OAAO,GAAGR,KAAK,CAACQ,OAAO,IAAI,CAAC;EAClC,MAAMC,YAAY,GAAGR,MAAM,CAACS,MAAM,GAAG,CAAC,GAAGJ,KAAK,IAAIL,MAAM,CAACS,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;EAExE,oBACEZ,KAAA,CAACN,MAAM;IAACa,KAAK,EAAEA,KAAM;IAAAM,QAAA,gBACnBf,IAAA,CAACH,QAAQ;MAAOa,KAAK;MAAEE,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEE;IAAO,CAAK,CAAC,EAC3DH,MAAM,CAACW,GAAG,CAAC,CAACC,MAAM,EAAEC,CAAC,kBACpBlB,IAAA,CAACF,IAAI;MAEHqB,KAAK,EAAEF,MAAO;MACdG,YAAY,EAAEP,YAAY,GAAGK,CAAE;MACzBV,OAAO;MAAEI,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEK;IAAI,GAHtCO,CAIN,CACF,CAAC;EAAA,CACI,CAAC;AAEb,CAAC;AAED,SAASf,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["Canvas","useMemo","AxisLine","Tick","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","BottomAxis","props","labels","ticks","scale","focalX","offsetX","style","width","font","offsetY","standalone","showAxisLine","color","labelColor","tickLength","strokeWidth","dash","labelAlign","labelGap","showLabels","items","undefined","interval","length","map","label","i","x","dashStart","dashEnd","dashIntervals","content","children","tick","initPosition","showLabel"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/BottomAxis.tsx"],"mappings":";;AAAA,SACEA,MAAM,QAGD,mBAAmB;AAC1B,SAASC,OAAO,QAAiB,OAAO;AAGxC,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,IAAI,QAAQ,WAAQ;;AAE7B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAgCA,MAAMC,UAA+B,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACvD,MAAM;IACJC,MAAM;IACNC,KAAK;IACLC,KAAK;IACLC,MAAM;IACNC,OAAO;IACPC,KAAK;IACLC,KAAK;IACLC,IAAI;IACJC,OAAO,GAAG,CAAC;IACXC,UAAU,GAAG,IAAI;IACjBC,YAAY,GAAG,IAAI;IACnBC,KAAK;IACLC,UAAU;IACVC,UAAU;IACVC,WAAW;IACXC,IAAI;IACJC,UAAU;IACVC,QAAQ;IACRC;EACF,CAAC,GAAGnB,KAAK;EAET,MAAMoB,KAAK,GAAG9B,OAAO,CAAa,MAAM;IACtC,IAAIY,KAAK,KAAKmB,SAAS,EAAE,OAAOnB,KAAK;IACrC,IAAID,MAAM,KAAKoB,SAAS,EAAE,OAAO,EAAE;IACnC,MAAMC,QAAQ,GAAGrB,MAAM,CAACsB,MAAM,GAAG,CAAC,GAAGhB,KAAK,IAAIN,MAAM,CAACsB,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;IACpE,OAAOtB,MAAM,CAACuB,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,MAAM;MAAEC,CAAC,EAAEL,QAAQ,GAAGI,CAAC;MAAED;IAAM,CAAC,CAAC,CAAC;EAC/D,CAAC,EAAE,CAACvB,KAAK,EAAED,MAAM,EAAEM,KAAK,CAAC,CAAC;;EAE1B;EACA;EACA,MAAMqB,SAAS,GAAGZ,IAAI,GAAG,CAAC,CAAC;EAC3B,MAAMa,OAAO,GAAGb,IAAI,GAAG,CAAC,CAAC;EACzB,MAAMc,aAAa,GAAGxC,OAAO,CAC3B,MACEsC,SAAS,KAAKP,SAAS,IAAIQ,OAAO,KAAKR,SAAS,GAC5CA,SAAS,GACR,CAACO,SAAS,EAAEC,OAAO,CAAsB,EAChD,CAACD,SAAS,EAAEC,OAAO,CACrB,CAAC;EAED,MAAME,OAAO,gBACXjC,KAAA,CAAAF,SAAA;IAAAoC,QAAA,GACGrB,YAAY,gBACXjB,IAAA,CAACH,QAAQ;MACDgB,KAAK;MAAEE,OAAO;MAAEL,MAAM;MAAED,KAAK;MAAEE,OAAO;MAAEO,KAAK;MAAEG;IAAW,CACjE,CAAC,GACA,IAAI,EACPK,KAAK,CAACI,GAAG,CAAES,IAAI,iBACdvC,IAAA,CAACF,IAAI;MAEH0C,YAAY,EAAED,IAAI,CAACN,CAAE;MACrBF,KAAK,EAAEQ,IAAI,CAACR,KAAM;MAClBT,IAAI,EAAEc,aAAc;MAElBzB,OAAO;MACPI,OAAO;MACPL,MAAM;MACND,KAAK;MACLK,IAAI;MACJI,KAAK;MACLC,UAAU;MACVC,UAAU;MACVC,WAAW;MACXE,UAAU;MACVC,QAAQ;MAEViB,SAAS,EAAEhB;IAAW,GAjBjB,GAAGc,IAAI,CAACN,CAAC,IAAIM,IAAI,CAACR,KAAK,EAkB7B,CACF,CAAC;EAAA,CACF,CACH;EAED,IAAI,CAACf,UAAU,EAAE,OAAOqB,OAAO;EAC/B,oBAAOrC,IAAA,CAACL,MAAM;IAACiB,KAAK,EAAEA,KAAM;IAAA0B,QAAA,EAAED;EAAO,CAAS,CAAC;AACjD,CAAC;AAED,SAAShC,UAAU","ignoreList":[]}
@@ -1,37 +1,55 @@
1
1
  "use strict";
2
2
 
3
- import { Group, Line, Text, vec } from '@shopify/react-native-skia';
4
- import React from 'react';
3
+ import { DashPathEffect, Group, Line, Text, vec } from 'react-native-skia';
4
+ import { memo, useMemo } from 'react';
5
5
  import { useDerivedValue } from 'react-native-reanimated';
6
6
  import { getPositionWl } from "../gesture.js";
7
7
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
- export const Tick = props => {
8
+ const TickComponent = function (props) {
9
9
  const {
10
10
  label,
11
11
  scale,
12
12
  focalX,
13
13
  offsetX,
14
14
  initPosition,
15
- font
15
+ font,
16
+ color = 'black',
17
+ labelColor,
18
+ tickLength = 10,
19
+ strokeWidth,
20
+ dash,
21
+ showLabel = true,
22
+ labelAlign = 'center',
23
+ labelGap = 6
16
24
  } = props;
17
25
  const offsetY = props.offsetY ?? 0;
18
26
  const transform = useDerivedValue(() => [{
19
27
  translateX: getPositionWl(initPosition, focalX.value, scale.value, offsetX.value)
20
28
  }]);
21
- const width = font.getGlyphWidths(font.getGlyphIDs(label)).reduce((a, b) => a + b, 0);
29
+ const width = useMemo(() => font.getGlyphWidths(font.getGlyphIDs(label)).reduce((a, b) => a + b, 0), [font, label]);
30
+ const labelX = labelAlign === 'left' ? labelGap : -width / 2;
22
31
  return /*#__PURE__*/_jsxs(Group, {
23
32
  transform: transform,
24
33
  children: [/*#__PURE__*/_jsx(Line, {
25
- color: "black",
34
+ color: color,
35
+ strokeWidth: strokeWidth,
26
36
  p1: vec(0, offsetY),
27
- p2: vec(0, offsetY + 10)
28
- }), /*#__PURE__*/_jsx(Text, {
37
+ p2: vec(0, offsetY + tickLength),
38
+ children: dash !== undefined ? /*#__PURE__*/_jsx(DashPathEffect, {
39
+ intervals: dash
40
+ }) : null
41
+ }), showLabel ? /*#__PURE__*/_jsx(Text, {
29
42
  text: label,
30
- color: "black",
31
- x: -width / 2,
43
+ color: labelColor ?? color,
44
+ x: labelX,
32
45
  y: offsetY + 23,
33
46
  font: font
34
- })]
47
+ }) : null]
35
48
  });
36
49
  };
50
+
51
+ // Memoized: zoom/pan flows through shared values, so a Tick only needs to
52
+ // re-render when its label or base position changes
53
+ export const Tick = /*#__PURE__*/memo(TickComponent);
54
+ Tick.displayName = 'Tick';
37
55
  //# sourceMappingURL=Tick.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Group","Line","Text","vec","React","useDerivedValue","getPositionWl","jsx","_jsx","jsxs","_jsxs","Tick","props","label","scale","focalX","offsetX","initPosition","font","offsetY","transform","translateX","value","width","getGlyphWidths","getGlyphIDs","reduce","a","b","children","color","p1","p2","text","x","y"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/Tick.tsx"],"mappings":";;AAAA,SACEA,KAAK,EACLC,IAAI,EACJC,IAAI,EACJC,GAAG,QAEE,4BAA4B;AACnC,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAY3C,OAAO,MAAMC,IAAyB,GAAIC,KAAK,IAAK;EAClD,MAAM;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,OAAO;IAAEC,YAAY;IAAEC;EAAK,CAAC,GAAGN,KAAK;EACnE,MAAMO,OAAO,GAAGP,KAAK,CAACO,OAAO,IAAI,CAAC;EAClC,MAAMC,SAAS,GAAGf,eAAe,CAAC,MAAM,CACtC;IACEgB,UAAU,EAAEf,aAAa,CACvBW,YAAY,EACZF,MAAM,CAACO,KAAK,EACZR,KAAK,CAACQ,KAAK,EACXN,OAAO,CAACM,KACV;EACF,CAAC,CACF,CAAC;EACF,MAAMC,KAAK,GAAGL,IAAI,CACfM,cAAc,CAACN,IAAI,CAACO,WAAW,CAACZ,KAAK,CAAC,CAAC,CACvCa,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;EAE7B,oBACElB,KAAA,CAACV,KAAK;IAACoB,SAAS,EAAEA,SAAU;IAAAS,QAAA,gBAC1BrB,IAAA,CAACP,IAAI;MAAC6B,KAAK,EAAC,OAAO;MAACC,EAAE,EAAE5B,GAAG,CAAC,CAAC,EAAEgB,OAAO,CAAE;MAACa,EAAE,EAAE7B,GAAG,CAAC,CAAC,EAAEgB,OAAO,GAAG,EAAE;IAAE,CAAE,CAAC,eACrEX,IAAA,CAACN,IAAI;MACH+B,IAAI,EAAEpB,KAAM;MACZiB,KAAK,EAAC,OAAO;MACbI,CAAC,EAAE,CAACX,KAAK,GAAG,CAAE;MACdY,CAAC,EAAEhB,OAAO,GAAG,EAAG;MAChBD,IAAI,EAAEA;IAAK,CACZ,CAAC;EAAA,CACG,CAAC;AAEZ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DashPathEffect","Group","Line","Text","vec","memo","useMemo","useDerivedValue","getPositionWl","jsx","_jsx","jsxs","_jsxs","TickComponent","props","label","scale","focalX","offsetX","initPosition","font","color","labelColor","tickLength","strokeWidth","dash","showLabel","labelAlign","labelGap","offsetY","transform","translateX","value","width","getGlyphWidths","getGlyphIDs","reduce","a","b","labelX","children","p1","p2","undefined","intervals","text","x","y","Tick","displayName"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/Tick.tsx"],"mappings":";;AAAA,SACEA,cAAc,EACdC,KAAK,EACLC,IAAI,EACJC,IAAI,EACJC,GAAG,QAGE,mBAAmB;AAC1B,SAASC,IAAI,EAAEC,OAAO,QAAQ,OAAO;AACrC,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,eAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAwB3C,MAAMC,aAAa,GAAG,SAAAA,CAAUC,KAAgB,EAAE;EAChD,MAAM;IACJC,KAAK;IACLC,KAAK;IACLC,MAAM;IACNC,OAAO;IACPC,YAAY;IACZC,IAAI;IACJC,KAAK,GAAG,OAAO;IACfC,UAAU;IACVC,UAAU,GAAG,EAAE;IACfC,WAAW;IACXC,IAAI;IACJC,SAAS,GAAG,IAAI;IAChBC,UAAU,GAAG,QAAQ;IACrBC,QAAQ,GAAG;EACb,CAAC,GAAGd,KAAK;EACT,MAAMe,OAAO,GAAGf,KAAK,CAACe,OAAO,IAAI,CAAC;EAClC,MAAMC,SAAS,GAAGvB,eAAe,CAAC,MAAM,CACtC;IACEwB,UAAU,EAAEvB,aAAa,CACvBW,YAAY,EACZF,MAAM,CAACe,KAAK,EACZhB,KAAK,CAACgB,KAAK,EACXd,OAAO,CAACc,KACV;EACF,CAAC,CACF,CAAC;EACF,MAAMC,KAAK,GAAG3B,OAAO,CACnB,MACEc,IAAI,CAACc,cAAc,CAACd,IAAI,CAACe,WAAW,CAACpB,KAAK,CAAC,CAAC,CAACqB,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC,EACzE,CAAClB,IAAI,EAAEL,KAAK,CACd,CAAC;EACD,MAAMwB,MAAM,GAAGZ,UAAU,KAAK,MAAM,GAAGC,QAAQ,GAAG,CAACK,KAAK,GAAG,CAAC;EAE5D,oBACErB,KAAA,CAACX,KAAK;IAAC6B,SAAS,EAAEA,SAAU;IAAAU,QAAA,gBAC1B9B,IAAA,CAACR,IAAI;MACHmB,KAAK,EAAEA,KAAM;MACbG,WAAW,EAAEA,WAAY;MACzBiB,EAAE,EAAErC,GAAG,CAAC,CAAC,EAAEyB,OAAO,CAAE;MACpBa,EAAE,EAAEtC,GAAG,CAAC,CAAC,EAAEyB,OAAO,GAAGN,UAAU,CAAE;MAAAiB,QAAA,EAEhCf,IAAI,KAAKkB,SAAS,gBAAGjC,IAAA,CAACV,cAAc;QAAC4C,SAAS,EAAEnB;MAAK,CAAE,CAAC,GAAG;IAAI,CAC5D,CAAC,EACNC,SAAS,gBACRhB,IAAA,CAACP,IAAI;MACH0C,IAAI,EAAE9B,KAAM;MACZM,KAAK,EAAEC,UAAU,IAAID,KAAM;MAC3ByB,CAAC,EAAEP,MAAO;MACVQ,CAAC,EAAElB,OAAO,GAAG,EAAG;MAChBT,IAAI,EAAEA;IAAK,CACZ,CAAC,GACA,IAAI;EAAA,CACH,CAAC;AAEZ,CAAC;;AAED;AACA;AACA,OAAO,MAAM4B,IAAI,gBAAG3C,IAAI,CAACQ,aAAa,CAAC;AACvCmC,IAAI,CAACC,WAAW,GAAG,MAAM","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["AxisLine","BottomAxis","Tick"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAA4B,eAAY;AACzD,SAASC,UAAU,QAA8B,iBAAc;AAC/D,SAASC,IAAI,QAAwB,WAAQ","ignoreList":[]}
1
+ {"version":3,"names":["AxisLine","BottomAxis","Tick"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAA4B,eAAY;AACzD,SACEC,UAAU,QAGL,iBAAc;AACrB,SAASC,IAAI,QAAwB,WAAQ","ignoreList":[]}
@@ -1,27 +1,37 @@
1
1
  "use strict";
2
2
 
3
- import { Circle } from '@shopify/react-native-skia';
3
+ import { Circle } from 'react-native-skia';
4
+ import { useEffect } from 'react';
4
5
  import { useDerivedValue } from 'react-native-reanimated';
5
- import { getYForX } from "./maths.js";
6
- import { jsx as _jsx } from "react/jsx-runtime";
6
+ import { commandsToBezier, getYForXOnBeziers } from "./maths.js";
7
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
7
8
  const CURSOR_SIZE = 10;
8
9
  const Cursor = function ({
9
10
  commands,
10
11
  positionX,
11
12
  color,
13
+ strokeColor,
14
+ strokeWidth = 2,
12
15
  currentValue,
13
16
  translateY,
14
17
  size = CURSOR_SIZE
15
18
  }) {
16
- if (currentValue !== undefined && translateY !== undefined) {
17
- console.warn('currentValue has no effect when translateY is set');
18
- }
19
- const derivedTranslateY = useDerivedValue(() => {
19
+ const conflictingProps = currentValue !== undefined && translateY !== undefined;
20
+ useEffect(() => {
21
+ if (conflictingProps) console.warn('currentValue has no effect when translateY is set');
22
+ }, [conflictingProps]);
23
+
24
+ // Normalized once per path change, not on every cursor move
25
+ const beziers = useDerivedValue(() => {
20
26
  const _commands = commands?.value;
21
- if (_commands === undefined) {
27
+ return _commands === undefined ? undefined : commandsToBezier(_commands);
28
+ });
29
+ const derivedTranslateY = useDerivedValue(() => {
30
+ const _beziers = beziers.value;
31
+ if (_beziers === undefined) {
22
32
  return 0;
23
33
  }
24
- const _value = getYForX(_commands, positionX.value) ?? 0;
34
+ const _value = getYForXOnBeziers(_beziers, positionX.value) ?? 0;
25
35
  if (translateY === undefined && currentValue !== undefined) {
26
36
  currentValue.value = _value;
27
37
  }
@@ -33,12 +43,22 @@ const Cursor = function ({
33
43
  }, {
34
44
  translateY: _translateY.value ?? 0
35
45
  }]);
36
- return /*#__PURE__*/_jsx(Circle, {
37
- transform: transform,
38
- cx: 0,
39
- cy: 0,
40
- r: size,
41
- color: color
46
+ return /*#__PURE__*/_jsxs(_Fragment, {
47
+ children: [/*#__PURE__*/_jsx(Circle, {
48
+ transform: transform,
49
+ cx: 0,
50
+ cy: 0,
51
+ r: size,
52
+ color: color
53
+ }), strokeColor !== undefined ? /*#__PURE__*/_jsx(Circle, {
54
+ transform: transform,
55
+ cx: 0,
56
+ cy: 0,
57
+ r: size,
58
+ color: strokeColor,
59
+ style: "stroke",
60
+ strokeWidth: strokeWidth
61
+ }) : null]
42
62
  });
43
63
  };
44
64
  export { Cursor };
@@ -1 +1 @@
1
- {"version":3,"names":["Circle","useDerivedValue","getYForX","jsx","_jsx","CURSOR_SIZE","Cursor","commands","positionX","color","currentValue","translateY","size","undefined","console","warn","derivedTranslateY","_commands","value","_value","_translateY","transform","translateX","cx","cy","r"],"sourceRoot":"../../../src","sources":["Charts/Cursor.tsx"],"mappings":";;AAAA,SAASA,MAAM,QAA0B,4BAA4B;AAErE,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,QAAQ,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEnC,MAAMC,WAAW,GAAG,EAAE;AAWtB,MAAMC,MAAuB,GAAG,SAAAA,CAAU;EACxCC,QAAQ;EACRC,SAAS;EACTC,KAAK;EACLC,YAAY;EACZC,UAAU;EACVC,IAAI,GAAGP;AACT,CAAC,EAAE;EACD,IAAIK,YAAY,KAAKG,SAAS,IAAIF,UAAU,KAAKE,SAAS,EAAE;IAC1DC,OAAO,CAACC,IAAI,CAAC,mDAAmD,CAAC;EACnE;EAEA,MAAMC,iBAAiB,GAAGf,eAAe,CAAC,MAAM;IAC9C,MAAMgB,SAAS,GAAGV,QAAQ,EAAEW,KAAK;IACjC,IAAID,SAAS,KAAKJ,SAAS,EAAE;MAC3B,OAAO,CAAC;IACV;IACA,MAAMM,MAAM,GAAGjB,QAAQ,CAACe,SAAS,EAAET,SAAS,CAACU,KAAK,CAAC,IAAI,CAAC;IACxD,IAAIP,UAAU,KAAKE,SAAS,IAAIH,YAAY,KAAKG,SAAS,EAAE;MAC1DH,YAAY,CAACQ,KAAK,GAAGC,MAAM;IAC7B;IACA,OAAOA,MAAM;EACf,CAAC,CAAC;EAEF,MAAMC,WAAW,GAAGT,UAAU,IAAIK,iBAAiB;EAEnD,MAAMK,SAAS,GAAGpB,eAAe,CAAC,MAAM,CACtC;IAAEqB,UAAU,EAAEd,SAAS,CAACU;EAAM,CAAC,EAC/B;IAAEP,UAAU,EAAES,WAAW,CAACF,KAAK,IAAI;EAAE,CAAC,CACvC,CAAC;EACF,oBAAOd,IAAA,CAACJ,MAAM;IAACqB,SAAS,EAAEA,SAAU;IAACE,EAAE,EAAE,CAAE;IAACC,EAAE,EAAE,CAAE;IAACC,CAAC,EAAEb,IAAK;IAACH,KAAK,EAAEA;EAAM,CAAE,CAAC;AAC9E,CAAC;AAED,SAASH,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["Circle","useEffect","useDerivedValue","commandsToBezier","getYForXOnBeziers","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","CURSOR_SIZE","Cursor","commands","positionX","color","strokeColor","strokeWidth","currentValue","translateY","size","conflictingProps","undefined","console","warn","beziers","_commands","value","derivedTranslateY","_beziers","_value","_translateY","transform","translateX","children","cx","cy","r","style"],"sourceRoot":"../../../src","sources":["Charts/Cursor.tsx"],"mappings":";;AAAA,SAASA,MAAM,QAA0B,mBAAmB;AAC5D,SAASC,SAAS,QAAiB,OAAO;AAC1C,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,gBAAgB,EAAEC,iBAAiB,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAE9D,MAAMC,WAAW,GAAG,EAAE;AActB,MAAMC,MAAuB,GAAG,SAAAA,CAAU;EACxCC,QAAQ;EACRC,SAAS;EACTC,KAAK;EACLC,WAAW;EACXC,WAAW,GAAG,CAAC;EACfC,YAAY;EACZC,UAAU;EACVC,IAAI,GAAGT;AACT,CAAC,EAAE;EACD,MAAMU,gBAAgB,GAAGH,YAAY,KAAKI,SAAS,IAAIH,UAAU,KAAKG,SAAS;EAC/ErB,SAAS,CAAC,MAAM;IACd,IAAIoB,gBAAgB,EAClBE,OAAO,CAACC,IAAI,CAAC,mDAAmD,CAAC;EACrE,CAAC,EAAE,CAACH,gBAAgB,CAAC,CAAC;;EAEtB;EACA,MAAMI,OAAO,GAAGvB,eAAe,CAAC,MAAM;IACpC,MAAMwB,SAAS,GAAGb,QAAQ,EAAEc,KAAK;IACjC,OAAOD,SAAS,KAAKJ,SAAS,GAAGA,SAAS,GAAGnB,gBAAgB,CAACuB,SAAS,CAAC;EAC1E,CAAC,CAAC;EAEF,MAAME,iBAAiB,GAAG1B,eAAe,CAAC,MAAM;IAC9C,MAAM2B,QAAQ,GAAGJ,OAAO,CAACE,KAAK;IAC9B,IAAIE,QAAQ,KAAKP,SAAS,EAAE;MAC1B,OAAO,CAAC;IACV;IACA,MAAMQ,MAAM,GAAG1B,iBAAiB,CAACyB,QAAQ,EAAEf,SAAS,CAACa,KAAK,CAAC,IAAI,CAAC;IAChE,IAAIR,UAAU,KAAKG,SAAS,IAAIJ,YAAY,KAAKI,SAAS,EAAE;MAC1DJ,YAAY,CAACS,KAAK,GAAGG,MAAM;IAC7B;IACA,OAAOA,MAAM;EACf,CAAC,CAAC;EAEF,MAAMC,WAAW,GAAGZ,UAAU,IAAIS,iBAAiB;EAEnD,MAAMI,SAAS,GAAG9B,eAAe,CAAC,MAAM,CACtC;IAAE+B,UAAU,EAAEnB,SAAS,CAACa;EAAM,CAAC,EAC/B;IAAER,UAAU,EAAEY,WAAW,CAACJ,KAAK,IAAI;EAAE,CAAC,CACvC,CAAC;EACF,oBACEjB,KAAA,CAAAF,SAAA;IAAA0B,QAAA,gBACE5B,IAAA,CAACN,MAAM;MAACgC,SAAS,EAAEA,SAAU;MAACG,EAAE,EAAE,CAAE;MAACC,EAAE,EAAE,CAAE;MAACC,CAAC,EAAEjB,IAAK;MAACL,KAAK,EAAEA;IAAM,CAAE,CAAC,EACpEC,WAAW,KAAKM,SAAS,gBACxBhB,IAAA,CAACN,MAAM;MACLgC,SAAS,EAAEA,SAAU;MACrBG,EAAE,EAAE,CAAE;MACNC,EAAE,EAAE,CAAE;MACNC,CAAC,EAAEjB,IAAK;MACRL,KAAK,EAAEC,WAAY;MACnBsB,KAAK,EAAC,QAAQ;MACdrB,WAAW,EAAEA;IAAY,CAC1B,CAAC,GACA,IAAI;EAAA,CACR,CAAC;AAEP,CAAC;AAED,SAASL,MAAM","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ import { Circle, Group } from 'react-native-skia';
4
+ import { memo } from 'react';
5
+ import { useDerivedValue } from 'react-native-reanimated';
6
+ import { getPositionWl } from "./gesture.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ function DotComponent(props) {
9
+ const {
10
+ x,
11
+ y,
12
+ opacity = 1,
13
+ r = 4,
14
+ color = 'black',
15
+ fillColor,
16
+ strokeWidth = 2,
17
+ scale,
18
+ focalX,
19
+ offsetX
20
+ } = props;
21
+ const cx = useDerivedValue(() => {
22
+ const _x = typeof x === 'number' ? x : x.value;
23
+ if (scale === undefined || focalX === undefined || offsetX === undefined) return _x;
24
+ return getPositionWl(_x, focalX.value, scale.value, offsetX.value);
25
+ });
26
+ return /*#__PURE__*/_jsxs(Group, {
27
+ opacity: opacity,
28
+ children: [/*#__PURE__*/_jsx(Circle, {
29
+ cx: cx,
30
+ cy: y,
31
+ r: r,
32
+ color: fillColor ?? color
33
+ }), fillColor !== undefined ? /*#__PURE__*/_jsx(Circle, {
34
+ cx: cx,
35
+ cy: y,
36
+ r: r,
37
+ style: "stroke",
38
+ color: color,
39
+ strokeWidth: strokeWidth
40
+ }) : null]
41
+ });
42
+ }
43
+
44
+ // Memoized: charts render many dots and the position updates flow through
45
+ // shared values, so parent re-renders don't need to reach them
46
+ export const Dot = /*#__PURE__*/memo(DotComponent);
47
+ //# sourceMappingURL=Dot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Circle","Group","memo","useDerivedValue","getPositionWl","jsx","_jsx","jsxs","_jsxs","DotComponent","props","x","y","opacity","r","color","fillColor","strokeWidth","scale","focalX","offsetX","cx","_x","value","undefined","children","cy","style","Dot"],"sourceRoot":"../../../src","sources":["Charts/Dot.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,KAAK,QAAoB,mBAAmB;AAC7D,SAASC,IAAI,QAAQ,OAAO;AAC5B,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAoB1C,SAASC,YAAYA,CAACC,KAAe,EAAE;EACrC,MAAM;IACJC,CAAC;IACDC,CAAC;IACDC,OAAO,GAAG,CAAC;IACXC,CAAC,GAAG,CAAC;IACLC,KAAK,GAAG,OAAO;IACfC,SAAS;IACTC,WAAW,GAAG,CAAC;IACfC,KAAK;IACLC,MAAM;IACNC;EACF,CAAC,GAAGV,KAAK;EAET,MAAMW,EAAE,GAAGlB,eAAe,CAAC,MAAM;IAC/B,MAAMmB,EAAE,GAAG,OAAOX,CAAC,KAAK,QAAQ,GAAGA,CAAC,GAAGA,CAAC,CAACY,KAAK;IAC9C,IAAIL,KAAK,KAAKM,SAAS,IAAIL,MAAM,KAAKK,SAAS,IAAIJ,OAAO,KAAKI,SAAS,EACtE,OAAOF,EAAE;IACX,OAAOlB,aAAa,CAACkB,EAAE,EAAEH,MAAM,CAACI,KAAK,EAAEL,KAAK,CAACK,KAAK,EAAEH,OAAO,CAACG,KAAK,CAAC;EACpE,CAAC,CAAC;EAEF,oBACEf,KAAA,CAACP,KAAK;IAACY,OAAO,EAAEA,OAAQ;IAAAY,QAAA,gBACtBnB,IAAA,CAACN,MAAM;MAACqB,EAAE,EAAEA,EAAG;MAACK,EAAE,EAAEd,CAAE;MAACE,CAAC,EAAEA,CAAE;MAACC,KAAK,EAAEC,SAAS,IAAID;IAAM,CAAE,CAAC,EACzDC,SAAS,KAAKQ,SAAS,gBACtBlB,IAAA,CAACN,MAAM;MACLqB,EAAE,EAAEA,EAAG;MACPK,EAAE,EAAEd,CAAE;MACNE,CAAC,EAAEA,CAAE;MACLa,KAAK,EAAC,QAAQ;MACdZ,KAAK,EAAEA,KAAM;MACbE,WAAW,EAAEA;IAAY,CAC1B,CAAC,GACA,IAAI;EAAA,CACH,CAAC;AAEZ;;AAEA;AACA;AACA,OAAO,MAAMW,GAAG,gBAAG1B,IAAI,CAACO,YAAY,CAAC","ignoreList":[]}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ import { Path, Skia } from 'react-native-skia';
4
+ import { useDerivedValue } from 'react-native-reanimated';
5
+ import { getPositionWl } from "./gesture.js";
6
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
7
+ /**
8
+ * Draw a whole series of dots as a single Skia path (two with `fillColor`).
9
+ * Unlike mapping over {@link Dot}, this runs one worklet per frame instead of
10
+ * one per dot, which keeps large series smooth during zoom/pan gestures.
11
+ * Per-dot opacity is binary here: dots below 0.5 are hidden.
12
+ */
13
+ const Dots = function (props) {
14
+ const {
15
+ dots,
16
+ r = 4,
17
+ shape = 'circle',
18
+ color = 'black',
19
+ fillColor,
20
+ strokeWidth = 2,
21
+ width,
22
+ scale,
23
+ focalX,
24
+ offsetX
25
+ } = props;
26
+ const path = useDerivedValue(() => {
27
+ const p = Skia.PathBuilder.Make();
28
+ const margin = r + strokeWidth;
29
+ for (const dot of dots) {
30
+ if (dot.opacity.value < 0.5) continue;
31
+ const x = scale === undefined || focalX === undefined || offsetX === undefined ? dot.x.value : getPositionWl(dot.x.value, focalX.value, scale.value, offsetX.value);
32
+ if (width !== undefined && (x < -margin || x > width + margin)) continue;
33
+ const y = dot.y.value;
34
+ if (shape === 'diamond') {
35
+ // One addPoly beats four moveTo/lineTo calls: each is a JSI hop, and
36
+ // this worklet rebuilds every dot on every frame of a gesture
37
+ p.addPoly([{
38
+ x,
39
+ y: y - r
40
+ }, {
41
+ x: x + r,
42
+ y
43
+ }, {
44
+ x,
45
+ y: y + r
46
+ }, {
47
+ x: x - r,
48
+ y
49
+ }], true);
50
+ } else {
51
+ p.addCircle(x, y, r);
52
+ }
53
+ }
54
+ return p.build();
55
+ });
56
+ return /*#__PURE__*/_jsxs(_Fragment, {
57
+ children: [/*#__PURE__*/_jsx(Path, {
58
+ path: path,
59
+ color: fillColor ?? color
60
+ }), fillColor !== undefined ? /*#__PURE__*/_jsx(Path, {
61
+ path: path,
62
+ style: "stroke",
63
+ color: color,
64
+ strokeWidth: strokeWidth,
65
+ strokeJoin: "round"
66
+ }) : null]
67
+ });
68
+ };
69
+ export { Dots };
70
+ //# sourceMappingURL=Dots.js.map