@mui/x-data-grid-premium 7.1.1 → 7.3.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,167 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 7.3.0
7
+
8
+ _Apr 18, 2024_
9
+
10
+ We'd like to offer a big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 📄 Support [unknown and estimated row count in server-side pagination](https://mui.com/x/react-data-grid/pagination/#index-based-pagination) (#12490) @MBilalShafi
13
+ - 🎨 Support color scales in Charts (#12490) @alexfauquette
14
+ Add a [`colorMap` configuration](https://mui.com/x/react-charts/styling/#values-color) to an axis, and the chart will use it to select colors.
15
+ Each impacted chart ([bar charts](https://mui.com/x/react-charts/bars/#color-scale), [line charts](https://mui.com/x/react-charts/lines/#color-scale), [scatter charts](https://mui.com/x/react-charts/scatter/#color-scale)) has a dedicated section explaining how this color map is impacting it.
16
+
17
+ <img src="https://github.com/mui/mui-x/assets/45398769/f0066606-3486-4c4e-b3be-7fdd56d763c3" alt="scatter chart with gradient along y-axis" />
18
+
19
+ - 🌍 Improve Danish (da-DK) locale on the Data Grid
20
+ - 🐞 Bugfixes
21
+ - 📚 Documentation improvements
22
+
23
+ ### Data Grid
24
+
25
+ #### `@mui/x-data-grid@7.3.0`
26
+
27
+ - [DataGrid] Fix calling `onCellEditStop` on error (#12747) @sai6855
28
+ - [DataGrid] Fix column resize (#12792) @romgrk
29
+ - [DataGrid] Fix column separators (#12808) @romgrk
30
+ - [DataGrid] Limit panel width to not exceed screen width (#12799) @cherniavskii
31
+ - [DataGrid] Support advanced server-side pagination use cases (#12474) @MBilalShafi
32
+ - [DataGrid] Support state export and restore on grid density (#12671) @MBilalShafi
33
+ - [l10n] Improve Danish (da-DK) locale (#12784) @EmilBahnsen
34
+
35
+ #### `@mui/x-data-grid-pro@7.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
36
+
37
+ Same changes as in `@mui/x-data-grid@7.3.0`, plus:
38
+
39
+ - [DataGridPro] Implement header filter height (#12666) @romgrk
40
+
41
+ #### `@mui/x-data-grid-premium@7.3.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
42
+
43
+ Same changes as in `@mui/x-data-grid-pro@7.3.0`.
44
+
45
+ ### Charts
46
+
47
+ #### Breaking change
48
+
49
+ A typo fix:
50
+
51
+ ```diff
52
+ - ContinuouseScaleName
53
+ + ContinuousScaleName
54
+ ```
55
+
56
+ #### `@mui/x-charts@7.3.0`
57
+
58
+ - [charts] Add `dataIndex` to series `valueFormatter` (#12745) @JCQuintas
59
+ - [charts] Add color scale (#12490) @alexfauquette
60
+ - [charts] Do not document the usage of `DEFAULT_X_AXIS_KEY` and `DEFAULT_Y_AXIS_KEY` (#12780) @alexfauquette
61
+ - [charts] Export more utils (#12744) @alexfauquette
62
+ - [charts] Fix passing slot props down to `PieArcLabel` (#12806) @JCQuintas
63
+
64
+ ### Tree View
65
+
66
+ #### `@mui/x-tree-view@7.3.0`
67
+
68
+ - [TreeView] Support `defaultMuiPrevented` on the `onFocus` prop of the root slot (#12813) @flaviendelangle
69
+
70
+ ### Docs
71
+
72
+ - [docs] Add grid cell display example to the migration guide (#12793) @romgrk
73
+ - [docs] Use charts classes objects (#12781) @alexfauquette
74
+ - [docs] Fix layout shift on demos (#12816) @zanivan
75
+ - [test] Increase timeout for test that sometimes fail on `DateTimeRangePicker` (#12786) @LukasTy
76
+
77
+ ### Core
78
+
79
+ - [docs-infra] Prepare infra to document charts interfaces (#12653) @alexfauquette
80
+
81
+ ## 7.2.0
82
+
83
+ _Apr 12, 2024_
84
+
85
+ We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
86
+
87
+ - 🎨 Make grid colors customizable through the MUI themes API
88
+ - 🌍 Improve French (fr-FR), German (de-DE), and Swedish (sv-SE) locales on the Data Grid and Pickers
89
+ - 🐞 Bugfixes
90
+ - 📚 Documentation improvements
91
+
92
+ ### Data Grid
93
+
94
+ #### `@mui/x-data-grid@7.2.0`
95
+
96
+ - [DataGrid] Add missing `api` property to `GridCallbackDetails` (#12742) @sai6855
97
+ - [DataGrid] Do not escape double quotes when copying to clipboard (#12722) @cherniavskii
98
+ - [DataGrid] Fix column vertical border (#12741) @romgrk
99
+ - [DataGrid] Fix invalid date error when filtering `date`/`dateTime` columns (#12709) @cherniavskii
100
+ - [DataGrid] Fix overflow with dynamic row height (#12683) @romgrk
101
+ - [DataGrid] Make colors customizable (#12614) @romgrk
102
+ - [l10n] Improve French (fr-FR) locale (#12755) @derek-0000
103
+ - [l10n] Improve German (de-DE) locale (#12752) @Jens-Schoen
104
+ - [l10n] Improve Swedish (sv-SE) locale (#12731) @pontusdacke
105
+
106
+ #### `@mui/x-data-grid-pro@7.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
107
+
108
+ Same changes as in `@mui/x-data-grid@7.2.0`.
109
+
110
+ #### `@mui/x-data-grid-premium@7.2.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
111
+
112
+ Same changes as in `@mui/x-data-grid-pro@7.2.0`, plus:
113
+
114
+ - [DataGridPremium] Fix clipboard paste not working when cell loses focus (#12724) @cherniavskii
115
+
116
+ ### Date and Time Pickers
117
+
118
+ #### `@mui/x-date-pickers@7.2.0`
119
+
120
+ - [fields] Fix field editing after closing the picker (#12675) @LukasTy
121
+ - [l10n] Improve French (fr-FR) locale (#12692) @FaroukBel
122
+ - [l10n] Improve German (de-DE) locale (#12752) @Jens-Schoen
123
+ - [l10n] Improve Swedish (sv-SE) locale (#12731) @pontusdacke
124
+ - [pickers] Fix desktop date time Pickers grid layout (#12748) @LukasTy
125
+
126
+ #### `@mui/x-date-pickers-pro@7.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
127
+
128
+ Same changes as in `@mui/x-date-pickers@7.2.0`, plus:
129
+
130
+ - [DateTimeRangePicker] Fix desktop toolbar style (#12760) @LukasTy
131
+
132
+ ### Charts
133
+
134
+ #### `@mui/x-charts@7.2.0`
135
+
136
+ - [charts] Fix Bar chart with empty dataset throwing an error (#12708) @JCQuintas
137
+ - [charts] Fix `tickLabelInterval` not working on `YAxis` (#12746) @JCQuintas
138
+
139
+ ### Tree View
140
+
141
+ #### `@mui/x-tree-view@7.2.0`
142
+
143
+ - [TreeView] Add a new lookup to access an item index without expansive computation (#12729) @flaviendelangle
144
+ - [TreeView] Clean up usage of term "node" in internals (#12655) @noraleonte
145
+ - [TreeView] Improve performance by removing `getNavigableChildrenIds` method (#12713) @flaviendelangle
146
+ - [TreeView] Remove `state.items.itemTree` (#12717) @flaviendelangle
147
+ - [TreeView] Remove remaining occurences of the word "node" in the codebase (#12712) @flaviendelangle
148
+ - [TreeView] Return `instance` and `publicAPI` methods from plugin and populate the main objects inside `useTreeView` (#12650) @flaviendelangle
149
+ - [TreeView] Fix behaviors when the item order changes (#12369) @flaviendelangle
150
+
151
+ ### Docs
152
+
153
+ - [docs] Add `AxisFormatter` documentation for customizing tick/tooltip value formatting (#12700) @JCQuintas
154
+ - [docs] Add file explorer example to rich tree view customization docs (#12707) @noraleonte
155
+ - [docs] Do not use import of depth 3 in the doc (#12716) @flaviendelangle
156
+ - [docs] Explain how to clip plots with composition (#12679) @alexfauquette
157
+ - [docs] Fix typo in Data Grid v7 migration page (#12720) @bfaulk96
158
+ - [docs] Fix typo in Pickers v7 migration page (#12721) @bfaulk96
159
+
160
+ ### Core
161
+
162
+ - [core] Support multiple resolved `l10n` PR packages (#12735) @LukasTy
163
+ - [core] Update Netlify release references in release README (#12687) @LukasTy
164
+ - [core] Use `describeTreeView` for icons tests (#12672) @flaviendelangle
165
+ - [core] Use `describeTreeView` in existing tests for `useTreeViewItems` (#12732) @flaviendelangle
166
+
6
167
  ## 7.1.1
7
168
 
8
169
  _Apr 5, 2024_
@@ -2972,6 +3133,56 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
2972
3133
  - [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
2973
3134
  - [license] Correctly throw errors (#10924) @oliviertassinari
2974
3135
 
3136
+ ## 6.19.11
3137
+
3138
+ _Apr 18, 2024_
3139
+
3140
+ We'd like to offer a big thanks to the 1 contributor who made this release possible. Here are some highlights ✨:
3141
+
3142
+ - 🐞 Bugfixes
3143
+
3144
+ ### Data Grid
3145
+
3146
+ #### `@mui/x-data-grid@6.19.11`
3147
+
3148
+ - [DataGrid] Fix virtualization memory leak (#12812) @romgrk
3149
+
3150
+ #### `@mui/x-data-grid-pro@6.19.11` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
3151
+
3152
+ Same changes as in `@mui/x-data-grid@6.19.11`.
3153
+
3154
+ #### `@mui/x-data-grid-premium@6.19.11` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
3155
+
3156
+ Same changes as in `@mui/x-data-grid-pro@6.19.11`.
3157
+
3158
+ ## 6.19.10
3159
+
3160
+ _Apr 12, 2024_
3161
+
3162
+ We'd like to offer a big thanks to the 2 contributors who made this release possible. Here are some highlights ✨:
3163
+
3164
+ - 🐞 Bugfixes
3165
+ - 📚 Documentation improvements
3166
+
3167
+ ### Data Grid
3168
+
3169
+ #### `@mui/x-data-grid@6.19.10`
3170
+
3171
+ - [DataGrid] Do not escape double quotes when copying to clipboard (#12734) @cherniavskii
3172
+ - [DataGrid] Fix bug in suspense (#12754) @cherniavskii
3173
+
3174
+ #### `@mui/x-data-grid-pro@6.19.10` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
3175
+
3176
+ Same changes as in `@mui/x-data-grid@6.19.10`.
3177
+
3178
+ #### `@mui/x-data-grid-premium@6.19.10` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
3179
+
3180
+ Same changes as in `@mui/x-data-grid-pro@6.19.10`.
3181
+
3182
+ ### Core
3183
+
3184
+ - [core] Update the docs release source branch (#12685) @LukasTy
3185
+
2975
3186
  ## 6.19.9
2976
3187
 
2977
3188
  _Apr 5, 2024_
@@ -285,6 +285,12 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
285
285
  * @default "cell"
286
286
  */
287
287
  editMode: _propTypes.default.oneOf(['cell', 'row']),
288
+ /**
289
+ * Use if the actual rowCount is not known upfront, but an estimation is available.
290
+ * If some rows have children (for instance in the tree data), this number represents the amount of top level rows.
291
+ * Applicable only with `paginationMode="server"` and when `rowCount="-1"`
292
+ */
293
+ estimatedRowCount: _propTypes.default.number,
288
294
  /**
289
295
  * Unstable features, breaking changes might be introduced.
290
296
  * For each feature, if the flag is not explicitly set to `true`, then the feature is fully disabled, and neither property nor method calls will have any effect.
@@ -392,6 +398,10 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
392
398
  * The grouping column used by the tree data.
393
399
  */
394
400
  groupingColDef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
401
+ /**
402
+ * Override the height of the header filters.
403
+ */
404
+ headerFilterHeight: _propTypes.default.number,
395
405
  /**
396
406
  * If `true`, enables the data grid filtering on header feature.
397
407
  * @default false
@@ -683,6 +693,11 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
683
693
  * @param {GridCallbackDetails} details Additional details for this callback.
684
694
  */
685
695
  onMenuOpen: _propTypes.default.func,
696
+ /**
697
+ * Callback fired when the pagination meta has changed.
698
+ * @param {GridPaginationMeta} paginationMeta Updated pagination meta.
699
+ */
700
+ onPaginationMetaChange: _propTypes.default.func,
686
701
  /**
687
702
  * Callback fired when the pagination model has changed.
688
703
  * @param {GridPaginationModel} model Updated pagination model.
@@ -812,6 +827,13 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
812
827
  * @default false
813
828
  */
814
829
  pagination: _propTypes.default.bool,
830
+ /**
831
+ * The extra information about the pagination state of the Data Grid.
832
+ * Only applicable with `paginationMode="server"`.
833
+ */
834
+ paginationMeta: _propTypes.default.shape({
835
+ hasNextPage: _propTypes.default.bool
836
+ }),
815
837
  /**
816
838
  * Pagination can be processed on the server or client-side.
817
839
  * Set it to 'client' if you would like to handle the pagination on the client-side.
@@ -858,6 +880,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
858
880
  /**
859
881
  * Set the total number of rows, if it is different from the length of the value `rows` prop.
860
882
  * If some rows have children (for instance in the tree data), this number represents the amount of top level rows.
883
+ * Only works with `paginationMode="server"`, ignored when `paginationMode="client"`.
861
884
  */
862
885
  rowCount: _propTypes.default.number,
863
886
  /**
@@ -278,6 +278,12 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
278
278
  * @default "cell"
279
279
  */
280
280
  editMode: PropTypes.oneOf(['cell', 'row']),
281
+ /**
282
+ * Use if the actual rowCount is not known upfront, but an estimation is available.
283
+ * If some rows have children (for instance in the tree data), this number represents the amount of top level rows.
284
+ * Applicable only with `paginationMode="server"` and when `rowCount="-1"`
285
+ */
286
+ estimatedRowCount: PropTypes.number,
281
287
  /**
282
288
  * Unstable features, breaking changes might be introduced.
283
289
  * For each feature, if the flag is not explicitly set to `true`, then the feature is fully disabled, and neither property nor method calls will have any effect.
@@ -385,6 +391,10 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
385
391
  * The grouping column used by the tree data.
386
392
  */
387
393
  groupingColDef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
394
+ /**
395
+ * Override the height of the header filters.
396
+ */
397
+ headerFilterHeight: PropTypes.number,
388
398
  /**
389
399
  * If `true`, enables the data grid filtering on header feature.
390
400
  * @default false
@@ -676,6 +686,11 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
676
686
  * @param {GridCallbackDetails} details Additional details for this callback.
677
687
  */
678
688
  onMenuOpen: PropTypes.func,
689
+ /**
690
+ * Callback fired when the pagination meta has changed.
691
+ * @param {GridPaginationMeta} paginationMeta Updated pagination meta.
692
+ */
693
+ onPaginationMetaChange: PropTypes.func,
679
694
  /**
680
695
  * Callback fired when the pagination model has changed.
681
696
  * @param {GridPaginationModel} model Updated pagination model.
@@ -805,6 +820,13 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
805
820
  * @default false
806
821
  */
807
822
  pagination: PropTypes.bool,
823
+ /**
824
+ * The extra information about the pagination state of the Data Grid.
825
+ * Only applicable with `paginationMode="server"`.
826
+ */
827
+ paginationMeta: PropTypes.shape({
828
+ hasNextPage: PropTypes.bool
829
+ }),
808
830
  /**
809
831
  * Pagination can be processed on the server or client-side.
810
832
  * Set it to 'client' if you would like to handle the pagination on the client-side.
@@ -851,6 +873,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
851
873
  /**
852
874
  * Set the total number of rows, if it is different from the length of the value `rows` prop.
853
875
  * If some rows have children (for instance in the tree data), this number represents the amount of top level rows.
876
+ * Only works with `paginationMode="server"`, ignored when `paginationMode="client"`.
854
877
  */
855
878
  rowCount: PropTypes.number,
856
879
  /**
@@ -21,7 +21,7 @@ export const useGridCellSelection = (apiRef, props) => {
21
21
  const autoScrollRAF = React.useRef();
22
22
  const sortedRowIds = useGridSelector(apiRef, gridSortedRowIdsSelector);
23
23
  const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
24
- const totalHeaderHeight = getTotalHeaderHeight(apiRef, props.columnHeaderHeight);
24
+ const totalHeaderHeight = getTotalHeaderHeight(apiRef, props);
25
25
  const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
26
26
  const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
27
27
  const clipboardCopyCellDelimiter = props.clipboardCopyCellDelimiter;
@@ -447,7 +447,7 @@ export const useGridCellSelection = (apiRef, props) => {
447
447
  cellData = serializeCellValue(cellParams, {
448
448
  delimiterCharacter: clipboardCopyCellDelimiter,
449
449
  ignoreValueFormatter,
450
- shouldAppendQuotes: true
450
+ shouldAppendQuotes: false
451
451
  });
452
452
  } else {
453
453
  cellData = '';
@@ -156,7 +156,8 @@ function defaultPasteResolver({
156
156
  }) {
157
157
  const isSingleValuePasted = pastedData.length === 1 && pastedData[0].length === 1;
158
158
  const cellSelectionModel = apiRef.current.getCellSelectionModel();
159
- if (cellSelectionModel && apiRef.current.getSelectedCellsAsArray().length > 1) {
159
+ const selectedCellsArray = apiRef.current.getSelectedCellsAsArray();
160
+ if (cellSelectionModel && selectedCellsArray.length > 1) {
160
161
  Object.keys(cellSelectionModel).forEach((rowId, rowIndex) => {
161
162
  const rowDataArr = pastedData[isSingleValuePasted ? 0 : rowIndex];
162
163
  const hasRowData = isSingleValuePasted ? true : rowDataArr !== undefined;
@@ -207,7 +208,10 @@ function defaultPasteResolver({
207
208
  });
208
209
  return;
209
210
  }
210
- const selectedCell = gridFocusCellSelector(apiRef);
211
+ let selectedCell = gridFocusCellSelector(apiRef);
212
+ if (!selectedCell && selectedCellsArray.length === 1) {
213
+ selectedCell = selectedCellsArray[0];
214
+ }
211
215
  if (!selectedCell) {
212
216
  return;
213
217
  }
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTcxMjI2NDQwMDAwMA==";
3
+ const releaseInfo = "MTcxMzM5MTIwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -31,7 +31,7 @@ const useGridCellSelection = (apiRef, props) => {
31
31
  const autoScrollRAF = React.useRef();
32
32
  const sortedRowIds = (0, _xDataGridPro.useGridSelector)(apiRef, _xDataGridPro.gridSortedRowIdsSelector);
33
33
  const dimensions = (0, _xDataGridPro.useGridSelector)(apiRef, _xDataGridPro.gridDimensionsSelector);
34
- const totalHeaderHeight = (0, _internals.getTotalHeaderHeight)(apiRef, props.columnHeaderHeight);
34
+ const totalHeaderHeight = (0, _internals.getTotalHeaderHeight)(apiRef, props);
35
35
  const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
36
36
  const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
37
37
  const clipboardCopyCellDelimiter = props.clipboardCopyCellDelimiter;
@@ -457,7 +457,7 @@ const useGridCellSelection = (apiRef, props) => {
457
457
  cellData = (0, _internals.serializeCellValue)(cellParams, {
458
458
  delimiterCharacter: clipboardCopyCellDelimiter,
459
459
  ignoreValueFormatter,
460
- shouldAppendQuotes: true
460
+ shouldAppendQuotes: false
461
461
  });
462
462
  } else {
463
463
  cellData = '';
@@ -165,7 +165,8 @@ function defaultPasteResolver({
165
165
  }) {
166
166
  const isSingleValuePasted = pastedData.length === 1 && pastedData[0].length === 1;
167
167
  const cellSelectionModel = apiRef.current.getCellSelectionModel();
168
- if (cellSelectionModel && apiRef.current.getSelectedCellsAsArray().length > 1) {
168
+ const selectedCellsArray = apiRef.current.getSelectedCellsAsArray();
169
+ if (cellSelectionModel && selectedCellsArray.length > 1) {
169
170
  Object.keys(cellSelectionModel).forEach((rowId, rowIndex) => {
170
171
  const rowDataArr = pastedData[isSingleValuePasted ? 0 : rowIndex];
171
172
  const hasRowData = isSingleValuePasted ? true : rowDataArr !== undefined;
@@ -216,7 +217,10 @@ function defaultPasteResolver({
216
217
  });
217
218
  return;
218
219
  }
219
- const selectedCell = (0, _xDataGrid.gridFocusCellSelector)(apiRef);
220
+ let selectedCell = (0, _xDataGrid.gridFocusCellSelector)(apiRef);
221
+ if (!selectedCell && selectedCellsArray.length === 1) {
222
+ selectedCell = selectedCellsArray[0];
223
+ }
220
224
  if (!selectedCell) {
221
225
  return;
222
226
  }
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-premium v7.1.1
2
+ * @mui/x-data-grid-premium v7.3.0
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -278,6 +278,12 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
278
278
  * @default "cell"
279
279
  */
280
280
  editMode: PropTypes.oneOf(['cell', 'row']),
281
+ /**
282
+ * Use if the actual rowCount is not known upfront, but an estimation is available.
283
+ * If some rows have children (for instance in the tree data), this number represents the amount of top level rows.
284
+ * Applicable only with `paginationMode="server"` and when `rowCount="-1"`
285
+ */
286
+ estimatedRowCount: PropTypes.number,
281
287
  /**
282
288
  * Unstable features, breaking changes might be introduced.
283
289
  * For each feature, if the flag is not explicitly set to `true`, then the feature is fully disabled, and neither property nor method calls will have any effect.
@@ -385,6 +391,10 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
385
391
  * The grouping column used by the tree data.
386
392
  */
387
393
  groupingColDef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
394
+ /**
395
+ * Override the height of the header filters.
396
+ */
397
+ headerFilterHeight: PropTypes.number,
388
398
  /**
389
399
  * If `true`, enables the data grid filtering on header feature.
390
400
  * @default false
@@ -676,6 +686,11 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
676
686
  * @param {GridCallbackDetails} details Additional details for this callback.
677
687
  */
678
688
  onMenuOpen: PropTypes.func,
689
+ /**
690
+ * Callback fired when the pagination meta has changed.
691
+ * @param {GridPaginationMeta} paginationMeta Updated pagination meta.
692
+ */
693
+ onPaginationMetaChange: PropTypes.func,
679
694
  /**
680
695
  * Callback fired when the pagination model has changed.
681
696
  * @param {GridPaginationModel} model Updated pagination model.
@@ -805,6 +820,13 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
805
820
  * @default false
806
821
  */
807
822
  pagination: PropTypes.bool,
823
+ /**
824
+ * The extra information about the pagination state of the Data Grid.
825
+ * Only applicable with `paginationMode="server"`.
826
+ */
827
+ paginationMeta: PropTypes.shape({
828
+ hasNextPage: PropTypes.bool
829
+ }),
808
830
  /**
809
831
  * Pagination can be processed on the server or client-side.
810
832
  * Set it to 'client' if you would like to handle the pagination on the client-side.
@@ -851,6 +873,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
851
873
  /**
852
874
  * Set the total number of rows, if it is different from the length of the value `rows` prop.
853
875
  * If some rows have children (for instance in the tree data), this number represents the amount of top level rows.
876
+ * Only works with `paginationMode="server"`, ignored when `paginationMode="client"`.
854
877
  */
855
878
  rowCount: PropTypes.number,
856
879
  /**
@@ -21,7 +21,7 @@ export const useGridCellSelection = (apiRef, props) => {
21
21
  const autoScrollRAF = React.useRef();
22
22
  const sortedRowIds = useGridSelector(apiRef, gridSortedRowIdsSelector);
23
23
  const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
24
- const totalHeaderHeight = getTotalHeaderHeight(apiRef, props.columnHeaderHeight);
24
+ const totalHeaderHeight = getTotalHeaderHeight(apiRef, props);
25
25
  const ignoreValueFormatterProp = props.ignoreValueFormatterDuringExport;
26
26
  const ignoreValueFormatter = (typeof ignoreValueFormatterProp === 'object' ? ignoreValueFormatterProp?.clipboardExport : ignoreValueFormatterProp) || false;
27
27
  const clipboardCopyCellDelimiter = props.clipboardCopyCellDelimiter;
@@ -447,7 +447,7 @@ export const useGridCellSelection = (apiRef, props) => {
447
447
  cellData = serializeCellValue(cellParams, {
448
448
  delimiterCharacter: clipboardCopyCellDelimiter,
449
449
  ignoreValueFormatter,
450
- shouldAppendQuotes: true
450
+ shouldAppendQuotes: false
451
451
  });
452
452
  } else {
453
453
  cellData = '';
@@ -156,7 +156,8 @@ function defaultPasteResolver({
156
156
  }) {
157
157
  const isSingleValuePasted = pastedData.length === 1 && pastedData[0].length === 1;
158
158
  const cellSelectionModel = apiRef.current.getCellSelectionModel();
159
- if (cellSelectionModel && apiRef.current.getSelectedCellsAsArray().length > 1) {
159
+ const selectedCellsArray = apiRef.current.getSelectedCellsAsArray();
160
+ if (cellSelectionModel && selectedCellsArray.length > 1) {
160
161
  Object.keys(cellSelectionModel).forEach((rowId, rowIndex) => {
161
162
  const rowDataArr = pastedData[isSingleValuePasted ? 0 : rowIndex];
162
163
  const hasRowData = isSingleValuePasted ? true : rowDataArr !== undefined;
@@ -207,7 +208,10 @@ function defaultPasteResolver({
207
208
  });
208
209
  return;
209
210
  }
210
- const selectedCell = gridFocusCellSelector(apiRef);
211
+ let selectedCell = gridFocusCellSelector(apiRef);
212
+ if (!selectedCell && selectedCellsArray.length === 1) {
213
+ selectedCell = selectedCellsArray[0];
214
+ }
211
215
  if (!selectedCell) {
212
216
  return;
213
217
  }
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-premium v7.1.1
2
+ * @mui/x-data-grid-premium v7.3.0
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTcxMjI2NDQwMDAwMA==";
3
+ const releaseInfo = "MTcxMzM5MTIwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid-premium",
3
- "version": "7.1.1",
3
+ "version": "7.3.0",
4
4
  "description": "The Premium plan edition of the Data Grid Components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./index.js",
@@ -35,9 +35,9 @@
35
35
  "@babel/runtime": "^7.24.0",
36
36
  "@mui/system": "^5.15.14",
37
37
  "@mui/utils": "^5.15.14",
38
- "@mui/x-data-grid": "7.1.1",
39
- "@mui/x-data-grid-pro": "7.1.1",
40
- "@mui/x-license": "7.1.1",
38
+ "@mui/x-data-grid": "7.3.0",
39
+ "@mui/x-data-grid-pro": "7.3.0",
40
+ "@mui/x-license": "7.2.0",
41
41
  "@types/format-util": "^1.0.4",
42
42
  "clsx": "^2.1.0",
43
43
  "exceljs": "^4.4.0",
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getReleaseInfo = void 0;
7
7
  var _utils = require("@mui/utils");
8
8
  const getReleaseInfo = () => {
9
- const releaseInfo = "MTcxMjI2NDQwMDAwMA==";
9
+ const releaseInfo = "MTcxMzM5MTIwMDAwMA==";
10
10
  if (process.env.NODE_ENV !== 'production') {
11
11
  // A simple hack to set the value in the test environment (has no build step).
12
12
  // eslint-disable-next-line no-useless-concat