@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
|
@@ -10,20 +10,21 @@
|
|
|
10
10
|
import { createContext, useContext, useMemo, useState } from 'octane';
|
|
11
11
|
import { shallowEqual } from '@octanejs/redux';
|
|
12
12
|
import { splitSlot, subSlot } from '../internal';
|
|
13
|
+
import type { Props as CellProps } from '../component/Cell';
|
|
13
14
|
|
|
14
15
|
export interface CellRegistry {
|
|
15
|
-
register(token: object, props:
|
|
16
|
+
register(token: object, props: CellProps): void;
|
|
16
17
|
unregister(token: object): void;
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
/** The shape upstream's `cells[index].props` access expects. */
|
|
20
21
|
export interface RegisteredCell {
|
|
21
|
-
props:
|
|
22
|
+
props: CellProps;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
export const CellsContext = createContext<CellRegistry | null>(null);
|
|
25
26
|
|
|
26
|
-
function toCellArray(map: Map<object,
|
|
27
|
+
function toCellArray(map: Map<object, CellProps>): RegisteredCell[] | undefined {
|
|
27
28
|
if (map.size === 0) {
|
|
28
29
|
return undefined;
|
|
29
30
|
}
|
|
@@ -46,7 +47,7 @@ export function useCellRegistry(...rest: any[]): [RegisteredCell[] | undefined,
|
|
|
46
47
|
);
|
|
47
48
|
const registry = useMemo(
|
|
48
49
|
() => {
|
|
49
|
-
const entries = new Map<object,
|
|
50
|
+
const entries = new Map<object, CellProps>();
|
|
50
51
|
let scheduled = false;
|
|
51
52
|
const publish = () => {
|
|
52
53
|
if (scheduled) return;
|
|
@@ -58,7 +59,7 @@ export function useCellRegistry(...rest: any[]): [RegisteredCell[] | undefined,
|
|
|
58
59
|
});
|
|
59
60
|
};
|
|
60
61
|
return {
|
|
61
|
-
register(token: object, props:
|
|
62
|
+
register(token: object, props: CellProps) {
|
|
62
63
|
const previousProps = entries.get(token);
|
|
63
64
|
if (
|
|
64
65
|
entries.has(token) &&
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
import type { OctaneNode } from '../util/OctaneTypes.ts';
|
|
2
|
+
import type { AxisId } from '../state/cartesianAxisSlice';
|
|
3
|
+
import type { ErrorBarDataPointFormatter } from '../cartesian/ErrorBar.tsrx';
|
|
4
|
+
import type { ErrorBarsSettings } from '../state/errorBarSlice';
|
|
5
|
+
import type { BarRectangleItem } from '../cartesian/Bar';
|
|
6
|
+
import type { LinePointItem } from '../cartesian/Line';
|
|
7
|
+
import type { ScatterPointItem } from '../cartesian/Scatter.tsrx';
|
|
8
|
+
|
|
9
|
+
type ErrorBarContextType<T extends BarRectangleItem | LinePointItem | ScatterPointItem> = {
|
|
10
|
+
data: ReadonlyArray<any> | undefined;
|
|
11
|
+
xAxisId: AxisId;
|
|
12
|
+
yAxisId: AxisId;
|
|
13
|
+
dataPointFormatter: ErrorBarDataPointFormatter<T>;
|
|
14
|
+
errorBarOffset: number;
|
|
15
|
+
};
|
|
1
16
|
// Port of context/ErrorBarContext.tsx — the per-graphical-item settings an
|
|
2
17
|
// <ErrorBar> child reads, plus the reporter that registers error-bar presence
|
|
3
18
|
// in the store.
|
|
@@ -6,7 +21,7 @@ import { addErrorBar, removeErrorBar, replaceErrorBar } from '../state/errorBarS
|
|
|
6
21
|
import { useAppDispatch } from '../state/hooks';
|
|
7
22
|
import { useGraphicalItemId } from './RegisterGraphicalItemId.tsrx';
|
|
8
23
|
|
|
9
|
-
const initialContextState = {
|
|
24
|
+
const initialContextState: ErrorBarContextType<any> = {
|
|
10
25
|
data: [],
|
|
11
26
|
xAxisId: 'xAxis-0',
|
|
12
27
|
yAxisId: 'yAxis-0',
|
|
@@ -16,17 +31,21 @@ const initialContextState = {
|
|
|
16
31
|
|
|
17
32
|
const ErrorBarContext = createContext(initialContextState);
|
|
18
33
|
|
|
19
|
-
export function SetErrorBarContext
|
|
34
|
+
export function SetErrorBarContext<
|
|
35
|
+
T extends BarRectangleItem | LinePointItem | ScatterPointItem,
|
|
36
|
+
>(props: ErrorBarContextType<T> & {
|
|
37
|
+
children: OctaneNode;
|
|
38
|
+
}) {
|
|
20
39
|
const { children, ...rest } = props;
|
|
21
40
|
return <ErrorBarContext.Provider value={rest}>{children}</ErrorBarContext.Provider>;
|
|
22
41
|
}
|
|
23
42
|
|
|
24
43
|
export const useErrorBarContext = () => useContext(ErrorBarContext);
|
|
25
44
|
|
|
26
|
-
export function ReportErrorBarSettings(props) {
|
|
45
|
+
export function ReportErrorBarSettings(props: ErrorBarsSettings) {
|
|
27
46
|
const dispatch = useAppDispatch();
|
|
28
47
|
const graphicalItemId = useGraphicalItemId();
|
|
29
|
-
const prevPropsRef = useRef(null);
|
|
48
|
+
const prevPropsRef = useRef<ErrorBarsSettings | null>(null);
|
|
30
49
|
useEffect(() => {
|
|
31
50
|
if (graphicalItemId == null) {
|
|
32
51
|
// ErrorBar outside a graphical item context does not do anything.
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
+
import type { OctaneNode } from '../util/OctaneTypes.ts';
|
|
2
|
+
import type { GraphicalItemId } from '../state/graphicalItemsSlice';
|
|
3
|
+
|
|
4
|
+
export type IdSetter = {
|
|
5
|
+
id?: string;
|
|
6
|
+
type: string;
|
|
7
|
+
children: (id: GraphicalItemId) => OctaneNode;
|
|
8
|
+
};
|
|
1
9
|
// Port of context/RegisterGraphicalItemId.tsx — mints a stable per-item id
|
|
2
10
|
// (user override wins) and provides it to descendants via context. `children`
|
|
3
11
|
// is a RENDER PROP receiving the resolved id.
|
|
4
12
|
import { createContext, useContext } from 'octane';
|
|
5
13
|
import { useUniqueId } from '../util/useUniqueId';
|
|
6
14
|
|
|
7
|
-
const GraphicalItemIdContext = createContext(undefined);
|
|
15
|
+
const GraphicalItemIdContext = createContext<GraphicalItemId | undefined>(undefined);
|
|
8
16
|
|
|
9
|
-
export function RegisterGraphicalItemId(props) {
|
|
17
|
+
export function RegisterGraphicalItemId(props: IdSetter) {
|
|
10
18
|
const { id, type, children } = props;
|
|
11
19
|
const resolvedId = useUniqueId('recharts-' + type, id);
|
|
12
20
|
return <GraphicalItemIdContext.Provider value={resolvedId}>{children(
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
|
|
2
|
+
import { createContext } from 'octane';
|
|
3
|
+
|
|
4
|
+
export interface BrushStartEndIndex {
|
|
5
|
+
startIndex: number;
|
|
6
|
+
endIndex: number;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export type OnBrushUpdate = (newState: BrushStartEndIndex) => void;
|
|
10
|
+
|
|
11
|
+
export const BrushUpdateDispatchContext = createContext<OnBrushUpdate>(() => {});
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// Port of context/chartDataContext.tsx — reporter components that publish the
|
|
2
2
|
// chart's `data` prop into the store, plus the read hooks.
|
|
3
3
|
import { useEffect } from 'octane';
|
|
4
|
-
import { setChartData, setComputedData } from '../state/chartDataSlice';
|
|
4
|
+
import { setChartData, setComputedData, type ChartData } from '../state/chartDataSlice';
|
|
5
5
|
import { useAppDispatch, useAppSelector } from '../state/hooks';
|
|
6
6
|
import { useIsPanorama } from './PanoramaContext';
|
|
7
7
|
import { splitSlot, subSlot } from '../internal';
|
|
8
|
+
import type { RechartsRootState } from '../state/store';
|
|
8
9
|
|
|
9
|
-
export const ChartDataContextProvider = (props: { chartData:
|
|
10
|
+
export const ChartDataContextProvider = (props: { chartData: ChartData | undefined }): null => {
|
|
10
11
|
const { chartData } = props;
|
|
11
12
|
const dispatch = useAppDispatch();
|
|
12
13
|
const isPanorama = useIsPanorama();
|
|
@@ -37,7 +38,7 @@ export const SetComputedData = (props: { computedData: unknown }): null => {
|
|
|
37
38
|
return null;
|
|
38
39
|
};
|
|
39
40
|
|
|
40
|
-
const selectChartData = (state:
|
|
41
|
+
const selectChartData = (state: RechartsRootState) => state.chartData.chartData;
|
|
41
42
|
|
|
42
43
|
/** @deprecated use one of the other selectors instead. */
|
|
43
44
|
export const useChartData = (...rest: any[]) => {
|
|
@@ -45,7 +46,7 @@ export const useChartData = (...rest: any[]) => {
|
|
|
45
46
|
return useAppSelector(selectChartData, subSlot(slot, 'cdc:data'));
|
|
46
47
|
};
|
|
47
48
|
|
|
48
|
-
const selectDataIndex = (state:
|
|
49
|
+
const selectDataIndex = (state: RechartsRootState) => {
|
|
49
50
|
const { dataStartIndex, dataEndIndex } = state.chartData;
|
|
50
51
|
return { startIndex: dataStartIndex, endIndex: dataEndIndex };
|
|
51
52
|
};
|
|
@@ -12,11 +12,22 @@ import {
|
|
|
12
12
|
import { selectChartHeight, selectChartWidth } from '../state/selectors/containerSelectors';
|
|
13
13
|
import { useIsPanorama } from './PanoramaContext';
|
|
14
14
|
import { selectBrushDimensions, selectBrushSettings } from '../state/selectors/brushSelectors';
|
|
15
|
-
import { useResponsiveContainerContext } from '../component/ResponsiveContainer';
|
|
15
|
+
import { useResponsiveContainerContext } from '../component/ResponsiveContainer.tsrx';
|
|
16
16
|
import { isPositiveNumber } from '../util/isWellBehavedNumber';
|
|
17
17
|
import { splitSlot, subSlot } from '../internal';
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
import type { RechartsRootState } from '../state/store';
|
|
19
|
+
import type { CartesianViewBoxRequired, Margin, TrapezoidViewBox } from '../util/types';
|
|
20
|
+
|
|
21
|
+
export function cartesianViewBoxToTrapezoid(box: undefined): undefined;
|
|
22
|
+
export function cartesianViewBoxToTrapezoid(
|
|
23
|
+
box: CartesianViewBoxRequired | TrapezoidViewBox,
|
|
24
|
+
): TrapezoidViewBox;
|
|
25
|
+
export function cartesianViewBoxToTrapezoid(
|
|
26
|
+
box: CartesianViewBoxRequired | TrapezoidViewBox | undefined,
|
|
27
|
+
): TrapezoidViewBox | undefined;
|
|
28
|
+
export function cartesianViewBoxToTrapezoid(
|
|
29
|
+
box: CartesianViewBoxRequired | TrapezoidViewBox | undefined,
|
|
30
|
+
): TrapezoidViewBox | undefined {
|
|
20
31
|
if (!box) {
|
|
21
32
|
return undefined;
|
|
22
33
|
}
|
|
@@ -81,7 +92,7 @@ export const useChartHeight = (...rest: any[]) => {
|
|
|
81
92
|
return useAppSelector(selectChartHeight, subSlot(slot, 'clc:height'));
|
|
82
93
|
};
|
|
83
94
|
|
|
84
|
-
const selectMargin = (state:
|
|
95
|
+
const selectMargin = (state: RechartsRootState) => state.layout.margin;
|
|
85
96
|
|
|
86
97
|
/** The chart's margin (empty space around the plot), or `undefined` outside a chart. */
|
|
87
98
|
export const useMargin = (...rest: any[]) => {
|
|
@@ -89,7 +100,7 @@ export const useMargin = (...rest: any[]) => {
|
|
|
89
100
|
return useAppSelector(selectMargin, subSlot(slot, 'clc:margin'));
|
|
90
101
|
};
|
|
91
102
|
|
|
92
|
-
export const selectChartLayout = (state:
|
|
103
|
+
export const selectChartLayout = (state: RechartsRootState) => state.layout.layoutType;
|
|
93
104
|
|
|
94
105
|
/**
|
|
95
106
|
* The chart layout as configured by the chart (`horizontal`/`vertical` for
|
|
@@ -111,7 +122,7 @@ export const useCartesianChartLayout = (...rest: any[]) => {
|
|
|
111
122
|
return undefined;
|
|
112
123
|
};
|
|
113
124
|
|
|
114
|
-
export const selectPolarChartLayout = (state:
|
|
125
|
+
export const selectPolarChartLayout = (state: RechartsRootState) => {
|
|
115
126
|
const layout = state.layout.layoutType;
|
|
116
127
|
if (layout === 'centric' || layout === 'radial') {
|
|
117
128
|
return layout;
|
|
@@ -132,7 +143,10 @@ export const useIsInChartContext = (...rest: any[]) => {
|
|
|
132
143
|
return layout !== undefined;
|
|
133
144
|
};
|
|
134
145
|
|
|
135
|
-
export const ReportChartSize = (props: {
|
|
146
|
+
export const ReportChartSize = (props: {
|
|
147
|
+
width: number | string | undefined;
|
|
148
|
+
height: number | string | undefined;
|
|
149
|
+
}): null => {
|
|
136
150
|
const dispatch = useAppDispatch();
|
|
137
151
|
// Skip dispatching in a panorama chart: the ROOT chart decides these, and
|
|
138
152
|
// Brush reads them from the store (stability avoids a re-render cycle).
|
|
@@ -161,7 +175,7 @@ export const ReportChartSize = (props: { width: number; height: number }): null
|
|
|
161
175
|
return null;
|
|
162
176
|
};
|
|
163
177
|
|
|
164
|
-
export const ReportChartMargin = (props: { margin:
|
|
178
|
+
export const ReportChartMargin = (props: { margin: Partial<Margin> }): null => {
|
|
165
179
|
const { margin } = props;
|
|
166
180
|
const dispatch = useAppDispatch();
|
|
167
181
|
useEffect(() => {
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
|
|
2
|
+
import type { NativeMouseEvent } from '../util/OctaneTypes';
|
|
3
|
+
|
|
4
|
+
import { Coordinate, DataKey } from '../util/types';
|
|
5
|
+
import { useAppDispatch } from '../state/hooks';
|
|
6
|
+
import {
|
|
7
|
+
mouseLeaveItem,
|
|
8
|
+
setActiveClickItemIndex,
|
|
9
|
+
setActiveMouseOverItemIndex,
|
|
10
|
+
TooltipPayload,
|
|
11
|
+
} from '../state/tooltipSlice';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Some graphical items choose to provide more information to the tooltip
|
|
15
|
+
* and some do not.
|
|
16
|
+
*/
|
|
17
|
+
export type TooltipTriggerInfo = {
|
|
18
|
+
tooltipPayload?: TooltipPayload;
|
|
19
|
+
tooltipPosition?: Coordinate;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type MouseEnterLeaveEvent<T, E extends SVGElement = SVGElement> = (
|
|
23
|
+
data: T,
|
|
24
|
+
index: number,
|
|
25
|
+
event: NativeMouseEvent<E>,
|
|
26
|
+
) => void;
|
|
27
|
+
|
|
28
|
+
export const useMouseEnterItemDispatch = <
|
|
29
|
+
T extends TooltipTriggerInfo,
|
|
30
|
+
E extends SVGElement = SVGElement,
|
|
31
|
+
>(
|
|
32
|
+
onMouseEnterFromProps: MouseEnterLeaveEvent<T, E> | undefined,
|
|
33
|
+
dataKey: DataKey<any> | undefined,
|
|
34
|
+
graphicalItemId: string,
|
|
35
|
+
) => {
|
|
36
|
+
const dispatch = useAppDispatch();
|
|
37
|
+
return (data: T, index: number) => (event: NativeMouseEvent<E>) => {
|
|
38
|
+
onMouseEnterFromProps?.(data, index, event);
|
|
39
|
+
dispatch(
|
|
40
|
+
setActiveMouseOverItemIndex({
|
|
41
|
+
activeIndex: String(index),
|
|
42
|
+
activeDataKey: dataKey,
|
|
43
|
+
activeCoordinate: data.tooltipPosition,
|
|
44
|
+
activeGraphicalItemId: graphicalItemId,
|
|
45
|
+
}),
|
|
46
|
+
);
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const useMouseLeaveItemDispatch = <
|
|
51
|
+
T extends TooltipTriggerInfo,
|
|
52
|
+
E extends SVGElement = SVGElement,
|
|
53
|
+
>(
|
|
54
|
+
onMouseLeaveFromProps: undefined | MouseEnterLeaveEvent<T, E>,
|
|
55
|
+
) => {
|
|
56
|
+
const dispatch = useAppDispatch();
|
|
57
|
+
return (data: T, index: number) => (event: NativeMouseEvent<E>) => {
|
|
58
|
+
onMouseLeaveFromProps?.(data, index, event);
|
|
59
|
+
dispatch(mouseLeaveItem());
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export const useMouseClickItemDispatch = <
|
|
64
|
+
T extends TooltipTriggerInfo,
|
|
65
|
+
E extends SVGElement = SVGElement,
|
|
66
|
+
>(
|
|
67
|
+
onMouseClickFromProps: MouseEnterLeaveEvent<T, E> | undefined,
|
|
68
|
+
dataKey: DataKey<any> | undefined,
|
|
69
|
+
graphicalItemId: string,
|
|
70
|
+
) => {
|
|
71
|
+
const dispatch = useAppDispatch();
|
|
72
|
+
return (data: T, index: number) => (event: NativeMouseEvent<E>) => {
|
|
73
|
+
onMouseClickFromProps?.(data, index, event);
|
|
74
|
+
dispatch(
|
|
75
|
+
setActiveClickItemIndex({
|
|
76
|
+
activeIndex: String(index),
|
|
77
|
+
activeDataKey: dataKey,
|
|
78
|
+
activeCoordinate: data.tooltipPosition,
|
|
79
|
+
activeGraphicalItemId: graphicalItemId,
|
|
80
|
+
}),
|
|
81
|
+
);
|
|
82
|
+
};
|
|
83
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
3
|
-
import { defaultAxisId } from './state/cartesianAxisSlice';
|
|
1
|
+
// Adapted from recharts@3.9.2, commit b3451050c027a23957ffa50a2665c9119df21e47.
|
|
2
|
+
import { AxisId, defaultAxisId } from './state/cartesianAxisSlice';
|
|
4
3
|
import {
|
|
4
|
+
BaseAxisWithScale,
|
|
5
5
|
selectAxisDomain,
|
|
6
6
|
selectAxisInverseScale,
|
|
7
7
|
selectAxisInverseDataSnapScale,
|
|
@@ -18,14 +18,20 @@ import {
|
|
|
18
18
|
selectActiveTooltipDataPoints,
|
|
19
19
|
selectIsTooltipActive,
|
|
20
20
|
} from './state/selectors/tooltipSelectors';
|
|
21
|
+
import { ChartOffset, PlotArea } from './types';
|
|
21
22
|
import { selectChartOffset } from './state/selectors/selectChartOffset';
|
|
22
23
|
import { selectPlotArea } from './state/selectors/selectPlotArea';
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
import { CategoricalDomain, Coordinate, NumberDomain, TickItem } from './util/types';
|
|
25
|
+
import { ActiveLabel } from './synchronisation/types';
|
|
26
|
+
import { BandPosition } from './util/scale/RechartsScale';
|
|
27
|
+
|
|
28
|
+
export const useXAxis = (xAxisId: AxisId): BaseAxisWithScale | undefined => {
|
|
29
|
+
const isPanorama = useIsPanorama();
|
|
25
30
|
return useAppSelector((state) => selectAxisWithScale(state, 'xAxis', xAxisId, isPanorama));
|
|
26
31
|
};
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
|
|
33
|
+
export const useYAxis = (yAxisId: AxisId): BaseAxisWithScale | undefined => {
|
|
34
|
+
const isPanorama = useIsPanorama();
|
|
29
35
|
return useAppSelector((state) => selectAxisWithScale(state, 'yAxis', yAxisId, isPanorama));
|
|
30
36
|
};
|
|
31
37
|
|
|
@@ -36,12 +42,17 @@ export var useYAxis = (yAxisId) => {
|
|
|
36
42
|
* @param options.position - Position within a band: 'start', 'middle', or 'end'.
|
|
37
43
|
* @returns The pixel coordinate, or `undefined` if the value is not in the domain.
|
|
38
44
|
*/
|
|
45
|
+
export type ScaleFunction = (
|
|
46
|
+
value: unknown,
|
|
47
|
+
options?: { position?: BandPosition },
|
|
48
|
+
) => number | undefined;
|
|
39
49
|
|
|
40
50
|
/**
|
|
41
51
|
* A function that converts pixel coordinates back to data values.
|
|
42
52
|
* @param pixelValue - The pixel coordinate to convert.
|
|
43
53
|
* @returns The closest data value in the domain.
|
|
44
54
|
*/
|
|
55
|
+
export type InverseScaleFunction = (pixelValue: number) => unknown;
|
|
45
56
|
|
|
46
57
|
/**
|
|
47
58
|
* Returns a function to convert data values to pixel coordinates for an {@link XAxis}.
|
|
@@ -64,11 +75,10 @@ export var useYAxis = (yAxisId) => {
|
|
|
64
75
|
* @returns A scale function that maps data values to pixel coordinates, or `undefined`.
|
|
65
76
|
* @since 3.8
|
|
66
77
|
*/
|
|
67
|
-
export
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return scale === null || scale === void 0 ? void 0 : scale.map;
|
|
78
|
+
export const useXAxisScale = (xAxisId: AxisId = defaultAxisId): ScaleFunction | undefined => {
|
|
79
|
+
const isPanorama = useIsPanorama();
|
|
80
|
+
const scale = useAppSelector((state) => selectAxisScale(state, 'xAxis', xAxisId, isPanorama));
|
|
81
|
+
return scale?.map;
|
|
72
82
|
};
|
|
73
83
|
|
|
74
84
|
/**
|
|
@@ -92,11 +102,10 @@ export var useXAxisScale = function useXAxisScale() {
|
|
|
92
102
|
* @returns A scale function that maps data values to pixel coordinates, or `undefined`.
|
|
93
103
|
* @since 3.8
|
|
94
104
|
*/
|
|
95
|
-
export
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return scale === null || scale === void 0 ? void 0 : scale.map;
|
|
105
|
+
export const useYAxisScale = (yAxisId: AxisId = defaultAxisId): ScaleFunction | undefined => {
|
|
106
|
+
const isPanorama = useIsPanorama();
|
|
107
|
+
const scale = useAppSelector((state) => selectAxisScale(state, 'yAxis', yAxisId, isPanorama));
|
|
108
|
+
return scale?.map;
|
|
100
109
|
};
|
|
101
110
|
|
|
102
111
|
/**
|
|
@@ -124,9 +133,10 @@ export var useYAxisScale = function useYAxisScale() {
|
|
|
124
133
|
* @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.
|
|
125
134
|
* @since 3.8
|
|
126
135
|
*/
|
|
127
|
-
export
|
|
128
|
-
|
|
129
|
-
|
|
136
|
+
export const useXAxisInverseScale = (
|
|
137
|
+
xAxisId: AxisId = defaultAxisId,
|
|
138
|
+
): InverseScaleFunction | undefined => {
|
|
139
|
+
const isPanorama = useIsPanorama();
|
|
130
140
|
return useAppSelector((state) => selectAxisInverseScale(state, 'xAxis', xAxisId, isPanorama));
|
|
131
141
|
};
|
|
132
142
|
|
|
@@ -147,9 +157,10 @@ export var useXAxisInverseScale = function useXAxisInverseScale() {
|
|
|
147
157
|
* @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.
|
|
148
158
|
* @since 3.8
|
|
149
159
|
*/
|
|
150
|
-
export
|
|
151
|
-
|
|
152
|
-
|
|
160
|
+
export const useXAxisInverseDataSnapScale = (
|
|
161
|
+
xAxisId: AxisId = defaultAxisId,
|
|
162
|
+
): InverseScaleFunction | undefined => {
|
|
163
|
+
const isPanorama = useIsPanorama();
|
|
153
164
|
return useAppSelector((state) =>
|
|
154
165
|
selectAxisInverseDataSnapScale(state, 'xAxis', xAxisId, isPanorama),
|
|
155
166
|
);
|
|
@@ -172,8 +183,9 @@ export var useXAxisInverseDataSnapScale = function useXAxisInverseDataSnapScale(
|
|
|
172
183
|
* @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.
|
|
173
184
|
* @since 3.8
|
|
174
185
|
*/
|
|
175
|
-
export
|
|
176
|
-
|
|
186
|
+
export const useXAxisInverseTickSnapScale = (
|
|
187
|
+
xAxisId: AxisId = defaultAxisId,
|
|
188
|
+
): InverseScaleFunction | undefined => {
|
|
177
189
|
return useAppSelector((state) => selectAxisInverseTickSnapScale(state, 'xAxis', xAxisId));
|
|
178
190
|
};
|
|
179
191
|
|
|
@@ -202,9 +214,10 @@ export var useXAxisInverseTickSnapScale = function useXAxisInverseTickSnapScale(
|
|
|
202
214
|
* @returns An inverse scale function that maps pixel coordinates to data values, or `undefined`.
|
|
203
215
|
* @since 3.8
|
|
204
216
|
*/
|
|
205
|
-
export
|
|
206
|
-
|
|
207
|
-
|
|
217
|
+
export const useYAxisInverseScale = (
|
|
218
|
+
yAxisId: AxisId = defaultAxisId,
|
|
219
|
+
): InverseScaleFunction | undefined => {
|
|
220
|
+
const isPanorama = useIsPanorama();
|
|
208
221
|
return useAppSelector((state) => selectAxisInverseScale(state, 'yAxis', yAxisId, isPanorama));
|
|
209
222
|
};
|
|
210
223
|
|
|
@@ -225,9 +238,10 @@ export var useYAxisInverseScale = function useYAxisInverseScale() {
|
|
|
225
238
|
* @returns An inverse scale function that maps pixel coordinates to the closest data value, or `undefined`.
|
|
226
239
|
* @since 3.8
|
|
227
240
|
*/
|
|
228
|
-
export
|
|
229
|
-
|
|
230
|
-
|
|
241
|
+
export const useYAxisInverseDataSnapScale = (
|
|
242
|
+
yAxisId: AxisId = defaultAxisId,
|
|
243
|
+
): InverseScaleFunction | undefined => {
|
|
244
|
+
const isPanorama = useIsPanorama();
|
|
231
245
|
return useAppSelector((state) =>
|
|
232
246
|
selectAxisInverseDataSnapScale(state, 'yAxis', yAxisId, isPanorama),
|
|
233
247
|
);
|
|
@@ -250,8 +264,9 @@ export var useYAxisInverseDataSnapScale = function useYAxisInverseDataSnapScale(
|
|
|
250
264
|
* @returns An inverse scale function that maps pixel coordinates to the closest tick value, or `undefined`.
|
|
251
265
|
* @since 3.8
|
|
252
266
|
*/
|
|
253
|
-
export
|
|
254
|
-
|
|
267
|
+
export const useYAxisInverseTickSnapScale = (
|
|
268
|
+
yAxisId: AxisId = defaultAxisId,
|
|
269
|
+
): InverseScaleFunction | undefined => {
|
|
255
270
|
return useAppSelector((state) => selectAxisInverseTickSnapScale(state, 'yAxis', yAxisId));
|
|
256
271
|
};
|
|
257
272
|
|
|
@@ -265,8 +280,9 @@ export var useYAxisInverseTickSnapScale = function useYAxisInverseTickSnapScale(
|
|
|
265
280
|
* @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.
|
|
266
281
|
* @since 3.8
|
|
267
282
|
*/
|
|
268
|
-
export
|
|
269
|
-
|
|
283
|
+
export const useXAxisTicks = (
|
|
284
|
+
xAxisId: AxisId = defaultAxisId,
|
|
285
|
+
): ReadonlyArray<TickItem> | undefined => {
|
|
270
286
|
return useAppSelector((state) => selectRenderedTicksOfAxis(state, 'xAxis', xAxisId));
|
|
271
287
|
};
|
|
272
288
|
|
|
@@ -280,8 +296,9 @@ export var useXAxisTicks = function useXAxisTicks() {
|
|
|
280
296
|
* @returns An array of ticks, or `undefined` if the axis doesn't exist or hasn't been calculated yet.
|
|
281
297
|
* @since 3.8
|
|
282
298
|
*/
|
|
283
|
-
export
|
|
284
|
-
|
|
299
|
+
export const useYAxisTicks = (
|
|
300
|
+
yAxisId: AxisId = defaultAxisId,
|
|
301
|
+
): ReadonlyArray<TickItem> | undefined => {
|
|
285
302
|
return useAppSelector((state) => selectRenderedTicksOfAxis(state, 'yAxis', yAxisId));
|
|
286
303
|
};
|
|
287
304
|
|
|
@@ -289,6 +306,10 @@ export var useYAxisTicks = function useYAxisTicks() {
|
|
|
289
306
|
* Data point with x and y values that can be converted to pixel coordinates.
|
|
290
307
|
* The x and y values should be in the same format as your chart data.
|
|
291
308
|
*/
|
|
309
|
+
export type CartesianDataPoint = {
|
|
310
|
+
x: number | string;
|
|
311
|
+
y: number | string;
|
|
312
|
+
};
|
|
292
313
|
|
|
293
314
|
/**
|
|
294
315
|
* Converts a data point (in data coordinates) to pixel coordinates.
|
|
@@ -318,23 +339,26 @@ export var useYAxisTicks = function useYAxisTicks() {
|
|
|
318
339
|
* @returns The pixel x,y coordinates, or `undefined` if conversion is not possible.
|
|
319
340
|
* @since 3.8
|
|
320
341
|
*/
|
|
321
|
-
export
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
342
|
+
export const useCartesianScale = (
|
|
343
|
+
dataPoint: CartesianDataPoint,
|
|
344
|
+
xAxisId: AxisId = defaultAxisId,
|
|
345
|
+
yAxisId: AxisId = defaultAxisId,
|
|
346
|
+
): Coordinate | undefined => {
|
|
347
|
+
const xScale = useXAxisScale(xAxisId);
|
|
348
|
+
const yScale = useYAxisScale(yAxisId);
|
|
349
|
+
|
|
326
350
|
if (xScale == null || yScale == null) {
|
|
327
351
|
return undefined;
|
|
328
352
|
}
|
|
329
|
-
|
|
330
|
-
|
|
353
|
+
|
|
354
|
+
const pixelX = xScale(dataPoint.x);
|
|
355
|
+
const pixelY = yScale(dataPoint.y);
|
|
356
|
+
|
|
331
357
|
if (pixelX == null || pixelY == null) {
|
|
332
358
|
return undefined;
|
|
333
359
|
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
y: pixelY,
|
|
337
|
-
};
|
|
360
|
+
|
|
361
|
+
return { x: pixelX, y: pixelY };
|
|
338
362
|
};
|
|
339
363
|
|
|
340
364
|
/**
|
|
@@ -346,7 +370,7 @@ export var useCartesianScale = function useCartesianScale(dataPoint) {
|
|
|
346
370
|
* @returns ActiveLabel
|
|
347
371
|
* @since 3.0
|
|
348
372
|
*/
|
|
349
|
-
export
|
|
373
|
+
export const useActiveTooltipLabel = (): ActiveLabel => {
|
|
350
374
|
return useAppSelector(selectActiveLabel);
|
|
351
375
|
};
|
|
352
376
|
|
|
@@ -376,7 +400,7 @@ export var useActiveTooltipLabel = () => {
|
|
|
376
400
|
* @returns Offset of the chart in pixels, or undefined if used outside a chart context.
|
|
377
401
|
* @since 3.1
|
|
378
402
|
*/
|
|
379
|
-
export
|
|
403
|
+
export const useOffset = (): ChartOffset | undefined => {
|
|
380
404
|
return useAppSelector(selectChartOffset);
|
|
381
405
|
};
|
|
382
406
|
|
|
@@ -398,7 +422,7 @@ export var useOffset = () => {
|
|
|
398
422
|
* @returns Plot area of the chart in pixels, or undefined if used outside a chart context.
|
|
399
423
|
* @since 3.1
|
|
400
424
|
*/
|
|
401
|
-
export
|
|
425
|
+
export const usePlotArea = (): PlotArea | undefined => {
|
|
402
426
|
return useAppSelector(selectPlotArea);
|
|
403
427
|
};
|
|
404
428
|
|
|
@@ -420,7 +444,7 @@ export var usePlotArea = () => {
|
|
|
420
444
|
*
|
|
421
445
|
* @since 3.1
|
|
422
446
|
*/
|
|
423
|
-
export
|
|
447
|
+
export const useActiveTooltipDataPoints = <T = unknown>(): ReadonlyArray<T> | undefined => {
|
|
424
448
|
return useAppSelector(selectActiveTooltipDataPoints);
|
|
425
449
|
};
|
|
426
450
|
|
|
@@ -440,9 +464,10 @@ export var useActiveTooltipDataPoints = () => {
|
|
|
440
464
|
* @returns The domain of the X-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
|
|
441
465
|
* @since 3.2
|
|
442
466
|
*/
|
|
443
|
-
export
|
|
444
|
-
|
|
445
|
-
|
|
467
|
+
export const useXAxisDomain = (
|
|
468
|
+
xAxisId: AxisId = defaultAxisId,
|
|
469
|
+
): NumberDomain | CategoricalDomain | undefined => {
|
|
470
|
+
const isPanorama = useIsPanorama();
|
|
446
471
|
return useAppSelector((state) => selectAxisDomain(state, 'xAxis', xAxisId, isPanorama));
|
|
447
472
|
};
|
|
448
473
|
|
|
@@ -461,9 +486,10 @@ export var useXAxisDomain = function useXAxisDomain() {
|
|
|
461
486
|
* @returns The domain of the Y-axis, or `undefined` if it cannot be calculated or if used outside a chart context.
|
|
462
487
|
* @since 3.2
|
|
463
488
|
*/
|
|
464
|
-
export
|
|
465
|
-
|
|
466
|
-
|
|
489
|
+
export const useYAxisDomain = (
|
|
490
|
+
yAxisId: AxisId = defaultAxisId,
|
|
491
|
+
): NumberDomain | CategoricalDomain | undefined => {
|
|
492
|
+
const isPanorama = useIsPanorama();
|
|
467
493
|
return useAppSelector((state) => selectAxisDomain(state, 'yAxis', yAxisId, isPanorama));
|
|
468
494
|
};
|
|
469
495
|
|
|
@@ -478,12 +504,8 @@ export var useYAxisDomain = function useYAxisDomain() {
|
|
|
478
504
|
* @returns {boolean} True if the Tooltip is active, false otherwise.
|
|
479
505
|
* @since 3.7
|
|
480
506
|
*/
|
|
481
|
-
export
|
|
482
|
-
|
|
483
|
-
return (_useAppSelector = useAppSelector(selectIsTooltipActive)) !== null &&
|
|
484
|
-
_useAppSelector !== void 0
|
|
485
|
-
? _useAppSelector
|
|
486
|
-
: false;
|
|
507
|
+
export const useIsTooltipActive = (): boolean => {
|
|
508
|
+
return useAppSelector(selectIsTooltipActive) ?? false;
|
|
487
509
|
};
|
|
488
510
|
|
|
489
511
|
/**
|
|
@@ -497,8 +519,8 @@ export var useIsTooltipActive = () => {
|
|
|
497
519
|
* @returns {Coordinate | undefined} The coordinate of the active Tooltip, or undefined.
|
|
498
520
|
* @since 3.7
|
|
499
521
|
*/
|
|
500
|
-
export
|
|
501
|
-
|
|
522
|
+
export const useActiveTooltipCoordinate = (): Coordinate | undefined => {
|
|
523
|
+
const coordinate = useAppSelector(selectActiveTooltipCoordinate);
|
|
502
524
|
if (coordinate == null) {
|
|
503
525
|
return undefined;
|
|
504
526
|
}
|