UNPKG

4.56 kBTypeScriptView Raw
1/// <reference types="react" />
2
3import * as React from 'react';
4import { CascaderProps, data, extra } from '../cascader';
5import CommonProps from '../util';
6import { PopupProps } from '../overlay';
7
8interface HTMLAttributesWeak extends React.HTMLAttributes<HTMLElement> {
9 defaultValue?: any;
10 onChange?: any;
11}
12
13export interface CascaderSelectProps extends CascaderProps, HTMLAttributesWeak, CommonProps {
14 /**
15 * 选择框大小
16 */
17 size?: 'small' | 'medium' | 'large';
18 name?: string;
19
20 /**
21 * 选择框占位符
22 */
23 placeholder?: string;
24
25 /**
26 * 是否禁用
27 */
28 disabled?: boolean;
29
30 /**
31 * 是否有下拉箭头
32 */
33 hasArrow?: boolean;
34
35 /**
36 * 是否有边框
37 */
38 hasBorder?: boolean;
39
40 /**
41 * 是否有清除按钮
42 */
43 hasClear?: boolean;
44
45 /**
46 * 自定义内联 label
47 */
48 label?: React.ReactNode;
49
50 /**
51 * 是否只读,只读模式下可以展开弹层但不能选
52 */
53 readOnly?: boolean;
54
55 /**
56 * 数据源,结构可参考下方说明
57 */
58 dataSource?: Array<data>;
59
60 /**
61 * (非受控)默认值
62 */
63 defaultValue?: string | Array<string>;
64
65 /**
66 * (受控)当前值
67 */
68 value?: string | Array<string>;
69
70 valueRender?: (item: any) => React.ReactNode;
71
72 /**
73 * 选中值改变时触发的回调函数
74 */
75 onChange?: (value: string | Array<string>, data: data | Array<data>, extra: extra) => void;
76
77 /**
78 * 默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置
79 */
80 defaultExpandedValue?: Array<string>;
81
82 /**
83 * 展开触发的方式
84 */
85 expandTriggerType?: 'click' | 'hover';
86
87 /**
88 * 是否开启虚拟滚动
89 */
90 useVirtual?: boolean;
91
92 /**
93 * 是否多选
94 */
95 multiple?: boolean;
96
97 /**
98 * 是否选中即发生改变, 该属性仅在单选模式下有效
99 */
100 changeOnSelect?: boolean;
101
102 /**
103 * 是否只能勾选叶子项的checkbox,该属性仅在多选模式下有效
104 */
105 canOnlyCheckLeaf?: boolean;
106
107 /**
108 * 父子节点是否选中不关联
109 */
110 checkStrictly?: boolean;
111
112 /**
113 * 每列列表样式对象
114 */
115 listStyle?: React.CSSProperties;
116
117 /**
118 * 每列列表类名
119 */
120 listClassName?: string;
121
122 /**
123 * 选择框单选时展示结果的自定义渲染函数
124 */
125 displayRender?: (label: Array<any>) => React.ReactNode;
126
127 /**
128 * 渲染 item 内容的方法
129 */
130 itemRender?: (item: data) => React.ReactNode;
131
132 /**
133 * 是否显示搜索框
134 */
135 showSearch?: boolean;
136
137 /**
138 * 自定义搜索函数
139 */
140 filter?: (searchValue: string, path: Array<any>) => boolean;
141
142 /**
143 * 当搜索框值变化时回调
144 */
145 onSearch?: (value: string) => void;
146
147 /**
148 * 搜索结果自定义渲染函数
149 */
150 resultRender?: (searchValue: string, path: Array<any>) => React.ReactNode;
151
152 /**
153 * 搜索结果列表是否和选择框等宽
154 */
155 resultAutoWidth?: boolean;
156
157 /**
158 * 无数据时显示内容
159 */
160 notFoundContent?: React.ReactNode;
161
162 /**
163 * 异步加载数据函数
164 */
165 loadData?: (data: {}) => void;
166
167 /**
168 * 自定义下拉框头部
169 */
170 header?: React.ReactNode;
171
172 /**
173 * 自定义下拉框底部
174 */
175 footer?: React.ReactNode;
176
177 /**
178 * 初始下拉框是否显示
179 */
180 defaultVisible?: boolean;
181
182 /**
183 * 当前下拉框是否显示
184 */
185 visible?: boolean;
186
187 /**
188 * 下拉框显示或关闭时触发事件的回调函数
189 */
190 onVisibleChange?: (visible: boolean, type: string) => void;
191
192 /**
193 * 下拉框自定义样式对象
194 */
195 popupStyle?: React.CSSProperties;
196
197 /**
198 * 下拉框样式自定义类名
199 */
200 popupClassName?: string;
201
202 /**
203 * 下拉框挂载的容器节点
204 */
205 popupContainer?: string | HTMLElement | ((target: HTMLElement) => HTMLElement);
206
207 /**
208 * 是否跟随滚动
209 */
210 followTrigger?: boolean;
211
212 /**
213 * 透传到 Popup 的属性对象
214 */
215 popupProps?: PopupProps;
216
217 /**
218 * 是否是不可变数据
219 */
220 immutable?: boolean;
221
222 /**
223 * 是否为预览态
224 */
225 isPreview?: boolean;
226
227 renderPreview?: (value: string | Array<string>) => React.ReactNode;
228}
229
230export default class CascaderSelect extends React.Component<CascaderSelectProps, any> {}