@octanejs/recharts 0.1.40 → 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 (376) 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/internal.ts +4 -20
  82. package/src/legacy-props.ts +129 -0
  83. package/src/polar/Pie.tsrx +91 -69
  84. package/src/polar/PolarAngleAxis.tsrx +47 -47
  85. package/src/polar/PolarGrid.tsrx +7 -6
  86. package/src/polar/PolarRadiusAxis.tsrx +29 -21
  87. package/src/polar/Radar.tsrx +26 -19
  88. package/src/polar/RadialBar.tsrx +59 -42
  89. package/src/polar/{defaultPolarAngleAxisProps.js → defaultPolarAngleAxisProps.ts} +6 -6
  90. package/src/polar/{defaultPolarRadiusAxisProps.js → defaultPolarRadiusAxisProps.ts} +5 -4
  91. package/src/shape/Cross.tsrx +14 -2
  92. package/src/shape/Curve.tsrx +111 -23
  93. package/src/shape/Dot.tsrx +12 -1
  94. package/src/shape/Polygon.tsrx +28 -6
  95. package/src/shape/Rectangle.tsrx +30 -3
  96. package/src/shape/Sector.tsrx +48 -6
  97. package/src/shape/Symbols.tsrx +24 -6
  98. package/src/shape/Trapezoid.tsrx +33 -3
  99. package/src/state/RechartsStoreProvider.tsrx +11 -2
  100. package/src/state/ReportChartProps.ts +2 -2
  101. package/src/state/ReportMainChartProps.ts +2 -1
  102. package/src/state/SetGraphicalItem.ts +6 -4
  103. package/src/state/SetLegendPayload.ts +7 -4
  104. package/src/state/SetTooltipEntrySettings.ts +5 -2
  105. package/src/state/brushSlice.ts +40 -0
  106. package/src/state/cartesianAxisSlice.ts +291 -0
  107. package/src/state/chartDataSlice.ts +87 -0
  108. package/src/state/errorBarSlice.ts +78 -0
  109. package/src/state/eventSettingsSlice.ts +30 -0
  110. package/src/state/{externalEventsMiddleware.js → externalEventsMiddleware.ts} +55 -34
  111. package/src/state/graphicalItemsSlice.ts +180 -0
  112. package/src/state/{keyboardEventsMiddleware.js → keyboardEventsMiddleware.ts} +72 -57
  113. package/src/state/layoutSlice.ts +50 -0
  114. package/src/state/legendSlice.ts +109 -0
  115. package/src/state/{mouseEventsMiddleware.js → mouseEventsMiddleware.ts} +45 -35
  116. package/src/state/optionsSlice.ts +65 -0
  117. package/src/state/polarAxisSlice.ts +42 -0
  118. package/src/state/polarOptionsSlice.ts +43 -0
  119. package/src/state/reduxDevtoolsJsonStringifyReplacer.ts +13 -0
  120. package/src/state/referenceElementsSlice.ts +100 -0
  121. package/src/state/renderedTicksSlice.ts +60 -0
  122. package/src/state/rootPropsSlice.ts +72 -0
  123. package/src/state/selectors/areaSelectors.ts +1 -2
  124. package/src/state/selectors/{arrayEqualityCheck.js → arrayEqualityCheck.ts} +4 -5
  125. package/src/state/selectors/axisSelectors.ts +2502 -0
  126. package/src/state/selectors/barSelectors.ts +373 -0
  127. package/src/state/selectors/barStackSelectors.ts +99 -0
  128. package/src/state/selectors/brushSelectors.ts +28 -0
  129. package/src/state/selectors/combiners/combineActiveLabel.ts +16 -0
  130. package/src/state/selectors/combiners/{combineActiveTooltipIndex.js → combineActiveTooltipIndex.ts} +45 -23
  131. package/src/state/selectors/combiners/combineAllBarPositions.ts +130 -0
  132. package/src/state/selectors/combiners/combineAxisRangeWithReverse.ts +16 -0
  133. package/src/state/selectors/combiners/combineBarPosition.ts +23 -0
  134. package/src/state/selectors/combiners/combineBarSizeList.ts +79 -0
  135. package/src/state/selectors/combiners/{combineCheckedDomain.js → combineCheckedDomain.ts} +9 -6
  136. package/src/state/selectors/combiners/combineConfiguredScale.ts +100 -0
  137. package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.ts +46 -0
  138. package/src/state/selectors/combiners/{combineDisplayedStackedData.js → combineDisplayedStackedData.ts} +23 -19
  139. package/src/state/selectors/combiners/combineInverseScaleFunction.ts +16 -0
  140. package/src/state/selectors/combiners/{combineRealScaleType.js → combineRealScaleType.ts} +16 -8
  141. package/src/state/selectors/combiners/combineStackedData.ts +27 -0
  142. package/src/state/selectors/combiners/combineTooltipInteractionState.ts +86 -0
  143. package/src/state/selectors/combiners/combineTooltipPayload.ts +201 -0
  144. package/src/state/selectors/combiners/{combineTooltipPayloadConfigurations.js → combineTooltipPayloadConfigurations.ts} +17 -18
  145. package/src/state/selectors/containerSelectors.ts +12 -0
  146. package/src/state/selectors/{dataSelectors.js → dataSelectors.ts} +43 -41
  147. package/src/state/selectors/funnelSelectors.ts +5 -5
  148. package/src/state/selectors/graphicalItemSelectors.ts +22 -0
  149. package/src/state/selectors/legendSelectors.ts +25 -0
  150. package/src/state/selectors/lineSelectors.ts +159 -0
  151. package/src/state/selectors/numberDomainEqualityCheck.ts +15 -0
  152. package/src/state/selectors/pickAxisId.ts +6 -0
  153. package/src/state/selectors/pickAxisType.ts +4 -0
  154. package/src/state/selectors/pieSelectors.ts +14 -13
  155. package/src/state/selectors/polarAxisSelectors.ts +223 -0
  156. package/src/state/selectors/polarSelectors.ts +1 -1
  157. package/src/state/selectors/radarSelectors.ts +1 -1
  158. package/src/state/selectors/radialBarSelectors.ts +17 -16
  159. package/src/state/selectors/rootPropsSelectors.ts +26 -0
  160. package/src/state/selectors/scatterSelectors.ts +11 -10
  161. package/src/state/selectors/{selectActivePropsFromChartPointer.js → selectActivePropsFromChartPointer.ts} +11 -4
  162. package/src/state/selectors/selectAllAxes.ts +20 -0
  163. package/src/state/selectors/selectChartOffset.ts +17 -0
  164. package/src/state/selectors/selectChartOffsetInternal.ts +147 -0
  165. package/src/state/selectors/{selectPlotArea.js → selectPlotArea.ts} +4 -3
  166. package/src/state/selectors/selectTooltipAxisId.ts +6 -0
  167. package/src/state/selectors/{selectTooltipAxisType.js → selectTooltipAxisType.ts} +10 -4
  168. package/src/state/selectors/selectTooltipEventType.ts +39 -0
  169. package/src/state/selectors/selectTooltipPayloadSearcher.ts +6 -0
  170. package/src/state/selectors/selectTooltipSettings.ts +6 -0
  171. package/src/state/selectors/selectTooltipState.ts +5 -0
  172. package/src/state/selectors/selectors.ts +315 -0
  173. package/src/state/selectors/tooltipSelectors.ts +611 -0
  174. package/src/state/selectors/touchSelectors.ts +52 -0
  175. package/src/state/{store.js → store.ts} +46 -36
  176. package/src/state/tooltipSlice.ts +507 -0
  177. package/src/state/{touchEventsMiddleware.js → touchEventsMiddleware.ts} +54 -42
  178. package/src/state/types/AreaSettings.ts +15 -0
  179. package/src/state/types/BarSettings.ts +15 -0
  180. package/src/state/types/LineSettings.ts +10 -0
  181. package/src/state/types/PieSettings.ts +32 -0
  182. package/src/state/types/RadarSettings.ts +6 -0
  183. package/src/state/types/RadialBarSettings.ts +10 -0
  184. package/src/state/types/ScatterSettings.ts +13 -0
  185. package/src/state/types/StackedGraphicalItem.ts +34 -0
  186. package/src/state/zIndexSlice.ts +137 -0
  187. package/src/synchronisation/syncSelectors.ts +7 -0
  188. package/src/synchronisation/types.ts +42 -0
  189. package/src/synchronisation/useChartSynchronisation.tsrx +26 -11
  190. package/src/types.ts +55 -0
  191. package/src/util/ActiveShapeUtils.tsrx +34 -10
  192. package/src/util/BarUtils.tsrx +43 -3
  193. package/src/util/{CartesianUtils.js → CartesianUtils.ts} +22 -39
  194. package/src/util/ChartUtils.ts +759 -0
  195. package/src/util/{Constants.js → Constants.ts} +6 -6
  196. package/src/util/DOMUtils.ts +135 -0
  197. package/src/util/{DataUtils.js → DataUtils.ts} +120 -47
  198. package/src/util/Events.ts +22 -0
  199. package/src/util/FunnelUtils.tsrx +3 -3
  200. package/src/util/Global.ts +13 -0
  201. package/src/util/IfOverflow.ts +16 -0
  202. package/src/util/LRUCache.ts +42 -0
  203. package/src/util/{LogUtils.js → LogUtils.ts} +7 -12
  204. package/src/util/OctaneTypes.ts +51 -0
  205. package/src/util/PolarUtils.ts +132 -0
  206. package/src/util/RadialBarUtils.tsrx +3 -3
  207. package/src/util/ReduceCSSCalc.ts +186 -0
  208. package/src/util/ScatterUtils.tsrx +9 -7
  209. package/src/util/{TickUtils.js → TickUtils.ts} +30 -13
  210. package/src/util/{YAxisUtils.js → YAxisUtils.ts} +27 -17
  211. package/src/util/axisPropsAreEqual.ts +49 -0
  212. package/src/util/createEventProxy.ts +20 -0
  213. package/src/util/{excludeEventProps.js → excludeEventProps.ts} +8 -6
  214. package/src/util/getActiveCoordinate.ts +210 -0
  215. package/src/util/{getAxisTypeBasedOnLayout.js → getAxisTypeBasedOnLayout.ts} +7 -3
  216. package/src/util/getClassNameFromUnknown.ts +7 -0
  217. package/src/util/{getEveryNth.js → getEveryNth.ts} +5 -6
  218. package/src/util/getRadiusAndStrokeWidthFromDot.ts +31 -0
  219. package/src/util/{getRelativeCoordinate.js → getRelativeCoordinate.ts} +26 -9
  220. package/src/util/getSliced.ts +14 -0
  221. package/src/util/{isDomainSpecifiedByUser.js → isDomainSpecifiedByUser.ts} +46 -100
  222. package/src/util/isWellBehavedNumber.ts +8 -0
  223. package/src/util/payload/getUniqPayload.ts +1 -1
  224. package/src/util/{propsAreEqual.js → propsAreEqual.ts} +10 -8
  225. package/src/util/{resolveDefaultProps.js → resolveDefaultProps.ts} +35 -57
  226. package/src/util/round.ts +33 -0
  227. package/src/util/scale/CustomScaleDefinition.ts +82 -0
  228. package/src/util/scale/RechartsScale.ts +131 -0
  229. package/src/util/scale/{createCategoricalInverse.js → createCategoricalInverse.ts} +24 -29
  230. package/src/util/scale/{getNiceTickValues.js → getNiceTickValues.ts} +125 -146
  231. package/src/util/scale/index.ts +2 -0
  232. package/src/util/scale/util/{arithmetic.js → arithmetic.ts} +12 -8
  233. package/src/util/stacks/getStackSeriesIdentifier.ts +21 -0
  234. package/src/util/stacks/stackTypes.ts +58 -0
  235. package/src/util/{svgPropertiesNoEvents.js → svgPropertiesNoEvents.ts} +52 -27
  236. package/src/util/tooltip/translate.ts +2 -1
  237. package/src/util/typedDataKey.ts +49 -0
  238. package/src/util/types.ts +1265 -7
  239. package/src/util/{useUniqueId.js → useUniqueId.ts} +9 -5
  240. package/src/zIndex/{DefaultZIndexes.js → DefaultZIndexes.ts} +13 -4
  241. package/src/zIndex/ZIndexLayer.tsrx +13 -4
  242. package/src/zIndex/ZIndexPortal.tsrx +14 -4
  243. package/src/zIndex/{getZIndexFromUnknown.js → getZIndexFromUnknown.ts} +3 -3
  244. package/src/zIndex/{zIndexSelectors.js → zIndexSelectors.ts} +17 -11
  245. package/src/animation/easing.js +0 -193
  246. package/src/animation/timeoutController.js +0 -49
  247. package/src/animation/util.js +0 -11
  248. package/src/cartesian/Area.tsrx.d.ts +0 -340
  249. package/src/cartesian/Bar.tsrx.d.ts +0 -4
  250. package/src/cartesian/BarStack.tsrx.d.ts +0 -6
  251. package/src/cartesian/CartesianAxis.tsrx.d.ts +0 -3
  252. package/src/cartesian/CartesianGrid.tsrx.d.ts +0 -219
  253. package/src/cartesian/ErrorBar.tsrx.d.ts +0 -131
  254. package/src/cartesian/Funnel.tsrx.d.ts +0 -274
  255. package/src/cartesian/Line.tsrx.d.ts +0 -4
  256. package/src/cartesian/LineDrawShape.tsrx.d.ts +0 -2
  257. package/src/cartesian/ReferenceLine.tsrx.d.ts +0 -178
  258. package/src/cartesian/Scatter.tsrx.d.ts +0 -351
  259. package/src/cartesian/XAxis.tsrx.d.ts +0 -3
  260. package/src/cartesian/YAxis.tsrx.d.ts +0 -3
  261. package/src/cartesian/ZAxis.tsrx.d.ts +0 -102
  262. package/src/cartesian/getCartesianPosition.js +0 -277
  263. package/src/cartesian/getEquidistantTicks.js +0 -133
  264. package/src/cartesian/getTicks.js +0 -280
  265. package/src/chart/AreaChart.tsrx.d.ts +0 -12
  266. package/src/chart/BarChart.tsrx.d.ts +0 -2
  267. package/src/chart/CartesianChart.tsrx.d.ts +0 -10
  268. package/src/chart/ComposedChart.tsrx.d.ts +0 -12
  269. package/src/chart/FunnelChart.tsrx.d.ts +0 -12
  270. package/src/chart/LineChart.tsrx.d.ts +0 -2
  271. package/src/chart/PieChart.tsrx.d.ts +0 -31
  272. package/src/chart/RadarChart.tsrx.d.ts +0 -31
  273. package/src/chart/RadialBarChart.tsrx.d.ts +0 -31
  274. package/src/chart/Sankey.tsrx.d.ts +0 -253
  275. package/src/chart/ScatterChart.tsrx.d.ts +0 -12
  276. package/src/chart/SunburstChart.tsrx.d.ts +0 -146
  277. package/src/component/DefaultLegendContent.tsrx.d.ts +0 -125
  278. package/src/component/DefaultTooltipContent.tsrx.d.ts +0 -87
  279. package/src/component/Label.tsrx.d.ts +0 -12
  280. package/src/component/LabelList.tsrx.d.ts +0 -8
  281. package/src/component/Legend.tsrx.d.ts +0 -88
  282. package/src/component/ResponsiveContainer.tsrx.d.ts +0 -81
  283. package/src/component/Text.tsrx.d.ts +0 -9
  284. package/src/component/Tooltip.tsrx.d.ts +0 -246
  285. package/src/container/Layer.tsrx.d.ts +0 -6
  286. package/src/container/Surface.tsrx.d.ts +0 -12
  287. package/src/context/accessibilityContext.js +0 -10
  288. package/src/context/tooltipContext.js +0 -55
  289. package/src/index.d.ts +0 -281
  290. package/src/polar/Pie.tsrx.d.ts +0 -436
  291. package/src/polar/PolarAngleAxis.tsrx.d.ts +0 -215
  292. package/src/polar/PolarGrid.tsrx.d.ts +0 -117
  293. package/src/polar/PolarRadiusAxis.tsrx.d.ts +0 -209
  294. package/src/polar/Radar.tsrx.d.ts +0 -215
  295. package/src/polar/RadialBar.tsrx.d.ts +0 -340
  296. package/src/shape/Cross.tsrx.d.ts +0 -12
  297. package/src/shape/Curve.tsrx.d.ts +0 -42
  298. package/src/shape/Dot.tsrx.d.ts +0 -9
  299. package/src/shape/Polygon.tsrx.d.ts +0 -13
  300. package/src/shape/Rectangle.tsrx.d.ts +0 -31
  301. package/src/shape/Sector.tsrx.d.ts +0 -29
  302. package/src/shape/Symbols.tsrx.d.ts +0 -15
  303. package/src/shape/Trapezoid.tsrx.d.ts +0 -29
  304. package/src/state/brushSlice.js +0 -36
  305. package/src/state/cartesianAxisSlice.js +0 -256
  306. package/src/state/chartDataSlice.js +0 -67
  307. package/src/state/errorBarSlice.js +0 -53
  308. package/src/state/eventSettingsSlice.js +0 -25
  309. package/src/state/graphicalItemsSlice.js +0 -91
  310. package/src/state/layoutSlice.js +0 -57
  311. package/src/state/legendSlice.js +0 -83
  312. package/src/state/optionsSlice.js +0 -45
  313. package/src/state/polarAxisSlice.js +0 -33
  314. package/src/state/polarOptionsSlice.js +0 -26
  315. package/src/state/reduxDevtoolsJsonStringifyReplacer.js +0 -14
  316. package/src/state/referenceElementsSlice.js +0 -51
  317. package/src/state/renderedTicksSlice.js +0 -41
  318. package/src/state/rootPropsSlice.js +0 -48
  319. package/src/state/selectors/axisSelectors.js +0 -2113
  320. package/src/state/selectors/barSelectors.js +0 -263
  321. package/src/state/selectors/barStackSelectors.js +0 -65
  322. package/src/state/selectors/brushSelectors.js +0 -21
  323. package/src/state/selectors/combiners/combineActiveLabel.js +0 -18
  324. package/src/state/selectors/combiners/combineAllBarPositions.js +0 -169
  325. package/src/state/selectors/combiners/combineAxisRangeWithReverse.js +0 -11
  326. package/src/state/selectors/combiners/combineBarPosition.js +0 -17
  327. package/src/state/selectors/combiners/combineBarSizeList.js +0 -115
  328. package/src/state/selectors/combiners/combineConfiguredScale.js +0 -46
  329. package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.js +0 -48
  330. package/src/state/selectors/combiners/combineInverseScaleFunction.js +0 -12
  331. package/src/state/selectors/combiners/combineStackedData.js +0 -22
  332. package/src/state/selectors/combiners/combineTooltipInteractionState.js +0 -121
  333. package/src/state/selectors/combiners/combineTooltipPayload.js +0 -248
  334. package/src/state/selectors/containerSelectors.js +0 -6
  335. package/src/state/selectors/graphicalItemSelectors.js +0 -25
  336. package/src/state/selectors/legendSelectors.js +0 -18
  337. package/src/state/selectors/lineSelectors.js +0 -106
  338. package/src/state/selectors/numberDomainEqualityCheck.js +0 -11
  339. package/src/state/selectors/pickAxisId.js +0 -3
  340. package/src/state/selectors/pickAxisType.js +0 -3
  341. package/src/state/selectors/polarAxisSelectors.js +0 -237
  342. package/src/state/selectors/rootPropsSelectors.js +0 -13
  343. package/src/state/selectors/selectAllAxes.js +0 -15
  344. package/src/state/selectors/selectChartOffset.js +0 -12
  345. package/src/state/selectors/selectChartOffsetInternal.js +0 -174
  346. package/src/state/selectors/selectTooltipAxisId.js +0 -3
  347. package/src/state/selectors/selectTooltipEventType.js +0 -27
  348. package/src/state/selectors/selectTooltipPayloadSearcher.js +0 -3
  349. package/src/state/selectors/selectTooltipSettings.js +0 -3
  350. package/src/state/selectors/selectTooltipState.js +0 -3
  351. package/src/state/selectors/selectors.js +0 -222
  352. package/src/state/selectors/tooltipSelectors.js +0 -471
  353. package/src/state/selectors/touchSelectors.js +0 -31
  354. package/src/state/tooltipSlice.js +0 -237
  355. package/src/state/types/StackedGraphicalItem.js +0 -18
  356. package/src/state/zIndexSlice.js +0 -167
  357. package/src/synchronisation/syncSelectors.js +0 -5
  358. package/src/util/ChartUtils.js +0 -630
  359. package/src/util/DOMUtils.js +0 -180
  360. package/src/util/Events.js +0 -7
  361. package/src/util/Global.js +0 -13
  362. package/src/util/LRUCache.js +0 -58
  363. package/src/util/PolarUtils.js +0 -190
  364. package/src/util/ReduceCSSCalc.js +0 -260
  365. package/src/util/axisPropsAreEqual.js +0 -63
  366. package/src/util/createEventProxy.js +0 -18
  367. package/src/util/getActiveCoordinate.js +0 -253
  368. package/src/util/getClassNameFromUnknown.js +0 -8
  369. package/src/util/getRadiusAndStrokeWidthFromDot.js +0 -28
  370. package/src/util/getSliced.js +0 -11
  371. package/src/util/isWellBehavedNumber.js +0 -8
  372. package/src/util/round.js +0 -39
  373. package/src/util/scale/RechartsScale.js +0 -68
  374. package/src/util/scale/index.js +0 -3
  375. package/src/util/stacks/getStackSeriesIdentifier.js +0 -10
  376. package/src/zIndex/ZIndexLayer.tsrx.d.ts +0 -2
@@ -10,20 +10,21 @@
10
10
  import { createContext, useContext, useMemo, useState } from 'octane';
11
11
  import { shallowEqual } from '@octanejs/redux';
12
12
  import { splitSlot, subSlot } from '../internal';
13
+ import type { Props as CellProps } from '../component/Cell';
13
14
 
14
15
  export interface CellRegistry {
15
- register(token: object, props: unknown): void;
16
+ register(token: object, props: CellProps): void;
16
17
  unregister(token: object): void;
17
18
  }
18
19
 
19
20
  /** The shape upstream's `cells[index].props` access expects. */
20
21
  export interface RegisteredCell {
21
- props: unknown;
22
+ props: CellProps;
22
23
  }
23
24
 
24
25
  export const CellsContext = createContext<CellRegistry | null>(null);
25
26
 
26
- function toCellArray(map: Map<object, unknown>): RegisteredCell[] | undefined {
27
+ function toCellArray(map: Map<object, CellProps>): RegisteredCell[] | undefined {
27
28
  if (map.size === 0) {
28
29
  return undefined;
29
30
  }
@@ -46,7 +47,7 @@ export function useCellRegistry(...rest: any[]): [RegisteredCell[] | undefined,
46
47
  );
47
48
  const registry = useMemo(
48
49
  () => {
49
- const entries = new Map<object, unknown>();
50
+ const entries = new Map<object, CellProps>();
50
51
  let scheduled = false;
51
52
  const publish = () => {
52
53
  if (scheduled) return;
@@ -58,7 +59,7 @@ export function useCellRegistry(...rest: any[]): [RegisteredCell[] | undefined,
58
59
  });
59
60
  };
60
61
  return {
61
- register(token: object, props: unknown) {
62
+ register(token: object, props: CellProps) {
62
63
  const previousProps = entries.get(token);
63
64
  if (
64
65
  entries.has(token) &&
@@ -1,3 +1,18 @@
1
+ import type { OctaneNode } from '../util/OctaneTypes.ts';
2
+ import type { AxisId } from '../state/cartesianAxisSlice';
3
+ import type { ErrorBarDataPointFormatter } from '../cartesian/ErrorBar.tsrx';
4
+ import type { ErrorBarsSettings } from '../state/errorBarSlice';
5
+ import type { BarRectangleItem } from '../cartesian/Bar';
6
+ import type { LinePointItem } from '../cartesian/Line';
7
+ import type { ScatterPointItem } from '../cartesian/Scatter.tsrx';
8
+
9
+ type ErrorBarContextType<T extends BarRectangleItem | LinePointItem | ScatterPointItem> = {
10
+ data: ReadonlyArray<any> | undefined;
11
+ xAxisId: AxisId;
12
+ yAxisId: AxisId;
13
+ dataPointFormatter: ErrorBarDataPointFormatter<T>;
14
+ errorBarOffset: number;
15
+ };
1
16
  // Port of context/ErrorBarContext.tsx — the per-graphical-item settings an
2
17
  // <ErrorBar> child reads, plus the reporter that registers error-bar presence
3
18
  // in the store.
@@ -6,7 +21,7 @@ import { addErrorBar, removeErrorBar, replaceErrorBar } from '../state/errorBarS
6
21
  import { useAppDispatch } from '../state/hooks';
7
22
  import { useGraphicalItemId } from './RegisterGraphicalItemId.tsrx';
8
23
 
9
- const initialContextState = {
24
+ const initialContextState: ErrorBarContextType<any> = {
10
25
  data: [],
11
26
  xAxisId: 'xAxis-0',
12
27
  yAxisId: 'yAxis-0',
@@ -16,17 +31,21 @@ const initialContextState = {
16
31
 
17
32
  const ErrorBarContext = createContext(initialContextState);
18
33
 
19
- export function SetErrorBarContext(props) {
34
+ export function SetErrorBarContext<
35
+ T extends BarRectangleItem | LinePointItem | ScatterPointItem,
36
+ >(props: ErrorBarContextType<T> & {
37
+ children: OctaneNode;
38
+ }) {
20
39
  const { children, ...rest } = props;
21
40
  return <ErrorBarContext.Provider value={rest}>{children}</ErrorBarContext.Provider>;
22
41
  }
23
42
 
24
43
  export const useErrorBarContext = () => useContext(ErrorBarContext);
25
44
 
26
- export function ReportErrorBarSettings(props) {
45
+ export function ReportErrorBarSettings(props: ErrorBarsSettings) {
27
46
  const dispatch = useAppDispatch();
28
47
  const graphicalItemId = useGraphicalItemId();
29
- const prevPropsRef = useRef(null);
48
+ const prevPropsRef = useRef<ErrorBarsSettings | null>(null);
30
49
  useEffect(() => {
31
50
  if (graphicalItemId == null) {
32
51
  // ErrorBar outside a graphical item context does not do anything.
@@ -1,12 +1,20 @@
1
+ import type { OctaneNode } from '../util/OctaneTypes.ts';
2
+ import type { GraphicalItemId } from '../state/graphicalItemsSlice';
3
+
4
+ export type IdSetter = {
5
+ id?: string;
6
+ type: string;
7
+ children: (id: GraphicalItemId) => OctaneNode;
8
+ };
1
9
  // Port of context/RegisterGraphicalItemId.tsx — mints a stable per-item id
2
10
  // (user override wins) and provides it to descendants via context. `children`
3
11
  // is a RENDER PROP receiving the resolved id.
4
12
  import { createContext, useContext } from 'octane';
5
13
  import { useUniqueId } from '../util/useUniqueId';
6
14
 
7
- const GraphicalItemIdContext = createContext(undefined);
15
+ const GraphicalItemIdContext = createContext<GraphicalItemId | undefined>(undefined);
8
16
 
9
- export function RegisterGraphicalItemId(props) {
17
+ export function RegisterGraphicalItemId(props: IdSetter) {
10
18
  const { id, type, children } = props;
11
19
  const resolvedId = useUniqueId('recharts-' + type, id);
12
20
  return <GraphicalItemIdContext.Provider value={resolvedId}>{children(
@@ -0,0 +1,5 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { useAppSelector } from '../state/hooks';
3
+
4
+ export const useAccessibilityLayer: () => boolean = () =>
5
+ useAppSelector((state) => state.rootProps.accessibilityLayer) ?? true;
@@ -0,0 +1,11 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { createContext } from 'octane';
3
+
4
+ export interface BrushStartEndIndex {
5
+ startIndex: number;
6
+ endIndex: number;
7
+ }
8
+
9
+ export type OnBrushUpdate = (newState: BrushStartEndIndex) => void;
10
+
11
+ export const BrushUpdateDispatchContext = createContext<OnBrushUpdate>(() => {});
@@ -1,12 +1,13 @@
1
1
  // Port of context/chartDataContext.tsx — reporter components that publish the
2
2
  // chart's `data` prop into the store, plus the read hooks.
3
3
  import { useEffect } from 'octane';
4
- import { setChartData, setComputedData } from '../state/chartDataSlice';
4
+ import { setChartData, setComputedData, type ChartData } from '../state/chartDataSlice';
5
5
  import { useAppDispatch, useAppSelector } from '../state/hooks';
6
6
  import { useIsPanorama } from './PanoramaContext';
7
7
  import { splitSlot, subSlot } from '../internal';
8
+ import type { RechartsRootState } from '../state/store';
8
9
 
9
- export const ChartDataContextProvider = (props: { chartData: unknown }): null => {
10
+ export const ChartDataContextProvider = (props: { chartData: ChartData | undefined }): null => {
10
11
  const { chartData } = props;
11
12
  const dispatch = useAppDispatch();
12
13
  const isPanorama = useIsPanorama();
@@ -37,7 +38,7 @@ export const SetComputedData = (props: { computedData: unknown }): null => {
37
38
  return null;
38
39
  };
39
40
 
40
- const selectChartData = (state: any) => state.chartData.chartData;
41
+ const selectChartData = (state: RechartsRootState) => state.chartData.chartData;
41
42
 
42
43
  /** @deprecated use one of the other selectors instead. */
43
44
  export const useChartData = (...rest: any[]) => {
@@ -45,7 +46,7 @@ export const useChartData = (...rest: any[]) => {
45
46
  return useAppSelector(selectChartData, subSlot(slot, 'cdc:data'));
46
47
  };
47
48
 
48
- const selectDataIndex = (state: any) => {
49
+ const selectDataIndex = (state: RechartsRootState) => {
49
50
  const { dataStartIndex, dataEndIndex } = state.chartData;
50
51
  return { startIndex: dataStartIndex, endIndex: dataEndIndex };
51
52
  };
@@ -12,11 +12,22 @@ import {
12
12
  import { selectChartHeight, selectChartWidth } from '../state/selectors/containerSelectors';
13
13
  import { useIsPanorama } from './PanoramaContext';
14
14
  import { selectBrushDimensions, selectBrushSettings } from '../state/selectors/brushSelectors';
15
- import { useResponsiveContainerContext } from '../component/ResponsiveContainer';
15
+ import { useResponsiveContainerContext } from '../component/ResponsiveContainer.tsrx';
16
16
  import { isPositiveNumber } from '../util/isWellBehavedNumber';
17
17
  import { splitSlot, subSlot } from '../internal';
18
-
19
- export function cartesianViewBoxToTrapezoid(box: any) {
18
+ import type { RechartsRootState } from '../state/store';
19
+ import type { CartesianViewBoxRequired, Margin, TrapezoidViewBox } from '../util/types';
20
+
21
+ export function cartesianViewBoxToTrapezoid(box: undefined): undefined;
22
+ export function cartesianViewBoxToTrapezoid(
23
+ box: CartesianViewBoxRequired | TrapezoidViewBox,
24
+ ): TrapezoidViewBox;
25
+ export function cartesianViewBoxToTrapezoid(
26
+ box: CartesianViewBoxRequired | TrapezoidViewBox | undefined,
27
+ ): TrapezoidViewBox | undefined;
28
+ export function cartesianViewBoxToTrapezoid(
29
+ box: CartesianViewBoxRequired | TrapezoidViewBox | undefined,
30
+ ): TrapezoidViewBox | undefined {
20
31
  if (!box) {
21
32
  return undefined;
22
33
  }
@@ -81,7 +92,7 @@ export const useChartHeight = (...rest: any[]) => {
81
92
  return useAppSelector(selectChartHeight, subSlot(slot, 'clc:height'));
82
93
  };
83
94
 
84
- const selectMargin = (state: any) => state.layout.margin;
95
+ const selectMargin = (state: RechartsRootState) => state.layout.margin;
85
96
 
86
97
  /** The chart's margin (empty space around the plot), or `undefined` outside a chart. */
87
98
  export const useMargin = (...rest: any[]) => {
@@ -89,7 +100,7 @@ export const useMargin = (...rest: any[]) => {
89
100
  return useAppSelector(selectMargin, subSlot(slot, 'clc:margin'));
90
101
  };
91
102
 
92
- export const selectChartLayout = (state: any) => state.layout.layoutType;
103
+ export const selectChartLayout = (state: RechartsRootState) => state.layout.layoutType;
93
104
 
94
105
  /**
95
106
  * The chart layout as configured by the chart (`horizontal`/`vertical` for
@@ -111,7 +122,7 @@ export const useCartesianChartLayout = (...rest: any[]) => {
111
122
  return undefined;
112
123
  };
113
124
 
114
- export const selectPolarChartLayout = (state: any) => {
125
+ export const selectPolarChartLayout = (state: RechartsRootState) => {
115
126
  const layout = state.layout.layoutType;
116
127
  if (layout === 'centric' || layout === 'radial') {
117
128
  return layout;
@@ -132,7 +143,10 @@ export const useIsInChartContext = (...rest: any[]) => {
132
143
  return layout !== undefined;
133
144
  };
134
145
 
135
- export const ReportChartSize = (props: { width: number; height: number }): null => {
146
+ export const ReportChartSize = (props: {
147
+ width: number | string | undefined;
148
+ height: number | string | undefined;
149
+ }): null => {
136
150
  const dispatch = useAppDispatch();
137
151
  // Skip dispatching in a panorama chart: the ROOT chart decides these, and
138
152
  // Brush reads them from the store (stability avoids a re-render cycle).
@@ -161,7 +175,7 @@ export const ReportChartSize = (props: { width: number; height: number }): null
161
175
  return null;
162
176
  };
163
177
 
164
- export const ReportChartMargin = (props: { margin: unknown }): null => {
178
+ export const ReportChartMargin = (props: { margin: Partial<Margin> }): null => {
165
179
  const { margin } = props;
166
180
  const dispatch = useAppDispatch();
167
181
  useEffect(() => {
@@ -1,4 +1,4 @@
1
- import { LegendPayload } from '../component/DefaultLegendContent';
1
+ import { LegendPayload } from '../component/DefaultLegendContent.tsrx';
2
2
  import { useAppSelector } from '../state/hooks';
3
3
  import { selectLegendPayload } from '../state/selectors/legendSelectors';
4
4
 
@@ -0,0 +1,83 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import type { NativeMouseEvent } from '../util/OctaneTypes';
3
+
4
+ import { Coordinate, DataKey } from '../util/types';
5
+ import { useAppDispatch } from '../state/hooks';
6
+ import {
7
+ mouseLeaveItem,
8
+ setActiveClickItemIndex,
9
+ setActiveMouseOverItemIndex,
10
+ TooltipPayload,
11
+ } from '../state/tooltipSlice';
12
+
13
+ /**
14
+ * Some graphical items choose to provide more information to the tooltip
15
+ * and some do not.
16
+ */
17
+ export type TooltipTriggerInfo = {
18
+ tooltipPayload?: TooltipPayload;
19
+ tooltipPosition?: Coordinate;
20
+ };
21
+
22
+ export type MouseEnterLeaveEvent<T, E extends SVGElement = SVGElement> = (
23
+ data: T,
24
+ index: number,
25
+ event: NativeMouseEvent<E>,
26
+ ) => void;
27
+
28
+ export const useMouseEnterItemDispatch = <
29
+ T extends TooltipTriggerInfo,
30
+ E extends SVGElement = SVGElement,
31
+ >(
32
+ onMouseEnterFromProps: MouseEnterLeaveEvent<T, E> | undefined,
33
+ dataKey: DataKey<any> | undefined,
34
+ graphicalItemId: string,
35
+ ) => {
36
+ const dispatch = useAppDispatch();
37
+ return (data: T, index: number) => (event: NativeMouseEvent<E>) => {
38
+ onMouseEnterFromProps?.(data, index, event);
39
+ dispatch(
40
+ setActiveMouseOverItemIndex({
41
+ activeIndex: String(index),
42
+ activeDataKey: dataKey,
43
+ activeCoordinate: data.tooltipPosition,
44
+ activeGraphicalItemId: graphicalItemId,
45
+ }),
46
+ );
47
+ };
48
+ };
49
+
50
+ export const useMouseLeaveItemDispatch = <
51
+ T extends TooltipTriggerInfo,
52
+ E extends SVGElement = SVGElement,
53
+ >(
54
+ onMouseLeaveFromProps: undefined | MouseEnterLeaveEvent<T, E>,
55
+ ) => {
56
+ const dispatch = useAppDispatch();
57
+ return (data: T, index: number) => (event: NativeMouseEvent<E>) => {
58
+ onMouseLeaveFromProps?.(data, index, event);
59
+ dispatch(mouseLeaveItem());
60
+ };
61
+ };
62
+
63
+ export const useMouseClickItemDispatch = <
64
+ T extends TooltipTriggerInfo,
65
+ E extends SVGElement = SVGElement,
66
+ >(
67
+ onMouseClickFromProps: MouseEnterLeaveEvent<T, E> | undefined,
68
+ dataKey: DataKey<any> | undefined,
69
+ graphicalItemId: string,
70
+ ) => {
71
+ const dispatch = useAppDispatch();
72
+ return (data: T, index: number) => (event: NativeMouseEvent<E>) => {
73
+ onMouseClickFromProps?.(data, index, event);
74
+ dispatch(
75
+ setActiveClickItemIndex({
76
+ activeIndex: String(index),
77
+ activeDataKey: dataKey,
78
+ activeCoordinate: data.tooltipPosition,
79
+ activeGraphicalItemId: graphicalItemId,
80
+ }),
81
+ );
82
+ };
83
+ };
@@ -1,7 +1,7 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/hooks.js (framework-agnostic).
2
- // Do not edit update by re-vendoring when the recharts devDependency moves.
3
- import { defaultAxisId } from './state/cartesianAxisSlice';
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { AxisId, defaultAxisId } from './state/cartesianAxisSlice';
4
3
  import {
4
+ BaseAxisWithScale,
5
5
  selectAxisDomain,
6
6
  selectAxisInverseScale,
7
7
  selectAxisInverseDataSnapScale,
@@ -18,14 +18,20 @@ import {
18
18
  selectActiveTooltipDataPoints,
19
19
  selectIsTooltipActive,
20
20
  } from './state/selectors/tooltipSelectors';
21
+ import { ChartOffset, PlotArea } from './types';
21
22
  import { selectChartOffset } from './state/selectors/selectChartOffset';
22
23
  import { selectPlotArea } from './state/selectors/selectPlotArea';
23
- export var useXAxis = (xAxisId) => {
24
- var isPanorama = useIsPanorama();
24
+ import { CategoricalDomain, Coordinate, NumberDomain, TickItem } from './util/types';
25
+ import { ActiveLabel } from './synchronisation/types';
26
+ import { BandPosition } from './util/scale/RechartsScale';
27
+
28
+ export const useXAxis = (xAxisId: AxisId): BaseAxisWithScale | undefined => {
29
+ const isPanorama = useIsPanorama();
25
30
  return useAppSelector((state) => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama));
26
31
  };
27
- export var useYAxis = (yAxisId) => {
28
- var isPanorama = useIsPanorama();
32
+
33
+ export const useYAxis = (yAxisId: AxisId): BaseAxisWithScale | undefined => {
34
+ const isPanorama = useIsPanorama();
29
35
  return useAppSelector((state) => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama));
30
36
  };
31
37
 
@@ -36,12 +42,17 @@ export var useYAxis = (yAxisId) => {
36
42
  * @param options.position - Position within a band: 'start', 'middle', or 'end'.
37
43
  * @returns The pixel coordinate, or `undefined` if the value is not in the domain.
38
44
  */
45
+ export type ScaleFunction = (
46
+ value: unknown,
47
+ options?: { position?: BandPosition },
48
+ ) => number | undefined;
39
49
 
40
50
  /**
41
51
  * A function that converts pixel coordinates back to data values.
42
52
  * @param pixelValue - The pixel coordinate to convert.
43
53
  * @returns The closest data value in the domain.
44
54
  */
55
+ export type InverseScaleFunction = (pixelValue: number) => unknown;
45
56
 
46
57
  /**
47
58
  * Returns a function to convert data values to pixel coordinates for an {@link XAxis}.
@@ -64,11 +75,10 @@ export var useYAxis = (yAxisId) => {
64
75
  * @returns A scale function that maps data values to pixel coordinates, or `undefined`.
65
76
  * @since 3.8
66
77
  */
67
- export var useXAxisScale = function useXAxisScale() {
68
- var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
69
- var isPanorama = useIsPanorama();
70
- var scale = useAppSelector((state) => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));
71
- return scale === null || scale === void 0 ? void 0 : scale.map;
78
+ export const useXAxisScale = (xAxisId: AxisId = defaultAxisId): ScaleFunction | undefined => {
79
+ const isPanorama = useIsPanorama();
80
+ const scale = useAppSelector((state) => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));
81
+ return scale?.map;
72
82
  };
73
83
 
74
84
  /**
@@ -92,11 +102,10 @@ export var useXAxisScale = function useXAxisScale() {
92
102
  * @returns A scale function that maps data values to pixel coordinates, or `undefined`.
93
103
  * @since 3.8
94
104
  */
95
- export var useYAxisScale = function useYAxisScale() {
96
- var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
97
- var isPanorama = useIsPanorama();
98
- var scale = useAppSelector((state) => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));
99
- return scale === null || scale === void 0 ? void 0 : scale.map;
105
+ export const useYAxisScale = (yAxisId: AxisId = defaultAxisId): ScaleFunction | undefined => {
106
+ const isPanorama = useIsPanorama();
107
+ const scale = useAppSelector((state) => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));
108
+ return scale?.map;
100
109
  };
101
110
 
102
111
  /**
@@ -124,9 +133,10 @@ export var useYAxisScale = function useYAxisScale() {
124
133
  * @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.
125
134
  * @since 3.8
126
135
  */
127
- export var useXAxisInverseScale = function useXAxisInverseScale() {
128
- var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
129
- var isPanorama = useIsPanorama();
136
+ export const useXAxisInverseScale = (
137
+ xAxisId: AxisId = defaultAxisId,
138
+ ): InverseScaleFunction | undefined => {
139
+ const isPanorama = useIsPanorama();
130
140
  return useAppSelector((state) => selectAxisInverseScale(state, 'xAxis', xAxisId, isPanorama));
131
141
  };
132
142
 
@@ -147,9 +157,10 @@ export var useXAxisInverseScale = function useXAxisInverseScale() {
147
157
  * @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.
148
158
  * @since 3.8
149
159
  */
150
- export var useXAxisInverseDataSnapScale = function useXAxisInverseDataSnapScale() {
151
- var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
152
- var isPanorama = useIsPanorama();
160
+ export const useXAxisInverseDataSnapScale = (
161
+ xAxisId: AxisId = defaultAxisId,
162
+ ): InverseScaleFunction | undefined => {
163
+ const isPanorama = useIsPanorama();
153
164
  return useAppSelector((state) =>
154
165
  selectAxisInverseDataSnapScale(state, 'xAxis', xAxisId, isPanorama),
155
166
  );
@@ -172,8 +183,9 @@ export var useXAxisInverseDataSnapScale = function useXAxisInverseDataSnapScale(
172
183
  * @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.
173
184
  * @since 3.8
174
185
  */
175
- export var useXAxisInverseTickSnapScale = function useXAxisInverseTickSnapScale() {
176
- var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
186
+ export const useXAxisInverseTickSnapScale = (
187
+ xAxisId: AxisId = defaultAxisId,
188
+ ): InverseScaleFunction | undefined => {
177
189
  return useAppSelector((state) => selectAxisInverseTickSnapScale(state, 'xAxis', xAxisId));
178
190
  };
179
191
 
@@ -202,9 +214,10 @@ export var useXAxisInverseTickSnapScale = function useXAxisInverseTickSnapScale(
202
214
  * @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.
203
215
  * @since 3.8
204
216
  */
205
- export var useYAxisInverseScale = function useYAxisInverseScale() {
206
- var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
207
- var isPanorama = useIsPanorama();
217
+ export const useYAxisInverseScale = (
218
+ yAxisId: AxisId = defaultAxisId,
219
+ ): InverseScaleFunction | undefined => {
220
+ const isPanorama = useIsPanorama();
208
221
  return useAppSelector((state) => selectAxisInverseScale(state, 'yAxis', yAxisId, isPanorama));
209
222
  };
210
223
 
@@ -225,9 +238,10 @@ export var useYAxisInverseScale = function useYAxisInverseScale() {
225
238
  * @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.
226
239
  * @since 3.8
227
240
  */
228
- export var useYAxisInverseDataSnapScale = function useYAxisInverseDataSnapScale() {
229
- var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
230
- var isPanorama = useIsPanorama();
241
+ export const useYAxisInverseDataSnapScale = (
242
+ yAxisId: AxisId = defaultAxisId,
243
+ ): InverseScaleFunction | undefined => {
244
+ const isPanorama = useIsPanorama();
231
245
  return useAppSelector((state) =>
232
246
  selectAxisInverseDataSnapScale(state, 'yAxis', yAxisId, isPanorama),
233
247
  );
@@ -250,8 +264,9 @@ export var useYAxisInverseDataSnapScale = function useYAxisInverseDataSnapScale(
250
264
  * @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.
251
265
  * @since 3.8
252
266
  */
253
- export var useYAxisInverseTickSnapScale = function useYAxisInverseTickSnapScale() {
254
- var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
267
+ export const useYAxisInverseTickSnapScale = (
268
+ yAxisId: AxisId = defaultAxisId,
269
+ ): InverseScaleFunction | undefined => {
255
270
  return useAppSelector((state) => selectAxisInverseTickSnapScale(state, 'yAxis', yAxisId));
256
271
  };
257
272
 
@@ -265,8 +280,9 @@ export var useYAxisInverseTickSnapScale = function useYAxisInverseTickSnapScale(
265
280
  * @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.
266
281
  * @since 3.8
267
282
  */
268
- export var useXAxisTicks = function useXAxisTicks() {
269
- var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
283
+ export const useXAxisTicks = (
284
+ xAxisId: AxisId = defaultAxisId,
285
+ ): ReadonlyArray<TickItem> | undefined => {
270
286
  return useAppSelector((state) => selectRenderedTicksOfAxis(state, 'xAxis', xAxisId));
271
287
  };
272
288
 
@@ -280,8 +296,9 @@ export var useXAxisTicks = function useXAxisTicks() {
280
296
  * @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.
281
297
  * @since 3.8
282
298
  */
283
- export var useYAxisTicks = function useYAxisTicks() {
284
- var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
299
+ export const useYAxisTicks = (
300
+ yAxisId: AxisId = defaultAxisId,
301
+ ): ReadonlyArray<TickItem> | undefined => {
285
302
  return useAppSelector((state) => selectRenderedTicksOfAxis(state, 'yAxis', yAxisId));
286
303
  };
287
304
 
@@ -289,6 +306,10 @@ export var useYAxisTicks = function useYAxisTicks() {
289
306
  * Data point with x and y values that can be converted to pixel coordinates.
290
307
  * The x and y values should be in the same format as your chart data.
291
308
  */
309
+ export type CartesianDataPoint = {
310
+ x: number | string;
311
+ y: number | string;
312
+ };
292
313
 
293
314
  /**
294
315
  * Converts a data point (in data coordinates) to pixel coordinates.
@@ -318,23 +339,26 @@ export var useYAxisTicks = function useYAxisTicks() {
318
339
  * @returns The pixel x,y coordinates, or `undefined` if conversion is not possible.
319
340
  * @since 3.8
320
341
  */
321
- export var useCartesianScale = function useCartesianScale(dataPoint) {
322
- var xAxisId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultAxisId;
323
- var yAxisId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultAxisId;
324
- var xScale = useXAxisScale(xAxisId);
325
- var yScale = useYAxisScale(yAxisId);
342
+ export const useCartesianScale = (
343
+ dataPoint: CartesianDataPoint,
344
+ xAxisId: AxisId = defaultAxisId,
345
+ yAxisId: AxisId = defaultAxisId,
346
+ ): Coordinate | undefined => {
347
+ const xScale = useXAxisScale(xAxisId);
348
+ const yScale = useYAxisScale(yAxisId);
349
+
326
350
  if (xScale == null || yScale == null) {
327
351
  return undefined;
328
352
  }
329
- var pixelX = xScale(dataPoint.x);
330
- var pixelY = yScale(dataPoint.y);
353
+
354
+ const pixelX = xScale(dataPoint.x);
355
+ const pixelY = yScale(dataPoint.y);
356
+
331
357
  if (pixelX == null || pixelY == null) {
332
358
  return undefined;
333
359
  }
334
- return {
335
- x: pixelX,
336
- y: pixelY,
337
- };
360
+
361
+ return { x: pixelX, y: pixelY };
338
362
  };
339
363
 
340
364
  /**
@@ -346,7 +370,7 @@ export var useCartesianScale = function useCartesianScale(dataPoint) {
346
370
  * @returns ActiveLabel
347
371
  * @since 3.0
348
372
  */
349
- export var useActiveTooltipLabel = () => {
373
+ export const useActiveTooltipLabel = (): ActiveLabel => {
350
374
  return useAppSelector(selectActiveLabel);
351
375
  };
352
376
 
@@ -376,7 +400,7 @@ export var useActiveTooltipLabel = () => {
376
400
  * @returns Offset of the chart in pixels, or undefined if used outside a chart context.
377
401
  * @since 3.1
378
402
  */
379
- export var useOffset = () => {
403
+ export const useOffset = (): ChartOffset | undefined => {
380
404
  return useAppSelector(selectChartOffset);
381
405
  };
382
406
 
@@ -398,7 +422,7 @@ export var useOffset = () => {
398
422
  * @returns Plot area of the chart in pixels, or undefined if used outside a chart context.
399
423
  * @since 3.1
400
424
  */
401
- export var usePlotArea = () => {
425
+ export const usePlotArea = (): PlotArea | undefined => {
402
426
  return useAppSelector(selectPlotArea);
403
427
  };
404
428
 
@@ -420,7 +444,7 @@ export var usePlotArea = () => {
420
444
  *
421
445
  * @since 3.1
422
446
  */
423
- export var useActiveTooltipDataPoints = () => {
447
+ export const useActiveTooltipDataPoints = <T = unknown>(): ReadonlyArray<T> | undefined => {
424
448
  return useAppSelector(selectActiveTooltipDataPoints);
425
449
  };
426
450
 
@@ -440,9 +464,10 @@ export var useActiveTooltipDataPoints = () => {
440
464
  * @returns The domain of the X-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
441
465
  * @since 3.2
442
466
  */
443
- export var useXAxisDomain = function useXAxisDomain() {
444
- var xAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
445
- var isPanorama = useIsPanorama();
467
+ export const useXAxisDomain = (
468
+ xAxisId: AxisId = defaultAxisId,
469
+ ): NumberDomain | CategoricalDomain | undefined => {
470
+ const isPanorama = useIsPanorama();
446
471
  return useAppSelector((state) => selectAxisDomain(state, 'xAxis', xAxisId, isPanorama));
447
472
  };
448
473
 
@@ -461,9 +486,10 @@ export var useXAxisDomain = function useXAxisDomain() {
461
486
  * @returns The domain of the Y-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
462
487
  * @since 3.2
463
488
  */
464
- export var useYAxisDomain = function useYAxisDomain() {
465
- var yAxisId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultAxisId;
466
- var isPanorama = useIsPanorama();
489
+ export const useYAxisDomain = (
490
+ yAxisId: AxisId = defaultAxisId,
491
+ ): NumberDomain | CategoricalDomain | undefined => {
492
+ const isPanorama = useIsPanorama();
467
493
  return useAppSelector((state) => selectAxisDomain(state, 'yAxis', yAxisId, isPanorama));
468
494
  };
469
495
 
@@ -478,12 +504,8 @@ export var useYAxisDomain = function useYAxisDomain() {
478
504
  * @returns {boolean} True if the Tooltip is active, false otherwise.
479
505
  * @since 3.7
480
506
  */
481
- export var useIsTooltipActive = () => {
482
- var _useAppSelector;
483
- return (_useAppSelector = useAppSelector(selectIsTooltipActive)) !== null &&
484
- _useAppSelector !== void 0
485
- ? _useAppSelector
486
- : false;
507
+ export const useIsTooltipActive = (): boolean => {
508
+ return useAppSelector(selectIsTooltipActive) ?? false;
487
509
  };
488
510
 
489
511
  /**
@@ -497,8 +519,8 @@ export var useIsTooltipActive = () => {
497
519
  * @returns {Coordinate | undefined} The coordinate of the active Tooltip, or undefined.
498
520
  * @since 3.7
499
521
  */
500
- export var useActiveTooltipCoordinate = () => {
501
- var coordinate = useAppSelector(selectActiveTooltipCoordinate);
522
+ export const useActiveTooltipCoordinate = (): Coordinate | undefined => {
523
+ const coordinate = useAppSelector(selectActiveTooltipCoordinate);
502
524
  if (coordinate == null) {
503
525
  return undefined;
504
526
  }