@mui/x-data-grid-pro 5.5.0 → 5.6.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 +309 -101
- package/DataGridPro/DataGridPro.d.ts +3 -0
- package/DataGridPro/DataGridPro.js +910 -0
- package/DataGridPro/index.d.ts +2 -0
- package/DataGridPro/index.js +2 -0
- package/DataGridPro/package.json +6 -0
- package/DataGridPro/useDataGridProComponent.d.ts +4 -0
- package/DataGridPro/useDataGridProComponent.js +82 -0
- package/DataGridPro/useDataGridProProps.d.ts +6 -0
- package/DataGridPro/useDataGridProProps.js +49 -0
- package/components/DataGridProColumnHeaders.d.ts +6 -0
- package/components/DataGridProColumnHeaders.js +165 -0
- package/components/DataGridProVirtualScroller.d.ts +8 -0
- package/components/DataGridProVirtualScroller.js +270 -0
- package/components/GridColumnPinningMenuItems.d.ts +11 -0
- package/components/GridColumnPinningMenuItems.js +71 -0
- package/components/GridDetailPanelToggleCell.d.ts +7 -0
- package/components/GridDetailPanelToggleCell.js +125 -0
- package/components/GridGroupingColumnLeafCell.d.ts +4 -0
- package/components/GridGroupingColumnLeafCell.js +22 -0
- package/components/GridGroupingCriteriaCell.d.ts +10 -0
- package/components/GridGroupingCriteriaCell.js +150 -0
- package/components/GridRowGroupableColumnMenuItems.d.ts +11 -0
- package/components/GridRowGroupableColumnMenuItems.js +63 -0
- package/components/GridRowGroupingColumnMenuItems.d.ts +11 -0
- package/components/GridRowGroupingColumnMenuItems.js +58 -0
- package/components/GridTreeDataGroupingCell.d.ts +10 -0
- package/components/GridTreeDataGroupingCell.js +160 -0
- package/components/Watermark.d.ts +2 -0
- package/components/Watermark.js +43 -0
- package/components/index.d.ts +3 -0
- package/components/index.js +4 -0
- package/components/package.json +6 -0
- package/hooks/features/columnPinning/gridColumnPinningInterface.d.ts +42 -0
- package/hooks/features/columnPinning/gridColumnPinningInterface.js +11 -0
- package/hooks/features/columnPinning/gridColumnPinningSelector.d.ts +2 -0
- package/hooks/features/columnPinning/gridColumnPinningSelector.js +1 -0
- package/hooks/features/columnPinning/index.d.ts +2 -0
- package/hooks/features/columnPinning/index.js +2 -0
- package/hooks/features/columnPinning/useGridColumnPinning.d.ts +6 -0
- package/hooks/features/columnPinning/useGridColumnPinning.js +274 -0
- package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.d.ts +4 -0
- package/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +45 -0
- package/hooks/features/columnReorder/columnReorderInterfaces.d.ts +6 -0
- package/hooks/features/columnReorder/columnReorderInterfaces.js +1 -0
- package/hooks/features/columnReorder/columnReorderSelector.d.ts +3 -0
- package/hooks/features/columnReorder/columnReorderSelector.js +3 -0
- package/hooks/features/columnReorder/index.d.ts +2 -0
- package/hooks/features/columnReorder/index.js +2 -0
- package/hooks/features/columnReorder/useGridColumnReorder.d.ts +10 -0
- package/hooks/features/columnReorder/useGridColumnReorder.js +165 -0
- package/hooks/features/columnResize/columnResizeSelector.d.ts +3 -0
- package/hooks/features/columnResize/columnResizeSelector.js +3 -0
- package/hooks/features/columnResize/columnResizeState.d.ts +3 -0
- package/hooks/features/columnResize/columnResizeState.js +1 -0
- package/hooks/features/columnResize/index.d.ts +2 -0
- package/hooks/features/columnResize/index.js +2 -0
- package/hooks/features/columnResize/useGridColumnResize.d.ts +11 -0
- package/hooks/features/columnResize/useGridColumnResize.js +305 -0
- package/hooks/features/detailPanel/gridDetailPanelInterface.d.ts +28 -0
- package/hooks/features/detailPanel/gridDetailPanelInterface.js +1 -0
- package/hooks/features/detailPanel/gridDetailPanelSelector.d.ts +5 -0
- package/hooks/features/detailPanel/gridDetailPanelSelector.js +3 -0
- package/hooks/features/detailPanel/gridDetailPanelToggleColDef.d.ts +3 -0
- package/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +26 -0
- package/hooks/features/detailPanel/index.d.ts +3 -0
- package/hooks/features/detailPanel/index.js +3 -0
- package/hooks/features/detailPanel/useGridDetailPanel.d.ts +6 -0
- package/hooks/features/detailPanel/useGridDetailPanel.js +109 -0
- package/hooks/features/detailPanel/useGridDetailPanelCache.d.ts +4 -0
- package/hooks/features/detailPanel/useGridDetailPanelCache.js +57 -0
- package/hooks/features/detailPanel/useGridDetailPanelPreProcessors.d.ts +4 -0
- package/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +28 -0
- package/hooks/features/index.d.ts +6 -0
- package/hooks/features/index.js +7 -0
- package/hooks/features/infiniteLoader/useGridInfiniteLoader.d.ts +10 -0
- package/hooks/features/infiniteLoader/useGridInfiniteLoader.js +52 -0
- package/hooks/features/rowGrouping/createGroupingColDef.d.ts +43 -0
- package/hooks/features/rowGrouping/createGroupingColDef.js +318 -0
- package/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +31 -0
- package/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +1 -0
- package/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +4 -0
- package/hooks/features/rowGrouping/gridRowGroupingSelector.js +5 -0
- package/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +24 -0
- package/hooks/features/rowGrouping/gridRowGroupingUtils.js +124 -0
- package/hooks/features/rowGrouping/index.d.ts +3 -0
- package/hooks/features/rowGrouping/index.js +3 -0
- package/hooks/features/rowGrouping/useGridRowGrouping.d.ts +13 -0
- package/hooks/features/rowGrouping/useGridRowGrouping.js +325 -0
- package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
- package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +76 -0
- package/hooks/features/treeData/gridTreeDataGroupColDef.d.ts +7 -0
- package/hooks/features/treeData/gridTreeDataGroupColDef.js +22 -0
- package/hooks/features/treeData/gridTreeDataUtils.d.ts +14 -0
- package/hooks/features/treeData/gridTreeDataUtils.js +86 -0
- package/hooks/features/treeData/index.d.ts +1 -0
- package/hooks/features/treeData/index.js +1 -0
- package/hooks/features/treeData/useGridTreeData.d.ts +10 -0
- package/hooks/features/treeData/useGridTreeData.js +108 -0
- package/hooks/features/treeData/useGridTreeDataPreProcessors.d.ts +4 -0
- package/hooks/features/treeData/useGridTreeDataPreProcessors.js +69 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +1 -0
- package/hooks/package.json +6 -0
- package/hooks/utils/useGridApiContext.d.ts +4 -0
- package/hooks/utils/useGridApiContext.js +2 -0
- package/hooks/utils/useGridApiRef.d.ts +4 -0
- package/hooks/utils/useGridApiRef.js +2 -0
- package/hooks/utils/useGridRootProps.d.ts +2 -0
- package/hooks/utils/useGridRootProps.js +2 -0
- package/index.d.ts +16 -0
- package/index.js +20 -0
- package/legacy/DataGridPro/DataGridPro.js +910 -0
- package/legacy/DataGridPro/index.js +2 -0
- package/legacy/DataGridPro/useDataGridProComponent.js +82 -0
- package/legacy/DataGridPro/useDataGridProProps.js +58 -0
- package/legacy/components/DataGridProColumnHeaders.js +173 -0
- package/legacy/components/DataGridProVirtualScroller.js +287 -0
- package/legacy/components/GridColumnPinningMenuItems.js +71 -0
- package/legacy/components/GridDetailPanelToggleCell.js +121 -0
- package/legacy/components/GridGroupingColumnLeafCell.js +20 -0
- package/legacy/components/GridGroupingCriteriaCell.js +146 -0
- package/legacy/components/GridRowGroupableColumnMenuItems.js +61 -0
- package/legacy/components/GridRowGroupingColumnMenuItems.js +56 -0
- package/legacy/components/GridTreeDataGroupingCell.js +156 -0
- package/legacy/components/Watermark.js +43 -0
- package/legacy/components/index.js +4 -0
- package/legacy/hooks/features/columnPinning/gridColumnPinningInterface.js +11 -0
- package/legacy/hooks/features/columnPinning/gridColumnPinningSelector.js +3 -0
- package/legacy/hooks/features/columnPinning/index.js +2 -0
- package/legacy/hooks/features/columnPinning/useGridColumnPinning.js +298 -0
- package/legacy/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +48 -0
- package/legacy/hooks/features/columnReorder/columnReorderInterfaces.js +1 -0
- package/legacy/hooks/features/columnReorder/columnReorderSelector.js +7 -0
- package/legacy/hooks/features/columnReorder/index.js +2 -0
- package/legacy/hooks/features/columnReorder/useGridColumnReorder.js +171 -0
- package/legacy/hooks/features/columnResize/columnResizeSelector.js +7 -0
- package/legacy/hooks/features/columnResize/columnResizeState.js +1 -0
- package/legacy/hooks/features/columnResize/index.js +2 -0
- package/legacy/hooks/features/columnResize/useGridColumnResize.js +310 -0
- package/legacy/hooks/features/detailPanel/gridDetailPanelInterface.js +1 -0
- package/legacy/hooks/features/detailPanel/gridDetailPanelSelector.js +9 -0
- package/legacy/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +28 -0
- package/legacy/hooks/features/detailPanel/index.js +3 -0
- package/legacy/hooks/features/detailPanel/useGridDetailPanel.js +114 -0
- package/legacy/hooks/features/detailPanel/useGridDetailPanelCache.js +57 -0
- package/legacy/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +31 -0
- package/legacy/hooks/features/index.js +7 -0
- package/legacy/hooks/features/infiniteLoader/useGridInfiniteLoader.js +51 -0
- package/legacy/hooks/features/rowGrouping/createGroupingColDef.js +319 -0
- package/legacy/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +1 -0
- package/legacy/hooks/features/rowGrouping/gridRowGroupingSelector.js +13 -0
- package/legacy/hooks/features/rowGrouping/gridRowGroupingUtils.js +130 -0
- package/legacy/hooks/features/rowGrouping/index.js +3 -0
- package/legacy/hooks/features/rowGrouping/useGridRowGrouping.js +334 -0
- package/legacy/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +83 -0
- package/legacy/hooks/features/treeData/gridTreeDataGroupColDef.js +24 -0
- package/legacy/hooks/features/treeData/gridTreeDataUtils.js +84 -0
- package/legacy/hooks/features/treeData/index.js +1 -0
- package/legacy/hooks/features/treeData/useGridTreeData.js +116 -0
- package/legacy/hooks/features/treeData/useGridTreeDataPreProcessors.js +72 -0
- package/legacy/hooks/index.js +1 -0
- package/legacy/hooks/utils/useGridApiContext.js +2 -0
- package/legacy/hooks/utils/useGridApiRef.js +2 -0
- package/legacy/hooks/utils/useGridRootProps.js +2 -0
- package/legacy/index.js +20 -0
- package/legacy/models/dataGridProProps.js +1 -0
- package/legacy/models/gridApiPro.js +1 -0
- package/legacy/models/gridGroupingColDefOverride.js +1 -0
- package/legacy/models/gridGroupingValueGetterParams.js +1 -0
- package/legacy/models/gridRowScrollEndParams.js +1 -0
- package/legacy/models/gridStatePro.js +1 -0
- package/legacy/models/index.js +4 -0
- package/legacy/themeAugmentation/index.js +3 -0
- package/legacy/themeAugmentation/overrides.js +1 -0
- package/legacy/themeAugmentation/props.js +1 -0
- package/legacy/typeOverloads/modules.js +1 -0
- package/legacy/typeOverloads/reexports.js +6 -0
- package/legacy/utils/domUtils.js +19 -0
- package/legacy/utils/tree/buildRowTree.js +188 -0
- package/legacy/utils/tree/sortRowTree.js +63 -0
- package/models/dataGridProProps.d.ts +174 -0
- package/models/dataGridProProps.js +1 -0
- package/models/gridApiPro.d.ts +12 -0
- package/models/gridApiPro.js +1 -0
- package/models/gridGroupingColDefOverride.d.ts +30 -0
- package/models/gridGroupingColDefOverride.js +1 -0
- package/models/gridGroupingValueGetterParams.d.ts +31 -0
- package/models/gridGroupingValueGetterParams.js +1 -0
- package/models/gridRowScrollEndParams.d.ts +18 -0
- package/models/gridRowScrollEndParams.js +1 -0
- package/models/gridStatePro.d.ts +20 -0
- package/models/gridStatePro.js +1 -0
- package/models/index.d.ts +4 -0
- package/models/index.js +4 -0
- package/models/package.json +6 -0
- package/modern/DataGridPro/DataGridPro.js +910 -0
- package/modern/DataGridPro/index.js +2 -0
- package/modern/DataGridPro/useDataGridProComponent.js +82 -0
- package/modern/DataGridPro/useDataGridProProps.js +45 -0
- package/modern/components/DataGridProColumnHeaders.js +163 -0
- package/modern/components/DataGridProVirtualScroller.js +268 -0
- package/modern/components/GridColumnPinningMenuItems.js +71 -0
- package/modern/components/GridDetailPanelToggleCell.js +125 -0
- package/modern/components/GridGroupingColumnLeafCell.js +20 -0
- package/modern/components/GridGroupingCriteriaCell.js +148 -0
- package/modern/components/GridRowGroupableColumnMenuItems.js +61 -0
- package/modern/components/GridRowGroupingColumnMenuItems.js +56 -0
- package/modern/components/GridTreeDataGroupingCell.js +158 -0
- package/modern/components/Watermark.js +43 -0
- package/modern/components/index.js +4 -0
- package/modern/hooks/features/columnPinning/gridColumnPinningInterface.js +11 -0
- package/modern/hooks/features/columnPinning/gridColumnPinningSelector.js +1 -0
- package/modern/hooks/features/columnPinning/index.js +2 -0
- package/modern/hooks/features/columnPinning/useGridColumnPinning.js +268 -0
- package/modern/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +45 -0
- package/modern/hooks/features/columnReorder/columnReorderInterfaces.js +1 -0
- package/modern/hooks/features/columnReorder/columnReorderSelector.js +3 -0
- package/modern/hooks/features/columnReorder/index.js +2 -0
- package/modern/hooks/features/columnReorder/useGridColumnReorder.js +165 -0
- package/modern/hooks/features/columnResize/columnResizeSelector.js +3 -0
- package/modern/hooks/features/columnResize/columnResizeState.js +1 -0
- package/modern/hooks/features/columnResize/index.js +2 -0
- package/modern/hooks/features/columnResize/useGridColumnResize.js +295 -0
- package/modern/hooks/features/detailPanel/gridDetailPanelInterface.js +1 -0
- package/modern/hooks/features/detailPanel/gridDetailPanelSelector.js +3 -0
- package/modern/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +26 -0
- package/modern/hooks/features/detailPanel/index.js +3 -0
- package/modern/hooks/features/detailPanel/useGridDetailPanel.js +105 -0
- package/modern/hooks/features/detailPanel/useGridDetailPanelCache.js +57 -0
- package/modern/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +28 -0
- package/modern/hooks/features/index.js +7 -0
- package/modern/hooks/features/infiniteLoader/useGridInfiniteLoader.js +52 -0
- package/modern/hooks/features/rowGrouping/createGroupingColDef.js +302 -0
- package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +1 -0
- package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.js +5 -0
- package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +122 -0
- package/modern/hooks/features/rowGrouping/index.js +3 -0
- package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +317 -0
- package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +76 -0
- package/modern/hooks/features/treeData/gridTreeDataGroupColDef.js +22 -0
- package/modern/hooks/features/treeData/gridTreeDataUtils.js +82 -0
- package/modern/hooks/features/treeData/index.js +1 -0
- package/modern/hooks/features/treeData/useGridTreeData.js +106 -0
- package/modern/hooks/features/treeData/useGridTreeDataPreProcessors.js +67 -0
- package/modern/hooks/index.js +1 -0
- package/modern/hooks/utils/useGridApiContext.js +2 -0
- package/modern/hooks/utils/useGridApiRef.js +2 -0
- package/modern/hooks/utils/useGridRootProps.js +2 -0
- package/modern/index.js +20 -0
- package/modern/models/dataGridProProps.js +1 -0
- package/modern/models/gridApiPro.js +1 -0
- package/modern/models/gridGroupingColDefOverride.js +1 -0
- package/modern/models/gridGroupingValueGetterParams.js +1 -0
- package/modern/models/gridRowScrollEndParams.js +1 -0
- package/modern/models/gridStatePro.js +1 -0
- package/modern/models/index.js +4 -0
- package/modern/themeAugmentation/index.js +3 -0
- package/modern/themeAugmentation/overrides.js +1 -0
- package/modern/themeAugmentation/props.js +1 -0
- package/modern/typeOverloads/modules.js +1 -0
- package/modern/typeOverloads/reexports.js +6 -0
- package/modern/utils/domUtils.js +19 -0
- package/modern/utils/tree/buildRowTree.js +167 -0
- package/modern/utils/tree/sortRowTree.js +60 -0
- package/node/DataGridPro/DataGridPro.js +935 -0
- package/node/DataGridPro/index.js +30 -0
- package/node/DataGridPro/useDataGridProComponent.js +104 -0
- package/node/DataGridPro/useDataGridProProps.js +69 -0
- package/node/components/DataGridProColumnHeaders.js +189 -0
- package/node/components/DataGridProVirtualScroller.js +297 -0
- package/node/components/GridColumnPinningMenuItems.js +88 -0
- package/node/components/GridDetailPanelToggleCell.js +146 -0
- package/node/components/GridGroupingColumnLeafCell.js +38 -0
- package/node/components/GridGroupingCriteriaCell.js +170 -0
- package/node/components/GridRowGroupableColumnMenuItems.js +82 -0
- package/node/components/GridRowGroupingColumnMenuItems.js +78 -0
- package/node/components/GridTreeDataGroupingCell.js +181 -0
- package/node/components/Watermark.js +56 -0
- package/node/components/index.js +44 -0
- package/node/hooks/features/columnPinning/gridColumnPinningInterface.js +17 -0
- package/node/hooks/features/columnPinning/gridColumnPinningSelector.js +10 -0
- package/node/hooks/features/columnPinning/index.js +31 -0
- package/node/hooks/features/columnPinning/useGridColumnPinning.js +297 -0
- package/node/hooks/features/columnPinning/useGridColumnPinningPreProcessors.js +66 -0
- package/node/hooks/features/columnReorder/columnReorderInterfaces.js +5 -0
- package/node/hooks/features/columnReorder/columnReorderSelector.js +14 -0
- package/node/hooks/features/columnReorder/index.js +18 -0
- package/node/hooks/features/columnReorder/useGridColumnReorder.js +188 -0
- package/node/hooks/features/columnResize/columnResizeSelector.js +14 -0
- package/node/hooks/features/columnResize/columnResizeState.js +5 -0
- package/node/hooks/features/columnResize/index.js +31 -0
- package/node/hooks/features/columnResize/useGridColumnResize.js +329 -0
- package/node/hooks/features/detailPanel/gridDetailPanelInterface.js +5 -0
- package/node/hooks/features/detailPanel/gridDetailPanelSelector.js +18 -0
- package/node/hooks/features/detailPanel/gridDetailPanelToggleColDef.js +47 -0
- package/node/hooks/features/detailPanel/index.js +44 -0
- package/node/hooks/features/detailPanel/useGridDetailPanel.js +133 -0
- package/node/hooks/features/detailPanel/useGridDetailPanelCache.js +74 -0
- package/node/hooks/features/detailPanel/useGridDetailPanelPreProcessors.js +44 -0
- package/node/hooks/features/index.js +83 -0
- package/node/hooks/features/infiniteLoader/useGridInfiniteLoader.js +67 -0
- package/node/hooks/features/rowGrouping/createGroupingColDef.js +341 -0
- package/node/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +5 -0
- package/node/hooks/features/rowGrouping/gridRowGroupingSelector.js +18 -0
- package/node/hooks/features/rowGrouping/gridRowGroupingUtils.js +153 -0
- package/node/hooks/features/rowGrouping/index.js +51 -0
- package/node/hooks/features/rowGrouping/useGridRowGrouping.js +355 -0
- package/node/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +94 -0
- package/node/hooks/features/treeData/gridTreeDataGroupColDef.js +35 -0
- package/node/hooks/features/treeData/gridTreeDataUtils.js +95 -0
- package/node/hooks/features/treeData/index.js +13 -0
- package/node/hooks/features/treeData/useGridTreeData.js +132 -0
- package/node/hooks/features/treeData/useGridTreeDataPreProcessors.js +92 -0
- package/node/hooks/index.js +18 -0
- package/node/hooks/utils/useGridApiContext.js +11 -0
- package/node/hooks/utils/useGridApiRef.js +11 -0
- package/node/hooks/utils/useGridRootProps.js +11 -0
- package/node/index.js +214 -0
- package/node/models/dataGridProProps.js +5 -0
- package/node/models/gridApiPro.js +5 -0
- package/node/models/gridGroupingColDefOverride.js +5 -0
- package/node/models/gridGroupingValueGetterParams.js +5 -0
- package/node/models/gridRowScrollEndParams.js +5 -0
- package/node/models/gridStatePro.js +5 -0
- package/node/models/index.js +44 -0
- package/node/themeAugmentation/index.js +31 -0
- package/node/themeAugmentation/overrides.js +5 -0
- package/node/themeAugmentation/props.js +5 -0
- package/node/typeOverloads/modules.js +5 -0
- package/node/typeOverloads/reexports.js +29 -0
- package/node/utils/domUtils.js +32 -0
- package/node/utils/tree/buildRowTree.js +185 -0
- package/node/utils/tree/sortRowTree.js +69 -0
- package/package.json +13 -14
- package/themeAugmentation/index.d.ts +2 -2
- package/themeAugmentation/index.js +3 -0
- package/themeAugmentation/overrides.d.ts +8 -8
- package/themeAugmentation/overrides.js +1 -0
- package/themeAugmentation/package.json +6 -0
- package/themeAugmentation/props.d.ts +19 -19
- package/themeAugmentation/props.js +1 -0
- package/typeOverloads/modules.d.ts +41 -0
- package/typeOverloads/modules.js +1 -0
- package/typeOverloads/reexports.d.ts +22 -0
- package/typeOverloads/reexports.js +6 -0
- package/utils/domUtils.d.ts +3 -0
- package/utils/domUtils.js +19 -0
- package/utils/tree/buildRowTree.d.ts +47 -0
- package/utils/tree/buildRowTree.js +179 -0
- package/utils/tree/sortRowTree.d.ts +10 -0
- package/utils/tree/sortRowTree.js +60 -0
- package/LICENSE +0 -12
- package/index-cjs.js +0 -15
- package/index-esm.js +0 -15
- package/x-data-grid-pro.d.ts +0 -5438
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useGridColumnPinning = exports.columnPinningStateInitializer = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
|
|
15
|
+
|
|
16
|
+
var _xDataGrid = require("@mui/x-data-grid");
|
|
17
|
+
|
|
18
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
19
|
+
|
|
20
|
+
var _GridColumnPinningMenuItems = require("../../../components/GridColumnPinningMenuItems");
|
|
21
|
+
|
|
22
|
+
var _gridColumnPinningInterface = require("./gridColumnPinningInterface");
|
|
23
|
+
|
|
24
|
+
var _gridColumnPinningSelector = require("./gridColumnPinningSelector");
|
|
25
|
+
|
|
26
|
+
var _DataGridProVirtualScroller = require("../../../components/DataGridProVirtualScroller");
|
|
27
|
+
|
|
28
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
|
+
|
|
30
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
31
|
+
|
|
32
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
+
|
|
34
|
+
const Divider = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Divider.default, {
|
|
35
|
+
onClick: event => event.stopPropagation()
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const columnPinningStateInitializer = (state, props) => {
|
|
39
|
+
var _props$initialState;
|
|
40
|
+
|
|
41
|
+
let model;
|
|
42
|
+
|
|
43
|
+
if (props.disableColumnPinning) {
|
|
44
|
+
model = {};
|
|
45
|
+
} else if (props.pinnedColumns) {
|
|
46
|
+
model = props.pinnedColumns;
|
|
47
|
+
} else if ((_props$initialState = props.initialState) != null && _props$initialState.pinnedColumns) {
|
|
48
|
+
var _props$initialState2;
|
|
49
|
+
|
|
50
|
+
model = (_props$initialState2 = props.initialState) == null ? void 0 : _props$initialState2.pinnedColumns;
|
|
51
|
+
} else {
|
|
52
|
+
model = {};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return (0, _extends2.default)({}, state, {
|
|
56
|
+
pinnedColumns: model
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
exports.columnPinningStateInitializer = columnPinningStateInitializer;
|
|
61
|
+
|
|
62
|
+
const mergeStateWithPinnedColumns = pinnedColumns => state => (0, _extends2.default)({}, state, {
|
|
63
|
+
pinnedColumns
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
const useGridColumnPinning = (apiRef, props) => {
|
|
67
|
+
const pinnedColumns = (0, _xDataGrid.useGridSelector)(apiRef, _gridColumnPinningSelector.gridPinnedColumnsSelector); // Each visible row (not to be confused with a filter result) is composed of a central .MuiDataGrid-row element
|
|
68
|
+
// and up to two additional .MuiDataGrid-row's, one for the columns pinned to the left and another
|
|
69
|
+
// for those on the right side. When hovering any of these elements, the :hover styles are applied only to
|
|
70
|
+
// the row element that was actually hovered, not its additional siblings. To make it look like a contiguous row,
|
|
71
|
+
// this method adds/removes the .Mui-hovered class to all of the row elements inside one visible row.
|
|
72
|
+
|
|
73
|
+
const updateHoveredClassOnSiblingRows = React.useCallback(event => {
|
|
74
|
+
var _pinnedColumns$left$l, _pinnedColumns$left, _pinnedColumns$right$, _pinnedColumns$right;
|
|
75
|
+
|
|
76
|
+
if (props.disableColumnPinning) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (!Array.isArray(pinnedColumns.left) && !Array.isArray(pinnedColumns.right)) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const nbLeftPinnedColumns = (_pinnedColumns$left$l = (_pinnedColumns$left = pinnedColumns.left) == null ? void 0 : _pinnedColumns$left.length) != null ? _pinnedColumns$left$l : 0;
|
|
85
|
+
const nbRightPinnedColumns = (_pinnedColumns$right$ = (_pinnedColumns$right = pinnedColumns.right) == null ? void 0 : _pinnedColumns$right.length) != null ? _pinnedColumns$right$ : 0;
|
|
86
|
+
|
|
87
|
+
if (nbLeftPinnedColumns + nbRightPinnedColumns === 0) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const index = event.currentTarget.dataset.rowindex;
|
|
92
|
+
const rowElements = apiRef.current.windowRef.current.querySelectorAll(`.${_xDataGrid.gridClasses.row}[data-rowindex="${index}"]`);
|
|
93
|
+
rowElements.forEach(row => {
|
|
94
|
+
// Ignore rows from other grid inside the hovered row
|
|
95
|
+
if (row.closest(`.${_xDataGrid.gridClasses.virtualScroller}`) === apiRef.current.windowRef.current) {
|
|
96
|
+
if (event.type === 'mouseenter') {
|
|
97
|
+
row.classList.add('Mui-hovered');
|
|
98
|
+
} else {
|
|
99
|
+
row.classList.remove('Mui-hovered');
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}, [apiRef, pinnedColumns.left, pinnedColumns.right, props.disableColumnPinning]);
|
|
104
|
+
const handleMouseEnter = React.useCallback((params, event) => {
|
|
105
|
+
updateHoveredClassOnSiblingRows(event);
|
|
106
|
+
}, [updateHoveredClassOnSiblingRows]);
|
|
107
|
+
const handleMouseLeave = React.useCallback((params, event) => {
|
|
108
|
+
updateHoveredClassOnSiblingRows(event);
|
|
109
|
+
}, [updateHoveredClassOnSiblingRows]);
|
|
110
|
+
(0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.rowMouseEnter, handleMouseEnter);
|
|
111
|
+
(0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.rowMouseLeave, handleMouseLeave);
|
|
112
|
+
/**
|
|
113
|
+
* PRE-PROCESSING
|
|
114
|
+
*/
|
|
115
|
+
|
|
116
|
+
const calculateScrollLeft = React.useCallback((initialValue, params) => {
|
|
117
|
+
if (props.disableColumnPinning) {
|
|
118
|
+
return initialValue;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const visibleColumnFields = (0, _xDataGrid.gridVisibleColumnFieldsSelector)(apiRef);
|
|
122
|
+
const [leftPinnedColumns, rightPinnedColumns] = (0, _DataGridProVirtualScroller.filterColumns)(pinnedColumns, visibleColumnFields);
|
|
123
|
+
|
|
124
|
+
if (!params.colIndex || leftPinnedColumns.length === 0 && rightPinnedColumns.length === 0) {
|
|
125
|
+
return initialValue;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
const visibleColumns = (0, _xDataGrid.gridVisibleColumnDefinitionsSelector)(apiRef);
|
|
129
|
+
const columnsTotalWidth = (0, _xDataGrid.gridColumnsTotalWidthSelector)(apiRef);
|
|
130
|
+
const columnPositions = (0, _xDataGrid.gridColumnPositionsSelector)(apiRef);
|
|
131
|
+
const clientWidth = apiRef.current.windowRef.current.clientWidth;
|
|
132
|
+
const scrollLeft = apiRef.current.windowRef.current.scrollLeft;
|
|
133
|
+
const offsetWidth = visibleColumns[params.colIndex].computedWidth;
|
|
134
|
+
const offsetLeft = columnPositions[params.colIndex];
|
|
135
|
+
const leftPinnedColumnsWidth = columnPositions[leftPinnedColumns.length];
|
|
136
|
+
const rightPinnedColumnsWidth = columnsTotalWidth - columnPositions[columnPositions.length - rightPinnedColumns.length];
|
|
137
|
+
const elementBottom = offsetLeft + offsetWidth;
|
|
138
|
+
|
|
139
|
+
if (elementBottom - (clientWidth - rightPinnedColumnsWidth) > scrollLeft) {
|
|
140
|
+
const left = elementBottom - (clientWidth - rightPinnedColumnsWidth);
|
|
141
|
+
return (0, _extends2.default)({}, initialValue, {
|
|
142
|
+
left
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
if (offsetLeft < scrollLeft + leftPinnedColumnsWidth) {
|
|
147
|
+
const left = offsetLeft - leftPinnedColumnsWidth;
|
|
148
|
+
return (0, _extends2.default)({}, initialValue, {
|
|
149
|
+
left
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return initialValue;
|
|
154
|
+
}, [apiRef, pinnedColumns, props.disableColumnPinning]);
|
|
155
|
+
const addColumnMenuButtons = React.useCallback((initialValue, column) => {
|
|
156
|
+
if (props.disableColumnPinning) {
|
|
157
|
+
return initialValue;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
if (column.pinnable === false) {
|
|
161
|
+
return initialValue;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return [...initialValue, /*#__PURE__*/(0, _jsxRuntime.jsx)(Divider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridColumnPinningMenuItems.GridColumnPinningMenuItems, {})];
|
|
165
|
+
}, [props.disableColumnPinning]);
|
|
166
|
+
const checkIfCanBeReordered = React.useCallback((initialValue, {
|
|
167
|
+
targetIndex
|
|
168
|
+
}) => {
|
|
169
|
+
const visibleColumnFields = (0, _xDataGrid.gridVisibleColumnFieldsSelector)(apiRef);
|
|
170
|
+
const [leftPinnedColumns, rightPinnedColumns] = (0, _DataGridProVirtualScroller.filterColumns)(pinnedColumns, visibleColumnFields);
|
|
171
|
+
|
|
172
|
+
if (leftPinnedColumns.length === 0 && rightPinnedColumns.length === 0) {
|
|
173
|
+
return initialValue;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
if (leftPinnedColumns.length > 0 && targetIndex < leftPinnedColumns.length) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (rightPinnedColumns.length > 0) {
|
|
181
|
+
const visibleColumns = (0, _xDataGrid.gridVisibleColumnDefinitionsSelector)(apiRef);
|
|
182
|
+
const firstRightPinnedColumnIndex = visibleColumns.length - rightPinnedColumns.length;
|
|
183
|
+
return targetIndex >= firstRightPinnedColumnIndex ? false : initialValue;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
return initialValue;
|
|
187
|
+
}, [apiRef, pinnedColumns]);
|
|
188
|
+
const stateExportPreProcessing = React.useCallback(prevState => {
|
|
189
|
+
const pinnedColumnsToExport = (0, _gridColumnPinningSelector.gridPinnedColumnsSelector)(apiRef.current.state);
|
|
190
|
+
|
|
191
|
+
if ((!pinnedColumnsToExport.left || pinnedColumnsToExport.left.length === 0) && (!pinnedColumnsToExport.right || pinnedColumnsToExport.right.length === 0)) {
|
|
192
|
+
return prevState;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return (0, _extends2.default)({}, prevState, {
|
|
196
|
+
pinnedColumns: pinnedColumnsToExport
|
|
197
|
+
});
|
|
198
|
+
}, [apiRef]);
|
|
199
|
+
const stateRestorePreProcessing = React.useCallback((params, context) => {
|
|
200
|
+
const newPinnedColumns = context.stateToRestore.pinnedColumns;
|
|
201
|
+
|
|
202
|
+
if (newPinnedColumns != null) {
|
|
203
|
+
apiRef.current.setState(mergeStateWithPinnedColumns(newPinnedColumns));
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return params;
|
|
207
|
+
}, [apiRef]);
|
|
208
|
+
(0, _internals.useGridRegisterPreProcessor)(apiRef, 'scrollToIndexes', calculateScrollLeft);
|
|
209
|
+
(0, _internals.useGridRegisterPreProcessor)(apiRef, 'columnMenu', addColumnMenuButtons);
|
|
210
|
+
(0, _internals.useGridRegisterPreProcessor)(apiRef, 'canBeReordered', checkIfCanBeReordered);
|
|
211
|
+
(0, _internals.useGridRegisterPreProcessor)(apiRef, 'exportState', stateExportPreProcessing);
|
|
212
|
+
(0, _internals.useGridRegisterPreProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
|
|
213
|
+
apiRef.current.unstable_updateControlState({
|
|
214
|
+
stateId: 'pinnedColumns',
|
|
215
|
+
propModel: props.pinnedColumns,
|
|
216
|
+
propOnChange: props.onPinnedColumnsChange,
|
|
217
|
+
stateSelector: _gridColumnPinningSelector.gridPinnedColumnsSelector,
|
|
218
|
+
changeEvent: _xDataGrid.GridEvents.pinnedColumnsChange
|
|
219
|
+
});
|
|
220
|
+
const checkIfEnabled = React.useCallback(methodName => {
|
|
221
|
+
if (props.disableColumnPinning) {
|
|
222
|
+
throw new Error(`MUI: You cannot call \`apiRef.current.${methodName}\` when \`disableColumnPinning\` is true.`);
|
|
223
|
+
}
|
|
224
|
+
}, [props.disableColumnPinning]);
|
|
225
|
+
const pinColumn = React.useCallback((field, side) => {
|
|
226
|
+
checkIfEnabled('pinColumn');
|
|
227
|
+
|
|
228
|
+
if (apiRef.current.isColumnPinned(field) === side) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
apiRef.current.setState(state => {
|
|
233
|
+
const otherSide = side === _gridColumnPinningInterface.GridPinnedPosition.right ? _gridColumnPinningInterface.GridPinnedPosition.left : _gridColumnPinningInterface.GridPinnedPosition.right;
|
|
234
|
+
const newPinnedColumns = (0, _extends2.default)({}, state.pinnedColumns, {
|
|
235
|
+
[side]: [...(state.pinnedColumns[side] || []), field],
|
|
236
|
+
[otherSide]: (state.pinnedColumns[otherSide] || []).filter(column => column !== field)
|
|
237
|
+
});
|
|
238
|
+
return (0, _extends2.default)({}, state, {
|
|
239
|
+
pinnedColumns: newPinnedColumns
|
|
240
|
+
});
|
|
241
|
+
});
|
|
242
|
+
apiRef.current.forceUpdate();
|
|
243
|
+
}, [apiRef, checkIfEnabled]);
|
|
244
|
+
const unpinColumn = React.useCallback(field => {
|
|
245
|
+
checkIfEnabled('unpinColumn');
|
|
246
|
+
apiRef.current.setState(state => {
|
|
247
|
+
const newPinnedColumns = (0, _extends2.default)({}, state.pinnedColumns, {
|
|
248
|
+
left: (state.pinnedColumns.left || []).filter(column => column !== field),
|
|
249
|
+
right: (state.pinnedColumns.right || []).filter(column => column !== field)
|
|
250
|
+
});
|
|
251
|
+
return (0, _extends2.default)({}, state, {
|
|
252
|
+
pinnedColumns: newPinnedColumns
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
apiRef.current.forceUpdate();
|
|
256
|
+
}, [apiRef, checkIfEnabled]);
|
|
257
|
+
const getPinnedColumns = React.useCallback(() => {
|
|
258
|
+
checkIfEnabled('getPinnedColumns');
|
|
259
|
+
return (0, _gridColumnPinningSelector.gridPinnedColumnsSelector)(apiRef.current.state);
|
|
260
|
+
}, [apiRef, checkIfEnabled]);
|
|
261
|
+
const setPinnedColumns = React.useCallback(newPinnedColumns => {
|
|
262
|
+
checkIfEnabled('setPinnedColumns');
|
|
263
|
+
apiRef.current.setState(mergeStateWithPinnedColumns(newPinnedColumns));
|
|
264
|
+
apiRef.current.forceUpdate();
|
|
265
|
+
}, [apiRef, checkIfEnabled]);
|
|
266
|
+
const isColumnPinned = React.useCallback(field => {
|
|
267
|
+
checkIfEnabled('isColumnPinned');
|
|
268
|
+
const leftPinnedColumns = pinnedColumns.left || [];
|
|
269
|
+
|
|
270
|
+
if (leftPinnedColumns.includes(field)) {
|
|
271
|
+
return _gridColumnPinningInterface.GridPinnedPosition.left;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const rightPinnedColumns = pinnedColumns.right || [];
|
|
275
|
+
|
|
276
|
+
if (rightPinnedColumns.includes(field)) {
|
|
277
|
+
return _gridColumnPinningInterface.GridPinnedPosition.right;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
return false;
|
|
281
|
+
}, [pinnedColumns.left, pinnedColumns.right, checkIfEnabled]);
|
|
282
|
+
const columnPinningApi = {
|
|
283
|
+
pinColumn,
|
|
284
|
+
unpinColumn,
|
|
285
|
+
getPinnedColumns,
|
|
286
|
+
setPinnedColumns,
|
|
287
|
+
isColumnPinned
|
|
288
|
+
};
|
|
289
|
+
(0, _xDataGrid.useGridApiMethod)(apiRef, columnPinningApi, 'columnPinningApi');
|
|
290
|
+
React.useEffect(() => {
|
|
291
|
+
if (props.pinnedColumns) {
|
|
292
|
+
apiRef.current.setPinnedColumns(props.pinnedColumns);
|
|
293
|
+
}
|
|
294
|
+
}, [apiRef, props.pinnedColumns]);
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
exports.useGridColumnPinning = useGridColumnPinning;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useGridColumnPinningPreProcessors = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
15
|
+
|
|
16
|
+
var _gridColumnPinningSelector = require("./gridColumnPinningSelector");
|
|
17
|
+
|
|
18
|
+
var _useGridColumnPinning = require("./useGridColumnPinning");
|
|
19
|
+
|
|
20
|
+
var _DataGridProVirtualScroller = require("../../../components/DataGridProVirtualScroller");
|
|
21
|
+
|
|
22
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
+
|
|
24
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
+
|
|
26
|
+
const useGridColumnPinningPreProcessors = (apiRef, props) => {
|
|
27
|
+
const {
|
|
28
|
+
disableColumnPinning,
|
|
29
|
+
pinnedColumns: pinnedColumnsProp,
|
|
30
|
+
initialState
|
|
31
|
+
} = props;
|
|
32
|
+
let pinnedColumns = (0, _gridColumnPinningSelector.gridPinnedColumnsSelector)(apiRef.current.state);
|
|
33
|
+
|
|
34
|
+
if (pinnedColumns == null) {
|
|
35
|
+
// Since the state is not ready yet lets use the initializer to get which
|
|
36
|
+
// columns should be pinned initially.
|
|
37
|
+
const initializedState = (0, _useGridColumnPinning.columnPinningStateInitializer)(apiRef.current.state, {
|
|
38
|
+
disableColumnPinning,
|
|
39
|
+
pinnedColumns: pinnedColumnsProp,
|
|
40
|
+
initialState
|
|
41
|
+
}, apiRef);
|
|
42
|
+
pinnedColumns = (0, _gridColumnPinningSelector.gridPinnedColumnsSelector)(initializedState);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const reorderPinnedColumns = React.useCallback(columnsState => {
|
|
46
|
+
if (columnsState.all.length === 0 || disableColumnPinning) {
|
|
47
|
+
return columnsState;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const [leftPinnedColumns, rightPinnedColumns] = (0, _DataGridProVirtualScroller.filterColumns)(pinnedColumns, columnsState.all);
|
|
51
|
+
|
|
52
|
+
if (leftPinnedColumns.length === 0 && rightPinnedColumns.length === 0) {
|
|
53
|
+
return columnsState;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const centerColumns = columnsState.all.filter(field => {
|
|
57
|
+
return !leftPinnedColumns.includes(field) && !rightPinnedColumns.includes(field);
|
|
58
|
+
});
|
|
59
|
+
return (0, _extends2.default)({}, columnsState, {
|
|
60
|
+
all: [...leftPinnedColumns, ...centerColumns, ...rightPinnedColumns]
|
|
61
|
+
});
|
|
62
|
+
}, [disableColumnPinning, pinnedColumns]);
|
|
63
|
+
(0, _internals.useGridRegisterPreProcessor)(apiRef, 'hydrateColumns', reorderPinnedColumns);
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
exports.useGridColumnPinningPreProcessors = useGridColumnPinningPreProcessors;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.gridColumnReorderSelector = exports.gridColumnReorderDragColSelector = void 0;
|
|
7
|
+
|
|
8
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
9
|
+
|
|
10
|
+
const gridColumnReorderSelector = state => state.columnReorder;
|
|
11
|
+
|
|
12
|
+
exports.gridColumnReorderSelector = gridColumnReorderSelector;
|
|
13
|
+
const gridColumnReorderDragColSelector = (0, _internals.createSelector)(gridColumnReorderSelector, columnReorder => columnReorder.dragCol);
|
|
14
|
+
exports.gridColumnReorderDragColSelector = gridColumnReorderDragColSelector;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _columnReorderSelector = require("./columnReorderSelector");
|
|
8
|
+
|
|
9
|
+
Object.keys(_columnReorderSelector).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _columnReorderSelector[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _columnReorderSelector[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useGridColumnReorder = exports.columnReorderStateInitializer = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
|
|
14
|
+
var _material = require("@mui/material");
|
|
15
|
+
|
|
16
|
+
var _xDataGrid = require("@mui/x-data-grid");
|
|
17
|
+
|
|
18
|
+
var _columnReorderSelector = require("./columnReorderSelector");
|
|
19
|
+
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
+
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
+
|
|
24
|
+
const CURSOR_MOVE_DIRECTION_LEFT = 'left';
|
|
25
|
+
const CURSOR_MOVE_DIRECTION_RIGHT = 'right';
|
|
26
|
+
|
|
27
|
+
const getCursorMoveDirectionX = (currentCoordinates, nextCoordinates) => {
|
|
28
|
+
return currentCoordinates.x <= nextCoordinates.x ? CURSOR_MOVE_DIRECTION_RIGHT : CURSOR_MOVE_DIRECTION_LEFT;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const hasCursorPositionChanged = (currentCoordinates, nextCoordinates) => currentCoordinates.x !== nextCoordinates.x || currentCoordinates.y !== nextCoordinates.y;
|
|
32
|
+
|
|
33
|
+
const useUtilityClasses = ownerState => {
|
|
34
|
+
const {
|
|
35
|
+
classes
|
|
36
|
+
} = ownerState;
|
|
37
|
+
const slots = {
|
|
38
|
+
columnHeaderDragging: ['columnHeader--dragging']
|
|
39
|
+
};
|
|
40
|
+
return (0, _material.unstable_composeClasses)(slots, _xDataGrid.getDataGridUtilityClass, classes);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
const columnReorderStateInitializer = state => (0, _extends2.default)({}, state, {
|
|
44
|
+
columnReorder: {
|
|
45
|
+
dragCol: ''
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* Only available in DataGridPro
|
|
50
|
+
* @requires useGridColumns (method)
|
|
51
|
+
*/
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
exports.columnReorderStateInitializer = columnReorderStateInitializer;
|
|
55
|
+
|
|
56
|
+
const useGridColumnReorder = (apiRef, props) => {
|
|
57
|
+
const logger = (0, _xDataGrid.useGridLogger)(apiRef, 'useGridColumnReorder');
|
|
58
|
+
const dragColNode = React.useRef(null);
|
|
59
|
+
const cursorPosition = React.useRef({
|
|
60
|
+
x: 0,
|
|
61
|
+
y: 0
|
|
62
|
+
});
|
|
63
|
+
const originColumnIndex = React.useRef(null);
|
|
64
|
+
const removeDnDStylesTimeout = React.useRef();
|
|
65
|
+
const ownerState = {
|
|
66
|
+
classes: props.classes
|
|
67
|
+
};
|
|
68
|
+
const classes = useUtilityClasses(ownerState);
|
|
69
|
+
React.useEffect(() => {
|
|
70
|
+
return () => {
|
|
71
|
+
clearTimeout(removeDnDStylesTimeout.current);
|
|
72
|
+
};
|
|
73
|
+
}, []);
|
|
74
|
+
const handleColumnHeaderDragStart = React.useCallback((params, event) => {
|
|
75
|
+
if (props.disableColumnReorder || params.colDef.disableReorder) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
logger.debug(`Start dragging col ${params.field}`); // Prevent drag events propagation.
|
|
80
|
+
// For more information check here https://github.com/mui/mui-x/issues/2680.
|
|
81
|
+
|
|
82
|
+
event.stopPropagation();
|
|
83
|
+
dragColNode.current = event.currentTarget;
|
|
84
|
+
dragColNode.current.classList.add(classes.columnHeaderDragging);
|
|
85
|
+
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
86
|
+
columnReorder: (0, _extends2.default)({}, state.columnReorder, {
|
|
87
|
+
dragCol: params.field
|
|
88
|
+
})
|
|
89
|
+
}));
|
|
90
|
+
apiRef.current.forceUpdate();
|
|
91
|
+
removeDnDStylesTimeout.current = setTimeout(() => {
|
|
92
|
+
dragColNode.current.classList.remove(classes.columnHeaderDragging);
|
|
93
|
+
});
|
|
94
|
+
originColumnIndex.current = apiRef.current.getColumnIndex(params.field, false);
|
|
95
|
+
}, [props.disableColumnReorder, classes.columnHeaderDragging, logger, apiRef]);
|
|
96
|
+
const handleDragEnter = React.useCallback((params, event) => {
|
|
97
|
+
event.preventDefault(); // Prevent drag events propagation.
|
|
98
|
+
// For more information check here https://github.com/mui/mui-x/issues/2680.
|
|
99
|
+
|
|
100
|
+
event.stopPropagation();
|
|
101
|
+
}, []);
|
|
102
|
+
const handleDragOver = React.useCallback((params, event) => {
|
|
103
|
+
const dragColField = (0, _columnReorderSelector.gridColumnReorderDragColSelector)(apiRef);
|
|
104
|
+
|
|
105
|
+
if (!dragColField) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
logger.debug(`Dragging over col ${params.field}`);
|
|
110
|
+
event.preventDefault(); // Prevent drag events propagation.
|
|
111
|
+
// For more information check here https://github.com/mui/mui-x/issues/2680.
|
|
112
|
+
|
|
113
|
+
event.stopPropagation();
|
|
114
|
+
const coordinates = {
|
|
115
|
+
x: event.clientX,
|
|
116
|
+
y: event.clientY
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
if (params.field !== dragColField && hasCursorPositionChanged(cursorPosition.current, coordinates)) {
|
|
120
|
+
const targetColIndex = apiRef.current.getColumnIndex(params.field, false);
|
|
121
|
+
const targetColVisibleIndex = apiRef.current.getColumnIndex(params.field, true);
|
|
122
|
+
const targetCol = apiRef.current.getColumn(params.field);
|
|
123
|
+
const dragColIndex = apiRef.current.getColumnIndex(dragColField, false);
|
|
124
|
+
const visibleColumns = apiRef.current.getVisibleColumns();
|
|
125
|
+
const cursorMoveDirectionX = getCursorMoveDirectionX(cursorPosition.current, coordinates);
|
|
126
|
+
const hasMovedLeft = cursorMoveDirectionX === CURSOR_MOVE_DIRECTION_LEFT && targetColIndex < dragColIndex;
|
|
127
|
+
const hasMovedRight = cursorMoveDirectionX === CURSOR_MOVE_DIRECTION_RIGHT && dragColIndex < targetColIndex;
|
|
128
|
+
|
|
129
|
+
if (hasMovedLeft || hasMovedRight) {
|
|
130
|
+
let canBeReordered;
|
|
131
|
+
|
|
132
|
+
if (!targetCol.disableReorder) {
|
|
133
|
+
canBeReordered = true;
|
|
134
|
+
} else if (hasMovedLeft) {
|
|
135
|
+
canBeReordered = targetColIndex > 0 && !visibleColumns[targetColIndex - 1].disableReorder;
|
|
136
|
+
} else {
|
|
137
|
+
canBeReordered = targetColIndex < visibleColumns.length - 1 && !visibleColumns[targetColIndex + 1].disableReorder;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const canBeReorderedProcessed = apiRef.current.unstable_applyPreProcessors('canBeReordered', canBeReordered, {
|
|
141
|
+
targetIndex: targetColVisibleIndex
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
if (canBeReorderedProcessed) {
|
|
145
|
+
apiRef.current.setColumnIndex(dragColField, targetColIndex);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
cursorPosition.current = coordinates;
|
|
150
|
+
}
|
|
151
|
+
}, [apiRef, logger]);
|
|
152
|
+
const handleDragEnd = React.useCallback((params, event) => {
|
|
153
|
+
const dragColField = (0, _columnReorderSelector.gridColumnReorderDragColSelector)(apiRef);
|
|
154
|
+
|
|
155
|
+
if (props.disableColumnReorder || !dragColField) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
logger.debug('End dragging col');
|
|
160
|
+
event.preventDefault(); // Prevent drag events propagation.
|
|
161
|
+
// For more information check here https://github.com/mui/mui-x/issues/2680.
|
|
162
|
+
|
|
163
|
+
event.stopPropagation();
|
|
164
|
+
clearTimeout(removeDnDStylesTimeout.current);
|
|
165
|
+
dragColNode.current = null; // Check if the column was dropped outside the grid.
|
|
166
|
+
|
|
167
|
+
if (event.dataTransfer.dropEffect === 'none') {
|
|
168
|
+
// Accessing params.field may contain the wrong field as header elements are reused
|
|
169
|
+
apiRef.current.setColumnIndex(dragColField, originColumnIndex.current);
|
|
170
|
+
originColumnIndex.current = null;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
174
|
+
columnReorder: (0, _extends2.default)({}, state.columnReorder, {
|
|
175
|
+
dragCol: ''
|
|
176
|
+
})
|
|
177
|
+
}));
|
|
178
|
+
apiRef.current.forceUpdate();
|
|
179
|
+
}, [props.disableColumnReorder, logger, apiRef]);
|
|
180
|
+
(0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.columnHeaderDragStart, handleColumnHeaderDragStart);
|
|
181
|
+
(0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.columnHeaderDragEnter, handleDragEnter);
|
|
182
|
+
(0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.columnHeaderDragOver, handleDragOver);
|
|
183
|
+
(0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.columnHeaderDragEnd, handleDragEnd);
|
|
184
|
+
(0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.cellDragEnter, handleDragEnter);
|
|
185
|
+
(0, _xDataGrid.useGridApiEventHandler)(apiRef, _xDataGrid.GridEvents.cellDragOver, handleDragOver);
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
exports.useGridColumnReorder = useGridColumnReorder;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.gridResizingColumnFieldSelector = exports.gridColumnResizeSelector = void 0;
|
|
7
|
+
|
|
8
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
9
|
+
|
|
10
|
+
const gridColumnResizeSelector = state => state.columnResize;
|
|
11
|
+
|
|
12
|
+
exports.gridColumnResizeSelector = gridColumnResizeSelector;
|
|
13
|
+
const gridResizingColumnFieldSelector = (0, _internals.createSelector)(gridColumnResizeSelector, columnResize => columnResize.resizingColumnField);
|
|
14
|
+
exports.gridResizingColumnFieldSelector = gridResizingColumnFieldSelector;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _columnResizeSelector = require("./columnResizeSelector");
|
|
8
|
+
|
|
9
|
+
Object.keys(_columnResizeSelector).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _columnResizeSelector[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _columnResizeSelector[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
var _columnResizeState = require("./columnResizeState");
|
|
21
|
+
|
|
22
|
+
Object.keys(_columnResizeState).forEach(function (key) {
|
|
23
|
+
if (key === "default" || key === "__esModule") return;
|
|
24
|
+
if (key in exports && exports[key] === _columnResizeState[key]) return;
|
|
25
|
+
Object.defineProperty(exports, key, {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () {
|
|
28
|
+
return _columnResizeState[key];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|