@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,3 +1,16 @@
1
+ import type { ChartOptions } from '../state/optionsSlice';
2
+ import type { CartesianChartProps, Margin, TooltipEventType } from '../util/types';
3
+ import type { TooltipPayloadSearcher } from '../state/tooltipSlice';
4
+ import type { Ref } from '../util/OctaneTypes.ts';
5
+
6
+ export type CartesianChartOptions = {
7
+ chartName: string;
8
+ defaultTooltipEventType: TooltipEventType;
9
+ validateTooltipEventTypes: ReadonlyArray<TooltipEventType>;
10
+ tooltipPayloadSearcher: TooltipPayloadSearcher;
11
+ categoricalChartProps: CartesianChartProps;
12
+ ref?: Ref<SVGSVGElement>;
13
+ };
1
14
  // Port of chart/CartesianChart.tsx — the store provider + reporter components
2
15
  // every cartesian chart (BarChart, LineChart, …) shares.
3
16
  import { RechartsStoreProvider } from '../state/RechartsStoreProvider.tsrx';
@@ -9,7 +22,7 @@ import { CategoricalChart } from './CategoricalChart.tsrx';
9
22
  import { resolveDefaultProps } from '../util/resolveDefaultProps';
10
23
  import { initialEventSettingsState } from '../state/eventSettingsSlice';
11
24
 
12
- const defaultMargin = { top: 5, right: 5, bottom: 5, left: 5 };
25
+ const defaultMargin: Margin = { top: 5, right: 5, bottom: 5, left: 5 };
13
26
 
14
27
  export const defaultCartesianChartProps = {
15
28
  accessibilityLayer: true,
@@ -22,13 +35,13 @@ export const defaultCartesianChartProps = {
22
35
  stackOffset: 'none',
23
36
  syncMethod: 'index',
24
37
  ...initialEventSettingsState,
25
- };
38
+ } as const satisfies Partial<CartesianChartProps>;
26
39
 
27
40
  /**
28
41
  * One-time, immutable options deciding chart behavior — usually filled in by
29
42
  * the convenience wrappers (BarChart, LineChart, …).
30
43
  */
31
- export function CartesianChart(props) @{
44
+ export function CartesianChart(props: CartesianChartOptions) @{
32
45
  const rootChartProps = resolveDefaultProps(
33
46
  props.categoricalChartProps,
34
47
  defaultCartesianChartProps,
@@ -41,7 +54,7 @@ export function CartesianChart(props) @{
41
54
  categoricalChartProps,
42
55
  ref,
43
56
  } = props;
44
- const options = {
57
+ const options: ChartOptions = {
45
58
  chartName,
46
59
  defaultTooltipEventType,
47
60
  validateTooltipEventTypes,
@@ -1,3 +1,6 @@
1
+ import type { CartesianChartProps } from '../util/types';
2
+ import type { Ref } from '../util/OctaneTypes.ts';
3
+
1
4
  // Port of chart/CategoricalChart.tsx — the wrapper-div + root-svg pairing
2
5
  // (or, in compact/panorama mode, just the bare surface).
3
6
  import { RootSurface } from '../container/RootSurface.tsrx';
@@ -6,7 +9,7 @@ import { ClipPathProvider } from '../container/ClipPathProvider.tsrx';
6
9
  import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
7
10
  import { ReportChartSize } from '../context/chartLayoutContext.ts';
8
11
 
9
- export function CategoricalChart(props) {
12
+ export function CategoricalChart(props: CartesianChartProps & { ref?: Ref<SVGSVGElement> }) {
10
13
  const {
11
14
  width,
12
15
  height,
@@ -1,3 +1,5 @@
1
+ import type { Ref } from '../util/OctaneTypes.ts';
2
+
1
3
  import { arrayTooltipSearcher } from '../state/optionsSlice';
2
4
  import { CartesianChart } from './CartesianChart.tsrx';
3
5
  import { CartesianChartProps, TooltipEventType } from '../util/types';
@@ -9,7 +11,9 @@ const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis'];
9
11
  * @provides CartesianViewBoxContext
10
12
  * @provides CartesianChartContext
11
13
  */
12
- export function ComposedChart(props: CartesianChartProps<unknown>) {
14
+ export function ComposedChart<DataPointType = unknown>(props: CartesianChartProps<DataPointType> & {
15
+ ref?: Ref<SVGSVGElement>;
16
+ }) {
13
17
  const { ref, ...rest } = props;
14
18
  return <CartesianChart
15
19
  chartName="ComposedChart"
@@ -1,3 +1,5 @@
1
+ import type { Ref } from '../util/OctaneTypes.ts';
2
+
1
3
  import { arrayTooltipSearcher } from '../state/optionsSlice';
2
4
  import { CartesianChart } from './CartesianChart.tsrx';
3
5
  import { CartesianChartProps, TooltipEventType } from '../util/types';
@@ -9,7 +11,9 @@ const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['item'];
9
11
  * @provides CartesianViewBoxContext
10
12
  * @provides CartesianChartContext
11
13
  */
12
- export function FunnelChart(props: CartesianChartProps<unknown>) {
14
+ export function FunnelChart<DataPointType = unknown>(props: CartesianChartProps<DataPointType> & {
15
+ ref?: Ref<SVGSVGElement>;
16
+ }) {
13
17
  const { ref, ...rest } = props;
14
18
  return <CartesianChart
15
19
  chartName="FunnelChart"
@@ -1,15 +1,21 @@
1
+ import type { CartesianChartProps } from '../util/types';
2
+ import type { Ref } from '../util/OctaneTypes.ts';
3
+ import type { TooltipEventType } from '../util/types';
4
+
1
5
  // Port of chart/LineChart.tsx.
2
6
  import { arrayTooltipSearcher } from '../state/optionsSlice';
3
7
  import { CartesianChart } from './CartesianChart.tsrx';
4
8
 
5
- const allowedTooltipTypes = ['axis'];
9
+ const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis'];
6
10
 
7
11
  /**
8
12
  * @consumes ResponsiveContainerContext
9
13
  * @provides CartesianViewBoxContext
10
14
  * @provides CartesianChartContext
11
15
  */
12
- export function LineChart(props) {
16
+ export function LineChart<DataPointType = unknown>(props: CartesianChartProps<DataPointType> & {
17
+ ref?: Ref<SVGSVGElement>;
18
+ }) {
13
19
  const { ref, ...rest } = props;
14
20
  return <CartesianChart
15
21
  chartName="LineChart"
@@ -1,5 +1,7 @@
1
+ import type { Ref } from '../util/OctaneTypes.ts';
2
+
1
3
  import { arrayTooltipSearcher } from '../state/optionsSlice';
2
- import { defaultPolarChartProps, PolarChart } from './PolarChart';
4
+ import { defaultPolarChartProps, PolarChart } from './PolarChart.tsrx';
3
5
  import { PolarChartProps, TooltipEventType } from '../util/types';
4
6
  import { resolveDefaultProps } from '../util/resolveDefaultProps';
5
7
 
@@ -17,7 +19,9 @@ export const defaultPieChartProps = {
17
19
  * @provides PolarViewBoxContext
18
20
  * @provides PolarChartContext
19
21
  */
20
- export function PieChart(props: PolarChartProps<unknown>) {
22
+ export function PieChart<DataPointType = unknown>(props: PolarChartProps<DataPointType> & {
23
+ ref?: Ref<SVGSVGElement>;
24
+ }) {
21
25
  const { ref, ...rest } = props;
22
26
  const propsWithDefaults = resolveDefaultProps(rest, defaultPieChartProps);
23
27
  return <PolarChart
@@ -1,15 +1,16 @@
1
1
  import { ChartOptions } from '../state/optionsSlice';
2
- import { RechartsStoreProvider } from '../state/RechartsStoreProvider';
2
+ import { RechartsStoreProvider } from '../state/RechartsStoreProvider.tsrx';
3
3
  import { ChartDataContextProvider } from '../context/chartDataContext';
4
4
  import { ReportMainChartProps } from '../state/ReportMainChartProps';
5
5
  import { ReportChartProps } from '../state/ReportChartProps';
6
6
  import { ReportEventSettings } from '../state/ReportEventSettings';
7
- import { ReportPolarOptions } from '../state/ReportPolarOptions';
7
+ import { ReportPolarOptions } from '../state/ReportPolarOptions.tsrx';
8
8
  import { Margin, PolarChartProps, TooltipEventType } from '../util/types';
9
9
  import { TooltipPayloadSearcher } from '../state/tooltipSlice';
10
- import { CategoricalChart } from './CategoricalChart';
10
+ import { CategoricalChart } from './CategoricalChart.tsrx';
11
11
  import { resolveDefaultProps } from '../util/resolveDefaultProps';
12
12
  import { initialEventSettingsState } from '../state/eventSettingsSlice';
13
+ import type { Ref } from '../util/OctaneTypes.ts';
13
14
 
14
15
  const defaultMargin: Margin = { top: 5, right: 5, bottom: 5, left: 5 };
15
16
 
@@ -64,7 +65,7 @@ export type PolarChartOptions = {
64
65
  categoricalChartProps: PolarChartPropsWithDefaults;
65
66
  };
66
67
 
67
- export function PolarChart(props: PolarChartOptions & { ref?: unknown }) {
68
+ export function PolarChart(props: PolarChartOptions & { ref?: Ref<SVGSVGElement> }) {
68
69
  const { ref } = props;
69
70
  const polarChartProps = resolveDefaultProps(props.categoricalChartProps, defaultPolarChartProps);
70
71
 
@@ -1,7 +1,9 @@
1
+ import type { Ref } from '../util/OctaneTypes.ts';
2
+
1
3
  import { arrayTooltipSearcher } from '../state/optionsSlice';
2
4
  import { PolarChartProps, PolarLayout, TooltipEventType } from '../util/types';
3
5
  import { resolveDefaultProps } from '../util/resolveDefaultProps';
4
- import { defaultPolarChartProps, PolarChart } from './PolarChart';
6
+ import { defaultPolarChartProps, PolarChart } from './PolarChart.tsrx';
5
7
 
6
8
  const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis'];
7
9
 
@@ -39,7 +41,9 @@ type RadarChartProps<DataPointType> =
39
41
  * @provides PolarViewBoxContext
40
42
  * @provides PolarChartContext
41
43
  */
42
- export function RadarChart(props: RadarChartProps<unknown>) {
44
+ export function RadarChart<DataPointType = unknown>(props: RadarChartProps<DataPointType> & {
45
+ ref?: Ref<SVGSVGElement>;
46
+ }) {
43
47
  const { ref, ...rest } = props;
44
48
  const propsWithDefaults = resolveDefaultProps(rest, defaultRadarChartProps);
45
49
  return <PolarChart
@@ -1,7 +1,9 @@
1
+ import type { Ref } from '../util/OctaneTypes.ts';
2
+
1
3
  import { arrayTooltipSearcher } from '../state/optionsSlice';
2
4
  import { PolarChartProps, TooltipEventType } from '../util/types';
3
5
  import { resolveDefaultProps } from '../util/resolveDefaultProps';
4
- import { defaultPolarChartProps, PolarChart } from './PolarChart';
6
+ import { defaultPolarChartProps, PolarChart } from './PolarChart.tsrx';
5
7
 
6
8
  const allowedTooltipTypes: ReadonlyArray<TooltipEventType> = ['axis', 'item'];
7
9
 
@@ -17,7 +19,9 @@ export const defaultRadialBarChartProps = {
17
19
  * @provides PolarViewBoxContext
18
20
  * @provides PolarChartContext
19
21
  */
20
- export function RadialBarChart(props: PolarChartProps<unknown>) {
22
+ export function RadialBarChart<DataPointType = unknown>(props: PolarChartProps<DataPointType> & {
23
+ ref?: Ref<SVGSVGElement>;
24
+ }) {
21
25
  const { ref, ...rest } = props;
22
26
  const propsWithDefaults = resolveDefaultProps(rest, defaultRadialBarChartProps);
23
27
  return <PolarChart
@@ -1,3 +1,39 @@
1
+ import type {
2
+ CSSProperties,
3
+ HTMLAttributes,
4
+ MutableRefObject,
5
+ NativeKeyboardEvent,
6
+ NativeMouseEvent,
7
+ NativeTouchEvent,
8
+ OctaneNode,
9
+ Ref,
10
+ } from '../util/OctaneTypes.ts';
11
+ import type { ExternalMouseEvents } from './types';
12
+ import type { Percent } from '../util/types';
13
+
14
+ export type RechartsWrapperProps =
15
+ ExternalMouseEvents & {
16
+ children: OctaneNode;
17
+ width: number | Percent | undefined;
18
+ height: number | Percent | undefined;
19
+ responsive: boolean;
20
+ className?: string;
21
+ style?: CSSProperties;
22
+ ref?: Ref<HTMLDivElement>;
23
+ dispatchTouchEvents?: boolean;
24
+ };
25
+ type WrapperDivProps =
26
+ Omit<HTMLAttributes<HTMLDivElement>, 'style'> & {
27
+ width: number | string | undefined;
28
+ height: number | string | undefined;
29
+ style?: CSSProperties;
30
+ ref?: Ref<HTMLDivElement>;
31
+ };
32
+ type StaticDivProps =
33
+ Omit<WrapperDivProps, 'width' | 'height'> & {
34
+ width: number;
35
+ height: number;
36
+ };
1
37
  // Port of chart/RechartsWrapper.tsx — the outer <div class="recharts-wrapper">:
2
38
  // hosts the tooltip/legend portals, reports container size (static, read-once,
3
39
  // or ResizeObserver-driven), measures CSS scale, and feeds every user
@@ -27,7 +63,7 @@ function EventSynchronizer() {
27
63
  return null;
28
64
  }
29
65
 
30
- function getNumberOrZero(value) {
66
+ function getNumberOrZero(value: number | string | undefined) {
31
67
  if (typeof value === 'number') {
32
68
  return value;
33
69
  }
@@ -40,9 +76,9 @@ function getNumberOrZero(value) {
40
76
  return 0;
41
77
  }
42
78
 
43
- function ResponsiveDiv(props) {
79
+ function ResponsiveDiv(props: WrapperDivProps) {
44
80
  const { ref, ...divProps } = props;
45
- const observerRef = useRef(null);
81
+ const observerRef: MutableRefObject<ResizeObserver | null> = useRef(null);
46
82
  const [sizes, setSizes] = useState({
47
83
  containerWidth: getNumberOrZero(props.style?.width),
48
84
  containerHeight: getNumberOrZero(props.style?.height),
@@ -73,7 +109,7 @@ function ResponsiveDiv(props) {
73
109
  if (node != null && typeof ResizeObserver !== 'undefined') {
74
110
  const { width: containerWidth, height: containerHeight } = node.getBoundingClientRect();
75
111
  setContainerSize(containerWidth, containerHeight);
76
- const callback = (entries) => {
112
+ const callback = (entries: ResizeObserverEntry[]) => {
77
113
  const entry = entries[0];
78
114
  if (entry == null) {
79
115
  return;
@@ -100,7 +136,7 @@ function ResponsiveDiv(props) {
100
136
  </>;
101
137
  }
102
138
 
103
- function ReadSizeOnceDiv(props) {
139
+ function ReadSizeOnceDiv(props: WrapperDivProps) {
104
140
  // Upstream spreads the FULL props onto the div — width/height included
105
141
  // (they pass through as plain attributes).
106
142
  const { ref, width, height, ...rest } = props;
@@ -136,7 +172,7 @@ function ReadSizeOnceDiv(props) {
136
172
  </>;
137
173
  }
138
174
 
139
- function StaticDiv(props) {
175
+ function StaticDiv(props: StaticDivProps) {
140
176
  const { ref, width, height, ...rest } = props;
141
177
  const divProps = { width, height, ...rest };
142
178
  return <>
@@ -145,7 +181,7 @@ function StaticDiv(props) {
145
181
  </>;
146
182
  }
147
183
 
148
- function NonResponsiveDiv(props) {
184
+ function NonResponsiveDiv(props: WrapperDivProps) {
149
185
  const { width, height } = props;
150
186
  // Percentage/CSS-string sizes: read the real size from the DOM once.
151
187
  if (typeof width === 'string' || typeof height === 'string') {
@@ -164,7 +200,7 @@ function NonResponsiveDiv(props) {
164
200
  </>;
165
201
  }
166
202
 
167
- export function RechartsWrapper(props) {
203
+ export function RechartsWrapper(props: RechartsWrapperProps) {
168
204
  const {
169
205
  children,
170
206
  className,
@@ -186,7 +222,7 @@ export function RechartsWrapper(props) {
186
222
  dispatchTouchEvents = true,
187
223
  ref,
188
224
  } = props;
189
- const containerRef = useRef(null);
225
+ const containerRef: MutableRefObject<HTMLDivElement | null> = useRef<HTMLDivElement | null>(null);
190
226
  const dispatch = useAppDispatch();
191
227
  const [tooltipPortal, setTooltipPortal] = useState(null);
192
228
  const [legendPortal, setLegendPortal] = useState(null);
@@ -211,19 +247,19 @@ export function RechartsWrapper(props) {
211
247
  containerRef.current = node;
212
248
  }
213
249
  }, [setScaleRef, ref, setTooltipPortal, setLegendPortal]);
214
- const myOnClick = useCallback((e) => {
250
+ const myOnClick = useCallback((e: NativeMouseEvent<HTMLDivElement>) => {
215
251
  dispatch(mouseClickAction(e));
216
252
  dispatch(externalEventAction({ handler: onClick, reactEvent: e }));
217
253
  }, [dispatch, onClick]);
218
- const myOnMouseEnter = useCallback((e) => {
254
+ const myOnMouseEnter = useCallback((e: NativeMouseEvent<HTMLDivElement>) => {
219
255
  dispatch(mouseMoveAction(e));
220
256
  dispatch(externalEventAction({ handler: onMouseEnter, reactEvent: e }));
221
257
  }, [dispatch, onMouseEnter]);
222
- const myOnMouseLeave = useCallback((e) => {
258
+ const myOnMouseLeave = useCallback((e: NativeMouseEvent<HTMLDivElement>) => {
223
259
  dispatch(mouseLeaveChart());
224
260
  dispatch(externalEventAction({ handler: onMouseLeave, reactEvent: e }));
225
261
  }, [dispatch, onMouseLeave]);
226
- const myOnMouseMove = useCallback((e) => {
262
+ const myOnMouseMove = useCallback((e: NativeMouseEvent<HTMLDivElement>) => {
227
263
  dispatch(mouseMoveAction(e));
228
264
  dispatch(externalEventAction({ handler: onMouseMove, reactEvent: e }));
229
265
  }, [dispatch, onMouseMove]);
@@ -233,33 +269,33 @@ export function RechartsWrapper(props) {
233
269
  const onBlur = useCallback(() => {
234
270
  dispatch(blurAction());
235
271
  }, [dispatch]);
236
- const onKeyDown = useCallback((e) => {
272
+ const onKeyDown = useCallback((e: NativeKeyboardEvent<HTMLDivElement>) => {
237
273
  dispatch(keyDownAction(e.key));
238
274
  }, [dispatch]);
239
- const myOnContextMenu = useCallback((e) => {
275
+ const myOnContextMenu = useCallback((e: NativeMouseEvent<HTMLDivElement>) => {
240
276
  dispatch(externalEventAction({ handler: onContextMenu, reactEvent: e }));
241
277
  }, [dispatch, onContextMenu]);
242
- const myOnDoubleClick = useCallback((e) => {
278
+ const myOnDoubleClick = useCallback((e: NativeMouseEvent<HTMLDivElement>) => {
243
279
  dispatch(externalEventAction({ handler: onDoubleClick, reactEvent: e }));
244
280
  }, [dispatch, onDoubleClick]);
245
- const myOnMouseDown = useCallback((e) => {
281
+ const myOnMouseDown = useCallback((e: NativeMouseEvent<HTMLDivElement>) => {
246
282
  dispatch(externalEventAction({ handler: onMouseDown, reactEvent: e }));
247
283
  }, [dispatch, onMouseDown]);
248
- const myOnMouseUp = useCallback((e) => {
284
+ const myOnMouseUp = useCallback((e: NativeMouseEvent<HTMLDivElement>) => {
249
285
  dispatch(externalEventAction({ handler: onMouseUp, reactEvent: e }));
250
286
  }, [dispatch, onMouseUp]);
251
- const myOnTouchStart = useCallback((e) => {
287
+ const myOnTouchStart = useCallback((e: NativeTouchEvent<HTMLDivElement>) => {
252
288
  dispatch(externalEventAction({ handler: onTouchStart, reactEvent: e }));
253
289
  }, [dispatch, onTouchStart]);
254
290
  // Touch has no enter/leave; the middleware resolves the touched element via
255
291
  // document.elementFromPoint.
256
- const myOnTouchMove = useCallback((e) => {
292
+ const myOnTouchMove = useCallback((e: NativeTouchEvent<HTMLDivElement>) => {
257
293
  if (dispatchTouchEvents) {
258
294
  dispatch(touchEventAction(e));
259
295
  }
260
296
  dispatch(externalEventAction({ handler: onTouchMove, reactEvent: e }));
261
297
  }, [dispatch, dispatchTouchEvents, onTouchMove]);
262
- const myOnTouchEnd = useCallback((e) => {
298
+ const myOnTouchEnd = useCallback((e: NativeTouchEvent<HTMLDivElement>) => {
263
299
  dispatch(externalEventAction({ handler: onTouchEnd, reactEvent: e }));
264
300
  }, [dispatch, onTouchEnd]);
265
301
  const WrapperDiv = responsive ? ResponsiveDiv : NonResponsiveDiv;