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
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
// Ported from recharts 3.8.1 src/context/chartDataContext.tsx (commit 7a23854).
|
|
2
2
|
//
|
|
3
3
|
// Solid deviations: `useAppDispatch` + action creators → `useAppStore()` + slice
|
|
4
|
-
// actions (`store.actions.chartData.*`); `useEffect` →
|
|
5
|
-
//
|
|
4
|
+
// actions (`store.actions.chartData.*`); `useEffect` → `createEffect` + `onCleanup`;
|
|
5
|
+
// selector hooks return
|
|
6
6
|
// Accessors (since `useAppSelector` does). `SetComputedData` and the BrushStartEndIndex
|
|
7
7
|
// type are kept local; the latter re-homes to brushUpdateContext when ported.
|
|
8
|
-
import { createEffect,
|
|
9
|
-
import type { JSX } from "
|
|
8
|
+
import { type Accessor, createEffect, on, onCleanup } from "solid-js";
|
|
9
|
+
import type { JSX } from "solid-js";
|
|
10
10
|
import { ChartData } from "../state/chartDataSlice";
|
|
11
11
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
12
|
-
import { unregisterCleanup } from "../state/unregisterOnCleanup";
|
|
13
12
|
import { RechartsRootState } from "../state/store";
|
|
14
13
|
import { useIsPanorama } from "./PanoramaContext";
|
|
15
14
|
|
|
@@ -25,17 +24,19 @@ export const ChartDataContextProvider = (props: {
|
|
|
25
24
|
const isPanorama = useIsPanorama();
|
|
26
25
|
|
|
27
26
|
createEffect(
|
|
28
|
-
(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
27
|
+
on(
|
|
28
|
+
() => props.chartData,
|
|
29
|
+
(chartData) => {
|
|
30
|
+
// Panorama mode reuses the main chart's data — don't overwrite it.
|
|
31
|
+
if (isPanorama) {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
store?.actions.chartData.setChartData(chartData);
|
|
35
|
+
onCleanup(() => {
|
|
36
|
+
store?.actions.chartData.setChartData(undefined);
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
),
|
|
39
40
|
);
|
|
40
41
|
|
|
41
42
|
return null;
|
|
@@ -45,13 +46,15 @@ export const SetComputedData = (props: { computedData: unknown }): JSX.Element =
|
|
|
45
46
|
const store = useAppStore();
|
|
46
47
|
|
|
47
48
|
createEffect(
|
|
48
|
-
(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
on(
|
|
50
|
+
() => props.computedData,
|
|
51
|
+
(computedData) => {
|
|
52
|
+
store?.actions.chartData.setComputedData(computedData);
|
|
53
|
+
onCleanup(() => {
|
|
54
|
+
store?.actions.chartData.setChartData(undefined);
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
),
|
|
55
58
|
);
|
|
56
59
|
|
|
57
60
|
return null;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
// Solid deviations: selector hooks return Accessors (since `useAppSelector`
|
|
4
4
|
// does); `useAppDispatch` + action creators → `useAppStore().actions` +
|
|
5
5
|
// `createEffect`. Brush/responsive reads go through the current stubs.
|
|
6
|
-
import { createEffect,
|
|
7
|
-
import type { JSX } from "
|
|
6
|
+
import { type Accessor, createEffect, on } from "solid-js";
|
|
7
|
+
import type { JSX } from "solid-js";
|
|
8
8
|
import {
|
|
9
9
|
CartesianLayout,
|
|
10
10
|
CartesianViewBoxRequired,
|
|
@@ -135,12 +135,14 @@ export const ReportChartSize = (props: {
|
|
|
135
135
|
responsive && responsive.height > 0 ? responsive.height : props.height;
|
|
136
136
|
|
|
137
137
|
createEffect(
|
|
138
|
-
(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
138
|
+
on(
|
|
139
|
+
() => ({ width: width(), height: height() }),
|
|
140
|
+
({ width: w, height: h }) => {
|
|
141
|
+
if (!isPanorama && isPositiveNumber(w) && isPositiveNumber(h)) {
|
|
142
|
+
store?.actions.layout.setChartSize({ width: w, height: h });
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
),
|
|
144
146
|
);
|
|
145
147
|
|
|
146
148
|
return null;
|
|
@@ -149,10 +151,12 @@ export const ReportChartSize = (props: {
|
|
|
149
151
|
export const ReportChartMargin = (props: { margin: Partial<Margin> }): JSX.Element => {
|
|
150
152
|
const store = useAppStore();
|
|
151
153
|
createEffect(
|
|
152
|
-
(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
154
|
+
on(
|
|
155
|
+
() => props.margin,
|
|
156
|
+
(margin) => {
|
|
157
|
+
store?.actions.layout.setMargin(margin);
|
|
158
|
+
},
|
|
159
|
+
),
|
|
156
160
|
);
|
|
157
161
|
return null;
|
|
158
162
|
};
|
package/src/polar/Pie.tsx
CHANGED
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
// recharts (the empty/hidden root Layer stays inline, mounting no portal).
|
|
32
32
|
// DEFERRED: `maxRadius`/`cornerRadius` rounding edge cases, float-precise per-frame
|
|
33
33
|
// animation angle matrices.
|
|
34
|
-
import {
|
|
35
|
-
import type { JSX } from "
|
|
34
|
+
import { createMemo, For, Show, untrack, mergeProps, createEffect, on } from "solid-js";
|
|
35
|
+
import type { JSX } from "solid-js";
|
|
36
36
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
37
37
|
import { useUniqueId } from "../util/useUniqueId";
|
|
38
38
|
import {
|
|
@@ -580,7 +580,7 @@ export function Pie<DataPointType = Record<string, unknown>, DataValueType = unk
|
|
|
580
580
|
props: PieProps<DataPointType, DataValueType>,
|
|
581
581
|
): JSX.Element {
|
|
582
582
|
const store = useAppStore();
|
|
583
|
-
const merged =
|
|
583
|
+
const merged = mergeProps(pieDefaultProps, props);
|
|
584
584
|
const id = useUniqueId("recharts-pie", props.id);
|
|
585
585
|
|
|
586
586
|
if (store != null) {
|
|
@@ -703,18 +703,19 @@ export function Pie<DataPointType = Record<string, unknown>, DataValueType = unk
|
|
|
703
703
|
// re-appears re-runs the ENTER animation from a collapsed state instead of resuming the
|
|
704
704
|
// tween from the last visible (mid-progress) frame. Plain-ref write (no reactive graph).
|
|
705
705
|
createEffect(
|
|
706
|
-
(
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
706
|
+
on(
|
|
707
|
+
() => merged.hide || sectors() == null,
|
|
708
|
+
(shouldReset) => {
|
|
709
|
+
if (shouldReset) {
|
|
710
|
+
previousSectorsRef.current = null;
|
|
711
|
+
}
|
|
712
|
+
},
|
|
713
|
+
),
|
|
712
714
|
);
|
|
713
715
|
const polarLayout = usePolarChartLayout();
|
|
714
716
|
|
|
715
|
-
// Tracks animation in-progress (gates the labels).
|
|
716
|
-
//
|
|
717
|
-
// (route/soft navigation) — a legal teardown write.
|
|
717
|
+
// Tracks animation in-progress (gates the labels). handleAnimationEnd can fire
|
|
718
|
+
// from the driver's cleanup when a mid-animation chart is disposed.
|
|
718
719
|
const { isAnimating, handleAnimationStart, handleAnimationEnd } = useAnimationCallbacks(
|
|
719
720
|
() => props.onAnimationStart?.(),
|
|
720
721
|
() => props.onAnimationEnd?.(),
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
// evaluated element to inject computed x/y/payload — use the function form
|
|
18
18
|
// instead). NOTE: the reference PolarAngleAxis renders no axis `label` title
|
|
19
19
|
// either (only PolarRadiusAxis does) — no gap there.
|
|
20
|
-
import { For,
|
|
21
|
-
import type { JSX } from "
|
|
20
|
+
import { For, Show, mergeProps } from "solid-js";
|
|
21
|
+
import type { JSX } from "solid-js";
|
|
22
22
|
import { svgPropertiesNoEvents } from "../util/svgPropertiesNoEvents";
|
|
23
23
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
24
24
|
import { Layer } from "../container/Layer";
|
|
@@ -331,7 +331,7 @@ export function PolarAngleAxis<DataPointType = unknown, DataValueType = unknown>
|
|
|
331
331
|
): JSX.Element {
|
|
332
332
|
const store = useAppStore();
|
|
333
333
|
const layout = usePolarChartLayout();
|
|
334
|
-
const merged =
|
|
334
|
+
const merged = mergeProps(polarAngleAxisDefaultProps, props);
|
|
335
335
|
const isPanorama = useIsPanorama();
|
|
336
336
|
|
|
337
337
|
if (store != null) {
|
package/src/polar/PolarGrid.tsx
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
// default DefaultZIndexes.grid). DEFERRED (documented): background fill rect (fill
|
|
11
11
|
// defaults to "none"), generic SVG-prop passthrough beyond
|
|
12
12
|
// stroke/strokeWidth/strokeDasharray.
|
|
13
|
-
import { For,
|
|
14
|
-
import type { JSX } from "
|
|
13
|
+
import { For, Show, mergeProps } from "solid-js";
|
|
14
|
+
import type { JSX } from "solid-js";
|
|
15
15
|
import { useAppSelector } from "../state/hooks";
|
|
16
16
|
import { AxisId } from "../state/cartesianAxisSlice";
|
|
17
17
|
import { selectPolarGridAngles, selectPolarGridRadii } from "../state/selectors/polarGridSelectors";
|
|
@@ -107,7 +107,7 @@ const ConcentricRing = (
|
|
|
107
107
|
fallback={
|
|
108
108
|
<path
|
|
109
109
|
{...concentricPolygonAttrs(props.cx, props.cy)}
|
|
110
|
-
class={["recharts-polar-grid-concentric-polygon", props.class]}
|
|
110
|
+
class={["recharts-polar-grid-concentric-polygon", props.class].filter(Boolean).join(" ")}
|
|
111
111
|
fill={props.fill ?? "none"}
|
|
112
112
|
fill-opacity={props.fillOpacity}
|
|
113
113
|
stroke={props.stroke}
|
|
@@ -118,7 +118,7 @@ const ConcentricRing = (
|
|
|
118
118
|
}
|
|
119
119
|
>
|
|
120
120
|
<circle
|
|
121
|
-
class={["recharts-polar-grid-concentric-circle", props.class]}
|
|
121
|
+
class={["recharts-polar-grid-concentric-circle", props.class].filter(Boolean).join(" ")}
|
|
122
122
|
fill={props.fill ?? "none"}
|
|
123
123
|
fill-opacity={props.fillOpacity}
|
|
124
124
|
stroke={props.stroke}
|
|
@@ -155,7 +155,7 @@ const RadialLine = (
|
|
|
155
155
|
};
|
|
156
156
|
|
|
157
157
|
export const PolarGrid = (props: PolarGridProps): JSX.Element => {
|
|
158
|
-
const merged =
|
|
158
|
+
const merged = mergeProps(polarGridDefaultProps, props);
|
|
159
159
|
const polarViewBox = useAppSelector(selectPolarViewBox);
|
|
160
160
|
const anglesFromStore = useAppSelector((state) =>
|
|
161
161
|
selectPolarGridAngles(state, merged.angleAxisId),
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
// DefaultZIndexes.axis).
|
|
15
15
|
// DEFERRED (documented): ELEMENT-form `tick` (Solid can't clone-and-inject
|
|
16
16
|
// computed props into an evaluated node — use the function form instead).
|
|
17
|
-
import { For,
|
|
18
|
-
import type { JSX } from "
|
|
17
|
+
import { For, Show, mergeProps } from "solid-js";
|
|
18
|
+
import type { JSX } from "solid-js";
|
|
19
19
|
import { svgPropertiesNoEvents } from "../util/svgPropertiesNoEvents";
|
|
20
20
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
21
21
|
import { Layer } from "../container/Layer";
|
|
@@ -263,7 +263,7 @@ export function PolarRadiusAxis<DataPointType = unknown, DataValueType = unknown
|
|
|
263
263
|
): JSX.Element {
|
|
264
264
|
const store = useAppStore();
|
|
265
265
|
const layout = usePolarChartLayout();
|
|
266
|
-
const merged =
|
|
266
|
+
const merged = mergeProps(polarRadiusAxisDefaultProps, props);
|
|
267
267
|
|
|
268
268
|
if (store != null) {
|
|
269
269
|
registerInStore<RadiusAxisSettings>(
|
package/src/polar/Radar.tsx
CHANGED
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
// cloneElement). PERMANENT-N/A: element-form `shape`. DEFERRED: object-form
|
|
22
22
|
// `shape`. zIndex relayering IS wired: the `.recharts-radar` Layer is wrapped in
|
|
23
23
|
// <ZIndexLayer> (default DefaultZIndexes.area = 100), matching recharts.
|
|
24
|
-
import { createMemo,
|
|
25
|
-
import type { JSX } from "
|
|
24
|
+
import { createMemo, Show, mergeProps } from "solid-js";
|
|
25
|
+
import type { JSX } from "solid-js";
|
|
26
26
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
27
27
|
import { useIsPanorama } from "../context/PanoramaContext";
|
|
28
28
|
import { useUniqueId } from "../util/useUniqueId";
|
|
@@ -291,7 +291,7 @@ export function Radar<DataPointType = Record<string, unknown>, DataValueType = u
|
|
|
291
291
|
props: RadarProps<DataPointType, DataValueType>,
|
|
292
292
|
): JSX.Element {
|
|
293
293
|
const store = useAppStore();
|
|
294
|
-
const merged =
|
|
294
|
+
const merged = mergeProps(radarDefaultProps, props);
|
|
295
295
|
const isPanorama = useIsPanorama();
|
|
296
296
|
const id = useUniqueId("recharts-radar", props.id);
|
|
297
297
|
|
package/src/polar/RadialBar.tsx
CHANGED
|
@@ -30,8 +30,8 @@
|
|
|
30
30
|
// (final frame), element-form shape, per-sector item-hover dispatch (sectors lack
|
|
31
31
|
// tooltipPosition).
|
|
32
32
|
// Cells ARE wired: a <Cell> child overrides the per-sector fill/stroke/class.
|
|
33
|
-
import { createMemo, For,
|
|
34
|
-
import type { JSX } from "
|
|
33
|
+
import { createMemo, For, Show, untrack, mergeProps } from "solid-js";
|
|
34
|
+
import type { JSX } from "solid-js";
|
|
35
35
|
import { useAppSelector, useAppStore } from "../state/hooks";
|
|
36
36
|
import { useUniqueId } from "../util/useUniqueId";
|
|
37
37
|
import {
|
|
@@ -481,7 +481,7 @@ export function RadialBar<DataPointType = Record<string, unknown>, DataValueType
|
|
|
481
481
|
props: RadialBarProps<DataPointType, DataValueType>,
|
|
482
482
|
): JSX.Element {
|
|
483
483
|
const store = useAppStore();
|
|
484
|
-
const merged =
|
|
484
|
+
const merged = mergeProps(radialBarDefaultProps, props);
|
|
485
485
|
const id = useUniqueId("recharts-radial-bar", props.id);
|
|
486
486
|
|
|
487
487
|
const settings = (): RadialBarSettings => ({
|
package/src/shape/Cross.tsx
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* Ported from recharts 3.8.1 src/shape/Cross.tsx (commit 7a23854).
|
|
5
5
|
* Solid deviations: `className` (recharts) → `class: string` (and Omit the wide
|
|
6
6
|
* SVG `class` so the array form typechecks); destructuring defaults → `?? 0`
|
|
7
|
-
* accessors; `clsx` → `class={[...]}`; `return null` → `<Show>`.
|
|
7
|
+
* accessors; `clsx` → `class={[...].filter(Boolean).join(" ")}`; `return null` → `<Show>`.
|
|
8
8
|
*/
|
|
9
9
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
10
|
-
import { Show,
|
|
11
|
-
import type { JSX } from "
|
|
10
|
+
import { Show, splitProps } from "solid-js";
|
|
11
|
+
import type { JSX } from "solid-js";
|
|
12
12
|
import { isNumber } from "../util/DataUtils";
|
|
13
13
|
import { svgPropertiesAndEvents } from "../util/svgPropertiesAndEvents";
|
|
14
14
|
|
|
@@ -62,7 +62,7 @@ export const Cross = (props: CrossProps): JSX.Element => {
|
|
|
62
62
|
// SVG-prop filter; only allowlisted keys (x, y, width, height, …) survive onto
|
|
63
63
|
// the <path>. `top`/`left`/`class` are filtered/handled separately.
|
|
64
64
|
const passthrough = (): Record<string, unknown> => ({
|
|
65
|
-
...
|
|
65
|
+
...splitProps(props, ["class"])[1],
|
|
66
66
|
x: x(),
|
|
67
67
|
y: y(),
|
|
68
68
|
top: top(),
|
|
@@ -75,7 +75,7 @@ export const Cross = (props: CrossProps): JSX.Element => {
|
|
|
75
75
|
<Show when={valid()}>
|
|
76
76
|
<path
|
|
77
77
|
{...svgPropertiesAndEvents(passthrough())}
|
|
78
|
-
class={["recharts-cross", props.class]}
|
|
78
|
+
class={["recharts-cross", props.class].filter(Boolean).join(" ")}
|
|
79
79
|
d={getPath(x(), y(), width(), height(), top(), left())}
|
|
80
80
|
/>
|
|
81
81
|
</Show>
|
package/src/shape/Curve.tsx
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Ported from recharts 3.8.1 src/shape/Curve.tsx (commit 7a23854).
|
|
5
5
|
* Pure `getPath`/`getCurveFactory` helpers copied verbatim (modulo type
|
|
6
6
|
* adjustments). Solid deviations:
|
|
7
|
-
* - `className` → `class` (Omit the wide SVG `class`); `clsx` → `class={[...]}`.
|
|
7
|
+
* - `className` → `class` (Omit the wide SVG `class`); `clsx` → `class={[...].filter(Boolean).join(" ")}`.
|
|
8
8
|
* - `resolveDefaultProps` → `merge()` defaults via per-prop `?? default`.
|
|
9
9
|
* - `React.forwardRef` → `ref?: SVGPathElement | ((el: SVGPathElement) => void)`.
|
|
10
10
|
* - `return null` → `<Show>`.
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* generic type internally but its typings don't reflect that.
|
|
18
18
|
*/
|
|
19
19
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
20
|
-
import { Show,
|
|
21
|
-
import type { JSX } from "
|
|
20
|
+
import { Show, splitProps } from "solid-js";
|
|
21
|
+
import type { JSX } from "solid-js";
|
|
22
22
|
import {
|
|
23
23
|
area as shapeArea,
|
|
24
24
|
type Area as D3AreaCurve,
|
|
@@ -303,8 +303,7 @@ export const Curve = (props: CurveProps): JSX.Element => {
|
|
|
303
303
|
// `strokeDasharray` (camelCase) is forwarded by the spread — svgPropertiesNoEvents
|
|
304
304
|
// renames it to the kebab `stroke-dasharray` DOM attribute (see svg-attribute-rename).
|
|
305
305
|
const others = (): Record<string, unknown> => ({
|
|
306
|
-
...
|
|
307
|
-
props,
|
|
306
|
+
...splitProps(props, [
|
|
308
307
|
"class",
|
|
309
308
|
"type",
|
|
310
309
|
"layout",
|
|
@@ -313,7 +312,7 @@ export const Curve = (props: CurveProps): JSX.Element => {
|
|
|
313
312
|
"connectNulls",
|
|
314
313
|
"path",
|
|
315
314
|
"pathRef",
|
|
316
|
-
),
|
|
315
|
+
])[1],
|
|
317
316
|
});
|
|
318
317
|
|
|
319
318
|
// recharts Curve spreads `svgPropertiesNoEvents(props)` for attributes and
|
|
@@ -326,7 +325,7 @@ export const Curve = (props: CurveProps): JSX.Element => {
|
|
|
326
325
|
<path
|
|
327
326
|
{...svgPropertiesNoEvents(others())}
|
|
328
327
|
{...(adaptEventHandlers(props) ?? {})}
|
|
329
|
-
class={["recharts-curve", props.class]}
|
|
328
|
+
class={["recharts-curve", props.class].filter(Boolean).join(" ")}
|
|
330
329
|
d={dAttr()}
|
|
331
330
|
ref={props.pathRef}
|
|
332
331
|
/>
|
package/src/shape/Dot.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
2
2
|
import { svgPropertiesAndEvents } from "../util/svgPropertiesAndEvents";
|
|
3
|
-
import { Show,
|
|
4
|
-
import type { JSX } from "
|
|
3
|
+
import { Show, splitProps } from "solid-js";
|
|
4
|
+
import type { JSX } from "solid-js";
|
|
5
5
|
import { isNumber } from "../util/DataUtils";
|
|
6
6
|
|
|
7
7
|
interface DotOwnProps {
|
|
@@ -33,13 +33,13 @@ export type DotProps = Omit<
|
|
|
33
33
|
* because it is not a valid SVG attribute.
|
|
34
34
|
*/
|
|
35
35
|
export const Dot = (props: DotProps) => {
|
|
36
|
-
const rest =
|
|
36
|
+
const rest = splitProps(props, ["class", "cx", "cy", "r", "clipDot"])[1];
|
|
37
37
|
|
|
38
38
|
return (
|
|
39
39
|
<Show when={isNumber(props.cx) && isNumber(props.cy) && isNumber(props.r)}>
|
|
40
40
|
<circle
|
|
41
41
|
{...svgPropertiesAndEvents({ ...rest })}
|
|
42
|
-
class={["recharts-dot", props.class]}
|
|
42
|
+
class={["recharts-dot", props.class].filter(Boolean).join(" ")}
|
|
43
43
|
cx={props.cx}
|
|
44
44
|
cy={props.cy}
|
|
45
45
|
r={props.r}
|
package/src/shape/Polygon.tsx
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* Ported from recharts 3.8.1 src/shape/Polygon.tsx (commit 7a23854).
|
|
5
5
|
* Pure path helpers are copied verbatim. Solid deviations: `className` → `class`
|
|
6
6
|
* (Omit the wide SVG `class`); no destructuring (use `omit` + a keyed `<Show>`
|
|
7
|
-
* to narrow `points` without a non-null `!`); `clsx` → `class={[...]}`;
|
|
7
|
+
* to narrow `points` without a non-null `!`); `clsx` → `class={[...].filter(Boolean).join(" ")}`;
|
|
8
8
|
* `return null` → `<Show>`.
|
|
9
9
|
*/
|
|
10
10
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
11
|
-
import { Show,
|
|
12
|
-
import type { JSX } from "
|
|
11
|
+
import { Show, splitProps } from "solid-js";
|
|
12
|
+
import type { JSX } from "solid-js";
|
|
13
13
|
import { Coordinate } from "../util/types";
|
|
14
14
|
import { svgPropertiesAndEvents } from "../util/svgPropertiesAndEvents";
|
|
15
15
|
import { roundTemplateLiteral } from "../util/round";
|
|
@@ -103,9 +103,9 @@ export type PolygonProps = Omit<
|
|
|
103
103
|
|
|
104
104
|
export const Polygon = (props: PolygonProps): JSX.Element => {
|
|
105
105
|
const others = (): Record<string, unknown> => ({
|
|
106
|
-
...
|
|
106
|
+
...splitProps(props, ["class", "points", "baseLinePoints", "connectNulls"])[1],
|
|
107
107
|
});
|
|
108
|
-
const layerClass = ():
|
|
108
|
+
const layerClass = (): string => ["recharts-polygon", props.class].filter(Boolean).join(" ");
|
|
109
109
|
|
|
110
110
|
// Narrow `points` to a non-empty array via keyed Show (no non-null assertion).
|
|
111
111
|
const validPoints = (): ReadonlyArray<Coordinate> | undefined =>
|
package/src/shape/Rectangle.tsx
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Ported from recharts 3.8.1 src/shape/Rectangle.tsx (commit 7a23854).
|
|
5
5
|
* Pure `getRectanglePath` copied verbatim. Solid deviations: `className` →
|
|
6
6
|
* `class` (Omit the wide SVG `class`); destructuring defaults → `?? default`;
|
|
7
|
-
* `clsx` → `class={[...]}`; `return null` → `<Show>`; the radius is rendered as
|
|
7
|
+
* `clsx` → `class={[...].filter(Boolean).join(" ")}`; `return null` → `<Show>`; the radius is rendered as
|
|
8
8
|
* a number-or-undefined attribute (overriding the spread).
|
|
9
9
|
*
|
|
10
10
|
* The update-animation path (`isUpdateAnimationActive`) is WIRED: it drives
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* (e.g. Bar's rectangles) stays static — wiring is regression-safe.
|
|
15
15
|
*/
|
|
16
16
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
17
|
-
import {
|
|
18
|
-
import type { JSX } from "
|
|
17
|
+
import { createSignal, Show, untrack, splitProps, createEffect, on } from "solid-js";
|
|
18
|
+
import type { JSX } from "solid-js";
|
|
19
19
|
import type { AnimationDuration } from "../util/types";
|
|
20
20
|
import type { EasingInput } from "../animation/easing";
|
|
21
21
|
import { svgPropertiesAndEvents } from "../util/svgPropertiesAndEvents";
|
|
@@ -154,14 +154,14 @@ export const Rectangle = (props: RectangleProps): JSX.Element => {
|
|
|
154
154
|
const animationEasing = (): EasingInput => props.animationEasing ?? "ease";
|
|
155
155
|
const animationBegin = (): number => props.animationBegin ?? 0;
|
|
156
156
|
|
|
157
|
-
const layerClass = ():
|
|
157
|
+
const layerClass = (): string => ["recharts-rectangle", props.class].filter(Boolean).join(" ");
|
|
158
158
|
|
|
159
159
|
// recharts renders x/y/width/height/radius on the <path> (React allows extra
|
|
160
160
|
// attrs). Solid's PathSVGAttributes is stricter, so route them through the
|
|
161
161
|
// (loosely-typed) svgPropertiesAndEvents spread rather than explicit attrs.
|
|
162
162
|
// `radius` is rendered only when it's a number (array radius → undefined).
|
|
163
163
|
const basePathProps = (): Record<string, unknown> => ({
|
|
164
|
-
...
|
|
164
|
+
...splitProps(props, ["class", "style"])[1],
|
|
165
165
|
radius: typeof radius() === "number" ? radius() : undefined,
|
|
166
166
|
});
|
|
167
167
|
|
|
@@ -178,21 +178,23 @@ export const Rectangle = (props: RectangleProps): JSX.Element => {
|
|
|
178
178
|
pathEl = el;
|
|
179
179
|
};
|
|
180
180
|
createEffect(
|
|
181
|
-
(
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
181
|
+
on(
|
|
182
|
+
() => ({ x: x(), y: y(), width: width(), height: height(), radius: radius() }),
|
|
183
|
+
() => {
|
|
184
|
+
if (pathEl?.getTotalLength == null) {
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
let len = 0;
|
|
188
|
+
try {
|
|
189
|
+
len = pathEl.getTotalLength();
|
|
190
|
+
} catch {
|
|
191
|
+
return; // getTotalLength can throw on detached/empty paths — keep the last value.
|
|
192
|
+
}
|
|
193
|
+
if (len) {
|
|
194
|
+
setTotalLength(len);
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
),
|
|
196
198
|
);
|
|
197
199
|
|
|
198
200
|
const animationId = useAnimationId(
|
package/src/shape/Sector.tsx
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* Ported from recharts 3.8.1 src/shape/Sector.tsx (commit 7a23854).
|
|
5
5
|
* Pure geometry helpers copied verbatim. Solid deviations: `resolveDefaultProps`
|
|
6
6
|
* → per-prop `?? default` accessors; `className` → `class` (Omit the wide SVG
|
|
7
|
-
* `class`); `clsx` → `class={[...]}`; `return null` → `<Show>`.
|
|
7
|
+
* `class`); `clsx` → `class={[...].filter(Boolean).join(" ")}`; `return null` → `<Show>`.
|
|
8
8
|
*/
|
|
9
9
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
10
|
-
import { Show,
|
|
11
|
-
import type { JSX } from "
|
|
10
|
+
import { Show, splitProps } from "solid-js";
|
|
11
|
+
import type { JSX } from "solid-js";
|
|
12
12
|
import { GeometrySector, GeometrySectorWithCornerRadius } from "../util/types";
|
|
13
13
|
import { polarToCartesian, RADIAN } from "../util/PolarUtils";
|
|
14
14
|
import { getPercentValue, mathSign } from "../util/DataUtils";
|
|
@@ -280,7 +280,7 @@ export const Sector = (props: SectorProps): JSX.Element => {
|
|
|
280
280
|
};
|
|
281
281
|
|
|
282
282
|
const passthrough = (): Record<string, unknown> => ({
|
|
283
|
-
...
|
|
283
|
+
...splitProps(props, ["class"])[1],
|
|
284
284
|
cx: cx(),
|
|
285
285
|
cy: cy(),
|
|
286
286
|
innerRadius: innerRadius(),
|
|
@@ -296,7 +296,7 @@ export const Sector = (props: SectorProps): JSX.Element => {
|
|
|
296
296
|
<Show when={valid()}>
|
|
297
297
|
<path
|
|
298
298
|
{...svgPropertiesAndEvents(passthrough())}
|
|
299
|
-
class={["recharts-sector", props.class]}
|
|
299
|
+
class={["recharts-sector", props.class].filter(Boolean).join(" ")}
|
|
300
300
|
d={path()}
|
|
301
301
|
/>
|
|
302
302
|
</Show>
|
package/src/shape/Symbols.tsx
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* Ported from recharts 3.8.1 src/shape/Symbols.tsx (commit 7a23854).
|
|
5
5
|
* Pure d3-shape symbol math copied verbatim. Solid deviations: `className` →
|
|
6
6
|
* `class` (Omit the wide SVG `class`); destructuring defaults → `?? default`
|
|
7
|
-
* accessors; `clsx` → `class={[...]}`; `return null` → `<Show>`; the
|
|
7
|
+
* accessors; `clsx` → `class={[...].filter(Boolean).join(" ")}`; `return null` → `<Show>`; the
|
|
8
8
|
* `registerSymbol` static is attached via `Object.assign` (no `as`).
|
|
9
9
|
*/
|
|
10
10
|
import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
|
|
11
|
-
import { Show,
|
|
12
|
-
import type { JSX } from "
|
|
11
|
+
import { Show, splitProps } from "solid-js";
|
|
12
|
+
import type { JSX } from "solid-js";
|
|
13
13
|
import {
|
|
14
14
|
symbol as shapeSymbol,
|
|
15
15
|
symbolCircle,
|
|
@@ -123,7 +123,7 @@ const SymbolsComponent = (props: SymbolsProps): JSX.Element => {
|
|
|
123
123
|
};
|
|
124
124
|
|
|
125
125
|
const passthrough = (): Record<string, unknown> => ({
|
|
126
|
-
...
|
|
126
|
+
...splitProps(props, ["class", "type", "size", "sizeType"])[1],
|
|
127
127
|
type: type(),
|
|
128
128
|
size: size(),
|
|
129
129
|
sizeType: sizeType(),
|
|
@@ -133,7 +133,7 @@ const SymbolsComponent = (props: SymbolsProps): JSX.Element => {
|
|
|
133
133
|
<Show when={isNumber(props.cx) && isNumber(props.cy) && isNumber(size())}>
|
|
134
134
|
<path
|
|
135
135
|
{...svgPropertiesAndEvents(passthrough())}
|
|
136
|
-
class={["recharts-symbols", props.class]}
|
|
136
|
+
class={["recharts-symbols", props.class].filter(Boolean).join(" ")}
|
|
137
137
|
transform={`translate(${props.cx}, ${props.cy})`}
|
|
138
138
|
d={getPath()}
|
|
139
139
|
/>
|