@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
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Path","Skia","useDerivedValue","getPositionWl","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Dots","props","dots","r","shape","color","fillColor","strokeWidth","width","scale","focalX","offsetX","path","p","PathBuilder","Make","margin","dot","opacity","value","x","undefined","y","addPoly","addCircle","build","children","style","strokeJoin"],"sourceRoot":"../../../src","sources":["Charts/Dots.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,IAAI,QAAoB,mBAAmB;AAE1D,SAASC,eAAe,QAA0B,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAqB1C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,IAAmB,GAAG,SAAAA,CAAUC,KAAK,EAAE;EAC3C,MAAM;IACJC,IAAI;IACJC,CAAC,GAAG,CAAC;IACLC,KAAK,GAAG,QAAQ;IAChBC,KAAK,GAAG,OAAO;IACfC,SAAS;IACTC,WAAW,GAAG,CAAC;IACfC,KAAK;IACLC,KAAK;IACLC,MAAM;IACNC;EACF,CAAC,GAAGV,KAAK;EAET,MAAMW,IAAI,GAAGpB,eAAe,CAAC,MAAM;IACjC,MAAMqB,CAAC,GAAGtB,IAAI,CAACuB,WAAW,CAACC,IAAI,CAAC,CAAC;IACjC,MAAMC,MAAM,GAAGb,CAAC,GAAGI,WAAW;IAC9B,KAAK,MAAMU,GAAG,IAAIf,IAAI,EAAE;MACtB,IAAIe,GAAG,CAACC,OAAO,CAACC,KAAK,GAAG,GAAG,EAAE;MAC7B,MAAMC,CAAC,GACLX,KAAK,KAAKY,SAAS,IAAIX,MAAM,KAAKW,SAAS,IAAIV,OAAO,KAAKU,SAAS,GAChEJ,GAAG,CAACG,CAAC,CAACD,KAAK,GACX1B,aAAa,CACXwB,GAAG,CAACG,CAAC,CAACD,KAAK,EACXT,MAAM,CAACS,KAAK,EACZV,KAAK,CAACU,KAAK,EACXR,OAAO,CAACQ,KACV,CAAC;MACP,IAAIX,KAAK,KAAKa,SAAS,KAAKD,CAAC,GAAG,CAACJ,MAAM,IAAII,CAAC,GAAGZ,KAAK,GAAGQ,MAAM,CAAC,EAAE;MAChE,MAAMM,CAAC,GAAGL,GAAG,CAACK,CAAC,CAACH,KAAK;MACrB,IAAIf,KAAK,KAAK,SAAS,EAAE;QACvB;QACA;QACAS,CAAC,CAACU,OAAO,CACP,CACE;UAAEH,CAAC;UAAEE,CAAC,EAAEA,CAAC,GAAGnB;QAAE,CAAC,EACf;UAAEiB,CAAC,EAAEA,CAAC,GAAGjB,CAAC;UAAEmB;QAAE,CAAC,EACf;UAAEF,CAAC;UAAEE,CAAC,EAAEA,CAAC,GAAGnB;QAAE,CAAC,EACf;UAAEiB,CAAC,EAAEA,CAAC,GAAGjB,CAAC;UAAEmB;QAAE,CAAC,CAChB,EACD,IACF,CAAC;MACH,CAAC,MAAM;QACLT,CAAC,CAACW,SAAS,CAACJ,CAAC,EAAEE,CAAC,EAAEnB,CAAC,CAAC;MACtB;IACF;IACA,OAAOU,CAAC,CAACY,KAAK,CAAC,CAAC;EAClB,CAAC,CAAC;EAEF,oBACE1B,KAAA,CAAAF,SAAA;IAAA6B,QAAA,gBACE/B,IAAA,CAACL,IAAI;MAACsB,IAAI,EAAEA,IAAK;MAACP,KAAK,EAAEC,SAAS,IAAID;IAAM,CAAE,CAAC,EAC9CC,SAAS,KAAKe,SAAS,gBACtB1B,IAAA,CAACL,IAAI;MACHsB,IAAI,EAAEA,IAAK;MACXe,KAAK,EAAC,QAAQ;MACdtB,KAAK,EAAEA,KAAM;MACbE,WAAW,EAAEA,WAAY;MACzBqB,UAAU,EAAC;IAAO,CACnB,CAAC,GACA,IAAI;EAAA,CACR,CAAC;AAEP,CAAC;AAED,SAAS5B,IAAI","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { Canvas, Group, Path } from '@shopify/react-native-skia';
3
+ import { Canvas, Group, Path } from 'react-native-skia';
4
4
  import React from 'react';
5
5
 
6
6
  // Require at least one of `path` / `paths` at compile time
@@ -1 +1 @@
1
- {"version":3,"names":["Canvas","Group","Path","React","jsx","_jsx","jsxs","_jsxs","LineChart","props","width","height","style","path","children","color","paths","background","offsetX","offsetY","_paths","undefined","length","console","warn","transform","translateY","translateX","map","_path","i","strokeWidth","strokeJoin","strokeCap","id"],"sourceRoot":"../../../../src","sources":["Charts/Linechart/index.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,KAAK,EAAEC,IAAI,QAAqB,4BAA4B;AAE7E,OAAOC,KAAK,MAAM,OAAO;;AAoBzB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOA,MAAMC,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,oBACEnB,IAAA,CAACL,MAAM;IACLY,KAAK,EAAE,CACL;MACEF,KAAK;MACLC;IACF,CAAC,EACDC,KAAK,CACL;IAAAE,QAAA,eAEFP,KAAA,CAACN,KAAK;MAACwB,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEP;MAAQ,CAAC,EAAE;QAAEQ,UAAU,EAAET;MAAQ,CAAC,CAAE;MAAAJ,QAAA,GAClEG,UAAU,EACVG,MAAM,CAACQ,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,kBACnBzB,IAAA,CAACH,IAAI;QAEHU,KAAK,EAAC,QAAQ;QAAA,GACViB,KAAK;QACTE,WAAW,EAAE,CAAE;QACfC,UAAU,EAAC,OAAO;QAClBC,SAAS,EAAC;MAAO,GALZ,GAAGJ,KAAK,CAACK,EAAE,IAAIJ,CAAC,EAMtB,CACF,CAAC,EACDhB,QAAQ;IAAA,CACJ;EAAC,CACF,CAAC;AAEb,CAAC;AAED,SAASN,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["Canvas","Group","Path","React","jsx","_jsx","jsxs","_jsxs","LineChart","props","width","height","style","path","children","color","paths","background","offsetX","offsetY","_paths","undefined","length","console","warn","transform","translateY","translateX","map","_path","i","strokeWidth","strokeJoin","strokeCap","id"],"sourceRoot":"../../../../src","sources":["Charts/Linechart/index.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,KAAK,EAAEC,IAAI,QAAqB,mBAAmB;AAEpE,OAAOC,KAAK,MAAM,OAAO;;AAoBzB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOA,MAAMC,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,oBACEnB,IAAA,CAACL,MAAM;IACLY,KAAK,EAAE,CACL;MACEF,KAAK;MACLC;IACF,CAAC,EACDC,KAAK,CACL;IAAAE,QAAA,eAEFP,KAAA,CAACN,KAAK;MAACwB,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEP;MAAQ,CAAC,EAAE;QAAEQ,UAAU,EAAET;MAAQ,CAAC,CAAE;MAAAJ,QAAA,GAClEG,UAAU,EACVG,MAAM,CAACQ,GAAG,CAAC,CAACC,KAAK,EAAEC,CAAC,kBACnBzB,IAAA,CAACH,IAAI;QAEHU,KAAK,EAAC,QAAQ;QAAA,GACViB,KAAK;QACTE,WAAW,EAAE,CAAE;QACfC,UAAU,EAAC,OAAO;QAClBC,SAAS,EAAC;MAAO,GALZ,GAAGJ,KAAK,CAACK,EAAE,IAAIJ,CAAC,EAMtB,CACF,CAAC,EACDhB,QAAQ;IAAA,CACJ;EAAC,CACF,CAAC;AAEb,CAAC;AAED,SAASN,SAAS","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ import { Group, Line, Text, vec } from 'react-native-skia';
4
+ import { memo, useMemo } from 'react';
5
+ import { StyleSheet } from 'react-native';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const defaultFormatLabel = value => `${Math.round(value)}`;
8
+
9
+ /** Evenly spaced integer ticks from 0 to a padded maximum, e.g. 0, 26, 52, 78, 104. */
10
+ export const getPaddedTicks = function (maxValue, nbTicks = 4, padding = 1.15) {
11
+ const step = Math.max(1, Math.ceil(maxValue * padding / nbTicks));
12
+ return Array.from({
13
+ length: nbTicks + 1
14
+ }, (_, i) => i * step);
15
+ };
16
+ const YAxis = function (props) {
17
+ const {
18
+ width,
19
+ height,
20
+ font,
21
+ minY,
22
+ maxY,
23
+ nbTicks = 4,
24
+ color = 'black',
25
+ labelColor,
26
+ strokeWidth = StyleSheet.hairlineWidth,
27
+ showLabels = true,
28
+ formatLabel = defaultFormatLabel
29
+ } = props;
30
+
31
+ // Measured once per input change: parents re-render while panning
32
+ const rows = useMemo(() => {
33
+ // A flat range would divide by zero
34
+ const span = maxY - minY || 1;
35
+ const values = props.values ?? Array.from({
36
+ length: nbTicks
37
+ }, (_, i) => minY + (i + 1) * (maxY - minY) / nbTicks);
38
+ return values.map(value => {
39
+ const label = formatLabel(value);
40
+ const labelWidth = font.getGlyphWidths(font.getGlyphIDs(label)).reduce((a, b) => a + b, 0);
41
+ return {
42
+ label,
43
+ labelWidth,
44
+ transform: [{
45
+ translateY: height - (value - minY) * height / span
46
+ }],
47
+ p1: vec(0, 0),
48
+ p2: vec(showLabels ? width - 10 - labelWidth : width, 0)
49
+ };
50
+ });
51
+ }, [props.values, nbTicks, minY, maxY, height, width, font, showLabels, formatLabel]);
52
+ return /*#__PURE__*/_jsx(Group, {
53
+ children: rows.map((row, i) => /*#__PURE__*/_jsxs(Group, {
54
+ transform: row.transform,
55
+ children: [/*#__PURE__*/_jsx(Line, {
56
+ p1: row.p1,
57
+ p2: row.p2,
58
+ color: color,
59
+ strokeWidth: strokeWidth
60
+ }), showLabels ? /*#__PURE__*/_jsx(Text, {
61
+ text: row.label,
62
+ x: width - row.labelWidth,
63
+ y: font.getSize() / 2.5,
64
+ font: font,
65
+ color: labelColor ?? color
66
+ }) : null]
67
+ }, `YTick-${i}`))
68
+ });
69
+ };
70
+ const MemoYAxis = /*#__PURE__*/memo(YAxis);
71
+ MemoYAxis.displayName = 'YAxis';
72
+ export { MemoYAxis as YAxis };
73
+ //# sourceMappingURL=YAxis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Group","Line","Text","vec","memo","useMemo","StyleSheet","jsx","_jsx","jsxs","_jsxs","defaultFormatLabel","value","Math","round","getPaddedTicks","maxValue","nbTicks","padding","step","max","ceil","Array","from","length","_","i","YAxis","props","width","height","font","minY","maxY","color","labelColor","strokeWidth","hairlineWidth","showLabels","formatLabel","rows","span","values","map","label","labelWidth","getGlyphWidths","getGlyphIDs","reduce","a","b","transform","translateY","p1","p2","children","row","text","x","y","getSize","MemoYAxis","displayName"],"sourceRoot":"../../../src","sources":["Charts/YAxis.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { Path, Skia } from '@shopify/react-native-skia';
3
+ import { Path, Skia } from 'react-native-skia';
4
4
  import { useDerivedValue } from 'react-native-reanimated';
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  const ScalablePath = function (props) {
@@ -14,9 +14,10 @@ const ScalablePath = function (props) {
14
14
  } = props;
15
15
  const animatedPath = useDerivedValue(() => {
16
16
  // Affine equivalent of getPositionWl: x' = scale * x + focalX * (1 - scale) + offsetX
17
- const _path = path.value.copy();
18
- _path.transform(Skia.Matrix().translate(focalX.value * (1 - scale.value) + offsetX.value, 0).scale(scale.value, 1));
19
- return _path;
17
+ // Plain 3x3 matrix: a Skia.Matrix() would allocate a native object per frame
18
+ const s = scale.value;
19
+ const tx = focalX.value * (1 - s) + offsetX.value;
20
+ return Skia.PathBuilder.MakeFromPath(path.value).transform([s, 0, tx, 0, 1, 0, 0, 0, 1]).build();
20
21
  });
21
22
  return /*#__PURE__*/_jsx(Path, {
22
23
  style: "stroke",
@@ -1 +1 @@
1
- {"version":3,"names":["Path","Skia","useDerivedValue","jsx","_jsx","ScalablePath","props","path","scale","focalX","offsetX","pathProps","color","animatedPath","_path","value","copy","transform","Matrix","translate","style","strokeWidth","strokeJoin","strokeCap"],"sourceRoot":"../../../../src","sources":["Charts/ZoomableLinechart/ScalablePath.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,IAAI,QAAqB,4BAA4B;AAEpE,SAASC,eAAe,QAA0B,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAW5E,MAAMC,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,GAAGX,eAAe,CAAC,MAAM;IACzC;IACA,MAAMY,KAAK,GAAGP,IAAI,CAACQ,KAAK,CAACC,IAAI,CAAC,CAAC;IAC/BF,KAAK,CAACG,SAAS,CACbhB,IAAI,CAACiB,MAAM,CAAC,CAAC,CACVC,SAAS,CAACV,MAAM,CAACM,KAAK,IAAI,CAAC,GAAGP,KAAK,CAACO,KAAK,CAAC,GAAGL,OAAO,CAACK,KAAK,EAAE,CAAC,CAAC,CAC9DP,KAAK,CAACA,KAAK,CAACO,KAAK,EAAE,CAAC,CACzB,CAAC;IACD,OAAOD,KAAK;EACd,CAAC,CAAC;EAEF,oBACEV,IAAA,CAACJ,IAAI;IACHoB,KAAK,EAAC,QAAQ;IACdb,IAAI,EAAEM,YAAa;IACnBQ,WAAW,EAAE,CAAE;IACfC,UAAU,EAAC,OAAO;IAClBC,SAAS,EAAC,OAAO;IACjBX,KAAK,EAAEA,KAAM;IAAA,GACTD;EAAS,CACd,CAAC;AAEN,CAAC;AAED,SAASN,YAAY","ignoreList":[]}
1
+ {"version":3,"names":["Path","Skia","useDerivedValue","jsx","_jsx","ScalablePath","props","path","scale","focalX","offsetX","pathProps","color","animatedPath","s","value","tx","PathBuilder","MakeFromPath","transform","build","style","strokeWidth","strokeJoin","strokeCap"],"sourceRoot":"../../../../src","sources":["Charts/ZoomableLinechart/ScalablePath.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,IAAI,QAAqB,mBAAmB;AAE3D,SAASC,eAAe,QAA0B,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAW5E,MAAMC,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,GAAGX,eAAe,CAAC,MAAM;IACzC;IACA;IACA,MAAMY,CAAC,GAAGN,KAAK,CAACO,KAAK;IACrB,MAAMC,EAAE,GAAGP,MAAM,CAACM,KAAK,IAAI,CAAC,GAAGD,CAAC,CAAC,GAAGJ,OAAO,CAACK,KAAK;IACjD,OAAOd,IAAI,CAACgB,WAAW,CAACC,YAAY,CAACX,IAAI,CAACQ,KAAK,CAAC,CAC7CI,SAAS,CAAC,CAACL,CAAC,EAAE,CAAC,EAAEE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CACvCI,KAAK,CAAC,CAAC;EACZ,CAAC,CAAC;EAEF,oBACEhB,IAAA,CAACJ,IAAI;IACHqB,KAAK,EAAC,QAAQ;IACdd,IAAI,EAAEM,YAAa;IACnBS,WAAW,EAAE,CAAE;IACfC,UAAU,EAAC,OAAO;IAClBC,SAAS,EAAC,OAAO;IACjBZ,KAAK,EAAEA,KAAM;IAAA,GACTD;EAAS,CACd,CAAC;AAEN,CAAC;AAED,SAASN,YAAY","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { Canvas, Group } from '@shopify/react-native-skia';
3
+ import { Canvas, Group } from 'react-native-skia';
4
4
  import React from 'react';
5
5
  import { ScalablePath } from "./ScalablePath.js";
6
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"names":["Canvas","Group","React","ScalablePath","jsx","_jsx","jsxs","_jsxs","ZoomableLineChart","props","width","height","style","children","offsetY","rest","transform","translateY"],"sourceRoot":"../../../../src","sources":["Charts/ZoomableLinechart/index.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,KAAK,QAAqB,4BAA4B;AAEvE,OAAOC,KAAK,MAAM,OAAO;AAIzB,SAASC,YAAY,QAAgC,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEtE,SAASJ,YAAY;AAiBrB,MAAMK,iBAA6C,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACrE,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,OAAO,GAAG,CAAC;IAAE,GAAGC;EAAK,CAAC,GAAGN,KAAK;EAEtE,oBACEJ,IAAA,CAACL,MAAM;IACLY,KAAK,EAAE,CACL;MACEF,KAAK;MACLC;IACF,CAAC,EACDC,KAAK,CACL;IAAAC,QAAA,eAEFN,KAAA,CAACN,KAAK;MAACe,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEH;MAAQ,CAAC,CAAE;MAAAD,QAAA,gBAC1CR,IAAA,CAACF,YAAY;QAAA,GAAKY;MAAI,CAAG,CAAC,EACzBF,QAAQ;IAAA,CACJ;EAAC,CACF,CAAC;AAEb,CAAC;AAED,SAASL,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["Canvas","Group","React","ScalablePath","jsx","_jsx","jsxs","_jsxs","ZoomableLineChart","props","width","height","style","children","offsetY","rest","transform","translateY"],"sourceRoot":"../../../../src","sources":["Charts/ZoomableLinechart/index.tsx"],"mappings":";;AAAA,SAASA,MAAM,EAAEC,KAAK,QAAqB,mBAAmB;AAE9D,OAAOC,KAAK,MAAM,OAAO;AAIzB,SAASC,YAAY,QAAgC,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEtE,SAASJ,YAAY;AAiBrB,MAAMK,iBAA6C,GAAG,SAAAA,CAAUC,KAAK,EAAE;EACrE,MAAM;IAAEC,KAAK;IAAEC,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,OAAO,GAAG,CAAC;IAAE,GAAGC;EAAK,CAAC,GAAGN,KAAK;EAEtE,oBACEJ,IAAA,CAACL,MAAM;IACLY,KAAK,EAAE,CACL;MACEF,KAAK;MACLC;IACF,CAAC,EACDC,KAAK,CACL;IAAAC,QAAA,eAEFN,KAAA,CAACN,KAAK;MAACe,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEH;MAAQ,CAAC,CAAE;MAAAD,QAAA,gBAC1CR,IAAA,CAACF,YAAY;QAAA,GAAKY;MAAI,CAAG,CAAC,EACzBF,QAAQ;IAAA,CACJ;EAAC,CACF,CAAC;AAEb,CAAC;AAED,SAASL,iBAAiB","ignoreList":[]}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import { clamp } from '@shopify/react-native-skia';
4
- import { useCallback } from 'react';
3
+ import { clamp } from 'react-native-skia';
4
+ import { useCallback, useMemo, useRef } from 'react';
5
5
  import { Gesture } from 'react-native-gesture-handler';
6
- import { useAnimatedReaction, useSharedValue, withTiming } from 'react-native-reanimated';
6
+ import { useAnimatedReaction, useSharedValue } from 'react-native-reanimated';
7
7
  import { scheduleOnRN } from 'react-native-worklets';
8
8
  /**
9
9
  * Get the position of a point on the axis,
@@ -14,6 +14,19 @@ export const getPositionWl = function (position, focalX, scale, offsetX) {
14
14
 
15
15
  return (position - focalX) * scale + focalX + offsetX;
16
16
  };
17
+
18
+ /**
19
+ * Offset range keeping the content edges pinned to the viewport:
20
+ * leftBound (position 0) <= startOffset and rightBound (position width)
21
+ * >= width + startOffset. Collapses to [startOffset, startOffset] at scale 1.
22
+ */
23
+ export const getOffsetBoundsWl = function (width, startOffset, focalX, scale) {
24
+ 'worklet';
25
+
26
+ const maxOffset = startOffset + focalX * (scale - 1);
27
+ const minOffset = startOffset + (1 - scale) * (width - focalX);
28
+ return [minOffset, maxOffset];
29
+ };
17
30
  /**
18
31
  * Return utilities for zooming and panning the axis
19
32
  */
@@ -32,6 +45,8 @@ export const useScalableGesture = props => {
32
45
  // For panning
33
46
  const offsetX = useSharedValue(startOffset);
34
47
  const lastOffsetX = useSharedValue(startOffset);
48
+ // Pinch pivot bookkeeping (see pinchGesture)
49
+ const needsPivot = useSharedValue(true);
35
50
  const reset = useCallback(() => {
36
51
  scale.value = startScale;
37
52
  lastScale.value = startScale;
@@ -40,37 +55,56 @@ export const useScalableGesture = props => {
40
55
  offsetX.value = startOffset;
41
56
  lastOffsetX.value = startOffset;
42
57
  }, [focalX, lastFocalX, lastOffsetX, lastScale, offsetX, scale, startOffset, startScale]);
43
- const panGesture = Gesture.Pan().onUpdate(event => {
44
- const newOffsetX = lastOffsetX.value + event.translationX;
45
- offsetX.value = newOffsetX;
58
+
59
+ // Memoized: handing a new gesture instance to GestureDetector mid-gesture
60
+ // resets the active pan and makes the chart jump
61
+ const panGesture = useMemo(() => Gesture.Pan()
62
+ // Single-finger only: two fingers belong to the pinch, whose focal
63
+ // rebase would otherwise fight the pan over offsetX
64
+ .maxPointers(1)
65
+ // Incremental deltas (changeX) with a live clamp keep the content
66
+ // edges pinned: no overscroll, no snap-back to interrupt
67
+ .onChange(event => {
68
+ const [minOffset, maxOffset] = getOffsetBoundsWl(width, startOffset, focalX.value, scale.value);
69
+ offsetX.value = clamp(offsetX.value + event.changeX, minOffset, maxOffset);
46
70
  }).onEnd(() => {
47
71
  lastScale.value = scale.value;
48
72
  lastFocalX.value = focalX.value;
49
- const leftBound = getPositionWl(0, focalX.value, scale.value, offsetX.value);
50
- const rightBound = getPositionWl(width, focalX.value, scale.value, offsetX.value);
51
- let newOffset;
52
- if (leftBound > startOffset) {
53
- newOffset = offsetX.value - leftBound + startOffset;
54
- } else if (rightBound < width + startOffset) {
55
- newOffset = offsetX.value + width - rightBound + startOffset;
73
+ lastOffsetX.value = offsetX.value;
74
+ }), [focalX, lastFocalX, lastOffsetX, lastScale, offsetX, scale, startOffset, width]);
75
+ const pinchGesture = useMemo(() => Gesture.Pinch().onStart(() => {
76
+ needsPivot.value = true;
77
+ }).onUpdate(event => {
78
+ // The pinch can keep firing in the single-finger tail of the
79
+ // gesture, tracking the remaining finger as its focal: ignore it
80
+ // (numberOfPointers is missing on web — let those through)
81
+ if ((event.numberOfPointers ?? 2) < 2) {
82
+ needsPivot.value = true;
83
+ return;
84
+ }
85
+ const prevScale = scale.value;
86
+ const newScale = clamp(lastScale.value * event.scale, 1, Infinity);
87
+ if (needsPivot.value) {
88
+ // New pivot: rebase offsetX so re-anchoring under the fingers
89
+ // doesn't shift the content
90
+ const rebased = offsetX.value + (focalX.value - event.focalX) * (1 - prevScale);
91
+ offsetX.value = rebased * newScale / prevScale;
92
+ needsPivot.value = false;
56
93
  } else {
57
- newOffset = offsetX.value;
94
+ // Keep the content glued to both fingers: the offset follows the
95
+ // focal translation and rescales with the zoom
96
+ offsetX.value = (event.focalX - focalX.value + offsetX.value / prevScale) * newScale;
58
97
  }
59
- offsetX.value = withTiming(newOffset, {
60
- duration: 300
61
- });
62
- lastOffsetX.value = newOffset;
63
- });
64
- const pinchGesture = Gesture.Pinch().onUpdate(event => {
65
- // Rebase offsetX so moving the focal point doesn't shift the content
66
- offsetX.value += (focalX.value - event.focalX) * (1 - scale.value);
67
98
  focalX.value = event.focalX;
68
- scale.value = clamp(lastScale.value * event.scale, 1, Infinity);
99
+ scale.value = newScale;
100
+ // Zooming moves the bounds: keep the content edges pinned
101
+ const [minOffset, maxOffset] = getOffsetBoundsWl(width, startOffset, focalX.value, scale.value);
102
+ offsetX.value = clamp(offsetX.value, minOffset, maxOffset);
69
103
  }).onEnd(() => {
70
104
  lastScale.value = scale.value;
71
105
  lastFocalX.value = focalX.value;
72
106
  lastOffsetX.value = offsetX.value;
73
- });
107
+ }), [focalX, lastFocalX, lastOffsetX, lastScale, needsPivot, offsetX, scale, startOffset, width]);
74
108
  return {
75
109
  scale,
76
110
  focalX,
@@ -87,6 +121,14 @@ export const useUpdateAxis = function (props) {
87
121
  onScaleChange
88
122
  } = props;
89
123
  const currentIndex = useSharedValue(0);
124
+
125
+ // Stable dispatcher so an inline onScaleChange doesn't re-register the
126
+ // reaction (and disturb the UI thread) on every render
127
+ const onScaleChangeRef = useRef(onScaleChange);
128
+ onScaleChangeRef.current = onScaleChange;
129
+ const dispatchScaleChange = useCallback(index => {
130
+ onScaleChangeRef.current?.(index);
131
+ }, []);
90
132
  useAnimatedReaction(() => scale.value, (currentScale, _) => {
91
133
  for (let i = 0; i < scales.length; i++) {
92
134
  const _prevScale = scales[i - 1] ?? 0;
@@ -94,11 +136,11 @@ export const useUpdateAxis = function (props) {
94
136
  if (_curScale === undefined || _prevScale === undefined) throw new Error('Got undefined scale');
95
137
  if (currentScale >= _prevScale && currentScale < _curScale && currentIndex.value !== i) {
96
138
  currentIndex.value = i;
97
- if (onScaleChange !== undefined) scheduleOnRN(onScaleChange, i);
139
+ scheduleOnRN(dispatchScaleChange, i);
98
140
  break;
99
141
  }
100
142
  }
101
- });
143
+ }, [scales, dispatchScaleChange]);
102
144
  return {
103
145
  currentIndex
104
146
  };
@@ -138,20 +180,29 @@ export const useCursorGesture = function (props) {
138
180
  if (!isContinuous && points === undefined) console.warn('Points must be defined for non-continuous mode');
139
181
  const xPosition = useSharedValue(0);
140
182
  const yPosition = useSharedValue(height);
141
- const setPosition = (x, y) => {
142
- 'worklet';
143
183
 
144
- yPosition.value = clamp(y, 0, height);
145
- if (isContinuous || points === undefined) {
146
- xPosition.value = clamp(x, 0, width);
147
- return;
148
- }
149
- const _closestDot = getClosestPoint(clamp(x, 0, width), points.value);
150
- if (closestDataPoint !== undefined) closestDataPoint.value = _closestDot;
151
- xPosition.value = _closestDot.x;
152
- };
153
- const panGesture = Gesture.Pan().onBegin(event => setPosition(event.x, event.y)).onUpdate(event => setPosition(event.x, event.y));
154
- const tapGesture = Gesture.Tap().onBegin(event => setPosition(event.x, event.y));
184
+ // Memoized: a new gesture instance on every render can reset an active pan
185
+ const {
186
+ panGesture,
187
+ tapGesture
188
+ } = useMemo(() => {
189
+ const setPosition = (x, y) => {
190
+ 'worklet';
191
+
192
+ yPosition.value = clamp(y, 0, height);
193
+ if (isContinuous || points === undefined) {
194
+ xPosition.value = clamp(x, 0, width);
195
+ return;
196
+ }
197
+ const _closestDot = getClosestPoint(clamp(x, 0, width), points.value);
198
+ if (closestDataPoint !== undefined) closestDataPoint.value = _closestDot;
199
+ xPosition.value = _closestDot.x;
200
+ };
201
+ return {
202
+ panGesture: Gesture.Pan().onBegin(event => setPosition(event.x, event.y)).onUpdate(event => setPosition(event.x, event.y)),
203
+ tapGesture: Gesture.Tap().onBegin(event => setPosition(event.x, event.y))
204
+ };
205
+ }, [width, height, isContinuous, points, closestDataPoint, xPosition, yPosition]);
155
206
 
156
207
  // Re-snap the cursor when the data points change (e.g. switching graphs)
157
208
  useAnimatedReaction(() => points?.value, _points => {
@@ -1 +1 @@
1
- {"version":3,"names":["clamp","useCallback","Gesture","useAnimatedReaction","useSharedValue","withTiming","scheduleOnRN","getPositionWl","position","focalX","scale","offsetX","useScalableGesture","props","width","startOffset","startScale","lastScale","lastFocalX","lastOffsetX","reset","value","panGesture","Pan","onUpdate","event","newOffsetX","translationX","onEnd","leftBound","rightBound","newOffset","duration","pinchGesture","Pinch","Infinity","useUpdateAxis","scales","onScaleChange","currentIndex","currentScale","_","i","length","_prevScale","_curScale","undefined","Error","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":[]}
1
+ {"version":3,"names":["clamp","useCallback","useMemo","useRef","Gesture","useAnimatedReaction","useSharedValue","scheduleOnRN","getPositionWl","position","focalX","scale","offsetX","getOffsetBoundsWl","width","startOffset","maxOffset","minOffset","useScalableGesture","props","startScale","lastScale","lastFocalX","lastOffsetX","needsPivot","reset","value","panGesture","Pan","maxPointers","onChange","event","changeX","onEnd","pinchGesture","Pinch","onStart","onUpdate","numberOfPointers","prevScale","newScale","Infinity","rebased","useUpdateAxis","scales","onScaleChange","currentIndex","onScaleChangeRef","current","dispatchScaleChange","index","currentScale","_","i","length","_prevScale","_curScale","undefined","Error","getClosestPoint","x","dataPoints","closestPoint","minDistance","Math","abs","point","distance","useCursorGesture","height","points","closestDataPoint","isContinuous","console","warn","xPosition","yPosition","tapGesture","setPosition","y","_closestDot","onBegin","Tap","_points"],"sourceRoot":"../../../src","sources":["Charts/gesture.ts"],"mappings":"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","ignoreList":[]}
@@ -1,21 +1,34 @@
1
1
  "use strict";
2
2
 
3
- import { PathVerb, Skia } from '@shopify/react-native-skia';
3
+ import { PathVerb, Skia } from 'react-native-skia';
4
+ import { useMemo, useRef } from 'react';
4
5
  import { scaleLinear } from 'd3-scale';
5
6
  import * as shape from 'd3-shape';
6
- import { useAnimatedReaction, withTiming } from 'react-native-reanimated';
7
+ import { useAnimatedReaction, useSharedValue, withTiming } from 'react-native-reanimated';
7
8
  import { getPositionWl } from "./gesture.js";
8
- import { getYForX } from "./maths.js";
9
+ import { commandsToBezier, findBezierIndex, getYBeyondPathEnds, getYOnBezier } from "./maths.js";
9
10
 
10
11
  /** @deprecated Use {@link BuildGraphConfig} instead */
11
12
 
12
13
  export const buildGraph = function (data, width, height, config) {
13
14
  if (data.length === 0) throw new Error('buildGraph requires at least one data point');
14
- const minX = config?.minX ?? Math.min(...data.map(d => d[0]));
15
- const maxX = config?.maxX ?? Math.max(...data.map(d => d[0]));
15
+
16
+ // Loops rather than Math.min(...data): spreading a long series can exceed the engine's argument limit
17
+ let dataMinX = Infinity;
18
+ let dataMaxX = -Infinity;
19
+ let dataMinY = Infinity;
20
+ let dataMaxY = -Infinity;
21
+ for (const [x, y] of data) {
22
+ if (x < dataMinX) dataMinX = x;
23
+ if (x > dataMaxX) dataMaxX = x;
24
+ if (y < dataMinY) dataMinY = y;
25
+ if (y > dataMaxY) dataMaxY = y;
26
+ }
27
+ const minX = config?.minX ?? dataMinX;
28
+ const maxX = config?.maxX ?? dataMaxX;
16
29
  const scaleX = scaleLinear().domain([minX, maxX]).range([0, width]);
17
- const minY = config?.minY ?? Math.min(...data.map(d => d[1]));
18
- const maxY = config?.maxY ?? Math.max(...data.map(d => d[1]));
30
+ const minY = config?.minY ?? dataMinY;
31
+ const maxY = config?.maxY ?? dataMaxY;
19
32
  const scaleY = scaleLinear().domain([minY, maxY]).range([height, 0]);
20
33
  const path = shape.line().x(([x]) => scaleX(x)).y(([, y]) => scaleY(y)).curve(config?.curve ?? shape.curveBasis)(data);
21
34
  if (path === null) throw new Error('Failed to build the line path');
@@ -95,18 +108,33 @@ export const useDotsTransition = function (props) {
95
108
  opacityWl = defaultOpacityTransitionWl,
96
109
  translateWl = defaultTranslateTransitionWl
97
110
  } = props;
111
+
112
+ // Normalized once per path change, not per dot per frame
113
+ const commands = useSharedValue([]);
114
+ const visibleCount = useSharedValue(0);
115
+ // Bumped when the data or the dots are replaced, so they get retargeted
116
+ // even if the graph index is unchanged
117
+ const generationRef = useRef(0);
118
+ const generation = useMemo(() => generationRef.current += 1,
119
+ // eslint-disable-next-line react-hooks/exhaustive-deps
120
+ [dataPoints, dots]);
121
+
122
+ // Retarget on graph or data change only: re-assigning x while it animates
123
+ // would restart the animation every frame
98
124
  useAnimatedReaction(() => ({
99
125
  _currentGraph: currentGraph.value,
100
- _currentCommands: path.value.toCmds(),
101
- // Track the animating x values so y stays glued to the curve
102
- // even when the path is swapped instantly or tweens on another duration
103
- _xs: dots.map(d => d.x.value)
126
+ _path: path.value,
127
+ _generation: generation
104
128
  }), ({
105
129
  _currentGraph,
106
- _currentCommands
107
- }) => {
130
+ _path,
131
+ _generation
132
+ }, previous) => {
133
+ commands.value = commandsToBezier(_path.toCmds());
134
+ if (previous !== null && previous._currentGraph === _currentGraph && previous._generation === _generation) return;
108
135
  const newDataPoints = dataPoints[_currentGraph];
109
136
  if (newDataPoints === undefined) throw new Error('Data points cannot be undefined');
137
+ visibleCount.value = newDataPoints.length;
110
138
  dots.forEach((_dot, i) => {
111
139
  const _newDot = newDataPoints[i];
112
140
  if (!_newDot) {
@@ -114,12 +142,37 @@ export const useDotsTransition = function (props) {
114
142
  return;
115
143
  }
116
144
  _dot.x.value = translateWl(_newDot.x);
117
- const newY = getYForX(_currentCommands, _dot.x.value);
118
- if (newY !== undefined) {
119
- _dot.y.value = newY;
120
- }
121
145
  _dot.opacity.value = opacityWl(1);
122
146
  });
123
- });
147
+ },
148
+ // Explicit deps: without them the reaction re-registers and re-fires on
149
+ // every parent render, restarting every dot animation on the UI thread
150
+ [currentGraph, path, dataPoints, dots, opacityWl, translateWl, generation]);
151
+
152
+ // Keep y glued to the curve while x animates or the path tweens
153
+ useAnimatedReaction(() => ({
154
+ _cmds: commands.value,
155
+ _xs: dots.map(d => d.x.value)
156
+ }), ({
157
+ _cmds,
158
+ _xs
159
+ }) => {
160
+ const count = Math.min(visibleCount.value, dots.length);
161
+ // Dots are in x order, so one forward walk over the segments serves them all
162
+ let segment = 0;
163
+ for (let i = 0; i < count; i++) {
164
+ const x = _xs[i];
165
+ let index = findBezierIndex(_cmds, x, segment);
166
+ if (index === -1 && segment > 1) index = findBezierIndex(_cmds, x);
167
+ let newY;
168
+ if (index === -1) {
169
+ newY = getYBeyondPathEnds(_cmds, x);
170
+ } else {
171
+ segment = index;
172
+ newY = getYOnBezier(_cmds, index, x);
173
+ }
174
+ if (newY !== undefined) dots[i].y.value = newY;
175
+ }
176
+ }, [dots]);
124
177
  };
125
178
  //# sourceMappingURL=graphUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["PathVerb","Skia","scaleLinear","shape","useAnimatedReaction","withTiming","getPositionWl","getYForX","buildGraph","data","width","height","config","length","Error","minX","Math","min","map","d","maxX","max","scaleX","domain","range","minY","maxY","scaleY","path","line","x","y","curve","curveBasis","dataPoints","value","skiaPath","Path","MakeFromSVGString","scaleCommands","commands","focalX","offsetX","_scaleY","command","commandType","undefined","Line","Move","Quad","Cubic","Close","defaultOpacityTransitionWl","opacity","duration","defaultTranslateTransitionWl","position","useDotsTransition","props","currentGraph","dots","opacityWl","translateWl","_currentGraph","_currentCommands","toCmds","_xs","newDataPoints","forEach","_dot","i","_newDot","newY"],"sourceRoot":"../../../src","sources":["Charts/graphUtils.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PathVerb","Skia","useMemo","useRef","scaleLinear","shape","useAnimatedReaction","useSharedValue","withTiming","getPositionWl","commandsToBezier","findBezierIndex","getYBeyondPathEnds","getYOnBezier","buildGraph","data","width","height","config","length","Error","dataMinX","Infinity","dataMaxX","dataMinY","dataMaxY","x","y","minX","maxX","scaleX","domain","range","minY","maxY","scaleY","path","line","curve","curveBasis","dataPoints","map","value","skiaPath","Path","MakeFromSVGString","scaleCommands","commands","focalX","offsetX","_scaleY","command","commandType","undefined","Line","Move","Quad","Cubic","Close","defaultOpacityTransitionWl","opacity","duration","defaultTranslateTransitionWl","position","useDotsTransition","props","currentGraph","dots","opacityWl","translateWl","visibleCount","generationRef","generation","current","_currentGraph","_path","_generation","previous","toCmds","newDataPoints","forEach","_dot","i","_newDot","_cmds","_xs","d","count","Math","min","segment","index","newY"],"sourceRoot":"../../../src","sources":["Charts/graphUtils.ts"],"mappings":"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","ignoreList":[]}
@@ -2,9 +2,12 @@
2
2
 
3
3
  export { AxisLine, BottomAxis, Tick } from "./BottomAxis/index.js";
4
4
  export { Cursor } from "./Cursor.js";
5
+ export { Dot } from "./Dot.js";
6
+ export { Dots } from "./Dots.js";
7
+ export { YAxis, getPaddedTicks } from "./YAxis.js";
5
8
  export { LineChart } from "./Linechart/index.js";
6
9
  export { ScalablePath, ZoomableLineChart } from "./ZoomableLinechart/index.js";
7
- export { getClosestPoint, getPositionWl, useCursorGesture, useScalableGesture, useUpdateAxis } from "./gesture.js";
10
+ export { getClosestPoint, getOffsetBoundsWl, getPositionWl, useCursorGesture, useScalableGesture, useUpdateAxis } from "./gesture.js";
8
11
  export { buildGraph, defaultOpacityTransitionWl, defaultTranslateTransitionWl, scaleCommands, useDotsTransition } from "./graphUtils.js";
9
- export { commandsToBezier, cubicBezierYForX, getYForX, magnitude, normalize, selectCurve } from "./maths.js";
12
+ export { commandsToBezier, cubicBezierYForX, getYForX, getYForXOnBeziers, magnitude, normalize, selectCurve } from "./maths.js";
10
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AxisLine","BottomAxis","Tick","Cursor","LineChart","ScalablePath","ZoomableLineChart","getClosestPoint","getPositionWl","useCursorGesture","useScalableGesture","useUpdateAxis","buildGraph","defaultOpacityTransitionWl","defaultTranslateTransitionWl","scaleCommands","useDotsTransition","commandsToBezier","cubicBezierYForX","getYForX","magnitude","normalize","selectCurve"],"sourceRoot":"../../../src","sources":["Charts/index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,uBAAc;AAMzD,SAASC,MAAM,QAAQ,aAAU;AAEjC,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,YAAY,EAAEC,iBAAiB,QAAQ,8BAAqB;AAKrE,SACEC,eAAe,EACfC,aAAa,EACbC,gBAAgB,EAChBC,kBAAkB,EAClBC,aAAa,QACR,cAAW;AAOlB,SACEC,UAAU,EACVC,0BAA0B,EAC1BC,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,QACZ,iBAAc;AAQrB,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,QAAQ,EACRC,SAAS,EACTC,SAAS,EACTC,WAAW,QACN,YAAS","ignoreList":[]}
1
+ {"version":3,"names":["AxisLine","BottomAxis","Tick","Cursor","Dot","Dots","YAxis","getPaddedTicks","LineChart","ScalablePath","ZoomableLineChart","getClosestPoint","getOffsetBoundsWl","getPositionWl","useCursorGesture","useScalableGesture","useUpdateAxis","buildGraph","defaultOpacityTransitionWl","defaultTranslateTransitionWl","scaleCommands","useDotsTransition","commandsToBezier","cubicBezierYForX","getYForX","getYForXOnBeziers","magnitude","normalize","selectCurve"],"sourceRoot":"../../../src","sources":["Charts/index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,uBAAc;AAOzD,SAASC,MAAM,QAAQ,aAAU;AAEjC,SAASC,GAAG,QAAQ,UAAO;AAE3B,SAASC,IAAI,QAAQ,WAAQ;AAE7B,SAASC,KAAK,EAAEC,cAAc,QAAQ,YAAS;AAE/C,SAASC,SAAS,QAAQ,sBAAa;AAEvC,SAASC,YAAY,EAAEC,iBAAiB,QAAQ,8BAAqB;AAKrE,SACEC,eAAe,EACfC,iBAAiB,EACjBC,aAAa,EACbC,gBAAgB,EAChBC,kBAAkB,EAClBC,aAAa,QACR,cAAW;AAOlB,SACEC,UAAU,EACVC,0BAA0B,EAC1BC,4BAA4B,EAC5BC,aAAa,EACbC,iBAAiB,QACZ,iBAAc;AAQrB,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,QAAQ,EACRC,iBAAiB,EACjBC,SAAS,EACTC,SAAS,EACTC,WAAW,QACN,YAAS","ignoreList":[]}