@mui/x-data-grid-premium 8.9.1 → 8.10.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 (96) hide show
  1. package/CHANGELOG.md +217 -8
  2. package/DataGridPremium/DataGridPremium.js +27 -10
  3. package/DataGridPremium/useDataGridPremiumComponent.js +5 -0
  4. package/components/GridColumnMenuPivotItem.js +4 -3
  5. package/components/GridDataSourceGroupingCriteriaCell.js +3 -1
  6. package/components/pivotPanel/GridPivotPanelHeader.js +1 -1
  7. package/components/pivotPanel/PivotPanelTrigger.js +6 -1
  8. package/components/sidebar/Sidebar.d.ts +1 -1
  9. package/components/sidebar/Sidebar.js +20 -4
  10. package/esm/DataGridPremium/DataGridPremium.js +29 -12
  11. package/esm/DataGridPremium/useDataGridPremiumComponent.js +6 -1
  12. package/esm/components/GridColumnMenuPivotItem.js +3 -2
  13. package/esm/components/GridDataSourceGroupingCriteriaCell.js +3 -1
  14. package/esm/components/pivotPanel/GridPivotPanelHeader.js +1 -1
  15. package/esm/components/pivotPanel/PivotPanelTrigger.js +6 -1
  16. package/esm/components/sidebar/Sidebar.d.ts +1 -1
  17. package/esm/components/sidebar/Sidebar.js +21 -5
  18. package/esm/hooks/features/aggregation/gridAggregationInterfaces.d.ts +1 -1
  19. package/esm/hooks/features/aiAssistant/api.d.ts +3 -3
  20. package/esm/hooks/features/aiAssistant/api.js +8 -4
  21. package/esm/hooks/features/aiAssistant/gridAiAssistantInterfaces.d.ts +11 -0
  22. package/esm/hooks/features/export/serializer/excelSerializer.js +1 -6
  23. package/esm/hooks/features/index.d.ts +2 -1
  24. package/esm/hooks/features/index.js +2 -1
  25. package/esm/hooks/features/pivoting/gridPivotingInterfaces.d.ts +5 -0
  26. package/esm/hooks/features/pivoting/gridPivotingSelectors.d.ts +4 -1
  27. package/esm/hooks/features/pivoting/gridPivotingSelectors.js +3 -1
  28. package/esm/hooks/features/pivoting/useGridPivoting.d.ts +1 -1
  29. package/esm/hooks/features/pivoting/useGridPivoting.js +28 -9
  30. package/esm/hooks/features/pivoting/utils.js +7 -5
  31. package/esm/hooks/features/rowGrouping/createGroupingColDef.d.ts +1 -2
  32. package/esm/hooks/features/rowGrouping/createGroupingColDef.js +10 -3
  33. package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +1 -5
  34. package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.js +1 -6
  35. package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +2 -2
  36. package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +2 -2
  37. package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +2 -2
  38. package/esm/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -1
  39. package/esm/hooks/features/rows/useGridRowAriaAttributes.js +2 -2
  40. package/esm/hooks/features/sidebar/gridSidebarInterfaces.d.ts +16 -0
  41. package/esm/hooks/features/sidebar/gridSidebarInterfaces.js +4 -0
  42. package/esm/hooks/features/sidebar/gridSidebarSelector.d.ts +12 -0
  43. package/esm/hooks/features/sidebar/gridSidebarSelector.js +12 -0
  44. package/esm/hooks/features/sidebar/gridSidebarState.d.ts +8 -0
  45. package/esm/hooks/features/sidebar/gridSidebarState.js +1 -0
  46. package/esm/hooks/features/sidebar/index.d.ts +3 -0
  47. package/esm/hooks/features/sidebar/index.js +3 -0
  48. package/esm/hooks/features/sidebar/useGridSidebar.d.ts +6 -0
  49. package/esm/hooks/features/sidebar/useGridSidebar.js +72 -0
  50. package/esm/hooks/utils/useGridAriaAttributes.d.ts +1 -1
  51. package/esm/hooks/utils/useGridAriaAttributes.js +2 -2
  52. package/esm/index.js +1 -1
  53. package/esm/models/dataGridPremiumProps.d.ts +16 -0
  54. package/esm/models/gridApiPremium.d.ts +4 -2
  55. package/esm/models/gridStatePremium.d.ts +3 -0
  56. package/esm/typeOverloads/modules.d.ts +28 -1
  57. package/hooks/features/aggregation/gridAggregationInterfaces.d.ts +1 -1
  58. package/hooks/features/aiAssistant/api.d.ts +3 -3
  59. package/hooks/features/aiAssistant/api.js +8 -4
  60. package/hooks/features/aiAssistant/gridAiAssistantInterfaces.d.ts +11 -0
  61. package/hooks/features/export/serializer/excelSerializer.js +1 -6
  62. package/hooks/features/index.d.ts +2 -1
  63. package/hooks/features/index.js +11 -0
  64. package/hooks/features/pivoting/gridPivotingInterfaces.d.ts +5 -0
  65. package/hooks/features/pivoting/gridPivotingSelectors.d.ts +4 -1
  66. package/hooks/features/pivoting/gridPivotingSelectors.js +3 -8
  67. package/hooks/features/pivoting/useGridPivoting.d.ts +1 -1
  68. package/hooks/features/pivoting/useGridPivoting.js +28 -9
  69. package/hooks/features/pivoting/utils.js +7 -5
  70. package/hooks/features/rowGrouping/createGroupingColDef.d.ts +1 -2
  71. package/hooks/features/rowGrouping/createGroupingColDef.js +13 -6
  72. package/hooks/features/rowGrouping/gridRowGroupingUtils.d.ts +1 -5
  73. package/hooks/features/rowGrouping/gridRowGroupingUtils.js +3 -8
  74. package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +6 -6
  75. package/hooks/features/rowGrouping/useGridRowGrouping.js +1 -1
  76. package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +7 -7
  77. package/hooks/features/rows/useGridRowAriaAttributes.d.ts +1 -1
  78. package/hooks/features/rows/useGridRowAriaAttributes.js +4 -4
  79. package/hooks/features/sidebar/gridSidebarInterfaces.d.ts +16 -0
  80. package/hooks/features/sidebar/gridSidebarInterfaces.js +10 -0
  81. package/hooks/features/sidebar/gridSidebarSelector.d.ts +12 -0
  82. package/hooks/features/sidebar/gridSidebarSelector.js +18 -0
  83. package/hooks/features/sidebar/gridSidebarState.d.ts +8 -0
  84. package/hooks/features/sidebar/gridSidebarState.js +5 -0
  85. package/hooks/features/sidebar/index.d.ts +3 -0
  86. package/hooks/features/sidebar/index.js +38 -0
  87. package/hooks/features/sidebar/useGridSidebar.d.ts +6 -0
  88. package/hooks/features/sidebar/useGridSidebar.js +82 -0
  89. package/hooks/utils/useGridAriaAttributes.d.ts +1 -1
  90. package/hooks/utils/useGridAriaAttributes.js +4 -4
  91. package/index.js +1 -1
  92. package/models/dataGridPremiumProps.d.ts +16 -0
  93. package/models/gridApiPremium.d.ts +4 -2
  94. package/models/gridStatePremium.d.ts +3 -0
  95. package/package.json +7 -9
  96. package/typeOverloads/modules.d.ts +28 -1
@@ -73,7 +73,14 @@ const getLeafProperties = leafColDef => ({
73
73
  return groupingFieldIndexComparator(v1, v2, cellParams1, cellParams2);
74
74
  }
75
75
  });
76
- const groupedByColValueFormatter = groupedByColDef => (value, row, _, apiRef) => groupedByColDef.valueFormatter(value, row, groupedByColDef, apiRef);
76
+ const groupedByColValueFormatter = groupedByColDef => (value, row, _, apiRef) => {
77
+ const rowId = (0, _xDataGridPro.gridRowIdSelector)(apiRef, row);
78
+ const rowNode = (0, _xDataGridPro.gridRowNodeSelector)(apiRef, rowId);
79
+ if (rowNode.type === 'group' && rowNode.groupingField === groupedByColDef.field) {
80
+ return groupedByColDef.valueFormatter(value, row, groupedByColDef, apiRef);
81
+ }
82
+ return value;
83
+ };
77
84
  const getGroupingCriteriaProperties = (groupedByColDef, applyHeaderName) => {
78
85
  const properties = {
79
86
  sortable: groupedByColDef.sortable,
@@ -103,7 +110,7 @@ const createGroupingColDefForOneGroupingCriteria = ({
103
110
  groupedByColDef,
104
111
  groupingCriteria,
105
112
  colDefOverride,
106
- strategy = _gridRowGroupingUtils.RowGroupingStrategy.Default
113
+ strategy = _internals.RowGroupingStrategy.Default
107
114
  }) => {
108
115
  const _ref = colDefOverride ?? {},
109
116
  {
@@ -113,7 +120,7 @@ const createGroupingColDefForOneGroupingCriteria = ({
113
120
  } = _ref,
114
121
  colDefOverrideProperties = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
115
122
  const leafColDef = leafField ? columnsLookup[leafField] : null;
116
- const CriteriaCell = strategy === _gridRowGroupingUtils.RowGroupingStrategy.Default ? _GridGroupingCriteriaCell.GridGroupingCriteriaCell : _GridDataSourceGroupingCriteriaCell.GridDataSourceGroupingCriteriaCell;
123
+ const CriteriaCell = strategy === _internals.RowGroupingStrategy.Default ? _GridGroupingCriteriaCell.GridGroupingCriteriaCell : _GridDataSourceGroupingCriteriaCell.GridDataSourceGroupingCriteriaCell;
117
124
 
118
125
  // The properties that do not depend on the presence of a `leafColDef` and that can be overridden by `colDefOverride`
119
126
  const commonProperties = {
@@ -198,7 +205,7 @@ const createGroupingColDefForAllGroupingCriteria = ({
198
205
  columnsLookup,
199
206
  rowGroupingModel,
200
207
  colDefOverride,
201
- strategy = _gridRowGroupingUtils.RowGroupingStrategy.Default
208
+ strategy = _internals.RowGroupingStrategy.Default
202
209
  }) => {
203
210
  const _ref2 = colDefOverride ?? {},
204
211
  {
@@ -208,7 +215,7 @@ const createGroupingColDefForAllGroupingCriteria = ({
208
215
  } = _ref2,
209
216
  colDefOverrideProperties = (0, _objectWithoutPropertiesLoose2.default)(_ref2, _excluded2);
210
217
  const leafColDef = leafField ? columnsLookup[leafField] : null;
211
- const CriteriaCell = strategy === _gridRowGroupingUtils.RowGroupingStrategy.Default ? _GridGroupingCriteriaCell.GridGroupingCriteriaCell : _GridDataSourceGroupingCriteriaCell.GridDataSourceGroupingCriteriaCell;
218
+ const CriteriaCell = strategy === _internals.RowGroupingStrategy.Default ? _GridGroupingCriteriaCell.GridGroupingCriteriaCell : _GridDataSourceGroupingCriteriaCell.GridDataSourceGroupingCriteriaCell;
212
219
 
213
220
  // The properties that do not depend on the presence of a `leafColDef` and that can be overridden by `colDefOverride`
214
221
  const commonProperties = {
@@ -277,7 +284,7 @@ const createGroupingColDefForAllGroupingCriteria = ({
277
284
  // The properties that can't be overridden with `colDefOverride`
278
285
  const forcedProperties = (0, _extends2.default)({
279
286
  field: _gridRowGroupingUtils.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD
280
- }, strategy === _gridRowGroupingUtils.RowGroupingStrategy.Default ? GROUPING_COL_DEF_FORCED_PROPERTIES_DEFAULT : GROUPING_COL_DEF_FORCED_PROPERTIES_DATA_SOURCE);
287
+ }, strategy === _internals.RowGroupingStrategy.Default ? GROUPING_COL_DEF_FORCED_PROPERTIES_DEFAULT : GROUPING_COL_DEF_FORCED_PROPERTIES_DATA_SOURCE);
281
288
  return (0, _extends2.default)({}, GROUPING_COL_DEF_DEFAULT_PROPERTIES, commonProperties, sourceProperties, colDefOverrideProperties, forcedProperties);
282
289
  };
283
290
  exports.createGroupingColDefForAllGroupingCriteria = createGroupingColDefForAllGroupingCriteria;
@@ -1,15 +1,11 @@
1
1
  import { RefObject } from '@mui/x-internals/types';
2
2
  import { GridRowTreeConfig, GridFilterState, GridFilterModel, GridRowModel, GridColDef, GridKeyValue, GridDataSource } from '@mui/x-data-grid-pro';
3
- import { GridAggregatedFilterItemApplier, GridColumnRawLookup, GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn } from '@mui/x-data-grid-pro/internals';
3
+ import { GridAggregatedFilterItemApplier, GridColumnRawLookup, GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn, RowGroupingStrategy } from '@mui/x-data-grid-pro/internals';
4
4
  import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
5
5
  import { GridGroupingRule, GridGroupingRules, GridRowGroupingModel } from "./gridRowGroupingInterfaces.js";
6
6
  import { GridStatePremium } from "../../../models/gridStatePremium.js";
7
7
  import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
8
8
  export { GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD, getRowGroupingCriteriaFromGroupingField, isGroupingColumn };
9
- export declare enum RowGroupingStrategy {
10
- Default = "grouping-columns",
11
- DataSource = "grouping-columns-data-source",
12
- }
13
9
  export declare const getRowGroupingFieldFromGroupingCriteria: (groupingCriteria: string | null) => string;
14
10
  interface FilterRowTreeFromTreeDataParams {
15
11
  rowTree: GridRowTreeConfig;
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD", {
10
10
  return _internals.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD;
11
11
  }
12
12
  });
13
- exports.getGroupingRules = exports.getColDefOverrides = exports.getCellGroupingCriteria = exports.filterRowTreeFromGroupingColumns = exports.areGroupingRulesEqual = exports.RowGroupingStrategy = void 0;
13
+ exports.getGroupingRules = exports.getColDefOverrides = exports.getCellGroupingCriteria = exports.filterRowTreeFromGroupingColumns = exports.areGroupingRulesEqual = void 0;
14
14
  Object.defineProperty(exports, "getRowGroupingCriteriaFromGroupingField", {
15
15
  enumerable: true,
16
16
  get: function () {
@@ -28,11 +28,6 @@ exports.setStrategyAvailability = exports.mergeStateWithRowGroupingModel = void
28
28
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
29
29
  var _internals = require("@mui/x-data-grid-pro/internals");
30
30
  var _gridRowGroupingSelector = require("./gridRowGroupingSelector");
31
- let RowGroupingStrategy = exports.RowGroupingStrategy = /*#__PURE__*/function (RowGroupingStrategy) {
32
- RowGroupingStrategy["Default"] = "grouping-columns";
33
- RowGroupingStrategy["DataSource"] = "grouping-columns-data-source";
34
- return RowGroupingStrategy;
35
- }({});
36
31
  const getRowGroupingFieldFromGroupingCriteria = groupingCriteria => {
37
32
  if (groupingCriteria === null) {
38
33
  return _internals.GRID_ROW_GROUPING_SINGLE_GROUPING_FIELD;
@@ -132,7 +127,7 @@ exports.filterRowTreeFromGroupingColumns = filterRowTreeFromGroupingColumns;
132
127
  const getColDefOverrides = (groupingColDefProp, fields, strategy) => {
133
128
  if (typeof groupingColDefProp === 'function') {
134
129
  return groupingColDefProp({
135
- groupingName: strategy ?? RowGroupingStrategy.Default,
130
+ groupingName: strategy ?? _internals.RowGroupingStrategy.Default,
136
131
  fields
137
132
  });
138
133
  }
@@ -146,7 +141,7 @@ const mergeStateWithRowGroupingModel = rowGroupingModel => state => (0, _extends
146
141
  });
147
142
  exports.mergeStateWithRowGroupingModel = mergeStateWithRowGroupingModel;
148
143
  const setStrategyAvailability = (privateApiRef, disableRowGrouping, dataSource) => {
149
- const strategy = dataSource ? RowGroupingStrategy.DataSource : RowGroupingStrategy.Default;
144
+ const strategy = dataSource ? _internals.RowGroupingStrategy.DataSource : _internals.RowGroupingStrategy.Default;
150
145
  if (privateApiRef.current.getActiveStrategy(_internals.GridStrategyGroup.RowTree) === strategy) {
151
146
  // If the strategy is already active, we don't need to set it again
152
147
  return;
@@ -45,7 +45,7 @@ const useGridDataSourceRowGroupingPreProcessors = (apiRef, props) => {
45
45
  nodes: params.updates.rows.map(getRowTreeBuilderNode),
46
46
  defaultGroupingExpansionDepth: props.defaultGroupingExpansionDepth,
47
47
  isGroupExpandedByDefault: props.isGroupExpandedByDefault,
48
- groupingName: _gridRowGroupingUtils.RowGroupingStrategy.DataSource
48
+ groupingName: _internals.RowGroupingStrategy.DataSource
49
49
  });
50
50
  }
51
51
  return (0, _internals.updateRowTree)({
@@ -59,7 +59,7 @@ const useGridDataSourceRowGroupingPreProcessors = (apiRef, props) => {
59
59
  previousTreeDepth: params.previousTreeDepths,
60
60
  defaultGroupingExpansionDepth: props.defaultGroupingExpansionDepth,
61
61
  isGroupExpandedByDefault: props.isGroupExpandedByDefault,
62
- groupingName: _gridRowGroupingUtils.RowGroupingStrategy.DataSource
62
+ groupingName: _internals.RowGroupingStrategy.DataSource
63
63
  });
64
64
  }, [apiRef, props.dataSource, props.defaultGroupingExpansionDepth, props.isGroupExpandedByDefault]);
65
65
  const filterRows = React.useCallback(() => {
@@ -70,9 +70,9 @@ const useGridDataSourceRowGroupingPreProcessors = (apiRef, props) => {
70
70
  const rowTree = (0, _xDataGridPro.gridRowTreeSelector)(apiRef);
71
71
  return (0, _internals.skipSorting)(rowTree);
72
72
  }, [apiRef]);
73
- (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _gridRowGroupingUtils.RowGroupingStrategy.DataSource, 'rowTreeCreation', createRowTreeForRowGrouping);
74
- (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _gridRowGroupingUtils.RowGroupingStrategy.DataSource, 'filtering', filterRows);
75
- (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _gridRowGroupingUtils.RowGroupingStrategy.DataSource, 'sorting', sortRows);
76
- (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _gridRowGroupingUtils.RowGroupingStrategy.DataSource, 'visibleRowsLookupCreation', _internals.getVisibleRowsLookup);
73
+ (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _internals.RowGroupingStrategy.DataSource, 'rowTreeCreation', createRowTreeForRowGrouping);
74
+ (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _internals.RowGroupingStrategy.DataSource, 'filtering', filterRows);
75
+ (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _internals.RowGroupingStrategy.DataSource, 'sorting', sortRows);
76
+ (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _internals.RowGroupingStrategy.DataSource, 'visibleRowsLookupCreation', _internals.getVisibleRowsLookup);
77
77
  };
78
78
  exports.useGridDataSourceRowGroupingPreProcessors = useGridDataSourceRowGroupingPreProcessors;
@@ -171,7 +171,7 @@ const useGridRowGrouping = (apiRef, props) => {
171
171
 
172
172
  // Refresh the row tree creation strategy processing
173
173
  // TODO: Add a clean way to re-run a strategy processing without publishing a private event
174
- if (apiRef.current.getActiveStrategy(_internals.GridStrategyGroup.RowTree) === _gridRowGroupingUtils.RowGroupingStrategy.Default) {
174
+ if (apiRef.current.getActiveStrategy(_internals.GridStrategyGroup.RowTree) === _internals.RowGroupingStrategy.Default) {
175
175
  apiRef.current.publishEvent('activeStrategyProcessorChange', 'rowTreeCreation');
176
176
  }
177
177
  }
@@ -17,7 +17,7 @@ const useGridRowGroupingPreProcessors = (apiRef, props) => {
17
17
  if (props.disableRowGrouping) {
18
18
  return [];
19
19
  }
20
- const strategy = props.dataSource ? _gridRowGroupingUtils.RowGroupingStrategy.DataSource : _gridRowGroupingUtils.RowGroupingStrategy.Default;
20
+ const strategy = props.dataSource ? _internals.RowGroupingStrategy.DataSource : _internals.RowGroupingStrategy.Default;
21
21
  const groupingColDefProp = props.groupingColDef;
22
22
 
23
23
  // We can't use `gridGroupingRowsSanitizedModelSelector` here because the new columns are not in the state yet
@@ -110,7 +110,7 @@ const useGridRowGroupingPreProcessors = (apiRef, props) => {
110
110
  nodes: params.updates.rows.map(getRowTreeBuilderNode),
111
111
  defaultGroupingExpansionDepth: props.defaultGroupingExpansionDepth,
112
112
  isGroupExpandedByDefault: props.isGroupExpandedByDefault,
113
- groupingName: _gridRowGroupingUtils.RowGroupingStrategy.Default
113
+ groupingName: _internals.RowGroupingStrategy.Default
114
114
  });
115
115
  }
116
116
  return (0, _internals.updateRowTree)({
@@ -123,7 +123,7 @@ const useGridRowGroupingPreProcessors = (apiRef, props) => {
123
123
  previousTreeDepth: params.previousTreeDepths,
124
124
  defaultGroupingExpansionDepth: props.defaultGroupingExpansionDepth,
125
125
  isGroupExpandedByDefault: props.isGroupExpandedByDefault,
126
- groupingName: _gridRowGroupingUtils.RowGroupingStrategy.Default
126
+ groupingName: _internals.RowGroupingStrategy.Default
127
127
  });
128
128
  }, [apiRef, props.defaultGroupingExpansionDepth, props.isGroupExpandedByDefault]);
129
129
  const filterRows = React.useCallback(params => {
@@ -145,10 +145,10 @@ const useGridRowGroupingPreProcessors = (apiRef, props) => {
145
145
  });
146
146
  }, [apiRef]);
147
147
  (0, _internals.useGridRegisterPipeProcessor)(apiRef, 'hydrateColumns', updateGroupingColumn);
148
- (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _gridRowGroupingUtils.RowGroupingStrategy.Default, 'rowTreeCreation', createRowTreeForRowGrouping);
149
- (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _gridRowGroupingUtils.RowGroupingStrategy.Default, 'filtering', filterRows);
150
- (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _gridRowGroupingUtils.RowGroupingStrategy.Default, 'sorting', sortRows);
151
- (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _gridRowGroupingUtils.RowGroupingStrategy.Default, 'visibleRowsLookupCreation', _internals.getVisibleRowsLookup);
148
+ (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _internals.RowGroupingStrategy.Default, 'rowTreeCreation', createRowTreeForRowGrouping);
149
+ (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _internals.RowGroupingStrategy.Default, 'filtering', filterRows);
150
+ (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _internals.RowGroupingStrategy.Default, 'sorting', sortRows);
151
+ (0, _internals.useGridRegisterStrategyProcessor)(apiRef, _internals.RowGroupingStrategy.Default, 'visibleRowsLookupCreation', _internals.getVisibleRowsLookup);
152
152
  (0, _xDataGridPro.useFirstRender)(() => {
153
153
  (0, _gridRowGroupingUtils.setStrategyAvailability)(apiRef, props.disableRowGrouping, props.dataSource);
154
154
  });
@@ -1 +1 @@
1
- export declare const useGridRowAriaAttributes: () => (rowNode: import("@mui/x-data-grid").GridTreeNode, index: number) => React.HTMLAttributes<HTMLElement>;
1
+ export declare const useGridRowAriaAttributesPremium: () => (rowNode: import("@mui/x-data-grid").GridTreeNode, index: number) => React.HTMLAttributes<HTMLElement>;
@@ -3,13 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.useGridRowAriaAttributes = void 0;
6
+ exports.useGridRowAriaAttributesPremium = void 0;
7
7
  var _internals = require("@mui/x-data-grid-pro/internals");
8
8
  var _useGridPrivateApiContext = require("../../utils/useGridPrivateApiContext");
9
9
  var _gridRowGroupingSelector = require("../rowGrouping/gridRowGroupingSelector");
10
- const useGridRowAriaAttributes = () => {
10
+ const useGridRowAriaAttributesPremium = () => {
11
11
  const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
12
12
  const gridRowGroupingModel = (0, _internals.useGridSelector)(apiRef, _gridRowGroupingSelector.gridRowGroupingSanitizedModelSelector);
13
- return (0, _internals.useGridRowAriaAttributes)(gridRowGroupingModel.length > 0);
13
+ return (0, _internals.useGridRowAriaAttributesPro)(gridRowGroupingModel.length > 0);
14
14
  };
15
- exports.useGridRowAriaAttributes = useGridRowAriaAttributes;
15
+ exports.useGridRowAriaAttributesPremium = useGridRowAriaAttributesPremium;
@@ -0,0 +1,16 @@
1
+ export declare enum GridSidebarValue {
2
+ Pivot = "pivot",
3
+ }
4
+ export interface GridSidebarApi {
5
+ /**
6
+ * Displays the sidebar. The `newValue` argument controls the content of the sidebar.
7
+ * @param {GridSidebarValue} newValue The sidebar to open.
8
+ * @param {string} sidebarId The unique sidebar id
9
+ * @param {string} labelId The unique button id
10
+ */
11
+ showSidebar: (newValue: GridSidebarValue, sidebarId?: string, labelId?: string) => void;
12
+ /**
13
+ * Hides the sidebar.
14
+ */
15
+ hideSidebar: () => void;
16
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.GridSidebarValue = void 0;
7
+ let GridSidebarValue = exports.GridSidebarValue = /*#__PURE__*/function (GridSidebarValue) {
8
+ GridSidebarValue["Pivot"] = "pivot";
9
+ return GridSidebarValue;
10
+ }({});
@@ -0,0 +1,12 @@
1
+ import { GridStatePremium } from "../../../models/gridStatePremium.js";
2
+ export declare const gridSidebarStateSelector: import("@mui/x-data-grid").OutputSelector<GridStatePremium, unknown, import("./gridSidebarState.js").GridSidebarState>;
3
+ export declare const gridSidebarOpenSelector: (args_0: import("react").RefObject<{
4
+ state: GridStatePremium;
5
+ } | null>) => boolean;
6
+ export declare const gridSidebarContentSelector: (args_0: import("react").RefObject<{
7
+ state: GridStatePremium;
8
+ } | null>) => {
9
+ sidebarId: string | undefined;
10
+ labelId: string | undefined;
11
+ value: import("./gridSidebarInterfaces.js").GridSidebarValue | undefined;
12
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.gridSidebarStateSelector = exports.gridSidebarOpenSelector = exports.gridSidebarContentSelector = void 0;
7
+ var _internals = require("@mui/x-data-grid-pro/internals");
8
+ const gridSidebarStateSelector = exports.gridSidebarStateSelector = (0, _internals.createRootSelector)(state => state.sidebar);
9
+ const gridSidebarOpenSelector = exports.gridSidebarOpenSelector = (0, _internals.createSelector)(gridSidebarStateSelector, state => state.open);
10
+ const gridSidebarContentSelector = exports.gridSidebarContentSelector = (0, _internals.createSelector)(gridSidebarStateSelector, ({
11
+ sidebarId,
12
+ labelId,
13
+ value
14
+ }) => ({
15
+ sidebarId,
16
+ labelId,
17
+ value
18
+ }));
@@ -0,0 +1,8 @@
1
+ import { GridSidebarValue } from "./gridSidebarInterfaces.js";
2
+ export interface GridSidebarState {
3
+ open: boolean;
4
+ sidebarId?: string;
5
+ labelId?: string;
6
+ value?: GridSidebarValue;
7
+ }
8
+ export type GridSidebarInitialState = GridSidebarState;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,3 @@
1
+ export * from "./gridSidebarInterfaces.js";
2
+ export * from "./gridSidebarSelector.js";
3
+ export * from "./gridSidebarState.js";
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _gridSidebarInterfaces = require("./gridSidebarInterfaces");
7
+ Object.keys(_gridSidebarInterfaces).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _gridSidebarInterfaces[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _gridSidebarInterfaces[key];
14
+ }
15
+ });
16
+ });
17
+ var _gridSidebarSelector = require("./gridSidebarSelector");
18
+ Object.keys(_gridSidebarSelector).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _gridSidebarSelector[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _gridSidebarSelector[key];
25
+ }
26
+ });
27
+ });
28
+ var _gridSidebarState = require("./gridSidebarState");
29
+ Object.keys(_gridSidebarState).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _gridSidebarState[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _gridSidebarState[key];
36
+ }
37
+ });
38
+ });
@@ -0,0 +1,6 @@
1
+ import { RefObject } from '@mui/x-internals/types';
2
+ import { GridStateInitializer } from '@mui/x-data-grid-pro/internals';
3
+ import { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
4
+ import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
5
+ export declare const sidebarStateInitializer: GridStateInitializer<Pick<DataGridPremiumProcessedProps, 'initialState'>>;
6
+ export declare const useGridSidebar: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "initialState" | "onSidebarClose" | "onSidebarOpen">) => void;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useGridSidebar = exports.sidebarStateInitializer = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _internals = require("@mui/x-data-grid-pro/internals");
12
+ var _gridSidebarSelector = require("./gridSidebarSelector");
13
+ const sidebarStateInitializer = (state, props) => (0, _extends2.default)({}, state, {
14
+ sidebar: props.initialState?.sidebar ?? {
15
+ open: false
16
+ }
17
+ });
18
+ exports.sidebarStateInitializer = sidebarStateInitializer;
19
+ const useGridSidebar = (apiRef, props) => {
20
+ const hideSidebar = React.useCallback(() => {
21
+ apiRef.current.setState(state => {
22
+ if (!state.sidebar.open || !state.sidebar.value) {
23
+ return state;
24
+ }
25
+ apiRef.current.publishEvent('sidebarClose', {
26
+ value: state.sidebar.value
27
+ });
28
+ return (0, _extends2.default)({}, state, {
29
+ sidebar: {
30
+ open: false
31
+ }
32
+ });
33
+ });
34
+ }, [apiRef]);
35
+ const showSidebar = React.useCallback((newValue, sidebarId, labelId) => {
36
+ apiRef.current.setState(state => (0, _extends2.default)({}, state, {
37
+ sidebar: (0, _extends2.default)({}, state.sidebar, {
38
+ open: true,
39
+ value: newValue,
40
+ sidebarId,
41
+ labelId
42
+ })
43
+ }));
44
+ apiRef.current.publishEvent('sidebarOpen', {
45
+ value: newValue
46
+ });
47
+ }, [apiRef]);
48
+ (0, _internals.useGridApiMethod)(apiRef, {
49
+ showSidebar,
50
+ hideSidebar
51
+ }, 'public');
52
+ const stateExportPreProcessing = React.useCallback((prevState, context) => {
53
+ const sidebarToExport = (0, _gridSidebarSelector.gridSidebarStateSelector)(apiRef);
54
+ const shouldExportSidebar =
55
+ // Always export if the `exportOnlyDirtyModels` property is not activated
56
+ !context.exportOnlyDirtyModels ||
57
+ // Always export if the sidebar was initialized
58
+ props.initialState?.sidebar != null ||
59
+ // Always export if the sidebar is opened
60
+ sidebarToExport.open;
61
+ if (!shouldExportSidebar) {
62
+ return prevState;
63
+ }
64
+ return (0, _extends2.default)({}, prevState, {
65
+ sidebar: sidebarToExport
66
+ });
67
+ }, [apiRef, props.initialState?.sidebar]);
68
+ const stateRestorePreProcessing = React.useCallback((params, context) => {
69
+ const sidebar = context.stateToRestore.sidebar;
70
+ if (sidebar != null) {
71
+ apiRef.current.setState(state => (0, _extends2.default)({}, state, {
72
+ sidebar
73
+ }));
74
+ }
75
+ return params;
76
+ }, [apiRef]);
77
+ (0, _internals.useGridRegisterPipeProcessor)(apiRef, 'exportState', stateExportPreProcessing);
78
+ (0, _internals.useGridRegisterPipeProcessor)(apiRef, 'restoreState', stateRestorePreProcessing);
79
+ (0, _internals.useGridEventPriority)(apiRef, 'sidebarClose', props.onSidebarClose);
80
+ (0, _internals.useGridEventPriority)(apiRef, 'sidebarOpen', props.onSidebarOpen);
81
+ };
82
+ exports.useGridSidebar = useGridSidebar;
@@ -1,2 +1,2 @@
1
1
  import * as React from 'react';
2
- export declare const useGridAriaAttributes: () => React.HTMLAttributes<HTMLElement>;
2
+ export declare const useGridAriaAttributesPremium: () => React.HTMLAttributes<HTMLElement>;
@@ -4,13 +4,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useGridAriaAttributes = void 0;
7
+ exports.useGridAriaAttributesPremium = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _internals = require("@mui/x-data-grid-pro/internals");
10
10
  var _gridRowGroupingSelector = require("../features/rowGrouping/gridRowGroupingSelector");
11
11
  var _useGridPrivateApiContext = require("./useGridPrivateApiContext");
12
- const useGridAriaAttributes = () => {
13
- const ariaAttributesPro = (0, _internals.useGridAriaAttributes)();
12
+ const useGridAriaAttributesPremium = () => {
13
+ const ariaAttributesPro = (0, _internals.useGridAriaAttributesPro)();
14
14
  const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
15
15
  const gridRowGroupingModel = (0, _internals.useGridSelector)(apiRef, _gridRowGroupingSelector.gridRowGroupingSanitizedModelSelector);
16
16
  const ariaAttributesPremium = gridRowGroupingModel.length > 0 ? {
@@ -18,4 +18,4 @@ const useGridAriaAttributes = () => {
18
18
  } : {};
19
19
  return (0, _extends2.default)({}, ariaAttributesPro, ariaAttributesPremium);
20
20
  };
21
- exports.useGridAriaAttributes = useGridAriaAttributes;
21
+ exports.useGridAriaAttributesPremium = useGridAriaAttributesPremium;
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-premium v8.9.1
2
+ * @mui/x-data-grid-premium v8.10.0
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
@@ -205,11 +205,13 @@ export interface DataGridPremiumPropsWithoutDefaultValue<R extends GridValidRowM
205
205
  /**
206
206
  * If `true`, the pivot side panel is visible.
207
207
  * @default false
208
+ * @deprecated Use `initialState.sidebar.open` instead.
208
209
  */
209
210
  pivotPanelOpen?: boolean;
210
211
  /**
211
212
  * Callback fired when the pivot side panel open state changes.
212
213
  * @param {boolean} pivotPanelOpen Whether the pivot side panel is visible.
214
+ * @deprecated Use the `sidebarOpen` and `sidebarClose` events or corresponding event handlers `onSidebarOpen()` and `onSidebarClose()` instead.
213
215
  */
214
216
  onPivotPanelOpenChange?: (pivotPanelOpen: boolean) => void;
215
217
  /**
@@ -254,4 +256,18 @@ export interface DataGridPremiumPropsWithoutDefaultValue<R extends GridValidRowM
254
256
  * @returns {Promise<PromptResponse>} The prompt response.
255
257
  */
256
258
  onPrompt?: (prompt: string, promptContext: string, conversationId?: string) => Promise<PromptResponse>;
259
+ /**
260
+ * Callback fired when the sidebar is closed.
261
+ * @param {GridSidebarParams} params With all properties from [[GridSidebarParams]].
262
+ * @param {MuiEvent<{}>} event The event object.
263
+ * @param {GridCallbackDetails} details Additional details for this callback.
264
+ */
265
+ onSidebarClose?: GridEventListener<'sidebarClose'>;
266
+ /**
267
+ * Callback fired when the sidebar is opened.
268
+ * @param {GridSidebarParams} params With all properties from [[GridSidebarParams]].
269
+ * @param {MuiEvent<{}>} event The event object.
270
+ * @param {GridCallbackDetails} details Additional details for this callback.
271
+ */
272
+ onSidebarOpen?: GridEventListener<'sidebarOpen'>;
257
273
  }
@@ -1,5 +1,6 @@
1
1
  import { GridPrivateOnlyApiCommon } from '@mui/x-data-grid/internals';
2
2
  import { GridApiCommon, GridColumnPinningApi, GridDetailPanelApi, GridDetailPanelPrivateApi, GridRowPinningApi, GridRowMultiSelectionApi, GridColumnReorderApi, GridRowProApi } from '@mui/x-data-grid-pro';
3
+ import { GridRowReorderPrivateApi } from '@mui/x-data-grid-pro/internals';
3
4
  import { GridInitialStatePremium, GridStatePremium } from "./gridStatePremium.js";
4
5
  import type { GridRowGroupingApi, GridExcelExportApi, GridAggregationApi } from "../hooks/index.js";
5
6
  import { GridCellSelectionApi } from "../hooks/features/cellSelection/gridCellSelectionInterfaces.js";
@@ -8,9 +9,10 @@ import type { GridDataSourcePremiumPrivateApi, GridDataSourceApiPremium } from "
8
9
  import type { GridAggregationPrivateApi } from "../hooks/features/aggregation/gridAggregationInterfaces.js";
9
10
  import type { GridPivotingApi, GridPivotingPrivateApi } from "../hooks/features/pivoting/gridPivotingInterfaces.js";
10
11
  import { GridAiAssistantApi } from "../hooks/features/aiAssistant/gridAiAssistantInterfaces.js";
12
+ import { GridSidebarApi } from "../hooks/features/sidebar/gridSidebarInterfaces.js";
11
13
  /**
12
14
  * The api of Data Grid Premium.
13
15
  * TODO: Do not redefine manually the pro features
14
16
  */
15
- export interface GridApiPremium extends GridApiCommon<GridStatePremium, GridInitialStatePremium>, GridRowProApi, GridColumnPinningApi, GridDetailPanelApi, GridRowGroupingApi, GridExcelExportApi, GridAggregationApi, GridRowPinningApi, GridDataSourceApiPremium, GridCellSelectionApi, GridPivotingApi, GridAiAssistantApi, GridRowMultiSelectionApi, GridColumnReorderApi {}
16
- export interface GridPrivateApiPremium extends GridApiPremium, GridPrivateOnlyApiCommon<GridApiPremium, GridPrivateApiPremium, DataGridPremiumProcessedProps>, GridDataSourcePremiumPrivateApi, GridAggregationPrivateApi, GridDetailPanelPrivateApi, GridPivotingPrivateApi {}
17
+ export interface GridApiPremium extends GridApiCommon<GridStatePremium, GridInitialStatePremium>, GridRowProApi, GridColumnPinningApi, GridDetailPanelApi, GridRowGroupingApi, GridExcelExportApi, GridAggregationApi, GridRowPinningApi, GridDataSourceApiPremium, GridCellSelectionApi, GridPivotingApi, GridAiAssistantApi, GridSidebarApi, GridRowMultiSelectionApi, GridColumnReorderApi {}
18
+ export interface GridPrivateApiPremium extends GridApiPremium, GridPrivateOnlyApiCommon<GridApiPremium, GridPrivateApiPremium, DataGridPremiumProcessedProps>, GridDataSourcePremiumPrivateApi, GridAggregationPrivateApi, GridDetailPanelPrivateApi, GridRowReorderPrivateApi, GridPivotingPrivateApi {}
@@ -2,6 +2,7 @@ import { GridInitialState as GridInitialStatePro, GridState as GridStatePro } fr
2
2
  import type { GridRowGroupingState, GridRowGroupingInitialState, GridAggregationState, GridAggregationInitialState, GridCellSelectionModel } from "../hooks/index.js";
3
3
  import type { GridPivotingInitialState, GridPivotingState } from "../hooks/features/pivoting/gridPivotingInterfaces.js";
4
4
  import { GridAiAssistantInitialState, GridAiAssistantState } from "../hooks/features/aiAssistant/gridAiAssistantInterfaces.js";
5
+ import { GridSidebarInitialState, GridSidebarState } from "../hooks/features/sidebar/gridSidebarState.js";
5
6
  /**
6
7
  * The state of Data Grid Premium.
7
8
  */
@@ -11,6 +12,7 @@ export interface GridStatePremium extends GridStatePro {
11
12
  cellSelection: GridCellSelectionModel;
12
13
  pivoting: GridPivotingState;
13
14
  aiAssistant: GridAiAssistantState;
15
+ sidebar: GridSidebarState;
14
16
  }
15
17
  /**
16
18
  * The initial state of Data Grid Premium.
@@ -21,4 +23,5 @@ export interface GridInitialStatePremium extends GridInitialStatePro {
21
23
  cellSelection?: GridCellSelectionModel;
22
24
  pivoting?: GridPivotingInitialState;
23
25
  aiAssistant?: GridAiAssistantInitialState;
26
+ sidebar?: GridSidebarInitialState;
24
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid-premium",
3
- "version": "8.9.1",
3
+ "version": "8.10.0",
4
4
  "author": "MUI Team",
5
5
  "description": "The Premium plan edition of the MUI X Data Grid Components.",
6
6
  "main": "./index.js",
@@ -13,8 +13,7 @@
13
13
  "**/*.css"
14
14
  ],
15
15
  "publishConfig": {
16
- "access": "public",
17
- "directory": "build"
16
+ "access": "public"
18
17
  },
19
18
  "keywords": [
20
19
  "react",
@@ -35,16 +34,16 @@
35
34
  "directory": "packages/x-data-grid-premium"
36
35
  },
37
36
  "dependencies": {
38
- "@babel/runtime": "^7.27.6",
37
+ "@babel/runtime": "^7.28.2",
39
38
  "@mui/utils": "^7.2.0",
40
39
  "@types/format-util": "^1.0.4",
41
40
  "clsx": "^2.1.1",
42
41
  "exceljs": "^4.4.0",
43
42
  "prop-types": "^15.8.1",
44
- "@mui/x-data-grid": "8.9.1",
45
- "@mui/x-data-grid-pro": "8.9.1",
46
- "@mui/x-license": "8.9.0",
47
- "@mui/x-internals": "8.8.0"
43
+ "@mui/x-data-grid": "8.10.0",
44
+ "@mui/x-data-grid-pro": "8.10.0",
45
+ "@mui/x-license": "8.10.0",
46
+ "@mui/x-internals": "8.10.0"
48
47
  },
49
48
  "peerDependencies": {
50
49
  "@emotion/react": "^11.9.0",
@@ -66,7 +65,6 @@
66
65
  "node": ">=14.0.0"
67
66
  },
68
67
  "private": false,
69
- "module": "./esm/index.js",
70
68
  "exports": {
71
69
  "./package.json": "./package.json",
72
70
  ".": {