@mui/x-data-grid 7.0.0-beta.6 → 7.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +117 -1
- package/DataGrid/DataGrid.js +44 -0
- package/DataGrid/useDataGridComponent.js +3 -0
- package/DataGrid/useDataGridProps.js +3 -2
- package/components/GridColumnHeaders.d.ts +1 -2
- package/components/GridColumnHeaders.js +6 -17
- package/components/GridHeaders.js +1 -4
- package/components/GridPagination.js +2 -7
- package/components/GridRow.d.ts +1 -1
- package/components/GridRow.js +4 -19
- package/components/GridScrollArea.d.ts +10 -0
- package/components/GridScrollArea.js +150 -0
- package/components/cell/GridCell.d.ts +7 -0
- package/components/cell/GridCell.js +11 -3
- package/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/components/columnHeaders/GridColumnGroupHeader.d.ts +5 -0
- package/components/columnHeaders/GridColumnGroupHeader.js +18 -8
- package/components/columnHeaders/GridColumnHeaderItem.d.ts +5 -0
- package/components/columnHeaders/GridColumnHeaderItem.js +21 -6
- package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -0
- package/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
- package/components/containers/GridRootStyles.js +12 -20
- package/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/components/virtualization/GridVirtualScroller.js +6 -1
- package/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/constants/gridClasses.d.ts +6 -32
- package/constants/gridClasses.js +1 -1
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +5 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +23 -7
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +186 -99
- package/hooks/features/columnResize/columnResizeSelector.d.ts +3 -0
- package/hooks/features/columnResize/columnResizeSelector.js +3 -0
- package/hooks/features/columnResize/columnResizeState.d.ts +3 -0
- package/hooks/features/columnResize/columnResizeState.js +1 -0
- package/hooks/features/columnResize/gridColumnResizeApi.d.ts +44 -0
- package/hooks/features/columnResize/gridColumnResizeApi.js +10 -0
- package/hooks/features/columnResize/index.d.ts +3 -0
- package/hooks/features/columnResize/index.js +3 -0
- package/hooks/features/columnResize/useGridColumnResize.d.ts +10 -0
- package/hooks/features/columnResize/useGridColumnResize.js +563 -0
- package/hooks/features/columns/gridColumnsUtils.js +4 -1
- package/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/hooks/features/editing/useGridCellEditing.js +21 -2
- package/hooks/features/export/useGridPrintExport.js +8 -7
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.d.ts +1 -0
- package/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +6 -0
- package/hooks/features/headerFiltering/useGridHeaderFiltering.js +30 -7
- package/hooks/features/index.d.ts +1 -0
- package/hooks/features/index.js +1 -0
- package/hooks/features/pagination/gridPaginationInterfaces.d.ts +19 -2
- package/hooks/features/pagination/gridPaginationSelector.d.ts +5 -0
- package/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/hooks/features/pagination/useGridPagination.d.ts +1 -6
- package/hooks/features/pagination/useGridPagination.js +9 -157
- package/hooks/features/pagination/useGridPaginationModel.d.ts +11 -0
- package/hooks/features/pagination/useGridPaginationModel.js +170 -0
- package/hooks/features/pagination/useGridRowCount.d.ts +8 -0
- package/hooks/features/pagination/useGridRowCount.js +97 -0
- package/hooks/features/scroll/useGridScroll.js +1 -1
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +4 -4
- package/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +2 -2
- package/hooks/utils/useLazyRef.d.ts +1 -2
- package/hooks/utils/useLazyRef.js +1 -11
- package/hooks/utils/useOnMount.d.ts +1 -2
- package/hooks/utils/useOnMount.js +1 -7
- package/hooks/utils/useTimeout.d.ts +1 -11
- package/hooks/utils/useTimeout.js +1 -36
- package/index.js +1 -1
- package/internals/index.d.ts +1 -1
- package/internals/index.js +1 -1
- package/internals/utils/getPinnedCellOffset.d.ts +3 -0
- package/internals/utils/getPinnedCellOffset.js +17 -0
- package/joy/joySlots.js +13 -52
- package/locales/jaJP.js +3 -4
- package/material/index.js +0 -2
- package/models/api/gridApiCommon.d.ts +3 -3
- package/models/api/gridCoreApi.d.ts +1 -5
- package/models/events/gridEventLookup.d.ts +6 -0
- package/models/gridHeaderFilteringModel.d.ts +1 -0
- package/models/gridSlotsComponent.d.ts +0 -5
- package/models/gridStateCommunity.d.ts +2 -0
- package/models/params/gridScrollParams.d.ts +5 -3
- package/models/props/DataGridProps.d.ts +35 -1
- package/modern/DataGrid/DataGrid.js +44 -0
- package/modern/DataGrid/useDataGridComponent.js +3 -0
- package/modern/DataGrid/useDataGridProps.js +3 -2
- package/modern/components/GridColumnHeaders.js +6 -17
- package/modern/components/GridHeaders.js +1 -4
- package/modern/components/GridPagination.js +2 -4
- package/modern/components/GridRow.js +4 -19
- package/modern/components/GridScrollArea.js +150 -0
- package/modern/components/cell/GridCell.js +11 -3
- package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/modern/components/columnHeaders/GridColumnGroupHeader.js +18 -8
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +21 -6
- package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
- package/modern/components/containers/GridRootStyles.js +12 -20
- package/modern/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/modern/components/virtualization/GridVirtualScroller.js +6 -1
- package/modern/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +184 -97
- package/modern/hooks/features/columnResize/columnResizeSelector.js +3 -0
- package/modern/hooks/features/columnResize/columnResizeState.js +1 -0
- package/modern/hooks/features/columnResize/gridColumnResizeApi.js +10 -0
- package/modern/hooks/features/columnResize/index.js +3 -0
- package/modern/hooks/features/columnResize/useGridColumnResize.js +553 -0
- package/modern/hooks/features/columns/gridColumnsUtils.js +4 -1
- package/modern/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/modern/hooks/features/editing/useGridCellEditing.js +21 -2
- package/modern/hooks/features/export/useGridPrintExport.js +8 -7
- package/modern/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +3 -0
- package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +21 -2
- package/modern/hooks/features/index.js +1 -0
- package/modern/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/modern/hooks/features/pagination/useGridPagination.js +8 -149
- package/modern/hooks/features/pagination/useGridPaginationModel.js +165 -0
- package/modern/hooks/features/pagination/useGridRowCount.js +94 -0
- package/modern/hooks/features/scroll/useGridScroll.js +1 -1
- package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/modern/hooks/utils/useLazyRef.js +1 -11
- package/modern/hooks/utils/useOnMount.js +1 -7
- package/modern/hooks/utils/useTimeout.js +1 -36
- package/modern/index.js +1 -1
- package/modern/internals/index.js +1 -1
- package/modern/internals/utils/getPinnedCellOffset.js +17 -0
- package/modern/joy/joySlots.js +11 -50
- package/modern/locales/jaJP.js +3 -4
- package/modern/material/index.js +0 -2
- package/modern/utils/cellBorderUtils.js +8 -0
- package/modern/utils/domUtils.js +144 -0
- package/node/DataGrid/DataGrid.js +44 -0
- package/node/DataGrid/useDataGridComponent.js +3 -0
- package/node/DataGrid/useDataGridProps.js +3 -2
- package/node/components/GridColumnHeaders.js +6 -16
- package/node/components/GridHeaders.js +1 -4
- package/node/components/GridPagination.js +1 -3
- package/node/components/GridRow.js +3 -18
- package/node/components/GridScrollArea.js +158 -0
- package/node/components/cell/GridCell.js +12 -4
- package/node/components/columnHeaders/GridBaseColumnHeaders.js +1 -0
- package/node/components/columnHeaders/GridColumnGroupHeader.js +18 -8
- package/node/components/columnHeaders/GridColumnHeaderItem.js +21 -6
- package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +6 -5
- package/node/components/containers/GridRootStyles.js +12 -20
- package/node/components/virtualization/GridVirtualScrollbar.js +4 -0
- package/node/components/virtualization/GridVirtualScroller.js +6 -1
- package/node/components/virtualization/GridVirtualScrollerFiller.js +2 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +190 -103
- package/node/hooks/features/columnResize/columnResizeSelector.js +10 -0
- package/node/hooks/features/columnResize/columnResizeState.js +5 -0
- package/node/hooks/features/columnResize/gridColumnResizeApi.js +16 -0
- package/node/hooks/features/columnResize/index.js +38 -0
- package/node/hooks/features/columnResize/useGridColumnResize.js +564 -0
- package/node/hooks/features/columns/gridColumnsUtils.js +4 -1
- package/node/hooks/features/dimensions/useGridDimensions.js +4 -5
- package/node/hooks/features/editing/useGridCellEditing.js +21 -2
- package/node/hooks/features/export/useGridPrintExport.js +8 -7
- package/node/hooks/features/headerFiltering/gridHeaderFilteringSelectors.js +4 -1
- package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +21 -2
- package/node/hooks/features/index.js +11 -0
- package/node/hooks/features/pagination/gridPaginationSelector.js +8 -2
- package/node/hooks/features/pagination/useGridPagination.js +9 -153
- package/node/hooks/features/pagination/useGridPaginationModel.js +176 -0
- package/node/hooks/features/pagination/useGridRowCount.js +103 -0
- package/node/hooks/features/scroll/useGridScroll.js +1 -1
- package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +0 -2
- package/node/hooks/utils/useLazyRef.js +7 -13
- package/node/hooks/utils/useOnMount.js +8 -10
- package/node/hooks/utils/useTimeout.js +7 -37
- package/node/index.js +1 -1
- package/node/internals/index.js +15 -8
- package/node/internals/utils/getPinnedCellOffset.js +24 -0
- package/node/joy/joySlots.js +11 -50
- package/node/locales/jaJP.js +3 -4
- package/node/material/index.js +0 -2
- package/node/utils/cellBorderUtils.js +16 -0
- package/node/utils/domUtils.js +155 -0
- package/package.json +1 -1
- package/utils/cellBorderUtils.d.ts +3 -0
- package/utils/cellBorderUtils.js +8 -0
- package/utils/domUtils.d.ts +14 -1
- package/utils/domUtils.js +147 -0
- package/components/columnHeaders/GridColumnHeadersInner.d.ts +0 -8
- package/components/columnHeaders/GridColumnHeadersInner.js +0 -58
- package/modern/components/columnHeaders/GridColumnHeadersInner.js +0 -58
- package/node/components/columnHeaders/GridColumnHeadersInner.js +0 -67
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.GridScrollArea = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
|
+
var _utils = require("@mui/utils");
|
|
13
|
+
var _system = require("@mui/system");
|
|
14
|
+
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
15
|
+
var _constants = require("../constants");
|
|
16
|
+
var _useGridApiContext = require("../hooks/utils/useGridApiContext");
|
|
17
|
+
var _useGridApiEventHandler = require("../hooks/utils/useGridApiEventHandler");
|
|
18
|
+
var _useGridSelector = require("../hooks/utils/useGridSelector");
|
|
19
|
+
var _gridDimensionsSelectors = require("../hooks/features/dimensions/gridDimensionsSelectors");
|
|
20
|
+
var _densitySelector = require("../hooks/features/density/densitySelector");
|
|
21
|
+
var _gridColumnsSelector = require("../hooks/features/columns/gridColumnsSelector");
|
|
22
|
+
var _useTimeout = require("../hooks/utils/useTimeout");
|
|
23
|
+
var _gridColumnsUtils = require("../hooks/features/columns/gridColumnsUtils");
|
|
24
|
+
var _fastMemo = require("../utils/fastMemo");
|
|
25
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
26
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
27
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
28
|
+
const CLIFF = 1;
|
|
29
|
+
const SLOP = 1.5;
|
|
30
|
+
const useUtilityClasses = ownerState => {
|
|
31
|
+
const {
|
|
32
|
+
scrollDirection,
|
|
33
|
+
classes
|
|
34
|
+
} = ownerState;
|
|
35
|
+
const slots = {
|
|
36
|
+
root: ['scrollArea', `scrollArea--${scrollDirection}`]
|
|
37
|
+
};
|
|
38
|
+
return (0, _utils.unstable_composeClasses)(slots, _constants.getDataGridUtilityClass, classes);
|
|
39
|
+
};
|
|
40
|
+
const GridScrollAreaRawRoot = (0, _system.styled)('div', {
|
|
41
|
+
name: 'MuiDataGrid',
|
|
42
|
+
slot: 'ScrollArea',
|
|
43
|
+
overridesResolver: (props, styles) => [{
|
|
44
|
+
[`&.${_constants.gridClasses['scrollArea--left']}`]: styles['scrollArea--left']
|
|
45
|
+
}, {
|
|
46
|
+
[`&.${_constants.gridClasses['scrollArea--right']}`]: styles['scrollArea--right']
|
|
47
|
+
}, styles.scrollArea]
|
|
48
|
+
})(() => ({
|
|
49
|
+
position: 'absolute',
|
|
50
|
+
top: 0,
|
|
51
|
+
zIndex: 101,
|
|
52
|
+
width: 20,
|
|
53
|
+
bottom: 0,
|
|
54
|
+
[`&.${_constants.gridClasses['scrollArea--left']}`]: {
|
|
55
|
+
left: 0
|
|
56
|
+
},
|
|
57
|
+
[`&.${_constants.gridClasses['scrollArea--right']}`]: {
|
|
58
|
+
right: 0
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
function GridScrollAreaRaw(props) {
|
|
62
|
+
const {
|
|
63
|
+
scrollDirection
|
|
64
|
+
} = props;
|
|
65
|
+
const rootRef = React.useRef(null);
|
|
66
|
+
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
67
|
+
const timeout = (0, _useTimeout.useTimeout)();
|
|
68
|
+
const densityFactor = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensityFactorSelector);
|
|
69
|
+
const columnsTotalWidth = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnsTotalWidthSelector);
|
|
70
|
+
const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridDimensionsSelector);
|
|
71
|
+
const scrollPosition = React.useRef({
|
|
72
|
+
left: 0,
|
|
73
|
+
top: 0
|
|
74
|
+
});
|
|
75
|
+
const getCanScrollMore = () => {
|
|
76
|
+
if (scrollDirection === 'left') {
|
|
77
|
+
// Only render if the user has not reached yet the start of the list
|
|
78
|
+
return scrollPosition.current.left > 0;
|
|
79
|
+
}
|
|
80
|
+
if (scrollDirection === 'right') {
|
|
81
|
+
// Only render if the user has not reached yet the end of the list
|
|
82
|
+
const maxScrollLeft = columnsTotalWidth - dimensions.viewportInnerSize.width;
|
|
83
|
+
return scrollPosition.current.left < maxScrollLeft;
|
|
84
|
+
}
|
|
85
|
+
return false;
|
|
86
|
+
};
|
|
87
|
+
const [dragging, setDragging] = React.useState(false);
|
|
88
|
+
const [canScrollMore, setCanScrollMore] = React.useState(getCanScrollMore);
|
|
89
|
+
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
90
|
+
const ownerState = (0, _extends2.default)({}, rootProps, {
|
|
91
|
+
scrollDirection
|
|
92
|
+
});
|
|
93
|
+
const classes = useUtilityClasses(ownerState);
|
|
94
|
+
const totalHeaderHeight = (0, _gridColumnsUtils.getTotalHeaderHeight)(apiRef, rootProps.columnHeaderHeight);
|
|
95
|
+
const headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);
|
|
96
|
+
const style = {
|
|
97
|
+
height: headerHeight,
|
|
98
|
+
top: totalHeaderHeight - headerHeight
|
|
99
|
+
};
|
|
100
|
+
if (scrollDirection === 'left') {
|
|
101
|
+
style.left = dimensions.leftPinnedWidth;
|
|
102
|
+
} else if (scrollDirection === 'right') {
|
|
103
|
+
style.right = dimensions.rightPinnedWidth + (dimensions.hasScrollX ? dimensions.scrollbarSize : 0);
|
|
104
|
+
}
|
|
105
|
+
const handleScrolling = newScrollPosition => {
|
|
106
|
+
scrollPosition.current = newScrollPosition;
|
|
107
|
+
setCanScrollMore(getCanScrollMore);
|
|
108
|
+
};
|
|
109
|
+
const handleDragOver = (0, _utils.unstable_useEventCallback)(event => {
|
|
110
|
+
let offset;
|
|
111
|
+
|
|
112
|
+
// Prevents showing the forbidden cursor
|
|
113
|
+
event.preventDefault();
|
|
114
|
+
if (scrollDirection === 'left') {
|
|
115
|
+
offset = event.clientX - rootRef.current.getBoundingClientRect().right;
|
|
116
|
+
} else if (scrollDirection === 'right') {
|
|
117
|
+
offset = Math.max(1, event.clientX - rootRef.current.getBoundingClientRect().left);
|
|
118
|
+
} else {
|
|
119
|
+
throw new Error('MUI X: Wrong drag direction');
|
|
120
|
+
}
|
|
121
|
+
offset = (offset - CLIFF) * SLOP + CLIFF;
|
|
122
|
+
|
|
123
|
+
// Avoid freeze and inertia.
|
|
124
|
+
timeout.start(0, () => {
|
|
125
|
+
apiRef.current.scroll({
|
|
126
|
+
left: scrollPosition.current.left + offset,
|
|
127
|
+
top: scrollPosition.current.top
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
const handleColumnHeaderDragStart = (0, _utils.unstable_useEventCallback)(() => {
|
|
132
|
+
setDragging(true);
|
|
133
|
+
});
|
|
134
|
+
const handleColumnHeaderDragEnd = (0, _utils.unstable_useEventCallback)(() => {
|
|
135
|
+
setDragging(false);
|
|
136
|
+
});
|
|
137
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'scrollPositionChange', handleScrolling);
|
|
138
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragStart', handleColumnHeaderDragStart);
|
|
139
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnHeaderDragEnd', handleColumnHeaderDragEnd);
|
|
140
|
+
if (!dragging || !canScrollMore) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridScrollAreaRawRoot, {
|
|
144
|
+
ref: rootRef,
|
|
145
|
+
className: (0, _clsx.default)(classes.root),
|
|
146
|
+
ownerState: ownerState,
|
|
147
|
+
onDragOver: handleDragOver,
|
|
148
|
+
style: style
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
process.env.NODE_ENV !== "production" ? GridScrollAreaRaw.propTypes = {
|
|
152
|
+
// ----------------------------- Warning --------------------------------
|
|
153
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
154
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
155
|
+
// ----------------------------------------------------------------------
|
|
156
|
+
scrollDirection: _propTypes.default.oneOf(['left', 'right']).isRequired
|
|
157
|
+
} : void 0;
|
|
158
|
+
const GridScrollArea = exports.GridScrollArea = (0, _fastMemo.fastMemo)(GridScrollAreaRaw);
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.PinnedPosition = exports.GridCell = void 0;
|
|
7
|
+
exports.gridPinnedColumnPositionLookup = exports.PinnedPosition = exports.GridCell = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
@@ -20,6 +20,8 @@ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
|
20
20
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
21
21
|
var _gridFocusStateSelector = require("../../hooks/features/focus/gridFocusStateSelector");
|
|
22
22
|
var _useGridParamsApi = require("../../hooks/features/rows/useGridParamsApi");
|
|
23
|
+
var _cellBorderUtils = require("../../utils/cellBorderUtils");
|
|
24
|
+
var _gridColumnsInterfaces = require("../../hooks/features/columns/gridColumnsInterfaces");
|
|
23
25
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
26
|
const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "width", "className", "style", "gridHasScrollX", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "sectionIndex", "sectionLength", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
|
|
25
27
|
_excluded2 = ["changeReason", "unstable_updateValueOnRender"];
|
|
@@ -32,6 +34,12 @@ let PinnedPosition = exports.PinnedPosition = /*#__PURE__*/function (PinnedPosit
|
|
|
32
34
|
PinnedPosition[PinnedPosition["VIRTUAL"] = 3] = "VIRTUAL";
|
|
33
35
|
return PinnedPosition;
|
|
34
36
|
}({});
|
|
37
|
+
const gridPinnedColumnPositionLookup = exports.gridPinnedColumnPositionLookup = {
|
|
38
|
+
[PinnedPosition.LEFT]: _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT,
|
|
39
|
+
[PinnedPosition.RIGHT]: _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT,
|
|
40
|
+
[PinnedPosition.NONE]: undefined,
|
|
41
|
+
[PinnedPosition.VIRTUAL]: undefined
|
|
42
|
+
};
|
|
35
43
|
const EMPTY_CELL_PARAMS = {
|
|
36
44
|
id: -1,
|
|
37
45
|
field: '__unset__',
|
|
@@ -162,9 +170,9 @@ const GridCell = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
162
170
|
const focusElementRef = React.useRef(null);
|
|
163
171
|
// @ts-expect-error To access `cellSelection` flag as it's a `premium` feature
|
|
164
172
|
const isSelectionMode = rootProps.cellSelection ?? false;
|
|
165
|
-
const
|
|
166
|
-
const showLeftBorder =
|
|
167
|
-
const showRightBorder =
|
|
173
|
+
const position = gridPinnedColumnPositionLookup[pinnedPosition];
|
|
174
|
+
const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(position, sectionIndex);
|
|
175
|
+
const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(position, sectionIndex, sectionLength, rootProps.showCellVerticalBorder);
|
|
168
176
|
const ownerState = {
|
|
169
177
|
align,
|
|
170
178
|
showLeftBorder,
|
|
@@ -32,6 +32,7 @@ const GridColumnHeadersRoot = (0, _system.styled)('div', {
|
|
|
32
32
|
overridesResolver: (props, styles) => styles.columnHeaders
|
|
33
33
|
})({
|
|
34
34
|
display: 'flex',
|
|
35
|
+
flexDirection: 'column',
|
|
35
36
|
borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
|
|
36
37
|
borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
|
|
37
38
|
});
|
|
@@ -15,6 +15,7 @@ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
|
15
15
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
16
16
|
var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
|
|
17
17
|
var _domUtils = require("../../utils/domUtils");
|
|
18
|
+
var _cellBorderUtils = require("../../utils/cellBorderUtils");
|
|
18
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
20
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
21
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -23,11 +24,13 @@ const useUtilityClasses = ownerState => {
|
|
|
23
24
|
classes,
|
|
24
25
|
headerAlign,
|
|
25
26
|
isDragging,
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
showLeftBorder,
|
|
28
|
+
showRightBorder,
|
|
29
|
+
groupId,
|
|
30
|
+
pinnedPosition
|
|
28
31
|
} = ownerState;
|
|
29
32
|
const slots = {
|
|
30
|
-
root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving',
|
|
33
|
+
root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight'],
|
|
31
34
|
draggableContainer: ['columnHeaderDraggableContainer'],
|
|
32
35
|
titleContainer: ['columnHeaderTitleContainer', 'withBorderColor'],
|
|
33
36
|
titleContainerContent: ['columnHeaderTitleContainerContent']
|
|
@@ -45,7 +48,11 @@ function GridColumnGroupHeader(props) {
|
|
|
45
48
|
colIndex,
|
|
46
49
|
hasFocus,
|
|
47
50
|
tabIndex,
|
|
48
|
-
isLastColumn
|
|
51
|
+
isLastColumn,
|
|
52
|
+
pinnedPosition,
|
|
53
|
+
style,
|
|
54
|
+
indexInSection,
|
|
55
|
+
sectionLength
|
|
49
56
|
} = props;
|
|
50
57
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
51
58
|
const headerCellRef = React.useRef(null);
|
|
@@ -72,10 +79,12 @@ function GridColumnGroupHeader(props) {
|
|
|
72
79
|
if (groupId && render) {
|
|
73
80
|
headerComponent = render(renderParams);
|
|
74
81
|
}
|
|
75
|
-
const
|
|
82
|
+
const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
|
|
83
|
+
const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder);
|
|
76
84
|
const ownerState = (0, _extends2.default)({}, props, {
|
|
77
85
|
classes: rootProps.classes,
|
|
78
|
-
|
|
86
|
+
showLeftBorder,
|
|
87
|
+
showRightBorder,
|
|
79
88
|
headerAlign,
|
|
80
89
|
depth,
|
|
81
90
|
isDragging: false
|
|
@@ -126,11 +135,12 @@ function GridColumnGroupHeader(props) {
|
|
|
126
135
|
width: width,
|
|
127
136
|
columnMenuIconButton: null,
|
|
128
137
|
columnTitleIconButtons: null,
|
|
129
|
-
resizable:
|
|
138
|
+
resizable: true,
|
|
130
139
|
label: label,
|
|
131
140
|
"aria-colspan": fields.length
|
|
132
141
|
// The fields are wrapped between |-...-| to avoid confusion between fields "id" and "id2" when using selector data-fields~=
|
|
133
142
|
,
|
|
134
|
-
"data-fields": `|-${fields.join('-|-')}
|
|
143
|
+
"data-fields": `|-${fields.join('-|-')}-|`,
|
|
144
|
+
style: style
|
|
135
145
|
}, mouseEventsHandlers));
|
|
136
146
|
}
|
|
@@ -18,6 +18,7 @@ var _gridClasses = require("../../constants/gridClasses");
|
|
|
18
18
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
19
19
|
var _GridGenericColumnHeaderItem = require("./GridGenericColumnHeaderItem");
|
|
20
20
|
var _domUtils = require("../../utils/domUtils");
|
|
21
|
+
var _cellBorderUtils = require("../../utils/cellBorderUtils");
|
|
21
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
23
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
23
24
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -28,14 +29,16 @@ const useUtilityClasses = ownerState => {
|
|
|
28
29
|
isDragging,
|
|
29
30
|
sortDirection,
|
|
30
31
|
showRightBorder,
|
|
31
|
-
|
|
32
|
+
showLeftBorder,
|
|
33
|
+
filterItemsCounter,
|
|
34
|
+
pinnedPosition
|
|
32
35
|
} = ownerState;
|
|
33
36
|
const isColumnSorted = sortDirection != null;
|
|
34
37
|
const isColumnFiltered = filterItemsCounter != null && filterItemsCounter > 0;
|
|
35
38
|
// todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
|
|
36
39
|
const isColumnNumeric = colDef.type === 'number';
|
|
37
40
|
const slots = {
|
|
38
|
-
root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder'],
|
|
41
|
+
root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight'],
|
|
39
42
|
draggableContainer: ['columnHeaderDraggableContainer'],
|
|
40
43
|
titleContainer: ['columnHeaderTitleContainer'],
|
|
41
44
|
titleContainerContent: ['columnHeaderTitleContainerContent']
|
|
@@ -55,7 +58,11 @@ function GridColumnHeaderItem(props) {
|
|
|
55
58
|
hasFocus,
|
|
56
59
|
tabIndex,
|
|
57
60
|
disableReorder,
|
|
58
|
-
separatorSide
|
|
61
|
+
separatorSide,
|
|
62
|
+
style,
|
|
63
|
+
pinnedPosition,
|
|
64
|
+
indexInSection,
|
|
65
|
+
sectionLength
|
|
59
66
|
} = props;
|
|
60
67
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
61
68
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
@@ -69,9 +76,12 @@ function GridColumnHeaderItem(props) {
|
|
|
69
76
|
if (colDef.renderHeader) {
|
|
70
77
|
headerComponent = colDef.renderHeader(apiRef.current.getColumnHeaderParams(colDef.field));
|
|
71
78
|
}
|
|
79
|
+
const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
|
|
80
|
+
const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder);
|
|
72
81
|
const ownerState = (0, _extends2.default)({}, props, {
|
|
73
82
|
classes: rootProps.classes,
|
|
74
|
-
showRightBorder
|
|
83
|
+
showRightBorder,
|
|
84
|
+
showLeftBorder
|
|
75
85
|
});
|
|
76
86
|
const classes = useUtilityClasses(ownerState);
|
|
77
87
|
const publish = React.useCallback(eventName => event => {
|
|
@@ -151,7 +161,7 @@ function GridColumnHeaderItem(props) {
|
|
|
151
161
|
const focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
|
|
152
162
|
const elementToFocus = focusableElement || headerCellRef.current;
|
|
153
163
|
elementToFocus?.focus();
|
|
154
|
-
apiRef.current.
|
|
164
|
+
apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
|
|
155
165
|
}
|
|
156
166
|
}, [apiRef, hasFocus]);
|
|
157
167
|
const headerClassName = typeof colDef.headerClassName === 'function' ? colDef.headerClassName({
|
|
@@ -183,7 +193,8 @@ function GridColumnHeaderItem(props) {
|
|
|
183
193
|
"data-field": colDef.field,
|
|
184
194
|
columnMenu: columnMenu,
|
|
185
195
|
draggableContainerProps: draggableEventHandlers,
|
|
186
|
-
columnHeaderSeparatorProps: columnHeaderSeparatorProps
|
|
196
|
+
columnHeaderSeparatorProps: columnHeaderSeparatorProps,
|
|
197
|
+
style: style
|
|
187
198
|
}, mouseEventsHandlers));
|
|
188
199
|
}
|
|
189
200
|
process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
|
|
@@ -198,11 +209,15 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
|
|
|
198
209
|
filterItemsCounter: _propTypes.default.number,
|
|
199
210
|
hasFocus: _propTypes.default.bool,
|
|
200
211
|
headerHeight: _propTypes.default.number.isRequired,
|
|
212
|
+
indexInSection: _propTypes.default.number.isRequired,
|
|
201
213
|
isDragging: _propTypes.default.bool.isRequired,
|
|
202
214
|
isResizing: _propTypes.default.bool.isRequired,
|
|
215
|
+
pinnedPosition: _propTypes.default.oneOf(['left', 'right']),
|
|
216
|
+
sectionLength: _propTypes.default.number.isRequired,
|
|
203
217
|
separatorSide: _propTypes.default.oneOf(['left', 'right']),
|
|
204
218
|
sortDirection: _propTypes.default.oneOf(['asc', 'desc']),
|
|
205
219
|
sortIndex: _propTypes.default.number,
|
|
220
|
+
style: _propTypes.default.object,
|
|
206
221
|
tabIndex: _propTypes.default.oneOf([-1, 0]).isRequired
|
|
207
222
|
} : void 0;
|
|
208
223
|
const Memoized = exports.GridColumnHeaderItem = (0, _fastMemo.fastMemo)(GridColumnHeaderItem);
|
|
@@ -15,7 +15,7 @@ var _GridColumnHeaderTitle = require("./GridColumnHeaderTitle");
|
|
|
15
15
|
var _GridColumnHeaderSeparator = require("./GridColumnHeaderSeparator");
|
|
16
16
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
-
const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizing", "sortDirection", "hasFocus", "tabIndex", "separatorSide", "isDraggable", "headerComponent", "description", "elementId", "width", "columnMenuIconButton", "columnMenu", "columnTitleIconButtons", "headerClassName", "label", "resizable", "draggableContainerProps", "columnHeaderSeparatorProps"];
|
|
18
|
+
const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizing", "sortDirection", "hasFocus", "tabIndex", "separatorSide", "isDraggable", "headerComponent", "description", "elementId", "width", "columnMenuIconButton", "columnMenu", "columnTitleIconButtons", "headerClassName", "label", "resizable", "draggableContainerProps", "columnHeaderSeparatorProps", "style"];
|
|
19
19
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
20
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
21
21
|
const GridGenericColumnHeaderItem = exports.GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridGenericColumnHeaderItem(props, ref) {
|
|
@@ -40,7 +40,8 @@ const GridGenericColumnHeaderItem = exports.GridGenericColumnHeaderItem = /*#__P
|
|
|
40
40
|
label,
|
|
41
41
|
resizable,
|
|
42
42
|
draggableContainerProps,
|
|
43
|
-
columnHeaderSeparatorProps
|
|
43
|
+
columnHeaderSeparatorProps,
|
|
44
|
+
style
|
|
44
45
|
} = props,
|
|
45
46
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
46
47
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
@@ -63,18 +64,18 @@ const GridGenericColumnHeaderItem = exports.GridGenericColumnHeaderItem = /*#__P
|
|
|
63
64
|
const focusableElement = headerCellRef.current.querySelector('[tabindex="0"]');
|
|
64
65
|
const elementToFocus = focusableElement || headerCellRef.current;
|
|
65
66
|
elementToFocus?.focus();
|
|
66
|
-
apiRef.current.
|
|
67
|
+
apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
|
|
67
68
|
}
|
|
68
69
|
}, [apiRef, hasFocus]);
|
|
69
70
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", (0, _extends2.default)({
|
|
70
71
|
ref: handleRef,
|
|
71
72
|
className: (0, _clsx.default)(classes.root, headerClassName),
|
|
72
|
-
style: {
|
|
73
|
+
style: (0, _extends2.default)({}, style, {
|
|
73
74
|
height,
|
|
74
75
|
width,
|
|
75
76
|
minWidth: width,
|
|
76
77
|
maxWidth: width
|
|
77
|
-
},
|
|
78
|
+
}),
|
|
78
79
|
role: "columnheader",
|
|
79
80
|
tabIndex: tabIndex,
|
|
80
81
|
"aria-colindex": colIndex + 1,
|
|
@@ -314,14 +314,6 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
314
314
|
borderBottomStyle: 'solid',
|
|
315
315
|
boxSizing: 'border-box'
|
|
316
316
|
},
|
|
317
|
-
[`& .${_gridClasses.gridClasses['columnHeader--filledGroup']}.${_gridClasses.gridClasses['columnHeader--showColumnBorder']} .${_gridClasses.gridClasses.columnHeaderTitleContainer}`]: {
|
|
318
|
-
borderBottom: `none`
|
|
319
|
-
},
|
|
320
|
-
[`& .${_gridClasses.gridClasses['columnHeader--filledGroup']}.${_gridClasses.gridClasses['columnHeader--showColumnBorder']}`]: {
|
|
321
|
-
borderBottomWidth: '1px',
|
|
322
|
-
borderBottomStyle: 'solid',
|
|
323
|
-
boxSizing: 'border-box'
|
|
324
|
-
},
|
|
325
317
|
[`& .${_gridClasses.gridClasses.sortIcon}, & .${_gridClasses.gridClasses.filterIcon}`]: {
|
|
326
318
|
fontSize: 'inherit'
|
|
327
319
|
},
|
|
@@ -345,6 +337,12 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
345
337
|
[`& .${_gridClasses.gridClasses['columnHeader--moving']}`]: {
|
|
346
338
|
backgroundColor: (t.vars || t).palette.action.hover
|
|
347
339
|
},
|
|
340
|
+
[`& .${_gridClasses.gridClasses['columnHeader--pinnedLeft']}, & .${_gridClasses.gridClasses['columnHeader--pinnedRight']}`]: {
|
|
341
|
+
position: 'sticky',
|
|
342
|
+
zIndex: 4,
|
|
343
|
+
// Should be above the column separator
|
|
344
|
+
background: 'var(--DataGrid-pinnedBackground)'
|
|
345
|
+
},
|
|
348
346
|
[`& .${_gridClasses.gridClasses.columnSeparator}`]: {
|
|
349
347
|
visibility: 'hidden',
|
|
350
348
|
position: 'absolute',
|
|
@@ -435,9 +433,6 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
435
433
|
[`& .${_gridClasses.gridClasses['container--top']}, & .${_gridClasses.gridClasses['container--bottom']}`]: {
|
|
436
434
|
'[role=row]': {
|
|
437
435
|
background: 'var(--DataGrid-containerBackground)'
|
|
438
|
-
},
|
|
439
|
-
[`.${_gridClasses.gridClasses.pinnedColumnHeaders} [role=row]`]: {
|
|
440
|
-
background: 'var(--DataGrid-pinnedBackground)'
|
|
441
436
|
}
|
|
442
437
|
},
|
|
443
438
|
/* Cell styles */
|
|
@@ -527,20 +522,16 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
527
522
|
[`.${_gridClasses.gridClasses.withBorderColor}`]: {
|
|
528
523
|
borderColor
|
|
529
524
|
},
|
|
530
|
-
[`& .${_gridClasses.gridClasses['cell--withLeftBorder']}`]: {
|
|
525
|
+
[`& .${_gridClasses.gridClasses['cell--withLeftBorder']}, & .${_gridClasses.gridClasses['columnHeader--withLeftBorder']}`]: {
|
|
531
526
|
borderLeftColor: 'var(--DataGrid-rowBorderColor)',
|
|
532
527
|
borderLeftWidth: '1px',
|
|
533
528
|
borderLeftStyle: 'solid'
|
|
534
529
|
},
|
|
535
|
-
[`& .${_gridClasses.gridClasses['cell--withRightBorder']}`]: {
|
|
530
|
+
[`& .${_gridClasses.gridClasses['cell--withRightBorder']}, & .${_gridClasses.gridClasses['columnHeader--withRightBorder']}`]: {
|
|
536
531
|
borderRightColor: 'var(--DataGrid-rowBorderColor)',
|
|
537
532
|
borderRightWidth: '1px',
|
|
538
533
|
borderRightStyle: 'solid'
|
|
539
534
|
},
|
|
540
|
-
[`& .${_gridClasses.gridClasses['columnHeader--withRightBorder']}`]: {
|
|
541
|
-
borderRightWidth: '1px',
|
|
542
|
-
borderRightStyle: 'solid'
|
|
543
|
-
},
|
|
544
535
|
[`& .${_gridClasses.gridClasses['cell--flex']}`]: {
|
|
545
536
|
display: 'flex',
|
|
546
537
|
alignItems: 'center',
|
|
@@ -641,12 +632,13 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
641
632
|
borderTop: '1px solid var(--DataGrid-rowBorderColor)'
|
|
642
633
|
},
|
|
643
634
|
[`&.${_gridClasses.gridClasses['scrollbarFiller--pinnedRight']}`]: {
|
|
644
|
-
backgroundColor: 'var(--DataGrid-pinnedBackground)'
|
|
645
|
-
},
|
|
646
|
-
[`&.${_gridClasses.gridClasses['scrollbarFiller--pinnedRight']}:not(.${_gridClasses.gridClasses['scrollbarFiller--header']})`]: {
|
|
635
|
+
backgroundColor: 'var(--DataGrid-pinnedBackground)',
|
|
647
636
|
position: 'sticky',
|
|
648
637
|
right: 0
|
|
649
638
|
}
|
|
639
|
+
},
|
|
640
|
+
[`& .${_gridClasses.gridClasses.filler}`]: {
|
|
641
|
+
flex: 1
|
|
650
642
|
}
|
|
651
643
|
});
|
|
652
644
|
return gridStyle;
|
|
@@ -43,6 +43,8 @@ const ScrollbarVertical = (0, _system.styled)(Scrollbar)({
|
|
|
43
43
|
height: 'calc(var(--DataGrid-hasScrollY) * (100% - var(--DataGrid-topContainerHeight) - var(--DataGrid-bottomContainerHeight) - var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize)))',
|
|
44
44
|
overflowY: 'auto',
|
|
45
45
|
overflowX: 'hidden',
|
|
46
|
+
// Disable focus-visible style, it's a scrollbar.
|
|
47
|
+
outline: 0,
|
|
46
48
|
'& > div': {
|
|
47
49
|
width: 'var(--size)'
|
|
48
50
|
},
|
|
@@ -54,6 +56,8 @@ const ScrollbarHorizontal = (0, _system.styled)(Scrollbar)({
|
|
|
54
56
|
height: 'var(--size)',
|
|
55
57
|
overflowY: 'hidden',
|
|
56
58
|
overflowX: 'auto',
|
|
59
|
+
// Disable focus-visible style, it's a scrollbar.
|
|
60
|
+
outline: 0,
|
|
57
61
|
'& > div': {
|
|
58
62
|
height: 'var(--size)'
|
|
59
63
|
},
|
|
@@ -9,6 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _system = require("@mui/system");
|
|
11
11
|
var _utils = require("@mui/utils");
|
|
12
|
+
var _GridScrollArea = require("../GridScrollArea");
|
|
12
13
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
13
14
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
14
15
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
@@ -74,7 +75,11 @@ function GridVirtualScroller(props) {
|
|
|
74
75
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridMainContainer.GridMainContainer, (0, _extends2.default)({
|
|
75
76
|
className: classes.root
|
|
76
77
|
}, getContainerProps(), {
|
|
77
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.
|
|
78
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
|
|
79
|
+
scrollDirection: "left"
|
|
80
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, {
|
|
81
|
+
scrollDirection: "right"
|
|
82
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
|
|
78
83
|
className: classes.scroller
|
|
79
84
|
}, getScrollerProps(), {
|
|
80
85
|
ownerState: rootProps,
|
|
@@ -45,6 +45,7 @@ function GridVirtualScrollerFiller() {
|
|
|
45
45
|
viewportOuterSize,
|
|
46
46
|
minimumSize,
|
|
47
47
|
hasScrollX,
|
|
48
|
+
hasScrollY,
|
|
48
49
|
scrollbarSize,
|
|
49
50
|
leftPinnedWidth,
|
|
50
51
|
rightPinnedWidth
|
|
@@ -69,7 +70,7 @@ function GridVirtualScrollerFiller() {
|
|
|
69
70
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Main, {}), rightPinnedWidth > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(PinnedRight, {
|
|
70
71
|
className: _constants.gridClasses['filler--pinnedRight'],
|
|
71
72
|
style: {
|
|
72
|
-
width: rightPinnedWidth
|
|
73
|
+
width: rightPinnedWidth + (hasScrollY ? scrollbarSize : 0)
|
|
73
74
|
}
|
|
74
75
|
})]
|
|
75
76
|
});
|
|
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
|
|
|
9
9
|
function getDataGridUtilityClass(slot) {
|
|
10
10
|
return (0, _utils.unstable_generateUtilityClass)('MuiDataGrid', slot);
|
|
11
11
|
}
|
|
12
|
-
const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', '
|
|
12
|
+
const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|