@mui/x-charts 8.23.0 → 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/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 +5 -1
- 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/legend.js +1 -0
- package/BarChart/seriesConfig/index.js +3 -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 +111 -1
- 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 +5 -1
- 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 +3 -1
- package/LineChart/seriesConfig/legend.js +1 -0
- package/PieChart/FocusedPieArc.js +5 -2
- 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/seriesConfig/index.js +3 -1
- 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/ScatterChart.js +30 -0
- package/ScatterChart/ScatterChart.plugins.d.ts +2 -1
- package/ScatterChart/ScatterChart.plugins.js +2 -1
- package/ScatterChart/seriesConfig/index.js +3 -1
- 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/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 +5 -1
- 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/legend.js +1 -0
- package/esm/BarChart/seriesConfig/index.js +3 -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 +5 -1
- 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 +3 -1
- package/esm/LineChart/seriesConfig/legend.js +1 -0
- package/esm/PieChart/FocusedPieArc.js +4 -1
- 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/seriesConfig/index.js +3 -1
- 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/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 +3 -1
- package/esm/ScatterChart/seriesConfig/legend.js +1 -0
- package/esm/SparkLineChart/SparkLineChart.js +46 -0
- 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.js +12 -8
- 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 +6 -2
- package/esm/internals/index.js +6 -2
- 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/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.js +7 -34
- 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.js +10 -32
- package/esm/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +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 +7 -0
- 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/moduleAugmentation/barChartBatchRendererOnItemClick.d.ts +13 -0
- package/esm/moduleAugmentation/barChartBatchRendererOnItemClick.js +1 -0
- package/index.js +1 -1
- package/internals/appendAtKey.d.ts +8 -0
- package/internals/appendAtKey.js +23 -0
- package/internals/commonNextFocusItem.js +12 -8
- 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 +6 -2
- package/internals/index.js +51 -7
- 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/utils/getMaxSeriesLength.d.ts +3 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getMaxSeriesLength.js +12 -0
- package/internals/plugins/featurePlugins/useChartKeyboardNavigation/utils/getNextNonEmptySeries.js +6 -34
- 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.js +9 -32
- package/internals/plugins/featurePlugins/useChartTooltip/useChartTooltip.selectors.d.ts +2 -2
- 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 +7 -0
- 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/moduleAugmentation/barChartBatchRendererOnItemClick.d.ts +13 -0
- package/moduleAugmentation/barChartBatchRendererOnItemClick.js +5 -0
- package/package.json +13 -3
package/internals/plugins/featurePlugins/useChartVisibilityManager/useChartVisibilityManager.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useChartVisibilityManager = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
11
|
+
var _useEffectAfterFirstRender = require("@mui/x-internals/useEffectAfterFirstRender");
|
|
12
|
+
var _useChartVisibilityManager = require("./useChartVisibilityManager.selectors");
|
|
13
|
+
var _visibilityParamToMap = require("./visibilityParamToMap");
|
|
14
|
+
const useChartVisibilityManager = ({
|
|
15
|
+
store,
|
|
16
|
+
params,
|
|
17
|
+
seriesConfig,
|
|
18
|
+
instance
|
|
19
|
+
}) => {
|
|
20
|
+
// Manage controlled state
|
|
21
|
+
(0, _useEffectAfterFirstRender.useEffectAfterFirstRender)(() => {
|
|
22
|
+
if (params.hiddenItems === undefined) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (process.env.NODE_ENV !== 'production' && !store.state.visibilityManager.isControlled) {
|
|
26
|
+
console.error([`MUI X Charts: A chart component is changing the \`hiddenItems\` from uncontrolled to controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', 'Decide between using a controlled or uncontrolled for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
|
|
27
|
+
}
|
|
28
|
+
store.set('visibilityManager', (0, _extends2.default)({}, store.state.visibilityManager, {
|
|
29
|
+
visibilityMap: (0, _visibilityParamToMap.visibilityParamToMap)(params.hiddenItems, seriesConfig)
|
|
30
|
+
}));
|
|
31
|
+
}, [store, params.hiddenItems, seriesConfig]);
|
|
32
|
+
const hideItem = (0, _useEventCallback.default)(identifier => {
|
|
33
|
+
const visibilityMap = store.state.visibilityManager.visibilityMap;
|
|
34
|
+
const id = instance.serializeIdentifier(identifier);
|
|
35
|
+
if (visibilityMap.has(id)) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const newVisibilityMap = new Map(visibilityMap);
|
|
39
|
+
newVisibilityMap.set(id, identifier);
|
|
40
|
+
store.set('visibilityManager', (0, _extends2.default)({}, store.state.visibilityManager, {
|
|
41
|
+
visibilityMap: newVisibilityMap
|
|
42
|
+
}));
|
|
43
|
+
params.onHiddenItemsChange?.(Array.from(newVisibilityMap.values()));
|
|
44
|
+
});
|
|
45
|
+
const showItem = (0, _useEventCallback.default)(identifier => {
|
|
46
|
+
const visibilityMap = store.state.visibilityManager.visibilityMap;
|
|
47
|
+
const id = instance.serializeIdentifier(identifier);
|
|
48
|
+
if (!visibilityMap.has(id)) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const newVisibilityMap = new Map(visibilityMap);
|
|
52
|
+
newVisibilityMap.delete(id);
|
|
53
|
+
store.set('visibilityManager', (0, _extends2.default)({}, store.state.visibilityManager, {
|
|
54
|
+
visibilityMap: newVisibilityMap
|
|
55
|
+
}));
|
|
56
|
+
params.onHiddenItemsChange?.(Array.from(newVisibilityMap.values()));
|
|
57
|
+
});
|
|
58
|
+
const toggleItem = (0, _useEventCallback.default)(identifier => {
|
|
59
|
+
const visibilityMap = store.state.visibilityManager.visibilityMap;
|
|
60
|
+
const id = instance.serializeIdentifier(identifier);
|
|
61
|
+
if (visibilityMap.has(id)) {
|
|
62
|
+
showItem(identifier);
|
|
63
|
+
} else {
|
|
64
|
+
hideItem(identifier);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
return {
|
|
68
|
+
instance: {
|
|
69
|
+
hideItem,
|
|
70
|
+
showItem,
|
|
71
|
+
toggleItemVisibility: toggleItem
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
exports.useChartVisibilityManager = useChartVisibilityManager;
|
|
76
|
+
useChartVisibilityManager.getInitialState = (params, _, seriesConfig) => ({
|
|
77
|
+
visibilityManager: {
|
|
78
|
+
visibilityMap: params.hiddenItems ? (0, _visibilityParamToMap.visibilityParamToMap)(params.hiddenItems, seriesConfig) : _useChartVisibilityManager.EMPTY_VISIBILITY_MAP,
|
|
79
|
+
isControlled: params.hiddenItems !== undefined
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
useChartVisibilityManager.params = {
|
|
83
|
+
onHiddenItemsChange: true,
|
|
84
|
+
hiddenItems: true
|
|
85
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { VisibilityIdentifier } from "./useChartVisibilityManager.types.js";
|
|
2
|
+
import type { ChartSeriesConfig } from "../../models/index.js";
|
|
3
|
+
import type { ChartSeriesType } from "../../../../models/seriesType/config.js";
|
|
4
|
+
export declare const EMPTY_VISIBILITY_MAP: Map<any, any>;
|
|
5
|
+
/**
|
|
6
|
+
* Selector to get the hidden identifiers from the visibility manager.
|
|
7
|
+
*/
|
|
8
|
+
export declare const selectorVisibilityMap: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartVisibilityManager.types.js").UseChartVisibilityManagerState> & {
|
|
9
|
+
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
10
|
+
}) => Map<any, any>;
|
|
11
|
+
/**
|
|
12
|
+
* Selector that returns a function which returns whether an item is visible.
|
|
13
|
+
*/
|
|
14
|
+
export declare const selectorIsItemVisibleGetter: (args_0: import("../../corePlugins/useChartId/useChartId.types.js").UseChartIdState & import("../../corePlugins/useChartExperimentalFeature/useChartExperimentalFeature.types.js").UseChartExperimentalFeaturesState & import("../../corePlugins/useChartDimensions/useChartDimensions.types.js").UseChartDimensionsState & import("../../corePlugins/useChartSeries/useChartSeries.types.js").UseChartSeriesState<keyof import("../../../index.js").ChartsSeriesConfig> & import("../../corePlugins/useChartAnimation/useChartAnimation.types.js").UseChartAnimationState & import("../../../index.js").UseChartInteractionListenerState & Partial<import("./useChartVisibilityManager.types.js").UseChartVisibilityManagerState> & {
|
|
15
|
+
cacheKey: import("../../models/index.js").ChartStateCacheKey;
|
|
16
|
+
}) => (seriesConfig: ChartSeriesConfig<ChartSeriesType>, identifier: VisibilityIdentifier) => boolean;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.selectorVisibilityMap = exports.selectorIsItemVisibleGetter = exports.EMPTY_VISIBILITY_MAP = void 0;
|
|
7
|
+
var _store = require("@mui/x-internals/store");
|
|
8
|
+
var _isIdentifierVisible = require("./isIdentifierVisible");
|
|
9
|
+
/**
|
|
10
|
+
* Selector to get the visibility manager state.
|
|
11
|
+
*/
|
|
12
|
+
const selectVisibilityManager = state => state.visibilityManager;
|
|
13
|
+
const EMPTY_VISIBILITY_MAP = exports.EMPTY_VISIBILITY_MAP = new Map();
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Selector to get the hidden identifiers from the visibility manager.
|
|
17
|
+
*/
|
|
18
|
+
const selectorVisibilityMap = exports.selectorVisibilityMap = (0, _store.createSelector)(selectVisibilityManager, visibilityManager => visibilityManager?.visibilityMap ?? EMPTY_VISIBILITY_MAP);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Selector that returns a function which returns whether an item is visible.
|
|
22
|
+
*/
|
|
23
|
+
const selectorIsItemVisibleGetter = exports.selectorIsItemVisibleGetter = (0, _store.createSelectorMemoized)(selectorVisibilityMap, visibilityMap => {
|
|
24
|
+
return (seriesConfig, identifier) => (0, _isIdentifierVisible.isIdentifierVisible)(visibilityMap, identifier, seriesConfig);
|
|
25
|
+
});
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { type ChartPluginSignature } from "../../models/index.js";
|
|
2
|
+
import { type UseChartSeriesSignature } from "../../corePlugins/useChartSeries/index.js";
|
|
3
|
+
import { type SeriesItemIdentifier } from "../../../../models/index.js";
|
|
4
|
+
import { type ChartSeriesType } from "../../../../models/seriesType/config.js";
|
|
5
|
+
export type VisibilityIdentifier<T extends ChartSeriesType = ChartSeriesType> = Partial<SeriesItemIdentifier<T>> & (SeriesItemIdentifier<T> extends {
|
|
6
|
+
subType?: infer U;
|
|
7
|
+
} ? {
|
|
8
|
+
type: T;
|
|
9
|
+
subType: U;
|
|
10
|
+
} : {
|
|
11
|
+
type: T;
|
|
12
|
+
});
|
|
13
|
+
export type VisibilityMap = Map<string, VisibilityIdentifier>;
|
|
14
|
+
export type IsItemVisibleFunction = {
|
|
15
|
+
/**
|
|
16
|
+
* Function to check if an item is visible based on its identifier.
|
|
17
|
+
*
|
|
18
|
+
* @param {VisibilityIdentifier} identifier The identifier of the item to check.
|
|
19
|
+
* @returns {boolean} Whether the item is visible.
|
|
20
|
+
*/
|
|
21
|
+
(identifier: VisibilityIdentifier): boolean;
|
|
22
|
+
};
|
|
23
|
+
export interface UseChartVisibilityManagerInstance<T extends ChartSeriesType> {
|
|
24
|
+
/**
|
|
25
|
+
* Hide an item by its identifier.
|
|
26
|
+
*
|
|
27
|
+
* @param {VisibilityIdentifier} identifier The identifier of the item to hide.
|
|
28
|
+
*/
|
|
29
|
+
hideItem(identifier: VisibilityIdentifier<T>): void;
|
|
30
|
+
/**
|
|
31
|
+
* Show an item by its identifier.
|
|
32
|
+
*
|
|
33
|
+
* @param {VisibilityIdentifier} identifier The identifier of the item to show.
|
|
34
|
+
*/
|
|
35
|
+
showItem(identifier: VisibilityIdentifier<T>): void;
|
|
36
|
+
/**
|
|
37
|
+
* Toggle the visibility of an item by its identifier.
|
|
38
|
+
*
|
|
39
|
+
* @param {VisibilityIdentifier} identifier The identifier of the item to toggle.
|
|
40
|
+
*/
|
|
41
|
+
toggleItemVisibility(identifier: VisibilityIdentifier<T>): void;
|
|
42
|
+
}
|
|
43
|
+
export interface UseChartVisibilityManagerParameters<T extends ChartSeriesType> {
|
|
44
|
+
/**
|
|
45
|
+
* Callback fired when any hidden identifiers change.
|
|
46
|
+
* @param {VisibilityIdentifier[]} hiddenItems The new list of hidden identifiers.
|
|
47
|
+
*/
|
|
48
|
+
onHiddenItemsChange?: (hiddenItems: VisibilityIdentifier<T>[]) => void;
|
|
49
|
+
/**
|
|
50
|
+
* List of hidden series and/or items.
|
|
51
|
+
*
|
|
52
|
+
* Different chart types use different keys.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```ts
|
|
56
|
+
* [
|
|
57
|
+
* {
|
|
58
|
+
* type: 'pie',
|
|
59
|
+
* seriesId: 'series-1',
|
|
60
|
+
* dataIndex: 3,
|
|
61
|
+
* },
|
|
62
|
+
* {
|
|
63
|
+
* type: 'line',
|
|
64
|
+
* seriesId: 'series-2',
|
|
65
|
+
* }
|
|
66
|
+
* ]
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
hiddenItems?: VisibilityIdentifier<T>[];
|
|
70
|
+
}
|
|
71
|
+
export type UseChartVisibilityManagerDefaultizedParameters<T extends ChartSeriesType> = UseChartVisibilityManagerParameters<T>;
|
|
72
|
+
export interface UseChartVisibilityManagerState {
|
|
73
|
+
visibilityManager: {
|
|
74
|
+
/**
|
|
75
|
+
* Map of hidden identifiers by their serialized form.
|
|
76
|
+
*/
|
|
77
|
+
visibilityMap: VisibilityMap;
|
|
78
|
+
/**
|
|
79
|
+
* Internal information to know if the user controls the state or not.
|
|
80
|
+
*/
|
|
81
|
+
isControlled: boolean;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export type UseChartVisibilityManagerSignature<T extends ChartSeriesType = ChartSeriesType> = ChartPluginSignature<{
|
|
85
|
+
instance: UseChartVisibilityManagerInstance<T>;
|
|
86
|
+
state: UseChartVisibilityManagerState;
|
|
87
|
+
params: UseChartVisibilityManagerParameters<T>;
|
|
88
|
+
defaultizedParams: UseChartVisibilityManagerDefaultizedParameters<T>;
|
|
89
|
+
dependencies: [UseChartSeriesSignature];
|
|
90
|
+
}>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ChartSeriesType } from "../../../../models/seriesType/config.js";
|
|
2
|
+
import type { ChartSeriesConfig } from "../../models/index.js";
|
|
3
|
+
import type { VisibilityIdentifier, VisibilityMap } from "./useChartVisibilityManager.types.js";
|
|
4
|
+
export declare const visibilityParamToMap: (hiddenItems: VisibilityIdentifier[] | undefined, seriesConfig: ChartSeriesConfig<ChartSeriesType>) => VisibilityMap;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.visibilityParamToMap = void 0;
|
|
7
|
+
var _serializeIdentifier = require("../../corePlugins/useChartSeries/serializeIdentifier");
|
|
8
|
+
const visibilityParamToMap = (hiddenItems, seriesConfig) => {
|
|
9
|
+
const visibilityMap = new Map();
|
|
10
|
+
if (hiddenItems) {
|
|
11
|
+
hiddenItems.forEach(identifier => {
|
|
12
|
+
const uniqueId = (0, _serializeIdentifier.serializeIdentifier)(seriesConfig, identifier);
|
|
13
|
+
visibilityMap.set(uniqueId, identifier);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return visibilityMap;
|
|
17
|
+
};
|
|
18
|
+
exports.visibilityParamToMap = visibilityParamToMap;
|
|
@@ -7,4 +7,5 @@ export * from "./seriesLayout.types.js";
|
|
|
7
7
|
export * from "./tooltipGetter.types.js";
|
|
8
8
|
export * from "./tooltipItemPositionGetter.types.js";
|
|
9
9
|
export * from "./legendGetter.types.js";
|
|
10
|
-
export * from "./getSeriesWithDefaultValues.types.js";
|
|
10
|
+
export * from "./getSeriesWithDefaultValues.types.js";
|
|
11
|
+
export * from "./identifierSerializer.types.js";
|
|
@@ -112,4 +112,15 @@ Object.keys(_getSeriesWithDefaultValues).forEach(function (key) {
|
|
|
112
112
|
return _getSeriesWithDefaultValues[key];
|
|
113
113
|
}
|
|
114
114
|
});
|
|
115
|
+
});
|
|
116
|
+
var _identifierSerializer = require("./identifierSerializer.types");
|
|
117
|
+
Object.keys(_identifierSerializer).forEach(function (key) {
|
|
118
|
+
if (key === "default" || key === "__esModule") return;
|
|
119
|
+
if (key in exports && exports[key] === _identifierSerializer[key]) return;
|
|
120
|
+
Object.defineProperty(exports, key, {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function () {
|
|
123
|
+
return _identifierSerializer[key];
|
|
124
|
+
}
|
|
125
|
+
});
|
|
115
126
|
});
|
|
@@ -9,6 +9,7 @@ import { type GetSeriesWithDefaultValues } from "./getSeriesWithDefaultValues.ty
|
|
|
9
9
|
import { type TooltipItemPositionGetter } from "./tooltipItemPositionGetter.types.js";
|
|
10
10
|
import { type SeriesLayoutGetter } from "./seriesLayout.types.js";
|
|
11
11
|
import { type KeyboardFocusHandler } from "../../featurePlugins/useChartKeyboardNavigation/keyboardFocusHandler.types.js";
|
|
12
|
+
import { type IdentifierSerializer } from "./identifierSerializer.types.js";
|
|
12
13
|
export type ChartSeriesTypeConfig<TSeriesType extends ChartSeriesType> = {
|
|
13
14
|
seriesProcessor: SeriesProcessor<TSeriesType>;
|
|
14
15
|
/**
|
|
@@ -21,6 +22,12 @@ export type ChartSeriesTypeConfig<TSeriesType extends ChartSeriesType> = {
|
|
|
21
22
|
tooltipItemPositionGetter?: TooltipItemPositionGetter<TSeriesType>;
|
|
22
23
|
getSeriesWithDefaultValues: GetSeriesWithDefaultValues<TSeriesType>;
|
|
23
24
|
keyboardFocusHandler?: KeyboardFocusHandler<TSeriesType>;
|
|
25
|
+
/**
|
|
26
|
+
* A function to serialize the series item identifier into a unique string.
|
|
27
|
+
* @param {ChartsSeriesConfig[TSeriesType]['itemIdentifier']} identifier The series item identifier.
|
|
28
|
+
* @returns {string} A unique string representation of the identifier.
|
|
29
|
+
*/
|
|
30
|
+
identifierSerializer: IdentifierSerializer<TSeriesType>;
|
|
24
31
|
} & (TSeriesType extends CartesianChartSeriesType ? {
|
|
25
32
|
xExtremumGetter: CartesianExtremumGetter<TSeriesType>;
|
|
26
33
|
yExtremumGetter: CartesianExtremumGetter<TSeriesType>;
|
package/models/axis.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { ScaleBand, ScaleLinear, ScaleLogarithmic, ScaleOrdinal, ScalePoint, ScalePower, ScaleSequential, ScaleThreshold, ScaleTime, ScaleSymLog, NumberValue } from '@mui/x-charts-vendor/d3-scale';
|
|
2
2
|
import { type SxProps } from '@mui/system/styleFunctionSx';
|
|
3
|
-
import { type MakeOptional, type MakeRequired } from '@mui/x-internals/types';
|
|
3
|
+
import { type HasProperty, type MakeOptional, type MakeRequired } from '@mui/x-internals/types';
|
|
4
4
|
import type { DefaultizedZoomOptions } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
|
|
5
5
|
import { type ChartsAxisClasses } from "../ChartsAxis/axisClasses.js";
|
|
6
6
|
import type { TickParams } from "../hooks/useTicks.js";
|
|
7
7
|
import type { ChartsTextProps } from "../ChartsText/index.js";
|
|
8
8
|
import type { ContinuousColorConfig, OrdinalColorConfig, PiecewiseColorConfig } from "./colorMapping.js";
|
|
9
9
|
import type { OrdinalTimeTicks } from "./timeTicks.js";
|
|
10
|
+
import { type ChartsTypeFeatureFlags } from "./featureFlags.js";
|
|
10
11
|
export type AxisId = string | number;
|
|
11
12
|
export type D3Scale<Domain extends {
|
|
12
13
|
toString(): string;
|
|
@@ -133,7 +134,7 @@ type AxisSideConfig<AxisProps extends ChartsAxisProps> = AxisProps extends Chart
|
|
|
133
134
|
position?: 'top' | 'bottom' | 'none';
|
|
134
135
|
/**
|
|
135
136
|
* The height of the axis.
|
|
136
|
-
* @default
|
|
137
|
+
* @default 45 if an axis label is provided, 25 otherwise.
|
|
137
138
|
*/
|
|
138
139
|
height?: number;
|
|
139
140
|
} : AxisProps extends ChartsYAxisProps ? {
|
|
@@ -149,7 +150,7 @@ type AxisSideConfig<AxisProps extends ChartsAxisProps> = AxisProps extends Chart
|
|
|
149
150
|
position?: 'left' | 'right' | 'none';
|
|
150
151
|
/**
|
|
151
152
|
* The width of the axis.
|
|
152
|
-
* @default
|
|
153
|
+
* @default 65 if an axis label is provided, 45 otherwise.
|
|
153
154
|
*/
|
|
154
155
|
width?: number;
|
|
155
156
|
} : {
|
|
@@ -521,7 +522,7 @@ export interface ChartsAxisData {
|
|
|
521
522
|
/**
|
|
522
523
|
* The mapping of series ids to their value for this particular axis index.
|
|
523
524
|
*/
|
|
524
|
-
seriesValues: Record<string, number | null | undefined>;
|
|
525
|
+
seriesValues: Record<string, HasProperty<ChartsTypeFeatureFlags, 'seriesValueOverride'> extends true ? ChartsTypeFeatureFlags['seriesValuesOverride'] : number | null | undefined>;
|
|
525
526
|
}
|
|
526
527
|
export type CartesianDirection = 'x' | 'y';
|
|
527
528
|
export type PolarDirection = 'rotation' | 'radius';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export interface ChartsTypeFeatureFlags {}
|
package/models/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from "./seriesType/index.js";
|
|
2
2
|
export * from "./stacking.js";
|
|
3
3
|
export * from "./slots/index.js";
|
|
4
|
+
export * from "./featureFlags.js";
|
|
4
5
|
export type { AxisConfig, ChartsYAxisProps, ChartsXAxisProps, ScaleName, ContinuousScaleName, ChartsAxisData, XAxis, YAxis, RadiusAxis, RotationAxis, AxisItemIdentifier, AxisValueFormatterContext } from "./axis.js";
|
|
5
6
|
export type { PropsFromSlot } from '@mui/x-internals/slots';
|
|
6
7
|
export type { Position } from "./position.js";
|
package/models/index.js
CHANGED
|
@@ -35,4 +35,15 @@ Object.keys(_slots).forEach(function (key) {
|
|
|
35
35
|
return _slots[key];
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
|
+
});
|
|
39
|
+
var _featureFlags = require("./featureFlags");
|
|
40
|
+
Object.keys(_featureFlags).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _featureFlags[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _featureFlags[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
38
49
|
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { BarItemIdentifier } from "../models/index.js";
|
|
3
|
+
declare module '@mui/x-charts/BarChart' {
|
|
4
|
+
interface BarPlotProps {
|
|
5
|
+
/**
|
|
6
|
+
* Callback fired when a bar item is clicked.
|
|
7
|
+
* @param {MouseEvent | React.MouseEvent<SVGElement, MouseEvent>} event The event source of the callback.
|
|
8
|
+
* It is a native MouseEvent for `svg-batch` renderer and a React MouseEvent for `svg-single` renderer.
|
|
9
|
+
* @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
|
|
10
|
+
*/
|
|
11
|
+
onItemClick?(event: MouseEvent | React.MouseEvent<SVGElement, MouseEvent>, barItemIdentifier: BarItemIdentifier): void;
|
|
12
|
+
}
|
|
13
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-charts",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.24.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The community edition of MUI X Charts components.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"reselect": "^5.1.1",
|
|
36
36
|
"use-sync-external-store": "^1.6.0",
|
|
37
37
|
"@mui/x-charts-vendor": "8.23.0",
|
|
38
|
-
"@mui/x-
|
|
39
|
-
"@mui/x-
|
|
38
|
+
"@mui/x-internal-gestures": "0.4.0",
|
|
39
|
+
"@mui/x-internals": "8.24.0"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@emotion/react": "^11.9.0",
|
|
@@ -82,6 +82,16 @@
|
|
|
82
82
|
"default": "./esm/*/index.js"
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
|
+
"./moduleAugmentation/*": {
|
|
86
|
+
"require": {
|
|
87
|
+
"types": "./moduleAugmentation/*.d.ts",
|
|
88
|
+
"default": "./moduleAugmentation/*.js"
|
|
89
|
+
},
|
|
90
|
+
"default": {
|
|
91
|
+
"types": "./esm/moduleAugmentation/*.d.ts",
|
|
92
|
+
"default": "./esm/moduleAugmentation/*.js"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
85
95
|
"./esm": null
|
|
86
96
|
}
|
|
87
97
|
}
|