@octanejs/recharts 0.1.41 → 0.1.42

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 (375) hide show
  1. package/{LICENSE → LICENSE.recharts} +3 -2
  2. package/README.md +12 -0
  3. package/package.json +10 -9
  4. package/src/animation/AnimatedItems.tsrx +36 -3
  5. package/src/animation/AnimationController.ts +17 -65
  6. package/src/animation/{AnimationControllerImpl.js → AnimationControllerImpl.ts} +19 -12
  7. package/src/animation/{AnimationHandle.js → AnimationHandle.ts} +82 -65
  8. package/src/animation/CSSTransitionAnimate.tsrx +3 -2
  9. package/src/animation/JavascriptAnimate.tsrx +18 -2
  10. package/src/animation/easing.ts +235 -0
  11. package/src/animation/{matchBy.js → matchBy.ts} +76 -120
  12. package/src/animation/timeoutController.ts +71 -0
  13. package/src/animation/useAnimationController.ts +4 -1
  14. package/src/animation/useAnimationStartSnapshot.ts +3 -3
  15. package/src/animation/util.ts +12 -0
  16. package/src/cartesian/Area.tsrx +33 -31
  17. package/src/cartesian/AreaRevealShape.tsrx +4 -3
  18. package/src/cartesian/Bar.ts +1 -0
  19. package/src/cartesian/Bar.tsrx +293 -39
  20. package/src/cartesian/BarStack.tsrx +31 -9
  21. package/src/cartesian/CartesianAxis.tsrx +154 -22
  22. package/src/cartesian/CartesianGrid.tsrx +5 -6
  23. package/src/cartesian/ErrorBar.tsrx +9 -8
  24. package/src/cartesian/Funnel.tsrx +40 -37
  25. package/src/cartesian/GraphicalItemClipPath.tsrx +11 -4
  26. package/src/cartesian/Line.ts +1 -0
  27. package/src/cartesian/Line.tsrx +206 -28
  28. package/src/cartesian/LineDrawShape.tsrx +23 -10
  29. package/src/cartesian/ReferenceLine.tsrx +8 -8
  30. package/src/cartesian/Scatter.tsrx +61 -66
  31. package/src/cartesian/XAxis.tsrx +78 -9
  32. package/src/cartesian/YAxis.tsrx +85 -12
  33. package/src/cartesian/getCartesianPosition.ts +265 -0
  34. package/src/cartesian/getEquidistantTicks.ts +144 -0
  35. package/src/cartesian/getTicks.ts +221 -0
  36. package/src/chart/AreaChart.tsrx +5 -1
  37. package/src/chart/BarChart.tsrx +8 -2
  38. package/src/chart/CartesianChart.tsrx +17 -4
  39. package/src/chart/CategoricalChart.tsrx +4 -1
  40. package/src/chart/ComposedChart.tsrx +5 -1
  41. package/src/chart/FunnelChart.tsrx +5 -1
  42. package/src/chart/LineChart.tsrx +8 -2
  43. package/src/chart/PieChart.tsrx +6 -2
  44. package/src/chart/PolarChart.tsrx +5 -4
  45. package/src/chart/RadarChart.tsrx +6 -2
  46. package/src/chart/RadialBarChart.tsrx +6 -2
  47. package/src/chart/RechartsWrapper.tsrx +57 -21
  48. package/src/chart/Sankey.tsrx +89 -91
  49. package/src/chart/ScatterChart.tsrx +5 -1
  50. package/src/chart/SunburstChart.tsrx +21 -14
  51. package/src/chart/types.ts +0 -1
  52. package/src/component/ActivePoints.tsrx +30 -5
  53. package/src/component/Cell.ts +19 -1
  54. package/src/component/Cursor.tsrx +11 -10
  55. package/src/component/DefaultLegendContent.tsrx +15 -10
  56. package/src/component/DefaultTooltipContent.tsrx +11 -9
  57. package/src/component/Dots.tsrx +37 -6
  58. package/src/component/Label.tsrx +99 -19
  59. package/src/component/LabelList.tsrx +54 -5
  60. package/src/component/Legend.tsrx +9 -5
  61. package/src/component/ResponsiveContainer.tsrx +13 -10
  62. package/src/component/Text.tsrx +95 -32
  63. package/src/component/Tooltip.tsrx +11 -10
  64. package/src/component/TooltipBoundingBox.tsrx +4 -5
  65. package/src/component/{responsiveContainerUtils.js → responsiveContainerUtils.ts} +59 -36
  66. package/src/container/ClipPathProvider.tsrx +6 -2
  67. package/src/container/Layer.tsrx +8 -1
  68. package/src/container/RootSurface.tsrx +15 -4
  69. package/src/container/Surface.tsrx +15 -1
  70. package/src/context/CellsContext.ts +6 -5
  71. package/src/context/ErrorBarContext.tsrx +23 -4
  72. package/src/context/RegisterGraphicalItemId.tsrx +10 -2
  73. package/src/context/accessibilityContext.ts +5 -0
  74. package/src/context/brushUpdateContext.ts +11 -0
  75. package/src/context/chartDataContext.ts +5 -4
  76. package/src/context/chartLayoutContext.ts +22 -8
  77. package/src/context/legendPayloadContext.tsrx +1 -1
  78. package/src/context/tooltipContext.ts +83 -0
  79. package/src/{hooks.js → hooks.ts} +88 -66
  80. package/src/index.ts +37 -37
  81. package/src/legacy-props.ts +129 -0
  82. package/src/polar/Pie.tsrx +91 -69
  83. package/src/polar/PolarAngleAxis.tsrx +47 -47
  84. package/src/polar/PolarGrid.tsrx +7 -6
  85. package/src/polar/PolarRadiusAxis.tsrx +29 -21
  86. package/src/polar/Radar.tsrx +26 -19
  87. package/src/polar/RadialBar.tsrx +59 -42
  88. package/src/polar/{defaultPolarAngleAxisProps.js → defaultPolarAngleAxisProps.ts} +6 -6
  89. package/src/polar/{defaultPolarRadiusAxisProps.js → defaultPolarRadiusAxisProps.ts} +5 -4
  90. package/src/shape/Cross.tsrx +14 -2
  91. package/src/shape/Curve.tsrx +111 -23
  92. package/src/shape/Dot.tsrx +12 -1
  93. package/src/shape/Polygon.tsrx +28 -6
  94. package/src/shape/Rectangle.tsrx +30 -3
  95. package/src/shape/Sector.tsrx +48 -6
  96. package/src/shape/Symbols.tsrx +24 -6
  97. package/src/shape/Trapezoid.tsrx +33 -3
  98. package/src/state/RechartsStoreProvider.tsrx +11 -2
  99. package/src/state/ReportChartProps.ts +2 -2
  100. package/src/state/ReportMainChartProps.ts +2 -1
  101. package/src/state/SetGraphicalItem.ts +6 -4
  102. package/src/state/SetLegendPayload.ts +7 -4
  103. package/src/state/SetTooltipEntrySettings.ts +5 -2
  104. package/src/state/brushSlice.ts +40 -0
  105. package/src/state/cartesianAxisSlice.ts +291 -0
  106. package/src/state/chartDataSlice.ts +87 -0
  107. package/src/state/errorBarSlice.ts +78 -0
  108. package/src/state/eventSettingsSlice.ts +30 -0
  109. package/src/state/{externalEventsMiddleware.js → externalEventsMiddleware.ts} +55 -34
  110. package/src/state/graphicalItemsSlice.ts +180 -0
  111. package/src/state/{keyboardEventsMiddleware.js → keyboardEventsMiddleware.ts} +72 -57
  112. package/src/state/layoutSlice.ts +50 -0
  113. package/src/state/legendSlice.ts +109 -0
  114. package/src/state/{mouseEventsMiddleware.js → mouseEventsMiddleware.ts} +45 -35
  115. package/src/state/optionsSlice.ts +65 -0
  116. package/src/state/polarAxisSlice.ts +42 -0
  117. package/src/state/polarOptionsSlice.ts +43 -0
  118. package/src/state/reduxDevtoolsJsonStringifyReplacer.ts +13 -0
  119. package/src/state/referenceElementsSlice.ts +100 -0
  120. package/src/state/renderedTicksSlice.ts +60 -0
  121. package/src/state/rootPropsSlice.ts +72 -0
  122. package/src/state/selectors/areaSelectors.ts +1 -2
  123. package/src/state/selectors/{arrayEqualityCheck.js → arrayEqualityCheck.ts} +4 -5
  124. package/src/state/selectors/axisSelectors.ts +2502 -0
  125. package/src/state/selectors/barSelectors.ts +373 -0
  126. package/src/state/selectors/barStackSelectors.ts +99 -0
  127. package/src/state/selectors/brushSelectors.ts +28 -0
  128. package/src/state/selectors/combiners/combineActiveLabel.ts +16 -0
  129. package/src/state/selectors/combiners/{combineActiveTooltipIndex.js → combineActiveTooltipIndex.ts} +45 -23
  130. package/src/state/selectors/combiners/combineAllBarPositions.ts +130 -0
  131. package/src/state/selectors/combiners/combineAxisRangeWithReverse.ts +16 -0
  132. package/src/state/selectors/combiners/combineBarPosition.ts +23 -0
  133. package/src/state/selectors/combiners/combineBarSizeList.ts +79 -0
  134. package/src/state/selectors/combiners/{combineCheckedDomain.js → combineCheckedDomain.ts} +9 -6
  135. package/src/state/selectors/combiners/combineConfiguredScale.ts +100 -0
  136. package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.ts +46 -0
  137. package/src/state/selectors/combiners/{combineDisplayedStackedData.js → combineDisplayedStackedData.ts} +23 -19
  138. package/src/state/selectors/combiners/combineInverseScaleFunction.ts +16 -0
  139. package/src/state/selectors/combiners/{combineRealScaleType.js → combineRealScaleType.ts} +16 -8
  140. package/src/state/selectors/combiners/combineStackedData.ts +27 -0
  141. package/src/state/selectors/combiners/combineTooltipInteractionState.ts +86 -0
  142. package/src/state/selectors/combiners/combineTooltipPayload.ts +201 -0
  143. package/src/state/selectors/combiners/{combineTooltipPayloadConfigurations.js → combineTooltipPayloadConfigurations.ts} +17 -18
  144. package/src/state/selectors/containerSelectors.ts +12 -0
  145. package/src/state/selectors/{dataSelectors.js → dataSelectors.ts} +43 -41
  146. package/src/state/selectors/funnelSelectors.ts +5 -5
  147. package/src/state/selectors/graphicalItemSelectors.ts +22 -0
  148. package/src/state/selectors/legendSelectors.ts +25 -0
  149. package/src/state/selectors/lineSelectors.ts +159 -0
  150. package/src/state/selectors/numberDomainEqualityCheck.ts +15 -0
  151. package/src/state/selectors/pickAxisId.ts +6 -0
  152. package/src/state/selectors/pickAxisType.ts +4 -0
  153. package/src/state/selectors/pieSelectors.ts +14 -13
  154. package/src/state/selectors/polarAxisSelectors.ts +223 -0
  155. package/src/state/selectors/polarSelectors.ts +1 -1
  156. package/src/state/selectors/radarSelectors.ts +1 -1
  157. package/src/state/selectors/radialBarSelectors.ts +17 -16
  158. package/src/state/selectors/rootPropsSelectors.ts +26 -0
  159. package/src/state/selectors/scatterSelectors.ts +11 -10
  160. package/src/state/selectors/{selectActivePropsFromChartPointer.js → selectActivePropsFromChartPointer.ts} +11 -4
  161. package/src/state/selectors/selectAllAxes.ts +20 -0
  162. package/src/state/selectors/selectChartOffset.ts +17 -0
  163. package/src/state/selectors/selectChartOffsetInternal.ts +147 -0
  164. package/src/state/selectors/{selectPlotArea.js → selectPlotArea.ts} +4 -3
  165. package/src/state/selectors/selectTooltipAxisId.ts +6 -0
  166. package/src/state/selectors/{selectTooltipAxisType.js → selectTooltipAxisType.ts} +10 -4
  167. package/src/state/selectors/selectTooltipEventType.ts +39 -0
  168. package/src/state/selectors/selectTooltipPayloadSearcher.ts +6 -0
  169. package/src/state/selectors/selectTooltipSettings.ts +6 -0
  170. package/src/state/selectors/selectTooltipState.ts +5 -0
  171. package/src/state/selectors/selectors.ts +315 -0
  172. package/src/state/selectors/tooltipSelectors.ts +611 -0
  173. package/src/state/selectors/touchSelectors.ts +52 -0
  174. package/src/state/{store.js → store.ts} +46 -36
  175. package/src/state/tooltipSlice.ts +507 -0
  176. package/src/state/{touchEventsMiddleware.js → touchEventsMiddleware.ts} +54 -42
  177. package/src/state/types/AreaSettings.ts +15 -0
  178. package/src/state/types/BarSettings.ts +15 -0
  179. package/src/state/types/LineSettings.ts +10 -0
  180. package/src/state/types/PieSettings.ts +32 -0
  181. package/src/state/types/RadarSettings.ts +6 -0
  182. package/src/state/types/RadialBarSettings.ts +10 -0
  183. package/src/state/types/ScatterSettings.ts +13 -0
  184. package/src/state/types/StackedGraphicalItem.ts +34 -0
  185. package/src/state/zIndexSlice.ts +137 -0
  186. package/src/synchronisation/syncSelectors.ts +7 -0
  187. package/src/synchronisation/types.ts +42 -0
  188. package/src/synchronisation/useChartSynchronisation.tsrx +26 -11
  189. package/src/types.ts +55 -0
  190. package/src/util/ActiveShapeUtils.tsrx +34 -10
  191. package/src/util/BarUtils.tsrx +43 -3
  192. package/src/util/{CartesianUtils.js → CartesianUtils.ts} +22 -39
  193. package/src/util/ChartUtils.ts +759 -0
  194. package/src/util/{Constants.js → Constants.ts} +6 -6
  195. package/src/util/DOMUtils.ts +135 -0
  196. package/src/util/{DataUtils.js → DataUtils.ts} +120 -47
  197. package/src/util/Events.ts +22 -0
  198. package/src/util/FunnelUtils.tsrx +3 -3
  199. package/src/util/Global.ts +13 -0
  200. package/src/util/IfOverflow.ts +16 -0
  201. package/src/util/LRUCache.ts +42 -0
  202. package/src/util/{LogUtils.js → LogUtils.ts} +7 -12
  203. package/src/util/OctaneTypes.ts +51 -0
  204. package/src/util/PolarUtils.ts +132 -0
  205. package/src/util/RadialBarUtils.tsrx +3 -3
  206. package/src/util/ReduceCSSCalc.ts +186 -0
  207. package/src/util/ScatterUtils.tsrx +9 -7
  208. package/src/util/{TickUtils.js → TickUtils.ts} +30 -13
  209. package/src/util/{YAxisUtils.js → YAxisUtils.ts} +27 -17
  210. package/src/util/axisPropsAreEqual.ts +49 -0
  211. package/src/util/createEventProxy.ts +20 -0
  212. package/src/util/{excludeEventProps.js → excludeEventProps.ts} +8 -6
  213. package/src/util/getActiveCoordinate.ts +210 -0
  214. package/src/util/{getAxisTypeBasedOnLayout.js → getAxisTypeBasedOnLayout.ts} +7 -3
  215. package/src/util/getClassNameFromUnknown.ts +7 -0
  216. package/src/util/{getEveryNth.js → getEveryNth.ts} +5 -6
  217. package/src/util/getRadiusAndStrokeWidthFromDot.ts +31 -0
  218. package/src/util/{getRelativeCoordinate.js → getRelativeCoordinate.ts} +26 -9
  219. package/src/util/getSliced.ts +14 -0
  220. package/src/util/{isDomainSpecifiedByUser.js → isDomainSpecifiedByUser.ts} +46 -100
  221. package/src/util/isWellBehavedNumber.ts +8 -0
  222. package/src/util/payload/getUniqPayload.ts +1 -1
  223. package/src/util/{propsAreEqual.js → propsAreEqual.ts} +10 -8
  224. package/src/util/{resolveDefaultProps.js → resolveDefaultProps.ts} +35 -57
  225. package/src/util/round.ts +33 -0
  226. package/src/util/scale/CustomScaleDefinition.ts +82 -0
  227. package/src/util/scale/RechartsScale.ts +131 -0
  228. package/src/util/scale/{createCategoricalInverse.js → createCategoricalInverse.ts} +24 -29
  229. package/src/util/scale/{getNiceTickValues.js → getNiceTickValues.ts} +125 -146
  230. package/src/util/scale/index.ts +2 -0
  231. package/src/util/scale/util/{arithmetic.js → arithmetic.ts} +12 -8
  232. package/src/util/stacks/getStackSeriesIdentifier.ts +21 -0
  233. package/src/util/stacks/stackTypes.ts +58 -0
  234. package/src/util/{svgPropertiesNoEvents.js → svgPropertiesNoEvents.ts} +52 -27
  235. package/src/util/tooltip/translate.ts +2 -1
  236. package/src/util/typedDataKey.ts +49 -0
  237. package/src/util/types.ts +1265 -7
  238. package/src/util/{useUniqueId.js → useUniqueId.ts} +9 -5
  239. package/src/zIndex/{DefaultZIndexes.js → DefaultZIndexes.ts} +13 -4
  240. package/src/zIndex/ZIndexLayer.tsrx +13 -4
  241. package/src/zIndex/ZIndexPortal.tsrx +14 -4
  242. package/src/zIndex/{getZIndexFromUnknown.js → getZIndexFromUnknown.ts} +3 -3
  243. package/src/zIndex/{zIndexSelectors.js → zIndexSelectors.ts} +17 -11
  244. package/src/animation/easing.js +0 -193
  245. package/src/animation/timeoutController.js +0 -49
  246. package/src/animation/util.js +0 -11
  247. package/src/cartesian/Area.tsrx.d.ts +0 -340
  248. package/src/cartesian/Bar.tsrx.d.ts +0 -4
  249. package/src/cartesian/BarStack.tsrx.d.ts +0 -6
  250. package/src/cartesian/CartesianAxis.tsrx.d.ts +0 -3
  251. package/src/cartesian/CartesianGrid.tsrx.d.ts +0 -219
  252. package/src/cartesian/ErrorBar.tsrx.d.ts +0 -131
  253. package/src/cartesian/Funnel.tsrx.d.ts +0 -274
  254. package/src/cartesian/Line.tsrx.d.ts +0 -4
  255. package/src/cartesian/LineDrawShape.tsrx.d.ts +0 -2
  256. package/src/cartesian/ReferenceLine.tsrx.d.ts +0 -178
  257. package/src/cartesian/Scatter.tsrx.d.ts +0 -351
  258. package/src/cartesian/XAxis.tsrx.d.ts +0 -3
  259. package/src/cartesian/YAxis.tsrx.d.ts +0 -3
  260. package/src/cartesian/ZAxis.tsrx.d.ts +0 -102
  261. package/src/cartesian/getCartesianPosition.js +0 -277
  262. package/src/cartesian/getEquidistantTicks.js +0 -133
  263. package/src/cartesian/getTicks.js +0 -280
  264. package/src/chart/AreaChart.tsrx.d.ts +0 -12
  265. package/src/chart/BarChart.tsrx.d.ts +0 -2
  266. package/src/chart/CartesianChart.tsrx.d.ts +0 -10
  267. package/src/chart/ComposedChart.tsrx.d.ts +0 -12
  268. package/src/chart/FunnelChart.tsrx.d.ts +0 -12
  269. package/src/chart/LineChart.tsrx.d.ts +0 -2
  270. package/src/chart/PieChart.tsrx.d.ts +0 -31
  271. package/src/chart/RadarChart.tsrx.d.ts +0 -31
  272. package/src/chart/RadialBarChart.tsrx.d.ts +0 -31
  273. package/src/chart/Sankey.tsrx.d.ts +0 -253
  274. package/src/chart/ScatterChart.tsrx.d.ts +0 -12
  275. package/src/chart/SunburstChart.tsrx.d.ts +0 -146
  276. package/src/component/DefaultLegendContent.tsrx.d.ts +0 -125
  277. package/src/component/DefaultTooltipContent.tsrx.d.ts +0 -87
  278. package/src/component/Label.tsrx.d.ts +0 -12
  279. package/src/component/LabelList.tsrx.d.ts +0 -8
  280. package/src/component/Legend.tsrx.d.ts +0 -88
  281. package/src/component/ResponsiveContainer.tsrx.d.ts +0 -81
  282. package/src/component/Text.tsrx.d.ts +0 -9
  283. package/src/component/Tooltip.tsrx.d.ts +0 -246
  284. package/src/container/Layer.tsrx.d.ts +0 -6
  285. package/src/container/Surface.tsrx.d.ts +0 -12
  286. package/src/context/accessibilityContext.js +0 -10
  287. package/src/context/tooltipContext.js +0 -55
  288. package/src/index.d.ts +0 -281
  289. package/src/polar/Pie.tsrx.d.ts +0 -436
  290. package/src/polar/PolarAngleAxis.tsrx.d.ts +0 -215
  291. package/src/polar/PolarGrid.tsrx.d.ts +0 -117
  292. package/src/polar/PolarRadiusAxis.tsrx.d.ts +0 -209
  293. package/src/polar/Radar.tsrx.d.ts +0 -215
  294. package/src/polar/RadialBar.tsrx.d.ts +0 -340
  295. package/src/shape/Cross.tsrx.d.ts +0 -12
  296. package/src/shape/Curve.tsrx.d.ts +0 -42
  297. package/src/shape/Dot.tsrx.d.ts +0 -9
  298. package/src/shape/Polygon.tsrx.d.ts +0 -13
  299. package/src/shape/Rectangle.tsrx.d.ts +0 -31
  300. package/src/shape/Sector.tsrx.d.ts +0 -29
  301. package/src/shape/Symbols.tsrx.d.ts +0 -15
  302. package/src/shape/Trapezoid.tsrx.d.ts +0 -29
  303. package/src/state/brushSlice.js +0 -36
  304. package/src/state/cartesianAxisSlice.js +0 -256
  305. package/src/state/chartDataSlice.js +0 -67
  306. package/src/state/errorBarSlice.js +0 -53
  307. package/src/state/eventSettingsSlice.js +0 -25
  308. package/src/state/graphicalItemsSlice.js +0 -91
  309. package/src/state/layoutSlice.js +0 -57
  310. package/src/state/legendSlice.js +0 -83
  311. package/src/state/optionsSlice.js +0 -45
  312. package/src/state/polarAxisSlice.js +0 -33
  313. package/src/state/polarOptionsSlice.js +0 -26
  314. package/src/state/reduxDevtoolsJsonStringifyReplacer.js +0 -14
  315. package/src/state/referenceElementsSlice.js +0 -51
  316. package/src/state/renderedTicksSlice.js +0 -41
  317. package/src/state/rootPropsSlice.js +0 -48
  318. package/src/state/selectors/axisSelectors.js +0 -2113
  319. package/src/state/selectors/barSelectors.js +0 -263
  320. package/src/state/selectors/barStackSelectors.js +0 -65
  321. package/src/state/selectors/brushSelectors.js +0 -21
  322. package/src/state/selectors/combiners/combineActiveLabel.js +0 -18
  323. package/src/state/selectors/combiners/combineAllBarPositions.js +0 -169
  324. package/src/state/selectors/combiners/combineAxisRangeWithReverse.js +0 -11
  325. package/src/state/selectors/combiners/combineBarPosition.js +0 -17
  326. package/src/state/selectors/combiners/combineBarSizeList.js +0 -115
  327. package/src/state/selectors/combiners/combineConfiguredScale.js +0 -46
  328. package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.js +0 -48
  329. package/src/state/selectors/combiners/combineInverseScaleFunction.js +0 -12
  330. package/src/state/selectors/combiners/combineStackedData.js +0 -22
  331. package/src/state/selectors/combiners/combineTooltipInteractionState.js +0 -121
  332. package/src/state/selectors/combiners/combineTooltipPayload.js +0 -248
  333. package/src/state/selectors/containerSelectors.js +0 -6
  334. package/src/state/selectors/graphicalItemSelectors.js +0 -25
  335. package/src/state/selectors/legendSelectors.js +0 -18
  336. package/src/state/selectors/lineSelectors.js +0 -106
  337. package/src/state/selectors/numberDomainEqualityCheck.js +0 -11
  338. package/src/state/selectors/pickAxisId.js +0 -3
  339. package/src/state/selectors/pickAxisType.js +0 -3
  340. package/src/state/selectors/polarAxisSelectors.js +0 -237
  341. package/src/state/selectors/rootPropsSelectors.js +0 -13
  342. package/src/state/selectors/selectAllAxes.js +0 -15
  343. package/src/state/selectors/selectChartOffset.js +0 -12
  344. package/src/state/selectors/selectChartOffsetInternal.js +0 -174
  345. package/src/state/selectors/selectTooltipAxisId.js +0 -3
  346. package/src/state/selectors/selectTooltipEventType.js +0 -27
  347. package/src/state/selectors/selectTooltipPayloadSearcher.js +0 -3
  348. package/src/state/selectors/selectTooltipSettings.js +0 -3
  349. package/src/state/selectors/selectTooltipState.js +0 -3
  350. package/src/state/selectors/selectors.js +0 -222
  351. package/src/state/selectors/tooltipSelectors.js +0 -471
  352. package/src/state/selectors/touchSelectors.js +0 -31
  353. package/src/state/tooltipSlice.js +0 -237
  354. package/src/state/types/StackedGraphicalItem.js +0 -18
  355. package/src/state/zIndexSlice.js +0 -167
  356. package/src/synchronisation/syncSelectors.js +0 -5
  357. package/src/util/ChartUtils.js +0 -630
  358. package/src/util/DOMUtils.js +0 -180
  359. package/src/util/Events.js +0 -7
  360. package/src/util/Global.js +0 -13
  361. package/src/util/LRUCache.js +0 -58
  362. package/src/util/PolarUtils.js +0 -190
  363. package/src/util/ReduceCSSCalc.js +0 -260
  364. package/src/util/axisPropsAreEqual.js +0 -63
  365. package/src/util/createEventProxy.js +0 -18
  366. package/src/util/getActiveCoordinate.js +0 -253
  367. package/src/util/getClassNameFromUnknown.js +0 -8
  368. package/src/util/getRadiusAndStrokeWidthFromDot.js +0 -28
  369. package/src/util/getSliced.js +0 -11
  370. package/src/util/isWellBehavedNumber.js +0 -8
  371. package/src/util/round.js +0 -39
  372. package/src/util/scale/RechartsScale.js +0 -68
  373. package/src/util/scale/index.js +0 -3
  374. package/src/util/stacks/getStackSeriesIdentifier.js +0 -10
  375. package/src/zIndex/ZIndexLayer.tsrx.d.ts +0 -2
@@ -1,3 +1,118 @@
1
+ import type {
2
+ MutableRefObject,
3
+ OctaneElement,
4
+ OctaneNode,
5
+ RefObject,
6
+ } from '../util/OctaneTypes.ts';
7
+ import type { CurveType, Props as CurveProps } from '../shape/Curve.tsrx';
8
+ import type { LineDrawShapeProps } from './LineDrawShape.tsrx';
9
+ import type { CartesianLabelListEntry, ImplicitLabelListType } from '../component/LabelList.tsrx';
10
+ import type { ErrorBarDataPointFormatter } from './ErrorBar.tsrx';
11
+ import type {
12
+ ActiveDotType,
13
+ ActiveShape,
14
+ AnimationDuration,
15
+ CartesianLayout,
16
+ DataConsumer,
17
+ DataKey,
18
+ DataProvider,
19
+ DotType,
20
+ EasingInput,
21
+ LegendType,
22
+ TickItem,
23
+ TooltipType,
24
+ TrapezoidViewBox,
25
+ } from '../util/types';
26
+ import type { Formatter } from '../component/DefaultTooltipContent.tsrx';
27
+ import type { TooltipPayloadConfiguration } from '../state/tooltipSlice';
28
+ import type { BaseAxisWithScale } from '../state/selectors/axisSelectors';
29
+ import type { AxisId } from '../state/cartesianAxisSlice';
30
+ import type { AnimationInterpolateFn } from '../animation/AnimatedItems.tsrx';
31
+ import type { AnimationItem, AnimationMatchByProp } from '../animation/matchBy';
32
+ import type { WithIdRequired } from '../util/useUniqueId';
33
+ import type { ZIndexable } from '../zIndex/ZIndexLayer.tsrx';
34
+ import type { GraphicalItemId } from '../state/graphicalItemsSlice';
35
+ import type { ChartData } from '../state/chartDataSlice';
36
+
37
+ export interface LinePointItem {
38
+ readonly value: number;
39
+ readonly payload?: any;
40
+ x: number | null;
41
+ y: number | null;
42
+ }
43
+ interface InternalLineProps extends ZIndexable {
44
+ activeDot: ActiveDotType;
45
+ animateNewValues: boolean;
46
+ animationBegin: number;
47
+ animationDuration: AnimationDuration;
48
+ animationEasing: EasingInput;
49
+ animationInterpolateFn: AnimationInterpolateFn<LinePointItem, CartesianLayout>;
50
+ animationMatchBy: AnimationMatchByProp<LinePointItem>;
51
+ className?: string;
52
+ connectNulls: boolean;
53
+ data?: any;
54
+ dataKey?: DataKey<any>;
55
+ dot: DotType;
56
+ height: number;
57
+ hide: boolean;
58
+ id: GraphicalItemId;
59
+ isAnimationActive: boolean | 'auto';
60
+ label: ImplicitLabelListType;
61
+ layout: 'horizontal' | 'vertical';
62
+ left: number;
63
+ legendType: LegendType;
64
+ shape: ActiveShape<LineDrawShapeProps, SVGPathElement>;
65
+ name?: string | number;
66
+ needClip?: boolean;
67
+ onAnimationEnd?: () => void;
68
+ onAnimationStart?: () => void;
69
+ points: ReadonlyArray<LinePointItem>;
70
+ formatter?: Formatter;
71
+ tooltipType?: TooltipType;
72
+ top: number;
73
+ type?: CurveType;
74
+ unit?: string | number | null;
75
+ width: number;
76
+ xAxisId: AxisId;
77
+ yAxisId: AxisId;
78
+ }
79
+ interface LineProps<DataPointType = any, DataValueType = any> extends DataProvider<
80
+ DataPointType
81
+ >, DataConsumer<DataPointType, DataValueType>, ZIndexable {
82
+ activeDot?: ActiveDotType;
83
+ animateNewValues?: boolean;
84
+ animationBegin?: number;
85
+ animationDuration?: AnimationDuration;
86
+ animationEasing?: EasingInput;
87
+ animationInterpolateFn?: AnimationInterpolateFn<LinePointItem, CartesianLayout>;
88
+ animationMatchBy?: AnimationMatchByProp<LinePointItem>;
89
+ className?: string;
90
+ connectNulls?: boolean;
91
+ dot?: DotType;
92
+ hide?: boolean;
93
+ id?: string;
94
+ isAnimationActive?: boolean | 'auto';
95
+ label?: ImplicitLabelListType;
96
+ legendType?: LegendType;
97
+ shape?: ActiveShape<LineDrawShapeProps, SVGPathElement>;
98
+ name?: string | number;
99
+ onAnimationEnd?: () => void;
100
+ onAnimationStart?: () => void;
101
+ tooltipType?: TooltipType;
102
+ type?: CurveType;
103
+ unit?: string | number | null;
104
+ formatter?: Formatter;
105
+ xAxisId?: AxisId;
106
+ yAxisId?: AxisId;
107
+ zIndex?: number;
108
+ stroke?: string;
109
+ strokeWidth?: string | number;
110
+ strokeDasharray?: string | number;
111
+ }
112
+ type LineSvgProps = Omit<CurveProps, 'points' | 'pathRef' | 'ref' | 'layout' | 'baseLine'>;
113
+ type InternalProps = LineSvgProps & InternalLineProps;
114
+ export type Props<DataPointType = any, ValueAxisType = any> =
115
+ LineSvgProps & LineProps<DataPointType, ValueAxisType>;
1
116
  // Port of cartesian/Line.tsx — the line graphical item: redux registration,
2
117
  // store-computed points, the draw-in curve, dots, labels, active points.
3
118
  // `computeLinePoints` stays here (vendored lineSelectors imports it through
@@ -38,7 +153,7 @@ import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
38
153
  import { propsAreEqual } from '../util/propsAreEqual';
39
154
  import { Dots } from '../component/Dots.tsrx';
40
155
 
41
- function getTotalLength(mainCurve) {
156
+ function getTotalLength(mainCurve: SVGPathElement | null) {
42
157
  try {
43
158
  return mainCurve && mainCurve.getTotalLength && mainCurve.getTotalLength() || 0;
44
159
  } catch {
@@ -50,7 +165,7 @@ function getTotalLength(mainCurve) {
50
165
  * Average x-shift between matched pairs — the overall direction/magnitude of
51
166
  * data movement, used to extrapolate enter/exit positions.
52
167
  */
53
- function averageShift(items) {
168
+ function averageShift(items: ReadonlyArray<AnimationItem<LinePointItem>>) {
54
169
  let total = 0;
55
170
  let count = 0;
56
171
  for (const item of items) {
@@ -62,7 +177,10 @@ function averageShift(items) {
62
177
  return count > 0 ? total / count : 0;
63
178
  }
64
179
 
65
- const defaultLineAnimateItems = (items, animationElapsedTime) => {
180
+ const defaultLineAnimateItems: AnimationInterpolateFn<LinePointItem, CartesianLayout> = (
181
+ items,
182
+ animationElapsedTime,
183
+ ) => {
66
184
  if (items == null) {
67
185
  // First render: return empty, stroke-dasharray handles the reveal
68
186
  return [];
@@ -72,7 +190,7 @@ const defaultLineAnimateItems = (items, animationElapsedTime) => {
72
190
  return items.flatMap((item) => (item.status === 'removed' ? [] : [item.next]));
73
191
  }
74
192
  const shift = averageShift(items);
75
- const result = [];
193
+ const result: LinePointItem[] = [];
76
194
  for (const item of items) {
77
195
  if (item.status === 'matched') {
78
196
  result.push({
@@ -129,9 +247,9 @@ export const defaultLineProps = {
129
247
  yAxisId: 0,
130
248
  zIndex: DefaultZIndexes.line,
131
249
  type: 'linear',
132
- };
250
+ } as const satisfies Partial<Props>;
133
251
 
134
- const computeLegendPayloadFromAreaData = (props) => {
252
+ const computeLegendPayloadFromAreaData = (props: Props) => {
135
253
  const { dataKey, name, stroke, legendType, hide } = props;
136
254
  return [
137
255
  {
@@ -145,7 +263,22 @@ const computeLegendPayloadFromAreaData = (props) => {
145
263
  ];
146
264
  };
147
265
 
148
- const SetLineTooltipEntrySettings = memo((props) => {
266
+ const SetLineTooltipEntrySettings = memo((
267
+ props: Pick<
268
+ InternalProps,
269
+ | 'dataKey'
270
+ | 'data'
271
+ | 'stroke'
272
+ | 'strokeWidth'
273
+ | 'fill'
274
+ | 'name'
275
+ | 'hide'
276
+ | 'unit'
277
+ | 'formatter'
278
+ | 'tooltipType'
279
+ | 'id'
280
+ >,
281
+ ) => {
149
282
  const {
150
283
  dataKey,
151
284
  data,
@@ -159,7 +292,7 @@ const SetLineTooltipEntrySettings = memo((props) => {
159
292
  tooltipType,
160
293
  id,
161
294
  } = props;
162
- const tooltipEntrySettings = {
295
+ const tooltipEntrySettings: TooltipPayloadConfiguration = {
163
296
  dataDefinedOnItem: data,
164
297
  getPosition: noop,
165
298
  settings: {
@@ -180,7 +313,11 @@ const SetLineTooltipEntrySettings = memo((props) => {
180
313
  return <SetTooltipEntrySettings tooltipEntrySettings={tooltipEntrySettings} />;
181
314
  });
182
315
 
183
- function LineDotsWrapper(props) {
316
+ function LineDotsWrapper(props: {
317
+ points: ReadonlyArray<LinePointItem>;
318
+ clipPathId: string;
319
+ props: InternalProps;
320
+ }) {
184
321
  const { clipPathId, points } = props;
185
322
  const { dot, dataKey, needClip } = props.props;
186
323
  // Exclude ID so it isn't duplicated across every dot.
@@ -198,11 +335,15 @@ function LineDotsWrapper(props) {
198
335
  />;
199
336
  }
200
337
 
201
- function LineLabelListProvider(props) @{
338
+ function LineLabelListProvider(props: {
339
+ showLabels: boolean;
340
+ children: OctaneNode;
341
+ points: ReadonlyArray<LinePointItem>;
342
+ }) @{
202
343
  const { showLabels, children, points } = props;
203
- const labelListEntries = useMemo(() => {
344
+ const labelListEntries: ReadonlyArray<CartesianLabelListEntry> = useMemo(() => {
204
345
  return points?.map((point) => {
205
- const viewBox = {
346
+ const viewBox: TrapezoidViewBox = {
206
347
  x: point.x ?? 0,
207
348
  y: point.y ?? 0,
208
349
  width: 0,
@@ -225,7 +366,16 @@ function LineLabelListProvider(props) @{
225
366
  >{children}</CartesianLabelListContextProvider>
226
367
  }
227
368
 
228
- function StaticCurve(staticCurveProps) {
369
+ function StaticCurve(staticCurveProps: {
370
+ clipPathId: string;
371
+ pathRef: RefObject<SVGPathElement | null>;
372
+ points: ReadonlyArray<LinePointItem>;
373
+ props: InternalProps;
374
+ animationElapsedTime?: number;
375
+ isAnimating?: boolean;
376
+ isEntrance?: boolean;
377
+ visibleLength?: number | null;
378
+ }) {
229
379
  const {
230
380
  clipPathId,
231
381
  pathRef,
@@ -237,7 +387,7 @@ function StaticCurve(staticCurveProps) {
237
387
  visibleLength,
238
388
  } = staticCurveProps;
239
389
  const { type, layout, connectNulls, needClip, shape, strokeDasharray, ...others } = props;
240
- const curveProps = {
390
+ const curveProps: LineDrawShapeProps = {
241
391
  ...svgPropertiesAndEvents(others),
242
392
  fill: 'none',
243
393
  className: 'recharts-line-curve',
@@ -260,7 +410,12 @@ function StaticCurve(staticCurveProps) {
260
410
  </>;
261
411
  }
262
412
 
263
- function CurveWithAnimation(curveWithAnimationProps) {
413
+ function CurveWithAnimation(curveWithAnimationProps: {
414
+ clipPathId: string;
415
+ props: InternalProps;
416
+ pathRef: RefObject<SVGPathElement | null>;
417
+ previousPointsRef: MutableRefObject<ReadonlyArray<LinePointItem> | null>;
418
+ }) {
264
419
  const { clipPathId, props, pathRef, previousPointsRef } = curveWithAnimationProps;
265
420
  const {
266
421
  points,
@@ -281,7 +436,7 @@ function CurveWithAnimation(curveWithAnimationProps) {
281
436
  const getVisibleLength = useAnimatedLineLength(points);
282
437
  // Don't update previousPointsRef before the SVG path is measured.
283
438
  const shouldUpdatePreviousRef = useCallback(
284
- (animationElapsedTime) => animationElapsedTime > 0 && totalLength > 0,
439
+ (animationElapsedTime: number) => animationElapsedTime > 0 && totalLength > 0,
285
440
  [totalLength],
286
441
  );
287
442
  return <LineLabelListProvider points={points} showLabels={showLabels}>
@@ -322,10 +477,13 @@ function CurveWithAnimation(curveWithAnimationProps) {
322
477
  </LineLabelListProvider>;
323
478
  }
324
479
 
325
- function RenderCurve(props) {
480
+ function RenderCurve(props: {
481
+ clipPathId: string;
482
+ props: InternalProps;
483
+ }) {
326
484
  const { clipPathId } = props;
327
- const previousPointsRef = useRef(null);
328
- const pathRef = useRef(null);
485
+ const previousPointsRef = useRef<ReadonlyArray<LinePointItem> | null>(null);
486
+ const pathRef = useRef<SVGPathElement | null>(null);
329
487
  return <CurveWithAnimation
330
488
  props={props.props}
331
489
  clipPathId={clipPathId}
@@ -334,7 +492,10 @@ function RenderCurve(props) {
334
492
  />;
335
493
  }
336
494
 
337
- const errorBarDataPointFormatter = (dataPoint, dataKey) => {
495
+ const errorBarDataPointFormatter: ErrorBarDataPointFormatter<LinePointItem> = (
496
+ dataPoint: LinePointItem,
497
+ dataKey,
498
+ ) => {
338
499
  return {
339
500
  x: dataPoint.x ?? undefined,
340
501
  y: dataPoint.y ?? undefined,
@@ -344,7 +505,7 @@ const errorBarDataPointFormatter = (dataPoint, dataKey) => {
344
505
  };
345
506
  };
346
507
 
347
- function LineWithState(props) @{
508
+ function LineWithState(props: InternalProps) @{
348
509
  const {
349
510
  hide,
350
511
  dot,
@@ -410,7 +571,7 @@ function LineWithState(props) @{
410
571
  </>
411
572
  }
412
573
 
413
- function LineImpl(props) {
574
+ function LineImpl(props: WithIdRequired<Props>) {
414
575
  const {
415
576
  activeDot,
416
577
  animateNewValues,
@@ -432,7 +593,7 @@ function LineImpl(props) {
432
593
  const plotArea = usePlotArea();
433
594
  const layout = useChartLayout();
434
595
  const isPanorama = useIsPanorama();
435
- const points = useAppSelector(
596
+ const points: ReadonlyArray<LinePointItem> | undefined = useAppSelector(
436
597
  (state) => selectLinePoints(state, xAxisId, yAxisId, isPanorama, id),
437
598
  );
438
599
  if (layout !== 'horizontal' && layout !== 'vertical' || points == null || plotArea == null) {
@@ -475,10 +636,19 @@ export function computeLinePoints({
475
636
  dataKey,
476
637
  bandSize,
477
638
  displayedData,
639
+ }: {
640
+ layout: CartesianLayout;
641
+ xAxis: BaseAxisWithScale;
642
+ yAxis: BaseAxisWithScale;
643
+ xAxisTicks: TickItem[];
644
+ yAxisTicks: TickItem[];
645
+ dataKey: Props['dataKey'];
646
+ bandSize: number;
647
+ displayedData: ChartData;
478
648
  }) {
479
- return displayedData.map((entry, index) => {
649
+ const points = displayedData.map((entry, index) => {
480
650
  // getValueByDataKey does not validate the output type
481
- const value = getValueByDataKey(entry, dataKey);
651
+ const value: number = getValueByDataKey(entry, dataKey);
482
652
  if (layout === 'horizontal') {
483
653
  const x = getCateCoordinateOfLine({ axis: xAxis, ticks: xAxisTicks, bandSize, entry, index });
484
654
  const y =
@@ -497,10 +667,18 @@ export function computeLinePoints({
497
667
  return null;
498
668
  }
499
669
  return { x, y, value, payload: entry };
500
- }).filter(Boolean);
670
+ });
671
+ // This map returns only objects or null, so Boolean removes exactly the nulls.
672
+ return points.filter(
673
+ Boolean as BooleanConstructor & ((point: (typeof points)[number]) => point is NonNullable<
674
+ typeof point
675
+ >),
676
+ );
501
677
  }
502
678
 
503
- function LineFn(outsideProps) {
679
+ function LineFn<DataPointType = any, ValueAxisType = any>(
680
+ outsideProps: Props<DataPointType, ValueAxisType>,
681
+ ) {
504
682
  const props = resolveDefaultProps(outsideProps, defaultLineProps);
505
683
  const isPanorama = useIsPanorama();
506
684
  return <RegisterGraphicalItemId id={props.id} type="line">
@@ -540,5 +718,5 @@ function LineFn(outsideProps) {
540
718
  * @provides ErrorBarContext
541
719
  * @consumes CartesianChartContext
542
720
  */
543
- export const Line = memo(LineFn, propsAreEqual);
721
+ export const Line = memo(LineFn, propsAreEqual) as typeof LineFn & { displayName?: string };
544
722
  Line.displayName = 'Line';
@@ -1,3 +1,12 @@
1
+ import type { RefObject } from '../util/OctaneTypes.ts';
2
+ import type { Props as CurveProps } from '../shape/Curve.tsrx';
3
+ import type { ShapeAnimationProps } from '../util/types';
4
+
5
+ export type LineDrawShapeProps =
6
+ Omit<CurveProps, 'pathRef'> & ShapeAnimationProps & {
7
+ pathRef: RefObject<SVGPathElement | null>;
8
+ visibleLength?: number | null;
9
+ };
1
10
  // Port of cartesian/LineDrawShape.tsx — the default Line shape: the entrance
2
11
  // animation progressively reveals the path via stroke-dasharray.
3
12
  import { Curve } from '../shape/Curve.tsrx';
@@ -6,7 +15,7 @@ import { Curve } from '../shape/Curve.tsrx';
6
15
  * Reads the total length of an SVG path element, returning 0 if the element
7
16
  * is null or the measurement fails (e.g. in JSDOM).
8
17
  */
9
- function getTotalLength(path) {
18
+ function getTotalLength(path: SVGPathElement | null) {
10
19
  try {
11
20
  return path && path.getTotalLength && path.getTotalLength() || 0;
12
21
  } catch {
@@ -17,17 +26,17 @@ function getTotalLength(path) {
17
26
  // Uses `totalLength` as the gap (not totalLength - length) to dodge a
18
27
  // float-serialization artifact that paints a phantom endpoint dot with
19
28
  // round/square linecaps.
20
- function generateSimpleStrokeDasharray(totalLength, length) {
29
+ function generateSimpleStrokeDasharray(totalLength: number, length: number) {
21
30
  return length + 'px ' + totalLength + 'px';
22
31
  }
23
32
 
24
33
  // Odd-length stroke-dasharray values repeat once ("5" behaves like "5 5").
25
- function normalizeDashPattern(lines) {
34
+ function normalizeDashPattern(lines: number[]) {
26
35
  return lines.length % 2 !== 0 ? [...lines, ...lines] : lines;
27
36
  }
28
37
 
29
- function repeat(lines, count) {
30
- const result = [];
38
+ function repeat(lines: number[], count: number) {
39
+ const result: number[] = [];
31
40
  for (let i = 0; i < count; ++i) {
32
41
  result.push(...lines);
33
42
  }
@@ -38,7 +47,7 @@ function repeat(lines, count) {
38
47
  * Builds a dasharray that reveals exactly `length` pixels of the user's dash
39
48
  * pattern, followed by a `totalLength` gap hiding the rest.
40
49
  */
41
- function getStrokeDasharray(length, totalLength, lines) {
50
+ function getStrokeDasharray(length: number, totalLength: number, lines: number[]) {
42
51
  const normalizedLines = normalizeDashPattern(lines);
43
52
  const lineLength = normalizedLines.reduce((pre, next) => pre + next, 0);
44
53
  // if lineLength is 0 return the default when no strokeDasharray is provided
@@ -47,7 +56,7 @@ function getStrokeDasharray(length, totalLength, lines) {
47
56
  }
48
57
  const count = Math.floor(length / lineLength);
49
58
  const remainLength = length % lineLength;
50
- let remainLines = [];
59
+ let remainLines: number[] = [];
51
60
  for (let i = 0, sum = 0; i < normalizedLines.length; (sum += normalizedLines[i] ?? 0, ++i)) {
52
61
  const lineValue = normalizedLines[i];
53
62
  if (lineValue != null && sum + lineValue > remainLength) {
@@ -62,7 +71,11 @@ function getStrokeDasharray(length, totalLength, lines) {
62
71
  ).join(', ');
63
72
  }
64
73
 
65
- function computeAnimatedStrokeDasharray(userStrokeDasharray, totalLength, visibleLength) {
74
+ function computeAnimatedStrokeDasharray(
75
+ userStrokeDasharray: string | number | undefined,
76
+ totalLength: number,
77
+ visibleLength: number,
78
+ ) {
66
79
  if (userStrokeDasharray) {
67
80
  const lines = String(userStrokeDasharray).split(/[,\s]+/gim).map((num) => parseFloat(num));
68
81
  return getStrokeDasharray(visibleLength, totalLength, lines);
@@ -75,7 +88,7 @@ function computeAnimatedStrokeDasharray(userStrokeDasharray, totalLength, visibl
75
88
  * `strokeDasharray` as animationElapsedTime goes 0 → 1.
76
89
  * @since 3.9
77
90
  */
78
- export function LineDrawShape(props) {
91
+ export function LineDrawShape(props: LineDrawShapeProps) {
79
92
  const {
80
93
  animationElapsedTime,
81
94
  isAnimating,
@@ -86,7 +99,7 @@ export function LineDrawShape(props) {
86
99
  ...curveProps
87
100
  } = props;
88
101
  const finalConnectNulls = connectNulls ?? false;
89
- let strokeDasharray;
102
+ let strokeDasharray: string | undefined;
90
103
  if (visibleLength != null) {
91
104
  const { pathRef } = curveProps;
92
105
  const totalLength = getTotalLength(pathRef?.current ?? null);
@@ -1,15 +1,16 @@
1
+ import type { OctaneElement, SVGProps } from '../util/OctaneTypes.ts';
1
2
  /**
2
3
  * @fileOverview Reference Line
3
4
  */
4
5
  import * as React from 'octane';
5
- import { ReactElement, SVGProps, useEffect } from 'octane';
6
+ import { useEffect } from 'octane';
6
7
  import { clsx } from 'clsx';
7
- import { Layer } from '../container/Layer';
8
+ import { Layer } from '../container/Layer.tsrx';
8
9
  import {
9
10
  CartesianLabelContextProvider,
10
11
  CartesianLabelFromLabelProp,
11
12
  ImplicitLabelType,
12
- } from '../component/Label';
13
+ } from '../component/Label.tsrx';
13
14
  import type { IfOverflow, Overflowable } from '../util/IfOverflow';
14
15
  import { isNumOrStr } from '../util/DataUtils';
15
16
  import { rectWithCoords } from '../util/CartesianUtils';
@@ -24,10 +25,10 @@ import {
24
25
  } from '../state/selectors/axisSelectors';
25
26
  import { useIsPanorama } from '../context/PanoramaContext';
26
27
 
27
- import { useClipPathId } from '../container/ClipPathProvider';
28
+ import { useClipPathId } from '../container/ClipPathProvider.tsrx';
28
29
  import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
29
30
  import { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';
30
- import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';
31
+ import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer.tsrx';
31
32
  import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
32
33
  import { isWellBehavedNumber } from '../util/isWellBehavedNumber';
33
34
  import { BandPosition, RechartsScale } from '../util/scale/RechartsScale';
@@ -108,14 +109,14 @@ interface ReferenceLineProps<
108
109
  * @defaultValue 0
109
110
  */
110
111
  xAxisId?: number | string;
111
- shape?: ReactElement<SVGElement> | ((props: any) => ReactElement<SVGElement>);
112
+ shape?: OctaneElement<SVGElement> | ((props: any) => OctaneElement<SVGElement>);
112
113
  /**
113
114
  * Renders a single label.
114
115
  *
115
116
  * - `false`: no labels are rendered
116
117
  * - `string` | `number`: the content of the label
117
118
  * - `object`: the props of LabelList component
118
- * - `ReactElement`: a custom SVG label element, such as `<text>` or `<g>`.
119
+ * - `OctaneElement`: a custom SVG label element, such as `<text>` or `<g>`.
119
120
  * HTML elements such as `<div>` are not valid inside the chart SVG and may trigger React DOM warnings.
120
121
  * - `function`: a render function of custom label
121
122
  *
@@ -158,7 +159,6 @@ const renderLine = (option: ReferenceLineProps['shape'], props: SVGProps<SVGLine
158
159
  let line;
159
160
 
160
161
  if (React.isValidElement(option)) {
161
- // @ts-expect-error element cloning is not typed
162
162
  line = React.cloneElement(option, props);
163
163
  } else if (typeof option === 'function') {
164
164
  line = option(props);