@mui/x-data-grid-pro 6.3.1 → 6.5.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 +113 -0
- package/DataGridPro/DataGridPro.js +25 -1
- package/DataGridPro/useDataGridProComponent.js +5 -3
- package/DataGridPro/useDataGridProProps.js +7 -13
- package/components/GridColumnHeaders.js +15 -1
- package/components/GridDetailPanel.js +1 -1
- package/components/headerFiltering/GridHeaderFilterAdornment.d.ts +14 -0
- package/components/headerFiltering/GridHeaderFilterAdornment.js +99 -0
- package/components/headerFiltering/GridHeaderFilterCell.d.ts +20 -0
- package/components/headerFiltering/GridHeaderFilterCell.js +224 -0
- package/components/headerFiltering/GridHeaderFilterClearButton.d.ts +6 -0
- package/components/headerFiltering/GridHeaderFilterClearButton.js +25 -0
- package/components/headerFiltering/GridHeaderFilterMenu.d.ts +14 -0
- package/components/headerFiltering/GridHeaderFilterMenu.js +69 -0
- package/components/headerFiltering/constants.d.ts +3 -0
- package/components/headerFiltering/constants.js +30 -0
- package/components/headerFiltering/index.d.ts +2 -0
- package/components/headerFiltering/index.js +2 -0
- package/components/index.d.ts +1 -0
- package/components/index.js +2 -1
- package/constants/dataGridProDefaultSlotsComponents.js +5 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +21 -0
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +111 -0
- package/hooks/features/columnResize/useGridColumnResize.js +12 -1
- package/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +1 -0
- package/hooks/features/treeData/useGridTreeDataPreProcessors.js +1 -0
- package/index.js +1 -1
- package/internals/index.d.ts +1 -0
- package/internals/index.js +4 -0
- package/legacy/DataGridPro/DataGridPro.js +25 -1
- package/legacy/DataGridPro/useDataGridProComponent.js +5 -3
- package/legacy/DataGridPro/useDataGridProProps.js +10 -9
- package/legacy/components/GridColumnHeaders.js +15 -1
- package/legacy/components/GridDetailPanel.js +1 -1
- package/legacy/components/headerFiltering/GridHeaderFilterAdornment.js +97 -0
- package/legacy/components/headerFiltering/GridHeaderFilterCell.js +230 -0
- package/legacy/components/headerFiltering/GridHeaderFilterClearButton.js +24 -0
- package/legacy/components/headerFiltering/GridHeaderFilterMenu.js +68 -0
- package/legacy/components/headerFiltering/constants.js +30 -0
- package/legacy/components/headerFiltering/index.js +2 -0
- package/legacy/components/index.js +2 -1
- package/legacy/constants/dataGridProDefaultSlotsComponents.js +5 -1
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +120 -0
- package/legacy/hooks/features/columnResize/useGridColumnResize.js +12 -1
- package/legacy/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +1 -0
- package/legacy/hooks/features/treeData/useGridTreeDataPreProcessors.js +1 -0
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +4 -0
- package/legacy/material/icons.js +4 -1
- package/legacy/material/index.js +3 -2
- package/legacy/models/gridProSlotProps.js +1 -0
- package/legacy/utils/releaseInfo.js +1 -1
- package/legacy/utils/tree/createRowTree.js +1 -0
- package/legacy/utils/tree/insertDataRowInTree.js +4 -0
- package/legacy/utils/tree/removeDataRowFromTree.js +1 -0
- package/legacy/utils/tree/updateRowTree.js +2 -0
- package/legacy/utils/tree/utils.js +20 -12
- package/material/icons.d.ts +3 -0
- package/material/icons.js +4 -1
- package/material/index.d.ts +1 -0
- package/material/index.js +3 -2
- package/models/dataGridProProps.d.ts +16 -1
- package/models/gridProIconSlotsComponent.d.ts +5 -0
- package/models/gridProSlotProps.d.ts +9 -0
- package/models/gridProSlotProps.js +1 -0
- package/models/gridProSlotsComponent.d.ts +13 -2
- package/modern/DataGridPro/DataGridPro.js +25 -1
- package/modern/DataGridPro/useDataGridProComponent.js +5 -3
- package/modern/DataGridPro/useDataGridProProps.js +7 -13
- package/modern/components/GridColumnHeaders.js +15 -1
- package/modern/components/GridDetailPanel.js +1 -1
- package/modern/components/headerFiltering/GridHeaderFilterAdornment.js +98 -0
- package/modern/components/headerFiltering/GridHeaderFilterCell.js +222 -0
- package/modern/components/headerFiltering/GridHeaderFilterClearButton.js +24 -0
- package/modern/components/headerFiltering/GridHeaderFilterMenu.js +68 -0
- package/modern/components/headerFiltering/constants.js +30 -0
- package/modern/components/headerFiltering/index.js +2 -0
- package/modern/components/index.js +2 -1
- package/modern/constants/dataGridProDefaultSlotsComponents.js +5 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +110 -0
- package/modern/hooks/features/columnResize/useGridColumnResize.js +11 -0
- package/modern/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +1 -0
- package/modern/hooks/features/treeData/useGridTreeDataPreProcessors.js +1 -0
- package/modern/index.js +1 -1
- package/modern/internals/index.js +4 -0
- package/modern/material/icons.js +4 -1
- package/modern/material/index.js +3 -2
- package/modern/models/gridProSlotProps.js +1 -0
- package/modern/utils/releaseInfo.js +1 -1
- package/modern/utils/tree/createRowTree.js +1 -0
- package/modern/utils/tree/insertDataRowInTree.js +4 -0
- package/modern/utils/tree/removeDataRowFromTree.js +1 -0
- package/modern/utils/tree/updateRowTree.js +2 -0
- package/modern/utils/tree/utils.js +19 -13
- package/node/DataGridPro/DataGridPro.js +25 -1
- package/node/DataGridPro/useDataGridProComponent.js +4 -2
- package/node/DataGridPro/useDataGridProProps.js +6 -12
- package/node/components/GridColumnHeaders.js +15 -1
- package/node/components/GridDetailPanel.js +2 -2
- package/node/components/headerFiltering/GridHeaderFilterAdornment.js +105 -0
- package/node/components/headerFiltering/GridHeaderFilterCell.js +230 -0
- package/node/components/headerFiltering/GridHeaderFilterClearButton.js +32 -0
- package/node/components/headerFiltering/GridHeaderFilterMenu.js +75 -0
- package/node/components/headerFiltering/constants.js +37 -0
- package/node/components/headerFiltering/index.js +27 -0
- package/node/components/index.js +11 -0
- package/node/constants/dataGridProDefaultSlotsComponents.js +5 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +120 -0
- package/node/hooks/features/columnResize/useGridColumnResize.js +11 -0
- package/node/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +1 -0
- package/node/hooks/features/treeData/useGridTreeDataPreProcessors.js +1 -0
- package/node/index.js +1 -1
- package/node/internals/index.js +8 -0
- package/node/material/icons.js +6 -2
- package/node/material/index.js +2 -1
- package/node/models/gridProSlotProps.js +5 -0
- package/node/utils/releaseInfo.js +1 -1
- package/node/utils/tree/createRowTree.js +1 -0
- package/node/utils/tree/insertDataRowInTree.js +4 -0
- package/node/utils/tree/removeDataRowFromTree.js +1 -0
- package/node/utils/tree/updateRowTree.js +2 -0
- package/node/utils/tree/utils.js +19 -13
- package/package.json +2 -2
- package/typeOverloads/modules.d.ts +13 -1
- package/utils/releaseInfo.js +1 -1
- package/utils/tree/createRowTree.d.ts +2 -0
- package/utils/tree/createRowTree.js +1 -0
- package/utils/tree/insertDataRowInTree.d.ts +5 -1
- package/utils/tree/insertDataRowInTree.js +4 -0
- package/utils/tree/removeDataRowFromTree.js +1 -0
- package/utils/tree/updateRowTree.js +2 -0
- package/utils/tree/utils.d.ts +4 -2
- package/utils/tree/utils.js +19 -13
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.GridHeaderFilterMenu = GridHeaderFilterMenu;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
|
|
11
|
+
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
12
|
+
var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
|
|
13
|
+
var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
|
|
14
|
+
var _utils = require("@mui/utils");
|
|
15
|
+
var _xDataGrid = require("@mui/x-data-grid");
|
|
16
|
+
var _constants = require("./constants");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
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
|
+
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
|
+
function GridHeaderFilterMenu({
|
|
21
|
+
open,
|
|
22
|
+
field,
|
|
23
|
+
targetRef,
|
|
24
|
+
applyFilterChanges,
|
|
25
|
+
operators,
|
|
26
|
+
item,
|
|
27
|
+
id,
|
|
28
|
+
labelledBy
|
|
29
|
+
}) {
|
|
30
|
+
const apiRef = (0, _xDataGrid.useGridApiContext)();
|
|
31
|
+
const hideMenu = React.useCallback(() => {
|
|
32
|
+
apiRef.current.hideHeaderFilterMenu();
|
|
33
|
+
}, [apiRef]);
|
|
34
|
+
const handleListKeyDown = React.useCallback(event => {
|
|
35
|
+
if (event.key === 'Tab') {
|
|
36
|
+
event.preventDefault();
|
|
37
|
+
}
|
|
38
|
+
if (event.key === 'Escape' || event.key === 'Tab') {
|
|
39
|
+
hideMenu();
|
|
40
|
+
}
|
|
41
|
+
}, [hideMenu]);
|
|
42
|
+
if (!targetRef.current) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_xDataGrid.GridMenu, {
|
|
46
|
+
placement: "bottom-start",
|
|
47
|
+
open: open,
|
|
48
|
+
target: targetRef.current,
|
|
49
|
+
onClickAway: hideMenu,
|
|
50
|
+
onExited: hideMenu,
|
|
51
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuList.default, {
|
|
52
|
+
"aria-labelledby": labelledBy,
|
|
53
|
+
id: id,
|
|
54
|
+
onKeyDown: handleListKeyDown,
|
|
55
|
+
children: operators.map((op, i) => {
|
|
56
|
+
const label = op?.headerLabel ?? apiRef.current.getLocaleText(`headerFilterOperator${(0, _utils.unstable_capitalize)(op.value)}`);
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_MenuItem.default, {
|
|
58
|
+
onClick: () => {
|
|
59
|
+
applyFilterChanges((0, _extends2.default)({}, item, {
|
|
60
|
+
operator: op.value
|
|
61
|
+
}));
|
|
62
|
+
hideMenu();
|
|
63
|
+
},
|
|
64
|
+
autoFocus: i === 0 ? open : false,
|
|
65
|
+
selected: op.value === item.operator,
|
|
66
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
|
|
67
|
+
children: _constants.OPERATOR_SYMBOL_MAPPING[op.value]
|
|
68
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
|
|
69
|
+
children: label
|
|
70
|
+
})]
|
|
71
|
+
}, `${field}-${op.value}`);
|
|
72
|
+
})
|
|
73
|
+
})
|
|
74
|
+
});
|
|
75
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.OPERATOR_SYMBOL_MAPPING = void 0;
|
|
7
|
+
const OPERATOR_SYMBOL_MAPPING = {
|
|
8
|
+
contains: '∋',
|
|
9
|
+
equals: '=',
|
|
10
|
+
'=': '=',
|
|
11
|
+
'!=': '≠',
|
|
12
|
+
'>': '>',
|
|
13
|
+
'>=': '≥',
|
|
14
|
+
'<': '<',
|
|
15
|
+
'<=': '≤',
|
|
16
|
+
startsWith: '⊃',
|
|
17
|
+
endsWith: '⊂',
|
|
18
|
+
is: '=',
|
|
19
|
+
not: '≠',
|
|
20
|
+
isNot: '≠',
|
|
21
|
+
isEmpty: '∅',
|
|
22
|
+
isNotEmpty: '∉',
|
|
23
|
+
isIn: '∈',
|
|
24
|
+
isNotIn: '∉',
|
|
25
|
+
isLessThan: '<',
|
|
26
|
+
isLessThanOrEqual: '≤',
|
|
27
|
+
isGreaterThan: '>',
|
|
28
|
+
isGreaterThanOrEqual: '≥',
|
|
29
|
+
isBetween: '∈',
|
|
30
|
+
isNotBetween: '∉',
|
|
31
|
+
isAnyOf: '∈',
|
|
32
|
+
after: '>',
|
|
33
|
+
onOrAfter: '≥',
|
|
34
|
+
before: '<',
|
|
35
|
+
onOrBefore: '≤'
|
|
36
|
+
};
|
|
37
|
+
exports.OPERATOR_SYMBOL_MAPPING = OPERATOR_SYMBOL_MAPPING;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _GridHeaderFilterAdornment = require("./GridHeaderFilterAdornment");
|
|
7
|
+
Object.keys(_GridHeaderFilterAdornment).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _GridHeaderFilterAdornment[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _GridHeaderFilterAdornment[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _GridHeaderFilterCell = require("./GridHeaderFilterCell");
|
|
18
|
+
Object.keys(_GridHeaderFilterCell).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _GridHeaderFilterCell[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _GridHeaderFilterCell[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
package/node/components/index.js
CHANGED
|
@@ -46,4 +46,15 @@ Object.keys(_icons).forEach(function (key) {
|
|
|
46
46
|
return _icons[key];
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
|
+
});
|
|
50
|
+
var _headerFiltering = require("./headerFiltering");
|
|
51
|
+
Object.keys(_headerFiltering).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _headerFiltering[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _headerFiltering[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
49
60
|
});
|
|
@@ -9,9 +9,13 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var _internals = require("@mui/x-data-grid/internals");
|
|
10
10
|
var _GridProColumnMenu = require("../components/GridProColumnMenu");
|
|
11
11
|
var _GridColumnHeaders = require("../components/GridColumnHeaders");
|
|
12
|
+
var _GridHeaderFilterMenu = require("../components/headerFiltering/GridHeaderFilterMenu");
|
|
13
|
+
var _GridHeaderFilterCell = require("../components/headerFiltering/GridHeaderFilterCell");
|
|
12
14
|
var _material = _interopRequireDefault(require("../material"));
|
|
13
15
|
const DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS = (0, _extends2.default)({}, _internals.DATA_GRID_DEFAULT_SLOTS_COMPONENTS, _material.default, {
|
|
14
16
|
ColumnMenu: _GridProColumnMenu.GridProColumnMenu,
|
|
15
|
-
ColumnHeaders: _GridColumnHeaders.GridColumnHeaders
|
|
17
|
+
ColumnHeaders: _GridColumnHeaders.GridColumnHeaders,
|
|
18
|
+
HeaderFilterCell: _GridHeaderFilterCell.GridHeaderFilterCell,
|
|
19
|
+
HeaderFilterMenu: _GridHeaderFilterMenu.GridHeaderFilterMenu
|
|
16
20
|
});
|
|
17
21
|
exports.DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS = DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useGridColumnHeaders = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _xDataGrid = require("@mui/x-data-grid");
|
|
12
|
+
var _system = require("@mui/system");
|
|
13
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
14
|
+
var _useGridRootProps = require("../../utils/useGridRootProps");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
const _excluded = ["getColumnsToRender", "getRootProps"];
|
|
17
|
+
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); }
|
|
18
|
+
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; }
|
|
19
|
+
const GridHeaderFilterRow = (0, _system.styled)('div', {
|
|
20
|
+
name: 'MuiDataGrid',
|
|
21
|
+
slot: 'HeaderFilterRow',
|
|
22
|
+
overridesResolver: (props, styles) => styles.headerFilterRow
|
|
23
|
+
})(() => ({
|
|
24
|
+
display: 'flex',
|
|
25
|
+
borderTop: '1px solid rgba(224, 224, 224, 1)'
|
|
26
|
+
}));
|
|
27
|
+
const useGridColumnHeaders = props => {
|
|
28
|
+
const apiRef = (0, _internals.useGridPrivateApiContext)();
|
|
29
|
+
const {
|
|
30
|
+
headerGroupingMaxDepth,
|
|
31
|
+
hasOtherElementInTabSequence
|
|
32
|
+
} = props;
|
|
33
|
+
const columnHeaderFilterTabIndexState = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.unstable_gridTabIndexColumnHeaderFilterSelector);
|
|
34
|
+
const _useGridColumnHeaders = (0, _internals.useGridColumnHeaders)((0, _extends2.default)({}, props, {
|
|
35
|
+
hasOtherElementInTabSequence: hasOtherElementInTabSequence || columnHeaderFilterTabIndexState !== null
|
|
36
|
+
})),
|
|
37
|
+
{
|
|
38
|
+
getColumnsToRender,
|
|
39
|
+
getRootProps
|
|
40
|
+
} = _useGridColumnHeaders,
|
|
41
|
+
otherProps = (0, _objectWithoutPropertiesLoose2.default)(_useGridColumnHeaders, _excluded);
|
|
42
|
+
const headerFiltersRef = React.useRef(null);
|
|
43
|
+
apiRef.current.register('private', {
|
|
44
|
+
headerFiltersElementRef: headerFiltersRef
|
|
45
|
+
});
|
|
46
|
+
const headerFilterMenuRef = React.useRef(null);
|
|
47
|
+
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
48
|
+
const disableHeaderFiltering = !rootProps.unstable_headerFilters;
|
|
49
|
+
const headerHeight = Math.floor(rootProps.columnHeaderHeight * props.densityFactor);
|
|
50
|
+
const filterModel = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.gridFilterModelSelector);
|
|
51
|
+
const totalHeaderHeight = (0, _internals.getTotalHeaderHeight)(apiRef, rootProps.columnHeaderHeight) + (disableHeaderFiltering ? 0 : headerHeight);
|
|
52
|
+
const columnHeaderFilterFocus = (0, _xDataGrid.useGridSelector)(apiRef, _xDataGrid.unstable_gridFocusColumnHeaderFilterSelector);
|
|
53
|
+
const getColumnFilters = (params, other = {}) => {
|
|
54
|
+
if (disableHeaderFiltering) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const columnsToRender = getColumnsToRender(params);
|
|
58
|
+
if (columnsToRender == null) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const {
|
|
62
|
+
renderedColumns,
|
|
63
|
+
firstColumnToRender
|
|
64
|
+
} = columnsToRender;
|
|
65
|
+
const filters = [];
|
|
66
|
+
for (let i = 0; i < renderedColumns.length; i += 1) {
|
|
67
|
+
const colDef = renderedColumns[i];
|
|
68
|
+
const columnIndex = firstColumnToRender + i;
|
|
69
|
+
const hasFocus = columnHeaderFilterFocus?.field === colDef.field;
|
|
70
|
+
const isFirstColumn = columnIndex === 0;
|
|
71
|
+
const tabIndexField = columnHeaderFilterTabIndexState?.field;
|
|
72
|
+
const tabIndex = tabIndexField === colDef.field || isFirstColumn && !props.hasOtherElementInTabSequence ? 0 : -1;
|
|
73
|
+
let headerFilterComponent;
|
|
74
|
+
if (colDef.renderHeaderFilter) {
|
|
75
|
+
headerFilterComponent = colDef.renderHeaderFilter(apiRef.current.getColumnHeaderParams(colDef.field));
|
|
76
|
+
}
|
|
77
|
+
const headerClassName = typeof colDef.headerClassName === 'function' ? colDef.headerClassName({
|
|
78
|
+
field: colDef.field,
|
|
79
|
+
colDef
|
|
80
|
+
}) : colDef.headerClassName;
|
|
81
|
+
|
|
82
|
+
// TODO: Support for `isAnyOf` operator
|
|
83
|
+
const filterOperators = colDef.filterOperators?.filter(operator => operator.value !== 'isAnyOf') ?? [];
|
|
84
|
+
const item = filterModel?.items.find(it => it.field === colDef.field && it.operator !== 'isAnyOf') ?? (0, _internals.getGridFilter)(colDef);
|
|
85
|
+
filters.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.headerFilterCell, (0, _extends2.default)({
|
|
86
|
+
colIndex: columnIndex,
|
|
87
|
+
height: headerHeight,
|
|
88
|
+
width: colDef.computedWidth,
|
|
89
|
+
colDef: colDef,
|
|
90
|
+
hasFocus: hasFocus,
|
|
91
|
+
tabIndex: tabIndex,
|
|
92
|
+
headerFilterMenuRef: headerFilterMenuRef,
|
|
93
|
+
headerFilterComponent: headerFilterComponent,
|
|
94
|
+
headerClassName: headerClassName,
|
|
95
|
+
filterOperators: filterOperators,
|
|
96
|
+
"data-field": colDef.field,
|
|
97
|
+
item: item
|
|
98
|
+
}, rootProps.slotProps?.headerFilterCell, other), `${colDef.field}-filter`));
|
|
99
|
+
}
|
|
100
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridHeaderFilterRow, {
|
|
101
|
+
ref: headerFiltersRef,
|
|
102
|
+
ownerState: rootProps,
|
|
103
|
+
role: "row",
|
|
104
|
+
"aria-rowindex": headerGroupingMaxDepth + 2,
|
|
105
|
+
children: filters
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
const rootStyle = {
|
|
109
|
+
minHeight: totalHeaderHeight,
|
|
110
|
+
maxHeight: totalHeaderHeight,
|
|
111
|
+
lineHeight: `${headerHeight}px`
|
|
112
|
+
};
|
|
113
|
+
return (0, _extends2.default)({}, otherProps, {
|
|
114
|
+
getColumnFilters,
|
|
115
|
+
getRootProps: disableHeaderFiltering ? getRootProps : (other = {}) => (0, _extends2.default)({
|
|
116
|
+
style: rootStyle
|
|
117
|
+
}, other)
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
exports.useGridColumnHeaders = useGridColumnHeaders;
|
|
@@ -97,6 +97,7 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
97
97
|
const logger = (0, _xDataGrid.useGridLogger)(apiRef, 'useGridColumnResize');
|
|
98
98
|
const colDefRef = React.useRef();
|
|
99
99
|
const colElementRef = React.useRef();
|
|
100
|
+
const headerFilterElementRef = React.useRef();
|
|
100
101
|
const colGroupingElementRef = React.useRef();
|
|
101
102
|
const colCellElementsRef = React.useRef();
|
|
102
103
|
const theme = (0, _styles.useTheme)();
|
|
@@ -118,6 +119,12 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
118
119
|
colElementRef.current.style.width = `${newWidth}px`;
|
|
119
120
|
colElementRef.current.style.minWidth = `${newWidth}px`;
|
|
120
121
|
colElementRef.current.style.maxWidth = `${newWidth}px`;
|
|
122
|
+
const headerFilterElement = headerFilterElementRef.current;
|
|
123
|
+
if (headerFilterElement) {
|
|
124
|
+
headerFilterElement.style.width = `${newWidth}px`;
|
|
125
|
+
headerFilterElement.style.minWidth = `${newWidth}px`;
|
|
126
|
+
headerFilterElement.style.maxWidth = `${newWidth}px`;
|
|
127
|
+
}
|
|
121
128
|
[...colCellElementsRef.current, ...colGroupingElementRef.current].forEach(element => {
|
|
122
129
|
const div = element;
|
|
123
130
|
let finalWidth;
|
|
@@ -187,6 +194,10 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
187
194
|
}, event);
|
|
188
195
|
colDefRef.current = colDef;
|
|
189
196
|
colElementRef.current = apiRef.current.columnHeadersContainerElementRef?.current.querySelector(`[data-field="${colDef.field}"]`);
|
|
197
|
+
const headerFilterRowElement = apiRef.current.headerFiltersElementRef?.current;
|
|
198
|
+
if (headerFilterRowElement) {
|
|
199
|
+
headerFilterElementRef.current = headerFilterRowElement.querySelector(`[data-field="${colDef.field}"]`);
|
|
200
|
+
}
|
|
190
201
|
colGroupingElementRef.current = (0, _domUtils.findGroupHeaderElementsFromField)(apiRef.current.columnHeadersContainerElementRef?.current, colDef.field);
|
|
191
202
|
colCellElementsRef.current = (0, _domUtils.findGridCellElementsFromCol)(colElementRef.current, apiRef.current);
|
|
192
203
|
const doc = (0, _utils.unstable_ownerDocument)(apiRef.current.rootElementRef.current);
|
|
@@ -86,6 +86,7 @@ const useGridTreeDataPreProcessors = (privateApiRef, props) => {
|
|
|
86
86
|
};
|
|
87
87
|
if (params.updates.type === 'full') {
|
|
88
88
|
return (0, _createRowTree.createRowTree)({
|
|
89
|
+
previousTree: params.previousTree,
|
|
89
90
|
nodes: params.updates.rows.map(getRowTreeBuilderNode),
|
|
90
91
|
defaultGroupingExpansionDepth: props.defaultGroupingExpansionDepth,
|
|
91
92
|
isGroupExpandedByDefault: props.isGroupExpandedByDefault,
|
package/node/index.js
CHANGED
package/node/internals/index.js
CHANGED
|
@@ -7,6 +7,7 @@ var _exportNames = {
|
|
|
7
7
|
DataGridProVirtualScroller: true,
|
|
8
8
|
GridColumnHeaders: true,
|
|
9
9
|
DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS: true,
|
|
10
|
+
useGridColumnHeaders: true,
|
|
10
11
|
useGridColumnResize: true,
|
|
11
12
|
columnResizeStateInitializer: true,
|
|
12
13
|
useGridColumnPinning: true,
|
|
@@ -125,6 +126,12 @@ Object.defineProperty(exports, "updateRowTree", {
|
|
|
125
126
|
return _updateRowTree.updateRowTree;
|
|
126
127
|
}
|
|
127
128
|
});
|
|
129
|
+
Object.defineProperty(exports, "useGridColumnHeaders", {
|
|
130
|
+
enumerable: true,
|
|
131
|
+
get: function () {
|
|
132
|
+
return _useGridColumnHeaders.useGridColumnHeaders;
|
|
133
|
+
}
|
|
134
|
+
});
|
|
128
135
|
Object.defineProperty(exports, "useGridColumnPinning", {
|
|
129
136
|
enumerable: true,
|
|
130
137
|
get: function () {
|
|
@@ -230,6 +237,7 @@ Object.keys(_internals).forEach(function (key) {
|
|
|
230
237
|
var _DataGridProVirtualScroller = require("../components/DataGridProVirtualScroller");
|
|
231
238
|
var _GridColumnHeaders = require("../components/GridColumnHeaders");
|
|
232
239
|
var _dataGridProDefaultSlotsComponents = require("../constants/dataGridProDefaultSlotsComponents");
|
|
240
|
+
var _useGridColumnHeaders = require("../hooks/features/columnHeaders/useGridColumnHeaders");
|
|
233
241
|
var _useGridColumnResize = require("../hooks/features/columnResize/useGridColumnResize");
|
|
234
242
|
var _useGridColumnPinning = require("../hooks/features/columnPinning/useGridColumnPinning");
|
|
235
243
|
var _useGridColumnPinningPreProcessors = require("../hooks/features/columnPinning/useGridColumnPinningPreProcessors");
|
package/node/material/icons.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.GridPushPinRightIcon = exports.GridPushPinLeftIcon = void 0;
|
|
6
|
+
exports.GridPushPinRightIcon = exports.GridPushPinLeftIcon = exports.GridHighlightOffIcon = void 0;
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _utils = require("@mui/material/utils");
|
|
9
9
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -24,4 +24,8 @@ const GridPushPinLeftIcon = (0, _utils.createSvgIcon)( /*#__PURE__*/(0, _jsxRunt
|
|
|
24
24
|
fillRule: "evenodd"
|
|
25
25
|
})
|
|
26
26
|
}), 'PushPinLeft');
|
|
27
|
-
exports.GridPushPinLeftIcon = GridPushPinLeftIcon;
|
|
27
|
+
exports.GridPushPinLeftIcon = GridPushPinLeftIcon;
|
|
28
|
+
const GridHighlightOffIcon = (0, _utils.createSvgIcon)( /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
|
|
29
|
+
d: "M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"
|
|
30
|
+
}), 'HighlightOff');
|
|
31
|
+
exports.GridHighlightOffIcon = GridHighlightOffIcon;
|
package/node/material/index.js
CHANGED
|
@@ -9,7 +9,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
9
9
|
var _icons = require("./icons");
|
|
10
10
|
const iconSlots = {
|
|
11
11
|
ColumnMenuPinRightIcon: _icons.GridPushPinRightIcon,
|
|
12
|
-
ColumnMenuPinLeftIcon: _icons.GridPushPinLeftIcon
|
|
12
|
+
ColumnMenuPinLeftIcon: _icons.GridPushPinLeftIcon,
|
|
13
|
+
HeaderFilterClearIcon: _icons.GridHighlightOffIcon
|
|
13
14
|
};
|
|
14
15
|
const materialSlots = (0, _extends2.default)({}, iconSlots);
|
|
15
16
|
var _default = materialSlots;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.getReleaseInfo = void 0;
|
|
7
7
|
var _utils = require("@mui/utils");
|
|
8
8
|
const getReleaseInfo = () => {
|
|
9
|
-
const releaseInfo = "
|
|
9
|
+
const releaseInfo = "MTY4NDQ0MzYwMDAwMA==";
|
|
10
10
|
if (process.env.NODE_ENV !== 'production') {
|
|
11
11
|
// A simple hack to set the value in the test environment (has no build step).
|
|
12
12
|
// eslint-disable-next-line no-useless-concat
|
|
@@ -16,6 +16,7 @@ const insertDataRowInTree = ({
|
|
|
16
16
|
id,
|
|
17
17
|
path,
|
|
18
18
|
updatedGroupsManager,
|
|
19
|
+
previousTree,
|
|
19
20
|
tree,
|
|
20
21
|
treeDepths,
|
|
21
22
|
onDuplicatePath,
|
|
@@ -48,6 +49,7 @@ const insertDataRowInTree = ({
|
|
|
48
49
|
updatedGroupsManager?.addAction(parentNodeId, 'insertChildren');
|
|
49
50
|
(0, _utils.insertNodeInTree)({
|
|
50
51
|
node: leafNode,
|
|
52
|
+
previousTree,
|
|
51
53
|
tree,
|
|
52
54
|
treeDepths
|
|
53
55
|
});
|
|
@@ -61,6 +63,7 @@ const insertDataRowInTree = ({
|
|
|
61
63
|
updatedGroupsManager?.addAction(parentNodeId, 'insertChildren');
|
|
62
64
|
(0, _utils.updateGroupNodeIdAndAutoGenerated)({
|
|
63
65
|
tree,
|
|
66
|
+
previousTree,
|
|
64
67
|
treeDepths,
|
|
65
68
|
node: existingNodeWithPartialPath,
|
|
66
69
|
updatedNode: {
|
|
@@ -100,6 +103,7 @@ const insertDataRowInTree = ({
|
|
|
100
103
|
defaultGroupingExpansionDepth,
|
|
101
104
|
isGroupExpandedByDefault
|
|
102
105
|
}),
|
|
106
|
+
previousTree,
|
|
103
107
|
tree,
|
|
104
108
|
treeDepths
|
|
105
109
|
});
|
|
@@ -54,6 +54,7 @@ const replaceDataGroupWithAutoGeneratedGroup = ({
|
|
|
54
54
|
updatedGroupsManager?.addAction(node.parent, 'removeChildren');
|
|
55
55
|
updatedGroupsManager?.addAction(node.parent, 'insertChildren');
|
|
56
56
|
(0, _utils.updateGroupNodeIdAndAutoGenerated)({
|
|
57
|
+
previousTree: null,
|
|
57
58
|
tree,
|
|
58
59
|
treeDepths,
|
|
59
60
|
node,
|
|
@@ -21,6 +21,7 @@ const updateRowTree = params => {
|
|
|
21
21
|
path
|
|
22
22
|
} = params.nodes.inserted[i];
|
|
23
23
|
(0, _insertDataRowInTree.insertDataRowInTree)({
|
|
24
|
+
previousTree: params.previousTree,
|
|
24
25
|
tree,
|
|
25
26
|
treeDepths,
|
|
26
27
|
updatedGroupsManager,
|
|
@@ -58,6 +59,7 @@ const updateRowTree = params => {
|
|
|
58
59
|
id
|
|
59
60
|
});
|
|
60
61
|
(0, _insertDataRowInTree.insertDataRowInTree)({
|
|
62
|
+
previousTree: params.previousTree,
|
|
61
63
|
tree,
|
|
62
64
|
treeDepths,
|
|
63
65
|
updatedGroupsManager,
|
package/node/utils/tree/utils.js
CHANGED
|
@@ -55,6 +55,7 @@ const addGroupDefaultExpansion = ({
|
|
|
55
55
|
exports.addGroupDefaultExpansion = addGroupDefaultExpansion;
|
|
56
56
|
const insertNodeInTree = ({
|
|
57
57
|
node,
|
|
58
|
+
previousTree,
|
|
58
59
|
tree,
|
|
59
60
|
treeDepths
|
|
60
61
|
}) => {
|
|
@@ -69,22 +70,25 @@ const insertNodeInTree = ({
|
|
|
69
70
|
if (node.type === 'footer') {
|
|
70
71
|
// For footers,
|
|
71
72
|
// Register the node from its parent `footerId` property.
|
|
72
|
-
|
|
73
|
-
footerId: node.id
|
|
74
|
-
});
|
|
73
|
+
parentNode.footerId = node.id;
|
|
75
74
|
} else if (node.type === 'group' || node.type === 'leaf') {
|
|
76
75
|
// For groups and leaves,
|
|
77
76
|
// Register the node from its parents `children` and `childrenFromPath` properties.
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
77
|
+
const groupingFieldName = node.groupingField ?? '__no_field__';
|
|
78
|
+
const groupingKeyName = node.groupingKey ?? '__no_key__';
|
|
79
|
+
const groupingField = parentNode.childrenFromPath?.[groupingFieldName];
|
|
80
|
+
if (previousTree !== null && previousTree[parentNode.id] === tree[parentNode.id]) {
|
|
81
|
+
parentNode.children = [...parentNode.children, node.id];
|
|
82
|
+
} else {
|
|
83
|
+
parentNode.children.push(node.id);
|
|
84
|
+
}
|
|
85
|
+
if (groupingField == null) {
|
|
86
|
+
parentNode.childrenFromPath[groupingFieldName] = {
|
|
87
|
+
[groupingKeyName.toString()]: node.id
|
|
88
|
+
};
|
|
89
|
+
} else {
|
|
90
|
+
groupingField[groupingKeyName.toString()] = node.id;
|
|
91
|
+
}
|
|
88
92
|
}
|
|
89
93
|
};
|
|
90
94
|
|
|
@@ -149,6 +153,7 @@ exports.removeNodeFromTree = removeNodeFromTree;
|
|
|
149
153
|
const updateGroupNodeIdAndAutoGenerated = ({
|
|
150
154
|
node,
|
|
151
155
|
updatedNode,
|
|
156
|
+
previousTree,
|
|
152
157
|
tree,
|
|
153
158
|
treeDepths
|
|
154
159
|
}) => {
|
|
@@ -169,6 +174,7 @@ const updateGroupNodeIdAndAutoGenerated = ({
|
|
|
169
174
|
// 3. Add the new group in the tree
|
|
170
175
|
const groupNode = (0, _extends2.default)({}, node, updatedNode);
|
|
171
176
|
insertNodeInTree({
|
|
177
|
+
previousTree,
|
|
172
178
|
node: groupNode,
|
|
173
179
|
tree,
|
|
174
180
|
treeDepths
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-pro",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.5.0",
|
|
4
4
|
"description": "The Pro plan edition of the data grid component (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./node/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@babel/runtime": "^7.21.0",
|
|
35
35
|
"@mui/utils": "^5.12.3",
|
|
36
|
-
"@mui/x-data-grid": "6.
|
|
36
|
+
"@mui/x-data-grid": "6.5.0",
|
|
37
37
|
"@mui/x-license-pro": "6.0.4",
|
|
38
38
|
"@types/format-util": "^1.0.2",
|
|
39
39
|
"clsx": "^1.2.1",
|
|
@@ -1,8 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GridRowId, GridColumnHeaderParams, GridValidRowModel } from '@mui/x-data-grid';
|
|
2
3
|
import type { GridRowScrollEndParams, GridRowOrderChangeParams, GridFetchRowsParams } from '../models';
|
|
3
4
|
import type { GridColumnPinningInternalCache, GridPinnedColumns } from '../hooks/features/columnPinning/gridColumnPinningInterface';
|
|
4
5
|
import type { GridCanBeReorderedPreProcessingContext } from '../hooks/features/columnReorder/columnReorderInterfaces';
|
|
5
6
|
import { GridRowPinningInternalCache } from '../hooks/features/rowPinning/gridRowPinningInterface';
|
|
7
|
+
export interface GridColDefPro<R extends GridValidRowModel = any, V = any, F = V> {
|
|
8
|
+
/**
|
|
9
|
+
* Allows to render a component in the column header filter cell.
|
|
10
|
+
* @template R, V, F
|
|
11
|
+
* @param {GridColumnHeaderParams<R, V, F>} params Object containing parameters for the renderer.
|
|
12
|
+
* @returns {React.ReactNode} The element to be rendered.
|
|
13
|
+
*/
|
|
14
|
+
renderHeaderFilter?: (params: GridColumnHeaderParams<R, V, F>) => React.ReactNode;
|
|
15
|
+
}
|
|
6
16
|
export interface GridControlledStateEventLookupPro {
|
|
7
17
|
/**
|
|
8
18
|
* Fired when the open detail panels are changed.
|
|
@@ -60,4 +70,6 @@ declare module '@mui/x-data-grid' {
|
|
|
60
70
|
declare module '@mui/x-data-grid/internals' {
|
|
61
71
|
interface GridApiCaches extends GridApiCachesPro {
|
|
62
72
|
}
|
|
73
|
+
interface GridBaseColDef<R, V, F> extends GridColDefPro<R, V, F> {
|
|
74
|
+
}
|
|
63
75
|
}
|
package/utils/releaseInfo.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTY4NDQ0MzYwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { GridRowTreeConfig } from '@mui/x-data-grid';
|
|
1
2
|
import { GridRowTreeCreationValue } from '@mui/x-data-grid/internals';
|
|
2
3
|
import { RowTreeBuilderNode, GridTreePathDuplicateHandler } from './models';
|
|
3
4
|
import { DataGridProProps } from '../../models/dataGridProProps';
|
|
4
5
|
interface CreateRowTreeParams {
|
|
6
|
+
previousTree: GridRowTreeConfig | null;
|
|
5
7
|
nodes: RowTreeBuilderNode[];
|
|
6
8
|
defaultGroupingExpansionDepth: number;
|
|
7
9
|
isGroupExpandedByDefault?: DataGridProProps['isGroupExpandedByDefault'];
|
|
@@ -20,6 +20,10 @@ interface InsertDataRowInTreeParams {
|
|
|
20
20
|
* - `tree[nodeId].children.push(newNodeId)` => invalid
|
|
21
21
|
*/
|
|
22
22
|
tree: GridRowTreeConfig;
|
|
23
|
+
/**
|
|
24
|
+
* Previous tree instance for comparison.
|
|
25
|
+
*/
|
|
26
|
+
previousTree: GridRowTreeConfig | null;
|
|
23
27
|
/**
|
|
24
28
|
* Amount of nodes at each depth of the tree.
|
|
25
29
|
* This object can be mutated.
|
|
@@ -47,5 +51,5 @@ interface InsertDataRowInTreeParams {
|
|
|
47
51
|
* - if a node exists with the same partial path, it will register this node as the ancestor of the data row.
|
|
48
52
|
* - if not, it will create an auto-generated node and register it as ancestor of the data row.
|
|
49
53
|
*/
|
|
50
|
-
export declare const insertDataRowInTree: ({ id, path, updatedGroupsManager, tree, treeDepths, onDuplicatePath, isGroupExpandedByDefault, defaultGroupingExpansionDepth, }: InsertDataRowInTreeParams) => void;
|
|
54
|
+
export declare const insertDataRowInTree: ({ id, path, updatedGroupsManager, previousTree, tree, treeDepths, onDuplicatePath, isGroupExpandedByDefault, defaultGroupingExpansionDepth, }: InsertDataRowInTreeParams) => void;
|
|
51
55
|
export {};
|