1 | /// <reference types="react" />
|
2 |
|
3 | import * as React from 'react';
|
4 | import CommonProps from '../util';
|
5 |
|
6 | export 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 |
|
198 | export default class Dropdown extends React.Component<DropdownProps, any> {}
|