@hi-ui/hiui 2.15.10 → 2.15.11

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 (340) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/es/_util/warning.js +2 -2
  3. package/es/alert/__test__/index.test.js +67 -0
  4. package/es/alert/index.js +147 -6
  5. package/es/alert/style/index.css +1 -1
  6. package/es/badge/index.js +87 -9
  7. package/es/badge/style/index.css +1 -1
  8. package/es/badge/style/index.js +0 -0
  9. package/es/button/Button.js +51 -59
  10. package/es/button/ButtonGroup.js +31 -23
  11. package/es/button/IconLoading.js +2 -2
  12. package/es/button/__test__/index.test.js +29 -0
  13. package/es/button/index.js +2 -3
  14. package/es/button/style/index.css +1 -1
  15. package/es/card/index.js +42 -54
  16. package/es/card/style/index.css +1 -1
  17. package/es/cascader/Cascader.js +116 -181
  18. package/es/cascader/__test__/index.test.js +283 -0
  19. package/es/cascader/index.js +2 -5
  20. package/es/cascader/menu.js +155 -0
  21. package/es/cascader/style/cascader.css +1 -1
  22. package/es/cascader/style/menu.css +1 -1
  23. package/es/checkbox/{checkbox-legacy/Base.js → Base.js} +31 -46
  24. package/es/checkbox/CheckBox.js +185 -0
  25. package/es/checkbox/index.js +4 -13
  26. package/es/checkbox/style/index.css +1 -1
  27. package/es/collapse/__test__/index.test.js +58 -0
  28. package/es/collapse/index.js +93 -79
  29. package/es/collapse/style/index.css +1 -1
  30. package/es/confirm/index.js +50 -37
  31. package/es/context/index.js +37 -39
  32. package/es/counter/__test__/index.test.js +52 -0
  33. package/es/counter/index.js +270 -6
  34. package/es/counter/style/index.css +1 -1
  35. package/es/date-picker/BasePicker.js +288 -374
  36. package/es/date-picker/Calender.js +90 -326
  37. package/es/date-picker/DatePanel.js +186 -175
  38. package/es/date-picker/DatePicker.js +51 -151
  39. package/es/date-picker/DateRangePanel.js +181 -253
  40. package/es/date-picker/Modal.js +25 -15
  41. package/es/date-picker/Time.js +336 -230
  42. package/es/date-picker/TimePanel.js +32 -27
  43. package/es/date-picker/TimePeriodPanel.js +32 -21
  44. package/es/date-picker/TimePicker.js +40 -42
  45. package/es/date-picker/TimeRangePanel.js +42 -32
  46. package/es/date-picker/Type.js +1 -5
  47. package/es/date-picker/WeekRangePanel.js +150 -237
  48. package/es/date-picker/constants.js +28 -14
  49. package/es/date-picker/dateUtil.js +52 -221
  50. package/es/date-picker/index.js +2 -5
  51. package/es/date-picker/style/index.css +1 -1
  52. package/es/date-picker/util.js +8 -101
  53. package/es/dropdown/Dropdown.js +199 -193
  54. package/es/dropdown/{tests → __test__}/index.test.js +2 -2
  55. package/es/dropdown/index.js +4 -73
  56. package/es/dropdown/style/index.css +1 -1
  57. package/es/dropdown/style/index.js +2 -0
  58. package/es/ficon/index.js +23 -13
  59. package/es/form/index.js +171 -6
  60. package/es/form/{Item.js → item.js} +53 -53
  61. package/es/form/style/index.css +1 -1
  62. package/es/grid/index.js +37 -25
  63. package/es/icon/index.js +32 -21
  64. package/es/index.js +9 -61
  65. package/es/input/index.js +345 -28
  66. package/es/input/style/index.css +1 -1
  67. package/es/input/util.js +18 -26
  68. package/es/lib/withDragDropContext.js +2 -2
  69. package/es/loading/index.js +129 -5
  70. package/es/loading/style/index.css +0 -0
  71. package/es/loading/style/index.js +0 -0
  72. package/es/locales/en-US.js +11 -45
  73. package/es/locales/index.js +2 -16
  74. package/es/locales/zh-CN.js +12 -46
  75. package/es/menu/Item.js +41 -32
  76. package/es/menu/ItemGroup.js +81 -0
  77. package/es/menu/SubMenu.js +74 -55
  78. package/es/menu/Title.js +42 -36
  79. package/es/menu/index.js +419 -12
  80. package/es/menu/style/index.css +1 -1
  81. package/es/modal/__test__/index.test.js +123 -0
  82. package/es/modal/index.js +61 -77
  83. package/es/modal/style/index.css +1 -1
  84. package/es/nav-menu/NavMenu.js +45 -31
  85. package/es/nav-menu/__test__/index.test.js +2 -2
  86. package/es/nav-menu/index.js +2 -2
  87. package/es/notification/__test__/index.test.js +56 -0
  88. package/es/notification/index.js +231 -68
  89. package/es/notification/style/index.css +1 -1
  90. package/es/notification/style/index.js +0 -0
  91. package/es/pagination/Pager.js +8 -6
  92. package/es/pagination/Pagination.js +115 -124
  93. package/es/pagination/__test__/index.test.js +140 -0
  94. package/es/pagination/index.js +8 -9
  95. package/es/pagination/style/index.css +1 -1
  96. package/es/panel/index.js +33 -23
  97. package/es/popover/__test__/index.test.js +2 -2
  98. package/es/popover/index.js +69 -71
  99. package/es/popper/index.js +54 -64
  100. package/es/popper/style/index.css +1 -1
  101. package/es/progress/BarProgress.js +43 -109
  102. package/es/progress/CircleProgress.js +10 -9
  103. package/es/progress/DashboardProgress.js +9 -7
  104. package/es/progress/index.js +100 -8
  105. package/es/progress/style/index.css +1 -1
  106. package/es/radio/{radio-legacy/__test__ → __test__}/index.test.js +10 -10
  107. package/es/radio/index.js +216 -10
  108. package/es/radio/style/index.css +1 -1
  109. package/es/rate/Icons.js +2 -2
  110. package/es/rate/Rate.js +90 -65
  111. package/es/rate/__test__/index.test.js +54 -0
  112. package/es/rate/index.js +2 -5
  113. package/es/rate/style/index.css +1 -1
  114. package/es/select/Option.js +93 -0
  115. package/es/select/Select.js +253 -325
  116. package/es/select/SelectDropdown.js +63 -215
  117. package/es/select/SelectInput.js +54 -88
  118. package/es/select/__test__/index.test.js +429 -0
  119. package/es/select/index.js +4 -6
  120. package/es/select/style/select-dropdown.css +1 -1
  121. package/es/select/style/select-input.css +1 -1
  122. package/es/stepper/index.js +127 -21
  123. package/es/stepper/style/index.css +1 -1
  124. package/es/style/color/colors.css +0 -0
  125. package/es/style/icon/diyIcon.css +1 -1
  126. package/es/style/icon/index.css +1 -1
  127. package/es/style/index.css +0 -0
  128. package/es/style/mixins/colors.css +0 -0
  129. package/es/style/mixins/index.css +0 -0
  130. package/es/style/theme/dark.css +0 -0
  131. package/es/style/theme/default.css +0 -0
  132. package/es/switch/{__tests__ → __test__}/index.test.js +2 -31
  133. package/es/switch/index.js +36 -24
  134. package/es/switch/style/index.css +1 -1
  135. package/es/table/__test__/index.test.js +73 -0
  136. package/es/table/{Body.js → body.js} +52 -36
  137. package/es/table/checkbox/index.js +36 -33
  138. package/es/table/clickOuterside.js +115 -0
  139. package/es/table/{Footer.js → footer.js} +41 -24
  140. package/es/table/{Header.js → header.js} +54 -41
  141. package/es/table/index.js +300 -262
  142. package/es/table/menu/index.js +34 -32
  143. package/es/table/pover.js +154 -0
  144. package/es/table/prefix.js +2 -2
  145. package/es/table/style/Table.css +1 -1
  146. package/es/table/style/index.css +1 -1
  147. package/es/table/tableContent.js +120 -0
  148. package/es/tabs/ItemDropdown.js +51 -39
  149. package/es/tabs/TabPane.js +35 -25
  150. package/es/tabs/Tabs.js +91 -98
  151. package/es/tabs/index.js +3 -9
  152. package/es/tabs/style/index.css +1 -1
  153. package/es/timeline/__test__/index.test.js +49 -0
  154. package/es/timeline/foldingItem.js +82 -0
  155. package/es/timeline/index.js +127 -203
  156. package/es/timeline/style/index.css +1 -1
  157. package/es/tooltip/__test__/index.test.js +67 -0
  158. package/es/tooltip/index.js +39 -86
  159. package/es/tooltip/style/index.css +1 -1
  160. package/es/transfer/Item.js +44 -53
  161. package/es/transfer/__test__/index.test.js +11 -0
  162. package/es/transfer/index.js +443 -4
  163. package/es/transfer/style/index.css +1 -1
  164. package/es/tree/Tree.js +86 -76
  165. package/es/tree/TreeDivider.js +3 -3
  166. package/es/tree/TreeItem.js +108 -204
  167. package/es/tree/TreeNode.js +318 -457
  168. package/es/tree/index.js +2 -9
  169. package/es/tree/style/index.css +1 -1
  170. package/es/tree/util.js +257 -9
  171. package/es/upload/{upload-legacy/Preview.js → Preview.js} +39 -33
  172. package/es/upload/Upload.js +193 -289
  173. package/es/upload/UploadAvatar.js +58 -44
  174. package/es/upload/UploadClick.js +45 -49
  175. package/es/upload/UploadDrag.js +43 -44
  176. package/es/upload/UploadPhoto.js +55 -70
  177. package/es/upload/UploadPictureCard.js +44 -39
  178. package/es/upload/index.js +71 -8
  179. package/es/upload/style/index.css +1 -1
  180. package/es/upload/tool.js +1 -0
  181. package/package.json +4 -1
  182. package/es/_util/SwitchVersion.js +0 -44
  183. package/es/_util/depreactedPropsCompat.js +0 -58
  184. package/es/_util/index.js +0 -32
  185. package/es/alert/Alert.js +0 -134
  186. package/es/alert/__tests__/index.test.js +0 -88
  187. package/es/badge/Badge.js +0 -90
  188. package/es/badge/__tests__/index.test.js +0 -82
  189. package/es/breadcrumb/__tests__/index.test.js +0 -61
  190. package/es/breadcrumb/index.js +0 -93
  191. package/es/breadcrumb/style/index.css +0 -1
  192. package/es/button/__tests__/index.test.js +0 -219
  193. package/es/card/__tests__/index.test.js +0 -169
  194. package/es/carousel/__tests__/index.test.js +0 -104
  195. package/es/carousel/index.js +0 -227
  196. package/es/carousel/style/index.css +0 -1
  197. package/es/carousel/style/index.js +0 -3
  198. package/es/cascader/Menu.js +0 -174
  199. package/es/cascader/__tests__/index.test.js +0 -389
  200. package/es/checkbox/Checkbox.js +0 -144
  201. package/es/checkbox/Group.js +0 -202
  202. package/es/checkbox/__tests__/index.test.js +0 -226
  203. package/es/checkbox/checkbox-legacy/CheckBox.js +0 -165
  204. package/es/checkbox/checkbox-legacy/index.js +0 -15
  205. package/es/checkbox/checkbox-legacy/style/index.css +0 -1
  206. package/es/checkbox/checkbox-legacy/style/index.js +0 -3
  207. package/es/collapse/__tests__/index.test.js +0 -111
  208. package/es/counter/Counter.js +0 -343
  209. package/es/counter/__tests__/index.test.js +0 -134
  210. package/es/counter/counter-legacy/index.js +0 -271
  211. package/es/date-picker/TimeList.js +0 -254
  212. package/es/date-picker/YMRangePanel.js +0 -372
  213. package/es/date-picker/__tests__/index.test.js +0 -961
  214. package/es/date-picker/datepicker-legacy/BasePicker.js +0 -519
  215. package/es/date-picker/datepicker-legacy/Calender.js +0 -430
  216. package/es/date-picker/datepicker-legacy/DatePanel.js +0 -463
  217. package/es/date-picker/datepicker-legacy/DatePicker.js +0 -107
  218. package/es/date-picker/datepicker-legacy/DateRangePanel.js +0 -496
  219. package/es/date-picker/datepicker-legacy/Modal.js +0 -71
  220. package/es/date-picker/datepicker-legacy/Time.js +0 -413
  221. package/es/date-picker/datepicker-legacy/TimePanel.js +0 -93
  222. package/es/date-picker/datepicker-legacy/TimePeriodPanel.js +0 -126
  223. package/es/date-picker/datepicker-legacy/TimePicker.js +0 -82
  224. package/es/date-picker/datepicker-legacy/TimeRangePanel.js +0 -98
  225. package/es/date-picker/datepicker-legacy/Type.js +0 -31
  226. package/es/date-picker/datepicker-legacy/WeekRangePanel.js +0 -345
  227. package/es/date-picker/datepicker-legacy/constants.js +0 -79
  228. package/es/date-picker/datepicker-legacy/dateUtil.js +0 -258
  229. package/es/date-picker/datepicker-legacy/index.js +0 -15
  230. package/es/date-picker/datepicker-legacy/local.js +0 -11
  231. package/es/date-picker/datepicker-legacy/style/index.css +0 -1
  232. package/es/date-picker/datepicker-legacy/style/index.js +0 -3
  233. package/es/date-picker/datepicker-legacy/style/timepicker.css +0 -1
  234. package/es/date-picker/datepicker-legacy/util.js +0 -60
  235. package/es/date-picker/toLunar.js +0 -172
  236. package/es/dropdown/DropdownButton.js +0 -106
  237. package/es/dropdown/DropdownMenu.js +0 -111
  238. package/es/dropdown/DropdownMenuItem.js +0 -178
  239. package/es/dropdown/__tests__/index.test.js +0 -317
  240. package/es/dropdown/utils.js +0 -35
  241. package/es/form/Form.js +0 -184
  242. package/es/form/__tests__/index.test.js +0 -575
  243. package/es/grid/__tests__/index.test.js +0 -104
  244. package/es/input/Input.js +0 -412
  245. package/es/input/__tests__/index.test.js +0 -381
  246. package/es/input/input-legacy/index.js +0 -353
  247. package/es/input/input-legacy/util.js +0 -176
  248. package/es/loading/Loading.js +0 -181
  249. package/es/loading/__tests__/index.test.js +0 -110
  250. package/es/locales/zh-Hant-HK.js +0 -121
  251. package/es/locales/zh-Hant-TW.js +0 -123
  252. package/es/menu/Menu.js +0 -422
  253. package/es/menu/__tests__/index.test.js +0 -279
  254. package/es/message/__tests__/index.test.js +0 -75
  255. package/es/message/index.js +0 -58
  256. package/es/message/style/index.css +0 -1
  257. package/es/message/style/index.js +0 -5
  258. package/es/modal/__tests__/index.test.js +0 -178
  259. package/es/nav-menu/__tests__/index.test.js +0 -27
  260. package/es/notice/Notice.js +0 -142
  261. package/es/notice/NoticeContainer.js +0 -113
  262. package/es/notice/__tests__/index.test.js +0 -174
  263. package/es/notice/index.js +0 -66
  264. package/es/notice/style/index.css +0 -1
  265. package/es/notice/style/index.js +0 -5
  266. package/es/notification/HandleNotification/index.js +0 -224
  267. package/es/notification/HandleNotification/style/index.css +0 -1
  268. package/es/notification/HandleNotification/style/index.js +0 -5
  269. package/es/notification/__tests__/index.test.js +0 -118
  270. package/es/pagination/__tests__/index.test.js +0 -248
  271. package/es/popover/__tests__/index.test.js +0 -152
  272. package/es/preview/index.js +0 -527
  273. package/es/preview/style/index.css +0 -1
  274. package/es/preview/style/index.js +0 -3
  275. package/es/progress/Progress.js +0 -110
  276. package/es/progress/__tests__/index.test.js +0 -131
  277. package/es/radio/Group.js +0 -203
  278. package/es/radio/Radio.js +0 -151
  279. package/es/radio/__tests__/index.test.js +0 -128
  280. package/es/radio/radio-legacy/index.js +0 -222
  281. package/es/radio/radio-legacy/style/index.css +0 -1
  282. package/es/radio/radio-legacy/style/index.js +0 -3
  283. package/es/rate/__tests__/index.test.js +0 -124
  284. package/es/select/__tests__/index.test.js +0 -505
  285. package/es/select/select-legacy/Option.js +0 -81
  286. package/es/select/select-legacy/Select.js +0 -710
  287. package/es/select/select-legacy/SelectDropdown.js +0 -164
  288. package/es/select/select-legacy/SelectInput.js +0 -312
  289. package/es/select/select-legacy/common.js +0 -19
  290. package/es/select/select-legacy/index.js +0 -16
  291. package/es/stepper/Stepper.js +0 -151
  292. package/es/stepper/__tests__/index.test.js +0 -161
  293. package/es/table/ClickOuterside.js +0 -103
  294. package/es/table/TableContent.js +0 -109
  295. package/es/table/__tests__/index.test.js +0 -133
  296. package/es/table/checkbox/style/index.css +0 -1
  297. package/es/table/checkbox/style/index.js +0 -3
  298. package/es/tabs/__tests__/index.test.js +0 -333
  299. package/es/tabs/tabs-legacy/ItemDropdown.js +0 -170
  300. package/es/tabs/tabs-legacy/TabPane.js +0 -78
  301. package/es/tabs/tabs-legacy/Tabs.js +0 -299
  302. package/es/tabs/tabs-legacy/index.js +0 -18
  303. package/es/tabs/tabs-legacy/style/index.css +0 -1
  304. package/es/tabs/tabs-legacy/style/index.js +0 -3
  305. package/es/tag/__tests__/index.test.js +0 -46
  306. package/es/tag/index.js +0 -94
  307. package/es/tag/style/index.css +0 -1
  308. package/es/tag/style/index.js +0 -3
  309. package/es/timeline/__tests__/index.test.js +0 -198
  310. package/es/tooltip/__tests__/index.test.js +0 -170
  311. package/es/transfer/Transfer.js +0 -566
  312. package/es/transfer/__tests__/index.test.js +0 -210
  313. package/es/tree/IconLoading.js +0 -38
  314. package/es/tree/__tests__/index.test.js +0 -603
  315. package/es/tree/tree-legacy/Tree.js +0 -337
  316. package/es/tree/tree-legacy/TreeDivider.js +0 -25
  317. package/es/tree/tree-legacy/TreeItem.js +0 -333
  318. package/es/tree/tree-legacy/TreeNode.js +0 -719
  319. package/es/tree/tree-legacy/index.js +0 -13
  320. package/es/tree/tree-legacy/style/index.css +0 -1
  321. package/es/tree/tree-legacy/style/index.js +0 -3
  322. package/es/tree/tree-legacy/util.js +0 -434
  323. package/es/upload/__tests__/index.test.js +0 -760
  324. package/es/upload/main.js +0 -91
  325. package/es/upload/upload-legacy/Upload.js +0 -435
  326. package/es/upload/upload-legacy/UploadAvatar.js +0 -322
  327. package/es/upload/upload-legacy/UploadClick.js +0 -125
  328. package/es/upload/upload-legacy/UploadDrag.js +0 -180
  329. package/es/upload/upload-legacy/UploadPhoto.js +0 -183
  330. package/es/upload/upload-legacy/UploadPictureCard.js +0 -126
  331. package/es/upload/upload-legacy/index.js +0 -75
  332. package/es/upload/upload-legacy/style/index.css +0 -1
  333. package/es/upload/upload-legacy/style/index.js +0 -5
  334. package/es/upload/upload-legacy/tool.js +0 -84
  335. package/es/watermark/index.js +0 -101
  336. package/es/watermark/watermark.js +0 -252
  337. /package/es/checkbox/{checkbox-legacy/common.js → common.js} +0 -0
  338. /package/es/{breadcrumb/style → style}/index.js +0 -0
  339. /package/es/upload/{upload-legacy/style → style}/preview.css +0 -0
  340. /package/es/upload/{upload-legacy/style → style}/preview.js +0 -0
package/es/menu/Menu.js DELETED
@@ -1,422 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _react = _interopRequireWildcard(require("react"));
27
-
28
- var _lodash = _interopRequireDefault(require("lodash"));
29
-
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
- var _classnames = _interopRequireDefault(require("classnames"));
33
-
34
- var _Title = _interopRequireDefault(require("./Title"));
35
-
36
- var _Item = _interopRequireDefault(require("./Item"));
37
-
38
- var _SubMenu = _interopRequireDefault(require("./SubMenu"));
39
-
40
- require("./style/index");
41
-
42
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
-
44
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
45
-
46
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
47
-
48
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
49
-
50
- var Menu = /*#__PURE__*/function (_Component) {
51
- (0, _inherits2["default"])(Menu, _Component);
52
-
53
- var _super = _createSuper(Menu);
54
-
55
- function Menu(props) {
56
- var _this;
57
-
58
- (0, _classCallCheck2["default"])(this, Menu);
59
- _this = _super.call(this, props);
60
- var _this$props = _this.props,
61
- activeId = _this$props.activeId,
62
- collapsed = _this$props.collapsed;
63
-
64
- var activeIndex = _this.getActiveIndex(activeId);
65
-
66
- var expandIndex = [];
67
- _this.clickOutsideHandel = _this.clickOutside.bind((0, _assertThisInitialized2["default"])(_this));
68
-
69
- if (_this.isNoMiniVertaicalMenu(collapsed)) {
70
- // 垂直非mini菜单默认打开激活项
71
- expandIndex = [activeIndex.split('-').slice(0, -1).join('-')];
72
- }
73
-
74
- _this.state = {
75
- activeId: _this.props.activeId,
76
- expandIndex: expandIndex,
77
- activeIndex: activeIndex,
78
- collapsed: collapsed
79
- };
80
- _this.clickInsideFlag = false; // click在menu标识
81
-
82
- return _this;
83
- }
84
-
85
- (0, _createClass2["default"])(Menu, [{
86
- key: "componentWillReceiveProps",
87
- value: function componentWillReceiveProps(nextProps) {
88
- var activeId = nextProps.activeId,
89
- data = nextProps.data,
90
- collapsed = nextProps.collapsed;
91
-
92
- if (activeId !== this.props.activeId || !_lodash["default"].isEqual(data, this.props.data)) {
93
- var activeIndex = this.getActiveIndex(activeId, data);
94
- this.setState({
95
- activeId: activeId,
96
- activeIndex: activeIndex
97
- });
98
- this.isNoMiniVertaicalMenu(collapsed) && this.setState({
99
- expandIndex: [activeIndex.split('-').slice(0, -1).join('-')]
100
- });
101
- }
102
-
103
- if (collapsed !== this.props.collapsed) {
104
- this.setState({
105
- collapsed: collapsed
106
- });
107
- }
108
- }
109
- }, {
110
- key: "componentDidMount",
111
- value: function componentDidMount() {
112
- window.addEventListener('click', this.clickOutsideHandel);
113
- }
114
- }, {
115
- key: "componentWillUnmount",
116
- value: function componentWillUnmount() {
117
- window.removeEventListener('click', this.clickOutsideHandel);
118
- }
119
- }, {
120
- key: "clickOutside",
121
- value: function clickOutside() {
122
- if (!this.clickInsideFlag && !this.isNoMiniVertaicalMenu()) {
123
- this.setState({
124
- expandIndex: []
125
- });
126
- }
127
-
128
- this.clickInsideFlag = false;
129
- }
130
- }, {
131
- key: "clickInside",
132
- value: function clickInside() {
133
- this.clickInsideFlag = true;
134
- }
135
- }, {
136
- key: "getExpandIndex",
137
- value: function getExpandIndex(clickedIndex) {
138
- if (!clickedIndex) {
139
- return [];
140
- }
141
-
142
- var accordion = this.props.accordion;
143
- var expandIndex = this.state.expandIndex;
144
- var _clickedIndex = clickedIndex;
145
- var subInExpandIndex = false;
146
-
147
- var _expandIndex = expandIndex.filter(function (item) {
148
- // 点击父菜单时,需要把已展开的子菜单过滤掉,因为父菜单关闭时所有子菜单也要关闭
149
- var flag = item.startsWith(_clickedIndex);
150
-
151
- if (flag) {
152
- subInExpandIndex = true;
153
- }
154
-
155
- return !flag;
156
- });
157
-
158
- subInExpandIndex && _expandIndex.push(_clickedIndex); // subInExpandIndex为true说明其有子菜单被展开,在点击需要关闭
159
-
160
- var index = _expandIndex.indexOf(clickedIndex);
161
-
162
- if (index > -1) {
163
- // 点击同一个submenu,如果已展开则关闭
164
- _clickedIndex = clickedIndex.split('-').slice(0, -1).join('-');
165
- }
166
-
167
- if (!accordion && this.isNoMiniVertaicalMenu()) {
168
- // 非手风琴模式只有在垂直非mini状态下才生效
169
- index > -1 ? _expandIndex.splice(index, 1, _clickedIndex) : _expandIndex.push(_clickedIndex);
170
- return _expandIndex;
171
- } else {
172
- return _clickedIndex ? [_clickedIndex] : [];
173
- }
174
- }
175
- }, {
176
- key: "isNoMiniVertaicalMenu",
177
- value: function isNoMiniVertaicalMenu() {
178
- var collapsed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.collapsed;
179
- // 垂直非mini菜单
180
- return this.props.placement === 'vertical' && !collapsed;
181
- }
182
- }, {
183
- key: "getActiveMenus",
184
- value: function getActiveMenus(menus, activeId) {
185
- var activeMenus = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
186
- var result;
187
-
188
- for (var index in menus) {
189
- var _activeMenus = (0, _toConsumableArray2["default"])(activeMenus);
190
-
191
- if (menus[index].id === activeId) {
192
- _activeMenus.push(index);
193
-
194
- result = _activeMenus;
195
- } else if (menus[index].children) {
196
- _activeMenus.push(index);
197
-
198
- result = this.getActiveMenus(menus[index].children, activeId, _activeMenus);
199
- }
200
-
201
- if (result) {
202
- break;
203
- }
204
- }
205
-
206
- if (result) {
207
- return result;
208
- }
209
- }
210
- }, {
211
- key: "getActiveIndex",
212
- value: function getActiveIndex(activeId, menu) {
213
- // 获取激活item对应的索引,以'-'拼接成字符串
214
- var data = this.props.data;
215
-
216
- if (activeId === undefined || activeId === '') {
217
- return '';
218
- }
219
-
220
- var activeMenus = this.getActiveMenus(menu || data, activeId, []);
221
- return activeMenus && activeMenus.join('-') || '';
222
- }
223
- }, {
224
- key: "toggleMini",
225
- value: function toggleMini() {
226
- var _this2 = this;
227
-
228
- var collapsed = !this.state.collapsed;
229
- var expandIndex = collapsed ? [] : this.state.expandIndex;
230
- setTimeout(function () {
231
- _this2.setState({
232
- collapsed: collapsed,
233
- expandIndex: expandIndex
234
- }, function () {
235
- _this2.props.onCollapse && _this2.props.onCollapse(collapsed);
236
- });
237
- }, 0);
238
- }
239
- }, {
240
- key: "onClick",
241
- value: function onClick(indexs, id, data) {
242
- var _this3 = this;
243
-
244
- var expandIndex = this.isNoMiniVertaicalMenu() ? this.state.expandIndex : this.getExpandIndex(''); // 非mini垂直菜单选中时不需要收起子菜单
245
-
246
- var oldId = this.state.activeId;
247
- this.setState({
248
- activeId: id,
249
- activeIndex: indexs,
250
- expandIndex: expandIndex
251
- }, function () {
252
- _this3.props.onClick(id, oldId, data);
253
- });
254
- }
255
- }, {
256
- key: "onClickSubMenu",
257
- value: function onClickSubMenu(index) {
258
- var _this4 = this;
259
-
260
- var expandIndex = this.getExpandIndex(index);
261
- this.clickInside();
262
- this.setState({
263
- expandIndex: expandIndex
264
- }, function () {
265
- index && _this4.props.onClickSubMenu && _this4.props.onClickSubMenu(index.split('-'));
266
- });
267
- }
268
- }, {
269
- key: "renderItem",
270
- value: function renderItem(data, index) {
271
- var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
272
- // render menu item
273
- var activeIndex = this.state.activeIndex;
274
- var mergeProps = Object.assign({
275
- onClick: this.onClick.bind(this),
276
- id: data.id,
277
- icon: data.icon,
278
- activeIndex: activeIndex,
279
- index: index,
280
- disabled: data.disabled,
281
- key: index,
282
- data: data
283
- }, props);
284
- return /*#__PURE__*/_react["default"].createElement(_Item["default"], mergeProps, data.content);
285
- }
286
- }, {
287
- key: "renderFatSubMenu",
288
- value: function renderFatSubMenu(data, parentIndex) {
289
- var _this5 = this;
290
-
291
- // render胖菜单
292
- var groups = [];
293
- data.forEach(function (dataItem, groupIndex) {
294
- groups.push( /*#__PURE__*/_react["default"].createElement("li", {
295
- className: "hi-menu-fat",
296
- key: groupIndex
297
- }, /*#__PURE__*/_react["default"].createElement("div", {
298
- className: "hi-menu-fat__title hi-menu__title"
299
- }, /*#__PURE__*/_react["default"].createElement(_Title["default"], {
300
- icon: dataItem.icon,
301
- content: dataItem.content
302
- })), dataItem.children && /*#__PURE__*/_react["default"].createElement("ul", {
303
- className: "hi-menu-fat__content"
304
- }, dataItem.children.map(function (child, index) {
305
- return _this5.renderItem(child, parentIndex + '-' + groupIndex + '-' + index, {
306
- level: 2
307
- });
308
- }))));
309
- });
310
- return groups;
311
- }
312
- }, {
313
- key: "renderMenu",
314
- value: function renderMenu(data) {
315
- var _this6 = this;
316
-
317
- var parentIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
318
- var _this$props2 = this.props,
319
- showAllSubMenus = _this$props2.showAllSubMenus,
320
- placement = _this$props2.placement,
321
- theme = _this$props2.theme;
322
- var _this$state = this.state,
323
- activeIndex = _this$state.activeIndex,
324
- expandIndex = _this$state.expandIndex,
325
- collapsed = _this$state.collapsed;
326
- var items = [];
327
- var renderMenu = showAllSubMenus ? this.renderFatSubMenu.bind(this) : this.renderMenu.bind(this);
328
- data.forEach(function (item, index) {
329
- var indexStr = parentIndex !== '' ? parentIndex + '-' + index : '' + index;
330
- var level = indexStr.split('-').length;
331
-
332
- if (item.children) {
333
- items.push( /*#__PURE__*/_react["default"].createElement(_SubMenu["default"], {
334
- key: index,
335
- theme: theme,
336
- onClick: _this6.onClickSubMenu.bind(_this6),
337
- clickInside: _this6.clickInside.bind(_this6),
338
- index: indexStr,
339
- level: level,
340
- fatMenu: showAllSubMenus,
341
- activeIndex: activeIndex,
342
- expandIndex: expandIndex,
343
- disabled: item.disabled,
344
- content: item.content,
345
- icon: item.icon,
346
- renderMenu: renderMenu,
347
- datas: item.children,
348
- mode: placement,
349
- mini: collapsed
350
- }));
351
- } else {
352
- items.push(_this6.renderItem(item, indexStr, {
353
- level: level,
354
- placement: placement,
355
- mini: collapsed
356
- }));
357
- }
358
- });
359
- return items;
360
- }
361
- }, {
362
- key: "render",
363
- value: function render() {
364
- var _this$props3 = this.props,
365
- data = _this$props3.data,
366
- placement = _this$props3.placement,
367
- showCollapse = _this$props3.showCollapse,
368
- theme = _this$props3.theme;
369
- var collapsed = this.state.collapsed;
370
- var cls = (0, _classnames["default"])('hi-menu', "theme__".concat(theme), "hi-menu--".concat(placement), {
371
- 'hi-menu--mini': collapsed
372
- });
373
-
374
- var miniIcon = /*#__PURE__*/_react["default"].createElement("i", {
375
- className: "hi-icon icon-".concat(collapsed ? 'Expand' : 'Collapse')
376
- });
377
-
378
- return /*#__PURE__*/_react["default"].createElement("div", {
379
- className: cls
380
- }, /*#__PURE__*/_react["default"].createElement("ul", {
381
- className: "hi-menu-items"
382
- }, this.renderMenu(data)), placement === 'vertical' && showCollapse && /*#__PURE__*/_react["default"].createElement("div", {
383
- className: "hi-menu--mini__toggle",
384
- onClick: this.toggleMini.bind(this)
385
- }, miniIcon));
386
- }
387
- }]);
388
- return Menu;
389
- }(_react.Component);
390
-
391
- Menu.defaultProps = {
392
- placement: 'vertical',
393
- onClick: function onClick() {},
394
- activeId: '',
395
- collapsed: false,
396
- showCollapse: false,
397
- showAllSubMenus: false,
398
- accordion: true
399
- };
400
- Menu.propTypes = {
401
- data: _propTypes["default"].arrayOf(_propTypes["default"].shape({
402
- content: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
403
- id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
404
- disabled: _propTypes["default"].bool,
405
- icon: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].node]),
406
- children: _propTypes["default"].array
407
- })),
408
- activeId: _propTypes["default"].string,
409
- placement: _propTypes["default"].oneOf(['horizontal', 'vertical']),
410
- collapsed: _propTypes["default"].bool,
411
- // 是否是mini模式,需要同时placement=vertical时才生效
412
- showCollapse: _propTypes["default"].bool,
413
- // mini状态开关,需要同时placement=vertical时才生效
414
- showAllSubMenus: _propTypes["default"].bool,
415
- // 胖菜单,需要同时placement=horizontal时才生效
416
- accordion: _propTypes["default"].bool,
417
- onClick: _propTypes["default"].func,
418
- onClickSubMenu: _propTypes["default"].func,
419
- onCollapse: _propTypes["default"].func
420
- };
421
- var _default = Menu;
422
- exports["default"] = _default;