1 | import React, { Component } from 'react';
|
2 | import PropTypes from 'prop-types';
|
3 | import { SpinProps } from '../spin';
|
4 | import { Store } from './createStore';
|
5 | import Column from './Column';
|
6 | import ColumnGroup from './ColumnGroup';
|
7 | import { ColumnProps, SelectionItemSelectFn, TableComponents, TableLocale, TablePaginationConfig, TableProps, TableState, TableStateFilters } from './interface';
|
8 | import { RadioChangeEvent } from '../radio';
|
9 | import { CheckboxChangeEvent } from '../checkbox';
|
10 | import { Size } from '../_util/enum';
|
11 | export default class Table<T> extends Component<TableProps<T>, TableState<T>> {
|
12 | static displayName: string;
|
13 | static Column: typeof Column;
|
14 | static ColumnGroup: typeof ColumnGroup;
|
15 | static propTypes: {
|
16 | dataSource: PropTypes.Requireable<any[]>;
|
17 | empty: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
|
18 | onColumnFilterChange: PropTypes.Requireable<(...args: any[]) => any>;
|
19 | columns: PropTypes.Requireable<any[]>;
|
20 | prefixCls: PropTypes.Requireable<string>;
|
21 | useFixedHeader: PropTypes.Requireable<boolean>;
|
22 | rowSelection: PropTypes.Requireable<object>;
|
23 | className: PropTypes.Requireable<string>;
|
24 | size: PropTypes.Requireable<Size>;
|
25 | loading: PropTypes.Requireable<boolean | object>;
|
26 | bordered: PropTypes.Requireable<boolean>;
|
27 | onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
28 | locale: PropTypes.Requireable<object>;
|
29 | dropdownPrefixCls: PropTypes.Requireable<string>;
|
30 | filterBar: PropTypes.Requireable<boolean>;
|
31 | filters: PropTypes.Requireable<any[]>;
|
32 | filterBarPlaceholder: PropTypes.Requireable<string>;
|
33 | onFilterSelectChange: PropTypes.Requireable<(...args: any[]) => any>;
|
34 | noFilter: PropTypes.Requireable<boolean>;
|
35 | autoScroll: PropTypes.Requireable<boolean>;
|
36 | indentSize: PropTypes.Requireable<number>;
|
37 | rowKey: PropTypes.Requireable<string | ((...args: any[]) => any)>;
|
38 | showHeader: PropTypes.Requireable<boolean>;
|
39 | };
|
40 | static defaultProps: {
|
41 | dataSource: never[];
|
42 | empty: null;
|
43 | useFixedHeader: boolean;
|
44 | rowSelection: null;
|
45 | className: string;
|
46 | size: Size;
|
47 | loading: boolean;
|
48 | bordered: boolean;
|
49 | indentSize: number;
|
50 | locale: {};
|
51 | rowKey: string;
|
52 | showHeader: boolean;
|
53 | filterBar: boolean;
|
54 | noFilter: boolean;
|
55 | autoScroll: boolean;
|
56 | };
|
57 | CheckboxPropsCache: {
|
58 | [key: string]: any;
|
59 | };
|
60 | store: Store;
|
61 | columns: ColumnProps<T>[];
|
62 | components: TableComponents;
|
63 | private refTable;
|
64 | constructor(props: TableProps<T>);
|
65 | saveRef: (ref: any) => void;
|
66 | getCheckboxPropsByItem: (item: T, index: number) => any;
|
67 | getPrefixCls(): string;
|
68 | getDefaultSelection(): any[];
|
69 | getDefaultPagination(props: TableProps<T>): {};
|
70 | componentWillReceiveProps(nextProps: TableProps<T>): void;
|
71 | onRow: (record: T, index: number) => any;
|
72 | setSelectedRowKeys(selectedRowKeys: string[], { selectWay, record, checked, changeRowKeys, nativeEvent }: any): void;
|
73 | hasPagination(props?: any): boolean;
|
74 | isFiltersChanged(filters: TableStateFilters): boolean;
|
75 | getSortOrderColumns(columns?: ColumnProps<T>[]): ColumnProps<T>[];
|
76 | getFilteredValueColumns(columns?: ColumnProps<T>[]): ColumnProps<T>[];
|
77 | getFiltersFromColumns(columns?: ColumnProps<T>[]): any;
|
78 | getDefaultSortOrder(columns?: ColumnProps<T>[]): {
|
79 | sortColumn: ColumnProps<T>;
|
80 | sortOrder: boolean | "ascend" | "descend" | undefined;
|
81 | } | {
|
82 | sortColumn: null;
|
83 | sortOrder: null;
|
84 | };
|
85 | getSortStateFromColumns(columns?: ColumnProps<T>[]): {
|
86 | sortColumn: ColumnProps<T>;
|
87 | sortOrder: boolean | "ascend" | "descend" | undefined;
|
88 | } | {
|
89 | sortColumn: null;
|
90 | sortOrder: null;
|
91 | };
|
92 | getSorterFn(): ((a: T, b: T) => number) | undefined;
|
93 | setSortOrder(order: string, column: ColumnProps<T>): void;
|
94 | toggleSortOrder(order: string, column: ColumnProps<T>): void;
|
95 | setNewFilterState(newState: any): void;
|
96 | handleFilterSelectClear: () => void;
|
97 | handleFilterSelectChange: (barFilters: any[]) => void;
|
98 | handleColumnFilterChange: (e?: any) => void;
|
99 | handleFilter: (column: ColumnProps<T>, nextFilters: string[]) => void;
|
100 | handleSelect: (record: T, rowIndex: number, e: CheckboxChangeEvent) => void;
|
101 | handleRadioSelect: (record: T, rowIndex: number, e: RadioChangeEvent) => void;
|
102 | handleSelectRow: (selectionKey: string, index: number, onSelectFunc: SelectionItemSelectFn) => any;
|
103 | handlePageChange: (current: number, ...otherArguments: any[]) => void;
|
104 | renderSelectionBox: (type: "checkbox" | "radio" | undefined) => (_: any, record: T, index: number) => JSX.Element;
|
105 | getRecordKey: (record: T, index: number) => any;
|
106 | getPopupContainer: () => HTMLElement;
|
107 | renderRowSelection(locale: TableLocale): ColumnProps<T>[];
|
108 | getColumnKey(column: ColumnProps<T>, index?: number): string | number | undefined;
|
109 | getMaxCurrent(total: number): number | undefined;
|
110 | isSortColumn(column: ColumnProps<T>): boolean;
|
111 | renderColumnsDropdown(columns: ColumnProps<T>[], locale: TableLocale): any[];
|
112 | handleShowSizeChange: (current: number, pageSize: number) => void;
|
113 | renderPagination(paginationPosition: string): JSX.Element | null;
|
114 | prepareParamsArguments(state: any): [TablePaginationConfig | boolean, string[], Object, any[]];
|
115 | findColumn(myKey: string | number): ColumnProps<T> | undefined;
|
116 | getCurrentPageData(): T[];
|
117 | getFlatData(): any[];
|
118 | getFlatCurrentPageData(): any[];
|
119 | recursiveSort(data: T[], sorterFn: (a: any, b: any) => number): T[];
|
120 | getLocalData(): T[];
|
121 | doBarFilter(filter: any, record: T): boolean;
|
122 | createComponents(components?: TableComponents, prevComponents?: TableComponents): void;
|
123 | renderTable: (contextLocale: TableLocale, loading: SpinProps) => React.ReactNode;
|
124 | render(): JSX.Element;
|
125 | }
|