@mui/x-data-grid 8.22.1 → 8.24.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.
Files changed (82) hide show
  1. package/CHANGELOG.md +211 -0
  2. package/colDef/gridBooleanColDef.js +0 -1
  3. package/colDef/gridDateOperators.js +6 -6
  4. package/components/GridPagination.js +3 -1
  5. package/components/cell/GridBooleanCell.js +9 -1
  6. package/components/cell/GridEditDateCell.js +3 -1
  7. package/components/cell/GridFooterCell.d.ts +9 -0
  8. package/components/cell/GridFooterCell.js +54 -0
  9. package/components/containers/GridRootStyles.js +8 -0
  10. package/components/menu/columnMenu/GridColumnMenuContainer.js +3 -1
  11. package/components/virtualization/GridBottomContainer.js +4 -1
  12. package/components/virtualization/GridMainContainer.js +4 -1
  13. package/components/virtualization/GridTopContainer.js +4 -1
  14. package/components/virtualization/GridVirtualScrollbar.d.ts +1 -1
  15. package/components/virtualization/GridVirtualScrollbar.js +13 -4
  16. package/components/virtualization/GridVirtualScrollerFiller.js +18 -5
  17. package/esm/colDef/gridBooleanColDef.js +0 -1
  18. package/esm/colDef/gridDateOperators.js +6 -6
  19. package/esm/components/GridPagination.js +3 -1
  20. package/esm/components/cell/GridBooleanCell.js +9 -1
  21. package/esm/components/cell/GridEditDateCell.js +3 -1
  22. package/esm/components/cell/GridFooterCell.d.ts +9 -0
  23. package/esm/components/cell/GridFooterCell.js +48 -0
  24. package/esm/components/containers/GridRootStyles.js +8 -0
  25. package/esm/components/menu/columnMenu/GridColumnMenuContainer.js +3 -1
  26. package/esm/components/virtualization/GridBottomContainer.js +4 -1
  27. package/esm/components/virtualization/GridMainContainer.js +4 -1
  28. package/esm/components/virtualization/GridTopContainer.js +4 -1
  29. package/esm/components/virtualization/GridVirtualScrollbar.d.ts +1 -1
  30. package/esm/components/virtualization/GridVirtualScrollbar.js +13 -4
  31. package/esm/components/virtualization/GridVirtualScrollerFiller.js +18 -5
  32. package/esm/hooks/features/columnResize/gridColumnResizeApi.d.ts +7 -0
  33. package/esm/hooks/features/columnResize/gridColumnResizeApi.js +1 -0
  34. package/esm/hooks/features/columnResize/useGridColumnResize.js +13 -1
  35. package/esm/hooks/features/columns/gridColumnsUtils.js +1 -4
  36. package/esm/hooks/features/dataSource/useGridDataSourceBase.d.ts +3 -3
  37. package/esm/hooks/features/editing/useGridCellEditing.js +1 -0
  38. package/esm/hooks/features/pagination/gridPaginationSelector.js +3 -0
  39. package/esm/hooks/features/rowSelection/useGridRowSelection.js +17 -15
  40. package/esm/hooks/features/rowSelection/utils.js +2 -2
  41. package/esm/index.js +1 -1
  42. package/esm/internals/index.d.ts +2 -0
  43. package/esm/internals/index.js +1 -0
  44. package/esm/locales/arSD.js +1 -1
  45. package/esm/locales/daDK.js +3 -4
  46. package/esm/locales/faIR.js +1 -1
  47. package/esm/locales/jaJP.js +33 -38
  48. package/esm/locales/ptPT.d.ts +2 -1
  49. package/esm/locales/ptPT.js +114 -125
  50. package/esm/material/index.js +14 -4
  51. package/esm/models/gridAggregation.d.ts +18 -0
  52. package/esm/models/gridAggregation.js +1 -0
  53. package/esm/utils/domUtils.d.ts +1 -0
  54. package/esm/utils/domUtils.js +4 -0
  55. package/esm/utils/utils.d.ts +1 -1
  56. package/esm/utils/utils.js +2 -2
  57. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +7 -0
  58. package/hooks/features/columnResize/gridColumnResizeApi.js +1 -0
  59. package/hooks/features/columnResize/useGridColumnResize.js +12 -0
  60. package/hooks/features/columns/gridColumnsUtils.js +1 -4
  61. package/hooks/features/dataSource/useGridDataSourceBase.d.ts +3 -3
  62. package/hooks/features/editing/useGridCellEditing.js +1 -0
  63. package/hooks/features/pagination/gridPaginationSelector.js +3 -0
  64. package/hooks/features/rowSelection/useGridRowSelection.js +17 -15
  65. package/hooks/features/rowSelection/utils.js +2 -2
  66. package/index.js +1 -1
  67. package/internals/index.d.ts +2 -0
  68. package/internals/index.js +8 -0
  69. package/locales/arSD.js +1 -1
  70. package/locales/daDK.js +3 -4
  71. package/locales/faIR.js +1 -1
  72. package/locales/jaJP.js +33 -38
  73. package/locales/ptPT.d.ts +2 -1
  74. package/locales/ptPT.js +114 -125
  75. package/material/index.js +14 -4
  76. package/models/gridAggregation.d.ts +18 -0
  77. package/models/gridAggregation.js +5 -0
  78. package/package.json +3 -3
  79. package/utils/domUtils.d.ts +1 -0
  80. package/utils/domUtils.js +5 -0
  81. package/utils/utils.d.ts +1 -1
  82. package/utils/utils.js +2 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,217 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
+ ## 8.24.0
9
+
10
+ _Jan 8, 2026_
11
+
12
+ We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - ⚡️Add bar [batch renderer](https://mui.com/x/react-charts/bars/#performance), result in a significant performance improvement when rendering thousands of bars
15
+ - 📊 Add [range bar chart](https://mui.com/x/react-charts/range-bar/) to render
16
+ ![image](https://github.com/user-attachments/assets/4112c09b-d841-42f7-a0c8-d23b61c23ca0)
17
+ - 🌎 Improved Danish (da-DK) and Japanese (ja-JP) locales on the Data Grid
18
+
19
+ Special thanks go out to these community members for their valuable contributions:
20
+ @anders-noerrelykke, @auloin, @sai6855, @yuito-it
21
+
22
+ The following team members contributed to this release:
23
+ @alelthomas, @alexfauquette, @arminmeh, @bernardobelchior, @flaviendelangle, @JCQuintas, @mapache-salvaje, @siriwatknp
24
+
25
+ ### Data Grid
26
+
27
+ #### `@mui/x-data-grid@8.24.0`
28
+
29
+ - [l10n] Improve Danish (da-DK) locale (#20828) @anders-noerrelykke
30
+ - [l10n] Improve Japanese (ja-JP) locale (#20251) @yuito-it
31
+
32
+ #### `@mui/x-data-grid-pro@8.24.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
33
+
34
+ Same changes as in `@mui/x-data-grid@8.24.0`, plus:
35
+
36
+ - [DataGridPro] Fix header filter height for `density="compact"` (#20834) @arminmeh
37
+
38
+ #### `@mui/x-data-grid-premium@8.24.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
39
+
40
+ Same changes as in `@mui/x-data-grid-pro@8.24.0`.
41
+
42
+ ### Date and Time Pickers
43
+
44
+ #### `@mui/x-date-pickers@8.24.0`
45
+
46
+ - [pickers] Fix Styles applied to PickersDay when MuiPickersDay-dayOutsideMonth is used (#20719) @sai6855
47
+
48
+ #### `@mui/x-date-pickers-pro@8.24.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
49
+
50
+ Same changes as in `@mui/x-date-pickers@8.24.0`.
51
+
52
+ ### Charts
53
+
54
+ #### `@mui/x-charts@8.24.0`
55
+
56
+ - [charts] Add `VisibilityManager` logic to allow managing series/items (#20571) @JCQuintas
57
+ - [charts] Add `identifierSerializer` configuration (#20775) @JCQuintas
58
+ - [charts] Add `serializeIdentifier` instance function (#20791) @JCQuintas
59
+ - [charts] Add bar batch renderer (#20457) @bernardobelchior
60
+ - [charts] Allow animating bar, line, and pie elements to hidden state (#20798) @JCQuintas
61
+ - [charts] Fix failing lint step (#20813) @bernardobelchior
62
+ - [charts] Fix tooltip anchored to item (#20783) @alexfauquette
63
+ - [charts] Fix type casting in getCategoryAxisConfig and applySeriesLayout functions (#20797) @sai6855
64
+ - [charts] Let keyboard navigation avoid overflow and handle nullish values (#20757) @alexfauquette
65
+ - [charts] Refactor `PieChart` and `PieChartPro` to use `slots` and `slotProps` directly (#20795) @sai6855
66
+ - [charts] Refactor `useRegisterPointerEventHandlers` (#20824) @bernardobelchior
67
+ - [charts] Update legend types to allow hiding/showing items (#20784) @JCQuintas
68
+
69
+ #### `@mui/x-charts-pro@8.24.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
70
+
71
+ Same changes as in `@mui/x-charts@8.24.0`, plus:
72
+
73
+ - [charts-pro] Pass `slotProps.toolbar` to `Toolbar` in `PieChartPro` (#20796) @sai6855
74
+
75
+ #### `@mui/x-charts-premium@8.24.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
76
+
77
+ Same changes as in `@mui/x-charts-pro@8.24.0`, plus:
78
+
79
+ - [charts-premium] Add range bar chart (#20275) @bernardobelchior
80
+
81
+ ### Tree View
82
+
83
+ #### `@mui/x-tree-view@8.24.0`
84
+
85
+ - [tree view] Introduce a Tree View Store to clean the internals (#20051) @flaviendelangle
86
+
87
+ #### `@mui/x-tree-view-pro@8.24.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
88
+
89
+ Same changes as in `@mui/x-tree-view@8.24.0`.
90
+
91
+ ### Codemod
92
+
93
+ #### `@mui/x-codemod@8.24.0`
94
+
95
+ Internal changes.
96
+
97
+ ### Docs
98
+
99
+ - [docs] Fix axis size default values (#20799) @bernardobelchior
100
+ - [docs] Update What's New in MUI X page with post v8 features (DX-118) (#20787) @alelthomas
101
+ - [docs] Fix `onAccept`'s `context.source` documentation to use 'view' instead of 'picker' (#20465) @auloin
102
+ - [docs] Revise the Charts Brush doc (#20792) @mapache-salvaje
103
+ - [docs] Revise the Charts Highlighting doc (#20788) @mapache-salvaje
104
+ - [docs] Revise the Charts Label doc (#20794) @mapache-salvaje
105
+ - [docs] Revise the Charts Export doc (#20779) @mapache-salvaje
106
+
107
+ ### Core
108
+
109
+ - [code-infra] Fix v8.23.0 release date (#20767) @bernardobelchior
110
+ - [code-infra] Remove `glob-gitignore` (#20801) @bernardobelchior
111
+ - [code-infra] Remove `nyc` (#20804) @bernardobelchior
112
+ - [code-infra] Remove `stream-browserify` and `null-loader` (#20805) @bernardobelchior
113
+ - [code-infra] Remove `stylelint-config-tailwindcss` (#20807) @bernardobelchior
114
+ - [code-infra] Remove unused `path` package (#20802) @bernardobelchior
115
+ - [code-infra] Retry flaky e2e test on webkit (#20806) @JCQuintas
116
+ - [internal] Add `internal` slot to properly generate components CSS layer (#20763) @siriwatknp
117
+
118
+ ## 8.23.0
119
+
120
+ _Dec 24, 2025_
121
+
122
+ We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
123
+
124
+ - 🧮 Support Data Grid `size`, `size(true)`, and `size(false)` [aggregations for `'boolean'` column type](https://mui.com/x/react-data-grid/aggregation/#usage-with-row-grouping)
125
+ - 🔎 Allow zooming a heatmap
126
+
127
+ Special thanks go out to these community members for their valuable contributions:
128
+ @henkerik, @sai6855
129
+
130
+ The following team members contributed to this release:
131
+ @alelthomas, @alexfauquette, @arminmeh, @bernardobelchior, @brijeshb42, @flaviendelangle, @JCQuintas, @mapache-salvaje, @MBilalShafi, @siriwatknp
132
+
133
+ ### Data Grid
134
+
135
+ #### `@mui/x-data-grid@8.23.0`
136
+
137
+ - [DataGrid] Fix columns state and columns prop sync issue (#20703) @arminmeh
138
+ - [DataGrid] Fix filter datetime with seconds (#20557) @siriwatknp
139
+ - [DataGrid] Add new `includeHeaderFilters` flag to include header filters when autosizing columns (#20510) @siriwatknp
140
+ - [DataGrid] Prevent default on `Enter` key down when starting editing (#20751) @siriwatknp
141
+ - [l10n] Improve Portuguese from Portugal (pt-PT) locale (#20722) @Copilot
142
+
143
+ #### `@mui/x-data-grid-pro@8.23.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
144
+
145
+ Same changes as in `@mui/x-data-grid@8.23.0`, plus:
146
+
147
+ - [DataGridPro] Fix crash on rows change in tree data with pagination (#20215) @Copilot
148
+
149
+ #### `@mui/x-data-grid-premium@8.23.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
150
+
151
+ Same changes as in `@mui/x-data-grid-pro@8.23.0`, plus:
152
+
153
+ - [DataGridPremium] Add aggregation for `'boolean'` column type (#20683) @arminmeh
154
+ - [DataGridPremium] Fix strategy value computation with row grouping (#20725) @MBilalShafi
155
+ - [DataGridPremium] Handle `isRowSelectable()` checks for the rows missing due to `keepNonExistentRowsSelected` (#20668) @arminmeh
156
+
157
+ ### Date and Time Pickers
158
+
159
+ #### `@mui/x-date-pickers@8.23.0`
160
+
161
+ Internal changes.
162
+
163
+ #### `@mui/x-date-pickers-pro@8.23.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
164
+
165
+ Same changes as in `@mui/x-date-pickers@8.23.0`.
166
+
167
+ ### Charts
168
+
169
+ #### `@mui/x-charts@8.23.0`
170
+
171
+ - [charts] Custom stack functions implementation (#20679) @JCQuintas
172
+ - [charts] Extract keyboard focus navigation to the series config (#20693) @alexfauquette
173
+ - [charts] Fix demo not wrapping in mobile (#20713) @JCQuintas
174
+ - [charts] Fix missing dependencies in `x-charts-vendor` (#20685) @henkerik
175
+ - [charts] Remove webkit test differences (#20707) @JCQuintas
176
+
177
+ #### `@mui/x-charts-pro@8.23.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
178
+
179
+ Same changes as in `@mui/x-charts@8.23.0`, plus:
180
+
181
+ - [charts-pro] Allow registering preview plots from higher tier packages (#20716) @bernardobelchior
182
+ - [charts-pro] Fix erroneous behavior when adding/removing pointers from zoom&pan gestures (#20698) @JCQuintas
183
+ - [charts-pro] Move heatmap highlight handling to plot component (#20701) @bernardobelchior
184
+ - [charts-pro] Add zoom to heatmap (#20708) @bernardobelchior
185
+
186
+ #### `@mui/x-charts-premium@8.23.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
187
+
188
+ Same changes as in `@mui/x-charts-pro@8.23.0`.
189
+
190
+ ### Tree View
191
+
192
+ #### `@mui/x-tree-view@8.23.0`
193
+
194
+ - [tree view] Add new APIs to disable selection feature for tree view item (#20666) @siriwatknp
195
+
196
+ #### `@mui/x-tree-view-pro@8.23.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
197
+
198
+ Same changes as in `@mui/x-tree-view@8.23.0`.
199
+
200
+ ### Codemod
201
+
202
+ #### `@mui/x-codemod@8.23.0`
203
+
204
+ Internal changes.
205
+
206
+ ### Docs
207
+
208
+ - [docs] Clarify feature availability and relationship between Community and Pro/Premium docs (#20714) @mapache-salvaje
209
+ - [docs] Copyedit Tree View docs and apply new component style rules (DX-19) (#20652) @mapache-salvaje
210
+ - [docs] Fix `ColumnPinningDynamicRowHeight` demo (#20750) @sai6855
211
+ - [docs] Clean up Charts docs sidebar (DX-97) (#20700) @alelthomas
212
+ - [docs] Fix tick labels not being shown on a demo (#20718) @sai6855
213
+
214
+ ### Core
215
+
216
+ - [code-infra] Bump prettier to 3.7.4 (#20709) @JCQuintas
217
+ - [code-infra] Fix contributor generation logic in changelog script (#20705) @brijeshb42
218
+
8
219
  ## 8.22.1
9
220
 
10
221
  _Dec 17, 2025_
@@ -42,7 +42,6 @@ const GRID_BOOLEAN_COL_DEF = exports.GRID_BOOLEAN_COL_DEF = (0, _extends2.defaul
42
42
  filterOperators: (0, _gridBooleanOperators.getGridBooleanOperators)(),
43
43
  getApplyQuickFilterFn: () => null,
44
44
  // @ts-ignore
45
- aggregable: false,
46
45
  chartable: false,
47
46
  // @ts-ignore
48
47
  pastedValueParser: value => stringToBoolean(value)
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.getGridDateOperators = void 0;
7
7
  var _GridFilterInputDate = require("../components/panel/filterPanel/GridFilterInputDate");
8
- function buildApplyFilterFn(filterItem, compareFn, showTime, keepHours) {
8
+ function buildApplyFilterFn(filterItem, compareFn, showTime, keepRawComparison) {
9
9
  if (!filterItem.value) {
10
10
  return null;
11
11
  }
@@ -27,7 +27,7 @@ function buildApplyFilterFn(filterItem, compareFn, showTime, keepHours) {
27
27
  if (!value) {
28
28
  return false;
29
29
  }
30
- if (keepHours) {
30
+ if (keepRawComparison) {
31
31
  return compareFn(value.getTime(), time);
32
32
  }
33
33
 
@@ -62,7 +62,7 @@ const getGridDateOperators = showTime => [{
62
62
  }, {
63
63
  value: 'after',
64
64
  getApplyFilterFn: filterItem => {
65
- return buildApplyFilterFn(filterItem, (value1, value2) => value1 > value2, showTime);
65
+ return buildApplyFilterFn(filterItem, (value1, value2) => value1 > value2, showTime, showTime);
66
66
  },
67
67
  InputComponent: _GridFilterInputDate.GridFilterInputDate,
68
68
  InputComponentProps: {
@@ -71,7 +71,7 @@ const getGridDateOperators = showTime => [{
71
71
  }, {
72
72
  value: 'onOrAfter',
73
73
  getApplyFilterFn: filterItem => {
74
- return buildApplyFilterFn(filterItem, (value1, value2) => value1 >= value2, showTime);
74
+ return buildApplyFilterFn(filterItem, (value1, value2) => value1 >= value2, showTime, showTime);
75
75
  },
76
76
  InputComponent: _GridFilterInputDate.GridFilterInputDate,
77
77
  InputComponentProps: {
@@ -80,7 +80,7 @@ const getGridDateOperators = showTime => [{
80
80
  }, {
81
81
  value: 'before',
82
82
  getApplyFilterFn: filterItem => {
83
- return buildApplyFilterFn(filterItem, (value1, value2) => value1 < value2, showTime, !showTime);
83
+ return buildApplyFilterFn(filterItem, (value1, value2) => value1 < value2, showTime, true);
84
84
  },
85
85
  InputComponent: _GridFilterInputDate.GridFilterInputDate,
86
86
  InputComponentProps: {
@@ -89,7 +89,7 @@ const getGridDateOperators = showTime => [{
89
89
  }, {
90
90
  value: 'onOrBefore',
91
91
  getApplyFilterFn: filterItem => {
92
- return buildApplyFilterFn(filterItem, (value1, value2) => value1 <= value2, showTime);
92
+ return buildApplyFilterFn(filterItem, (value1, value2) => value1 <= value2, showTime, showTime);
93
93
  },
94
94
  InputComponent: _GridFilterInputDate.GridFilterInputDate,
95
95
  InputComponentProps: {
@@ -16,7 +16,9 @@ var _useGridApiContext = require("../hooks/utils/useGridApiContext");
16
16
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
17
17
  var _gridPaginationSelector = require("../hooks/features/pagination/gridPaginationSelector");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
- const GridPaginationRoot = (0, _styles.styled)(_assert.NotRendered)({
19
+ const GridPaginationRoot = (0, _styles.styled)(_assert.NotRendered, {
20
+ slot: 'internal'
21
+ })({
20
22
  maxHeight: 'calc(100% + 1px)',
21
23
  // border width
22
24
  flexGrow: 1
@@ -18,6 +18,7 @@ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
18
18
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
19
19
  var _gridRowsUtils = require("../../hooks/features/rows/gridRowsUtils");
20
20
  var _constants = require("../../internals/constants");
21
+ var _GridFooterCell = require("./GridFooterCell");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
23
  const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "hasFocus", "tabIndex", "hideDescendantCount"];
23
24
  const useUtilityClasses = ownerState => {
@@ -116,7 +117,14 @@ const GridBooleanCell = exports.GridBooleanCell = /*#__PURE__*/React.memo(GridBo
116
117
  if (process.env.NODE_ENV !== "production") GridBooleanCell.displayName = "GridBooleanCell";
117
118
  const renderBooleanCell = params => {
118
119
  if (params.field !== _constants.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD && (0, _gridRowsUtils.isAutogeneratedRowNode)(params.rowNode)) {
119
- return '';
120
+ const aggregationMetaData = params.aggregation;
121
+ if (!aggregationMetaData) {
122
+ return '';
123
+ }
124
+ if (aggregationMetaData.position === 'footer') {
125
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridFooterCell.GridFooterCell, (0, _extends2.default)({}, params));
126
+ }
127
+ return params.formattedValue;
120
128
  }
121
129
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridBooleanCell, (0, _extends2.default)({}, params));
122
130
  };
@@ -21,7 +21,9 @@ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
21
21
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
22
22
  var _jsxRuntime = require("react/jsx-runtime");
23
23
  const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "hasFocus", "inputProps", "isValidating", "isProcessingProps", "onValueChange", "slotProps"];
24
- const StyledInputBase = (0, _styles.styled)(_assert.NotRendered)({
24
+ const StyledInputBase = (0, _styles.styled)(_assert.NotRendered, {
25
+ slot: 'internal'
26
+ })({
25
27
  fontSize: 'inherit'
26
28
  });
27
29
  const useUtilityClasses = ownerState => {
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { SxProps, Theme } from '@mui/material/styles';
3
+ import type { GridRenderCellParams } from "../../models/params/gridCellParams.js";
4
+ interface GridFooterCellProps extends GridRenderCellParams {
5
+ sx?: SxProps<Theme>;
6
+ }
7
+ declare function GridFooterCellRaw(props: GridFooterCellProps): import("react/jsx-runtime").JSX.Element;
8
+ declare const GridFooterCell: React.MemoExoticComponent<typeof GridFooterCellRaw>;
9
+ export { GridFooterCell };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.GridFooterCell = void 0;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
+ var React = _interopRequireWildcard(require("react"));
13
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
+ var _styles = require("@mui/material/styles");
15
+ var _cssVariables = require("../../constants/cssVariables");
16
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
17
+ var _gridClasses = require("../../constants/gridClasses");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ const _excluded = ["formattedValue", "colDef", "cellMode", "row", "api", "id", "value", "rowNode", "field", "hasFocus", "tabIndex", "isEditable"];
20
+ const GridFooterCellRoot = (0, _styles.styled)('div', {
21
+ name: 'MuiDataGrid',
22
+ slot: 'FooterCell'
23
+ })({
24
+ fontWeight: _cssVariables.vars.typography.fontWeight.medium,
25
+ color: _cssVariables.vars.colors.foreground.accent
26
+ });
27
+ const useUtilityClasses = ownerState => {
28
+ const {
29
+ classes
30
+ } = ownerState;
31
+ const slots = {
32
+ root: ['footerCell']
33
+ };
34
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
35
+ };
36
+ function GridFooterCellRaw(props) {
37
+ const {
38
+ formattedValue
39
+ } = props,
40
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
41
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
42
+ const ownerState = {
43
+ classes: rootProps.classes
44
+ };
45
+ const classes = useUtilityClasses(ownerState);
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridFooterCellRoot, (0, _extends2.default)({
47
+ ownerState: ownerState,
48
+ className: classes.root
49
+ }, other, {
50
+ children: formattedValue
51
+ }));
52
+ }
53
+ const GridFooterCell = exports.GridFooterCell = /*#__PURE__*/React.memo(GridFooterCellRaw);
54
+ if (process.env.NODE_ENV !== "production") GridFooterCell.displayName = "GridFooterCell";
@@ -357,6 +357,10 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
357
357
  },
358
358
  [`& .${_gridClasses.gridClasses.treeDataGroupingCell}`]: {
359
359
  width: 'unset'
360
+ },
361
+ [`& .${_gridClasses.gridClasses['columnHeader--filter']}`]: {
362
+ flex: 'none !important',
363
+ width: 'unset !important'
360
364
  }
361
365
  },
362
366
  [`&.${_gridClasses.gridClasses.withSidePanel}`]: {
@@ -431,6 +435,10 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
431
435
  minHeight: 'min-content',
432
436
  overflow: 'hidden'
433
437
  },
438
+ [`&.${_gridClasses.gridClasses['root--densityCompact']} .${_gridClasses.gridClasses['columnHeader--filter']}`]: {
439
+ paddingTop: 4,
440
+ paddingBottom: 4
441
+ },
434
442
  [`& .${_gridClasses.gridClasses['virtualScroller--hasScrollX']} .${_gridClasses.gridClasses['columnHeader--last']}`]: {
435
443
  overflow: 'hidden'
436
444
  },
@@ -19,7 +19,9 @@ var _gridClasses = require("../../../constants/gridClasses");
19
19
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
21
  const _excluded = ["hideMenu", "colDef", "id", "labelledby", "className", "children", "open"];
22
- const StyledMenuList = (0, _styles.styled)(_assert.NotRendered)(() => ({
22
+ const StyledMenuList = (0, _styles.styled)(_assert.NotRendered, {
23
+ slot: 'internal'
24
+ })(() => ({
23
25
  minWidth: 248
24
26
  }));
25
27
  function handleMenuScrollCapture(event) {
@@ -19,7 +19,10 @@ const useUtilityClasses = () => {
19
19
  };
20
20
  return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, {});
21
21
  };
22
- const Element = (0, _system.styled)('div')({
22
+ const Element = (0, _system.styled)('div', {
23
+ slot: 'internal',
24
+ shouldForwardProp: undefined
25
+ })({
23
26
  position: 'sticky',
24
27
  zIndex: 40,
25
28
  bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))'
@@ -13,7 +13,10 @@ var _forwardRef = require("@mui/x-internals/forwardRef");
13
13
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
14
14
  var _useGridConfiguration = require("../../hooks/utils/useGridConfiguration");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
- const GridPanelAnchor = (0, _system.styled)('div')({
16
+ const GridPanelAnchor = (0, _system.styled)('div', {
17
+ slot: 'internal',
18
+ shouldForwardProp: undefined
19
+ })({
17
20
  position: 'absolute',
18
21
  top: `var(--DataGrid-headersTotalHeight)`,
19
22
  left: 0,
@@ -19,7 +19,10 @@ const useUtilityClasses = () => {
19
19
  };
20
20
  return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, {});
21
21
  };
22
- const Element = (0, _system.styled)('div')({
22
+ const Element = (0, _system.styled)('div', {
23
+ slot: 'internal',
24
+ shouldForwardProp: undefined
25
+ })({
23
26
  position: 'sticky',
24
27
  zIndex: 40,
25
28
  top: 0
@@ -8,6 +8,6 @@ type GridVirtualScrollbarProps = {
8
8
  }>;
9
9
  };
10
10
  export declare const scrollbarSizeCssExpression = "calc(max(var(--DataGrid-scrollbarSize), 14px))";
11
- export declare const ScrollbarCorner: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/system").Theme> & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, {}, {}>;
11
+ export declare const ScrollbarCorner: import("@emotion/styled").StyledComponent<Pick<import("@mui/system").MUIStyledCommonProps<import("@mui/system").Theme> & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement> | keyof import("@mui/system").MUIStyledCommonProps<import("@mui/system").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/system").Theme>, {}, {}>;
12
12
  declare const GridVirtualScrollbar: React.ForwardRefExoticComponent<GridVirtualScrollbarProps> | React.ForwardRefExoticComponent<GridVirtualScrollbarProps & React.RefAttributes<HTMLDivElement>>;
13
13
  export { GridVirtualScrollbar };
@@ -35,7 +35,10 @@ const useUtilityClasses = (ownerState, position) => {
35
35
  // to appear and have a real size. We set it to 14px because it seems like an acceptable value and we
36
36
  // don't have a method to find the required size for scrollbars on those platforms.
37
37
  const scrollbarSizeCssExpression = exports.scrollbarSizeCssExpression = 'calc(max(var(--DataGrid-scrollbarSize), 14px))';
38
- const Scrollbar = (0, _system.styled)('div')({
38
+ const Scrollbar = (0, _system.styled)('div', {
39
+ slot: 'internal',
40
+ shouldForwardProp: undefined
41
+ })({
39
42
  position: 'absolute',
40
43
  display: 'inline-block',
41
44
  zIndex: 60,
@@ -44,7 +47,9 @@ const Scrollbar = (0, _system.styled)('div')({
44
47
  },
45
48
  '--size': scrollbarSizeCssExpression
46
49
  });
47
- const ScrollbarVertical = (0, _system.styled)(Scrollbar)({
50
+ const ScrollbarVertical = (0, _system.styled)(Scrollbar, {
51
+ slot: 'internal'
52
+ })({
48
53
  width: 'var(--size)',
49
54
  height: 'calc(var(--DataGrid-hasScrollY) * (100% - var(--DataGrid-headersTotalHeight) - var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize)))',
50
55
  overflowY: 'auto',
@@ -57,7 +62,9 @@ const ScrollbarVertical = (0, _system.styled)(Scrollbar)({
57
62
  top: 'var(--DataGrid-headersTotalHeight)',
58
63
  right: 0
59
64
  });
60
- const ScrollbarHorizontal = (0, _system.styled)(Scrollbar)({
65
+ const ScrollbarHorizontal = (0, _system.styled)(Scrollbar, {
66
+ slot: 'internal'
67
+ })({
61
68
  width: 'calc(var(--DataGrid-hasScrollX) * (100% - var(--DataGrid-hasScrollY) * var(--DataGrid-scrollbarSize)))',
62
69
  height: 'var(--size)',
63
70
  overflowY: 'hidden',
@@ -69,7 +76,9 @@ const ScrollbarHorizontal = (0, _system.styled)(Scrollbar)({
69
76
  },
70
77
  bottom: 0
71
78
  });
72
- const ScrollbarCorner = exports.ScrollbarCorner = (0, _system.styled)(Scrollbar)({
79
+ const ScrollbarCorner = exports.ScrollbarCorner = (0, _system.styled)(Scrollbar, {
80
+ slot: 'internal'
81
+ })({
73
82
  width: 'var(--size)',
74
83
  height: 'var(--size)',
75
84
  right: 0,
@@ -14,26 +14,39 @@ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
14
14
  var _dimensions = require("../../hooks/features/dimensions");
15
15
  var _constants = require("../../constants");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const Filler = (0, _system.styled)('div')({
17
+ const Filler = (0, _system.styled)('div', {
18
+ slot: 'internal',
19
+ shouldForwardProp: undefined
20
+ })({
18
21
  display: 'flex',
19
22
  flexDirection: 'row',
20
23
  width: 'var(--DataGrid-rowWidth)',
21
24
  boxSizing: 'border-box'
22
25
  });
23
- const Pinned = (0, _system.styled)('div')({
26
+ const Pinned = (0, _system.styled)('div', {
27
+ slot: 'internal',
28
+ shouldForwardProp: undefined
29
+ })({
24
30
  position: 'sticky',
25
31
  height: '100%',
26
32
  boxSizing: 'border-box',
27
33
  borderTop: '1px solid var(--rowBorderColor)',
28
34
  backgroundColor: _cssVariables.vars.cell.background.pinned
29
35
  });
30
- const PinnedLeft = (0, _system.styled)(Pinned)({
36
+ const PinnedLeft = (0, _system.styled)(Pinned, {
37
+ slot: 'internal'
38
+ })({
31
39
  left: 0
32
40
  });
33
- const PinnedRight = (0, _system.styled)(Pinned)({
41
+ const PinnedRight = (0, _system.styled)(Pinned, {
42
+ slot: 'internal'
43
+ })({
34
44
  right: 0
35
45
  });
36
- const Main = (0, _system.styled)('div')({
46
+ const Main = (0, _system.styled)('div', {
47
+ slot: 'internal',
48
+ shouldForwardProp: undefined
49
+ })({
37
50
  flexGrow: 1,
38
51
  borderTop: '1px solid var(--rowBorderColor)'
39
52
  });
@@ -35,7 +35,6 @@ export const GRID_BOOLEAN_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
35
35
  filterOperators: getGridBooleanOperators(),
36
36
  getApplyQuickFilterFn: () => null,
37
37
  // @ts-ignore
38
- aggregable: false,
39
38
  chartable: false,
40
39
  // @ts-ignore
41
40
  pastedValueParser: value => stringToBoolean(value)
@@ -1,5 +1,5 @@
1
1
  import { GridFilterInputDate } from "../components/panel/filterPanel/GridFilterInputDate.js";
2
- function buildApplyFilterFn(filterItem, compareFn, showTime, keepHours) {
2
+ function buildApplyFilterFn(filterItem, compareFn, showTime, keepRawComparison) {
3
3
  if (!filterItem.value) {
4
4
  return null;
5
5
  }
@@ -21,7 +21,7 @@ function buildApplyFilterFn(filterItem, compareFn, showTime, keepHours) {
21
21
  if (!value) {
22
22
  return false;
23
23
  }
24
- if (keepHours) {
24
+ if (keepRawComparison) {
25
25
  return compareFn(value.getTime(), time);
26
26
  }
27
27
 
@@ -56,7 +56,7 @@ export const getGridDateOperators = showTime => [{
56
56
  }, {
57
57
  value: 'after',
58
58
  getApplyFilterFn: filterItem => {
59
- return buildApplyFilterFn(filterItem, (value1, value2) => value1 > value2, showTime);
59
+ return buildApplyFilterFn(filterItem, (value1, value2) => value1 > value2, showTime, showTime);
60
60
  },
61
61
  InputComponent: GridFilterInputDate,
62
62
  InputComponentProps: {
@@ -65,7 +65,7 @@ export const getGridDateOperators = showTime => [{
65
65
  }, {
66
66
  value: 'onOrAfter',
67
67
  getApplyFilterFn: filterItem => {
68
- return buildApplyFilterFn(filterItem, (value1, value2) => value1 >= value2, showTime);
68
+ return buildApplyFilterFn(filterItem, (value1, value2) => value1 >= value2, showTime, showTime);
69
69
  },
70
70
  InputComponent: GridFilterInputDate,
71
71
  InputComponentProps: {
@@ -74,7 +74,7 @@ export const getGridDateOperators = showTime => [{
74
74
  }, {
75
75
  value: 'before',
76
76
  getApplyFilterFn: filterItem => {
77
- return buildApplyFilterFn(filterItem, (value1, value2) => value1 < value2, showTime, !showTime);
77
+ return buildApplyFilterFn(filterItem, (value1, value2) => value1 < value2, showTime, true);
78
78
  },
79
79
  InputComponent: GridFilterInputDate,
80
80
  InputComponentProps: {
@@ -83,7 +83,7 @@ export const getGridDateOperators = showTime => [{
83
83
  }, {
84
84
  value: 'onOrBefore',
85
85
  getApplyFilterFn: filterItem => {
86
- return buildApplyFilterFn(filterItem, (value1, value2) => value1 <= value2, showTime);
86
+ return buildApplyFilterFn(filterItem, (value1, value2) => value1 <= value2, showTime, showTime);
87
87
  },
88
88
  InputComponent: GridFilterInputDate,
89
89
  InputComponentProps: {
@@ -8,7 +8,9 @@ import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
8
8
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
9
9
  import { gridPaginationModelSelector, gridPaginationRowCountSelector, gridPageCountSelector } from "../hooks/features/pagination/gridPaginationSelector.js";
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
- const GridPaginationRoot = styled(NotRendered)({
11
+ const GridPaginationRoot = styled(NotRendered, {
12
+ slot: 'internal'
13
+ })({
12
14
  maxHeight: 'calc(100% + 1px)',
13
15
  // border width
14
16
  flexGrow: 1