@mui/x-data-grid-premium 8.3.1 → 8.5.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 +213 -0
- package/DataGridPremium/DataGridPremium.js +13 -3
- package/DataGridPremium/useDataGridPremiumProps.js +2 -2
- package/components/GridAggregationRowOverlay.js +2 -1
- package/components/GridColumnMenuAggregationItem.js +2 -2
- package/components/GridColumnMenuRowGroupItem.js +1 -0
- package/components/GridDataSourceGroupingCriteriaCell.js +2 -2
- package/components/GridEmptyPivotOverlay.js +1 -0
- package/components/GridPremiumColumnMenu.js +2 -1
- package/components/GridPremiumToolbar.js +1 -0
- package/components/aiAssistantPanel/AiAssistantPanelTrigger.js +1 -0
- package/components/aiAssistantPanel/GridAiAssistantPanel.js +2 -2
- package/components/aiAssistantPanel/GridAiAssistantPanelConversation.js +2 -2
- package/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.js +3 -2
- package/components/collapsible/Collapsible.js +2 -2
- package/components/collapsible/CollapsibleContext.js +1 -0
- package/components/collapsible/CollapsiblePanel.js +2 -2
- package/components/collapsible/CollapsibleTrigger.js +2 -2
- package/components/export/ExportExcel.js +1 -0
- package/components/pivotPanel/GridPivotPanelHeader.js +2 -2
- package/components/pivotPanel/GridPivotPanelSearch.js +2 -2
- package/components/pivotPanel/PivotPanelTrigger.js +1 -0
- package/components/prompt/GridPrompt.js +4 -3
- package/components/promptField/PromptField.js +1 -0
- package/components/promptField/PromptFieldContext.js +1 -0
- package/components/promptField/PromptFieldControl.js +1 -0
- package/components/promptField/PromptFieldRecord.js +1 -0
- package/components/promptField/PromptFieldSend.js +1 -0
- package/components/resizablePanel/ResizablePanel.js +2 -2
- package/components/resizablePanel/ResizablePanelContext.js +1 -0
- package/components/resizablePanel/ResizablePanelHandle.js +2 -2
- package/components/sidebar/Sidebar.js +2 -2
- package/components/sidebar/SidebarHeader.js +2 -2
- package/esm/DataGridPremium/DataGridPremium.js +13 -3
- package/esm/DataGridPremium/useDataGridPremiumProps.js +2 -2
- package/esm/components/GridAggregationRowOverlay.js +1 -0
- package/esm/components/GridColumnMenuAggregationItem.js +1 -1
- package/esm/components/GridColumnMenuRowGroupItem.js +1 -0
- package/esm/components/GridDataSourceGroupingCriteriaCell.js +1 -1
- package/esm/components/GridEmptyPivotOverlay.js +1 -0
- package/esm/components/GridPremiumColumnMenu.js +2 -1
- package/esm/components/GridPremiumToolbar.js +1 -0
- package/esm/components/aiAssistantPanel/AiAssistantPanelTrigger.js +1 -0
- package/esm/components/aiAssistantPanel/GridAiAssistantPanel.js +1 -1
- package/esm/components/aiAssistantPanel/GridAiAssistantPanelConversation.js +1 -1
- package/esm/components/aiAssistantPanel/GridAiAssistantPanelSuggestions.js +1 -1
- package/esm/components/collapsible/Collapsible.js +1 -1
- package/esm/components/collapsible/CollapsibleContext.js +1 -0
- package/esm/components/collapsible/CollapsiblePanel.js +1 -1
- package/esm/components/collapsible/CollapsibleTrigger.js +1 -1
- package/esm/components/export/ExportExcel.js +1 -0
- package/esm/components/pivotPanel/GridPivotPanelHeader.js +1 -1
- package/esm/components/pivotPanel/GridPivotPanelSearch.js +1 -1
- package/esm/components/pivotPanel/PivotPanelTrigger.js +1 -0
- package/esm/components/prompt/GridPrompt.js +2 -1
- package/esm/components/promptField/PromptField.js +1 -0
- package/esm/components/promptField/PromptFieldContext.js +1 -0
- package/esm/components/promptField/PromptFieldControl.js +1 -0
- package/esm/components/promptField/PromptFieldRecord.js +1 -0
- package/esm/components/promptField/PromptFieldSend.js +1 -0
- package/esm/components/resizablePanel/ResizablePanel.js +1 -1
- package/esm/components/resizablePanel/ResizablePanelContext.js +1 -0
- package/esm/components/resizablePanel/ResizablePanelHandle.js +1 -1
- package/esm/components/sidebar/Sidebar.js +1 -1
- package/esm/components/sidebar/SidebarHeader.js +1 -1
- package/esm/hooks/features/aggregation/gridAggregationUtils.js +1 -1
- package/esm/hooks/features/aggregation/wrapColumnWithAggregation.js +1 -0
- package/esm/hooks/features/cellSelection/useGridCellSelection.js +3 -2
- package/esm/hooks/features/clipboard/useGridClipboardImport.d.ts +1 -1
- package/esm/hooks/features/clipboard/useGridClipboardImport.js +5 -4
- package/esm/hooks/features/rowGrouping/createGroupingColDef.js +1 -0
- package/esm/index.js +1 -1
- package/esm/models/dataGridPremiumProps.d.ts +3 -2
- package/esm/models/index.d.ts +1 -0
- package/esm/models/index.js +1 -0
- package/hooks/features/aggregation/gridAggregationUtils.js +2 -2
- package/hooks/features/aggregation/wrapColumnWithAggregation.js +1 -0
- package/hooks/features/cellSelection/useGridCellSelection.js +3 -2
- package/hooks/features/clipboard/useGridClipboardImport.d.ts +1 -1
- package/hooks/features/clipboard/useGridClipboardImport.js +6 -5
- package/hooks/features/rowGrouping/createGroupingColDef.js +1 -0
- package/index.js +1 -1
- package/models/dataGridPremiumProps.d.ts +3 -2
- package/models/index.d.ts +1 -0
- package/models/index.js +11 -0
- package/package.json +5 -5
|
@@ -467,7 +467,7 @@ const useGridCellSelection = (apiRef, props) => {
|
|
|
467
467
|
const sortedSelectedRowIds = sortedRowIds.filter(id => unsortedSelectedRowIds.includes(`${id}`));
|
|
468
468
|
const copyData = sortedSelectedRowIds.reduce((acc, rowId) => {
|
|
469
469
|
const fieldsMap = cellSelectionModel[rowId];
|
|
470
|
-
const
|
|
470
|
+
const rowValues = Object.keys(fieldsMap).map(field => {
|
|
471
471
|
let cellData;
|
|
472
472
|
if (fieldsMap[field]) {
|
|
473
473
|
const cellParams = apiRef.current.getCellParams(rowId, field);
|
|
@@ -482,8 +482,9 @@ const useGridCellSelection = (apiRef, props) => {
|
|
|
482
482
|
} else {
|
|
483
483
|
cellData = '';
|
|
484
484
|
}
|
|
485
|
-
return
|
|
485
|
+
return cellData;
|
|
486
486
|
}, '');
|
|
487
|
+
const rowString = rowValues.join(clipboardCopyCellDelimiter);
|
|
487
488
|
return acc === '' ? rowString : [acc, rowString].join('\r\n');
|
|
488
489
|
}, '');
|
|
489
490
|
return copyData;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { RefObject } from '@mui/x-internals/types';
|
|
2
2
|
import { GridPrivateApiPremium } from "../../../models/gridApiPremium.js";
|
|
3
3
|
import type { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
|
|
4
|
-
export declare const useGridClipboardImport: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "pagination" | "paginationMode" | "processRowUpdate" | "onProcessRowUpdateError" | "getRowId" | "onClipboardPasteStart" | "onClipboardPasteEnd" | "splitClipboardPastedText" | "disableClipboardPaste" | "onBeforeClipboardPasteStart">) => void;
|
|
4
|
+
export declare const useGridClipboardImport: (apiRef: RefObject<GridPrivateApiPremium>, props: Pick<DataGridPremiumProcessedProps, "pagination" | "paginationMode" | "processRowUpdate" | "onProcessRowUpdateError" | "getRowId" | "onClipboardPasteStart" | "onClipboardPasteEnd" | "splitClipboardPastedText" | "disableClipboardPaste" | "onBeforeClipboardPasteStart" | "clipboardCopyCellDelimiter">) => void;
|
|
@@ -12,13 +12,13 @@ var _xDataGrid = require("@mui/x-data-grid");
|
|
|
12
12
|
var _internals = require("@mui/x-data-grid/internals");
|
|
13
13
|
var _warning = require("@mui/x-internals/warning");
|
|
14
14
|
var _xDataGridPro = require("@mui/x-data-grid-pro");
|
|
15
|
-
var
|
|
15
|
+
var _debounce = _interopRequireDefault(require("@mui/utils/debounce"));
|
|
16
16
|
const columnFieldsToExcludeFromPaste = [_xDataGrid.GRID_CHECKBOX_SELECTION_FIELD, _xDataGridPro.GRID_REORDER_COL_DEF.field, _xDataGridPro.GRID_DETAIL_PANEL_TOGGLE_FIELD];
|
|
17
17
|
|
|
18
18
|
// Batches rows that are updated during clipboard paste to reduce `updateRows` calls
|
|
19
19
|
function batchRowUpdates(func, wait) {
|
|
20
20
|
let rows = [];
|
|
21
|
-
const debounced = (0,
|
|
21
|
+
const debounced = (0, _debounce.default)(() => {
|
|
22
22
|
func(rows);
|
|
23
23
|
rows = [];
|
|
24
24
|
}, wait);
|
|
@@ -264,8 +264,9 @@ const useGridClipboardImport = (apiRef, props) => {
|
|
|
264
264
|
const getRowId = props.getRowId;
|
|
265
265
|
const enableClipboardPaste = !props.disableClipboardPaste;
|
|
266
266
|
const logger = (0, _internals.useGridLogger)(apiRef, 'useGridClipboardImport');
|
|
267
|
-
const splitClipboardPastedText = props.splitClipboardPastedText;
|
|
268
267
|
const {
|
|
268
|
+
clipboardCopyCellDelimiter,
|
|
269
|
+
splitClipboardPastedText,
|
|
269
270
|
pagination,
|
|
270
271
|
paginationMode,
|
|
271
272
|
onBeforeClipboardPasteStart
|
|
@@ -293,7 +294,7 @@ const useGridClipboardImport = (apiRef, props) => {
|
|
|
293
294
|
if (!text) {
|
|
294
295
|
return;
|
|
295
296
|
}
|
|
296
|
-
const pastedData = splitClipboardPastedText(text);
|
|
297
|
+
const pastedData = splitClipboardPastedText(text, clipboardCopyCellDelimiter);
|
|
297
298
|
if (!pastedData) {
|
|
298
299
|
return;
|
|
299
300
|
}
|
|
@@ -326,7 +327,7 @@ const useGridClipboardImport = (apiRef, props) => {
|
|
|
326
327
|
paginationMode
|
|
327
328
|
});
|
|
328
329
|
cellUpdater.applyUpdates();
|
|
329
|
-
}, [apiRef, processRowUpdate, onProcessRowUpdateError, getRowId, enableClipboardPaste, splitClipboardPastedText, pagination, paginationMode, onBeforeClipboardPasteStart, logger]);
|
|
330
|
+
}, [apiRef, processRowUpdate, onProcessRowUpdateError, getRowId, enableClipboardPaste, splitClipboardPastedText, clipboardCopyCellDelimiter, pagination, paginationMode, onBeforeClipboardPasteStart, logger]);
|
|
330
331
|
const checkIfCanStartEditing = React.useCallback((initialValue, {
|
|
331
332
|
event
|
|
332
333
|
}) => {
|
|
@@ -264,6 +264,7 @@ const createGroupingColDefForAllGroupingCriteria = ({
|
|
|
264
264
|
// Then we apply the sorting / filtering on the leaves based on the properties of `leavesColDef`
|
|
265
265
|
//
|
|
266
266
|
// By default, we apply the sorting / filtering on the groups of the top level grouping criteria based on the properties of `columnsLookup[orderedGroupedByFields[0]]`.
|
|
267
|
+
if (process.env.NODE_ENV !== "production") commonProperties.renderCell.displayName = "commonProperties.renderCell";
|
|
267
268
|
let sourceProperties;
|
|
268
269
|
if (mainGroupingCriteria && rowGroupingModel.includes(mainGroupingCriteria)) {
|
|
269
270
|
sourceProperties = getGroupingCriteriaProperties(columnsLookup[mainGroupingCriteria], true);
|
package/index.js
CHANGED
|
@@ -78,10 +78,11 @@ export interface DataGridPremiumPropsWithDefaultValue<R extends GridValidRowMode
|
|
|
78
78
|
/**
|
|
79
79
|
* The function is used to split the pasted text into rows and cells.
|
|
80
80
|
* @param {string} text The text pasted from the clipboard.
|
|
81
|
+
* @param {string} delimiter The delimiter used to split the text. Default is the tab character and can be set with the `clipboardCopyCellDelimiter` prop.
|
|
81
82
|
* @returns {string[][] | null} A 2D array of strings. The first dimension is the rows, the second dimension is the columns.
|
|
82
|
-
* @default (pastedText) => { const text = pastedText.replace(/\r?\n$/, ''); return text.split(/\r\n|\n|\r/).map((row) => row.split(
|
|
83
|
+
* @default (pastedText, delimiter = '\t') => { const text = pastedText.replace(/\r?\n$/, ''); return text.split(/\r\n|\n|\r/).map((row) => row.split(delimiter)); }
|
|
83
84
|
*/
|
|
84
|
-
splitClipboardPastedText: (text: string) => string[][] | null;
|
|
85
|
+
splitClipboardPastedText: (text: string, delimiter: string) => string[][] | null;
|
|
85
86
|
/**
|
|
86
87
|
* If `true`, the pivoting feature is disabled.
|
|
87
88
|
* @default false
|
package/models/index.d.ts
CHANGED
package/models/index.js
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
var _gridApiPremium = require("./gridApiPremium");
|
|
7
|
+
Object.keys(_gridApiPremium).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _gridApiPremium[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _gridApiPremium[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
6
17
|
var _gridGroupingValueGetter = require("./gridGroupingValueGetter");
|
|
7
18
|
Object.keys(_gridGroupingValueGetter).forEach(function (key) {
|
|
8
19
|
if (key === "default" || key === "__esModule") return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-premium",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.5.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",
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"exceljs": "^4.4.0",
|
|
43
43
|
"prop-types": "^15.8.1",
|
|
44
44
|
"reselect": "^5.1.1",
|
|
45
|
-
"@mui/x-data-grid
|
|
46
|
-
"@mui/x-data-grid": "8.
|
|
47
|
-
"@mui/x-
|
|
48
|
-
"@mui/x-
|
|
45
|
+
"@mui/x-data-grid": "8.5.0",
|
|
46
|
+
"@mui/x-data-grid-pro": "8.5.0",
|
|
47
|
+
"@mui/x-license": "8.5.0",
|
|
48
|
+
"@mui/x-internals": "8.5.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependencies": {
|
|
51
51
|
"@emotion/react": "^11.9.0",
|