@hi-ui/dropdown 4.0.0-alpha.3 → 4.0.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,11 +1,62 @@
1
- # `@hi-ui/dropdown`
1
+ # Dropdown 下拉菜单
2
2
 
3
- > TODO: description
3
+ 用来将菜单收起在下拉面板中,使用中唤起面板,有效节省空间
4
4
 
5
- ## Usage
5
+ ## 何时使用
6
6
 
7
- ```
8
- const Dropdown = require('@hi-ui/dropdown');
7
+ 有二级以上的菜单且展示空间有限
9
8
 
10
- // TODO: DEMONSTRATE API
11
- ```
9
+ 当一组平级的动作要展示时,将其收入一个入口,可让页面信息更整洁
10
+
11
+ ## 使用示例
12
+
13
+ <!-- Inject Stories -->
14
+
15
+ ## Props
16
+
17
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
18
+ | ---------------- | --------------------------------------- | ------------------------------------------ | ----------------------------------- | ------- |
19
+ | data | 下拉菜单数据项 | DataItem [] | - | - |
20
+ | title | 下拉菜单显示标题的内容 | ReactNode | - | - |
21
+ | type | 下拉菜单按钮类型 | string | 'text' \| 'button' \| 'group' | 'text' |
22
+ | trigger | 下拉菜单触发方式 | string \| string [] | 'click' \| 'contextmenu' \| 'hover' | 'hover' |
23
+ | disabled | 是否禁用下拉菜单 | boolean | true \| false | - |
24
+ | width | 菜单项宽度 | number | - | 180 |
25
+ | overlayClassName | 下拉根元素的类名称 | string | - | - |
26
+ | popper | 自定义控制弹出层 popper 行为 | Omit<PopperProps, 'visible' \| 'attachEl'> | - | - |
27
+ | triggerButton | 自定义下拉菜单触发按钮,优先级大于 type | ReactElement | - | - |
28
+
29
+ > 注意:自定义按钮需要支持 ref 获取元素 dom 引用 以及 trigger 对应的事件:
30
+ >
31
+ > hover: onMouseEnter \ onMouseLeave
32
+ > click: onClick
33
+ > contextmenu: onContextMenu
34
+
35
+ ## Events
36
+
37
+ | 名称 | 说明 | 类型 | 参数 | 返回值 |
38
+ | ------------- | --------------------------------------------- | --------------------------- | ------------------- | ------ |
39
+ | onClick | 点击后的回调 | (id: ReactText) => void | id: 点击的数据项 ID | - |
40
+ | onButtonClick | 点击左侧按钮的回调,仅在 type 为 group 时有效 | (event: MouseEvent) => void | event: 鼠标事件对象 | - |
41
+
42
+ ## Type
43
+
44
+ ### DataItem
45
+
46
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
47
+ | -------- | --------------------------------------------- | --------- | ---------------------------------------------- | ------ |
48
+ | title | 标题的内容,设置为 `'-'` 时是分割线 | ReactNode | - | - |
49
+ | id | 唯一标识 id | ReactText | - | - |
50
+ | disabled | 是否禁用 | boolean | true \| false | false |
51
+ | href | 点击跳转的路径 | string | - | - |
52
+ | target | 同 a 标签的 target 属性,仅在设置 href 后有效 | string | '\_self' \| '\_blank' \| '\_parent' \| '\_top' | - |
53
+
54
+ ## CHANGELOG
55
+
56
+ | 参数 | 变更类型 | 变更内容 | 解决的问题 |
57
+ | ------------- | ------------------------------- | ------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
58
+ | propName | feature \| deprecated \| update | 变更了什么 | 之前是什么样子,解决什么问题 |
59
+ | ---- | ---- | ---- | ---- |
60
+ | triggerButton | feature | - | 功能强化 |
61
+ | popper | feature | 字段 placement -> popper | Picker 类型组件统一支持,聚合管理。比如: placement arrow container disablePortal 等,之前有的加了有的没加 |
62
+ | id | update | 对于表单控件 id 值的控制,均使用 ReactText(即 string 和 number 都支持) | 之前是 string 类型 |
@@ -51,7 +51,12 @@ var _prefix = classname.getPrefixCls(_role);
51
51
 
52
52
  var DEFAULT_DATA = [];
53
53
  /**
54
- * TODO: What is Dropdown
54
+ * 下拉菜单
55
+ *
56
+ * TODO:
57
+ * 1. 支持自定义icon
58
+ * 2. 支持 titleRender
59
+ * 3. 支持 onClick 阻止默认行为关闭
55
60
  */
56
61
 
57
62
  var Dropdown = /*#__PURE__*/React.forwardRef(function (_a, ref) {
@@ -68,7 +73,8 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_a, ref) {
68
73
  _onClick = _a.onClick,
69
74
  onButtonClick = _a.onButtonClick,
70
75
  overlayClassName = _a.overlayClassName,
71
- rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "title", "type", "onClick", "onButtonClick", "overlayClassName"]);
76
+ triggerButton = _a.triggerButton,
77
+ rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "title", "type", "onClick", "onButtonClick", "overlayClassName", "triggerButton"]);
72
78
 
73
79
  var _b = useDropdown.useDropdown(rest),
74
80
  rootProps = _b.rootProps,
@@ -115,23 +121,40 @@ var Dropdown = /*#__PURE__*/React.forwardRef(function (_a, ref) {
115
121
  });
116
122
  };
117
123
 
124
+ var renderButton = function renderButton() {
125
+ if (triggerButton) {
126
+ // @ts-ignore
127
+ return /*#__PURE__*/React.cloneElement(triggerButton, getTriggerProps(triggerButton.props, triggerButton.ref));
128
+ }
129
+
130
+ if (type === 'text' || type === 'button') {
131
+ return /*#__PURE__*/React__default['default'].createElement(Button__default['default'], Object.assign({}, getTriggerProps(), {
132
+ appearance: type === 'button' ? 'flat' : 'link'
133
+ }), title, /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, {
134
+ style: {
135
+ marginInlineStart: 2
136
+ }
137
+ }));
138
+ }
139
+
140
+ if (type === 'group') {
141
+ return /*#__PURE__*/React__default['default'].createElement(Button.ButtonGroup, null, /*#__PURE__*/React__default['default'].createElement(Button__default['default'], {
142
+ onClick: onButtonClick
143
+ }, title), /*#__PURE__*/React__default['default'].createElement(Button__default['default'], Object.assign({
144
+ className: classname.cx(prefixCls + "__icon", prefixCls + "__icon-btn-wrap")
145
+ }, getTriggerProps()), /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null)));
146
+ }
147
+
148
+ return null;
149
+ };
150
+
118
151
  return /*#__PURE__*/React__default['default'].createElement(context.DropDownProvider, {
119
152
  value: providedValue
120
153
  }, /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
121
154
  ref: ref,
122
155
  role: role,
123
156
  className: cls
124
- }, rootProps), type === 'text' || type === 'button' ? /*#__PURE__*/React__default['default'].createElement(Button__default['default'], Object.assign({}, getTriggerProps(), {
125
- appearance: type === 'button' ? 'flat' : 'link'
126
- }), title, /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, {
127
- style: {
128
- marginInlineStart: 2
129
- }
130
- })) : null, type === 'group' ? /*#__PURE__*/React__default['default'].createElement(Button.ButtonGroup, null, /*#__PURE__*/React__default['default'].createElement(Button__default['default'], {
131
- onClick: onButtonClick
132
- }, title), /*#__PURE__*/React__default['default'].createElement(Button__default['default'], Object.assign({
133
- className: classname.cx(prefixCls + "__icon", prefixCls + "__icon-btn-wrap")
134
- }, getTriggerProps()), /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null))) : null, typeAssertion.isArrayNonEmpty(data) ? /*#__PURE__*/React__default['default'].createElement(DropdownMenu, Object.assign({}, getMenuProps({
157
+ }, rootProps), renderButton(), typeAssertion.isArrayNonEmpty(data) ? /*#__PURE__*/React__default['default'].createElement(DropdownMenu, Object.assign({}, getMenuProps({
135
158
  popper: {
136
159
  disabledPortal: false,
137
160
  className: overlayClassName
@@ -143,43 +166,14 @@ if (env.__DEV__) {
143
166
  Dropdown.displayName = 'Dropdown';
144
167
  }
145
168
 
146
- var dropdownButtonPrefix = classname.getPrefixCls('dropdown-button');
147
- /**
148
- * TODO: What is DropdownButton
149
- */
150
-
151
- var DropdownButton = /*#__PURE__*/React.forwardRef(function (_a, ref) {
152
- var _a$prefixCls2 = _a.prefixCls,
153
- prefixCls = _a$prefixCls2 === void 0 ? dropdownButtonPrefix : _a$prefixCls2,
154
- _a$role2 = _a.role,
155
- role = _a$role2 === void 0 ? _role : _a$role2,
156
- className = _a.className,
157
- children = _a.children,
158
- rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children"]);
159
-
160
- var _useDropDownContext = context.useDropDownContext(),
161
- getTriggerProps = _useDropDownContext.getTriggerProps;
162
-
163
- var triggerProps = getTriggerProps();
164
- var cls = classname.cx(prefixCls, className);
165
- return /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
166
- role: role,
167
- className: cls
168
- }, rest, triggerProps), children);
169
- });
170
-
171
- if (env.__DEV__) {
172
- DropdownButton.displayName = 'DropdownButton';
173
- }
174
-
175
169
  var dropdownMenuPrefix = classname.getPrefixCls('dropdown-menu');
176
170
  /**
177
171
  * TODO: What is DropdownMenu
178
172
  */
179
173
 
180
174
  var DropdownMenu = /*#__PURE__*/React.forwardRef(function (_a, ref) {
181
- var _a$prefixCls3 = _a.prefixCls,
182
- prefixCls = _a$prefixCls3 === void 0 ? dropdownMenuPrefix : _a$prefixCls3,
175
+ var _a$prefixCls2 = _a.prefixCls,
176
+ prefixCls = _a$prefixCls2 === void 0 ? dropdownMenuPrefix : _a$prefixCls2,
183
177
  popper$1 = _a.popper,
184
178
  parents = _a.parents,
185
179
  className = _a.className,
@@ -207,8 +201,8 @@ var dropdownMenuItemPrefix = classname.getPrefixCls('dropdown-menu-item');
207
201
  */
208
202
 
209
203
  var DropdownMenuItem = /*#__PURE__*/React.forwardRef(function (_a, ref) {
210
- var _a$prefixCls4 = _a.prefixCls,
211
- prefixCls = _a$prefixCls4 === void 0 ? dropdownMenuItemPrefix : _a$prefixCls4,
204
+ var _a$prefixCls3 = _a.prefixCls,
205
+ prefixCls = _a$prefixCls3 === void 0 ? dropdownMenuItemPrefix : _a$prefixCls3,
212
206
  className = _a.className,
213
207
  children = _a.children,
214
208
  href = _a.href,
@@ -218,9 +212,9 @@ var DropdownMenuItem = /*#__PURE__*/React.forwardRef(function (_a, ref) {
218
212
  menu = _a.menu,
219
213
  rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "href", "value", "target", "disabled", "parents", "menu"]);
220
214
 
221
- var _useDropDownContext2 = context.useDropDownContext(),
222
- triggerMethods = _useDropDownContext2.triggerMethods,
223
- width = _useDropDownContext2.width;
215
+ var _useDropDownContext = context.useDropDownContext(),
216
+ triggerMethods = _useDropDownContext.triggerMethods,
217
+ width = _useDropDownContext.width;
224
218
 
225
219
  var _useDropdown = useDropdown.useDropdown(Object.assign(Object.assign({
226
220
  popper: {
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../src/Dropdown.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","DEFAULT_DATA","Dropdown","forwardRef","_a","ref","prefixCls","role","className","data","title","type","onClick","onButtonClick","overlayClassName","rest","_b","useDropdown","rootProps","providedValue","getMenuProps","getTriggerProps","disabled","menuVisibleAction","cls","cx","dig","treeData","map","item","menu","isArrayNonEmpty","children","React","DropdownMenu","popper","gutterGap","shouldRenderDivider","key","id","DropdownMenuItem","href","target","value","isArray","off","DropDownProvider","Button","appearance","DownOutlined","style","marginInlineStart","ButtonGroup","disabledPortal","__DEV__","displayName","dropdownButtonPrefix","DropdownButton","useDropDownContext","triggerProps","dropdownMenuPrefix","parents","PopperPortal","Children","child","cloneElement","dropdownMenuItemPrefix","parentsProp","triggerMethods","width","placement","trigger","shouldUseLink","props"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","sources":["../../src/Dropdown.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","DEFAULT_DATA","Dropdown","forwardRef","_a","ref","prefixCls","role","className","data","title","type","onClick","onButtonClick","overlayClassName","triggerButton","rest","_b","useDropdown","rootProps","providedValue","getMenuProps","getTriggerProps","disabled","menuVisibleAction","cls","cx","dig","treeData","map","item","menu","isArrayNonEmpty","children","React","DropdownMenu","popper","gutterGap","shouldRenderDivider","key","id","DropdownMenuItem","href","target","value","isArray","off","renderButton","cloneElement","props","Button","appearance","DownOutlined","style","marginInlineStart","ButtonGroup","DropDownProvider","disabledPortal","__DEV__","displayName","dropdownMenuPrefix","parents","PopperPortal","Children","child","dropdownMenuItemPrefix","parentsProp","useDropDownContext","triggerMethods","width","placement","trigger","shouldUseLink"],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  Object.defineProperty(exports, '__esModule', {
13
13
  value: true
14
14
  });
15
- var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-dropdown-menu {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n background-color: #fff;\n background-color: var(--hi-v4-color-static-white, #fff);\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px);\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n padding: 8px;\n padding: var(--hi-v4-spacing-4, 8px);\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733); }\n.hi-v4-dropdown-menu-item {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n list-style: none;\n width: 200px;\n width: var(--hi-v4-dropdown-menu-item-width, 200px);\n margin: 0;\n box-sizing: border-box;\n overflow: visible; }\n.hi-v4-dropdown-menu-item__link {\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733);\n width: 100%;\n text-decoration: none;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n.hi-v4-dropdown-menu-item__trigger {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n cursor: pointer;\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px);\n padding: 10px 12px;\n padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-6, 12px);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.hi-v4-dropdown-menu-item__trigger:hover {\n background-color: #f2f4f7;\n background-color: var(--hi-v4-color-gray-100, #f2f4f7); }\n.hi-v4-dropdown-divider {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n list-style: none;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n width: 100%;\n height: 1px;\n margin: 8px 0;\n margin: var(--hi-v4-spacing-4, 8px) 0; }\n";
15
+ var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-dropdown-menu {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n background-color: #fff;\n background-color: var(--hi-v4-color-static-white, #fff);\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px);\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n padding: 8px;\n padding: var(--hi-v4-spacing-4, 8px);\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733);\n width: 180px;\n width: var(--hi-v4-dropdown-menu-width, 180px); }\n.hi-v4-dropdown-menu-item {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n list-style: none;\n margin: 0;\n box-sizing: border-box;\n overflow: visible; }\n.hi-v4-dropdown-menu-item__link {\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733);\n width: 100%;\n text-decoration: none;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n.hi-v4-dropdown-menu-item__trigger {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n cursor: pointer;\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px);\n padding: 10px 12px;\n padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-6, 12px);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.hi-v4-dropdown-menu-item__trigger:hover {\n background-color: #f2f4f7;\n background-color: var(--hi-v4-color-gray-100, #f2f4f7); }\n.hi-v4-dropdown-divider {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n list-style: none;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n width: 100%;\n height: 1px;\n margin: 8px 0;\n margin: var(--hi-v4-spacing-4, 8px) 0; }\n";
16
16
 
17
17
  var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
18
18
 
@@ -33,6 +33,10 @@ var classname = require('@hi-ui/classname');
33
33
 
34
34
  var reactUtils = require('@hi-ui/react-utils');
35
35
 
36
+ var domUtils = require('@hi-ui/dom-utils');
37
+
38
+ var typeAssertion = require('@hi-ui/type-assertion');
39
+
36
40
  var NOOP_ARRAY = [];
37
41
 
38
42
  var useDropdown = function useDropdown(props) {
@@ -102,41 +106,47 @@ var useDropdown = function useDropdown(props) {
102
106
  hoveringRef.current = true;
103
107
  startOpenTimer();
104
108
  });
105
- /**
106
- * 事件收集
107
- * 'click' | 'contextmenu' | 'hover'
108
- */
109
+ var getTriggerProps = React.useCallback(function (props, ref) {
110
+ if (props === void 0) {
111
+ props = {};
112
+ }
109
113
 
110
- var eventHandler = React.useMemo(function () {
111
- return triggerMethods.reduce(function (acc, cur) {
114
+ if (ref === void 0) {
115
+ ref = null;
116
+ }
117
+
118
+ var triggerProps = {
119
+ ref: reactUtils.mergeRefs(triggerElementRef, ref),
120
+ disabled: disabled
121
+ };
122
+ /**
123
+ * 事件收集
124
+ * 'click' | 'contextmenu' | 'hover'
125
+ */
126
+
127
+ triggerMethods.reduce(function (acc, cur) {
112
128
  switch (cur) {
113
129
  case types.TriggerActionEnum.HOVER:
114
- acc.onMouseEnter = handlePopperEnter;
115
- acc.onMouseLeave = handlePopperLeave;
130
+ acc.onMouseEnter = domUtils.mockDefaultHandlers(props.onMouseEnter, handlePopperEnter);
131
+ acc.onMouseLeave = domUtils.mockDefaultHandlers(props.onMouseLeave, handlePopperLeave);
116
132
  break;
117
133
 
118
134
  case types.TriggerActionEnum.CONTEXTMENU:
119
- acc.onContextMenu = function (evt) {
135
+ acc.onContextMenu = domUtils.mockDefaultHandlers(props.onContextMenu, function (evt) {
120
136
  evt.preventDefault();
121
137
  menuVisibleAction.not();
122
- };
123
-
138
+ });
124
139
  break;
125
140
 
126
141
  case types.TriggerActionEnum.CLICK:
127
- acc.onClick = menuVisibleAction.not;
142
+ acc.onClick = domUtils.mockDefaultHandlers(props.onClick, menuVisibleAction.not);
128
143
  break;
129
144
  }
130
145
 
131
146
  return acc;
132
- }, {});
133
- }, [triggerMethods, menuVisibleAction, handlePopperEnter, handlePopperLeave]);
134
- var getTriggerProps = React.useCallback(function () {
135
- return Object.assign({
136
- ref: triggerElementRef,
137
- disabled: disabled
138
- }, eventHandler);
139
- }, [eventHandler, disabled]);
147
+ }, triggerProps);
148
+ return triggerProps;
149
+ }, [disabled, triggerMethods, menuVisibleAction, handlePopperEnter, handlePopperLeave]);
140
150
  var rootProps = rest;
141
151
  var getMenuProps = useLatest.useLatestCallback(function (props, ref) {
142
152
  var _Object$assign;
@@ -153,7 +163,7 @@ var useDropdown = function useDropdown(props) {
153
163
  var menuProps = Object.assign(Object.assign({}, props), {
154
164
  ref: reactUtils.mergeRefs(popperElementRef, ref),
155
165
  parents: menuParents,
156
- style: Object.assign(Object.assign({}, props.style), (_Object$assign = {}, _Object$assign[classname.getPrefixStyleVar('dropdown-menu-item-width')] = width + "px", _Object$assign)),
166
+ style: Object.assign(Object.assign({}, props.style), (_Object$assign = {}, _Object$assign[classname.getPrefixStyleVar('dropdown-menu-width')] = typeAssertion.isNumeric(width) ? width + 'px' : width, _Object$assign)),
157
167
  popper: Object.assign(Object.assign(Object.assign({}, popper), props.popper), {
158
168
  closeOnOutsideClick: true,
159
169
  visible: menuVisible,
@@ -1 +1 @@
1
- {"version":3,"file":"use-dropdown.js","sources":["../../src/use-dropdown.tsx"],"sourcesContent":[null],"names":["NOOP_ARRAY","useDropdown","props","trigger","triggerProp","TriggerActionEnum","HOVER","disabled","parents","width","popper","rest","triggerElementRef","useRef","popperElementRef","normalizeTrigger","triggerMethods","useMemo","useUncontrolledToggle","defaultVisible","menuVisible","menuVisibleAction","hoveringRef","useTimeout","on","startOpenTimer","start","clearOpenTimer","clear","current","off","startCloseTimer","clearCloseTimer","clearToggleTimer","useCallback","useUnmountEffect","handlePopperLeave","useLatestCallback","evt","handlePopperEnter","eventHandler","reduce","acc","cur","onMouseEnter","onMouseLeave","CONTEXTMENU","onContextMenu","preventDefault","not","CLICK","onClick","getTriggerProps","ref","rootProps","getMenuProps","menuParents","concat","menuProps","mergeRefs","style","getPrefixStyleVar","closeOnOutsideClick","visible","attachEl","onClose","includes"],"mappings":"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"}
1
+ {"version":3,"file":"use-dropdown.js","sources":["../../src/use-dropdown.tsx"],"sourcesContent":[null],"names":["NOOP_ARRAY","useDropdown","props","trigger","triggerProp","TriggerActionEnum","HOVER","disabled","parents","width","popper","rest","triggerElementRef","useRef","popperElementRef","normalizeTrigger","triggerMethods","useMemo","useUncontrolledToggle","defaultVisible","menuVisible","menuVisibleAction","hoveringRef","useTimeout","on","startOpenTimer","start","clearOpenTimer","clear","current","off","startCloseTimer","clearCloseTimer","clearToggleTimer","useCallback","useUnmountEffect","handlePopperLeave","useLatestCallback","evt","handlePopperEnter","getTriggerProps","ref","triggerProps","mergeRefs","reduce","acc","cur","onMouseEnter","mockDefaultHandlers","onMouseLeave","CONTEXTMENU","onContextMenu","preventDefault","not","CLICK","onClick","rootProps","getMenuProps","menuParents","concat","menuProps","style","getPrefixStyleVar","isNumeric","closeOnOutsideClick","visible","attachEl","onClose","includes"],"mappings":"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"}
@@ -23,7 +23,12 @@ var _prefix = getPrefixCls(_role);
23
23
 
24
24
  var DEFAULT_DATA = [];
25
25
  /**
26
- * TODO: What is Dropdown
26
+ * 下拉菜单
27
+ *
28
+ * TODO:
29
+ * 1. 支持自定义icon
30
+ * 2. 支持 titleRender
31
+ * 3. 支持 onClick 阻止默认行为关闭
27
32
  */
28
33
 
29
34
  var Dropdown = /*#__PURE__*/forwardRef(function (_a, ref) {
@@ -40,7 +45,8 @@ var Dropdown = /*#__PURE__*/forwardRef(function (_a, ref) {
40
45
  _onClick = _a.onClick,
41
46
  onButtonClick = _a.onButtonClick,
42
47
  overlayClassName = _a.overlayClassName,
43
- rest = __rest(_a, ["prefixCls", "role", "className", "children", "data", "title", "type", "onClick", "onButtonClick", "overlayClassName"]);
48
+ triggerButton = _a.triggerButton,
49
+ rest = __rest(_a, ["prefixCls", "role", "className", "children", "data", "title", "type", "onClick", "onButtonClick", "overlayClassName", "triggerButton"]);
44
50
 
45
51
  var _b = useDropdown(rest),
46
52
  rootProps = _b.rootProps,
@@ -87,23 +93,40 @@ var Dropdown = /*#__PURE__*/forwardRef(function (_a, ref) {
87
93
  });
88
94
  };
89
95
 
96
+ var renderButton = function renderButton() {
97
+ if (triggerButton) {
98
+ // @ts-ignore
99
+ return /*#__PURE__*/cloneElement(triggerButton, getTriggerProps(triggerButton.props, triggerButton.ref));
100
+ }
101
+
102
+ if (type === 'text' || type === 'button') {
103
+ return /*#__PURE__*/React.createElement(Button, Object.assign({}, getTriggerProps(), {
104
+ appearance: type === 'button' ? 'flat' : 'link'
105
+ }), title, /*#__PURE__*/React.createElement(DownOutlined, {
106
+ style: {
107
+ marginInlineStart: 2
108
+ }
109
+ }));
110
+ }
111
+
112
+ if (type === 'group') {
113
+ return /*#__PURE__*/React.createElement(ButtonGroup, null, /*#__PURE__*/React.createElement(Button, {
114
+ onClick: onButtonClick
115
+ }, title), /*#__PURE__*/React.createElement(Button, Object.assign({
116
+ className: cx(prefixCls + "__icon", prefixCls + "__icon-btn-wrap")
117
+ }, getTriggerProps()), /*#__PURE__*/React.createElement(DownOutlined, null)));
118
+ }
119
+
120
+ return null;
121
+ };
122
+
90
123
  return /*#__PURE__*/React.createElement(DropDownProvider, {
91
124
  value: providedValue
92
125
  }, /*#__PURE__*/React.createElement("div", Object.assign({
93
126
  ref: ref,
94
127
  role: role,
95
128
  className: cls
96
- }, rootProps), type === 'text' || type === 'button' ? /*#__PURE__*/React.createElement(Button, Object.assign({}, getTriggerProps(), {
97
- appearance: type === 'button' ? 'flat' : 'link'
98
- }), title, /*#__PURE__*/React.createElement(DownOutlined, {
99
- style: {
100
- marginInlineStart: 2
101
- }
102
- })) : null, type === 'group' ? /*#__PURE__*/React.createElement(ButtonGroup, null, /*#__PURE__*/React.createElement(Button, {
103
- onClick: onButtonClick
104
- }, title), /*#__PURE__*/React.createElement(Button, Object.assign({
105
- className: cx(prefixCls + "__icon", prefixCls + "__icon-btn-wrap")
106
- }, getTriggerProps()), /*#__PURE__*/React.createElement(DownOutlined, null))) : null, isArrayNonEmpty(data) ? /*#__PURE__*/React.createElement(DropdownMenu, Object.assign({}, getMenuProps({
129
+ }, rootProps), renderButton(), isArrayNonEmpty(data) ? /*#__PURE__*/React.createElement(DropdownMenu, Object.assign({}, getMenuProps({
107
130
  popper: {
108
131
  disabledPortal: false,
109
132
  className: overlayClassName
@@ -115,43 +138,14 @@ if (__DEV__) {
115
138
  Dropdown.displayName = 'Dropdown';
116
139
  }
117
140
 
118
- var dropdownButtonPrefix = getPrefixCls('dropdown-button');
119
- /**
120
- * TODO: What is DropdownButton
121
- */
122
-
123
- var DropdownButton = /*#__PURE__*/forwardRef(function (_a, ref) {
124
- var _a$prefixCls2 = _a.prefixCls,
125
- prefixCls = _a$prefixCls2 === void 0 ? dropdownButtonPrefix : _a$prefixCls2,
126
- _a$role2 = _a.role,
127
- role = _a$role2 === void 0 ? _role : _a$role2,
128
- className = _a.className,
129
- children = _a.children,
130
- rest = __rest(_a, ["prefixCls", "role", "className", "children"]);
131
-
132
- var _useDropDownContext = useDropDownContext(),
133
- getTriggerProps = _useDropDownContext.getTriggerProps;
134
-
135
- var triggerProps = getTriggerProps();
136
- var cls = cx(prefixCls, className);
137
- return /*#__PURE__*/React.createElement("div", Object.assign({
138
- role: role,
139
- className: cls
140
- }, rest, triggerProps), children);
141
- });
142
-
143
- if (__DEV__) {
144
- DropdownButton.displayName = 'DropdownButton';
145
- }
146
-
147
141
  var dropdownMenuPrefix = getPrefixCls('dropdown-menu');
148
142
  /**
149
143
  * TODO: What is DropdownMenu
150
144
  */
151
145
 
152
146
  var DropdownMenu = /*#__PURE__*/forwardRef(function (_a, ref) {
153
- var _a$prefixCls3 = _a.prefixCls,
154
- prefixCls = _a$prefixCls3 === void 0 ? dropdownMenuPrefix : _a$prefixCls3,
147
+ var _a$prefixCls2 = _a.prefixCls,
148
+ prefixCls = _a$prefixCls2 === void 0 ? dropdownMenuPrefix : _a$prefixCls2,
155
149
  popper = _a.popper,
156
150
  parents = _a.parents,
157
151
  className = _a.className,
@@ -179,8 +173,8 @@ var dropdownMenuItemPrefix = getPrefixCls('dropdown-menu-item');
179
173
  */
180
174
 
181
175
  var DropdownMenuItem = /*#__PURE__*/forwardRef(function (_a, ref) {
182
- var _a$prefixCls4 = _a.prefixCls,
183
- prefixCls = _a$prefixCls4 === void 0 ? dropdownMenuItemPrefix : _a$prefixCls4,
176
+ var _a$prefixCls3 = _a.prefixCls,
177
+ prefixCls = _a$prefixCls3 === void 0 ? dropdownMenuItemPrefix : _a$prefixCls3,
184
178
  className = _a.className,
185
179
  children = _a.children,
186
180
  href = _a.href,
@@ -190,9 +184,9 @@ var DropdownMenuItem = /*#__PURE__*/forwardRef(function (_a, ref) {
190
184
  menu = _a.menu,
191
185
  rest = __rest(_a, ["prefixCls", "role", "className", "children", "href", "value", "target", "disabled", "parents", "menu"]);
192
186
 
193
- var _useDropDownContext2 = useDropDownContext(),
194
- triggerMethods = _useDropDownContext2.triggerMethods,
195
- width = _useDropDownContext2.width;
187
+ var _useDropDownContext = useDropDownContext(),
188
+ triggerMethods = _useDropDownContext.triggerMethods,
189
+ width = _useDropDownContext.width;
196
190
 
197
191
  var _useDropdown = useDropdown(Object.assign(Object.assign({
198
192
  popper: {
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","sources":["../../src/Dropdown.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","DEFAULT_DATA","Dropdown","forwardRef","_a","ref","prefixCls","role","className","data","title","type","onClick","onButtonClick","overlayClassName","rest","_b","useDropdown","rootProps","providedValue","getMenuProps","getTriggerProps","disabled","menuVisibleAction","cls","cx","dig","treeData","map","item","menu","isArrayNonEmpty","children","React","DropdownMenu","popper","gutterGap","shouldRenderDivider","key","id","DropdownMenuItem","href","target","value","isArray","off","DropDownProvider","Button","appearance","DownOutlined","style","marginInlineStart","ButtonGroup","disabledPortal","__DEV__","displayName","dropdownButtonPrefix","DropdownButton","useDropDownContext","triggerProps","dropdownMenuPrefix","parents","PopperPortal","Children","child","cloneElement","dropdownMenuItemPrefix","parentsProp","triggerMethods","width","placement","trigger","shouldUseLink","props"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","sources":["../../src/Dropdown.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","DEFAULT_DATA","Dropdown","forwardRef","_a","ref","prefixCls","role","className","data","title","type","onClick","onButtonClick","overlayClassName","triggerButton","rest","_b","useDropdown","rootProps","providedValue","getMenuProps","getTriggerProps","disabled","menuVisibleAction","cls","cx","dig","treeData","map","item","menu","isArrayNonEmpty","children","React","DropdownMenu","popper","gutterGap","shouldRenderDivider","key","id","DropdownMenuItem","href","target","value","isArray","off","renderButton","cloneElement","props","Button","appearance","DownOutlined","style","marginInlineStart","ButtonGroup","DropDownProvider","disabledPortal","__DEV__","displayName","dropdownMenuPrefix","parents","PopperPortal","Children","child","dropdownMenuItemPrefix","parentsProp","useDropDownContext","triggerMethods","width","placement","trigger","shouldUseLink"],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
- var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-dropdown-menu {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n background-color: #fff;\n background-color: var(--hi-v4-color-static-white, #fff);\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px);\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n padding: 8px;\n padding: var(--hi-v4-spacing-4, 8px);\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733); }\n.hi-v4-dropdown-menu-item {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n list-style: none;\n width: 200px;\n width: var(--hi-v4-dropdown-menu-item-width, 200px);\n margin: 0;\n box-sizing: border-box;\n overflow: visible; }\n.hi-v4-dropdown-menu-item__link {\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733);\n width: 100%;\n text-decoration: none;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n.hi-v4-dropdown-menu-item__trigger {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n cursor: pointer;\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px);\n padding: 10px 12px;\n padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-6, 12px);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.hi-v4-dropdown-menu-item__trigger:hover {\n background-color: #f2f4f7;\n background-color: var(--hi-v4-color-gray-100, #f2f4f7); }\n.hi-v4-dropdown-divider {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n list-style: none;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n width: 100%;\n height: 1px;\n margin: 8px 0;\n margin: var(--hi-v4-spacing-4, 8px) 0; }\n";
10
+ var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-dropdown-menu {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n background-color: #fff;\n background-color: var(--hi-v4-color-static-white, #fff);\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px);\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n padding: 8px;\n padding: var(--hi-v4-spacing-4, 8px);\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733);\n width: 180px;\n width: var(--hi-v4-dropdown-menu-width, 180px); }\n.hi-v4-dropdown-menu-item {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n list-style: none;\n margin: 0;\n box-sizing: border-box;\n overflow: visible; }\n.hi-v4-dropdown-menu-item__link {\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733);\n width: 100%;\n text-decoration: none;\n -webkit-box-sizing: border-box;\n box-sizing: border-box; }\n.hi-v4-dropdown-menu-item__trigger {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n cursor: pointer;\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px);\n padding: 10px 12px;\n padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-6, 12px);\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center; }\n.hi-v4-dropdown-menu-item__trigger:hover {\n background-color: #f2f4f7;\n background-color: var(--hi-v4-color-gray-100, #f2f4f7); }\n.hi-v4-dropdown-divider {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n list-style: none;\n background-color: #ebedf0;\n background-color: var(--hi-v4-color-gray-200, #ebedf0);\n width: 100%;\n height: 1px;\n margin: 8px 0;\n margin: var(--hi-v4-spacing-4, 8px) 0; }\n";
11
11
 
12
12
  var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
13
13
 
@@ -17,6 +17,8 @@ import { useTimeout } from '@hi-ui/use-timeout';
17
17
  import { useUnmountEffect } from '@hi-ui/use-unmount-effect';
18
18
  import { getPrefixStyleVar } from '@hi-ui/classname';
19
19
  import { mergeRefs } from '@hi-ui/react-utils';
20
+ import { mockDefaultHandlers } from '@hi-ui/dom-utils';
21
+ import { isNumeric } from '@hi-ui/type-assertion';
20
22
  var NOOP_ARRAY = [];
21
23
 
22
24
  var useDropdown = function useDropdown(props) {
@@ -86,41 +88,47 @@ var useDropdown = function useDropdown(props) {
86
88
  hoveringRef.current = true;
87
89
  startOpenTimer();
88
90
  });
89
- /**
90
- * 事件收集
91
- * 'click' | 'contextmenu' | 'hover'
92
- */
91
+ var getTriggerProps = useCallback(function (props, ref) {
92
+ if (props === void 0) {
93
+ props = {};
94
+ }
93
95
 
94
- var eventHandler = useMemo(function () {
95
- return triggerMethods.reduce(function (acc, cur) {
96
+ if (ref === void 0) {
97
+ ref = null;
98
+ }
99
+
100
+ var triggerProps = {
101
+ ref: mergeRefs(triggerElementRef, ref),
102
+ disabled: disabled
103
+ };
104
+ /**
105
+ * 事件收集
106
+ * 'click' | 'contextmenu' | 'hover'
107
+ */
108
+
109
+ triggerMethods.reduce(function (acc, cur) {
96
110
  switch (cur) {
97
111
  case TriggerActionEnum.HOVER:
98
- acc.onMouseEnter = handlePopperEnter;
99
- acc.onMouseLeave = handlePopperLeave;
112
+ acc.onMouseEnter = mockDefaultHandlers(props.onMouseEnter, handlePopperEnter);
113
+ acc.onMouseLeave = mockDefaultHandlers(props.onMouseLeave, handlePopperLeave);
100
114
  break;
101
115
 
102
116
  case TriggerActionEnum.CONTEXTMENU:
103
- acc.onContextMenu = function (evt) {
117
+ acc.onContextMenu = mockDefaultHandlers(props.onContextMenu, function (evt) {
104
118
  evt.preventDefault();
105
119
  menuVisibleAction.not();
106
- };
107
-
120
+ });
108
121
  break;
109
122
 
110
123
  case TriggerActionEnum.CLICK:
111
- acc.onClick = menuVisibleAction.not;
124
+ acc.onClick = mockDefaultHandlers(props.onClick, menuVisibleAction.not);
112
125
  break;
113
126
  }
114
127
 
115
128
  return acc;
116
- }, {});
117
- }, [triggerMethods, menuVisibleAction, handlePopperEnter, handlePopperLeave]);
118
- var getTriggerProps = useCallback(function () {
119
- return Object.assign({
120
- ref: triggerElementRef,
121
- disabled: disabled
122
- }, eventHandler);
123
- }, [eventHandler, disabled]);
129
+ }, triggerProps);
130
+ return triggerProps;
131
+ }, [disabled, triggerMethods, menuVisibleAction, handlePopperEnter, handlePopperLeave]);
124
132
  var rootProps = rest;
125
133
  var getMenuProps = useLatestCallback(function (props, ref) {
126
134
  var _Object$assign;
@@ -137,7 +145,7 @@ var useDropdown = function useDropdown(props) {
137
145
  var menuProps = Object.assign(Object.assign({}, props), {
138
146
  ref: mergeRefs(popperElementRef, ref),
139
147
  parents: menuParents,
140
- style: Object.assign(Object.assign({}, props.style), (_Object$assign = {}, _Object$assign[getPrefixStyleVar('dropdown-menu-item-width')] = width + "px", _Object$assign)),
148
+ style: Object.assign(Object.assign({}, props.style), (_Object$assign = {}, _Object$assign[getPrefixStyleVar('dropdown-menu-width')] = isNumeric(width) ? width + 'px' : width, _Object$assign)),
141
149
  popper: Object.assign(Object.assign(Object.assign({}, popper), props.popper), {
142
150
  closeOnOutsideClick: true,
143
151
  visible: menuVisible,
@@ -1 +1 @@
1
- {"version":3,"file":"use-dropdown.js","sources":["../../src/use-dropdown.tsx"],"sourcesContent":[null],"names":["NOOP_ARRAY","useDropdown","props","trigger","triggerProp","TriggerActionEnum","HOVER","disabled","parents","width","popper","rest","triggerElementRef","useRef","popperElementRef","normalizeTrigger","triggerMethods","useMemo","useUncontrolledToggle","defaultVisible","menuVisible","menuVisibleAction","hoveringRef","useTimeout","on","startOpenTimer","start","clearOpenTimer","clear","current","off","startCloseTimer","clearCloseTimer","clearToggleTimer","useCallback","useUnmountEffect","handlePopperLeave","useLatestCallback","evt","handlePopperEnter","eventHandler","reduce","acc","cur","onMouseEnter","onMouseLeave","CONTEXTMENU","onContextMenu","preventDefault","not","CLICK","onClick","getTriggerProps","ref","rootProps","getMenuProps","menuParents","concat","menuProps","mergeRefs","style","getPrefixStyleVar","closeOnOutsideClick","visible","attachEl","onClose","includes"],"mappings":"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"}
1
+ {"version":3,"file":"use-dropdown.js","sources":["../../src/use-dropdown.tsx"],"sourcesContent":[null],"names":["NOOP_ARRAY","useDropdown","props","trigger","triggerProp","TriggerActionEnum","HOVER","disabled","parents","width","popper","rest","triggerElementRef","useRef","popperElementRef","normalizeTrigger","triggerMethods","useMemo","useUncontrolledToggle","defaultVisible","menuVisible","menuVisibleAction","hoveringRef","useTimeout","on","startOpenTimer","start","clearOpenTimer","clear","current","off","startCloseTimer","clearCloseTimer","clearToggleTimer","useCallback","useUnmountEffect","handlePopperLeave","useLatestCallback","evt","handlePopperEnter","getTriggerProps","ref","triggerProps","mergeRefs","reduce","acc","cur","onMouseEnter","mockDefaultHandlers","onMouseLeave","CONTEXTMENU","onContextMenu","preventDefault","not","CLICK","onClick","rootProps","getMenuProps","menuParents","concat","menuProps","style","getPrefixStyleVar","isNumeric","closeOnOutsideClick","visible","attachEl","onClose","includes"],"mappings":"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"}
@@ -1,9 +1,15 @@
1
1
  import React from 'react';
2
2
  import { HiBaseHTMLProps } from '@hi-ui/core';
3
+ import { PopperPortalProps } from '@hi-ui/popper';
3
4
  import { UseDropdownProps } from './use-dropdown';
4
5
  import { DropdownDataItem } from './types';
5
6
  /**
6
- * TODO: What is Dropdown
7
+ * 下拉菜单
8
+ *
9
+ * TODO:
10
+ * 1. 支持自定义icon
11
+ * 2. 支持 titleRender
12
+ * 3. 支持 onClick 阻止默认行为关闭
7
13
  */
8
14
  export declare const Dropdown: React.ForwardRefExoticComponent<DropdownProps & React.RefAttributes<HTMLDivElement | null>>;
9
15
  export interface DropdownProps extends Omit<HiBaseHTMLProps<'div'>, 'onClick'>, UseDropdownProps {
@@ -35,4 +41,17 @@ export interface DropdownProps extends Omit<HiBaseHTMLProps<'div'>, 'onClick'>,
35
41
  * 下拉根元素的类名称
36
42
  */
37
43
  overlayClassName?: string;
44
+ /**
45
+ * 自定义下拉菜单触发按钮
46
+ * 注意:自定义按钮需要支持 ref 获取元素 dom 引用 以及 trigger 对应的事件:
47
+ *
48
+ * hover: onMouseEnter \ onMouseLeave
49
+ * click: onClick
50
+ * contextmenu: onContextMenu
51
+ */
52
+ triggerButton?: React.ReactElement;
53
+ /**
54
+ * 自定义控制 下拉 popper 行为
55
+ */
56
+ popper?: Omit<PopperPortalProps, 'visible' | 'attachEl'>;
38
57
  }
@@ -14,7 +14,10 @@ export declare const useDropdown: (props: UseDropdownProps) => {
14
14
  };
15
15
  triggerElementRef: React.RefObject<HTMLElement>;
16
16
  triggerMethods: TriggerActionEnum[];
17
- getTriggerProps: () => any;
17
+ getTriggerProps: (props?: any, ref?: any) => {
18
+ ref: ((value: HTMLElement | null) => void) | null;
19
+ disabled: boolean;
20
+ };
18
21
  getMenuProps: (props?: any, ref?: any) => any;
19
22
  };
20
23
  export interface UseDropdownProps {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/dropdown",
3
- "version": "4.0.0-alpha.3",
3
+ "version": "4.0.0-alpha.7",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HIUI <mi-hiui@xiaomi.com>",
@@ -43,13 +43,14 @@
43
43
  "url": "https://github.com/XiaoMi/hiui/issues"
44
44
  },
45
45
  "dependencies": {
46
- "@hi-ui/button": "^4.0.0-alpha.17",
46
+ "@hi-ui/button": "^4.0.0-alpha.19",
47
47
  "@hi-ui/classname": "^4.0.0-alpha.3",
48
- "@hi-ui/core": "^4.0.0-alpha.14",
49
- "@hi-ui/core-css": "^4.0.0-alpha.10",
48
+ "@hi-ui/core": "^4.0.0-alpha.16",
49
+ "@hi-ui/core-css": "^4.0.0-alpha.12",
50
+ "@hi-ui/dom-utils": "^4.0.0-alpha.6",
50
51
  "@hi-ui/env": "^4.0.0-alpha.5",
51
- "@hi-ui/icons": "^4.0.0-alpha.20",
52
- "@hi-ui/popper": "^4.0.0-alpha.17",
52
+ "@hi-ui/icons": "^4.0.0-alpha.23",
53
+ "@hi-ui/popper": "^4.0.0-alpha.19",
53
54
  "@hi-ui/react-utils": "^4.0.0-alpha.6",
54
55
  "@hi-ui/type-assertion": "^4.0.0-alpha.13",
55
56
  "@hi-ui/use-latest": "^4.0.0-alpha.4",
@@ -66,5 +67,5 @@
66
67
  "react": "^17.0.1",
67
68
  "react-dom": "^17.0.1"
68
69
  },
69
- "gitHead": "dbe7ec19bc067527f0cfcf8c71100619fc98cc72"
70
+ "gitHead": "3b991dda3ffcbe843fc06b3c3c781ce870cb7adc"
70
71
  }