@mui/x-data-grid 7.21.0 → 7.22.1

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 (125) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/components/GridRow.js +1 -1
  3. package/components/cell/GridBooleanCell.d.ts +3 -3
  4. package/components/cell/GridBooleanCell.js +13 -2
  5. package/components/columnHeaders/GridColumnHeaderFilterIconButton.js +1 -2
  6. package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -2
  7. package/components/containers/GridRootStyles.js +4 -2
  8. package/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
  9. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +2 -2
  10. package/components/panel/filterPanel/GridFilterInputValue.js +2 -2
  11. package/components/toolbar/GridToolbar.js +2 -3
  12. package/components/toolbar/GridToolbarExport.js +1 -13
  13. package/components/toolbar/GridToolbarFilterButton.js +1 -2
  14. package/components/virtualization/GridBottomContainer.js +0 -17
  15. package/components/virtualization/GridMainContainer.js +2 -1
  16. package/components/virtualization/GridVirtualScrollbar.js +1 -1
  17. package/components/virtualization/GridVirtualScroller.js +2 -0
  18. package/constants/gridClasses.d.ts +5 -0
  19. package/constants/gridClasses.js +1 -1
  20. package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +4 -0
  21. package/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -2
  22. package/hooks/features/columnMenu/useGridColumnMenuSlots.js +4 -3
  23. package/hooks/features/focus/useGridFocus.js +18 -3
  24. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -4
  25. package/hooks/features/listView/useGridListView.d.ts +1 -1
  26. package/hooks/features/listView/useGridListView.js +8 -2
  27. package/hooks/features/pagination/gridPaginationSelector.js +2 -1
  28. package/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  29. package/hooks/features/rows/useGridRowSpanning.js +3 -1
  30. package/hooks/features/scroll/useGridScroll.js +3 -7
  31. package/hooks/features/virtualization/useGridVirtualScroller.js +3 -2
  32. package/index.js +1 -1
  33. package/internals/constants.d.ts +3 -0
  34. package/internals/constants.js +3 -0
  35. package/internals/index.d.ts +1 -0
  36. package/internals/index.js +2 -1
  37. package/internals/utils/gridRowGroupingUtils.d.ts +2 -0
  38. package/internals/utils/gridRowGroupingUtils.js +9 -0
  39. package/internals/utils/index.d.ts +1 -0
  40. package/internals/utils/index.js +2 -1
  41. package/joy/joySlots.js +45 -27
  42. package/locales/daDK.js +5 -6
  43. package/locales/itIT.js +27 -28
  44. package/locales/ptBR.js +4 -4
  45. package/material/index.js +4 -0
  46. package/models/gridExport.d.ts +1 -1
  47. package/models/gridSlotsComponent.d.ts +10 -0
  48. package/models/gridSlotsComponentsProps.d.ts +9 -0
  49. package/modern/components/GridRow.js +1 -1
  50. package/modern/components/cell/GridBooleanCell.js +13 -2
  51. package/modern/components/columnHeaders/GridColumnHeaderFilterIconButton.js +1 -2
  52. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -2
  53. package/modern/components/containers/GridRootStyles.js +4 -2
  54. package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
  55. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +2 -2
  56. package/modern/components/panel/filterPanel/GridFilterInputValue.js +2 -2
  57. package/modern/components/toolbar/GridToolbar.js +2 -3
  58. package/modern/components/toolbar/GridToolbarExport.js +1 -13
  59. package/modern/components/toolbar/GridToolbarFilterButton.js +1 -2
  60. package/modern/components/virtualization/GridBottomContainer.js +0 -17
  61. package/modern/components/virtualization/GridMainContainer.js +2 -1
  62. package/modern/components/virtualization/GridVirtualScrollbar.js +1 -1
  63. package/modern/components/virtualization/GridVirtualScroller.js +2 -0
  64. package/modern/constants/gridClasses.js +1 -1
  65. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -2
  66. package/modern/hooks/features/columnMenu/useGridColumnMenuSlots.js +4 -3
  67. package/modern/hooks/features/focus/useGridFocus.js +18 -3
  68. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +3 -4
  69. package/modern/hooks/features/listView/useGridListView.js +8 -2
  70. package/modern/hooks/features/pagination/gridPaginationSelector.js +2 -1
  71. package/modern/hooks/features/rowSelection/useGridRowSelection.js +1 -1
  72. package/modern/hooks/features/rows/useGridRowSpanning.js +3 -1
  73. package/modern/hooks/features/scroll/useGridScroll.js +3 -7
  74. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +3 -2
  75. package/modern/index.js +1 -1
  76. package/modern/internals/constants.js +3 -0
  77. package/modern/internals/index.js +2 -1
  78. package/modern/internals/utils/gridRowGroupingUtils.js +9 -0
  79. package/modern/internals/utils/index.js +2 -1
  80. package/modern/joy/joySlots.js +45 -27
  81. package/modern/locales/daDK.js +5 -6
  82. package/modern/locales/itIT.js +27 -28
  83. package/modern/locales/ptBR.js +4 -4
  84. package/modern/material/index.js +4 -0
  85. package/node/components/GridRow.js +2 -2
  86. package/node/components/cell/GridBooleanCell.js +13 -2
  87. package/node/components/columnHeaders/GridColumnHeaderFilterIconButton.js +1 -2
  88. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -2
  89. package/node/components/containers/GridRootStyles.js +4 -2
  90. package/node/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
  91. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +2 -2
  92. package/node/components/panel/filterPanel/GridFilterInputValue.js +2 -2
  93. package/node/components/toolbar/GridToolbar.js +2 -3
  94. package/node/components/toolbar/GridToolbarExport.js +1 -13
  95. package/node/components/toolbar/GridToolbarFilterButton.js +1 -2
  96. package/node/components/virtualization/GridBottomContainer.js +0 -17
  97. package/node/components/virtualization/GridMainContainer.js +2 -1
  98. package/node/components/virtualization/GridVirtualScrollbar.js +1 -1
  99. package/node/components/virtualization/GridVirtualScroller.js +2 -0
  100. package/node/constants/gridClasses.js +1 -1
  101. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -2
  102. package/node/hooks/features/columnMenu/useGridColumnMenuSlots.js +4 -3
  103. package/node/hooks/features/focus/useGridFocus.js +18 -3
  104. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +4 -5
  105. package/node/hooks/features/listView/useGridListView.js +8 -2
  106. package/node/hooks/features/pagination/gridPaginationSelector.js +3 -1
  107. package/node/hooks/features/rowSelection/useGridRowSelection.js +2 -2
  108. package/node/hooks/features/rows/useGridRowSpanning.js +3 -1
  109. package/node/hooks/features/scroll/useGridScroll.js +3 -7
  110. package/node/hooks/features/virtualization/useGridVirtualScroller.js +3 -2
  111. package/node/index.js +1 -1
  112. package/node/internals/constants.js +9 -0
  113. package/node/internals/index.js +12 -0
  114. package/node/internals/utils/gridRowGroupingUtils.js +17 -0
  115. package/node/internals/utils/index.js +11 -0
  116. package/node/joy/joySlots.js +45 -27
  117. package/node/locales/daDK.js +5 -6
  118. package/node/locales/itIT.js +27 -28
  119. package/node/locales/ptBR.js +4 -4
  120. package/node/material/index.js +4 -0
  121. package/package.json +1 -1
  122. package/constants/gridDetailPanelToggleField.d.ts +0 -1
  123. package/constants/gridDetailPanelToggleField.js +0 -2
  124. package/modern/constants/gridDetailPanelToggleField.js +0 -2
  125. package/node/constants/gridDetailPanelToggleField.js +0 -8
@@ -9,4 +9,4 @@ var _utils = require("@mui/utils");
9
9
  function getDataGridUtilityClass(slot) {
10
10
  return (0, _utils.unstable_generateUtilityClass)('MuiDataGrid', slot);
11
11
  }
12
- const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', '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', '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', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', '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--hasSkeletonLoadingOverlay', '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', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
12
+ const gridClasses = exports.gridClasses = (0, _utils.unstable_generateUtilityClasses)('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', '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', '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', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', '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--hasSkeletonLoadingOverlay', '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', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
@@ -231,7 +231,6 @@ const useGridColumnHeaders = props => {
231
231
  return null;
232
232
  }
233
233
  const {
234
- renderedColumns,
235
234
  firstColumnToRender,
236
235
  lastColumnToRender
237
236
  } = columnsToRender;
@@ -300,7 +299,7 @@ const useGridColumnHeaders = props => {
300
299
  pinnedPosition: pinnedPosition,
301
300
  style: style,
302
301
  indexInSection: indexInSection,
303
- sectionLength: renderedColumns.length,
302
+ sectionLength: rowStructure.length,
304
303
  gridHasFiller: gridHasFiller
305
304
  }, index);
306
305
  });
@@ -9,11 +9,12 @@ exports.useGridColumnMenuSlots = void 0;
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
12
+ var _useGridRootProps = require("../../utils/useGridRootProps");
13
13
  var _useGridPrivateApiContext = require("../../utils/useGridPrivateApiContext");
14
14
  const _excluded = ["displayOrder"];
15
15
  const useGridColumnMenuSlots = props => {
16
16
  const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
17
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
17
18
  const {
18
19
  defaultSlots,
19
20
  defaultSlotProps,
@@ -59,8 +60,8 @@ const useGridColumnMenuSlots = props => {
59
60
  const customProps = (0, _objectWithoutPropertiesLoose2.default)(processedComponentProps, _excluded);
60
61
  itemProps = (0, _extends2.default)({}, itemProps, customProps);
61
62
  }
62
- return addDividers && index !== sorted.length - 1 ? [...acc, [processedComponents[key], itemProps], [_Divider.default, {}]] : [...acc, [processedComponents[key], itemProps]];
63
+ return addDividers && index !== sorted.length - 1 ? [...acc, [processedComponents[key], itemProps], [rootProps.slots.baseDivider, {}]] : [...acc, [processedComponents[key], itemProps]];
63
64
  }, []);
64
- }, [addDividers, colDef, defaultItems, hideMenu, processedComponents, processedSlotProps, userItems]);
65
+ }, [addDividers, colDef, defaultItems, hideMenu, processedComponents, processedSlotProps, userItems, rootProps.slots.baseDivider]);
65
66
  };
66
67
  exports.useGridColumnMenuSlots = useGridColumnMenuSlots;
@@ -332,18 +332,33 @@ const useGridFocus = (apiRef, props) => {
332
332
  const handleRowSet = React.useCallback(() => {
333
333
  const cell = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
334
334
 
335
- // If the focused cell is in a row which does not exist anymore, then remove the focus
335
+ // If the focused cell is in a row which does not exist anymore,
336
+ // focus previous row or remove the focus
336
337
  if (cell && !apiRef.current.getRow(cell.id)) {
338
+ const lastFocusedRowId = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef)?.id;
339
+ let nextRowId = null;
340
+ if (typeof lastFocusedRowId !== 'undefined') {
341
+ const lastFocusedRowIndex = apiRef.current.getRowIndexRelativeToVisibleRows(lastFocusedRowId);
342
+ const currentPage = (0, _useGridVisibleRows.getVisibleRows)(apiRef, {
343
+ pagination: props.pagination,
344
+ paginationMode: props.paginationMode
345
+ });
346
+ const nextRow = currentPage.rows[(0, _utils2.clamp)(lastFocusedRowIndex, 0, currentPage.rows.length - 1)];
347
+ nextRowId = nextRow?.id ?? null;
348
+ }
337
349
  apiRef.current.setState(state => (0, _extends2.default)({}, state, {
338
350
  focus: {
339
- cell: null,
351
+ cell: nextRowId === null ? null : {
352
+ id: nextRowId,
353
+ field: cell.field
354
+ },
340
355
  columnHeader: null,
341
356
  columnHeaderFilter: null,
342
357
  columnGroupHeader: null
343
358
  }
344
359
  }));
345
360
  }
346
- }, [apiRef]);
361
+ }, [apiRef, props.pagination, props.paginationMode]);
347
362
  const handlePaginationModelChange = (0, _utils.unstable_useEventCallback)(() => {
348
363
  const currentFocusedCell = (0, _gridFocusStateSelector.gridFocusCellSelector)(apiRef);
349
364
  if (!currentFocusedCell) {
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.useGridKeyboardNavigation = void 0;
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  var _RtlProvider = require("@mui/system/RtlProvider");
10
+ var _constants = require("../../../internals/constants");
11
+ var _gridRowGroupingUtils = require("../../../internals/utils/gridRowGroupingUtils");
10
12
  var _gridColumnsSelector = require("../columns/gridColumnsSelector");
11
13
  var _useGridLogger = require("../../utils/useGridLogger");
12
14
  var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
@@ -16,7 +18,6 @@ var _gridCheckboxSelectionColDef = require("../../../colDef/gridCheckboxSelectio
16
18
  var _gridClasses = require("../../../constants/gridClasses");
17
19
  var _gridEditRowModel = require("../../../models/gridEditRowModel");
18
20
  var _keyboardUtils = require("../../../utils/keyboardUtils");
19
- var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelToggleField");
20
21
  var _focus = require("../focus");
21
22
  var _gridColumnGroupsSelector = require("../columnGrouping/gridColumnGroupsSelector");
22
23
  var _gridHeaderFilteringSelectors = require("../headerFiltering/gridHeaderFilteringSelectors");
@@ -460,13 +461,11 @@ const useGridKeyboardNavigation = (apiRef, props) => {
460
461
  case ' ':
461
462
  {
462
463
  const field = params.field;
463
- if (field === _gridDetailPanelToggleField.GRID_DETAIL_PANEL_TOGGLE_FIELD) {
464
+ if (field === _constants.GRID_DETAIL_PANEL_TOGGLE_FIELD) {
464
465
  break;
465
466
  }
466
467
  const colDef = params.colDef;
467
- if (colDef &&
468
- // `GRID_TREE_DATA_GROUPING_FIELD` from the Pro package
469
- colDef.field === '__tree_data_group__') {
468
+ if (colDef && (colDef.field === _constants.GRID_TREE_DATA_GROUPING_FIELD || (0, _gridRowGroupingUtils.isGroupingColumn)(colDef.field))) {
470
469
  break;
471
470
  }
472
471
  if (!event.shiftKey && rowIndexBefore < lastRowIndexInPage) {
@@ -9,12 +9,13 @@ exports.listViewStateInitializer = void 0;
9
9
  exports.useGridListView = useGridListView;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
+ var _warning = require("@mui/x-internals/warning");
12
13
  var _dimensions = require("../dimensions");
13
14
  var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
14
15
  const listViewStateInitializer = (state, props, apiRef) => (0, _extends2.default)({}, state, {
15
- listViewColumn: (0, _extends2.default)({}, props.unstable_listColumn, {
16
+ listViewColumn: props.unstable_listColumn ? (0, _extends2.default)({}, props.unstable_listColumn, {
16
17
  computedWidth: getListColumnWidth(apiRef)
17
- })
18
+ }) : undefined
18
19
  });
19
20
  exports.listViewStateInitializer = listViewStateInitializer;
20
21
  function useGridListView(apiRef, props) {
@@ -58,6 +59,11 @@ function useGridListView(apiRef, props) {
58
59
  });
59
60
  }
60
61
  }, [apiRef, props.unstable_listColumn]);
62
+ React.useEffect(() => {
63
+ if (props.unstable_listView && !props.unstable_listColumn) {
64
+ (0, _warning.warnOnce)(['MUI X: The `unstable_listColumn` prop must be set if `unstable_listView` is enabled.', 'To fix, pass a column definition to the `unstable_listColumn` prop, e.g. `{ field: "example", renderCell: (params) => <div>{params.row.id}</div> }`.', 'For more details, see https://mui.com/x/react-data-grid/list-view/']);
65
+ }
66
+ }, [props.unstable_listView, props.unstable_listColumn]);
61
67
  }
62
68
  function getListColumnWidth(apiRef) {
63
69
  return (0, _dimensions.gridDimensionsSelector)(apiRef.current.state).viewportInnerSize.width;
@@ -8,6 +8,8 @@ var _createSelector = require("../../../utils/createSelector");
8
8
  var _gridFilterSelector = require("../filter/gridFilterSelector");
9
9
  var _gridRowsSelector = require("../rows/gridRowsSelector");
10
10
  var _gridPaginationUtils = require("./gridPaginationUtils");
11
+ const ALL_RESULTS_PAGE_VALUE = -1;
12
+
11
13
  /**
12
14
  * @category Pagination
13
15
  * @ignore - do not document.
@@ -58,7 +60,7 @@ const gridPageCountSelector = exports.gridPageCountSelector = (0, _createSelecto
58
60
  const gridPaginationRowRangeSelector = exports.gridPaginationRowRangeSelector = (0, _createSelector.createSelectorMemoized)(gridPaginationModelSelector, _gridRowsSelector.gridRowTreeSelector, _gridRowsSelector.gridRowMaximumTreeDepthSelector, _gridFilterSelector.gridExpandedSortedRowEntriesSelector, _gridFilterSelector.gridFilteredSortedTopLevelRowEntriesSelector, (paginationModel, rowTree, rowTreeDepth, visibleSortedRowEntries, visibleSortedTopLevelRowEntries) => {
59
61
  const visibleTopLevelRowCount = visibleSortedTopLevelRowEntries.length;
60
62
  const topLevelFirstRowIndex = Math.min(paginationModel.pageSize * paginationModel.page, visibleTopLevelRowCount - 1);
61
- const topLevelLastRowIndex = Math.min(topLevelFirstRowIndex + paginationModel.pageSize - 1, visibleTopLevelRowCount - 1);
63
+ const topLevelLastRowIndex = paginationModel.pageSize === ALL_RESULTS_PAGE_VALUE ? visibleTopLevelRowCount - 1 : Math.min(topLevelFirstRowIndex + paginationModel.pageSize - 1, visibleTopLevelRowCount - 1);
62
64
 
63
65
  // The range contains no element
64
66
  if (topLevelFirstRowIndex === -1 || topLevelLastRowIndex === -1) {
@@ -21,7 +21,7 @@ var _colDef = require("../../../colDef");
21
21
  var _gridEditRowModel = require("../../../models/gridEditRowModel");
22
22
  var _keyboardUtils = require("../../../utils/keyboardUtils");
23
23
  var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
24
- var _gridDetailPanelToggleField = require("../../../constants/gridDetailPanelToggleField");
24
+ var _constants = require("../../../internals/constants");
25
25
  var _gridClasses = require("../../../constants/gridClasses");
26
26
  var _domUtils = require("../../../utils/domUtils");
27
27
  var _utils = require("./utils");
@@ -328,7 +328,7 @@ const useGridRowSelection = (apiRef, props) => {
328
328
  // click on checkbox should not trigger row selection
329
329
  return;
330
330
  }
331
- if (field === _gridDetailPanelToggleField.GRID_DETAIL_PANEL_TOGGLE_FIELD) {
331
+ if (field === _constants.GRID_DETAIL_PANEL_TOGGLE_FIELD) {
332
332
  // click to open the detail panel should not select the row
333
333
  return;
334
334
  }
@@ -9,11 +9,13 @@ exports.useGridRowSpanning = exports.rowSpanningStateInitializer = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _useLazyRef = _interopRequireDefault(require("@mui/utils/useLazyRef"));
12
+ var _constants = require("../../../internals/constants");
12
13
  var _gridColumnsSelector = require("../columns/gridColumnsSelector");
13
14
  var _useGridVisibleRows = require("../../utils/useGridVisibleRows");
14
15
  var _gridVirtualizationSelectors = require("../virtualization/gridVirtualizationSelectors");
15
16
  var _useGridSelector = require("../../utils/useGridSelector");
16
17
  var _gridRowSpanningUtils = require("./gridRowSpanningUtils");
18
+ var _gridCheckboxSelectionColDef = require("../../../colDef/gridCheckboxSelectionColDef");
17
19
  const EMPTY_STATE = {
18
20
  spannedCells: {},
19
21
  hiddenCells: {},
@@ -23,7 +25,7 @@ const EMPTY_RANGE = {
23
25
  firstRowIndex: 0,
24
26
  lastRowIndex: 0
25
27
  };
26
- const skippedFields = new Set(['__check__', '__reorder__', '__detail_panel_toggle__']);
28
+ const skippedFields = new Set([_gridCheckboxSelectionColDef.GRID_CHECKBOX_SELECTION_FIELD, '__reorder__', _constants.GRID_DETAIL_PANEL_TOGGLE_FIELD]);
27
29
  /**
28
30
  * Default number of rows to process during state initialization to avoid flickering.
29
31
  * Number `20` is arbitrarily chosen to be large enough to cover most of the cases without
@@ -54,8 +54,6 @@ const useGridScroll = (apiRef, props) => {
54
54
  const logger = (0, _useGridLogger.useGridLogger)(apiRef, 'useGridScroll');
55
55
  const colRef = apiRef.current.columnHeadersContainerRef;
56
56
  const virtualScrollerRef = apiRef.current.virtualScrollerRef;
57
- const virtualScrollbarHorizontalRef = apiRef.current.virtualScrollbarHorizontalRef;
58
- const virtualScrollbarVerticalRef = apiRef.current.virtualScrollbarVerticalRef;
59
57
  const visibleSortedRows = (0, _useGridSelector.useGridSelector)(apiRef, _gridFilterSelector.gridExpandedSortedRowEntriesSelector);
60
58
  const scrollToIndexes = React.useCallback(params => {
61
59
  const dimensions = (0, _dimensions.gridDimensionsSelector)(apiRef.current.state);
@@ -109,20 +107,18 @@ const useGridScroll = (apiRef, props) => {
109
107
  return false;
110
108
  }, [logger, apiRef, virtualScrollerRef, props.pagination, visibleSortedRows, props.unstable_listView]);
111
109
  const scroll = React.useCallback(params => {
112
- if (virtualScrollerRef.current && virtualScrollbarHorizontalRef.current && params.left !== undefined && colRef.current) {
110
+ if (virtualScrollerRef.current && params.left !== undefined && colRef.current) {
113
111
  const direction = isRtl ? -1 : 1;
114
112
  colRef.current.scrollLeft = params.left;
115
113
  virtualScrollerRef.current.scrollLeft = direction * params.left;
116
- virtualScrollbarHorizontalRef.current.scrollLeft = direction * params.left;
117
114
  logger.debug(`Scrolling left: ${params.left}`);
118
115
  }
119
- if (virtualScrollerRef.current && virtualScrollbarVerticalRef.current && params.top !== undefined) {
116
+ if (virtualScrollerRef.current && params.top !== undefined) {
120
117
  virtualScrollerRef.current.scrollTop = params.top;
121
- virtualScrollbarVerticalRef.current.scrollTop = params.top;
122
118
  logger.debug(`Scrolling top: ${params.top}`);
123
119
  }
124
120
  logger.debug(`Scrolling, updating container, and viewport`);
125
- }, [virtualScrollerRef, virtualScrollbarHorizontalRef, virtualScrollbarVerticalRef, isRtl, colRef, logger]);
121
+ }, [virtualScrollerRef, isRtl, colRef, logger]);
126
122
  const getScrollPosition = React.useCallback(() => {
127
123
  if (!virtualScrollerRef?.current) {
128
124
  return {
@@ -389,10 +389,11 @@ const useGridVirtualScroller = () => {
389
389
  const contentSize = React.useMemo(() => {
390
390
  const size = {
391
391
  width: needsHorizontalScrollbar ? columnsTotalWidth : 'auto',
392
- height: contentHeight
392
+ flexBasis: contentHeight,
393
+ flexShrink: 0
393
394
  };
394
395
  if (rootProps.autoHeight && currentPage.rows.length === 0) {
395
- size.height = (0, _gridRowsUtils.getMinimalContentHeight)(apiRef); // Give room to show the overlay when there no rows.
396
+ size.flexBasis = (0, _gridRowsUtils.getMinimalContentHeight)(apiRef); // Give room to show the overlay when there no rows.
396
397
  }
397
398
  return size;
398
399
  }, [apiRef, columnsTotalWidth, contentHeight, needsHorizontalScrollbar, rootProps.autoHeight, currentPage.rows.length]);
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.21.0
2
+ * @mui/x-data-grid v7.22.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GRID_TREE_DATA_GROUPING_FIELD = exports.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD = exports.GRID_DETAIL_PANEL_TOGGLE_FIELD = void 0;
7
+ const GRID_TREE_DATA_GROUPING_FIELD = exports.GRID_TREE_DATA_GROUPING_FIELD = '__tree_data_group__';
8
+ const GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD = exports.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD = '__row_group_by_columns_group__';
9
+ const GRID_DETAIL_PANEL_TOGGLE_FIELD = exports.GRID_DETAIL_PANEL_TOGGLE_FIELD = '__detail_panel_toggle__';
@@ -879,4 +879,16 @@ Object.keys(_utils5).forEach(function (key) {
879
879
  return _utils5[key];
880
880
  }
881
881
  });
882
+ });
883
+ var _constants = require("./constants");
884
+ Object.keys(_constants).forEach(function (key) {
885
+ if (key === "default" || key === "__esModule") return;
886
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
887
+ if (key in exports && exports[key] === _constants[key]) return;
888
+ Object.defineProperty(exports, key, {
889
+ enumerable: true,
890
+ get: function () {
891
+ return _constants[key];
892
+ }
893
+ });
882
894
  });
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isGroupingColumn = exports.getRowGroupingCriteriaFromGroupingField = void 0;
7
+ var _constants = require("../constants");
8
+ const getRowGroupingCriteriaFromGroupingField = groupingColDefField => {
9
+ const match = groupingColDefField.match(/^__row_group_by_columns_group_(.*)__$/);
10
+ if (!match) {
11
+ return null;
12
+ }
13
+ return match[1];
14
+ };
15
+ exports.getRowGroupingCriteriaFromGroupingField = getRowGroupingCriteriaFromGroupingField;
16
+ const isGroupingColumn = field => field === _constants.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD || getRowGroupingCriteriaFromGroupingField(field) !== null;
17
+ exports.isGroupingColumn = isGroupingColumn;
@@ -35,4 +35,15 @@ Object.keys(_propValidation).forEach(function (key) {
35
35
  return _propValidation[key];
36
36
  }
37
37
  });
38
+ });
39
+ var _gridRowGroupingUtils = require("./gridRowGroupingUtils");
40
+ Object.keys(_gridRowGroupingUtils).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _gridRowGroupingUtils[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _gridRowGroupingUtils[key];
47
+ }
48
+ });
38
49
  });
@@ -9,7 +9,9 @@ exports.default = void 0;
9
9
  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
+ var _Badge = _interopRequireDefault(require("@mui/joy/Badge"));
12
13
  var _Checkbox = _interopRequireDefault(require("@mui/joy/Checkbox"));
14
+ var _Divider = _interopRequireDefault(require("@mui/joy/Divider"));
13
15
  var _Input = _interopRequireDefault(require("@mui/joy/Input"));
14
16
  var _FormControl = _interopRequireDefault(require("@mui/joy/FormControl"));
15
17
  var _FormLabel = _interopRequireDefault(require("@mui/joy/FormLabel"));
@@ -28,13 +30,14 @@ var _useGridRootProps = require("../hooks/utils/useGridRootProps");
28
30
  var _hooks = require("../hooks");
29
31
  var _GridOverlay = require("../components/containers/GridOverlay");
30
32
  var _jsxRuntime = require("react/jsx-runtime");
31
- const _excluded = ["touchRippleRef", "inputProps", "onChange", "color", "size", "checked", "sx", "value", "inputRef"],
32
- _excluded2 = ["onChange", "label", "placeholder", "value", "inputRef", "type", "size", "variant"],
33
- _excluded3 = ["startIcon", "color", "endIcon", "size", "sx", "variant"],
34
- _excluded4 = ["color", "size", "sx", "touchRippleRef"],
35
- _excluded5 = ["open", "onOpen", "value", "onChange", "size", "color", "variant", "inputProps", "MenuProps", "inputRef", "error", "native", "fullWidth", "labelId"],
36
- _excluded6 = ["native"],
37
- _excluded7 = ["shrink", "variant", "sx"];
33
+ const _excluded = ["slotProps", "variant", "color", "sx"],
34
+ _excluded2 = ["touchRippleRef", "inputProps", "onChange", "color", "size", "checked", "sx", "value", "inputRef"],
35
+ _excluded3 = ["onChange", "label", "placeholder", "value", "inputRef", "type", "size", "variant"],
36
+ _excluded4 = ["startIcon", "color", "endIcon", "size", "sx", "variant"],
37
+ _excluded5 = ["color", "size", "sx", "touchRippleRef"],
38
+ _excluded6 = ["open", "onOpen", "value", "onChange", "size", "color", "variant", "inputProps", "MenuProps", "inputRef", "error", "native", "fullWidth", "labelId"],
39
+ _excluded7 = ["native"],
40
+ _excluded8 = ["shrink", "variant", "sx"];
38
41
  function convertColor(color) {
39
42
  if (color === 'secondary') {
40
43
  return 'primary';
@@ -66,14 +69,27 @@ function convertVariant(variant, defaultVariant = 'plain') {
66
69
  filled: 'soft'
67
70
  }[variant] || defaultVariant;
68
71
  }
69
- const Checkbox = /*#__PURE__*/React.forwardRef((_ref, ref) => {
72
+ const Badge = /*#__PURE__*/React.forwardRef((_ref, ref) => {
73
+ let {
74
+ color,
75
+ sx
76
+ } = _ref,
77
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
78
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Badge.default, (0, _extends2.default)({}, props, {
79
+ color: convertColor(color),
80
+ variant: "plain",
81
+ sx: sx,
82
+ ref: ref
83
+ }));
84
+ });
85
+ const Checkbox = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
70
86
  let {
71
87
  inputProps,
72
88
  onChange,
73
89
  checked,
74
90
  inputRef
75
- } = _ref,
76
- props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
91
+ } = _ref2,
92
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref2, _excluded2);
77
93
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.default, (0, _extends2.default)({}, props, {
78
94
  slotProps: {
79
95
  input: (0, _extends2.default)({}, inputProps, {
@@ -85,7 +101,7 @@ const Checkbox = /*#__PURE__*/React.forwardRef((_ref, ref) => {
85
101
  onChange: onChange
86
102
  }));
87
103
  });
88
- const TextField = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
104
+ const TextField = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
89
105
  let {
90
106
  onChange,
91
107
  label,
@@ -95,8 +111,8 @@ const TextField = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
95
111
  type,
96
112
  size,
97
113
  variant
98
- } = _ref2,
99
- props = (0, _objectWithoutPropertiesLoose2.default)(_ref2, _excluded2);
114
+ } = _ref3,
115
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref3, _excluded3);
100
116
  const rootRef = (0, _utils.unstable_useForkRef)(ref, props.InputProps?.ref);
101
117
  const inputForkRef = (0, _utils.unstable_useForkRef)(inputRef, props?.inputProps?.ref);
102
118
  const {
@@ -124,7 +140,7 @@ const TextField = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
124
140
  })]
125
141
  });
126
142
  });
127
- const Button = /*#__PURE__*/React.forwardRef(function Button(_ref3, ref) {
143
+ const Button = /*#__PURE__*/React.forwardRef(function Button(_ref4, ref) {
128
144
  let {
129
145
  startIcon,
130
146
  color,
@@ -132,8 +148,8 @@ const Button = /*#__PURE__*/React.forwardRef(function Button(_ref3, ref) {
132
148
  size,
133
149
  sx,
134
150
  variant
135
- } = _ref3,
136
- props = (0, _objectWithoutPropertiesLoose2.default)(_ref3, _excluded3);
151
+ } = _ref4,
152
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref4, _excluded4);
137
153
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, (0, _extends2.default)({}, props, {
138
154
  size: convertSize(size),
139
155
  color: convertColor(color),
@@ -144,13 +160,13 @@ const Button = /*#__PURE__*/React.forwardRef(function Button(_ref3, ref) {
144
160
  sx: sx
145
161
  }));
146
162
  });
147
- const IconButton = /*#__PURE__*/React.forwardRef(function IconButton(_ref4, ref) {
163
+ const IconButton = /*#__PURE__*/React.forwardRef(function IconButton(_ref5, ref) {
148
164
  let {
149
165
  color,
150
166
  size,
151
167
  sx
152
- } = _ref4,
153
- props = (0, _objectWithoutPropertiesLoose2.default)(_ref4, _excluded4);
168
+ } = _ref5,
169
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref5, _excluded5);
154
170
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, (0, _extends2.default)({}, props, {
155
171
  size: convertSize(size),
156
172
  color: convertColor(color) ?? 'neutral',
@@ -159,7 +175,7 @@ const IconButton = /*#__PURE__*/React.forwardRef(function IconButton(_ref4, ref)
159
175
  sx: sx
160
176
  }));
161
177
  });
162
- const Select = /*#__PURE__*/React.forwardRef((_ref5, ref) => {
178
+ const Select = /*#__PURE__*/React.forwardRef((_ref6, ref) => {
163
179
  let {
164
180
  open,
165
181
  onOpen,
@@ -171,8 +187,8 @@ const Select = /*#__PURE__*/React.forwardRef((_ref5, ref) => {
171
187
  MenuProps,
172
188
  inputRef,
173
189
  labelId
174
- } = _ref5,
175
- props = (0, _objectWithoutPropertiesLoose2.default)(_ref5, _excluded5);
190
+ } = _ref6,
191
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref6, _excluded6);
176
192
  const handleChange = (event, newValue) => {
177
193
  if (event && onChange) {
178
194
  // Same as in https://github.com/mui/material-ui/blob/e5558282a8f36856aef1299f3a36f3235e92e770/packages/mui-material/src/Select/SelectInput.js#L288-L300
@@ -223,17 +239,17 @@ const Select = /*#__PURE__*/React.forwardRef((_ref5, ref) => {
223
239
  }
224
240
  }));
225
241
  });
226
- const Option = /*#__PURE__*/React.forwardRef((_ref6, ref) => {
227
- let props = (0, _objectWithoutPropertiesLoose2.default)(_ref6, _excluded6);
242
+ const Option = /*#__PURE__*/React.forwardRef((_ref7, ref) => {
243
+ let props = (0, _objectWithoutPropertiesLoose2.default)(_ref7, _excluded7);
228
244
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Option.default, (0, _extends2.default)({}, props, {
229
245
  ref: ref
230
246
  }));
231
247
  });
232
- const InputLabel = /*#__PURE__*/React.forwardRef((_ref7, ref) => {
248
+ const InputLabel = /*#__PURE__*/React.forwardRef((_ref8, ref) => {
233
249
  let {
234
250
  sx
235
- } = _ref7,
236
- props = (0, _objectWithoutPropertiesLoose2.default)(_ref7, _excluded7);
251
+ } = _ref8,
252
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref8, _excluded8);
237
253
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormLabel.default, (0, _extends2.default)({}, props, {
238
254
  ref: ref,
239
255
  sx: sx
@@ -359,7 +375,9 @@ const LoadingOverlay = /*#__PURE__*/React.forwardRef((props, ref) => {
359
375
  }));
360
376
  });
361
377
  const joySlots = (0, _extends2.default)({}, _icons.default, {
378
+ baseBadge: Badge,
362
379
  baseCheckbox: Checkbox,
380
+ baseDivider: _Divider.default,
363
381
  baseTextField: TextField,
364
382
  baseButton: Button,
365
383
  baseIconButton: IconButton,
@@ -39,8 +39,7 @@ const daDKGrid = {
39
39
  columnsManagementSearchTitle: 'Søg',
40
40
  columnsManagementNoColumns: 'Ingen søjler',
41
41
  columnsManagementShowHideAllText: 'Vis/Skjul Alle',
42
- // columnsManagementReset: 'Reset',
43
-
42
+ columnsManagementReset: 'Nulstil',
44
43
  // Filter panel text
45
44
  filterPanelAddFilter: 'Tilføj filter',
46
45
  filterPanelRemoveAll: 'Fjern alle',
@@ -54,9 +53,9 @@ const daDKGrid = {
54
53
  filterPanelInputPlaceholder: 'Filterværdi',
55
54
  // Filter operators text
56
55
  filterOperatorContains: 'indeholder',
57
- // filterOperatorDoesNotContain: 'does not contain',
56
+ filterOperatorDoesNotContain: 'indeholder ikke',
58
57
  filterOperatorEquals: 'lig med',
59
- // filterOperatorDoesNotEqual: 'does not equal',
58
+ filterOperatorDoesNotEqual: 'ikke lig med',
60
59
  filterOperatorStartsWith: 'begynder med',
61
60
  filterOperatorEndsWith: 'ender med',
62
61
  filterOperatorIs: 'er lig med',
@@ -76,9 +75,9 @@ const daDKGrid = {
76
75
  'filterOperator<=': '<=',
77
76
  // Header filter operators text
78
77
  headerFilterOperatorContains: 'Indeholder',
79
- // headerFilterOperatorDoesNotContain: 'Does not contain',
78
+ headerFilterOperatorDoesNotContain: 'Indeholder ikke',
80
79
  headerFilterOperatorEquals: 'Lig med',
81
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
80
+ headerFilterOperatorDoesNotEqual: 'Ikke lig med',
82
81
  headerFilterOperatorStartsWith: 'Begynder med',
83
82
  headerFilterOperatorEndsWith: 'Ender med',
84
83
  headerFilterOperatorIs: 'Er lig med',