import { PaginationPageSizeOption } from '../pagination/components/PageSizeChanger'; export type GridPaginationType = 'default' | 'lite' | 'mini'; export type GridScrollPosition = 'both' | 'left' | 'right' | 'middle'; export type GridTextAlign = 'left' | 'right' | 'center'; export type GridSortType = 'desc' | 'asc' | ''; export type GridFixedType = 'left' | 'right' | true; export type IGridInnerFixedType = Exclude; export type GridRowClassNameType = | string | ((data: Data, rowIndex: number) => string); export interface IGridScrollDelta { x?: number; y?: number; } export interface IGridPageInfo { current?: number; total?: number; pageSize?: number; pageSizeOptions?: PaginationPageSizeOption[]; } export type IGridColumnBodyRenderFunc = ( data: Data, pos: IGridCellPos, name?: string ) => React.ReactNode; export interface IGridColumn { title: React.ReactNode; name?: string; width?: React.CSSProperties['width']; bodyRender?: IGridColumnBodyRenderFunc | React.ReactNode; className?: string; needSort?: boolean; rowSpan?: number; colSpan?: number; fixed?: GridFixedType; onCellClick?: ( data: Data, event: React.MouseEvent ) => any; textAlign?: GridTextAlign; /** * @deprecated * use `noWrap` */ nowrap?: boolean; noWrap?: boolean; defaultText?: React.ReactNode; isValueEmpty?: (value: any) => boolean; children?: Array>; } export type GridColumnContextType = Partial; export interface IGridOnChangeConfig { current?: number; pageSize?: number; sortBy?: string; sortType?: GridSortType; } export interface IGridSelectionProps { indeterminate?: boolean; disabled: boolean; reason: React.ReactNode; } export interface IGridSelection { isSingleSelection?: boolean; selectedRowKeys?: Key[]; onSelect?: ( selectedkeys: Key[], selectedRows: Data[], changeRow: Data | Data[] ) => any; getSelectionProps?: (data: Data) => Partial; // @deprecated use getSelectionProps getCheckboxProps?: (data: Data) => Partial; } export interface IGridExpandation { isExpanded?: (data: Data, index: number) => boolean; isExpandable?: (data: Data, index: number) => boolean; expandRender?: (data: Data) => React.ReactNode; } export type IGridRowClickHandler = ( data: Data, index: number, event: React.MouseEvent ) => any; export type IGridOnExpandHandler = (data: { expanded: boolean; data: Data; event: React.MouseEvent; index: number; }) => any; export interface IGridCellPos { row: number; column: number; fixed?: IGridInnerFixedType; } export type IGridBatchRender = ( data: any, position?: 'header' | 'foot' ) => React.ReactNode;