@mui/x-data-grid-premium 8.0.0-alpha.9 → 8.0.0-beta.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 +1446 -0
- package/DataGridPremium/DataGrid.d.ts +1 -1
- package/DataGridPremium/DataGridPremium.d.ts +6 -6
- package/DataGridPremium/DataGridPremium.js +61 -35
- package/DataGridPremium/index.d.ts +3 -3
- package/DataGridPremium/useDataGridPremiumComponent.d.ts +3 -3
- package/DataGridPremium/useDataGridPremiumComponent.js +5 -4
- package/DataGridPremium/useDataGridPremiumProps.d.ts +2 -2
- package/DataGridPremium/useDataGridPremiumProps.js +2 -2
- package/README.md +1 -1
- package/components/GridAggregationHeader.d.ts +3 -3
- package/components/GridAggregationHeader.js +13 -12
- package/components/GridAggregationRowOverlay.d.ts +3 -0
- package/components/GridAggregationRowOverlay.js +44 -0
- package/components/GridBottomContainer.d.ts +3 -0
- package/components/GridBottomContainer.js +51 -0
- package/components/GridColumnMenuAggregationItem.d.ts +2 -2
- package/components/GridColumnMenuAggregationItem.js +36 -46
- package/components/GridColumnMenuRowGroupItem.d.ts +1 -1
- package/components/GridColumnMenuRowUngroupItem.d.ts +1 -1
- package/components/GridDataSourceGroupingCriteriaCell.d.ts +2 -2
- package/components/GridDataSourceGroupingCriteriaCell.js +8 -12
- package/components/GridExcelExportMenuItem.d.ts +3 -3
- package/components/GridFooterCell.d.ts +2 -2
- package/components/GridFooterCell.js +5 -6
- package/components/GridGroupingColumnFooterCell.d.ts +1 -1
- package/components/GridGroupingColumnFooterCell.js +2 -1
- package/components/GridGroupingColumnLeafCell.d.ts +1 -1
- package/components/GridGroupingColumnLeafCell.js +3 -9
- package/components/GridGroupingCriteriaCell.d.ts +2 -2
- package/components/GridGroupingCriteriaCell.js +3 -8
- package/components/GridPremiumColumnMenu.d.ts +26 -26
- package/components/GridPremiumToolbar.d.ts +3 -0
- package/components/GridPremiumToolbar.js +31 -0
- package/components/export/ExportExcel.d.ts +29 -0
- package/components/export/ExportExcel.js +216 -0
- package/components/export/index.d.ts +1 -0
- package/components/export/index.js +16 -0
- package/components/index.d.ts +6 -5
- package/components/index.js +13 -1
- package/components/promptControl/GridToolbarPromptControl.d.ts +22 -22
- package/components/promptControl/GridToolbarPromptControl.js +33 -20
- package/components/promptControl/RecordButton.d.ts +9 -9
- package/components/promptControl/index.d.ts +1 -1
- package/components/reexports.d.ts +1 -1
- package/constants/dataGridPremiumDefaultSlotsComponents.d.ts +1 -1
- package/constants/dataGridPremiumDefaultSlotsComponents.js +5 -1
- package/esm/DataGridPremium/DataGrid.d.ts +8 -0
- package/esm/DataGridPremium/DataGridPremium.d.ts +16 -0
- package/esm/DataGridPremium/DataGridPremium.js +61 -35
- package/esm/DataGridPremium/index.d.ts +3 -0
- package/esm/DataGridPremium/useDataGridPremiumComponent.d.ts +4 -0
- package/esm/DataGridPremium/useDataGridPremiumComponent.js +6 -5
- package/esm/DataGridPremium/useDataGridPremiumProps.d.ts +6 -0
- package/esm/DataGridPremium/useDataGridPremiumProps.js +2 -2
- package/esm/components/GridAggregationHeader.d.ts +7 -0
- package/esm/components/GridAggregationHeader.js +13 -12
- package/esm/components/GridAggregationRowOverlay.d.ts +3 -0
- package/esm/components/GridAggregationRowOverlay.js +37 -0
- package/esm/components/GridBottomContainer.d.ts +3 -0
- package/esm/components/GridBottomContainer.js +43 -0
- package/esm/components/GridColumnMenuAggregationItem.d.ts +7 -0
- package/esm/components/GridColumnMenuAggregationItem.js +36 -46
- package/esm/components/GridColumnMenuRowGroupItem.d.ts +3 -0
- package/esm/components/GridColumnMenuRowUngroupItem.d.ts +3 -0
- package/esm/components/GridDataSourceGroupingCriteriaCell.d.ts +7 -0
- package/esm/components/GridDataSourceGroupingCriteriaCell.js +9 -13
- package/esm/components/GridExcelExportMenuItem.d.ts +9 -0
- package/esm/components/GridFooterCell.d.ts +9 -0
- package/esm/components/GridFooterCell.js +5 -6
- package/esm/components/GridGroupingColumnFooterCell.d.ts +4 -0
- package/esm/components/GridGroupingColumnFooterCell.js +2 -1
- package/esm/components/GridGroupingColumnLeafCell.d.ts +4 -0
- package/esm/components/GridGroupingColumnLeafCell.js +3 -8
- package/esm/components/GridGroupingCriteriaCell.d.ts +7 -0
- package/esm/components/GridGroupingCriteriaCell.js +3 -8
- package/esm/components/GridPremiumColumnMenu.d.ts +33 -0
- package/esm/components/GridPremiumToolbar.d.ts +3 -0
- package/esm/components/GridPremiumToolbar.js +23 -0
- package/esm/components/export/ExportExcel.d.ts +29 -0
- package/esm/components/export/ExportExcel.js +209 -0
- package/esm/components/export/index.d.ts +1 -0
- package/esm/components/export/index.js +1 -0
- package/esm/components/index.d.ts +6 -0
- package/esm/components/index.js +2 -1
- package/esm/components/promptControl/GridToolbarPromptControl.d.ts +26 -0
- package/esm/components/promptControl/GridToolbarPromptControl.js +33 -20
- package/esm/components/promptControl/RecordButton.d.ts +16 -0
- package/esm/components/promptControl/index.d.ts +1 -0
- package/esm/components/reexports.d.ts +1 -0
- package/esm/constants/dataGridPremiumDefaultSlotsComponents.d.ts +2 -0
- package/esm/constants/dataGridPremiumDefaultSlotsComponents.js +5 -1
- package/esm/hooks/features/aggregation/createAggregationLookup.d.ts +17 -0
- package/esm/hooks/features/aggregation/createAggregationLookup.js +3 -3
- package/esm/hooks/features/aggregation/gridAggregationFunctions.d.ts +8 -0
- package/esm/hooks/features/aggregation/gridAggregationInterfaces.d.ts +129 -0
- package/esm/hooks/features/aggregation/gridAggregationSelectors.d.ts +13 -0
- package/esm/hooks/features/aggregation/gridAggregationSelectors.js +2 -2
- package/esm/hooks/features/aggregation/gridAggregationUtils.d.ts +62 -0
- package/esm/hooks/features/aggregation/gridAggregationUtils.js +1 -1
- package/esm/hooks/features/aggregation/index.d.ts +4 -0
- package/esm/hooks/features/aggregation/useGridAggregation.d.ts +6 -0
- package/esm/hooks/features/aggregation/useGridAggregation.js +6 -8
- package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +4 -0
- package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.js +7 -6
- package/esm/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +81 -0
- package/esm/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
- package/esm/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +40 -0
- package/esm/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -0
- package/esm/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -1
- package/esm/hooks/features/cellSelection/index.d.ts +1 -0
- package/esm/hooks/features/cellSelection/useGridCellSelection.d.ts +6 -0
- package/esm/hooks/features/cellSelection/useGridCellSelection.js +15 -13
- package/esm/hooks/features/clipboard/useGridClipboardImport.d.ts +4 -0
- package/esm/hooks/features/clipboard/useGridClipboardImport.js +5 -5
- package/esm/hooks/features/dataSource/models.d.ts +54 -0
- package/esm/hooks/features/dataSource/useGridDataSourcePremium.d.ts +4 -0
- package/esm/hooks/features/dataSource/useGridDataSourcePremium.js +13 -7
- package/esm/hooks/features/export/gridExcelExportInterface.d.ts +71 -0
- package/esm/hooks/features/export/index.d.ts +2 -0
- package/esm/hooks/features/export/index.js +1 -1
- package/esm/hooks/features/export/serializer/excelSerializer.d.ts +40 -0
- package/esm/hooks/features/export/serializer/excelSerializer.js +69 -180
- package/esm/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
- package/esm/hooks/features/export/serializer/setupExcelExportWebWorker.js +53 -0
- package/esm/hooks/features/export/serializer/utils.d.ts +36 -0
- package/esm/hooks/features/export/serializer/utils.js +93 -0
- package/esm/hooks/features/export/useGridExcelExport.d.ts +11 -0
- package/esm/hooks/features/export/useGridExcelExport.js +11 -5
- package/esm/hooks/features/index.d.ts +5 -0
- package/esm/hooks/features/promptControl/api.d.ts +2 -0
- package/esm/hooks/features/promptControl/index.d.ts +2 -0
- package/esm/hooks/features/promptControl/types.d.ts +25 -0
- package/esm/hooks/features/rowGrouping/createGroupingColDef.d.ts +57 -0
- package/esm/hooks/features/rowGrouping/createGroupingColDef.js +5 -5
- package/esm/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +44 -0
- package/esm/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +3 -0
- package/esm/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
- package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +54 -0
- package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.js +5 -3
- package/esm/hooks/features/rowGrouping/index.d.ts +3 -0
- package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +4 -0
- package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
- package/esm/hooks/features/rowGrouping/useGridRowGrouping.d.ts +11 -0
- package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
- package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
- package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
- package/esm/hooks/features/rows/index.d.ts +1 -0
- package/esm/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -0
- package/esm/hooks/index.d.ts +2 -0
- package/esm/hooks/utils/index.d.ts +1 -0
- package/esm/hooks/utils/useGridApiContext.d.ts +4 -0
- package/esm/hooks/utils/useGridApiRef.d.ts +4 -0
- package/esm/hooks/utils/useGridAriaAttributes.d.ts +2 -0
- package/esm/hooks/utils/useGridPrivateApiContext.d.ts +2 -0
- package/esm/hooks/utils/useGridRootProps.d.ts +2 -0
- package/esm/hooks/utils/useKeepGroupedColumnsHidden.d.ts +12 -0
- package/esm/hooks/utils/useKeepGroupedColumnsHidden.js +2 -2
- package/esm/index.d.ts +23 -0
- package/esm/index.js +6 -5
- package/esm/locales.d.ts +1 -0
- package/esm/material/icons.d.ts +15 -0
- package/esm/material/index.d.ts +8 -0
- package/esm/models/dataGridPremiumProps.d.ts +162 -0
- package/esm/models/gridApiPremium.d.ts +14 -0
- package/esm/models/gridGroupingValueGetter.d.ts +4 -0
- package/esm/models/gridPastedValueParser.d.ts +4 -0
- package/esm/models/gridPremiumIconSlotsComponent.d.ts +28 -0
- package/esm/models/gridPremiumSlotsComponent.d.ts +7 -0
- package/esm/models/gridStatePremium.d.ts +18 -0
- package/esm/models/index.d.ts +4 -0
- package/esm/package.json +1 -0
- package/esm/setupExcelExportWebWorker.d.ts +1 -0
- package/esm/setupExcelExportWebWorker.js +1 -0
- package/esm/themeAugmentation/index.d.ts +2 -0
- package/esm/themeAugmentation/overrides.d.ts +7 -0
- package/esm/themeAugmentation/props.d.ts +15 -0
- package/esm/typeOverloads/index.d.ts +2 -0
- package/esm/typeOverloads/modules.d.ts +97 -0
- package/esm/typeOverloads/reexports.d.ts +17 -0
- package/esm/utils/releaseInfo.d.ts +1 -0
- package/esm/utils/releaseInfo.js +1 -1
- package/hooks/features/aggregation/createAggregationLookup.d.ts +16 -10
- package/hooks/features/aggregation/createAggregationLookup.js +2 -2
- package/hooks/features/aggregation/gridAggregationFunctions.d.ts +7 -7
- package/hooks/features/aggregation/gridAggregationInterfaces.d.ts +81 -82
- package/hooks/features/aggregation/gridAggregationSelectors.d.ts +3 -3
- package/hooks/features/aggregation/gridAggregationSelectors.js +1 -2
- package/hooks/features/aggregation/gridAggregationUtils.d.ts +42 -25
- package/hooks/features/aggregation/gridAggregationUtils.js +1 -1
- package/hooks/features/aggregation/index.d.ts +4 -4
- package/hooks/features/aggregation/useGridAggregation.d.ts +3 -3
- package/hooks/features/aggregation/useGridAggregation.js +6 -8
- package/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +3 -3
- package/hooks/features/aggregation/useGridAggregationPreProcessors.js +7 -6
- package/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +67 -62
- package/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
- package/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +34 -34
- package/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -2
- package/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -2
- package/hooks/features/cellSelection/index.d.ts +1 -1
- package/hooks/features/cellSelection/useGridCellSelection.d.ts +3 -3
- package/hooks/features/cellSelection/useGridCellSelection.js +13 -11
- package/hooks/features/clipboard/useGridClipboardImport.d.ts +2 -2
- package/hooks/features/clipboard/useGridClipboardImport.js +4 -4
- package/hooks/features/dataSource/models.d.ts +41 -34
- package/hooks/features/dataSource/useGridDataSourcePremium.d.ts +3 -3
- package/hooks/features/dataSource/useGridDataSourcePremium.js +13 -7
- package/hooks/features/export/gridExcelExportInterface.d.ts +52 -52
- package/hooks/features/export/index.d.ts +2 -2
- package/hooks/features/export/index.js +2 -2
- package/hooks/features/export/serializer/excelSerializer.d.ts +23 -51
- package/hooks/features/export/serializer/excelSerializer.js +74 -187
- package/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
- package/hooks/features/export/serializer/setupExcelExportWebWorker.js +59 -0
- package/hooks/features/export/serializer/utils.d.ts +36 -0
- package/hooks/features/export/serializer/utils.js +106 -0
- package/hooks/features/export/useGridExcelExport.d.ts +3 -3
- package/hooks/features/export/useGridExcelExport.js +10 -3
- package/hooks/features/index.d.ts +5 -5
- package/hooks/features/promptControl/api.d.ts +2 -2
- package/hooks/features/promptControl/index.d.ts +2 -2
- package/hooks/features/promptControl/types.d.ts +15 -15
- package/hooks/features/rowGrouping/createGroupingColDef.d.ts +44 -32
- package/hooks/features/rowGrouping/createGroupingColDef.js +4 -4
- package/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +32 -32
- package/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +2 -2
- package/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
- package/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +30 -22
- package/hooks/features/rowGrouping/gridRowGroupingUtils.js +4 -2
- package/hooks/features/rowGrouping/index.d.ts +3 -3
- package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +3 -3
- package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
- package/hooks/features/rowGrouping/useGridRowGrouping.d.ts +3 -3
- package/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
- package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +3 -3
- package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
- package/hooks/features/rows/index.d.ts +1 -1
- package/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -1
- package/hooks/index.d.ts +2 -2
- package/hooks/utils/index.d.ts +1 -1
- package/hooks/utils/useGridApiContext.d.ts +4 -2
- package/hooks/utils/useGridApiRef.d.ts +4 -2
- package/hooks/utils/useGridAriaAttributes.d.ts +1 -1
- package/hooks/utils/useGridPrivateApiContext.d.ts +2 -2
- package/hooks/utils/useGridRootProps.d.ts +2 -2
- package/hooks/utils/useKeepGroupedColumnsHidden.d.ts +4 -4
- package/hooks/utils/useKeepGroupedColumnsHidden.js +2 -2
- package/index.d.ts +9 -17
- package/index.js +2 -11
- package/locales.d.ts +1 -1
- package/material/icons.d.ts +6 -6
- package/material/index.d.ts +6 -6
- package/models/dataGridPremiumProps.d.ts +140 -135
- package/models/gridApiPremium.d.ts +4 -6
- package/models/gridGroupingValueGetter.d.ts +2 -2
- package/models/gridPastedValueParser.d.ts +2 -2
- package/models/gridPremiumIconSlotsComponent.d.ts +26 -26
- package/models/gridPremiumSlotsComponent.d.ts +2 -3
- package/models/gridStatePremium.d.ts +7 -7
- package/models/index.d.ts +4 -4
- package/modern/DataGridPremium/DataGrid.d.ts +8 -0
- package/modern/DataGridPremium/DataGridPremium.d.ts +16 -0
- package/modern/DataGridPremium/DataGridPremium.js +61 -35
- package/modern/DataGridPremium/index.d.ts +3 -0
- package/modern/DataGridPremium/useDataGridPremiumComponent.d.ts +4 -0
- package/modern/DataGridPremium/useDataGridPremiumComponent.js +6 -5
- package/modern/DataGridPremium/useDataGridPremiumProps.d.ts +6 -0
- package/modern/DataGridPremium/useDataGridPremiumProps.js +2 -2
- package/modern/components/GridAggregationHeader.d.ts +7 -0
- package/modern/components/GridAggregationHeader.js +13 -12
- package/modern/components/GridAggregationRowOverlay.d.ts +3 -0
- package/modern/components/GridAggregationRowOverlay.js +37 -0
- package/modern/components/GridBottomContainer.d.ts +3 -0
- package/modern/components/GridBottomContainer.js +43 -0
- package/modern/components/GridColumnMenuAggregationItem.d.ts +7 -0
- package/modern/components/GridColumnMenuAggregationItem.js +36 -46
- package/modern/components/GridColumnMenuRowGroupItem.d.ts +3 -0
- package/modern/components/GridColumnMenuRowUngroupItem.d.ts +3 -0
- package/modern/components/GridDataSourceGroupingCriteriaCell.d.ts +7 -0
- package/modern/components/GridDataSourceGroupingCriteriaCell.js +9 -13
- package/modern/components/GridExcelExportMenuItem.d.ts +9 -0
- package/modern/components/GridFooterCell.d.ts +9 -0
- package/modern/components/GridFooterCell.js +5 -6
- package/modern/components/GridGroupingColumnFooterCell.d.ts +4 -0
- package/modern/components/GridGroupingColumnFooterCell.js +2 -1
- package/modern/components/GridGroupingColumnLeafCell.d.ts +4 -0
- package/modern/components/GridGroupingColumnLeafCell.js +3 -8
- package/modern/components/GridGroupingCriteriaCell.d.ts +7 -0
- package/modern/components/GridGroupingCriteriaCell.js +3 -8
- package/modern/components/GridPremiumColumnMenu.d.ts +33 -0
- package/modern/components/GridPremiumToolbar.d.ts +3 -0
- package/modern/components/GridPremiumToolbar.js +23 -0
- package/modern/components/export/ExportExcel.d.ts +29 -0
- package/modern/components/export/ExportExcel.js +209 -0
- package/modern/components/export/index.d.ts +1 -0
- package/modern/components/export/index.js +1 -0
- package/modern/components/index.d.ts +6 -0
- package/modern/components/index.js +2 -1
- package/modern/components/promptControl/GridToolbarPromptControl.d.ts +26 -0
- package/modern/components/promptControl/GridToolbarPromptControl.js +33 -20
- package/modern/components/promptControl/RecordButton.d.ts +16 -0
- package/modern/components/promptControl/index.d.ts +1 -0
- package/modern/components/reexports.d.ts +1 -0
- package/modern/constants/dataGridPremiumDefaultSlotsComponents.d.ts +2 -0
- package/modern/constants/dataGridPremiumDefaultSlotsComponents.js +5 -1
- package/modern/hooks/features/aggregation/createAggregationLookup.d.ts +17 -0
- package/modern/hooks/features/aggregation/createAggregationLookup.js +3 -3
- package/modern/hooks/features/aggregation/gridAggregationFunctions.d.ts +8 -0
- package/modern/hooks/features/aggregation/gridAggregationInterfaces.d.ts +129 -0
- package/modern/hooks/features/aggregation/gridAggregationSelectors.d.ts +13 -0
- package/modern/hooks/features/aggregation/gridAggregationSelectors.js +2 -2
- package/modern/hooks/features/aggregation/gridAggregationUtils.d.ts +62 -0
- package/modern/hooks/features/aggregation/gridAggregationUtils.js +1 -1
- package/modern/hooks/features/aggregation/index.d.ts +4 -0
- package/modern/hooks/features/aggregation/useGridAggregation.d.ts +6 -0
- package/modern/hooks/features/aggregation/useGridAggregation.js +6 -8
- package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +4 -0
- package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.js +7 -6
- package/modern/hooks/features/aggregation/wrapColumnWithAggregation.d.ts +81 -0
- package/modern/hooks/features/aggregation/wrapColumnWithAggregation.js +6 -5
- package/modern/hooks/features/cellSelection/gridCellSelectionInterfaces.d.ts +40 -0
- package/modern/hooks/features/cellSelection/gridCellSelectionSelector.d.ts +2 -0
- package/modern/hooks/features/cellSelection/gridCellSelectionSelector.js +2 -1
- package/modern/hooks/features/cellSelection/index.d.ts +1 -0
- package/modern/hooks/features/cellSelection/useGridCellSelection.d.ts +6 -0
- package/modern/hooks/features/cellSelection/useGridCellSelection.js +15 -13
- package/modern/hooks/features/clipboard/useGridClipboardImport.d.ts +4 -0
- package/modern/hooks/features/clipboard/useGridClipboardImport.js +5 -5
- package/modern/hooks/features/dataSource/models.d.ts +54 -0
- package/modern/hooks/features/dataSource/useGridDataSourcePremium.d.ts +4 -0
- package/modern/hooks/features/dataSource/useGridDataSourcePremium.js +13 -7
- package/modern/hooks/features/export/gridExcelExportInterface.d.ts +71 -0
- package/modern/hooks/features/export/index.d.ts +2 -0
- package/modern/hooks/features/export/index.js +1 -1
- package/modern/hooks/features/export/serializer/excelSerializer.d.ts +40 -0
- package/modern/hooks/features/export/serializer/excelSerializer.js +69 -180
- package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.d.ts +2 -0
- package/modern/hooks/features/export/serializer/setupExcelExportWebWorker.js +53 -0
- package/modern/hooks/features/export/serializer/utils.d.ts +36 -0
- package/modern/hooks/features/export/serializer/utils.js +93 -0
- package/modern/hooks/features/export/useGridExcelExport.d.ts +11 -0
- package/modern/hooks/features/export/useGridExcelExport.js +11 -5
- package/modern/hooks/features/index.d.ts +5 -0
- package/modern/hooks/features/promptControl/api.d.ts +2 -0
- package/modern/hooks/features/promptControl/index.d.ts +2 -0
- package/modern/hooks/features/promptControl/types.d.ts +25 -0
- package/modern/hooks/features/rowGrouping/createGroupingColDef.d.ts +57 -0
- package/modern/hooks/features/rowGrouping/createGroupingColDef.js +5 -5
- package/modern/hooks/features/rowGrouping/gridRowGroupingInterfaces.d.ts +44 -0
- package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.d.ts +3 -0
- package/modern/hooks/features/rowGrouping/gridRowGroupingSelector.js +2 -2
- package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +54 -0
- package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +5 -3
- package/modern/hooks/features/rowGrouping/index.d.ts +3 -0
- package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +4 -0
- package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
- package/modern/hooks/features/rowGrouping/useGridRowGrouping.d.ts +11 -0
- package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +4 -5
- package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +4 -0
- package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
- package/modern/hooks/features/rows/index.d.ts +1 -0
- package/modern/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -0
- package/modern/hooks/index.d.ts +2 -0
- package/modern/hooks/utils/index.d.ts +1 -0
- package/modern/hooks/utils/useGridApiContext.d.ts +4 -0
- package/modern/hooks/utils/useGridApiRef.d.ts +4 -0
- package/modern/hooks/utils/useGridAriaAttributes.d.ts +2 -0
- package/modern/hooks/utils/useGridPrivateApiContext.d.ts +2 -0
- package/modern/hooks/utils/useGridRootProps.d.ts +2 -0
- package/modern/hooks/utils/useKeepGroupedColumnsHidden.d.ts +12 -0
- package/modern/hooks/utils/useKeepGroupedColumnsHidden.js +2 -2
- package/modern/index.d.ts +23 -0
- package/modern/index.js +1 -7
- package/modern/locales.d.ts +1 -0
- package/modern/material/icons.d.ts +15 -0
- package/modern/material/index.d.ts +8 -0
- package/modern/models/dataGridPremiumProps.d.ts +162 -0
- package/modern/models/gridApiPremium.d.ts +14 -0
- package/modern/models/gridGroupingValueGetter.d.ts +4 -0
- package/modern/models/gridPastedValueParser.d.ts +4 -0
- package/modern/models/gridPremiumIconSlotsComponent.d.ts +28 -0
- package/modern/models/gridPremiumSlotsComponent.d.ts +7 -0
- package/modern/models/gridStatePremium.d.ts +18 -0
- package/modern/models/index.d.ts +4 -0
- package/modern/package.json +1 -0
- package/modern/setupExcelExportWebWorker.d.ts +1 -0
- package/modern/setupExcelExportWebWorker.js +1 -0
- package/modern/themeAugmentation/index.d.ts +2 -0
- package/modern/themeAugmentation/overrides.d.ts +7 -0
- package/modern/themeAugmentation/props.d.ts +15 -0
- package/modern/typeOverloads/index.d.ts +2 -0
- package/modern/typeOverloads/modules.d.ts +97 -0
- package/modern/typeOverloads/reexports.d.ts +17 -0
- package/modern/utils/releaseInfo.d.ts +1 -0
- package/modern/utils/releaseInfo.js +1 -1
- package/package.json +42 -9
- package/setupExcelExportWebWorker.d.ts +1 -0
- package/setupExcelExportWebWorker.js +12 -0
- package/themeAugmentation/index.d.ts +2 -2
- package/themeAugmentation/overrides.d.ts +3 -4
- package/themeAugmentation/props.d.ts +9 -11
- package/tsconfig.build.tsbuildinfo +1 -0
- package/typeOverloads/index.d.ts +1 -1
- package/typeOverloads/modules.d.ts +75 -82
- package/typeOverloads/reexports.d.ts +5 -5
- package/utils/releaseInfo.d.ts +1 -1
- package/utils/releaseInfo.js +1 -1
- package/DataGridPremium/package.json +0 -6
- package/components/package.json +0 -6
- package/esm/hooks/features/dataSource/cache.js +0 -3
- package/hooks/features/dataSource/cache.d.ts +0 -2
- package/hooks/features/dataSource/cache.js +0 -9
- package/hooks/package.json +0 -6
- package/material/package.json +0 -6
- package/models/package.json +0 -6
- package/modern/hooks/features/dataSource/cache.js +0 -3
- package/themeAugmentation/package.json +0 -6
- package/typeOverloads/package.json +0 -6
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { RefObject } from '@mui/x-internals/types';
|
|
2
|
+
import { GridColDef, GridRowId } from '@mui/x-data-grid-pro';
|
|
3
|
+
import { GridColumnRawLookup, GridHydrateRowsValue } from '@mui/x-data-grid-pro/internals';
|
|
4
|
+
import { GridAggregationFunction, GridAggregationFunctionDataSource, GridAggregationModel, GridAggregationRule, GridAggregationRules } from "./gridAggregationInterfaces.js";
|
|
5
|
+
import { GridStatePremium } from "../../../models/gridStatePremium.js";
|
|
6
|
+
import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
|
|
7
|
+
import { GridApiPremium, GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
|
|
8
|
+
export declare const GRID_AGGREGATION_ROOT_FOOTER_ROW_ID = "auto-generated-group-footer-root";
|
|
9
|
+
export declare const getAggregationFooterRowIdFromGroupId: (groupId: GridRowId | null) => string;
|
|
10
|
+
type AggregationFunction = GridAggregationFunction | GridAggregationFunctionDataSource | undefined;
|
|
11
|
+
export declare const canColumnHaveAggregationFunction: ({
|
|
12
|
+
colDef,
|
|
13
|
+
aggregationFunctionName,
|
|
14
|
+
aggregationFunction,
|
|
15
|
+
isDataSource
|
|
16
|
+
}: {
|
|
17
|
+
colDef: GridColDef | undefined;
|
|
18
|
+
aggregationFunctionName: string;
|
|
19
|
+
aggregationFunction: AggregationFunction;
|
|
20
|
+
isDataSource: boolean;
|
|
21
|
+
}) => boolean;
|
|
22
|
+
export declare const getAvailableAggregationFunctions: ({
|
|
23
|
+
aggregationFunctions,
|
|
24
|
+
colDef,
|
|
25
|
+
isDataSource
|
|
26
|
+
}: {
|
|
27
|
+
aggregationFunctions: Record<string, GridAggregationFunction> | Record<string, GridAggregationFunctionDataSource>;
|
|
28
|
+
colDef: GridColDef;
|
|
29
|
+
isDataSource: boolean;
|
|
30
|
+
}) => string[];
|
|
31
|
+
export declare const mergeStateWithAggregationModel: (aggregationModel: GridAggregationModel) => (state: GridStatePremium) => GridStatePremium;
|
|
32
|
+
export declare const getAggregationRules: (columnsLookup: GridColumnRawLookup, aggregationModel: GridAggregationModel, aggregationFunctions: Record<string, GridAggregationFunction> | Record<string, GridAggregationFunctionDataSource>, isDataSource: boolean) => GridAggregationRules;
|
|
33
|
+
interface AddFooterRowsParams {
|
|
34
|
+
groupingParams: GridHydrateRowsValue;
|
|
35
|
+
getAggregationPosition: DataGridPremiumProcessedProps['getAggregationPosition'];
|
|
36
|
+
/**
|
|
37
|
+
* If `true`, there are some aggregation rules to apply
|
|
38
|
+
*/
|
|
39
|
+
hasAggregationRule: boolean;
|
|
40
|
+
apiRef: RefObject<GridPrivateApiPremium>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Add a footer for each group that has at least one column with an aggregated value.
|
|
44
|
+
*/
|
|
45
|
+
export declare const addFooterRows: ({
|
|
46
|
+
groupingParams,
|
|
47
|
+
apiRef,
|
|
48
|
+
getAggregationPosition,
|
|
49
|
+
hasAggregationRule
|
|
50
|
+
}: AddFooterRowsParams) => GridHydrateRowsValue;
|
|
51
|
+
/**
|
|
52
|
+
* Compares two sets of aggregation rules to determine if they are equal or not.
|
|
53
|
+
*/
|
|
54
|
+
export declare const areAggregationRulesEqual: (previousValue: GridAggregationRules | undefined, newValue: GridAggregationRules) => boolean;
|
|
55
|
+
export declare const getAggregationFunctionLabel: ({
|
|
56
|
+
apiRef,
|
|
57
|
+
aggregationRule
|
|
58
|
+
}: {
|
|
59
|
+
apiRef: RefObject<GridApiPremium>;
|
|
60
|
+
aggregationRule: GridAggregationRule;
|
|
61
|
+
}) => string;
|
|
62
|
+
export {};
|
|
@@ -111,7 +111,7 @@ export const addFooterRows = ({
|
|
|
111
111
|
}
|
|
112
112
|
};
|
|
113
113
|
const updateRootGroupFooter = groupNode => {
|
|
114
|
-
const shouldHaveFooter = hasAggregationRule && getAggregationPosition(groupNode) === 'footer';
|
|
114
|
+
const shouldHaveFooter = hasAggregationRule && getAggregationPosition(groupNode) === 'footer' && groupNode.children.length > 0;
|
|
115
115
|
if (shouldHaveFooter) {
|
|
116
116
|
const rowId = getAggregationFooterRowIdFromGroupId(null);
|
|
117
117
|
newGroupingParams = addPinnedRow({
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { GridAggregationState, GridAggregationInitialState, GridAggregationInternalCache, GridAggregationApi, GridAggregationGetCellValueParams, GridAggregationFunction, GridAggregationFunctionDataSource, GridAggregationParams, GridAggregationModel, GridAggregationLookup, GridAggregationPosition, GridAggregationCellMeta, GridAggregationHeaderMeta, GridAggregationRule, GridAggregationRules } from './gridAggregationInterfaces';
|
|
2
|
+
export * from "./gridAggregationSelectors.js";
|
|
3
|
+
export * from "./gridAggregationFunctions.js";
|
|
4
|
+
export { GRID_AGGREGATION_ROOT_FOOTER_ROW_ID, getAggregationFooterRowIdFromGroupId } from "./gridAggregationUtils.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RefObject } from '@mui/x-internals/types';
|
|
2
|
+
import { GridStateInitializer } from '@mui/x-data-grid-pro/internals';
|
|
3
|
+
import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
|
|
4
|
+
import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
|
|
5
|
+
export declare const aggregationStateInitializer: GridStateInitializer<Pick<DataGridPremiumProcessedProps, 'aggregationModel' | 'initialState'>, GridPrivateApiPremium>;
|
|
6
|
+
export declare const useGridAggregation: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "onAggregationModelChange" | "initialState" | "aggregationModel" | "getAggregationPosition" | "aggregationFunctions" | "aggregationRowsScope" | "disableAggregation" | "rowGroupingColumnMode" | "dataSource">) => void;
|
|
@@ -32,7 +32,6 @@ export const useGridAggregation = (apiRef, props) => {
|
|
|
32
32
|
const currentModel = gridAggregationModelSelector(apiRef);
|
|
33
33
|
if (currentModel !== model) {
|
|
34
34
|
apiRef.current.setState(mergeStateWithAggregationModel(model));
|
|
35
|
-
apiRef.current.forceUpdate();
|
|
36
35
|
}
|
|
37
36
|
}, [apiRef]);
|
|
38
37
|
const applyAggregation = React.useCallback(() => {
|
|
@@ -41,14 +40,14 @@ export const useGridAggregation = (apiRef, props) => {
|
|
|
41
40
|
getAggregationPosition: props.getAggregationPosition,
|
|
42
41
|
aggregationFunctions: props.aggregationFunctions,
|
|
43
42
|
aggregationRowsScope: props.aggregationRowsScope,
|
|
44
|
-
isDataSource: !!props.
|
|
43
|
+
isDataSource: !!props.dataSource
|
|
45
44
|
});
|
|
46
45
|
apiRef.current.setState(state => _extends({}, state, {
|
|
47
46
|
aggregation: _extends({}, state.aggregation, {
|
|
48
47
|
lookup: aggregationLookup
|
|
49
48
|
})
|
|
50
49
|
}));
|
|
51
|
-
}, [apiRef, props.getAggregationPosition, props.aggregationFunctions, props.aggregationRowsScope, props.
|
|
50
|
+
}, [apiRef, props.getAggregationPosition, props.aggregationFunctions, props.aggregationRowsScope, props.dataSource]);
|
|
52
51
|
const aggregationApi = {
|
|
53
52
|
setAggregationModel
|
|
54
53
|
};
|
|
@@ -72,12 +71,12 @@ export const useGridAggregation = (apiRef, props) => {
|
|
|
72
71
|
rulesOnLastRowHydration,
|
|
73
72
|
rulesOnLastColumnHydration
|
|
74
73
|
} = apiRef.current.caches.aggregation;
|
|
75
|
-
const aggregationRules = props.disableAggregation ? {} : getAggregationRules(gridColumnLookupSelector(apiRef), gridAggregationModelSelector(apiRef), props.aggregationFunctions, !!props.
|
|
74
|
+
const aggregationRules = props.disableAggregation ? {} : getAggregationRules(gridColumnLookupSelector(apiRef), gridAggregationModelSelector(apiRef), props.aggregationFunctions, !!props.dataSource);
|
|
76
75
|
|
|
77
76
|
// Re-apply the row hydration to add / remove the aggregation footers
|
|
78
77
|
if (!areAggregationRulesEqual(rulesOnLastRowHydration, aggregationRules)) {
|
|
79
|
-
if (props.
|
|
80
|
-
apiRef.current.
|
|
78
|
+
if (props.dataSource) {
|
|
79
|
+
apiRef.current.dataSource.fetchRows();
|
|
81
80
|
} else {
|
|
82
81
|
apiRef.current.requestPipeProcessorsApplication('hydrateRows');
|
|
83
82
|
applyAggregation();
|
|
@@ -86,10 +85,9 @@ export const useGridAggregation = (apiRef, props) => {
|
|
|
86
85
|
|
|
87
86
|
// Re-apply the column hydration to wrap / unwrap the aggregated columns
|
|
88
87
|
if (!areAggregationRulesEqual(rulesOnLastColumnHydration, aggregationRules)) {
|
|
89
|
-
apiRef.current.caches.aggregation.rulesOnLastColumnHydration = aggregationRules;
|
|
90
88
|
apiRef.current.requestPipeProcessorsApplication('hydrateColumns');
|
|
91
89
|
}
|
|
92
|
-
}, [apiRef, applyAggregation, props.aggregationFunctions, props.disableAggregation, props.
|
|
90
|
+
}, [apiRef, applyAggregation, props.aggregationFunctions, props.disableAggregation, props.dataSource]);
|
|
93
91
|
useGridApiEventHandler(apiRef, 'aggregationModelChange', checkAggregationRulesDiff);
|
|
94
92
|
useGridApiEventHandler(apiRef, 'columnsChange', checkAggregationRulesDiff);
|
|
95
93
|
useGridApiEventHandler(apiRef, 'filteredRowsSet', applyAggregation);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RefObject } from '@mui/x-internals/types';
|
|
2
|
+
import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
|
|
3
|
+
import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
|
|
4
|
+
export declare const useGridAggregationPreProcessors: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "aggregationFunctions" | "disableAggregation" | "getAggregationPosition" | "slotProps" | "slots" | "dataSource">) => void;
|
|
@@ -10,7 +10,7 @@ export const useGridAggregationPreProcessors = (apiRef, props) => {
|
|
|
10
10
|
// that the pre-processor is called it will already have been updated with the current rules.
|
|
11
11
|
const rulesOnLastColumnHydration = React.useRef({});
|
|
12
12
|
const updateAggregatedColumns = React.useCallback(columnsState => {
|
|
13
|
-
const aggregationRules = props.disableAggregation ? {} : getAggregationRules(columnsState.lookup, gridAggregationModelSelector(apiRef), props.aggregationFunctions, !!props.
|
|
13
|
+
const aggregationRules = props.disableAggregation ? {} : getAggregationRules(columnsState.lookup, gridAggregationModelSelector(apiRef), props.aggregationFunctions, !!props.dataSource);
|
|
14
14
|
columnsState.orderedFields.forEach(field => {
|
|
15
15
|
const shouldHaveAggregationValue = !!aggregationRules[field];
|
|
16
16
|
const haveAggregationColumnValue = !!rulesOnLastColumnHydration.current[field];
|
|
@@ -30,10 +30,11 @@ export const useGridAggregationPreProcessors = (apiRef, props) => {
|
|
|
30
30
|
columnsState.lookup[field] = column;
|
|
31
31
|
});
|
|
32
32
|
rulesOnLastColumnHydration.current = aggregationRules;
|
|
33
|
+
apiRef.current.caches.aggregation.rulesOnLastColumnHydration = aggregationRules;
|
|
33
34
|
return columnsState;
|
|
34
|
-
}, [apiRef, props.aggregationFunctions, props.disableAggregation, props.
|
|
35
|
+
}, [apiRef, props.aggregationFunctions, props.disableAggregation, props.dataSource]);
|
|
35
36
|
const addGroupFooterRows = React.useCallback(value => {
|
|
36
|
-
const aggregationRules = props.disableAggregation ? {} : getAggregationRules(gridColumnLookupSelector(apiRef), gridAggregationModelSelector(apiRef), props.aggregationFunctions, !!props.
|
|
37
|
+
const aggregationRules = props.disableAggregation ? {} : getAggregationRules(gridColumnLookupSelector(apiRef), gridAggregationModelSelector(apiRef), props.aggregationFunctions, !!props.dataSource);
|
|
37
38
|
const hasAggregationRule = Object.keys(aggregationRules).length > 0;
|
|
38
39
|
|
|
39
40
|
// If we did not have any aggregation footer before, and we still don't have any,
|
|
@@ -48,7 +49,7 @@ export const useGridAggregationPreProcessors = (apiRef, props) => {
|
|
|
48
49
|
getAggregationPosition: props.getAggregationPosition,
|
|
49
50
|
hasAggregationRule
|
|
50
51
|
});
|
|
51
|
-
}, [apiRef, props.disableAggregation, props.getAggregationPosition, props.aggregationFunctions, props.
|
|
52
|
+
}, [apiRef, props.disableAggregation, props.getAggregationPosition, props.aggregationFunctions, props.dataSource]);
|
|
52
53
|
const addColumnMenuButtons = React.useCallback((columnMenuItems, colDef) => {
|
|
53
54
|
if (props.disableAggregation || !colDef.aggregable) {
|
|
54
55
|
return columnMenuItems;
|
|
@@ -56,13 +57,13 @@ export const useGridAggregationPreProcessors = (apiRef, props) => {
|
|
|
56
57
|
const availableAggregationFunctions = getAvailableAggregationFunctions({
|
|
57
58
|
aggregationFunctions: props.aggregationFunctions,
|
|
58
59
|
colDef,
|
|
59
|
-
isDataSource: !!props.
|
|
60
|
+
isDataSource: !!props.dataSource
|
|
60
61
|
});
|
|
61
62
|
if (availableAggregationFunctions.length === 0) {
|
|
62
63
|
return columnMenuItems;
|
|
63
64
|
}
|
|
64
65
|
return [...columnMenuItems, 'columnMenuAggregationItem'];
|
|
65
|
-
}, [props.aggregationFunctions, props.disableAggregation, props.
|
|
66
|
+
}, [props.aggregationFunctions, props.disableAggregation, props.dataSource]);
|
|
66
67
|
const stateExportPreProcessing = React.useCallback(prevState => {
|
|
67
68
|
if (props.disableAggregation) {
|
|
68
69
|
return prevState;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { RefObject } from '@mui/x-internals/types';
|
|
3
|
+
import { GridColDef, GridFilterOperator } from '@mui/x-data-grid-pro';
|
|
4
|
+
import { type GridBaseColDef } from '@mui/x-data-grid-pro/internals';
|
|
5
|
+
import { GridApiPremium } from "../../../models/gridApiPremium.js";
|
|
6
|
+
import type { GridAggregationRule } from './gridAggregationInterfaces';
|
|
7
|
+
type WrappableColumnProperty = 'valueGetter' | 'valueFormatter' | 'renderCell' | 'renderHeader' | 'filterOperators';
|
|
8
|
+
interface GridColDefWithAggregationWrappers extends GridBaseColDef {
|
|
9
|
+
aggregationWrappedProperties: {
|
|
10
|
+
name: WrappableColumnProperty;
|
|
11
|
+
originalValue: GridBaseColDef[WrappableColumnProperty];
|
|
12
|
+
wrappedValue: GridBaseColDef[WrappableColumnProperty];
|
|
13
|
+
}[];
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Add a wrapper around each wrappable property of the column to customize the behavior of the aggregation cells.
|
|
17
|
+
*/
|
|
18
|
+
export declare const wrapColumnWithAggregationValue: ({
|
|
19
|
+
column,
|
|
20
|
+
apiRef,
|
|
21
|
+
aggregationRule
|
|
22
|
+
}: {
|
|
23
|
+
column: GridBaseColDef;
|
|
24
|
+
apiRef: RefObject<GridApiPremium>;
|
|
25
|
+
aggregationRule: GridAggregationRule;
|
|
26
|
+
}) => GridBaseColDef;
|
|
27
|
+
/**
|
|
28
|
+
* Remove the aggregation wrappers around the wrappable properties of the column.
|
|
29
|
+
*/
|
|
30
|
+
export declare const unwrapColumnFromAggregation: ({
|
|
31
|
+
column
|
|
32
|
+
}: {
|
|
33
|
+
column: GridColDef | GridColDefWithAggregationWrappers;
|
|
34
|
+
}) => GridBaseColDef<any, any, any> | {
|
|
35
|
+
field: string;
|
|
36
|
+
headerName?: string;
|
|
37
|
+
description?: string;
|
|
38
|
+
width?: number;
|
|
39
|
+
flex?: number;
|
|
40
|
+
minWidth?: number;
|
|
41
|
+
maxWidth?: number;
|
|
42
|
+
hideable?: boolean;
|
|
43
|
+
sortable?: boolean;
|
|
44
|
+
sortingOrder?: readonly import("@mui/x-data-grid").GridSortDirection[];
|
|
45
|
+
resizable?: boolean;
|
|
46
|
+
editable?: boolean;
|
|
47
|
+
groupable?: boolean;
|
|
48
|
+
pinnable?: boolean;
|
|
49
|
+
sortComparator?: import("@mui/x-data-grid").GridComparatorFn<any> | undefined;
|
|
50
|
+
getSortComparator?: ((sortDirection: import("@mui/x-data-grid").GridSortDirection) => import("@mui/x-data-grid").GridComparatorFn<any> | undefined) | undefined;
|
|
51
|
+
type?: import("@mui/x-data-grid").GridColType;
|
|
52
|
+
align?: import("@mui/x-data-grid").GridAlignment;
|
|
53
|
+
valueGetter?: import("@mui/x-data-grid").GridValueGetter<import("@mui/x-data-grid").GridValidRowModel, any, any, never> | undefined;
|
|
54
|
+
rowSpanValueGetter?: import("@mui/x-data-grid").GridValueGetter<import("@mui/x-data-grid").GridValidRowModel, any, any, never> | undefined;
|
|
55
|
+
valueSetter?: import("@mui/x-data-grid").GridValueSetter<import("@mui/x-data-grid").GridValidRowModel, any, any> | undefined;
|
|
56
|
+
valueFormatter?: import("@mui/x-data-grid").GridValueFormatter<import("@mui/x-data-grid").GridValidRowModel, any, any, never> | undefined;
|
|
57
|
+
valueParser?: import("@mui/x-data-grid").GridValueParser<import("@mui/x-data-grid").GridValidRowModel, any, any> | undefined;
|
|
58
|
+
cellClassName?: import("@mui/x-data-grid").GridCellClassNamePropType<import("@mui/x-data-grid").GridValidRowModel, any> | undefined;
|
|
59
|
+
display?: "text" | "flex";
|
|
60
|
+
renderCell?: ((params: import("@mui/x-data-grid").GridRenderCellParams<import("@mui/x-data-grid").GridValidRowModel, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => React.ReactNode) | undefined;
|
|
61
|
+
renderEditCell?: ((params: import("@mui/x-data-grid").GridRenderEditCellParams<import("@mui/x-data-grid").GridValidRowModel, any, any, import("@mui/x-data-grid").GridTreeNodeWithRender>) => React.ReactNode) | undefined;
|
|
62
|
+
preProcessEditCellProps?: ((params: import("@mui/x-data-grid").GridPreProcessEditCellProps) => import("@mui/x-data-grid").GridEditCellProps | Promise<import("@mui/x-data-grid").GridEditCellProps>) | undefined;
|
|
63
|
+
headerClassName?: import("@mui/x-data-grid").GridColumnHeaderClassNamePropType;
|
|
64
|
+
renderHeader?: ((params: import("@mui/x-data-grid").GridColumnHeaderParams<import("@mui/x-data-grid").GridValidRowModel, any, any>) => React.ReactNode) | undefined;
|
|
65
|
+
headerAlign?: import("@mui/x-data-grid").GridAlignment;
|
|
66
|
+
hideSortIcons?: boolean;
|
|
67
|
+
disableColumnMenu?: boolean;
|
|
68
|
+
filterable?: boolean;
|
|
69
|
+
filterOperators?: readonly GridFilterOperator<import("@mui/x-data-grid").GridValidRowModel, any, any, any>[] | undefined;
|
|
70
|
+
getApplyQuickFilterFn?: import("@mui/x-data-grid").GetApplyQuickFilterFn<import("@mui/x-data-grid").GridValidRowModel, any> | undefined;
|
|
71
|
+
disableReorder?: boolean;
|
|
72
|
+
disableExport?: boolean;
|
|
73
|
+
colSpan?: number | import("@mui/x-data-grid").GridColSpanFn<import("@mui/x-data-grid").GridValidRowModel, any, any> | undefined;
|
|
74
|
+
unstable_examples?: any[] | undefined;
|
|
75
|
+
renderHeaderFilter?: (params: import("@mui/x-data-grid-pro").GridRenderHeaderFilterProps) => React.ReactNode;
|
|
76
|
+
aggregable?: boolean;
|
|
77
|
+
availableAggregationFunctions?: string[];
|
|
78
|
+
groupingValueGetter?: import("../../..").GridGroupingValueGetter<import("@mui/x-data-grid").GridValidRowModel> | undefined;
|
|
79
|
+
pastedValueParser?: import("../../..").GridPastedValueParser<import("@mui/x-data-grid").GridValidRowModel, any, any> | undefined;
|
|
80
|
+
};
|
|
81
|
+
export {};
|
|
@@ -2,17 +2,17 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
const _excluded = ["aggregationWrappedProperties"];
|
|
4
4
|
import * as React from 'react';
|
|
5
|
+
import { gridRowIdSelector, gridRowNodeSelector } from '@mui/x-data-grid-pro';
|
|
5
6
|
import { gridAggregationLookupSelector } from "./gridAggregationSelectors.js";
|
|
6
7
|
import { GridFooterCell } from "../../../components/GridFooterCell.js";
|
|
7
8
|
import { GridAggregationHeader } from "../../../components/GridAggregationHeader.js";
|
|
8
9
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
-
const AGGREGATION_WRAPPABLE_PROPERTIES = ['valueGetter', 'valueFormatter', 'renderCell', 'renderHeader', 'filterOperators'];
|
|
10
10
|
const getAggregationValueWrappedValueGetter = ({
|
|
11
11
|
value: valueGetter,
|
|
12
12
|
getCellAggregationResult
|
|
13
13
|
}) => {
|
|
14
14
|
const wrappedValueGetter = (value, row, column, apiRef) => {
|
|
15
|
-
const rowId = apiRef
|
|
15
|
+
const rowId = gridRowIdSelector(apiRef, row);
|
|
16
16
|
const cellAggregationResult = rowId ? getCellAggregationResult(rowId, column.field) : null;
|
|
17
17
|
if (cellAggregationResult != null) {
|
|
18
18
|
return cellAggregationResult?.value ?? null;
|
|
@@ -35,7 +35,7 @@ const getAggregationValueWrappedValueFormatter = ({
|
|
|
35
35
|
return valueFormatter;
|
|
36
36
|
}
|
|
37
37
|
const wrappedValueFormatter = (value, row, column, apiRef) => {
|
|
38
|
-
const rowId = apiRef
|
|
38
|
+
const rowId = gridRowIdSelector(apiRef, row);
|
|
39
39
|
if (rowId != null) {
|
|
40
40
|
const cellAggregationResult = getCellAggregationResult(rowId, column.field);
|
|
41
41
|
if (cellAggregationResult != null) {
|
|
@@ -94,7 +94,8 @@ const getWrappedFilterOperators = ({
|
|
|
94
94
|
return null;
|
|
95
95
|
}
|
|
96
96
|
return (value, row, column, api) => {
|
|
97
|
-
|
|
97
|
+
const rowId = gridRowIdSelector(apiRef, row);
|
|
98
|
+
if (getCellAggregationResult(rowId, column.field) != null) {
|
|
98
99
|
return true;
|
|
99
100
|
}
|
|
100
101
|
return filterFn(value, row, column, api);
|
|
@@ -133,7 +134,7 @@ export const wrapColumnWithAggregationValue = ({
|
|
|
133
134
|
}) => {
|
|
134
135
|
const getCellAggregationResult = (id, field) => {
|
|
135
136
|
let cellAggregationPosition = null;
|
|
136
|
-
const rowNode = apiRef
|
|
137
|
+
const rowNode = gridRowNodeSelector(apiRef, id);
|
|
137
138
|
if (rowNode.type === 'group') {
|
|
138
139
|
cellAggregationPosition = 'inline';
|
|
139
140
|
} else if (id.toString().startsWith('auto-generated-group-footer-')) {
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { GridCellCoordinates, GridColDef, GridRowId } from '@mui/x-data-grid-pro';
|
|
2
|
+
export type GridCellSelectionModel = Record<GridRowId, Record<GridColDef['field'], boolean>>;
|
|
3
|
+
/**
|
|
4
|
+
* The cell selection API interface that is available in the grid [[apiRef]].
|
|
5
|
+
*/
|
|
6
|
+
export interface GridCellSelectionApi {
|
|
7
|
+
/**
|
|
8
|
+
* Determines if a cell is selected or not.
|
|
9
|
+
* @param {GridRowId} id The id of the row.
|
|
10
|
+
* @param {GridColDef['field']} field The field.
|
|
11
|
+
* @returns {boolean} A boolean indicating if the cell is selected.
|
|
12
|
+
*/
|
|
13
|
+
isCellSelected: (id: GridRowId, field: GridColDef['field']) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Returns an object containing the selection state of the cells.
|
|
16
|
+
* The keys of the object correspond to the row IDs.
|
|
17
|
+
* The value of each key is also an object, which has a column field for a key and a boolean value for its selection state.
|
|
18
|
+
* @returns {GridCellSelectionModel} Object containing the selection state of the cells
|
|
19
|
+
*/
|
|
20
|
+
getCellSelectionModel: () => GridCellSelectionModel;
|
|
21
|
+
/**
|
|
22
|
+
* Updates the cell selection model according to the value passed to the `newModel` argument.
|
|
23
|
+
* Any cell already selected will be unselected.
|
|
24
|
+
* @param {GridCellSelectionModel} newModel The cells to select.
|
|
25
|
+
*/
|
|
26
|
+
setCellSelectionModel: (newModel: GridCellSelectionModel) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Selects all cells that are inside the range given by `start` and `end` coordinates.
|
|
29
|
+
* @param {GridCellCoordinates} start Object containing the row ID and field of the first cell to select.
|
|
30
|
+
* @param {GridCellCoordinates} end Object containing the row ID and field of the last cell to select.
|
|
31
|
+
* @param {boolean} keepOtherSelected Whether to keep current selected cells or discard. Default is false.
|
|
32
|
+
*/
|
|
33
|
+
selectCellRange: (start: GridCellCoordinates, end: GridCellCoordinates, keepOtherSelected?: boolean) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Returns an array containing only the selected cells.
|
|
36
|
+
* Each item is an object with the ID and field of the cell.
|
|
37
|
+
* @returns {GridCellCoordinates[]} Array with the selected cells.
|
|
38
|
+
*/
|
|
39
|
+
getSelectedCellsAsArray: () => GridCellCoordinates[];
|
|
40
|
+
}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { createRootSelector } from '@mui/x-data-grid-pro/internals';
|
|
2
|
+
export const gridCellSelectionStateSelector = createRootSelector(state => state.cellSelection);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./gridCellSelectionInterfaces.js";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RefObject } from '@mui/x-internals/types';
|
|
2
|
+
import { GridStateInitializer } from '@mui/x-data-grid-pro/internals';
|
|
3
|
+
import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
|
|
4
|
+
import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
|
|
5
|
+
export declare const cellSelectionStateInitializer: GridStateInitializer<Pick<DataGridPremiumProcessedProps, 'cellSelectionModel' | 'initialState'>>;
|
|
6
|
+
export declare const useGridCellSelection: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "cellSelection" | "cellSelectionModel" | "onCellSelectionModelChange" | "pagination" | "paginationMode" | "ignoreValueFormatterDuringExport" | "clipboardCopyCellDelimiter" | "columnHeaderHeight">) => void;
|
|
@@ -2,8 +2,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import ownerDocument from '@mui/utils/ownerDocument';
|
|
4
4
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
5
|
-
import { getTotalHeaderHeight, getVisibleRows, isNavigationKey, serializeCellValue, useGridRegisterPipeProcessor
|
|
6
|
-
import { useGridApiEventHandler, useGridApiMethod, GRID_ACTIONS_COLUMN_TYPE, GRID_CHECKBOX_SELECTION_COL_DEF, GRID_DETAIL_PANEL_TOGGLE_FIELD, gridClasses, gridFocusCellSelector, GRID_REORDER_COL_DEF,
|
|
5
|
+
import { getTotalHeaderHeight, getVisibleRows, isNavigationKey, serializeCellValue, useGridRegisterPipeProcessor } from '@mui/x-data-grid-pro/internals';
|
|
6
|
+
import { useGridApiEventHandler, useGridApiMethod, GRID_ACTIONS_COLUMN_TYPE, GRID_CHECKBOX_SELECTION_COL_DEF, GRID_DETAIL_PANEL_TOGGLE_FIELD, gridClasses, gridFocusCellSelector, GRID_REORDER_COL_DEF, gridSortedRowIdsSelector, gridDimensionsSelector } from '@mui/x-data-grid-pro';
|
|
7
7
|
import { gridCellSelectionStateSelector } from "./gridCellSelectionSelector.js";
|
|
8
8
|
export const cellSelectionStateInitializer = (state, props) => _extends({}, state, {
|
|
9
9
|
cellSelection: _extends({}, props.cellSelectionModel ?? props.initialState?.cellSelection)
|
|
@@ -16,13 +16,10 @@ const AUTO_SCROLL_SPEED = 20; // The speed to scroll once the mouse enters the s
|
|
|
16
16
|
|
|
17
17
|
export const useGridCellSelection = (apiRef, props) => {
|
|
18
18
|
const hasRootReference = apiRef.current.rootElementRef.current !== null;
|
|
19
|
-
const visibleRows = useGridVisibleRows(apiRef, props);
|
|
20
19
|
const cellWithVirtualFocus = React.useRef(null);
|
|
21
20
|
const lastMouseDownCell = React.useRef(null);
|
|
22
21
|
const mousePosition = React.useRef(null);
|
|
23
22
|
const autoScrollRAF = React.useRef(null);
|
|
24
|
-
const sortedRowIds = useGridSelector(apiRef, gridSortedRowIdsSelector);
|
|
25
|
-
const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
|
|
26
23
|
const totalHeaderHeight = getTotalHeaderHeight(apiRef, props);
|
|
27
24
|
const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
|
|
28
25
|
const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
|
|
@@ -43,11 +40,11 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
43
40
|
if (!props.cellSelection) {
|
|
44
41
|
return false;
|
|
45
42
|
}
|
|
46
|
-
const cellSelectionModel = gridCellSelectionStateSelector(apiRef
|
|
43
|
+
const cellSelectionModel = gridCellSelectionStateSelector(apiRef);
|
|
47
44
|
return cellSelectionModel[id] ? !!cellSelectionModel[id][field] : false;
|
|
48
45
|
}, [apiRef, props.cellSelection]);
|
|
49
46
|
const getCellSelectionModel = React.useCallback(() => {
|
|
50
|
-
return gridCellSelectionStateSelector(apiRef
|
|
47
|
+
return gridCellSelectionStateSelector(apiRef);
|
|
51
48
|
}, [apiRef]);
|
|
52
49
|
const setCellSelectionModel = React.useCallback(newModel => {
|
|
53
50
|
if (!props.cellSelection) {
|
|
@@ -56,7 +53,6 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
56
53
|
apiRef.current.setState(prevState => _extends({}, prevState, {
|
|
57
54
|
cellSelection: newModel
|
|
58
55
|
}));
|
|
59
|
-
apiRef.current.forceUpdate();
|
|
60
56
|
}, [apiRef, props.cellSelection]);
|
|
61
57
|
const selectCellRange = React.useCallback((start, end, keepOtherSelected = false) => {
|
|
62
58
|
const startRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(start.id);
|
|
@@ -76,6 +72,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
76
72
|
finalEndColumnIndex = startColumnIndex;
|
|
77
73
|
}
|
|
78
74
|
const visibleColumns = apiRef.current.getVisibleColumns();
|
|
75
|
+
const visibleRows = getVisibleRows(apiRef);
|
|
79
76
|
const rowsInRange = visibleRows.rows.slice(finalStartRowIndex, finalEndRowIndex + 1);
|
|
80
77
|
const columnsInRange = visibleColumns.slice(finalStartColumnIndex, finalEndColumnIndex + 1);
|
|
81
78
|
const newModel = keepOtherSelected ? _extends({}, apiRef.current.getCellSelectionModel()) : {};
|
|
@@ -88,7 +85,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
88
85
|
}, {});
|
|
89
86
|
});
|
|
90
87
|
apiRef.current.setCellSelectionModel(newModel);
|
|
91
|
-
}, [apiRef
|
|
88
|
+
}, [apiRef]);
|
|
92
89
|
const getSelectedCellsAsArray = React.useCallback(() => {
|
|
93
90
|
const selectionModel = apiRef.current.getCellSelectionModel();
|
|
94
91
|
const currentVisibleRows = getVisibleRows(apiRef, props);
|
|
@@ -186,6 +183,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
186
183
|
if (!mousePosition.current || !apiRef.current.virtualScrollerRef?.current) {
|
|
187
184
|
return;
|
|
188
185
|
}
|
|
186
|
+
const dimensions = gridDimensionsSelector(apiRef);
|
|
189
187
|
const {
|
|
190
188
|
x: mouseX,
|
|
191
189
|
y: mouseY
|
|
@@ -228,7 +226,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
228
226
|
autoScrollRAF.current = requestAnimationFrame(autoScroll);
|
|
229
227
|
}
|
|
230
228
|
autoScroll();
|
|
231
|
-
}, [apiRef,
|
|
229
|
+
}, [apiRef, totalHeaderHeight]);
|
|
232
230
|
const handleCellMouseOver = React.useCallback((params, event) => {
|
|
233
231
|
if (!lastMouseDownCell.current) {
|
|
234
232
|
return;
|
|
@@ -245,6 +243,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
245
243
|
if (!virtualScrollerRect) {
|
|
246
244
|
return;
|
|
247
245
|
}
|
|
246
|
+
const dimensions = gridDimensionsSelector(apiRef);
|
|
248
247
|
const {
|
|
249
248
|
x,
|
|
250
249
|
y
|
|
@@ -270,7 +269,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
270
269
|
// Mouse has left the sensitivity area while auto scroll is on
|
|
271
270
|
stopAutoScroll();
|
|
272
271
|
}
|
|
273
|
-
}, [apiRef, startAutoScroll, stopAutoScroll, totalHeaderHeight
|
|
272
|
+
}, [apiRef, startAutoScroll, stopAutoScroll, totalHeaderHeight]);
|
|
274
273
|
const handleCellClick = useEventCallback((params, event) => {
|
|
275
274
|
const {
|
|
276
275
|
id,
|
|
@@ -330,6 +329,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
330
329
|
} else if (event.key === 'ArrowLeft') {
|
|
331
330
|
endColumnIndex -= 1;
|
|
332
331
|
}
|
|
332
|
+
const visibleRows = getVisibleRows(apiRef);
|
|
333
333
|
if (endRowIndex < 0 || endRowIndex >= visibleRows.rows.length) {
|
|
334
334
|
return;
|
|
335
335
|
}
|
|
@@ -382,6 +382,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
382
382
|
id,
|
|
383
383
|
field
|
|
384
384
|
}) => {
|
|
385
|
+
const visibleRows = getVisibleRows(apiRef);
|
|
385
386
|
if (!visibleRows.range || !apiRef.current.isCellSelected(id, field)) {
|
|
386
387
|
return classes;
|
|
387
388
|
}
|
|
@@ -430,7 +431,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
430
431
|
newClasses.push(gridClasses['cell--rangeRight']);
|
|
431
432
|
}
|
|
432
433
|
return newClasses;
|
|
433
|
-
}, [apiRef
|
|
434
|
+
}, [apiRef]);
|
|
434
435
|
const canUpdateFocus = React.useCallback((initialValue, {
|
|
435
436
|
event,
|
|
436
437
|
cell
|
|
@@ -451,6 +452,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
451
452
|
if (apiRef.current.getSelectedCellsAsArray().length <= 1) {
|
|
452
453
|
return value;
|
|
453
454
|
}
|
|
455
|
+
const sortedRowIds = gridSortedRowIdsSelector(apiRef);
|
|
454
456
|
const cellSelectionModel = apiRef.current.getCellSelectionModel();
|
|
455
457
|
const unsortedSelectedRowIds = Object.keys(cellSelectionModel);
|
|
456
458
|
const sortedSelectedRowIds = sortedRowIds.filter(id => unsortedSelectedRowIds.includes(`${id}`));
|
|
@@ -476,7 +478,7 @@ export const useGridCellSelection = (apiRef, props) => {
|
|
|
476
478
|
return acc === '' ? rowString : [acc, rowString].join('\r\n');
|
|
477
479
|
}, '');
|
|
478
480
|
return copyData;
|
|
479
|
-
}, [apiRef, ignoreValueFormatter, clipboardCopyCellDelimiter
|
|
481
|
+
}, [apiRef, ignoreValueFormatter, clipboardCopyCellDelimiter]);
|
|
480
482
|
useGridRegisterPipeProcessor(apiRef, 'isCellSelected', checkIfCellIsSelected);
|
|
481
483
|
useGridRegisterPipeProcessor(apiRef, 'cellClassName', addClassesToCells);
|
|
482
484
|
useGridRegisterPipeProcessor(apiRef, 'canUpdateFocus', canUpdateFocus);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RefObject } from '@mui/x-internals/types';
|
|
2
|
+
import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
|
|
3
|
+
import type { DataGridPremiumProcessedProps } from '../../../models/dataGridPremiumProps';
|
|
4
|
+
export declare const useGridClipboardImport: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "pagination" | "paginationMode" | "processRowUpdate" | "onProcessRowUpdateError" | "getRowId" | "onClipboardPasteStart" | "onClipboardPasteEnd" | "splitClipboardPastedText" | "disableClipboardPaste" | "onBeforeClipboardPasteStart">) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { GRID_CHECKBOX_SELECTION_FIELD, gridFocusCellSelector, gridVisibleColumnFieldsSelector, useGridApiOptionHandler, useGridApiEventHandler, gridPaginatedVisibleSortedGridRowIdsSelector, gridExpandedSortedRowIdsSelector } from '@mui/x-data-grid';
|
|
3
|
+
import { GRID_CHECKBOX_SELECTION_FIELD, gridFocusCellSelector, gridVisibleColumnFieldsSelector, useGridApiOptionHandler, useGridApiEventHandler, gridPaginatedVisibleSortedGridRowIdsSelector, gridExpandedSortedRowIdsSelector, gridRowSelectionIdsSelector, gridRowSelectionCountSelector } from '@mui/x-data-grid';
|
|
4
4
|
import { getRowIdFromRowModel, getActiveElement, useGridRegisterPipeProcessor, getPublicApiRef, isPasteShortcut, useGridLogger } from '@mui/x-data-grid/internals';
|
|
5
5
|
import { warnOnce } from '@mui/x-internals/warning';
|
|
6
6
|
import { GRID_DETAIL_PANEL_TOGGLE_FIELD, GRID_REORDER_COL_DEF } from '@mui/x-data-grid-pro';
|
|
@@ -193,10 +193,10 @@ function defaultPasteResolver({
|
|
|
193
193
|
}
|
|
194
194
|
return true;
|
|
195
195
|
});
|
|
196
|
-
|
|
197
|
-
if (selectedRows.size > 0 && !isSingleValuePasted) {
|
|
196
|
+
if (gridRowSelectionCountSelector(apiRef) > 0 && !isSingleValuePasted) {
|
|
198
197
|
// Multiple values are pasted starting from the first and top-most cell
|
|
199
198
|
const pastedRowsDataCount = pastedData.length;
|
|
199
|
+
const selectedRows = gridRowSelectionIdsSelector(apiRef);
|
|
200
200
|
|
|
201
201
|
// There's no guarantee that the selected rows are in the same order as the pasted rows
|
|
202
202
|
selectedRows.forEach((row, rowId) => {
|
|
@@ -255,7 +255,6 @@ export const useGridClipboardImport = (apiRef, props) => {
|
|
|
255
255
|
const onProcessRowUpdateError = props.onProcessRowUpdateError;
|
|
256
256
|
const getRowId = props.getRowId;
|
|
257
257
|
const enableClipboardPaste = !props.disableClipboardPaste;
|
|
258
|
-
const rootEl = apiRef.current.rootElementRef?.current;
|
|
259
258
|
const logger = useGridLogger(apiRef, 'useGridClipboardImport');
|
|
260
259
|
const splitClipboardPastedText = props.splitClipboardPastedText;
|
|
261
260
|
const {
|
|
@@ -278,6 +277,7 @@ export const useGridClipboardImport = (apiRef, props) => {
|
|
|
278
277
|
return;
|
|
279
278
|
}
|
|
280
279
|
}
|
|
280
|
+
const rootEl = apiRef.current.rootElementRef?.current;
|
|
281
281
|
if (!rootEl) {
|
|
282
282
|
return;
|
|
283
283
|
}
|
|
@@ -318,7 +318,7 @@ export const useGridClipboardImport = (apiRef, props) => {
|
|
|
318
318
|
paginationMode
|
|
319
319
|
});
|
|
320
320
|
cellUpdater.applyUpdates();
|
|
321
|
-
}, [apiRef, processRowUpdate, onProcessRowUpdateError, getRowId, enableClipboardPaste,
|
|
321
|
+
}, [apiRef, processRowUpdate, onProcessRowUpdateError, getRowId, enableClipboardPaste, splitClipboardPastedText, pagination, paginationMode, onBeforeClipboardPasteStart, logger]);
|
|
322
322
|
const checkIfCanStartEditing = React.useCallback((initialValue, {
|
|
323
323
|
event
|
|
324
324
|
}) => {
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { GridColDef, GridRowId, GridValidRowModel, GridDataSource, GridGetRowsResponse, GridGetRowsParams, GridDataSourceApiBase, GridDataSourcePrivateApi } from '@mui/x-data-grid-pro';
|
|
2
|
+
import type { GridAggregationModel } from '../aggregation/gridAggregationInterfaces';
|
|
3
|
+
export interface GridGetRowsResponsePremium extends GridGetRowsResponse {
|
|
4
|
+
/**
|
|
5
|
+
* Row to be used for aggregation footer row.
|
|
6
|
+
* It must provide the values for the aggregated columns passed in
|
|
7
|
+
* `GridGetRowsParams.aggregationModel`.
|
|
8
|
+
*/
|
|
9
|
+
aggregateRow?: GridValidRowModel;
|
|
10
|
+
}
|
|
11
|
+
export interface GridGetRowsParamsPremium extends GridGetRowsParams {
|
|
12
|
+
/**
|
|
13
|
+
* List of aggregated columns.
|
|
14
|
+
*/
|
|
15
|
+
aggregationModel?: GridAggregationModel;
|
|
16
|
+
/**
|
|
17
|
+
* List of grouped columns (only applicable with `rowGrouping`).
|
|
18
|
+
*/
|
|
19
|
+
groupFields?: GridColDef['field'][];
|
|
20
|
+
}
|
|
21
|
+
export interface GridDataSourcePremium extends Omit<GridDataSource, 'getRows'> {
|
|
22
|
+
/**
|
|
23
|
+
* This method will be called when the grid needs to fetch some rows.
|
|
24
|
+
* @param {GridGetRowsParamsPremium} params The parameters required to fetch the rows.
|
|
25
|
+
* @returns {Promise<GridGetRowsResponsePremium>} A promise that resolves to the data of type [GridGetRowsResponsePremium].
|
|
26
|
+
*/
|
|
27
|
+
getRows(params: GridGetRowsParamsPremium): Promise<GridGetRowsResponsePremium>;
|
|
28
|
+
/**
|
|
29
|
+
* Used to get the aggregated value for a parent row.
|
|
30
|
+
* @param {GridValidRowModel} row The row to extract the aggregated value from.
|
|
31
|
+
* @param {GridColDef['field']} field The field to extract the aggregated value for.
|
|
32
|
+
* @returns {string} The aggregated value for a specific aggregated column.
|
|
33
|
+
*/
|
|
34
|
+
getAggregatedValue?: (row: GridValidRowModel, field: GridColDef['field']) => string;
|
|
35
|
+
}
|
|
36
|
+
export interface GridDataSourceApiBasePremium extends Omit<GridDataSourceApiBase, 'fetchRows'> {
|
|
37
|
+
/**
|
|
38
|
+
* Fetches the rows from the server.
|
|
39
|
+
* If no `parentId` option is provided, it fetches the root rows.
|
|
40
|
+
* Any missing parameter from `params` will be filled from the state (sorting, filtering, etc.).
|
|
41
|
+
* @param {GridRowId} parentId The id of the parent node (default: `GRID_ROOT_GROUP_ID`).
|
|
42
|
+
* @param {Partial<GridGetRowsParamsPremium>} params Request parameters override.
|
|
43
|
+
*/
|
|
44
|
+
fetchRows: (parentId?: GridRowId, params?: Partial<GridGetRowsParamsPremium>) => void;
|
|
45
|
+
}
|
|
46
|
+
export interface GridDataSourceApiPremium {
|
|
47
|
+
/**
|
|
48
|
+
* The data source API.
|
|
49
|
+
*/
|
|
50
|
+
dataSource: GridDataSourceApiBasePremium;
|
|
51
|
+
}
|
|
52
|
+
export interface GridDataSourcePremiumPrivateApi extends GridDataSourcePrivateApi {
|
|
53
|
+
resolveGroupAggregation: (groupId: GridRowId, field: string) => any;
|
|
54
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RefObject } from '@mui/x-internals/types';
|
|
2
|
+
import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
|
|
3
|
+
import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
|
|
4
|
+
export declare const useGridDataSourcePremium: (apiRef: RefObject<GridPrivateApiPremium>, props: DataGridPremiumProcessedProps) => void;
|