@mui/x-data-grid 8.11.2 → 8.12.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 (176) hide show
  1. package/CHANGELOG.md +231 -0
  2. package/DataGrid/DataGrid.js +3 -1
  3. package/DataGrid/useDataGridComponent.js +2 -2
  4. package/colDef/gridActionsColDef.js +1 -0
  5. package/colDef/gridBooleanColDef.js +1 -0
  6. package/colDef/gridCheckboxSelectionColDef.js +1 -0
  7. package/colDef/gridStringColDef.js +1 -0
  8. package/components/GridShadowScrollArea.js +2 -2
  9. package/components/GridSkeletonLoadingOverlay.js +2 -2
  10. package/components/cell/GridCell.js +7 -5
  11. package/components/panel/filterPanel/GridFilterInputBoolean.js +2 -2
  12. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +2 -2
  13. package/components/panel/filterPanel/GridFilterInputValue.js +2 -2
  14. package/components/quickFilter/QuickFilterControl.js +1 -1
  15. package/constants/localeTextConstants.js +29 -0
  16. package/esm/DataGrid/DataGrid.js +3 -1
  17. package/esm/DataGrid/useDataGridComponent.js +2 -2
  18. package/esm/colDef/gridActionsColDef.js +1 -0
  19. package/esm/colDef/gridBooleanColDef.js +1 -0
  20. package/esm/colDef/gridCheckboxSelectionColDef.js +1 -0
  21. package/esm/colDef/gridStringColDef.js +1 -0
  22. package/esm/components/GridShadowScrollArea.js +2 -2
  23. package/esm/components/GridSkeletonLoadingOverlay.js +2 -2
  24. package/esm/components/cell/GridCell.js +7 -5
  25. package/esm/components/panel/filterPanel/GridFilterInputBoolean.js +2 -2
  26. package/esm/components/panel/filterPanel/GridFilterInputSingleSelect.js +2 -2
  27. package/esm/components/panel/filterPanel/GridFilterInputValue.js +2 -2
  28. package/esm/components/quickFilter/QuickFilterControl.js +1 -1
  29. package/esm/constants/localeTextConstants.js +29 -0
  30. package/esm/hooks/features/columnResize/useGridColumnResize.js +2 -2
  31. package/esm/hooks/features/columns/useGridColumns.js +21 -4
  32. package/esm/hooks/features/filter/gridFilterSelector.d.ts +12 -4
  33. package/esm/hooks/features/filter/gridFilterSelector.js +21 -4
  34. package/esm/hooks/features/filter/gridFilterState.d.ts +3 -1
  35. package/esm/hooks/features/filter/gridFilterUtils.d.ts +3 -3
  36. package/esm/hooks/features/filter/gridFilterUtils.js +23 -13
  37. package/esm/hooks/features/filter/useGridFilter.d.ts +2 -1
  38. package/esm/hooks/features/filter/useGridFilter.js +7 -5
  39. package/esm/hooks/features/rows/gridRowsSelector.d.ts +9 -0
  40. package/esm/hooks/features/rows/gridRowsSelector.js +12 -0
  41. package/esm/hooks/features/rows/index.d.ts +1 -1
  42. package/esm/hooks/features/rows/index.js +1 -1
  43. package/esm/hooks/features/rows/useGridParamsApi.js +16 -7
  44. package/esm/hooks/features/sorting/gridSortingUtils.d.ts +3 -1
  45. package/esm/hooks/features/sorting/gridSortingUtils.js +10 -4
  46. package/esm/hooks/features/sorting/useGridSorting.d.ts +2 -1
  47. package/esm/hooks/features/sorting/useGridSorting.js +4 -3
  48. package/esm/index.js +1 -1
  49. package/esm/internals/index.d.ts +1 -1
  50. package/esm/internals/index.js +1 -1
  51. package/esm/locales/arSD.js +31 -0
  52. package/esm/locales/beBY.js +31 -0
  53. package/esm/locales/bgBG.js +31 -0
  54. package/esm/locales/bnBD.js +31 -0
  55. package/esm/locales/csCZ.js +31 -0
  56. package/esm/locales/daDK.js +31 -0
  57. package/esm/locales/deDE.js +32 -0
  58. package/esm/locales/elGR.js +31 -0
  59. package/esm/locales/esES.js +31 -0
  60. package/esm/locales/faIR.js +31 -0
  61. package/esm/locales/fiFI.js +31 -0
  62. package/esm/locales/frFR.js +32 -2
  63. package/esm/locales/heIL.js +31 -0
  64. package/esm/locales/hrHR.js +31 -0
  65. package/esm/locales/huHU.js +31 -0
  66. package/esm/locales/hyAM.js +31 -0
  67. package/esm/locales/idID.d.ts +1 -1
  68. package/esm/locales/idID.js +32 -0
  69. package/esm/locales/isIS.js +31 -0
  70. package/esm/locales/itIT.js +31 -0
  71. package/esm/locales/jaJP.js +31 -0
  72. package/esm/locales/koKR.js +31 -0
  73. package/esm/locales/nbNO.js +31 -0
  74. package/esm/locales/nlNL.js +31 -0
  75. package/esm/locales/nnNO.js +32 -0
  76. package/esm/locales/plPL.js +31 -0
  77. package/esm/locales/ptBR.js +31 -0
  78. package/esm/locales/ptPT.js +31 -0
  79. package/esm/locales/roRO.js +31 -0
  80. package/esm/locales/ruRU.js +31 -0
  81. package/esm/locales/skSK.js +31 -0
  82. package/esm/locales/svSE.js +31 -0
  83. package/esm/locales/trTR.js +31 -0
  84. package/esm/locales/ukUA.js +31 -0
  85. package/esm/locales/urPK.js +31 -0
  86. package/esm/locales/viVN.js +31 -0
  87. package/esm/locales/zhCN.js +31 -0
  88. package/esm/locales/zhHK.js +31 -0
  89. package/esm/locales/zhTW.js +31 -0
  90. package/esm/material/augmentation.d.ts +8 -0
  91. package/esm/material/index.js +147 -49
  92. package/esm/material/variables.js +2 -1
  93. package/esm/models/api/gridLocaleTextApi.d.ts +27 -0
  94. package/esm/models/api/gridParamsApi.d.ts +5 -1
  95. package/esm/models/configuration/gridAggregationConfiguration.d.ts +25 -0
  96. package/esm/models/configuration/gridAggregationConfiguration.js +1 -0
  97. package/esm/models/configuration/gridConfiguration.d.ts +6 -9
  98. package/esm/models/gridBaseSlots.d.ts +15 -0
  99. package/esm/models/gridFilterItem.d.ts +4 -2
  100. package/esm/models/gridFilterOperator.d.ts +1 -1
  101. package/esm/models/gridSlotsComponent.d.ts +10 -0
  102. package/esm/models/gridSlotsComponentsProps.d.ts +5 -1
  103. package/hooks/features/columnResize/useGridColumnResize.js +2 -2
  104. package/hooks/features/columns/useGridColumns.js +23 -6
  105. package/hooks/features/filter/gridFilterSelector.d.ts +12 -4
  106. package/hooks/features/filter/gridFilterSelector.js +22 -5
  107. package/hooks/features/filter/gridFilterState.d.ts +3 -1
  108. package/hooks/features/filter/gridFilterUtils.d.ts +3 -3
  109. package/hooks/features/filter/gridFilterUtils.js +23 -13
  110. package/hooks/features/filter/useGridFilter.d.ts +2 -1
  111. package/hooks/features/filter/useGridFilter.js +7 -5
  112. package/hooks/features/rows/gridRowsSelector.d.ts +9 -0
  113. package/hooks/features/rows/gridRowsSelector.js +12 -0
  114. package/hooks/features/rows/index.d.ts +1 -1
  115. package/hooks/features/rows/index.js +7 -0
  116. package/hooks/features/rows/useGridParamsApi.js +16 -7
  117. package/hooks/features/sorting/gridSortingUtils.d.ts +3 -1
  118. package/hooks/features/sorting/gridSortingUtils.js +10 -4
  119. package/hooks/features/sorting/useGridSorting.d.ts +2 -1
  120. package/hooks/features/sorting/useGridSorting.js +4 -3
  121. package/index.js +1 -1
  122. package/internals/index.d.ts +1 -1
  123. package/internals/index.js +7 -0
  124. package/locales/arSD.js +31 -0
  125. package/locales/beBY.js +31 -0
  126. package/locales/bgBG.js +31 -0
  127. package/locales/bnBD.js +31 -0
  128. package/locales/csCZ.js +31 -0
  129. package/locales/daDK.js +31 -0
  130. package/locales/deDE.js +32 -0
  131. package/locales/elGR.js +31 -0
  132. package/locales/esES.js +31 -0
  133. package/locales/faIR.js +31 -0
  134. package/locales/fiFI.js +31 -0
  135. package/locales/frFR.js +32 -2
  136. package/locales/heIL.js +31 -0
  137. package/locales/hrHR.js +31 -0
  138. package/locales/huHU.js +31 -0
  139. package/locales/hyAM.js +31 -0
  140. package/locales/idID.d.ts +1 -1
  141. package/locales/idID.js +32 -0
  142. package/locales/isIS.js +31 -0
  143. package/locales/itIT.js +31 -0
  144. package/locales/jaJP.js +31 -0
  145. package/locales/koKR.js +31 -0
  146. package/locales/nbNO.js +31 -0
  147. package/locales/nlNL.js +31 -0
  148. package/locales/nnNO.js +32 -0
  149. package/locales/plPL.js +31 -0
  150. package/locales/ptBR.js +31 -0
  151. package/locales/ptPT.js +31 -0
  152. package/locales/roRO.js +31 -0
  153. package/locales/ruRU.js +31 -0
  154. package/locales/skSK.js +31 -0
  155. package/locales/svSE.js +31 -0
  156. package/locales/trTR.js +31 -0
  157. package/locales/ukUA.js +31 -0
  158. package/locales/urPK.js +31 -0
  159. package/locales/viVN.js +31 -0
  160. package/locales/zhCN.js +31 -0
  161. package/locales/zhHK.js +31 -0
  162. package/locales/zhTW.js +31 -0
  163. package/material/augmentation.d.ts +8 -0
  164. package/material/index.js +147 -49
  165. package/material/variables.js +2 -1
  166. package/models/api/gridLocaleTextApi.d.ts +27 -0
  167. package/models/api/gridParamsApi.d.ts +5 -1
  168. package/models/configuration/gridAggregationConfiguration.d.ts +25 -0
  169. package/models/configuration/gridAggregationConfiguration.js +5 -0
  170. package/models/configuration/gridConfiguration.d.ts +6 -9
  171. package/models/gridBaseSlots.d.ts +15 -0
  172. package/models/gridFilterItem.d.ts +4 -2
  173. package/models/gridFilterOperator.d.ts +1 -1
  174. package/models/gridSlotsComponent.d.ts +10 -0
  175. package/models/gridSlotsComponentsProps.d.ts +5 -1
  176. package/package.json +3 -3
@@ -12,16 +12,19 @@ const _excluded = ["id", "label", "labelId", "material", "disabled", "slotProps"
12
12
  _excluded0 = ["material"],
13
13
  _excluded1 = ["material"],
14
14
  _excluded10 = ["material"],
15
- _excluded11 = ["material", "label", "className"],
16
- _excluded12 = ["material"],
17
- _excluded13 = ["inert", "iconStart", "iconEnd", "children", "material"],
18
- _excluded14 = ["slotProps", "material"],
19
- _excluded15 = ["id", "multiple", "freeSolo", "options", "getOptionLabel", "isOptionEqualToValue", "value", "onChange", "label", "placeholder", "slotProps", "material"],
20
- _excluded16 = ["key"],
21
- _excluded17 = ["inputProps", "InputProps", "InputLabelProps"],
22
- _excluded18 = ["slotProps", "material"],
23
- _excluded19 = ["ref", "open", "children", "className", "clickAwayTouchEvent", "clickAwayMouseEvent", "flip", "focusTrap", "onExited", "onClickAway", "onDidShow", "onDidHide", "id", "target", "transition", "placement", "material"],
24
- _excluded20 = ["native"];
15
+ _excluded11 = ["material"],
16
+ _excluded12 = ["material", "label", "className"],
17
+ _excluded13 = ["material"],
18
+ _excluded14 = ["inert", "iconStart", "iconEnd", "children", "material"],
19
+ _excluded15 = ["slotProps", "material"],
20
+ _excluded16 = ["id", "multiple", "freeSolo", "options", "getOptionLabel", "isOptionEqualToValue", "value", "onChange", "label", "placeholder", "slotProps", "material"],
21
+ _excluded17 = ["key"],
22
+ _excluded18 = ["inputProps", "InputProps", "InputLabelProps"],
23
+ _excluded19 = ["slotProps", "material"],
24
+ _excluded20 = ["ref", "open", "children", "className", "clickAwayTouchEvent", "clickAwayMouseEvent", "flip", "focusTrap", "onExited", "onClickAway", "onDidShow", "onDidHide", "id", "target", "transition", "placement", "material"],
25
+ _excluded21 = ["native"],
26
+ _excluded22 = ["children", "value", "active"],
27
+ _excluded23 = ["items", "value", "material"];
25
28
  import * as React from 'react';
26
29
  import clsx from 'clsx';
27
30
  import useForkRef from '@mui/utils/useForkRef';
@@ -56,7 +59,11 @@ import MUIGrow from '@mui/material/Grow';
56
59
  import MUIPaper from '@mui/material/Paper';
57
60
  import MUIInputLabel from '@mui/material/InputLabel';
58
61
  import MUISkeleton from '@mui/material/Skeleton';
62
+ import MUITabs from '@mui/material/Tabs';
63
+ import MUITab from '@mui/material/Tab';
64
+ import MUIToggleButton from '@mui/material/ToggleButton';
59
65
  import { forwardRef } from '@mui/x-internals/forwardRef';
66
+ import useId from '@mui/utils/useId';
60
67
  import { GridAddIcon, GridArrowDownwardIcon, GridArrowUpwardIcon, GridCheckIcon, GridCloseIcon, GridColumnIcon, GridDragIcon, GridExpandMoreIcon, GridFilterAltIcon, GridFilterListIcon, GridKeyboardArrowRight, GridMoreVertIcon, GridRemoveIcon, GridSearchIcon, GridSeparatorIcon, GridTableRowsIcon, GridTripleDotsVerticalIcon, GridViewHeadlineIcon, GridViewStreamIcon, GridVisibilityOffIcon, GridViewColumnIcon, GridClearIcon, GridLoadIcon, GridDeleteForeverIcon, GridDownloadIcon } from "./icons/index.js";
61
68
  import { GridColumnUnsortedIcon } from "../components/GridColumnUnsortedIcon.js";
62
69
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
@@ -134,7 +141,7 @@ const BaseSelect = forwardRef(function BaseSelect(props, ref) {
134
141
  style,
135
142
  fullWidth
136
143
  } = props,
137
- rest = _objectWithoutPropertiesLoose(props, _excluded);
144
+ other = _objectWithoutPropertiesLoose(props, _excluded);
138
145
  const menuProps = {
139
146
  PaperProps: {
140
147
  onKeyDown
@@ -162,7 +169,7 @@ const BaseSelect = forwardRef(function BaseSelect(props, ref) {
162
169
  displayEmpty: true,
163
170
  onChange: onChange,
164
171
  variant: "outlined"
165
- }, rest, {
172
+ }, other, {
166
173
  notched: true,
167
174
  inputProps: slotProps?.htmlInput,
168
175
  onOpen: onOpen,
@@ -194,7 +201,7 @@ const BasePagination = forwardRef(function BasePagination(props, ref) {
194
201
  material,
195
202
  disabled
196
203
  } = props,
197
- rest = _objectWithoutPropertiesLoose(props, _excluded2);
204
+ other = _objectWithoutPropertiesLoose(props, _excluded2);
198
205
  const computedProps = React.useMemo(() => {
199
206
  if (!disabled) {
200
207
  return undefined;
@@ -223,7 +230,7 @@ const BasePagination = forwardRef(function BasePagination(props, ref) {
223
230
  estimated: estimatedRowCount
224
231
  })),
225
232
  getItemAriaLabel: apiRef.current.getLocaleText('paginationItemAriaLabel')
226
- }, computedProps, rest, material, {
233
+ }, computedProps, other, material, {
227
234
  ref: ref
228
235
  }));
229
236
  });
@@ -232,8 +239,8 @@ const BaseBadge = forwardRef(function BaseBadge(props, ref) {
232
239
  const {
233
240
  material
234
241
  } = props,
235
- rest = _objectWithoutPropertiesLoose(props, _excluded3);
236
- return /*#__PURE__*/_jsx(MUIBadge, _extends({}, rest, material, {
242
+ other = _objectWithoutPropertiesLoose(props, _excluded3);
243
+ return /*#__PURE__*/_jsx(MUIBadge, _extends({}, other, material, {
237
244
  ref: ref
238
245
  }));
239
246
  });
@@ -287,8 +294,8 @@ const BaseCircularProgress = forwardRef(function BaseCircularProgress(props, ref
287
294
  const {
288
295
  material
289
296
  } = props,
290
- rest = _objectWithoutPropertiesLoose(props, _excluded5);
291
- return /*#__PURE__*/_jsx(MUICircularProgress, _extends({}, rest, material, {
297
+ other = _objectWithoutPropertiesLoose(props, _excluded5);
298
+ return /*#__PURE__*/_jsx(MUICircularProgress, _extends({}, other, material, {
292
299
  ref: ref
293
300
  }));
294
301
  });
@@ -297,8 +304,8 @@ const BaseDivider = forwardRef(function BaseDivider(props, ref) {
297
304
  const {
298
305
  material
299
306
  } = props,
300
- rest = _objectWithoutPropertiesLoose(props, _excluded6);
301
- return /*#__PURE__*/_jsx(MUIDivider, _extends({}, rest, material, {
307
+ other = _objectWithoutPropertiesLoose(props, _excluded6);
308
+ return /*#__PURE__*/_jsx(MUIDivider, _extends({}, other, material, {
302
309
  ref: ref
303
310
  }));
304
311
  });
@@ -307,8 +314,8 @@ const BaseLinearProgress = forwardRef(function BaseLinearProgress(props, ref) {
307
314
  const {
308
315
  material
309
316
  } = props,
310
- rest = _objectWithoutPropertiesLoose(props, _excluded7);
311
- return /*#__PURE__*/_jsx(MUILinearProgress, _extends({}, rest, material, {
317
+ other = _objectWithoutPropertiesLoose(props, _excluded7);
318
+ return /*#__PURE__*/_jsx(MUILinearProgress, _extends({}, other, material, {
312
319
  ref: ref
313
320
  }));
314
321
  });
@@ -317,18 +324,37 @@ const BaseButton = forwardRef(function BaseButton(props, ref) {
317
324
  const {
318
325
  material
319
326
  } = props,
320
- rest = _objectWithoutPropertiesLoose(props, _excluded8);
321
- return /*#__PURE__*/_jsx(MUIButton, _extends({}, rest, material, {
327
+ other = _objectWithoutPropertiesLoose(props, _excluded8);
328
+ return /*#__PURE__*/_jsx(MUIButton, _extends({}, other, material, {
322
329
  ref: ref
323
330
  }));
324
331
  });
325
332
  if (process.env.NODE_ENV !== "production") BaseButton.displayName = "BaseButton";
326
- const BaseChip = forwardRef(function BaseChip(props, ref) {
333
+ const StyledToggleButton = styled(MUIToggleButton)(({
334
+ theme
335
+ }) => ({
336
+ gap: theme.spacing(1),
337
+ border: 0
338
+ }));
339
+ const BaseToggleButton = forwardRef(function BaseToggleButton(props, ref) {
327
340
  const {
328
341
  material
329
342
  } = props,
330
343
  rest = _objectWithoutPropertiesLoose(props, _excluded9);
331
- return /*#__PURE__*/_jsx(MUIChip, _extends({}, rest, material, {
344
+ return /*#__PURE__*/_jsx(StyledToggleButton, _extends({
345
+ size: "small",
346
+ color: "primary"
347
+ }, rest, material, {
348
+ ref: ref
349
+ }));
350
+ });
351
+ if (process.env.NODE_ENV !== "production") BaseToggleButton.displayName = "BaseToggleButton";
352
+ const BaseChip = forwardRef(function BaseChip(props, ref) {
353
+ const {
354
+ material
355
+ } = props,
356
+ other = _objectWithoutPropertiesLoose(props, _excluded0);
357
+ return /*#__PURE__*/_jsx(MUIChip, _extends({}, other, material, {
332
358
  ref: ref
333
359
  }));
334
360
  });
@@ -337,8 +363,8 @@ const BaseIconButton = forwardRef(function BaseIconButton(props, ref) {
337
363
  const {
338
364
  material
339
365
  } = props,
340
- rest = _objectWithoutPropertiesLoose(props, _excluded0);
341
- return /*#__PURE__*/_jsx(MUIIconButton, _extends({}, rest, material, {
366
+ other = _objectWithoutPropertiesLoose(props, _excluded1);
367
+ return /*#__PURE__*/_jsx(MUIIconButton, _extends({}, other, material, {
342
368
  ref: ref
343
369
  }));
344
370
  });
@@ -347,8 +373,8 @@ const BaseTooltip = forwardRef(function BaseTooltip(props, ref) {
347
373
  const {
348
374
  material
349
375
  } = props,
350
- rest = _objectWithoutPropertiesLoose(props, _excluded1);
351
- return /*#__PURE__*/_jsx(MUITooltip, _extends({}, rest, material, {
376
+ other = _objectWithoutPropertiesLoose(props, _excluded10);
377
+ return /*#__PURE__*/_jsx(MUITooltip, _extends({}, other, material, {
352
378
  ref: ref
353
379
  }));
354
380
  });
@@ -357,8 +383,8 @@ const BaseSkeleton = forwardRef(function BaseSkeleton(props, ref) {
357
383
  const {
358
384
  material
359
385
  } = props,
360
- rest = _objectWithoutPropertiesLoose(props, _excluded10);
361
- return /*#__PURE__*/_jsx(MUISkeleton, _extends({}, rest, material, {
386
+ other = _objectWithoutPropertiesLoose(props, _excluded11);
387
+ return /*#__PURE__*/_jsx(MUISkeleton, _extends({}, other, material, {
362
388
  ref: ref
363
389
  }));
364
390
  });
@@ -369,16 +395,16 @@ const BaseSwitch = forwardRef(function BaseSwitch(props, ref) {
369
395
  label,
370
396
  className
371
397
  } = props,
372
- rest = _objectWithoutPropertiesLoose(props, _excluded11);
398
+ other = _objectWithoutPropertiesLoose(props, _excluded12);
373
399
  if (!label) {
374
- return /*#__PURE__*/_jsx(MUISwitch, _extends({}, rest, material, {
400
+ return /*#__PURE__*/_jsx(MUISwitch, _extends({}, other, material, {
375
401
  className: className,
376
402
  ref: ref
377
403
  }));
378
404
  }
379
405
  return /*#__PURE__*/_jsx(FormControlLabel, {
380
406
  className: className,
381
- control: /*#__PURE__*/_jsx(MUISwitch, _extends({}, rest, material, {
407
+ control: /*#__PURE__*/_jsx(MUISwitch, _extends({}, other, material, {
382
408
  ref: ref
383
409
  })),
384
410
  label: label
@@ -389,8 +415,8 @@ const BaseMenuList = forwardRef(function BaseMenuList(props, ref) {
389
415
  const {
390
416
  material
391
417
  } = props,
392
- rest = _objectWithoutPropertiesLoose(props, _excluded12);
393
- return /*#__PURE__*/_jsx(MUIMenuList, _extends({}, rest, material, {
418
+ other = _objectWithoutPropertiesLoose(props, _excluded13);
419
+ return /*#__PURE__*/_jsx(MUIMenuList, _extends({}, other, material, {
394
420
  ref: ref
395
421
  }));
396
422
  });
@@ -403,7 +429,7 @@ function BaseMenuItem(props) {
403
429
  children,
404
430
  material
405
431
  } = props,
406
- other = _objectWithoutPropertiesLoose(props, _excluded13);
432
+ other = _objectWithoutPropertiesLoose(props, _excluded14);
407
433
  if (inert) {
408
434
  other.disableRipple = true;
409
435
  }
@@ -422,10 +448,10 @@ function BaseTextField(props) {
422
448
  slotProps,
423
449
  material
424
450
  } = props,
425
- rest = _objectWithoutPropertiesLoose(props, _excluded14);
451
+ other = _objectWithoutPropertiesLoose(props, _excluded15);
426
452
  return /*#__PURE__*/_jsx(MUITextField, _extends({
427
453
  variant: "outlined"
428
- }, rest, material, {
454
+ }, other, material, {
429
455
  inputProps: slotProps?.htmlInput,
430
456
  InputProps: transformInputProps(slotProps?.input),
431
457
  InputLabelProps: _extends({
@@ -449,7 +475,7 @@ function BaseAutocomplete(props) {
449
475
  slotProps,
450
476
  material
451
477
  } = props,
452
- rest = _objectWithoutPropertiesLoose(props, _excluded15);
478
+ other = _objectWithoutPropertiesLoose(props, _excluded16);
453
479
  return /*#__PURE__*/_jsx(MUIAutocomplete, _extends({
454
480
  id: id,
455
481
  multiple: multiple,
@@ -466,7 +492,7 @@ function BaseAutocomplete(props) {
466
492
  {
467
493
  key
468
494
  } = _getTagProps,
469
- tagProps = _objectWithoutPropertiesLoose(_getTagProps, _excluded16);
495
+ tagProps = _objectWithoutPropertiesLoose(_getTagProps, _excluded17);
470
496
  return /*#__PURE__*/_jsx(MUIChip, _extends({
471
497
  variant: "outlined",
472
498
  size: "small",
@@ -479,7 +505,7 @@ function BaseAutocomplete(props) {
479
505
  InputProps,
480
506
  InputLabelProps
481
507
  } = params,
482
- inputRest = _objectWithoutPropertiesLoose(params, _excluded17);
508
+ inputRest = _objectWithoutPropertiesLoose(params, _excluded18);
483
509
  return /*#__PURE__*/_jsx(MUITextField, _extends({}, inputRest, {
484
510
  label: label,
485
511
  placeholder: placeholder,
@@ -490,7 +516,7 @@ function BaseAutocomplete(props) {
490
516
  }, InputLabelProps)
491
517
  }, slotProps?.textField, rootProps.slotProps?.baseTextField));
492
518
  }
493
- }, rest, material));
519
+ }, other, material));
494
520
  }
495
521
  function BaseInput(props) {
496
522
  return /*#__PURE__*/_jsx(MUIInputBase, _extends({}, transformInputProps(props)));
@@ -503,8 +529,8 @@ function transformInputProps(props, wrapAdornments = true) {
503
529
  slotProps,
504
530
  material
505
531
  } = props,
506
- rest = _objectWithoutPropertiesLoose(props, _excluded18);
507
- const result = rest;
532
+ other = _objectWithoutPropertiesLoose(props, _excluded19);
533
+ const result = other;
508
534
  if (wrapAdornments) {
509
535
  if (result.startAdornment) {
510
536
  result.startAdornment = /*#__PURE__*/_jsx(InputAdornment, {
@@ -552,7 +578,7 @@ function BasePopper(props) {
552
578
  placement,
553
579
  material
554
580
  } = props,
555
- rest = _objectWithoutPropertiesLoose(props, _excluded19);
581
+ other = _objectWithoutPropertiesLoose(props, _excluded20);
556
582
  const modifiers = React.useMemo(() => {
557
583
  const result = [{
558
584
  name: 'preventOverflow',
@@ -614,7 +640,7 @@ function BasePopper(props) {
614
640
  transition: transition,
615
641
  placement: placement,
616
642
  modifiers: modifiers
617
- }, rest, material, {
643
+ }, other, material, {
618
644
  children: content
619
645
  }));
620
646
  }
@@ -650,12 +676,82 @@ function BaseSelectOption(_ref) {
650
676
  let {
651
677
  native
652
678
  } = _ref,
653
- props = _objectWithoutPropertiesLoose(_ref, _excluded20);
679
+ props = _objectWithoutPropertiesLoose(_ref, _excluded21);
654
680
  if (native) {
655
681
  return /*#__PURE__*/_jsx("option", _extends({}, props));
656
682
  }
657
683
  return /*#__PURE__*/_jsx(MUIMenuItem, _extends({}, props));
658
684
  }
685
+ const StyledTabs = styled(MUITabs, {
686
+ name: 'MuiDataGrid',
687
+ slot: 'Tabs'
688
+ })(({
689
+ theme
690
+ }) => ({
691
+ borderBottom: `1px solid ${theme.palette.divider}`
692
+ }));
693
+ const StyledTab = styled(MUITab, {
694
+ name: 'MuiDataGrid',
695
+ slot: 'Tab'
696
+ })({
697
+ flex: 1,
698
+ minWidth: 'fit-content'
699
+ });
700
+ const StyledTabPanel = styled('div', {
701
+ name: 'MuiDataGrid',
702
+ slot: 'TabPanel'
703
+ })({
704
+ flex: 1,
705
+ display: 'flex',
706
+ flexDirection: 'column',
707
+ overflow: 'hidden'
708
+ });
709
+ function TabPanel(props) {
710
+ const {
711
+ children,
712
+ active
713
+ } = props,
714
+ other = _objectWithoutPropertiesLoose(props, _excluded22);
715
+ return /*#__PURE__*/_jsx(StyledTabPanel, _extends({
716
+ role: "tabpanel",
717
+ style: {
718
+ display: active ? 'flex' : 'none'
719
+ }
720
+ }, other, {
721
+ children: children
722
+ }));
723
+ }
724
+ function BaseTabs(_ref2) {
725
+ let {
726
+ items,
727
+ value,
728
+ material
729
+ } = _ref2,
730
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded23);
731
+ const id = useId();
732
+ const labelId = `${id}-tab-${value}`;
733
+ const panelId = `${id}-tabpanel-${value}`;
734
+ return /*#__PURE__*/_jsxs(React.Fragment, {
735
+ children: [/*#__PURE__*/_jsx(StyledTabs, _extends({}, props, {
736
+ value: value,
737
+ variant: "scrollable",
738
+ scrollButtons: "auto"
739
+ }, material, {
740
+ children: items.map(item => /*#__PURE__*/_jsx(StyledTab, {
741
+ value: item.value,
742
+ label: item.label,
743
+ id: labelId,
744
+ "aria-controls": panelId
745
+ }, item.value))
746
+ })), items.map(item => /*#__PURE__*/_jsx(TabPanel, {
747
+ value: item.value,
748
+ active: value === item.value,
749
+ id: panelId,
750
+ "aria-labelledby": labelId,
751
+ children: item.children
752
+ }, item.value))]
753
+ });
754
+ }
659
755
  const iconSlots = {
660
756
  booleanCellTrueIcon: GridCheckIcon,
661
757
  booleanCellFalseIcon: GridCloseIcon,
@@ -709,7 +805,9 @@ const baseSlots = {
709
805
  baseTextField: BaseTextField,
710
806
  baseButton: BaseButton,
711
807
  baseIconButton: BaseIconButton,
808
+ baseToggleButton: BaseToggleButton,
712
809
  baseTooltip: BaseTooltip,
810
+ baseTabs: BaseTabs,
713
811
  basePagination: BasePagination,
714
812
  basePopper: BasePopper,
715
813
  baseSelect: BaseSelect,
@@ -97,7 +97,8 @@ function formatFont(font) {
97
97
  if (!font) {
98
98
  return undefined;
99
99
  }
100
- return `${font.fontWeight} ${font.fontSize} / ${font.lineHeight} ${font.fontFamily}`;
100
+ const fontSize = typeof font.fontSize === 'number' ? `${font.fontSize}px` : font.fontSize;
101
+ return `${font.fontWeight} ${fontSize} / ${font.lineHeight} ${font.fontFamily}`;
101
102
  }
102
103
 
103
104
  /**
@@ -30,6 +30,7 @@ export interface GridLocaleText {
30
30
  toolbarExportPrint: React.ReactNode;
31
31
  toolbarExportExcel: string;
32
32
  toolbarPivot: string;
33
+ toolbarCharts: string;
33
34
  toolbarAssistant: React.ReactNode;
34
35
  columnsManagementSearchTitle: string;
35
36
  columnsManagementNoColumns: string;
@@ -102,6 +103,7 @@ export interface GridLocaleText {
102
103
  columnMenuSortAsc: React.ReactNode | ((colDef: GridColDef) => React.ReactNode);
103
104
  columnMenuSortDesc: React.ReactNode | ((colDef: GridColDef) => React.ReactNode);
104
105
  columnMenuManagePivot: string;
106
+ columnMenuManageCharts: string;
105
107
  columnHeaderFiltersTooltipActive: (count: number) => React.ReactNode;
106
108
  columnHeaderFiltersLabel: string;
107
109
  columnHeaderSortIconLabel: string;
@@ -130,6 +132,7 @@ export interface GridLocaleText {
130
132
  collapseDetailPanel: string;
131
133
  rowReorderingHeaderName: string;
132
134
  aggregationMenuItemHeader: string;
135
+ aggregationFunctionLabelNone: string;
133
136
  aggregationFunctionLabelSum: string;
134
137
  aggregationFunctionLabelAvg: string;
135
138
  aggregationFunctionLabelMin: string;
@@ -170,6 +173,30 @@ export interface GridLocaleText {
170
173
  pivotDragToValues: string;
171
174
  pivotYearColumnHeaderName: string;
172
175
  pivotQuarterColumnHeaderName: string;
176
+ chartsNoCharts: string;
177
+ chartsChartNotSelected: string;
178
+ chartsTabChart: string;
179
+ chartsTabFields: string;
180
+ chartsTabCustomize: string;
181
+ chartsCloseButton: string;
182
+ chartsSyncButtonLabel: string;
183
+ chartsSearchPlaceholder: string;
184
+ chartsSearchLabel: string;
185
+ chartsSearchClear: string;
186
+ chartsNoFields: string;
187
+ chartsFieldBlocked: string;
188
+ chartsCategories: string;
189
+ chartsSeries: string;
190
+ chartsMenuAddToDimensions: (dimensionLabel: string) => string;
191
+ chartsMenuAddToValues: (valuesLabel: string) => string;
192
+ chartsMenuMoveUp: string;
193
+ chartsMenuMoveDown: string;
194
+ chartsMenuMoveToTop: string;
195
+ chartsMenuMoveToBottom: string;
196
+ chartsMenuOptions: string;
197
+ chartsMenuRemove: string;
198
+ chartsDragToDimensions: (dimensionLabel: string) => string;
199
+ chartsDragToValues: (valuesLabel: string) => string;
173
200
  aiAssistantPanelTitle: string;
174
201
  aiAssistantPanelClose: string;
175
202
  aiAssistantPanelConversationHistory: string;
@@ -96,12 +96,16 @@ export interface GridParamsPrivateApi {
96
96
  colDef,
97
97
  hasFocus,
98
98
  rowNode,
99
- tabIndex
99
+ tabIndex,
100
+ value,
101
+ formattedValue
100
102
  }: {
101
103
  cellMode: GridCellMode;
102
104
  colDef: GridStateColDef;
103
105
  hasFocus: boolean;
104
106
  rowNode: N;
105
107
  tabIndex: 0 | -1;
108
+ value?: V;
109
+ formattedValue?: F;
106
110
  }) => GridCellParams<R, V, F, N>;
107
111
  }
@@ -0,0 +1,25 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import type { GridRowId, GridRowModel } from "../gridRows.js";
3
+ import { GridColDef } from "../colDef/index.js";
4
+ /**
5
+ * Get the cell aggregation result
6
+ * @param {GridRowId} id The row id
7
+ * @param {string} field The field
8
+ * @returns { { position: 'footer' | 'inline'; value: any } | null } The cell aggregation result
9
+ */
10
+ export type GetCellAggregationResultFn = (id: GridRowId, field: string) => {
11
+ position: 'footer' | 'inline';
12
+ value: any;
13
+ formattedValue?: any;
14
+ } | null;
15
+ export type SortValueGetterFn = (id: GridRowId, field: string) => any;
16
+ export type FilterValueGetterFn = (row: GridRowModel, colDef: GridColDef) => any;
17
+ export interface GridAggregationInternalHooks<Api, Props> {
18
+ useCellAggregationResult: GetCellAggregationResultFn;
19
+ /**
20
+ * @param {RefObject<Api>} apiRef The API reference
21
+ * @returns {SortValueGetterFn} The function to get the value to sort by
22
+ */
23
+ useSortValueGetter: (apiRef: RefObject<Api>) => SortValueGetterFn;
24
+ useFilterValueGetter: (apiRef: RefObject<Api>, props: Props) => FilterValueGetterFn;
25
+ }
@@ -1,22 +1,19 @@
1
1
  import * as React from 'react';
2
- import { GridRowAriaAttributesInternalHook, GridRowsOverridableMethodsInternalHook } from "./gridRowConfiguration.js";
2
+ import type { GridRowAriaAttributesInternalHook, GridRowsOverridableMethodsInternalHook } from "./gridRowConfiguration.js";
3
+ import type { GridAggregationInternalHooks } from "./gridAggregationConfiguration.js";
3
4
  import type { GridCSSVariablesInterface } from "../../constants/cssVariables.js";
4
- import type { GridRowId } from "../gridRows.js";
5
+ import { DataGridProcessedProps } from "../props/DataGridProps.js";
5
6
  import type { GridPrivateApiCommon } from "../api/gridApiCommon.js";
6
7
  import type { GridPrivateApiCommunity } from "../api/gridApiCommunity.js";
7
8
  export interface GridAriaAttributesInternalHook {
8
9
  useGridAriaAttributes: () => React.HTMLAttributes<HTMLElement>;
9
10
  }
10
- export interface GridInternalHook<Api> extends GridAriaAttributesInternalHook, GridRowAriaAttributesInternalHook, GridRowsOverridableMethodsInternalHook<Api> {
11
+ export interface GridInternalHook<Api, Props> extends GridAriaAttributesInternalHook, GridRowAriaAttributesInternalHook, GridAggregationInternalHooks<Api, Props>, GridRowsOverridableMethodsInternalHook<Api> {
11
12
  useCSSVariables: () => {
12
13
  id: string;
13
14
  variables: GridCSSVariablesInterface;
14
15
  };
15
- useCellAggregationResult: (id: GridRowId, field: string) => {
16
- position: 'footer' | 'inline';
17
- value: any;
18
- } | null;
19
16
  }
20
- export interface GridConfiguration<Api extends GridPrivateApiCommon = GridPrivateApiCommunity> {
21
- hooks: GridInternalHook<Api>;
17
+ export interface GridConfiguration<Api extends GridPrivateApiCommon = GridPrivateApiCommunity, Props = DataGridProcessedProps> {
18
+ hooks: GridInternalHook<Api, Props>;
22
19
  }
@@ -116,6 +116,10 @@ export type IconButtonProps = Omit<ButtonProps, 'startIcon'> & {
116
116
  color?: 'default' | 'inherit' | 'primary';
117
117
  edge?: 'start' | 'end' | false;
118
118
  };
119
+ export type ToggleButtonProps = CommonProps & {
120
+ selected?: boolean;
121
+ value: string;
122
+ };
119
123
  export type DividerProps = {
120
124
  className?: string;
121
125
  orientation?: 'horizontal' | 'vertical';
@@ -236,6 +240,17 @@ export type SwitchProps = CommonProps & {
236
240
  onChange?: React.ChangeEventHandler;
237
241
  size?: 'small' | 'medium';
238
242
  label?: React.ReactNode;
243
+ disabled?: boolean;
244
+ title?: string;
245
+ };
246
+ export type TabsProps = Omit<CommonProps, 'onChange'> & {
247
+ items: {
248
+ value: string;
249
+ label: string;
250
+ children: React.ReactNode;
251
+ }[];
252
+ value: string;
253
+ onChange: (event: React.SyntheticEvent, value: string) => void;
239
254
  };
240
255
  export type TextFieldProps = CommonProps & {
241
256
  role?: string;
@@ -1,3 +1,4 @@
1
+ import { GridBaseColDef } from "./colDef/gridColDef.js";
1
2
  /**
2
3
  * Filter item definition interface.
3
4
  * @demos
@@ -12,7 +13,7 @@ export interface GridFilterItem {
12
13
  /**
13
14
  * The column from which we want to filter the rows.
14
15
  */
15
- field: string;
16
+ field: GridBaseColDef['field'];
16
17
  /**
17
18
  * The filtering value.
18
19
  * The operator filtering function will decide for each row if the row values is correct compared to this value.
@@ -20,8 +21,9 @@ export interface GridFilterItem {
20
21
  value?: any;
21
22
  /**
22
23
  * The name of the operator we want to apply.
24
+ * A custom operator is supported by providing any string value.
23
25
  */
24
- operator: string;
26
+ operator: 'contains' | 'doesNotContain' | 'equals' | 'doesNotEqual' | 'startsWith' | 'endsWith' | '=' | '!=' | '>' | '>=' | '<' | '<=' | 'is' | 'not' | 'after' | 'onOrAfter' | 'before' | 'onOrBefore' | 'isEmpty' | 'isNotEmpty' | 'isAnyOf' | (string & {});
25
27
  }
26
28
  declare enum GridLogicOperator {
27
29
  And = "and",
@@ -25,7 +25,7 @@ export interface GridFilterOperator<R extends GridValidRowModel = any, V = any,
25
25
  * The name of the filter operator.
26
26
  * It will be matched with the `operator` property of the filter items.
27
27
  */
28
- value: string;
28
+ value: GridFilterItem['operator'];
29
29
  /**
30
30
  * The callback that generates a filtering function for a given filter item and column.
31
31
  * This function can return `null` to skip filtering for this item and column.
@@ -73,6 +73,11 @@ export interface GridBaseSlots {
73
73
  * @default Input
74
74
  */
75
75
  baseInput: React.JSXElementConstructor<GridSlotProps['baseInput']>;
76
+ /**
77
+ * The custom ToggleButton component used in the grid.
78
+ * @default ToggleButton
79
+ */
80
+ baseToggleButton: React.JSXElementConstructor<GridSlotProps['baseToggleButton']>;
76
81
  /**
77
82
  * The custom Tooltip component used in the grid.
78
83
  * @default Tooltip
@@ -103,6 +108,11 @@ export interface GridBaseSlots {
103
108
  * @default Switch
104
109
  */
105
110
  baseSwitch: React.JSXElementConstructor<GridSlotProps['baseSwitch']>;
111
+ /**
112
+ * The custom Tabs component used in the grid.
113
+ * @default Tabs
114
+ */
115
+ baseTabs: React.JSXElementConstructor<GridSlotProps['baseTabs']>;
106
116
  }
107
117
  /**
108
118
  * Grid components React prop interface containing all the overridable components.
@@ -18,7 +18,7 @@ import type { GridLoadingOverlayProps } from "../components/GridLoadingOverlay.j
18
18
  import type { GridRowCountProps } from "../components/GridRowCount.js";
19
19
  import type { GridColumnHeaderSortIconProps } from "../components/columnHeaders/GridColumnHeaderSortIcon.js";
20
20
  import type { GridBottomContainerProps } from "../components/virtualization/GridBottomContainer.js";
21
- import type { AutocompleteProps, BadgeProps, ButtonProps, CheckboxProps, ChipProps, CircularProgressProps, DividerProps, IconButtonProps, InputProps, LinearProgressProps, MenuListProps, MenuItemProps, PaginationProps, PopperProps, SelectProps, SelectOptionProps, SkeletonProps, SwitchProps, TooltipProps, TextFieldProps, IconProps } from "./gridBaseSlots.js";
21
+ import type { AutocompleteProps, BadgeProps, ButtonProps, CheckboxProps, ChipProps, CircularProgressProps, DividerProps, IconButtonProps, InputProps, LinearProgressProps, MenuListProps, MenuItemProps, PaginationProps, PopperProps, SelectProps, SelectOptionProps, SkeletonProps, SwitchProps, TooltipProps, TextFieldProps, IconProps, TabsProps, ToggleButtonProps } from "./gridBaseSlots.js";
22
22
  type RootProps = React.HTMLAttributes<HTMLDivElement> & Record<`data-${string}`, string>;
23
23
  type MainProps = React.HTMLAttributes<HTMLDivElement> & Record<`data-${string}`, string>;
24
24
  export interface BaseAutocompletePropsOverrides {}
@@ -30,6 +30,7 @@ export interface BaseDividerPropsOverrides {}
30
30
  export interface BaseLinearProgressPropsOverrides {}
31
31
  export interface BaseMenuListPropsOverrides {}
32
32
  export interface BaseMenuItemPropsOverrides {}
33
+ export interface BaseTabsPropsOverrides {}
33
34
  export interface BaseTextFieldPropsOverrides {}
34
35
  export interface BaseSelectPropsOverrides {}
35
36
  export interface BaseSwitchPropsOverrides {}
@@ -43,6 +44,7 @@ export interface BaseInputLabelPropsOverrides {}
43
44
  export interface BaseSelectOptionPropsOverrides {}
44
45
  export interface BaseSkeletonPropsOverrides {}
45
46
  export interface BaseIconPropsOverrides {}
47
+ export interface BaseToggleButtonPropsOverrides {}
46
48
  export interface CellPropsOverrides {}
47
49
  export interface ToolbarPropsOverrides {}
48
50
  export interface ColumnHeaderFilterIconButtonPropsOverrides {}
@@ -74,10 +76,12 @@ interface BaseSlotProps {
74
76
  baseLinearProgress: LinearProgressProps & BaseLinearProgressPropsOverrides;
75
77
  baseMenuList: MenuListProps & BaseMenuListPropsOverrides;
76
78
  baseMenuItem: MenuItemProps & BaseMenuItemPropsOverrides;
79
+ baseTabs: TabsProps & BaseTabsPropsOverrides;
77
80
  baseTextField: TextFieldProps & BaseTextFieldPropsOverrides;
78
81
  baseSwitch: SwitchProps & BaseSwitchPropsOverrides;
79
82
  baseButton: ButtonProps & BaseButtonPropsOverrides;
80
83
  baseIconButton: IconButtonProps & BaseIconButtonPropsOverrides;
84
+ baseToggleButton: ToggleButtonProps & BaseToggleButtonPropsOverrides;
81
85
  basePagination: PaginationProps & BasePaginationPropsOverrides;
82
86
  basePopper: PopperProps & BasePopperPropsOverrides;
83
87
  baseTooltip: TooltipProps & BaseTooltipPropsOverrides;