antd
Version:
An enterprise-class UI design language and React components implementation
125 lines (124 loc) • 6.42 kB
TypeScript
import * as React from 'react';
import * as PropTypes from 'prop-types';
import { Store } from './createStore';
import Column from './Column';
import ColumnGroup from './ColumnGroup';
import { TableProps, TableState, TableComponents, TableLocale, ColumnProps, TableStateFilters, SelectionItemSelectFn, SelectionInfo, PrepareParamsArgumentsReturn, ExpandIconProps } from './interface';
import { RadioChangeEvent } from '../radio';
import { CheckboxChangeEvent } from '../checkbox';
import { ConfigConsumerProps } from '../config-provider';
export default class Table<T> extends React.Component<TableProps<T>, TableState<T>> {
static Column: typeof Column;
static ColumnGroup: typeof ColumnGroup;
static propTypes: {
dataSource: PropTypes.Requireable<any[]>;
columns: PropTypes.Requireable<any[]>;
prefixCls: PropTypes.Requireable<string>;
useFixedHeader: PropTypes.Requireable<boolean>;
rowSelection: PropTypes.Requireable<object>;
className: PropTypes.Requireable<string>;
size: PropTypes.Requireable<"small" | "default" | "middle">;
loading: PropTypes.Requireable<boolean | object>;
bordered: PropTypes.Requireable<boolean>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
locale: PropTypes.Requireable<object>;
dropdownPrefixCls: PropTypes.Requireable<string>;
sortDirections: PropTypes.Requireable<any[]>;
getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
};
static defaultProps: {
dataSource: never[];
useFixedHeader: boolean;
className: string;
size: "small" | "default" | "middle";
loading: boolean;
bordered: boolean;
indentSize: number;
locale: {};
rowKey: string;
showHeader: boolean;
sortDirections: string[];
childrenColumnName: string;
};
CheckboxPropsCache: {
[key: string]: any;
};
store: Store;
columns: ColumnProps<T>[];
components: TableComponents;
row: React.ComponentType<any>;
constructor(props: TableProps<T>);
componentWillReceiveProps(nextProps: TableProps<T>): void;
getCheckboxPropsByItem: (item: T, index: number) => any;
getDefaultSelection(): any[];
getDefaultPagination(props: TableProps<T>): {};
getSortOrderColumns(columns?: ColumnProps<T>[]): any;
getFilteredValueColumns(columns?: ColumnProps<T>[]): any;
getFiltersFromColumns(columns?: ColumnProps<T>[]): any;
getDefaultSortOrder(columns?: ColumnProps<T>[]): {
sortColumn: any;
sortOrder: any;
};
getSortStateFromColumns(columns?: ColumnProps<T>[]): {
sortColumn: any;
sortOrder: any;
};
getMaxCurrent(total: number): number | undefined;
getRecordKey: (record: T, index: number) => any;
getSorterFn(state: TableState<T>): ((a: T, b: T) => number) | undefined;
getCurrentPageData(): T[];
getFlatData(): any[];
getFlatCurrentPageData(): any[];
getLocalData(state?: TableState<T> | null, filter?: boolean): Array<T>;
onRow: (prefixCls: string, record: T, index: number) => {
prefixCls: string;
store: Store;
rowKey: any;
onClick?: ((arg: React.SyntheticEvent<Element, Event>) => void) | undefined;
onDoubleClick?: ((arg: React.SyntheticEvent<Element, Event>) => void) | undefined;
onContextMenu?: ((arg: React.SyntheticEvent<Element, Event>) => void) | undefined;
onMouseEnter?: ((arg: React.SyntheticEvent<Element, Event>) => void) | undefined;
onMouseLeave?: ((arg: React.SyntheticEvent<Element, Event>) => void) | undefined;
};
setSelectedRowKeys(selectedRowKeys: string[], selectionInfo: SelectionInfo<T>): void;
generatePopupContainerFunc: (getPopupContainer: ((triggerNode: HTMLElement) => HTMLElement) | undefined) => ((triggerNode: HTMLElement) => HTMLElement) | undefined;
handleFilter: (column: ColumnProps<T>, nextFilters: string[]) => void;
handleSelect: (record: T, rowIndex: number, e: CheckboxChangeEvent) => void;
handleRadioSelect: (record: T, rowIndex: number, e: RadioChangeEvent) => void;
handleSelectRow: (selectionKey: string, index: number, onSelectFunc: SelectionItemSelectFn) => void;
handlePageChange: (current: number, ...otherArguments: any[]) => void;
handleShowSizeChange: (current: number, pageSize: number) => void;
toggleSortOrder(column: ColumnProps<T>): void;
hasPagination(props?: any): boolean;
isFiltersChanged(filters: TableStateFilters): boolean;
isSortColumn(column: ColumnProps<T>): boolean;
prepareParamsArguments(state: any): PrepareParamsArgumentsReturn<T>;
findColumn(myKey: string | number): undefined;
createComponents(components?: TableComponents, prevComponents?: TableComponents): void;
recursiveSort(data: T[], sorterFn: (a: any, b: any) => number): T[];
renderExpandIcon: (prefixCls: string) => ({ expandable, expanded, needIndentSpaced, record, onExpand, }: ExpandIconProps<T>) => JSX.Element | null;
renderPagination(prefixCls: string, paginationPosition: string): JSX.Element | null;
renderSelectionBox: (type: "checkbox" | "radio" | undefined) => (_: any, record: T, index: number) => JSX.Element;
renderRowSelection({ prefixCls, locale, getPopupContainer, }: {
prefixCls: string;
locale: TableLocale;
getPopupContainer: TableProps<T>['getPopupContainer'];
}): ColumnProps<T>[];
renderColumnsDropdown({ prefixCls, dropdownPrefixCls, columns, locale, getPopupContainer, }: {
prefixCls: string;
dropdownPrefixCls: string;
columns: ColumnProps<T>[];
locale: TableLocale;
getPopupContainer: TableProps<T>['getPopupContainer'];
}): any[];
renderColumnTitle(title: ColumnProps<T>['title']): React.ReactNode;
renderTable: ({ prefixCls, renderEmpty, dropdownPrefixCls, contextLocale, getPopupContainer: contextGetPopupContainer, }: {
prefixCls: string;
renderEmpty: (componentName?: string | undefined) => React.ReactNode;
dropdownPrefixCls: string;
contextLocale: TableLocale;
getPopupContainer: ((triggerNode: HTMLElement) => HTMLElement) | undefined;
}) => JSX.Element;
renderComponent: ({ getPrefixCls, renderEmpty, getPopupContainer }: ConfigConsumerProps) => JSX.Element;
render(): JSX.Element;
}