UNPKG

chowa

Version:

UI component library based on React

95 lines (94 loc) 3.56 kB
/** * @license chowa v1.1.3 * * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn). * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import * as React from 'react'; import * as PropTypes from 'prop-types'; export interface Record { index?: React.ReactText; title: React.ReactText; disabled?: boolean; guessers?: string[]; [key: string]: any; } export declare type Data = Record[]; export declare type Mode = 'source' | 'target'; export interface TransferProps { className?: string; style?: React.CSSProperties; tabIndex?: number; data: Data; defaultValue?: React.ReactText[]; value?: React.ReactText[]; formatter?: (record: Record) => React.ReactNode; selectedIndexs?: React.ReactText[]; titles?: string[]; searchable?: boolean; onSearch?: (value: string, mode: Mode) => void; filterOption?: (data: Data, searchVal: string, mode: Mode) => Data; searchPlaceholder?: string; noDataDescription?: React.ReactNode; noDataImg?: string; noDataImgStyle?: React.CSSProperties; onChange?: (indexs: React.ReactText[]) => void; listStyle?: React.CSSProperties; operations?: React.ReactNode[]; onSelectChange?: (sourceIndexs: React.ReactText[], targetIndexs: React.ReactText[]) => void; sourceFooter?: React.ReactNode; targetFooter?: React.ReactNode; disabled?: boolean; } export interface TransferState { result: React.ReactText[]; renderData: Data; sourceSelectedIndexs: React.ReactText[]; targetSelectedIndexs: React.ReactText[]; } declare class Transfer extends React.PureComponent<TransferProps, TransferState> { static propTypes: { className: PropTypes.Requireable<string>; style: PropTypes.Requireable<object>; tabIndex: PropTypes.Requireable<number>; data: PropTypes.Validator<any[]>; value: PropTypes.Requireable<any[]>; defaultValue: PropTypes.Requireable<any[]>; formatter: PropTypes.Requireable<(...args: any[]) => any>; selectedIndexs: PropTypes.Requireable<any[]>; titles: PropTypes.Requireable<any[]>; searchable: PropTypes.Requireable<boolean>; onSearch: PropTypes.Requireable<(...args: any[]) => any>; filterOption: PropTypes.Requireable<(...args: any[]) => any>; searchPlaceholder: PropTypes.Requireable<string>; noDataDescription: PropTypes.Requireable<string>; noDataImg: PropTypes.Requireable<string>; noDataImgStyle: PropTypes.Requireable<object>; onChange: PropTypes.Requireable<(...args: any[]) => any>; listStyle: PropTypes.Requireable<object>; operations: PropTypes.Requireable<any[]>; onSelectChange: PropTypes.Requireable<(...args: any[]) => any>; sourceFooter: PropTypes.Requireable<PropTypes.ReactNodeLike>; targetFooter: PropTypes.Requireable<PropTypes.ReactNodeLike>; disabled: PropTypes.Requireable<boolean>; }; static defaultProps: { tabIndex: number; searchable: boolean; value: any[]; defaultValue: any[]; selectedIndexs: any[]; operations: string[]; disabled: boolean; }; constructor(props: TransferProps); componentDidUpdate(preProps: TransferProps): void; private onSourceSelectChangeHandler; private onTargetSelectChangeHandler; private moveToTarget; private moveToSource; render(): JSX.Element; } export default Transfer;