UNPKG

2.76 kBTypeScriptView Raw
1/// <reference types="react" />
2
3import * as React from 'react';
4import CommonProps from '../util';
5
6interface HTMLAttributesWeak extends React.HTMLAttributes<HTMLElement> {
7 defaultValue?: any;
8 onChange?: any;
9}
10
11type data = {
12 value?: string;
13 label?: string;
14 disabled?: boolean;
15 checkboxDisabled?: boolean;
16 children?: Array<data>;
17 [propName: string]: any;
18};
19
20type extra = {
21 /**
22 * 单选时选中的数据的路径
23 */
24 selectedPath?: Array<data>;
25 /**
26 * 多选时当前的操作是选中还是取消选中
27 */
28 checked?: boolean;
29 /**
30 * 多选时当前操作的数据
31 */
32 currentData?: any;
33 /**
34 * 多选时所有被选中的数据
35 */
36 checkedData?: Array<data>;
37 /**
38 * 多选时半选的数据
39 */
40 indeterminateData?: Array<data>;
41};
42
43export interface CascaderProps extends HTMLAttributesWeak, CommonProps {
44 /**
45 * 数据源,结构可参考下方说明
46 */
47 dataSource?: Array<data>;
48
49 /**
50 * (非受控)默认值
51 */
52 defaultValue?: string | Array<string>;
53
54 /**
55 * (受控)当前值
56 */
57 value?: string | Array<string>;
58
59 /**
60 * 选中值改变时触发的回调函数
61 */
62 onChange?: (value: string | Array<string>, data: data | Array<data>, extra: extra) => void;
63
64 /**
65 * (非受控)默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置
66 */
67 defaultExpandedValue?: Array<string>;
68
69 /**
70 * (受控)当前展开值
71 */
72 expandedValue?: Array<string>;
73
74 /**
75 * 展开触发的方式
76 */
77 expandTriggerType?: 'click' | 'hover';
78
79 /**
80 * 展开时触发的回调函数
81 */
82 onExpand?: (expandedValue: Array<string>) => void;
83
84 /**
85 * 是否开启虚拟滚动
86 */
87 useVirtual?: boolean;
88
89 /**
90 * 是否多选
91 */
92 multiple?: boolean;
93
94 /**
95 * 单选时是否只能选中叶子节点
96 */
97 canOnlySelectLeaf?: boolean;
98
99 /**
100 * 多选时是否只能选中叶子节点
101 */
102 canOnlyCheckLeaf?: boolean;
103
104 /**
105 * 父子节点是否选中不关联
106 */
107 checkStrictly?: boolean;
108
109 /**
110 * 每列列表样式对象
111 */
112 listStyle?: React.CSSProperties;
113
114 /**
115 * 每列列表类名
116 */
117 listClassName?: string;
118
119 /**
120 * 每列列表项渲染函数
121 */
122 itemRender?: (data: data) => React.ReactNode;
123
124 /**
125 * 异步加载数据函数,source是原始对象
126 */
127 loadData?: (data: data, source: data) => void;
128
129 /**
130 * 是否是不可变数据
131 */
132 immutable?: boolean;
133}
134
135export default class Cascader extends React.Component<CascaderProps, any> {}