@octanejs/recharts 0.1.41 → 0.1.43

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
@@ -0,0 +1,147 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { createSelector } from 'reselect';
3
+
4
+ import { selectLegendSettings, selectLegendSize } from './legendSelectors';
5
+ import {
6
+ CartesianViewBoxRequired,
7
+ ChartOffsetInternal,
8
+ Margin,
9
+ OffsetHorizontal,
10
+ OffsetVertical,
11
+ Size,
12
+ } from '../../util/types';
13
+ import { XAxisSettings, YAxisSettings } from '../cartesianAxisSlice';
14
+ import { LegendSettings } from '../legendSlice';
15
+ import { appendOffsetOfLegend } from '../../util/ChartUtils';
16
+ import { selectChartHeight, selectChartWidth, selectMargin } from './containerSelectors';
17
+ import { selectAllXAxes, selectAllYAxes } from './selectAllAxes';
18
+ import { DEFAULT_Y_AXIS_WIDTH } from '../../util/Constants';
19
+ import { RechartsRootState } from '../store';
20
+
21
+ export const selectBrushHeight = (state: RechartsRootState) => state.brush.height;
22
+
23
+ function selectLeftAxesOffset(state: RechartsRootState): number {
24
+ const yAxes = selectAllYAxes(state);
25
+ return yAxes.reduce((result: number, entry: YAxisSettings): number => {
26
+ if (entry.orientation === 'left' && !entry.mirror && !entry.hide) {
27
+ const width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;
28
+ return result + width;
29
+ }
30
+ return result;
31
+ }, 0);
32
+ }
33
+
34
+ function selectRightAxesOffset(state: RechartsRootState): number {
35
+ const yAxes = selectAllYAxes(state);
36
+ return yAxes.reduce((result: number, entry: YAxisSettings): number => {
37
+ if (entry.orientation === 'right' && !entry.mirror && !entry.hide) {
38
+ const width = typeof entry.width === 'number' ? entry.width : DEFAULT_Y_AXIS_WIDTH;
39
+ return result + width;
40
+ }
41
+ return result;
42
+ }, 0);
43
+ }
44
+
45
+ function selectTopAxesOffset(state: RechartsRootState): number {
46
+ const xAxes = selectAllXAxes(state);
47
+ return xAxes.reduce((result: number, entry: XAxisSettings): number => {
48
+ if (entry.orientation === 'top' && !entry.mirror && !entry.hide) {
49
+ return result + entry.height;
50
+ }
51
+ return result;
52
+ }, 0);
53
+ }
54
+
55
+ function selectBottomAxesOffset(state: RechartsRootState): number {
56
+ const xAxes = selectAllXAxes(state);
57
+ return xAxes.reduce((result: number, entry: XAxisSettings): number => {
58
+ if (entry.orientation === 'bottom' && !entry.mirror && !entry.hide) {
59
+ return result + entry.height;
60
+ }
61
+ return result;
62
+ }, 0);
63
+ }
64
+
65
+ /**
66
+ * For internal use only.
67
+ *
68
+ * @param root state
69
+ * @return ChartOffsetInternal
70
+ */
71
+ export const selectChartOffsetInternal: (state: RechartsRootState) => ChartOffsetInternal =
72
+ createSelector(
73
+ [
74
+ selectChartWidth,
75
+ selectChartHeight,
76
+ selectMargin,
77
+ selectBrushHeight,
78
+ selectLeftAxesOffset,
79
+ selectRightAxesOffset,
80
+ selectTopAxesOffset,
81
+ selectBottomAxesOffset,
82
+ selectLegendSettings,
83
+ selectLegendSize,
84
+ ],
85
+ (
86
+ chartWidth: number,
87
+ chartHeight: number,
88
+ margin: Margin,
89
+ brushHeight: number,
90
+ leftAxesOffset: number,
91
+ rightAxesOffset: number,
92
+ topAxesOffset: number,
93
+ bottomAxesOffset: number,
94
+ legendSettings: LegendSettings,
95
+ legendSize: Size,
96
+ ): ChartOffsetInternal => {
97
+ const offsetH: OffsetHorizontal = {
98
+ left: (margin.left || 0) + leftAxesOffset,
99
+ right: (margin.right || 0) + rightAxesOffset,
100
+ };
101
+
102
+ const offsetV: OffsetVertical = {
103
+ top: (margin.top || 0) + topAxesOffset,
104
+ bottom: (margin.bottom || 0) + bottomAxesOffset,
105
+ };
106
+
107
+ let offset = { ...offsetV, ...offsetH };
108
+
109
+ const brushBottom = offset.bottom;
110
+
111
+ offset.bottom += brushHeight;
112
+
113
+ offset = appendOffsetOfLegend(offset, legendSettings, legendSize);
114
+
115
+ const offsetWidth = chartWidth - offset.left - offset.right;
116
+ const offsetHeight = chartHeight - offset.top - offset.bottom;
117
+
118
+ return {
119
+ brushBottom,
120
+ ...offset,
121
+ // never return negative values for height and width
122
+ width: Math.max(offsetWidth, 0),
123
+ height: Math.max(offsetHeight, 0),
124
+ };
125
+ },
126
+ );
127
+
128
+ export const selectChartViewBox = createSelector(
129
+ selectChartOffsetInternal,
130
+ (offset: ChartOffsetInternal): CartesianViewBoxRequired => ({
131
+ x: offset.left,
132
+ y: offset.top,
133
+ width: offset.width,
134
+ height: offset.height,
135
+ }),
136
+ );
137
+
138
+ export const selectAxisViewBox = createSelector(
139
+ selectChartWidth,
140
+ selectChartHeight,
141
+ (width: number, height: number): CartesianViewBoxRequired => ({
142
+ x: 0,
143
+ y: 0,
144
+ width,
145
+ height,
146
+ }),
147
+ );
@@ -1,14 +1,15 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/state/selectors/selectPlotArea.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
3
2
  import { createSelector } from 'reselect';
4
3
  import { selectChartOffset } from './selectChartOffset';
5
4
  import { selectChartHeight, selectChartWidth } from './containerSelectors';
6
- export var selectPlotArea = createSelector(
5
+
6
+ export const selectPlotArea = createSelector(
7
7
  [selectChartOffset, selectChartWidth, selectChartHeight],
8
8
  (offset, chartWidth, chartHeight) => {
9
9
  if (!offset || chartWidth == null || chartHeight == null) {
10
10
  return undefined;
11
11
  }
12
+
12
13
  return {
13
14
  x: offset.left,
14
15
  y: offset.top,
@@ -0,0 +1,6 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { RechartsRootState } from '../store';
3
+ import { AxisId } from '../cartesianAxisSlice';
4
+
5
+ export const selectTooltipAxisId = (state: RechartsRootState): AxisId =>
6
+ state.tooltip.settings.axisId;
@@ -1,25 +1,31 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/state/selectors/selectTooltipAxisType.js (framework-agnostic).
2
- // Do not edit update by re-vendoring when the recharts devDependency moves.
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { RechartsRootState } from '../store';
3
3
  import { selectChartLayout } from '../../context/chartLayoutContext';
4
4
 
5
5
  /**
6
6
  * angle, radius, X, Y, and Z axes all have domain and range and scale and associated settings
7
7
  */
8
+ export type AllAxisTypes = 'xAxis' | 'yAxis' | 'zAxis' | 'radiusAxis' | 'angleAxis';
8
9
 
9
10
  /**
10
11
  * Z axis is never displayed and so it lacks ticks and tick settings.
11
12
  */
13
+ export type RenderableAxisType = 'xAxis' | 'yAxis' | 'angleAxis' | 'radiusAxis';
14
+
15
+ export const selectTooltipAxisType = (state: RechartsRootState): RenderableAxisType => {
16
+ const layout = selectChartLayout(state);
12
17
 
13
- export var selectTooltipAxisType = (state) => {
14
- var layout = selectChartLayout(state);
15
18
  if (layout === 'horizontal') {
16
19
  return 'xAxis';
17
20
  }
21
+
18
22
  if (layout === 'vertical') {
19
23
  return 'yAxis';
20
24
  }
25
+
21
26
  if (layout === 'centric') {
22
27
  return 'angleAxis';
23
28
  }
29
+
24
30
  return 'radiusAxis';
25
31
  };
@@ -0,0 +1,39 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { RechartsRootState } from '../store';
3
+ import { TooltipEventType } from '../../util/types';
4
+ import { useAppSelector } from '../hooks';
5
+ import { SharedTooltipSettings } from '../tooltipSlice';
6
+
7
+ export const selectDefaultTooltipEventType = (state: RechartsRootState): TooltipEventType =>
8
+ state.options.defaultTooltipEventType;
9
+ export const selectValidateTooltipEventTypes = (
10
+ state: RechartsRootState,
11
+ ): ReadonlyArray<TooltipEventType> | undefined => state.options.validateTooltipEventTypes;
12
+
13
+ export function combineTooltipEventType(
14
+ shared: SharedTooltipSettings,
15
+ defaultTooltipEventType: TooltipEventType,
16
+ validateTooltipEventTypes: ReadonlyArray<TooltipEventType> | undefined,
17
+ ): TooltipEventType {
18
+ if (shared == null) {
19
+ return defaultTooltipEventType;
20
+ }
21
+ const eventType = shared ? 'axis' : 'item';
22
+ if (validateTooltipEventTypes == null) {
23
+ return defaultTooltipEventType;
24
+ }
25
+ return validateTooltipEventTypes.includes(eventType) ? eventType : defaultTooltipEventType;
26
+ }
27
+
28
+ export function selectTooltipEventType(
29
+ state: RechartsRootState,
30
+ shared: SharedTooltipSettings,
31
+ ): TooltipEventType {
32
+ const defaultTooltipEventType = selectDefaultTooltipEventType(state);
33
+ const validateTooltipEventTypes = selectValidateTooltipEventTypes(state);
34
+ return combineTooltipEventType(shared, defaultTooltipEventType, validateTooltipEventTypes);
35
+ }
36
+
37
+ export function useTooltipEventType(shared: SharedTooltipSettings): TooltipEventType | undefined {
38
+ return useAppSelector((state) => selectTooltipEventType(state, shared));
39
+ }
@@ -0,0 +1,6 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { RechartsRootState } from '../store';
3
+ import { TooltipPayloadSearcher } from '../tooltipSlice';
4
+
5
+ export const selectTooltipPayloadSearcher = (state: RechartsRootState): TooltipPayloadSearcher =>
6
+ state.options.tooltipPayloadSearcher;
@@ -0,0 +1,6 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { RechartsRootState } from '../store';
3
+ import { TooltipSettingsState } from '../tooltipSlice';
4
+
5
+ export const selectTooltipSettings = (state: RechartsRootState): TooltipSettingsState =>
6
+ state.tooltip.settings;
@@ -0,0 +1,5 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { RechartsRootState } from '../store';
3
+ import { TooltipState } from '../tooltipSlice';
4
+
5
+ export const selectTooltipState = (state: RechartsRootState): TooltipState => state.tooltip;
@@ -0,0 +1,315 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { createSelector } from 'reselect';
3
+ import { sortBy } from 'es-toolkit/compat';
4
+ import { useAppSelector } from '../hooks';
5
+ import { RechartsRootState } from '../store';
6
+ import {
7
+ ActiveTooltipProps,
8
+ TooltipIndex,
9
+ TooltipInteractionState,
10
+ TooltipPayload,
11
+ TooltipPayloadConfiguration,
12
+ } from '../tooltipSlice';
13
+ import { calculateCartesianTooltipPos, calculatePolarTooltipPos } from '../../util/ChartUtils';
14
+ import {
15
+ AxisType,
16
+ CartesianLayout,
17
+ ChartOffsetInternal,
18
+ RelativePointer,
19
+ Coordinate,
20
+ DataKey,
21
+ PolarCoordinate,
22
+ PolarLayout,
23
+ PolarViewBoxRequired,
24
+ TickItem,
25
+ TooltipEventType,
26
+ } from '../../util/types';
27
+ import { TooltipTrigger } from '../../chart/types';
28
+ import { selectChartDataWithIndexes } from './dataSelectors';
29
+ import {
30
+ selectTooltipAxisDomain,
31
+ selectTooltipAxisTicks,
32
+ selectTooltipDisplayedData,
33
+ } from './tooltipSelectors';
34
+ import { AxisRange, selectTooltipAxisDataKey } from './axisSelectors';
35
+ import { selectChartName } from './rootPropsSelectors';
36
+ import { selectChartLayout } from '../../context/chartLayoutContext';
37
+ import { selectChartOffsetInternal } from './selectChartOffsetInternal';
38
+ import { selectChartHeight, selectChartWidth } from './containerSelectors';
39
+ import { combineActiveLabel } from './combiners/combineActiveLabel';
40
+ import { combineTooltipInteractionState } from './combiners/combineTooltipInteractionState';
41
+ import { combineActiveTooltipIndex } from './combiners/combineActiveTooltipIndex';
42
+ import { combineCoordinateForDefaultIndex } from './combiners/combineCoordinateForDefaultIndex';
43
+ import { combineTooltipPayloadConfigurations } from './combiners/combineTooltipPayloadConfigurations';
44
+ import { selectTooltipPayloadSearcher } from './selectTooltipPayloadSearcher';
45
+ import { selectTooltipState } from './selectTooltipState';
46
+ import { combineTooltipPayload } from './combiners/combineTooltipPayload';
47
+ import {
48
+ calculateActiveTickIndex,
49
+ getActiveCartesianCoordinate,
50
+ getActivePolarCoordinate,
51
+ isInCartesianRange,
52
+ } from '../../util/getActiveCoordinate';
53
+ import { inRangeOfSector } from '../../util/PolarUtils';
54
+
55
+ export const useChartName = (): string | undefined => {
56
+ return useAppSelector(selectChartName);
57
+ };
58
+
59
+ const pickTooltipEventType = (
60
+ _state: RechartsRootState,
61
+ tooltipEventType: TooltipEventType | undefined,
62
+ ): TooltipEventType | undefined => tooltipEventType;
63
+
64
+ const pickTrigger = (
65
+ _state: RechartsRootState,
66
+ _tooltipEventType: TooltipEventType | undefined,
67
+ trigger: TooltipTrigger,
68
+ ): TooltipTrigger => trigger;
69
+
70
+ const pickDefaultIndex = (
71
+ _state: RechartsRootState,
72
+ _tooltipEventType: TooltipEventType | undefined,
73
+ _trigger: TooltipTrigger,
74
+ defaultIndex?: TooltipIndex | undefined,
75
+ ): TooltipIndex | undefined => defaultIndex;
76
+
77
+ export const selectOrderedTooltipTicks = createSelector(
78
+ selectTooltipAxisTicks,
79
+ (ticks: ReadonlyArray<TickItem> | undefined) => sortBy(ticks, (o) => o.coordinate),
80
+ );
81
+
82
+ export const selectTooltipInteractionState: (
83
+ state: RechartsRootState,
84
+ tooltipEventType: TooltipEventType | undefined,
85
+ trigger: TooltipTrigger,
86
+ defaultIndex: TooltipIndex | undefined,
87
+ ) => TooltipInteractionState = createSelector(
88
+ [selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex],
89
+ combineTooltipInteractionState,
90
+ );
91
+
92
+ export const selectActiveIndex: (
93
+ state: RechartsRootState,
94
+ tooltipEventType: TooltipEventType | undefined,
95
+ trigger: TooltipTrigger,
96
+ defaultIndex: TooltipIndex | undefined,
97
+ ) => TooltipIndex | null = createSelector(
98
+ [
99
+ selectTooltipInteractionState,
100
+ selectTooltipDisplayedData,
101
+ selectTooltipAxisDataKey,
102
+ selectTooltipAxisDomain,
103
+ ],
104
+ combineActiveTooltipIndex,
105
+ );
106
+
107
+ export const selectTooltipDataKey = (
108
+ state: RechartsRootState,
109
+ tooltipEventType: TooltipEventType | undefined,
110
+ trigger: TooltipTrigger,
111
+ ): DataKey<any> | undefined => {
112
+ if (tooltipEventType == null) {
113
+ return undefined;
114
+ }
115
+ const tooltipState = selectTooltipState(state);
116
+ if (tooltipEventType === 'axis') {
117
+ if (trigger === 'hover') {
118
+ return tooltipState.axisInteraction.hover.dataKey;
119
+ }
120
+ return tooltipState.axisInteraction.click.dataKey;
121
+ }
122
+ if (trigger === 'hover') {
123
+ return tooltipState.itemInteraction.hover.dataKey;
124
+ }
125
+ return tooltipState.itemInteraction.click.dataKey;
126
+ };
127
+
128
+ export const selectTooltipPayloadConfigurations: (
129
+ state: RechartsRootState,
130
+ tooltipEventType: TooltipEventType | undefined,
131
+ trigger: TooltipTrigger,
132
+ defaultIndex: TooltipIndex | undefined,
133
+ ) => ReadonlyArray<TooltipPayloadConfiguration> = createSelector(
134
+ [selectTooltipState, pickTooltipEventType, pickTrigger, pickDefaultIndex],
135
+ combineTooltipPayloadConfigurations,
136
+ );
137
+
138
+ export const selectCoordinateForDefaultIndex: (
139
+ state: RechartsRootState,
140
+ tooltipEventType: TooltipEventType | undefined,
141
+ trigger: TooltipTrigger,
142
+ defaultIndex: TooltipIndex | undefined,
143
+ ) => Coordinate | undefined = createSelector(
144
+ [
145
+ selectChartWidth,
146
+ selectChartHeight,
147
+ selectChartLayout,
148
+ selectChartOffsetInternal,
149
+ selectTooltipAxisTicks,
150
+ pickDefaultIndex,
151
+ selectTooltipPayloadConfigurations,
152
+ ],
153
+ combineCoordinateForDefaultIndex,
154
+ );
155
+
156
+ export const selectActiveCoordinate: (
157
+ state: RechartsRootState,
158
+ tooltipEventType: TooltipEventType | undefined,
159
+ trigger: TooltipTrigger,
160
+ defaultIndex: TooltipIndex | undefined,
161
+ ) => Coordinate | undefined = createSelector(
162
+ [selectTooltipInteractionState, selectCoordinateForDefaultIndex],
163
+ (
164
+ tooltipInteractionState: TooltipInteractionState,
165
+ defaultIndexCoordinate: Coordinate | undefined,
166
+ ): Coordinate | undefined => {
167
+ return tooltipInteractionState.coordinate ?? defaultIndexCoordinate;
168
+ },
169
+ );
170
+
171
+ export const selectActiveLabel: (
172
+ state: RechartsRootState,
173
+ tooltipEventType: TooltipEventType | undefined,
174
+ trigger: TooltipTrigger,
175
+ defaultIndex: TooltipIndex | undefined,
176
+ ) => string | number | undefined = createSelector(
177
+ [selectTooltipAxisTicks, selectActiveIndex],
178
+ combineActiveLabel,
179
+ );
180
+
181
+ export const selectTooltipPayload: (
182
+ state: RechartsRootState,
183
+ tooltipEventType: TooltipEventType | undefined,
184
+ trigger: TooltipTrigger,
185
+ defaultIndex: TooltipIndex | undefined,
186
+ ) => TooltipPayload | undefined = createSelector(
187
+ [
188
+ selectTooltipPayloadConfigurations,
189
+ selectActiveIndex,
190
+ selectChartDataWithIndexes,
191
+ selectTooltipAxisDataKey,
192
+ selectActiveLabel,
193
+ selectTooltipPayloadSearcher,
194
+ pickTooltipEventType,
195
+ ],
196
+ combineTooltipPayload,
197
+ );
198
+
199
+ export const selectIsTooltipActive: (
200
+ state: RechartsRootState,
201
+ tooltipEventType: TooltipEventType | undefined,
202
+ trigger: TooltipTrigger,
203
+ defaultIndex: TooltipIndex | undefined,
204
+ ) => { isActive: boolean; activeIndex: TooltipIndex | null } = createSelector(
205
+ [selectTooltipInteractionState, selectActiveIndex],
206
+ (tooltipInteractionState: TooltipInteractionState, activeIndex: TooltipIndex | null) => {
207
+ return { isActive: tooltipInteractionState.active && activeIndex != null, activeIndex };
208
+ },
209
+ );
210
+
211
+ const combineActiveCartesianProps = (
212
+ chartEvent: RelativePointer | undefined,
213
+ layout: CartesianLayout,
214
+ tooltipAxisType: AxisType | undefined,
215
+ tooltipAxisRange: AxisRange | undefined,
216
+ tooltipTicks: ReadonlyArray<TickItem> | undefined,
217
+ orderedTooltipTicks: ReadonlyArray<TickItem> | undefined,
218
+ offset: ChartOffsetInternal,
219
+ ): ActiveTooltipProps | undefined => {
220
+ if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {
221
+ return undefined;
222
+ }
223
+ if (!isInCartesianRange(chartEvent, offset)) {
224
+ return undefined;
225
+ }
226
+ const pos: number | undefined = calculateCartesianTooltipPos(chartEvent, layout);
227
+
228
+ const activeIndex = calculateActiveTickIndex(
229
+ pos,
230
+ orderedTooltipTicks,
231
+ tooltipTicks,
232
+ tooltipAxisType,
233
+ tooltipAxisRange,
234
+ );
235
+
236
+ const activeCoordinate = getActiveCartesianCoordinate(
237
+ layout,
238
+ tooltipTicks,
239
+ activeIndex,
240
+ chartEvent,
241
+ );
242
+
243
+ return { activeIndex: String(activeIndex), activeCoordinate };
244
+ };
245
+
246
+ const combineActivePolarProps = (
247
+ chartEvent: RelativePointer | undefined,
248
+ layout: PolarLayout,
249
+ polarViewBox: PolarViewBoxRequired | undefined,
250
+ tooltipAxisType: AxisType | undefined,
251
+ tooltipAxisRange: AxisRange | undefined,
252
+ tooltipTicks: ReadonlyArray<TickItem> | undefined,
253
+ orderedTooltipTicks: ReadonlyArray<TickItem> | undefined,
254
+ ): ActiveTooltipProps | undefined => {
255
+ if (!chartEvent || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks || !polarViewBox) {
256
+ return undefined;
257
+ }
258
+ const rangeObj = inRangeOfSector(chartEvent, polarViewBox);
259
+ if (!rangeObj) {
260
+ return undefined;
261
+ }
262
+ const pos: number | undefined = calculatePolarTooltipPos(rangeObj, layout);
263
+
264
+ const activeIndex = calculateActiveTickIndex(
265
+ pos,
266
+ orderedTooltipTicks,
267
+ tooltipTicks,
268
+ tooltipAxisType,
269
+ tooltipAxisRange,
270
+ );
271
+
272
+ const activeCoordinate: PolarCoordinate = getActivePolarCoordinate(
273
+ layout,
274
+ tooltipTicks,
275
+ activeIndex,
276
+ rangeObj,
277
+ );
278
+
279
+ return { activeIndex: String(activeIndex), activeCoordinate };
280
+ };
281
+
282
+ export const combineActiveProps = (
283
+ chartEvent: RelativePointer | undefined,
284
+ layout: CartesianLayout | PolarLayout | undefined,
285
+ polarViewBox: PolarViewBoxRequired | undefined,
286
+ tooltipAxisType: AxisType | undefined,
287
+ tooltipAxisRange: AxisRange | undefined,
288
+ tooltipTicks: ReadonlyArray<TickItem> | undefined,
289
+ orderedTooltipTicks: ReadonlyArray<TickItem> | undefined,
290
+ offset: ChartOffsetInternal,
291
+ ): ActiveTooltipProps | undefined => {
292
+ if (!chartEvent || !layout || !tooltipAxisType || !tooltipAxisRange || !tooltipTicks) {
293
+ return undefined;
294
+ }
295
+ if (layout === 'horizontal' || layout === 'vertical') {
296
+ return combineActiveCartesianProps(
297
+ chartEvent,
298
+ layout,
299
+ tooltipAxisType,
300
+ tooltipAxisRange,
301
+ tooltipTicks,
302
+ orderedTooltipTicks,
303
+ offset,
304
+ );
305
+ }
306
+ return combineActivePolarProps(
307
+ chartEvent,
308
+ layout,
309
+ polarViewBox,
310
+ tooltipAxisType,
311
+ tooltipAxisRange,
312
+ tooltipTicks,
313
+ orderedTooltipTicks,
314
+ );
315
+ };