@mui/x-data-grid-premium 8.0.0-alpha.12 → 8.0.0-alpha.14
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 +430 -0
- package/DataGridPremium/DataGridPremium.js +51 -39
- package/DataGridPremium/useDataGridPremiumProps.js +2 -2
- package/components/GridAggregationHeader.d.ts +1 -1
- package/components/GridAggregationHeader.js +7 -11
- package/components/GridColumnMenuAggregationItem.js +4 -4
- package/components/GridDataSourceGroupingCriteriaCell.js +5 -6
- package/components/GridFooterCell.js +5 -6
- package/components/GridGroupingColumnFooterCell.js +2 -1
- package/components/GridGroupingColumnLeafCell.js +3 -9
- package/components/GridGroupingCriteriaCell.js +3 -8
- package/components/GridPremiumToolbar.d.ts +3 -0
- package/components/GridPremiumToolbar.js +31 -0
- package/components/export/ExportExcel.d.ts +29 -0
- package/components/export/ExportExcel.js +198 -0
- package/components/export/index.d.ts +1 -0
- package/components/export/index.js +16 -0
- package/components/index.d.ts +2 -1
- package/components/index.js +13 -1
- package/components/promptControl/GridToolbarPromptControl.js +34 -32
- package/constants/dataGridPremiumDefaultSlotsComponents.js +3 -1
- package/esm/DataGridPremium/DataGridPremium.js +51 -39
- package/esm/DataGridPremium/useDataGridPremiumProps.js +2 -2
- package/esm/components/GridAggregationHeader.d.ts +1 -1
- package/esm/components/GridAggregationHeader.js +7 -11
- package/esm/components/GridColumnMenuAggregationItem.js +4 -4
- package/esm/components/GridDataSourceGroupingCriteriaCell.js +6 -7
- package/esm/components/GridFooterCell.js +5 -6
- package/esm/components/GridGroupingColumnFooterCell.js +2 -1
- package/esm/components/GridGroupingColumnLeafCell.js +3 -8
- package/esm/components/GridGroupingCriteriaCell.js +3 -8
- package/esm/components/GridPremiumToolbar.d.ts +3 -0
- package/esm/components/GridPremiumToolbar.js +23 -0
- package/esm/components/export/ExportExcel.d.ts +29 -0
- package/esm/components/export/ExportExcel.js +191 -0
- package/esm/components/export/index.d.ts +1 -0
- package/esm/components/export/index.js +1 -0
- package/esm/components/index.d.ts +2 -1
- package/esm/components/index.js +2 -1
- package/esm/components/promptControl/GridToolbarPromptControl.js +34 -32
- package/esm/constants/dataGridPremiumDefaultSlotsComponents.js +3 -1
- package/esm/hooks/features/aggregation/useGridAggregation.d.ts +1 -1
- package/esm/hooks/features/aggregation/useGridAggregation.js +6 -6
- package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +1 -1
- package/esm/hooks/features/aggregation/useGridAggregationPreProcessors.js +6 -6
- package/esm/hooks/features/clipboard/useGridClipboardImport.js +3 -3
- package/esm/hooks/features/dataSource/models.d.ts +1 -1
- package/esm/hooks/features/dataSource/useGridDataSourcePremium.js +3 -3
- package/esm/hooks/features/rowGrouping/gridRowGroupingUtils.js +2 -2
- package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +1 -1
- package/esm/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
- package/esm/hooks/features/rowGrouping/useGridRowGrouping.d.ts +1 -1
- package/esm/hooks/features/rowGrouping/useGridRowGrouping.js +4 -4
- package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +1 -1
- package/esm/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
- package/esm/index.d.ts +0 -6
- package/esm/index.js +1 -7
- package/esm/models/dataGridPremiumProps.d.ts +7 -8
- package/esm/utils/releaseInfo.js +1 -1
- package/hooks/features/aggregation/useGridAggregation.d.ts +1 -1
- package/hooks/features/aggregation/useGridAggregation.js +6 -6
- package/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +1 -1
- package/hooks/features/aggregation/useGridAggregationPreProcessors.js +6 -6
- package/hooks/features/clipboard/useGridClipboardImport.js +2 -2
- package/hooks/features/dataSource/models.d.ts +1 -1
- package/hooks/features/dataSource/useGridDataSourcePremium.js +3 -3
- package/hooks/features/rowGrouping/gridRowGroupingUtils.js +1 -1
- package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +1 -1
- package/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
- package/hooks/features/rowGrouping/useGridRowGrouping.d.ts +1 -1
- package/hooks/features/rowGrouping/useGridRowGrouping.js +4 -4
- package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +1 -1
- package/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
- package/index.d.ts +0 -6
- package/index.js +2 -11
- package/models/dataGridPremiumProps.d.ts +7 -8
- package/modern/DataGridPremium/DataGridPremium.js +51 -39
- package/modern/DataGridPremium/useDataGridPremiumProps.js +2 -2
- package/modern/components/GridAggregationHeader.d.ts +1 -1
- package/modern/components/GridAggregationHeader.js +7 -11
- package/modern/components/GridColumnMenuAggregationItem.js +4 -4
- package/modern/components/GridDataSourceGroupingCriteriaCell.js +6 -7
- package/modern/components/GridFooterCell.js +5 -6
- package/modern/components/GridGroupingColumnFooterCell.js +2 -1
- package/modern/components/GridGroupingColumnLeafCell.js +3 -8
- package/modern/components/GridGroupingCriteriaCell.js +3 -8
- package/modern/components/GridPremiumToolbar.d.ts +3 -0
- package/modern/components/GridPremiumToolbar.js +23 -0
- package/modern/components/export/ExportExcel.d.ts +29 -0
- package/modern/components/export/ExportExcel.js +191 -0
- package/modern/components/export/index.d.ts +1 -0
- package/modern/components/export/index.js +1 -0
- package/modern/components/index.d.ts +2 -1
- package/modern/components/index.js +2 -1
- package/modern/components/promptControl/GridToolbarPromptControl.js +34 -32
- package/modern/constants/dataGridPremiumDefaultSlotsComponents.js +3 -1
- package/modern/hooks/features/aggregation/useGridAggregation.d.ts +1 -1
- package/modern/hooks/features/aggregation/useGridAggregation.js +6 -6
- package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.d.ts +1 -1
- package/modern/hooks/features/aggregation/useGridAggregationPreProcessors.js +6 -6
- package/modern/hooks/features/clipboard/useGridClipboardImport.js +3 -3
- package/modern/hooks/features/dataSource/models.d.ts +1 -1
- package/modern/hooks/features/dataSource/useGridDataSourcePremium.js +3 -3
- package/modern/hooks/features/rowGrouping/gridRowGroupingUtils.js +2 -2
- package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.d.ts +1 -1
- package/modern/hooks/features/rowGrouping/useGridDataSourceRowGroupingPreProcessors.js +3 -3
- package/modern/hooks/features/rowGrouping/useGridRowGrouping.d.ts +1 -1
- package/modern/hooks/features/rowGrouping/useGridRowGrouping.js +4 -4
- package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.d.ts +1 -1
- package/modern/hooks/features/rowGrouping/useGridRowGroupingPreProcessors.js +5 -5
- package/modern/index.d.ts +0 -6
- package/modern/index.js +1 -7
- package/modern/models/dataGridPremiumProps.d.ts +7 -8
- package/modern/utils/releaseInfo.js +1 -1
- package/package.json +5 -5
- package/tsconfig.build.tsbuildinfo +1 -1
- package/utils/releaseInfo.js +1 -1
|
@@ -32,8 +32,8 @@ function GridColumnMenuAggregationItem(props) {
|
|
|
32
32
|
const availableAggregationFunctions = React.useMemo(() => (0, _gridAggregationUtils.getAvailableAggregationFunctions)({
|
|
33
33
|
aggregationFunctions: rootProps.aggregationFunctions,
|
|
34
34
|
colDef,
|
|
35
|
-
isDataSource: !!rootProps.
|
|
36
|
-
}), [colDef, rootProps.aggregationFunctions, rootProps.
|
|
35
|
+
isDataSource: !!rootProps.dataSource
|
|
36
|
+
}), [colDef, rootProps.aggregationFunctions, rootProps.dataSource]);
|
|
37
37
|
const _ref = rootProps.slotProps?.baseSelect || {},
|
|
38
38
|
{
|
|
39
39
|
native: isBaseSelectNative = false
|
|
@@ -49,12 +49,12 @@ function GridColumnMenuAggregationItem(props) {
|
|
|
49
49
|
colDef,
|
|
50
50
|
aggregationFunctionName,
|
|
51
51
|
aggregationFunction: rootProps.aggregationFunctions[aggregationFunctionName],
|
|
52
|
-
isDataSource: !!rootProps.
|
|
52
|
+
isDataSource: !!rootProps.dataSource
|
|
53
53
|
})) {
|
|
54
54
|
return aggregationFunctionName;
|
|
55
55
|
}
|
|
56
56
|
return '';
|
|
57
|
-
}, [rootProps.aggregationFunctions, rootProps.
|
|
57
|
+
}, [rootProps.aggregationFunctions, rootProps.dataSource, aggregationModel, colDef]);
|
|
58
58
|
const handleAggregationItemChange = event => {
|
|
59
59
|
const newAggregationItem = event.target?.value || undefined;
|
|
60
60
|
const currentModel = (0, _gridAggregationSelectors.gridAggregationModelSelector)(apiRef);
|
|
@@ -9,7 +9,6 @@ exports.GridDataSourceGroupingCriteriaCell = GridDataSourceGroupingCriteriaCell;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _utils = require("@mui/utils");
|
|
12
|
-
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
13
12
|
var _internals = require("@mui/x-data-grid-pro/internals");
|
|
14
13
|
var _xDataGridPro = require("@mui/x-data-grid-pro");
|
|
15
14
|
var _useGridApiContext = require("../hooks/utils/useGridApiContext");
|
|
@@ -41,7 +40,7 @@ function GridGroupingCriteriaCellIcon(props) {
|
|
|
41
40
|
const handleClick = event => {
|
|
42
41
|
if (!rowNode.childrenExpanded) {
|
|
43
42
|
// always fetch/get from cache the children when the node is expanded
|
|
44
|
-
apiRef.current.
|
|
43
|
+
apiRef.current.dataSource.fetchRows(id);
|
|
45
44
|
} else {
|
|
46
45
|
apiRef.current.setRowChildrenExpansion(id, !rowNode.childrenExpanded);
|
|
47
46
|
}
|
|
@@ -91,7 +90,7 @@ function GridDataSourceGroupingCriteriaCell(props) {
|
|
|
91
90
|
const classes = useUtilityClasses(rootProps);
|
|
92
91
|
let descendantCount = 0;
|
|
93
92
|
if (row) {
|
|
94
|
-
descendantCount = Math.max(rootProps.
|
|
93
|
+
descendantCount = Math.max(rootProps.dataSource?.getChildrenCount?.(row) ?? 0, 0);
|
|
95
94
|
}
|
|
96
95
|
let cellContent;
|
|
97
96
|
const colDef = apiRef.current.getColumn(rowNode.groupingField);
|
|
@@ -106,10 +105,10 @@ function GridDataSourceGroupingCriteriaCell(props) {
|
|
|
106
105
|
children: rowNode.groupingKey
|
|
107
106
|
});
|
|
108
107
|
}
|
|
109
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
108
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
110
109
|
className: classes.root,
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
style: {
|
|
111
|
+
marginLeft: rootProps.rowGroupingColumnMode === 'multiple' ? 0 : `calc(var(--DataGrid-cellOffsetMultiplier) * ${_internals.vars.spacing(rowNode.depth)})`
|
|
113
112
|
},
|
|
114
113
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
115
114
|
className: classes.toggle,
|
|
@@ -10,6 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
10
10
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _xDataGrid = require("@mui/x-data-grid");
|
|
13
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
13
14
|
var _styles = require("@mui/material/styles");
|
|
14
15
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
15
16
|
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
@@ -19,12 +20,10 @@ const GridFooterCellRoot = (0, _styles.styled)('div', {
|
|
|
19
20
|
name: 'MuiDataGrid',
|
|
20
21
|
slot: 'FooterCell',
|
|
21
22
|
overridesResolver: (_, styles) => styles.footerCell
|
|
22
|
-
})(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
color: (theme.vars || theme).palette.primary.dark
|
|
27
|
-
}));
|
|
23
|
+
})({
|
|
24
|
+
fontWeight: _internals.vars.typography.fontWeight.medium,
|
|
25
|
+
color: _internals.vars.colors.foreground.accent
|
|
26
|
+
});
|
|
28
27
|
const useUtilityClasses = ownerState => {
|
|
29
28
|
const {
|
|
30
29
|
classes
|
|
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.GridGroupingColumnFooterCell = GridGroupingColumnFooterCell;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
11
12
|
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
12
13
|
var _GridFooterCell = require("./GridFooterCell");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -21,7 +22,7 @@ function GridGroupingColumnFooterCell(props) {
|
|
|
21
22
|
} else if (rootProps.rowGroupingColumnMode === 'multiple') {
|
|
22
23
|
sx.ml = 2;
|
|
23
24
|
} else {
|
|
24
|
-
sx.ml =
|
|
25
|
+
sx.ml = `calc(var(--DataGrid-cellOffsetMultiplier) * ${_internals.vars.spacing(props.rowNode.depth)})`;
|
|
25
26
|
}
|
|
26
27
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridFooterCell.GridFooterCell, (0, _extends2.default)({
|
|
27
28
|
sx: sx
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.GridGroupingColumnLeafCell = GridGroupingColumnLeafCell;
|
|
9
8
|
var React = _interopRequireWildcard(require("react"));
|
|
10
|
-
var
|
|
9
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
11
10
|
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
12
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
12
|
function GridGroupingColumnLeafCell(props) {
|
|
@@ -15,14 +14,9 @@ function GridGroupingColumnLeafCell(props) {
|
|
|
15
14
|
rowNode
|
|
16
15
|
} = props;
|
|
17
16
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
18
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
19
|
-
sx: [rootProps.rowGroupingColumnMode === 'multiple' ? {
|
|
20
|
-
ml: 1
|
|
21
|
-
} : theme => ({
|
|
22
|
-
ml: `calc(var(--DataGrid-cellOffsetMultiplier) * var(--depth) * ${theme.spacing(1)})`
|
|
23
|
-
})],
|
|
17
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
24
18
|
style: {
|
|
25
|
-
'
|
|
19
|
+
marginLeft: rootProps.rowGroupingColumnMode === 'multiple' ? _internals.vars.spacing(1) : `calc(var(--DataGrid-cellOffsetMultiplier) * ${_internals.vars.spacing(rowNode.depth)})`
|
|
26
20
|
},
|
|
27
21
|
children: props.formattedValue ?? props.value
|
|
28
22
|
});
|
|
@@ -9,7 +9,7 @@ exports.GridGroupingCriteriaCell = GridGroupingCriteriaCell;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var React = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
12
|
-
var
|
|
12
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
13
13
|
var _xDataGridPro = require("@mui/x-data-grid-pro");
|
|
14
14
|
var _useGridApiContext = require("../hooks/utils/useGridApiContext");
|
|
15
15
|
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
@@ -67,15 +67,10 @@ function GridGroupingCriteriaCell(props) {
|
|
|
67
67
|
children: rowNode.groupingKey
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
70
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
71
71
|
className: classes.root,
|
|
72
|
-
sx: [rootProps.rowGroupingColumnMode === 'multiple' ? {
|
|
73
|
-
ml: 0
|
|
74
|
-
} : theme => ({
|
|
75
|
-
ml: `calc(var(--DataGrid-cellOffsetMultiplier) * var(--depth) * ${theme.spacing(1)})`
|
|
76
|
-
})],
|
|
77
72
|
style: {
|
|
78
|
-
'
|
|
73
|
+
marginLeft: rootProps.rowGroupingColumnMode === 'multiple' ? 0 : `calc(var(--DataGrid-cellOffsetMultiplier) * ${rowNode.depth} * ${_internals.vars.spacing(1)})`
|
|
79
74
|
},
|
|
80
75
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
81
76
|
className: classes.toggle,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.GridPremiumToolbar = GridPremiumToolbar;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
13
|
+
var _export = require("./export");
|
|
14
|
+
var _useGridRootProps = require("../hooks/utils/useGridRootProps");
|
|
15
|
+
var _useGridApiContext = require("../hooks/utils/useGridApiContext");
|
|
16
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
+
const _excluded = ["excelOptions"];
|
|
18
|
+
function GridPremiumToolbar(props) {
|
|
19
|
+
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
20
|
+
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
21
|
+
const other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
22
|
+
const additionalExportMenuItems = !props.excelOptions?.disableToolbarButton ? onMenuItemClick => /*#__PURE__*/(0, _jsxRuntime.jsx)(_export.ExportExcel, {
|
|
23
|
+
render: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseMenuItem, (0, _extends2.default)({}, rootProps.slotProps?.baseMenuItem)),
|
|
24
|
+
options: props.excelOptions,
|
|
25
|
+
onClick: onMenuItemClick,
|
|
26
|
+
children: apiRef.current.getLocaleText('toolbarExportExcel')
|
|
27
|
+
}) : undefined;
|
|
28
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.GridToolbar, (0, _extends2.default)({}, other, {
|
|
29
|
+
additionalExportMenuItems: additionalExportMenuItems
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { GridSlotProps, RenderProp } from '@mui/x-data-grid';
|
|
3
|
+
import { GridExcelExportOptions } from "../../hooks/features/export/index.js";
|
|
4
|
+
export type ExportExcelProps = GridSlotProps['baseButton'] & {
|
|
5
|
+
/**
|
|
6
|
+
* A function to customize rendering of the component.
|
|
7
|
+
*/
|
|
8
|
+
render?: RenderProp<GridSlotProps['baseButton']>;
|
|
9
|
+
/**
|
|
10
|
+
* The options to apply on the Excel export.
|
|
11
|
+
* @demos
|
|
12
|
+
* - [Excel export](/x/react-data-grid/export/#excel-export)
|
|
13
|
+
*/
|
|
14
|
+
options?: GridExcelExportOptions;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* A button that triggers an Excel export.
|
|
18
|
+
* It renders the `baseButton` slot.
|
|
19
|
+
*
|
|
20
|
+
* Demos:
|
|
21
|
+
*
|
|
22
|
+
* - [Export](https://mui.com/x/react-data-grid/components/export/)
|
|
23
|
+
*
|
|
24
|
+
* API:
|
|
25
|
+
*
|
|
26
|
+
* - [ExportExcel API](https://mui.com/x/api/data-grid/export-excel/)
|
|
27
|
+
*/
|
|
28
|
+
declare const ExportExcel: React.ForwardRefExoticComponent<ExportExcelProps> | React.ForwardRefExoticComponent<Omit<ExportExcelProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
29
|
+
export { ExportExcel };
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ExportExcel = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
var _internals = require("@mui/x-data-grid/internals");
|
|
14
|
+
var _forwardRef = require("@mui/x-internals/forwardRef");
|
|
15
|
+
var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
|
|
16
|
+
var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
|
|
17
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
+
const _excluded = ["render", "options", "onClick"];
|
|
19
|
+
/**
|
|
20
|
+
* A button that triggers an Excel export.
|
|
21
|
+
* It renders the `baseButton` slot.
|
|
22
|
+
*
|
|
23
|
+
* Demos:
|
|
24
|
+
*
|
|
25
|
+
* - [Export](https://mui.com/x/react-data-grid/components/export/)
|
|
26
|
+
*
|
|
27
|
+
* API:
|
|
28
|
+
*
|
|
29
|
+
* - [ExportExcel API](https://mui.com/x/api/data-grid/export-excel/)
|
|
30
|
+
*/
|
|
31
|
+
const ExportExcel = exports.ExportExcel = (0, _forwardRef.forwardRef)(function ExportExcel(props, ref) {
|
|
32
|
+
const {
|
|
33
|
+
render,
|
|
34
|
+
options,
|
|
35
|
+
onClick
|
|
36
|
+
} = props,
|
|
37
|
+
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
38
|
+
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
39
|
+
const apiRef = (0, _useGridApiContext.useGridApiContext)();
|
|
40
|
+
const handleClick = event => {
|
|
41
|
+
apiRef.current.exportDataAsExcel(options);
|
|
42
|
+
onClick?.(event);
|
|
43
|
+
};
|
|
44
|
+
const element = (0, _internals.useGridComponentRenderer)(rootProps.slots.baseButton, render, (0, _extends2.default)({
|
|
45
|
+
onClick: handleClick
|
|
46
|
+
}, rootProps.slotProps?.baseButton, other, {
|
|
47
|
+
ref
|
|
48
|
+
}));
|
|
49
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
|
|
50
|
+
children: element
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
process.env.NODE_ENV !== "production" ? ExportExcel.propTypes = {
|
|
54
|
+
// ----------------------------- Warning --------------------------------
|
|
55
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
56
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
57
|
+
// ----------------------------------------------------------------------
|
|
58
|
+
/**
|
|
59
|
+
* A ref for imperative actions.
|
|
60
|
+
* It currently only supports `focusVisible()` action.
|
|
61
|
+
*/
|
|
62
|
+
action: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
|
|
63
|
+
current: _propTypes.default.shape({
|
|
64
|
+
focusVisible: _propTypes.default.func.isRequired
|
|
65
|
+
})
|
|
66
|
+
})]),
|
|
67
|
+
/**
|
|
68
|
+
* If `true`, the ripples are centered.
|
|
69
|
+
* They won't start at the cursor interaction position.
|
|
70
|
+
* @default false
|
|
71
|
+
*/
|
|
72
|
+
centerRipple: _propTypes.default.bool,
|
|
73
|
+
className: _propTypes.default.string,
|
|
74
|
+
/**
|
|
75
|
+
* The color of the component.
|
|
76
|
+
* It supports both default and custom theme colors, which can be added as shown in the
|
|
77
|
+
* [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).
|
|
78
|
+
* @default 'primary'
|
|
79
|
+
*/
|
|
80
|
+
color: _propTypes.default.oneOf(['error', 'info', 'inherit', 'primary', 'secondary', 'success', 'warning']),
|
|
81
|
+
component: _propTypes.default.elementType,
|
|
82
|
+
/**
|
|
83
|
+
* If `true`, the component is disabled.
|
|
84
|
+
*/
|
|
85
|
+
disabled: _propTypes.default.bool,
|
|
86
|
+
/**
|
|
87
|
+
* If `true`, no elevation is used.
|
|
88
|
+
* @default false
|
|
89
|
+
*/
|
|
90
|
+
disableElevation: _propTypes.default.bool,
|
|
91
|
+
/**
|
|
92
|
+
* If `true`, the keyboard focus ripple is disabled.
|
|
93
|
+
* @default false
|
|
94
|
+
*/
|
|
95
|
+
disableFocusRipple: _propTypes.default.bool,
|
|
96
|
+
/**
|
|
97
|
+
* If `true`, the ripple effect is disabled.
|
|
98
|
+
*
|
|
99
|
+
* ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
|
|
100
|
+
* to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
|
|
101
|
+
* @default false
|
|
102
|
+
*/
|
|
103
|
+
disableRipple: _propTypes.default.bool,
|
|
104
|
+
/**
|
|
105
|
+
* If `true`, the touch ripple effect is disabled.
|
|
106
|
+
* @default false
|
|
107
|
+
*/
|
|
108
|
+
disableTouchRipple: _propTypes.default.bool,
|
|
109
|
+
/**
|
|
110
|
+
* Element placed after the children.
|
|
111
|
+
*/
|
|
112
|
+
endIcon: _propTypes.default.node,
|
|
113
|
+
/**
|
|
114
|
+
* If `true`, the base button will have a keyboard focus ripple.
|
|
115
|
+
* @default false
|
|
116
|
+
*/
|
|
117
|
+
focusRipple: _propTypes.default.bool,
|
|
118
|
+
/**
|
|
119
|
+
* This prop can help identify which element has keyboard focus.
|
|
120
|
+
* The class name will be applied when the element gains the focus through keyboard interaction.
|
|
121
|
+
* It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
|
|
122
|
+
* The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
|
|
123
|
+
* A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
|
|
124
|
+
* if needed.
|
|
125
|
+
*/
|
|
126
|
+
focusVisibleClassName: _propTypes.default.string,
|
|
127
|
+
/**
|
|
128
|
+
* If `true`, the button will take up the full width of its container.
|
|
129
|
+
* @default false
|
|
130
|
+
*/
|
|
131
|
+
fullWidth: _propTypes.default.bool,
|
|
132
|
+
/**
|
|
133
|
+
* The URL to link to when the button is clicked.
|
|
134
|
+
* If defined, an `a` element will be used as the root node.
|
|
135
|
+
*/
|
|
136
|
+
href: _propTypes.default.string,
|
|
137
|
+
/**
|
|
138
|
+
* The component used to render a link when the `href` prop is provided.
|
|
139
|
+
* @default 'a'
|
|
140
|
+
*/
|
|
141
|
+
LinkComponent: _propTypes.default.elementType,
|
|
142
|
+
/**
|
|
143
|
+
* Callback fired when the component is focused with a keyboard.
|
|
144
|
+
* We trigger a `onFocus` callback too.
|
|
145
|
+
*/
|
|
146
|
+
onFocusVisible: _propTypes.default.func,
|
|
147
|
+
/**
|
|
148
|
+
* The options to apply on the Excel export.
|
|
149
|
+
* @demos
|
|
150
|
+
* - [Excel export](/x/react-data-grid/export/#excel-export)
|
|
151
|
+
*/
|
|
152
|
+
options: _propTypes.default.shape({
|
|
153
|
+
allColumns: _propTypes.default.bool,
|
|
154
|
+
columnsStyles: _propTypes.default.object,
|
|
155
|
+
escapeFormulas: _propTypes.default.bool,
|
|
156
|
+
exceljsPostProcess: _propTypes.default.func,
|
|
157
|
+
exceljsPreProcess: _propTypes.default.func,
|
|
158
|
+
fields: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
159
|
+
fileName: _propTypes.default.string,
|
|
160
|
+
getRowsToExport: _propTypes.default.func,
|
|
161
|
+
includeColumnGroupsHeaders: _propTypes.default.bool,
|
|
162
|
+
includeHeaders: _propTypes.default.bool,
|
|
163
|
+
valueOptionsSheetName: _propTypes.default.string,
|
|
164
|
+
worker: _propTypes.default.func
|
|
165
|
+
}),
|
|
166
|
+
/**
|
|
167
|
+
* A function to customize rendering of the component.
|
|
168
|
+
*/
|
|
169
|
+
render: _propTypes.default.oneOfType([_propTypes.default.element, _propTypes.default.func]),
|
|
170
|
+
/**
|
|
171
|
+
* The size of the component.
|
|
172
|
+
* `small` is equivalent to the dense button styling.
|
|
173
|
+
*/
|
|
174
|
+
size: _propTypes.default.oneOf(['large', 'medium', 'small']),
|
|
175
|
+
/**
|
|
176
|
+
* Element placed before the children.
|
|
177
|
+
*/
|
|
178
|
+
startIcon: _propTypes.default.node,
|
|
179
|
+
style: _propTypes.default.object,
|
|
180
|
+
/**
|
|
181
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
182
|
+
*/
|
|
183
|
+
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
|
184
|
+
tabIndex: _propTypes.default.number,
|
|
185
|
+
/**
|
|
186
|
+
* Props applied to the `TouchRipple` element.
|
|
187
|
+
*/
|
|
188
|
+
TouchRippleProps: _propTypes.default.object,
|
|
189
|
+
/**
|
|
190
|
+
* A ref that points to the `TouchRipple` element.
|
|
191
|
+
*/
|
|
192
|
+
touchRippleRef: _propTypes.default.any,
|
|
193
|
+
/**
|
|
194
|
+
* The variant to use.
|
|
195
|
+
* @default 'text'
|
|
196
|
+
*/
|
|
197
|
+
variant: _propTypes.default.oneOf(['contained', 'outlined', 'text'])
|
|
198
|
+
} : void 0;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./ExportExcel.js";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _ExportExcel = require("./ExportExcel");
|
|
7
|
+
Object.keys(_ExportExcel).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _ExportExcel[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _ExportExcel[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
package/components/index.d.ts
CHANGED
|
@@ -2,4 +2,5 @@ export * from "./GridExcelExportMenuItem.js";
|
|
|
2
2
|
export * from "../material/icons.js";
|
|
3
3
|
export * from "./GridColumnMenuAggregationItem.js";
|
|
4
4
|
export * from "./promptControl/index.js";
|
|
5
|
-
export { GridColumnMenuGroupingItem } from "./GridPremiumColumnMenu.js";
|
|
5
|
+
export { GridColumnMenuGroupingItem } from "./GridPremiumColumnMenu.js";
|
|
6
|
+
export * from "./export/index.js";
|
package/components/index.js
CHANGED
|
@@ -60,4 +60,16 @@ Object.keys(_promptControl).forEach(function (key) {
|
|
|
60
60
|
}
|
|
61
61
|
});
|
|
62
62
|
});
|
|
63
|
-
var _GridPremiumColumnMenu = require("./GridPremiumColumnMenu");
|
|
63
|
+
var _GridPremiumColumnMenu = require("./GridPremiumColumnMenu");
|
|
64
|
+
var _export = require("./export");
|
|
65
|
+
Object.keys(_export).forEach(function (key) {
|
|
66
|
+
if (key === "default" || key === "__esModule") return;
|
|
67
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
68
|
+
if (key in exports && exports[key] === _export[key]) return;
|
|
69
|
+
Object.defineProperty(exports, key, {
|
|
70
|
+
enumerable: true,
|
|
71
|
+
get: function () {
|
|
72
|
+
return _export[key];
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
});
|
|
@@ -127,10 +127,18 @@ function GridToolbarPromptControl(props) {
|
|
|
127
127
|
sort: s.direction
|
|
128
128
|
})));
|
|
129
129
|
const rows = (0, _internals.getVisibleRows)(apiRef, rootProps);
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
130
|
+
const rowSelectionModel = {
|
|
131
|
+
type: 'include',
|
|
132
|
+
ids: new Set()
|
|
133
|
+
};
|
|
134
|
+
if (result.select !== -1) {
|
|
135
|
+
for (let i = 0; i < result.select; i += 1) {
|
|
136
|
+
const row = rows.rows[i];
|
|
137
|
+
const id = apiRef.current.getRowId(row);
|
|
138
|
+
rowSelectionModel.ids.add(id);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
apiRef.current.setRowSelectionModel(rowSelectionModel);
|
|
134
142
|
const columns = apiRef.current.getAllColumns();
|
|
135
143
|
const targetIndex = Number(columns.find(c => c.field === _xDataGrid.GRID_CHECKBOX_SELECTION_FIELD) !== undefined) + Number(result.grouping.length);
|
|
136
144
|
interestColumns.push(...Object.keys(result.aggregation));
|
|
@@ -180,35 +188,29 @@ function GridToolbarPromptControl(props) {
|
|
|
180
188
|
helperText: error,
|
|
181
189
|
slotProps: {
|
|
182
190
|
input: {
|
|
183
|
-
startAdornment: supportsSpeechRecognition && /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
onDone: handleDone,
|
|
193
|
-
onError: setError
|
|
194
|
-
})
|
|
191
|
+
startAdornment: supportsSpeechRecognition && /*#__PURE__*/(0, _jsxRuntime.jsx)(_RecordButton.RecordButton, {
|
|
192
|
+
className: classes.recordButton,
|
|
193
|
+
lang: lang,
|
|
194
|
+
recording: isRecording,
|
|
195
|
+
setRecording: setRecording,
|
|
196
|
+
disabled: isLoading,
|
|
197
|
+
onUpdate: setQuery,
|
|
198
|
+
onDone: handleDone,
|
|
199
|
+
onError: setError
|
|
195
200
|
}),
|
|
196
|
-
endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.
|
|
197
|
-
|
|
198
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.toolbarPromptSendIcon, {
|
|
210
|
-
fontSize: "small"
|
|
211
|
-
})
|
|
201
|
+
endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
|
|
202
|
+
title: apiRef.current.getLocaleText('toolbarPromptControlSendActionLabel'),
|
|
203
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
204
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseIconButton, {
|
|
205
|
+
className: classes.sendButton,
|
|
206
|
+
disabled: isLoading || isRecording || query === '',
|
|
207
|
+
color: "primary",
|
|
208
|
+
onClick: processPrompt,
|
|
209
|
+
size: "small",
|
|
210
|
+
"aria-label": apiRef.current.getLocaleText('toolbarPromptControlSendActionAriaLabel'),
|
|
211
|
+
edge: "end",
|
|
212
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.toolbarPromptSendIcon, {
|
|
213
|
+
fontSize: "small"
|
|
212
214
|
})
|
|
213
215
|
})
|
|
214
216
|
})
|
|
@@ -10,7 +10,9 @@ var _internals = require("@mui/x-data-grid-pro/internals");
|
|
|
10
10
|
var _GridPremiumColumnMenu = require("../components/GridPremiumColumnMenu");
|
|
11
11
|
var _material = _interopRequireDefault(require("../material"));
|
|
12
12
|
var _GridBottomContainer = require("../components/GridBottomContainer");
|
|
13
|
+
var _GridPremiumToolbar = require("../components/GridPremiumToolbar");
|
|
13
14
|
const DATA_GRID_PREMIUM_DEFAULT_SLOTS_COMPONENTS = exports.DATA_GRID_PREMIUM_DEFAULT_SLOTS_COMPONENTS = (0, _extends2.default)({}, _internals.DATA_GRID_PRO_DEFAULT_SLOTS_COMPONENTS, _material.default, {
|
|
14
15
|
columnMenu: _GridPremiumColumnMenu.GridPremiumColumnMenu,
|
|
15
|
-
bottomContainer: _GridBottomContainer.GridBottomContainer
|
|
16
|
+
bottomContainer: _GridBottomContainer.GridBottomContainer,
|
|
17
|
+
toolbar: _GridPremiumToolbar.GridPremiumToolbar
|
|
16
18
|
});
|