@mui/x-data-grid 7.10.0 → 7.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +169 -0
  2. package/components/panel/GridPanel.d.ts +1 -1
  3. package/components/panel/GridPanel.js +4 -1
  4. package/components/panel/GridPreferencesPanel.d.ts +1 -1
  5. package/components/panel/GridPreferencesPanel.js +3 -4
  6. package/components/panel/filterPanel/GridFilterForm.js +1 -12
  7. package/components/panel/filterPanel/GridFilterInputMultipleValue.d.ts +1 -1
  8. package/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  9. package/hooks/core/useGridApiInitialization.js +2 -2
  10. package/hooks/features/columnResize/useGridColumnResize.js +1 -0
  11. package/hooks/features/editing/gridEditingSelectors.d.ts +3 -0
  12. package/hooks/features/editing/gridEditingSelectors.js +3 -1
  13. package/hooks/features/editing/index.d.ts +1 -0
  14. package/hooks/features/editing/index.js +1 -0
  15. package/hooks/features/editing/useGridCellEditing.js +2 -3
  16. package/hooks/features/editing/useGridRowEditing.js +2 -3
  17. package/hooks/features/export/serializers/csvSerializer.js +7 -8
  18. package/hooks/features/filter/gridFilterUtils.js +12 -9
  19. package/hooks/features/index.d.ts +1 -0
  20. package/hooks/features/index.js +1 -0
  21. package/hooks/features/sorting/gridSortingUtils.js +2 -3
  22. package/hooks/utils/useGridApiEventHandler.d.ts +3 -2
  23. package/hooks/utils/useGridApiEventHandler.js +1 -0
  24. package/hooks/utils/useGridSelector.js +2 -3
  25. package/index.js +1 -1
  26. package/internals/index.d.ts +0 -1
  27. package/internals/index.js +0 -1
  28. package/internals/utils/index.d.ts +1 -0
  29. package/internals/utils/index.js +2 -1
  30. package/internals/utils/propValidation.d.ts +0 -1
  31. package/internals/utils/propValidation.js +4 -13
  32. package/internals/utils/warning.d.ts +2 -0
  33. package/internals/utils/warning.js +21 -0
  34. package/locales/deDE.js +1 -2
  35. package/locales/index.d.ts +2 -0
  36. package/locales/index.js +3 -1
  37. package/locales/isIS.d.ts +2 -0
  38. package/locales/isIS.js +149 -0
  39. package/locales/nbNO.js +30 -32
  40. package/locales/nnNO.d.ts +2 -0
  41. package/locales/nnNO.js +148 -0
  42. package/locales/ruRU.js +4 -5
  43. package/models/api/gridCoreApi.d.ts +1 -1
  44. package/modern/components/panel/GridPanel.js +4 -1
  45. package/modern/components/panel/GridPreferencesPanel.js +3 -4
  46. package/modern/components/panel/filterPanel/GridFilterForm.js +1 -12
  47. package/modern/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  48. package/modern/hooks/core/useGridApiInitialization.js +2 -2
  49. package/modern/hooks/features/columnResize/useGridColumnResize.js +1 -0
  50. package/modern/hooks/features/editing/gridEditingSelectors.js +3 -1
  51. package/modern/hooks/features/editing/index.js +1 -0
  52. package/modern/hooks/features/editing/useGridCellEditing.js +2 -3
  53. package/modern/hooks/features/editing/useGridRowEditing.js +2 -3
  54. package/modern/hooks/features/export/serializers/csvSerializer.js +7 -8
  55. package/modern/hooks/features/filter/gridFilterUtils.js +12 -9
  56. package/modern/hooks/features/index.js +1 -0
  57. package/modern/hooks/features/sorting/gridSortingUtils.js +2 -3
  58. package/modern/hooks/utils/useGridApiEventHandler.js +1 -0
  59. package/modern/hooks/utils/useGridSelector.js +2 -3
  60. package/modern/index.js +1 -1
  61. package/modern/internals/index.js +0 -1
  62. package/modern/internals/utils/index.js +2 -1
  63. package/modern/internals/utils/propValidation.js +4 -13
  64. package/modern/internals/utils/warning.js +21 -0
  65. package/modern/locales/deDE.js +1 -2
  66. package/modern/locales/index.js +3 -1
  67. package/modern/locales/isIS.js +149 -0
  68. package/modern/locales/nbNO.js +30 -32
  69. package/modern/locales/nnNO.js +148 -0
  70. package/modern/locales/ruRU.js +4 -5
  71. package/modern/utils/createSelector.js +4 -5
  72. package/node/components/panel/GridPanel.js +4 -1
  73. package/node/components/panel/GridPreferencesPanel.js +4 -5
  74. package/node/components/panel/filterPanel/GridFilterForm.js +1 -12
  75. package/node/components/panel/filterPanel/GridFilterInputMultipleValue.js +1 -1
  76. package/node/hooks/core/useGridApiInitialization.js +2 -2
  77. package/node/hooks/features/columnResize/useGridColumnResize.js +1 -0
  78. package/node/hooks/features/editing/gridEditingSelectors.js +3 -1
  79. package/node/hooks/features/editing/index.js +16 -0
  80. package/node/hooks/features/editing/useGridCellEditing.js +2 -3
  81. package/node/hooks/features/editing/useGridRowEditing.js +2 -3
  82. package/node/hooks/features/export/serializers/csvSerializer.js +7 -8
  83. package/node/hooks/features/filter/gridFilterUtils.js +12 -9
  84. package/node/hooks/features/index.js +11 -0
  85. package/node/hooks/features/sorting/gridSortingUtils.js +2 -3
  86. package/node/hooks/utils/useGridApiEventHandler.js +1 -0
  87. package/node/hooks/utils/useGridSelector.js +2 -3
  88. package/node/index.js +1 -1
  89. package/node/internals/index.js +0 -8
  90. package/node/internals/utils/index.js +11 -0
  91. package/node/internals/utils/propValidation.js +4 -14
  92. package/node/internals/utils/warning.js +28 -0
  93. package/node/locales/deDE.js +1 -2
  94. package/node/locales/index.js +22 -0
  95. package/node/locales/isIS.js +155 -0
  96. package/node/locales/nbNO.js +30 -32
  97. package/node/locales/nnNO.js +154 -0
  98. package/node/locales/ruRU.js +4 -5
  99. package/node/utils/createSelector.js +4 -5
  100. package/package.json +5 -5
  101. package/utils/createSelector.d.ts +1 -1
  102. package/utils/createSelector.js +4 -5
  103. package/modern/utils/EventManager.js +0 -69
  104. package/modern/utils/warning.js +0 -24
  105. package/node/utils/EventManager.js +0 -76
  106. package/node/utils/warning.js +0 -32
  107. package/utils/EventManager.d.ts +0 -29
  108. package/utils/EventManager.js +0 -69
  109. package/utils/warning.d.ts +0 -2
  110. package/utils/warning.js +0 -24
@@ -0,0 +1,148 @@
1
+ import { nnNO as nnNOCore } from '@mui/material/locale';
2
+ import { getGridLocalization } from '../utils/getGridLocalization';
3
+ const nnNOGrid = {
4
+ // Root
5
+ noRowsLabel: 'Ingen rader',
6
+ noResultsOverlayLabel: 'Fann ingen resultat.',
7
+ // Density selector toolbar button text
8
+ toolbarDensity: 'Tettheit',
9
+ toolbarDensityLabel: 'Tettheit',
10
+ toolbarDensityCompact: 'Kompakt',
11
+ toolbarDensityStandard: 'Standard',
12
+ toolbarDensityComfortable: 'Komfortabelt',
13
+ // Columns selector toolbar button text
14
+ toolbarColumns: 'Kolonner',
15
+ toolbarColumnsLabel: 'Vel kolonner',
16
+ // Filters toolbar button text
17
+ toolbarFilters: 'Filter',
18
+ toolbarFiltersLabel: 'Vis filter',
19
+ toolbarFiltersTooltipHide: 'Skjul filter',
20
+ toolbarFiltersTooltipShow: 'Vis filter',
21
+ toolbarFiltersTooltipActive: count => count !== 1 ? `${count} aktive filter` : `${count} aktivt filter`,
22
+ // Quick filter toolbar field
23
+ toolbarQuickFilterPlaceholder: 'Søk…',
24
+ toolbarQuickFilterLabel: 'Søk',
25
+ toolbarQuickFilterDeleteIconLabel: 'Slett',
26
+ // Export selector toolbar button text
27
+ toolbarExport: 'Eksporter',
28
+ toolbarExportLabel: 'Eksporter',
29
+ toolbarExportCSV: 'Last ned som CSV',
30
+ toolbarExportPrint: 'Skriv ut',
31
+ toolbarExportExcel: 'Last ned som Excel',
32
+ // Columns management text
33
+ columnsManagementSearchTitle: 'Søk',
34
+ columnsManagementNoColumns: 'Ingen kolonner',
35
+ columnsManagementShowHideAllText: 'Vis/skjul alle',
36
+ columnsManagementReset: 'Nullstill',
37
+ // Filter panel text
38
+ filterPanelAddFilter: 'Legg til filter',
39
+ filterPanelRemoveAll: 'Fjern alle',
40
+ filterPanelDeleteIconLabel: 'Slett',
41
+ filterPanelLogicOperator: 'Logisk operator',
42
+ filterPanelOperator: 'Operator',
43
+ filterPanelOperatorAnd: 'Og',
44
+ filterPanelOperatorOr: 'Eller',
45
+ filterPanelColumns: 'Kolonner',
46
+ filterPanelInputLabel: 'Verdi',
47
+ filterPanelInputPlaceholder: 'Filter verdi',
48
+ // Filter operators text
49
+ filterOperatorContains: 'inneheld',
50
+ filterOperatorEquals: 'er lik',
51
+ filterOperatorStartsWith: 'startar med',
52
+ filterOperatorEndsWith: 'sluttar med',
53
+ filterOperatorIs: 'er',
54
+ filterOperatorNot: 'er ikkje',
55
+ filterOperatorAfter: 'er etter',
56
+ filterOperatorOnOrAfter: 'er på eller etter',
57
+ filterOperatorBefore: 'er før',
58
+ filterOperatorOnOrBefore: 'er på eller før',
59
+ filterOperatorIsEmpty: 'er tom',
60
+ filterOperatorIsNotEmpty: 'er ikkje tom',
61
+ filterOperatorIsAnyOf: 'er ein av',
62
+ 'filterOperator=': '=',
63
+ 'filterOperator!=': '!=',
64
+ 'filterOperator>': '>',
65
+ 'filterOperator>=': '>=',
66
+ 'filterOperator<': '<',
67
+ 'filterOperator<=': '<=',
68
+ // Header filter operators text
69
+ headerFilterOperatorContains: 'Inneheld',
70
+ headerFilterOperatorEquals: 'Lik',
71
+ headerFilterOperatorStartsWith: 'Startar på',
72
+ headerFilterOperatorEndsWith: 'Sluttar på',
73
+ headerFilterOperatorIs: 'Er',
74
+ headerFilterOperatorNot: 'Er ikkje',
75
+ headerFilterOperatorAfter: 'Er etter',
76
+ headerFilterOperatorOnOrAfter: 'Er på eller etter',
77
+ headerFilterOperatorBefore: 'Er før',
78
+ headerFilterOperatorOnOrBefore: 'Er på eller før',
79
+ headerFilterOperatorIsEmpty: 'Er tom',
80
+ headerFilterOperatorIsNotEmpty: 'Er ikkje tom',
81
+ headerFilterOperatorIsAnyOf: 'Er ein av',
82
+ 'headerFilterOperator=': 'Lik',
83
+ 'headerFilterOperator!=': 'Ikkje lik',
84
+ 'headerFilterOperator>': 'Større enn',
85
+ 'headerFilterOperator>=': 'Større enn eller lik',
86
+ 'headerFilterOperator<': 'Mindre enn',
87
+ 'headerFilterOperator<=': 'Mindre enn eller lik',
88
+ // Filter values text
89
+ filterValueAny: 'nokon',
90
+ filterValueTrue: 'sant',
91
+ filterValueFalse: 'usant',
92
+ // Column menu text
93
+ columnMenuLabel: 'Meny',
94
+ columnMenuShowColumns: 'Vis kolonner',
95
+ columnMenuManageColumns: 'Administrer kolonner',
96
+ columnMenuFilter: 'Filter',
97
+ columnMenuHideColumn: 'Skjul',
98
+ columnMenuUnsort: 'Usorter',
99
+ columnMenuSortAsc: 'Sorter AUKANDE',
100
+ columnMenuSortDesc: 'Sorter SYNKANDE',
101
+ // Column header text
102
+ columnHeaderFiltersTooltipActive: count => count !== 1 ? `${count} aktive filter` : `${count} aktivt filter`,
103
+ columnHeaderFiltersLabel: 'Vis filter',
104
+ columnHeaderSortIconLabel: 'Sorter',
105
+ // Rows selected footer text
106
+ footerRowSelected: count => count !== 1 ? `${count.toLocaleString()} rader valt` : `${count.toLocaleString()} rad valt`,
107
+ // Total row amount footer text
108
+ footerTotalRows: 'Totalt tal rader:',
109
+ // Total visible row amount footer text
110
+ footerTotalVisibleRows: (visibleCount, totalCount) => `${visibleCount.toLocaleString()} av ${totalCount.toLocaleString()}`,
111
+ // Checkbox selection text
112
+ checkboxSelectionHeaderName: 'Avmerkingsboks',
113
+ checkboxSelectionSelectAllRows: 'Vel alle rader',
114
+ checkboxSelectionUnselectAllRows: 'Vel vekk alle rader',
115
+ checkboxSelectionSelectRow: 'Vel rad',
116
+ checkboxSelectionUnselectRow: 'Vel vekk rad',
117
+ // Boolean cell text
118
+ booleanCellTrueLabel: 'sant',
119
+ booleanCellFalseLabel: 'usant',
120
+ // Actions cell more text
121
+ actionsCellMore: 'meir',
122
+ // Column pinning text
123
+ pinToLeft: 'Fest til venstre',
124
+ pinToRight: 'Fest til høgre',
125
+ unpin: 'Lausne',
126
+ // Tree Data
127
+ treeDataGroupingHeaderName: 'Grupper',
128
+ treeDataExpand: 'vis barn',
129
+ treeDataCollapse: 'skjul barn',
130
+ // Grouping columns
131
+ groupingColumnHeaderName: 'Grupper',
132
+ groupColumn: name => `Grupper på ${name}`,
133
+ unGroupColumn: name => `Slutt å grupper på ${name}`,
134
+ // Master/detail
135
+ detailPanelToggle: 'Utvid/kollaps detalj panel',
136
+ expandDetailPanel: 'Utvid',
137
+ collapseDetailPanel: 'Kolaps',
138
+ // Row reordering text
139
+ rowReorderingHeaderName: 'Radreorganisering',
140
+ // Aggregation
141
+ aggregationMenuItemHeader: 'Aggregering',
142
+ aggregationFunctionLabelSum: 'sum',
143
+ aggregationFunctionLabelAvg: 'snitt',
144
+ aggregationFunctionLabelMin: 'min',
145
+ aggregationFunctionLabelMax: 'maks',
146
+ aggregationFunctionLabelSize: 'størrelse'
147
+ };
148
+ export const nnNO = getGridLocalization(nnNOGrid, nnNOCore);
@@ -45,11 +45,10 @@ const ruRUGrid = {
45
45
  toolbarExportPrint: 'Печать',
46
46
  toolbarExportExcel: 'Скачать в формате Excel',
47
47
  // Columns management text
48
- // columnsManagementSearchTitle: 'Search',
49
- // columnsManagementNoColumns: 'No columns',
50
- // columnsManagementShowHideAllText: 'Show/Hide All',
51
- // columnsManagementReset: 'Reset',
52
-
48
+ columnsManagementSearchTitle: 'Поиск',
49
+ columnsManagementNoColumns: 'Нет столбцов',
50
+ columnsManagementShowHideAllText: 'Показать/Скрыть Всё',
51
+ columnsManagementReset: 'Сбросить',
53
52
  // Filter panel text
54
53
  filterPanelAddFilter: 'Добавить фильтр',
55
54
  filterPanelRemoveAll: 'Очистить фильтр',
@@ -1,15 +1,14 @@
1
1
  import { createSelector as reselectCreateSelector } from 'reselect';
2
- import { buildWarning } from './warning';
2
+ import { warnOnce } from '../internals/utils/warning';
3
3
  const cache = new WeakMap();
4
- const missingInstanceIdWarning = buildWarning(['MUI X: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, for example `mySelector(apiRef)`, or pass the instance ID explicitly, for example `mySelector(state, apiRef.current.instanceId)`.']);
5
4
  function checkIsAPIRef(value) {
6
5
  return 'current' in value && 'instanceId' in value.current;
7
6
  }
8
7
  const DEFAULT_INSTANCE_ID = {
9
8
  id: 'default'
10
9
  };
11
- export const createSelector = (a, b, c, d, e, f, ...rest) => {
12
- if (rest.length > 0) {
10
+ export const createSelector = (a, b, c, d, e, f, ...other) => {
11
+ if (other.length > 0) {
13
12
  throw new Error('Unsupported number of selectors');
14
13
  }
15
14
  let selector;
@@ -79,7 +78,7 @@ export const createSelectorMemoized = (...args) => {
79
78
  const state = isAPIRef ? stateOrApiRef.current.state : stateOrApiRef;
80
79
  if (process.env.NODE_ENV !== 'production') {
81
80
  if (cacheKey.id === 'default') {
82
- missingInstanceIdWarning();
81
+ warnOnce(['MUI X: A selector was called without passing the instance ID, which may impact the performance of the grid.', 'To fix, call it with `apiRef`, for example `mySelector(apiRef)`, or pass the instance ID explicitly, for example `mySelector(state, apiRef.current.instanceId)`.']);
83
82
  }
84
83
  }
85
84
  const cacheArgsInit = cache.get(cacheKey);
@@ -66,7 +66,10 @@ const GridPanel = exports.GridPanel = /*#__PURE__*/React.forwardRef((props, ref)
66
66
  }, [apiRef]);
67
67
  const modifiers = React.useMemo(() => [{
68
68
  name: 'flip',
69
- enabled: false
69
+ enabled: true,
70
+ options: {
71
+ rootBoundary: 'document'
72
+ }
70
73
  }, {
71
74
  name: 'isPlaced',
72
75
  enabled: true,
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.GridPreferencesPanel = void 0;
7
+ exports.GridPreferencesPanel = GridPreferencesPanel;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _gridColumnsSelector = require("../../hooks/features/columns/gridColumnsSelector");
@@ -16,19 +16,18 @@ var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  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); }
18
18
  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 && {}.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; }
19
- const GridPreferencesPanel = exports.GridPreferencesPanel = /*#__PURE__*/React.forwardRef(function GridPreferencesPanel(props, ref) {
19
+ function GridPreferencesPanel() {
20
20
  const apiRef = (0, _useGridApiContext.useGridApiContext)();
21
21
  const columns = (0, _useGridSelector.useGridSelector)(apiRef, _gridColumnsSelector.gridColumnDefinitionsSelector);
22
22
  const rootProps = (0, _useGridRootProps.useGridRootProps)();
23
23
  const preferencePanelState = (0, _useGridSelector.useGridSelector)(apiRef, _gridPreferencePanelSelector.gridPreferencePanelStateSelector);
24
24
  const panelContent = apiRef.current.unstable_applyPipeProcessors('preferencePanel', null, preferencePanelState.openedPanelValue ?? _gridPreferencePanelsValue.GridPreferencePanelsValue.filters);
25
25
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.panel, (0, _extends2.default)({
26
- ref: ref,
27
26
  as: rootProps.slots.basePopper,
28
27
  open: columns.length > 0 && preferencePanelState.open,
29
28
  id: preferencePanelState.panelId,
30
29
  "aria-labelledby": preferencePanelState.labelId
31
- }, rootProps.slotProps?.panel, props, rootProps.slotProps?.basePopper, {
30
+ }, rootProps.slotProps?.panel, rootProps.slotProps?.basePopper, {
32
31
  children: panelContent
33
32
  }));
34
- });
33
+ }
@@ -252,18 +252,7 @@ const GridFilterForm = exports.GridFilterForm = /*#__PURE__*/React.forwardRef(fu
252
252
  applyMultiFilterOperatorChanges(logicOperator);
253
253
  }, [applyMultiFilterOperatorChanges]);
254
254
  const handleDeleteFilter = () => {
255
- if (rootProps.disableMultipleColumnsFiltering) {
256
- if (item.value === undefined) {
257
- deleteFilter(item);
258
- } else {
259
- // TODO v6: simplify the behavior by always remove the filter form
260
- applyFilterChanges((0, _extends2.default)({}, item, {
261
- value: undefined
262
- }));
263
- }
264
- } else {
265
- deleteFilter(item);
266
- }
255
+ deleteFilter(item);
267
256
  };
268
257
  React.useImperativeHandle(focusElementRef, () => ({
269
258
  focus: () => {
@@ -97,5 +97,5 @@ process.env.NODE_ENV !== "production" ? GridFilterInputMultipleValue.propTypes =
97
97
  operator: _propTypes.default.string.isRequired,
98
98
  value: _propTypes.default.any
99
99
  }).isRequired,
100
- type: _propTypes.default.oneOf(['number', 'text'])
100
+ type: _propTypes.default.oneOf(['date', 'datetime-local', 'number', 'text'])
101
101
  } : void 0;
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.unwrapPrivateAPI = unwrapPrivateAPI;
7
7
  exports.useGridApiInitialization = useGridApiInitialization;
8
8
  var React = _interopRequireWildcard(require("react"));
9
+ var _EventManager = require("@mui/x-internals/EventManager");
9
10
  var _Store = require("../../utils/Store");
10
11
  var _useGridApiMethod = require("../utils/useGridApiMethod");
11
12
  var _useGridApiEventHandler = require("../utils/useGridApiEventHandler");
12
- var _EventManager = require("../../utils/EventManager");
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 && {}.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 SYMBOL_API_PRIVATE = Symbol('mui.api_private');
@@ -91,7 +91,7 @@ function useGridApiInitialization(inputApiRef, props) {
91
91
  if (isSyntheticEvent(event) && event.isPropagationStopped()) {
92
92
  return;
93
93
  }
94
- const details = props.signature === _useGridApiEventHandler.GridSignature.DataGridPro ? {
94
+ const details = props.signature === _useGridApiEventHandler.GridSignature.DataGridPro || props.signature === _useGridApiEventHandler.GridSignature.DataGridPremium ? {
95
95
  api: privateApiRef.current.getPublicApi()
96
96
  } : {};
97
97
  privateApiRef.current.eventManager.emit(name, params, event, details);
@@ -277,6 +277,7 @@ const useGridColumnResize = (apiRef, props) => {
277
277
  // Check if the current event is part of a double-click
278
278
  if (nativeEvent.timeStamp - prevTimeStamp < 300 && nativeEvent.clientX === prevClientX && nativeEvent.clientY === prevClientY) {
279
279
  refs.previousMouseClickEvent = undefined;
280
+ apiRef.current.publishEvent('columnResizeStop', null, nativeEvent);
280
281
  return;
281
282
  }
282
283
  }
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.gridEditRowsStateSelector = void 0;
7
- // TODO v6: rename to gridEditingStateSelector
7
+ /**
8
+ * Select the row editing state.
9
+ */
8
10
  const gridEditRowsStateSelector = state => state.editRows;
9
11
  exports.gridEditRowsStateSelector = gridEditRowsStateSelector;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _gridEditingSelectors = require("./gridEditingSelectors");
7
+ Object.keys(_gridEditingSelectors).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _gridEditingSelectors[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _gridEditingSelectors[key];
14
+ }
15
+ });
16
+ });
@@ -15,7 +15,7 @@ var _gridEditRowModel = require("../../../models/gridEditRowModel");
15
15
  var _useGridApiMethod = require("../../utils/useGridApiMethod");
16
16
  var _gridEditingSelectors = require("./gridEditingSelectors");
17
17
  var _keyboardUtils = require("../../../utils/keyboardUtils");
18
- var _warning = require("../../../utils/warning");
18
+ var _warning = require("../../../internals/utils/warning");
19
19
  var _gridRowsSelector = require("../rows/gridRowsSelector");
20
20
  var _utils2 = require("../../../utils/utils");
21
21
  var _gridEditCellParams = require("../../../models/params/gridEditCellParams");
@@ -23,7 +23,6 @@ const _excluded = ["id", "field"],
23
23
  _excluded2 = ["id", "field"];
24
24
  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); }
25
25
  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 && {}.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; }
26
- const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
27
26
  const useGridCellEditing = (apiRef, props) => {
28
27
  const [cellModesModel, setCellModesModel] = React.useState({});
29
28
  const cellModesModelRef = React.useRef(cellModesModel);
@@ -345,7 +344,7 @@ const useGridCellEditing = (apiRef, props) => {
345
344
  if (onProcessRowUpdateError) {
346
345
  onProcessRowUpdateError(errorThrown);
347
346
  } else if (process.env.NODE_ENV !== 'production') {
348
- missingOnProcessRowUpdateErrorWarning();
347
+ (0, _warning.warnOnce)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
349
348
  }
350
349
  };
351
350
  try {
@@ -16,7 +16,7 @@ var _useGridApiMethod = require("../../utils/useGridApiMethod");
16
16
  var _gridEditingSelectors = require("./gridEditingSelectors");
17
17
  var _keyboardUtils = require("../../../utils/keyboardUtils");
18
18
  var _gridColumnsSelector = require("../columns/gridColumnsSelector");
19
- var _warning = require("../../../utils/warning");
19
+ var _warning = require("../../../internals/utils/warning");
20
20
  var _gridRowsSelector = require("../rows/gridRowsSelector");
21
21
  var _utils2 = require("../../../utils/utils");
22
22
  var _gridRowParams = require("../../../models/params/gridRowParams");
@@ -25,7 +25,6 @@ const _excluded = ["id"],
25
25
  _excluded2 = ["id"];
26
26
  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); }
27
27
  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 && {}.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; }
28
- const missingOnProcessRowUpdateErrorWarning = (0, _warning.buildWarning)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
29
28
  const useGridRowEditing = (apiRef, props) => {
30
29
  const [rowModesModel, setRowModesModel] = React.useState({});
31
30
  const rowModesModelRef = React.useRef(rowModesModel);
@@ -398,7 +397,7 @@ const useGridRowEditing = (apiRef, props) => {
398
397
  if (onProcessRowUpdateError) {
399
398
  onProcessRowUpdateError(errorThrown);
400
399
  } else if (process.env.NODE_ENV !== 'production') {
401
- missingOnProcessRowUpdateErrorWarning();
400
+ (0, _warning.warnOnce)(['MUI X: A call to `processRowUpdate` threw an error which was not handled because `onProcessRowUpdateError` is missing.', 'To handle the error pass a callback to the `onProcessRowUpdateError` prop, for example `<DataGrid onProcessRowUpdateError={(error) => ...} />`.', 'For more detail, see https://mui.com/x/react-data-grid/editing/#server-side-persistence.'], 'error');
402
401
  }
403
402
  };
404
403
  try {
@@ -6,21 +6,21 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.buildCSV = buildCSV;
7
7
  exports.serializeCellValue = void 0;
8
8
  var _colDef = require("../../../../colDef");
9
- var _warning = require("../../../../utils/warning");
9
+ var _warning = require("../../../../internals/utils/warning");
10
10
  function sanitizeCellValue(value, csvOptions) {
11
11
  const valueStr = typeof value === 'string' ? value : `${value}`;
12
12
  if (csvOptions.shouldAppendQuotes || csvOptions.escapeFormulas) {
13
13
  const escapedValue = valueStr.replace(/"/g, '""');
14
- // Make sure value containing delimiter or line break won't be split into multiple cells
15
- if ([csvOptions.delimiter, '\n', '\r', '"'].some(delimiter => valueStr.includes(delimiter))) {
16
- return `"${escapedValue}"`;
17
- }
18
14
  if (csvOptions.escapeFormulas) {
19
15
  // See https://owasp.org/www-community/attacks/CSV_Injection
20
16
  if (['=', '+', '-', '@', '\t', '\r'].includes(escapedValue[0])) {
21
- return `'${escapedValue}`;
17
+ return `"'${escapedValue}"`;
22
18
  }
23
19
  }
20
+ // Make sure value containing delimiter or line break won't be split into multiple cells
21
+ if ([csvOptions.delimiter, '\n', '\r', '"'].some(delimiter => valueStr.includes(delimiter))) {
22
+ return `"${escapedValue}"`;
23
+ }
24
24
  return escapedValue;
25
25
  }
26
26
  return valueStr;
@@ -48,7 +48,6 @@ const serializeCellValue = (cellParams, options) => {
48
48
  return sanitizeCellValue(value, csvOptions);
49
49
  };
50
50
  exports.serializeCellValue = serializeCellValue;
51
- const objectFormattedValueWarning = (0, _warning.buildWarning)(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
52
51
  class CSVRow {
53
52
  constructor(options) {
54
53
  this.options = void 0;
@@ -87,7 +86,7 @@ const serializeRow = ({
87
86
  const cellParams = getCellParams(id, column.field);
88
87
  if (process.env.NODE_ENV !== 'production') {
89
88
  if (String(cellParams.formattedValue) === '[object Object]') {
90
- objectFormattedValueWarning();
89
+ (0, _warning.warnOnce)(['MUI X: When the value of a field is an object or a `renderCell` is provided, the CSV export might not display the value correctly.', 'You can provide a `valueFormatter` with a string representation to be used.']);
91
90
  }
92
91
  }
93
92
  row.addValue(serializeCellValue(cellParams, {
@@ -8,7 +8,7 @@ exports.shouldQuickFilterExcludeHiddenColumns = exports.sanitizeFilterModel = ex
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _models = require("../../../models");
10
10
  var _gridFilterState = require("./gridFilterState");
11
- var _warning = require("../../../utils/warning");
11
+ var _warning = require("../../../internals/utils/warning");
12
12
  var _getPublicApiRef = require("../../../utils/getPublicApiRef");
13
13
  var _columns = require("../columns");
14
14
  let hasEval;
@@ -44,25 +44,28 @@ const cleanFilterItem = (item, apiRef) => {
44
44
  return cleanItem;
45
45
  };
46
46
  exports.cleanFilterItem = cleanFilterItem;
47
- const filterModelDisableMultiColumnsFilteringWarning = (0, _warning.buildWarning)(['MUI X: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
48
- const filterModelMissingItemIdWarning = (0, _warning.buildWarning)('MUI X: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
49
- const filterModelMissingItemOperatorWarning = (0, _warning.buildWarning)('MUI X: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
50
47
  const sanitizeFilterModel = (model, disableMultipleColumnsFiltering, apiRef) => {
51
48
  const hasSeveralItems = model.items.length > 1;
52
49
  let items;
53
50
  if (hasSeveralItems && disableMultipleColumnsFiltering) {
54
- filterModelDisableMultiColumnsFilteringWarning();
51
+ if (process.env.NODE_ENV !== 'production') {
52
+ (0, _warning.warnOnce)(['MUI X: The `filterModel` can only contain a single item when the `disableMultipleColumnsFiltering` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
53
+ }
55
54
  items = [model.items[0]];
56
55
  } else {
57
56
  items = model.items;
58
57
  }
59
58
  const hasItemsWithoutIds = hasSeveralItems && items.some(item => item.id == null);
60
59
  const hasItemWithoutOperator = items.some(item => item.operator == null);
61
- if (hasItemsWithoutIds) {
62
- filterModelMissingItemIdWarning();
60
+ if (process.env.NODE_ENV !== 'production') {
61
+ if (hasItemsWithoutIds) {
62
+ (0, _warning.warnOnce)('MUI X: The `id` field is required on `filterModel.items` when you use multiple filters.', 'error');
63
+ }
63
64
  }
64
- if (hasItemWithoutOperator) {
65
- filterModelMissingItemOperatorWarning();
65
+ if (process.env.NODE_ENV !== 'production') {
66
+ if (hasItemWithoutOperator) {
67
+ (0, _warning.warnOnce)('MUI X: The `operator` field is required on `filterModel.items`, one or more of your filtering item has no `operator` provided.', 'error');
68
+ }
66
69
  }
67
70
  if (hasItemWithoutOperator || hasItemsWithoutIds) {
68
71
  return (0, _extends2.default)({}, model, {
@@ -58,6 +58,17 @@ Object.keys(_density).forEach(function (key) {
58
58
  }
59
59
  });
60
60
  });
61
+ var _editing = require("./editing");
62
+ Object.keys(_editing).forEach(function (key) {
63
+ if (key === "default" || key === "__esModule") return;
64
+ if (key in exports && exports[key] === _editing[key]) return;
65
+ Object.defineProperty(exports, key, {
66
+ enumerable: true,
67
+ get: function () {
68
+ return _editing[key];
69
+ }
70
+ });
71
+ });
61
72
  var _filter = require("./filter");
62
73
  Object.keys(_filter).forEach(function (key) {
63
74
  if (key === "default" || key === "__esModule") return;
@@ -6,12 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.sanitizeSortModel = exports.mergeStateWithSortModel = exports.gridStringOrNumberComparator = exports.gridNumberComparator = exports.gridDateComparator = exports.getNextGridSortDirection = exports.buildAggregatedSortingApplier = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _warning = require("../../../utils/warning");
10
- const sortModelDisableMultiColumnsSortingWarning = (0, _warning.buildWarning)(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
9
+ var _warning = require("../../../internals/utils/warning");
11
10
  const sanitizeSortModel = (model, disableMultipleColumnsSorting) => {
12
11
  if (disableMultipleColumnsSorting && model.length > 1) {
13
12
  if (process.env.NODE_ENV !== 'production') {
14
- sortModelDisableMultiColumnsSortingWarning();
13
+ (0, _warning.warnOnce)(['MUI X: The `sortModel` can only contain a single item when the `disableMultipleColumnsSorting` prop is set to `true`.', 'If you are using the community version of the `DataGrid`, this prop is always `true`.'], 'error');
15
14
  }
16
15
  return [model[0]];
17
16
  }
@@ -19,6 +19,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
19
19
  var GridSignature = exports.GridSignature = /*#__PURE__*/function (GridSignature) {
20
20
  GridSignature["DataGrid"] = "DataGrid";
21
21
  GridSignature["DataGridPro"] = "DataGridPro";
22
+ GridSignature["DataGridPremium"] = "DataGridPremium";
22
23
  return GridSignature;
23
24
  }(GridSignature || {});
24
25
  // We use class to make it easier to detect in heap snapshots by name
@@ -7,11 +7,10 @@ exports.useGridSelector = exports.objectShallowCompare = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _useLazyRef = require("./useLazyRef");
9
9
  var _useOnMount = require("./useOnMount");
10
- var _warning = require("../../utils/warning");
10
+ var _warning = require("../../internals/utils/warning");
11
11
  var _fastObjectShallowCompare = require("../../utils/fastObjectShallowCompare");
12
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); }
13
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 && {}.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; }
14
- const stateNotInitializedWarning = (0, _warning.buildWarning)(['MUI X: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);
15
14
  function isOutputSelector(selector) {
16
15
  return selector.acceptsApiRef;
17
16
  }
@@ -31,7 +30,7 @@ const createRefs = () => ({
31
30
  const useGridSelector = (apiRef, selector, equals = defaultCompare) => {
32
31
  if (process.env.NODE_ENV !== 'production') {
33
32
  if (!apiRef.current.state) {
34
- stateNotInitializedWarning();
33
+ (0, _warning.warnOnce)(['MUI X: `useGridSelector` has been called before the initialization of the state.', 'This hook can only be used inside the context of the grid.']);
35
34
  }
36
35
  }
37
36
  const refs = (0, _useLazyRef.useLazyRef)(createRefs);
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v7.10.0
2
+ * @mui/x-data-grid v7.11.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -87,7 +87,6 @@ var _exportNames = {
87
87
  isEventTargetInPortal: true,
88
88
  isNavigationKey: true,
89
89
  isPasteShortcut: true,
90
- buildWarning: true,
91
90
  exportAs: true,
92
91
  useGridPrivateApiContext: true,
93
92
  serializeCellValue: true
@@ -152,12 +151,6 @@ Object.defineProperty(exports, "buildRootGroup", {
152
151
  return _gridRowsUtils.buildRootGroup;
153
152
  }
154
153
  });
155
- Object.defineProperty(exports, "buildWarning", {
156
- enumerable: true,
157
- get: function () {
158
- return _warning.buildWarning;
159
- }
160
- });
161
154
  Object.defineProperty(exports, "calculatePinnedRowsHeight", {
162
155
  enumerable: true,
163
156
  get: function () {
@@ -750,7 +743,6 @@ Object.keys(_fastMemo).forEach(function (key) {
750
743
  }
751
744
  });
752
745
  });
753
- var _warning = require("../utils/warning");
754
746
  var _exportAs = require("../utils/exportAs");
755
747
  var _getPublicApiRef = require("../utils/getPublicApiRef");
756
748
  Object.keys(_getPublicApiRef).forEach(function (key) {
@@ -35,4 +35,15 @@ Object.keys(_propValidation).forEach(function (key) {
35
35
  return _propValidation[key];
36
36
  }
37
37
  });
38
+ });
39
+ var _warning = require("./warning");
40
+ Object.keys(_warning).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _warning[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _warning[key];
47
+ }
48
+ });
38
49
  });
@@ -3,27 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.clearWarningsCache = clearWarningsCache;
7
6
  exports.propValidatorsDataGrid = void 0;
8
7
  exports.validateProps = validateProps;
8
+ var _warning = require("./warning");
9
9
  var _utils = require("../../utils/utils");
10
10
  var _useGridApiEventHandler = require("../../hooks/utils/useGridApiEventHandler");
11
11
  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.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 === _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"`.'].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];
12
- const warnedOnceCache = new Set();
13
- function warnOnce(message) {
14
- if (!warnedOnceCache.has(message)) {
15
- console.error(message);
16
- warnedOnceCache.add(message);
17
- }
18
- }
19
12
  function validateProps(props, validators) {
20
13
  validators.forEach(validator => {
21
- const warning = validator(props);
22
- if (warning) {
23
- warnOnce(warning);
14
+ const message = validator(props);
15
+ if (message) {
16
+ (0, _warning.warnOnce)(message, 'error');
24
17
  }
25
18
  });
26
- }
27
- function clearWarningsCache() {
28
- warnedOnceCache.clear();
29
19
  }