@octanejs/recharts 0.1.40 → 0.1.42
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/{LICENSE → LICENSE.recharts} +3 -2
- package/README.md +12 -0
- package/package.json +10 -9
- package/src/animation/AnimatedItems.tsrx +36 -3
- package/src/animation/AnimationController.ts +17 -65
- package/src/animation/{AnimationControllerImpl.js → AnimationControllerImpl.ts} +19 -12
- package/src/animation/{AnimationHandle.js → AnimationHandle.ts} +82 -65
- package/src/animation/CSSTransitionAnimate.tsrx +3 -2
- package/src/animation/JavascriptAnimate.tsrx +18 -2
- package/src/animation/easing.ts +235 -0
- package/src/animation/{matchBy.js → matchBy.ts} +76 -120
- package/src/animation/timeoutController.ts +71 -0
- package/src/animation/useAnimationController.ts +4 -1
- package/src/animation/useAnimationStartSnapshot.ts +3 -3
- package/src/animation/util.ts +12 -0
- package/src/cartesian/Area.tsrx +33 -31
- package/src/cartesian/AreaRevealShape.tsrx +4 -3
- package/src/cartesian/Bar.ts +1 -0
- package/src/cartesian/Bar.tsrx +293 -39
- package/src/cartesian/BarStack.tsrx +31 -9
- package/src/cartesian/CartesianAxis.tsrx +154 -22
- package/src/cartesian/CartesianGrid.tsrx +5 -6
- package/src/cartesian/ErrorBar.tsrx +9 -8
- package/src/cartesian/Funnel.tsrx +40 -37
- package/src/cartesian/GraphicalItemClipPath.tsrx +11 -4
- package/src/cartesian/Line.ts +1 -0
- package/src/cartesian/Line.tsrx +206 -28
- package/src/cartesian/LineDrawShape.tsrx +23 -10
- package/src/cartesian/ReferenceLine.tsrx +8 -8
- package/src/cartesian/Scatter.tsrx +61 -66
- package/src/cartesian/XAxis.tsrx +78 -9
- package/src/cartesian/YAxis.tsrx +85 -12
- package/src/cartesian/getCartesianPosition.ts +265 -0
- package/src/cartesian/getEquidistantTicks.ts +144 -0
- package/src/cartesian/getTicks.ts +221 -0
- package/src/chart/AreaChart.tsrx +5 -1
- package/src/chart/BarChart.tsrx +8 -2
- package/src/chart/CartesianChart.tsrx +17 -4
- package/src/chart/CategoricalChart.tsrx +4 -1
- package/src/chart/ComposedChart.tsrx +5 -1
- package/src/chart/FunnelChart.tsrx +5 -1
- package/src/chart/LineChart.tsrx +8 -2
- package/src/chart/PieChart.tsrx +6 -2
- package/src/chart/PolarChart.tsrx +5 -4
- package/src/chart/RadarChart.tsrx +6 -2
- package/src/chart/RadialBarChart.tsrx +6 -2
- package/src/chart/RechartsWrapper.tsrx +57 -21
- package/src/chart/Sankey.tsrx +89 -91
- package/src/chart/ScatterChart.tsrx +5 -1
- package/src/chart/SunburstChart.tsrx +21 -14
- package/src/chart/types.ts +0 -1
- package/src/component/ActivePoints.tsrx +30 -5
- package/src/component/Cell.ts +19 -1
- package/src/component/Cursor.tsrx +11 -10
- package/src/component/DefaultLegendContent.tsrx +15 -10
- package/src/component/DefaultTooltipContent.tsrx +11 -9
- package/src/component/Dots.tsrx +37 -6
- package/src/component/Label.tsrx +99 -19
- package/src/component/LabelList.tsrx +54 -5
- package/src/component/Legend.tsrx +9 -5
- package/src/component/ResponsiveContainer.tsrx +13 -10
- package/src/component/Text.tsrx +95 -32
- package/src/component/Tooltip.tsrx +11 -10
- package/src/component/TooltipBoundingBox.tsrx +4 -5
- package/src/component/{responsiveContainerUtils.js → responsiveContainerUtils.ts} +59 -36
- package/src/container/ClipPathProvider.tsrx +6 -2
- package/src/container/Layer.tsrx +8 -1
- package/src/container/RootSurface.tsrx +15 -4
- package/src/container/Surface.tsrx +15 -1
- package/src/context/CellsContext.ts +6 -5
- package/src/context/ErrorBarContext.tsrx +23 -4
- package/src/context/RegisterGraphicalItemId.tsrx +10 -2
- package/src/context/accessibilityContext.ts +5 -0
- package/src/context/brushUpdateContext.ts +11 -0
- package/src/context/chartDataContext.ts +5 -4
- package/src/context/chartLayoutContext.ts +22 -8
- package/src/context/legendPayloadContext.tsrx +1 -1
- package/src/context/tooltipContext.ts +83 -0
- package/src/{hooks.js → hooks.ts} +88 -66
- package/src/index.ts +37 -37
- package/src/internal.ts +4 -20
- package/src/legacy-props.ts +129 -0
- package/src/polar/Pie.tsrx +91 -69
- package/src/polar/PolarAngleAxis.tsrx +47 -47
- package/src/polar/PolarGrid.tsrx +7 -6
- package/src/polar/PolarRadiusAxis.tsrx +29 -21
- package/src/polar/Radar.tsrx +26 -19
- package/src/polar/RadialBar.tsrx +59 -42
- package/src/polar/{defaultPolarAngleAxisProps.js → defaultPolarAngleAxisProps.ts} +6 -6
- package/src/polar/{defaultPolarRadiusAxisProps.js → defaultPolarRadiusAxisProps.ts} +5 -4
- package/src/shape/Cross.tsrx +14 -2
- package/src/shape/Curve.tsrx +111 -23
- package/src/shape/Dot.tsrx +12 -1
- package/src/shape/Polygon.tsrx +28 -6
- package/src/shape/Rectangle.tsrx +30 -3
- package/src/shape/Sector.tsrx +48 -6
- package/src/shape/Symbols.tsrx +24 -6
- package/src/shape/Trapezoid.tsrx +33 -3
- package/src/state/RechartsStoreProvider.tsrx +11 -2
- package/src/state/ReportChartProps.ts +2 -2
- package/src/state/ReportMainChartProps.ts +2 -1
- package/src/state/SetGraphicalItem.ts +6 -4
- package/src/state/SetLegendPayload.ts +7 -4
- package/src/state/SetTooltipEntrySettings.ts +5 -2
- package/src/state/brushSlice.ts +40 -0
- package/src/state/cartesianAxisSlice.ts +291 -0
- package/src/state/chartDataSlice.ts +87 -0
- package/src/state/errorBarSlice.ts +78 -0
- package/src/state/eventSettingsSlice.ts +30 -0
- package/src/state/{externalEventsMiddleware.js → externalEventsMiddleware.ts} +55 -34
- package/src/state/graphicalItemsSlice.ts +180 -0
- package/src/state/{keyboardEventsMiddleware.js → keyboardEventsMiddleware.ts} +72 -57
- package/src/state/layoutSlice.ts +50 -0
- package/src/state/legendSlice.ts +109 -0
- package/src/state/{mouseEventsMiddleware.js → mouseEventsMiddleware.ts} +45 -35
- package/src/state/optionsSlice.ts +65 -0
- package/src/state/polarAxisSlice.ts +42 -0
- package/src/state/polarOptionsSlice.ts +43 -0
- package/src/state/reduxDevtoolsJsonStringifyReplacer.ts +13 -0
- package/src/state/referenceElementsSlice.ts +100 -0
- package/src/state/renderedTicksSlice.ts +60 -0
- package/src/state/rootPropsSlice.ts +72 -0
- package/src/state/selectors/areaSelectors.ts +1 -2
- package/src/state/selectors/{arrayEqualityCheck.js → arrayEqualityCheck.ts} +4 -5
- package/src/state/selectors/axisSelectors.ts +2502 -0
- package/src/state/selectors/barSelectors.ts +373 -0
- package/src/state/selectors/barStackSelectors.ts +99 -0
- package/src/state/selectors/brushSelectors.ts +28 -0
- package/src/state/selectors/combiners/combineActiveLabel.ts +16 -0
- package/src/state/selectors/combiners/{combineActiveTooltipIndex.js → combineActiveTooltipIndex.ts} +45 -23
- package/src/state/selectors/combiners/combineAllBarPositions.ts +130 -0
- package/src/state/selectors/combiners/combineAxisRangeWithReverse.ts +16 -0
- package/src/state/selectors/combiners/combineBarPosition.ts +23 -0
- package/src/state/selectors/combiners/combineBarSizeList.ts +79 -0
- package/src/state/selectors/combiners/{combineCheckedDomain.js → combineCheckedDomain.ts} +9 -6
- package/src/state/selectors/combiners/combineConfiguredScale.ts +100 -0
- package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.ts +46 -0
- package/src/state/selectors/combiners/{combineDisplayedStackedData.js → combineDisplayedStackedData.ts} +23 -19
- package/src/state/selectors/combiners/combineInverseScaleFunction.ts +16 -0
- package/src/state/selectors/combiners/{combineRealScaleType.js → combineRealScaleType.ts} +16 -8
- package/src/state/selectors/combiners/combineStackedData.ts +27 -0
- package/src/state/selectors/combiners/combineTooltipInteractionState.ts +86 -0
- package/src/state/selectors/combiners/combineTooltipPayload.ts +201 -0
- package/src/state/selectors/combiners/{combineTooltipPayloadConfigurations.js → combineTooltipPayloadConfigurations.ts} +17 -18
- package/src/state/selectors/containerSelectors.ts +12 -0
- package/src/state/selectors/{dataSelectors.js → dataSelectors.ts} +43 -41
- package/src/state/selectors/funnelSelectors.ts +5 -5
- package/src/state/selectors/graphicalItemSelectors.ts +22 -0
- package/src/state/selectors/legendSelectors.ts +25 -0
- package/src/state/selectors/lineSelectors.ts +159 -0
- package/src/state/selectors/numberDomainEqualityCheck.ts +15 -0
- package/src/state/selectors/pickAxisId.ts +6 -0
- package/src/state/selectors/pickAxisType.ts +4 -0
- package/src/state/selectors/pieSelectors.ts +14 -13
- package/src/state/selectors/polarAxisSelectors.ts +223 -0
- package/src/state/selectors/polarSelectors.ts +1 -1
- package/src/state/selectors/radarSelectors.ts +1 -1
- package/src/state/selectors/radialBarSelectors.ts +17 -16
- package/src/state/selectors/rootPropsSelectors.ts +26 -0
- package/src/state/selectors/scatterSelectors.ts +11 -10
- package/src/state/selectors/{selectActivePropsFromChartPointer.js → selectActivePropsFromChartPointer.ts} +11 -4
- package/src/state/selectors/selectAllAxes.ts +20 -0
- package/src/state/selectors/selectChartOffset.ts +17 -0
- package/src/state/selectors/selectChartOffsetInternal.ts +147 -0
- package/src/state/selectors/{selectPlotArea.js → selectPlotArea.ts} +4 -3
- package/src/state/selectors/selectTooltipAxisId.ts +6 -0
- package/src/state/selectors/{selectTooltipAxisType.js → selectTooltipAxisType.ts} +10 -4
- package/src/state/selectors/selectTooltipEventType.ts +39 -0
- package/src/state/selectors/selectTooltipPayloadSearcher.ts +6 -0
- package/src/state/selectors/selectTooltipSettings.ts +6 -0
- package/src/state/selectors/selectTooltipState.ts +5 -0
- package/src/state/selectors/selectors.ts +315 -0
- package/src/state/selectors/tooltipSelectors.ts +611 -0
- package/src/state/selectors/touchSelectors.ts +52 -0
- package/src/state/{store.js → store.ts} +46 -36
- package/src/state/tooltipSlice.ts +507 -0
- package/src/state/{touchEventsMiddleware.js → touchEventsMiddleware.ts} +54 -42
- package/src/state/types/AreaSettings.ts +15 -0
- package/src/state/types/BarSettings.ts +15 -0
- package/src/state/types/LineSettings.ts +10 -0
- package/src/state/types/PieSettings.ts +32 -0
- package/src/state/types/RadarSettings.ts +6 -0
- package/src/state/types/RadialBarSettings.ts +10 -0
- package/src/state/types/ScatterSettings.ts +13 -0
- package/src/state/types/StackedGraphicalItem.ts +34 -0
- package/src/state/zIndexSlice.ts +137 -0
- package/src/synchronisation/syncSelectors.ts +7 -0
- package/src/synchronisation/types.ts +42 -0
- package/src/synchronisation/useChartSynchronisation.tsrx +26 -11
- package/src/types.ts +55 -0
- package/src/util/ActiveShapeUtils.tsrx +34 -10
- package/src/util/BarUtils.tsrx +43 -3
- package/src/util/{CartesianUtils.js → CartesianUtils.ts} +22 -39
- package/src/util/ChartUtils.ts +759 -0
- package/src/util/{Constants.js → Constants.ts} +6 -6
- package/src/util/DOMUtils.ts +135 -0
- package/src/util/{DataUtils.js → DataUtils.ts} +120 -47
- package/src/util/Events.ts +22 -0
- package/src/util/FunnelUtils.tsrx +3 -3
- package/src/util/Global.ts +13 -0
- package/src/util/IfOverflow.ts +16 -0
- package/src/util/LRUCache.ts +42 -0
- package/src/util/{LogUtils.js → LogUtils.ts} +7 -12
- package/src/util/OctaneTypes.ts +51 -0
- package/src/util/PolarUtils.ts +132 -0
- package/src/util/RadialBarUtils.tsrx +3 -3
- package/src/util/ReduceCSSCalc.ts +186 -0
- package/src/util/ScatterUtils.tsrx +9 -7
- package/src/util/{TickUtils.js → TickUtils.ts} +30 -13
- package/src/util/{YAxisUtils.js → YAxisUtils.ts} +27 -17
- package/src/util/axisPropsAreEqual.ts +49 -0
- package/src/util/createEventProxy.ts +20 -0
- package/src/util/{excludeEventProps.js → excludeEventProps.ts} +8 -6
- package/src/util/getActiveCoordinate.ts +210 -0
- package/src/util/{getAxisTypeBasedOnLayout.js → getAxisTypeBasedOnLayout.ts} +7 -3
- package/src/util/getClassNameFromUnknown.ts +7 -0
- package/src/util/{getEveryNth.js → getEveryNth.ts} +5 -6
- package/src/util/getRadiusAndStrokeWidthFromDot.ts +31 -0
- package/src/util/{getRelativeCoordinate.js → getRelativeCoordinate.ts} +26 -9
- package/src/util/getSliced.ts +14 -0
- package/src/util/{isDomainSpecifiedByUser.js → isDomainSpecifiedByUser.ts} +46 -100
- package/src/util/isWellBehavedNumber.ts +8 -0
- package/src/util/payload/getUniqPayload.ts +1 -1
- package/src/util/{propsAreEqual.js → propsAreEqual.ts} +10 -8
- package/src/util/{resolveDefaultProps.js → resolveDefaultProps.ts} +35 -57
- package/src/util/round.ts +33 -0
- package/src/util/scale/CustomScaleDefinition.ts +82 -0
- package/src/util/scale/RechartsScale.ts +131 -0
- package/src/util/scale/{createCategoricalInverse.js → createCategoricalInverse.ts} +24 -29
- package/src/util/scale/{getNiceTickValues.js → getNiceTickValues.ts} +125 -146
- package/src/util/scale/index.ts +2 -0
- package/src/util/scale/util/{arithmetic.js → arithmetic.ts} +12 -8
- package/src/util/stacks/getStackSeriesIdentifier.ts +21 -0
- package/src/util/stacks/stackTypes.ts +58 -0
- package/src/util/{svgPropertiesNoEvents.js → svgPropertiesNoEvents.ts} +52 -27
- package/src/util/tooltip/translate.ts +2 -1
- package/src/util/typedDataKey.ts +49 -0
- package/src/util/types.ts +1265 -7
- package/src/util/{useUniqueId.js → useUniqueId.ts} +9 -5
- package/src/zIndex/{DefaultZIndexes.js → DefaultZIndexes.ts} +13 -4
- package/src/zIndex/ZIndexLayer.tsrx +13 -4
- package/src/zIndex/ZIndexPortal.tsrx +14 -4
- package/src/zIndex/{getZIndexFromUnknown.js → getZIndexFromUnknown.ts} +3 -3
- package/src/zIndex/{zIndexSelectors.js → zIndexSelectors.ts} +17 -11
- package/src/animation/easing.js +0 -193
- package/src/animation/timeoutController.js +0 -49
- package/src/animation/util.js +0 -11
- package/src/cartesian/Area.tsrx.d.ts +0 -340
- package/src/cartesian/Bar.tsrx.d.ts +0 -4
- package/src/cartesian/BarStack.tsrx.d.ts +0 -6
- package/src/cartesian/CartesianAxis.tsrx.d.ts +0 -3
- package/src/cartesian/CartesianGrid.tsrx.d.ts +0 -219
- package/src/cartesian/ErrorBar.tsrx.d.ts +0 -131
- package/src/cartesian/Funnel.tsrx.d.ts +0 -274
- package/src/cartesian/Line.tsrx.d.ts +0 -4
- package/src/cartesian/LineDrawShape.tsrx.d.ts +0 -2
- package/src/cartesian/ReferenceLine.tsrx.d.ts +0 -178
- package/src/cartesian/Scatter.tsrx.d.ts +0 -351
- package/src/cartesian/XAxis.tsrx.d.ts +0 -3
- package/src/cartesian/YAxis.tsrx.d.ts +0 -3
- package/src/cartesian/ZAxis.tsrx.d.ts +0 -102
- package/src/cartesian/getCartesianPosition.js +0 -277
- package/src/cartesian/getEquidistantTicks.js +0 -133
- package/src/cartesian/getTicks.js +0 -280
- package/src/chart/AreaChart.tsrx.d.ts +0 -12
- package/src/chart/BarChart.tsrx.d.ts +0 -2
- package/src/chart/CartesianChart.tsrx.d.ts +0 -10
- package/src/chart/ComposedChart.tsrx.d.ts +0 -12
- package/src/chart/FunnelChart.tsrx.d.ts +0 -12
- package/src/chart/LineChart.tsrx.d.ts +0 -2
- package/src/chart/PieChart.tsrx.d.ts +0 -31
- package/src/chart/RadarChart.tsrx.d.ts +0 -31
- package/src/chart/RadialBarChart.tsrx.d.ts +0 -31
- package/src/chart/Sankey.tsrx.d.ts +0 -253
- package/src/chart/ScatterChart.tsrx.d.ts +0 -12
- package/src/chart/SunburstChart.tsrx.d.ts +0 -146
- package/src/component/DefaultLegendContent.tsrx.d.ts +0 -125
- package/src/component/DefaultTooltipContent.tsrx.d.ts +0 -87
- package/src/component/Label.tsrx.d.ts +0 -12
- package/src/component/LabelList.tsrx.d.ts +0 -8
- package/src/component/Legend.tsrx.d.ts +0 -88
- package/src/component/ResponsiveContainer.tsrx.d.ts +0 -81
- package/src/component/Text.tsrx.d.ts +0 -9
- package/src/component/Tooltip.tsrx.d.ts +0 -246
- package/src/container/Layer.tsrx.d.ts +0 -6
- package/src/container/Surface.tsrx.d.ts +0 -12
- package/src/context/accessibilityContext.js +0 -10
- package/src/context/tooltipContext.js +0 -55
- package/src/index.d.ts +0 -281
- package/src/polar/Pie.tsrx.d.ts +0 -436
- package/src/polar/PolarAngleAxis.tsrx.d.ts +0 -215
- package/src/polar/PolarGrid.tsrx.d.ts +0 -117
- package/src/polar/PolarRadiusAxis.tsrx.d.ts +0 -209
- package/src/polar/Radar.tsrx.d.ts +0 -215
- package/src/polar/RadialBar.tsrx.d.ts +0 -340
- package/src/shape/Cross.tsrx.d.ts +0 -12
- package/src/shape/Curve.tsrx.d.ts +0 -42
- package/src/shape/Dot.tsrx.d.ts +0 -9
- package/src/shape/Polygon.tsrx.d.ts +0 -13
- package/src/shape/Rectangle.tsrx.d.ts +0 -31
- package/src/shape/Sector.tsrx.d.ts +0 -29
- package/src/shape/Symbols.tsrx.d.ts +0 -15
- package/src/shape/Trapezoid.tsrx.d.ts +0 -29
- package/src/state/brushSlice.js +0 -36
- package/src/state/cartesianAxisSlice.js +0 -256
- package/src/state/chartDataSlice.js +0 -67
- package/src/state/errorBarSlice.js +0 -53
- package/src/state/eventSettingsSlice.js +0 -25
- package/src/state/graphicalItemsSlice.js +0 -91
- package/src/state/layoutSlice.js +0 -57
- package/src/state/legendSlice.js +0 -83
- package/src/state/optionsSlice.js +0 -45
- package/src/state/polarAxisSlice.js +0 -33
- package/src/state/polarOptionsSlice.js +0 -26
- package/src/state/reduxDevtoolsJsonStringifyReplacer.js +0 -14
- package/src/state/referenceElementsSlice.js +0 -51
- package/src/state/renderedTicksSlice.js +0 -41
- package/src/state/rootPropsSlice.js +0 -48
- package/src/state/selectors/axisSelectors.js +0 -2113
- package/src/state/selectors/barSelectors.js +0 -263
- package/src/state/selectors/barStackSelectors.js +0 -65
- package/src/state/selectors/brushSelectors.js +0 -21
- package/src/state/selectors/combiners/combineActiveLabel.js +0 -18
- package/src/state/selectors/combiners/combineAllBarPositions.js +0 -169
- package/src/state/selectors/combiners/combineAxisRangeWithReverse.js +0 -11
- package/src/state/selectors/combiners/combineBarPosition.js +0 -17
- package/src/state/selectors/combiners/combineBarSizeList.js +0 -115
- package/src/state/selectors/combiners/combineConfiguredScale.js +0 -46
- package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.js +0 -48
- package/src/state/selectors/combiners/combineInverseScaleFunction.js +0 -12
- package/src/state/selectors/combiners/combineStackedData.js +0 -22
- package/src/state/selectors/combiners/combineTooltipInteractionState.js +0 -121
- package/src/state/selectors/combiners/combineTooltipPayload.js +0 -248
- package/src/state/selectors/containerSelectors.js +0 -6
- package/src/state/selectors/graphicalItemSelectors.js +0 -25
- package/src/state/selectors/legendSelectors.js +0 -18
- package/src/state/selectors/lineSelectors.js +0 -106
- package/src/state/selectors/numberDomainEqualityCheck.js +0 -11
- package/src/state/selectors/pickAxisId.js +0 -3
- package/src/state/selectors/pickAxisType.js +0 -3
- package/src/state/selectors/polarAxisSelectors.js +0 -237
- package/src/state/selectors/rootPropsSelectors.js +0 -13
- package/src/state/selectors/selectAllAxes.js +0 -15
- package/src/state/selectors/selectChartOffset.js +0 -12
- package/src/state/selectors/selectChartOffsetInternal.js +0 -174
- package/src/state/selectors/selectTooltipAxisId.js +0 -3
- package/src/state/selectors/selectTooltipEventType.js +0 -27
- package/src/state/selectors/selectTooltipPayloadSearcher.js +0 -3
- package/src/state/selectors/selectTooltipSettings.js +0 -3
- package/src/state/selectors/selectTooltipState.js +0 -3
- package/src/state/selectors/selectors.js +0 -222
- package/src/state/selectors/tooltipSelectors.js +0 -471
- package/src/state/selectors/touchSelectors.js +0 -31
- package/src/state/tooltipSlice.js +0 -237
- package/src/state/types/StackedGraphicalItem.js +0 -18
- package/src/state/zIndexSlice.js +0 -167
- package/src/synchronisation/syncSelectors.js +0 -5
- package/src/util/ChartUtils.js +0 -630
- package/src/util/DOMUtils.js +0 -180
- package/src/util/Events.js +0 -7
- package/src/util/Global.js +0 -13
- package/src/util/LRUCache.js +0 -58
- package/src/util/PolarUtils.js +0 -190
- package/src/util/ReduceCSSCalc.js +0 -260
- package/src/util/axisPropsAreEqual.js +0 -63
- package/src/util/createEventProxy.js +0 -18
- package/src/util/getActiveCoordinate.js +0 -253
- package/src/util/getClassNameFromUnknown.js +0 -8
- package/src/util/getRadiusAndStrokeWidthFromDot.js +0 -28
- package/src/util/getSliced.js +0 -11
- package/src/util/isWellBehavedNumber.js +0 -8
- package/src/util/round.js +0 -39
- package/src/util/scale/RechartsScale.js +0 -68
- package/src/util/scale/index.js +0 -3
- package/src/util/stacks/getStackSeriesIdentifier.js +0 -10
- package/src/zIndex/ZIndexLayer.tsrx.d.ts +0 -2
package/src/polar/PolarGrid.tsrx
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { FunctionComponent, SVGProps } from '../util/OctaneTypes.ts';
|
|
1
2
|
import { clsx } from 'clsx';
|
|
2
3
|
import * as React from 'octane';
|
|
3
|
-
|
|
4
|
+
|
|
4
5
|
import { polarToCartesian } from '../util/PolarUtils';
|
|
5
6
|
import { AxisId } from '../state/cartesianAxisSlice';
|
|
6
7
|
import { useAppSelector } from '../state/hooks';
|
|
@@ -8,7 +9,7 @@ import { selectPolarGridAngles, selectPolarGridRadii } from '../state/selectors/
|
|
|
8
9
|
import { selectPolarViewBox } from '../state/selectors/polarAxisSelectors';
|
|
9
10
|
import { PolarViewBoxRequired } from '../util/types';
|
|
10
11
|
import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
|
|
11
|
-
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';
|
|
12
|
+
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer.tsrx';
|
|
12
13
|
import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
|
|
13
14
|
import { resolveDefaultProps } from '../util/resolveDefaultProps';
|
|
14
15
|
|
|
@@ -107,7 +108,7 @@ interface PolarGridProps extends ZIndexable {
|
|
|
107
108
|
fillOpacity?: number | string;
|
|
108
109
|
}
|
|
109
110
|
|
|
110
|
-
export type Props = SVGProps<SVGLineElement> & PolarGridProps;
|
|
111
|
+
export type Props = Omit<SVGProps<SVGLineElement>, 'ref'> & PolarGridProps;
|
|
111
112
|
|
|
112
113
|
type PropsWithDefaults =
|
|
113
114
|
Props & {
|
|
@@ -148,7 +149,7 @@ const getPolygonPath = (
|
|
|
148
149
|
};
|
|
149
150
|
|
|
150
151
|
// Draw axis of radial line
|
|
151
|
-
const PolarAngles:
|
|
152
|
+
const PolarAngles: FunctionComponent<PropsWithDefaults> = (props: PropsWithDefaults) => {
|
|
152
153
|
const { cx, cy, innerRadius, outerRadius, polarAngles, radialLines } = props;
|
|
153
154
|
|
|
154
155
|
if (!polarAngles || !polarAngles.length || !radialLines) {
|
|
@@ -174,7 +175,7 @@ const PolarAngles: React.FC<PropsWithDefaults> = (props: PropsWithDefaults) => {
|
|
|
174
175
|
};
|
|
175
176
|
|
|
176
177
|
// Draw concentric circles
|
|
177
|
-
const ConcentricCircle:
|
|
178
|
+
const ConcentricCircle: FunctionComponent<ConcentricProps> = (props) => {
|
|
178
179
|
const { cx, cy, radius } = props;
|
|
179
180
|
const concentricCircleProps = {
|
|
180
181
|
...svgPropertiesNoEvents(props),
|
|
@@ -193,7 +194,7 @@ const ConcentricCircle: React.FC<ConcentricProps> = (props) => {
|
|
|
193
194
|
};
|
|
194
195
|
|
|
195
196
|
// Draw concentric polygons
|
|
196
|
-
const ConcentricPolygon:
|
|
197
|
+
const ConcentricPolygon: FunctionComponent<ConcentricProps> = (props: ConcentricProps) => {
|
|
197
198
|
const { radius } = props;
|
|
198
199
|
const concentricPolygonProps = {
|
|
199
200
|
...svgPropertiesNoEvents(props),
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
FunctionComponent,
|
|
3
|
+
NativeMouseEvent,
|
|
4
|
+
OctaneElement,
|
|
5
|
+
OctaneNode,
|
|
6
|
+
SVGProps,
|
|
7
|
+
} from '../util/OctaneTypes.ts';
|
|
1
8
|
import * as React from 'octane';
|
|
2
|
-
import {
|
|
9
|
+
import { useEffect, useMemo } from 'octane';
|
|
3
10
|
import maxBy from 'es-toolkit/compat/maxBy';
|
|
4
11
|
import minBy from 'es-toolkit/compat/minBy';
|
|
5
12
|
|
|
6
13
|
import { clsx } from 'clsx';
|
|
7
|
-
import { Text } from '../component/Text';
|
|
8
|
-
import { PolarLabelContextProvider, PolarLabelFromLabelProp } from '../component/Label';
|
|
9
|
-
import { Layer } from '../container/Layer';
|
|
14
|
+
import { Text } from '../component/Text.tsrx';
|
|
15
|
+
import { PolarLabelContextProvider, PolarLabelFromLabelProp } from '../component/Label.tsrx';
|
|
16
|
+
import { Layer } from '../container/Layer.tsrx';
|
|
10
17
|
import { polarToCartesian } from '../util/PolarUtils';
|
|
11
18
|
import {
|
|
12
19
|
adaptEventsOfChild,
|
|
@@ -20,7 +27,7 @@ import {
|
|
|
20
27
|
AxisDomainTypeInput,
|
|
21
28
|
EvaluatedAxisDomainType,
|
|
22
29
|
TickProp,
|
|
23
|
-
|
|
30
|
+
PolarTickContentProps,
|
|
24
31
|
AxisTick,
|
|
25
32
|
} from '../util/types';
|
|
26
33
|
import { addRadiusAxis, RadiusAxisSettings, removeRadiusAxis } from '../state/polarAxisSlice';
|
|
@@ -34,7 +41,7 @@ import {
|
|
|
34
41
|
svgPropertiesNoEventsFromUnknown,
|
|
35
42
|
} from '../util/svgPropertiesNoEvents';
|
|
36
43
|
import { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';
|
|
37
|
-
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';
|
|
44
|
+
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer.tsrx';
|
|
38
45
|
import { RechartsScale } from '../util/scale/RechartsScale';
|
|
39
46
|
import type { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';
|
|
40
47
|
import { usePolarChartLayout } from '../context/chartLayoutContext';
|
|
@@ -133,35 +140,35 @@ export interface PolarRadiusAxisProps<DataPointType = any, DataValueType = any>
|
|
|
133
140
|
/**
|
|
134
141
|
* The customized event handler of click on the ticks of this axis
|
|
135
142
|
*/
|
|
136
|
-
onClick?: (data: any, index: number, e:
|
|
143
|
+
onClick?: (data: any, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
137
144
|
/**
|
|
138
145
|
* The customized event handler of mousedown on the ticks of this axis
|
|
139
146
|
*/
|
|
140
|
-
onMouseDown?: (data: any, index: number, e:
|
|
147
|
+
onMouseDown?: (data: any, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
141
148
|
/**
|
|
142
149
|
* The customized event handler of mouseup on the ticks of this axis
|
|
143
150
|
*/
|
|
144
|
-
onMouseUp?: (data: any, index: number, e:
|
|
151
|
+
onMouseUp?: (data: any, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
145
152
|
/**
|
|
146
153
|
* The customized event handler of mousemove on the ticks of this axis
|
|
147
154
|
*/
|
|
148
|
-
onMouseMove?: (data: any, index: number, e:
|
|
155
|
+
onMouseMove?: (data: any, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
149
156
|
/**
|
|
150
157
|
* The customized event handler of mouseover on the ticks of this axis
|
|
151
158
|
*/
|
|
152
|
-
onMouseOver?: (data: any, index: number, e:
|
|
159
|
+
onMouseOver?: (data: any, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
153
160
|
/**
|
|
154
161
|
* The customized event handler of mouseout on the ticks of this axis
|
|
155
162
|
*/
|
|
156
|
-
onMouseOut?: (data: any, index: number, e:
|
|
163
|
+
onMouseOut?: (data: any, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
157
164
|
/**
|
|
158
165
|
* The customized event handler of mouseenter on the ticks of this axis
|
|
159
166
|
*/
|
|
160
|
-
onMouseEnter?: (data: any, index: number, e:
|
|
167
|
+
onMouseEnter?: (data: any, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
161
168
|
/**
|
|
162
169
|
* The customized event handler of mouseleave on the ticks of this axis
|
|
163
170
|
*/
|
|
164
|
-
onMouseLeave?: (data: any, index: number, e:
|
|
171
|
+
onMouseLeave?: (data: any, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
165
172
|
/**
|
|
166
173
|
* Allow the ticks of axis to be decimals or not.
|
|
167
174
|
*
|
|
@@ -190,12 +197,12 @@ export interface PolarRadiusAxisProps<DataPointType = any, DataValueType = any>
|
|
|
190
197
|
* - `false`: Do not render any tick labels.
|
|
191
198
|
* - `true`: Render tick labels with default settings.
|
|
192
199
|
* - `object`: An object of props to be merged into the internally calculated tick props.
|
|
193
|
-
* - `
|
|
200
|
+
* - `OctaneElement`: A custom React element to be used as the tick label.
|
|
194
201
|
* - `function`: A function that returns a React element for custom rendering of tick labels.
|
|
195
202
|
*
|
|
196
203
|
* @defaultValue true
|
|
197
204
|
*/
|
|
198
|
-
tick?: TickProp<
|
|
205
|
+
tick?: TickProp<PolarTickContentProps>;
|
|
199
206
|
ticks?: ReadonlyArray<AxisTick>;
|
|
200
207
|
/**
|
|
201
208
|
* Z-Index of this component and its children. The higher the value,
|
|
@@ -211,7 +218,9 @@ export interface PolarRadiusAxisProps<DataPointType = any, DataValueType = any>
|
|
|
211
218
|
}
|
|
212
219
|
|
|
213
220
|
type AxisSvgProps =
|
|
214
|
-
Omit<PresentationAttributesAdaptChildEvent<any,
|
|
221
|
+
Omit<PresentationAttributesAdaptChildEvent<any, SVGGElement>, 'scale' | 'type' | 'ref'> & {
|
|
222
|
+
ref?: never;
|
|
223
|
+
};
|
|
215
224
|
|
|
216
225
|
export type Props<DataPointType = any, DataValueType = any> =
|
|
217
226
|
AxisSvgProps & PolarRadiusAxisProps<DataPointType, DataValueType>;
|
|
@@ -310,7 +319,7 @@ const getViewBox = (
|
|
|
310
319
|
};
|
|
311
320
|
};
|
|
312
321
|
|
|
313
|
-
const renderAxisLine = (props: InsideProps, ticks: ReadonlyArray<TickItem>):
|
|
322
|
+
const renderAxisLine = (props: InsideProps, ticks: ReadonlyArray<TickItem>): OctaneElement => {
|
|
314
323
|
const { cx, cy, angle, axisLine, ...others } = props;
|
|
315
324
|
const extent: [number, number] = ticks.reduce(
|
|
316
325
|
(result: [number, number], entry: TickItem): [number, number] => [
|
|
@@ -332,7 +341,6 @@ const renderAxisLine = (props: InsideProps, ticks: ReadonlyArray<TickItem>): Rea
|
|
|
332
341
|
y2: point1.y,
|
|
333
342
|
};
|
|
334
343
|
|
|
335
|
-
// @ts-expect-error wrong SVG element type
|
|
336
344
|
return <line className="recharts-polar-radius-axis-line" {...axisLineProps} />;
|
|
337
345
|
};
|
|
338
346
|
|
|
@@ -340,7 +348,7 @@ const renderTickItem = (
|
|
|
340
348
|
option: Props['tick'],
|
|
341
349
|
tickProps: any,
|
|
342
350
|
value: string | number,
|
|
343
|
-
):
|
|
351
|
+
): OctaneNode => {
|
|
344
352
|
let tickItem;
|
|
345
353
|
|
|
346
354
|
if (React.isValidElement(option)) {
|
|
@@ -357,7 +365,7 @@ const renderTickItem = (
|
|
|
357
365
|
return tickItem;
|
|
358
366
|
};
|
|
359
367
|
|
|
360
|
-
const renderTicks = (props: InsideProps, ticks: ReadonlyArray<TickItem>):
|
|
368
|
+
const renderTicks = (props: InsideProps, ticks: ReadonlyArray<TickItem>): OctaneElement => {
|
|
361
369
|
const { angle, tickFormatter, stroke, tick, ...others } = props;
|
|
362
370
|
const textAnchor = getTickTextAnchor(props.orientation);
|
|
363
371
|
const axisProps = svgPropertiesNoEvents(others);
|
package/src/polar/Radar.tsrx
CHANGED
|
@@ -1,20 +1,27 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
MutableRefObject,
|
|
3
|
+
NativeMouseEvent,
|
|
4
|
+
OctaneElement,
|
|
5
|
+
OctaneNode,
|
|
6
|
+
SVGProps,
|
|
7
|
+
} from '../util/OctaneTypes.ts';
|
|
1
8
|
import * as React from 'octane';
|
|
2
|
-
import {
|
|
9
|
+
import { useRef } from 'octane';
|
|
3
10
|
import last from 'es-toolkit/compat/last';
|
|
4
11
|
|
|
5
12
|
import { clsx } from 'clsx';
|
|
6
13
|
import { interpolate, isNullish, noop } from '../util/DataUtils';
|
|
7
14
|
import { polarToCartesian } from '../util/PolarUtils';
|
|
8
15
|
import { getTooltipNameProp, getValueByDataKey } from '../util/ChartUtils';
|
|
9
|
-
import { Polygon } from '../shape/Polygon';
|
|
10
|
-
import { Layer } from '../container/Layer';
|
|
16
|
+
import { Polygon } from '../shape/Polygon.tsrx';
|
|
17
|
+
import { Layer } from '../container/Layer.tsrx';
|
|
11
18
|
import {
|
|
12
19
|
CartesianLabelListContextProvider,
|
|
13
20
|
CartesianLabelListEntry,
|
|
14
21
|
ImplicitLabelListType,
|
|
15
22
|
LabelListFromLabelProp,
|
|
16
|
-
} from '../component/LabelList';
|
|
17
|
-
import { Dots } from '../component/Dots';
|
|
23
|
+
} from '../component/LabelList.tsrx';
|
|
24
|
+
import { Dots } from '../component/Dots.tsrx';
|
|
18
25
|
import {
|
|
19
26
|
ActiveDotType,
|
|
20
27
|
AnimationDuration,
|
|
@@ -27,28 +34,28 @@ import {
|
|
|
27
34
|
TooltipType,
|
|
28
35
|
TrapezoidViewBox,
|
|
29
36
|
} from '../util/types';
|
|
30
|
-
import type { LegendPayload } from '../component/DefaultLegendContent';
|
|
31
|
-
import { ActivePoints } from '../component/ActivePoints';
|
|
37
|
+
import type { LegendPayload } from '../component/DefaultLegendContent.tsrx';
|
|
38
|
+
import { ActivePoints } from '../component/ActivePoints.tsrx';
|
|
32
39
|
import { TooltipPayloadConfiguration } from '../state/tooltipSlice';
|
|
33
40
|
import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
|
|
34
41
|
import { selectRadarPoints } from '../state/selectors/radarSelectors';
|
|
35
42
|
import { useAppSelector } from '../state/hooks';
|
|
36
43
|
import { useIsPanorama } from '../context/PanoramaContext';
|
|
37
44
|
import { SetPolarLegendPayload } from '../state/SetLegendPayload';
|
|
38
|
-
import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
|
|
45
|
+
import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId.tsrx';
|
|
39
46
|
import { SetPolarGraphicalItem } from '../state/SetGraphicalItem';
|
|
40
47
|
import { svgPropertiesNoEvents } from '../util/svgPropertiesNoEvents';
|
|
41
48
|
import {
|
|
42
49
|
AnimatedItems,
|
|
43
50
|
AnimationInterpolateFn,
|
|
44
51
|
useAnimationCallbacks,
|
|
45
|
-
} from '../animation/AnimatedItems';
|
|
52
|
+
} from '../animation/AnimatedItems.tsrx';
|
|
46
53
|
import { AnimationMatchByProp, matchAnimationItems, matchByIndex } from '../animation/matchBy';
|
|
47
54
|
import { useAnimationStartSnapshot } from '../animation/useAnimationStartSnapshot';
|
|
48
55
|
import { svgPropertiesAndEvents } from '../util/svgPropertiesAndEvents';
|
|
49
56
|
import { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';
|
|
50
57
|
import { WithIdRequired } from '../util/useUniqueId';
|
|
51
|
-
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';
|
|
58
|
+
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer.tsrx';
|
|
52
59
|
import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
|
|
53
60
|
import { RechartsScale } from '../util/scale/RechartsScale';
|
|
54
61
|
import { usePolarChartLayout } from '../context/chartLayoutContext';
|
|
@@ -130,7 +137,7 @@ interface RadarProps<DataPointType = any, DataValueType = any> extends ZIndexabl
|
|
|
130
137
|
* - `false`: no dots are drawn;
|
|
131
138
|
* - `true`: renders the dots with default settings;
|
|
132
139
|
* - `object`: the props of the dot. This will be merged with the internal calculated props of each dot;
|
|
133
|
-
* - `
|
|
140
|
+
* - `OctaneElement`: the custom dot element;
|
|
134
141
|
* - `function`: a render function of the custom dot.
|
|
135
142
|
*
|
|
136
143
|
* @defaultValue false
|
|
@@ -152,7 +159,7 @@ interface RadarProps<DataPointType = any, DataValueType = any> extends ZIndexabl
|
|
|
152
159
|
* - `true`: renders default labels;
|
|
153
160
|
* - `false`: no labels are rendered;
|
|
154
161
|
* - `object`: the props of LabelList component;
|
|
155
|
-
* - `
|
|
162
|
+
* - `OctaneElement`: a custom SVG label element, such as `<text>` or `<g>`.
|
|
156
163
|
* HTML elements such as `<div>` are not valid inside the chart SVG and may trigger React DOM warnings.
|
|
157
164
|
* - `function`: a render function of custom label.
|
|
158
165
|
*
|
|
@@ -172,17 +179,17 @@ interface RadarProps<DataPointType = any, DataValueType = any> extends ZIndexabl
|
|
|
172
179
|
* The customized event handler of animation start
|
|
173
180
|
*/
|
|
174
181
|
onAnimationStart?: () => void;
|
|
175
|
-
onMouseEnter?: (props: InternalRadarProps, e:
|
|
176
|
-
onMouseLeave?: (props: InternalRadarProps, e:
|
|
182
|
+
onMouseEnter?: (props: InternalRadarProps, e: NativeMouseEvent<SVGPathElement>) => void;
|
|
183
|
+
onMouseLeave?: (props: InternalRadarProps, e: NativeMouseEvent<SVGPathElement>) => void;
|
|
177
184
|
/**
|
|
178
185
|
* @defaultValue 0
|
|
179
186
|
*/
|
|
180
187
|
radiusAxisId?: string | number;
|
|
181
188
|
/**
|
|
182
|
-
* If set a
|
|
189
|
+
* If set a OctaneElement, the shape of radar can be customized.
|
|
183
190
|
* If set a function, the function will be called to render customized shape.
|
|
184
191
|
*/
|
|
185
|
-
shape?:
|
|
192
|
+
shape?: OctaneElement<SVGElement> | ((props: any) => OctaneElement<SVGElement>);
|
|
186
193
|
tooltipType?: TooltipType;
|
|
187
194
|
/**
|
|
188
195
|
* @defaultValue 100
|
|
@@ -368,7 +375,7 @@ function RadarLabelListProvider({
|
|
|
368
375
|
}: {
|
|
369
376
|
showLabels: boolean;
|
|
370
377
|
points: ReadonlyArray<RadarPoint>;
|
|
371
|
-
children:
|
|
378
|
+
children: OctaneNode;
|
|
372
379
|
}) {
|
|
373
380
|
/*
|
|
374
381
|
* Radar provides a Cartesian label list context. Do we want to also provide a polar label list context?
|
|
@@ -433,7 +440,7 @@ function StaticPolygon({
|
|
|
433
440
|
|
|
434
441
|
const { shape, isRange, connectNulls } = props;
|
|
435
442
|
|
|
436
|
-
const handleMouseEnter = (e:
|
|
443
|
+
const handleMouseEnter = (e: NativeMouseEvent<SVGPathElement>) => {
|
|
437
444
|
const { onMouseEnter } = props;
|
|
438
445
|
|
|
439
446
|
if (onMouseEnter) {
|
|
@@ -441,7 +448,7 @@ function StaticPolygon({
|
|
|
441
448
|
}
|
|
442
449
|
};
|
|
443
450
|
|
|
444
|
-
const handleMouseLeave = (e:
|
|
451
|
+
const handleMouseLeave = (e: NativeMouseEvent<SVGPathElement>) => {
|
|
445
452
|
const { onMouseLeave } = props;
|
|
446
453
|
|
|
447
454
|
if (onMouseLeave) {
|
package/src/polar/RadialBar.tsrx
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
|
+
import type { CellPropsFor } from '../component/Cell';
|
|
2
|
+
import type { RegisteredCell } from '../context/CellsContext.ts';
|
|
3
|
+
|
|
4
|
+
import type {
|
|
5
|
+
ComponentProps,
|
|
6
|
+
MutableRefObject,
|
|
7
|
+
NativeMouseEvent,
|
|
8
|
+
NativeTouchEvent,
|
|
9
|
+
OctaneElement,
|
|
10
|
+
OctaneNode,
|
|
11
|
+
} from '../util/OctaneTypes.ts';
|
|
1
12
|
import * as React from 'octane';
|
|
2
|
-
import {
|
|
13
|
+
import { useRef } from 'octane';
|
|
3
14
|
import { clsx } from 'clsx';
|
|
4
15
|
|
|
5
16
|
import { Series } from 'victory-vendor/d3-shape';
|
|
@@ -8,15 +19,15 @@ import {
|
|
|
8
19
|
parseCornerRadius,
|
|
9
20
|
RadialBarSector,
|
|
10
21
|
RadialBarSectorProps,
|
|
11
|
-
} from '../util/RadialBarUtils';
|
|
12
|
-
import { Props as SectorProps } from '../shape/Sector';
|
|
13
|
-
import { Layer } from '../container/Layer';
|
|
22
|
+
} from '../util/RadialBarUtils.tsrx';
|
|
23
|
+
import { defaultSectorProps, type Props as SectorProps } from '../shape/Sector.tsrx';
|
|
24
|
+
import { Layer } from '../container/Layer.tsrx';
|
|
14
25
|
import {
|
|
15
26
|
ImplicitLabelListType,
|
|
16
27
|
LabelListFromLabelProp,
|
|
17
28
|
PolarLabelListContextProvider,
|
|
18
29
|
PolarLabelListEntry,
|
|
19
|
-
} from '../component/LabelList';
|
|
30
|
+
} from '../component/LabelList.tsrx';
|
|
20
31
|
import { interpolate, mathSign, noop } from '../util/DataUtils';
|
|
21
32
|
import {
|
|
22
33
|
BarPositionPosition,
|
|
@@ -33,9 +44,9 @@ import {
|
|
|
33
44
|
EasingInput,
|
|
34
45
|
DataConsumer,
|
|
35
46
|
DataKey,
|
|
47
|
+
GeometrySector,
|
|
36
48
|
LayoutType,
|
|
37
49
|
LegendType,
|
|
38
|
-
PolarViewBoxRequired,
|
|
39
50
|
PresentationAttributesAdaptChildEvent,
|
|
40
51
|
ShapeAnimationProps,
|
|
41
52
|
TickItem,
|
|
@@ -50,7 +61,7 @@ import {
|
|
|
50
61
|
} from '../context/tooltipContext';
|
|
51
62
|
import { TooltipPayloadConfiguration } from '../state/tooltipSlice';
|
|
52
63
|
import { SetTooltipEntrySettings } from '../state/SetTooltipEntrySettings';
|
|
53
|
-
import { Formatter } from '../component/DefaultTooltipContent';
|
|
64
|
+
import { Formatter } from '../component/DefaultTooltipContent.tsrx';
|
|
54
65
|
import { BaseAxisWithScale } from '../state/selectors/axisSelectors';
|
|
55
66
|
import { ChartData } from '../state/chartDataSlice';
|
|
56
67
|
import {
|
|
@@ -64,10 +75,10 @@ import {
|
|
|
64
75
|
AnimatedItems,
|
|
65
76
|
AnimationInterpolateFn,
|
|
66
77
|
useAnimationCallbacks,
|
|
67
|
-
} from '../animation/AnimatedItems';
|
|
78
|
+
} from '../animation/AnimatedItems.tsrx';
|
|
68
79
|
import { AnimationMatchByProp, matchAppend } from '../animation/matchBy';
|
|
69
80
|
import { AxisId } from '../state/cartesianAxisSlice';
|
|
70
|
-
import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId';
|
|
81
|
+
import { RegisterGraphicalItemId } from '../context/RegisterGraphicalItemId.tsrx';
|
|
71
82
|
import type { RadialBarSettings } from '../state/types/RadialBarSettings';
|
|
72
83
|
import { SetPolarGraphicalItem } from '../state/SetGraphicalItem';
|
|
73
84
|
import {
|
|
@@ -76,7 +87,7 @@ import {
|
|
|
76
87
|
} from '../util/svgPropertiesNoEvents';
|
|
77
88
|
import { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';
|
|
78
89
|
import { WithIdRequired } from '../util/useUniqueId';
|
|
79
|
-
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';
|
|
90
|
+
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer.tsrx';
|
|
80
91
|
import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
|
|
81
92
|
import { getZIndexFromUnknown } from '../zIndex/getZIndexFromUnknown';
|
|
82
93
|
import { usePolarChartLayout } from '../context/chartLayoutContext';
|
|
@@ -85,7 +96,7 @@ import { CellsContext, useCellRegistry } from '../context/CellsContext';
|
|
|
85
96
|
const STABLE_EMPTY_ARRAY: readonly RadialBarDataItem[] = [];
|
|
86
97
|
|
|
87
98
|
export type RadialBarDataItem =
|
|
88
|
-
SectorProps &
|
|
99
|
+
SectorProps & GeometrySector & TooltipTriggerInfo & {
|
|
89
100
|
value?: any;
|
|
90
101
|
payload?: any;
|
|
91
102
|
background?: SectorProps;
|
|
@@ -107,7 +118,7 @@ function RadialBarLabelListProvider({
|
|
|
107
118
|
}: {
|
|
108
119
|
showLabels: boolean;
|
|
109
120
|
sectors: ReadonlyArray<RadialBarDataItem>;
|
|
110
|
-
children:
|
|
121
|
+
children: OctaneNode;
|
|
111
122
|
}) {
|
|
112
123
|
const labelListEntries: ReadonlyArray<PolarLabelListEntry> = sectors.map(
|
|
113
124
|
(sector: RadialBarDataItem): PolarLabelListEntry => ({
|
|
@@ -175,7 +186,7 @@ function RadialBarSectors({
|
|
|
175
186
|
const onMouseLeave = onMouseLeaveFromContext(entry, i);
|
|
176
187
|
const onClick = onClickFromContext(entry, i);
|
|
177
188
|
|
|
178
|
-
const radialBarSectorProps:
|
|
189
|
+
const radialBarSectorProps: ComponentProps<typeof RadialBarSector> = {
|
|
179
190
|
...baseProps,
|
|
180
191
|
cornerRadius: parseCornerRadius(cornerRadius),
|
|
181
192
|
...entry,
|
|
@@ -371,7 +382,7 @@ interface InternalRadialBarProps<DataPointType = any, DataValueType = any> exten
|
|
|
371
382
|
* - `false`: no background;
|
|
372
383
|
* - `true`: renders default background;
|
|
373
384
|
* - `object`: the props of background rectangle;
|
|
374
|
-
* - `
|
|
385
|
+
* - `OctaneElement`: a custom background element;
|
|
375
386
|
* - `function`: a render function of custom background.
|
|
376
387
|
*
|
|
377
388
|
* @defaultValue false
|
|
@@ -413,7 +424,7 @@ interface InternalRadialBarProps<DataPointType = any, DataValueType = any> exten
|
|
|
413
424
|
* - `true`: renders default labels;
|
|
414
425
|
* - `false`: no labels are rendered;
|
|
415
426
|
* - `object`: the props of LabelList component;
|
|
416
|
-
* - `
|
|
427
|
+
* - `OctaneElement`: a custom SVG label element, such as `<text>` or `<g>`.
|
|
417
428
|
* HTML elements such as `<div>` are not valid inside the chart SVG and may trigger React DOM warnings.
|
|
418
429
|
* - `function`: a render function of custom label.
|
|
419
430
|
*
|
|
@@ -441,58 +452,58 @@ interface InternalRadialBarProps<DataPointType = any, DataValueType = any> exten
|
|
|
441
452
|
/**
|
|
442
453
|
* The customized event handler of click in this chart.
|
|
443
454
|
*/
|
|
444
|
-
onClick?: (data: RadialBarDataItem, index: number, e:
|
|
455
|
+
onClick?: (data: RadialBarDataItem, index: number, e: NativeMouseEvent<
|
|
445
456
|
SVGGraphicsElement
|
|
446
457
|
>) => void;
|
|
447
458
|
/**
|
|
448
459
|
* The customized event handler of mousedown in this chart.
|
|
449
460
|
*/
|
|
450
|
-
onMouseDown?: (data: RadialBarDataItem, index: number, e:
|
|
461
|
+
onMouseDown?: (data: RadialBarDataItem, index: number, e: NativeMouseEvent<
|
|
451
462
|
SVGGraphicsElement
|
|
452
463
|
>) => void;
|
|
453
464
|
/**
|
|
454
465
|
* The customized event handler of mouseup in this chart.
|
|
455
466
|
*/
|
|
456
|
-
onMouseUp?: (data: RadialBarDataItem, index: number, e:
|
|
467
|
+
onMouseUp?: (data: RadialBarDataItem, index: number, e: NativeMouseEvent<
|
|
457
468
|
SVGGraphicsElement
|
|
458
469
|
>) => void;
|
|
459
470
|
/**
|
|
460
471
|
* The customized event handler of mousemove in this chart.
|
|
461
472
|
*/
|
|
462
|
-
onMouseMove?: (data: RadialBarDataItem, index: number, e:
|
|
473
|
+
onMouseMove?: (data: RadialBarDataItem, index: number, e: NativeMouseEvent<
|
|
463
474
|
SVGGraphicsElement
|
|
464
475
|
>) => void;
|
|
465
476
|
/**
|
|
466
477
|
* The customized event handler of mouseover in this chart.
|
|
467
478
|
*/
|
|
468
|
-
onMouseOver?: (data: RadialBarDataItem, index: number, e:
|
|
479
|
+
onMouseOver?: (data: RadialBarDataItem, index: number, e: NativeMouseEvent<
|
|
469
480
|
SVGGraphicsElement
|
|
470
481
|
>) => void;
|
|
471
482
|
/**
|
|
472
483
|
* The customized event handler of mouseout in this chart.
|
|
473
484
|
*/
|
|
474
|
-
onMouseOut?: (data: RadialBarDataItem, index: number, e:
|
|
485
|
+
onMouseOut?: (data: RadialBarDataItem, index: number, e: NativeMouseEvent<
|
|
475
486
|
SVGGraphicsElement
|
|
476
487
|
>) => void;
|
|
477
488
|
/**
|
|
478
489
|
* The customized event handler of mouseenter in this chart.
|
|
479
490
|
*/
|
|
480
|
-
onMouseEnter?: (data: RadialBarDataItem, index: number, e:
|
|
491
|
+
onMouseEnter?: (data: RadialBarDataItem, index: number, e: NativeMouseEvent<
|
|
481
492
|
SVGGraphicsElement
|
|
482
493
|
>) => void;
|
|
483
494
|
/**
|
|
484
495
|
* The customized event handler of mouseleave in this chart.
|
|
485
496
|
*/
|
|
486
|
-
onMouseLeave?: (data: RadialBarDataItem, index: number, e:
|
|
497
|
+
onMouseLeave?: (data: RadialBarDataItem, index: number, e: NativeMouseEvent<
|
|
487
498
|
SVGGraphicsElement
|
|
488
499
|
>) => void;
|
|
489
|
-
onTouchStart?: (data: RadialBarDataItem, index: number, e:
|
|
500
|
+
onTouchStart?: (data: RadialBarDataItem, index: number, e: NativeTouchEvent<
|
|
490
501
|
SVGGraphicsElement
|
|
491
502
|
>) => void;
|
|
492
|
-
onTouchMove?: (data: RadialBarDataItem, index: number, e:
|
|
503
|
+
onTouchMove?: (data: RadialBarDataItem, index: number, e: NativeTouchEvent<
|
|
493
504
|
SVGGraphicsElement
|
|
494
505
|
>) => void;
|
|
495
|
-
onTouchEnd?: (data: RadialBarDataItem, index: number, e:
|
|
506
|
+
onTouchEnd?: (data: RadialBarDataItem, index: number, e: NativeTouchEvent<
|
|
496
507
|
SVGGraphicsElement
|
|
497
508
|
>) => void;
|
|
498
509
|
/**
|
|
@@ -500,7 +511,7 @@ interface InternalRadialBarProps<DataPointType = any, DataValueType = any> exten
|
|
|
500
511
|
*/
|
|
501
512
|
radiusAxisId?: AxisId;
|
|
502
513
|
/**
|
|
503
|
-
* If set a
|
|
514
|
+
* If set a OctaneElement, the shape of radial bar sectors can be customized.
|
|
504
515
|
* If set a function, the function will be called to render customized shape.
|
|
505
516
|
* During animations, the function shape also receives `animationElapsedTime`, `isAnimating`, and `isEntrance`.
|
|
506
517
|
* By default, renders a sector.
|
|
@@ -594,10 +605,9 @@ function renderBackground(props: InternalProps, sectors?: ReadonlyArray<RadialBa
|
|
|
594
605
|
return null;
|
|
595
606
|
}
|
|
596
607
|
|
|
597
|
-
const sectorProps:
|
|
608
|
+
const sectorProps: ComponentProps<typeof RadialBarSector> = {
|
|
598
609
|
cornerRadius: parseCornerRadius(cornerRadius),
|
|
599
610
|
...rest,
|
|
600
|
-
// @ts-expect-error backgroundProps is contributing unknown props
|
|
601
611
|
fill: '#eee',
|
|
602
612
|
...background,
|
|
603
613
|
...backgroundProps,
|
|
@@ -755,7 +765,7 @@ export function computeRadialBarDataItems({
|
|
|
755
765
|
cx: number;
|
|
756
766
|
cy: number;
|
|
757
767
|
angleAxisTicks: ReadonlyArray<TickItem> | undefined;
|
|
758
|
-
cells: ReadonlyArray<
|
|
768
|
+
cells: ReadonlyArray<RegisteredCell> | undefined;
|
|
759
769
|
startAngle: number;
|
|
760
770
|
endAngle: number;
|
|
761
771
|
}): ReadonlyArray<RadialBarDataItem> {
|
|
@@ -764,12 +774,18 @@ export function computeRadialBarDataItems({
|
|
|
764
774
|
}
|
|
765
775
|
|
|
766
776
|
return (displayedData ?? []).map((entry: unknown, index: number) => {
|
|
767
|
-
let value
|
|
768
|
-
|
|
777
|
+
let value;
|
|
778
|
+
let innerRadius: number | null | undefined;
|
|
779
|
+
let outerRadius: number | undefined;
|
|
780
|
+
let startAngle: number | null;
|
|
781
|
+
let endAngle: number | undefined;
|
|
782
|
+
let backgroundSector;
|
|
769
783
|
|
|
770
784
|
if (stackedData) {
|
|
771
|
-
|
|
772
|
-
|
|
785
|
+
value = truncateByDomain(
|
|
786
|
+
stackedData[dataStartIndex + index],
|
|
787
|
+
stackedDomain as readonly number[],
|
|
788
|
+
);
|
|
773
789
|
} else {
|
|
774
790
|
value = getValueByDataKey(entry, dataKey);
|
|
775
791
|
if (!Array.isArray(value)) {
|
|
@@ -833,20 +849,21 @@ export function computeRadialBarDataItems({
|
|
|
833
849
|
}
|
|
834
850
|
}
|
|
835
851
|
|
|
852
|
+
// Unresolved scale values use the same zero geometry as the default
|
|
853
|
+
// Sector. Keep the row so custom shapes, Cell overrides, and tooltip
|
|
854
|
+
// indices still refer to the original datum.
|
|
836
855
|
return {
|
|
837
|
-
|
|
838
|
-
...entry,
|
|
856
|
+
...entry as Record<string, unknown>,
|
|
839
857
|
...backgroundSector,
|
|
840
858
|
payload: entry,
|
|
841
859
|
value: stackedData ? value : value[1],
|
|
842
860
|
cx,
|
|
843
861
|
cy,
|
|
844
|
-
innerRadius,
|
|
845
|
-
outerRadius,
|
|
846
|
-
startAngle,
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
...cells && cells[index] && cells[index].props,
|
|
862
|
+
innerRadius: innerRadius ?? defaultSectorProps.innerRadius,
|
|
863
|
+
outerRadius: outerRadius ?? defaultSectorProps.outerRadius,
|
|
864
|
+
startAngle: startAngle ?? defaultSectorProps.startAngle,
|
|
865
|
+
endAngle: endAngle ?? defaultSectorProps.endAngle,
|
|
866
|
+
...cells && cells[index] && cells[index].props as CellPropsFor<SVGPathElement>,
|
|
850
867
|
} satisfies RadialBarDataItem;
|
|
851
868
|
});
|
|
852
869
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
1
|
+
// Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
|
|
2
|
+
import { Props } from './PolarAngleAxis.tsrx';
|
|
3
3
|
import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
export const defaultPolarAngleAxisProps = {
|
|
5
6
|
allowDecimals: false,
|
|
6
|
-
allowDuplicatedCategory: true,
|
|
7
|
-
// if I set this to false then Tooltip synchronisation stops working in Radar, wtf
|
|
7
|
+
allowDuplicatedCategory: true, // if I set this to false then Tooltip synchronisation stops working in Radar, wtf
|
|
8
8
|
allowDataOverflow: false,
|
|
9
9
|
angle: 0,
|
|
10
10
|
angleAxisId: 0,
|
|
@@ -24,4 +24,4 @@ export var defaultPolarAngleAxisProps = {
|
|
|
24
24
|
tickSize: 8,
|
|
25
25
|
type: 'auto',
|
|
26
26
|
zIndex: DefaultZIndexes.axis,
|
|
27
|
-
};
|
|
27
|
+
} as const satisfies Props;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
1
|
+
// Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
|
|
2
|
+
import { Props } from './PolarRadiusAxis.tsrx';
|
|
3
3
|
import { DefaultZIndexes } from '../zIndex/DefaultZIndexes';
|
|
4
|
-
|
|
4
|
+
|
|
5
|
+
export const defaultPolarRadiusAxisProps = {
|
|
5
6
|
allowDataOverflow: false,
|
|
6
7
|
allowDecimals: false,
|
|
7
8
|
allowDuplicatedCategory: true,
|
|
@@ -21,4 +22,4 @@ export var defaultPolarRadiusAxisProps = {
|
|
|
21
22
|
tickLine: true,
|
|
22
23
|
type: 'auto',
|
|
23
24
|
zIndex: DefaultZIndexes.axis,
|
|
24
|
-
};
|
|
25
|
+
} as const satisfies Props;
|