@hi-ui/hiui 2.15.11 → 2.15.12

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 (344) hide show
  1. package/es/_util/SwitchVersion.js +40 -0
  2. package/es/_util/depreactedPropsCompat.js +58 -0
  3. package/es/_util/index.js +31 -0
  4. package/es/_util/warning.js +2 -2
  5. package/es/alert/Alert.js +126 -0
  6. package/es/alert/__tests__/index.test.js +84 -0
  7. package/es/alert/index.js +6 -147
  8. package/es/alert/style/index.css +1 -1
  9. package/es/badge/Badge.js +82 -0
  10. package/es/badge/__tests__/index.test.js +82 -0
  11. package/es/badge/index.js +9 -87
  12. package/es/badge/style/index.css +1 -1
  13. package/es/badge/style/index.js +0 -0
  14. package/es/breadcrumb/__tests__/index.test.js +61 -0
  15. package/es/breadcrumb/index.js +85 -0
  16. package/es/breadcrumb/style/index.css +1 -0
  17. package/es/button/Button.js +62 -60
  18. package/es/button/ButtonGroup.js +24 -40
  19. package/es/button/IconLoading.js +6 -6
  20. package/es/button/__tests__/index.test.js +221 -0
  21. package/es/button/index.js +3 -2
  22. package/es/button/style/index.css +1 -1
  23. package/es/card/__tests__/index.test.js +179 -0
  24. package/es/card/index.js +61 -57
  25. package/es/card/style/index.css +1 -1
  26. package/es/carousel/__tests__/index.test.js +104 -0
  27. package/es/carousel/index.js +219 -0
  28. package/es/carousel/style/index.css +1 -0
  29. package/es/carousel/style/index.js +3 -0
  30. package/es/cascader/Cascader.js +190 -133
  31. package/es/cascader/Menu.js +168 -0
  32. package/es/cascader/__tests__/index.test.js +392 -0
  33. package/es/cascader/index.js +5 -2
  34. package/es/cascader/style/cascader.css +1 -1
  35. package/es/cascader/style/menu.css +1 -1
  36. package/es/checkbox/Checkbox.js +136 -0
  37. package/es/checkbox/Group.js +194 -0
  38. package/es/checkbox/__tests__/index.test.js +226 -0
  39. package/es/checkbox/checkbox-legacy/Base.js +212 -0
  40. package/es/checkbox/checkbox-legacy/CheckBox.js +157 -0
  41. package/es/checkbox/checkbox-legacy/index.js +15 -0
  42. package/es/checkbox/checkbox-legacy/style/index.css +1 -0
  43. package/es/checkbox/checkbox-legacy/style/index.js +3 -0
  44. package/es/checkbox/index.js +13 -4
  45. package/es/checkbox/style/index.css +1 -1
  46. package/es/collapse/__tests__/index.test.js +111 -0
  47. package/es/collapse/index.js +88 -110
  48. package/es/collapse/style/index.css +1 -1
  49. package/es/confirm/index.js +39 -60
  50. package/es/context/index.js +45 -51
  51. package/es/counter/Counter.js +339 -0
  52. package/es/counter/__tests__/index.test.js +134 -0
  53. package/es/counter/counter-legacy/index.js +267 -0
  54. package/es/counter/index.js +6 -270
  55. package/es/counter/style/index.css +1 -1
  56. package/es/date-picker/BasePicker.js +380 -302
  57. package/es/date-picker/Calender.js +326 -98
  58. package/es/date-picker/DatePanel.js +194 -213
  59. package/es/date-picker/DatePicker.js +143 -47
  60. package/es/date-picker/DateRangePanel.js +272 -208
  61. package/es/date-picker/Modal.js +18 -32
  62. package/es/date-picker/Time.js +231 -345
  63. package/es/date-picker/TimeList.js +246 -0
  64. package/es/date-picker/TimePanel.js +28 -41
  65. package/es/date-picker/TimePeriodPanel.js +27 -46
  66. package/es/date-picker/TimePicker.js +44 -46
  67. package/es/date-picker/TimeRangePanel.js +33 -51
  68. package/es/date-picker/Type.js +5 -1
  69. package/es/date-picker/WeekRangePanel.js +254 -175
  70. package/es/date-picker/YMRangePanel.js +364 -0
  71. package/es/date-picker/__tests__/index.test.js +956 -0
  72. package/es/date-picker/constants.js +14 -28
  73. package/es/date-picker/dateUtil.js +221 -52
  74. package/es/date-picker/datepicker-legacy/BasePicker.js +511 -0
  75. package/es/date-picker/datepicker-legacy/Calender.js +422 -0
  76. package/es/date-picker/datepicker-legacy/DatePanel.js +455 -0
  77. package/es/date-picker/datepicker-legacy/DatePicker.js +103 -0
  78. package/es/date-picker/datepicker-legacy/DateRangePanel.js +488 -0
  79. package/es/date-picker/datepicker-legacy/Modal.js +67 -0
  80. package/es/date-picker/datepicker-legacy/Time.js +405 -0
  81. package/es/date-picker/datepicker-legacy/TimePanel.js +85 -0
  82. package/es/date-picker/datepicker-legacy/TimePeriodPanel.js +118 -0
  83. package/es/date-picker/datepicker-legacy/TimePicker.js +78 -0
  84. package/es/date-picker/datepicker-legacy/TimeRangePanel.js +90 -0
  85. package/es/date-picker/datepicker-legacy/Type.js +31 -0
  86. package/es/date-picker/datepicker-legacy/WeekRangePanel.js +337 -0
  87. package/es/date-picker/datepicker-legacy/constants.js +79 -0
  88. package/es/date-picker/datepicker-legacy/dateUtil.js +258 -0
  89. package/es/date-picker/datepicker-legacy/index.js +15 -0
  90. package/es/date-picker/datepicker-legacy/local.js +11 -0
  91. package/es/date-picker/datepicker-legacy/style/index.css +1 -0
  92. package/es/date-picker/datepicker-legacy/style/index.js +3 -0
  93. package/es/date-picker/datepicker-legacy/style/timepicker.css +1 -0
  94. package/es/date-picker/datepicker-legacy/util.js +60 -0
  95. package/es/date-picker/index.js +5 -2
  96. package/es/date-picker/style/index.css +1 -1
  97. package/es/date-picker/toLunar.js +172 -0
  98. package/es/date-picker/util.js +101 -8
  99. package/es/dropdown/Dropdown.js +191 -203
  100. package/es/dropdown/DropdownButton.js +102 -0
  101. package/es/dropdown/DropdownMenu.js +107 -0
  102. package/es/dropdown/DropdownMenuItem.js +172 -0
  103. package/es/dropdown/__tests__/index.test.js +313 -0
  104. package/es/dropdown/index.js +69 -4
  105. package/es/dropdown/style/index.css +1 -1
  106. package/es/dropdown/style/index.js +0 -2
  107. package/es/dropdown/{__test__ → tests}/index.test.js +7 -7
  108. package/es/dropdown/utils.js +35 -0
  109. package/es/ficon/index.js +16 -30
  110. package/es/form/Form.js +176 -0
  111. package/es/form/{item.js → Item.js} +52 -60
  112. package/es/form/__tests__/index.test.js +571 -0
  113. package/es/form/index.js +6 -171
  114. package/es/form/style/index.css +1 -1
  115. package/es/grid/__tests__/index.test.js +100 -0
  116. package/es/grid/index.js +36 -56
  117. package/es/icon/index.js +23 -38
  118. package/es/index.js +61 -9
  119. package/es/input/Input.js +400 -0
  120. package/es/input/__tests__/index.test.js +376 -0
  121. package/es/input/index.js +26 -347
  122. package/es/input/input-legacy/index.js +341 -0
  123. package/es/input/input-legacy/util.js +176 -0
  124. package/es/input/style/index.css +1 -1
  125. package/es/input/util.js +26 -18
  126. package/es/lib/withDragDropContext.js +2 -2
  127. package/es/loading/Loading.js +173 -0
  128. package/es/loading/__tests__/index.test.js +110 -0
  129. package/es/loading/index.js +5 -129
  130. package/es/loading/style/index.css +0 -0
  131. package/es/loading/style/index.js +0 -0
  132. package/es/locales/en-US.js +45 -9
  133. package/es/locales/index.js +16 -2
  134. package/es/locales/zh-CN.js +46 -10
  135. package/es/locales/zh-Hant-HK.js +123 -0
  136. package/es/locales/zh-Hant-TW.js +125 -0
  137. package/es/menu/Item.js +34 -51
  138. package/es/menu/Menu.js +414 -0
  139. package/es/menu/SubMenu.js +63 -90
  140. package/es/menu/Title.js +37 -51
  141. package/es/menu/__tests__/index.test.js +274 -0
  142. package/es/menu/index.js +12 -419
  143. package/es/menu/style/index.css +1 -1
  144. package/es/message/__tests__/index.test.js +71 -0
  145. package/es/message/index.js +58 -0
  146. package/es/message/style/index.css +1 -0
  147. package/es/message/style/index.js +5 -0
  148. package/es/modal/__tests__/index.test.js +178 -0
  149. package/es/modal/index.js +85 -77
  150. package/es/modal/style/index.css +1 -1
  151. package/es/nav-menu/NavMenu.js +44 -61
  152. package/es/nav-menu/__test__/index.test.js +8 -8
  153. package/es/nav-menu/__tests__/index.test.js +23 -0
  154. package/es/nav-menu/index.js +2 -2
  155. package/es/notice/Notice.js +136 -0
  156. package/es/notice/NoticeContainer.js +107 -0
  157. package/es/notice/__tests__/index.test.js +174 -0
  158. package/es/notice/index.js +66 -0
  159. package/es/notice/style/index.css +1 -0
  160. package/es/notice/style/index.js +5 -0
  161. package/es/notification/HandleNotification/index.js +216 -0
  162. package/es/notification/HandleNotification/style/index.css +1 -0
  163. package/es/notification/HandleNotification/style/index.js +5 -0
  164. package/es/notification/__tests__/index.test.js +114 -0
  165. package/es/notification/index.js +68 -231
  166. package/es/notification/style/index.css +1 -1
  167. package/es/notification/style/index.js +0 -0
  168. package/es/pagination/Pager.js +7 -9
  169. package/es/pagination/Pagination.js +134 -133
  170. package/es/pagination/__tests__/index.test.js +244 -0
  171. package/es/pagination/index.js +9 -8
  172. package/es/pagination/style/index.css +1 -1
  173. package/es/panel/index.js +28 -46
  174. package/es/popover/__test__/index.test.js +10 -10
  175. package/es/popover/__tests__/index.test.js +152 -0
  176. package/es/popover/index.js +77 -83
  177. package/es/popper/index.js +68 -64
  178. package/es/popper/style/index.css +1 -1
  179. package/es/preview/index.js +529 -0
  180. package/es/preview/style/index.css +1 -0
  181. package/es/preview/style/index.js +3 -0
  182. package/es/progress/BarProgress.js +107 -43
  183. package/es/progress/CircleProgress.js +13 -14
  184. package/es/progress/DashboardProgress.js +11 -13
  185. package/es/progress/Progress.js +102 -0
  186. package/es/progress/__tests__/index.test.js +131 -0
  187. package/es/progress/index.js +8 -100
  188. package/es/progress/style/index.css +1 -1
  189. package/es/radio/Group.js +199 -0
  190. package/es/radio/Radio.js +147 -0
  191. package/es/radio/__tests__/index.test.js +127 -0
  192. package/es/radio/index.js +10 -216
  193. package/es/radio/{__test__ → radio-legacy/__test__}/index.test.js +13 -13
  194. package/es/radio/radio-legacy/index.js +214 -0
  195. package/es/radio/radio-legacy/style/index.css +1 -0
  196. package/es/radio/radio-legacy/style/index.js +3 -0
  197. package/es/radio/style/index.css +1 -1
  198. package/es/rate/Icons.js +70 -70
  199. package/es/rate/Rate.js +75 -108
  200. package/es/rate/__tests__/index.test.js +124 -0
  201. package/es/rate/index.js +5 -2
  202. package/es/rate/style/index.css +1 -1
  203. package/es/select/Select.js +330 -265
  204. package/es/select/SelectDropdown.js +223 -79
  205. package/es/select/SelectInput.js +120 -91
  206. package/es/select/__tests__/index.test.js +505 -0
  207. package/es/select/index.js +6 -4
  208. package/es/select/select-legacy/Option.js +78 -0
  209. package/es/select/select-legacy/Select.js +702 -0
  210. package/es/select/select-legacy/SelectDropdown.js +157 -0
  211. package/es/select/select-legacy/SelectInput.js +308 -0
  212. package/es/select/select-legacy/common.js +19 -0
  213. package/es/select/select-legacy/index.js +16 -0
  214. package/es/select/style/select-dropdown.css +1 -1
  215. package/es/select/style/select-input.css +1 -1
  216. package/es/stepper/Stepper.js +147 -0
  217. package/es/stepper/__tests__/index.test.js +161 -0
  218. package/es/stepper/index.js +21 -127
  219. package/es/stepper/style/index.css +1 -1
  220. package/es/style/icon/diyIcon.css +1 -1
  221. package/es/style/icon/index.css +1 -1
  222. package/es/switch/__tests__/index.test.js +68 -0
  223. package/es/switch/index.js +26 -46
  224. package/es/switch/style/index.css +1 -1
  225. package/es/table/Body.js +294 -0
  226. package/es/table/ClickOuterside.js +95 -0
  227. package/es/table/Footer.js +171 -0
  228. package/es/table/Header.js +320 -0
  229. package/es/table/TableContent.js +101 -0
  230. package/es/table/__tests__/index.test.js +129 -0
  231. package/es/table/checkbox/index.js +36 -47
  232. package/es/table/checkbox/style/index.css +1 -0
  233. package/es/table/checkbox/style/index.js +3 -0
  234. package/es/table/index.js +269 -314
  235. package/es/table/menu/index.js +34 -44
  236. package/es/table/prefix.js +2 -2
  237. package/es/table/style/Table.css +1 -1
  238. package/es/table/style/index.css +1 -1
  239. package/es/tabs/ItemDropdown.js +45 -65
  240. package/es/tabs/TabPane.js +26 -44
  241. package/es/tabs/Tabs.js +110 -111
  242. package/es/tabs/__tests__/index.test.js +329 -0
  243. package/es/tabs/index.js +9 -3
  244. package/es/tabs/style/index.css +1 -1
  245. package/es/tabs/tabs-legacy/ItemDropdown.js +162 -0
  246. package/es/tabs/tabs-legacy/TabPane.js +70 -0
  247. package/es/tabs/tabs-legacy/Tabs.js +291 -0
  248. package/es/tabs/tabs-legacy/index.js +18 -0
  249. package/es/tabs/tabs-legacy/style/index.css +1 -0
  250. package/es/tabs/tabs-legacy/style/index.js +3 -0
  251. package/es/tag/__tests__/index.test.js +46 -0
  252. package/es/tag/index.js +86 -0
  253. package/es/tag/style/index.css +1 -0
  254. package/es/tag/style/index.js +3 -0
  255. package/es/timeline/__tests__/index.test.js +198 -0
  256. package/es/timeline/index.js +206 -136
  257. package/es/timeline/style/index.css +1 -1
  258. package/es/tooltip/__tests__/index.test.js +166 -0
  259. package/es/tooltip/index.js +93 -52
  260. package/es/tooltip/style/index.css +1 -1
  261. package/es/transfer/Item.js +73 -71
  262. package/es/transfer/Transfer.js +558 -0
  263. package/es/transfer/__tests__/index.test.js +210 -0
  264. package/es/transfer/index.js +4 -443
  265. package/es/transfer/style/index.css +1 -1
  266. package/es/tree/IconLoading.js +38 -0
  267. package/es/tree/Tree.js +94 -111
  268. package/es/tree/TreeDivider.js +6 -6
  269. package/es/tree/TreeItem.js +217 -123
  270. package/es/tree/TreeNode.js +472 -333
  271. package/es/tree/__tests__/index.test.js +599 -0
  272. package/es/tree/index.js +9 -2
  273. package/es/tree/style/index.css +1 -1
  274. package/es/tree/tree-legacy/Tree.js +330 -0
  275. package/es/tree/tree-legacy/TreeDivider.js +25 -0
  276. package/es/tree/tree-legacy/TreeItem.js +326 -0
  277. package/es/tree/tree-legacy/TreeNode.js +711 -0
  278. package/es/tree/tree-legacy/index.js +13 -0
  279. package/es/tree/tree-legacy/style/index.css +1 -0
  280. package/es/tree/tree-legacy/style/index.js +3 -0
  281. package/es/tree/tree-legacy/util.js +434 -0
  282. package/es/tree/util.js +8 -256
  283. package/es/upload/Upload.js +292 -200
  284. package/es/upload/UploadAvatar.js +61 -79
  285. package/es/upload/UploadClick.js +62 -60
  286. package/es/upload/UploadDrag.js +63 -66
  287. package/es/upload/UploadPhoto.js +86 -75
  288. package/es/upload/UploadPictureCard.js +53 -60
  289. package/es/upload/__tests__/index.test.js +760 -0
  290. package/es/upload/index.js +8 -71
  291. package/es/upload/main.js +83 -0
  292. package/es/upload/style/index.css +1 -1
  293. package/es/upload/tool.js +0 -1
  294. package/es/upload/{Preview.js → upload-legacy/Preview.js} +48 -62
  295. package/es/upload/upload-legacy/Upload.js +431 -0
  296. package/es/upload/upload-legacy/UploadAvatar.js +318 -0
  297. package/es/upload/upload-legacy/UploadClick.js +121 -0
  298. package/es/upload/upload-legacy/UploadDrag.js +176 -0
  299. package/es/upload/upload-legacy/UploadPhoto.js +179 -0
  300. package/es/upload/upload-legacy/UploadPictureCard.js +122 -0
  301. package/es/upload/upload-legacy/index.js +67 -0
  302. package/es/upload/upload-legacy/style/index.css +1 -0
  303. package/es/upload/upload-legacy/style/index.js +5 -0
  304. package/es/upload/upload-legacy/tool.js +84 -0
  305. package/es/watermark/index.js +97 -0
  306. package/es/watermark/watermark.js +263 -0
  307. package/package.json +1 -1
  308. package/es/alert/__test__/index.test.js +0 -67
  309. package/es/button/__test__/index.test.js +0 -29
  310. package/es/cascader/__test__/index.test.js +0 -283
  311. package/es/cascader/menu.js +0 -155
  312. package/es/checkbox/Base.js +0 -205
  313. package/es/checkbox/CheckBox.js +0 -185
  314. package/es/collapse/__test__/index.test.js +0 -58
  315. package/es/counter/__test__/index.test.js +0 -52
  316. package/es/menu/ItemGroup.js +0 -81
  317. package/es/modal/__test__/index.test.js +0 -123
  318. package/es/notification/__test__/index.test.js +0 -56
  319. package/es/pagination/__test__/index.test.js +0 -140
  320. package/es/rate/__test__/index.test.js +0 -54
  321. package/es/select/Option.js +0 -93
  322. package/es/select/__test__/index.test.js +0 -429
  323. package/es/style/color/colors.css +0 -0
  324. package/es/style/index.css +0 -0
  325. package/es/style/mixins/colors.css +0 -0
  326. package/es/style/mixins/index.css +0 -0
  327. package/es/style/theme/dark.css +0 -0
  328. package/es/style/theme/default.css +0 -0
  329. package/es/switch/__test__/index.test.js +0 -39
  330. package/es/table/__test__/index.test.js +0 -73
  331. package/es/table/body.js +0 -318
  332. package/es/table/clickOuterside.js +0 -115
  333. package/es/table/footer.js +0 -196
  334. package/es/table/header.js +0 -337
  335. package/es/table/pover.js +0 -154
  336. package/es/table/tableContent.js +0 -120
  337. package/es/timeline/__test__/index.test.js +0 -49
  338. package/es/timeline/foldingItem.js +0 -82
  339. package/es/tooltip/__test__/index.test.js +0 -67
  340. package/es/transfer/__test__/index.test.js +0 -11
  341. /package/es/{style → breadcrumb/style}/index.js +0 -0
  342. /package/es/checkbox/{common.js → checkbox-legacy/common.js} +0 -0
  343. /package/es/upload/{style → upload-legacy/style}/preview.css +0 -0
  344. /package/es/upload/{style → upload-legacy/style}/preview.js +0 -0
@@ -0,0 +1,558 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
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 _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
23
+
24
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _react = _interopRequireWildcard(require("react"));
29
+
30
+ var _propTypes = _interopRequireDefault(require("prop-types"));
31
+
32
+ var _button = _interopRequireDefault(require("../button"));
33
+
34
+ var _checkbox = _interopRequireDefault(require("../checkbox"));
35
+
36
+ var _icon = _interopRequireDefault(require("../icon"));
37
+
38
+ var _input = _interopRequireDefault(require("../input"));
39
+
40
+ var _classnames = _interopRequireDefault(require("classnames"));
41
+
42
+ var _Item = _interopRequireDefault(require("./Item"));
43
+
44
+ var _shallowequal = _interopRequireDefault(require("shallowequal"));
45
+
46
+ var _context = _interopRequireDefault(require("../context"));
47
+
48
+ require("./style/index");
49
+
50
+ var Transfer =
51
+ /*#__PURE__*/
52
+ function (_Component) {
53
+ (0, _inherits2["default"])(Transfer, _Component);
54
+
55
+ function Transfer(props) {
56
+ var _this;
57
+
58
+ (0, _classCallCheck2["default"])(this, Transfer);
59
+ _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Transfer).call(this, props));
60
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setPosition", function (x, y) {
61
+ var _this$state = _this.state,
62
+ positionX = _this$state.positionX,
63
+ positionY = _this$state.positionY;
64
+
65
+ if (!(x === positionX && y === positionY)) {
66
+ _this.setState({
67
+ positionX: x,
68
+ positionY: y
69
+ });
70
+ }
71
+ });
72
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "allCheckboxEvent", function (dir) {
73
+ var _this$setState;
74
+
75
+ var _this$state2 = _this.state,
76
+ sourceList = _this$state2.sourceList,
77
+ targetList = _this$state2.targetList,
78
+ leftFilter = _this$state2.leftFilter,
79
+ rightFilter = _this$state2.rightFilter;
80
+ var originDatas = dir === 'left' ? sourceList : targetList;
81
+ var filterText = dir === 'left' ? leftFilter : rightFilter;
82
+ var checkedKey = dir + 'Checked';
83
+ var arr = [];
84
+
85
+ if (!_this.state[checkedKey]) {
86
+ originDatas.forEach(function (data) {
87
+ data.content.includes(filterText) && !data.disabled && arr.push(data.id);
88
+ });
89
+ }
90
+
91
+ _this.setState((_this$setState = {}, (0, _defineProperty2["default"])(_this$setState, _this.getSelectedKeysByDir(dir), arr), (0, _defineProperty2["default"])(_this$setState, checkedKey, !_this.state[checkedKey]), _this$setState), function () {
92
+ _this.isLimited(dir);
93
+ });
94
+ });
95
+ _this.state = {
96
+ sourceList: [],
97
+ targetList: [],
98
+ sourceSelectedKeys: [],
99
+ targetSelectedKeys: [],
100
+ leftFilter: '',
101
+ rightFilter: '',
102
+ leftChecked: false,
103
+ rightChecked: false,
104
+ limited: false,
105
+ targetNode: null,
106
+ sourceNode: null,
107
+ positionX: null,
108
+ positionY: null,
109
+ dividerPosition: null
110
+ };
111
+ return _this;
112
+ }
113
+
114
+ (0, _createClass2["default"])(Transfer, [{
115
+ key: "componentDidMount",
116
+ value: function componentDidMount() {
117
+ this.parseDatas(this.props);
118
+ }
119
+ }, {
120
+ key: "parseDatas",
121
+ value: function parseDatas(props) {
122
+ var data = props.data,
123
+ targetKeys = props.targetKeys,
124
+ targetIds = props.targetIds;
125
+ var sourceList = [];
126
+ var targetList = [];
127
+ var _dataObj = {};
128
+ data.forEach(function (item) {
129
+ _dataObj[item.id] = item;
130
+
131
+ if (!(targetIds || targetKeys).includes(item.id)) {
132
+ sourceList.push(item);
133
+ }
134
+ });
135
+ (targetIds || targetKeys).forEach(function (item) {
136
+ _dataObj[item] && targetList.push(_dataObj[item]);
137
+ });
138
+ this.setState({
139
+ sourceList: sourceList,
140
+ targetList: targetList
141
+ });
142
+ }
143
+ }, {
144
+ key: "componentWillReceiveProps",
145
+ value: function componentWillReceiveProps(props) {
146
+ this.parseDatas(props);
147
+ }
148
+ }, {
149
+ key: "getSelectedKeysByDir",
150
+ value: function getSelectedKeysByDir(dir) {
151
+ return dir === 'left' ? 'sourceSelectedKeys' : 'targetSelectedKeys';
152
+ }
153
+ }, {
154
+ key: "clickItemEvent",
155
+ value: function clickItemEvent(item, index, dir) {
156
+ var _this2 = this;
157
+
158
+ var _this$props = this.props,
159
+ mode = _this$props.mode,
160
+ type = _this$props.type;
161
+ var limited = this.state.limited;
162
+
163
+ if (item.disabled) {
164
+ return;
165
+ }
166
+
167
+ if (mode === 'basic' && type === 'default') {
168
+ !(dir === 'left' && limited) && this.parseSelectedKeys(dir, item.id, function () {
169
+ _this2.moveTo(dir);
170
+ });
171
+ }
172
+ }
173
+ }, {
174
+ key: "parseSelectedKeys",
175
+ value: function parseSelectedKeys(dir, key, callback) {
176
+ var _this$setState2,
177
+ _this3 = this;
178
+
179
+ var _this$state3 = this.state,
180
+ sourceSelectedKeys = _this$state3.sourceSelectedKeys,
181
+ targetSelectedKeys = _this$state3.targetSelectedKeys,
182
+ sourceList = _this$state3.sourceList,
183
+ targetList = _this$state3.targetList,
184
+ leftFilter = _this$state3.leftFilter,
185
+ rightFilter = _this$state3.rightFilter;
186
+ var selectedItem = dir === 'left' ? (0, _toConsumableArray2["default"])(sourceSelectedKeys) : (0, _toConsumableArray2["default"])(targetSelectedKeys);
187
+ var checkedKey = dir + 'Checked';
188
+ var originDatas = dir === 'left' ? sourceList : targetList;
189
+ var filterText = dir === 'left' ? leftFilter : rightFilter;
190
+ var selectedIndex = selectedItem.indexOf(key);
191
+
192
+ if (selectedIndex > -1) {
193
+ selectedItem.splice(selectedIndex, 1);
194
+ } else {
195
+ selectedItem.push(key);
196
+ }
197
+
198
+ var filterResult = [];
199
+ originDatas.forEach(function (item) {
200
+ item.content.includes(filterText) && filterResult.push(item.id);
201
+ });
202
+ var checkoutStatue = filterText.length ? filterResult.every(function (item) {
203
+ return selectedItem.includes(item);
204
+ }) : (0, _shallowequal["default"])(selectedItem.sort(), filterResult.sort());
205
+ this.setState((_this$setState2 = {}, (0, _defineProperty2["default"])(_this$setState2, this.getSelectedKeysByDir(dir), selectedItem), (0, _defineProperty2["default"])(_this$setState2, checkedKey, checkoutStatue), _this$setState2), function () {
206
+ callback && callback();
207
+
208
+ _this3.isLimited(dir);
209
+ });
210
+ }
211
+ }, {
212
+ key: "checkboxEvent",
213
+ value: function checkboxEvent(dir, value, isChecked) {
214
+ this.parseSelectedKeys(dir, value, null);
215
+ }
216
+ }, {
217
+ key: "moveTo",
218
+ value: function moveTo(dir) {
219
+ var _this$setState3,
220
+ _this4 = this;
221
+
222
+ var _this$props2 = this.props,
223
+ targetKeys = _this$props2.targetKeys,
224
+ targetIds = _this$props2.targetIds,
225
+ data = _this$props2.data,
226
+ targetSortType = _this$props2.targetSortType;
227
+ var _this$state4 = this.state,
228
+ sourceSelectedKeys = _this$state4.sourceSelectedKeys,
229
+ targetSelectedKeys = _this$state4.targetSelectedKeys;
230
+ var selectedItem = dir === 'left' ? (0, _toConsumableArray2["default"])(sourceSelectedKeys) : (0, _toConsumableArray2["default"])(targetSelectedKeys);
231
+
232
+ var _concatTargetKeys = targetSortType === 'queue' ? (targetIds || targetKeys).concat(selectedItem) : selectedItem.concat(targetIds || targetKeys);
233
+
234
+ var newTargetKeys = dir === 'left' ? _concatTargetKeys : (targetIds || targetKeys).filter(function (tk) {
235
+ return !selectedItem.includes(tk);
236
+ });
237
+ this.setState((_this$setState3 = {}, (0, _defineProperty2["default"])(_this$setState3, this.getSelectedKeysByDir(dir), newTargetKeys), (0, _defineProperty2["default"])(_this$setState3, "leftChecked", false), (0, _defineProperty2["default"])(_this$setState3, "rightChecked", false), _this$setState3), function () {
238
+ var _this4$setState;
239
+
240
+ var moveDatas = [];
241
+ selectedItem.forEach(function (key) {
242
+ data.forEach(function (item) {
243
+ item.id === key && moveDatas.push(item);
244
+ });
245
+ });
246
+
247
+ _this4.props.onChange(newTargetKeys, dir === 'left' ? 'right' : 'left', moveDatas);
248
+
249
+ _this4.setState((_this4$setState = {}, (0, _defineProperty2["default"])(_this4$setState, _this4.getSelectedKeysByDir(dir), []), (0, _defineProperty2["default"])(_this4$setState, dir + 'Filter', ''), _this4$setState), function () {
250
+ _this4.isLimited(dir);
251
+ });
252
+ });
253
+ }
254
+ }, {
255
+ key: "isLimited",
256
+ value: function isLimited(dir) {
257
+ var _this$state5 = this.state,
258
+ targetList = _this$state5.targetList,
259
+ sourceSelectedKeys = _this$state5.sourceSelectedKeys;
260
+ var _this$props3 = this.props,
261
+ targetLimit = _this$props3.targetLimit,
262
+ type = _this$props3.type;
263
+ var defaultLimited = sourceSelectedKeys.length > targetLimit || sourceSelectedKeys.length + targetList.length > targetLimit;
264
+
265
+ var _limited = type === 'default' ? defaultLimited || targetList.length >= targetLimit : defaultLimited;
266
+
267
+ this.setState({
268
+ limited: _limited
269
+ });
270
+ }
271
+ }, {
272
+ key: "searchEvent",
273
+ value: function searchEvent(dir, e) {
274
+ var _this$setState4;
275
+
276
+ var _this$state6 = this.state,
277
+ sourceList = _this$state6.sourceList,
278
+ targetList = _this$state6.targetList,
279
+ sourceSelectedKeys = _this$state6.sourceSelectedKeys,
280
+ targetSelectedKeys = _this$state6.targetSelectedKeys;
281
+ var originDatas = dir === 'left' ? sourceList : targetList;
282
+ var filterResult = [];
283
+ var filterText = e.target.value;
284
+ originDatas.forEach(function (item) {
285
+ item.content.includes(filterText) && filterResult.push(item.id);
286
+ });
287
+ var selectedKeys = dir === 'left' ? sourceSelectedKeys : targetSelectedKeys;
288
+ var checkedKey = dir + 'Checked';
289
+ var checkoutStatue = e.target.value.length ? filterResult.every(function (item) {
290
+ return selectedKeys.includes(item);
291
+ }) : (0, _shallowequal["default"])(selectedKeys.sort(), filterResult.sort());
292
+ this.setState((_this$setState4 = {}, (0, _defineProperty2["default"])(_this$setState4, dir + 'Filter', e.target.value), (0, _defineProperty2["default"])(_this$setState4, checkedKey, checkoutStatue), _this$setState4));
293
+ }
294
+ }, {
295
+ key: "move",
296
+ value: function move(sourceItem, targetItem) {
297
+ var _this$state7 = this.state,
298
+ targetList = _this$state7.targetList,
299
+ dividerPosition = _this$state7.dividerPosition;
300
+
301
+ var _targetList = (0, _toConsumableArray2["default"])(targetList);
302
+
303
+ var sIdx;
304
+ var tIdx;
305
+ targetList.forEach(function (item, index) {
306
+ if (item.id === targetItem.id) {
307
+ var position = dividerPosition === 'down' ? index + 1 : index;
308
+
309
+ _targetList.splice(position, 0, sourceItem);
310
+
311
+ tIdx = index;
312
+ }
313
+
314
+ if (item.id === sourceItem.id) {
315
+ sIdx = index;
316
+ }
317
+ });
318
+
319
+ if (sIdx < tIdx) {
320
+ _targetList.splice(sIdx, 1);
321
+ } else {
322
+ _targetList.splice(sIdx + 1, 1);
323
+ }
324
+
325
+ this.props.onDragEnd(_targetList);
326
+ this.setState({
327
+ targetList: _targetList
328
+ });
329
+ }
330
+ }, {
331
+ key: "setTargetNode",
332
+ value: function setTargetNode(id, dividerPosition) {
333
+ this.setState({
334
+ targetNode: id,
335
+ dividerPosition: dividerPosition
336
+ });
337
+ }
338
+ }, {
339
+ key: "removeTargetNode",
340
+ value: function removeTargetNode() {
341
+ this.setState({
342
+ targetNode: null
343
+ });
344
+ }
345
+ }, {
346
+ key: "setSourceNode",
347
+ value: function setSourceNode(id) {
348
+ this.setState({
349
+ sourceNode: id
350
+ });
351
+ }
352
+ }, {
353
+ key: "removeSourceNode",
354
+ value: function removeSourceNode() {
355
+ this.setState({
356
+ sourceNode: null
357
+ });
358
+ }
359
+ }, {
360
+ key: "renderContainer",
361
+ value: function renderContainer(dir, datas) {
362
+ var _this5 = this;
363
+
364
+ var _this$props4 = this.props,
365
+ mode = _this$props4.mode,
366
+ type = _this$props4.type,
367
+ showCheckAll = _this$props4.showCheckAll,
368
+ showAllSelect = _this$props4.showAllSelect,
369
+ searchable = _this$props4.searchable,
370
+ draggable = _this$props4.draggable,
371
+ emptyContent = _this$props4.emptyContent,
372
+ title = _this$props4.title,
373
+ disabled = _this$props4.disabled,
374
+ theme = _this$props4.theme,
375
+ localeDatas = _this$props4.localeDatas,
376
+ onDragStart = _this$props4.onDragStart,
377
+ onDrop = _this$props4.onDrop,
378
+ render = _this$props4.render;
379
+ var _this$state8 = this.state,
380
+ sourceSelectedKeys = _this$state8.sourceSelectedKeys,
381
+ targetSelectedKeys = _this$state8.targetSelectedKeys,
382
+ leftFilter = _this$state8.leftFilter,
383
+ rightFilter = _this$state8.rightFilter,
384
+ leftChecked = _this$state8.leftChecked,
385
+ rightChecked = _this$state8.rightChecked,
386
+ limited = _this$state8.limited,
387
+ targetNode = _this$state8.targetNode,
388
+ sourceNode = _this$state8.sourceNode,
389
+ positionX = _this$state8.positionX,
390
+ positionY = _this$state8.positionY,
391
+ dividerPosition = _this$state8.dividerPosition;
392
+ var localeMap = localeDatas.transfer || {};
393
+ var selectedKeys = dir === 'left' ? sourceSelectedKeys : targetSelectedKeys;
394
+ var filterText = dir === 'left' ? leftFilter : rightFilter;
395
+ var filterResult = datas.filter(function (item) {
396
+ return item.content.includes(filterText);
397
+ });
398
+
399
+ var _isChecked = dir === 'left' ? leftChecked : rightChecked;
400
+
401
+ var _title = dir === 'left' ? title[0] : title[1] || title[0];
402
+
403
+ return _react["default"].createElement("div", {
404
+ className: "hi-transfer__container"
405
+ }, disabled && _react["default"].createElement("div", {
406
+ className: "hi-transfer__mask"
407
+ }), _title && _react["default"].createElement("div", {
408
+ className: "hi-transfer__title"
409
+ }, _title), searchable && _react["default"].createElement("div", {
410
+ className: "hi-transfer__searchbar"
411
+ }, _react["default"].createElement(_icon["default"], {
412
+ name: "search"
413
+ }), _react["default"].createElement(_input["default"], {
414
+ placeholder: "\u641C\u7D22",
415
+ clearable: "true",
416
+ clearableTrigger: "always",
417
+ onInput: this.searchEvent.bind(this, dir),
418
+ onChange: this.searchEvent.bind(this, dir),
419
+ value: filterText
420
+ })), _react["default"].createElement("div", {
421
+ className: "hi-transfer__body ".concat(filterResult.length === 0 ? 'hi-transfer__body--empty' : '')
422
+ }, filterResult.length > 0 ? _react["default"].createElement("ul", {
423
+ className: "hi-transfer__list"
424
+ }, dir === 'left' && limited && _react["default"].createElement("li", {
425
+ key: "limit-tips",
426
+ className: "hi-transfer__item hi-transfer__item--limit"
427
+ }, _react["default"].createElement(_icon["default"], {
428
+ name: "info-circle-o",
429
+ style: {
430
+ fontSize: 16,
431
+ color: '#D4A145',
432
+ marginRight: 9
433
+ }
434
+ }), _react["default"].createElement("span", null, localeMap['limit'])), filterResult.map(function (item, index) {
435
+ return _react["default"].createElement(_Item["default"], {
436
+ dir: dir,
437
+ dividerPosition: dividerPosition,
438
+ draggable: draggable,
439
+ key: index,
440
+ theme: theme,
441
+ render: render,
442
+ onClick: _this5.clickItemEvent.bind(_this5, item, index, dir),
443
+ mode: mode === 'basic' && type === 'default' ? 'basic' : 'multiple',
444
+ item: item,
445
+ checked: selectedKeys.includes(item.id),
446
+ checkboxOnChange: _this5.checkboxEvent.bind(_this5, dir),
447
+ move: _this5.move.bind(_this5),
448
+ setTargetNode: _this5.setTargetNode.bind(_this5),
449
+ removeTargetNode: _this5.removeTargetNode.bind(_this5),
450
+ targetNode: targetNode,
451
+ setSourceNode: _this5.setSourceNode.bind(_this5),
452
+ removeSourceNode: _this5.removeSourceNode.bind(_this5),
453
+ sourceNode: sourceNode,
454
+ setPosition: _this5.setPosition,
455
+ positionX: positionX,
456
+ positionY: positionY,
457
+ onDragStart: onDragStart,
458
+ onDrop: onDrop
459
+ });
460
+ })) : dir === 'left' ? emptyContent[0] : emptyContent[1] || emptyContent[0]), (mode !== 'basic' || type !== 'default') && (showAllSelect || showCheckAll) && _react["default"].createElement("div", {
461
+ className: "hi-transfer__footer",
462
+ onClick: function onClick() {}
463
+ }, _react["default"].createElement(_checkbox["default"], {
464
+ indeterminate: !!selectedKeys.length && !_isChecked,
465
+ checked: _isChecked && !!filterResult.length,
466
+ onChange: function onChange() {
467
+ _this5.allCheckboxEvent(dir);
468
+ }
469
+ }, localeMap['checkAll']), _react["default"].createElement("span", null, selectedKeys.length + '/', filterResult.length, " ", localeMap['items'])));
470
+ }
471
+ }, {
472
+ key: "render",
473
+ value: function render() {
474
+ var _this6 = this;
475
+
476
+ var _this$props5 = this.props,
477
+ mode = _this$props5.mode,
478
+ type = _this$props5.type,
479
+ theme = _this$props5.theme;
480
+ var _this$state9 = this.state,
481
+ sourceList = _this$state9.sourceList,
482
+ targetList = _this$state9.targetList,
483
+ sourceSelectedKeys = _this$state9.sourceSelectedKeys,
484
+ targetSelectedKeys = _this$state9.targetSelectedKeys,
485
+ limited = _this$state9.limited;
486
+ var operCls = (0, _classnames["default"])('hi-transfer__operation', mode === 'basic' && type === 'default' && 'hi-transfer__operation--basic');
487
+ var isLeftDisabled = targetSelectedKeys.length === 0;
488
+ var isRightDisabled = sourceSelectedKeys.length === 0 || limited;
489
+ return _react["default"].createElement("div", {
490
+ className: "hi-transfer theme__".concat(theme)
491
+ }, this.renderContainer('left', sourceList), _react["default"].createElement("div", {
492
+ className: operCls
493
+ }, (mode !== 'basic' || type !== 'default') && _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_button["default"], {
494
+ type: isRightDisabled ? 'default' : 'primary',
495
+ icon: "right",
496
+ onClick: function onClick() {
497
+ if (!isRightDisabled) {
498
+ _this6.moveTo('left');
499
+ }
500
+ },
501
+ disabled: isRightDisabled
502
+ }), _react["default"].createElement("span", {
503
+ className: "hi-transfer__split"
504
+ }), _react["default"].createElement(_button["default"], {
505
+ type: isLeftDisabled ? 'default' : 'primary',
506
+ icon: "left",
507
+ onClick: function onClick() {
508
+ if (!isLeftDisabled) {
509
+ _this6.moveTo('right');
510
+ }
511
+ },
512
+ disabled: isLeftDisabled
513
+ }))), this.renderContainer('right', targetList));
514
+ }
515
+ }]);
516
+ return Transfer;
517
+ }(_react.Component);
518
+
519
+ var _default = (0, _context["default"])(Transfer);
520
+
521
+ exports["default"] = _default;
522
+ Transfer.defaultProps = {
523
+ mode: 'basic',
524
+ type: 'default',
525
+ targetKeys: [],
526
+ // TODO:废弃,使用 targetIds
527
+ showAllSelect: false,
528
+ showCheckAll: false,
529
+ searchable: false,
530
+ draggable: false,
531
+ emptyContent: ['暂无数据', '暂无数据'],
532
+ title: ['', ''],
533
+ disabled: false,
534
+ onDragStart: function onDragStart() {
535
+ return true;
536
+ },
537
+ onDragEnd: function onDragEnd() {},
538
+ onDrop: function onDrop() {
539
+ return true;
540
+ },
541
+ onChange: function onChange() {}
542
+ };
543
+ Transfer.propTypes = {
544
+ mode: _propTypes["default"].oneOf(['basic', 'multiple']),
545
+ // TODO: 废弃,使用 type
546
+ type: _propTypes["default"].oneOf(['default', 'multiple']),
547
+ showAllSelect: _propTypes["default"].bool,
548
+ // TODO: 废弃,使用 showCheckAll
549
+ showCheckAll: _propTypes["default"].bool,
550
+ searchable: _propTypes["default"].bool,
551
+ draggable: _propTypes["default"].bool,
552
+ disabled: _propTypes["default"].bool,
553
+ targetLimit: _propTypes["default"].number,
554
+ onDragStart: _propTypes["default"].func,
555
+ onDragEnd: _propTypes["default"].func,
556
+ onDrop: _propTypes["default"].func,
557
+ onChange: _propTypes["default"].func
558
+ };