@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,710 +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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
21
-
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
-
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
-
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
-
28
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
-
30
- var _react = _interopRequireWildcard(require("react"));
31
-
32
- var _reactDom = _interopRequireDefault(require("react-dom"));
33
-
34
- var _classnames = _interopRequireDefault(require("classnames"));
35
-
36
- var _propTypes = _interopRequireDefault(require("prop-types"));
37
-
38
- var _shallowequal = _interopRequireDefault(require("shallowequal"));
39
-
40
- var _debounce = _interopRequireDefault(require("lodash/debounce"));
41
-
42
- var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
43
-
44
- var _popper = _interopRequireDefault(require("../../popper"));
45
-
46
- var _SelectInput = _interopRequireDefault(require("./SelectInput"));
47
-
48
- var _SelectDropdown = _interopRequireDefault(require("./SelectDropdown"));
49
-
50
- var _context = _interopRequireDefault(require("../../context"));
51
-
52
- var _fetchJsonp = _interopRequireDefault(require("fetch-jsonp"));
53
-
54
- 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); }
55
-
56
- 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; }
57
-
58
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
59
-
60
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
61
-
62
- 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); }; }
63
-
64
- 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; } }
65
-
66
- var Select = /*#__PURE__*/function (_Component) {
67
- (0, _inherits2["default"])(Select, _Component);
68
-
69
- var _super = _createSuper(Select);
70
-
71
- // 第一次自动加载数据标识
72
- function Select(props) {
73
- var _this;
74
-
75
- (0, _classCallCheck2["default"])(this, Select);
76
- _this = _super.call(this, props);
77
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "autoloadFlag", true);
78
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleInputClick", function (e) {
79
- var dropdownShow = _this.state.dropdownShow;
80
-
81
- if (dropdownShow) {
82
- _this.hideDropdown();
83
-
84
- return;
85
- }
86
-
87
- _this.selectInput.focus();
88
-
89
- if (_this.props.disabled) {
90
- return;
91
- }
92
-
93
- if (!dropdownShow) {
94
- _this.showDropdown();
95
- }
96
- });
97
- var list = _this.props.list;
98
- var dropdownItems = (0, _cloneDeep["default"])(list);
99
-
100
- var selectedItems = _this.resetSelectedItems(_this.props.value, dropdownItems);
101
-
102
- var searchable = _this.getSearchable();
103
-
104
- _this.debouncedFilterItems = (0, _debounce["default"])(_this.onFilterItems.bind((0, _assertThisInitialized2["default"])(_this)), 300);
105
- _this.clickOutsideHandel = _this.clickOutside.bind((0, _assertThisInitialized2["default"])(_this)); // const focusedIndex = this.resetFocusedIndex(false)
106
-
107
- _this.state = {
108
- searchable: searchable,
109
- queryLength: 1,
110
- focusedIndex: 0,
111
- selectedItems: selectedItems,
112
- dropdownItems: dropdownItems,
113
- dropdownShow: false,
114
- fetching: false,
115
- keyword: '',
116
- searchInput: {
117
- width: '2px'
118
- }
119
- };
120
- return _this;
121
- }
122
-
123
- (0, _createClass2["default"])(Select, [{
124
- key: "getChildContext",
125
- value: function getChildContext() {
126
- return {
127
- component: this
128
- };
129
- }
130
- }, {
131
- key: "componentWillMount",
132
- value: function componentWillMount() {
133
- if (this.isRemote() && this.props.autoload) {
134
- this.remoteSearch();
135
- }
136
- }
137
- }, {
138
- key: "componentDidMount",
139
- value: function componentDidMount() {
140
- window.addEventListener('click', this.clickOutsideHandel);
141
- this.resetFocusedIndex();
142
- }
143
- }, {
144
- key: "componentWillUnmount",
145
- value: function componentWillUnmount() {
146
- window.removeEventListener('click', this.clickOutsideHandel);
147
- }
148
- }, {
149
- key: "clickOutside",
150
- value: function clickOutside(e) {
151
- var selectInput = _reactDom["default"].findDOMNode(this.selectInput);
152
-
153
- if (selectInput && selectInput.contains(e.target)) {
154
- return;
155
- }
156
-
157
- this.hideDropdown();
158
- }
159
- }, {
160
- key: "componentWillReceiveProps",
161
- value: function componentWillReceiveProps(props) {
162
- if (!(0, _shallowequal["default"])(props.value, this.props.value)) {
163
- var selectedItems = this.resetSelectedItems(props.value, this.state.dropdownItems); // 异步获取时会从内部改变dropdownItems,所以不能从list取
164
-
165
- this.setState({
166
- selectedItems: selectedItems
167
- }, function () {// this.onChange()
168
- });
169
- }
170
-
171
- if (!(0, _shallowequal["default"])(props.list, this.props.list)) {
172
- var _selectedItems2 = this.resetSelectedItems(props.value, props.list, true);
173
-
174
- this.setState({
175
- selectedItems: _selectedItems2,
176
- dropdownItems: (0, _cloneDeep["default"])(props.list)
177
- });
178
- }
179
- }
180
- }, {
181
- key: "getSearchable",
182
- value: function getSearchable() {
183
- var searchable = this.props.searchable;
184
-
185
- if (this.isRemote()) {
186
- return true;
187
- } // if(mode==='multiple' && searchable===undefined) {
188
- // return true
189
- // }
190
-
191
-
192
- return !!searchable;
193
- }
194
- }, {
195
- key: "parseValue",
196
- value: function parseValue() {
197
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.value;
198
-
199
- if (Array.isArray(value)) {
200
- return value.slice();
201
- } else if (typeof value === 'string') {
202
- return value.split(',');
203
- } else {
204
- return [value];
205
- }
206
- }
207
- }, {
208
- key: "isRemote",
209
- value: function isRemote() {
210
- var origin = this.props.origin;
211
- return origin && !!origin.url;
212
- }
213
- }, {
214
- key: "resetSelectedItems",
215
- value: function resetSelectedItems(value, dropdownItems) {
216
- var listChanged = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
217
- var values = this.parseValue(value);
218
- var selectedItems = listChanged && this.props.mode === 'multiple' ? this.state.selectedItems : []; // 如果是多选,dropdownItems有改动,需要保留之前的选中值
219
-
220
- dropdownItems && dropdownItems.map(function (item) {
221
- if (values.indexOf(item.id) !== -1) {
222
- var itemIndex = selectedItems.findIndex(function (sItem) {
223
- // 多选时检查是否已选中
224
- return sItem.id === item.id;
225
- });
226
- itemIndex === -1 && selectedItems.push(item);
227
- }
228
- });
229
- return selectedItems;
230
- }
231
- }, {
232
- key: "addOption",
233
- value: function addOption(option) {
234
- var values = this.parseValue();
235
- this.state.dropdownItems.push(option);
236
- values.indexOf(option.id) > -1 && this.state.selectedItems.push(option);
237
- this.forceUpdate();
238
- }
239
- }, {
240
- key: "onEnterSelect",
241
- value: function onEnterSelect() {
242
- var _this$state = this.state,
243
- dropdownItems = _this$state.dropdownItems,
244
- focusedIndex = _this$state.focusedIndex;
245
- var item = dropdownItems[focusedIndex];
246
- this.onClickOption(item, focusedIndex);
247
- }
248
- }, {
249
- key: "onChange",
250
- value: function onChange(changedItems) {
251
- var selectedItems = this.state.selectedItems;
252
- this.props.onChange && this.props.onChange(selectedItems, changedItems);
253
- }
254
- }, {
255
- key: "checkAll",
256
- value: function checkAll(e) {
257
- var _this2 = this;
258
-
259
- // 全选
260
- e && e.stopPropagation();
261
- var _this$state2 = this.state,
262
- dropdownItems = _this$state2.dropdownItems,
263
- selectedItems = _this$state2.selectedItems;
264
-
265
- var _selectedItems = (0, _toConsumableArray2["default"])(selectedItems);
266
-
267
- var changedItems = [];
268
- dropdownItems.forEach(function (item) {
269
- if (!item.disabled && _this2.matchFilter(item)) {
270
- if (!_selectedItems.map(function (selectItem) {
271
- return selectItem.id;
272
- }).includes(item.id)) {
273
- _selectedItems.push(item);
274
-
275
- changedItems.push(item);
276
- }
277
- }
278
- });
279
- this.setState({
280
- selectedItems: _selectedItems
281
- }, function () {
282
- _this2.selectInput.focus();
283
-
284
- _this2.onChange(changedItems);
285
- });
286
- }
287
- }, {
288
- key: "onClickOption",
289
- value: function onClickOption(item, index) {
290
- var _this3 = this;
291
-
292
- if (!item || item.disabled) return;
293
- var selectedItems = this.state.selectedItems.concat();
294
- var focusedIndex = index;
295
-
296
- if (this.props.mode === 'multiple') {
297
- var itemIndex = this.state.selectedItems.findIndex(function (sItem) {
298
- return sItem.id === item.id;
299
- });
300
-
301
- if (itemIndex === -1) {
302
- selectedItems.push(item);
303
- } else {
304
- selectedItems.splice(itemIndex, 1);
305
- }
306
- } else {
307
- selectedItems = [item];
308
- }
309
-
310
- this.setState({
311
- selectedItems: selectedItems,
312
- focusedIndex: focusedIndex
313
- }, function () {
314
- if (_this3.props.mode !== 'multiple') {
315
- _this3.hideDropdown();
316
- } else {
317
- _this3.selectInput.focus();
318
-
319
- _this3.clearKeyword(); // 多选状态清空筛选
320
-
321
- }
322
-
323
- _this3.onChange(item);
324
- });
325
- }
326
- }, {
327
- key: "clearKeyword",
328
- value: function clearKeyword() {
329
- var _this4 = this;
330
-
331
- this.setState({
332
- keyword: ''
333
- }, function () {
334
- _this4.selectInput.clearInput();
335
- });
336
- }
337
- }, {
338
- key: "hideDropdown",
339
- value: function hideDropdown() {
340
- var _this5 = this;
341
-
342
- this.state.dropdownShow === true && this.setState({
343
- dropdownShow: false
344
- }, function () {
345
- _this5.clearKeyword();
346
- });
347
- }
348
- }, {
349
- key: "showDropdown",
350
- value: function showDropdown() {
351
- this.state.dropdownShow === false && this.setState({
352
- dropdownShow: true
353
- });
354
- this.selectInput.focus();
355
- }
356
- }, {
357
- key: "deleteItem",
358
- value: function deleteItem(item) {
359
- var _this6 = this;
360
-
361
- if (item.disabled) return;
362
- var selectedItems = this.state.selectedItems.concat();
363
- var sIndex = selectedItems.findIndex(function (obj, index, arr) {
364
- return obj.id === item.id;
365
- });
366
- selectedItems.splice(sIndex, 1);
367
- this.setState({
368
- selectedItems: selectedItems
369
- }, function () {
370
- _this6.selectInput.focus();
371
-
372
- _this6.onChange(item);
373
- });
374
- } // 全部删除
375
-
376
- }, {
377
- key: "deleteAllItems",
378
- value: function deleteAllItems() {
379
- var _this7 = this;
380
-
381
- var focusedIndex = this.resetFocusedIndex();
382
- var changedItems = (0, _toConsumableArray2["default"])(this.state.selectedItems);
383
- this.setState({
384
- focusedIndex: focusedIndex,
385
- selectedItems: []
386
- }, function () {
387
- _this7.onChange(_this7.props.mode === 'multiple' ? changedItems : changedItems[0]);
388
-
389
- _this7.onFilterItems('');
390
- });
391
- }
392
- }, {
393
- key: "remoteSearch",
394
- value: function remoteSearch(keyword) {
395
- var _this8 = this;
396
-
397
- var _this$props$origin = this.props.origin,
398
- url = _this$props$origin.url,
399
- func = _this$props$origin.func,
400
- error = _this$props$origin.error,
401
- _this$props$origin$da = _this$props$origin.data,
402
- data = _this$props$origin$da === void 0 ? {} : _this$props$origin$da,
403
- _this$props$origin$ty = _this$props$origin.type,
404
- type = _this$props$origin$ty === void 0 ? 'GET' : _this$props$origin$ty,
405
- _this$props$origin$ke = _this$props$origin.key,
406
- key = _this$props$origin$ke === void 0 ? 'keyword' : _this$props$origin$ke,
407
- _this$props$origin$js = _this$props$origin.jsonpCallback,
408
- jsonpCallback = _this$props$origin$js === void 0 ? 'callback' : _this$props$origin$js,
409
- options = (0, _objectWithoutProperties2["default"])(_this$props$origin, ["url", "func", "error", "data", "type", "key", "jsonpCallback"]);
410
- keyword = !keyword && this.autoloadFlag && this.props.autoload ? this.props.origin.keyword : keyword;
411
- this.autoloadFlag = false; // 第一次自动加载数据后,输入的关键词即使为空也不再使用默认关键词
412
-
413
- url = url.indexOf('?') === -1 ? "".concat(url, "?").concat([key], "=").concat(keyword) : "".concat(url, "&").concat([key], "=").concat(keyword);
414
-
415
- if (type.toUpperCase() === 'POST') {
416
- options.body = JSON.stringify(data);
417
- }
418
-
419
- this.setState({
420
- fetching: true
421
- });
422
-
423
- if (type.toUpperCase() === 'JSONP') {
424
- var _o = {
425
- jsonpCallback: jsonpCallback,
426
- jsonpCallbackFunction: jsonpCallback
427
- };
428
- (0, _fetchJsonp["default"])(url, _o).then(function (res) {
429
- return res.json();
430
- }).then(function (json) {
431
- _this8._setDropdownItems(json, func);
432
- });
433
- } else {
434
- /* eslint-disable */
435
- fetch(url, _objectSpread({
436
- method: type
437
- }, options)).then(function (response) {
438
- return response.json();
439
- }).then(function (res) {
440
- _this8._setDropdownItems(res, func);
441
- }, function (err) {
442
- error && error(err);
443
-
444
- _this8.setState({
445
- fetching: false
446
- });
447
- });
448
- }
449
- }
450
- }, {
451
- key: "_setDropdownItems",
452
- value: function _setDropdownItems(res, func) {
453
- var dropdownItems = [];
454
-
455
- if (func) {
456
- dropdownItems = func(res);
457
- } else {
458
- dropdownItems = res.data;
459
- }
460
-
461
- if (Array.isArray(dropdownItems)) {
462
- var selectedItems = this.resetSelectedItems(this.props.value, dropdownItems, true);
463
- this.setState({
464
- dropdownItems: dropdownItems,
465
- selectedItems: selectedItems
466
- });
467
- }
468
-
469
- this.setState({
470
- fetching: false
471
- });
472
- }
473
- }, {
474
- key: "onFilterItems",
475
- value: function onFilterItems(keyword) {
476
- var _this9 = this;
477
-
478
- this.setState({
479
- keyword: keyword
480
- }, function () {
481
- return _this9.resetFocusedIndex();
482
- });
483
-
484
- if (this.props.origin) {
485
- // this.setState({
486
- // dropdownItems: []
487
- // })
488
- if (this.props.autoload || keyword.toString().length >= this.state.queryLength) {
489
- this.remoteSearch(keyword);
490
- }
491
- }
492
- }
493
- }, {
494
- key: "matchFilter",
495
- value: function matchFilter(item) {
496
- var _this$state3 = this.state,
497
- searchable = _this$state3.searchable,
498
- keyword = _this$state3.keyword;
499
- return this.isRemote() || !searchable || !keyword || searchable && keyword && (String(item.id).includes(keyword) || String(item.name).includes(keyword));
500
- }
501
- }, {
502
- key: "resetFocusedIndex",
503
- value: function resetFocusedIndex() {
504
- var _this10 = this;
505
-
506
- var setState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
507
- var focusedIndex = -1;
508
- this.state.dropdownItems.every(function (item) {
509
- focusedIndex++;
510
-
511
- if (!item.disabled && _this10.matchFilter(item)) {
512
- return false;
513
- }
514
-
515
- return true;
516
- });
517
- setState && this.setState({
518
- focusedIndex: focusedIndex
519
- });
520
- return focusedIndex;
521
- }
522
- }, {
523
- key: "setFocusedIndex",
524
- value: function setFocusedIndex(focusedIndex) {
525
- this.setState({
526
- focusedIndex: focusedIndex
527
- });
528
- }
529
- }, {
530
- key: "moveFocusedIndex",
531
- value: function moveFocusedIndex(direction) {
532
- var _this11 = this;
533
-
534
- var focusedIndex = this.state.focusedIndex;
535
- var dropdownItems = this.state.dropdownItems;
536
-
537
- if (direction === 'up') {
538
- dropdownItems.slice(0, focusedIndex).reverse().every(function (item) {
539
- focusedIndex--;
540
-
541
- if (!item.disabled && _this11.matchFilter(item)) {
542
- return false;
543
- }
544
-
545
- return true;
546
- });
547
- } else {
548
- dropdownItems.slice(focusedIndex + 1).every(function (item) {
549
- focusedIndex++;
550
-
551
- if (!item.disabled && _this11.matchFilter(item)) {
552
- return false;
553
- }
554
-
555
- return true;
556
- });
557
- }
558
-
559
- this.setState({
560
- focusedIndex: focusedIndex
561
- });
562
- }
563
- }, {
564
- key: "localeDatasProps",
565
- value: function localeDatasProps(key) {
566
- var localeDatas = this.props.localeDatas;
567
-
568
- if (this.props[key]) {
569
- return this.props[key];
570
- } else {
571
- return localeDatas.select[key];
572
- }
573
- }
574
- }, {
575
- key: "render",
576
- value: function render() {
577
- var _this12 = this;
578
-
579
- var _this$props = this.props,
580
- mode = _this$props.mode,
581
- showCheckAll = _this$props.showCheckAll,
582
- className = _this$props.className,
583
- disabled = _this$props.disabled,
584
- clearable = _this$props.clearable,
585
- style = _this$props.style,
586
- children = _this$props.children,
587
- noFoundTip = _this$props.noFoundTip,
588
- optionWidth = _this$props.optionWidth,
589
- dropdownRender = _this$props.dropdownRender,
590
- multipleMode = _this$props.multipleMode,
591
- _onClick = _this$props.onClick,
592
- onBlur = _this$props.onBlur,
593
- onFocus = _this$props.onFocus;
594
- var placeholder = this.localeDatasProps('placeholder');
595
- var _this$state4 = this.state,
596
- selectedItems = _this$state4.selectedItems,
597
- dropdownItems = _this$state4.dropdownItems,
598
- searchable = _this$state4.searchable,
599
- dropdownShow = _this$state4.dropdownShow,
600
- focusedIndex = _this$state4.focusedIndex,
601
- fetching = _this$state4.fetching;
602
- var extraClass = {
603
- 'is-multiple': mode === 'multiple',
604
- 'is-single': mode === 'single'
605
- };
606
- return /*#__PURE__*/_react["default"].createElement("div", {
607
- className: (0, _classnames["default"])('hi-select', className, extraClass),
608
- style: style
609
- }, /*#__PURE__*/_react["default"].createElement("div", {
610
- className: "hi-select__input-container",
611
- ref: function ref(node) {
612
- _this12.selectInputContainer = node;
613
- }
614
- }, /*#__PURE__*/_react["default"].createElement(_SelectInput["default"], {
615
- ref: function ref(node) {
616
- _this12.selectInput = node;
617
- },
618
- mode: mode,
619
- disabled: disabled,
620
- searchable: searchable,
621
- clearable: clearable,
622
- dropdownShow: dropdownShow,
623
- placeholder: placeholder,
624
- selectedItems: selectedItems,
625
- dropdownItems: dropdownItems,
626
- multipleMode: multipleMode,
627
- container: this.selectInputContainer,
628
- moveFocusedIndex: this.moveFocusedIndex.bind(this),
629
- onClick: function onClick() {
630
- if (_this12.props.open) {
631
- _this12.handleInputClick();
632
- }
633
-
634
- _onClick();
635
- },
636
- onBlur: onBlur,
637
- onFocus: onFocus,
638
- onDelete: this.deleteItem.bind(this),
639
- onClear: this.deleteAllItems.bind(this),
640
- onSearch: this.debouncedFilterItems.bind(this),
641
- onEnterSelect: this.onEnterSelect.bind(this)
642
- })), children, /*#__PURE__*/_react["default"].createElement(_popper["default"], {
643
- show: dropdownShow && this.props.open,
644
- attachEle: this.selectInputContainer,
645
- zIndex: 1050,
646
- topGap: 5,
647
- className: "hi-select__popper",
648
- placement: "top-bottom-start"
649
- }, /*#__PURE__*/_react["default"].createElement(_SelectDropdown["default"], {
650
- noFoundTip: noFoundTip,
651
- mode: mode,
652
- showCheckAll: showCheckAll,
653
- checkAll: this.checkAll.bind(this),
654
- loading: fetching,
655
- focusedIndex: focusedIndex,
656
- matchFilter: this.matchFilter.bind(this),
657
- setFocusedIndex: this.setFocusedIndex.bind(this),
658
- optionWidth: optionWidth,
659
- dropdownItems: dropdownItems,
660
- selectedItems: selectedItems,
661
- dropdownRender: dropdownRender,
662
- onClickOption: this.onClickOption.bind(this)
663
- })));
664
- }
665
- }]);
666
- return Select;
667
- }(_react.Component);
668
-
669
- (0, _defineProperty2["default"])(Select, "propTypes", {
670
- mode: _propTypes["default"].oneOf(['single', 'multiple']),
671
- multipleMode: _propTypes["default"].oneOf(['wrap', 'nowrap']),
672
- list: _propTypes["default"].array,
673
- origin: _propTypes["default"].object,
674
- value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].array, _propTypes["default"].bool, _propTypes["default"].number]),
675
- showCheckAll: _propTypes["default"].bool,
676
- autoload: _propTypes["default"].bool,
677
- searchable: _propTypes["default"].bool,
678
- clearable: _propTypes["default"].bool,
679
- disabled: _propTypes["default"].bool,
680
- placeholder: _propTypes["default"].string,
681
- noFoundTip: _propTypes["default"].string,
682
- optionWidth: _propTypes["default"].number,
683
- style: _propTypes["default"].object,
684
- onChange: _propTypes["default"].func,
685
- dropdownRender: _propTypes["default"].func,
686
- open: _propTypes["default"].bool
687
- });
688
- (0, _defineProperty2["default"])(Select, "defaultProps", {
689
- list: [],
690
- mode: 'single',
691
- multipleMode: 'wrap',
692
- disabled: false,
693
- clearable: true,
694
- value: '',
695
- autoload: false,
696
- placeholder: '请选择',
697
- noFoundTip: '无内容',
698
- showCheckAll: false,
699
- open: true,
700
- onClick: function onClick() {},
701
- onBlur: function onBlur() {},
702
- onFocus: function onFocus() {}
703
- });
704
- Select.childContextTypes = {
705
- component: _propTypes["default"].any
706
- };
707
-
708
- var _default = (0, _context["default"])(Select);
709
-
710
- exports["default"] = _default;