UNPKG

4.74 kBTypeScriptView Raw
1/// <reference types="react" />
2
3import * as React from 'react';
4import CommonProps from '../util';
5
6export interface DropdownProps extends React.HTMLAttributes<HTMLElement>, CommonProps {
7 /**
8 * 弹层内容
9 */
10 children?: React.ReactNode;
11
12 /**
13 * 弹层当前是否显示
14 */
15 visible?: boolean;
16
17 /**
18 * 弹层请求关闭时触发事件的回调函数
19 */
20 onRequestClose?: (type: string, e: {}) => void;
21
22 /**
23 * 弹层定位的参照元素
24 */
25 target?: any;
26
27 /**
28 * 弹层相对于触发元素的定位, 详见 Overlay 的定位部分
29 */
30 align?: string;
31
32 /**
33 * 弹层相对于触发元素定位的微调
34 */
35 offset?: Array<any>;
36
37 /**
38 * 渲染组件的容器,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点
39 */
40 container?: any;
41
42 /**
43 * 是否显示遮罩
44 */
45 hasMask?: boolean;
46
47 /**
48 * 是否支持 esc 按键关闭弹层
49 */
50 canCloseByEsc?: boolean;
51
52 /**
53 * 点击弹层外的区域是否关闭弹层,不显示遮罩时生效
54 */
55 canCloseByOutSideClick?: boolean;
56
57 /**
58 * 点击遮罩区域是否关闭弹层,显示遮罩时生效
59 */
60 canCloseByMask?: boolean;
61
62 /**
63 * 弹层打开前触发事件的回调函数
64 */
65 beforeOpen?: () => void;
66
67 /**
68 * 弹层打开时触发事件的回调函数
69 */
70 onOpen?: () => void;
71
72 /**
73 * 弹层打开后触发事件的回调函数, 如果有动画,则在动画结束后触发
74 */
75 afterOpen?: () => void;
76
77 /**
78 * 弹层关闭前触发事件的回调函数
79 */
80 beforeClose?: () => void;
81
82 /**
83 * 弹层关闭时触发事件的回调函数
84 */
85 onClose?: () => void;
86
87 /**
88 * 弹层关闭后触发事件的回调函数, 如果有动画,则在动画结束后触发
89 */
90 afterClose?: () => void;
91
92 /**
93 * 弹层定位完成前触发的事件
94 */
95 beforePosition?: () => void;
96
97 /**
98 * 弹层定位完成时触发的事件
99 */
100 onPosition?: (config: {}, node: {}) => void;
101
102 /**
103 * 是否在每次弹层重新渲染后强制更新定位信息,一般用于弹层内容区域大小发生变化时,仍需保持原来的定位方式
104 */
105 shouldUpdatePosition?: boolean;
106
107 /**
108 * 弹层打开时是否让其中的元素自动获取焦点
109 */
110 autoFocus?: boolean;
111
112 /**
113 * 当弹层由于页面滚动等情况不在可视区域时,是否自动调整定位以出现在可视区域
114 */
115 needAdjust?: boolean;
116
117 /**
118 * 是否禁用页面滚动
119 */
120 disableScroll?: boolean;
121
122 /**
123 * 隐藏时是否保留子节点
124 */
125 cache?: boolean;
126
127 /**
128 * 安全节点,当点击 document 的时候,如果包含该节点则不会关闭弹层,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点,或者以上值组成的数组
129 */
130 safeNode?: any;
131
132 /**
133 * 弹层的根节点的样式类
134 */
135 wrapperClassName?: string;
136
137 /**
138 * 弹层的根节点的内联样式
139 */
140 wrapperStyle?: React.CSSProperties;
141
142 /**
143 * 配置动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画
144 */
145 animation?: any | boolean;
146
147 /**
148 * 触发弹层显示或者隐藏的元素
149 */
150 trigger?: React.ReactNode;
151
152 /**
153 * 触发弹层显示或隐藏的操作类型,可以是 'click','hover',或者它们组成的数组,如 ['hover', 'click']
154 */
155 triggerType?: string | Array<any>;
156
157 /**
158 * 当 triggerType 为 click 时才生效,可自定义触发弹层显示的键盘码
159 */
160 triggerClickKeycode?: number | Array<any>;
161
162 /**
163 * 弹层默认是否显示
164 */
165 defaultVisible?: boolean;
166
167 /**
168 * 开启后,默认点击children弹窗就收起 0.x 2.x中默认是true
169 */
170 autoClose?: boolean;
171
172 /**
173 * 弹层显示或隐藏时触发的回调函数
174 */
175 onVisibleChange?: (visible: boolean, type: string, e: {}) => void;
176
177 /**
178 * 设置此属性,弹层无法显示或隐藏
179 */
180 disabled?: boolean;
181
182 /**
183 * 弹层显示或隐藏的延时时间(以毫秒为单位),在 triggerType 被设置为 hover 时生效
184 */
185 delay?: number;
186
187 /**
188 * trigger 是否可以关闭弹层
189 */
190 canCloseByTrigger?: boolean;
191
192 /**
193 * 是否跟随trigger滚动
194 */
195 followTrigger?: boolean;
196}
197
198export default class Dropdown extends React.Component<DropdownProps, any> {}