/// import { TableProps as RcTableProps } from 'rc-table/lib/Table'; import { ColumnType as RcColumnType, GetRowKey } from 'rc-table/lib/interface'; import { SorterResult, SortOrder, ControlledSorter } from './hooks/useSorter'; import { CheckboxProps } from '../Checkbox/interfaces'; import { PaginationParam } from './hooks/usePagination'; import { PaginationProps } from '../Pagination/interfaces'; import { SpinProps } from '../Spin/interfaces'; import { DragEndEvent } from '@dnd-kit/core'; import type { TooltipProps } from '../Tooltip/interfaces'; export type { GetRowKey }; export type { SortOrder, SorterResult, ControlledSorter }; export declare type Key = React.Key; export declare type CompareFn = (a: T, b: T, sortOrder?: SortOrder) => number; export interface ColumnType extends RcColumnType { sorter?: boolean | CompareFn; defaultSortOrder?: SortOrder; sortDirections?: SortOrder[]; showSorterTooltip?: boolean | TooltipProps; } export declare type ColumnsType = ColumnType[]; export declare type SizeType = 'small' | 'middle' | 'large'; export interface ChangeEventInfo { sorter: SorterResult; pagination: { current?: number; pageSize?: number; total?: number; }; resetPagination: Function; } declare const TableActions: ["paginate", "sort", "filter"]; export declare type TableAction = typeof TableActions[number]; export interface TableExtra { action: TableAction; } export declare type SelectionSelectFn = (record: T, selected: boolean, selectedRows: T[], nativeEvent: Event) => void; export interface TableRowSelection { /** Keep the selection keys in list even the key not exist in `dataSource` anymore */ preserveSelectedRowKeys?: boolean; selectedRowKeys?: Key[]; defaultSelectedRowKeys?: Key[]; onChange?: (selectedRowKeys: Key[], selectedRows: T[]) => void; getCheckboxProps?: (record: T) => Partial>; getTitleCheckboxProps?: () => Partial>; onSelect?: SelectionSelectFn; onSelectMultiple?: (selected: boolean, selectedRows: T[], changeRows: T[]) => void; onSelectNone?: () => void; hideSelectAll?: boolean; fixed?: boolean; columnWidth?: string | number; columnTitle?: string | React.ReactNode; checkStrictly?: boolean; } export declare type TransformColumns = (columns: ColumnsType) => ColumnsType; export interface TableLocale { filterTitle?: string; filterConfirm?: React.ReactNode; filterReset?: React.ReactNode; filterEmptyText?: React.ReactNode; filterCheckall?: React.ReactNode; filterSearchPlaceholder?: string; emptyText?: React.ReactNode | (() => React.ReactNode); selectAll?: React.ReactNode; selectNone?: React.ReactNode; selectInvert?: React.ReactNode; selectionAll?: React.ReactNode; sortTitle?: string; expand?: string; collapse?: string; triggerDesc?: string; triggerAsc?: string; cancelSort?: string; autoRefreshButton?: string; } export interface TableProps extends Omit, 'transformColumns' | 'internalHooks' | 'internalRefs' | 'data' | 'columns' | 'emptyText' | 'components'> { dataSource?: RcTableProps['data']; columns?: ColumnsType; pagination?: false | TablePaginationConfig; loading?: boolean | SpinProps; size?: SizeType; bordered?: boolean; onChange?: (pagination: Partial, sorter: SorterResult, extra: TableExtra) => void; rowSelection?: TableRowSelection; sortDirections?: SortOrder[]; sorter?: ControlledSorter | null; dndRows?: boolean; onDragEnd?: (event: DragEndEvent) => void; locale?: TableLocale; showSorterTooltip?: boolean | TooltipProps; } export declare type TablePaginationPosition = 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight'; export interface TablePaginationConfig extends PaginationProps { position?: TablePaginationPosition[]; }