solid-recharts 0.2.0 → 1.0.0

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 (508) hide show
  1. package/package.json +17 -13
  2. package/src/animation/AnimatedItems.tsx +2 -4
  3. package/src/animation/CSSTransitionAnimate.tsx +41 -39
  4. package/src/animation/JavascriptAnimate.tsx +45 -41
  5. package/src/cartesian/Area.tsx +43 -58
  6. package/src/cartesian/AreaRevealShape.tsx +1 -1
  7. package/src/cartesian/Bar.tsx +98 -78
  8. package/src/cartesian/BarStack.tsx +10 -7
  9. package/src/cartesian/Brush.tsx +20 -16
  10. package/src/cartesian/CartesianAxis.tsx +4 -4
  11. package/src/cartesian/CartesianGrid.tsx +5 -5
  12. package/src/cartesian/ErrorBar.tsx +9 -7
  13. package/src/cartesian/Funnel.tsx +17 -21
  14. package/src/cartesian/GraphicalItemClipPath.tsx +1 -1
  15. package/src/cartesian/Line.tsx +51 -66
  16. package/src/cartesian/LineDrawShape.tsx +20 -17
  17. package/src/cartesian/ReferenceArea.tsx +28 -38
  18. package/src/cartesian/ReferenceDot.tsx +27 -37
  19. package/src/cartesian/ReferenceLine.tsx +28 -37
  20. package/src/cartesian/RenderedTicksReporter.tsx +19 -17
  21. package/src/cartesian/Scatter.tsx +27 -39
  22. package/src/cartesian/XAxis.tsx +55 -68
  23. package/src/cartesian/YAxis.tsx +88 -99
  24. package/src/cartesian/ZAxis.tsx +29 -41
  25. package/src/chart/AreaChart.tsx +1 -1
  26. package/src/chart/BarChart.tsx +1 -1
  27. package/src/chart/CartesianChart.tsx +4 -3
  28. package/src/chart/CategoricalChart.tsx +5 -5
  29. package/src/chart/ComposedChart.tsx +1 -1
  30. package/src/chart/FunnelChart.tsx +1 -1
  31. package/src/chart/LineChart.tsx +1 -1
  32. package/src/chart/PieChart.tsx +4 -3
  33. package/src/chart/PolarChart.tsx +4 -3
  34. package/src/chart/RadarChart.tsx +4 -3
  35. package/src/chart/RadialBarChart.tsx +7 -3
  36. package/src/chart/RechartsWrapper.tsx +14 -24
  37. package/src/chart/Sankey.tsx +9 -6
  38. package/src/chart/ScatterChart.tsx +1 -1
  39. package/src/chart/SunburstChart.tsx +6 -5
  40. package/src/chart/Treemap.tsx +5 -4
  41. package/src/component/ActivePoints.tsx +6 -15
  42. package/src/component/Cell.tsx +23 -5
  43. package/src/component/Cursor.tsx +3 -3
  44. package/src/component/DefaultLegendContent.tsx +8 -6
  45. package/src/component/DefaultTooltipContent.tsx +14 -10
  46. package/src/component/Dots.tsx +11 -7
  47. package/src/component/Label.tsx +13 -10
  48. package/src/component/LabelList.tsx +12 -7
  49. package/src/component/Legend.tsx +26 -21
  50. package/src/component/ResponsiveContainer.tsx +52 -49
  51. package/src/component/Text.tsx +5 -5
  52. package/src/component/Tooltip.tsx +21 -18
  53. package/src/component/TooltipBoundingBox.tsx +18 -16
  54. package/src/component/responsiveContainerUtils.ts +1 -1
  55. package/src/container/ClipPathProvider.tsx +3 -3
  56. package/src/container/Layer.tsx +5 -5
  57. package/src/container/RootSurface.tsx +1 -1
  58. package/src/container/Surface.tsx +5 -6
  59. package/src/context/ErrorBarContext.tsx +17 -26
  60. package/src/context/PanoramaContext.tsx +2 -2
  61. package/src/context/RegisterGraphicalItemId.tsx +4 -2
  62. package/src/context/chartDataContext.tsx +26 -23
  63. package/src/context/chartLayoutContext.tsx +16 -12
  64. package/src/polar/Pie.tsx +49 -60
  65. package/src/polar/PolarAngleAxis.tsx +43 -52
  66. package/src/polar/PolarGrid.tsx +5 -5
  67. package/src/polar/PolarRadiusAxis.tsx +42 -50
  68. package/src/polar/Radar.tsx +24 -36
  69. package/src/polar/RadialBar.tsx +23 -41
  70. package/src/shape/Cross.tsx +5 -5
  71. package/src/shape/Curve.tsx +7 -8
  72. package/src/shape/Dot.tsx +4 -4
  73. package/src/shape/Polygon.tsx +5 -5
  74. package/src/shape/Rectangle.tsx +22 -20
  75. package/src/shape/Sector.tsx +5 -5
  76. package/src/shape/Symbols.tsx +6 -6
  77. package/src/shape/Trapezoid.tsx +29 -27
  78. package/src/state/RechartsStoreProvider.tsx +5 -3
  79. package/src/state/ReportChartProps.tsx +8 -6
  80. package/src/state/ReportEventSettings.tsx +8 -6
  81. package/src/state/ReportMainChartProps.tsx +11 -9
  82. package/src/state/ReportPolarOptions.tsx +15 -13
  83. package/src/state/SetLegendPayload.ts +20 -28
  84. package/src/state/SetTooltipEntrySettings.tsx +10 -27
  85. package/src/state/brushSlice.ts +10 -8
  86. package/src/state/cartesianAxisSlice.ts +72 -84
  87. package/src/state/chartDataSlice.ts +29 -23
  88. package/src/state/createCollectionActions.ts +51 -0
  89. package/src/state/createSelector.ts +97 -0
  90. package/src/state/errorBarSlice.ts +22 -16
  91. package/src/state/eventSettingsSlice.ts +11 -9
  92. package/src/state/externalEventsMiddleware.ts +2 -11
  93. package/src/state/graphicalItemsSlice.ts +35 -44
  94. package/src/state/isEventThrottled.ts +12 -0
  95. package/src/state/keyboardEventsMiddleware.ts +2 -8
  96. package/src/state/layoutSlice.ts +29 -17
  97. package/src/state/legendSlice.ts +35 -31
  98. package/src/state/mouseEventsMiddleware.ts +2 -13
  99. package/src/state/optionsSlice.ts +8 -6
  100. package/src/state/patched.ts +19 -0
  101. package/src/state/polarAxisSlice.ts +21 -13
  102. package/src/state/polarOptionsSlice.ts +16 -14
  103. package/src/state/referenceElementsSlice.ts +49 -34
  104. package/src/state/registerInStore.ts +70 -0
  105. package/src/state/renderedTicksSlice.ts +11 -7
  106. package/src/state/rootPropsSlice.ts +16 -14
  107. package/src/state/selectors/areaSelectors.ts +13 -36
  108. package/src/state/selectors/arrayEqualityCheck.ts +32 -7
  109. package/src/state/selectors/axisSelectors.ts +215 -169
  110. package/src/state/selectors/barSelectors.ts +8 -36
  111. package/src/state/selectors/combiners/combineConfiguredScale.ts +1 -1
  112. package/src/state/selectors/combiners/combineRealScaleType.ts +1 -1
  113. package/src/state/selectors/dataSelectors.ts +35 -16
  114. package/src/state/selectors/numberDomainEqualityCheck.ts +16 -8
  115. package/src/state/selectors/selectAxisForGraphicalItem.ts +52 -0
  116. package/src/state/tooltipSlice.ts +135 -86
  117. package/src/state/unregisterOnCleanup.ts +5 -20
  118. package/src/state/zIndexSlice.ts +50 -42
  119. package/src/synchronisation/useChartSynchronisation.tsx +213 -217
  120. package/src/util/ActiveShapeUtils.tsx +2 -9
  121. package/src/util/BarUtils.tsx +30 -23
  122. package/src/util/ChartUtils.ts +69 -25
  123. package/src/util/DirectPortal.tsx +107 -0
  124. package/src/util/FunnelUtils.tsx +1 -1
  125. package/src/util/RadialBarUtils.tsx +4 -3
  126. package/src/util/createCartesianCharts.tsx +1 -1
  127. package/src/util/createPolarCharts.tsx +1 -1
  128. package/src/util/propsAreEqual.ts +3 -33
  129. package/src/util/stacks/stackTypes.ts +1 -1
  130. package/src/util/svgPropertiesAndEvents.ts +1 -1
  131. package/src/util/tooltip/translate.ts +2 -2
  132. package/src/util/types.ts +3 -3
  133. package/src/zIndex/ZIndexLayer.tsx +39 -68
  134. package/src/zIndex/ZIndexPortal.tsx +29 -25
  135. package/src/state/reduxDevtoolsJsonStringifyReplacer.ts +0 -15
  136. package/src/util/axisPropsAreEqual.ts +0 -42
  137. package/src/util/resolveDefaultProps.tsx +0 -8
  138. package/src/util/typedDataKey.ts +0 -8
  139. package/test/_data.ts +0 -408
  140. package/test/animation/AnimationController.typed.spec.ts +0 -53
  141. package/test/animation/AnimationControllerImpl.spec.ts +0 -271
  142. package/test/animation/CSSTransitionAnimate.timing.spec.tsx +0 -473
  143. package/test/animation/JavascriptAnimate.spec.tsx +0 -62
  144. package/test/animation/RechartsAnimation.spec.ts +0 -636
  145. package/test/animation/easing.spec.ts +0 -218
  146. package/test/animation/legacyAnimationLengthChange.spec.tsx +0 -803
  147. package/test/animation/matchBy.spec.ts +0 -467
  148. package/test/animation/mockAnimationController.ts +0 -40
  149. package/test/animation/mockControllerAnimationManager.ts +0 -143
  150. package/test/animation/mockTimeoutController.ts +0 -114
  151. package/test/animation/timeoutController.spec.ts +0 -138
  152. package/test/animation/useAnimationStartSnapshot.spec.ts +0 -147
  153. package/test/animation/util.spec.ts +0 -28
  154. package/test/cartesian/Area.animation.spec.tsx +0 -363
  155. package/test/cartesian/Area.range.spec.tsx +0 -54
  156. package/test/cartesian/Area.spec.tsx +0 -1202
  157. package/test/cartesian/Area.stacked.render.spec.tsx +0 -69
  158. package/test/cartesian/Area.typed.spec.tsx +0 -209
  159. package/test/cartesian/Axis.integration.spec.tsx +0 -158
  160. package/test/cartesian/Bar/Bar.csstransition.spec.tsx +0 -299
  161. package/test/cartesian/Bar/Bar.spec.tsx +0 -2314
  162. package/test/cartesian/Bar/Bar.typed.spec.tsx +0 -192
  163. package/test/cartesian/Bar.animation.spec.tsx +0 -426
  164. package/test/cartesian/Bar.stackDomain.spec.tsx +0 -66
  165. package/test/cartesian/Bar.stacked.render.spec.tsx +0 -53
  166. package/test/cartesian/Bar.truncateByDomain.spec.tsx +0 -237
  167. package/test/cartesian/Bar.zeroDimensionFiltering.spec.tsx +0 -336
  168. package/test/cartesian/BarStack.spec.tsx +0 -91
  169. package/test/cartesian/Brush.keyboard.spec.tsx +0 -88
  170. package/test/cartesian/Brush.panorama.spec.tsx +0 -41
  171. package/test/cartesian/Brush.props.spec.tsx +0 -63
  172. package/test/cartesian/Brush.render.spec.tsx +0 -117
  173. package/test/cartesian/Brush.spec.tsx +0 -522
  174. package/test/cartesian/Brush.stacked.spec.tsx +0 -221
  175. package/test/cartesian/CartesianAxis.render.spec.tsx +0 -50
  176. package/test/cartesian/CartesianAxis.spec.tsx +0 -396
  177. package/test/cartesian/CartesianGrid.render.spec.tsx +0 -39
  178. package/test/cartesian/CartesianGrid.spec.tsx +0 -2103
  179. package/test/cartesian/ErrorBar.render.spec.tsx +0 -69
  180. package/test/cartesian/ErrorBar.spec.tsx +0 -2414
  181. package/test/cartesian/Funnel.animation.spec.tsx +0 -241
  182. package/test/cartesian/Funnel.spec.tsx +0 -226
  183. package/test/cartesian/Funnel.typed.spec.tsx +0 -221
  184. package/test/cartesian/GraphicalItemClipPath.scale-behavior.spec.tsx +0 -627
  185. package/test/cartesian/GraphicalItemClipPath.spec.tsx +0 -427
  186. package/test/cartesian/Line.animation.spec.tsx +0 -643
  187. package/test/cartesian/Line.sparseAnimationPath.spec.tsx +0 -98
  188. package/test/cartesian/Line.spec.tsx +0 -471
  189. package/test/cartesian/Line.typed.spec.tsx +0 -152
  190. package/test/cartesian/ReferenceArea.render.spec.tsx +0 -63
  191. package/test/cartesian/ReferenceArea.spec.tsx +0 -663
  192. package/test/cartesian/ReferenceArea.typed.spec.tsx +0 -74
  193. package/test/cartesian/ReferenceDot.render.spec.tsx +0 -55
  194. package/test/cartesian/ReferenceDot.spec.tsx +0 -462
  195. package/test/cartesian/ReferenceDot.typed.spec.tsx +0 -76
  196. package/test/cartesian/ReferenceLine/ReferenceLine.panorama.spec.tsx +0 -184
  197. package/test/cartesian/ReferenceLine/ReferenceLine.spec.tsx +0 -744
  198. package/test/cartesian/ReferenceLine/ReferenceLine.typed.spec.tsx +0 -74
  199. package/test/cartesian/ReferenceLine/getEndPoints.spec.ts +0 -399
  200. package/test/cartesian/ReferenceLine.render.spec.tsx +0 -134
  201. package/test/cartesian/Scatter.animation.spec.tsx +0 -381
  202. package/test/cartesian/Scatter.render.spec.tsx +0 -61
  203. package/test/cartesian/Scatter.spec.tsx +0 -406
  204. package/test/cartesian/Scatter.typed.spec.tsx +0 -153
  205. package/test/cartesian/XAxis/XAxis.barSize.spec.tsx +0 -336
  206. package/test/cartesian/XAxis/XAxis.brush.spec.tsx +0 -266
  207. package/test/cartesian/XAxis/XAxis.categorydomain.spec.tsx +0 -872
  208. package/test/cartesian/XAxis/XAxis.dataKey.spec.tsx +0 -86
  209. package/test/cartesian/XAxis/XAxis.datatypes.spec.tsx +0 -127
  210. package/test/cartesian/XAxis/XAxis.hide.spec.tsx +0 -106
  211. package/test/cartesian/XAxis/XAxis.multiaxis.spec.tsx +0 -336
  212. package/test/cartesian/XAxis/XAxis.numberdomain.spec.tsx +0 -1466
  213. package/test/cartesian/XAxis/XAxis.padding.spec.tsx +0 -758
  214. package/test/cartesian/XAxis/XAxis.padding_clip.spec.tsx +0 -65
  215. package/test/cartesian/XAxis/XAxis.state.spec.tsx +0 -355
  216. package/test/cartesian/XAxis/XAxis.tick.spec.tsx +0 -493
  217. package/test/cartesian/XAxis/XAxis.timescale.spec.tsx +0 -233
  218. package/test/cartesian/XAxis/XAxis.type.spec.tsx +0 -107
  219. package/test/cartesian/XAxis/XAxis.typed.spec.tsx +0 -102
  220. package/test/cartesian/XAxis/XAxis.vertical.spec.tsx +0 -265
  221. package/test/cartesian/XAxis.tickFormatter.spec.tsx +0 -54
  222. package/test/cartesian/YAxis/YAxis.7362.derivedDomain.spec.tsx +0 -230
  223. package/test/cartesian/YAxis/YAxis.7362.spec.tsx +0 -104
  224. package/test/cartesian/YAxis/YAxis.interval-zero.spec.tsx +0 -88
  225. package/test/cartesian/YAxis/YAxis.label.spec.tsx +0 -219
  226. package/test/cartesian/YAxis/YAxis.spec.tsx +0 -1595
  227. package/test/cartesian/YAxis/YAxis.tick.spec.tsx +0 -428
  228. package/test/cartesian/YAxis/YAxis.tickFormatter.spec.tsx +0 -54
  229. package/test/cartesian/YAxis/YAxis.ticks.spec.tsx +0 -263
  230. package/test/cartesian/YAxis/YAxis.type.spec.tsx +0 -107
  231. package/test/cartesian/YAxis/YAxis.typed.spec.tsx +0 -102
  232. package/test/cartesian/ZAxis.spec.tsx +0 -300
  233. package/test/cartesian/ZAxis.typed.spec.tsx +0 -33
  234. package/test/cartesian/__snapshots__/Brush.spec.tsx.snap +0 -5
  235. package/test/cartesian/axisLineAndStroke.spec.tsx +0 -72
  236. package/test/cartesian/getCartesianPosition.spec.ts +0 -907
  237. package/test/cartesian/getEquidistantTicks.spec.ts +0 -88
  238. package/test/cartesian/getTicks.spec.ts +0 -378
  239. package/test/cartesian/miscFeatureGaps.spec.tsx +0 -89
  240. package/test/cartesian/useAnimatedLineLength.spec.ts +0 -168
  241. package/test/chart/AccessibilityLayer.spec.tsx +0 -569
  242. package/test/chart/AccessibilityScans.spec.tsx +0 -286
  243. package/test/chart/AreaChart.spec.tsx +0 -409
  244. package/test/chart/AreaChart.stacked.spec.tsx +0 -1407
  245. package/test/chart/AreaChart.typed.spec.tsx +0 -39
  246. package/test/chart/BarChart.spec.tsx +0 -3719
  247. package/test/chart/BarChart.typed.spec.tsx +0 -60
  248. package/test/chart/CategoricalChart.spec.tsx +0 -255
  249. package/test/chart/ComposedChart.spec.tsx +0 -199
  250. package/test/chart/ComposedChart.typed.spec.tsx +0 -39
  251. package/test/chart/FunnelChart.spec.tsx +0 -215
  252. package/test/chart/FunnelChart.typed.spec.tsx +0 -39
  253. package/test/chart/LineChart.multiseries.spec.tsx +0 -50
  254. package/test/chart/LineChart.smoke.spec.tsx +0 -50
  255. package/test/chart/LineChart.spec.tsx +0 -930
  256. package/test/chart/LineChart.typed.spec.tsx +0 -39
  257. package/test/chart/NicheChartTooltip.spec.tsx +0 -81
  258. package/test/chart/PieChart.spec.tsx +0 -793
  259. package/test/chart/PieChart.typed.spec.tsx +0 -39
  260. package/test/chart/RadarChart.spec.tsx +0 -530
  261. package/test/chart/RadarChart.typed.spec.tsx +0 -39
  262. package/test/chart/RadialBarChart.5966.spec.tsx +0 -48
  263. package/test/chart/RadialBarChart.spec.tsx +0 -679
  264. package/test/chart/RadialBarChart.typed.spec.tsx +0 -39
  265. package/test/chart/RechartsWrapper.spec.tsx +0 -83
  266. package/test/chart/Sankey.content.spec.tsx +0 -46
  267. package/test/chart/Sankey.spec.tsx +0 -952
  268. package/test/chart/Sankey.typed.spec.tsx +0 -29
  269. package/test/chart/ScatterChart.spec.tsx +0 -2613
  270. package/test/chart/ScatterChart.typed.spec.tsx +0 -39
  271. package/test/chart/SunburstChart.spec.tsx +0 -146
  272. package/test/chart/Treemap.animation.spec.tsx +0 -52
  273. package/test/chart/Treemap.spec.tsx +0 -1003
  274. package/test/chart/Treemap.typed.spec.tsx +0 -26
  275. package/test/chart/chartEvents.spec.tsx +0 -127
  276. package/test/chart/responsive.spec.tsx +0 -620
  277. package/test/component/Cell.render.spec.tsx +0 -155
  278. package/test/component/Cell.spec.tsx +0 -12
  279. package/test/component/Cursor.spec.tsx +0 -186
  280. package/test/component/DefaultTooltipContent.spec.tsx +0 -102
  281. package/test/component/Label.render.spec.tsx +0 -63
  282. package/test/component/Label.spec.tsx +0 -686
  283. package/test/component/Label.typed.spec.tsx +0 -46
  284. package/test/component/LabelList.spec.tsx +0 -188
  285. package/test/component/Legend.itemSorter.spec.tsx +0 -704
  286. package/test/component/Legend.render.spec.tsx +0 -92
  287. package/test/component/Legend.spec.tsx +0 -2213
  288. package/test/component/Legend.typed.spec.tsx +0 -22
  289. package/test/component/ResponsiveContainer.spec.tsx +0 -523
  290. package/test/component/ResponsiveContainerDataTest.spec.tsx +0 -51
  291. package/test/component/Text.spec.tsx +0 -415
  292. package/test/component/Text.typed.spec.tsx +0 -46
  293. package/test/component/Tooltip/ActiveDot.spec.tsx +0 -370
  294. package/test/component/Tooltip/Tooltip.animation.spec.tsx +0 -209
  295. package/test/component/Tooltip/Tooltip.content.spec.tsx +0 -128
  296. package/test/component/Tooltip/Tooltip.formatter.spec.tsx +0 -152
  297. package/test/component/Tooltip/Tooltip.includeHidden.spec.tsx +0 -79
  298. package/test/component/Tooltip/Tooltip.multipleDataArrays.spec.tsx +0 -165
  299. package/test/component/Tooltip/Tooltip.offset.spec.tsx +0 -113
  300. package/test/component/Tooltip/Tooltip.state.spec.tsx +0 -74
  301. package/test/component/Tooltip/Tooltip.sync.spec.tsx +0 -639
  302. package/test/component/Tooltip/defaultIndex.spec.tsx +0 -227
  303. package/test/component/Tooltip/graphicalItem.formatter.spec.tsx +0 -138
  304. package/test/component/Tooltip/itemSorter.spec.tsx +0 -2815
  305. package/test/component/Tooltip/tooltipEventType.spec.tsx +0 -344
  306. package/test/component/Tooltip/tooltipMouseHoverSelectors.ts +0 -41
  307. package/test/component/Tooltip/tooltipTestHelpers.tsx +0 -162
  308. package/test/component/Tooltip.defaultIndex.spec.tsx +0 -48
  309. package/test/component/Tooltip.hover.spec.tsx +0 -61
  310. package/test/component/Tooltip.item.spec.tsx +0 -54
  311. package/test/component/Tooltip.keyboard.spec.tsx +0 -51
  312. package/test/component/Tooltip.payload.spec.tsx +0 -1716
  313. package/test/component/Tooltip.touch.spec.tsx +0 -39
  314. package/test/component/Tooltip.visibility.spec.tsx +0 -1889
  315. package/test/component/TooltipBoundingBox.spec.tsx +0 -89
  316. package/test/component/responsiveContainerUtils.spec.ts +0 -205
  317. package/test/container/ClipPath.spec.tsx +0 -602
  318. package/test/container/chartDimensions.spec.tsx +0 -368
  319. package/test/context/chartLayoutContext.spec.tsx +0 -378
  320. package/test/helper/ExpectAxisDomain.tsx +0 -27
  321. package/test/helper/assertNotNull.ts +0 -6
  322. package/test/helper/assertZIndexLayerOrder.ts +0 -19
  323. package/test/helper/createSelectorTestCase.tsx +0 -176
  324. package/test/helper/expectAnimatedPieAngles.ts +0 -100
  325. package/test/helper/expectAnimatedPiePaths.ts +0 -78
  326. package/test/helper/expectAreaCurve.ts +0 -15
  327. package/test/helper/expectAxisTicks.ts +0 -48
  328. package/test/helper/expectBars.ts +0 -54
  329. package/test/helper/expectFunctionReturning.ts +0 -58
  330. package/test/helper/expectLabel.ts +0 -32
  331. package/test/helper/expectLastCalledWith.ts +0 -48
  332. package/test/helper/expectLine.ts +0 -20
  333. package/test/helper/expectPieSectors.ts +0 -80
  334. package/test/helper/expectScale.ts +0 -37
  335. package/test/helper/expectScatterPoints.ts +0 -52
  336. package/test/helper/expectStackGroups.ts +0 -144
  337. package/test/helper/mockAxes.ts +0 -22
  338. package/test/helper/mockGetBoundingClientRect.ts +0 -66
  339. package/test/helper/mockHTMLElementProperty.ts +0 -19
  340. package/test/helper/mockTouchingElement.ts +0 -27
  341. package/test/helper/offsetHelpers.ts +0 -19
  342. package/test/helper/parameterizedTestCases.tsx +0 -99
  343. package/test/helper/produceState.ts +0 -32
  344. package/test/helper/selectorTestHelpers.tsx +0 -63
  345. package/test/helper/trim.spec.ts +0 -35
  346. package/test/helper/trim.ts +0 -11
  347. package/test/hooks/useActiveTooltipDataPoints.spec.tsx +0 -358
  348. package/test/hooks/useAxisDomain.spec.tsx +0 -361
  349. package/test/hooks/useAxisScale.spec.tsx +0 -283
  350. package/test/hooks/useAxisTicks.spec.tsx +0 -130
  351. package/test/hooks/useOffset.spec.tsx +0 -248
  352. package/test/hooks/useTooltipStateHooks.spec.tsx +0 -109
  353. package/test/polar/Pie/Pie-TwoLevelPieChart.spec.tsx +0 -135
  354. package/test/polar/Pie/Pie.spec.tsx +0 -784
  355. package/test/polar/Pie/Pie.typed.spec.tsx +0 -78
  356. package/test/polar/Pie.animation.spec.tsx +0 -529
  357. package/test/polar/PieWithLegend.animation.spec.tsx +0 -142
  358. package/test/polar/PolarAngleAxis/PolarAngleAxis.events.spec.tsx +0 -76
  359. package/test/polar/PolarAngleAxis/PolarAngleAxis.spec.tsx +0 -2079
  360. package/test/polar/PolarAngleAxis/PolarAngleAxis.typed.spec.tsx +0 -102
  361. package/test/polar/PolarAngleAxis.render.spec.tsx +0 -79
  362. package/test/polar/PolarGrid.render.spec.tsx +0 -75
  363. package/test/polar/PolarGrid.spec.tsx +0 -918
  364. package/test/polar/PolarLegendPerRow.render.spec.tsx +0 -85
  365. package/test/polar/PolarRadiusAxis.events.spec.tsx +0 -65
  366. package/test/polar/PolarRadiusAxis.render.spec.tsx +0 -52
  367. package/test/polar/PolarRadiusAxis.spec.tsx +0 -991
  368. package/test/polar/PolarRadiusAxis.typed.spec.tsx +0 -84
  369. package/test/polar/PolarTooltipLegend.render.spec.tsx +0 -80
  370. package/test/polar/Radar.animation.spec.tsx +0 -570
  371. package/test/polar/Radar.render.spec.tsx +0 -71
  372. package/test/polar/Radar.spec.tsx +0 -265
  373. package/test/polar/Radar.typed.spec.tsx +0 -119
  374. package/test/polar/RadialBar/RadialBar.spec.tsx +0 -1521
  375. package/test/polar/RadialBar/RadialBar.typed.spec.tsx +0 -132
  376. package/test/polar/RadialBar.animation.spec.tsx +0 -375
  377. package/test/polar/RadialBar.render.spec.tsx +0 -66
  378. package/test/polar/RadialBar.stacked.spec.tsx +0 -57
  379. package/test/setup.ts +0 -84
  380. package/test/shape/ActiveShape.spec.tsx +0 -181
  381. package/test/shape/Cross.spec.tsx +0 -60
  382. package/test/shape/Cross.typed.spec.tsx +0 -26
  383. package/test/shape/Curve.spec.tsx +0 -368
  384. package/test/shape/Curve.typed.spec.tsx +0 -69
  385. package/test/shape/Dot.spec.tsx +0 -73
  386. package/test/shape/Dot.typed.spec.tsx +0 -30
  387. package/test/shape/Polygon.spec.tsx +0 -357
  388. package/test/shape/Polygon.typed.spec.tsx +0 -28
  389. package/test/shape/Rectangle.animation.spec.tsx +0 -451
  390. package/test/shape/Rectangle.spec.tsx +0 -68
  391. package/test/shape/Rectangle.typed.spec.tsx +0 -24
  392. package/test/shape/Sector.spec.tsx +0 -76
  393. package/test/shape/Sector.typed.spec.tsx +0 -24
  394. package/test/shape/Symbols.spec.tsx +0 -43
  395. package/test/shape/Symbols.typed.spec.tsx +0 -24
  396. package/test/shape/Trapezoid.spec.tsx +0 -50
  397. package/test/shape/Trapezoid.typed.spec.tsx +0 -24
  398. package/test/shape/__snapshots__/Cross.spec.tsx.snap +0 -62
  399. package/test/shape/__snapshots__/Curve.spec.tsx.snap +0 -460
  400. package/test/shape/__snapshots__/Polygon.spec.tsx.snap +0 -58
  401. package/test/shape/__snapshots__/Rectangle.spec.tsx.snap +0 -117
  402. package/test/shape/__snapshots__/Sector.spec.tsx.snap +0 -71
  403. package/test/shape/__snapshots__/Trapezoid.spec.tsx.snap +0 -64
  404. package/test/state/chartDataSlice.spec.ts +0 -53
  405. package/test/state/externalEventsMiddleware.spec.ts +0 -178
  406. package/test/state/graphicalItemsSlice.spec.ts +0 -92
  407. package/test/state/hooks.spec.tsx +0 -68
  408. package/test/state/legendSlice.spec.ts +0 -44
  409. package/test/state/mouseEventsMiddleware.spec.ts +0 -75
  410. package/test/state/optionsSlice.spec.ts +0 -19
  411. package/test/state/reduxDevtoolsJsonStringifyReplacer.spec.ts +0 -25
  412. package/test/state/referenceElementsSlice.spec.ts +0 -84
  413. package/test/state/selectors/areaSelectors.spec.tsx +0 -77
  414. package/test/state/selectors/axisSelectors.spec.tsx +0 -1418
  415. package/test/state/selectors/barStackSelectors.spec.tsx +0 -752
  416. package/test/state/selectors/brushSelectors.spec.tsx +0 -30
  417. package/test/state/selectors/cartesianAxisSlice.spec.ts +0 -96
  418. package/test/state/selectors/combineNiceTicks.spec.ts +0 -207
  419. package/test/state/selectors/combiners/combineActiveTooltipIndex.spec.ts +0 -61
  420. package/test/state/selectors/combiners/combineAllBarPositions.spec.ts +0 -39
  421. package/test/state/selectors/combiners/combineConfiguredScale.spec.ts +0 -56
  422. package/test/state/selectors/combiners/combineDisplayedStackedData.spec.ts +0 -123
  423. package/test/state/selectors/combiners/combineRealScaleType.spec.ts +0 -80
  424. package/test/state/selectors/containerSelectors.spec.tsx +0 -168
  425. package/test/state/selectors/dataSelectors.spec.tsx +0 -136
  426. package/test/state/selectors/legendSelectors.spec.tsx +0 -113
  427. package/test/state/selectors/lineSelectors.spec.tsx +0 -60
  428. package/test/state/selectors/pieSelectors.spec.tsx +0 -72
  429. package/test/state/selectors/radarSelectors.spec.tsx +0 -496
  430. package/test/state/selectors/rootPropsSelectors.spec.tsx +0 -169
  431. package/test/state/selectors/scatterSelectors.spec.tsx +0 -47
  432. package/test/state/selectors/selectActiveTooltipIndex.spec.tsx +0 -234
  433. package/test/state/selectors/selectAllAxes.spec.tsx +0 -18
  434. package/test/state/selectors/selectAxisDomain.spec.tsx +0 -21
  435. package/test/state/selectors/selectAxisDomainIncludingNiceTicks.spec.tsx +0 -19
  436. package/test/state/selectors/selectAxisRangeWithReverse.spec.tsx +0 -22
  437. package/test/state/selectors/selectAxisScale.spec.tsx +0 -91
  438. package/test/state/selectors/selectBarRectangles.stackOffset.spec.tsx +0 -503
  439. package/test/state/selectors/selectBaseAxis.spec.tsx +0 -56
  440. package/test/state/selectors/selectCartesianItemsSettings.spec.tsx +0 -57
  441. package/test/state/selectors/selectChartOffset.spec.tsx +0 -26
  442. package/test/state/selectors/selectDisplayedData.spec.tsx +0 -282
  443. package/test/state/selectors/selectIsTooltipActive.spec.tsx +0 -231
  444. package/test/state/selectors/selectNumericalDomain.spec.tsx +0 -21
  445. package/test/state/selectors/selectRealScaleType.spec.tsx +0 -19
  446. package/test/state/selectors/selectStackGroups.spec.tsx +0 -322
  447. package/test/state/selectors/selectXAxisPosition.spec.tsx +0 -22
  448. package/test/state/selectors/selectYAxisPosition.spec.tsx +0 -22
  449. package/test/state/selectors/selectors.spec.tsx +0 -1613
  450. package/test/state/throttling.spec.ts +0 -200
  451. package/test/state/zIndexSlice.spec.ts +0 -85
  452. package/test/synchronisation/useChartSynchronisation.spec.tsx +0 -225
  453. package/test/util/BarUtils.spec.ts +0 -39
  454. package/test/util/CartesianUtils/CartesianUtils.spec.ts +0 -261
  455. package/test/util/CartesianUtils/rectWithPoints.spec.ts +0 -48
  456. package/test/util/ChartUtils/ChartUtils.spec.ts +0 -491
  457. package/test/util/ChartUtils/appendOffsetOfLegend.spec.ts +0 -136
  458. package/test/util/ChartUtils/appendOffsetOfLegend.spec.tsx +0 -133
  459. package/test/util/ChartUtils/getCateCoordinateOfLine.spec.ts +0 -83
  460. package/test/util/ChartUtils/getStackedData.spec.ts +0 -416
  461. package/test/util/ChartUtils/truncateByDomain.spec.ts +0 -70
  462. package/test/util/DataUtils.spec.ts +0 -385
  463. package/test/util/DomUtils.spec.tsx +0 -117
  464. package/test/util/FunnelUtils.spec.tsx +0 -70
  465. package/test/util/Global.spec.ts +0 -11
  466. package/test/util/LRUCache.spec.ts +0 -81
  467. package/test/util/LogUtils.spec.ts +0 -45
  468. package/test/util/PolarUtils.spec.ts +0 -66
  469. package/test/util/ReduceCssCalcPrototype.spec.ts +0 -141
  470. package/test/util/ShallowEqual.spec.ts +0 -102
  471. package/test/util/TickUtils.spec.ts +0 -29
  472. package/test/util/axisPropsAreEqual.spec.ts +0 -93
  473. package/test/util/createChartHelpers.spec.tsx +0 -210
  474. package/test/util/cursor/getCursorPoints.spec.ts +0 -136
  475. package/test/util/cursor/getCursorRectangle.spec.ts +0 -50
  476. package/test/util/cursor/getRadialCursorPoints.spec.ts +0 -36
  477. package/test/util/errorValue.spec.ts +0 -69
  478. package/test/util/getEveryNth.spec.ts +0 -39
  479. package/test/util/getRadiusAndStrokeWidthFromDot.spec.ts +0 -51
  480. package/test/util/getRelativeCoordinate.spec.ts +0 -250
  481. package/test/util/getSliced.spec.ts +0 -45
  482. package/test/util/isDomainSpecifiedByUser.spec.ts +0 -207
  483. package/test/util/isWellBehavedNumber.spec.ts +0 -54
  484. package/test/util/payload/getUniqPayload.spec.ts +0 -56
  485. package/test/util/propsAreEqual.spec.ts +0 -75
  486. package/test/util/round.spec.ts +0 -112
  487. package/test/util/scale/arithmetic.spec.ts +0 -61
  488. package/test/util/scale/createCategoricalInverse.spec.ts +0 -84
  489. package/test/util/scale/getNiceTickValues.spec.ts +0 -421
  490. package/test/util/scale/getTickValuesFixedDomain.spec.ts +0 -155
  491. package/test/util/svgPropertiesAndEvents.spec.tsx +0 -206
  492. package/test/util/svgPropertiesNoEvents.spec.tsx +0 -228
  493. package/test/util/tooltip/translate.spec.ts +0 -396
  494. package/test/util/useAnimationId.spec.tsx +0 -59
  495. package/test/util/useElementOffset.spec.tsx +0 -173
  496. package/test/util/usePrefersReducedMotion.spec.ts +0 -54
  497. package/test/util/useUniqueId.spec.ts +0 -99
  498. package/test/utils/diagnostics-allowlist.ts +0 -18
  499. package/test/utils/diagnostics.ts +0 -58
  500. package/test/zIndex/AllZIndexPortals.spec.tsx +0 -83
  501. package/test/zIndex/DefaultZIndexes.spec.ts +0 -80
  502. package/test/zIndex/DynamicZIndex.spec.tsx +0 -102
  503. package/test/zIndex/ZIndexLayer.portalOwner.spec.tsx +0 -125
  504. package/test/zIndex/componentZIndex.spec.tsx +0 -255
  505. package/test/zIndex/getZIndexFromUnknown.spec.ts +0 -51
  506. package/test/zIndex/multiChartZIndexIsolation.spec.tsx +0 -90
  507. package/test/zIndex/zIndexSelectors.spec.ts +0 -172
  508. package/tsconfig.json +0 -11
@@ -1,496 +0,0 @@
1
- // Port of recharts 3.8.1 test/state/selectors/radarSelectors.spec.tsx (commit 7a23854).
2
- // Tier-B selector values, golden-anchored to recharts. Harness deltas: render+Comp+spy
3
- // → createSelectorTestCase; the `scale` field is asserted via the Solid `expectScale`
4
- // helper (the Solid port has no `toBeRechartsScale` asymmetric matcher) with the rest of
5
- // the axis object via objectContaining. The "should return new data after interaction"
6
- // case uses a Solid signal (in place of React useState) to flip the Radar dataKey and
7
- // asserts the selector VALUE before/after the click (render-count assertions dropped).
8
- import { createEffect, createSignal, flush } from "solid-js";
9
- import { describe, expect, it, vi } from "vitest";
10
- import { fireEvent, render } from "@solidjs/testing-library";
11
- import { useAppSelectorWithStableTest } from "../../helper/selectorTestHelpers";
12
- import { RechartsRootState } from "../../../src/state/store";
13
- import {
14
- selectAngleAxisForBandSize,
15
- selectAngleAxisWithScaleAndViewport,
16
- selectRadarPoints,
17
- selectRadiusAxisForBandSize,
18
- } from "../../../src/state/selectors/radarSelectors";
19
- import {
20
- shouldReturnFromInitialState,
21
- shouldReturnUndefinedOutOfContext,
22
- } from "../../helper/selectorTestHelpers";
23
- import { createSelectorTestCase } from "../../helper/createSelectorTestCase";
24
- import { expectScale } from "../../helper/expectScale";
25
- import { expectLastCalledWith } from "../../helper/expectLastCalledWith";
26
- import { PolarAngleAxis, PolarRadiusAxis, Radar, RadarChart } from "../../../src";
27
- import { exampleRadarData } from "../../_data";
28
-
29
- /** Reads the `.scale` off a spied axis object without a type assertion. */
30
- function scaleOf(value: unknown): unknown {
31
- return value != null && typeof value === "object" && "scale" in value ? value.scale : undefined;
32
- }
33
-
34
- describe("selectRadarPoints", () => {
35
- const selector = (state: RechartsRootState) =>
36
- selectRadarPoints(state, 0, 0, false, "radar-value");
37
-
38
- shouldReturnUndefinedOutOfContext(selector);
39
- shouldReturnFromInitialState(selector, undefined);
40
-
41
- const renderTestCase = createSelectorTestCase((props) => (
42
- <RadarChart width={500} height={500} data={exampleRadarData}>
43
- <Radar dataKey="value" id="radar-value" />
44
- <PolarRadiusAxis dataKey="value" />
45
- {props.children}
46
- </RadarChart>
47
- ));
48
-
49
- it("should return radar points in a chart", () => {
50
- const { spy } = renderTestCase(selector);
51
- expectLastCalledWith(spy, {
52
- baseLinePoints: [],
53
- isRange: false,
54
- points: [
55
- {
56
- angle: 90,
57
- cx: 250,
58
- cy: 250,
59
- name: 0,
60
- payload: { half: 210, name: "iPhone 3GS", value: 420 },
61
- radius: 82.32,
62
- value: 420,
63
- x: 250,
64
- y: 167.68,
65
- },
66
- {
67
- angle: 45,
68
- cx: 250,
69
- cy: 250,
70
- name: 1,
71
- payload: { half: 230, name: "iPhone 4", value: 460 },
72
- radius: 90.16000000000001,
73
- value: 460,
74
- x: 313.75274739177917,
75
- y: 186.2472526082209,
76
- },
77
- {
78
- angle: 0,
79
- cx: 250,
80
- cy: 250,
81
- name: 2,
82
- payload: { half: 500, name: "iPhone 4s", value: 999 },
83
- radius: 195.804,
84
- value: 999,
85
- x: 445.804,
86
- y: 250,
87
- },
88
- {
89
- angle: -45,
90
- cx: 250,
91
- cy: 250,
92
- name: 3,
93
- payload: { half: 250, name: "iPhone 5", value: 500 },
94
- radius: 98,
95
- value: 500,
96
- x: 319.29646455628165,
97
- y: 319.29646455628165,
98
- },
99
- {
100
- angle: -90,
101
- cx: 250,
102
- cy: 250,
103
- name: 4,
104
- payload: { half: 432, name: "iPhone 5s", value: 864 },
105
- radius: 169.344,
106
- value: 864,
107
- x: 250,
108
- y: 419.344,
109
- },
110
- {
111
- angle: -135,
112
- cx: 250,
113
- cy: 250,
114
- name: 5,
115
- payload: { half: 325, name: "iPhone 6", value: 650 },
116
- radius: 127.4,
117
- value: 650,
118
- x: 159.91459607683385,
119
- y: 340.08540392316615,
120
- },
121
- {
122
- angle: -180,
123
- cx: 250,
124
- cy: 250,
125
- name: 6,
126
- payload: { half: 383, name: "iPhone 6s", value: 765 },
127
- radius: 149.94,
128
- value: 765,
129
- x: 100.06,
130
- y: 250.00000000000003,
131
- },
132
- {
133
- angle: -225,
134
- cx: 250,
135
- cy: 250,
136
- name: 7,
137
- payload: { half: 183, name: "iPhone 5se", value: 365 },
138
- radius: 71.53999999999999,
139
- value: 365,
140
- x: 199.41358087391438,
141
- y: 199.41358087391438,
142
- },
143
- ],
144
- });
145
- });
146
-
147
- it("should return new data after interaction", () => {
148
- const spy = vi.fn();
149
- const Comp = (): null => {
150
- const points = useAppSelectorWithStableTest((state) =>
151
- selectRadarPoints(state, 0, 0, false, "radar-value"),
152
- );
153
- createEffect(
154
- () => points(),
155
- (value) => spy(value),
156
- );
157
- return null;
158
- };
159
- const TestCase = () => {
160
- const [dataKey, setDataKey] = createSignal<"value" | "half">("value");
161
- return (
162
- <>
163
- {dataKey() === "value" ? (
164
- <button type="button" onClick={() => setDataKey("half")}>
165
- Change DataKey to half
166
- </button>
167
- ) : (
168
- <button type="button" onClick={() => setDataKey("value")}>
169
- Change DataKey to value
170
- </button>
171
- )}
172
- <RadarChart data={exampleRadarData} width={400} height={400}>
173
- <Radar dataKey={dataKey()} id="radar-value" />
174
- <Comp />
175
- </RadarChart>
176
- </>
177
- );
178
- };
179
- const { container } = render(() => <TestCase />);
180
- flush();
181
-
182
- const expectedResultBefore: ReturnType<typeof selectRadarPoints> = {
183
- baseLinePoints: [],
184
- isRange: false,
185
- points: [
186
- {
187
- angle: 90,
188
- cx: 200,
189
- cy: 200,
190
- name: 0,
191
- payload: { half: 210, name: "iPhone 3GS", value: 420 },
192
- radius: 65.52,
193
- value: 420,
194
- x: 200,
195
- y: 134.48000000000002,
196
- },
197
- {
198
- angle: 45,
199
- cx: 200,
200
- cy: 200,
201
- name: 1,
202
- payload: { half: 230, name: "iPhone 4", value: 460 },
203
- radius: 71.76,
204
- value: 460,
205
- x: 250.74198261794666,
206
- y: 149.25801738205337,
207
- },
208
- {
209
- angle: 0,
210
- cx: 200,
211
- cy: 200,
212
- name: 2,
213
- payload: { half: 500, name: "iPhone 4s", value: 999 },
214
- radius: 155.844,
215
- value: 999,
216
- x: 355.844,
217
- y: 200,
218
- },
219
- {
220
- angle: -45,
221
- cx: 200,
222
- cy: 200,
223
- name: 3,
224
- payload: { half: 250, name: "iPhone 5", value: 500 },
225
- radius: 78,
226
- value: 500,
227
- x: 255.1543289325507,
228
- y: 255.1543289325507,
229
- },
230
- {
231
- angle: -90,
232
- cx: 200,
233
- cy: 200,
234
- name: 4,
235
- payload: { half: 432, name: "iPhone 5s", value: 864 },
236
- radius: 134.784,
237
- value: 864,
238
- x: 200,
239
- y: 334.784,
240
- },
241
- {
242
- angle: -135,
243
- cx: 200,
244
- cy: 200,
245
- name: 5,
246
- payload: { half: 325, name: "iPhone 6", value: 650 },
247
- radius: 101.4,
248
- value: 650,
249
- x: 128.2993723876841,
250
- y: 271.70062761231594,
251
- },
252
- {
253
- angle: -180,
254
- cx: 200,
255
- cy: 200,
256
- name: 6,
257
- payload: { half: 383, name: "iPhone 6s", value: 765 },
258
- radius: 119.34,
259
- value: 765,
260
- x: 80.66,
261
- y: 200.00000000000003,
262
- },
263
- {
264
- angle: -225,
265
- cx: 200,
266
- cy: 200,
267
- name: 7,
268
- payload: { half: 183, name: "iPhone 5se", value: 365 },
269
- radius: 56.94,
270
- value: 365,
271
- x: 159.737339879238,
272
- y: 159.737339879238,
273
- },
274
- ],
275
- };
276
-
277
- expectLastCalledWith(spy, expectedResultBefore);
278
-
279
- const button = container.querySelector("button");
280
- expect(button).not.toBeNull();
281
- fireEvent.click(button!);
282
- flush();
283
-
284
- const expectedResultAfter: ReturnType<typeof selectRadarPoints> = {
285
- baseLinePoints: [],
286
- isRange: false,
287
- points: [
288
- {
289
- angle: 90,
290
- cx: 200,
291
- cy: 200,
292
- name: 0,
293
- payload: { half: 210, name: "iPhone 3GS", value: 420 },
294
- radius: 54.599999999999994,
295
- value: 210,
296
- x: 200,
297
- y: 145.4,
298
- },
299
- {
300
- angle: 45,
301
- cx: 200,
302
- cy: 200,
303
- name: 1,
304
- payload: { half: 230, name: "iPhone 4", value: 460 },
305
- radius: 59.800000000000004,
306
- value: 230,
307
- x: 242.28498551495557,
308
- y: 157.71501448504446,
309
- },
310
- {
311
- angle: 0,
312
- cx: 200,
313
- cy: 200,
314
- name: 2,
315
- payload: { half: 500, name: "iPhone 4s", value: 999 },
316
- radius: 130,
317
- value: 500,
318
- x: 330,
319
- y: 200,
320
- },
321
- {
322
- angle: -45,
323
- cx: 200,
324
- cy: 200,
325
- name: 3,
326
- payload: { half: 250, name: "iPhone 5", value: 500 },
327
- radius: 65,
328
- value: 250,
329
- x: 245.9619407771256,
330
- y: 245.9619407771256,
331
- },
332
- {
333
- angle: -90,
334
- cx: 200,
335
- cy: 200,
336
- name: 4,
337
- payload: { half: 432, name: "iPhone 5s", value: 864 },
338
- radius: 112.32,
339
- value: 432,
340
- x: 200,
341
- y: 312.32,
342
- },
343
- {
344
- angle: -135,
345
- cx: 200,
346
- cy: 200,
347
- name: 5,
348
- payload: { half: 325, name: "iPhone 6", value: 650 },
349
- radius: 84.5,
350
- value: 325,
351
- x: 140.24947698973673,
352
- y: 259.7505230102633,
353
- },
354
- {
355
- angle: -180,
356
- cx: 200,
357
- cy: 200,
358
- name: 6,
359
- payload: { half: 383, name: "iPhone 6s", value: 765 },
360
- radius: 99.58,
361
- value: 383,
362
- x: 100.42,
363
- y: 200,
364
- },
365
- {
366
- angle: -225,
367
- cx: 200,
368
- cy: 200,
369
- name: 7,
370
- payload: { half: 183, name: "iPhone 5se", value: 365 },
371
- radius: 47.58,
372
- value: 183,
373
- x: 166.35585935114406,
374
- y: 166.3558593511441,
375
- },
376
- ],
377
- };
378
-
379
- expectLastCalledWith(spy, expectedResultAfter);
380
- });
381
- });
382
-
383
- describe("selectRadiusAxisForBandSize", () => {
384
- const selector = (state: RechartsRootState) => selectRadiusAxisForBandSize(state, 0);
385
-
386
- shouldReturnUndefinedOutOfContext(selector);
387
- shouldReturnFromInitialState(selector, undefined);
388
-
389
- const renderTestCase = createSelectorTestCase((props) => (
390
- <RadarChart width={500} height={500} data={exampleRadarData}>
391
- <Radar dataKey="value" />
392
- <PolarRadiusAxis dataKey="value" />
393
- {props.children}
394
- </RadarChart>
395
- ));
396
-
397
- it("should return axis object in radar chart", () => {
398
- const { spy } = renderTestCase(selector);
399
- const last: unknown = spy.mock.calls.at(-1)?.[0];
400
- expect(last).toEqual(
401
- expect.objectContaining({
402
- allowDataOverflow: false,
403
- allowDecimals: false,
404
- allowDuplicatedCategory: true,
405
- dataKey: "value",
406
- domain: undefined,
407
- id: 0,
408
- includeHidden: false,
409
- name: undefined,
410
- reversed: false,
411
- niceTicks: "auto",
412
- tick: true,
413
- tickCount: 5,
414
- ticks: undefined,
415
- type: "number",
416
- unit: undefined,
417
- }),
418
- );
419
- expectScale(scaleOf(last), { domain: [0, 1000], range: [0, 196] });
420
- });
421
- });
422
-
423
- describe("selectAngleAxisForBandSize", () => {
424
- const selector = (state: RechartsRootState) => selectAngleAxisForBandSize(state, 0);
425
-
426
- shouldReturnUndefinedOutOfContext(selector);
427
- shouldReturnFromInitialState(selector, undefined);
428
-
429
- const renderTestCase = createSelectorTestCase((props) => (
430
- <RadarChart width={500} height={500} data={exampleRadarData}>
431
- <Radar dataKey="value" />
432
- <PolarAngleAxis dataKey="value" />
433
- {props.children}
434
- </RadarChart>
435
- ));
436
-
437
- it("should return axis object in radar chart", () => {
438
- const { spy } = renderTestCase(selector);
439
- const last: unknown = spy.mock.calls.at(-1)?.[0];
440
- expect(last).toEqual(
441
- expect.objectContaining({
442
- allowDataOverflow: false,
443
- allowDecimals: false,
444
- allowDuplicatedCategory: false,
445
- dataKey: "value",
446
- domain: undefined,
447
- id: 0,
448
- includeHidden: false,
449
- name: undefined,
450
- reversed: false,
451
- niceTicks: "auto",
452
- tick: true,
453
- tickCount: undefined,
454
- ticks: undefined,
455
- type: "category",
456
- unit: undefined,
457
- }),
458
- );
459
- expectScale(scaleOf(last), {
460
- domain: [420, 460, 999, 500, 864, 650, 765, 365],
461
- range: [-270, 90],
462
- });
463
- });
464
- });
465
-
466
- describe("selectAngleAxisWithScaleAndViewport", () => {
467
- const selector = (state: RechartsRootState) => selectAngleAxisWithScaleAndViewport(state, 0);
468
-
469
- shouldReturnUndefinedOutOfContext(selector);
470
- shouldReturnFromInitialState(selector, undefined);
471
-
472
- const renderTestCase = createSelectorTestCase((props) => (
473
- <RadarChart width={500} height={500} data={exampleRadarData}>
474
- <Radar dataKey="value" />
475
- <PolarAngleAxis dataKey="value" />
476
- {props.children}
477
- </RadarChart>
478
- ));
479
-
480
- it("should return angle axis object", () => {
481
- const { spy } = renderTestCase(selector);
482
- const last: unknown = spy.mock.calls.at(-1)?.[0];
483
- expect(last).toEqual(
484
- expect.objectContaining({
485
- cx: 250,
486
- cy: 250,
487
- dataKey: "value",
488
- type: "category",
489
- }),
490
- );
491
- expectScale(scaleOf(last), {
492
- domain: [420, 460, 999, 500, 864, 650, 765, 365],
493
- range: [-270, 90],
494
- });
495
- });
496
- });
@@ -1,169 +0,0 @@
1
- // Ported from recharts 3.8.1 test/state/selectors/rootPropsSelectors.spec.tsx
2
- // (commit 7a23854). Solid deviations: update assertions are driven by signals.
3
- import { createSignal } from "solid-js";
4
- import { describe, expect, it } from "vitest";
5
- import { Bar, BarChart } from "../../../src";
6
- import { createRechartsStore } from "../../../src/state/store";
7
- import {
8
- selectBarCategoryGap,
9
- selectBarGap,
10
- selectRootBarSize,
11
- selectRootMaxBarSize,
12
- selectSyncMethod,
13
- } from "../../../src/state/selectors/rootPropsSelectors";
14
- import {
15
- shouldReturnFromInitialState,
16
- shouldReturnUndefinedOutOfContext,
17
- } from "../../helper/selectorTestHelpers";
18
- import { expectLastCalledWith } from "../../helper/expectLastCalledWith";
19
- import { createSelectorTestCase } from "../../helper/createSelectorTestCase";
20
- import { SyncMethod } from "../../../src/util/types";
21
-
22
- describe("selectRootMaxBarSize", () => {
23
- shouldReturnUndefinedOutOfContext(selectRootMaxBarSize);
24
- shouldReturnFromInitialState(selectRootMaxBarSize, undefined);
25
-
26
- it("should return undefined in an empty chart", () => {
27
- const renderTestCase = createSelectorTestCase((props) => (
28
- <BarChart width={100} height={100}>
29
- {props.children}
30
- </BarChart>
31
- ));
32
- const { spy } = renderTestCase(selectRootMaxBarSize);
33
- expectLastCalledWith(spy, undefined);
34
- });
35
-
36
- it("should return and update maxBarSize defined on chart root", () => {
37
- const [maxBarSize, setMaxBarSize] = createSignal(10);
38
- const renderTestCase = createSelectorTestCase((props) => (
39
- <BarChart width={100} height={100} maxBarSize={maxBarSize()}>
40
- <Bar maxBarSize={5} />
41
- {props.children}
42
- </BarChart>
43
- ));
44
- const { spy, rerenderSameComponent } = renderTestCase(selectRootMaxBarSize);
45
- expectLastCalledWith(spy, 10);
46
-
47
- setMaxBarSize(20);
48
- rerenderSameComponent();
49
- expectLastCalledWith(spy, 20);
50
- });
51
- });
52
-
53
- describe("selectBarGap", () => {
54
- shouldReturnUndefinedOutOfContext(selectBarGap);
55
- shouldReturnFromInitialState(selectBarGap, 4);
56
-
57
- it("should return default value in a chart without barGap prop", () => {
58
- const renderTestCase = createSelectorTestCase((props) => (
59
- <BarChart width={100} height={100}>
60
- {props.children}
61
- </BarChart>
62
- ));
63
- const { spy } = renderTestCase(selectBarGap);
64
- expectLastCalledWith(spy, 4);
65
- });
66
-
67
- it("should return and update barGap defined on chart root", () => {
68
- const [barGap, setBarGap] = createSignal(10);
69
- const renderTestCase = createSelectorTestCase((props) => (
70
- <BarChart width={100} height={100} barGap={barGap()}>
71
- {props.children}
72
- </BarChart>
73
- ));
74
- const { spy, rerenderSameComponent } = renderTestCase(selectBarGap);
75
- expectLastCalledWith(spy, 10);
76
-
77
- setBarGap(20);
78
- rerenderSameComponent();
79
- expectLastCalledWith(spy, 20);
80
- });
81
- });
82
-
83
- describe("selectBarCategoryGap", () => {
84
- shouldReturnUndefinedOutOfContext(selectBarCategoryGap);
85
- shouldReturnFromInitialState(selectBarCategoryGap, "10%");
86
-
87
- it("should return default value for initial state", () => {
88
- const store = createRechartsStore();
89
- expect(selectBarCategoryGap(store.state)).toBe("10%");
90
- });
91
-
92
- it("should return default value in an empty chart", () => {
93
- const renderTestCase = createSelectorTestCase((props) => (
94
- <BarChart width={100} height={100}>
95
- {props.children}
96
- </BarChart>
97
- ));
98
- const { spy } = renderTestCase(selectBarCategoryGap);
99
- expectLastCalledWith(spy, "10%");
100
- });
101
-
102
- it("should return and update barCategoryGap defined on chart root", () => {
103
- const [barCategoryGap, setBarCategoryGap] = createSignal<string | number>(10);
104
- const renderTestCase = createSelectorTestCase((props) => (
105
- <BarChart width={100} height={100} barCategoryGap={barCategoryGap()}>
106
- {props.children}
107
- </BarChart>
108
- ));
109
- const { spy, rerenderSameComponent } = renderTestCase(selectBarCategoryGap);
110
- expectLastCalledWith(spy, 10);
111
-
112
- setBarCategoryGap(20);
113
- rerenderSameComponent();
114
- expectLastCalledWith(spy, 20);
115
- });
116
- });
117
-
118
- describe("selectRootBarSize", () => {
119
- shouldReturnUndefinedOutOfContext(selectRootBarSize);
120
- shouldReturnFromInitialState(selectRootBarSize, undefined);
121
-
122
- it("should return undefined in an empty chart", () => {
123
- const renderTestCase = createSelectorTestCase((props) => (
124
- <BarChart width={100} height={100}>
125
- {props.children}
126
- </BarChart>
127
- ));
128
- const { spy } = renderTestCase(selectRootBarSize);
129
- expectLastCalledWith(spy, undefined);
130
- });
131
-
132
- it("should return and update barSize defined on chart root", () => {
133
- const [barSize, setBarSize] = createSignal(10);
134
- const renderTestCase = createSelectorTestCase((props) => (
135
- <BarChart width={100} height={100} barSize={barSize()}>
136
- {props.children}
137
- </BarChart>
138
- ));
139
- const { spy, rerenderSameComponent } = renderTestCase(selectRootBarSize);
140
- expectLastCalledWith(spy, 10);
141
-
142
- setBarSize(20);
143
- rerenderSameComponent();
144
- expectLastCalledWith(spy, 20);
145
- });
146
- });
147
-
148
- describe("selectSyncMethod", () => {
149
- it('should return "index" by default', () => {
150
- const store = createRechartsStore();
151
- expect(store.state.rootProps.syncMethod).toBe("index");
152
- });
153
-
154
- it("should return and update syncMethod defined on chart root", () => {
155
- const fn = () => 1;
156
- const [syncMethod, setSyncMethod] = createSignal<SyncMethod>("value");
157
- const renderTestCase = createSelectorTestCase((props) => (
158
- <BarChart width={100} height={100} syncMethod={syncMethod()}>
159
- {props.children}
160
- </BarChart>
161
- ));
162
- const { spy, rerenderSameComponent } = renderTestCase(selectSyncMethod);
163
- expectLastCalledWith(spy, "value");
164
-
165
- setSyncMethod(() => fn);
166
- rerenderSameComponent();
167
- expectLastCalledWith(spy, fn);
168
- });
169
- });
@@ -1,47 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { selectScatterPoints } from "../../../src/state/selectors/scatterSelectors";
3
- import { Pie, PieChart } from "../../../src";
4
- import {
5
- shouldReturnFromInitialState,
6
- shouldReturnUndefinedOutOfContext,
7
- } from "../../helper/selectorTestHelpers";
8
- import type { RechartsRootState } from "../../../src/state/store";
9
- import { createSelectorTestCase } from "../../helper/createSelectorTestCase";
10
-
11
- /*
12
- * Ported from recharts 3.8.1 test/state/selectors/scatterSelectors.spec.tsx.
13
- * The "computed scatter points" golden test depends on the storybook `pageData`
14
- * dataset (not available here) and is omitted. Ported: the pure value assertions
15
- * and the "chart that does not support Scatter → undefined" guard.
16
- * Note: this port's selectScatterPoints signature is
17
- * (state, xAxisId, yAxisId, zAxisId, id, isPanorama, cells?).
18
- */
19
-
20
- describe("selectScatterPoints", () => {
21
- const selector = (state: RechartsRootState) =>
22
- selectScatterPoints(state, 0, 0, 0, "scatter-id", false);
23
-
24
- shouldReturnUndefinedOutOfContext(selector);
25
- shouldReturnFromInitialState(selector, undefined);
26
-
27
- describe("in a chart that does not support Scatter", () => {
28
- const renderTestCase = createSelectorTestCase((props) => (
29
- <PieChart width={100} height={200}>
30
- <Pie
31
- data={[{ uv: 1 }]}
32
- dataKey="uv"
33
- isAnimationActive={false}
34
- cx="50%"
35
- cy="50%"
36
- outerRadius={80}
37
- />
38
- {props.children}
39
- </PieChart>
40
- ));
41
-
42
- it("should return undefined", () => {
43
- const { spy } = renderTestCase(selector);
44
- expect(spy).toHaveBeenCalledWith(undefined);
45
- });
46
- });
47
- });