@mui/x-data-grid 6.2.0 → 6.3.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 +118 -1
- package/components/GridHeader.d.ts +2 -2
- package/components/GridHeader.js +4 -6
- package/components/base/GridBody.d.ts +0 -1
- package/components/base/GridBody.js +39 -15
- package/components/cell/GridActionsCell.d.ts +2 -3
- package/components/cell/GridActionsCell.js +9 -1
- package/components/columnSelection/GridCellCheckboxRenderer.d.ts +1 -1
- package/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
- package/components/containers/GridMainContainer.d.ts +3 -1
- package/components/containers/GridMainContainer.js +3 -2
- package/components/containers/GridRoot.js +0 -5
- package/components/containers/GridRootStyles.js +3 -1
- package/components/index.d.ts +0 -1
- package/components/index.js +0 -1
- package/components/panel/GridColumnsPanel.js +3 -2
- package/components/panel/GridPanel.d.ts +3 -3
- package/components/panel/GridPanel.js +2 -1
- package/components/panel/filterPanel/GridFilterPanel.js +5 -2
- package/constants/gridClasses.js +1 -1
- package/hooks/features/columnGrouping/useGridColumnGrouping.js +22 -15
- package/hooks/features/dimensions/gridDimensionsApi.d.ts +4 -0
- package/hooks/features/dimensions/useGridDimensions.js +49 -10
- package/hooks/features/export/useGridPrintExport.js +3 -1
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -0
- package/hooks/features/virtualization/useGridVirtualScroller.js +11 -5
- package/index.js +1 -1
- package/joy/index.d.ts +2 -0
- package/joy/index.js +2 -0
- package/joy/joySlots.d.ts +4 -0
- package/joy/joySlots.js +179 -0
- package/joy/package.json +6 -0
- package/legacy/components/GridHeader.js +4 -6
- package/legacy/components/base/GridBody.js +40 -16
- package/legacy/components/cell/GridActionsCell.js +11 -2
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/legacy/components/containers/GridMainContainer.js +3 -2
- package/legacy/components/containers/GridRoot.js +0 -5
- package/legacy/components/containers/GridRootStyles.js +3 -1
- package/legacy/components/index.js +0 -1
- package/legacy/components/panel/GridColumnsPanel.js +3 -2
- package/legacy/components/panel/GridPanel.js +2 -1
- package/legacy/components/panel/filterPanel/GridFilterPanel.js +5 -2
- package/legacy/constants/gridClasses.js +1 -1
- package/legacy/hooks/features/columnGrouping/useGridColumnGrouping.js +22 -15
- package/legacy/hooks/features/dimensions/useGridDimensions.js +55 -12
- package/legacy/hooks/features/export/useGridPrintExport.js +3 -1
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +12 -6
- package/legacy/index.js +1 -1
- package/legacy/joy/index.js +2 -0
- package/legacy/joy/joySlots.js +180 -0
- package/legacy/locales/frFR.js +2 -2
- package/legacy/locales/trTR.js +2 -2
- package/legacy/locales/zhCN.js +2 -2
- package/locales/frFR.js +2 -2
- package/locales/trTR.js +2 -2
- package/locales/zhCN.js +2 -2
- package/material/index.d.ts +2 -2
- package/models/gridSlotsComponent.d.ts +2 -2
- package/modern/components/GridHeader.js +4 -6
- package/modern/components/base/GridBody.js +39 -15
- package/modern/components/cell/GridActionsCell.js +9 -1
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/modern/components/containers/GridMainContainer.js +3 -2
- package/modern/components/containers/GridRoot.js +0 -5
- package/modern/components/containers/GridRootStyles.js +3 -1
- package/modern/components/index.js +0 -1
- package/modern/components/panel/GridColumnsPanel.js +3 -2
- package/modern/components/panel/GridPanel.js +2 -1
- package/modern/components/panel/filterPanel/GridFilterPanel.js +5 -2
- package/modern/constants/gridClasses.js +1 -1
- package/modern/hooks/features/columnGrouping/useGridColumnGrouping.js +21 -14
- package/modern/hooks/features/dimensions/useGridDimensions.js +48 -10
- package/modern/hooks/features/export/useGridPrintExport.js +3 -1
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +11 -5
- package/modern/index.js +1 -1
- package/modern/joy/index.js +2 -0
- package/modern/joy/joySlots.js +177 -0
- package/modern/locales/frFR.js +2 -2
- package/modern/locales/trTR.js +2 -2
- package/modern/locales/zhCN.js +2 -2
- package/node/components/GridHeader.js +5 -8
- package/node/components/base/GridBody.js +39 -15
- package/node/components/cell/GridActionsCell.js +9 -1
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -1
- package/node/components/containers/GridMainContainer.js +5 -3
- package/node/components/containers/GridRoot.js +0 -5
- package/node/components/containers/GridRootStyles.js +3 -1
- package/node/components/index.js +0 -11
- package/node/components/panel/GridColumnsPanel.js +3 -2
- package/node/components/panel/GridPanel.js +2 -1
- package/node/components/panel/filterPanel/GridFilterPanel.js +5 -2
- package/node/constants/gridClasses.js +1 -1
- package/node/hooks/features/columnGrouping/useGridColumnGrouping.js +20 -11
- package/node/hooks/features/dimensions/useGridDimensions.js +47 -9
- package/node/hooks/features/export/useGridPrintExport.js +3 -1
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +11 -5
- package/node/index.js +1 -1
- package/node/joy/index.js +13 -0
- package/node/joy/joySlots.js +185 -0
- package/node/locales/frFR.js +2 -2
- package/node/locales/trTR.js +2 -2
- package/node/locales/zhCN.js +2 -2
- package/package.json +3 -3
- package/components/GridAutoSizer.d.ts +0 -44
- package/components/GridAutoSizer.js +0 -126
- package/legacy/components/GridAutoSizer.js +0 -132
- package/modern/components/GridAutoSizer.js +0 -125
- package/node/components/GridAutoSizer.js +0 -132
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["touchRippleRef", "inputProps", "onChange", "color", "size", "checked", "sx", "value", "inputRef"],
|
|
4
|
+
_excluded2 = ["startIcon", "color", "endIcon", "size", "sx", "variant"],
|
|
5
|
+
_excluded3 = ["color", "size", "sx"],
|
|
6
|
+
_excluded4 = ["name", "checkedIcon", "color", "disableRipple", "disableFocusRipple", "disableTouchRipple", "edge", "icon", "inputProps", "inputRef", "size", "sx", "onChange", "onClick"];
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import JoyCheckbox from '@mui/joy/Checkbox';
|
|
9
|
+
import JoyInput from '@mui/joy/Input';
|
|
10
|
+
import JoyFormControl from '@mui/joy/FormControl';
|
|
11
|
+
import JoyFormLabel from '@mui/joy/FormLabel';
|
|
12
|
+
import JoyButton from '@mui/joy/Button';
|
|
13
|
+
import JoyIconButton from '@mui/joy/IconButton';
|
|
14
|
+
import JoySwitch from '@mui/joy/Switch';
|
|
15
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
function convertColor(color) {
|
|
18
|
+
if (color === 'secondary') {
|
|
19
|
+
return 'primary';
|
|
20
|
+
}
|
|
21
|
+
if (color === 'error') {
|
|
22
|
+
return 'danger';
|
|
23
|
+
}
|
|
24
|
+
if (color === 'default' || color === 'inherit') {
|
|
25
|
+
return 'neutral';
|
|
26
|
+
}
|
|
27
|
+
return color;
|
|
28
|
+
}
|
|
29
|
+
function convertSize(size) {
|
|
30
|
+
return size ? {
|
|
31
|
+
small: 'sm',
|
|
32
|
+
medium: 'md',
|
|
33
|
+
large: 'lg'
|
|
34
|
+
}[size] : size;
|
|
35
|
+
}
|
|
36
|
+
function convertVariant(variant) {
|
|
37
|
+
return variant ? {
|
|
38
|
+
outlined: 'outlined',
|
|
39
|
+
contained: 'solid',
|
|
40
|
+
text: 'plain',
|
|
41
|
+
standard: 'plain',
|
|
42
|
+
filled: 'soft'
|
|
43
|
+
}[variant] : variant;
|
|
44
|
+
}
|
|
45
|
+
const Checkbox = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
46
|
+
let {
|
|
47
|
+
inputProps,
|
|
48
|
+
onChange,
|
|
49
|
+
checked,
|
|
50
|
+
inputRef
|
|
51
|
+
} = _ref,
|
|
52
|
+
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
53
|
+
return /*#__PURE__*/_jsx(JoyCheckbox, _extends({}, props, {
|
|
54
|
+
slotProps: {
|
|
55
|
+
input: _extends({}, inputProps, {
|
|
56
|
+
ref: inputRef
|
|
57
|
+
})
|
|
58
|
+
},
|
|
59
|
+
ref: ref,
|
|
60
|
+
checked: checked,
|
|
61
|
+
onChange: onChange
|
|
62
|
+
}));
|
|
63
|
+
});
|
|
64
|
+
const TextField = /*#__PURE__*/React.forwardRef(({
|
|
65
|
+
onChange,
|
|
66
|
+
label,
|
|
67
|
+
placeholder,
|
|
68
|
+
value,
|
|
69
|
+
inputRef,
|
|
70
|
+
type
|
|
71
|
+
}, ref) => {
|
|
72
|
+
return /*#__PURE__*/_jsxs(JoyFormControl, {
|
|
73
|
+
ref: ref,
|
|
74
|
+
children: [/*#__PURE__*/_jsx(JoyFormLabel, {
|
|
75
|
+
sx: {
|
|
76
|
+
fontSize: 12
|
|
77
|
+
},
|
|
78
|
+
children: label
|
|
79
|
+
}), /*#__PURE__*/_jsx(JoyInput, {
|
|
80
|
+
type: type,
|
|
81
|
+
value: value,
|
|
82
|
+
onChange: onChange,
|
|
83
|
+
placeholder: placeholder,
|
|
84
|
+
size: "sm",
|
|
85
|
+
slotProps: {
|
|
86
|
+
input: {
|
|
87
|
+
ref: inputRef
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
})]
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
const Button = /*#__PURE__*/React.forwardRef(function Button(_ref2, ref) {
|
|
94
|
+
let {
|
|
95
|
+
startIcon,
|
|
96
|
+
color,
|
|
97
|
+
endIcon,
|
|
98
|
+
size,
|
|
99
|
+
sx,
|
|
100
|
+
variant
|
|
101
|
+
} = _ref2,
|
|
102
|
+
props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
|
|
103
|
+
return /*#__PURE__*/_jsx(JoyButton, _extends({}, props, {
|
|
104
|
+
size: convertSize(size),
|
|
105
|
+
color: convertColor(color),
|
|
106
|
+
variant: convertVariant(variant) ?? 'plain',
|
|
107
|
+
ref: ref,
|
|
108
|
+
startDecorator: startIcon,
|
|
109
|
+
endDecorator: endIcon,
|
|
110
|
+
sx: sx
|
|
111
|
+
}));
|
|
112
|
+
});
|
|
113
|
+
const IconButton = /*#__PURE__*/React.forwardRef(function IconButton(_ref3, ref) {
|
|
114
|
+
let {
|
|
115
|
+
color,
|
|
116
|
+
size,
|
|
117
|
+
sx
|
|
118
|
+
} = _ref3,
|
|
119
|
+
props = _objectWithoutPropertiesLoose(_ref3, _excluded3);
|
|
120
|
+
return /*#__PURE__*/_jsx(JoyIconButton, _extends({}, props, {
|
|
121
|
+
size: convertSize(size),
|
|
122
|
+
color: convertColor(color) ?? 'neutral',
|
|
123
|
+
variant: "plain",
|
|
124
|
+
ref: ref,
|
|
125
|
+
sx: sx
|
|
126
|
+
}));
|
|
127
|
+
});
|
|
128
|
+
const Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref4, ref) {
|
|
129
|
+
let {
|
|
130
|
+
name,
|
|
131
|
+
color: colorProp,
|
|
132
|
+
edge,
|
|
133
|
+
icon,
|
|
134
|
+
inputProps,
|
|
135
|
+
inputRef,
|
|
136
|
+
size,
|
|
137
|
+
sx,
|
|
138
|
+
onChange,
|
|
139
|
+
onClick
|
|
140
|
+
} = _ref4,
|
|
141
|
+
props = _objectWithoutPropertiesLoose(_ref4, _excluded4);
|
|
142
|
+
return /*#__PURE__*/_jsx(JoySwitch, _extends({}, props, {
|
|
143
|
+
onChange: onChange,
|
|
144
|
+
size: convertSize(size),
|
|
145
|
+
color: convertColor(colorProp),
|
|
146
|
+
ref: ref,
|
|
147
|
+
slotProps: {
|
|
148
|
+
input: _extends({}, inputProps, {
|
|
149
|
+
name,
|
|
150
|
+
onClick: onClick,
|
|
151
|
+
ref: inputRef
|
|
152
|
+
}),
|
|
153
|
+
thumb: {
|
|
154
|
+
children: icon
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
sx: [_extends({}, edge === 'start' && {
|
|
158
|
+
ml: '-8px'
|
|
159
|
+
}, edge === 'end' && {
|
|
160
|
+
mr: '-8px'
|
|
161
|
+
}), ...(Array.isArray(sx) ? sx : [sx])]
|
|
162
|
+
}));
|
|
163
|
+
});
|
|
164
|
+
const joySlots = {
|
|
165
|
+
baseCheckbox: Checkbox,
|
|
166
|
+
baseTextField: TextField,
|
|
167
|
+
baseButton: Button,
|
|
168
|
+
baseIconButton: IconButton,
|
|
169
|
+
baseSwitch: Switch
|
|
170
|
+
// BaseFormControl: MUIFormControl,
|
|
171
|
+
// baseSelect: Select,
|
|
172
|
+
// baseSelectOption: Option,
|
|
173
|
+
// BaseTooltip: MUITooltip,
|
|
174
|
+
// BasePopper: MUIPopper,
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
export default joySlots;
|
package/modern/locales/frFR.js
CHANGED
|
@@ -37,7 +37,7 @@ const frFRGrid = {
|
|
|
37
37
|
columnsPanelHideAllButton: 'Tout cacher',
|
|
38
38
|
// Filter panel text
|
|
39
39
|
filterPanelAddFilter: 'Ajouter un filtre',
|
|
40
|
-
|
|
40
|
+
filterPanelRemoveAll: 'Tout supprimer',
|
|
41
41
|
filterPanelDeleteIconLabel: 'Supprimer',
|
|
42
42
|
filterPanelLogicOperator: 'Opérateur logique',
|
|
43
43
|
filterPanelOperator: 'Opérateur',
|
|
@@ -67,7 +67,7 @@ const frFRGrid = {
|
|
|
67
67
|
// Column menu text
|
|
68
68
|
columnMenuLabel: 'Menu',
|
|
69
69
|
columnMenuShowColumns: 'Afficher les colonnes',
|
|
70
|
-
|
|
70
|
+
columnMenuManageColumns: 'Gérer les colonnes',
|
|
71
71
|
columnMenuFilter: 'Filtrer',
|
|
72
72
|
columnMenuHideColumn: 'Cacher',
|
|
73
73
|
columnMenuUnsort: 'Annuler le tri',
|
package/modern/locales/trTR.js
CHANGED
|
@@ -37,7 +37,7 @@ const trTRGrid = {
|
|
|
37
37
|
columnsPanelHideAllButton: 'Hepsini gizle',
|
|
38
38
|
// Filter panel text
|
|
39
39
|
filterPanelAddFilter: 'Filtre Ekle',
|
|
40
|
-
|
|
40
|
+
filterPanelRemoveAll: 'Hepsini kaldır',
|
|
41
41
|
filterPanelDeleteIconLabel: 'Kaldır',
|
|
42
42
|
filterPanelLogicOperator: 'Mantıksal operatörler',
|
|
43
43
|
filterPanelOperator: 'Operatör',
|
|
@@ -67,7 +67,7 @@ const trTRGrid = {
|
|
|
67
67
|
// Column menu text
|
|
68
68
|
columnMenuLabel: 'Menü',
|
|
69
69
|
columnMenuShowColumns: 'Sütunları göster',
|
|
70
|
-
|
|
70
|
+
columnMenuManageColumns: 'Sütunları yönet',
|
|
71
71
|
columnMenuFilter: 'Filtre uygula',
|
|
72
72
|
columnMenuHideColumn: 'Gizle',
|
|
73
73
|
columnMenuUnsort: 'Sıralama',
|
package/modern/locales/zhCN.js
CHANGED
|
@@ -37,7 +37,7 @@ const zhCNGrid = {
|
|
|
37
37
|
columnsPanelHideAllButton: '隐藏所有',
|
|
38
38
|
// Filter panel text
|
|
39
39
|
filterPanelAddFilter: '添加筛选器',
|
|
40
|
-
|
|
40
|
+
filterPanelRemoveAll: '清除全部',
|
|
41
41
|
filterPanelDeleteIconLabel: '删除',
|
|
42
42
|
filterPanelLogicOperator: '逻辑操作器',
|
|
43
43
|
filterPanelOperator: '操作器',
|
|
@@ -67,7 +67,7 @@ const zhCNGrid = {
|
|
|
67
67
|
// Column menu text
|
|
68
68
|
columnMenuLabel: '菜单',
|
|
69
69
|
columnMenuShowColumns: '显示',
|
|
70
|
-
|
|
70
|
+
columnMenuManageColumns: '管理列',
|
|
71
71
|
columnMenuFilter: '筛选器',
|
|
72
72
|
columnMenuHideColumn: '隐藏',
|
|
73
73
|
columnMenuUnsort: '恢复默认',
|
|
@@ -4,19 +4,16 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.GridHeader =
|
|
7
|
+
exports.GridHeader = GridHeader;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
11
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
12
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
13
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
-
|
|
14
|
+
function GridHeader() {
|
|
15
15
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
16
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
17
|
-
ref: ref
|
|
18
|
-
}, props, {
|
|
16
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
19
17
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.preferencesPanel, (0, _extends2.default)({}, rootProps.slotProps?.preferencesPanel)), rootProps.slots.toolbar && /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.toolbar, (0, _extends2.default)({}, rootProps.slotProps?.toolbar))]
|
|
20
|
-
})
|
|
21
|
-
}
|
|
22
|
-
exports.GridHeader = GridHeader;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
@@ -8,10 +8,10 @@ exports.GridBody = GridBody;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
var _utils = require("@mui/utils");
|
|
11
12
|
var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
|
|
12
13
|
var _useGridSelector = require("../../hooks/utils/useGridSelector");
|
|
13
14
|
var _GridMainContainer = require("../containers/GridMainContainer");
|
|
14
|
-
var _GridAutoSizer = require("../GridAutoSizer");
|
|
15
15
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
16
16
|
var _gridColumnsSelector = require("../../hooks/features/columns/gridColumnsSelector");
|
|
17
17
|
var _gridFilterSelector = require("../../hooks/features/filter/gridFilterSelector");
|
|
@@ -25,12 +25,12 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
25
25
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
26
26
|
function GridBody(props) {
|
|
27
27
|
const {
|
|
28
|
-
children,
|
|
29
28
|
VirtualScrollerComponent,
|
|
30
29
|
ColumnHeadersProps
|
|
31
30
|
} = props;
|
|
32
31
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
33
32
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
33
|
+
const rootRef = React.useRef(null);
|
|
34
34
|
const visibleColumns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector);
|
|
35
35
|
const filterColumnLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridFilterActiveItemsLookupSelector);
|
|
36
36
|
const sortColumnLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridSortingSelector.gridSortColumnLookupSelector);
|
|
@@ -47,6 +47,31 @@ function GridBody(props) {
|
|
|
47
47
|
const columnGroupsHeaderStructure = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnGroupsSelector.gridColumnGroupsHeaderStructureSelector);
|
|
48
48
|
const hasOtherElementInTabSequence = !(columnGroupHeaderTabIndexState === null && columnHeaderTabIndexState === null && cellTabIndexState === null);
|
|
49
49
|
const [isVirtualizationDisabled, setIsVirtualizationDisabled] = React.useState(rootProps.disableVirtualization);
|
|
50
|
+
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
51
|
+
apiRef.current.computeSizeAndPublishResizeEvent();
|
|
52
|
+
const elementToObserve = rootRef.current;
|
|
53
|
+
if (typeof ResizeObserver === 'undefined') {
|
|
54
|
+
return () => {};
|
|
55
|
+
}
|
|
56
|
+
let animationFrame;
|
|
57
|
+
const observer = new ResizeObserver(() => {
|
|
58
|
+
// See https://github.com/mui/mui-x/issues/8733
|
|
59
|
+
animationFrame = window.requestAnimationFrame(() => {
|
|
60
|
+
apiRef.current.computeSizeAndPublishResizeEvent();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
if (elementToObserve) {
|
|
64
|
+
observer.observe(elementToObserve);
|
|
65
|
+
}
|
|
66
|
+
return () => {
|
|
67
|
+
if (animationFrame) {
|
|
68
|
+
window.cancelAnimationFrame(animationFrame);
|
|
69
|
+
}
|
|
70
|
+
if (elementToObserve) {
|
|
71
|
+
observer.unobserve(elementToObserve);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}, [apiRef]);
|
|
50
75
|
const disableVirtualization = React.useCallback(() => {
|
|
51
76
|
setIsVirtualizationDisabled(true);
|
|
52
77
|
}, []);
|
|
@@ -73,10 +98,9 @@ function GridBody(props) {
|
|
|
73
98
|
columnHeadersElementRef: columnHeadersRef,
|
|
74
99
|
virtualScrollerRef
|
|
75
100
|
});
|
|
76
|
-
const
|
|
77
|
-
apiRef.current.publishEvent('resize', size);
|
|
78
|
-
}, [apiRef]);
|
|
101
|
+
const hasDimensions = !!apiRef.current.getRootDimensions();
|
|
79
102
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridMainContainer.GridMainContainer, {
|
|
103
|
+
ref: rootRef,
|
|
80
104
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.columnHeaders, (0, _extends2.default)({
|
|
81
105
|
ref: columnsContainerRef,
|
|
82
106
|
innerRef: columnHeadersRef,
|
|
@@ -94,15 +118,16 @@ function GridBody(props) {
|
|
|
94
118
|
columnVisibility: columnVisibility,
|
|
95
119
|
columnGroupsHeaderStructure: columnGroupsHeaderStructure,
|
|
96
120
|
hasOtherElementInTabSequence: hasOtherElementInTabSequence
|
|
97
|
-
}, ColumnHeadersProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
121
|
+
}, ColumnHeadersProps)), hasDimensions && /*#__PURE__*/(0, _jsxRuntime.jsx)(VirtualScrollerComponent
|
|
122
|
+
// The content is only rendered after dimensions are computed because
|
|
123
|
+
// the lazy-loading hook is listening to `renderedRowsIntervalChange`,
|
|
124
|
+
// but only does something if the dimensions are also available.
|
|
125
|
+
// If this event is published while dimensions haven't been computed,
|
|
126
|
+
// the `onFetchRows` prop won't be called during mount.
|
|
127
|
+
, {
|
|
128
|
+
ref: virtualScrollerRef,
|
|
129
|
+
disableVirtualization: isVirtualizationDisabled
|
|
130
|
+
})]
|
|
106
131
|
});
|
|
107
132
|
}
|
|
108
133
|
process.env.NODE_ENV !== "production" ? GridBody.propTypes = {
|
|
@@ -110,7 +135,6 @@ process.env.NODE_ENV !== "production" ? GridBody.propTypes = {
|
|
|
110
135
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
111
136
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
112
137
|
// ----------------------------------------------------------------------
|
|
113
|
-
children: _propTypes.default.node,
|
|
114
138
|
ColumnHeadersProps: _propTypes.default.object,
|
|
115
139
|
VirtualScrollerComponent: _propTypes.default.elementType.isRequired
|
|
116
140
|
} : void 0;
|
|
@@ -18,7 +18,7 @@ var _GridMenu = require("../menu/GridMenu");
|
|
|
18
18
|
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
19
19
|
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
20
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
-
const _excluded = ["colDef", "id", "hasFocus", "isEditable", "field", "value", "formattedValue", "row", "rowNode", "cellMode", "tabIndex", "position", "focusElementRef"];
|
|
21
|
+
const _excluded = ["api", "colDef", "id", "hasFocus", "isEditable", "field", "value", "formattedValue", "row", "rowNode", "cellMode", "tabIndex", "position", "focusElementRef"];
|
|
22
22
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
23
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
24
24
|
const hasActions = colDef => typeof colDef.getActions === 'function';
|
|
@@ -197,6 +197,7 @@ process.env.NODE_ENV !== "production" ? GridActionsCell.propTypes = {
|
|
|
197
197
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
198
198
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
199
199
|
// ----------------------------------------------------------------------
|
|
200
|
+
api: _propTypes.default.object,
|
|
200
201
|
/**
|
|
201
202
|
* The mode of the cell.
|
|
202
203
|
*/
|
|
@@ -219,6 +220,9 @@ process.env.NODE_ENV !== "production" ? GridActionsCell.propTypes = {
|
|
|
219
220
|
focus: _propTypes.default.func.isRequired
|
|
220
221
|
})
|
|
221
222
|
})]),
|
|
223
|
+
/**
|
|
224
|
+
* The cell value formatted with the column valueFormatter.
|
|
225
|
+
*/
|
|
222
226
|
formattedValue: _propTypes.default.any,
|
|
223
227
|
/**
|
|
224
228
|
* If true, the cell is the active element.
|
|
@@ -245,6 +249,10 @@ process.env.NODE_ENV !== "production" ? GridActionsCell.propTypes = {
|
|
|
245
249
|
* the tabIndex value.
|
|
246
250
|
*/
|
|
247
251
|
tabIndex: _propTypes.default.oneOf([-1, 0]).isRequired,
|
|
252
|
+
/**
|
|
253
|
+
* The cell value.
|
|
254
|
+
* If the column has `valueGetter`, use `params.row` to directly access the fields.
|
|
255
|
+
*/
|
|
248
256
|
value: _propTypes.default.any
|
|
249
257
|
} : void 0;
|
|
250
258
|
const renderActionsCell = params => /*#__PURE__*/(0, _jsxRuntime.jsx)(GridActionsCell, (0, _extends2.default)({}, params));
|
|
@@ -44,7 +44,7 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
|
|
|
44
44
|
};
|
|
45
45
|
const classes = useUtilityClasses(ownerState);
|
|
46
46
|
const checkboxElement = React.useRef(null);
|
|
47
|
-
const rippleRef = React.useRef();
|
|
47
|
+
const rippleRef = React.useRef(null);
|
|
48
48
|
const handleRef = (0, _utils.unstable_useForkRef)(checkboxElement, ref);
|
|
49
49
|
const element = apiRef.current.getCellElement(id, field);
|
|
50
50
|
const handleChange = event => {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.GridMainContainer =
|
|
6
|
+
exports.GridMainContainer = void 0;
|
|
7
7
|
var React = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _utils = require("@mui/utils");
|
|
9
9
|
var _system = require("@mui/system");
|
|
@@ -32,12 +32,14 @@ const GridMainContainerRoot = (0, _system.styled)('div', {
|
|
|
32
32
|
flexDirection: 'column',
|
|
33
33
|
overflow: 'hidden'
|
|
34
34
|
}));
|
|
35
|
-
|
|
35
|
+
const GridMainContainer = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
36
36
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
37
37
|
const classes = useUtilityClasses(rootProps);
|
|
38
38
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridMainContainerRoot, {
|
|
39
|
+
ref: ref,
|
|
39
40
|
className: classes.root,
|
|
40
41
|
ownerState: rootProps,
|
|
41
42
|
children: props.children
|
|
42
43
|
});
|
|
43
|
-
}
|
|
44
|
+
});
|
|
45
|
+
exports.GridMainContainer = GridMainContainer;
|
|
@@ -63,11 +63,6 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
|
|
|
63
63
|
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
64
64
|
setMountedState(true);
|
|
65
65
|
}, []);
|
|
66
|
-
(0, _utils.unstable_useEnhancedEffect)(() => {
|
|
67
|
-
if (mountedState) {
|
|
68
|
-
apiRef.current.updateGridDimensionsRef();
|
|
69
|
-
}
|
|
70
|
-
}, [apiRef, mountedState]);
|
|
71
66
|
if (!mountedState) {
|
|
72
67
|
return null;
|
|
73
68
|
}
|
|
@@ -211,7 +211,9 @@ const GridRootStyles = (0, _styles.styled)('div', {
|
|
|
211
211
|
minWidth: 0,
|
|
212
212
|
flex: 1,
|
|
213
213
|
whiteSpace: 'nowrap',
|
|
214
|
-
overflow: 'hidden'
|
|
214
|
+
overflow: 'hidden',
|
|
215
|
+
// to anchor the aggregation label
|
|
216
|
+
position: 'relative'
|
|
215
217
|
},
|
|
216
218
|
[`& .${_gridClasses.gridClasses.columnHeaderTitleContainerContent}`]: {
|
|
217
219
|
overflow: 'hidden',
|
package/node/components/index.js
CHANGED
|
@@ -113,17 +113,6 @@ Object.keys(_GridApiContext).forEach(function (key) {
|
|
|
113
113
|
}
|
|
114
114
|
});
|
|
115
115
|
});
|
|
116
|
-
var _GridAutoSizer = require("./GridAutoSizer");
|
|
117
|
-
Object.keys(_GridAutoSizer).forEach(function (key) {
|
|
118
|
-
if (key === "default" || key === "__esModule") return;
|
|
119
|
-
if (key in exports && exports[key] === _GridAutoSizer[key]) return;
|
|
120
|
-
Object.defineProperty(exports, key, {
|
|
121
|
-
enumerable: true,
|
|
122
|
-
get: function () {
|
|
123
|
-
return _GridAutoSizer[key];
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
116
|
var _GridFooter = require("./GridFooter");
|
|
128
117
|
Object.keys(_GridFooter).forEach(function (key) {
|
|
129
118
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -102,8 +102,9 @@ function GridColumnsPanel(props) {
|
|
|
102
102
|
const toggleAllColumns = React.useCallback(isVisible => {
|
|
103
103
|
const currentModel = (0, _gridColumnsSelector.gridColumnVisibilityModelSelector)(apiRef);
|
|
104
104
|
const newModel = (0, _extends2.default)({}, currentModel);
|
|
105
|
+
const togglableColumns = getTogglableColumns ? getTogglableColumns(columns) : null;
|
|
105
106
|
columns.forEach(col => {
|
|
106
|
-
if (col.hideable) {
|
|
107
|
+
if (col.hideable && (togglableColumns == null || togglableColumns.includes(col.field))) {
|
|
107
108
|
if (isVisible) {
|
|
108
109
|
// delete the key from the model instead of setting it to `true`
|
|
109
110
|
delete newModel[col.field];
|
|
@@ -113,7 +114,7 @@ function GridColumnsPanel(props) {
|
|
|
113
114
|
}
|
|
114
115
|
});
|
|
115
116
|
return apiRef.current.setColumnVisibilityModel(newModel);
|
|
116
|
-
}, [apiRef, columns]);
|
|
117
|
+
}, [apiRef, columns, getTogglableColumns]);
|
|
117
118
|
const handleSearchValueChange = React.useCallback(event => {
|
|
118
119
|
setSearchValue(event.target.value);
|
|
119
120
|
}, []);
|
|
@@ -126,5 +126,6 @@ process.env.NODE_ENV !== "production" ? GridPanel.propTypes = {
|
|
|
126
126
|
/**
|
|
127
127
|
* If `true`, the component is shown.
|
|
128
128
|
*/
|
|
129
|
-
open: _propTypes.default.bool.isRequired
|
|
129
|
+
open: _propTypes.default.bool.isRequired,
|
|
130
|
+
ownerState: _propTypes.default.object
|
|
130
131
|
} : void 0;
|
|
@@ -34,6 +34,7 @@ const GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(p
|
|
|
34
34
|
const filterModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridFilterModelSelector);
|
|
35
35
|
const filterableColumns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridFilterableColumnDefinitionsSelector);
|
|
36
36
|
const lastFilterRef = React.useRef(null);
|
|
37
|
+
const placeholderFilter = React.useRef(null);
|
|
37
38
|
const {
|
|
38
39
|
logicOperators = [_gridFilterItem.GridLogicOperator.And, _gridFilterItem.GridLogicOperator.Or],
|
|
39
40
|
columnsSort,
|
|
@@ -97,8 +98,10 @@ const GridFilterPanel = /*#__PURE__*/React.forwardRef(function GridFilterPanel(p
|
|
|
97
98
|
if (filterModel.items.length) {
|
|
98
99
|
return filterModel.items;
|
|
99
100
|
}
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
if (!placeholderFilter.current) {
|
|
102
|
+
placeholderFilter.current = getDefaultFilter();
|
|
103
|
+
}
|
|
104
|
+
return placeholderFilter.current ? [placeholderFilter.current] : [];
|
|
102
105
|
}, [filterModel.items, getDefaultFilter]);
|
|
103
106
|
const hasMultipleFilters = items.length > 1;
|
|
104
107
|
const addNewFilter = () => {
|
|
@@ -9,5 +9,5 @@ var _utils = require("@mui/utils");
|
|
|
9
9
|
function getDataGridUtilityClass(slot) {
|
|
10
10
|
return (0, _utils.unstable_generateUtilityClass)('MuiDataGrid', slot);
|
|
11
11
|
}
|
|
12
|
-
const gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
12
|
+
const gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withRenderer', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell', 'cellContent', 'cellCheckbox', 'cellSkeleton', 'checkboxInput', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderDropZone', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnGroupHeader', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeader--showColumnBorder', 'columnHeaders', 'columnHeadersInner', 'columnHeadersInner--scrollable', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsPanel', 'columnsPanelRow', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'iconButtonContainer', 'iconSeparator', 'main', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'pinnedColumns--left', 'pinnedColumns--right', 'pinnedColumnHeaders', 'pinnedColumnHeaders--left', 'pinnedColumnHeaders--right', 'withBorderColor', 'cell--withRightBorder', 'columnHeader--withRightBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
|
|
13
13
|
exports.gridClasses = gridClasses;
|
|
@@ -14,7 +14,6 @@ var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
|
14
14
|
var _gridColumnGroupsUtils = require("./gridColumnGroupsUtils");
|
|
15
15
|
var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
16
16
|
var _columns = require("../columns");
|
|
17
|
-
var _useGridSelector = require("../../utils/useGridSelector");
|
|
18
17
|
const _excluded = ["groupId", "children"];
|
|
19
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
20
19
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -102,18 +101,14 @@ const useGridColumnGrouping = (apiRef, props) => {
|
|
|
102
101
|
});
|
|
103
102
|
});
|
|
104
103
|
}, [apiRef, props.columnGroupingModel]);
|
|
105
|
-
|
|
106
|
-
const columnFields = (0, _useGridSelector.useGridSelector)(apiRef, _columns.gridColumnFieldsSelector);
|
|
107
|
-
const visibleColumnFields = (0, _useGridSelector.useGridSelector)(apiRef, _columns.gridVisibleColumnFieldsSelector);
|
|
108
|
-
/**
|
|
109
|
-
* EFFECTS
|
|
110
|
-
*/
|
|
111
|
-
React.useEffect(() => {
|
|
104
|
+
const updateColumnGroupingState = React.useCallback(columnGroupingModel => {
|
|
112
105
|
if (!props.experimentalFeatures?.columnGrouping) {
|
|
113
106
|
return;
|
|
114
107
|
}
|
|
115
|
-
const
|
|
116
|
-
const
|
|
108
|
+
const columnFields = (0, _columns.gridColumnFieldsSelector)(apiRef);
|
|
109
|
+
const visibleColumnFields = (0, _columns.gridVisibleColumnFieldsSelector)(apiRef);
|
|
110
|
+
const groupLookup = createGroupLookup(columnGroupingModel ?? []);
|
|
111
|
+
const unwrappedGroupingModel = (0, _gridColumnGroupsUtils.unwrapGroupingColumnModel)(columnGroupingModel ?? []);
|
|
117
112
|
const columnGroupsHeaderStructure = (0, _gridColumnGroupsUtils.getColumnGroupsHeaderStructure)(columnFields, unwrappedGroupingModel);
|
|
118
113
|
const maxDepth = visibleColumnFields.length === 0 ? 0 : Math.max(...visibleColumnFields.map(field => unwrappedGroupingModel[field]?.length ?? 0));
|
|
119
114
|
apiRef.current.setState(state => {
|
|
@@ -126,6 +121,20 @@ const useGridColumnGrouping = (apiRef, props) => {
|
|
|
126
121
|
}
|
|
127
122
|
});
|
|
128
123
|
});
|
|
129
|
-
}, [apiRef,
|
|
124
|
+
}, [apiRef, props.experimentalFeatures?.columnGrouping]);
|
|
125
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnIndexChange', handleColumnIndexChange);
|
|
126
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnsChange', () => {
|
|
127
|
+
updateColumnGroupingState(props.columnGroupingModel);
|
|
128
|
+
});
|
|
129
|
+
(0, _useGridApiEventHandler.useGridApiEventHandler)(apiRef, 'columnVisibilityModelChange', () => {
|
|
130
|
+
updateColumnGroupingState(props.columnGroupingModel);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* EFFECTS
|
|
135
|
+
*/
|
|
136
|
+
React.useEffect(() => {
|
|
137
|
+
updateColumnGroupingState(props.columnGroupingModel);
|
|
138
|
+
}, [updateColumnGroupingState, props.columnGroupingModel]);
|
|
130
139
|
};
|
|
131
140
|
exports.useGridColumnGrouping = useGridColumnGrouping;
|