UNPKG

@mui/x-charts

Version:

The community edition of MUI X Charts components.

71 lines (70 loc) 2.23 kB
"use strict"; 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); }