@mui/x-data-grid-premium
Version:
The Premium plan edition of the MUI X Data Grid Components.
54 lines (53 loc) • 2.79 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.GridBottomContainer = GridBottomContainer;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var React = _interopRequireWildcard(require("react"));
var _clsx = _interopRequireDefault(require("clsx"));
var _styles = require("@mui/material/styles");
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
var _xDataGridPro = require("@mui/x-data-grid-pro");
var _useGridPrivateApiContext = require("../hooks/utils/useGridPrivateApiContext");
var _GridAggregationRowOverlay = require("./GridAggregationRowOverlay");
var _reexports = require("../typeOverloads/reexports");
var _hooks = require("../hooks");
var _jsxRuntime = require("react/jsx-runtime");
const _excluded = ["children"];
const useUtilityClasses = () => {
const slots = {
root: ['bottomContainer']
};
return (0, _composeClasses.default)(slots, _xDataGridPro.getDataGridUtilityClass, {});
};
const Element = (0, _styles.styled)('div', {
slot: 'internal',
shouldForwardProp: undefined
})({
position: 'sticky',
zIndex: 40,
bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))'
});
function GridBottomContainer(props) {
const classes = useUtilityClasses();
const rootProps = (0, _reexports.useGridRootProps)();
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
const isLoading = (0, _xDataGridPro.useGridSelector)(apiRef, _xDataGridPro.gridRowsLoadingSelector);
const tree = (0, _xDataGridPro.useGridSelector)(apiRef, _xDataGridPro.gridRowTreeSelector);
const aggregationModel = (0, _xDataGridPro.useGridSelector)(apiRef, _hooks.gridAggregationModelSelector);
const aggregationPosition = rootProps.getAggregationPosition(tree[_xDataGridPro.GRID_ROOT_GROUP_ID]);
const hasAggregation = React.useMemo(() => Object.keys(aggregationModel).length > 0, [aggregationModel]);
const {
children
} = props,
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Element, (0, _extends2.default)({}, other, {
className: (0, _clsx.default)(classes.root, _xDataGridPro.gridClasses['container--bottom']),
role: "presentation",
children: hasAggregation && isLoading && aggregationPosition === 'footer' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridAggregationRowOverlay.GridAggregationRowOverlay, {}) : children
}));
}