@mui/x-data-grid 8.6.0 → 8.8.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 (166) hide show
  1. package/CHANGELOG.md +202 -1
  2. package/components/GridScrollArea.d.ts +1 -1
  3. package/components/GridScrollArea.js +134 -28
  4. package/components/cell/GridActionsCell.js +1 -0
  5. package/components/cell/GridCell.js +1 -0
  6. package/components/cell/GridEditBooleanCell.js +1 -0
  7. package/components/cell/GridEditDateCell.js +1 -0
  8. package/components/cell/GridEditInputCell.js +1 -0
  9. package/components/cell/GridEditSingleSelectCell.js +1 -0
  10. package/components/columnHeaders/GridColumnGroupHeader.js +1 -0
  11. package/components/columnHeaders/GridColumnHeaderItem.js +1 -0
  12. package/components/columnHeaders/GridColumnHeaderTitle.js +1 -0
  13. package/components/columnHeaders/GridGenericColumnHeaderItem.js +1 -0
  14. package/components/columnSelection/GridCellCheckboxRenderer.js +1 -0
  15. package/components/columnSelection/GridHeaderCheckbox.js +1 -0
  16. package/components/columnsManagement/GridColumnsManagement.js +2 -2
  17. package/components/containers/GridRootStyles.js +2 -5
  18. package/components/menu/GridMenu.js +1 -0
  19. package/components/panel/GridPanel.js +1 -0
  20. package/components/panel/GridPanelContext.js +1 -0
  21. package/components/panel/filterPanel/GridFilterInputBoolean.js +1 -0
  22. package/components/panel/filterPanel/GridFilterInputDate.js +1 -0
  23. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -0
  24. package/components/panel/filterPanel/GridFilterInputValue.js +1 -0
  25. package/components/panel/filterPanel/GridFilterPanel.js +1 -0
  26. package/components/quickFilter/QuickFilter.js +1 -0
  27. package/components/quickFilter/QuickFilterContext.js +1 -0
  28. package/components/toolbar/GridToolbarDensitySelector.js +1 -0
  29. package/components/toolbar/GridToolbarExportContainer.js +1 -0
  30. package/components/toolbarV8/GridToolbar.js +1 -0
  31. package/components/toolbarV8/Toolbar.js +1 -0
  32. package/components/toolbarV8/ToolbarButton.js +1 -0
  33. package/components/toolbarV8/ToolbarContext.js +1 -0
  34. package/components/virtualization/GridVirtualScrollbar.js +1 -0
  35. package/components/virtualization/GridVirtualScroller.js +4 -0
  36. package/constants/gridClasses.d.ts +8 -0
  37. package/constants/gridClasses.js +1 -1
  38. package/esm/components/GridScrollArea.d.ts +1 -1
  39. package/esm/components/GridScrollArea.js +134 -28
  40. package/esm/components/cell/GridActionsCell.js +2 -0
  41. package/esm/components/cell/GridCell.js +2 -0
  42. package/esm/components/cell/GridEditBooleanCell.js +2 -0
  43. package/esm/components/cell/GridEditDateCell.js +2 -0
  44. package/esm/components/cell/GridEditInputCell.js +2 -0
  45. package/esm/components/cell/GridEditSingleSelectCell.js +2 -0
  46. package/esm/components/columnHeaders/GridColumnGroupHeader.js +2 -0
  47. package/esm/components/columnHeaders/GridColumnHeaderItem.js +2 -0
  48. package/esm/components/columnHeaders/GridColumnHeaderTitle.js +2 -0
  49. package/esm/components/columnHeaders/GridGenericColumnHeaderItem.js +2 -0
  50. package/esm/components/columnSelection/GridCellCheckboxRenderer.js +2 -0
  51. package/esm/components/columnSelection/GridHeaderCheckbox.js +2 -0
  52. package/esm/components/columnsManagement/GridColumnsManagement.js +3 -1
  53. package/esm/components/containers/GridRootStyles.js +2 -5
  54. package/esm/components/menu/GridMenu.js +2 -0
  55. package/esm/components/panel/GridPanel.js +2 -0
  56. package/esm/components/panel/GridPanelContext.js +2 -0
  57. package/esm/components/panel/filterPanel/GridFilterInputBoolean.js +2 -0
  58. package/esm/components/panel/filterPanel/GridFilterInputDate.js +2 -0
  59. package/esm/components/panel/filterPanel/GridFilterInputMultipleValue.js +2 -0
  60. package/esm/components/panel/filterPanel/GridFilterInputValue.js +2 -0
  61. package/esm/components/panel/filterPanel/GridFilterPanel.js +2 -0
  62. package/esm/components/quickFilter/QuickFilter.js +2 -0
  63. package/esm/components/quickFilter/QuickFilterContext.js +2 -0
  64. package/esm/components/toolbar/GridToolbarDensitySelector.js +2 -0
  65. package/esm/components/toolbar/GridToolbarExportContainer.js +2 -0
  66. package/esm/components/toolbarV8/GridToolbar.js +2 -0
  67. package/esm/components/toolbarV8/Toolbar.js +2 -0
  68. package/esm/components/toolbarV8/ToolbarButton.js +2 -0
  69. package/esm/components/toolbarV8/ToolbarContext.js +2 -0
  70. package/esm/components/virtualization/GridVirtualScrollbar.js +2 -0
  71. package/esm/components/virtualization/GridVirtualScroller.js +4 -0
  72. package/esm/constants/gridClasses.d.ts +8 -0
  73. package/esm/constants/gridClasses.js +1 -1
  74. package/esm/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +2 -0
  75. package/esm/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +2 -0
  76. package/esm/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +2 -0
  77. package/esm/hooks/core/useGridApiInitialization.js +2 -0
  78. package/esm/hooks/core/useGridIsRtl.js +2 -0
  79. package/esm/hooks/core/useGridProps.js +2 -0
  80. package/esm/hooks/features/columnGrouping/useGridColumnGrouping.js +2 -0
  81. package/esm/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -0
  82. package/esm/hooks/features/columnResize/useGridColumnResize.js +2 -0
  83. package/esm/hooks/features/columns/useGridColumns.js +23 -3
  84. package/esm/hooks/features/dataSource/useGridDataSource.js +2 -0
  85. package/esm/hooks/features/dataSource/useGridDataSourceBase.d.ts +1 -1
  86. package/esm/hooks/features/dataSource/useGridDataSourceBase.js +5 -0
  87. package/esm/hooks/features/dataSource/utils.js +3 -0
  88. package/esm/hooks/features/density/useGridDensity.js +2 -0
  89. package/esm/hooks/features/dimensions/useGridDimensions.js +2 -0
  90. package/esm/hooks/features/editing/useGridCellEditing.js +2 -0
  91. package/esm/hooks/features/editing/useGridEditing.js +2 -0
  92. package/esm/hooks/features/editing/useGridRowEditing.js +2 -0
  93. package/esm/hooks/features/export/useGridPrintExport.js +2 -0
  94. package/esm/hooks/features/focus/useGridFocus.js +2 -0
  95. package/esm/hooks/features/headerFiltering/useGridHeaderFiltering.js +2 -0
  96. package/esm/hooks/features/listView/useGridListView.js +2 -0
  97. package/esm/hooks/features/pagination/useGridPaginationMeta.js +2 -0
  98. package/esm/hooks/features/pagination/useGridPaginationModel.js +2 -0
  99. package/esm/hooks/features/pagination/useGridRowCount.js +2 -0
  100. package/esm/hooks/features/rowSelection/useGridRowSelection.js +2 -0
  101. package/esm/hooks/features/rows/useGridRowSpanning.js +2 -0
  102. package/esm/hooks/features/rows/useGridRows.js +2 -0
  103. package/esm/hooks/features/virtualization/useGridVirtualScroller.js +2 -0
  104. package/esm/hooks/features/virtualization/useGridVirtualization.js +2 -0
  105. package/esm/hooks/utils/useGridEvent.js +2 -0
  106. package/esm/hooks/utils/useGridPrivateApiContext.js +2 -0
  107. package/esm/hooks/utils/useGridSelector.js +6 -0
  108. package/esm/index.js +1 -1
  109. package/esm/internals/demo/TailwindDemoContainer.js +2 -0
  110. package/esm/internals/utils/cache.d.ts +9 -0
  111. package/esm/internals/utils/cache.js +19 -0
  112. package/esm/internals/utils/index.d.ts +2 -1
  113. package/esm/internals/utils/index.js +2 -1
  114. package/esm/locales/daDK.js +1 -1
  115. package/esm/locales/idID.d.ts +4 -0
  116. package/esm/locales/idID.js +261 -0
  117. package/esm/locales/index.d.ts +2 -1
  118. package/esm/locales/index.js +2 -1
  119. package/esm/utils/css/context.js +2 -0
  120. package/hooks/core/pipeProcessing/useGridRegisterPipeApplier.js +1 -0
  121. package/hooks/core/pipeProcessing/useGridRegisterPipeProcessor.js +1 -0
  122. package/hooks/core/strategyProcessing/useGridRegisterStrategyProcessor.js +1 -0
  123. package/hooks/core/useGridApiInitialization.js +1 -0
  124. package/hooks/core/useGridIsRtl.js +1 -0
  125. package/hooks/core/useGridProps.js +1 -0
  126. package/hooks/features/columnGrouping/useGridColumnGrouping.js +1 -0
  127. package/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -0
  128. package/hooks/features/columnResize/useGridColumnResize.js +1 -0
  129. package/hooks/features/columns/useGridColumns.js +22 -3
  130. package/hooks/features/dataSource/useGridDataSource.js +1 -0
  131. package/hooks/features/dataSource/useGridDataSourceBase.d.ts +1 -1
  132. package/hooks/features/dataSource/useGridDataSourceBase.js +4 -0
  133. package/hooks/features/dataSource/utils.js +3 -0
  134. package/hooks/features/density/useGridDensity.js +1 -0
  135. package/hooks/features/dimensions/useGridDimensions.js +1 -0
  136. package/hooks/features/editing/useGridCellEditing.js +1 -0
  137. package/hooks/features/editing/useGridEditing.js +1 -0
  138. package/hooks/features/editing/useGridRowEditing.js +1 -0
  139. package/hooks/features/export/useGridPrintExport.js +1 -0
  140. package/hooks/features/focus/useGridFocus.js +1 -0
  141. package/hooks/features/headerFiltering/useGridHeaderFiltering.js +1 -0
  142. package/hooks/features/listView/useGridListView.js +1 -0
  143. package/hooks/features/pagination/useGridPaginationMeta.js +1 -0
  144. package/hooks/features/pagination/useGridPaginationModel.js +1 -0
  145. package/hooks/features/pagination/useGridRowCount.js +1 -0
  146. package/hooks/features/rowSelection/useGridRowSelection.js +1 -0
  147. package/hooks/features/rows/useGridRowSpanning.js +1 -0
  148. package/hooks/features/rows/useGridRows.js +1 -0
  149. package/hooks/features/virtualization/useGridVirtualScroller.js +1 -0
  150. package/hooks/features/virtualization/useGridVirtualization.js +1 -0
  151. package/hooks/utils/useGridEvent.js +1 -0
  152. package/hooks/utils/useGridPrivateApiContext.js +1 -0
  153. package/hooks/utils/useGridSelector.js +5 -0
  154. package/index.js +1 -1
  155. package/internals/demo/TailwindDemoContainer.js +1 -0
  156. package/internals/utils/cache.d.ts +9 -0
  157. package/internals/utils/cache.js +26 -0
  158. package/internals/utils/index.d.ts +2 -1
  159. package/internals/utils/index.js +11 -0
  160. package/locales/daDK.js +1 -1
  161. package/locales/idID.d.ts +4 -0
  162. package/locales/idID.js +267 -0
  163. package/locales/index.d.ts +2 -1
  164. package/locales/index.js +11 -0
  165. package/package.json +3 -3
  166. package/utils/css/context.js +1 -0
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -105,6 +105,10 @@ function GridVirtualScroller(props) {
105
105
  scrollDirection: "left"
106
106
  }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
107
107
  scrollDirection: "right"
108
+ }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
109
+ scrollDirection: "up"
110
+ }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
111
+ scrollDirection: "down"
108
112
  }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsxs)(Scroller, (0, _extends2.default)({
109
113
  className: classes.scroller
110
114
  }, getScrollerProps(), {
@@ -639,6 +639,14 @@ export interface GridClasses {
639
639
  * Styles applied to the right scroll area element.
640
640
  */
641
641
  'scrollArea--right': string;
642
+ /**
643
+ * Styles applied to the top scroll area element.
644
+ */
645
+ 'scrollArea--up': string;
646
+ /**
647
+ * Styles applied to the bottom scroll area element.
648
+ */
649
+ 'scrollArea--down': string;
642
650
  /**
643
651
  * Styles applied to the scrollbars.
644
652
  */
@@ -11,4 +11,4 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
11
11
  function getDataGridUtilityClass(slot) {
12
12
  return (0, _generateUtilityClass.default)('MuiDataGrid', slot);
13
13
  }
14
- const gridClasses = exports.gridClasses = (0, _generateUtilityClasses.default)('MuiDataGrid', ['aiAssistantPanel', 'aiAssistantPanelHeader', 'aiAssistantPanelTitleContainer', 'aiAssistantPanelTitle', 'aiAssistantPanelBody', 'aiAssistantPanelEmptyText', 'aiAssistantPanelFooter', 'aiAssistantPanelConversation', 'aiAssistantPanelConversationList', 'aiAssistantPanelConversationTitle', 'aiAssistantPanelSuggestions', 'aiAssistantPanelSuggestionsList', 'aiAssistantPanelSuggestionsItem', 'aiAssistantPanelSuggestionsLabel', 'actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'autoHeight', 'autosizing', 'mainContent', 'withSidePanel', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'collapsible', 'collapsibleTrigger', 'collapsibleIcon', 'collapsiblePanel', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'container--top', 'container--bottom', 'detailPanel', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowReorderIcon', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortButton', 'sortIcon', 'shadowScrollArea', 'sidebar', 'sidebarHeader', 'toolbarContainer', 'toolbar', 'toolbarLabel', 'toolbarDivider', 'toolbarFilterList', 'toolbarQuickFilter', 'toolbarQuickFilterTrigger', 'toolbarQuickFilterControl', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pivotPanelAvailableFields', 'pivotPanelField', 'pivotPanelField--sorted', 'pivotPanelFieldActionContainer', 'pivotPanelFieldCheckbox', 'pivotPanelFieldDragIcon', 'pivotPanelFieldList', 'pivotPanelFieldName', 'pivotPanelHeader', 'pivotPanelPlaceholder', 'pivotPanelScrollArea', 'pivotPanelSearchContainer', 'pivotPanelSection', 'pivotPanelSectionTitle', 'pivotPanelSections', 'pivotPanelSwitch', 'pivotPanelSwitchLabel', 'prompt', 'promptContent', 'promptText', 'promptFeedback', 'promptChangeList', 'promptChangesToggle', 'promptChangesToggleIcon', 'promptIcon', 'promptIconContainer', 'promptError', 'promptAction']);
14
+ const gridClasses = exports.gridClasses = (0, _generateUtilityClasses.default)('MuiDataGrid', ['aiAssistantPanel', 'aiAssistantPanelHeader', 'aiAssistantPanelTitleContainer', 'aiAssistantPanelTitle', 'aiAssistantPanelBody', 'aiAssistantPanelEmptyText', 'aiAssistantPanelFooter', 'aiAssistantPanelConversation', 'aiAssistantPanelConversationList', 'aiAssistantPanelConversationTitle', 'aiAssistantPanelSuggestions', 'aiAssistantPanelSuggestionsList', 'aiAssistantPanelSuggestionsItem', 'aiAssistantPanelSuggestionsLabel', 'actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'autoHeight', 'autosizing', 'mainContent', 'withSidePanel', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'collapsible', 'collapsibleTrigger', 'collapsibleIcon', 'collapsiblePanel', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'container--top', 'container--bottom', 'detailPanel', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowReorderIcon', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea--up', 'scrollArea--down', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortButton', 'sortIcon', 'shadowScrollArea', 'sidebar', 'sidebarHeader', 'toolbarContainer', 'toolbar', 'toolbarLabel', 'toolbarDivider', 'toolbarFilterList', 'toolbarQuickFilter', 'toolbarQuickFilterTrigger', 'toolbarQuickFilterControl', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pivotPanelAvailableFields', 'pivotPanelField', 'pivotPanelField--sorted', 'pivotPanelFieldActionContainer', 'pivotPanelFieldCheckbox', 'pivotPanelFieldDragIcon', 'pivotPanelFieldList', 'pivotPanelFieldName', 'pivotPanelHeader', 'pivotPanelPlaceholder', 'pivotPanelScrollArea', 'pivotPanelSearchContainer', 'pivotPanelSection', 'pivotPanelSectionTitle', 'pivotPanelSections', 'pivotPanelSwitch', 'pivotPanelSwitchLabel', 'prompt', 'promptContent', 'promptText', 'promptFeedback', 'promptChangeList', 'promptChangesToggle', 'promptChangesToggleIcon', 'promptIcon', 'promptIconContainer', 'promptError', 'promptAction']);
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { RefObject } from '@mui/x-internals/types';
3
3
  import { GridScrollParams } from "../models/params/gridScrollParams.js";
4
4
  interface ScrollAreaProps {
5
- scrollDirection: 'left' | 'right';
5
+ scrollDirection: 'left' | 'right' | 'up' | 'down';
6
6
  scrollPosition: RefObject<GridScrollParams>;
7
7
  }
8
8
  declare function GridScrollAreaWrapper(props: ScrollAreaProps): React.JSX.Element | null;
@@ -1,11 +1,13 @@
1
1
  'use client';
2
2
 
3
+ /* eslint-disable @typescript-eslint/no-use-before-define */
3
4
  import _extends from "@babel/runtime/helpers/esm/extends";
4
5
  import * as React from 'react';
5
6
  import useEventCallback from '@mui/utils/useEventCallback';
6
7
  import composeClasses from '@mui/utils/composeClasses';
7
8
  import { styled } from '@mui/system';
8
9
  import { fastMemo } from '@mui/x-internals/fastMemo';
10
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
11
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
10
12
  import { getDataGridUtilityClass, gridClasses } from "../constants/index.js";
11
13
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
@@ -16,6 +18,7 @@ import { gridDensityFactorSelector } from "../hooks/features/density/densitySele
16
18
  import { useTimeout } from "../hooks/utils/useTimeout.js";
17
19
  import { getTotalHeaderHeight } from "../hooks/features/columns/gridColumnsUtils.js";
18
20
  import { createSelector } from "../utils/createSelector.js";
21
+ import { gridRowsMetaSelector } from "../hooks/features/rows/gridRowsMetaSelector.js";
19
22
  import { jsx as _jsx } from "react/jsx-runtime";
20
23
  const CLIFF = 1;
21
24
  const SLOP = 1.5;
@@ -36,18 +39,39 @@ const GridScrollAreaRawRoot = styled('div', {
36
39
  [`&.${gridClasses['scrollArea--left']}`]: styles['scrollArea--left']
37
40
  }, {
38
41
  [`&.${gridClasses['scrollArea--right']}`]: styles['scrollArea--right']
42
+ }, {
43
+ [`&.${gridClasses['scrollArea--up']}`]: styles['scrollArea--up']
44
+ }, {
45
+ [`&.${gridClasses['scrollArea--down']}`]: styles['scrollArea--down']
39
46
  }, styles.scrollArea]
40
47
  })(() => ({
41
48
  position: 'absolute',
42
- top: 0,
43
49
  zIndex: 101,
44
- width: 20,
45
- bottom: 0,
50
+ // Horizontal scroll areas
46
51
  [`&.${gridClasses['scrollArea--left']}`]: {
47
- left: 0
52
+ top: 0,
53
+ left: 0,
54
+ width: 20,
55
+ bottom: 0
48
56
  },
49
57
  [`&.${gridClasses['scrollArea--right']}`]: {
50
- right: 0
58
+ top: 0,
59
+ right: 0,
60
+ width: 20,
61
+ bottom: 0
62
+ },
63
+ // Vertical scroll areas
64
+ [`&.${gridClasses['scrollArea--up']}`]: {
65
+ top: 0,
66
+ left: 0,
67
+ right: 0,
68
+ height: 20
69
+ },
70
+ [`&.${gridClasses['scrollArea--down']}`]: {
71
+ bottom: 0,
72
+ left: 0,
73
+ right: 0,
74
+ height: 20
51
75
  }
52
76
  }));
53
77
  const offsetSelector = createSelector(gridDimensionsSelector, (dimensions, direction) => {
@@ -57,19 +81,27 @@ const offsetSelector = createSelector(gridDimensionsSelector, (dimensions, direc
57
81
  if (direction === 'right') {
58
82
  return dimensions.rightPinnedWidth + (dimensions.hasScrollX ? dimensions.scrollbarSize : 0);
59
83
  }
84
+ // For vertical scroll areas, we don't need horizontal offset
60
85
  return 0;
61
86
  });
62
87
  function GridScrollAreaWrapper(props) {
63
88
  const apiRef = useGridApiContext();
64
- const [dragging, setDragging] = React.useState(false);
65
- useGridEvent(apiRef, 'columnHeaderDragStart', () => setDragging(true));
66
- useGridEvent(apiRef, 'columnHeaderDragEnd', () => setDragging(false));
67
- if (!dragging) {
89
+ const [dragDirection, setDragDirection] = React.useState('none');
90
+
91
+ // Listen for both column and row drag events
92
+ useGridEvent(apiRef, 'columnHeaderDragStart', () => setDragDirection('horizontal'));
93
+ useGridEvent(apiRef, 'columnHeaderDragEnd', () => setDragDirection('none'));
94
+ useGridEvent(apiRef, 'rowDragStart', () => setDragDirection('vertical'));
95
+ useGridEvent(apiRef, 'rowDragEnd', () => setDragDirection('none'));
96
+ if (dragDirection === 'none') {
68
97
  return null;
69
98
  }
70
- return /*#__PURE__*/_jsx(GridScrollAreaContent, _extends({}, props));
99
+ if (dragDirection === 'horizontal') {
100
+ return /*#__PURE__*/_jsx(GridHorizontalScrollAreaContent, _extends({}, props));
101
+ }
102
+ return /*#__PURE__*/_jsx(GridVerticalScrollAreaContent, _extends({}, props));
71
103
  }
72
- function GridScrollAreaContent(props) {
104
+ function GridHorizontalScrollAreaContent(props) {
73
105
  const {
74
106
  scrollDirection,
75
107
  scrollPosition
@@ -93,26 +125,17 @@ function GridScrollAreaContent(props) {
93
125
  }
94
126
  return false;
95
127
  };
96
- const [canScrollMore, setCanScrollMore] = React.useState(getCanScrollMore);
97
128
  const rootProps = useGridRootProps();
98
- const ownerState = _extends({}, rootProps, {
99
- scrollDirection
100
- });
101
- const classes = useUtilityClasses(ownerState);
102
129
  const totalHeaderHeight = getTotalHeaderHeight(apiRef, rootProps);
103
130
  const headerHeight = Math.floor(rootProps.columnHeaderHeight * densityFactor);
104
- const style = {
131
+ const style = _extends({
105
132
  height: headerHeight,
106
133
  top: totalHeaderHeight - headerHeight
107
- };
108
- if (scrollDirection === 'left') {
109
- style.left = sideOffset;
110
- } else if (scrollDirection === 'right') {
111
- style.right = sideOffset;
112
- }
113
- const handleScrolling = () => {
114
- setCanScrollMore(getCanScrollMore);
115
- };
134
+ }, scrollDirection === 'left' ? {
135
+ left: sideOffset
136
+ } : {}, scrollDirection === 'right' ? {
137
+ right: sideOffset
138
+ } : {});
116
139
  const handleDragOver = useEventCallback(event => {
117
140
  let offset;
118
141
 
@@ -135,16 +158,99 @@ function GridScrollAreaContent(props) {
135
158
  });
136
159
  });
137
160
  });
161
+ return /*#__PURE__*/_jsx(GridScrollAreaContent, _extends({}, props, {
162
+ ref: rootRef,
163
+ getCanScrollMore: getCanScrollMore,
164
+ style: style,
165
+ handleDragOver: handleDragOver
166
+ }));
167
+ }
168
+ function GridVerticalScrollAreaContent(props) {
169
+ const {
170
+ scrollDirection,
171
+ scrollPosition
172
+ } = props;
173
+ const rootRef = React.useRef(null);
174
+ const apiRef = useGridApiContext();
175
+ const timeout = useTimeout();
176
+ const rowsMeta = useGridSelector(apiRef, gridRowsMetaSelector);
177
+ const getCanScrollMore = () => {
178
+ const dimensions = gridDimensionsSelector(apiRef);
179
+ if (scrollDirection === 'up') {
180
+ // Only render if the user has not reached yet the top of the list
181
+ return scrollPosition.current.top > 0;
182
+ }
183
+ if (scrollDirection === 'down') {
184
+ // Only render if the user has not reached yet the bottom of the list
185
+ const totalRowsHeight = rowsMeta.currentPageTotalHeight || 0;
186
+ const maxScrollTop = totalRowsHeight - dimensions.viewportInnerSize.height - dimensions.scrollbarSize;
187
+ return scrollPosition.current.top < maxScrollTop;
188
+ }
189
+ return false;
190
+ };
191
+ const rootProps = useGridRootProps();
192
+ const totalHeaderHeight = getTotalHeaderHeight(apiRef, rootProps);
193
+ const style = {
194
+ top: scrollDirection === 'up' ? totalHeaderHeight : undefined,
195
+ bottom: scrollDirection === 'down' ? 0 : undefined
196
+ };
197
+ const handleDragOver = useEventCallback(event => {
198
+ let offset;
199
+
200
+ // Prevents showing the forbidden cursor
201
+ event.preventDefault();
202
+ if (scrollDirection === 'up') {
203
+ offset = event.clientY - rootRef.current.getBoundingClientRect().bottom;
204
+ } else if (scrollDirection === 'down') {
205
+ offset = Math.max(1, event.clientY - rootRef.current.getBoundingClientRect().top);
206
+ } else {
207
+ throw new Error('MUI X: Wrong drag direction');
208
+ }
209
+ offset = (offset - CLIFF) * SLOP + CLIFF;
210
+
211
+ // Avoid freeze and inertia.
212
+ timeout.start(0, () => {
213
+ apiRef.current.scroll({
214
+ left: scrollPosition.current.left,
215
+ top: scrollPosition.current.top + offset
216
+ });
217
+ });
218
+ });
219
+ return /*#__PURE__*/_jsx(GridScrollAreaContent, _extends({}, props, {
220
+ ref: rootRef,
221
+ getCanScrollMore: getCanScrollMore,
222
+ style: style,
223
+ handleDragOver: handleDragOver
224
+ }));
225
+ }
226
+ const GridScrollAreaContent = forwardRef(function GridScrollAreaContent(props, ref) {
227
+ const {
228
+ scrollDirection,
229
+ getCanScrollMore,
230
+ style,
231
+ handleDragOver
232
+ } = props;
233
+ const apiRef = useGridApiContext();
234
+ const [canScrollMore, setCanScrollMore] = React.useState(getCanScrollMore);
235
+ const rootProps = useGridRootProps();
236
+ const ownerState = _extends({}, rootProps, {
237
+ scrollDirection
238
+ });
239
+ const classes = useUtilityClasses(ownerState);
240
+ const handleScrolling = () => {
241
+ setCanScrollMore(getCanScrollMore);
242
+ };
138
243
  useGridEvent(apiRef, 'scrollPositionChange', handleScrolling);
139
244
  if (!canScrollMore) {
140
245
  return null;
141
246
  }
142
247
  return /*#__PURE__*/_jsx(GridScrollAreaRawRoot, {
143
- ref: rootRef,
248
+ ref: ref,
144
249
  className: classes.root,
145
250
  ownerState: ownerState,
146
251
  onDragOver: handleDragOver,
147
252
  style: style
148
253
  });
149
- }
254
+ });
255
+ if (process.env.NODE_ENV !== "production") GridScrollAreaContent.displayName = "GridScrollAreaContent";
150
256
  export const GridScrollArea = fastMemo(GridScrollAreaWrapper);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["api", "colDef", "id", "hasFocus", "isEditable", "field", "value", "formattedValue", "row", "rowNode", "cellMode", "tabIndex", "position", "focusElementRef"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["column", "row", "rowId", "rowNode", "align", "children", "colIndex", "width", "className", "style", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "showRightBorder", "showLeftBorder", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "hasFocus", "isValidating", "isProcessingProps", "error", "onValueChange"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "hasFocus", "inputProps", "isValidating", "isProcessingProps", "onValueChange", "slotProps"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "hasFocus", "isValidating", "debounceMs", "isProcessingProps", "onValueChange", "slotProps"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "className", "hasFocus", "isValidating", "isProcessingProps", "error", "onValueChange", "initialOpen", "slotProps"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import useId from '@mui/utils/useId';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["className", "aria-label"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizing", "sortDirection", "hasFocus", "tabIndex", "separatorSide", "isDraggable", "headerComponent", "description", "elementId", "width", "columnMenuIconButton", "columnMenu", "columnTitleIconButtons", "headerClassName", "label", "resizable", "draggableContainerProps", "columnHeaderSeparatorProps", "style"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["field", "id", "formattedValue", "row", "rowNode", "colDef", "isEditable", "cellMode", "hasFocus", "tabIndex", "api"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["field", "colDef"];
@@ -1,5 +1,7 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  /* eslint-disable @typescript-eslint/no-use-before-define */
2
+ 'use client';
3
+
4
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  import * as React from 'react';
4
6
  import PropTypes from 'prop-types';
5
7
  import composeClasses from '@mui/utils/composeClasses';
@@ -623,11 +623,6 @@ export const GridRootStyles = styled('div', {
623
623
  },
624
624
  '&.Mui-selected': selectedStyles
625
625
  },
626
- [`& .${c['container--top']}, & .${c['container--bottom']}`]: {
627
- '[role=row]': {
628
- background: vars.colors.background.base
629
- }
630
- },
631
626
  /* Cell styles */
632
627
  [`& .${c.cell}`]: {
633
628
  flex: '0 0 auto',
@@ -841,6 +836,8 @@ export const GridRootStyles = styled('div', {
841
836
  [`&.${c['scrollbarFiller--pinnedRight']}`]: {
842
837
  backgroundColor: vars.cell.background.pinned,
843
838
  position: 'sticky',
839
+ zIndex: 40,
840
+ // Should be above the column separator
844
841
  right: 0
845
842
  }
846
843
  },
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["open", "target", "onClose", "children", "position", "className", "onExited"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["children", "className", "classes", "onClose"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { jsx as _jsx } from "react/jsx-runtime";
3
5
  export const GridPanelContext = /*#__PURE__*/React.createContext(undefined);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["item", "applyValue", "apiRef", "focusElementRef", "isFilterActive", "headerFilterMenu", "clearButton", "tabIndex", "slotProps"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "slotProps", "isFilterActive", "headerFilterMenu", "clearButton", "tabIndex", "disabled"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["item", "applyValue", "type", "apiRef", "focusElementRef", "tabIndex", "disabled", "isFilterActive", "slotProps", "clearButton", "headerFilterMenu"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["logicOperators", "columnsSort", "filterFormProps", "getColumnForNewFilter", "children", "disableAddFilterButton", "disableRemoveAllButton"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["render", "className", "parser", "formatter", "debounceMs", "defaultExpanded", "expanded", "onExpandedChange"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  export const QuickFilterContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== "production") QuickFilterContext.displayName = "QuickFilterContext";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["className"],
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["render", "className"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["render", "onKeyDown", "onFocus", "disabled", "aria-disabled"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  export const ToolbarContext = /*#__PURE__*/React.createContext(undefined);
3
5
  if (process.env.NODE_ENV !== "production") ToolbarContext.displayName = "ToolbarContext";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { styled } from '@mui/system';
3
5
  import useEventCallback from '@mui/utils/useEventCallback';
@@ -97,6 +97,10 @@ function GridVirtualScroller(props) {
97
97
  scrollDirection: "left"
98
98
  }, getScrollAreaProps())), /*#__PURE__*/_jsx(GridScrollArea, _extends({
99
99
  scrollDirection: "right"
100
+ }, getScrollAreaProps())), /*#__PURE__*/_jsx(GridScrollArea, _extends({
101
+ scrollDirection: "up"
102
+ }, getScrollAreaProps())), /*#__PURE__*/_jsx(GridScrollArea, _extends({
103
+ scrollDirection: "down"
100
104
  }, getScrollAreaProps())), /*#__PURE__*/_jsxs(Scroller, _extends({
101
105
  className: classes.scroller
102
106
  }, getScrollerProps(), {