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