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 extends React.Component, TableState> { static Column: typeof Column; static ColumnGroup: typeof ColumnGroup; static propTypes: { dataSource: PropTypes.Requireable; columns: PropTypes.Requireable; prefixCls: PropTypes.Requireable; useFixedHeader: PropTypes.Requireable; rowSelection: PropTypes.Requireable; className: PropTypes.Requireable; size: PropTypes.Requireable<"small" | "default" | "middle">; loading: PropTypes.Requireable; bordered: PropTypes.Requireable; onChange: PropTypes.Requireable<(...args: any[]) => any>; locale: PropTypes.Requireable; dropdownPrefixCls: PropTypes.Requireable; sortDirections: PropTypes.Requireable; 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[]; components: TableComponents; row: React.ComponentType; constructor(props: TableProps); componentWillReceiveProps(nextProps: TableProps): void; getCheckboxPropsByItem: (item: T, index: number) => any; getDefaultSelection(): any[]; getDefaultPagination(props: TableProps): {}; getSortOrderColumns(columns?: ColumnProps[]): any; getFilteredValueColumns(columns?: ColumnProps[]): any; getFiltersFromColumns(columns?: ColumnProps[]): any; getDefaultSortOrder(columns?: ColumnProps[]): { sortColumn: any; sortOrder: any; }; getSortStateFromColumns(columns?: ColumnProps[]): { sortColumn: any; sortOrder: any; }; getMaxCurrent(total: number): number | undefined; getRecordKey: (record: T, index: number) => any; getSorterFn(state: TableState): ((a: T, b: T) => number) | undefined; getCurrentPageData(): T[]; getFlatData(): any[]; getFlatCurrentPageData(): any[]; getLocalData(state?: TableState | null, filter?: boolean): Array; onRow: (prefixCls: string, record: T, index: number) => { prefixCls: string; store: Store; rowKey: any; onClick?: ((arg: React.SyntheticEvent) => void) | undefined; onDoubleClick?: ((arg: React.SyntheticEvent) => void) | undefined; onContextMenu?: ((arg: React.SyntheticEvent) => void) | undefined; onMouseEnter?: ((arg: React.SyntheticEvent) => void) | undefined; onMouseLeave?: ((arg: React.SyntheticEvent) => void) | undefined; }; setSelectedRowKeys(selectedRowKeys: string[], selectionInfo: SelectionInfo): void; generatePopupContainerFunc: (getPopupContainer: ((triggerNode: HTMLElement) => HTMLElement) | undefined) => ((triggerNode: HTMLElement) => HTMLElement) | undefined; handleFilter: (column: ColumnProps, 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): void; hasPagination(props?: any): boolean; isFiltersChanged(filters: TableStateFilters): boolean; isSortColumn(column: ColumnProps): boolean; prepareParamsArguments(state: any): PrepareParamsArgumentsReturn; 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) => 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['getPopupContainer']; }): ColumnProps[]; renderColumnsDropdown({ prefixCls, dropdownPrefixCls, columns, locale, getPopupContainer, }: { prefixCls: string; dropdownPrefixCls: string; columns: ColumnProps[]; locale: TableLocale; getPopupContainer: TableProps['getPopupContainer']; }): any[]; renderColumnTitle(title: ColumnProps['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; }