@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,68 @@
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 _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));
10
+
11
+ var _ = _interopRequireDefault(require(".."));
12
+
13
+ describe('Switch', function () {
14
+ beforeAll(function () {
15
+ jest.useFakeTimers();
16
+ });
17
+ afterAll(function () {
18
+ jest.useRealTimers();
19
+ });
20
+ it('basic use', function () {
21
+ var wrapper = _reactTestRenderer["default"].create(_react["default"].createElement("div", null, _react["default"].createElement(_["default"], null), _react["default"].createElement(_["default"], {
22
+ content: ['ON', 'OFF']
23
+ }), _react["default"].createElement(_["default"], {
24
+ checked: true,
25
+ disabled: true,
26
+ content: ['开', '关']
27
+ })));
28
+
29
+ expect(wrapper).toMatchSnapshot();
30
+ });
31
+ it('onchange', function () {
32
+ var onChange = jest.fn();
33
+ var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], {
34
+ onChange: onChange
35
+ }));
36
+ wrapper.find('.hi-switch').simulate('click');
37
+ expect(onChange).toBeCalled();
38
+ });
39
+ it("checked", function () {
40
+ var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], {
41
+ checked: true,
42
+ content: ['开', '关']
43
+ }));
44
+ expect(wrapper.find('.hi-switch--closed')).toHaveLength(0);
45
+ wrapper.setProps({
46
+ checked: false
47
+ });
48
+ expect(wrapper.find('.hi-switch--closed')).toHaveLength(1);
49
+ });
50
+ it("disabled", function () {
51
+ var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], {
52
+ checked: true,
53
+ disabled: true
54
+ }));
55
+ wrapper.find('.hi-switch').simulate('click');
56
+ expect(wrapper.find('.hi-switch--closed')).toHaveLength(0);
57
+ });
58
+ it('oldProps onClick', function () {
59
+ var wrapper = (0, _enzyme.mount)(_react["default"].createElement(_["default"], {
60
+ checked: true,
61
+ onClick: function onClick() {
62
+ return false;
63
+ }
64
+ }));
65
+ wrapper.find('.hi-switch').simulate('click');
66
+ expect(wrapper.find('.hi-switch--closed')).toHaveLength(0);
67
+ });
68
+ });
@@ -1,82 +1,63 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
3
7
  Object.defineProperty(exports, "__esModule", {
4
8
  value: true
5
9
  });
6
10
  exports["default"] = void 0;
7
11
 
8
- var _react = _interopRequireWildcard(require("react"));
9
-
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
- var _classnames = _interopRequireDefault(require("classnames"));
13
-
14
- var _context = _interopRequireDefault(require("../context"));
15
-
16
- require("./style/index");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
-
20
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
21
-
22
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
23
13
 
24
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
25
15
 
26
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
27
17
 
28
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
19
 
30
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
31
21
 
32
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
33
-
34
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
35
-
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
37
-
38
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
22
+ var _react = _interopRequireWildcard(require("react"));
39
23
 
40
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
24
+ var _propTypes = _interopRequireDefault(require("prop-types"));
41
25
 
42
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
26
+ var _classnames = _interopRequireDefault(require("classnames"));
43
27
 
44
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
28
+ var _context = _interopRequireDefault(require("../context"));
45
29
 
46
- var Switch = /*#__PURE__*/function (_Component) {
47
- _inherits(Switch, _Component);
30
+ require("./style/index");
48
31
 
49
- var _super = _createSuper(Switch);
32
+ var Switch =
33
+ /*#__PURE__*/
34
+ function (_Component) {
35
+ (0, _inherits2["default"])(Switch, _Component);
50
36
 
51
37
  function Switch(props) {
52
38
  var _this;
53
39
 
54
- _classCallCheck(this, Switch);
55
-
56
- _this = _super.call(this, props);
40
+ (0, _classCallCheck2["default"])(this, Switch);
41
+ _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Switch).call(this, props));
57
42
  _this.state = {
58
43
  checked: props.checked
59
44
  };
60
45
  return _this;
61
46
  }
62
47
 
63
- _createClass(Switch, [{
48
+ (0, _createClass2["default"])(Switch, [{
64
49
  key: "componentWillReceiveProps",
65
50
  value: function componentWillReceiveProps(nextProps) {
66
- var _this2 = this;
67
-
68
- if (nextProps.checked !== this.state.checked) {
51
+ if (nextProps.checked !== this.props.checked) {
69
52
  this.setState({
70
53
  checked: nextProps.checked
71
- }, function () {
72
- _this2.props.onChange(nextProps.checked);
73
54
  });
74
55
  }
75
56
  }
76
57
  }, {
77
58
  key: "clickEvent",
78
59
  value: function clickEvent() {
79
- var _this3 = this;
60
+ var _this2 = this;
80
61
 
81
62
  var _this$props = this.props,
82
63
  disabled = _this$props.disabled,
@@ -93,7 +74,7 @@ var Switch = /*#__PURE__*/function (_Component) {
93
74
  this.setState({
94
75
  checked: !this.state.checked
95
76
  }, function () {
96
- onChange(_this3.state.checked);
77
+ onChange && onChange(_this2.state.checked);
97
78
  });
98
79
  }
99
80
  }
@@ -106,15 +87,14 @@ var Switch = /*#__PURE__*/function (_Component) {
106
87
  disabled = _this$props2.disabled;
107
88
  var checked = this.state.checked;
108
89
  var sCls = (0, _classnames["default"])('theme__' + theme, 'hi-switch', !checked && 'hi-switch--closed', disabled && 'hi-switch--disabled');
109
- return /*#__PURE__*/_react["default"].createElement("span", {
90
+ return _react["default"].createElement("span", {
110
91
  className: sCls,
111
92
  onClick: this.clickEvent.bind(this)
112
- }, /*#__PURE__*/_react["default"].createElement("span", {
93
+ }, _react["default"].createElement("span", {
113
94
  className: "hi-switch__text"
114
95
  }, content.length > 0 && (checked ? content[0] : content[1])));
115
96
  }
116
97
  }]);
117
-
118
98
  return Switch;
119
99
  }(_react.Component);
120
100
 
@@ -1 +1 @@
1
- .hi-switch{display:inline-block;min-width:48px;height:20px;border-radius:10px;cursor:pointer;position:relative;vertical-align:middle}.hi-switch{background:#4285f4}.hi-switch--closed,.hi-switch--disabled{background:#cdcfd1}.hi-switch--disabled::after{background:#dadbdc}.hi-switch::after{content:'';width:16px;height:16px;background:#fff;position:absolute;border-radius:50%;top:2px;left:100%;-webkit-transform:translateX(-100%);transform:translateX(-100%);margin-left:-2px;-webkit-transition:all 200ms linear;transition:all 200ms linear}.hi-switch__text{color:rgba(255,255,255,0.5);font-size:12px;position:absolute;top:0;line-height:20px;left:6px;-webkit-transition:all 200ms linear;transition:all 200ms linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.hi-switch--closed::after{left:2px;-webkit-transform:translateX(2px);transform:translateX(2px)}.hi-switch--closed .hi-switch__text{left:auto;right:6px}.hi-switch--disabled{cursor:not-allowed}.theme__hiui-blue.hi-switch{background:#4285f4}.theme__hiui-blue.hi-switch--closed,.theme__hiui-blue.hi-switch--disabled{background:#cdcfd1}.theme__hiui-blue.hi-switch--disabled::after{background:#dadbdc}.theme__orange.hi-switch{background:#f63}.theme__orange.hi-switch--closed,.theme__orange.hi-switch--disabled{background:#d1cecd}.theme__orange.hi-switch--disabled::after{background:#dddada}.theme__cyan.hi-switch{background:#46bc99}.theme__cyan.hi-switch--closed,.theme__cyan.hi-switch--disabled{background:#cdd0cf}.theme__cyan.hi-switch--disabled::after{background:#dadcdb}.theme__magenta.hi-switch{background:#ff5975}.theme__magenta.hi-switch--closed,.theme__magenta.hi-switch--disabled{background:#d1cece}.theme__magenta.hi-switch--disabled::after{background:#dddadb}.theme__lavender.hi-switch{background:#b450de}.theme__lavender.hi-switch--closed,.theme__lavender.hi-switch--disabled{background:#d0ced0}.theme__lavender.hi-switch--disabled::after{background:#dbdadc}.theme__blue.hi-switch{background:#3da8f5}.theme__blue.hi-switch--closed,.theme__blue.hi-switch--disabled{background:#cdcfd1}.theme__blue.hi-switch--disabled::after{background:#dadbdd}.theme__purple.hi-switch{background:#8a8acb}.theme__purple.hi-switch--closed,.theme__purple.hi-switch--disabled{background:#cfcfd0}.theme__purple.hi-switch--disabled::after{background:#dbdbdc}
1
+ .hi-switch{display:inline-block;min-width:48px;height:20px;border-radius:10px;cursor:pointer;position:relative;vertical-align:middle}.hi-switch{background:#4285f4}.hi-switch--closed,.hi-switch--disabled{background:#cdcfd1}.hi-switch--disabled::after{background:#dadbdc}.hi-switch::after{content:'';width:16px;height:16px;background:#fff;position:absolute;border-radius:50%;top:2px;left:100%;-webkit-transform:translateX(-100%);transform:translateX(-100%);margin-left:-2px;-webkit-transition:all 200ms linear;transition:all 200ms linear}.hi-switch__text{color:#fff;font-size:12px;position:absolute;top:0;line-height:20px;left:6px;-webkit-transition:all 200ms linear;transition:all 200ms linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.hi-switch--closed::after{left:2px;-webkit-transform:translateX(2px);transform:translateX(2px)}.hi-switch--closed .hi-switch__text{left:auto;right:6px}.hi-switch--disabled{cursor:not-allowed}.theme__hiui-blue.hi-switch{background:#4285f4}.theme__hiui-blue.hi-switch--closed,.theme__hiui-blue.hi-switch--disabled{background:#cdcfd1}.theme__hiui-blue.hi-switch--disabled::after{background:#dadbdc}.theme__orange.hi-switch{background:#f63}.theme__orange.hi-switch--closed,.theme__orange.hi-switch--disabled{background:#d1cecd}.theme__orange.hi-switch--disabled::after{background:#dddada}.theme__cyan.hi-switch{background:#46bc99}.theme__cyan.hi-switch--closed,.theme__cyan.hi-switch--disabled{background:#cdd0cf}.theme__cyan.hi-switch--disabled::after{background:#dadcdb}.theme__magenta.hi-switch{background:#ff5975}.theme__magenta.hi-switch--closed,.theme__magenta.hi-switch--disabled{background:#d1cece}.theme__magenta.hi-switch--disabled::after{background:#dddadb}.theme__lavender.hi-switch{background:#b450de}.theme__lavender.hi-switch--closed,.theme__lavender.hi-switch--disabled{background:#d0ced0}.theme__lavender.hi-switch--disabled::after{background:#dbdadc}.theme__blue.hi-switch{background:#3da8f5}.theme__blue.hi-switch--closed,.theme__blue.hi-switch--disabled{background:#cdcfd1}.theme__blue.hi-switch--disabled::after{background:#dadbdd}.theme__purple.hi-switch{background:#8a8acb}.theme__purple.hi-switch--closed,.theme__purple.hi-switch--disabled{background:#cfcfd0}.theme__purple.hi-switch--disabled::after{background:#dbdbdc}
@@ -0,0 +1,294 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
25
+
26
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
27
+
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
+
30
+ var _react = _interopRequireWildcard(require("react"));
31
+
32
+ var _icon = _interopRequireDefault(require("../icon"));
33
+
34
+ require("../icon/style");
35
+
36
+ var _prefix = _interopRequireDefault(require("./prefix"));
37
+
38
+ var _Footer = _interopRequireDefault(require("./Footer"));
39
+
40
+ // 点击后会展开的那个图标
41
+ var Expand =
42
+ /*#__PURE__*/
43
+ function (_Component) {
44
+ (0, _inherits2["default"])(Expand, _Component);
45
+
46
+ function Expand(props) {
47
+ var _this;
48
+
49
+ (0, _classCallCheck2["default"])(this, Expand);
50
+ _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Expand).call(this, props));
51
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleClick", function (e) {
52
+ var _this$props = _this.props,
53
+ addExpand = _this$props.addExpand,
54
+ colItem = _this$props.colItem,
55
+ index = _this$props.index,
56
+ rowItem = _this$props.rowItem;
57
+ addExpand(e, rowItem, index, colItem);
58
+ });
59
+ _this.state = {
60
+ open: false
61
+ };
62
+ return _this;
63
+ }
64
+
65
+ (0, _createClass2["default"])(Expand, [{
66
+ key: "render",
67
+ value: function render() {
68
+ var rowItem = this.props.rowItem;
69
+ return _react["default"].createElement("div", {
70
+ onClick: this.handleClick,
71
+ "data-open": false
72
+ }, rowItem.ishiuitableopen ? _react["default"].createElement(_icon["default"], {
73
+ name: 'down',
74
+ style: {
75
+ fontSize: '14px'
76
+ }
77
+ }) : _react["default"].createElement(_icon["default"], {
78
+ name: 'right',
79
+ style: {
80
+ fontSize: '14px'
81
+ }
82
+ }));
83
+ }
84
+ }]);
85
+ return Expand;
86
+ }(_react.Component);
87
+
88
+ var defaultRender = function defaultRender(text, record, index) {
89
+ return text;
90
+ };
91
+
92
+ var Row =
93
+ /*#__PURE__*/
94
+ function (_Component2) {
95
+ (0, _inherits2["default"])(Row, _Component2);
96
+
97
+ function Row(props) {
98
+ var _this2;
99
+
100
+ (0, _classCallCheck2["default"])(this, Row);
101
+ _this2 = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Row).call(this, props));
102
+ _this2.state = {
103
+ picked: false
104
+ };
105
+ return _this2;
106
+ }
107
+
108
+ (0, _createClass2["default"])(Row, [{
109
+ key: "render",
110
+ value: function render() {
111
+ var _this$props2 = this.props,
112
+ expand = _this$props2.expand,
113
+ k = _this$props2.k,
114
+ parent = _this$props2.parent,
115
+ highlightRows = _this$props2.highlightRows;
116
+ var classNames = {
117
+ 'table-row': true,
118
+ picked: highlightRows.includes(k),
119
+ expand: expand,
120
+ test: 't'
121
+ };
122
+ return _react["default"].createElement("tr", {
123
+ key: k,
124
+ onDoubleClick: function onDoubleClick(e) {
125
+ if (!k.toString()) {
126
+ return;
127
+ }
128
+
129
+ if (highlightRows.includes(k)) {
130
+ highlightRows.splice(highlightRows.indexOf(k), 1);
131
+ } else {
132
+ highlightRows.push(k);
133
+ }
134
+
135
+ parent.setState({
136
+ highlightRows: highlightRows
137
+ });
138
+ },
139
+ className: (0, _prefix["default"])(classNames)
140
+ }, this.props.children);
141
+ }
142
+ }]);
143
+ return Row;
144
+ }(_react.Component);
145
+
146
+ var Body =
147
+ /*#__PURE__*/
148
+ function (_Component3) {
149
+ (0, _inherits2["default"])(Body, _Component3);
150
+
151
+ function Body(props) {
152
+ var _this3;
153
+
154
+ (0, _classCallCheck2["default"])(this, Body);
155
+ _this3 = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(Body).call(this, props));
156
+ _this3.state = {
157
+ pickedRows: []
158
+ };
159
+ return _this3;
160
+ }
161
+
162
+ (0, _createClass2["default"])(Body, [{
163
+ key: "render",
164
+ value: function render() {
165
+ var _this$props3 = this.props,
166
+ columns = _this$props3.columns,
167
+ dataSource = _this$props3.dataSource,
168
+ addExpand = _this$props3.cbs.addExpand,
169
+ _this$props3$rowSelec = _this$props3.rowSelection,
170
+ rowSelection = _this$props3$rowSelec === void 0 ? {} : _this$props3$rowSelec,
171
+ highlightCols = _this$props3.highlightCols,
172
+ advance = _this$props3.advance,
173
+ rest = (0, _objectWithoutProperties2["default"])(_this$props3, ["columns", "dataSource", "cbs", "rowSelection", "highlightCols", "advance"]);
174
+ columns = columns.filter(function (item) {
175
+ return !item.hide;
176
+ });
177
+ var selectedRowKeys = rowSelection.selectedRowKeys || []; // 表头分组
178
+
179
+ var i = 0;
180
+ var pureData = dataSource.filter(function (item) {
181
+ return !item.expand;
182
+ });
183
+ var nodes = dataSource.map(function (item, k) {
184
+ var colSpan = 1;
185
+ var tr = []; // 点击后展开的那一行
186
+
187
+ if (item.expand) {
188
+ var obj = pureData.find(function (o) {
189
+ return o.key === item.parent;
190
+ });
191
+ var expand = columns.find(function (o) {
192
+ return o.type === 'expand';
193
+ });
194
+ tr = expand ? _react["default"].createElement("td", {
195
+ colSpan: columns.length,
196
+ key: 'key-' + item.parent,
197
+ className: (0, _prefix["default"])('table-col', highlightCols.includes(item.key) ? 'picked' : null)
198
+ }, expand.render(obj[item.dataIndex], obj, pureData.indexOf(obj))) : null;
199
+ } else {
200
+ // 扩展项的占位dom
201
+ // 这里只能用for循环,因为会有表格 行列 合并的情况,要改变循环的顺序
202
+ for (var j = 0; j < columns.length;) {
203
+ var _obj = columns[j];
204
+ var td = void 0;
205
+ var rowSpan = 1; // 点击后会展开的那个图标
206
+
207
+ if (_obj.type === 'expand') {
208
+ // {/*<div key={'td-' + k + '-' + j} onClick={(e) => addExpand(e, obj)} data-index={k} data-open={false}> > </div>*/}
209
+ td = _react["default"].createElement(Expand, {
210
+ key: k,
211
+ addExpand: addExpand,
212
+ "data-index": k,
213
+ "data-open": false,
214
+ colItem: _obj,
215
+ index: k,
216
+ rowItem: item
217
+ });
218
+ } else {
219
+ _obj.render = _obj.render || defaultRender;
220
+ td = _obj.render(item[_obj.dataIndex], item, i); // 做判断的原因是?
221
+
222
+ if (td && td.props && td.props.colSpan) {
223
+ colSpan = td.props.colSpan;
224
+ }
225
+
226
+ if (td && td.props && td.props.hasOwnProperty('rowSpan')) {
227
+ rowSpan = td.props.rowSpan;
228
+ }
229
+
230
+ if (td && td.children) {
231
+ td = td.children;
232
+ } // j=j+colSpan
233
+ // 表格溢出开关
234
+ // if(colSpan>0){
235
+ // j=j+colSpan-1
236
+ // }
237
+
238
+ }
239
+
240
+ if (parseInt(rowSpan) !== 0) {
241
+ tr.push(_react["default"].createElement("td", {
242
+ className: (0, _prefix["default"])('table-col', highlightCols.includes(_obj.key) ? 'picked' : null),
243
+ rowSpan: rowSpan,
244
+ colSpan: colSpan,
245
+ "data-span": colSpan,
246
+ key: 'td-' + k + '-' + j
247
+ }, td));
248
+ } else {
249
+ tr.push(null);
250
+ }
251
+
252
+ j = j + colSpan;
253
+ } // 这个i 是在动态插入行的时候,给render的回掉函数的 索引
254
+
255
+
256
+ i++; // 动态插入的组件不累加
257
+ }
258
+
259
+ return _react["default"].createElement(Row, (0, _extends2["default"])({
260
+ selectedRowKeys: selectedRowKeys,
261
+ k: item.key || k,
262
+ expand: item.expand,
263
+ key: item.key || 'tr-' + k
264
+ }, rest), tr);
265
+ });
266
+ return _react["default"].createElement("tbody", {
267
+ className: (0, _prefix["default"])('table-tbody')
268
+ }, advance && advance.prefix && this.getPrefixNodes(), nodes, _react["default"].createElement(_Footer["default"], (0, _extends2["default"])({
269
+ className: 'table-footer'
270
+ }, this.props)));
271
+ }
272
+ }, {
273
+ key: "getPrefixNodes",
274
+ value: function getPrefixNodes() {
275
+ var _this$props4 = this.props,
276
+ columns = _this$props4.columns,
277
+ advance = _this$props4.advance;
278
+ return advance.prefix.map(function (suf, index) {
279
+ return _react["default"].createElement("tr", {
280
+ className: (0, _prefix["default"])('table-row'),
281
+ key: "suf-".concat(index)
282
+ }, columns.map(function (item, j) {
283
+ return _react["default"].createElement("td", {
284
+ className: (0, _prefix["default"])('table-col'),
285
+ key: "suf-".concat(item.dataIndex, "-").concat(index, "-").concat(j)
286
+ }, suf[item.dataIndex]);
287
+ }));
288
+ });
289
+ }
290
+ }]);
291
+ return Body;
292
+ }(_react.Component);
293
+
294
+ exports["default"] = Body;
@@ -0,0 +1,95 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
25
+
26
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
27
+
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
+
30
+ var _react = _interopRequireWildcard(require("react"));
31
+
32
+ var _propTypes = _interopRequireDefault(require("prop-types"));
33
+
34
+ var ClickOutside =
35
+ /*#__PURE__*/
36
+ function (_Component) {
37
+ (0, _inherits2["default"])(ClickOutside, _Component);
38
+
39
+ function ClickOutside(props) {
40
+ var _this;
41
+
42
+ (0, _classCallCheck2["default"])(this, ClickOutside);
43
+ _this = (0, _possibleConstructorReturn2["default"])(this, (0, _getPrototypeOf2["default"])(ClickOutside).call(this, props));
44
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handle", function (e) {
45
+ var onClickOutside = _this.props.onClickOutside;
46
+ if (e.type === 'touchend') _this.isTouch = true;
47
+ if (e.type === 'click' && _this.isTouch) return;
48
+ var el = _this.container;
49
+
50
+ if (el && !el.contains(e.target)) {
51
+ onClickOutside(e);
52
+ e.stopPropagation();
53
+ }
54
+ });
55
+ _this.getContainer = _this.getContainer.bind((0, _assertThisInitialized2["default"])(_this));
56
+ _this.isTouch = false;
57
+ return _this;
58
+ }
59
+
60
+ (0, _createClass2["default"])(ClickOutside, [{
61
+ key: "getContainer",
62
+ value: function getContainer(ref) {
63
+ this.container = ref;
64
+ }
65
+ }, {
66
+ key: "render",
67
+ value: function render() {
68
+ var _this$props = this.props,
69
+ children = _this$props.children,
70
+ onClickOutside = _this$props.onClickOutside,
71
+ props = (0, _objectWithoutProperties2["default"])(_this$props, ["children", "onClickOutside"]);
72
+ return _react["default"].createElement("div", (0, _extends2["default"])({}, props, {
73
+ ref: this.getContainer
74
+ }), children);
75
+ }
76
+ }, {
77
+ key: "componentDidMount",
78
+ value: function componentDidMount() {
79
+ document.addEventListener('touchend', this.handle, true);
80
+ document.addEventListener('click', this.handle, true);
81
+ }
82
+ }, {
83
+ key: "componentWillUnmount",
84
+ value: function componentWillUnmount() {
85
+ document.removeEventListener('touchend', this.handle, true);
86
+ document.removeEventListener('click', this.handle, true);
87
+ }
88
+ }]);
89
+ return ClickOutside;
90
+ }(_react.Component);
91
+
92
+ exports["default"] = ClickOutside;
93
+ (0, _defineProperty2["default"])(ClickOutside, "propTypes", {
94
+ onClickOutside: _propTypes["default"].func.isRequired
95
+ });