@mui/x-data-grid 7.11.1 → 7.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/CHANGELOG.md +110 -4
  2. package/components/GridPagination.js +2 -0
  3. package/components/GridRow.d.ts +1 -0
  4. package/components/GridRow.js +11 -28
  5. package/components/GridRowCount.js +1 -1
  6. package/components/GridSelectedRowCount.js +1 -1
  7. package/components/base/GridOverlays.js +1 -1
  8. package/components/cell/GridBooleanCell.js +3 -3
  9. package/components/columnHeaders/ColumnHeaderMenuIcon.js +1 -1
  10. package/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  11. package/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  12. package/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -1
  13. package/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
  14. package/components/columnHeaders/GridIconButtonContainer.js +1 -1
  15. package/components/columnSelection/GridHeaderCheckbox.js +1 -1
  16. package/components/columnsManagement/GridColumnsManagement.js +1 -1
  17. package/components/containers/GridFooterContainer.js +1 -1
  18. package/components/containers/GridOverlay.js +1 -1
  19. package/components/containers/GridRoot.js +4 -7
  20. package/components/containers/GridRootStyles.js +26 -6
  21. package/components/containers/GridToolbarContainer.js +1 -1
  22. package/components/panel/GridPanelContent.js +1 -1
  23. package/components/panel/GridPanelFooter.js +1 -1
  24. package/components/panel/GridPanelHeader.js +1 -1
  25. package/components/panel/GridPanelWrapper.js +1 -1
  26. package/components/virtualization/GridBottomContainer.js +1 -1
  27. package/components/virtualization/GridTopContainer.js +2 -13
  28. package/components/virtualization/GridVirtualScrollbar.js +1 -0
  29. package/components/virtualization/GridVirtualScroller.js +1 -1
  30. package/components/virtualization/GridVirtualScrollerContent.js +1 -1
  31. package/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  32. package/constants/gridClasses.d.ts +10 -0
  33. package/constants/gridClasses.js +1 -1
  34. package/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
  35. package/hooks/features/editing/useGridEditing.js +2 -2
  36. package/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +1 -1
  37. package/hooks/features/rows/gridRowsUtils.d.ts +2 -1
  38. package/hooks/features/rows/gridRowsUtils.js +3 -2
  39. package/hooks/features/rows/index.d.ts +1 -1
  40. package/hooks/features/rows/index.js +1 -1
  41. package/hooks/features/rows/useGridRows.js +3 -3
  42. package/hooks/features/sorting/gridSortingSelector.js +2 -2
  43. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  44. package/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
  45. package/index.js +1 -1
  46. package/internals/utils/useProps.js +1 -6
  47. package/locales/trTR.js +19 -21
  48. package/modern/components/GridPagination.js +2 -0
  49. package/modern/components/GridRow.js +11 -28
  50. package/modern/components/GridRowCount.js +1 -1
  51. package/modern/components/GridSelectedRowCount.js +1 -1
  52. package/modern/components/base/GridOverlays.js +1 -1
  53. package/modern/components/cell/GridBooleanCell.js +3 -3
  54. package/modern/components/columnHeaders/ColumnHeaderMenuIcon.js +1 -1
  55. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +1 -1
  56. package/modern/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  57. package/modern/components/columnHeaders/GridColumnHeaderSortIcon.js +1 -1
  58. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
  59. package/modern/components/columnHeaders/GridIconButtonContainer.js +1 -1
  60. package/modern/components/columnSelection/GridHeaderCheckbox.js +1 -1
  61. package/modern/components/columnsManagement/GridColumnsManagement.js +1 -1
  62. package/modern/components/containers/GridFooterContainer.js +1 -1
  63. package/modern/components/containers/GridOverlay.js +1 -1
  64. package/modern/components/containers/GridRoot.js +4 -7
  65. package/modern/components/containers/GridRootStyles.js +26 -6
  66. package/modern/components/containers/GridToolbarContainer.js +1 -1
  67. package/modern/components/panel/GridPanelContent.js +1 -1
  68. package/modern/components/panel/GridPanelFooter.js +1 -1
  69. package/modern/components/panel/GridPanelHeader.js +1 -1
  70. package/modern/components/panel/GridPanelWrapper.js +1 -1
  71. package/modern/components/virtualization/GridBottomContainer.js +1 -1
  72. package/modern/components/virtualization/GridTopContainer.js +2 -13
  73. package/modern/components/virtualization/GridVirtualScrollbar.js +1 -0
  74. package/modern/components/virtualization/GridVirtualScroller.js +1 -1
  75. package/modern/components/virtualization/GridVirtualScrollerContent.js +1 -1
  76. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +1 -1
  77. package/modern/constants/gridClasses.js +1 -1
  78. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
  79. package/modern/hooks/features/editing/useGridEditing.js +2 -2
  80. package/modern/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +1 -1
  81. package/modern/hooks/features/rows/gridRowsUtils.js +3 -2
  82. package/modern/hooks/features/rows/index.js +1 -1
  83. package/modern/hooks/features/rows/useGridRows.js +3 -3
  84. package/modern/hooks/features/sorting/gridSortingSelector.js +2 -2
  85. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
  86. package/modern/index.js +1 -1
  87. package/modern/internals/utils/useProps.js +1 -6
  88. package/modern/locales/trTR.js +19 -21
  89. package/modern/utils/composeGridClasses.js +5 -0
  90. package/modern/utils/platform.js +2 -0
  91. package/node/components/GridPagination.js +2 -0
  92. package/node/components/GridRow.js +9 -26
  93. package/node/components/GridRowCount.js +2 -2
  94. package/node/components/GridSelectedRowCount.js +2 -2
  95. package/node/components/base/GridOverlays.js +2 -2
  96. package/node/components/cell/GridBooleanCell.js +3 -3
  97. package/node/components/columnHeaders/ColumnHeaderMenuIcon.js +2 -2
  98. package/node/components/columnHeaders/GridBaseColumnHeaders.js +2 -2
  99. package/node/components/columnHeaders/GridColumnGroupHeader.js +2 -1
  100. package/node/components/columnHeaders/GridColumnHeaderSortIcon.js +2 -2
  101. package/node/components/columnHeaders/GridColumnHeaderTitle.js +2 -2
  102. package/node/components/columnHeaders/GridIconButtonContainer.js +2 -2
  103. package/node/components/columnSelection/GridHeaderCheckbox.js +4 -4
  104. package/node/components/columnsManagement/GridColumnsManagement.js +5 -5
  105. package/node/components/containers/GridFooterContainer.js +2 -2
  106. package/node/components/containers/GridOverlay.js +2 -2
  107. package/node/components/containers/GridRoot.js +4 -7
  108. package/node/components/containers/GridRootStyles.js +26 -6
  109. package/node/components/containers/GridToolbarContainer.js +2 -2
  110. package/node/components/panel/GridPanelContent.js +2 -2
  111. package/node/components/panel/GridPanelFooter.js +2 -2
  112. package/node/components/panel/GridPanelHeader.js +2 -2
  113. package/node/components/panel/GridPanelWrapper.js +2 -2
  114. package/node/components/virtualization/GridBottomContainer.js +2 -2
  115. package/node/components/virtualization/GridTopContainer.js +3 -14
  116. package/node/components/virtualization/GridVirtualScrollbar.js +1 -0
  117. package/node/components/virtualization/GridVirtualScroller.js +2 -2
  118. package/node/components/virtualization/GridVirtualScrollerContent.js +2 -2
  119. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +2 -2
  120. package/node/constants/gridClasses.js +1 -1
  121. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +3 -0
  122. package/node/hooks/features/editing/useGridEditing.js +1 -1
  123. package/node/hooks/features/rowSelection/useGridRowSelectionPreProcessors.js +2 -2
  124. package/node/hooks/features/rows/gridRowsUtils.js +6 -4
  125. package/node/hooks/features/rows/index.js +8 -1
  126. package/node/hooks/features/rows/useGridRows.js +2 -2
  127. package/node/hooks/features/sorting/gridSortingSelector.js +1 -1
  128. package/node/hooks/features/virtualization/useGridVirtualScroller.js +13 -5
  129. package/node/index.js +1 -1
  130. package/node/internals/utils/useProps.js +1 -7
  131. package/node/locales/trTR.js +19 -21
  132. package/node/utils/composeGridClasses.js +11 -0
  133. package/node/utils/platform.js +8 -0
  134. package/package.json +3 -3
  135. package/utils/composeGridClasses.d.ts +3 -0
  136. package/utils/composeGridClasses.js +5 -0
  137. package/utils/platform.d.ts +1 -0
  138. package/utils/platform.js +2 -0
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  /* eslint-disable @typescript-eslint/no-use-before-define */
3
3
  import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
+ import composeClasses from '@mui/utils/composeClasses';
6
6
  import FormControlLabel from '@mui/material/FormControlLabel';
7
7
  import { styled } from '@mui/material/styles';
8
8
  import { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from '../../hooks/features/columns/gridColumnsSelector';
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
+ import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
+ import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
@@ -12,15 +12,14 @@ import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
12
12
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
13
13
  import { gridDensitySelector } from '../../hooks/features/density/densitySelector';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
- const useUtilityClasses = ownerState => {
15
+ const useUtilityClasses = (ownerState, density) => {
16
16
  const {
17
17
  autoHeight,
18
- density,
19
18
  classes,
20
19
  showCellVerticalBorder
21
20
  } = ownerState;
22
21
  const slots = {
23
- root: ['root', autoHeight && 'autoHeight', `root--density${capitalize(density)}`, 'withBorderColor', showCellVerticalBorder && 'withVerticalBorder']
22
+ root: ['root', autoHeight && 'autoHeight', `root--density${capitalize(density)}`, ownerState.slots.toolbar === null && 'root--noToolbar', 'withBorderColor', showCellVerticalBorder && 'withVerticalBorder']
24
23
  };
25
24
  return composeClasses(slots, getDataGridUtilityClass, classes);
26
25
  };
@@ -34,10 +33,8 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
34
33
  const density = useGridSelector(apiRef, gridDensitySelector);
35
34
  const rootElementRef = apiRef.current.rootElementRef;
36
35
  const handleRef = useForkRef(rootElementRef, ref);
37
- const ownerState = _extends({}, rootProps, {
38
- density
39
- });
40
- const classes = useUtilityClasses(ownerState);
36
+ const ownerState = rootProps;
37
+ const classes = useUtilityClasses(ownerState, density);
41
38
 
42
39
  // Our implementation of <NoSsr />
43
40
  const [mountedState, setMountedState] = React.useState(false);
@@ -1,6 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { alpha, styled, darken, lighten, decomposeColor, recomposeColor } from '@mui/material/styles';
3
3
  import { gridClasses as c } from '../../constants/gridClasses';
4
+ import { useGridSelector } from '../../hooks/utils/useGridSelector';
5
+ import { useGridPrivateApiContext } from '../../hooks/utils/useGridPrivateApiContext';
6
+ import { gridDimensionsSelector } from '../../hooks/features/dimensions/gridDimensionsSelectors';
4
7
  function getBorderColor(theme) {
5
8
  if (theme.vars) {
6
9
  return theme.vars.palette.TableCell.border;
@@ -26,6 +29,10 @@ const columnHeaderStyles = {
26
29
  visibility: 'visible'
27
30
  }
28
31
  };
32
+
33
+ // Emotion thinks it knows better than us which selector we should use.
34
+ // https://github.com/emotion-js/emotion/issues/1105#issuecomment-1722524968
35
+ const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';
29
36
  export const GridRootStyles = styled('div', {
30
37
  name: 'MuiDataGrid',
31
38
  slot: 'Root',
@@ -151,6 +158,8 @@ export const GridRootStyles = styled('div', {
151
158
  })(({
152
159
  theme: t
153
160
  }) => {
161
+ const apiRef = useGridPrivateApiContext();
162
+ const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
154
163
  const borderColor = getBorderColor(t);
155
164
  const radius = t.shape.borderRadius;
156
165
  const containerBackground = t.vars ? t.vars.palette.background.default : t.mixins.MuiDataGrid?.containerBackground ?? t.palette.background.default;
@@ -213,14 +222,10 @@ export const GridRootStyles = styled('div', {
213
222
  // See https://github.com/mui/mui-x/issues/8547
214
223
  minHeight: 0,
215
224
  flexDirection: 'column',
225
+ overflow: 'hidden',
216
226
  overflowAnchor: 'none',
217
227
  // Keep the same scrolling position
218
- // The selector we really want here is `:first-child`, but emotion thinks it knows better than use what we
219
- // want and prints a warning to the console if we use it, about :first-child being "unsafe" in an SSR context.
220
- // https://github.com/emotion-js/emotion/issues/1105
221
- // Using `:first-of-type instead` is ironically less "safe" because if all our elements aren't `div`, this style
222
- // will fail to apply.
223
- [`.${c.main} > *:first-of-type`]: {
228
+ [`.${c.main} > *:first-child${ignoreSsrWarning}`]: {
224
229
  borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
225
230
  borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
226
231
  },
@@ -268,6 +273,12 @@ export const GridRootStyles = styled('div', {
268
273
  [`& .${c.columnHeader}:focus, & .${c.cell}:focus`]: {
269
274
  outline: `solid ${t.palette.primary.main} 1px`
270
275
  },
276
+ [`&.${c['root--noToolbar']} [aria-rowindex="1"] [aria-colindex="1"]`]: {
277
+ borderTopLeftRadius: 'calc(var(--unstable_DataGrid-radius) - 1px)'
278
+ },
279
+ [`&.${c['root--noToolbar']} [aria-rowindex="1"] .${c['columnHeader--last']}`]: {
280
+ borderTopRightRadius: !dimensions.hasScrollY || dimensions.scrollbarSize === 0 ? 'calc(var(--unstable_DataGrid-radius) - 1px)' : undefined
281
+ },
271
282
  [`& .${c.columnHeaderCheckbox}, & .${c.cellCheckbox}`]: {
272
283
  padding: 0,
273
284
  justifyContent: 'center',
@@ -407,6 +418,15 @@ export const GridRootStyles = styled('div', {
407
418
  borderTop: '1px solid var(--DataGrid-rowBorderColor)'
408
419
  }
409
420
  },
421
+ /* Bottom border of the top-container */
422
+ [`& .${c['row--borderBottom']} .${c.columnHeader},
423
+ & .${c['row--borderBottom']} .${c.filler},
424
+ & .${c['row--borderBottom']} .${c.scrollbarFiller}`]: {
425
+ borderBottom: `1px solid var(--DataGrid-rowBorderColor)`
426
+ },
427
+ [`& .${c['row--borderBottom']} .${c.cell}`]: {
428
+ borderBottom: `1px solid var(--rowBorderColor)`
429
+ },
410
430
  /* Row styles */
411
431
  [`.${c.row}`]: {
412
432
  display: 'flex',
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import composeClasses from '@mui/utils/composeClasses';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import composeClasses from '@mui/utils/composeClasses';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import composeClasses from '@mui/utils/composeClasses';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -5,7 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled } from '@mui/system';
8
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import composeClasses from '@mui/utils/composeClasses';
9
9
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
10
10
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import FocusTrap from '@mui/material/Unstable_TrapFocus';
8
8
  import { styled } from '@mui/material/styles';
9
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
9
+ import composeClasses from '@mui/utils/composeClasses';
10
10
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
11
11
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { styled } from '@mui/system';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
+ import composeClasses from '@mui/utils/composeClasses';
6
6
  import { gridClasses, getDataGridUtilityClass } from '../../constants/gridClasses';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const useUtilityClasses = () => {
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { styled } from '@mui/system';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
+ import composeClasses from '@mui/utils/composeClasses';
6
6
  import { gridClasses, getDataGridUtilityClass } from '../../constants/gridClasses';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  const useUtilityClasses = () => {
@@ -14,18 +14,7 @@ const useUtilityClasses = () => {
14
14
  const Element = styled('div')({
15
15
  position: 'sticky',
16
16
  zIndex: 4,
17
- top: 0,
18
- '&::after': {
19
- content: '" "',
20
- position: 'absolute',
21
- zIndex: 5,
22
- bottom: 0,
23
- left: 0,
24
- right: 0,
25
- height: 1,
26
- width: 'var(--DataGrid-rowWidth)',
27
- backgroundColor: 'var(--DataGrid-rowBorderColor)'
28
- }
17
+ top: 0
29
18
  });
30
19
  export function GridTopContainer(props) {
31
20
  const classes = useUtilityClasses();
@@ -126,6 +126,7 @@ const GridVirtualScrollbar = /*#__PURE__*/React.forwardRef(function GridVirtualS
126
126
  ref: useForkRef(ref, scrollbarRef),
127
127
  className: classes.root,
128
128
  tabIndex: -1,
129
+ "aria-hidden": "true",
129
130
  children: /*#__PURE__*/_jsx(Content, {
130
131
  ref: contentRef,
131
132
  className: classes.content
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { styled } from '@mui/system';
4
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
4
+ import composeClasses from '@mui/utils/composeClasses';
5
5
  import { GridScrollArea } from '../GridScrollArea';
6
6
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
7
7
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import clsx from 'clsx';
4
4
  import { styled } from '@mui/system';
5
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
5
+ import composeClasses from '@mui/utils/composeClasses';
6
6
  import { useGridRootProps } from '../../hooks/utils/useGridRootProps';
7
7
  import { getDataGridUtilityClass } from '../../constants/gridClasses';
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -4,7 +4,7 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { styled } from '@mui/system';
7
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
7
+ import composeClasses from '@mui/utils/composeClasses';
8
8
  import { useGridApiContext } from '../../hooks/utils/useGridApiContext';
9
9
  import { useGridSelector } from '../../hooks/utils/useGridSelector';
10
10
  import { gridRowsMetaSelector } from '../../hooks/features/rows';
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
2
2
  export function getDataGridUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiDataGrid', slot);
4
4
  }
5
- export const gridClasses = 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', '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', 'main--hasSkeletonLoadingOverlay', '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', 'rowSkeleton', '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', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
5
+ export const gridClasses = 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', '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', '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--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', '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,6 +12,7 @@ import { gridRenderContextColumnsSelector, gridVirtualizationColumnEnabledSelect
12
12
  import { computeOffsetLeft } from '../virtualization/useGridVirtualScroller';
13
13
  import { GridColumnGroupHeader } from '../../../components/columnHeaders/GridColumnGroupHeader';
14
14
  import { GridPinnedColumnPosition, gridColumnPositionsSelector, gridVisiblePinnedColumnDefinitionsSelector } from '../columns';
15
+ import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
15
16
  import { gridColumnGroupsUnwrappedModelSelector } from '../columnGrouping/gridColumnGroupsSelector';
16
17
  import { GridScrollbarFillerCell as ScrollbarFiller } from '../../../components/GridScrollbarFillerCell';
17
18
  import { getPinnedCellOffset } from '../../../internals/utils/getPinnedCellOffset';
@@ -51,6 +52,7 @@ export const useGridColumnHeaders = props => {
51
52
  const columnPositions = useGridSelector(apiRef, gridColumnPositionsSelector);
52
53
  const renderContext = useGridSelector(apiRef, gridRenderContextColumnsSelector);
53
54
  const pinnedColumns = useGridSelector(apiRef, gridVisiblePinnedColumnDefinitionsSelector);
55
+ const pinnedRows = useGridSelector(apiRef, gridPinnedRowsSelector);
54
56
  const offsetLeft = computeOffsetLeft(columnPositions, renderContext, theme.direction, pinnedColumns.left.length);
55
57
  const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
56
58
  React.useEffect(() => {
@@ -179,6 +181,7 @@ export const useGridColumnHeaders = props => {
179
181
  role: "row",
180
182
  "aria-rowindex": headerGroupingMaxDepth + 1,
181
183
  ownerState: rootProps,
184
+ className: pinnedRows.top.length === 0 ? gridClasses['row--borderBottom'] : undefined,
182
185
  children: [leftRenderContext && getColumnHeaders({
183
186
  position: GridPinnedColumnPosition.LEFT,
184
187
  renderContext: leftRenderContext,
@@ -5,7 +5,7 @@ import { useGridCellEditing } from './useGridCellEditing';
5
5
  import { GridCellModes, GridEditModes } from '../../../models/gridEditRowModel';
6
6
  import { useGridRowEditing } from './useGridRowEditing';
7
7
  import { gridEditRowsStateSelector } from './gridEditingSelectors';
8
- import { isAutoGeneratedRow } from '../rows/gridRowsUtils';
8
+ import { isAutogeneratedRowNode } from '../rows/gridRowsUtils';
9
9
  export const editingStateInitializer = state => _extends({}, state, {
10
10
  editRows: {}
11
11
  });
@@ -17,7 +17,7 @@ export const useGridEditing = (apiRef, props) => {
17
17
  isCellEditable: isCellEditableProp
18
18
  } = props;
19
19
  const isCellEditable = React.useCallback(params => {
20
- if (isAutoGeneratedRow(params.rowNode)) {
20
+ if (isAutogeneratedRowNode(params.rowNode)) {
21
21
  return false;
22
22
  }
23
23
  if (!params.colDef.editable) {
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { unstable_composeClasses as composeClasses } from '@mui/utils';
3
+ import composeClasses from '@mui/utils/composeClasses';
4
4
  import { useGridRegisterPipeProcessor } from '../../core/pipeProcessing';
5
5
  import { getDataGridUtilityClass } from '../../../constants';
6
6
  import { GRID_CHECKBOX_SELECTION_COL_DEF, GRID_CHECKBOX_SELECTION_FIELD } from '../../../colDef';
@@ -123,7 +123,8 @@ export const getRowsStateFromCache = ({
123
123
  groupsToFetch
124
124
  });
125
125
  };
126
- export const isAutoGeneratedRow = rowNode => rowNode.type === 'skeletonRow' || rowNode.type === 'footer' || rowNode.type === 'group' && rowNode.isAutoGenerated || rowNode.type === 'pinnedRow' && rowNode.isAutoGenerated;
126
+ export const isAutogeneratedRow = row => GRID_ID_AUTOGENERATED in row;
127
+ export const isAutogeneratedRowNode = rowNode => rowNode.type === 'skeletonRow' || rowNode.type === 'footer' || rowNode.type === 'group' && rowNode.isAutoGenerated || rowNode.type === 'pinnedRow' && rowNode.isAutoGenerated;
127
128
  export const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) => {
128
129
  const node = tree[parentId];
129
130
  if (node.type !== 'group') {
@@ -132,7 +133,7 @@ export const getTreeNodeDescendants = (tree, parentId, skipAutoGeneratedRows) =>
132
133
  const validDescendants = [];
133
134
  for (let i = 0; i < node.children.length; i += 1) {
134
135
  const child = node.children[i];
135
- if (!skipAutoGeneratedRows || !isAutoGeneratedRow(tree[child])) {
136
+ if (!skipAutoGeneratedRows || !isAutogeneratedRowNode(tree[child])) {
136
137
  validDescendants.push(child);
137
138
  }
138
139
  const childDescendants = getTreeNodeDescendants(tree, child, skipAutoGeneratedRows);
@@ -1,4 +1,4 @@
1
1
  export * from './gridRowsMetaSelector';
2
2
  export * from './gridRowsMetaState';
3
3
  export { gridRowCountSelector, gridRowsLoadingSelector, gridTopLevelRowCountSelector, gridRowsLookupSelector, gridRowsDataRowIdToIdLookupSelector, gridRowTreeSelector, gridRowGroupingNameSelector, gridRowTreeDepthsSelector, gridRowMaximumTreeDepthSelector, gridDataRowIdsSelector } from './gridRowsSelector';
4
- export { GRID_ROOT_GROUP_ID, checkGridRowIdIsValid } from './gridRowsUtils';
4
+ export { GRID_ROOT_GROUP_ID, checkGridRowIdIsValid, isAutogeneratedRow } from './gridRowsUtils';
@@ -8,7 +8,7 @@ import { GridSignature, useGridApiEventHandler } from '../../utils/useGridApiEve
8
8
  import { useGridVisibleRows } from '../../utils/useGridVisibleRows';
9
9
  import { gridSortedRowIdsSelector } from '../sorting/gridSortingSelector';
10
10
  import { gridFilteredRowsLookupSelector } from '../filter/gridFilterSelector';
11
- import { getTreeNodeDescendants, createRowsInternalCache, getRowsStateFromCache, isAutoGeneratedRow, GRID_ROOT_GROUP_ID, GRID_ID_AUTOGENERATED, updateCacheWithNewRows, getTopLevelRowCount, getRowIdFromRowModel, computeRowsUpdates } from './gridRowsUtils';
11
+ import { getTreeNodeDescendants, createRowsInternalCache, getRowsStateFromCache, isAutogeneratedRowNode, GRID_ROOT_GROUP_ID, GRID_ID_AUTOGENERATED, updateCacheWithNewRows, getTopLevelRowCount, getRowIdFromRowModel, computeRowsUpdates } from './gridRowsUtils';
12
12
  import { useGridRegisterPipeApplier } from '../../core/pipeProcessing';
13
13
  export const rowsStateInitializer = (state, props, apiRef) => {
14
14
  const isDataSourceAvailable = !!props.unstable_dataSource;
@@ -48,7 +48,7 @@ export const useGridRows = (apiRef, props) => {
48
48
  return model;
49
49
  }
50
50
  const node = apiRef.current.getRowNode(id);
51
- if (node && isAutoGeneratedRow(node)) {
51
+ if (node && isAutogeneratedRowNode(node)) {
52
52
  return {
53
53
  [GRID_ID_AUTOGENERATED]: id
54
54
  };
@@ -212,7 +212,7 @@ export const useGridRows = (apiRef, props) => {
212
212
  const startIndex = sortedRowIds.findIndex(id => id === groupId) + 1;
213
213
  for (let index = startIndex; index < sortedRowIds.length && tree[sortedRowIds[index]].depth > groupNode.depth; index += 1) {
214
214
  const id = sortedRowIds[index];
215
- if (!skipAutoGeneratedRows || !isAutoGeneratedRow(tree[id])) {
215
+ if (!skipAutoGeneratedRows || !isAutogeneratedRowNode(tree[id])) {
216
216
  children.push(id);
217
217
  }
218
218
  }
@@ -1,6 +1,6 @@
1
1
  import { createSelector, createSelectorMemoized } from '../../../utils/createSelector';
2
2
  import { gridRowTreeSelector, gridRowsLookupSelector } from '../rows/gridRowsSelector';
3
- import { GRID_ID_AUTOGENERATED, isAutoGeneratedRow } from '../rows/gridRowsUtils';
3
+ import { GRID_ID_AUTOGENERATED, isAutogeneratedRowNode } from '../rows/gridRowsUtils';
4
4
  /**
5
5
  * @category Sorting
6
6
  * @ignore - do not document.
@@ -26,7 +26,7 @@ export const gridSortedRowEntriesSelector = createSelectorMemoized(gridSortedRow
26
26
  });
27
27
  }
28
28
  const rowNode = rowTree[id];
29
- if (rowNode && isAutoGeneratedRow(rowNode)) {
29
+ if (rowNode && isAutogeneratedRowNode(rowNode)) {
30
30
  acc.push({
31
31
  id,
32
32
  model: {
@@ -16,6 +16,7 @@ import { gridPinnedRowsSelector } from '../rows/gridRowsSelector';
16
16
  import { gridFocusCellSelector, gridTabIndexCellSelector } from '../focus/gridFocusStateSelector';
17
17
  import { useGridVisibleRows, getVisibleRows } from '../../utils/useGridVisibleRows';
18
18
  import { useGridApiEventHandler } from '../../utils';
19
+ import * as platform from '../../../utils/platform';
19
20
  import { clamp, range } from '../../../utils/utils';
20
21
  import { selectedIdsLookupSelector } from '../rowSelection/gridRowSelectionSelector';
21
22
  import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
@@ -178,6 +179,8 @@ export const useGridVirtualScroller = () => {
178
179
  const forceUpdateRenderContext = () => {
179
180
  const inputs = inputsSelector(apiRef, rootProps, enabled, enabledForColumns);
180
181
  const nextRenderContext = computeRenderContext(inputs, scrollPosition.current, scrollCache);
182
+ // Reset the frozen context when the render context changes, see the illustration in https://github.com/mui/mui-x/pull/12353
183
+ frozenContext.current = undefined;
181
184
  updateRenderContext(nextRenderContext);
182
185
  };
183
186
  const handleScroll = useEventCallback(event => {
@@ -257,6 +260,7 @@ export const useGridVirtualScroller = () => {
257
260
  id,
258
261
  model
259
262
  } = rowModels[rowIndexInPage];
263
+ const rowIndex = (currentPage?.range?.firstRowIndex || 0) + rowIndexOffset + rowIndexInPage;
260
264
 
261
265
  // NOTE: This is an expensive feature, the colSpan code could be optimized.
262
266
  if (hasColSpan) {
@@ -298,6 +302,7 @@ export const useGridVirtualScroller = () => {
298
302
  isFirstVisible = rowIndexInPage === 0;
299
303
  }
300
304
  let isLastVisible = false;
305
+ const isLastVisibleInSection = rowIndexInPage === rowModels.length - 1;
301
306
  if (isLastSection) {
302
307
  if (!isPinnedSection) {
303
308
  const lastIndex = currentPage.rows.length - 1;
@@ -306,7 +311,7 @@ export const useGridVirtualScroller = () => {
306
311
  isLastVisible = true;
307
312
  }
308
313
  } else {
309
- isLastVisible = rowIndexInPage === rowModels.length - 1;
314
+ isLastVisible = isLastVisibleInSection;
310
315
  }
311
316
  }
312
317
  const isVirtualRow = rowIndexInPage === virtualRowIndex;
@@ -321,7 +326,7 @@ export const useGridVirtualScroller = () => {
321
326
  currentRenderContext = frozenContext.current;
322
327
  }
323
328
  const offsetLeft = computeOffsetLeft(columnPositions, currentRenderContext, theme.direction, pinnedColumns.left.length);
324
- const rowIndex = (currentPage?.range?.firstRowIndex || 0) + rowIndexOffset + rowIndexInPage;
329
+ const showBottomBorder = isLastVisibleInSection && params.position === 'top';
325
330
  rows.push( /*#__PURE__*/_jsx(rootProps.slots.row, _extends({
326
331
  row: model,
327
332
  rowId: id,
@@ -338,7 +343,8 @@ export const useGridVirtualScroller = () => {
338
343
  focusedColumnIndex: hasFocus ? focusedCell.columnIndex : undefined,
339
344
  isFirstVisible: isFirstVisible,
340
345
  isLastVisible: isLastVisible,
341
- isNotVisible: isNotVisible
346
+ isNotVisible: isNotVisible,
347
+ showBottomBorder: showBottomBorder
342
348
  }, rowProps), id));
343
349
  if (isNotVisible) {
344
350
  return;
@@ -409,12 +415,14 @@ export const useGridVirtualScroller = () => {
409
415
  }),
410
416
  getScrollerProps: () => ({
411
417
  ref: scrollerRef,
412
- tabIndex: -1,
413
418
  onScroll: handleScroll,
414
419
  onWheel: handleWheel,
415
420
  onTouchMove: handleTouchMove,
416
421
  style: scrollerStyle,
417
- role: 'presentation'
422
+ role: 'presentation',
423
+ // `tabIndex` shouldn't be used along role=presentation, but it fixes a Firefox bug
424
+ // https://github.com/mui/mui-x/pull/13891#discussion_r1683416024
425
+ tabIndex: platform.isFirefox ? -1 : undefined
418
426
  }),
419
427
  getContentProps: () => ({
420
428
  style: contentSize,
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.11.1
2
+ * @mui/x-data-grid v7.12.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,5 +1,3 @@
1
- import _objectDestructuringEmpty from "@babel/runtime/helpers/esm/objectDestructuringEmpty";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
1
  import * as React from 'react';
4
2
 
5
3
  /** Gathers props for the root element into a single `.forwardedProps` field */
@@ -22,8 +20,5 @@ function groupForwardedProps(props) {
22
20
  return newProps;
23
21
  }
24
22
  export function useProps(allProps) {
25
- return React.useMemo(() => {
26
- const themedProps = _extends({}, (_objectDestructuringEmpty(allProps), allProps));
27
- return groupForwardedProps(themedProps);
28
- }, [allProps]);
23
+ return React.useMemo(() => groupForwardedProps(allProps), [allProps]);
29
24
  }
@@ -30,11 +30,10 @@ const trTRGrid = {
30
30
  toolbarExportPrint: 'Yazdır',
31
31
  toolbarExportExcel: 'Excel olarak aktar',
32
32
  // Columns management text
33
- // columnsManagementSearchTitle: 'Search',
34
- // columnsManagementNoColumns: 'No columns',
35
- // columnsManagementShowHideAllText: 'Show/Hide All',
36
- // columnsManagementReset: 'Reset',
37
-
33
+ columnsManagementSearchTitle: 'Arama',
34
+ columnsManagementNoColumns: 'Kolon yok',
35
+ columnsManagementShowHideAllText: 'Hepsini Göster/Gizle',
36
+ columnsManagementReset: 'Sıfırla',
38
37
  // Filter panel text
39
38
  filterPanelAddFilter: 'Filtre Ekle',
40
39
  filterPanelRemoveAll: 'Hepsini kaldır',
@@ -71,22 +70,21 @@ const trTRGrid = {
71
70
  headerFilterOperatorEquals: 'Şuna eşittir',
72
71
  headerFilterOperatorStartsWith: 'Şununla başlar',
73
72
  headerFilterOperatorEndsWith: 'Şununla biter',
74
- // headerFilterOperatorIs: 'Is',
75
- // headerFilterOperatorNot: 'Is not',
76
- // headerFilterOperatorAfter: 'Is after',
77
- // headerFilterOperatorOnOrAfter: 'Is on or after',
78
- // headerFilterOperatorBefore: 'Is before',
79
- // headerFilterOperatorOnOrBefore: 'Is on or before',
80
- // headerFilterOperatorIsEmpty: 'Is empty',
81
- // headerFilterOperatorIsNotEmpty: 'Is not empty',
82
- // headerFilterOperatorIsAnyOf: 'Is any of',
83
- // 'headerFilterOperator=': 'Equals',
84
- // 'headerFilterOperator!=': 'Not equals',
85
- // 'headerFilterOperator>': 'Greater than',
86
- // 'headerFilterOperator>=': 'Greater than or equal to',
87
- // 'headerFilterOperator<': 'Less than',
88
- // 'headerFilterOperator<=': 'Less than or equal to',
89
-
73
+ headerFilterOperatorIs: 'Eşittir',
74
+ headerFilterOperatorNot: 'Eşit değil',
75
+ headerFilterOperatorAfter: 'Sonra',
76
+ headerFilterOperatorOnOrAfter: 'Sonra veya eşit',
77
+ headerFilterOperatorBefore: 'Önce',
78
+ headerFilterOperatorOnOrBefore: 'Önce veya eşit',
79
+ headerFilterOperatorIsEmpty: 'Boş',
80
+ headerFilterOperatorIsNotEmpty: 'Boş değil',
81
+ headerFilterOperatorIsAnyOf: 'Herhangi biri',
82
+ 'headerFilterOperator=': 'Eşittir',
83
+ 'headerFilterOperator!=': 'Eşit değil',
84
+ 'headerFilterOperator>': 'Büyüktür',
85
+ 'headerFilterOperator>=': 'Büyük veya eşit',
86
+ 'headerFilterOperator<': 'Küçüktür',
87
+ 'headerFilterOperator<=': 'Küçük veya eşit',
90
88
  // Filter values text
91
89
  filterValueAny: 'herhangi',
92
90
  filterValueTrue: 'doğru',
@@ -0,0 +1,5 @@
1
+ import { unstable_composeClasses as composeClasses } from '@mui/utils';
2
+ import { getDataGridUtilityClass } from '../constants/gridClasses';
3
+ export function composeGridClasses(classes, slots) {
4
+ return composeClasses(slots, getDataGridUtilityClass, classes);
5
+ }
@@ -0,0 +1,2 @@
1
+ const userAgent = typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase() : 'empty';
2
+ export const isFirefox = userAgent.includes('firefox');
@@ -20,6 +20,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
20
20
  const GridPaginationRoot = (0, _styles.styled)(_TablePagination.default)(({
21
21
  theme
22
22
  }) => ({
23
+ maxHeight: 'calc(100% + 1px)',
24
+ // border width
23
25
  [`& .${_TablePagination.tablePaginationClasses.selectLabel}`]: {
24
26
  display: 'none',
25
27
  [theme.breakpoints.up('sm')]: {