UNPKG

@mui/x-data-grid-premium

Version:

The Premium plan edition of the MUI X Data Grid Components.

113 lines 5.78 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["excelOptions"]; import * as React from 'react'; import { GridToolbar, GridToolbarDivider, useGridSelector } from '@mui/x-data-grid-pro/internals'; import { ColumnsPanelTrigger, FilterPanelTrigger, ToolbarButton } from '@mui/x-data-grid-pro'; import { ExportExcel } from "./export/index.js"; import { useGridRootProps } from "../hooks/utils/useGridRootProps.js"; import { useGridApiContext } from "../hooks/utils/useGridApiContext.js"; import { PivotPanelTrigger } from "./pivotPanel/PivotPanelTrigger.js"; import { AiAssistantPanelTrigger } from "./aiAssistantPanel/index.js"; import { ChartsPanelTrigger } from "./chartsPanel/ChartsPanelTrigger.js"; import { gridHistoryCanRedoSelector, gridHistoryCanUndoSelector, gridHistoryEnabledSelector } from "../hooks/features/history/index.js"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; export function GridPremiumToolbar(props) { const rootProps = useGridRootProps(); const apiRef = useGridApiContext(); const other = _objectWithoutPropertiesLoose(props, _excluded); const historyEnabled = useGridSelector(apiRef, gridHistoryEnabledSelector); const showHistoryControls = rootProps.slotProps?.toolbar?.showHistoryControls !== false && historyEnabled; const canUndo = useGridSelector(apiRef, gridHistoryCanUndoSelector); const canRedo = useGridSelector(apiRef, gridHistoryCanRedoSelector); const mainControls = /*#__PURE__*/_jsxs(React.Fragment, { children: [showHistoryControls && /*#__PURE__*/_jsxs(React.Fragment, { children: [/*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: apiRef.current.getLocaleText('toolbarUndo'), children: /*#__PURE__*/_jsx("div", { children: /*#__PURE__*/_jsx(ToolbarButton, { disabled: !canUndo, onClick: () => apiRef.current.history.undo(), children: /*#__PURE__*/_jsx(rootProps.slots.undoIcon, { fontSize: "small" }) }) }) }), /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: apiRef.current.getLocaleText('toolbarRedo'), children: /*#__PURE__*/_jsx("div", { children: /*#__PURE__*/_jsx(ToolbarButton, { disabled: !canRedo, onClick: () => apiRef.current.history.redo(), children: /*#__PURE__*/_jsx(rootProps.slots.redoIcon, { fontSize: "small" }) }) }) })] }), showHistoryControls && /*#__PURE__*/_jsx(GridToolbarDivider, {}), !rootProps.disableColumnSelector && /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: apiRef.current.getLocaleText('toolbarColumns'), children: /*#__PURE__*/_jsx(ColumnsPanelTrigger, { render: /*#__PURE__*/_jsx(ToolbarButton, {}), children: /*#__PURE__*/_jsx(rootProps.slots.columnSelectorIcon, { fontSize: "small" }) }) }), !rootProps.disableColumnFilter && /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: apiRef.current.getLocaleText('toolbarFilters'), children: /*#__PURE__*/_jsx(FilterPanelTrigger, { render: (triggerProps, state) => /*#__PURE__*/_jsx(ToolbarButton, _extends({}, triggerProps, { color: state.filterCount > 0 ? 'primary' : 'default', children: /*#__PURE__*/_jsx(rootProps.slots.baseBadge, { badgeContent: state.filterCount, color: "primary", variant: "dot", children: /*#__PURE__*/_jsx(rootProps.slots.openFilterButtonIcon, { fontSize: "small" }) }) })) }) }), !rootProps.disablePivoting && /*#__PURE__*/_jsx(PivotPanelTrigger, { render: (triggerProps, state) => /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: apiRef.current.getLocaleText('toolbarPivot'), children: /*#__PURE__*/_jsx(ToolbarButton, _extends({}, triggerProps, { color: state.active ? 'primary' : 'default', children: /*#__PURE__*/_jsx(rootProps.slots.pivotIcon, { fontSize: "small" }) })) }) }), rootProps.experimentalFeatures?.charts && rootProps.chartsIntegration && /*#__PURE__*/_jsx(ChartsPanelTrigger, { render: triggerProps => /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: apiRef.current.getLocaleText('toolbarCharts'), children: /*#__PURE__*/_jsx(ToolbarButton, _extends({}, triggerProps, { color: "default", children: /*#__PURE__*/_jsx(rootProps.slots.chartsIcon, { fontSize: "small" }) })) }) }), rootProps.aiAssistant && /*#__PURE__*/_jsx(AiAssistantPanelTrigger, { render: triggerProps => /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, { title: apiRef.current.getLocaleText('toolbarAssistant'), children: /*#__PURE__*/_jsx(ToolbarButton, _extends({}, triggerProps, { color: "default", children: /*#__PURE__*/_jsx(rootProps.slots.aiAssistantIcon, { fontSize: "small" }) })) }) })] }); const additionalExportMenuItems = !props.excelOptions?.disableToolbarButton ? onMenuItemClick => /*#__PURE__*/_jsx(ExportExcel, { render: /*#__PURE__*/_jsx(rootProps.slots.baseMenuItem, _extends({}, rootProps.slotProps?.baseMenuItem)), options: props.excelOptions, onClick: onMenuItemClick, children: apiRef.current.getLocaleText('toolbarExportExcel') }) : undefined; return /*#__PURE__*/_jsx(GridToolbar, _extends({}, other, { mainControls: mainControls, additionalExportMenuItems: additionalExportMenuItems })); }