@solidports/recharts 0.1.0 → 0.1.1
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/dist/index.d.ts +40 -2
- package/dist/index.js +14238 -7174
- package/dist/{dev.js → index.jsx} +18367 -15900
- package/dist/server.js +48178 -0
- package/package.json +36 -19
- package/src/animation/AnimatedItems.tsx +0 -183
- package/src/animation/AnimationController.ts +0 -33
- package/src/animation/AnimationControllerImpl.ts +0 -36
- package/src/animation/AnimationHandle.ts +0 -307
- package/src/animation/CSSTransitionAnimate.tsx +0 -170
- package/src/animation/JavascriptAnimate.tsx +0 -119
- package/src/animation/easing.ts +0 -221
- package/src/animation/matchBy.ts +0 -164
- package/src/animation/timeoutController.ts +0 -70
- package/src/animation/useAnimationController.tsx +0 -34
- package/src/animation/useAnimationStartSnapshot.ts +0 -118
- package/src/animation/util.ts +0 -41
- package/src/cartesian/Area.tsx +0 -915
- package/src/cartesian/AreaRevealShape.tsx +0 -190
- package/src/cartesian/Bar.tsx +0 -1369
- package/src/cartesian/BarStack.tsx +0 -152
- package/src/cartesian/Brush.tsx +0 -951
- package/src/cartesian/CartesianAxis.tsx +0 -722
- package/src/cartesian/CartesianGrid.tsx +0 -711
- package/src/cartesian/ErrorBar.tsx +0 -361
- package/src/cartesian/Funnel.tsx +0 -803
- package/src/cartesian/GraphicalItemClipPath.tsx +0 -67
- package/src/cartesian/Line.tsx +0 -863
- package/src/cartesian/LineDrawShape.tsx +0 -89
- package/src/cartesian/ReferenceArea.tsx +0 -331
- package/src/cartesian/ReferenceDot.tsx +0 -304
- package/src/cartesian/ReferenceLine.tsx +0 -474
- package/src/cartesian/Scatter.tsx +0 -888
- package/src/cartesian/XAxis.tsx +0 -433
- package/src/cartesian/YAxis.tsx +0 -443
- package/src/cartesian/ZAxis.tsx +0 -155
- package/src/cartesian/cartesianPositionToCSSTranslate.tsx +0 -29
- package/src/cartesian/cartesianViewBoxToTrapezoid.tsx +0 -21
- package/src/cartesian/getCartesianPosition.tsx +0 -267
- package/src/cartesian/getEquidistantTicks.ts +0 -144
- package/src/cartesian/getTicks.ts +0 -225
- package/src/cartesian/isOutsidePosition.ts +0 -15
- package/src/cartesian/useAnimatedLineLength.ts +0 -54
- package/src/chart/AreaChart.tsx +0 -29
- package/src/chart/BarChart.tsx +0 -29
- package/src/chart/CartesianChart.tsx +0 -131
- package/src/chart/CategoricalChart.tsx +0 -94
- package/src/chart/ComposedChart.tsx +0 -29
- package/src/chart/FunnelChart.tsx +0 -29
- package/src/chart/LineChart.tsx +0 -29
- package/src/chart/PieChart.tsx +0 -50
- package/src/chart/PolarChart.tsx +0 -164
- package/src/chart/RadarChart.tsx +0 -70
- package/src/chart/RadialBarChart.tsx +0 -46
- package/src/chart/RechartsWrapper.tsx +0 -551
- package/src/chart/Sankey.tsx +0 -1534
- package/src/chart/ScatterChart.tsx +0 -29
- package/src/chart/SunburstChart.tsx +0 -504
- package/src/chart/Treemap.tsx +0 -1223
- package/src/chart/createInitialRootProps.ts +0 -24
- package/src/chart/types.ts +0 -53
- package/src/component/ActivePoints.tsx +0 -144
- package/src/component/Cell.tsx +0 -37
- package/src/component/Cursor.tsx +0 -185
- package/src/component/Customized.tsx +0 -50
- package/src/component/DefaultLegendContent.tsx +0 -348
- package/src/component/DefaultTooltipContent.tsx +0 -224
- package/src/component/Dots.tsx +0 -157
- package/src/component/Label.tsx +0 -636
- package/src/component/LabelList.tsx +0 -375
- package/src/component/Legend.tsx +0 -512
- package/src/component/ResponsiveContainer.tsx +0 -348
- package/src/component/Text.tsx +0 -541
- package/src/component/Tooltip.tsx +0 -470
- package/src/component/TooltipBoundingBox.tsx +0 -146
- package/src/component/responsiveContainerUtils.ts +0 -134
- package/src/container/ClipPathProvider.tsx +0 -51
- package/src/container/Layer.tsx +0 -38
- package/src/container/RootSurface.tsx +0 -120
- package/src/container/Surface.tsx +0 -61
- package/src/context/CellsContext.tsx +0 -54
- package/src/context/ErrorBarContext.tsx +0 -146
- package/src/context/GraphicalItemChildrenScope.tsx +0 -18
- package/src/context/PanoramaContext.tsx +0 -9
- package/src/context/RegisterGraphicalItemId.tsx +0 -30
- package/src/context/accessibilityContext.tsx +0 -6
- package/src/context/brushUpdateContext.tsx +0 -9
- package/src/context/chartDataContext.tsx +0 -97
- package/src/context/chartLayoutContext.tsx +0 -201
- package/src/context/legendPayloadContext.tsx +0 -20
- package/src/context/legendPortalContext.tsx +0 -12
- package/src/context/tooltipContext.tsx +0 -89
- package/src/context/tooltipPortalContext.tsx +0 -12
- package/src/context/useTooltipAxis.ts +0 -22
- package/src/hooks.ts +0 -476
- package/src/index.ts +0 -280
- package/src/polar/Pie.tsx +0 -1360
- package/src/polar/PolarAngleAxis.tsx +0 -616
- package/src/polar/PolarGrid.tsx +0 -312
- package/src/polar/PolarRadiusAxis.tsx +0 -547
- package/src/polar/Radar.tsx +0 -734
- package/src/polar/RadialBar.tsx +0 -917
- package/src/polar/defaultPolarAngleAxisProps.tsx +0 -27
- package/src/polar/defaultPolarRadiusAxisProps.tsx +0 -25
- package/src/shape/Cross.tsx +0 -89
- package/src/shape/Curve.tsx +0 -343
- package/src/shape/Dot.tsx +0 -70
- package/src/shape/Polygon.tsx +0 -195
- package/src/shape/Rectangle.tsx +0 -470
- package/src/shape/Sector.tsx +0 -347
- package/src/shape/Symbols.tsx +0 -139
- package/src/shape/Trapezoid.tsx +0 -280
- package/src/state/RechartsStateContext.tsx +0 -12
- package/src/state/RechartsStateProvider.tsx +0 -87
- package/src/state/RechartsStoreContext.tsx +0 -25
- package/src/state/RechartsStoreProvider.tsx +0 -35
- package/src/state/ReportChartProps.tsx +0 -40
- package/src/state/ReportEventSettings.tsx +0 -30
- package/src/state/ReportMainChartProps.tsx +0 -61
- package/src/state/ReportPolarOptions.tsx +0 -35
- package/src/state/SetGraphicalItem.ts +0 -79
- package/src/state/SetLegendPayload.ts +0 -134
- package/src/state/SetTooltipEntrySettings.tsx +0 -72
- package/src/state/actions.ts +0 -464
- package/src/state/brushSlice.ts +0 -13
- package/src/state/cartesianAxisSlice.ts +0 -141
- package/src/state/chartDataSlice.ts +0 -50
- package/src/state/chartState.ts +0 -297
- package/src/state/errorBarSlice.ts +0 -29
- package/src/state/eventSettingsSlice.ts +0 -8
- package/src/state/events.ts +0 -76
- package/src/state/externalEventsMiddleware.ts +0 -255
- package/src/state/graphicalItemsSlice.ts +0 -74
- package/src/state/hooks/useChartSelectors.tsx +0 -45
- package/src/state/keyboardEventsMiddleware.ts +0 -228
- package/src/state/layoutSlice.ts +0 -21
- package/src/state/legendSlice.ts +0 -57
- package/src/state/mouseEventsMiddleware.ts +0 -185
- package/src/state/optionsSlice.ts +0 -47
- package/src/state/polarAxisSlice.ts +0 -10
- package/src/state/polarOptionsSlice.ts +0 -12
- package/src/state/rawData.ts +0 -26
- package/src/state/referenceElementsSlice.ts +0 -40
- package/src/state/renderedTicksSlice.ts +0 -15
- package/src/state/rootPropsSlice.ts +0 -47
- package/src/state/selectors/areaSelectors.ts +0 -240
- package/src/state/selectors/arrayEqualityCheck.ts +0 -29
- package/src/state/selectors/axisSelectors.ts +0 -2157
- package/src/state/selectors/barSelectors.ts +0 -310
- package/src/state/selectors/barStackSelectors.ts +0 -77
- package/src/state/selectors/brushSelectors.ts +0 -33
- package/src/state/selectors/chartSelector.ts +0 -185
- package/src/state/selectors/combiners/combineActiveLabel.ts +0 -16
- package/src/state/selectors/combiners/combineActiveTooltipIndex.ts +0 -95
- package/src/state/selectors/combiners/combineAllBarPositions.ts +0 -122
- package/src/state/selectors/combiners/combineAxisRangeWithReverse.ts +0 -16
- package/src/state/selectors/combiners/combineBarPosition.ts +0 -23
- package/src/state/selectors/combiners/combineBarSizeList.ts +0 -80
- package/src/state/selectors/combiners/combineCheckedDomain.ts +0 -48
- package/src/state/selectors/combiners/combineConfiguredScale.ts +0 -111
- package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.ts +0 -45
- package/src/state/selectors/combiners/combineDisplayedStackedData.ts +0 -50
- package/src/state/selectors/combiners/combineInverseScaleFunction.ts +0 -16
- package/src/state/selectors/combiners/combineRealScaleType.ts +0 -44
- package/src/state/selectors/combiners/combineStackedData.ts +0 -27
- package/src/state/selectors/combiners/combineTooltipInteractionState.ts +0 -86
- package/src/state/selectors/combiners/combineTooltipPayload.ts +0 -205
- package/src/state/selectors/combiners/combineTooltipPayloadConfigurations.ts +0 -58
- package/src/state/selectors/containerSelectors.ts +0 -12
- package/src/state/selectors/dataSelectors.ts +0 -88
- package/src/state/selectors/funnelSelectors.ts +0 -75
- package/src/state/selectors/graphicalItemSelectors.ts +0 -30
- package/src/state/selectors/legendSelectors.ts +0 -29
- package/src/state/selectors/lineSelectors.ts +0 -134
- package/src/state/selectors/numberDomainEqualityCheck.ts +0 -14
- package/src/state/selectors/pickAxisId.ts +0 -5
- package/src/state/selectors/pickAxisType.ts +0 -3
- package/src/state/selectors/pieSelectors.ts +0 -97
- package/src/state/selectors/polarAxisSelectors.ts +0 -201
- package/src/state/selectors/polarGridSelectors.ts +0 -28
- package/src/state/selectors/polarScaleSelectors.ts +0 -133
- package/src/state/selectors/polarSelectors.ts +0 -219
- package/src/state/selectors/radarSelectors.ts +0 -191
- package/src/state/selectors/radialBarSelectors.ts +0 -435
- package/src/state/selectors/rootPropsSelectors.ts +0 -25
- package/src/state/selectors/scatterSelectors.ts +0 -96
- package/src/state/selectors/selectActivePropsFromChartPointer.ts +0 -26
- package/src/state/selectors/selectAllAxes.ts +0 -17
- package/src/state/selectors/selectChartOffset.ts +0 -16
- package/src/state/selectors/selectChartOffsetInternal.ts +0 -136
- package/src/state/selectors/selectLegendArea.ts +0 -20
- package/src/state/selectors/selectPlotArea.ts +0 -22
- package/src/state/selectors/selectTooltipAxisId.ts +0 -7
- package/src/state/selectors/selectTooltipAxisType.ts +0 -32
- package/src/state/selectors/selectTooltipEventType.ts +0 -48
- package/src/state/selectors/selectTooltipPayloadSearcher.ts +0 -6
- package/src/state/selectors/selectTooltipSettings.ts +0 -39
- package/src/state/selectors/selectTooltipState.ts +0 -8
- package/src/state/selectors/selectors.ts +0 -271
- package/src/state/selectors/tooltipSelectors.ts +0 -578
- package/src/state/selectors/touchSelectors.ts +0 -31
- package/src/state/store.ts +0 -29
- package/src/state/storeIdentity.ts +0 -9
- package/src/state/teardownWrite.ts +0 -10
- package/src/state/tooltipInteraction.ts +0 -23
- package/src/state/tooltipSlice.ts +0 -334
- package/src/state/touchEventsMiddleware.ts +0 -214
- package/src/state/types/AnimationSettings.ts +0 -20
- package/src/state/types/AreaSettings.ts +0 -14
- package/src/state/types/BarSettings.ts +0 -15
- package/src/state/types/LineSettings.ts +0 -9
- package/src/state/types/PieSettings.ts +0 -34
- package/src/state/types/RadarSettings.ts +0 -5
- package/src/state/types/RadialBarSettings.ts +0 -10
- package/src/state/types/ScatterSettings.ts +0 -12
- package/src/state/types/StackedGraphicalItem.ts +0 -34
- package/src/state/useChartState.ts +0 -17
- package/src/state/zIndexSlice.ts +0 -39
- package/src/synchronisation/syncSelectors.ts +0 -7
- package/src/synchronisation/types.ts +0 -44
- package/src/synchronisation/useChartSynchronisation.tsx +0 -404
- package/src/theme/RechartsTheme.ts +0 -16
- package/src/theme/RechartsThemeContext.ts +0 -19
- package/src/theme/darkTheme.ts +0 -13
- package/src/theme/graphicalItemIdentity.ts +0 -70
- package/src/theme/legacyTheme.ts +0 -17
- package/src/theme/lightTheme.ts +0 -13
- package/src/types.ts +0 -54
- package/src/util/ActiveShapeUtils.tsx +0 -162
- package/src/util/BarUtils.tsx +0 -62
- package/src/util/BarePortal.tsx +0 -50
- package/src/util/CamelCaseSVGAttrs.ts +0 -34
- package/src/util/CartesianUtils.ts +0 -48
- package/src/util/ChartUtils.ts +0 -802
- package/src/util/Constants.ts +0 -42
- package/src/util/CssPrefixUtils.ts +0 -20
- package/src/util/DOMUtils.ts +0 -129
- package/src/util/DataUtils.ts +0 -216
- package/src/util/Events.ts +0 -16
- package/src/util/FunnelUtils.tsx +0 -15
- package/src/util/Global.ts +0 -12
- package/src/util/IfOverflow.ts +0 -15
- package/src/util/LRUCache.ts +0 -41
- package/src/util/LogUtils.ts +0 -22
- package/src/util/PolarUtils.ts +0 -132
- package/src/util/RadialBarUtils.tsx +0 -24
- package/src/util/ReactUtils.ts +0 -95
- package/src/util/ReduceCSSCalc.ts +0 -187
- package/src/util/ScatterUtils.tsx +0 -52
- package/src/util/ShapeElementProps.tsx +0 -87
- package/src/util/TickUtils.ts +0 -60
- package/src/util/XAxisUtils.ts +0 -48
- package/src/util/YAxisUtils.ts +0 -48
- package/src/util/axisPropsAreEqual.ts +0 -48
- package/src/util/createCartesianCharts.tsx +0 -150
- package/src/util/createEventProxy.ts +0 -20
- package/src/util/createPolarCharts.tsx +0 -112
- package/src/util/cursor/getCursorPoints.ts +0 -46
- package/src/util/cursor/getCursorRectangle.ts +0 -28
- package/src/util/cursor/getRadialCursorPoints.ts +0 -32
- package/src/util/excludeEventProps.ts +0 -171
- package/src/util/getActiveCoordinate.ts +0 -213
- package/src/util/getAxisTypeBasedOnLayout.ts +0 -21
- package/src/util/getClassNameFromUnknown.ts +0 -6
- package/src/util/getEveryNth.ts +0 -27
- package/src/util/getRadiusAndStrokeWidthFromDot.ts +0 -35
- package/src/util/getRelativeCoordinate.ts +0 -80
- package/src/util/getSliced.ts +0 -13
- package/src/util/hoverDedupe.ts +0 -41
- package/src/util/isDomainSpecifiedByUser.ts +0 -219
- package/src/util/isWellBehavedNumber.ts +0 -7
- package/src/util/pathTotalLength.ts +0 -25
- package/src/util/payload/getUniqPayload.ts +0 -28
- package/src/util/propsAreEqual.ts +0 -121
- package/src/util/resolveDefaultProps.ts +0 -161
- package/src/util/round.ts +0 -32
- package/src/util/scale/CartesianScaleHelper.ts +0 -72
- package/src/util/scale/CustomScaleDefinition.ts +0 -81
- package/src/util/scale/RechartsScale.ts +0 -130
- package/src/util/scale/createCategoricalInverse.ts +0 -72
- package/src/util/scale/getNiceTickValues.ts +0 -311
- package/src/util/scale/index.ts +0 -2
- package/src/util/scale/util/arithmetic.ts +0 -54
- package/src/util/solid-1-compat.ts +0 -310
- package/src/util/solidJsxCamelAugment.d.ts +0 -84
- package/src/util/stacks/getStackSeriesIdentifier.ts +0 -21
- package/src/util/stacks/stackTypes.ts +0 -60
- package/src/util/structurallyEqual.ts +0 -31
- package/src/util/svgPropertiesAndEvents.ts +0 -53
- package/src/util/svgPropertiesNoEvents.ts +0 -571
- package/src/util/tooltip/translate.ts +0 -171
- package/src/util/typedDataKey.ts +0 -48
- package/src/util/types.ts +0 -1560
- package/src/util/useAnimationId.ts +0 -31
- package/src/util/useElementOffset.ts +0 -110
- package/src/util/useId.ts +0 -8
- package/src/util/usePrefersReducedMotion.ts +0 -48
- package/src/util/useReportScale.ts +0 -24
- package/src/util/useUniqueId.ts +0 -30
- package/src/zIndex/DefaultZIndexes.ts +0 -84
- package/src/zIndex/ZIndexLayer.tsx +0 -121
- package/src/zIndex/ZIndexPortal.tsx +0 -79
- package/src/zIndex/getZIndexFromUnknown.ts +0 -14
- package/src/zIndex/zIndexSelectors.ts +0 -48
|
@@ -1,435 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-cycle */
|
|
2
|
-
import type { JSX } from '@solidjs/web';
|
|
3
|
-
import { computeRadialBarDataItems, type RadialBarDataItem } from "../../polar/RadialBar"
|
|
4
|
-
import { selectChartDataAndAlwaysIgnoreIndexes, selectChartDataWithIndexes } from "./dataSelectors"
|
|
5
|
-
import type { ChartState } from "../store"
|
|
6
|
-
import type { ChartDataState } from "../chartDataSlice"
|
|
7
|
-
import type { AxisId } from "../cartesianAxisSlice"
|
|
8
|
-
import type { CategoricalDomain, LayoutType, LegendType, TickItem } from "../../util/types"
|
|
9
|
-
import {
|
|
10
|
-
selectPolarAxisScale,
|
|
11
|
-
selectPolarAxisTicks,
|
|
12
|
-
selectPolarGraphicalItemAxisTicks,
|
|
13
|
-
} from "./polarScaleSelectors"
|
|
14
|
-
import { type BaseAxisWithScale, combineStackGroups, selectHasBar, selectTooltipAxis } from "./axisSelectors"
|
|
15
|
-
import {
|
|
16
|
-
selectAngleAxis,
|
|
17
|
-
selectAngleAxisRangeWithReversed,
|
|
18
|
-
selectPolarViewBox,
|
|
19
|
-
selectRadiusAxis,
|
|
20
|
-
selectRadiusAxisRangeWithReversed,
|
|
21
|
-
} from "./polarAxisSelectors"
|
|
22
|
-
import { selectPolarAxisCheckedDomain } from "./polarSelectors"
|
|
23
|
-
import { rechartsScaleFactory } from "../../util/scale/RechartsScale"
|
|
24
|
-
import { combineConfiguredScale } from "./combiners/combineConfiguredScale"
|
|
25
|
-
import { combineRealScaleType } from "./combiners/combineRealScaleType"
|
|
26
|
-
import { selectChartName } from "./rootPropsSelectors"
|
|
27
|
-
import { selectChartLayout } from "../../context/chartLayoutContext"
|
|
28
|
-
import {
|
|
29
|
-
type BarPositionPosition,
|
|
30
|
-
getBandSizeOfAxis,
|
|
31
|
-
getBaseValueOfBar,
|
|
32
|
-
isCategoricalAxis,
|
|
33
|
-
} from "../../util/ChartUtils"
|
|
34
|
-
import type { BarWithPosition, SizeList } from "./barSelectors"
|
|
35
|
-
import {
|
|
36
|
-
selectBarCategoryGap,
|
|
37
|
-
selectBarGap,
|
|
38
|
-
selectReverseStackOrder,
|
|
39
|
-
selectRootBarSize,
|
|
40
|
-
selectRootMaxBarSize,
|
|
41
|
-
selectStackOffsetType,
|
|
42
|
-
} from "./rootPropsSelectors"
|
|
43
|
-
import type { PolarGraphicalItemSettings } from "../graphicalItemsSlice"
|
|
44
|
-
import {
|
|
45
|
-
type PolarAxisType,
|
|
46
|
-
selectPolarItemsSettings,
|
|
47
|
-
selectUnfilteredPolarItems,
|
|
48
|
-
} from "./polarSelectors"
|
|
49
|
-
import type { AngleAxisSettings, RadiusAxisSettings } from "../polarAxisSlice"
|
|
50
|
-
import type { LegendPayload } from "../../component/DefaultLegendContent"
|
|
51
|
-
import { isNullish } from "../../util/DataUtils"
|
|
52
|
-
|
|
53
|
-
import type { AllStackGroups, StackSeries } from "../../util/stacks/stackTypes"
|
|
54
|
-
import {
|
|
55
|
-
combineDisplayedStackedData,
|
|
56
|
-
type DisplayedStackedData,
|
|
57
|
-
} from "./combiners/combineDisplayedStackedData"
|
|
58
|
-
import type { RadialBarSettings } from "../types/RadialBarSettings"
|
|
59
|
-
import { type DefinitelyStackedGraphicalItem, isStacked } from "../types/StackedGraphicalItem"
|
|
60
|
-
import { combineBarSizeList } from "./combiners/combineBarSizeList"
|
|
61
|
-
import { combineAllBarPositions } from "./combiners/combineAllBarPositions"
|
|
62
|
-
import { combineStackedData } from "./combiners/combineStackedData"
|
|
63
|
-
import type { RechartsScale } from "../../util/scale/RechartsScale"
|
|
64
|
-
import { chartSelector } from "./chartSelector"
|
|
65
|
-
import { combineBarPosition } from "./combiners/combineBarPosition"
|
|
66
|
-
|
|
67
|
-
const selectRadiusAxisForRadialBar = (
|
|
68
|
-
state: ChartState,
|
|
69
|
-
radiusAxisId: AxisId,
|
|
70
|
-
): RadiusAxisSettings => selectRadiusAxis(state, radiusAxisId)
|
|
71
|
-
|
|
72
|
-
const selectRadiusAxisScaleForRadar = chartSelector((
|
|
73
|
-
state: ChartState,
|
|
74
|
-
radiusAxisId: AxisId,
|
|
75
|
-
): RechartsScale | undefined => selectPolarAxisScale(state, "radiusAxis", radiusAxisId))
|
|
76
|
-
|
|
77
|
-
export const selectRadiusAxisWithScale = chartSelector(function selectRadiusAxisWithScale(state: ChartState, radiusAxisId: AxisId): BaseAxisWithScale | undefined {
|
|
78
|
-
const axis = selectRadiusAxisForRadialBar(state, radiusAxisId)
|
|
79
|
-
const scale = selectRadiusAxisScaleForRadar(state, radiusAxisId)
|
|
80
|
-
if (axis == null || scale == null) {
|
|
81
|
-
return undefined
|
|
82
|
-
}
|
|
83
|
-
return { ...axis, scale }
|
|
84
|
-
})
|
|
85
|
-
|
|
86
|
-
export const selectRadiusAxisTicks = chartSelector((
|
|
87
|
-
state: ChartState,
|
|
88
|
-
radiusAxisId: AxisId,
|
|
89
|
-
): ReadonlyArray<TickItem> | undefined => {
|
|
90
|
-
return selectPolarGraphicalItemAxisTicks(state, "radiusAxis", radiusAxisId, false)
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
const selectAngleAxisForRadialBar = (
|
|
94
|
-
state: ChartState,
|
|
95
|
-
_radiusAxisId: AxisId,
|
|
96
|
-
angleAxisId: AxisId,
|
|
97
|
-
): AngleAxisSettings => selectAngleAxis(state, angleAxisId)
|
|
98
|
-
|
|
99
|
-
const selectAngleAxisScaleForRadialBar = chartSelector((
|
|
100
|
-
state: ChartState,
|
|
101
|
-
_radiusAxisId: AxisId,
|
|
102
|
-
angleAxisId: AxisId,
|
|
103
|
-
): RechartsScale | undefined => selectPolarAxisScale(state, "angleAxis", angleAxisId))
|
|
104
|
-
|
|
105
|
-
export const selectAngleAxisWithScale = chartSelector(function selectAngleAxisWithScale(state: ChartState, _radiusAxisId: AxisId, angleAxisId: AxisId): BaseAxisWithScale | undefined {
|
|
106
|
-
const axis = selectAngleAxisForRadialBar(state, _radiusAxisId, angleAxisId)
|
|
107
|
-
const scale = selectAngleAxisScaleForRadialBar(state, _radiusAxisId, angleAxisId)
|
|
108
|
-
if (axis == null || scale == null) {
|
|
109
|
-
return undefined
|
|
110
|
-
}
|
|
111
|
-
return { ...axis, scale }
|
|
112
|
-
})
|
|
113
|
-
|
|
114
|
-
const selectAngleAxisTicks = chartSelector((
|
|
115
|
-
state: ChartState,
|
|
116
|
-
_radiusAxisId: AxisId,
|
|
117
|
-
angleAxisId: AxisId,
|
|
118
|
-
): ReadonlyArray<TickItem> | undefined => {
|
|
119
|
-
return selectPolarAxisTicks(state, "angleAxis", angleAxisId, false)
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
const selectSynchronisedRadialBarSettings = chartSelector(function selectSynchronisedRadialBarSettings(state: ChartState, radialBarSettings: RadialBarSettings): RadialBarSettings | undefined {
|
|
123
|
-
const graphicalItems = selectUnfilteredPolarItems(state)
|
|
124
|
-
if (
|
|
125
|
-
graphicalItems.some(
|
|
126
|
-
(pgis) =>
|
|
127
|
-
pgis.type === "radialBar" &&
|
|
128
|
-
radialBarSettings.dataKey === pgis.dataKey &&
|
|
129
|
-
radialBarSettings.stackId === pgis.stackId,
|
|
130
|
-
)
|
|
131
|
-
) {
|
|
132
|
-
return radialBarSettings
|
|
133
|
-
}
|
|
134
|
-
return undefined
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
export const selectBandSizeOfPolarAxis = chartSelector(function selectBandSizeOfPolarAxis(state: ChartState, radiusAxisId: AxisId, angleAxisId: AxisId): number | undefined {
|
|
138
|
-
const layout: LayoutType = selectChartLayout(state)
|
|
139
|
-
const radiusAxis = selectRadiusAxisWithScale(state, radiusAxisId)
|
|
140
|
-
const radiusAxisTicks = selectRadiusAxisTicks(state, radiusAxisId)
|
|
141
|
-
const angleAxis = selectAngleAxisWithScale(state, radiusAxisId, angleAxisId)
|
|
142
|
-
const angleAxisTicks = selectAngleAxisTicks(state, radiusAxisId, angleAxisId)
|
|
143
|
-
|
|
144
|
-
if (isCategoricalAxis(layout, "radiusAxis")) {
|
|
145
|
-
return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, false)
|
|
146
|
-
}
|
|
147
|
-
return getBandSizeOfAxis(angleAxis, angleAxisTicks, false)
|
|
148
|
-
})
|
|
149
|
-
|
|
150
|
-
export const selectBaseValue = chartSelector(function selectBaseValue(state: ChartState, radiusAxisId: AxisId, angleAxisId: AxisId): number | unknown {
|
|
151
|
-
const angleAxis = selectAngleAxisWithScale(state, radiusAxisId, angleAxisId)
|
|
152
|
-
const radiusAxis = selectRadiusAxisWithScale(state, radiusAxisId)
|
|
153
|
-
const layout = selectChartLayout(state)
|
|
154
|
-
const numericAxis = layout === "radial" ? angleAxis : radiusAxis
|
|
155
|
-
if (numericAxis == null || numericAxis.scale == null) {
|
|
156
|
-
return undefined
|
|
157
|
-
}
|
|
158
|
-
return getBaseValueOfBar({ numericAxis })
|
|
159
|
-
})
|
|
160
|
-
|
|
161
|
-
const isRadialBar = (item: PolarGraphicalItemSettings): item is RadialBarSettings =>
|
|
162
|
-
item.type === "radialBar"
|
|
163
|
-
|
|
164
|
-
const selectAllVisibleRadialBars = chartSelector(function selectAllVisibleRadialBars(state: ChartState, layout: LayoutType, angleAxisId: AxisId, radiusAxisId: AxisId): ReadonlyArray<RadialBarSettings> {
|
|
165
|
-
const allItems = selectUnfilteredPolarItems(state)
|
|
166
|
-
return allItems
|
|
167
|
-
.filter((i) => {
|
|
168
|
-
if (layout === "centric") {
|
|
169
|
-
return i.angleAxisId === angleAxisId
|
|
170
|
-
}
|
|
171
|
-
return i.radiusAxisId === radiusAxisId
|
|
172
|
-
})
|
|
173
|
-
.filter((i) => i.hide === false)
|
|
174
|
-
.filter(isRadialBar)
|
|
175
|
-
})
|
|
176
|
-
|
|
177
|
-
export const selectPolarBarSizeList = chartSelector(function selectPolarBarSizeList(state: ChartState, radiusAxisId: AxisId, angleAxisId: AxisId, _radialBarSettings: RadialBarSettings): SizeList {
|
|
178
|
-
const layout = selectChartLayout(state)
|
|
179
|
-
return combineBarSizeList(
|
|
180
|
-
selectAllVisibleRadialBars(state, layout, angleAxisId, radiusAxisId),
|
|
181
|
-
selectRootBarSize(state),
|
|
182
|
-
undefined,
|
|
183
|
-
)
|
|
184
|
-
})
|
|
185
|
-
|
|
186
|
-
export const selectPolarBarBandSize = chartSelector(function selectPolarBarBandSize(state: ChartState, radiusAxisId: AxisId, angleAxisId: AxisId, childMaxBarSize: number | undefined): number {
|
|
187
|
-
const layout: LayoutType = selectChartLayout(state)
|
|
188
|
-
const globalMaxBarSize = selectRootMaxBarSize(state)
|
|
189
|
-
const angleAxis = selectAngleAxisWithScale(state, radiusAxisId, angleAxisId)
|
|
190
|
-
const angleAxisTicks = selectAngleAxisTicks(state, radiusAxisId, angleAxisId)
|
|
191
|
-
const radiusAxis = selectRadiusAxisWithScale(state, radiusAxisId)
|
|
192
|
-
const radiusAxisTicks = selectRadiusAxisTicks(state, radiusAxisId)
|
|
193
|
-
|
|
194
|
-
const maxBarSize: number | undefined = isNullish(childMaxBarSize)
|
|
195
|
-
? globalMaxBarSize
|
|
196
|
-
: childMaxBarSize
|
|
197
|
-
if (layout === "centric") {
|
|
198
|
-
return getBandSizeOfAxis(angleAxis, angleAxisTicks, true) ?? maxBarSize ?? 0
|
|
199
|
-
}
|
|
200
|
-
return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, true) ?? maxBarSize ?? 0
|
|
201
|
-
})
|
|
202
|
-
|
|
203
|
-
export const selectAllPolarBarPositions = chartSelector(function selectAllPolarBarPositions(state: ChartState, radiusAxisId: AxisId, angleAxisId: AxisId, radialBarSettings: RadialBarSettings): ReadonlyArray<BarWithPosition> | undefined {
|
|
204
|
-
return combineAllBarPositions(
|
|
205
|
-
selectPolarBarSizeList(state, radiusAxisId, angleAxisId, radialBarSettings),
|
|
206
|
-
selectRootMaxBarSize(state),
|
|
207
|
-
selectBarGap(state),
|
|
208
|
-
selectBarCategoryGap(state),
|
|
209
|
-
selectPolarBarBandSize(state, radiusAxisId, angleAxisId, radialBarSettings.maxBarSize),
|
|
210
|
-
selectBandSizeOfPolarAxis(state, radiusAxisId, angleAxisId),
|
|
211
|
-
radialBarSettings.maxBarSize,
|
|
212
|
-
)
|
|
213
|
-
})
|
|
214
|
-
|
|
215
|
-
export const selectPolarBarPosition = chartSelector(function selectPolarBarPosition(state: ChartState, radiusAxisId: AxisId, angleAxisId: AxisId, radialBarSettings: RadialBarSettings): BarPositionPosition | undefined {
|
|
216
|
-
return combineBarPosition(
|
|
217
|
-
selectAllPolarBarPositions(state, radiusAxisId, angleAxisId, radialBarSettings),
|
|
218
|
-
selectSynchronisedRadialBarSettings(state, radialBarSettings),
|
|
219
|
-
)
|
|
220
|
-
})
|
|
221
|
-
|
|
222
|
-
const selectStackedRadialBars = chartSelector(function selectStackedRadialBars(state: ChartState, axisType: PolarAxisType, polarAxisId: AxisId): ReadonlyArray<DefinitelyStackedGraphicalItem> {
|
|
223
|
-
return selectPolarItemsSettings(state, axisType, polarAxisId)
|
|
224
|
-
.filter(isRadialBar)
|
|
225
|
-
.filter(isStacked)
|
|
226
|
-
})
|
|
227
|
-
|
|
228
|
-
const selectPolarCombinedStackedData = chartSelector(function selectPolarCombinedStackedData(state: ChartState, axisType: PolarAxisType, polarAxisId: AxisId): DisplayedStackedData {
|
|
229
|
-
return combineDisplayedStackedData(
|
|
230
|
-
selectStackedRadialBars(state, axisType, polarAxisId),
|
|
231
|
-
selectChartDataAndAlwaysIgnoreIndexes(state),
|
|
232
|
-
selectTooltipAxis(state),
|
|
233
|
-
)
|
|
234
|
-
})
|
|
235
|
-
|
|
236
|
-
const selectRadialBarStackGroups = chartSelector(function selectRadialBarStackGroups(state: ChartState, axisType: PolarAxisType, polarAxisId: AxisId): AllStackGroups | undefined {
|
|
237
|
-
return combineStackGroups(
|
|
238
|
-
selectPolarCombinedStackedData(state, axisType, polarAxisId),
|
|
239
|
-
selectStackedRadialBars(state, axisType, polarAxisId),
|
|
240
|
-
selectStackOffsetType(state),
|
|
241
|
-
selectReverseStackOrder(state),
|
|
242
|
-
)
|
|
243
|
-
})
|
|
244
|
-
|
|
245
|
-
const selectRadialBarStackGroupsByLayout = chartSelector(function selectRadialBarStackGroupsByLayout(state: ChartState, radiusAxisId: AxisId, angleAxisId: AxisId): AllStackGroups | undefined {
|
|
246
|
-
const layout = selectChartLayout(state)
|
|
247
|
-
if (layout === "centric") {
|
|
248
|
-
return selectRadialBarStackGroups(state, "radiusAxis", radiusAxisId)
|
|
249
|
-
}
|
|
250
|
-
return selectRadialBarStackGroups(state, "angleAxis", angleAxisId)
|
|
251
|
-
})
|
|
252
|
-
|
|
253
|
-
const selectPolarStackedData = chartSelector(function selectPolarStackedData(state: ChartState, radiusAxisId: AxisId, angleAxisId: AxisId, radialBarSettings: RadialBarSettings): StackSeries | undefined {
|
|
254
|
-
return combineStackedData(
|
|
255
|
-
selectRadialBarStackGroupsByLayout(state, radiusAxisId, angleAxisId),
|
|
256
|
-
selectSynchronisedRadialBarSettings(state, radialBarSettings),
|
|
257
|
-
)
|
|
258
|
-
})
|
|
259
|
-
|
|
260
|
-
const selectRadiusAxisWithScaleWithOverride = chartSelector(function selectRadiusAxisWithScaleWithOverride(state: ChartState, radiusAxisId: AxisId, override: RadiusAxisSettings): BaseAxisWithScale | undefined {
|
|
261
|
-
const axisRange = selectRadiusAxisRangeWithReversed(state, radiusAxisId)
|
|
262
|
-
if (axisRange == null) {
|
|
263
|
-
return undefined
|
|
264
|
-
}
|
|
265
|
-
/* Use override domain directly when set — bypasses the data-derived categorical
|
|
266
|
-
domain that would otherwise swallow a user-specified numerical domain. */
|
|
267
|
-
const axisDomain = override.domain != null
|
|
268
|
-
? (override.domain as unknown as CategoricalDomain)
|
|
269
|
-
: selectPolarAxisCheckedDomain(state, "radiusAxis", radiusAxisId)
|
|
270
|
-
if (axisDomain == null) {
|
|
271
|
-
return undefined
|
|
272
|
-
}
|
|
273
|
-
const realScaleType = combineRealScaleType(override, selectHasBar(state), selectChartName(state))
|
|
274
|
-
const scale: RechartsScale | undefined = rechartsScaleFactory(
|
|
275
|
-
combineConfiguredScale(override, realScaleType, axisDomain, axisRange),
|
|
276
|
-
)
|
|
277
|
-
if (scale == null) {
|
|
278
|
-
return undefined
|
|
279
|
-
}
|
|
280
|
-
return { ...override, scale }
|
|
281
|
-
})
|
|
282
|
-
|
|
283
|
-
const selectAngleAxisWithScaleWithOverride = chartSelector(function selectAngleAxisWithScaleWithOverride(state: ChartState, _radiusAxisId: AxisId, angleAxisId: AxisId, override: AngleAxisSettings): BaseAxisWithScale | undefined {
|
|
284
|
-
const axisRange = selectAngleAxisRangeWithReversed(state, angleAxisId)
|
|
285
|
-
if (axisRange == null) {
|
|
286
|
-
return undefined
|
|
287
|
-
}
|
|
288
|
-
/* Use override domain directly when set — same rationale as selectRadiusAxisWithScaleWithOverride. */
|
|
289
|
-
const axisDomain = override.domain != null
|
|
290
|
-
? (override.domain as unknown as CategoricalDomain)
|
|
291
|
-
: selectPolarAxisCheckedDomain(state, "angleAxis", angleAxisId)
|
|
292
|
-
if (axisDomain == null) {
|
|
293
|
-
return undefined
|
|
294
|
-
}
|
|
295
|
-
const realScaleType = combineRealScaleType(override, selectHasBar(state), selectChartName(state))
|
|
296
|
-
const scale: RechartsScale | undefined = rechartsScaleFactory(
|
|
297
|
-
combineConfiguredScale(override, realScaleType, axisDomain, axisRange),
|
|
298
|
-
)
|
|
299
|
-
if (scale == null) {
|
|
300
|
-
return undefined
|
|
301
|
-
}
|
|
302
|
-
return { ...override, scale }
|
|
303
|
-
})
|
|
304
|
-
|
|
305
|
-
export const pickMaxBarSize = (
|
|
306
|
-
_state: ChartState,
|
|
307
|
-
_radiusAxisId: AxisId,
|
|
308
|
-
_angleAxisId: AxisId,
|
|
309
|
-
radialBarSettings: RadialBarSettings,
|
|
310
|
-
_cells: ReadonlyArray<Record<string, unknown>> | undefined,
|
|
311
|
-
): number | undefined => radialBarSettings.maxBarSize
|
|
312
|
-
|
|
313
|
-
export const selectRadialBarSectors = chartSelector(function selectRadialBarSectors(state: ChartState, radiusAxisId: AxisId, angleAxisId: AxisId, radialBarSettings: RadialBarSettings, cells: ReadonlyArray<Record<string, unknown>> | undefined, radiusAxisOverride?: RadiusAxisSettings, angleAxisOverride?: AngleAxisSettings): ReadonlyArray<RadialBarDataItem> {
|
|
314
|
-
const angleAxis = angleAxisOverride != null
|
|
315
|
-
? selectAngleAxisWithScaleWithOverride(state, radiusAxisId, angleAxisId, angleAxisOverride)
|
|
316
|
-
: selectAngleAxisWithScale(state, radiusAxisId, angleAxisId)
|
|
317
|
-
const angleAxisTicks = selectAngleAxisTicks(state, radiusAxisId, angleAxisId)
|
|
318
|
-
const radiusAxis = radiusAxisOverride != null
|
|
319
|
-
? selectRadiusAxisWithScaleWithOverride(state, radiusAxisId, radiusAxisOverride)
|
|
320
|
-
: selectRadiusAxisWithScale(state, radiusAxisId)
|
|
321
|
-
const radiusAxisTicks = selectRadiusAxisTicks(state, radiusAxisId)
|
|
322
|
-
const { chartData, dataStartIndex, dataEndIndex }: ChartDataState =
|
|
323
|
-
selectChartDataWithIndexes(state)
|
|
324
|
-
const syncedSettings = selectSynchronisedRadialBarSettings(state, radialBarSettings)
|
|
325
|
-
const layout: LayoutType = selectChartLayout(state)
|
|
326
|
-
/* When an override is active, derive bandSize from the override scale so
|
|
327
|
-
override domain mutations change bar widths (bandwidth differs per domain size). */
|
|
328
|
-
const bandSize = (() => {
|
|
329
|
-
const legacyBandSize = selectBandSizeOfPolarAxis(state, radiusAxisId, angleAxisId)
|
|
330
|
-
if (radiusAxisOverride == null || radiusAxis == null) {
|
|
331
|
-
return legacyBandSize
|
|
332
|
-
}
|
|
333
|
-
if (isCategoricalAxis(layout, "radiusAxis")) {
|
|
334
|
-
return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, false) ?? legacyBandSize
|
|
335
|
-
}
|
|
336
|
-
const overrideAngleAxis = angleAxis ?? selectAngleAxisWithScale(state, radiusAxisId, angleAxisId)
|
|
337
|
-
return getBandSizeOfAxis(overrideAngleAxis, angleAxisTicks, false) ?? legacyBandSize
|
|
338
|
-
})()
|
|
339
|
-
const baseValue = selectBaseValue(state, radiusAxisId, angleAxisId)
|
|
340
|
-
const polarViewBox = selectPolarViewBox(state)
|
|
341
|
-
/* Recompute bar positions using override band size so pos.size reflects new axis scale. */
|
|
342
|
-
const pos = (() => {
|
|
343
|
-
if (radiusAxisOverride == null) {
|
|
344
|
-
return selectPolarBarPosition(state, radiusAxisId, angleAxisId, radialBarSettings)
|
|
345
|
-
}
|
|
346
|
-
const sizeList = selectPolarBarSizeList(state, radiusAxisId, angleAxisId, radialBarSettings)
|
|
347
|
-
const globalMaxBarSize = selectRootMaxBarSize(state)
|
|
348
|
-
const childMaxBarSize = pickMaxBarSize(state, radiusAxisId, angleAxisId, radialBarSettings, cells)
|
|
349
|
-
const maxBarSize: number | undefined = isNullish(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize
|
|
350
|
-
const overrideBandSize: number = (() => {
|
|
351
|
-
if (radiusAxis == null) return 0
|
|
352
|
-
if (isCategoricalAxis(layout, "radiusAxis")) {
|
|
353
|
-
return getBandSizeOfAxis(radiusAxis, radiusAxisTicks, true) ?? maxBarSize ?? 0
|
|
354
|
-
}
|
|
355
|
-
const oa = angleAxis ?? selectAngleAxisWithScale(state, radiusAxisId, angleAxisId)
|
|
356
|
-
return getBandSizeOfAxis(oa, angleAxisTicks, true) ?? maxBarSize ?? 0
|
|
357
|
-
})()
|
|
358
|
-
const allPositions = combineAllBarPositions(
|
|
359
|
-
sizeList,
|
|
360
|
-
globalMaxBarSize,
|
|
361
|
-
selectBarGap(state),
|
|
362
|
-
selectBarCategoryGap(state),
|
|
363
|
-
overrideBandSize,
|
|
364
|
-
bandSize,
|
|
365
|
-
radialBarSettings.maxBarSize,
|
|
366
|
-
)
|
|
367
|
-
return combineBarPosition(allPositions, syncedSettings)
|
|
368
|
-
})()
|
|
369
|
-
const stackedData = selectPolarStackedData(state, radiusAxisId, angleAxisId, radialBarSettings)
|
|
370
|
-
|
|
371
|
-
if (
|
|
372
|
-
syncedSettings == null ||
|
|
373
|
-
radiusAxis == null ||
|
|
374
|
-
angleAxis == null ||
|
|
375
|
-
chartData == null ||
|
|
376
|
-
bandSize == null ||
|
|
377
|
-
pos == null ||
|
|
378
|
-
(layout !== "centric" && layout !== "radial") ||
|
|
379
|
-
radiusAxisTicks == null ||
|
|
380
|
-
polarViewBox == null
|
|
381
|
-
) {
|
|
382
|
-
return []
|
|
383
|
-
}
|
|
384
|
-
const { dataKey, minPointSize } = syncedSettings
|
|
385
|
-
const { cx, cy, startAngle, endAngle } = polarViewBox
|
|
386
|
-
const displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1)
|
|
387
|
-
const numericAxis = layout === "centric" ? radiusAxis : angleAxis
|
|
388
|
-
const stackedDomain: ReadonlyArray<unknown> | null = stackedData
|
|
389
|
-
? numericAxis.scale.domain()
|
|
390
|
-
: null
|
|
391
|
-
return computeRadialBarDataItems({
|
|
392
|
-
angleAxis,
|
|
393
|
-
angleAxisTicks,
|
|
394
|
-
bandSize,
|
|
395
|
-
baseValue,
|
|
396
|
-
cells: cells as ReadonlyArray<JSX.Element> | undefined,
|
|
397
|
-
cx,
|
|
398
|
-
cy,
|
|
399
|
-
dataKey,
|
|
400
|
-
dataStartIndex,
|
|
401
|
-
displayedData,
|
|
402
|
-
endAngle,
|
|
403
|
-
layout,
|
|
404
|
-
minPointSize,
|
|
405
|
-
pos,
|
|
406
|
-
radiusAxis,
|
|
407
|
-
radiusAxisTicks,
|
|
408
|
-
stackedData,
|
|
409
|
-
stackedDomain,
|
|
410
|
-
startAngle,
|
|
411
|
-
})
|
|
412
|
-
})
|
|
413
|
-
|
|
414
|
-
export const selectRadialBarLegendPayload = chartSelector(function selectRadialBarLegendPayload(state: ChartState, legendType: LegendType | undefined): ReadonlyArray<LegendPayload> {
|
|
415
|
-
const { chartData, dataStartIndex, dataEndIndex }: ChartDataState =
|
|
416
|
-
selectChartDataAndAlwaysIgnoreIndexes(state)
|
|
417
|
-
|
|
418
|
-
if (chartData == null) {
|
|
419
|
-
return []
|
|
420
|
-
}
|
|
421
|
-
const displayedData = chartData.slice(dataStartIndex, dataEndIndex + 1)
|
|
422
|
-
|
|
423
|
-
if (displayedData.length === 0) {
|
|
424
|
-
return []
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
return displayedData.map((entry): LegendPayload => {
|
|
428
|
-
return {
|
|
429
|
-
color: (entry as Record<string, unknown>).fill as string,
|
|
430
|
-
payload: entry as Record<string, unknown>,
|
|
431
|
-
type: legendType,
|
|
432
|
-
value: (entry as Record<string, unknown>).name as string,
|
|
433
|
-
}
|
|
434
|
-
})
|
|
435
|
-
})
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-cycle */
|
|
2
|
-
import { ChartState } from "../store"
|
|
3
|
-
import { StackOffsetType } from "../../util/types"
|
|
4
|
-
import { SyncMethod } from "../../synchronisation/types"
|
|
5
|
-
import { BaseValue } from "../../cartesian/Area"
|
|
6
|
-
|
|
7
|
-
export const selectRootMaxBarSize = (state: ChartState): number | undefined =>
|
|
8
|
-
state.rootProps.maxBarSize
|
|
9
|
-
export const selectBarGap = (state: ChartState): string | number => state.rootProps.barGap
|
|
10
|
-
export const selectBarCategoryGap = (state: ChartState): string | number =>
|
|
11
|
-
state.rootProps.barCategoryGap
|
|
12
|
-
export const selectRootBarSize = (state: ChartState): string | number | undefined =>
|
|
13
|
-
state.rootProps.barSize
|
|
14
|
-
export const selectStackOffsetType = (state: ChartState): StackOffsetType =>
|
|
15
|
-
state.rootProps.stackOffset
|
|
16
|
-
export const selectReverseStackOrder = (state: ChartState): boolean =>
|
|
17
|
-
state.rootProps.reverseStackOrder
|
|
18
|
-
export const selectChartName = (state: ChartState) => state.options.chartName
|
|
19
|
-
|
|
20
|
-
export const selectSyncId = (state: ChartState) => state.rootProps.syncId
|
|
21
|
-
export const selectSyncMethod = (state: ChartState): SyncMethod => state.rootProps.syncMethod
|
|
22
|
-
export const selectEventEmitter = (state: ChartState) => state.options.eventEmitter
|
|
23
|
-
export const selectChartBaseValue: (state: ChartState) => BaseValue | undefined = (
|
|
24
|
-
state: ChartState,
|
|
25
|
-
) => state.rootProps.baseValue
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-cycle */
|
|
2
|
-
import type { JSX } from '@solidjs/web';
|
|
3
|
-
import { computeScatterPoints, type ScatterPointItem } from "../../cartesian/Scatter"
|
|
4
|
-
import type { ChartState } from "../store"
|
|
5
|
-
import type { AxisId, XAxisSettings, YAxisSettings } from "../cartesianAxisSlice"
|
|
6
|
-
import { selectChartDataWithIndexesIfNotInPanoramaPosition4 } from "./dataSelectors"
|
|
7
|
-
import type { ChartData, ChartDataState } from "../chartDataSlice"
|
|
8
|
-
import {
|
|
9
|
-
selectAxisWithScale,
|
|
10
|
-
selectTicksOfGraphicalItem,
|
|
11
|
-
selectUnfilteredCartesianItems,
|
|
12
|
-
selectZAxisWithScale,
|
|
13
|
-
type ZAxisWithScale,
|
|
14
|
-
} from "./axisSelectors"
|
|
15
|
-
import type { ScatterSettings } from "../types/ScatterSettings"
|
|
16
|
-
import { chartSelector } from "./chartSelector"
|
|
17
|
-
import type { GraphicalItemId } from "../graphicalItemsSlice"
|
|
18
|
-
|
|
19
|
-
/** Optional overrides — bypass the axis-settings lookup on hot animation frames. */
|
|
20
|
-
export type ScatterAxisOverrides = {
|
|
21
|
-
xAxis?: XAxisSettings
|
|
22
|
-
yAxis?: YAxisSettings
|
|
23
|
-
scatterSettings?: ScatterSettings
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const selectXAxisWithScale = chartSelector((
|
|
27
|
-
state: ChartState,
|
|
28
|
-
xAxisId: AxisId,
|
|
29
|
-
isPanorama: boolean,
|
|
30
|
-
override?: XAxisSettings,
|
|
31
|
-
) => selectAxisWithScale(state, "xAxis", xAxisId, isPanorama, override))
|
|
32
|
-
|
|
33
|
-
const selectXAxisTicks = chartSelector((state: ChartState, xAxisId: AxisId, isPanorama: boolean) =>
|
|
34
|
-
selectTicksOfGraphicalItem(state, "xAxis", xAxisId, isPanorama))
|
|
35
|
-
|
|
36
|
-
const selectYAxisWithScale = chartSelector((
|
|
37
|
-
state: ChartState,
|
|
38
|
-
yAxisId: AxisId,
|
|
39
|
-
isPanorama: boolean,
|
|
40
|
-
override?: YAxisSettings,
|
|
41
|
-
) => selectAxisWithScale(state, "yAxis", yAxisId, isPanorama, override))
|
|
42
|
-
|
|
43
|
-
const selectYAxisTicks = chartSelector((state: ChartState, yAxisId: AxisId, isPanorama: boolean) =>
|
|
44
|
-
selectTicksOfGraphicalItem(state, "yAxis", yAxisId, isPanorama))
|
|
45
|
-
|
|
46
|
-
const selectZAxis = chartSelector((state: ChartState, zAxisId: AxisId): ZAxisWithScale | undefined =>
|
|
47
|
-
selectZAxisWithScale(state, "zAxis", zAxisId, false))
|
|
48
|
-
|
|
49
|
-
const selectSynchronisedScatterSettings = chartSelector(function selectSynchronisedScatterSettings(state: ChartState, id: GraphicalItemId): ScatterSettings | undefined {
|
|
50
|
-
const graphicalItems = selectUnfilteredCartesianItems(state)
|
|
51
|
-
return graphicalItems.filter((item) => item.type === "scatter").find((item) => item.id === id) as
|
|
52
|
-
| ScatterSettings
|
|
53
|
-
| undefined
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
export const selectScatterPoints = chartSelector(function selectScatterPoints(state: ChartState, xAxisId: AxisId, yAxisId: AxisId, zAxisId: AxisId, id: GraphicalItemId, cells: ReadonlyArray<Record<string, unknown>> | undefined, isPanorama: boolean, overrides?: ScatterAxisOverrides): ReadonlyArray<ScatterPointItem> | undefined {
|
|
57
|
-
const { chartData, dataStartIndex, dataEndIndex }: ChartDataState =
|
|
58
|
-
selectChartDataWithIndexesIfNotInPanoramaPosition4(state, undefined, undefined, isPanorama)
|
|
59
|
-
const xAxis = selectXAxisWithScale(state, xAxisId, isPanorama, overrides?.xAxis)
|
|
60
|
-
const xAxisTicks = selectXAxisTicks(state, xAxisId, isPanorama)
|
|
61
|
-
const yAxis = selectYAxisWithScale(state, yAxisId, isPanorama, overrides?.yAxis)
|
|
62
|
-
const yAxisTicks = selectYAxisTicks(state, yAxisId, isPanorama)
|
|
63
|
-
const zAxis = selectZAxis(state, zAxisId)
|
|
64
|
-
const scatterSettings = overrides?.scatterSettings ?? selectSynchronisedScatterSettings(state, id)
|
|
65
|
-
|
|
66
|
-
if (scatterSettings == null) {
|
|
67
|
-
return undefined
|
|
68
|
-
}
|
|
69
|
-
let displayedData: ChartData | undefined
|
|
70
|
-
if (scatterSettings?.data != null && scatterSettings.data.length > 0) {
|
|
71
|
-
displayedData = scatterSettings.data
|
|
72
|
-
} else {
|
|
73
|
-
displayedData = chartData?.slice(dataStartIndex, dataEndIndex + 1)
|
|
74
|
-
}
|
|
75
|
-
if (
|
|
76
|
-
displayedData == null ||
|
|
77
|
-
xAxis == null ||
|
|
78
|
-
yAxis == null ||
|
|
79
|
-
xAxisTicks == null ||
|
|
80
|
-
yAxisTicks == null ||
|
|
81
|
-
xAxisTicks?.length === 0 ||
|
|
82
|
-
yAxisTicks?.length === 0
|
|
83
|
-
) {
|
|
84
|
-
return undefined
|
|
85
|
-
}
|
|
86
|
-
return computeScatterPoints({
|
|
87
|
-
cells: cells as ReadonlyArray<JSX.Element> | undefined,
|
|
88
|
-
displayedData,
|
|
89
|
-
scatterSettings,
|
|
90
|
-
xAxis,
|
|
91
|
-
xAxisTicks,
|
|
92
|
-
yAxis,
|
|
93
|
-
yAxisTicks,
|
|
94
|
-
zAxis,
|
|
95
|
-
})
|
|
96
|
-
})
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-cycle */
|
|
2
|
-
import type { ChartState } from "../store"
|
|
3
|
-
import type { ActiveTooltipProps } from "../tooltipSlice"
|
|
4
|
-
import { selectChartLayout } from "../../context/chartLayoutContext"
|
|
5
|
-
import { selectTooltipAxisRangeWithReverse, selectTooltipAxisTicks } from "./tooltipSelectors"
|
|
6
|
-
import { selectChartOffsetInternal } from "./selectChartOffsetInternal"
|
|
7
|
-
import { combineActiveProps, selectOrderedTooltipTicks } from "./selectors"
|
|
8
|
-
import { selectPolarViewBox } from "./polarAxisSelectors"
|
|
9
|
-
import type { RelativePointer } from "../../util/types"
|
|
10
|
-
import { selectTooltipAxisType } from "./selectTooltipAxisType"
|
|
11
|
-
|
|
12
|
-
export function selectActivePropsFromChartPointer(
|
|
13
|
-
state: ChartState,
|
|
14
|
-
chartPointer: RelativePointer,
|
|
15
|
-
): ActiveTooltipProps | undefined {
|
|
16
|
-
return combineActiveProps(
|
|
17
|
-
chartPointer,
|
|
18
|
-
selectChartLayout(state),
|
|
19
|
-
selectPolarViewBox(state),
|
|
20
|
-
selectTooltipAxisType(state),
|
|
21
|
-
selectTooltipAxisRangeWithReverse(state),
|
|
22
|
-
selectTooltipAxisTicks(state),
|
|
23
|
-
selectOrderedTooltipTicks(state),
|
|
24
|
-
selectChartOffsetInternal(state),
|
|
25
|
-
)
|
|
26
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-cycle */
|
|
2
|
-
import type { ChartState } from "../store"
|
|
3
|
-
import type { XAxisSettings, YAxisSettings } from "../cartesianAxisSlice"
|
|
4
|
-
import { chartSelector } from "./chartSelector"
|
|
5
|
-
import { readChartState } from "../chartState"
|
|
6
|
-
|
|
7
|
-
export const selectAllXAxes = chartSelector(function selectAllXAxes(state: ChartState): ReadonlyArray<XAxisSettings> {
|
|
8
|
-
return Object.values(readChartState(state).cartesianAxes.xAxis)
|
|
9
|
-
.map((e) => e?.settings)
|
|
10
|
-
.filter((s): s is XAxisSettings => s != null && "orientation" in s)
|
|
11
|
-
})
|
|
12
|
-
|
|
13
|
-
export const selectAllYAxes = chartSelector(function selectAllYAxes(state: ChartState): ReadonlyArray<YAxisSettings> {
|
|
14
|
-
return Object.values(readChartState(state).cartesianAxes.yAxis)
|
|
15
|
-
.map((e) => e?.settings)
|
|
16
|
-
.filter((s): s is YAxisSettings => s != null && "orientation" in s)
|
|
17
|
-
})
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/* eslint-disable import/no-cycle */
|
|
2
|
-
import { selectChartOffsetInternal } from "./selectChartOffsetInternal"
|
|
3
|
-
import type { ChartOffsetInternal } from "../../util/types"
|
|
4
|
-
import type { ChartOffset } from "../../types"
|
|
5
|
-
import { chartSelector } from "./chartSelector"
|
|
6
|
-
import type { ChartState } from "../store"
|
|
7
|
-
|
|
8
|
-
export const selectChartOffset = chartSelector(function selectChartOffset(state: ChartState): ChartOffset {
|
|
9
|
-
const offsetInternal: ChartOffsetInternal = selectChartOffsetInternal(state)
|
|
10
|
-
return {
|
|
11
|
-
bottom: offsetInternal.bottom,
|
|
12
|
-
left: offsetInternal.left,
|
|
13
|
-
right: offsetInternal.right,
|
|
14
|
-
top: offsetInternal.top,
|
|
15
|
-
}
|
|
16
|
-
})
|