@mui/x-data-grid 6.16.1 → 6.16.2
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 +104 -0
- package/DataGrid/DataGrid.d.ts +7 -0
- package/DataGrid/DataGrid.js +8 -1
- package/colDef/gridDateColDef.js +0 -4
- package/components/GridRow.js +7 -3
- package/components/cell/GridCell.js +7 -3
- package/components/containers/GridRootStyles.js +3 -0
- package/components/panel/filterPanel/GridFilterForm.d.ts +7 -0
- package/components/panel/filterPanel/GridFilterForm.js +8 -0
- package/components/panel/filterPanel/GridFilterPanel.d.ts +7 -0
- package/components/panel/filterPanel/GridFilterPanel.js +8 -0
- package/components/toolbar/GridToolbarQuickFilter.d.ts +8 -0
- package/components/toolbar/GridToolbarQuickFilter.js +9 -0
- package/components/virtualization/GridVirtualScroller.js +3 -1
- package/constants/gridClasses.d.ts +4 -0
- package/constants/gridClasses.js +1 -1
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.d.ts +4 -1
- package/hooks/features/columnGrouping/gridColumnGroupsUtils.js +13 -2
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +12 -6
- package/hooks/features/columns/gridColumnsUtils.js +0 -1
- package/hooks/features/filter/gridFilterUtils.js +4 -4
- package/hooks/features/virtualization/useGridVirtualScroller.js +8 -2
- package/index.js +1 -1
- package/legacy/DataGrid/DataGrid.js +8 -1
- package/legacy/colDef/gridDateColDef.js +0 -4
- package/legacy/components/GridRow.js +6 -2
- package/legacy/components/cell/GridCell.js +7 -3
- package/legacy/components/containers/GridRootStyles.js +2 -0
- package/legacy/components/panel/filterPanel/GridFilterForm.js +8 -0
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +8 -0
- package/legacy/components/toolbar/GridToolbarQuickFilter.js +9 -0
- package/legacy/components/virtualization/GridVirtualScroller.js +3 -1
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/hooks/features/columnGrouping/gridColumnGroupsUtils.js +13 -2
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +12 -6
- package/legacy/hooks/features/columns/gridColumnsUtils.js +0 -1
- package/legacy/hooks/features/filter/gridFilterUtils.js +4 -4
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +8 -2
- package/legacy/index.js +1 -1
- package/legacy/locales/arSD.js +26 -28
- package/legacy/locales/roRO.js +1 -1
- package/locales/arSD.js +26 -28
- package/locales/roRO.js +1 -1
- package/models/events/gridEventLookup.d.ts +14 -0
- package/models/props/DataGridProps.d.ts +1 -1
- package/modern/DataGrid/DataGrid.js +8 -1
- package/modern/colDef/gridDateColDef.js +0 -4
- package/modern/components/GridRow.js +7 -3
- package/modern/components/cell/GridCell.js +6 -2
- package/modern/components/containers/GridRootStyles.js +3 -0
- package/modern/components/panel/filterPanel/GridFilterForm.js +8 -0
- package/modern/components/panel/filterPanel/GridFilterPanel.js +8 -0
- package/modern/components/toolbar/GridToolbarQuickFilter.js +9 -0
- package/modern/components/virtualization/GridVirtualScroller.js +3 -1
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/columnGrouping/gridColumnGroupsUtils.js +13 -2
- package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +10 -3
- package/modern/hooks/features/columns/gridColumnsUtils.js +0 -1
- package/modern/hooks/features/filter/gridFilterUtils.js +4 -4
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +8 -2
- package/modern/index.js +1 -1
- package/modern/locales/arSD.js +26 -28
- package/modern/locales/roRO.js +1 -1
- package/node/DataGrid/DataGrid.js +8 -1
- package/node/colDef/gridDateColDef.js +0 -4
- package/node/components/GridRow.js +7 -3
- package/node/components/cell/GridCell.js +6 -2
- package/node/components/containers/GridRootStyles.js +3 -0
- package/node/components/panel/filterPanel/GridFilterForm.js +9 -1
- package/node/components/panel/filterPanel/GridFilterPanel.js +9 -1
- package/node/components/toolbar/GridToolbarQuickFilter.js +10 -1
- package/node/components/virtualization/GridVirtualScroller.js +3 -1
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/features/columnGrouping/gridColumnGroupsUtils.js +13 -2
- package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +10 -3
- package/node/hooks/features/columns/gridColumnsUtils.js +0 -1
- package/node/hooks/features/filter/gridFilterUtils.js +4 -4
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +8 -2
- package/node/index.js +1 -1
- package/node/locales/arSD.js +26 -28
- package/node/locales/roRO.js +1 -1
- package/package.json +1 -1
|
@@ -47,9 +47,10 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
|
47
47
|
showRightBorder = ownerState.showRightBorder,
|
|
48
48
|
isEditable = ownerState.isEditable,
|
|
49
49
|
isSelected = ownerState.isSelected,
|
|
50
|
+
isSelectionMode = ownerState.isSelectionMode,
|
|
50
51
|
classes = ownerState.classes;
|
|
51
52
|
var slots = {
|
|
52
|
-
root: ['cell', "cell--text".concat(capitalize(align)), isEditable && 'cell--editable', isSelected && 'selected', showRightBorder && 'cell--withRightBorder', 'withBorderColor'],
|
|
53
|
+
root: ['cell', "cell--text".concat(capitalize(align)), isEditable && 'cell--editable', isSelected && 'selected', showRightBorder && 'cell--withRightBorder', isSelectionMode && !isEditable && 'cell--selectionMode', 'withBorderColor'],
|
|
53
54
|
content: ['cellContent']
|
|
54
55
|
};
|
|
55
56
|
return composeClasses(slots, getDataGridUtilityClass, classes);
|
|
@@ -386,7 +387,7 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
|
|
|
386
387
|
} : void 0;
|
|
387
388
|
export { MemoizedCellWrapper as GridCellWrapper, GridCell };
|
|
388
389
|
var GridCellV7 = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
389
|
-
var _rootProps$experiment3, _rootProps$experiment4;
|
|
390
|
+
var _rootProps$unstable_c, _rootProps$experiment3, _rootProps$experiment4;
|
|
390
391
|
var column = props.column,
|
|
391
392
|
rowId = props.rowId,
|
|
392
393
|
editCellState = props.editCellState,
|
|
@@ -460,12 +461,15 @@ var GridCellV7 = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
460
461
|
var cellRef = React.useRef(null);
|
|
461
462
|
var handleRef = useForkRef(ref, cellRef);
|
|
462
463
|
var focusElementRef = React.useRef(null);
|
|
464
|
+
// @ts-expect-error To access `unstable_cellSelection` flag as it's a `premium` feature
|
|
465
|
+
var isSelectionMode = (_rootProps$unstable_c = rootProps.unstable_cellSelection) != null ? _rootProps$unstable_c : false;
|
|
463
466
|
var ownerState = {
|
|
464
467
|
align: align,
|
|
465
468
|
showRightBorder: showRightBorder,
|
|
466
469
|
isEditable: isEditable,
|
|
467
470
|
classes: rootProps.classes,
|
|
468
|
-
isSelected: isSelected
|
|
471
|
+
isSelected: isSelected,
|
|
472
|
+
isSelectionMode: isSelectionMode
|
|
469
473
|
};
|
|
470
474
|
var classes = useUtilityClasses(ownerState);
|
|
471
475
|
var publishMouseUp = React.useCallback(function (eventName) {
|
|
@@ -219,6 +219,8 @@ export var GridRootStyles = styled('div', {
|
|
|
219
219
|
}), _defineProperty(_extends2, "& .".concat(gridClasses.cellContent), {
|
|
220
220
|
overflow: 'hidden',
|
|
221
221
|
textOverflow: 'ellipsis'
|
|
222
|
+
}), _defineProperty(_extends2, "& .".concat(gridClasses.cell, ".").concat(gridClasses['cell--selectionMode']), {
|
|
223
|
+
cursor: 'default'
|
|
222
224
|
}), _defineProperty(_extends2, "& .".concat(gridClasses.cell, ".").concat(gridClasses['cell--editing']), {
|
|
223
225
|
padding: 1,
|
|
224
226
|
display: 'flex',
|
|
@@ -468,4 +468,12 @@ process.env.NODE_ENV !== "production" ? GridFilterForm.propTypes = {
|
|
|
468
468
|
*/
|
|
469
469
|
valueInputProps: PropTypes.any
|
|
470
470
|
} : void 0;
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* Demos:
|
|
474
|
+
* - [Filtering - overview](https://mui.com/x/react-data-grid/filtering/)
|
|
475
|
+
*
|
|
476
|
+
* API:
|
|
477
|
+
* - [GridFilterForm API](https://mui.com/x/api/data-grid/grid-filter-form/)
|
|
478
|
+
*/
|
|
471
479
|
export { GridFilterForm };
|
|
@@ -224,4 +224,12 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
|
|
|
224
224
|
*/
|
|
225
225
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
226
226
|
} : void 0;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Demos:
|
|
230
|
+
* - [Filtering - overview](https://mui.com/x/react-data-grid/filtering/)
|
|
231
|
+
*
|
|
232
|
+
* API:
|
|
233
|
+
* - [GridFilterPanel API](https://mui.com/x/api/data-grid/grid-filter-panel/)
|
|
234
|
+
*/
|
|
227
235
|
export { GridFilterPanel, getGridFilter };
|
|
@@ -149,4 +149,13 @@ process.env.NODE_ENV !== "production" ? GridToolbarQuickFilter.propTypes = {
|
|
|
149
149
|
*/
|
|
150
150
|
quickFilterParser: PropTypes.func
|
|
151
151
|
} : void 0;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Demos:
|
|
155
|
+
* - [Filtering - overview](https://mui.com/x/react-data-grid/filtering/)
|
|
156
|
+
* - [Filtering - quick filter](https://mui.com/x/react-data-grid/filtering/quick-filter/)
|
|
157
|
+
*
|
|
158
|
+
* API:
|
|
159
|
+
* - [GridToolbarQuickFilter API](https://mui.com/x/api/data-grid/grid-toolbar-quick-filter/)
|
|
160
|
+
*/
|
|
152
161
|
export { GridToolbarQuickFilter };
|
|
@@ -26,8 +26,10 @@ var VirtualScrollerRoot = styled('div', {
|
|
|
26
26
|
position: 'relative',
|
|
27
27
|
'@media print': {
|
|
28
28
|
overflow: 'hidden'
|
|
29
|
-
}
|
|
29
|
+
},
|
|
30
|
+
zIndex: 0 // See https://github.com/mui/mui-x/issues/10547
|
|
30
31
|
});
|
|
32
|
+
|
|
31
33
|
var GridVirtualScroller = /*#__PURE__*/React.forwardRef(function GridVirtualScroller(props, ref) {
|
|
32
34
|
var rootProps = useGridRootProps();
|
|
33
35
|
var classes = useUtilityClasses(rootProps);
|
|
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
|
|
|
2
2
|
export function getDataGridUtilityClass(slot) {
|
|
3
3
|
return generateUtilityClass('MuiDataGrid', slot);
|
|
4
4
|
}
|
|
5
|
-
export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
5
|
+
export var gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--selectionMode', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
@@ -33,7 +33,7 @@ export var unwrapGroupingColumnModel = function unwrapGroupingColumnModel(column
|
|
|
33
33
|
});
|
|
34
34
|
return unwrappedSubTree;
|
|
35
35
|
};
|
|
36
|
-
export var getColumnGroupsHeaderStructure = function getColumnGroupsHeaderStructure(orderedColumns, unwrappedGroupingModel) {
|
|
36
|
+
export var getColumnGroupsHeaderStructure = function getColumnGroupsHeaderStructure(orderedColumns, unwrappedGroupingModel, pinnedFields) {
|
|
37
37
|
var getParents = function getParents(field) {
|
|
38
38
|
var _unwrappedGroupingMod;
|
|
39
39
|
return (_unwrappedGroupingMod = unwrappedGroupingModel[field]) != null ? _unwrappedGroupingMod : [];
|
|
@@ -45,6 +45,15 @@ export var getColumnGroupsHeaderStructure = function getColumnGroupsHeaderStruct
|
|
|
45
45
|
var haveSameParents = function haveSameParents(field1, field2, depth) {
|
|
46
46
|
return isDeepEqual(getParents(field1).slice(0, depth + 1), getParents(field2).slice(0, depth + 1));
|
|
47
47
|
};
|
|
48
|
+
var haveDifferentContainers = function haveDifferentContainers(field1, field2) {
|
|
49
|
+
if (pinnedFields != null && pinnedFields.left && pinnedFields.left.includes(field1) && !pinnedFields.left.includes(field2)) {
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
if (pinnedFields != null && pinnedFields.right && !pinnedFields.right.includes(field1) && pinnedFields.right.includes(field2)) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
return false;
|
|
56
|
+
};
|
|
48
57
|
var _loop = function _loop(depth) {
|
|
49
58
|
var depthStructure = orderedColumns.reduce(function (structure, newField) {
|
|
50
59
|
var _getParents$depth;
|
|
@@ -58,7 +67,9 @@ export var getColumnGroupsHeaderStructure = function getColumnGroupsHeaderStruct
|
|
|
58
67
|
var lastGroup = structure[structure.length - 1];
|
|
59
68
|
var prevField = lastGroup.columnFields[lastGroup.columnFields.length - 1];
|
|
60
69
|
var prevGroupId = lastGroup.groupId;
|
|
61
|
-
if (prevGroupId !== groupId || !haveSameParents(prevField, newField, depth)
|
|
70
|
+
if (prevGroupId !== groupId || !haveSameParents(prevField, newField, depth) ||
|
|
71
|
+
// Fix for https://github.com/mui/mui-x/issues/7041
|
|
72
|
+
haveDifferentContainers(prevField, newField)) {
|
|
62
73
|
// It's a new group
|
|
63
74
|
return [].concat(_toConsumableArray(structure), [{
|
|
64
75
|
columnFields: [newField],
|
|
@@ -37,7 +37,7 @@ var createGroupLookup = function createGroupLookup(columnGroupingModel) {
|
|
|
37
37
|
return _extends({}, groupLookup);
|
|
38
38
|
};
|
|
39
39
|
export var columnGroupsStateInitializer = function columnGroupsStateInitializer(state, props, apiRef) {
|
|
40
|
-
var _props$experimentalFe, _props$columnGrouping, _props$columnGrouping2;
|
|
40
|
+
var _props$experimentalFe, _props$columnGrouping, _props$columnGrouping2, _apiRef$current$state;
|
|
41
41
|
if (!((_props$experimentalFe = props.experimentalFeatures) != null && _props$experimentalFe.columnGrouping)) {
|
|
42
42
|
return state;
|
|
43
43
|
}
|
|
@@ -45,7 +45,8 @@ export var columnGroupsStateInitializer = function columnGroupsStateInitializer(
|
|
|
45
45
|
var visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);
|
|
46
46
|
var groupLookup = createGroupLookup((_props$columnGrouping = props.columnGroupingModel) != null ? _props$columnGrouping : []);
|
|
47
47
|
var unwrappedGroupingModel = unwrapGroupingColumnModel((_props$columnGrouping2 = props.columnGroupingModel) != null ? _props$columnGrouping2 : []);
|
|
48
|
-
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel
|
|
48
|
+
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, // @ts-expect-error Move this part to `Pro` package
|
|
49
|
+
(_apiRef$current$state = apiRef.current.state.pinnedColumns) != null ? _apiRef$current$state : {});
|
|
49
50
|
var maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max.apply(Math, _toConsumableArray(visibleColumnFields.map(function (field) {
|
|
50
51
|
var _unwrappedGroupingMod, _unwrappedGroupingMod2;
|
|
51
52
|
return (_unwrappedGroupingMod = (_unwrappedGroupingMod2 = unwrappedGroupingModel[field]) == null ? void 0 : _unwrappedGroupingMod2.length) != null ? _unwrappedGroupingMod : 0;
|
|
@@ -87,9 +88,12 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
|
|
|
87
88
|
var _props$columnGrouping3;
|
|
88
89
|
var unwrappedGroupingModel = unwrapGroupingColumnModel((_props$columnGrouping3 = props.columnGroupingModel) != null ? _props$columnGrouping3 : []);
|
|
89
90
|
apiRef.current.setState(function (state) {
|
|
90
|
-
var _state$columns$ordere, _state$columns;
|
|
91
|
+
var _state$columns$ordere, _state$columns, _state$pinnedColumns;
|
|
91
92
|
var orderedFields = (_state$columns$ordere = (_state$columns = state.columns) == null ? void 0 : _state$columns.orderedFields) != null ? _state$columns$ordere : [];
|
|
92
|
-
|
|
93
|
+
|
|
94
|
+
// @ts-expect-error Move this logic to `Pro` package
|
|
95
|
+
var pinnedColumns = (_state$pinnedColumns = state.pinnedColumns) != null ? _state$pinnedColumns : {};
|
|
96
|
+
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(orderedFields, unwrappedGroupingModel, pinnedColumns);
|
|
93
97
|
return _extends({}, state, {
|
|
94
98
|
columnGrouping: _extends({}, state.columnGrouping, {
|
|
95
99
|
headerStructure: columnGroupsHeaderStructure
|
|
@@ -98,15 +102,17 @@ export var useGridColumnGrouping = function useGridColumnGrouping(apiRef, props)
|
|
|
98
102
|
});
|
|
99
103
|
}, [apiRef, props.columnGroupingModel]);
|
|
100
104
|
var updateColumnGroupingState = React.useCallback(function (columnGroupingModel) {
|
|
101
|
-
var _props$experimentalFe2;
|
|
105
|
+
var _props$experimentalFe2, _apiRef$current$getPi, _apiRef$current$getPi2, _apiRef$current;
|
|
102
106
|
if (!((_props$experimentalFe2 = props.experimentalFeatures) != null && _props$experimentalFe2.columnGrouping)) {
|
|
103
107
|
return;
|
|
104
108
|
}
|
|
109
|
+
// @ts-expect-error Move this logic to `Pro` package
|
|
110
|
+
var pinnedColumns = (_apiRef$current$getPi = (_apiRef$current$getPi2 = (_apiRef$current = apiRef.current).getPinnedColumns) == null ? void 0 : _apiRef$current$getPi2.call(_apiRef$current)) != null ? _apiRef$current$getPi : {};
|
|
105
111
|
var columnFields = gridColumnFieldsSelector(apiRef);
|
|
106
112
|
var visibleColumnFields = gridVisibleColumnFieldsSelector(apiRef);
|
|
107
113
|
var groupLookup = createGroupLookup(columnGroupingModel != null ? columnGroupingModel : []);
|
|
108
114
|
var unwrappedGroupingModel = unwrapGroupingColumnModel(columnGroupingModel != null ? columnGroupingModel : []);
|
|
109
|
-
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel);
|
|
115
|
+
var columnGroupsHeaderStructure = getColumnGroupsHeaderStructure(columnFields, unwrappedGroupingModel, pinnedColumns);
|
|
110
116
|
var maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max.apply(Math, _toConsumableArray(visibleColumnFields.map(function (field) {
|
|
111
117
|
var _unwrappedGroupingMod4, _unwrappedGroupingMod5;
|
|
112
118
|
return (_unwrappedGroupingMod4 = (_unwrappedGroupingMod5 = unwrappedGroupingModel[field]) == null ? void 0 : _unwrappedGroupingMod5.length) != null ? _unwrappedGroupingMod4 : 0;
|
|
@@ -54,7 +54,6 @@ export function computeFlexColumnsWidth(_ref) {
|
|
|
54
54
|
for (var i = 0; i < flexColumns.length; i += 1) {
|
|
55
55
|
var column = flexColumns[i];
|
|
56
56
|
if (flexColumnsLookup.all[column.field] && flexColumnsLookup.all[column.field].frozen === true) {
|
|
57
|
-
// eslint-disable-next-line no-continue
|
|
58
57
|
continue;
|
|
59
58
|
}
|
|
60
59
|
|
|
@@ -177,14 +177,14 @@ export var buildAggregatedFilterItemsApplier = function buildAggregatedFilterIte
|
|
|
177
177
|
|
|
178
178
|
// We generate a new function with `eval()` to avoid expensive patterns for JS engines
|
|
179
179
|
// such as a dynamic object assignment, e.g. `{ [dynamicKey]: value }`.
|
|
180
|
-
var filterItemTemplate = "(function filterItem$$(appliers, row, shouldApplyFilter) {\n ".concat(appliers.map(function (applier, i) {
|
|
180
|
+
var filterItemTemplate = "(function filterItem$$(getRowId, appliers, row, shouldApplyFilter) {\n ".concat(appliers.map(function (applier, i) {
|
|
181
181
|
return "const shouldApply".concat(i, " = !shouldApplyFilter || shouldApplyFilter(").concat(JSON.stringify(applier.item.field), ");");
|
|
182
182
|
}).join('\n'), "\n\n const result$$ = {\n ").concat(appliers.map(function (applier, i) {
|
|
183
183
|
return "".concat(JSON.stringify(String(applier.item.id)), ":\n !shouldApply").concat(i, " ?\n false :\n ").concat(applier.v7 ? "appliers[".concat(i, "].fn(row)") : "appliers[".concat(i, "].fn(").concat(getRowId ? 'getRowId(row)' : 'row.id', ")"), ",\n ");
|
|
184
184
|
}).join('\n'), "};\n\n return result$$;\n })");
|
|
185
185
|
var filterItemCore = evalCode(filterItemTemplate.replaceAll('$$', String(filterItemsApplierId)));
|
|
186
186
|
var filterItem = function filterItem(row, shouldApplyItem) {
|
|
187
|
-
return filterItemCore(appliers, row, shouldApplyItem);
|
|
187
|
+
return filterItemCore(getRowId, appliers, row, shouldApplyItem);
|
|
188
188
|
};
|
|
189
189
|
filterItemsApplierId += 1;
|
|
190
190
|
return filterItem;
|
|
@@ -238,7 +238,7 @@ export var buildAggregatedQuickFilterApplier = function buildAggregatedQuickFilt
|
|
|
238
238
|
var result = {};
|
|
239
239
|
var usedCellParams = {};
|
|
240
240
|
|
|
241
|
-
/* eslint-disable no-restricted-syntax, no-labels
|
|
241
|
+
/* eslint-disable no-restricted-syntax, no-labels */
|
|
242
242
|
outer: for (var v = 0; v < quickFilterValues.length; v += 1) {
|
|
243
243
|
var filterValue = quickFilterValues[v];
|
|
244
244
|
for (var i = 0; i < appliersPerField.length; i += 1) {
|
|
@@ -273,7 +273,7 @@ export var buildAggregatedQuickFilterApplier = function buildAggregatedQuickFilt
|
|
|
273
273
|
}
|
|
274
274
|
result[filterValue] = false;
|
|
275
275
|
}
|
|
276
|
-
/* eslint-enable no-restricted-syntax, no-labels
|
|
276
|
+
/* eslint-enable no-restricted-syntax, no-labels */
|
|
277
277
|
|
|
278
278
|
return result;
|
|
279
279
|
};
|
|
@@ -376,11 +376,17 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
376
376
|
}
|
|
377
377
|
return -1;
|
|
378
378
|
}, [cellFocus, currentPage.rows]);
|
|
379
|
-
useGridApiEventHandler(apiRef, '
|
|
379
|
+
useGridApiEventHandler(apiRef, 'rowMouseOver', function (params, event) {
|
|
380
380
|
var _params$id;
|
|
381
|
+
if (event.currentTarget.contains(event.relatedTarget)) {
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
381
384
|
setHoveredRowId((_params$id = params.id) != null ? _params$id : null);
|
|
382
385
|
});
|
|
383
|
-
useGridApiEventHandler(apiRef, '
|
|
386
|
+
useGridApiEventHandler(apiRef, 'rowMouseOut', function (params, event) {
|
|
387
|
+
if (event.currentTarget.contains(event.relatedTarget)) {
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
384
390
|
setHoveredRowId(null);
|
|
385
391
|
});
|
|
386
392
|
var getRows = function getRows() {
|
package/legacy/index.js
CHANGED
package/legacy/locales/arSD.js
CHANGED
|
@@ -39,7 +39,7 @@ var arSDGrid = {
|
|
|
39
39
|
columnsPanelHideAllButton: 'إخفاء الكل',
|
|
40
40
|
// Filter panel text
|
|
41
41
|
filterPanelAddFilter: 'إضافة مرشِح',
|
|
42
|
-
|
|
42
|
+
filterPanelRemoveAll: 'حذف الكل',
|
|
43
43
|
filterPanelDeleteIconLabel: 'حذف',
|
|
44
44
|
filterPanelLogicOperator: 'عامل منطقي',
|
|
45
45
|
filterPanelOperator: 'عامل',
|
|
@@ -62,34 +62,32 @@ var arSDGrid = {
|
|
|
62
62
|
filterOperatorIsEmpty: 'خالي',
|
|
63
63
|
filterOperatorIsNotEmpty: 'غير خالي',
|
|
64
64
|
filterOperatorIsAnyOf: 'أي من',
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
'filterOperator=': '=',
|
|
66
|
+
'filterOperator!=': '!=',
|
|
67
|
+
'filterOperator>': '>',
|
|
68
|
+
'filterOperator>=': '>=',
|
|
69
|
+
'filterOperator<': '<',
|
|
70
|
+
'filterOperator<=': '<=',
|
|
72
71
|
// Header filter operators text
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
72
|
+
headerFilterOperatorContains: 'يحتوي على',
|
|
73
|
+
headerFilterOperatorEquals: 'يساوي',
|
|
74
|
+
headerFilterOperatorStartsWith: 'يبدأ ب',
|
|
75
|
+
headerFilterOperatorEndsWith: 'ينتهي ب',
|
|
76
|
+
headerFilterOperatorIs: 'هو',
|
|
77
|
+
headerFilterOperatorNot: 'هو ليس',
|
|
78
|
+
headerFilterOperatorAfter: 'يقع بعد',
|
|
79
|
+
headerFilterOperatorOnOrAfter: 'هو على او بعد',
|
|
80
|
+
headerFilterOperatorBefore: 'يقع قبل',
|
|
81
|
+
headerFilterOperatorOnOrBefore: 'هو على او بعد',
|
|
82
|
+
headerFilterOperatorIsEmpty: 'هو فارغ',
|
|
83
|
+
headerFilterOperatorIsNotEmpty: 'هو ليس فارغ',
|
|
84
|
+
headerFilterOperatorIsAnyOf: 'هو أي من',
|
|
85
|
+
'headerFilterOperator=': 'يساوي',
|
|
86
|
+
'headerFilterOperator!=': 'لا يساوي',
|
|
87
|
+
'headerFilterOperator>': 'أكبر من',
|
|
88
|
+
'headerFilterOperator>=': 'أكبر من او يساوي',
|
|
89
|
+
'headerFilterOperator<': 'اصغر من',
|
|
90
|
+
'headerFilterOperator<=': 'اصغر من او يساوي',
|
|
93
91
|
// Filter values text
|
|
94
92
|
filterValueAny: 'أي',
|
|
95
93
|
filterValueTrue: 'صائب',
|
package/legacy/locales/roRO.js
CHANGED
|
@@ -76,7 +76,7 @@ var roROGrid = {
|
|
|
76
76
|
headerFilterOperatorIs: 'Este',
|
|
77
77
|
headerFilterOperatorNot: 'Nu este',
|
|
78
78
|
headerFilterOperatorAfter: 'Este după',
|
|
79
|
-
headerFilterOperatorOnOrAfter: 'Este la sau
|
|
79
|
+
headerFilterOperatorOnOrAfter: 'Este la sau după',
|
|
80
80
|
headerFilterOperatorBefore: 'Este înainte de',
|
|
81
81
|
headerFilterOperatorOnOrBefore: 'este la sau înainte de',
|
|
82
82
|
headerFilterOperatorIsEmpty: 'Este gol',
|
package/locales/arSD.js
CHANGED
|
@@ -37,7 +37,7 @@ const arSDGrid = {
|
|
|
37
37
|
columnsPanelHideAllButton: 'إخفاء الكل',
|
|
38
38
|
// Filter panel text
|
|
39
39
|
filterPanelAddFilter: 'إضافة مرشِح',
|
|
40
|
-
|
|
40
|
+
filterPanelRemoveAll: 'حذف الكل',
|
|
41
41
|
filterPanelDeleteIconLabel: 'حذف',
|
|
42
42
|
filterPanelLogicOperator: 'عامل منطقي',
|
|
43
43
|
filterPanelOperator: 'عامل',
|
|
@@ -60,34 +60,32 @@ const arSDGrid = {
|
|
|
60
60
|
filterOperatorIsEmpty: 'خالي',
|
|
61
61
|
filterOperatorIsNotEmpty: 'غير خالي',
|
|
62
62
|
filterOperatorIsAnyOf: 'أي من',
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
'filterOperator=': '=',
|
|
64
|
+
'filterOperator!=': '!=',
|
|
65
|
+
'filterOperator>': '>',
|
|
66
|
+
'filterOperator>=': '>=',
|
|
67
|
+
'filterOperator<': '<',
|
|
68
|
+
'filterOperator<=': '<=',
|
|
70
69
|
// Header filter operators text
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
70
|
+
headerFilterOperatorContains: 'يحتوي على',
|
|
71
|
+
headerFilterOperatorEquals: 'يساوي',
|
|
72
|
+
headerFilterOperatorStartsWith: 'يبدأ ب',
|
|
73
|
+
headerFilterOperatorEndsWith: 'ينتهي ب',
|
|
74
|
+
headerFilterOperatorIs: 'هو',
|
|
75
|
+
headerFilterOperatorNot: 'هو ليس',
|
|
76
|
+
headerFilterOperatorAfter: 'يقع بعد',
|
|
77
|
+
headerFilterOperatorOnOrAfter: 'هو على او بعد',
|
|
78
|
+
headerFilterOperatorBefore: 'يقع قبل',
|
|
79
|
+
headerFilterOperatorOnOrBefore: 'هو على او بعد',
|
|
80
|
+
headerFilterOperatorIsEmpty: 'هو فارغ',
|
|
81
|
+
headerFilterOperatorIsNotEmpty: 'هو ليس فارغ',
|
|
82
|
+
headerFilterOperatorIsAnyOf: 'هو أي من',
|
|
83
|
+
'headerFilterOperator=': 'يساوي',
|
|
84
|
+
'headerFilterOperator!=': 'لا يساوي',
|
|
85
|
+
'headerFilterOperator>': 'أكبر من',
|
|
86
|
+
'headerFilterOperator>=': 'أكبر من او يساوي',
|
|
87
|
+
'headerFilterOperator<': 'اصغر من',
|
|
88
|
+
'headerFilterOperator<=': 'اصغر من او يساوي',
|
|
91
89
|
// Filter values text
|
|
92
90
|
filterValueAny: 'أي',
|
|
93
91
|
filterValueTrue: 'صائب',
|
package/locales/roRO.js
CHANGED
|
@@ -74,7 +74,7 @@ const roROGrid = {
|
|
|
74
74
|
headerFilterOperatorIs: 'Este',
|
|
75
75
|
headerFilterOperatorNot: 'Nu este',
|
|
76
76
|
headerFilterOperatorAfter: 'Este după',
|
|
77
|
-
headerFilterOperatorOnOrAfter: 'Este la sau
|
|
77
|
+
headerFilterOperatorOnOrAfter: 'Este la sau după',
|
|
78
78
|
headerFilterOperatorBefore: 'Este înainte de',
|
|
79
79
|
headerFilterOperatorOnOrBefore: 'este la sau înainte de',
|
|
80
80
|
headerFilterOperatorIsEmpty: 'Este gol',
|
|
@@ -43,6 +43,20 @@ export interface GridRowEventLookup {
|
|
|
43
43
|
params: GridRowParams;
|
|
44
44
|
event: React.MouseEvent<HTMLElement>;
|
|
45
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* @ignore - do not document.
|
|
48
|
+
*/
|
|
49
|
+
rowMouseOut: {
|
|
50
|
+
params: GridRowParams;
|
|
51
|
+
event: React.MouseEvent<HTMLElement>;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* @ignore - do not document.
|
|
55
|
+
*/
|
|
56
|
+
rowMouseOver: {
|
|
57
|
+
params: GridRowParams;
|
|
58
|
+
event: React.MouseEvent<HTMLElement>;
|
|
59
|
+
};
|
|
46
60
|
/**
|
|
47
61
|
* Fired when the user starts dragging a row. It's mapped to the `dragstart` DOM event.
|
|
48
62
|
* @ignore - do not document.
|
|
@@ -329,7 +329,7 @@ export interface DataGridPropsWithDefaultValues {
|
|
|
329
329
|
/**
|
|
330
330
|
* If `true`, the grid will not use `valueFormatter` when exporting to CSV or copying to clipboard.
|
|
331
331
|
* If an object is provided, you can choose to ignore the `valueFormatter` for CSV export or clipboard export.
|
|
332
|
-
* @default
|
|
332
|
+
* @default false
|
|
333
333
|
*/
|
|
334
334
|
unstable_ignoreValueFormatterDuringExport: boolean | {
|
|
335
335
|
csvExport?: boolean;
|
|
@@ -27,6 +27,13 @@ const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref
|
|
|
27
27
|
}))
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
|
+
/**
|
|
31
|
+
* Demos:
|
|
32
|
+
* - [DataGrid](https://mui.com/x/react-data-grid/demo/)
|
|
33
|
+
*
|
|
34
|
+
* API:
|
|
35
|
+
* - [DataGrid API](https://mui.com/x/api/data-grid/data-grid/)
|
|
36
|
+
*/
|
|
30
37
|
export const DataGrid = /*#__PURE__*/React.memo(DataGridRaw);
|
|
31
38
|
|
|
32
39
|
/**
|
|
@@ -660,7 +667,7 @@ DataGridRaw.propTypes = {
|
|
|
660
667
|
/**
|
|
661
668
|
* If `true`, the grid will not use `valueFormatter` when exporting to CSV or copying to clipboard.
|
|
662
669
|
* If an object is provided, you can choose to ignore the `valueFormatter` for CSV export or clipboard export.
|
|
663
|
-
* @default
|
|
670
|
+
* @default false
|
|
664
671
|
*/
|
|
665
672
|
unstable_ignoreValueFormatterDuringExport: PropTypes.oneOfType([PropTypes.shape({
|
|
666
673
|
clipboardExport: PropTypes.bool,
|
|
@@ -51,8 +51,6 @@ export const GRID_DATE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
51
51
|
valueFormatter: gridDateFormatter,
|
|
52
52
|
filterOperators: getGridDateOperators(),
|
|
53
53
|
renderEditCell: renderEditDateCell,
|
|
54
|
-
getApplyQuickFilterFn: undefined,
|
|
55
|
-
getApplyQuickFilterFnV7: undefined,
|
|
56
54
|
// @ts-ignore
|
|
57
55
|
pastedValueParser: value => new Date(value)
|
|
58
56
|
});
|
|
@@ -62,8 +60,6 @@ export const GRID_DATETIME_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
|
|
|
62
60
|
valueFormatter: gridDateTimeFormatter,
|
|
63
61
|
filterOperators: getGridDateOperators(true),
|
|
64
62
|
renderEditCell: renderEditDateCell,
|
|
65
|
-
getApplyQuickFilterFn: undefined,
|
|
66
|
-
getApplyQuickFilterFnV7: undefined,
|
|
67
63
|
// @ts-ignore
|
|
68
64
|
pastedValueParser: value => new Date(value)
|
|
69
65
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["selected", "hovered", "rowId", "row", "index", "style", "position", "rowHeight", "className", "visibleColumns", "renderedColumns", "containerWidth", "firstColumnToRender", "lastColumnToRender", "isLastVisible", "focusedCellColumnIndexNotInRange", "isNotVisible", "focusedCell", "tabbableCell", "onClick", "onDoubleClick", "onMouseEnter", "onMouseLeave"];
|
|
3
|
+
const _excluded = ["selected", "hovered", "rowId", "row", "index", "style", "position", "rowHeight", "className", "visibleColumns", "renderedColumns", "containerWidth", "firstColumnToRender", "lastColumnToRender", "isLastVisible", "focusedCellColumnIndexNotInRange", "isNotVisible", "focusedCell", "tabbableCell", "onClick", "onDoubleClick", "onMouseEnter", "onMouseLeave", "onMouseOut", "onMouseOver"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import clsx from 'clsx';
|
|
@@ -76,7 +76,9 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
76
76
|
onClick,
|
|
77
77
|
onDoubleClick,
|
|
78
78
|
onMouseEnter,
|
|
79
|
-
onMouseLeave
|
|
79
|
+
onMouseLeave,
|
|
80
|
+
onMouseOut,
|
|
81
|
+
onMouseOver
|
|
80
82
|
} = props,
|
|
81
83
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
82
84
|
const apiRef = useGridApiContext();
|
|
@@ -321,7 +323,9 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
|
|
|
321
323
|
onClick: publishClick,
|
|
322
324
|
onDoubleClick: publish('rowDoubleClick', onDoubleClick),
|
|
323
325
|
onMouseEnter: publish('rowMouseEnter', onMouseEnter),
|
|
324
|
-
onMouseLeave: publish('rowMouseLeave', onMouseLeave)
|
|
326
|
+
onMouseLeave: publish('rowMouseLeave', onMouseLeave),
|
|
327
|
+
onMouseOut: publish('rowMouseOut', onMouseOut),
|
|
328
|
+
onMouseOver: publish('rowMouseOver', onMouseOver)
|
|
325
329
|
} : null;
|
|
326
330
|
return /*#__PURE__*/_jsxs("div", _extends({
|
|
327
331
|
ref: handleRef,
|
|
@@ -48,10 +48,11 @@ const useUtilityClasses = ownerState => {
|
|
|
48
48
|
showRightBorder,
|
|
49
49
|
isEditable,
|
|
50
50
|
isSelected,
|
|
51
|
+
isSelectionMode,
|
|
51
52
|
classes
|
|
52
53
|
} = ownerState;
|
|
53
54
|
const slots = {
|
|
54
|
-
root: ['cell', `cell--text${capitalize(align)}`, isEditable && 'cell--editable', isSelected && 'selected', showRightBorder && 'cell--withRightBorder', 'withBorderColor'],
|
|
55
|
+
root: ['cell', `cell--text${capitalize(align)}`, isEditable && 'cell--editable', isSelected && 'selected', showRightBorder && 'cell--withRightBorder', isSelectionMode && !isEditable && 'cell--selectionMode', 'withBorderColor'],
|
|
55
56
|
content: ['cellContent']
|
|
56
57
|
};
|
|
57
58
|
return composeClasses(slots, getDataGridUtilityClass, classes);
|
|
@@ -458,12 +459,15 @@ const GridCellV7 = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
458
459
|
const cellRef = React.useRef(null);
|
|
459
460
|
const handleRef = useForkRef(ref, cellRef);
|
|
460
461
|
const focusElementRef = React.useRef(null);
|
|
462
|
+
// @ts-expect-error To access `unstable_cellSelection` flag as it's a `premium` feature
|
|
463
|
+
const isSelectionMode = rootProps.unstable_cellSelection ?? false;
|
|
461
464
|
const ownerState = {
|
|
462
465
|
align,
|
|
463
466
|
showRightBorder,
|
|
464
467
|
isEditable,
|
|
465
468
|
classes: rootProps.classes,
|
|
466
|
-
isSelected
|
|
469
|
+
isSelected,
|
|
470
|
+
isSelectionMode
|
|
467
471
|
};
|
|
468
472
|
const classes = useUtilityClasses(ownerState);
|
|
469
473
|
const publishMouseUp = React.useCallback(eventName => event => {
|
|
@@ -395,6 +395,9 @@ export const GridRootStyles = styled('div', {
|
|
|
395
395
|
overflow: 'hidden',
|
|
396
396
|
textOverflow: 'ellipsis'
|
|
397
397
|
},
|
|
398
|
+
[`& .${gridClasses.cell}.${gridClasses['cell--selectionMode']}`]: {
|
|
399
|
+
cursor: 'default'
|
|
400
|
+
},
|
|
398
401
|
[`& .${gridClasses.cell}.${gridClasses['cell--editing']}`]: {
|
|
399
402
|
padding: 1,
|
|
400
403
|
display: 'flex',
|
|
@@ -428,4 +428,12 @@ process.env.NODE_ENV !== "production" ? GridFilterForm.propTypes = {
|
|
|
428
428
|
*/
|
|
429
429
|
valueInputProps: PropTypes.any
|
|
430
430
|
} : void 0;
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
* Demos:
|
|
434
|
+
* - [Filtering - overview](https://mui.com/x/react-data-grid/filtering/)
|
|
435
|
+
*
|
|
436
|
+
* API:
|
|
437
|
+
* - [GridFilterForm API](https://mui.com/x/api/data-grid/grid-filter-form/)
|
|
438
|
+
*/
|
|
431
439
|
export { GridFilterForm };
|
|
@@ -211,4 +211,12 @@ process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
|
|
|
211
211
|
*/
|
|
212
212
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
213
213
|
} : void 0;
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Demos:
|
|
217
|
+
* - [Filtering - overview](https://mui.com/x/react-data-grid/filtering/)
|
|
218
|
+
*
|
|
219
|
+
* API:
|
|
220
|
+
* - [GridFilterPanel API](https://mui.com/x/api/data-grid/grid-filter-panel/)
|
|
221
|
+
*/
|
|
214
222
|
export { GridFilterPanel, getGridFilter };
|