@mui/x-data-grid 6.7.0 → 6.9.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 +145 -5541
- package/components/GridColumnHeaders.d.ts +2 -2
- package/components/GridColumnHeaders.js +3 -1
- package/components/GridPagination.d.ts +2 -2
- package/components/GridRow.d.ts +2 -2
- package/components/GridRow.js +33 -79
- package/components/cell/GridCell.d.ts +24 -15
- package/components/cell/GridCell.js +422 -45
- package/components/cell/GridEditInputCell.js +9 -9
- package/components/cell/index.d.ts +2 -1
- package/components/cell/index.js +1 -1
- package/components/containers/GridRootStyles.js +30 -16
- package/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/components/panel/GridPanel.d.ts +1 -1
- package/components/toolbar/GridToolbar.js +2 -2
- package/components/virtualization/GridVirtualScroller.js +4 -9
- package/components/virtualization/GridVirtualScrollerContent.js +11 -20
- package/constants/defaultGridSlotsComponents.js +6 -2
- package/hooks/core/useGridApiInitialization.js +4 -1
- package/hooks/core/useGridStateInitialization.js +2 -9
- package/hooks/features/clipboard/useGridClipboard.js +1 -4
- package/hooks/features/columnGrouping/gridColumnGroupsSelector.js +4 -4
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -3
- package/hooks/features/columns/gridColumnsSelector.js +7 -7
- package/hooks/features/dimensions/useGridDimensions.js +6 -12
- package/hooks/features/editing/useGridCellEditing.js +5 -3
- package/hooks/features/editing/useGridRowEditing.js +14 -6
- package/hooks/features/filter/gridFilterSelector.js +8 -8
- package/hooks/features/filter/gridFilterUtils.d.ts +4 -1
- package/hooks/features/filter/gridFilterUtils.js +19 -13
- package/hooks/features/filter/useGridFilter.js +2 -1
- package/hooks/features/focus/useGridFocus.js +9 -4
- package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
- package/hooks/features/pagination/gridPaginationSelector.js +4 -4
- package/hooks/features/rowSelection/gridRowSelectionSelector.js +3 -3
- package/hooks/features/rows/gridRowsSelector.js +3 -3
- package/hooks/features/rows/useGridParamsApi.d.ts +2 -0
- package/hooks/features/rows/useGridParamsApi.js +7 -15
- package/hooks/features/sorting/gridSortingSelector.js +3 -3
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +8 -816
- package/hooks/features/virtualization/useGridVirtualScroller.js +40 -38
- package/hooks/utils/index.d.ts +1 -1
- package/hooks/utils/index.js +1 -1
- package/hooks/utils/useGridSelector.d.ts +3 -1
- package/hooks/utils/useGridSelector.js +37 -6
- package/hooks/utils/useLazyRef.d.ts +2 -0
- package/hooks/utils/useLazyRef.js +9 -0
- package/hooks/utils/useOnMount.d.ts +2 -0
- package/hooks/utils/useOnMount.js +7 -0
- package/index.js +1 -1
- package/internals/index.d.ts +1 -1
- package/internals/index.js +1 -1
- package/legacy/components/GridColumnHeaders.js +3 -1
- package/legacy/components/GridRow.js +35 -79
- package/legacy/components/cell/GridCell.js +425 -46
- package/legacy/components/cell/GridEditInputCell.js +9 -9
- package/legacy/components/cell/index.js +1 -1
- package/legacy/components/containers/GridRootStyles.js +20 -17
- package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/legacy/components/toolbar/GridToolbar.js +2 -2
- package/legacy/components/virtualization/GridVirtualScroller.js +4 -7
- package/legacy/components/virtualization/GridVirtualScrollerContent.js +10 -17
- package/legacy/constants/defaultGridSlotsComponents.js +6 -2
- package/legacy/hooks/core/useGridApiInitialization.js +4 -1
- package/legacy/hooks/core/useGridStateInitialization.js +2 -7
- package/legacy/hooks/features/clipboard/useGridClipboard.js +1 -4
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsSelector.js +4 -4
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -3
- package/legacy/hooks/features/columns/gridColumnsSelector.js +7 -7
- package/legacy/hooks/features/dimensions/useGridDimensions.js +6 -12
- package/legacy/hooks/features/editing/useGridCellEditing.js +5 -3
- package/legacy/hooks/features/editing/useGridRowEditing.js +15 -7
- package/legacy/hooks/features/filter/gridFilterSelector.js +8 -8
- package/legacy/hooks/features/filter/gridFilterUtils.js +23 -19
- package/legacy/hooks/features/filter/useGridFilter.js +2 -1
- package/legacy/hooks/features/focus/useGridFocus.js +9 -4
- package/legacy/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
- package/legacy/hooks/features/pagination/gridPaginationSelector.js +4 -4
- package/legacy/hooks/features/rowSelection/gridRowSelectionSelector.js +3 -3
- package/legacy/hooks/features/rows/gridRowsSelector.js +3 -3
- package/legacy/hooks/features/rows/useGridParamsApi.js +23 -15
- package/legacy/hooks/features/sorting/gridSortingSelector.js +3 -3
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +38 -34
- package/legacy/hooks/utils/index.js +1 -1
- package/legacy/hooks/utils/useGridSelector.js +43 -5
- package/legacy/hooks/utils/useLazyRef.js +9 -0
- package/legacy/hooks/utils/useOnMount.js +7 -0
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +1 -1
- package/legacy/locales/elGR.js +70 -79
- package/legacy/locales/ptBR.js +12 -13
- package/legacy/utils/Store.js +34 -0
- package/legacy/utils/createSelector.js +74 -6
- package/legacy/utils/doesSupportPreventScroll.js +13 -0
- package/legacy/utils/fastMemo.js +5 -0
- package/legacy/utils/fastObjectShallowCompare.js +32 -0
- package/legacy/utils/keyboardUtils.js +4 -2
- package/locales/elGR.js +66 -79
- package/locales/ptBR.js +12 -13
- package/models/api/gridCoreApi.d.ts +6 -0
- package/models/colDef/gridColDef.d.ts +4 -3
- package/models/colDef/gridColType.d.ts +3 -1
- package/models/events/gridEventLookup.d.ts +3 -3
- package/modern/components/GridColumnHeaders.js +3 -1
- package/modern/components/GridRow.js +32 -79
- package/modern/components/cell/GridCell.js +421 -45
- package/modern/components/cell/GridEditInputCell.js +9 -9
- package/modern/components/cell/index.js +1 -1
- package/modern/components/containers/GridRootStyles.js +30 -16
- package/modern/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/modern/components/toolbar/GridToolbar.js +2 -2
- package/modern/components/virtualization/GridVirtualScroller.js +4 -9
- package/modern/components/virtualization/GridVirtualScrollerContent.js +10 -20
- package/modern/constants/defaultGridSlotsComponents.js +6 -2
- package/modern/hooks/core/useGridApiInitialization.js +4 -1
- package/modern/hooks/core/useGridStateInitialization.js +2 -9
- package/modern/hooks/features/clipboard/useGridClipboard.js +1 -4
- package/modern/hooks/features/columnGrouping/gridColumnGroupsSelector.js +4 -4
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +9 -3
- package/modern/hooks/features/columns/gridColumnsSelector.js +7 -7
- package/modern/hooks/features/dimensions/useGridDimensions.js +6 -12
- package/modern/hooks/features/editing/useGridCellEditing.js +5 -3
- package/modern/hooks/features/editing/useGridRowEditing.js +14 -6
- package/modern/hooks/features/filter/gridFilterSelector.js +8 -8
- package/modern/hooks/features/filter/gridFilterUtils.js +17 -12
- package/modern/hooks/features/filter/useGridFilter.js +2 -1
- package/modern/hooks/features/focus/useGridFocus.js +8 -4
- package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
- package/modern/hooks/features/pagination/gridPaginationSelector.js +4 -4
- package/modern/hooks/features/rowSelection/gridRowSelectionSelector.js +3 -3
- package/modern/hooks/features/rows/gridRowsSelector.js +3 -3
- package/modern/hooks/features/rows/useGridParamsApi.js +7 -15
- package/modern/hooks/features/sorting/gridSortingSelector.js +3 -3
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +40 -38
- package/modern/hooks/utils/index.js +1 -1
- package/modern/hooks/utils/useGridSelector.js +37 -6
- package/modern/hooks/utils/useLazyRef.js +9 -0
- package/modern/hooks/utils/useOnMount.js +7 -0
- package/modern/index.js +1 -1
- package/modern/internals/index.js +1 -1
- package/modern/locales/elGR.js +66 -79
- package/modern/locales/ptBR.js +12 -13
- package/modern/utils/Store.js +24 -0
- package/modern/utils/createSelector.js +74 -6
- package/modern/utils/doesSupportPreventScroll.js +13 -0
- package/modern/utils/fastMemo.js +5 -0
- package/modern/utils/fastObjectShallowCompare.js +32 -0
- package/modern/utils/keyboardUtils.js +4 -2
- package/node/components/GridColumnHeaders.js +4 -2
- package/node/components/GridRow.js +32 -79
- package/node/components/cell/GridCell.js +424 -47
- package/node/components/cell/GridEditInputCell.js +9 -9
- package/node/components/cell/index.js +17 -10
- package/node/components/containers/GridRootStyles.js +30 -16
- package/node/components/menu/columnMenu/GridColumnHeaderMenu.js +1 -1
- package/node/components/toolbar/GridToolbar.js +2 -2
- package/node/components/virtualization/GridVirtualScroller.js +4 -9
- package/node/components/virtualization/GridVirtualScrollerContent.js +10 -20
- package/node/constants/defaultGridSlotsComponents.js +4 -1
- package/node/hooks/core/useGridApiInitialization.js +4 -1
- package/node/hooks/core/useGridStateInitialization.js +2 -9
- package/node/hooks/features/clipboard/useGridClipboard.js +1 -4
- package/node/hooks/features/columnGrouping/gridColumnGroupsSelector.js +3 -3
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +8 -2
- package/node/hooks/features/columns/gridColumnsSelector.js +6 -6
- package/node/hooks/features/dimensions/useGridDimensions.js +6 -12
- package/node/hooks/features/editing/useGridCellEditing.js +5 -3
- package/node/hooks/features/editing/useGridRowEditing.js +14 -6
- package/node/hooks/features/filter/gridFilterSelector.js +7 -7
- package/node/hooks/features/filter/gridFilterUtils.js +17 -12
- package/node/hooks/features/filter/useGridFilter.js +2 -1
- package/node/hooks/features/focus/useGridFocus.js +8 -4
- package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +2 -3
- package/node/hooks/features/pagination/gridPaginationSelector.js +3 -3
- package/node/hooks/features/rowSelection/gridRowSelectionSelector.js +2 -2
- package/node/hooks/features/rows/gridRowsSelector.js +2 -2
- package/node/hooks/features/rows/useGridParamsApi.js +9 -15
- package/node/hooks/features/sorting/gridSortingSelector.js +2 -2
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +40 -36
- package/node/hooks/utils/index.js +14 -10
- package/node/hooks/utils/useGridSelector.js +41 -7
- package/node/hooks/utils/useLazyRef.js +17 -0
- package/node/hooks/utils/useOnMount.js +15 -0
- package/node/index.js +1 -1
- package/node/internals/index.js +7 -0
- package/node/locales/elGR.js +66 -79
- package/node/locales/ptBR.js +12 -13
- package/node/utils/Store.js +31 -0
- package/node/utils/createSelector.js +77 -8
- package/node/utils/doesSupportPreventScroll.js +19 -0
- package/node/utils/fastMemo.js +13 -0
- package/node/utils/fastObjectShallowCompare.js +38 -0
- package/node/utils/keyboardUtils.js +4 -2
- package/package.json +2 -2
- package/utils/Store.d.ts +11 -0
- package/utils/Store.js +24 -0
- package/utils/createSelector.d.ts +1 -0
- package/utils/createSelector.js +74 -6
- package/utils/doesSupportPreventScroll.d.ts +1 -0
- package/utils/doesSupportPreventScroll.js +13 -0
- package/utils/fastMemo.d.ts +1 -0
- package/utils/fastMemo.js +5 -0
- package/utils/fastObjectShallowCompare.d.ts +1 -0
- package/utils/fastObjectShallowCompare.js +32 -0
- package/utils/keyboardUtils.js +4 -2
package/locales/ptBR.js
CHANGED
|
@@ -68,12 +68,12 @@ const ptBRGrid = {
|
|
|
68
68
|
// 'filterOperator<=': '<=',
|
|
69
69
|
|
|
70
70
|
// Header filter operators text
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
71
|
+
headerFilterOperatorContains: 'Contém',
|
|
72
|
+
headerFilterOperatorEquals: 'Igual',
|
|
73
|
+
headerFilterOperatorStartsWith: 'Começa com',
|
|
74
|
+
headerFilterOperatorEndsWith: 'Termina com',
|
|
75
|
+
headerFilterOperatorIs: 'É',
|
|
76
|
+
headerFilterOperatorNot: 'Não é',
|
|
77
77
|
// headerFilterOperatorAfter: 'Is after',
|
|
78
78
|
// headerFilterOperatorOnOrAfter: 'Is on or after',
|
|
79
79
|
// headerFilterOperatorBefore: 'Is before',
|
|
@@ -81,13 +81,12 @@ const ptBRGrid = {
|
|
|
81
81
|
// headerFilterOperatorIsEmpty: 'Is empty',
|
|
82
82
|
// headerFilterOperatorIsNotEmpty: 'Is not empty',
|
|
83
83
|
// headerFilterOperatorIsAnyOf: 'Is any of',
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
84
|
+
'headerFilterOperator=': 'Igual',
|
|
85
|
+
'headerFilterOperator!=': 'Não igual',
|
|
86
|
+
'headerFilterOperator>': 'Maior que',
|
|
87
|
+
'headerFilterOperator>=': 'Maior que ou igual a',
|
|
88
|
+
'headerFilterOperator<': 'Menor que',
|
|
89
|
+
'headerFilterOperator<=': 'Menor que ou igual a',
|
|
91
90
|
// Filter values text
|
|
92
91
|
filterValueAny: 'qualquer',
|
|
93
92
|
filterValueTrue: 'verdadeiro',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { GridEventPublisher, GridEventListener, GridEvents } from '../events';
|
|
3
|
+
import { Store } from '../../utils/Store';
|
|
3
4
|
import { EventManager, EventListenerOptions } from '../../utils/EventManager';
|
|
4
5
|
import { GridApiCaches } from '../gridApiCaches';
|
|
5
6
|
import type { GridApiCommon, GridPrivateApiCommon } from './gridApiCommon';
|
|
@@ -34,6 +35,11 @@ export interface GridCoreApi {
|
|
|
34
35
|
instanceId: {
|
|
35
36
|
id: number;
|
|
36
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* The pub/sub store containing a reference to the public state.
|
|
40
|
+
* @ignore - do not document.
|
|
41
|
+
*/
|
|
42
|
+
store: Store<GridApiCommon['state']>;
|
|
37
43
|
}
|
|
38
44
|
export interface GridCorePrivateApi<GridPublicApi extends GridApiCommon, GridPrivateApi extends GridPrivateApiCommon> {
|
|
39
45
|
/**
|
|
@@ -102,8 +102,9 @@ export interface GridBaseColDef<R extends GridValidRowModel = GridValidRowModel,
|
|
|
102
102
|
*/
|
|
103
103
|
sortComparator?: GridComparatorFn<V>;
|
|
104
104
|
/**
|
|
105
|
-
*
|
|
105
|
+
* The type of the column.
|
|
106
106
|
* @default 'string'
|
|
107
|
+
* @see See {@link https://mui.com/x/react-data-grid/column-definition/#column-types column types docs} for more details.
|
|
107
108
|
*/
|
|
108
109
|
type?: GridColType;
|
|
109
110
|
/**
|
|
@@ -230,7 +231,7 @@ export interface GridBaseColDef<R extends GridValidRowModel = GridValidRowModel,
|
|
|
230
231
|
*/
|
|
231
232
|
export interface GridActionsColDef<R extends GridValidRowModel = any, V = any, F = V> extends GridBaseColDef<R, V, F> {
|
|
232
233
|
/**
|
|
233
|
-
*
|
|
234
|
+
* The type of the column.
|
|
234
235
|
* @default 'actions'
|
|
235
236
|
*/
|
|
236
237
|
type: 'actions';
|
|
@@ -248,7 +249,7 @@ export interface GridActionsColDef<R extends GridValidRowModel = any, V = any, F
|
|
|
248
249
|
*/
|
|
249
250
|
export interface GridSingleSelectColDef<R extends GridValidRowModel = any, V = any, F = V> extends GridBaseColDef<R, V, F> {
|
|
250
251
|
/**
|
|
251
|
-
*
|
|
252
|
+
* The type of the column.
|
|
252
253
|
* @default 'singleSelect'
|
|
253
254
|
*/
|
|
254
255
|
type: 'singleSelect';
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
+
type LiteralUnion<LiteralType, BaseType> = LiteralType | (BaseType & Record<never, never>);
|
|
1
2
|
export type GridNativeColTypes = 'string' | 'number' | 'date' | 'dateTime' | 'boolean' | 'singleSelect' | 'actions';
|
|
2
|
-
export type GridColType = GridNativeColTypes
|
|
3
|
+
export type GridColType = LiteralUnion<GridNativeColTypes, string>;
|
|
4
|
+
export {};
|
|
@@ -563,20 +563,20 @@ export interface GridEventLookup extends GridRowEventLookup, GridColumnHeaderEve
|
|
|
563
563
|
event: React.TouchEvent;
|
|
564
564
|
};
|
|
565
565
|
/**
|
|
566
|
-
* Fired when the value of the selection checkbox of the header is changed
|
|
566
|
+
* Fired when the value of the selection checkbox of the header is changed.
|
|
567
567
|
*/
|
|
568
568
|
headerSelectionCheckboxChange: {
|
|
569
569
|
params: GridHeaderSelectionCheckboxParams;
|
|
570
570
|
};
|
|
571
571
|
/**
|
|
572
|
-
* Fired when the value of the selection checkbox of a row is changed
|
|
572
|
+
* Fired when the value of the selection checkbox of a row is changed.
|
|
573
573
|
*/
|
|
574
574
|
rowSelectionCheckboxChange: {
|
|
575
575
|
params: GridRowSelectionCheckboxParams;
|
|
576
576
|
event: React.ChangeEvent<HTMLElement>;
|
|
577
577
|
};
|
|
578
578
|
/**
|
|
579
|
-
* Fired when the data is copied to the clipboard
|
|
579
|
+
* Fired when the data is copied to the clipboard.
|
|
580
580
|
*/
|
|
581
581
|
clipboardCopy: {
|
|
582
582
|
params: string;
|
|
@@ -3,6 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
3
3
|
const _excluded = ["innerRef", "className", "visibleColumns", "sortColumnLookup", "filterColumnLookup", "columnPositions", "columnHeaderTabIndexState", "columnGroupHeaderTabIndexState", "columnHeaderFocus", "columnGroupHeaderFocus", "densityFactor", "headerGroupingMaxDepth", "columnMenuState", "columnVisibility", "columnGroupsHeaderStructure", "hasOtherElementInTabSequence"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
+
import { fastMemo } from '../utils/fastMemo';
|
|
6
7
|
import { useGridColumnHeaders } from '../hooks/features/columnHeaders/useGridColumnHeaders';
|
|
7
8
|
import { GridBaseColumnHeaders } from './columnHeaders/GridBaseColumnHeaders';
|
|
8
9
|
import { GridColumnHeadersInner } from './columnHeaders/GridColumnHeadersInner';
|
|
@@ -100,4 +101,5 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaders.propTypes = {
|
|
|
100
101
|
sortColumnLookup: PropTypes.object.isRequired,
|
|
101
102
|
visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired
|
|
102
103
|
} : void 0;
|
|
103
|
-
|
|
104
|
+
const MemoizedGridColumnHeaders = fastMemo(GridColumnHeaders);
|
|
105
|
+
export { MemoizedGridColumnHeaders as GridColumnHeaders };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["selected", "rowId", "row", "index", "style", "position", "rowHeight", "className", "visibleColumns", "renderedColumns", "containerWidth", "firstColumnToRender", "lastColumnToRender", "isLastVisible", "focusedCell", "tabbableCell", "onClick", "onDoubleClick", "onMouseEnter", "onMouseLeave"]
|
|
4
|
-
_excluded2 = ["changeReason", "unstable_updateValueOnRender"];
|
|
3
|
+
const _excluded = ["selected", "rowId", "row", "index", "style", "position", "rowHeight", "className", "visibleColumns", "renderedColumns", "containerWidth", "firstColumnToRender", "lastColumnToRender", "isLastVisible", "focusedCell", "tabbableCell", "onClick", "onDoubleClick", "onMouseEnter", "onMouseLeave"];
|
|
5
4
|
import * as React from 'react';
|
|
6
5
|
import PropTypes from 'prop-types';
|
|
7
6
|
import clsx from 'clsx';
|
|
8
7
|
import { unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef } from '@mui/utils';
|
|
8
|
+
import { fastMemo } from '../utils/fastMemo';
|
|
9
9
|
import { GridEditModes, GridRowModes, GridCellModes } from '../models/gridEditRowModel';
|
|
10
10
|
import { useGridApiContext } from '../hooks/utils/useGridApiContext';
|
|
11
11
|
import { getDataGridUtilityClass, gridClasses } from '../constants/gridClasses';
|
|
12
12
|
import { useGridRootProps } from '../hooks/utils/useGridRootProps';
|
|
13
13
|
import { gridColumnsTotalWidthSelector } from '../hooks/features/columns/gridColumnsSelector';
|
|
14
|
-
import { useGridSelector } from '../hooks/utils/useGridSelector';
|
|
14
|
+
import { useGridSelector, objectShallowCompare } from '../hooks/utils/useGridSelector';
|
|
15
15
|
import { useGridVisibleRows } from '../hooks/utils/useGridVisibleRows';
|
|
16
16
|
import { findParentElementFromClassName } from '../utils/domUtils';
|
|
17
17
|
import { GRID_CHECKBOX_SELECTION_COL_DEF } from '../colDef/gridCheckboxSelectionColDef';
|
|
@@ -21,6 +21,7 @@ import { gridSortModelSelector } from '../hooks/features/sorting/gridSortingSele
|
|
|
21
21
|
import { gridRowMaximumTreeDepthSelector } from '../hooks/features/rows/gridRowsSelector';
|
|
22
22
|
import { gridColumnGroupsHeaderMaxDepthSelector } from '../hooks/features/columnGrouping/gridColumnGroupsSelector';
|
|
23
23
|
import { randomNumberBetween } from '../utils/utils';
|
|
24
|
+
import { GridCellWrapper, GridCellV7 } from './cell/GridCell';
|
|
24
25
|
import { gridEditRowsStateSelector } from '../hooks/features/editing/gridEditingSelectors';
|
|
25
26
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
26
27
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -67,8 +68,6 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
67
68
|
containerWidth,
|
|
68
69
|
firstColumnToRender,
|
|
69
70
|
isLastVisible = false,
|
|
70
|
-
focusedCell,
|
|
71
|
-
tabbableCell,
|
|
72
71
|
onClick,
|
|
73
72
|
onDoubleClick,
|
|
74
73
|
onMouseEnter,
|
|
@@ -183,78 +182,27 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
183
182
|
const {
|
|
184
183
|
slots,
|
|
185
184
|
slotProps,
|
|
186
|
-
|
|
187
|
-
disableColumnReorder,
|
|
188
|
-
getCellClassName
|
|
185
|
+
disableColumnReorder
|
|
189
186
|
} = rootProps;
|
|
187
|
+
const CellComponent = slots.cell === GridCellV7 ? GridCellV7 : GridCellWrapper;
|
|
190
188
|
const rowReordering = rootProps.rowReordering;
|
|
191
|
-
const
|
|
192
|
-
const getCell = React.useCallback((column, cellProps) => {
|
|
193
|
-
const cellParams = apiRef.current.getCellParams(rowId, column.field);
|
|
194
|
-
const classNames = apiRef.current.unstable_applyPipeProcessors('cellClassName', [], {
|
|
195
|
-
id: rowId,
|
|
196
|
-
field: column.field
|
|
197
|
-
});
|
|
189
|
+
const getCell = (column, cellProps) => {
|
|
198
190
|
const disableDragEvents = disableColumnReorder && column.disableReorder || !rowReordering && !!sortModel.length && treeDepth > 1 && Object.keys(editRowsState).length > 0;
|
|
199
|
-
|
|
200
|
-
classNames.push(clsx(typeof column.cellClassName === 'function' ? column.cellClassName(cellParams) : column.cellClassName));
|
|
201
|
-
}
|
|
202
|
-
const editCellState = editRowsState[rowId] ? editRowsState[rowId][column.field] : null;
|
|
203
|
-
let content;
|
|
204
|
-
if (editCellState == null && column.renderCell) {
|
|
205
|
-
content = column.renderCell(_extends({}, cellParams, {
|
|
206
|
-
api: apiRef.current
|
|
207
|
-
}));
|
|
208
|
-
// TODO move to GridCell
|
|
209
|
-
classNames.push(clsx(gridClasses['cell--withRenderer'], rootClasses?.['cell--withRenderer']));
|
|
210
|
-
}
|
|
211
|
-
if (editCellState != null && column.renderEditCell) {
|
|
212
|
-
const updatedRow = apiRef.current.getRowWithUpdatedValues(rowId, column.field);
|
|
213
|
-
|
|
214
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
215
|
-
const editCellStateRest = _objectWithoutPropertiesLoose(editCellState, _excluded2);
|
|
216
|
-
const params = _extends({}, cellParams, {
|
|
217
|
-
row: updatedRow
|
|
218
|
-
}, editCellStateRest, {
|
|
219
|
-
api: apiRef.current
|
|
220
|
-
});
|
|
221
|
-
content = column.renderEditCell(params);
|
|
222
|
-
// TODO move to GridCell
|
|
223
|
-
classNames.push(clsx(gridClasses['cell--editing'], rootClasses?.['cell--editing']));
|
|
224
|
-
}
|
|
225
|
-
if (getCellClassName) {
|
|
226
|
-
// TODO move to GridCell
|
|
227
|
-
classNames.push(getCellClassName(cellParams));
|
|
228
|
-
}
|
|
229
|
-
const hasFocus = focusedCell === column.field;
|
|
230
|
-
const tabIndex = tabbableCell === column.field ? 0 : -1;
|
|
231
|
-
const isSelected = apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
|
|
232
|
-
id: rowId,
|
|
233
|
-
field: column.field
|
|
234
|
-
});
|
|
191
|
+
const editCellState = editRowsState[rowId]?.[column.field] ?? null;
|
|
235
192
|
return /*#__PURE__*/_jsx(CellComponent, _extends({
|
|
236
|
-
|
|
237
|
-
field: column.field,
|
|
193
|
+
column: column,
|
|
238
194
|
width: cellProps.width,
|
|
239
195
|
rowId: rowId,
|
|
240
196
|
height: rowHeight,
|
|
241
197
|
showRightBorder: cellProps.showRightBorder,
|
|
242
|
-
formattedValue: cellParams.formattedValue,
|
|
243
198
|
align: column.align || 'left',
|
|
244
|
-
cellMode: cellParams.cellMode,
|
|
245
199
|
colIndex: cellProps.indexRelativeToAllColumns,
|
|
246
|
-
isEditable: cellParams.isEditable,
|
|
247
|
-
isSelected: isSelected,
|
|
248
|
-
hasFocus: hasFocus,
|
|
249
|
-
tabIndex: tabIndex,
|
|
250
|
-
className: clsx(classNames),
|
|
251
200
|
colSpan: cellProps.colSpan,
|
|
252
|
-
disableDragEvents: disableDragEvents
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
const sizes = apiRef.current.unstable_getRowInternalSizes(rowId);
|
|
201
|
+
disableDragEvents: disableDragEvents,
|
|
202
|
+
editCellState: editCellState
|
|
203
|
+
}, slotProps?.cell), column.field);
|
|
204
|
+
};
|
|
205
|
+
const sizes = useGridSelector(apiRef, () => _extends({}, apiRef.current.unstable_getRowInternalSizes(rowId)), objectShallowCompare);
|
|
258
206
|
let minHeight = rowHeight;
|
|
259
207
|
if (minHeight === 'auto' && sizes) {
|
|
260
208
|
let numberOfBaseSizes = 0;
|
|
@@ -303,7 +251,11 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
303
251
|
rowClassNames.push(rootProps.getRowClassName(rowParams));
|
|
304
252
|
}
|
|
305
253
|
const randomNumber = randomNumberBetween(10000, 20, 80);
|
|
306
|
-
const
|
|
254
|
+
const rowNode = apiRef.current.getRowNode(rowId);
|
|
255
|
+
if (!rowNode) {
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
const rowType = rowNode.type;
|
|
307
259
|
const cells = [];
|
|
308
260
|
for (let i = 0; i < renderedColumns.length; i += 1) {
|
|
309
261
|
const column = renderedColumns[i];
|
|
@@ -327,7 +279,7 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
327
279
|
width
|
|
328
280
|
} = cellColSpanInfo.cellProps;
|
|
329
281
|
const contentWidth = Math.round(randomNumber());
|
|
330
|
-
cells.push( /*#__PURE__*/_jsx(
|
|
282
|
+
cells.push( /*#__PURE__*/_jsx(slots.skeletonCell, {
|
|
331
283
|
width: width,
|
|
332
284
|
contentWidth: contentWidth,
|
|
333
285
|
field: column.field,
|
|
@@ -363,8 +315,8 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
|
|
|
363
315
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
364
316
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
365
317
|
// ----------------------------------------------------------------------
|
|
366
|
-
containerWidth: PropTypes.number,
|
|
367
|
-
firstColumnToRender: PropTypes.number,
|
|
318
|
+
containerWidth: PropTypes.number.isRequired,
|
|
319
|
+
firstColumnToRender: PropTypes.number.isRequired,
|
|
368
320
|
/**
|
|
369
321
|
* Determines which cell has focus.
|
|
370
322
|
* If `null`, no cell in this row has focus.
|
|
@@ -374,24 +326,25 @@ process.env.NODE_ENV !== "production" ? GridRow.propTypes = {
|
|
|
374
326
|
* Index of the row in the whole sorted and filtered dataset.
|
|
375
327
|
* If some rows above have expanded children, this index also take those children into account.
|
|
376
328
|
*/
|
|
377
|
-
index: PropTypes.number,
|
|
329
|
+
index: PropTypes.number.isRequired,
|
|
378
330
|
isLastVisible: PropTypes.bool,
|
|
379
|
-
lastColumnToRender: PropTypes.number,
|
|
331
|
+
lastColumnToRender: PropTypes.number.isRequired,
|
|
380
332
|
onClick: PropTypes.func,
|
|
381
333
|
onDoubleClick: PropTypes.func,
|
|
382
334
|
onMouseEnter: PropTypes.func,
|
|
383
335
|
onMouseLeave: PropTypes.func,
|
|
384
|
-
position: PropTypes.oneOf(['center', 'left', 'right']),
|
|
385
|
-
renderedColumns: PropTypes.arrayOf(PropTypes.object),
|
|
336
|
+
position: PropTypes.oneOf(['center', 'left', 'right']).isRequired,
|
|
337
|
+
renderedColumns: PropTypes.arrayOf(PropTypes.object).isRequired,
|
|
386
338
|
row: PropTypes.object,
|
|
387
|
-
rowHeight: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]),
|
|
388
|
-
rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
389
|
-
selected: PropTypes.bool,
|
|
339
|
+
rowHeight: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.number]).isRequired,
|
|
340
|
+
rowId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
341
|
+
selected: PropTypes.bool.isRequired,
|
|
390
342
|
/**
|
|
391
343
|
* Determines which cell should be tabbable by having tabIndex=0.
|
|
392
344
|
* If `null`, no cell in this row is in the tab sequence.
|
|
393
345
|
*/
|
|
394
346
|
tabbableCell: PropTypes.string,
|
|
395
|
-
visibleColumns: PropTypes.arrayOf(PropTypes.object)
|
|
347
|
+
visibleColumns: PropTypes.arrayOf(PropTypes.object).isRequired
|
|
396
348
|
} : void 0;
|
|
397
|
-
|
|
349
|
+
const MemoizedGridRow = fastMemo(GridRow);
|
|
350
|
+
export { MemoizedGridRow as GridRow };
|