///
import * as React from 'react';
import CommonProps from '../util';
interface HTMLAttributesWeak extends React.HTMLAttributes {
defaultValue?: any;
onChange?: any;
}
type data = {
value?: string;
label?: string;
disabled?: boolean;
checkboxDisabled?: boolean;
children?: Array;
[propName: string]: any;
};
type extra = {
/**
* 单选时选中的数据的路径
*/
selectedPath?: Array;
/**
* 多选时当前的操作是选中还是取消选中
*/
checked?: boolean;
/**
* 多选时当前操作的数据
*/
currentData?: any;
/**
* 多选时所有被选中的数据
*/
checkedData?: Array;
/**
* 多选时半选的数据
*/
indeterminateData?: Array;
};
export interface CascaderProps extends HTMLAttributesWeak, CommonProps {
/**
* 数据源,结构可参考下方说明
*/
dataSource?: Array;
/**
* (非受控)默认值
*/
defaultValue?: string | Array;
/**
* (受控)当前值
*/
value?: string | Array;
/**
* 选中值改变时触发的回调函数
*/
onChange?: (value: string | Array, data: data | Array, extra: extra) => void;
/**
* (非受控)默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置
*/
defaultExpandedValue?: Array;
/**
* (受控)当前展开值
*/
expandedValue?: Array;
/**
* 展开触发的方式
*/
expandTriggerType?: 'click' | 'hover';
/**
* 展开时触发的回调函数
*/
onExpand?: (expandedValue: Array) => void;
/**
* 是否开启虚拟滚动
*/
useVirtual?: boolean;
/**
* 是否多选
*/
multiple?: boolean;
/**
* 单选时是否只能选中叶子节点
*/
canOnlySelectLeaf?: boolean;
/**
* 多选时是否只能选中叶子节点
*/
canOnlyCheckLeaf?: boolean;
/**
* 父子节点是否选中不关联
*/
checkStrictly?: boolean;
/**
* 每列列表样式对象
*/
listStyle?: React.CSSProperties;
/**
* 每列列表类名
*/
listClassName?: string;
/**
* 每列列表项渲染函数
*/
itemRender?: (data: data) => React.ReactNode;
/**
* 异步加载数据函数,source是原始对象
*/
loadData?: (data: data, source: data) => void;
/**
* 是否是不可变数据
*/
immutable?: boolean;
}
export default class Cascader extends React.Component {}