@octanejs/recharts 0.1.41 → 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 (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,68 +1,4 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/scale/getNiceTickValues.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- function _slicedToArray(r, e) {
4
- return (
5
- _arrayWithHoles(r) ||
6
- _iterableToArrayLimit(r, e) ||
7
- _unsupportedIterableToArray(r, e) ||
8
- _nonIterableRest()
9
- );
10
- }
11
- function _nonIterableRest() {
12
- throw new TypeError(
13
- 'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.',
14
- );
15
- }
16
- function _unsupportedIterableToArray(r, a) {
17
- if (r) {
18
- if ('string' == typeof r) return _arrayLikeToArray(r, a);
19
- var t = {}.toString.call(r).slice(8, -1);
20
- return (
21
- 'Object' === t && r.constructor && (t = r.constructor.name),
22
- 'Map' === t || 'Set' === t
23
- ? Array.from(r)
24
- : 'Arguments' === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)
25
- ? _arrayLikeToArray(r, a)
26
- : void 0
27
- );
28
- }
29
- }
30
- function _arrayLikeToArray(r, a) {
31
- (null == a || a > r.length) && (a = r.length);
32
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
33
- return n;
34
- }
35
- function _iterableToArrayLimit(r, l) {
36
- var t =
37
- null == r ? null : ('undefined' != typeof Symbol && r[Symbol.iterator]) || r['@@iterator'];
38
- if (null != t) {
39
- var e,
40
- n,
41
- i,
42
- u,
43
- a = [],
44
- f = !0,
45
- o = !1;
46
- try {
47
- if (((i = (t = t.call(r)).next), 0 === l)) {
48
- if (Object(t) !== t) return;
49
- f = !1;
50
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
51
- } catch (r) {
52
- ((o = !0), (n = r));
53
- } finally {
54
- try {
55
- if (!f && null != t.return && ((u = t.return()), Object(u) !== u)) return;
56
- } finally {
57
- if (o) throw n;
58
- }
59
- }
60
- return a;
61
- }
62
- }
63
- function _arrayWithHoles(r) {
64
- if (Array.isArray(r)) return r;
65
- }
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
66
2
  /**
67
3
  * @fileOverview calculate tick values of scale
68
4
  * @author xile611, arcthur
@@ -70,6 +6,9 @@ function _arrayWithHoles(r) {
70
6
  */
71
7
  import Decimal from 'decimal.js-light';
72
8
  import { getDigitCount, rangeStep } from './util/arithmetic';
9
+ import { NumberDomain } from '../types';
10
+ import { NiceTicksAlgorithm } from '../../state/cartesianAxisSlice';
11
+
73
12
  /**
74
13
  * Calculate a interval of a minimum value and a maximum value
75
14
  *
@@ -77,18 +16,14 @@ import { getDigitCount, rangeStep } from './util/arithmetic';
77
16
  * @param {Number} max The maximum value
78
17
  * @return {Array} An interval
79
18
  */
80
- export var getValidInterval = (_ref) => {
81
- var _ref2 = _slicedToArray(_ref, 2),
82
- min = _ref2[0],
83
- max = _ref2[1];
84
- var validMin = min,
85
- validMax = max;
19
+ export const getValidInterval = ([min, max]: [number, number]): [number, number] => {
20
+ let [validMin, validMax] = [min, max];
86
21
 
87
22
  // exchange
88
23
  if (min > max) {
89
- validMin = max;
90
- validMax = min;
24
+ [validMin, validMax] = [max, min];
91
25
  }
26
+
92
27
  return [validMin, validMax];
93
28
  };
94
29
 
@@ -100,25 +35,39 @@ export var getValidInterval = (_ref) => {
100
35
  * @param correctionFactor A correction factor
101
36
  * @return The step which is easy to understand between two ticks
102
37
  */
103
- export var getAdaptiveStep = (roughStep, allowDecimals, correctionFactor) => {
38
+ export const getAdaptiveStep = (
39
+ roughStep: Decimal,
40
+ allowDecimals: boolean,
41
+ correctionFactor: number,
42
+ ) => {
104
43
  if (roughStep.lte(0)) {
105
44
  return new Decimal(0);
106
45
  }
107
- var digitCount = getDigitCount(roughStep.toNumber());
46
+
47
+ const digitCount = getDigitCount(roughStep.toNumber());
108
48
  // The ratio between the rough step and the smallest number which has a bigger
109
49
  // order of magnitudes than the rough step
110
- var digitCountValue = new Decimal(10).pow(digitCount);
111
- var stepRatio = roughStep.div(digitCountValue);
50
+ const digitCountValue = new Decimal(10).pow(digitCount);
51
+ const stepRatio = roughStep.div(digitCountValue);
112
52
  // When an integer and a float multiplied, the accuracy of result may be wrong
113
- var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;
114
- var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber()))
53
+ const stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;
54
+ const amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber()))
115
55
  .add(correctionFactor)
116
56
  .mul(stepRatioScale);
117
- var formatStep = amendStepRatio.mul(digitCountValue);
57
+
58
+ const formatStep = amendStepRatio.mul(digitCountValue);
59
+
118
60
  return allowDecimals
119
61
  ? new Decimal(formatStep.toNumber())
120
62
  : new Decimal(Math.ceil(formatStep.toNumber()));
121
63
  };
64
+
65
+ type StepFunction = (
66
+ roughStep: Decimal,
67
+ allowDecimals: boolean,
68
+ correctionFactor: number,
69
+ ) => Decimal;
70
+
122
71
  /**
123
72
  * The snap125 step algorithm snaps to nice numbers (1, 2, 2.5, 5) at each
124
73
  * order of magnitude, producing human-friendly tick intervals like
@@ -131,21 +80,26 @@ export var getAdaptiveStep = (roughStep, allowDecimals, correctionFactor) => {
131
80
  * @param correctionFactor A correction factor
132
81
  * @return The step which is easy to understand between two ticks
133
82
  */
134
- export var getSnap125Step = (roughStep, allowDecimals, correctionFactor) => {
135
- var _NICE_STEPS$niceIdx;
83
+ export const getSnap125Step: StepFunction = (
84
+ roughStep: Decimal,
85
+ allowDecimals: boolean,
86
+ correctionFactor: number,
87
+ ) => {
136
88
  if (roughStep.lte(0)) {
137
89
  return new Decimal(0);
138
90
  }
139
- var NICE_STEPS = [1, 2, 2.5, 5];
140
- var roughNum = roughStep.toNumber();
141
- var exponent = Math.floor(new Decimal(roughNum).abs().log(10).toNumber());
142
- var magnitude = new Decimal(10).pow(exponent);
91
+
92
+ const NICE_STEPS = [1, 2, 2.5, 5];
93
+
94
+ const roughNum = roughStep.toNumber();
95
+ const exponent = Math.floor(new Decimal(roughNum).abs().log(10).toNumber());
96
+ let magnitude = new Decimal(10).pow(exponent);
143
97
 
144
98
  // normalized is in the range [1, 10)
145
- var normalized = roughStep.div(magnitude).toNumber();
99
+ const normalized = roughStep.div(magnitude).toNumber();
146
100
 
147
101
  // Find the smallest nice step >= normalized (ceiling)
148
- var niceIdx = NICE_STEPS.findIndex((s) => s >= normalized - 1e-10);
102
+ let niceIdx = NICE_STEPS.findIndex((s) => s >= normalized - 1e-10);
149
103
  if (niceIdx === -1) {
150
104
  // normalized > 5 (e.g. 7.3), move to next order of magnitude
151
105
  magnitude = magnitude.mul(10);
@@ -155,15 +109,14 @@ export var getSnap125Step = (roughStep, allowDecimals, correctionFactor) => {
155
109
  // Apply correction factor by stepping through the nice number sequence
156
110
  niceIdx += correctionFactor;
157
111
  if (niceIdx >= NICE_STEPS.length) {
158
- var extraMag = Math.floor(niceIdx / NICE_STEPS.length);
112
+ const extraMag = Math.floor(niceIdx / NICE_STEPS.length);
159
113
  niceIdx %= NICE_STEPS.length;
160
114
  magnitude = magnitude.mul(new Decimal(10).pow(extraMag));
161
115
  }
162
- var niceStep =
163
- (_NICE_STEPS$niceIdx = NICE_STEPS[niceIdx]) !== null && _NICE_STEPS$niceIdx !== void 0
164
- ? _NICE_STEPS$niceIdx
165
- : 1;
166
- var formatStep = new Decimal(niceStep).mul(magnitude);
116
+
117
+ const niceStep = NICE_STEPS[niceIdx] ?? 1;
118
+ const formatStep = new Decimal(niceStep).mul(magnitude);
119
+
167
120
  return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep.toNumber()));
168
121
  };
169
122
 
@@ -175,15 +128,22 @@ export var getSnap125Step = (roughStep, allowDecimals, correctionFactor) => {
175
128
  * @param allowDecimals Allow the ticks to be decimals or not
176
129
  * @return array of ticks
177
130
  */
178
- export var getTickOfSingleValue = (value, tickCount, allowDecimals) => {
179
- var step = new Decimal(1);
131
+ export const getTickOfSingleValue = (
132
+ value: number,
133
+ tickCount: number,
134
+ allowDecimals: boolean,
135
+ ): Array<number> => {
136
+ let step: Decimal = new Decimal(1);
180
137
  // calculate the middle value of ticks
181
- var middle = new Decimal(value);
138
+ let middle = new Decimal(value);
139
+
182
140
  if (!middle.isint() && allowDecimals) {
183
- var absVal = Math.abs(value);
141
+ const absVal = Math.abs(value);
142
+
184
143
  if (absVal < 1) {
185
144
  // The step should be a float number when the difference is smaller than 1
186
145
  step = new Decimal(10).pow(getDigitCount(value) - 1);
146
+
187
147
  middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);
188
148
  } else if (absVal > 1) {
189
149
  // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1
@@ -194,11 +154,14 @@ export var getTickOfSingleValue = (value, tickCount, allowDecimals) => {
194
154
  } else if (!allowDecimals) {
195
155
  middle = new Decimal(Math.floor(value));
196
156
  }
197
- var middleIndex = Math.floor((tickCount - 1) / 2);
198
- var ticks = [];
199
- for (var i = 0; i < tickCount; i++) {
157
+
158
+ const middleIndex = Math.floor((tickCount - 1) / 2);
159
+ const ticks: Array<number> = [];
160
+
161
+ for (let i = 0; i < tickCount; i++) {
200
162
  ticks.push(middle.add(new Decimal(i - middleIndex).mul(step)).toNumber());
201
163
  }
164
+
202
165
  return ticks;
203
166
  };
204
167
 
@@ -212,9 +175,18 @@ export var getTickOfSingleValue = (value, tickCount, allowDecimals) => {
212
175
  * @param correctionFactor A correction factor
213
176
  * @return The step, minimum value of ticks, maximum value of ticks
214
177
  */
215
- var _calculateStep = function calculateStep(min, max, tickCount, allowDecimals) {
216
- var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
217
- var stepFn = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : getAdaptiveStep;
178
+ export const calculateStep = (
179
+ min: number,
180
+ max: number,
181
+ tickCount: number,
182
+ allowDecimals: boolean,
183
+ correctionFactor: number = 0,
184
+ stepFn: StepFunction = getAdaptiveStep,
185
+ ): {
186
+ step: Decimal;
187
+ tickMin: Decimal;
188
+ tickMax: Decimal;
189
+ } => {
218
190
  // dirty hack (for recharts' test)
219
191
  if (!Number.isFinite((max - min) / (tickCount - 1))) {
220
192
  return {
@@ -225,10 +197,14 @@ var _calculateStep = function calculateStep(min, max, tickCount, allowDecimals)
225
197
  }
226
198
 
227
199
  // The step which is easy to understand between two ticks
228
- var step = stepFn(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor);
200
+ const step = stepFn(
201
+ new Decimal(max).sub(min).div(tickCount - 1),
202
+ allowDecimals,
203
+ correctionFactor,
204
+ );
229
205
 
230
206
  // A medial value of ticks
231
- var middle;
207
+ let middle;
232
208
 
233
209
  // When 0 is inside the interval, 0 should be a tick
234
210
  if (min <= 0 && max >= 0) {
@@ -239,18 +215,21 @@ var _calculateStep = function calculateStep(min, max, tickCount, allowDecimals)
239
215
  // minus modulo value
240
216
  middle = middle.sub(new Decimal(middle).mod(step));
241
217
  }
242
- var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());
243
- var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());
244
- var scaleCount = belowCount + upCount + 1;
218
+
219
+ let belowCount = Math.ceil(middle.sub(min).div(step).toNumber());
220
+ let upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());
221
+ const scaleCount = belowCount + upCount + 1;
222
+
245
223
  if (scaleCount > tickCount) {
246
224
  // When more ticks need to cover the interval, step should be bigger.
247
- return _calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1, stepFn);
225
+ return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1, stepFn);
248
226
  }
249
227
  if (scaleCount < tickCount) {
250
228
  // When less ticks can cover the interval, we should add some additional ticks
251
229
  upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;
252
230
  belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);
253
231
  }
232
+
254
233
  return {
255
234
  step,
256
235
  tickMin: middle.sub(new Decimal(belowCount).mul(step)),
@@ -268,38 +247,36 @@ var _calculateStep = function calculateStep(min, max, tickCount, allowDecimals)
268
247
  * @param niceTicksMode The algorithm to use for calculating nice ticks.
269
248
  * @return array of ticks
270
249
  */
271
- export { _calculateStep as calculateStep };
272
- export var getNiceTickValues = function getNiceTickValues(_ref3) {
273
- var _ref4 = _slicedToArray(_ref3, 2),
274
- min = _ref4[0],
275
- max = _ref4[1];
276
- var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;
277
- var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
278
- var niceTicksMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'auto';
250
+ export const getNiceTickValues = (
251
+ [min, max]: NumberDomain,
252
+ tickCount = 6,
253
+ allowDecimals = true,
254
+ niceTicksMode: NiceTicksAlgorithm = 'auto',
255
+ ): number[] => {
279
256
  // More than two ticks should be return
280
- var count = Math.max(tickCount, 2);
281
- var _getValidInterval = getValidInterval([min, max]),
282
- _getValidInterval2 = _slicedToArray(_getValidInterval, 2),
283
- cormin = _getValidInterval2[0],
284
- cormax = _getValidInterval2[1];
257
+ const count = Math.max(tickCount, 2);
258
+ const [cormin, cormax] = getValidInterval([min, max]);
259
+
285
260
  if (cormin === -Infinity || cormax === Infinity) {
286
- var _values =
261
+ const values: Array<number> =
287
262
  cormax === Infinity
288
263
  ? [cormin, ...Array(tickCount - 1).fill(Infinity)]
289
264
  : [...Array(tickCount - 1).fill(-Infinity), cormax];
290
- return min > max ? _values.reverse() : _values;
265
+
266
+ return min > max ? values.reverse() : values;
291
267
  }
268
+
292
269
  if (cormin === cormax) {
293
270
  return getTickOfSingleValue(cormin, tickCount, allowDecimals);
294
271
  }
295
- var stepFn = niceTicksMode === 'snap125' ? getSnap125Step : getAdaptiveStep;
272
+
273
+ const stepFn = niceTicksMode === 'snap125' ? getSnap125Step : getAdaptiveStep;
296
274
 
297
275
  // Get the step between two ticks
298
- var _calculateStep2 = _calculateStep(cormin, cormax, count, allowDecimals, 0, stepFn),
299
- step = _calculateStep2.step,
300
- tickMin = _calculateStep2.tickMin,
301
- tickMax = _calculateStep2.tickMax;
302
- var values = rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);
276
+ const { step, tickMin, tickMax } = calculateStep(cormin, cormax, count, allowDecimals, 0, stepFn);
277
+
278
+ const values = rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);
279
+
303
280
  return min > max ? values.reverse() : values;
304
281
  };
305
282
 
@@ -313,27 +290,28 @@ export var getNiceTickValues = function getNiceTickValues(_ref3) {
313
290
  * @param niceTicksMode The algorithm to use for calculating nice ticks. See {@link NiceTicksAlgorithm}.
314
291
  * @return array of ticks
315
292
  */
316
- export var getTickValuesFixedDomain = function getTickValuesFixedDomain(_ref5, tickCount) {
317
- var _ref6 = _slicedToArray(_ref5, 2),
318
- min = _ref6[0],
319
- max = _ref6[1];
320
- var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
321
- var niceTicksMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'auto';
293
+ export const getTickValuesFixedDomain = (
294
+ [min, max]: NumberDomain,
295
+ tickCount: number,
296
+ allowDecimals = true,
297
+ niceTicksMode: NiceTicksAlgorithm = 'auto',
298
+ ) => {
322
299
  // More than two ticks should be return
323
- var _getValidInterval3 = getValidInterval([min, max]),
324
- _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),
325
- cormin = _getValidInterval4[0],
326
- cormax = _getValidInterval4[1];
300
+ const [cormin, cormax] = getValidInterval([min, max]);
301
+
327
302
  if (cormin === -Infinity || cormax === Infinity) {
328
303
  return [min, max];
329
304
  }
305
+
330
306
  if (cormin === cormax) {
331
307
  return [cormin];
332
308
  }
333
- var stepFn = niceTicksMode === 'snap125' ? getSnap125Step : getAdaptiveStep;
334
- var count = Math.max(tickCount, 2);
335
- var step = stepFn(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);
336
- var values = [...rangeStep(new Decimal(cormin), new Decimal(cormax), step), cormax];
309
+
310
+ const stepFn = niceTicksMode === 'snap125' ? getSnap125Step : getAdaptiveStep;
311
+ const count = Math.max(tickCount, 2);
312
+ const step = stepFn(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);
313
+ let values = [...rangeStep(new Decimal(cormin), new Decimal(cormax), step), cormax];
314
+
337
315
  if (allowDecimals === false) {
338
316
  /*
339
317
  * allowDecimals is false means that we want to have integer ticks.
@@ -345,10 +323,11 @@ export var getTickValuesFixedDomain = function getTickValuesFixedDomain(_ref5, t
345
323
  * with a duplicate trailing tick. Remove it.
346
324
  */
347
325
  values = values.map((value) => Math.round(value));
348
- var last = values.length - 1;
326
+ const last = values.length - 1;
349
327
  if (last > 0 && values[last] === values[last - 1]) {
350
328
  values = values.slice(0, last);
351
329
  }
352
330
  }
331
+
353
332
  return min > max ? values.reverse() : values;
354
333
  };
@@ -0,0 +1,2 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ export { getNiceTickValues, getTickValuesFixedDomain } from './getNiceTickValues';
@@ -1,5 +1,4 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/scale/util/arithmetic.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
  * @fileOverview Some common arithmetic methods
5
4
  * @author xile611
@@ -16,13 +15,15 @@ import Decimal from 'decimal.js-light';
16
15
  * @param {Number} value The number
17
16
  * @return {Integer} Digit count
18
17
  */
19
- function getDigitCount(value) {
20
- var result;
18
+ function getDigitCount(value: number) {
19
+ let result;
20
+
21
21
  if (value === 0) {
22
22
  result = 1;
23
23
  } else {
24
24
  result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;
25
25
  }
26
+
26
27
  return result;
27
28
  }
28
29
 
@@ -35,17 +36,20 @@ function getDigitCount(value) {
35
36
  * @param {Decimal} step Step size
36
37
  * @return {Array} Array of numbers
37
38
  */
38
- function rangeStep(start, end, step) {
39
- var num = new Decimal(start);
40
- var i = 0;
41
- var result = [];
39
+ function rangeStep(start: Decimal, end: Decimal, step: Decimal): Array<number> {
40
+ let num = new Decimal(start);
41
+ let i = 0;
42
+ const result: Array<number> = [];
42
43
 
43
44
  // magic number to prevent infinite loop
44
45
  while (num.lt(end) && i < 100000) {
45
46
  result.push(num.toNumber());
47
+
46
48
  num = num.add(step);
47
49
  i++;
48
50
  }
51
+
49
52
  return result;
50
53
  }
54
+
51
55
  export { rangeStep, getDigitCount };
@@ -0,0 +1,21 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { StackSeriesIdentifier } from './stackTypes';
3
+ import { MaybeStackedGraphicalItem } from '../../state/types/StackedGraphicalItem';
4
+
5
+ export function getStackSeriesIdentifier(
6
+ graphicalItem: MaybeStackedGraphicalItem,
7
+ ): StackSeriesIdentifier;
8
+ export function getStackSeriesIdentifier(graphicalItem: undefined): undefined;
9
+ export function getStackSeriesIdentifier(
10
+ graphicalItem: MaybeStackedGraphicalItem | undefined,
11
+ ): StackSeriesIdentifier | undefined;
12
+ /**
13
+ * Returns identifier for stack series which is one individual graphical item in the stack.
14
+ * @param graphicalItem - The graphical item representing the series in the stack.
15
+ * @return The identifier for the series in the stack
16
+ */
17
+ export function getStackSeriesIdentifier(
18
+ graphicalItem: MaybeStackedGraphicalItem | undefined,
19
+ ): StackSeriesIdentifier | undefined {
20
+ return graphicalItem?.id;
21
+ }
@@ -0,0 +1,58 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import { Series } from 'victory-vendor/d3-shape';
3
+ import { StackId } from '../ChartUtils';
4
+ import { GraphicalItemId } from '../../state/graphicalItemsSlice';
5
+ import { MaybeStackedGraphicalItem } from '../../state/types/StackedGraphicalItem';
6
+
7
+ /*
8
+ * So chart stacks come in layers:
9
+ *
10
+ * - The top layer is the stack itself, which is a collection of series. The stack is identified by the `StackId` of the stack.
11
+ * The StackId is defined by the `stackId` prop of the graphical items.
12
+ * A typical stacked chart will have a single stack, but Recharts allows for multiple stacks.
13
+ *
14
+ * - One stack will have multiple series, which are the individual data series that make up the stack.
15
+ * This is the second layer of the stack.
16
+ * One series is represented by a single `GraphicalItem` in the stack.
17
+ * This function returns the identifier for the series.
18
+ *
19
+ * - Finally the third layer is the data point itself, which is a tuple of two numbers.
20
+ */
21
+
22
+ /**
23
+ * Collection of all stacks in the chart.
24
+ * A simple stacked chart will have a single stack. Recharts allows for multiple stacks.
25
+ * In a chart without stacks, this will be an empty object.
26
+ */
27
+ export type AllStackGroups = Record<StackId, StackGroup>;
28
+
29
+ /**
30
+ * One stack group is a collection of series that are stacked together.
31
+ * The stack series and graphical items are joined by the StackSeriesIdentifier.
32
+ */
33
+ export type StackGroup = {
34
+ readonly stackedData: ReadonlyArray<StackSeries>;
35
+ readonly graphicalItems: ReadonlyArray<MaybeStackedGraphicalItem>;
36
+ };
37
+
38
+ /**
39
+ * Stack series is a collection of data points. This represents one individual graphical item in the stack.
40
+ * There are presumably other series in the stack, which are represented by other `StackSeries` objects
41
+ * that this object will not know about.
42
+ * The coordinates of the data points in the series already include the baseline of the previous series in the stack.
43
+ */
44
+ export type StackSeries = Series<StackDataPoint, StackSeriesIdentifier>;
45
+
46
+ /**
47
+ * Stack data point is a tuple of two numbers:
48
+ * first, where the previous stack series ended,
49
+ * and second, where the current stack series ends.
50
+ * This allows for setting the baseline of the next series in the stack.
51
+ */
52
+ export type StackDataPoint = [number, number];
53
+
54
+ /**
55
+ * Identifier for a series in the stack.
56
+ * Used to join the stack series with the graphical items in the stack.
57
+ */
58
+ export type StackSeriesIdentifier = GraphicalItemId;