UNPKG

@mui/x-data-grid

Version:

The Community plan edition of the Data Grid components (MUI X).

25 lines 1.33 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'; import { isMultipleRowSelectionEnabled } from '../features/rowSelection/utils'; export const useGridAriaAttributes = () => { 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.treeData) { role = 'treegrid'; } return { role, 'aria-colcount': visibleColumns.length, 'aria-rowcount': headerGroupingMaxDepth + 1 + pinnedRowsCount + totalRowCount, 'aria-multiselectable': isMultipleRowSelectionEnabled(rootProps) }; };