@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
@@ -1,25 +1,35 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/state/mouseEventsMiddleware.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- import { createAction, createListenerMiddleware } from '@reduxjs/toolkit';
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import {
3
+ createAction,
4
+ createListenerMiddleware,
5
+ ListenerEffectAPI,
6
+ PayloadAction,
7
+ } from '@reduxjs/toolkit';
8
+ import { AppDispatch, RechartsRootState } from './store';
4
9
  import { mouseLeaveChart, setMouseClickAxisIndex, setMouseOverAxisIndex } from './tooltipSlice';
5
10
  import { selectActivePropsFromChartPointer } from './selectors/selectActivePropsFromChartPointer';
6
11
  import { selectTooltipEventType } from './selectors/selectTooltipEventType';
12
+
7
13
  import { getRelativeCoordinate } from '../util/getRelativeCoordinate';
8
- export var mouseClickAction = createAction('mouseClick');
9
- export var mouseClickMiddleware = createListenerMiddleware();
14
+ import { RelativePointer, HTMLMousePointer } from '../util/types';
15
+
16
+ export const mouseClickAction = createAction<HTMLMousePointer>('mouseClick');
17
+
18
+ export const mouseClickMiddleware = createListenerMiddleware<RechartsRootState>();
10
19
 
11
20
  // TODO: there's a bug here when you click the chart the activeIndex resets to zero
12
21
  mouseClickMiddleware.startListening({
13
22
  actionCreator: mouseClickAction,
14
- effect: (action, listenerApi) => {
15
- var mousePointer = action.payload;
16
- var activeProps = selectActivePropsFromChartPointer(
23
+ effect: (
24
+ action: PayloadAction<HTMLMousePointer>,
25
+ listenerApi: ListenerEffectAPI<RechartsRootState, AppDispatch>,
26
+ ) => {
27
+ const mousePointer = action.payload;
28
+ const activeProps = selectActivePropsFromChartPointer(
17
29
  listenerApi.getState(),
18
30
  getRelativeCoordinate(mousePointer),
19
31
  );
20
- if (
21
- (activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) != null
22
- ) {
32
+ if (activeProps?.activeIndex != null) {
23
33
  listenerApi.dispatch(
24
34
  setMouseClickAxisIndex({
25
35
  activeIndex: activeProps.activeIndex,
@@ -30,8 +40,10 @@ mouseClickMiddleware.startListening({
30
40
  }
31
41
  },
32
42
  });
33
- export var mouseMoveAction = createAction('mouseMove');
34
- export var mouseMoveMiddleware = createListenerMiddleware();
43
+
44
+ export const mouseMoveAction = createAction<HTMLMousePointer>('mouseMove');
45
+
46
+ export const mouseMoveMiddleware = createListenerMiddleware<RechartsRootState>();
35
47
 
36
48
  /*
37
49
  * This single rafId is safe because:
@@ -41,22 +53,21 @@ export var mouseMoveMiddleware = createListenerMiddleware();
41
53
  * This is different from externalEventsMiddleware which handles multiple event types
42
54
  * (click, mouseenter, mouseleave, etc.) that should NOT cancel each other.
43
55
  */
44
- var rafId = null;
45
- var timeoutId = null;
46
- var latestChartPointer = null;
56
+ let rafId: number | null = null;
57
+ let timeoutId: ReturnType<typeof setTimeout> | null = null;
58
+ let latestChartPointer: RelativePointer | null = null;
59
+
47
60
  mouseMoveMiddleware.startListening({
48
61
  actionCreator: mouseMoveAction,
49
- effect: (action, listenerApi) => {
50
- var mousePointer = action.payload;
51
- var state = listenerApi.getState();
52
- var _state$eventSettings = state.eventSettings,
53
- throttleDelay = _state$eventSettings.throttleDelay,
54
- throttledEvents = _state$eventSettings.throttledEvents;
55
- var isThrottled =
56
- throttledEvents === 'all' ||
57
- (throttledEvents === null || throttledEvents === void 0
58
- ? void 0
59
- : throttledEvents.includes('mousemove'));
62
+ effect: (
63
+ action: PayloadAction<HTMLMousePointer>,
64
+ listenerApi: ListenerEffectAPI<RechartsRootState, AppDispatch>,
65
+ ) => {
66
+ const mousePointer = action.payload;
67
+
68
+ const state = listenerApi.getState();
69
+ const { throttleDelay, throttledEvents } = state.eventSettings;
70
+ const isThrottled = throttledEvents === 'all' || throttledEvents?.includes('mousemove');
60
71
 
61
72
  // Cancel any pending execution
62
73
  if (rafId !== null) {
@@ -74,13 +85,13 @@ mouseMoveMiddleware.startListening({
74
85
  * reference to currentTarget which getRelativeCoordinate uses.
75
86
  */
76
87
  latestChartPointer = getRelativeCoordinate(mousePointer);
77
- var callback = () => {
88
+ const callback = () => {
78
89
  /*
79
90
  * Here we read a fresh state again inside the callback to ensure we have the latest state values
80
91
  * after any potential actions that may have been dispatched between the original event and this callback.
81
92
  */
82
- var currentState = listenerApi.getState();
83
- var tooltipEventType = selectTooltipEventType(
93
+ const currentState = listenerApi.getState();
94
+ const tooltipEventType = selectTooltipEventType(
84
95
  currentState,
85
96
  currentState.tooltip.settings.shared,
86
97
  );
@@ -95,11 +106,8 @@ mouseMoveMiddleware.startListening({
95
106
  * Graphical items have its own mouse events handling mechanism where they attach events directly to the items.
96
107
  */
97
108
  if (tooltipEventType === 'axis') {
98
- var activeProps = selectActivePropsFromChartPointer(currentState, latestChartPointer);
99
- if (
100
- (activeProps === null || activeProps === void 0 ? void 0 : activeProps.activeIndex) !=
101
- null
102
- ) {
109
+ const activeProps = selectActivePropsFromChartPointer(currentState, latestChartPointer);
110
+ if (activeProps?.activeIndex != null) {
103
111
  listenerApi.dispatch(
104
112
  setMouseOverAxisIndex({
105
113
  activeIndex: activeProps.activeIndex,
@@ -115,10 +123,12 @@ mouseMoveMiddleware.startListening({
115
123
  rafId = null;
116
124
  timeoutId = null;
117
125
  };
126
+
118
127
  if (!isThrottled) {
119
128
  callback();
120
129
  return;
121
130
  }
131
+
122
132
  if (throttleDelay === 'raf') {
123
133
  rafId = requestAnimationFrame(callback);
124
134
  } else if (typeof throttleDelay === 'number') {
@@ -0,0 +1,65 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { createSlice } from '@reduxjs/toolkit';
3
+ import { TooltipEventType } from '../util/types';
4
+ import { TooltipIndex, TooltipPayloadSearcher } from './tooltipSlice';
5
+ import { isNan } from '../util/DataUtils';
6
+
7
+ /**
8
+ * These chart options are decided internally, by Recharts,
9
+ * and will not change during the lifetime of the chart.
10
+ *
11
+ * Changing these options can be done by swapping the root element
12
+ * which will make a brand-new Redux store.
13
+ *
14
+ * If you want to store options that can be changed by the user,
15
+ * use UpdatableChartOptions in rootPropsSlice.ts.
16
+ */
17
+ export type ChartOptions = {
18
+ chartName: string;
19
+ defaultTooltipEventType: TooltipEventType;
20
+ validateTooltipEventTypes?: ReadonlyArray<TooltipEventType>;
21
+ // Should this instead be a property of a graphical item? Do we want to mix items with different data types in one chart?
22
+ tooltipPayloadSearcher: TooltipPayloadSearcher;
23
+ /**
24
+ * We use this to identify which chart is sending events when synchronising.
25
+ * Without it, we can't tell the difference between an action that arrived from another chart
26
+ * and an action that was dispatched by the chart itself.
27
+ */
28
+ eventEmitter: symbol | undefined;
29
+ };
30
+
31
+ export const arrayTooltipSearcher: TooltipPayloadSearcher = (
32
+ data: unknown,
33
+ strIndex: TooltipIndex,
34
+ ): unknown | undefined => {
35
+ if (!strIndex) return undefined;
36
+ if (!Array.isArray(data)) return undefined;
37
+ const numIndex = Number.parseInt(strIndex, 10);
38
+ if (isNan(numIndex)) {
39
+ return undefined;
40
+ }
41
+ return data[numIndex];
42
+ };
43
+
44
+ const initialState: ChartOptions = {
45
+ chartName: '',
46
+ tooltipPayloadSearcher: () => undefined,
47
+ eventEmitter: undefined,
48
+ defaultTooltipEventType: 'axis',
49
+ };
50
+
51
+ const optionsSlice = createSlice({
52
+ name: 'options',
53
+ initialState,
54
+ reducers: {
55
+ createEventEmitter: (state: ChartOptions) => {
56
+ if (state.eventEmitter == null) {
57
+ state.eventEmitter = Symbol('rechartsEventEmitter');
58
+ }
59
+ },
60
+ },
61
+ });
62
+
63
+ export const optionsReducer = optionsSlice.reducer;
64
+
65
+ export const { createEventEmitter } = optionsSlice.actions;
@@ -0,0 +1,42 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { createSlice, PayloadAction } from '@reduxjs/toolkit';
3
+ import { castDraft } from 'immer';
4
+ import { AxisId, BaseCartesianAxis, TicksSettings } from './cartesianAxisSlice';
5
+
6
+ export type RadiusAxisSettings = BaseCartesianAxis & TicksSettings;
7
+
8
+ export type AngleAxisSettings = BaseCartesianAxis & TicksSettings;
9
+
10
+ type PolarAxisState = {
11
+ radiusAxis: Record<AxisId, RadiusAxisSettings>;
12
+ angleAxis: Record<AxisId, AngleAxisSettings>;
13
+ };
14
+
15
+ const initialState: PolarAxisState = {
16
+ radiusAxis: {},
17
+ angleAxis: {},
18
+ };
19
+
20
+ const polarAxisSlice = createSlice({
21
+ name: 'polarAxis',
22
+ initialState,
23
+ reducers: {
24
+ addRadiusAxis(state, action: PayloadAction<RadiusAxisSettings>) {
25
+ state.radiusAxis[action.payload.id] = castDraft(action.payload);
26
+ },
27
+ removeRadiusAxis(state, action: PayloadAction<RadiusAxisSettings>) {
28
+ delete state.radiusAxis[action.payload.id];
29
+ },
30
+ addAngleAxis(state, action: PayloadAction<AngleAxisSettings>) {
31
+ state.angleAxis[action.payload.id] = castDraft(action.payload);
32
+ },
33
+ removeAngleAxis(state, action: PayloadAction<AngleAxisSettings>) {
34
+ delete state.angleAxis[action.payload.id];
35
+ },
36
+ },
37
+ });
38
+
39
+ export const { addRadiusAxis, removeRadiusAxis, addAngleAxis, removeAngleAxis } =
40
+ polarAxisSlice.actions;
41
+
42
+ export const polarAxisReducer = polarAxisSlice.reducer;
@@ -0,0 +1,43 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { createSlice, PayloadAction } from '@reduxjs/toolkit';
3
+
4
+ export type PolarChartOptions = {
5
+ cx: number | string;
6
+ cy: number | string;
7
+ startAngle: number;
8
+ endAngle: number;
9
+ innerRadius: number | string;
10
+ outerRadius: number | string;
11
+ };
12
+
13
+ type PolarChartState = PolarChartOptions | null;
14
+
15
+ const initialState: PolarChartState = null;
16
+
17
+ const reducers = {
18
+ updatePolarOptions: (
19
+ state: PolarChartState,
20
+ action: PayloadAction<PolarChartOptions>,
21
+ ): PolarChartOptions => {
22
+ if (state === null) {
23
+ return action.payload;
24
+ }
25
+ state.startAngle = action.payload.startAngle;
26
+ state.endAngle = action.payload.endAngle;
27
+ state.cx = action.payload.cx;
28
+ state.cy = action.payload.cy;
29
+ state.innerRadius = action.payload.innerRadius;
30
+ state.outerRadius = action.payload.outerRadius;
31
+ return state;
32
+ },
33
+ };
34
+
35
+ const polarOptionsSlice = createSlice<PolarChartState, typeof reducers, 'polarOptions', {}>({
36
+ name: 'polarOptions',
37
+ initialState,
38
+ reducers,
39
+ });
40
+
41
+ export const { updatePolarOptions } = polarOptionsSlice.actions;
42
+
43
+ export const polarOptionsReducer = polarOptionsSlice.reducer;
@@ -0,0 +1,13 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ export function reduxDevtoolsJsonStringifyReplacer(key: string, value: unknown) {
3
+ if (value instanceof HTMLElement) {
4
+ return `HTMLElement <${value.tagName} class="${value.className}">`;
5
+ }
6
+ if (value === window) {
7
+ return 'global.window';
8
+ }
9
+ if (key === 'children' && typeof value === 'object' && value !== null) {
10
+ return '<<CHILDREN>>';
11
+ }
12
+ return value;
13
+ }
@@ -0,0 +1,100 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { createSlice, current, PayloadAction } from '@reduxjs/toolkit';
3
+ import { castDraft, WritableDraft } from 'immer';
4
+ import { AxisId } from './cartesianAxisSlice';
5
+ import { IfOverflow } from '../util/IfOverflow';
6
+ import { ReferenceLineSegment } from '../cartesian/ReferenceLine.tsrx';
7
+
8
+ export type ReferenceElementSettings = {
9
+ yAxisId: AxisId;
10
+ xAxisId: AxisId;
11
+ ifOverflow: IfOverflow;
12
+ };
13
+
14
+ export type ReferenceDotSettings = ReferenceElementSettings & {
15
+ x: unknown;
16
+ y: unknown;
17
+ r: number;
18
+ };
19
+
20
+ export type ReferenceAreaSettings = ReferenceElementSettings & {
21
+ x1: unknown;
22
+ x2: unknown;
23
+ y1: unknown;
24
+ y2: unknown;
25
+ };
26
+
27
+ export type ReferenceLineSettings = ReferenceElementSettings & {
28
+ x: unknown;
29
+ y: unknown;
30
+ segment: ReferenceLineSegment | undefined;
31
+ };
32
+
33
+ type ReferenceElementState = {
34
+ dots: ReadonlyArray<ReferenceDotSettings>;
35
+ areas: ReadonlyArray<ReferenceAreaSettings>;
36
+ lines: ReadonlyArray<ReferenceLineSettings>;
37
+ };
38
+
39
+ const initialState: ReferenceElementState = {
40
+ dots: [],
41
+ areas: [],
42
+ lines: [],
43
+ };
44
+
45
+ export const referenceElementsSlice = createSlice({
46
+ name: 'referenceElements',
47
+ initialState,
48
+ reducers: {
49
+ addDot: (
50
+ state: WritableDraft<ReferenceElementState>,
51
+ action: PayloadAction<ReferenceDotSettings>,
52
+ ) => {
53
+ state.dots.push(action.payload);
54
+ },
55
+ removeDot: (
56
+ state: WritableDraft<ReferenceElementState>,
57
+ action: PayloadAction<ReferenceDotSettings>,
58
+ ) => {
59
+ const index = current(state).dots.findIndex((dot) => dot === action.payload);
60
+ if (index !== -1) {
61
+ state.dots.splice(index, 1);
62
+ }
63
+ },
64
+ addArea: (
65
+ state: WritableDraft<ReferenceElementState>,
66
+ action: PayloadAction<ReferenceAreaSettings>,
67
+ ) => {
68
+ state.areas.push(action.payload);
69
+ },
70
+ removeArea: (
71
+ state: WritableDraft<ReferenceElementState>,
72
+ action: PayloadAction<ReferenceAreaSettings>,
73
+ ) => {
74
+ const index = current(state).areas.findIndex((area) => area === action.payload);
75
+ if (index !== -1) {
76
+ state.areas.splice(index, 1);
77
+ }
78
+ },
79
+ addLine: (
80
+ state: WritableDraft<ReferenceElementState>,
81
+ action: PayloadAction<ReferenceLineSettings>,
82
+ ) => {
83
+ state.lines.push(castDraft(action.payload));
84
+ },
85
+ removeLine: (
86
+ state: WritableDraft<ReferenceElementState>,
87
+ action: PayloadAction<ReferenceLineSettings>,
88
+ ) => {
89
+ const index = current(state).lines.findIndex((line) => line === action.payload);
90
+ if (index !== -1) {
91
+ state.lines.splice(index, 1);
92
+ }
93
+ },
94
+ },
95
+ });
96
+
97
+ export const { addDot, removeDot, addArea, removeArea, addLine, removeLine } =
98
+ referenceElementsSlice.actions;
99
+
100
+ export const referenceElementsReducer = referenceElementsSlice.reducer;
@@ -0,0 +1,60 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ /**
3
+ * @fileOverview this stores actually rendered ticks.
4
+ *
5
+ * What we do is that we have the domain -> ticks mapping in the cartesianSlice,
6
+ * which is fine but the result then goes to CartesianAxis where we use DOM measurement
7
+ * to decide which ticks to actually render.
8
+ *
9
+ * This renderedTickSlice stores those actually rendered ticks so that we can return them from a hook later.
10
+ */
11
+ import { createSlice, PayloadAction } from '@reduxjs/toolkit';
12
+ import { castDraft, WritableDraft } from 'immer';
13
+ import { TickItem } from '../util/types';
14
+ import { AxisId } from './cartesianAxisSlice';
15
+
16
+ type RenderedTicksAxisState = {
17
+ [axisId: AxisId]: ReadonlyArray<TickItem>;
18
+ };
19
+
20
+ type RenderedTicksState = {
21
+ xAxis: RenderedTicksAxisState;
22
+ yAxis: RenderedTicksAxisState;
23
+ };
24
+
25
+ const initialState: RenderedTicksState = {
26
+ xAxis: {},
27
+ yAxis: {},
28
+ };
29
+
30
+ export const renderedTicksSlice = createSlice({
31
+ name: 'renderedTicks',
32
+ initialState,
33
+ reducers: {
34
+ setRenderedTicks: (
35
+ state: WritableDraft<RenderedTicksState>,
36
+ action: PayloadAction<{
37
+ axisType: 'xAxis' | 'yAxis';
38
+ axisId: AxisId;
39
+ ticks: ReadonlyArray<TickItem>;
40
+ }>,
41
+ ) => {
42
+ const { axisType, axisId, ticks } = action.payload;
43
+ state[axisType][axisId] = castDraft(ticks);
44
+ },
45
+ removeRenderedTicks: (
46
+ state: WritableDraft<RenderedTicksState>,
47
+ action: PayloadAction<{
48
+ axisType: 'xAxis' | 'yAxis';
49
+ axisId: AxisId;
50
+ }>,
51
+ ) => {
52
+ const { axisType, axisId } = action.payload;
53
+ delete state[axisType][axisId];
54
+ },
55
+ },
56
+ });
57
+
58
+ export const { setRenderedTicks, removeRenderedTicks } = renderedTicksSlice.actions;
59
+
60
+ export const renderedTicksReducer = renderedTicksSlice.reducer;
@@ -0,0 +1,72 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { createSlice, PayloadAction } from '@reduxjs/toolkit';
3
+ import { StackOffsetType } from '../util/types';
4
+ import { SyncMethod } from '../synchronisation/types';
5
+ import { BaseValue } from '../cartesian/Area.tsrx';
6
+
7
+ /**
8
+ * These are chart options that users can choose - which means they can also
9
+ * choose to change them which should trigger a re-render.
10
+ */
11
+ export type UpdatableChartOptions = {
12
+ accessibilityLayer: boolean;
13
+ barCategoryGap: number | string;
14
+ barGap: number | string;
15
+ barSize: string | number | undefined;
16
+ /**
17
+ * Useful for debugging which chart is which when synchronising.
18
+ * The className is also passed to the root element of the chart but that's done in the JSX, not through Redux.
19
+ */
20
+ className: string | undefined;
21
+ maxBarSize: number | undefined;
22
+ stackOffset: StackOffsetType;
23
+ /**
24
+ * Charts that share the same syncId will have their Tooltip and Brush synchronised.
25
+ */
26
+ syncId: number | string | undefined;
27
+ syncMethod: SyncMethod;
28
+ baseValue: BaseValue | undefined;
29
+ /**
30
+ * If false, stacked items will be rendered left to right. If true, stacked items will be rendered right to left.
31
+ * (Render direction affects SVG layering, not x position.)
32
+ */
33
+ reverseStackOrder: boolean;
34
+ };
35
+
36
+ export const initialState: UpdatableChartOptions = {
37
+ accessibilityLayer: true,
38
+ barCategoryGap: '10%',
39
+ barGap: 4,
40
+ barSize: undefined,
41
+ className: undefined,
42
+ maxBarSize: undefined,
43
+ stackOffset: 'none',
44
+ syncId: undefined,
45
+ syncMethod: 'index',
46
+ baseValue: undefined,
47
+ reverseStackOrder: false,
48
+ };
49
+
50
+ const rootPropsSlice = createSlice({
51
+ name: 'rootProps',
52
+ initialState,
53
+ reducers: {
54
+ updateOptions: (state: UpdatableChartOptions, action: PayloadAction<UpdatableChartOptions>) => {
55
+ state.accessibilityLayer = action.payload.accessibilityLayer;
56
+ state.barCategoryGap = action.payload.barCategoryGap;
57
+ state.barGap = action.payload.barGap ?? initialState.barGap;
58
+ state.barSize = action.payload.barSize;
59
+ state.maxBarSize = action.payload.maxBarSize;
60
+ state.stackOffset = action.payload.stackOffset;
61
+ state.syncId = action.payload.syncId;
62
+ state.syncMethod = action.payload.syncMethod;
63
+ state.className = action.payload.className;
64
+ state.baseValue = action.payload.baseValue;
65
+ state.reverseStackOrder = action.payload.reverseStackOrder;
66
+ },
67
+ },
68
+ });
69
+
70
+ export const rootPropsReducer = rootPropsSlice.reducer;
71
+
72
+ export const { updateOptions } = rootPropsSlice.actions;
@@ -1,8 +1,7 @@
1
- // @ts-nocheck -- retained upstream selector typing is outside the initial Area runtime port.
2
1
  import { createSelector } from 'reselect';
3
2
  import { SeriesPoint } from 'victory-vendor/d3-shape';
4
3
  import { NullableCoordinate } from '../../util/types';
5
- import { computeArea } from '../../cartesian/Area';
4
+ import { computeArea } from '../../cartesian/Area.tsrx';
6
5
  import {
7
6
  selectAxisWithScale,
8
7
  selectStackGroups,
@@ -1,12 +1,11 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/state/selectors/arrayEqualityCheck.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
  * Checks if two arrays are equal, treating empty arrays as equal regardless of reference.
5
4
  * If both arrays are non-empty, it checks for reference equality.
6
5
  * @param a
7
6
  * @param b
8
7
  */
9
- export function emptyArraysAreEqualCheck(a, b) {
8
+ export function emptyArraysAreEqualCheck<T>(a: ReadonlyArray<T>, b: ReadonlyArray<T>): boolean {
10
9
  if (Array.isArray(a) && Array.isArray(b) && a.length === 0 && b.length === 0) {
11
10
  // empty arrays are always equal, regardless of reference
12
11
  return true;
@@ -19,9 +18,9 @@ export function emptyArraysAreEqualCheck(a, b) {
19
18
  * @param a
20
19
  * @param b
21
20
  */
22
- export function arrayContentsAreEqualCheck(a, b) {
21
+ export function arrayContentsAreEqualCheck<T>(a: ReadonlyArray<T>, b: ReadonlyArray<T>): boolean {
23
22
  if (a.length === b.length) {
24
- for (var i = 0; i < a.length; i++) {
23
+ for (let i = 0; i < a.length; i++) {
25
24
  if (a[i] !== b[i]) {
26
25
  return false;
27
26
  }