@mui/x-data-grid 7.1.0 → 7.2.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 (103) hide show
  1. package/CHANGELOG.md +261 -4
  2. package/README.md +1 -1
  3. package/components/GridRow.js +3 -1
  4. package/components/cell/GridCell.d.ts +1 -0
  5. package/components/cell/GridCell.js +4 -3
  6. package/components/columnHeaders/GridColumnGroupHeader.d.ts +1 -0
  7. package/components/columnHeaders/GridColumnGroupHeader.js +3 -2
  8. package/components/columnHeaders/GridColumnHeaderItem.d.ts +1 -0
  9. package/components/columnHeaders/GridColumnHeaderItem.js +4 -2
  10. package/components/columnHeaders/GridColumnHeaderSeparator.js +1 -1
  11. package/components/containers/GridRootStyles.js +5 -3
  12. package/components/panel/filterPanel/GridFilterInputDate.js +5 -1
  13. package/components/virtualization/GridMainContainer.js +8 -1
  14. package/components/virtualization/GridTopContainer.js +1 -0
  15. package/constants/gridClasses.d.ts +5 -0
  16. package/constants/gridClasses.js +1 -1
  17. package/hooks/core/useGridInitialization.js +1 -1
  18. package/hooks/core/useGridStateInitialization.d.ts +1 -2
  19. package/hooks/core/useGridStateInitialization.js +6 -10
  20. package/hooks/features/columnHeaders/useGridColumnHeaders.js +7 -3
  21. package/hooks/features/editing/useGridCellEditing.js +3 -1
  22. package/hooks/features/editing/useGridRowEditing.js +3 -1
  23. package/hooks/features/export/serializers/csvSerializer.js +6 -5
  24. package/hooks/features/headerFiltering/useGridHeaderFiltering.d.ts +2 -2
  25. package/hooks/features/headerFiltering/useGridHeaderFiltering.js +4 -7
  26. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.d.ts +2 -2
  27. package/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +1 -3
  28. package/hooks/features/virtualization/useGridVirtualScroller.js +17 -6
  29. package/index.js +1 -1
  30. package/internals/index.d.ts +1 -1
  31. package/internals/utils/propValidation.d.ts +1 -0
  32. package/internals/utils/propValidation.js +9 -4
  33. package/locales/deDE.js +3 -4
  34. package/locales/esES.js +3 -4
  35. package/locales/faIR.js +3 -4
  36. package/locales/frFR.js +5 -6
  37. package/locales/ptBR.js +3 -4
  38. package/locales/svSE.js +3 -4
  39. package/models/api/gridCallbackDetails.d.ts +5 -0
  40. package/models/gridExport.d.ts +2 -2
  41. package/models/gridFilterModel.d.ts +3 -3
  42. package/models/params/gridCellParams.d.ts +0 -22
  43. package/models/props/DataGridProps.d.ts +19 -0
  44. package/modern/components/GridRow.js +3 -1
  45. package/modern/components/cell/GridCell.js +4 -3
  46. package/modern/components/columnHeaders/GridColumnGroupHeader.js +3 -2
  47. package/modern/components/columnHeaders/GridColumnHeaderItem.js +4 -2
  48. package/modern/components/columnHeaders/GridColumnHeaderSeparator.js +1 -1
  49. package/modern/components/containers/GridRootStyles.js +5 -3
  50. package/modern/components/panel/filterPanel/GridFilterInputDate.js +5 -1
  51. package/modern/components/virtualization/GridMainContainer.js +8 -1
  52. package/modern/components/virtualization/GridTopContainer.js +1 -0
  53. package/modern/constants/gridClasses.js +1 -1
  54. package/modern/hooks/core/useGridInitialization.js +1 -1
  55. package/modern/hooks/core/useGridStateInitialization.js +6 -10
  56. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +7 -3
  57. package/modern/hooks/features/editing/useGridCellEditing.js +3 -1
  58. package/modern/hooks/features/editing/useGridRowEditing.js +3 -1
  59. package/modern/hooks/features/export/serializers/csvSerializer.js +6 -5
  60. package/modern/hooks/features/headerFiltering/useGridHeaderFiltering.js +4 -7
  61. package/modern/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +1 -3
  62. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +17 -6
  63. package/modern/index.js +1 -1
  64. package/modern/internals/utils/propValidation.js +9 -4
  65. package/modern/locales/deDE.js +3 -4
  66. package/modern/locales/esES.js +3 -4
  67. package/modern/locales/faIR.js +3 -4
  68. package/modern/locales/frFR.js +5 -6
  69. package/modern/locales/ptBR.js +3 -4
  70. package/modern/locales/svSE.js +3 -4
  71. package/modern/utils/cellBorderUtils.js +15 -2
  72. package/node/components/GridRow.js +3 -1
  73. package/node/components/cell/GridCell.js +4 -3
  74. package/node/components/columnHeaders/GridColumnGroupHeader.js +3 -2
  75. package/node/components/columnHeaders/GridColumnHeaderItem.js +4 -2
  76. package/node/components/columnHeaders/GridColumnHeaderSeparator.js +1 -1
  77. package/node/components/containers/GridRootStyles.js +5 -3
  78. package/node/components/panel/filterPanel/GridFilterInputDate.js +5 -1
  79. package/node/components/virtualization/GridMainContainer.js +8 -1
  80. package/node/components/virtualization/GridTopContainer.js +1 -0
  81. package/node/constants/gridClasses.js +1 -1
  82. package/node/hooks/core/useGridInitialization.js +1 -1
  83. package/node/hooks/core/useGridStateInitialization.js +6 -10
  84. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +7 -3
  85. package/node/hooks/features/editing/useGridCellEditing.js +3 -1
  86. package/node/hooks/features/editing/useGridRowEditing.js +3 -1
  87. package/node/hooks/features/export/serializers/csvSerializer.js +6 -5
  88. package/node/hooks/features/headerFiltering/useGridHeaderFiltering.js +4 -7
  89. package/node/hooks/features/keyboardNavigation/useGridKeyboardNavigation.js +1 -3
  90. package/node/hooks/features/virtualization/useGridVirtualScroller.js +17 -6
  91. package/node/index.js +1 -1
  92. package/node/internals/utils/propValidation.js +12 -6
  93. package/node/locales/deDE.js +3 -4
  94. package/node/locales/esES.js +3 -4
  95. package/node/locales/faIR.js +3 -4
  96. package/node/locales/frFR.js +5 -6
  97. package/node/locales/ptBR.js +3 -4
  98. package/node/locales/svSE.js +3 -4
  99. package/node/utils/cellBorderUtils.js +15 -2
  100. package/package.json +2 -2
  101. package/themeAugmentation/overrides.d.ts +6 -0
  102. package/utils/cellBorderUtils.d.ts +1 -1
  103. package/utils/cellBorderUtils.js +15 -2
@@ -62,7 +62,8 @@ function GridColumnHeaderItem(props) {
62
62
  style,
63
63
  pinnedPosition,
64
64
  indexInSection,
65
- sectionLength
65
+ sectionLength,
66
+ gridHasFiller
66
67
  } = props;
67
68
  const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
68
69
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
@@ -77,7 +78,7 @@ function GridColumnHeaderItem(props) {
77
78
  headerComponent = colDef.renderHeader(apiRef.current.getColumnHeaderParams(colDef.field));
78
79
  }
79
80
  const showLeftBorder = (0, _cellBorderUtils.shouldCellShowLeftBorder)(pinnedPosition, indexInSection);
80
- const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder);
81
+ const showRightBorder = (0, _cellBorderUtils.shouldCellShowRightBorder)(pinnedPosition, indexInSection, sectionLength, rootProps.showCellVerticalBorder, gridHasFiller);
81
82
  const ownerState = (0, _extends2.default)({}, props, {
82
83
  classes: rootProps.classes,
83
84
  showRightBorder,
@@ -209,6 +210,7 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
209
210
  columnMenuOpen: _propTypes.default.bool.isRequired,
210
211
  disableReorder: _propTypes.default.bool,
211
212
  filterItemsCounter: _propTypes.default.number,
213
+ gridHasFiller: _propTypes.default.bool.isRequired,
212
214
  hasFocus: _propTypes.default.bool,
213
215
  headerHeight: _propTypes.default.number.isRequired,
214
216
  indexInSection: _propTypes.default.number.isRequired,
@@ -57,7 +57,7 @@ function GridColumnHeaderSeparatorRaw(props) {
57
57
  className: classes.root,
58
58
  style: {
59
59
  minHeight: height,
60
- opacity: rootProps.showColumnVerticalBorder ? 0 : 1
60
+ opacity: rootProps.showColumnVerticalBorder ? 1 : 0
61
61
  }
62
62
  }, other, {
63
63
  onClick: stopClick,
@@ -158,8 +158,8 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
158
158
  }) => {
159
159
  const borderColor = getBorderColor(t);
160
160
  const radius = t.shape.borderRadius;
161
- const containerBackground = t.vars ? t.vars.palette.background.default : t.palette.background.default;
162
- const pinnedBackground = containerBackground;
161
+ const containerBackground = t.vars ? t.vars.palette.background.default : t.mixins.MuiDataGrid?.containerBackground ?? t.palette.background.default;
162
+ const pinnedBackground = t.mixins.MuiDataGrid?.pinnedBackground ?? containerBackground;
163
163
  const overlayBackground = t.vars ? `rgba(${t.vars.palette.background.defaultChannel} / ${t.vars.palette.action.disabledOpacity})` : (0, _styles.alpha)(t.palette.background.default, t.palette.action.disabledOpacity);
164
164
  const hoverOpacity = (t.vars || t).palette.action.hoverOpacity;
165
165
  const hoverColor = (t.vars || t).palette.action.hover;
@@ -457,7 +457,6 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
457
457
  userSelect: 'none'
458
458
  },
459
459
  [`& .${_gridClasses.gridClasses['row--dynamicHeight']} > .${_gridClasses.gridClasses.cell}`]: {
460
- overflow: 'initial',
461
460
  whiteSpace: 'initial',
462
461
  lineHeight: 'inherit'
463
462
  },
@@ -639,6 +638,9 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
639
638
  },
640
639
  [`& .${_gridClasses.gridClasses.filler}`]: {
641
640
  flex: 1
641
+ },
642
+ [`& .${_gridClasses.gridClasses['filler--borderTop']}`]: {
643
+ borderTop: '1px solid var(--DataGrid-rowBorderColor)'
642
644
  }
643
645
  });
644
646
  return gridStyle;
@@ -21,6 +21,9 @@ function convertFilterItemValueToInputValue(itemValue, inputType) {
21
21
  return '';
22
22
  }
23
23
  const dateCopy = new Date(itemValue);
24
+ if (Number.isNaN(dateCopy.getTime())) {
25
+ return '';
26
+ }
24
27
  // The date picker expects the date to be in the local timezone.
25
28
  // But .toISOString() converts it to UTC with zero offset.
26
29
  // So we need to subtract the timezone offset.
@@ -57,8 +60,9 @@ function GridFilterInputDate(props) {
57
60
  setFilterValueState(value);
58
61
  setIsApplying(true);
59
62
  filterTimeout.start(rootProps.filterDebounceMs, () => {
63
+ const date = new Date(value);
60
64
  applyValue((0, _extends2.default)({}, item, {
61
- value: new Date(value)
65
+ value: Number.isNaN(date.getTime()) ? undefined : date
62
66
  }));
63
67
  setIsApplying(false);
64
68
  });
@@ -8,19 +8,26 @@ exports.GridMainContainer = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _system = require("@mui/system");
11
+ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
11
12
  var _useGridAriaAttributes = require("../../hooks/utils/useGridAriaAttributes");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
- const Element = (0, _system.styled)('div')({
16
+ const Element = (0, _system.styled)('div', {
17
+ name: 'MuiDataGrid',
18
+ slot: 'Main',
19
+ overridesResolver: (props, styles) => styles.main
20
+ })({
16
21
  flexGrow: 1,
17
22
  position: 'relative',
18
23
  overflow: 'hidden'
19
24
  });
20
25
  const GridMainContainer = exports.GridMainContainer = /*#__PURE__*/React.forwardRef((props, ref) => {
21
26
  const ariaAttributes = (0, _useGridAriaAttributes.useGridAriaAttributes)();
27
+ const rootProps = (0, _useGridRootProps.useGridRootProps)();
22
28
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Element, (0, _extends2.default)({
23
29
  ref: ref,
30
+ ownerState: rootProps,
24
31
  className: props.className,
25
32
  tabIndex: -1
26
33
  }, ariaAttributes, {
@@ -30,6 +30,7 @@ const Element = (0, _system.styled)('div')({
30
30
  zIndex: 5,
31
31
  bottom: 0,
32
32
  left: 0,
33
+ right: 0,
33
34
  height: 1,
34
35
  width: 'var(--DataGrid-rowWidth)',
35
36
  backgroundColor: 'var(--DataGrid-rowBorderColor)'
@@ -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--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader', '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--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', '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--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader', '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--borderTop', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
@@ -20,7 +20,7 @@ const useGridInitialization = (inputApiRef, props) => {
20
20
  (0, _useGridRefs.useGridRefs)(privateApiRef);
21
21
  (0, _useGridTheme.useGridTheme)(privateApiRef);
22
22
  (0, _useGridLoggerFactory.useGridLoggerFactory)(privateApiRef, props);
23
- (0, _useGridStateInitialization.useGridStateInitialization)(privateApiRef, props);
23
+ (0, _useGridStateInitialization.useGridStateInitialization)(privateApiRef);
24
24
  (0, _pipeProcessing.useGridPipeProcessing)(privateApiRef);
25
25
  (0, _strategyProcessing.useGridStrategyProcessing)(privateApiRef);
26
26
  (0, _useGridLocaleText.useGridLocaleText)(privateApiRef, props);
@@ -7,12 +7,11 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.useGridStateInitialization = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
- var _useGridApiEventHandler = require("../utils/useGridApiEventHandler");
11
10
  var _utils = require("../utils");
12
11
  var _utils2 = require("../../utils/utils");
13
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
- const useGridStateInitialization = (apiRef, props) => {
14
+ const useGridStateInitialization = apiRef => {
16
15
  const controlStateMapRef = React.useRef({});
17
16
  const [, rawForceUpdate] = React.useState();
18
17
  const registerControlState = React.useCallback(controlStateItem => {
@@ -71,13 +70,10 @@ const useGridStateInitialization = (apiRef, props) => {
71
70
  const controlState = controlStateMapRef.current[stateId];
72
71
  const model = controlState.stateSelector(newState, apiRef.current.instanceId);
73
72
  if (controlState.propOnChange && hasPropChanged) {
74
- const details = props.signature === _useGridApiEventHandler.GridSignature.DataGridPro ? {
75
- api: apiRef.current,
76
- reason
77
- } : {
78
- reason
79
- };
80
- controlState.propOnChange(model, details);
73
+ controlState.propOnChange(model, {
74
+ reason,
75
+ api: apiRef.current
76
+ });
81
77
  }
82
78
  if (!ignoreSetState) {
83
79
  apiRef.current.publishEvent(controlState.changeEvent, model, {
@@ -86,7 +82,7 @@ const useGridStateInitialization = (apiRef, props) => {
86
82
  }
87
83
  }
88
84
  return !ignoreSetState;
89
- }, [apiRef, props.signature]);
85
+ }, [apiRef]);
90
86
  const updateControlState = React.useCallback((key, state, reason) => {
91
87
  return apiRef.current.setState(previousState => {
92
88
  return (0, _extends2.default)({}, previousState, {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.useGridColumnHeaders = exports.GridColumnHeaderRow = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
+ var _clsx = _interopRequireDefault(require("clsx"));
10
11
  var _styles = require("@mui/material/styles");
11
12
  var _utils = require("../../utils");
12
13
  var _useGridRootProps = require("../../utils/useGridRootProps");
@@ -59,6 +60,7 @@ const useGridColumnHeaders = props => {
59
60
  const renderContext = (0, _utils.useGridSelector)(apiRef, _virtualization.gridRenderContextColumnsSelector);
60
61
  const pinnedColumns = (0, _utils.useGridSelector)(apiRef, _columns.gridVisiblePinnedColumnDefinitionsSelector);
61
62
  const offsetLeft = (0, _useGridVirtualScroller.computeOffsetLeft)(columnPositions, renderContext, theme.direction, pinnedColumns.left.length);
63
+ const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
62
64
  React.useEffect(() => {
63
65
  apiRef.current.columnHeadersContainerRef.current.scrollLeft = 0;
64
66
  }, [apiRef]);
@@ -112,7 +114,7 @@ const useGridColumnHeaders = props => {
112
114
  }
113
115
  }), children, isNotPinned && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
114
116
  role: "presentation",
115
- className: _gridClasses.gridClasses.filler
117
+ className: (0, _clsx.default)(_gridClasses.gridClasses.filler, borderTop && _gridClasses.gridClasses['filler--borderTop'])
116
118
  }), hasScrollbarFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollbarFillerCell.GridScrollbarFillerCell, {
117
119
  header: true,
118
120
  borderTop: borderTop,
@@ -173,7 +175,8 @@ const useGridColumnHeaders = props => {
173
175
  pinnedPosition: pinnedPosition,
174
176
  style: style,
175
177
  indexInSection: i,
176
- sectionLength: renderedColumns.length
178
+ sectionLength: renderedColumns.length,
179
+ gridHasFiller: gridHasFiller
177
180
  }, other), colDef.field));
178
181
  }
179
182
  return getFillers(params, columns, 0);
@@ -283,7 +286,8 @@ const useGridColumnHeaders = props => {
283
286
  pinnedPosition: pinnedPosition,
284
287
  style: style,
285
288
  indexInSection: indexInSection,
286
- sectionLength: renderedColumns.length
289
+ sectionLength: renderedColumns.length,
290
+ gridHasFiller: gridHasFiller
287
291
  }, index);
288
292
  });
289
293
  return getFillers(params, children, leftOverflow);
@@ -177,7 +177,9 @@ const useGridCellEditing = (apiRef, props) => {
177
177
  const updateCellModesModel = (0, _utils.unstable_useEventCallback)(newModel => {
178
178
  const isNewModelDifferentFromProp = newModel !== props.cellModesModel;
179
179
  if (onCellModesModelChange && isNewModelDifferentFromProp) {
180
- onCellModesModelChange(newModel, {});
180
+ onCellModesModelChange(newModel, {
181
+ api: apiRef.current
182
+ });
181
183
  }
182
184
  if (props.cellModesModel && isNewModelDifferentFromProp) {
183
185
  return; // The prop always win
@@ -251,7 +251,9 @@ const useGridRowEditing = (apiRef, props) => {
251
251
  const updateRowModesModel = (0, _utils.unstable_useEventCallback)(newModel => {
252
252
  const isNewModelDifferentFromProp = newModel !== props.rowModesModel;
253
253
  if (onRowModesModelChange && isNewModelDifferentFromProp) {
254
- onRowModesModelChange(newModel, {});
254
+ onRowModesModelChange(newModel, {
255
+ api: apiRef.current
256
+ });
255
257
  }
256
258
  if (props.rowModesModel && isNewModelDifferentFromProp) {
257
259
  return; // The prop always win
@@ -9,12 +9,13 @@ var _colDef = require("../../../../colDef");
9
9
  var _warning = require("../../../../utils/warning");
10
10
  function sanitizeCellValue(value, delimiterCharacter, shouldAppendQuotes) {
11
11
  if (typeof value === 'string') {
12
- // Make sure value containing delimiter or line break won't be split into multiple rows
13
- if ([delimiterCharacter, '\n', '\r', '"'].some(delimiter => value.includes(delimiter))) {
14
- if (shouldAppendQuotes) {
15
- return `"${value.replace(/"/g, '""')}"`;
12
+ if (shouldAppendQuotes) {
13
+ const escapedValue = value.replace(/"/g, '""');
14
+ // Make sure value containing delimiter or line break won't be split into multiple rows
15
+ if ([delimiterCharacter, '\n', '\r', '"'].some(delimiter => value.includes(delimiter))) {
16
+ return `"${escapedValue}"`;
16
17
  }
17
- return `${value.replace(/"/g, '""')}`;
18
+ return escapedValue;
18
19
  }
19
20
  return value;
20
21
  }
@@ -13,7 +13,6 @@ var _gridColumnsSelector = require("../columns/gridColumnsSelector");
13
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
15
  const headerFilteringStateInitializer = (state, props) => (0, _extends2.default)({}, state, {
16
- // @ts-expect-error Access `Pro` prop in MIT
17
16
  headerFiltering: {
18
17
  enabled: props.headerFilters ?? false,
19
18
  editing: null,
@@ -23,8 +22,6 @@ const headerFilteringStateInitializer = (state, props) => (0, _extends2.default)
23
22
  exports.headerFilteringStateInitializer = headerFilteringStateInitializer;
24
23
  const useGridHeaderFiltering = (apiRef, props) => {
25
24
  const logger = (0, _utils.useGridLogger)(apiRef, 'useGridHeaderFiltering');
26
- // @ts-expect-error Access `Pro` prop in MIT
27
- const isHeaderFilteringEnabled = props.headerFilters ?? false;
28
25
  const setHeaderFilterState = React.useCallback(headerFilterState => {
29
26
  apiRef.current.setState(state => {
30
27
  // Safety check to avoid MIT users from using it
@@ -34,14 +31,14 @@ const useGridHeaderFiltering = (apiRef, props) => {
34
31
  }
35
32
  return (0, _extends2.default)({}, state, {
36
33
  headerFiltering: {
37
- enabled: isHeaderFilteringEnabled ?? false,
34
+ enabled: props.headerFilters ?? false,
38
35
  editing: headerFilterState.editing ?? null,
39
36
  menuOpen: headerFilterState.menuOpen ?? null
40
37
  }
41
38
  });
42
39
  });
43
40
  apiRef.current.forceUpdate();
44
- }, [apiRef, props.signature, isHeaderFilteringEnabled]);
41
+ }, [apiRef, props.signature, props.headerFilters]);
45
42
  const startHeaderFilterEditMode = React.useCallback(field => {
46
43
  logger.debug(`Starting edit mode on header filter for field: ${field}`);
47
44
  apiRef.current.setHeaderFilterState({
@@ -112,9 +109,9 @@ const useGridHeaderFiltering = (apiRef, props) => {
112
109
  isFirstRender.current = false;
113
110
  } else {
114
111
  apiRef.current.setHeaderFilterState({
115
- enabled: isHeaderFilteringEnabled
112
+ enabled: props.headerFilters ?? false
116
113
  });
117
114
  }
118
- }, [apiRef, isHeaderFilteringEnabled]);
115
+ }, [apiRef, props.headerFilters]);
119
116
  };
120
117
  exports.useGridHeaderFiltering = useGridHeaderFiltering;
@@ -77,9 +77,7 @@ const useGridKeyboardNavigation = (apiRef, props) => {
77
77
  const initialCurrentPageRows = (0, _useGridVisibleRows.useGridVisibleRows)(apiRef, props).rows;
78
78
  const theme = (0, _styles.useTheme)();
79
79
  const currentPageRows = React.useMemo(() => enrichPageRowsWithPinnedRows(apiRef, initialCurrentPageRows), [apiRef, initialCurrentPageRows]);
80
- const headerFilteringEnabled =
81
- // @ts-expect-error // TODO move relevant code to the `DataGridPro`
82
- props.signature !== 'DataGrid' && props.headerFilters;
80
+ const headerFilteringEnabled = props.signature !== 'DataGrid' && props.headerFilters;
83
81
 
84
82
  /**
85
83
  * @param {number} colIndex Index of the column to focus
@@ -50,9 +50,9 @@ const EMPTY_SCROLL_POSITION = {
50
50
  left: 0
51
51
  };
52
52
  const EMPTY_DETAIL_PANELS = exports.EMPTY_DETAIL_PANELS = Object.freeze(new Map());
53
- const createScrollCache = (rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer) => ({
53
+ const createScrollCache = (mode, rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer) => ({
54
54
  direction: ScrollDirection.NONE,
55
- buffer: bufferForDirection(ScrollDirection.NONE, rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer)
55
+ buffer: bufferForDirection(mode, ScrollDirection.NONE, rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer)
56
56
  });
57
57
  const isJSDOM = typeof window !== 'undefined' ? /jsdom/.test(window.navigator.userAgent) : false;
58
58
  const useGridVirtualScroller = () => {
@@ -104,7 +104,7 @@ const useGridVirtualScroller = () => {
104
104
  const renderContext = (0, _useGridSelector.useGridSelector)(apiRef, _gridVirtualizationSelectors.gridRenderContextSelector);
105
105
  const scrollTimeout = (0, _useTimeout.default)();
106
106
  const frozenContext = React.useRef(undefined);
107
- const scrollCache = (0, _useLazyRef.default)(() => createScrollCache(rootProps.rowBufferPx, rootProps.columnBufferPx, dimensions.rowHeight * 15, MINIMUM_COLUMN_WIDTH * 6)).current;
107
+ const scrollCache = (0, _useLazyRef.default)(() => createScrollCache(theme.direction, rootProps.rowBufferPx, rootProps.columnBufferPx, dimensions.rowHeight * 15, MINIMUM_COLUMN_WIDTH * 6)).current;
108
108
  const focusedCell = {
109
109
  rowIndex: React.useMemo(() => cellFocus ? currentPage.rows.findIndex(row => row.id === cellFocus.id) : -1, [cellFocus, currentPage.rows]),
110
110
  columnIndex: React.useMemo(() => cellFocus ? visibleColumns.findIndex(column => column.field === cellFocus.field) : -1, [cellFocus, visibleColumns])
@@ -169,7 +169,7 @@ const useGridVirtualScroller = () => {
169
169
  }
170
170
  }
171
171
  scrollCache.direction = direction;
172
- scrollCache.buffer = bufferForDirection(direction, rootProps.rowBufferPx, rootProps.columnBufferPx, dimensions.rowHeight * 15, MINIMUM_COLUMN_WIDTH * 6);
172
+ scrollCache.buffer = bufferForDirection(theme.direction, direction, rootProps.rowBufferPx, rootProps.columnBufferPx, dimensions.rowHeight * 15, MINIMUM_COLUMN_WIDTH * 6);
173
173
  const inputs = inputsSelector(apiRef, rootProps, enabled, enabledForColumns);
174
174
  const nextRenderContext = computeRenderContext(inputs, scrollPosition.current, scrollCache);
175
175
 
@@ -651,7 +651,7 @@ function areRenderContextsEqual(context1, context2) {
651
651
  function computeOffsetLeft(columnPositions, renderContext, direction, pinnedLeftLength) {
652
652
  const factor = direction === 'ltr' ? 1 : -1;
653
653
  const left = factor * (columnPositions[renderContext.firstColumnIndex] ?? 0) - (columnPositions[pinnedLeftLength] ?? 0);
654
- return left;
654
+ return Math.abs(left);
655
655
  }
656
656
  function directionForDelta(dx, dy) {
657
657
  if (dx === 0 && dy === 0) {
@@ -673,7 +673,18 @@ function directionForDelta(dx, dy) {
673
673
  }
674
674
  /* eslint-enable */
675
675
  }
676
- function bufferForDirection(direction, rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer) {
676
+ function bufferForDirection(mode, direction, rowBufferPx, columnBufferPx, verticalBuffer, horizontalBuffer) {
677
+ if (mode === 'rtl') {
678
+ switch (direction) {
679
+ case ScrollDirection.LEFT:
680
+ direction = ScrollDirection.RIGHT;
681
+ break;
682
+ case ScrollDirection.RIGHT:
683
+ direction = ScrollDirection.LEFT;
684
+ break;
685
+ default:
686
+ }
687
+ }
677
688
  switch (direction) {
678
689
  case ScrollDirection.NONE:
679
690
  return {
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.1.0
2
+ * @mui/x-data-grid v7.2.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -3,13 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.validateProps = exports.propValidatorsDataGrid = void 0;
7
- const propValidatorsDataGrid = exports.propValidatorsDataGrid = [props => props.autoPageSize && props.autoHeight && ['MUI X: `<DataGrid autoPageSize={true} autoHeight={true} />` are not valid props.', 'You cannot use both the `autoPageSize` and `autoHeight` props at the same time because `autoHeight` scales the height of the Data Grid according to the `pageSize`.', '', 'Please remove one of these two props.'].join('\n') || undefined];
8
- const warnedOnceMap = new Set();
6
+ exports.validateProps = exports.propValidatorsDataGrid = exports.clearWarningsCache = void 0;
7
+ var _utils = require("../../utils/utils");
8
+ var _useGridApiEventHandler = require("../../hooks/utils/useGridApiEventHandler");
9
+ const propValidatorsDataGrid = exports.propValidatorsDataGrid = [props => props.autoPageSize && props.autoHeight && ['MUI X: `<DataGrid autoPageSize={true} autoHeight={true} />` are not valid props.', 'You cannot use both the `autoPageSize` and `autoHeight` props at the same time because `autoHeight` scales the height of the Data Grid according to the `pageSize`.', '', 'Please remove one of these two props.'].join('\n') || undefined, props => props.signature === _useGridApiEventHandler.GridSignature.DataGrid && props.paginationMode === 'client' && (0, _utils.isNumber)(props.rowCount) && 'MUI X: Usage of the `rowCount` prop with client side pagination (`paginationMode="client"`) has no effect. `rowCount` is only meant to be used with `paginationMode="server"`.' || undefined];
10
+ const warnedOnceCache = new Set();
9
11
  const warnOnce = message => {
10
- if (!warnedOnceMap.has(message)) {
12
+ if (!warnedOnceCache.has(message)) {
11
13
  console.error(message);
12
- warnedOnceMap.add(message);
14
+ warnedOnceCache.add(message);
13
15
  }
14
16
  };
15
17
  const validateProps = (props, validators) => {
@@ -23,4 +25,8 @@ const validateProps = (props, validators) => {
23
25
  }
24
26
  });
25
27
  };
26
- exports.validateProps = validateProps;
28
+ exports.validateProps = validateProps;
29
+ const clearWarningsCache = () => {
30
+ warnedOnceCache.clear();
31
+ };
32
+ exports.clearWarningsCache = clearWarningsCache;
@@ -36,10 +36,9 @@ const deDEGrid = {
36
36
  toolbarExportPrint: 'Drucken',
37
37
  toolbarExportExcel: 'Download als Excel',
38
38
  // Columns management text
39
- // columnsManagementSearchTitle: 'Search',
40
- // columnsManagementNoColumns: 'No columns',
41
- // columnsManagementShowHideAllText: 'Show/Hide All',
42
-
39
+ columnsManagementSearchTitle: 'Suche',
40
+ columnsManagementNoColumns: 'Keine Spalten',
41
+ columnsManagementShowHideAllText: 'Alle anzeigen/verbergen',
43
42
  // Filter panel text
44
43
  filterPanelAddFilter: 'Filter hinzufügen',
45
44
  filterPanelRemoveAll: 'Alle entfernen',
@@ -36,10 +36,9 @@ const esESGrid = {
36
36
  toolbarExportPrint: 'Imprimir',
37
37
  toolbarExportExcel: 'Descargar como Excel',
38
38
  // Columns management text
39
- // columnsManagementSearchTitle: 'Search',
40
- // columnsManagementNoColumns: 'No columns',
41
- // columnsManagementShowHideAllText: 'Show/Hide All',
42
-
39
+ columnsManagementSearchTitle: 'Buscar',
40
+ columnsManagementNoColumns: 'Sin columnas',
41
+ columnsManagementShowHideAllText: 'Mostrar/Ocultar todas',
43
42
  // Filter panel text
44
43
  filterPanelAddFilter: 'Agregar filtro',
45
44
  filterPanelRemoveAll: 'Remover todos',
@@ -36,10 +36,9 @@ const faIRGrid = {
36
36
  toolbarExportPrint: 'چاپ',
37
37
  toolbarExportExcel: 'دانلود به صورت اکسل',
38
38
  // Columns management text
39
- // columnsManagementSearchTitle: 'Search',
40
- // columnsManagementNoColumns: 'No columns',
41
- // columnsManagementShowHideAllText: 'Show/Hide All',
42
-
39
+ columnsManagementSearchTitle: 'جستجو',
40
+ columnsManagementNoColumns: 'بدون سطر',
41
+ columnsManagementShowHideAllText: 'نمایش/مخفی کردن همه',
43
42
  // Filter panel text
44
43
  filterPanelAddFilter: 'افزودن فیلتر',
45
44
  filterPanelRemoveAll: 'حذف همه',
@@ -22,7 +22,7 @@ const frFRGrid = {
22
22
  // Filters toolbar button text
23
23
  toolbarFilters: 'Filtres',
24
24
  toolbarFiltersLabel: 'Afficher les filtres',
25
- toolbarFiltersTooltipHide: 'Cacher les filtres',
25
+ toolbarFiltersTooltipHide: 'Masquer les filtres',
26
26
  toolbarFiltersTooltipShow: 'Afficher les filtres',
27
27
  toolbarFiltersTooltipActive: count => count > 1 ? `${count} filtres actifs` : `${count} filtre actif`,
28
28
  // Quick filter toolbar field
@@ -36,10 +36,9 @@ const frFRGrid = {
36
36
  toolbarExportPrint: 'Imprimer',
37
37
  toolbarExportExcel: 'Télécharger pour Excel',
38
38
  // Columns management text
39
- // columnsManagementSearchTitle: 'Search',
40
- // columnsManagementNoColumns: 'No columns',
41
- // columnsManagementShowHideAllText: 'Show/Hide All',
42
-
39
+ columnsManagementSearchTitle: 'Rechercher',
40
+ columnsManagementNoColumns: 'Pas de colonnes',
41
+ columnsManagementShowHideAllText: 'Afficher/masquer toutes',
43
42
  // Filter panel text
44
43
  filterPanelAddFilter: 'Ajouter un filtre',
45
44
  filterPanelRemoveAll: 'Tout supprimer',
@@ -100,7 +99,7 @@ const frFRGrid = {
100
99
  columnMenuShowColumns: 'Afficher les colonnes',
101
100
  columnMenuManageColumns: 'Gérer les colonnes',
102
101
  columnMenuFilter: 'Filtrer',
103
- columnMenuHideColumn: 'Cacher',
102
+ columnMenuHideColumn: 'Masquer',
104
103
  columnMenuUnsort: 'Annuler le tri',
105
104
  columnMenuSortAsc: 'Tri ascendant',
106
105
  columnMenuSortDesc: 'Tri descendant',
@@ -36,10 +36,9 @@ const ptBRGrid = {
36
36
  toolbarExportPrint: 'Imprimir',
37
37
  toolbarExportExcel: 'Baixar como Excel',
38
38
  // Columns management text
39
- // columnsManagementSearchTitle: 'Search',
40
- // columnsManagementNoColumns: 'No columns',
41
- // columnsManagementShowHideAllText: 'Show/Hide All',
42
-
39
+ columnsManagementSearchTitle: 'Buscar',
40
+ columnsManagementNoColumns: 'Nenhuma coluna',
41
+ columnsManagementShowHideAllText: 'Mostrar/Ocultar Todas',
43
42
  // Filter panel text
44
43
  filterPanelAddFilter: 'Adicionar filtro',
45
44
  filterPanelRemoveAll: 'Remover todos',
@@ -36,10 +36,9 @@ const svSEGrid = {
36
36
  toolbarExportPrint: 'Skriv ut',
37
37
  toolbarExportExcel: 'Ladda ner som Excel',
38
38
  // Columns management text
39
- // columnsManagementSearchTitle: 'Search',
40
- // columnsManagementNoColumns: 'No columns',
41
- // columnsManagementShowHideAllText: 'Show/Hide All',
42
-
39
+ columnsManagementSearchTitle: 'Sök',
40
+ columnsManagementNoColumns: 'Inga kolumner',
41
+ columnsManagementShowHideAllText: 'Visa/Dölj alla',
43
42
  // Filter panel text
44
43
  filterPanelAddFilter: 'Lägg till filter',
45
44
  filterPanelRemoveAll: 'Ta bort alla',
@@ -5,9 +5,22 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.shouldCellShowRightBorder = exports.shouldCellShowLeftBorder = void 0;
7
7
  var _gridColumnsInterfaces = require("../hooks/features/columns/gridColumnsInterfaces");
8
- const shouldCellShowRightBorder = (pinnedPosition, indexInSection, sectionLength, showCellVerticalBorderRootProp) => {
8
+ const shouldCellShowRightBorder = (pinnedPosition, indexInSection, sectionLength, showCellVerticalBorderRootProp, gridHasFiller) => {
9
9
  const isSectionLastCell = indexInSection === sectionLength - 1;
10
- return showCellVerticalBorderRootProp && (pinnedPosition !== _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT ? !isSectionLastCell : true) || pinnedPosition === _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT && isSectionLastCell;
10
+ if (pinnedPosition === _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT && isSectionLastCell) {
11
+ return true;
12
+ }
13
+ if (showCellVerticalBorderRootProp) {
14
+ if (pinnedPosition === _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT) {
15
+ return true;
16
+ }
17
+ if (pinnedPosition === _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT) {
18
+ return !isSectionLastCell;
19
+ }
20
+ // pinnedPosition === undefined, middle section
21
+ return !isSectionLastCell || gridHasFiller;
22
+ }
23
+ return false;
11
24
  };
12
25
  exports.shouldCellShowRightBorder = shouldCellShowRightBorder;
13
26
  const shouldCellShowLeftBorder = (pinnedPosition, indexInSection) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "7.1.0",
4
- "description": "The community edition of the data grid component (MUI X).",
3
+ "version": "7.2.0",
4
+ "description": "The Community plan edition of the Data Grid components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
7
7
  "license": "MIT",
@@ -5,4 +5,10 @@ export interface DataGridComponentNameToClassKey {
5
5
  declare module '@mui/material/styles' {
6
6
  interface ComponentNameToClassKey extends DataGridComponentNameToClassKey {
7
7
  }
8
+ interface Mixins {
9
+ MuiDataGrid?: {
10
+ containerBackground?: string;
11
+ pinnedBackground?: string;
12
+ };
13
+ }
8
14
  }
@@ -1,3 +1,3 @@
1
1
  import { GridPinnedColumnPosition } from '../hooks/features/columns/gridColumnsInterfaces';
2
- export declare const shouldCellShowRightBorder: (pinnedPosition: GridPinnedColumnPosition | undefined, indexInSection: number, sectionLength: number, showCellVerticalBorderRootProp: boolean) => boolean;
2
+ export declare const shouldCellShowRightBorder: (pinnedPosition: GridPinnedColumnPosition | undefined, indexInSection: number, sectionLength: number, showCellVerticalBorderRootProp: boolean, gridHasFiller: boolean) => boolean;
3
3
  export declare const shouldCellShowLeftBorder: (pinnedPosition: GridPinnedColumnPosition | undefined, indexInSection: number) => boolean;