@mui/x-charts 8.22.1 → 8.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BarChart/BarChart.js +39 -0
- package/BarChart/BarChart.plugins.d.ts +2 -1
- package/BarChart/BarChart.plugins.js +2 -1
- package/BarChart/BarElement.js +1 -1
- package/BarChart/BarLabel/BarLabel.d.ts +2 -0
- package/BarChart/BarLabel/BarLabel.js +8 -3
- package/BarChart/BarLabel/BarLabelItem.d.ts +2 -0
- package/BarChart/BarLabel/BarLabelItem.js +4 -2
- package/BarChart/BarPlot.d.ts +12 -2
- package/BarChart/BarPlot.js +29 -86
- package/BarChart/BatchBarPlot/BarGroup.d.ts +15 -0
- package/BarChart/BatchBarPlot/BarGroup.js +142 -0
- package/BarChart/BatchBarPlot/BatchBarPlot.d.ts +12 -0
- package/BarChart/BatchBarPlot/BatchBarPlot.js +140 -0
- package/BarChart/BatchBarPlot/index.d.ts +1 -0
- package/BarChart/BatchBarPlot/index.js +12 -0
- package/BarChart/BatchBarPlot/useCreateBarPaths.d.ts +8 -0
- package/BarChart/BatchBarPlot/useCreateBarPaths.js +53 -0
- package/BarChart/FocusedBar.js +6 -2
- package/BarChart/IndividualBarPlot.d.ts +21 -0
- package/BarChart/IndividualBarPlot.js +106 -0
- package/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.ts +1 -1
- package/BarChart/seriesConfig/bar/keyboardFocusHandler.d.ts +3 -0
- package/BarChart/seriesConfig/bar/keyboardFocusHandler.js +23 -0
- package/BarChart/seriesConfig/bar/legend.js +1 -0
- package/BarChart/seriesConfig/bar/seriesProcessor.js +2 -2
- package/BarChart/seriesConfig/index.js +5 -1
- package/BarChart/types.d.ts +2 -0
- package/BarChart/useBarChartProps.d.ts +6 -2
- package/BarChart/useBarChartProps.js +4 -2
- package/BarChart/useBarPlotData.d.ts +1 -1
- package/BarChart/useBarPlotData.js +23 -4
- package/BarChart/useRegisterItemClickHandlers.d.ts +6 -0
- package/BarChart/useRegisterItemClickHandlers.js +72 -0
- package/CHANGELOG.md +211 -0
- package/ChartContainer/ChartContainer.js +34 -0
- package/ChartContainer/useChartContainerProps.js +6 -2
- package/ChartsLegend/ChartsLegend.js +2 -2
- package/ChartsLegend/legendContext.types.d.ts +12 -0
- package/ChartsLegend/onClickContextBuilder.js +2 -1
- package/ChartsOverlay/ChartsLoadingOverlay.js +4 -1
- package/ChartsOverlay/ChartsNoDataOverlay.js +4 -1
- package/ChartsReferenceLine/common.d.ts +1 -1
- package/ChartsReferenceLine/common.js +4 -1
- package/ChartsTooltip/ChartsTooltipContainer.js +25 -21
- package/Gauge/GaugeContainer.js +4 -1
- package/LineChart/AnimatedLine.js +7 -3
- package/LineChart/AppearingMask.js +4 -1
- package/LineChart/CircleMarkElement.d.ts +5 -0
- package/LineChart/CircleMarkElement.js +13 -5
- package/LineChart/FocusedLineMark.js +6 -2
- package/LineChart/LineChart.js +30 -0
- package/LineChart/LineChart.plugins.d.ts +2 -1
- package/LineChart/LineChart.plugins.js +2 -1
- package/LineChart/LineElement.d.ts +4 -0
- package/LineChart/LineElement.js +7 -3
- package/LineChart/MarkElement.d.ts +5 -0
- package/LineChart/MarkElement.js +17 -10
- package/LineChart/markElementClasses.d.ts +0 -1
- package/LineChart/seriesConfig/index.js +5 -1
- package/LineChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/LineChart/seriesConfig/keyboardFocusHandler.js +23 -0
- package/LineChart/seriesConfig/legend.js +1 -0
- package/LineChart/seriesConfig/seriesProcessor.js +2 -2
- package/PieChart/FocusedPieArc.js +6 -3
- package/PieChart/PieArcLabel.d.ts +2 -0
- package/PieChart/PieArcLabel.js +5 -2
- package/PieChart/PieChart.js +35 -5
- package/PieChart/PieChart.plugins.d.ts +2 -1
- package/PieChart/PieChart.plugins.js +2 -1
- package/PieChart/dataTransform/useTransformData.js +1 -1
- package/PieChart/seriesConfig/index.js +5 -1
- package/PieChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/PieChart/seriesConfig/keyboardFocusHandler.js +23 -0
- package/PieChart/seriesConfig/legend.js +6 -3
- package/RadarChart/RadarChart.js +30 -0
- package/RadarChart/RadarChart.plugins.d.ts +3 -2
- package/RadarChart/RadarChart.plugins.js +2 -1
- package/RadarChart/seriesConfig/index.js +3 -1
- package/RadarChart/seriesConfig/legend.js +1 -0
- package/ScatterChart/BatchScatter.js +8 -14
- package/ScatterChart/FocusedScatterMark.js +1 -1
- package/ScatterChart/ScatterChart.js +30 -0
- package/ScatterChart/ScatterChart.plugins.d.ts +2 -1
- package/ScatterChart/ScatterChart.plugins.js +2 -1
- package/ScatterChart/seriesConfig/index.js +5 -1
- package/ScatterChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/ScatterChart/seriesConfig/keyboardFocusHandler.js +23 -0
- package/ScatterChart/seriesConfig/legend.js +1 -0
- package/SparkLineChart/SparkLineChart.js +46 -0
- package/esm/BarChart/BarChart.js +39 -0
- package/esm/BarChart/BarChart.plugins.d.ts +2 -1
- package/esm/BarChart/BarChart.plugins.js +2 -1
- package/esm/BarChart/BarElement.js +1 -1
- package/esm/BarChart/BarLabel/BarLabel.d.ts +2 -0
- package/esm/BarChart/BarLabel/BarLabel.js +8 -3
- package/esm/BarChart/BarLabel/BarLabelItem.d.ts +2 -0
- package/esm/BarChart/BarLabel/BarLabelItem.js +4 -2
- package/esm/BarChart/BarPlot.d.ts +12 -2
- package/esm/BarChart/BarPlot.js +29 -86
- package/esm/BarChart/BatchBarPlot/BarGroup.d.ts +15 -0
- package/esm/BarChart/BatchBarPlot/BarGroup.js +134 -0
- package/esm/BarChart/BatchBarPlot/BatchBarPlot.d.ts +12 -0
- package/esm/BarChart/BatchBarPlot/BatchBarPlot.js +133 -0
- package/esm/BarChart/BatchBarPlot/index.d.ts +1 -0
- package/esm/BarChart/BatchBarPlot/index.js +1 -0
- package/esm/BarChart/BatchBarPlot/useCreateBarPaths.d.ts +8 -0
- package/esm/BarChart/BatchBarPlot/useCreateBarPaths.js +46 -0
- package/esm/BarChart/FocusedBar.js +6 -2
- package/esm/BarChart/IndividualBarPlot.d.ts +21 -0
- package/esm/BarChart/IndividualBarPlot.js +98 -0
- package/esm/BarChart/seriesConfig/bar/getSeriesWithDefaultValues.d.ts +1 -1
- package/esm/BarChart/seriesConfig/bar/keyboardFocusHandler.d.ts +3 -0
- package/esm/BarChart/seriesConfig/bar/keyboardFocusHandler.js +17 -0
- package/esm/BarChart/seriesConfig/bar/legend.js +1 -0
- package/esm/BarChart/seriesConfig/bar/seriesProcessor.js +1 -1
- package/esm/BarChart/seriesConfig/index.js +5 -1
- package/esm/BarChart/types.d.ts +2 -0
- package/esm/BarChart/useBarChartProps.d.ts +6 -2
- package/esm/BarChart/useBarChartProps.js +4 -3
- package/esm/BarChart/useBarPlotData.d.ts +1 -1
- package/esm/BarChart/useBarPlotData.js +20 -1
- package/esm/BarChart/useRegisterItemClickHandlers.d.ts +6 -0
- package/esm/BarChart/useRegisterItemClickHandlers.js +67 -0
- package/esm/ChartContainer/ChartContainer.js +34 -0
- package/esm/ChartContainer/useChartContainerProps.js +6 -2
- package/esm/ChartsLegend/ChartsLegend.js +2 -2
- package/esm/ChartsLegend/legendContext.types.d.ts +12 -0
- package/esm/ChartsLegend/onClickContextBuilder.js +2 -1
- package/esm/ChartsOverlay/ChartsLoadingOverlay.js +4 -1
- package/esm/ChartsOverlay/ChartsNoDataOverlay.js +4 -1
- package/esm/ChartsReferenceLine/common.d.ts +1 -1
- package/esm/ChartsReferenceLine/common.js +4 -1
- package/esm/ChartsTooltip/ChartsTooltipContainer.js +26 -22
- package/esm/Gauge/GaugeContainer.js +4 -1
- package/esm/LineChart/AnimatedLine.js +7 -3
- package/esm/LineChart/AppearingMask.js +4 -1
- package/esm/LineChart/CircleMarkElement.d.ts +5 -0
- package/esm/LineChart/CircleMarkElement.js +13 -5
- package/esm/LineChart/FocusedLineMark.js +6 -2
- package/esm/LineChart/LineChart.js +30 -0
- package/esm/LineChart/LineChart.plugins.d.ts +2 -1
- package/esm/LineChart/LineChart.plugins.js +2 -1
- package/esm/LineChart/LineElement.d.ts +4 -0
- package/esm/LineChart/LineElement.js +7 -3
- package/esm/LineChart/MarkElement.d.ts +5 -0
- package/esm/LineChart/MarkElement.js +17 -10
- package/esm/LineChart/markElementClasses.d.ts +0 -1
- package/esm/LineChart/seriesConfig/index.js +5 -1
- package/esm/LineChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/esm/LineChart/seriesConfig/keyboardFocusHandler.js +17 -0
- package/esm/LineChart/seriesConfig/legend.js +1 -0
- package/esm/LineChart/seriesConfig/seriesProcessor.js +1 -1
- package/esm/PieChart/FocusedPieArc.js +5 -2
- package/esm/PieChart/PieArcLabel.d.ts +2 -0
- package/esm/PieChart/PieArcLabel.js +5 -2
- package/esm/PieChart/PieChart.js +35 -5
- package/esm/PieChart/PieChart.plugins.d.ts +2 -1
- package/esm/PieChart/PieChart.plugins.js +2 -1
- package/esm/PieChart/dataTransform/useTransformData.js +1 -1
- package/esm/PieChart/seriesConfig/index.js +5 -1
- package/esm/PieChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/esm/PieChart/seriesConfig/keyboardFocusHandler.js +17 -0
- package/esm/PieChart/seriesConfig/legend.js +6 -3
- package/esm/RadarChart/RadarChart.js +30 -0
- package/esm/RadarChart/RadarChart.plugins.d.ts +3 -2
- package/esm/RadarChart/RadarChart.plugins.js +2 -1
- package/esm/RadarChart/seriesConfig/index.js +3 -1
- package/esm/RadarChart/seriesConfig/legend.js +1 -0
- package/esm/ScatterChart/BatchScatter.js +5 -11
- package/esm/ScatterChart/FocusedScatterMark.js +1 -1
- package/esm/ScatterChart/ScatterChart.js +30 -0
- package/esm/ScatterChart/ScatterChart.plugins.d.ts +2 -1
- package/esm/ScatterChart/ScatterChart.plugins.js +2 -1
- package/esm/ScatterChart/seriesConfig/index.js +5 -1
- package/esm/ScatterChart/seriesConfig/keyboardFocusHandler.d.ts +3 -0
- package/esm/ScatterChart/seriesConfig/keyboardFocusHandler.js +17 -0
- package/esm/ScatterChart/seriesConfig/legend.js +1 -0
- package/esm/SparkLineChart/SparkLineChart.js +46 -0
- package/esm/hooks/useFocusedItem.d.ts +1 -12
- package/esm/hooks/useFocusedItem.js +3 -10
- package/esm/hooks/useIsItemFocused.d.ts +4 -3
- package/esm/hooks/useIsItemFocused.js +1 -1
- package/esm/hooks/useIsItemFocusedGetter.d.ts +3 -2
- package/esm/hooks/useIsItemFocusedGetter.js +2 -1
- package/esm/index.js +1 -1
- package/esm/internals/appendAtKey.d.ts +8 -0
- package/esm/internals/appendAtKey.js +17 -0
- package/esm/internals/commonNextFocusItem.d.ts +14 -0
- package/esm/internals/commonNextFocusItem.js +88 -0
- package/esm/internals/getBarDimensions.d.ts +1 -2
- package/esm/internals/identifierSerializer.d.ts +9 -0
- package/esm/internals/identifierSerializer.js +6 -0
- package/esm/internals/index.d.ts +7 -3
- package/esm/internals/index.js +7 -3
- package/esm/internals/invertScale.d.ts +6 -2
- package/esm/internals/invertScale.js +9 -1
- package/esm/internals/plugins/allPlugins.d.ts +4 -3
- package/esm/internals/plugins/allPlugins.js +2 -1
- package/esm/internals/plugins/corePlugins/useChartSeries/serializeIdentifier.d.ts +14 -0
- package/esm/internals/plugins/corePlugins/useChartSeries/serializeIdentifier.js +18 -0
- package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +8 -1
- package/esm/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +12 -1
- package/esm/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.d.ts +11 -0
- package/esm/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.js +74 -0
- package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +20 -3
- package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +10 -3
- package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.ts +4 -0
- package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.js +83 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.d.ts +13 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js +1 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.d.ts +2 -2
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +12 -105
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +5 -31
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +9 -15
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +6 -21
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.d.ts +3 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.js +6 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.d.ts +15 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.js +18 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.d.ts +7 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.js +9 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.d.ts +11 -0
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.js +18 -0
- package/esm/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +2 -10
- package/esm/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.js +2 -2
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/index.d.ts +3 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/index.js +3 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/isIdentifierVisible.d.ts +4 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/isIdentifierVisible.js +5 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.d.ts +3 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.js +78 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.selectors.d.ts +16 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.selectors.js +19 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.types.d.ts +90 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.types.js +1 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/visibilityParamToMap.d.ts +4 -0
- package/esm/internals/plugins/featurePlugins/useChartVisibilityManager/visibilityParamToMap.js +11 -0
- package/esm/internals/plugins/models/seriesConfig/identifierSerializer.types.d.ts +2 -0
- package/esm/internals/plugins/models/seriesConfig/identifierSerializer.types.js +1 -0
- package/esm/internals/plugins/models/seriesConfig/index.d.ts +2 -1
- package/esm/internals/plugins/models/seriesConfig/index.js +2 -1
- package/esm/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +9 -0
- package/esm/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
- package/esm/internals/seriesHasData.d.ts +4 -0
- package/esm/internals/seriesHasData.js +8 -0
- package/esm/internals/stacking/index.d.ts +1 -0
- package/esm/internals/stacking/index.js +1 -0
- package/esm/internals/stacking/offset/index.d.ts +1 -0
- package/esm/internals/stacking/offset/index.js +1 -0
- package/esm/internals/stacking/offset/offsetDiverging.d.ts +8 -0
- package/esm/internals/stacking/offset/offsetDiverging.js +47 -0
- package/esm/internals/{stackSeries.d.ts → stacking/stackSeries.d.ts} +8 -8
- package/esm/internals/{stackSeries.js → stacking/stackSeries.js} +8 -6
- package/esm/models/axis.d.ts +5 -4
- package/esm/models/featureFlags.d.ts +1 -0
- package/esm/models/featureFlags.js +1 -0
- package/esm/models/index.d.ts +1 -0
- package/esm/models/index.js +1 -0
- package/esm/models/seriesType/index.d.ts +3 -1
- package/esm/moduleAugmentation/barChartBatchRendererOnItemClick.d.ts +13 -0
- package/esm/moduleAugmentation/barChartBatchRendererOnItemClick.js +1 -0
- package/hooks/useFocusedItem.d.ts +1 -12
- package/hooks/useFocusedItem.js +1 -10
- package/hooks/useIsItemFocused.d.ts +4 -3
- package/hooks/useIsItemFocused.js +1 -1
- package/hooks/useIsItemFocusedGetter.d.ts +3 -2
- package/hooks/useIsItemFocusedGetter.js +2 -1
- package/index.js +1 -1
- package/internals/appendAtKey.d.ts +8 -0
- package/internals/appendAtKey.js +23 -0
- package/internals/commonNextFocusItem.d.ts +14 -0
- package/internals/commonNextFocusItem.js +97 -0
- package/internals/getBarDimensions.d.ts +1 -2
- package/internals/identifierSerializer.d.ts +9 -0
- package/internals/identifierSerializer.js +16 -0
- package/internals/index.d.ts +7 -3
- package/internals/index.js +55 -11
- package/internals/invertScale.d.ts +6 -2
- package/internals/invertScale.js +10 -1
- package/internals/plugins/allPlugins.d.ts +4 -3
- package/internals/plugins/allPlugins.js +2 -1
- package/internals/plugins/corePlugins/useChartSeries/serializeIdentifier.d.ts +14 -0
- package/internals/plugins/corePlugins/useChartSeries/serializeIdentifier.js +25 -0
- package/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +8 -1
- package/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +12 -1
- package/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.d.ts +11 -0
- package/internals/plugins/featurePlugins/shared/useRegisterPointerInteractions.js +81 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +20 -3
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +10 -3
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.d.ts +4 -0
- package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors.js +89 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.d.ts +13 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js +5 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.d.ts +2 -2
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.js +11 -104
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.d.ts +5 -31
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.selectors.js +10 -16
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.types.d.ts +6 -21
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.d.ts +3 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.js +12 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.d.ts +15 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.js +23 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.d.ts +7 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNonEmptySeriesArray.js +15 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.d.ts +11 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getPreviousNonEmptySeries.js +23 -0
- package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +2 -10
- package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.js +1 -1
- package/internals/plugins/featurePlugins/useChartVisibilityManager/index.d.ts +3 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/index.js +39 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/isIdentifierVisible.d.ts +4 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/isIdentifierVisible.js +12 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.d.ts +3 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.js +85 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.selectors.d.ts +16 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.selectors.js +25 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.types.d.ts +90 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.types.js +5 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/visibilityParamToMap.d.ts +4 -0
- package/internals/plugins/featurePlugins/useChartVisibilityManager/visibilityParamToMap.js +18 -0
- package/internals/plugins/models/seriesConfig/identifierSerializer.types.d.ts +2 -0
- package/internals/plugins/models/seriesConfig/identifierSerializer.types.js +5 -0
- package/internals/plugins/models/seriesConfig/index.d.ts +2 -1
- package/internals/plugins/models/seriesConfig/index.js +11 -0
- package/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +9 -0
- package/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +1 -1
- package/internals/seriesHasData.d.ts +4 -0
- package/internals/seriesHasData.js +14 -0
- package/internals/stacking/index.d.ts +1 -0
- package/internals/stacking/index.js +16 -0
- package/internals/stacking/offset/index.d.ts +1 -0
- package/internals/stacking/offset/index.js +16 -0
- package/internals/stacking/offset/offsetDiverging.d.ts +8 -0
- package/internals/stacking/offset/offsetDiverging.js +53 -0
- package/internals/{stackSeries.d.ts → stacking/stackSeries.d.ts} +8 -8
- package/internals/{stackSeries.js → stacking/stackSeries.js} +3 -1
- package/models/axis.d.ts +5 -4
- package/models/featureFlags.d.ts +1 -0
- package/models/featureFlags.js +5 -0
- package/models/index.d.ts +1 -0
- package/models/index.js +11 -0
- package/models/seriesType/index.d.ts +3 -1
- package/moduleAugmentation/barChartBatchRendererOnItemClick.d.ts +13 -0
- package/moduleAugmentation/barChartBatchRendererOnItemClick.js +5 -0
- package/package.json +14 -4
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +0 -3
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +0 -4
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +0 -21
- package/esm/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +0 -92
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.d.ts +0 -3
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/isFocusableSeriesType.js +0 -10
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.d.ts +0 -21
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/useChartKeyboardNavigation.helpers.js +0 -99
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.BatchBarPlot = BatchBarPlot;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _hooks = require("../../hooks");
|
|
10
|
+
var _barClasses = require("../barClasses");
|
|
11
|
+
var _useChartContext = require("../../context/ChartProvider/useChartContext");
|
|
12
|
+
var _useChartHighlight = require("../../internals/plugins/featurePlugins/useChartHighlight");
|
|
13
|
+
var _useRegisterItemClickHandlers = require("../useRegisterItemClickHandlers");
|
|
14
|
+
var _useCreateBarPaths = require("./useCreateBarPaths");
|
|
15
|
+
var _BarGroup = require("./BarGroup");
|
|
16
|
+
var _useRegisterPointerInteractions = require("../../internals/plugins/featurePlugins/shared/useRegisterPointerInteractions");
|
|
17
|
+
var _useChartCartesianAxisPosition = require("../../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisPosition.selectors");
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
function BatchBarPlot({
|
|
20
|
+
completedData,
|
|
21
|
+
borderRadius = 0,
|
|
22
|
+
onItemClick,
|
|
23
|
+
skipAnimation = false
|
|
24
|
+
}) {
|
|
25
|
+
const prevCursorRef = React.useRef(null);
|
|
26
|
+
const svgRef = (0, _hooks.useSvgRef)();
|
|
27
|
+
const onItemEnter = onItemClick ? () => {
|
|
28
|
+
const svg = svgRef.current;
|
|
29
|
+
if (!svg) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (prevCursorRef.current == null) {
|
|
33
|
+
prevCursorRef.current = svg.style.cursor;
|
|
34
|
+
// eslint-disable-next-line react-compiler/react-compiler
|
|
35
|
+
svg.style.cursor = 'pointer';
|
|
36
|
+
}
|
|
37
|
+
} : undefined;
|
|
38
|
+
const onItemLeave = onItemClick ? () => {
|
|
39
|
+
const svg = svgRef.current;
|
|
40
|
+
if (!svg) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (prevCursorRef.current != null) {
|
|
44
|
+
svg.style.cursor = prevCursorRef.current;
|
|
45
|
+
prevCursorRef.current = null;
|
|
46
|
+
}
|
|
47
|
+
} : undefined;
|
|
48
|
+
(0, _useRegisterPointerInteractions.useRegisterPointerInteractions)(_useChartCartesianAxisPosition.selectorBarItemAtPosition, onItemEnter, onItemLeave);
|
|
49
|
+
(0, _useRegisterItemClickHandlers.useRegisterItemClickHandlers)(onItemClick);
|
|
50
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
51
|
+
children: completedData.map(series => /*#__PURE__*/(0, _jsxRuntime.jsx)(SeriesBatchPlot, {
|
|
52
|
+
series: series,
|
|
53
|
+
borderRadius: borderRadius,
|
|
54
|
+
skipAnimation: skipAnimation
|
|
55
|
+
}, series.seriesId))
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
const MemoFadedHighlightedBars = /*#__PURE__*/React.memo(FadedHighlightedBars);
|
|
59
|
+
if (process.env.NODE_ENV !== "production") MemoFadedHighlightedBars.displayName = "MemoFadedHighlightedBars";
|
|
60
|
+
function SeriesBatchPlot({
|
|
61
|
+
series,
|
|
62
|
+
borderRadius,
|
|
63
|
+
skipAnimation
|
|
64
|
+
}) {
|
|
65
|
+
const classes = (0, _barClasses.useUtilityClasses)();
|
|
66
|
+
const {
|
|
67
|
+
store
|
|
68
|
+
} = (0, _useChartContext.useChartContext)();
|
|
69
|
+
const isSeriesHighlighted = store.use(_useChartHighlight.selectorChartIsSeriesHighlighted, series.seriesId);
|
|
70
|
+
const isSeriesFaded = store.use(_useChartHighlight.selectorChartIsSeriesFaded, series.seriesId);
|
|
71
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
72
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_BarGroup.BarGroup, {
|
|
73
|
+
className: classes.series,
|
|
74
|
+
"data-series": series.seriesId,
|
|
75
|
+
layout: series.layout,
|
|
76
|
+
xOrigin: series.xOrigin,
|
|
77
|
+
yOrigin: series.yOrigin,
|
|
78
|
+
skipAnimation: skipAnimation,
|
|
79
|
+
"data-faded": isSeriesFaded || undefined,
|
|
80
|
+
"data-highlighted": isSeriesHighlighted || undefined,
|
|
81
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(BatchBarSeriesPlot, {
|
|
82
|
+
processedSeries: series,
|
|
83
|
+
borderRadius: borderRadius
|
|
84
|
+
})
|
|
85
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(MemoFadedHighlightedBars, {
|
|
86
|
+
processedSeries: series,
|
|
87
|
+
borderRadius: borderRadius
|
|
88
|
+
})]
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function BatchBarSeriesPlot({
|
|
92
|
+
processedSeries,
|
|
93
|
+
borderRadius
|
|
94
|
+
}) {
|
|
95
|
+
const paths = (0, _useCreateBarPaths.useCreateBarPaths)(processedSeries, borderRadius);
|
|
96
|
+
const children = [];
|
|
97
|
+
let i = 0;
|
|
98
|
+
for (const [fill, dArray] of paths.entries()) {
|
|
99
|
+
for (const d of dArray) {
|
|
100
|
+
children.push(/*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
|
|
101
|
+
fill: fill,
|
|
102
|
+
d: d
|
|
103
|
+
}, i));
|
|
104
|
+
i += 1;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
108
|
+
children: children
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function FadedHighlightedBars({
|
|
112
|
+
processedSeries,
|
|
113
|
+
borderRadius
|
|
114
|
+
}) {
|
|
115
|
+
const {
|
|
116
|
+
store
|
|
117
|
+
} = (0, _useChartContext.useChartContext)();
|
|
118
|
+
const seriesHighlightedDataIndex = store.use(_useChartHighlight.selectorChartSeriesHighlightedItem, processedSeries.seriesId);
|
|
119
|
+
const seriesUnfadedDataIndex = store.use(_useChartHighlight.selectorChartSeriesUnfadedItem, processedSeries.seriesId);
|
|
120
|
+
const seriesHighlightedItem = seriesHighlightedDataIndex != null ? processedSeries.data.find(v => v.dataIndex === seriesHighlightedDataIndex) || null : null;
|
|
121
|
+
const seriesUnfadedItem = seriesUnfadedDataIndex != null ? processedSeries.data.find(v => v.dataIndex === seriesUnfadedDataIndex) || null : null;
|
|
122
|
+
const siblings = [];
|
|
123
|
+
if (seriesHighlightedItem != null) {
|
|
124
|
+
siblings.push(/*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
|
|
125
|
+
fill: seriesHighlightedItem.color,
|
|
126
|
+
filter: "brightness(120%)",
|
|
127
|
+
"data-highlighted": true,
|
|
128
|
+
d: (0, _useCreateBarPaths.createPath)(seriesHighlightedItem, borderRadius)
|
|
129
|
+
}, `highlighted-${processedSeries.seriesId}`));
|
|
130
|
+
}
|
|
131
|
+
if (seriesUnfadedItem != null) {
|
|
132
|
+
siblings.push(/*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
|
|
133
|
+
fill: seriesUnfadedItem.color,
|
|
134
|
+
d: (0, _useCreateBarPaths.createPath)(seriesUnfadedItem, borderRadius)
|
|
135
|
+
}, `unfaded-${seriesUnfadedItem.seriesId}`));
|
|
136
|
+
}
|
|
137
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
138
|
+
children: siblings
|
|
139
|
+
});
|
|
140
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { BatchBarPlot } from "./BatchBarPlot.js";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "BatchBarPlot", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _BatchBarPlot.BatchBarPlot;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _BatchBarPlot = require("./BatchBarPlot");
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ProcessedBarData, ProcessedBarSeriesData } from "../types.js";
|
|
2
|
+
export declare function createPath(barData: ProcessedBarData, borderRadius: number): string;
|
|
3
|
+
/**
|
|
4
|
+
* Hook that creates bar paths for a given series data. Used by the batch bar renderer.
|
|
5
|
+
* @param seriesData
|
|
6
|
+
* @param borderRadius
|
|
7
|
+
*/
|
|
8
|
+
export declare function useCreateBarPaths(seriesData: ProcessedBarSeriesData, borderRadius: number): Map<string, string[]>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createPath = createPath;
|
|
7
|
+
exports.useCreateBarPaths = useCreateBarPaths;
|
|
8
|
+
var _appendAtKey = require("../../internals/appendAtKey");
|
|
9
|
+
const MAX_POINTS_PER_PATH = 1000;
|
|
10
|
+
function generateBarPath(x, y, width, height, topLeftBorderRadius, topRightBorderRadius, bottomRightBorderRadius, bottomLeftBorderRadius) {
|
|
11
|
+
const tLBR = Math.min(topLeftBorderRadius, width / 2, height / 2);
|
|
12
|
+
const tRBR = Math.min(topRightBorderRadius, width / 2, height / 2);
|
|
13
|
+
const bRBR = Math.min(bottomRightBorderRadius, width / 2, height / 2);
|
|
14
|
+
const bLBR = Math.min(bottomLeftBorderRadius, width / 2, height / 2);
|
|
15
|
+
return `M${x + tLBR},${y}
|
|
16
|
+
h${width - tLBR - tRBR}
|
|
17
|
+
a${tRBR},${tRBR} 0 0 1 ${tRBR},${tRBR}
|
|
18
|
+
v${height - tRBR - bRBR}
|
|
19
|
+
a${bRBR},${bRBR} 0 0 1 -${bRBR},${bRBR}
|
|
20
|
+
h-${width - bRBR - bLBR}
|
|
21
|
+
a${bLBR},${bLBR} 0 0 1 -${bLBR},-${bLBR}
|
|
22
|
+
v-${height - bLBR - tLBR}
|
|
23
|
+
a${tLBR},${tLBR} 0 0 1 ${tLBR},-${tLBR}
|
|
24
|
+
Z`;
|
|
25
|
+
}
|
|
26
|
+
function createPath(barData, borderRadius) {
|
|
27
|
+
return generateBarPath(barData.x, barData.y, barData.width, barData.height, barData.borderRadiusSide === 'left' || barData.borderRadiusSide === 'top' ? borderRadius : 0, barData.borderRadiusSide === 'right' || barData.borderRadiusSide === 'top' ? borderRadius : 0, barData.borderRadiusSide === 'right' || barData.borderRadiusSide === 'bottom' ? borderRadius : 0, barData.borderRadiusSide === 'left' || barData.borderRadiusSide === 'bottom' ? borderRadius : 0);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Hook that creates bar paths for a given series data. Used by the batch bar renderer.
|
|
32
|
+
* @param seriesData
|
|
33
|
+
* @param borderRadius
|
|
34
|
+
*/
|
|
35
|
+
function useCreateBarPaths(seriesData, borderRadius) {
|
|
36
|
+
const paths = new Map();
|
|
37
|
+
const temporaryPaths = new Map();
|
|
38
|
+
for (let j = 0; j < seriesData.data.length; j += 1) {
|
|
39
|
+
const barData = seriesData.data[j];
|
|
40
|
+
const pathString = createPath(barData, borderRadius);
|
|
41
|
+
const tempPath = (0, _appendAtKey.appendAtKey)(temporaryPaths, barData.color, pathString);
|
|
42
|
+
if (tempPath.length >= MAX_POINTS_PER_PATH) {
|
|
43
|
+
(0, _appendAtKey.appendAtKey)(paths, barData.color, tempPath.join(''));
|
|
44
|
+
temporaryPaths.delete(barData.color);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
for (const [fill, tempPath] of temporaryPaths.entries()) {
|
|
48
|
+
if (tempPath.length > 0) {
|
|
49
|
+
(0, _appendAtKey.appendAtKey)(paths, fill, tempPath.join(''));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return paths;
|
|
53
|
+
}
|
package/BarChart/FocusedBar.js
CHANGED
|
@@ -26,10 +26,14 @@ function FocusedBar(props) {
|
|
|
26
26
|
yAxis,
|
|
27
27
|
yAxisIds
|
|
28
28
|
} = (0, _hooks.useYAxes)();
|
|
29
|
-
if (focusedItem === null || focusedItem.
|
|
29
|
+
if (focusedItem === null || focusedItem.type !== 'bar' || !barSeries) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const series = barSeries.series[focusedItem.seriesId];
|
|
33
|
+
if (series.data[focusedItem.dataIndex] == null) {
|
|
34
|
+
// Handle missing data
|
|
30
35
|
return null;
|
|
31
36
|
}
|
|
32
|
-
const series = barSeries?.series[focusedItem.seriesId];
|
|
33
37
|
const xAxisId = series.xAxisId ?? xAxisIds[0];
|
|
34
38
|
const yAxisId = series.yAxisId ?? yAxisIds[0];
|
|
35
39
|
const xAxisConfig = xAxis[xAxisId];
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { type BarPlotSlotProps, type BarPlotSlots } from "./BarPlot.js";
|
|
3
|
+
import { type BarItemIdentifier } from "../models/index.js";
|
|
4
|
+
import { type MaskData, type ProcessedBarSeriesData } from "./types.js";
|
|
5
|
+
export interface IndividualBarPlotProps {
|
|
6
|
+
completedData: ProcessedBarSeriesData[];
|
|
7
|
+
masksData: MaskData[];
|
|
8
|
+
borderRadius?: number;
|
|
9
|
+
skipAnimation?: boolean;
|
|
10
|
+
onItemClick?: (event: React.MouseEvent<SVGElement, MouseEvent>, barItemIdentifier: BarItemIdentifier) => void;
|
|
11
|
+
slotProps?: BarPlotSlotProps;
|
|
12
|
+
slots?: BarPlotSlots;
|
|
13
|
+
}
|
|
14
|
+
export declare function IndividualBarPlot({
|
|
15
|
+
completedData,
|
|
16
|
+
masksData,
|
|
17
|
+
borderRadius,
|
|
18
|
+
onItemClick,
|
|
19
|
+
skipAnimation,
|
|
20
|
+
...other
|
|
21
|
+
}: IndividualBarPlotProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.IndividualBarPlot = IndividualBarPlot;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _BarElement = require("./BarElement");
|
|
13
|
+
var _barClasses = require("./barClasses");
|
|
14
|
+
var _BarClipPath = require("./BarClipPath");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
const _excluded = ["completedData", "masksData", "borderRadius", "onItemClick", "skipAnimation"];
|
|
17
|
+
function IndividualBarPlot(_ref) {
|
|
18
|
+
let {
|
|
19
|
+
completedData,
|
|
20
|
+
masksData,
|
|
21
|
+
borderRadius,
|
|
22
|
+
onItemClick,
|
|
23
|
+
skipAnimation
|
|
24
|
+
} = _ref,
|
|
25
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
26
|
+
const classes = (0, _barClasses.useUtilityClasses)();
|
|
27
|
+
const withoutBorderRadius = !borderRadius || borderRadius <= 0;
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
29
|
+
children: [!withoutBorderRadius && masksData.map(({
|
|
30
|
+
id,
|
|
31
|
+
x,
|
|
32
|
+
y,
|
|
33
|
+
xOrigin,
|
|
34
|
+
yOrigin,
|
|
35
|
+
width,
|
|
36
|
+
height,
|
|
37
|
+
hasPositive,
|
|
38
|
+
hasNegative,
|
|
39
|
+
layout
|
|
40
|
+
}) => {
|
|
41
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarClipPath.BarClipPath, {
|
|
42
|
+
maskId: id,
|
|
43
|
+
borderRadius: borderRadius,
|
|
44
|
+
hasNegative: hasNegative,
|
|
45
|
+
hasPositive: hasPositive,
|
|
46
|
+
layout: layout,
|
|
47
|
+
x: x,
|
|
48
|
+
y: y,
|
|
49
|
+
xOrigin: xOrigin,
|
|
50
|
+
yOrigin: yOrigin,
|
|
51
|
+
width: width,
|
|
52
|
+
height: height,
|
|
53
|
+
skipAnimation: skipAnimation ?? false
|
|
54
|
+
}, id);
|
|
55
|
+
}), completedData.map(({
|
|
56
|
+
seriesId,
|
|
57
|
+
layout,
|
|
58
|
+
xOrigin,
|
|
59
|
+
yOrigin,
|
|
60
|
+
data
|
|
61
|
+
}) => {
|
|
62
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
|
|
63
|
+
"data-series": seriesId,
|
|
64
|
+
className: classes.series,
|
|
65
|
+
children: data.map(({
|
|
66
|
+
dataIndex,
|
|
67
|
+
color,
|
|
68
|
+
maskId,
|
|
69
|
+
x,
|
|
70
|
+
y,
|
|
71
|
+
width,
|
|
72
|
+
height
|
|
73
|
+
}) => {
|
|
74
|
+
const barElement = /*#__PURE__*/(0, _jsxRuntime.jsx)(_BarElement.BarElement, (0, _extends2.default)({
|
|
75
|
+
id: seriesId,
|
|
76
|
+
dataIndex: dataIndex,
|
|
77
|
+
color: color,
|
|
78
|
+
skipAnimation: skipAnimation ?? false,
|
|
79
|
+
layout: layout ?? 'vertical',
|
|
80
|
+
x: x,
|
|
81
|
+
xOrigin: xOrigin,
|
|
82
|
+
y: y,
|
|
83
|
+
yOrigin: yOrigin,
|
|
84
|
+
width: width,
|
|
85
|
+
height: height
|
|
86
|
+
}, other, {
|
|
87
|
+
onClick: onItemClick && (event => {
|
|
88
|
+
onItemClick(event, {
|
|
89
|
+
type: 'bar',
|
|
90
|
+
seriesId,
|
|
91
|
+
dataIndex
|
|
92
|
+
});
|
|
93
|
+
})
|
|
94
|
+
}), dataIndex);
|
|
95
|
+
if (withoutBorderRadius) {
|
|
96
|
+
return barElement;
|
|
97
|
+
}
|
|
98
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
|
|
99
|
+
clipPath: `url(#${maskId})`,
|
|
100
|
+
children: barElement
|
|
101
|
+
}, dataIndex);
|
|
102
|
+
})
|
|
103
|
+
}, seriesId);
|
|
104
|
+
})]
|
|
105
|
+
});
|
|
106
|
+
}
|
|
@@ -9,7 +9,7 @@ export declare function getSeriesWithDefaultValues(seriesData: AllSeriesType<'ba
|
|
|
9
9
|
layout?: "horizontal" | "vertical";
|
|
10
10
|
stackOffset?: import("../../../index.js").StackOffsetType;
|
|
11
11
|
minBarSize?: number;
|
|
12
|
-
barLabel?: "value" | ((item: import("
|
|
12
|
+
barLabel?: "value" | ((item: import("@mui/x-charts/BarChart").BarItem, context: import("@mui/x-charts/BarChart").BarLabelContext) => string | null | undefined);
|
|
13
13
|
barLabelPlacement?: "center" | "outside";
|
|
14
14
|
valueFormatter?: import("../../../internals/index.js").SeriesValueFormatter<number | null> | undefined;
|
|
15
15
|
highlightScope?: import("../../../index.js").HighlightScope;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { KeyboardFocusHandler } from "../../../internals/plugins/featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
|
|
2
|
+
declare const keyboardFocusHandler: KeyboardFocusHandler<'bar', 'bar' | 'line' | 'scatter'>;
|
|
3
|
+
export default keyboardFocusHandler;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _commonNextFocusItem = require("../../../internals/commonNextFocusItem");
|
|
8
|
+
const outSeriesTypes = new Set(['bar', 'line', 'scatter']);
|
|
9
|
+
const keyboardFocusHandler = event => {
|
|
10
|
+
switch (event.key) {
|
|
11
|
+
case 'ArrowRight':
|
|
12
|
+
return (0, _commonNextFocusItem.createGetNextIndexFocusedItem)(outSeriesTypes);
|
|
13
|
+
case 'ArrowLeft':
|
|
14
|
+
return (0, _commonNextFocusItem.createGetPreviousIndexFocusedItem)(outSeriesTypes);
|
|
15
|
+
case 'ArrowDown':
|
|
16
|
+
return (0, _commonNextFocusItem.createGetPreviousSeriesFocusedItem)(outSeriesTypes);
|
|
17
|
+
case 'ArrowUp':
|
|
18
|
+
return (0, _commonNextFocusItem.createGetNextSeriesFocusedItem)(outSeriesTypes);
|
|
19
|
+
default:
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var _default = exports.default = keyboardFocusHandler;
|
|
@@ -8,14 +8,14 @@ exports.default = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _d3Shape = require("@mui/x-charts-vendor/d3-shape");
|
|
10
10
|
var _warning = require("@mui/x-internals/warning");
|
|
11
|
-
var
|
|
11
|
+
var _stacking = require("../../../internals/stacking");
|
|
12
12
|
const barValueFormatter = v => v == null ? '' : v.toLocaleString();
|
|
13
13
|
const seriesProcessor = (params, dataset) => {
|
|
14
14
|
const {
|
|
15
15
|
seriesOrder,
|
|
16
16
|
series
|
|
17
17
|
} = params;
|
|
18
|
-
const stackingGroups = (0,
|
|
18
|
+
const stackingGroups = (0, _stacking.getStackingGroups)(params);
|
|
19
19
|
|
|
20
20
|
// Create a data set with format adapted to d3
|
|
21
21
|
const d3Dataset = dataset ?? [];
|
|
@@ -10,9 +10,11 @@ var _extremums = require("./bar/extremums");
|
|
|
10
10
|
var _seriesProcessor = _interopRequireDefault(require("./bar/seriesProcessor"));
|
|
11
11
|
var _legend = _interopRequireDefault(require("./bar/legend"));
|
|
12
12
|
var _getColor = _interopRequireDefault(require("./bar/getColor"));
|
|
13
|
+
var _keyboardFocusHandler = _interopRequireDefault(require("./bar/keyboardFocusHandler"));
|
|
13
14
|
var _tooltip = _interopRequireWildcard(require("./bar/tooltip"));
|
|
14
15
|
var _tooltipPosition = _interopRequireDefault(require("./bar/tooltipPosition"));
|
|
15
16
|
var _getSeriesWithDefaultValues = require("./bar/getSeriesWithDefaultValues");
|
|
17
|
+
var _identifierSerializer = require("../../internals/identifierSerializer");
|
|
16
18
|
const barSeriesConfig = exports.barSeriesConfig = {
|
|
17
19
|
seriesProcessor: _seriesProcessor.default,
|
|
18
20
|
colorProcessor: _getColor.default,
|
|
@@ -22,5 +24,7 @@ const barSeriesConfig = exports.barSeriesConfig = {
|
|
|
22
24
|
axisTooltipGetter: _tooltip.axisTooltipGetter,
|
|
23
25
|
xExtremumGetter: _extremums.getExtremumX,
|
|
24
26
|
yExtremumGetter: _extremums.getExtremumY,
|
|
25
|
-
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.getSeriesWithDefaultValues
|
|
27
|
+
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.getSeriesWithDefaultValues,
|
|
28
|
+
keyboardFocusHandler: _keyboardFocusHandler.default,
|
|
29
|
+
identifierSerializer: _identifierSerializer.identifierSerializerSeriesIdDataIndex
|
|
26
30
|
};
|
package/BarChart/types.d.ts
CHANGED
|
@@ -15,12 +15,14 @@ export interface ProcessedBarSeriesData {
|
|
|
15
15
|
xOrigin: number;
|
|
16
16
|
yOrigin: number;
|
|
17
17
|
}
|
|
18
|
+
export type BorderRadiusSide = 'top' | 'bottom' | 'left' | 'right';
|
|
18
19
|
export interface ProcessedBarData extends AnimationData {
|
|
19
20
|
seriesId: SeriesId;
|
|
20
21
|
dataIndex: number;
|
|
21
22
|
color: string;
|
|
22
23
|
value: number | null;
|
|
23
24
|
maskId: string;
|
|
25
|
+
borderRadiusSide?: BorderRadiusSide;
|
|
24
26
|
}
|
|
25
27
|
export interface MaskData extends AnimationData {
|
|
26
28
|
id: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type
|
|
2
|
+
import { type BarChartProps, type BarSeries } from "./BarChart.js";
|
|
3
3
|
import { type ChartContainerProps } from "../ChartContainer/index.js";
|
|
4
4
|
import { type BarPlotProps } from "./BarPlot.js";
|
|
5
5
|
import { type ChartsGridProps } from "../ChartsGrid/index.js";
|
|
@@ -10,6 +10,10 @@ import { type ChartsAxisHighlightProps } from "../ChartsAxisHighlight/index.js";
|
|
|
10
10
|
import { type ChartsLegendSlotExtension } from "../ChartsLegend/index.js";
|
|
11
11
|
import type { ChartsWrapperProps } from "../ChartsWrapper/index.js";
|
|
12
12
|
import { type BarChartPluginSignatures } from "./BarChart.plugins.js";
|
|
13
|
+
export interface UseBarChartPropsExtensions {}
|
|
14
|
+
export type UseBarChartProps = Omit<BarChartProps, 'series'> & Omit<{
|
|
15
|
+
series: ReadonlyArray<BarSeries>;
|
|
16
|
+
}, keyof UseBarChartPropsExtensions> & UseBarChartPropsExtensions;
|
|
13
17
|
/**
|
|
14
18
|
* A helper function that extracts BarChartProps from the input props
|
|
15
19
|
* and returns an object with props for the children components of BarChart.
|
|
@@ -17,7 +21,7 @@ import { type BarChartPluginSignatures } from "./BarChart.plugins.js";
|
|
|
17
21
|
* @param props The input props for BarChart
|
|
18
22
|
* @returns An object with props for the children components of BarChart
|
|
19
23
|
*/
|
|
20
|
-
export declare const useBarChartProps: (props:
|
|
24
|
+
export declare const useBarChartProps: (props: UseBarChartProps) => {
|
|
21
25
|
chartsWrapperProps: Omit<ChartsWrapperProps, "children">;
|
|
22
26
|
chartContainerProps: ChartContainerProps<"bar", BarChartPluginSignatures>;
|
|
23
27
|
barPlotProps: BarPlotProps;
|
|
@@ -13,7 +13,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
14
14
|
var _constants = require("../constants");
|
|
15
15
|
var _BarChart = require("./BarChart.plugins");
|
|
16
|
-
const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "axisHighlight", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className", "hideLegend", "showToolbar", "brushConfig"];
|
|
16
|
+
const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "axisHighlight", "grid", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className", "hideLegend", "showToolbar", "brushConfig", "renderer"];
|
|
17
17
|
/**
|
|
18
18
|
* A helper function that extracts BarChartProps from the input props
|
|
19
19
|
* and returns an object with props for the children components of BarChart.
|
|
@@ -46,7 +46,8 @@ const useBarChartProps = props => {
|
|
|
46
46
|
borderRadius,
|
|
47
47
|
barLabel,
|
|
48
48
|
className,
|
|
49
|
-
brushConfig
|
|
49
|
+
brushConfig,
|
|
50
|
+
renderer
|
|
50
51
|
} = props,
|
|
51
52
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
52
53
|
const id = (0, _useId.default)();
|
|
@@ -111,6 +112,7 @@ const useBarChartProps = props => {
|
|
|
111
112
|
slots,
|
|
112
113
|
slotProps,
|
|
113
114
|
borderRadius,
|
|
115
|
+
renderer,
|
|
114
116
|
barLabel
|
|
115
117
|
};
|
|
116
118
|
const gridProps = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ChartsXAxisProps, type ChartsYAxisProps } from "../models/axis.js";
|
|
2
|
-
import { type ChartDrawingArea } from "../hooks/index.js";
|
|
3
2
|
import { type MaskData, type ProcessedBarSeriesData } from "./types.js";
|
|
4
3
|
import { type ComputedAxisConfig } from "../internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.js";
|
|
4
|
+
import { type ChartDrawingArea } from "../hooks/useDrawingArea.js";
|
|
5
5
|
export declare function useBarPlotData(drawingArea: ChartDrawingArea, xAxes: ComputedAxisConfig<ChartsXAxisProps>, yAxes: ComputedAxisConfig<ChartsYAxisProps>): {
|
|
6
6
|
completedData: ProcessedBarSeriesData[];
|
|
7
7
|
masksData: MaskData[];
|
|
@@ -7,19 +7,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useBarPlotData = useBarPlotData;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _getColor = _interopRequireDefault(require("./seriesConfig/bar/getColor"));
|
|
10
|
-
var
|
|
10
|
+
var _useAxis = require("../hooks/useAxis");
|
|
11
11
|
var _checkBarChartScaleErrors = require("./checkBarChartScaleErrors");
|
|
12
12
|
var _useBarSeries = require("../hooks/useBarSeries");
|
|
13
13
|
var _getBarDimensions = require("../internals/getBarDimensions");
|
|
14
|
+
var _useChartId = require("../hooks/useChartId");
|
|
14
15
|
function useBarPlotData(drawingArea, xAxes, yAxes) {
|
|
15
16
|
const seriesData = (0, _useBarSeries.useBarSeriesContext)() ?? {
|
|
16
17
|
series: {},
|
|
17
18
|
stackingGroups: [],
|
|
18
19
|
seriesOrder: []
|
|
19
20
|
};
|
|
20
|
-
const defaultXAxisId = (0,
|
|
21
|
-
const defaultYAxisId = (0,
|
|
22
|
-
const chartId = (0,
|
|
21
|
+
const defaultXAxisId = (0, _useAxis.useXAxes)().xAxisIds[0];
|
|
22
|
+
const defaultYAxisId = (0, _useAxis.useYAxes)().yAxisIds[0];
|
|
23
|
+
const chartId = (0, _useChartId.useChartId)();
|
|
23
24
|
const {
|
|
24
25
|
series,
|
|
25
26
|
stackingGroups
|
|
@@ -32,6 +33,8 @@ function useBarPlotData(drawingArea, xAxes, yAxes) {
|
|
|
32
33
|
const xMax = drawingArea.left + drawingArea.width;
|
|
33
34
|
const yMin = drawingArea.top;
|
|
34
35
|
const yMax = drawingArea.top + drawingArea.height;
|
|
36
|
+
const lastNegativePerIndex = new Map();
|
|
37
|
+
const lastPositivePerIndex = new Map();
|
|
35
38
|
return seriesIds.map(seriesId => {
|
|
36
39
|
const xAxisId = series[seriesId].xAxisId ?? defaultXAxisId;
|
|
37
40
|
const yAxisId = series[seriesId].yAxisId ?? defaultYAxisId;
|
|
@@ -73,6 +76,22 @@ function useBarPlotData(drawingArea, xAxes, yAxes) {
|
|
|
73
76
|
if (result.x > xMax || result.x + result.width < xMin || result.y > yMax || result.y + result.height < yMin) {
|
|
74
77
|
continue;
|
|
75
78
|
}
|
|
79
|
+
const lastNegative = lastNegativePerIndex.get(dataIndex);
|
|
80
|
+
const lastPositive = lastPositivePerIndex.get(dataIndex);
|
|
81
|
+
const sign = (reverse ? -1 : 1) * Math.sign(result.value ?? 0);
|
|
82
|
+
if (sign > 0) {
|
|
83
|
+
if (lastPositive) {
|
|
84
|
+
delete lastPositive.borderRadiusSide;
|
|
85
|
+
}
|
|
86
|
+
result.borderRadiusSide = verticalLayout ? 'top' : 'right';
|
|
87
|
+
lastPositivePerIndex.set(dataIndex, result);
|
|
88
|
+
} else if (sign < 0) {
|
|
89
|
+
if (lastNegative) {
|
|
90
|
+
delete lastNegative.borderRadiusSide;
|
|
91
|
+
}
|
|
92
|
+
result.borderRadiusSide = verticalLayout ? 'bottom' : 'left';
|
|
93
|
+
lastNegativePerIndex.set(dataIndex, result);
|
|
94
|
+
}
|
|
76
95
|
if (!masks[result.maskId]) {
|
|
77
96
|
masks[result.maskId] = {
|
|
78
97
|
id: result.maskId,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type BarItemIdentifier } from "../models/seriesType/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Hook that registers pointer event handlers for chart item clicking.
|
|
4
|
+
* @param onItemClick Callback for item click events.
|
|
5
|
+
*/
|
|
6
|
+
export declare function useRegisterItemClickHandlers(onItemClick: ((event: MouseEvent, barItemIdentifier: BarItemIdentifier) => void) | undefined): void;
|