@mui/x-charts
Version:
The community edition of MUI X Charts components.
71 lines (70 loc) • 2.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useDescription = useDescription;
var _hooks = require("../../../hooks");
var _useStore = require("../../store/useStore");
var _useChartSeriesConfig = require("../../plugins/corePlugins/useChartSeriesConfig");
var _isCartesian = require("../../isCartesian");
var _isPolar = require("../../isPolar");
var _useChartKeyboardNavigation = require("../../plugins/featurePlugins/useChartKeyboardNavigation");
/**
* Get the message associated to the focused item.
* @returns {string | null} the accessibility description linked to the focused item
*/
function useDescription() {
const store = (0, _useStore.useStore)();
const focusedItem = store.use(_useChartKeyboardNavigation.selectorChartsFocusedOrToFocusedItem);
const seriesConfig = store.use(_useChartSeriesConfig.selectorChartSeriesConfig);
const seriesState = (0, _hooks.useSeries)();
const {
localeText
} = (0, _hooks.useChartsLocalization)();
const {
xAxis,
xAxisIds
} = (0, _hooks.useXAxes)();
const {
yAxis,
yAxisIds
} = (0, _hooks.useYAxes)();
const {
rotationAxis,
rotationAxisIds
} = (0, _hooks.useRotationAxes)();
const {
radiusAxis,
radiusAxisIds
} = (0, _hooks.useRadiusAxes)();
if (focusedItem === null) {
return null;
}
const {
type,
seriesId
} = focusedItem;
const focusedSeries = seriesState[type]?.series[seriesId];
if (!focusedSeries) {
return null;
}
const descriptionGetter = seriesConfig[type]?.descriptionGetter;
if (!descriptionGetter) {
return null;
}
const descriptionParams = {
identifier: focusedItem,
series: focusedSeries,
localeText
};
if ((0, _isCartesian.isCartesianSeries)(focusedSeries)) {
const xAxisId = focusedSeries.xAxisId ?? xAxisIds[0];
const yAxisId = focusedSeries.yAxisId ?? yAxisIds[0];
descriptionParams.xAxis = xAxis[xAxisId];
descriptionParams.yAxis = yAxis[yAxisId];
} else if ((0, _isPolar.isPolarSeriesType)(type)) {
descriptionParams.rotationAxis = rotationAxis[rotationAxisIds[0]];
descriptionParams.radiusAxis = radiusAxis[radiusAxisIds[0]];
}
return descriptionGetter(descriptionParams);
}