UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

68 lines • 2.41 kB
import { CSSProperties, HTMLAttributes, Key, ReactNode, Ref, TdHTMLAttributes } from "react"; //#region src/base-ui/Table/type.d.ts type SortOrder = 'ascend' | 'descend'; type FilterValue = string | number | boolean; interface TableColumn<T> { align?: 'left' | 'center' | 'right'; className?: string; dataIndex?: Extract<keyof T, string>; defaultSortOrder?: SortOrder; ellipsis?: boolean; filters?: { text: ReactNode; value: FilterValue; }[]; fixed?: 'left' | 'right'; key?: Key; onCell?: (record: T, index: number) => TdHTMLAttributes<HTMLTableCellElement>; onFilter?: (value: FilterValue, record: T) => boolean; render?: (value: any, record: T, index: number) => ReactNode; sortDirections?: SortOrder[]; sorter?: boolean | ((a: T, b: T) => number); title?: ReactNode; width?: number | string; } interface TablePaginationConfig { current?: number; defaultCurrent?: number; defaultPageSize?: number; onChange?: (page: number, pageSize: number) => void; onShowSizeChange?: (current: number, size: number) => void; pageSize?: number; pageSizeOptions?: number[]; showSizeChanger?: boolean; total?: number; } interface TableSorterResult<T> { column?: TableColumn<T>; columnKey?: Key; order?: SortOrder; } type TableFilters = Record<string, FilterValue[] | null>; type TableSemanticName = 'body' | 'cell' | 'header' | 'row' | 'wrapper'; interface TableProps<T> { bordered?: boolean; className?: string; classNames?: Partial<Record<TableSemanticName, string>>; columns: TableColumn<T>[]; dataSource?: T[]; emptyText?: ReactNode; loading?: boolean; onChange?: (pagination: TablePaginationConfig, filters: TableFilters, sorter: TableSorterResult<T>) => void; onRow?: (record: T, index: number) => HTMLAttributes<HTMLTableRowElement>; pagination?: false | TablePaginationConfig; ref?: Ref<HTMLDivElement>; rowClassName?: string | ((record: T, index: number) => string); rowKey: Extract<keyof T, string> | ((record: T) => Key); scroll?: { x?: number | string; y?: number | string; }; size?: 'small' | 'middle'; style?: CSSProperties; styles?: Partial<Record<TableSemanticName, CSSProperties>>; tableLayout?: 'auto' | 'fixed'; } //#endregion export { FilterValue, SortOrder, TableColumn, TableFilters, TablePaginationConfig, TableProps, TableSemanticName, TableSorterResult }; //# sourceMappingURL=type.d.mts.map