@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
@@ -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
  }