@octanejs/recharts 0.1.40 → 0.1.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. package/{LICENSE → LICENSE.recharts} +3 -2
  2. package/README.md +12 -0
  3. package/package.json +10 -9
  4. package/src/animation/AnimatedItems.tsrx +36 -3
  5. package/src/animation/AnimationController.ts +17 -65
  6. package/src/animation/{AnimationControllerImpl.js → AnimationControllerImpl.ts} +19 -12
  7. package/src/animation/{AnimationHandle.js → AnimationHandle.ts} +82 -65
  8. package/src/animation/CSSTransitionAnimate.tsrx +3 -2
  9. package/src/animation/JavascriptAnimate.tsrx +18 -2
  10. package/src/animation/easing.ts +235 -0
  11. package/src/animation/{matchBy.js → matchBy.ts} +76 -120
  12. package/src/animation/timeoutController.ts +71 -0
  13. package/src/animation/useAnimationController.ts +4 -1
  14. package/src/animation/useAnimationStartSnapshot.ts +3 -3
  15. package/src/animation/util.ts +12 -0
  16. package/src/cartesian/Area.tsrx +33 -31
  17. package/src/cartesian/AreaRevealShape.tsrx +4 -3
  18. package/src/cartesian/Bar.ts +1 -0
  19. package/src/cartesian/Bar.tsrx +293 -39
  20. package/src/cartesian/BarStack.tsrx +31 -9
  21. package/src/cartesian/CartesianAxis.tsrx +154 -22
  22. package/src/cartesian/CartesianGrid.tsrx +5 -6
  23. package/src/cartesian/ErrorBar.tsrx +9 -8
  24. package/src/cartesian/Funnel.tsrx +40 -37
  25. package/src/cartesian/GraphicalItemClipPath.tsrx +11 -4
  26. package/src/cartesian/Line.ts +1 -0
  27. package/src/cartesian/Line.tsrx +206 -28
  28. package/src/cartesian/LineDrawShape.tsrx +23 -10
  29. package/src/cartesian/ReferenceLine.tsrx +8 -8
  30. package/src/cartesian/Scatter.tsrx +61 -66
  31. package/src/cartesian/XAxis.tsrx +78 -9
  32. package/src/cartesian/YAxis.tsrx +85 -12
  33. package/src/cartesian/getCartesianPosition.ts +265 -0
  34. package/src/cartesian/getEquidistantTicks.ts +144 -0
  35. package/src/cartesian/getTicks.ts +221 -0
  36. package/src/chart/AreaChart.tsrx +5 -1
  37. package/src/chart/BarChart.tsrx +8 -2
  38. package/src/chart/CartesianChart.tsrx +17 -4
  39. package/src/chart/CategoricalChart.tsrx +4 -1
  40. package/src/chart/ComposedChart.tsrx +5 -1
  41. package/src/chart/FunnelChart.tsrx +5 -1
  42. package/src/chart/LineChart.tsrx +8 -2
  43. package/src/chart/PieChart.tsrx +6 -2
  44. package/src/chart/PolarChart.tsrx +5 -4
  45. package/src/chart/RadarChart.tsrx +6 -2
  46. package/src/chart/RadialBarChart.tsrx +6 -2
  47. package/src/chart/RechartsWrapper.tsrx +57 -21
  48. package/src/chart/Sankey.tsrx +89 -91
  49. package/src/chart/ScatterChart.tsrx +5 -1
  50. package/src/chart/SunburstChart.tsrx +21 -14
  51. package/src/chart/types.ts +0 -1
  52. package/src/component/ActivePoints.tsrx +30 -5
  53. package/src/component/Cell.ts +19 -1
  54. package/src/component/Cursor.tsrx +11 -10
  55. package/src/component/DefaultLegendContent.tsrx +15 -10
  56. package/src/component/DefaultTooltipContent.tsrx +11 -9
  57. package/src/component/Dots.tsrx +37 -6
  58. package/src/component/Label.tsrx +99 -19
  59. package/src/component/LabelList.tsrx +54 -5
  60. package/src/component/Legend.tsrx +9 -5
  61. package/src/component/ResponsiveContainer.tsrx +13 -10
  62. package/src/component/Text.tsrx +95 -32
  63. package/src/component/Tooltip.tsrx +11 -10
  64. package/src/component/TooltipBoundingBox.tsrx +4 -5
  65. package/src/component/{responsiveContainerUtils.js → responsiveContainerUtils.ts} +59 -36
  66. package/src/container/ClipPathProvider.tsrx +6 -2
  67. package/src/container/Layer.tsrx +8 -1
  68. package/src/container/RootSurface.tsrx +15 -4
  69. package/src/container/Surface.tsrx +15 -1
  70. package/src/context/CellsContext.ts +6 -5
  71. package/src/context/ErrorBarContext.tsrx +23 -4
  72. package/src/context/RegisterGraphicalItemId.tsrx +10 -2
  73. package/src/context/accessibilityContext.ts +5 -0
  74. package/src/context/brushUpdateContext.ts +11 -0
  75. package/src/context/chartDataContext.ts +5 -4
  76. package/src/context/chartLayoutContext.ts +22 -8
  77. package/src/context/legendPayloadContext.tsrx +1 -1
  78. package/src/context/tooltipContext.ts +83 -0
  79. package/src/{hooks.js → hooks.ts} +88 -66
  80. package/src/index.ts +37 -37
  81. package/src/internal.ts +4 -20
  82. package/src/legacy-props.ts +129 -0
  83. package/src/polar/Pie.tsrx +91 -69
  84. package/src/polar/PolarAngleAxis.tsrx +47 -47
  85. package/src/polar/PolarGrid.tsrx +7 -6
  86. package/src/polar/PolarRadiusAxis.tsrx +29 -21
  87. package/src/polar/Radar.tsrx +26 -19
  88. package/src/polar/RadialBar.tsrx +59 -42
  89. package/src/polar/{defaultPolarAngleAxisProps.js → defaultPolarAngleAxisProps.ts} +6 -6
  90. package/src/polar/{defaultPolarRadiusAxisProps.js → defaultPolarRadiusAxisProps.ts} +5 -4
  91. package/src/shape/Cross.tsrx +14 -2
  92. package/src/shape/Curve.tsrx +111 -23
  93. package/src/shape/Dot.tsrx +12 -1
  94. package/src/shape/Polygon.tsrx +28 -6
  95. package/src/shape/Rectangle.tsrx +30 -3
  96. package/src/shape/Sector.tsrx +48 -6
  97. package/src/shape/Symbols.tsrx +24 -6
  98. package/src/shape/Trapezoid.tsrx +33 -3
  99. package/src/state/RechartsStoreProvider.tsrx +11 -2
  100. package/src/state/ReportChartProps.ts +2 -2
  101. package/src/state/ReportMainChartProps.ts +2 -1
  102. package/src/state/SetGraphicalItem.ts +6 -4
  103. package/src/state/SetLegendPayload.ts +7 -4
  104. package/src/state/SetTooltipEntrySettings.ts +5 -2
  105. package/src/state/brushSlice.ts +40 -0
  106. package/src/state/cartesianAxisSlice.ts +291 -0
  107. package/src/state/chartDataSlice.ts +87 -0
  108. package/src/state/errorBarSlice.ts +78 -0
  109. package/src/state/eventSettingsSlice.ts +30 -0
  110. package/src/state/{externalEventsMiddleware.js → externalEventsMiddleware.ts} +55 -34
  111. package/src/state/graphicalItemsSlice.ts +180 -0
  112. package/src/state/{keyboardEventsMiddleware.js → keyboardEventsMiddleware.ts} +72 -57
  113. package/src/state/layoutSlice.ts +50 -0
  114. package/src/state/legendSlice.ts +109 -0
  115. package/src/state/{mouseEventsMiddleware.js → mouseEventsMiddleware.ts} +45 -35
  116. package/src/state/optionsSlice.ts +65 -0
  117. package/src/state/polarAxisSlice.ts +42 -0
  118. package/src/state/polarOptionsSlice.ts +43 -0
  119. package/src/state/reduxDevtoolsJsonStringifyReplacer.ts +13 -0
  120. package/src/state/referenceElementsSlice.ts +100 -0
  121. package/src/state/renderedTicksSlice.ts +60 -0
  122. package/src/state/rootPropsSlice.ts +72 -0
  123. package/src/state/selectors/areaSelectors.ts +1 -2
  124. package/src/state/selectors/{arrayEqualityCheck.js → arrayEqualityCheck.ts} +4 -5
  125. package/src/state/selectors/axisSelectors.ts +2502 -0
  126. package/src/state/selectors/barSelectors.ts +373 -0
  127. package/src/state/selectors/barStackSelectors.ts +99 -0
  128. package/src/state/selectors/brushSelectors.ts +28 -0
  129. package/src/state/selectors/combiners/combineActiveLabel.ts +16 -0
  130. package/src/state/selectors/combiners/{combineActiveTooltipIndex.js → combineActiveTooltipIndex.ts} +45 -23
  131. package/src/state/selectors/combiners/combineAllBarPositions.ts +130 -0
  132. package/src/state/selectors/combiners/combineAxisRangeWithReverse.ts +16 -0
  133. package/src/state/selectors/combiners/combineBarPosition.ts +23 -0
  134. package/src/state/selectors/combiners/combineBarSizeList.ts +79 -0
  135. package/src/state/selectors/combiners/{combineCheckedDomain.js → combineCheckedDomain.ts} +9 -6
  136. package/src/state/selectors/combiners/combineConfiguredScale.ts +100 -0
  137. package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.ts +46 -0
  138. package/src/state/selectors/combiners/{combineDisplayedStackedData.js → combineDisplayedStackedData.ts} +23 -19
  139. package/src/state/selectors/combiners/combineInverseScaleFunction.ts +16 -0
  140. package/src/state/selectors/combiners/{combineRealScaleType.js → combineRealScaleType.ts} +16 -8
  141. package/src/state/selectors/combiners/combineStackedData.ts +27 -0
  142. package/src/state/selectors/combiners/combineTooltipInteractionState.ts +86 -0
  143. package/src/state/selectors/combiners/combineTooltipPayload.ts +201 -0
  144. package/src/state/selectors/combiners/{combineTooltipPayloadConfigurations.js → combineTooltipPayloadConfigurations.ts} +17 -18
  145. package/src/state/selectors/containerSelectors.ts +12 -0
  146. package/src/state/selectors/{dataSelectors.js → dataSelectors.ts} +43 -41
  147. package/src/state/selectors/funnelSelectors.ts +5 -5
  148. package/src/state/selectors/graphicalItemSelectors.ts +22 -0
  149. package/src/state/selectors/legendSelectors.ts +25 -0
  150. package/src/state/selectors/lineSelectors.ts +159 -0
  151. package/src/state/selectors/numberDomainEqualityCheck.ts +15 -0
  152. package/src/state/selectors/pickAxisId.ts +6 -0
  153. package/src/state/selectors/pickAxisType.ts +4 -0
  154. package/src/state/selectors/pieSelectors.ts +14 -13
  155. package/src/state/selectors/polarAxisSelectors.ts +223 -0
  156. package/src/state/selectors/polarSelectors.ts +1 -1
  157. package/src/state/selectors/radarSelectors.ts +1 -1
  158. package/src/state/selectors/radialBarSelectors.ts +17 -16
  159. package/src/state/selectors/rootPropsSelectors.ts +26 -0
  160. package/src/state/selectors/scatterSelectors.ts +11 -10
  161. package/src/state/selectors/{selectActivePropsFromChartPointer.js → selectActivePropsFromChartPointer.ts} +11 -4
  162. package/src/state/selectors/selectAllAxes.ts +20 -0
  163. package/src/state/selectors/selectChartOffset.ts +17 -0
  164. package/src/state/selectors/selectChartOffsetInternal.ts +147 -0
  165. package/src/state/selectors/{selectPlotArea.js → selectPlotArea.ts} +4 -3
  166. package/src/state/selectors/selectTooltipAxisId.ts +6 -0
  167. package/src/state/selectors/{selectTooltipAxisType.js → selectTooltipAxisType.ts} +10 -4
  168. package/src/state/selectors/selectTooltipEventType.ts +39 -0
  169. package/src/state/selectors/selectTooltipPayloadSearcher.ts +6 -0
  170. package/src/state/selectors/selectTooltipSettings.ts +6 -0
  171. package/src/state/selectors/selectTooltipState.ts +5 -0
  172. package/src/state/selectors/selectors.ts +315 -0
  173. package/src/state/selectors/tooltipSelectors.ts +611 -0
  174. package/src/state/selectors/touchSelectors.ts +52 -0
  175. package/src/state/{store.js → store.ts} +46 -36
  176. package/src/state/tooltipSlice.ts +507 -0
  177. package/src/state/{touchEventsMiddleware.js → touchEventsMiddleware.ts} +54 -42
  178. package/src/state/types/AreaSettings.ts +15 -0
  179. package/src/state/types/BarSettings.ts +15 -0
  180. package/src/state/types/LineSettings.ts +10 -0
  181. package/src/state/types/PieSettings.ts +32 -0
  182. package/src/state/types/RadarSettings.ts +6 -0
  183. package/src/state/types/RadialBarSettings.ts +10 -0
  184. package/src/state/types/ScatterSettings.ts +13 -0
  185. package/src/state/types/StackedGraphicalItem.ts +34 -0
  186. package/src/state/zIndexSlice.ts +137 -0
  187. package/src/synchronisation/syncSelectors.ts +7 -0
  188. package/src/synchronisation/types.ts +42 -0
  189. package/src/synchronisation/useChartSynchronisation.tsrx +26 -11
  190. package/src/types.ts +55 -0
  191. package/src/util/ActiveShapeUtils.tsrx +34 -10
  192. package/src/util/BarUtils.tsrx +43 -3
  193. package/src/util/{CartesianUtils.js → CartesianUtils.ts} +22 -39
  194. package/src/util/ChartUtils.ts +759 -0
  195. package/src/util/{Constants.js → Constants.ts} +6 -6
  196. package/src/util/DOMUtils.ts +135 -0
  197. package/src/util/{DataUtils.js → DataUtils.ts} +120 -47
  198. package/src/util/Events.ts +22 -0
  199. package/src/util/FunnelUtils.tsrx +3 -3
  200. package/src/util/Global.ts +13 -0
  201. package/src/util/IfOverflow.ts +16 -0
  202. package/src/util/LRUCache.ts +42 -0
  203. package/src/util/{LogUtils.js → LogUtils.ts} +7 -12
  204. package/src/util/OctaneTypes.ts +51 -0
  205. package/src/util/PolarUtils.ts +132 -0
  206. package/src/util/RadialBarUtils.tsrx +3 -3
  207. package/src/util/ReduceCSSCalc.ts +186 -0
  208. package/src/util/ScatterUtils.tsrx +9 -7
  209. package/src/util/{TickUtils.js → TickUtils.ts} +30 -13
  210. package/src/util/{YAxisUtils.js → YAxisUtils.ts} +27 -17
  211. package/src/util/axisPropsAreEqual.ts +49 -0
  212. package/src/util/createEventProxy.ts +20 -0
  213. package/src/util/{excludeEventProps.js → excludeEventProps.ts} +8 -6
  214. package/src/util/getActiveCoordinate.ts +210 -0
  215. package/src/util/{getAxisTypeBasedOnLayout.js → getAxisTypeBasedOnLayout.ts} +7 -3
  216. package/src/util/getClassNameFromUnknown.ts +7 -0
  217. package/src/util/{getEveryNth.js → getEveryNth.ts} +5 -6
  218. package/src/util/getRadiusAndStrokeWidthFromDot.ts +31 -0
  219. package/src/util/{getRelativeCoordinate.js → getRelativeCoordinate.ts} +26 -9
  220. package/src/util/getSliced.ts +14 -0
  221. package/src/util/{isDomainSpecifiedByUser.js → isDomainSpecifiedByUser.ts} +46 -100
  222. package/src/util/isWellBehavedNumber.ts +8 -0
  223. package/src/util/payload/getUniqPayload.ts +1 -1
  224. package/src/util/{propsAreEqual.js → propsAreEqual.ts} +10 -8
  225. package/src/util/{resolveDefaultProps.js → resolveDefaultProps.ts} +35 -57
  226. package/src/util/round.ts +33 -0
  227. package/src/util/scale/CustomScaleDefinition.ts +82 -0
  228. package/src/util/scale/RechartsScale.ts +131 -0
  229. package/src/util/scale/{createCategoricalInverse.js → createCategoricalInverse.ts} +24 -29
  230. package/src/util/scale/{getNiceTickValues.js → getNiceTickValues.ts} +125 -146
  231. package/src/util/scale/index.ts +2 -0
  232. package/src/util/scale/util/{arithmetic.js → arithmetic.ts} +12 -8
  233. package/src/util/stacks/getStackSeriesIdentifier.ts +21 -0
  234. package/src/util/stacks/stackTypes.ts +58 -0
  235. package/src/util/{svgPropertiesNoEvents.js → svgPropertiesNoEvents.ts} +52 -27
  236. package/src/util/tooltip/translate.ts +2 -1
  237. package/src/util/typedDataKey.ts +49 -0
  238. package/src/util/types.ts +1265 -7
  239. package/src/util/{useUniqueId.js → useUniqueId.ts} +9 -5
  240. package/src/zIndex/{DefaultZIndexes.js → DefaultZIndexes.ts} +13 -4
  241. package/src/zIndex/ZIndexLayer.tsrx +13 -4
  242. package/src/zIndex/ZIndexPortal.tsrx +14 -4
  243. package/src/zIndex/{getZIndexFromUnknown.js → getZIndexFromUnknown.ts} +3 -3
  244. package/src/zIndex/{zIndexSelectors.js → zIndexSelectors.ts} +17 -11
  245. package/src/animation/easing.js +0 -193
  246. package/src/animation/timeoutController.js +0 -49
  247. package/src/animation/util.js +0 -11
  248. package/src/cartesian/Area.tsrx.d.ts +0 -340
  249. package/src/cartesian/Bar.tsrx.d.ts +0 -4
  250. package/src/cartesian/BarStack.tsrx.d.ts +0 -6
  251. package/src/cartesian/CartesianAxis.tsrx.d.ts +0 -3
  252. package/src/cartesian/CartesianGrid.tsrx.d.ts +0 -219
  253. package/src/cartesian/ErrorBar.tsrx.d.ts +0 -131
  254. package/src/cartesian/Funnel.tsrx.d.ts +0 -274
  255. package/src/cartesian/Line.tsrx.d.ts +0 -4
  256. package/src/cartesian/LineDrawShape.tsrx.d.ts +0 -2
  257. package/src/cartesian/ReferenceLine.tsrx.d.ts +0 -178
  258. package/src/cartesian/Scatter.tsrx.d.ts +0 -351
  259. package/src/cartesian/XAxis.tsrx.d.ts +0 -3
  260. package/src/cartesian/YAxis.tsrx.d.ts +0 -3
  261. package/src/cartesian/ZAxis.tsrx.d.ts +0 -102
  262. package/src/cartesian/getCartesianPosition.js +0 -277
  263. package/src/cartesian/getEquidistantTicks.js +0 -133
  264. package/src/cartesian/getTicks.js +0 -280
  265. package/src/chart/AreaChart.tsrx.d.ts +0 -12
  266. package/src/chart/BarChart.tsrx.d.ts +0 -2
  267. package/src/chart/CartesianChart.tsrx.d.ts +0 -10
  268. package/src/chart/ComposedChart.tsrx.d.ts +0 -12
  269. package/src/chart/FunnelChart.tsrx.d.ts +0 -12
  270. package/src/chart/LineChart.tsrx.d.ts +0 -2
  271. package/src/chart/PieChart.tsrx.d.ts +0 -31
  272. package/src/chart/RadarChart.tsrx.d.ts +0 -31
  273. package/src/chart/RadialBarChart.tsrx.d.ts +0 -31
  274. package/src/chart/Sankey.tsrx.d.ts +0 -253
  275. package/src/chart/ScatterChart.tsrx.d.ts +0 -12
  276. package/src/chart/SunburstChart.tsrx.d.ts +0 -146
  277. package/src/component/DefaultLegendContent.tsrx.d.ts +0 -125
  278. package/src/component/DefaultTooltipContent.tsrx.d.ts +0 -87
  279. package/src/component/Label.tsrx.d.ts +0 -12
  280. package/src/component/LabelList.tsrx.d.ts +0 -8
  281. package/src/component/Legend.tsrx.d.ts +0 -88
  282. package/src/component/ResponsiveContainer.tsrx.d.ts +0 -81
  283. package/src/component/Text.tsrx.d.ts +0 -9
  284. package/src/component/Tooltip.tsrx.d.ts +0 -246
  285. package/src/container/Layer.tsrx.d.ts +0 -6
  286. package/src/container/Surface.tsrx.d.ts +0 -12
  287. package/src/context/accessibilityContext.js +0 -10
  288. package/src/context/tooltipContext.js +0 -55
  289. package/src/index.d.ts +0 -281
  290. package/src/polar/Pie.tsrx.d.ts +0 -436
  291. package/src/polar/PolarAngleAxis.tsrx.d.ts +0 -215
  292. package/src/polar/PolarGrid.tsrx.d.ts +0 -117
  293. package/src/polar/PolarRadiusAxis.tsrx.d.ts +0 -209
  294. package/src/polar/Radar.tsrx.d.ts +0 -215
  295. package/src/polar/RadialBar.tsrx.d.ts +0 -340
  296. package/src/shape/Cross.tsrx.d.ts +0 -12
  297. package/src/shape/Curve.tsrx.d.ts +0 -42
  298. package/src/shape/Dot.tsrx.d.ts +0 -9
  299. package/src/shape/Polygon.tsrx.d.ts +0 -13
  300. package/src/shape/Rectangle.tsrx.d.ts +0 -31
  301. package/src/shape/Sector.tsrx.d.ts +0 -29
  302. package/src/shape/Symbols.tsrx.d.ts +0 -15
  303. package/src/shape/Trapezoid.tsrx.d.ts +0 -29
  304. package/src/state/brushSlice.js +0 -36
  305. package/src/state/cartesianAxisSlice.js +0 -256
  306. package/src/state/chartDataSlice.js +0 -67
  307. package/src/state/errorBarSlice.js +0 -53
  308. package/src/state/eventSettingsSlice.js +0 -25
  309. package/src/state/graphicalItemsSlice.js +0 -91
  310. package/src/state/layoutSlice.js +0 -57
  311. package/src/state/legendSlice.js +0 -83
  312. package/src/state/optionsSlice.js +0 -45
  313. package/src/state/polarAxisSlice.js +0 -33
  314. package/src/state/polarOptionsSlice.js +0 -26
  315. package/src/state/reduxDevtoolsJsonStringifyReplacer.js +0 -14
  316. package/src/state/referenceElementsSlice.js +0 -51
  317. package/src/state/renderedTicksSlice.js +0 -41
  318. package/src/state/rootPropsSlice.js +0 -48
  319. package/src/state/selectors/axisSelectors.js +0 -2113
  320. package/src/state/selectors/barSelectors.js +0 -263
  321. package/src/state/selectors/barStackSelectors.js +0 -65
  322. package/src/state/selectors/brushSelectors.js +0 -21
  323. package/src/state/selectors/combiners/combineActiveLabel.js +0 -18
  324. package/src/state/selectors/combiners/combineAllBarPositions.js +0 -169
  325. package/src/state/selectors/combiners/combineAxisRangeWithReverse.js +0 -11
  326. package/src/state/selectors/combiners/combineBarPosition.js +0 -17
  327. package/src/state/selectors/combiners/combineBarSizeList.js +0 -115
  328. package/src/state/selectors/combiners/combineConfiguredScale.js +0 -46
  329. package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.js +0 -48
  330. package/src/state/selectors/combiners/combineInverseScaleFunction.js +0 -12
  331. package/src/state/selectors/combiners/combineStackedData.js +0 -22
  332. package/src/state/selectors/combiners/combineTooltipInteractionState.js +0 -121
  333. package/src/state/selectors/combiners/combineTooltipPayload.js +0 -248
  334. package/src/state/selectors/containerSelectors.js +0 -6
  335. package/src/state/selectors/graphicalItemSelectors.js +0 -25
  336. package/src/state/selectors/legendSelectors.js +0 -18
  337. package/src/state/selectors/lineSelectors.js +0 -106
  338. package/src/state/selectors/numberDomainEqualityCheck.js +0 -11
  339. package/src/state/selectors/pickAxisId.js +0 -3
  340. package/src/state/selectors/pickAxisType.js +0 -3
  341. package/src/state/selectors/polarAxisSelectors.js +0 -237
  342. package/src/state/selectors/rootPropsSelectors.js +0 -13
  343. package/src/state/selectors/selectAllAxes.js +0 -15
  344. package/src/state/selectors/selectChartOffset.js +0 -12
  345. package/src/state/selectors/selectChartOffsetInternal.js +0 -174
  346. package/src/state/selectors/selectTooltipAxisId.js +0 -3
  347. package/src/state/selectors/selectTooltipEventType.js +0 -27
  348. package/src/state/selectors/selectTooltipPayloadSearcher.js +0 -3
  349. package/src/state/selectors/selectTooltipSettings.js +0 -3
  350. package/src/state/selectors/selectTooltipState.js +0 -3
  351. package/src/state/selectors/selectors.js +0 -222
  352. package/src/state/selectors/tooltipSelectors.js +0 -471
  353. package/src/state/selectors/touchSelectors.js +0 -31
  354. package/src/state/tooltipSlice.js +0 -237
  355. package/src/state/types/StackedGraphicalItem.js +0 -18
  356. package/src/state/zIndexSlice.js +0 -167
  357. package/src/synchronisation/syncSelectors.js +0 -5
  358. package/src/util/ChartUtils.js +0 -630
  359. package/src/util/DOMUtils.js +0 -180
  360. package/src/util/Events.js +0 -7
  361. package/src/util/Global.js +0 -13
  362. package/src/util/LRUCache.js +0 -58
  363. package/src/util/PolarUtils.js +0 -190
  364. package/src/util/ReduceCSSCalc.js +0 -260
  365. package/src/util/axisPropsAreEqual.js +0 -63
  366. package/src/util/createEventProxy.js +0 -18
  367. package/src/util/getActiveCoordinate.js +0 -253
  368. package/src/util/getClassNameFromUnknown.js +0 -8
  369. package/src/util/getRadiusAndStrokeWidthFromDot.js +0 -28
  370. package/src/util/getSliced.js +0 -11
  371. package/src/util/isWellBehavedNumber.js +0 -8
  372. package/src/util/round.js +0 -39
  373. package/src/util/scale/RechartsScale.js +0 -68
  374. package/src/util/scale/index.js +0 -3
  375. package/src/util/stacks/getStackSeriesIdentifier.js +0 -10
  376. package/src/zIndex/ZIndexLayer.tsrx.d.ts +0 -2
@@ -1,5 +1,4 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/useUniqueId.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 { useId } from './useId';
4
3
 
5
4
  /**
@@ -12,12 +11,12 @@ import { useId } from './useId';
12
11
  * @param [customId] - An optional custom ID to override the generated one.
13
12
  * @returns The unique ID.
14
13
  */
15
- export function useUniqueId(prefix, customId) {
14
+ export function useUniqueId(prefix?: string, customId?: string): string {
16
15
  /*
17
16
  * We have to call this hook here even if we don't use the result because
18
17
  * rules of hooks demand that hooks are never called conditionally.
19
18
  */
20
- var generatedId = useId();
19
+ const generatedId = useId();
21
20
 
22
21
  // If a custom ID is provided, it always takes precedence.
23
22
  if (customId) {
@@ -25,10 +24,15 @@ export function useUniqueId(prefix, customId) {
25
24
  }
26
25
 
27
26
  // Apply the prefix if one was provided.
28
- return prefix ? ''.concat(prefix, '-').concat(generatedId) : generatedId;
27
+ return prefix ? `${prefix}-${generatedId}` : generatedId;
29
28
  }
30
29
 
31
30
  /**
32
31
  * The useUniqueId hook returns a unique ID that is either reused from external props or generated internally.
33
32
  * Either way the ID is now guaranteed to be present so no more nulls or undefined.
34
33
  */
34
+ export type WithIdRequired<T> = T & {
35
+ id: string;
36
+ };
37
+
38
+ export type WithoutId<T> = Omit<T, 'id'>;
@@ -1,11 +1,10 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/zIndex/DefaultZIndexes.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
  /**
4
3
  * A collection of all default zIndex values used by Recharts.
5
4
  *
6
5
  * You can reuse these, or you can define your own.
7
6
  */
8
- export var DefaultZIndexes = {
7
+ export const DefaultZIndexes = {
9
8
  /**
10
9
  * CartesianGrid and PolarGrid
11
10
  */
@@ -15,6 +14,7 @@ export var DefaultZIndexes = {
15
14
  * This is not visible by default but can be enabled by setting background={true} on Bar or RadialBar.
16
15
  */
17
16
  barBackground: -50,
17
+
18
18
  /*
19
19
  * other chart elements or custom elements without specific zIndex
20
20
  * render in here, at zIndex 0
@@ -24,6 +24,7 @@ export var DefaultZIndexes = {
24
24
  * Area, Pie, Radar, and ReferenceArea
25
25
  */
26
26
  area: 100,
27
+
27
28
  /**
28
29
  * Cursor is embedded inside Tooltip and controlled by it.
29
30
  * The Tooltip itself has a separate portal and is not included in the zIndex system;
@@ -31,27 +32,33 @@ export var DefaultZIndexes = {
31
32
  * It renders below bar so that in a stacked bar chart the cursor rectangle does not hide the other bars.
32
33
  */
33
34
  cursorRectangle: 200,
35
+
34
36
  /**
35
37
  * Bar and RadialBar
36
38
  */
37
39
  bar: 300,
40
+
38
41
  /**
39
42
  * Line and ReferenceLine, and ErrorBor
40
43
  */
41
44
  line: 400,
45
+
42
46
  /**
43
47
  * XAxis and YAxis and PolarAngleAxis and PolarRadiusAxis ticks and lines and children
44
48
  */
45
49
  axis: 500,
50
+
46
51
  /**
47
52
  * Scatter and ReferenceDot,
48
53
  * and Dots of Line and Area and Radar if they have dot=true
49
54
  */
50
55
  scatter: 600,
56
+
51
57
  /**
52
58
  * Hovering over a Bar or RadialBar renders a highlight rectangle
53
59
  */
54
60
  activeBar: 1000,
61
+
55
62
  /**
56
63
  * Cursor is embedded inside Tooltip and controlled by it.
57
64
  * The Tooltip itself has a separate portal and is not included in the zIndex system;
@@ -64,12 +71,14 @@ export var DefaultZIndexes = {
64
71
  * This also applies to the radial cursor in RadialBarChart.
65
72
  */
66
73
  cursorLine: 1100,
74
+
67
75
  /**
68
76
  * Hovering over a Point in Line, Area, Scatter, Radar renders a highlight dot
69
77
  */
70
78
  activeDot: 1200,
79
+
71
80
  /**
72
81
  * LabelList and Label, including Axis labels
73
82
  */
74
83
  label: 2000,
75
- };
84
+ } as const satisfies Record<string, number>;
@@ -1,3 +1,12 @@
1
+ import type { OctaneNode } from '../util/OctaneTypes.ts';
2
+
3
+ export interface ZIndexable {
4
+ zIndex?: number;
5
+ }
6
+ type ZIndexLayerProps = {
7
+ zIndex: number | undefined;
8
+ children?: OctaneNode;
9
+ };
1
10
  // Port of zIndex/ZIndexLayer.tsx — renders children into the redux-registered
2
11
  // <g> for the given zIndex via an octane portal (SVG has no CSS z-index).
3
12
  // Registration is deferred-cleanup: while a zIndex changes, the old portal
@@ -10,7 +19,7 @@ import { useIsInChartContext } from '../context/chartLayoutContext.ts';
10
19
  import { useIsPanorama } from '../context/PanoramaContext.ts';
11
20
 
12
21
  /** @since 3.4 */
13
- export function ZIndexLayer(props) {
22
+ export function ZIndexLayer(props: ZIndexLayerProps) {
14
23
  const { zIndex, children } = props;
15
24
  // Outside a chart there is no zIndex portal state — render normally.
16
25
  const isInChartContext = useIsInChartContext();
@@ -20,10 +29,10 @@ export function ZIndexLayer(props) {
20
29
 
21
30
  // Deferred-cleanup bookkeeping: every registered zIndex, plus the last valid
22
31
  // portal node to keep rendering into during a zIndex transition.
23
- const lastPortalElementRef = useRef(undefined);
24
- const registeredZIndexesRef = useRef(new Set());
32
+ const lastPortalElementRef = useRef<Element | undefined>(undefined);
33
+ const registeredZIndexesRef = useRef(new Set<number>());
25
34
  const dispatch = useAppDispatch();
26
- const portalElement = useAppSelector(
35
+ const portalElement: Element | undefined = useAppSelector(
27
36
  (state) => selectZIndexPortalElement(state, zIndex, isPanorama),
28
37
  );
29
38
 
@@ -1,3 +1,5 @@
1
+ import type { OctaneNode } from '../util/OctaneTypes.ts';
2
+
1
3
  // Port of zIndex/ZIndexPortal.tsx — SVG cannot use CSS z-index, so recharts
2
4
  // renders one <g> per registered zIndex (negatives before the default layer,
3
5
  // positives after) and ZIndexLayer portals content into them.
@@ -6,9 +8,12 @@ import { useAppDispatch, useAppSelector } from '../state/hooks';
6
8
  import { registerZIndexPortalElement, unregisterZIndexPortalElement } from '../state/zIndexSlice';
7
9
  import { selectAllRegisteredZIndexes } from './zIndexSelectors';
8
10
 
9
- function ZIndexSvgPortal(props) {
11
+ function ZIndexSvgPortal(props: {
12
+ zIndex: number;
13
+ isPanorama: boolean;
14
+ }) {
10
15
  const { zIndex, isPanorama } = props;
11
- const ref = useRef(null);
16
+ const ref = useRef<SVGGElement | null>(null);
12
17
  const dispatch = useAppDispatch();
13
18
  useLayoutEffect(() => {
14
19
  if (ref.current) {
@@ -22,9 +27,14 @@ function ZIndexSvgPortal(props) {
22
27
  return <g tabIndex={-1} ref={ref} className={'recharts-zIndex-layer_' + zIndex}></g>;
23
28
  }
24
29
 
25
- export function AllZIndexPortals(props) @{
30
+ export function AllZIndexPortals(props: {
31
+ children?: OctaneNode;
32
+ isPanorama: boolean;
33
+ }) @{
26
34
  const { children, isPanorama } = props;
27
- const allRegisteredZIndexes = useAppSelector(selectAllRegisteredZIndexes);
35
+ const allRegisteredZIndexes: ReadonlyArray<number> | undefined = useAppSelector(
36
+ selectAllRegisteredZIndexes,
37
+ );
28
38
  if (!allRegisteredZIndexes || allRegisteredZIndexes.length === 0) {
29
39
  return children;
30
40
  }
@@ -1,7 +1,7 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/zIndex/getZIndexFromUnknown.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 { isWellBehavedNumber } from '../util/isWellBehavedNumber';
4
- export function getZIndexFromUnknown(input, defaultZIndex) {
3
+
4
+ export function getZIndexFromUnknown(input: unknown, defaultZIndex: number): number {
5
5
  if (
6
6
  input &&
7
7
  typeof input === 'object' &&
@@ -1,7 +1,8 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/zIndex/zIndexSelectors.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';
3
+ import { RechartsRootState } from '../state/store';
4
4
  import { arrayContentsAreEqualCheck } from '../state/selectors/arrayEqualityCheck';
5
+
5
6
  import { DefaultZIndexes } from './DefaultZIndexes';
6
7
 
7
8
  /**
@@ -10,15 +11,19 @@ import { DefaultZIndexes } from './DefaultZIndexes';
10
11
  *
11
12
  * It also returns undefined in case the z-index portal has not been rendered yet.
12
13
  */
13
- export var selectZIndexPortalElement = createSelector(
14
- (state) => state.zIndex.zIndexMap,
15
- (_, zIndex) => zIndex,
16
- (_, _zIndex, isPanorama) => isPanorama,
14
+ export const selectZIndexPortalElement: (
15
+ state: RechartsRootState,
16
+ zIndex: number | undefined,
17
+ isPanorama: boolean,
18
+ ) => Element | undefined = createSelector(
19
+ (state: RechartsRootState) => state.zIndex.zIndexMap,
20
+ (_: RechartsRootState, zIndex: number | undefined) => zIndex,
21
+ (_: RechartsRootState, _zIndex: number | undefined, isPanorama: boolean) => isPanorama,
17
22
  (zIndexMap, zIndex, isPanorama) => {
18
23
  if (zIndex == null) {
19
24
  return undefined;
20
25
  }
21
- var entry = zIndexMap[zIndex];
26
+ const entry = zIndexMap[zIndex];
22
27
  if (entry == null) {
23
28
  return undefined;
24
29
  }
@@ -28,13 +33,14 @@ export var selectZIndexPortalElement = createSelector(
28
33
  return entry.element;
29
34
  },
30
35
  );
31
- export var selectAllRegisteredZIndexes = createSelector(
32
- (state) => state.zIndex.zIndexMap,
36
+
37
+ export const selectAllRegisteredZIndexes = createSelector(
38
+ (state: RechartsRootState) => state.zIndex.zIndexMap,
33
39
  (zIndexMap) => {
34
- var allNumbers = Object.keys(zIndexMap)
40
+ const allNumbers = Object.keys(zIndexMap)
35
41
  .map((zIndexStr) => parseInt(zIndexStr, 10))
36
42
  .concat(Object.values(DefaultZIndexes));
37
- var uniqueNumbers = Array.from(new Set(allNumbers));
43
+ const uniqueNumbers = Array.from(new Set(allNumbers));
38
44
  return uniqueNumbers.sort((a, b) => a - b);
39
45
  },
40
46
  {
@@ -1,193 +0,0 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/animation/easing.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- export var ACCURACY = 1e-4;
4
- var cubicBezierFactor = (c1, c2) => [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];
5
- var evaluatePolynomial = (params, animationElapsedTime) =>
6
- params.map((param, i) => param * animationElapsedTime ** i).reduce((pre, curr) => pre + curr);
7
- var cubicBezier = (c1, c2) => (animationElapsedTime) => {
8
- var params = cubicBezierFactor(c1, c2);
9
- return evaluatePolynomial(params, animationElapsedTime);
10
- };
11
- var derivativeCubicBezier = (c1, c2) => (animationElapsedTime) => {
12
- var params = cubicBezierFactor(c1, c2);
13
- var newParams = [...params.map((param, i) => param * i).slice(1), 0];
14
- return evaluatePolynomial(newParams, animationElapsedTime);
15
- };
16
- var parseCubicBezier = (easing) => {
17
- var _easingParts$;
18
- var easingParts = easing.split('(');
19
- if (easingParts.length !== 2 || easingParts[0] !== 'cubic-bezier') {
20
- return null;
21
- }
22
- var numbers =
23
- (_easingParts$ = easingParts[1]) === null ||
24
- _easingParts$ === void 0 ||
25
- (_easingParts$ = _easingParts$.split(')')[0]) === null ||
26
- _easingParts$ === void 0
27
- ? void 0
28
- : _easingParts$.split(',');
29
- if (numbers == null || numbers.length !== 4) {
30
- return null;
31
- }
32
- var coords = numbers.map((x) => parseFloat(x));
33
- return [coords[0], coords[1], coords[2], coords[3]];
34
- };
35
- var getBezierCoordinates = function getBezierCoordinates() {
36
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
37
- args[_key] = arguments[_key];
38
- }
39
- if (args.length === 1) {
40
- switch (args[0]) {
41
- case 'linear':
42
- return [0.0, 0.0, 1.0, 1.0];
43
- case 'ease':
44
- return [0.25, 0.1, 0.25, 1.0];
45
- case 'ease-in':
46
- return [0.42, 0.0, 1.0, 1.0];
47
- case 'ease-out':
48
- return [0.42, 0.0, 0.58, 1.0];
49
- case 'ease-in-out':
50
- return [0.0, 0.0, 0.58, 1.0];
51
- default: {
52
- var easing = parseCubicBezier(args[0]);
53
- if (easing) {
54
- return easing;
55
- }
56
- }
57
- }
58
- }
59
- if (args.length === 4) {
60
- return args;
61
- }
62
-
63
- // Fallback for invalid inputs. The previous implementation was buggy and would lead to NaN.
64
- // Returning linear easing is a safe default.
65
- return [0.0, 0.0, 1.0, 1.0];
66
- };
67
- var createBezierEasing = (x1, y1, x2, y2) => {
68
- var curveX = cubicBezier(x1, x2);
69
- var curveY = cubicBezier(y1, y2);
70
- var derCurveX = derivativeCubicBezier(x1, x2);
71
- var rangeValue = (value) => {
72
- if (value > 1) {
73
- return 1;
74
- }
75
- if (value < 0) {
76
- return 0;
77
- }
78
- return value;
79
- };
80
- var bezier = (_animationElapsedTime) => {
81
- var animationElapsedTime = _animationElapsedTime > 1 ? 1 : _animationElapsedTime;
82
- var x = animationElapsedTime;
83
- for (var i = 0; i < 8; ++i) {
84
- var evalT = curveX(x) - animationElapsedTime;
85
- var derVal = derCurveX(x);
86
- if (Math.abs(evalT - animationElapsedTime) < ACCURACY || derVal < ACCURACY) {
87
- return curveY(x);
88
- }
89
- x = rangeValue(x - evalT / derVal);
90
- }
91
- return curveY(x);
92
- };
93
- bezier.isStepper = false;
94
- return bezier;
95
- };
96
-
97
- // calculate cubic-bezier using Newton's method
98
- export var configBezier = function configBezier() {
99
- return createBezierEasing(...getBezierCoordinates(...arguments));
100
- };
101
- /**
102
- * Creates a performance-optimized, progress-based spring easing function.
103
- * It pre-calculates ("bakes") spring physics frames upfront based on a fixed duration,
104
- * then returns a pure, lightweight function mapping progress (0 to 1) to the animated position.
105
- * This approach is ideal for low-power devices because it removes heavy physics math from the frame loop.
106
- */
107
- export var createSpringEasing = function createSpringEasing() {
108
- var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
109
- var _config$stiff = config.stiff,
110
- stiff = _config$stiff === void 0 ? 100 : _config$stiff,
111
- _config$damping = config.damping,
112
- damping = _config$damping === void 0 ? 8 : _config$damping,
113
- _config$dt = config.dt,
114
- dt = _config$dt === void 0 ? 16.67 : _config$dt;
115
- var destX = 1;
116
- var positions = [0];
117
- var currX = 0;
118
- var currV = 0;
119
-
120
- // Safety valve to prevent accidental infinite loops if physics config is extreme
121
- var maxIterations = 10000;
122
- var iterations = 0;
123
-
124
- // 1. Run the simulation until the spring completely stops moving
125
- while (iterations < maxIterations) {
126
- var FSpring = -(currX - destX) * stiff;
127
- var FDamping = currV * damping;
128
- currV += ((FSpring - FDamping) * dt) / 1000;
129
- currX += (currV * dt) / 1000;
130
- positions.push(currX);
131
-
132
- // Stop only when position is essentially at 1.0 AND bounce velocity has died down
133
- if (Math.abs(currX - destX) < ACCURACY && Math.abs(currV) < ACCURACY) {
134
- break;
135
- }
136
- iterations++;
137
- }
138
-
139
- // Force the absolute final element to be exactly 1.0 for a perfect finish
140
- positions[positions.length - 1] = destX;
141
- var maxIndex = positions.length - 1;
142
-
143
- // 2. The ultra-smooth runtime function mapping your 0..1 progress
144
- return (t) => {
145
- var _positions$index, _positions, _positions$index2;
146
- if (t <= 0) return 0;
147
- if (t >= 1) return destX;
148
-
149
- // Scale t (0..1) proportionally across our entire pre-calculated array
150
- var exactFrame = t * maxIndex;
151
- var index = Math.floor(exactFrame);
152
- var fraction = exactFrame - index;
153
-
154
- // Blend between the two closest frames
155
- return (
156
- ((_positions$index = positions[index]) !== null && _positions$index !== void 0
157
- ? _positions$index
158
- : 0) +
159
- (((_positions = positions[index + 1]) !== null && _positions !== void 0 ? _positions : 0) -
160
- ((_positions$index2 = positions[index]) !== null && _positions$index2 !== void 0
161
- ? _positions$index2
162
- : 0)) *
163
- fraction
164
- );
165
- };
166
- };
167
-
168
- /**
169
- * @inline
170
- */
171
-
172
- export var createEasingFunction = (easing) => {
173
- if (typeof easing === 'string') {
174
- switch (easing) {
175
- case 'ease':
176
- case 'ease-in-out':
177
- case 'ease-out':
178
- case 'ease-in':
179
- case 'linear':
180
- return configBezier(easing);
181
- case 'spring':
182
- return createSpringEasing();
183
- default:
184
- if (easing.split('(')[0] === 'cubic-bezier') {
185
- return configBezier(easing);
186
- }
187
- }
188
- }
189
- if (typeof easing === 'function') {
190
- return easing;
191
- }
192
- return null;
193
- };
@@ -1,49 +0,0 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/animation/timeoutController.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- /**
4
- * Callback type for the timeout function.
5
- * Receives current time as an argument.
6
- */
7
-
8
- /**
9
- * A function that, when called, cancels the timeout.
10
- *
11
- * @since 3.9
12
- */
13
-
14
- /**
15
- * TimeoutController is responsible for controlling the movement of time.
16
- * Think of it as a clock.
17
- *
18
- * Recharts default implementation uses requestAnimationFrame which works great in a browser.
19
- * You may choose to override this which is especially useful if you want to control animations.
20
- *
21
- * Why would you want to do this?
22
- * - unit tests
23
- * - animations based on something other than time: UI controls, page scroll, mouse movement ...
24
- *
25
- * @see {@link https://recharts.github.io/en-US/guide/animations/ Animation guide}
26
- *
27
- * @since 3.9
28
- */
29
-
30
- export class RequestAnimationFrameTimeoutController {
31
- setTimeout(callback) {
32
- var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
33
- var startTime = performance.now();
34
- var requestId = null;
35
- var executeCallback = (now) => {
36
- if (now - startTime >= delay) {
37
- callback(now);
38
- } else {
39
- requestId = requestAnimationFrame(executeCallback);
40
- }
41
- };
42
- requestId = requestAnimationFrame(executeCallback);
43
- return () => {
44
- if (requestId != null) {
45
- cancelAnimationFrame(requestId);
46
- }
47
- };
48
- }
49
- }
@@ -1,11 +0,0 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/animation/util.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- /*
4
- * @description: convert camel case to dash case
5
- * string => string
6
- */
7
- export var getDashCase = (name) => name.replace(/([A-Z])/g, (v) => '-'.concat(v.toLowerCase()));
8
- export var getTransitionVal = (props, duration, easing) =>
9
- props
10
- .map((prop) => ''.concat(getDashCase(prop), ' ').concat(duration, 'ms ').concat(easing))
11
- .join(',');