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,88 +0,0 @@
1
- import {
2
- getEquidistantTicks,
3
- getEquidistantPreserveEndTicks,
4
- } from "../../src/cartesian/getEquidistantTicks";
5
- import { CartesianTickItem, TickItem } from "../../src/util/types";
6
-
7
- describe("getEquidistantTicks", () => {
8
- const getTickSize = (tick: CartesianTickItem) => {
9
- return tick.value as number;
10
- };
11
-
12
- it("should return empty array if no ticks are passed", () => {
13
- const result = getEquidistantTicks(1, { start: 0, end: 100 }, getTickSize, [], 0);
14
- expect(result).toEqual([]);
15
- });
16
-
17
- test.each([
18
- {
19
- ticksThatFit: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
20
- resultingTicks: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
21
- },
22
- { ticksThatFit: [0, 1, 2, 3, 4, 5, 6, 7, 8], resultingTicks: [0, 2, 4, 6, 8] },
23
- { ticksThatFit: [0, 1, 2, 3, 4, 5, 6, 7], resultingTicks: [0, 5] },
24
- { ticksThatFit: [0, 1, 2, 3, 4, 5, 6], resultingTicks: [0, 5] },
25
- { ticksThatFit: [0, 1, 2, 3, 4, 5], resultingTicks: [0, 5] },
26
- { ticksThatFit: [0, 1, 2, 3, 4], resultingTicks: [0] },
27
- { ticksThatFit: [0, 1, 2, 3], resultingTicks: [0] },
28
- { ticksThatFit: [0, 1, 2], resultingTicks: [0] },
29
- { ticksThatFit: [0, 1], resultingTicks: [0] },
30
- { ticksThatFit: [0], resultingTicks: [0] },
31
- { ticksThatFit: [1, 2, 3, 4, 5, 6, 7, 8, 9], resultingTicks: [0] },
32
- ])(
33
- "Show only every n-th tick that fits, but always show the first.",
34
- ({ ticksThatFit, resultingTicks }) => {
35
- const ticks: Array<TickItem> = [];
36
- for (let index = 0; index < 10; index++) {
37
- ticks.push({
38
- value: ticksThatFit.includes(index) ? 10 : 1000,
39
- coordinate: index * 50,
40
- index,
41
- offset: 0,
42
- });
43
- }
44
- const result = getEquidistantTicks(1, { start: 0, end: 10 * 50 }, getTickSize, ticks, 0);
45
- expect(result).toEqual(resultingTicks.map((index) => ticks[index]));
46
- },
47
- );
48
- });
49
-
50
- describe("getEquidistantPreserveEndTicks", () => {
51
- const getTickSize = (tick: CartesianTickItem) => {
52
- return tick.value as number;
53
- };
54
-
55
- it("should return empty array if no ticks are passed", () => {
56
- const result = getEquidistantPreserveEndTicks(1, { start: 0, end: 100 }, getTickSize, [], 0);
57
- expect(result).toEqual([]);
58
- });
59
-
60
- it("should skip ticks to satisfy minTickGap while preserving the end tick", () => {
61
- // Create 5 ticks at coordinates: 0, 10, 20, 30, 40.
62
- const ticks: ReadonlyArray<CartesianTickItem> = [
63
- { value: "A", coordinate: 0, offset: 0 },
64
- { value: "B", coordinate: 10, offset: 0 },
65
- { value: "C", coordinate: 20, offset: 0 },
66
- { value: "D", coordinate: 30, offset: 0 },
67
- { value: "E", coordinate: 40, offset: 0 },
68
- ].map((t, i) => ({ ...t, index: i }));
69
-
70
- // The ticks are 10px wide.
71
- const getTickSizeStatic = () => 10;
72
-
73
- // The ticks are 10px apart. We set minTickGap to 8px.
74
- // This forces the algorithm to skip every other tick (Step Size 2) to avoid overlap.
75
- // Since we anchor at the end (Index 4), we expect indices 4, 2, 0.
76
-
77
- const result = getEquidistantPreserveEndTicks(
78
- 1,
79
- { start: 0, end: 100 },
80
- getTickSizeStatic,
81
- ticks,
82
- 8, // minTickGap
83
- );
84
-
85
- // We expect indices 0, 2, 4 (Values A, C, E)
86
- expect(result.map((t) => t.value)).toEqual(["A", "C", "E"]);
87
- });
88
- });
@@ -1,378 +0,0 @@
1
- import { vi } from "vitest";
2
- import { getTicks, GetTicksInput } from "../../src/cartesian/getTicks";
3
- import { CartesianTickItem, TickItem } from "../../src/util/types";
4
-
5
- const EXAMPLE_INPUT: GetTicksInput = {
6
- tickFormatter: undefined,
7
- unit: "",
8
- angle: undefined,
9
- interval: "preserveStart" as const,
10
- minTickGap: 5,
11
- orientation: "bottom" as const,
12
- tick: true,
13
- ticks: [
14
- { value: "10", coordinate: 50, index: 0, offset: 0 },
15
- { value: "1000", coordinate: 100, index: 1, offset: 0 },
16
- { value: "20", coordinate: 150, index: 2, offset: 0 },
17
- { value: "40", coordinate: 200, index: 3, offset: 0 },
18
- { value: "90", coordinate: 250, index: 4, offset: 0 },
19
- { value: "A", coordinate: 300, index: 5, offset: 0 },
20
- ],
21
- viewBox: { x: 0, y: 0, width: 500, height: 500 },
22
- };
23
-
24
- vi.mock("../../src/util/DOMUtils", () => ({
25
- // We mock string size measurement, because getStringSize else returns 0 in these tests.
26
- getStringSize: vi.fn((text: string) => ({ width: text.length, height: 12 })),
27
- }));
28
-
29
- // These tests have been generated by merely documenting existing behaviour.
30
- // They will be used to verify that any refactoring does not break the existing behaviour.
31
- describe("getTicks", () => {
32
- describe("ticks are always shown if there is space", () => {
33
- test("preserveEnd", () => {
34
- const input: GetTicksInput = { ...EXAMPLE_INPUT, interval: "preserveEnd" as const };
35
-
36
- const result = getTicks(input);
37
-
38
- expect(result).toEqual([
39
- { value: "10", coordinate: 50, tickCoord: 50, isShow: true, index: 0, offset: 0 },
40
- { value: "1000", coordinate: 100, tickCoord: 100, isShow: true, index: 1, offset: 0 },
41
- { value: "20", coordinate: 150, tickCoord: 150, isShow: true, index: 2, offset: 0 },
42
- { value: "40", coordinate: 200, tickCoord: 200, isShow: true, index: 3, offset: 0 },
43
- { value: "90", coordinate: 250, tickCoord: 250, isShow: true, index: 4, offset: 0 },
44
- { value: "A", coordinate: 300, tickCoord: 300, isShow: true, index: 5, offset: 0 },
45
- ]);
46
- });
47
-
48
- test("preserveStart", () => {
49
- const input = { ...EXAMPLE_INPUT, interval: "preserveStart" as const };
50
-
51
- const result = getTicks(input);
52
-
53
- expect(result).toEqual([
54
- { value: "10", coordinate: 50, tickCoord: 50, isShow: true, index: 0, offset: 0 },
55
- { value: "1000", coordinate: 100, tickCoord: 100, isShow: true, index: 1, offset: 0 },
56
- { value: "20", coordinate: 150, tickCoord: 150, isShow: true, index: 2, offset: 0 },
57
- { value: "40", coordinate: 200, tickCoord: 200, isShow: true, index: 3, offset: 0 },
58
- { value: "90", coordinate: 250, tickCoord: 250, isShow: true, index: 4, offset: 0 },
59
- { value: "A", coordinate: 300, tickCoord: 300, isShow: true, index: 5, offset: 0 },
60
- ]);
61
- });
62
- });
63
-
64
- describe("ticks are shown if there is space when displayed at an angle", () => {
65
- test("preserveEnd", () => {
66
- const ticks: ReadonlyArray<TickItem> = [
67
- { value: "100_000_000_000_000", coordinate: 50, index: 0, offset: 0 },
68
- { value: "200_000_000_000_000", coordinate: 70, index: 1, offset: 0 },
69
- { value: "300_000_000_000_000", coordinate: 90, index: 2, offset: 0 },
70
- { value: "400_000_000_000_000", coordinate: 110, index: 3, offset: 0 },
71
- { value: "500_000_000_000_000", coordinate: 130, index: 4, offset: 0 },
72
- { value: "600_000_000_000_000", coordinate: 150, index: 5, offset: 0 },
73
- ];
74
- const input = { ...EXAMPLE_INPUT, ticks, interval: "preserveEnd" as const };
75
-
76
- // Only 3 ticks are shown
77
- expect(getTicks(input)).toEqual([
78
- {
79
- value: "200_000_000_000_000",
80
- coordinate: 70,
81
- tickCoord: 70,
82
- isShow: true,
83
- index: 1,
84
- offset: 0,
85
- },
86
- {
87
- value: "400_000_000_000_000",
88
- coordinate: 110,
89
- tickCoord: 110,
90
- isShow: true,
91
- index: 3,
92
- offset: 0,
93
- },
94
- {
95
- value: "600_000_000_000_000",
96
- coordinate: 150,
97
- tickCoord: 150,
98
- isShow: true,
99
- index: 5,
100
- offset: 0,
101
- },
102
- ]);
103
-
104
- const angledInput = { ...input, angle: 60 };
105
-
106
- // But at an angle we can fit all ticks
107
- expect(getTicks(angledInput)).toEqual([
108
- {
109
- value: "100_000_000_000_000",
110
- coordinate: 50,
111
- tickCoord: 50,
112
- isShow: true,
113
- index: 0,
114
- offset: 0,
115
- },
116
- {
117
- value: "200_000_000_000_000",
118
- coordinate: 70,
119
- tickCoord: 70,
120
- isShow: true,
121
- index: 1,
122
- offset: 0,
123
- },
124
- {
125
- value: "300_000_000_000_000",
126
- coordinate: 90,
127
- tickCoord: 90,
128
- isShow: true,
129
- index: 2,
130
- offset: 0,
131
- },
132
- {
133
- value: "400_000_000_000_000",
134
- coordinate: 110,
135
- tickCoord: 110,
136
- isShow: true,
137
- index: 3,
138
- offset: 0,
139
- },
140
- {
141
- value: "500_000_000_000_000",
142
- coordinate: 130,
143
- tickCoord: 130,
144
- isShow: true,
145
- index: 4,
146
- offset: 0,
147
- },
148
- {
149
- value: "600_000_000_000_000",
150
- coordinate: 150,
151
- tickCoord: 150,
152
- isShow: true,
153
- index: 5,
154
- offset: 0,
155
- },
156
- ]);
157
- });
158
-
159
- test("preserveStart", () => {
160
- const ticks: ReadonlyArray<TickItem> = [
161
- { value: "100_000_000_000_000", coordinate: 50, index: 0, offset: 0 },
162
- { value: "200_000_000_000_000", coordinate: 70, index: 1, offset: 0 },
163
- { value: "300_000_000_000_000", coordinate: 90, index: 2, offset: 0 },
164
- { value: "400_000_000_000_000", coordinate: 110, index: 3, offset: 0 },
165
- { value: "500_000_000_000_000", coordinate: 130, index: 4, offset: 0 },
166
- { value: "600_000_000_000_000", coordinate: 150, index: 5, offset: 0 },
167
- ];
168
- const input = { ...EXAMPLE_INPUT, ticks, interval: "preserveStart" as const };
169
-
170
- // Only 3 ticks are shown
171
- expect(getTicks(input)).toEqual([
172
- {
173
- value: "100_000_000_000_000",
174
- coordinate: 50,
175
- tickCoord: 50,
176
- isShow: true,
177
- index: 0,
178
- offset: 0,
179
- },
180
- {
181
- value: "300_000_000_000_000",
182
- coordinate: 90,
183
- tickCoord: 90,
184
- isShow: true,
185
- index: 2,
186
- offset: 0,
187
- },
188
- {
189
- value: "500_000_000_000_000",
190
- coordinate: 130,
191
- tickCoord: 130,
192
- isShow: true,
193
- index: 4,
194
- offset: 0,
195
- },
196
- ]);
197
-
198
- const angledInput = { ...input, angle: 60 };
199
-
200
- // But at an angle we can fit all ticks
201
- expect(getTicks(angledInput)).toEqual([
202
- {
203
- value: "100_000_000_000_000",
204
- coordinate: 50,
205
- tickCoord: 50,
206
- isShow: true,
207
- index: 0,
208
- offset: 0,
209
- },
210
- {
211
- value: "200_000_000_000_000",
212
- coordinate: 70,
213
- tickCoord: 70,
214
- isShow: true,
215
- index: 1,
216
- offset: 0,
217
- },
218
- {
219
- value: "300_000_000_000_000",
220
- coordinate: 90,
221
- tickCoord: 90,
222
- isShow: true,
223
- index: 2,
224
- offset: 0,
225
- },
226
- {
227
- value: "400_000_000_000_000",
228
- coordinate: 110,
229
- tickCoord: 110,
230
- isShow: true,
231
- index: 3,
232
- offset: 0,
233
- },
234
- {
235
- value: "500_000_000_000_000",
236
- coordinate: 130,
237
- tickCoord: 130,
238
- isShow: true,
239
- index: 4,
240
- offset: 0,
241
- },
242
- {
243
- value: "600_000_000_000_000",
244
- coordinate: 150,
245
- tickCoord: 150,
246
- isShow: true,
247
- index: 5,
248
- offset: 0,
249
- },
250
- ]);
251
- });
252
- });
253
-
254
- describe("The interval is respected", () => {
255
- const viewBoxWithSmallWidth = { x: 0, y: 0, width: 30, height: 500 };
256
-
257
- test.each([
258
- [
259
- (EXAMPLE_INPUT.ticks?.length ?? 0) + 1,
260
- [{ coordinate: 50, value: "10", index: 0, offset: 0 }],
261
- ],
262
- [
263
- 2,
264
- [
265
- { coordinate: 50, value: "10", index: 0, offset: 0 },
266
- { coordinate: 200, value: "40", index: 3, offset: 0 },
267
- ],
268
- ],
269
- [
270
- 1,
271
- [
272
- { coordinate: 50, value: "10", index: 0, offset: 0 },
273
- { coordinate: 150, value: "20", index: 2, offset: 0 },
274
- { coordinate: 250, value: "90", index: 4, offset: 0 },
275
- ],
276
- ],
277
- [
278
- 0,
279
- [
280
- { coordinate: 50, value: "10", index: 0, offset: 0 },
281
- { coordinate: 100, value: "1000", index: 1, offset: 0 },
282
- { coordinate: 150, value: "20", index: 2, offset: 0 },
283
- { coordinate: 200, value: "40", index: 3, offset: 0 },
284
- { coordinate: 250, value: "90", index: 4, offset: 0 },
285
- { coordinate: 300, value: "A", index: 5, offset: 0 },
286
- ],
287
- ],
288
- [
289
- "preserveStartEnd" as const,
290
- [
291
- {
292
- coordinate: 300,
293
- isShow: true,
294
- tickCoord: 29.5,
295
- value: "A",
296
- index: 5,
297
- offset: 0,
298
- },
299
- ],
300
- ],
301
- ["preserveStart" as const, []],
302
- [
303
- "preserveEnd" as const,
304
- [
305
- {
306
- coordinate: 300,
307
- isShow: true,
308
- tickCoord: 29.5,
309
- value: "A",
310
- index: 5,
311
- offset: 0,
312
- },
313
- ],
314
- ],
315
- ["equidistantPreserveStart" as const, [{ coordinate: 50, value: "10", index: 0, offset: 0 }]],
316
- [-1, []],
317
- [
318
- undefined,
319
- [{ coordinate: 300, isShow: true, tickCoord: 29.5, value: "A", index: 5, offset: 0 }],
320
- ],
321
- ])(`interval %s works`, (interval, expectedResult) => {
322
- const input = {
323
- ...EXAMPLE_INPUT,
324
- interval,
325
- viewBox: viewBoxWithSmallWidth,
326
- };
327
-
328
- const result = getTicks(input);
329
-
330
- expect(result).toEqual(expectedResult);
331
- });
332
- });
333
-
334
- describe("Equidistant ticks are shown depending on label width and space between ticks", () => {
335
- test.each([
336
- // With enough space, all ticks are shown.
337
- [["11111111111111", "2", "3", "4"], 20, ["11111111111111", "2", "3", "4"]],
338
- [["1", "22222222222222", "3", "4"], 20, ["1", "22222222222222", "3", "4"]],
339
- [["1", "2", "33333333333333", "4"], 20, ["1", "2", "33333333333333", "4"]],
340
- [["1", "2", "3", "44444444444444"], 20, ["1", "2", "3", "44444444444444"]],
341
-
342
- // If not enough space is available we show only every nTH.
343
- [["11111111111111", "2", "3", "4"], 5, ["11111111111111", "4"]], // every 3rd
344
- [["1", "22222222222222", "3", "4"], 5, ["1", "3"]], // every 2nd
345
- [["1", "2", "33333333333333", "4"], 5, ["1", "4"]], // every 3rd
346
- [["1", "2", "3", "44444444444444"], 5, ["1", "3"]], // every 2nd
347
-
348
- // If not enough space is available at all, we only show the first tick.
349
- [["11111111111111", "2", "3", "4"], 1, ["11111111111111"]],
350
- [["1", "22222222222222", "3", "4"], 1, ["1"]],
351
- [["1", "2", "33333333333333", "4"], 1, ["1"]],
352
- [["1", "2", "3", "44444444444444"], 1, ["1"]],
353
- ])(
354
- `equidistantPreserveStart spaces nicely for %s and tick step of %s`,
355
- (tickValues, tickWidthStep, expectedResult) => {
356
- const ticks: ReadonlyArray<TickItem> = tickValues.map(
357
- (value, index): TickItem => ({
358
- value,
359
- coordinate: tickWidthStep * (index + 1),
360
- index,
361
- offset: 0,
362
- }),
363
- );
364
- const input = {
365
- ...EXAMPLE_INPUT,
366
- interval: "equidistantPreserveStart" as const,
367
- ticks,
368
- };
369
-
370
- const resultingTickValues = (getTicks(input) as CartesianTickItem[]).map(
371
- (tick) => tick.value,
372
- );
373
-
374
- expect(resultingTickValues).toEqual(expectedResult);
375
- },
376
- );
377
- });
378
- });
@@ -1,89 +0,0 @@
1
- // Solid-recharts spec for smaller audit gaps: PolarGrid background fill,
2
- // CartesianGrid object-form horizontal/vertical, and chart-level role/tabIndex
3
- // passthrough onto the root <svg>.
4
- import { describe, expect, it } from "vitest";
5
- import { flush } from "solid-js";
6
- import {
7
- CartesianGrid,
8
- Line,
9
- LineChart,
10
- PolarGrid,
11
- Radar,
12
- RadarChart,
13
- XAxis,
14
- YAxis,
15
- } from "../../src";
16
- import { render } from "@solidjs/testing-library";
17
-
18
- const data = [
19
- { name: "a", uv: 100 },
20
- { name: "b", uv: 200 },
21
- { name: "c", uv: 300 },
22
- ];
23
- const radarData = [
24
- { subject: "Math", v: 120 },
25
- { subject: "Eng", v: 98 },
26
- { subject: "Hist", v: 86 },
27
- ];
28
-
29
- describe("PolarGrid background fill", () => {
30
- it("renders a filled outer ring when fill is set", () => {
31
- const { container } = render(() => (
32
- <RadarChart width={300} height={300} data={radarData}>
33
- <PolarGrid gridType="circle" fill="#abcdef" fillOpacity={0.3} />
34
- <Radar dataKey="v" />
35
- </RadarChart>
36
- ));
37
- flush();
38
- const filled = Array.from(
39
- container.querySelectorAll(".recharts-polar-grid-concentric circle"),
40
- ).filter((c) => c.getAttribute("fill") === "#abcdef");
41
- expect(filled.length).toBe(1);
42
- expect(filled[0]?.getAttribute("fill-opacity")).toBe("0.3");
43
- });
44
-
45
- it("renders no filled ring by default", () => {
46
- const { container } = render(() => (
47
- <RadarChart width={300} height={300} data={radarData}>
48
- <PolarGrid gridType="circle" />
49
- <Radar dataKey="v" />
50
- </RadarChart>
51
- ));
52
- flush();
53
- const filled = Array.from(
54
- container.querySelectorAll(".recharts-polar-grid-concentric circle"),
55
- ).filter((c) => c.getAttribute("fill") !== "none");
56
- expect(filled.length).toBe(0);
57
- });
58
- });
59
-
60
- describe("CartesianGrid object-form horizontal/vertical", () => {
61
- it("spreads object-form svg props onto the grid lines", () => {
62
- const { container } = render(() => (
63
- <LineChart width={300} height={300} data={data}>
64
- <XAxis dataKey="name" />
65
- <YAxis />
66
- <CartesianGrid horizontal={{ strokeWidth: 4 }} vertical={false} />
67
- <Line dataKey="uv" />
68
- </LineChart>
69
- ));
70
- flush();
71
- const hLines = container.querySelectorAll(".recharts-cartesian-grid-horizontal line");
72
- expect(hLines.length).toBeGreaterThan(0);
73
- hLines.forEach((l) => expect(l.getAttribute("stroke-width")).toBe("4"));
74
- });
75
- });
76
-
77
- describe("chart role / tabIndex passthrough", () => {
78
- it("applies role and tabIndex to the root svg", () => {
79
- const { container } = render(() => (
80
- <LineChart width={300} height={300} data={data} role="img" tabIndex={5}>
81
- <Line dataKey="uv" />
82
- </LineChart>
83
- ));
84
- flush();
85
- const svg = container.querySelector("svg.recharts-surface");
86
- expect(svg?.getAttribute("role")).toBe("img");
87
- expect(svg?.getAttribute("tabindex")).toBe("5");
88
- });
89
- });