@mui/x-data-grid 6.7.0 → 6.8.0
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 +77 -15
- package/components/GridColumnHeaders.d.ts +2 -2
- package/components/GridColumnHeaders.js +3 -1
- package/components/GridRow.d.ts +2 -2
- package/components/GridRow.js +23 -69
- package/components/cell/GridCell.d.ts +24 -15
- package/components/cell/GridCell.js +422 -45
- package/components/cell/index.d.ts +2 -1
- package/components/cell/index.js +1 -1
- package/components/containers/GridRootStyles.js +30 -16
- package/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/components/toolbar/GridToolbar.js +2 -2
- package/components/virtualization/GridVirtualScroller.js +4 -9
- package/components/virtualization/GridVirtualScrollerContent.js +11 -20
- package/constants/defaultGridSlotsComponents.js +6 -2
- package/hooks/core/useGridApiInitialization.js +4 -1
- package/hooks/core/useGridStateInitialization.js +2 -9
- package/hooks/features/clipboard/useGridClipboard.js +1 -4
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -3
- package/hooks/features/editing/useGridCellEditing.js +5 -3
- package/hooks/features/editing/useGridRowEditing.js +14 -6
- package/hooks/features/filter/gridFilterUtils.d.ts +4 -1
- package/hooks/features/filter/gridFilterUtils.js +19 -13
- package/hooks/features/filter/useGridFilter.js +2 -1
- package/hooks/features/focus/useGridFocus.js +9 -4
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
- package/hooks/features/rows/useGridParamsApi.d.ts +2 -0
- package/hooks/features/rows/useGridParamsApi.js +7 -15
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +8 -816
- package/hooks/features/virtualization/useGridVirtualScroller.js +40 -38
- package/hooks/utils/index.d.ts +1 -1
- package/hooks/utils/index.js +1 -1
- package/hooks/utils/useGridSelector.d.ts +3 -1
- package/hooks/utils/useGridSelector.js +37 -6
- package/hooks/utils/useLazyRef.d.ts +2 -0
- package/hooks/utils/useLazyRef.js +9 -0
- package/hooks/utils/useOnMount.d.ts +2 -0
- package/hooks/utils/useOnMount.js +7 -0
- package/index.js +1 -1
- package/legacy/components/GridColumnHeaders.js +3 -1
- package/legacy/components/GridRow.js +25 -69
- package/legacy/components/cell/GridCell.js +425 -46
- package/legacy/components/cell/index.js +1 -1
- package/legacy/components/containers/GridRootStyles.js +20 -17
- package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/legacy/components/toolbar/GridToolbar.js +2 -2
- package/legacy/components/virtualization/GridVirtualScroller.js +4 -7
- package/legacy/components/virtualization/GridVirtualScrollerContent.js +10 -17
- package/legacy/constants/defaultGridSlotsComponents.js +6 -2
- package/legacy/hooks/core/useGridApiInitialization.js +4 -1
- package/legacy/hooks/core/useGridStateInitialization.js +2 -7
- package/legacy/hooks/features/clipboard/useGridClipboard.js +1 -4
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -3
- package/legacy/hooks/features/editing/useGridCellEditing.js +5 -3
- package/legacy/hooks/features/editing/useGridRowEditing.js +15 -7
- package/legacy/hooks/features/filter/gridFilterUtils.js +23 -19
- package/legacy/hooks/features/filter/useGridFilter.js +2 -1
- package/legacy/hooks/features/focus/useGridFocus.js +9 -4
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
- package/legacy/hooks/features/rows/useGridParamsApi.js +23 -15
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +38 -34
- package/legacy/hooks/utils/index.js +1 -1
- package/legacy/hooks/utils/useGridSelector.js +43 -5
- package/legacy/hooks/utils/useLazyRef.js +9 -0
- package/legacy/hooks/utils/useOnMount.js +7 -0
- package/legacy/index.js +1 -1
- package/legacy/locales/elGR.js +70 -79
- package/legacy/utils/Store.js +34 -0
- package/legacy/utils/doesSupportPreventScroll.js +13 -0
- package/legacy/utils/fastMemo.js +5 -0
- package/legacy/utils/fastObjectShallowCompare.js +32 -0
- package/legacy/utils/keyboardUtils.js +4 -2
- package/locales/elGR.js +66 -79
- package/models/api/gridCoreApi.d.ts +6 -0
- package/models/colDef/gridColDef.d.ts +4 -3
- package/models/colDef/gridColType.d.ts +3 -1
- package/models/events/gridEventLookup.d.ts +3 -3
- package/modern/components/GridColumnHeaders.js +3 -1
- package/modern/components/GridRow.js +22 -69
- package/modern/components/cell/GridCell.js +421 -45
- package/modern/components/cell/index.js +1 -1
- package/modern/components/containers/GridRootStyles.js +30 -16
- package/modern/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/modern/components/toolbar/GridToolbar.js +2 -2
- package/modern/components/virtualization/GridVirtualScroller.js +4 -9
- package/modern/components/virtualization/GridVirtualScrollerContent.js +10 -20
- package/modern/constants/defaultGridSlotsComponents.js +6 -2
- package/modern/hooks/core/useGridApiInitialization.js +4 -1
- package/modern/hooks/core/useGridStateInitialization.js +2 -9
- package/modern/hooks/features/clipboard/useGridClipboard.js +1 -4
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -3
- package/modern/hooks/features/editing/useGridCellEditing.js +5 -3
- package/modern/hooks/features/editing/useGridRowEditing.js +14 -6
- package/modern/hooks/features/filter/gridFilterUtils.js +17 -12
- package/modern/hooks/features/filter/useGridFilter.js +2 -1
- package/modern/hooks/features/focus/useGridFocus.js +8 -4
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
- package/modern/hooks/features/rows/useGridParamsApi.js +7 -15
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +40 -38
- package/modern/hooks/utils/index.js +1 -1
- package/modern/hooks/utils/useGridSelector.js +37 -6
- package/modern/hooks/utils/useLazyRef.js +9 -0
- package/modern/hooks/utils/useOnMount.js +7 -0
- package/modern/index.js +1 -1
- package/modern/locales/elGR.js +66 -79
- package/modern/utils/Store.js +24 -0
- package/modern/utils/doesSupportPreventScroll.js +13 -0
- package/modern/utils/fastMemo.js +5 -0
- package/modern/utils/fastObjectShallowCompare.js +32 -0
- package/modern/utils/keyboardUtils.js +4 -2
- package/node/components/GridColumnHeaders.js +4 -2
- package/node/components/GridRow.js +22 -69
- package/node/components/cell/GridCell.js +424 -47
- package/node/components/cell/index.js +17 -10
- package/node/components/containers/GridRootStyles.js +30 -16
- package/node/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/node/components/toolbar/GridToolbar.js +2 -2
- package/node/components/virtualization/GridVirtualScroller.js +4 -9
- package/node/components/virtualization/GridVirtualScrollerContent.js +10 -20
- package/node/constants/defaultGridSlotsComponents.js +4 -1
- package/node/hooks/core/useGridApiInitialization.js +4 -1
- package/node/hooks/core/useGridStateInitialization.js +2 -9
- package/node/hooks/features/clipboard/useGridClipboard.js +1 -4
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +8 -2
- package/node/hooks/features/editing/useGridCellEditing.js +5 -3
- package/node/hooks/features/editing/useGridRowEditing.js +14 -6
- package/node/hooks/features/filter/gridFilterUtils.js +17 -12
- package/node/hooks/features/filter/useGridFilter.js +2 -1
- package/node/hooks/features/focus/useGridFocus.js +8 -4
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
- package/node/hooks/features/rows/useGridParamsApi.js +9 -15
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +40 -36
- package/node/hooks/utils/index.js +14 -10
- package/node/hooks/utils/useGridSelector.js +41 -7
- package/node/hooks/utils/useLazyRef.js +17 -0
- package/node/hooks/utils/useOnMount.js +15 -0
- package/node/index.js +1 -1
- package/node/locales/elGR.js +66 -79
- package/node/utils/Store.js +31 -0
- package/node/utils/doesSupportPreventScroll.js +19 -0
- package/node/utils/fastMemo.js +13 -0
- package/node/utils/fastObjectShallowCompare.js +38 -0
- package/node/utils/keyboardUtils.js +4 -2
- package/package.json +1 -1
- package/utils/Store.d.ts +11 -0
- package/utils/Store.js +24 -0
- package/utils/doesSupportPreventScroll.d.ts +1 -0
- package/utils/doesSupportPreventScroll.js +13 -0
- package/utils/fastMemo.d.ts +1 -0
- package/utils/fastMemo.js +5 -0
- package/utils/fastObjectShallowCompare.d.ts +1 -0
- package/utils/fastObjectShallowCompare.js +32 -0
- package/utils/keyboardUtils.js +4 -2
|
@@ -17,6 +17,22 @@ function getBorderColor(theme) {
|
|
|
17
17
|
}
|
|
18
18
|
return (0, _styles.darken)((0, _styles.alpha)(theme.palette.divider, 1), 0.68);
|
|
19
19
|
}
|
|
20
|
+
const columnHeadersStyles = {
|
|
21
|
+
[`.${_gridClasses.gridClasses.columnSeparator}, .${_gridClasses.gridClasses['columnSeparator--resizing']}`]: {
|
|
22
|
+
visibility: 'visible',
|
|
23
|
+
width: 'auto'
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const columnHeaderStyles = {
|
|
27
|
+
[`& .${_gridClasses.gridClasses.iconButtonContainer}`]: {
|
|
28
|
+
visibility: 'visible',
|
|
29
|
+
width: 'auto'
|
|
30
|
+
},
|
|
31
|
+
[`& .${_gridClasses.gridClasses.menuIcon}`]: {
|
|
32
|
+
width: 'auto',
|
|
33
|
+
visibility: 'visible'
|
|
34
|
+
}
|
|
35
|
+
};
|
|
20
36
|
const GridRootStyles = (0, _styles.styled)('div', {
|
|
21
37
|
name: 'MuiDataGrid',
|
|
22
38
|
slot: 'Root',
|
|
@@ -58,6 +74,8 @@ const GridRootStyles = (0, _styles.styled)('div', {
|
|
|
58
74
|
[`& .${_gridClasses.gridClasses['cell--rangeLeft']}`]: styles['cell--rangeLeft']
|
|
59
75
|
}, {
|
|
60
76
|
[`& .${_gridClasses.gridClasses['cell--rangeRight']}`]: styles['cell--rangeRight']
|
|
77
|
+
}, {
|
|
78
|
+
[`& .${_gridClasses.gridClasses['cell--withRightBorder']}`]: styles['cell--withRightBorder']
|
|
61
79
|
}, {
|
|
62
80
|
[`& .${_gridClasses.gridClasses.cellContent}`]: styles.cellContent
|
|
63
81
|
}, {
|
|
@@ -82,6 +100,8 @@ const GridRootStyles = (0, _styles.styled)('div', {
|
|
|
82
100
|
[`& .${_gridClasses.gridClasses['columnHeader--sortable']}`]: styles['columnHeader--sortable']
|
|
83
101
|
}, {
|
|
84
102
|
[`& .${_gridClasses.gridClasses['columnHeader--sorted']}`]: styles['columnHeader--sorted']
|
|
103
|
+
}, {
|
|
104
|
+
[`& .${_gridClasses.gridClasses['columnHeader--withRightBorder']}`]: styles['columnHeader--withRightBorder']
|
|
85
105
|
}, {
|
|
86
106
|
[`& .${_gridClasses.gridClasses.columnHeader}`]: styles.columnHeader
|
|
87
107
|
}, {
|
|
@@ -207,9 +227,6 @@ const GridRootStyles = (0, _styles.styled)('div', {
|
|
|
207
227
|
duration: theme.transitions.duration.shorter
|
|
208
228
|
})
|
|
209
229
|
},
|
|
210
|
-
[`& .${_gridClasses.gridClasses.columnHeader}:not(.${_gridClasses.gridClasses['columnHeader--sorted']}):hover .${_gridClasses.gridClasses.sortIcon}`]: {
|
|
211
|
-
opacity: 0.5
|
|
212
|
-
},
|
|
213
230
|
[`& .${_gridClasses.gridClasses.columnHeaderTitleContainer}`]: {
|
|
214
231
|
display: 'flex',
|
|
215
232
|
alignItems: 'center',
|
|
@@ -273,9 +290,16 @@ const GridRootStyles = (0, _styles.styled)('div', {
|
|
|
273
290
|
justifyContent: 'center',
|
|
274
291
|
color: borderColor
|
|
275
292
|
},
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
293
|
+
'@media (hover: hover)': {
|
|
294
|
+
[`& .${_gridClasses.gridClasses.columnHeaders}:hover`]: columnHeadersStyles,
|
|
295
|
+
[`& .${_gridClasses.gridClasses.columnHeader}:hover`]: columnHeaderStyles,
|
|
296
|
+
[`& .${_gridClasses.gridClasses.columnHeader}:not(.${_gridClasses.gridClasses['columnHeader--sorted']}):hover .${_gridClasses.gridClasses.sortIcon}`]: {
|
|
297
|
+
opacity: 0.5
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
'@media (hover: none)': {
|
|
301
|
+
[`& .${_gridClasses.gridClasses.columnHeaders}`]: columnHeadersStyles,
|
|
302
|
+
[`& .${_gridClasses.gridClasses.columnHeader}`]: columnHeaderStyles
|
|
279
303
|
},
|
|
280
304
|
[`& .${_gridClasses.gridClasses['columnSeparator--sideLeft']}`]: {
|
|
281
305
|
left: -12
|
|
@@ -311,16 +335,6 @@ const GridRootStyles = (0, _styles.styled)('div', {
|
|
|
311
335
|
display: 'flex',
|
|
312
336
|
alignItems: 'center'
|
|
313
337
|
},
|
|
314
|
-
[`& .${_gridClasses.gridClasses.columnHeader}:hover`]: {
|
|
315
|
-
[`& .${_gridClasses.gridClasses.iconButtonContainer}`]: {
|
|
316
|
-
visibility: 'visible',
|
|
317
|
-
width: 'auto'
|
|
318
|
-
},
|
|
319
|
-
[`& .${_gridClasses.gridClasses.menuIcon}`]: {
|
|
320
|
-
width: 'auto',
|
|
321
|
-
visibility: 'visible'
|
|
322
|
-
}
|
|
323
|
-
},
|
|
324
338
|
[`.${_gridClasses.gridClasses.menuOpen}`]: {
|
|
325
339
|
visibility: 'visible',
|
|
326
340
|
width: 'auto'
|
|
@@ -22,8 +22,8 @@ const _excluded = ["className", "csvOptions", "printOptions", "excelOptions", "s
|
|
|
22
22
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
23
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
24
24
|
const GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, ref) {
|
|
25
|
-
// TODO
|
|
26
|
-
// from
|
|
25
|
+
// TODO v7: think about where export option should be passed.
|
|
26
|
+
// from slotProps={{ toolbarExport: { ...exportOption } }} seems to be more appropriate
|
|
27
27
|
const {
|
|
28
28
|
csvOptions,
|
|
29
29
|
printOptions,
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.GridVirtualScroller = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
9
|
var React = _interopRequireWildcard(require("react"));
|
|
11
10
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
11
|
var _system = require("@mui/system");
|
|
@@ -14,7 +13,6 @@ var _utils = require("@mui/utils");
|
|
|
14
13
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
15
14
|
var _gridClasses = require("../../constants/gridClasses");
|
|
16
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
-
const _excluded = ["className"];
|
|
18
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
17
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
18
|
const useUtilityClasses = ownerState => {
|
|
@@ -40,16 +38,13 @@ const VirtualScrollerRoot = (0, _system.styled)('div', {
|
|
|
40
38
|
}
|
|
41
39
|
});
|
|
42
40
|
const GridVirtualScroller = /*#__PURE__*/React.forwardRef(function GridVirtualScroller(props, ref) {
|
|
43
|
-
const {
|
|
44
|
-
className
|
|
45
|
-
} = props,
|
|
46
|
-
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
47
41
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
48
42
|
const classes = useUtilityClasses(rootProps);
|
|
49
43
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(VirtualScrollerRoot, (0, _extends2.default)({
|
|
50
|
-
ref: ref
|
|
51
|
-
|
|
44
|
+
ref: ref
|
|
45
|
+
}, props, {
|
|
46
|
+
className: (0, _clsx.default)(classes.root, props.className),
|
|
52
47
|
ownerState: rootProps
|
|
53
|
-
}
|
|
48
|
+
}));
|
|
54
49
|
});
|
|
55
50
|
exports.GridVirtualScroller = GridVirtualScroller;
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.GridVirtualScrollerContent = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
9
|
var React = _interopRequireWildcard(require("react"));
|
|
11
10
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
12
11
|
var _system = require("@mui/system");
|
|
@@ -14,14 +13,12 @@ var _utils = require("@mui/utils");
|
|
|
14
13
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
15
14
|
var _gridClasses = require("../../constants/gridClasses");
|
|
16
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
-
const _excluded = ["className", "style"];
|
|
18
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
17
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
|
-
const useUtilityClasses =
|
|
18
|
+
const useUtilityClasses = (props, overflowedContent) => {
|
|
21
19
|
const {
|
|
22
|
-
classes
|
|
23
|
-
|
|
24
|
-
} = ownerState;
|
|
20
|
+
classes
|
|
21
|
+
} = props;
|
|
25
22
|
const slots = {
|
|
26
23
|
root: ['virtualScrollerContent', overflowedContent && 'virtualScrollerContent--overflowed']
|
|
27
24
|
};
|
|
@@ -33,21 +30,14 @@ const VirtualScrollerContentRoot = (0, _system.styled)('div', {
|
|
|
33
30
|
overridesResolver: (props, styles) => styles.virtualScrollerContent
|
|
34
31
|
})({});
|
|
35
32
|
const GridVirtualScrollerContent = /*#__PURE__*/React.forwardRef(function GridVirtualScrollerContent(props, ref) {
|
|
36
|
-
const {
|
|
37
|
-
className,
|
|
38
|
-
style
|
|
39
|
-
} = props,
|
|
40
|
-
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
41
33
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
});
|
|
45
|
-
const classes = useUtilityClasses(ownerState);
|
|
34
|
+
const overflowedContent = !rootProps.autoHeight && props.style?.minHeight === 'auto';
|
|
35
|
+
const classes = useUtilityClasses(rootProps, overflowedContent);
|
|
46
36
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(VirtualScrollerContentRoot, (0, _extends2.default)({
|
|
47
|
-
ref: ref
|
|
48
|
-
|
|
49
|
-
ownerState:
|
|
50
|
-
|
|
51
|
-
}
|
|
37
|
+
ref: ref
|
|
38
|
+
}, props, {
|
|
39
|
+
ownerState: rootProps,
|
|
40
|
+
className: (0, _clsx.default)(classes.root, props.className)
|
|
41
|
+
}));
|
|
52
42
|
});
|
|
53
43
|
exports.GridVirtualScrollerContent = GridVirtualScrollerContent;
|
|
@@ -7,12 +7,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.DATA_GRID_DEFAULT_SLOTS_COMPONENTS = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _components = require("../components");
|
|
10
|
+
var _GridCell = require("../components/cell/GridCell");
|
|
10
11
|
var _GridColumnHeaders = require("../components/GridColumnHeaders");
|
|
11
12
|
var _GridColumnMenu = require("../components/menu/columnMenu/GridColumnMenu");
|
|
12
13
|
var _GridNoResultsOverlay = require("../components/GridNoResultsOverlay");
|
|
13
14
|
var _material = _interopRequireDefault(require("../material"));
|
|
15
|
+
// TODO: camelCase these key. It's a private helper now.
|
|
16
|
+
// Remove then need to call `uncapitalizeObjectKeys`.
|
|
14
17
|
const DATA_GRID_DEFAULT_SLOTS_COMPONENTS = (0, _extends2.default)({}, _material.default, {
|
|
15
|
-
Cell:
|
|
18
|
+
Cell: _GridCell.GridCellV7,
|
|
16
19
|
SkeletonCell: _components.GridSkeletonCell,
|
|
17
20
|
ColumnHeaderFilterIconButton: _components.GridColumnHeaderFilterIconButton,
|
|
18
21
|
ColumnMenu: _GridColumnMenu.GridColumnMenu,
|
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useGridApiInitialization = useGridApiInitialization;
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _Store = require("../../utils/Store");
|
|
8
9
|
var _useGridApiMethod = require("../utils/useGridApiMethod");
|
|
9
10
|
var _useGridApiEventHandler = require("../utils/useGridApiEventHandler");
|
|
10
11
|
var _EventManager = require("../../utils/EventManager");
|
|
@@ -43,8 +44,10 @@ const wrapPublicApi = publicApi => {
|
|
|
43
44
|
function useGridApiInitialization(inputApiRef, props) {
|
|
44
45
|
const publicApiRef = React.useRef();
|
|
45
46
|
if (!publicApiRef.current) {
|
|
47
|
+
const state = {};
|
|
46
48
|
publicApiRef.current = {
|
|
47
|
-
state
|
|
49
|
+
state,
|
|
50
|
+
store: _Store.Store.create(state),
|
|
48
51
|
instanceId: {
|
|
49
52
|
id: globalId
|
|
50
53
|
}
|
|
@@ -6,25 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.useGridStateInitialization = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
9
|
var React = _interopRequireWildcard(require("react"));
|
|
11
10
|
var _useGridApiEventHandler = require("../utils/useGridApiEventHandler");
|
|
12
11
|
var _utils = require("../utils");
|
|
13
12
|
var _utils2 = require("../../utils/utils");
|
|
14
|
-
const _excluded = ["stateId"];
|
|
15
13
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
14
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
15
|
const useGridStateInitialization = (apiRef, props) => {
|
|
18
16
|
const controlStateMapRef = React.useRef({});
|
|
19
17
|
const [, rawForceUpdate] = React.useState();
|
|
20
18
|
const registerControlState = React.useCallback(controlStateItem => {
|
|
21
|
-
|
|
22
|
-
stateId
|
|
23
|
-
} = controlStateItem,
|
|
24
|
-
others = (0, _objectWithoutPropertiesLoose2.default)(controlStateItem, _excluded);
|
|
25
|
-
controlStateMapRef.current[stateId] = (0, _extends2.default)({}, others, {
|
|
26
|
-
stateId
|
|
27
|
-
});
|
|
19
|
+
controlStateMapRef.current[controlStateItem.stateId] = controlStateItem;
|
|
28
20
|
}, []);
|
|
29
21
|
const setState = React.useCallback((state, reason) => {
|
|
30
22
|
let newState;
|
|
@@ -69,6 +61,7 @@ const useGridStateInitialization = (apiRef, props) => {
|
|
|
69
61
|
if (apiRef.current.publishEvent) {
|
|
70
62
|
apiRef.current.publishEvent('stateChange', newState);
|
|
71
63
|
}
|
|
64
|
+
apiRef.current.store.update(newState);
|
|
72
65
|
}
|
|
73
66
|
if (updatedControlStateIds.length === 1) {
|
|
74
67
|
const {
|
|
@@ -61,10 +61,7 @@ const useGridClipboard = (apiRef, props) => {
|
|
|
61
61
|
const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
|
|
62
62
|
const clipboardCopyCellDelimiter = props.clipboardCopyCellDelimiter;
|
|
63
63
|
const handleCopy = React.useCallback(event => {
|
|
64
|
-
|
|
65
|
-
// event.code === 'KeyC' is not enough as event.code assume a QWERTY keyboard layout which would
|
|
66
|
-
// be wrong with a Dvorak keyboard (as if pressing J).
|
|
67
|
-
if (String.fromCharCode(event.keyCode) !== 'C' || !isModifierKeyPressed) {
|
|
64
|
+
if (!((event.ctrlKey || event.metaKey) && event.key === 'c')) {
|
|
68
65
|
return;
|
|
69
66
|
}
|
|
70
67
|
|
|
@@ -58,12 +58,18 @@ const useGridColumnHeaders = props => {
|
|
|
58
58
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
59
59
|
const innerRef = React.useRef(null);
|
|
60
60
|
const handleInnerRef = (0, _utils.unstable_useForkRef)(innerRefProp, innerRef);
|
|
61
|
-
const [renderContext,
|
|
61
|
+
const [renderContext, setRenderContextRaw] = React.useState(null);
|
|
62
62
|
const prevRenderContext = React.useRef(renderContext);
|
|
63
63
|
const prevScrollLeft = React.useRef(0);
|
|
64
64
|
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, rootProps);
|
|
65
65
|
const totalHeaderHeight = (0, _gridColumnsUtils.getTotalHeaderHeight)(apiRef, rootProps.columnHeaderHeight);
|
|
66
66
|
const headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);
|
|
67
|
+
const setRenderContext = React.useCallback(nextRenderContext => {
|
|
68
|
+
if (renderContext && nextRenderContext && (0, _useGridVirtualScroller.areRenderContextsEqual)(renderContext, nextRenderContext)) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
setRenderContextRaw(nextRenderContext);
|
|
72
|
+
}, [renderContext]);
|
|
67
73
|
React.useEffect(() => {
|
|
68
74
|
apiRef.current.columnHeadersContainerElementRef.current.scrollLeft = 0;
|
|
69
75
|
}, [apiRef]);
|
|
@@ -138,7 +144,7 @@ const useGridColumnHeaders = props => {
|
|
|
138
144
|
if (nextRenderContext && canUpdateInnerPosition) {
|
|
139
145
|
updateInnerPosition(nextRenderContext);
|
|
140
146
|
}
|
|
141
|
-
}, [updateInnerPosition]);
|
|
147
|
+
}, [updateInnerPosition, setRenderContext]);
|
|
142
148
|
const handleColumnResizeStart = React.useCallback(params => setResizeCol(params.field), []);
|
|
143
149
|
const handleColumnResizeStop = React.useCallback(() => setResizeCol(''), []);
|
|
144
150
|
const handleColumnReorderStart = React.useCallback(params => setDragCol(params.field), []);
|
|
@@ -23,7 +23,7 @@ const _excluded = ["id", "field"],
|
|
|
23
23
|
_excluded2 = ["id", "field"];
|
|
24
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
25
25
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
26
|
-
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see http://mui.com/components/data-grid/editing/#persistence.'], 'error');
|
|
26
|
+
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see http://mui.com/components/data-grid/editing/#server-side-persistence.'], 'error');
|
|
27
27
|
const useGridCellEditing = (apiRef, props) => {
|
|
28
28
|
const [cellModesModel, setCellModesModel] = React.useState({});
|
|
29
29
|
const cellModesModelRef = React.useRef(cellModesModel);
|
|
@@ -131,7 +131,8 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
131
131
|
id,
|
|
132
132
|
field,
|
|
133
133
|
reason,
|
|
134
|
-
key
|
|
134
|
+
key,
|
|
135
|
+
colDef
|
|
135
136
|
} = params;
|
|
136
137
|
const startCellEditModeParams = {
|
|
137
138
|
id,
|
|
@@ -143,7 +144,8 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
143
144
|
// The sequence of events makes the key pressed by the end-users update the textbox directly.
|
|
144
145
|
startCellEditModeParams.deleteValue = true;
|
|
145
146
|
} else {
|
|
146
|
-
|
|
147
|
+
const initialValue = colDef.valueParser ? colDef.valueParser(key) : key;
|
|
148
|
+
startCellEditModeParams.initialValue = initialValue;
|
|
147
149
|
}
|
|
148
150
|
} else if (reason === _gridEditCellParams.GridCellEditStartReasons.deleteKeyDown) {
|
|
149
151
|
startCellEditModeParams.deleteValue = true;
|
|
@@ -20,11 +20,12 @@ var _warning = require("../../../utils/warning");
|
|
|
20
20
|
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
21
21
|
var _utils2 = require("../../../utils/utils");
|
|
22
22
|
var _gridRowParams = require("../../../models/params/gridRowParams");
|
|
23
|
+
var _colDef = require("../../../colDef");
|
|
23
24
|
const _excluded = ["id"],
|
|
24
25
|
_excluded2 = ["id"];
|
|
25
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
27
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
27
|
-
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see http://mui.com/components/data-grid/editing/#persistence.'], 'error');
|
|
28
|
+
const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, e.g. `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see http://mui.com/components/data-grid/editing/#server-side-persistence.'], 'error');
|
|
28
29
|
const useGridRowEditing = (apiRef, props) => {
|
|
29
30
|
const [rowModesModel, setRowModesModel] = React.useState({});
|
|
30
31
|
const rowModesModelRef = React.useRef(rowModesModel);
|
|
@@ -122,7 +123,13 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
122
123
|
} else if (event.key === 'Enter') {
|
|
123
124
|
reason = _gridRowParams.GridRowEditStopReasons.enterKeyDown;
|
|
124
125
|
} else if (event.key === 'Tab') {
|
|
125
|
-
const columnFields = (0, _gridColumnsSelector.gridColumnFieldsSelector)(apiRef).filter(field =>
|
|
126
|
+
const columnFields = (0, _gridColumnsSelector.gridColumnFieldsSelector)(apiRef).filter(field => {
|
|
127
|
+
const column = apiRef.current.getColumn(field);
|
|
128
|
+
if (column.type === _colDef.GRID_ACTIONS_COLUMN_TYPE) {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
return apiRef.current.isCellEditable(apiRef.current.getCellParams(params.id, field));
|
|
132
|
+
});
|
|
126
133
|
if (event.shiftKey) {
|
|
127
134
|
if (params.field === columnFields[0]) {
|
|
128
135
|
// Exit if user pressed Shift+Tab on the first field
|
|
@@ -143,8 +150,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
143
150
|
}
|
|
144
151
|
}
|
|
145
152
|
if (reason) {
|
|
146
|
-
const
|
|
147
|
-
const newParams = (0, _extends2.default)({}, rowParams, {
|
|
153
|
+
const newParams = (0, _extends2.default)({}, apiRef.current.getRowParams(params.id), {
|
|
148
154
|
reason,
|
|
149
155
|
field: params.field
|
|
150
156
|
});
|
|
@@ -186,7 +192,8 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
186
192
|
id,
|
|
187
193
|
field,
|
|
188
194
|
reason,
|
|
189
|
-
key
|
|
195
|
+
key,
|
|
196
|
+
columns
|
|
190
197
|
} = params;
|
|
191
198
|
const startRowEditModeParams = {
|
|
192
199
|
id,
|
|
@@ -198,7 +205,8 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
198
205
|
// The sequence of events makes the key pressed by the end-users update the textbox directly.
|
|
199
206
|
startRowEditModeParams.deleteValue = !!field;
|
|
200
207
|
} else {
|
|
201
|
-
|
|
208
|
+
const colDef = columns.find(col => col.field === field);
|
|
209
|
+
startRowEditModeParams.initialValue = colDef.valueParser ? colDef.valueParser(key) : key;
|
|
202
210
|
}
|
|
203
211
|
} else if (reason === _gridRowParams.GridRowEditStartReasons.deleteKeyDown) {
|
|
204
212
|
startRowEditModeParams.deleteValue = !!field;
|
|
@@ -194,21 +194,25 @@ const buildAggregatedFilterApplier = (filterModel, apiRef) => {
|
|
|
194
194
|
});
|
|
195
195
|
};
|
|
196
196
|
exports.buildAggregatedFilterApplier = buildAggregatedFilterApplier;
|
|
197
|
-
const
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
197
|
+
const isNotNull = result => result != null;
|
|
198
|
+
const filterModelItems = (cache, apiRef, items) => {
|
|
199
|
+
if (!cache.cleanedFilterItems) {
|
|
200
|
+
cache.cleanedFilterItems = items.filter(item => getFilterCallbackFromItem(item, apiRef) !== null);
|
|
201
|
+
}
|
|
202
|
+
return cache.cleanedFilterItems;
|
|
203
|
+
};
|
|
204
|
+
const passFilterLogic = (allFilterItemResults, allQuickFilterResults, filterModel, apiRef, cache) => {
|
|
205
|
+
const cleanedFilterItems = filterModelItems(cache, apiRef, filterModel.items);
|
|
206
|
+
const cleanedFilterItemResults = allFilterItemResults.filter(isNotNull);
|
|
207
|
+
const cleanedQuickFilterResults = allQuickFilterResults.filter(isNotNull);
|
|
205
208
|
|
|
206
209
|
// get result for filter items model
|
|
207
|
-
if (
|
|
210
|
+
if (cleanedFilterItemResults.length > 0) {
|
|
208
211
|
// Return true if the item pass with one of the rows
|
|
209
212
|
const filterItemPredicate = item => {
|
|
210
|
-
return
|
|
213
|
+
return cleanedFilterItemResults.some(filterItemResult => filterItemResult[item.id]);
|
|
211
214
|
};
|
|
215
|
+
const logicOperator = filterModel.logicOperator ?? (0, _gridFilterState.getDefaultGridFilterModel)().logicOperator;
|
|
212
216
|
if (logicOperator === _models.GridLogicOperator.And) {
|
|
213
217
|
const passesAllFilters = cleanedFilterItems.every(filterItemPredicate);
|
|
214
218
|
if (!passesAllFilters) {
|
|
@@ -223,11 +227,12 @@ const passFilterLogic = (allFilterItemResults, allQuickFilterResults, filterMode
|
|
|
223
227
|
}
|
|
224
228
|
|
|
225
229
|
// get result for quick filter model
|
|
226
|
-
if (
|
|
230
|
+
if (cleanedQuickFilterResults.length > 0 && filterModel.quickFilterValues != null) {
|
|
227
231
|
// Return true if the item pass with one of the rows
|
|
228
232
|
const quickFilterValuePredicate = value => {
|
|
229
|
-
return
|
|
233
|
+
return cleanedQuickFilterResults.some(quickFilterValueResult => quickFilterValueResult[value]);
|
|
230
234
|
};
|
|
235
|
+
const quickFilterLogicOperator = filterModel.quickFilterLogicOperator ?? (0, _gridFilterState.getDefaultGridFilterModel)().quickFilterLogicOperator;
|
|
231
236
|
if (quickFilterLogicOperator === _models.GridLogicOperator.And) {
|
|
232
237
|
const passesAllQuickFilterValues = filterModel.quickFilterValues.every(quickFilterValuePredicate);
|
|
233
238
|
if (!passesAllQuickFilterValues) {
|
|
@@ -265,6 +265,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
265
265
|
const tree = (0, _rows.gridRowTreeSelector)(apiRef);
|
|
266
266
|
const rowIds = tree[_rows.GRID_ROOT_GROUP_ID].children;
|
|
267
267
|
const filteredRowsLookup = {};
|
|
268
|
+
const filterCache = {};
|
|
268
269
|
for (let i = 0; i < rowIds.length; i += 1) {
|
|
269
270
|
const rowId = rowIds[i];
|
|
270
271
|
let isRowPassing;
|
|
@@ -275,7 +276,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
275
276
|
passingFilterItems,
|
|
276
277
|
passingQuickFilterValues
|
|
277
278
|
} = params.isRowMatchingFilters(rowId);
|
|
278
|
-
isRowPassing = (0, _gridFilterUtils.passFilterLogic)([passingFilterItems], [passingQuickFilterValues], params.filterModel, apiRef);
|
|
279
|
+
isRowPassing = (0, _gridFilterUtils.passFilterLogic)([passingFilterItems], [passingQuickFilterValues], params.filterModel, apiRef, filterCache);
|
|
279
280
|
}
|
|
280
281
|
filteredRowsLookup[rowId] = isRowPassing;
|
|
281
282
|
}
|
|
@@ -8,6 +8,7 @@ exports.useGridFocus = exports.focusStateInitializer = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _utils = require("@mui/utils");
|
|
11
|
+
var _gridClasses = require("../../../constants/gridClasses");
|
|
11
12
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
12
13
|
var _useGridLogger = require("../../utils/useGridLogger");
|
|
13
14
|
var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
@@ -246,7 +247,6 @@ const useGridFocus = (apiRef, props) => {
|
|
|
246
247
|
}
|
|
247
248
|
apiRef.current.setColumnHeaderFocus(field, event);
|
|
248
249
|
}, [apiRef]);
|
|
249
|
-
const focussedColumnGroup = (0, _gridFocusStateSelector.unstable_gridFocusColumnGroupHeaderSelector)(apiRef);
|
|
250
250
|
const handleColumnGroupHeaderFocus = React.useCallback(({
|
|
251
251
|
fields,
|
|
252
252
|
depth
|
|
@@ -254,13 +254,17 @@ const useGridFocus = (apiRef, props) => {
|
|
|
254
254
|
if (event.target !== event.currentTarget) {
|
|
255
255
|
return;
|
|
256
256
|
}
|
|
257
|
-
|
|
257
|
+
const focusedColumnGroup = (0, _gridFocusStateSelector.unstable_gridFocusColumnGroupHeaderSelector)(apiRef);
|
|
258
|
+
if (focusedColumnGroup !== null && focusedColumnGroup.depth === depth && fields.includes(focusedColumnGroup.field)) {
|
|
258
259
|
// This group cell has already been focused
|
|
259
260
|
return;
|
|
260
261
|
}
|
|
261
262
|
apiRef.current.setColumnGroupHeaderFocus(fields[0], depth, event);
|
|
262
|
-
}, [apiRef
|
|
263
|
-
const handleBlur = React.useCallback(() => {
|
|
263
|
+
}, [apiRef]);
|
|
264
|
+
const handleBlur = React.useCallback((_, event) => {
|
|
265
|
+
if (event.relatedTarget?.className.includes(_gridClasses.gridClasses.columnHeader)) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
264
268
|
logger.debug(`Clearing focus`);
|
|
265
269
|
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
266
270
|
focus: {
|
|
@@ -19,7 +19,6 @@ var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelTog
|
|
|
19
19
|
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
20
20
|
var _focus = require("../focus");
|
|
21
21
|
var _gridColumnGroupsSelector = require("../columnGrouping/gridColumnGroupsSelector");
|
|
22
|
-
var _useGridSelector = require("../../utils/useGridSelector");
|
|
23
22
|
var _gridHeaderFilteringSelectors = require("../headerFiltering/gridHeaderFilteringSelectors");
|
|
24
23
|
var _pipeProcessing = require("../../core/pipeProcessing");
|
|
25
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -330,12 +329,12 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
330
329
|
event.preventDefault();
|
|
331
330
|
}
|
|
332
331
|
}, [apiRef, currentPageRows.length, goToHeaderFilter, theme.direction, goToHeader, goToCell, getRowIdFromIndex]);
|
|
333
|
-
const focusedColumnGroup = (0, _useGridSelector.useGridSelector)(apiRef, _focus.unstable_gridFocusColumnGroupHeaderSelector);
|
|
334
332
|
const handleColumnGroupHeaderKeyDown = React.useCallback((params, event) => {
|
|
335
333
|
const dimensions = apiRef.current.getRootDimensions();
|
|
336
334
|
if (!dimensions) {
|
|
337
335
|
return;
|
|
338
336
|
}
|
|
337
|
+
const focusedColumnGroup = (0, _focus.unstable_gridFocusColumnGroupHeaderSelector)(apiRef);
|
|
339
338
|
if (focusedColumnGroup === null) {
|
|
340
339
|
return;
|
|
341
340
|
}
|
|
@@ -419,7 +418,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
|
|
|
419
418
|
if (shouldPreventDefault) {
|
|
420
419
|
event.preventDefault();
|
|
421
420
|
}
|
|
422
|
-
}, [apiRef,
|
|
421
|
+
}, [apiRef, currentPageRows.length, goToHeader, goToGroupHeader, goToCell, getRowIdFromIndex]);
|
|
423
422
|
const handleCellKeyDown = React.useCallback((params, event) => {
|
|
424
423
|
// Ignore portal
|
|
425
424
|
if (!event.currentTarget.contains(event.target)) {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.MissingRowIdError = void 0;
|
|
6
7
|
exports.useGridParamsApi = useGridParamsApi;
|
|
7
8
|
var React = _interopRequireWildcard(require("react"));
|
|
8
9
|
var _domUtils = require("../../../utils/domUtils");
|
|
@@ -10,11 +11,7 @@ var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
|
10
11
|
var _gridFocusStateSelector = require("../focus/gridFocusStateSelector");
|
|
11
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
-
|
|
14
|
-
function warnMissingColumn(field) {
|
|
15
|
-
console.warn([`MUI: You are calling getValue('${field}') but the column \`${field}\` is not defined.`, `Instead, you can access the data from \`params.row.${field}\`.`].join('\n'));
|
|
16
|
-
warnedOnceMissingColumn = true;
|
|
17
|
-
}
|
|
14
|
+
class MissingRowIdError extends Error {}
|
|
18
15
|
|
|
19
16
|
/**
|
|
20
17
|
* @requires useGridColumns (method)
|
|
@@ -24,6 +21,7 @@ function warnMissingColumn(field) {
|
|
|
24
21
|
* TODO: Impossible priority - useGridEditing also needs to be after useGridParamsApi
|
|
25
22
|
* TODO: Impossible priority - useGridFocus also needs to be after useGridParamsApi
|
|
26
23
|
*/
|
|
24
|
+
exports.MissingRowIdError = MissingRowIdError;
|
|
27
25
|
function useGridParamsApi(apiRef) {
|
|
28
26
|
const getColumnHeaderParams = React.useCallback(field => ({
|
|
29
27
|
field,
|
|
@@ -32,7 +30,7 @@ function useGridParamsApi(apiRef) {
|
|
|
32
30
|
const getRowParams = React.useCallback(id => {
|
|
33
31
|
const row = apiRef.current.getRow(id);
|
|
34
32
|
if (!row) {
|
|
35
|
-
throw new
|
|
33
|
+
throw new MissingRowIdError(`No row with id #${id} found`);
|
|
36
34
|
}
|
|
37
35
|
const params = {
|
|
38
36
|
id,
|
|
@@ -45,7 +43,7 @@ function useGridParamsApi(apiRef) {
|
|
|
45
43
|
const row = apiRef.current.getRow(id);
|
|
46
44
|
const rowNode = apiRef.current.getRowNode(id);
|
|
47
45
|
if (!row || !rowNode) {
|
|
48
|
-
throw new
|
|
46
|
+
throw new MissingRowIdError(`No row with id #${id} found`);
|
|
49
47
|
}
|
|
50
48
|
const cellFocus = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
|
|
51
49
|
const cellTabIndex = (0, _gridFocusStateSelector.gridTabIndexCellSelector)(apiRef);
|
|
@@ -69,7 +67,7 @@ function useGridParamsApi(apiRef) {
|
|
|
69
67
|
const row = apiRef.current.getRow(id);
|
|
70
68
|
const rowNode = apiRef.current.getRowNode(id);
|
|
71
69
|
if (!row || !rowNode) {
|
|
72
|
-
throw new
|
|
70
|
+
throw new MissingRowIdError(`No row with id #${id} found`);
|
|
73
71
|
}
|
|
74
72
|
const cellFocus = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
|
|
75
73
|
const cellTabIndex = (0, _gridFocusStateSelector.gridTabIndexCellSelector)(apiRef);
|
|
@@ -83,7 +81,8 @@ function useGridParamsApi(apiRef) {
|
|
|
83
81
|
hasFocus: cellFocus !== null && cellFocus.field === field && cellFocus.id === id,
|
|
84
82
|
tabIndex: cellTabIndex && cellTabIndex.field === field && cellTabIndex.id === id ? 0 : -1,
|
|
85
83
|
value,
|
|
86
|
-
formattedValue: value
|
|
84
|
+
formattedValue: value,
|
|
85
|
+
isEditable: false
|
|
87
86
|
};
|
|
88
87
|
if (colDef && colDef.valueFormatter) {
|
|
89
88
|
params.formattedValue = colDef.valueFormatter({
|
|
@@ -98,15 +97,10 @@ function useGridParamsApi(apiRef) {
|
|
|
98
97
|
}, [apiRef]);
|
|
99
98
|
const getCellValue = React.useCallback((id, field) => {
|
|
100
99
|
const colDef = apiRef.current.getColumn(field);
|
|
101
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
102
|
-
if (!colDef && !warnedOnceMissingColumn) {
|
|
103
|
-
warnMissingColumn(field);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
100
|
if (!colDef || !colDef.valueGetter) {
|
|
107
101
|
const rowModel = apiRef.current.getRow(id);
|
|
108
102
|
if (!rowModel) {
|
|
109
|
-
throw new
|
|
103
|
+
throw new MissingRowIdError(`No row with id #${id} found`);
|
|
110
104
|
}
|
|
111
105
|
return rowModel[field];
|
|
112
106
|
}
|