@qsxy/element-plus-react 1.0.2 → 1.0.3

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.
Files changed (216) hide show
  1. package/dist/Alert/Alert.d.ts +7 -0
  2. package/dist/Alert/Alert.js +98 -0
  3. package/dist/Alert/index.d.ts +2 -0
  4. package/dist/Alert/index.js +1 -0
  5. package/dist/Alert/typings.d.ts +45 -0
  6. package/dist/Alert/typings.js +1 -0
  7. package/dist/Card/Card.js +5 -3
  8. package/dist/Cascader/useCascader.d.ts +0 -14
  9. package/dist/Cascader/useCascader.js +33 -32
  10. package/dist/Checkbox/Checkbox.js +3 -2
  11. package/dist/ConfigProvider/ConfigProvider.js +2 -24
  12. package/dist/ConfigProvider/ConfigProviderContext.js +1 -1
  13. package/dist/ConfigProvider/typings.d.ts +1 -1
  14. package/dist/Container/Main.d.ts +1 -1
  15. package/dist/Container/typings.d.ts +1 -1
  16. package/dist/Dialog/Dialog.js +5 -12
  17. package/dist/Input/Input.js +68 -43
  18. package/dist/Input/TextArea.js +1 -1
  19. package/dist/Input/typings.d.ts +42 -1
  20. package/dist/Input/utils.d.ts +1 -0
  21. package/dist/Input/utils.js +5 -1
  22. package/dist/InputNumber/InputNumber.js +351 -141
  23. package/dist/InputNumber/typings.d.ts +15 -1
  24. package/dist/Loading/Loading.js +5 -2
  25. package/dist/Menu/Menu.js +25 -1
  26. package/dist/Menu/MenuItem.js +4 -2
  27. package/dist/Menu/SubMenu.js +2 -2
  28. package/dist/Menu/SubMenuCollapseTransition.js +14 -9
  29. package/dist/Menu/typings.d.ts +2 -1
  30. package/dist/Message/Message.js +51 -23
  31. package/dist/Message/index.js +8 -10
  32. package/dist/Message/typings.d.ts +8 -5
  33. package/dist/MessageBox/MessageBox.js +52 -30
  34. package/dist/MessageBox/index.d.ts +2 -1
  35. package/dist/MessageBox/index.js +4 -2
  36. package/dist/MessageBox/typings.d.ts +3 -0
  37. package/dist/Notification/Notification.js +26 -19
  38. package/dist/Select/SelectContext.d.ts +2 -1
  39. package/dist/Select/SelectContext.js +2 -1
  40. package/dist/Select/SelectCore.js +13 -7
  41. package/dist/Select/SelectDropdown.js +23 -15
  42. package/dist/Select/index.d.ts +1 -1
  43. package/dist/Select/typings.d.ts +13 -9
  44. package/dist/Select/useSelect.d.ts +13 -10
  45. package/dist/Select/useSelect.js +34 -26
  46. package/dist/Space/Space.d.ts +4 -0
  47. package/dist/Space/Space.js +128 -0
  48. package/dist/Space/SpaceItem.d.ts +7 -0
  49. package/dist/Space/SpaceItem.js +14 -0
  50. package/dist/Space/index.d.ts +3 -0
  51. package/dist/Space/index.js +2 -0
  52. package/dist/Space/typings.d.ts +26 -0
  53. package/dist/Space/typings.js +1 -0
  54. package/dist/Space/useSpace.d.ts +7 -0
  55. package/dist/Space/useSpace.js +104 -0
  56. package/dist/Statistic/Statistic.d.ts +4 -0
  57. package/dist/Statistic/Statistic.js +92 -0
  58. package/dist/Statistic/index.d.ts +2 -0
  59. package/dist/Statistic/index.js +1 -0
  60. package/dist/Statistic/typings.d.ts +28 -0
  61. package/dist/Statistic/typings.js +1 -0
  62. package/dist/Switch/Switch.js +2 -2
  63. package/dist/Table/Table.js +3 -0
  64. package/dist/Table/typings.d.ts +2 -0
  65. package/dist/Tag/typings.d.ts +1 -1
  66. package/dist/Text/Text.d.ts +4 -0
  67. package/dist/Text/Text.js +84 -0
  68. package/dist/Text/index.d.ts +2 -0
  69. package/dist/Text/index.js +1 -0
  70. package/dist/Text/typings.d.ts +15 -0
  71. package/dist/Text/typings.js +1 -0
  72. package/dist/Tree/CollapseTransition.d.ts +7 -0
  73. package/dist/Tree/CollapseTransition.js +60 -0
  74. package/dist/Tree/Tree.d.ts +3 -140
  75. package/dist/Tree/Tree.js +350 -77
  76. package/dist/Tree/TreeContext.d.ts +9 -0
  77. package/dist/Tree/TreeContext.js +14 -0
  78. package/dist/Tree/TreeNode.d.ts +5 -3
  79. package/dist/Tree/TreeNode.js +321 -331
  80. package/dist/Tree/TreeNodeContent.d.ts +9 -0
  81. package/dist/Tree/TreeNodeContent.js +22 -0
  82. package/dist/Tree/index.d.ts +3 -8
  83. package/dist/Tree/index.js +1 -4
  84. package/dist/Tree/model/node.d.ts +62 -0
  85. package/dist/Tree/model/node.js +601 -0
  86. package/dist/Tree/model/tree-store.d.ts +52 -0
  87. package/dist/Tree/model/tree-store.js +510 -0
  88. package/dist/Tree/model/useDragNode.d.ts +30 -0
  89. package/dist/Tree/model/useDragNode.js +293 -0
  90. package/dist/Tree/model/useKeydown.d.ts +0 -0
  91. package/dist/Tree/model/useKeydown.js +104 -0
  92. package/dist/Tree/model/useNodeExpandEventBroadcast.d.ts +15 -0
  93. package/dist/Tree/model/useNodeExpandEventBroadcast.js +54 -0
  94. package/dist/Tree/model/util.d.ts +7 -0
  95. package/dist/Tree/model/util.js +24 -0
  96. package/dist/Tree/typings.d.ts +225 -114
  97. package/dist/TreeSelect/TreeSelect.d.ts +2 -10
  98. package/dist/TreeSelect/TreeSelect.js +90 -566
  99. package/dist/TreeSelect/TreeSelectOption.d.ts +6 -0
  100. package/dist/TreeSelect/TreeSelectOption.js +62 -0
  101. package/dist/TreeSelect/cacheOptions.d.ts +9 -0
  102. package/dist/TreeSelect/cacheOptions.js +22 -0
  103. package/dist/TreeSelect/index.d.ts +0 -1
  104. package/dist/TreeSelect/typings.d.ts +11 -63
  105. package/dist/TreeSelect/useSelect.d.ts +125 -0
  106. package/dist/TreeSelect/useSelect.js +104 -0
  107. package/dist/TreeSelect/useTree.d.ts +130 -0
  108. package/dist/TreeSelect/useTree.js +285 -0
  109. package/dist/TreeSelect/utils.d.ts +10 -0
  110. package/dist/TreeSelect/utils.js +38 -0
  111. package/dist/Upload/UploadContent.js +2 -0
  112. package/dist/Upload/ajax.js +3 -0
  113. package/dist/Upload/typings.d.ts +4 -0
  114. package/dist/Util/aria.js +12 -12
  115. package/dist/Util/base.d.ts +5 -0
  116. package/dist/Util/base.js +140 -1
  117. package/dist/config/Constants.d.ts +3 -0
  118. package/dist/config/Constants.js +8 -0
  119. package/dist/hooks/index.d.ts +1 -0
  120. package/dist/hooks/index.js +1 -0
  121. package/dist/hooks/popperPropsUtils.js +1 -1
  122. package/dist/hooks/treePropsUtils.d.ts +3 -3
  123. package/dist/hooks/treePropsUtils.js +2 -2
  124. package/dist/hooks/useConfigProvider.d.ts +27 -0
  125. package/dist/hooks/useConfigProvider.js +78 -0
  126. package/dist/hooks/useResizeObserver.js +6 -6
  127. package/dist/index.css +1 -1
  128. package/dist/index.d.ts +18 -11
  129. package/dist/index.js +11 -5
  130. package/package.json +1 -1
  131. package/theme-chalk/alert.scss +115 -0
  132. package/theme-chalk/aside.scss +8 -8
  133. package/theme-chalk/button-group.scss +80 -80
  134. package/theme-chalk/button.scss +304 -304
  135. package/theme-chalk/calendar/date-table.scss +164 -164
  136. package/theme-chalk/checkbox.scss +34 -0
  137. package/theme-chalk/color/index.scss +20 -20
  138. package/theme-chalk/common/transition.scss +142 -142
  139. package/theme-chalk/container.scss +14 -14
  140. package/theme-chalk/dark/css-vars.scss +39 -39
  141. package/theme-chalk/dark/var.scss +225 -225
  142. package/theme-chalk/date-picker.scss +12 -12
  143. package/theme-chalk/drawer.scss +1 -0
  144. package/theme-chalk/footer.scss +12 -12
  145. package/theme-chalk/header.scss +12 -12
  146. package/theme-chalk/index.scss +4 -0
  147. package/theme-chalk/input/input-range.scss +2 -1
  148. package/theme-chalk/input/input.scss +439 -424
  149. package/theme-chalk/input-number.bak +172 -0
  150. package/theme-chalk/input-number.scss +192 -172
  151. package/theme-chalk/link.scss +87 -87
  152. package/theme-chalk/main.scss +14 -14
  153. package/theme-chalk/menu.scss +353 -353
  154. package/theme-chalk/message.scss +104 -178
  155. package/theme-chalk/mixins/_button.scss +224 -224
  156. package/theme-chalk/mixins/_col.scss +33 -33
  157. package/theme-chalk/mixins/_var.scss +67 -67
  158. package/theme-chalk/mixins/config.scss +5 -5
  159. package/theme-chalk/mixins/function.scss +99 -99
  160. package/theme-chalk/mixins/mixins.scss +240 -240
  161. package/theme-chalk/mixins/utils.scss +39 -39
  162. package/theme-chalk/notification.bak +156 -0
  163. package/theme-chalk/notification.scss +109 -156
  164. package/theme-chalk/popper.scss +104 -104
  165. package/theme-chalk/radio-button.scss +169 -169
  166. package/theme-chalk/select/index.scss +278 -272
  167. package/theme-chalk/space.scss +20 -0
  168. package/theme-chalk/statistic.scss +35 -0
  169. package/theme-chalk/switch.scss +300 -300
  170. package/theme-chalk/tag.scss +181 -181
  171. package/theme-chalk/text.scss +48 -0
  172. package/theme-chalk/transition.scss +34 -4
  173. package/theme-chalk/tree-select.scss +41 -25
  174. package/theme-chalk/tree.scss +136 -0
  175. package/theme-chalk/var.scss +83 -83
  176. package/dist/Input/Input.1.d.ts +0 -16
  177. package/dist/Input/Input.1.js +0 -376
  178. package/dist/Tree/DirectoryTree.d.ts +0 -15
  179. package/dist/Tree/DirectoryTree.js +0 -183
  180. package/dist/Tree/DropIndicator.d.ts +0 -8
  181. package/dist/Tree/DropIndicator.js +0 -34
  182. package/dist/Tree/Indent.d.ts +0 -9
  183. package/dist/Tree/Indent.js +0 -25
  184. package/dist/Tree/MotionTreeNode.d.ts +0 -14
  185. package/dist/Tree/MotionTreeNode.js +0 -125
  186. package/dist/Tree/NodeList.d.ts +0 -50
  187. package/dist/Tree/NodeList.js +0 -301
  188. package/dist/Tree/RCTree.d.ts +0 -248
  189. package/dist/Tree/RCTree.js +0 -1216
  190. package/dist/Tree/contextTypes.d.ts +0 -69
  191. package/dist/Tree/contextTypes.js +0 -9
  192. package/dist/Tree/typings.tsx--bak +0 -245
  193. package/dist/Tree/useUnmount.d.ts +0 -5
  194. package/dist/Tree/useUnmount.js +0 -34
  195. package/dist/Tree/util.d.ts +0 -51
  196. package/dist/Tree/util.js +0 -303
  197. package/dist/Tree/utils/conductUtil.d.ts +0 -17
  198. package/dist/Tree/utils/conductUtil.js +0 -209
  199. package/dist/Tree/utils/dictUtil.d.ts +0 -13
  200. package/dist/Tree/utils/dictUtil.js +0 -75
  201. package/dist/Tree/utils/diffUtil.d.ts +0 -7
  202. package/dist/Tree/utils/diffUtil.js +0 -48
  203. package/dist/Tree/utils/dropIndicator.d.ts +0 -11
  204. package/dist/Tree/utils/dropIndicator.js +0 -36
  205. package/dist/Tree/utils/iconUtil.d.ts +0 -5
  206. package/dist/Tree/utils/iconUtil.js +0 -62
  207. package/dist/Tree/utils/keyUtil.d.ts +0 -2
  208. package/dist/Tree/utils/keyUtil.js +0 -3
  209. package/dist/Tree/utils/motion.d.ts +0 -10
  210. package/dist/Tree/utils/motion.js +0 -54
  211. package/dist/Tree/utils/pickAttrs.d.ts +0 -11
  212. package/dist/Tree/utils/pickAttrs.js +0 -51
  213. package/dist/Tree/utils/treeUtil.d.ts +0 -86
  214. package/dist/Tree/utils/treeUtil.js +0 -364
  215. package/dist/TreeSelect/Utils.d.ts +0 -3
  216. package/dist/TreeSelect/Utils.js +0 -20
package/dist/Menu/Menu.js CHANGED
@@ -150,6 +150,29 @@ var Menu = /*#__PURE__*/forwardRef(function (props, ref) {
150
150
  onOpen === null || onOpen === void 0 || onOpen(index, indexPath, item);
151
151
  }, [addItem, collapse, mode, onOpen, removeItem, uniqueOpened]);
152
152
 
153
+ /** 激活菜单项 */
154
+ var activeMenu = useCallback(function (index) {
155
+ var menu = menuItemsRef.current.find(function (item) {
156
+ return item.index === index;
157
+ });
158
+ if (menu && menu.indexPath.length > 1) {
159
+ setActive(menu.indexPath);
160
+ menu.indexPath.reduce(function (prev, item) {
161
+ handleOpenMenu(item, [].concat(_toConsumableArray(prev), [item]), {
162
+ index: item,
163
+ indexPath: [].concat(_toConsumableArray(prev), [item])
164
+ });
165
+ return [].concat(_toConsumableArray(prev), [item]);
166
+ }, []);
167
+ } else {
168
+ setActive([]);
169
+ subMenuRef.current.forEach(function (item) {
170
+ item.closeMenu(item.index, item.indexPath);
171
+ removeItem(item);
172
+ });
173
+ }
174
+ }, [handleOpenMenu, removeItem, setActive]);
175
+
153
176
  /** 激活菜单项 */
154
177
  var activeMenus = useCallback(function () {
155
178
  if (defaultActive) {
@@ -237,7 +260,8 @@ var Menu = /*#__PURE__*/forwardRef(function (props, ref) {
237
260
  useImperativeHandle(ref, function () {
238
261
  return {
239
262
  open: open,
240
- close: close
263
+ close: close,
264
+ activeMenu: activeMenu
241
265
  };
242
266
  });
243
267
  return (
@@ -47,11 +47,13 @@ var MenuItem = function MenuItem(props) {
47
47
  });
48
48
  onOpen === null || onOpen === void 0 || onOpen(index, indexPath, {
49
49
  index: index,
50
- indexPath: indexPath
50
+ indexPath: indexPath,
51
+ route: route
51
52
  });
52
53
  onSelect === null || onSelect === void 0 || onSelect(index, indexPath, {
53
54
  index: index,
54
- indexPath: indexPath
55
+ indexPath: indexPath,
56
+ route: route
55
57
  });
56
58
  if (router) {
57
59
  navigate === null || navigate === void 0 || navigate(route !== null && route !== void 0 ? route : index);
@@ -248,7 +248,7 @@ var SubMenu = function SubMenu(props) {
248
248
  name: "el-menu-collapse",
249
249
  nodeRef: ulRef,
250
250
  disabled: disabled,
251
- duration: 300,
251
+ duration: 10,
252
252
  visible: expand,
253
253
  beforeEnter: beforeEnter,
254
254
  onEnter: onEnter,
@@ -258,7 +258,7 @@ var SubMenu = function SubMenu(props) {
258
258
  afterLeave: afterLeave
259
259
  }, /*#__PURE__*/React.createElement("ul", {
260
260
  ref: ulRef,
261
- className: classNames(mb(), mm(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["inline"])))),
261
+ className: classNames(mb(), mm(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["inline"]))), 'collapse-transition'),
262
262
  style: {
263
263
  '--el-menu-level': level
264
264
  }
@@ -4,7 +4,7 @@ export var beforeEnter = function beforeEnter(el) {
4
4
  el.style.opacity = '0';
5
5
  };
6
6
  export var onEnter = function onEnter(el) {
7
- addClass(el, 'collapse-transition');
7
+ // addClass(el, 'collapse-transition');
8
8
  el.dataset.oldOverflow = el.style.overflow;
9
9
  if (el.scrollHeight !== 0) {
10
10
  el.style.height = "".concat(el.scrollHeight, "px");
@@ -16,12 +16,14 @@ export var onEnter = function onEnter(el) {
16
16
  addClass(closest(el, 'li'), 'open');
17
17
  };
18
18
  export var afterEnter = function afterEnter(el) {
19
- removeClass(el, 'collapse-transition');
20
- el.style.height = '';
21
- el.style.overflow = el.dataset.oldOverflow;
19
+ // removeClass(el, 'collapse-transition');
20
+ setTimeout(function () {
21
+ el.style.height = '';
22
+ el.style.overflow = el.dataset.oldOverflow;
23
+ }, 300);
22
24
  };
23
25
  export var beforeLeave = function beforeLeave(el) {
24
- addClass(el, 'collapse-transition');
26
+ // addClass(el, 'collapse-transition');
25
27
  if (!el.dataset) {
26
28
  el.dataset = {};
27
29
  }
@@ -35,10 +37,13 @@ export var onLeave = function onLeave(el) {
35
37
  el.style.height = 0;
36
38
  };
37
39
  export var afterLeave = function afterLeave(el) {
38
- el.style.height = '';
39
- el.style.overflow = el.dataset.oldOverflow;
40
- el.style.display = '';
41
- removeClass(closest(el, 'li'), 'open');
40
+ el.style.display = 'block';
41
+ setTimeout(function () {
42
+ el.style.height = '';
43
+ el.style.overflow = el.dataset.oldOverflow;
44
+ el.style.display = '';
45
+ removeClass(closest(el, 'li'), 'open');
46
+ }, 300);
42
47
  };
43
48
  var closest = function closest(el, selector) {
44
49
  var matchesSelector = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector;
@@ -4,6 +4,7 @@ import { BaseProps, NativeProps } from '../types/common';
4
4
  export interface MenuRef {
5
5
  open: MenuOpenEvent;
6
6
  close: MenuCloseEvent;
7
+ activeMenu: (index: string) => void;
7
8
  }
8
9
  export interface MenuProps extends BaseProps, NativeProps<'--el-menu-active-color' | '--el-menu-text-color' | '--el-menu-hover-text-color' | '--el-menu-bg-color' | '--el-menu-hover-bg-color' | '--el-menu-item-height' | '--el-menu-sub-item-height' | '--el-menu-horizontal-height' | '--el-menu-horizontal-sub-item-height' | '--el-menu-item-font-size' | '--el-menu-item-hover-fill' | '--el-menu-border-color' | '--el-menu-base-level-padding' | '--el-menu-level-padding' | '--el-menu-icon-width'> {
9
10
  /** 菜单展示模式 */
@@ -24,7 +25,7 @@ export interface MenuProps extends BaseProps, NativeProps<'--el-menu-active-colo
24
25
  uniqueOpened?: boolean;
25
26
  /** 子菜单打开的触发方式,只在 mode 为 horizontal 时有效 */
26
27
  menuTrigger?: 'hover' | 'click';
27
- /** 是否启用 vue-router 模式。 启用该模式会在激活导航时以 index 作为 path 进行路由跳转 使用 defaultActive 来设置加载时的激活项。 */
28
+ /** 是否启用 react-router 模式。 启用该模式会在激活导航时以 index 作为 path 进行路由跳转 使用 defaultActive 来设置加载时的激活项。 */
28
29
  router?: boolean;
29
30
  /** 是否开启折叠动画 */
30
31
  collapseTransition?: boolean;
@@ -20,9 +20,10 @@ import classNames from 'classnames';
20
20
  import React, { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
21
21
  import { createPortal } from 'react-dom';
22
22
  import Badge from "../Badge/Badge";
23
+ import { Icon } from "../Icon";
23
24
  import Transition from "../Transition/Transition";
24
25
  import { PopupManager, mergeDefaultProps } from "../Util";
25
- import { EVENT_CODE, TypeMap } from "../config/Constants";
26
+ import { EVENT_CODE, TypeComponentsMap } from "../config/Constants";
26
27
  import { useClassNames } from "../hooks";
27
28
  // import { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';
28
29
 
@@ -31,16 +32,18 @@ var Message = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
31
32
  props = mergeDefaultProps({
32
33
  duration: 3000,
33
34
  message: '',
34
- showClose: true,
35
+ showClose: false,
35
36
  type: 'info',
36
- offset: 20
37
+ offset: 20,
38
+ placement: 'top'
37
39
  }, props);
38
40
  var _props = props,
39
41
  _props$classPrefix = _props.classPrefix,
40
42
  classPrefix = _props$classPrefix === void 0 ? 'message' : _props$classPrefix,
41
- center = _props.center,
43
+ plain = _props.plain,
44
+ placement = _props.placement,
42
45
  iconClass = _props.iconClass,
43
- closable = _props.showClose,
46
+ showClose = _props.showClose,
44
47
  type = _props.type,
45
48
  onClose = _props.onClose,
46
49
  duration = _props.duration,
@@ -52,6 +55,7 @@ var Message = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
52
55
  b = _useClassNames.b,
53
56
  e = _useClassNames.e,
54
57
  m = _useClassNames.m,
58
+ bm = _useClassNames.bm,
55
59
  is = _useClassNames.is;
56
60
  // const { message: messageConfig } = useContext(ConfigProvider);
57
61
 
@@ -147,19 +151,41 @@ var Message = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
147
151
  // eslint-disable-next-line react-hooks/exhaustive-deps
148
152
  }, [visible]);
149
153
 
150
- /** 前缀图标 */
151
- var typeClass = useMemo(function () {
152
- var _type = !iconClass && type;
153
- return _type && TypeMap[_type] ? b("icon-".concat(TypeMap[_type]), false) : '';
154
- }, [b, iconClass, type]);
154
+ // const lastOffset = useMemo(() => getLastOffset(id, placement), [id, placement]);
155
+ // const offsetValue = useMemo(() => getOffsetOrSpace(id, offset, placement) + lastOffset, [id, offset, placement]);
156
+ // const bottom = useMemo(() => height + offsetValue, [height, offsetValue]);
157
+
158
+ var badgeType = useMemo(function () {
159
+ return type === 'error' ? 'danger' : type;
160
+ }, [type]);
161
+ var horizontalClass = useMemo(function () {
162
+ if (placement.includes('left')) {
163
+ return is('left');
164
+ }
165
+ if (placement.includes('right')) {
166
+ return is('right');
167
+ }
168
+ return is('center');
169
+ }, [is, placement]);
170
+ var verticalProperty = useMemo(function () {
171
+ return placement.startsWith('top') ? 'top' : 'bottom';
172
+ }, [placement]);
173
+ var customStyle = useMemo(function () {
174
+ return {
175
+ // [verticalProperty]: `${offsetValue}px`,
176
+ zIndex: PopupManager.nextZIndex()
177
+ };
178
+ }, []);
155
179
 
156
180
  /** 关闭图标 */
157
181
  var closeIcon = useMemo(function () {
158
- return closable && /*#__PURE__*/React.createElement("div", {
159
- className: classNames(e(_templateObject || (_templateObject = _taggedTemplateLiteral(["closeBtn"]))), b('icon-close', false)),
182
+ return showClose && /*#__PURE__*/React.createElement(Icon, {
183
+ name: "xmark",
184
+ prefix: "fal",
185
+ className: classNames(e(_templateObject || (_templateObject = _taggedTemplateLiteral(["closeBtn"])))),
160
186
  onClick: handleClose
161
187
  });
162
- }, [closable, e, b, handleClose]);
188
+ }, [showClose, e, handleClose]);
163
189
  return /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(Transition, {
164
190
  nodeRef: messageRef,
165
191
  name: b('message-fade', false),
@@ -170,24 +196,26 @@ var Message = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
170
196
  afterLeave: afterLeave
171
197
  }, /*#__PURE__*/React.createElement("div", {
172
198
  ref: messageRef,
173
- className: classNames(b(), _defineProperty({}, m(type), type && !iconClass), is({
174
- center: center,
175
- closable: closable
176
- }), props.className),
199
+ className: classNames(b(), _defineProperty({}, m(type), type && !iconClass), is('center', {
200
+ closable: showClose,
201
+ plain: plain,
202
+ bottom: verticalProperty === 'bottom'
203
+ }), horizontalClass, props.className),
177
204
  style: _objectSpread(_objectSpread({}, (_props2 = props) === null || _props2 === void 0 ? void 0 : _props2.style), {}, {
178
- top: offset,
179
- zIndex: PopupManager.nextZIndex()
180
- })
205
+ top: offset
206
+ }, customStyle)
181
207
  // 鼠标悬浮停止自动关闭
182
208
  ,
183
209
  onMouseEnter: clearTimer,
184
210
  onMouseLeave: startTimer
185
211
  }, repeatNum > 1 && /*#__PURE__*/React.createElement(Badge, {
186
212
  value: repeatNum,
187
- type: type || 'info',
213
+ type: badgeType,
188
214
  className: e(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["badge"])))
189
- }), (type || iconClass) && /*#__PURE__*/React.createElement("i", {
190
- className: classNames(e(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["icon"]))), typeClass, iconClass)
215
+ }), (type || iconClass) && /*#__PURE__*/React.createElement(Icon, {
216
+ name: TypeComponentsMap[type],
217
+ prefix: "fas",
218
+ className: classNames(e(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["icon"]))), _defineProperty({}, bm('icon', type), type && TypeComponentsMap[type]), iconClass)
191
219
  }), /*#__PURE__*/React.createElement("p", {
192
220
  className: e(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["content"])))
193
221
  }, message), closeIcon)), document.body);
@@ -5,24 +5,22 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
5
5
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
6
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
7
  import { isValidElement } from 'react';
8
- import { isEmpty, mergeDefaultProps } from "../Util";
8
+ import { isEmpty } from "../Util";
9
9
  import Main from "./Main";
10
10
  export var instances = [];
11
11
  var seed = 1;
12
12
  export var Message = function Message() {
13
13
  var _opts, _ref$current, _ref$current2;
14
14
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15
- var ll = localStorage.getItem('__el__message__config__provider__');
16
- var configProvider = ll ? JSON.parse(ll) : {};
17
15
  if (typeof opts === 'string' || /*#__PURE__*/isValidElement(opts)) {
18
- opts = _objectSpread(_objectSpread({}, configProvider), {}, {
16
+ opts = {
19
17
  message: opts
20
- });
18
+ };
21
19
  }
22
20
  if (isEmpty(opts)) {
23
- opts = _objectSpread(_objectSpread({}, configProvider), {}, {
21
+ opts = {
24
22
  message: ''
25
- });
23
+ };
26
24
  }
27
25
  var options = opts;
28
26
  var verticalOffset = typeof opts !== 'string' && ! /*#__PURE__*/isValidElement(opts) ? ((_opts = opts) === null || _opts === void 0 ? void 0 : _opts.offset) || 20 : 20;
@@ -38,13 +36,13 @@ export var Message = function Message() {
38
36
  userOnClose = null;
39
37
  options.userOnClose = options.onClose;
40
38
  }
41
- options = mergeDefaultProps(configProvider, _objectSpread(_objectSpread({}, options), {}, {
39
+ options = _objectSpread(_objectSpread({}, options), {}, {
42
40
  onClose: function onClose() {
43
41
  close(id, userOnClose);
44
42
  },
45
43
  offset: verticalOffset,
46
44
  id: id
47
- }));
45
+ });
48
46
  if (options.grouping && instances.length) {
49
47
  var instance = instances.find(function (inst) {
50
48
  return inst.current.message === options.message;
@@ -99,7 +97,7 @@ export function closeAll() {
99
97
  instance.close();
100
98
  }
101
99
  }
102
- ['success', 'warning', 'info', 'error'].forEach(function (type) {
100
+ ['primary', 'success', 'warning', 'info', 'error'].forEach(function (type) {
103
101
  Message[type] = function (options) {
104
102
  if (typeof options === 'string' || /*#__PURE__*/isValidElement(options)) {
105
103
  options = {
@@ -1,13 +1,13 @@
1
1
  import React, { RefObject } from 'react';
2
- import { AnimationEventProps, BaseProps, NativeProps } from '../types/common';
2
+ import { AnimationEventProps, BaseProps, NativeProps, TypeAttributes } from '../types/common';
3
3
  export interface MessageHandle {
4
4
  close: () => void;
5
5
  el: RefObject<HTMLElement>;
6
6
  }
7
7
  export interface MessageProps extends BaseProps, NativeProps, AnimationEventProps {
8
8
  id?: string;
9
- /** 文字是否居中 */
10
- center?: boolean;
9
+ /** 是否纯色 */
10
+ plain?: boolean;
11
11
  /** 显示时间,单位为毫秒。 设为 0 则不会自动关闭 */
12
12
  duration?: number;
13
13
  /** 自定义图标 */
@@ -21,19 +21,22 @@ export interface MessageProps extends BaseProps, NativeProps, AnimationEventProp
21
21
  /** 是否显示关闭按钮 */
22
22
  showClose?: boolean;
23
23
  /** 消息类型 */
24
- type?: 'success' | 'warning' | 'info' | 'error' | '';
24
+ type?: TypeAttributes.Appearance;
25
25
  /** 是否立即执行onClose方法 */
26
26
  immediate?: boolean;
27
27
  /** 合并内容相同的消息,不支持 VNode 类型的消息 */
28
28
  grouping?: boolean;
29
+ /** 消息放置位置 */
30
+ placement?: 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right';
29
31
  userOnClose?: (el?: RefObject<HTMLElement>) => void;
30
32
  }
31
- export type MessageType = 'success' | 'warning' | 'info' | 'error' | '';
33
+ export type MessageType = 'primary' | 'success' | 'warning' | 'info' | 'error' | '';
32
34
  export type MessageDispatcher = (options?: MessageProps | string | React.ReactElement) => MessageHandle;
33
35
  export type MessageParams = MessageProps | string | React.ReactElement;
34
36
  export type TypedMessageParams = Omit<MessageProps, 'type'> | string | React.ReactElement;
35
37
  export interface MessageMethod {
36
38
  (options?: MessageParams): MessageHandle;
39
+ primary: (options?: TypedMessageParams) => MessageHandle;
37
40
  success: (options?: TypedMessageParams) => MessageHandle;
38
41
  warning: (options?: TypedMessageParams) => MessageHandle;
39
42
  info: (options?: TypedMessageParams) => MessageHandle;
@@ -1,6 +1,6 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
3
- var _excluded = ["title", "message", "type", "icon", "width", "callback", "showClose", "beforeClose", "showCancelButton", "showConfirmButton", "cancelButtonText", "cancelButtonClass", "confirmButtonClass", "buttonSize", "buttonPosition", "draggable", "overflow", "showInput", "inputType", "inputPlaceholder", "inputPattern", "inputErrorMessage", "inputValidator", "distinguishCancelAndClose", "classPrefix", "className", "style", "padding", "roundButton"];
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
3
+ var _excluded = ["title", "message", "type", "icon", "width", "callback", "showClose", "beforeClose", "showCancelButton", "showConfirmButton", "cancelButtonText", "cancelButtonClass", "confirmButtonClass", "buttonSize", "buttonPosition", "draggable", "overflow", "showInput", "inputType", "inputPlaceholder", "inputPattern", "inputErrorMessage", "inputValidator", "distinguishCancelAndClose", "classPrefix", "className", "style", "padding", "roundButton", "dangerouslyUseHTMLString"];
4
4
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
5
5
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6
6
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -21,44 +21,58 @@ import isString from 'lodash/isString';
21
21
  import React, { cloneElement, forwardRef, memo, useCallback, useImperativeHandle, useMemo, useRef, useState } from 'react';
22
22
  import { useTranslation } from 'react-i18next';
23
23
  import Button from "../Button/Button";
24
- import { useConfigProvider } from "../ConfigProvider/ConfigProviderContext";
25
24
  import Dialog from "../Dialog/Dialog";
26
25
  import { partitionAnimationProps, useClassNames, useControlled } from "../hooks";
27
26
  import { namespace } from "../hooks/prefix";
28
27
  import Icon from "../Icon/Icon";
29
28
  import Input from "../Input/Input";
30
- import { addUnit, isNotEmpty } from "../Util";
29
+ import { addUnit, isNotEmpty, mergeDefaultProps } from "../Util";
31
30
  var MessageBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
32
- var _useConfigProvider = useConfigProvider(),
33
- locale = _useConfigProvider.locale;
31
+ var _props2;
34
32
  var _useTranslation = useTranslation(),
35
33
  t = _useTranslation.t;
36
- var boxType = props.boxType,
37
- onAction = props.onAction,
38
- options = props.options;
34
+ var locale = useMemo(function () {
35
+ var _props;
36
+ return ((_props = props) === null || _props === void 0 || (_props = _props.options) === null || _props === void 0 ? void 0 : _props.locale) || 'en';
37
+ }, [(_props2 = props) === null || _props2 === void 0 || (_props2 = _props2.options) === null || _props2 === void 0 ? void 0 : _props2.locale]);
38
+ props = mergeDefaultProps({
39
+ options: {}
40
+ }, props);
41
+ props.options = mergeDefaultProps({
42
+ width: 420,
43
+ showClose: true,
44
+ showCancelButton: true,
45
+ showConfirmButton: true,
46
+ cancelButtonText: t('el.messagebox.cancel', {
47
+ lng: locale
48
+ }),
49
+ confirmButtonText: t('el.messagebox.confirm', {
50
+ lng: locale
51
+ }),
52
+ distinguishCancelAndClose: false,
53
+ draggable: false,
54
+ buttonPosition: 'right',
55
+ showInput: false
56
+ }, props.options);
57
+ var _props3 = props,
58
+ boxType = _props3.boxType,
59
+ onAction = _props3.onAction,
60
+ options = _props3.options;
39
61
  var title = options.title,
40
62
  message = options.message,
41
63
  type = options.type,
42
64
  icon = options.icon,
43
- _options$width = options.width,
44
- width = _options$width === void 0 ? 420 : _options$width,
65
+ width = options.width,
45
66
  callback = options.callback,
46
- _options$showClose = options.showClose,
47
- showClose = _options$showClose === void 0 ? true : _options$showClose,
67
+ showClose = options.showClose,
48
68
  beforeClose = options.beforeClose,
49
- _options$showCancelBu = options.showCancelButton,
50
- showCancelButton = _options$showCancelBu === void 0 ? true : _options$showCancelBu,
51
- _options$showConfirmB = options.showConfirmButton,
52
- showConfirmButton = _options$showConfirmB === void 0 ? true : _options$showConfirmB,
53
- _options$cancelButton = options.cancelButtonText,
54
- cancelButtonText = _options$cancelButton === void 0 ? t('el.messagebox.cancel', {
55
- lng: locale
56
- }) : _options$cancelButton,
69
+ showCancelButton = options.showCancelButton,
70
+ showConfirmButton = options.showConfirmButton,
71
+ cancelButtonText = options.cancelButtonText,
57
72
  cancelButtonClass = options.cancelButtonClass,
58
73
  confirmButtonClass = options.confirmButtonClass,
59
74
  buttonSize = options.buttonSize,
60
- _options$buttonPositi = options.buttonPosition,
61
- buttonPosition = _options$buttonPositi === void 0 ? 'right' : _options$buttonPositi,
75
+ buttonPosition = options.buttonPosition,
62
76
  draggable = options.draggable,
63
77
  overflow = options.overflow,
64
78
  showInput = options.showInput,
@@ -74,6 +88,7 @@ var MessageBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref
74
88
  style = options.style,
75
89
  padding = options.padding,
76
90
  roundButton = options.roundButton,
91
+ dangerouslyUseHTMLString = options.dangerouslyUseHTMLString,
77
92
  rest = _objectWithoutProperties(options, _excluded);
78
93
  var _useClassNames = useClassNames(classPrefix),
79
94
  e = _useClassNames.e,
@@ -86,9 +101,7 @@ var MessageBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref
86
101
  _useState4 = _slicedToArray(_useState3, 2),
87
102
  confirmButtonLoading = _useState4[0],
88
103
  setConfirmButtonLoading = _useState4[1];
89
- var _useState5 = useState(options.confirmButtonText || t('el.messagebox.confirm', {
90
- lng: locale
91
- })),
104
+ var _useState5 = useState(options.confirmButtonText),
92
105
  _useState6 = _slicedToArray(_useState5, 2),
93
106
  confirmButtonText = _useState6[0],
94
107
  setConfirmButtonText = _useState6[1];
@@ -240,15 +253,24 @@ var MessageBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref
240
253
  beforeClose: function beforeClose() {
241
254
  return handleAction('close');
242
255
  }
243
- }, transitionProps), /*#__PURE__*/React.createElement(Dialog.body, {
256
+ }, transitionProps), dangerouslyUseHTMLString ? /*#__PURE__*/React.createElement(Dialog.body, {
244
257
  classPrefix: classPrefix,
245
258
  padding: padding
246
259
  }, /*#__PURE__*/React.createElement("div", {
247
260
  className: e(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["container"])))
248
261
  }, iconContent, /*#__PURE__*/React.createElement("div", {
249
- className: e(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["message"])))
262
+ dangerouslySetInnerHTML: {
263
+ __html: message
264
+ }
265
+ }))) : /*#__PURE__*/React.createElement(Dialog.body, {
266
+ classPrefix: classPrefix,
267
+ padding: padding
268
+ }, /*#__PURE__*/React.createElement("div", {
269
+ className: e(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["container"])))
270
+ }, iconContent, /*#__PURE__*/React.createElement("div", {
271
+ className: e(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["message"])))
250
272
  }, messageContainer)), boxType === 'prompt' && showInput && /*#__PURE__*/React.createElement("div", {
251
- className: e(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["input"])))
273
+ className: e(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["input"])))
252
274
  }, /*#__PURE__*/React.createElement(Input, {
253
275
  value: inputValue,
254
276
  type: inputType,
@@ -259,7 +281,7 @@ var MessageBox = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref
259
281
  validate(value);
260
282
  }
261
283
  }), validateError && /*#__PURE__*/React.createElement("div", {
262
- className: e(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["errormsg"])))
284
+ className: e(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["errormsg"])))
263
285
  }, editorErrorMessage))), (showCancelButton || showConfirmButton) && /*#__PURE__*/React.createElement(Dialog.footer, {
264
286
  classPrefix: classPrefix,
265
287
  position: buttonPosition
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
- import { Action, MessageBoxInputData, MessageBoxProps } from './typings';
2
+ import { Action, MessageBoxData, MessageBoxInputData, MessageBoxProps, MessageState } from './typings';
3
+ export declare const instanceFactory: <T extends MessageBoxData>(boxType: MessageState['boxType'], locale?: 'en' | 'zh-CN') => (message: string | React.ReactElement, title?: string | React.ReactElement | MessageBoxProps, options?: MessageBoxProps) => Promise<T>;
3
4
  export declare const MessageBox: {
4
5
  (options?: MessageBoxProps): Promise<Action>;
5
6
  /**
@@ -8,7 +8,8 @@ import { isObject, isUndefined } from "../Util";
8
8
  import Main from "./Main";
9
9
  var MESSAGE_BOX_DEFAULT_OPTS = {
10
10
  alert: {
11
- closeOnClickModal: false
11
+ closeOnClickModal: false,
12
+ showCancelButton: false
12
13
  },
13
14
  confirm: {
14
15
  showCancelButton: true
@@ -18,7 +19,7 @@ var MESSAGE_BOX_DEFAULT_OPTS = {
18
19
  showInput: true
19
20
  }
20
21
  };
21
- var instanceFactory = function instanceFactory(boxType) {
22
+ export var instanceFactory = function instanceFactory(boxType, locale) {
22
23
  return function (message, title, options) {
23
24
  var _options;
24
25
  var titleOrOpts = '';
@@ -36,6 +37,7 @@ var instanceFactory = function instanceFactory(boxType) {
36
37
  new Main({
37
38
  boxType: boxType,
38
39
  options: _objectSpread(_objectSpread({
40
+ locale: locale,
39
41
  message: message,
40
42
  title: titleOrOpts
41
43
  }, MESSAGE_BOX_DEFAULT_OPTS[boxType]), options),
@@ -8,6 +8,7 @@ export interface MessageBoxProps extends BaseProps, NativeProps, AnimationEventP
8
8
  /** 消息正文内容 */
9
9
  message?: string | React.ReactElement;
10
10
  /** 是否将 message 属性作为 HTML 片段处理 */
11
+ dangerouslyUseHTMLString?: boolean;
11
12
  /** 消息类型,用于显示图标 */
12
13
  type?: 'success' | 'info' | 'warning' | 'error';
13
14
  /** 消息自定义图标,该属性会覆盖 type 的图标 */
@@ -68,6 +69,8 @@ export interface MessageBoxProps extends BaseProps, NativeProps, AnimationEventP
68
69
  overflow?: boolean;
69
70
  /** 是否使用圆角按钮 */
70
71
  roundButton?: boolean;
72
+ /** 国际化 */
73
+ locale?: 'en' | 'zh-CN';
71
74
  }
72
75
  export type MessageState = {
73
76
  boxType: '' | 'prompt' | 'alert' | 'confirm';