@mui/x-data-grid 9.6.0 → 9.8.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 +241 -2
- package/DataGrid/DataGrid.js +2 -2
- package/DataGrid/DataGrid.mjs +2 -2
- package/colDef/gridDateOperators.d.mts +1 -1
- package/colDef/gridDateOperators.d.ts +1 -1
- package/components/GridColumnHeaders.d.mts +1 -1
- package/components/GridColumnHeaders.d.ts +1 -1
- package/components/GridFooter.d.mts +1 -1
- package/components/GridFooter.d.ts +1 -1
- package/components/GridLoadingOverlay.d.mts +1 -1
- package/components/GridLoadingOverlay.d.ts +1 -1
- package/components/GridNoColumnsOverlay.d.mts +1 -1
- package/components/GridNoColumnsOverlay.d.ts +1 -1
- package/components/GridNoResultsOverlay.d.mts +1 -1
- package/components/GridNoResultsOverlay.d.ts +1 -1
- package/components/GridNoRowsOverlay.d.mts +1 -1
- package/components/GridNoRowsOverlay.d.ts +1 -1
- package/components/GridRowCount.d.mts +1 -1
- package/components/GridRowCount.d.ts +1 -1
- package/components/GridSelectedRowCount.d.mts +1 -1
- package/components/GridSelectedRowCount.d.ts +1 -1
- package/components/cell/GridActionsCell.d.mts +1 -1
- package/components/cell/GridActionsCell.d.ts +1 -1
- package/components/cell/GridCell.d.mts +1 -1
- package/components/cell/GridCell.d.ts +1 -1
- package/components/cell/GridCell.js +2 -10
- package/components/cell/GridCell.mjs +2 -10
- package/components/cell/GridFooterCell.d.mts +1 -1
- package/components/cell/GridFooterCell.d.ts +1 -1
- package/components/columnHeaders/GridBaseColumnHeaders.d.mts +1 -1
- package/components/columnHeaders/GridBaseColumnHeaders.d.ts +1 -1
- package/components/columnHeaders/GridColumnGroupHeader.js +2 -10
- package/components/columnHeaders/GridColumnGroupHeader.mjs +2 -10
- package/components/columnHeaders/GridColumnHeaderItem.js +2 -10
- package/components/columnHeaders/GridColumnHeaderItem.mjs +2 -10
- package/components/columnHeaders/GridColumnHeaderSortIcon.d.mts +1 -1
- package/components/columnHeaders/GridColumnHeaderSortIcon.d.ts +1 -1
- package/components/columnHeaders/GridGenericColumnHeaderItem.d.mts +1 -1
- package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -1
- package/components/columnsPanel/ColumnsPanelTrigger.d.mts +1 -1
- package/components/columnsPanel/ColumnsPanelTrigger.d.ts +1 -1
- package/components/columnsPanel/ColumnsPanelTrigger.js +2 -2
- package/components/columnsPanel/ColumnsPanelTrigger.mjs +2 -2
- package/components/containers/GridFooterContainer.d.mts +1 -1
- package/components/containers/GridFooterContainer.d.ts +1 -1
- package/components/containers/GridOverlay.d.mts +1 -1
- package/components/containers/GridOverlay.d.ts +1 -1
- package/components/containers/GridToolbarContainer.d.mts +1 -1
- package/components/containers/GridToolbarContainer.d.ts +1 -1
- package/components/export/ExportCsv.d.mts +1 -1
- package/components/export/ExportCsv.d.ts +1 -1
- package/components/export/ExportPrint.d.mts +1 -1
- package/components/export/ExportPrint.d.ts +1 -1
- package/components/filterPanel/FilterPanelTrigger.d.mts +1 -1
- package/components/filterPanel/FilterPanelTrigger.d.ts +1 -1
- package/components/filterPanel/FilterPanelTrigger.js +2 -2
- package/components/filterPanel/FilterPanelTrigger.mjs +2 -2
- package/components/menu/columnMenu/GridColumnHeaderMenu.d.mts +1 -1
- package/components/menu/columnMenu/GridColumnHeaderMenu.d.ts +1 -1
- package/components/panel/GridColumnsPanel.d.mts +1 -1
- package/components/panel/GridColumnsPanel.d.ts +1 -1
- package/components/panel/GridPanelContent.d.mts +1 -1
- package/components/panel/GridPanelContent.d.ts +1 -1
- package/components/panel/GridPanelContext.d.mts +9 -3
- package/components/panel/GridPanelContext.d.ts +9 -3
- package/components/panel/GridPanelContext.js +40 -7
- package/components/panel/GridPanelContext.mjs +40 -7
- package/components/panel/GridPanelFooter.d.mts +1 -1
- package/components/panel/GridPanelFooter.d.ts +1 -1
- package/components/panel/GridPanelHeader.d.mts +1 -1
- package/components/panel/GridPanelHeader.d.ts +1 -1
- package/components/panel/GridPanelWrapper.d.mts +1 -1
- package/components/panel/GridPanelWrapper.d.ts +1 -1
- package/components/panel/GridPreferencesPanel.js +4 -6
- package/components/panel/GridPreferencesPanel.mjs +4 -6
- package/components/panel/filterPanel/GridFilterForm.d.mts +2 -1
- package/components/panel/filterPanel/GridFilterForm.d.ts +2 -1
- package/components/panel/filterPanel/GridFilterPanel.d.mts +2 -2
- package/components/panel/filterPanel/GridFilterPanel.d.ts +2 -2
- package/components/quickFilter/QuickFilter.d.mts +2 -2
- package/components/quickFilter/QuickFilter.d.ts +2 -2
- package/components/quickFilter/QuickFilterClear.d.mts +2 -2
- package/components/quickFilter/QuickFilterClear.d.ts +2 -2
- package/components/quickFilter/QuickFilterControl.d.mts +2 -2
- package/components/quickFilter/QuickFilterControl.d.ts +2 -2
- package/components/quickFilter/QuickFilterTrigger.d.mts +2 -2
- package/components/quickFilter/QuickFilterTrigger.d.ts +2 -2
- package/components/toolbar/GridToolbar.d.mts +3 -3
- package/components/toolbar/GridToolbar.d.ts +3 -3
- package/components/toolbar/GridToolbarColumnsButton.js +2 -2
- package/components/toolbar/GridToolbarColumnsButton.mjs +2 -2
- package/components/toolbar/GridToolbarFilterButton.js +2 -2
- package/components/toolbar/GridToolbarFilterButton.mjs +2 -2
- package/components/toolbarV8/Toolbar.d.mts +1 -1
- package/components/toolbarV8/Toolbar.d.ts +1 -1
- package/components/toolbarV8/ToolbarButton.d.mts +1 -1
- package/components/toolbarV8/ToolbarButton.d.ts +1 -1
- package/components/virtualization/GridVirtualScrollerContent.d.mts +1 -1
- package/components/virtualization/GridVirtualScrollerContent.d.ts +1 -1
- package/components/virtualization/GridVirtualScrollerRenderZone.d.mts +1 -1
- package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +1 -1
- package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +7 -1
- package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.mjs +7 -1
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.d.mts +1 -1
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.d.ts +1 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.mts +2 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.d.ts +2 -1
- package/hooks/features/columnResize/useGridColumnResize.js +56 -2
- package/hooks/features/columnResize/useGridColumnResize.mjs +57 -3
- package/hooks/features/columns/gridColumnsSelector.d.mts +1 -1
- package/hooks/features/columns/gridColumnsSelector.d.ts +1 -1
- package/hooks/features/dimensions/useGridDimensions.js +3 -3
- package/hooks/features/dimensions/useGridDimensions.mjs +3 -3
- package/hooks/features/editing/gridEditingSelectors.d.mts +1 -1
- package/hooks/features/editing/gridEditingSelectors.d.ts +1 -1
- package/hooks/features/editing/gridEditingSelectors.mjs +0 -1
- package/hooks/features/editing/useGridCellEditing.js +14 -7
- package/hooks/features/editing/useGridCellEditing.mjs +14 -7
- package/hooks/features/editing/utils.d.mts +1 -1
- package/hooks/features/editing/utils.d.ts +1 -1
- package/hooks/features/editing/utils.js +1 -1
- package/hooks/features/editing/utils.mjs +1 -1
- package/hooks/features/filter/gridFilterState.d.mts +1 -1
- package/hooks/features/filter/gridFilterState.d.ts +1 -1
- package/hooks/features/filter/gridFilterUtils.d.mts +2 -2
- package/hooks/features/filter/gridFilterUtils.d.ts +2 -2
- package/hooks/features/focus/useGridFocus.js +2 -10
- package/hooks/features/focus/useGridFocus.mjs +2 -10
- package/hooks/features/rowSelection/useGridRowSelection.js +0 -3
- package/hooks/features/rowSelection/useGridRowSelection.mjs +0 -3
- package/hooks/features/rows/gridRowSpanningUtils.d.mts +1 -1
- package/hooks/features/rows/gridRowSpanningUtils.d.ts +1 -1
- package/hooks/features/rows/gridRowSpanningUtils.js +1 -1
- package/hooks/features/rows/gridRowSpanningUtils.mjs +1 -1
- package/hooks/features/rows/gridRowsUtils.d.mts +1 -1
- package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
- package/hooks/features/rows/gridRowsUtils.js +6 -4
- package/hooks/features/rows/gridRowsUtils.mjs +6 -4
- package/hooks/features/virtualization/useGridVirtualization.d.mts +1 -1
- package/hooks/features/virtualization/useGridVirtualization.d.ts +1 -1
- package/hooks/features/virtualization/useGridVirtualization.js +2 -2
- package/hooks/features/virtualization/useGridVirtualization.mjs +2 -2
- package/hooks/utils/useGridEvent.js +1 -1
- package/hooks/utils/useGridEvent.mjs +1 -1
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/locales/arSD.d.mts +1 -1
- package/locales/arSD.d.ts +1 -1
- package/locales/beBY.d.mts +1 -1
- package/locales/beBY.d.ts +1 -1
- package/locales/bgBG.d.mts +1 -1
- package/locales/bgBG.d.ts +1 -1
- package/locales/bnBD.d.mts +1 -1
- package/locales/bnBD.d.ts +1 -1
- package/locales/caES.d.mts +1 -1
- package/locales/caES.d.ts +1 -1
- package/locales/csCZ.d.mts +1 -1
- package/locales/csCZ.d.ts +1 -1
- package/locales/daDK.d.mts +1 -1
- package/locales/daDK.d.ts +1 -1
- package/locales/deDE.d.mts +1 -1
- package/locales/deDE.d.ts +1 -1
- package/locales/elGR.d.mts +1 -1
- package/locales/elGR.d.ts +1 -1
- package/locales/enUS.d.mts +1 -1
- package/locales/enUS.d.ts +1 -1
- package/locales/esES.d.mts +1 -1
- package/locales/esES.d.ts +1 -1
- package/locales/faIR.d.mts +1 -1
- package/locales/faIR.d.ts +1 -1
- package/locales/fiFI.d.mts +1 -1
- package/locales/fiFI.d.ts +1 -1
- package/locales/frFR.d.mts +1 -1
- package/locales/frFR.d.ts +1 -1
- package/locales/heIL.d.mts +1 -1
- package/locales/heIL.d.ts +1 -1
- package/locales/huHU.d.mts +1 -1
- package/locales/huHU.d.ts +1 -1
- package/locales/hyAM.d.mts +1 -1
- package/locales/hyAM.d.ts +1 -1
- package/locales/idID.d.mts +1 -1
- package/locales/idID.d.ts +1 -1
- package/locales/isIS.d.mts +1 -1
- package/locales/isIS.d.ts +1 -1
- package/locales/itIT.d.mts +1 -1
- package/locales/itIT.d.ts +1 -1
- package/locales/jaJP.d.mts +1 -1
- package/locales/jaJP.d.ts +1 -1
- package/locales/jaJP.js +4 -5
- package/locales/jaJP.mjs +4 -5
- package/locales/koKR.d.mts +1 -1
- package/locales/koKR.d.ts +1 -1
- package/locales/nbNO.d.mts +1 -1
- package/locales/nbNO.d.ts +1 -1
- package/locales/nlNL.d.mts +1 -1
- package/locales/nlNL.d.ts +1 -1
- package/locales/nnNO.d.mts +1 -1
- package/locales/nnNO.d.ts +1 -1
- package/locales/plPL.d.mts +1 -1
- package/locales/plPL.d.ts +1 -1
- package/locales/ptBR.d.mts +1 -1
- package/locales/ptBR.d.ts +1 -1
- package/locales/ptPT.d.mts +1 -1
- package/locales/ptPT.d.ts +1 -1
- package/locales/roRO.d.mts +1 -1
- package/locales/roRO.d.ts +1 -1
- package/locales/ruRU.d.mts +1 -1
- package/locales/ruRU.d.ts +1 -1
- package/locales/skSK.d.mts +1 -1
- package/locales/skSK.d.ts +1 -1
- package/locales/svSE.d.mts +1 -1
- package/locales/svSE.d.ts +1 -1
- package/locales/thTH.d.mts +1 -1
- package/locales/thTH.d.ts +1 -1
- package/locales/trTR.d.mts +1 -1
- package/locales/trTR.d.ts +1 -1
- package/locales/ukUA.d.mts +1 -1
- package/locales/ukUA.d.ts +1 -1
- package/locales/urPK.d.mts +1 -1
- package/locales/urPK.d.ts +1 -1
- package/locales/viVN.d.mts +1 -1
- package/locales/viVN.d.ts +1 -1
- package/locales/zhCN.d.mts +1 -1
- package/locales/zhCN.d.ts +1 -1
- package/locales/zhTW.d.mts +1 -1
- package/locales/zhTW.d.ts +1 -1
- package/material/variables.d.mts +1 -1
- package/material/variables.d.ts +1 -1
- package/package.json +5 -4
- package/utils/createSelector.d.mts +1 -1
- package/utils/createSelector.d.ts +1 -1
- package/utils/focusElement.d.mts +9 -0
- package/utils/focusElement.d.ts +9 -0
- package/utils/focusElement.js +24 -0
- package/utils/focusElement.mjs +19 -0
- package/utils/isJSDOM.d.mts +0 -1
- package/utils/isJSDOM.d.ts +0 -1
- package/utils/isJSDOM.js +0 -7
- package/utils/isJSDOM.mjs +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
3
|
import type { GridSlotProps } from "../../models/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import type { QuickFilterState } from "./QuickFilterContext.js";
|
|
5
5
|
export type QuickFilterClearProps = Omit<GridSlotProps['baseIconButton'], 'className'> & {
|
|
6
6
|
/**
|
|
7
7
|
* A function to customize rendering of the component.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
3
|
import type { GridSlotProps } from "../../models/index.mjs";
|
|
4
|
-
import {
|
|
4
|
+
import type { QuickFilterState } from "./QuickFilterContext.mjs";
|
|
5
5
|
export type QuickFilterControlProps = Omit<GridSlotProps['baseTextField'], 'className'> & {
|
|
6
6
|
/**
|
|
7
7
|
* A function to customize rendering of the component.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
3
|
import type { GridSlotProps } from "../../models/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import type { QuickFilterState } from "./QuickFilterContext.js";
|
|
5
5
|
export type QuickFilterControlProps = Omit<GridSlotProps['baseTextField'], 'className'> & {
|
|
6
6
|
/**
|
|
7
7
|
* A function to customize rendering of the component.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
3
|
import type { GridSlotProps } from "../../models/index.mjs";
|
|
4
|
-
import {
|
|
4
|
+
import type { QuickFilterState } from "./QuickFilterContext.mjs";
|
|
5
5
|
export type QuickFilterTriggerProps = Omit<GridSlotProps['baseButton'], 'className'> & {
|
|
6
6
|
/**
|
|
7
7
|
* A function to customize rendering of the component.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
3
|
import type { GridSlotProps } from "../../models/index.js";
|
|
4
|
-
import {
|
|
4
|
+
import type { QuickFilterState } from "./QuickFilterContext.js";
|
|
5
5
|
export type QuickFilterTriggerProps = Omit<GridSlotProps['baseButton'], 'className'> & {
|
|
6
6
|
/**
|
|
7
7
|
* A function to customize rendering of the component.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { GridToolbarContainerProps } from "../containers/GridToolbarContainer.mjs";
|
|
2
|
+
import type { GridToolbarExportProps } from "./GridToolbarExport.mjs";
|
|
3
|
+
import type { GridToolbarQuickFilterProps } from "./GridToolbarQuickFilter.mjs";
|
|
4
4
|
export interface GridToolbarProps extends GridToolbarContainerProps, GridToolbarExportProps {
|
|
5
5
|
/**
|
|
6
6
|
* Show the history controls (undo/redo buttons).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { GridToolbarContainerProps } from "../containers/GridToolbarContainer.js";
|
|
2
|
+
import type { GridToolbarExportProps } from "./GridToolbarExport.js";
|
|
3
|
+
import type { GridToolbarQuickFilterProps } from "./GridToolbarQuickFilter.js";
|
|
4
4
|
export interface GridToolbarProps extends GridToolbarContainerProps, GridToolbarExportProps {
|
|
5
5
|
/**
|
|
6
6
|
* Show the history controls (undo/redo buttons).
|
|
@@ -34,10 +34,10 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = (0, _forward
|
|
|
34
34
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
35
35
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
36
36
|
const {
|
|
37
|
-
|
|
37
|
+
triggers
|
|
38
38
|
} = (0, _GridPanelContext.useGridPanelContext)();
|
|
39
39
|
const preferencePanel = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
|
|
40
|
-
const handleRef = (0, _useForkRef.default)(ref,
|
|
40
|
+
const handleRef = (0, _useForkRef.default)(ref, triggers.columnsPanel.setRef);
|
|
41
41
|
const showColumns = event => {
|
|
42
42
|
if (preferencePanel.open && preferencePanel.openedPanelValue === _gridPreferencePanelsValue.GridPreferencePanelsValue.columns) {
|
|
43
43
|
apiRef.current.hidePreferences();
|
|
@@ -27,10 +27,10 @@ const GridToolbarColumnsButton = forwardRef(function GridToolbarColumnsButton(pr
|
|
|
27
27
|
const apiRef = useGridApiContext();
|
|
28
28
|
const rootProps = useGridRootProps();
|
|
29
29
|
const {
|
|
30
|
-
|
|
30
|
+
triggers
|
|
31
31
|
} = useGridPanelContext();
|
|
32
32
|
const preferencePanel = useGridSelector(apiRef, gridPreferencePanelStateSelector);
|
|
33
|
-
const handleRef = useForkRef(ref,
|
|
33
|
+
const handleRef = useForkRef(ref, triggers.columnsPanel.setRef);
|
|
34
34
|
const showColumns = event => {
|
|
35
35
|
if (preferencePanel.open && preferencePanel.openedPanelValue === GridPreferencePanelsValue.columns) {
|
|
36
36
|
apiRef.current.hidePreferences();
|
|
@@ -62,9 +62,9 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = (0, _forwardRe
|
|
|
62
62
|
const filterButtonId = (0, _useId.default)();
|
|
63
63
|
const filterPanelId = (0, _useId.default)();
|
|
64
64
|
const {
|
|
65
|
-
|
|
65
|
+
triggers
|
|
66
66
|
} = (0, _GridPanelContext.useGridPanelContext)();
|
|
67
|
-
const handleRef = (0, _useForkRef.default)(ref,
|
|
67
|
+
const handleRef = (0, _useForkRef.default)(ref, triggers.filterPanel.setRef);
|
|
68
68
|
const tooltipContentNode = React.useMemo(() => {
|
|
69
69
|
if (preferencePanel.open) {
|
|
70
70
|
return apiRef.current.getLocaleText('toolbarFiltersTooltipHide');
|
|
@@ -55,9 +55,9 @@ const GridToolbarFilterButton = forwardRef(function GridToolbarFilterButton(prop
|
|
|
55
55
|
const filterButtonId = useId();
|
|
56
56
|
const filterPanelId = useId();
|
|
57
57
|
const {
|
|
58
|
-
|
|
58
|
+
triggers
|
|
59
59
|
} = useGridPanelContext();
|
|
60
|
-
const handleRef = useForkRef(ref,
|
|
60
|
+
const handleRef = useForkRef(ref, triggers.filterPanel.setRef);
|
|
61
61
|
const tooltipContentNode = React.useMemo(() => {
|
|
62
62
|
if (preferencePanel.open) {
|
|
63
63
|
return apiRef.current.getLocaleText('toolbarFiltersTooltipHide');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
3
|
export type ToolbarProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
4
4
|
/**
|
|
5
5
|
* A function to customize rendering of the component.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
3
|
export type ToolbarProps = React.HTMLAttributes<HTMLDivElement> & {
|
|
4
4
|
/**
|
|
5
5
|
* A function to customize rendering of the component.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
3
|
import type { GridSlotProps } from "../../models/index.mjs";
|
|
4
4
|
export type ToolbarButtonProps = GridSlotProps['baseIconButton'] & {
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { RenderProp } from '@mui/x-internals/useComponentRenderer';
|
|
3
3
|
import type { GridSlotProps } from "../../models/index.js";
|
|
4
4
|
export type ToolbarButtonProps = GridSlotProps['baseIconButton'] & {
|
|
5
5
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { SxProps, Theme } from '@mui/system';
|
|
3
3
|
declare const GridVirtualScrollerContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
4
4
|
sx?: SxProps<Theme>;
|
|
5
5
|
}> | React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { SxProps, Theme } from '@mui/system';
|
|
3
3
|
declare const GridVirtualScrollerContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
4
4
|
sx?: SxProps<Theme>;
|
|
5
5
|
}> | React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { SxProps, Theme } from '@mui/system';
|
|
3
3
|
declare const GridVirtualScrollerRenderZone: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
4
4
|
sx?: SxProps<Theme>;
|
|
5
5
|
}> | React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { SxProps, Theme } from '@mui/system';
|
|
3
3
|
declare const GridVirtualScrollerRenderZone: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
4
4
|
sx?: SxProps<Theme>;
|
|
5
5
|
}> | React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
|
|
@@ -10,7 +10,13 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var _useFirstRender = require("../../utils/useFirstRender");
|
|
11
11
|
const useGridRegisterStrategyProcessor = (apiRef, strategyName, group, processor) => {
|
|
12
12
|
const registerPreProcessor = React.useCallback(() => {
|
|
13
|
-
|
|
13
|
+
// NOTE: the unregister fn is intentionally discarded. Unlike pipe processors
|
|
14
|
+
// (which are additive), a strategy processor is required for as long as its
|
|
15
|
+
// strategy is active — `applyStrategyProcessor` throws if the active strategy's
|
|
16
|
+
// processor is missing — so it must outlive the registering component. The cache
|
|
17
|
+
// keeps a single entry per (processor, strategy) and is reclaimed with the grid
|
|
18
|
+
// api, so nothing leaks; `void` documents the deliberate discard.
|
|
19
|
+
void apiRef.current.registerStrategyProcessor(strategyName, group, processor);
|
|
14
20
|
}, [apiRef, processor, group, strategyName]);
|
|
15
21
|
(0, _useFirstRender.useFirstRender)(() => {
|
|
16
22
|
registerPreProcessor();
|
|
@@ -4,7 +4,13 @@ import * as React from 'react';
|
|
|
4
4
|
import { useFirstRender } from "../../utils/useFirstRender.mjs";
|
|
5
5
|
export const useGridRegisterStrategyProcessor = (apiRef, strategyName, group, processor) => {
|
|
6
6
|
const registerPreProcessor = React.useCallback(() => {
|
|
7
|
-
|
|
7
|
+
// NOTE: the unregister fn is intentionally discarded. Unlike pipe processors
|
|
8
|
+
// (which are additive), a strategy processor is required for as long as its
|
|
9
|
+
// strategy is active — `applyStrategyProcessor` throws if the active strategy's
|
|
10
|
+
// processor is missing — so it must outlive the registering component. The cache
|
|
11
|
+
// keeps a single entry per (processor, strategy) and is reclaimed with the grid
|
|
12
|
+
// api, so nothing leaks; `void` documents the deliberate discard.
|
|
13
|
+
void apiRef.current.registerStrategyProcessor(strategyName, group, processor);
|
|
8
14
|
}, [apiRef, processor, group, strategyName]);
|
|
9
15
|
useFirstRender(() => {
|
|
10
16
|
registerPreProcessor();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridColumnGroupingModel, GridColumnNode, GridColumnGroup } from "../../../models/gridColumnGrouping.mjs";
|
|
2
2
|
import type { GridColDef } from "../../../models/colDef/index.mjs";
|
|
3
3
|
import type { GridColumnGroupLookup, GridGroupingStructure } from "./gridColumnGroupsInterfaces.mjs";
|
|
4
4
|
type UnwrappedGroupingModel = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { GridColumnGroupingModel, GridColumnNode, GridColumnGroup } from "../../../models/gridColumnGrouping.js";
|
|
2
2
|
import type { GridColDef } from "../../../models/colDef/index.js";
|
|
3
3
|
import type { GridColumnGroupLookup, GridGroupingStructure } from "./gridColumnGroupsInterfaces.js";
|
|
4
4
|
type UnwrappedGroupingModel = {
|
|
@@ -6,7 +6,8 @@ import type { GridSortColumnLookup } from "../sorting/index.mjs";
|
|
|
6
6
|
import type { GridFilterActiveItemsLookup } from "../filter/index.mjs";
|
|
7
7
|
import type { GridColumnGroupIdentifier, GridColumnIdentifier } from "../focus/index.mjs";
|
|
8
8
|
import type { GridColumnMenuState } from "../columnMenu/index.mjs";
|
|
9
|
-
import {
|
|
9
|
+
import { gridColumnPositionsSelector } from "../columns/index.mjs";
|
|
10
|
+
import type { GridColumnVisibilityModel } from "../columns/index.mjs";
|
|
10
11
|
import type { GridGroupingStructure } from "../columnGrouping/gridColumnGroupsInterfaces.mjs";
|
|
11
12
|
import { PinnedColumnPosition } from "../../../internals/constants.mjs";
|
|
12
13
|
export interface UseGridColumnHeadersProps {
|
|
@@ -6,7 +6,8 @@ import type { GridSortColumnLookup } from "../sorting/index.js";
|
|
|
6
6
|
import type { GridFilterActiveItemsLookup } from "../filter/index.js";
|
|
7
7
|
import type { GridColumnGroupIdentifier, GridColumnIdentifier } from "../focus/index.js";
|
|
8
8
|
import type { GridColumnMenuState } from "../columnMenu/index.js";
|
|
9
|
-
import {
|
|
9
|
+
import { gridColumnPositionsSelector } from "../columns/index.js";
|
|
10
|
+
import type { GridColumnVisibilityModel } from "../columns/index.js";
|
|
10
11
|
import type { GridGroupingStructure } from "../columnGrouping/gridColumnGroupsInterfaces.js";
|
|
11
12
|
import { PinnedColumnPosition } from "../../../internals/constants.js";
|
|
12
13
|
export interface UseGridColumnHeadersProps {
|
|
@@ -25,7 +25,30 @@ var _gridColumnsInterfaces = require("../columns/gridColumnsInterfaces");
|
|
|
25
25
|
var _columns = require("../columns");
|
|
26
26
|
var _dimensions = require("../dimensions");
|
|
27
27
|
var _headerFiltering = require("../headerFiltering");
|
|
28
|
+
var _pagination = require("../pagination");
|
|
28
29
|
var _columnResizeSelector = require("./columnResizeSelector");
|
|
30
|
+
function isRenderContextReadyForAutosizeOnMount(apiRef) {
|
|
31
|
+
const dimensions = (0, _dimensions.gridDimensionsSelector)(apiRef);
|
|
32
|
+
if (!dimensions.isReady) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
const {
|
|
36
|
+
rows
|
|
37
|
+
} = (0, _pagination.gridVisibleRowsSelector)(apiRef);
|
|
38
|
+
if (rows.length === 0) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
const renderContext = (0, _virtualization.gridRenderContextSelector)(apiRef);
|
|
42
|
+
if (renderContext.lastRowIndex <= renderContext.firstRowIndex) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// If all rows fit in the viewport, wait for them all; otherwise we can only measure the rendered rows.
|
|
47
|
+
if (!dimensions.hasScrollY) {
|
|
48
|
+
return renderContext.firstRowIndex === 0 && renderContext.lastRowIndex >= rows.length;
|
|
49
|
+
}
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
29
52
|
function trackFinger(event, currentTouchId) {
|
|
30
53
|
if (currentTouchId !== undefined && event.changedTouches) {
|
|
31
54
|
for (let i = 0; i < event.changedTouches.length; i += 1) {
|
|
@@ -589,10 +612,41 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
589
612
|
React.useEffect(() => stopListening, [stopListening]);
|
|
590
613
|
(0, _utils.useOnMount)(() => {
|
|
591
614
|
if (props.autosizeOnMount) {
|
|
592
|
-
|
|
615
|
+
let frameHandle;
|
|
616
|
+
let unsubscribeStateChange;
|
|
617
|
+
let unsubscribeRenderedRowsIntervalChange;
|
|
618
|
+
const cleanupListeners = () => {
|
|
619
|
+
unsubscribeStateChange?.();
|
|
620
|
+
unsubscribeRenderedRowsIntervalChange?.();
|
|
621
|
+
unsubscribeStateChange = undefined;
|
|
622
|
+
unsubscribeRenderedRowsIntervalChange = undefined;
|
|
623
|
+
};
|
|
624
|
+
const runAutosize = () => {
|
|
625
|
+
frameHandle = undefined;
|
|
626
|
+
cleanupListeners();
|
|
593
627
|
apiRef.current.autosizeColumns(props.autosizeOptions);
|
|
594
|
-
}
|
|
628
|
+
};
|
|
629
|
+
const scheduleAutosize = () => {
|
|
630
|
+
if (frameHandle === undefined) {
|
|
631
|
+
frameHandle = requestAnimationFrame(runAutosize);
|
|
632
|
+
}
|
|
633
|
+
};
|
|
634
|
+
const checkRenderContext = () => {
|
|
635
|
+
if (isRenderContextReadyForAutosizeOnMount(apiRef)) {
|
|
636
|
+
scheduleAutosize();
|
|
637
|
+
}
|
|
638
|
+
};
|
|
639
|
+
unsubscribeStateChange = apiRef.current.subscribeEvent('stateChange', checkRenderContext);
|
|
640
|
+
unsubscribeRenderedRowsIntervalChange = apiRef.current.subscribeEvent('renderedRowsIntervalChange', checkRenderContext);
|
|
641
|
+
checkRenderContext();
|
|
642
|
+
return () => {
|
|
643
|
+
cleanupListeners();
|
|
644
|
+
if (frameHandle !== undefined) {
|
|
645
|
+
cancelAnimationFrame(frameHandle);
|
|
646
|
+
}
|
|
647
|
+
};
|
|
595
648
|
}
|
|
649
|
+
return undefined;
|
|
596
650
|
});
|
|
597
651
|
(0, _utils.useGridNativeEventListener)(apiRef, () => apiRef.current.columnHeadersContainerRef?.current, 'touchstart', handleTouchStart, {
|
|
598
652
|
passive: true
|
|
@@ -10,7 +10,7 @@ import { findGridCellElementsFromCol, findGridElement, findLeftPinnedCellsAfterC
|
|
|
10
10
|
import { DEFAULT_GRID_AUTOSIZE_OPTIONS } from "./gridColumnResizeApi.mjs";
|
|
11
11
|
import { gridClasses } from "../../../constants/gridClasses.mjs";
|
|
12
12
|
import { useGridEvent, useGridApiMethod, useGridEventPriority, useGridLogger, useGridNativeEventListener, useGridSelector, useOnMount } from "../../utils/index.mjs";
|
|
13
|
-
import { gridVirtualizationColumnEnabledSelector } from "../virtualization/index.mjs";
|
|
13
|
+
import { gridRenderContextSelector, gridVirtualizationColumnEnabledSelector } from "../virtualization/index.mjs";
|
|
14
14
|
import { createControllablePromise } from "../../../utils/createControllablePromise.mjs";
|
|
15
15
|
import { clamp } from "../../../utils/utils.mjs";
|
|
16
16
|
import { useTimeout } from "../../utils/useTimeout.mjs";
|
|
@@ -18,7 +18,30 @@ import { GridPinnedColumnPosition } from "../columns/gridColumnsInterfaces.mjs";
|
|
|
18
18
|
import { gridColumnsStateSelector } from "../columns/index.mjs";
|
|
19
19
|
import { gridDimensionsSelector } from "../dimensions/index.mjs";
|
|
20
20
|
import { gridHeaderFilteringEnabledSelector } from "../headerFiltering/index.mjs";
|
|
21
|
+
import { gridVisibleRowsSelector } from "../pagination/index.mjs";
|
|
21
22
|
import { gridResizingColumnFieldSelector } from "./columnResizeSelector.mjs";
|
|
23
|
+
function isRenderContextReadyForAutosizeOnMount(apiRef) {
|
|
24
|
+
const dimensions = gridDimensionsSelector(apiRef);
|
|
25
|
+
if (!dimensions.isReady) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
const {
|
|
29
|
+
rows
|
|
30
|
+
} = gridVisibleRowsSelector(apiRef);
|
|
31
|
+
if (rows.length === 0) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
const renderContext = gridRenderContextSelector(apiRef);
|
|
35
|
+
if (renderContext.lastRowIndex <= renderContext.firstRowIndex) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// If all rows fit in the viewport, wait for them all; otherwise we can only measure the rendered rows.
|
|
40
|
+
if (!dimensions.hasScrollY) {
|
|
41
|
+
return renderContext.firstRowIndex === 0 && renderContext.lastRowIndex >= rows.length;
|
|
42
|
+
}
|
|
43
|
+
return true;
|
|
44
|
+
}
|
|
22
45
|
function trackFinger(event, currentTouchId) {
|
|
23
46
|
if (currentTouchId !== undefined && event.changedTouches) {
|
|
24
47
|
for (let i = 0; i < event.changedTouches.length; i += 1) {
|
|
@@ -581,10 +604,41 @@ export const useGridColumnResize = (apiRef, props) => {
|
|
|
581
604
|
React.useEffect(() => stopListening, [stopListening]);
|
|
582
605
|
useOnMount(() => {
|
|
583
606
|
if (props.autosizeOnMount) {
|
|
584
|
-
|
|
607
|
+
let frameHandle;
|
|
608
|
+
let unsubscribeStateChange;
|
|
609
|
+
let unsubscribeRenderedRowsIntervalChange;
|
|
610
|
+
const cleanupListeners = () => {
|
|
611
|
+
unsubscribeStateChange?.();
|
|
612
|
+
unsubscribeRenderedRowsIntervalChange?.();
|
|
613
|
+
unsubscribeStateChange = undefined;
|
|
614
|
+
unsubscribeRenderedRowsIntervalChange = undefined;
|
|
615
|
+
};
|
|
616
|
+
const runAutosize = () => {
|
|
617
|
+
frameHandle = undefined;
|
|
618
|
+
cleanupListeners();
|
|
585
619
|
apiRef.current.autosizeColumns(props.autosizeOptions);
|
|
586
|
-
}
|
|
620
|
+
};
|
|
621
|
+
const scheduleAutosize = () => {
|
|
622
|
+
if (frameHandle === undefined) {
|
|
623
|
+
frameHandle = requestAnimationFrame(runAutosize);
|
|
624
|
+
}
|
|
625
|
+
};
|
|
626
|
+
const checkRenderContext = () => {
|
|
627
|
+
if (isRenderContextReadyForAutosizeOnMount(apiRef)) {
|
|
628
|
+
scheduleAutosize();
|
|
629
|
+
}
|
|
630
|
+
};
|
|
631
|
+
unsubscribeStateChange = apiRef.current.subscribeEvent('stateChange', checkRenderContext);
|
|
632
|
+
unsubscribeRenderedRowsIntervalChange = apiRef.current.subscribeEvent('renderedRowsIntervalChange', checkRenderContext);
|
|
633
|
+
checkRenderContext();
|
|
634
|
+
return () => {
|
|
635
|
+
cleanupListeners();
|
|
636
|
+
if (frameHandle !== undefined) {
|
|
637
|
+
cancelAnimationFrame(frameHandle);
|
|
638
|
+
}
|
|
639
|
+
};
|
|
587
640
|
}
|
|
641
|
+
return undefined;
|
|
588
642
|
});
|
|
589
643
|
useGridNativeEventListener(apiRef, () => apiRef.current.columnHeadersContainerRef?.current, 'touchstart', handleTouchStart, {
|
|
590
644
|
passive: true
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GridStateCommunity } from "../../../models/gridStateCommunity.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import type { GridColumnLookup, GridPinnedColumnFields } from "./gridColumnsInterfaces.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Get the columns state
|
|
5
5
|
* @category Columns
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GridStateCommunity } from "../../../models/gridStateCommunity.js";
|
|
2
|
-
import {
|
|
2
|
+
import type { GridColumnLookup, GridPinnedColumnFields } from "./gridColumnsInterfaces.js";
|
|
3
3
|
/**
|
|
4
4
|
* Get the columns state
|
|
5
5
|
* @category Columns
|
|
@@ -10,6 +10,7 @@ exports.dimensionsStateInitializer = void 0;
|
|
|
10
10
|
exports.useGridDimensions = useGridDimensions;
|
|
11
11
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
|
+
var _platform = require("@base-ui/utils/platform");
|
|
13
14
|
var _store = require("@mui/x-internals/store");
|
|
14
15
|
var _useGridEvent = require("../../utils/useGridEvent");
|
|
15
16
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
@@ -22,7 +23,6 @@ var _gridRowsUtils = require("../rows/gridRowsUtils");
|
|
|
22
23
|
var _gridColumnsUtils = require("../columns/gridColumnsUtils");
|
|
23
24
|
var _dataGridPropsDefaultValues = require("../../../constants/dataGridPropsDefaultValues");
|
|
24
25
|
var _roundToDecimalPlaces = require("../../../utils/roundToDecimalPlaces");
|
|
25
|
-
var _isJSDOM = require("../../../utils/isJSDOM");
|
|
26
26
|
const EMPTY_SIZE = {
|
|
27
27
|
width: 0,
|
|
28
28
|
height: 0
|
|
@@ -96,11 +96,11 @@ function useGridDimensions(apiRef, props) {
|
|
|
96
96
|
if (!getRootDimensions().isReady) {
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
99
|
-
if (size.height === 0 && !errorShown.current && !props.autoHeight && !
|
|
99
|
+
if (size.height === 0 && !errorShown.current && !props.autoHeight && !_platform.platform.env.jsdom) {
|
|
100
100
|
logger.error(['The parent DOM element of the Data Grid has an empty height.', 'Please make sure that this element has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
|
|
101
101
|
errorShown.current = true;
|
|
102
102
|
}
|
|
103
|
-
if (size.width === 0 && !errorShown.current && !
|
|
103
|
+
if (size.width === 0 && !errorShown.current && !_platform.platform.env.jsdom) {
|
|
104
104
|
logger.error(['The parent DOM element of the Data Grid has an empty width.', 'Please make sure that this element has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
|
|
105
105
|
errorShown.current = true;
|
|
106
106
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import * as React from 'react';
|
|
5
|
+
import { platform } from '@base-ui/utils/platform';
|
|
5
6
|
import { useStoreEffect } from '@mui/x-internals/store';
|
|
6
7
|
import { useGridEventPriority } from "../../utils/useGridEvent.mjs";
|
|
7
8
|
import { useGridApiMethod } from "../../utils/useGridApiMethod.mjs";
|
|
@@ -14,7 +15,6 @@ import { getValidRowHeight, rowHeightWarning } from "../rows/gridRowsUtils.mjs";
|
|
|
14
15
|
import { getTotalHeaderHeight } from "../columns/gridColumnsUtils.mjs";
|
|
15
16
|
import { DATA_GRID_PROPS_DEFAULT_VALUES } from "../../../constants/dataGridPropsDefaultValues.mjs";
|
|
16
17
|
import { roundToDecimalPlaces } from "../../../utils/roundToDecimalPlaces.mjs";
|
|
17
|
-
import { isJSDOM } from "../../../utils/isJSDOM.mjs";
|
|
18
18
|
const EMPTY_SIZE = {
|
|
19
19
|
width: 0,
|
|
20
20
|
height: 0
|
|
@@ -87,11 +87,11 @@ export function useGridDimensions(apiRef, props) {
|
|
|
87
87
|
if (!getRootDimensions().isReady) {
|
|
88
88
|
return;
|
|
89
89
|
}
|
|
90
|
-
if (size.height === 0 && !errorShown.current && !props.autoHeight && !
|
|
90
|
+
if (size.height === 0 && !errorShown.current && !props.autoHeight && !platform.env.jsdom) {
|
|
91
91
|
logger.error(['The parent DOM element of the Data Grid has an empty height.', 'Please make sure that this element has an intrinsic height.', 'The grid displays with a height of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
|
|
92
92
|
errorShown.current = true;
|
|
93
93
|
}
|
|
94
|
-
if (size.width === 0 && !errorShown.current && !
|
|
94
|
+
if (size.width === 0 && !errorShown.current && !platform.env.jsdom) {
|
|
95
95
|
logger.error(['The parent DOM element of the Data Grid has an empty width.', 'Please make sure that this element has an intrinsic width.', 'The grid displays with a width of 0px.', '', 'More details: https://mui.com/r/x-data-grid-no-dimensions.'].join('\n'));
|
|
96
96
|
errorShown.current = true;
|
|
97
97
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GridStateCommunity } from "../../../models/gridStateCommunity.mjs";
|
|
2
2
|
import type { GridRowId } from "../../../models/gridRows.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import type { GridEditMode } from "../../../models/gridEditRowModel.mjs";
|
|
4
4
|
/**
|
|
5
5
|
* Select the row editing state.
|
|
6
6
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GridStateCommunity } from "../../../models/gridStateCommunity.js";
|
|
2
2
|
import type { GridRowId } from "../../../models/gridRows.js";
|
|
3
|
-
import {
|
|
3
|
+
import type { GridEditMode } from "../../../models/gridEditRowModel.js";
|
|
4
4
|
/**
|
|
5
5
|
* Select the row editing state.
|
|
6
6
|
*/
|
|
@@ -366,11 +366,14 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
366
366
|
}
|
|
367
367
|
} else if (processRowUpdate) {
|
|
368
368
|
const handleError = errorThrown => {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
mode
|
|
373
|
-
|
|
369
|
+
// The row might have been deleted
|
|
370
|
+
if (prevCellModesModel.current[id]?.[field]) {
|
|
371
|
+
prevCellModesModel.current[id][field].mode = _gridEditRowModel.GridCellModes.Edit;
|
|
372
|
+
// Revert the mode in the cellModesModel prop back to "edit"
|
|
373
|
+
updateFieldInCellModesModel(id, field, {
|
|
374
|
+
mode: _gridEditRowModel.GridCellModes.Edit
|
|
375
|
+
});
|
|
376
|
+
}
|
|
374
377
|
if (onProcessRowUpdateError) {
|
|
375
378
|
onProcessRowUpdateError(errorThrown);
|
|
376
379
|
} else if (process.env.NODE_ENV !== 'production') {
|
|
@@ -381,14 +384,18 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
381
384
|
Promise.resolve(processRowUpdate(rowUpdate, row, {
|
|
382
385
|
rowId: id
|
|
383
386
|
})).then(finalRowUpdate => {
|
|
384
|
-
apiRef.current.
|
|
387
|
+
if (apiRef.current.getRow(id)) {
|
|
388
|
+
apiRef.current.updateRows([finalRowUpdate]);
|
|
389
|
+
}
|
|
385
390
|
finishCellEditMode();
|
|
386
391
|
}).catch(handleError);
|
|
387
392
|
} catch (errorThrown) {
|
|
388
393
|
handleError(errorThrown);
|
|
389
394
|
}
|
|
390
395
|
} else {
|
|
391
|
-
apiRef.current.
|
|
396
|
+
if (apiRef.current.getRow(id)) {
|
|
397
|
+
apiRef.current.updateRows([rowUpdate]);
|
|
398
|
+
}
|
|
392
399
|
finishCellEditMode();
|
|
393
400
|
}
|
|
394
401
|
});
|
|
@@ -359,11 +359,14 @@ export const useGridCellEditing = (apiRef, props) => {
|
|
|
359
359
|
}
|
|
360
360
|
} else if (processRowUpdate) {
|
|
361
361
|
const handleError = errorThrown => {
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
mode
|
|
366
|
-
|
|
362
|
+
// The row might have been deleted
|
|
363
|
+
if (prevCellModesModel.current[id]?.[field]) {
|
|
364
|
+
prevCellModesModel.current[id][field].mode = GridCellModes.Edit;
|
|
365
|
+
// Revert the mode in the cellModesModel prop back to "edit"
|
|
366
|
+
updateFieldInCellModesModel(id, field, {
|
|
367
|
+
mode: GridCellModes.Edit
|
|
368
|
+
});
|
|
369
|
+
}
|
|
367
370
|
if (onProcessRowUpdateError) {
|
|
368
371
|
onProcessRowUpdateError(errorThrown);
|
|
369
372
|
} else if (process.env.NODE_ENV !== 'production') {
|
|
@@ -374,14 +377,18 @@ export const useGridCellEditing = (apiRef, props) => {
|
|
|
374
377
|
Promise.resolve(processRowUpdate(rowUpdate, row, {
|
|
375
378
|
rowId: id
|
|
376
379
|
})).then(finalRowUpdate => {
|
|
377
|
-
apiRef.current.
|
|
380
|
+
if (apiRef.current.getRow(id)) {
|
|
381
|
+
apiRef.current.updateRows([finalRowUpdate]);
|
|
382
|
+
}
|
|
378
383
|
finishCellEditMode();
|
|
379
384
|
}).catch(handleError);
|
|
380
385
|
} catch (errorThrown) {
|
|
381
386
|
handleError(errorThrown);
|
|
382
387
|
}
|
|
383
388
|
} else {
|
|
384
|
-
apiRef.current.
|
|
389
|
+
if (apiRef.current.getRow(id)) {
|
|
390
|
+
apiRef.current.updateRows([rowUpdate]);
|
|
391
|
+
}
|
|
385
392
|
finishCellEditMode();
|
|
386
393
|
}
|
|
387
394
|
});
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { GridColDef } from "../../../models/colDef/gridColDef.mjs";
|
|
2
|
-
export declare const getDefaultCellValue: (colDef: GridColDef) => false | "" |
|
|
2
|
+
export declare const getDefaultCellValue: (colDef: GridColDef) => false | "" | undefined;
|