solid-recharts 0.2.1 → 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 (488) hide show
  1. package/package.json +13 -11
  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 +4 -4
  6. package/src/cartesian/AreaRevealShape.tsx +1 -1
  7. package/src/cartesian/Bar.tsx +33 -21
  8. package/src/cartesian/BarStack.tsx +5 -5
  9. package/src/cartesian/Brush.tsx +19 -15
  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 +3 -3
  14. package/src/cartesian/GraphicalItemClipPath.tsx +1 -1
  15. package/src/cartesian/Line.tsx +18 -16
  16. package/src/cartesian/LineDrawShape.tsx +14 -13
  17. package/src/cartesian/ReferenceArea.tsx +4 -4
  18. package/src/cartesian/ReferenceDot.tsx +4 -4
  19. package/src/cartesian/ReferenceLine.tsx +4 -4
  20. package/src/cartesian/RenderedTicksReporter.tsx +19 -17
  21. package/src/cartesian/Scatter.tsx +3 -3
  22. package/src/cartesian/XAxis.tsx +1 -1
  23. package/src/cartesian/YAxis.tsx +35 -33
  24. package/src/cartesian/ZAxis.tsx +3 -2
  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 +5 -4
  40. package/src/chart/Treemap.tsx +5 -4
  41. package/src/component/ActivePoints.tsx +6 -6
  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 +5 -5
  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 +2 -2
  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 +13 -12
  65. package/src/polar/PolarAngleAxis.tsx +3 -3
  66. package/src/polar/PolarGrid.tsx +5 -5
  67. package/src/polar/PolarRadiusAxis.tsx +3 -3
  68. package/src/polar/Radar.tsx +3 -3
  69. package/src/polar/RadialBar.tsx +3 -3
  70. package/src/shape/Cross.tsx +5 -5
  71. package/src/shape/Curve.tsx +6 -7
  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 +5 -5
  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 +1 -1
  84. package/src/state/SetTooltipEntrySettings.tsx +1 -1
  85. package/src/state/brushSlice.ts +10 -8
  86. package/src/state/cartesianAxisSlice.ts +46 -38
  87. package/src/state/chartDataSlice.ts +29 -23
  88. package/src/state/errorBarSlice.ts +22 -16
  89. package/src/state/eventSettingsSlice.ts +11 -9
  90. package/src/state/graphicalItemsSlice.ts +17 -13
  91. package/src/state/layoutSlice.ts +27 -19
  92. package/src/state/legendSlice.ts +24 -18
  93. package/src/state/optionsSlice.ts +8 -6
  94. package/src/state/polarAxisSlice.ts +21 -13
  95. package/src/state/polarOptionsSlice.ts +16 -14
  96. package/src/state/referenceElementsSlice.ts +25 -19
  97. package/src/state/registerInStore.ts +15 -13
  98. package/src/state/renderedTicksSlice.ts +11 -7
  99. package/src/state/rootPropsSlice.ts +16 -14
  100. package/src/state/tooltipSlice.ts +115 -95
  101. package/src/state/unregisterOnCleanup.ts +5 -20
  102. package/src/state/zIndexSlice.ts +50 -42
  103. package/src/synchronisation/useChartSynchronisation.tsx +213 -217
  104. package/src/util/ActiveShapeUtils.tsx +2 -2
  105. package/src/util/BarUtils.tsx +5 -3
  106. package/src/util/DirectPortal.tsx +107 -0
  107. package/src/util/FunnelUtils.tsx +1 -1
  108. package/src/util/RadialBarUtils.tsx +4 -3
  109. package/src/util/createCartesianCharts.tsx +1 -1
  110. package/src/util/createPolarCharts.tsx +1 -1
  111. package/src/util/svgPropertiesAndEvents.ts +1 -1
  112. package/src/util/tooltip/translate.ts +2 -2
  113. package/src/util/types.ts +2 -2
  114. package/src/zIndex/ZIndexLayer.tsx +39 -68
  115. package/src/zIndex/ZIndexPortal.tsx +29 -25
  116. package/test/_data.ts +0 -408
  117. package/test/animation/AnimationController.typed.spec.ts +0 -53
  118. package/test/animation/AnimationControllerImpl.spec.ts +0 -271
  119. package/test/animation/CSSTransitionAnimate.timing.spec.tsx +0 -473
  120. package/test/animation/JavascriptAnimate.spec.tsx +0 -62
  121. package/test/animation/RechartsAnimation.spec.ts +0 -636
  122. package/test/animation/easing.spec.ts +0 -218
  123. package/test/animation/legacyAnimationLengthChange.spec.tsx +0 -803
  124. package/test/animation/matchBy.spec.ts +0 -467
  125. package/test/animation/mockAnimationController.ts +0 -40
  126. package/test/animation/mockControllerAnimationManager.ts +0 -143
  127. package/test/animation/mockTimeoutController.ts +0 -114
  128. package/test/animation/timeoutController.spec.ts +0 -138
  129. package/test/animation/useAnimationStartSnapshot.spec.ts +0 -147
  130. package/test/animation/util.spec.ts +0 -28
  131. package/test/cartesian/Area.animation.spec.tsx +0 -363
  132. package/test/cartesian/Area.range.spec.tsx +0 -54
  133. package/test/cartesian/Area.spec.tsx +0 -1202
  134. package/test/cartesian/Area.stacked.render.spec.tsx +0 -69
  135. package/test/cartesian/Area.typed.spec.tsx +0 -209
  136. package/test/cartesian/Axis.integration.spec.tsx +0 -158
  137. package/test/cartesian/Bar/Bar.csstransition.spec.tsx +0 -299
  138. package/test/cartesian/Bar/Bar.spec.tsx +0 -2314
  139. package/test/cartesian/Bar/Bar.typed.spec.tsx +0 -192
  140. package/test/cartesian/Bar.animation.spec.tsx +0 -426
  141. package/test/cartesian/Bar.stackDomain.spec.tsx +0 -66
  142. package/test/cartesian/Bar.stacked.render.spec.tsx +0 -53
  143. package/test/cartesian/Bar.truncateByDomain.spec.tsx +0 -237
  144. package/test/cartesian/Bar.zeroDimensionFiltering.spec.tsx +0 -336
  145. package/test/cartesian/BarStack.spec.tsx +0 -91
  146. package/test/cartesian/Brush.keyboard.spec.tsx +0 -88
  147. package/test/cartesian/Brush.panorama.spec.tsx +0 -41
  148. package/test/cartesian/Brush.props.spec.tsx +0 -63
  149. package/test/cartesian/Brush.render.spec.tsx +0 -117
  150. package/test/cartesian/Brush.spec.tsx +0 -522
  151. package/test/cartesian/Brush.stacked.spec.tsx +0 -221
  152. package/test/cartesian/CartesianAxis.render.spec.tsx +0 -50
  153. package/test/cartesian/CartesianAxis.spec.tsx +0 -396
  154. package/test/cartesian/CartesianGrid.render.spec.tsx +0 -39
  155. package/test/cartesian/CartesianGrid.spec.tsx +0 -2103
  156. package/test/cartesian/ErrorBar.render.spec.tsx +0 -69
  157. package/test/cartesian/ErrorBar.spec.tsx +0 -2414
  158. package/test/cartesian/Funnel.animation.spec.tsx +0 -241
  159. package/test/cartesian/Funnel.spec.tsx +0 -226
  160. package/test/cartesian/Funnel.typed.spec.tsx +0 -221
  161. package/test/cartesian/GraphicalItemClipPath.scale-behavior.spec.tsx +0 -627
  162. package/test/cartesian/GraphicalItemClipPath.spec.tsx +0 -427
  163. package/test/cartesian/Line.animation.spec.tsx +0 -643
  164. package/test/cartesian/Line.sparseAnimationPath.spec.tsx +0 -98
  165. package/test/cartesian/Line.spec.tsx +0 -471
  166. package/test/cartesian/Line.typed.spec.tsx +0 -152
  167. package/test/cartesian/ReferenceArea.render.spec.tsx +0 -63
  168. package/test/cartesian/ReferenceArea.spec.tsx +0 -663
  169. package/test/cartesian/ReferenceArea.typed.spec.tsx +0 -74
  170. package/test/cartesian/ReferenceDot.render.spec.tsx +0 -55
  171. package/test/cartesian/ReferenceDot.spec.tsx +0 -462
  172. package/test/cartesian/ReferenceDot.typed.spec.tsx +0 -76
  173. package/test/cartesian/ReferenceLine/ReferenceLine.panorama.spec.tsx +0 -184
  174. package/test/cartesian/ReferenceLine/ReferenceLine.spec.tsx +0 -744
  175. package/test/cartesian/ReferenceLine/ReferenceLine.typed.spec.tsx +0 -74
  176. package/test/cartesian/ReferenceLine/getEndPoints.spec.ts +0 -399
  177. package/test/cartesian/ReferenceLine.render.spec.tsx +0 -134
  178. package/test/cartesian/Scatter.animation.spec.tsx +0 -381
  179. package/test/cartesian/Scatter.render.spec.tsx +0 -61
  180. package/test/cartesian/Scatter.spec.tsx +0 -406
  181. package/test/cartesian/Scatter.typed.spec.tsx +0 -153
  182. package/test/cartesian/XAxis/XAxis.barSize.spec.tsx +0 -336
  183. package/test/cartesian/XAxis/XAxis.brush.spec.tsx +0 -266
  184. package/test/cartesian/XAxis/XAxis.categorydomain.spec.tsx +0 -872
  185. package/test/cartesian/XAxis/XAxis.dataKey.spec.tsx +0 -86
  186. package/test/cartesian/XAxis/XAxis.datatypes.spec.tsx +0 -127
  187. package/test/cartesian/XAxis/XAxis.hide.spec.tsx +0 -106
  188. package/test/cartesian/XAxis/XAxis.multiaxis.spec.tsx +0 -336
  189. package/test/cartesian/XAxis/XAxis.numberdomain.spec.tsx +0 -1466
  190. package/test/cartesian/XAxis/XAxis.padding.spec.tsx +0 -758
  191. package/test/cartesian/XAxis/XAxis.padding_clip.spec.tsx +0 -65
  192. package/test/cartesian/XAxis/XAxis.state.spec.tsx +0 -355
  193. package/test/cartesian/XAxis/XAxis.tick.spec.tsx +0 -493
  194. package/test/cartesian/XAxis/XAxis.timescale.spec.tsx +0 -233
  195. package/test/cartesian/XAxis/XAxis.type.spec.tsx +0 -107
  196. package/test/cartesian/XAxis/XAxis.typed.spec.tsx +0 -102
  197. package/test/cartesian/XAxis/XAxis.vertical.spec.tsx +0 -265
  198. package/test/cartesian/XAxis.tickFormatter.spec.tsx +0 -54
  199. package/test/cartesian/YAxis/YAxis.7362.derivedDomain.spec.tsx +0 -230
  200. package/test/cartesian/YAxis/YAxis.7362.spec.tsx +0 -104
  201. package/test/cartesian/YAxis/YAxis.interval-zero.spec.tsx +0 -88
  202. package/test/cartesian/YAxis/YAxis.label.spec.tsx +0 -219
  203. package/test/cartesian/YAxis/YAxis.spec.tsx +0 -1595
  204. package/test/cartesian/YAxis/YAxis.tick.spec.tsx +0 -428
  205. package/test/cartesian/YAxis/YAxis.tickFormatter.spec.tsx +0 -54
  206. package/test/cartesian/YAxis/YAxis.ticks.spec.tsx +0 -263
  207. package/test/cartesian/YAxis/YAxis.type.spec.tsx +0 -107
  208. package/test/cartesian/YAxis/YAxis.typed.spec.tsx +0 -102
  209. package/test/cartesian/ZAxis.spec.tsx +0 -300
  210. package/test/cartesian/ZAxis.typed.spec.tsx +0 -33
  211. package/test/cartesian/__snapshots__/Brush.spec.tsx.snap +0 -5
  212. package/test/cartesian/axisLineAndStroke.spec.tsx +0 -72
  213. package/test/cartesian/getCartesianPosition.spec.ts +0 -907
  214. package/test/cartesian/getEquidistantTicks.spec.ts +0 -88
  215. package/test/cartesian/getTicks.spec.ts +0 -378
  216. package/test/cartesian/miscFeatureGaps.spec.tsx +0 -89
  217. package/test/cartesian/useAnimatedLineLength.spec.ts +0 -168
  218. package/test/chart/AccessibilityLayer.spec.tsx +0 -569
  219. package/test/chart/AccessibilityScans.spec.tsx +0 -286
  220. package/test/chart/AreaChart.spec.tsx +0 -409
  221. package/test/chart/AreaChart.stacked.spec.tsx +0 -1407
  222. package/test/chart/AreaChart.typed.spec.tsx +0 -39
  223. package/test/chart/BarChart.spec.tsx +0 -3719
  224. package/test/chart/BarChart.typed.spec.tsx +0 -60
  225. package/test/chart/CategoricalChart.spec.tsx +0 -255
  226. package/test/chart/ComposedChart.spec.tsx +0 -199
  227. package/test/chart/ComposedChart.typed.spec.tsx +0 -39
  228. package/test/chart/FunnelChart.spec.tsx +0 -215
  229. package/test/chart/FunnelChart.typed.spec.tsx +0 -39
  230. package/test/chart/LineChart.multiseries.spec.tsx +0 -50
  231. package/test/chart/LineChart.smoke.spec.tsx +0 -50
  232. package/test/chart/LineChart.spec.tsx +0 -930
  233. package/test/chart/LineChart.typed.spec.tsx +0 -39
  234. package/test/chart/NicheChartTooltip.spec.tsx +0 -81
  235. package/test/chart/PieChart.spec.tsx +0 -793
  236. package/test/chart/PieChart.typed.spec.tsx +0 -39
  237. package/test/chart/RadarChart.spec.tsx +0 -530
  238. package/test/chart/RadarChart.typed.spec.tsx +0 -39
  239. package/test/chart/RadialBarChart.5966.spec.tsx +0 -48
  240. package/test/chart/RadialBarChart.spec.tsx +0 -679
  241. package/test/chart/RadialBarChart.typed.spec.tsx +0 -39
  242. package/test/chart/RechartsWrapper.spec.tsx +0 -83
  243. package/test/chart/Sankey.content.spec.tsx +0 -46
  244. package/test/chart/Sankey.spec.tsx +0 -952
  245. package/test/chart/Sankey.typed.spec.tsx +0 -29
  246. package/test/chart/ScatterChart.spec.tsx +0 -2613
  247. package/test/chart/ScatterChart.typed.spec.tsx +0 -39
  248. package/test/chart/SunburstChart.spec.tsx +0 -146
  249. package/test/chart/Treemap.animation.spec.tsx +0 -52
  250. package/test/chart/Treemap.spec.tsx +0 -1003
  251. package/test/chart/Treemap.typed.spec.tsx +0 -26
  252. package/test/chart/chartEvents.spec.tsx +0 -127
  253. package/test/chart/responsive.spec.tsx +0 -620
  254. package/test/component/Cell.render.spec.tsx +0 -155
  255. package/test/component/Cell.spec.tsx +0 -12
  256. package/test/component/Cursor.spec.tsx +0 -186
  257. package/test/component/DefaultTooltipContent.spec.tsx +0 -102
  258. package/test/component/Label.render.spec.tsx +0 -63
  259. package/test/component/Label.spec.tsx +0 -686
  260. package/test/component/Label.typed.spec.tsx +0 -46
  261. package/test/component/LabelList.spec.tsx +0 -188
  262. package/test/component/Legend.itemSorter.spec.tsx +0 -704
  263. package/test/component/Legend.render.spec.tsx +0 -92
  264. package/test/component/Legend.spec.tsx +0 -2213
  265. package/test/component/Legend.typed.spec.tsx +0 -22
  266. package/test/component/ResponsiveContainer.spec.tsx +0 -523
  267. package/test/component/ResponsiveContainerDataTest.spec.tsx +0 -51
  268. package/test/component/Text.spec.tsx +0 -415
  269. package/test/component/Text.typed.spec.tsx +0 -46
  270. package/test/component/Tooltip/ActiveDot.spec.tsx +0 -370
  271. package/test/component/Tooltip/Tooltip.animation.spec.tsx +0 -209
  272. package/test/component/Tooltip/Tooltip.content.spec.tsx +0 -128
  273. package/test/component/Tooltip/Tooltip.formatter.spec.tsx +0 -152
  274. package/test/component/Tooltip/Tooltip.includeHidden.spec.tsx +0 -79
  275. package/test/component/Tooltip/Tooltip.multipleDataArrays.spec.tsx +0 -165
  276. package/test/component/Tooltip/Tooltip.offset.spec.tsx +0 -113
  277. package/test/component/Tooltip/Tooltip.state.spec.tsx +0 -74
  278. package/test/component/Tooltip/Tooltip.sync.spec.tsx +0 -639
  279. package/test/component/Tooltip/defaultIndex.spec.tsx +0 -227
  280. package/test/component/Tooltip/graphicalItem.formatter.spec.tsx +0 -138
  281. package/test/component/Tooltip/itemSorter.spec.tsx +0 -2815
  282. package/test/component/Tooltip/tooltipEventType.spec.tsx +0 -344
  283. package/test/component/Tooltip/tooltipMouseHoverSelectors.ts +0 -41
  284. package/test/component/Tooltip/tooltipTestHelpers.tsx +0 -162
  285. package/test/component/Tooltip.defaultIndex.spec.tsx +0 -48
  286. package/test/component/Tooltip.hover.spec.tsx +0 -61
  287. package/test/component/Tooltip.item.spec.tsx +0 -54
  288. package/test/component/Tooltip.keyboard.spec.tsx +0 -51
  289. package/test/component/Tooltip.payload.spec.tsx +0 -1716
  290. package/test/component/Tooltip.touch.spec.tsx +0 -39
  291. package/test/component/Tooltip.visibility.spec.tsx +0 -1889
  292. package/test/component/TooltipBoundingBox.spec.tsx +0 -89
  293. package/test/component/responsiveContainerUtils.spec.ts +0 -205
  294. package/test/container/ClipPath.spec.tsx +0 -602
  295. package/test/container/chartDimensions.spec.tsx +0 -368
  296. package/test/context/chartLayoutContext.spec.tsx +0 -378
  297. package/test/helper/ExpectAxisDomain.tsx +0 -27
  298. package/test/helper/assertNotNull.ts +0 -6
  299. package/test/helper/assertZIndexLayerOrder.ts +0 -19
  300. package/test/helper/createSelectorTestCase.tsx +0 -176
  301. package/test/helper/expectAnimatedPieAngles.ts +0 -100
  302. package/test/helper/expectAnimatedPiePaths.ts +0 -78
  303. package/test/helper/expectAreaCurve.ts +0 -15
  304. package/test/helper/expectAxisTicks.ts +0 -48
  305. package/test/helper/expectBars.ts +0 -54
  306. package/test/helper/expectFunctionReturning.ts +0 -58
  307. package/test/helper/expectLabel.ts +0 -32
  308. package/test/helper/expectLastCalledWith.ts +0 -48
  309. package/test/helper/expectLine.ts +0 -20
  310. package/test/helper/expectPieSectors.ts +0 -80
  311. package/test/helper/expectScale.ts +0 -37
  312. package/test/helper/expectScatterPoints.ts +0 -52
  313. package/test/helper/expectStackGroups.ts +0 -144
  314. package/test/helper/mockAxes.ts +0 -22
  315. package/test/helper/mockGetBoundingClientRect.ts +0 -66
  316. package/test/helper/mockHTMLElementProperty.ts +0 -19
  317. package/test/helper/mockTouchingElement.ts +0 -27
  318. package/test/helper/offsetHelpers.ts +0 -19
  319. package/test/helper/parameterizedTestCases.tsx +0 -99
  320. package/test/helper/produceState.ts +0 -32
  321. package/test/helper/selectorTestHelpers.tsx +0 -63
  322. package/test/helper/trim.spec.ts +0 -35
  323. package/test/helper/trim.ts +0 -11
  324. package/test/hooks/useActiveTooltipDataPoints.spec.tsx +0 -358
  325. package/test/hooks/useAxisDomain.spec.tsx +0 -361
  326. package/test/hooks/useAxisScale.spec.tsx +0 -283
  327. package/test/hooks/useAxisTicks.spec.tsx +0 -130
  328. package/test/hooks/useOffset.spec.tsx +0 -248
  329. package/test/hooks/useTooltipStateHooks.spec.tsx +0 -109
  330. package/test/polar/Pie/Pie-TwoLevelPieChart.spec.tsx +0 -135
  331. package/test/polar/Pie/Pie.spec.tsx +0 -784
  332. package/test/polar/Pie/Pie.typed.spec.tsx +0 -78
  333. package/test/polar/Pie.animation.spec.tsx +0 -529
  334. package/test/polar/PieWithLegend.animation.spec.tsx +0 -142
  335. package/test/polar/PolarAngleAxis/PolarAngleAxis.events.spec.tsx +0 -76
  336. package/test/polar/PolarAngleAxis/PolarAngleAxis.spec.tsx +0 -2079
  337. package/test/polar/PolarAngleAxis/PolarAngleAxis.typed.spec.tsx +0 -102
  338. package/test/polar/PolarAngleAxis.render.spec.tsx +0 -79
  339. package/test/polar/PolarGrid.render.spec.tsx +0 -75
  340. package/test/polar/PolarGrid.spec.tsx +0 -918
  341. package/test/polar/PolarLegendPerRow.render.spec.tsx +0 -85
  342. package/test/polar/PolarRadiusAxis.events.spec.tsx +0 -65
  343. package/test/polar/PolarRadiusAxis.render.spec.tsx +0 -52
  344. package/test/polar/PolarRadiusAxis.spec.tsx +0 -991
  345. package/test/polar/PolarRadiusAxis.typed.spec.tsx +0 -84
  346. package/test/polar/PolarTooltipLegend.render.spec.tsx +0 -80
  347. package/test/polar/Radar.animation.spec.tsx +0 -570
  348. package/test/polar/Radar.render.spec.tsx +0 -71
  349. package/test/polar/Radar.spec.tsx +0 -265
  350. package/test/polar/Radar.typed.spec.tsx +0 -119
  351. package/test/polar/RadialBar/RadialBar.spec.tsx +0 -1521
  352. package/test/polar/RadialBar/RadialBar.typed.spec.tsx +0 -132
  353. package/test/polar/RadialBar.animation.spec.tsx +0 -375
  354. package/test/polar/RadialBar.render.spec.tsx +0 -66
  355. package/test/polar/RadialBar.stacked.spec.tsx +0 -57
  356. package/test/setup.ts +0 -84
  357. package/test/shape/ActiveShape.spec.tsx +0 -181
  358. package/test/shape/Cross.spec.tsx +0 -60
  359. package/test/shape/Cross.typed.spec.tsx +0 -26
  360. package/test/shape/Curve.spec.tsx +0 -368
  361. package/test/shape/Curve.typed.spec.tsx +0 -69
  362. package/test/shape/Dot.spec.tsx +0 -73
  363. package/test/shape/Dot.typed.spec.tsx +0 -30
  364. package/test/shape/Polygon.spec.tsx +0 -357
  365. package/test/shape/Polygon.typed.spec.tsx +0 -28
  366. package/test/shape/Rectangle.animation.spec.tsx +0 -451
  367. package/test/shape/Rectangle.spec.tsx +0 -68
  368. package/test/shape/Rectangle.typed.spec.tsx +0 -24
  369. package/test/shape/Sector.spec.tsx +0 -76
  370. package/test/shape/Sector.typed.spec.tsx +0 -24
  371. package/test/shape/Symbols.spec.tsx +0 -43
  372. package/test/shape/Symbols.typed.spec.tsx +0 -24
  373. package/test/shape/Trapezoid.spec.tsx +0 -50
  374. package/test/shape/Trapezoid.typed.spec.tsx +0 -24
  375. package/test/shape/__snapshots__/Cross.spec.tsx.snap +0 -62
  376. package/test/shape/__snapshots__/Curve.spec.tsx.snap +0 -460
  377. package/test/shape/__snapshots__/Polygon.spec.tsx.snap +0 -58
  378. package/test/shape/__snapshots__/Rectangle.spec.tsx.snap +0 -117
  379. package/test/shape/__snapshots__/Sector.spec.tsx.snap +0 -71
  380. package/test/shape/__snapshots__/Trapezoid.spec.tsx.snap +0 -64
  381. package/test/state/chartDataSlice.spec.ts +0 -53
  382. package/test/state/createCollectionActions.spec.ts +0 -87
  383. package/test/state/createSelector.spec.ts +0 -158
  384. package/test/state/externalEventsMiddleware.spec.ts +0 -178
  385. package/test/state/graphicalItemsSlice.spec.ts +0 -92
  386. package/test/state/hooks.spec.tsx +0 -68
  387. package/test/state/legendSlice.spec.ts +0 -44
  388. package/test/state/mouseEventsMiddleware.spec.ts +0 -75
  389. package/test/state/optionsSlice.spec.ts +0 -19
  390. package/test/state/referenceElementsSlice.spec.ts +0 -84
  391. package/test/state/registerInStore.spec.tsx +0 -101
  392. package/test/state/selectors/areaSelectors.spec.tsx +0 -77
  393. package/test/state/selectors/axisSelectors.spec.tsx +0 -1418
  394. package/test/state/selectors/barStackSelectors.spec.tsx +0 -752
  395. package/test/state/selectors/brushSelectors.spec.tsx +0 -30
  396. package/test/state/selectors/cartesianAxisSlice.spec.ts +0 -96
  397. package/test/state/selectors/combineNiceTicks.spec.ts +0 -207
  398. package/test/state/selectors/combiners/combineActiveTooltipIndex.spec.ts +0 -61
  399. package/test/state/selectors/combiners/combineAllBarPositions.spec.ts +0 -39
  400. package/test/state/selectors/combiners/combineConfiguredScale.spec.ts +0 -56
  401. package/test/state/selectors/combiners/combineDisplayedStackedData.spec.ts +0 -123
  402. package/test/state/selectors/combiners/combineRealScaleType.spec.ts +0 -80
  403. package/test/state/selectors/containerSelectors.spec.tsx +0 -168
  404. package/test/state/selectors/dataSelectors.spec.tsx +0 -136
  405. package/test/state/selectors/legendSelectors.spec.tsx +0 -113
  406. package/test/state/selectors/lineSelectors.spec.tsx +0 -60
  407. package/test/state/selectors/pieSelectors.spec.tsx +0 -72
  408. package/test/state/selectors/radarSelectors.spec.tsx +0 -496
  409. package/test/state/selectors/rootPropsSelectors.spec.tsx +0 -169
  410. package/test/state/selectors/scatterSelectors.spec.tsx +0 -47
  411. package/test/state/selectors/selectActiveTooltipIndex.spec.tsx +0 -234
  412. package/test/state/selectors/selectAllAxes.spec.tsx +0 -18
  413. package/test/state/selectors/selectAxisDomain.spec.tsx +0 -21
  414. package/test/state/selectors/selectAxisDomainIncludingNiceTicks.spec.tsx +0 -19
  415. package/test/state/selectors/selectAxisRangeWithReverse.spec.tsx +0 -22
  416. package/test/state/selectors/selectAxisScale.spec.tsx +0 -91
  417. package/test/state/selectors/selectBarRectangles.stackOffset.spec.tsx +0 -503
  418. package/test/state/selectors/selectBaseAxis.spec.tsx +0 -56
  419. package/test/state/selectors/selectCartesianItemsSettings.spec.tsx +0 -57
  420. package/test/state/selectors/selectChartOffset.spec.tsx +0 -26
  421. package/test/state/selectors/selectDisplayedData.spec.tsx +0 -282
  422. package/test/state/selectors/selectIsTooltipActive.spec.tsx +0 -231
  423. package/test/state/selectors/selectNumericalDomain.spec.tsx +0 -21
  424. package/test/state/selectors/selectRealScaleType.spec.tsx +0 -19
  425. package/test/state/selectors/selectStackGroups.spec.tsx +0 -322
  426. package/test/state/selectors/selectXAxisPosition.spec.tsx +0 -22
  427. package/test/state/selectors/selectYAxisPosition.spec.tsx +0 -22
  428. package/test/state/selectors/selectorMemoization.spec.tsx +0 -136
  429. package/test/state/selectors/selectors.spec.tsx +0 -1613
  430. package/test/state/throttling.spec.ts +0 -200
  431. package/test/state/zIndexSlice.spec.ts +0 -85
  432. package/test/synchronisation/useChartSynchronisation.spec.tsx +0 -225
  433. package/test/util/BarUtils.spec.ts +0 -39
  434. package/test/util/CartesianUtils/CartesianUtils.spec.ts +0 -261
  435. package/test/util/CartesianUtils/rectWithPoints.spec.ts +0 -48
  436. package/test/util/ChartUtils/ChartUtils.spec.ts +0 -491
  437. package/test/util/ChartUtils/appendOffsetOfLegend.spec.ts +0 -136
  438. package/test/util/ChartUtils/appendOffsetOfLegend.spec.tsx +0 -133
  439. package/test/util/ChartUtils/getCateCoordinateOfLine.spec.ts +0 -97
  440. package/test/util/ChartUtils/getStackedData.spec.ts +0 -416
  441. package/test/util/ChartUtils/truncateByDomain.spec.ts +0 -70
  442. package/test/util/DataUtils.spec.ts +0 -385
  443. package/test/util/DomUtils.spec.tsx +0 -117
  444. package/test/util/FunnelUtils.spec.tsx +0 -70
  445. package/test/util/Global.spec.ts +0 -11
  446. package/test/util/LRUCache.spec.ts +0 -81
  447. package/test/util/LogUtils.spec.ts +0 -45
  448. package/test/util/PolarUtils.spec.ts +0 -66
  449. package/test/util/ReduceCssCalcPrototype.spec.ts +0 -141
  450. package/test/util/ShallowEqual.spec.ts +0 -102
  451. package/test/util/TickUtils.spec.ts +0 -29
  452. package/test/util/createChartHelpers.spec.tsx +0 -210
  453. package/test/util/cursor/getCursorPoints.spec.ts +0 -136
  454. package/test/util/cursor/getCursorRectangle.spec.ts +0 -50
  455. package/test/util/cursor/getRadialCursorPoints.spec.ts +0 -36
  456. package/test/util/errorValue.spec.ts +0 -69
  457. package/test/util/getEveryNth.spec.ts +0 -39
  458. package/test/util/getRadiusAndStrokeWidthFromDot.spec.ts +0 -51
  459. package/test/util/getRelativeCoordinate.spec.ts +0 -250
  460. package/test/util/getSliced.spec.ts +0 -45
  461. package/test/util/isDomainSpecifiedByUser.spec.ts +0 -207
  462. package/test/util/isWellBehavedNumber.spec.ts +0 -54
  463. package/test/util/payload/getUniqPayload.spec.ts +0 -56
  464. package/test/util/propsAreEqual.spec.ts +0 -75
  465. package/test/util/round.spec.ts +0 -112
  466. package/test/util/scale/arithmetic.spec.ts +0 -61
  467. package/test/util/scale/createCategoricalInverse.spec.ts +0 -84
  468. package/test/util/scale/getNiceTickValues.spec.ts +0 -421
  469. package/test/util/scale/getTickValuesFixedDomain.spec.ts +0 -155
  470. package/test/util/svgPropertiesAndEvents.spec.tsx +0 -206
  471. package/test/util/svgPropertiesNoEvents.spec.tsx +0 -228
  472. package/test/util/tooltip/translate.spec.ts +0 -396
  473. package/test/util/useAnimationId.spec.tsx +0 -59
  474. package/test/util/useElementOffset.spec.tsx +0 -173
  475. package/test/util/usePrefersReducedMotion.spec.ts +0 -54
  476. package/test/util/useUniqueId.spec.ts +0 -99
  477. package/test/utils/diagnostics-allowlist.ts +0 -18
  478. package/test/utils/diagnostics.ts +0 -58
  479. package/test/zIndex/AllZIndexPortals.spec.tsx +0 -83
  480. package/test/zIndex/DefaultZIndexes.spec.ts +0 -80
  481. package/test/zIndex/DynamicZIndex.spec.tsx +0 -102
  482. package/test/zIndex/ZIndexLayer.portalOwner.spec.tsx +0 -125
  483. package/test/zIndex/componentZIndex.spec.tsx +0 -255
  484. package/test/zIndex/getZIndexFromUnknown.spec.ts +0 -51
  485. package/test/zIndex/multiChartZIndexIsolation.spec.tsx +0 -90
  486. package/test/zIndex/zIndexSelectors.spec.ts +0 -172
  487. package/test-results/.last-run.json +0 -4
  488. package/tsconfig.json +0 -11
@@ -1,872 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- import { Bar, BarChart, Line, LineChart, Scatter, useXAxisDomain, XAxis } from "../../../src";
3
- import { render } from "@solidjs/testing-library";
4
- import { expectXAxisTicks } from "../../helper/expectAxisTicks";
5
- import { ExpectAxisDomain } from "../../helper/ExpectAxisDomain";
6
- import { expectLastCalledWith } from "../../helper/expectLastCalledWith";
7
- import { createSelectorTestCase } from "../../helper/createSelectorTestCase";
8
- import { selectTooltipAxisDomain } from "../../../src/state/selectors/tooltipSelectors";
9
-
10
- const data = [
11
- { x: 90, y: 90, z: 90 },
12
- { x: 100, y: 200, z: 200 },
13
- { x: 120, y: 100, z: 260 },
14
- { x: 170, y: 300, z: 400 },
15
- { x: 140, y: 250, z: 280 },
16
- { x: 150, y: 400, z: 500 },
17
- { x: 110, y: 280, z: 200 },
18
- ];
19
-
20
- const dataWithSmallNumbers = [{ x: 0.1 }, { x: 0.3 }, { x: 0.5 }, { x: 0.7 }, { x: 0.9 }];
21
-
22
- const dataWithDecimalNumbers = [{ x: 4.1 }, { x: 6.3 }, { x: 12.5 }, { x: 3.7 }, { x: 7.9 }];
23
-
24
- describe("categorical domain", () => {
25
- it("should list items as literals and do not sort", () => {
26
- const spy = vi.fn();
27
- const { container } = render(() => (
28
- <BarChart width={300} height={300} data={data}>
29
- <XAxis dataKey="x" type="category" />
30
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
31
- </BarChart>
32
- ));
33
- expectXAxisTicks(container, [
34
- {
35
- textContent: "90",
36
- x: "25.714285714285715",
37
- y: "273",
38
- },
39
- {
40
- textContent: "100",
41
- x: "67.14285714285714",
42
- y: "273",
43
- },
44
- {
45
- textContent: "120",
46
- x: "108.57142857142858",
47
- y: "273",
48
- },
49
- {
50
- textContent: "170",
51
- x: "150",
52
- y: "273",
53
- },
54
- {
55
- textContent: "140",
56
- x: "191.42857142857144",
57
- y: "273",
58
- },
59
- {
60
- textContent: "150",
61
- x: "232.8571428571429",
62
- y: "273",
63
- },
64
- {
65
- textContent: "110",
66
- x: "274.2857142857143",
67
- y: "273",
68
- },
69
- ]);
70
- expectLastCalledWith(spy, [90, 100, 120, 170, 140, 150, 110]);
71
- });
72
-
73
- it("should reverse ticks", () => {
74
- const spy = vi.fn();
75
- const { container } = render(() => (
76
- <BarChart width={300} height={300} data={data}>
77
- <XAxis dataKey="x" type="category" reversed />
78
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
79
- </BarChart>
80
- ));
81
- expectXAxisTicks(container, [
82
- {
83
- textContent: "90",
84
- x: "274.2857142857143",
85
- y: "273",
86
- },
87
- {
88
- textContent: "100",
89
- x: "232.8571428571429",
90
- y: "273",
91
- },
92
- {
93
- textContent: "120",
94
- x: "191.42857142857144",
95
- y: "273",
96
- },
97
- {
98
- textContent: "170",
99
- x: "150",
100
- y: "273",
101
- },
102
- {
103
- textContent: "140",
104
- x: "108.57142857142858",
105
- y: "273",
106
- },
107
- {
108
- textContent: "150",
109
- x: "67.14285714285714",
110
- y: "273",
111
- },
112
- {
113
- textContent: "110",
114
- x: "25.714285714285715",
115
- y: "273",
116
- },
117
- ]);
118
- expectLastCalledWith(spy, [90, 100, 120, 170, 140, 150, 110]);
119
- });
120
-
121
- it.each([undefined, true])(
122
- "should replace domain of duplicates with array indexes when allowDuplicatedCategory=%s",
123
- (allowDuplicatedCategory) => {
124
- const spy = vi.fn();
125
- const { container } = render(() => (
126
- <BarChart width={300} height={300} data={data}>
127
- <XAxis dataKey="z" type="category" allowDuplicatedCategory={allowDuplicatedCategory} />
128
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
129
- </BarChart>
130
- ));
131
- expectXAxisTicks(container, [
132
- {
133
- textContent: "90",
134
- x: "25.714285714285715",
135
- y: "273",
136
- },
137
- {
138
- textContent: "200",
139
- x: "67.14285714285714",
140
- y: "273",
141
- },
142
- {
143
- textContent: "260",
144
- x: "108.57142857142858",
145
- y: "273",
146
- },
147
- {
148
- textContent: "400",
149
- x: "150",
150
- y: "273",
151
- },
152
- {
153
- textContent: "280",
154
- x: "191.42857142857144",
155
- y: "273",
156
- },
157
- {
158
- textContent: "500",
159
- x: "232.8571428571429",
160
- y: "273",
161
- },
162
- {
163
- textContent: "200",
164
- x: "274.2857142857143",
165
- y: "273",
166
- },
167
- ]);
168
- expectLastCalledWith(spy, [0, 1, 2, 3, 4, 5, 6]);
169
- },
170
- );
171
-
172
- it("should remove duplicates from the end when allowDuplicatedCategory=false", () => {
173
- const spy = vi.fn();
174
- const { container } = render(() => (
175
- <BarChart width={300} height={300} data={data}>
176
- <XAxis dataKey="z" type="category" allowDuplicatedCategory={false} />
177
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
178
- </BarChart>
179
- ));
180
- expectXAxisTicks(container, [
181
- {
182
- textContent: "90",
183
- x: "29.166666666666668",
184
- y: "273",
185
- },
186
- {
187
- textContent: "200",
188
- x: "77.5",
189
- y: "273",
190
- },
191
- {
192
- textContent: "260",
193
- x: "125.83333333333334",
194
- y: "273",
195
- },
196
- {
197
- textContent: "400",
198
- x: "174.16666666666666",
199
- y: "273",
200
- },
201
- {
202
- textContent: "280",
203
- x: "222.5",
204
- y: "273",
205
- },
206
- {
207
- textContent: "500",
208
- x: "270.83333333333337",
209
- y: "273",
210
- },
211
- ]);
212
- expectLastCalledWith(spy, [90, 200, 260, 400, 280, 500]);
213
- });
214
-
215
- it.each([undefined, 0, -1, 3, 7, 100, Infinity, NaN])(
216
- "should ignore tickCount = %s",
217
- (tickCount) => {
218
- const spy = vi.fn();
219
- const { container } = render(() => (
220
- <BarChart width={300} height={300} data={data}>
221
- <XAxis dataKey="z" type="category" tickCount={tickCount} />
222
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
223
- </BarChart>
224
- ));
225
- expectXAxisTicks(container, [
226
- {
227
- textContent: "90",
228
- x: "25.714285714285715",
229
- y: "273",
230
- },
231
- {
232
- textContent: "200",
233
- x: "67.14285714285714",
234
- y: "273",
235
- },
236
- {
237
- textContent: "260",
238
- x: "108.57142857142858",
239
- y: "273",
240
- },
241
- {
242
- textContent: "400",
243
- x: "150",
244
- y: "273",
245
- },
246
- {
247
- textContent: "280",
248
- x: "191.42857142857144",
249
- y: "273",
250
- },
251
- {
252
- textContent: "500",
253
- x: "232.8571428571429",
254
- y: "273",
255
- },
256
- {
257
- textContent: "200",
258
- x: "274.2857142857143",
259
- y: "273",
260
- },
261
- ]);
262
- expectLastCalledWith(spy, [0, 1, 2, 3, 4, 5, 6]);
263
- },
264
- );
265
-
266
- const variousDomains: ReadonlyArray<{
267
- domain: ReadonlyArray<string> | ReadonlyArray<number> | undefined;
268
- }> = [
269
- { domain: undefined },
270
- { domain: [0, 100] },
271
- { domain: ["Winter", "Summer"] },
272
- { domain: ["200", "400", "500", "200"] },
273
- { domain: ["200", "260", "400", "280", "500", "200", "100", "600"] },
274
- ];
275
-
276
- it.each(variousDomains)("should ignore user provided domain $domain", ({ domain }) => {
277
- const spy = vi.fn();
278
- const { container } = render(() => (
279
- <BarChart width={300} height={300} data={data}>
280
- <XAxis dataKey="z" type="category" domain={domain} />
281
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
282
- </BarChart>
283
- ));
284
- expectXAxisTicks(container, [
285
- {
286
- textContent: "90",
287
- x: "25.714285714285715",
288
- y: "273",
289
- },
290
- {
291
- textContent: "200",
292
- x: "67.14285714285714",
293
- y: "273",
294
- },
295
- {
296
- textContent: "260",
297
- x: "108.57142857142858",
298
- y: "273",
299
- },
300
- {
301
- textContent: "400",
302
- x: "150",
303
- y: "273",
304
- },
305
- {
306
- textContent: "280",
307
- x: "191.42857142857144",
308
- y: "273",
309
- },
310
- {
311
- textContent: "500",
312
- x: "232.8571428571429",
313
- y: "273",
314
- },
315
- {
316
- textContent: "200",
317
- x: "274.2857142857143",
318
- y: "273",
319
- },
320
- ]);
321
- expectLastCalledWith(spy, [0, 1, 2, 3, 4, 5, 6]);
322
- });
323
-
324
- describe.each([true, false, undefined])("allowDecimals=%s", (allowDecimals) => {
325
- const spy = vi.fn();
326
- it("should have no effect whatsoever on small numbers", () => {
327
- const { container } = render(() => (
328
- <BarChart width={300} height={300} data={dataWithSmallNumbers}>
329
- <XAxis dataKey="x" type="category" allowDecimals={allowDecimals} />
330
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
331
- </BarChart>
332
- ));
333
- expectXAxisTicks(container, [
334
- {
335
- textContent: "0.1",
336
- x: "34",
337
- y: "273",
338
- },
339
- {
340
- textContent: "0.3",
341
- x: "92",
342
- y: "273",
343
- },
344
- {
345
- textContent: "0.5",
346
- x: "150",
347
- y: "273",
348
- },
349
- {
350
- textContent: "0.7",
351
- x: "208",
352
- y: "273",
353
- },
354
- {
355
- textContent: "0.9",
356
- x: "266",
357
- y: "273",
358
- },
359
- ]);
360
- expectLastCalledWith(spy, [0.1, 0.3, 0.5, 0.7, 0.9]);
361
- });
362
-
363
- it("should have no effect whatsoever on decimal numbers", () => {
364
- const reduxDomainSpy = vi.fn();
365
- const { container } = render(() => (
366
- <BarChart width={300} height={300} data={dataWithDecimalNumbers}>
367
- <XAxis dataKey="x" type="category" allowDecimals={allowDecimals} />
368
- <ExpectAxisDomain assert={reduxDomainSpy} axisType="xAxis" />
369
- </BarChart>
370
- ));
371
- expectXAxisTicks(container, [
372
- {
373
- textContent: "4.1",
374
- x: "34",
375
- y: "273",
376
- },
377
- {
378
- textContent: "6.3",
379
- x: "92",
380
- y: "273",
381
- },
382
- {
383
- textContent: "12.5",
384
- x: "150",
385
- y: "273",
386
- },
387
- {
388
- textContent: "3.7",
389
- x: "208",
390
- y: "273",
391
- },
392
- {
393
- textContent: "7.9",
394
- x: "266",
395
- y: "273",
396
- },
397
- ]);
398
- expect(reduxDomainSpy).toHaveBeenLastCalledWith([4.1, 6.3, 12.5, 3.7, 7.9]);
399
- });
400
- });
401
-
402
- describe("when data is defined on multiple graphical elements", () => {
403
- const data1 = data.slice(0, 3);
404
- const data2 = data.slice(3);
405
-
406
- it("should merge and display domain of all data", () => {
407
- const spy = vi.fn();
408
- const { container } = render(() => (
409
- <LineChart width={300} height={300}>
410
- <Line data={data1} />
411
- <Line data={data2} />
412
- <XAxis dataKey="z" type="category" />
413
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
414
- </LineChart>
415
- ));
416
- expectXAxisTicks(container, [
417
- {
418
- textContent: "90",
419
- x: "5",
420
- y: "273",
421
- },
422
- {
423
- textContent: "200",
424
- x: "53.333333333333336",
425
- y: "273",
426
- },
427
- {
428
- textContent: "260",
429
- x: "101.66666666666667",
430
- y: "273",
431
- },
432
- {
433
- textContent: "400",
434
- x: "150",
435
- y: "273",
436
- },
437
- {
438
- textContent: "280",
439
- x: "198.33333333333334",
440
- y: "273",
441
- },
442
- {
443
- textContent: "500",
444
- x: "246.66666666666669",
445
- y: "273",
446
- },
447
- {
448
- textContent: "200",
449
- x: "295",
450
- y: "273",
451
- },
452
- ]);
453
- expectLastCalledWith(spy, [0, 1, 2, 3, 4, 5, 6]);
454
- });
455
-
456
- it("should merge and display domain of all data, and remove duplicates, even when the duplicates are defined on different elements", () => {
457
- const spy = vi.fn();
458
- const { container } = render(() => (
459
- <LineChart width={300} height={300}>
460
- <Line data={data1} />
461
- <Line data={data2} />
462
- <XAxis dataKey="z" type="category" allowDuplicatedCategory={false} />
463
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
464
- </LineChart>
465
- ));
466
- expectXAxisTicks(container, [
467
- {
468
- textContent: "90",
469
- x: "5",
470
- y: "273",
471
- },
472
- {
473
- textContent: "200",
474
- x: "63",
475
- y: "273",
476
- },
477
- {
478
- textContent: "260",
479
- x: "121",
480
- y: "273",
481
- },
482
- {
483
- textContent: "400",
484
- x: "179",
485
- y: "273",
486
- },
487
- {
488
- textContent: "280",
489
- x: "237",
490
- y: "273",
491
- },
492
- {
493
- textContent: "500",
494
- x: "295",
495
- y: "273",
496
- },
497
- ]);
498
- expectLastCalledWith(spy, [90, 200, 260, 400, 280, 500]);
499
- });
500
-
501
- it.each([true, false, undefined])(
502
- "should only display domain of data with matching xAxisId when allowDuplicatedCategory=%s",
503
- (allowDuplicatedCategory) => {
504
- const defaultReduxDomainSpy = vi.fn();
505
- const reduxDomainSpyA = vi.fn();
506
- const reduxDomainSpyB = vi.fn();
507
- const { container } = render(() => (
508
- <LineChart width={300} height={300}>
509
- <Line data={data1} xAxisId="xa" />
510
- <Line data={data2} xAxisId="xb" />
511
- <XAxis
512
- dataKey="z"
513
- type="category"
514
- xAxisId="xa"
515
- allowDuplicatedCategory={allowDuplicatedCategory}
516
- />
517
- <XAxis
518
- dataKey="z"
519
- type="category"
520
- xAxisId="xb"
521
- allowDuplicatedCategory={allowDuplicatedCategory}
522
- />
523
- <ExpectAxisDomain assert={defaultReduxDomainSpy} axisType="xAxis" />
524
- <ExpectAxisDomain assert={reduxDomainSpyA} axisType="xAxis" axisId="xa" />
525
- <ExpectAxisDomain assert={reduxDomainSpyB} axisType="xAxis" axisId="xb" />
526
- </LineChart>
527
- ));
528
- const allXAxes = container.querySelectorAll(".recharts-xAxis");
529
- expect(allXAxes).toHaveLength(2);
530
- expectXAxisTicks(allXAxes[0]!, [
531
- {
532
- textContent: "90",
533
- x: "5",
534
- y: "243",
535
- },
536
- {
537
- textContent: "200",
538
- x: "150",
539
- y: "243",
540
- },
541
- {
542
- textContent: "260",
543
- x: "295",
544
- y: "243",
545
- },
546
- ]);
547
- expectXAxisTicks(allXAxes[1]!, [
548
- {
549
- textContent: "400",
550
- x: "5",
551
- y: "273",
552
- },
553
- {
554
- textContent: "280",
555
- x: "101.66666666666667",
556
- y: "273",
557
- },
558
- {
559
- textContent: "500",
560
- x: "198.33333333333334",
561
- y: "273",
562
- },
563
- {
564
- textContent: "200",
565
- x: "295",
566
- y: "273",
567
- },
568
- ]);
569
- expect(defaultReduxDomainSpy).toHaveBeenLastCalledWith(undefined);
570
- expect(reduxDomainSpyA).toHaveBeenLastCalledWith([90, 200, 260]);
571
- expect(reduxDomainSpyB).toHaveBeenLastCalledWith([400, 280, 500, 200]);
572
- },
573
- );
574
- });
575
-
576
- describe("when some data is defined on chart element and other on graphical element", () => {
577
- type BoxPlotDatum = {
578
- category: string;
579
- min: number;
580
- q1: number;
581
- median: number;
582
- q3: number;
583
- max: number;
584
- };
585
-
586
- const boxPlotData: ReadonlyArray<BoxPlotDatum> = [
587
- { category: "A", min: 16, q1: 20, median: 24, q3: 29, max: 35 },
588
- { category: "B", min: 12, q1: 15, median: 18, q3: 21, max: 27 },
589
- { category: "C", min: 22, q1: 26, median: 30, q3: 34, max: 49 },
590
- { category: "D", min: 9, q1: 13, median: 17, q3: 20, max: 26 },
591
- { category: "E", min: 18, q1: 22, median: 25, q3: 28, max: 32 },
592
- ];
593
-
594
- type OutlierDatum = {
595
- category: string;
596
- value: number;
597
- };
598
-
599
- const outliers: ReadonlyArray<OutlierDatum> = [
600
- { category: "A", value: 10 },
601
- { category: "A", value: 11 },
602
- { category: "A", value: 12 },
603
- { category: "A", value: 5 },
604
- { category: "B", value: 0 },
605
- { category: "A", value: 40 },
606
- { category: "D", value: 8 },
607
- { category: "E", value: 33 },
608
- ];
609
-
610
- const renderTestCase = createSelectorTestCase((props) => (
611
- <BarChart width={300} height={300} data={boxPlotData}>
612
- <Bar dataKey="q1" />
613
- <Scatter data={outliers} dataKey="value" />
614
- <XAxis dataKey="category" type="category" allowDuplicatedCategory={false} />
615
- {props.children}
616
- </BarChart>
617
- ));
618
-
619
- it("should combine data from both chart and graphical elements", () => {
620
- const { spy } = renderTestCase(useXAxisDomain);
621
- expectLastCalledWith(spy, ["A", "B", "C", "D", "E"]);
622
- });
623
-
624
- it("should match that same data in tooltip domain", () => {
625
- const { spy } = renderTestCase(selectTooltipAxisDomain);
626
- expectLastCalledWith(spy, ["A", "B", "C", "D", "E"]);
627
- });
628
- });
629
-
630
- describe("interval", () => {
631
- it("should display all ticks when interval = 0", () => {
632
- const axisDomainSpy = vi.fn();
633
- const { container } = render(() => (
634
- <BarChart width={300} height={300} data={data}>
635
- <XAxis dataKey="z" type="category" interval={0} />
636
- <ExpectAxisDomain assert={axisDomainSpy} axisType="xAxis" />
637
- </BarChart>
638
- ));
639
- expectXAxisTicks(container, [
640
- {
641
- textContent: "90",
642
- x: "25.714285714285715",
643
- y: "273",
644
- },
645
- {
646
- textContent: "200",
647
- x: "67.14285714285714",
648
- y: "273",
649
- },
650
- {
651
- textContent: "260",
652
- x: "108.57142857142858",
653
- y: "273",
654
- },
655
- {
656
- textContent: "400",
657
- x: "150",
658
- y: "273",
659
- },
660
- {
661
- textContent: "280",
662
- x: "191.42857142857144",
663
- y: "273",
664
- },
665
- {
666
- textContent: "500",
667
- x: "232.8571428571429",
668
- y: "273",
669
- },
670
- {
671
- textContent: "200",
672
- x: "274.2857142857143",
673
- y: "273",
674
- },
675
- ]);
676
- expect(axisDomainSpy).toHaveBeenLastCalledWith([0, 1, 2, 3, 4, 5, 6]);
677
- });
678
-
679
- it("should display every second tick when interval = 1", () => {
680
- const axisDomainSpy = vi.fn();
681
- const { container } = render(() => (
682
- <BarChart width={300} height={300} data={data}>
683
- <XAxis dataKey="z" type="category" interval={1} />
684
- <ExpectAxisDomain assert={axisDomainSpy} axisType="xAxis" />
685
- </BarChart>
686
- ));
687
- expectXAxisTicks(container, [
688
- {
689
- textContent: "90",
690
- x: "25.714285714285715",
691
- y: "273",
692
- },
693
- {
694
- textContent: "260",
695
- x: "108.57142857142858",
696
- y: "273",
697
- },
698
- {
699
- textContent: "280",
700
- x: "191.42857142857144",
701
- y: "273",
702
- },
703
- {
704
- textContent: "200",
705
- x: "274.2857142857143",
706
- y: "273",
707
- },
708
- ]);
709
- expect(axisDomainSpy).toHaveBeenLastCalledWith([0, 1, 2, 3, 4, 5, 6]);
710
- });
711
-
712
- it("should display every third tick when interval = 2", () => {
713
- const axisDomainSpy = vi.fn();
714
- const { container } = render(() => (
715
- <BarChart width={300} height={300} data={data}>
716
- <XAxis dataKey="z" type="category" interval={2} />
717
- <ExpectAxisDomain assert={axisDomainSpy} axisType="xAxis" />
718
- </BarChart>
719
- ));
720
- expectXAxisTicks(container, [
721
- {
722
- textContent: "90",
723
- x: "25.714285714285715",
724
- y: "273",
725
- },
726
- {
727
- textContent: "400",
728
- x: "150",
729
- y: "273",
730
- },
731
- {
732
- textContent: "200",
733
- x: "274.2857142857143",
734
- y: "273",
735
- },
736
- ]);
737
- expect(axisDomainSpy).toHaveBeenLastCalledWith([0, 1, 2, 3, 4, 5, 6]);
738
- });
739
-
740
- it("should attempt to show the ticks start with interval = preserveStart", () => {
741
- const axisDomainSpy = vi.fn();
742
- const { container } = render(() => (
743
- <BarChart width={30} height={300} data={data}>
744
- <XAxis dataKey="x" type="category" interval="preserveStart" tickCount={20} />
745
- <ExpectAxisDomain assert={axisDomainSpy} axisType="xAxis" />
746
- </BarChart>
747
- ));
748
- expectXAxisTicks(container, [
749
- {
750
- textContent: "90",
751
- x: "6.428571428571429",
752
- y: "273",
753
- },
754
- {
755
- textContent: "120",
756
- x: "12.142857142857144",
757
- y: "273",
758
- },
759
- {
760
- textContent: "140",
761
- x: "17.857142857142858",
762
- y: "273",
763
- },
764
- {
765
- textContent: "110",
766
- x: "23.57142857142857",
767
- y: "273",
768
- },
769
- ]);
770
- expect(axisDomainSpy).toHaveBeenLastCalledWith([90, 100, 120, 170, 140, 150, 110]);
771
- });
772
-
773
- it("should attempt to show the ticks end with interval = preserveEnd", () => {
774
- const spy = vi.fn();
775
- const { container } = render(() => (
776
- <BarChart width={30} height={300} data={data}>
777
- <XAxis dataKey="x" type="category" interval="preserveEnd" tickCount={20} />
778
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
779
- </BarChart>
780
- ));
781
- expectXAxisTicks(container, [
782
- {
783
- textContent: "90",
784
- x: "6.428571428571429",
785
- y: "273",
786
- },
787
- {
788
- textContent: "120",
789
- x: "12.142857142857144",
790
- y: "273",
791
- },
792
- {
793
- textContent: "140",
794
- x: "17.857142857142858",
795
- y: "273",
796
- },
797
- {
798
- textContent: "110",
799
- x: "23.57142857142857",
800
- y: "273",
801
- },
802
- ]);
803
- expectLastCalledWith(spy, [90, 100, 120, 170, 140, 150, 110]);
804
- });
805
-
806
- it("should attempt to show the ticks start and end with interval = preserveStartEnd", () => {
807
- const spy = vi.fn();
808
- const { container } = render(() => (
809
- <BarChart width={30} height={300} data={data}>
810
- <XAxis dataKey="x" type="category" interval="preserveStartEnd" tickCount={20} />
811
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
812
- </BarChart>
813
- ));
814
- expectXAxisTicks(container, [
815
- {
816
- textContent: "90",
817
- x: "6.428571428571429",
818
- y: "273",
819
- },
820
- {
821
- textContent: "120",
822
- x: "12.142857142857144",
823
- y: "273",
824
- },
825
- {
826
- textContent: "140",
827
- x: "17.857142857142858",
828
- y: "273",
829
- },
830
- {
831
- textContent: "110",
832
- x: "23.57142857142857",
833
- y: "273",
834
- },
835
- ]);
836
- expectLastCalledWith(spy, [90, 100, 120, 170, 140, 150, 110]);
837
- });
838
-
839
- it("should do ... same thing as preserveStart? with interval = equidistantPreserveStart", () => {
840
- const spy = vi.fn();
841
- const { container } = render(() => (
842
- <BarChart width={30} height={300} data={data}>
843
- <XAxis dataKey="x" type="category" interval="equidistantPreserveStart" tickCount={20} />
844
- <ExpectAxisDomain assert={spy} axisType="xAxis" />
845
- </BarChart>
846
- ));
847
- expectXAxisTicks(container, [
848
- {
849
- textContent: "90",
850
- x: "6.428571428571429",
851
- y: "273",
852
- },
853
- {
854
- textContent: "120",
855
- x: "12.142857142857144",
856
- y: "273",
857
- },
858
- {
859
- textContent: "140",
860
- x: "17.857142857142858",
861
- y: "273",
862
- },
863
- {
864
- textContent: "110",
865
- x: "23.57142857142857",
866
- y: "273",
867
- },
868
- ]);
869
- expectLastCalledWith(spy, [90, 100, 120, 170, 140, 150, 110]);
870
- });
871
- });
872
- });