@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,180 +0,0 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/DOMUtils.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- function ownKeys(e, r) {
4
- var t = Object.keys(e);
5
- if (Object.getOwnPropertySymbols) {
6
- var o = Object.getOwnPropertySymbols(e);
7
- (r &&
8
- (o = o.filter(function (r) {
9
- return Object.getOwnPropertyDescriptor(e, r).enumerable;
10
- })),
11
- t.push.apply(t, o));
12
- }
13
- return t;
14
- }
15
- function _objectSpread(e) {
16
- for (var r = 1; r < arguments.length; r++) {
17
- var t = null != arguments[r] ? arguments[r] : {};
18
- r % 2
19
- ? ownKeys(Object(t), !0).forEach(function (r) {
20
- _defineProperty(e, r, t[r]);
21
- })
22
- : Object.getOwnPropertyDescriptors
23
- ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t))
24
- : ownKeys(Object(t)).forEach(function (r) {
25
- Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
26
- });
27
- }
28
- return e;
29
- }
30
- function _defineProperty(e, r, t) {
31
- return (
32
- (r = _toPropertyKey(r)) in e
33
- ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 })
34
- : (e[r] = t),
35
- e
36
- );
37
- }
38
- function _toPropertyKey(t) {
39
- var i = _toPrimitive(t, 'string');
40
- return 'symbol' == typeof i ? i : i + '';
41
- }
42
- function _toPrimitive(t, r) {
43
- if ('object' != typeof t || !t) return t;
44
- var e = t[Symbol.toPrimitive];
45
- if (void 0 !== e) {
46
- var i = e.call(t, r || 'default');
47
- if ('object' != typeof i) return i;
48
- throw new TypeError('@@toPrimitive must return a primitive value.');
49
- }
50
- return ('string' === r ? String : Number)(t);
51
- }
52
- import { Global } from './Global';
53
- import { LRUCache } from './LRUCache';
54
- var defaultConfig = {
55
- cacheSize: 2000,
56
- enableCache: true,
57
- };
58
- var currentConfig = _objectSpread({}, defaultConfig);
59
- var stringCache = new LRUCache(currentConfig.cacheSize);
60
- var SPAN_STYLE = {
61
- position: 'absolute',
62
- top: '-20000px',
63
- left: 0,
64
- padding: 0,
65
- margin: 0,
66
- border: 'none',
67
- whiteSpace: 'pre',
68
- };
69
- var MEASUREMENT_SPAN_ID = 'recharts_measurement_span';
70
- function createCacheKey(text, style) {
71
- // Simple string concatenation for better performance than JSON.stringify
72
- var fontSize = style.fontSize || '';
73
- var fontFamily = style.fontFamily || '';
74
- var fontWeight = style.fontWeight || '';
75
- var fontStyle = style.fontStyle || '';
76
- var letterSpacing = style.letterSpacing || '';
77
- var textTransform = style.textTransform || '';
78
- return ''
79
- .concat(text, '|')
80
- .concat(fontSize, '|')
81
- .concat(fontFamily, '|')
82
- .concat(fontWeight, '|')
83
- .concat(fontStyle, '|')
84
- .concat(letterSpacing, '|')
85
- .concat(textTransform);
86
- }
87
-
88
- /**
89
- * Measure text using DOM (accurate but slower)
90
- * @param text - The text to measure
91
- * @param style - CSS style properties to apply
92
- * @returns The size of the text
93
- */
94
- var measureTextWithDOM = (text, style) => {
95
- try {
96
- var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);
97
- if (!measurementSpan) {
98
- measurementSpan = document.createElement('span');
99
- measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);
100
- measurementSpan.setAttribute('aria-hidden', 'true');
101
- document.body.appendChild(measurementSpan);
102
- }
103
-
104
- // Apply styles directly without unnecessary object creation
105
- Object.assign(measurementSpan.style, SPAN_STYLE, style);
106
- measurementSpan.textContent = ''.concat(text);
107
- var rect = measurementSpan.getBoundingClientRect();
108
- return {
109
- width: rect.width,
110
- height: rect.height,
111
- };
112
- } catch (_unused) {
113
- return {
114
- width: 0,
115
- height: 0,
116
- };
117
- }
118
- };
119
- export var getStringSize = function getStringSize(text) {
120
- var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
121
- if (text === undefined || text === null || Global.isSsr) {
122
- return {
123
- width: 0,
124
- height: 0,
125
- };
126
- }
127
-
128
- // If caching is disabled, measure directly
129
- if (!currentConfig.enableCache) {
130
- return measureTextWithDOM(text, style);
131
- }
132
- var cacheKey = createCacheKey(text, style);
133
- var cachedResult = stringCache.get(cacheKey);
134
- if (cachedResult) {
135
- return cachedResult;
136
- }
137
-
138
- // Measure using DOM
139
- var result = measureTextWithDOM(text, style);
140
-
141
- // Store in LRU cache
142
- stringCache.set(cacheKey, result);
143
- return result;
144
- };
145
-
146
- /**
147
- * Configure text measurement behavior
148
- * @param config - Partial configuration to apply
149
- * @returns void
150
- */
151
- export var configureTextMeasurement = (config) => {
152
- var newConfig = _objectSpread(_objectSpread({}, currentConfig), config);
153
- if (newConfig.cacheSize !== currentConfig.cacheSize) {
154
- stringCache = new LRUCache(newConfig.cacheSize);
155
- }
156
- currentConfig = newConfig;
157
- };
158
-
159
- /**
160
- * Get current text measurement configuration
161
- * @returns Current configuration
162
- */
163
- export var getTextMeasurementConfig = () => _objectSpread({}, currentConfig);
164
-
165
- /**
166
- * Clear the string size cache. Useful for testing or memory management.
167
- * @returns void
168
- */
169
- export var clearStringCache = () => {
170
- stringCache.clear();
171
- };
172
-
173
- /**
174
- * Get cache statistics for debugging purposes.
175
- * @returns Cache statistics including size and max size
176
- */
177
- export var getStringCacheStats = () => ({
178
- size: stringCache.size(),
179
- maxSize: currentConfig.cacheSize,
180
- });
@@ -1,7 +0,0 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/Events.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- import EventEmitter from 'eventemitter3';
4
- var eventCenter = new EventEmitter();
5
- export { eventCenter };
6
- export var TOOLTIP_SYNC_EVENT = 'recharts.syncEvent.tooltip';
7
- export var BRUSH_SYNC_EVENT = 'recharts.syncEvent.brush';
@@ -1,13 +0,0 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/Global.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- var parseIsSsrByDefault = () =>
4
- !(
5
- typeof window !== 'undefined' &&
6
- window.document &&
7
- Boolean(window.document.createElement) &&
8
- window.setTimeout
9
- );
10
- export var Global = {
11
- devToolsEnabled: true,
12
- isSsr: parseIsSsrByDefault(),
13
- };
@@ -1,58 +0,0 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/LRUCache.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- function _defineProperty(e, r, t) {
4
- return (
5
- (r = _toPropertyKey(r)) in e
6
- ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 })
7
- : (e[r] = t),
8
- e
9
- );
10
- }
11
- function _toPropertyKey(t) {
12
- var i = _toPrimitive(t, 'string');
13
- return 'symbol' == typeof i ? i : i + '';
14
- }
15
- function _toPrimitive(t, r) {
16
- if ('object' != typeof t || !t) return t;
17
- var e = t[Symbol.toPrimitive];
18
- if (void 0 !== e) {
19
- var i = e.call(t, r || 'default');
20
- if ('object' != typeof i) return i;
21
- throw new TypeError('@@toPrimitive must return a primitive value.');
22
- }
23
- return ('string' === r ? String : Number)(t);
24
- }
25
- /**
26
- * Simple LRU (Least Recently Used) cache implementation
27
- */
28
- export class LRUCache {
29
- constructor(maxSize) {
30
- _defineProperty(this, 'cache', new Map());
31
- this.maxSize = maxSize;
32
- }
33
- get(key) {
34
- var value = this.cache.get(key);
35
- if (value !== undefined) {
36
- this.cache.delete(key);
37
- this.cache.set(key, value);
38
- }
39
- return value;
40
- }
41
- set(key, value) {
42
- if (this.cache.has(key)) {
43
- this.cache.delete(key);
44
- } else if (this.cache.size >= this.maxSize) {
45
- var firstKey = this.cache.keys().next().value;
46
- if (firstKey != null) {
47
- this.cache.delete(firstKey);
48
- }
49
- }
50
- this.cache.set(key, value);
51
- }
52
- clear() {
53
- this.cache.clear();
54
- }
55
- size() {
56
- return this.cache.size;
57
- }
58
- }
@@ -1,190 +0,0 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/PolarUtils.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- function ownKeys(e, r) {
4
- var t = Object.keys(e);
5
- if (Object.getOwnPropertySymbols) {
6
- var o = Object.getOwnPropertySymbols(e);
7
- (r &&
8
- (o = o.filter(function (r) {
9
- return Object.getOwnPropertyDescriptor(e, r).enumerable;
10
- })),
11
- t.push.apply(t, o));
12
- }
13
- return t;
14
- }
15
- function _objectSpread(e) {
16
- for (var r = 1; r < arguments.length; r++) {
17
- var t = null != arguments[r] ? arguments[r] : {};
18
- r % 2
19
- ? ownKeys(Object(t), !0).forEach(function (r) {
20
- _defineProperty(e, r, t[r]);
21
- })
22
- : Object.getOwnPropertyDescriptors
23
- ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t))
24
- : ownKeys(Object(t)).forEach(function (r) {
25
- Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
26
- });
27
- }
28
- return e;
29
- }
30
- function _defineProperty(e, r, t) {
31
- return (
32
- (r = _toPropertyKey(r)) in e
33
- ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 })
34
- : (e[r] = t),
35
- e
36
- );
37
- }
38
- function _toPropertyKey(t) {
39
- var i = _toPrimitive(t, 'string');
40
- return 'symbol' == typeof i ? i : i + '';
41
- }
42
- function _toPrimitive(t, r) {
43
- if ('object' != typeof t || !t) return t;
44
- var e = t[Symbol.toPrimitive];
45
- if (void 0 !== e) {
46
- var i = e.call(t, r || 'default');
47
- if ('object' != typeof i) return i;
48
- throw new TypeError('@@toPrimitive must return a primitive value.');
49
- }
50
- return ('string' === r ? String : Number)(t);
51
- }
52
- export var RADIAN = Math.PI / 180;
53
- export var degreeToRadian = (angle) => (angle * Math.PI) / 180;
54
- export var radianToDegree = (angleInRadian) => (angleInRadian * 180) / Math.PI;
55
- export var polarToCartesian = (cx, cy, radius, angle) => ({
56
- x: cx + Math.cos(-RADIAN * angle) * radius,
57
- y: cy + Math.sin(-RADIAN * angle) * radius,
58
- });
59
- export var getMaxRadius = function getMaxRadius(width, height) {
60
- var offset =
61
- arguments.length > 2 && arguments[2] !== undefined
62
- ? arguments[2]
63
- : {
64
- top: 0,
65
- right: 0,
66
- bottom: 0,
67
- left: 0,
68
- width: 0,
69
- height: 0,
70
- brushBottom: 0,
71
- };
72
- return (
73
- Math.min(
74
- Math.abs(width - (offset.left || 0) - (offset.right || 0)),
75
- Math.abs(height - (offset.top || 0) - (offset.bottom || 0)),
76
- ) / 2
77
- );
78
- };
79
- var distanceBetweenPoints = (point, anotherPoint) => {
80
- var x1 = point.x,
81
- y1 = point.y;
82
- var x2 = anotherPoint.x,
83
- y2 = anotherPoint.y;
84
- return Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2);
85
- };
86
- var getAngleOfPoint = (_ref, _ref2) => {
87
- var x = _ref.x,
88
- y = _ref.y;
89
- var cx = _ref2.cx,
90
- cy = _ref2.cy;
91
- var radius = distanceBetweenPoints(
92
- {
93
- x,
94
- y,
95
- },
96
- {
97
- x: cx,
98
- y: cy,
99
- },
100
- );
101
- if (radius <= 0) {
102
- return {
103
- radius,
104
- angle: 0,
105
- };
106
- }
107
- var cos = (x - cx) / radius;
108
- var angleInRadian = Math.acos(cos);
109
- if (y > cy) {
110
- angleInRadian = 2 * Math.PI - angleInRadian;
111
- }
112
- return {
113
- radius,
114
- angle: radianToDegree(angleInRadian),
115
- angleInRadian,
116
- };
117
- };
118
- var formatAngleOfSector = (_ref3) => {
119
- var startAngle = _ref3.startAngle,
120
- endAngle = _ref3.endAngle;
121
- var startCnt = Math.floor(startAngle / 360);
122
- var endCnt = Math.floor(endAngle / 360);
123
- var min = Math.min(startCnt, endCnt);
124
- return {
125
- startAngle: startAngle - min * 360,
126
- endAngle: endAngle - min * 360,
127
- };
128
- };
129
- var reverseFormatAngleOfSector = (angle, _ref4) => {
130
- var startAngle = _ref4.startAngle,
131
- endAngle = _ref4.endAngle;
132
- var startCnt = Math.floor(startAngle / 360);
133
- var endCnt = Math.floor(endAngle / 360);
134
- var min = Math.min(startCnt, endCnt);
135
- return angle + min * 360;
136
- };
137
- export var inRangeOfSector = (_ref5, viewBox) => {
138
- var x = _ref5.relativeX,
139
- y = _ref5.relativeY;
140
- var _getAngleOfPoint = getAngleOfPoint(
141
- {
142
- x,
143
- y,
144
- },
145
- viewBox,
146
- ),
147
- radius = _getAngleOfPoint.radius,
148
- angle = _getAngleOfPoint.angle;
149
- var innerRadius = viewBox.innerRadius,
150
- outerRadius = viewBox.outerRadius;
151
- if (radius < innerRadius || radius > outerRadius) {
152
- return null;
153
- }
154
- if (radius === 0) {
155
- return null;
156
- }
157
- var _formatAngleOfSector = formatAngleOfSector(viewBox),
158
- startAngle = _formatAngleOfSector.startAngle,
159
- endAngle = _formatAngleOfSector.endAngle;
160
- var formatAngle = angle;
161
- var inRange;
162
- if (startAngle <= endAngle) {
163
- while (formatAngle > endAngle) {
164
- formatAngle -= 360;
165
- }
166
- while (formatAngle < startAngle) {
167
- formatAngle += 360;
168
- }
169
- inRange = formatAngle >= startAngle && formatAngle <= endAngle;
170
- } else {
171
- while (formatAngle > startAngle) {
172
- formatAngle -= 360;
173
- }
174
- while (formatAngle < endAngle) {
175
- formatAngle += 360;
176
- }
177
- inRange = formatAngle >= endAngle && formatAngle <= startAngle;
178
- }
179
- if (inRange) {
180
- return _objectSpread(
181
- _objectSpread({}, viewBox),
182
- {},
183
- {
184
- radius,
185
- angle: reverseFormatAngleOfSector(formatAngle, viewBox),
186
- },
187
- );
188
- }
189
- return null;
190
- };
@@ -1,260 +0,0 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/ReduceCSSCalc.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- var _DecimalCSS;
4
- function _slicedToArray(r, e) {
5
- return (
6
- _arrayWithHoles(r) ||
7
- _iterableToArrayLimit(r, e) ||
8
- _unsupportedIterableToArray(r, e) ||
9
- _nonIterableRest()
10
- );
11
- }
12
- function _nonIterableRest() {
13
- throw new TypeError(
14
- 'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.',
15
- );
16
- }
17
- function _unsupportedIterableToArray(r, a) {
18
- if (r) {
19
- if ('string' == typeof r) return _arrayLikeToArray(r, a);
20
- var t = {}.toString.call(r).slice(8, -1);
21
- return (
22
- 'Object' === t && r.constructor && (t = r.constructor.name),
23
- 'Map' === t || 'Set' === t
24
- ? Array.from(r)
25
- : 'Arguments' === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)
26
- ? _arrayLikeToArray(r, a)
27
- : void 0
28
- );
29
- }
30
- }
31
- function _arrayLikeToArray(r, a) {
32
- (null == a || a > r.length) && (a = r.length);
33
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
34
- return n;
35
- }
36
- function _iterableToArrayLimit(r, l) {
37
- var t =
38
- null == r ? null : ('undefined' != typeof Symbol && r[Symbol.iterator]) || r['@@iterator'];
39
- if (null != t) {
40
- var e,
41
- n,
42
- i,
43
- u,
44
- a = [],
45
- f = !0,
46
- o = !1;
47
- try {
48
- if (((i = (t = t.call(r)).next), 0 === l)) {
49
- if (Object(t) !== t) return;
50
- f = !1;
51
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
52
- } catch (r) {
53
- ((o = !0), (n = r));
54
- } finally {
55
- try {
56
- if (!f && null != t.return && ((u = t.return()), Object(u) !== u)) return;
57
- } finally {
58
- if (o) throw n;
59
- }
60
- }
61
- return a;
62
- }
63
- }
64
- function _arrayWithHoles(r) {
65
- if (Array.isArray(r)) return r;
66
- }
67
- function _defineProperty(e, r, t) {
68
- return (
69
- (r = _toPropertyKey(r)) in e
70
- ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 })
71
- : (e[r] = t),
72
- e
73
- );
74
- }
75
- function _toPropertyKey(t) {
76
- var i = _toPrimitive(t, 'string');
77
- return 'symbol' == typeof i ? i : i + '';
78
- }
79
- function _toPrimitive(t, r) {
80
- if ('object' != typeof t || !t) return t;
81
- var e = t[Symbol.toPrimitive];
82
- if (void 0 !== e) {
83
- var i = e.call(t, r || 'default');
84
- if ('object' != typeof i) return i;
85
- throw new TypeError('@@toPrimitive must return a primitive value.');
86
- }
87
- return ('string' === r ? String : Number)(t);
88
- }
89
- import { isNan } from './DataUtils';
90
- var MULTIPLY_OR_DIVIDE_REGEX = /(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/;
91
- var ADD_OR_SUBTRACT_REGEX = /(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/;
92
- var CSS_LENGTH_UNIT_REGEX = /^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/;
93
- var NUM_SPLIT_REGEX = /(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/;
94
- var CONVERSION_RATES = {
95
- cm: 96 / 2.54,
96
- mm: 96 / 25.4,
97
- pt: 96 / 72,
98
- pc: 96 / 6,
99
- in: 96,
100
- Q: 96 / (2.54 * 40),
101
- px: 1,
102
- };
103
- var FIXED_CSS_LENGTH_UNITS = ['cm', 'mm', 'pt', 'pc', 'in', 'Q', 'px'];
104
- function isSupportedUnit(unit) {
105
- return FIXED_CSS_LENGTH_UNITS.includes(unit);
106
- }
107
- var STR_NAN = 'NaN';
108
- function convertToPx(value, unit) {
109
- return value * CONVERSION_RATES[unit];
110
- }
111
- class DecimalCSS {
112
- static parse(str) {
113
- var _NUM_SPLIT_REGEX$exec;
114
- var _ref =
115
- (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null &&
116
- _NUM_SPLIT_REGEX$exec !== void 0
117
- ? _NUM_SPLIT_REGEX$exec
118
- : [],
119
- _ref2 = _slicedToArray(_ref, 3),
120
- numStr = _ref2[1],
121
- unit = _ref2[2];
122
- if (numStr == null) {
123
- return DecimalCSS.NaN;
124
- }
125
- return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');
126
- }
127
- constructor(num, unit) {
128
- this.num = num;
129
- this.unit = unit;
130
- this.num = num;
131
- this.unit = unit;
132
- if (isNan(num)) {
133
- this.unit = '';
134
- }
135
- if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {
136
- this.num = NaN;
137
- this.unit = '';
138
- }
139
- if (isSupportedUnit(unit)) {
140
- this.num = convertToPx(num, unit);
141
- this.unit = 'px';
142
- }
143
- }
144
- add(other) {
145
- if (this.unit !== other.unit) {
146
- return new DecimalCSS(NaN, '');
147
- }
148
- return new DecimalCSS(this.num + other.num, this.unit);
149
- }
150
- subtract(other) {
151
- if (this.unit !== other.unit) {
152
- return new DecimalCSS(NaN, '');
153
- }
154
- return new DecimalCSS(this.num - other.num, this.unit);
155
- }
156
- multiply(other) {
157
- if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {
158
- return new DecimalCSS(NaN, '');
159
- }
160
- return new DecimalCSS(this.num * other.num, this.unit || other.unit);
161
- }
162
- divide(other) {
163
- if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {
164
- return new DecimalCSS(NaN, '');
165
- }
166
- return new DecimalCSS(this.num / other.num, this.unit || other.unit);
167
- }
168
- toString() {
169
- return ''.concat(this.num).concat(this.unit);
170
- }
171
- isNaN() {
172
- return isNan(this.num);
173
- }
174
- }
175
- _DecimalCSS = DecimalCSS;
176
- _defineProperty(DecimalCSS, 'NaN', new _DecimalCSS(NaN, ''));
177
- function calculateArithmetic(expr) {
178
- if (expr == null || expr.includes(STR_NAN)) {
179
- return STR_NAN;
180
- }
181
- var newExpr = expr;
182
- while (newExpr.includes('*') || newExpr.includes('/')) {
183
- var _MULTIPLY_OR_DIVIDE_R;
184
- var _ref3 =
185
- (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null &&
186
- _MULTIPLY_OR_DIVIDE_R !== void 0
187
- ? _MULTIPLY_OR_DIVIDE_R
188
- : [],
189
- _ref4 = _slicedToArray(_ref3, 4),
190
- leftOperand = _ref4[1],
191
- operator = _ref4[2],
192
- rightOperand = _ref4[3];
193
- var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');
194
- var rTs = DecimalCSS.parse(
195
- rightOperand !== null && rightOperand !== void 0 ? rightOperand : '',
196
- );
197
- var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);
198
- if (result.isNaN()) {
199
- return STR_NAN;
200
- }
201
- newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());
202
- }
203
- while (newExpr.includes('+') || /.-\d+(?:\.\d+)?/.test(newExpr)) {
204
- var _ADD_OR_SUBTRACT_REGE;
205
- var _ref5 =
206
- (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null &&
207
- _ADD_OR_SUBTRACT_REGE !== void 0
208
- ? _ADD_OR_SUBTRACT_REGE
209
- : [],
210
- _ref6 = _slicedToArray(_ref5, 4),
211
- _leftOperand = _ref6[1],
212
- _operator = _ref6[2],
213
- _rightOperand = _ref6[3];
214
- var _lTs = DecimalCSS.parse(
215
- _leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '',
216
- );
217
- var _rTs = DecimalCSS.parse(
218
- _rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '',
219
- );
220
- var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);
221
- if (_result.isNaN()) {
222
- return STR_NAN;
223
- }
224
- newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());
225
- }
226
- return newExpr;
227
- }
228
- var PARENTHESES_REGEX = /\(([^()]*)\)/;
229
- function calculateParentheses(expr) {
230
- var newExpr = expr;
231
- var match;
232
- // eslint-disable-next-line no-cond-assign
233
- while ((match = PARENTHESES_REGEX.exec(newExpr)) != null) {
234
- var _match = match,
235
- _match2 = _slicedToArray(_match, 2),
236
- parentheticalExpression = _match2[1];
237
- newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));
238
- }
239
- return newExpr;
240
- }
241
- function evaluateExpression(expression) {
242
- var newExpr = expression.replace(/\s+/g, '');
243
- newExpr = calculateParentheses(newExpr);
244
- newExpr = calculateArithmetic(newExpr);
245
- return newExpr;
246
- }
247
- export function safeEvaluateExpression(expression) {
248
- try {
249
- return evaluateExpression(expression);
250
- } catch (_unused) {
251
- return STR_NAN;
252
- }
253
- }
254
- export function reduceCSSCalc(expression) {
255
- var result = safeEvaluateExpression(expression.slice(5, -1));
256
- if (result === STR_NAN) {
257
- return '';
258
- }
259
- return result;
260
- }