@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,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;