@mui/x-data-grid-premium
Version:
The Premium plan edition of the MUI X Data Grid Components.
94 lines • 4.5 kB
TypeScript
import type { GridColDef, GridRowModel } from '@mui/x-data-grid-pro';
import type { GridPivotingPrivateApiCommunity, GridPivotingStatePartial } from '@mui/x-data-grid/internals';
import type { RefObject } from '@mui/x-internals/types';
import type { DataGridPremiumProcessedProps } from "../../../models/dataGridPremiumProps.js";
import type { GridInitialStatePremium } from "../../../models/gridStatePremium.js";
export type GridPivotingStaticPropsOverrides = {
rowGroupingModel: DataGridPremiumProcessedProps['rowGroupingModel'];
getAggregationPosition: DataGridPremiumProcessedProps['getAggregationPosition'];
columnVisibilityModel: DataGridPremiumProcessedProps['columnVisibilityModel'];
groupingColDef: DataGridPremiumProcessedProps['groupingColDef'];
headerFilters: DataGridPremiumProcessedProps['headerFilters'];
disableAggregation: DataGridPremiumProcessedProps['disableAggregation'];
disableRowGrouping: DataGridPremiumProcessedProps['disableRowGrouping'];
};
export type GridPivotingDynamicPropsOverrides = {
rows?: DataGridPremiumProcessedProps['rows'];
columns: DataGridPremiumProcessedProps['columns'];
aggregationModel: DataGridPremiumProcessedProps['aggregationModel'];
columnGroupingModel: DataGridPremiumProcessedProps['columnGroupingModel'];
};
export type GridPivotingPropsOverrides = GridPivotingStaticPropsOverrides & GridPivotingDynamicPropsOverrides;
export interface GridPivotingState extends GridPivotingStatePartial {
model: GridPivotModel;
propsOverrides: GridPivotingPropsOverrides | GridPivotingStaticPropsOverrides | {} | undefined;
}
export interface GridPivotingInitialState {
model?: GridPivotModel;
enabled?: boolean;
/**
* To open the pivot sidebar on init, set sidebar's `openValue` to `GridSidebarValue.Pivot`.
* @deprecated Use sidebar state instead.
*/
panelOpen?: boolean;
}
export interface GridPivotModel {
columns: {
field: GridColDef['field'];
sort?: 'asc' | 'desc';
hidden?: boolean;
}[];
rows: {
field: GridColDef['field'];
hidden?: boolean;
}[];
values: {
field: GridColDef['field'];
aggFunc: string;
hidden?: boolean;
}[];
}
export type DropPosition = 'top' | 'bottom' | null;
export interface GridPivotingApi {
/**
* Sets the pivot model to use in the pivot mode.
* @param {GridPivotModel | ((prev: GridPivotModel) => GridPivotModel)} model - The pivot model to set.
*/
setPivotModel: (model: GridPivotModel | ((prev: GridPivotModel) => GridPivotModel)) => void;
/**
* Sets whether the pivot mode is active.
* @param {boolean | ((prev: boolean) => boolean)} active - The new value of the pivot mode state.
*/
setPivotActive: (active: boolean | ((prev: boolean) => boolean)) => void;
/**
* Sets whether the pivot panel is open.
* @deprecated Use the `showSidebar` method instead. Using this method will not trigger the `sidebarOpen` and `sidebarClose` events.
* @param {boolean | ((prev: boolean) => boolean)} open - The new value of the pivot panel open state.
*/
setPivotPanelOpen: (open: boolean | ((prev: boolean) => boolean)) => void;
}
export interface GridPivotingPrivateApi extends GridPivotingPrivateApiCommunity {
updatePivotModel: (params: {
field: string;
targetSection: 'columns' | 'rows' | 'values' | null;
originSection: 'columns' | 'rows' | 'values' | null;
targetField?: string;
targetFieldPosition?: DropPosition;
}) => void;
}
export type GridPivotingColDefOverrides = Pick<GridColDef, 'field' | 'width' | 'flex' | 'headerName' | 'description' | 'align' | 'headerAlign' | 'cellClassName' | 'headerClassName' | 'display' | 'maxWidth' | 'minWidth' | 'resizable' | 'sortingOrder'>;
/**
* The column definition overrides callback for the columns generated by the pivoting feature.
* @param {string} originalColumnField The field of the original column.
* @param {string[]} columnGroupPath The path of the column groups the column belongs to.
* @returns {Partial<GridPivotingColDefOverrides> | undefined | void} The column definition overrides.
*/
export type PivotingColDefCallback = (originalColumnField: GridColDef['field'], columnGroupPath: string[]) => Partial<GridPivotingColDefOverrides> | undefined;
export interface GridPivotingInternalCache {
nonPivotDataRef: RefObject<{
rows: GridRowModel[];
columns: Map<string, GridColDef>;
originalRowsProp: readonly GridRowModel[];
} | undefined>;
exportedStateRef: RefObject<GridInitialStatePremium | null>;
}