UNPKG

@mui/x-data-grid-premium

Version:

The Premium plan edition of the MUI X Data Grid Components.

46 lines 2.19 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["children"]; import * as React from 'react'; import clsx from 'clsx'; import { styled } from '@mui/material/styles'; import composeClasses from '@mui/utils/composeClasses'; import { gridClasses, getDataGridUtilityClass, useGridSelector, gridRowsLoadingSelector, gridRowTreeSelector, GRID_ROOT_GROUP_ID } from '@mui/x-data-grid-pro'; import { useGridPrivateApiContext } from "../hooks/utils/useGridPrivateApiContext.js"; import { GridAggregationRowOverlay } from "./GridAggregationRowOverlay.js"; import { useGridRootProps } from "../typeOverloads/reexports.js"; import { gridAggregationModelSelector } from "../hooks/index.js"; import { jsx as _jsx } from "react/jsx-runtime"; const useUtilityClasses = () => { const slots = { root: ['bottomContainer'] }; return composeClasses(slots, getDataGridUtilityClass, {}); }; const Element = styled('div', { slot: 'internal', shouldForwardProp: undefined })({ position: 'sticky', zIndex: 40, bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))' }); export function GridBottomContainer(props) { const classes = useUtilityClasses(); const rootProps = useGridRootProps(); const apiRef = useGridPrivateApiContext(); const isLoading = useGridSelector(apiRef, gridRowsLoadingSelector); const tree = useGridSelector(apiRef, gridRowTreeSelector); const aggregationModel = useGridSelector(apiRef, gridAggregationModelSelector); const aggregationPosition = rootProps.getAggregationPosition(tree[GRID_ROOT_GROUP_ID]); const hasAggregation = React.useMemo(() => Object.keys(aggregationModel).length > 0, [aggregationModel]); const { children } = props, other = _objectWithoutPropertiesLoose(props, _excluded); return /*#__PURE__*/_jsx(Element, _extends({}, other, { className: clsx(classes.root, gridClasses['container--bottom']), role: "presentation", children: hasAggregation && isLoading && aggregationPosition === 'footer' ? /*#__PURE__*/_jsx(GridAggregationRowOverlay, {}) : children })); }