@mui/x-data-grid-pro 6.5.0 → 6.7.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 +150 -2
- package/DataGridPro/DataGridPro.js +10 -3
- package/README.md +2 -2
- package/components/DataGridProVirtualScroller.js +12 -12
- package/components/GridColumnHeaders.js +9 -3
- package/components/GridColumnMenuPinningItem.d.ts +2 -2
- package/components/GridDetailPanel.d.ts +1 -1
- package/components/GridDetailPanelToggleCell.d.ts +2 -2
- package/components/GridRowReorderCell.d.ts +3 -3
- package/components/GridScrollArea.d.ts +10 -0
- package/components/GridScrollArea.js +140 -0
- package/components/GridTreeDataGroupingCell.d.ts +2 -2
- package/components/headerFiltering/GridHeaderFilterCell.d.ts +0 -1
- package/components/headerFiltering/GridHeaderFilterCell.js +36 -23
- package/components/headerFiltering/GridHeaderFilterClearButton.d.ts +2 -2
- package/components/headerFiltering/GridHeaderFilterClearButton.js +1 -1
- package/components/headerFiltering/GridHeaderFilterMenu.d.ts +5 -2
- package/components/headerFiltering/GridHeaderFilterMenu.js +36 -15
- package/components/headerFiltering/{GridHeaderFilterAdornment.d.ts → GridHeaderFilterMenuContainer.d.ts} +4 -4
- package/{modern/components/headerFiltering/GridHeaderFilterAdornment.js → components/headerFiltering/GridHeaderFilterMenuContainer.js} +23 -24
- package/components/headerFiltering/index.d.ts +2 -1
- package/components/headerFiltering/index.js +3 -2
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +3 -3
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +16 -8
- package/hooks/features/columnResize/useGridColumnResize.js +11 -12
- package/hooks/features/detailPanel/useGridDetailPanel.js +4 -6
- package/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -2
- package/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +1 -6
- package/hooks/features/treeData/gridTreeDataUtils.js +0 -8
- package/hooks/features/treeData/useGridTreeDataPreProcessors.js +2 -0
- package/index.js +1 -1
- package/internals/index.d.ts +1 -1
- package/internals/index.js +1 -1
- package/legacy/DataGridPro/DataGridPro.js +10 -3
- package/legacy/components/DataGridProVirtualScroller.js +12 -12
- package/legacy/components/GridColumnHeaders.js +9 -3
- package/legacy/components/GridScrollArea.js +143 -0
- package/legacy/components/headerFiltering/GridHeaderFilterCell.js +39 -27
- package/legacy/components/headerFiltering/GridHeaderFilterClearButton.js +1 -1
- package/legacy/components/headerFiltering/GridHeaderFilterMenu.js +36 -15
- package/legacy/components/headerFiltering/{GridHeaderFilterAdornment.js → GridHeaderFilterMenuContainer.js} +23 -25
- package/legacy/components/headerFiltering/index.js +3 -2
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +14 -8
- package/legacy/hooks/features/columnResize/useGridColumnResize.js +11 -12
- package/legacy/hooks/features/detailPanel/useGridDetailPanel.js +4 -6
- package/legacy/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -2
- package/legacy/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +1 -6
- package/legacy/hooks/features/treeData/gridTreeDataUtils.js +0 -8
- package/legacy/hooks/features/treeData/useGridTreeDataPreProcessors.js +2 -0
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +1 -1
- package/legacy/material/icons.js +1 -4
- package/legacy/material/index.js +2 -3
- package/legacy/utils/releaseInfo.js +1 -1
- package/legacy/utils/tree/insertDataRowInTree.js +8 -24
- package/legacy/utils/tree/sortRowTree.js +78 -18
- package/legacy/utils/tree/utils.js +55 -37
- package/material/icons.d.ts +0 -3
- package/material/icons.js +1 -4
- package/material/index.d.ts +0 -1
- package/material/index.js +2 -3
- package/models/gridProIconSlotsComponent.d.ts +0 -5
- package/modern/DataGridPro/DataGridPro.js +10 -3
- package/modern/components/DataGridProVirtualScroller.js +12 -12
- package/modern/components/GridColumnHeaders.js +9 -3
- package/modern/components/GridScrollArea.js +140 -0
- package/modern/components/headerFiltering/GridHeaderFilterCell.js +36 -23
- package/modern/components/headerFiltering/GridHeaderFilterClearButton.js +1 -1
- package/modern/components/headerFiltering/GridHeaderFilterMenu.js +36 -15
- package/{components/headerFiltering/GridHeaderFilterAdornment.js → modern/components/headerFiltering/GridHeaderFilterMenuContainer.js} +22 -25
- package/modern/components/headerFiltering/index.js +3 -2
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +16 -8
- package/modern/hooks/features/columnResize/useGridColumnResize.js +11 -12
- package/modern/hooks/features/detailPanel/useGridDetailPanel.js +4 -6
- package/modern/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -2
- package/modern/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +1 -6
- package/modern/hooks/features/treeData/gridTreeDataUtils.js +0 -8
- package/modern/hooks/features/treeData/useGridTreeDataPreProcessors.js +2 -0
- package/modern/index.js +1 -1
- package/modern/internals/index.js +1 -1
- package/modern/material/icons.js +1 -4
- package/modern/material/index.js +2 -3
- package/modern/utils/releaseInfo.js +1 -1
- package/modern/utils/tree/insertDataRowInTree.js +8 -24
- package/modern/utils/tree/sortRowTree.js +64 -18
- package/modern/utils/tree/utils.js +43 -26
- package/node/DataGridPro/DataGridPro.js +10 -3
- package/node/components/DataGridProVirtualScroller.js +12 -12
- package/node/components/GridColumnHeaders.js +8 -3
- package/node/components/GridScrollArea.js +149 -0
- package/node/components/headerFiltering/GridHeaderFilterCell.js +36 -23
- package/node/components/headerFiltering/GridHeaderFilterClearButton.js +1 -1
- package/node/components/headerFiltering/GridHeaderFilterMenu.js +36 -14
- package/node/components/headerFiltering/{GridHeaderFilterAdornment.js → GridHeaderFilterMenuContainer.js} +22 -24
- package/node/components/headerFiltering/index.js +15 -4
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +15 -7
- package/node/hooks/features/columnResize/useGridColumnResize.js +11 -12
- package/node/hooks/features/detailPanel/useGridDetailPanel.js +4 -6
- package/node/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +2 -2
- package/node/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +1 -6
- package/node/hooks/features/treeData/gridTreeDataUtils.js +0 -8
- package/node/hooks/features/treeData/useGridTreeDataPreProcessors.js +2 -0
- package/node/index.js +1 -1
- package/node/internals/index.js +8 -1
- package/node/material/icons.js +2 -6
- package/node/material/index.js +1 -2
- package/node/utils/releaseInfo.js +1 -1
- package/node/utils/tree/insertDataRowInTree.js +7 -23
- package/node/utils/tree/sortRowTree.js +64 -18
- package/node/utils/tree/utils.js +46 -28
- package/package.json +6 -6
- package/themeAugmentation/overrides.d.ts +1 -1
- package/typeOverloads/modules.d.ts +6 -6
- package/utils/releaseInfo.js +1 -1
- package/utils/tree/insertDataRowInTree.js +8 -24
- package/utils/tree/sortRowTree.js +64 -18
- package/utils/tree/utils.d.ts +7 -38
- package/utils/tree/utils.js +43 -26
- package/components/headerFiltering/constants.d.ts +0 -3
- package/components/headerFiltering/constants.js +0 -30
- package/legacy/components/headerFiltering/constants.js +0 -30
- package/modern/components/headerFiltering/constants.js +0 -30
- package/node/components/headerFiltering/constants.js +0 -37
|
@@ -10,7 +10,6 @@ export var filterRowTreeFromTreeData = function filterRowTreeFromTreeData(params
|
|
|
10
10
|
var rowTree = params.rowTree,
|
|
11
11
|
disableChildrenFiltering = params.disableChildrenFiltering,
|
|
12
12
|
isRowMatchingFilters = params.isRowMatchingFilters;
|
|
13
|
-
var visibleRowsLookup = {};
|
|
14
13
|
var filteredRowsLookup = {};
|
|
15
14
|
var filteredDescendantCountLookup = {};
|
|
16
15
|
var filterTreeNode = function filterTreeNode(node, isParentMatchingFilters, areAncestorsExpanded) {
|
|
@@ -53,13 +52,7 @@ export var filterRowTreeFromTreeData = function filterRowTreeFromTreeData(params
|
|
|
53
52
|
break;
|
|
54
53
|
}
|
|
55
54
|
}
|
|
56
|
-
visibleRowsLookup[node.id] = shouldPassFilters && areAncestorsExpanded;
|
|
57
55
|
filteredRowsLookup[node.id] = shouldPassFilters;
|
|
58
|
-
|
|
59
|
-
// TODO: Should we keep storing the visibility status of footer independently or rely on the group visibility in the selector ?
|
|
60
|
-
if (node.type === 'group' && node.footerId != null) {
|
|
61
|
-
visibleRowsLookup[node.footerId] = shouldPassFilters && areAncestorsExpanded && !!node.childrenExpanded;
|
|
62
|
-
}
|
|
63
56
|
if (!shouldPassFilters) {
|
|
64
57
|
return 0;
|
|
65
58
|
}
|
|
@@ -77,7 +70,6 @@ export var filterRowTreeFromTreeData = function filterRowTreeFromTreeData(params
|
|
|
77
70
|
}
|
|
78
71
|
}
|
|
79
72
|
return {
|
|
80
|
-
visibleRowsLookup: visibleRowsLookup,
|
|
81
73
|
filteredRowsLookup: filteredRowsLookup,
|
|
82
74
|
filteredDescendantCountLookup: filteredDescendantCountLookup
|
|
83
75
|
};
|
|
@@ -11,6 +11,7 @@ import { GridTreeDataGroupingCell } from '../../../components';
|
|
|
11
11
|
import { createRowTree } from '../../../utils/tree/createRowTree';
|
|
12
12
|
import { sortRowTree } from '../../../utils/tree/sortRowTree';
|
|
13
13
|
import { updateRowTree } from '../../../utils/tree/updateRowTree';
|
|
14
|
+
import { getVisibleRowsLookup } from '../../../utils/tree/utils';
|
|
14
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
16
|
export var useGridTreeDataPreProcessors = function useGridTreeDataPreProcessors(privateApiRef, props) {
|
|
16
17
|
var setStrategyAvailability = React.useCallback(function () {
|
|
@@ -135,6 +136,7 @@ export var useGridTreeDataPreProcessors = function useGridTreeDataPreProcessors(
|
|
|
135
136
|
useGridRegisterStrategyProcessor(privateApiRef, TREE_DATA_STRATEGY, 'rowTreeCreation', createRowTreeForTreeData);
|
|
136
137
|
useGridRegisterStrategyProcessor(privateApiRef, TREE_DATA_STRATEGY, 'filtering', filterRows);
|
|
137
138
|
useGridRegisterStrategyProcessor(privateApiRef, TREE_DATA_STRATEGY, 'sorting', sortRows);
|
|
139
|
+
useGridRegisterStrategyProcessor(privateApiRef, TREE_DATA_STRATEGY, 'visibleRowsLookupCreation', getVisibleRowsLookup);
|
|
138
140
|
|
|
139
141
|
/**
|
|
140
142
|
* 1ST RENDER
|
package/legacy/index.js
CHANGED
|
@@ -25,4 +25,4 @@ export { useGridLazyLoaderPreProcessors } from '../hooks/features/lazyLoader/use
|
|
|
25
25
|
export { createRowTree } from '../utils/tree/createRowTree';
|
|
26
26
|
export { updateRowTree } from '../utils/tree/updateRowTree';
|
|
27
27
|
export { sortRowTree } from '../utils/tree/sortRowTree';
|
|
28
|
-
export { insertNodeInTree, removeNodeFromTree } from '../utils/tree/utils';
|
|
28
|
+
export { insertNodeInTree, removeNodeFromTree, getVisibleRowsLookup } from '../utils/tree/utils';
|
package/legacy/material/icons.js
CHANGED
|
@@ -14,7 +14,4 @@ export var GridPushPinLeftIcon = createSvgIcon( /*#__PURE__*/_jsx("g", {
|
|
|
14
14
|
d: "M16,9V4l1,0c0.55,0,1-0.45,1-1v0c0-0.55-0.45-1-1-1H7C6.45,2,6,2.45,6,3v0 c0,0.55,0.45,1,1,1l1,0v5c0,1.66-1.34,3-3,3h0v2h5.97v7l1,1l1-1v-7H19v-2h0C17.34,12,16,10.66,16,9z",
|
|
15
15
|
fillRule: "evenodd"
|
|
16
16
|
})
|
|
17
|
-
}), 'PushPinLeft');
|
|
18
|
-
export var GridHighlightOffIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
|
|
19
|
-
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"
|
|
20
|
-
}), 'HighlightOff');
|
|
17
|
+
}), 'PushPinLeft');
|
package/legacy/material/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { GridPushPinRightIcon, GridPushPinLeftIcon
|
|
2
|
+
import { GridPushPinRightIcon, GridPushPinLeftIcon } from './icons';
|
|
3
3
|
var iconSlots = {
|
|
4
4
|
ColumnMenuPinRightIcon: GridPushPinRightIcon,
|
|
5
|
-
ColumnMenuPinLeftIcon: GridPushPinLeftIcon
|
|
6
|
-
HeaderFilterClearIcon: GridHighlightOffIcon
|
|
5
|
+
ColumnMenuPinLeftIcon: GridPushPinLeftIcon
|
|
7
6
|
};
|
|
8
7
|
var materialSlots = _extends({}, iconSlots);
|
|
9
8
|
export default materialSlots;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export var getReleaseInfo = function getReleaseInfo() {
|
|
3
|
-
var releaseInfo = "
|
|
3
|
+
var releaseInfo = "MTY4NjI2MTYwMDAwMA==";
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import { GRID_ROOT_GROUP_ID } from '@mui/x-data-grid';
|
|
2
|
-
import {
|
|
2
|
+
import { updateGroupDefaultExpansion, getGroupRowIdFromPath, insertNodeInTree, updateGroupNodeIdAndAutoGenerated } from './utils';
|
|
3
3
|
/**
|
|
4
4
|
* Inserts a data row in a tree.
|
|
5
5
|
* For each steps of its path:
|
|
@@ -40,12 +40,7 @@ export var insertDataRowInTree = function insertDataRowInTree(_ref) {
|
|
|
40
40
|
groupingKey: key
|
|
41
41
|
};
|
|
42
42
|
updatedGroupsManager == null ? void 0 : updatedGroupsManager.addAction(parentNodeId, 'insertChildren');
|
|
43
|
-
insertNodeInTree(
|
|
44
|
-
node: leafNode,
|
|
45
|
-
previousTree: previousTree,
|
|
46
|
-
tree: tree,
|
|
47
|
-
treeDepths: treeDepths
|
|
48
|
-
});
|
|
43
|
+
insertNodeInTree(leafNode, tree, treeDepths, previousTree);
|
|
49
44
|
} else {
|
|
50
45
|
var existingNodeWithPartialPath = tree[existingNodeIdWithPartialPath];
|
|
51
46
|
|
|
@@ -87,19 +82,11 @@ export var insertDataRowInTree = function insertDataRowInTree(_ref) {
|
|
|
87
82
|
groupingKey: key,
|
|
88
83
|
groupingField: field,
|
|
89
84
|
children: [],
|
|
90
|
-
childrenFromPath: {}
|
|
85
|
+
childrenFromPath: {},
|
|
86
|
+
childrenExpanded: false
|
|
91
87
|
};
|
|
92
88
|
updatedGroupsManager == null ? void 0 : updatedGroupsManager.addAction(parentNodeId, 'insertChildren');
|
|
93
|
-
insertNodeInTree(
|
|
94
|
-
node: addGroupDefaultExpansion({
|
|
95
|
-
node: autoGeneratedGroupNode,
|
|
96
|
-
defaultGroupingExpansionDepth: defaultGroupingExpansionDepth,
|
|
97
|
-
isGroupExpandedByDefault: isGroupExpandedByDefault
|
|
98
|
-
}),
|
|
99
|
-
previousTree: previousTree,
|
|
100
|
-
tree: tree,
|
|
101
|
-
treeDepths: treeDepths
|
|
102
|
-
});
|
|
89
|
+
insertNodeInTree(updateGroupDefaultExpansion(autoGeneratedGroupNode, defaultGroupingExpansionDepth, isGroupExpandedByDefault), tree, treeDepths, previousTree);
|
|
103
90
|
parentNodeId = nodeId;
|
|
104
91
|
}
|
|
105
92
|
// For the intermediary steps of the path
|
|
@@ -118,13 +105,10 @@ export var insertDataRowInTree = function insertDataRowInTree(_ref) {
|
|
|
118
105
|
groupingKey: key,
|
|
119
106
|
groupingField: field,
|
|
120
107
|
children: [],
|
|
121
|
-
childrenFromPath: {}
|
|
108
|
+
childrenFromPath: {},
|
|
109
|
+
childrenExpanded: false
|
|
122
110
|
};
|
|
123
|
-
tree[existingNodeIdWithPartialPath] =
|
|
124
|
-
node: groupNode,
|
|
125
|
-
defaultGroupingExpansionDepth: defaultGroupingExpansionDepth,
|
|
126
|
-
isGroupExpandedByDefault: isGroupExpandedByDefault
|
|
127
|
-
});
|
|
111
|
+
tree[existingNodeIdWithPartialPath] = updateGroupDefaultExpansion(groupNode, defaultGroupingExpansionDepth, isGroupExpandedByDefault);
|
|
128
112
|
}
|
|
129
113
|
parentNodeId = currentGroupNode.id;
|
|
130
114
|
}
|
|
@@ -1,11 +1,80 @@
|
|
|
1
1
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
2
4
|
import { GRID_ROOT_GROUP_ID } from '@mui/x-data-grid';
|
|
5
|
+
// Single-linked list node
|
|
6
|
+
var Node = /*#__PURE__*/function () {
|
|
7
|
+
function Node(data, next) {
|
|
8
|
+
_classCallCheck(this, Node);
|
|
9
|
+
this.next = void 0;
|
|
10
|
+
this.data = void 0;
|
|
11
|
+
this.next = next;
|
|
12
|
+
this.data = data;
|
|
13
|
+
}
|
|
14
|
+
_createClass(Node, [{
|
|
15
|
+
key: "insertAfter",
|
|
16
|
+
value: function insertAfter(list) {
|
|
17
|
+
if (!list.first || !list.last) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
var next = this.next;
|
|
21
|
+
this.next = list.first;
|
|
22
|
+
list.last.next = next;
|
|
23
|
+
}
|
|
24
|
+
}]);
|
|
25
|
+
return Node;
|
|
26
|
+
}(); // Single-linked list container
|
|
27
|
+
var List = /*#__PURE__*/function () {
|
|
28
|
+
function List(first, last) {
|
|
29
|
+
_classCallCheck(this, List);
|
|
30
|
+
this.first = void 0;
|
|
31
|
+
this.last = void 0;
|
|
32
|
+
this.first = first;
|
|
33
|
+
this.last = last;
|
|
34
|
+
}
|
|
35
|
+
_createClass(List, [{
|
|
36
|
+
key: "data",
|
|
37
|
+
value: function data() {
|
|
38
|
+
var array = [];
|
|
39
|
+
this.forEach(function (node) {
|
|
40
|
+
array.push(node.data);
|
|
41
|
+
});
|
|
42
|
+
return array;
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
key: "forEach",
|
|
46
|
+
value: function forEach(fn) {
|
|
47
|
+
var current = this.first;
|
|
48
|
+
while (current !== null) {
|
|
49
|
+
fn(current);
|
|
50
|
+
current = current.next;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}], [{
|
|
54
|
+
key: "from",
|
|
55
|
+
value: function from(array) {
|
|
56
|
+
if (array.length === 0) {
|
|
57
|
+
return new List(null, null);
|
|
58
|
+
}
|
|
59
|
+
var index = 0;
|
|
60
|
+
var first = new Node(array[index], null);
|
|
61
|
+
var current = first;
|
|
62
|
+
while (index + 1 < array.length) {
|
|
63
|
+
index += 1;
|
|
64
|
+
var _node = new Node(array[index], null);
|
|
65
|
+
current.next = _node;
|
|
66
|
+
current = _node;
|
|
67
|
+
}
|
|
68
|
+
return new List(first, current);
|
|
69
|
+
}
|
|
70
|
+
}]);
|
|
71
|
+
return List;
|
|
72
|
+
}();
|
|
3
73
|
export var sortRowTree = function sortRowTree(params) {
|
|
4
74
|
var rowTree = params.rowTree,
|
|
5
75
|
disableChildrenSorting = params.disableChildrenSorting,
|
|
6
76
|
sortRowList = params.sortRowList,
|
|
7
77
|
shouldRenderGroupBelowLeaves = params.shouldRenderGroupBelowLeaves;
|
|
8
|
-
var sortedRows = [];
|
|
9
78
|
var sortedGroupedByParentRows = new Map();
|
|
10
79
|
var sortGroup = function sortGroup(node) {
|
|
11
80
|
var shouldSortGroup = !!sortRowList && (!disableChildrenSorting || node.depth === -1);
|
|
@@ -49,21 +118,12 @@ export var sortRowTree = function sortRowTree(params) {
|
|
|
49
118
|
sortedGroupedByParentRows.set(node.id, sortedRowIds);
|
|
50
119
|
};
|
|
51
120
|
sortGroup(rowTree[GRID_ROOT_GROUP_ID]);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (children != null && children.length) {
|
|
61
|
-
var subTreeSize = insertRowListIntoSortedRows(startIndex + treeSize, children);
|
|
62
|
-
treeSize += subTreeSize;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
return treeSize;
|
|
66
|
-
};
|
|
67
|
-
insertRowListIntoSortedRows(0, sortedGroupedByParentRows.get(GRID_ROOT_GROUP_ID));
|
|
68
|
-
return sortedRows;
|
|
121
|
+
var rootList = List.from(sortedGroupedByParentRows.get(GRID_ROOT_GROUP_ID));
|
|
122
|
+
rootList.forEach(function (node) {
|
|
123
|
+
var children = sortedGroupedByParentRows.get(node.data);
|
|
124
|
+
if (children != null && children.length) {
|
|
125
|
+
node.insertAfter(List.from(children));
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
return rootList.data();
|
|
69
129
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
2
2
|
import _toPropertyKey from "@babel/runtime/helpers/esm/toPropertyKey";
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
4
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
5
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
5
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
6
6
|
import { GRID_ROOT_GROUP_ID } from '@mui/x-data-grid';
|
|
7
7
|
export var getGroupRowIdFromPath = function getGroupRowIdFromPath(path) {
|
|
8
8
|
var pathStr = path.map(function (groupingCriteria) {
|
|
@@ -25,10 +25,7 @@ export var getNodePathInTree = function getNodePathInTree(_ref) {
|
|
|
25
25
|
path.reverse();
|
|
26
26
|
return path;
|
|
27
27
|
};
|
|
28
|
-
export var
|
|
29
|
-
var node = _ref2.node,
|
|
30
|
-
isGroupExpandedByDefault = _ref2.isGroupExpandedByDefault,
|
|
31
|
-
defaultGroupingExpansionDepth = _ref2.defaultGroupingExpansionDepth;
|
|
28
|
+
export var updateGroupDefaultExpansion = function updateGroupDefaultExpansion(node, defaultGroupingExpansionDepth, isGroupExpandedByDefault) {
|
|
32
29
|
var childrenExpanded;
|
|
33
30
|
if (node.id === GRID_ROOT_GROUP_ID) {
|
|
34
31
|
childrenExpanded = true;
|
|
@@ -37,20 +34,15 @@ export var addGroupDefaultExpansion = function addGroupDefaultExpansion(_ref2) {
|
|
|
37
34
|
} else {
|
|
38
35
|
childrenExpanded = defaultGroupingExpansionDepth === -1 || defaultGroupingExpansionDepth > node.depth;
|
|
39
36
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
});
|
|
37
|
+
node.childrenExpanded = childrenExpanded;
|
|
38
|
+
return node;
|
|
43
39
|
};
|
|
44
40
|
|
|
45
41
|
/**
|
|
46
42
|
* Insert a node in the tree
|
|
47
43
|
*/
|
|
48
|
-
export var insertNodeInTree = function insertNodeInTree(
|
|
44
|
+
export var insertNodeInTree = function insertNodeInTree(node, tree, treeDepths, previousTree) {
|
|
49
45
|
var _treeDepths$node$dept;
|
|
50
|
-
var node = _ref3.node,
|
|
51
|
-
previousTree = _ref3.previousTree,
|
|
52
|
-
tree = _ref3.tree,
|
|
53
|
-
treeDepths = _ref3.treeDepths;
|
|
54
46
|
// 1. Insert node in the tree.
|
|
55
47
|
tree[node.id] = node;
|
|
56
48
|
|
|
@@ -59,11 +51,7 @@ export var insertNodeInTree = function insertNodeInTree(_ref3) {
|
|
|
59
51
|
|
|
60
52
|
// 3. Register the new node in its parent.
|
|
61
53
|
var parentNode = tree[node.parent];
|
|
62
|
-
if (node.type === '
|
|
63
|
-
// For footers,
|
|
64
|
-
// Register the node from its parent `footerId` property.
|
|
65
|
-
parentNode.footerId = node.id;
|
|
66
|
-
} else if (node.type === 'group' || node.type === 'leaf') {
|
|
54
|
+
if (node.type === 'group' || node.type === 'leaf') {
|
|
67
55
|
var _groupingField, _groupingKey, _parentNode$childrenF;
|
|
68
56
|
// For groups and leaves,
|
|
69
57
|
// Register the node from its parents `children` and `childrenFromPath` properties.
|
|
@@ -80,16 +68,20 @@ export var insertNodeInTree = function insertNodeInTree(_ref3) {
|
|
|
80
68
|
} else {
|
|
81
69
|
groupingField[groupingKeyName.toString()] = node.id;
|
|
82
70
|
}
|
|
71
|
+
} else if (node.type === 'footer') {
|
|
72
|
+
// For footers,
|
|
73
|
+
// Register the node from its parent `footerId` property.
|
|
74
|
+
parentNode.footerId = node.id;
|
|
83
75
|
}
|
|
84
76
|
};
|
|
85
77
|
|
|
86
78
|
/**
|
|
87
79
|
* Removes a node from the tree
|
|
88
80
|
*/
|
|
89
|
-
export var removeNodeFromTree = function removeNodeFromTree(
|
|
90
|
-
var node =
|
|
91
|
-
tree =
|
|
92
|
-
treeDepths =
|
|
81
|
+
export var removeNodeFromTree = function removeNodeFromTree(_ref2) {
|
|
82
|
+
var node = _ref2.node,
|
|
83
|
+
tree = _ref2.tree,
|
|
84
|
+
treeDepths = _ref2.treeDepths;
|
|
93
85
|
// 1. Remove node from the tree.
|
|
94
86
|
delete tree[node.id];
|
|
95
87
|
|
|
@@ -117,10 +109,10 @@ export var removeNodeFromTree = function removeNodeFromTree(_ref4) {
|
|
|
117
109
|
var _groupingField2, _groupingKey2, _parentNode$childrenF3, _parentNode$childrenF4;
|
|
118
110
|
var groupingField = (_groupingField2 = node.groupingField) != null ? _groupingField2 : '__no_field__';
|
|
119
111
|
var groupingKey = (_groupingKey2 = node.groupingKey) != null ? _groupingKey2 : '__no_key__';
|
|
120
|
-
var
|
|
112
|
+
var _ref3 = (_parentNode$childrenF3 = (_parentNode$childrenF4 = parentNode.childrenFromPath) == null ? void 0 : _parentNode$childrenF4[groupingField]) != null ? _parentNode$childrenF3 : {},
|
|
121
113
|
_groupingKey$toString = groupingKey.toString(),
|
|
122
|
-
childrenToRemove =
|
|
123
|
-
newChildrenFromPathWithField = _objectWithoutProperties(
|
|
114
|
+
childrenToRemove = _ref3[_groupingKey$toString],
|
|
115
|
+
newChildrenFromPathWithField = _objectWithoutProperties(_ref3, [_groupingKey$toString].map(_toPropertyKey));
|
|
124
116
|
|
|
125
117
|
// TODO rows v6: Can we avoid this linear complexity ?
|
|
126
118
|
var children = parentNode.children.filter(function (childId) {
|
|
@@ -142,12 +134,12 @@ export var removeNodeFromTree = function removeNodeFromTree(_ref4) {
|
|
|
142
134
|
/**
|
|
143
135
|
* Updates the `id` and `isAutoGenerated` properties of a group node.
|
|
144
136
|
*/
|
|
145
|
-
export var updateGroupNodeIdAndAutoGenerated = function updateGroupNodeIdAndAutoGenerated(
|
|
146
|
-
var node =
|
|
147
|
-
updatedNode =
|
|
148
|
-
previousTree =
|
|
149
|
-
tree =
|
|
150
|
-
treeDepths =
|
|
137
|
+
export var updateGroupNodeIdAndAutoGenerated = function updateGroupNodeIdAndAutoGenerated(_ref4) {
|
|
138
|
+
var node = _ref4.node,
|
|
139
|
+
updatedNode = _ref4.updatedNode,
|
|
140
|
+
previousTree = _ref4.previousTree,
|
|
141
|
+
tree = _ref4.tree,
|
|
142
|
+
treeDepths = _ref4.treeDepths;
|
|
151
143
|
// 1. Set the new parent for all children from the old group
|
|
152
144
|
node.children.forEach(function (childId) {
|
|
153
145
|
tree[childId] = _extends({}, tree[childId], {
|
|
@@ -164,12 +156,7 @@ export var updateGroupNodeIdAndAutoGenerated = function updateGroupNodeIdAndAuto
|
|
|
164
156
|
|
|
165
157
|
// 3. Add the new group in the tree
|
|
166
158
|
var groupNode = _extends({}, node, updatedNode);
|
|
167
|
-
insertNodeInTree(
|
|
168
|
-
previousTree: previousTree,
|
|
169
|
-
node: groupNode,
|
|
170
|
-
tree: tree,
|
|
171
|
-
treeDepths: treeDepths
|
|
172
|
-
});
|
|
159
|
+
insertNodeInTree(groupNode, tree, treeDepths, previousTree);
|
|
173
160
|
};
|
|
174
161
|
export var createUpdatedGroupsManager = function createUpdatedGroupsManager() {
|
|
175
162
|
return {
|
|
@@ -181,4 +168,35 @@ export var createUpdatedGroupsManager = function createUpdatedGroupsManager() {
|
|
|
181
168
|
this.value[groupId][action] = true;
|
|
182
169
|
}
|
|
183
170
|
};
|
|
171
|
+
};
|
|
172
|
+
export var getVisibleRowsLookup = function getVisibleRowsLookup(_ref5) {
|
|
173
|
+
var tree = _ref5.tree,
|
|
174
|
+
filteredRowsLookup = _ref5.filteredRowsLookup;
|
|
175
|
+
if (!filteredRowsLookup) {
|
|
176
|
+
return {};
|
|
177
|
+
}
|
|
178
|
+
var visibleRowsLookup = {};
|
|
179
|
+
var handleTreeNode = function handleTreeNode(node, areAncestorsExpanded) {
|
|
180
|
+
var isPassingFiltering = filteredRowsLookup[node.id];
|
|
181
|
+
if (node.type === 'group') {
|
|
182
|
+
node.children.forEach(function (childId) {
|
|
183
|
+
var childNode = tree[childId];
|
|
184
|
+
handleTreeNode(childNode, areAncestorsExpanded && !!node.childrenExpanded);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
visibleRowsLookup[node.id] = isPassingFiltering && areAncestorsExpanded;
|
|
188
|
+
|
|
189
|
+
// TODO rows v6: Should we keep storing the visibility status of footer independently or rely on the group visibility in the selector ?
|
|
190
|
+
if (node.type === 'group' && node.footerId != null) {
|
|
191
|
+
visibleRowsLookup[node.footerId] = isPassingFiltering && areAncestorsExpanded && !!node.childrenExpanded;
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
var nodes = Object.values(tree);
|
|
195
|
+
for (var i = 0; i < nodes.length; i += 1) {
|
|
196
|
+
var node = nodes[i];
|
|
197
|
+
if (node.depth === 0) {
|
|
198
|
+
handleTreeNode(node, true);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return visibleRowsLookup;
|
|
184
202
|
};
|
package/material/icons.d.ts
CHANGED
|
@@ -4,6 +4,3 @@ export declare const GridPushPinRightIcon: import("@mui/material/OverridableComp
|
|
|
4
4
|
export declare const GridPushPinLeftIcon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
5
5
|
muiName: string;
|
|
6
6
|
};
|
|
7
|
-
export declare const GridHighlightOffIcon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
|
|
8
|
-
muiName: string;
|
|
9
|
-
};
|
package/material/icons.js
CHANGED
|
@@ -14,7 +14,4 @@ export const GridPushPinLeftIcon = createSvgIcon( /*#__PURE__*/_jsx("g", {
|
|
|
14
14
|
d: "M16,9V4l1,0c0.55,0,1-0.45,1-1v0c0-0.55-0.45-1-1-1H7C6.45,2,6,2.45,6,3v0 c0,0.55,0.45,1,1,1l1,0v5c0,1.66-1.34,3-3,3h0v2h5.97v7l1,1l1-1v-7H19v-2h0C17.34,12,16,10.66,16,9z",
|
|
15
15
|
fillRule: "evenodd"
|
|
16
16
|
})
|
|
17
|
-
}), 'PushPinLeft');
|
|
18
|
-
export const GridHighlightOffIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
|
|
19
|
-
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"
|
|
20
|
-
}), 'HighlightOff');
|
|
17
|
+
}), 'PushPinLeft');
|
package/material/index.d.ts
CHANGED
|
@@ -2,6 +2,5 @@
|
|
|
2
2
|
declare const materialSlots: {
|
|
3
3
|
ColumnMenuPinLeftIcon: import("react").JSXElementConstructor<any>;
|
|
4
4
|
ColumnMenuPinRightIcon: import("react").JSXElementConstructor<any>;
|
|
5
|
-
HeaderFilterClearIcon: import("react").JSXElementConstructor<any>;
|
|
6
5
|
};
|
|
7
6
|
export default materialSlots;
|
package/material/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { GridPushPinRightIcon, GridPushPinLeftIcon
|
|
2
|
+
import { GridPushPinRightIcon, GridPushPinLeftIcon } from './icons';
|
|
3
3
|
const iconSlots = {
|
|
4
4
|
ColumnMenuPinRightIcon: GridPushPinRightIcon,
|
|
5
|
-
ColumnMenuPinLeftIcon: GridPushPinLeftIcon
|
|
6
|
-
HeaderFilterClearIcon: GridHighlightOffIcon
|
|
5
|
+
ColumnMenuPinLeftIcon: GridPushPinLeftIcon
|
|
7
6
|
};
|
|
8
7
|
const materialSlots = _extends({}, iconSlots);
|
|
9
8
|
export default materialSlots;
|
|
@@ -10,9 +10,4 @@ export interface GridProIconSlotsComponent {
|
|
|
10
10
|
* @default GridPushPinRightIcon
|
|
11
11
|
*/
|
|
12
12
|
ColumnMenuPinRightIcon: React.JSXElementConstructor<any>;
|
|
13
|
-
/**
|
|
14
|
-
* Component responsible for clear icon in header filter
|
|
15
|
-
* @default GridHighlightOffIcon
|
|
16
|
-
*/
|
|
17
|
-
HeaderFilterClearIcon: React.JSXElementConstructor<any>;
|
|
18
13
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import { useLicenseVerifier, Watermark } from '@mui/x-license-pro';
|
|
@@ -19,11 +20,12 @@ const DataGridProRaw = /*#__PURE__*/React.forwardRef(function DataGridPro(inProp
|
|
|
19
20
|
return /*#__PURE__*/_jsx(GridContextProvider, {
|
|
20
21
|
privateApiRef: privateApiRef,
|
|
21
22
|
props: props,
|
|
22
|
-
children: /*#__PURE__*/_jsxs(GridRoot, {
|
|
23
|
+
children: /*#__PURE__*/_jsxs(GridRoot, _extends({
|
|
23
24
|
className: props.className,
|
|
24
25
|
style: props.style,
|
|
25
26
|
sx: props.sx,
|
|
26
|
-
ref: ref
|
|
27
|
+
ref: ref
|
|
28
|
+
}, props.forwardedProps, {
|
|
27
29
|
children: [/*#__PURE__*/_jsx(GridHeader, {}), /*#__PURE__*/_jsx(GridBody, {
|
|
28
30
|
VirtualScrollerComponent: DataGridProVirtualScroller,
|
|
29
31
|
ColumnHeadersProps: {
|
|
@@ -34,7 +36,7 @@ const DataGridProRaw = /*#__PURE__*/React.forwardRef(function DataGridPro(inProp
|
|
|
34
36
|
releaseInfo: releaseInfo
|
|
35
37
|
})
|
|
36
38
|
}), /*#__PURE__*/_jsx(GridFooterPlaceholder, {})]
|
|
37
|
-
})
|
|
39
|
+
}))
|
|
38
40
|
});
|
|
39
41
|
});
|
|
40
42
|
export const DataGridPro = /*#__PURE__*/React.memo(DataGridProRaw);
|
|
@@ -255,6 +257,11 @@ DataGridProRaw.propTypes = {
|
|
|
255
257
|
quickFilterLogicOperator: PropTypes.oneOf(['and', 'or']),
|
|
256
258
|
quickFilterValues: PropTypes.array
|
|
257
259
|
}),
|
|
260
|
+
/**
|
|
261
|
+
* Forwarded props for the grid root element.
|
|
262
|
+
* @ignore - do not document.
|
|
263
|
+
*/
|
|
264
|
+
forwardedProps: PropTypes.object,
|
|
258
265
|
/**
|
|
259
266
|
* Function that applies CSS classes dynamically on cells.
|
|
260
267
|
* @param {GridCellParams} params With all properties from [[GridCellParams]].
|
|
@@ -176,8 +176,17 @@ const DataGridProVirtualScroller = /*#__PURE__*/React.forwardRef(function DataGr
|
|
|
176
176
|
bottomPinnedRowsRenderZoneRef.current.style.transform = `translate3d(${left}px, 0px, 0px)`;
|
|
177
177
|
}
|
|
178
178
|
}, []);
|
|
179
|
+
|
|
180
|
+
// Create a lookup for faster check if the row is expanded
|
|
181
|
+
const expandedRowIdsLookup = React.useMemo(() => {
|
|
182
|
+
const lookup = new Set();
|
|
183
|
+
expandedRowIds.forEach(id => {
|
|
184
|
+
lookup.add(id);
|
|
185
|
+
});
|
|
186
|
+
return lookup;
|
|
187
|
+
}, [expandedRowIds]);
|
|
179
188
|
const getRowProps = React.useCallback(id => {
|
|
180
|
-
if (!
|
|
189
|
+
if (!expandedRowIdsLookup.has(id)) {
|
|
181
190
|
return null;
|
|
182
191
|
}
|
|
183
192
|
const height = detailPanelsHeights[id];
|
|
@@ -186,7 +195,7 @@ const DataGridProVirtualScroller = /*#__PURE__*/React.forwardRef(function DataGr
|
|
|
186
195
|
marginBottom: height
|
|
187
196
|
}
|
|
188
197
|
};
|
|
189
|
-
}, [detailPanelsHeights,
|
|
198
|
+
}, [detailPanelsHeights, expandedRowIdsLookup]);
|
|
190
199
|
const pinnedColumns = useGridSelector(apiRef, gridPinnedColumnsSelector);
|
|
191
200
|
const [leftPinnedColumns, rightPinnedColumns] = filterColumns(pinnedColumns, visibleColumnFields, theme.direction === 'rtl');
|
|
192
201
|
const pinnedRows = useGridSelector(apiRef, gridPinnedRowsSelector);
|
|
@@ -226,15 +235,6 @@ const DataGridProVirtualScroller = /*#__PURE__*/React.forwardRef(function DataGr
|
|
|
226
235
|
firstColumnIndex: visibleColumnFields.length - rightPinnedColumns.length,
|
|
227
236
|
lastColumnIndex: visibleColumnFields.length
|
|
228
237
|
}) : null;
|
|
229
|
-
|
|
230
|
-
// Create a lookup for faster check if the row is expanded
|
|
231
|
-
const expandedRowIdsLookup = React.useMemo(() => {
|
|
232
|
-
const lookup = {};
|
|
233
|
-
expandedRowIds.forEach(id => {
|
|
234
|
-
lookup[id] = true;
|
|
235
|
-
});
|
|
236
|
-
return lookup;
|
|
237
|
-
}, [expandedRowIds]);
|
|
238
238
|
const getDetailPanel = rowId => {
|
|
239
239
|
const rowsMeta = gridRowsMetaSelector(apiRef.current.state);
|
|
240
240
|
const content = detailPanelsContent[rowId];
|
|
@@ -275,7 +275,7 @@ const DataGridProVirtualScroller = /*#__PURE__*/React.forwardRef(function DataGr
|
|
|
275
275
|
if (rootProps.getDetailPanelContent == null) {
|
|
276
276
|
return;
|
|
277
277
|
}
|
|
278
|
-
if (!expandedRowIdsLookup
|
|
278
|
+
if (!expandedRowIdsLookup.has(rowId)) {
|
|
279
279
|
return;
|
|
280
280
|
}
|
|
281
281
|
const detailPanel = getDetailPanel(rowId);
|
|
@@ -10,9 +10,11 @@ import { GridBaseColumnHeaders, GridColumnHeadersInner } from '@mui/x-data-grid/
|
|
|
10
10
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
11
11
|
import { useGridApiContext } from '../hooks/utils/useGridApiContext';
|
|
12
12
|
import { GridPinnedPosition } from '../hooks/features/columnPinning';
|
|
13
|
-
import { filterColumns } from './DataGridProVirtualScroller';
|
|
14
13
|
import { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
|
|
14
|
+
import { filterColumns } from './DataGridProVirtualScroller';
|
|
15
|
+
import { GridScrollArea } from './GridScrollArea';
|
|
15
16
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
18
|
const useUtilityClasses = ownerState => {
|
|
17
19
|
const {
|
|
18
20
|
leftPinnedColumns,
|
|
@@ -184,7 +186,9 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeade
|
|
|
184
186
|
minFirstColumn: leftRenderContext.firstColumnIndex,
|
|
185
187
|
maxLastColumn: leftRenderContext.lastColumnIndex
|
|
186
188
|
})]
|
|
187
|
-
})), /*#__PURE__*/
|
|
189
|
+
})), /*#__PURE__*/_jsx(GridScrollArea, {
|
|
190
|
+
scrollDirection: "left"
|
|
191
|
+
}), /*#__PURE__*/_jsxs(GridColumnHeadersInner, _extends({
|
|
188
192
|
isDragging: isDragging
|
|
189
193
|
}, innerProps, {
|
|
190
194
|
children: [getColumnGroupHeaders({
|
|
@@ -200,7 +204,9 @@ const GridColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeade
|
|
|
200
204
|
minFirstColumn: leftPinnedColumns.length,
|
|
201
205
|
maxLastColumn: visibleColumnFields.length - rightPinnedColumns.length
|
|
202
206
|
})]
|
|
203
|
-
})),
|
|
207
|
+
})), /*#__PURE__*/_jsx(GridScrollArea, {
|
|
208
|
+
scrollDirection: "right"
|
|
209
|
+
}), rightRenderContext && /*#__PURE__*/_jsxs(GridColumnHeadersPinnedColumnHeaders, _extends({
|
|
204
210
|
ownerState: _extends({}, ownerState, {
|
|
205
211
|
side: GridPinnedPosition.right,
|
|
206
212
|
showCellVerticalBorder: rootProps.showCellVerticalBorder
|