UNPKG

5.99 kBTypeScriptView Raw
1import * as React from 'react';
2import { GetRowKey, ColumnType as RcColumnType, RenderedCell as RcRenderedCell, ExpandableConfig } from 'rc-table/lib/interface';
3import { TooltipProps } from '../tooltip';
4import { CheckboxProps } from '../checkbox';
5import { PaginationProps } from '../pagination';
6import { Breakpoint } from '../_util/responsiveObserve';
7import { INTERNAL_SELECTION_ITEM } from './hooks/useSelection';
8export { GetRowKey, ExpandableConfig };
9export declare type Key = React.Key;
10export declare type RowSelectionType = 'checkbox' | 'radio';
11export declare type SelectionItemSelectFn = (currentRowKeys: Key[]) => void;
12export declare type ExpandType = null | 'row' | 'nest';
13export interface TableLocale {
14 filterTitle?: string;
15 filterConfirm?: React.ReactNode;
16 filterReset?: React.ReactNode;
17 filterEmptyText?: React.ReactNode;
18 emptyText?: React.ReactNode | (() => React.ReactNode);
19 selectAll?: React.ReactNode;
20 selectNone?: React.ReactNode;
21 selectInvert?: React.ReactNode;
22 selectionAll?: React.ReactNode;
23 sortTitle?: string;
24 expand?: string;
25 collapse?: string;
26 triggerDesc?: string;
27 triggerAsc?: string;
28 cancelSort?: string;
29}
30export declare type SortOrder = 'descend' | 'ascend' | null;
31declare const TableActions: ["paginate", "sort", "filter"];
32export declare type TableAction = typeof TableActions[number];
33export declare type CompareFn<T> = (a: T, b: T, sortOrder?: SortOrder) => number;
34export interface ColumnFilterItem {
35 text: React.ReactNode;
36 value: string | number | boolean;
37 children?: ColumnFilterItem[];
38}
39export interface ColumnTitleProps<RecordType> {
40 /** @deprecated Please use `sorterColumns` instead. */
41 sortOrder?: SortOrder;
42 /** @deprecated Please use `sorterColumns` instead. */
43 sortColumn?: ColumnType<RecordType>;
44 sortColumns?: {
45 column: ColumnType<RecordType>;
46 order: SortOrder;
47 }[];
48 filters?: Record<string, string[]>;
49}
50export declare type ColumnTitle<RecordType> = React.ReactNode | ((props: ColumnTitleProps<RecordType>) => React.ReactNode);
51export declare type FilterValue = (Key | boolean)[];
52export declare type FilterKey = Key[] | null;
53export interface FilterConfirmProps {
54 closeDropdown: boolean;
55}
56export interface FilterDropdownProps {
57 prefixCls: string;
58 setSelectedKeys: (selectedKeys: React.Key[]) => void;
59 selectedKeys: React.Key[];
60 confirm: (param?: FilterConfirmProps) => void;
61 clearFilters?: () => void;
62 filters?: ColumnFilterItem[];
63 visible: boolean;
64}
65export interface ColumnType<RecordType> extends RcColumnType<RecordType> {
66 title?: ColumnTitle<RecordType>;
67 sorter?: boolean | CompareFn<RecordType> | {
68 compare?: CompareFn<RecordType>;
69 /** Config multiple sorter order priority */
70 multiple?: number;
71 };
72 sortOrder?: SortOrder;
73 defaultSortOrder?: SortOrder;
74 sortDirections?: SortOrder[];
75 showSorterTooltip?: boolean | TooltipProps;
76 filtered?: boolean;
77 filters?: ColumnFilterItem[];
78 filterDropdown?: React.ReactNode | ((props: FilterDropdownProps) => React.ReactNode);
79 filterMultiple?: boolean;
80 filteredValue?: FilterValue | null;
81 defaultFilteredValue?: FilterValue | null;
82 filterIcon?: React.ReactNode | ((filtered: boolean) => React.ReactNode);
83 onFilter?: (value: string | number | boolean, record: RecordType) => boolean;
84 filterDropdownVisible?: boolean;
85 onFilterDropdownVisibleChange?: (visible: boolean) => void;
86 responsive?: Breakpoint[];
87}
88export interface ColumnGroupType<RecordType> extends Omit<ColumnType<RecordType>, 'dataIndex'> {
89 children: ColumnsType<RecordType>;
90}
91export declare type ColumnsType<RecordType = unknown> = (ColumnGroupType<RecordType> | ColumnType<RecordType>)[];
92export interface SelectionItem {
93 key: string;
94 text: React.ReactNode;
95 onSelect?: SelectionItemSelectFn;
96}
97export declare type SelectionSelectFn<T> = (record: T, selected: boolean, selectedRows: T[], nativeEvent: Event) => void;
98export interface TableRowSelection<T> {
99 /** Keep the selection keys in list even the key not exist in `dataSource` anymore */
100 preserveSelectedRowKeys?: boolean;
101 type?: RowSelectionType;
102 selectedRowKeys?: Key[];
103 defaultSelectedRowKeys?: Key[];
104 onChange?: (selectedRowKeys: Key[], selectedRows: T[]) => void;
105 getCheckboxProps?: (record: T) => Partial<Omit<CheckboxProps, 'checked' | 'defaultChecked'>>;
106 onSelect?: SelectionSelectFn<T>;
107 onSelectMultiple?: (selected: boolean, selectedRows: T[], changeRows: T[]) => void;
108 /** @deprecated This function is meaningless and should use `onChange` instead */
109 onSelectAll?: (selected: boolean, selectedRows: T[], changeRows: T[]) => void;
110 /** @deprecated This function is meaningless and should use `onChange` instead */
111 onSelectInvert?: (selectedRowKeys: Key[]) => void;
112 onSelectNone?: () => void;
113 selections?: INTERNAL_SELECTION_ITEM[] | boolean;
114 hideSelectAll?: boolean;
115 fixed?: boolean;
116 columnWidth?: string | number;
117 columnTitle?: string | React.ReactNode;
118 checkStrictly?: boolean;
119 renderCell?: (value: boolean, record: T, index: number, originNode: React.ReactNode) => React.ReactNode | RcRenderedCell<T>;
120}
121export declare type TransformColumns<RecordType> = (columns: ColumnsType<RecordType>) => ColumnsType<RecordType>;
122export interface TableCurrentDataSource<RecordType> {
123 currentDataSource: RecordType[];
124 action: TableAction;
125}
126export interface SorterResult<RecordType> {
127 column?: ColumnType<RecordType>;
128 order?: SortOrder;
129 field?: Key | readonly Key[];
130 columnKey?: Key;
131}
132export declare type GetPopupContainer = (triggerNode: HTMLElement) => HTMLElement;
133declare type TablePaginationPosition = 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight';
134export interface TablePaginationConfig extends PaginationProps {
135 position?: TablePaginationPosition[];
136}