@mui/x-data-grid-pro 7.28.3 → 7.29.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 +155 -0
- package/DataGridPro/DataGrid.js +2 -9
- package/DataGridPro/DataGridPro.js +232 -238
- package/DataGridPro/index.js +3 -39
- package/DataGridPro/package.json +2 -2
- package/DataGridPro/useDataGridProComponent.js +91 -99
- package/DataGridPro/useDataGridProProps.js +17 -26
- package/components/GridColumnHeaderCollapseIcon.js +0 -1
- package/components/GridColumnHeaders.js +39 -46
- package/components/GridColumnMenuPinningItem.js +39 -46
- package/components/GridDataSourceTreeDataGroupingCell.js +30 -38
- package/components/GridDetailPanel.js +14 -18
- package/components/GridDetailPanelToggleCell.js +35 -42
- package/components/GridDetailPanels.js +19 -25
- package/components/GridPinnedRows.js +12 -20
- package/components/GridProColumnMenu.js +11 -19
- package/components/GridRowReorderCell.js +36 -45
- package/components/GridTreeDataGroupingCell.js +37 -44
- package/components/headerFiltering/GridHeaderFilterCell.js +71 -78
- package/components/headerFiltering/GridHeaderFilterClearButton.js +9 -16
- package/components/headerFiltering/GridHeaderFilterMenu.js +36 -43
- package/components/headerFiltering/GridHeaderFilterMenuContainer.js +41 -48
- package/components/headerFiltering/index.js +3 -38
- package/components/index.js +7 -71
- package/components/package.json +2 -2
- package/components/reexports.js +1 -24
- package/constants/dataGridProDefaultSlotsComponents.js +16 -23
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +30 -39
- package/hooks/features/columnPinning/gridColumnPinningInterface.js +1 -5
- package/hooks/features/columnPinning/index.js +1 -16
- package/hooks/features/columnPinning/useGridColumnPinning.js +32 -42
- package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +10 -19
- package/hooks/features/columnReorder/columnReorderInterfaces.js +1 -5
- package/hooks/features/columnReorder/columnReorderSelector.js +3 -10
- package/hooks/features/columnReorder/index.js +2 -16
- package/hooks/features/columnReorder/useGridColumnReorder.js +25 -35
- package/hooks/features/dataSource/cache.js +3 -11
- package/hooks/features/dataSource/gridDataSourceSelector.js +10 -18
- package/hooks/features/dataSource/interfaces.js +1 -5
- package/hooks/features/dataSource/useGridDataSource.js +34 -44
- package/hooks/features/dataSource/utils.js +9 -17
- package/hooks/features/detailPanel/gridDetailPanelInterface.js +1 -5
- package/hooks/features/detailPanel/gridDetailPanelSelector.js +5 -14
- package/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +14 -27
- package/hooks/features/detailPanel/index.js +3 -53
- package/hooks/features/detailPanel/useGridDetailPanel.js +39 -48
- package/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +18 -27
- package/hooks/features/index.js +9 -99
- package/hooks/features/infiniteLoader/useGridInfiniteLoader.js +18 -27
- package/hooks/features/lazyLoader/useGridLazyLoader.js +14 -22
- package/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +13 -22
- package/hooks/features/rowPinning/gridRowPinningInterface.js +1 -5
- package/hooks/features/rowPinning/gridRowPinningSelector.js +1 -18
- package/hooks/features/rowPinning/index.js +1 -16
- package/hooks/features/rowPinning/useGridRowPinning.js +13 -23
- package/hooks/features/rowPinning/useGridRowPinningPreProcessors.d.ts +1 -1
- package/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +24 -34
- package/hooks/features/rowReorder/gridRowReorderColDef.js +5 -12
- package/hooks/features/rowReorder/index.js +1 -16
- package/hooks/features/rowReorder/useGridRowReorder.js +20 -29
- package/hooks/features/rowReorder/useGridRowReorderPreProcessors.js +12 -21
- package/hooks/features/rows/index.js +1 -16
- package/hooks/features/rows/useGridRowAriaAttributes.js +14 -22
- package/hooks/features/serverSideTreeData/useGridDataSourceTreeDataPreProcessors.js +37 -46
- package/hooks/features/serverSideTreeData/utils.js +6 -13
- package/hooks/features/treeData/gridTreeDataGroupColDef.js +9 -20
- package/hooks/features/treeData/gridTreeDataUtils.js +6 -12
- package/hooks/features/treeData/index.js +1 -12
- package/hooks/features/treeData/useGridTreeData.js +7 -15
- package/hooks/features/treeData/useGridTreeDataPreProcessors.js +37 -46
- package/hooks/index.js +1 -16
- package/hooks/package.json +2 -2
- package/hooks/utils/useGridApiContext.js +2 -8
- package/hooks/utils/useGridApiRef.js +2 -8
- package/hooks/utils/useGridAriaAttributes.js +8 -16
- package/hooks/utils/useGridPrivateApiContext.js +2 -8
- package/hooks/utils/useGridRootProps.js +2 -8
- package/index.js +19 -210
- package/internals/index.js +34 -301
- package/internals/package.json +2 -2
- package/internals/propValidation.js +2 -8
- package/locales/package.json +6 -0
- package/material/icons.js +7 -14
- package/material/index.js +6 -13
- package/material/package.json +2 -2
- package/models/dataGridProProps.js +1 -5
- package/models/gridApiPro.js +1 -5
- package/models/gridFetchRowsParams.js +1 -5
- package/models/gridGroupingColDefOverride.js +1 -5
- package/models/gridProIconSlotsComponent.js +1 -5
- package/models/gridProSlotProps.js +1 -5
- package/models/gridProSlotsComponent.js +1 -5
- package/models/gridRowOrderChangeParams.js +1 -5
- package/models/gridRowScrollEndParams.js +1 -5
- package/models/gridStatePro.js +1 -5
- package/models/index.js +8 -82
- package/models/package.json +2 -2
- package/modern/DataGridPro/DataGridPro.js +2 -1
- package/modern/components/GridDetailPanel.js +2 -0
- package/modern/components/GridDetailPanels.js +2 -0
- package/modern/components/headerFiltering/GridHeaderFilterMenu.js +2 -2
- package/modern/hooks/features/detailPanel/useGridDetailPanel.js +3 -2
- package/modern/index.js +1 -1
- package/modern/utils/releaseInfo.js +1 -1
- package/{esm → node}/DataGridPro/DataGrid.js +9 -2
- package/{esm → node}/DataGridPro/DataGridPro.js +239 -231
- package/node/DataGridPro/index.js +39 -0
- package/node/DataGridPro/useDataGridProComponent.js +111 -0
- package/node/DataGridPro/useDataGridProProps.js +61 -0
- package/node/components/GridColumnHeaderCollapseIcon.js +1 -0
- package/node/components/GridColumnHeaders.js +99 -0
- package/node/components/GridColumnMenuPinningItem.js +97 -0
- package/node/components/GridDataSourceTreeDataGroupingCell.js +118 -0
- package/{esm → node}/components/GridDetailPanel.js +20 -13
- package/node/components/GridDetailPanelToggleCell.js +128 -0
- package/node/components/GridDetailPanels.js +69 -0
- package/node/components/GridPinnedRows.js +48 -0
- package/node/components/GridProColumnMenu.js +29 -0
- package/{esm → node}/components/GridRowReorderCell.js +45 -36
- package/{esm → node}/components/GridTreeDataGroupingCell.js +44 -37
- package/{esm → node}/components/headerFiltering/GridHeaderFilterCell.js +78 -71
- package/node/components/headerFiltering/GridHeaderFilterClearButton.js +28 -0
- package/node/components/headerFiltering/GridHeaderFilterMenu.js +95 -0
- package/node/components/headerFiltering/GridHeaderFilterMenuContainer.js +106 -0
- package/node/components/headerFiltering/index.js +38 -0
- package/node/components/index.js +71 -0
- package/node/components/reexports.js +24 -0
- package/node/constants/dataGridProDefaultSlotsComponents.js +24 -0
- package/{esm → node}/hooks/features/columnHeaders/useGridColumnHeaders.js +39 -30
- package/node/hooks/features/columnPinning/gridColumnPinningInterface.js +5 -0
- package/node/hooks/features/columnPinning/index.js +16 -0
- package/{esm → node}/hooks/features/columnPinning/useGridColumnPinning.js +42 -32
- package/{esm → node}/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +19 -10
- package/node/hooks/features/columnReorder/columnReorderInterfaces.js +5 -0
- package/node/hooks/features/columnReorder/columnReorderSelector.js +10 -0
- package/node/hooks/features/columnReorder/index.js +16 -0
- package/{esm → node}/hooks/features/columnReorder/useGridColumnReorder.js +35 -25
- package/{esm → node}/hooks/features/dataSource/cache.js +11 -3
- package/node/hooks/features/dataSource/gridDataSourceSelector.js +32 -0
- package/node/hooks/features/dataSource/interfaces.js +5 -0
- package/{esm → node}/hooks/features/dataSource/useGridDataSource.js +44 -34
- package/{esm → node}/hooks/features/dataSource/utils.js +17 -9
- package/node/hooks/features/detailPanel/gridDetailPanelInterface.js +5 -0
- package/node/hooks/features/detailPanel/gridDetailPanelSelector.js +21 -0
- package/node/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +47 -0
- package/node/hooks/features/detailPanel/index.js +53 -0
- package/{esm → node}/hooks/features/detailPanel/useGridDetailPanel.js +49 -38
- package/node/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +52 -0
- package/node/hooks/features/index.js +99 -0
- package/{esm → node}/hooks/features/infiniteLoader/useGridInfiniteLoader.js +27 -18
- package/{esm → node}/hooks/features/lazyLoader/useGridLazyLoader.js +22 -14
- package/node/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +43 -0
- package/node/hooks/features/rowPinning/gridRowPinningInterface.js +5 -0
- package/node/hooks/features/rowPinning/gridRowPinningSelector.js +18 -0
- package/node/hooks/features/rowPinning/index.js +16 -0
- package/node/hooks/features/rowPinning/useGridRowPinning.js +62 -0
- package/{esm → node}/hooks/features/rowPinning/useGridRowPinningPreProcessors.js +34 -24
- package/node/hooks/features/rowReorder/gridRowReorderColDef.js +27 -0
- package/node/hooks/features/rowReorder/index.js +16 -0
- package/{esm → node}/hooks/features/rowReorder/useGridRowReorder.js +29 -20
- package/{esm → node}/hooks/features/rowReorder/useGridRowReorderPreProcessors.js +21 -12
- package/node/hooks/features/rows/index.js +16 -0
- package/node/hooks/features/rows/useGridRowAriaAttributes.js +45 -0
- package/{esm → node}/hooks/features/serverSideTreeData/useGridDataSourceTreeDataPreProcessors.js +46 -37
- package/node/hooks/features/serverSideTreeData/utils.js +27 -0
- package/node/hooks/features/treeData/gridTreeDataGroupColDef.js +38 -0
- package/{esm → node}/hooks/features/treeData/gridTreeDataUtils.js +12 -6
- package/node/hooks/features/treeData/index.js +12 -0
- package/node/hooks/features/treeData/useGridTreeData.js +30 -0
- package/{esm → node}/hooks/features/treeData/useGridTreeDataPreProcessors.js +46 -37
- package/node/hooks/index.js +16 -0
- package/node/hooks/utils/useGridApiContext.js +8 -0
- package/node/hooks/utils/useGridApiRef.js +8 -0
- package/node/hooks/utils/useGridAriaAttributes.js +19 -0
- package/node/hooks/utils/useGridPrivateApiContext.js +8 -0
- package/node/hooks/utils/useGridRootProps.js +8 -0
- package/node/index.js +220 -0
- package/node/internals/index.js +302 -0
- package/node/internals/propValidation.js +8 -0
- package/node/material/icons.js +24 -0
- package/node/material/index.js +15 -0
- package/node/models/dataGridProProps.js +5 -0
- package/node/models/gridApiPro.js +5 -0
- package/node/models/gridFetchRowsParams.js +5 -0
- package/node/models/gridGroupingColDefOverride.js +5 -0
- package/node/models/gridProIconSlotsComponent.js +5 -0
- package/node/models/gridProSlotProps.js +5 -0
- package/node/models/gridProSlotsComponent.js +5 -0
- package/node/models/gridRowOrderChangeParams.js +5 -0
- package/node/models/gridRowScrollEndParams.js +5 -0
- package/node/models/gridStatePro.js +5 -0
- package/node/models/index.js +82 -0
- package/node/themeAugmentation/index.js +27 -0
- package/node/themeAugmentation/overrides.js +5 -0
- package/node/themeAugmentation/props.js +5 -0
- package/node/typeOverloads/index.js +16 -0
- package/node/typeOverloads/modules.js +5 -0
- package/node/typeOverloads/reexports.js +26 -0
- package/node/utils/index.js +16 -0
- package/node/utils/releaseInfo.js +20 -0
- package/{esm → node}/utils/tree/createRowTree.js +14 -7
- package/node/utils/tree/index.js +12 -0
- package/{esm → node}/utils/tree/insertDataRowInTree.js +18 -11
- package/node/utils/tree/models.js +5 -0
- package/{esm → node}/utils/tree/removeDataRowFromTree.js +16 -9
- package/{esm → node}/utils/tree/sortRowTree.js +12 -5
- package/{esm → node}/utils/tree/updateRowTree.js +26 -18
- package/{esm → node}/utils/tree/utils.js +34 -18
- package/package.json +9 -9
- package/themeAugmentation/index.js +4 -27
- package/themeAugmentation/overrides.js +1 -5
- package/themeAugmentation/package.json +2 -2
- package/themeAugmentation/props.js +1 -5
- package/typeOverloads/index.js +1 -16
- package/typeOverloads/modules.js +1 -5
- package/typeOverloads/package.json +2 -2
- package/typeOverloads/reexports.js +14 -25
- package/utils/index.js +1 -16
- package/utils/package.json +2 -2
- package/utils/releaseInfo.js +5 -12
- package/utils/tree/createRowTree.js +7 -14
- package/utils/tree/index.js +1 -12
- package/utils/tree/insertDataRowInTree.js +11 -18
- package/utils/tree/models.js +1 -5
- package/utils/tree/removeDataRowFromTree.js +9 -16
- package/utils/tree/sortRowTree.js +5 -12
- package/utils/tree/updateRowTree.js +18 -26
- package/utils/tree/utils.js +18 -34
- package/esm/DataGridPro/index.js +0 -3
- package/esm/DataGridPro/useDataGridProComponent.js +0 -103
- package/esm/DataGridPro/useDataGridProProps.js +0 -52
- package/esm/components/GridColumnHeaderCollapseIcon.js +0 -0
- package/esm/components/GridColumnHeaders.js +0 -92
- package/esm/components/GridColumnMenuPinningItem.js +0 -90
- package/esm/components/GridDataSourceTreeDataGroupingCell.js +0 -110
- package/esm/components/GridDetailPanelToggleCell.js +0 -121
- package/esm/components/GridDetailPanels.js +0 -60
- package/esm/components/GridPinnedRows.js +0 -40
- package/esm/components/GridProColumnMenu.js +0 -21
- package/esm/components/headerFiltering/GridHeaderFilterClearButton.js +0 -21
- package/esm/components/headerFiltering/GridHeaderFilterMenu.js +0 -88
- package/esm/components/headerFiltering/GridHeaderFilterMenuContainer.js +0 -99
- package/esm/components/headerFiltering/index.js +0 -3
- package/esm/components/index.js +0 -7
- package/esm/components/reexports.js +0 -1
- package/esm/constants/dataGridProDefaultSlotsComponents.js +0 -17
- package/esm/hooks/features/columnPinning/gridColumnPinningInterface.js +0 -1
- package/esm/hooks/features/columnPinning/index.js +0 -1
- package/esm/hooks/features/columnReorder/columnReorderInterfaces.js +0 -1
- package/esm/hooks/features/columnReorder/columnReorderSelector.js +0 -3
- package/esm/hooks/features/columnReorder/index.js +0 -2
- package/esm/hooks/features/dataSource/gridDataSourceSelector.js +0 -24
- package/esm/hooks/features/dataSource/interfaces.js +0 -1
- package/esm/hooks/features/detailPanel/gridDetailPanelInterface.js +0 -1
- package/esm/hooks/features/detailPanel/gridDetailPanelSelector.js +0 -12
- package/esm/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +0 -34
- package/esm/hooks/features/detailPanel/index.js +0 -3
- package/esm/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +0 -43
- package/esm/hooks/features/index.js +0 -9
- package/esm/hooks/features/lazyLoader/useGridLazyLoaderPreProcessors.js +0 -34
- package/esm/hooks/features/rowPinning/gridRowPinningInterface.js +0 -1
- package/esm/hooks/features/rowPinning/gridRowPinningSelector.js +0 -1
- package/esm/hooks/features/rowPinning/index.js +0 -1
- package/esm/hooks/features/rowPinning/useGridRowPinning.js +0 -52
- package/esm/hooks/features/rowReorder/gridRowReorderColDef.js +0 -20
- package/esm/hooks/features/rowReorder/index.js +0 -1
- package/esm/hooks/features/rows/index.js +0 -1
- package/esm/hooks/features/rows/useGridRowAriaAttributes.js +0 -37
- package/esm/hooks/features/serverSideTreeData/utils.js +0 -20
- package/esm/hooks/features/treeData/gridTreeDataGroupColDef.js +0 -27
- package/esm/hooks/features/treeData/index.js +0 -1
- package/esm/hooks/features/treeData/useGridTreeData.js +0 -22
- package/esm/hooks/index.js +0 -1
- package/esm/hooks/utils/useGridApiContext.js +0 -2
- package/esm/hooks/utils/useGridApiRef.js +0 -2
- package/esm/hooks/utils/useGridAriaAttributes.js +0 -11
- package/esm/hooks/utils/useGridPrivateApiContext.js +0 -2
- package/esm/hooks/utils/useGridRootProps.js +0 -2
- package/esm/index.js +0 -22
- package/esm/internals/index.js +0 -35
- package/esm/internals/propValidation.js +0 -2
- package/esm/material/icons.js +0 -17
- package/esm/material/index.js +0 -8
- package/esm/models/dataGridProProps.js +0 -1
- package/esm/models/gridApiPro.js +0 -1
- package/esm/models/gridFetchRowsParams.js +0 -1
- package/esm/models/gridGroupingColDefOverride.js +0 -1
- package/esm/models/gridProIconSlotsComponent.js +0 -1
- package/esm/models/gridProSlotProps.js +0 -1
- package/esm/models/gridProSlotsComponent.js +0 -1
- package/esm/models/gridRowOrderChangeParams.js +0 -1
- package/esm/models/gridRowScrollEndParams.js +0 -1
- package/esm/models/gridStatePro.js +0 -1
- package/esm/models/index.js +0 -8
- package/esm/themeAugmentation/index.js +0 -4
- package/esm/themeAugmentation/overrides.js +0 -1
- package/esm/themeAugmentation/props.js +0 -1
- package/esm/typeOverloads/index.js +0 -1
- package/esm/typeOverloads/modules.js +0 -1
- package/esm/typeOverloads/reexports.js +0 -15
- package/esm/utils/index.js +0 -1
- package/esm/utils/releaseInfo.js +0 -13
- package/esm/utils/tree/index.js +0 -1
- package/esm/utils/tree/models.js +0 -1
- /package/{locales.d.ts → locales/index.d.ts} +0 -0
- /package/{esm/locales.js → locales/index.js} +0 -0
- /package/modern/{locales.js → locales/index.js} +0 -0
- /package/{locales.js → node/locales/index.js} +0 -0
|
@@ -1,31 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.runIfServerMode = exports.RequestStatus = exports.NestedDataManager = void 0;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
9
2
|
const MAX_CONCURRENT_REQUESTS = Infinity;
|
|
10
|
-
const runIfServerMode = (modeProp, fn) => () => {
|
|
3
|
+
export const runIfServerMode = (modeProp, fn) => () => {
|
|
11
4
|
if (modeProp === 'server') {
|
|
12
5
|
fn();
|
|
13
6
|
}
|
|
14
7
|
};
|
|
15
|
-
|
|
16
|
-
let RequestStatus = exports.RequestStatus = /*#__PURE__*/function (RequestStatus) {
|
|
8
|
+
export let RequestStatus = /*#__PURE__*/function (RequestStatus) {
|
|
17
9
|
RequestStatus[RequestStatus["QUEUED"] = 0] = "QUEUED";
|
|
18
10
|
RequestStatus[RequestStatus["PENDING"] = 1] = "PENDING";
|
|
19
11
|
RequestStatus[RequestStatus["SETTLED"] = 2] = "SETTLED";
|
|
20
12
|
RequestStatus[RequestStatus["UNKNOWN"] = 3] = "UNKNOWN";
|
|
21
13
|
return RequestStatus;
|
|
22
14
|
}({});
|
|
15
|
+
|
|
23
16
|
/**
|
|
24
17
|
* Fetches row children from the server with option to limit the number of concurrent requests
|
|
25
18
|
* Determines the status of a request based on the enum `RequestStatus`
|
|
26
19
|
* Uses `GridRowId` to uniquely identify a request
|
|
27
20
|
*/
|
|
28
|
-
class NestedDataManager {
|
|
21
|
+
export class NestedDataManager {
|
|
29
22
|
constructor(privateApiRef, maxConcurrentRequests = MAX_CONCURRENT_REQUESTS) {
|
|
30
23
|
this.pendingRequests = new Set();
|
|
31
24
|
this.queuedRequests = new Set();
|
|
@@ -54,9 +47,9 @@ class NestedDataManager {
|
|
|
54
47
|
this.queuedRequests.add(id);
|
|
55
48
|
loadingIds[id] = true;
|
|
56
49
|
});
|
|
57
|
-
this.api.setState(state => (
|
|
58
|
-
dataSource: (
|
|
59
|
-
loading: (
|
|
50
|
+
this.api.setState(state => _extends({}, state, {
|
|
51
|
+
dataSource: _extends({}, state.dataSource, {
|
|
52
|
+
loading: _extends({}, state.dataSource.loading, loadingIds)
|
|
60
53
|
})
|
|
61
54
|
}));
|
|
62
55
|
this.processQueue();
|
|
@@ -91,5 +84,4 @@ class NestedDataManager {
|
|
|
91
84
|
this.api = privateApiRef.current;
|
|
92
85
|
this.maxConcurrentRequests = maxConcurrentRequests;
|
|
93
86
|
}
|
|
94
|
-
}
|
|
95
|
-
exports.NestedDataManager = NestedDataManager;
|
|
87
|
+
}
|
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.gridDetailPanelRawHeightCacheSelector = exports.gridDetailPanelExpandedRowsHeightCacheSelector = exports.gridDetailPanelExpandedRowsContentCacheSelector = exports.gridDetailPanelExpandedRowIdsSelector = void 0;
|
|
7
|
-
var _internals = require("@mui/x-data-grid/internals");
|
|
8
|
-
const gridDetailPanelExpandedRowIdsSelector = state => state.detailPanel.expandedRowIds;
|
|
9
|
-
exports.gridDetailPanelExpandedRowIdsSelector = gridDetailPanelExpandedRowIdsSelector;
|
|
10
|
-
const gridDetailPanelExpandedRowsContentCacheSelector = state => state.detailPanel.contentCache;
|
|
11
|
-
exports.gridDetailPanelExpandedRowsContentCacheSelector = gridDetailPanelExpandedRowsContentCacheSelector;
|
|
12
|
-
const gridDetailPanelRawHeightCacheSelector = state => state.detailPanel.heightCache;
|
|
1
|
+
import { createSelectorMemoized } from '@mui/x-data-grid/internals';
|
|
2
|
+
export const gridDetailPanelExpandedRowIdsSelector = state => state.detailPanel.expandedRowIds;
|
|
3
|
+
export const gridDetailPanelExpandedRowsContentCacheSelector = state => state.detailPanel.contentCache;
|
|
4
|
+
export const gridDetailPanelRawHeightCacheSelector = state => state.detailPanel.heightCache;
|
|
13
5
|
|
|
14
6
|
// TODO v6: Make this selector return the full object, including the autoHeight flag
|
|
15
|
-
|
|
16
|
-
const gridDetailPanelExpandedRowsHeightCacheSelector = exports.gridDetailPanelExpandedRowsHeightCacheSelector = (0, _internals.createSelectorMemoized)(gridDetailPanelRawHeightCacheSelector, heightCache => Object.entries(heightCache).reduce((acc, [id, {
|
|
7
|
+
export const gridDetailPanelExpandedRowsHeightCacheSelector = createSelectorMemoized(gridDetailPanelRawHeightCacheSelector, heightCache => Object.entries(heightCache).reduce((acc, [id, {
|
|
17
8
|
height
|
|
18
9
|
}]) => {
|
|
19
10
|
acc[id] = height || 0;
|
|
@@ -1,27 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: function () {
|
|
12
|
-
return _internals.GRID_DETAIL_PANEL_TOGGLE_FIELD;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
16
|
-
var React = _interopRequireWildcard(require("react"));
|
|
17
|
-
var _xDataGrid = require("@mui/x-data-grid");
|
|
18
|
-
var _internals = require("@mui/x-data-grid/internals");
|
|
19
|
-
var _GridDetailPanelToggleCell = require("../../../components/GridDetailPanelToggleCell");
|
|
20
|
-
var _gridDetailPanelSelector = require("./gridDetailPanelSelector");
|
|
21
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
|
-
const GRID_DETAIL_PANEL_TOGGLE_COL_DEF = exports.GRID_DETAIL_PANEL_TOGGLE_COL_DEF = (0, _extends2.default)({}, _xDataGrid.GRID_STRING_COL_DEF, {
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { GRID_STRING_COL_DEF, gridRowIdSelector } from '@mui/x-data-grid';
|
|
4
|
+
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from '@mui/x-data-grid/internals';
|
|
5
|
+
import { GridDetailPanelToggleCell } from "../../../components/GridDetailPanelToggleCell.js";
|
|
6
|
+
import { gridDetailPanelExpandedRowIdsSelector } from "./gridDetailPanelSelector.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export { GRID_DETAIL_PANEL_TOGGLE_FIELD };
|
|
9
|
+
export const GRID_DETAIL_PANEL_TOGGLE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
23
10
|
type: 'custom',
|
|
24
|
-
field:
|
|
11
|
+
field: GRID_DETAIL_PANEL_TOGGLE_FIELD,
|
|
25
12
|
editable: false,
|
|
26
13
|
sortable: false,
|
|
27
14
|
filterable: false,
|
|
@@ -34,14 +21,14 @@ const GRID_DETAIL_PANEL_TOGGLE_COL_DEF = exports.GRID_DETAIL_PANEL_TOGGLE_COL_DE
|
|
|
34
21
|
align: 'left',
|
|
35
22
|
width: 40,
|
|
36
23
|
valueGetter: (value, row, column, apiRef) => {
|
|
37
|
-
const rowId =
|
|
38
|
-
const expandedRowIds =
|
|
24
|
+
const rowId = gridRowIdSelector(apiRef.current.state, row);
|
|
25
|
+
const expandedRowIds = gridDetailPanelExpandedRowIdsSelector(apiRef.current.state);
|
|
39
26
|
return expandedRowIds.includes(rowId);
|
|
40
27
|
},
|
|
41
|
-
renderCell: params => /*#__PURE__*/(
|
|
28
|
+
renderCell: params => /*#__PURE__*/_jsx(GridDetailPanelToggleCell, _extends({}, params)),
|
|
42
29
|
renderHeader: ({
|
|
43
30
|
colDef
|
|
44
|
-
}) => /*#__PURE__*/(
|
|
31
|
+
}) => /*#__PURE__*/_jsx("div", {
|
|
45
32
|
"aria-label": colDef.headerName
|
|
46
33
|
})
|
|
47
34
|
});
|
|
@@ -1,53 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
var _exportNames = {
|
|
7
|
-
gridDetailPanelExpandedRowIdsSelector: true,
|
|
8
|
-
gridDetailPanelExpandedRowsContentCacheSelector: true,
|
|
9
|
-
gridDetailPanelExpandedRowsHeightCacheSelector: true
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "gridDetailPanelExpandedRowIdsSelector", {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function () {
|
|
14
|
-
return _gridDetailPanelSelector.gridDetailPanelExpandedRowIdsSelector;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
Object.defineProperty(exports, "gridDetailPanelExpandedRowsContentCacheSelector", {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
get: function () {
|
|
20
|
-
return _gridDetailPanelSelector.gridDetailPanelExpandedRowsContentCacheSelector;
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
Object.defineProperty(exports, "gridDetailPanelExpandedRowsHeightCacheSelector", {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
get: function () {
|
|
26
|
-
return _gridDetailPanelSelector.gridDetailPanelExpandedRowsHeightCacheSelector;
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
var _gridDetailPanelToggleColDef = require("./gridDetailPanelToggleColDef");
|
|
30
|
-
Object.keys(_gridDetailPanelToggleColDef).forEach(function (key) {
|
|
31
|
-
if (key === "default" || key === "__esModule") return;
|
|
32
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
33
|
-
if (key in exports && exports[key] === _gridDetailPanelToggleColDef[key]) return;
|
|
34
|
-
Object.defineProperty(exports, key, {
|
|
35
|
-
enumerable: true,
|
|
36
|
-
get: function () {
|
|
37
|
-
return _gridDetailPanelToggleColDef[key];
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
var _gridDetailPanelSelector = require("./gridDetailPanelSelector");
|
|
42
|
-
var _gridDetailPanelInterface = require("./gridDetailPanelInterface");
|
|
43
|
-
Object.keys(_gridDetailPanelInterface).forEach(function (key) {
|
|
44
|
-
if (key === "default" || key === "__esModule") return;
|
|
45
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
46
|
-
if (key in exports && exports[key] === _gridDetailPanelInterface[key]) return;
|
|
47
|
-
Object.defineProperty(exports, key, {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
get: function () {
|
|
50
|
-
return _gridDetailPanelInterface[key];
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
});
|
|
1
|
+
export * from "./gridDetailPanelToggleColDef.js";
|
|
2
|
+
export { gridDetailPanelExpandedRowIdsSelector, gridDetailPanelExpandedRowsContentCacheSelector, gridDetailPanelExpandedRowsHeightCacheSelector } from "./gridDetailPanelSelector.js";
|
|
3
|
+
export * from "./gridDetailPanelInterface.js";
|
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _xDataGrid = require("@mui/x-data-grid");
|
|
12
|
-
var _internals = require("@mui/x-data-grid/internals");
|
|
13
|
-
var _gridDetailPanelToggleColDef = require("./gridDetailPanelToggleColDef");
|
|
14
|
-
var _gridDetailPanelSelector = require("./gridDetailPanelSelector");
|
|
15
|
-
const detailPanelStateInitializer = (state, props) => {
|
|
16
|
-
return (0, _extends2.default)({}, state, {
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useGridSelector, useGridApiEventHandler, useGridApiMethod, gridDataRowIdsSelector } from '@mui/x-data-grid';
|
|
4
|
+
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid/internals';
|
|
5
|
+
import { GRID_DETAIL_PANEL_TOGGLE_FIELD } from "./gridDetailPanelToggleColDef.js";
|
|
6
|
+
import { gridDetailPanelExpandedRowIdsSelector, gridDetailPanelExpandedRowsContentCacheSelector, gridDetailPanelExpandedRowsHeightCacheSelector, gridDetailPanelRawHeightCacheSelector } from "./gridDetailPanelSelector.js";
|
|
7
|
+
export const detailPanelStateInitializer = (state, props) => {
|
|
8
|
+
return _extends({}, state, {
|
|
17
9
|
detailPanel: {
|
|
18
10
|
heightCache: {},
|
|
19
11
|
expandedRowIds: props.detailPanelExpandedRowIds ?? props.initialState?.detailPanel?.expandedRowIds ?? []
|
|
20
12
|
}
|
|
21
13
|
});
|
|
22
14
|
};
|
|
23
|
-
exports.detailPanelStateInitializer = detailPanelStateInitializer;
|
|
24
15
|
function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeight, previousHeightCache) {
|
|
25
16
|
if (typeof getDetailPanelContent !== 'function') {
|
|
26
17
|
return {};
|
|
@@ -28,7 +19,7 @@ function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeig
|
|
|
28
19
|
|
|
29
20
|
// TODO change to lazy approach using a Proxy
|
|
30
21
|
// only call getDetailPanelContent when asked for an id
|
|
31
|
-
const rowIds =
|
|
22
|
+
const rowIds = gridDataRowIdsSelector(apiRef);
|
|
32
23
|
const contentCache = rowIds.reduce((acc, id) => {
|
|
33
24
|
const params = apiRef.current.getRowParams(id);
|
|
34
25
|
acc[id] = getDetailPanelContent(params);
|
|
@@ -52,11 +43,10 @@ function cacheContentAndHeight(apiRef, getDetailPanelContent, getDetailPanelHeig
|
|
|
52
43
|
heightCache
|
|
53
44
|
};
|
|
54
45
|
}
|
|
55
|
-
const useGridDetailPanel = (apiRef, props) => {
|
|
56
|
-
const
|
|
57
|
-
const contentCache = (0, _xDataGrid.useGridSelector)(apiRef, _gridDetailPanelSelector.gridDetailPanelExpandedRowsContentCacheSelector);
|
|
46
|
+
export const useGridDetailPanel = (apiRef, props) => {
|
|
47
|
+
const contentCache = useGridSelector(apiRef, gridDetailPanelExpandedRowsContentCacheSelector);
|
|
58
48
|
const handleCellClick = React.useCallback((params, event) => {
|
|
59
|
-
if (params.field !==
|
|
49
|
+
if (params.field !== GRID_DETAIL_PANEL_TOGGLE_FIELD || props.getDetailPanelContent == null) {
|
|
60
50
|
return;
|
|
61
51
|
}
|
|
62
52
|
const content = contentCache[params.id];
|
|
@@ -74,17 +64,17 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
74
64
|
if (props.getDetailPanelContent == null) {
|
|
75
65
|
return;
|
|
76
66
|
}
|
|
77
|
-
if (params.field ===
|
|
67
|
+
if (params.field === GRID_DETAIL_PANEL_TOGGLE_FIELD && event.key === ' ') {
|
|
78
68
|
apiRef.current.toggleDetailPanel(params.id);
|
|
79
69
|
}
|
|
80
70
|
}, [apiRef, props.getDetailPanelContent]);
|
|
81
|
-
|
|
82
|
-
|
|
71
|
+
useGridApiEventHandler(apiRef, 'cellClick', handleCellClick);
|
|
72
|
+
useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
|
|
83
73
|
apiRef.current.registerControlState({
|
|
84
74
|
stateId: 'detailPanels',
|
|
85
75
|
propModel: props.detailPanelExpandedRowIds,
|
|
86
76
|
propOnChange: props.onDetailPanelExpandedRowIdsChange,
|
|
87
|
-
stateSelector:
|
|
77
|
+
stateSelector: gridDetailPanelExpandedRowIdsSelector,
|
|
88
78
|
changeEvent: 'detailPanelsExpandedRowIdsChange'
|
|
89
79
|
});
|
|
90
80
|
const toggleDetailPanel = React.useCallback(id => {
|
|
@@ -98,26 +88,27 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
98
88
|
const ids = apiRef.current.getExpandedDetailPanels();
|
|
99
89
|
apiRef.current.setExpandedDetailPanels(ids.includes(id) ? ids.filter(rowId => rowId !== id) : [...ids, id]);
|
|
100
90
|
}, [apiRef, contentCache, props.getDetailPanelContent]);
|
|
101
|
-
const getExpandedDetailPanels = React.useCallback(() =>
|
|
91
|
+
const getExpandedDetailPanels = React.useCallback(() => gridDetailPanelExpandedRowIdsSelector(apiRef.current.state), [apiRef]);
|
|
102
92
|
const setExpandedDetailPanels = React.useCallback(ids => {
|
|
103
93
|
apiRef.current.setState(state => {
|
|
104
|
-
return (
|
|
105
|
-
detailPanel: (
|
|
94
|
+
return _extends({}, state, {
|
|
95
|
+
detailPanel: _extends({}, state.detailPanel, {
|
|
106
96
|
expandedRowIds: ids
|
|
107
97
|
})
|
|
108
98
|
});
|
|
109
99
|
});
|
|
100
|
+
apiRef.current.requestPipeProcessorsApplication('rowHeight');
|
|
110
101
|
}, [apiRef]);
|
|
111
102
|
const storeDetailPanelHeight = React.useCallback((id, height) => {
|
|
112
|
-
const heightCache =
|
|
103
|
+
const heightCache = gridDetailPanelRawHeightCacheSelector(apiRef.current.state);
|
|
113
104
|
if (!heightCache[id] || heightCache[id].height === height) {
|
|
114
105
|
return;
|
|
115
106
|
}
|
|
116
107
|
apiRef.current.setState(state => {
|
|
117
|
-
return (
|
|
118
|
-
detailPanel: (
|
|
119
|
-
heightCache: (
|
|
120
|
-
[id]: (
|
|
108
|
+
return _extends({}, state, {
|
|
109
|
+
detailPanel: _extends({}, state.detailPanel, {
|
|
110
|
+
heightCache: _extends({}, heightCache, {
|
|
111
|
+
[id]: _extends({}, heightCache[id], {
|
|
121
112
|
height
|
|
122
113
|
})
|
|
123
114
|
})
|
|
@@ -127,7 +118,7 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
127
118
|
apiRef.current.requestPipeProcessorsApplication('rowHeight');
|
|
128
119
|
}, [apiRef]);
|
|
129
120
|
const detailPanelHasAutoHeight = React.useCallback(id => {
|
|
130
|
-
const heightCache =
|
|
121
|
+
const heightCache = gridDetailPanelRawHeightCacheSelector(apiRef.current.state);
|
|
131
122
|
return heightCache[id] ? heightCache[id].autoHeight : false;
|
|
132
123
|
}, [apiRef]);
|
|
133
124
|
const detailPanelPubicApi = {
|
|
@@ -139,11 +130,11 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
139
130
|
storeDetailPanelHeight,
|
|
140
131
|
detailPanelHasAutoHeight
|
|
141
132
|
};
|
|
142
|
-
|
|
143
|
-
|
|
133
|
+
useGridApiMethod(apiRef, detailPanelPubicApi, 'public');
|
|
134
|
+
useGridApiMethod(apiRef, detailPanelPrivateApi, 'private');
|
|
144
135
|
React.useEffect(() => {
|
|
145
136
|
if (props.detailPanelExpandedRowIds) {
|
|
146
|
-
const currentModel =
|
|
137
|
+
const currentModel = gridDetailPanelExpandedRowIdsSelector(apiRef.current.state);
|
|
147
138
|
if (currentModel !== props.detailPanelExpandedRowIds) {
|
|
148
139
|
apiRef.current.setExpandedDetailPanels(props.detailPanelExpandedRowIds);
|
|
149
140
|
}
|
|
@@ -154,13 +145,13 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
154
145
|
return;
|
|
155
146
|
}
|
|
156
147
|
apiRef.current.setState(state => {
|
|
157
|
-
return (
|
|
158
|
-
detailPanel: (
|
|
148
|
+
return _extends({}, state, {
|
|
149
|
+
detailPanel: _extends({}, state.detailPanel, cacheContentAndHeight(apiRef, props.getDetailPanelContent, props.getDetailPanelHeight, state.detailPanel.heightCache))
|
|
159
150
|
});
|
|
160
151
|
});
|
|
161
152
|
apiRef.current.forceUpdate();
|
|
162
153
|
}, [apiRef, props.getDetailPanelContent, props.getDetailPanelHeight]);
|
|
163
|
-
|
|
154
|
+
useGridApiEventHandler(apiRef, 'sortedRowsSet', updateCachesAndForceUpdate);
|
|
164
155
|
const previousGetDetailPanelContentProp = React.useRef(undefined);
|
|
165
156
|
const previousGetDetailPanelHeightProp = React.useRef(undefined);
|
|
166
157
|
const updateCachesIfNeeded = React.useCallback(() => {
|
|
@@ -168,25 +159,26 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
168
159
|
return;
|
|
169
160
|
}
|
|
170
161
|
apiRef.current.setState(state => {
|
|
171
|
-
return (
|
|
172
|
-
detailPanel: (
|
|
162
|
+
return _extends({}, state, {
|
|
163
|
+
detailPanel: _extends({}, state.detailPanel, cacheContentAndHeight(apiRef, props.getDetailPanelContent, props.getDetailPanelHeight, state.detailPanel.heightCache))
|
|
173
164
|
});
|
|
174
165
|
});
|
|
175
166
|
previousGetDetailPanelContentProp.current = props.getDetailPanelContent;
|
|
176
167
|
previousGetDetailPanelHeightProp.current = props.getDetailPanelHeight;
|
|
177
168
|
}, [apiRef, props.getDetailPanelContent, props.getDetailPanelHeight]);
|
|
178
169
|
const addDetailHeight = React.useCallback((initialValue, row) => {
|
|
170
|
+
const expandedRowIds = gridDetailPanelExpandedRowIdsSelector(apiRef.current.state);
|
|
179
171
|
if (!expandedRowIds || expandedRowIds.length === 0 || !expandedRowIds.includes(row.id)) {
|
|
180
172
|
initialValue.detail = 0;
|
|
181
173
|
return initialValue;
|
|
182
174
|
}
|
|
183
175
|
updateCachesIfNeeded();
|
|
184
|
-
const heightCache =
|
|
176
|
+
const heightCache = gridDetailPanelExpandedRowsHeightCacheSelector(apiRef);
|
|
185
177
|
initialValue.detail = heightCache[row.id] ?? 0; // Fallback to zero because the cache might not be ready yet (for example page was changed)
|
|
186
178
|
return initialValue;
|
|
187
|
-
}, [apiRef,
|
|
179
|
+
}, [apiRef, updateCachesIfNeeded]);
|
|
188
180
|
const enabled = props.getDetailPanelContent !== undefined;
|
|
189
|
-
|
|
181
|
+
useGridRegisterPipeProcessor(apiRef, 'rowHeight', addDetailHeight, enabled);
|
|
190
182
|
const isFirstRender = React.useRef(true);
|
|
191
183
|
if (isFirstRender.current) {
|
|
192
184
|
updateCachesIfNeeded();
|
|
@@ -197,5 +189,4 @@ const useGridDetailPanel = (apiRef, props) => {
|
|
|
197
189
|
}
|
|
198
190
|
isFirstRender.current = false;
|
|
199
191
|
}, [apiRef, updateCachesIfNeeded]);
|
|
200
|
-
};
|
|
201
|
-
exports.useGridDetailPanel = useGridDetailPanel;
|
|
192
|
+
};
|
|
@@ -1,37 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exports.useGridDetailPanelPreProcessors = void 0;
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _xDataGrid = require("@mui/x-data-grid");
|
|
12
|
-
var _internals = require("@mui/x-data-grid/internals");
|
|
13
|
-
var _gridDetailPanelToggleColDef = require("./gridDetailPanelToggleColDef");
|
|
14
|
-
var _gridDetailPanelSelector = require("./gridDetailPanelSelector");
|
|
15
|
-
const useGridDetailPanelPreProcessors = (privateApiRef, props) => {
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { gridClasses } from '@mui/x-data-grid';
|
|
4
|
+
import { useGridRegisterPipeProcessor } from '@mui/x-data-grid/internals';
|
|
5
|
+
import { GRID_DETAIL_PANEL_TOGGLE_FIELD, GRID_DETAIL_PANEL_TOGGLE_COL_DEF } from "./gridDetailPanelToggleColDef.js";
|
|
6
|
+
import { gridDetailPanelExpandedRowIdsSelector } from "./gridDetailPanelSelector.js";
|
|
7
|
+
export const useGridDetailPanelPreProcessors = (privateApiRef, props) => {
|
|
16
8
|
const addToggleColumn = React.useCallback(columnsState => {
|
|
17
9
|
if (props.getDetailPanelContent == null) {
|
|
18
10
|
// Remove the toggle column, when it exists
|
|
19
|
-
if (columnsState.lookup[
|
|
20
|
-
delete columnsState.lookup[
|
|
21
|
-
columnsState.orderedFields = columnsState.orderedFields.filter(field => field !==
|
|
11
|
+
if (columnsState.lookup[GRID_DETAIL_PANEL_TOGGLE_FIELD]) {
|
|
12
|
+
delete columnsState.lookup[GRID_DETAIL_PANEL_TOGGLE_FIELD];
|
|
13
|
+
columnsState.orderedFields = columnsState.orderedFields.filter(field => field !== GRID_DETAIL_PANEL_TOGGLE_FIELD);
|
|
22
14
|
}
|
|
23
15
|
return columnsState;
|
|
24
16
|
}
|
|
25
17
|
|
|
26
18
|
// Don't add the toggle column if there's already one
|
|
27
19
|
// The user might have manually added it to have it in a custom position
|
|
28
|
-
if (columnsState.lookup[
|
|
20
|
+
if (columnsState.lookup[GRID_DETAIL_PANEL_TOGGLE_FIELD]) {
|
|
29
21
|
return columnsState;
|
|
30
22
|
}
|
|
31
23
|
|
|
32
24
|
// Otherwise, add the toggle column at the beginning
|
|
33
|
-
columnsState.orderedFields = [
|
|
34
|
-
columnsState.lookup[
|
|
25
|
+
columnsState.orderedFields = [GRID_DETAIL_PANEL_TOGGLE_FIELD, ...columnsState.orderedFields];
|
|
26
|
+
columnsState.lookup[GRID_DETAIL_PANEL_TOGGLE_FIELD] = _extends({}, GRID_DETAIL_PANEL_TOGGLE_COL_DEF, {
|
|
35
27
|
headerName: privateApiRef.current.getLocaleText('detailPanelToggle')
|
|
36
28
|
});
|
|
37
29
|
return columnsState;
|
|
@@ -40,13 +32,12 @@ const useGridDetailPanelPreProcessors = (privateApiRef, props) => {
|
|
|
40
32
|
if (props.getDetailPanelContent == null) {
|
|
41
33
|
return classes;
|
|
42
34
|
}
|
|
43
|
-
const expandedRowIds =
|
|
35
|
+
const expandedRowIds = gridDetailPanelExpandedRowIdsSelector(privateApiRef.current.state);
|
|
44
36
|
if (!expandedRowIds.includes(id)) {
|
|
45
37
|
return classes;
|
|
46
38
|
}
|
|
47
|
-
return [...classes,
|
|
39
|
+
return [...classes, gridClasses['row--detailPanelExpanded']];
|
|
48
40
|
}, [privateApiRef, props.getDetailPanelContent]);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
};
|
|
52
|
-
exports.useGridDetailPanelPreProcessors = useGridDetailPanelPreProcessors;
|
|
41
|
+
useGridRegisterPipeProcessor(privateApiRef, 'hydrateColumns', addToggleColumn);
|
|
42
|
+
useGridRegisterPipeProcessor(privateApiRef, 'rowClassName', addExpandedClassToRow);
|
|
43
|
+
};
|
package/hooks/features/index.js
CHANGED
|
@@ -1,99 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
enumerable: true,
|
|
11
|
-
get: function () {
|
|
12
|
-
return _cache.GridDataSourceCacheDefault;
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
var _columnPinning = require("./columnPinning");
|
|
16
|
-
Object.keys(_columnPinning).forEach(function (key) {
|
|
17
|
-
if (key === "default" || key === "__esModule") return;
|
|
18
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
19
|
-
if (key in exports && exports[key] === _columnPinning[key]) return;
|
|
20
|
-
Object.defineProperty(exports, key, {
|
|
21
|
-
enumerable: true,
|
|
22
|
-
get: function () {
|
|
23
|
-
return _columnPinning[key];
|
|
24
|
-
}
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
var _columnReorder = require("./columnReorder");
|
|
28
|
-
Object.keys(_columnReorder).forEach(function (key) {
|
|
29
|
-
if (key === "default" || key === "__esModule") return;
|
|
30
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
31
|
-
if (key in exports && exports[key] === _columnReorder[key]) return;
|
|
32
|
-
Object.defineProperty(exports, key, {
|
|
33
|
-
enumerable: true,
|
|
34
|
-
get: function () {
|
|
35
|
-
return _columnReorder[key];
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
var _rowReorder = require("./rowReorder");
|
|
40
|
-
Object.keys(_rowReorder).forEach(function (key) {
|
|
41
|
-
if (key === "default" || key === "__esModule") return;
|
|
42
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
43
|
-
if (key in exports && exports[key] === _rowReorder[key]) return;
|
|
44
|
-
Object.defineProperty(exports, key, {
|
|
45
|
-
enumerable: true,
|
|
46
|
-
get: function () {
|
|
47
|
-
return _rowReorder[key];
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
var _treeData = require("./treeData");
|
|
52
|
-
Object.keys(_treeData).forEach(function (key) {
|
|
53
|
-
if (key === "default" || key === "__esModule") return;
|
|
54
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
55
|
-
if (key in exports && exports[key] === _treeData[key]) return;
|
|
56
|
-
Object.defineProperty(exports, key, {
|
|
57
|
-
enumerable: true,
|
|
58
|
-
get: function () {
|
|
59
|
-
return _treeData[key];
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
var _detailPanel = require("./detailPanel");
|
|
64
|
-
Object.keys(_detailPanel).forEach(function (key) {
|
|
65
|
-
if (key === "default" || key === "__esModule") return;
|
|
66
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
67
|
-
if (key in exports && exports[key] === _detailPanel[key]) return;
|
|
68
|
-
Object.defineProperty(exports, key, {
|
|
69
|
-
enumerable: true,
|
|
70
|
-
get: function () {
|
|
71
|
-
return _detailPanel[key];
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
var _rowPinning = require("./rowPinning");
|
|
76
|
-
Object.keys(_rowPinning).forEach(function (key) {
|
|
77
|
-
if (key === "default" || key === "__esModule") return;
|
|
78
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
79
|
-
if (key in exports && exports[key] === _rowPinning[key]) return;
|
|
80
|
-
Object.defineProperty(exports, key, {
|
|
81
|
-
enumerable: true,
|
|
82
|
-
get: function () {
|
|
83
|
-
return _rowPinning[key];
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
var _interfaces = require("./dataSource/interfaces");
|
|
88
|
-
Object.keys(_interfaces).forEach(function (key) {
|
|
89
|
-
if (key === "default" || key === "__esModule") return;
|
|
90
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
91
|
-
if (key in exports && exports[key] === _interfaces[key]) return;
|
|
92
|
-
Object.defineProperty(exports, key, {
|
|
93
|
-
enumerable: true,
|
|
94
|
-
get: function () {
|
|
95
|
-
return _interfaces[key];
|
|
96
|
-
}
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
var _cache = require("./dataSource/cache");
|
|
1
|
+
// Only export the variable and types that should be publicly exposed and re-exported from `@mui/x-data-grid-pro`
|
|
2
|
+
export * from "./columnPinning/index.js";
|
|
3
|
+
export * from "./columnReorder/index.js";
|
|
4
|
+
export * from "./rowReorder/index.js";
|
|
5
|
+
export * from "./treeData/index.js";
|
|
6
|
+
export * from "./detailPanel/index.js";
|
|
7
|
+
export * from "./rowPinning/index.js";
|
|
8
|
+
export * from "./dataSource/interfaces.js";
|
|
9
|
+
export { GridDataSourceCacheDefault } from "./dataSource/cache.js";
|