@mui/x-data-grid-pro 5.17.5 → 6.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +297 -19
- package/DataGridPro/DataGridPro.js +4 -14
- package/DataGridPro/useDataGridProProps.js +2 -2
- package/components/DataGridProVirtualScroller.js +2 -2
- package/components/GridDetailPanelToggleCell.js +1 -1
- package/components/GridRowReorderCell.js +4 -6
- package/components/GridTreeDataGroupingCell.d.ts +2 -2
- package/components/GridTreeDataGroupingCell.js +1 -1
- package/hooks/features/detailPanel/useGridDetailPanel.js +2 -2
- package/hooks/features/detailPanel/useGridDetailPanelCache.js +2 -2
- package/hooks/features/infiniteLoader/useGridInfiniteLoader.js +2 -2
- package/hooks/features/lazyLoader/useGridLazyLoader.js +20 -9
- package/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.d.ts +1 -1
- package/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +20 -6
- package/hooks/features/rowPinning/gridRowPinningInterface.d.ts +2 -2
- package/hooks/features/rowPinning/useGridRowPinningPreProcessors.d.ts +16 -16
- package/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +62 -25
- package/hooks/features/rowReorder/useGridRowReorder.js +5 -5
- package/hooks/features/treeData/gridTreeDataGroupColDef.js +1 -1
- package/hooks/features/treeData/gridTreeDataUtils.js +14 -12
- package/hooks/features/treeData/useGridTreeData.js +2 -6
- package/hooks/features/treeData/useGridTreeDataPreProcessors.js +35 -18
- package/index.js +1 -1
- package/internals/index.d.ts +4 -2
- package/internals/index.js +4 -2
- package/legacy/DataGridPro/DataGridPro.js +4 -14
- package/legacy/DataGridPro/useDataGridProProps.js +2 -2
- package/legacy/components/DataGridProVirtualScroller.js +2 -2
- package/legacy/components/GridDetailPanelToggleCell.js +1 -1
- package/legacy/components/GridRowReorderCell.js +4 -6
- package/legacy/components/GridTreeDataGroupingCell.js +1 -1
- package/legacy/hooks/features/detailPanel/useGridDetailPanel.js +2 -2
- package/legacy/hooks/features/detailPanel/useGridDetailPanelCache.js +2 -2
- package/legacy/hooks/features/infiniteLoader/useGridInfiniteLoader.js +2 -2
- package/legacy/hooks/features/lazyLoader/useGridLazyLoader.js +25 -15
- package/legacy/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +21 -7
- package/legacy/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +62 -25
- package/legacy/hooks/features/rowReorder/useGridRowReorder.js +5 -5
- package/legacy/hooks/features/treeData/gridTreeDataGroupColDef.js +1 -1
- package/legacy/hooks/features/treeData/gridTreeDataUtils.js +14 -12
- package/legacy/hooks/features/treeData/useGridTreeData.js +2 -6
- package/legacy/hooks/features/treeData/useGridTreeDataPreProcessors.js +37 -22
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +4 -2
- package/legacy/utils/tree/createRowTree.js +36 -0
- package/legacy/utils/tree/index.js +1 -1
- package/legacy/utils/tree/insertDataRowInTree.js +127 -0
- package/legacy/utils/tree/models.js +1 -0
- package/legacy/utils/tree/removeDataRowFromTree.js +97 -0
- package/legacy/utils/tree/sortRowTree.js +49 -43
- package/legacy/utils/tree/updateRowTree.js +81 -0
- package/legacy/utils/tree/utils.js +184 -0
- package/models/dataGridProProps.d.ts +3 -3
- package/modern/DataGridPro/DataGridPro.js +4 -14
- package/modern/DataGridPro/useDataGridProProps.js +2 -2
- package/modern/components/DataGridProVirtualScroller.js +2 -2
- package/modern/components/GridDetailPanelToggleCell.js +1 -1
- package/modern/components/GridRowReorderCell.js +4 -4
- package/modern/components/GridTreeDataGroupingCell.js +1 -1
- package/modern/hooks/features/detailPanel/useGridDetailPanel.js +2 -2
- package/modern/hooks/features/detailPanel/useGridDetailPanelCache.js +2 -2
- package/modern/hooks/features/infiniteLoader/useGridInfiniteLoader.js +2 -2
- package/modern/hooks/features/lazyLoader/useGridLazyLoader.js +20 -9
- package/modern/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +20 -6
- package/modern/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +60 -23
- package/modern/hooks/features/rowReorder/useGridRowReorder.js +5 -3
- package/modern/hooks/features/treeData/gridTreeDataGroupColDef.js +1 -1
- package/modern/hooks/features/treeData/gridTreeDataUtils.js +13 -9
- package/modern/hooks/features/treeData/useGridTreeData.js +2 -4
- package/modern/hooks/features/treeData/useGridTreeDataPreProcessors.js +35 -18
- package/modern/index.js +1 -1
- package/modern/internals/index.js +4 -2
- package/modern/utils/tree/createRowTree.js +35 -0
- package/modern/utils/tree/index.js +1 -1
- package/modern/utils/tree/insertDataRowInTree.js +127 -0
- package/modern/utils/tree/models.js +1 -0
- package/modern/utils/tree/removeDataRowFromTree.js +100 -0
- package/modern/utils/tree/sortRowTree.js +46 -40
- package/modern/utils/tree/updateRowTree.js +83 -0
- package/modern/utils/tree/utils.js +180 -0
- package/node/DataGridPro/DataGridPro.js +4 -14
- package/node/DataGridPro/useDataGridProProps.js +1 -1
- package/node/components/DataGridProVirtualScroller.js +1 -1
- package/node/components/GridDetailPanelToggleCell.js +1 -1
- package/node/components/GridRowReorderCell.js +3 -5
- package/node/components/GridTreeDataGroupingCell.js +1 -1
- package/node/hooks/features/detailPanel/useGridDetailPanel.js +1 -1
- package/node/hooks/features/detailPanel/useGridDetailPanelCache.js +1 -1
- package/node/hooks/features/infiniteLoader/useGridInfiniteLoader.js +1 -1
- package/node/hooks/features/lazyLoader/useGridLazyLoader.js +19 -8
- package/node/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +18 -5
- package/node/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +63 -26
- package/node/hooks/features/rowReorder/useGridRowReorder.js +4 -4
- package/node/hooks/features/treeData/gridTreeDataGroupColDef.js +1 -1
- package/node/hooks/features/treeData/gridTreeDataUtils.js +14 -12
- package/node/hooks/features/treeData/useGridTreeData.js +1 -5
- package/node/hooks/features/treeData/useGridTreeDataPreProcessors.js +35 -17
- package/node/index.js +1 -1
- package/node/internals/index.js +35 -10
- package/node/utils/tree/createRowTree.js +46 -0
- package/node/utils/tree/index.js +2 -2
- package/node/utils/tree/insertDataRowInTree.js +139 -0
- package/node/utils/tree/models.js +5 -0
- package/node/utils/tree/removeDataRowFromTree.js +110 -0
- package/node/utils/tree/sortRowTree.js +50 -43
- package/node/utils/tree/updateRowTree.js +98 -0
- package/node/utils/tree/utils.js +217 -0
- package/package.json +5 -5
- package/utils/tree/createRowTree.d.ts +15 -0
- package/utils/tree/createRowTree.js +35 -0
- package/utils/tree/index.d.ts +1 -1
- package/utils/tree/index.js +1 -1
- package/utils/tree/insertDataRowInTree.d.ts +51 -0
- package/utils/tree/insertDataRowInTree.js +129 -0
- package/utils/tree/models.d.ts +13 -0
- package/utils/tree/models.js +1 -0
- package/utils/tree/removeDataRowFromTree.d.ts +40 -0
- package/utils/tree/removeDataRowFromTree.js +100 -0
- package/utils/tree/sortRowTree.d.ts +6 -1
- package/utils/tree/sortRowTree.js +46 -40
- package/utils/tree/updateRowTree.d.ts +19 -0
- package/utils/tree/updateRowTree.js +83 -0
- package/utils/tree/utils.d.ts +66 -0
- package/utils/tree/utils.js +186 -0
- package/legacy/utils/tree/buildRowTree.js +0 -195
- package/modern/utils/tree/buildRowTree.js +0 -174
- package/node/utils/tree/buildRowTree.js +0 -195
- package/utils/tree/buildRowTree.d.ts +0 -48
- package/utils/tree/buildRowTree.js +0 -186
|
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { useGridSelector, useGridApiEventHandler, useGridApiMethod,
|
|
5
|
+
import { useGridSelector, useGridApiEventHandler, useGridApiMethod, gridDataRowIdsSelector } from '@mui/x-data-grid';
|
|
6
6
|
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid/internals';
|
|
7
7
|
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from './gridDetailPanelToggleColDef';
|
|
8
8
|
import { gridDetailPanelExpandedRowIdsSelector, gridDetailPanelExpandedRowsContentCacheSelector, gridDetailPanelExpandedRowsHeightCacheSelector, gridDetailPanelRawHeightCacheSelector } from './gridDetailPanelSelector';
|
|
@@ -24,7 +24,7 @@ function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeig
|
|
|
24
24
|
// only call getDetailPanelContent when asked for an id
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
var rowIds =
|
|
27
|
+
var rowIds = gridDataRowIdsSelector(apiRef);
|
|
28
28
|
var contentCache = rowIds.reduce(function (acc, id) {
|
|
29
29
|
var params = apiRef.current.getRowParams(id);
|
|
30
30
|
acc[id] = getDetailPanelContent(params);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { useGridApiEventHandler,
|
|
3
|
+
import { useGridApiEventHandler, gridDataRowIdsSelector } from '@mui/x-data-grid';
|
|
4
4
|
|
|
5
5
|
function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeight, previousHeightCache) {
|
|
6
6
|
if (typeof getDetailPanelContent !== 'function') {
|
|
@@ -9,7 +9,7 @@ function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeig
|
|
|
9
9
|
// only call getDetailPanelContent when asked for an id
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
var rowIds =
|
|
12
|
+
var rowIds = gridDataRowIdsSelector(apiRef);
|
|
13
13
|
var contentCache = rowIds.reduce(function (acc, id) {
|
|
14
14
|
var params = apiRef.current.getRowParams(id);
|
|
15
15
|
acc[id] = getDetailPanelContent(params);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { useGridSelector, useGridApiEventHandler, useGridApiOptionHandler, gridVisibleColumnDefinitionsSelector, gridRowsMetaSelector
|
|
2
|
+
import { useGridSelector, useGridApiEventHandler, useGridApiOptionHandler, gridVisibleColumnDefinitionsSelector, gridRowsMetaSelector } from '@mui/x-data-grid';
|
|
3
3
|
import { useGridVisibleRows } from '@mui/x-data-grid/internals';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -16,7 +16,7 @@ export var useGridInfiniteLoader = function useGridInfiniteLoader(apiRef, props)
|
|
|
16
16
|
var handleRowsScrollEnd = React.useCallback(function (scrollPosition) {
|
|
17
17
|
var dimensions = apiRef.current.getRootDimensions(); // Prevent the infite loading working in combination with lazy loading
|
|
18
18
|
|
|
19
|
-
if (!dimensions || props.rowsLoadingMode !==
|
|
19
|
+
if (!dimensions || props.rowsLoadingMode !== 'client') {
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { useGridApiEventHandler,
|
|
3
|
+
import { useGridApiEventHandler, useGridSelector, gridSortModelSelector, gridFilterModelSelector, useGridApiOptionHandler } from '@mui/x-data-grid';
|
|
4
4
|
import { useGridVisibleRows, getRenderableIndexes } from '@mui/x-data-grid/internals';
|
|
5
5
|
|
|
6
|
-
function findSkeletonRowsSection(
|
|
6
|
+
function findSkeletonRowsSection(_ref) {
|
|
7
|
+
var apiRef = _ref.apiRef,
|
|
8
|
+
visibleRows = _ref.visibleRows,
|
|
9
|
+
range = _ref.range;
|
|
7
10
|
var firstRowIndex = range.firstRowIndex,
|
|
8
11
|
lastRowIndex = range.lastRowIndex;
|
|
9
12
|
var visibleRowsSection = visibleRows.slice(range.firstRowIndex, range.lastRowIndex);
|
|
@@ -12,16 +15,19 @@ function findSkeletonRowsSection(visibleRows, range) {
|
|
|
12
15
|
var isSkeletonSectionFound = false;
|
|
13
16
|
|
|
14
17
|
while (!isSkeletonSectionFound && firstRowIndex < lastRowIndex) {
|
|
15
|
-
|
|
18
|
+
var isStartingWithASkeletonRow = apiRef.current.getRowNode(visibleRowsSection[startIndex].id).type === 'skeletonRow';
|
|
19
|
+
var isEndingWithASkeletonRow = apiRef.current.getRowNode(visibleRowsSection[endIndex].id).type === 'skeletonRow';
|
|
20
|
+
|
|
21
|
+
if (isStartingWithASkeletonRow && isEndingWithASkeletonRow) {
|
|
16
22
|
isSkeletonSectionFound = true;
|
|
17
23
|
}
|
|
18
24
|
|
|
19
|
-
if (
|
|
25
|
+
if (!isStartingWithASkeletonRow) {
|
|
20
26
|
startIndex += 1;
|
|
21
27
|
firstRowIndex += 1;
|
|
22
28
|
}
|
|
23
29
|
|
|
24
|
-
if (
|
|
30
|
+
if (!isEndingWithASkeletonRow) {
|
|
25
31
|
endIndex -= 1;
|
|
26
32
|
lastRowIndex -= 1;
|
|
27
33
|
}
|
|
@@ -33,16 +39,16 @@ function findSkeletonRowsSection(visibleRows, range) {
|
|
|
33
39
|
} : undefined;
|
|
34
40
|
}
|
|
35
41
|
|
|
36
|
-
function isLazyLoadingDisabled(
|
|
37
|
-
var lazyLoadingFeatureFlag =
|
|
38
|
-
rowsLoadingMode =
|
|
39
|
-
gridDimensions =
|
|
42
|
+
function isLazyLoadingDisabled(_ref2) {
|
|
43
|
+
var lazyLoadingFeatureFlag = _ref2.lazyLoadingFeatureFlag,
|
|
44
|
+
rowsLoadingMode = _ref2.rowsLoadingMode,
|
|
45
|
+
gridDimensions = _ref2.gridDimensions;
|
|
40
46
|
|
|
41
47
|
if (!lazyLoadingFeatureFlag || !gridDimensions) {
|
|
42
48
|
return true;
|
|
43
49
|
}
|
|
44
50
|
|
|
45
|
-
if (rowsLoadingMode !==
|
|
51
|
+
if (rowsLoadingMode !== 'server') {
|
|
46
52
|
return true;
|
|
47
53
|
}
|
|
48
54
|
|
|
@@ -67,8 +73,8 @@ export var useGridLazyLoader = function useGridLazyLoader(apiRef, props) {
|
|
|
67
73
|
lastRowToRender: 0
|
|
68
74
|
});
|
|
69
75
|
|
|
70
|
-
var
|
|
71
|
-
lazyLoading =
|
|
76
|
+
var _ref3 = (_props$experimentalFe = props.experimentalFeatures) != null ? _props$experimentalFe : {},
|
|
77
|
+
lazyLoading = _ref3.lazyLoading;
|
|
72
78
|
|
|
73
79
|
var getCurrentIntervalToRender = React.useCallback(function () {
|
|
74
80
|
var currentRenderContext = apiRef.current.unstable_getRenderContext();
|
|
@@ -112,9 +118,13 @@ export var useGridLazyLoader = function useGridLazyLoader(apiRef, props) {
|
|
|
112
118
|
}
|
|
113
119
|
|
|
114
120
|
if (sortModel.length === 0 && filterModel.items.length === 0) {
|
|
115
|
-
var skeletonRowsSection = findSkeletonRowsSection(
|
|
116
|
-
|
|
117
|
-
|
|
121
|
+
var skeletonRowsSection = findSkeletonRowsSection({
|
|
122
|
+
apiRef: apiRef,
|
|
123
|
+
visibleRows: visibleRows.rows,
|
|
124
|
+
range: {
|
|
125
|
+
firstRowIndex: params.firstRowToRender,
|
|
126
|
+
lastRowIndex: params.lastRowToRender
|
|
127
|
+
}
|
|
118
128
|
});
|
|
119
129
|
|
|
120
130
|
if (!skeletonRowsSection) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
1
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid/internals';
|
|
5
|
-
import {
|
|
5
|
+
import { GRID_ROOT_GROUP_ID } from '@mui/x-data-grid';
|
|
6
6
|
export var GRID_SKELETON_ROW_ROOT_ID = 'auto-generated-skeleton-row-root';
|
|
7
7
|
|
|
8
8
|
var getSkeletonRowId = function getSkeletonRowId(index) {
|
|
@@ -16,19 +16,33 @@ export var useGridLazyLoaderPreProcessors = function useGridLazyLoaderPreProcess
|
|
|
16
16
|
lazyLoading = _ref.lazyLoading;
|
|
17
17
|
|
|
18
18
|
var addSkeletonRows = React.useCallback(function (groupingParams) {
|
|
19
|
-
|
|
19
|
+
var tree = _extends({}, groupingParams.tree);
|
|
20
|
+
|
|
21
|
+
var rootGroup = tree[GRID_ROOT_GROUP_ID];
|
|
22
|
+
|
|
23
|
+
if (!lazyLoading || props.rowsLoadingMode !== 'server' || !props.rowCount || rootGroup.children.length >= props.rowCount) {
|
|
20
24
|
return groupingParams;
|
|
21
25
|
}
|
|
22
26
|
|
|
23
|
-
var
|
|
27
|
+
var rootGroupChildren = _toConsumableArray(rootGroup.children);
|
|
24
28
|
|
|
25
|
-
for (var i = 0; i < props.rowCount -
|
|
29
|
+
for (var i = 0; i < props.rowCount - rootGroup.children.length; i += 1) {
|
|
26
30
|
var skeletonId = getSkeletonRowId(i);
|
|
27
|
-
|
|
31
|
+
rootGroupChildren.push(skeletonId);
|
|
32
|
+
var skeletonRowNode = {
|
|
33
|
+
type: 'skeletonRow',
|
|
34
|
+
id: skeletonId,
|
|
35
|
+
parent: GRID_ROOT_GROUP_ID,
|
|
36
|
+
depth: 0
|
|
37
|
+
};
|
|
38
|
+
tree[skeletonId] = skeletonRowNode;
|
|
28
39
|
}
|
|
29
40
|
|
|
41
|
+
tree[GRID_ROOT_GROUP_ID] = _extends({}, rootGroup, {
|
|
42
|
+
children: rootGroupChildren
|
|
43
|
+
});
|
|
30
44
|
return _extends({}, groupingParams, {
|
|
31
|
-
|
|
45
|
+
tree: tree
|
|
32
46
|
});
|
|
33
47
|
}, [props.rowCount, props.rowsLoadingMode, lazyLoading]);
|
|
34
48
|
useGridRegisterPipeProcessor(apiRef, 'hydrateRows', addSkeletonRows);
|
|
@@ -3,42 +3,68 @@ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid/internals';
|
|
6
|
+
import { GRID_ROOT_GROUP_ID } from '@mui/x-data-grid';
|
|
7
|
+
import { insertNodeInTree } from '../../../utils/tree/utils';
|
|
6
8
|
export function addPinnedRow(_ref) {
|
|
7
|
-
var _groupingParams$addit;
|
|
9
|
+
var _groupingParams$addit, _groupingParams$addit2, _groupingParams$addit3, _groupingParams$addit4;
|
|
8
10
|
|
|
9
11
|
var groupingParams = _ref.groupingParams,
|
|
10
12
|
rowModel = _ref.rowModel,
|
|
11
13
|
rowId = _ref.rowId,
|
|
12
14
|
position = _ref.position,
|
|
13
|
-
apiRef = _ref.apiRef
|
|
15
|
+
apiRef = _ref.apiRef,
|
|
16
|
+
isAutoGenerated = _ref.isAutoGenerated;
|
|
14
17
|
|
|
15
|
-
var
|
|
18
|
+
var dataRowIdToModelLookup = _extends({}, groupingParams.dataRowIdToModelLookup);
|
|
16
19
|
|
|
17
|
-
var
|
|
20
|
+
var dataRowIdToIdLookup = _extends({}, groupingParams.dataRowIdToIdLookup);
|
|
18
21
|
|
|
22
|
+
var tree = _extends({}, groupingParams.tree);
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
// ids.push(rowId);
|
|
24
|
+
var treeDepths = _extends({}, groupingParams.treeDepths); // TODO: warn if id is already present in `props.rows`
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
|
|
27
|
+
var node = {
|
|
28
|
+
type: 'pinnedRow',
|
|
24
29
|
id: rowId,
|
|
25
|
-
isAutoGenerated: false,
|
|
26
|
-
parent: null,
|
|
27
30
|
depth: 0,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
isPinned: true
|
|
31
|
+
parent: GRID_ROOT_GROUP_ID,
|
|
32
|
+
isAutoGenerated: isAutoGenerated
|
|
31
33
|
};
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
insertNodeInTree({
|
|
35
|
+
node: node,
|
|
36
|
+
tree: tree,
|
|
37
|
+
treeDepths: treeDepths
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
if (!isAutoGenerated) {
|
|
41
|
+
dataRowIdToModelLookup[rowId] = rowModel;
|
|
42
|
+
dataRowIdToIdLookup[rowId] = rowId;
|
|
43
|
+
} // Do not push it to ids list so that pagination is not affected by pinned rows
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
apiRef.current.unstable_caches.rows.dataRowIdToModelLookup[rowId] = _extends({}, rowModel);
|
|
47
|
+
apiRef.current.unstable_caches.rows.dataRowIdToIdLookup[rowId] = rowId;
|
|
34
48
|
var previousPinnedRows = ((_groupingParams$addit = groupingParams.additionalRowGroups) == null ? void 0 : _groupingParams$addit.pinnedRows) || {};
|
|
35
49
|
var newPinnedRow = {
|
|
36
50
|
id: rowId,
|
|
37
51
|
model: rowModel
|
|
38
52
|
};
|
|
53
|
+
|
|
54
|
+
if ((_groupingParams$addit2 = groupingParams.additionalRowGroups) != null && (_groupingParams$addit3 = _groupingParams$addit2.pinnedRows) != null && (_groupingParams$addit4 = _groupingParams$addit3[position]) != null && _groupingParams$addit4.includes(newPinnedRow)) {
|
|
55
|
+
return _extends({}, groupingParams, {
|
|
56
|
+
dataRowIdToModelLookup: dataRowIdToModelLookup,
|
|
57
|
+
dataRowIdToIdLookup: dataRowIdToIdLookup,
|
|
58
|
+
tree: tree,
|
|
59
|
+
treeDepths: treeDepths
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
39
63
|
return _extends({}, groupingParams, {
|
|
40
|
-
|
|
64
|
+
dataRowIdToModelLookup: dataRowIdToModelLookup,
|
|
65
|
+
dataRowIdToIdLookup: dataRowIdToIdLookup,
|
|
41
66
|
tree: tree,
|
|
67
|
+
treeDepths: treeDepths,
|
|
42
68
|
additionalRowGroups: _extends({}, groupingParams.additionalRowGroups, {
|
|
43
69
|
pinnedRows: _extends({}, previousPinnedRows, _defineProperty({}, position, [].concat(_toConsumableArray(previousPinnedRows[position] || []), [newPinnedRow])))
|
|
44
70
|
})
|
|
@@ -46,7 +72,7 @@ export function addPinnedRow(_ref) {
|
|
|
46
72
|
}
|
|
47
73
|
export var useGridRowPinningPreProcessors = function useGridRowPinningPreProcessors(apiRef) {
|
|
48
74
|
var addPinnedRows = React.useCallback(function (groupingParams) {
|
|
49
|
-
var _pinnedRowsCache$topI, _pinnedRowsCache$bott;
|
|
75
|
+
var _pinnedRowsCache$topI, _pinnedRowsCache$bott, _pinnedRowsCache$bott2, _pinnedRowsCache$topI2;
|
|
50
76
|
|
|
51
77
|
var pinnedRowsCache = apiRef.current.unstable_caches.pinnedRows || {};
|
|
52
78
|
|
|
@@ -63,7 +89,8 @@ export var useGridRowPinningPreProcessors = function useGridRowPinningPreProcess
|
|
|
63
89
|
rowModel: pinnedRowsCache.idLookup[rowId],
|
|
64
90
|
rowId: rowId,
|
|
65
91
|
position: 'top',
|
|
66
|
-
apiRef: apiRef
|
|
92
|
+
apiRef: apiRef,
|
|
93
|
+
isAutoGenerated: false
|
|
67
94
|
});
|
|
68
95
|
});
|
|
69
96
|
(_pinnedRowsCache$bott = pinnedRowsCache.bottomIds) == null ? void 0 : _pinnedRowsCache$bott.forEach(function (rowId) {
|
|
@@ -72,17 +99,27 @@ export var useGridRowPinningPreProcessors = function useGridRowPinningPreProcess
|
|
|
72
99
|
rowModel: pinnedRowsCache.idLookup[rowId],
|
|
73
100
|
rowId: rowId,
|
|
74
101
|
position: 'bottom',
|
|
75
|
-
apiRef: apiRef
|
|
102
|
+
apiRef: apiRef,
|
|
103
|
+
isAutoGenerated: false
|
|
76
104
|
});
|
|
77
|
-
}); // If row with the same `id` is present both in `rows` and `pinnedRows` - remove it from
|
|
105
|
+
}); // If row with the same `id` is present both in `rows` and `pinnedRows` - remove it from the root group children
|
|
78
106
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
107
|
+
if ((_pinnedRowsCache$bott2 = pinnedRowsCache.bottomIds) != null && _pinnedRowsCache$bott2.length || (_pinnedRowsCache$topI2 = pinnedRowsCache.topIds) != null && _pinnedRowsCache$topI2.length) {
|
|
108
|
+
var shouldKeepRow = function shouldKeepRow(rowId) {
|
|
109
|
+
if (newGroupingParams.tree[rowId] && newGroupingParams.tree[rowId].type === 'pinnedRow') {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return true;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
var rootGroupNode = newGroupingParams.tree[GRID_ROOT_GROUP_ID];
|
|
117
|
+
newGroupingParams.tree[GRID_ROOT_GROUP_ID] = _extends({}, rootGroupNode, {
|
|
118
|
+
children: rootGroupNode.children.filter(shouldKeepRow)
|
|
119
|
+
});
|
|
120
|
+
newGroupingParams.dataRowIds = newGroupingParams.dataRowIds.filter(shouldKeepRow);
|
|
121
|
+
}
|
|
83
122
|
|
|
84
|
-
return true;
|
|
85
|
-
});
|
|
86
123
|
return newGroupingParams;
|
|
87
124
|
}, [apiRef]);
|
|
88
125
|
useGridRegisterPipeProcessor(apiRef, 'hydrateRows', addPinnedRows);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { unstable_composeClasses as composeClasses } from '@mui/material';
|
|
4
|
-
import { useGridLogger, useGridApiEventHandler, getDataGridUtilityClass, useGridSelector, gridSortModelSelector,
|
|
4
|
+
import { useGridLogger, useGridApiEventHandler, getDataGridUtilityClass, useGridSelector, gridSortModelSelector, gridRowMaximumTreeDepthSelector, useGridApiOptionHandler, gridEditRowsStateSelector } from '@mui/x-data-grid';
|
|
5
5
|
|
|
6
6
|
var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
7
7
|
var classes = ownerState.classes;
|
|
@@ -19,7 +19,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
|
19
19
|
export var useGridRowReorder = function useGridRowReorder(apiRef, props) {
|
|
20
20
|
var logger = useGridLogger(apiRef, 'useGridRowReorder');
|
|
21
21
|
var sortModel = useGridSelector(apiRef, gridSortModelSelector);
|
|
22
|
-
var treeDepth = useGridSelector(apiRef,
|
|
22
|
+
var treeDepth = useGridSelector(apiRef, gridRowMaximumTreeDepthSelector);
|
|
23
23
|
var dragRowNode = React.useRef(null);
|
|
24
24
|
var originRowIndex = React.useRef(null);
|
|
25
25
|
var removeDnDStylesTimeout = React.useRef();
|
|
@@ -64,13 +64,13 @@ export var useGridRowReorder = function useGridRowReorder(apiRef, props) {
|
|
|
64
64
|
originRowIndex.current = apiRef.current.getRowIndex(params.id);
|
|
65
65
|
}, [isRowReorderDisabled, classes.rowDragging, logger, apiRef]);
|
|
66
66
|
var handleDragOver = React.useCallback(function (params, event) {
|
|
67
|
-
var _apiRef$current$getRo;
|
|
68
|
-
|
|
69
67
|
if (dragRowId === '') {
|
|
70
68
|
return;
|
|
71
69
|
}
|
|
72
70
|
|
|
73
|
-
|
|
71
|
+
var rowNode = apiRef.current.getRowNode(params.id);
|
|
72
|
+
|
|
73
|
+
if (!rowNode || rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
|
|
74
74
|
return;
|
|
75
75
|
}
|
|
76
76
|
|
|
@@ -13,7 +13,7 @@ export var GRID_TREE_DATA_GROUPING_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
13
13
|
align: 'left',
|
|
14
14
|
width: 200,
|
|
15
15
|
valueGetter: function valueGetter(params) {
|
|
16
|
-
return params.rowNode.groupingKey;
|
|
16
|
+
return params.rowNode.type === 'group' ? params.rowNode.groupingKey : undefined;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
export var GRID_TREE_DATA_GROUPING_FIELD = '__tree_data_group__';
|
|
@@ -15,14 +15,12 @@ export var filterRowTreeFromTreeData = function filterRowTreeFromTreeData(params
|
|
|
15
15
|
var filteredDescendantCountLookup = {};
|
|
16
16
|
|
|
17
17
|
var filterTreeNode = function filterTreeNode(node, isParentMatchingFilters, areAncestorsExpanded) {
|
|
18
|
-
var _node$children;
|
|
19
|
-
|
|
20
18
|
var shouldSkipFilters = disableChildrenFiltering && node.depth > 0;
|
|
21
19
|
var isMatchingFilters;
|
|
22
20
|
|
|
23
21
|
if (shouldSkipFilters) {
|
|
24
22
|
isMatchingFilters = null;
|
|
25
|
-
} else if (!isRowMatchingFilters || node.
|
|
23
|
+
} else if (!isRowMatchingFilters || node.type === 'footer') {
|
|
26
24
|
isMatchingFilters = true;
|
|
27
25
|
} else {
|
|
28
26
|
var _isRowMatchingFilters = isRowMatchingFilters(node.id),
|
|
@@ -33,13 +31,17 @@ export var filterRowTreeFromTreeData = function filterRowTreeFromTreeData(params
|
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
var filteredDescendantCount = 0;
|
|
36
|
-
(_node$children = node.children) == null ? void 0 : _node$children.forEach(function (childId) {
|
|
37
|
-
var _isMatchingFilters;
|
|
38
34
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
if (node.type === 'group') {
|
|
36
|
+
node.children.forEach(function (childId) {
|
|
37
|
+
var _isMatchingFilters;
|
|
38
|
+
|
|
39
|
+
var childNode = rowTree[childId];
|
|
40
|
+
var childSubTreeSize = filterTreeNode(childNode, (_isMatchingFilters = isMatchingFilters) != null ? _isMatchingFilters : isParentMatchingFilters, areAncestorsExpanded && !!node.childrenExpanded);
|
|
41
|
+
filteredDescendantCount += childSubTreeSize;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
43
45
|
var shouldPassFilters;
|
|
44
46
|
|
|
45
47
|
switch (isMatchingFilters) {
|
|
@@ -63,9 +65,9 @@ export var filterRowTreeFromTreeData = function filterRowTreeFromTreeData(params
|
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
visibleRowsLookup[node.id] = shouldPassFilters && areAncestorsExpanded;
|
|
66
|
-
filteredRowsLookup[node.id] = shouldPassFilters;
|
|
68
|
+
filteredRowsLookup[node.id] = shouldPassFilters; // TODO: Should we keep storing the visibility status of footer independently or rely on the group visibility in the selector ?
|
|
67
69
|
|
|
68
|
-
if (node.footerId != null) {
|
|
70
|
+
if (node.type === 'group' && node.footerId != null) {
|
|
69
71
|
visibleRowsLookup[node.footerId] = shouldPassFilters && areAncestorsExpanded && !!node.childrenExpanded;
|
|
70
72
|
}
|
|
71
73
|
|
|
@@ -75,7 +77,7 @@ export var filterRowTreeFromTreeData = function filterRowTreeFromTreeData(params
|
|
|
75
77
|
|
|
76
78
|
filteredDescendantCountLookup[node.id] = filteredDescendantCount;
|
|
77
79
|
|
|
78
|
-
if (node.
|
|
80
|
+
if (node.type === 'footer') {
|
|
79
81
|
return filteredDescendantCount;
|
|
80
82
|
}
|
|
81
83
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { useGridApiEventHandler
|
|
2
|
+
import { useGridApiEventHandler } from '@mui/x-data-grid';
|
|
3
3
|
export var useGridTreeData = function useGridTreeData(apiRef) {
|
|
4
4
|
/**
|
|
5
5
|
* EVENTS
|
|
@@ -8,11 +8,7 @@ export var useGridTreeData = function useGridTreeData(apiRef) {
|
|
|
8
8
|
var cellParams = apiRef.current.getCellParams(params.id, params.field);
|
|
9
9
|
|
|
10
10
|
if (cellParams.colDef.type === 'treeDataGroup' && event.key === ' ' && !event.shiftKey) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var filteredDescendantCount = (_gridFilteredDescenda = gridFilteredDescendantCountLookupSelector(apiRef)[params.id]) != null ? _gridFilteredDescenda : 0;
|
|
14
|
-
|
|
15
|
-
if (filteredDescendantCount === 0) {
|
|
11
|
+
if (params.rowNode.type !== 'group') {
|
|
16
12
|
return;
|
|
17
13
|
}
|
|
18
14
|
|
|
@@ -3,13 +3,14 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
4
|
var _excluded = ["hideDescendantCount"];
|
|
5
5
|
import * as React from 'react';
|
|
6
|
-
import {
|
|
6
|
+
import { gridRowTreeSelector, useFirstRender, GRID_CHECKBOX_SELECTION_FIELD } from '@mui/x-data-grid';
|
|
7
7
|
import { useGridRegisterPipeProcessor, useGridRegisterStrategyProcessor } from '@mui/x-data-grid/internals';
|
|
8
8
|
import { GRID_TREE_DATA_GROUPING_COL_DEF, GRID_TREE_DATA_GROUPING_COL_DEF_FORCED_PROPERTIES } from './gridTreeDataGroupColDef';
|
|
9
9
|
import { filterRowTreeFromTreeData, TREE_DATA_STRATEGY } from './gridTreeDataUtils';
|
|
10
10
|
import { GridTreeDataGroupingCell } from '../../../components';
|
|
11
|
-
import {
|
|
11
|
+
import { createRowTree } from '../../../utils/tree/createRowTree';
|
|
12
12
|
import { sortRowTree } from '../../../utils/tree/sortRowTree';
|
|
13
|
+
import { updateRowTree } from '../../../utils/tree/updateRowTree';
|
|
13
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
14
15
|
export var useGridTreeDataPreProcessors = function useGridTreeDataPreProcessors(apiRef, props) {
|
|
15
16
|
var setStrategyAvailability = React.useCallback(function () {
|
|
@@ -78,36 +79,51 @@ export var useGridTreeDataPreProcessors = function useGridTreeDataPreProcessors(
|
|
|
78
79
|
|
|
79
80
|
return columnsState;
|
|
80
81
|
}, [props.treeData, getGroupingColDef]);
|
|
81
|
-
var
|
|
82
|
+
var createRowTreeForTreeData = React.useCallback(function (params) {
|
|
82
83
|
if (!props.getTreeDataPath) {
|
|
83
84
|
throw new Error('MUI: No getTreeDataPath given.');
|
|
84
85
|
}
|
|
85
86
|
|
|
86
|
-
var
|
|
87
|
+
var getRowTreeBuilderNode = function getRowTreeBuilderNode(rowId) {
|
|
87
88
|
return {
|
|
88
89
|
id: rowId,
|
|
89
|
-
path: props.getTreeDataPath(params.
|
|
90
|
+
path: props.getTreeDataPath(params.dataRowIdToModelLookup[rowId]).map(function (key) {
|
|
90
91
|
return {
|
|
91
92
|
key: key,
|
|
92
93
|
field: null
|
|
93
94
|
};
|
|
94
95
|
})
|
|
95
96
|
};
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
var onDuplicatePath = function onDuplicatePath(firstId, secondId, path) {
|
|
100
|
+
throw new Error(['MUI: The path returned by `getTreeDataPath` should be unique.', "The rows with id #".concat(firstId, " and #").concat(secondId, " have the same."), "Path: ".concat(JSON.stringify(path.map(function (step) {
|
|
101
|
+
return step.key;
|
|
102
|
+
})), ".")].join('\n'));
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
if (params.updates.type === 'full') {
|
|
106
|
+
return createRowTree({
|
|
107
|
+
nodes: params.updates.rows.map(getRowTreeBuilderNode),
|
|
108
|
+
defaultGroupingExpansionDepth: props.defaultGroupingExpansionDepth,
|
|
109
|
+
isGroupExpandedByDefault: props.isGroupExpandedByDefault,
|
|
110
|
+
groupingName: TREE_DATA_STRATEGY,
|
|
111
|
+
onDuplicatePath: onDuplicatePath
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return updateRowTree({
|
|
116
|
+
nodes: {
|
|
117
|
+
inserted: params.updates.actions.insert.map(getRowTreeBuilderNode),
|
|
118
|
+
modified: params.updates.actions.modify.map(getRowTreeBuilderNode),
|
|
119
|
+
removed: params.updates.actions.remove
|
|
120
|
+
},
|
|
121
|
+
previousTree: params.previousTree,
|
|
122
|
+
previousTreeDepth: params.previousTreeDepths,
|
|
102
123
|
defaultGroupingExpansionDepth: props.defaultGroupingExpansionDepth,
|
|
103
124
|
isGroupExpandedByDefault: props.isGroupExpandedByDefault,
|
|
104
|
-
groupingName: TREE_DATA_STRATEGY
|
|
105
|
-
|
|
106
|
-
throw new Error(['MUI: The path returned by `getTreeDataPath` should be unique.', "The rows with id #".concat(firstId, " and #").concat(secondId, " have the same."), "Path: ".concat(JSON.stringify(path.map(function (step) {
|
|
107
|
-
return step.key;
|
|
108
|
-
})), ".")].join('\n'));
|
|
109
|
-
}
|
|
110
|
-
}));
|
|
125
|
+
groupingName: TREE_DATA_STRATEGY
|
|
126
|
+
});
|
|
111
127
|
}, [props.getTreeDataPath, props.defaultGroupingExpansionDepth, props.isGroupExpandedByDefault]);
|
|
112
128
|
var filterRows = React.useCallback(function (params) {
|
|
113
129
|
var rowTree = gridRowTreeSelector(apiRef);
|
|
@@ -121,16 +137,15 @@ export var useGridTreeDataPreProcessors = function useGridTreeDataPreProcessors(
|
|
|
121
137
|
}, [apiRef, props.disableChildrenFiltering]);
|
|
122
138
|
var sortRows = React.useCallback(function (params) {
|
|
123
139
|
var rowTree = gridRowTreeSelector(apiRef);
|
|
124
|
-
var rowIds = gridRowIdsSelector(apiRef);
|
|
125
140
|
return sortRowTree({
|
|
126
141
|
rowTree: rowTree,
|
|
127
|
-
rowIds: rowIds,
|
|
128
142
|
sortRowList: params.sortRowList,
|
|
129
|
-
disableChildrenSorting: props.disableChildrenSorting
|
|
143
|
+
disableChildrenSorting: props.disableChildrenSorting,
|
|
144
|
+
shouldRenderGroupBelowLeaves: false
|
|
130
145
|
});
|
|
131
146
|
}, [apiRef, props.disableChildrenSorting]);
|
|
132
147
|
useGridRegisterPipeProcessor(apiRef, 'hydrateColumns', updateGroupingColumn);
|
|
133
|
-
useGridRegisterStrategyProcessor(apiRef, TREE_DATA_STRATEGY, 'rowTreeCreation',
|
|
148
|
+
useGridRegisterStrategyProcessor(apiRef, TREE_DATA_STRATEGY, 'rowTreeCreation', createRowTreeForTreeData);
|
|
134
149
|
useGridRegisterStrategyProcessor(apiRef, TREE_DATA_STRATEGY, 'filtering', filterRows);
|
|
135
150
|
useGridRegisterStrategyProcessor(apiRef, TREE_DATA_STRATEGY, 'sorting', sortRows);
|
|
136
151
|
/**
|
package/legacy/index.js
CHANGED
|
@@ -15,5 +15,7 @@ export { useGridTreeDataPreProcessors } from '../hooks/features/treeData/useGrid
|
|
|
15
15
|
export { TREE_DATA_STRATEGY } from '../hooks/features/treeData/gridTreeDataUtils';
|
|
16
16
|
export { useGridRowPinning, rowPinningStateInitializer } from '../hooks/features/rowPinning/useGridRowPinning';
|
|
17
17
|
export { useGridRowPinningPreProcessors, addPinnedRow } from '../hooks/features/rowPinning/useGridRowPinningPreProcessors';
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
18
|
+
export { createRowTree } from '../utils/tree/createRowTree';
|
|
19
|
+
export { updateRowTree } from '../utils/tree/updateRowTree';
|
|
20
|
+
export { sortRowTree } from '../utils/tree/sortRowTree';
|
|
21
|
+
export { insertNodeInTree, removeNodeFromTree } from '../utils/tree/utils';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import { GRID_ROOT_GROUP_ID } from '@mui/x-data-grid';
|
|
3
|
+
import { buildRootGroup } from '@mui/x-data-grid/internals';
|
|
4
|
+
import { insertDataRowInTree } from './insertDataRowInTree';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Transform a list of rows into a tree structure where each row references its parent and children.
|
|
8
|
+
*/
|
|
9
|
+
export var createRowTree = function createRowTree(params) {
|
|
10
|
+
var dataRowIds = [];
|
|
11
|
+
|
|
12
|
+
var tree = _defineProperty({}, GRID_ROOT_GROUP_ID, buildRootGroup());
|
|
13
|
+
|
|
14
|
+
var treeDepths = {};
|
|
15
|
+
|
|
16
|
+
for (var i = 0; i < params.nodes.length; i += 1) {
|
|
17
|
+
var node = params.nodes[i];
|
|
18
|
+
dataRowIds.push(node.id);
|
|
19
|
+
insertDataRowInTree({
|
|
20
|
+
tree: tree,
|
|
21
|
+
id: node.id,
|
|
22
|
+
path: node.path,
|
|
23
|
+
onDuplicatePath: params.onDuplicatePath,
|
|
24
|
+
treeDepths: treeDepths,
|
|
25
|
+
isGroupExpandedByDefault: params.isGroupExpandedByDefault,
|
|
26
|
+
defaultGroupingExpansionDepth: params.defaultGroupingExpansionDepth
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
tree: tree,
|
|
32
|
+
treeDepths: treeDepths,
|
|
33
|
+
groupingName: params.groupingName,
|
|
34
|
+
dataRowIds: dataRowIds
|
|
35
|
+
};
|
|
36
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { getGroupRowIdFromPath } from './
|
|
1
|
+
export { getGroupRowIdFromPath } from './utils';
|