react-native-wagmi-charts 2.9.0 → 2.10.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 (218) hide show
  1. package/README.md +143 -66
  2. package/lib/commonjs/charts/candle/Candle.js +92 -177
  3. package/lib/commonjs/charts/candle/Candles.js +39 -66
  4. package/lib/commonjs/charts/candle/Chart.js +26 -37
  5. package/lib/commonjs/charts/candle/Context.js +49 -69
  6. package/lib/commonjs/charts/candle/Crosshair.js +82 -183
  7. package/lib/commonjs/charts/candle/Crosshair.js.map +1 -1
  8. package/lib/commonjs/charts/candle/CrosshairTooltip.js +61 -140
  9. package/lib/commonjs/charts/candle/DatetimeText.js +14 -19
  10. package/lib/commonjs/charts/candle/Line.js +27 -73
  11. package/lib/commonjs/charts/candle/PriceText.js +14 -19
  12. package/lib/commonjs/charts/candle/index.js +64 -67
  13. package/lib/commonjs/charts/candle/types.js +4 -4
  14. package/lib/commonjs/charts/candle/useCandleData.js +12 -9
  15. package/lib/commonjs/charts/candle/useCandlestickChart.js +7 -9
  16. package/lib/commonjs/charts/candle/useDatetime.js +18 -16
  17. package/lib/commonjs/charts/candle/usePrice.js +22 -21
  18. package/lib/commonjs/charts/candle/utils/getDomain.js +9 -5
  19. package/lib/commonjs/charts/candle/utils/getDomain.js.map +1 -1
  20. package/lib/commonjs/charts/candle/utils/getHeight.js +11 -12
  21. package/lib/commonjs/charts/candle/utils/getHeight.js.map +1 -1
  22. package/lib/commonjs/charts/candle/utils/getPrice.js +11 -12
  23. package/lib/commonjs/charts/candle/utils/getPrice.js.map +1 -1
  24. package/lib/commonjs/charts/candle/utils/getY.js +11 -12
  25. package/lib/commonjs/charts/candle/utils/getY.js.map +1 -1
  26. package/lib/commonjs/charts/candle/utils/index.js +16 -16
  27. package/lib/commonjs/charts/line/Axis.js +148 -268
  28. package/lib/commonjs/charts/line/Chart.js +62 -129
  29. package/lib/commonjs/charts/line/Chart.js.map +1 -1
  30. package/lib/commonjs/charts/line/ChartPath.js +105 -285
  31. package/lib/commonjs/charts/line/Context.js +37 -95
  32. package/lib/commonjs/charts/line/Cursor.js +74 -125
  33. package/lib/commonjs/charts/line/Cursor.js.map +1 -1
  34. package/lib/commonjs/charts/line/CursorCrosshair.js +56 -134
  35. package/lib/commonjs/charts/line/CursorCrosshair.js.map +1 -1
  36. package/lib/commonjs/charts/line/CursorLine.js +67 -152
  37. package/lib/commonjs/charts/line/CursorLine.js.map +1 -1
  38. package/lib/commonjs/charts/line/Data.js +34 -73
  39. package/lib/commonjs/charts/line/DatetimeText.js +15 -20
  40. package/lib/commonjs/charts/line/Dot.js +56 -149
  41. package/lib/commonjs/charts/line/Gradient.js +53 -124
  42. package/lib/commonjs/charts/line/Group.js +23 -54
  43. package/lib/commonjs/charts/line/Group.js.map +1 -1
  44. package/lib/commonjs/charts/line/Highlight.js +47 -115
  45. package/lib/commonjs/charts/line/HorizontalLine.js +39 -92
  46. package/lib/commonjs/charts/line/HoverTrap/index.js +7 -10
  47. package/lib/commonjs/charts/line/HoverTrap/index.web.js +43 -48
  48. package/lib/commonjs/charts/line/LineChartPathContext.js +11 -14
  49. package/lib/commonjs/charts/line/Path.js +32 -78
  50. package/lib/commonjs/charts/line/PriceText.js +36 -78
  51. package/lib/commonjs/charts/line/Tooltip.js +102 -188
  52. package/lib/commonjs/charts/line/Tooltip.js.map +1 -1
  53. package/lib/commonjs/charts/line/index.js +65 -65
  54. package/lib/commonjs/charts/line/types.js +4 -4
  55. package/lib/commonjs/charts/line/useAnimatedPath.js +22 -27
  56. package/lib/commonjs/charts/line/useCurrentY.js +17 -17
  57. package/lib/commonjs/charts/line/useDatetime.js +28 -32
  58. package/lib/commonjs/charts/line/useLineChart.js +15 -20
  59. package/lib/commonjs/charts/line/usePrice.js +26 -28
  60. package/lib/commonjs/charts/line/utils/getArea.js +14 -47
  61. package/lib/commonjs/charts/line/utils/getDomain.js +8 -5
  62. package/lib/commonjs/charts/line/utils/getDomain.js.map +1 -1
  63. package/lib/commonjs/charts/line/utils/getPath.js +14 -53
  64. package/lib/commonjs/charts/line/utils/getXPositionForCurve.js +5 -8
  65. package/lib/commonjs/charts/line/utils/index.js +19 -19
  66. package/lib/commonjs/charts/line/utils/interpolatePath.js +60 -100
  67. package/lib/commonjs/charts/line/utils/lineChartDataPropToArray.js +5 -5
  68. package/lib/commonjs/components/AnimatedText.js +29 -67
  69. package/lib/commonjs/index.js +19 -19
  70. package/lib/commonjs/types.js +2 -2
  71. package/lib/commonjs/utils/formatDatetime.js +9 -5
  72. package/lib/commonjs/utils/formatPrice.js +6 -10
  73. package/lib/commonjs/utils/index.js +13 -13
  74. package/lib/commonjs/utils/usePrevious.js +6 -8
  75. package/lib/module/charts/candle/Candle.js +76 -126
  76. package/lib/module/charts/candle/Candles.js +30 -52
  77. package/lib/module/charts/candle/Chart.js +19 -22
  78. package/lib/module/charts/candle/Context.js +29 -47
  79. package/lib/module/charts/candle/Crosshair.js +69 -142
  80. package/lib/module/charts/candle/Crosshair.js.map +1 -1
  81. package/lib/module/charts/candle/CrosshairTooltip.js +51 -101
  82. package/lib/module/charts/candle/DatetimeText.js +5 -5
  83. package/lib/module/charts/candle/Line.js +19 -37
  84. package/lib/module/charts/candle/PriceText.js +5 -5
  85. package/lib/module/charts/candle/index.js +2 -2
  86. package/lib/module/charts/candle/types.js +1 -1
  87. package/lib/module/charts/candle/useCandleData.js +7 -3
  88. package/lib/module/charts/candle/useCandlestickChart.js +1 -1
  89. package/lib/module/charts/candle/useDatetime.js +12 -10
  90. package/lib/module/charts/candle/usePrice.js +14 -12
  91. package/lib/module/charts/candle/utils/getDomain.js +6 -2
  92. package/lib/module/charts/candle/utils/getDomain.js.map +1 -1
  93. package/lib/module/charts/candle/utils/getHeight.js +8 -9
  94. package/lib/module/charts/candle/utils/getHeight.js.map +1 -1
  95. package/lib/module/charts/candle/utils/getPrice.js +8 -4
  96. package/lib/module/charts/candle/utils/getPrice.js.map +1 -1
  97. package/lib/module/charts/candle/utils/getY.js +8 -4
  98. package/lib/module/charts/candle/utils/getY.js.map +1 -1
  99. package/lib/module/charts/candle/utils/index.js +1 -1
  100. package/lib/module/charts/line/Axis.js +113 -189
  101. package/lib/module/charts/line/Chart.js +40 -73
  102. package/lib/module/charts/line/Chart.js.map +1 -1
  103. package/lib/module/charts/line/ChartPath.js +90 -238
  104. package/lib/module/charts/line/Context.js +29 -61
  105. package/lib/module/charts/line/Cursor.js +61 -82
  106. package/lib/module/charts/line/Cursor.js.map +1 -1
  107. package/lib/module/charts/line/CursorCrosshair.js +47 -99
  108. package/lib/module/charts/line/CursorCrosshair.js.map +1 -1
  109. package/lib/module/charts/line/CursorLine.js +52 -107
  110. package/lib/module/charts/line/CursorLine.js.map +1 -1
  111. package/lib/module/charts/line/Data.js +28 -41
  112. package/lib/module/charts/line/DatetimeText.js +5 -5
  113. package/lib/module/charts/line/Dot.js +39 -93
  114. package/lib/module/charts/line/Gradient.js +41 -79
  115. package/lib/module/charts/line/Group.js +14 -15
  116. package/lib/module/charts/line/Group.js.map +1 -1
  117. package/lib/module/charts/line/Highlight.js +32 -61
  118. package/lib/module/charts/line/HorizontalLine.js +27 -49
  119. package/lib/module/charts/line/HoverTrap/index.js +2 -3
  120. package/lib/module/charts/line/HoverTrap/index.web.js +34 -34
  121. package/lib/module/charts/line/LineChartPathContext.js +3 -3
  122. package/lib/module/charts/line/Path.js +20 -33
  123. package/lib/module/charts/line/PriceText.js +25 -42
  124. package/lib/module/charts/line/Tooltip.js +89 -151
  125. package/lib/module/charts/line/Tooltip.js.map +1 -1
  126. package/lib/module/charts/line/index.js +2 -2
  127. package/lib/module/charts/line/types.js +1 -1
  128. package/lib/module/charts/line/useAnimatedPath.js +16 -22
  129. package/lib/module/charts/line/useCurrentY.js +9 -4
  130. package/lib/module/charts/line/useDatetime.js +22 -26
  131. package/lib/module/charts/line/useLineChart.js +7 -10
  132. package/lib/module/charts/line/usePrice.js +20 -22
  133. package/lib/module/charts/line/utils/getArea.js +8 -15
  134. package/lib/module/charts/line/utils/getDomain.js +5 -2
  135. package/lib/module/charts/line/utils/getDomain.js.map +1 -1
  136. package/lib/module/charts/line/utils/getPath.js +8 -21
  137. package/lib/module/charts/line/utils/getXPositionForCurve.js +2 -5
  138. package/lib/module/charts/line/utils/index.js +1 -1
  139. package/lib/module/charts/line/utils/interpolatePath.js +57 -97
  140. package/lib/module/charts/line/utils/lineChartDataPropToArray.js +2 -2
  141. package/lib/module/components/AnimatedText.js +21 -25
  142. package/lib/module/index.js +1 -1
  143. package/lib/module/types.js +2 -1
  144. package/lib/module/utils/formatDatetime.js +6 -2
  145. package/lib/module/utils/formatPrice.js +3 -7
  146. package/lib/module/utils/index.js +1 -1
  147. package/lib/module/utils/usePrevious.js +1 -1
  148. package/lib/typescript/src/charts/candle/Candle.d.ts +31 -45
  149. package/lib/typescript/src/charts/candle/Candles.d.ts +13 -24
  150. package/lib/typescript/src/charts/candle/Chart.d.ts +7 -12
  151. package/lib/typescript/src/charts/candle/Context.d.ts +7 -12
  152. package/lib/typescript/src/charts/candle/Crosshair.d.ts +9 -17
  153. package/lib/typescript/src/charts/candle/CrosshairTooltip.d.ts +8 -15
  154. package/lib/typescript/src/charts/candle/DatetimeText.d.ts +9 -15
  155. package/lib/typescript/src/charts/candle/Line.d.ts +5 -10
  156. package/lib/typescript/src/charts/candle/PriceText.d.ts +7 -13
  157. package/lib/typescript/src/charts/candle/index.d.ts +13 -32
  158. package/lib/typescript/src/charts/candle/types.d.ts +16 -16
  159. package/lib/typescript/src/charts/candle/useCandleData.d.ts +1 -1
  160. package/lib/typescript/src/charts/candle/useCandlestickChart.d.ts +1 -1
  161. package/lib/typescript/src/charts/candle/useDatetime.d.ts +9 -13
  162. package/lib/typescript/src/charts/candle/usePrice.d.ts +7 -11
  163. package/lib/typescript/src/charts/candle/utils/getDomain.d.ts +1 -1
  164. package/lib/typescript/src/charts/candle/utils/getDomain.d.ts.map +1 -1
  165. package/lib/typescript/src/charts/candle/utils/getHeight.d.ts +5 -9
  166. package/lib/typescript/src/charts/candle/utils/getPrice.d.ts +5 -9
  167. package/lib/typescript/src/charts/candle/utils/getY.d.ts +5 -9
  168. package/lib/typescript/src/charts/candle/utils/index.d.ts +1 -1
  169. package/lib/typescript/src/charts/line/Axis.d.ts +14 -27
  170. package/lib/typescript/src/charts/line/Chart.d.ts +23 -33
  171. package/lib/typescript/src/charts/line/Chart.d.ts.map +1 -1
  172. package/lib/typescript/src/charts/line/ChartPath.d.ts +15 -28
  173. package/lib/typescript/src/charts/line/Context.d.ts +9 -16
  174. package/lib/typescript/src/charts/line/Cursor.d.ts +14 -22
  175. package/lib/typescript/src/charts/line/Cursor.d.ts.map +1 -1
  176. package/lib/typescript/src/charts/line/CursorCrosshair.d.ts +11 -23
  177. package/lib/typescript/src/charts/line/CursorCrosshair.d.ts.map +1 -1
  178. package/lib/typescript/src/charts/line/CursorLine.d.ts +9 -15
  179. package/lib/typescript/src/charts/line/CursorLine.d.ts.map +1 -1
  180. package/lib/typescript/src/charts/line/Data.d.ts +13 -17
  181. package/lib/typescript/src/charts/line/DatetimeText.d.ts +8 -14
  182. package/lib/typescript/src/charts/line/Dot.d.ts +25 -38
  183. package/lib/typescript/src/charts/line/Gradient.d.ts +5 -9
  184. package/lib/typescript/src/charts/line/Group.d.ts +3 -6
  185. package/lib/typescript/src/charts/line/Group.d.ts.map +1 -1
  186. package/lib/typescript/src/charts/line/Highlight.d.ts +9 -17
  187. package/lib/typescript/src/charts/line/HorizontalLine.d.ts +22 -30
  188. package/lib/typescript/src/charts/line/HoverTrap/index.d.ts +1 -1
  189. package/lib/typescript/src/charts/line/HoverTrap/index.web.d.ts +1 -1
  190. package/lib/typescript/src/charts/line/LineChartPathContext.d.ts +4 -4
  191. package/lib/typescript/src/charts/line/Path.d.ts +23 -28
  192. package/lib/typescript/src/charts/line/PriceText.d.ts +20 -28
  193. package/lib/typescript/src/charts/line/Tooltip.d.ts +20 -32
  194. package/lib/typescript/src/charts/line/index.d.ts +20 -33
  195. package/lib/typescript/src/charts/line/types.d.ts +17 -19
  196. package/lib/typescript/src/charts/line/useAnimatedPath.d.ts +7 -10
  197. package/lib/typescript/src/charts/line/useCurrentY.d.ts +2 -2
  198. package/lib/typescript/src/charts/line/useDatetime.d.ts +7 -11
  199. package/lib/typescript/src/charts/line/useLineChart.d.ts +10 -10
  200. package/lib/typescript/src/charts/line/usePrice.d.ts +7 -11
  201. package/lib/typescript/src/charts/line/utils/getArea.d.ts +9 -17
  202. package/lib/typescript/src/charts/line/utils/getDomain.d.ts +1 -1
  203. package/lib/typescript/src/charts/line/utils/getDomain.d.ts.map +1 -1
  204. package/lib/typescript/src/charts/line/utils/getPath.d.ts +11 -21
  205. package/lib/typescript/src/charts/line/utils/getXPositionForCurve.d.ts +1 -1
  206. package/lib/typescript/src/charts/line/utils/index.d.ts +1 -1
  207. package/lib/typescript/src/charts/line/utils/interpolatePath.d.ts +5 -17
  208. package/lib/typescript/src/charts/line/utils/lineChartDataPropToArray.d.ts +2 -4
  209. package/lib/typescript/src/components/AnimatedText.d.ts +4 -7
  210. package/lib/typescript/src/index.d.ts +1 -1
  211. package/lib/typescript/src/types.d.ts +4 -7
  212. package/lib/typescript/src/utils/formatDatetime.d.ts +5 -9
  213. package/lib/typescript/src/utils/formatPrice.d.ts +5 -9
  214. package/lib/typescript/src/utils/index.d.ts +1 -1
  215. package/lib/typescript/src/utils/usePrevious.d.ts +1 -1
  216. package/package.json +1 -1
  217. package/src/charts/line/CursorLine.tsx +6 -2
  218. package/src/charts/line/HorizontalLine.tsx +5 -1
@@ -12,29 +12,33 @@ export const LineChartAxis = ({
12
12
  tickCount = 5,
13
13
  domain = [0, 100],
14
14
  hideOnInteraction = false,
15
- format = (value) => value,
15
+ format = value => value,
16
16
  textStyle,
17
17
  labelPadding = 3,
18
18
  containerStyle,
19
19
  ...props
20
20
  }) => {
21
- const { width, height } = React.useContext(LineChartDimensionsContext);
22
- const { isActive } = useLineChart();
21
+ const {
22
+ width,
23
+ height
24
+ } = React.useContext(LineChartDimensionsContext);
25
+ const {
26
+ isActive
27
+ } = useLineChart();
23
28
 
24
29
  // Reserve space at the bottom for x-axis cursor labels
25
30
  const X_AXIS_LABEL_RESERVED_HEIGHT = 40;
26
31
  // For vertical axes, don't extend into the reserved cursor label space
27
- const effectiveHeight =
28
- orientation === 'vertical' ? height - X_AXIS_LABEL_RESERVED_HEIGHT : height;
32
+ const effectiveHeight = orientation === 'vertical' ? height - X_AXIS_LABEL_RESERVED_HEIGHT : height;
29
33
  const padding = {
30
34
  left: 5,
31
35
  right: 5,
32
36
  top: 20,
33
- bottom: 20,
37
+ bottom: 20
34
38
  };
35
39
  const animatedStyle = useAnimatedStyle(() => {
36
40
  return {
37
- opacity: hideOnInteraction && isActive.value ? 0 : 1,
41
+ opacity: hideOnInteraction && isActive.value ? 0 : 1
38
42
  };
39
43
  }, [hideOnInteraction, isActive]);
40
44
  const renderTicks = () => {
@@ -58,15 +62,12 @@ export const LineChartAxis = ({
58
62
  }
59
63
 
60
64
  // Dynamic width allocation - ensure we don't exceed available space
61
- const maxAllowableWidth =
62
- position === 'left' || position === 'right'
63
- ? Math.max(width * 0.3, 60) // Allow up to 30% of chart width for y-axis labels, minimum 60px
64
- : width * 0.9; // For horizontal labels, use most of the width
65
+ const maxAllowableWidth = position === 'left' || position === 'right' ? Math.max(width * 0.3, 60) // Allow up to 30% of chart width for y-axis labels, minimum 60px
66
+ : width * 0.9; // For horizontal labels, use most of the width
65
67
 
66
- const dynamicLabelWidth = Math.min(
67
- Math.max(maxLabelWidth + 16, 40),
68
- // Minimum 40px, add 16px padding
69
- maxAllowableWidth // Don't exceed the calculated max
68
+ const dynamicLabelWidth = Math.min(Math.max(maxLabelWidth + 16, 40),
69
+ // Minimum 40px, add 16px padding
70
+ maxAllowableWidth // Don't exceed the calculated max
70
71
  );
71
72
  for (let i = 0; i <= tickCount; i++) {
72
73
  const value = min + (max - min) * (i / tickCount);
@@ -81,188 +82,121 @@ export const LineChartAxis = ({
81
82
  const y = topPadding + availableHeight * (1 - tickPosition);
82
83
  const x = position === 'left' ? padding.left : width - padding.right;
83
84
  if (strokeWidth) {
84
- ticks.push(
85
- /*#__PURE__*/ React.createElement(Line, {
86
- key: `tick-${i}`,
87
- x1: x,
88
- y1: y,
89
- x2: position === 'left' ? x - tickLength : x + tickLength,
90
- y2: y,
91
- stroke: color,
92
- strokeWidth: strokeWidth,
93
- })
94
- );
85
+ ticks.push(/*#__PURE__*/React.createElement(Line, {
86
+ key: `tick-${i}`,
87
+ x1: x,
88
+ y1: y,
89
+ x2: position === 'left' ? x - tickLength : x + tickLength,
90
+ y2: y,
91
+ stroke: color,
92
+ strokeWidth: strokeWidth
93
+ }));
95
94
  }
96
- labels.push(
97
- /*#__PURE__*/ React.createElement(
98
- Animated.View,
99
- {
100
- key: `label-${i}`,
101
- style: [
102
- styles.verticalLabel,
103
- {
104
- width: dynamicLabelWidth,
105
- // Use calculated width
106
- left:
107
- position === 'left'
108
- ? Math.max(0, x - labelOffset - dynamicLabelWidth) // Keep labels within left boundary
109
- : Math.min(
110
- width - dynamicLabelWidth - 5,
111
- x + labelOffset
112
- ),
113
- // Keep labels within right boundary with 5px margin
114
- top: y - 10, // Center the label vertically on the tick mark
115
- },
116
- position === 'left' ? styles.alignEnd : styles.alignStart,
117
- ],
118
- },
119
- /*#__PURE__*/ React.createElement(
120
- Text,
121
- {
122
- numberOfLines: 1,
123
- ellipsizeMode: 'tail',
124
- style: [
125
- styles.labelText,
126
- {
127
- color: color,
128
- },
129
- position === 'left' ? styles.textRight : styles.textLeft,
130
- textStyle,
131
- ],
132
- adjustsFontSizeToFit: true,
133
- minimumFontScale: 0.7,
134
- },
135
- String(format(value))
136
- )
137
- )
138
- );
95
+ labels.push(/*#__PURE__*/React.createElement(Animated.View, {
96
+ key: `label-${i}`,
97
+ style: [styles.verticalLabel, {
98
+ width: dynamicLabelWidth,
99
+ // Use calculated width
100
+ left: position === 'left' ? Math.max(0, x - labelOffset - dynamicLabelWidth) // Keep labels within left boundary
101
+ : Math.min(width - dynamicLabelWidth - 5, x + labelOffset),
102
+ // Keep labels within right boundary with 5px margin
103
+ top: y - 10 // Center the label vertically on the tick mark
104
+ }, position === 'left' ? styles.alignEnd : styles.alignStart]
105
+ }, /*#__PURE__*/React.createElement(Text, {
106
+ numberOfLines: 1,
107
+ ellipsizeMode: "tail",
108
+ style: [styles.labelText, {
109
+ color: color
110
+ }, position === 'left' ? styles.textRight : styles.textLeft, textStyle],
111
+ adjustsFontSizeToFit: true,
112
+ minimumFontScale: 0.7
113
+ }, String(format(value)))));
139
114
  } else {
140
115
  const x = width * tickPosition;
141
116
  const y = position === 'top' ? 15 : height - padding.bottom;
142
117
  if (strokeWidth) {
143
- ticks.push(
144
- /*#__PURE__*/ React.createElement(Line, {
145
- key: `tick-${i}`,
146
- x1: x,
147
- y1: y,
148
- x2: x,
149
- y2: position === 'top' ? y - tickLength : height - 15,
150
- stroke: color,
151
- strokeWidth: strokeWidth,
152
- })
153
- );
118
+ ticks.push(/*#__PURE__*/React.createElement(Line, {
119
+ key: `tick-${i}`,
120
+ x1: x,
121
+ y1: y,
122
+ x2: x,
123
+ y2: position === 'top' ? y - tickLength : height - 15,
124
+ stroke: color,
125
+ strokeWidth: strokeWidth
126
+ }));
154
127
  }
155
- const alignmentStyle =
156
- i === 0
157
- ? styles.alignStart
158
- : i === tickCount
159
- ? styles.alignEnd
160
- : styles.alignCenter;
161
- const textAlignStyle =
162
- i === 0
163
- ? styles.textLeft
164
- : i === tickCount
165
- ? styles.textRight
166
- : styles.textCenter;
167
- labels.push(
168
- /*#__PURE__*/ React.createElement(
169
- Animated.View,
170
- {
171
- key: `label-${i}`,
172
- style: [
173
- styles.horizontalLabel,
174
- {
175
- width: dynamicLabelWidth,
176
- // Use dynamic width for horizontal labels too
177
- left: Math.max(
178
- 0,
179
- Math.min(
180
- width - dynamicLabelWidth,
181
- i === 0
182
- ? x + labelOffset
183
- : i === tickCount
184
- ? x - dynamicLabelWidth - labelOffset
185
- : x - dynamicLabelWidth / 2
186
- )
187
- ),
188
- top:
189
- position === 'top'
190
- ? Math.max(0, y - labelOffset - 15)
191
- : Math.max(0, height - 35),
192
- },
193
- alignmentStyle,
194
- ],
195
- },
196
- /*#__PURE__*/ React.createElement(
197
- Text,
198
- {
199
- numberOfLines: 1,
200
- ellipsizeMode: 'tail',
201
- style: [
202
- styles.labelText,
203
- {
204
- color: color,
205
- },
206
- textAlignStyle,
207
- textStyle,
208
- ],
209
- adjustsFontSizeToFit: true,
210
- minimumFontScale: 0.7,
211
- },
212
- String(format(value))
213
- )
214
- )
215
- );
128
+ const alignmentStyle = i === 0 ? styles.alignStart : i === tickCount ? styles.alignEnd : styles.alignCenter;
129
+ const textAlignStyle = i === 0 ? styles.textLeft : i === tickCount ? styles.textRight : styles.textCenter;
130
+ labels.push(/*#__PURE__*/React.createElement(Animated.View, {
131
+ key: `label-${i}`,
132
+ style: [styles.horizontalLabel, {
133
+ width: dynamicLabelWidth,
134
+ // Use dynamic width for horizontal labels too
135
+ left: Math.max(0, Math.min(width - dynamicLabelWidth, i === 0 ? x + labelOffset : i === tickCount ? x - dynamicLabelWidth - labelOffset : x - dynamicLabelWidth / 2)),
136
+ top: position === 'top' ? Math.max(0, y - labelOffset - 15) : Math.max(0, height - 35)
137
+ }, alignmentStyle]
138
+ }, /*#__PURE__*/React.createElement(Text, {
139
+ numberOfLines: 1,
140
+ ellipsizeMode: "tail",
141
+ style: [styles.labelText, {
142
+ color: color
143
+ }, textAlignStyle, textStyle],
144
+ adjustsFontSizeToFit: true,
145
+ minimumFontScale: 0.7
146
+ }, String(format(value)))));
216
147
  }
217
148
  }
218
149
  return {
219
150
  ticks,
220
- labels,
151
+ labels
221
152
  };
222
153
  };
223
154
  const renderAxis = () => {
224
- const { ticks, labels } = renderTicks();
155
+ const {
156
+ ticks,
157
+ labels
158
+ } = renderTicks();
225
159
  let axisLine = null;
226
160
  if (strokeWidth) {
227
161
  switch (position) {
228
162
  case 'left':
229
- axisLine = /*#__PURE__*/ React.createElement(Line, {
163
+ axisLine = /*#__PURE__*/React.createElement(Line, {
230
164
  x1: padding.left,
231
165
  y1: 0,
232
166
  x2: padding.left,
233
167
  y2: effectiveHeight,
234
168
  stroke: color,
235
- strokeWidth: strokeWidth,
169
+ strokeWidth: strokeWidth
236
170
  });
237
171
  break;
238
172
  case 'right':
239
- axisLine = /*#__PURE__*/ React.createElement(Line, {
173
+ axisLine = /*#__PURE__*/React.createElement(Line, {
240
174
  x1: width - padding.right,
241
175
  y1: 0,
242
176
  x2: width - padding.right,
243
177
  y2: effectiveHeight,
244
178
  stroke: color,
245
- strokeWidth: strokeWidth,
179
+ strokeWidth: strokeWidth
246
180
  });
247
181
  break;
248
182
  case 'top':
249
- axisLine = /*#__PURE__*/ React.createElement(Line, {
183
+ axisLine = /*#__PURE__*/React.createElement(Line, {
250
184
  x1: 0,
251
185
  y1: 20,
252
186
  x2: width,
253
187
  y2: 20,
254
188
  stroke: color,
255
- strokeWidth: strokeWidth,
189
+ strokeWidth: strokeWidth
256
190
  });
257
191
  break;
258
192
  case 'bottom':
259
- axisLine = /*#__PURE__*/ React.createElement(Line, {
193
+ axisLine = /*#__PURE__*/React.createElement(Line, {
260
194
  x1: 0,
261
195
  y1: height - 20,
262
196
  x2: width,
263
197
  y2: height - 20,
264
198
  stroke: color,
265
- strokeWidth: strokeWidth,
199
+ strokeWidth: strokeWidth
266
200
  });
267
201
  break;
268
202
  }
@@ -270,33 +204,23 @@ export const LineChartAxis = ({
270
204
  return {
271
205
  axisLine,
272
206
  ticks,
273
- labels,
207
+ labels
274
208
  };
275
209
  };
276
- const { axisLine, ticks, labels } = renderAxis();
277
- return /*#__PURE__*/ React.createElement(
278
- Animated.View,
279
- {
280
- style: [styles.container, containerStyle, props.style, animatedStyle],
281
- },
282
- /*#__PURE__*/ React.createElement(
283
- Svg,
284
- {
285
- width: width,
286
- height: height,
287
- style: StyleSheet.absoluteFill,
288
- },
289
- axisLine,
290
- ticks
291
- ),
292
- /*#__PURE__*/ React.createElement(
293
- Animated.View,
294
- {
295
- style: [StyleSheet.absoluteFill, styles.labelsContainer],
296
- },
297
- labels
298
- )
299
- );
210
+ const {
211
+ axisLine,
212
+ ticks,
213
+ labels
214
+ } = renderAxis();
215
+ return /*#__PURE__*/React.createElement(Animated.View, {
216
+ style: [styles.container, containerStyle, props.style, animatedStyle]
217
+ }, /*#__PURE__*/React.createElement(Svg, {
218
+ width: width,
219
+ height: height,
220
+ style: StyleSheet.absoluteFill
221
+ }, axisLine, ticks), /*#__PURE__*/React.createElement(Animated.View, {
222
+ style: [StyleSheet.absoluteFill, styles.labelsContainer]
223
+ }, labels));
300
224
  };
301
225
  const styles = StyleSheet.create({
302
226
  container: {
@@ -305,45 +229,45 @@ const styles = StyleSheet.create({
305
229
  left: 0,
306
230
  right: 0,
307
231
  bottom: 0,
308
- pointerEvents: 'none',
232
+ pointerEvents: 'none'
309
233
  },
310
234
  verticalLabel: {
311
235
  position: 'absolute',
312
236
  minHeight: 20,
313
237
  zIndex: 1000,
314
238
  overflow: 'visible',
315
- justifyContent: 'center',
239
+ justifyContent: 'center'
316
240
  },
317
241
  horizontalLabel: {
318
242
  position: 'absolute',
319
243
  minHeight: 20,
320
244
  zIndex: 1000,
321
245
  overflow: 'hidden',
322
- justifyContent: 'center',
246
+ justifyContent: 'center'
323
247
  },
324
248
  labelText: {
325
- fontSize: 10,
249
+ fontSize: 10
326
250
  },
327
251
  labelsContainer: {
328
- zIndex: 1000,
252
+ zIndex: 1000
329
253
  },
330
254
  alignStart: {
331
- alignItems: 'flex-start',
255
+ alignItems: 'flex-start'
332
256
  },
333
257
  alignEnd: {
334
- alignItems: 'flex-end',
258
+ alignItems: 'flex-end'
335
259
  },
336
260
  alignCenter: {
337
- alignItems: 'center',
261
+ alignItems: 'center'
338
262
  },
339
263
  textLeft: {
340
- textAlign: 'left',
264
+ textAlign: 'left'
341
265
  },
342
266
  textRight: {
343
- textAlign: 'right',
267
+ textAlign: 'right'
344
268
  },
345
269
  textCenter: {
346
- textAlign: 'center',
347
- },
270
+ textAlign: 'center'
271
+ }
348
272
  });
349
- //# sourceMappingURL=Axis.js.map
273
+ //# sourceMappingURL=Axis.js.map
@@ -1,17 +1,4 @@
1
- function _extends() {
2
- return (
3
- (_extends = Object.assign
4
- ? Object.assign.bind()
5
- : function (n) {
6
- for (var e = 1; e < arguments.length; e++) {
7
- var t = arguments[e];
8
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
9
- }
10
- return n;
11
- }),
12
- _extends.apply(null, arguments)
13
- );
14
- }
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
15
2
  import React from 'react';
16
3
  import * as d3Shape from 'd3-shape';
17
4
  import { Dimensions, StyleSheet, View } from 'react-native';
@@ -19,7 +6,7 @@ import { LineChartIdProvider, useLineChartData } from './Data';
19
6
  import { parse } from 'react-native-redash';
20
7
  import { getArea, getPath } from './utils';
21
8
  import { LineChartContext } from './Context';
22
- export const LineChartDimensionsContext = /*#__PURE__*/ React.createContext({
9
+ export const LineChartDimensionsContext = /*#__PURE__*/React.createContext({
23
10
  width: 0,
24
11
  height: 0,
25
12
  pointWidth: 0,
@@ -28,9 +15,11 @@ export const LineChartDimensionsContext = /*#__PURE__*/ React.createContext({
28
15
  area: '',
29
16
  shape: d3Shape.curveBumpX,
30
17
  gutter: 0,
31
- pathWidth: 0,
18
+ pathWidth: 0
32
19
  });
33
- const { width: screenWidth } = Dimensions.get('window');
20
+ const {
21
+ width: screenWidth
22
+ } = Dimensions.get('window');
34
23
  LineChart.displayName = 'LineChart';
35
24
  export function LineChart({
36
25
  children,
@@ -42,9 +31,15 @@ export function LineChart({
42
31
  absolute,
43
32
  ...props
44
33
  }) {
45
- const { yDomain, xLength, xDomain } = React.useContext(LineChartContext);
46
- const { data } = useLineChartData({
47
- id,
34
+ const {
35
+ yDomain,
36
+ xLength,
37
+ xDomain
38
+ } = React.useContext(LineChartContext);
39
+ const {
40
+ data
41
+ } = useLineChartData({
42
+ id
48
43
  });
49
44
 
50
45
  // Reserve space at the bottom for x-axis cursor labels
@@ -53,7 +48,7 @@ export function LineChart({
53
48
  const pathWidth = React.useMemo(() => {
54
49
  let allowedWidth = width;
55
50
  if (data && xLength > data.length) {
56
- allowedWidth = (width * data.length) / xLength;
51
+ allowedWidth = width * data.length / xLength;
57
52
  }
58
53
  return allowedWidth;
59
54
  }, [data, width, xLength]);
@@ -66,7 +61,7 @@ export function LineChart({
66
61
  gutter: yGutter,
67
62
  shape,
68
63
  yDomain,
69
- xDomain,
64
+ xDomain
70
65
  });
71
66
  }
72
67
  return '';
@@ -80,63 +75,35 @@ export function LineChart({
80
75
  gutter: yGutter,
81
76
  shape,
82
77
  yDomain,
83
- xDomain,
78
+ xDomain
84
79
  });
85
80
  }
86
81
  return '';
87
82
  }, [data, pathWidth, chartDrawingHeight, yGutter, shape, yDomain, xDomain]);
88
83
  const parsedPath = React.useMemo(() => parse(path), [path]);
89
- const pointWidth = React.useMemo(
90
- () => width / (data ? data.length - 1 : 1),
91
- [data, width]
92
- );
93
- const contextValue = React.useMemo(
94
- () => ({
95
- gutter: yGutter,
96
- parsedPath,
97
- pointWidth,
98
- area,
99
- path,
100
- width,
101
- height,
102
- pathWidth,
103
- shape: shape,
104
- }),
105
- [
106
- yGutter,
107
- parsedPath,
108
- pointWidth,
109
- area,
110
- path,
111
- width,
112
- height,
113
- pathWidth,
114
- shape,
115
- ]
116
- );
117
- return /*#__PURE__*/ React.createElement(
118
- LineChartIdProvider,
119
- {
120
- id: id,
121
- },
122
- /*#__PURE__*/ React.createElement(
123
- LineChartDimensionsContext.Provider,
124
- {
125
- value: contextValue,
126
- },
127
- /*#__PURE__*/ React.createElement(
128
- View,
129
- _extends({}, props, {
130
- style: [absolute && styles.absolute, props.style],
131
- }),
132
- children
133
- )
134
- )
135
- );
84
+ const pointWidth = React.useMemo(() => width / (data ? data.length - 1 : 1), [data, width]);
85
+ const contextValue = React.useMemo(() => ({
86
+ gutter: yGutter,
87
+ parsedPath,
88
+ pointWidth,
89
+ area,
90
+ path,
91
+ width,
92
+ height,
93
+ pathWidth,
94
+ shape
95
+ }), [yGutter, parsedPath, pointWidth, area, path, width, height, pathWidth, shape]);
96
+ return /*#__PURE__*/React.createElement(LineChartIdProvider, {
97
+ id: id
98
+ }, /*#__PURE__*/React.createElement(LineChartDimensionsContext.Provider, {
99
+ value: contextValue
100
+ }, /*#__PURE__*/React.createElement(View, _extends({}, props, {
101
+ style: [absolute && styles.absolute, props.style]
102
+ }), children)));
136
103
  }
137
104
  const styles = StyleSheet.create({
138
105
  absolute: {
139
- position: 'absolute',
140
- },
106
+ position: 'absolute'
107
+ }
141
108
  });
142
- //# sourceMappingURL=Chart.js.map
109
+ //# sourceMappingURL=Chart.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","d3Shape","Dimensions","StyleSheet","View","LineChartIdProvider","useLineChartData","parse","getArea","getPath","LineChartContext","LineChartDimensionsContext","createContext","width","height","pointWidth","parsedPath","path","area","shape","curveBumpX","gutter","pathWidth","screenWidth","get","LineChart","displayName","children","yGutter","id","absolute","props","yDomain","xLength","xDomain","useContext","data","X_AXIS_LABEL_RESERVED_HEIGHT","chartDrawingHeight","useMemo","allowedWidth","length","contextValue","createElement","Provider","value","_extends","style","styles","create","position"],"sourceRoot":"../../../../src","sources":["charts/line/Chart.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","d3Shape","Dimensions","StyleSheet","View","LineChartIdProvider","useLineChartData","parse","getArea","getPath","LineChartContext","LineChartDimensionsContext","createContext","width","height","pointWidth","parsedPath","path","area","shape","curveBumpX","gutter","pathWidth","screenWidth","get","LineChart","displayName","children","yGutter","id","absolute","props","yDomain","xLength","xDomain","useContext","data","X_AXIS_LABEL_RESERVED_HEIGHT","chartDrawingHeight","useMemo","allowedWidth","length","contextValue","createElement","Provider","value","_extends","style","styles","create","position"],"sourceRoot":"../../../../src","sources":["charts/line/Chart.tsx"],"mappings":"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","ignoreList":[]}