UNPKG

@mui/x-data-grid

Version:

The community edition of the data grid component (MUI X).

25 lines 1.38 kB
import { gridVisibleColumnDefinitionsSelector } from '../features/columns/gridColumnsSelector'; import { useGridSelector } from './useGridSelector'; import { useGridRootProps } from './useGridRootProps'; import { gridColumnGroupsHeaderMaxDepthSelector } from '../features/columnGrouping/gridColumnGroupsSelector'; import { gridPinnedRowsCountSelector, gridRowCountSelector } from '../features/rows/gridRowsSelector'; import { useGridPrivateApiContext } from './useGridPrivateApiContext'; export const useGridAriaAttributes = () => { var _rootProps$experiment; const apiRef = useGridPrivateApiContext(); const rootProps = useGridRootProps(); const visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector); const totalRowCount = useGridSelector(apiRef, gridRowCountSelector); const headerGroupingMaxDepth = useGridSelector(apiRef, gridColumnGroupsHeaderMaxDepthSelector); const pinnedRowsCount = useGridSelector(apiRef, gridPinnedRowsCountSelector); let role = 'grid'; if ((_rootProps$experiment = rootProps.experimentalFeatures) != null && _rootProps$experiment.ariaV7 && rootProps.treeData) { role = 'treegrid'; } return { role, 'aria-colcount': visibleColumns.length, 'aria-rowcount': headerGroupingMaxDepth + 1 + pinnedRowsCount + totalRowCount, 'aria-multiselectable': !rootProps.disableMultipleRowSelection }; };