@mui/x-data-grid 7.16.0 → 7.17.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 (172) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/colDef/gridStringOperators.js +49 -33
  3. package/components/columnHeaders/GridColumnHeaderItem.d.ts +2 -0
  4. package/components/columnHeaders/GridColumnHeaderItem.js +9 -2
  5. package/components/columnHeaders/GridColumnHeaderTitle.js +3 -1
  6. package/components/columnHeaders/GridGenericColumnHeaderItem.js +1 -2
  7. package/components/containers/GridRootStyles.js +3 -7
  8. package/components/panel/filterPanel/GridFilterForm.js +1 -1
  9. package/constants/gridClasses.d.ts +10 -0
  10. package/constants/gridClasses.js +1 -1
  11. package/constants/localeTextConstants.js +4 -0
  12. package/hooks/features/columnHeaders/useGridColumnHeaders.js +6 -1
  13. package/hooks/features/editing/useGridCellEditing.js +1 -1
  14. package/hooks/features/editing/useGridRowEditing.js +1 -1
  15. package/hooks/features/export/serializers/csvSerializer.js +1 -1
  16. package/hooks/features/filter/gridFilterUtils.js +1 -1
  17. package/hooks/features/sorting/gridSortingUtils.js +1 -1
  18. package/hooks/utils/useGridSelector.js +1 -1
  19. package/index.js +1 -1
  20. package/internals/utils/index.d.ts +0 -1
  21. package/internals/utils/index.js +1 -2
  22. package/internals/utils/propValidation.js +1 -1
  23. package/locales/arSD.js +4 -0
  24. package/locales/beBY.js +4 -0
  25. package/locales/bgBG.js +4 -0
  26. package/locales/csCZ.js +4 -0
  27. package/locales/daDK.js +4 -0
  28. package/locales/deDE.js +4 -0
  29. package/locales/elGR.js +4 -0
  30. package/locales/esES.js +4 -0
  31. package/locales/faIR.js +4 -0
  32. package/locales/fiFI.js +4 -0
  33. package/locales/frFR.js +4 -0
  34. package/locales/heIL.js +4 -0
  35. package/locales/hrHR.js +4 -0
  36. package/locales/huHU.js +11 -8
  37. package/locales/isIS.js +4 -0
  38. package/locales/itIT.js +4 -0
  39. package/locales/jaJP.js +4 -0
  40. package/locales/koKR.js +4 -0
  41. package/locales/nbNO.js +4 -0
  42. package/locales/nlNL.js +4 -0
  43. package/locales/nnNO.js +4 -0
  44. package/locales/plPL.js +4 -0
  45. package/locales/ptBR.js +4 -0
  46. package/locales/ptPT.js +4 -0
  47. package/locales/roRO.js +4 -0
  48. package/locales/ruRU.js +4 -0
  49. package/locales/skSK.js +4 -0
  50. package/locales/svSE.js +4 -0
  51. package/locales/trTR.js +4 -0
  52. package/locales/ukUA.js +4 -0
  53. package/locales/urPK.js +4 -0
  54. package/locales/viVN.js +4 -0
  55. package/locales/zhCN.js +4 -0
  56. package/locales/zhHK.js +4 -0
  57. package/locales/zhTW.js +4 -0
  58. package/models/api/gridLocaleTextApi.d.ts +4 -0
  59. package/modern/colDef/gridStringOperators.js +49 -33
  60. package/modern/components/columnHeaders/GridColumnHeaderItem.js +9 -2
  61. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +3 -1
  62. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +1 -2
  63. package/modern/components/containers/GridRootStyles.js +3 -7
  64. package/modern/components/panel/filterPanel/GridFilterForm.js +1 -1
  65. package/modern/constants/gridClasses.js +1 -1
  66. package/modern/constants/localeTextConstants.js +4 -0
  67. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +6 -1
  68. package/modern/hooks/features/editing/useGridCellEditing.js +1 -1
  69. package/modern/hooks/features/editing/useGridRowEditing.js +1 -1
  70. package/modern/hooks/features/export/serializers/csvSerializer.js +1 -1
  71. package/modern/hooks/features/filter/gridFilterUtils.js +1 -1
  72. package/modern/hooks/features/sorting/gridSortingUtils.js +1 -1
  73. package/modern/hooks/utils/useGridSelector.js +1 -1
  74. package/modern/index.js +1 -1
  75. package/modern/internals/utils/index.js +1 -2
  76. package/modern/internals/utils/propValidation.js +1 -1
  77. package/modern/locales/arSD.js +4 -0
  78. package/modern/locales/beBY.js +4 -0
  79. package/modern/locales/bgBG.js +4 -0
  80. package/modern/locales/csCZ.js +4 -0
  81. package/modern/locales/daDK.js +4 -0
  82. package/modern/locales/deDE.js +4 -0
  83. package/modern/locales/elGR.js +4 -0
  84. package/modern/locales/esES.js +4 -0
  85. package/modern/locales/faIR.js +4 -0
  86. package/modern/locales/fiFI.js +4 -0
  87. package/modern/locales/frFR.js +4 -0
  88. package/modern/locales/heIL.js +4 -0
  89. package/modern/locales/hrHR.js +4 -0
  90. package/modern/locales/huHU.js +11 -8
  91. package/modern/locales/isIS.js +4 -0
  92. package/modern/locales/itIT.js +4 -0
  93. package/modern/locales/jaJP.js +4 -0
  94. package/modern/locales/koKR.js +4 -0
  95. package/modern/locales/nbNO.js +4 -0
  96. package/modern/locales/nlNL.js +4 -0
  97. package/modern/locales/nnNO.js +4 -0
  98. package/modern/locales/plPL.js +4 -0
  99. package/modern/locales/ptBR.js +4 -0
  100. package/modern/locales/ptPT.js +4 -0
  101. package/modern/locales/roRO.js +4 -0
  102. package/modern/locales/ruRU.js +4 -0
  103. package/modern/locales/skSK.js +4 -0
  104. package/modern/locales/svSE.js +4 -0
  105. package/modern/locales/trTR.js +4 -0
  106. package/modern/locales/ukUA.js +4 -0
  107. package/modern/locales/urPK.js +4 -0
  108. package/modern/locales/viVN.js +4 -0
  109. package/modern/locales/zhCN.js +4 -0
  110. package/modern/locales/zhHK.js +4 -0
  111. package/modern/locales/zhTW.js +4 -0
  112. package/modern/utils/createSelector.js +1 -1
  113. package/node/colDef/gridStringOperators.js +49 -33
  114. package/node/components/columnHeaders/GridColumnHeaderItem.js +9 -2
  115. package/node/components/columnHeaders/GridColumnHeaderTitle.js +3 -1
  116. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +1 -2
  117. package/node/components/containers/GridRootStyles.js +3 -7
  118. package/node/components/panel/filterPanel/GridFilterForm.js +1 -1
  119. package/node/constants/gridClasses.js +1 -1
  120. package/node/constants/localeTextConstants.js +4 -0
  121. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +6 -1
  122. package/node/hooks/features/editing/useGridCellEditing.js +1 -1
  123. package/node/hooks/features/editing/useGridRowEditing.js +1 -1
  124. package/node/hooks/features/export/serializers/csvSerializer.js +1 -1
  125. package/node/hooks/features/filter/gridFilterUtils.js +1 -1
  126. package/node/hooks/features/sorting/gridSortingUtils.js +1 -1
  127. package/node/hooks/utils/useGridSelector.js +1 -1
  128. package/node/index.js +1 -1
  129. package/node/internals/utils/index.js +0 -11
  130. package/node/internals/utils/propValidation.js +1 -1
  131. package/node/locales/arSD.js +4 -0
  132. package/node/locales/beBY.js +4 -0
  133. package/node/locales/bgBG.js +4 -0
  134. package/node/locales/csCZ.js +4 -0
  135. package/node/locales/daDK.js +4 -0
  136. package/node/locales/deDE.js +4 -0
  137. package/node/locales/elGR.js +4 -0
  138. package/node/locales/esES.js +4 -0
  139. package/node/locales/faIR.js +4 -0
  140. package/node/locales/fiFI.js +4 -0
  141. package/node/locales/frFR.js +4 -0
  142. package/node/locales/heIL.js +4 -0
  143. package/node/locales/hrHR.js +4 -0
  144. package/node/locales/huHU.js +11 -8
  145. package/node/locales/isIS.js +4 -0
  146. package/node/locales/itIT.js +4 -0
  147. package/node/locales/jaJP.js +4 -0
  148. package/node/locales/koKR.js +4 -0
  149. package/node/locales/nbNO.js +4 -0
  150. package/node/locales/nlNL.js +4 -0
  151. package/node/locales/nnNO.js +4 -0
  152. package/node/locales/plPL.js +4 -0
  153. package/node/locales/ptBR.js +4 -0
  154. package/node/locales/ptPT.js +4 -0
  155. package/node/locales/roRO.js +4 -0
  156. package/node/locales/ruRU.js +4 -0
  157. package/node/locales/skSK.js +4 -0
  158. package/node/locales/svSE.js +4 -0
  159. package/node/locales/trTR.js +4 -0
  160. package/node/locales/ukUA.js +4 -0
  161. package/node/locales/urPK.js +4 -0
  162. package/node/locales/viVN.js +4 -0
  163. package/node/locales/zhCN.js +4 -0
  164. package/node/locales/zhHK.js +4 -0
  165. package/node/locales/zhTW.js +4 -0
  166. package/node/utils/createSelector.js +1 -1
  167. package/package.json +2 -2
  168. package/utils/createSelector.js +1 -1
  169. package/internals/utils/warning.d.ts +0 -2
  170. package/internals/utils/warning.js +0 -21
  171. package/modern/internals/utils/warning.js +0 -21
  172. package/node/internals/utils/warning.js +0 -28
@@ -46,7 +46,9 @@ export interface GridLocaleText {
46
46
  filterPanelInputLabel: string;
47
47
  filterPanelInputPlaceholder: string;
48
48
  filterOperatorContains: string;
49
+ filterOperatorDoesNotContain: string;
49
50
  filterOperatorEquals: string;
51
+ filterOperatorDoesNotEqual: string;
50
52
  filterOperatorStartsWith: string;
51
53
  filterOperatorEndsWith: string;
52
54
  filterOperatorIs: string;
@@ -65,7 +67,9 @@ export interface GridLocaleText {
65
67
  'filterOperator<': string;
66
68
  'filterOperator<=': string;
67
69
  headerFilterOperatorContains: string;
70
+ headerFilterOperatorDoesNotContain: string;
68
71
  headerFilterOperatorEquals: string;
72
+ headerFilterOperatorDoesNotEqual: string;
69
73
  headerFilterOperatorStartsWith: string;
70
74
  headerFilterOperatorEndsWith: string;
71
75
  headerFilterOperatorIs: string;
@@ -15,34 +15,58 @@ export const getGridStringQuickFilterFn = value => {
15
15
  return columnValue != null ? filterRegex.test(columnValue.toString()) : false;
16
16
  };
17
17
  };
18
+ const createContainsFilterFn = (disableTrim, negate) => filterItem => {
19
+ if (!filterItem.value) {
20
+ return null;
21
+ }
22
+ const trimmedValue = disableTrim ? filterItem.value : filterItem.value.trim();
23
+ const filterRegex = new RegExp(escapeRegExp(trimmedValue), 'i');
24
+ return value => {
25
+ if (value == null) {
26
+ return negate;
27
+ }
28
+ const matches = filterRegex.test(String(value));
29
+ return negate ? !matches : matches;
30
+ };
31
+ };
32
+ const createEqualityFilterFn = (disableTrim, negate) => filterItem => {
33
+ if (!filterItem.value) {
34
+ return null;
35
+ }
36
+ const trimmedValue = disableTrim ? filterItem.value : filterItem.value.trim();
37
+ const collator = new Intl.Collator(undefined, {
38
+ sensitivity: 'base',
39
+ usage: 'search'
40
+ });
41
+ return value => {
42
+ if (value == null) {
43
+ return negate;
44
+ }
45
+ const isEqual = collator.compare(trimmedValue, value.toString()) === 0;
46
+ return negate ? !isEqual : isEqual;
47
+ };
48
+ };
49
+ const createEmptyFilterFn = negate => () => {
50
+ return value => {
51
+ const isEmpty = value === '' || value == null;
52
+ return negate ? !isEmpty : isEmpty;
53
+ };
54
+ };
18
55
  export const getGridStringOperators = (disableTrim = false) => [{
19
56
  value: 'contains',
20
- getApplyFilterFn: filterItem => {
21
- if (!filterItem.value) {
22
- return null;
23
- }
24
- const filterItemValue = disableTrim ? filterItem.value : filterItem.value.trim();
25
- const filterRegex = new RegExp(escapeRegExp(filterItemValue), 'i');
26
- return value => {
27
- return value != null ? filterRegex.test(String(value)) : false;
28
- };
29
- },
57
+ getApplyFilterFn: createContainsFilterFn(disableTrim, false),
58
+ InputComponent: GridFilterInputValue
59
+ }, {
60
+ value: 'doesNotContain',
61
+ getApplyFilterFn: createContainsFilterFn(disableTrim, true),
30
62
  InputComponent: GridFilterInputValue
31
63
  }, {
32
64
  value: 'equals',
33
- getApplyFilterFn: filterItem => {
34
- if (!filterItem.value) {
35
- return null;
36
- }
37
- const filterItemValue = disableTrim ? filterItem.value : filterItem.value.trim();
38
- const collator = new Intl.Collator(undefined, {
39
- sensitivity: 'base',
40
- usage: 'search'
41
- });
42
- return value => {
43
- return value != null ? collator.compare(filterItemValue, value.toString()) === 0 : false;
44
- };
45
- },
65
+ getApplyFilterFn: createEqualityFilterFn(disableTrim, false),
66
+ InputComponent: GridFilterInputValue
67
+ }, {
68
+ value: 'doesNotEqual',
69
+ getApplyFilterFn: createEqualityFilterFn(disableTrim, true),
46
70
  InputComponent: GridFilterInputValue
47
71
  }, {
48
72
  value: 'startsWith',
@@ -72,19 +96,11 @@ export const getGridStringOperators = (disableTrim = false) => [{
72
96
  InputComponent: GridFilterInputValue
73
97
  }, {
74
98
  value: 'isEmpty',
75
- getApplyFilterFn: () => {
76
- return value => {
77
- return value === '' || value == null;
78
- };
79
- },
99
+ getApplyFilterFn: createEmptyFilterFn(false),
80
100
  requiresFilterValue: false
81
101
  }, {
82
102
  value: 'isNotEmpty',
83
- getApplyFilterFn: () => {
84
- return value => {
85
- return value !== '' && value != null;
86
- };
87
- },
103
+ getApplyFilterFn: createEmptyFilterFn(true),
88
104
  requiresFilterValue: false
89
105
  }, {
90
106
  value: 'isAnyOf',
@@ -22,14 +22,19 @@ const useUtilityClasses = ownerState => {
22
22
  showRightBorder,
23
23
  showLeftBorder,
24
24
  filterItemsCounter,
25
- pinnedPosition
25
+ pinnedPosition,
26
+ isLastUnpinned,
27
+ isSiblingFocused
26
28
  } = ownerState;
27
29
  const isColumnSorted = sortDirection != null;
28
30
  const isColumnFiltered = filterItemsCounter != null && filterItemsCounter > 0;
29
31
  // todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
30
32
  const isColumnNumeric = colDef.type === 'number';
31
33
  const slots = {
32
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight'],
34
+ root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === 'left' && 'columnHeader--pinnedLeft', pinnedPosition === 'right' && 'columnHeader--pinnedRight',
35
+ // TODO: Remove classes below and restore `:has` selectors when they are supported in jsdom
36
+ // See https://github.com/mui/mui-x/pull/14559
37
+ isLastUnpinned && 'columnHeader--lastUnpinned', isSiblingFocused && 'columnHeader--siblingFocused'],
33
38
  draggableContainer: ['columnHeaderDraggableContainer'],
34
39
  titleContainer: ['columnHeaderTitleContainer'],
35
40
  titleContainerContent: ['columnHeaderTitleContainerContent']
@@ -209,7 +214,9 @@ process.env.NODE_ENV !== "production" ? GridColumnHeaderItem.propTypes = {
209
214
  indexInSection: PropTypes.number.isRequired,
210
215
  isDragging: PropTypes.bool.isRequired,
211
216
  isLast: PropTypes.bool.isRequired,
217
+ isLastUnpinned: PropTypes.bool.isRequired,
212
218
  isResizing: PropTypes.bool.isRequired,
219
+ isSiblingFocused: PropTypes.bool.isRequired,
213
220
  pinnedPosition: PropTypes.oneOf(['left', 'right']),
214
221
  sectionLength: PropTypes.number.isRequired,
215
222
  separatorSide: PropTypes.oneOf(['left', 'right']),
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["className"];
3
+ const _excluded = ["className", "aria-label"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
@@ -31,6 +31,8 @@ const GridColumnHeaderTitleRoot = styled('div', {
31
31
  lineHeight: 'normal'
32
32
  });
33
33
  const ColumnHeaderInnerTitle = /*#__PURE__*/React.forwardRef(function ColumnHeaderInnerTitle(props, ref) {
34
+ // Tooltip adds aria-label to the props, which is not needed since the children prop is a string
35
+ // See https://github.com/mui/mui-x/pull/14482
34
36
  const {
35
37
  className
36
38
  } = props,
@@ -63,8 +63,7 @@ const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridG
63
63
  role: "columnheader",
64
64
  tabIndex: tabIndex,
65
65
  "aria-colindex": colIndex + 1,
66
- "aria-sort": ariaSort,
67
- "aria-label": headerComponent == null ? label : undefined
66
+ "aria-sort": ariaSort
68
67
  }, other, {
69
68
  children: [/*#__PURE__*/_jsxs("div", _extends({
70
69
  className: classes.draggableContainer,
@@ -280,12 +280,10 @@ export const GridRootStyles = styled('div', {
280
280
  // - the column has a left or right border
281
281
  // - the next column is pinned right and has a left border
282
282
  [`& .${c.columnHeader}:focus,
283
- & .${c.columnHeader}:focus-within,
284
- & .${c.columnHeader}:has(+ .${c.columnHeader}:focus),
285
- & .${c.columnHeader}:has(+ .${c.columnHeader}:focus-within),
286
283
  & .${c['columnHeader--withLeftBorder']},
287
284
  & .${c['columnHeader--withRightBorder']},
288
- & .${c.columnHeader}:has(+ .${c.filler} + .${c['columnHeader--withLeftBorder']}),
285
+ & .${c['columnHeader--siblingFocused']},
286
+ & .${c['virtualScroller--hasScrollX']} .${c['columnHeader--lastUnpinned']},
289
287
  & .${c['virtualScroller--hasScrollX']} .${c['columnHeader--last']}
290
288
  `]: {
291
289
  [`& .${c.columnSeparator}`]: {
@@ -400,9 +398,7 @@ export const GridRootStyles = styled('div', {
400
398
  '@media (hover: none)': {
401
399
  [`& .${c.columnHeader}`]: columnHeaderStyles,
402
400
  [`& .${c.columnHeader}:focus,
403
- & .${c.columnHeader}:focus-within,
404
- & .${c.columnHeader}:has(+ .${c.columnHeader}:focus),
405
- & .${c.columnHeader}:has(+ .${c.columnHeader}:focus-within)`]: {
401
+ & .${c['columnHeader--siblingFocused']}`]: {
406
402
  [`.${c['columnSeparator--resizable']}`]: {
407
403
  color: (t.vars || t).palette.primary.main
408
404
  }
@@ -74,7 +74,7 @@ const FilterFormOperatorInput = styled('div', {
74
74
  slot: 'FilterFormOperatorInput',
75
75
  overridesResolver: (_, styles) => styles.filterFormOperatorInput
76
76
  })({
77
- width: 120
77
+ width: 150
78
78
  });
79
79
  const FilterFormValueInput = styled('div', {
80
80
  name: 'MuiDataGrid',
@@ -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--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']);
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', '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']);
@@ -45,7 +45,9 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
45
45
  filterPanelInputPlaceholder: 'Filter value',
46
46
  // Filter operators text
47
47
  filterOperatorContains: 'contains',
48
+ filterOperatorDoesNotContain: 'does not contain',
48
49
  filterOperatorEquals: 'equals',
50
+ filterOperatorDoesNotEqual: 'does not equal',
49
51
  filterOperatorStartsWith: 'starts with',
50
52
  filterOperatorEndsWith: 'ends with',
51
53
  filterOperatorIs: 'is',
@@ -65,7 +67,9 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
65
67
  'filterOperator<=': '<=',
66
68
  // Header filter operators text
67
69
  headerFilterOperatorContains: 'Contains',
70
+ headerFilterOperatorDoesNotContain: 'Does not contain',
68
71
  headerFilterOperatorEquals: 'Equals',
72
+ headerFilterOperatorDoesNotEqual: 'Does not equal',
69
73
  headerFilterOperatorStartsWith: 'Starts with',
70
74
  headerFilterOperatorEndsWith: 'Ends with',
71
75
  headerFilterOperatorIs: 'Is',
@@ -157,6 +157,9 @@ export const useGridColumnHeaders = props => {
157
157
  columnIndex,
158
158
  computedWidth: colDef.computedWidth
159
159
  });
160
+ const siblingWithBorderingSeparator = pinnedPosition === GridPinnedColumnPosition.RIGHT ? renderedColumns[i - 1] : renderedColumns[i + 1];
161
+ const isSiblingFocused = siblingWithBorderingSeparator ? columnHeaderFocus !== null && columnHeaderFocus.field === siblingWithBorderingSeparator.field : false;
162
+ const isLastUnpinned = columnIndex + 1 === columnPositions.length - pinnedColumns.right.length;
160
163
  columns.push(/*#__PURE__*/_jsx(GridColumnHeaderItem, _extends({}, sortColumnLookup[colDef.field], {
161
164
  columnMenuOpen: open,
162
165
  filterItemsCounter: filterColumnLookup[colDef.field] && filterColumnLookup[colDef.field].length,
@@ -172,7 +175,9 @@ export const useGridColumnHeaders = props => {
172
175
  style: style,
173
176
  indexInSection: i,
174
177
  sectionLength: renderedColumns.length,
175
- gridHasFiller: gridHasFiller
178
+ gridHasFiller: gridHasFiller,
179
+ isLastUnpinned: isLastUnpinned,
180
+ isSiblingFocused: isSiblingFocused
176
181
  }, other), colDef.field));
177
182
  }
178
183
  return getFillers(params, columns, 0);
@@ -5,12 +5,12 @@ const _excluded = ["id", "field"],
5
5
  _excluded2 = ["id", "field"];
6
6
  import * as React from 'react';
7
7
  import { unstable_useEventCallback as useEventCallback, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
8
+ import { warnOnce } from '@mui/x-internals/warning';
8
9
  import { useGridApiEventHandler, useGridApiOptionHandler } from "../../utils/useGridApiEventHandler.js";
9
10
  import { GridEditModes, GridCellModes } from "../../../models/gridEditRowModel.js";
10
11
  import { useGridApiMethod } from "../../utils/useGridApiMethod.js";
11
12
  import { gridEditRowsStateSelector } from "./gridEditingSelectors.js";
12
13
  import { isPrintableKey, isPasteShortcut } from "../../../utils/keyboardUtils.js";
13
- import { warnOnce } from "../../../internals/utils/warning.js";
14
14
  import { gridRowsDataRowIdToIdLookupSelector } from "../rows/gridRowsSelector.js";
15
15
  import { deepClone } from "../../../utils/utils.js";
16
16
  import { GridCellEditStartReasons, GridCellEditStopReasons } from "../../../models/params/gridEditCellParams.js";
@@ -5,13 +5,13 @@ const _excluded = ["id"],
5
5
  _excluded2 = ["id"];
6
6
  import * as React from 'react';
7
7
  import { unstable_useEventCallback as useEventCallback, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
8
+ import { warnOnce } from '@mui/x-internals/warning';
8
9
  import { useGridApiEventHandler, useGridApiOptionHandler } from "../../utils/useGridApiEventHandler.js";
9
10
  import { GridEditModes, GridRowModes } from "../../../models/gridEditRowModel.js";
10
11
  import { useGridApiMethod } from "../../utils/useGridApiMethod.js";
11
12
  import { gridEditRowsStateSelector } from "./gridEditingSelectors.js";
12
13
  import { isPrintableKey, isPasteShortcut } from "../../../utils/keyboardUtils.js";
13
14
  import { gridColumnFieldsSelector, gridVisibleColumnFieldsSelector } from "../columns/gridColumnsSelector.js";
14
- import { warnOnce } from "../../../internals/utils/warning.js";
15
15
  import { gridRowsDataRowIdToIdLookupSelector } from "../rows/gridRowsSelector.js";
16
16
  import { deepClone } from "../../../utils/utils.js";
17
17
  import { GridRowEditStopReasons, GridRowEditStartReasons } from "../../../models/params/gridRowParams.js";
@@ -1,5 +1,5 @@
1
+ import { warnOnce } from '@mui/x-internals/warning';
1
2
  import { GRID_CHECKBOX_SELECTION_COL_DEF } from "../../../../colDef/index.js";
2
- import { warnOnce } from "../../../../internals/utils/warning.js";
3
3
  function sanitizeCellValue(value, csvOptions) {
4
4
  if (value === null || value === undefined) {
5
5
  return '';
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { warnOnce } from '@mui/x-internals/warning';
2
3
  import { GridLogicOperator } from "../../../models/index.js";
3
4
  import { getDefaultGridFilterModel } from "./gridFilterState.js";
4
- import { warnOnce } from "../../../internals/utils/warning.js";
5
5
  import { getPublicApiRef } from "../../../utils/getPublicApiRef.js";
6
6
  import { gridColumnFieldsSelector, gridColumnLookupSelector, gridVisibleColumnFieldsSelector } from "../columns/index.js";
7
7
  let hasEval;
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { warnOnce } from "../../../internals/utils/warning.js";
2
+ import { warnOnce } from '@mui/x-internals/warning';
3
3
  export const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {
4
4
  if (disableMultipleColumnsSorting && model.length > 1) {
5
5
  if (process.env.NODE_ENV !== 'production') {
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { fastObjectShallowCompare } from '@mui/x-internals/fastObjectShallowCompare';
3
+ import { warnOnce } from '@mui/x-internals/warning';
3
4
  import { useLazyRef } from "./useLazyRef.js";
4
5
  import { useOnMount } from "./useOnMount.js";
5
- import { warnOnce } from "../../internals/utils/warning.js";
6
6
  function isOutputSelector(selector) {
7
7
  return selector.acceptsApiRef;
8
8
  }
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.16.0
2
+ * @mui/x-data-grid v7.17.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,4 +1,3 @@
1
1
  export * from "./computeSlots.js";
2
2
  export * from "./useProps.js";
3
- export * from "./propValidation.js";
4
- export * from "./warning.js";
3
+ export * from "./propValidation.js";
@@ -1,4 +1,4 @@
1
- import { warnOnce } from "./warning.js";
1
+ import { warnOnce } from '@mui/x-internals/warning';
2
2
  import { isNumber } from "../../utils/utils.js";
3
3
  import { GridSignature } from "../../hooks/utils/useGridApiEventHandler.js";
4
4
  export const 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.paginationMode === 'client' && props.paginationMeta != null && ['MUI X: Usage of the `paginationMeta` prop with client-side pagination (`paginationMode="client"`) has no effect.', '`paginationMeta` is only meant to be used with `paginationMode="server"`.'].join('\n') || undefined, props => props.signature === GridSignature.DataGrid && props.paginationMode === 'client' && 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"`.'].join('\n') || undefined, props => props.paginationMode === 'server' && props.rowCount == null && !props.unstable_dataSource && ["MUI X: The `rowCount` prop must be passed using `paginationMode='server'`", 'For more detail, see http://mui.com/components/data-grid/pagination/#index-based-pagination'].join('\n') || undefined];
@@ -48,7 +48,9 @@ const arSDGrid = {
48
48
  filterPanelInputPlaceholder: 'ترشِيح قيمة',
49
49
  // Filter operators text
50
50
  filterOperatorContains: 'يحتوي',
51
+ // filterOperatorDoesNotContain: 'does not contain',
51
52
  filterOperatorEquals: 'يساوي',
53
+ // filterOperatorDoesNotEqual: 'does not equal',
52
54
  filterOperatorStartsWith: 'يبدأ بـ',
53
55
  filterOperatorEndsWith: 'ينتهي بـ',
54
56
  filterOperatorIs: 'يكون',
@@ -68,7 +70,9 @@ const arSDGrid = {
68
70
  'filterOperator<=': '<=',
69
71
  // Header filter operators text
70
72
  headerFilterOperatorContains: 'يحتوي على',
73
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
71
74
  headerFilterOperatorEquals: 'يساوي',
75
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
72
76
  headerFilterOperatorStartsWith: 'يبدأ ب',
73
77
  headerFilterOperatorEndsWith: 'ينتهي ب',
74
78
  headerFilterOperatorIs: 'هو',
@@ -62,7 +62,9 @@ const beBYGrid = {
62
62
  filterPanelInputPlaceholder: 'Значэнне фільтра',
63
63
  // Filter operators text
64
64
  filterOperatorContains: 'змяшчае',
65
+ // filterOperatorDoesNotContain: 'does not contain',
65
66
  filterOperatorEquals: 'роўны',
67
+ // filterOperatorDoesNotEqual: 'does not equal',
66
68
  filterOperatorStartsWith: 'пачынаецца з',
67
69
  filterOperatorEndsWith: 'скончваецца на',
68
70
  filterOperatorIs: 'роўны',
@@ -83,7 +85,9 @@ const beBYGrid = {
83
85
 
84
86
  // Header filter operators text
85
87
  // headerFilterOperatorContains: 'Contains',
88
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
86
89
  // headerFilterOperatorEquals: 'Equals',
90
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
87
91
  // headerFilterOperatorStartsWith: 'Starts with',
88
92
  // headerFilterOperatorEndsWith: 'Ends with',
89
93
  // headerFilterOperatorIs: 'Is',
@@ -48,7 +48,9 @@ const bgBGGrid = {
48
48
  filterPanelInputPlaceholder: 'Стойност на филтъра',
49
49
  // Filter operators text
50
50
  filterOperatorContains: 'съдържа',
51
+ // filterOperatorDoesNotContain: 'does not contain',
51
52
  filterOperatorEquals: 'равно',
53
+ // filterOperatorDoesNotEqual: 'does not equal',
52
54
  filterOperatorStartsWith: 'започва с',
53
55
  filterOperatorEndsWith: 'завършва с',
54
56
  filterOperatorIs: 'е',
@@ -68,7 +70,9 @@ const bgBGGrid = {
68
70
  'filterOperator<=': '<=',
69
71
  // Header filter operators text
70
72
  headerFilterOperatorContains: 'Съдържа',
73
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
71
74
  headerFilterOperatorEquals: 'Равнo',
75
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
72
76
  headerFilterOperatorStartsWith: 'Започва с',
73
77
  headerFilterOperatorEndsWith: 'Завършва с',
74
78
  headerFilterOperatorIs: 'Равно е на',
@@ -55,7 +55,9 @@ const csCZGrid = {
55
55
  filterPanelInputPlaceholder: 'Hodnota filtru',
56
56
  // Filter operators text
57
57
  filterOperatorContains: 'obsahuje',
58
+ // filterOperatorDoesNotContain: 'does not contain',
58
59
  filterOperatorEquals: 'rovná se',
60
+ // filterOperatorDoesNotEqual: 'does not equal',
59
61
  filterOperatorStartsWith: 'začíná na',
60
62
  filterOperatorEndsWith: 'končí na',
61
63
  filterOperatorIs: 'je',
@@ -75,7 +77,9 @@ const csCZGrid = {
75
77
  'filterOperator<=': '<=',
76
78
  // Header filter operators text
77
79
  headerFilterOperatorContains: 'Obsahuje',
80
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
78
81
  headerFilterOperatorEquals: 'Rovná se',
82
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
79
83
  headerFilterOperatorStartsWith: 'Začíná na',
80
84
  headerFilterOperatorEndsWith: 'Končí na',
81
85
  headerFilterOperatorIs: 'Je',
@@ -48,7 +48,9 @@ const daDKGrid = {
48
48
  filterPanelInputPlaceholder: 'Filterværdi',
49
49
  // Filter operators text
50
50
  filterOperatorContains: 'indeholder',
51
+ // filterOperatorDoesNotContain: 'does not contain',
51
52
  filterOperatorEquals: 'lig med',
53
+ // filterOperatorDoesNotEqual: 'does not equal',
52
54
  filterOperatorStartsWith: 'begynder med',
53
55
  filterOperatorEndsWith: 'ender med',
54
56
  filterOperatorIs: 'er lig med',
@@ -68,7 +70,9 @@ const daDKGrid = {
68
70
  'filterOperator<=': '<=',
69
71
  // Header filter operators text
70
72
  headerFilterOperatorContains: 'Indeholder',
73
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
71
74
  headerFilterOperatorEquals: 'Lig med',
75
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
72
76
  headerFilterOperatorStartsWith: 'Begynder med',
73
77
  headerFilterOperatorEndsWith: 'Ender med',
74
78
  headerFilterOperatorIs: 'Er lig med',
@@ -47,7 +47,9 @@ const deDEGrid = {
47
47
  filterPanelInputPlaceholder: 'Wert filtern',
48
48
  // Filter operators text
49
49
  filterOperatorContains: 'enthält',
50
+ // filterOperatorDoesNotContain: 'does not contain',
50
51
  filterOperatorEquals: 'ist gleich',
52
+ // filterOperatorDoesNotEqual: 'does not equal',
51
53
  filterOperatorStartsWith: 'beginnt mit',
52
54
  filterOperatorEndsWith: 'endet mit',
53
55
  filterOperatorIs: 'ist',
@@ -67,7 +69,9 @@ const deDEGrid = {
67
69
  'filterOperator<=': '<=',
68
70
  // Header filter operators text
69
71
  headerFilterOperatorContains: 'Enthält',
72
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
70
73
  headerFilterOperatorEquals: 'Gleich',
74
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
71
75
  headerFilterOperatorStartsWith: 'Beginnt mit',
72
76
  headerFilterOperatorEndsWith: 'Endet mit',
73
77
  headerFilterOperatorIs: 'Ist',
@@ -48,7 +48,9 @@ const elGRGrid = {
48
48
  filterPanelInputPlaceholder: 'Τιμή φίλτρου',
49
49
  // Filter operators text
50
50
  filterOperatorContains: 'περιέχει',
51
+ // filterOperatorDoesNotContain: 'does not contain',
51
52
  filterOperatorEquals: 'ισούται',
53
+ // filterOperatorDoesNotEqual: 'does not equal',
52
54
  filterOperatorStartsWith: 'ξεκινάει με',
53
55
  filterOperatorEndsWith: 'τελειώνει με',
54
56
  filterOperatorIs: 'είναι',
@@ -68,7 +70,9 @@ const elGRGrid = {
68
70
  'filterOperator<=': '<=',
69
71
  // Header filter operators text
70
72
  headerFilterOperatorContains: 'Περιέχει',
73
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
71
74
  headerFilterOperatorEquals: 'Ισούται',
75
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
72
76
  headerFilterOperatorStartsWith: 'Ξεκινάει με',
73
77
  headerFilterOperatorEndsWith: 'Τελειώνει με',
74
78
  headerFilterOperatorIs: 'Είναι',
@@ -47,7 +47,9 @@ const esESGrid = {
47
47
  filterPanelInputPlaceholder: 'Valor de filtro',
48
48
  // Filter operators text
49
49
  filterOperatorContains: 'contiene',
50
+ // filterOperatorDoesNotContain: 'does not contain',
50
51
  filterOperatorEquals: 'es igual',
52
+ // filterOperatorDoesNotEqual: 'does not equal',
51
53
  filterOperatorStartsWith: 'comienza con',
52
54
  filterOperatorEndsWith: 'termina con',
53
55
  filterOperatorIs: 'es',
@@ -67,7 +69,9 @@ const esESGrid = {
67
69
  'filterOperator<=': '<=',
68
70
  // Header filter operators text
69
71
  headerFilterOperatorContains: 'Contiene',
72
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
70
73
  headerFilterOperatorEquals: 'Es igual a',
74
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
71
75
  headerFilterOperatorStartsWith: 'Comienza con',
72
76
  headerFilterOperatorEndsWith: 'Termina con',
73
77
  headerFilterOperatorIs: 'Es',
@@ -47,7 +47,9 @@ const faIRGrid = {
47
47
  filterPanelInputPlaceholder: 'فیلتر مقدار',
48
48
  // Filter operators text
49
49
  filterOperatorContains: 'شامل',
50
+ // filterOperatorDoesNotContain: 'does not contain',
50
51
  filterOperatorEquals: 'مساوی',
52
+ // filterOperatorDoesNotEqual: 'does not equal',
51
53
  filterOperatorStartsWith: 'شروع با',
52
54
  filterOperatorEndsWith: 'پایان با',
53
55
  filterOperatorIs: 'هست',
@@ -67,7 +69,9 @@ const faIRGrid = {
67
69
  'filterOperator<=': '<=',
68
70
  // Header filter operators text
69
71
  headerFilterOperatorContains: 'شامل',
72
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
70
73
  headerFilterOperatorEquals: 'مساوی',
74
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
71
75
  headerFilterOperatorStartsWith: 'شروع با',
72
76
  headerFilterOperatorEndsWith: 'پایان با',
73
77
  headerFilterOperatorIs: 'هست',
@@ -47,7 +47,9 @@ const fiFIGrid = {
47
47
  filterPanelInputPlaceholder: 'Suodattimen arvo',
48
48
  // Filter operators text
49
49
  filterOperatorContains: 'sisältää',
50
+ // filterOperatorDoesNotContain: 'does not contain',
50
51
  filterOperatorEquals: 'on yhtä suuri kuin',
52
+ // filterOperatorDoesNotEqual: 'does not equal',
51
53
  filterOperatorStartsWith: 'alkaa',
52
54
  filterOperatorEndsWith: 'päättyy',
53
55
  filterOperatorIs: 'on',
@@ -67,7 +69,9 @@ const fiFIGrid = {
67
69
  'filterOperator<=': '<=',
68
70
  // Header filter operators text
69
71
  headerFilterOperatorContains: 'Sisältää',
72
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
70
73
  headerFilterOperatorEquals: 'On yhtä suuri kuin',
74
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
71
75
  headerFilterOperatorStartsWith: 'Alkaa',
72
76
  headerFilterOperatorEndsWith: 'Päättyy',
73
77
  headerFilterOperatorIs: 'On',
@@ -47,7 +47,9 @@ const frFRGrid = {
47
47
  filterPanelInputPlaceholder: 'Filtrer la valeur',
48
48
  // Filter operators text
49
49
  filterOperatorContains: 'contient',
50
+ // filterOperatorDoesNotContain: 'does not contain',
50
51
  filterOperatorEquals: 'est égal à',
52
+ // filterOperatorDoesNotEqual: 'does not equal',
51
53
  filterOperatorStartsWith: 'commence par',
52
54
  filterOperatorEndsWith: 'se termine par',
53
55
  filterOperatorIs: 'est',
@@ -67,7 +69,9 @@ const frFRGrid = {
67
69
  'filterOperator<=': '<=',
68
70
  // Header filter operators text
69
71
  headerFilterOperatorContains: 'Contient',
72
+ // headerFilterOperatorDoesNotContain: 'Does not contain',
70
73
  headerFilterOperatorEquals: 'Est égal à',
74
+ // headerFilterOperatorDoesNotEqual: 'Does not equal',
71
75
  headerFilterOperatorStartsWith: 'Commence par',
72
76
  headerFilterOperatorEndsWith: 'Se termine par',
73
77
  headerFilterOperatorIs: 'Est',