rsuite 5.2.1 → 5.3.0

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 (451) hide show
  1. package/Avatar/styles/index.less +2 -2
  2. package/AvatarGroup/package.json +7 -0
  3. package/AvatarGroup/styles/index.less +19 -0
  4. package/Button/styles/index.less +6 -0
  5. package/ButtonGroup/styles/index.less +0 -18
  6. package/CHANGELOG.md +49 -0
  7. package/CheckTreePicker/styles/index.less +14 -1
  8. package/PanelGroup/styles/index.less +12 -12
  9. package/Table/styles/index.less +0 -4
  10. package/TreePicker/styles/index.less +10 -0
  11. package/cjs/@types/common.d.ts +9 -8
  12. package/cjs/@types/utils.d.ts +12 -0
  13. package/cjs/Affix/Affix.js +5 -5
  14. package/cjs/Animation/Transition.d.ts +21 -12
  15. package/cjs/Animation/Transition.js +4 -1
  16. package/cjs/AutoComplete/AutoComplete.js +1 -1
  17. package/cjs/AutoComplete/utils.d.ts +1 -1
  18. package/cjs/Avatar/Avatar.js +10 -3
  19. package/cjs/AvatarGroup/AvatarGroup.d.ts +15 -0
  20. package/cjs/AvatarGroup/AvatarGroup.js +71 -0
  21. package/cjs/AvatarGroup/index.d.ts +3 -0
  22. package/cjs/AvatarGroup/index.js +11 -0
  23. package/cjs/Breadcrumb/Breadcrumb.js +1 -1
  24. package/cjs/Button/Button.js +8 -2
  25. package/cjs/ButtonGroup/ButtonGroup.js +8 -2
  26. package/cjs/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  27. package/cjs/ButtonGroup/ButtonGroupContext.js +13 -0
  28. package/cjs/ButtonGroup/index.d.ts +2 -0
  29. package/cjs/ButtonGroup/index.js +3 -0
  30. package/cjs/Calendar/Calendar.d.ts +4 -4
  31. package/cjs/Calendar/Calendar.js +5 -2
  32. package/cjs/Calendar/CalendarContext.js +1 -1
  33. package/cjs/Calendar/TableRow.js +1 -1
  34. package/cjs/Calendar/TimeDropdown.js +6 -5
  35. package/cjs/Calendar/types.d.ts +2 -2
  36. package/cjs/Calendar/useCalendarDate.d.ts +2 -2
  37. package/cjs/Carousel/Carousel.d.ts +2 -2
  38. package/cjs/Carousel/Carousel.js +1 -1
  39. package/cjs/Cascader/Cascader.d.ts +1 -1
  40. package/cjs/Cascader/Cascader.js +10 -10
  41. package/cjs/Cascader/DropdownMenu.d.ts +5 -4
  42. package/cjs/Cascader/utils.d.ts +3 -3
  43. package/cjs/CheckPicker/CheckPicker.js +4 -4
  44. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  45. package/cjs/CheckTreePicker/CheckTreeNode.js +7 -9
  46. package/cjs/CheckTreePicker/CheckTreePicker.js +34 -27
  47. package/cjs/CheckTreePicker/utils.d.ts +3 -1
  48. package/cjs/CheckTreePicker/utils.js +12 -10
  49. package/cjs/Checkbox/Checkbox.d.ts +1 -1
  50. package/cjs/CheckboxGroup/CheckboxGroup.js +2 -2
  51. package/cjs/CustomProvider/CustomProvider.d.ts +31 -57
  52. package/cjs/DOMHelper/index.d.ts +12 -12
  53. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  54. package/cjs/DatePicker/DatePicker.js +15 -9
  55. package/cjs/DatePicker/Toolbar.d.ts +12 -9
  56. package/cjs/DatePicker/Toolbar.js +6 -8
  57. package/cjs/DatePicker/types.d.ts +4 -4
  58. package/cjs/DatePicker/utils.d.ts +4 -3
  59. package/cjs/DateRangePicker/Calendar.d.ts +9 -7
  60. package/cjs/DateRangePicker/Calendar.js +27 -6
  61. package/cjs/DateRangePicker/DateRangePicker.d.ts +8 -6
  62. package/cjs/DateRangePicker/DateRangePicker.js +126 -107
  63. package/cjs/DateRangePicker/types.d.ts +2 -1
  64. package/cjs/DateRangePicker/utils.d.ts +6 -6
  65. package/cjs/DateRangePicker/utils.js +7 -2
  66. package/cjs/Disclosure/Disclosure.js +4 -2
  67. package/cjs/Disclosure/DisclosureButton.js +9 -7
  68. package/cjs/Disclosure/DisclosureContent.js +4 -6
  69. package/cjs/Disclosure/DisclosureContext.d.ts +2 -2
  70. package/cjs/Disclosure/useDisclosureContext.d.ts +2 -0
  71. package/cjs/Disclosure/useDisclosureContext.js +20 -0
  72. package/cjs/Dropdown/Dropdown.d.ts +1 -1
  73. package/cjs/Dropdown/DropdownContext.d.ts +2 -2
  74. package/cjs/Dropdown/DropdownItem.js +3 -2
  75. package/cjs/Dropdown/DropdownMenu.d.ts +3 -3
  76. package/cjs/Dropdown/DropdownState.d.ts +1 -1
  77. package/cjs/Dropdown/DropdownToggle.js +2 -1
  78. package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
  79. package/cjs/Form/Form.js +1 -1
  80. package/cjs/Form/FormContext.d.ts +1 -1
  81. package/cjs/FormControl/FormControl.d.ts +1 -1
  82. package/cjs/FormControl/FormControl.js +5 -4
  83. package/cjs/FormGroup/FormGroup.d.ts +1 -1
  84. package/cjs/Input/Input.d.ts +3 -2
  85. package/cjs/InputGroup/InputGroup.d.ts +1 -1
  86. package/cjs/InputNumber/InputNumber.js +6 -2
  87. package/cjs/InputPicker/InputAutosize.js +4 -4
  88. package/cjs/InputPicker/InputPicker.d.ts +2 -2
  89. package/cjs/InputPicker/InputPicker.js +16 -11
  90. package/cjs/List/ListContext.d.ts +1 -1
  91. package/cjs/List/ListContext.js +8 -1
  92. package/cjs/List/helper/AutoScroller.js +4 -2
  93. package/cjs/List/helper/useManager.d.ts +3 -3
  94. package/cjs/List/helper/useManager.js +1 -1
  95. package/cjs/List/helper/useSortHelper.d.ts +3 -3
  96. package/cjs/List/helper/useSortHelper.js +6 -4
  97. package/cjs/List/helper/utils.d.ts +2 -2
  98. package/cjs/MaskedInput/MaskedInput.d.ts +5 -42
  99. package/cjs/MaskedInput/MaskedInput.js +9 -63
  100. package/cjs/MaskedInput/TextMask.d.ts +43 -0
  101. package/cjs/MaskedInput/TextMask.js +80 -0
  102. package/cjs/MaskedInput/adjustCaretPosition.d.ts +6 -6
  103. package/cjs/MaskedInput/conformToMask.js +5 -4
  104. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  105. package/cjs/MaskedInput/utilities.d.ts +1 -1
  106. package/cjs/Menu/Menu.js +60 -41
  107. package/cjs/Menu/MenuContext.d.ts +1 -1
  108. package/cjs/Menu/MenuItem.d.ts +1 -1
  109. package/cjs/Menu/MenuItem.js +31 -23
  110. package/cjs/Menu/Menubar.js +8 -8
  111. package/cjs/Menu/useMenu.js +17 -7
  112. package/cjs/Modal/Modal.js +12 -6
  113. package/cjs/Modal/ModalContext.d.ts +2 -2
  114. package/cjs/Modal/utils.d.ts +1 -1
  115. package/cjs/Modal/utils.js +12 -15
  116. package/cjs/MultiCascader/DropdownMenu.d.ts +4 -4
  117. package/cjs/MultiCascader/MultiCascader.js +6 -6
  118. package/cjs/MultiCascader/utils.d.ts +14 -14
  119. package/cjs/Nav/Nav.d.ts +1 -1
  120. package/cjs/Nav/NavContext.d.ts +1 -1
  121. package/cjs/Nav/NavItem.d.ts +1 -1
  122. package/cjs/Navbar/Navbar.js +1 -1
  123. package/cjs/Navbar/NavbarItem.d.ts +1 -1
  124. package/cjs/Overlay/Modal.d.ts +2 -2
  125. package/cjs/Overlay/Modal.js +41 -31
  126. package/cjs/Overlay/ModalManager.d.ts +17 -8
  127. package/cjs/Overlay/ModalManager.js +11 -20
  128. package/cjs/Overlay/Overlay.d.ts +2 -2
  129. package/cjs/Overlay/Overlay.js +1 -1
  130. package/cjs/Overlay/OverlayTrigger.d.ts +11 -11
  131. package/cjs/Overlay/OverlayTrigger.js +14 -6
  132. package/cjs/Overlay/Position.d.ts +3 -3
  133. package/cjs/Overlay/Position.js +21 -12
  134. package/cjs/Overlay/positionUtils.d.ts +1 -1
  135. package/cjs/Overlay/positionUtils.js +8 -8
  136. package/cjs/Pagination/Pagination.d.ts +1 -1
  137. package/cjs/Pagination/PaginationButton.d.ts +3 -3
  138. package/cjs/Pagination/PaginationGroup.js +5 -3
  139. package/cjs/Panel/Panel.d.ts +1 -1
  140. package/cjs/Panel/Panel.js +2 -2
  141. package/cjs/PanelGroup/PanelGroup.d.ts +2 -2
  142. package/cjs/Picker/DropdownMenu.d.ts +8 -5
  143. package/cjs/Picker/DropdownMenu.js +5 -5
  144. package/cjs/Picker/PickerOverlay.js +4 -3
  145. package/cjs/Picker/PickerToggle.js +11 -8
  146. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -6
  147. package/cjs/Picker/SearchBar.d.ts +1 -1
  148. package/cjs/Picker/SelectedElement.js +2 -1
  149. package/cjs/Picker/VirtualizedList.d.ts +29 -2
  150. package/cjs/Picker/propTypes.d.ts +2 -2
  151. package/cjs/Picker/utils.d.ts +17 -25
  152. package/cjs/Picker/utils.js +71 -46
  153. package/cjs/Placeholder/PlaceholderGrid.js +1 -1
  154. package/cjs/Plaintext/Plaintext.js +2 -1
  155. package/cjs/Radio/Radio.d.ts +1 -1
  156. package/cjs/RadioGroup/RadioGroup.d.ts +2 -2
  157. package/cjs/RadioGroup/RadioGroup.js +3 -3
  158. package/cjs/RangeSlider/RangeSlider.d.ts +2 -2
  159. package/cjs/RangeSlider/RangeSlider.js +6 -4
  160. package/cjs/Rate/Character.js +4 -2
  161. package/cjs/Rate/Rate.js +5 -2
  162. package/cjs/Ripple/Ripple.js +1 -1
  163. package/cjs/SelectPicker/SelectPicker.js +4 -4
  164. package/cjs/Sidenav/Node.d.ts +1 -1
  165. package/cjs/Sidenav/Sidenav.d.ts +4 -4
  166. package/cjs/Sidenav/Sidenav.js +5 -2
  167. package/cjs/Sidenav/SidenavDropdown.js +11 -8
  168. package/cjs/Sidenav/SidenavDropdownItem.js +10 -5
  169. package/cjs/Sidenav/SidenavDropdownMenu.js +9 -5
  170. package/cjs/Sidenav/SidenavItem.d.ts +1 -1
  171. package/cjs/Sidenav/SidenavItem.js +4 -0
  172. package/cjs/Slider/Graduated.d.ts +5 -5
  173. package/cjs/Slider/Handle.d.ts +1 -1
  174. package/cjs/Slider/Handle.js +10 -6
  175. package/cjs/Slider/Mark.d.ts +1 -1
  176. package/cjs/Slider/Slider.d.ts +1 -1
  177. package/cjs/Slider/Slider.js +2 -2
  178. package/cjs/Slider/utils.d.ts +2 -1
  179. package/cjs/Slider/utils.js +4 -5
  180. package/cjs/Steps/StepItem.js +2 -2
  181. package/cjs/TagInput/index.js +1 -1
  182. package/cjs/Toggle/Toggle.js +1 -1
  183. package/cjs/Tree/Tree.d.ts +3 -1
  184. package/cjs/TreePicker/TreeNode.js +6 -8
  185. package/cjs/TreePicker/TreePicker.js +36 -27
  186. package/cjs/Uploader/UploadFileItem.d.ts +1 -1
  187. package/cjs/Uploader/UploadFileItem.js +2 -2
  188. package/cjs/Uploader/UploadTrigger.d.ts +1 -1
  189. package/cjs/Uploader/UploadTrigger.js +2 -3
  190. package/cjs/Uploader/Uploader.d.ts +5 -5
  191. package/cjs/Uploader/Uploader.js +1 -2
  192. package/cjs/index.d.ts +2 -0
  193. package/cjs/index.js +5 -1
  194. package/cjs/locales/index.d.ts +3 -3
  195. package/cjs/toaster/ToastContainer.d.ts +1 -1
  196. package/cjs/toaster/ToastContainer.js +1 -1
  197. package/cjs/toaster/toaster.js +3 -1
  198. package/cjs/utils/BrowserDetection.js +1 -1
  199. package/cjs/utils/ReactChildren.d.ts +2 -2
  200. package/cjs/utils/ajaxUpload.d.ts +1 -1
  201. package/cjs/utils/ajaxUpload.js +5 -4
  202. package/cjs/utils/appendTooltip.d.ts +1 -1
  203. package/cjs/utils/constants.d.ts +4 -4
  204. package/cjs/utils/createChainedFunction.d.ts +1 -1
  205. package/cjs/utils/getDataGroupBy.d.ts +1 -1
  206. package/cjs/utils/mergeRefs.d.ts +2 -2
  207. package/cjs/utils/previewFile.d.ts +1 -1
  208. package/cjs/utils/propTypeChecker.d.ts +6 -2
  209. package/cjs/utils/propTypeChecker.js +7 -6
  210. package/cjs/utils/reactToString.d.ts +2 -1
  211. package/cjs/utils/statusIcons.d.ts +1 -1
  212. package/cjs/utils/stringToObject.d.ts +1 -1
  213. package/cjs/utils/treeUtils.d.ts +32 -29
  214. package/cjs/utils/treeUtils.js +46 -23
  215. package/cjs/utils/useControlled.d.ts +6 -1
  216. package/cjs/utils/useControlled.js +0 -8
  217. package/cjs/utils/useCustom.js +6 -4
  218. package/cjs/utils/useElementResize.d.ts +1 -1
  219. package/cjs/utils/useElementResize.js +11 -6
  220. package/cjs/utils/useFocus.d.ts +2 -2
  221. package/cjs/utils/usePortal.d.ts +1 -1
  222. package/cjs/utils/useRootClose.d.ts +2 -2
  223. package/cjs/utils/useTimeout.d.ts +1 -1
  224. package/cjs/utils/useTimeout.js +5 -3
  225. package/dist/rsuite-rtl.css +85 -165
  226. package/dist/rsuite-rtl.min.css +1 -1
  227. package/dist/rsuite-rtl.min.css.map +1 -1
  228. package/dist/rsuite.css +85 -165
  229. package/dist/rsuite.js +468 -445
  230. package/dist/rsuite.js.map +1 -1
  231. package/dist/rsuite.min.css +1 -1
  232. package/dist/rsuite.min.css.map +1 -1
  233. package/dist/rsuite.min.js +1 -1
  234. package/dist/rsuite.min.js.LICENSE.txt +9 -0
  235. package/dist/rsuite.min.js.map +1 -1
  236. package/esm/@types/common.d.ts +9 -8
  237. package/esm/@types/utils.d.ts +12 -0
  238. package/esm/Affix/Affix.js +5 -5
  239. package/esm/Animation/Transition.d.ts +21 -12
  240. package/esm/Animation/Transition.js +4 -1
  241. package/esm/AutoComplete/AutoComplete.js +1 -1
  242. package/esm/AutoComplete/utils.d.ts +1 -1
  243. package/esm/Avatar/Avatar.js +7 -3
  244. package/esm/AvatarGroup/AvatarGroup.d.ts +15 -0
  245. package/esm/AvatarGroup/AvatarGroup.js +54 -0
  246. package/esm/AvatarGroup/index.d.ts +3 -0
  247. package/esm/AvatarGroup/index.js +2 -0
  248. package/esm/Breadcrumb/Breadcrumb.js +1 -1
  249. package/esm/Button/Button.js +6 -2
  250. package/esm/ButtonGroup/ButtonGroup.js +7 -2
  251. package/esm/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  252. package/esm/ButtonGroup/ButtonGroupContext.js +3 -0
  253. package/esm/ButtonGroup/index.d.ts +2 -0
  254. package/esm/ButtonGroup/index.js +2 -0
  255. package/esm/Calendar/Calendar.d.ts +4 -4
  256. package/esm/Calendar/Calendar.js +5 -2
  257. package/esm/Calendar/CalendarContext.js +1 -1
  258. package/esm/Calendar/TableRow.js +1 -1
  259. package/esm/Calendar/TimeDropdown.js +5 -4
  260. package/esm/Calendar/types.d.ts +2 -2
  261. package/esm/Calendar/useCalendarDate.d.ts +2 -2
  262. package/esm/Carousel/Carousel.d.ts +2 -2
  263. package/esm/Carousel/Carousel.js +1 -1
  264. package/esm/Cascader/Cascader.d.ts +1 -1
  265. package/esm/Cascader/Cascader.js +10 -10
  266. package/esm/Cascader/DropdownMenu.d.ts +5 -4
  267. package/esm/Cascader/utils.d.ts +3 -3
  268. package/esm/CheckPicker/CheckPicker.js +4 -4
  269. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  270. package/esm/CheckTreePicker/CheckTreeNode.js +4 -7
  271. package/esm/CheckTreePicker/CheckTreePicker.js +33 -25
  272. package/esm/CheckTreePicker/utils.d.ts +3 -1
  273. package/esm/CheckTreePicker/utils.js +12 -10
  274. package/esm/Checkbox/Checkbox.d.ts +1 -1
  275. package/esm/CheckboxGroup/CheckboxGroup.js +2 -2
  276. package/esm/CustomProvider/CustomProvider.d.ts +31 -57
  277. package/esm/DOMHelper/index.d.ts +12 -12
  278. package/esm/DatePicker/DatePicker.d.ts +1 -1
  279. package/esm/DatePicker/DatePicker.js +14 -9
  280. package/esm/DatePicker/Toolbar.d.ts +12 -9
  281. package/esm/DatePicker/Toolbar.js +6 -8
  282. package/esm/DatePicker/types.d.ts +4 -4
  283. package/esm/DatePicker/utils.d.ts +4 -3
  284. package/esm/DateRangePicker/Calendar.d.ts +9 -7
  285. package/esm/DateRangePicker/Calendar.js +28 -6
  286. package/esm/DateRangePicker/DateRangePicker.d.ts +8 -6
  287. package/esm/DateRangePicker/DateRangePicker.js +124 -107
  288. package/esm/DateRangePicker/types.d.ts +2 -1
  289. package/esm/DateRangePicker/utils.d.ts +6 -6
  290. package/esm/DateRangePicker/utils.js +6 -2
  291. package/esm/Disclosure/Disclosure.js +4 -2
  292. package/esm/Disclosure/DisclosureButton.js +8 -7
  293. package/esm/Disclosure/DisclosureContent.js +5 -7
  294. package/esm/Disclosure/DisclosureContext.d.ts +2 -2
  295. package/esm/Disclosure/useDisclosureContext.d.ts +2 -0
  296. package/esm/Disclosure/useDisclosureContext.js +11 -0
  297. package/esm/Dropdown/Dropdown.d.ts +1 -1
  298. package/esm/Dropdown/DropdownContext.d.ts +2 -2
  299. package/esm/Dropdown/DropdownItem.js +3 -2
  300. package/esm/Dropdown/DropdownMenu.d.ts +3 -3
  301. package/esm/Dropdown/DropdownState.d.ts +1 -1
  302. package/esm/Dropdown/DropdownToggle.js +2 -1
  303. package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
  304. package/esm/Form/Form.js +1 -1
  305. package/esm/Form/FormContext.d.ts +1 -1
  306. package/esm/FormControl/FormControl.d.ts +1 -1
  307. package/esm/FormControl/FormControl.js +5 -4
  308. package/esm/FormGroup/FormGroup.d.ts +1 -1
  309. package/esm/Input/Input.d.ts +3 -2
  310. package/esm/InputGroup/InputGroup.d.ts +1 -1
  311. package/esm/InputNumber/InputNumber.js +6 -2
  312. package/esm/InputPicker/InputAutosize.js +4 -4
  313. package/esm/InputPicker/InputPicker.d.ts +2 -2
  314. package/esm/InputPicker/InputPicker.js +16 -11
  315. package/esm/List/ListContext.d.ts +1 -1
  316. package/esm/List/ListContext.js +7 -1
  317. package/esm/List/helper/AutoScroller.js +4 -2
  318. package/esm/List/helper/useManager.d.ts +3 -3
  319. package/esm/List/helper/useManager.js +1 -1
  320. package/esm/List/helper/useSortHelper.d.ts +3 -3
  321. package/esm/List/helper/useSortHelper.js +6 -4
  322. package/esm/List/helper/utils.d.ts +2 -2
  323. package/esm/MaskedInput/MaskedInput.d.ts +5 -42
  324. package/esm/MaskedInput/MaskedInput.js +9 -63
  325. package/esm/MaskedInput/TextMask.d.ts +43 -0
  326. package/esm/MaskedInput/TextMask.js +67 -0
  327. package/esm/MaskedInput/adjustCaretPosition.d.ts +6 -6
  328. package/esm/MaskedInput/conformToMask.js +5 -4
  329. package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  330. package/esm/MaskedInput/utilities.d.ts +1 -1
  331. package/esm/Menu/Menu.js +59 -43
  332. package/esm/Menu/MenuContext.d.ts +1 -1
  333. package/esm/Menu/MenuItem.d.ts +1 -1
  334. package/esm/Menu/MenuItem.js +30 -23
  335. package/esm/Menu/Menubar.js +7 -8
  336. package/esm/Menu/useMenu.js +17 -7
  337. package/esm/Modal/Modal.js +12 -6
  338. package/esm/Modal/ModalContext.d.ts +2 -2
  339. package/esm/Modal/utils.d.ts +1 -1
  340. package/esm/Modal/utils.js +11 -12
  341. package/esm/MultiCascader/DropdownMenu.d.ts +4 -4
  342. package/esm/MultiCascader/MultiCascader.js +6 -6
  343. package/esm/MultiCascader/utils.d.ts +14 -14
  344. package/esm/Nav/Nav.d.ts +1 -1
  345. package/esm/Nav/NavContext.d.ts +1 -1
  346. package/esm/Nav/NavItem.d.ts +1 -1
  347. package/esm/Navbar/Navbar.js +1 -1
  348. package/esm/Navbar/NavbarItem.d.ts +1 -1
  349. package/esm/Overlay/Modal.d.ts +2 -2
  350. package/esm/Overlay/Modal.js +42 -32
  351. package/esm/Overlay/ModalManager.d.ts +17 -8
  352. package/esm/Overlay/ModalManager.js +11 -20
  353. package/esm/Overlay/Overlay.d.ts +2 -2
  354. package/esm/Overlay/Overlay.js +1 -1
  355. package/esm/Overlay/OverlayTrigger.d.ts +11 -11
  356. package/esm/Overlay/OverlayTrigger.js +14 -6
  357. package/esm/Overlay/Position.d.ts +3 -3
  358. package/esm/Overlay/Position.js +20 -11
  359. package/esm/Overlay/positionUtils.d.ts +1 -1
  360. package/esm/Overlay/positionUtils.js +6 -6
  361. package/esm/Pagination/Pagination.d.ts +1 -1
  362. package/esm/Pagination/PaginationButton.d.ts +3 -3
  363. package/esm/Pagination/PaginationGroup.js +5 -3
  364. package/esm/Panel/Panel.d.ts +1 -1
  365. package/esm/Panel/Panel.js +2 -2
  366. package/esm/PanelGroup/PanelGroup.d.ts +2 -2
  367. package/esm/Picker/DropdownMenu.d.ts +8 -5
  368. package/esm/Picker/DropdownMenu.js +5 -5
  369. package/esm/Picker/PickerOverlay.js +4 -3
  370. package/esm/Picker/PickerToggle.js +11 -8
  371. package/esm/Picker/PickerToggleTrigger.d.ts +2 -6
  372. package/esm/Picker/SearchBar.d.ts +1 -1
  373. package/esm/Picker/SelectedElement.js +2 -1
  374. package/esm/Picker/VirtualizedList.d.ts +29 -2
  375. package/esm/Picker/propTypes.d.ts +2 -2
  376. package/esm/Picker/utils.d.ts +17 -25
  377. package/esm/Picker/utils.js +70 -46
  378. package/esm/Placeholder/PlaceholderGrid.js +1 -1
  379. package/esm/Plaintext/Plaintext.js +2 -1
  380. package/esm/Radio/Radio.d.ts +1 -1
  381. package/esm/RadioGroup/RadioGroup.d.ts +2 -2
  382. package/esm/RadioGroup/RadioGroup.js +3 -3
  383. package/esm/RangeSlider/RangeSlider.d.ts +2 -2
  384. package/esm/RangeSlider/RangeSlider.js +5 -4
  385. package/esm/Rate/Character.js +3 -2
  386. package/esm/Rate/Rate.js +4 -2
  387. package/esm/Ripple/Ripple.js +1 -1
  388. package/esm/SelectPicker/SelectPicker.js +4 -4
  389. package/esm/Sidenav/Node.d.ts +1 -1
  390. package/esm/Sidenav/Sidenav.d.ts +4 -4
  391. package/esm/Sidenav/Sidenav.js +5 -2
  392. package/esm/Sidenav/SidenavDropdown.js +11 -7
  393. package/esm/Sidenav/SidenavDropdownItem.js +11 -5
  394. package/esm/Sidenav/SidenavDropdownMenu.js +9 -5
  395. package/esm/Sidenav/SidenavItem.d.ts +1 -1
  396. package/esm/Sidenav/SidenavItem.js +4 -0
  397. package/esm/Slider/Graduated.d.ts +5 -5
  398. package/esm/Slider/Handle.d.ts +1 -1
  399. package/esm/Slider/Handle.js +10 -6
  400. package/esm/Slider/Mark.d.ts +1 -1
  401. package/esm/Slider/Slider.d.ts +1 -1
  402. package/esm/Slider/Slider.js +2 -2
  403. package/esm/Slider/utils.d.ts +2 -1
  404. package/esm/Slider/utils.js +5 -2
  405. package/esm/Steps/StepItem.js +2 -2
  406. package/esm/TagInput/index.js +1 -1
  407. package/esm/Toggle/Toggle.js +1 -1
  408. package/esm/Tree/Tree.d.ts +3 -1
  409. package/esm/TreePicker/TreeNode.js +4 -7
  410. package/esm/TreePicker/TreePicker.js +35 -25
  411. package/esm/Uploader/UploadFileItem.d.ts +1 -1
  412. package/esm/Uploader/UploadFileItem.js +2 -2
  413. package/esm/Uploader/UploadTrigger.d.ts +1 -1
  414. package/esm/Uploader/UploadTrigger.js +2 -3
  415. package/esm/Uploader/Uploader.d.ts +5 -5
  416. package/esm/Uploader/Uploader.js +1 -2
  417. package/esm/index.d.ts +2 -0
  418. package/esm/index.js +1 -0
  419. package/esm/locales/index.d.ts +3 -3
  420. package/esm/toaster/ToastContainer.d.ts +1 -1
  421. package/esm/toaster/ToastContainer.js +1 -1
  422. package/esm/toaster/toaster.js +3 -1
  423. package/esm/utils/BrowserDetection.js +1 -1
  424. package/esm/utils/ReactChildren.d.ts +2 -2
  425. package/esm/utils/ajaxUpload.d.ts +1 -1
  426. package/esm/utils/ajaxUpload.js +5 -4
  427. package/esm/utils/appendTooltip.d.ts +1 -1
  428. package/esm/utils/constants.d.ts +4 -4
  429. package/esm/utils/createChainedFunction.d.ts +1 -1
  430. package/esm/utils/getDataGroupBy.d.ts +1 -1
  431. package/esm/utils/mergeRefs.d.ts +2 -2
  432. package/esm/utils/previewFile.d.ts +1 -1
  433. package/esm/utils/propTypeChecker.d.ts +6 -2
  434. package/esm/utils/propTypeChecker.js +7 -6
  435. package/esm/utils/reactToString.d.ts +2 -1
  436. package/esm/utils/statusIcons.d.ts +1 -1
  437. package/esm/utils/stringToObject.d.ts +1 -1
  438. package/esm/utils/treeUtils.d.ts +32 -29
  439. package/esm/utils/treeUtils.js +45 -21
  440. package/esm/utils/useControlled.d.ts +6 -1
  441. package/esm/utils/useControlled.js +0 -8
  442. package/esm/utils/useCustom.js +6 -4
  443. package/esm/utils/useElementResize.d.ts +1 -1
  444. package/esm/utils/useElementResize.js +12 -5
  445. package/esm/utils/useFocus.d.ts +2 -2
  446. package/esm/utils/usePortal.d.ts +1 -1
  447. package/esm/utils/useRootClose.d.ts +2 -2
  448. package/esm/utils/useTimeout.d.ts +1 -1
  449. package/esm/utils/useTimeout.js +5 -3
  450. package/package.json +4 -4
  451. package/styles/index.less +1 -0
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
2
2
  var ANONYMOUS = '';
3
3
 
4
4
  function createChainableTypeChecker(validate) {
5
- function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
5
+ function checkType(isRequired, props, propName, componentName, location, propFullName) {
6
6
  componentName = componentName || ANONYMOUS;
7
7
  propFullName = propFullName || propName;
8
8
 
@@ -17,12 +17,13 @@ function createChainableTypeChecker(validate) {
17
17
 
18
18
  return null;
19
19
  } else {
20
- return validate(props, propName, componentName, location, propFullName, secret);
20
+ return validate(props, propName, componentName, location, propFullName);
21
21
  }
22
22
  }
23
23
 
24
- var chainedCheckType = checkType.bind(null, false);
25
- chainedCheckType.isRequired = checkType.bind(null, true);
24
+ var chainedCheckType = Object.assign(checkType.bind(null, false), {
25
+ isRequired: checkType.bind(null, true)
26
+ });
26
27
  return chainedCheckType;
27
28
  }
28
29
 
@@ -31,7 +32,7 @@ export function tupleType() {
31
32
  types[_key] = arguments[_key];
32
33
  }
33
34
 
34
- return createChainableTypeChecker(function (props, propName, componentName, location, propFullName, secret) {
35
+ return createChainableTypeChecker(function (props, propName, componentName, location, propFullName) {
35
36
  var value = props[propName];
36
37
 
37
38
  if (!location) {
@@ -55,7 +56,7 @@ export function tupleType() {
55
56
  }
56
57
 
57
58
  for (var i = 0; i < value.length; ++i) {
58
- var error = types[i](value, i, componentName, 'element', propFullName + "[" + i + "]", secret);
59
+ var error = types[i](value, String(i), componentName, 'element', propFullName + "[" + i + "]");
59
60
 
60
61
  if (error) {
61
62
  return error;
@@ -1 +1,2 @@
1
- export default function reactToString(element: any): any[];
1
+ import React from 'react';
2
+ export default function reactToString(element: React.ReactElement): string[];
@@ -7,6 +7,6 @@ export declare const MESSAGE_STATUS_ICONS: {
7
7
  };
8
8
  export declare const PROGRESS_STATUS_ICON: {
9
9
  success: JSX.Element;
10
- active: any;
10
+ active: null;
11
11
  fail: JSX.Element;
12
12
  };
@@ -1,2 +1,2 @@
1
- declare const _default: (value: any, labelKey?: string, valueKey?: string) => object;
1
+ declare const _default: (value: any, labelKey?: string | undefined, valueKey?: string | undefined) => object | null;
2
2
  export default _default;
@@ -30,7 +30,7 @@ export declare function getNodeParents(node: any, parentKey?: string, valueKey?:
30
30
  * @param node
31
31
  * @param valueKey
32
32
  */
33
- export declare function getNodeParentKeys(nodes: TreeNodesType, node: TreeNodeType, valueKey: string): any[];
33
+ export declare function getNodeParentKeys(nodes: TreeNodesType, node: TreeNodeType, valueKey: string): TreeNodeType[];
34
34
  export declare function hasVisibleChildren(node: TreeNodeType, childrenKey: string): any;
35
35
  /**
36
36
  * shallow equal array
@@ -61,7 +61,7 @@ export declare function createUpdateTreeDataFunction(params: any, { valueKey, ch
61
61
  childrenKey: any;
62
62
  }): (tree: any[]) => any[];
63
63
  export declare function findNodeOfTree(data: any, check: any): any;
64
- export declare function filterNodesOfTree(data: any, check: any): any[];
64
+ export declare function filterNodesOfTree(data: any, check: any): TreeNodeType[];
65
65
  /**
66
66
  * get all focusable items
67
67
  * exclude not visible and disabled node
@@ -70,7 +70,7 @@ export declare function filterNodesOfTree(data: any, check: any): any[];
70
70
  * @param isSearching - component is in Searching
71
71
  * @returns
72
72
  */
73
- export declare const getFocusableItems: (filteredData: ItemDataType[], props: PartialTreeProps, isSearching?: boolean) => any[];
73
+ export declare const getFocusableItems: (filteredData: ItemDataType[], props: PartialTreeProps, isSearching?: boolean | undefined) => TreeNodeType[];
74
74
  /**
75
75
  * return all focusable Item and active Element index
76
76
  * @param focusItemValue
@@ -82,7 +82,7 @@ export declare const getActiveIndex: (focusItemValue: any, focusItems: any[], va
82
82
  * @param flattenNodes - flattenData
83
83
  */
84
84
  export declare const getActiveItem: (focusItemValue: string | number, flattenNodes: TreeNodesType, valueKey: string) => any;
85
- export declare const getElementByDataKey: (dataKey: string, treeNodesRefs: any, selector: string) => Element;
85
+ export declare const getElementByDataKey: (dataKey: string, treeNodesRefs: any, selector: string) => Element | null;
86
86
  /**
87
87
  * focus to specify tree node
88
88
  * @param refKey - target node refKey
@@ -91,7 +91,7 @@ export declare const getElementByDataKey: (dataKey: string, treeNodesRefs: any,
91
91
  */
92
92
  export declare const focusTreeNode: (refKey: string, treeNodeRefs: any, selector: string) => void;
93
93
  export interface FocusPrevOrNextProps {
94
- focusItemValue: string | number;
94
+ focusItemValue: string | number | null;
95
95
  focusableItems: any[];
96
96
  treeNodesRefs: any;
97
97
  selector: string;
@@ -111,7 +111,7 @@ export declare const focusPreviousItem: ({ focusItemValue, focusableItems, treeN
111
111
  export interface ArrowHandlerProps {
112
112
  focusItem: TreeNodeType;
113
113
  expand: boolean;
114
- childrenKey?: string;
114
+ childrenKey: string;
115
115
  onExpand: (focusItem: TreeNodeType) => void;
116
116
  onFocusItem: () => void;
117
117
  }
@@ -137,20 +137,21 @@ export declare function rightArrowHandler({ focusItem, expand, childrenKey, onEx
137
137
  * @param value - activeItem value
138
138
  * @param valueKey
139
139
  */
140
- export declare const getScrollToIndex: (nodes: TreeNodeType[], value: string | number, valueKey: string) => number;
140
+ export declare const getScrollToIndex: (nodes: readonly TreeNodeType[], value: string | number, valueKey: string) => number;
141
141
  /**
142
142
  * when searching, expand state always return true
143
143
  * @param searchKeyword
144
144
  * @param expand
145
145
  */
146
146
  export declare function getExpandWhenSearching(searchKeyword: string, expand: boolean): boolean;
147
- export declare function getTreeActiveNode(nodes: TreeNodesType, value: number | string, valueKey: string): any;
147
+ declare function getTreeActiveNode<T extends number | string | undefined>(nodes: TreeNodesType, value: T, valueKey: string): T extends undefined ? undefined : TreeNodeType | undefined;
148
+ export { getTreeActiveNode };
148
149
  /**
149
150
  * toggle tree node
150
151
  * @param param0
151
152
  */
152
- export declare function toggleExpand({ node, isExpand, expandItemValues, valueKey }: any): unknown[];
153
- export declare function getTreeNodeTitle(label: any): string;
153
+ export declare function toggleExpand({ node, isExpand, expandItemValues, valueKey }: any): ItemDataType[];
154
+ export declare function getTreeNodeTitle(label: any): string | undefined;
154
155
  /**
155
156
  * get all children from flattenNodes object by given parent node
156
157
  * @param nodes
@@ -158,14 +159,14 @@ export declare function getTreeNodeTitle(label: any): string;
158
159
  */
159
160
  export declare function getChildrenByFlattenNodes(nodes: TreeNodesType, parent: TreeNodeType): TreeNodeType[];
160
161
  export declare function useTreeDrag(): {
161
- dragNode: any;
162
- dragOverNodeKey: any;
163
- dragNodeKeys: any[];
164
- dropNodePosition: TREE_NODE_DROP_POSITION;
165
- setDragNode: (node: ItemDataType) => void;
166
- setDragOverNodeKey: React.Dispatch<any>;
167
- setDragNodeKeys: React.Dispatch<React.SetStateAction<any[]>>;
168
- setDropNodePosition: React.Dispatch<React.SetStateAction<TREE_NODE_DROP_POSITION>>;
162
+ dragNode: ItemDataType | null;
163
+ dragOverNodeKey: null;
164
+ dragNodeKeys: (string | number)[];
165
+ dropNodePosition: TREE_NODE_DROP_POSITION | null;
166
+ setDragNode: (node: ItemDataType | null) => void;
167
+ setDragOverNodeKey: React.Dispatch<React.SetStateAction<null>>;
168
+ setDragNodeKeys: React.Dispatch<React.SetStateAction<(string | number)[]>>;
169
+ setDropNodePosition: React.Dispatch<React.SetStateAction<TREE_NODE_DROP_POSITION | null>>;
169
170
  };
170
171
  interface FlattenTreeDataProps {
171
172
  data: TreeNodeType[];
@@ -189,44 +190,44 @@ interface UnSerializeListProps {
189
190
  export declare function useFlattenTreeData({ data, labelKey, valueKey, childrenKey, uncheckableItemValues, callback }: FlattenTreeDataProps): {
190
191
  forceUpdate: () => void;
191
192
  flattenNodes: TreeNodesType;
192
- flattenTreeData: (treeData: TreeNodeType[], ref: string, parent?: TreeNodeType, layer?: any) => any[];
193
- serializeListOnlyParent: (nodes: TreeNodesType, key: string) => any[];
193
+ flattenTreeData: (treeData: TreeNodeType[], ref: string, parent?: TreeNodeType | undefined, layer?: any) => never[] | undefined;
194
+ serializeListOnlyParent: (nodes: TreeNodesType, key: string) => (string | number)[];
194
195
  unSerializeList: ({ nodes, key, value, cascade, uncheckableItemValues }: UnSerializeListProps) => void;
195
196
  formatVirtualizedTreeData: (nodes: TreeNodesType, data: any[], expandItemValues: ItemDataType[], options: {
196
197
  cascade?: boolean;
197
198
  searchKeyword?: string;
198
- }) => any[];
199
+ }) => TreeNodeType[];
199
200
  };
200
201
  /**
201
202
  * A hook that saving every tree node ref
202
203
  */
203
204
  export declare function useTreeNodeRefs(): {
204
205
  treeNodesRefs: {};
205
- saveTreeNodeRef: (refKey: string, ref: React.Ref<any>) => void;
206
+ saveTreeNodeRef: (ref: React.Ref<any>, refKey?: string | undefined) => void;
206
207
  };
207
208
  interface TreeSearchProps {
208
209
  labelKey: string;
209
210
  childrenKey: string;
210
- searchKeyword: string;
211
+ searchKeyword?: string;
211
212
  data: ItemDataType[];
212
- searchBy: (keyword: any, label: any, item: any) => boolean;
213
+ searchBy?: (keyword: any, label: any, item: any) => boolean;
213
214
  callback?: (keyword: string, data: ItemDataType[], event: React.SyntheticEvent) => void;
214
215
  }
215
216
  /**
216
217
  * A hook that handles tree search filter options
217
218
  * @param props
218
219
  */
219
- export declare function useTreeSearch(props: TreeSearchProps): {
220
+ export declare function useTreeSearch<T extends HTMLElement = HTMLInputElement>(props: TreeSearchProps): {
220
221
  searchKeywordState: string;
221
222
  filteredData: ItemDataType[];
222
223
  setFilteredData: (data: ItemDataType[], searchKeyword: string) => void;
223
224
  setSearchKeyword: React.Dispatch<React.SetStateAction<string>>;
224
- handleSearch: (searchKeyword: string, event: React.SyntheticEvent) => void;
225
+ handleSearch: (searchKeyword: string, event: React.ChangeEvent<T>) => void;
225
226
  };
226
227
  export declare function useGetTreeNodeChildren(treeData: ItemDataType[], valueKey: string, childrenKey: string): {
227
228
  data: ItemDataType[];
228
229
  setData: React.Dispatch<React.SetStateAction<ItemDataType[]>>;
229
- loadingNodeValues: any[];
230
+ loadingNodeValues: never[];
230
231
  loadChildren: (node: any, getChildren: any) => void;
231
232
  };
232
233
  export interface FocusToTreeNodeProps {
@@ -236,7 +237,7 @@ export interface FocusToTreeNodeProps {
236
237
  virtualized: boolean;
237
238
  container: HTMLDivElement;
238
239
  list: ListInstance;
239
- formattedNodes: TreeNodesType[];
240
+ formattedNodes: TreeNodeType[];
240
241
  }
241
242
  /**
242
243
  * Focus to active tree node.
@@ -244,4 +245,6 @@ export interface FocusToTreeNodeProps {
244
245
  */
245
246
  export declare function focusToActiveTreeNode({ list, valueKey, activeNode, virtualized, container, selector, formattedNodes }: FocusToTreeNodeProps): void;
246
247
  export declare function isSearching(searchKeyword?: string): boolean;
247
- export {};
248
+ export declare function getTreeNodeIndent(rtl: any, layer: any, absolute?: boolean): {
249
+ [x: string]: number;
250
+ };
@@ -12,6 +12,7 @@ import { getNodeCheckState } from '../CheckTreePicker/utils';
12
12
  import { TREE_NODE_DROP_POSITION, shallowEqual } from '../utils';
13
13
  import { shouldDisplay } from '../Picker';
14
14
  import reactToString from './reactToString';
15
+ import { TREE_NODE_PADDING, TREE_NODE_ROOT_PADDING } from './constants';
15
16
  // gap of tree node
16
17
  var TREE_NODE_GAP = 4;
17
18
  /**
@@ -568,19 +569,20 @@ export var getScrollToIndex = function getScrollToIndex(nodes, value, valueKey)
568
569
  export function getExpandWhenSearching(searchKeyword, expand) {
569
570
  return isSearching(searchKeyword) ? true : expand;
570
571
  }
571
- export function getTreeActiveNode(nodes, value, valueKey) {
572
- var activeNode = null;
573
572
 
574
- if (!_isUndefined(value)) {
575
- Object.keys(nodes).forEach(function (refKey) {
576
- if (shallowEqual(nodes[refKey][valueKey], value)) {
577
- activeNode = nodes[refKey];
578
- }
579
- });
573
+ function getTreeActiveNode(nodes, value, valueKey) {
574
+ if (_isUndefined(value)) {
575
+ return undefined;
580
576
  }
581
577
 
582
- return activeNode;
578
+ for (var refKey in nodes) {
579
+ if (shallowEqual(nodes[refKey][valueKey], value)) {
580
+ return nodes[refKey];
581
+ }
582
+ }
583
583
  }
584
+
585
+ export { getTreeActiveNode };
584
586
  /**
585
587
  * toggle tree node
586
588
  * @param param0
@@ -617,7 +619,7 @@ export function getTreeNodeTitle(label) {
617
619
  */
618
620
 
619
621
  export function getChildrenByFlattenNodes(nodes, parent) {
620
- if (_isNil(nodes[parent.refKey])) {
622
+ if (!_isNil(parent.refKey) && _isNil(nodes[parent.refKey])) {
621
623
  return [];
622
624
  }
623
625
 
@@ -700,7 +702,7 @@ export function useFlattenTreeData(_ref8) {
700
702
  node.refKey = refKey;
701
703
  flattenNodes[refKey] = _extends((_extends2 = {
702
704
  layer: layer
703
- }, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.refKey = refKey, _extends2.uncheckable = uncheckableItemValues.some(function (value) {
705
+ }, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.uncheckable = uncheckableItemValues.some(function (value) {
704
706
  return shallowEqual(node[valueKey], value);
705
707
  }), _extends2), node);
706
708
 
@@ -717,10 +719,8 @@ export function useFlattenTreeData(_ref8) {
717
719
  Object.keys(nodes).forEach(function (refKey) {
718
720
  var currentNode = nodes[refKey];
719
721
 
720
- if (currentNode.parent) {
721
- var _currentNode$parent;
722
-
723
- var parentNode = nodes[(_currentNode$parent = currentNode.parent) === null || _currentNode$parent === void 0 ? void 0 : _currentNode$parent.refKey];
722
+ if (!_isNil(currentNode.parent) && !_isNil(currentNode.parent.refKey)) {
723
+ var parentNode = nodes[currentNode.parent.refKey];
724
724
 
725
725
  if (currentNode[key]) {
726
726
  if (!(parentNode !== null && parentNode !== void 0 && parentNode.checkAll)) {
@@ -752,7 +752,7 @@ export function useFlattenTreeData(_ref8) {
752
752
  Object.keys(nodes).forEach(function (refKey) {
753
753
  var node = nodes[refKey];
754
754
 
755
- if (cascade && node.parent) {
755
+ if (cascade && !_isNil(node.parent) && !_isNil(node.parent.refKey)) {
756
756
  node[key] = nodes[node.parent.refKey][key];
757
757
  } else {
758
758
  node[key] = false;
@@ -833,8 +833,8 @@ export function useFlattenTreeData(_ref8) {
833
833
  export function useTreeNodeRefs() {
834
834
  var treeNodeRefs = useRef({});
835
835
 
836
- var saveTreeNodeRef = function saveTreeNodeRef(refKey, ref) {
837
- if (refKey) {
836
+ var saveTreeNodeRef = function saveTreeNodeRef(ref, refKey) {
837
+ if (!_isNil(refKey)) {
838
838
  treeNodeRefs.current[refKey] = ref;
839
839
  }
840
840
  };
@@ -876,11 +876,15 @@ export function useTreeSearch(props) {
876
876
  return data;
877
877
  }, [childrenKey, labelKey, searchBy]); // Use search keywords to filter options.
878
878
 
879
- var _useState5 = useState(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : ''),
879
+ var _useState5 = useState(function () {
880
+ return searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '';
881
+ }),
880
882
  searchKeywordState = _useState5[0],
881
883
  setSearchKeyword = _useState5[1];
882
884
 
883
- var _useState6 = useState(filterVisibleData(data, searchKeywordState)),
885
+ var _useState6 = useState(function () {
886
+ return filterVisibleData(data, searchKeywordState);
887
+ }),
884
888
  filteredData = _useState6[0],
885
889
  setFilteredData = _useState6[1];
886
890
 
@@ -972,8 +976,10 @@ export function focusToActiveTreeNode(_ref10) {
972
976
  if (!container) return;
973
977
 
974
978
  if (virtualized && activeNode) {
979
+ var _list$scrollToRow;
980
+
975
981
  var scrollIndex = getScrollToIndex(formattedNodes, activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey], valueKey);
976
- list.scrollToRow(scrollIndex);
982
+ (_list$scrollToRow = list.scrollToRow) === null || _list$scrollToRow === void 0 ? void 0 : _list$scrollToRow.call(list, scrollIndex);
977
983
  return;
978
984
  }
979
985
 
@@ -987,4 +993,22 @@ export function focusToActiveTreeNode(_ref10) {
987
993
  }
988
994
  export function isSearching(searchKeyword) {
989
995
  return !_isEmpty(searchKeyword);
996
+ }
997
+ export function getTreeNodeIndent(rtl, layer, absolute) {
998
+ var _ref12;
999
+
1000
+ if (absolute === void 0) {
1001
+ absolute = false;
1002
+ }
1003
+
1004
+ // layer start from 1
1005
+ var offset = layer * TREE_NODE_PADDING + TREE_NODE_ROOT_PADDING;
1006
+
1007
+ if (absolute) {
1008
+ var _ref11;
1009
+
1010
+ return _ref11 = {}, _ref11[rtl ? 'right' : 'left'] = offset, _ref11;
1011
+ }
1012
+
1013
+ return _ref12 = {}, _ref12[rtl ? 'paddingRight' : 'paddingLeft'] = offset, _ref12;
990
1014
  }
@@ -1,4 +1,5 @@
1
1
  /// <reference types="react" />
2
+ declare type InferDefined<T> = T extends infer U | undefined ? U : never;
2
3
  /**
3
4
  * A hook for controlled value management.
4
5
  * In the case of passing the controlled value, the controlled value is returned, otherwise the value in state is returned.
@@ -7,5 +8,9 @@
7
8
  * @param defaultValue
8
9
  * @param formatValue
9
10
  */
10
- declare function useControlled<T = any>(controlledValue: T, defaultValue: T): [T, (value: React.SetStateAction<T>) => void, boolean];
11
+ declare function useControlled<V = any, D = V>(controlledValue: V, defaultValue: D): [
12
+ V extends undefined ? D : InferDefined<V>,
13
+ (value: React.SetStateAction<V | null>) => void,
14
+ boolean
15
+ ];
11
16
  export default useControlled;
@@ -1,12 +1,4 @@
1
1
  import { useRef, useState, useCallback } from 'react';
2
- /**
3
- * A hook for controlled value management.
4
- * In the case of passing the controlled value, the controlled value is returned, otherwise the value in state is returned.
5
- * Generally used for a component including controlled and uncontrolled modes.
6
- * @param controlledValue
7
- * @param defaultValue
8
- * @param formatValue
9
- */
10
2
 
11
3
  function useControlled(controlledValue, defaultValue) {
12
4
  var controlledRef = useRef(false);
@@ -21,6 +21,8 @@ var getDefaultRTL = function getDefaultRTL() {
21
21
 
22
22
 
23
23
  function useCustom(keys, overrideLocale) {
24
+ var _locale$Calendar2, _locale$Calendar4;
25
+
24
26
  var _useContext = useContext(CustomContext),
25
27
  _useContext$locale = _useContext.locale,
26
28
  locale = _useContext$locale === void 0 ? defaultLocale : _useContext$locale,
@@ -44,14 +46,14 @@ function useCustom(keys, overrideLocale) {
44
46
  return format(date, formatStr, {
45
47
  locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar = locale.Calendar) === null || _locale$Calendar === void 0 ? void 0 : _locale$Calendar.dateLocale
46
48
  });
47
- }, [locale.Calendar.dateLocale]);
49
+ }, [(_locale$Calendar2 = locale.Calendar) === null || _locale$Calendar2 === void 0 ? void 0 : _locale$Calendar2.dateLocale]);
48
50
  var defaultParseDate = useCallback(function (dateString, formatString) {
49
- var _locale$Calendar2;
51
+ var _locale$Calendar3;
50
52
 
51
53
  return parse(dateString, formatString, new Date(), {
52
- locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar2 = locale.Calendar) === null || _locale$Calendar2 === void 0 ? void 0 : _locale$Calendar2.dateLocale
54
+ locale: locale === null || locale === void 0 ? void 0 : (_locale$Calendar3 = locale.Calendar) === null || _locale$Calendar3 === void 0 ? void 0 : _locale$Calendar3.dateLocale
53
55
  });
54
- }, [locale.Calendar.dateLocale]);
56
+ }, [(_locale$Calendar4 = locale.Calendar) === null || _locale$Calendar4 === void 0 ? void 0 : _locale$Calendar4.dateLocale]);
55
57
  return {
56
58
  locale: componentLocale,
57
59
  rtl: rtl,
@@ -5,4 +5,4 @@
5
5
  * @param eventTarget The target to listen for events on
6
6
  * @param listener An event handler
7
7
  */
8
- export default function useElementResize(eventTarget: EventTarget | (() => EventTarget), listener: EventListenerOrEventListenerObject): void;
8
+ export default function useElementResize(eventTarget: Element | (() => Element), listener: ResizeObserverCallback): void;
@@ -1,5 +1,5 @@
1
- import { useEffect } from 'react';
2
- import bindElementResize, { unbind } from 'element-resize-event';
1
+ import { useEffect, useRef } from 'react';
2
+ import { ResizeObserver } from '@juggle/resize-observer';
3
3
  /**
4
4
  * Attach the event handler directly to the specified DOM element,
5
5
  * and it will be triggered when the size of the DOM element is changed.
@@ -9,11 +9,18 @@ import bindElementResize, { unbind } from 'element-resize-event';
9
9
  */
10
10
 
11
11
  export default function useElementResize(eventTarget, listener) {
12
+ var resizeObserver = useRef();
12
13
  useEffect(function () {
13
- var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;
14
- bindElementResize(target, listener);
14
+ if (!resizeObserver.current) {
15
+ var target = typeof eventTarget === 'function' ? eventTarget() : eventTarget;
16
+ resizeObserver.current = new ResizeObserver(listener);
17
+ resizeObserver.current.observe(target);
18
+ }
19
+
15
20
  return function () {
16
- return unbind(target);
21
+ var _resizeObserver$curre;
22
+
23
+ (_resizeObserver$curre = resizeObserver.current) === null || _resizeObserver$curre === void 0 ? void 0 : _resizeObserver$curre.disconnect();
17
24
  };
18
25
  }, [eventTarget, listener]);
19
26
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export default function useFocus<E extends HTMLElement>(elementRef: React.MutableRefObject<E>): {
2
+ export default function useFocus<E extends HTMLElement>(elementRef: React.RefObject<E>): {
3
3
  grab: () => void;
4
- release: (options?: FocusOptions) => void;
4
+ release: (options?: FocusOptions | undefined) => void;
5
5
  };
@@ -4,7 +4,7 @@ interface PortalProps {
4
4
  container?: HTMLElement | (() => HTMLElement);
5
5
  }
6
6
  declare function usePortal(props?: PortalProps): {
7
- target: Element | HTMLElement;
7
+ target: HTMLElement | null;
8
8
  Portal: React.FC<any>;
9
9
  };
10
10
  export default usePortal;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  declare type TargetType = React.RefObject<Element> | Element | null | undefined;
3
3
  interface Options {
4
4
  disabled: boolean;
@@ -16,5 +16,5 @@ interface Options {
16
16
  * @param param1
17
17
  * @todo Allow different behaviors based on whether clicked element is focusable
18
18
  */
19
- declare function useRootClose(onRootClose: (e: Event) => void, { disabled, triggerTarget, overlayTarget, listenEscape }: Options): void;
19
+ declare function useRootClose(onRootClose: React.ReactEventHandler | undefined, { disabled, triggerTarget, overlayTarget, listenEscape }: Options): void;
20
20
  export default useRootClose;
@@ -8,5 +8,5 @@ export interface UseTimeoutFnReturn {
8
8
  * @param ms Milliseconds of the timer
9
9
  * @param open Whether to open the timer
10
10
  */
11
- declare function useTimeout(fn: () => void, ms?: number, open?: boolean): UseTimeoutFnReturn;
11
+ declare function useTimeout(fn: (() => void) | undefined, ms?: number, open?: boolean): UseTimeoutFnReturn;
12
12
  export default useTimeout;
@@ -20,9 +20,11 @@ function useTimeout(fn, ms, open) {
20
20
  timeout.current && clearTimeout(timeout.current);
21
21
  }, []);
22
22
  var set = useCallback(function () {
23
- timeout.current = open && setTimeout(function () {
24
- return fn === null || fn === void 0 ? void 0 : fn();
25
- }, ms);
23
+ if (open) {
24
+ timeout.current = setTimeout(function () {
25
+ return fn === null || fn === void 0 ? void 0 : fn();
26
+ }, ms);
27
+ }
26
28
  }, [ms, fn, open]);
27
29
  useEffect(function () {
28
30
  set();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsuite",
3
- "version": "5.2.1",
3
+ "version": "5.3.0",
4
4
  "description": "A suite of react components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "esm/index.js",
@@ -25,19 +25,19 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@babel/runtime": "^7.8.4",
28
+ "@juggle/resize-observer": "^3.3.1",
28
29
  "@rsuite/icons": "^1.0.2",
29
30
  "@types/chai": "^4.2.18",
30
31
  "@types/lodash": "^4.14.134",
31
- "@types/prop-types": "^15.7.1",
32
+ "@types/prop-types": "^15.7.4",
32
33
  "@types/react-virtualized": "^9.21.11",
33
34
  "classnames": "^2.3.1",
34
35
  "date-fns": "^2.13.0",
35
36
  "dom-lib": "^3.0.0",
36
- "element-resize-event": "^3.0.6",
37
37
  "lodash": "^4.17.11",
38
38
  "prop-types": "^15.7.2",
39
39
  "react-virtualized": "^9.22.3",
40
- "rsuite-table": "^5.0.3",
40
+ "rsuite-table": "^5.2.2",
41
41
  "schema-typed": "^2.0.2"
42
42
  },
43
43
  "peerDependencies": {
package/styles/index.less CHANGED
@@ -4,6 +4,7 @@
4
4
  @import '../Animation/styles/index';
5
5
  @import '../AutoComplete/styles/index';
6
6
  @import '../Avatar/styles/index';
7
+ @import '../AvatarGroup/styles/index';
7
8
  @import '../Badge/styles/index';
8
9
  @import '../Breadcrumb/styles/index';
9
10
  @import '../Button/styles/index';