react-native-wagmi-charts 1.8.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/.DS_Store +0 -0
  2. package/README.md +331 -196
  3. package/example/.DS_Store +0 -0
  4. package/example/src/LineChart.tsx +10 -4
  5. package/example/src/data/line-data.json +20 -20
  6. package/lib/commonjs/charts/candle/utils/getDomain.js +19 -0
  7. package/lib/commonjs/charts/candle/utils/getDomain.js.map +1 -0
  8. package/lib/commonjs/charts/candle/utils/getHeight.js +19 -0
  9. package/lib/commonjs/charts/candle/utils/getHeight.js.map +1 -0
  10. package/lib/commonjs/charts/candle/utils/getPrice.js +20 -0
  11. package/lib/commonjs/charts/candle/utils/getPrice.js.map +1 -0
  12. package/lib/commonjs/charts/candle/utils/getY.js +19 -0
  13. package/lib/commonjs/charts/candle/utils/getY.js.map +1 -0
  14. package/lib/commonjs/charts/candle/utils/index.js +58 -0
  15. package/lib/commonjs/charts/candle/utils/index.js.map +1 -0
  16. package/lib/commonjs/charts/line/Chart.js +9 -3
  17. package/lib/commonjs/charts/line/Chart.js.map +1 -1
  18. package/lib/commonjs/charts/line/ChartPath.js +73 -17
  19. package/lib/commonjs/charts/line/ChartPath.js.map +1 -1
  20. package/lib/commonjs/charts/line/Context.js +1 -0
  21. package/lib/commonjs/charts/line/Context.js.map +1 -1
  22. package/lib/commonjs/charts/line/Cursor.js +1 -0
  23. package/lib/commonjs/charts/line/Cursor.js.map +1 -1
  24. package/lib/commonjs/charts/line/CursorCrosshair.js +10 -3
  25. package/lib/commonjs/charts/line/CursorCrosshair.js.map +1 -1
  26. package/lib/commonjs/charts/line/CursorLine.js +6 -6
  27. package/lib/commonjs/charts/line/CursorLine.js.map +1 -1
  28. package/lib/commonjs/charts/line/DatetimeText.js +2 -0
  29. package/lib/commonjs/charts/line/DatetimeText.js.map +1 -1
  30. package/lib/commonjs/charts/line/Dot.js +67 -62
  31. package/lib/commonjs/charts/line/Dot.js.map +1 -1
  32. package/lib/commonjs/charts/line/Gradient.js +8 -25
  33. package/lib/commonjs/charts/line/Gradient.js.map +1 -1
  34. package/lib/commonjs/charts/line/Group.js +5 -25
  35. package/lib/commonjs/charts/line/Group.js.map +1 -1
  36. package/lib/commonjs/charts/line/Highlight.js +92 -0
  37. package/lib/commonjs/charts/line/Highlight.js.map +1 -0
  38. package/lib/commonjs/charts/line/HorizontalLine.js +6 -6
  39. package/lib/commonjs/charts/line/HorizontalLine.js.map +1 -1
  40. package/lib/commonjs/charts/line/Path.js +19 -30
  41. package/lib/commonjs/charts/line/Path.js.map +1 -1
  42. package/lib/commonjs/charts/line/PriceText.js +2 -0
  43. package/lib/commonjs/charts/line/PriceText.js.map +1 -1
  44. package/lib/commonjs/charts/line/Tooltip.js +2 -0
  45. package/lib/commonjs/charts/line/Tooltip.js.map +1 -1
  46. package/lib/commonjs/charts/line/index.js +47 -20
  47. package/lib/commonjs/charts/line/index.js.map +1 -1
  48. package/lib/commonjs/charts/line/useAnimatedPath.js +44 -0
  49. package/lib/commonjs/charts/line/useAnimatedPath.js.map +1 -0
  50. package/lib/commonjs/charts/line/{utils.js → utils/getArea.js} +2 -49
  51. package/lib/commonjs/charts/line/utils/getArea.js.map +1 -0
  52. package/lib/commonjs/charts/line/utils/getDomain.js +16 -0
  53. package/lib/commonjs/charts/line/utils/getDomain.js.map +1 -0
  54. package/lib/commonjs/charts/line/utils/getPath.js +34 -0
  55. package/lib/commonjs/charts/line/utils/getPath.js.map +1 -0
  56. package/lib/commonjs/charts/line/utils/index.js +71 -0
  57. package/lib/commonjs/charts/line/utils/index.js.map +1 -0
  58. package/lib/commonjs/charts/line/{interpolatePath.js → utils/interpolatePath.js} +1 -1
  59. package/lib/commonjs/charts/line/{interpolatePath.js.map → utils/interpolatePath.js.map} +1 -1
  60. package/lib/commonjs/charts/line/utils/lineChartDataPropToArray.js +27 -0
  61. package/lib/commonjs/charts/line/utils/lineChartDataPropToArray.js.map +1 -0
  62. package/lib/commonjs/index.js +8 -8
  63. package/lib/commonjs/index.js.map +1 -1
  64. package/lib/commonjs/utils/formatDatetime.js +21 -0
  65. package/lib/commonjs/utils/formatDatetime.js.map +1 -0
  66. package/lib/commonjs/utils/formatPrice.js +46 -0
  67. package/lib/commonjs/utils/formatPrice.js.map +1 -0
  68. package/lib/commonjs/utils/index.js +45 -0
  69. package/lib/commonjs/utils/index.js.map +1 -0
  70. package/lib/commonjs/{utils.js → utils/usePrevious.js} +1 -57
  71. package/lib/commonjs/utils/usePrevious.js.map +1 -0
  72. package/lib/module/charts/candle/utils/getDomain.js +12 -0
  73. package/lib/module/charts/candle/utils/getDomain.js.map +1 -0
  74. package/lib/module/charts/candle/utils/getHeight.js +11 -0
  75. package/lib/module/charts/candle/utils/getHeight.js.map +1 -0
  76. package/lib/module/charts/candle/utils/getPrice.js +12 -0
  77. package/lib/module/charts/candle/utils/getPrice.js.map +1 -0
  78. package/lib/module/charts/candle/utils/getY.js +11 -0
  79. package/lib/module/charts/candle/utils/getY.js.map +1 -0
  80. package/lib/module/charts/candle/utils/index.js +5 -0
  81. package/lib/module/charts/candle/utils/index.js.map +1 -0
  82. package/lib/module/charts/line/Chart.js +9 -4
  83. package/lib/module/charts/line/Chart.js.map +1 -1
  84. package/lib/module/charts/line/ChartPath.js +69 -17
  85. package/lib/module/charts/line/ChartPath.js.map +1 -1
  86. package/lib/module/charts/line/Context.js +1 -0
  87. package/lib/module/charts/line/Context.js.map +1 -1
  88. package/lib/module/charts/line/Cursor.js +1 -0
  89. package/lib/module/charts/line/Cursor.js.map +1 -1
  90. package/lib/module/charts/line/CursorCrosshair.js +10 -4
  91. package/lib/module/charts/line/CursorCrosshair.js.map +1 -1
  92. package/lib/module/charts/line/CursorLine.js +4 -3
  93. package/lib/module/charts/line/CursorLine.js.map +1 -1
  94. package/lib/module/charts/line/DatetimeText.js +1 -0
  95. package/lib/module/charts/line/DatetimeText.js.map +1 -1
  96. package/lib/module/charts/line/Dot.js +66 -63
  97. package/lib/module/charts/line/Dot.js.map +1 -1
  98. package/lib/module/charts/line/Gradient.js +8 -24
  99. package/lib/module/charts/line/Gradient.js.map +1 -1
  100. package/lib/module/charts/line/Group.js +2 -24
  101. package/lib/module/charts/line/Group.js.map +1 -1
  102. package/lib/module/charts/line/Highlight.js +69 -0
  103. package/lib/module/charts/line/Highlight.js.map +1 -0
  104. package/lib/module/charts/line/HorizontalLine.js +4 -3
  105. package/lib/module/charts/line/HorizontalLine.js.map +1 -1
  106. package/lib/module/charts/line/Path.js +17 -29
  107. package/lib/module/charts/line/Path.js.map +1 -1
  108. package/lib/module/charts/line/PriceText.js +1 -0
  109. package/lib/module/charts/line/PriceText.js.map +1 -1
  110. package/lib/module/charts/line/Tooltip.js +1 -0
  111. package/lib/module/charts/line/Tooltip.js.map +1 -1
  112. package/lib/module/charts/line/index.js +12 -8
  113. package/lib/module/charts/line/index.js.map +1 -1
  114. package/lib/module/charts/line/useAnimatedPath.js +34 -0
  115. package/lib/module/charts/line/useAnimatedPath.js.map +1 -0
  116. package/lib/module/charts/line/utils/getArea.js +19 -0
  117. package/lib/module/charts/line/utils/getArea.js.map +1 -0
  118. package/lib/module/charts/line/utils/getDomain.js +9 -0
  119. package/lib/module/charts/line/utils/getDomain.js.map +1 -0
  120. package/lib/module/charts/line/utils/getPath.js +21 -0
  121. package/lib/module/charts/line/utils/getPath.js.map +1 -0
  122. package/lib/module/charts/line/utils/index.js +6 -0
  123. package/lib/module/charts/line/utils/index.js.map +1 -0
  124. package/lib/module/charts/line/{interpolatePath.js → utils/interpolatePath.js} +1 -1
  125. package/lib/module/charts/line/{interpolatePath.js.map → utils/interpolatePath.js.map} +1 -1
  126. package/lib/module/charts/line/utils/lineChartDataPropToArray.js +20 -0
  127. package/lib/module/charts/line/utils/lineChartDataPropToArray.js.map +1 -0
  128. package/lib/module/index.js +1 -1
  129. package/lib/module/index.js.map +1 -1
  130. package/lib/module/utils/formatDatetime.js +14 -0
  131. package/lib/module/utils/formatDatetime.js.map +1 -0
  132. package/lib/module/{utils.js → utils/formatPrice.js} +1 -29
  133. package/lib/module/utils/formatPrice.js.map +1 -0
  134. package/lib/module/utils/index.js +4 -0
  135. package/lib/module/utils/index.js.map +1 -0
  136. package/lib/module/utils/usePrevious.js +14 -0
  137. package/lib/module/utils/usePrevious.js.map +1 -0
  138. package/lib/typescript/src/charts/candle/utils/getDomain.d.ts +2 -0
  139. package/lib/typescript/src/charts/candle/utils/getHeight.d.ts +6 -0
  140. package/lib/typescript/src/charts/candle/utils/getPrice.d.ts +6 -0
  141. package/lib/typescript/src/charts/candle/utils/getY.d.ts +6 -0
  142. package/lib/typescript/src/charts/candle/utils/index.d.ts +4 -0
  143. package/lib/typescript/src/charts/line/Chart.d.ts +5 -1
  144. package/lib/typescript/src/charts/line/ChartPath.d.ts +10 -1
  145. package/lib/typescript/src/charts/line/Context.d.ts +3 -0
  146. package/lib/typescript/src/charts/line/Cursor.d.ts +3 -0
  147. package/lib/typescript/src/charts/line/CursorCrosshair.d.ts +4 -1
  148. package/lib/typescript/src/charts/line/CursorLine.d.ts +4 -1
  149. package/lib/typescript/src/charts/line/DatetimeText.d.ts +3 -0
  150. package/lib/typescript/src/charts/line/Dot.d.ts +10 -7
  151. package/lib/typescript/src/charts/line/Gradient.d.ts +3 -0
  152. package/lib/typescript/src/charts/line/Group.d.ts +1 -2
  153. package/lib/typescript/src/charts/line/Highlight.d.ts +15 -0
  154. package/lib/typescript/src/charts/line/HorizontalLine.d.ts +4 -1
  155. package/lib/typescript/src/charts/line/Path.d.ts +5 -1
  156. package/lib/typescript/src/charts/line/PriceText.d.ts +3 -0
  157. package/lib/typescript/src/charts/line/Tooltip.d.ts +3 -0
  158. package/lib/typescript/src/charts/line/index.d.ts +15 -25
  159. package/lib/typescript/src/charts/line/useAnimatedPath.d.ts +8 -0
  160. package/lib/typescript/src/charts/line/utils/getArea.d.ts +9 -0
  161. package/lib/typescript/src/charts/line/utils/getDomain.d.ts +2 -0
  162. package/lib/typescript/src/charts/line/utils/getPath.d.ts +11 -0
  163. package/lib/typescript/src/charts/line/utils/index.d.ts +5 -0
  164. package/lib/typescript/src/charts/line/{interpolatePath.d.ts → utils/interpolatePath.d.ts} +1 -1
  165. package/lib/typescript/src/charts/line/utils/lineChartDataPropToArray.d.ts +2 -0
  166. package/lib/typescript/src/index.d.ts +1 -1
  167. package/lib/typescript/src/utils/formatDatetime.d.ts +8 -0
  168. package/lib/typescript/src/utils/formatPrice.d.ts +8 -0
  169. package/lib/typescript/src/utils/index.d.ts +3 -0
  170. package/lib/typescript/src/utils/usePrevious.d.ts +1 -0
  171. package/package.json +4 -2
  172. package/src/charts/candle/utils/getDomain.ts +9 -0
  173. package/src/charts/candle/utils/getHeight.ts +21 -0
  174. package/src/charts/candle/utils/getPrice.ts +17 -0
  175. package/src/charts/candle/utils/getY.ts +16 -0
  176. package/src/charts/candle/utils/index.ts +4 -0
  177. package/src/charts/line/Chart.tsx +9 -3
  178. package/src/charts/line/ChartPath.tsx +109 -33
  179. package/src/charts/line/Context.tsx +2 -0
  180. package/src/charts/line/Cursor.tsx +2 -0
  181. package/src/charts/line/CursorCrosshair.tsx +20 -5
  182. package/src/charts/line/CursorLine.tsx +5 -3
  183. package/src/charts/line/DatetimeText.tsx +2 -0
  184. package/src/charts/line/Dot.tsx +83 -86
  185. package/src/charts/line/Gradient.tsx +7 -34
  186. package/src/charts/line/Group.tsx +4 -47
  187. package/src/charts/line/Highlight.tsx +78 -0
  188. package/src/charts/line/HorizontalLine.tsx +5 -3
  189. package/src/charts/line/Path.tsx +14 -38
  190. package/src/charts/line/PriceText.tsx +2 -0
  191. package/src/charts/line/Tooltip.tsx +2 -0
  192. package/src/charts/line/index.ts +11 -7
  193. package/src/charts/line/useAnimatedPath.ts +47 -0
  194. package/src/charts/line/utils/getArea.ts +38 -0
  195. package/src/charts/line/utils/getDomain.ts +7 -0
  196. package/src/charts/line/utils/getPath.ts +48 -0
  197. package/src/charts/line/utils/index.ts +5 -0
  198. package/src/charts/line/{interpolatePath.ts → utils/interpolatePath.ts} +1 -1
  199. package/src/charts/line/utils/lineChartDataPropToArray.ts +25 -0
  200. package/src/index.ts +1 -1
  201. package/src/utils/formatDatetime.ts +16 -0
  202. package/src/{utils.ts → utils/formatPrice.ts} +0 -31
  203. package/src/utils/index.ts +3 -0
  204. package/src/utils/usePrevious.ts +13 -0
  205. package/yarn.lock +8 -1
  206. package/lib/commonjs/charts/line/utils.js.map +0 -1
  207. package/lib/commonjs/utils.js.map +0 -1
  208. package/lib/module/charts/line/utils.js +0 -60
  209. package/lib/module/charts/line/utils.js.map +0 -1
  210. package/lib/module/utils.js.map +0 -1
  211. package/lib/typescript/src/charts/line/utils.d.ts +0 -20
  212. package/lib/typescript/src/utils.d.ts +0 -17
  213. package/src/charts/line/utils.ts +0 -100
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LineChartHighlight = LineChartHighlight;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
11
+
12
+ var _reactNativeSvg = require("react-native-svg");
13
+
14
+ var _Chart = require("./Chart");
15
+
16
+ var _ChartPath = require("./ChartPath");
17
+
18
+ var _useAnimatedPath = _interopRequireDefault(require("./useAnimatedPath"));
19
+
20
+ var _useLineChart = require("./useLineChart");
21
+
22
+ var _utils = require("./utils");
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
+
32
+ const AnimatedPath = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeSvg.Path);
33
+
34
+ LineChartHighlight.displayName = 'LineChartHighlight';
35
+
36
+ function LineChartHighlight({
37
+ color = 'black',
38
+ inactiveColor,
39
+ showInactiveColor = true,
40
+ from,
41
+ to,
42
+ width: strokeWidth = 3,
43
+ ...props
44
+ }) {
45
+ const {
46
+ data,
47
+ yDomain
48
+ } = (0, _useLineChart.useLineChart)();
49
+ const {
50
+ pathWidth,
51
+ height,
52
+ gutter,
53
+ shape
54
+ } = React.useContext(_Chart.LineChartDimensionsContext);
55
+ const {
56
+ isTransitionEnabled,
57
+ isInactive: _isInactive
58
+ } = React.useContext(_ChartPath.LineChartPathContext);
59
+ const isInactive = showInactiveColor && _isInactive; ////////////////////////////////////////////////
60
+
61
+ const path = React.useMemo(() => {
62
+ if (data && data.length > 0) {
63
+ return (0, _utils.getPath)({
64
+ data,
65
+ from,
66
+ to,
67
+ width: pathWidth,
68
+ height,
69
+ gutter,
70
+ shape,
71
+ yDomain
72
+ });
73
+ }
74
+
75
+ return '';
76
+ }, [data, from, to, pathWidth, height, gutter, shape, yDomain]);
77
+ const {
78
+ animatedProps
79
+ } = (0, _useAnimatedPath.default)({
80
+ enabled: isTransitionEnabled,
81
+ path
82
+ }); ////////////////////////////////////////////////
83
+
84
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AnimatedPath, _extends({
85
+ animatedProps: animatedProps,
86
+ fill: "transparent",
87
+ stroke: isInactive ? inactiveColor || color : color,
88
+ strokeWidth: strokeWidth,
89
+ strokeOpacity: isInactive && !inactiveColor ? 0.5 : 1
90
+ }, props)));
91
+ }
92
+ //# sourceMappingURL=Highlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Highlight.tsx"],"names":["AnimatedPath","Animated","createAnimatedComponent","Path","LineChartHighlight","displayName","color","inactiveColor","showInactiveColor","from","to","width","strokeWidth","props","data","yDomain","pathWidth","height","gutter","shape","React","useContext","LineChartDimensionsContext","isTransitionEnabled","isInactive","_isInactive","LineChartPathContext","path","useMemo","length","animatedProps","enabled"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,YAAY,GAAGC,+BAASC,uBAAT,CAAiCC,oBAAjC,CAArB;;AAWAC,kBAAkB,CAACC,WAAnB,GAAiC,oBAAjC;;AAEO,SAASD,kBAAT,CAA4B;AACjCE,EAAAA,KAAK,GAAG,OADyB;AAEjCC,EAAAA,aAFiC;AAGjCC,EAAAA,iBAAiB,GAAG,IAHa;AAIjCC,EAAAA,IAJiC;AAKjCC,EAAAA,EALiC;AAMjCC,EAAAA,KAAK,EAAEC,WAAW,GAAG,CANY;AAOjC,KAAGC;AAP8B,CAA5B,EAQiB;AACtB,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAoB,iCAA1B;AACA,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,MAAb;AAAqBC,IAAAA,MAArB;AAA6BC,IAAAA;AAA7B,MAAuCC,KAAK,CAACC,UAAN,CAC3CC,iCAD2C,CAA7C;AAGA,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA,UAAU,EAAEC;AAAnC,MACJL,KAAK,CAACC,UAAN,CAAiBK,+BAAjB,CADF;AAEA,QAAMF,UAAU,GAAGhB,iBAAiB,IAAIiB,WAAxC,CAPsB,CAStB;;AAEA,QAAME,IAAI,GAAGP,KAAK,CAACQ,OAAN,CAAc,MAAM;AAC/B,QAAId,IAAI,IAAIA,IAAI,CAACe,MAAL,GAAc,CAA1B,EAA6B;AAC3B,aAAO,oBAAQ;AACbf,QAAAA,IADa;AAEbL,QAAAA,IAFa;AAGbC,QAAAA,EAHa;AAIbC,QAAAA,KAAK,EAAEK,SAJM;AAKbC,QAAAA,MALa;AAMbC,QAAAA,MANa;AAObC,QAAAA,KAPa;AAQbJ,QAAAA;AARa,OAAR,CAAP;AAUD;;AACD,WAAO,EAAP;AACD,GAdY,EAcV,CAACD,IAAD,EAAOL,IAAP,EAAaC,EAAb,EAAiBM,SAAjB,EAA4BC,MAA5B,EAAoCC,MAApC,EAA4CC,KAA5C,EAAmDJ,OAAnD,CAdU,CAAb;AAgBA,QAAM;AAAEe,IAAAA;AAAF,MAAoB,8BAAgB;AACxCC,IAAAA,OAAO,EAAER,mBAD+B;AAExCI,IAAAA;AAFwC,GAAhB,CAA1B,CA3BsB,CAgCtB;;AAEA,sBACE,uDACE,oBAAC,YAAD;AACE,IAAA,aAAa,EAAEG,aADjB;AAEE,IAAA,IAAI,EAAC,aAFP;AAGE,IAAA,MAAM,EAAEN,UAAU,GAAGjB,aAAa,IAAID,KAApB,GAA4BA,KAHhD;AAIE,IAAA,WAAW,EAAEM,WAJf;AAKE,IAAA,aAAa,EAAEY,UAAU,IAAI,CAACjB,aAAf,GAA+B,GAA/B,GAAqC;AALtD,KAMMM,KANN,EADF,CADF;AAYD","sourcesContent":["import * as React from 'react';\nimport Animated from 'react-native-reanimated';\nimport { Path, PathProps } from 'react-native-svg';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { LineChartPathContext } from './ChartPath';\nimport useAnimatedPath from './useAnimatedPath';\nimport { useLineChart } from './useLineChart';\nimport { getPath } from './utils';\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nexport type LineChartColorProps = Animated.AnimateProps<PathProps> & {\n color?: string;\n from: number;\n to: number;\n showInactiveColor?: boolean;\n inactiveColor?: string;\n width?: number;\n};\n\nLineChartHighlight.displayName = 'LineChartHighlight';\n\nexport function LineChartHighlight({\n color = 'black',\n inactiveColor,\n showInactiveColor = true,\n from,\n to,\n width: strokeWidth = 3,\n ...props\n}: LineChartColorProps) {\n const { data, yDomain } = useLineChart();\n const { pathWidth, height, gutter, shape } = React.useContext(\n LineChartDimensionsContext\n );\n const { isTransitionEnabled, isInactive: _isInactive } =\n React.useContext(LineChartPathContext);\n const isInactive = showInactiveColor && _isInactive;\n\n ////////////////////////////////////////////////\n\n const path = React.useMemo(() => {\n if (data && data.length > 0) {\n return getPath({\n data,\n from,\n to,\n width: pathWidth,\n height,\n gutter,\n shape,\n yDomain,\n });\n }\n return '';\n }, [data, from, to, pathWidth, height, gutter, shape, yDomain]);\n\n const { animatedProps } = useAnimatedPath({\n enabled: isTransitionEnabled,\n path,\n });\n\n ////////////////////////////////////////////////\n\n return (\n <>\n <AnimatedPath\n animatedProps={animatedProps}\n fill=\"transparent\"\n stroke={isInactive ? inactiveColor || color : color}\n strokeWidth={strokeWidth}\n strokeOpacity={isInactive && !inactiveColor ? 0.5 : 1}\n {...props}\n />\n </>\n );\n}\n"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.LineChartHorizontalLine = void 0;
6
+ exports.LineChartHorizontalLine = LineChartHorizontalLine;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
@@ -27,14 +27,16 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
27
27
 
28
28
  const AnimatedLine = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeSvg.Line);
29
29
 
30
- const LineChartHorizontalLine = ({
30
+ LineChartHorizontalLine.displayName = 'LineChartHorizontalLine';
31
+
32
+ function LineChartHorizontalLine({
31
33
  color = 'gray',
32
34
  lineProps = {},
33
35
  at = {
34
36
  index: 0
35
37
  },
36
38
  offsetY = 0
37
- }) => {
39
+ }) {
38
40
  const {
39
41
  width,
40
42
  path,
@@ -86,7 +88,5 @@ const LineChartHorizontalLine = ({
86
88
  stroke: color,
87
89
  strokeDasharray: "3 3"
88
90
  }, lineProps));
89
- };
90
-
91
- exports.LineChartHorizontalLine = LineChartHorizontalLine;
91
+ }
92
92
  //# sourceMappingURL=HorizontalLine.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["HorizontalLine.tsx"],"names":["AnimatedLine","Animated","createAnimatedComponent","SVGLine","LineChartHorizontalLine","color","lineProps","at","index","offsetY","width","path","height","gutter","React","useContext","LineChartDimensionsContext","data","yDomain","parsedPath","useMemo","pointWidth","length","y","yForX","offsetTop","max","value","percentageOffsetTop","min","heightBetweenGutters","offsetTopPixels","lineAnimatedProps","x1","x2","y1","y2"],"mappings":";;;;;;;AAAA;;AACA;;AAKA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,MAAMA,YAAY,GAAGC,+BAASC,uBAAT,CAAiCC,oBAAjC,CAArB;;AAmCO,MAAMC,uBAAuB,GAAG,CAAC;AACtCC,EAAAA,KAAK,GAAG,MAD8B;AAEtCC,EAAAA,SAAS,GAAG,EAF0B;AAGtCC,EAAAA,EAAE,GAAG;AAAEC,IAAAA,KAAK,EAAE;AAAT,GAHiC;AAItCC,EAAAA,OAAO,GAAG;AAJ4B,CAAD,KAKZ;AACzB,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeC,IAAAA,MAAf;AAAuBC,IAAAA;AAAvB,MAAkCC,eAAMC,UAAN,CACtCC,iCADsC,CAAxC;;AAGA,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAoB,iCAA1B;;AAEA,QAAMC,UAAU,GAAGL,eAAMM,OAAN,CAAc,MAAM,8BAAMT,IAAN,CAApB,EAAiC,CAACA,IAAD,CAAjC,CAAnB;;AACA,QAAMU,UAAU,GAAGP,eAAMM,OAAN,CACjB,MAAMV,KAAK,GAAGO,IAAI,CAACK,MADF,EAEjB,CAACL,IAAI,CAACK,MAAN,EAAcZ,KAAd,CAFiB,CAAnB;;AAKA,QAAMa,CAAC,GAAG,4CAAgB,MAAM;AAC9B,QAAI,OAAOhB,EAAP,KAAc,QAAd,IAA0BA,EAAE,CAACC,KAAH,IAAY,IAA1C,EAAgD;AAC9C,YAAMA,KAAK,GAAG,OAAOD,EAAP,KAAc,QAAd,GAAyBA,EAAzB,GAA8BA,EAAE,CAACC,KAA/C;AACA,YAAMgB,KAAK,GAAG,iCAASL,UAAT,EAAsBE,UAAU,GAAGb,KAAnC,KAA6C,CAA3D;AACA,aAAO,uCAAWgB,KAAK,GAAGf,OAAnB,CAAP;AACD;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEI,UAAMgB,SAAS,GAAGP,OAAO,CAACQ,GAAR,GAAcnB,EAAE,CAACoB,KAAnC;AACA,UAAMC,mBAAmB,GAAGH,SAAS,IAAIP,OAAO,CAACQ,GAAR,GAAcR,OAAO,CAACW,GAA1B,CAArC;AAEA,UAAMC,oBAAoB,GAAGlB,MAAM,GAAGC,MAAM,GAAG,CAA/C;AAEA,UAAMkB,eAAe,GAAGlB,MAAM,GAAGe,mBAAmB,GAAGE,oBAAvD;AAEA,WAAO,uCAAWC,eAAe,GAAGtB,OAA7B,CAAP;AACD,GAxBS,CAAV;AA0BA,QAAMuB,iBAAiB,GAAG,6CAAiB,OAAO;AAChDC,IAAAA,EAAE,EAAE,CAD4C;AAEhDC,IAAAA,EAAE,EAAExB,KAF4C;AAGhDyB,IAAAA,EAAE,EAAEZ,CAAC,CAACI,KAH0C;AAIhDS,IAAAA,EAAE,EAAEb,CAAC,CAACI;AAJ0C,GAAP,CAAjB,CAA1B;AAOA,sBACE,6BAAC,YAAD;AACE,IAAA,aAAa,EAAEK,iBADjB;AAEE,IAAA,WAAW,EAAE,CAFf;AAGE,IAAA,MAAM,EAAE3B,KAHV;AAIE,IAAA,eAAe,EAAC;AAJlB,KAKMC,SALN,EADF;AASD,CA3DM","sourcesContent":["import React from 'react';\nimport Animated, {\n useAnimatedProps,\n useDerivedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport { Line as SVGLine, LineProps } from 'react-native-svg';\nimport { getYForX, parse } from 'react-native-redash';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { useLineChart } from './useLineChart';\n\nconst AnimatedLine = Animated.createAnimatedComponent(SVGLine);\n\ntype HorizontalLineProps = {\n color?: string;\n lineProps?: Partial<LineProps>;\n offsetY?: number;\n /**\n * (Optional) A pixel value to nudge the line up or down.\n *\n * This may be useful to customize the line's position based on the thickness of your cursor or chart path.\n *\n * ```tsx\n * <LineChart.HorizontalLine\n * at={{ index: 3 }}\n * />\n *\n * // or\n *\n * <LineChart.HorizontalLine\n * at={{ value: 320.32}}\n * />\n * ```\n */\n at?:\n | {\n index: number;\n value?: never;\n }\n | {\n index?: never;\n value: number;\n }\n | number;\n};\n\nexport const LineChartHorizontalLine = ({\n color = 'gray',\n lineProps = {},\n at = { index: 0 },\n offsetY = 0,\n}: HorizontalLineProps) => {\n const { width, path, height, gutter } = React.useContext(\n LineChartDimensionsContext\n );\n const { data, yDomain } = useLineChart();\n\n const parsedPath = React.useMemo(() => parse(path), [path]);\n const pointWidth = React.useMemo(\n () => width / data.length,\n [data.length, width]\n );\n\n const y = useDerivedValue(() => {\n if (typeof at === 'number' || at.index != null) {\n const index = typeof at === 'number' ? at : at.index;\n const yForX = getYForX(parsedPath!, pointWidth * index) || 0;\n return withTiming(yForX + offsetY);\n }\n /**\n * <gutter>\n * | ---------- | <- yDomain.max |\n * | | | offsetTop\n * | | <- value |\n * | |\n * | | <- yDomain.min\n * <gutter>\n */\n\n const offsetTop = yDomain.max - at.value;\n const percentageOffsetTop = offsetTop / (yDomain.max - yDomain.min);\n\n const heightBetweenGutters = height - gutter * 2;\n\n const offsetTopPixels = gutter + percentageOffsetTop * heightBetweenGutters;\n\n return withTiming(offsetTopPixels + offsetY);\n });\n\n const lineAnimatedProps = useAnimatedProps(() => ({\n x1: 0,\n x2: width,\n y1: y.value,\n y2: y.value,\n }));\n\n return (\n <AnimatedLine\n animatedProps={lineAnimatedProps}\n strokeWidth={2}\n stroke={color}\n strokeDasharray=\"3 3\"\n {...lineProps}\n />\n );\n};\n"]}
1
+ {"version":3,"sources":["HorizontalLine.tsx"],"names":["AnimatedLine","Animated","createAnimatedComponent","SVGLine","LineChartHorizontalLine","displayName","color","lineProps","at","index","offsetY","width","path","height","gutter","React","useContext","LineChartDimensionsContext","data","yDomain","parsedPath","useMemo","pointWidth","length","y","yForX","offsetTop","max","value","percentageOffsetTop","min","heightBetweenGutters","offsetTopPixels","lineAnimatedProps","x1","x2","y1","y2"],"mappings":";;;;;;;AAAA;;AACA;;AAKA;;AACA;;AAEA;;AACA;;;;;;;;;;AAEA,MAAMA,YAAY,GAAGC,+BAASC,uBAAT,CAAiCC,oBAAjC,CAArB;;AAmCAC,uBAAuB,CAACC,WAAxB,GAAsC,yBAAtC;;AAEO,SAASD,uBAAT,CAAiC;AACtCE,EAAAA,KAAK,GAAG,MAD8B;AAEtCC,EAAAA,SAAS,GAAG,EAF0B;AAGtCC,EAAAA,EAAE,GAAG;AAAEC,IAAAA,KAAK,EAAE;AAAT,GAHiC;AAItCC,EAAAA,OAAO,GAAG;AAJ4B,CAAjC,EAKiB;AACtB,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeC,IAAAA,MAAf;AAAuBC,IAAAA;AAAvB,MAAkCC,eAAMC,UAAN,CACtCC,iCADsC,CAAxC;;AAGA,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAoB,iCAA1B;;AAEA,QAAMC,UAAU,GAAGL,eAAMM,OAAN,CAAc,MAAM,8BAAMT,IAAN,CAApB,EAAiC,CAACA,IAAD,CAAjC,CAAnB;;AACA,QAAMU,UAAU,GAAGP,eAAMM,OAAN,CACjB,MAAMV,KAAK,GAAGO,IAAI,CAACK,MADF,EAEjB,CAACL,IAAI,CAACK,MAAN,EAAcZ,KAAd,CAFiB,CAAnB;;AAKA,QAAMa,CAAC,GAAG,4CAAgB,MAAM;AAC9B,QAAI,OAAOhB,EAAP,KAAc,QAAd,IAA0BA,EAAE,CAACC,KAAH,IAAY,IAA1C,EAAgD;AAC9C,YAAMA,KAAK,GAAG,OAAOD,EAAP,KAAc,QAAd,GAAyBA,EAAzB,GAA8BA,EAAE,CAACC,KAA/C;AACA,YAAMgB,KAAK,GAAG,iCAASL,UAAT,EAAsBE,UAAU,GAAGb,KAAnC,KAA6C,CAA3D;AACA,aAAO,uCAAWgB,KAAK,GAAGf,OAAnB,CAAP;AACD;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEI,UAAMgB,SAAS,GAAGP,OAAO,CAACQ,GAAR,GAAcnB,EAAE,CAACoB,KAAnC;AACA,UAAMC,mBAAmB,GAAGH,SAAS,IAAIP,OAAO,CAACQ,GAAR,GAAcR,OAAO,CAACW,GAA1B,CAArC;AAEA,UAAMC,oBAAoB,GAAGlB,MAAM,GAAGC,MAAM,GAAG,CAA/C;AAEA,UAAMkB,eAAe,GAAGlB,MAAM,GAAGe,mBAAmB,GAAGE,oBAAvD;AAEA,WAAO,uCAAWC,eAAe,GAAGtB,OAA7B,CAAP;AACD,GAxBS,CAAV;AA0BA,QAAMuB,iBAAiB,GAAG,6CAAiB,OAAO;AAChDC,IAAAA,EAAE,EAAE,CAD4C;AAEhDC,IAAAA,EAAE,EAAExB,KAF4C;AAGhDyB,IAAAA,EAAE,EAAEZ,CAAC,CAACI,KAH0C;AAIhDS,IAAAA,EAAE,EAAEb,CAAC,CAACI;AAJ0C,GAAP,CAAjB,CAA1B;AAOA,sBACE,6BAAC,YAAD;AACE,IAAA,aAAa,EAAEK,iBADjB;AAEE,IAAA,WAAW,EAAE,CAFf;AAGE,IAAA,MAAM,EAAE3B,KAHV;AAIE,IAAA,eAAe,EAAC;AAJlB,KAKMC,SALN,EADF;AASD","sourcesContent":["import React from 'react';\nimport Animated, {\n useAnimatedProps,\n useDerivedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport { Line as SVGLine, LineProps } from 'react-native-svg';\nimport { getYForX, parse } from 'react-native-redash';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { useLineChart } from './useLineChart';\n\nconst AnimatedLine = Animated.createAnimatedComponent(SVGLine);\n\ntype HorizontalLineProps = {\n color?: string;\n lineProps?: Partial<LineProps>;\n offsetY?: number;\n /**\n * (Optional) A pixel value to nudge the line up or down.\n *\n * This may be useful to customize the line's position based on the thickness of your cursor or chart path.\n *\n * ```tsx\n * <LineChart.HorizontalLine\n * at={{ index: 3 }}\n * />\n *\n * // or\n *\n * <LineChart.HorizontalLine\n * at={{ value: 320.32}}\n * />\n * ```\n */\n at?:\n | {\n index: number;\n value?: never;\n }\n | {\n index?: never;\n value: number;\n }\n | number;\n};\n\nLineChartHorizontalLine.displayName = 'LineChartHorizontalLine';\n\nexport function LineChartHorizontalLine({\n color = 'gray',\n lineProps = {},\n at = { index: 0 },\n offsetY = 0,\n}: HorizontalLineProps) {\n const { width, path, height, gutter } = React.useContext(\n LineChartDimensionsContext\n );\n const { data, yDomain } = useLineChart();\n\n const parsedPath = React.useMemo(() => parse(path), [path]);\n const pointWidth = React.useMemo(\n () => width / data.length,\n [data.length, width]\n );\n\n const y = useDerivedValue(() => {\n if (typeof at === 'number' || at.index != null) {\n const index = typeof at === 'number' ? at : at.index;\n const yForX = getYForX(parsedPath!, pointWidth * index) || 0;\n return withTiming(yForX + offsetY);\n }\n /**\n * <gutter>\n * | ---------- | <- yDomain.max |\n * | | | offsetTop\n * | | <- value |\n * | |\n * | | <- yDomain.min\n * <gutter>\n */\n\n const offsetTop = yDomain.max - at.value;\n const percentageOffsetTop = offsetTop / (yDomain.max - yDomain.min);\n\n const heightBetweenGutters = height - gutter * 2;\n\n const offsetTopPixels = gutter + percentageOffsetTop * heightBetweenGutters;\n\n return withTiming(offsetTopPixels + offsetY);\n });\n\n const lineAnimatedProps = useAnimatedProps(() => ({\n x1: 0,\n x2: width,\n y1: y.value,\n y2: y.value,\n }));\n\n return (\n <AnimatedLine\n animatedProps={lineAnimatedProps}\n strokeWidth={2}\n stroke={color}\n strokeDasharray=\"3 3\"\n {...lineProps}\n />\n );\n}\n"]}
@@ -7,15 +7,15 @@ exports.LineChartPath = LineChartPath;
7
7
 
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
 
10
- var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
10
+ var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
11
11
 
12
12
  var _reactNativeSvg = require("react-native-svg");
13
13
 
14
14
  var _Chart = require("./Chart");
15
15
 
16
- var _interpolatePath = _interopRequireDefault(require("./interpolatePath"));
16
+ var _ChartPath = require("./ChartPath");
17
17
 
18
- var _utils = require("../../utils");
18
+ var _useAnimatedPath = _interopRequireDefault(require("./useAnimatedPath"));
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
@@ -27,45 +27,34 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
27
27
 
28
28
  const AnimatedPath = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeSvg.Path);
29
29
 
30
+ LineChartPath.displayName = 'LineChartPath';
31
+
30
32
  function LineChartPath({
31
33
  color = 'black',
34
+ inactiveColor,
32
35
  width: strokeWidth = 3,
33
- isInactive,
34
- isTransitionEnabled = true,
35
36
  ...props
36
37
  }) {
37
38
  const {
38
39
  path
39
- } = React.useContext(_Chart.LineChartDimensionsContext); ////////////////////////////////////////////////
40
-
41
- const transition = (0, _reactNativeReanimated.useSharedValue)(0);
42
- const previousPath = (0, _utils.usePrevious)(path);
43
- (0, _reactNativeReanimated.useAnimatedReaction)(() => {
44
- return path;
45
- }, (_, previous) => {
46
- if (previous) {
47
- transition.value = 0;
48
- transition.value = (0, _reactNativeReanimated.withTiming)(1);
49
- }
50
- }, [path]);
51
- const animatedProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
52
- let d = path || '';
53
-
54
- if (previousPath && isTransitionEnabled) {
55
- const pathInterpolator = (0, _interpolatePath.default)(previousPath, path, null);
56
- d = pathInterpolator(transition.value);
57
- }
58
-
59
- return {
60
- d
61
- };
40
+ } = React.useContext(_Chart.LineChartDimensionsContext);
41
+ const {
42
+ isTransitionEnabled,
43
+ isInactive
44
+ } = React.useContext(_ChartPath.LineChartPathContext); ////////////////////////////////////////////////
45
+
46
+ const {
47
+ animatedProps
48
+ } = (0, _useAnimatedPath.default)({
49
+ enabled: isTransitionEnabled,
50
+ path
62
51
  }); ////////////////////////////////////////////////
63
52
 
64
53
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AnimatedPath, _extends({
65
54
  animatedProps: animatedProps,
66
55
  fill: "transparent",
67
- stroke: color,
68
- strokeOpacity: isInactive ? 0.2 : 1,
56
+ stroke: isInactive ? inactiveColor || color : color,
57
+ strokeOpacity: isInactive && !inactiveColor ? 0.2 : 1,
69
58
  strokeWidth: strokeWidth
70
59
  }, props)));
71
60
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["Path.tsx"],"names":["AnimatedPath","Animated","createAnimatedComponent","Path","LineChartPath","color","width","strokeWidth","isInactive","isTransitionEnabled","props","path","React","useContext","LineChartDimensionsContext","transition","previousPath","_","previous","value","animatedProps","d","pathInterpolator"],"mappings":";;;;;;;AAAA;;AACA;;AAMA;;AAEA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,YAAY,GAAGC,+BAASC,uBAAT,CAAiCC,oBAAjC,CAArB;;AAwBO,SAASC,aAAT,CAAuB;AAC5BC,EAAAA,KAAK,GAAG,OADoB;AAE5BC,EAAAA,KAAK,EAAEC,WAAW,GAAG,CAFO;AAG5BC,EAAAA,UAH4B;AAI5BC,EAAAA,mBAAmB,GAAG,IAJM;AAK5B,KAAGC;AALyB,CAAvB,EAMgB;AACrB,QAAM;AAAEC,IAAAA;AAAF,MAAWC,KAAK,CAACC,UAAN,CAAiBC,iCAAjB,CAAjB,CADqB,CAGrB;;AAEA,QAAMC,UAAU,GAAG,2CAAe,CAAf,CAAnB;AAEA,QAAMC,YAAY,GAAG,wBAAYL,IAAZ,CAArB;AAEA,kDACE,MAAM;AACJ,WAAOA,IAAP;AACD,GAHH,EAIE,CAACM,CAAD,EAAIC,QAAJ,KAAiB;AACf,QAAIA,QAAJ,EAAc;AACZH,MAAAA,UAAU,CAACI,KAAX,GAAmB,CAAnB;AACAJ,MAAAA,UAAU,CAACI,KAAX,GAAmB,uCAAW,CAAX,CAAnB;AACD;AACF,GATH,EAUE,CAACR,IAAD,CAVF;AAaA,QAAMS,aAAa,GAAG,6CAAiB,MAAM;AAC3C,QAAIC,CAAC,GAAGV,IAAI,IAAI,EAAhB;;AACA,QAAIK,YAAY,IAAIP,mBAApB,EAAyC;AACvC,YAAMa,gBAAgB,GAAG,8BAAgBN,YAAhB,EAA8BL,IAA9B,EAAoC,IAApC,CAAzB;AACAU,MAAAA,CAAC,GAAGC,gBAAgB,CAACP,UAAU,CAACI,KAAZ,CAApB;AACD;;AACD,WAAO;AACLE,MAAAA;AADK,KAAP;AAGD,GATqB,CAAtB,CAtBqB,CAiCrB;;AAEA,sBACE,uDACE,oBAAC,YAAD;AACE,IAAA,aAAa,EAAED,aADjB;AAEE,IAAA,IAAI,EAAC,aAFP;AAGE,IAAA,MAAM,EAAEf,KAHV;AAIE,IAAA,aAAa,EAAEG,UAAU,GAAG,GAAH,GAAS,CAJpC;AAKE,IAAA,WAAW,EAAED;AALf,KAMMG,KANN,EADF,CADF;AAYD","sourcesContent":["import * as React from 'react';\nimport Animated, {\n useAnimatedProps,\n useAnimatedReaction,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport { Path, PathProps } from 'react-native-svg';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport interpolatePath from './interpolatePath';\nimport { usePrevious } from '../../utils';\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nexport type LineChartPathProps = Animated.AnimateProps<PathProps> & {\n color?: string;\n width?: number;\n isInactive?: boolean;\n /**\n * Default: `true`.\n *\n * If `false`, changes in the chart's path will not animate.\n *\n * While this use case is rare, it may be useful on web, where animations might not work as well.\n *\n * **Example**\n *\n * ```tsx\n * <LineChart.Path\n * pathProps={{ isTransitionEnabled: Platform.OS !== 'web' }}\n * />\n * ```\n */\n isTransitionEnabled?: boolean;\n};\n\nexport function LineChartPath({\n color = 'black',\n width: strokeWidth = 3,\n isInactive,\n isTransitionEnabled = true,\n ...props\n}: LineChartPathProps) {\n const { path } = React.useContext(LineChartDimensionsContext);\n\n ////////////////////////////////////////////////\n\n const transition = useSharedValue(0);\n\n const previousPath = usePrevious(path);\n\n useAnimatedReaction(\n () => {\n return path;\n },\n (_, previous) => {\n if (previous) {\n transition.value = 0;\n transition.value = withTiming(1);\n }\n },\n [path]\n );\n\n const animatedProps = useAnimatedProps(() => {\n let d = path || '';\n if (previousPath && isTransitionEnabled) {\n const pathInterpolator = interpolatePath(previousPath, path, null);\n d = pathInterpolator(transition.value);\n }\n return {\n d,\n };\n });\n\n ////////////////////////////////////////////////\n\n return (\n <>\n <AnimatedPath\n animatedProps={animatedProps}\n fill=\"transparent\"\n stroke={color}\n strokeOpacity={isInactive ? 0.2 : 1}\n strokeWidth={strokeWidth}\n {...props}\n />\n </>\n );\n}\n"]}
1
+ {"version":3,"sources":["Path.tsx"],"names":["AnimatedPath","Animated","createAnimatedComponent","Path","LineChartPath","displayName","color","inactiveColor","width","strokeWidth","props","path","React","useContext","LineChartDimensionsContext","isTransitionEnabled","isInactive","LineChartPathContext","animatedProps","enabled"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;AAEA,MAAMA,YAAY,GAAGC,+BAASC,uBAAT,CAAiCC,oBAAjC,CAArB;;AAyBAC,aAAa,CAACC,WAAd,GAA4B,eAA5B;;AAEO,SAASD,aAAT,CAAuB;AAC5BE,EAAAA,KAAK,GAAG,OADoB;AAE5BC,EAAAA,aAF4B;AAG5BC,EAAAA,KAAK,EAAEC,WAAW,GAAG,CAHO;AAI5B,KAAGC;AAJyB,CAAvB,EAKgB;AACrB,QAAM;AAAEC,IAAAA;AAAF,MAAWC,KAAK,CAACC,UAAN,CAAiBC,iCAAjB,CAAjB;AACA,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MACJJ,KAAK,CAACC,UAAN,CAAiBI,+BAAjB,CADF,CAFqB,CAKrB;;AAEA,QAAM;AAAEC,IAAAA;AAAF,MAAoB,8BAAgB;AACxCC,IAAAA,OAAO,EAAEJ,mBAD+B;AAExCJ,IAAAA;AAFwC,GAAhB,CAA1B,CAPqB,CAYrB;;AAEA,sBACE,uDACE,oBAAC,YAAD;AACE,IAAA,aAAa,EAAEO,aADjB;AAEE,IAAA,IAAI,EAAC,aAFP;AAGE,IAAA,MAAM,EAAEF,UAAU,GAAGT,aAAa,IAAID,KAApB,GAA4BA,KAHhD;AAIE,IAAA,aAAa,EAAEU,UAAU,IAAI,CAACT,aAAf,GAA+B,GAA/B,GAAqC,CAJtD;AAKE,IAAA,WAAW,EAAEE;AALf,KAMMC,KANN,EADF,CADF;AAYD","sourcesContent":["import * as React from 'react';\nimport Animated from 'react-native-reanimated';\nimport { Path, PathProps } from 'react-native-svg';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { LineChartPathContext } from './ChartPath';\nimport useAnimatedPath from './useAnimatedPath';\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nexport type LineChartPathProps = Animated.AnimateProps<PathProps> & {\n color?: string;\n inactiveColor?: string;\n width?: number;\n isInactive?: boolean;\n /**\n * Default: `true`.\n *\n * If `false`, changes in the chart's path will not animate.\n *\n * While this use case is rare, it may be useful on web, where animations might not work as well.\n *\n * **Example**\n *\n * ```tsx\n * <LineChart.Path\n * pathProps={{ isTransitionEnabled: Platform.OS !== 'web' }}\n * />\n * ```\n */\n isTransitionEnabled?: boolean;\n};\n\nLineChartPath.displayName = 'LineChartPath';\n\nexport function LineChartPath({\n color = 'black',\n inactiveColor,\n width: strokeWidth = 3,\n ...props\n}: LineChartPathProps) {\n const { path } = React.useContext(LineChartDimensionsContext);\n const { isTransitionEnabled, isInactive } =\n React.useContext(LineChartPathContext);\n\n ////////////////////////////////////////////////\n\n const { animatedProps } = useAnimatedPath({\n enabled: isTransitionEnabled,\n path,\n });\n\n ////////////////////////////////////////////////\n\n return (\n <>\n <AnimatedPath\n animatedProps={animatedProps}\n fill=\"transparent\"\n stroke={isInactive ? inactiveColor || color : color}\n strokeOpacity={isInactive && !inactiveColor ? 0.2 : 1}\n strokeWidth={strokeWidth}\n {...props}\n />\n </>\n );\n}\n"]}
@@ -15,6 +15,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
+ LineChartPriceText.displayName = 'LineChartPriceText';
19
+
18
20
  function LineChartPriceText({
19
21
  format,
20
22
  precision = 2,
@@ -1 +1 @@
1
- {"version":3,"sources":["PriceText.tsx"],"names":["LineChartPriceText","format","precision","variant","style","price"],"mappings":";;;;;;;AAAA;;AAIA;;AAEA;;;;;;AASO,SAASA,kBAAT,CAA4B;AACjCC,EAAAA,MADiC;AAEjCC,EAAAA,SAAS,GAAG,CAFqB;AAGjCC,EAAAA,OAAO,GAAG,WAHuB;AAIjCC,EAAAA;AAJiC,CAA5B,EAKqB;AAC1B,QAAMC,KAAK,GAAG,iCAAkB;AAAEJ,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAlB,CAAd;AACA,sBAAO,oBAAC,0BAAD;AAAc,IAAA,IAAI,EAAEG,KAAK,CAACF,OAAD,CAAzB;AAAoC,IAAA,KAAK,EAAEC;AAA3C,IAAP;AACD","sourcesContent":["import * as React from 'react';\nimport type { TextProps as RNTextProps } from 'react-native';\nimport type Animated from 'react-native-reanimated';\n\nimport { useLineChartPrice } from './usePrice';\nimport type { TFormatterFn } from '../candle/types';\nimport { AnimatedText } from '../../components/AnimatedText';\n\nexport type LineChartPriceTextProps = {\n format?: TFormatterFn<string>;\n precision?: number;\n variant?: 'formatted' | 'value';\n style?: Animated.AnimateProps<RNTextProps>['style'];\n};\n\nexport function LineChartPriceText({\n format,\n precision = 2,\n variant = 'formatted',\n style,\n}: LineChartPriceTextProps) {\n const price = useLineChartPrice({ format, precision });\n return <AnimatedText text={price[variant]} style={style} />;\n}\n"]}
1
+ {"version":3,"sources":["PriceText.tsx"],"names":["LineChartPriceText","displayName","format","precision","variant","style","price"],"mappings":";;;;;;;AAAA;;AAIA;;AAEA;;;;;;AASAA,kBAAkB,CAACC,WAAnB,GAAiC,oBAAjC;;AAEO,SAASD,kBAAT,CAA4B;AACjCE,EAAAA,MADiC;AAEjCC,EAAAA,SAAS,GAAG,CAFqB;AAGjCC,EAAAA,OAAO,GAAG,WAHuB;AAIjCC,EAAAA;AAJiC,CAA5B,EAKqB;AAC1B,QAAMC,KAAK,GAAG,iCAAkB;AAAEJ,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAlB,CAAd;AACA,sBAAO,oBAAC,0BAAD;AAAc,IAAA,IAAI,EAAEG,KAAK,CAACF,OAAD,CAAzB;AAAoC,IAAA,KAAK,EAAEC;AAA3C,IAAP;AACD","sourcesContent":["import * as React from 'react';\nimport type { TextProps as RNTextProps } from 'react-native';\nimport type Animated from 'react-native-reanimated';\n\nimport { useLineChartPrice } from './usePrice';\nimport type { TFormatterFn } from '../candle/types';\nimport { AnimatedText } from '../../components/AnimatedText';\n\nexport type LineChartPriceTextProps = {\n format?: TFormatterFn<string>;\n precision?: number;\n variant?: 'formatted' | 'value';\n style?: Animated.AnimateProps<RNTextProps>['style'];\n};\n\nLineChartPriceText.displayName = 'LineChartPriceText';\n\nexport function LineChartPriceText({\n format,\n precision = 2,\n variant = 'formatted',\n style,\n}: LineChartPriceTextProps) {\n const price = useLineChartPrice({ format, precision });\n return <AnimatedText text={price[variant]} style={style} />;\n}\n"]}
@@ -23,6 +23,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
23
23
 
24
24
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
25
 
26
+ LineChartTooltip.displayName = 'LineChartTooltip';
27
+
26
28
  function LineChartTooltip({
27
29
  children,
28
30
  xGutter = 8,
@@ -1 +1 @@
1
- {"version":3,"sources":["Tooltip.tsx"],"names":["LineChartTooltip","children","xGutter","yGutter","cursorGutter","position","textProps","textStyle","props","width","height","React","useContext","LineChartDimensionsContext","type","CursorContext","currentX","currentY","isActive","x","elementWidth","elementHeight","handleLayout","useCallback","event","value","nativeEvent","layout","animatedCursorStyle","translateXOffset","xOffset","translateYOffset","transform","translateX","translateY","opacity","padding","alignSelf","style"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport type { ViewProps } from 'react-native';\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n} from 'react-native-reanimated';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { CursorContext } from './Cursor';\nimport { LineChartPriceText, LineChartPriceTextProps } from './PriceText';\nimport { useLineChart } from './useLineChart';\n\ntype LineChartTooltipProps = Animated.AnimateProps<ViewProps> & {\n children?: React.ReactNode;\n xGutter?: number;\n yGutter?: number;\n cursorGutter?: number;\n position?: 'top' | 'bottom';\n textProps?: LineChartPriceTextProps;\n textStyle?: LineChartPriceTextProps['style'];\n};\n\nexport function LineChartTooltip({\n children,\n xGutter = 8,\n yGutter = 8,\n cursorGutter = 48,\n position = 'top',\n textProps,\n textStyle,\n ...props\n}: LineChartTooltipProps) {\n const { width, height } = React.useContext(LineChartDimensionsContext);\n const { type } = React.useContext(CursorContext);\n const { currentX, currentY, isActive } = useLineChart();\n\n const x = useSharedValue(0);\n const elementWidth = useSharedValue(0);\n const elementHeight = useSharedValue(0);\n\n const handleLayout = React.useCallback(\n (event) => {\n x.value = event.nativeEvent.layout.x;\n elementWidth.value = event.nativeEvent.layout.width;\n elementHeight.value = event.nativeEvent.layout.height;\n },\n [elementHeight, elementWidth, x]\n );\n\n const animatedCursorStyle = useAnimatedStyle(() => {\n let translateXOffset = elementWidth.value / 2;\n if (currentX.value < elementWidth.value / 2 + xGutter) {\n const xOffset = elementWidth.value / 2 + xGutter - currentX.value;\n translateXOffset = translateXOffset - xOffset;\n }\n if (currentX.value > width - elementWidth.value / 2 - xGutter) {\n const xOffset =\n currentX.value - (width - elementWidth.value / 2 - xGutter);\n translateXOffset = translateXOffset + xOffset;\n }\n\n let translateYOffset = 0;\n if (position === 'top') {\n translateYOffset = elementHeight.value / 2 + cursorGutter;\n if (currentY.value - translateYOffset < yGutter) {\n translateYOffset = currentY.value - yGutter;\n }\n } else if (position === 'bottom') {\n translateYOffset = -(elementHeight.value / 2) - cursorGutter / 2;\n if (\n currentY.value - translateYOffset + elementHeight.value >\n height - yGutter\n ) {\n translateYOffset =\n currentY.value - (height - yGutter) + elementHeight.value;\n }\n }\n\n return {\n transform: [\n { translateX: currentX.value - translateXOffset },\n {\n translateY:\n type === 'crosshair'\n ? currentY.value - translateYOffset\n : position === 'top'\n ? yGutter\n : height - elementHeight.value - yGutter,\n },\n ],\n opacity: isActive.value ? 1 : 0,\n };\n });\n\n return (\n <Animated.View\n onLayout={handleLayout}\n {...props}\n style={[\n {\n position: 'absolute',\n padding: 4,\n alignSelf: 'flex-start',\n },\n animatedCursorStyle,\n props.style,\n ]}\n >\n {children || <LineChartPriceText style={[textStyle]} {...textProps} />}\n </Animated.View>\n );\n}\n"]}
1
+ {"version":3,"sources":["Tooltip.tsx"],"names":["LineChartTooltip","displayName","children","xGutter","yGutter","cursorGutter","position","textProps","textStyle","props","width","height","React","useContext","LineChartDimensionsContext","type","CursorContext","currentX","currentY","isActive","x","elementWidth","elementHeight","handleLayout","useCallback","event","value","nativeEvent","layout","animatedCursorStyle","translateXOffset","xOffset","translateYOffset","transform","translateX","translateY","opacity","padding","alignSelf","style"],"mappings":";;;;;;;AAAA;;AAEA;;AAKA;;AACA;;AACA;;AACA;;;;;;;;AAYAA,gBAAgB,CAACC,WAAjB,GAA+B,kBAA/B;;AAEO,SAASD,gBAAT,CAA0B;AAC/BE,EAAAA,QAD+B;AAE/BC,EAAAA,OAAO,GAAG,CAFqB;AAG/BC,EAAAA,OAAO,GAAG,CAHqB;AAI/BC,EAAAA,YAAY,GAAG,EAJgB;AAK/BC,EAAAA,QAAQ,GAAG,KALoB;AAM/BC,EAAAA,SAN+B;AAO/BC,EAAAA,SAP+B;AAQ/B,KAAGC;AAR4B,CAA1B,EASmB;AACxB,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,MAAoBC,KAAK,CAACC,UAAN,CAAiBC,iCAAjB,CAA1B;AACA,QAAM;AAAEC,IAAAA;AAAF,MAAWH,KAAK,CAACC,UAAN,CAAiBG,qBAAjB,CAAjB;AACA,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA;AAAtB,MAAmC,iCAAzC;AAEA,QAAMC,CAAC,GAAG,2CAAe,CAAf,CAAV;AACA,QAAMC,YAAY,GAAG,2CAAe,CAAf,CAArB;AACA,QAAMC,aAAa,GAAG,2CAAe,CAAf,CAAtB;AAEA,QAAMC,YAAY,GAAGX,KAAK,CAACY,WAAN,CAClBC,KAAD,IAAW;AACTL,IAAAA,CAAC,CAACM,KAAF,GAAUD,KAAK,CAACE,WAAN,CAAkBC,MAAlB,CAAyBR,CAAnC;AACAC,IAAAA,YAAY,CAACK,KAAb,GAAqBD,KAAK,CAACE,WAAN,CAAkBC,MAAlB,CAAyBlB,KAA9C;AACAY,IAAAA,aAAa,CAACI,KAAd,GAAsBD,KAAK,CAACE,WAAN,CAAkBC,MAAlB,CAAyBjB,MAA/C;AACD,GALkB,EAMnB,CAACW,aAAD,EAAgBD,YAAhB,EAA8BD,CAA9B,CANmB,CAArB;AASA,QAAMS,mBAAmB,GAAG,6CAAiB,MAAM;AACjD,QAAIC,gBAAgB,GAAGT,YAAY,CAACK,KAAb,GAAqB,CAA5C;;AACA,QAAIT,QAAQ,CAACS,KAAT,GAAiBL,YAAY,CAACK,KAAb,GAAqB,CAArB,GAAyBvB,OAA9C,EAAuD;AACrD,YAAM4B,OAAO,GAAGV,YAAY,CAACK,KAAb,GAAqB,CAArB,GAAyBvB,OAAzB,GAAmCc,QAAQ,CAACS,KAA5D;AACAI,MAAAA,gBAAgB,GAAGA,gBAAgB,GAAGC,OAAtC;AACD;;AACD,QAAId,QAAQ,CAACS,KAAT,GAAiBhB,KAAK,GAAGW,YAAY,CAACK,KAAb,GAAqB,CAA7B,GAAiCvB,OAAtD,EAA+D;AAC7D,YAAM4B,OAAO,GACXd,QAAQ,CAACS,KAAT,IAAkBhB,KAAK,GAAGW,YAAY,CAACK,KAAb,GAAqB,CAA7B,GAAiCvB,OAAnD,CADF;AAEA2B,MAAAA,gBAAgB,GAAGA,gBAAgB,GAAGC,OAAtC;AACD;;AAED,QAAIC,gBAAgB,GAAG,CAAvB;;AACA,QAAI1B,QAAQ,KAAK,KAAjB,EAAwB;AACtB0B,MAAAA,gBAAgB,GAAGV,aAAa,CAACI,KAAd,GAAsB,CAAtB,GAA0BrB,YAA7C;;AACA,UAAIa,QAAQ,CAACQ,KAAT,GAAiBM,gBAAjB,GAAoC5B,OAAxC,EAAiD;AAC/C4B,QAAAA,gBAAgB,GAAGd,QAAQ,CAACQ,KAAT,GAAiBtB,OAApC;AACD;AACF,KALD,MAKO,IAAIE,QAAQ,KAAK,QAAjB,EAA2B;AAChC0B,MAAAA,gBAAgB,GAAG,EAAEV,aAAa,CAACI,KAAd,GAAsB,CAAxB,IAA6BrB,YAAY,GAAG,CAA/D;;AACA,UACEa,QAAQ,CAACQ,KAAT,GAAiBM,gBAAjB,GAAoCV,aAAa,CAACI,KAAlD,GACAf,MAAM,GAAGP,OAFX,EAGE;AACA4B,QAAAA,gBAAgB,GACdd,QAAQ,CAACQ,KAAT,IAAkBf,MAAM,GAAGP,OAA3B,IAAsCkB,aAAa,CAACI,KADtD;AAED;AACF;;AAED,WAAO;AACLO,MAAAA,SAAS,EAAE,CACT;AAAEC,QAAAA,UAAU,EAAEjB,QAAQ,CAACS,KAAT,GAAiBI;AAA/B,OADS,EAET;AACEK,QAAAA,UAAU,EACRpB,IAAI,KAAK,WAAT,GACIG,QAAQ,CAACQ,KAAT,GAAiBM,gBADrB,GAEI1B,QAAQ,KAAK,KAAb,GACAF,OADA,GAEAO,MAAM,GAAGW,aAAa,CAACI,KAAvB,GAA+BtB;AANvC,OAFS,CADN;AAYLgC,MAAAA,OAAO,EAAEjB,QAAQ,CAACO,KAAT,GAAiB,CAAjB,GAAqB;AAZzB,KAAP;AAcD,GA3C2B,CAA5B;AA6CA,sBACE,oBAAC,8BAAD,CAAU,IAAV;AACE,IAAA,QAAQ,EAAEH;AADZ,KAEMd,KAFN;AAGE,IAAA,KAAK,EAAE,CACL;AACEH,MAAAA,QAAQ,EAAE,UADZ;AAEE+B,MAAAA,OAAO,EAAE,CAFX;AAGEC,MAAAA,SAAS,EAAE;AAHb,KADK,EAMLT,mBANK,EAOLpB,KAAK,CAAC8B,KAPD;AAHT,MAaGrC,QAAQ,iBAAI,oBAAC,6BAAD;AAAoB,IAAA,KAAK,EAAE,CAACM,SAAD;AAA3B,KAA4CD,SAA5C,EAbf,CADF;AAiBD","sourcesContent":["import * as React from 'react';\nimport type { ViewProps } from 'react-native';\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n} from 'react-native-reanimated';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { CursorContext } from './Cursor';\nimport { LineChartPriceText, LineChartPriceTextProps } from './PriceText';\nimport { useLineChart } from './useLineChart';\n\ntype LineChartTooltipProps = Animated.AnimateProps<ViewProps> & {\n children?: React.ReactNode;\n xGutter?: number;\n yGutter?: number;\n cursorGutter?: number;\n position?: 'top' | 'bottom';\n textProps?: LineChartPriceTextProps;\n textStyle?: LineChartPriceTextProps['style'];\n};\n\nLineChartTooltip.displayName = 'LineChartTooltip';\n\nexport function LineChartTooltip({\n children,\n xGutter = 8,\n yGutter = 8,\n cursorGutter = 48,\n position = 'top',\n textProps,\n textStyle,\n ...props\n}: LineChartTooltipProps) {\n const { width, height } = React.useContext(LineChartDimensionsContext);\n const { type } = React.useContext(CursorContext);\n const { currentX, currentY, isActive } = useLineChart();\n\n const x = useSharedValue(0);\n const elementWidth = useSharedValue(0);\n const elementHeight = useSharedValue(0);\n\n const handleLayout = React.useCallback(\n (event) => {\n x.value = event.nativeEvent.layout.x;\n elementWidth.value = event.nativeEvent.layout.width;\n elementHeight.value = event.nativeEvent.layout.height;\n },\n [elementHeight, elementWidth, x]\n );\n\n const animatedCursorStyle = useAnimatedStyle(() => {\n let translateXOffset = elementWidth.value / 2;\n if (currentX.value < elementWidth.value / 2 + xGutter) {\n const xOffset = elementWidth.value / 2 + xGutter - currentX.value;\n translateXOffset = translateXOffset - xOffset;\n }\n if (currentX.value > width - elementWidth.value / 2 - xGutter) {\n const xOffset =\n currentX.value - (width - elementWidth.value / 2 - xGutter);\n translateXOffset = translateXOffset + xOffset;\n }\n\n let translateYOffset = 0;\n if (position === 'top') {\n translateYOffset = elementHeight.value / 2 + cursorGutter;\n if (currentY.value - translateYOffset < yGutter) {\n translateYOffset = currentY.value - yGutter;\n }\n } else if (position === 'bottom') {\n translateYOffset = -(elementHeight.value / 2) - cursorGutter / 2;\n if (\n currentY.value - translateYOffset + elementHeight.value >\n height - yGutter\n ) {\n translateYOffset =\n currentY.value - (height - yGutter) + elementHeight.value;\n }\n }\n\n return {\n transform: [\n { translateX: currentX.value - translateXOffset },\n {\n translateY:\n type === 'crosshair'\n ? currentY.value - translateYOffset\n : position === 'top'\n ? yGutter\n : height - elementHeight.value - yGutter,\n },\n ],\n opacity: isActive.value ? 1 : 0,\n };\n });\n\n return (\n <Animated.View\n onLayout={handleLayout}\n {...props}\n style={[\n {\n position: 'absolute',\n padding: 4,\n alignSelf: 'flex-start',\n },\n animatedCursorStyle,\n props.style,\n ]}\n >\n {children || <LineChartPriceText style={[textStyle]} {...textProps} />}\n </Animated.View>\n );\n}\n"]}
@@ -8,44 +8,44 @@ var _exportNames = {
8
8
  };
9
9
  exports.LineChart = void 0;
10
10
 
11
- var _Gradient = require("./Gradient");
11
+ var _Chart = require("./Chart");
12
12
 
13
- Object.keys(_Gradient).forEach(function (key) {
13
+ Object.keys(_Chart).forEach(function (key) {
14
14
  if (key === "default" || key === "__esModule") return;
15
15
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
16
- if (key in exports && exports[key] === _Gradient[key]) return;
16
+ if (key in exports && exports[key] === _Chart[key]) return;
17
17
  Object.defineProperty(exports, key, {
18
18
  enumerable: true,
19
19
  get: function () {
20
- return _Gradient[key];
20
+ return _Chart[key];
21
21
  }
22
22
  });
23
23
  });
24
24
 
25
- var _Chart = require("./Chart");
25
+ var _ChartPath = require("./ChartPath");
26
26
 
27
- Object.keys(_Chart).forEach(function (key) {
27
+ Object.keys(_ChartPath).forEach(function (key) {
28
28
  if (key === "default" || key === "__esModule") return;
29
29
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
30
- if (key in exports && exports[key] === _Chart[key]) return;
30
+ if (key in exports && exports[key] === _ChartPath[key]) return;
31
31
  Object.defineProperty(exports, key, {
32
32
  enumerable: true,
33
33
  get: function () {
34
- return _Chart[key];
34
+ return _ChartPath[key];
35
35
  }
36
36
  });
37
37
  });
38
38
 
39
- var _ChartPath = require("./ChartPath");
39
+ var _Highlight = require("./Highlight");
40
40
 
41
- Object.keys(_ChartPath).forEach(function (key) {
41
+ Object.keys(_Highlight).forEach(function (key) {
42
42
  if (key === "default" || key === "__esModule") return;
43
43
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
44
- if (key in exports && exports[key] === _ChartPath[key]) return;
44
+ if (key in exports && exports[key] === _Highlight[key]) return;
45
45
  Object.defineProperty(exports, key, {
46
46
  enumerable: true,
47
47
  get: function () {
48
- return _ChartPath[key];
48
+ return _Highlight[key];
49
49
  }
50
50
  });
51
51
  });
@@ -106,6 +106,36 @@ Object.keys(_CursorLine).forEach(function (key) {
106
106
  });
107
107
  });
108
108
 
109
+ var _Dot = require("./Dot");
110
+
111
+ Object.keys(_Dot).forEach(function (key) {
112
+ if (key === "default" || key === "__esModule") return;
113
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
114
+ if (key in exports && exports[key] === _Dot[key]) return;
115
+ Object.defineProperty(exports, key, {
116
+ enumerable: true,
117
+ get: function () {
118
+ return _Dot[key];
119
+ }
120
+ });
121
+ });
122
+
123
+ var _Gradient = require("./Gradient");
124
+
125
+ Object.keys(_Gradient).forEach(function (key) {
126
+ if (key === "default" || key === "__esModule") return;
127
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
128
+ if (key in exports && exports[key] === _Gradient[key]) return;
129
+ Object.defineProperty(exports, key, {
130
+ enumerable: true,
131
+ get: function () {
132
+ return _Gradient[key];
133
+ }
134
+ });
135
+ });
136
+
137
+ var _Group = require("./Group");
138
+
109
139
  var _HorizontalLine = require("./HorizontalLine");
110
140
 
111
141
  var _Tooltip = require("./Tooltip");
@@ -192,10 +222,6 @@ Object.keys(_useLineChart).forEach(function (key) {
192
222
  });
193
223
  });
194
224
 
195
- var _Group = require("./Group");
196
-
197
- var _Dot = require("./Dot");
198
-
199
225
  var _Path = require("./Path");
200
226
 
201
227
  Object.keys(_Path).forEach(function (key) {
@@ -224,12 +250,15 @@ Object.keys(_types).forEach(function (key) {
224
250
  });
225
251
  });
226
252
  const LineChart = Object.assign(_Chart.LineChart, {
227
- Gradient: _Gradient.LineChartGradient,
228
253
  Chart: _Chart.LineChart,
254
+ Dot: _Dot.LineChartDot,
229
255
  Path: _ChartPath.LineChartPathWrapper,
230
256
  Cursor: _Cursor.LineChartCursor,
231
257
  CursorCrosshair: _CursorCrosshair.LineChartCursorCrosshair,
232
258
  CursorLine: _CursorLine.LineChartCursorLine,
259
+ Gradient: _Gradient.LineChartGradient,
260
+ Group: _Group.LineChartGroup,
261
+ Highlight: _Highlight.LineChartHighlight,
233
262
  HorizontalLine: _HorizontalLine.LineChartHorizontalLine,
234
263
  Tooltip: _Tooltip.LineChartTooltip,
235
264
  Provider: _Context.LineChartProvider,
@@ -237,9 +266,7 @@ const LineChart = Object.assign(_Chart.LineChart, {
237
266
  DatetimeText: _DatetimeText.LineChartDatetimeText,
238
267
  useDatetime: _useDatetime.useLineChartDatetime,
239
268
  usePrice: _usePrice.useLineChartPrice,
240
- useChart: _useLineChart.useLineChart,
241
- Group: _Group.LineChartGroup,
242
- Dot: _Dot.LineChartDot
269
+ useChart: _useLineChart.useLineChart
243
270
  });
244
271
  exports.LineChart = LineChart;
245
272
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"names":["LineChart","Object","assign","_LineChart","Gradient","LineChartGradient","Chart","Path","LineChartPathWrapper","Cursor","LineChartCursor","CursorCrosshair","LineChartCursorCrosshair","CursorLine","LineChartCursorLine","HorizontalLine","LineChartHorizontalLine","Tooltip","LineChartTooltip","Provider","LineChartProvider","PriceText","LineChartPriceText","DatetimeText","LineChartDatetimeText","useDatetime","useLineChartDatetime","usePrice","useLineChartPrice","useChart","useLineChart","Group","LineChartGroup","Dot","LineChartDot"],"mappings":";;;;;;;;;;AAAA;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAhBA;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAhBA;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAhBA;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAhBA;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAhBA;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAhBA;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAhBA;;AACA;;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAfA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAdA;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAhBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAfA;;AACA;;AAWA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAKA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAMA,SAAS,GAAGC,MAAM,CAACC,MAAP,CAAcC,gBAAd,EAA0B;AACjDC,EAAAA,QAAQ,EAAEC,2BADuC;AAEjDC,EAAAA,KAAK,EAAEH,gBAF0C;AAGjDI,EAAAA,IAAI,EAAEC,+BAH2C;AAIjDC,EAAAA,MAAM,EAAEC,uBAJyC;AAKjDC,EAAAA,eAAe,EAAEC,yCALgC;AAMjDC,EAAAA,UAAU,EAAEC,+BANqC;AAOjDC,EAAAA,cAAc,EAAEC,uCAPiC;AAQjDC,EAAAA,OAAO,EAAEC,yBARwC;AASjDC,EAAAA,QAAQ,EAAEC,0BATuC;AAUjDC,EAAAA,SAAS,EAAEC,6BAVsC;AAWjDC,EAAAA,YAAY,EAAEC,mCAXmC;AAYjDC,EAAAA,WAAW,EAAEC,iCAZoC;AAajDC,EAAAA,QAAQ,EAAEC,2BAbuC;AAcjDC,EAAAA,QAAQ,EAAEC,0BAduC;AAejDC,EAAAA,KAAK,EAAEC,qBAf0C;AAgBjDC,EAAAA,GAAG,EAAEC;AAhB4C,CAA1B,CAAlB","sourcesContent":["import { LineChartGradient } from './Gradient';\nimport { LineChart as _LineChart } from './Chart';\nimport { LineChartPathWrapper } from './ChartPath';\nimport { LineChartProvider } from './Context';\nimport { LineChartCursor } from './Cursor';\nimport { LineChartCursorCrosshair } from './CursorCrosshair';\nimport { LineChartCursorLine } from './CursorLine';\nimport { LineChartHorizontalLine } from './HorizontalLine';\nimport { LineChartTooltip } from './Tooltip';\nimport { LineChartPriceText } from './PriceText';\nimport { LineChartDatetimeText } from './DatetimeText';\nimport { useLineChartDatetime } from './useDatetime';\nimport { useLineChartPrice } from './usePrice';\nimport { useLineChart } from './useLineChart';\nimport { LineChartGroup } from './Group';\nimport { LineChartDot } from './Dot';\n\nexport * from './Gradient';\nexport * from './Chart';\nexport * from './ChartPath';\nexport * from './Context';\nexport * from './Cursor';\nexport * from './CursorCrosshair';\nexport * from './CursorLine';\nexport * from './Tooltip';\nexport * from './DatetimeText';\nexport * from './Path';\nexport * from './PriceText';\nexport * from './useDatetime';\nexport * from './useLineChart';\nexport * from './usePrice';\nexport * from './types';\n\nexport const LineChart = Object.assign(_LineChart, {\n Gradient: LineChartGradient,\n Chart: _LineChart,\n Path: LineChartPathWrapper,\n Cursor: LineChartCursor,\n CursorCrosshair: LineChartCursorCrosshair,\n CursorLine: LineChartCursorLine,\n HorizontalLine: LineChartHorizontalLine,\n Tooltip: LineChartTooltip,\n Provider: LineChartProvider,\n PriceText: LineChartPriceText,\n DatetimeText: LineChartDatetimeText,\n useDatetime: useLineChartDatetime,\n usePrice: useLineChartPrice,\n useChart: useLineChart,\n Group: LineChartGroup,\n Dot: LineChartDot,\n});\n"]}
1
+ {"version":3,"sources":["index.ts"],"names":["LineChart","Object","assign","_LineChart","Chart","Dot","LineChartDot","Path","LineChartPathWrapper","Cursor","LineChartCursor","CursorCrosshair","LineChartCursorCrosshair","CursorLine","LineChartCursorLine","Gradient","LineChartGradient","Group","LineChartGroup","Highlight","LineChartHighlight","HorizontalLine","LineChartHorizontalLine","Tooltip","LineChartTooltip","Provider","LineChartProvider","PriceText","LineChartPriceText","DatetimeText","LineChartDatetimeText","useDatetime","useLineChartDatetime","usePrice","useLineChartPrice","useChart","useLineChart"],"mappings":";;;;;;;;;;AAAA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AACA;;AACA;;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAfA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAdA;;AAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAhBA;;AAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAjBA;;AAgBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAHA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAKA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAMA,SAAS,GAAGC,MAAM,CAACC,MAAP,CAAcC,gBAAd,EAA0B;AACjDC,EAAAA,KAAK,EAAED,gBAD0C;AAEjDE,EAAAA,GAAG,EAAEC,iBAF4C;AAGjDC,EAAAA,IAAI,EAAEC,+BAH2C;AAIjDC,EAAAA,MAAM,EAAEC,uBAJyC;AAKjDC,EAAAA,eAAe,EAAEC,yCALgC;AAMjDC,EAAAA,UAAU,EAAEC,+BANqC;AAOjDC,EAAAA,QAAQ,EAAEC,2BAPuC;AAQjDC,EAAAA,KAAK,EAAEC,qBAR0C;AASjDC,EAAAA,SAAS,EAAEC,6BATsC;AAUjDC,EAAAA,cAAc,EAAEC,uCAViC;AAWjDC,EAAAA,OAAO,EAAEC,yBAXwC;AAYjDC,EAAAA,QAAQ,EAAEC,0BAZuC;AAajDC,EAAAA,SAAS,EAAEC,6BAbsC;AAcjDC,EAAAA,YAAY,EAAEC,mCAdmC;AAejDC,EAAAA,WAAW,EAAEC,iCAfoC;AAgBjDC,EAAAA,QAAQ,EAAEC,2BAhBuC;AAiBjDC,EAAAA,QAAQ,EAAEC;AAjBuC,CAA1B,CAAlB","sourcesContent":["import { LineChart as _LineChart } from './Chart';\nimport { LineChartPathWrapper } from './ChartPath';\nimport { LineChartHighlight } from './Highlight';\nimport { LineChartProvider } from './Context';\nimport { LineChartCursor } from './Cursor';\nimport { LineChartCursorCrosshair } from './CursorCrosshair';\nimport { LineChartCursorLine } from './CursorLine';\nimport { LineChartDot } from './Dot';\nimport { LineChartGradient } from './Gradient';\nimport { LineChartGroup } from './Group';\nimport { LineChartHorizontalLine } from './HorizontalLine';\nimport { LineChartTooltip } from './Tooltip';\nimport { LineChartPriceText } from './PriceText';\nimport { LineChartDatetimeText } from './DatetimeText';\nimport { useLineChartDatetime } from './useDatetime';\nimport { useLineChartPrice } from './usePrice';\nimport { useLineChart } from './useLineChart';\n\nexport * from './Chart';\nexport * from './ChartPath';\nexport * from './Highlight';\nexport * from './Context';\nexport * from './Cursor';\nexport * from './CursorCrosshair';\nexport * from './CursorLine';\nexport * from './Dot';\nexport * from './Gradient';\nexport * from './Tooltip';\nexport * from './DatetimeText';\nexport * from './Path';\nexport * from './PriceText';\nexport * from './useDatetime';\nexport * from './useLineChart';\nexport * from './usePrice';\nexport * from './types';\n\nexport const LineChart = Object.assign(_LineChart, {\n Chart: _LineChart,\n Dot: LineChartDot,\n Path: LineChartPathWrapper,\n Cursor: LineChartCursor,\n CursorCrosshair: LineChartCursorCrosshair,\n CursorLine: LineChartCursorLine,\n Gradient: LineChartGradient,\n Group: LineChartGroup,\n Highlight: LineChartHighlight,\n HorizontalLine: LineChartHorizontalLine,\n Tooltip: LineChartTooltip,\n Provider: LineChartProvider,\n PriceText: LineChartPriceText,\n DatetimeText: LineChartDatetimeText,\n useDatetime: useLineChartDatetime,\n usePrice: useLineChartPrice,\n useChart: useLineChart,\n});\n"]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useAnimatedPath;
7
+
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+
10
+ var _utils = require("../../utils");
11
+
12
+ var _utils2 = require("./utils");
13
+
14
+ function useAnimatedPath({
15
+ enabled = true,
16
+ path
17
+ }) {
18
+ const transition = (0, _reactNativeReanimated.useSharedValue)(0);
19
+ const previousPath = (0, _utils.usePrevious)(path);
20
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => {
21
+ return path;
22
+ }, (_, previous) => {
23
+ if (previous) {
24
+ transition.value = 0;
25
+ transition.value = (0, _reactNativeReanimated.withTiming)(1);
26
+ }
27
+ }, [path]);
28
+ const animatedProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
29
+ let d = path || '';
30
+
31
+ if (previousPath && enabled) {
32
+ const pathInterpolator = (0, _utils2.interpolatePath)(previousPath, path, null);
33
+ d = pathInterpolator(transition.value);
34
+ }
35
+
36
+ return {
37
+ d
38
+ };
39
+ });
40
+ return {
41
+ animatedProps
42
+ };
43
+ }
44
+ //# sourceMappingURL=useAnimatedPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useAnimatedPath.ts"],"names":["useAnimatedPath","enabled","path","transition","previousPath","_","previous","value","animatedProps","d","pathInterpolator"],"mappings":";;;;;;;AAAA;;AAOA;;AACA;;AAEe,SAASA,eAAT,CAAyB;AACtCC,EAAAA,OAAO,GAAG,IAD4B;AAEtCC,EAAAA;AAFsC,CAAzB,EAMZ;AACD,QAAMC,UAAU,GAAG,2CAAe,CAAf,CAAnB;AAEA,QAAMC,YAAY,GAAG,wBAAYF,IAAZ,CAArB;AAEA,kDACE,MAAM;AACJ,WAAOA,IAAP;AACD,GAHH,EAIE,CAACG,CAAD,EAAIC,QAAJ,KAAiB;AACf,QAAIA,QAAJ,EAAc;AACZH,MAAAA,UAAU,CAACI,KAAX,GAAmB,CAAnB;AACAJ,MAAAA,UAAU,CAACI,KAAX,GAAmB,uCAAW,CAAX,CAAnB;AACD;AACF,GATH,EAUE,CAACL,IAAD,CAVF;AAaA,QAAMM,aAAa,GAAG,6CAAiB,MAAM;AAC3C,QAAIC,CAAC,GAAGP,IAAI,IAAI,EAAhB;;AACA,QAAIE,YAAY,IAAIH,OAApB,EAA6B;AAC3B,YAAMS,gBAAgB,GAAG,6BAAgBN,YAAhB,EAA8BF,IAA9B,EAAoC,IAApC,CAAzB;AACAO,MAAAA,CAAC,GAAGC,gBAAgB,CAACP,UAAU,CAACI,KAAZ,CAApB;AACD;;AACD,WAAO;AACLE,MAAAA;AADK,KAAP;AAGD,GATqB,CAAtB;AAWA,SAAO;AAAED,IAAAA;AAAF,GAAP;AACD","sourcesContent":["import {\n useAnimatedProps,\n useAnimatedReaction,\n useSharedValue,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { usePrevious } from '../../utils';\nimport { interpolatePath } from './utils';\n\nexport default function useAnimatedPath({\n enabled = true,\n path,\n}: {\n enabled?: boolean;\n path: string;\n}) {\n const transition = useSharedValue(0);\n\n const previousPath = usePrevious(path);\n\n useAnimatedReaction(\n () => {\n return path;\n },\n (_, previous) => {\n if (previous) {\n transition.value = 0;\n transition.value = withTiming(1);\n }\n },\n [path]\n );\n\n const animatedProps = useAnimatedProps(() => {\n let d = path || '';\n if (previousPath && enabled) {\n const pathInterpolator = interpolatePath(previousPath, path, null);\n d = pathInterpolator(transition.value);\n }\n return {\n d,\n };\n });\n\n return { animatedProps };\n}\n"]}
@@ -3,9 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getDomain = getDomain;
7
- exports.lineChartDataPropToArray = lineChartDataPropToArray;
8
- exports.getPath = getPath;
9
6
  exports.getArea = getArea;
10
7
 
11
8
  var shape = _interopRequireWildcard(require("d3-shape"));
@@ -18,56 +15,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
18
15
 
19
16
  // @ts-ignore
20
17
  // @ts-ignore
21
- function getDomain(rows) {
22
- 'worklet';
23
-
24
- const values = rows.map(({
25
- value
26
- }) => value);
27
- return [Math.min(...values), Math.max(...values)];
28
- }
29
-
30
- function lineChartDataPropToArray(dataProp) {
31
- 'worklet';
32
-
33
- if (!dataProp) {
34
- return [];
35
- }
36
-
37
- if (Array.isArray(dataProp)) {
38
- return dataProp;
39
- }
40
-
41
- const data = [];
42
- Object.values(dataProp).forEach(dataSet => {
43
- if (dataSet) {
44
- data.push(...dataSet);
45
- }
46
- });
47
- return data;
48
- }
49
-
50
- function getPath({
51
- data,
52
- width,
53
- height,
54
- gutter,
55
- shape: _shape = shape.curveBumpX,
56
- yDomain
57
- }) {
58
- const timestamps = data.map((_, i) => i);
59
- const scaleX = (0, _d3Scale.scaleLinear)().domain([Math.min(...timestamps), Math.max(...timestamps)]).range([0, width]);
60
- const scaleY = (0, _d3Scale.scaleLinear)().domain([yDomain.min, yDomain.max]).range([height - gutter, gutter]);
61
- const path = shape.line().x((_, i) => scaleX(i)).y(d => scaleY(d.value)).curve(_shape)(data);
62
- return path;
63
- }
64
-
65
18
  function getArea({
66
19
  data,
67
20
  width,
68
21
  height,
69
22
  gutter,
70
- shape: _shape = shape.curveBumpX,
23
+ shape: _shape,
71
24
  yDomain
72
25
  }) {
73
26
  const timestamps = data.map((_, i) => i);
@@ -76,4 +29,4 @@ function getArea({
76
29
  const area = shape.area().x((_, i) => scaleX(i)).y0(d => scaleY(d.value)).y1(() => height).curve(_shape)(data);
77
30
  return area;
78
31
  }
79
- //# sourceMappingURL=utils.js.map
32
+ //# sourceMappingURL=getArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getArea.ts"],"names":["getArea","data","width","height","gutter","shape","_shape","yDomain","timestamps","map","_","i","scaleX","domain","Math","min","max","range","scaleY","area","x","y0","d","value","y1","curve"],"mappings":";;;;;;;AACA;;AAEA;;;;;;AAHA;AAEA;AAKO,SAASA,OAAT,CAAiB;AACtBC,EAAAA,IADsB;AAEtBC,EAAAA,KAFsB;AAGtBC,EAAAA,MAHsB;AAItBC,EAAAA,MAJsB;AAKtBC,EAAAA,KAAK,EAAEC,MALe;AAMtBC,EAAAA;AANsB,CAAjB,EAcI;AACT,QAAMC,UAAU,GAAGP,IAAI,CAACQ,GAAL,CAAS,CAACC,CAAD,EAAIC,CAAJ,KAAUA,CAAnB,CAAnB;AAEA,QAAMC,MAAM,GAAG,4BACZC,MADY,CACL,CAACC,IAAI,CAACC,GAAL,CAAS,GAAGP,UAAZ,CAAD,EAA0BM,IAAI,CAACE,GAAL,CAAS,GAAGR,UAAZ,CAA1B,CADK,EAEZS,KAFY,CAEN,CAAC,CAAD,EAAIf,KAAJ,CAFM,CAAf;AAGA,QAAMgB,MAAM,GAAG,4BACZL,MADY,CACL,CAACN,OAAO,CAACQ,GAAT,EAAcR,OAAO,CAACS,GAAtB,CADK,EAEZC,KAFY,CAEN,CAACd,MAAM,GAAGC,MAAV,EAAkBA,MAAlB,CAFM,CAAf;AAGA,QAAMe,IAAI,GAAGd,KAAK,CACfc,IADU,GAEVC,CAFU,CAER,CAACV,CAAD,EAAaC,CAAb,KAA2BC,MAAM,CAACD,CAAD,CAFzB,EAGVU,EAHU,CAGNC,CAAD,IAA2BJ,MAAM,CAACI,CAAC,CAACC,KAAH,CAH1B,EAIVC,EAJU,CAIP,MAAMrB,MAJC,EAKVsB,KALU,CAKJnB,MALI,EAKIL,IALJ,CAAb;AAMA,SAAOkB,IAAP;AACD","sourcesContent":["// @ts-ignore\nimport * as shape from 'd3-shape';\n// @ts-ignore\nimport { scaleLinear } from 'd3-scale';\n\nimport type { TLineChartData, YDomain } from '../types';\n\nexport function getArea({\n data,\n width,\n height,\n gutter,\n shape: _shape,\n yDomain,\n}: {\n data: TLineChartData;\n width: number;\n height: number;\n gutter: number;\n shape?: unknown;\n yDomain: YDomain;\n}): string {\n const timestamps = data.map((_, i) => i);\n\n const scaleX = scaleLinear()\n .domain([Math.min(...timestamps), Math.max(...timestamps)])\n .range([0, width]);\n const scaleY = scaleLinear()\n .domain([yDomain.min, yDomain.max])\n .range([height - gutter, gutter]);\n const area = shape\n .area()\n .x((_: unknown, i: number) => scaleX(i))\n .y0((d: { value: unknown }) => scaleY(d.value))\n .y1(() => height)\n .curve(_shape)(data);\n return area;\n}\n"]}