@octanejs/recharts 0.1.41 → 0.1.43
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/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
|
@@ -1,22 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import type {
|
|
3
2
|
FunctionComponent,
|
|
4
|
-
|
|
3
|
+
NativeMouseEvent,
|
|
4
|
+
NativeTouchEvent,
|
|
5
|
+
OctaneNode,
|
|
5
6
|
SVGProps,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} from 'octane';
|
|
7
|
+
SVGPropsForHost,
|
|
8
|
+
} from '../util/OctaneTypes.ts';
|
|
9
|
+
import * as React from 'octane';
|
|
10
|
+
import { useEffect, useMemo } from 'octane';
|
|
10
11
|
import { clsx } from 'clsx';
|
|
11
|
-
import { Layer } from '../container/Layer';
|
|
12
|
-
import { Dot } from '../shape/Dot';
|
|
13
|
-
import { Polygon } from '../shape/Polygon';
|
|
14
|
-
import { Text, TextAnchor, TextVerticalAnchor } from '../component/Text';
|
|
12
|
+
import { Layer } from '../container/Layer.tsrx';
|
|
13
|
+
import { Dot } from '../shape/Dot.tsrx';
|
|
14
|
+
import { Polygon } from '../shape/Polygon.tsrx';
|
|
15
|
+
import { Text, TextAnchor, TextVerticalAnchor } from '../component/Text.tsrx';
|
|
15
16
|
import {
|
|
16
17
|
adaptEventsOfChild,
|
|
17
18
|
AxisDomain,
|
|
19
|
+
AxisTick,
|
|
18
20
|
AxisDomainTypeInput,
|
|
19
|
-
|
|
21
|
+
PolarTickContentProps,
|
|
20
22
|
EvaluatedAxisDomainType,
|
|
21
23
|
PresentationAttributesAdaptChildEvent,
|
|
22
24
|
RenderableAxisProps,
|
|
@@ -40,7 +42,7 @@ import {
|
|
|
40
42
|
svgPropertiesNoEventsFromUnknown,
|
|
41
43
|
} from '../util/svgPropertiesNoEvents';
|
|
42
44
|
import { RequiresDefaultProps, resolveDefaultProps } from '../util/resolveDefaultProps';
|
|
43
|
-
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer';
|
|
45
|
+
import { ZIndexable, ZIndexLayer } from '../zIndex/ZIndexLayer.tsrx';
|
|
44
46
|
import { RechartsScale } from '../util/scale/RechartsScale';
|
|
45
47
|
import type { CustomScaleDefinition } from '../util/scale/CustomScaleDefinition';
|
|
46
48
|
import { usePolarChartLayout } from '../context/chartLayoutContext';
|
|
@@ -68,7 +70,7 @@ export interface PolarAngleAxisProps<DataPointType = any, DataValueType = any> e
|
|
|
68
70
|
* @example <PolarAngleAxis axisLine={false} />
|
|
69
71
|
* @example <PolarAngleAxis stroke='red' strokeWidth={2} strokeDasharray={4} />
|
|
70
72
|
*/
|
|
71
|
-
axisLine?: boolean | SVGProps<
|
|
73
|
+
axisLine?: boolean | SVGProps<SVGCircleElement | SVGPathElement>;
|
|
72
74
|
/**
|
|
73
75
|
* @defaultValue false
|
|
74
76
|
*/
|
|
@@ -166,12 +168,12 @@ export interface PolarAngleAxisProps<DataPointType = any, DataValueType = any> e
|
|
|
166
168
|
* - `false`: Do not render any tick labels.
|
|
167
169
|
* - `true`: Render tick labels with default settings.
|
|
168
170
|
* - `object`: An object of props to be merged into the internally calculated tick props.
|
|
169
|
-
* - `
|
|
171
|
+
* - `OctaneElement`: A custom React element to be used as the tick label.
|
|
170
172
|
* - `function`: A function that returns a React element for custom rendering of tick labels.
|
|
171
173
|
*
|
|
172
174
|
* @defaultValue true
|
|
173
175
|
*/
|
|
174
|
-
tick?: TickProp<
|
|
176
|
+
tick?: TickProp<PolarTickContentProps>;
|
|
175
177
|
/**
|
|
176
178
|
* The count of axis ticks. Not used if 'type' is 'category'.
|
|
177
179
|
*/
|
|
@@ -194,9 +196,9 @@ export interface PolarAngleAxisProps<DataPointType = any, DataValueType = any> e
|
|
|
194
196
|
*/
|
|
195
197
|
tickSize?: number;
|
|
196
198
|
/**
|
|
197
|
-
* The array of
|
|
199
|
+
* The array of tick values to map through the axis scale.
|
|
198
200
|
*/
|
|
199
|
-
ticks?: ReadonlyArray<
|
|
201
|
+
ticks?: ReadonlyArray<AxisTick>;
|
|
200
202
|
/**
|
|
201
203
|
* The type of axis.
|
|
202
204
|
*
|
|
@@ -228,45 +230,45 @@ type PolarAngleAxisEvents = {
|
|
|
228
230
|
/**
|
|
229
231
|
* The customized event handler of click on the ticks of this axis
|
|
230
232
|
*/
|
|
231
|
-
onClick?: (data: TickItem, index: number, e:
|
|
233
|
+
onClick?: (data: TickItem, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
232
234
|
/**
|
|
233
235
|
* The customized event handler of mousedown on the ticks of this axis
|
|
234
236
|
*/
|
|
235
|
-
onMouseDown?: (data: TickItem, index: number, e:
|
|
237
|
+
onMouseDown?: (data: TickItem, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
236
238
|
/**
|
|
237
239
|
* The customized event handler of mouseup on the ticks of this axis
|
|
238
240
|
*/
|
|
239
|
-
onMouseUp?: (data: TickItem, index: number, e:
|
|
241
|
+
onMouseUp?: (data: TickItem, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
240
242
|
/**
|
|
241
243
|
* The customized event handler of mousemove on the ticks of this axis
|
|
242
244
|
*/
|
|
243
|
-
onMouseMove?: (data: TickItem, index: number, e:
|
|
245
|
+
onMouseMove?: (data: TickItem, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
244
246
|
/**
|
|
245
247
|
* The customized event handler of mouseover on the ticks of this axis
|
|
246
248
|
*/
|
|
247
|
-
onMouseOver?: (data: TickItem, index: number, e:
|
|
249
|
+
onMouseOver?: (data: TickItem, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
248
250
|
/**
|
|
249
251
|
* The customized event handler of mouseout on the ticks of this axis
|
|
250
252
|
*/
|
|
251
|
-
onMouseOut?: (data: TickItem, index: number, e:
|
|
253
|
+
onMouseOut?: (data: TickItem, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
252
254
|
/**
|
|
253
255
|
* The customized event handler of mouseenter on the ticks of this axis
|
|
254
256
|
*/
|
|
255
|
-
onMouseEnter?: (data: TickItem, index: number, e:
|
|
257
|
+
onMouseEnter?: (data: TickItem, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
256
258
|
/**
|
|
257
259
|
* The customized event handler of mouseleave on the ticks of this axis
|
|
258
260
|
*/
|
|
259
|
-
onMouseLeave?: (data: TickItem, index: number, e:
|
|
260
|
-
onTouchStart?: (data: TickItem, index: number, e:
|
|
261
|
-
onTouchMove?: (data: TickItem, index: number, e:
|
|
262
|
-
onTouchEnd?: (data: TickItem, index: number, e:
|
|
261
|
+
onMouseLeave?: (data: TickItem, index: number, e: NativeMouseEvent<SVGGElement>) => void;
|
|
262
|
+
onTouchStart?: (data: TickItem, index: number, e: NativeTouchEvent<SVGGElement>) => void;
|
|
263
|
+
onTouchMove?: (data: TickItem, index: number, e: NativeTouchEvent<SVGGElement>) => void;
|
|
264
|
+
onTouchEnd?: (data: TickItem, index: number, e: NativeTouchEvent<SVGGElement>) => void;
|
|
263
265
|
};
|
|
264
266
|
|
|
265
267
|
type AxisSvgProps =
|
|
266
268
|
Omit<
|
|
267
|
-
PresentationAttributesAdaptChildEvent<TickItem,
|
|
268
|
-
'scale' | 'type' | 'dangerouslySetInnerHTML'
|
|
269
|
-
|
|
269
|
+
PresentationAttributesAdaptChildEvent<TickItem, SVGGElement>,
|
|
270
|
+
'scale' | 'type' | 'dangerouslySetInnerHTML' | 'ref'
|
|
271
|
+
> & { ref?: never };
|
|
270
272
|
|
|
271
273
|
export type Props<DataPointType = any, DataValueType = any> =
|
|
272
274
|
AxisSvgProps & PolarAngleAxisProps<DataPointType, DataValueType>;
|
|
@@ -275,7 +277,7 @@ type PropsWithDefaults<DataPointType = any, DataValueType = any> =
|
|
|
275
277
|
RequiresDefaultProps<Props<DataPointType, DataValueType>, typeof defaultPolarAngleAxisProps>;
|
|
276
278
|
|
|
277
279
|
type InternalPolarAngleAxisProps =
|
|
278
|
-
Omit<PropsWithDefaults, 'scale'> & {
|
|
280
|
+
Omit<PropsWithDefaults, 'scale' | 'ticks'> & {
|
|
279
281
|
cx: number;
|
|
280
282
|
cy: number;
|
|
281
283
|
radius: number;
|
|
@@ -287,11 +289,11 @@ const AXIS_TYPE = 'angleAxis';
|
|
|
287
289
|
|
|
288
290
|
type AngleAxisSettingsReporter =
|
|
289
291
|
Omit<AngleAxisSettings, 'type'> & {
|
|
290
|
-
children:
|
|
292
|
+
children: OctaneNode;
|
|
291
293
|
type: AxisDomainTypeInput;
|
|
292
294
|
};
|
|
293
295
|
|
|
294
|
-
function SetAngleAxisSettings(props: AngleAxisSettingsReporter):
|
|
296
|
+
function SetAngleAxisSettings(props: AngleAxisSettingsReporter): OctaneNode {
|
|
295
297
|
const dispatch = useAppDispatch();
|
|
296
298
|
const layout = usePolarChartLayout();
|
|
297
299
|
const settings: AngleAxisSettings | undefined = useMemo(() => {
|
|
@@ -401,10 +403,9 @@ const AxisLine = (props: InternalPolarAngleAxisProps) => {
|
|
|
401
403
|
};
|
|
402
404
|
|
|
403
405
|
if (axisLineType === 'circle') {
|
|
404
|
-
// @ts-expect-error wrong SVG element type
|
|
405
406
|
return <Dot
|
|
406
407
|
className="recharts-polar-angle-axis-line"
|
|
407
|
-
{...axisLineProps}
|
|
408
|
+
{...axisLineProps as SVGPropsForHost<typeof axisLineProps, SVGCircleElement>}
|
|
408
409
|
cx={cx}
|
|
409
410
|
cy={cy}
|
|
410
411
|
r={radius}
|
|
@@ -412,17 +413,20 @@ const AxisLine = (props: InternalPolarAngleAxisProps) => {
|
|
|
412
413
|
}
|
|
413
414
|
const points = ticks.map((entry) => polarToCartesian(cx, cy, radius, entry.coordinate));
|
|
414
415
|
|
|
415
|
-
|
|
416
|
-
|
|
416
|
+
return <Polygon
|
|
417
|
+
className="recharts-polar-angle-axis-line"
|
|
418
|
+
{...axisLineProps as SVGPropsForHost<typeof axisLineProps, SVGPathElement>}
|
|
419
|
+
points={points}
|
|
420
|
+
/>;
|
|
417
421
|
};
|
|
418
422
|
|
|
419
423
|
type TickItemProps = {
|
|
420
|
-
tick: TickProp<
|
|
421
|
-
tickProps:
|
|
424
|
+
tick: TickProp<PolarTickContentProps>;
|
|
425
|
+
tickProps: PolarTickContentProps;
|
|
422
426
|
value: string | number;
|
|
423
427
|
};
|
|
424
428
|
|
|
425
|
-
const TickItemText = ({ tick, tickProps, value }: TickItemProps):
|
|
429
|
+
const TickItemText = ({ tick, tickProps, value }: TickItemProps): OctaneNode => {
|
|
426
430
|
if (!tick) {
|
|
427
431
|
return null;
|
|
428
432
|
}
|
|
@@ -449,14 +453,11 @@ const Ticks = (props: InternalPolarAngleAxisProps) => {
|
|
|
449
453
|
const lineCoord = getTickLineCoord(entry, props);
|
|
450
454
|
const textAnchor: TextAnchor = getTickTextAnchor(entry, props.orientation);
|
|
451
455
|
const verticalAnchor: TextVerticalAnchor = getTickTextVerticalAnchor(entry);
|
|
452
|
-
const tickProps:
|
|
456
|
+
const tickProps: PolarTickContentProps = {
|
|
453
457
|
...axisProps,
|
|
454
|
-
// @ts-expect-error customTickProps is contributing unknown props
|
|
455
458
|
textAnchor,
|
|
456
459
|
verticalAnchor,
|
|
457
|
-
// @ts-expect-error customTickProps is contributing unknown props
|
|
458
460
|
stroke: 'none',
|
|
459
|
-
// @ts-expect-error customTickProps is contributing unknown props
|
|
460
461
|
fill: stroke,
|
|
461
462
|
...customTickProps,
|
|
462
463
|
index: i,
|
|
@@ -542,7 +543,6 @@ export function PolarAngleAxis<DataPointType = any, DataValueType = any>(
|
|
|
542
543
|
allowDecimals={props.allowDecimals}
|
|
543
544
|
tickCount={props.tickCount}
|
|
544
545
|
niceTicks={props.niceTicks ?? 'auto'}
|
|
545
|
-
// @ts-expect-error the type does not match. Is RadiusAxis really expecting what it says?
|
|
546
546
|
ticks={props.ticks}
|
|
547
547
|
tick={props.tick}
|
|
548
548
|
domain={props.domain}
|
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) {
|