UNPKG

6.81 kBTypeScriptView Raw
1/// <reference types="react" />
2
3import * as React from "react";
4
5interface HTMLAttributesWeak extends React.HTMLAttributes<HTMLElement> {
6 defaultValue?: any;
7 onChange?: any;
8}
9
10export interface AutoCompleteProps extends HTMLAttributesWeak {
11 /**
12 * 选择器尺寸
13 */
14 size?: "small" | "medium" | "large";
15
16 /**
17 * 当前值,用于受控模式
18 */
19 value?: string | number;
20
21 /**
22 * 初始化的默认值
23 */
24 defaultValue?: string | number;
25
26 /**
27 * 没有值的时候的占位符
28 */
29 placeholder?: string;
30
31 /**
32 * 下拉菜单是否与选择器对齐
33 */
34 autoWidth?: boolean;
35
36 /**
37 * 自定义内联 label
38 */
39 label?: React.ReactNode;
40
41 /**
42 * 是否有清除按钮(单选模式有效)
43 */
44 hasClear?: boolean;
45
46 /**
47 * 校验状态
48 */
49 state?: "error" | "loading";
50
51 /**
52 * 是否只读,只读模式下可以展开弹层但不能选
53 */
54 readOnly?: boolean;
55
56 /**
57 * 是否禁用选择器
58 */
59 disabled?: boolean;
60
61 /**
62 * 当前弹层是否显示
63 */
64 visible?: boolean;
65
66 /**
67 * 弹层初始化是否显示
68 */
69 defaultVisible?: boolean;
70
71 /**
72 * 弹层显示或隐藏时触发的回调
73 */
74 onVisibleChange?: (visible: boolean) => void;
75
76 /**
77 * 弹层挂载的容器节点
78 */
79 popupContainer?: string | (() => void);
80
81 /**
82 * 弹层的 className
83 */
84 popupClassName?: any;
85
86 /**
87 * 弹层的内联样式
88 */
89 popupStyle?: {};
90
91 /**
92 * 添加到弹层上的属性
93 */
94 popupProps?: {};
95
96 /**
97 * 自定义弹层的内容
98 */
99 popupContent?: React.ReactNode;
100
101 /**
102 * 是否使用本地过滤,在数据源为远程的时候需要关闭此项
103 */
104 filterLocal?: boolean;
105
106 /**
107 * 本地过滤方法,返回一个 Boolean 值确定是否保留
108 */
109 filter?: () => void;
110
111 /**
112 * 键盘上下键切换菜单高亮选项的回调
113 */
114 onToggleHighlightItem?: () => void;
115
116 /**
117 * 是否开启虚拟滚动模式
118 */
119 useVirtual?: boolean;
120
121 /**
122 * 传入的数据源,可以动态渲染子项
123 */
124 dataSource?: Array<any>;
125
126 /**
127 * 渲染 MenuItem 内容的方法
128 */
129 itemRender?: (item: {}) => React.ReactNode;
130
131 /**
132 * Select发生改变时触发的回调
133 */
134 onChange?: (value: any, actionType: string, item: any) => void;
135
136 /**
137 * 填充到选择框里的值的 key,默认是 value
138 */
139 fillProps?: string;
140}
141
142export class AutoComplete extends React.Component<AutoCompleteProps, any> {}
143
144export interface OptionGroupProps extends React.HTMLAttributes<HTMLElement> {
145 /**
146 * 设置分组的文案
147 */
148 label?: React.ReactNode;
149}
150
151export class OptionGroup extends React.Component<OptionGroupProps, any> {}
152
153export interface OptionProps extends React.HTMLAttributes<HTMLElement> {
154 /**
155 * 选项值
156 */
157 value: any;
158
159 /**
160 * 是否禁用
161 */
162 disabled?: boolean;
163}
164
165export class Option extends React.Component<OptionProps, any> {}
166interface HTMLAttributesWeak extends React.HTMLAttributes<HTMLElement> {
167 defaultValue?: any;
168 onChange?: any;
169}
170
171export interface SelectProps extends HTMLAttributesWeak {
172 /**
173 * 选择器尺寸
174 */
175 size?: "small" | "medium" | "large";
176
177 /**
178 * 当前值,用于受控模式
179 */
180 value?: any;
181
182 /**
183 * 初始的默认值
184 */
185 defaultValue?: any;
186
187 /**
188 * 没有值的时候的占位符
189 */
190 placeholder?: string;
191
192 /**
193 * 下拉菜单是否与选择器对齐
194 */
195 autoWidth?: boolean;
196
197 /**
198 * 自定义内联 label
199 */
200 label?: React.ReactNode;
201
202 /**
203 * 是否有清除按钮(单选模式有效)
204 */
205 hasClear?: boolean;
206
207 /**
208 * 校验状态
209 */
210 state?: "error" | "loading";
211
212 /**
213 * 是否只读,只读模式下可以展开弹层但不能选
214 */
215 readOnly?: boolean;
216
217 /**
218 * 是否禁用选择器
219 */
220 disabled?: boolean;
221
222 /**
223 * 当前弹层是否显示
224 */
225 visible?: boolean;
226
227 /**
228 * 弹层初始化是否显示
229 */
230 defaultVisible?: boolean;
231
232 /**
233 * 弹层显示或隐藏时触发的回调
234 */
235 onVisibleChange?: (visible: boolean) => void;
236
237 /**
238 * 弹层挂载的容器节点
239 */
240 popupContainer?: string | (() => void);
241
242 /**
243 * 弹层的 className
244 */
245 popupClassName?: any;
246
247 /**
248 * 弹层的内联样式
249 */
250 popupStyle?: {};
251
252 /**
253 * 添加到弹层上的属性
254 */
255 popupProps?: {};
256
257 /**
258 * 自定义弹层的内容
259 */
260 popupContent?: React.ReactNode;
261
262 /**
263 * 是否使用本地过滤,在数据源为远程的时候需要关闭此项
264 */
265 filterLocal?: boolean;
266
267 /**
268 * 本地过滤方法,返回一个 Boolean 值确定是否保留
269 */
270 filter?: () => void;
271
272 /**
273 * 键盘上下键切换菜单高亮选项的回调
274 */
275 onToggleHighlightItem?: () => void;
276
277 /**
278 * 是否开启虚拟滚动模式
279 */
280 useVirtual?: boolean;
281
282 /**
283 * 传入的数据源,可以动态渲染子项,详见 [dataSource的使用](#dataSource的使用)
284 */
285 dataSource?: Array<any>;
286
287 /**
288 * 渲染 MenuItem 内容的方法
289 */
290 itemRender?: (item: {}, searchValue: string) => React.ReactNode;
291
292 /**
293 * 选择器模式
294 */
295 mode?: "single" | "multiple" | "tag";
296
297 /**
298 * 弹层内容为空的文案
299 */
300 notFoundContent?: React.ReactNode;
301
302 /**
303 * Select发生改变时触发的回调
304 */
305 onChange?: (value: any, actionType: string, item: any) => void;
306
307 /**
308 * 是否有边框
309 */
310 hasBorder?: boolean;
311
312 /**
313 * 是否有下拉箭头
314 */
315 hasArrow?: boolean;
316
317 /**
318 * 展开后是否能搜索(tag 模式下固定为true)
319 */
320 showSearch?: boolean;
321
322 /**
323 * 当搜索框值变化时回调
324 */
325 onSearch?: (value: string) => void;
326
327 /**
328 * 当搜索框值被清空时候的回调
329 */
330 onSearchClear?: (actionType: string) => void;
331
332 /**
333 * 多选模式下是否有全选功能
334 */
335 hasSelectAll?: boolean | string;
336
337 /**
338 * 填充到选择框里的值的 key
339 */
340 fillProps?: string;
341
342 /**
343 * onChange 返回的 value 使用 dataSource 的对象
344 */
345 useDetailValue?: boolean;
346
347 /**
348 * dataSource 变化的时是否保留已选的内容
349 */
350 cacheValue?: boolean;
351
352 /**
353 * 渲染 Select 展现内容的方法
354 */
355 valueRender?: (item: {}) => React.ReactNode;
356
357 /**
358 * 受控搜索值,一般不需要设置
359 */
360 searchValue?: string;
361
362 /**
363 * 选择后是否立即隐藏菜单 (mode=multiple/tag 模式生效)
364 */
365 hiddenSelected?: boolean;
366
367 /**
368 * tag 删除回调
369 */
370 onRemove?: (item: {}) => void;
371
372 /**
373 * 焦点事件
374 */
375 onFocus?: () => void;
376
377 /**
378 * 失去焦点事件
379 */
380 onBlur?: () => void;
381}
382
383export default class Select extends React.Component<SelectProps, any> {
384 static AutoComplete: typeof AutoComplete;
385 static OptionGroup: typeof OptionGroup;
386 static Option: typeof Option;
387}