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.
- package/package.json +13 -11
- package/src/animation/AnimatedItems.tsx +2 -4
- package/src/animation/CSSTransitionAnimate.tsx +41 -39
- package/src/animation/JavascriptAnimate.tsx +45 -41
- package/src/cartesian/Area.tsx +4 -4
- package/src/cartesian/AreaRevealShape.tsx +1 -1
- package/src/cartesian/Bar.tsx +33 -21
- package/src/cartesian/BarStack.tsx +5 -5
- package/src/cartesian/Brush.tsx +19 -15
- package/src/cartesian/CartesianAxis.tsx +4 -4
- package/src/cartesian/CartesianGrid.tsx +5 -5
- package/src/cartesian/ErrorBar.tsx +9 -7
- package/src/cartesian/Funnel.tsx +3 -3
- package/src/cartesian/GraphicalItemClipPath.tsx +1 -1
- package/src/cartesian/Line.tsx +18 -16
- package/src/cartesian/LineDrawShape.tsx +14 -13
- package/src/cartesian/ReferenceArea.tsx +4 -4
- package/src/cartesian/ReferenceDot.tsx +4 -4
- package/src/cartesian/ReferenceLine.tsx +4 -4
- package/src/cartesian/RenderedTicksReporter.tsx +19 -17
- package/src/cartesian/Scatter.tsx +3 -3
- package/src/cartesian/XAxis.tsx +1 -1
- package/src/cartesian/YAxis.tsx +35 -33
- package/src/cartesian/ZAxis.tsx +3 -2
- package/src/chart/AreaChart.tsx +1 -1
- package/src/chart/BarChart.tsx +1 -1
- package/src/chart/CartesianChart.tsx +4 -3
- package/src/chart/CategoricalChart.tsx +5 -5
- package/src/chart/ComposedChart.tsx +1 -1
- package/src/chart/FunnelChart.tsx +1 -1
- package/src/chart/LineChart.tsx +1 -1
- package/src/chart/PieChart.tsx +4 -3
- package/src/chart/PolarChart.tsx +4 -3
- package/src/chart/RadarChart.tsx +4 -3
- package/src/chart/RadialBarChart.tsx +7 -3
- package/src/chart/RechartsWrapper.tsx +14 -24
- package/src/chart/Sankey.tsx +9 -6
- package/src/chart/ScatterChart.tsx +1 -1
- package/src/chart/SunburstChart.tsx +5 -4
- package/src/chart/Treemap.tsx +5 -4
- package/src/component/ActivePoints.tsx +6 -6
- package/src/component/Cell.tsx +23 -5
- package/src/component/Cursor.tsx +3 -3
- package/src/component/DefaultLegendContent.tsx +8 -6
- package/src/component/DefaultTooltipContent.tsx +14 -10
- package/src/component/Dots.tsx +5 -5
- package/src/component/Label.tsx +13 -10
- package/src/component/LabelList.tsx +12 -7
- package/src/component/Legend.tsx +26 -21
- package/src/component/ResponsiveContainer.tsx +52 -49
- package/src/component/Text.tsx +5 -5
- package/src/component/Tooltip.tsx +21 -18
- package/src/component/TooltipBoundingBox.tsx +18 -16
- package/src/component/responsiveContainerUtils.ts +1 -1
- package/src/container/ClipPathProvider.tsx +3 -3
- package/src/container/Layer.tsx +5 -5
- package/src/container/RootSurface.tsx +1 -1
- package/src/container/Surface.tsx +5 -6
- package/src/context/ErrorBarContext.tsx +2 -2
- package/src/context/PanoramaContext.tsx +2 -2
- package/src/context/RegisterGraphicalItemId.tsx +4 -2
- package/src/context/chartDataContext.tsx +26 -23
- package/src/context/chartLayoutContext.tsx +16 -12
- package/src/polar/Pie.tsx +13 -12
- package/src/polar/PolarAngleAxis.tsx +3 -3
- package/src/polar/PolarGrid.tsx +5 -5
- package/src/polar/PolarRadiusAxis.tsx +3 -3
- package/src/polar/Radar.tsx +3 -3
- package/src/polar/RadialBar.tsx +3 -3
- package/src/shape/Cross.tsx +5 -5
- package/src/shape/Curve.tsx +6 -7
- package/src/shape/Dot.tsx +4 -4
- package/src/shape/Polygon.tsx +5 -5
- package/src/shape/Rectangle.tsx +22 -20
- package/src/shape/Sector.tsx +5 -5
- package/src/shape/Symbols.tsx +5 -5
- package/src/shape/Trapezoid.tsx +29 -27
- package/src/state/RechartsStoreProvider.tsx +5 -3
- package/src/state/ReportChartProps.tsx +8 -6
- package/src/state/ReportEventSettings.tsx +8 -6
- package/src/state/ReportMainChartProps.tsx +11 -9
- package/src/state/ReportPolarOptions.tsx +15 -13
- package/src/state/SetLegendPayload.ts +1 -1
- package/src/state/SetTooltipEntrySettings.tsx +1 -1
- package/src/state/brushSlice.ts +10 -8
- package/src/state/cartesianAxisSlice.ts +46 -38
- package/src/state/chartDataSlice.ts +29 -23
- package/src/state/errorBarSlice.ts +22 -16
- package/src/state/eventSettingsSlice.ts +11 -9
- package/src/state/graphicalItemsSlice.ts +17 -13
- package/src/state/layoutSlice.ts +27 -19
- package/src/state/legendSlice.ts +24 -18
- package/src/state/optionsSlice.ts +8 -6
- package/src/state/polarAxisSlice.ts +21 -13
- package/src/state/polarOptionsSlice.ts +16 -14
- package/src/state/referenceElementsSlice.ts +25 -19
- package/src/state/registerInStore.ts +15 -13
- package/src/state/renderedTicksSlice.ts +11 -7
- package/src/state/rootPropsSlice.ts +16 -14
- package/src/state/tooltipSlice.ts +115 -95
- package/src/state/unregisterOnCleanup.ts +5 -20
- package/src/state/zIndexSlice.ts +50 -42
- package/src/synchronisation/useChartSynchronisation.tsx +213 -217
- package/src/util/ActiveShapeUtils.tsx +2 -2
- package/src/util/BarUtils.tsx +5 -3
- package/src/util/DirectPortal.tsx +107 -0
- package/src/util/FunnelUtils.tsx +1 -1
- package/src/util/RadialBarUtils.tsx +4 -3
- package/src/util/createCartesianCharts.tsx +1 -1
- package/src/util/createPolarCharts.tsx +1 -1
- package/src/util/svgPropertiesAndEvents.ts +1 -1
- package/src/util/tooltip/translate.ts +2 -2
- package/src/util/types.ts +2 -2
- package/src/zIndex/ZIndexLayer.tsx +39 -68
- package/src/zIndex/ZIndexPortal.tsx +29 -25
- package/test/_data.ts +0 -408
- package/test/animation/AnimationController.typed.spec.ts +0 -53
- package/test/animation/AnimationControllerImpl.spec.ts +0 -271
- package/test/animation/CSSTransitionAnimate.timing.spec.tsx +0 -473
- package/test/animation/JavascriptAnimate.spec.tsx +0 -62
- package/test/animation/RechartsAnimation.spec.ts +0 -636
- package/test/animation/easing.spec.ts +0 -218
- package/test/animation/legacyAnimationLengthChange.spec.tsx +0 -803
- package/test/animation/matchBy.spec.ts +0 -467
- package/test/animation/mockAnimationController.ts +0 -40
- package/test/animation/mockControllerAnimationManager.ts +0 -143
- package/test/animation/mockTimeoutController.ts +0 -114
- package/test/animation/timeoutController.spec.ts +0 -138
- package/test/animation/useAnimationStartSnapshot.spec.ts +0 -147
- package/test/animation/util.spec.ts +0 -28
- package/test/cartesian/Area.animation.spec.tsx +0 -363
- package/test/cartesian/Area.range.spec.tsx +0 -54
- package/test/cartesian/Area.spec.tsx +0 -1202
- package/test/cartesian/Area.stacked.render.spec.tsx +0 -69
- package/test/cartesian/Area.typed.spec.tsx +0 -209
- package/test/cartesian/Axis.integration.spec.tsx +0 -158
- package/test/cartesian/Bar/Bar.csstransition.spec.tsx +0 -299
- package/test/cartesian/Bar/Bar.spec.tsx +0 -2314
- package/test/cartesian/Bar/Bar.typed.spec.tsx +0 -192
- package/test/cartesian/Bar.animation.spec.tsx +0 -426
- package/test/cartesian/Bar.stackDomain.spec.tsx +0 -66
- package/test/cartesian/Bar.stacked.render.spec.tsx +0 -53
- package/test/cartesian/Bar.truncateByDomain.spec.tsx +0 -237
- package/test/cartesian/Bar.zeroDimensionFiltering.spec.tsx +0 -336
- package/test/cartesian/BarStack.spec.tsx +0 -91
- package/test/cartesian/Brush.keyboard.spec.tsx +0 -88
- package/test/cartesian/Brush.panorama.spec.tsx +0 -41
- package/test/cartesian/Brush.props.spec.tsx +0 -63
- package/test/cartesian/Brush.render.spec.tsx +0 -117
- package/test/cartesian/Brush.spec.tsx +0 -522
- package/test/cartesian/Brush.stacked.spec.tsx +0 -221
- package/test/cartesian/CartesianAxis.render.spec.tsx +0 -50
- package/test/cartesian/CartesianAxis.spec.tsx +0 -396
- package/test/cartesian/CartesianGrid.render.spec.tsx +0 -39
- package/test/cartesian/CartesianGrid.spec.tsx +0 -2103
- package/test/cartesian/ErrorBar.render.spec.tsx +0 -69
- package/test/cartesian/ErrorBar.spec.tsx +0 -2414
- package/test/cartesian/Funnel.animation.spec.tsx +0 -241
- package/test/cartesian/Funnel.spec.tsx +0 -226
- package/test/cartesian/Funnel.typed.spec.tsx +0 -221
- package/test/cartesian/GraphicalItemClipPath.scale-behavior.spec.tsx +0 -627
- package/test/cartesian/GraphicalItemClipPath.spec.tsx +0 -427
- package/test/cartesian/Line.animation.spec.tsx +0 -643
- package/test/cartesian/Line.sparseAnimationPath.spec.tsx +0 -98
- package/test/cartesian/Line.spec.tsx +0 -471
- package/test/cartesian/Line.typed.spec.tsx +0 -152
- package/test/cartesian/ReferenceArea.render.spec.tsx +0 -63
- package/test/cartesian/ReferenceArea.spec.tsx +0 -663
- package/test/cartesian/ReferenceArea.typed.spec.tsx +0 -74
- package/test/cartesian/ReferenceDot.render.spec.tsx +0 -55
- package/test/cartesian/ReferenceDot.spec.tsx +0 -462
- package/test/cartesian/ReferenceDot.typed.spec.tsx +0 -76
- package/test/cartesian/ReferenceLine/ReferenceLine.panorama.spec.tsx +0 -184
- package/test/cartesian/ReferenceLine/ReferenceLine.spec.tsx +0 -744
- package/test/cartesian/ReferenceLine/ReferenceLine.typed.spec.tsx +0 -74
- package/test/cartesian/ReferenceLine/getEndPoints.spec.ts +0 -399
- package/test/cartesian/ReferenceLine.render.spec.tsx +0 -134
- package/test/cartesian/Scatter.animation.spec.tsx +0 -381
- package/test/cartesian/Scatter.render.spec.tsx +0 -61
- package/test/cartesian/Scatter.spec.tsx +0 -406
- package/test/cartesian/Scatter.typed.spec.tsx +0 -153
- package/test/cartesian/XAxis/XAxis.barSize.spec.tsx +0 -336
- package/test/cartesian/XAxis/XAxis.brush.spec.tsx +0 -266
- package/test/cartesian/XAxis/XAxis.categorydomain.spec.tsx +0 -872
- package/test/cartesian/XAxis/XAxis.dataKey.spec.tsx +0 -86
- package/test/cartesian/XAxis/XAxis.datatypes.spec.tsx +0 -127
- package/test/cartesian/XAxis/XAxis.hide.spec.tsx +0 -106
- package/test/cartesian/XAxis/XAxis.multiaxis.spec.tsx +0 -336
- package/test/cartesian/XAxis/XAxis.numberdomain.spec.tsx +0 -1466
- package/test/cartesian/XAxis/XAxis.padding.spec.tsx +0 -758
- package/test/cartesian/XAxis/XAxis.padding_clip.spec.tsx +0 -65
- package/test/cartesian/XAxis/XAxis.state.spec.tsx +0 -355
- package/test/cartesian/XAxis/XAxis.tick.spec.tsx +0 -493
- package/test/cartesian/XAxis/XAxis.timescale.spec.tsx +0 -233
- package/test/cartesian/XAxis/XAxis.type.spec.tsx +0 -107
- package/test/cartesian/XAxis/XAxis.typed.spec.tsx +0 -102
- package/test/cartesian/XAxis/XAxis.vertical.spec.tsx +0 -265
- package/test/cartesian/XAxis.tickFormatter.spec.tsx +0 -54
- package/test/cartesian/YAxis/YAxis.7362.derivedDomain.spec.tsx +0 -230
- package/test/cartesian/YAxis/YAxis.7362.spec.tsx +0 -104
- package/test/cartesian/YAxis/YAxis.interval-zero.spec.tsx +0 -88
- package/test/cartesian/YAxis/YAxis.label.spec.tsx +0 -219
- package/test/cartesian/YAxis/YAxis.spec.tsx +0 -1595
- package/test/cartesian/YAxis/YAxis.tick.spec.tsx +0 -428
- package/test/cartesian/YAxis/YAxis.tickFormatter.spec.tsx +0 -54
- package/test/cartesian/YAxis/YAxis.ticks.spec.tsx +0 -263
- package/test/cartesian/YAxis/YAxis.type.spec.tsx +0 -107
- package/test/cartesian/YAxis/YAxis.typed.spec.tsx +0 -102
- package/test/cartesian/ZAxis.spec.tsx +0 -300
- package/test/cartesian/ZAxis.typed.spec.tsx +0 -33
- package/test/cartesian/__snapshots__/Brush.spec.tsx.snap +0 -5
- package/test/cartesian/axisLineAndStroke.spec.tsx +0 -72
- package/test/cartesian/getCartesianPosition.spec.ts +0 -907
- package/test/cartesian/getEquidistantTicks.spec.ts +0 -88
- package/test/cartesian/getTicks.spec.ts +0 -378
- package/test/cartesian/miscFeatureGaps.spec.tsx +0 -89
- package/test/cartesian/useAnimatedLineLength.spec.ts +0 -168
- package/test/chart/AccessibilityLayer.spec.tsx +0 -569
- package/test/chart/AccessibilityScans.spec.tsx +0 -286
- package/test/chart/AreaChart.spec.tsx +0 -409
- package/test/chart/AreaChart.stacked.spec.tsx +0 -1407
- package/test/chart/AreaChart.typed.spec.tsx +0 -39
- package/test/chart/BarChart.spec.tsx +0 -3719
- package/test/chart/BarChart.typed.spec.tsx +0 -60
- package/test/chart/CategoricalChart.spec.tsx +0 -255
- package/test/chart/ComposedChart.spec.tsx +0 -199
- package/test/chart/ComposedChart.typed.spec.tsx +0 -39
- package/test/chart/FunnelChart.spec.tsx +0 -215
- package/test/chart/FunnelChart.typed.spec.tsx +0 -39
- package/test/chart/LineChart.multiseries.spec.tsx +0 -50
- package/test/chart/LineChart.smoke.spec.tsx +0 -50
- package/test/chart/LineChart.spec.tsx +0 -930
- package/test/chart/LineChart.typed.spec.tsx +0 -39
- package/test/chart/NicheChartTooltip.spec.tsx +0 -81
- package/test/chart/PieChart.spec.tsx +0 -793
- package/test/chart/PieChart.typed.spec.tsx +0 -39
- package/test/chart/RadarChart.spec.tsx +0 -530
- package/test/chart/RadarChart.typed.spec.tsx +0 -39
- package/test/chart/RadialBarChart.5966.spec.tsx +0 -48
- package/test/chart/RadialBarChart.spec.tsx +0 -679
- package/test/chart/RadialBarChart.typed.spec.tsx +0 -39
- package/test/chart/RechartsWrapper.spec.tsx +0 -83
- package/test/chart/Sankey.content.spec.tsx +0 -46
- package/test/chart/Sankey.spec.tsx +0 -952
- package/test/chart/Sankey.typed.spec.tsx +0 -29
- package/test/chart/ScatterChart.spec.tsx +0 -2613
- package/test/chart/ScatterChart.typed.spec.tsx +0 -39
- package/test/chart/SunburstChart.spec.tsx +0 -146
- package/test/chart/Treemap.animation.spec.tsx +0 -52
- package/test/chart/Treemap.spec.tsx +0 -1003
- package/test/chart/Treemap.typed.spec.tsx +0 -26
- package/test/chart/chartEvents.spec.tsx +0 -127
- package/test/chart/responsive.spec.tsx +0 -620
- package/test/component/Cell.render.spec.tsx +0 -155
- package/test/component/Cell.spec.tsx +0 -12
- package/test/component/Cursor.spec.tsx +0 -186
- package/test/component/DefaultTooltipContent.spec.tsx +0 -102
- package/test/component/Label.render.spec.tsx +0 -63
- package/test/component/Label.spec.tsx +0 -686
- package/test/component/Label.typed.spec.tsx +0 -46
- package/test/component/LabelList.spec.tsx +0 -188
- package/test/component/Legend.itemSorter.spec.tsx +0 -704
- package/test/component/Legend.render.spec.tsx +0 -92
- package/test/component/Legend.spec.tsx +0 -2213
- package/test/component/Legend.typed.spec.tsx +0 -22
- package/test/component/ResponsiveContainer.spec.tsx +0 -523
- package/test/component/ResponsiveContainerDataTest.spec.tsx +0 -51
- package/test/component/Text.spec.tsx +0 -415
- package/test/component/Text.typed.spec.tsx +0 -46
- package/test/component/Tooltip/ActiveDot.spec.tsx +0 -370
- package/test/component/Tooltip/Tooltip.animation.spec.tsx +0 -209
- package/test/component/Tooltip/Tooltip.content.spec.tsx +0 -128
- package/test/component/Tooltip/Tooltip.formatter.spec.tsx +0 -152
- package/test/component/Tooltip/Tooltip.includeHidden.spec.tsx +0 -79
- package/test/component/Tooltip/Tooltip.multipleDataArrays.spec.tsx +0 -165
- package/test/component/Tooltip/Tooltip.offset.spec.tsx +0 -113
- package/test/component/Tooltip/Tooltip.state.spec.tsx +0 -74
- package/test/component/Tooltip/Tooltip.sync.spec.tsx +0 -639
- package/test/component/Tooltip/defaultIndex.spec.tsx +0 -227
- package/test/component/Tooltip/graphicalItem.formatter.spec.tsx +0 -138
- package/test/component/Tooltip/itemSorter.spec.tsx +0 -2815
- package/test/component/Tooltip/tooltipEventType.spec.tsx +0 -344
- package/test/component/Tooltip/tooltipMouseHoverSelectors.ts +0 -41
- package/test/component/Tooltip/tooltipTestHelpers.tsx +0 -162
- package/test/component/Tooltip.defaultIndex.spec.tsx +0 -48
- package/test/component/Tooltip.hover.spec.tsx +0 -61
- package/test/component/Tooltip.item.spec.tsx +0 -54
- package/test/component/Tooltip.keyboard.spec.tsx +0 -51
- package/test/component/Tooltip.payload.spec.tsx +0 -1716
- package/test/component/Tooltip.touch.spec.tsx +0 -39
- package/test/component/Tooltip.visibility.spec.tsx +0 -1889
- package/test/component/TooltipBoundingBox.spec.tsx +0 -89
- package/test/component/responsiveContainerUtils.spec.ts +0 -205
- package/test/container/ClipPath.spec.tsx +0 -602
- package/test/container/chartDimensions.spec.tsx +0 -368
- package/test/context/chartLayoutContext.spec.tsx +0 -378
- package/test/helper/ExpectAxisDomain.tsx +0 -27
- package/test/helper/assertNotNull.ts +0 -6
- package/test/helper/assertZIndexLayerOrder.ts +0 -19
- package/test/helper/createSelectorTestCase.tsx +0 -176
- package/test/helper/expectAnimatedPieAngles.ts +0 -100
- package/test/helper/expectAnimatedPiePaths.ts +0 -78
- package/test/helper/expectAreaCurve.ts +0 -15
- package/test/helper/expectAxisTicks.ts +0 -48
- package/test/helper/expectBars.ts +0 -54
- package/test/helper/expectFunctionReturning.ts +0 -58
- package/test/helper/expectLabel.ts +0 -32
- package/test/helper/expectLastCalledWith.ts +0 -48
- package/test/helper/expectLine.ts +0 -20
- package/test/helper/expectPieSectors.ts +0 -80
- package/test/helper/expectScale.ts +0 -37
- package/test/helper/expectScatterPoints.ts +0 -52
- package/test/helper/expectStackGroups.ts +0 -144
- package/test/helper/mockAxes.ts +0 -22
- package/test/helper/mockGetBoundingClientRect.ts +0 -66
- package/test/helper/mockHTMLElementProperty.ts +0 -19
- package/test/helper/mockTouchingElement.ts +0 -27
- package/test/helper/offsetHelpers.ts +0 -19
- package/test/helper/parameterizedTestCases.tsx +0 -99
- package/test/helper/produceState.ts +0 -32
- package/test/helper/selectorTestHelpers.tsx +0 -63
- package/test/helper/trim.spec.ts +0 -35
- package/test/helper/trim.ts +0 -11
- package/test/hooks/useActiveTooltipDataPoints.spec.tsx +0 -358
- package/test/hooks/useAxisDomain.spec.tsx +0 -361
- package/test/hooks/useAxisScale.spec.tsx +0 -283
- package/test/hooks/useAxisTicks.spec.tsx +0 -130
- package/test/hooks/useOffset.spec.tsx +0 -248
- package/test/hooks/useTooltipStateHooks.spec.tsx +0 -109
- package/test/polar/Pie/Pie-TwoLevelPieChart.spec.tsx +0 -135
- package/test/polar/Pie/Pie.spec.tsx +0 -784
- package/test/polar/Pie/Pie.typed.spec.tsx +0 -78
- package/test/polar/Pie.animation.spec.tsx +0 -529
- package/test/polar/PieWithLegend.animation.spec.tsx +0 -142
- package/test/polar/PolarAngleAxis/PolarAngleAxis.events.spec.tsx +0 -76
- package/test/polar/PolarAngleAxis/PolarAngleAxis.spec.tsx +0 -2079
- package/test/polar/PolarAngleAxis/PolarAngleAxis.typed.spec.tsx +0 -102
- package/test/polar/PolarAngleAxis.render.spec.tsx +0 -79
- package/test/polar/PolarGrid.render.spec.tsx +0 -75
- package/test/polar/PolarGrid.spec.tsx +0 -918
- package/test/polar/PolarLegendPerRow.render.spec.tsx +0 -85
- package/test/polar/PolarRadiusAxis.events.spec.tsx +0 -65
- package/test/polar/PolarRadiusAxis.render.spec.tsx +0 -52
- package/test/polar/PolarRadiusAxis.spec.tsx +0 -991
- package/test/polar/PolarRadiusAxis.typed.spec.tsx +0 -84
- package/test/polar/PolarTooltipLegend.render.spec.tsx +0 -80
- package/test/polar/Radar.animation.spec.tsx +0 -570
- package/test/polar/Radar.render.spec.tsx +0 -71
- package/test/polar/Radar.spec.tsx +0 -265
- package/test/polar/Radar.typed.spec.tsx +0 -119
- package/test/polar/RadialBar/RadialBar.spec.tsx +0 -1521
- package/test/polar/RadialBar/RadialBar.typed.spec.tsx +0 -132
- package/test/polar/RadialBar.animation.spec.tsx +0 -375
- package/test/polar/RadialBar.render.spec.tsx +0 -66
- package/test/polar/RadialBar.stacked.spec.tsx +0 -57
- package/test/setup.ts +0 -84
- package/test/shape/ActiveShape.spec.tsx +0 -181
- package/test/shape/Cross.spec.tsx +0 -60
- package/test/shape/Cross.typed.spec.tsx +0 -26
- package/test/shape/Curve.spec.tsx +0 -368
- package/test/shape/Curve.typed.spec.tsx +0 -69
- package/test/shape/Dot.spec.tsx +0 -73
- package/test/shape/Dot.typed.spec.tsx +0 -30
- package/test/shape/Polygon.spec.tsx +0 -357
- package/test/shape/Polygon.typed.spec.tsx +0 -28
- package/test/shape/Rectangle.animation.spec.tsx +0 -451
- package/test/shape/Rectangle.spec.tsx +0 -68
- package/test/shape/Rectangle.typed.spec.tsx +0 -24
- package/test/shape/Sector.spec.tsx +0 -76
- package/test/shape/Sector.typed.spec.tsx +0 -24
- package/test/shape/Symbols.spec.tsx +0 -43
- package/test/shape/Symbols.typed.spec.tsx +0 -24
- package/test/shape/Trapezoid.spec.tsx +0 -50
- package/test/shape/Trapezoid.typed.spec.tsx +0 -24
- package/test/shape/__snapshots__/Cross.spec.tsx.snap +0 -62
- package/test/shape/__snapshots__/Curve.spec.tsx.snap +0 -460
- package/test/shape/__snapshots__/Polygon.spec.tsx.snap +0 -58
- package/test/shape/__snapshots__/Rectangle.spec.tsx.snap +0 -117
- package/test/shape/__snapshots__/Sector.spec.tsx.snap +0 -71
- package/test/shape/__snapshots__/Trapezoid.spec.tsx.snap +0 -64
- package/test/state/chartDataSlice.spec.ts +0 -53
- package/test/state/createCollectionActions.spec.ts +0 -87
- package/test/state/createSelector.spec.ts +0 -158
- package/test/state/externalEventsMiddleware.spec.ts +0 -178
- package/test/state/graphicalItemsSlice.spec.ts +0 -92
- package/test/state/hooks.spec.tsx +0 -68
- package/test/state/legendSlice.spec.ts +0 -44
- package/test/state/mouseEventsMiddleware.spec.ts +0 -75
- package/test/state/optionsSlice.spec.ts +0 -19
- package/test/state/referenceElementsSlice.spec.ts +0 -84
- package/test/state/registerInStore.spec.tsx +0 -101
- package/test/state/selectors/areaSelectors.spec.tsx +0 -77
- package/test/state/selectors/axisSelectors.spec.tsx +0 -1418
- package/test/state/selectors/barStackSelectors.spec.tsx +0 -752
- package/test/state/selectors/brushSelectors.spec.tsx +0 -30
- package/test/state/selectors/cartesianAxisSlice.spec.ts +0 -96
- package/test/state/selectors/combineNiceTicks.spec.ts +0 -207
- package/test/state/selectors/combiners/combineActiveTooltipIndex.spec.ts +0 -61
- package/test/state/selectors/combiners/combineAllBarPositions.spec.ts +0 -39
- package/test/state/selectors/combiners/combineConfiguredScale.spec.ts +0 -56
- package/test/state/selectors/combiners/combineDisplayedStackedData.spec.ts +0 -123
- package/test/state/selectors/combiners/combineRealScaleType.spec.ts +0 -80
- package/test/state/selectors/containerSelectors.spec.tsx +0 -168
- package/test/state/selectors/dataSelectors.spec.tsx +0 -136
- package/test/state/selectors/legendSelectors.spec.tsx +0 -113
- package/test/state/selectors/lineSelectors.spec.tsx +0 -60
- package/test/state/selectors/pieSelectors.spec.tsx +0 -72
- package/test/state/selectors/radarSelectors.spec.tsx +0 -496
- package/test/state/selectors/rootPropsSelectors.spec.tsx +0 -169
- package/test/state/selectors/scatterSelectors.spec.tsx +0 -47
- package/test/state/selectors/selectActiveTooltipIndex.spec.tsx +0 -234
- package/test/state/selectors/selectAllAxes.spec.tsx +0 -18
- package/test/state/selectors/selectAxisDomain.spec.tsx +0 -21
- package/test/state/selectors/selectAxisDomainIncludingNiceTicks.spec.tsx +0 -19
- package/test/state/selectors/selectAxisRangeWithReverse.spec.tsx +0 -22
- package/test/state/selectors/selectAxisScale.spec.tsx +0 -91
- package/test/state/selectors/selectBarRectangles.stackOffset.spec.tsx +0 -503
- package/test/state/selectors/selectBaseAxis.spec.tsx +0 -56
- package/test/state/selectors/selectCartesianItemsSettings.spec.tsx +0 -57
- package/test/state/selectors/selectChartOffset.spec.tsx +0 -26
- package/test/state/selectors/selectDisplayedData.spec.tsx +0 -282
- package/test/state/selectors/selectIsTooltipActive.spec.tsx +0 -231
- package/test/state/selectors/selectNumericalDomain.spec.tsx +0 -21
- package/test/state/selectors/selectRealScaleType.spec.tsx +0 -19
- package/test/state/selectors/selectStackGroups.spec.tsx +0 -322
- package/test/state/selectors/selectXAxisPosition.spec.tsx +0 -22
- package/test/state/selectors/selectYAxisPosition.spec.tsx +0 -22
- package/test/state/selectors/selectorMemoization.spec.tsx +0 -136
- package/test/state/selectors/selectors.spec.tsx +0 -1613
- package/test/state/throttling.spec.ts +0 -200
- package/test/state/zIndexSlice.spec.ts +0 -85
- package/test/synchronisation/useChartSynchronisation.spec.tsx +0 -225
- package/test/util/BarUtils.spec.ts +0 -39
- package/test/util/CartesianUtils/CartesianUtils.spec.ts +0 -261
- package/test/util/CartesianUtils/rectWithPoints.spec.ts +0 -48
- package/test/util/ChartUtils/ChartUtils.spec.ts +0 -491
- package/test/util/ChartUtils/appendOffsetOfLegend.spec.ts +0 -136
- package/test/util/ChartUtils/appendOffsetOfLegend.spec.tsx +0 -133
- package/test/util/ChartUtils/getCateCoordinateOfLine.spec.ts +0 -97
- package/test/util/ChartUtils/getStackedData.spec.ts +0 -416
- package/test/util/ChartUtils/truncateByDomain.spec.ts +0 -70
- package/test/util/DataUtils.spec.ts +0 -385
- package/test/util/DomUtils.spec.tsx +0 -117
- package/test/util/FunnelUtils.spec.tsx +0 -70
- package/test/util/Global.spec.ts +0 -11
- package/test/util/LRUCache.spec.ts +0 -81
- package/test/util/LogUtils.spec.ts +0 -45
- package/test/util/PolarUtils.spec.ts +0 -66
- package/test/util/ReduceCssCalcPrototype.spec.ts +0 -141
- package/test/util/ShallowEqual.spec.ts +0 -102
- package/test/util/TickUtils.spec.ts +0 -29
- package/test/util/createChartHelpers.spec.tsx +0 -210
- package/test/util/cursor/getCursorPoints.spec.ts +0 -136
- package/test/util/cursor/getCursorRectangle.spec.ts +0 -50
- package/test/util/cursor/getRadialCursorPoints.spec.ts +0 -36
- package/test/util/errorValue.spec.ts +0 -69
- package/test/util/getEveryNth.spec.ts +0 -39
- package/test/util/getRadiusAndStrokeWidthFromDot.spec.ts +0 -51
- package/test/util/getRelativeCoordinate.spec.ts +0 -250
- package/test/util/getSliced.spec.ts +0 -45
- package/test/util/isDomainSpecifiedByUser.spec.ts +0 -207
- package/test/util/isWellBehavedNumber.spec.ts +0 -54
- package/test/util/payload/getUniqPayload.spec.ts +0 -56
- package/test/util/propsAreEqual.spec.ts +0 -75
- package/test/util/round.spec.ts +0 -112
- package/test/util/scale/arithmetic.spec.ts +0 -61
- package/test/util/scale/createCategoricalInverse.spec.ts +0 -84
- package/test/util/scale/getNiceTickValues.spec.ts +0 -421
- package/test/util/scale/getTickValuesFixedDomain.spec.ts +0 -155
- package/test/util/svgPropertiesAndEvents.spec.tsx +0 -206
- package/test/util/svgPropertiesNoEvents.spec.tsx +0 -228
- package/test/util/tooltip/translate.spec.ts +0 -396
- package/test/util/useAnimationId.spec.tsx +0 -59
- package/test/util/useElementOffset.spec.tsx +0 -173
- package/test/util/usePrefersReducedMotion.spec.ts +0 -54
- package/test/util/useUniqueId.spec.ts +0 -99
- package/test/utils/diagnostics-allowlist.ts +0 -18
- package/test/utils/diagnostics.ts +0 -58
- package/test/zIndex/AllZIndexPortals.spec.tsx +0 -83
- package/test/zIndex/DefaultZIndexes.spec.ts +0 -80
- package/test/zIndex/DynamicZIndex.spec.tsx +0 -102
- package/test/zIndex/ZIndexLayer.portalOwner.spec.tsx +0 -125
- package/test/zIndex/componentZIndex.spec.tsx +0 -255
- package/test/zIndex/getZIndexFromUnknown.spec.ts +0 -51
- package/test/zIndex/multiChartZIndexIsolation.spec.tsx +0 -90
- package/test/zIndex/zIndexSelectors.spec.ts +0 -172
- package/test-results/.last-run.json +0 -4
- package/tsconfig.json +0 -11
package/src/cartesian/Line.tsx
CHANGED
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
// `any`); the value comes from `getValueByDataKey`, which is genuinely
|
|
21
21
|
// untyped, and only x/y are needed to draw. It flows through `scale.map`
|
|
22
22
|
// (which accepts `unknown`) unchanged.
|
|
23
|
-
import {
|
|
23
|
+
import { createMemo, createSignal, Show, untrack, mergeProps, createEffect, on } from "solid-js";
|
|
24
24
|
import { useActiveTooltipDataPoints } from "../hooks";
|
|
25
25
|
import { selectActiveTooltipIndex } from "../state/selectors/tooltipSelectors";
|
|
26
|
-
import type { JSX } from "
|
|
26
|
+
import type { JSX } from "solid-js";
|
|
27
27
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
28
28
|
import {
|
|
29
29
|
AnimatedItems,
|
|
@@ -341,7 +341,7 @@ export const lineDefaultProps = {
|
|
|
341
341
|
|
|
342
342
|
export const Line = (props: LineProps): JSX.Element => {
|
|
343
343
|
const store = useAppStore();
|
|
344
|
-
const merged =
|
|
344
|
+
const merged = mergeProps(lineDefaultProps, props);
|
|
345
345
|
const isPanorama = useIsPanorama();
|
|
346
346
|
const layout = useCartesianChartLayout();
|
|
347
347
|
const id = useUniqueId("recharts-line", props.id);
|
|
@@ -499,19 +499,21 @@ export const Line = (props: LineProps): JSX.Element => {
|
|
|
499
499
|
// settled dasharray the new curve's true length — mirroring recharts, which
|
|
500
500
|
// recomputes totalLength on the post-animation re-render.
|
|
501
501
|
createEffect(
|
|
502
|
-
(
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
502
|
+
on(
|
|
503
|
+
() => ({ points: points(), showLabels: !isAnimating() }),
|
|
504
|
+
() => {
|
|
505
|
+
if (curveEl?.getTotalLength == null) {
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
let length = 0;
|
|
509
|
+
try {
|
|
510
|
+
length = curveEl.getTotalLength() || 0;
|
|
511
|
+
} catch {
|
|
512
|
+
return; // getTotalLength can throw on detached/empty paths — keep the last value.
|
|
513
|
+
}
|
|
514
|
+
setTotalLength(length);
|
|
515
|
+
},
|
|
516
|
+
),
|
|
515
517
|
);
|
|
516
518
|
|
|
517
519
|
// Raw user event handlers forwarded to the curve. recharts' StaticCurve spreads
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
// forwards the element to the parent-supplied `forwardPathRef` so the parent
|
|
17
17
|
// (<Line>) can drive `shouldUpdatePreviousRef`/`getVisibleLength` off the same
|
|
18
18
|
// measured length.
|
|
19
|
-
import {
|
|
20
|
-
import type { JSX } from "
|
|
19
|
+
import { createSignal, splitProps, createEffect, on } from "solid-js";
|
|
20
|
+
import type { JSX } from "solid-js";
|
|
21
21
|
import { Curve, type CurveProps } from "../shape/Curve";
|
|
22
22
|
import type { ShapeAnimationProps } from "../util/types";
|
|
23
23
|
|
|
@@ -145,14 +145,16 @@ export function LineDrawShape(props: LineDrawShapeProps): JSX.Element {
|
|
|
145
145
|
// would force a synchronous SVG layout (reflow) each frame for a value nothing
|
|
146
146
|
// reads. Guarding on visibleLength drops those per-frame reflows.
|
|
147
147
|
createEffect(
|
|
148
|
-
(
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
148
|
+
on(
|
|
149
|
+
() => ({ points: props.points, visibleLength: props.visibleLength }),
|
|
150
|
+
(deps) => {
|
|
151
|
+
if (deps.visibleLength == null || pathEl?.getTotalLength == null) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const length = getTotalLength(pathEl);
|
|
155
|
+
setTotalLength(length);
|
|
156
|
+
},
|
|
157
|
+
),
|
|
156
158
|
);
|
|
157
159
|
|
|
158
160
|
const strokeDasharray = (): string | undefined => {
|
|
@@ -170,8 +172,7 @@ export function LineDrawShape(props: LineDrawShapeProps): JSX.Element {
|
|
|
170
172
|
// Strip the animation-only props before forwarding to <Curve>; we set
|
|
171
173
|
// connectNulls/strokeDasharray/pathRef explicitly below. `omit` keeps the
|
|
172
174
|
// remaining props reactive (no destructuring of `props`).
|
|
173
|
-
const curveProps =
|
|
174
|
-
props,
|
|
175
|
+
const curveProps = splitProps(props, [
|
|
175
176
|
"animationElapsedTime",
|
|
176
177
|
"isAnimating",
|
|
177
178
|
"isEntrance",
|
|
@@ -179,7 +180,7 @@ export function LineDrawShape(props: LineDrawShapeProps): JSX.Element {
|
|
|
179
180
|
"forwardPathRef",
|
|
180
181
|
"strokeDasharray",
|
|
181
182
|
"connectNulls",
|
|
182
|
-
);
|
|
183
|
+
])[1];
|
|
183
184
|
|
|
184
185
|
return (
|
|
185
186
|
<Curve
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
// - PERMANENT-N/A (by design, NOT deferred): the custom-element `shape` branch
|
|
17
17
|
// (React.cloneElement — use the render-function form). <Label>
|
|
18
18
|
// CHILDREN are not rendered (the `label` prop is).
|
|
19
|
-
import { createMemo,
|
|
20
|
-
import type { JSX } from "
|
|
19
|
+
import { createMemo, Show, mergeProps } from "solid-js";
|
|
20
|
+
import type { JSX } from "solid-js";
|
|
21
21
|
import { Layer } from "../container/Layer";
|
|
22
22
|
import {
|
|
23
23
|
CartesianLabelContextProvider,
|
|
@@ -164,7 +164,7 @@ const referenceAreaDefaultProps = {
|
|
|
164
164
|
} as const satisfies Partial<Props>;
|
|
165
165
|
|
|
166
166
|
function ReferenceAreaImpl(props: Props): JSX.Element {
|
|
167
|
-
const merged =
|
|
167
|
+
const merged = mergeProps(referenceAreaDefaultProps, props);
|
|
168
168
|
const clipPathId = useClipPathId();
|
|
169
169
|
const isPanorama = useIsPanorama();
|
|
170
170
|
const xAxisScale = useAppSelector((s) => selectAxisScale(s, "xAxis", merged.xAxisId, isPanorama));
|
|
@@ -243,7 +243,7 @@ export function ReferenceArea<
|
|
|
243
243
|
XValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
|
|
244
244
|
YValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
|
|
245
245
|
>(props: Props<XValueType, YValueType>): JSX.Element {
|
|
246
|
-
const merged =
|
|
246
|
+
const merged = mergeProps(referenceAreaDefaultProps, props);
|
|
247
247
|
const id = useUniqueId("recharts-reference-area");
|
|
248
248
|
return (
|
|
249
249
|
<>
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
// - PERMANENT-N/A (by design, NOT deferred): the custom-element `shape` branch
|
|
13
13
|
// (React.cloneElement — use the render-function form);
|
|
14
14
|
// `children` is not rendered (CartesianLabelContext).
|
|
15
|
-
import { createMemo,
|
|
16
|
-
import type { JSX } from "
|
|
15
|
+
import { createMemo, Show, mergeProps } from "solid-js";
|
|
16
|
+
import type { JSX } from "solid-js";
|
|
17
17
|
import { Layer } from "../container/Layer";
|
|
18
18
|
import { Dot, type DotProps } from "../shape/Dot";
|
|
19
19
|
import {
|
|
@@ -183,7 +183,7 @@ const referenceDotDefaultProps = {
|
|
|
183
183
|
} as const satisfies Partial<Props>;
|
|
184
184
|
|
|
185
185
|
function ReferenceDotImpl(props: Props): JSX.Element {
|
|
186
|
-
const merged =
|
|
186
|
+
const merged = mergeProps(referenceDotDefaultProps, props);
|
|
187
187
|
const clipPathId = useClipPathId();
|
|
188
188
|
const isPanorama = useIsPanorama();
|
|
189
189
|
const xAxisScale = useAppSelector((s) => selectAxisScale(s, "xAxis", merged.xAxisId, isPanorama));
|
|
@@ -255,7 +255,7 @@ export function ReferenceDot<
|
|
|
255
255
|
XValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
|
|
256
256
|
YValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
|
|
257
257
|
>(props: Props<XValueType, YValueType>): JSX.Element {
|
|
258
|
-
const merged =
|
|
258
|
+
const merged = mergeProps(referenceDotDefaultProps, props);
|
|
259
259
|
const id = useUniqueId("recharts-reference-dot");
|
|
260
260
|
return (
|
|
261
261
|
<>
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
// render-function form; the default-`<line>` branch is kept). <Label> CHILDREN
|
|
17
17
|
// are not rendered (the `label` prop is).
|
|
18
18
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
19
|
-
import { createMemo,
|
|
20
|
-
import type { JSX } from "
|
|
19
|
+
import { createMemo, Show, mergeProps } from "solid-js";
|
|
20
|
+
import type { JSX } from "solid-js";
|
|
21
21
|
import { Layer } from "../container/Layer";
|
|
22
22
|
import {
|
|
23
23
|
CartesianLabelContextProvider,
|
|
@@ -282,7 +282,7 @@ const referenceLineDefaultProps = {
|
|
|
282
282
|
} as const satisfies Partial<Props>;
|
|
283
283
|
|
|
284
284
|
function ReferenceLineImpl(props: Props): JSX.Element {
|
|
285
|
-
const merged =
|
|
285
|
+
const merged = mergeProps(referenceLineDefaultProps, props);
|
|
286
286
|
const isPanorama = useIsPanorama();
|
|
287
287
|
const clipPathId = useClipPathId();
|
|
288
288
|
const viewBox = useViewBox();
|
|
@@ -384,7 +384,7 @@ export function ReferenceLine<
|
|
|
384
384
|
XValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
|
|
385
385
|
YValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
|
|
386
386
|
>(props: Props<XValueType, YValueType>): JSX.Element {
|
|
387
|
-
const merged =
|
|
387
|
+
const merged = mergeProps(referenceLineDefaultProps, props);
|
|
388
388
|
const id = useUniqueId("recharts-reference-line");
|
|
389
389
|
return (
|
|
390
390
|
<>
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { createEffect, on } from "solid-js";
|
|
1
2
|
// Ported from recharts 3.8.1 src/cartesian/CartesianAxis.tsx RenderedTicksReporter
|
|
2
3
|
// (commit 7a23854).
|
|
3
4
|
//
|
|
@@ -5,8 +6,7 @@
|
|
|
5
6
|
// useXAxisTicks/useYAxisTicks hooks (and the tick-snap inverse scale) can read
|
|
6
7
|
// them. Solid deviation: useEffect add + cleanup remove → createEffect + onCleanup
|
|
7
8
|
// (the same effect-dispatch idiom the other Report* components use).
|
|
8
|
-
import {
|
|
9
|
-
import type { JSX } from "@solidjs/web";
|
|
9
|
+
import type { JSX } from "solid-js";
|
|
10
10
|
import { useAppStore } from "../state/hooks";
|
|
11
11
|
import type { AxisId } from "../state/cartesianAxisSlice";
|
|
12
12
|
import type { CartesianTickItem, TickItem } from "../util/types";
|
|
@@ -21,21 +21,23 @@ export function RenderedTicksReporter(props: {
|
|
|
21
21
|
let prev: { axisType: "xAxis" | "yAxis"; axisId: AxisId } | null = null;
|
|
22
22
|
|
|
23
23
|
createEffect(
|
|
24
|
-
(
|
|
25
|
-
axisType:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
24
|
+
on(
|
|
25
|
+
(): { axisType: "xAxis" | "yAxis"; axisId: AxisId; ticks: ReadonlyArray<TickItem> } => ({
|
|
26
|
+
axisType: props.axisType,
|
|
27
|
+
axisId: props.axisId,
|
|
28
|
+
// Expose only the external tick shape (drop internal props).
|
|
29
|
+
ticks: props.ticks.map((t) => ({
|
|
30
|
+
value: t.value,
|
|
31
|
+
coordinate: t.coordinate,
|
|
32
|
+
offset: t.offset,
|
|
33
|
+
index: t.index,
|
|
34
|
+
})),
|
|
35
|
+
}),
|
|
36
|
+
(payload) => {
|
|
37
|
+
store?.actions.renderedTicks.setRenderedTicks(payload);
|
|
38
|
+
prev = { axisType: payload.axisType, axisId: payload.axisId };
|
|
39
|
+
},
|
|
40
|
+
),
|
|
39
41
|
);
|
|
40
42
|
|
|
41
43
|
unregisterOnCleanup(() => {
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
// joint/fitting line) are wired.) Solid deviations:
|
|
11
11
|
// resolveDefaultProps→merge; effect-dispatch registration → createEffect/onCleanup;
|
|
12
12
|
// the `@ts-expect-error`-laden value plumbing is replaced with typed coercion.
|
|
13
|
-
import { createMemo, For,
|
|
14
|
-
import type { JSX } from "
|
|
13
|
+
import { createMemo, For, Show, mergeProps } from "solid-js";
|
|
14
|
+
import type { JSX } from "solid-js";
|
|
15
15
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
16
16
|
import { useIsPanorama } from "../context/PanoramaContext";
|
|
17
17
|
import { useUniqueId } from "../util/useUniqueId";
|
|
@@ -383,7 +383,7 @@ const scatterErrorBarFormatter: ErrorBarDataPointFormatter = (
|
|
|
383
383
|
|
|
384
384
|
export const Scatter = (props: ScatterProps): JSX.Element => {
|
|
385
385
|
const store = useAppStore();
|
|
386
|
-
const merged =
|
|
386
|
+
const merged = mergeProps(scatterDefaultProps, props);
|
|
387
387
|
const isPanorama = useIsPanorama();
|
|
388
388
|
const id = useUniqueId("recharts-scatter", props.id);
|
|
389
389
|
// `shape` is either a built-in symbol type or a custom render fn; resolve once.
|
package/src/cartesian/XAxis.tsx
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
// recharts' `resolveDefaultProps`: explicit `undefined` falls back to defaults.
|
|
12
12
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
13
13
|
import { createMemo, Show } from "solid-js";
|
|
14
|
-
import type { JSX } from "
|
|
14
|
+
import type { JSX } from "solid-js";
|
|
15
15
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
16
16
|
import {
|
|
17
17
|
NiceTicksAlgorithm,
|
package/src/cartesian/YAxis.tsx
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
// via createEffect + defaults resolved like recharts' resolveDefaultProps); the
|
|
5
5
|
// visual `<CartesianAxis>` IS rendered at the bottom of this file.
|
|
6
6
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
7
|
-
import {
|
|
8
|
-
import type { JSX } from "
|
|
7
|
+
import { createMemo, Show, createEffect, on } from "solid-js";
|
|
8
|
+
import type { JSX } from "solid-js";
|
|
9
9
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
10
10
|
import {
|
|
11
11
|
NiceTicksAlgorithm,
|
|
@@ -225,42 +225,44 @@ export function YAxis<DataPointType = unknown, DataValueType = unknown>(
|
|
|
225
225
|
// Dynamic Y-axis width: when `width="auto"` (and the label is not a function/element),
|
|
226
226
|
// recharts measures the rendered tick-value DOM via `getCalculatedYAxisWidth` and feeds
|
|
227
227
|
// the result back into the store with `updateYAxisWidth`. Mirror that with the codebase's
|
|
228
|
-
// two-arg createEffect(compute, apply): the compute tracks the reactive inputs (ticks +
|
|
228
|
+
// two-arg createEffect(on(compute, apply)): the compute tracks the reactive inputs (ticks +
|
|
229
229
|
// size), the apply does the DOM measurement and the store write (untracked — so it cannot
|
|
230
230
|
// re-trigger itself; the slice's `updateYAxisWidth` + the Math.round equality also guard
|
|
231
231
|
// oscillation).
|
|
232
232
|
let layerEl: SVGGElement | null = null;
|
|
233
233
|
createEffect(
|
|
234
|
-
(
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
234
|
+
on(
|
|
235
|
+
() => ({
|
|
236
|
+
ticks: ticks(),
|
|
237
|
+
size: size(),
|
|
238
|
+
width: props.width,
|
|
239
|
+
label: props.label,
|
|
240
|
+
id: yAxisId(),
|
|
241
|
+
}),
|
|
242
|
+
(inputs) => {
|
|
243
|
+
if (inputs.width !== "auto" || isLabelContentAFunction(inputs.label)) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const el = layerEl;
|
|
247
|
+
if (el == null || inputs.ticks == null || inputs.size == null || store == null) {
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const tickNodes = el.getElementsByClassName("recharts-cartesian-axis-tick-value");
|
|
251
|
+
if (tickNodes.length === 0) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
const updatedYAxisWidth = getCalculatedYAxisWidth({
|
|
255
|
+
ticks: tickNodes,
|
|
256
|
+
label: undefined,
|
|
257
|
+
labelGapWithTick: 5,
|
|
258
|
+
tickSize: 6,
|
|
259
|
+
tickMargin: 2,
|
|
260
|
+
});
|
|
261
|
+
if (Math.round(inputs.size.width) !== Math.round(updatedYAxisWidth)) {
|
|
262
|
+
store.actions.cartesianAxis.updateYAxisWidth({ id: inputs.id, width: updatedYAxisWidth });
|
|
263
|
+
}
|
|
264
|
+
},
|
|
265
|
+
),
|
|
264
266
|
);
|
|
265
267
|
|
|
266
268
|
return (
|
package/src/cartesian/ZAxis.tsx
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { mergeProps } from "solid-js";
|
|
1
2
|
// Ported from recharts 3.8.1 src/cartesian/ZAxis.tsx (commit 7a23854).
|
|
2
3
|
//
|
|
3
4
|
// REGISTRATION-ONLY: ZAxis never renders (it has no ticks/line); it only pushes
|
|
4
5
|
// settings into the cartesianAxis slice so Scatter can size its points by the z
|
|
5
6
|
// value. Solid deviations: useLayoutEffect/prevRef → createEffect add/replace +
|
|
6
7
|
// onCleanup remove (the XAxis/YAxis idiom); defaults via merge.
|
|
7
|
-
|
|
8
|
+
|
|
8
9
|
import { useAppStore } from "../state/hooks";
|
|
9
10
|
import { AxisId, ZAxisSettings } from "../state/cartesianAxisSlice";
|
|
10
11
|
import { implicitZAxis } from "../state/selectors/axisSelectors";
|
|
@@ -35,7 +36,7 @@ export function ZAxis<DataPointType = unknown, DataValueType = unknown>(
|
|
|
35
36
|
props: ZAxisProps<DataPointType, DataValueType>,
|
|
36
37
|
): null {
|
|
37
38
|
const store = useAppStore();
|
|
38
|
-
const merged =
|
|
39
|
+
const merged = mergeProps(zAxisDefaultProps, props);
|
|
39
40
|
|
|
40
41
|
if (store != null) {
|
|
41
42
|
registerInStore<ZAxisSettings>(
|
package/src/chart/AreaChart.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Ported from recharts 3.8.1 src/chart/AreaChart.tsx (commit 7a23854).
|
|
2
2
|
// `forwardRef` → `ref` prop; thin user-facing wrapper over CartesianChart
|
|
3
3
|
// (mirrors LineChart — differs only in chartName / allowed tooltip event types).
|
|
4
|
-
import type { JSX } from "
|
|
4
|
+
import type { JSX } from "solid-js";
|
|
5
5
|
import { arrayTooltipSearcher } from "../state/optionsSlice";
|
|
6
6
|
import { CartesianChart } from "./CartesianChart";
|
|
7
7
|
import { CartesianChartProps, TooltipEventType } from "../util/types";
|
package/src/chart/BarChart.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Ported from recharts 3.8.1 src/chart/BarChart.tsx (commit 7a23854).
|
|
2
2
|
// `forwardRef` → `ref` prop; thin user-facing wrapper over CartesianChart.
|
|
3
|
-
import type { JSX } from "
|
|
3
|
+
import type { JSX } from "solid-js";
|
|
4
4
|
import { arrayTooltipSearcher } from "../state/optionsSlice";
|
|
5
5
|
import { CartesianChart } from "./CartesianChart";
|
|
6
6
|
import { CartesianChartProps, TooltipEventType } from "../util/types";
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { splitProps } from "solid-js";
|
|
1
2
|
// Ported from recharts 3.8.1 src/chart/CartesianChart.tsx (commit 7a23854).
|
|
2
3
|
//
|
|
3
4
|
// Solid deviations: `forwardRef` → `ref` prop; `resolveDefaultProps` → per-field
|
|
4
5
|
// `?? default` accessors (see the defaults-use-solid-merge memory — using
|
|
5
6
|
// explicit nullish-coalescing avoids `merge`'s undefined-override gotcha AND the
|
|
6
7
|
// required-ness typing gap). Provider + Report components mirror recharts.
|
|
7
|
-
|
|
8
|
-
import type { JSX } from "
|
|
8
|
+
|
|
9
|
+
import type { JSX } from "solid-js";
|
|
9
10
|
import { ChartOptions } from "../state/optionsSlice";
|
|
10
11
|
import { RechartsStoreProvider } from "../state/RechartsStoreProvider";
|
|
11
12
|
import { ChartDataContextProvider } from "../context/chartDataContext";
|
|
@@ -83,7 +84,7 @@ export const CartesianChart = (props: CartesianChartOptions): JSX.Element => {
|
|
|
83
84
|
{/* Spread WITHOUT children (a `{...cp()}` spread eagerly evaluates the
|
|
84
85
|
children getter here, before the provider sets context — running them
|
|
85
86
|
outside the store); pass children as a lazy JSX child instead. */}
|
|
86
|
-
<CategoricalChart {...
|
|
87
|
+
<CategoricalChart {...splitProps(cp(), ["children"])[1]} ref={props.ref}>
|
|
87
88
|
{cp().children}
|
|
88
89
|
</CategoricalChart>
|
|
89
90
|
</RechartsStoreProvider>
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import { splitProps } from "solid-js";
|
|
1
2
|
// Ported from recharts 3.8.1 src/chart/CategoricalChart.tsx (commit 7a23854).
|
|
2
3
|
//
|
|
3
4
|
// Solid deviations: `forwardRef` → `ref` prop; no destructuring (omit + props);
|
|
4
5
|
// `className` → `class`. The `compact` (Brush panorama) branch is deferred. Event
|
|
5
6
|
// handlers are not forwarded yet (RechartsWrapper is render-only).
|
|
6
|
-
|
|
7
|
-
import type { JSX } from "
|
|
7
|
+
|
|
8
|
+
import type { JSX } from "solid-js";
|
|
8
9
|
import { RootSurface } from "../container/RootSurface";
|
|
9
10
|
import { RechartsWrapper } from "./RechartsWrapper";
|
|
10
11
|
import { ClipPathProvider } from "../container/ClipPathProvider";
|
|
@@ -18,8 +19,7 @@ export interface CategoricalChartProps extends CartesianChartProps {
|
|
|
18
19
|
export const CategoricalChart = (props: CategoricalChartProps): JSX.Element => {
|
|
19
20
|
const attrs = (): Record<string, unknown> =>
|
|
20
21
|
svgPropertiesNoEventsKeepCase({
|
|
21
|
-
...
|
|
22
|
-
props,
|
|
22
|
+
...splitProps(props, [
|
|
23
23
|
"width",
|
|
24
24
|
"height",
|
|
25
25
|
"responsive",
|
|
@@ -30,7 +30,7 @@ export const CategoricalChart = (props: CategoricalChartProps): JSX.Element => {
|
|
|
30
30
|
"title",
|
|
31
31
|
"desc",
|
|
32
32
|
"ref",
|
|
33
|
-
),
|
|
33
|
+
])[1],
|
|
34
34
|
});
|
|
35
35
|
|
|
36
36
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Ported from recharts 3.8.1 src/chart/ComposedChart.tsx (commit 7a23854).
|
|
2
2
|
// `forwardRef` → `ref` prop; thin user-facing wrapper over CartesianChart.
|
|
3
|
-
import type { JSX } from "
|
|
3
|
+
import type { JSX } from "solid-js";
|
|
4
4
|
import { arrayTooltipSearcher } from "../state/optionsSlice";
|
|
5
5
|
import { CartesianChart } from "./CartesianChart";
|
|
6
6
|
import { CartesianChartProps, TooltipEventType } from "../util/types";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Ported from recharts 3.8.1 src/chart/FunnelChart.tsx (commit 7a23854).
|
|
2
2
|
// `forwardRef` → `ref` prop; thin user-facing wrapper over CartesianChart.
|
|
3
|
-
import type { JSX } from "
|
|
3
|
+
import type { JSX } from "solid-js";
|
|
4
4
|
import { arrayTooltipSearcher } from "../state/optionsSlice";
|
|
5
5
|
import { CartesianChart } from "./CartesianChart";
|
|
6
6
|
import { CartesianChartProps, TooltipEventType } from "../util/types";
|
package/src/chart/LineChart.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Ported from recharts 3.8.1 src/chart/LineChart.tsx (commit 7a23854).
|
|
2
2
|
// `forwardRef` → `ref` prop; the user-facing convenience wrapper over CartesianChart.
|
|
3
|
-
import type { JSX } from "
|
|
3
|
+
import type { JSX } from "solid-js";
|
|
4
4
|
import { arrayTooltipSearcher } from "../state/optionsSlice";
|
|
5
5
|
import { CartesianChart } from "./CartesianChart";
|
|
6
6
|
import { CartesianChartProps, TooltipEventType } from "../util/types";
|
package/src/chart/PieChart.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { mergeProps, splitProps } from "solid-js";
|
|
1
2
|
// Ported from recharts 3.8.1 src/chart/PieChart.tsx (commit 7a23854).
|
|
2
3
|
// `forwardRef` → `ref` prop; the user-facing convenience wrapper over PolarChart.
|
|
3
4
|
// `resolveDefaultProps` → Solid `merge` (lazy proxy — does NOT eagerly evaluate
|
|
@@ -5,8 +6,8 @@
|
|
|
5
6
|
// (layout "centric", startAngle 0, endAngle 360) win over PolarChart's polar
|
|
6
7
|
// defaults. `ref` is omitted from categoricalChartProps and passed separately,
|
|
7
8
|
// mirroring the reference's forwardRef split.
|
|
8
|
-
|
|
9
|
-
import type { JSX } from "
|
|
9
|
+
|
|
10
|
+
import type { JSX } from "solid-js";
|
|
10
11
|
import { arrayTooltipSearcher } from "../state/optionsSlice";
|
|
11
12
|
import { PolarChart } from "./PolarChart";
|
|
12
13
|
import { PolarChartProps, TooltipEventType } from "../util/types";
|
|
@@ -26,7 +27,7 @@ export interface PieChartProps<DataPointType = unknown> extends PolarChartProps<
|
|
|
26
27
|
export function PieChart<DataPointType = unknown>(
|
|
27
28
|
props: PieChartProps<DataPointType>,
|
|
28
29
|
): JSX.Element {
|
|
29
|
-
const categoricalChartProps =
|
|
30
|
+
const categoricalChartProps = mergeProps(defaultPieChartProps, splitProps(props, ["ref"])[1]);
|
|
30
31
|
|
|
31
32
|
return (
|
|
32
33
|
<PolarChart
|
package/src/chart/PolarChart.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { splitProps } from "solid-js";
|
|
1
2
|
// Ported from recharts 3.8.1 src/chart/PolarChart.tsx (commit 7a23854).
|
|
2
3
|
//
|
|
3
4
|
// Solid deviations: `forwardRef` → `ref` prop; `resolveDefaultProps` → per-field
|
|
@@ -7,8 +8,8 @@
|
|
|
7
8
|
// The polar geometry props (cx/cy/innerRadius/outerRadius/startAngle/endAngle)
|
|
8
9
|
// pass through to CategoricalChart exactly as in the reference — svgPropertiesNoEvents
|
|
9
10
|
// forwards cx/cy onto the root <svg> (faithful) and drops the rest.
|
|
10
|
-
|
|
11
|
-
import type { JSX } from "
|
|
11
|
+
|
|
12
|
+
import type { JSX } from "solid-js";
|
|
12
13
|
import { ChartOptions } from "../state/optionsSlice";
|
|
13
14
|
import { RechartsStoreProvider } from "../state/RechartsStoreProvider";
|
|
14
15
|
import { ChartDataContextProvider } from "../context/chartDataContext";
|
|
@@ -89,7 +90,7 @@ export const PolarChart = (props: PolarChartOptions): JSX.Element => {
|
|
|
89
90
|
{/* Spread WITHOUT children (a `{...cp()}` spread eagerly evaluates the
|
|
90
91
|
children getter here, before the provider sets context — running them
|
|
91
92
|
outside the store); pass children as a lazy JSX child instead. */}
|
|
92
|
-
<CategoricalChart {...
|
|
93
|
+
<CategoricalChart {...splitProps(cp(), ["children"])[1]} ref={props.ref}>
|
|
93
94
|
{cp().children}
|
|
94
95
|
</CategoricalChart>
|
|
95
96
|
</RechartsStoreProvider>
|
package/src/chart/RadarChart.tsx
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { mergeProps, splitProps } from "solid-js";
|
|
1
2
|
// Ported from recharts 3.8.1 src/chart/RadarChart.tsx (commit 7a23854).
|
|
2
3
|
// `forwardRef`→`ref` prop; `resolveDefaultProps`→`merge` (lazy proxy, see PieChart).
|
|
3
4
|
// RadarChart-specific defaults: layout "centric", startAngle 90, endAngle -270.
|
|
4
|
-
|
|
5
|
-
import type { JSX } from "
|
|
5
|
+
|
|
6
|
+
import type { JSX } from "solid-js";
|
|
6
7
|
import { arrayTooltipSearcher } from "../state/optionsSlice";
|
|
7
8
|
import { PolarChart } from "./PolarChart";
|
|
8
9
|
import { PolarChartProps, TooltipEventType } from "../util/types";
|
|
@@ -22,7 +23,7 @@ export interface RadarChartProps<DataPointType = unknown> extends PolarChartProp
|
|
|
22
23
|
export function RadarChart<DataPointType = unknown>(
|
|
23
24
|
props: RadarChartProps<DataPointType>,
|
|
24
25
|
): JSX.Element {
|
|
25
|
-
const categoricalChartProps =
|
|
26
|
+
const categoricalChartProps = mergeProps(defaultRadarChartProps, splitProps(props, ["ref"])[1]);
|
|
26
27
|
|
|
27
28
|
return (
|
|
28
29
|
<PolarChart
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { mergeProps, splitProps } from "solid-js";
|
|
1
2
|
// Ported from recharts 3.8.1 src/chart/RadialBarChart.tsx (commit 7a23854).
|
|
2
3
|
// `forwardRef`→`ref` prop; `resolveDefaultProps`→`merge`. RadialBarChart defaults:
|
|
3
4
|
// layout "radial", startAngle 0, endAngle 360 (PolarChart fills cx/cy/radii).
|
|
4
|
-
|
|
5
|
-
import type { JSX } from "
|
|
5
|
+
|
|
6
|
+
import type { JSX } from "solid-js";
|
|
6
7
|
import { arrayTooltipSearcher } from "../state/optionsSlice";
|
|
7
8
|
import { PolarChart } from "./PolarChart";
|
|
8
9
|
import { PolarChartProps, TooltipEventType } from "../util/types";
|
|
@@ -24,7 +25,10 @@ export interface RadialBarChartProps<
|
|
|
24
25
|
export function RadialBarChart<DataPointType = unknown>(
|
|
25
26
|
props: RadialBarChartProps<DataPointType>,
|
|
26
27
|
): JSX.Element {
|
|
27
|
-
const categoricalChartProps =
|
|
28
|
+
const categoricalChartProps = mergeProps(
|
|
29
|
+
defaultRadialBarChartProps,
|
|
30
|
+
splitProps(props, ["ref"])[1],
|
|
31
|
+
);
|
|
28
32
|
|
|
29
33
|
return (
|
|
30
34
|
<PolarChart
|