UNPKG

zent

Version:

一套前端设计语言和基于React的实现

76 lines (75 loc) 2.99 kB
/// <reference types="react" /> import { PaginationPageSizeOption } from '../pagination/components/PageSizeChanger'; export declare type GridPaginationType = 'default' | 'lite' | 'mini'; export declare type GridScrollPosition = 'both' | 'left' | 'right' | 'middle'; export declare type GridTextAlign = 'left' | 'right' | 'center'; export declare type GridSortType = 'desc' | 'asc' | ''; export declare type GridFixedType = 'left' | 'right' | true; export declare type IGridInnerFixedType = Exclude<GridFixedType, true>; export declare type GridRowClassNameType<Data = any> = 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 declare type IGridColumnBodyRenderFunc<Data> = (data: Data, pos: IGridCellPos, name?: string) => React.ReactNode; export interface IGridColumn<Data = any> { title: React.ReactNode; name?: string; width?: React.CSSProperties['width']; bodyRender?: IGridColumnBodyRenderFunc<Data> | React.ReactNode; className?: string; needSort?: boolean; rowSpan?: number; colSpan?: number; fixed?: GridFixedType; onCellClick?: (data: Data, event: React.MouseEvent<HTMLTableDataCellElement>) => any; textAlign?: GridTextAlign; nowrap?: boolean; noWrap?: boolean; defaultText?: React.ReactNode; isValueEmpty?: (value: any) => boolean; children?: Array<IGridColumn<Data>>; } export declare type GridColumnContextType = Partial<IGridColumn>; export interface IGridOnChangeConfig { current?: number; pageSize?: number; sortBy?: string; sortType?: GridSortType; } export interface IGridSelectionProps { indeterminate?: boolean; disabled: boolean; reason: React.ReactNode; } export interface IGridSelection<Data = any, Key = string> { isSingleSelection?: boolean; selectedRowKeys?: Key[]; onSelect?: (selectedkeys: Key[], selectedRows: Data[], changeRow: Data | Data[]) => any; getSelectionProps?: (data: Data) => Partial<IGridSelectionProps>; getCheckboxProps?: (data: Data) => Partial<IGridSelectionProps>; } export interface IGridExpandation<Data = any> { isExpanded?: (data: Data, index: number) => boolean; isExpandable?: (data: Data, index: number) => boolean; expandRender?: (data: Data) => React.ReactNode; } export declare type IGridRowClickHandler<Data = any> = (data: Data, index: number, event: React.MouseEvent<HTMLTableRowElement>) => any; export declare type IGridOnExpandHandler<Data = any> = (data: { expanded: boolean; data: Data; event: React.MouseEvent<HTMLSpanElement>; index: number; }) => any; export interface IGridCellPos { row: number; column: number; fixed?: IGridInnerFixedType; } export declare type IGridBatchRender = (data: any, position?: 'header' | 'foot') => React.ReactNode;