@mui/x-data-grid 8.0.0-alpha.4 → 8.0.0-alpha.5

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.
Files changed (90) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/DataGrid/DataGrid.js +2 -6
  3. package/DataGrid/useDataGridProps.js +3 -3
  4. package/components/GridRow.js +12 -1
  5. package/components/cell/GridActionsCellItem.js +4 -6
  6. package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  7. package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  8. package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  9. package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  10. package/components/toolbar/GridToolbarDensitySelector.js +3 -5
  11. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  12. package/components/toolbar/GridToolbarFilterButton.js +3 -0
  13. package/components/toolbar/GridToolbarQuickFilter.js +27 -23
  14. package/components/virtualization/GridMainContainer.js +1 -1
  15. package/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
  16. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +6 -0
  17. package/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  18. package/hooks/features/columnResize/useGridColumnResize.d.ts +1 -1
  19. package/hooks/features/columnResize/useGridColumnResize.js +9 -4
  20. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  21. package/hooks/features/columns/gridColumnsUtils.js +2 -1
  22. package/index.js +1 -1
  23. package/internals/utils/index.d.ts +0 -1
  24. package/internals/utils/index.js +0 -1
  25. package/locales/koKR.js +45 -49
  26. package/material/index.js +30 -4
  27. package/models/gridBaseSlots.d.ts +21 -0
  28. package/models/gridBaseSlots.js +1 -0
  29. package/models/gridSlotsComponentsProps.d.ts +25 -5
  30. package/models/props/DataGridProps.d.ts +0 -5
  31. package/modern/DataGrid/DataGrid.js +2 -6
  32. package/modern/DataGrid/useDataGridProps.js +3 -3
  33. package/modern/components/GridRow.js +12 -1
  34. package/modern/components/cell/GridActionsCellItem.js +4 -6
  35. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
  36. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
  37. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
  38. package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  39. package/modern/components/toolbar/GridToolbarDensitySelector.js +3 -5
  40. package/modern/components/toolbar/GridToolbarFilterButton.js +3 -0
  41. package/modern/components/toolbar/GridToolbarQuickFilter.js +27 -23
  42. package/modern/components/virtualization/GridMainContainer.js +1 -1
  43. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
  44. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  45. package/modern/hooks/features/columnResize/useGridColumnResize.js +9 -4
  46. package/modern/hooks/features/columns/gridColumnsUtils.js +2 -1
  47. package/modern/index.js +1 -1
  48. package/modern/internals/utils/index.js +0 -1
  49. package/modern/locales/koKR.js +45 -49
  50. package/modern/material/index.js +30 -4
  51. package/modern/models/gridBaseSlots.js +1 -0
  52. package/node/DataGrid/DataGrid.js +2 -6
  53. package/node/DataGrid/useDataGridProps.js +2 -2
  54. package/node/components/GridRow.js +12 -1
  55. package/node/components/cell/GridActionsCellItem.js +3 -5
  56. package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +5 -10
  57. package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +5 -10
  58. package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +5 -10
  59. package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
  60. package/node/components/toolbar/GridToolbarDensitySelector.js +3 -5
  61. package/node/components/toolbar/GridToolbarFilterButton.js +3 -0
  62. package/node/components/toolbar/GridToolbarQuickFilter.js +27 -23
  63. package/node/components/virtualization/GridMainContainer.js +1 -1
  64. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
  65. package/node/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  66. package/node/hooks/features/columnResize/useGridColumnResize.js +9 -4
  67. package/node/hooks/features/columns/gridColumnsUtils.js +2 -1
  68. package/node/index.js +1 -1
  69. package/node/internals/utils/index.js +0 -11
  70. package/node/locales/koKR.js +45 -49
  71. package/node/material/index.js +31 -4
  72. package/node/models/gridBaseSlots.js +5 -0
  73. package/package.json +2 -2
  74. package/internals/utils/useProps.d.ts +0 -1
  75. package/internals/utils/useProps.js +0 -24
  76. package/joy/icons.d.ts +0 -32
  77. package/joy/icons.js +0 -431
  78. package/joy/index.d.ts +0 -2
  79. package/joy/index.js +0 -2
  80. package/joy/joySlots.d.ts +0 -3
  81. package/joy/joySlots.js +0 -389
  82. package/joy/package.json +0 -6
  83. package/modern/internals/utils/useProps.js +0 -24
  84. package/modern/joy/icons.js +0 -431
  85. package/modern/joy/index.js +0 -2
  86. package/modern/joy/joySlots.js +0 -389
  87. package/node/internals/utils/useProps.js +0 -30
  88. package/node/joy/icons.js +0 -439
  89. package/node/joy/index.js +0 -13
  90. package/node/joy/joySlots.js +0 -397
@@ -8,6 +8,7 @@ import TextField from '@mui/material/TextField';
8
8
  import { styled } from '@mui/material/styles';
9
9
  import { unstable_debounce as debounce } from '@mui/utils';
10
10
  import composeClasses from '@mui/utils/composeClasses';
11
+ import { outlinedInputClasses } from '@mui/material/OutlinedInput';
11
12
  import { getDataGridUtilityClass } from "../../constants/index.js";
12
13
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
13
14
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
@@ -31,13 +32,8 @@ const GridToolbarQuickFilterRoot = styled(TextField, {
31
32
  })(({
32
33
  theme
33
34
  }) => ({
34
- width: 'auto',
35
- paddingBottom: theme.spacing(0.5),
36
- '& input': {
37
- marginLeft: theme.spacing(0.5)
38
- },
39
- '& .MuiInput-underline:before': {
40
- borderBottom: `1px solid ${(theme.vars || theme).palette.divider}`
35
+ [`.${outlinedInputClasses.root}`]: {
36
+ fontSize: theme.typography.body2.fontSize
41
37
  },
42
38
  [`& input[type="search"]::-webkit-search-decoration,
43
39
  & input[type="search"]::-webkit-search-cancel-button,
@@ -91,7 +87,8 @@ function GridToolbarQuickFilter(props) {
91
87
  return /*#__PURE__*/_jsx(GridToolbarQuickFilterRoot, _extends({
92
88
  as: rootProps.slots.baseTextField,
93
89
  ownerState: rootProps,
94
- variant: "standard",
90
+ variant: "outlined",
91
+ size: "small",
95
92
  value: searchValue,
96
93
  onChange: handleSearchValueChange,
97
94
  className: clsx(classes.root, className),
@@ -100,23 +97,30 @@ function GridToolbarQuickFilter(props) {
100
97
  type: "search"
101
98
  }, other, {
102
99
  InputProps: _extends({
103
- startAdornment: /*#__PURE__*/_jsx(rootProps.slots.quickFilterIcon, {
104
- fontSize: "small"
105
- }),
106
- endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
107
- "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
108
- size: "small",
109
- sx: [searchValue ? {
110
- visibility: 'visible'
111
- } : {
112
- visibility: 'hidden'
113
- }],
114
- onClick: handleSearchReset
115
- }, rootProps.slotProps?.baseIconButton, {
116
- children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterClearIcon, {
100
+ startAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {
101
+ position: "start",
102
+ children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterIcon, {
117
103
  fontSize: "small"
118
104
  })
119
- }))
105
+ }),
106
+ endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {
107
+ position: "end",
108
+ children: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
109
+ "aria-label": apiRef.current.getLocaleText('toolbarQuickFilterDeleteIconLabel'),
110
+ size: "small",
111
+ edge: "end",
112
+ sx: [searchValue ? {
113
+ visibility: 'visible'
114
+ } : {
115
+ visibility: 'hidden'
116
+ }],
117
+ onClick: handleSearchReset
118
+ }, rootProps.slotProps?.baseIconButton, {
119
+ children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterClearIcon, {
120
+ fontSize: "small"
121
+ })
122
+ }))
123
+ })
120
124
  }, other.InputProps)
121
125
  }, rootProps.slotProps?.baseTextField));
122
126
  }
@@ -30,7 +30,7 @@ export const GridMainContainer = /*#__PURE__*/React.forwardRef((props, ref) => {
30
30
  ownerState: rootProps,
31
31
  className: props.className,
32
32
  tabIndex: -1
33
- }, ariaAttributes, {
33
+ }, ariaAttributes, rootProps.slotProps?.main, {
34
34
  children: [/*#__PURE__*/_jsx(GridPanelAnchor, {
35
35
  role: "presentation",
36
36
  "data-id": "gridPanelAnchor"
@@ -47,7 +47,7 @@ export const useGridColumnHeaders = props => {
47
47
  const isRtl = useRtl();
48
48
  const rootProps = useGridRootProps();
49
49
  const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
50
- const hasVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
50
+ const hasColumnVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
51
51
  const columnGroupsModel = useGridSelector(apiRef, gridColumnGroupsUnwrappedModelSelector);
52
52
  const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
53
53
  const renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
@@ -87,8 +87,15 @@ export const useGridColumnHeaders = props => {
87
87
  renderContext: currentContext = renderContext,
88
88
  maxLastColumn = visibleColumns.length
89
89
  } = params || {};
90
- const firstColumnToRender = currentContext.firstColumnIndex;
91
- const lastColumnToRender = !hasVirtualization ? maxLastColumn : currentContext.lastColumnIndex;
90
+ let firstColumnToRender;
91
+ let lastColumnToRender;
92
+ if (!rootProps.disableVirtualization && !hasColumnVirtualization) {
93
+ firstColumnToRender = 0;
94
+ lastColumnToRender = maxLastColumn;
95
+ } else {
96
+ firstColumnToRender = currentContext.firstColumnIndex;
97
+ lastColumnToRender = currentContext.lastColumnIndex;
98
+ }
92
99
  const renderedColumns = visibleColumns.slice(firstColumnToRender, lastColumnToRender);
93
100
  return {
94
101
  renderedColumns,
@@ -2,7 +2,8 @@ export const DEFAULT_GRID_AUTOSIZE_OPTIONS = {
2
2
  includeHeaders: true,
3
3
  includeOutliers: false,
4
4
  outliersFactor: 1.5,
5
- expand: false
5
+ expand: false,
6
+ disableColumnVirtualization: true
6
7
  };
7
8
 
8
9
  /**
@@ -460,6 +460,7 @@ export const useGridColumnResize = (apiRef, props) => {
460
460
  return;
461
461
  }
462
462
  apiRef.current.autosizeColumns(_extends({}, props.autosizeOptions, {
463
+ disableColumnVirtualization: false,
463
464
  columns: [column.field]
464
465
  }));
465
466
  });
@@ -486,8 +487,10 @@ export const useGridColumnResize = (apiRef, props) => {
486
487
  options.columns = options.columns.filter(c => state.columnVisibilityModel[c] !== false);
487
488
  const columns = options.columns.map(c => apiRef.current.state.columns.lookup[c]);
488
489
  try {
489
- apiRef.current.unstable_setColumnVirtualization(false);
490
- await columnVirtualizationDisabled();
490
+ if (!props.disableVirtualization && options.disableColumnVirtualization) {
491
+ apiRef.current.unstable_setColumnVirtualization(false);
492
+ await columnVirtualizationDisabled();
493
+ }
491
494
  const widthByField = extractColumnWidths(apiRef, options, columns);
492
495
  const newColumns = columns.map(column => _extends({}, column, {
493
496
  width: widthByField[column.field],
@@ -519,10 +522,12 @@ export const useGridColumnResize = (apiRef, props) => {
519
522
  }
520
523
  });
521
524
  } finally {
522
- apiRef.current.unstable_setColumnVirtualization(true);
525
+ if (!props.disableVirtualization) {
526
+ apiRef.current.unstable_setColumnVirtualization(true);
527
+ }
523
528
  isAutosizingRef.current = false;
524
529
  }
525
- }, [apiRef, columnVirtualizationDisabled]);
530
+ }, [apiRef, columnVirtualizationDisabled, props.disableVirtualization]);
526
531
 
527
532
  /**
528
533
  * EFFECTS
@@ -319,6 +319,7 @@ export function getTotalHeaderHeight(apiRef, props) {
319
319
  const maxDepth = gridColumnGroupsHeaderMaxDepthSelector(apiRef);
320
320
  const isHeaderFilteringEnabled = gridHeaderFilteringEnabledSelector(apiRef);
321
321
  const columnHeadersHeight = Math.floor(props.columnHeaderHeight * densityFactor);
322
+ const columnGroupHeadersHeight = Math.floor((props.columnGroupHeaderHeight ?? props.columnHeaderHeight) * densityFactor);
322
323
  const filterHeadersHeight = isHeaderFilteringEnabled ? Math.floor((props.headerFilterHeight ?? props.columnHeaderHeight) * densityFactor) : 0;
323
- return columnHeadersHeight * (1 + (maxDepth ?? 0)) + filterHeadersHeight;
324
+ return columnHeadersHeight + columnGroupHeadersHeight * maxDepth + filterHeadersHeight;
324
325
  }
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.0.0-alpha.4
2
+ * @mui/x-data-grid v8.0.0-alpha.5
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,4 +1,3 @@
1
1
  export * from "./computeSlots.js";
2
- export * from "./useProps.js";
3
2
  export * from "./propValidation.js";
4
3
  export * from "./gridRowGroupingUtils.js";
@@ -24,16 +24,15 @@ const koKRGrid = {
24
24
  toolbarQuickFilterLabel: '검색',
25
25
  toolbarQuickFilterDeleteIconLabel: '초기화',
26
26
  // Prompt toolbar field
27
- // toolbarPromptControlPlaceholder: 'Type a prompt…',
28
- // toolbarPromptControlWithRecordingPlaceholder: 'Type or record a prompt…',
29
- // toolbarPromptControlRecordingPlaceholder: 'Listening for prompt…',
30
- // toolbarPromptControlLabel: 'Prompt input',
31
- // toolbarPromptControlRecordButtonDefaultLabel: 'Record',
32
- // toolbarPromptControlRecordButtonActiveLabel: 'Stop recording',
33
- // toolbarPromptControlSendActionLabel: 'Send',
34
- // toolbarPromptControlSendActionAriaLabel: 'Send prompt',
35
- // toolbarPromptControlErrorMessage: 'An error occurred while processing the request. Please try again with a different prompt.',
36
-
27
+ toolbarPromptControlPlaceholder: '프롬프트 입력…',
28
+ toolbarPromptControlWithRecordingPlaceholder: '프롬프트 입력 또는 녹음…',
29
+ toolbarPromptControlRecordingPlaceholder: '녹음 중…',
30
+ toolbarPromptControlLabel: '프롬프트 입력',
31
+ toolbarPromptControlRecordButtonDefaultLabel: '녹음',
32
+ toolbarPromptControlRecordButtonActiveLabel: '녹음 정지',
33
+ toolbarPromptControlSendActionLabel: '전송',
34
+ toolbarPromptControlSendActionAriaLabel: '프롬프트 전송',
35
+ toolbarPromptControlErrorMessage: '요청을 처리하는 동안 오류가 발생했습니다. 다른 프롬프트로 다시 시도하십시오.',
37
36
  // Export selector toolbar button text
38
37
  toolbarExport: '내보내기',
39
38
  toolbarExportLabel: '내보내기',
@@ -41,15 +40,14 @@ const koKRGrid = {
41
40
  toolbarExportPrint: '프린트',
42
41
  toolbarExportExcel: 'Excel로 내보내기',
43
42
  // Columns management text
44
- // columnsManagementSearchTitle: 'Search',
45
- // columnsManagementNoColumns: 'No columns',
46
- // columnsManagementShowHideAllText: 'Show/Hide All',
47
- // columnsManagementReset: 'Reset',
48
- // columnsManagementDeleteIconLabel: 'Clear',
49
-
43
+ columnsManagementSearchTitle: '검색',
44
+ columnsManagementNoColumns: '열이 없습니다.',
45
+ columnsManagementShowHideAllText: '모두 보기/숨기기',
46
+ columnsManagementReset: '초기화',
47
+ columnsManagementDeleteIconLabel: '제거',
50
48
  // Filter panel text
51
49
  filterPanelAddFilter: '필터 추가',
52
- // filterPanelRemoveAll: 'Remove all',
50
+ filterPanelRemoveAll: '모두 삭제',
53
51
  filterPanelDeleteIconLabel: '삭제',
54
52
  filterPanelLogicOperator: '논리 연산자',
55
53
  filterPanelOperator: '연산자',
@@ -60,9 +58,9 @@ const koKRGrid = {
60
58
  filterPanelInputPlaceholder: '값 입력',
61
59
  // Filter operators text
62
60
  filterOperatorContains: '포함하는',
63
- // filterOperatorDoesNotContain: 'does not contain',
61
+ filterOperatorDoesNotContain: '포함하지 않는',
64
62
  filterOperatorEquals: '값이 같은',
65
- // filterOperatorDoesNotEqual: 'does not equal',
63
+ filterOperatorDoesNotEqual: '값이 다른',
66
64
  filterOperatorStartsWith: '시작하는',
67
65
  filterOperatorEndsWith: '끝나는',
68
66
  filterOperatorIs: '~인',
@@ -74,36 +72,34 @@ const koKRGrid = {
74
72
  filterOperatorIsEmpty: '값이 없는',
75
73
  filterOperatorIsNotEmpty: '값이 있는',
76
74
  filterOperatorIsAnyOf: '값 중 하나인',
77
- // 'filterOperator=': '=',
78
- // 'filterOperator!=': '!=',
79
- // 'filterOperator>': '>',
80
- // 'filterOperator>=': '>=',
81
- // 'filterOperator<': '<',
82
- // 'filterOperator<=': '<=',
83
-
75
+ 'filterOperator=': '=',
76
+ 'filterOperator!=': '!=',
77
+ 'filterOperator>': '>',
78
+ 'filterOperator>=': '>=',
79
+ 'filterOperator<': '<',
80
+ 'filterOperator<=': '<=',
84
81
  // Header filter operators text
85
- // headerFilterOperatorContains: 'Contains',
86
- // headerFilterOperatorDoesNotContain: 'Does not contain',
87
- // headerFilterOperatorEquals: 'Equals',
88
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
89
- // headerFilterOperatorStartsWith: 'Starts with',
90
- // headerFilterOperatorEndsWith: 'Ends with',
91
- // headerFilterOperatorIs: 'Is',
92
- // headerFilterOperatorNot: 'Is not',
93
- // headerFilterOperatorAfter: 'Is after',
94
- // headerFilterOperatorOnOrAfter: 'Is on or after',
95
- // headerFilterOperatorBefore: 'Is before',
96
- // headerFilterOperatorOnOrBefore: 'Is on or before',
97
- // headerFilterOperatorIsEmpty: 'Is empty',
98
- // headerFilterOperatorIsNotEmpty: 'Is not empty',
99
- // headerFilterOperatorIsAnyOf: 'Is any of',
100
- // 'headerFilterOperator=': 'Equals',
101
- // 'headerFilterOperator!=': 'Not equals',
102
- // 'headerFilterOperator>': 'Greater than',
103
- // 'headerFilterOperator>=': 'Greater than or equal to',
104
- // 'headerFilterOperator<': 'Less than',
105
- // 'headerFilterOperator<=': 'Less than or equal to',
106
-
82
+ headerFilterOperatorContains: '포함하는',
83
+ headerFilterOperatorDoesNotContain: '포함하지 않는',
84
+ headerFilterOperatorEquals: '값이 같은',
85
+ headerFilterOperatorDoesNotEqual: '값이 다른',
86
+ headerFilterOperatorStartsWith: '시작하는',
87
+ headerFilterOperatorEndsWith: '끝나는',
88
+ headerFilterOperatorIs: '~인',
89
+ headerFilterOperatorNot: '~아닌',
90
+ headerFilterOperatorAfter: ' 이후',
91
+ headerFilterOperatorOnOrAfter: '이후',
92
+ headerFilterOperatorBefore: ' 이전',
93
+ headerFilterOperatorOnOrBefore: '이전',
94
+ headerFilterOperatorIsEmpty: '값이 없는',
95
+ headerFilterOperatorIsNotEmpty: '값이 있는',
96
+ headerFilterOperatorIsAnyOf: ' 하나인',
97
+ 'headerFilterOperator=': '값이 같은',
98
+ 'headerFilterOperator!=': '값이 다른',
99
+ 'headerFilterOperator>': ' ',
100
+ 'headerFilterOperator>=': '같거나 ',
101
+ 'headerFilterOperator<': ' 작은',
102
+ 'headerFilterOperator<=': '같거나 작은',
107
103
  // Filter values text
108
104
  filterValueAny: '아무값',
109
105
  filterValueTrue: '참',
@@ -111,7 +107,7 @@ const koKRGrid = {
111
107
  // Column menu text
112
108
  columnMenuLabel: '메뉴',
113
109
  columnMenuShowColumns: '열 표시',
114
- // columnMenuManageColumns: 'Manage columns',
110
+ columnMenuManageColumns: ' 관리',
115
111
  columnMenuFilter: '필터',
116
112
  columnMenuHideColumn: '열 숨기기',
117
113
  columnMenuUnsort: '정렬 해제',
@@ -1,7 +1,12 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
1
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
+ const _excluded = ["inert", "iconStart", "iconEnd", "children"];
4
+ import * as React from 'react';
2
5
  import MUIBadge from '@mui/material/Badge';
3
6
  import MUICheckbox from '@mui/material/Checkbox';
4
7
  import MUIDivider from '@mui/material/Divider';
8
+ import MUIListItemIcon from '@mui/material/ListItemIcon';
9
+ import MUIListItemText from '@mui/material/ListItemText';
5
10
  import MUIMenuList from '@mui/material/MenuList';
6
11
  import MUIMenuItem from '@mui/material/MenuItem';
7
12
  import MUITextField from '@mui/material/TextField';
@@ -17,6 +22,7 @@ import MUIChip from '@mui/material/Chip';
17
22
  import { GridColumnUnsortedIcon } from "./icons/GridColumnUnsortedIcon.js";
18
23
  import { GridAddIcon, GridArrowDownwardIcon, GridArrowUpwardIcon, GridCheckIcon, GridCloseIcon, GridColumnIcon, GridDragIcon, GridExpandMoreIcon, GridFilterAltIcon, GridFilterListIcon, GridKeyboardArrowRight, GridMoreVertIcon, GridRemoveIcon, GridSaveAltIcon, GridSearchIcon, GridSeparatorIcon, GridTableRowsIcon, GridTripleDotsVerticalIcon, GridViewHeadlineIcon, GridViewStreamIcon, GridVisibilityOffIcon, GridViewColumnIcon, GridClearIcon, GridLoadIcon, GridDeleteForeverIcon } from "./icons/index.js";
19
24
  import MUISelectOption from "./components/MUISelectOption.js";
25
+ import { jsx as _jsx } from "react/jsx-runtime";
20
26
  const iconSlots = {
21
27
  booleanCellTrueIcon: GridCheckIcon,
22
28
  booleanCellFalseIcon: GridCloseIcon,
@@ -54,12 +60,12 @@ const iconSlots = {
54
60
  filterPanelRemoveAllIcon: GridDeleteForeverIcon,
55
61
  columnReorderIcon: GridDragIcon
56
62
  };
57
- const materialSlots = _extends({}, iconSlots, {
63
+ const baseSlots = {
58
64
  baseBadge: MUIBadge,
59
65
  baseCheckbox: MUICheckbox,
60
66
  baseDivider: MUIDivider,
61
67
  baseMenuList: MUIMenuList,
62
- baseMenuItem: MUIMenuItem,
68
+ baseMenuItem: BaseMenuItem,
63
69
  baseTextField: MUITextField,
64
70
  baseFormControl: MUIFormControl,
65
71
  baseSelect: MUISelect,
@@ -71,5 +77,25 @@ const materialSlots = _extends({}, iconSlots, {
71
77
  baseInputLabel: MUIInputLabel,
72
78
  baseSelectOption: MUISelectOption,
73
79
  baseChip: MUIChip
74
- });
75
- export default materialSlots;
80
+ };
81
+ const materialSlots = _extends({}, baseSlots, iconSlots);
82
+ export default materialSlots;
83
+ function BaseMenuItem(props) {
84
+ const {
85
+ inert,
86
+ iconStart,
87
+ iconEnd,
88
+ children
89
+ } = props,
90
+ other = _objectWithoutPropertiesLoose(props, _excluded);
91
+ if (inert) {
92
+ other.disableRipple = true;
93
+ }
94
+ return /*#__PURE__*/React.createElement(MUIMenuItem, other, [iconStart && /*#__PURE__*/_jsx(MUIListItemIcon, {
95
+ children: iconStart
96
+ }, "1"), /*#__PURE__*/_jsx(MUIListItemText, {
97
+ children: children
98
+ }, "2"), iconEnd && /*#__PURE__*/_jsx(MUIListItemIcon, {
99
+ children: iconEnd
100
+ }, "3")]);
101
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -45,7 +45,7 @@ const DataGridRaw = /*#__PURE__*/React.forwardRef(function DataGrid(inProps, ref
45
45
  style: props.style,
46
46
  sx: props.sx,
47
47
  ref: ref
48
- }, props.forwardedProps, {
48
+ }, props.slotProps?.root, {
49
49
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GridHeader, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GridBody, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.GridFooterPlaceholder, {})]
50
50
  }))
51
51
  });
@@ -102,6 +102,7 @@ DataGridRaw.propTypes = {
102
102
  */
103
103
  autosizeOptions: _propTypes.default.shape({
104
104
  columns: _propTypes.default.arrayOf(_propTypes.default.string),
105
+ disableColumnVirtualization: _propTypes.default.bool,
105
106
  expand: _propTypes.default.bool,
106
107
  includeHeaders: _propTypes.default.bool,
107
108
  includeOutliers: _propTypes.default.bool,
@@ -255,11 +256,6 @@ DataGridRaw.propTypes = {
255
256
  quickFilterLogicOperator: _propTypes.default.oneOf(['and', 'or']),
256
257
  quickFilterValues: _propTypes.default.array
257
258
  }),
258
- /**
259
- * Forwarded props for the Data Grid root element.
260
- * @ignore - do not document.
261
- */
262
- forwardedProps: _propTypes.default.object,
263
259
  /**
264
260
  * Function that applies CSS classes dynamically on cells.
265
261
  * @param {GridCellParams} params With all properties from [[GridCellParams]].
@@ -27,12 +27,12 @@ const DATA_GRID_FORCED_PROPS = {
27
27
  };
28
28
  const defaultSlots = _defaultGridSlotsComponents.DATA_GRID_DEFAULT_SLOTS_COMPONENTS;
29
29
  const useDataGridProps = inProps => {
30
- const themedProps = (0, _utils.useProps)(
30
+ const themedProps =
31
31
  // eslint-disable-next-line material-ui/mui-name-matches-component-name
32
32
  (0, _styles.useThemeProps)({
33
33
  props: inProps,
34
34
  name: 'MuiDataGrid'
35
- }));
35
+ });
36
36
  const localeText = React.useMemo(() => (0, _extends2.default)({}, _constants.GRID_DEFAULT_LOCALE_TEXT, themedProps.localeText), [themedProps.localeText]);
37
37
  const slots = React.useMemo(() => (0, _utils.computeSlots)({
38
38
  defaultSlots,
@@ -32,6 +32,7 @@ var _GridScrollbarFillerCell = require("./GridScrollbarFillerCell");
32
32
  var _getPinnedCellOffset = require("../internals/utils/getPinnedCellOffset");
33
33
  var _useGridConfiguration = require("../hooks/utils/useGridConfiguration");
34
34
  var _useGridPrivateApiContext = require("../hooks/utils/useGridPrivateApiContext");
35
+ var _hooks = require("../hooks");
35
36
  var _jsxRuntime = require("react/jsx-runtime");
36
37
  const _excluded = ["selected", "rowId", "row", "index", "style", "rowHeight", "className", "visibleColumns", "pinnedColumns", "offsetTop", "offsetLeft", "dimensions", "renderContext", "focusedColumnIndex", "isFirstVisible", "isLastVisible", "isNotVisible", "showBottomBorder", "tabbableCell", "onClick", "onDoubleClick", "onMouseEnter", "onMouseLeave", "onMouseOut", "onMouseOver"];
37
38
  const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
@@ -76,6 +77,7 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
76
77
  const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
77
78
  const editing = apiRef.current.getRowMode(rowId) === _gridEditRowModel.GridRowModes.Edit;
78
79
  const editable = rootProps.editMode === _gridEditRowModel.GridEditModes.Row;
80
+ const hasColumnVirtualization = (0, _useGridSelector.useGridSelector)(apiRef, _hooks.gridVirtualizationColumnEnabledSelector);
79
81
  const hasFocusCell = focusedColumnIndex !== undefined;
80
82
  const hasVirtualFocusCellLeft = hasFocusCell && focusedColumnIndex >= pinnedColumns.left.length && focusedColumnIndex < renderContext.firstColumnIndex;
81
83
  const hasVirtualFocusCellRight = hasFocusCell && focusedColumnIndex < visibleColumns.length - pinnedColumns.right.length && focusedColumnIndex >= renderContext.lastColumnIndex;
@@ -257,7 +259,16 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
257
259
  if (hasVirtualFocusCellLeft) {
258
260
  cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, _GridCell.PinnedPosition.VIRTUAL));
259
261
  }
260
- for (let i = renderContext.firstColumnIndex; i < renderContext.lastColumnIndex; i += 1) {
262
+ let firstColumnIndex;
263
+ let lastColumnIndex;
264
+ if (!rootProps.disableVirtualization && !hasColumnVirtualization) {
265
+ firstColumnIndex = 0;
266
+ lastColumnIndex = visibleColumns.length;
267
+ } else {
268
+ firstColumnIndex = renderContext.firstColumnIndex;
269
+ lastColumnIndex = renderContext.lastColumnIndex;
270
+ }
271
+ for (let i = firstColumnIndex; i < lastColumnIndex; i += 1) {
261
272
  const column = visibleColumns[i];
262
273
  const indexInSection = i - pinnedColumns.left.length;
263
274
  if (!column) {
@@ -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 _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
14
13
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
15
14
  var _jsxRuntime = require("react/jsx-runtime");
16
15
  const _excluded = ["label", "icon", "showInMenu", "onClick"],
@@ -54,13 +53,12 @@ const GridActionsCellItem = exports.GridActionsCellItem = /*#__PURE__*/React.for
54
53
  closeMenu?.();
55
54
  }
56
55
  };
57
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
56
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
58
57
  ref: ref
59
58
  }, other, {
60
59
  onClick: handleClick,
61
- children: [icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
62
- children: icon
63
- }), label]
60
+ iconStart: icon,
61
+ children: label
64
62
  }));
65
63
  });
66
64
  process.env.NODE_ENV !== "production" ? GridActionsCellItem.propTypes = {
@@ -8,8 +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 _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
12
- var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
13
11
  var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
14
12
  var _useGridRootProps = require("../../../../hooks/utils/useGridRootProps");
15
13
  var _jsxRuntime = require("react/jsx-runtime");
@@ -27,15 +25,12 @@ function GridColumnMenuFilterItem(props) {
27
25
  if (rootProps.disableColumnFilter || !colDef.filterable) {
28
26
  return null;
29
27
  }
30
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
28
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
31
29
  onClick: showFilter,
32
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
33
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuFilterIcon, {
34
- fontSize: "small"
35
- })
36
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
37
- children: apiRef.current.getLocaleText('columnMenuFilter')
38
- })]
30
+ iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuFilterIcon, {
31
+ fontSize: "small"
32
+ }),
33
+ children: apiRef.current.getLocaleText('columnMenuFilter')
39
34
  });
40
35
  }
41
36
  process.env.NODE_ENV !== "production" ? GridColumnMenuFilterItem.propTypes = {
@@ -8,8 +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 _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
12
- var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
13
11
  var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
14
12
  var _useGridRootProps = require("../../../../hooks/utils/useGridRootProps");
15
13
  var _columns = require("../../../../hooks/features/columns");
@@ -43,16 +41,13 @@ function GridColumnMenuHideItem(props) {
43
41
  if (colDef.hideable === false) {
44
42
  return null;
45
43
  }
46
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
44
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
47
45
  onClick: toggleColumn,
48
46
  disabled: disabled,
49
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
50
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuHideIcon, {
51
- fontSize: "small"
52
- })
53
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
54
- children: apiRef.current.getLocaleText('columnMenuHideColumn')
55
- })]
47
+ iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuHideIcon, {
48
+ fontSize: "small"
49
+ }),
50
+ children: apiRef.current.getLocaleText('columnMenuHideColumn')
56
51
  });
57
52
  }
58
53
  process.env.NODE_ENV !== "production" ? GridColumnMenuHideItem.propTypes = {
@@ -8,8 +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 _ListItemIcon = _interopRequireDefault(require("@mui/material/ListItemIcon"));
12
- var _ListItemText = _interopRequireDefault(require("@mui/material/ListItemText"));
13
11
  var _gridPreferencePanelsValue = require("../../../../hooks/features/preferencesPanel/gridPreferencePanelsValue");
14
12
  var _useGridApiContext = require("../../../../hooks/utils/useGridApiContext");
15
13
  var _useGridRootProps = require("../../../../hooks/utils/useGridRootProps");
@@ -27,15 +25,12 @@ function GridColumnMenuManageItem(props) {
27
25
  if (rootProps.disableColumnSelector) {
28
26
  return null;
29
27
  }
30
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(rootProps.slots.baseMenuItem, {
28
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
31
29
  onClick: showColumns,
32
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemIcon.default, {
33
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuManageColumnsIcon, {
34
- fontSize: "small"
35
- })
36
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemText.default, {
37
- children: apiRef.current.getLocaleText('columnMenuManageColumns')
38
- })]
30
+ iconStart: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnMenuManageColumnsIcon, {
31
+ fontSize: "small"
32
+ }),
33
+ children: apiRef.current.getLocaleText('columnMenuManageColumns')
39
34
  });
40
35
  }
41
36
  process.env.NODE_ENV !== "production" ? GridColumnMenuManageItem.propTypes = {