@obitrain/charts 0.11.0 → 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 (121) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/Charts/BottomAxis/AxisLine.js +1 -1
  3. package/lib/commonjs/Charts/BottomAxis/BottomAxis.js +1 -1
  4. package/lib/commonjs/Charts/BottomAxis/Tick.js +2 -2
  5. package/lib/commonjs/Charts/BottomAxis/Tick.js.map +1 -1
  6. package/lib/commonjs/Charts/Cursor.js +15 -7
  7. package/lib/commonjs/Charts/Cursor.js.map +1 -1
  8. package/lib/commonjs/Charts/Dot.js +1 -1
  9. package/lib/commonjs/Charts/Dots.js +3 -3
  10. package/lib/commonjs/Charts/Dots.js.map +1 -1
  11. package/lib/commonjs/Charts/Linechart/index.js +1 -1
  12. package/lib/commonjs/Charts/YAxis.js +38 -25
  13. package/lib/commonjs/Charts/YAxis.js.map +1 -1
  14. package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js +5 -4
  15. package/lib/commonjs/Charts/ZoomableLinechart/ScalablePath.js.map +1 -1
  16. package/lib/commonjs/Charts/ZoomableLinechart/index.js +1 -1
  17. package/lib/commonjs/Charts/gesture.js +23 -14
  18. package/lib/commonjs/Charts/gesture.js.map +1 -1
  19. package/lib/commonjs/Charts/graphUtils.js +66 -16
  20. package/lib/commonjs/Charts/graphUtils.js.map +1 -1
  21. package/lib/commonjs/Charts/index.js +6 -0
  22. package/lib/commonjs/Charts/index.js.map +1 -1
  23. package/lib/commonjs/Charts/maths.js +107 -16
  24. package/lib/commonjs/Charts/maths.js.map +1 -1
  25. package/lib/module/Charts/BottomAxis/AxisLine.js +1 -1
  26. package/lib/module/Charts/BottomAxis/AxisLine.js.map +1 -1
  27. package/lib/module/Charts/BottomAxis/BottomAxis.js +1 -1
  28. package/lib/module/Charts/BottomAxis/BottomAxis.js.map +1 -1
  29. package/lib/module/Charts/BottomAxis/Tick.js +3 -3
  30. package/lib/module/Charts/BottomAxis/Tick.js.map +1 -1
  31. package/lib/module/Charts/Cursor.js +16 -8
  32. package/lib/module/Charts/Cursor.js.map +1 -1
  33. package/lib/module/Charts/Dot.js +1 -1
  34. package/lib/module/Charts/Dot.js.map +1 -1
  35. package/lib/module/Charts/Dots.js +3 -3
  36. package/lib/module/Charts/Dots.js.map +1 -1
  37. package/lib/module/Charts/Linechart/index.js +1 -1
  38. package/lib/module/Charts/Linechart/index.js.map +1 -1
  39. package/lib/module/Charts/YAxis.js +39 -25
  40. package/lib/module/Charts/YAxis.js.map +1 -1
  41. package/lib/module/Charts/ZoomableLinechart/ScalablePath.js +5 -4
  42. package/lib/module/Charts/ZoomableLinechart/ScalablePath.js.map +1 -1
  43. package/lib/module/Charts/ZoomableLinechart/index.js +1 -1
  44. package/lib/module/Charts/ZoomableLinechart/index.js.map +1 -1
  45. package/lib/module/Charts/gesture.js +23 -14
  46. package/lib/module/Charts/gesture.js.map +1 -1
  47. package/lib/module/Charts/graphUtils.js +68 -18
  48. package/lib/module/Charts/graphUtils.js.map +1 -1
  49. package/lib/module/Charts/index.js +1 -1
  50. package/lib/module/Charts/index.js.map +1 -1
  51. package/lib/module/Charts/maths.js +101 -14
  52. package/lib/module/Charts/maths.js.map +1 -1
  53. package/lib/typescript/commonjs/src/Charts/BottomAxis/AxisLine.d.ts +1 -1
  54. package/lib/typescript/commonjs/src/Charts/BottomAxis/AxisLine.d.ts.map +1 -1
  55. package/lib/typescript/commonjs/src/Charts/BottomAxis/BottomAxis.d.ts +1 -1
  56. package/lib/typescript/commonjs/src/Charts/BottomAxis/BottomAxis.d.ts.map +1 -1
  57. package/lib/typescript/commonjs/src/Charts/BottomAxis/Tick.d.ts +1 -1
  58. package/lib/typescript/commonjs/src/Charts/BottomAxis/Tick.d.ts.map +1 -1
  59. package/lib/typescript/commonjs/src/Charts/Cursor.d.ts +2 -2
  60. package/lib/typescript/commonjs/src/Charts/Cursor.d.ts.map +1 -1
  61. package/lib/typescript/commonjs/src/Charts/Dot.d.ts +1 -1
  62. package/lib/typescript/commonjs/src/Charts/Dot.d.ts.map +1 -1
  63. package/lib/typescript/commonjs/src/Charts/Dots.d.ts +1 -1
  64. package/lib/typescript/commonjs/src/Charts/Dots.d.ts.map +1 -1
  65. package/lib/typescript/commonjs/src/Charts/Linechart/index.d.ts +1 -1
  66. package/lib/typescript/commonjs/src/Charts/Linechart/index.d.ts.map +1 -1
  67. package/lib/typescript/commonjs/src/Charts/YAxis.d.ts +3 -4
  68. package/lib/typescript/commonjs/src/Charts/YAxis.d.ts.map +1 -1
  69. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/ScalablePath.d.ts +1 -1
  70. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/ScalablePath.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/index.d.ts +1 -1
  72. package/lib/typescript/commonjs/src/Charts/ZoomableLinechart/index.d.ts.map +1 -1
  73. package/lib/typescript/commonjs/src/Charts/gesture.d.ts.map +1 -1
  74. package/lib/typescript/commonjs/src/Charts/graphUtils.d.ts +1 -1
  75. package/lib/typescript/commonjs/src/Charts/graphUtils.d.ts.map +1 -1
  76. package/lib/typescript/commonjs/src/Charts/index.d.ts +1 -1
  77. package/lib/typescript/commonjs/src/Charts/index.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/src/Charts/maths.d.ts +15 -1
  79. package/lib/typescript/commonjs/src/Charts/maths.d.ts.map +1 -1
  80. package/lib/typescript/module/src/Charts/BottomAxis/AxisLine.d.ts +1 -1
  81. package/lib/typescript/module/src/Charts/BottomAxis/AxisLine.d.ts.map +1 -1
  82. package/lib/typescript/module/src/Charts/BottomAxis/BottomAxis.d.ts +1 -1
  83. package/lib/typescript/module/src/Charts/BottomAxis/BottomAxis.d.ts.map +1 -1
  84. package/lib/typescript/module/src/Charts/BottomAxis/Tick.d.ts +1 -1
  85. package/lib/typescript/module/src/Charts/BottomAxis/Tick.d.ts.map +1 -1
  86. package/lib/typescript/module/src/Charts/Cursor.d.ts +2 -2
  87. package/lib/typescript/module/src/Charts/Cursor.d.ts.map +1 -1
  88. package/lib/typescript/module/src/Charts/Dot.d.ts +1 -1
  89. package/lib/typescript/module/src/Charts/Dot.d.ts.map +1 -1
  90. package/lib/typescript/module/src/Charts/Dots.d.ts +1 -1
  91. package/lib/typescript/module/src/Charts/Dots.d.ts.map +1 -1
  92. package/lib/typescript/module/src/Charts/Linechart/index.d.ts +1 -1
  93. package/lib/typescript/module/src/Charts/Linechart/index.d.ts.map +1 -1
  94. package/lib/typescript/module/src/Charts/YAxis.d.ts +3 -4
  95. package/lib/typescript/module/src/Charts/YAxis.d.ts.map +1 -1
  96. package/lib/typescript/module/src/Charts/ZoomableLinechart/ScalablePath.d.ts +1 -1
  97. package/lib/typescript/module/src/Charts/ZoomableLinechart/ScalablePath.d.ts.map +1 -1
  98. package/lib/typescript/module/src/Charts/ZoomableLinechart/index.d.ts +1 -1
  99. package/lib/typescript/module/src/Charts/ZoomableLinechart/index.d.ts.map +1 -1
  100. package/lib/typescript/module/src/Charts/gesture.d.ts.map +1 -1
  101. package/lib/typescript/module/src/Charts/graphUtils.d.ts +1 -1
  102. package/lib/typescript/module/src/Charts/graphUtils.d.ts.map +1 -1
  103. package/lib/typescript/module/src/Charts/index.d.ts +1 -1
  104. package/lib/typescript/module/src/Charts/index.d.ts.map +1 -1
  105. package/lib/typescript/module/src/Charts/maths.d.ts +15 -1
  106. package/lib/typescript/module/src/Charts/maths.d.ts.map +1 -1
  107. package/package.json +5 -5
  108. package/src/Charts/BottomAxis/AxisLine.tsx +1 -1
  109. package/src/Charts/BottomAxis/BottomAxis.tsx +1 -1
  110. package/src/Charts/BottomAxis/Tick.tsx +7 -5
  111. package/src/Charts/Cursor.tsx +17 -9
  112. package/src/Charts/Dot.tsx +1 -1
  113. package/src/Charts/Dots.tsx +3 -3
  114. package/src/Charts/Linechart/index.tsx +1 -1
  115. package/src/Charts/YAxis.tsx +43 -36
  116. package/src/Charts/ZoomableLinechart/ScalablePath.tsx +7 -8
  117. package/src/Charts/ZoomableLinechart/index.tsx +1 -1
  118. package/src/Charts/gesture.ts +23 -20
  119. package/src/Charts/graphUtils.ts +75 -16
  120. package/src/Charts/index.tsx +1 -0
  121. package/src/Charts/maths.ts +107 -16
package/README.md CHANGED
@@ -9,7 +9,7 @@ zoomable/pannable variant, a scalable bottom axis and a cursor, all driven from
9
9
 
10
10
  ```sh
11
11
  yarn add @obitrain/charts
12
- yarn add @shopify/react-native-skia react-native-reanimated react-native-worklets react-native-gesture-handler d3-scale d3-shape
12
+ yarn add react-native-skia react-native-reanimated react-native-worklets react-native-gesture-handler d3-scale d3-shape
13
13
  ```
14
14
 
15
15
  `react-native-worklets` is only needed with Reanimated 4 (it is an optional peer dependency).
@@ -18,7 +18,7 @@ yarn add @shopify/react-native-skia react-native-reanimated react-native-worklet
18
18
 
19
19
  | Peer dependency | Supported versions |
20
20
  | ---------------------------- | ----------------------------------------------------- |
21
- | `@shopify/react-native-skia` | `>=2.0.0 <3.0.0` |
21
+ | `react-native-skia` | `>=3.0.4` (Android minSdk 26) |
22
22
  | `react-native-reanimated` | 3.x or 4.x |
23
23
  | `react-native-worklets` | `>=0.10.0` (optional, required with Reanimated 4) |
24
24
  | `react-native-gesture-handler` | 2.x or 3.x |
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.AxisLine = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("react-native-skia");
8
8
  var _reactNative = require("react-native");
9
9
  var _reactNativeReanimated = require("react-native-reanimated");
10
10
  var _gesture = require("../gesture.js");
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.BottomAxis = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("react-native-skia");
8
8
  var _react = require("react");
9
9
  var _AxisLine = require("./AxisLine.js");
10
10
  var _Tick = require("./Tick.js");
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Tick = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("react-native-skia");
8
8
  var _react = require("react");
9
9
  var _reactNativeReanimated = require("react-native-reanimated");
10
10
  var _gesture = require("../gesture.js");
@@ -30,7 +30,7 @@ const TickComponent = function (props) {
30
30
  const transform = (0, _reactNativeReanimated.useDerivedValue)(() => [{
31
31
  translateX: (0, _gesture.getPositionWl)(initPosition, focalX.value, scale.value, offsetX.value)
32
32
  }]);
33
- const width = font.getGlyphWidths(font.getGlyphIDs(label)).reduce((a, b) => a + b, 0);
33
+ const width = (0, _react.useMemo)(() => font.getGlyphWidths(font.getGlyphIDs(label)).reduce((a, b) => a + b, 0), [font, label]);
34
34
  const labelX = labelAlign === 'left' ? labelGap : -width / 2;
35
35
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
36
36
  transform: transform,
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_react","_reactNativeReanimated","_gesture","_jsxRuntime","TickComponent","props","label","scale","focalX","offsetX","initPosition","font","color","labelColor","tickLength","strokeWidth","dash","showLabel","labelAlign","labelGap","offsetY","transform","useDerivedValue","translateX","getPositionWl","value","width","getGlyphWidths","getGlyphIDs","reduce","a","b","labelX","jsxs","Group","children","jsx","Line","p1","vec","p2","undefined","DashPathEffect","intervals","Text","text","x","y","Tick","exports","memo","displayName"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/Tick.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAA2C,IAAAI,WAAA,GAAAJ,OAAA;AAwB3C,MAAMK,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,GAAG,IAAAC,sCAAe,EAAC,MAAM,CACtC;IACEC,UAAU,EAAE,IAAAC,sBAAa,EACvBd,YAAY,EACZF,MAAM,CAACiB,KAAK,EACZlB,KAAK,CAACkB,KAAK,EACXhB,OAAO,CAACgB,KACV;EACF,CAAC,CACF,CAAC;EACF,MAAMC,KAAK,GAAGf,IAAI,CACfgB,cAAc,CAAChB,IAAI,CAACiB,WAAW,CAACtB,KAAK,CAAC,CAAC,CACvCuB,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;EAC7B,MAAMC,MAAM,GAAGd,UAAU,KAAK,MAAM,GAAGC,QAAQ,GAAG,CAACO,KAAK,GAAG,CAAC;EAE5D,oBACE,IAAAvB,WAAA,CAAA8B,IAAA,EAACnC,gBAAA,CAAAoC,KAAK;IAACb,SAAS,EAAEA,SAAU;IAAAc,QAAA,gBAC1B,IAAAhC,WAAA,CAAAiC,GAAA,EAACtC,gBAAA,CAAAuC,IAAI;MACHzB,KAAK,EAAEA,KAAM;MACbG,WAAW,EAAEA,WAAY;MACzBuB,EAAE,EAAE,IAAAC,oBAAG,EAAC,CAAC,EAAEnB,OAAO,CAAE;MACpBoB,EAAE,EAAE,IAAAD,oBAAG,EAAC,CAAC,EAAEnB,OAAO,GAAGN,UAAU,CAAE;MAAAqB,QAAA,EAEhCnB,IAAI,KAAKyB,SAAS,gBAAG,IAAAtC,WAAA,CAAAiC,GAAA,EAACtC,gBAAA,CAAA4C,cAAc;QAACC,SAAS,EAAE3B;MAAK,CAAE,CAAC,GAAG;IAAI,CAC5D,CAAC,EACNC,SAAS,gBACR,IAAAd,WAAA,CAAAiC,GAAA,EAACtC,gBAAA,CAAA8C,IAAI;MACHC,IAAI,EAAEvC,KAAM;MACZM,KAAK,EAAEC,UAAU,IAAID,KAAM;MAC3BkC,CAAC,EAAEd,MAAO;MACVe,CAAC,EAAE3B,OAAO,GAAG,EAAG;MAChBT,IAAI,EAAEA;IAAK,CACZ,CAAC,GACA,IAAI;EAAA,CACH,CAAC;AAEZ,CAAC;;AAED;AACA;AACO,MAAMqC,IAAI,GAAAC,OAAA,CAAAD,IAAA,gBAAG,IAAAE,WAAI,EAAC9C,aAAa,CAAC;AACvC4C,IAAI,CAACG,WAAW,GAAG,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_react","_reactNativeReanimated","_gesture","_jsxRuntime","TickComponent","props","label","scale","focalX","offsetX","initPosition","font","color","labelColor","tickLength","strokeWidth","dash","showLabel","labelAlign","labelGap","offsetY","transform","useDerivedValue","translateX","getPositionWl","value","width","useMemo","getGlyphWidths","getGlyphIDs","reduce","a","b","labelX","jsxs","Group","children","jsx","Line","p1","vec","p2","undefined","DashPathEffect","intervals","Text","text","x","y","Tick","exports","memo","displayName"],"sourceRoot":"../../../../src","sources":["Charts/BottomAxis/Tick.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAA2C,IAAAI,WAAA,GAAAJ,OAAA;AAwB3C,MAAMK,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,GAAG,IAAAC,sCAAe,EAAC,MAAM,CACtC;IACEC,UAAU,EAAE,IAAAC,sBAAa,EACvBd,YAAY,EACZF,MAAM,CAACiB,KAAK,EACZlB,KAAK,CAACkB,KAAK,EACXhB,OAAO,CAACgB,KACV;EACF,CAAC,CACF,CAAC;EACF,MAAMC,KAAK,GAAG,IAAAC,cAAO,EACnB,MACEhB,IAAI,CAACiB,cAAc,CAACjB,IAAI,CAACkB,WAAW,CAACvB,KAAK,CAAC,CAAC,CAACwB,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC,EACzE,CAACrB,IAAI,EAAEL,KAAK,CACd,CAAC;EACD,MAAM2B,MAAM,GAAGf,UAAU,KAAK,MAAM,GAAGC,QAAQ,GAAG,CAACO,KAAK,GAAG,CAAC;EAE5D,oBACE,IAAAvB,WAAA,CAAA+B,IAAA,EAACpC,gBAAA,CAAAqC,KAAK;IAACd,SAAS,EAAEA,SAAU;IAAAe,QAAA,gBAC1B,IAAAjC,WAAA,CAAAkC,GAAA,EAACvC,gBAAA,CAAAwC,IAAI;MACH1B,KAAK,EAAEA,KAAM;MACbG,WAAW,EAAEA,WAAY;MACzBwB,EAAE,EAAE,IAAAC,oBAAG,EAAC,CAAC,EAAEpB,OAAO,CAAE;MACpBqB,EAAE,EAAE,IAAAD,oBAAG,EAAC,CAAC,EAAEpB,OAAO,GAAGN,UAAU,CAAE;MAAAsB,QAAA,EAEhCpB,IAAI,KAAK0B,SAAS,gBAAG,IAAAvC,WAAA,CAAAkC,GAAA,EAACvC,gBAAA,CAAA6C,cAAc;QAACC,SAAS,EAAE5B;MAAK,CAAE,CAAC,GAAG;IAAI,CAC5D,CAAC,EACNC,SAAS,gBACR,IAAAd,WAAA,CAAAkC,GAAA,EAACvC,gBAAA,CAAA+C,IAAI;MACHC,IAAI,EAAExC,KAAM;MACZM,KAAK,EAAEC,UAAU,IAAID,KAAM;MAC3BmC,CAAC,EAAEd,MAAO;MACVe,CAAC,EAAE5B,OAAO,GAAG,EAAG;MAChBT,IAAI,EAAEA;IAAK,CACZ,CAAC,GACA,IAAI;EAAA,CACH,CAAC;AAEZ,CAAC;;AAED;AACA;AACO,MAAMsC,IAAI,GAAAC,OAAA,CAAAD,IAAA,gBAAG,IAAAE,WAAI,EAAC/C,aAAa,CAAC;AACvC6C,IAAI,CAACG,WAAW,GAAG,MAAM","ignoreList":[]}
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Cursor = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("react-native-skia");
8
+ var _react = require("react");
8
9
  var _reactNativeReanimated = require("react-native-reanimated");
9
10
  var _maths = require("./maths.js");
10
11
  var _jsxRuntime = require("react/jsx-runtime");
@@ -19,15 +20,22 @@ const Cursor = function ({
19
20
  translateY,
20
21
  size = CURSOR_SIZE
21
22
  }) {
22
- if (currentValue !== undefined && translateY !== undefined) {
23
- console.warn('currentValue has no effect when translateY is set');
24
- }
25
- const derivedTranslateY = (0, _reactNativeReanimated.useDerivedValue)(() => {
23
+ const conflictingProps = currentValue !== undefined && translateY !== undefined;
24
+ (0, _react.useEffect)(() => {
25
+ if (conflictingProps) console.warn('currentValue has no effect when translateY is set');
26
+ }, [conflictingProps]);
27
+
28
+ // Normalized once per path change, not on every cursor move
29
+ const beziers = (0, _reactNativeReanimated.useDerivedValue)(() => {
26
30
  const _commands = commands?.value;
27
- if (_commands === undefined) {
31
+ return _commands === undefined ? undefined : (0, _maths.commandsToBezier)(_commands);
32
+ });
33
+ const derivedTranslateY = (0, _reactNativeReanimated.useDerivedValue)(() => {
34
+ const _beziers = beziers.value;
35
+ if (_beziers === undefined) {
28
36
  return 0;
29
37
  }
30
- const _value = (0, _maths.getYForX)(_commands, positionX.value) ?? 0;
38
+ const _value = (0, _maths.getYForXOnBeziers)(_beziers, positionX.value) ?? 0;
31
39
  if (translateY === undefined && currentValue !== undefined) {
32
40
  currentValue.value = _value;
33
41
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_reactNativeReanimated","_maths","_jsxRuntime","CURSOR_SIZE","Cursor","commands","positionX","color","strokeColor","strokeWidth","currentValue","translateY","size","undefined","console","warn","derivedTranslateY","useDerivedValue","_commands","value","_value","getYForX","_translateY","transform","translateX","jsxs","Fragment","children","jsx","Circle","cx","cy","r","style","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;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,IAAIO,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,GAAGb,QAAQ,EAAEc,KAAK;IACjC,IAAID,SAAS,KAAKL,SAAS,EAAE;MAC3B,OAAO,CAAC;IACV;IACA,MAAMO,MAAM,GAAG,IAAAC,eAAQ,EAACH,SAAS,EAAEZ,SAAS,CAACa,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,EAAElB,SAAS,CAACa;EAAM,CAAC,EAC/B;IAAER,UAAU,EAAEW,WAAW,CAACH,KAAK,IAAI;EAAE,CAAC,CACvC,CAAC;EACF,oBACE,IAAAjB,WAAA,CAAAuB,IAAA,EAAAvB,WAAA,CAAAwB,QAAA;IAAAC,QAAA,gBACE,IAAAzB,WAAA,CAAA0B,GAAA,EAAC9B,gBAAA,CAAA+B,MAAM;MAACN,SAAS,EAAEA,SAAU;MAACO,EAAE,EAAE,CAAE;MAACC,EAAE,EAAE,CAAE;MAACC,CAAC,EAAEpB,IAAK;MAACL,KAAK,EAAEA;IAAM,CAAE,CAAC,EACpEC,WAAW,KAAKK,SAAS,gBACxB,IAAAX,WAAA,CAAA0B,GAAA,EAAC9B,gBAAA,CAAA+B,MAAM;MACLN,SAAS,EAAEA,SAAU;MACrBO,EAAE,EAAE,CAAE;MACNC,EAAE,EAAE,CAAE;MACNC,CAAC,EAAEpB,IAAK;MACRL,KAAK,EAAEC,WAAY;MACnByB,KAAK,EAAC,QAAQ;MACdxB,WAAW,EAAEA;IAAY,CAC1B,CAAC,GACA,IAAI;EAAA,CACR,CAAC;AAEP,CAAC;AAACyB,OAAA,CAAA9B,MAAA,GAAAA,MAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_react","_reactNativeReanimated","_maths","_jsxRuntime","CURSOR_SIZE","Cursor","commands","positionX","color","strokeColor","strokeWidth","currentValue","translateY","size","conflictingProps","undefined","useEffect","console","warn","beziers","useDerivedValue","_commands","value","commandsToBezier","derivedTranslateY","_beziers","_value","getYForXOnBeziers","_translateY","transform","translateX","jsxs","Fragment","children","jsx","Circle","cx","cy","r","style","exports"],"sourceRoot":"../../../src","sources":["Charts/Cursor.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAA8D,IAAAI,WAAA,GAAAJ,OAAA;AAE9D,MAAMK,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/E,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAIF,gBAAgB,EAClBG,OAAO,CAACC,IAAI,CAAC,mDAAmD,CAAC;EACrE,CAAC,EAAE,CAACJ,gBAAgB,CAAC,CAAC;;EAEtB;EACA,MAAMK,OAAO,GAAG,IAAAC,sCAAe,EAAC,MAAM;IACpC,MAAMC,SAAS,GAAGf,QAAQ,EAAEgB,KAAK;IACjC,OAAOD,SAAS,KAAKN,SAAS,GAAGA,SAAS,GAAG,IAAAQ,uBAAgB,EAACF,SAAS,CAAC;EAC1E,CAAC,CAAC;EAEF,MAAMG,iBAAiB,GAAG,IAAAJ,sCAAe,EAAC,MAAM;IAC9C,MAAMK,QAAQ,GAAGN,OAAO,CAACG,KAAK;IAC9B,IAAIG,QAAQ,KAAKV,SAAS,EAAE;MAC1B,OAAO,CAAC;IACV;IACA,MAAMW,MAAM,GAAG,IAAAC,wBAAiB,EAACF,QAAQ,EAAElB,SAAS,CAACe,KAAK,CAAC,IAAI,CAAC;IAChE,IAAIV,UAAU,KAAKG,SAAS,IAAIJ,YAAY,KAAKI,SAAS,EAAE;MAC1DJ,YAAY,CAACW,KAAK,GAAGI,MAAM;IAC7B;IACA,OAAOA,MAAM;EACf,CAAC,CAAC;EAEF,MAAME,WAAW,GAAGhB,UAAU,IAAIY,iBAAiB;EAEnD,MAAMK,SAAS,GAAG,IAAAT,sCAAe,EAAC,MAAM,CACtC;IAAEU,UAAU,EAAEvB,SAAS,CAACe;EAAM,CAAC,EAC/B;IAAEV,UAAU,EAAEgB,WAAW,CAACN,KAAK,IAAI;EAAE,CAAC,CACvC,CAAC;EACF,oBACE,IAAAnB,WAAA,CAAA4B,IAAA,EAAA5B,WAAA,CAAA6B,QAAA;IAAAC,QAAA,gBACE,IAAA9B,WAAA,CAAA+B,GAAA,EAACpC,gBAAA,CAAAqC,MAAM;MAACN,SAAS,EAAEA,SAAU;MAACO,EAAE,EAAE,CAAE;MAACC,EAAE,EAAE,CAAE;MAACC,CAAC,EAAEzB,IAAK;MAACL,KAAK,EAAEA;IAAM,CAAE,CAAC,EACpEC,WAAW,KAAKM,SAAS,gBACxB,IAAAZ,WAAA,CAAA+B,GAAA,EAACpC,gBAAA,CAAAqC,MAAM;MACLN,SAAS,EAAEA,SAAU;MACrBO,EAAE,EAAE,CAAE;MACNC,EAAE,EAAE,CAAE;MACNC,CAAC,EAAEzB,IAAK;MACRL,KAAK,EAAEC,WAAY;MACnB8B,KAAK,EAAC,QAAQ;MACd7B,WAAW,EAAEA;IAAY,CAC1B,CAAC,GACA,IAAI;EAAA,CACR,CAAC;AAEP,CAAC;AAAC8B,OAAA,CAAAnC,MAAA,GAAAA,MAAA","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Dot = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("react-native-skia");
8
8
  var _react = require("react");
9
9
  var _reactNativeReanimated = require("react-native-reanimated");
10
10
  var _gesture = require("./gesture.js");
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Dots = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("react-native-skia");
8
8
  var _reactNativeReanimated = require("react-native-reanimated");
9
9
  var _gesture = require("./gesture.js");
10
10
  var _jsxRuntime = require("react/jsx-runtime");
@@ -28,7 +28,7 @@ const Dots = function (props) {
28
28
  offsetX
29
29
  } = props;
30
30
  const path = (0, _reactNativeReanimated.useDerivedValue)(() => {
31
- const p = _reactNativeSkia.Skia.Path.Make();
31
+ const p = _reactNativeSkia.Skia.PathBuilder.Make();
32
32
  const margin = r + strokeWidth;
33
33
  for (const dot of dots) {
34
34
  if (dot.opacity.value < 0.5) continue;
@@ -55,7 +55,7 @@ const Dots = function (props) {
55
55
  p.addCircle(x, y, r);
56
56
  }
57
57
  }
58
- return p;
58
+ return p.build();
59
59
  });
60
60
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
61
61
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_reactNativeReanimated","_gesture","_jsxRuntime","Dots","props","dots","r","shape","color","fillColor","strokeWidth","width","scale","focalX","offsetX","path","useDerivedValue","p","Skia","Path","Make","margin","dot","opacity","value","x","undefined","getPositionWl","y","addPoly","addCircle","jsxs","Fragment","children","jsx","style","strokeJoin","exports"],"sourceRoot":"../../../src","sources":["Charts/Dots.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAA0C,IAAAG,WAAA,GAAAH,OAAA;AAqB1C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,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,GAAG,IAAAC,sCAAe,EAAC,MAAM;IACjC,MAAMC,CAAC,GAAGC,qBAAI,CAACC,IAAI,CAACC,IAAI,CAAC,CAAC;IAC1B,MAAMC,MAAM,GAAGf,CAAC,GAAGI,WAAW;IAC9B,KAAK,MAAMY,GAAG,IAAIjB,IAAI,EAAE;MACtB,IAAIiB,GAAG,CAACC,OAAO,CAACC,KAAK,GAAG,GAAG,EAAE;MAC7B,MAAMC,CAAC,GACLb,KAAK,KAAKc,SAAS,IAAIb,MAAM,KAAKa,SAAS,IAAIZ,OAAO,KAAKY,SAAS,GAChEJ,GAAG,CAACG,CAAC,CAACD,KAAK,GACX,IAAAG,sBAAa,EACXL,GAAG,CAACG,CAAC,CAACD,KAAK,EACXX,MAAM,CAACW,KAAK,EACZZ,KAAK,CAACY,KAAK,EACXV,OAAO,CAACU,KACV,CAAC;MACP,IAAIb,KAAK,KAAKe,SAAS,KAAKD,CAAC,GAAG,CAACJ,MAAM,IAAII,CAAC,GAAGd,KAAK,GAAGU,MAAM,CAAC,EAAE;MAChE,MAAMO,CAAC,GAAGN,GAAG,CAACM,CAAC,CAACJ,KAAK;MACrB,IAAIjB,KAAK,KAAK,SAAS,EAAE;QACvB;QACA;QACAU,CAAC,CAACY,OAAO,CACP,CACE;UAAEJ,CAAC;UAAEG,CAAC,EAAEA,CAAC,GAAGtB;QAAE,CAAC,EACf;UAAEmB,CAAC,EAAEA,CAAC,GAAGnB,CAAC;UAAEsB;QAAE,CAAC,EACf;UAAEH,CAAC;UAAEG,CAAC,EAAEA,CAAC,GAAGtB;QAAE,CAAC,EACf;UAAEmB,CAAC,EAAEA,CAAC,GAAGnB,CAAC;UAAEsB;QAAE,CAAC,CAChB,EACD,IACF,CAAC;MACH,CAAC,MAAM;QACLX,CAAC,CAACa,SAAS,CAACL,CAAC,EAAEG,CAAC,EAAEtB,CAAC,CAAC;MACtB;IACF;IACA,OAAOW,CAAC;EACV,CAAC,CAAC;EAEF,oBACE,IAAAf,WAAA,CAAA6B,IAAA,EAAA7B,WAAA,CAAA8B,QAAA;IAAAC,QAAA,gBACE,IAAA/B,WAAA,CAAAgC,GAAA,EAACpC,gBAAA,CAAAqB,IAAI;MAACJ,IAAI,EAAEA,IAAK;MAACP,KAAK,EAAEC,SAAS,IAAID;IAAM,CAAE,CAAC,EAC9CC,SAAS,KAAKiB,SAAS,gBACtB,IAAAxB,WAAA,CAAAgC,GAAA,EAACpC,gBAAA,CAAAqB,IAAI;MACHJ,IAAI,EAAEA,IAAK;MACXoB,KAAK,EAAC,QAAQ;MACd3B,KAAK,EAAEA,KAAM;MACbE,WAAW,EAAEA,WAAY;MACzB0B,UAAU,EAAC;IAAO,CACnB,CAAC,GACA,IAAI;EAAA,CACR,CAAC;AAEP,CAAC;AAACC,OAAA,CAAAlC,IAAA,GAAAA,IAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_reactNativeReanimated","_gesture","_jsxRuntime","Dots","props","dots","r","shape","color","fillColor","strokeWidth","width","scale","focalX","offsetX","path","useDerivedValue","p","Skia","PathBuilder","Make","margin","dot","opacity","value","x","undefined","getPositionWl","y","addPoly","addCircle","build","jsxs","Fragment","children","jsx","Path","style","strokeJoin","exports"],"sourceRoot":"../../../src","sources":["Charts/Dots.tsx"],"mappings":";;;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAEA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAA0C,IAAAG,WAAA,GAAAH,OAAA;AAqB1C;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,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,GAAG,IAAAC,sCAAe,EAAC,MAAM;IACjC,MAAMC,CAAC,GAAGC,qBAAI,CAACC,WAAW,CAACC,IAAI,CAAC,CAAC;IACjC,MAAMC,MAAM,GAAGf,CAAC,GAAGI,WAAW;IAC9B,KAAK,MAAMY,GAAG,IAAIjB,IAAI,EAAE;MACtB,IAAIiB,GAAG,CAACC,OAAO,CAACC,KAAK,GAAG,GAAG,EAAE;MAC7B,MAAMC,CAAC,GACLb,KAAK,KAAKc,SAAS,IAAIb,MAAM,KAAKa,SAAS,IAAIZ,OAAO,KAAKY,SAAS,GAChEJ,GAAG,CAACG,CAAC,CAACD,KAAK,GACX,IAAAG,sBAAa,EACXL,GAAG,CAACG,CAAC,CAACD,KAAK,EACXX,MAAM,CAACW,KAAK,EACZZ,KAAK,CAACY,KAAK,EACXV,OAAO,CAACU,KACV,CAAC;MACP,IAAIb,KAAK,KAAKe,SAAS,KAAKD,CAAC,GAAG,CAACJ,MAAM,IAAII,CAAC,GAAGd,KAAK,GAAGU,MAAM,CAAC,EAAE;MAChE,MAAMO,CAAC,GAAGN,GAAG,CAACM,CAAC,CAACJ,KAAK;MACrB,IAAIjB,KAAK,KAAK,SAAS,EAAE;QACvB;QACA;QACAU,CAAC,CAACY,OAAO,CACP,CACE;UAAEJ,CAAC;UAAEG,CAAC,EAAEA,CAAC,GAAGtB;QAAE,CAAC,EACf;UAAEmB,CAAC,EAAEA,CAAC,GAAGnB,CAAC;UAAEsB;QAAE,CAAC,EACf;UAAEH,CAAC;UAAEG,CAAC,EAAEA,CAAC,GAAGtB;QAAE,CAAC,EACf;UAAEmB,CAAC,EAAEA,CAAC,GAAGnB,CAAC;UAAEsB;QAAE,CAAC,CAChB,EACD,IACF,CAAC;MACH,CAAC,MAAM;QACLX,CAAC,CAACa,SAAS,CAACL,CAAC,EAAEG,CAAC,EAAEtB,CAAC,CAAC;MACtB;IACF;IACA,OAAOW,CAAC,CAACc,KAAK,CAAC,CAAC;EAClB,CAAC,CAAC;EAEF,oBACE,IAAA7B,WAAA,CAAA8B,IAAA,EAAA9B,WAAA,CAAA+B,QAAA;IAAAC,QAAA,gBACE,IAAAhC,WAAA,CAAAiC,GAAA,EAACrC,gBAAA,CAAAsC,IAAI;MAACrB,IAAI,EAAEA,IAAK;MAACP,KAAK,EAAEC,SAAS,IAAID;IAAM,CAAE,CAAC,EAC9CC,SAAS,KAAKiB,SAAS,gBACtB,IAAAxB,WAAA,CAAAiC,GAAA,EAACrC,gBAAA,CAAAsC,IAAI;MACHrB,IAAI,EAAEA,IAAK;MACXsB,KAAK,EAAC,QAAQ;MACd7B,KAAK,EAAEA,KAAM;MACbE,WAAW,EAAEA,WAAY;MACzB4B,UAAU,EAAC;IAAO,CACnB,CAAC,GACA,IAAI;EAAA,CACR,CAAC;AAEP,CAAC;AAACC,OAAA,CAAApC,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.LineChart = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("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 }; }
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getPaddedTicks = exports.YAxis = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("react-native-skia");
8
+ var _react = require("react");
8
9
  var _reactNative = require("react-native");
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  const defaultFormatLabel = value => `${Math.round(value)}`;
@@ -31,34 +32,46 @@ const YAxis = function (props) {
31
32
  showLabels = true,
32
33
  formatLabel = defaultFormatLabel
33
34
  } = props;
34
- const values = props.values ?? Array.from({
35
- length: nbTicks
36
- }, (_, i) => minY + (i + 1) * (maxY - minY) / nbTicks);
37
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Group, {
38
- children: values.map((value, i) => {
39
- const y = height - (value - minY) * height / (maxY - minY);
35
+
36
+ // Measured once per input change: parents re-render while panning
37
+ const rows = (0, _react.useMemo)(() => {
38
+ // A flat range would divide by zero
39
+ const span = maxY - minY || 1;
40
+ const values = props.values ?? Array.from({
41
+ length: nbTicks
42
+ }, (_, i) => minY + (i + 1) * (maxY - minY) / nbTicks);
43
+ return values.map(value => {
40
44
  const label = formatLabel(value);
41
45
  const labelWidth = font.getGlyphWidths(font.getGlyphIDs(label)).reduce((a, b) => a + b, 0);
42
- const lineWidth = showLabels ? width - 10 - labelWidth : width;
43
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
46
+ return {
47
+ label,
48
+ labelWidth,
44
49
  transform: [{
45
- translateY: y
50
+ translateY: height - (value - minY) * height / span
46
51
  }],
47
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Line, {
48
- p1: (0, _reactNativeSkia.vec)(0, 0),
49
- p2: (0, _reactNativeSkia.vec)(lineWidth, 0),
50
- color: color,
51
- strokeWidth: strokeWidth
52
- }), showLabels ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Text, {
53
- text: label,
54
- x: width - labelWidth,
55
- y: font.getSize() / 2.5,
56
- font: font,
57
- color: labelColor ?? color
58
- }) : null]
59
- }, `YTick-${i}`);
60
- })
52
+ p1: (0, _reactNativeSkia.vec)(0, 0),
53
+ p2: (0, _reactNativeSkia.vec)(showLabels ? width - 10 - labelWidth : width, 0)
54
+ };
55
+ });
56
+ }, [props.values, nbTicks, minY, maxY, height, width, font, showLabels, formatLabel]);
57
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Group, {
58
+ children: rows.map((row, i) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
59
+ transform: row.transform,
60
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Line, {
61
+ p1: row.p1,
62
+ p2: row.p2,
63
+ color: color,
64
+ strokeWidth: strokeWidth
65
+ }), showLabels ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Text, {
66
+ text: row.label,
67
+ x: width - row.labelWidth,
68
+ y: font.getSize() / 2.5,
69
+ font: font,
70
+ color: labelColor ?? color
71
+ }) : null]
72
+ }, `YTick-${i}`))
61
73
  });
62
74
  };
63
- exports.YAxis = YAxis;
75
+ const MemoYAxis = exports.YAxis = /*#__PURE__*/(0, _react.memo)(YAxis);
76
+ MemoYAxis.displayName = 'YAxis';
64
77
  //# sourceMappingURL=YAxis.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_reactNative","_jsxRuntime","defaultFormatLabel","value","Math","round","getPaddedTicks","maxValue","nbTicks","padding","step","max","ceil","Array","from","length","_","i","exports","YAxis","props","width","height","font","minY","maxY","color","labelColor","strokeWidth","StyleSheet","hairlineWidth","showLabels","formatLabel","values","jsx","Group","children","map","y","label","labelWidth","getGlyphWidths","getGlyphIDs","reduce","a","b","lineWidth","jsxs","transform","translateY","Line","p1","vec","p2","Text","text","x","getSize"],"sourceRoot":"../../../src","sources":["Charts/YAxis.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_react","_reactNative","_jsxRuntime","defaultFormatLabel","value","Math","round","getPaddedTicks","maxValue","nbTicks","padding","step","max","ceil","Array","from","length","_","i","exports","YAxis","props","width","height","font","minY","maxY","color","labelColor","strokeWidth","StyleSheet","hairlineWidth","showLabels","formatLabel","rows","useMemo","span","values","map","label","labelWidth","getGlyphWidths","getGlyphIDs","reduce","a","b","transform","translateY","p1","vec","p2","jsx","Group","children","row","jsxs","Line","Text","text","x","y","getSize","MemoYAxis","memo","displayName"],"sourceRoot":"../../../src","sources":["Charts/YAxis.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ScalablePath = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("react-native-skia");
8
8
  var _reactNativeReanimated = require("react-native-reanimated");
9
9
  var _jsxRuntime = require("react/jsx-runtime");
10
10
  const ScalablePath = function (props) {
@@ -18,9 +18,10 @@ const ScalablePath = function (props) {
18
18
  } = props;
19
19
  const animatedPath = (0, _reactNativeReanimated.useDerivedValue)(() => {
20
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));
23
- return _path;
21
+ // Plain 3x3 matrix: a Skia.Matrix() would allocate a native object per frame
22
+ const s = scale.value;
23
+ const tx = focalX.value * (1 - s) + offsetX.value;
24
+ return _reactNativeSkia.Skia.PathBuilder.MakeFromPath(path.value).transform([s, 0, tx, 0, 1, 0, 0, 0, 1]).build();
24
25
  });
25
26
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
26
27
  style: "stroke",
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_reactNativeReanimated","_jsxRuntime","ScalablePath","props","path","scale","focalX","offsetX","pathProps","color","animatedPath","useDerivedValue","s","value","tx","Skia","PathBuilder","MakeFromPath","transform","build","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;IACA,MAAMC,CAAC,GAAGP,KAAK,CAACQ,KAAK;IACrB,MAAMC,EAAE,GAAGR,MAAM,CAACO,KAAK,IAAI,CAAC,GAAGD,CAAC,CAAC,GAAGL,OAAO,CAACM,KAAK;IACjD,OAAOE,qBAAI,CAACC,WAAW,CAACC,YAAY,CAACb,IAAI,CAACS,KAAK,CAAC,CAC7CK,SAAS,CAAC,CAACN,CAAC,EAAE,CAAC,EAAEE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CACvCK,KAAK,CAAC,CAAC;EACZ,CAAC,CAAC;EAEF,oBACE,IAAAlB,WAAA,CAAAmB,GAAA,EAACtB,gBAAA,CAAAuB,IAAI;IACHC,KAAK,EAAC,QAAQ;IACdlB,IAAI,EAAEM,YAAa;IACnBa,WAAW,EAAE,CAAE;IACfC,UAAU,EAAC,OAAO;IAClBC,SAAS,EAAC,OAAO;IACjBhB,KAAK,EAAEA,KAAM;IAAA,GACTD;EAAS,CACd,CAAC;AAEN,CAAC;AAACkB,OAAA,CAAAxB,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "ScalablePath", {
10
10
  }
11
11
  });
12
12
  exports.ZoomableLineChart = void 0;
13
- var _reactNativeSkia = require("@shopify/react-native-skia");
13
+ var _reactNativeSkia = require("react-native-skia");
14
14
  var _react = _interopRequireDefault(require("react"));
15
15
  var _ScalablePath = require("./ScalablePath.js");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useUpdateAxis = exports.useScalableGesture = exports.useCursorGesture = exports.getPositionWl = exports.getOffsetBoundsWl = exports.getClosestPoint = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("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");
@@ -189,20 +189,29 @@ const useCursorGesture = function (props) {
189
189
  if (!isContinuous && points === undefined) console.warn('Points must be defined for non-continuous mode');
190
190
  const xPosition = (0, _reactNativeReanimated.useSharedValue)(0);
191
191
  const yPosition = (0, _reactNativeReanimated.useSharedValue)(height);
192
- const setPosition = (x, y) => {
193
- 'worklet';
194
192
 
195
- yPosition.value = (0, _reactNativeSkia.clamp)(y, 0, height);
196
- if (isContinuous || points === undefined) {
197
- xPosition.value = (0, _reactNativeSkia.clamp)(x, 0, width);
198
- return;
199
- }
200
- const _closestDot = getClosestPoint((0, _reactNativeSkia.clamp)(x, 0, width), points.value);
201
- if (closestDataPoint !== undefined) closestDataPoint.value = _closestDot;
202
- xPosition.value = _closestDot.x;
203
- };
204
- const panGesture = _reactNativeGestureHandler.Gesture.Pan().onBegin(event => setPosition(event.x, event.y)).onUpdate(event => setPosition(event.x, event.y));
205
- const tapGesture = _reactNativeGestureHandler.Gesture.Tap().onBegin(event => setPosition(event.x, event.y));
193
+ // Memoized: a new gesture instance on every render can reset an active pan
194
+ const {
195
+ panGesture,
196
+ tapGesture
197
+ } = (0, _react.useMemo)(() => {
198
+ const setPosition = (x, y) => {
199
+ 'worklet';
200
+
201
+ yPosition.value = (0, _reactNativeSkia.clamp)(y, 0, height);
202
+ if (isContinuous || points === undefined) {
203
+ xPosition.value = (0, _reactNativeSkia.clamp)(x, 0, width);
204
+ return;
205
+ }
206
+ const _closestDot = getClosestPoint((0, _reactNativeSkia.clamp)(x, 0, width), points.value);
207
+ if (closestDataPoint !== undefined) closestDataPoint.value = _closestDot;
208
+ xPosition.value = _closestDot.x;
209
+ };
210
+ return {
211
+ panGesture: _reactNativeGestureHandler.Gesture.Pan().onBegin(event => setPosition(event.x, event.y)).onUpdate(event => setPosition(event.x, event.y)),
212
+ tapGesture: _reactNativeGestureHandler.Gesture.Tap().onBegin(event => setPosition(event.x, event.y))
213
+ };
214
+ }, [width, height, isContinuous, points, closestDataPoint, xPosition, yPosition]);
206
215
 
207
216
  // Re-snap the cursor when the data points change (e.g. switching graphs)
208
217
  (0, _reactNativeReanimated.useAnimatedReaction)(() => points?.value, _points => {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeSkia","require","_react","_reactNativeGestureHandler","_reactNativeReanimated","_reactNativeWorklets","getPositionWl","position","focalX","scale","offsetX","exports","getOffsetBoundsWl","width","startOffset","maxOffset","minOffset","useScalableGesture","props","startScale","useSharedValue","lastScale","lastFocalX","lastOffsetX","needsPivot","reset","useCallback","value","panGesture","useMemo","Gesture","Pan","maxPointers","onChange","event","clamp","changeX","onEnd","pinchGesture","Pinch","onStart","onUpdate","numberOfPointers","prevScale","newScale","Infinity","rebased","useUpdateAxis","scales","onScaleChange","currentIndex","onScaleChangeRef","useRef","current","dispatchScaleChange","index","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":[]}
1
+ {"version":3,"names":["_reactNativeSkia","require","_react","_reactNativeGestureHandler","_reactNativeReanimated","_reactNativeWorklets","getPositionWl","position","focalX","scale","offsetX","exports","getOffsetBoundsWl","width","startOffset","maxOffset","minOffset","useScalableGesture","props","startScale","useSharedValue","lastScale","lastFocalX","lastOffsetX","needsPivot","reset","useCallback","value","panGesture","useMemo","Gesture","Pan","maxPointers","onChange","event","clamp","changeX","onEnd","pinchGesture","Pinch","onStart","onUpdate","numberOfPointers","prevScale","newScale","Infinity","rebased","useUpdateAxis","scales","onScaleChange","currentIndex","onScaleChangeRef","useRef","current","dispatchScaleChange","index","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","tapGesture","setPosition","y","_closestDot","onBegin","Tap","_points"],"sourceRoot":"../../../src","sources":["Charts/gesture.ts"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useDotsTransition = exports.scaleCommands = exports.defaultTranslateTransitionWl = exports.defaultOpacityTransitionWl = exports.buildGraph = void 0;
7
- var _reactNativeSkia = require("@shopify/react-native-skia");
7
+ var _reactNativeSkia = require("react-native-skia");
8
+ var _react = require("react");
8
9
  var _d3Scale = require("d3-scale");
9
10
  var shape = _interopRequireWildcard(require("d3-shape"));
10
11
  var _reactNativeReanimated = require("react-native-reanimated");
@@ -15,11 +16,23 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
15
16
 
16
17
  const buildGraph = function (data, width, height, config) {
17
18
  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]));
19
+
20
+ // Loops rather than Math.min(...data): spreading a long series can exceed the engine's argument limit
21
+ let dataMinX = Infinity;
22
+ let dataMaxX = -Infinity;
23
+ let dataMinY = Infinity;
24
+ let dataMaxY = -Infinity;
25
+ for (const [x, y] of data) {
26
+ if (x < dataMinX) dataMinX = x;
27
+ if (x > dataMaxX) dataMaxX = x;
28
+ if (y < dataMinY) dataMinY = y;
29
+ if (y > dataMaxY) dataMaxY = y;
30
+ }
31
+ const minX = config?.minX ?? dataMinX;
32
+ const maxX = config?.maxX ?? dataMaxX;
20
33
  const scaleX = (0, _d3Scale.scaleLinear)().domain([minX, maxX]).range([0, width]);
21
- const minY = config?.minY ?? Math.min(...data.map(d => d[1]));
22
- const maxY = config?.maxY ?? Math.max(...data.map(d => d[1]));
34
+ const minY = config?.minY ?? dataMinY;
35
+ const maxY = config?.maxY ?? dataMaxY;
23
36
  const scaleY = (0, _d3Scale.scaleLinear)().domain([minY, maxY]).range([height, 0]);
24
37
  const path = shape.line().x(([x]) => scaleX(x)).y(([, y]) => scaleY(y)).curve(config?.curve ?? shape.curveBasis)(data);
25
38
  if (path === null) throw new Error('Failed to build the line path');
@@ -103,18 +116,33 @@ const useDotsTransition = function (props) {
103
116
  opacityWl = defaultOpacityTransitionWl,
104
117
  translateWl = defaultTranslateTransitionWl
105
118
  } = props;
119
+
120
+ // Normalized once per path change, not per dot per frame
121
+ const commands = (0, _reactNativeReanimated.useSharedValue)([]);
122
+ const visibleCount = (0, _reactNativeReanimated.useSharedValue)(0);
123
+ // Bumped when the data or the dots are replaced, so they get retargeted
124
+ // even if the graph index is unchanged
125
+ const generationRef = (0, _react.useRef)(0);
126
+ const generation = (0, _react.useMemo)(() => generationRef.current += 1,
127
+ // eslint-disable-next-line react-hooks/exhaustive-deps
128
+ [dataPoints, dots]);
129
+
130
+ // Retarget on graph or data change only: re-assigning x while it animates
131
+ // would restart the animation every frame
106
132
  (0, _reactNativeReanimated.useAnimatedReaction)(() => ({
107
133
  _currentGraph: currentGraph.value,
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)
134
+ _path: path.value,
135
+ _generation: generation
112
136
  }), ({
113
137
  _currentGraph,
114
- _currentCommands
115
- }) => {
138
+ _path,
139
+ _generation
140
+ }, previous) => {
141
+ commands.value = (0, _maths.commandsToBezier)(_path.toCmds());
142
+ if (previous !== null && previous._currentGraph === _currentGraph && previous._generation === _generation) return;
116
143
  const newDataPoints = dataPoints[_currentGraph];
117
144
  if (newDataPoints === undefined) throw new Error('Data points cannot be undefined');
145
+ visibleCount.value = newDataPoints.length;
118
146
  dots.forEach((_dot, i) => {
119
147
  const _newDot = newDataPoints[i];
120
148
  if (!_newDot) {
@@ -122,16 +150,38 @@ const useDotsTransition = function (props) {
122
150
  return;
123
151
  }
124
152
  _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
153
  _dot.opacity.value = opacityWl(1);
130
154
  });
131
155
  },
132
156
  // Explicit deps: without them the reaction re-registers and re-fires on
133
157
  // every parent render, restarting every dot animation on the UI thread
134
- [currentGraph, path, dataPoints, dots, opacityWl, translateWl]);
158
+ [currentGraph, path, dataPoints, dots, opacityWl, translateWl, generation]);
159
+
160
+ // Keep y glued to the curve while x animates or the path tweens
161
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => ({
162
+ _cmds: commands.value,
163
+ _xs: dots.map(d => d.x.value)
164
+ }), ({
165
+ _cmds,
166
+ _xs
167
+ }) => {
168
+ const count = Math.min(visibleCount.value, dots.length);
169
+ // Dots are in x order, so one forward walk over the segments serves them all
170
+ let segment = 0;
171
+ for (let i = 0; i < count; i++) {
172
+ const x = _xs[i];
173
+ let index = (0, _maths.findBezierIndex)(_cmds, x, segment);
174
+ if (index === -1 && segment > 1) index = (0, _maths.findBezierIndex)(_cmds, x);
175
+ let newY;
176
+ if (index === -1) {
177
+ newY = (0, _maths.getYBeyondPathEnds)(_cmds, x);
178
+ } else {
179
+ segment = index;
180
+ newY = (0, _maths.getYOnBezier)(_cmds, index, x);
181
+ }
182
+ if (newY !== undefined) dots[i].y.value = newY;
183
+ }
184
+ }, [dots]);
135
185
  };
136
186
  exports.useDotsTransition = useDotsTransition;
137
187
  //# sourceMappingURL=graphUtils.js.map