@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,6 +1,5 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/Constants.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- export var COLOR_PANEL = [
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ export const COLOR_PANEL = [
4
3
  '#1890FF',
5
4
  '#66B5FF',
6
5
  '#41D9C7',
@@ -32,11 +31,12 @@ export var COLOR_PANEL = [
32
31
  * The index is the position of the element in the data array.
33
32
  * This can be either a number (for array-based charts) or a string (for the charts that have a matrix-shaped data).
34
33
  */
35
- export var DATA_ITEM_INDEX_ATTRIBUTE_NAME = 'data-recharts-item-index';
34
+ export const DATA_ITEM_INDEX_ATTRIBUTE_NAME = 'data-recharts-item-index';
36
35
 
37
36
  /**
38
37
  * We use this attribute to identify which element is the one that the user is touching.
39
38
  * Unlike dataKey, or name, it is always unique.
40
39
  */
41
- export var DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = 'data-recharts-item-id';
42
- export var DEFAULT_Y_AXIS_WIDTH = 60;
40
+ export const DATA_ITEM_GRAPHICAL_ITEM_ID_ATTRIBUTE_NAME = 'data-recharts-item-id';
41
+
42
+ export const DEFAULT_Y_AXIS_WIDTH = 60;
@@ -0,0 +1,135 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import type { CSSProperties } from './OctaneTypes';
3
+
4
+ import { Global } from './Global';
5
+ import { Size } from './types';
6
+ import { LRUCache } from './LRUCache';
7
+
8
+ export interface TextMeasurementConfig {
9
+ /** Maximum number of items to cache */
10
+ cacheSize: number;
11
+ /** Whether to enable caching */
12
+ enableCache: boolean;
13
+ }
14
+
15
+ const defaultConfig: TextMeasurementConfig = {
16
+ cacheSize: 2000,
17
+ enableCache: true,
18
+ };
19
+
20
+ let currentConfig = { ...defaultConfig };
21
+
22
+ let stringCache = new LRUCache<string, Size>(currentConfig.cacheSize);
23
+ const SPAN_STYLE = {
24
+ position: 'absolute',
25
+ top: '-20000px',
26
+ left: 0,
27
+ padding: 0,
28
+ margin: 0,
29
+ border: 'none',
30
+ whiteSpace: 'pre',
31
+ };
32
+ const MEASUREMENT_SPAN_ID = 'recharts_measurement_span';
33
+
34
+ function createCacheKey(text: string | number, style: CSSProperties): string {
35
+ // Simple string concatenation for better performance than JSON.stringify
36
+ const fontSize = style.fontSize || '';
37
+ const fontFamily = style.fontFamily || '';
38
+ const fontWeight = style.fontWeight || '';
39
+ const fontStyle = style.fontStyle || '';
40
+ const letterSpacing = style.letterSpacing || '';
41
+ const textTransform = style.textTransform || '';
42
+
43
+ return `${text}|${fontSize}|${fontFamily}|${fontWeight}|${fontStyle}|${letterSpacing}|${textTransform}`;
44
+ }
45
+
46
+ /**
47
+ * Measure text using DOM (accurate but slower)
48
+ * @param text - The text to measure
49
+ * @param style - CSS style properties to apply
50
+ * @returns The size of the text
51
+ */
52
+ const measureTextWithDOM = (text: string | number, style: CSSProperties): Size => {
53
+ try {
54
+ let measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);
55
+ if (!measurementSpan) {
56
+ measurementSpan = document.createElement('span');
57
+ measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);
58
+ measurementSpan.setAttribute('aria-hidden', 'true');
59
+ document.body.appendChild(measurementSpan);
60
+ }
61
+
62
+ // Apply styles directly without unnecessary object creation
63
+ Object.assign(measurementSpan.style, SPAN_STYLE, style);
64
+ measurementSpan.textContent = `${text}`;
65
+
66
+ const rect = measurementSpan.getBoundingClientRect();
67
+ return { width: rect.width, height: rect.height };
68
+ } catch {
69
+ return { width: 0, height: 0 };
70
+ }
71
+ };
72
+
73
+ export const getStringSize = (text: string | number, style: CSSProperties = {}): Size => {
74
+ if (text === undefined || text === null || Global.isSsr) {
75
+ return { width: 0, height: 0 };
76
+ }
77
+
78
+ // If caching is disabled, measure directly
79
+ if (!currentConfig.enableCache) {
80
+ return measureTextWithDOM(text, style);
81
+ }
82
+
83
+ const cacheKey = createCacheKey(text, style);
84
+ const cachedResult = stringCache.get(cacheKey);
85
+
86
+ if (cachedResult) {
87
+ return cachedResult;
88
+ }
89
+
90
+ // Measure using DOM
91
+ const result = measureTextWithDOM(text, style);
92
+
93
+ // Store in LRU cache
94
+ stringCache.set(cacheKey, result);
95
+
96
+ return result;
97
+ };
98
+
99
+ /**
100
+ * Configure text measurement behavior
101
+ * @param config - Partial configuration to apply
102
+ * @returns void
103
+ */
104
+ export const configureTextMeasurement = (config: Partial<TextMeasurementConfig>): void => {
105
+ const newConfig = { ...currentConfig, ...config };
106
+
107
+ if (newConfig.cacheSize !== currentConfig.cacheSize) {
108
+ stringCache = new LRUCache<string, Size>(newConfig.cacheSize);
109
+ }
110
+
111
+ currentConfig = newConfig;
112
+ };
113
+
114
+ /**
115
+ * Get current text measurement configuration
116
+ * @returns Current configuration
117
+ */
118
+ export const getTextMeasurementConfig = (): TextMeasurementConfig => ({ ...currentConfig });
119
+
120
+ /**
121
+ * Clear the string size cache. Useful for testing or memory management.
122
+ * @returns void
123
+ */
124
+ export const clearStringCache = (): void => {
125
+ stringCache.clear();
126
+ };
127
+
128
+ /**
129
+ * Get cache statistics for debugging purposes.
130
+ * @returns Cache statistics including size and max size
131
+ */
132
+ export const getStringCacheStats = () => ({
133
+ size: stringCache.size(),
134
+ maxSize: currentConfig.cacheSize,
135
+ });
@@ -1,20 +1,20 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/DataUtils.js (framework-agnostic).
2
- // Do not edit — update by re-vendoring when the recharts devDependency moves.
3
- // Sanctioned deviation: es-toolkit compat imports normalized to the ESM barrel
4
- // ('es-toolkit/compat') — the per-function subpaths are CJS-only and break
5
- // consumers that compile this binding from source (vite dev prebundle).
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
6
2
  import { get } from 'es-toolkit/compat';
3
+ import { NonEmptyArray, Percent } from './types';
7
4
  import { round } from './round';
8
- export var mathSign = (value) => {
5
+
6
+ export const mathSign = (value: number) => {
9
7
  if (value === 0) {
10
8
  return 0;
11
9
  }
12
10
  if (value > 0) {
13
11
  return 1;
14
12
  }
13
+
15
14
  return -1;
16
15
  };
17
- export var isNan = (value) => {
16
+
17
+ export const isNan = (value: unknown): value is number => {
18
18
  // eslint-disable-next-line eqeqeq
19
19
  return typeof value == 'number' && value != +value;
20
20
  };
@@ -26,15 +26,20 @@ export var isNan = (value) => {
26
26
  * @param {string | number | undefined} value The value to check
27
27
  * @returns {boolean} true if the value is a percent string
28
28
  */
29
- export var isPercent = (value) =>
29
+ export const isPercent = (value: string | number | undefined): value is Percent =>
30
30
  typeof value === 'string' && value.length > 1 && value.indexOf('%') === value.length - 1;
31
- export var isNumber = (value) =>
31
+
32
+ export const isNumber = (value: unknown): value is number =>
32
33
  (typeof value === 'number' || value instanceof Number) && !isNan(value);
33
- export var isNumOrStr = (value) => isNumber(value) || typeof value === 'string';
34
- var idCounter = 0;
35
- export var uniqueId = (prefix) => {
36
- var id = ++idCounter;
37
- return ''.concat(prefix || '').concat(id);
34
+
35
+ export const isNumOrStr = (value: unknown): value is number | string =>
36
+ isNumber(value) || typeof value === 'string';
37
+
38
+ let idCounter = 0;
39
+ export const uniqueId = (prefix?: string) => {
40
+ const id = ++idCounter;
41
+
42
+ return `${prefix || ''}${id}`;
38
43
  };
39
44
 
40
45
  /**
@@ -52,43 +57,55 @@ export var uniqueId = (prefix) => {
52
57
  * @param validate - If true, ensures the result does not exceed `totalValue` (when provided).
53
58
  * @returns The calculated value, or `defaultValue` for invalid input.
54
59
  */
55
- export var getPercentValue = function getPercentValue(percent, totalValue) {
56
- var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
57
- var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
60
+ export const getPercentValue = (
61
+ percent: number | string | undefined,
62
+ totalValue: number | undefined,
63
+ defaultValue = 0,
64
+ validate = false,
65
+ ) => {
58
66
  if (!isNumber(percent) && typeof percent !== 'string') {
59
67
  return defaultValue;
60
68
  }
61
- var value;
69
+
70
+ let value: number;
71
+
62
72
  if (isPercent(percent)) {
63
73
  if (totalValue == null) {
64
74
  return defaultValue;
65
75
  }
66
- var index = percent.indexOf('%');
67
- value = (totalValue * parseFloat(percent.slice(0, index))) / 100;
76
+ const index = percent.indexOf('%');
77
+ value = (totalValue * parseFloat((percent as string).slice(0, index))) / 100;
68
78
  } else {
69
79
  value = +percent;
70
80
  }
81
+
71
82
  if (isNan(value)) {
72
83
  value = defaultValue;
73
84
  }
85
+
74
86
  if (validate && totalValue != null && value > totalValue) {
75
87
  value = totalValue;
76
88
  }
89
+
77
90
  return value;
78
91
  };
79
- export var hasDuplicate = (ary) => {
92
+
93
+ export const hasDuplicate = (ary: ReadonlyArray<unknown>): boolean => {
80
94
  if (!Array.isArray(ary)) {
81
95
  return false;
82
96
  }
83
- var len = ary.length;
84
- var cache = {};
85
- for (var i = 0; i < len; i++) {
97
+
98
+ const len = ary.length;
99
+ const cache: Record<string, boolean> = {};
100
+
101
+ for (let i = 0; i < len; i++) {
86
102
  if (!cache[String(ary[i])]) {
87
103
  cache[String(ary[i])] = true;
88
104
  } else {
89
105
  return true;
90
106
  }
91
107
  }
108
+
92
109
  return false;
93
110
  };
94
111
 
@@ -109,17 +126,56 @@ export var hasDuplicate = (ary) => {
109
126
  *
110
127
  * @since 3.9
111
128
  */
112
-
113
- export function interpolate(start, end, animationElapsedTime) {
129
+ export function interpolate(
130
+ start: number | null | undefined,
131
+ end: number,
132
+ animationElapsedTime: number,
133
+ ): number;
134
+ export function interpolate(
135
+ start: number | null | undefined,
136
+ end: null,
137
+ animationElapsedTime: number,
138
+ ): null;
139
+ export function interpolate(
140
+ start: number | null | undefined,
141
+ end: undefined,
142
+ animationElapsedTime: number,
143
+ ): undefined;
144
+ export function interpolate(
145
+ start: number | null | undefined,
146
+ end: number | null,
147
+ animationElapsedTime: number,
148
+ ): number | null;
149
+ export function interpolate(
150
+ start: number | null | undefined,
151
+ end: number | undefined,
152
+ animationElapsedTime: number,
153
+ ): number | undefined;
154
+ export function interpolate(
155
+ start: number | null | undefined,
156
+ end: number | null | undefined,
157
+ animationElapsedTime: number,
158
+ ): number | null | undefined;
159
+ export function interpolate(
160
+ start: number | null | undefined,
161
+ end: number | null | undefined,
162
+ animationElapsedTime: number,
163
+ ): number | null | undefined {
114
164
  if (isNumber(start) && isNumber(end)) {
115
165
  return round(start + animationElapsedTime * (end - start));
116
166
  }
117
167
  return end;
118
168
  }
119
- export function findEntryInArray(ary, specifiedKey, specifiedValue) {
169
+
170
+ export function findEntryInArray<T>(
171
+ ary: ReadonlyArray<T>,
172
+ specifiedKey: number | string | ((entry: T) => unknown),
173
+ specifiedValue: unknown,
174
+ ): T | undefined {
120
175
  if (!ary || !ary.length) {
121
176
  return undefined;
122
177
  }
178
+
123
179
  return ary.find(
124
180
  (entry) =>
125
181
  entry &&
@@ -127,25 +183,36 @@ export function findEntryInArray(ary, specifiedKey, specifiedValue) {
127
183
  specifiedValue,
128
184
  );
129
185
  }
186
+
187
+ type LinearRegressionResult = {
188
+ xmin: number;
189
+ xmax: number;
190
+ a: number;
191
+ b: number;
192
+ };
193
+
130
194
  /**
131
195
  * The least square linear regression
132
196
  * @param {Array} data The array of points
133
197
  * @returns {Object} The domain of x, and the parameter of linear function
134
198
  */
135
- export var getLinearRegression = (data) => {
136
- var len = data.length;
137
- var xsum = 0;
138
- var ysum = 0;
139
- var xysum = 0;
140
- var xxsum = 0;
141
- var xmin = Infinity;
142
- var xmax = -Infinity;
143
- var xcurrent = 0;
144
- var ycurrent = 0;
145
- for (var i = 0; i < len; i++) {
146
- var _data$i, _data$i2;
147
- xcurrent = ((_data$i = data[i]) === null || _data$i === void 0 ? void 0 : _data$i.cx) || 0;
148
- ycurrent = ((_data$i2 = data[i]) === null || _data$i2 === void 0 ? void 0 : _data$i2.cy) || 0;
199
+ export const getLinearRegression = (
200
+ data: NonEmptyArray<{ cx?: number | null; cy?: number | null }>,
201
+ ): LinearRegressionResult => {
202
+ const len = data.length;
203
+ let xsum = 0;
204
+ let ysum = 0;
205
+ let xysum = 0;
206
+ let xxsum = 0;
207
+ let xmin = Infinity;
208
+ let xmax = -Infinity;
209
+ let xcurrent = 0;
210
+ let ycurrent = 0;
211
+
212
+ for (let i = 0; i < len; i++) {
213
+ xcurrent = data[i]?.cx || 0;
214
+ ycurrent = data[i]?.cy || 0;
215
+
149
216
  xsum += xcurrent;
150
217
  ysum += ycurrent;
151
218
  xysum += xcurrent * ycurrent;
@@ -153,8 +220,10 @@ export var getLinearRegression = (data) => {
153
220
  xmin = Math.min(xmin, xcurrent);
154
221
  xmax = Math.max(xmax, xcurrent);
155
222
  }
156
- var a =
223
+
224
+ const a =
157
225
  len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;
226
+
158
227
  return {
159
228
  xmin,
160
229
  xmax,
@@ -162,12 +231,15 @@ export var getLinearRegression = (data) => {
162
231
  b: (ysum - a * xsum) / len,
163
232
  };
164
233
  };
234
+
235
+ type Nullish = null | undefined;
236
+
165
237
  /**
166
238
  * Checks if the value is null or undefined
167
239
  * @param value The value to check
168
240
  * @returns true if the value is null or undefined
169
241
  */
170
- export var isNullish = (value) => {
242
+ export const isNullish = (value: unknown): value is Nullish => {
171
243
  return value === null || typeof value === 'undefined';
172
244
  };
173
245
 
@@ -176,11 +248,12 @@ export var isNullish = (value) => {
176
248
  * @param {string} value The string to uppercase
177
249
  * @returns {string} The uppercased string
178
250
  */
179
- export var upperFirst = (value) => {
251
+ export const upperFirst = (value: string): string => {
180
252
  if (isNullish(value)) {
181
253
  return value;
182
254
  }
183
- return ''.concat(value.charAt(0).toUpperCase()).concat(value.slice(1));
255
+
256
+ return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
184
257
  };
185
258
 
186
259
  /**
@@ -188,7 +261,7 @@ export var upperFirst = (value) => {
188
261
  * @param value The value to check
189
262
  * @returns true if the value is not null nor undefined
190
263
  */
191
- export function isNotNil(value) {
264
+ export function isNotNil<T>(value: T): value is NonNullable<T> {
192
265
  return value != null;
193
266
  }
194
267
 
@@ -196,4 +269,4 @@ export function isNotNil(value) {
196
269
  * No-operation function that does nothing.
197
270
  * Useful as a placeholder or default callback function.
198
271
  */
199
- export function noop() {}
272
+ export function noop(): undefined {}
@@ -0,0 +1,22 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ import EventEmitter from 'eventemitter3';
3
+ import { PayloadAction } from '@reduxjs/toolkit';
4
+ import { TooltipSyncState } from '../state/tooltipSlice';
5
+ import { BrushStartEndIndex } from '../context/brushUpdateContext';
6
+
7
+ const eventCenter: EventEmitter<EventTypes> = new EventEmitter();
8
+
9
+ export { eventCenter };
10
+
11
+ export const TOOLTIP_SYNC_EVENT = 'recharts.syncEvent.tooltip';
12
+
13
+ export const BRUSH_SYNC_EVENT = 'recharts.syncEvent.brush';
14
+
15
+ interface EventTypes {
16
+ [TOOLTIP_SYNC_EVENT](
17
+ syncId: number | string,
18
+ data: PayloadAction<TooltipSyncState>,
19
+ emitter: symbol,
20
+ ): void;
21
+ [BRUSH_SYNC_EVENT](syncId: number | string, data: BrushStartEndIndex, emitter: symbol): void;
22
+ }
@@ -1,8 +1,8 @@
1
1
  import * as React from 'octane';
2
- import { Props as FunnelProps, FunnelTrapezoidItem } from '../cartesian/Funnel';
3
- import { Trapezoid } from '../shape/Trapezoid';
2
+ import { Props as FunnelProps, FunnelTrapezoidItem } from '../cartesian/Funnel.tsrx';
3
+ import { Trapezoid } from '../shape/Trapezoid.tsrx';
4
4
  import { ShapeAnimationProps } from './types';
5
- import { Shape } from './ActiveShapeUtils';
5
+ import { Shape } from './ActiveShapeUtils.tsrx';
6
6
 
7
7
  export const defaultFunnelShape = Trapezoid;
8
8
 
@@ -0,0 +1,13 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ const parseIsSsrByDefault = (): boolean =>
3
+ !(
4
+ typeof window !== 'undefined' &&
5
+ window.document &&
6
+ Boolean(window.document.createElement) &&
7
+ window.setTimeout
8
+ );
9
+
10
+ export const Global = {
11
+ devToolsEnabled: true,
12
+ isSsr: parseIsSsrByDefault(),
13
+ };
@@ -0,0 +1,16 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ export type IfOverflow = 'hidden' | 'visible' | 'discard' | 'extendDomain';
3
+
4
+ export interface Overflowable {
5
+ /**
6
+ * Defines how to draw this component if it falls partly outside the canvas:
7
+ *
8
+ * - `discard`: the whole component will not be drawn at all
9
+ * - `hidden`: the component will be clipped to the chart plot area
10
+ * - `visible`: the component will be drawn completely
11
+ * - `extendDomain`: the domain of the overflown axis will be extended such that the whole component fits into the plot area
12
+ *
13
+ * @defaultValue discard
14
+ */
15
+ ifOverflow?: IfOverflow;
16
+ }
@@ -0,0 +1,42 @@
1
+ // Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
2
+ /**
3
+ * Simple LRU (Least Recently Used) cache implementation
4
+ */
5
+ export class LRUCache<K, V> {
6
+ private cache = new Map<K, V>();
7
+
8
+ private maxSize: number;
9
+
10
+ constructor(maxSize: number) {
11
+ this.maxSize = maxSize;
12
+ }
13
+
14
+ get(key: K): V | undefined {
15
+ const value = this.cache.get(key);
16
+ if (value !== undefined) {
17
+ this.cache.delete(key);
18
+ this.cache.set(key, value);
19
+ }
20
+ return value;
21
+ }
22
+
23
+ set(key: K, value: V): void {
24
+ if (this.cache.has(key)) {
25
+ this.cache.delete(key);
26
+ } else if (this.cache.size >= this.maxSize) {
27
+ const firstKey = this.cache.keys().next().value;
28
+ if (firstKey != null) {
29
+ this.cache.delete(firstKey);
30
+ }
31
+ }
32
+ this.cache.set(key, value);
33
+ }
34
+
35
+ clear(): void {
36
+ this.cache.clear();
37
+ }
38
+
39
+ size(): number {
40
+ return this.cache.size;
41
+ }
42
+ }
@@ -1,19 +1,13 @@
1
- // Vendored verbatim from recharts@3.9.2 es6/util/LogUtils.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
  /* eslint no-console: 0 */
4
- var isDev = true;
5
- export var warn = function warn(condition, format) {
6
- for (
7
- var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2;
8
- _key < _len;
9
- _key++
10
- ) {
11
- args[_key - 2] = arguments[_key];
12
- }
3
+ const isDev = true;
4
+
5
+ export const warn = (condition: boolean, format: string, ...args: any[]) => {
13
6
  if (isDev && typeof console !== 'undefined' && console.warn) {
14
7
  if (format === undefined) {
15
8
  console.warn('LogUtils requires an error message argument');
16
9
  }
10
+
17
11
  if (!condition) {
18
12
  if (format === undefined) {
19
13
  console.warn(
@@ -21,7 +15,8 @@ export var warn = function warn(condition, format) {
21
15
  'for the full error message and additional helpful warnings.',
22
16
  );
23
17
  } else {
24
- var argIndex = 0;
18
+ let argIndex = 0;
19
+
25
20
  console.warn(format.replace(/%s/g, () => args[argIndex++]));
26
21
  }
27
22
  }
@@ -0,0 +1,51 @@
1
+ // DOM contracts shared by the authored Recharts port. Events are native,
2
+ // while element props and refs follow Octane's public JSX type surface.
3
+ import type { OctaneNode } from 'octane';
4
+ import type { Octane } from 'octane/jsx-runtime';
5
+
6
+ export type { OctaneNode } from 'octane';
7
+ export type { OctaneElement } from 'octane/jsx-runtime';
8
+ export type CSSProperties = Exclude<NonNullable<Octane.HTMLAttributes<Element>['style']>, string>;
9
+ export type SVGProps<T> = Octane.SVGProps<T>;
10
+ export type SVGAttributes<T> = Octane.SVGAttributes<T>;
11
+ export type HTMLAttributes<T> = Octane.HTMLAttributes<T>;
12
+ export type AriaAttributes = Pick<
13
+ Octane.SVGAttributes<Element>,
14
+ Extract<keyof Octane.SVGAttributes<Element>, `aria-${string}`>
15
+ >;
16
+ export type Ref<T> = Octane.Ref<T>;
17
+ // A renderer only writes its actual host into a broader SVG ref sink. This
18
+ // type-only view preserves the ref while narrowing that write at the boundary.
19
+ export type SVGPropsForHost<P, T extends SVGElement> = Omit<P, 'ref'> & { ref?: Ref<T> };
20
+ export type RefCallback<T> = (instance: T | null) => void | (() => void);
21
+ export type RefAttributes<T> = Octane.RefAttributes<T>;
22
+ export type PropsWithoutRef<P> = P extends unknown ? Omit<P, 'ref'> : never;
23
+ export type MutableRefObject<T> = { current: T };
24
+ export type RefObject<T> = { current: T };
25
+ export type ComponentType<P = {}> = ((props: P) => OctaneNode) & { displayName?: string };
26
+ export type FunctionComponent<P = {}> = ComponentType<P>;
27
+ export type FC<P = {}> = ComponentType<P>;
28
+ export type ComponentProps<C> = C extends (props: infer P) => unknown
29
+ ? P
30
+ : C extends keyof Octane.JSX.IntrinsicElements
31
+ ? Octane.JSX.IntrinsicElements[C]
32
+ : never;
33
+
34
+ export type NativeEvent<T = Element> = Event & { currentTarget: EventTarget & T };
35
+ export type NativeAnimationEvent<T = Element> = AnimationEvent & { currentTarget: EventTarget & T };
36
+ export type NativeClipboardEvent<T = Element> = ClipboardEvent & { currentTarget: EventTarget & T };
37
+ export type NativeCompositionEvent<T = Element> = CompositionEvent & {
38
+ currentTarget: EventTarget & T;
39
+ };
40
+ export type NativeDragEvent<T = Element> = DragEvent & { currentTarget: EventTarget & T };
41
+ export type NativeFocusEvent<T = Element> = FocusEvent & { currentTarget: EventTarget & T };
42
+ export type NativeFormEvent<T = Element> = Event & { currentTarget: EventTarget & T };
43
+ export type NativeKeyboardEvent<T = Element> = KeyboardEvent & { currentTarget: EventTarget & T };
44
+ export type NativeMouseEvent<T = Element> = MouseEvent & { currentTarget: EventTarget & T };
45
+ export type NativePointerEvent<T = Element> = PointerEvent & { currentTarget: EventTarget & T };
46
+ export type NativeTouchEvent<T = Element> = TouchEvent & { currentTarget: EventTarget & T };
47
+ export type NativeTransitionEvent<T = Element> = TransitionEvent & {
48
+ currentTarget: EventTarget & T;
49
+ };
50
+ export type NativeUIEvent<T = Element> = UIEvent & { currentTarget: EventTarget & T };
51
+ export type NativeWheelEvent<T = Element> = WheelEvent & { currentTarget: EventTarget & T };