chowa
Version:
UI component library based on React
95 lines (94 loc) • 3.56 kB
TypeScript
/**
* @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;