@mui/x-data-grid-premium 8.0.0-beta.2 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +423 -96
- package/DataGridPremium/DataGridPremium.js +188 -26
- package/DataGridPremium/useDataGridPremiumComponent.d.ts +2 -2
- package/DataGridPremium/useDataGridPremiumComponent.js +22 -3
- package/DataGridPremium/useDataGridPremiumProps.js +5 -1
- package/components/GridColumnMenuPivotItem.d.ts +3 -0
- package/components/GridColumnMenuPivotItem.js +33 -0
- package/components/GridEmptyPivotOverlay.d.ts +6 -0
- package/components/GridEmptyPivotOverlay.js +29 -0
- package/components/GridGroupingCriteriaCell.js +8 -3
- package/components/GridPremiumColumnMenu.d.ts +5 -0
- package/components/GridPremiumColumnMenu.js +6 -1
- package/components/GridPremiumToolbar.d.ts +1 -1
- package/components/GridPremiumToolbar.js +29 -1
- package/components/aiAssistantPanel/AiAssistantPanelTrigger.d.ts +33 -0
- package/components/aiAssistantPanel/AiAssistantPanelTrigger.js +107 -0
- package/components/aiAssistantPanel/GridAiAssistantPanel.d.ts +3 -0
- package/components/aiAssistantPanel/GridAiAssistantPanel.js +195 -0
- package/components/aiAssistantPanel/GridAiAssistantPanelConversation.d.ts +7 -0
- package/components/aiAssistantPanel/GridAiAssistantPanelConversation.js +71 -0
- package/components/aiAssistantPanel/GridAiAssistantPanelConversationsMenu.d.ts +3 -0
- package/components/aiAssistantPanel/GridAiAssistantPanelConversationsMenu.js +92 -0
- package/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.d.ts +7 -0
- package/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.js +86 -0
- package/components/aiAssistantPanel/index.d.ts +2 -0
- package/components/aiAssistantPanel/index.js +27 -0
- package/components/collapsible/Collapsible.d.ts +4 -0
- package/components/collapsible/Collapsible.js +70 -0
- package/components/collapsible/CollapsibleContext.d.ts +8 -0
- package/components/collapsible/CollapsibleContext.js +17 -0
- package/components/collapsible/CollapsiblePanel.d.ts +4 -0
- package/components/collapsible/CollapsiblePanel.js +64 -0
- package/components/collapsible/CollapsibleTrigger.d.ts +4 -0
- package/components/collapsible/CollapsibleTrigger.js +106 -0
- package/components/collapsible/index.d.ts +4 -0
- package/components/collapsible/index.js +49 -0
- package/components/export/ExportExcel.js +4 -129
- package/components/index.d.ts +5 -2
- package/components/index.js +40 -4
- package/components/pivotPanel/GridPivotPanel.d.ts +3 -0
- package/components/pivotPanel/GridPivotPanel.js +22 -0
- package/components/pivotPanel/GridPivotPanelBody.d.ts +11 -0
- package/components/pivotPanel/GridPivotPanelBody.js +368 -0
- package/components/pivotPanel/GridPivotPanelField.d.ts +22 -0
- package/components/pivotPanel/GridPivotPanelField.js +338 -0
- package/components/pivotPanel/GridPivotPanelFieldMenu.d.ts +8 -0
- package/components/pivotPanel/GridPivotPanelFieldMenu.js +177 -0
- package/components/pivotPanel/GridPivotPanelHeader.d.ts +7 -0
- package/components/pivotPanel/GridPivotPanelHeader.js +101 -0
- package/components/pivotPanel/GridPivotPanelSearch.d.ts +7 -0
- package/components/pivotPanel/GridPivotPanelSearch.js +77 -0
- package/components/pivotPanel/PivotPanelTrigger.d.ts +37 -0
- package/components/pivotPanel/PivotPanelTrigger.js +93 -0
- package/components/pivotPanel/index.d.ts +2 -0
- package/components/pivotPanel/index.js +27 -0
- package/components/prompt/GridPrompt.d.ts +7 -0
- package/components/prompt/GridPrompt.js +364 -0
- package/components/prompt/index.d.ts +1 -0
- package/components/prompt/index.js +12 -0
- package/components/promptField/GridPromptField.d.ts +4 -0
- package/components/promptField/GridPromptField.js +86 -0
- package/components/promptField/PromptField.d.ts +66 -0
- package/components/promptField/PromptField.js +95 -0
- package/components/promptField/PromptFieldContext.d.ts +16 -0
- package/components/promptField/PromptFieldContext.js +17 -0
- package/components/promptField/PromptFieldControl.d.ts +27 -0
- package/components/promptField/PromptFieldControl.js +102 -0
- package/components/promptField/PromptFieldRecord.d.ts +27 -0
- package/components/promptField/PromptFieldRecord.js +158 -0
- package/components/promptField/PromptFieldSend.d.ts +27 -0
- package/components/promptField/PromptFieldSend.js +83 -0
- package/components/promptField/index.d.ts +4 -0
- package/components/promptField/index.js +49 -0
- package/components/resizablePanel/ResizablePanel.d.ts +10 -0
- package/components/resizablePanel/ResizablePanel.js +59 -0
- package/components/resizablePanel/ResizablePanelContext.d.ts +7 -0
- package/components/resizablePanel/ResizablePanelContext.js +17 -0
- package/components/resizablePanel/ResizablePanelHandle.d.ts +4 -0
- package/components/resizablePanel/ResizablePanelHandle.js +115 -0
- package/components/resizablePanel/index.d.ts +3 -0
- package/components/resizablePanel/index.js +38 -0
- package/components/sidebar/Sidebar.d.ts +4 -0
- package/components/sidebar/Sidebar.js +54 -0
- package/components/sidebar/SidebarHeader.d.ts +4 -0
- package/components/sidebar/SidebarHeader.js +51 -0
- package/components/sidebar/index.d.ts +2 -0
- package/components/sidebar/index.js +27 -0
- package/constants/dataGridPremiumDefaultSlotsComponents.js +3 -0
- package/esm/DataGridPremium/DataGridPremium.js +190 -28
- package/esm/DataGridPremium/useDataGridPremiumComponent.d.ts +2 -2
- package/esm/DataGridPremium/useDataGridPremiumComponent.js +20 -3
- package/esm/DataGridPremium/useDataGridPremiumProps.js +5 -1
- package/esm/components/GridColumnMenuPivotItem.d.ts +3 -0
- package/esm/components/GridColumnMenuPivotItem.js +26 -0
- package/esm/components/GridEmptyPivotOverlay.d.ts +6 -0
- package/esm/components/GridEmptyPivotOverlay.js +22 -0
- package/esm/components/GridGroupingCriteriaCell.js +9 -4
- package/esm/components/GridPremiumColumnMenu.d.ts +5 -0
- package/esm/components/GridPremiumColumnMenu.js +6 -1
- package/esm/components/GridPremiumToolbar.d.ts +1 -1
- package/esm/components/GridPremiumToolbar.js +30 -2
- package/esm/components/aiAssistantPanel/AiAssistantPanelTrigger.d.ts +33 -0
- package/esm/components/aiAssistantPanel/AiAssistantPanelTrigger.js +100 -0
- package/esm/components/aiAssistantPanel/GridAiAssistantPanel.d.ts +3 -0
- package/esm/components/aiAssistantPanel/GridAiAssistantPanel.js +188 -0
- package/esm/components/aiAssistantPanel/GridAiAssistantPanelConversation.d.ts +7 -0
- package/esm/components/aiAssistantPanel/GridAiAssistantPanelConversation.js +64 -0
- package/esm/components/aiAssistantPanel/GridAiAssistantPanelConversationsMenu.d.ts +3 -0
- package/esm/components/aiAssistantPanel/GridAiAssistantPanelConversationsMenu.js +85 -0
- package/esm/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.d.ts +7 -0
- package/esm/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.js +80 -0
- package/esm/components/aiAssistantPanel/index.d.ts +2 -0
- package/esm/components/aiAssistantPanel/index.js +2 -0
- package/esm/components/collapsible/Collapsible.d.ts +4 -0
- package/esm/components/collapsible/Collapsible.js +63 -0
- package/esm/components/collapsible/CollapsibleContext.d.ts +8 -0
- package/esm/components/collapsible/CollapsibleContext.js +9 -0
- package/esm/components/collapsible/CollapsiblePanel.d.ts +4 -0
- package/esm/components/collapsible/CollapsiblePanel.js +57 -0
- package/esm/components/collapsible/CollapsibleTrigger.d.ts +4 -0
- package/esm/components/collapsible/CollapsibleTrigger.js +99 -0
- package/esm/components/collapsible/index.d.ts +4 -0
- package/esm/components/collapsible/index.js +4 -0
- package/esm/components/export/ExportExcel.js +4 -129
- package/esm/components/index.d.ts +5 -2
- package/esm/components/index.js +5 -2
- package/esm/components/pivotPanel/GridPivotPanel.d.ts +3 -0
- package/esm/components/pivotPanel/GridPivotPanel.js +16 -0
- package/esm/components/pivotPanel/GridPivotPanelBody.d.ts +11 -0
- package/esm/components/pivotPanel/GridPivotPanelBody.js +361 -0
- package/esm/components/pivotPanel/GridPivotPanelField.d.ts +22 -0
- package/esm/components/pivotPanel/GridPivotPanelField.js +331 -0
- package/esm/components/pivotPanel/GridPivotPanelFieldMenu.d.ts +8 -0
- package/esm/components/pivotPanel/GridPivotPanelFieldMenu.js +170 -0
- package/esm/components/pivotPanel/GridPivotPanelHeader.d.ts +7 -0
- package/esm/components/pivotPanel/GridPivotPanelHeader.js +94 -0
- package/esm/components/pivotPanel/GridPivotPanelSearch.d.ts +7 -0
- package/esm/components/pivotPanel/GridPivotPanelSearch.js +70 -0
- package/esm/components/pivotPanel/PivotPanelTrigger.d.ts +37 -0
- package/esm/components/pivotPanel/PivotPanelTrigger.js +86 -0
- package/esm/components/pivotPanel/index.d.ts +2 -0
- package/esm/components/pivotPanel/index.js +2 -0
- package/esm/components/prompt/GridPrompt.d.ts +7 -0
- package/esm/components/prompt/GridPrompt.js +357 -0
- package/esm/components/prompt/index.d.ts +1 -0
- package/esm/components/prompt/index.js +1 -0
- package/esm/components/promptField/GridPromptField.d.ts +4 -0
- package/esm/components/promptField/GridPromptField.js +79 -0
- package/esm/components/promptField/PromptField.d.ts +66 -0
- package/esm/components/promptField/PromptField.js +88 -0
- package/esm/components/promptField/PromptFieldContext.d.ts +16 -0
- package/esm/components/promptField/PromptFieldContext.js +9 -0
- package/esm/components/promptField/PromptFieldControl.d.ts +27 -0
- package/esm/components/promptField/PromptFieldControl.js +95 -0
- package/esm/components/promptField/PromptFieldRecord.d.ts +27 -0
- package/esm/components/promptField/PromptFieldRecord.js +151 -0
- package/esm/components/promptField/PromptFieldSend.d.ts +27 -0
- package/esm/components/promptField/PromptFieldSend.js +76 -0
- package/esm/components/promptField/index.d.ts +4 -0
- package/esm/components/promptField/index.js +4 -0
- package/esm/components/resizablePanel/ResizablePanel.d.ts +10 -0
- package/esm/components/resizablePanel/ResizablePanel.js +52 -0
- package/esm/components/resizablePanel/ResizablePanelContext.d.ts +7 -0
- package/esm/components/resizablePanel/ResizablePanelContext.js +9 -0
- package/esm/components/resizablePanel/ResizablePanelHandle.d.ts +4 -0
- package/esm/components/resizablePanel/ResizablePanelHandle.js +108 -0
- package/esm/components/resizablePanel/index.d.ts +3 -0
- package/esm/components/resizablePanel/index.js +3 -0
- package/esm/components/sidebar/Sidebar.d.ts +4 -0
- package/esm/components/sidebar/Sidebar.js +47 -0
- package/esm/components/sidebar/SidebarHeader.d.ts +4 -0
- package/esm/components/sidebar/SidebarHeader.js +44 -0
- package/esm/components/sidebar/index.d.ts +2 -0
- package/esm/components/sidebar/index.js +2 -0
- package/esm/constants/dataGridPremiumDefaultSlotsComponents.js +3 -0
- package/esm/hooks/features/aggregation/gridAggregationFunctions.js +13 -0
- package/esm/hooks/features/aggregation/gridAggregationSelectors.d.ts +10 -1
- package/esm/hooks/features/aggregation/gridAggregationSelectors.js +28 -1
- package/esm/hooks/features/aggregation/gridAggregationUtils.d.ts +1 -1
- package/esm/hooks/features/aggregation/index.d.ts +1 -1
- package/esm/hooks/features/aggregation/index.js +1 -1
- package/esm/hooks/features/aggregation/useGridAggregation.js +7 -11
- package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.js +2 -8
- package/esm/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +5 -25
- package/esm/hooks/features/aggregation/wrapColumnWithAggregation.js +23 -10
- package/esm/hooks/features/aiAssistant/api.d.ts +12 -0
- package/esm/hooks/features/aiAssistant/api.js +31 -0
- package/esm/hooks/features/aiAssistant/gridAiAssistantInterfaces.d.ts +82 -0
- package/esm/hooks/features/aiAssistant/gridAiAssistantSelectors.d.ts +5 -0
- package/esm/hooks/features/aiAssistant/gridAiAssistantSelectors.js +5 -0
- package/esm/hooks/features/aiAssistant/index.d.ts +2 -0
- package/esm/hooks/features/aiAssistant/useGridAiAssistant.d.ts +6 -0
- package/esm/hooks/features/aiAssistant/useGridAiAssistant.js +293 -0
- package/esm/hooks/features/cellSelection/useGridCellSelection.js +6 -6
- package/esm/hooks/features/clipboard/useGridClipboardImport.js +4 -4
- package/esm/hooks/features/dataSource/useGridDataSourcePremium.js +4 -1
- package/esm/hooks/features/export/useGridExcelExport.js +2 -2
- package/esm/hooks/features/index.d.ts +1 -1
- package/esm/hooks/features/index.js +1 -1
- package/esm/hooks/features/pivoting/gridPivotingInterfaces.d.ts +69 -0
- package/esm/hooks/features/pivoting/gridPivotingSelectors.d.ts +4 -0
- package/esm/hooks/features/pivoting/gridPivotingSelectors.js +5 -0
- package/esm/hooks/features/pivoting/useGridPivoting.d.ts +7 -0
- package/esm/hooks/features/pivoting/useGridPivoting.js +339 -0
- package/esm/hooks/features/pivoting/utils.d.ts +21 -0
- package/esm/hooks/features/pivoting/utils.js +259 -0
- package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +1 -4
- package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
- package/esm/hooks/utils/useResize.d.ts +9 -0
- package/esm/hooks/utils/useResize.js +52 -0
- package/esm/index.d.ts +4 -1
- package/esm/index.js +4 -2
- package/esm/material/icons.d.ts +15 -15
- package/esm/material/icons.js +32 -5
- package/esm/material/index.d.ts +31 -5
- package/esm/material/index.js +31 -3
- package/esm/models/dataGridPremiumProps.d.ts +96 -2
- package/esm/models/gridApiPremium.d.ts +4 -2
- package/esm/models/gridPremiumIconSlotsComponent.d.ts +141 -8
- package/esm/models/gridPremiumSlotsComponent.d.ts +13 -1
- package/esm/models/gridStatePremium.d.ts +6 -0
- package/esm/package.json +1 -1
- package/esm/setupExcelExportWebWorker/index.d.ts +1 -0
- package/esm/setupExcelExportWebWorker/index.js +1 -0
- package/esm/typeOverloads/modules.d.ts +32 -1
- package/esm/utils/speechRecognition.d.ts +2 -0
- package/esm/utils/speechRecognition.js +2 -0
- package/hooks/features/aggregation/gridAggregationFunctions.js +13 -0
- package/hooks/features/aggregation/gridAggregationSelectors.d.ts +10 -1
- package/hooks/features/aggregation/gridAggregationSelectors.js +29 -2
- package/hooks/features/aggregation/gridAggregationUtils.d.ts +1 -1
- package/hooks/features/aggregation/index.d.ts +1 -1
- package/hooks/features/aggregation/index.js +21 -11
- package/hooks/features/aggregation/useGridAggregation.js +6 -10
- package/hooks/features/aggregation/useGridAggregationPreProcessors.js +2 -8
- package/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +5 -25
- package/hooks/features/aggregation/wrapColumnWithAggregation.js +24 -11
- package/hooks/features/aiAssistant/api.d.ts +12 -0
- package/hooks/features/aiAssistant/api.js +37 -0
- package/hooks/features/aiAssistant/gridAiAssistantInterfaces.d.ts +82 -0
- package/hooks/features/aiAssistant/gridAiAssistantSelectors.d.ts +5 -0
- package/hooks/features/aiAssistant/gridAiAssistantSelectors.js +11 -0
- package/hooks/features/aiAssistant/index.d.ts +2 -0
- package/hooks/features/aiAssistant/useGridAiAssistant.d.ts +6 -0
- package/hooks/features/aiAssistant/useGridAiAssistant.js +303 -0
- package/hooks/features/cellSelection/useGridCellSelection.js +5 -5
- package/hooks/features/clipboard/useGridClipboardImport.js +3 -3
- package/hooks/features/dataSource/useGridDataSourcePremium.js +4 -1
- package/hooks/features/export/useGridExcelExport.js +1 -1
- package/hooks/features/index.d.ts +1 -1
- package/hooks/features/index.js +4 -4
- package/hooks/features/pivoting/gridPivotingInterfaces.d.ts +69 -0
- package/hooks/features/pivoting/gridPivotingInterfaces.js +5 -0
- package/hooks/features/pivoting/gridPivotingSelectors.d.ts +4 -0
- package/hooks/features/pivoting/gridPivotingSelectors.js +30 -0
- package/hooks/features/pivoting/useGridPivoting.d.ts +7 -0
- package/hooks/features/pivoting/useGridPivoting.js +349 -0
- package/hooks/features/pivoting/utils.d.ts +21 -0
- package/hooks/features/pivoting/utils.js +270 -0
- package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +1 -4
- package/hooks/features/rowGrouping/useGridRowGrouping.js +3 -4
- package/hooks/utils/useResize.d.ts +9 -0
- package/hooks/utils/useResize.js +60 -0
- package/index.d.ts +4 -1
- package/index.js +19 -3
- package/material/icons.d.ts +15 -15
- package/material/icons.js +36 -9
- package/material/index.d.ts +31 -5
- package/material/index.js +30 -2
- package/models/dataGridPremiumProps.d.ts +96 -2
- package/models/gridApiPremium.d.ts +4 -2
- package/models/gridPremiumIconSlotsComponent.d.ts +141 -8
- package/models/gridPremiumSlotsComponent.d.ts +13 -1
- package/models/gridStatePremium.d.ts +6 -0
- package/package.json +12 -18
- package/setupExcelExportWebWorker/index.d.ts +1 -0
- package/{setupExcelExportWebWorker.js → setupExcelExportWebWorker/index.js} +1 -1
- package/typeOverloads/modules.d.ts +32 -1
- package/utils/speechRecognition.d.ts +2 -0
- package/utils/speechRecognition.js +8 -0
- package/components/promptControl/GridToolbarPromptControl.d.ts +0 -26
- package/components/promptControl/GridToolbarPromptControl.js +0 -222
- package/components/promptControl/RecordButton.d.ts +0 -16
- package/components/promptControl/RecordButton.js +0 -119
- package/components/promptControl/index.d.ts +0 -1
- package/components/promptControl/index.js +0 -12
- package/esm/components/promptControl/GridToolbarPromptControl.d.ts +0 -26
- package/esm/components/promptControl/GridToolbarPromptControl.js +0 -215
- package/esm/components/promptControl/RecordButton.d.ts +0 -16
- package/esm/components/promptControl/RecordButton.js +0 -111
- package/esm/components/promptControl/index.d.ts +0 -1
- package/esm/components/promptControl/index.js +0 -1
- package/esm/hooks/features/promptControl/api.d.ts +0 -2
- package/esm/hooks/features/promptControl/api.js +0 -22
- package/esm/hooks/features/promptControl/index.d.ts +0 -2
- package/esm/hooks/features/promptControl/types.d.ts +0 -25
- package/esm/setupExcelExportWebWorker.d.ts +0 -1
- package/esm/setupExcelExportWebWorker.js +0 -1
- package/esm/utils/releaseInfo.d.ts +0 -1
- package/esm/utils/releaseInfo.js +0 -13
- package/hooks/features/promptControl/api.d.ts +0 -2
- package/hooks/features/promptControl/api.js +0 -28
- package/hooks/features/promptControl/index.d.ts +0 -2
- package/hooks/features/promptControl/types.d.ts +0 -25
- package/modern/DataGridPremium/DataGrid.d.ts +0 -8
- package/modern/DataGridPremium/DataGrid.js +0 -19
- package/modern/DataGridPremium/DataGridPremium.d.ts +0 -16
- package/modern/DataGridPremium/DataGridPremium.js +0 -1121
- package/modern/DataGridPremium/index.d.ts +0 -3
- package/modern/DataGridPremium/index.js +0 -3
- package/modern/DataGridPremium/useDataGridPremiumComponent.d.ts +0 -4
- package/modern/DataGridPremium/useDataGridPremiumComponent.js +0 -108
- package/modern/DataGridPremium/useDataGridPremiumProps.d.ts +0 -6
- package/modern/DataGridPremium/useDataGridPremiumProps.js +0 -54
- package/modern/components/GridAggregationHeader.d.ts +0 -7
- package/modern/components/GridAggregationHeader.js +0 -89
- package/modern/components/GridAggregationRowOverlay.d.ts +0 -3
- package/modern/components/GridAggregationRowOverlay.js +0 -37
- package/modern/components/GridBottomContainer.d.ts +0 -3
- package/modern/components/GridBottomContainer.js +0 -43
- package/modern/components/GridColumnMenuAggregationItem.d.ts +0 -7
- package/modern/components/GridColumnMenuAggregationItem.js +0 -124
- package/modern/components/GridColumnMenuRowGroupItem.d.ts +0 -3
- package/modern/components/GridColumnMenuRowGroupItem.js +0 -42
- package/modern/components/GridColumnMenuRowUngroupItem.d.ts +0 -3
- package/modern/components/GridColumnMenuRowUngroupItem.js +0 -44
- package/modern/components/GridDataSourceGroupingCriteriaCell.d.ts +0 -7
- package/modern/components/GridDataSourceGroupingCriteriaCell.js +0 -121
- package/modern/components/GridExcelExportMenuItem.d.ts +0 -9
- package/modern/components/GridExcelExportMenuItem.js +0 -48
- package/modern/components/GridFooterCell.d.ts +0 -9
- package/modern/components/GridFooterCell.js +0 -43
- package/modern/components/GridGroupingColumnFooterCell.d.ts +0 -4
- package/modern/components/GridGroupingColumnFooterCell.js +0 -23
- package/modern/components/GridGroupingColumnLeafCell.d.ts +0 -4
- package/modern/components/GridGroupingColumnLeafCell.js +0 -17
- package/modern/components/GridGroupingCriteriaCell.d.ts +0 -7
- package/modern/components/GridGroupingCriteriaCell.js +0 -87
- package/modern/components/GridPremiumColumnMenu.d.ts +0 -33
- package/modern/components/GridPremiumColumnMenu.js +0 -37
- package/modern/components/GridPremiumToolbar.d.ts +0 -3
- package/modern/components/GridPremiumToolbar.js +0 -23
- package/modern/components/export/ExportExcel.d.ts +0 -29
- package/modern/components/export/ExportExcel.js +0 -209
- package/modern/components/export/index.d.ts +0 -1
- package/modern/components/export/index.js +0 -1
- package/modern/components/index.d.ts +0 -6
- package/modern/components/index.js +0 -6
- package/modern/components/promptControl/GridToolbarPromptControl.d.ts +0 -26
- package/modern/components/promptControl/GridToolbarPromptControl.js +0 -215
- package/modern/components/promptControl/RecordButton.d.ts +0 -16
- package/modern/components/promptControl/RecordButton.js +0 -111
- package/modern/components/promptControl/index.d.ts +0 -1
- package/modern/components/promptControl/index.js +0 -1
- package/modern/components/reexports.d.ts +0 -1
- package/modern/components/reexports.js +0 -1
- package/modern/constants/dataGridPremiumDefaultSlotsComponents.d.ts +0 -2
- package/modern/constants/dataGridPremiumDefaultSlotsComponents.js +0 -11
- package/modern/hooks/features/aggregation/createAggregationLookup.d.ts +0 -17
- package/modern/hooks/features/aggregation/createAggregationLookup.js +0 -111
- package/modern/hooks/features/aggregation/gridAggregationFunctions.d.ts +0 -8
- package/modern/hooks/features/aggregation/gridAggregationFunctions.js +0 -93
- package/modern/hooks/features/aggregation/gridAggregationInterfaces.d.ts +0 -129
- package/modern/hooks/features/aggregation/gridAggregationSelectors.d.ts +0 -13
- package/modern/hooks/features/aggregation/gridAggregationSelectors.js +0 -15
- package/modern/hooks/features/aggregation/gridAggregationUtils.d.ts +0 -62
- package/modern/hooks/features/aggregation/gridAggregationUtils.js +0 -180
- package/modern/hooks/features/aggregation/index.d.ts +0 -4
- package/modern/hooks/features/aggregation/index.js +0 -3
- package/modern/hooks/features/aggregation/useGridAggregation.d.ts +0 -6
- package/modern/hooks/features/aggregation/useGridAggregation.js +0 -103
- package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +0 -4
- package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.js +0 -96
- package/modern/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +0 -81
- package/modern/hooks/features/aggregation/wrapColumnWithAggregation.js +0 -215
- package/modern/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +0 -40
- package/modern/hooks/features/cellSelection/gridCellSelectionInterfaces.js +0 -1
- package/modern/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +0 -2
- package/modern/hooks/features/cellSelection/gridCellSelectionSelector.js +0 -2
- package/modern/hooks/features/cellSelection/index.d.ts +0 -1
- package/modern/hooks/features/cellSelection/index.js +0 -1
- package/modern/hooks/features/cellSelection/useGridCellSelection.d.ts +0 -6
- package/modern/hooks/features/cellSelection/useGridCellSelection.js +0 -486
- package/modern/hooks/features/clipboard/useGridClipboardImport.d.ts +0 -4
- package/modern/hooks/features/clipboard/useGridClipboardImport.js +0 -335
- package/modern/hooks/features/dataSource/models.d.ts +0 -54
- package/modern/hooks/features/dataSource/models.js +0 -1
- package/modern/hooks/features/dataSource/useGridDataSourcePremium.d.ts +0 -4
- package/modern/hooks/features/dataSource/useGridDataSourcePremium.js +0 -59
- package/modern/hooks/features/export/gridExcelExportInterface.d.ts +0 -71
- package/modern/hooks/features/export/gridExcelExportInterface.js +0 -1
- package/modern/hooks/features/export/index.d.ts +0 -2
- package/modern/hooks/features/export/index.js +0 -2
- package/modern/hooks/features/export/serializer/excelSerializer.d.ts +0 -40
- package/modern/hooks/features/export/serializer/excelSerializer.js +0 -269
- package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +0 -2
- package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.js +0 -53
- package/modern/hooks/features/export/serializer/utils.d.ts +0 -36
- package/modern/hooks/features/export/serializer/utils.js +0 -93
- package/modern/hooks/features/export/useGridExcelExport.d.ts +0 -11
- package/modern/hooks/features/export/useGridExcelExport.js +0 -139
- package/modern/hooks/features/index.d.ts +0 -5
- package/modern/hooks/features/index.js +0 -6
- package/modern/hooks/features/promptControl/api.d.ts +0 -2
- package/modern/hooks/features/promptControl/api.js +0 -22
- package/modern/hooks/features/promptControl/index.d.ts +0 -2
- package/modern/hooks/features/promptControl/index.js +0 -1
- package/modern/hooks/features/promptControl/types.d.ts +0 -25
- package/modern/hooks/features/promptControl/types.js +0 -1
- package/modern/hooks/features/rowGrouping/createGroupingColDef.d.ts +0 -57
- package/modern/hooks/features/rowGrouping/createGroupingColDef.js +0 -272
- package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +0 -44
- package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.js +0 -1
- package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +0 -3
- package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.js +0 -5
- package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +0 -54
- package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +0 -173
- package/modern/hooks/features/rowGrouping/index.d.ts +0 -3
- package/modern/hooks/features/rowGrouping/index.js +0 -3
- package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +0 -4
- package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +0 -73
- package/modern/hooks/features/rowGrouping/useGridRowGrouping.d.ts +0 -11
- package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +0 -182
- package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +0 -4
- package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +0 -157
- package/modern/hooks/features/rows/index.d.ts +0 -1
- package/modern/hooks/features/rows/index.js +0 -1
- package/modern/hooks/features/rows/useGridRowAriaAttributes.d.ts +0 -1
- package/modern/hooks/features/rows/useGridRowAriaAttributes.js +0 -8
- package/modern/hooks/index.d.ts +0 -2
- package/modern/hooks/index.js +0 -3
- package/modern/hooks/utils/index.d.ts +0 -1
- package/modern/hooks/utils/index.js +0 -1
- package/modern/hooks/utils/useGridApiContext.d.ts +0 -4
- package/modern/hooks/utils/useGridApiContext.js +0 -2
- package/modern/hooks/utils/useGridApiRef.d.ts +0 -4
- package/modern/hooks/utils/useGridApiRef.js +0 -2
- package/modern/hooks/utils/useGridAriaAttributes.d.ts +0 -2
- package/modern/hooks/utils/useGridAriaAttributes.js +0 -13
- package/modern/hooks/utils/useGridPrivateApiContext.d.ts +0 -2
- package/modern/hooks/utils/useGridPrivateApiContext.js +0 -2
- package/modern/hooks/utils/useGridRootProps.d.ts +0 -2
- package/modern/hooks/utils/useGridRootProps.js +0 -2
- package/modern/hooks/utils/useKeepGroupedColumnsHidden.d.ts +0 -12
- package/modern/hooks/utils/useKeepGroupedColumnsHidden.js +0 -43
- package/modern/index.d.ts +0 -23
- package/modern/index.js +0 -26
- package/modern/locales.d.ts +0 -1
- package/modern/locales.js +0 -1
- package/modern/material/icons.d.ts +0 -15
- package/modern/material/icons.js +0 -20
- package/modern/material/index.d.ts +0 -8
- package/modern/material/index.js +0 -11
- package/modern/models/dataGridPremiumProps.d.ts +0 -162
- package/modern/models/dataGridPremiumProps.js +0 -1
- package/modern/models/gridApiPremium.d.ts +0 -14
- package/modern/models/gridApiPremium.js +0 -1
- package/modern/models/gridGroupingValueGetter.d.ts +0 -4
- package/modern/models/gridGroupingValueGetter.js +0 -1
- package/modern/models/gridPastedValueParser.d.ts +0 -4
- package/modern/models/gridPastedValueParser.js +0 -1
- package/modern/models/gridPremiumIconSlotsComponent.d.ts +0 -28
- package/modern/models/gridPremiumIconSlotsComponent.js +0 -1
- package/modern/models/gridPremiumSlotsComponent.d.ts +0 -7
- package/modern/models/gridPremiumSlotsComponent.js +0 -1
- package/modern/models/gridStatePremium.d.ts +0 -18
- package/modern/models/gridStatePremium.js +0 -1
- package/modern/models/index.d.ts +0 -4
- package/modern/models/index.js +0 -4
- package/modern/package.json +0 -1
- package/modern/setupExcelExportWebWorker.d.ts +0 -1
- package/modern/setupExcelExportWebWorker.js +0 -1
- package/modern/themeAugmentation/index.d.ts +0 -2
- package/modern/themeAugmentation/index.js +0 -4
- package/modern/themeAugmentation/overrides.d.ts +0 -7
- package/modern/themeAugmentation/overrides.js +0 -1
- package/modern/themeAugmentation/props.d.ts +0 -15
- package/modern/themeAugmentation/props.js +0 -1
- package/modern/typeOverloads/index.d.ts +0 -2
- package/modern/typeOverloads/index.js +0 -2
- package/modern/typeOverloads/modules.d.ts +0 -97
- package/modern/typeOverloads/modules.js +0 -1
- package/modern/typeOverloads/reexports.d.ts +0 -17
- package/modern/typeOverloads/reexports.js +0 -15
- package/modern/utils/releaseInfo.d.ts +0 -1
- package/modern/utils/releaseInfo.js +0 -13
- package/setupExcelExportWebWorker.d.ts +0 -1
- package/tsconfig.build.tsbuildinfo +0 -1
- package/utils/releaseInfo.d.ts +0 -1
- package/utils/releaseInfo.js +0 -20
- /package/esm/hooks/features/{promptControl/types.js → aiAssistant/gridAiAssistantInterfaces.js} +0 -0
- /package/esm/hooks/features/{promptControl → aiAssistant}/index.js +0 -0
- /package/{modern/hooks/features/aggregation/gridAggregationInterfaces.js → esm/hooks/features/pivoting/gridPivotingInterfaces.js} +0 -0
- /package/hooks/features/{promptControl/types.js → aiAssistant/gridAiAssistantInterfaces.js} +0 -0
- /package/hooks/features/{promptControl → aiAssistant}/index.js +0 -0
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useGridPivoting = exports.pivotingStateInitializer = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _xDataGridPro = require("@mui/x-data-grid-pro");
|
|
12
|
+
var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
|
|
13
|
+
var _useOnMount = _interopRequireDefault(require("@mui/utils/useOnMount"));
|
|
14
|
+
var _internals = require("@mui/x-data-grid-pro/internals");
|
|
15
|
+
var _gridPivotingSelectors = require("./gridPivotingSelectors");
|
|
16
|
+
var _utils = require("./utils");
|
|
17
|
+
var _gridAggregationUtils = require("../aggregation/gridAggregationUtils");
|
|
18
|
+
const emptyPivotModel = {
|
|
19
|
+
rows: [],
|
|
20
|
+
columns: [],
|
|
21
|
+
values: []
|
|
22
|
+
};
|
|
23
|
+
const pivotingStateInitializer = (state, props, apiRef) => {
|
|
24
|
+
if (!(0, _utils.isPivotingAvailable)(props)) {
|
|
25
|
+
return (0, _extends2.default)({}, state, {
|
|
26
|
+
pivoting: {
|
|
27
|
+
active: false,
|
|
28
|
+
model: emptyPivotModel,
|
|
29
|
+
panelOpen: false
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const initialColumns = (0, _utils.getInitialColumns)(props.columns ?? [], props.getPivotDerivedColumns, apiRef.current.getLocaleText);
|
|
34
|
+
return (0, _extends2.default)({}, state, {
|
|
35
|
+
pivoting: {
|
|
36
|
+
active: props.pivotActive ?? props.initialState?.pivoting?.enabled ?? false,
|
|
37
|
+
model: props.pivotModel ?? props.initialState?.pivoting?.model ?? emptyPivotModel,
|
|
38
|
+
panelOpen: props.pivotPanelOpen ?? props.initialState?.pivoting?.panelOpen ?? false,
|
|
39
|
+
initialColumns
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
exports.pivotingStateInitializer = pivotingStateInitializer;
|
|
44
|
+
const useGridPivoting = (apiRef, props, originalColumnsProp, originalRowsProp) => {
|
|
45
|
+
const isPivotActive = (0, _internals.useGridSelector)(apiRef, _gridPivotingSelectors.gridPivotActiveSelector);
|
|
46
|
+
const exportedStateRef = React.useRef(null);
|
|
47
|
+
const nonPivotDataRef = React.useRef(undefined);
|
|
48
|
+
const isPivotingAvailable = (0, _utils.isPivotingAvailable)(props);
|
|
49
|
+
apiRef.current.registerControlState({
|
|
50
|
+
stateId: 'pivotModel',
|
|
51
|
+
propModel: props.pivotModel,
|
|
52
|
+
propOnChange: props.onPivotModelChange,
|
|
53
|
+
stateSelector: _gridPivotingSelectors.gridPivotModelSelector,
|
|
54
|
+
changeEvent: 'pivotModelChange'
|
|
55
|
+
});
|
|
56
|
+
apiRef.current.registerControlState({
|
|
57
|
+
stateId: 'pivotMode',
|
|
58
|
+
propModel: props.pivotActive,
|
|
59
|
+
propOnChange: props.onPivotActiveChange,
|
|
60
|
+
stateSelector: _gridPivotingSelectors.gridPivotActiveSelector,
|
|
61
|
+
changeEvent: 'pivotModeChange'
|
|
62
|
+
});
|
|
63
|
+
apiRef.current.registerControlState({
|
|
64
|
+
stateId: 'pivotPanelOpen',
|
|
65
|
+
propModel: props.pivotPanelOpen,
|
|
66
|
+
propOnChange: props.onPivotPanelOpenChange,
|
|
67
|
+
stateSelector: _gridPivotingSelectors.gridPivotPanelOpenSelector,
|
|
68
|
+
changeEvent: 'pivotPanelOpenChange'
|
|
69
|
+
});
|
|
70
|
+
const getInitialData = React.useCallback(() => {
|
|
71
|
+
if (!exportedStateRef.current) {
|
|
72
|
+
exportedStateRef.current = apiRef.current.exportState();
|
|
73
|
+
}
|
|
74
|
+
const rowIds = (0, _xDataGridPro.gridDataRowIdsSelector)(apiRef);
|
|
75
|
+
const rowsLookup = (0, _xDataGridPro.gridRowsLookupSelector)(apiRef);
|
|
76
|
+
const rows = rowIds.map(id => rowsLookup[id]);
|
|
77
|
+
const initialColumns = (0, _utils.getInitialColumns)(originalColumnsProp, props.getPivotDerivedColumns, apiRef.current.getLocaleText);
|
|
78
|
+
return {
|
|
79
|
+
rows,
|
|
80
|
+
columns: initialColumns
|
|
81
|
+
};
|
|
82
|
+
}, [apiRef, props.getPivotDerivedColumns, originalColumnsProp]);
|
|
83
|
+
const computePivotingState = React.useCallback(({
|
|
84
|
+
active,
|
|
85
|
+
model: pivotModel
|
|
86
|
+
}) => {
|
|
87
|
+
if (active && pivotModel) {
|
|
88
|
+
const {
|
|
89
|
+
rows,
|
|
90
|
+
columns
|
|
91
|
+
} = nonPivotDataRef.current || {
|
|
92
|
+
rows: [],
|
|
93
|
+
columns: new Map()
|
|
94
|
+
};
|
|
95
|
+
return {
|
|
96
|
+
initialColumns: columns,
|
|
97
|
+
// TODO: fix getPivotedData called twice in controlled mode
|
|
98
|
+
propsOverrides: (0, _utils.getPivotedData)({
|
|
99
|
+
rows,
|
|
100
|
+
columns,
|
|
101
|
+
pivotModel,
|
|
102
|
+
apiRef: apiRef,
|
|
103
|
+
pivotingColDef: props.pivotingColDef
|
|
104
|
+
})
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
return undefined;
|
|
108
|
+
}, [apiRef, props.pivotingColDef]);
|
|
109
|
+
(0, _useOnMount.default)(() => {
|
|
110
|
+
if (!isPivotingAvailable || !isPivotActive) {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
const isLoading = (0, _xDataGridPro.gridRowsLoadingSelector)(apiRef) ?? false;
|
|
114
|
+
const runPivoting = () => {
|
|
115
|
+
nonPivotDataRef.current = getInitialData();
|
|
116
|
+
apiRef.current.setState(state => {
|
|
117
|
+
const pivotingState = (0, _extends2.default)({}, state.pivoting, computePivotingState(state.pivoting));
|
|
118
|
+
return (0, _extends2.default)({}, state, {
|
|
119
|
+
pivoting: pivotingState
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
if (!isLoading) {
|
|
124
|
+
runPivoting();
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
const unsubscribe = apiRef.current?.store.subscribe(() => {
|
|
128
|
+
const loading = (0, _xDataGridPro.gridRowsLoadingSelector)(apiRef);
|
|
129
|
+
if (loading === false) {
|
|
130
|
+
unsubscribe();
|
|
131
|
+
runPivoting();
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
return unsubscribe;
|
|
135
|
+
});
|
|
136
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
137
|
+
if (!isPivotingAvailable || !isPivotActive) {
|
|
138
|
+
if (exportedStateRef.current) {
|
|
139
|
+
apiRef.current.restoreState(exportedStateRef.current);
|
|
140
|
+
exportedStateRef.current = null;
|
|
141
|
+
}
|
|
142
|
+
if (nonPivotDataRef.current) {
|
|
143
|
+
apiRef.current.setRows(nonPivotDataRef.current.rows);
|
|
144
|
+
nonPivotDataRef.current = undefined;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}, [isPivotActive, apiRef, isPivotingAvailable]);
|
|
148
|
+
const setPivotModel = React.useCallback(callback => {
|
|
149
|
+
if (!isPivotingAvailable) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
apiRef.current.setState(state => {
|
|
153
|
+
const newPivotModel = typeof callback === 'function' ? callback(state.pivoting?.model) : callback;
|
|
154
|
+
if (state.pivoting?.model === newPivotModel) {
|
|
155
|
+
return state;
|
|
156
|
+
}
|
|
157
|
+
const newPivotingState = (0, _extends2.default)({}, state.pivoting, computePivotingState((0, _extends2.default)({}, state.pivoting, {
|
|
158
|
+
model: newPivotModel
|
|
159
|
+
})), {
|
|
160
|
+
model: newPivotModel
|
|
161
|
+
});
|
|
162
|
+
return (0, _extends2.default)({}, state, {
|
|
163
|
+
pivoting: newPivotingState
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
}, [apiRef, computePivotingState, isPivotingAvailable]);
|
|
167
|
+
const updatePivotModel = React.useCallback(({
|
|
168
|
+
field,
|
|
169
|
+
targetSection,
|
|
170
|
+
originSection,
|
|
171
|
+
targetField,
|
|
172
|
+
targetFieldPosition
|
|
173
|
+
}) => {
|
|
174
|
+
if (field === targetField) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
apiRef.current.setPivotModel(prev => {
|
|
178
|
+
const newModel = (0, _extends2.default)({}, prev);
|
|
179
|
+
const isSameSection = targetSection === originSection;
|
|
180
|
+
const hidden = originSection === null ? false : prev[originSection].find(item => item.field === field)?.hidden ?? false;
|
|
181
|
+
if (targetSection) {
|
|
182
|
+
const newSectionArray = [...prev[targetSection]];
|
|
183
|
+
let toIndex = newSectionArray.length;
|
|
184
|
+
if (targetField) {
|
|
185
|
+
const fromIndex = newSectionArray.findIndex(item => item.field === field);
|
|
186
|
+
if (fromIndex > -1) {
|
|
187
|
+
newSectionArray.splice(fromIndex, 1);
|
|
188
|
+
}
|
|
189
|
+
toIndex = newSectionArray.findIndex(item => item.field === targetField);
|
|
190
|
+
if (targetFieldPosition === 'bottom') {
|
|
191
|
+
toIndex += 1;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (targetSection === 'values') {
|
|
195
|
+
const initialColumns = (0, _internals.gridPivotInitialColumnsSelector)(apiRef);
|
|
196
|
+
const aggFunc = isSameSection ? prev.values.find(item => item.field === field)?.aggFunc : (0, _gridAggregationUtils.getAvailableAggregationFunctions)({
|
|
197
|
+
aggregationFunctions: props.aggregationFunctions,
|
|
198
|
+
colDef: initialColumns.get(field),
|
|
199
|
+
isDataSource: false
|
|
200
|
+
})[0];
|
|
201
|
+
newSectionArray.splice(toIndex, 0, {
|
|
202
|
+
field,
|
|
203
|
+
aggFunc,
|
|
204
|
+
hidden
|
|
205
|
+
});
|
|
206
|
+
newModel.values = newSectionArray;
|
|
207
|
+
} else if (targetSection === 'columns') {
|
|
208
|
+
const sort = isSameSection ? prev.columns.find(item => item.field === field)?.sort : undefined;
|
|
209
|
+
newSectionArray.splice(toIndex, 0, {
|
|
210
|
+
field,
|
|
211
|
+
sort,
|
|
212
|
+
hidden
|
|
213
|
+
});
|
|
214
|
+
newModel.columns = newSectionArray;
|
|
215
|
+
} else if (targetSection === 'rows') {
|
|
216
|
+
newSectionArray.splice(toIndex, 0, {
|
|
217
|
+
field,
|
|
218
|
+
hidden
|
|
219
|
+
});
|
|
220
|
+
newModel.rows = newSectionArray;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (!isSameSection && originSection) {
|
|
224
|
+
newModel[originSection] = prev[originSection].filter(f => f.field !== field);
|
|
225
|
+
}
|
|
226
|
+
return newModel;
|
|
227
|
+
});
|
|
228
|
+
}, [apiRef, props.aggregationFunctions]);
|
|
229
|
+
const setPivotActive = React.useCallback(callback => {
|
|
230
|
+
if (!isPivotingAvailable) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
apiRef.current.selectRows([], false, true);
|
|
234
|
+
apiRef.current.setState(state => {
|
|
235
|
+
const newPivotMode = typeof callback === 'function' ? callback(state.pivoting?.active) : callback;
|
|
236
|
+
if (state.pivoting?.active === newPivotMode) {
|
|
237
|
+
return state;
|
|
238
|
+
}
|
|
239
|
+
if (newPivotMode) {
|
|
240
|
+
nonPivotDataRef.current = getInitialData();
|
|
241
|
+
}
|
|
242
|
+
const newPivotingState = (0, _extends2.default)({}, state.pivoting, computePivotingState((0, _extends2.default)({}, state.pivoting, {
|
|
243
|
+
active: newPivotMode
|
|
244
|
+
})), {
|
|
245
|
+
active: newPivotMode
|
|
246
|
+
});
|
|
247
|
+
const newState = (0, _extends2.default)({}, state, {
|
|
248
|
+
pivoting: newPivotingState
|
|
249
|
+
});
|
|
250
|
+
return newState;
|
|
251
|
+
});
|
|
252
|
+
}, [apiRef, computePivotingState, getInitialData, isPivotingAvailable]);
|
|
253
|
+
const setPivotPanelOpen = React.useCallback(callback => {
|
|
254
|
+
if (!isPivotingAvailable) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
apiRef.current.setState(state => (0, _extends2.default)({}, state, {
|
|
258
|
+
pivoting: (0, _extends2.default)({}, state.pivoting, {
|
|
259
|
+
panelOpen: typeof callback === 'function' ? callback(state.pivoting?.panelOpen) : callback
|
|
260
|
+
})
|
|
261
|
+
}));
|
|
262
|
+
}, [apiRef, isPivotingAvailable]);
|
|
263
|
+
const addColumnMenuButton = React.useCallback(menuItems => {
|
|
264
|
+
if (isPivotingAvailable) {
|
|
265
|
+
return [...menuItems, 'columnMenuPivotItem'];
|
|
266
|
+
}
|
|
267
|
+
return menuItems;
|
|
268
|
+
}, [isPivotingAvailable]);
|
|
269
|
+
(0, _internals.useGridRegisterPipeProcessor)(apiRef, 'columnMenu', addColumnMenuButton);
|
|
270
|
+
const updateNonPivotColumns = React.useCallback((columns, keepPreviousColumns = true) => {
|
|
271
|
+
if (!nonPivotDataRef.current || !isPivotingAvailable) {
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
if (keepPreviousColumns) {
|
|
275
|
+
(0, _utils.getInitialColumns)(columns, props.getPivotDerivedColumns, apiRef.current.getLocaleText).forEach(col => {
|
|
276
|
+
nonPivotDataRef.current.columns.set(col.field, col);
|
|
277
|
+
});
|
|
278
|
+
} else {
|
|
279
|
+
nonPivotDataRef.current.columns = (0, _utils.getInitialColumns)(columns, props.getPivotDerivedColumns, apiRef.current.getLocaleText);
|
|
280
|
+
}
|
|
281
|
+
apiRef.current.setState(state => {
|
|
282
|
+
return (0, _extends2.default)({}, state, {
|
|
283
|
+
pivoting: (0, _extends2.default)({}, state.pivoting, computePivotingState(state.pivoting), {
|
|
284
|
+
initialColumns: nonPivotDataRef.current?.columns
|
|
285
|
+
})
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
}, [isPivotingAvailable, apiRef, props.getPivotDerivedColumns, computePivotingState]);
|
|
289
|
+
const updateNonPivotRows = React.useCallback((rows, keepPreviousRows = true) => {
|
|
290
|
+
if (!nonPivotDataRef.current || !rows || rows.length === 0) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
if (keepPreviousRows) {
|
|
294
|
+
const rowsMap = new Map();
|
|
295
|
+
nonPivotDataRef.current.rows.forEach(row => {
|
|
296
|
+
rowsMap.set((0, _xDataGridPro.gridRowIdSelector)(apiRef, row), row);
|
|
297
|
+
});
|
|
298
|
+
rows.forEach(row => {
|
|
299
|
+
const rowId = (0, _xDataGridPro.gridRowIdSelector)(apiRef, row);
|
|
300
|
+
// eslint-disable-next-line no-underscore-dangle
|
|
301
|
+
if (row._action === 'delete') {
|
|
302
|
+
rowsMap.delete(rowId);
|
|
303
|
+
} else {
|
|
304
|
+
rowsMap.set(rowId, row);
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
nonPivotDataRef.current.rows = Array.from(rowsMap.values());
|
|
308
|
+
} else {
|
|
309
|
+
nonPivotDataRef.current.rows = rows;
|
|
310
|
+
}
|
|
311
|
+
apiRef.current.setState(state => {
|
|
312
|
+
return (0, _extends2.default)({}, state, {
|
|
313
|
+
pivoting: (0, _extends2.default)({}, state.pivoting, computePivotingState(state.pivoting))
|
|
314
|
+
});
|
|
315
|
+
});
|
|
316
|
+
}, [apiRef, computePivotingState]);
|
|
317
|
+
(0, _internals.useGridApiMethod)(apiRef, {
|
|
318
|
+
setPivotModel,
|
|
319
|
+
setPivotActive,
|
|
320
|
+
setPivotPanelOpen
|
|
321
|
+
}, 'public');
|
|
322
|
+
(0, _internals.useGridApiMethod)(apiRef, {
|
|
323
|
+
updatePivotModel,
|
|
324
|
+
updateNonPivotColumns,
|
|
325
|
+
updateNonPivotRows
|
|
326
|
+
}, 'private');
|
|
327
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
328
|
+
apiRef.current.updateNonPivotColumns(originalColumnsProp, false);
|
|
329
|
+
}, [originalColumnsProp, apiRef]);
|
|
330
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
331
|
+
apiRef.current.updateNonPivotRows(originalRowsProp, false);
|
|
332
|
+
}, [originalRowsProp, apiRef]);
|
|
333
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
334
|
+
if (props.pivotModel !== undefined) {
|
|
335
|
+
apiRef.current.setPivotModel(props.pivotModel);
|
|
336
|
+
}
|
|
337
|
+
}, [apiRef, props.pivotModel]);
|
|
338
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
339
|
+
if (props.pivotActive !== undefined) {
|
|
340
|
+
apiRef.current.setPivotActive(props.pivotActive);
|
|
341
|
+
}
|
|
342
|
+
}, [apiRef, props.pivotActive]);
|
|
343
|
+
(0, _useEnhancedEffect.default)(() => {
|
|
344
|
+
if (props.pivotPanelOpen !== undefined) {
|
|
345
|
+
apiRef.current.setPivotPanelOpen(props.pivotPanelOpen);
|
|
346
|
+
}
|
|
347
|
+
}, [apiRef, props.pivotPanelOpen]);
|
|
348
|
+
};
|
|
349
|
+
exports.useGridPivoting = useGridPivoting;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { GridColDef, GridRowModel, GridLocaleTextApi } from '@mui/x-data-grid-pro';
|
|
2
|
+
import type { RefObject } from '@mui/x-internals/types';
|
|
3
|
+
import type { DataGridPremiumProcessedProps } from '../../../models/dataGridPremiumProps';
|
|
4
|
+
import type { GridApiPremium } from '../../../models/gridApiPremium';
|
|
5
|
+
import type { GridPivotingPropsOverrides, GridPivotModel } from './gridPivotingInterfaces';
|
|
6
|
+
export declare const isPivotingAvailable: (props: Pick<DataGridPremiumProcessedProps, "disablePivoting">) => boolean;
|
|
7
|
+
export declare const defaultGetPivotDerivedColumns: DataGridPremiumProcessedProps['getPivotDerivedColumns'];
|
|
8
|
+
export declare const getInitialColumns: (originalColumns: DataGridPremiumProcessedProps["columns"], getPivotDerivedColumns: DataGridPremiumProcessedProps["getPivotDerivedColumns"], getLocaleText: GridLocaleTextApi["getLocaleText"]) => Map<string, GridColDef>;
|
|
9
|
+
export declare const getPivotedData: ({
|
|
10
|
+
rows,
|
|
11
|
+
columns,
|
|
12
|
+
pivotModel,
|
|
13
|
+
apiRef,
|
|
14
|
+
pivotingColDef
|
|
15
|
+
}: {
|
|
16
|
+
rows: GridRowModel[];
|
|
17
|
+
columns: Map<string, GridColDef>;
|
|
18
|
+
pivotModel: GridPivotModel;
|
|
19
|
+
apiRef: RefObject<GridApiPremium>;
|
|
20
|
+
pivotingColDef: DataGridPremiumProcessedProps["pivotingColDef"];
|
|
21
|
+
}) => GridPivotingPropsOverrides;
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.isPivotingAvailable = exports.getPivotedData = exports.getInitialColumns = exports.defaultGetPivotDerivedColumns = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _xDataGridPro = require("@mui/x-data-grid-pro");
|
|
10
|
+
var _internals = require("@mui/x-data-grid-pro/internals");
|
|
11
|
+
var _rowGrouping = require("../rowGrouping");
|
|
12
|
+
const columnGroupIdSeparator = '>->';
|
|
13
|
+
const isPivotingAvailable = props => {
|
|
14
|
+
return !props.disablePivoting;
|
|
15
|
+
};
|
|
16
|
+
exports.isPivotingAvailable = isPivotingAvailable;
|
|
17
|
+
const defaultGetPivotDerivedColumns = (column, getLocaleText) => {
|
|
18
|
+
if (column.type === 'date') {
|
|
19
|
+
const field = column.field;
|
|
20
|
+
return [{
|
|
21
|
+
// String column type to avoid formatting the value as 2,025 instead of 2025
|
|
22
|
+
field: `${field}-year`,
|
|
23
|
+
headerName: `${column.headerName} ${getLocaleText('pivotYearColumnHeaderName')}`,
|
|
24
|
+
valueGetter: (value, row) => new Date(row[field]).getFullYear()
|
|
25
|
+
}, {
|
|
26
|
+
field: `${field}-quarter`,
|
|
27
|
+
headerName: `${column.headerName} ${getLocaleText('pivotQuarterColumnHeaderName')}`,
|
|
28
|
+
valueGetter: (value, row) => `Q${Math.floor(new Date(row[field]).getMonth() / 3) + 1}`
|
|
29
|
+
}];
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
};
|
|
33
|
+
exports.defaultGetPivotDerivedColumns = defaultGetPivotDerivedColumns;
|
|
34
|
+
const getInitialColumns = (originalColumns, getPivotDerivedColumns, getLocaleText) => {
|
|
35
|
+
const initialColumns = new Map();
|
|
36
|
+
for (let i = 0; i < originalColumns.length; i += 1) {
|
|
37
|
+
const originalColumn = originalColumns[i];
|
|
38
|
+
const column = (0, _extends2.default)({}, (0, _internals.getDefaultColTypeDef)(originalColumn.type), originalColumn);
|
|
39
|
+
const field = column.field;
|
|
40
|
+
if (!(0, _rowGrouping.isGroupingColumn)(field)) {
|
|
41
|
+
initialColumns.set(field, column);
|
|
42
|
+
const derivedColumns = getPivotDerivedColumns?.(column, getLocaleText);
|
|
43
|
+
if (derivedColumns) {
|
|
44
|
+
derivedColumns.forEach(col => initialColumns.set(col.field, col));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return initialColumns;
|
|
49
|
+
};
|
|
50
|
+
exports.getInitialColumns = getInitialColumns;
|
|
51
|
+
function sortColumnGroups(columnGroups, pivotModelColumns, depth = 0) {
|
|
52
|
+
if (depth > pivotModelColumns.length - 1) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const sort = pivotModelColumns[depth].sort;
|
|
56
|
+
columnGroups.sort((a, b) => {
|
|
57
|
+
if ((0, _xDataGridPro.isLeaf)(a) || (0, _xDataGridPro.isLeaf)(b)) {
|
|
58
|
+
return 0;
|
|
59
|
+
}
|
|
60
|
+
if (a.children) {
|
|
61
|
+
sortColumnGroups(a.children, pivotModelColumns, depth + 1);
|
|
62
|
+
}
|
|
63
|
+
if (b.children) {
|
|
64
|
+
sortColumnGroups(b.children, pivotModelColumns, depth + 1);
|
|
65
|
+
}
|
|
66
|
+
if (sort === undefined) {
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
return (sort === 'asc' ? 1 : -1) * (0, _xDataGridPro.gridStringOrNumberComparator)(a.headerName, b.headerName, {}, {});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
const getPivotedData = ({
|
|
73
|
+
rows,
|
|
74
|
+
columns,
|
|
75
|
+
pivotModel,
|
|
76
|
+
apiRef,
|
|
77
|
+
pivotingColDef
|
|
78
|
+
}) => {
|
|
79
|
+
const visibleColumns = pivotModel.columns.filter(column => !column.hidden);
|
|
80
|
+
const visibleRows = pivotModel.rows.filter(row => !row.hidden);
|
|
81
|
+
const visibleValues = pivotModel.values.filter(value => !value.hidden);
|
|
82
|
+
let pivotColumns = [];
|
|
83
|
+
const columnVisibilityModel = {};
|
|
84
|
+
const pivotColumnsIncludedInPivotValues = [];
|
|
85
|
+
const initialColumns = new Map();
|
|
86
|
+
for (const column of columns.values()) {
|
|
87
|
+
if (!(0, _rowGrouping.isGroupingColumn)(column.field)) {
|
|
88
|
+
initialColumns.set(column.field, column);
|
|
89
|
+
const pivotValueIndex = visibleValues.findIndex(({
|
|
90
|
+
field
|
|
91
|
+
}) => field === column.field);
|
|
92
|
+
const isVisiblePivotValueField = pivotValueIndex !== -1;
|
|
93
|
+
const columnToAdd = (0, _extends2.default)({}, column, {
|
|
94
|
+
aggregable: false,
|
|
95
|
+
groupable: false,
|
|
96
|
+
hideable: false,
|
|
97
|
+
editable: false,
|
|
98
|
+
disableReorder: true
|
|
99
|
+
});
|
|
100
|
+
if (isVisiblePivotValueField) {
|
|
101
|
+
// Store columns that are used as pivot values in a temporary array to keep them in the same order as in pivotModel.values, not in the order of the initial columns.
|
|
102
|
+
// `pivotColumnsIncludedInPivotValues` is concatenated to pivotColumns later.
|
|
103
|
+
pivotColumnsIncludedInPivotValues[pivotValueIndex] = columnToAdd;
|
|
104
|
+
} else {
|
|
105
|
+
pivotColumns.push(columnToAdd);
|
|
106
|
+
}
|
|
107
|
+
columnVisibilityModel[column.field] = false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
pivotColumns = pivotColumns.concat(pivotColumnsIncludedInPivotValues);
|
|
111
|
+
const getAttributesFromInitialColumn = field => {
|
|
112
|
+
const initialColumn = initialColumns.get(field);
|
|
113
|
+
if (!initialColumn) {
|
|
114
|
+
return undefined;
|
|
115
|
+
}
|
|
116
|
+
const attributes = {
|
|
117
|
+
width: initialColumn.width,
|
|
118
|
+
minWidth: initialColumn.minWidth,
|
|
119
|
+
maxWidth: initialColumn.maxWidth,
|
|
120
|
+
valueFormatter: initialColumn.valueFormatter,
|
|
121
|
+
headerName: initialColumn.headerName,
|
|
122
|
+
renderCell: initialColumn.renderCell,
|
|
123
|
+
display: initialColumn.display
|
|
124
|
+
};
|
|
125
|
+
return attributes;
|
|
126
|
+
};
|
|
127
|
+
const aggregationModel = {};
|
|
128
|
+
const columnGroupingModel = [];
|
|
129
|
+
const columnGroupingModelLookup = new Map();
|
|
130
|
+
let newRows = [];
|
|
131
|
+
if (visibleColumns.length === 0) {
|
|
132
|
+
newRows = rows;
|
|
133
|
+
visibleValues.forEach(pivotValue => {
|
|
134
|
+
aggregationModel[pivotValue.field] = pivotValue.aggFunc;
|
|
135
|
+
delete columnVisibilityModel[pivotValue.field];
|
|
136
|
+
});
|
|
137
|
+
} else {
|
|
138
|
+
for (let i = 0; i < rows.length; i += 1) {
|
|
139
|
+
const row = rows[i];
|
|
140
|
+
const newRow = (0, _extends2.default)({}, row);
|
|
141
|
+
const columnGroupPath = [];
|
|
142
|
+
visibleColumns.forEach(({
|
|
143
|
+
field: colGroupField
|
|
144
|
+
}, depth) => {
|
|
145
|
+
const column = initialColumns.get(colGroupField);
|
|
146
|
+
if (!column) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
let colValue = apiRef.current.getRowValue(row, column) ?? '(No value)';
|
|
150
|
+
if (column.type === 'singleSelect') {
|
|
151
|
+
const singleSelectColumn = column;
|
|
152
|
+
if (singleSelectColumn.getOptionLabel) {
|
|
153
|
+
colValue = singleSelectColumn.getOptionLabel(colValue);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
columnGroupPath.push(String(colValue));
|
|
157
|
+
const groupId = columnGroupPath.join(columnGroupIdSeparator);
|
|
158
|
+
if (!columnGroupingModelLookup.has(groupId)) {
|
|
159
|
+
const columnGroup = {
|
|
160
|
+
groupId,
|
|
161
|
+
headerName: String(colValue),
|
|
162
|
+
children: []
|
|
163
|
+
};
|
|
164
|
+
columnGroupingModelLookup.set(groupId, columnGroup);
|
|
165
|
+
if (depth === 0) {
|
|
166
|
+
columnGroupingModel.push(columnGroup);
|
|
167
|
+
} else {
|
|
168
|
+
const parentGroupId = columnGroupPath.slice(0, -1).join(columnGroupIdSeparator);
|
|
169
|
+
const parentGroup = columnGroupingModelLookup.get(parentGroupId);
|
|
170
|
+
if (parentGroup) {
|
|
171
|
+
parentGroup.children.push(columnGroup);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
const isLastColumnGroupLevel = depth === visibleColumns.length - 1;
|
|
176
|
+
if (isLastColumnGroupLevel) {
|
|
177
|
+
visibleValues.forEach(pivotValue => {
|
|
178
|
+
const valueField = pivotValue.field;
|
|
179
|
+
const originalColumn = initialColumns.get(valueField);
|
|
180
|
+
if (!originalColumn) {
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
const valueKey = `${columnGroupPath.join(columnGroupIdSeparator)}${columnGroupIdSeparator}${valueField}`;
|
|
184
|
+
newRow[valueKey] = apiRef.current.getRowValue(row, originalColumn);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
newRows.push(newRow);
|
|
189
|
+
}
|
|
190
|
+
sortColumnGroups(columnGroupingModel, visibleColumns);
|
|
191
|
+
}
|
|
192
|
+
function createColumns(columnGroups, depth = 0) {
|
|
193
|
+
for (let i = 0; i < columnGroups.length; i += 1) {
|
|
194
|
+
const columnGroup = columnGroups[i];
|
|
195
|
+
if ((0, _xDataGridPro.isLeaf)(columnGroup)) {
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
const isLastColumnGroupLevel = depth === visibleColumns.length - 1;
|
|
199
|
+
if (isLastColumnGroupLevel) {
|
|
200
|
+
if (visibleValues.length === 0) {
|
|
201
|
+
// If there are no visible values, there are no actual columns added to the data grid, which leads to column groups not being visible.
|
|
202
|
+
// Adding an empty column to each column group ensures that the column groups are visible.
|
|
203
|
+
const emptyColumnField = `${columnGroup.groupId}${columnGroupIdSeparator}empty`;
|
|
204
|
+
const emptyColumn = {
|
|
205
|
+
field: emptyColumnField,
|
|
206
|
+
headerName: '',
|
|
207
|
+
sortable: false,
|
|
208
|
+
filterable: false,
|
|
209
|
+
groupable: false,
|
|
210
|
+
aggregable: false,
|
|
211
|
+
hideable: false,
|
|
212
|
+
disableColumnMenu: true
|
|
213
|
+
};
|
|
214
|
+
pivotColumns.push(emptyColumn);
|
|
215
|
+
if (columnGroup) {
|
|
216
|
+
columnGroup.children.push({
|
|
217
|
+
field: emptyColumnField
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
} else {
|
|
221
|
+
visibleValues.forEach(pivotValue => {
|
|
222
|
+
const valueField = pivotValue.field;
|
|
223
|
+
const mapValueKey = `${columnGroup.groupId}${columnGroupIdSeparator}${valueField}`;
|
|
224
|
+
const overrides = typeof pivotingColDef === 'function' ? pivotingColDef(valueField, columnGroup.groupId.split(columnGroupIdSeparator)) : pivotingColDef;
|
|
225
|
+
const column = (0, _extends2.default)({
|
|
226
|
+
headerName: String(valueField)
|
|
227
|
+
}, getAttributesFromInitialColumn(pivotValue.field), overrides, {
|
|
228
|
+
field: mapValueKey,
|
|
229
|
+
aggregable: false,
|
|
230
|
+
groupable: false,
|
|
231
|
+
filterable: false,
|
|
232
|
+
hideable: false,
|
|
233
|
+
editable: false,
|
|
234
|
+
disableReorder: true,
|
|
235
|
+
availableAggregationFunctions: [pivotValue.aggFunc]
|
|
236
|
+
});
|
|
237
|
+
pivotColumns.push(column);
|
|
238
|
+
aggregationModel[mapValueKey] = pivotValue.aggFunc;
|
|
239
|
+
if (columnGroup) {
|
|
240
|
+
columnGroup.children.push({
|
|
241
|
+
field: mapValueKey
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
} else {
|
|
247
|
+
createColumns(columnGroup.children, depth + 1);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
createColumns(columnGroupingModel);
|
|
252
|
+
return {
|
|
253
|
+
rows: visibleRows.length > 0 ? newRows : [],
|
|
254
|
+
columns: pivotColumns,
|
|
255
|
+
rowGroupingModel: visibleRows.map(row => row.field),
|
|
256
|
+
aggregationModel,
|
|
257
|
+
getAggregationPosition: groupNode => groupNode.depth === -1 ? 'footer' : 'inline',
|
|
258
|
+
columnVisibilityModel,
|
|
259
|
+
columnGroupingModel,
|
|
260
|
+
groupingColDef: {
|
|
261
|
+
filterable: false,
|
|
262
|
+
aggregable: false,
|
|
263
|
+
hideable: false
|
|
264
|
+
},
|
|
265
|
+
headerFilters: false,
|
|
266
|
+
disableAggregation: false,
|
|
267
|
+
disableRowGrouping: false
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
exports.getPivotedData = getPivotedData;
|
|
@@ -29,10 +29,7 @@ const useGridDataSourceRowGroupingPreProcessors = (apiRef, props) => {
|
|
|
29
29
|
apiRef.current.caches.rowGrouping.rulesOnLastRowTreeCreation = groupingRules;
|
|
30
30
|
const getRowTreeBuilderNode = rowId => {
|
|
31
31
|
const parentPath = params.updates.groupKeys ?? [];
|
|
32
|
-
const
|
|
33
|
-
const groupingRule = groupingRules[parentPath.length];
|
|
34
|
-
const groupingValueGetter = groupingRule?.groupingValueGetter;
|
|
35
|
-
const leafKey = groupingValueGetter?.(row[groupingRule.field], row, columnsLookup[groupingRule.field], apiRef) ?? getGroupKey(params.dataRowIdToModelLookup[rowId]);
|
|
32
|
+
const leafKey = getGroupKey(params.dataRowIdToModelLookup[rowId]);
|
|
36
33
|
return {
|
|
37
34
|
id: rowId,
|
|
38
35
|
path: [...parentPath, leafKey ?? rowId.toString()].map((key, i) => ({
|
|
@@ -175,10 +175,9 @@ const useGridRowGrouping = (apiRef, props) => {
|
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
}, [apiRef, props.disableRowGrouping]);
|
|
178
|
-
(0, _xDataGridPro.
|
|
179
|
-
(0, _xDataGridPro.
|
|
180
|
-
(0, _xDataGridPro.
|
|
181
|
-
(0, _xDataGridPro.useGridApiEventHandler)(apiRef, 'rowGroupingModelChange', () => apiRef.current.dataSource.fetchRows());
|
|
178
|
+
(0, _xDataGridPro.useGridEvent)(apiRef, 'cellKeyDown', handleCellKeyDown);
|
|
179
|
+
(0, _xDataGridPro.useGridEvent)(apiRef, 'columnsChange', checkGroupingColumnsModelDiff);
|
|
180
|
+
(0, _xDataGridPro.useGridEvent)(apiRef, 'rowGroupingModelChange', checkGroupingColumnsModelDiff);
|
|
182
181
|
|
|
183
182
|
/*
|
|
184
183
|
* EFFECTS
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export type ResizeDirection = 'horizontal' | 'vertical';
|
|
3
|
+
export declare const useResize: <TElement extends HTMLDivElement>(options: {
|
|
4
|
+
getInitialSize: (handleElement: TElement) => number;
|
|
5
|
+
onSizeChange: (newSize: number, handleElement: TElement) => void;
|
|
6
|
+
direction?: ResizeDirection;
|
|
7
|
+
}) => {
|
|
8
|
+
ref: React.RefObject<TElement | null>;
|
|
9
|
+
};
|