@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
@@ -1,505 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = _interopRequireDefault(require("react"));
6
-
7
- var _enzyme = require("enzyme");
8
-
9
- var _testUtils = require("react-dom/test-utils");
10
-
11
- var _sinon = _interopRequireDefault(require("sinon"));
12
-
13
- var _ = _interopRequireDefault(require("../"));
14
-
15
- /* eslint-env jest */
16
- var changeCallback = jest.fn(function (items) {
17
- return items;
18
- });
19
- var successCallback = jest.fn(function (res) {
20
- return res.data;
21
- });
22
- var errorCallback = jest.fn(function (err) {
23
- return err;
24
- });
25
- jest.mock('lodash/debounce', function () {
26
- return jest.fn(function (fn) {
27
- return fn;
28
- });
29
- });
30
-
31
- function trigger(elem, event, code) {
32
- var myEvent = document.createEvent('Event'); // 初始化这个事件对象,为它提高需要的“特性”
33
-
34
- if (code) {
35
- myEvent.which = code;
36
- myEvent.keyCode = code; // Ctrl
37
- }
38
-
39
- myEvent.initEvent(event, true, true); //执行事件
40
-
41
- elem.dispatchEvent(myEvent);
42
- }
43
-
44
- var options = [{
45
- title: '电视',
46
- id: '3'
47
- }, {
48
- title: '手机',
49
- id: '2'
50
- }, {
51
- title: '笔记本',
52
- id: '4'
53
- }, {
54
- title: '生活周边',
55
- id: '5'
56
- }, {
57
- title: '办公',
58
- id: '6'
59
- }];
60
- var multiOptions = [{
61
- title: '手机',
62
- id: '2'
63
- }, {
64
- title: '小米2',
65
- id: '2-1'
66
- }, {
67
- title: '小米3',
68
- id: '2-2'
69
- }, {
70
- title: '小米4',
71
- id: '2-3'
72
- }, {
73
- title: '小米5',
74
- id: '2-4'
75
- }, {
76
- title: '电脑',
77
- id: '3'
78
- }, {
79
- title: '笔记本',
80
- id: '4'
81
- }, {
82
- title: '生活周边',
83
- id: '5'
84
- }, {
85
- title: '其它',
86
- id: '6'
87
- }];
88
- var types = ['single', 'multiple'];
89
- describe('Select', function () {
90
- beforeEach(function () {
91
- jest.useFakeTimers();
92
- });
93
- afterEach(function () {
94
- jest.useRealTimers();
95
- });
96
- it('should disabled', function () {
97
- types.forEach(function (type) {
98
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
99
- type: type,
100
- disabled: true,
101
- style: {
102
- width: 200
103
- },
104
- data: options
105
- }));
106
- expect(wrapper.find('.hi-select__input').hasClass('disabled')).toEqual(true);
107
- wrapper.find('.hi-select__input').simulate('click');
108
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(false);
109
- wrapper.unmount();
110
- });
111
- });
112
- it('should have default value', function () {
113
- types.forEach(function (type) {
114
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
115
- type: type,
116
- style: {
117
- width: 200
118
- },
119
- data: type === 'single' ? options : multiOptions,
120
- defaultValue: type === 'single' ? '3' : ['2', '3']
121
- }));
122
-
123
- if (type === 'single') {
124
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item__name').text()).toEqual('电视');
125
- wrapper.find('.hi-select__input').simulate('click');
126
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(true);
127
- document.querySelectorAll('.hi-select__dropdown--item')[2].click();
128
- wrapper.update();
129
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(false);
130
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item__name').text()).toEqual('笔记本');
131
- }
132
-
133
- if (type === 'multiple') {
134
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item').map(function (val) {
135
- return val.find('.hi-select__input--item__name').text();
136
- })).toEqual(['手机', '电脑']);
137
- wrapper.find('.hi-select__input').simulate('click');
138
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(true);
139
- document.querySelectorAll('.hi-select__dropdown')[0].querySelectorAll('.hi-select__dropdown--item')[2].click();
140
- wrapper.update();
141
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(true);
142
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item').map(function (val) {
143
- return val.find('.hi-select__input--item__name').text();
144
- })).toEqual(['手机', '电脑', '小米3']);
145
- }
146
-
147
- wrapper.unmount();
148
- });
149
- });
150
- it('should control by value', function () {
151
- types.forEach(function (type) {
152
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
153
- type: type,
154
- style: {
155
- width: 200
156
- },
157
- data: type === 'single' ? options : multiOptions,
158
- value: type === 'single' ? '2' : ['2', '4'],
159
- defaultValue: type === 'single' ? '3' : ['2', '3']
160
- }));
161
-
162
- if (type === 'single') {
163
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item__name').text()).toEqual('手机');
164
- wrapper.find('.hi-select__input').simulate('click');
165
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(true);
166
- document.querySelectorAll('.hi-select__dropdown--item')[2].click();
167
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item__name').text()).toEqual('手机');
168
- wrapper.setProps({
169
- value: '6'
170
- });
171
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item__name').text()).toEqual('办公');
172
- }
173
-
174
- if (type === 'multiple') {
175
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item').map(function (val) {
176
- return val.find('.hi-select__input--item__name').text();
177
- })).toEqual(['手机', '笔记本']);
178
- wrapper.find('.hi-select__input').simulate('click');
179
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(true);
180
- document.querySelectorAll('.hi-select__dropdown')[0].querySelectorAll('.hi-select__dropdown--item')[2].click();
181
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item').map(function (val) {
182
- return val.find('.hi-select__input--item__name').text();
183
- })).toEqual(['手机', '笔记本']);
184
- wrapper.setProps({
185
- value: ['4', '5', '6']
186
- });
187
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item').map(function (val) {
188
- return val.find('.hi-select__input--item__name').text();
189
- })).toEqual(['笔记本', '生活周边', '其它']);
190
- }
191
-
192
- wrapper.unmount();
193
- });
194
- });
195
- it('should can delete one in multiple select', function () {
196
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
197
- type: "multiple",
198
- style: {
199
- width: '300px'
200
- },
201
- optionWidth: 400,
202
- data: multiOptions,
203
- defaultValue: ['4', '5', '2', '3'],
204
- searchable: true,
205
- placeholder: "\u8BF7\u9009\u62E9...",
206
- noFoundTip: "\u65E0\u5339\u914D\u6570\u636E",
207
- onChange: changeCallback
208
- }));
209
- expect(wrapper.find('.hi-select__input--item')).toHaveLength(4);
210
- wrapper.find('.hi-select__input--item__remove').at(0).simulate('click'); // 删除第一个
211
-
212
- expect(wrapper.find('.hi-select__input--item')).toHaveLength(3);
213
- wrapper.unmount();
214
- });
215
- it('should can delete all in multiple select', function () {
216
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
217
- type: "multiple",
218
- style: {
219
- width: '300px'
220
- },
221
- optionWidth: 400,
222
- data: multiOptions,
223
- defaultValue: ['4', '5', '2', '3'],
224
- searchable: true,
225
- placeholder: "\u8BF7\u9009\u62E9...",
226
- noFoundTip: "\u65E0\u5339\u914D\u6570\u636E",
227
- onChange: changeCallback
228
- }));
229
- expect(wrapper.find('.hi-select__input--item')).toHaveLength(4);
230
- wrapper.find('.hi-select__input').simulate('focus');
231
- wrapper.find('.hi-select__input--icon__close').simulate('click');
232
- expect(wrapper.find('.hi-select__input--item')).toHaveLength(0);
233
- wrapper.unmount();
234
- });
235
- it('should can check all in multiple select', function () {
236
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
237
- type: "multiple",
238
- style: {
239
- width: '300px'
240
- },
241
- optionWidth: 400,
242
- data: multiOptions,
243
- defaultValue: ['4', '5', '2', '3'],
244
- searchable: true,
245
- showCheckAll: true,
246
- placeholder: "\u8BF7\u9009\u62E9...",
247
- noFoundTip: "\u65E0\u5339\u914D\u6570\u636E"
248
- }));
249
- wrapper.find('.hi-select__input').simulate('click');
250
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(true);
251
- document.querySelector('.hi-select__dropdown__searchbar--input').value = '米';
252
- trigger(document.querySelector('.hi-select__dropdown__searchbar--input'), 'input');
253
- document.querySelectorAll('.hi-select__dropdown-check-all')[0].click();
254
- expect(document.querySelectorAll('.hi-checkbox__input--checked')).toHaveLength(4);
255
- wrapper.unmount();
256
- });
257
- it('should custom render dropdown list', function () {
258
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
259
- placeholder: "\u8BF7\u9009\u62E9\u79CD\u7C7B",
260
- style: {
261
- width: '200px'
262
- },
263
- value: '3',
264
- data: options,
265
- searchable: true,
266
- render: function render(item, isSelected) {
267
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
268
- className: "option-left",
269
- style: {
270
- "float": 'left'
271
- }
272
- }, item.name), /*#__PURE__*/_react["default"].createElement("span", {
273
- className: "option-right",
274
- style: {
275
- "float": 'right',
276
- color: '#999',
277
- fontSize: 14
278
- }
279
- }, item.id));
280
- }
281
- }));
282
- wrapper.find('.hi-select__input').simulate('click'); // 展开
283
-
284
- expect(document.querySelectorAll('.option-left')).toHaveLength(5); // 测试自定义模板
285
-
286
- expect(document.querySelectorAll('.option-right')).toHaveLength(5);
287
- wrapper.unmount();
288
- });
289
- it('should handle keydown', function () {
290
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
291
- type: "single",
292
- placeholder: "\u8BF7\u9009\u62E9\u79CD\u7C7B",
293
- style: {
294
- width: '200px'
295
- },
296
- defaultValue: '3',
297
- data: options
298
- }));
299
- wrapper.find('.hi-select__input').simulate('click');
300
-
301
- _testUtils.Simulate.mouseEnter(document.querySelectorAll('.hi-select__dropdown--item')[1]);
302
-
303
- expect(document.querySelectorAll('.hi-select__dropdown--item')[1].getAttribute('data-focused')).toEqual('true');
304
- wrapper.unmount();
305
- });
306
- it('should handle mouseEnter', function () {
307
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
308
- type: "single",
309
- placeholder: "\u8BF7\u9009\u62E9\u79CD\u7C7B",
310
- style: {
311
- width: '200px'
312
- },
313
- defaultValue: '3',
314
- data: options
315
- }));
316
- wrapper.find('.hi-select__input').simulate('click');
317
- expect(document.querySelectorAll('.hi-select__dropdown--item')[0].getAttribute('data-focused')).toEqual('true');
318
- wrapper.find('.hi-select__input--search').find('input').simulate('keydown', {
319
- keyCode: 40
320
- });
321
- expect(document.querySelectorAll('.hi-select__dropdown--item')[0].getAttribute('data-focused')).toEqual('false');
322
- wrapper.find('.hi-select__input--search').find('input').simulate('keydown', {
323
- keyCode: 13
324
- });
325
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item__name').text()).toEqual('手机');
326
- wrapper.find('.hi-select__input').simulate('click');
327
- wrapper.find('.hi-select__input--search').find('input').simulate('keydown', {
328
- keyCode: 38
329
- });
330
- wrapper.find('.hi-select__input--search').find('input').simulate('keydown', {
331
- keyCode: 13
332
- });
333
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item__name').text()).toEqual('电视');
334
- wrapper.unmount();
335
- });
336
- it('should handle mouseEnter when searchable', function () {
337
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
338
- type: "single",
339
- placeholder: "\u8BF7\u9009\u62E9\u79CD\u7C7B",
340
- style: {
341
- width: '200px'
342
- },
343
- searchable: true,
344
- defaultValue: '2',
345
- data: options
346
- }));
347
- wrapper.find('.hi-select__input').simulate('click');
348
- expect(document.querySelectorAll('.hi-select__dropdown__searchbar--input')).toHaveLength(1);
349
- trigger(document.querySelector('.hi-select__dropdown__searchbar--input'), 'focus');
350
- trigger(document.querySelector('.hi-select__dropdown__searchbar--input'), 'keydown', 40);
351
- expect(document.querySelectorAll('.hi-select__dropdown--item')[1].getAttribute('data-focused')).toEqual('true');
352
- trigger(document.querySelector('.hi-select__dropdown__searchbar--input'), 'keydown', 13);
353
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item__name').text()).toEqual('手机');
354
- wrapper.find('.hi-select__input').simulate('click');
355
- trigger(document.querySelector('.hi-select__dropdown__searchbar--input'), 'focus');
356
- trigger(document.querySelector('.hi-select__dropdown__searchbar--input'), 'keydown', 38);
357
- expect(document.querySelectorAll('.hi-select__dropdown--item')[0].getAttribute('data-focused')).toEqual('true');
358
- trigger(document.querySelector('.hi-select__dropdown__searchbar--input'), 'keydown', 13);
359
- expect(wrapper.find('.hi-select__input').find('.hi-select__input--item__name').text()).toEqual('电视');
360
- wrapper.unmount();
361
- });
362
- it('should close when click outside', function () {
363
- var outsideDom = document.createElement('div');
364
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
365
- type: "single",
366
- placeholder: "\u8BF7\u9009\u62E9\u79CD\u7C7B",
367
- style: {
368
- width: '200px'
369
- },
370
- defaultValue: '3',
371
- data: options
372
- }));
373
- document.body.appendChild(outsideDom);
374
- wrapper.find('.hi-select__input').simulate('click');
375
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(true);
376
- outsideDom.click();
377
- wrapper.update();
378
- expect(wrapper.find('.hi-select__popper').prop('show')).toEqual(false);
379
- outsideDom.remove();
380
- wrapper.unmount();
381
- });
382
- it('异步单选', function (done) {
383
- var _document = document;
384
- var mockSuccessResponse = {
385
- success: true,
386
- code: 200,
387
- data: [{
388
- title: '1-0',
389
- id: '0'
390
- }, {
391
- title: '1-1',
392
- id: '1'
393
- }, {
394
- title: '1-2',
395
- id: '2'
396
- }, {
397
- title: '1-3',
398
- id: '3'
399
- }]
400
- };
401
- var mockJsonPromise = Promise.resolve(mockSuccessResponse);
402
- var mockFetchPromise = Promise.resolve({
403
- json: function json() {
404
- return mockJsonPromise;
405
- }
406
- });
407
- jest.spyOn(global, 'fetch').mockImplementation(function () {
408
- return mockFetchPromise;
409
- });
410
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
411
- mode: "single",
412
- dataSource: {
413
- type: 'GET',
414
- key: 'id',
415
- url: 'http://yapi.demo.qunar.com/mock/26534/hiui/select',
416
- transformResponse: function transformResponse(res) {
417
- return res.data;
418
- }
419
- },
420
- placeholder: "\u8BF7\u9009\u62E9\u79CD\u7C7B",
421
- style: {
422
- width: '200px'
423
- },
424
- onChange: changeCallback
425
- }));
426
- wrapper.find('.hi-select__input').simulate('click'); // 展开
427
-
428
- wrapper.find('input').simulate('change', {
429
- target: {
430
- value: '1'
431
- }
432
- }); // 测试搜索
433
-
434
- expect(global.fetch).toHaveBeenCalledTimes(1);
435
- expect(global.fetch).toHaveBeenCalledWith('http://yapi.demo.qunar.com/mock/26534/hiui/select?id=1', {
436
- method: 'GET'
437
- });
438
- process.nextTick(function () {
439
- expect(_document.querySelectorAll('.hi-select__dropdown--item')).toHaveLength(4);
440
- global.fetch.mockClear();
441
- done();
442
- wrapper.unmount();
443
- });
444
- });
445
- it('异步多选首次加载数据', function (done) {
446
- var _document = document;
447
- var mockSuccessResponse = {
448
- success: true,
449
- code: 200,
450
- data: [{
451
- title: '1-0',
452
- id: '0'
453
- }, {
454
- title: '1-1',
455
- id: '1'
456
- }, {
457
- title: '1-2',
458
- id: '2'
459
- }, {
460
- title: '1-3',
461
- id: '3'
462
- }]
463
- };
464
- var mockJsonPromise = Promise.resolve(mockSuccessResponse); // 2
465
-
466
- var mockFetchPromise = Promise.resolve({
467
- // 3
468
- json: function json() {
469
- return mockJsonPromise;
470
- }
471
- });
472
- jest.spyOn(global, 'fetch').mockImplementation(function () {
473
- return mockFetchPromise;
474
- });
475
- var wrapper = (0, _enzyme.mount)( /*#__PURE__*/_react["default"].createElement(_["default"], {
476
- mode: "single",
477
- dataSource: {
478
- type: 'GET',
479
- key: 'id',
480
- url: 'http://yapi.demo.qunar.com/mock/26534/hiui/select',
481
- transformResponse: function transformResponse(res) {
482
- return res.data;
483
- }
484
- },
485
- autoload: true,
486
- placeholder: "\u8BF7\u9009\u62E9\u79CD\u7C7B",
487
- style: {
488
- width: '200px'
489
- },
490
- onChange: changeCallback
491
- }));
492
- expect(global.fetch).toHaveBeenCalledTimes(1);
493
- expect(global.fetch).toHaveBeenCalledWith('http://yapi.demo.qunar.com/mock/26534/hiui/select', {
494
- method: 'GET'
495
- });
496
- process.nextTick(function () {
497
- // 首次加载数据
498
- wrapper.find('.hi-select__input').simulate('click'); // 展开
499
-
500
- expect(_document.querySelectorAll('.hi-select__dropdown--item')).toHaveLength(1);
501
- global.fetch.mockClear();
502
- done();
503
- });
504
- });
505
- });
@@ -1,81 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
- var _react = require("react");
23
-
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
- 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); }; }
27
-
28
- 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; } }
29
-
30
- var Option = /*#__PURE__*/function (_Component) {
31
- (0, _inherits2["default"])(Option, _Component);
32
-
33
- var _super = _createSuper(Option);
34
-
35
- function Option() {
36
- (0, _classCallCheck2["default"])(this, Option);
37
- return _super.apply(this, arguments);
38
- }
39
-
40
- (0, _createClass2["default"])(Option, [{
41
- key: "componentWillMount",
42
- value: function componentWillMount() {
43
- var _this$props = this.props,
44
- name = _this$props.name,
45
- id = _this$props.id,
46
- disabled = _this$props.disabled,
47
- children = _this$props.children;
48
- this.parent().addOption({
49
- name: name,
50
- id: id,
51
- disabled: disabled,
52
- children: children
53
- });
54
- }
55
- }, {
56
- key: "parent",
57
- value: function parent() {
58
- return this.context.component;
59
- }
60
- }, {
61
- key: "render",
62
- value: function render() {
63
- return null;
64
- }
65
- }]);
66
- return Option;
67
- }(_react.Component);
68
-
69
- (0, _defineProperty2["default"])(Option, "propTypes", {
70
- disabled: _propTypes["default"].bool,
71
- id: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
72
- name: _propTypes["default"].string
73
- });
74
- (0, _defineProperty2["default"])(Option, "defaultProps", {
75
- disabled: false
76
- });
77
- Option.contextTypes = {
78
- component: _propTypes["default"].any
79
- };
80
- var _default = Option;
81
- exports["default"] = _default;