@mui/x-data-grid 8.3.1 → 8.5.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 (214) hide show
  1. package/CHANGELOG.md +213 -0
  2. package/DataGrid/DataGrid.js +5 -3
  3. package/components/GridApiContext.js +1 -3
  4. package/components/GridColumnHeaders.js +1 -0
  5. package/components/GridColumnUnsortedIcon.js +2 -1
  6. package/components/GridConfigurationContext.js +1 -3
  7. package/components/GridFooter.js +1 -0
  8. package/components/GridLoadingOverlay.js +1 -0
  9. package/components/GridNoColumnsOverlay.js +1 -0
  10. package/components/GridNoResultsOverlay.js +2 -1
  11. package/components/GridNoRowsOverlay.js +1 -0
  12. package/components/GridRow.js +4 -2
  13. package/components/GridRowCount.js +1 -0
  14. package/components/GridSelectedRowCount.js +1 -0
  15. package/components/GridShadowScrollArea.js +1 -0
  16. package/components/GridSkeletonLoadingOverlay.js +3 -1
  17. package/components/cell/GridActionsCell.js +5 -4
  18. package/components/cell/GridActionsCellItem.js +1 -0
  19. package/components/cell/GridBooleanCell.js +3 -1
  20. package/components/cell/GridCell.js +11 -7
  21. package/components/cell/GridEditBooleanCell.js +8 -5
  22. package/components/cell/GridEditDateCell.js +6 -4
  23. package/components/cell/GridEditInputCell.js +7 -4
  24. package/components/cell/GridEditSingleSelectCell.js +4 -3
  25. package/components/cell/GridSkeletonCell.js +6 -5
  26. package/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -1
  27. package/components/columnHeaders/GridBaseColumnHeaders.js +2 -1
  28. package/components/columnHeaders/GridColumnGroupHeader.js +6 -5
  29. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +5 -4
  30. package/components/columnHeaders/GridColumnHeaderItem.js +8 -7
  31. package/components/columnHeaders/GridColumnHeaderSeparator.js +5 -3
  32. package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -0
  33. package/components/columnHeaders/GridColumnHeaderTitle.js +1 -0
  34. package/components/columnHeaders/GridGenericColumnHeaderItem.js +4 -3
  35. package/components/columnHeaders/GridIconButtonContainer.js +2 -1
  36. package/components/columnSelection/GridCellCheckboxRenderer.js +5 -4
  37. package/components/columnSelection/GridHeaderCheckbox.js +1 -0
  38. package/components/columnsManagement/GridColumnsManagement.js +2 -2
  39. package/components/columnsPanel/ColumnsPanelTrigger.js +1 -0
  40. package/components/containers/GridFooterContainer.js +1 -0
  41. package/components/containers/GridOverlay.js +1 -0
  42. package/components/containers/GridRoot.js +7 -4
  43. package/components/containers/GridRootStyles.js +2 -2
  44. package/components/containers/GridToolbarContainer.js +1 -0
  45. package/components/export/ExportCsv.js +1 -0
  46. package/components/export/ExportPrint.js +1 -0
  47. package/components/filterPanel/FilterPanelTrigger.js +1 -0
  48. package/components/menu/GridMenu.js +6 -4
  49. package/components/menu/columnMenu/GridColumnMenu.js +2 -0
  50. package/components/menu/columnMenu/GridColumnMenuContainer.js +1 -0
  51. package/components/panel/GridPanel.js +3 -2
  52. package/components/panel/GridPanelContext.js +1 -0
  53. package/components/panel/GridPanelWrapper.js +2 -1
  54. package/components/panel/filterPanel/GridFilterForm.js +10 -7
  55. package/components/panel/filterPanel/GridFilterInputBoolean.js +5 -4
  56. package/components/panel/filterPanel/GridFilterInputDate.js +2 -2
  57. package/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +2 -2
  58. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +2 -2
  59. package/components/panel/filterPanel/GridFilterInputSingleSelect.js +3 -3
  60. package/components/panel/filterPanel/GridFilterInputValue.js +2 -2
  61. package/components/panel/filterPanel/GridFilterPanel.js +1 -0
  62. package/components/quickFilter/QuickFilter.js +2 -2
  63. package/components/quickFilter/QuickFilterClear.js +1 -0
  64. package/components/quickFilter/QuickFilterContext.js +1 -0
  65. package/components/quickFilter/QuickFilterControl.js +3 -2
  66. package/components/quickFilter/QuickFilterTrigger.js +3 -2
  67. package/components/toolbar/GridToolbar.js +3 -2
  68. package/components/toolbar/GridToolbarColumnsButton.js +1 -0
  69. package/components/toolbar/GridToolbarDensitySelector.js +6 -4
  70. package/components/toolbar/GridToolbarExport.js +1 -0
  71. package/components/toolbar/GridToolbarExportContainer.js +6 -4
  72. package/components/toolbar/GridToolbarFilterButton.js +8 -5
  73. package/components/toolbarV8/Toolbar.js +59 -32
  74. package/components/toolbarV8/ToolbarButton.js +3 -2
  75. package/components/toolbarV8/ToolbarContext.js +1 -0
  76. package/components/toolbarV8/utils.d.ts +5 -0
  77. package/components/toolbarV8/utils.js +23 -0
  78. package/components/virtualization/GridMainContainer.js +2 -1
  79. package/components/virtualization/GridVirtualScrollbar.js +2 -1
  80. package/components/virtualization/GridVirtualScrollerContent.js +2 -1
  81. package/components/virtualization/GridVirtualScrollerRenderZone.js +2 -1
  82. package/constants/gridClasses.d.ts +4 -0
  83. package/constants/gridClasses.js +5 -3
  84. package/context/GridRootPropsContext.js +1 -3
  85. package/esm/DataGrid/DataGrid.js +5 -3
  86. package/esm/components/GridApiContext.js +1 -3
  87. package/esm/components/GridColumnHeaders.js +1 -0
  88. package/esm/components/GridColumnUnsortedIcon.js +2 -1
  89. package/esm/components/GridConfigurationContext.js +1 -3
  90. package/esm/components/GridFooter.js +1 -0
  91. package/esm/components/GridLoadingOverlay.js +1 -0
  92. package/esm/components/GridNoColumnsOverlay.js +1 -0
  93. package/esm/components/GridNoResultsOverlay.js +2 -1
  94. package/esm/components/GridNoRowsOverlay.js +1 -0
  95. package/esm/components/GridRow.js +3 -1
  96. package/esm/components/GridRowCount.js +1 -0
  97. package/esm/components/GridSelectedRowCount.js +1 -0
  98. package/esm/components/GridShadowScrollArea.js +1 -0
  99. package/esm/components/GridSkeletonLoadingOverlay.js +3 -1
  100. package/esm/components/cell/GridActionsCell.js +3 -2
  101. package/esm/components/cell/GridActionsCellItem.js +1 -0
  102. package/esm/components/cell/GridBooleanCell.js +3 -1
  103. package/esm/components/cell/GridCell.js +5 -1
  104. package/esm/components/cell/GridEditBooleanCell.js +5 -2
  105. package/esm/components/cell/GridEditDateCell.js +4 -2
  106. package/esm/components/cell/GridEditInputCell.js +5 -2
  107. package/esm/components/cell/GridEditSingleSelectCell.js +3 -2
  108. package/esm/components/cell/GridSkeletonCell.js +2 -1
  109. package/esm/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -1
  110. package/esm/components/columnHeaders/GridBaseColumnHeaders.js +2 -1
  111. package/esm/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  112. package/esm/components/columnHeaders/GridColumnHeaderFilterIconButton.js +2 -1
  113. package/esm/components/columnHeaders/GridColumnHeaderItem.js +3 -2
  114. package/esm/components/columnHeaders/GridColumnHeaderSeparator.js +3 -1
  115. package/esm/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -0
  116. package/esm/components/columnHeaders/GridColumnHeaderTitle.js +1 -0
  117. package/esm/components/columnHeaders/GridGenericColumnHeaderItem.js +2 -1
  118. package/esm/components/columnHeaders/GridIconButtonContainer.js +2 -1
  119. package/esm/components/columnSelection/GridCellCheckboxRenderer.js +2 -1
  120. package/esm/components/columnSelection/GridHeaderCheckbox.js +1 -0
  121. package/esm/components/columnsManagement/GridColumnsManagement.js +2 -2
  122. package/esm/components/columnsPanel/ColumnsPanelTrigger.js +1 -0
  123. package/esm/components/containers/GridFooterContainer.js +1 -0
  124. package/esm/components/containers/GridOverlay.js +1 -0
  125. package/esm/components/containers/GridRoot.js +4 -1
  126. package/esm/components/containers/GridRootStyles.js +2 -2
  127. package/esm/components/containers/GridToolbarContainer.js +1 -0
  128. package/esm/components/export/ExportCsv.js +1 -0
  129. package/esm/components/export/ExportPrint.js +1 -0
  130. package/esm/components/filterPanel/FilterPanelTrigger.js +1 -0
  131. package/esm/components/menu/GridMenu.js +3 -1
  132. package/esm/components/menu/columnMenu/GridColumnMenu.js +2 -0
  133. package/esm/components/menu/columnMenu/GridColumnMenuContainer.js +1 -0
  134. package/esm/components/panel/GridPanel.js +2 -1
  135. package/esm/components/panel/GridPanelContext.js +1 -0
  136. package/esm/components/panel/GridPanelWrapper.js +1 -0
  137. package/esm/components/panel/filterPanel/GridFilterForm.js +4 -1
  138. package/esm/components/panel/filterPanel/GridFilterInputBoolean.js +2 -1
  139. package/esm/components/panel/filterPanel/GridFilterInputDate.js +1 -1
  140. package/esm/components/panel/filterPanel/GridFilterInputMultipleSingleSelect.js +1 -1
  141. package/esm/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  142. package/esm/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
  143. package/esm/components/panel/filterPanel/GridFilterInputValue.js +1 -1
  144. package/esm/components/panel/filterPanel/GridFilterPanel.js +1 -0
  145. package/esm/components/quickFilter/QuickFilter.js +1 -1
  146. package/esm/components/quickFilter/QuickFilterClear.js +1 -0
  147. package/esm/components/quickFilter/QuickFilterContext.js +1 -0
  148. package/esm/components/quickFilter/QuickFilterControl.js +2 -1
  149. package/esm/components/quickFilter/QuickFilterTrigger.js +2 -1
  150. package/esm/components/toolbar/GridToolbar.js +1 -0
  151. package/esm/components/toolbar/GridToolbarColumnsButton.js +1 -0
  152. package/esm/components/toolbar/GridToolbarDensitySelector.js +3 -1
  153. package/esm/components/toolbar/GridToolbarExport.js +1 -0
  154. package/esm/components/toolbar/GridToolbarExportContainer.js +3 -1
  155. package/esm/components/toolbar/GridToolbarFilterButton.js +4 -1
  156. package/esm/components/toolbarV8/Toolbar.js +59 -32
  157. package/esm/components/toolbarV8/ToolbarButton.js +2 -1
  158. package/esm/components/toolbarV8/ToolbarContext.js +1 -0
  159. package/esm/components/toolbarV8/utils.d.ts +5 -0
  160. package/esm/components/toolbarV8/utils.js +17 -0
  161. package/esm/components/virtualization/GridMainContainer.js +2 -1
  162. package/esm/components/virtualization/GridVirtualScrollbar.js +1 -0
  163. package/esm/components/virtualization/GridVirtualScrollerContent.js +1 -0
  164. package/esm/components/virtualization/GridVirtualScrollerRenderZone.js +1 -0
  165. package/esm/constants/gridClasses.d.ts +4 -0
  166. package/esm/constants/gridClasses.js +3 -2
  167. package/esm/context/GridRootPropsContext.js +1 -3
  168. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -1
  169. package/esm/hooks/features/columns/gridColumnsSelector.d.ts +9 -0
  170. package/esm/hooks/features/columns/gridColumnsSelector.js +9 -2
  171. package/esm/hooks/features/dataSource/useGridDataSourceBase.js +1 -1
  172. package/esm/hooks/features/export/useGridPrintExport.js +1 -1
  173. package/esm/hooks/features/filter/useGridFilter.js +1 -1
  174. package/esm/hooks/features/overlays/useGridOverlays.js +1 -0
  175. package/esm/hooks/features/pagination/useGridPaginationModel.js +1 -1
  176. package/esm/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  177. package/esm/hooks/features/rows/useGridRowsMeta.js +5 -2
  178. package/esm/hooks/features/sorting/useGridSorting.d.ts +1 -1
  179. package/esm/hooks/features/sorting/useGridSorting.js +5 -5
  180. package/esm/hooks/utils/useGridPrivateApiContext.js +1 -3
  181. package/esm/hooks/utils/useRunOnce.js +1 -1
  182. package/esm/index.js +1 -1
  183. package/esm/locales/isIS.js +8 -8
  184. package/esm/material/index.js +14 -0
  185. package/esm/material/variables.js +5 -0
  186. package/esm/models/events/gridEventLookup.d.ts +9 -0
  187. package/esm/models/props/DataGridProps.d.ts +7 -0
  188. package/esm/utils/composeGridClasses.d.ts +1 -1
  189. package/esm/utils/composeGridClasses.js +1 -1
  190. package/esm/utils/css/context.js +2 -1
  191. package/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -1
  192. package/hooks/features/columns/gridColumnsSelector.d.ts +9 -0
  193. package/hooks/features/columns/gridColumnsSelector.js +10 -3
  194. package/hooks/features/dataSource/useGridDataSourceBase.js +12 -12
  195. package/hooks/features/export/useGridPrintExport.js +5 -5
  196. package/hooks/features/filter/useGridFilter.js +2 -2
  197. package/hooks/features/overlays/useGridOverlays.js +1 -0
  198. package/hooks/features/pagination/useGridPaginationModel.js +1 -1
  199. package/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  200. package/hooks/features/rows/useGridRowsMeta.js +8 -5
  201. package/hooks/features/sorting/useGridSorting.d.ts +1 -1
  202. package/hooks/features/sorting/useGridSorting.js +6 -6
  203. package/hooks/utils/useGridPrivateApiContext.js +1 -3
  204. package/hooks/utils/useRunOnce.js +3 -2
  205. package/index.js +1 -1
  206. package/locales/isIS.js +8 -8
  207. package/material/index.js +14 -0
  208. package/material/variables.js +5 -0
  209. package/models/events/gridEventLookup.d.ts +9 -0
  210. package/models/props/DataGridProps.d.ts +7 -0
  211. package/package.json +2 -2
  212. package/utils/composeGridClasses.d.ts +1 -1
  213. package/utils/composeGridClasses.js +3 -2
  214. package/utils/css/context.js +2 -1
@@ -51,4 +51,5 @@ const GridPanelWrapper = exports.GridPanelWrapper = (0, _forwardRef.forwardRef)(
51
51
  }, other, {
52
52
  ref: ref
53
53
  }));
54
- });
54
+ });
55
+ if (process.env.NODE_ENV !== "production") GridPanelWrapper.displayName = "GridPanelWrapper";
@@ -12,7 +12,9 @@ var _react = _interopRequireWildcard(require("react"));
12
12
  var React = _react;
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _clsx = _interopRequireDefault(require("clsx"));
15
- var _utils = require("@mui/utils");
15
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
17
+ var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
16
18
  var _styles = require("@mui/material/styles");
17
19
  var _forwardRef = require("@mui/x-internals/forwardRef");
18
20
  var _cssVariables = require("../../../constants/cssVariables");
@@ -40,7 +42,7 @@ const useUtilityClasses = ownerState => {
40
42
  operatorInput: ['filterFormOperatorInput'],
41
43
  valueInput: ['filterFormValueInput']
42
44
  };
43
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
45
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
44
46
  };
45
47
  const GridFilterFormRoot = (0, _styles.styled)('div', {
46
48
  name: 'MuiDataGrid',
@@ -120,10 +122,10 @@ const GridFilterForm = exports.GridFilterForm = (0, _forwardRef.forwardRef)(func
120
122
  const columnLookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnLookupSelector);
121
123
  const filterableColumns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridFilterableColumnDefinitionsSelector);
122
124
  const filterModel = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridFilterModelSelector);
123
- const columnSelectId = (0, _utils.unstable_useId)();
124
- const columnSelectLabelId = (0, _utils.unstable_useId)();
125
- const operatorSelectId = (0, _utils.unstable_useId)();
126
- const operatorSelectLabelId = (0, _utils.unstable_useId)();
125
+ const columnSelectId = (0, _useId.default)();
126
+ const columnSelectLabelId = (0, _useId.default)();
127
+ const operatorSelectId = (0, _useId.default)();
128
+ const operatorSelectLabelId = (0, _useId.default)();
127
129
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
128
130
  const classes = useUtilityClasses(rootProps);
129
131
  const valueRef = React.useRef(null);
@@ -348,7 +350,7 @@ const GridFilterForm = exports.GridFilterForm = (0, _forwardRef.forwardRef)(func
348
350
  native: isBaseSelectNative,
349
351
  key: operator.value,
350
352
  value: operator.value
351
- }), operator.label || apiRef.current.getLocaleText(`filterOperator${(0, _utils.unstable_capitalize)(operator.value)}`)))
353
+ }), operator.label || apiRef.current.getLocaleText(`filterOperator${(0, _capitalize.default)(operator.value)}`)))
352
354
  })), /*#__PURE__*/(0, _jsxRuntime.jsx)(FilterFormValueInput, (0, _extends2.default)({}, valueInputPropsOther, {
353
355
  className: (0, _clsx.default)(classes.valueInput, valueInputPropsOther.className),
354
356
  ownerState: rootProps,
@@ -367,6 +369,7 @@ const GridFilterForm = exports.GridFilterForm = (0, _forwardRef.forwardRef)(func
367
369
  }))]
368
370
  }));
369
371
  });
372
+ if (process.env.NODE_ENV !== "production") GridFilterForm.displayName = "GridFilterForm";
370
373
  process.env.NODE_ENV !== "production" ? GridFilterForm.propTypes = {
371
374
  // ----------------------------- Warning --------------------------------
372
375
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -11,7 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _utils = require("@mui/utils");
14
+ var _refType = _interopRequireDefault(require("@mui/utils/refType"));
15
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
15
16
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "headerFilterMenu", "clearButton", "tabIndex", "slotProps"];
@@ -29,8 +30,8 @@ function GridFilterInputBoolean(props) {
29
30
  others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
30
31
  const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));
31
32
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
32
- const labelId = (0, _utils.unstable_useId)();
33
- const selectId = (0, _utils.unstable_useId)();
33
+ const labelId = (0, _useId.default)();
34
+ const selectId = (0, _useId.default)();
34
35
  const baseSelectProps = rootProps.slotProps?.baseSelect || {};
35
36
  const isSelectNative = baseSelectProps.native ?? false;
36
37
  const baseSelectOptionProps = rootProps.slotProps?.baseSelectOption || {};
@@ -99,7 +100,7 @@ process.env.NODE_ENV !== "production" ? GridFilterInputBoolean.propTypes = {
99
100
  className: _propTypes.default.string,
100
101
  clearButton: _propTypes.default.node,
101
102
  disabled: _propTypes.default.bool,
102
- focusElementRef: _utils.refType,
103
+ focusElementRef: _refType.default,
103
104
  headerFilterMenu: _propTypes.default.node,
104
105
  inputRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
105
106
  current: (props, propName) => {
@@ -10,7 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _utils = require("@mui/utils");
13
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
14
  var _useTimeout = require("../../../hooks/utils/useTimeout");
15
15
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
@@ -53,7 +53,7 @@ function GridFilterInputDate(props) {
53
53
  const filterTimeout = (0, _useTimeout.useTimeout)();
54
54
  const [filterValueState, setFilterValueState] = React.useState(() => convertFilterItemValueToInputValue(item.value, type));
55
55
  const [applying, setIsApplying] = React.useState(false);
56
- const id = (0, _utils.unstable_useId)();
56
+ const id = (0, _useId.default)();
57
57
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
58
58
  const onFilterChange = React.useCallback(event => {
59
59
  filterTimeout.clear();
@@ -10,7 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _utils = require("@mui/utils");
13
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
14
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
15
15
  var _filterPanelUtils = require("./filterPanelUtils");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
@@ -25,7 +25,7 @@ function GridFilterInputMultipleSingleSelect(props) {
25
25
  slotProps
26
26
  } = props,
27
27
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
28
- const id = (0, _utils.unstable_useId)();
28
+ const id = (0, _useId.default)();
29
29
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
30
30
  let resolvedColumn = null;
31
31
  if (item.field) {
@@ -9,7 +9,7 @@ exports.GridFilterInputMultipleValue = GridFilterInputMultipleValue;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _utils = require("@mui/utils");
12
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
13
13
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
15
  function GridFilterInputMultipleValue(props) {
@@ -21,7 +21,7 @@ function GridFilterInputMultipleValue(props) {
21
21
  focusElementRef,
22
22
  slotProps
23
23
  } = props;
24
- const id = (0, _utils.unstable_useId)();
24
+ const id = (0, _useId.default)();
25
25
  const [options, setOptions] = React.useState([]);
26
26
  const [filterValueState, setFilterValueState] = React.useState(item.value || []);
27
27
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
@@ -11,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var React = _react;
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _utils = require("@mui/utils");
14
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
15
15
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
16
16
  var _filterPanelUtils = require("./filterPanelUtils");
17
17
  var _jsxRuntime = require("react/jsx-runtime");
@@ -52,8 +52,8 @@ function GridFilterInputSingleSelect(props) {
52
52
  } = props,
53
53
  others = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
54
54
  const filterValue = item.value ?? '';
55
- const id = (0, _utils.unstable_useId)();
56
- const labelId = (0, _utils.unstable_useId)();
55
+ const id = (0, _useId.default)();
56
+ const labelId = (0, _useId.default)();
57
57
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
58
58
  const isSelectNative = rootProps.slotProps?.baseSelect?.native ?? false;
59
59
  let resolvedColumn = null;
@@ -10,7 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _utils = require("@mui/utils");
13
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
14
  var _useTimeout = require("../../../hooks/utils/useTimeout");
15
15
  var _useGridRootProps = require("../../../hooks/utils/useGridRootProps");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
@@ -33,7 +33,7 @@ function GridFilterInputValue(props) {
33
33
  const filterTimeout = (0, _useTimeout.useTimeout)();
34
34
  const [filterValueState, setFilterValueState] = React.useState(sanitizeFilterItemValue(item.value));
35
35
  const [applying, setIsApplying] = React.useState(false);
36
- const id = (0, _utils.unstable_useId)();
36
+ const id = (0, _useId.default)();
37
37
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
38
38
  const onFilterChange = React.useCallback(event => {
39
39
  const value = sanitizeFilterItemValue(event.target.value);
@@ -193,6 +193,7 @@ const GridFilterPanel = exports.GridFilterPanel = (0, _forwardRef.forwardRef)(fu
193
193
  }) : null]
194
194
  }));
195
195
  });
196
+ if (process.env.NODE_ENV !== "production") GridFilterPanel.displayName = "GridFilterPanel";
196
197
  process.env.NODE_ENV !== "production" ? GridFilterPanel.propTypes = {
197
198
  // ----------------------------- Warning --------------------------------
198
199
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -10,7 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _utils = require("@mui/utils");
13
+ var _debounce = _interopRequireDefault(require("@mui/utils/debounce"));
14
14
  var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
15
15
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
16
16
  var _isDeepEqual = require("@mui/x-internals/isDeepEqual");
@@ -107,7 +107,7 @@ function QuickFilter(props) {
107
107
  previousExpandedValue.current = expandedValue;
108
108
  }
109
109
  }, [expandedValue]);
110
- const setQuickFilterValueDebounced = React.useMemo(() => (0, _utils.unstable_debounce)(newValue => {
110
+ const setQuickFilterValueDebounced = React.useMemo(() => (0, _debounce.default)(newValue => {
111
111
  const newQuickFilterValues = parser(newValue);
112
112
  prevQuickFilterValuesRef.current = newQuickFilterValues;
113
113
  apiRef.current.setQuickFilterValues(newQuickFilterValues);
@@ -56,6 +56,7 @@ const QuickFilterClear = exports.QuickFilterClear = (0, _forwardRef.forwardRef)(
56
56
  children: element
57
57
  });
58
58
  });
59
+ if (process.env.NODE_ENV !== "production") QuickFilterClear.displayName = "QuickFilterClear";
59
60
  process.env.NODE_ENV !== "production" ? QuickFilterClear.propTypes = {
60
61
  // ----------------------------- Warning --------------------------------
61
62
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -8,6 +8,7 @@ exports.QuickFilterContext = void 0;
8
8
  exports.useQuickFilterContext = useQuickFilterContext;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  const QuickFilterContext = exports.QuickFilterContext = /*#__PURE__*/React.createContext(undefined);
11
+ if (process.env.NODE_ENV !== "production") QuickFilterContext.displayName = "QuickFilterContext";
11
12
  function useQuickFilterContext() {
12
13
  const context = React.useContext(QuickFilterContext);
13
14
  if (context === undefined) {
@@ -10,7 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _utils = require("@mui/utils");
13
+ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
14
14
  var _forwardRef = require("@mui/x-internals/forwardRef");
15
15
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
16
16
  var _useGridComponentRenderer = require("../../hooks/utils/useGridComponentRenderer");
@@ -48,7 +48,7 @@ const QuickFilterControl = exports.QuickFilterControl = (0, _forwardRef.forwardR
48
48
  clearValue
49
49
  } = (0, _QuickFilterContext.useQuickFilterContext)();
50
50
  const resolvedClassName = typeof className === 'function' ? className(state) : className;
51
- const handleRef = (0, _utils.unstable_useForkRef)(controlRef, ref);
51
+ const handleRef = (0, _useForkRef.default)(controlRef, ref);
52
52
  const handleKeyDown = event => {
53
53
  if (event.key === 'Escape') {
54
54
  if (state.value === '') {
@@ -93,6 +93,7 @@ const QuickFilterControl = exports.QuickFilterControl = (0, _forwardRef.forwardR
93
93
  children: element
94
94
  });
95
95
  });
96
+ if (process.env.NODE_ENV !== "production") QuickFilterControl.displayName = "QuickFilterControl";
96
97
  process.env.NODE_ENV !== "production" ? QuickFilterControl.propTypes = {
97
98
  // ----------------------------- Warning --------------------------------
98
99
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -11,7 +11,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _forwardRef = require("@mui/x-internals/forwardRef");
14
- var _utils = require("@mui/utils");
14
+ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
15
15
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
16
16
  var _useGridComponentRenderer = require("../../hooks/utils/useGridComponentRenderer");
17
17
  var _QuickFilterContext = require("./QuickFilterContext");
@@ -44,7 +44,7 @@ const QuickFilterTrigger = exports.QuickFilterTrigger = (0, _forwardRef.forwardR
44
44
  triggerRef
45
45
  } = (0, _QuickFilterContext.useQuickFilterContext)();
46
46
  const resolvedClassName = typeof className === 'function' ? className(state) : className;
47
- const handleRef = (0, _utils.unstable_useForkRef)(triggerRef, ref);
47
+ const handleRef = (0, _useForkRef.default)(triggerRef, ref);
48
48
  const handleClick = event => {
49
49
  onExpandedChange(!state.expanded);
50
50
  onClick?.(event);
@@ -61,6 +61,7 @@ const QuickFilterTrigger = exports.QuickFilterTrigger = (0, _forwardRef.forwardR
61
61
  children: element
62
62
  });
63
63
  });
64
+ if (process.env.NODE_ENV !== "production") QuickFilterTrigger.displayName = "QuickFilterTrigger";
64
65
  process.env.NODE_ENV !== "production" ? QuickFilterTrigger.propTypes = {
65
66
  // ----------------------------- Warning --------------------------------
66
67
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -18,7 +18,7 @@ var _GridToolbarFilterButton = require("./GridToolbarFilterButton");
18
18
  var _GridToolbarExport = require("./GridToolbarExport");
19
19
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
20
20
  var _GridToolbarQuickFilter = require("./GridToolbarQuickFilter");
21
- var _GridToolbar = require("../toolbarV8/GridToolbar");
21
+ var _GridToolbar2 = require("../toolbarV8/GridToolbar");
22
22
  var _jsxRuntime = require("react/jsx-runtime");
23
23
  const _excluded = ["className", "csvOptions", "printOptions", "excelOptions", "showQuickFilter", "quickFilterProps"];
24
24
  /**
@@ -42,7 +42,7 @@ const GridToolbar = exports.GridToolbar = (0, _forwardRef.forwardRef)(function G
42
42
  }
43
43
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridToolbarContainer.GridToolbarContainer, (0, _extends2.default)({}, other, {
44
44
  ref: ref,
45
- children: [rootProps.label && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbar.GridToolbarLabel, {
45
+ children: [rootProps.label && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbar2.GridToolbarLabel, {
46
46
  children: rootProps.label
47
47
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarColumnsButton.GridToolbarColumnsButton, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarFilterButton.GridToolbarFilterButton, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarDensitySelector.GridToolbarDensitySelector, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarExport.GridToolbarExport, {
48
48
  csvOptions: csvOptions,
@@ -57,6 +57,7 @@ const GridToolbar = exports.GridToolbar = (0, _forwardRef.forwardRef)(function G
57
57
  }), showQuickFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridToolbarQuickFilter.GridToolbarQuickFilter, (0, _extends2.default)({}, quickFilterProps))]
58
58
  }));
59
59
  });
60
+ if (process.env.NODE_ENV !== "production") GridToolbar.displayName = "GridToolbar";
60
61
  process.env.NODE_ENV !== "production" ? GridToolbar.propTypes = {
61
62
  // ----------------------------- Warning --------------------------------
62
63
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -76,6 +76,7 @@ const GridToolbarColumnsButton = exports.GridToolbarColumnsButton = (0, _forward
76
76
  }))
77
77
  }));
78
78
  });
79
+ if (process.env.NODE_ENV !== "production") GridToolbarColumnsButton.displayName = "GridToolbarColumnsButton";
79
80
  process.env.NODE_ENV !== "production" ? GridToolbarColumnsButton.propTypes = {
80
81
  // ----------------------------- Warning --------------------------------
81
82
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -9,7 +9,8 @@ exports.GridToolbarDensitySelector = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _utils = require("@mui/utils");
12
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
13
+ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
13
14
  var _forwardRef = require("@mui/x-internals/forwardRef");
14
15
  var _densitySelector = require("../../hooks/features/density/densitySelector");
15
16
  var _keyboardUtils = require("../../utils/keyboardUtils");
@@ -31,11 +32,11 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = (0, _for
31
32
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
32
33
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
33
34
  const density = (0, _useGridSelector.useGridSelector)(apiRef, _densitySelector.gridDensitySelector);
34
- const densityButtonId = (0, _utils.unstable_useId)();
35
- const densityMenuId = (0, _utils.unstable_useId)();
35
+ const densityButtonId = (0, _useId.default)();
36
+ const densityMenuId = (0, _useId.default)();
36
37
  const [open, setOpen] = React.useState(false);
37
38
  const buttonRef = React.useRef(null);
38
- const handleRef = (0, _utils.unstable_useForkRef)(ref, buttonRef);
39
+ const handleRef = (0, _useForkRef.default)(ref, buttonRef);
39
40
  const densityOptions = [{
40
41
  icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.densityCompactIcon, {}),
41
42
  label: apiRef.current.getLocaleText('toolbarDensityCompact'),
@@ -123,6 +124,7 @@ const GridToolbarDensitySelector = exports.GridToolbarDensitySelector = (0, _for
123
124
  })]
124
125
  });
125
126
  });
127
+ if (process.env.NODE_ENV !== "production") GridToolbarDensitySelector.displayName = "GridToolbarDensitySelector";
126
128
  process.env.NODE_ENV !== "production" ? GridToolbarDensitySelector.propTypes = {
127
129
  // ----------------------------- Warning --------------------------------
128
130
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -122,6 +122,7 @@ const GridToolbarExport = exports.GridToolbarExport = (0, _forwardRef.forwardRef
122
122
  }))
123
123
  }));
124
124
  });
125
+ if (process.env.NODE_ENV !== "production") GridToolbarExport.displayName = "GridToolbarExport";
125
126
  process.env.NODE_ENV !== "production" ? GridToolbarExport.propTypes = {
126
127
  // ----------------------------- Warning --------------------------------
127
128
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -9,7 +9,8 @@ exports.GridToolbarExportContainer = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
- var _utils = require("@mui/utils");
12
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
13
+ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
13
14
  var _forwardRef = require("@mui/x-internals/forwardRef");
14
15
  var _keyboardUtils = require("../../utils/keyboardUtils");
15
16
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
@@ -26,11 +27,11 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = (0, _for
26
27
  const tooltipProps = slotProps.tooltip || {};
27
28
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
28
29
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
29
- const exportButtonId = (0, _utils.unstable_useId)();
30
- const exportMenuId = (0, _utils.unstable_useId)();
30
+ const exportButtonId = (0, _useId.default)();
31
+ const exportMenuId = (0, _useId.default)();
31
32
  const [open, setOpen] = React.useState(false);
32
33
  const buttonRef = React.useRef(null);
33
- const handleRef = (0, _utils.unstable_useForkRef)(ref, buttonRef);
34
+ const handleRef = (0, _useForkRef.default)(ref, buttonRef);
34
35
  const handleMenuOpen = event => {
35
36
  setOpen(prevOpen => !prevOpen);
36
37
  buttonProps.onClick?.(event);
@@ -88,6 +89,7 @@ const GridToolbarExportContainer = exports.GridToolbarExportContainer = (0, _for
88
89
  })]
89
90
  });
90
91
  });
92
+ if (process.env.NODE_ENV !== "production") GridToolbarExportContainer.displayName = "GridToolbarExportContainer";
91
93
  process.env.NODE_ENV !== "production" ? GridToolbarExportContainer.propTypes = {
92
94
  // ----------------------------- Warning --------------------------------
93
95
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -10,7 +10,9 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _styles = require("@mui/material/styles");
13
- var _utils = require("@mui/utils");
13
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
+ var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
15
+ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
14
16
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
15
17
  var _forwardRef = require("@mui/x-internals/forwardRef");
16
18
  var _cssVariables = require("../../constants/cssVariables");
@@ -31,7 +33,7 @@ const useUtilityClasses = ownerState => {
31
33
  const slots = {
32
34
  root: ['toolbarFilterList']
33
35
  };
34
- return (0, _utils.unstable_composeClasses)(slots, _gridClasses.getDataGridUtilityClass, classes);
36
+ return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
35
37
  };
36
38
  const GridToolbarFilterListRoot = (0, _styles.styled)('ul', {
37
39
  name: 'MuiDataGrid',
@@ -56,8 +58,8 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = (0, _forwardRe
56
58
  const lookup = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnLookupSelector);
57
59
  const preferencePanel = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
58
60
  const classes = useUtilityClasses(rootProps);
59
- const filterButtonId = (0, _utils.unstable_useId)();
60
- const filterPanelId = (0, _utils.unstable_useId)();
61
+ const filterButtonId = (0, _useId.default)();
62
+ const filterPanelId = (0, _useId.default)();
61
63
  const {
62
64
  filterPanelTriggerRef
63
65
  } = (0, _GridPanelContext.useGridPanelContext)();
@@ -69,7 +71,7 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = (0, _forwardRe
69
71
  if (activeFilters.length === 0) {
70
72
  return apiRef.current.getLocaleText('toolbarFiltersTooltipShow');
71
73
  }
72
- const getOperatorLabel = item => lookup[item.field].filterOperators.find(operator => operator.value === item.operator).label || apiRef.current.getLocaleText(`filterOperator${(0, _utils.unstable_capitalize)(item.operator)}`).toString();
74
+ const getOperatorLabel = item => lookup[item.field].filterOperators.find(operator => operator.value === item.operator).label || apiRef.current.getLocaleText(`filterOperator${(0, _capitalize.default)(item.operator)}`).toString();
73
75
  const getFilterItemValue = item => {
74
76
  const {
75
77
  getValueAsString
@@ -138,6 +140,7 @@ const GridToolbarFilterButton = exports.GridToolbarFilterButton = (0, _forwardRe
138
140
  }))
139
141
  }));
140
142
  });
143
+ if (process.env.NODE_ENV !== "production") GridToolbarFilterButton.displayName = "GridToolbarFilterButton";
141
144
  process.env.NODE_ENV !== "production" ? GridToolbarFilterButton.propTypes = {
142
145
  // ----------------------------- Warning --------------------------------
143
146
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -19,6 +19,7 @@ var _gridClasses = require("../../constants/gridClasses");
19
19
  var _useGridComponentRenderer = require("../../hooks/utils/useGridComponentRenderer");
20
20
  var _ToolbarContext = require("./ToolbarContext");
21
21
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
22
+ var _utils = require("./utils");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  const _excluded = ["render", "className"];
24
25
  const useUtilityClasses = ownerState => {
@@ -67,21 +68,11 @@ const Toolbar = exports.Toolbar = (0, _forwardRef.forwardRef)(function Toolbar(p
67
68
  const classes = useUtilityClasses(rootProps);
68
69
  const [focusableItemId, setFocusableItemId] = React.useState(null);
69
70
  const [items, setItems] = React.useState([]);
70
- const registerItem = React.useCallback((id, itemRef) => {
71
- setItems(prevItems => [...prevItems, {
72
- id,
73
- ref: itemRef
74
- }]);
75
- }, []);
76
- const unregisterItem = React.useCallback(id => {
77
- setItems(prevItems => prevItems.filter(i => i.id !== id));
78
- if (focusableItemId === id) {
79
- setFocusableItemId(null);
80
- }
81
- }, [focusableItemId]);
71
+ const getSortedItems = React.useCallback(() => items.sort(_utils.sortByDocumentPosition), [items]);
82
72
  const findEnabledItem = React.useCallback((startIndex, step, wrap = true) => {
83
73
  let index = startIndex;
84
- const itemCount = items.length;
74
+ const sortedItems = getSortedItems();
75
+ const itemCount = sortedItems.length;
85
76
 
86
77
  // Look for enabled items in the specified direction
87
78
  for (let i = 0; i < itemCount; i += 1) {
@@ -101,53 +92,93 @@ const Toolbar = exports.Toolbar = (0, _forwardRef.forwardRef)(function Toolbar(p
101
92
  }
102
93
 
103
94
  // Return if we found an enabled item
104
- if (!items[index].ref.current?.disabled && items[index].ref.current?.ariaDisabled !== 'true') {
95
+ if (!sortedItems[index].ref.current?.disabled && sortedItems[index].ref.current?.ariaDisabled !== 'true') {
105
96
  return index;
106
97
  }
107
98
  }
108
99
 
109
100
  // If we've checked all items and found none enabled
110
101
  return -1;
111
- }, [items]);
102
+ }, [getSortedItems]);
103
+ const registerItem = React.useCallback((id, itemRef) => {
104
+ setItems(prevItems => [...prevItems, {
105
+ id,
106
+ ref: itemRef
107
+ }]);
108
+ }, []);
109
+ const unregisterItem = React.useCallback(id => {
110
+ setItems(prevItems => prevItems.filter(i => i.id !== id));
111
+ }, []);
112
112
  const onItemKeyDown = React.useCallback(event => {
113
113
  if (!focusableItemId) {
114
114
  return;
115
115
  }
116
- const currentIndex = items.findIndex(item => item.id === focusableItemId);
116
+ const sortedItems = getSortedItems();
117
+ const focusableItemIndex = sortedItems.findIndex(item => item.id === focusableItemId);
117
118
  let newIndex = -1;
118
119
  if (event.key === 'ArrowRight') {
119
120
  event.preventDefault();
120
- newIndex = findEnabledItem(currentIndex, 1);
121
+ newIndex = findEnabledItem(focusableItemIndex, 1);
121
122
  } else if (event.key === 'ArrowLeft') {
122
123
  event.preventDefault();
123
- newIndex = findEnabledItem(currentIndex, -1);
124
+ newIndex = findEnabledItem(focusableItemIndex, -1);
124
125
  } else if (event.key === 'Home') {
125
126
  event.preventDefault();
126
127
  newIndex = findEnabledItem(-1, 1, false);
127
128
  } else if (event.key === 'End') {
128
129
  event.preventDefault();
129
- newIndex = findEnabledItem(items.length, -1, false);
130
+ newIndex = findEnabledItem(sortedItems.length, -1, false);
130
131
  }
131
- if (newIndex >= 0 && newIndex < items.length) {
132
- const item = items[newIndex];
132
+
133
+ // TODO: Check why this is necessary
134
+ if (newIndex >= 0 && newIndex < sortedItems.length) {
135
+ const item = sortedItems[newIndex];
133
136
  setFocusableItemId(item.id);
134
137
  item.ref.current?.focus();
135
138
  }
136
- }, [items, focusableItemId, findEnabledItem]);
139
+ }, [getSortedItems, focusableItemId, findEnabledItem]);
137
140
  const onItemFocus = React.useCallback(id => {
138
141
  if (focusableItemId !== id) {
139
142
  setFocusableItemId(id);
140
143
  }
141
- }, [focusableItemId]);
144
+ }, [focusableItemId, setFocusableItemId]);
142
145
  const onItemDisabled = React.useCallback(id => {
143
- const currentIndex = items.findIndex(item => item.id === id);
146
+ const sortedItems = getSortedItems();
147
+ const currentIndex = sortedItems.findIndex(item => item.id === id);
144
148
  const newIndex = findEnabledItem(currentIndex, 1);
145
- if (newIndex >= 0 && newIndex < items.length) {
146
- const item = items[newIndex];
149
+ if (newIndex >= 0 && newIndex < sortedItems.length) {
150
+ const item = sortedItems[newIndex];
147
151
  setFocusableItemId(item.id);
148
152
  item.ref.current?.focus();
149
153
  }
150
- }, [items, findEnabledItem]);
154
+ }, [getSortedItems, findEnabledItem]);
155
+ React.useEffect(() => {
156
+ const sortedItems = getSortedItems();
157
+ if (sortedItems.length > 0) {
158
+ // Set initial focusable item
159
+ if (!focusableItemId) {
160
+ setFocusableItemId(sortedItems[0].id);
161
+ return;
162
+ }
163
+ const focusableItemIndex = sortedItems.findIndex(item => item.id === focusableItemId);
164
+ if (!sortedItems[focusableItemIndex]) {
165
+ // Last item has been removed from the items array
166
+ const item = sortedItems[sortedItems.length - 1];
167
+ if (item) {
168
+ setFocusableItemId(item.id);
169
+ item.ref.current?.focus();
170
+ }
171
+ } else if (focusableItemIndex === -1) {
172
+ // Focused item has been removed from the items array
173
+ const item = sortedItems[focusableItemIndex];
174
+ if (item) {
175
+ setFocusableItemId(item.id);
176
+ item.ref.current?.focus();
177
+ }
178
+ }
179
+ }
180
+ // eslint-disable-next-line react-hooks/exhaustive-deps
181
+ }, [getSortedItems, findEnabledItem]);
151
182
  const contextValue = React.useMemo(() => ({
152
183
  focusableItemId,
153
184
  registerItem,
@@ -164,16 +195,12 @@ const Toolbar = exports.Toolbar = (0, _forwardRef.forwardRef)(function Toolbar(p
164
195
  }, other, {
165
196
  ref
166
197
  }));
167
- React.useEffect(() => {
168
- if (items.length > 0) {
169
- setFocusableItemId(items[0].id);
170
- }
171
- }, [items]);
172
198
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarContext.ToolbarContext.Provider, {
173
199
  value: contextValue,
174
200
  children: element
175
201
  });
176
202
  });
203
+ if (process.env.NODE_ENV !== "production") Toolbar.displayName = "Toolbar";
177
204
  process.env.NODE_ENV !== "production" ? Toolbar.propTypes = {
178
205
  // ----------------------------- Warning --------------------------------
179
206
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -10,7 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _utils = require("@mui/utils");
13
+ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
14
14
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
15
15
  var _forwardRef = require("@mui/x-internals/forwardRef");
16
16
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
@@ -42,7 +42,7 @@ const ToolbarButton = exports.ToolbarButton = (0, _forwardRef.forwardRef)(functi
42
42
  const id = (0, _useId.default)();
43
43
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
44
44
  const buttonRef = React.useRef(null);
45
- const handleRef = (0, _utils.unstable_useForkRef)(buttonRef, ref);
45
+ const handleRef = (0, _useForkRef.default)(buttonRef, ref);
46
46
  const {
47
47
  focusableItemId,
48
48
  registerItem,
@@ -91,6 +91,7 @@ const ToolbarButton = exports.ToolbarButton = (0, _forwardRef.forwardRef)(functi
91
91
  children: element
92
92
  });
93
93
  });
94
+ if (process.env.NODE_ENV !== "production") ToolbarButton.displayName = "ToolbarButton";
94
95
  process.env.NODE_ENV !== "production" ? ToolbarButton.propTypes = {
95
96
  // ----------------------------- Warning --------------------------------
96
97
  // | These PropTypes are generated from the TypeScript type definitions |