@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.
- package/CHANGELOG.md +103 -0
- package/DataGrid/DataGrid.js +2 -6
- package/DataGrid/useDataGridProps.js +3 -3
- package/components/GridRow.js +12 -1
- package/components/cell/GridActionsCellItem.js +4 -6
- package/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
- package/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
- package/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
- package/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
- package/components/toolbar/GridToolbarDensitySelector.js +3 -5
- package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
- package/components/toolbar/GridToolbarFilterButton.js +3 -0
- package/components/toolbar/GridToolbarQuickFilter.js +27 -23
- package/components/virtualization/GridMainContainer.js +1 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
- package/hooks/features/columnResize/gridColumnResizeApi.d.ts +6 -0
- package/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
- package/hooks/features/columnResize/useGridColumnResize.d.ts +1 -1
- package/hooks/features/columnResize/useGridColumnResize.js +9 -4
- package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
- package/hooks/features/columns/gridColumnsUtils.js +2 -1
- package/index.js +1 -1
- package/internals/utils/index.d.ts +0 -1
- package/internals/utils/index.js +0 -1
- package/locales/koKR.js +45 -49
- package/material/index.js +30 -4
- package/models/gridBaseSlots.d.ts +21 -0
- package/models/gridBaseSlots.js +1 -0
- package/models/gridSlotsComponentsProps.d.ts +25 -5
- package/models/props/DataGridProps.d.ts +0 -5
- package/modern/DataGrid/DataGrid.js +2 -6
- package/modern/DataGrid/useDataGridProps.js +3 -3
- package/modern/components/GridRow.js +12 -1
- package/modern/components/cell/GridActionsCellItem.js +4 -6
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +6 -11
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +6 -11
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +6 -11
- package/modern/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
- package/modern/components/toolbar/GridToolbarDensitySelector.js +3 -5
- package/modern/components/toolbar/GridToolbarFilterButton.js +3 -0
- package/modern/components/toolbar/GridToolbarQuickFilter.js +27 -23
- package/modern/components/virtualization/GridMainContainer.js +1 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
- package/modern/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
- package/modern/hooks/features/columnResize/useGridColumnResize.js +9 -4
- package/modern/hooks/features/columns/gridColumnsUtils.js +2 -1
- package/modern/index.js +1 -1
- package/modern/internals/utils/index.js +0 -1
- package/modern/locales/koKR.js +45 -49
- package/modern/material/index.js +30 -4
- package/modern/models/gridBaseSlots.js +1 -0
- package/node/DataGrid/DataGrid.js +2 -6
- package/node/DataGrid/useDataGridProps.js +2 -2
- package/node/components/GridRow.js +12 -1
- package/node/components/cell/GridActionsCellItem.js +3 -5
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuFilterItem.js +5 -10
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuHideItem.js +5 -10
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuManageItem.js +5 -10
- package/node/components/menu/columnMenu/menuItems/GridColumnMenuSortItem.js +13 -22
- package/node/components/toolbar/GridToolbarDensitySelector.js +3 -5
- package/node/components/toolbar/GridToolbarFilterButton.js +3 -0
- package/node/components/toolbar/GridToolbarQuickFilter.js +27 -23
- package/node/components/virtualization/GridMainContainer.js +1 -1
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
- package/node/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
- package/node/hooks/features/columnResize/useGridColumnResize.js +9 -4
- package/node/hooks/features/columns/gridColumnsUtils.js +2 -1
- package/node/index.js +1 -1
- package/node/internals/utils/index.js +0 -11
- package/node/locales/koKR.js +45 -49
- package/node/material/index.js +31 -4
- package/node/models/gridBaseSlots.js +5 -0
- package/package.json +2 -2
- package/internals/utils/useProps.d.ts +0 -1
- package/internals/utils/useProps.js +0 -24
- package/joy/icons.d.ts +0 -32
- package/joy/icons.js +0 -431
- package/joy/index.d.ts +0 -2
- package/joy/index.js +0 -2
- package/joy/joySlots.d.ts +0 -3
- package/joy/joySlots.js +0 -389
- package/joy/package.json +0 -6
- package/modern/internals/utils/useProps.js +0 -24
- package/modern/joy/icons.js +0 -431
- package/modern/joy/index.js +0 -2
- package/modern/joy/joySlots.js +0 -389
- package/node/internals/utils/useProps.js +0 -30
- package/node/joy/icons.js +0 -439
- package/node/joy/index.js +0 -13
- 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
|
-
|
|
35
|
-
|
|
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: "
|
|
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.
|
|
104
|
-
|
|
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
|
|
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
|
-
|
|
91
|
-
|
|
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,
|
|
@@ -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
|
-
|
|
490
|
-
|
|
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
|
-
|
|
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
|
|
324
|
+
return columnHeadersHeight + columnGroupHeadersHeight * maxDepth + filterHeadersHeight;
|
|
324
325
|
}
|
package/modern/index.js
CHANGED
package/modern/locales/koKR.js
CHANGED
|
@@ -24,16 +24,15 @@ const koKRGrid = {
|
|
|
24
24
|
toolbarQuickFilterLabel: '검색',
|
|
25
25
|
toolbarQuickFilterDeleteIconLabel: '초기화',
|
|
26
26
|
// Prompt toolbar field
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
columnsManagementSearchTitle: '검색',
|
|
44
|
+
columnsManagementNoColumns: '열이 없습니다.',
|
|
45
|
+
columnsManagementShowHideAllText: '모두 보기/숨기기',
|
|
46
|
+
columnsManagementReset: '초기화',
|
|
47
|
+
columnsManagementDeleteIconLabel: '제거',
|
|
50
48
|
// Filter panel text
|
|
51
49
|
filterPanelAddFilter: '필터 추가',
|
|
52
|
-
|
|
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
|
-
|
|
61
|
+
filterOperatorDoesNotContain: '포함하지 않는',
|
|
64
62
|
filterOperatorEquals: '값이 같은',
|
|
65
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
'filterOperator=': '=',
|
|
76
|
+
'filterOperator!=': '!=',
|
|
77
|
+
'filterOperator>': '>',
|
|
78
|
+
'filterOperator>=': '>=',
|
|
79
|
+
'filterOperator<': '<',
|
|
80
|
+
'filterOperator<=': '<=',
|
|
84
81
|
// Header filter operators text
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
-
|
|
110
|
+
columnMenuManageColumns: '열 관리',
|
|
115
111
|
columnMenuFilter: '필터',
|
|
116
112
|
columnMenuHideColumn: '열 숨기기',
|
|
117
113
|
columnMenuUnsort: '정렬 해제',
|
package/modern/material/index.js
CHANGED
|
@@ -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
|
|
63
|
+
const baseSlots = {
|
|
58
64
|
baseBadge: MUIBadge,
|
|
59
65
|
baseCheckbox: MUICheckbox,
|
|
60
66
|
baseDivider: MUIDivider,
|
|
61
67
|
baseMenuList: MUIMenuList,
|
|
62
|
-
baseMenuItem:
|
|
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
|
-
|
|
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.
|
|
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 =
|
|
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
|
-
|
|
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.
|
|
56
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({
|
|
58
57
|
ref: ref
|
|
59
58
|
}, other, {
|
|
60
59
|
onClick: handleClick,
|
|
61
|
-
|
|
62
|
-
|
|
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.
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
|
|
31
29
|
onClick: showFilter,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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.
|
|
44
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
|
|
47
45
|
onClick: toggleColumn,
|
|
48
46
|
disabled: disabled,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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.
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, {
|
|
31
29
|
onClick: showColumns,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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 = {
|