@mui/x-data-grid 7.11.1 → 7.12.1
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 +178 -4
- package/components/GridHeaders.js +1 -4
- package/components/GridPagination.js +2 -0
- package/components/GridRow.d.ts +1 -0
- package/components/GridRow.js +11 -28
- package/components/GridRowCount.js +1 -1
- package/components/GridSelectedRowCount.js +1 -1
- package/components/base/GridOverlays.js +1 -1
- package/components/cell/GridBooleanCell.js +3 -3
- package/components/columnHeaders/ColumnHeaderMenuIcon.js +1 -1
- package/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
- package/components/columnHeaders/GridColumnGroupHeader.js +2 -1
- package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -1
- package/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
- package/components/columnHeaders/GridIconButtonContainer.js +1 -1
- package/components/columnSelection/GridHeaderCheckbox.js +1 -1
- package/components/columnsManagement/GridColumnsManagement.js +1 -1
- package/components/containers/GridFooterContainer.js +1 -1
- package/components/containers/GridOverlay.js +1 -1
- package/components/containers/GridRoot.js +4 -7
- package/components/containers/GridRootStyles.js +26 -6
- package/components/containers/GridToolbarContainer.js +1 -1
- package/components/panel/GridPanelContent.js +1 -1
- package/components/panel/GridPanelFooter.js +1 -1
- package/components/panel/GridPanelHeader.js +1 -1
- package/components/panel/GridPanelWrapper.js +1 -1
- package/components/virtualization/GridBottomContainer.js +1 -1
- package/components/virtualization/GridTopContainer.js +2 -13
- package/components/virtualization/GridVirtualScrollbar.js +1 -0
- package/components/virtualization/GridVirtualScroller.js +1 -1
- package/components/virtualization/GridVirtualScrollerContent.js +1 -1
- package/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
- package/constants/gridClasses.d.ts +10 -0
- package/constants/gridClasses.js +1 -1
- package/hooks/core/useGridRefs.js +3 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
- package/hooks/features/editing/useGridEditing.js +2 -2
- package/hooks/features/rowSelection/useGridRowSelection.js +2 -3
- package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +1 -1
- package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
- package/hooks/features/rows/gridRowsUtils.js +3 -2
- package/hooks/features/rows/index.d.ts +1 -1
- package/hooks/features/rows/index.js +1 -1
- package/hooks/features/rows/useGridRows.js +3 -3
- package/hooks/features/sorting/gridSortingSelector.js +2 -2
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
- package/index.js +1 -1
- package/internals/utils/useProps.js +1 -6
- package/locales/trTR.js +19 -21
- package/models/api/gridCoreApi.d.ts +1 -1
- package/modern/components/GridHeaders.js +1 -4
- package/modern/components/GridPagination.js +2 -0
- package/modern/components/GridRow.js +11 -28
- package/modern/components/GridRowCount.js +1 -1
- package/modern/components/GridSelectedRowCount.js +1 -1
- package/modern/components/base/GridOverlays.js +1 -1
- package/modern/components/cell/GridBooleanCell.js +3 -3
- package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +1 -1
- package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
- package/modern/components/columnHeaders/GridColumnGroupHeader.js +2 -1
- package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -1
- package/modern/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
- package/modern/components/columnHeaders/GridIconButtonContainer.js +1 -1
- package/modern/components/columnSelection/GridHeaderCheckbox.js +1 -1
- package/modern/components/columnsManagement/GridColumnsManagement.js +1 -1
- package/modern/components/containers/GridFooterContainer.js +1 -1
- package/modern/components/containers/GridOverlay.js +1 -1
- package/modern/components/containers/GridRoot.js +4 -7
- package/modern/components/containers/GridRootStyles.js +26 -6
- package/modern/components/containers/GridToolbarContainer.js +1 -1
- package/modern/components/panel/GridPanelContent.js +1 -1
- package/modern/components/panel/GridPanelFooter.js +1 -1
- package/modern/components/panel/GridPanelHeader.js +1 -1
- package/modern/components/panel/GridPanelWrapper.js +1 -1
- package/modern/components/virtualization/GridBottomContainer.js +1 -1
- package/modern/components/virtualization/GridTopContainer.js +2 -13
- package/modern/components/virtualization/GridVirtualScrollbar.js +1 -0
- package/modern/components/virtualization/GridVirtualScroller.js +1 -1
- package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -1
- package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/core/useGridRefs.js +3 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
- package/modern/hooks/features/editing/useGridEditing.js +2 -2
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +2 -3
- package/modern/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +1 -1
- package/modern/hooks/features/rows/gridRowsUtils.js +3 -2
- package/modern/hooks/features/rows/index.js +1 -1
- package/modern/hooks/features/rows/useGridRows.js +3 -3
- package/modern/hooks/features/sorting/gridSortingSelector.js +2 -2
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
- package/modern/index.js +1 -1
- package/modern/internals/utils/useProps.js +1 -6
- package/modern/locales/trTR.js +19 -21
- package/modern/utils/composeGridClasses.js +5 -0
- package/modern/utils/platform.js +2 -0
- package/node/components/GridHeaders.js +1 -4
- package/node/components/GridPagination.js +2 -0
- package/node/components/GridRow.js +9 -26
- package/node/components/GridRowCount.js +2 -2
- package/node/components/GridSelectedRowCount.js +2 -2
- package/node/components/base/GridOverlays.js +2 -2
- package/node/components/cell/GridBooleanCell.js +3 -3
- package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -2
- package/node/components/columnHeaders/GridBaseColumnHeaders.js +2 -2
- package/node/components/columnHeaders/GridColumnGroupHeader.js +2 -1
- package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +2 -2
- package/node/components/columnHeaders/GridColumnHeaderTitle.js +2 -2
- package/node/components/columnHeaders/GridIconButtonContainer.js +2 -2
- package/node/components/columnSelection/GridHeaderCheckbox.js +4 -4
- package/node/components/columnsManagement/GridColumnsManagement.js +5 -5
- package/node/components/containers/GridFooterContainer.js +2 -2
- package/node/components/containers/GridOverlay.js +2 -2
- package/node/components/containers/GridRoot.js +4 -7
- package/node/components/containers/GridRootStyles.js +26 -6
- package/node/components/containers/GridToolbarContainer.js +2 -2
- package/node/components/panel/GridPanelContent.js +2 -2
- package/node/components/panel/GridPanelFooter.js +2 -2
- package/node/components/panel/GridPanelHeader.js +2 -2
- package/node/components/panel/GridPanelWrapper.js +2 -2
- package/node/components/virtualization/GridBottomContainer.js +2 -2
- package/node/components/virtualization/GridTopContainer.js +3 -14
- package/node/components/virtualization/GridVirtualScrollbar.js +1 -0
- package/node/components/virtualization/GridVirtualScroller.js +2 -2
- package/node/components/virtualization/GridVirtualScrollerContent.js +2 -2
- package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -2
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/core/useGridRefs.js +3 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
- package/node/hooks/features/editing/useGridEditing.js +1 -1
- package/node/hooks/features/rowSelection/useGridRowSelection.js +2 -3
- package/node/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +2 -2
- package/node/hooks/features/rows/gridRowsUtils.js +6 -4
- package/node/hooks/features/rows/index.js +8 -1
- package/node/hooks/features/rows/useGridRows.js +2 -2
- package/node/hooks/features/sorting/gridSortingSelector.js +1 -1
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
- package/node/index.js +1 -1
- package/node/internals/utils/useProps.js +1 -7
- package/node/locales/trTR.js +19 -21
- package/node/utils/composeGridClasses.js +11 -0
- package/node/utils/platform.js +8 -0
- package/package.json +13 -3
- package/utils/composeGridClasses.d.ts +3 -0
- package/utils/composeGridClasses.js +5 -0
- package/utils/platform.d.ts +1 -0
- package/utils/platform.js +2 -0
|
@@ -8,6 +8,9 @@ exports.GridRootStyles = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _styles = require("@mui/material/styles");
|
|
10
10
|
var _gridClasses = require("../../constants/gridClasses");
|
|
11
|
+
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
12
|
+
var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
|
|
13
|
+
var _gridDimensionsSelectors = require("../../hooks/features/dimensions/gridDimensionsSelectors");
|
|
11
14
|
function getBorderColor(theme) {
|
|
12
15
|
if (theme.vars) {
|
|
13
16
|
return theme.vars.palette.TableCell.border;
|
|
@@ -33,6 +36,10 @@ const columnHeaderStyles = {
|
|
|
33
36
|
visibility: 'visible'
|
|
34
37
|
}
|
|
35
38
|
};
|
|
39
|
+
|
|
40
|
+
// Emotion thinks it knows better than us which selector we should use.
|
|
41
|
+
// https://github.com/emotion-js/emotion/issues/1105#issuecomment-1722524968
|
|
42
|
+
const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';
|
|
36
43
|
const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
37
44
|
name: 'MuiDataGrid',
|
|
38
45
|
slot: 'Root',
|
|
@@ -158,6 +165,8 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
158
165
|
})(({
|
|
159
166
|
theme: t
|
|
160
167
|
}) => {
|
|
168
|
+
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
169
|
+
const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridDimensionsSelector);
|
|
161
170
|
const borderColor = getBorderColor(t);
|
|
162
171
|
const radius = t.shape.borderRadius;
|
|
163
172
|
const containerBackground = t.vars ? t.vars.palette.background.default : t.mixins.MuiDataGrid?.containerBackground ?? t.palette.background.default;
|
|
@@ -220,14 +229,10 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
220
229
|
// See https://github.com/mui/mui-x/issues/8547
|
|
221
230
|
minHeight: 0,
|
|
222
231
|
flexDirection: 'column',
|
|
232
|
+
overflow: 'hidden',
|
|
223
233
|
overflowAnchor: 'none',
|
|
224
234
|
// Keep the same scrolling position
|
|
225
|
-
|
|
226
|
-
// want and prints a warning to the console if we use it, about :first-child being "unsafe" in an SSR context.
|
|
227
|
-
// https://github.com/emotion-js/emotion/issues/1105
|
|
228
|
-
// Using `:first-of-type instead` is ironically less "safe" because if all our elements aren't `div`, this style
|
|
229
|
-
// will fail to apply.
|
|
230
|
-
[`.${_gridClasses.gridClasses.main} > *:first-of-type`]: {
|
|
235
|
+
[`.${_gridClasses.gridClasses.main} > *:first-child${ignoreSsrWarning}`]: {
|
|
231
236
|
borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
|
|
232
237
|
borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
|
|
233
238
|
},
|
|
@@ -275,6 +280,12 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
275
280
|
[`& .${_gridClasses.gridClasses.columnHeader}:focus, & .${_gridClasses.gridClasses.cell}:focus`]: {
|
|
276
281
|
outline: `solid ${t.palette.primary.main} 1px`
|
|
277
282
|
},
|
|
283
|
+
[`&.${_gridClasses.gridClasses['root--noToolbar']} [aria-rowindex="1"] [aria-colindex="1"]`]: {
|
|
284
|
+
borderTopLeftRadius: 'calc(var(--unstable_DataGrid-radius) - 1px)'
|
|
285
|
+
},
|
|
286
|
+
[`&.${_gridClasses.gridClasses['root--noToolbar']} [aria-rowindex="1"] .${_gridClasses.gridClasses['columnHeader--last']}`]: {
|
|
287
|
+
borderTopRightRadius: !dimensions.hasScrollY || dimensions.scrollbarSize === 0 ? 'calc(var(--unstable_DataGrid-radius) - 1px)' : undefined
|
|
288
|
+
},
|
|
278
289
|
[`& .${_gridClasses.gridClasses.columnHeaderCheckbox}, & .${_gridClasses.gridClasses.cellCheckbox}`]: {
|
|
279
290
|
padding: 0,
|
|
280
291
|
justifyContent: 'center',
|
|
@@ -414,6 +425,15 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
|
|
|
414
425
|
borderTop: '1px solid var(--DataGrid-rowBorderColor)'
|
|
415
426
|
}
|
|
416
427
|
},
|
|
428
|
+
/* Bottom border of the top-container */
|
|
429
|
+
[`& .${_gridClasses.gridClasses['row--borderBottom']} .${_gridClasses.gridClasses.columnHeader},
|
|
430
|
+
& .${_gridClasses.gridClasses['row--borderBottom']} .${_gridClasses.gridClasses.filler},
|
|
431
|
+
& .${_gridClasses.gridClasses['row--borderBottom']} .${_gridClasses.gridClasses.scrollbarFiller}`]: {
|
|
432
|
+
borderBottom: `1px solid var(--DataGrid-rowBorderColor)`
|
|
433
|
+
},
|
|
434
|
+
[`& .${_gridClasses.gridClasses['row--borderBottom']} .${_gridClasses.gridClasses.cell}`]: {
|
|
435
|
+
borderBottom: `1px solid var(--rowBorderColor)`
|
|
436
|
+
},
|
|
417
437
|
/* Row styles */
|
|
418
438
|
[`.${_gridClasses.gridClasses.row}`]: {
|
|
419
439
|
display: 'flex',
|
|
@@ -11,7 +11,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
13
|
var _system = require("@mui/system");
|
|
14
|
-
var
|
|
14
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
15
15
|
var _gridClasses = require("../../constants/gridClasses");
|
|
16
16
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -25,7 +25,7 @@ const useUtilityClasses = ownerState => {
|
|
|
25
25
|
const slots = {
|
|
26
26
|
root: ['toolbarContainer']
|
|
27
27
|
};
|
|
28
|
-
return (0,
|
|
28
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
29
29
|
};
|
|
30
30
|
const GridToolbarContainerRoot = (0, _system.styled)('div', {
|
|
31
31
|
name: 'MuiDataGrid',
|
|
@@ -11,7 +11,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
13
|
var _system = require("@mui/system");
|
|
14
|
-
var
|
|
14
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
15
15
|
var _gridClasses = require("../../constants/gridClasses");
|
|
16
16
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -25,7 +25,7 @@ const useUtilityClasses = ownerState => {
|
|
|
25
25
|
const slots = {
|
|
26
26
|
root: ['panelContent']
|
|
27
27
|
};
|
|
28
|
-
return (0,
|
|
28
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
29
29
|
};
|
|
30
30
|
const GridPanelContentRoot = (0, _system.styled)('div', {
|
|
31
31
|
name: 'MuiDataGrid',
|
|
@@ -11,7 +11,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
13
|
var _system = require("@mui/system");
|
|
14
|
-
var
|
|
14
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
15
15
|
var _gridClasses = require("../../constants/gridClasses");
|
|
16
16
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -25,7 +25,7 @@ const useUtilityClasses = ownerState => {
|
|
|
25
25
|
const slots = {
|
|
26
26
|
root: ['panelFooter']
|
|
27
27
|
};
|
|
28
|
-
return (0,
|
|
28
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
29
29
|
};
|
|
30
30
|
const GridPanelFooterRoot = (0, _system.styled)('div', {
|
|
31
31
|
name: 'MuiDataGrid',
|
|
@@ -11,7 +11,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
13
|
var _system = require("@mui/system");
|
|
14
|
-
var
|
|
14
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
15
15
|
var _gridClasses = require("../../constants/gridClasses");
|
|
16
16
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -25,7 +25,7 @@ const useUtilityClasses = ownerState => {
|
|
|
25
25
|
const slots = {
|
|
26
26
|
root: ['panelHeader']
|
|
27
27
|
};
|
|
28
|
-
return (0,
|
|
28
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
29
29
|
};
|
|
30
30
|
const GridPanelHeaderRoot = (0, _system.styled)('div', {
|
|
31
31
|
name: 'MuiDataGrid',
|
|
@@ -12,7 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
13
|
var _Unstable_TrapFocus = _interopRequireDefault(require("@mui/material/Unstable_TrapFocus"));
|
|
14
14
|
var _styles = require("@mui/material/styles");
|
|
15
|
-
var
|
|
15
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
16
16
|
var _gridClasses = require("../../constants/gridClasses");
|
|
17
17
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
18
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -26,7 +26,7 @@ const useUtilityClasses = ownerState => {
|
|
|
26
26
|
const slots = {
|
|
27
27
|
root: ['panelWrapper']
|
|
28
28
|
};
|
|
29
|
-
return (0,
|
|
29
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
30
30
|
};
|
|
31
31
|
const GridPanelWrapperRoot = (0, _styles.styled)('div', {
|
|
32
32
|
name: 'MuiDataGrid',
|
|
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
11
|
var _system = require("@mui/system");
|
|
12
|
-
var
|
|
12
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
13
13
|
var _gridClasses = require("../../constants/gridClasses");
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
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); }
|
|
@@ -18,7 +18,7 @@ const useUtilityClasses = () => {
|
|
|
18
18
|
const slots = {
|
|
19
19
|
root: ['bottomContainer']
|
|
20
20
|
};
|
|
21
|
-
return (0,
|
|
21
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, {});
|
|
22
22
|
};
|
|
23
23
|
const Element = (0, _system.styled)('div')({
|
|
24
24
|
position: 'sticky',
|
|
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
11
|
var _system = require("@mui/system");
|
|
12
|
-
var
|
|
12
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
13
13
|
var _gridClasses = require("../../constants/gridClasses");
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
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); }
|
|
@@ -18,23 +18,12 @@ const useUtilityClasses = () => {
|
|
|
18
18
|
const slots = {
|
|
19
19
|
root: ['topContainer']
|
|
20
20
|
};
|
|
21
|
-
return (0,
|
|
21
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, {});
|
|
22
22
|
};
|
|
23
23
|
const Element = (0, _system.styled)('div')({
|
|
24
24
|
position: 'sticky',
|
|
25
25
|
zIndex: 4,
|
|
26
|
-
top: 0
|
|
27
|
-
'&::after': {
|
|
28
|
-
content: '" "',
|
|
29
|
-
position: 'absolute',
|
|
30
|
-
zIndex: 5,
|
|
31
|
-
bottom: 0,
|
|
32
|
-
left: 0,
|
|
33
|
-
right: 0,
|
|
34
|
-
height: 1,
|
|
35
|
-
width: 'var(--DataGrid-rowWidth)',
|
|
36
|
-
backgroundColor: 'var(--DataGrid-rowBorderColor)'
|
|
37
|
-
}
|
|
26
|
+
top: 0
|
|
38
27
|
});
|
|
39
28
|
function GridTopContainer(props) {
|
|
40
29
|
const classes = useUtilityClasses();
|
|
@@ -134,6 +134,7 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = /*#__PURE__*/React.f
|
|
|
134
134
|
ref: (0, _utils.unstable_useForkRef)(ref, scrollbarRef),
|
|
135
135
|
className: classes.root,
|
|
136
136
|
tabIndex: -1,
|
|
137
|
+
"aria-hidden": "true",
|
|
137
138
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Content, {
|
|
138
139
|
ref: contentRef,
|
|
139
140
|
className: classes.content
|
|
@@ -8,7 +8,7 @@ exports.GridVirtualScroller = GridVirtualScroller;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _system = require("@mui/system");
|
|
11
|
-
var
|
|
11
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
12
12
|
var _GridScrollArea = require("../GridScrollArea");
|
|
13
13
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
14
14
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
@@ -37,7 +37,7 @@ const useUtilityClasses = (ownerState, dimensions, loadingOverlayVariant) => {
|
|
|
37
37
|
root: ['main', dimensions.rightPinnedWidth > 0 && 'main--hasPinnedRight', loadingOverlayVariant === 'skeleton' && 'main--hasSkeletonLoadingOverlay'],
|
|
38
38
|
scroller: ['virtualScroller']
|
|
39
39
|
};
|
|
40
|
-
return (0,
|
|
40
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
41
41
|
};
|
|
42
42
|
const Scroller = (0, _system.styled)('div', {
|
|
43
43
|
name: 'MuiDataGrid',
|
|
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
11
|
var _system = require("@mui/system");
|
|
12
|
-
var
|
|
12
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
13
13
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
14
14
|
var _gridClasses = require("../../constants/gridClasses");
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -22,7 +22,7 @@ const useUtilityClasses = (props, overflowedContent) => {
|
|
|
22
22
|
const slots = {
|
|
23
23
|
root: ['virtualScrollerContent', overflowedContent && 'virtualScrollerContent--overflowed']
|
|
24
24
|
};
|
|
25
|
-
return (0,
|
|
25
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
26
26
|
};
|
|
27
27
|
const VirtualScrollerContentRoot = (0, _system.styled)('div', {
|
|
28
28
|
name: 'MuiDataGrid',
|
|
@@ -10,7 +10,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
12
|
var _system = require("@mui/system");
|
|
13
|
-
var
|
|
13
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
14
14
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
15
15
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
16
16
|
var _rows = require("../../hooks/features/rows");
|
|
@@ -28,7 +28,7 @@ const useUtilityClasses = ownerState => {
|
|
|
28
28
|
const slots = {
|
|
29
29
|
root: ['virtualScrollerRenderZone']
|
|
30
30
|
};
|
|
31
|
-
return (0,
|
|
31
|
+
return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
|
|
32
32
|
};
|
|
33
33
|
const VirtualScrollerRenderZoneRoot = (0, _system.styled)('div', {
|
|
34
34
|
name: 'MuiDataGrid',
|
|
@@ -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', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', '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--borderTop', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hasSkeletonLoadingOverlay', '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', 'rowSkeleton', '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', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
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', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', '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--borderTop', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hasSkeletonLoadingOverlay', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', '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', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
@@ -11,12 +11,14 @@ const useGridRefs = apiRef => {
|
|
|
11
11
|
const rootElementRef = React.useRef(null);
|
|
12
12
|
const mainElementRef = React.useRef(null);
|
|
13
13
|
const virtualScrollerRef = React.useRef(null);
|
|
14
|
+
const columnHeadersContainerRef = React.useRef(null);
|
|
14
15
|
apiRef.current.register('public', {
|
|
15
16
|
rootElementRef
|
|
16
17
|
});
|
|
17
18
|
apiRef.current.register('private', {
|
|
18
19
|
mainElementRef,
|
|
19
|
-
virtualScrollerRef
|
|
20
|
+
virtualScrollerRef,
|
|
21
|
+
columnHeadersContainerRef
|
|
20
22
|
});
|
|
21
23
|
};
|
|
22
24
|
exports.useGridRefs = useGridRefs;
|
|
@@ -19,6 +19,7 @@ var _virtualization = require("../virtualization");
|
|
|
19
19
|
var _useGridVirtualScroller = require("../virtualization/useGridVirtualScroller");
|
|
20
20
|
var _GridColumnGroupHeader = require("../../../components/columnHeaders/GridColumnGroupHeader");
|
|
21
21
|
var _columns = require("../columns");
|
|
22
|
+
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
22
23
|
var _gridColumnGroupsSelector = require("../columnGrouping/gridColumnGroupsSelector");
|
|
23
24
|
var _GridScrollbarFillerCell = require("../../../components/GridScrollbarFillerCell");
|
|
24
25
|
var _getPinnedCellOffset = require("../../../internals/utils/getPinnedCellOffset");
|
|
@@ -60,6 +61,7 @@ const useGridColumnHeaders = props => {
|
|
|
60
61
|
const columnPositions = (0, _utils.useGridSelector)(apiRef, _columns.gridColumnPositionsSelector);
|
|
61
62
|
const renderContext = (0, _utils.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
|
|
62
63
|
const pinnedColumns = (0, _utils.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
|
|
64
|
+
const pinnedRows = (0, _utils.useGridSelector)(apiRef, _gridRowsSelector.gridPinnedRowsSelector);
|
|
63
65
|
const offsetLeft = (0, _useGridVirtualScroller.computeOffsetLeft)(columnPositions, renderContext, theme.direction, pinnedColumns.left.length);
|
|
64
66
|
const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
|
|
65
67
|
React.useEffect(() => {
|
|
@@ -188,6 +190,7 @@ const useGridColumnHeaders = props => {
|
|
|
188
190
|
role: "row",
|
|
189
191
|
"aria-rowindex": headerGroupingMaxDepth + 1,
|
|
190
192
|
ownerState: rootProps,
|
|
193
|
+
className: pinnedRows.top.length === 0 ? _gridClasses.gridClasses['row--borderBottom'] : undefined,
|
|
191
194
|
children: [leftRenderContext && getColumnHeaders({
|
|
192
195
|
position: _columns.GridPinnedColumnPosition.LEFT,
|
|
193
196
|
renderContext: leftRenderContext,
|
|
@@ -27,7 +27,7 @@ const useGridEditing = (apiRef, props) => {
|
|
|
27
27
|
isCellEditable: isCellEditableProp
|
|
28
28
|
} = props;
|
|
29
29
|
const isCellEditable = React.useCallback(params => {
|
|
30
|
-
if ((0, _gridRowsUtils.
|
|
30
|
+
if ((0, _gridRowsUtils.isAutogeneratedRowNode)(params.rowNode)) {
|
|
31
31
|
return false;
|
|
32
32
|
}
|
|
33
33
|
if (!params.colDef.editable) {
|
|
@@ -282,11 +282,10 @@ const useGridRowSelection = (apiRef, props) => {
|
|
|
282
282
|
}
|
|
283
283
|
}, [apiRef, expandMouseRowRangeSelection, canHaveMultipleSelection]);
|
|
284
284
|
const handleHeaderSelectionCheckboxChange = React.useCallback(params => {
|
|
285
|
-
const
|
|
286
|
-
const rowsToBeSelected = shouldLimitSelectionToCurrentPage ? (0, _pagination.gridPaginatedVisibleSortedGridRowIdsSelector)(apiRef) : (0, _gridFilterSelector.gridExpandedSortedRowIdsSelector)(apiRef);
|
|
285
|
+
const rowsToBeSelected = props.pagination && props.checkboxSelectionVisibleOnly && props.paginationMode === 'client' ? (0, _pagination.gridPaginatedVisibleSortedGridRowIdsSelector)(apiRef) : (0, _gridFilterSelector.gridExpandedSortedRowIdsSelector)(apiRef);
|
|
287
286
|
const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(apiRef);
|
|
288
287
|
apiRef.current.selectRows(rowsToBeSelected, params.value, filterModel?.items.length > 0);
|
|
289
|
-
}, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination]);
|
|
288
|
+
}, [apiRef, props.checkboxSelectionVisibleOnly, props.pagination, props.paginationMode]);
|
|
290
289
|
const handleCellKeyDown = React.useCallback((params, event) => {
|
|
291
290
|
// Get the most recent cell mode because it may have been changed by another listener
|
|
292
291
|
if (apiRef.current.getCellMode(params.id, params.field) === _gridEditRowModel.GridCellModes.Edit) {
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.useGridRowSelectionPreProcessors = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var
|
|
10
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
11
11
|
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
12
12
|
var _constants = require("../../../constants");
|
|
13
13
|
var _colDef = require("../../../colDef");
|
|
@@ -22,7 +22,7 @@ const useUtilityClasses = ownerState => {
|
|
|
22
22
|
cellCheckbox: ['cellCheckbox'],
|
|
23
23
|
columnHeaderCheckbox: ['columnHeaderCheckbox']
|
|
24
24
|
};
|
|
25
|
-
return (0,
|
|
25
|
+
return (0, _composeClasses.default)(slots, _constants.getDataGridUtilityClass, classes);
|
|
26
26
|
}, [classes]);
|
|
27
27
|
};
|
|
28
28
|
const useGridRowSelectionPreProcessors = (apiRef, props) => {
|
|
@@ -10,7 +10,7 @@ exports.checkGridRowIdIsValid = checkGridRowIdIsValid;
|
|
|
10
10
|
exports.computeRowsUpdates = computeRowsUpdates;
|
|
11
11
|
exports.createRowsInternalCache = void 0;
|
|
12
12
|
exports.getMinimalContentHeight = getMinimalContentHeight;
|
|
13
|
-
exports.updateCacheWithNewRows = exports.
|
|
13
|
+
exports.updateCacheWithNewRows = exports.isAutogeneratedRowNode = exports.isAutogeneratedRow = exports.getTreeNodeDescendants = exports.getTopLevelRowCount = exports.getRowsStateFromCache = exports.getRowIdFromRowModel = void 0;
|
|
14
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
15
|
var _gridRowsSelector = require("./gridRowsSelector");
|
|
16
16
|
var _gridDimensionsSelectors = require("../dimensions/gridDimensionsSelectors");
|
|
@@ -141,8 +141,10 @@ const getRowsStateFromCache = ({
|
|
|
141
141
|
});
|
|
142
142
|
};
|
|
143
143
|
exports.getRowsStateFromCache = getRowsStateFromCache;
|
|
144
|
-
const
|
|
145
|
-
exports.
|
|
144
|
+
const isAutogeneratedRow = row => GRID_ID_AUTOGENERATED in row;
|
|
145
|
+
exports.isAutogeneratedRow = isAutogeneratedRow;
|
|
146
|
+
const isAutogeneratedRowNode = rowNode => rowNode.type === 'skeletonRow' || rowNode.type === 'footer' || rowNode.type === 'group' && rowNode.isAutoGenerated || rowNode.type === 'pinnedRow' && rowNode.isAutoGenerated;
|
|
147
|
+
exports.isAutogeneratedRowNode = isAutogeneratedRowNode;
|
|
146
148
|
const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) => {
|
|
147
149
|
const node = tree[parentId];
|
|
148
150
|
if (node.type !== 'group') {
|
|
@@ -151,7 +153,7 @@ const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) => {
|
|
|
151
153
|
const validDescendants = [];
|
|
152
154
|
for (let i = 0; i < node.children.length; i += 1) {
|
|
153
155
|
const child = node.children[i];
|
|
154
|
-
if (!skipAutoGeneratedRows || !
|
|
156
|
+
if (!skipAutoGeneratedRows || !isAutogeneratedRowNode(tree[child])) {
|
|
155
157
|
validDescendants.push(child);
|
|
156
158
|
}
|
|
157
159
|
const childDescendants = getTreeNodeDescendants(tree, child, skipAutoGeneratedRows);
|
|
@@ -15,7 +15,8 @@ var _exportNames = {
|
|
|
15
15
|
gridRowMaximumTreeDepthSelector: true,
|
|
16
16
|
gridDataRowIdsSelector: true,
|
|
17
17
|
GRID_ROOT_GROUP_ID: true,
|
|
18
|
-
checkGridRowIdIsValid: true
|
|
18
|
+
checkGridRowIdIsValid: true,
|
|
19
|
+
isAutogeneratedRow: true
|
|
19
20
|
};
|
|
20
21
|
Object.defineProperty(exports, "GRID_ROOT_GROUP_ID", {
|
|
21
22
|
enumerable: true,
|
|
@@ -89,6 +90,12 @@ Object.defineProperty(exports, "gridTopLevelRowCountSelector", {
|
|
|
89
90
|
return _gridRowsSelector.gridTopLevelRowCountSelector;
|
|
90
91
|
}
|
|
91
92
|
});
|
|
93
|
+
Object.defineProperty(exports, "isAutogeneratedRow", {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
get: function () {
|
|
96
|
+
return _gridRowsUtils.isAutogeneratedRow;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
92
99
|
var _gridRowsMetaSelector = require("./gridRowsMetaSelector");
|
|
93
100
|
Object.keys(_gridRowsMetaSelector).forEach(function (key) {
|
|
94
101
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -58,7 +58,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
58
58
|
return model;
|
|
59
59
|
}
|
|
60
60
|
const node = apiRef.current.getRowNode(id);
|
|
61
|
-
if (node && (0, _gridRowsUtils.
|
|
61
|
+
if (node && (0, _gridRowsUtils.isAutogeneratedRowNode)(node)) {
|
|
62
62
|
return {
|
|
63
63
|
[_gridRowsUtils.GRID_ID_AUTOGENERATED]: id
|
|
64
64
|
};
|
|
@@ -222,7 +222,7 @@ const useGridRows = (apiRef, props) => {
|
|
|
222
222
|
const startIndex = sortedRowIds.findIndex(id => id === groupId) + 1;
|
|
223
223
|
for (let index = startIndex; index < sortedRowIds.length && tree[sortedRowIds[index]].depth > groupNode.depth; index += 1) {
|
|
224
224
|
const id = sortedRowIds[index];
|
|
225
|
-
if (!skipAutoGeneratedRows || !(0, _gridRowsUtils.
|
|
225
|
+
if (!skipAutoGeneratedRows || !(0, _gridRowsUtils.isAutogeneratedRowNode)(tree[id])) {
|
|
226
226
|
children.push(id);
|
|
227
227
|
}
|
|
228
228
|
}
|
|
@@ -32,7 +32,7 @@ const gridSortedRowEntriesSelector = exports.gridSortedRowEntriesSelector = (0,
|
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
34
|
const rowNode = rowTree[id];
|
|
35
|
-
if (rowNode && (0, _gridRowsUtils.
|
|
35
|
+
if (rowNode && (0, _gridRowsUtils.isAutogeneratedRowNode)(rowNode)) {
|
|
36
36
|
acc.push({
|
|
37
37
|
id,
|
|
38
38
|
model: {
|
|
@@ -26,6 +26,7 @@ var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
|
26
26
|
var _gridFocusStateSelector = require("../focus/gridFocusStateSelector");
|
|
27
27
|
var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
|
|
28
28
|
var _utils2 = require("../../utils");
|
|
29
|
+
var platform = _interopRequireWildcard(require("../../../utils/platform"));
|
|
29
30
|
var _utils3 = require("../../../utils/utils");
|
|
30
31
|
var _gridRowSelectionSelector = require("../rowSelection/gridRowSelectionSelector");
|
|
31
32
|
var _gridRowsMetaSelector = require("../rows/gridRowsMetaSelector");
|
|
@@ -190,6 +191,8 @@ const useGridVirtualScroller = () => {
|
|
|
190
191
|
const forceUpdateRenderContext = () => {
|
|
191
192
|
const inputs = inputsSelector(apiRef, rootProps, enabled, enabledForColumns);
|
|
192
193
|
const nextRenderContext = computeRenderContext(inputs, scrollPosition.current, scrollCache);
|
|
194
|
+
// Reset the frozen context when the render context changes, see the illustration in https://github.com/mui/mui-x/pull/12353
|
|
195
|
+
frozenContext.current = undefined;
|
|
193
196
|
updateRenderContext(nextRenderContext);
|
|
194
197
|
};
|
|
195
198
|
const handleScroll = (0, _utils.unstable_useEventCallback)(event => {
|
|
@@ -269,6 +272,7 @@ const useGridVirtualScroller = () => {
|
|
|
269
272
|
id,
|
|
270
273
|
model
|
|
271
274
|
} = rowModels[rowIndexInPage];
|
|
275
|
+
const rowIndex = (currentPage?.range?.firstRowIndex || 0) + rowIndexOffset + rowIndexInPage;
|
|
272
276
|
|
|
273
277
|
// NOTE: This is an expensive feature, the colSpan code could be optimized.
|
|
274
278
|
if (hasColSpan) {
|
|
@@ -310,6 +314,7 @@ const useGridVirtualScroller = () => {
|
|
|
310
314
|
isFirstVisible = rowIndexInPage === 0;
|
|
311
315
|
}
|
|
312
316
|
let isLastVisible = false;
|
|
317
|
+
const isLastVisibleInSection = rowIndexInPage === rowModels.length - 1;
|
|
313
318
|
if (isLastSection) {
|
|
314
319
|
if (!isPinnedSection) {
|
|
315
320
|
const lastIndex = currentPage.rows.length - 1;
|
|
@@ -318,7 +323,7 @@ const useGridVirtualScroller = () => {
|
|
|
318
323
|
isLastVisible = true;
|
|
319
324
|
}
|
|
320
325
|
} else {
|
|
321
|
-
isLastVisible =
|
|
326
|
+
isLastVisible = isLastVisibleInSection;
|
|
322
327
|
}
|
|
323
328
|
}
|
|
324
329
|
const isVirtualRow = rowIndexInPage === virtualRowIndex;
|
|
@@ -333,7 +338,7 @@ const useGridVirtualScroller = () => {
|
|
|
333
338
|
currentRenderContext = frozenContext.current;
|
|
334
339
|
}
|
|
335
340
|
const offsetLeft = computeOffsetLeft(columnPositions, currentRenderContext, theme.direction, pinnedColumns.left.length);
|
|
336
|
-
const
|
|
341
|
+
const showBottomBorder = isLastVisibleInSection && params.position === 'top';
|
|
337
342
|
rows.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.row, (0, _extends2.default)({
|
|
338
343
|
row: model,
|
|
339
344
|
rowId: id,
|
|
@@ -350,7 +355,8 @@ const useGridVirtualScroller = () => {
|
|
|
350
355
|
focusedColumnIndex: hasFocus ? focusedCell.columnIndex : undefined,
|
|
351
356
|
isFirstVisible: isFirstVisible,
|
|
352
357
|
isLastVisible: isLastVisible,
|
|
353
|
-
isNotVisible: isNotVisible
|
|
358
|
+
isNotVisible: isNotVisible,
|
|
359
|
+
showBottomBorder: showBottomBorder
|
|
354
360
|
}, rowProps), id));
|
|
355
361
|
if (isNotVisible) {
|
|
356
362
|
return;
|
|
@@ -421,12 +427,14 @@ const useGridVirtualScroller = () => {
|
|
|
421
427
|
}),
|
|
422
428
|
getScrollerProps: () => ({
|
|
423
429
|
ref: scrollerRef,
|
|
424
|
-
tabIndex: -1,
|
|
425
430
|
onScroll: handleScroll,
|
|
426
431
|
onWheel: handleWheel,
|
|
427
432
|
onTouchMove: handleTouchMove,
|
|
428
433
|
style: scrollerStyle,
|
|
429
|
-
role: 'presentation'
|
|
434
|
+
role: 'presentation',
|
|
435
|
+
// `tabIndex` shouldn't be used along role=presentation, but it fixes a Firefox bug
|
|
436
|
+
// https://github.com/mui/mui-x/pull/13891#discussion_r1683416024
|
|
437
|
+
tabIndex: platform.isFirefox ? -1 : undefined
|
|
430
438
|
}),
|
|
431
439
|
getContentProps: () => ({
|
|
432
440
|
style: contentSize,
|
package/node/index.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.useProps = useProps;
|
|
8
|
-
var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
7
|
var React = _interopRequireWildcard(require("react"));
|
|
11
8
|
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); }
|
|
12
9
|
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 && {}.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; }
|
|
@@ -30,8 +27,5 @@ function groupForwardedProps(props) {
|
|
|
30
27
|
return newProps;
|
|
31
28
|
}
|
|
32
29
|
function useProps(allProps) {
|
|
33
|
-
return React.useMemo(() =>
|
|
34
|
-
const themedProps = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(allProps), allProps));
|
|
35
|
-
return groupForwardedProps(themedProps);
|
|
36
|
-
}, [allProps]);
|
|
30
|
+
return React.useMemo(() => groupForwardedProps(allProps), [allProps]);
|
|
37
31
|
}
|