import { type TableProps as RawTableProps, type Css } from '@pitrix/portal-ui'; import type { ReactElement, ReactNode, CSSProperties } from 'react'; import type { SearchProps } from './search'; import type { MenuItem } from './menu'; import type { DefaultRecordType } from './types'; export type ViewType = 'list' | 'card' | 'category' | 'monitor'; interface ContextProps extends Record { key: keyof T; record: T; index: number; } export interface TableProps extends Omit, 'dataSource' | 'contextMenu' | 'size'> { className?: string; size?: 'default' | 'small' | 'medium'; rowKey: keyof T; /** * 视图类型 */ view?: ViewType; views?: ViewType[]; /** * 切换按钮回调 * @param type */ onSwitchView?: (type: ViewType) => void; /** * 左侧功能按钮 */ actions?: ReactNode[]; /** * 搜索相关功能 */ search: SearchProps; /** * 额外的搜索功能面板 */ searchAddon?: ReactNode; /** * 上下文菜单 */ contextMenu?: { menus: MenuItem[]; /** * additional props passed to context menu */ props?: ContextProps; onContextMenu: (id: string, key?: keyof T, record?: T, index?: number) => void; }; contentRender?: () => ReactNode; showColumnFilter?: boolean; style?: CSSProperties; css?: Css; } declare const Table: (props: TableProps) => ReactElement>; export default Table;