@sheinx/base 3.2.0-rc.4 → 3.2.0-rc.5

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 (191) hide show
  1. package/cjs/card/card-header.d.ts.map +1 -1
  2. package/cjs/card/card-header.js +23 -5
  3. package/cjs/card/card.d.ts.map +1 -1
  4. package/cjs/card/card.js +7 -3
  5. package/cjs/card/card.type.d.ts +1 -0
  6. package/cjs/card/card.type.d.ts.map +1 -1
  7. package/cjs/cascader/cascader.type.d.ts +1 -0
  8. package/cjs/cascader/cascader.type.d.ts.map +1 -1
  9. package/cjs/config/index.d.ts.map +1 -1
  10. package/cjs/config/index.js +3 -3
  11. package/cjs/form/form-field.type.d.ts +1 -1
  12. package/cjs/form/form-field.type.d.ts.map +1 -1
  13. package/cjs/grid/util.d.ts.map +1 -1
  14. package/cjs/grid/util.js +2 -6
  15. package/cjs/icons/config.d.ts +1 -0
  16. package/cjs/icons/config.d.ts.map +1 -1
  17. package/cjs/icons/config.js +2 -1
  18. package/cjs/input/input-group.d.ts.map +1 -1
  19. package/cjs/input/input-group.js +4 -2
  20. package/cjs/input/input-group.type.d.ts +10 -0
  21. package/cjs/input/input-group.type.d.ts.map +1 -1
  22. package/cjs/input/input-number.js +3 -2
  23. package/cjs/input/input.js +2 -2
  24. package/cjs/input/input.type.d.ts +5 -0
  25. package/cjs/input/input.type.d.ts.map +1 -1
  26. package/cjs/input/use-input-common.d.ts.map +1 -1
  27. package/cjs/input/use-input-common.js +1 -0
  28. package/cjs/menu/index.d.ts +2 -0
  29. package/cjs/menu/index.d.ts.map +1 -1
  30. package/cjs/menu/index.js +7 -0
  31. package/cjs/menu/item.d.ts.map +1 -1
  32. package/cjs/menu/item.js +91 -61
  33. package/cjs/menu/menu.d.ts.map +1 -1
  34. package/cjs/menu/menu.js +45 -22
  35. package/cjs/menu/menu.type.d.ts +25 -16
  36. package/cjs/menu/menu.type.d.ts.map +1 -1
  37. package/cjs/menu/search.d.ts +5 -0
  38. package/cjs/menu/search.d.ts.map +1 -0
  39. package/cjs/menu/search.js +53 -0
  40. package/cjs/menu/search.type.d.ts +33 -0
  41. package/cjs/menu/search.type.d.ts.map +1 -0
  42. package/cjs/menu/search.type.js +5 -0
  43. package/cjs/modal/modal-content.d.ts.map +1 -1
  44. package/cjs/modal/modal-content.js +5 -5
  45. package/cjs/modal/modal-func.d.ts +1 -1
  46. package/cjs/modal/modal-func.d.ts.map +1 -1
  47. package/cjs/modal/modal-func.js +1 -0
  48. package/cjs/modal/modal.d.ts.map +1 -1
  49. package/cjs/modal/modal.js +18 -3
  50. package/cjs/modal/modal.type.d.ts +1 -0
  51. package/cjs/modal/modal.type.d.ts.map +1 -1
  52. package/cjs/popover/confirm.d.ts.map +1 -1
  53. package/cjs/popover/confirm.js +4 -0
  54. package/cjs/popover/popover.d.ts.map +1 -1
  55. package/cjs/popover/popover.js +9 -5
  56. package/cjs/popover/popover.type.d.ts +18 -0
  57. package/cjs/popover/popover.type.d.ts.map +1 -1
  58. package/cjs/select/result-more.d.ts.map +1 -1
  59. package/cjs/select/result-more.js +0 -14
  60. package/cjs/select/result.d.ts.map +1 -1
  61. package/cjs/select/result.js +9 -7
  62. package/cjs/select/result.type.d.ts +1 -0
  63. package/cjs/select/result.type.d.ts.map +1 -1
  64. package/cjs/select/select.d.ts.map +1 -1
  65. package/cjs/select/select.js +1 -11
  66. package/cjs/select/select.type.d.ts +1 -0
  67. package/cjs/select/select.type.d.ts.map +1 -1
  68. package/cjs/sticky/sticky.d.ts.map +1 -1
  69. package/cjs/sticky/sticky.js +212 -90
  70. package/cjs/table/thead.js +1 -4
  71. package/cjs/table/tr.d.ts.map +1 -1
  72. package/cjs/table/tr.js +1 -1
  73. package/cjs/tag/tag.d.ts.map +1 -1
  74. package/cjs/tag/tag.js +5 -4
  75. package/cjs/textarea/textarea.d.ts.map +1 -1
  76. package/cjs/textarea/textarea.js +1 -0
  77. package/cjs/transfer/transfer-list.d.ts.map +1 -1
  78. package/cjs/transfer/transfer-list.js +7 -1
  79. package/cjs/transfer/transfer.js +1 -1
  80. package/cjs/tree/tree-content.d.ts.map +1 -1
  81. package/cjs/tree/tree-content.js +7 -5
  82. package/cjs/tree/tree-node.d.ts.map +1 -1
  83. package/cjs/tree/tree-node.js +4 -0
  84. package/cjs/tree/tree.d.ts.map +1 -1
  85. package/cjs/tree/tree.js +10 -0
  86. package/cjs/tree/tree.type.d.ts +0 -1
  87. package/cjs/tree/tree.type.d.ts.map +1 -1
  88. package/cjs/tree-select/tree-select.type.d.ts +1 -0
  89. package/cjs/tree-select/tree-select.type.d.ts.map +1 -1
  90. package/cjs/virtual-scroll/scroll.d.ts +1 -0
  91. package/cjs/virtual-scroll/scroll.d.ts.map +1 -1
  92. package/cjs/virtual-scroll/scroll.js +3 -3
  93. package/cjs/virtual-scroll/virtual-scroll-list.d.ts.map +1 -1
  94. package/cjs/virtual-scroll/virtual-scroll-list.js +3 -0
  95. package/cjs/virtual-scroll/virtual-scroll-list.type.d.ts.map +1 -1
  96. package/esm/card/card-header.d.ts.map +1 -1
  97. package/esm/card/card-header.js +23 -5
  98. package/esm/card/card.d.ts.map +1 -1
  99. package/esm/card/card.js +9 -5
  100. package/esm/card/card.type.d.ts +1 -0
  101. package/esm/card/card.type.d.ts.map +1 -1
  102. package/esm/cascader/cascader.type.d.ts +1 -0
  103. package/esm/cascader/cascader.type.d.ts.map +1 -1
  104. package/esm/config/index.d.ts.map +1 -1
  105. package/esm/config/index.js +3 -3
  106. package/esm/form/form-field.type.d.ts +1 -1
  107. package/esm/form/form-field.type.d.ts.map +1 -1
  108. package/esm/grid/util.d.ts.map +1 -1
  109. package/esm/grid/util.js +2 -6
  110. package/esm/icons/config.d.ts +1 -0
  111. package/esm/icons/config.d.ts.map +1 -1
  112. package/esm/icons/config.js +2 -1
  113. package/esm/input/input-group.d.ts.map +1 -1
  114. package/esm/input/input-group.js +4 -2
  115. package/esm/input/input-group.type.d.ts +10 -0
  116. package/esm/input/input-group.type.d.ts.map +1 -1
  117. package/esm/input/input-number.js +3 -2
  118. package/esm/input/input.js +2 -2
  119. package/esm/input/input.type.d.ts +5 -0
  120. package/esm/input/input.type.d.ts.map +1 -1
  121. package/esm/input/use-input-common.d.ts.map +1 -1
  122. package/esm/input/use-input-common.js +1 -0
  123. package/esm/menu/index.d.ts +2 -0
  124. package/esm/menu/index.d.ts.map +1 -1
  125. package/esm/menu/index.js +2 -1
  126. package/esm/menu/item.d.ts.map +1 -1
  127. package/esm/menu/item.js +94 -63
  128. package/esm/menu/menu.d.ts.map +1 -1
  129. package/esm/menu/menu.js +46 -23
  130. package/esm/menu/menu.type.d.ts +25 -16
  131. package/esm/menu/menu.type.d.ts.map +1 -1
  132. package/esm/menu/search.d.ts +5 -0
  133. package/esm/menu/search.d.ts.map +1 -0
  134. package/esm/menu/search.js +46 -0
  135. package/esm/menu/search.type.d.ts +33 -0
  136. package/esm/menu/search.type.d.ts.map +1 -0
  137. package/esm/menu/search.type.js +1 -0
  138. package/esm/modal/modal-content.d.ts.map +1 -1
  139. package/esm/modal/modal-content.js +5 -5
  140. package/esm/modal/modal-func.d.ts +1 -1
  141. package/esm/modal/modal-func.d.ts.map +1 -1
  142. package/esm/modal/modal-func.js +1 -0
  143. package/esm/modal/modal.d.ts.map +1 -1
  144. package/esm/modal/modal.js +19 -4
  145. package/esm/modal/modal.type.d.ts +1 -0
  146. package/esm/modal/modal.type.d.ts.map +1 -1
  147. package/esm/popover/confirm.d.ts.map +1 -1
  148. package/esm/popover/confirm.js +4 -0
  149. package/esm/popover/popover.d.ts.map +1 -1
  150. package/esm/popover/popover.js +9 -5
  151. package/esm/popover/popover.type.d.ts +18 -0
  152. package/esm/popover/popover.type.d.ts.map +1 -1
  153. package/esm/select/result-more.d.ts.map +1 -1
  154. package/esm/select/result-more.js +1 -16
  155. package/esm/select/result.d.ts.map +1 -1
  156. package/esm/select/result.js +10 -8
  157. package/esm/select/result.type.d.ts +1 -0
  158. package/esm/select/result.type.d.ts.map +1 -1
  159. package/esm/select/select.d.ts.map +1 -1
  160. package/esm/select/select.js +1 -11
  161. package/esm/select/select.type.d.ts +1 -0
  162. package/esm/select/select.type.d.ts.map +1 -1
  163. package/esm/sticky/sticky.d.ts.map +1 -1
  164. package/esm/sticky/sticky.js +213 -91
  165. package/esm/table/thead.js +1 -4
  166. package/esm/table/tr.d.ts.map +1 -1
  167. package/esm/table/tr.js +1 -1
  168. package/esm/tag/tag.d.ts.map +1 -1
  169. package/esm/tag/tag.js +5 -4
  170. package/esm/textarea/textarea.d.ts.map +1 -1
  171. package/esm/textarea/textarea.js +1 -0
  172. package/esm/transfer/transfer-list.d.ts.map +1 -1
  173. package/esm/transfer/transfer-list.js +7 -1
  174. package/esm/transfer/transfer.js +1 -1
  175. package/esm/tree/tree-content.d.ts.map +1 -1
  176. package/esm/tree/tree-content.js +7 -5
  177. package/esm/tree/tree-node.d.ts.map +1 -1
  178. package/esm/tree/tree-node.js +4 -0
  179. package/esm/tree/tree.d.ts.map +1 -1
  180. package/esm/tree/tree.js +11 -1
  181. package/esm/tree/tree.type.d.ts +0 -1
  182. package/esm/tree/tree.type.d.ts.map +1 -1
  183. package/esm/tree-select/tree-select.type.d.ts +1 -0
  184. package/esm/tree-select/tree-select.type.d.ts.map +1 -1
  185. package/esm/virtual-scroll/scroll.d.ts +1 -0
  186. package/esm/virtual-scroll/scroll.d.ts.map +1 -1
  187. package/esm/virtual-scroll/scroll.js +3 -3
  188. package/esm/virtual-scroll/virtual-scroll-list.d.ts.map +1 -1
  189. package/esm/virtual-scroll/virtual-scroll-list.js +3 -0
  190. package/esm/virtual-scroll/virtual-scroll-list.type.d.ts.map +1 -1
  191. package/package.json +3 -3
package/esm/menu/item.js CHANGED
@@ -4,26 +4,31 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
4
4
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
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
- import { cloneElement, useEffect, useRef } from 'react';
7
+ import { cloneElement } from 'react';
8
8
  import classNames from 'classnames';
9
9
  import { useMenuItem, util } from '@sheinx/hooks';
10
10
  import Icons from "../icons";
11
11
  import { useConfig } from "../config";
12
+ import Popover from "../../src/popover";
13
+ import { createElement as _createElement } from "react";
12
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
+ import { Fragment as _Fragment } from "react/jsx-runtime";
13
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
14
- import { createElement as _createElement } from "react";
15
17
  var MenuItem = function MenuItem(props) {
16
18
  var _props$jssStyle, _props$jssStyle$menu;
17
19
  var classes = (_props$jssStyle = props.jssStyle) === null || _props$jssStyle === void 0 || (_props$jssStyle$menu = _props$jssStyle.menu) === null || _props$jssStyle$menu === void 0 ? void 0 : _props$jssStyle$menu.call(_props$jssStyle);
18
20
  var children = props.dataItem.children || [];
19
- var itemContentRef = useRef(null);
20
- var timer = useRef(null);
21
21
  var _props$inlineIndent = props.inlineIndent,
22
22
  inlineIndent = _props$inlineIndent === void 0 ? 24 : _props$inlineIndent,
23
23
  _props$frontCaretType = props.frontCaretType,
24
24
  frontCaretType = _props$frontCaretType === void 0 ? 'solid' : _props$frontCaretType,
25
- collapse = props.collapse;
25
+ mode = props.mode,
26
+ _props$toggleDuration = props.toggleDuration,
27
+ toggleDuration = _props$toggleDuration === void 0 ? 200 : _props$toggleDuration;
26
28
  var config = useConfig();
29
+ var shoudPop = mode === 'vertical' || mode === 'vertical-auto' || mode === 'horizontal';
30
+ var isVertical = mode === 'vertical' || mode === 'vertical-auto';
31
+ var isSubHorizontal = mode === 'horizontal' && props.level > 0;
27
32
  var hasExpandAbleChildren = children.some(function (item) {
28
33
  return item && item.children && (props.looseChildren || item.children.length);
29
34
  });
@@ -39,7 +44,6 @@ var MenuItem = function MenuItem(props) {
39
44
  parentId: props.parentId,
40
45
  looseChildren: props.looseChildren,
41
46
  parentSelectable: props.parentSelectable,
42
- toggleDuration: props.toggleDuration,
43
47
  disabled: props.disabled,
44
48
  mode: props.mode,
45
49
  scrollRef: props.scrollRef
@@ -55,41 +59,107 @@ var MenuItem = function MenuItem(props) {
55
59
  handleItemClick = _useMenuItem.handleItemClick,
56
60
  handleMouseEnter = _useMenuItem.handleMouseEnter,
57
61
  handleMouseLeave = _useMenuItem.handleMouseLeave;
62
+ var renderChildren = function renderChildren() {
63
+ var _items;
64
+ var items = children;
65
+ var isTitle = false;
66
+ if (!((_items = items) !== null && _items !== void 0 && _items.length)) {
67
+ if (props.level === 0 && props.collapse && shoudPop) {
68
+ items = [props.dataItem];
69
+ isTitle = true;
70
+ } else {
71
+ return null;
72
+ }
73
+ }
74
+ var content = function content(close) {
75
+ return /*#__PURE__*/_jsx("ul", {
76
+ className: classNames(shoudPop && (classes === null || classes === void 0 ? void 0 : classes.childrenShow), classes === null || classes === void 0 ? void 0 : classes.children, isUp && (classes === null || classes === void 0 ? void 0 : classes.childrenUp), hasExpandAbleChildren && (classes === null || classes === void 0 ? void 0 : classes.childrenHasExpand))
77
+ // 子菜单点击弹出
78
+ ,
79
+ onClick: close,
80
+ dir: config.direction,
81
+ children: items.map(function (item, index) {
82
+ var key = util.getKey(props.keygen, item, index);
83
+ return /*#__PURE__*/_createElement(MenuItem, _objectSpread(_objectSpread({}, props), {}, {
84
+ mode: mode,
85
+ parentId: id,
86
+ dataItem: item,
87
+ key: key,
88
+ index: index,
89
+ keyResult: key,
90
+ level: props.level + 1,
91
+ renderIcon: isTitle ? undefined : props.renderIcon
92
+ }));
93
+ })
94
+ });
95
+ };
96
+ if (shoudPop) {
97
+ var position = isVertical || isSubHorizontal ? isUp ? 'right-bottom' : 'right-top' : 'bottom';
98
+ return /*#__PURE__*/_jsx(Popover, {
99
+ mouseLeaveDelay: toggleDuration,
100
+ className: classNames(classes === null || classes === void 0 ? void 0 : classes.popover),
101
+ attributes: util.getDataAttribute({
102
+ theme: props.theme || 'light',
103
+ mode: isVertical ? 'vertical' : mode
104
+ }),
105
+ jssStyle: props.jssStyle,
106
+ arrowClass: classNames(classes === null || classes === void 0 ? void 0 : classes.popArrow, props.theme === 'dark' && (classes === null || classes === void 0 ? void 0 : classes.popArrowDark)),
107
+ position: position,
108
+ lazy: false,
109
+ children: function children(close) {
110
+ return content(close);
111
+ }
112
+ });
113
+ }
114
+ return content();
115
+ };
58
116
  var renderItem = function renderItem() {
117
+ var icon = util.isFunc(props.renderIcon) ? props.renderIcon(props.dataItem) : null;
118
+ var iconEl = icon ? /*#__PURE__*/_jsx("div", {
119
+ className: classes === null || classes === void 0 ? void 0 : classes.titleIcon,
120
+ children: icon
121
+ }) : null;
122
+ var indent = props.mode === 'inline' && props.level ? /*#__PURE__*/_jsx("div", {
123
+ style: {
124
+ width: props.level * inlineIndent,
125
+ flexShrink: 0
126
+ }
127
+ }) : null;
59
128
  var item = util.render(props.renderItem, props.dataItem, props.index);
60
129
  var link = props.linkKey ? util.getKey(props.linkKey, props.dataItem, props.index) : undefined;
61
130
  var title = null;
62
131
  if (util.isLink(item)) {
63
132
  var mergeClass = classNames(classes === null || classes === void 0 ? void 0 : classes.title, item.props && item.props.className);
64
133
  title = /*#__PURE__*/cloneElement(item, {
65
- className: mergeClass
134
+ className: mergeClass,
135
+ children: /*#__PURE__*/_jsxs(_Fragment, {
136
+ children: [indent, iconEl, /*#__PURE__*/_jsx("div", {
137
+ className: classes === null || classes === void 0 ? void 0 : classes.titleContent,
138
+ children: item.props.children
139
+ })]
140
+ })
66
141
  });
67
142
  } else {
68
143
  var linkProps = {
69
144
  className: classes === null || classes === void 0 ? void 0 : classes.title,
70
145
  href: link
71
146
  };
72
- title = /*#__PURE__*/_jsx("a", _objectSpread(_objectSpread({}, linkProps), {}, {
73
- children: util.wrapSpan(item)
147
+ title = /*#__PURE__*/_jsxs("a", _objectSpread(_objectSpread({}, linkProps), {}, {
148
+ children: [indent, iconEl, /*#__PURE__*/_jsx("div", {
149
+ className: classes === null || classes === void 0 ? void 0 : classes.titleContent,
150
+ children: util.wrapSpan(item)
151
+ })]
74
152
  }));
75
153
  }
76
- var indent = props.mode === 'inline' && props.level ? /*#__PURE__*/_jsx("div", {
77
- style: {
78
- width: props.level * inlineIndent,
79
- flexShrink: 0
80
- }
81
- }) : null;
82
- var isFirstCollapseItem = collapse && props.level === 0;
83
154
  if (props.frontCaret) {
84
155
  return /*#__PURE__*/_jsxs("div", {
85
- ref: itemContentRef,
86
- className: classNames(classes === null || classes === void 0 ? void 0 : classes.itemContent, classes === null || classes === void 0 ? void 0 : classes.itemContentFront, isFirstCollapseItem && (classes === null || classes === void 0 ? void 0 : classes.itemContentHide)),
156
+ className: classNames(classes === null || classes === void 0 ? void 0 : classes.itemContent, classes === null || classes === void 0 ? void 0 : classes.itemContentFront),
87
157
  onClick: handleItemClick,
88
- children: [indent, /*#__PURE__*/_jsx("div", {
158
+ children: [/*#__PURE__*/_jsx("div", {
89
159
  style: {
90
160
  color: props.caretColor
91
161
  },
92
- className: classNames(classes === null || classes === void 0 ? void 0 : classes.expand, classes === null || classes === void 0 ? void 0 : classes.expandFront, props.parentSelectable && (classes === null || classes === void 0 ? void 0 : classes.expandHover)),
162
+ className: classNames(classes === null || classes === void 0 ? void 0 : classes.expand, classes === null || classes === void 0 ? void 0 : classes.expandFront, (isVertical || isSubHorizontal) && (classes === null || classes === void 0 ? void 0 : classes.expandVertical), props.parentSelectable && (classes === null || classes === void 0 ? void 0 : classes.expandHover)),
93
163
  onClick: handleExpandClick,
94
164
  dir: config.direction,
95
165
  children: /*#__PURE__*/_jsx("div", {
@@ -100,15 +170,14 @@ var MenuItem = function MenuItem(props) {
100
170
  });
101
171
  } else {
102
172
  return /*#__PURE__*/_jsxs("div", {
103
- ref: itemContentRef,
104
- className: classNames(classes === null || classes === void 0 ? void 0 : classes.itemContent, classes === null || classes === void 0 ? void 0 : classes.itemContentBack, isFirstCollapseItem && (classes === null || classes === void 0 ? void 0 : classes.itemContentHide)),
173
+ className: classNames(classes === null || classes === void 0 ? void 0 : classes.itemContent, classes === null || classes === void 0 ? void 0 : classes.itemContentBack),
105
174
  onClick: handleItemClick,
106
- children: [indent, title, expandAble && /*#__PURE__*/_jsx("div", {
175
+ children: [title, expandAble && /*#__PURE__*/_jsx("div", {
107
176
  onClick: handleExpandClick,
108
177
  style: {
109
178
  color: props.caretColor
110
179
  },
111
- className: classNames(classes === null || classes === void 0 ? void 0 : classes.expand, classes === null || classes === void 0 ? void 0 : classes.expandBack, props.parentSelectable && (classes === null || classes === void 0 ? void 0 : classes.expandHover)),
180
+ className: classNames(classes === null || classes === void 0 ? void 0 : classes.expand, classes === null || classes === void 0 ? void 0 : classes.expandBack, (isVertical || isSubHorizontal) && (classes === null || classes === void 0 ? void 0 : classes.expandVertical), props.parentSelectable && (classes === null || classes === void 0 ? void 0 : classes.expandHover)),
112
181
  dir: config.direction,
113
182
  children: /*#__PURE__*/_jsx("div", {
114
183
  className: classes === null || classes === void 0 ? void 0 : classes.icon,
@@ -118,50 +187,12 @@ var MenuItem = function MenuItem(props) {
118
187
  });
119
188
  }
120
189
  };
121
- var renderCollapseItem = function renderCollapseItem() {
122
- if (!props.renderCollapse) return null;
123
- var isFirstCollapseItem = props.level === 0 && collapse;
124
- return /*#__PURE__*/_jsx("div", {
125
- className: classNames(classes === null || classes === void 0 ? void 0 : classes.collapseItem, isInPath && (classes === null || classes === void 0 ? void 0 : classes.collapseItemInPath), !isFirstCollapseItem && (classes === null || classes === void 0 ? void 0 : classes.collapseItemHide)),
126
- onClick: handleItemClick,
127
- children: props.renderCollapse(props.dataItem, props.index)
128
- });
129
- };
130
- useEffect(function () {
131
- if (!itemContentRef.current) return;
132
- if (collapse === undefined) return;
133
- if (timer.current) clearTimeout(timer.current);
134
- itemContentRef.current.style.overflow = 'hidden';
135
- itemContentRef.current.style.whiteSpace = 'nowrap';
136
- timer.current = setTimeout(function () {
137
- if (!itemContentRef.current) return;
138
- itemContentRef.current.style.overflow = '';
139
- itemContentRef.current.style.whiteSpace = '';
140
- }, 300);
141
- return function () {
142
- if (timer.current) clearTimeout(timer.current);
143
- };
144
- }, [collapse]);
145
190
  return /*#__PURE__*/_jsxs("li", {
146
191
  className: classNames(classes === null || classes === void 0 ? void 0 : classes.item, isDisabled && (classes === null || classes === void 0 ? void 0 : classes.itemDisabled), isInPath && (classes === null || classes === void 0 ? void 0 : classes.itemInPath), isOpen && (classes === null || classes === void 0 ? void 0 : classes.itemOpen), isChecked && (classes === null || classes === void 0 ? void 0 : classes.itemActive), expandAble && (classes === null || classes === void 0 ? void 0 : classes.itemHasChildren)),
147
192
  onMouseEnter: handleMouseEnter,
148
193
  onMouseLeave: handleMouseLeave,
149
194
  dir: config.direction,
150
- children: [renderItem(), renderCollapseItem(), children.length > 0 && /*#__PURE__*/_jsx("ul", {
151
- className: classNames(classes === null || classes === void 0 ? void 0 : classes.children, isUp && (classes === null || classes === void 0 ? void 0 : classes.childrenUp), hasExpandAbleChildren && (classes === null || classes === void 0 ? void 0 : classes.childrenHasExpand)),
152
- dir: config.direction,
153
- children: children.map(function (item, index) {
154
- var key = util.getKey(props.keygen, item, index);
155
- return /*#__PURE__*/_createElement(MenuItem, _objectSpread(_objectSpread({}, props), {}, {
156
- parentId: id,
157
- dataItem: item,
158
- key: key,
159
- index: index,
160
- keyResult: key,
161
- level: props.level + 1
162
- }));
163
- })
164
- })]
195
+ children: [renderItem(), renderChildren()]
165
196
  });
166
197
  };
167
198
  export default MenuItem;
@@ -1 +1 @@
1
- {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["menu.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,QAAA,MAAM,IAAI,sFAiHT,CAAC;AAEF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["menu.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,QAAA,MAAM,IAAI,sFAqIT,CAAC;AAEF,eAAe,IAAI,CAAC"}
package/esm/menu/menu.js CHANGED
@@ -11,7 +11,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
11
11
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
13
  import { useEffect, useRef, useState } from 'react';
14
- import { useMenu, util } from '@sheinx/hooks';
14
+ import { useMenu, util, useRender } from '@sheinx/hooks';
15
15
  import Item from "./item";
16
16
  import classNames from 'classnames';
17
17
  import Scroll from "./scroll";
@@ -19,7 +19,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
19
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
20
20
  var emptyArray = [];
21
21
  var Menu = function Menu(props) {
22
- var _props$jssStyle, _props$jssStyle$menu, _props$style;
22
+ var _props$jssStyle, _props$jssStyle$menu;
23
23
  var _props$data = props.data,
24
24
  data = _props$data === void 0 ? emptyArray : _props$data,
25
25
  _props$mode = props.mode,
@@ -27,7 +27,19 @@ var Menu = function Menu(props) {
27
27
  _props$theme = props.theme,
28
28
  theme = _props$theme === void 0 ? 'light' : _props$theme,
29
29
  collapse = props.collapse;
30
- var mode = collapse ? 'vertical' : modeProps;
30
+ var render = useRender();
31
+
32
+ // const [inTransition, setInTransition] = useState(false);
33
+ var mode = collapse ? 'vertical-auto' : modeProps;
34
+ var _useRef = useRef({
35
+ inTransition: false,
36
+ lastCollapse: !!props.collapse
37
+ }),
38
+ context = _useRef.current;
39
+ if (props.mode !== 'horizontal' && !!context.lastCollapse !== !!collapse) {
40
+ context.inTransition = true;
41
+ context.lastCollapse = !!props.collapse;
42
+ }
31
43
  var classes = (_props$jssStyle = props.jssStyle) === null || _props$jssStyle === void 0 || (_props$jssStyle$menu = _props$jssStyle.menu) === null || _props$jssStyle$menu === void 0 ? void 0 : _props$jssStyle$menu.call(_props$jssStyle);
32
44
  var isVertical = mode === 'vertical' || mode === 'vertical-auto';
33
45
  var isHorizontal = mode === 'horizontal';
@@ -35,16 +47,12 @@ var Menu = function Menu(props) {
35
47
  _useState2 = _slicedToArray(_useState, 2),
36
48
  hasOpen = _useState2[0],
37
49
  setHasOpen = _useState2[1];
38
- var _useState3 = useState([]),
39
- _useState4 = _slicedToArray(_useState3, 2),
40
- collapseOpenKeys = _useState4[0],
41
- setCollapseOpenKeys = _useState4[1];
42
50
  var _useMenu = useMenu({
43
51
  data: data,
44
52
  active: props.active,
45
53
  defaultOpenKeys: props.defaultOpenKeys,
46
- openKeys: props.collapse ? collapseOpenKeys : props.openKeys,
47
- onOpenChange: props.collapse ? setCollapseOpenKeys : props.onOpenChange
54
+ openKeys: props.openKeys,
55
+ onOpenChange: props.onOpenChange
48
56
  }),
49
57
  openKeys = _useMenu.openKeys,
50
58
  onOpenChange = _useMenu.onOpenChange,
@@ -56,11 +64,16 @@ var Menu = function Menu(props) {
56
64
  return item && item.children && (props.looseChildren || item.children.length);
57
65
  });
58
66
  var showScrollBar = isHorizontal || isVertical;
59
- var style = _objectSpread({}, props.style);
60
- if (collapse) delete style.width;
61
- var listStyle = isVertical && !collapse ? {
62
- width: (_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.width
63
- } : undefined;
67
+ var renderHeader = function renderHeader() {
68
+ if (modeProps === 'horizontal') return;
69
+ if (props.header) {
70
+ return /*#__PURE__*/_jsx("div", {
71
+ className: classes === null || classes === void 0 ? void 0 : classes.header,
72
+ children: props.header
73
+ });
74
+ }
75
+ return null;
76
+ };
64
77
  useEffect(function () {
65
78
  var newOpen = (openKeys || []).filter(function (k) {
66
79
  return data.find(function (d, i) {
@@ -71,24 +84,32 @@ var Menu = function Menu(props) {
71
84
  setHasOpen(newOpen);
72
85
  }
73
86
  }, [data, openKeys]);
74
- return /*#__PURE__*/_jsxs("div", {
75
- className: classNames(props.className, classes === null || classes === void 0 ? void 0 : classes.wrapper, mode === 'inline' && (classes === null || classes === void 0 ? void 0 : classes.wrapperInline), (mode === 'vertical' || mode === 'vertical-auto') && (classes === null || classes === void 0 ? void 0 : classes.wrapperVertical), mode === 'horizontal' && (classes === null || classes === void 0 ? void 0 : classes.wrapperHorizontal), hasOpen && (classes === null || classes === void 0 ? void 0 : classes.wrapperHasOpen), theme === 'dark' ? classes === null || classes === void 0 ? void 0 : classes.wrapperDark : classes === null || classes === void 0 ? void 0 : classes.wrapperLight, collapse && (classes === null || classes === void 0 ? void 0 : classes.collapse)),
87
+ return /*#__PURE__*/_jsxs("div", _objectSpread(_objectSpread({
88
+ className: classNames(props.className, classes === null || classes === void 0 ? void 0 : classes.wrapper, mode === 'inline' && (classes === null || classes === void 0 ? void 0 : classes.wrapperInline), (mode === 'vertical' || mode === 'vertical-auto') && (classes === null || classes === void 0 ? void 0 : classes.wrapperVertical), mode === 'horizontal' && (classes === null || classes === void 0 ? void 0 : classes.wrapperHorizontal), hasOpen && (classes === null || classes === void 0 ? void 0 : classes.wrapperHasOpen), theme === 'dark' ? classes === null || classes === void 0 ? void 0 : classes.wrapperDark : classes === null || classes === void 0 ? void 0 : classes.wrapperLight, collapse && (classes === null || classes === void 0 ? void 0 : classes.wrapperCollpase), context.inTransition && (classes === null || classes === void 0 ? void 0 : classes.wrapperInTransition))
89
+ }, util.getDataAttribute({
90
+ theme: theme,
91
+ mode: isVertical ? 'vertical' : mode
92
+ })), {}, {
76
93
  style: _objectSpread({
77
94
  height: props.height
78
- }, style),
79
- children: [/*#__PURE__*/_jsx("div", {
95
+ }, props.style),
96
+ onTransitionEnd: function onTransitionEnd(e) {
97
+ if (e.target === e.currentTarget) {
98
+ context.inTransition = false;
99
+ render();
100
+ }
101
+ },
102
+ children: [renderHeader(), /*#__PURE__*/_jsx("div", {
80
103
  className: classes === null || classes === void 0 ? void 0 : classes.scrollbox,
81
104
  ref: scrollRef,
82
105
  children: /*#__PURE__*/_jsx("ul", {
83
106
  className: classNames(classes === null || classes === void 0 ? void 0 : classes.root, hasExpand && (classes === null || classes === void 0 ? void 0 : classes.childrenHasExpand)),
84
- style: listStyle,
85
107
  children: data.map(function (item, index) {
86
108
  var key = util.getKey(props.keygen, item, index);
87
109
  return /*#__PURE__*/_jsx(Item, {
88
110
  level: 0,
89
111
  index: index,
90
112
  parentId: "",
91
- collapse: collapse,
92
113
  dataItem: item,
93
114
  keyResult: key,
94
115
  openKeys: openKeys,
@@ -103,7 +124,6 @@ var Menu = function Menu(props) {
103
124
  toggleDuration: props.toggleDuration,
104
125
  disabled: props.disabled,
105
126
  renderItem: props.renderItem,
106
- renderCollapse: props.renderCollapse,
107
127
  keygen: props.keygen,
108
128
  jssStyle: props.jssStyle,
109
129
  linkKey: props.linkKey,
@@ -111,7 +131,10 @@ var Menu = function Menu(props) {
111
131
  frontCaretType: props.frontCaretType,
112
132
  caretColor: props.caretColor,
113
133
  inlineIndent: props.inlineIndent,
114
- scrollRef: scrollRef
134
+ scrollRef: scrollRef,
135
+ theme: theme,
136
+ renderIcon: props.renderIcon,
137
+ collapse: collapse
115
138
  }, key);
116
139
  })
117
140
  })
@@ -121,6 +144,6 @@ var Menu = function Menu(props) {
121
144
  data: data,
122
145
  jssStyle: props.jssStyle
123
146
  })]
124
- });
147
+ }));
125
148
  };
126
149
  export default Menu;
@@ -2,6 +2,7 @@
2
2
  import type { UseMenuItemProps } from '@sheinx/hooks';
3
3
  import { KeygenResult, KeygenType, ObjectKey } from '@sheinx/hooks';
4
4
  import { CommonType } from '../common/type';
5
+ import { PopoverJssStyle } from '../popover/popover.type';
5
6
  export type MenuMode = 'inline' | 'vertical' | 'horizontal' | 'vertical-auto';
6
7
  export interface MenuClasses {
7
8
  wrapper: string;
@@ -11,28 +12,30 @@ export interface MenuClasses {
11
12
  wrapperHasOpen: string;
12
13
  wrapperLight: string;
13
14
  wrapperDark: string;
14
- collapse: string;
15
+ wrapperCollpase: string;
16
+ wrapperInTransition: string;
17
+ header: string;
15
18
  root: string;
16
19
  children: string;
20
+ childrenShow: string;
17
21
  childrenUp: string;
18
22
  item: string;
19
- collapseItem: string;
20
- collapseItemInPath: string;
21
- collapseItemHide: string;
22
23
  itemActive: string;
23
24
  itemDisabled: string;
24
25
  itemOpen: string;
25
26
  itemInPath: string;
26
27
  itemHasChildren: string;
27
28
  itemContent: string;
28
- itemContentHide: string;
29
29
  itemContentFront: string;
30
30
  itemContentBack: string;
31
31
  title: string;
32
+ titleIcon: string;
33
+ titleContent: string;
32
34
  expand: string;
33
35
  expandFront: string;
34
36
  expandBack: string;
35
37
  expandHover: string;
38
+ expandVertical: string;
36
39
  scrollbar: string;
37
40
  scrollbarX: string;
38
41
  scrollbarY: string;
@@ -41,10 +44,13 @@ export interface MenuClasses {
41
44
  scrollbox: string;
42
45
  icon: string;
43
46
  childrenHasExpand: string;
47
+ popover?: string;
48
+ popArrow?: string;
49
+ popArrowDark?: string;
44
50
  }
45
- export type MenuJssStyle = {
51
+ export interface MenuJssStyle extends PopoverJssStyle {
46
52
  menu?: () => MenuClasses;
47
- };
53
+ }
48
54
  /**
49
55
  * @title Menu
50
56
  */
@@ -67,7 +73,7 @@ export interface MenuProps<DataItem, Key extends KeygenResult = KeygenResult> ex
67
73
  * @en theme of menu
68
74
  * @cn 主题
69
75
  */
70
- theme?: 'dark';
76
+ theme?: 'dark' | 'light';
71
77
  /**
72
78
  * @en menu height
73
79
  * @cn 菜单高度
@@ -164,22 +170,25 @@ export interface MenuProps<DataItem, Key extends KeygenResult = KeygenResult> ex
164
170
  */
165
171
  renderItem?: ((data: DataItem, index: number) => React.ReactNode) | ObjectKey<DataItem>;
166
172
  /**
167
- * @en Whether to collapse the menu horizontally
168
- * @cn 是否水平折叠收起菜单
173
+ * @cn 渲染Icon
174
+ * @en Render Icon
175
+ */
176
+ renderIcon?: (data: DataItem) => React.ReactNode;
177
+ /**
178
+ * @cn 是否折叠
179
+ * @en Whether to collapse
169
180
  * @default false
170
181
  */
171
182
  collapse?: boolean;
172
183
  /**
173
- *
174
- * @cn 折叠时的渲染方式,如果为字符串,则会以对应的值作为显示内容;如果为函数,则以函数返回的结果作为显示内容,函数参数为对应的数据对象
175
- * @en Element render mode when collapsed. If it is a string, the corresponding value is taken as the display content; If it is a function, the result returned by the function is taken as the display content.
176
- * @default null
184
+ * @cn 头部内容, 仅在 mode为 'inline' 时生效
177
185
  */
178
- renderCollapse?: (data: DataItem, index: number) => React.ReactNode;
186
+ header?: React.ReactNode;
179
187
  }
180
- export interface MenuItemProps extends UseMenuItemProps, Pick<MenuProps<any, any>, 'renderItem' | 'keygen' | 'linkKey' | 'frontCaret' | 'frontCaretType' | 'caretColor' | 'jssStyle' | 'inlineIndent' | 'collapse' | 'renderCollapse'> {
188
+ export interface MenuItemProps extends UseMenuItemProps, Pick<MenuProps<any, any>, 'renderItem' | 'keygen' | 'linkKey' | 'frontCaret' | 'frontCaretType' | 'caretColor' | 'jssStyle' | 'inlineIndent' | 'theme' | 'renderIcon'> {
181
189
  index: number;
182
190
  level: number;
183
191
  scrollRef: React.MutableRefObject<HTMLDivElement | null>;
192
+ collapse?: boolean;
184
193
  }
185
194
  //# sourceMappingURL=menu.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.type.d.ts","sourceRoot":"","sources":["menu.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.type.d.ts","sourceRoot":"","sources":["menu.type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { MenuSearchProps } from './search.type';
3
+ declare const Search: (props: MenuSearchProps) => JSX.Element;
4
+ export default Search;
5
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["search.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAKhD,QAAA,MAAM,MAAM,UAAW,eAAe,gBAmCrC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,46 @@
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 _excluded = ["tip", "status", "innerTitle", "placeTitle", "onSearchClick", "collpase", "theme", "jssStyle", "className", "style"];
3
+ 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; }
4
+ 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; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
8
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
+ import React from 'react';
11
+ import { Input } from "../input";
12
+ import classNames from 'classnames';
13
+ import Icons from "../icons";
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ var Search = function Search(props) {
16
+ var _jssStyle$menuSearch;
17
+ var _tip = props.tip,
18
+ _status = props.status,
19
+ _innerTitle = props.innerTitle,
20
+ _placeTitle = props.placeTitle,
21
+ onSearchClick = props.onSearchClick,
22
+ collpase = props.collpase,
23
+ _props$theme = props.theme,
24
+ theme = _props$theme === void 0 ? 'light' : _props$theme,
25
+ jssStyle = props.jssStyle,
26
+ className = props.className,
27
+ style = props.style,
28
+ rest = _objectWithoutProperties(props, _excluded);
29
+ var classes = jssStyle === null || jssStyle === void 0 || (_jssStyle$menuSearch = jssStyle.menuSearch) === null || _jssStyle$menuSearch === void 0 ? void 0 : _jssStyle$menuSearch.call(jssStyle);
30
+ var Search = /*#__PURE__*/_jsx("div", {
31
+ className: classes === null || classes === void 0 ? void 0 : classes.search,
32
+ children: Icons.menu.Search
33
+ });
34
+ return /*#__PURE__*/_jsx("div", {
35
+ className: classNames(classes === null || classes === void 0 ? void 0 : classes.wrapper, theme === 'light' && (classes === null || classes === void 0 ? void 0 : classes.wrapperLight), theme === 'dark' && (classes === null || classes === void 0 ? void 0 : classes.wrapperDark), !!rest.disabled && (classes === null || classes === void 0 ? void 0 : classes.wrapperDisabled), collpase && (classes === null || classes === void 0 ? void 0 : classes.wrapperCollapsed), className),
36
+ style: style,
37
+ onClick: onSearchClick,
38
+ children: collpase ? Search : /*#__PURE__*/_jsx(Input, _objectSpread(_objectSpread({
39
+ prefix: Search,
40
+ className: classes === null || classes === void 0 ? void 0 : classes.input
41
+ }, rest), {}, {
42
+ jssStyle: jssStyle
43
+ }))
44
+ });
45
+ };
46
+ export default Search;
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import { InputProps, InputStyle } from '../input/input.type';
3
+ export interface MenuSearchClasses {
4
+ wrapper?: string;
5
+ wrapperDark?: string;
6
+ wrapperLight?: string;
7
+ wrapperCollapsed?: string;
8
+ wrapperDisabled?: string;
9
+ input?: string;
10
+ search?: string;
11
+ }
12
+ export interface MenuSearchStyle extends InputStyle {
13
+ menuSearch?: () => MenuSearchClasses;
14
+ }
15
+ export interface MenuSearchProps extends Omit<InputProps, 'tip' | 'status' | 'innerTitle' | 'placeTitle' | 'error'> {
16
+ /**
17
+ * @cn 是否折叠
18
+ * @en Whether to collapse
19
+ */
20
+ collpase?: boolean;
21
+ /**
22
+ * @cn 主题
23
+ * @en Theme
24
+ */
25
+ theme?: 'dark' | 'light';
26
+ jssStyle?: MenuSearchStyle;
27
+ /**
28
+ * @cn 点击事件
29
+ * @en Click event
30
+ */
31
+ onSearchClick?: (e: React.MouseEvent<HTMLDivElement>) => void;
32
+ }
33
+ //# sourceMappingURL=search.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.type.d.ts","sourceRoot":"","sources":["search.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,UAAU,CAAC,EAAE,MAAM,iBAAiB,CAAC;CACtC;AACD,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAAC;IAClF;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CAC/D"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"modal-content.d.ts","sourceRoot":"","sources":["modal-content.tsx"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAoB9D,QAAA,MAAM,KAAK,UAAW,iBAAiB,uBA+StC,CAAC;AAEF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"modal-content.d.ts","sourceRoot":"","sources":["modal-content.tsx"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAoB9D,QAAA,MAAM,KAAK,UAAW,iBAAiB,uBAgTtC,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -184,10 +184,9 @@ var Modal = function Modal(props) {
184
184
  return function () {
185
185
  var _props$shouldDestroy2;
186
186
  (_props$shouldDestroy2 = props.shouldDestroy) === null || _props$shouldDestroy2 === void 0 || _props$shouldDestroy2.call(props, true);
187
- if (props.autoShow) {
188
- var _props$onClose2;
189
- (_props$onClose2 = props.onClose) === null || _props$onClose2 === void 0 || _props$onClose2.call(props);
190
- }
187
+ // if (props.autoShow) {
188
+ // props.onClose?.();
189
+ // }
191
190
  if (context.isMask) {
192
191
  context.isMask = false;
193
192
  hasMask = false;
@@ -211,8 +210,9 @@ var Modal = function Modal(props) {
211
210
  };
212
211
  var renderHeader = function renderHeader() {
213
212
  var showCloseIcon = maskCloseAble === null || !!maskCloseAble;
213
+ var isEmptyTitle = !props.title && props.title !== 0;
214
214
  return /*#__PURE__*/_jsxs("div", {
215
- className: modalClasses === null || modalClasses === void 0 ? void 0 : modalClasses.header,
215
+ className: classNames(modalClasses === null || modalClasses === void 0 ? void 0 : modalClasses.header, isEmptyTitle && (modalClasses === null || modalClasses === void 0 ? void 0 : modalClasses.headerEmptyTitle)),
216
216
  onMouseDown: props.moveable ? moveInfo.handleMouseDown : undefined,
217
217
  children: [renderIcon(), /*#__PURE__*/_jsx("div", {
218
218
  className: modalClasses === null || modalClasses === void 0 ? void 0 : modalClasses.headerTitle,