@mui/x-data-grid 7.22.1 → 8.0.0-alpha.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 +143 -92
- package/README.md +2 -2
- package/colDef/gridBooleanOperators.js +4 -6
- package/components/GridDetailPanels.js +0 -1
- package/components/GridPinnedRows.js +0 -1
- package/components/GridRow.d.ts +2 -2
- package/components/GridRow.js +3 -28
- package/components/base/GridOverlays.js +10 -8
- package/components/cell/GridActionsCell.js +1 -2
- package/components/cell/GridActionsCellItem.js +1 -2
- package/components/cell/GridCell.d.ts +41 -3
- package/components/cell/GridCell.js +1 -9
- package/components/cell/GridEditInputCell.js +0 -67
- package/components/containers/GridRootStyles.js +1 -0
- package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +3 -4
- package/components/panel/GridPanel.d.ts +1 -1
- package/components/panel/filterPanel/GridFilterInputBoolean.d.ts +1 -0
- package/components/panel/filterPanel/GridFilterInputBoolean.js +14 -5
- package/components/toolbar/GridToolbar.d.ts +2 -2
- package/components/toolbar/GridToolbar.js +12 -4
- package/components/toolbar/GridToolbarColumnsButton.js +1 -1
- package/components/toolbar/GridToolbarDensitySelector.js +2 -4
- package/components/toolbar/GridToolbarExport.d.ts +2 -2
- package/components/toolbar/GridToolbarExport.js +9 -6
- package/components/toolbar/GridToolbarExportContainer.js +1 -2
- package/components/toolbar/index.d.ts +1 -1
- package/components/virtualization/GridVirtualScrollbar.js +6 -0
- package/hooks/features/columnResize/useGridColumnResize.js +4 -2
- package/hooks/features/editing/useGridCellEditing.js +23 -4
- package/hooks/features/editing/useGridRowEditing.js +23 -2
- package/hooks/features/export/useGridCsvExport.js +1 -1
- package/hooks/features/export/useGridPrintExport.js +1 -1
- package/hooks/features/pagination/useGridPaginationModel.js +2 -2
- package/hooks/features/rowSelection/useGridRowSelection.d.ts +1 -1
- package/hooks/features/rowSelection/useGridRowSelection.js +30 -16
- package/hooks/features/rows/gridRowsUtils.d.ts +1 -1
- package/hooks/features/rows/gridRowsUtils.js +1 -5
- package/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
- package/hooks/utils/useGridSelector.d.ts +3 -2
- package/hooks/utils/useGridSelector.js +27 -2
- package/index.d.ts +0 -1
- package/index.js +1 -1
- package/locales/plPL.js +25 -28
- package/locales/trTR.js +2 -2
- package/material/index.js +4 -0
- package/models/gridSlotsComponent.d.ts +10 -0
- package/models/gridSlotsComponentsProps.d.ts +8 -0
- package/models/props/DataGridProps.d.ts +1 -1
- package/modern/colDef/gridBooleanOperators.js +4 -6
- package/modern/components/GridDetailPanels.js +0 -1
- package/modern/components/GridPinnedRows.js +0 -1
- package/modern/components/GridRow.js +3 -28
- package/modern/components/base/GridOverlays.js +10 -8
- package/modern/components/cell/GridActionsCell.js +1 -2
- package/modern/components/cell/GridActionsCellItem.js +1 -2
- package/modern/components/cell/GridCell.js +1 -9
- package/modern/components/cell/GridEditInputCell.js +0 -67
- package/modern/components/containers/GridRootStyles.js +1 -0
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +3 -4
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +14 -5
- package/modern/components/toolbar/GridToolbar.js +12 -4
- package/modern/components/toolbar/GridToolbarColumnsButton.js +1 -1
- package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -4
- package/modern/components/toolbar/GridToolbarExport.js +9 -6
- package/modern/components/toolbar/GridToolbarExportContainer.js +1 -2
- package/modern/components/virtualization/GridVirtualScrollbar.js +6 -0
- package/modern/hooks/features/columnResize/useGridColumnResize.js +4 -2
- package/modern/hooks/features/editing/useGridCellEditing.js +23 -4
- package/modern/hooks/features/editing/useGridRowEditing.js +23 -2
- package/modern/hooks/features/export/useGridCsvExport.js +1 -1
- package/modern/hooks/features/export/useGridPrintExport.js +1 -1
- package/modern/hooks/features/pagination/useGridPaginationModel.js +2 -2
- package/modern/hooks/features/rowSelection/useGridRowSelection.js +30 -16
- package/modern/hooks/features/rows/gridRowsUtils.js +1 -5
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
- package/modern/hooks/utils/useGridSelector.js +27 -2
- package/modern/index.js +1 -1
- package/modern/locales/plPL.js +25 -28
- package/modern/locales/trTR.js +2 -2
- package/modern/material/index.js +4 -0
- package/modern/utils/createSelector.js +11 -1
- package/modern/utils/utils.js +1 -3
- package/node/colDef/gridBooleanOperators.js +3 -5
- package/node/components/GridDetailPanels.js +0 -1
- package/node/components/GridPinnedRows.js +0 -1
- package/node/components/GridRow.js +3 -28
- package/node/components/base/GridOverlays.js +10 -8
- package/node/components/cell/GridActionsCell.js +1 -2
- package/node/components/cell/GridActionsCellItem.js +1 -2
- package/node/components/cell/GridCell.js +1 -9
- package/node/components/cell/GridEditInputCell.js +0 -67
- package/node/components/containers/GridRootStyles.js +1 -0
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +1 -2
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +1 -2
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +1 -2
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +3 -4
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +16 -5
- package/node/components/toolbar/GridToolbar.js +12 -4
- package/node/components/toolbar/GridToolbarColumnsButton.js +3 -3
- package/node/components/toolbar/GridToolbarDensitySelector.js +2 -4
- package/node/components/toolbar/GridToolbarExport.js +9 -6
- package/node/components/toolbar/GridToolbarExportContainer.js +1 -2
- package/node/components/virtualization/GridVirtualScrollbar.js +6 -0
- package/node/hooks/features/columnResize/useGridColumnResize.js +4 -2
- package/node/hooks/features/editing/useGridCellEditing.js +23 -4
- package/node/hooks/features/editing/useGridRowEditing.js +23 -2
- package/node/hooks/features/export/useGridCsvExport.js +2 -2
- package/node/hooks/features/export/useGridPrintExport.js +2 -2
- package/node/hooks/features/pagination/useGridPaginationModel.js +2 -2
- package/node/hooks/features/rowSelection/useGridRowSelection.js +29 -15
- package/node/hooks/features/rows/gridRowsUtils.js +2 -8
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +4 -4
- package/node/hooks/utils/useGridSelector.js +29 -3
- package/node/index.js +1 -1
- package/node/locales/plPL.js +25 -28
- package/node/locales/trTR.js +2 -2
- package/node/material/index.js +4 -0
- package/node/utils/createSelector.js +11 -1
- package/node/utils/utils.js +1 -3
- package/package.json +3 -3
- package/utils/createSelector.d.ts +1 -1
- package/utils/createSelector.js +11 -1
- package/utils/utils.js +1 -3
|
@@ -12,29 +12,31 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
12
12
|
var _system = require("@mui/system");
|
|
13
13
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
14
14
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
15
|
+
var _gridRowsUtils = require("../../hooks/features/rows/gridRowsUtils");
|
|
15
16
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
16
17
|
var _dimensions = require("../../hooks/features/dimensions");
|
|
17
18
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
18
19
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
19
|
-
var _useGridVisibleRows = require("../../hooks/utils/useGridVisibleRows");
|
|
20
|
-
var _gridRowsUtils = require("../../hooks/features/rows/gridRowsUtils");
|
|
21
20
|
var _gridClasses = require("../../constants/gridClasses");
|
|
22
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
22
|
const GridOverlayWrapperRoot = (0, _system.styled)('div', {
|
|
24
23
|
name: 'MuiDataGrid',
|
|
25
24
|
slot: 'OverlayWrapper',
|
|
26
|
-
shouldForwardProp: prop => prop !== 'overlayType' && prop !== 'loadingOverlayVariant',
|
|
25
|
+
shouldForwardProp: prop => prop !== 'overlayType' && prop !== 'loadingOverlayVariant' && prop !== 'right',
|
|
27
26
|
overridesResolver: (props, styles) => styles.overlayWrapper
|
|
28
27
|
})(({
|
|
29
28
|
overlayType,
|
|
30
|
-
loadingOverlayVariant
|
|
29
|
+
loadingOverlayVariant,
|
|
30
|
+
right
|
|
31
31
|
}) =>
|
|
32
32
|
// Skeleton overlay should flow with the scroll container and not be sticky
|
|
33
33
|
loadingOverlayVariant !== 'skeleton' ? {
|
|
34
34
|
position: 'sticky',
|
|
35
35
|
// To stay in place while scrolling
|
|
36
36
|
top: 'var(--DataGrid-headersTotalHeight)',
|
|
37
|
+
// TODO: take pinned rows into account
|
|
37
38
|
left: 0,
|
|
39
|
+
right: `${right}px`,
|
|
38
40
|
width: 0,
|
|
39
41
|
// To stay above the content instead of shifting it down
|
|
40
42
|
height: 0,
|
|
@@ -61,11 +63,10 @@ const useUtilityClasses = ownerState => {
|
|
|
61
63
|
function GridOverlayWrapper(props) {
|
|
62
64
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
63
65
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
64
|
-
const currentPage = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, rootProps);
|
|
65
66
|
const dimensions = (0, _useGridSelector.useGridSelector)(apiRef, _dimensions.gridDimensionsSelector);
|
|
66
|
-
let height = dimensions.viewportOuterSize.height - dimensions.topContainerHeight - dimensions.bottomContainerHeight - (dimensions.hasScrollX ? dimensions.scrollbarSize : 0);
|
|
67
|
-
if (
|
|
68
|
-
height =
|
|
67
|
+
let height = Math.max(dimensions.viewportOuterSize.height - dimensions.topContainerHeight - dimensions.bottomContainerHeight - (dimensions.hasScrollX ? dimensions.scrollbarSize : 0), 0);
|
|
68
|
+
if (height === 0) {
|
|
69
|
+
height = _gridRowsUtils.minimalContentHeight;
|
|
69
70
|
}
|
|
70
71
|
const classes = useUtilityClasses((0, _extends2.default)({}, props, {
|
|
71
72
|
classes: rootProps.classes
|
|
@@ -73,6 +74,7 @@ function GridOverlayWrapper(props) {
|
|
|
73
74
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridOverlayWrapperRoot, (0, _extends2.default)({
|
|
74
75
|
className: (0, _clsx.default)(classes.root)
|
|
75
76
|
}, props, {
|
|
77
|
+
right: dimensions.columnsTotalWidth - dimensions.viewportOuterSize.width,
|
|
76
78
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(GridOverlayWrapperInner, (0, _extends2.default)({
|
|
77
79
|
className: (0, _clsx.default)(classes.inner),
|
|
78
80
|
style: {
|
|
@@ -11,7 +11,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
14
|
-
var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
|
|
15
14
|
var _RtlProvider = require("@mui/system/RtlProvider");
|
|
16
15
|
var _utils = require("@mui/utils");
|
|
17
16
|
var _gridClasses = require("../../constants/gridClasses");
|
|
@@ -181,7 +180,7 @@ function GridActionsCell(props) {
|
|
|
181
180
|
target: buttonRef.current,
|
|
182
181
|
position: position,
|
|
183
182
|
onClose: hideMenu,
|
|
184
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
183
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuList, {
|
|
185
184
|
id: menuId,
|
|
186
185
|
className: _gridClasses.gridClasses.menuList,
|
|
187
186
|
onKeyDown: handleListKeyDown,
|
|
@@ -10,7 +10,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
-
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
14
13
|
var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
|
|
15
14
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
16
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -55,7 +54,7 @@ const GridActionsCellItem = exports.GridActionsCellItem = /*#__PURE__*/React.for
|
|
|
55
54
|
closeMenu?.();
|
|
56
55
|
}
|
|
57
56
|
};
|
|
58
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
|
|
59
58
|
ref: ref
|
|
60
59
|
}, other, {
|
|
61
60
|
onClick: handleClick,
|
|
@@ -26,7 +26,7 @@ var _cellBorderUtils = require("../../utils/cellBorderUtils");
|
|
|
26
26
|
var _gridColumnsInterfaces = require("../../hooks/features/columns/gridColumnsInterfaces");
|
|
27
27
|
var _gridRowSpanningSelectors = require("../../hooks/features/rows/gridRowSpanningSelectors");
|
|
28
28
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
|
-
const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "width", "className", "style", "
|
|
29
|
+
const _excluded = ["column", "rowId", "editCellState", "align", "children", "colIndex", "width", "className", "style", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "sectionIndex", "sectionLength", "gridHasFiller", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
|
|
30
30
|
_excluded2 = ["changeReason", "unstable_updateValueOnRender"];
|
|
31
31
|
let PinnedPosition = exports.PinnedPosition = /*#__PURE__*/function (PinnedPosition) {
|
|
32
32
|
PinnedPosition[PinnedPosition["NONE"] = 0] = "NONE";
|
|
@@ -350,7 +350,6 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
|
|
|
350
350
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
351
351
|
// ----------------------------------------------------------------------
|
|
352
352
|
align: _propTypes.default.oneOf(['center', 'left', 'right']).isRequired,
|
|
353
|
-
className: _propTypes.default.string,
|
|
354
353
|
colIndex: _propTypes.default.number.isRequired,
|
|
355
354
|
colSpan: _propTypes.default.number,
|
|
356
355
|
column: _propTypes.default.object.isRequired,
|
|
@@ -363,13 +362,6 @@ process.env.NODE_ENV !== "production" ? GridCell.propTypes = {
|
|
|
363
362
|
}),
|
|
364
363
|
gridHasFiller: _propTypes.default.bool.isRequired,
|
|
365
364
|
isNotVisible: _propTypes.default.bool.isRequired,
|
|
366
|
-
onClick: _propTypes.default.func,
|
|
367
|
-
onDoubleClick: _propTypes.default.func,
|
|
368
|
-
onDragEnter: _propTypes.default.func,
|
|
369
|
-
onDragOver: _propTypes.default.func,
|
|
370
|
-
onKeyDown: _propTypes.default.func,
|
|
371
|
-
onMouseDown: _propTypes.default.func,
|
|
372
|
-
onMouseUp: _propTypes.default.func,
|
|
373
365
|
pinnedOffset: _propTypes.default.number.isRequired,
|
|
374
366
|
pinnedPosition: _propTypes.default.oneOf([0, 1, 2, 3]).isRequired,
|
|
375
367
|
rowId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
@@ -9,7 +9,6 @@ exports.renderEditInputCell = exports.GridEditInputCell = void 0;
|
|
|
9
9
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
12
|
var _utils = require("@mui/utils");
|
|
14
13
|
var _styles = require("@mui/material/styles");
|
|
15
14
|
var _InputBase = _interopRequireDefault(require("@mui/material/InputBase"));
|
|
@@ -102,71 +101,5 @@ const GridEditInputCell = exports.GridEditInputCell = /*#__PURE__*/React.forward
|
|
|
102
101
|
}) : undefined
|
|
103
102
|
}, other));
|
|
104
103
|
});
|
|
105
|
-
process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
|
|
106
|
-
// ----------------------------- Warning --------------------------------
|
|
107
|
-
// | These PropTypes are generated from the TypeScript type definitions |
|
|
108
|
-
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
109
|
-
// ----------------------------------------------------------------------
|
|
110
|
-
/**
|
|
111
|
-
* GridApi that let you manipulate the grid.
|
|
112
|
-
*/
|
|
113
|
-
api: _propTypes.default.object.isRequired,
|
|
114
|
-
/**
|
|
115
|
-
* The mode of the cell.
|
|
116
|
-
*/
|
|
117
|
-
cellMode: _propTypes.default.oneOf(['edit', 'view']).isRequired,
|
|
118
|
-
changeReason: _propTypes.default.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),
|
|
119
|
-
/**
|
|
120
|
-
* The column of the row that the current cell belongs to.
|
|
121
|
-
*/
|
|
122
|
-
colDef: _propTypes.default.object.isRequired,
|
|
123
|
-
debounceMs: _propTypes.default.number,
|
|
124
|
-
/**
|
|
125
|
-
* The column field of the cell that triggered the event.
|
|
126
|
-
*/
|
|
127
|
-
field: _propTypes.default.string.isRequired,
|
|
128
|
-
/**
|
|
129
|
-
* The cell value formatted with the column valueFormatter.
|
|
130
|
-
*/
|
|
131
|
-
formattedValue: _propTypes.default.any,
|
|
132
|
-
/**
|
|
133
|
-
* If true, the cell is the active element.
|
|
134
|
-
*/
|
|
135
|
-
hasFocus: _propTypes.default.bool.isRequired,
|
|
136
|
-
/**
|
|
137
|
-
* The grid row id.
|
|
138
|
-
*/
|
|
139
|
-
id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|
|
140
|
-
/**
|
|
141
|
-
* If true, the cell is editable.
|
|
142
|
-
*/
|
|
143
|
-
isEditable: _propTypes.default.bool,
|
|
144
|
-
isProcessingProps: _propTypes.default.bool,
|
|
145
|
-
isValidating: _propTypes.default.bool,
|
|
146
|
-
/**
|
|
147
|
-
* Callback called when the value is changed by the user.
|
|
148
|
-
* @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
|
|
149
|
-
* @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
|
|
150
|
-
* @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
|
|
151
|
-
*/
|
|
152
|
-
onValueChange: _propTypes.default.func,
|
|
153
|
-
/**
|
|
154
|
-
* The row model of the row that the current cell belongs to.
|
|
155
|
-
*/
|
|
156
|
-
row: _propTypes.default.any.isRequired,
|
|
157
|
-
/**
|
|
158
|
-
* The node of the row that the current cell belongs to.
|
|
159
|
-
*/
|
|
160
|
-
rowNode: _propTypes.default.object.isRequired,
|
|
161
|
-
/**
|
|
162
|
-
* the tabIndex value.
|
|
163
|
-
*/
|
|
164
|
-
tabIndex: _propTypes.default.oneOf([-1, 0]).isRequired,
|
|
165
|
-
/**
|
|
166
|
-
* The cell value.
|
|
167
|
-
* If the column has `valueGetter`, use `params.row` to directly access the fields.
|
|
168
|
-
*/
|
|
169
|
-
value: _propTypes.default.any
|
|
170
|
-
} : void 0;
|
|
171
104
|
const renderEditInputCell = params => /*#__PURE__*/(0, _jsxRuntime.jsx)(GridEditInputCell, (0, _extends2.default)({}, params));
|
|
172
105
|
exports.renderEditInputCell = renderEditInputCell;
|
|
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.GridColumnMenuFilterItem = GridColumnMenuFilterItem;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
12
11
|
var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
|
|
13
12
|
var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
|
|
14
13
|
var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
|
|
@@ -28,7 +27,7 @@ function GridColumnMenuFilterItem(props) {
|
|
|
28
27
|
if (rootProps.disableColumnFilter || !colDef.filterable) {
|
|
29
28
|
return null;
|
|
30
29
|
}
|
|
31
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
|
|
32
31
|
onClick: showFilter,
|
|
33
32
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
|
|
34
33
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuFilterIcon, {
|
|
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.GridColumnMenuHideItem = GridColumnMenuHideItem;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
12
11
|
var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
|
|
13
12
|
var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
|
|
14
13
|
var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
|
|
@@ -44,7 +43,7 @@ function GridColumnMenuHideItem(props) {
|
|
|
44
43
|
if (colDef.hideable === false) {
|
|
45
44
|
return null;
|
|
46
45
|
}
|
|
47
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
46
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
|
|
48
47
|
onClick: toggleColumn,
|
|
49
48
|
disabled: disabled,
|
|
50
49
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
|
|
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.GridColumnMenuManageItem = GridColumnMenuManageItem;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
12
11
|
var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
|
|
13
12
|
var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
|
|
14
13
|
var _gridPreferencePanelsValue = require("../../../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
|
|
@@ -28,7 +27,7 @@ function GridColumnMenuManageItem(props) {
|
|
|
28
27
|
if (rootProps.disableColumnSelector) {
|
|
29
28
|
return null;
|
|
30
29
|
}
|
|
31
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
|
|
32
31
|
onClick: showColumns,
|
|
33
32
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
|
|
34
33
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuManageColumnsIcon, {
|
|
@@ -8,7 +8,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.GridColumnMenuSortItem = GridColumnMenuSortItem;
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
12
11
|
var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
|
|
13
12
|
var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
|
|
14
13
|
var _useGridSelector = require("../../../../hooks/utils/useGridSelector");
|
|
@@ -45,7 +44,7 @@ function GridColumnMenuSortItem(props) {
|
|
|
45
44
|
return typeof label === 'function' ? label(colDef) : label;
|
|
46
45
|
};
|
|
47
46
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
48
|
-
children: [sortingOrder.includes('asc') && sortDirection !== 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
47
|
+
children: [sortingOrder.includes('asc') && sortDirection !== 'asc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
|
|
49
48
|
onClick: onSortMenuItemClick,
|
|
50
49
|
"data-value": "asc",
|
|
51
50
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
|
|
@@ -55,7 +54,7 @@ function GridColumnMenuSortItem(props) {
|
|
|
55
54
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
|
|
56
55
|
children: getLabel('columnMenuSortAsc')
|
|
57
56
|
})]
|
|
58
|
-
}) : null, sortingOrder.includes('desc') && sortDirection !== 'desc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
57
|
+
}) : null, sortingOrder.includes('desc') && sortDirection !== 'desc' ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
|
|
59
58
|
onClick: onSortMenuItemClick,
|
|
60
59
|
"data-value": "desc",
|
|
61
60
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
|
|
@@ -65,7 +64,7 @@ function GridColumnMenuSortItem(props) {
|
|
|
65
64
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
|
|
66
65
|
children: getLabel('columnMenuSortDesc')
|
|
67
66
|
})]
|
|
68
|
-
}) : null, sortingOrder.includes(null) && sortDirection != null ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
67
|
+
}) : null, sortingOrder.includes(null) && sortDirection != null ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
|
|
69
68
|
onClick: onSortMenuItemClick,
|
|
70
69
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
|
|
71
70
|
children: apiRef.current.getLocaleText('columnMenuUnsort')
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.GridFilterInputBoolean = GridFilterInputBoolean;
|
|
9
|
+
exports.sanitizeFilterItemValue = void 0;
|
|
9
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
11
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
12
|
var React = _interopRequireWildcard(require("react"));
|
|
@@ -15,6 +16,16 @@ var _styles = require("@mui/material/styles");
|
|
|
15
16
|
var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "clearButton", "tabIndex", "label", "variant", "InputLabelProps"];
|
|
19
|
+
const sanitizeFilterItemValue = value => {
|
|
20
|
+
if (String(value).toLowerCase() === 'true') {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (String(value).toLowerCase() === 'false') {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
};
|
|
28
|
+
exports.sanitizeFilterItemValue = sanitizeFilterItemValue;
|
|
18
29
|
const BooleanOperatorContainer = (0, _styles.styled)('div')({
|
|
19
30
|
display: 'flex',
|
|
20
31
|
alignItems: 'center',
|
|
@@ -35,7 +46,7 @@ function GridFilterInputBoolean(props) {
|
|
|
35
46
|
variant = 'standard'
|
|
36
47
|
} = props,
|
|
37
48
|
others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
38
|
-
const [filterValueState, setFilterValueState] = React.useState(item.value
|
|
49
|
+
const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));
|
|
39
50
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
40
51
|
const labelId = (0, _utils.unstable_useId)();
|
|
41
52
|
const selectId = (0, _utils.unstable_useId)();
|
|
@@ -43,14 +54,14 @@ function GridFilterInputBoolean(props) {
|
|
|
43
54
|
const isSelectNative = baseSelectProps.native ?? false;
|
|
44
55
|
const baseSelectOptionProps = rootProps.slotProps?.baseSelectOption || {};
|
|
45
56
|
const onFilterChange = React.useCallback(event => {
|
|
46
|
-
const value = event.target.value;
|
|
57
|
+
const value = sanitizeFilterItemValue(event.target.value);
|
|
47
58
|
setFilterValueState(value);
|
|
48
59
|
applyValue((0, _extends2.default)({}, item, {
|
|
49
|
-
value
|
|
60
|
+
value
|
|
50
61
|
}));
|
|
51
62
|
}, [applyValue, item]);
|
|
52
63
|
React.useEffect(() => {
|
|
53
|
-
setFilterValueState(item.value
|
|
64
|
+
setFilterValueState(sanitizeFilterItemValue(item.value));
|
|
54
65
|
}, [item.value]);
|
|
55
66
|
const label = labelProp ?? apiRef.current.getLocaleText('filterPanelInputLabel');
|
|
56
67
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(BooleanOperatorContainer, {
|
|
@@ -65,7 +76,7 @@ function GridFilterInputBoolean(props) {
|
|
|
65
76
|
labelId: labelId,
|
|
66
77
|
id: selectId,
|
|
67
78
|
label: label,
|
|
68
|
-
value: filterValueState,
|
|
79
|
+
value: filterValueState === undefined ? '' : String(filterValueState),
|
|
69
80
|
onChange: onFilterChange,
|
|
70
81
|
variant: variant,
|
|
71
82
|
notched: variant === 'outlined' ? true : undefined,
|
|
@@ -22,14 +22,15 @@ const _excluded = ["className", "csvOptions", "printOptions", "excelOptions", "s
|
|
|
22
22
|
const GridToolbar = exports.GridToolbar = /*#__PURE__*/React.forwardRef(function GridToolbar(props, ref) {
|
|
23
23
|
// TODO v7: think about where export option should be passed.
|
|
24
24
|
// from slotProps={{ toolbarExport: { ...exportOption } }} seems to be more appropriate
|
|
25
|
-
const
|
|
25
|
+
const _ref = props,
|
|
26
|
+
{
|
|
26
27
|
csvOptions,
|
|
27
28
|
printOptions,
|
|
28
29
|
excelOptions,
|
|
29
30
|
showQuickFilter = false,
|
|
30
31
|
quickFilterProps = {}
|
|
31
|
-
} =
|
|
32
|
-
other = (0, _objectWithoutPropertiesLoose2.default)(
|
|
32
|
+
} = _ref,
|
|
33
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
33
34
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
34
35
|
if (rootProps.disableColumnFilter && rootProps.disableColumnSelector && rootProps.disableDensitySelector && !showQuickFilter) {
|
|
35
36
|
return null;
|
|
@@ -40,7 +41,7 @@ const GridToolbar = exports.GridToolbar = /*#__PURE__*/React.forwardRef(function
|
|
|
40
41
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarColumnsButton.GridToolbarColumnsButton, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarFilterButton.GridToolbarFilterButton, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarDensitySelector.GridToolbarDensitySelector, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarExport.GridToolbarExport, {
|
|
41
42
|
csvOptions: csvOptions,
|
|
42
43
|
printOptions: printOptions
|
|
43
|
-
//
|
|
44
|
+
// @ts-ignore
|
|
44
45
|
,
|
|
45
46
|
excelOptions: excelOptions
|
|
46
47
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
@@ -55,6 +56,8 @@ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
|
|
|
55
56
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
56
57
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
57
58
|
// ----------------------------------------------------------------------
|
|
59
|
+
csvOptions: _propTypes.default.object,
|
|
60
|
+
printOptions: _propTypes.default.object,
|
|
58
61
|
/**
|
|
59
62
|
* Props passed to the quick filter component.
|
|
60
63
|
*/
|
|
@@ -64,5 +67,10 @@ process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
|
|
|
64
67
|
* @default false
|
|
65
68
|
*/
|
|
66
69
|
showQuickFilter: _propTypes.default.bool,
|
|
70
|
+
/**
|
|
71
|
+
* The props used for each slot inside.
|
|
72
|
+
* @default {}
|
|
73
|
+
*/
|
|
74
|
+
slotProps: _propTypes.default.object,
|
|
67
75
|
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
|
|
68
76
|
} : void 0;
|
|
@@ -9,7 +9,7 @@ exports.GridToolbarColumnsButton = void 0;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
-
var
|
|
12
|
+
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
13
13
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
14
14
|
var _gridPreferencePanelSelector = require("../../hooks/features/preferencesPanel/gridPreferencePanelSelector");
|
|
15
15
|
var _gridPreferencePanelsValue = require("../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
|
|
@@ -22,8 +22,8 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = /*#__PURE__*
|
|
|
22
22
|
} = props;
|
|
23
23
|
const buttonProps = slotProps.button || {};
|
|
24
24
|
const tooltipProps = slotProps.tooltip || {};
|
|
25
|
-
const columnButtonId = (0,
|
|
26
|
-
const columnPanelId = (0,
|
|
25
|
+
const columnButtonId = (0, _useId.default)();
|
|
26
|
+
const columnPanelId = (0, _useId.default)();
|
|
27
27
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
28
28
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
29
29
|
const preferencePanel = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
|
|
@@ -10,8 +10,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _utils = require("@mui/utils");
|
|
13
|
-
var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
|
|
14
|
-
var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
|
|
15
13
|
var _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
|
|
16
14
|
var _densitySelector = require("../../hooks/features/density/densitySelector");
|
|
17
15
|
var _keyboardUtils = require("../../utils/keyboardUtils");
|
|
@@ -82,7 +80,7 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
|
|
|
82
80
|
if (rootProps.disableDensitySelector) {
|
|
83
81
|
return null;
|
|
84
82
|
}
|
|
85
|
-
const densityElements = densityOptions.map((option, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
83
|
+
const densityElements = densityOptions.map((option, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
|
|
86
84
|
onClick: () => handleDensityUpdate(option.value),
|
|
87
85
|
selected: option.value === density,
|
|
88
86
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
|
|
@@ -113,7 +111,7 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = /*#__PUR
|
|
|
113
111
|
target: buttonRef.current,
|
|
114
112
|
onClose: handleDensitySelectorClose,
|
|
115
113
|
position: "bottom-start",
|
|
116
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
114
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuList, {
|
|
117
115
|
id: densityMenuId,
|
|
118
116
|
className: _gridClasses.gridClasses.menuList,
|
|
119
117
|
"aria-labelledby": densityButtonId,
|
|
@@ -12,7 +12,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
12
12
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
13
13
|
var React = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
var
|
|
15
|
+
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
16
16
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
17
17
|
var _GridToolbarExportContainer = require("./GridToolbarExportContainer");
|
|
18
18
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -21,12 +21,13 @@ const _excluded = ["hideMenu", "options"],
|
|
|
21
21
|
_excluded3 = ["csvOptions", "printOptions", "excelOptions"];
|
|
22
22
|
function GridCsvExportMenuItem(props) {
|
|
23
23
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
24
|
+
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
24
25
|
const {
|
|
25
26
|
hideMenu,
|
|
26
27
|
options
|
|
27
28
|
} = props,
|
|
28
29
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
29
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
30
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
|
|
30
31
|
onClick: () => {
|
|
31
32
|
apiRef.current.exportDataAsCsv(options);
|
|
32
33
|
hideMenu?.();
|
|
@@ -57,12 +58,13 @@ process.env.NODE_ENV !== "production" ? GridCsvExportMenuItem.propTypes = {
|
|
|
57
58
|
} : void 0;
|
|
58
59
|
function GridPrintExportMenuItem(props) {
|
|
59
60
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
61
|
+
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
60
62
|
const {
|
|
61
63
|
hideMenu,
|
|
62
64
|
options
|
|
63
65
|
} = props,
|
|
64
66
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded2);
|
|
65
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
67
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
|
|
66
68
|
onClick: () => {
|
|
67
69
|
apiRef.current.exportDataAsPrint(options);
|
|
68
70
|
hideMenu?.();
|
|
@@ -92,12 +94,13 @@ process.env.NODE_ENV !== "production" ? GridPrintExportMenuItem.propTypes = {
|
|
|
92
94
|
})
|
|
93
95
|
} : void 0;
|
|
94
96
|
const GridToolbarExport = exports.GridToolbarExport = /*#__PURE__*/React.forwardRef(function GridToolbarExport(props, ref) {
|
|
95
|
-
const
|
|
97
|
+
const _ref = props,
|
|
98
|
+
{
|
|
96
99
|
csvOptions = {},
|
|
97
100
|
printOptions = {},
|
|
98
101
|
excelOptions
|
|
99
|
-
} =
|
|
100
|
-
other = (0, _objectWithoutPropertiesLoose2.default)(
|
|
102
|
+
} = _ref,
|
|
103
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded3);
|
|
101
104
|
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
102
105
|
const preProcessedButtons = apiRef.current.unstable_applyPipeProcessors('exportMenu', [], {
|
|
103
106
|
excelOptions,
|
|
@@ -10,7 +10,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _utils = require("@mui/utils");
|
|
13
|
-
var _MenuList = _interopRequireDefault(require("@mui/material/MenuList"));
|
|
14
13
|
var _keyboardUtils = require("../../utils/keyboardUtils");
|
|
15
14
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
16
15
|
var _GridMenu = require("../menu/GridMenu");
|
|
@@ -71,7 +70,7 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = /*#__PUR
|
|
|
71
70
|
target: buttonRef.current,
|
|
72
71
|
onClose: handleMenuClose,
|
|
73
72
|
position: "bottom-start",
|
|
74
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
73
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuList, {
|
|
75
74
|
id: exportMenuId,
|
|
76
75
|
className: _gridClasses.gridClasses.menuList,
|
|
77
76
|
"aria-labelledby": exportButtonId,
|
|
@@ -77,6 +77,9 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = /*#__PURE__*/React.f
|
|
|
77
77
|
const onScrollerScroll = (0, _utils.unstable_useEventCallback)(() => {
|
|
78
78
|
const scroller = apiRef.current.virtualScrollerRef.current;
|
|
79
79
|
const scrollbar = scrollbarRef.current;
|
|
80
|
+
if (!scrollbar) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
80
83
|
if (scroller[propertyScroll] === lastPosition.current) {
|
|
81
84
|
return;
|
|
82
85
|
}
|
|
@@ -92,6 +95,9 @@ const GridVirtualScrollbar = exports.GridVirtualScrollbar = /*#__PURE__*/React.f
|
|
|
92
95
|
const onScrollbarScroll = (0, _utils.unstable_useEventCallback)(() => {
|
|
93
96
|
const scroller = apiRef.current.virtualScrollerRef.current;
|
|
94
97
|
const scrollbar = scrollbarRef.current;
|
|
98
|
+
if (!scrollbar) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
95
101
|
if (isLocked.current) {
|
|
96
102
|
isLocked.current = false;
|
|
97
103
|
return;
|
|
@@ -202,8 +202,10 @@ const useGridColumnResize = (apiRef, props) => {
|
|
|
202
202
|
const prevWidth = refs.columnHeaderElement.offsetWidth;
|
|
203
203
|
const widthDiff = newWidth - prevWidth;
|
|
204
204
|
const columnWidthDiff = newWidth - refs.initialColWidth;
|
|
205
|
-
|
|
206
|
-
|
|
205
|
+
if (columnWidthDiff > 0) {
|
|
206
|
+
const newTotalWidth = refs.initialTotalWidth + columnWidthDiff;
|
|
207
|
+
apiRef.current.rootElementRef?.current?.style.setProperty('--DataGrid-rowWidth', `${newTotalWidth}px`);
|
|
208
|
+
}
|
|
207
209
|
refs.colDef.computedWidth = newWidth;
|
|
208
210
|
refs.colDef.width = newWidth;
|
|
209
211
|
refs.colDef.flex = 0;
|
|
@@ -249,26 +249,45 @@ const useGridCellEditing = (apiRef, props) => {
|
|
|
249
249
|
mode: _gridEditRowModel.GridCellModes.Edit
|
|
250
250
|
}, other));
|
|
251
251
|
}, [throwIfNotEditable, throwIfNotInMode, updateFieldInCellModesModel]);
|
|
252
|
-
const updateStateToStartCellEditMode = (0, _utils.unstable_useEventCallback)(params => {
|
|
252
|
+
const updateStateToStartCellEditMode = (0, _utils.unstable_useEventCallback)(async params => {
|
|
253
253
|
const {
|
|
254
254
|
id,
|
|
255
255
|
field,
|
|
256
256
|
deleteValue,
|
|
257
257
|
initialValue
|
|
258
258
|
} = params;
|
|
259
|
-
|
|
259
|
+
const value = apiRef.current.getCellValue(id, field);
|
|
260
|
+
let newValue = value;
|
|
260
261
|
if (deleteValue) {
|
|
261
262
|
newValue = (0, _utils3.getDefaultCellValue)(apiRef.current.getColumn(field));
|
|
262
263
|
} else if (initialValue) {
|
|
263
264
|
newValue = initialValue;
|
|
264
265
|
}
|
|
265
|
-
const
|
|
266
|
+
const column = apiRef.current.getColumn(field);
|
|
267
|
+
const shouldProcessEditCellProps = !!column.preProcessEditCellProps && deleteValue;
|
|
268
|
+
let newProps = {
|
|
266
269
|
value: newValue,
|
|
267
270
|
error: false,
|
|
268
|
-
isProcessingProps:
|
|
271
|
+
isProcessingProps: shouldProcessEditCellProps
|
|
269
272
|
};
|
|
270
273
|
updateOrDeleteFieldState(id, field, newProps);
|
|
271
274
|
apiRef.current.setCellFocus(id, field);
|
|
275
|
+
if (shouldProcessEditCellProps) {
|
|
276
|
+
newProps = await Promise.resolve(column.preProcessEditCellProps({
|
|
277
|
+
id,
|
|
278
|
+
row: apiRef.current.getRow(id),
|
|
279
|
+
props: newProps,
|
|
280
|
+
hasChanged: newValue !== value
|
|
281
|
+
}));
|
|
282
|
+
// Check if still in edit mode before updating
|
|
283
|
+
if (apiRef.current.getCellMode(id, field) === _gridEditRowModel.GridCellModes.Edit) {
|
|
284
|
+
const editingState = (0, _gridEditingSelectors.gridEditRowsStateSelector)(apiRef.current.state);
|
|
285
|
+
updateOrDeleteFieldState(id, field, (0, _extends2.default)({}, newProps, {
|
|
286
|
+
value: editingState[id][field].value,
|
|
287
|
+
isProcessingProps: false
|
|
288
|
+
}));
|
|
289
|
+
}
|
|
290
|
+
}
|
|
272
291
|
});
|
|
273
292
|
const stopCellEditMode = React.useCallback(params => {
|
|
274
293
|
const {
|