@qsxy/element-plus-react 1.0.0-next.1 → 1.0.0-next.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 (758) hide show
  1. package/README.md +95 -0
  2. package/dist/Avatar/Avatar.d.ts +4 -0
  3. package/dist/Avatar/Avatar.js +87 -0
  4. package/dist/Avatar/index.d.ts +2 -0
  5. package/dist/Avatar/index.js +1 -0
  6. package/dist/Avatar/typings.d.ts +21 -0
  7. package/dist/Avatar/typings.js +1 -0
  8. package/dist/Badge/Badge.d.ts +2 -2
  9. package/dist/Badge/Badge.js +63 -61
  10. package/dist/Badge/index.js +1 -39
  11. package/dist/Badge/typings.d.ts +11 -1
  12. package/dist/Badge/typings.js +1 -17
  13. package/dist/Breadcrumb/Breadcrumb.js +23 -53
  14. package/dist/Breadcrumb/BreadcrumbItem.js +45 -51
  15. package/dist/Breadcrumb/index.js +2 -42
  16. package/dist/Breadcrumb/typings.d.ts +4 -0
  17. package/dist/Breadcrumb/typings.js +1 -17
  18. package/dist/Button/Button.d.ts +0 -1
  19. package/dist/Button/Button.js +132 -93
  20. package/dist/Button/ButtonGroup.js +29 -48
  21. package/dist/Button/ButtonGroupContext.js +2 -30
  22. package/dist/Button/index.js +2 -42
  23. package/dist/Button/typings.d.ts +32 -2
  24. package/dist/Button/typings.js +1 -17
  25. package/dist/Button/useButtonCustomStyle.d.ts +4 -0
  26. package/dist/Button/useButtonCustomStyle.js +65 -0
  27. package/dist/Calendar/Calendar.js +310 -238
  28. package/dist/Calendar/CalendarContext.d.ts +10 -0
  29. package/dist/Calendar/CalendarContext.js +3 -27
  30. package/dist/Calendar/DatePanel.js +191 -158
  31. package/dist/Calendar/DateRangePanel.js +140 -125
  32. package/dist/Calendar/Footer.js +41 -52
  33. package/dist/Calendar/Header.js +83 -70
  34. package/dist/Calendar/MonthPanel.js +138 -124
  35. package/dist/Calendar/MonthRangePanel.js +137 -124
  36. package/dist/Calendar/ShortCuts.d.ts +2 -0
  37. package/dist/Calendar/ShortCuts.js +21 -40
  38. package/dist/Calendar/WeekPanel.js +213 -145
  39. package/dist/Calendar/YearPanel.js +150 -125
  40. package/dist/Calendar/YearRangePanel.js +138 -128
  41. package/dist/Calendar/index.js +4 -47
  42. package/dist/Calendar/typings.d.ts +18 -0
  43. package/dist/Calendar/typings.js +1 -17
  44. package/dist/Calendar/util.js +26 -68
  45. package/dist/Card/Card.js +36 -46
  46. package/dist/Card/index.js +1 -39
  47. package/dist/Card/typings.d.ts +4 -0
  48. package/dist/Card/typings.js +1 -17
  49. package/dist/Carousel/Carousel.d.ts +4 -0
  50. package/dist/Carousel/Carousel.js +204 -0
  51. package/dist/Carousel/CarouselContext.d.ts +4 -0
  52. package/dist/Carousel/CarouselContext.js +24 -0
  53. package/dist/Carousel/CarouselItem.d.ts +4 -0
  54. package/dist/Carousel/CarouselItem.js +59 -0
  55. package/dist/Carousel/hooks/useCarousel.d.ts +37 -0
  56. package/dist/Carousel/hooks/useCarousel.js +373 -0
  57. package/dist/Carousel/hooks/useCarouselItem.d.ts +8 -0
  58. package/dist/Carousel/hooks/useCarouselItem.js +165 -0
  59. package/dist/Carousel/index.d.ts +3 -0
  60. package/dist/Carousel/index.js +2 -0
  61. package/dist/Carousel/typings.d.ts +83 -0
  62. package/dist/Carousel/typings.js +1 -0
  63. package/dist/Cascader/Cascader.js +694 -604
  64. package/dist/Cascader/CascaderContext.d.ts +4 -10
  65. package/dist/Cascader/CascaderContext.js +10 -50
  66. package/dist/Cascader/CascaderDropdown.d.ts +1 -0
  67. package/dist/Cascader/CascaderDropdown.js +90 -77
  68. package/dist/Cascader/CascaderMenu.js +100 -186
  69. package/dist/Cascader/Utils.d.ts +0 -2
  70. package/dist/Cascader/Utils.js +6 -77
  71. package/dist/Cascader/index.d.ts +1 -1
  72. package/dist/Cascader/index.js +1 -39
  73. package/dist/Cascader/typings.d.ts +77 -13
  74. package/dist/Cascader/typings.js +1 -17
  75. package/dist/Cascader/useCascader.d.ts +61 -3
  76. package/dist/Cascader/useCascader.js +651 -488
  77. package/dist/Checkbox/Checkbox.d.ts +3 -3
  78. package/dist/Checkbox/Checkbox.js +136 -165
  79. package/dist/Checkbox/CheckboxButton.js +132 -161
  80. package/dist/Checkbox/index.js +2 -42
  81. package/dist/Checkbox/typings.d.ts +12 -1
  82. package/dist/Checkbox/typings.js +1 -17
  83. package/dist/CheckboxGroup/CheckboxGroup.d.ts +4 -0
  84. package/dist/CheckboxGroup/CheckboxGroup.js +133 -112
  85. package/dist/CheckboxGroup/CheckboxGroupContext.d.ts +1 -0
  86. package/dist/CheckboxGroup/CheckboxGroupContext.js +2 -30
  87. package/dist/CheckboxGroup/index.js +2 -42
  88. package/dist/Col/Col.js +53 -79
  89. package/dist/Col/index.js +1 -39
  90. package/dist/Col/typings.d.ts +10 -0
  91. package/dist/Col/typings.js +1 -17
  92. package/dist/Collapse/Collapse.js +36 -45
  93. package/dist/Collapse/CollapseContext.d.ts +3 -0
  94. package/dist/Collapse/CollapseContext.js +3 -31
  95. package/dist/Collapse/CollapseItem.js +88 -71
  96. package/dist/Collapse/CollapseTransition.d.ts +7 -6
  97. package/dist/Collapse/CollapseTransition.js +50 -70
  98. package/dist/Collapse/index.js +2 -42
  99. package/dist/Collapse/typings.d.ts +7 -0
  100. package/dist/Collapse/typings.js +1 -17
  101. package/dist/ColorPicker/AlphaSlider.d.ts +7 -0
  102. package/dist/ColorPicker/AlphaSlider.js +117 -100
  103. package/dist/ColorPicker/ColorPicker.d.ts +1 -1
  104. package/dist/ColorPicker/ColorPicker.js +233 -190
  105. package/dist/ColorPicker/HueSlider.d.ts +7 -0
  106. package/dist/ColorPicker/HueSlider.js +102 -97
  107. package/dist/ColorPicker/Predefine.d.ts +7 -0
  108. package/dist/ColorPicker/Predefine.js +65 -67
  109. package/dist/ColorPicker/SvPanel.d.ts +7 -0
  110. package/dist/ColorPicker/SvPanel.js +95 -82
  111. package/dist/ColorPicker/color.js +301 -213
  112. package/dist/ColorPicker/draggable.js +30 -48
  113. package/dist/ColorPicker/index.js +1 -39
  114. package/dist/ColorPicker/typings.d.ts +9 -0
  115. package/dist/ColorPicker/typings.js +1 -17
  116. package/dist/ColorPicker/util.js +23 -60
  117. package/dist/ConfigProvider/ConfigProvider.d.ts +5 -0
  118. package/dist/ConfigProvider/ConfigProvider.js +4 -28
  119. package/dist/ConfigProvider/index.js +1 -39
  120. package/dist/DatePicker/DatePicker.d.ts +3 -3
  121. package/dist/DatePicker/DatePicker.js +251 -216
  122. package/dist/DatePicker/DateRangePicker.d.ts +3 -3
  123. package/dist/DatePicker/DateRangePicker.js +279 -275
  124. package/dist/DatePicker/index.js +2 -39
  125. package/dist/DatePicker/main.d.ts +2 -2
  126. package/dist/DatePicker/main.js +21 -44
  127. package/dist/DatePicker/typings.d.ts +92 -16
  128. package/dist/DatePicker/typings.js +1 -17
  129. package/dist/DateTimePicker/DateTimePicker.d.ts +3 -5
  130. package/dist/DateTimePicker/DateTimePicker.js +290 -217
  131. package/dist/DateTimePicker/index.js +1 -39
  132. package/dist/DateTimePicker/typings.d.ts +10 -12
  133. package/dist/DateTimePicker/typings.js +1 -17
  134. package/dist/DateTimePicker/util.js +5 -35
  135. package/dist/Descriptions/Descriptions.js +83 -67
  136. package/dist/Descriptions/DescriptionsCell.js +67 -79
  137. package/dist/Descriptions/DescriptionsContext.d.ts +2 -0
  138. package/dist/Descriptions/DescriptionsContext.js +4 -32
  139. package/dist/Descriptions/DescriptionsItem.js +4 -27
  140. package/dist/Descriptions/DescriptionsRow.js +42 -44
  141. package/dist/Descriptions/index.js +2 -42
  142. package/dist/Descriptions/typings.d.ts +13 -0
  143. package/dist/Descriptions/typings.js +1 -17
  144. package/dist/Dialog/Dialog.d.ts +0 -1
  145. package/dist/Dialog/Dialog.js +224 -179
  146. package/dist/Dialog/DialogBody.js +52 -62
  147. package/dist/Dialog/DialogContext.d.ts +8 -0
  148. package/dist/Dialog/DialogContext.js +6 -44
  149. package/dist/Dialog/DialogFooter.js +21 -45
  150. package/dist/Dialog/DialogHeader.js +44 -53
  151. package/dist/Dialog/index.js +1 -39
  152. package/dist/Dialog/typings.d.ts +39 -3
  153. package/dist/Dialog/typings.js +1 -17
  154. package/dist/Dialog/useDraggable.js +52 -79
  155. package/dist/Divider/Divider.d.ts +7 -3
  156. package/dist/Divider/Divider.js +38 -49
  157. package/dist/Divider/index.js +1 -39
  158. package/dist/Drawer/Drawer.js +145 -123
  159. package/dist/Drawer/DrawerBody.js +35 -60
  160. package/dist/Drawer/DrawerContext.d.ts +10 -0
  161. package/dist/Drawer/DrawerContext.js +13 -44
  162. package/dist/Drawer/DrawerFooter.js +22 -43
  163. package/dist/Drawer/DrawerHeader.js +41 -51
  164. package/dist/Drawer/index.js +1 -39
  165. package/dist/Drawer/typings.d.ts +16 -0
  166. package/dist/Drawer/typings.js +1 -17
  167. package/dist/Dropdown/Dropdown.js +89 -103
  168. package/dist/Dropdown/DropdownContext.d.ts +2 -0
  169. package/dist/Dropdown/DropdownContext.js +5 -43
  170. package/dist/Dropdown/DropdownItem.js +40 -60
  171. package/dist/Dropdown/DropdownMenu.js +28 -56
  172. package/dist/Dropdown/index.js +3 -45
  173. package/dist/Dropdown/typings.d.ts +16 -1
  174. package/dist/Dropdown/typings.js +1 -17
  175. package/dist/Empty/Empty.js +32 -56
  176. package/dist/Empty/ImgEmpty.js +115 -117
  177. package/dist/Empty/index.js +1 -39
  178. package/dist/Form/FieldContext.js +8 -37
  179. package/dist/Form/Form.js +167 -158
  180. package/dist/Form/FormContext.js +58 -97
  181. package/dist/Form/FormItem.d.ts +12 -0
  182. package/dist/Form/FormItem.js +620 -350
  183. package/dist/Form/FormItemContext.js +3 -31
  184. package/dist/Form/List.js +121 -104
  185. package/dist/Form/ListContext.js +3 -27
  186. package/dist/Form/index.js +3 -45
  187. package/dist/Form/typings.d.ts +79 -3
  188. package/dist/Form/typings.js +1 -17
  189. package/dist/Form/useForm.d.ts +22 -0
  190. package/dist/Form/useForm.js +830 -690
  191. package/dist/Form/useWatch.js +64 -79
  192. package/dist/Form/utils/NameMap.d.ts +3 -0
  193. package/dist/Form/utils/NameMap.js +98 -69
  194. package/dist/Form/utils/asyncUtil.js +9 -37
  195. package/dist/Form/utils/classUtil.js +26 -48
  196. package/dist/Form/utils/cloneDeep.js +8 -29
  197. package/dist/Form/utils/get.js +6 -30
  198. package/dist/Form/utils/messages.js +25 -53
  199. package/dist/Form/utils/set.js +31 -44
  200. package/dist/Form/utils/typeUtil.js +3 -31
  201. package/dist/Form/utils/util.js +18 -55
  202. package/dist/Form/utils/validateUtil.d.ts +4 -0
  203. package/dist/Form/utils/validateUtil.js +284 -159
  204. package/dist/Form/utils/valueUtil.d.ts +17 -0
  205. package/dist/Form/utils/valueUtil.js +102 -107
  206. package/dist/Icon/Icon.js +39 -66
  207. package/dist/Icon/IconList/Check.js +25 -65
  208. package/dist/Icon/IconList/Close.js +23 -52
  209. package/dist/Icon/IconList/Delete.js +25 -65
  210. package/dist/Icon/IconList/Down.js +25 -65
  211. package/dist/Icon/IconList/Eye.js +25 -65
  212. package/dist/Icon/IconList/EyeClose.js +25 -65
  213. package/dist/Icon/IconList/Left.js +25 -65
  214. package/dist/Icon/IconList/Link.js +19 -55
  215. package/dist/Icon/IconList/More.js +25 -65
  216. package/dist/Icon/IconList/Question.js +25 -65
  217. package/dist/Icon/IconList/Right.js +25 -65
  218. package/dist/Icon/IconList/Search.js +25 -65
  219. package/dist/Icon/IconList/Up.js +25 -65
  220. package/dist/Icon/IconList/Upload.js +25 -65
  221. package/dist/Icon/IconList/index.js +14 -68
  222. package/dist/Icon/index.js +2 -42
  223. package/dist/Icon/typings.d.ts +7 -0
  224. package/dist/Icon/typings.js +1 -17
  225. package/dist/Input/Input.js +334 -350
  226. package/dist/Input/InputGroup.js +27 -43
  227. package/dist/Input/InputRange.js +295 -305
  228. package/dist/Input/TextArea.js +129 -116
  229. package/dist/Input/index.js +3 -45
  230. package/dist/Input/typings.d.ts +61 -0
  231. package/dist/Input/typings.js +1 -17
  232. package/dist/InputNumber/InputNumber.js +219 -200
  233. package/dist/InputNumber/index.js +1 -39
  234. package/dist/InputNumber/typings.d.ts +22 -1
  235. package/dist/InputNumber/typings.js +1 -17
  236. package/dist/Link/Link.js +43 -63
  237. package/dist/Link/index.js +1 -39
  238. package/dist/Link/typings.d.ts +6 -1
  239. package/dist/Link/typings.js +1 -17
  240. package/dist/Loading/Loading.js +97 -62
  241. package/dist/Loading/index.js +1 -39
  242. package/dist/Loading/typings.d.ts +5 -0
  243. package/dist/Loading/typings.js +1 -17
  244. package/dist/Message/Main.d.ts +7 -0
  245. package/dist/Message/Main.js +41 -66
  246. package/dist/Message/Message.js +167 -127
  247. package/dist/Message/index.d.ts +8 -0
  248. package/dist/Message/index.js +68 -88
  249. package/dist/Message/typings.d.ts +11 -0
  250. package/dist/Message/typings.js +1 -17
  251. package/dist/MessageBox/Main.js +42 -65
  252. package/dist/MessageBox/MessageBox.js +253 -202
  253. package/dist/MessageBox/index.d.ts +17 -3
  254. package/dist/MessageBox/index.js +74 -79
  255. package/dist/MessageBox/typings.d.ts +50 -0
  256. package/dist/MessageBox/typings.js +1 -17
  257. package/dist/Notification/Main.d.ts +7 -0
  258. package/dist/Notification/Main.js +41 -66
  259. package/dist/Notification/Notification.js +148 -128
  260. package/dist/Notification/index.d.ts +15 -0
  261. package/dist/Notification/index.js +76 -92
  262. package/dist/Notification/typings.d.ts +13 -0
  263. package/dist/Notification/typings.js +1 -17
  264. package/dist/Pagination/Options.js +104 -99
  265. package/dist/Pagination/Pager.js +30 -61
  266. package/dist/Pagination/Pagination.js +462 -376
  267. package/dist/Pagination/index.js +1 -39
  268. package/dist/Pagination/typings.d.ts +28 -0
  269. package/dist/Pagination/typings.js +1 -17
  270. package/dist/Pagination/util.js +10 -41
  271. package/dist/Popconfirm/Popconfirm.js +109 -113
  272. package/dist/Popconfirm/index.js +1 -39
  273. package/dist/Popconfirm/typings.d.ts +12 -1
  274. package/dist/Popconfirm/typings.js +1 -17
  275. package/dist/Popover/Popover.js +87 -85
  276. package/dist/Popover/index.js +1 -39
  277. package/dist/Popover/typings.d.ts +13 -1
  278. package/dist/Popover/typings.js +1 -17
  279. package/dist/Popper/Popper.js +172 -145
  280. package/dist/Popper/index.js +1 -39
  281. package/dist/Popper/popperOptions.js +79 -90
  282. package/dist/Popper/typings.d.ts +7 -1
  283. package/dist/Popper/typings.js +1 -17
  284. package/dist/Progress/Progress.js +186 -151
  285. package/dist/Progress/index.js +1 -39
  286. package/dist/Progress/typings.d.ts +12 -0
  287. package/dist/Progress/typings.js +1 -17
  288. package/dist/Radio/Radio.js +158 -117
  289. package/dist/Radio/RadioButton.js +127 -117
  290. package/dist/Radio/index.js +1 -39
  291. package/dist/Radio/typings.d.ts +7 -0
  292. package/dist/Radio/typings.js +1 -17
  293. package/dist/RadioGroup/RadioGroup.js +63 -78
  294. package/dist/RadioGroup/index.js +1 -39
  295. package/dist/RadioGroup/typings.d.ts +1 -0
  296. package/dist/RadioGroup/typings.js +1 -17
  297. package/dist/Row/Row.js +41 -59
  298. package/dist/Row/RowContext.d.ts +1 -0
  299. package/dist/Row/RowContext.js +3 -31
  300. package/dist/Row/index.js +2 -42
  301. package/dist/Row/typings.d.ts +4 -0
  302. package/dist/Row/typings.js +1 -17
  303. package/dist/Scrollbar/Scrollbar.js +172 -129
  304. package/dist/Scrollbar/Thumb.js +108 -96
  305. package/dist/Scrollbar/index.js +1 -39
  306. package/dist/Scrollbar/typings.d.ts +31 -2
  307. package/dist/Scrollbar/typings.js +1 -17
  308. package/dist/Scrollbar/util.js +24 -51
  309. package/dist/Select/Option.js +50 -75
  310. package/dist/Select/OptionGroup.js +31 -47
  311. package/dist/Select/Select.js +25 -48
  312. package/dist/Select/SelectContext.js +8 -46
  313. package/dist/Select/SelectCore.js +449 -374
  314. package/dist/Select/SelectDropdown.js +200 -160
  315. package/dist/Select/index.js +2 -42
  316. package/dist/Select/typings.d.ts +34 -1
  317. package/dist/Select/typings.js +1 -17
  318. package/dist/Skeleton/PlaceholderGraph.d.ts +4 -0
  319. package/dist/Skeleton/PlaceholderGraph.js +39 -45
  320. package/dist/Skeleton/PlaceholderGrid.d.ts +4 -0
  321. package/dist/Skeleton/PlaceholderGrid.js +55 -71
  322. package/dist/Skeleton/PlaceholderParagraph.d.ts +4 -0
  323. package/dist/Skeleton/PlaceholderParagraph.js +51 -56
  324. package/dist/Skeleton/Skeleton.js +8 -42
  325. package/dist/Skeleton/index.js +1 -39
  326. package/dist/Switch/Switch.js +177 -151
  327. package/dist/Switch/index.js +1 -39
  328. package/dist/Switch/typings.d.ts +15 -0
  329. package/dist/Switch/typings.js +1 -17
  330. package/dist/Table/Colgroup.d.ts +1 -0
  331. package/dist/Table/Colgroup.js +17 -41
  332. package/dist/Table/Table.js +246 -184
  333. package/dist/Table/TableBody.js +265 -231
  334. package/dist/Table/TableCell.js +461 -325
  335. package/dist/Table/TableColumn.js +9 -47
  336. package/dist/Table/TableContext.d.ts +8 -0
  337. package/dist/Table/TableContext.js +44 -63
  338. package/dist/Table/TableHeader.js +112 -102
  339. package/dist/Table/TableHeaderCell.js +211 -158
  340. package/dist/Table/hooks/useResize.js +69 -83
  341. package/dist/Table/hooks/useScroll.js +88 -114
  342. package/dist/Table/hooks/useSelection.d.ts +10 -0
  343. package/dist/Table/hooks/useSelection.js +145 -110
  344. package/dist/Table/hooks/useTable.d.ts +7 -0
  345. package/dist/Table/hooks/useTable.js +411 -309
  346. package/dist/Table/index.js +2 -42
  347. package/dist/Table/treeUtil.d.ts +39 -0
  348. package/dist/Table/treeUtil.js +99 -77
  349. package/dist/Table/typings.d.ts +137 -1
  350. package/dist/Table/typings.js +1 -17
  351. package/dist/Table/util.d.ts +10 -0
  352. package/dist/Table/util.js +168 -109
  353. package/dist/Tabs/TabPane.js +51 -53
  354. package/dist/Tabs/Tabs.js +277 -181
  355. package/dist/Tabs/TabsContext.js +4 -32
  356. package/dist/Tabs/index.js +2 -42
  357. package/dist/Tabs/typings.d.ts +38 -0
  358. package/dist/Tabs/typings.js +1 -17
  359. package/dist/Tag/Tag.d.ts +1 -1
  360. package/dist/Tag/Tag.js +75 -75
  361. package/dist/Tag/index.js +1 -39
  362. package/dist/Tag/typings.d.ts +10 -0
  363. package/dist/Tag/typings.js +1 -17
  364. package/dist/TimeLine/TimeLine.js +13 -42
  365. package/dist/TimeLine/TimeLineItem.js +66 -51
  366. package/dist/TimeLine/index.js +2 -42
  367. package/dist/TimeLine/typings.d.ts +9 -0
  368. package/dist/TimeLine/typings.js +1 -17
  369. package/dist/TimePicker/TimePicker.d.ts +1 -4
  370. package/dist/TimePicker/TimePicker.js +275 -211
  371. package/dist/TimePicker/TimePickerPanel.js +62 -71
  372. package/dist/TimePicker/TimePickerRange.d.ts +4 -4
  373. package/dist/TimePicker/TimePickerRange.js +372 -332
  374. package/dist/TimePicker/TimeRangePanel.js +182 -165
  375. package/dist/TimePicker/TimeSpinnerPanel.js +321 -269
  376. package/dist/TimePicker/index.d.ts +2 -3
  377. package/dist/TimePicker/index.js +1 -42
  378. package/dist/TimePicker/main.d.ts +9 -0
  379. package/dist/TimePicker/main.js +17 -0
  380. package/dist/TimePicker/typings.d.ts +39 -21
  381. package/dist/TimePicker/typings.js +1 -17
  382. package/dist/TimePicker/useTimePicker.d.ts +7 -0
  383. package/dist/TimePicker/useTimePicker.js +62 -65
  384. package/dist/TimePicker/util.js +8 -40
  385. package/dist/Tooltip/Tooltip.js +172 -187
  386. package/dist/Tooltip/TooltipContext.d.ts +1 -0
  387. package/dist/Tooltip/TooltipContext.js +8 -46
  388. package/dist/Tooltip/index.js +2 -42
  389. package/dist/Tooltip/typings.d.ts +14 -1
  390. package/dist/Tooltip/typings.js +1 -17
  391. package/dist/Transfer/List.js +290 -237
  392. package/dist/Transfer/ListBody.js +92 -106
  393. package/dist/Transfer/ListItem.d.ts +1 -0
  394. package/dist/Transfer/ListItem.js +38 -51
  395. package/dist/Transfer/Transfer.js +323 -276
  396. package/dist/Transfer/index.js +1 -39
  397. package/dist/Transfer/interface.js +1 -17
  398. package/dist/Transfer/operation.js +35 -48
  399. package/dist/Transfer/search.js +30 -62
  400. package/dist/Transfer/typings/index.d.ts +27 -0
  401. package/dist/Transfer/typings/index.js +1 -17
  402. package/dist/Transfer/typings/list.d.ts +25 -0
  403. package/dist/Transfer/typings/list.js +1 -17
  404. package/dist/Transfer/typings/listBody.d.ts +1 -0
  405. package/dist/Transfer/typings/listBody.js +2 -30
  406. package/dist/Transition/Transition.d.ts +16 -3
  407. package/dist/Transition/Transition.js +271 -232
  408. package/dist/Transition/TransitionGroup.d.ts +59 -0
  409. package/dist/Transition/TransitionGroup.js +136 -88
  410. package/dist/Transition/TransitionGroupContext.js +2 -26
  411. package/dist/Transition/childMapping.d.ts +23 -0
  412. package/dist/Transition/childMapping.js +84 -71
  413. package/dist/Transition/index.js +2 -42
  414. package/dist/Transition/util.d.ts +0 -1
  415. package/dist/Transition/util.js +6 -47
  416. package/dist/Tree/DirectoryTree.d.ts +6 -13
  417. package/dist/Tree/DirectoryTree.js +149 -170
  418. package/dist/Tree/DropIndicator.d.ts +4 -2
  419. package/dist/Tree/DropIndicator.js +16 -41
  420. package/dist/Tree/Indent.d.ts +2 -2
  421. package/dist/Tree/Indent.js +23 -54
  422. package/dist/Tree/MotionTreeNode.d.ts +4 -5
  423. package/dist/Tree/MotionTreeNode.js +120 -104
  424. package/dist/Tree/NodeList.d.ts +18 -11
  425. package/dist/Tree/NodeList.js +232 -216
  426. package/dist/Tree/RCTree.d.ts +92 -75
  427. package/dist/Tree/RCTree.js +980 -702
  428. package/dist/Tree/Tree.d.ts +18 -3
  429. package/dist/Tree/Tree.js +65 -80
  430. package/dist/Tree/TreeNode.d.ts +5 -83
  431. package/dist/Tree/TreeNode.js +367 -473
  432. package/dist/Tree/contextTypes.d.ts +40 -30
  433. package/dist/Tree/contextTypes.js +8 -29
  434. package/dist/Tree/index.d.ts +2 -2
  435. package/dist/Tree/index.js +4 -48
  436. package/dist/Tree/typings.d.ts +63 -19
  437. package/dist/Tree/typings.js +1 -29
  438. package/dist/Tree/typings.tsx--bak +245 -0
  439. package/dist/Tree/useUnmount.d.ts +5 -0
  440. package/dist/Tree/useUnmount.js +34 -0
  441. package/dist/Tree/util.d.ts +31 -18
  442. package/dist/Tree/util.js +160 -169
  443. package/dist/Tree/utils/conductUtil.d.ts +8 -2
  444. package/dist/Tree/utils/conductUtil.js +113 -93
  445. package/dist/Tree/utils/dictUtil.d.ts +8 -3
  446. package/dist/Tree/utils/dictUtil.js +44 -55
  447. package/dist/Tree/utils/diffUtil.d.ts +4 -3
  448. package/dist/Tree/utils/diffUtil.js +26 -43
  449. package/dist/Tree/utils/dropIndicator.js +23 -51
  450. package/dist/Tree/utils/iconUtil.js +44 -51
  451. package/dist/Tree/utils/keyUtil.d.ts +2 -0
  452. package/dist/Tree/utils/keyUtil.js +3 -0
  453. package/dist/Tree/utils/motion.js +34 -71
  454. package/dist/Tree/utils/pickAttrs.d.ts +5 -0
  455. package/dist/Tree/utils/pickAttrs.js +30 -58
  456. package/dist/Tree/utils/treeUtil.d.ts +40 -18
  457. package/dist/Tree/utils/treeUtil.js +268 -187
  458. package/dist/TreeSelect/TreeSelect.js +527 -464
  459. package/dist/TreeSelect/Utils.d.ts +2 -1
  460. package/dist/TreeSelect/Utils.js +15 -36
  461. package/dist/TreeSelect/index.js +1 -39
  462. package/dist/TreeSelect/typings.d.ts +20 -1
  463. package/dist/TreeSelect/typings.js +1 -17
  464. package/dist/Upload/Upload.js +106 -108
  465. package/dist/Upload/UploadContent.js +227 -182
  466. package/dist/Upload/UploadContext.js +5 -33
  467. package/dist/Upload/UploadDrag.js +77 -97
  468. package/dist/Upload/UploadList.js +104 -72
  469. package/dist/Upload/ajax.js +45 -71
  470. package/dist/Upload/index.js +1 -39
  471. package/dist/Upload/typings.d.ts +34 -0
  472. package/dist/Upload/typings.js +34 -36
  473. package/dist/Upload/use-handlers.d.ts +1 -0
  474. package/dist/Upload/use-handlers.js +182 -126
  475. package/dist/Util/Math.d.ts +34 -0
  476. package/dist/Util/Math.js +81 -78
  477. package/dist/Util/PopupManager.js +5 -27
  478. package/dist/Util/base.d.ts +22 -0
  479. package/dist/Util/base.js +109 -162
  480. package/dist/Util/genFileId.js +3 -29
  481. package/dist/Util/index.js +6 -51
  482. package/dist/Util/resize-event.js +31 -54
  483. package/dist/Util/shallowEqual.d.ts +11 -0
  484. package/dist/Util/shallowEqual.js +30 -28
  485. package/dist/Util/treeUtils.d.ts +8 -0
  486. package/dist/Util/treeUtils.js +68 -64
  487. package/dist/config/Constants.js +17 -47
  488. package/dist/display.css +1 -0
  489. package/dist/fonts/fa-brands-400.ttf +0 -0
  490. package/dist/fonts/fa-brands-400.woff2 +0 -0
  491. package/dist/fonts/fa-duotone-900.ttf +0 -0
  492. package/dist/fonts/fa-duotone-900.woff2 +0 -0
  493. package/dist/fonts/fa-light-300.ttf +0 -0
  494. package/dist/fonts/fa-light-300.woff2 +0 -0
  495. package/dist/fonts/fa-regular-400.ttf +0 -0
  496. package/dist/fonts/fa-regular-400.woff2 +0 -0
  497. package/dist/fonts/fa-solid-900.ttf +0 -0
  498. package/dist/fonts/fa-solid-900.woff2 +0 -0
  499. package/dist/fonts/fa-thin-100.ttf +0 -0
  500. package/dist/fonts/fa-thin-100.woff2 +0 -0
  501. package/dist/fonts/fa-v4compatibility.ttf +0 -0
  502. package/dist/fonts/fa-v4compatibility.woff2 +0 -0
  503. package/dist/hooks/animationPropsUtils.d.ts +12 -0
  504. package/dist/hooks/animationPropsUtils.js +25 -49
  505. package/dist/hooks/htmlPropsUtils.d.ts +8 -0
  506. package/dist/hooks/htmlPropsUtils.js +54 -121
  507. package/dist/hooks/index.js +14 -73
  508. package/dist/hooks/popperPropsUtils.d.ts +12 -0
  509. package/dist/hooks/popperPropsUtils.js +25 -67
  510. package/dist/hooks/prefix.d.ts +1 -1
  511. package/dist/hooks/prefix.js +22 -55
  512. package/dist/hooks/treePropsUtils.d.ts +12 -0
  513. package/dist/hooks/treePropsUtils.js +24 -103
  514. package/dist/hooks/useChildrenInstance.d.ts +11 -0
  515. package/dist/hooks/useChildrenInstance.js +51 -60
  516. package/dist/hooks/useClassNames.d.ts +81 -0
  517. package/dist/hooks/useClassNames.js +284 -192
  518. package/dist/hooks/useClickOutside.js +37 -62
  519. package/dist/hooks/useCommonProps.js +17 -53
  520. package/dist/hooks/useComponentWillMount.js +4 -28
  521. package/dist/hooks/useControlled.d.ts +8 -0
  522. package/dist/hooks/useControlled.js +31 -37
  523. package/dist/hooks/useForceUpdate.d.ts +1 -0
  524. package/dist/hooks/useForceUpdate.js +16 -34
  525. package/dist/hooks/useUpdateEffect.js +6 -29
  526. package/dist/index.css +1 -58071
  527. package/dist/index.d.ts +8 -7
  528. package/dist/index.js +69 -234
  529. package/dist/theme-chalk/avatar/index.scss +50 -0
  530. package/dist/theme-chalk/build.scss +2 -0
  531. package/dist/theme-chalk/calendar/month-table.scss +1 -1
  532. package/dist/theme-chalk/carousel/index.scss +237 -0
  533. package/dist/theme-chalk/checkbox/index.scss +2 -2
  534. package/dist/theme-chalk/common/_var.scss +1 -0
  535. package/dist/theme-chalk/common/index.js +1 -2
  536. package/dist/theme-chalk/common/index.scss +2 -2
  537. package/dist/theme-chalk/date-picker/index.scss +1 -1
  538. package/dist/theme-chalk/dev.scss +2 -0
  539. package/dist/theme-chalk/display.scss +46 -0
  540. package/dist/theme-chalk/doc.scss +2 -0
  541. package/dist/theme-chalk/fonts/fa-brands-400.ttf +0 -0
  542. package/dist/theme-chalk/fonts/fa-brands-400.woff2 +0 -0
  543. package/dist/theme-chalk/fonts/fa-duotone-900.ttf +0 -0
  544. package/dist/theme-chalk/fonts/fa-duotone-900.woff2 +0 -0
  545. package/dist/theme-chalk/fonts/fa-light-300.ttf +0 -0
  546. package/dist/theme-chalk/fonts/fa-light-300.woff2 +0 -0
  547. package/dist/theme-chalk/fonts/fa-regular-400.ttf +0 -0
  548. package/dist/theme-chalk/fonts/fa-regular-400.woff2 +0 -0
  549. package/dist/theme-chalk/fonts/fa-solid-900.ttf +0 -0
  550. package/dist/theme-chalk/fonts/fa-solid-900.woff2 +0 -0
  551. package/dist/theme-chalk/fonts/fa-thin-100.ttf +0 -0
  552. package/dist/theme-chalk/fonts/fa-thin-100.woff2 +0 -0
  553. package/dist/theme-chalk/fonts/fa-v4compatibility.ttf +0 -0
  554. package/dist/theme-chalk/fonts/fa-v4compatibility.woff2 +0 -0
  555. package/dist/theme-chalk/form/index.scss +21 -2
  556. package/dist/theme-chalk/icon/fonts.scss +9 -0
  557. package/dist/theme-chalk/icon/index.scss +0 -9
  558. package/dist/theme-chalk/icon/scss/_shims.scss +318 -318
  559. package/dist/theme-chalk/icon/scss/_variables.scss +1 -3
  560. package/dist/theme-chalk/icon/scss/brands.scss +0 -5
  561. package/dist/theme-chalk/icon/scss/duotone.scss +0 -5
  562. package/dist/theme-chalk/icon/scss/fontawesome.scss +0 -8
  563. package/dist/theme-chalk/icon/scss/light.scss +2 -7
  564. package/dist/theme-chalk/icon/scss/regular.scss +2 -7
  565. package/dist/theme-chalk/icon/scss/solid.scss +2 -7
  566. package/dist/theme-chalk/icon/scss/thin.scss +2 -7
  567. package/dist/theme-chalk/icon/scss/v4-shims.scss +0 -8
  568. package/dist/theme-chalk/index.scss +3 -0
  569. package/dist/theme-chalk/input/input.scss +5 -3
  570. package/dist/theme-chalk/link/index.scss +0 -85
  571. package/dist/theme-chalk/loading/index.scss +5 -7
  572. package/dist/theme-chalk/message/index.scss +5 -5
  573. package/dist/theme-chalk/notification/index.scss +5 -5
  574. package/dist/theme-chalk/pagination/index.scss +1 -1
  575. package/dist/theme-chalk/tabs/index.scss +1 -1
  576. package/dist/types/common.d.ts +24 -0
  577. package/dist/types/common.js +1 -17
  578. package/dist/types/type.d.ts +5 -0
  579. package/dist/types/type.js +16 -28
  580. package/package.json +8 -23
  581. package/theme-chalk/avatar/index.scss +50 -0
  582. package/theme-chalk/badge/index.scss +63 -0
  583. package/theme-chalk/breadcrumb/index.scss +65 -0
  584. package/theme-chalk/build.scss +2 -0
  585. package/{dist/theme-chalk/bak/mixins/_button.scss → theme-chalk/button/_mixins.scss} +151 -58
  586. package/theme-chalk/button/button-group.scss +83 -0
  587. package/theme-chalk/button/button.scss +382 -0
  588. package/theme-chalk/button/index.scss +2 -0
  589. package/theme-chalk/calendar/date-picker.scss +112 -0
  590. package/theme-chalk/calendar/date-range-picker.scss +139 -0
  591. package/theme-chalk/calendar/date-table.scss +156 -0
  592. package/theme-chalk/calendar/index.scss +6 -0
  593. package/theme-chalk/calendar/month-table.scss +92 -0
  594. package/theme-chalk/calendar/picker-panel.scss +136 -0
  595. package/theme-chalk/calendar/year-table.scss +107 -0
  596. package/theme-chalk/card/index.scss +44 -0
  597. package/theme-chalk/carousel/index.scss +237 -0
  598. package/theme-chalk/cascader/cascader-panel.scss +184 -0
  599. package/theme-chalk/cascader/cascader.scss +239 -0
  600. package/theme-chalk/cascader/index.scss +2 -0
  601. package/theme-chalk/checkbox/index.scss +255 -0
  602. package/theme-chalk/checkbox-button/index.scss +117 -0
  603. package/theme-chalk/checkbox-group/index.scss +33 -0
  604. package/{dist/theme-chalk/bak/mixins/_col.scss → theme-chalk/col/_mixins.scss} +27 -3
  605. package/theme-chalk/col/index.scss +50 -0
  606. package/theme-chalk/collapse/index.scss +84 -0
  607. package/theme-chalk/color-picker/index.scss +340 -0
  608. package/{dist/theme-chalk/bak/mixins/config.scss → theme-chalk/common/_var.scss} +1 -0
  609. package/theme-chalk/common/index.scss +222 -0
  610. package/theme-chalk/common/index.ts +1 -0
  611. package/theme-chalk/date-picker/index.scss +253 -0
  612. package/theme-chalk/date-time-picker/index.scss +3 -0
  613. package/theme-chalk/date-time-picker/time-picker.scss +83 -0
  614. package/theme-chalk/date-time-picker/time-range-picker.scss +32 -0
  615. package/theme-chalk/descriptions/descriptions-item.scss +66 -0
  616. package/theme-chalk/descriptions/descriptions.scss +160 -0
  617. package/theme-chalk/descriptions/index.scss +2 -0
  618. package/theme-chalk/dev.scss +2 -0
  619. package/theme-chalk/dialog/index.scss +190 -0
  620. package/theme-chalk/display.scss +46 -0
  621. package/theme-chalk/divider/index.scss +51 -0
  622. package/theme-chalk/doc.scss +2 -0
  623. package/theme-chalk/drawer/index.scss +250 -0
  624. package/theme-chalk/dropdown/index.scss +147 -0
  625. package/theme-chalk/empty/index.scss +69 -0
  626. package/theme-chalk/fonts/fa-brands-400.ttf +0 -0
  627. package/theme-chalk/fonts/fa-brands-400.woff2 +0 -0
  628. package/theme-chalk/fonts/fa-duotone-900.ttf +0 -0
  629. package/theme-chalk/fonts/fa-duotone-900.woff2 +0 -0
  630. package/theme-chalk/fonts/fa-light-300.ttf +0 -0
  631. package/theme-chalk/fonts/fa-light-300.woff2 +0 -0
  632. package/theme-chalk/fonts/fa-regular-400.ttf +0 -0
  633. package/theme-chalk/fonts/fa-regular-400.woff2 +0 -0
  634. package/theme-chalk/fonts/fa-solid-900.ttf +0 -0
  635. package/theme-chalk/fonts/fa-solid-900.woff2 +0 -0
  636. package/theme-chalk/fonts/fa-thin-100.ttf +0 -0
  637. package/theme-chalk/fonts/fa-thin-100.woff2 +0 -0
  638. package/theme-chalk/fonts/fa-v4compatibility.ttf +0 -0
  639. package/theme-chalk/fonts/fa-v4compatibility.woff2 +0 -0
  640. package/theme-chalk/form/index.scss +378 -0
  641. package/theme-chalk/icon/fonts.scss +9 -0
  642. package/theme-chalk/icon/index.scss +44 -0
  643. package/theme-chalk/icon/scss/_animated.scss +205 -0
  644. package/theme-chalk/icon/scss/_bordered-pulled.scss +20 -0
  645. package/theme-chalk/icon/scss/_core.scss +33 -0
  646. package/theme-chalk/icon/scss/_duotone-icons.scss +12 -0
  647. package/theme-chalk/icon/scss/_fixed-width.scss +7 -0
  648. package/theme-chalk/icon/scss/_functions.scss +57 -0
  649. package/theme-chalk/icon/scss/_icons.scss +11 -0
  650. package/theme-chalk/icon/scss/_list.scss +20 -0
  651. package/theme-chalk/icon/scss/_mixins.scss +102 -0
  652. package/theme-chalk/icon/scss/_rotated-flipped.scss +31 -0
  653. package/theme-chalk/icon/scss/_screen-reader.scss +14 -0
  654. package/theme-chalk/icon/scss/_shims.scss +2606 -0
  655. package/theme-chalk/icon/scss/_sizing.scss +16 -0
  656. package/theme-chalk/icon/scss/_stacked.scss +32 -0
  657. package/theme-chalk/icon/scss/_variables.scss +9189 -0
  658. package/theme-chalk/icon/scss/brands.scss +27 -0
  659. package/theme-chalk/icon/scss/duotone.scss +72 -0
  660. package/theme-chalk/icon/scss/fontawesome.scss +13 -0
  661. package/theme-chalk/icon/scss/index.scss +15 -0
  662. package/theme-chalk/icon/scss/light.scss +21 -0
  663. package/theme-chalk/icon/scss/regular.scss +21 -0
  664. package/theme-chalk/icon/scss/solid.scss +21 -0
  665. package/theme-chalk/icon/scss/thin.scss +21 -0
  666. package/theme-chalk/icon/scss/v4-shims.scss +3 -0
  667. package/theme-chalk/index.scss +67 -0
  668. package/theme-chalk/input/_mixins.scss +16 -0
  669. package/theme-chalk/input/index.scss +3 -0
  670. package/theme-chalk/input/input-range.scss +208 -0
  671. package/theme-chalk/input/input.scss +577 -0
  672. package/theme-chalk/input-number/index.scss +172 -0
  673. package/theme-chalk/link/index.scss +99 -0
  674. package/theme-chalk/loading/index.scss +94 -0
  675. package/theme-chalk/message/index.scss +169 -0
  676. package/theme-chalk/message-box/index.scss +184 -0
  677. package/theme-chalk/notification/index.scss +155 -0
  678. package/theme-chalk/pagination/index.scss +515 -0
  679. package/theme-chalk/placeholder/index.scss +135 -0
  680. package/theme-chalk/popconfirm/index.scss +35 -0
  681. package/theme-chalk/popover/index.scss +54 -0
  682. package/theme-chalk/popper/index.scss +86 -0
  683. package/theme-chalk/progress/index.scss +155 -0
  684. package/theme-chalk/radio/index.scss +2 -0
  685. package/theme-chalk/radio/radio-button.scss +128 -0
  686. package/theme-chalk/radio/radio.scss +171 -0
  687. package/theme-chalk/radio-group/index.scss +31 -0
  688. package/theme-chalk/row/index.scss +30 -0
  689. package/theme-chalk/scrollbar/index.scss +103 -0
  690. package/theme-chalk/select/index.scss +244 -0
  691. package/theme-chalk/select/option-group.scss +54 -0
  692. package/theme-chalk/select/option.scss +63 -0
  693. package/theme-chalk/select/select-dropdown.scss +57 -0
  694. package/theme-chalk/switch/index.scss +273 -0
  695. package/theme-chalk/table/index.scss +714 -0
  696. package/theme-chalk/tabs/index.scss +620 -0
  697. package/theme-chalk/tag/index.scss +360 -0
  698. package/theme-chalk/time-line/_timeline-item.scss +90 -0
  699. package/theme-chalk/time-line/_timeline.scss +50 -0
  700. package/theme-chalk/time-line/index.scss +2 -0
  701. package/theme-chalk/time-picker/index.scss +109 -0
  702. package/theme-chalk/tooltip/index.scss +13 -0
  703. package/theme-chalk/transfer/index.scss +247 -0
  704. package/theme-chalk/transition/index.scss +756 -0
  705. package/theme-chalk/tree/_directory.scss +73 -0
  706. package/theme-chalk/tree/_tree.scss +401 -0
  707. package/theme-chalk/tree/index.scss +2 -0
  708. package/theme-chalk/tree-select/index.scss +25 -0
  709. package/theme-chalk/upload/index.scss +631 -0
  710. package/dist/Tree/utils/KeyCode.d.ts +0 -110
  711. package/dist/Tree/utils/KeyCode.js +0 -550
  712. package/dist/VirtualList/Filler.d.ts +0 -11
  713. package/dist/VirtualList/Filler.js +0 -78
  714. package/dist/VirtualList/Item.d.ts +0 -7
  715. package/dist/VirtualList/Item.js +0 -37
  716. package/dist/VirtualList/ScrollBar.d.ts +0 -43
  717. package/dist/VirtualList/ScrollBar.js +0 -216
  718. package/dist/VirtualList/VirtualList.d.ts +0 -33
  719. package/dist/VirtualList/VirtualList.js +0 -280
  720. package/dist/VirtualList/hooks/useChildren.d.ts +0 -3
  721. package/dist/VirtualList/hooks/useChildren.js +0 -46
  722. package/dist/VirtualList/hooks/useDiffItem.d.ts +0 -2
  723. package/dist/VirtualList/hooks/useDiffItem.js +0 -39
  724. package/dist/VirtualList/hooks/useFrameWheel.d.ts +0 -6
  725. package/dist/VirtualList/hooks/useFrameWheel.js +0 -72
  726. package/dist/VirtualList/hooks/useHeights.d.ts +0 -3
  727. package/dist/VirtualList/hooks/useHeights.js +0 -83
  728. package/dist/VirtualList/hooks/useLayoutEffect.d.ts +0 -3
  729. package/dist/VirtualList/hooks/useLayoutEffect.js +0 -30
  730. package/dist/VirtualList/hooks/useMobileTouchMove.d.ts +0 -2
  731. package/dist/VirtualList/hooks/useMobileTouchMove.js +0 -92
  732. package/dist/VirtualList/hooks/useOriginScroll.d.ts +0 -2
  733. package/dist/VirtualList/hooks/useOriginScroll.js +0 -56
  734. package/dist/VirtualList/hooks/useScrollTo.d.ts +0 -5
  735. package/dist/VirtualList/hooks/useScrollTo.js +0 -111
  736. package/dist/VirtualList/index.d.ts +0 -2
  737. package/dist/VirtualList/index.js +0 -39
  738. package/dist/VirtualList/interface.d.ts +0 -8
  739. package/dist/VirtualList/interface.js +0 -17
  740. package/dist/VirtualList/mock.d.ts +0 -6
  741. package/dist/VirtualList/mock.js +0 -29
  742. package/dist/VirtualList/utils/CacheMap.d.ts +0 -7
  743. package/dist/VirtualList/utils/CacheMap.js +0 -36
  744. package/dist/VirtualList/utils/algorithmUtil.d.ts +0 -6
  745. package/dist/VirtualList/utils/algorithmUtil.js +0 -81
  746. package/dist/VirtualList/utils/findDOMNode.d.ts +0 -2
  747. package/dist/VirtualList/utils/findDOMNode.js +0 -30
  748. package/dist/VirtualList/utils/isFirefox.d.ts +0 -2
  749. package/dist/VirtualList/utils/isFirefox.js +0 -26
  750. package/dist/VirtualList/utils/raf.d.ts +0 -5
  751. package/dist/VirtualList/utils/raf.js +0 -57
  752. package/dist/theme-chalk/bak/common/popup.scss +0 -47
  753. package/dist/theme-chalk/bak/common/transition.scss +0 -118
  754. package/dist/theme-chalk/bak/common/var.scss +0 -1476
  755. package/dist/theme-chalk/bak/mixins/_var.scss +0 -55
  756. package/dist/theme-chalk/bak/mixins/function.scss +0 -85
  757. package/dist/theme-chalk/bak/mixins/mixins.scss +0 -215
  758. package/dist/theme-chalk/bak/mixins/utils.scss +0 -39
@@ -1,56 +1,57 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all)
9
- __defProp(target, name, { get: all[name], enumerable: true });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from))
14
- if (!__hasOwnProp.call(to, key) && key !== except)
15
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
- }
17
- return to;
18
- };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
-
29
- // src/Tree/RCTree.tsx
30
- var RCTree_exports = {};
31
- __export(RCTree_exports, {
32
- default: () => RCTree_default
33
- });
34
- module.exports = __toCommonJS(RCTree_exports);
35
- var import_classnames = __toESM(require("classnames"));
36
- var import_react = __toESM(require("react"));
37
- var import_KeyCode = __toESM(require("./utils/KeyCode"));
38
- var import_pickAttrs = __toESM(require("./utils/pickAttrs"));
39
- var import_Util = require("../Util");
40
- var import_DropIndicator = __toESM(require("./DropIndicator"));
41
- var import_NodeList = __toESM(require("./NodeList"));
42
- var import_TreeNode = __toESM(require("./TreeNode"));
43
- var import_contextTypes = require("./contextTypes");
44
- var import_util = require("./util");
45
- var import_conductUtil = require("./utils/conductUtil");
46
- var import_treeUtil = require("./utils/treeUtil");
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
9
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12
+ 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, _toPropertyKey(descriptor.key), descriptor); } }
13
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
14
+ 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 } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
15
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
16
+ 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); }; }
17
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
18
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
19
+ 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; } }
20
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
21
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
22
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
23
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
24
+ // TODO: https://www.w3.org/TR/2017/NOTE-wai-aria-practices-1.1-20171214/examples/treeview/treeview-2/treeview-2a.html
25
+ // Fully accessibility support
26
+
27
+ import classNames from 'classnames';
28
+ import KeyCode from 'rc-util/lib/KeyCode';
29
+ import pickAttrs from 'rc-util/lib/pickAttrs';
30
+ import warning from 'rc-util/lib/warning';
31
+ import * as React from 'react';
32
+ import DropIndicator from "./DropIndicator";
33
+ import NodeList, { MOTION_KEY, MotionEntity } from "./NodeList";
34
+ import TreeNode from "./TreeNode";
35
+ import { TreeContext } from "./contextTypes";
36
+ import { arrAdd, arrDel, calcDropPosition, calcSelectedKeys, conductExpandParent, getDragChildrenKeys, parseCheckedKeys, posToArr } from "./util";
37
+ import { conductCheck } from "./utils/conductUtil";
38
+ import getEntity from "./utils/keyUtil";
39
+ import { convertDataToEntities, convertNodePropsToEventData, convertTreeToData, fillFieldNames, flattenTreeData, getTreeNodeProps, warningWithoutKey } from "./utils/treeUtil";
47
40
  var MAX_RETRY_TIMES = 10;
48
- var RCTree = class extends import_react.Component {
49
- constructor() {
50
- super(...arguments);
51
- this.destroyed = false;
52
- this.loadingRetryTimes = {};
53
- this.state = {
41
+ var Tree = /*#__PURE__*/function (_React$Component) {
42
+ _inherits(Tree, _React$Component);
43
+ var _super = _createSuper(Tree);
44
+ function Tree() {
45
+ var _this;
46
+ _classCallCheck(this, Tree);
47
+ for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
48
+ _args[_key] = arguments[_key];
49
+ }
50
+ _this = _super.call.apply(_super, [this].concat(_args));
51
+ _defineProperty(_assertThisInitialized(_this), "destroyed", false);
52
+ _defineProperty(_assertThisInitialized(_this), "delayedDragEnterLogic", void 0);
53
+ _defineProperty(_assertThisInitialized(_this), "loadingRetryTimes", {});
54
+ _defineProperty(_assertThisInitialized(_this), "state", {
54
55
  keyEntities: {},
55
56
  indent: null,
56
57
  selectedKeys: [],
@@ -85,217 +86,265 @@ var RCTree = class extends import_react.Component {
85
86
  activeKey: null,
86
87
  listChanging: false,
87
88
  prevProps: null,
88
- fieldNames: (0, import_treeUtil.fillFieldNames)()
89
- };
90
- this.dragStartMousePosition = null;
91
- this.currentMouseOverDroppableNodeKey = null;
92
- this.listRef = (0, import_react.createRef)();
93
- this.onNodeDragStart = (event, node) => {
94
- const { expandedKeys, keyEntities } = this.state;
95
- const { onDragStart } = this.props;
96
- const { eventKey } = node.props;
97
- this.dragNode = node;
98
- this.dragStartMousePosition = {
89
+ fieldNames: fillFieldNames()
90
+ });
91
+ _defineProperty(_assertThisInitialized(_this), "dragStartMousePosition", null);
92
+ _defineProperty(_assertThisInitialized(_this), "dragNodeProps", null);
93
+ _defineProperty(_assertThisInitialized(_this), "currentMouseOverDroppableNodeKey", null);
94
+ _defineProperty(_assertThisInitialized(_this), "listRef", /*#__PURE__*/React.createRef());
95
+ _defineProperty(_assertThisInitialized(_this), "onNodeDragStart", function (event, nodeProps) {
96
+ var _this$state = _this.state,
97
+ expandedKeys = _this$state.expandedKeys,
98
+ keyEntities = _this$state.keyEntities;
99
+ var onDragStart = _this.props.onDragStart;
100
+ var eventKey = nodeProps.eventKey;
101
+ _this.dragNodeProps = nodeProps;
102
+ _this.dragStartMousePosition = {
99
103
  x: event.clientX,
100
104
  y: event.clientY
101
105
  };
102
- const newExpandedKeys = (0, import_util.arrDel)(expandedKeys, eventKey);
103
- this.setState({
106
+ var newExpandedKeys = arrDel(expandedKeys, eventKey);
107
+ _this.setState({
104
108
  draggingNodeKey: eventKey,
105
- dragChildrenKeys: (0, import_util.getDragChildrenKeys)(eventKey, keyEntities),
106
- indent: this.listRef.current.getIndentWidth()
109
+ dragChildrenKeys: getDragChildrenKeys(eventKey, keyEntities),
110
+ indent: _this.listRef.current.getIndentWidth()
107
111
  });
108
- this.setExpandedKeys(newExpandedKeys);
109
- window.addEventListener("dragend", this.onWindowDragEnd);
110
- onDragStart == null ? void 0 : onDragStart({ event, node: (0, import_treeUtil.convertNodePropsToEventData)(node.props) });
111
- };
112
- /**
113
- * [Legacy] Select handler is smaller than node,
114
- * so that this will trigger when drag enter node or select handler.
115
- * This is a little tricky if customize css without padding.
116
- * Better for use mouse move event to refresh drag state.
117
- * But let's just keep it to avoid event trigger logic change.
112
+ _this.setExpandedKeys(newExpandedKeys);
113
+ window.addEventListener('dragend', _this.onWindowDragEnd);
114
+ onDragStart === null || onDragStart === void 0 || onDragStart({
115
+ event: event,
116
+ node: convertNodePropsToEventData(nodeProps)
117
+ });
118
+ });
119
+ /**
120
+ * [Legacy] Select handler is smaller than node,
121
+ * so that this will trigger when drag enter node or select handler.
122
+ * This is a little tricky if customize css without padding.
123
+ * Better for use mouse move event to refresh drag state.
124
+ * But let's just keep it to avoid event trigger logic change.
118
125
  */
119
- this.onNodeDragEnter = (event, node) => {
120
- const { expandedKeys, keyEntities, dragChildrenKeys, flattenNodes, indent } = this.state;
121
- const { onDragEnter, onExpand, allowDrop, direction } = this.props;
122
- const { pos, eventKey } = node.props;
123
- const { dragNode } = this;
124
- if (this.currentMouseOverDroppableNodeKey !== eventKey) {
125
- this.currentMouseOverDroppableNodeKey = eventKey;
126
- }
127
- if (!dragNode) {
128
- this.resetDragState();
126
+ _defineProperty(_assertThisInitialized(_this), "onNodeDragEnter", function (event, nodeProps) {
127
+ var _this$state2 = _this.state,
128
+ expandedKeys = _this$state2.expandedKeys,
129
+ keyEntities = _this$state2.keyEntities,
130
+ dragChildrenKeys = _this$state2.dragChildrenKeys,
131
+ flattenNodes = _this$state2.flattenNodes,
132
+ indent = _this$state2.indent;
133
+ var _this$props = _this.props,
134
+ onDragEnter = _this$props.onDragEnter,
135
+ onExpand = _this$props.onExpand,
136
+ allowDrop = _this$props.allowDrop,
137
+ direction = _this$props.direction;
138
+ var pos = nodeProps.pos,
139
+ eventKey = nodeProps.eventKey;
140
+
141
+ // record the key of node which is latest entered, used in dragleave event.
142
+ if (_this.currentMouseOverDroppableNodeKey !== eventKey) {
143
+ _this.currentMouseOverDroppableNodeKey = eventKey;
144
+ }
145
+ if (!_this.dragNodeProps) {
146
+ _this.resetDragState();
129
147
  return;
130
148
  }
131
- const { dropPosition, dropLevelOffset, dropTargetKey, dropContainerKey, dropTargetPos, dropAllowed, dragOverNodeKey } = (0, import_util.calcDropPosition)(
132
- event,
133
- dragNode,
134
- node,
135
- indent,
136
- this.dragStartMousePosition,
137
- allowDrop,
138
- flattenNodes,
139
- keyEntities,
140
- expandedKeys,
141
- direction
142
- );
149
+ var _calcDropPosition = calcDropPosition(event, _this.dragNodeProps, nodeProps, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),
150
+ dropPosition = _calcDropPosition.dropPosition,
151
+ dropLevelOffset = _calcDropPosition.dropLevelOffset,
152
+ dropTargetKey = _calcDropPosition.dropTargetKey,
153
+ dropContainerKey = _calcDropPosition.dropContainerKey,
154
+ dropTargetPos = _calcDropPosition.dropTargetPos,
155
+ dropAllowed = _calcDropPosition.dropAllowed,
156
+ dragOverNodeKey = _calcDropPosition.dragOverNodeKey;
143
157
  if (
144
- // don't allow drop inside its children
145
- dragChildrenKeys.indexOf(dropTargetKey) !== -1 || // don't allow drop when drop is not allowed caculated by calcDropPosition
146
- !dropAllowed
147
- ) {
148
- this.resetDragState();
158
+ // don't allow drop inside its children
159
+ dragChildrenKeys.includes(dropTargetKey) ||
160
+ // don't allow drop when drop is not allowed caculated by calcDropPosition
161
+ !dropAllowed) {
162
+ _this.resetDragState();
149
163
  return;
150
164
  }
151
- if (!this.delayedDragEnterLogic) {
152
- this.delayedDragEnterLogic = {};
165
+
166
+ // Side effect for delay drag
167
+ if (!_this.delayedDragEnterLogic) {
168
+ _this.delayedDragEnterLogic = {};
153
169
  }
154
- Object.keys(this.delayedDragEnterLogic).forEach((key) => {
155
- clearTimeout(this.delayedDragEnterLogic[key]);
170
+ Object.keys(_this.delayedDragEnterLogic).forEach(function (key) {
171
+ clearTimeout(_this.delayedDragEnterLogic[key]);
156
172
  });
157
- if (dragNode.props.eventKey !== node.props.eventKey) {
173
+ if (_this.dragNodeProps.eventKey !== nodeProps.eventKey) {
174
+ // hoist expand logic here
175
+ // since if logic is on the bottom
176
+ // it will be blocked by abstract dragover node check
177
+ // => if you dragenter from top, you mouse will still be consider as in the top node
158
178
  event.persist();
159
- this.delayedDragEnterLogic[pos] = window.setTimeout(() => {
160
- if (this.state.draggingNodeKey === null) {
179
+ _this.delayedDragEnterLogic[pos] = window.setTimeout(function () {
180
+ if (_this.state.draggingNodeKey === null) {
161
181
  return;
162
182
  }
163
- let newExpandedKeys = [...expandedKeys];
164
- const entity = keyEntities[node.props.eventKey];
183
+ var newExpandedKeys = _toConsumableArray(expandedKeys);
184
+ var entity = getEntity(keyEntities, nodeProps.eventKey);
165
185
  if (entity && (entity.children || []).length) {
166
- newExpandedKeys = (0, import_util.arrAdd)(expandedKeys, node.props.eventKey);
186
+ newExpandedKeys = arrAdd(expandedKeys, nodeProps.eventKey);
167
187
  }
168
- if (!("expandedKeys" in this.props)) {
169
- this.setExpandedKeys(newExpandedKeys);
188
+ if (!Object.prototype.hasOwnProperty.call(_this.props, 'expandedKeys')) {
189
+ _this.setExpandedKeys(newExpandedKeys);
170
190
  }
171
- onExpand == null ? void 0 : onExpand(newExpandedKeys, {
172
- node: (0, import_treeUtil.convertNodePropsToEventData)(node.props),
191
+ onExpand === null || onExpand === void 0 || onExpand(newExpandedKeys, {
192
+ node: convertNodePropsToEventData(nodeProps),
173
193
  expanded: true,
174
194
  nativeEvent: event.nativeEvent
175
195
  });
176
196
  }, 800);
177
197
  }
178
- if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {
179
- this.resetDragState();
198
+
199
+ // Skip if drag node is self
200
+ if (_this.dragNodeProps.eventKey === dropTargetKey && dropLevelOffset === 0) {
201
+ _this.resetDragState();
180
202
  return;
181
203
  }
182
- this.setState({
183
- dragOverNodeKey,
184
- dropPosition,
185
- dropLevelOffset,
186
- dropTargetKey,
187
- dropContainerKey,
188
- dropTargetPos,
189
- dropAllowed
204
+
205
+ // Update drag over node and drag state
206
+ _this.setState({
207
+ dragOverNodeKey: dragOverNodeKey,
208
+ dropPosition: dropPosition,
209
+ dropLevelOffset: dropLevelOffset,
210
+ dropTargetKey: dropTargetKey,
211
+ dropContainerKey: dropContainerKey,
212
+ dropTargetPos: dropTargetPos,
213
+ dropAllowed: dropAllowed
190
214
  });
191
- onDragEnter == null ? void 0 : onDragEnter({
192
- event,
193
- node: (0, import_treeUtil.convertNodePropsToEventData)(node.props),
194
- expandedKeys
215
+ onDragEnter === null || onDragEnter === void 0 || onDragEnter({
216
+ event: event,
217
+ node: convertNodePropsToEventData(nodeProps),
218
+ expandedKeys: expandedKeys
195
219
  });
196
- };
197
- this.onNodeDragOver = (event, node) => {
198
- const { dragChildrenKeys, flattenNodes, keyEntities, expandedKeys, indent } = this.state;
199
- const { onDragOver, allowDrop, direction } = this.props;
200
- const { dragNode } = this;
201
- if (!dragNode) {
220
+ });
221
+ _defineProperty(_assertThisInitialized(_this), "onNodeDragOver", function (event, nodeProps) {
222
+ var _this$state3 = _this.state,
223
+ dragChildrenKeys = _this$state3.dragChildrenKeys,
224
+ flattenNodes = _this$state3.flattenNodes,
225
+ keyEntities = _this$state3.keyEntities,
226
+ expandedKeys = _this$state3.expandedKeys,
227
+ indent = _this$state3.indent;
228
+ var _this$props2 = _this.props,
229
+ onDragOver = _this$props2.onDragOver,
230
+ allowDrop = _this$props2.allowDrop,
231
+ direction = _this$props2.direction;
232
+ if (!_this.dragNodeProps) {
202
233
  return;
203
234
  }
204
- const { dropPosition, dropLevelOffset, dropTargetKey, dropContainerKey, dropAllowed, dropTargetPos, dragOverNodeKey } = (0, import_util.calcDropPosition)(
205
- event,
206
- dragNode,
207
- node,
208
- indent,
209
- this.dragStartMousePosition,
210
- allowDrop,
211
- flattenNodes,
212
- keyEntities,
213
- expandedKeys,
214
- direction
215
- );
216
- if (dragChildrenKeys.indexOf(dropTargetKey) !== -1 || !dropAllowed) {
235
+ var _calcDropPosition2 = calcDropPosition(event, _this.dragNodeProps, nodeProps, indent, _this.dragStartMousePosition, allowDrop, flattenNodes, keyEntities, expandedKeys, direction),
236
+ dropPosition = _calcDropPosition2.dropPosition,
237
+ dropLevelOffset = _calcDropPosition2.dropLevelOffset,
238
+ dropTargetKey = _calcDropPosition2.dropTargetKey,
239
+ dropContainerKey = _calcDropPosition2.dropContainerKey,
240
+ dropTargetPos = _calcDropPosition2.dropTargetPos,
241
+ dropAllowed = _calcDropPosition2.dropAllowed,
242
+ dragOverNodeKey = _calcDropPosition2.dragOverNodeKey;
243
+ if (dragChildrenKeys.includes(dropTargetKey) || !dropAllowed) {
244
+ // don't allow drop inside its children
245
+ // don't allow drop when drop is not allowed calculated by calcDropPosition
217
246
  return;
218
247
  }
219
- if (dragNode.props.eventKey === dropTargetKey && dropLevelOffset === 0) {
220
- if (!(this.state.dropPosition === null && this.state.dropLevelOffset === null && this.state.dropTargetKey === null && this.state.dropContainerKey === null && this.state.dropTargetPos === null && this.state.dropAllowed === false && this.state.dragOverNodeKey === null)) {
221
- this.resetDragState();
248
+
249
+ // Update drag position
250
+
251
+ if (_this.dragNodeProps.eventKey === dropTargetKey && dropLevelOffset === 0) {
252
+ if (!(_this.state.dropPosition === null && _this.state.dropLevelOffset === null && _this.state.dropTargetKey === null && _this.state.dropContainerKey === null && _this.state.dropTargetPos === null && _this.state.dropAllowed === false && _this.state.dragOverNodeKey === null)) {
253
+ _this.resetDragState();
222
254
  }
223
- } else if (!(dropPosition === this.state.dropPosition && dropLevelOffset === this.state.dropLevelOffset && dropTargetKey === this.state.dropTargetKey && dropContainerKey === this.state.dropContainerKey && dropTargetPos === this.state.dropTargetPos && dropAllowed === this.state.dropAllowed && dragOverNodeKey === this.state.dragOverNodeKey)) {
224
- this.setState({
225
- dropPosition,
226
- dropLevelOffset,
227
- dropTargetKey,
228
- dropContainerKey,
229
- dropTargetPos,
230
- dropAllowed,
231
- dragOverNodeKey
255
+ } else if (!(dropPosition === _this.state.dropPosition && dropLevelOffset === _this.state.dropLevelOffset && dropTargetKey === _this.state.dropTargetKey && dropContainerKey === _this.state.dropContainerKey && dropTargetPos === _this.state.dropTargetPos && dropAllowed === _this.state.dropAllowed && dragOverNodeKey === _this.state.dragOverNodeKey)) {
256
+ _this.setState({
257
+ dropPosition: dropPosition,
258
+ dropLevelOffset: dropLevelOffset,
259
+ dropTargetKey: dropTargetKey,
260
+ dropContainerKey: dropContainerKey,
261
+ dropTargetPos: dropTargetPos,
262
+ dropAllowed: dropAllowed,
263
+ dragOverNodeKey: dragOverNodeKey
232
264
  });
233
265
  }
234
- onDragOver == null ? void 0 : onDragOver({ event, node: (0, import_treeUtil.convertNodePropsToEventData)(node.props) });
235
- };
236
- this.onNodeDragLeave = (event, node) => {
237
- if (this.currentMouseOverDroppableNodeKey === node.props.eventKey && !event.currentTarget.contains(event.relatedTarget)) {
238
- this.resetDragState();
239
- this.currentMouseOverDroppableNodeKey = null;
266
+ onDragOver === null || onDragOver === void 0 || onDragOver({
267
+ event: event,
268
+ node: convertNodePropsToEventData(nodeProps)
269
+ });
270
+ });
271
+ _defineProperty(_assertThisInitialized(_this), "onNodeDragLeave", function (event, nodeProps) {
272
+ // if it is outside the droppable area
273
+ // currentMouseOverDroppableNodeKey will be updated in dragenter event when into another droppable receiver.
274
+ if (_this.currentMouseOverDroppableNodeKey === nodeProps.eventKey && !event.currentTarget.contains(event.relatedTarget)) {
275
+ _this.resetDragState();
276
+ _this.currentMouseOverDroppableNodeKey = null;
240
277
  }
241
- const { onDragLeave } = this.props;
242
- onDragLeave == null ? void 0 : onDragLeave({ event, node: (0, import_treeUtil.convertNodePropsToEventData)(node.props) });
243
- };
278
+ var onDragLeave = _this.props.onDragLeave;
279
+ onDragLeave === null || onDragLeave === void 0 || onDragLeave({
280
+ event: event,
281
+ node: convertNodePropsToEventData(nodeProps)
282
+ });
283
+ });
244
284
  // since stopPropagation() is called in treeNode
245
285
  // if onWindowDrag is called, whice means state is keeped, drag state should be cleared
246
- this.onWindowDragEnd = (event) => {
247
- this.onNodeDragEnd(event, null, true);
248
- window.removeEventListener("dragend", this.onWindowDragEnd);
249
- };
286
+ _defineProperty(_assertThisInitialized(_this), "onWindowDragEnd", function (event) {
287
+ _this.onNodeDragEnd(event, null, true);
288
+ window.removeEventListener('dragend', _this.onWindowDragEnd);
289
+ });
250
290
  // if onNodeDragEnd is called, onWindowDragEnd won't be called since stopPropagation() is called
251
- this.onNodeDragEnd = (event, node) => {
252
- const { onDragEnd } = this.props;
253
- this.setState({
291
+ _defineProperty(_assertThisInitialized(_this), "onNodeDragEnd", function (event, nodeProps) {
292
+ var onDragEnd = _this.props.onDragEnd;
293
+ _this.setState({
254
294
  dragOverNodeKey: null
255
295
  });
256
- this.cleanDragState();
257
- onDragEnd == null ? void 0 : onDragEnd({ event, node: (0, import_treeUtil.convertNodePropsToEventData)(node.props) });
258
- this.dragNode = null;
259
- };
260
- this.onNodeDrop = (event, node, outsideTree = false) => {
261
- var _a;
262
- const { dragChildrenKeys, dropPosition, dropTargetKey, dropTargetPos, dropAllowed } = this.state;
296
+ _this.cleanDragState();
297
+ onDragEnd === null || onDragEnd === void 0 || onDragEnd({
298
+ event: event,
299
+ node: convertNodePropsToEventData(nodeProps)
300
+ });
301
+ _this.dragNodeProps = null;
302
+ window.removeEventListener('dragend', _this.onWindowDragEnd);
303
+ });
304
+ _defineProperty(_assertThisInitialized(_this), "onNodeDrop", function (event, _) {
305
+ var _this$getActiveItem;
306
+ var outsideTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
307
+ var _this$state4 = _this.state,
308
+ dragChildrenKeys = _this$state4.dragChildrenKeys,
309
+ dropPosition = _this$state4.dropPosition,
310
+ dropTargetKey = _this$state4.dropTargetKey,
311
+ dropTargetPos = _this$state4.dropTargetPos,
312
+ dropAllowed = _this$state4.dropAllowed;
263
313
  if (!dropAllowed) {
264
314
  return;
265
315
  }
266
- const { onDrop } = this.props;
267
- this.setState({
316
+ var onDrop = _this.props.onDrop;
317
+ _this.setState({
268
318
  dragOverNodeKey: null
269
319
  });
270
- this.cleanDragState();
320
+ _this.cleanDragState();
271
321
  if (dropTargetKey === null) {
272
322
  return;
273
323
  }
274
- const abstractDropNodeProps = {
275
- ...(0, import_treeUtil.getTreeNodeProps)(dropTargetKey, this.getTreeNodeRequiredProps()),
276
- active: ((_a = this.getActiveItem()) == null ? void 0 : _a.data.key) === dropTargetKey,
277
- data: this.state.keyEntities[dropTargetKey].node
278
- };
279
- const dropToChild = dragChildrenKeys.indexOf(dropTargetKey) !== -1;
280
- (0, import_Util.warning)(!dropToChild, "Can not drop to dragNode’s children node. This is a bug of rc-tree. Please report an issue.");
281
- const posArr = (0, import_util.posToArr)(dropTargetPos);
282
- const dropResult = {
283
- event,
284
- node: (0, import_treeUtil.convertNodePropsToEventData)(abstractDropNodeProps),
285
- dragNode: this.dragNode ? (0, import_treeUtil.convertNodePropsToEventData)(this.dragNode.props) : null,
286
- dragNodesKeys: [this.dragNode.props.eventKey].concat(dragChildrenKeys),
324
+ var abstractDropNodeProps = _objectSpread(_objectSpread({}, getTreeNodeProps(dropTargetKey, _this.getTreeNodeRequiredProps())), {}, {
325
+ active: ((_this$getActiveItem = _this.getActiveItem()) === null || _this$getActiveItem === void 0 ? void 0 : _this$getActiveItem.key) === dropTargetKey,
326
+ data: getEntity(_this.state.keyEntities, dropTargetKey).node
327
+ });
328
+ var dropToChild = dragChildrenKeys.includes(dropTargetKey);
329
+ warning(!dropToChild, 'Can not drop to dragNodes children node. This is a bug of rc-tree. Please report an issue.');
330
+ var posArr = posToArr(dropTargetPos);
331
+ var dropResult = {
332
+ event: event,
333
+ node: convertNodePropsToEventData(abstractDropNodeProps),
334
+ dragNode: _this.dragNodeProps ? convertNodePropsToEventData(_this.dragNodeProps) : null,
335
+ dragNodesKeys: [_this.dragNodeProps.eventKey].concat(dragChildrenKeys),
287
336
  dropToGap: dropPosition !== 0,
288
337
  dropPosition: dropPosition + Number(posArr[posArr.length - 1])
289
338
  };
290
339
  if (!outsideTree) {
291
- onDrop == null ? void 0 : onDrop(dropResult);
340
+ onDrop === null || onDrop === void 0 || onDrop(dropResult);
292
341
  }
293
- this.dragNode = null;
294
- };
295
- this.cleanDragState = () => {
296
- const { draggingNodeKey } = this.state;
342
+ _this.dragNodeProps = null;
343
+ });
344
+ _defineProperty(_assertThisInitialized(_this), "cleanDragState", function () {
345
+ var draggingNodeKey = _this.state.draggingNodeKey;
297
346
  if (draggingNodeKey !== null) {
298
- this.setState({
347
+ _this.setState({
299
348
  draggingNodeKey: null,
300
349
  dropPosition: null,
301
350
  dropContainerKey: null,
@@ -305,171 +354,292 @@ var RCTree = class extends import_react.Component {
305
354
  dragOverNodeKey: null
306
355
  });
307
356
  }
308
- this.dragStartMousePosition = null;
309
- this.currentMouseOverDroppableNodeKey = null;
310
- };
311
- this.onNodeClick = (e, treeNode) => {
312
- const { onClick } = this.props;
313
- onClick == null ? void 0 : onClick(e, treeNode);
314
- };
315
- this.onNodeDoubleClick = (e, treeNode) => {
316
- const { onDoubleClick } = this.props;
317
- onDoubleClick == null ? void 0 : onDoubleClick(e, treeNode);
318
- };
319
- this.onNodeSelect = (e, treeNode) => {
320
- let { selectedKeys } = this.state;
321
- const { keyEntities, fieldNames } = this.state;
322
- const { onSelect, multiple } = this.props;
323
- const { selected } = treeNode;
324
- const key = treeNode[fieldNames.key];
325
- const targetSelected = !selected;
357
+ _this.dragStartMousePosition = null;
358
+ _this.currentMouseOverDroppableNodeKey = null;
359
+ });
360
+ _defineProperty(_assertThisInitialized(_this), "triggerExpandActionExpand", function (e, treeNode) {
361
+ var _this$state5 = _this.state,
362
+ expandedKeys = _this$state5.expandedKeys,
363
+ flattenNodes = _this$state5.flattenNodes;
364
+ var expanded = treeNode.expanded,
365
+ key = treeNode.key,
366
+ isLeaf = treeNode.isLeaf;
367
+ if (isLeaf || e.shiftKey || e.metaKey || e.ctrlKey) {
368
+ return;
369
+ }
370
+ var node = flattenNodes.filter(function (nodeItem) {
371
+ return nodeItem.key === key;
372
+ })[0];
373
+ var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(key, _this.getTreeNodeRequiredProps())), {}, {
374
+ data: node.data
375
+ }));
376
+ _this.setExpandedKeys(expanded ? arrDel(expandedKeys, key) : arrAdd(expandedKeys, key));
377
+ _this.onNodeExpand(e, eventNode);
378
+ });
379
+ _defineProperty(_assertThisInitialized(_this), "onNodeClick", function (e, treeNode) {
380
+ var _this$props3 = _this.props,
381
+ onClick = _this$props3.onClick,
382
+ expandAction = _this$props3.expandAction;
383
+ if (expandAction === 'click') {
384
+ _this.triggerExpandActionExpand(e, treeNode);
385
+ }
386
+ onClick === null || onClick === void 0 || onClick(e, treeNode);
387
+ });
388
+ _defineProperty(_assertThisInitialized(_this), "onNodeDoubleClick", function (e, treeNode) {
389
+ var _this$props4 = _this.props,
390
+ onDoubleClick = _this$props4.onDoubleClick,
391
+ expandAction = _this$props4.expandAction;
392
+ if (expandAction === 'doubleClick') {
393
+ _this.triggerExpandActionExpand(e, treeNode);
394
+ }
395
+ onDoubleClick === null || onDoubleClick === void 0 || onDoubleClick(e, treeNode);
396
+ });
397
+ _defineProperty(_assertThisInitialized(_this), "onNodeSelect", function (e, treeNode) {
398
+ var selectedKeys = _this.state.selectedKeys;
399
+ var _this$state6 = _this.state,
400
+ keyEntities = _this$state6.keyEntities,
401
+ fieldNames = _this$state6.fieldNames;
402
+ var _this$props5 = _this.props,
403
+ onSelect = _this$props5.onSelect,
404
+ multiple = _this$props5.multiple;
405
+ var selected = treeNode.selected;
406
+ var key = treeNode[fieldNames.key];
407
+ var targetSelected = !selected;
408
+
409
+ // Update selected keys
326
410
  if (!targetSelected) {
327
- selectedKeys = (0, import_util.arrDel)(selectedKeys, key);
411
+ selectedKeys = arrDel(selectedKeys, key);
328
412
  } else if (!multiple) {
329
413
  selectedKeys = [key];
330
414
  } else {
331
- selectedKeys = (0, import_util.arrAdd)(selectedKeys, key);
415
+ selectedKeys = arrAdd(selectedKeys, key);
332
416
  }
333
- const selectedNodes = selectedKeys.map((selectedKey) => {
334
- const entity = keyEntities[selectedKey];
335
- if (!entity) {
336
- return null;
337
- }
338
- return entity.node;
339
- }).filter((node) => node);
340
- this.setUncontrolledState({ selectedKeys });
341
- onSelect == null ? void 0 : onSelect(selectedKeys, {
342
- event: "select",
417
+
418
+ // [Legacy] Not found related usage in doc or upper libs
419
+ var selectedNodes = selectedKeys.map(function (selectedKey) {
420
+ var entity = getEntity(keyEntities, selectedKey);
421
+ return entity ? entity.node : null;
422
+ }).filter(Boolean);
423
+ _this.setUncontrolledState({
424
+ selectedKeys: selectedKeys
425
+ });
426
+ onSelect === null || onSelect === void 0 || onSelect(selectedKeys, {
427
+ event: 'select',
343
428
  selected: targetSelected,
344
429
  node: treeNode,
345
- selectedNodes,
430
+ selectedNodes: selectedNodes,
346
431
  nativeEvent: e.nativeEvent
347
432
  });
348
- };
349
- this.onNodeCheck = (e, treeNode, checked) => {
350
- const { keyEntities, checkedKeys: oriCheckedKeys, halfCheckedKeys: oriHalfCheckedKeys } = this.state;
351
- const { checkStrictly, onCheck } = this.props;
352
- const { key } = treeNode;
353
- let checkedObj;
354
- const eventObj = {
355
- event: "check",
433
+ });
434
+ _defineProperty(_assertThisInitialized(_this), "onNodeCheck", function (e, treeNode, checked) {
435
+ var _this$state7 = _this.state,
436
+ keyEntities = _this$state7.keyEntities,
437
+ oriCheckedKeys = _this$state7.checkedKeys,
438
+ oriHalfCheckedKeys = _this$state7.halfCheckedKeys;
439
+ var _this$props6 = _this.props,
440
+ checkStrictly = _this$props6.checkStrictly,
441
+ onCheck = _this$props6.onCheck;
442
+ var key = treeNode.key;
443
+
444
+ // Prepare trigger arguments
445
+ var checkedObj;
446
+ var eventObj = {
447
+ event: 'check',
356
448
  node: treeNode,
357
- checked,
449
+ checked: checked,
358
450
  nativeEvent: e.nativeEvent
359
451
  };
360
452
  if (checkStrictly) {
361
- const checkedKeys = checked ? (0, import_util.arrAdd)(oriCheckedKeys, key) : (0, import_util.arrDel)(oriCheckedKeys, key);
362
- const halfCheckedKeys = (0, import_util.arrDel)(oriHalfCheckedKeys, key);
363
- checkedObj = { checked: checkedKeys, halfChecked: halfCheckedKeys };
364
- eventObj.checkedNodes = checkedKeys.map((checkedKey) => keyEntities[checkedKey]).filter((entity) => entity).map((entity) => entity.node);
365
- this.setUncontrolledState({ checkedKeys });
453
+ var checkedKeys = checked ? arrAdd(oriCheckedKeys, key) : arrDel(oriCheckedKeys, key);
454
+ var halfCheckedKeys = arrDel(oriHalfCheckedKeys, key);
455
+ checkedObj = {
456
+ checked: checkedKeys,
457
+ halfChecked: halfCheckedKeys
458
+ };
459
+ eventObj.checkedNodes = checkedKeys.map(function (checkedKey) {
460
+ return getEntity(keyEntities, checkedKey);
461
+ }).filter(Boolean).map(function (entity) {
462
+ return entity.node;
463
+ });
464
+ _this.setUncontrolledState({
465
+ checkedKeys: checkedKeys
466
+ });
366
467
  } else {
367
- let { checkedKeys, halfCheckedKeys } = (0, import_conductUtil.conductCheck)([...oriCheckedKeys, key], true, keyEntities);
468
+ // Always fill first
469
+ var _conductCheck = conductCheck([].concat(_toConsumableArray(oriCheckedKeys), [key]), true, keyEntities),
470
+ _checkedKeys = _conductCheck.checkedKeys,
471
+ _halfCheckedKeys = _conductCheck.halfCheckedKeys;
472
+
473
+ // If remove, we do it again to correction
368
474
  if (!checked) {
369
- const keySet = new Set(checkedKeys);
475
+ var keySet = new Set(_checkedKeys);
370
476
  keySet.delete(key);
371
- ({ checkedKeys, halfCheckedKeys } = (0, import_conductUtil.conductCheck)(Array.from(keySet), { checked: false, halfCheckedKeys }, keyEntities));
477
+ var _conductCheck2 = conductCheck(Array.from(keySet), {
478
+ checked: false,
479
+ halfCheckedKeys: _halfCheckedKeys
480
+ }, keyEntities);
481
+ _checkedKeys = _conductCheck2.checkedKeys;
482
+ _halfCheckedKeys = _conductCheck2.halfCheckedKeys;
372
483
  }
373
- checkedObj = checkedKeys;
484
+ checkedObj = _checkedKeys;
485
+
486
+ // [Legacy] This is used for `rc-tree-select`
374
487
  eventObj.checkedNodes = [];
375
488
  eventObj.checkedNodesPositions = [];
376
- eventObj.halfCheckedKeys = halfCheckedKeys;
377
- checkedKeys.forEach((checkedKey) => {
378
- const entity = keyEntities[checkedKey];
489
+ eventObj.halfCheckedKeys = _halfCheckedKeys;
490
+ _checkedKeys.forEach(function (checkedKey) {
491
+ var entity = getEntity(keyEntities, checkedKey);
379
492
  if (!entity) {
380
493
  return;
381
494
  }
382
- const { node, pos } = entity;
495
+ var node = entity.node,
496
+ pos = entity.pos;
383
497
  eventObj.checkedNodes.push(node);
384
- eventObj.checkedNodesPositions.push({ node, pos });
498
+ eventObj.checkedNodesPositions.push({
499
+ node: node,
500
+ pos: pos
501
+ });
385
502
  });
386
- this.setUncontrolledState(
387
- {
388
- checkedKeys
389
- },
390
- false,
391
- {
392
- halfCheckedKeys
393
- }
394
- );
395
- }
396
- onCheck == null ? void 0 : onCheck(checkedObj, eventObj);
397
- };
398
- this.onNodeLoad = (treeNode) => {
399
- const { key } = treeNode;
400
- const loadPromise = new Promise((resolve, reject) => {
401
- this.setState(({ loadedKeys = [], loadingKeys = [] }) => {
402
- const { loadData, onLoad } = this.props;
403
- if (!loadData || loadedKeys.indexOf(key) !== -1 || loadingKeys.indexOf(key) !== -1) {
503
+ _this.setUncontrolledState({
504
+ checkedKeys: _checkedKeys
505
+ }, false, {
506
+ halfCheckedKeys: _halfCheckedKeys
507
+ });
508
+ }
509
+ onCheck === null || onCheck === void 0 || onCheck(checkedObj, eventObj);
510
+ });
511
+ _defineProperty(_assertThisInitialized(_this), "onNodeLoad", function (treeNode) {
512
+ var _entity$children;
513
+ var key = treeNode.key;
514
+ var keyEntities = _this.state.keyEntities;
515
+
516
+ // Skip if has children already
517
+ var entity = getEntity(keyEntities, key);
518
+ if (entity !== null && entity !== void 0 && (_entity$children = entity.children) !== null && _entity$children !== void 0 && _entity$children.length) {
519
+ return;
520
+ }
521
+ var loadPromise = new Promise(function (resolve, reject) {
522
+ // We need to get the latest state of loading/loaded keys
523
+ _this.setState(function (_ref) {
524
+ var _ref$loadedKeys = _ref.loadedKeys,
525
+ loadedKeys = _ref$loadedKeys === void 0 ? [] : _ref$loadedKeys,
526
+ _ref$loadingKeys = _ref.loadingKeys,
527
+ loadingKeys = _ref$loadingKeys === void 0 ? [] : _ref$loadingKeys;
528
+ var _this$props7 = _this.props,
529
+ loadData = _this$props7.loadData,
530
+ onLoad = _this$props7.onLoad;
531
+ if (!loadData || loadedKeys.includes(key) || loadingKeys.includes(key)) {
404
532
  return null;
405
533
  }
406
- const promise = loadData(treeNode);
407
- promise.then(() => {
408
- const { loadedKeys: currentLoadedKeys } = this.state;
409
- const newLoadedKeys = (0, import_util.arrAdd)(currentLoadedKeys, key);
410
- onLoad == null ? void 0 : onLoad(newLoadedKeys, {
411
- event: "load",
534
+
535
+ // Process load data
536
+ var promise = loadData(treeNode);
537
+ promise.then(function () {
538
+ var currentLoadedKeys = _this.state.loadedKeys;
539
+ var newLoadedKeys = arrAdd(currentLoadedKeys, key);
540
+
541
+ // onLoad should trigger before internal setState to avoid `loadData` trigger twice.
542
+ // https://github.com/ant-design/ant-design/issues/12464
543
+ onLoad === null || onLoad === void 0 || onLoad(newLoadedKeys, {
544
+ event: 'load',
412
545
  node: treeNode
413
546
  });
414
- this.setUncontrolledState({
547
+ _this.setUncontrolledState({
415
548
  loadedKeys: newLoadedKeys
416
549
  });
417
- this.setState((prevState) => ({
418
- loadingKeys: (0, import_util.arrDel)(prevState.loadingKeys, key)
419
- }));
550
+ _this.setState(function (prevState) {
551
+ return {
552
+ loadingKeys: arrDel(prevState.loadingKeys, key)
553
+ };
554
+ });
420
555
  resolve();
421
- }).catch((e) => {
422
- this.setState((prevState) => ({
423
- loadingKeys: (0, import_util.arrDel)(prevState.loadingKeys, key)
424
- }));
425
- this.loadingRetryTimes[key] = (this.loadingRetryTimes[key] || 0) + 1;
426
- if (this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {
427
- const { loadedKeys: currentLoadedKeys } = this.state;
428
- (0, import_Util.warning)(false, "Retry for `loadData` many times but still failed. No more retry.");
429
- this.setUncontrolledState({
430
- loadedKeys: (0, import_util.arrAdd)(currentLoadedKeys, key)
556
+ }).catch(function (e) {
557
+ _this.setState(function (prevState) {
558
+ return {
559
+ loadingKeys: arrDel(prevState.loadingKeys, key)
560
+ };
561
+ });
562
+
563
+ // If exceed max retry times, we give up retry
564
+ _this.loadingRetryTimes[key] = (_this.loadingRetryTimes[key] || 0) + 1;
565
+ if (_this.loadingRetryTimes[key] >= MAX_RETRY_TIMES) {
566
+ var currentLoadedKeys = _this.state.loadedKeys;
567
+ warning(false, 'Retry for `loadData` many times but still failed. No more retry.');
568
+ _this.setUncontrolledState({
569
+ loadedKeys: arrAdd(currentLoadedKeys, key)
431
570
  });
432
571
  resolve();
433
572
  }
434
573
  reject(e);
435
574
  });
436
575
  return {
437
- loadingKeys: (0, import_util.arrAdd)(loadingKeys, key)
576
+ loadingKeys: arrAdd(loadingKeys, key)
438
577
  };
439
578
  });
440
579
  });
441
- loadPromise.catch(() => {
580
+
581
+ // Not care warning if we ignore this
582
+ loadPromise.catch(function () {
583
+ //
442
584
  });
443
585
  return loadPromise;
444
- };
445
- this.onNodeMouseEnter = (event, node) => {
446
- const { onMouseEnter } = this.props;
447
- onMouseEnter == null ? void 0 : onMouseEnter({ event, node });
448
- };
449
- this.onNodeMouseLeave = (event, node) => {
450
- const { onMouseLeave } = this.props;
451
- onMouseLeave == null ? void 0 : onMouseLeave({ event, node });
452
- };
453
- this.onNodeContextMenu = (event, node) => {
454
- const { onRightClick } = this.props;
586
+ });
587
+ _defineProperty(_assertThisInitialized(_this), "onNodeMouseEnter", function (event, node) {
588
+ var onMouseEnter = _this.props.onMouseEnter;
589
+ onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({
590
+ event: event,
591
+ node: node
592
+ });
593
+ });
594
+ _defineProperty(_assertThisInitialized(_this), "onNodeMouseLeave", function (event, node) {
595
+ var onMouseLeave = _this.props.onMouseLeave;
596
+ onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({
597
+ event: event,
598
+ node: node
599
+ });
600
+ });
601
+ _defineProperty(_assertThisInitialized(_this), "onNodeContextMenu", function (event, node) {
602
+ var onRightClick = _this.props.onRightClick;
455
603
  if (onRightClick) {
456
604
  event.preventDefault();
457
- onRightClick({ event, node });
458
- }
459
- };
460
- this.onFocus = (...args) => {
461
- const { onFocus } = this.props;
462
- this.setState({ focused: true });
463
- onFocus == null ? void 0 : onFocus.apply(this, ...args);
464
- };
465
- this.onBlur = (...args) => {
466
- const { onBlur } = this.props;
467
- this.setState({ focused: false });
468
- this.onActiveChange(null);
469
- onBlur == null ? void 0 : onBlur.apply(this, ...args);
470
- };
471
- this.getTreeNodeRequiredProps = () => {
472
- const { expandedKeys, selectedKeys, loadedKeys, loadingKeys, checkedKeys, halfCheckedKeys, dragOverNodeKey, dropPosition, keyEntities } = this.state;
605
+ onRightClick({
606
+ event: event,
607
+ node: node
608
+ });
609
+ }
610
+ });
611
+ _defineProperty(_assertThisInitialized(_this), "onFocus", function () {
612
+ var onFocus = _this.props.onFocus;
613
+ _this.setState({
614
+ focused: true
615
+ });
616
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
617
+ args[_key2] = arguments[_key2];
618
+ }
619
+ onFocus === null || onFocus === void 0 || onFocus.apply(void 0, args);
620
+ });
621
+ _defineProperty(_assertThisInitialized(_this), "onBlur", function () {
622
+ var onBlur = _this.props.onBlur;
623
+ _this.setState({
624
+ focused: false
625
+ });
626
+ _this.onActiveChange(null);
627
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
628
+ args[_key3] = arguments[_key3];
629
+ }
630
+ onBlur === null || onBlur === void 0 || onBlur.apply(void 0, args);
631
+ });
632
+ _defineProperty(_assertThisInitialized(_this), "getTreeNodeRequiredProps", function () {
633
+ var _this$state8 = _this.state,
634
+ expandedKeys = _this$state8.expandedKeys,
635
+ selectedKeys = _this$state8.selectedKeys,
636
+ loadedKeys = _this$state8.loadedKeys,
637
+ loadingKeys = _this$state8.loadingKeys,
638
+ checkedKeys = _this$state8.checkedKeys,
639
+ halfCheckedKeys = _this$state8.halfCheckedKeys,
640
+ dragOverNodeKey = _this$state8.dragOverNodeKey,
641
+ dropPosition = _this$state8.dropPosition,
642
+ keyEntities = _this$state8.keyEntities;
473
643
  return {
474
644
  expandedKeys: expandedKeys || [],
475
645
  selectedKeys: selectedKeys || [],
@@ -477,178 +647,224 @@ var RCTree = class extends import_react.Component {
477
647
  loadingKeys: loadingKeys || [],
478
648
  checkedKeys: checkedKeys || [],
479
649
  halfCheckedKeys: halfCheckedKeys || [],
480
- dragOverNodeKey,
481
- dropPosition,
482
- keyEntities
650
+ dragOverNodeKey: dragOverNodeKey,
651
+ dropPosition: dropPosition,
652
+ keyEntities: keyEntities
483
653
  };
484
- };
654
+ });
485
655
  // =========================== Expanded ===========================
486
656
  /** Set uncontrolled `expandedKeys`. This will also auto update `flattenNodes`. */
487
- this.setExpandedKeys = (expandedKeys) => {
488
- const { treeData, fieldNames } = this.state;
489
- const flattenNodes = (0, import_treeUtil.flattenTreeData)(treeData, expandedKeys, fieldNames);
490
- this.setUncontrolledState(
491
- {
492
- expandedKeys,
493
- flattenNodes
494
- },
495
- true
496
- );
497
- };
498
- this.flattenTreeData = (expandedKeys) => {
499
- const { treeData, fieldNames } = this.state;
500
- return (0, import_treeUtil.flattenTreeData)(treeData, expandedKeys, fieldNames);
501
- };
502
- this.onNodeExpand = (e, treeNode) => {
503
- let { expandedKeys } = this.state;
504
- const { listChanging, fieldNames } = this.state;
505
- const { onExpand, loadData } = this.props;
506
- const { expanded } = treeNode;
507
- const key = treeNode[fieldNames.key];
657
+ _defineProperty(_assertThisInitialized(_this), "setExpandedKeys", function (expandedKeys) {
658
+ var _this$state9 = _this.state,
659
+ treeData = _this$state9.treeData,
660
+ fieldNames = _this$state9.fieldNames;
661
+ var flattenNodes = flattenTreeData(treeData, expandedKeys, fieldNames);
662
+ _this.setUncontrolledState({
663
+ expandedKeys: expandedKeys,
664
+ flattenNodes: flattenNodes
665
+ }, true);
666
+ });
667
+ _defineProperty(_assertThisInitialized(_this), "onNodeExpand", function (e, treeNode) {
668
+ var expandedKeys = _this.state.expandedKeys;
669
+ var _this$state10 = _this.state,
670
+ listChanging = _this$state10.listChanging,
671
+ fieldNames = _this$state10.fieldNames;
672
+ var _this$props8 = _this.props,
673
+ onExpand = _this$props8.onExpand,
674
+ loadData = _this$props8.loadData;
675
+ var expanded = treeNode.expanded;
676
+ var key = treeNode[fieldNames.key];
677
+
678
+ // Do nothing when motion is in progress
508
679
  if (listChanging) {
509
680
  return;
510
681
  }
511
- const index = expandedKeys.indexOf(key);
512
- const targetExpanded = !expanded;
513
- (0, import_Util.warning)(expanded && index !== -1 || !expanded && index === -1, "Expand state not sync with index check");
514
- if (targetExpanded) {
515
- expandedKeys = (0, import_util.arrAdd)(expandedKeys, key);
516
- } else {
517
- expandedKeys = (0, import_util.arrDel)(expandedKeys, key);
518
- }
519
- this.setExpandedKeys(expandedKeys);
520
- onExpand == null ? void 0 : onExpand(expandedKeys, {
682
+
683
+ // Update selected keys
684
+ var certain = expandedKeys.includes(key);
685
+ var targetExpanded = !expanded;
686
+ warning(expanded && certain || !expanded && !certain, 'Expand state not sync with index check');
687
+ expandedKeys = targetExpanded ? arrAdd(expandedKeys, key) : arrDel(expandedKeys, key);
688
+ _this.setExpandedKeys(expandedKeys);
689
+ onExpand === null || onExpand === void 0 || onExpand(expandedKeys, {
521
690
  node: treeNode,
522
691
  expanded: targetExpanded,
523
692
  nativeEvent: e.nativeEvent
524
693
  });
694
+
695
+ // Async Load data
525
696
  if (targetExpanded && loadData) {
526
- const loadPromise = this.onNodeLoad(treeNode);
697
+ var loadPromise = _this.onNodeLoad(treeNode);
527
698
  if (loadPromise) {
528
- loadPromise.then(() => {
529
- const newFlattenTreeData = (0, import_treeUtil.flattenTreeData)(this.state.treeData, expandedKeys, fieldNames);
530
- this.setUncontrolledState({ flattenNodes: newFlattenTreeData });
531
- }).catch(() => {
532
- const { expandedKeys: currentExpandedKeys } = this.state;
533
- const expandedKeysToRestore = (0, import_util.arrDel)(currentExpandedKeys, key);
534
- this.setExpandedKeys(expandedKeysToRestore);
699
+ loadPromise.then(function () {
700
+ // [Legacy] Refresh logic
701
+ var newFlattenTreeData = flattenTreeData(_this.state.treeData, expandedKeys, fieldNames);
702
+ _this.setUncontrolledState({
703
+ flattenNodes: newFlattenTreeData
704
+ });
705
+ }).catch(function () {
706
+ var currentExpandedKeys = _this.state.expandedKeys;
707
+ var expandedKeysToRestore = arrDel(currentExpandedKeys, key);
708
+ _this.setExpandedKeys(expandedKeysToRestore);
535
709
  });
536
710
  }
537
711
  }
538
- };
539
- this.onListChangeStart = () => {
540
- this.setUncontrolledState({
712
+ });
713
+ _defineProperty(_assertThisInitialized(_this), "onListChangeStart", function () {
714
+ _this.setUncontrolledState({
541
715
  listChanging: true
542
716
  });
543
- };
544
- this.onListChangeEnd = () => {
545
- setTimeout(() => {
546
- this.setUncontrolledState({
717
+ });
718
+ _defineProperty(_assertThisInitialized(_this), "onListChangeEnd", function () {
719
+ setTimeout(function () {
720
+ _this.setUncontrolledState({
547
721
  listChanging: false
548
722
  });
549
723
  });
550
- };
724
+ });
551
725
  // =========================== Keyboard ===========================
552
- this.onActiveChange = (newActiveKey) => {
553
- const { activeKey } = this.state;
554
- const { onActiveChange } = this.props;
726
+ _defineProperty(_assertThisInitialized(_this), "onActiveChange", function (newActiveKey) {
727
+ var activeKey = _this.state.activeKey;
728
+ var _this$props9 = _this.props,
729
+ onActiveChange = _this$props9.onActiveChange,
730
+ _this$props9$itemScro = _this$props9.itemScrollOffset,
731
+ itemScrollOffset = _this$props9$itemScro === void 0 ? 0 : _this$props9$itemScro;
555
732
  if (activeKey === newActiveKey) {
556
733
  return;
557
734
  }
558
- this.setState({ activeKey: newActiveKey });
735
+ _this.setState({
736
+ activeKey: newActiveKey
737
+ });
559
738
  if (newActiveKey !== null) {
560
- this.scrollTo({ key: newActiveKey });
739
+ _this.scrollTo({
740
+ key: newActiveKey,
741
+ offset: itemScrollOffset
742
+ });
561
743
  }
562
- onActiveChange == null ? void 0 : onActiveChange(newActiveKey);
563
- };
564
- this.getActiveItem = () => {
565
- const { activeKey, flattenNodes } = this.state;
744
+ onActiveChange === null || onActiveChange === void 0 || onActiveChange(newActiveKey);
745
+ });
746
+ _defineProperty(_assertThisInitialized(_this), "getActiveItem", function () {
747
+ var _this$state11 = _this.state,
748
+ activeKey = _this$state11.activeKey,
749
+ flattenNodes = _this$state11.flattenNodes;
566
750
  if (activeKey === null) {
567
751
  return null;
568
752
  }
569
- return flattenNodes.find(({ key }) => key === activeKey) || null;
570
- };
571
- this.offsetActiveKey = (offset) => {
572
- const { flattenNodes, activeKey } = this.state;
573
- let index = flattenNodes.findIndex(({ key }) => key === activeKey);
753
+ return flattenNodes.find(function (_ref2) {
754
+ var key = _ref2.key;
755
+ return key === activeKey;
756
+ }) || null;
757
+ });
758
+ _defineProperty(_assertThisInitialized(_this), "offsetActiveKey", function (offset) {
759
+ var _this$state12 = _this.state,
760
+ flattenNodes = _this$state12.flattenNodes,
761
+ activeKey = _this$state12.activeKey;
762
+ var index = flattenNodes.findIndex(function (_ref3) {
763
+ var key = _ref3.key;
764
+ return key === activeKey;
765
+ });
766
+
767
+ // Align with index
574
768
  if (index === -1 && offset < 0) {
575
769
  index = flattenNodes.length;
576
770
  }
577
771
  index = (index + offset + flattenNodes.length) % flattenNodes.length;
578
- const item = flattenNodes[index];
772
+ var item = flattenNodes[index];
579
773
  if (item) {
580
- const { key } = item;
581
- this.onActiveChange(key);
774
+ var _key4 = item.key;
775
+ _this.onActiveChange(_key4);
582
776
  } else {
583
- this.onActiveChange(null);
777
+ _this.onActiveChange(null);
584
778
  }
585
- };
586
- this.onKeyDown = (event) => {
587
- const { activeKey, expandedKeys, checkedKeys } = this.state;
588
- const { onKeyDown, checkable, selectable } = this.props;
779
+ });
780
+ _defineProperty(_assertThisInitialized(_this), "onKeyDown", function (event) {
781
+ var _this$state13 = _this.state,
782
+ activeKey = _this$state13.activeKey,
783
+ expandedKeys = _this$state13.expandedKeys,
784
+ checkedKeys = _this$state13.checkedKeys,
785
+ fieldNames = _this$state13.fieldNames;
786
+ var _this$props10 = _this.props,
787
+ onKeyDown = _this$props10.onKeyDown,
788
+ checkable = _this$props10.checkable,
789
+ selectable = _this$props10.selectable;
790
+
791
+ // >>>>>>>>>> Direction
589
792
  switch (event.which) {
590
- case import_KeyCode.default.UP: {
591
- this.offsetActiveKey(-1);
592
- event.preventDefault();
593
- break;
594
- }
595
- case import_KeyCode.default.DOWN: {
596
- this.offsetActiveKey(1);
597
- event.preventDefault();
598
- break;
599
- }
793
+ case KeyCode.UP:
794
+ {
795
+ _this.offsetActiveKey(-1);
796
+ event.preventDefault();
797
+ break;
798
+ }
799
+ case KeyCode.DOWN:
800
+ {
801
+ _this.offsetActiveKey(1);
802
+ event.preventDefault();
803
+ break;
804
+ }
600
805
  }
601
- const activeItem = this.getActiveItem();
806
+
807
+ // >>>>>>>>>> Expand & Selection
808
+ var activeItem = _this.getActiveItem();
602
809
  if (activeItem && activeItem.data) {
603
- const treeNodeRequiredProps = this.getTreeNodeRequiredProps();
604
- const expandable = activeItem.data.isLeaf === false || !!(activeItem.data.children || []).length;
605
- const eventNode = (0, import_treeUtil.convertNodePropsToEventData)({
606
- ...(0, import_treeUtil.getTreeNodeProps)(activeKey, treeNodeRequiredProps),
810
+ var treeNodeRequiredProps = _this.getTreeNodeRequiredProps();
811
+ var expandable = activeItem.data.isLeaf === false || !!(activeItem.data[fieldNames.children] || []).length;
812
+ var eventNode = convertNodePropsToEventData(_objectSpread(_objectSpread({}, getTreeNodeProps(activeKey, treeNodeRequiredProps)), {}, {
607
813
  data: activeItem.data,
608
814
  active: true
609
- });
815
+ }));
610
816
  switch (event.which) {
611
- case import_KeyCode.default.LEFT: {
612
- if (expandable && expandedKeys.includes(activeKey)) {
613
- this.onNodeExpand({}, eventNode);
614
- } else if (activeItem.parent) {
615
- this.onActiveChange(activeItem.parent.data.key);
817
+ // >>> Expand
818
+ case KeyCode.LEFT:
819
+ {
820
+ // Collapse if possible
821
+ if (expandable && expandedKeys.includes(activeKey)) {
822
+ _this.onNodeExpand({}, eventNode);
823
+ } else if (activeItem.parent) {
824
+ _this.onActiveChange(activeItem.parent.key);
825
+ }
826
+ event.preventDefault();
827
+ break;
616
828
  }
617
- event.preventDefault();
618
- break;
619
- }
620
- case import_KeyCode.default.RIGHT: {
621
- if (expandable && !expandedKeys.includes(activeKey)) {
622
- this.onNodeExpand({}, eventNode);
623
- } else if (activeItem.children && activeItem.children.length) {
624
- this.onActiveChange(activeItem.children[0].data.key);
829
+ case KeyCode.RIGHT:
830
+ {
831
+ // Expand if possible
832
+ if (expandable && !expandedKeys.includes(activeKey)) {
833
+ _this.onNodeExpand({}, eventNode);
834
+ } else if (activeItem.children && activeItem.children.length) {
835
+ _this.onActiveChange(activeItem.children[0].key);
836
+ }
837
+ event.preventDefault();
838
+ break;
625
839
  }
626
- event.preventDefault();
627
- break;
628
- }
629
- case import_KeyCode.default.ENTER:
630
- case import_KeyCode.default.SPACE: {
631
- if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {
632
- this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));
633
- } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {
634
- this.onNodeSelect({}, eventNode);
840
+
841
+ // Selection
842
+ case KeyCode.ENTER:
843
+ case KeyCode.SPACE:
844
+ {
845
+ if (checkable && !eventNode.disabled && eventNode.checkable !== false && !eventNode.disableCheckbox) {
846
+ _this.onNodeCheck({}, eventNode, !checkedKeys.includes(activeKey));
847
+ } else if (!checkable && selectable && !eventNode.disabled && eventNode.selectable !== false) {
848
+ _this.onNodeSelect({}, eventNode);
849
+ }
850
+ break;
635
851
  }
636
- break;
637
- }
638
852
  }
639
853
  }
640
- onKeyDown == null ? void 0 : onKeyDown.call(this, event);
641
- };
642
- /**
643
- * Only update the value which is not in props
854
+ onKeyDown === null || onKeyDown === void 0 || onKeyDown(event);
855
+ });
856
+ /**
857
+ * Only update the value which is not in props
644
858
  */
645
- this.setUncontrolledState = (state, atomic = false, forceState = null) => {
646
- if (!this.destroyed) {
647
- let needSync = false;
648
- let allPassed = true;
649
- const newState = {};
650
- Object.keys(state).forEach((name) => {
651
- if (name in this.props) {
859
+ _defineProperty(_assertThisInitialized(_this), "setUncontrolledState", function (state) {
860
+ var atomic = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
861
+ var forceState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
862
+ if (!_this.destroyed) {
863
+ var needSync = false;
864
+ var allPassed = true;
865
+ var newState = {};
866
+ Object.keys(state).forEach(function (name) {
867
+ if (Object.prototype.hasOwnProperty.call(_this.props, name)) {
652
868
  allPassed = false;
653
869
  return;
654
870
  }
@@ -656,267 +872,326 @@ var RCTree = class extends import_react.Component {
656
872
  newState[name] = state[name];
657
873
  });
658
874
  if (needSync && (!atomic || allPassed)) {
659
- this.setState({
660
- ...newState,
661
- ...forceState
662
- });
875
+ _this.setState(_objectSpread(_objectSpread({}, newState), forceState));
663
876
  }
664
877
  }
665
- };
666
- this.scrollTo = (scroll) => {
667
- this.listRef.current.scrollTo(scroll);
668
- };
669
- }
670
- componentDidMount() {
671
- this.onUpdated();
672
- }
673
- componentDidUpdate() {
674
- this.onUpdated();
675
- }
676
- onUpdated() {
677
- const { activeKey } = this.props;
678
- if (activeKey !== void 0 && activeKey !== this.state.activeKey) {
679
- this.setState({ activeKey });
680
- if (activeKey !== null) {
681
- this.scrollTo({ key: activeKey });
682
- }
683
- }
684
- }
685
- componentWillUnmount() {
686
- window.removeEventListener("dragend", this.onWindowDragEnd);
687
- this.destroyed = true;
878
+ });
879
+ _defineProperty(_assertThisInitialized(_this), "scrollTo", function (scroll) {
880
+ _this.listRef.current.scrollTo(scroll);
881
+ });
882
+ return _this;
688
883
  }
689
- static getDerivedStateFromProps(props, prevState) {
690
- const { prevProps } = prevState;
691
- const newState = {
692
- prevProps: props
693
- };
694
- function needSync(name) {
695
- return !prevProps && name in props || prevProps && prevProps[name] !== props[name];
884
+ _createClass(Tree, [{
885
+ key: "componentDidMount",
886
+ value: function componentDidMount() {
887
+ this.destroyed = false;
888
+ this.onUpdated();
696
889
  }
697
- let treeData;
698
- let { fieldNames } = prevState;
699
- if (needSync("fieldNames")) {
700
- fieldNames = (0, import_treeUtil.fillFieldNames)(props.fieldNames);
701
- newState.fieldNames = fieldNames;
890
+ }, {
891
+ key: "componentDidUpdate",
892
+ value: function componentDidUpdate() {
893
+ this.onUpdated();
702
894
  }
703
- if (needSync("treeData")) {
704
- ({ treeData } = props);
705
- } else if (needSync("children")) {
706
- (0, import_Util.warning)(false, "`children` of Tree is deprecated. Please use `treeData` instead.");
707
- treeData = (0, import_treeUtil.convertTreeToData)(props.children);
708
- }
709
- if (treeData) {
710
- newState.treeData = treeData;
711
- const entitiesMap = (0, import_treeUtil.convertDataToEntities)(treeData, { fieldNames });
712
- newState.keyEntities = {
713
- [import_NodeList.MOTION_KEY]: import_NodeList.MotionEntity,
714
- ...entitiesMap.keyEntities
715
- };
716
- if (process.env.NODE_ENV !== "production") {
717
- (0, import_treeUtil.warningWithoutKey)(treeData, fieldNames);
895
+ }, {
896
+ key: "onUpdated",
897
+ value: function onUpdated() {
898
+ var _this$props11 = this.props,
899
+ activeKey = _this$props11.activeKey,
900
+ _this$props11$itemScr = _this$props11.itemScrollOffset,
901
+ itemScrollOffset = _this$props11$itemScr === void 0 ? 0 : _this$props11$itemScr;
902
+ if (activeKey !== undefined && activeKey !== this.state.activeKey) {
903
+ this.setState({
904
+ activeKey: activeKey
905
+ });
906
+ if (activeKey !== null) {
907
+ this.scrollTo({
908
+ key: activeKey,
909
+ offset: itemScrollOffset
910
+ });
911
+ }
718
912
  }
719
913
  }
720
- const keyEntities = newState.keyEntities || prevState.keyEntities;
721
- if (needSync("expandedKeys") || prevProps && needSync("autoExpandParent")) {
722
- newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? (0, import_util.conductExpandParent)(props.expandedKeys, keyEntities) : props.expandedKeys;
723
- } else if (!prevProps && props.defaultExpandAll) {
724
- const cloneKeyEntities = { ...keyEntities };
725
- delete cloneKeyEntities[import_NodeList.MOTION_KEY];
726
- newState.expandedKeys = Object.keys(cloneKeyEntities).map((key) => cloneKeyEntities[key].key);
727
- } else if (!prevProps && props.defaultExpandedKeys) {
728
- newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? (0, import_util.conductExpandParent)(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;
914
+ }, {
915
+ key: "componentWillUnmount",
916
+ value: function componentWillUnmount() {
917
+ window.removeEventListener('dragend', this.onWindowDragEnd);
918
+ this.destroyed = true;
729
919
  }
730
- if (!newState.expandedKeys) {
731
- delete newState.expandedKeys;
732
- }
733
- if (treeData || newState.expandedKeys) {
734
- const flattenNodes = (0, import_treeUtil.flattenTreeData)(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);
735
- newState.flattenNodes = flattenNodes;
920
+ }, {
921
+ key: "resetDragState",
922
+ value: function resetDragState() {
923
+ this.setState({
924
+ dragOverNodeKey: null,
925
+ dropPosition: null,
926
+ dropLevelOffset: null,
927
+ dropTargetKey: null,
928
+ dropContainerKey: null,
929
+ dropTargetPos: null,
930
+ dropAllowed: false
931
+ });
736
932
  }
737
- if (props.selectable) {
738
- if (needSync("selectedKeys")) {
739
- newState.selectedKeys = (0, import_util.calcSelectedKeys)(props.selectedKeys, props);
740
- } else if (!prevProps && props.defaultSelectedKeys) {
741
- newState.selectedKeys = (0, import_util.calcSelectedKeys)(props.defaultSelectedKeys, props);
933
+ }, {
934
+ key: "render",
935
+ value: function render() {
936
+ var _this$state14 = this.state,
937
+ focused = _this$state14.focused,
938
+ flattenNodes = _this$state14.flattenNodes,
939
+ keyEntities = _this$state14.keyEntities,
940
+ draggingNodeKey = _this$state14.draggingNodeKey,
941
+ activeKey = _this$state14.activeKey,
942
+ dropLevelOffset = _this$state14.dropLevelOffset,
943
+ dropContainerKey = _this$state14.dropContainerKey,
944
+ dropTargetKey = _this$state14.dropTargetKey,
945
+ dropPosition = _this$state14.dropPosition,
946
+ dragOverNodeKey = _this$state14.dragOverNodeKey,
947
+ indent = _this$state14.indent;
948
+ var _this$props12 = this.props,
949
+ prefixCls = _this$props12.prefixCls,
950
+ className = _this$props12.className,
951
+ style = _this$props12.style,
952
+ styles = _this$props12.styles,
953
+ treeClassNames = _this$props12.classNames,
954
+ showLine = _this$props12.showLine,
955
+ focusable = _this$props12.focusable,
956
+ _this$props12$tabInde = _this$props12.tabIndex,
957
+ tabIndex = _this$props12$tabInde === void 0 ? 0 : _this$props12$tabInde,
958
+ selectable = _this$props12.selectable,
959
+ showIcon = _this$props12.showIcon,
960
+ icon = _this$props12.icon,
961
+ switcherIcon = _this$props12.switcherIcon,
962
+ draggable = _this$props12.draggable,
963
+ checkable = _this$props12.checkable,
964
+ checkStrictly = _this$props12.checkStrictly,
965
+ disabled = _this$props12.disabled,
966
+ motion = _this$props12.motion,
967
+ loadData = _this$props12.loadData,
968
+ filterTreeNode = _this$props12.filterTreeNode,
969
+ height = _this$props12.height,
970
+ itemHeight = _this$props12.itemHeight,
971
+ scrollWidth = _this$props12.scrollWidth,
972
+ virtual = _this$props12.virtual,
973
+ titleRender = _this$props12.titleRender,
974
+ dropIndicatorRender = _this$props12.dropIndicatorRender,
975
+ onContextMenu = _this$props12.onContextMenu,
976
+ onScroll = _this$props12.onScroll,
977
+ direction = _this$props12.direction,
978
+ rootClassName = _this$props12.rootClassName,
979
+ rootStyle = _this$props12.rootStyle;
980
+ var domProps = pickAttrs(this.props, {
981
+ aria: true,
982
+ data: true
983
+ });
984
+
985
+ // It's better move to hooks but we just simply keep here
986
+ var draggableConfig;
987
+ if (draggable) {
988
+ if (_typeof(draggable) === 'object') {
989
+ draggableConfig = draggable;
990
+ } else if (typeof draggable === 'function') {
991
+ draggableConfig = {
992
+ nodeDraggable: draggable
993
+ };
994
+ } else {
995
+ draggableConfig = {};
996
+ }
742
997
  }
998
+ var contextValue = {
999
+ styles: styles,
1000
+ classNames: treeClassNames,
1001
+ prefixCls: prefixCls,
1002
+ selectable: selectable,
1003
+ showIcon: showIcon,
1004
+ icon: icon,
1005
+ switcherIcon: switcherIcon,
1006
+ draggable: draggableConfig,
1007
+ draggingNodeKey: draggingNodeKey,
1008
+ checkable: checkable,
1009
+ checkStrictly: checkStrictly,
1010
+ disabled: disabled,
1011
+ keyEntities: keyEntities,
1012
+ dropLevelOffset: dropLevelOffset,
1013
+ dropContainerKey: dropContainerKey,
1014
+ dropTargetKey: dropTargetKey,
1015
+ dropPosition: dropPosition,
1016
+ dragOverNodeKey: dragOverNodeKey,
1017
+ indent: indent,
1018
+ direction: direction,
1019
+ dropIndicatorRender: dropIndicatorRender,
1020
+ loadData: loadData,
1021
+ filterTreeNode: filterTreeNode,
1022
+ titleRender: titleRender,
1023
+ onNodeClick: this.onNodeClick,
1024
+ onNodeDoubleClick: this.onNodeDoubleClick,
1025
+ onNodeExpand: this.onNodeExpand,
1026
+ onNodeSelect: this.onNodeSelect,
1027
+ onNodeCheck: this.onNodeCheck,
1028
+ onNodeLoad: this.onNodeLoad,
1029
+ onNodeMouseEnter: this.onNodeMouseEnter,
1030
+ onNodeMouseLeave: this.onNodeMouseLeave,
1031
+ onNodeContextMenu: this.onNodeContextMenu,
1032
+ onNodeDragStart: this.onNodeDragStart,
1033
+ onNodeDragEnter: this.onNodeDragEnter,
1034
+ onNodeDragOver: this.onNodeDragOver,
1035
+ onNodeDragLeave: this.onNodeDragLeave,
1036
+ onNodeDragEnd: this.onNodeDragEnd,
1037
+ onNodeDrop: this.onNodeDrop
1038
+ };
1039
+ return /*#__PURE__*/React.createElement(TreeContext.Provider, {
1040
+ value: contextValue
1041
+ }, /*#__PURE__*/React.createElement("div", {
1042
+ className: classNames(prefixCls, className, rootClassName, _defineProperty(_defineProperty(_defineProperty({}, "".concat(prefixCls, "-show-line"), showLine), "".concat(prefixCls, "-focused"), focused), "".concat(prefixCls, "-active-focused"), activeKey !== null)),
1043
+ style: rootStyle
1044
+ }, /*#__PURE__*/React.createElement(NodeList, _extends({
1045
+ ref: this.listRef,
1046
+ prefixCls: prefixCls,
1047
+ style: style,
1048
+ data: flattenNodes,
1049
+ disabled: disabled,
1050
+ selectable: selectable,
1051
+ checkable: !!checkable,
1052
+ motion: motion,
1053
+ dragging: draggingNodeKey !== null,
1054
+ height: height,
1055
+ itemHeight: itemHeight,
1056
+ virtual: virtual,
1057
+ focusable: focusable,
1058
+ focused: focused,
1059
+ tabIndex: tabIndex,
1060
+ activeItem: this.getActiveItem(),
1061
+ onFocus: this.onFocus,
1062
+ onBlur: this.onBlur,
1063
+ onKeyDown: this.onKeyDown,
1064
+ onActiveChange: this.onActiveChange,
1065
+ onListChangeStart: this.onListChangeStart,
1066
+ onListChangeEnd: this.onListChangeEnd,
1067
+ onContextMenu: onContextMenu,
1068
+ onScroll: onScroll,
1069
+ scrollWidth: scrollWidth
1070
+ }, this.getTreeNodeRequiredProps(), domProps))));
743
1071
  }
744
- if (props.checkable) {
745
- let checkedKeyEntity;
746
- if (needSync("checkedKeys")) {
747
- checkedKeyEntity = (0, import_util.parseCheckedKeys)(props.checkedKeys) || {};
748
- } else if (!prevProps && props.defaultCheckedKeys) {
749
- checkedKeyEntity = (0, import_util.parseCheckedKeys)(props.defaultCheckedKeys) || {};
750
- } else if (treeData) {
751
- checkedKeyEntity = (0, import_util.parseCheckedKeys)(props.checkedKeys) || {
752
- checkedKeys: prevState.checkedKeys,
753
- halfCheckedKeys: prevState.halfCheckedKeys
754
- };
1072
+ }], [{
1073
+ key: "getDerivedStateFromProps",
1074
+ value: function getDerivedStateFromProps(props, prevState) {
1075
+ var prevProps = prevState.prevProps;
1076
+ var newState = {
1077
+ prevProps: props
1078
+ };
1079
+ function needSync(name) {
1080
+ return !prevProps && Object.prototype.hasOwnProperty.call(props, name) || prevProps && prevProps[name] !== props[name];
1081
+ }
1082
+
1083
+ // ================== Tree Node ==================
1084
+ var treeData;
1085
+
1086
+ // fieldNames
1087
+ var fieldNames = prevState.fieldNames;
1088
+ if (needSync('fieldNames')) {
1089
+ fieldNames = fillFieldNames(props.fieldNames);
1090
+ newState.fieldNames = fieldNames;
1091
+ }
1092
+
1093
+ // Check if `treeData` or `children` changed and save into the state.
1094
+ if (needSync('treeData')) {
1095
+ treeData = props.treeData;
1096
+ } else if (needSync('children')) {
1097
+ warning(false, '`children` of Tree is deprecated. Please use `treeData` instead.');
1098
+ treeData = convertTreeToData(props.children);
755
1099
  }
756
- if (checkedKeyEntity) {
757
- let { checkedKeys = [], halfCheckedKeys = [] } = checkedKeyEntity;
758
- if (!props.checkStrictly) {
759
- const conductKeys = (0, import_conductUtil.conductCheck)(checkedKeys, true, keyEntities);
760
- ({ checkedKeys, halfCheckedKeys } = conductKeys);
1100
+
1101
+ // Save flatten nodes info and convert `treeData` into keyEntities
1102
+ if (treeData) {
1103
+ newState.treeData = treeData;
1104
+ var entitiesMap = convertDataToEntities(treeData, {
1105
+ fieldNames: fieldNames
1106
+ });
1107
+ newState.keyEntities = _objectSpread(_defineProperty({}, MOTION_KEY, MotionEntity), entitiesMap.keyEntities);
1108
+
1109
+ // Warning if treeNode not provide key
1110
+ if (process.env.NODE_ENV !== 'production') {
1111
+ warningWithoutKey(treeData, fieldNames);
761
1112
  }
762
- newState.checkedKeys = checkedKeys;
763
- newState.halfCheckedKeys = halfCheckedKeys;
764
1113
  }
765
- }
766
- if (needSync("loadedKeys")) {
767
- newState.loadedKeys = props.loadedKeys;
768
- }
769
- return newState;
770
- }
771
- resetDragState() {
772
- this.setState({
773
- dragOverNodeKey: null,
774
- dropPosition: null,
775
- dropLevelOffset: null,
776
- dropTargetKey: null,
777
- dropContainerKey: null,
778
- dropTargetPos: null,
779
- dropAllowed: false
780
- });
781
- }
782
- render() {
783
- const { focused, flattenNodes, keyEntities, draggingNodeKey, activeKey, dropLevelOffset, dropContainerKey, dropTargetKey, dropPosition, dragOverNodeKey, indent } = this.state;
784
- const {
785
- prefixCls,
786
- className,
787
- style,
788
- showLine,
789
- focusable,
790
- tabIndex = 0,
791
- selectable,
792
- showIcon,
793
- icon,
794
- switcherIcon,
795
- draggable,
796
- checkable,
797
- checkStrictly,
798
- disabled,
799
- motion,
800
- loadData,
801
- filterTreeNode,
802
- height,
803
- itemHeight,
804
- virtual,
805
- titleRender,
806
- dropIndicatorRender,
807
- onContextMenu,
808
- onScroll,
809
- direction,
810
- rootClassName,
811
- rootStyle
812
- } = this.props;
813
- const domProps = (0, import_pickAttrs.default)(this.props, {
814
- aria: true,
815
- data: true
816
- });
817
- let draggableConfig;
818
- if (draggable) {
819
- if (typeof draggable === "object") {
820
- draggableConfig = draggable;
821
- } else if (typeof draggable === "function") {
822
- draggableConfig = {
823
- nodeDraggable: draggable
824
- };
825
- } else {
826
- draggableConfig = {};
1114
+ var keyEntities = newState.keyEntities || prevState.keyEntities;
1115
+
1116
+ // ================ expandedKeys =================
1117
+ if (needSync('expandedKeys') || prevProps && needSync('autoExpandParent')) {
1118
+ newState.expandedKeys = props.autoExpandParent || !prevProps && props.defaultExpandParent ? conductExpandParent(props.expandedKeys, keyEntities) : props.expandedKeys;
1119
+ } else if (!prevProps && props.defaultExpandAll) {
1120
+ var cloneKeyEntities = _objectSpread({}, keyEntities);
1121
+ delete cloneKeyEntities[MOTION_KEY];
1122
+
1123
+ // Only take the key who has the children to enhance the performance
1124
+ var nextExpandedKeys = [];
1125
+ Object.keys(cloneKeyEntities).forEach(function (key) {
1126
+ var entity = cloneKeyEntities[key];
1127
+ if (entity.children && entity.children.length) {
1128
+ nextExpandedKeys.push(entity.key);
1129
+ }
1130
+ });
1131
+ newState.expandedKeys = nextExpandedKeys;
1132
+ } else if (!prevProps && props.defaultExpandedKeys) {
1133
+ newState.expandedKeys = props.autoExpandParent || props.defaultExpandParent ? conductExpandParent(props.defaultExpandedKeys, keyEntities) : props.defaultExpandedKeys;
827
1134
  }
828
- }
829
- return /* @__PURE__ */ import_react.default.createElement(
830
- import_contextTypes.TreeContext.Provider,
831
- {
832
- value: {
833
- prefixCls,
834
- selectable,
835
- showIcon,
836
- icon,
837
- switcherIcon,
838
- draggable: draggableConfig,
839
- draggingNodeKey,
840
- checkable,
841
- checkStrictly,
842
- disabled,
843
- keyEntities,
844
- dropLevelOffset,
845
- dropContainerKey,
846
- dropTargetKey,
847
- dropPosition,
848
- dragOverNodeKey,
849
- indent,
850
- direction,
851
- dropIndicatorRender,
852
- loadData,
853
- filterTreeNode,
854
- titleRender,
855
- onNodeClick: this.onNodeClick,
856
- onNodeDoubleClick: this.onNodeDoubleClick,
857
- onNodeExpand: this.onNodeExpand,
858
- onNodeSelect: this.onNodeSelect,
859
- onNodeCheck: this.onNodeCheck,
860
- onNodeLoad: this.onNodeLoad,
861
- onNodeMouseEnter: this.onNodeMouseEnter,
862
- onNodeMouseLeave: this.onNodeMouseLeave,
863
- onNodeContextMenu: this.onNodeContextMenu,
864
- onNodeDragStart: this.onNodeDragStart,
865
- onNodeDragEnter: this.onNodeDragEnter,
866
- onNodeDragOver: this.onNodeDragOver,
867
- onNodeDragLeave: this.onNodeDragLeave,
868
- onNodeDragEnd: this.onNodeDragEnd,
869
- onNodeDrop: this.onNodeDrop
1135
+ if (!newState.expandedKeys) {
1136
+ delete newState.expandedKeys;
1137
+ }
1138
+
1139
+ // ================ flattenNodes =================
1140
+ if (treeData || newState.expandedKeys) {
1141
+ var flattenNodes = flattenTreeData(treeData || prevState.treeData, newState.expandedKeys || prevState.expandedKeys, fieldNames);
1142
+ newState.flattenNodes = flattenNodes;
1143
+ }
1144
+
1145
+ // ================ selectedKeys =================
1146
+ if (props.selectable) {
1147
+ if (needSync('selectedKeys')) {
1148
+ newState.selectedKeys = calcSelectedKeys(props.selectedKeys, props);
1149
+ } else if (!prevProps && props.defaultSelectedKeys) {
1150
+ newState.selectedKeys = calcSelectedKeys(props.defaultSelectedKeys, props);
870
1151
  }
871
- },
872
- /* @__PURE__ */ import_react.default.createElement(
873
- "div",
874
- {
875
- role: "tree",
876
- className: (0, import_classnames.default)(prefixCls, className, rootClassName, {
877
- [`${prefixCls}-show-line`]: showLine,
878
- [`${prefixCls}-focused`]: focused,
879
- [`${prefixCls}-active-focused`]: activeKey !== null
880
- }),
881
- style: rootStyle
882
- },
883
- /* @__PURE__ */ import_react.default.createElement(
884
- import_NodeList.default,
885
- {
886
- ref: this.listRef,
887
- prefixCls,
888
- style,
889
- data: flattenNodes,
890
- disabled,
891
- selectable,
892
- checkable: !!checkable,
893
- motion,
894
- dragging: draggingNodeKey !== null,
895
- height,
896
- itemHeight,
897
- virtual,
898
- focusable,
899
- focused,
900
- tabIndex,
901
- activeItem: this.getActiveItem(),
902
- onFocus: this.onFocus,
903
- onBlur: this.onBlur,
904
- onKeyDown: this.onKeyDown,
905
- onActiveChange: this.onActiveChange,
906
- onListChangeStart: this.onListChangeStart,
907
- onListChangeEnd: this.onListChangeEnd,
908
- onContextMenu,
909
- onScroll,
910
- ...this.getTreeNodeRequiredProps(),
911
- ...domProps
1152
+ }
1153
+
1154
+ // ================= checkedKeys =================
1155
+ if (props.checkable) {
1156
+ var checkedKeyEntity;
1157
+ if (needSync('checkedKeys')) {
1158
+ checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {};
1159
+ } else if (!prevProps && props.defaultCheckedKeys) {
1160
+ checkedKeyEntity = parseCheckedKeys(props.defaultCheckedKeys) || {};
1161
+ } else if (treeData) {
1162
+ // If `treeData` changed, we also need check it
1163
+ checkedKeyEntity = parseCheckedKeys(props.checkedKeys) || {
1164
+ checkedKeys: prevState.checkedKeys,
1165
+ halfCheckedKeys: prevState.halfCheckedKeys
1166
+ };
1167
+ }
1168
+ if (checkedKeyEntity) {
1169
+ var _checkedKeyEntity = checkedKeyEntity,
1170
+ _checkedKeyEntity$che = _checkedKeyEntity.checkedKeys,
1171
+ checkedKeys = _checkedKeyEntity$che === void 0 ? [] : _checkedKeyEntity$che,
1172
+ _checkedKeyEntity$hal = _checkedKeyEntity.halfCheckedKeys,
1173
+ halfCheckedKeys = _checkedKeyEntity$hal === void 0 ? [] : _checkedKeyEntity$hal;
1174
+ if (!props.checkStrictly) {
1175
+ var conductKeys = conductCheck(checkedKeys, true, keyEntities);
1176
+ checkedKeys = conductKeys.checkedKeys;
1177
+ halfCheckedKeys = conductKeys.halfCheckedKeys;
912
1178
  }
913
- )
914
- )
915
- );
916
- }
917
- };
918
- RCTree.defaultProps = {
919
- prefixCls: "r-tree",
1179
+ newState.checkedKeys = checkedKeys;
1180
+ newState.halfCheckedKeys = halfCheckedKeys;
1181
+ }
1182
+ }
1183
+
1184
+ // ================= loadedKeys ==================
1185
+ if (needSync('loadedKeys')) {
1186
+ newState.loadedKeys = props.loadedKeys;
1187
+ }
1188
+ return newState;
1189
+ }
1190
+ }]);
1191
+ return Tree;
1192
+ }(React.Component);
1193
+ _defineProperty(Tree, "defaultProps", {
1194
+ prefixCls: 'el-tree',
920
1195
  showLine: false,
921
1196
  showIcon: true,
922
1197
  selectable: true,
@@ -931,8 +1206,11 @@ RCTree.defaultProps = {
931
1206
  defaultExpandedKeys: [],
932
1207
  defaultCheckedKeys: [],
933
1208
  defaultSelectedKeys: [],
934
- dropIndicatorRender: import_DropIndicator.default,
935
- allowDrop: () => true
936
- };
937
- RCTree.TreeNode = import_TreeNode.default;
938
- var RCTree_default = RCTree;
1209
+ dropIndicatorRender: DropIndicator,
1210
+ allowDrop: function allowDrop() {
1211
+ return true;
1212
+ },
1213
+ expandAction: false
1214
+ });
1215
+ _defineProperty(Tree, "TreeNode", TreeNode);
1216
+ export default Tree;