1 | import * as React from 'react';
|
2 | import type { KeyWiseTransferItem, RenderResult, SelectAllLabel, TransferDirection, TransferLocale } from './index';
|
3 | import type { PaginationType } from './interface';
|
4 | import type { TransferListBodyProps } from './ListBody';
|
5 | import DefaultListBody from './ListBody';
|
6 | export interface RenderedItem<RecordType> {
|
7 | renderedText: string;
|
8 | renderedEl: React.ReactNode;
|
9 | item: RecordType;
|
10 | }
|
11 | type RenderListFunction<T> = (props: TransferListBodyProps<T>) => React.ReactNode;
|
12 | export interface TransferListProps<RecordType> extends TransferLocale {
|
13 | prefixCls: string;
|
14 | titleText: React.ReactNode;
|
15 | dataSource: RecordType[];
|
16 | filterOption?: (filterText: string, item: RecordType) => boolean;
|
17 | style?: React.CSSProperties;
|
18 | checkedKeys: string[];
|
19 | handleFilter: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
20 | onItemSelect: (key: string, check: boolean) => void;
|
21 | onItemSelectAll: (dataSource: string[], checkAll: boolean) => void;
|
22 | onItemRemove?: (keys: string[]) => void;
|
23 | handleClear: () => void;
|
24 |
|
25 | render?: (item: RecordType) => RenderResult;
|
26 | showSearch?: boolean;
|
27 | searchPlaceholder: string;
|
28 | itemUnit: string;
|
29 | itemsUnit: string;
|
30 | renderList?: RenderListFunction<RecordType>;
|
31 | footer?: (props: TransferListProps<RecordType>, info?: {
|
32 | direction: TransferDirection;
|
33 | }) => React.ReactNode;
|
34 | onScroll: (e: React.UIEvent<HTMLUListElement>) => void;
|
35 | disabled?: boolean;
|
36 | direction: TransferDirection;
|
37 | showSelectAll?: boolean;
|
38 | selectAllLabel?: SelectAllLabel;
|
39 | showRemove?: boolean;
|
40 | pagination?: PaginationType;
|
41 | }
|
42 | interface TransferListState {
|
43 |
|
44 | filterValue: string;
|
45 | }
|
46 | export default class TransferList<RecordType extends KeyWiseTransferItem> extends React.PureComponent<TransferListProps<RecordType>, TransferListState> {
|
47 | timer: number;
|
48 | triggerScrollTimer: number;
|
49 | defaultListBodyRef: React.RefObject<DefaultListBody<RecordType>>;
|
50 | constructor(props: TransferListProps<RecordType>);
|
51 | componentWillUnmount(): void;
|
52 | getCheckStatus(filteredItems: RecordType[]): "none" | "all" | "part";
|
53 | getFilteredItems(dataSource: RecordType[], filterValue: string): {
|
54 | filteredItems: RecordType[];
|
55 | filteredRenderItems: RenderedItem<RecordType>[];
|
56 | };
|
57 | handleFilter: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
58 | handleClear: () => void;
|
59 | matchFilter: (text: string, item: RecordType) => boolean;
|
60 | renderListBody: (renderList: RenderListFunction<RecordType> | undefined, props: TransferListBodyProps<RecordType>) => {
|
61 | customize: boolean;
|
62 | bodyContent: React.ReactNode;
|
63 | };
|
64 | getListBody(prefixCls: string, searchPlaceholder: string, filterValue: string, filteredItems: RecordType[], notFoundContent: React.ReactNode | React.ReactNode, filteredRenderItems: RenderedItem<RecordType>[], checkedKeys: string[], renderList?: RenderListFunction<RecordType>, showSearch?: boolean, disabled?: boolean): React.ReactNode;
|
65 | getCheckBox({ filteredItems, onItemSelectAll, disabled, prefixCls, }: {
|
66 | filteredItems: RecordType[];
|
67 | onItemSelectAll: (dataSource: string[], checkAll: boolean) => void;
|
68 | disabled?: boolean;
|
69 | prefixCls?: string;
|
70 | }): false | JSX.Element;
|
71 | renderItem: (item: RecordType) => RenderedItem<RecordType>;
|
72 | getSelectAllLabel: (selectedCount: number, totalCount: number) => React.ReactNode;
|
73 | render(): JSX.Element;
|
74 | }
|
75 | export {};
|