rsuite 5.2.4 → 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 (433) 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/ButtonGroup/styles/index.less +0 -18
  5. package/CHANGELOG.md +15 -0
  6. package/CheckTreePicker/styles/index.less +14 -1
  7. package/TreePicker/styles/index.less +10 -0
  8. package/cjs/@types/common.d.ts +9 -8
  9. package/cjs/@types/utils.d.ts +12 -0
  10. package/cjs/Affix/Affix.js +5 -5
  11. package/cjs/Animation/Transition.d.ts +21 -12
  12. package/cjs/Animation/Transition.js +4 -1
  13. package/cjs/AutoComplete/AutoComplete.js +1 -1
  14. package/cjs/AutoComplete/utils.d.ts +1 -1
  15. package/cjs/Avatar/Avatar.js +10 -3
  16. package/cjs/AvatarGroup/AvatarGroup.d.ts +15 -0
  17. package/cjs/AvatarGroup/AvatarGroup.js +71 -0
  18. package/cjs/AvatarGroup/index.d.ts +3 -0
  19. package/cjs/AvatarGroup/index.js +11 -0
  20. package/cjs/Breadcrumb/Breadcrumb.js +1 -1
  21. package/cjs/Button/Button.js +8 -2
  22. package/cjs/ButtonGroup/ButtonGroup.js +8 -2
  23. package/cjs/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  24. package/cjs/ButtonGroup/ButtonGroupContext.js +13 -0
  25. package/cjs/ButtonGroup/index.d.ts +2 -0
  26. package/cjs/ButtonGroup/index.js +3 -0
  27. package/cjs/Calendar/Calendar.d.ts +4 -4
  28. package/cjs/Calendar/Calendar.js +5 -2
  29. package/cjs/Calendar/CalendarContext.js +1 -1
  30. package/cjs/Calendar/TableRow.js +1 -1
  31. package/cjs/Calendar/TimeDropdown.js +6 -5
  32. package/cjs/Calendar/types.d.ts +2 -2
  33. package/cjs/Calendar/useCalendarDate.d.ts +2 -2
  34. package/cjs/Carousel/Carousel.d.ts +1 -1
  35. package/cjs/Carousel/Carousel.js +1 -1
  36. package/cjs/Cascader/Cascader.d.ts +1 -1
  37. package/cjs/Cascader/Cascader.js +10 -10
  38. package/cjs/Cascader/DropdownMenu.d.ts +5 -4
  39. package/cjs/Cascader/utils.d.ts +3 -3
  40. package/cjs/CheckPicker/CheckPicker.js +4 -4
  41. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  42. package/cjs/CheckTreePicker/CheckTreeNode.js +7 -9
  43. package/cjs/CheckTreePicker/CheckTreePicker.js +29 -25
  44. package/cjs/CheckTreePicker/utils.d.ts +3 -1
  45. package/cjs/CheckTreePicker/utils.js +12 -10
  46. package/cjs/Checkbox/Checkbox.d.ts +1 -1
  47. package/cjs/CustomProvider/CustomProvider.d.ts +31 -57
  48. package/cjs/DOMHelper/index.d.ts +12 -12
  49. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  50. package/cjs/DatePicker/DatePicker.js +15 -9
  51. package/cjs/DatePicker/Toolbar.d.ts +12 -9
  52. package/cjs/DatePicker/Toolbar.js +6 -8
  53. package/cjs/DatePicker/types.d.ts +4 -4
  54. package/cjs/DatePicker/utils.d.ts +4 -3
  55. package/cjs/DateRangePicker/Calendar.d.ts +8 -7
  56. package/cjs/DateRangePicker/Calendar.js +1 -1
  57. package/cjs/DateRangePicker/DateRangePicker.d.ts +6 -6
  58. package/cjs/DateRangePicker/DateRangePicker.js +105 -108
  59. package/cjs/DateRangePicker/types.d.ts +2 -1
  60. package/cjs/DateRangePicker/utils.d.ts +6 -6
  61. package/cjs/DateRangePicker/utils.js +7 -2
  62. package/cjs/Disclosure/Disclosure.js +4 -2
  63. package/cjs/Disclosure/DisclosureButton.js +9 -7
  64. package/cjs/Disclosure/DisclosureContent.js +4 -6
  65. package/cjs/Disclosure/DisclosureContext.d.ts +2 -2
  66. package/cjs/Disclosure/useDisclosureContext.d.ts +2 -0
  67. package/cjs/Disclosure/useDisclosureContext.js +20 -0
  68. package/cjs/Dropdown/Dropdown.d.ts +1 -1
  69. package/cjs/Dropdown/DropdownContext.d.ts +2 -2
  70. package/cjs/Dropdown/DropdownItem.js +1 -1
  71. package/cjs/Dropdown/DropdownMenu.d.ts +3 -3
  72. package/cjs/Dropdown/DropdownState.d.ts +1 -1
  73. package/cjs/Dropdown/DropdownToggle.js +2 -1
  74. package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
  75. package/cjs/Form/Form.js +1 -1
  76. package/cjs/Form/FormContext.d.ts +1 -1
  77. package/cjs/FormControl/FormControl.d.ts +1 -1
  78. package/cjs/FormControl/FormControl.js +5 -4
  79. package/cjs/FormGroup/FormGroup.d.ts +1 -1
  80. package/cjs/Input/Input.d.ts +3 -2
  81. package/cjs/InputGroup/InputGroup.d.ts +1 -1
  82. package/cjs/InputNumber/InputNumber.js +6 -2
  83. package/cjs/InputPicker/InputAutosize.js +4 -4
  84. package/cjs/InputPicker/InputPicker.d.ts +2 -2
  85. package/cjs/InputPicker/InputPicker.js +15 -10
  86. package/cjs/List/ListContext.d.ts +1 -1
  87. package/cjs/List/ListContext.js +8 -1
  88. package/cjs/List/helper/AutoScroller.js +4 -2
  89. package/cjs/List/helper/useManager.d.ts +3 -3
  90. package/cjs/List/helper/useManager.js +1 -1
  91. package/cjs/List/helper/useSortHelper.d.ts +3 -3
  92. package/cjs/List/helper/useSortHelper.js +6 -4
  93. package/cjs/List/helper/utils.d.ts +2 -2
  94. package/cjs/MaskedInput/TextMask.d.ts +5 -5
  95. package/cjs/MaskedInput/adjustCaretPosition.d.ts +6 -6
  96. package/cjs/MaskedInput/conformToMask.js +5 -4
  97. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  98. package/cjs/MaskedInput/utilities.d.ts +1 -1
  99. package/cjs/Menu/Menu.js +14 -7
  100. package/cjs/Menu/MenuContext.d.ts +1 -1
  101. package/cjs/Menu/MenuItem.d.ts +1 -1
  102. package/cjs/Menu/MenuItem.js +19 -15
  103. package/cjs/Menu/Menubar.js +8 -8
  104. package/cjs/Menu/useMenu.js +17 -7
  105. package/cjs/Modal/Modal.js +12 -6
  106. package/cjs/Modal/ModalContext.d.ts +2 -2
  107. package/cjs/Modal/utils.d.ts +1 -1
  108. package/cjs/Modal/utils.js +3 -5
  109. package/cjs/MultiCascader/DropdownMenu.d.ts +4 -4
  110. package/cjs/MultiCascader/MultiCascader.js +6 -6
  111. package/cjs/MultiCascader/utils.d.ts +14 -14
  112. package/cjs/Nav/Nav.d.ts +1 -1
  113. package/cjs/Nav/NavContext.d.ts +1 -1
  114. package/cjs/Nav/NavItem.d.ts +1 -1
  115. package/cjs/Navbar/Navbar.js +1 -1
  116. package/cjs/Navbar/NavbarItem.d.ts +1 -1
  117. package/cjs/Overlay/Modal.d.ts +2 -2
  118. package/cjs/Overlay/Modal.js +41 -31
  119. package/cjs/Overlay/ModalManager.d.ts +17 -8
  120. package/cjs/Overlay/ModalManager.js +11 -20
  121. package/cjs/Overlay/Overlay.d.ts +2 -2
  122. package/cjs/Overlay/Overlay.js +1 -1
  123. package/cjs/Overlay/OverlayTrigger.d.ts +11 -11
  124. package/cjs/Overlay/OverlayTrigger.js +14 -6
  125. package/cjs/Overlay/Position.d.ts +3 -3
  126. package/cjs/Overlay/Position.js +14 -8
  127. package/cjs/Overlay/positionUtils.d.ts +1 -1
  128. package/cjs/Overlay/positionUtils.js +8 -8
  129. package/cjs/Pagination/Pagination.d.ts +1 -1
  130. package/cjs/Pagination/PaginationButton.d.ts +3 -3
  131. package/cjs/Pagination/PaginationGroup.js +5 -3
  132. package/cjs/Panel/Panel.d.ts +1 -1
  133. package/cjs/Panel/Panel.js +2 -2
  134. package/cjs/PanelGroup/PanelGroup.d.ts +2 -2
  135. package/cjs/Picker/DropdownMenu.d.ts +8 -5
  136. package/cjs/Picker/DropdownMenu.js +5 -5
  137. package/cjs/Picker/PickerOverlay.js +4 -3
  138. package/cjs/Picker/PickerToggle.js +4 -3
  139. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -6
  140. package/cjs/Picker/SearchBar.d.ts +1 -1
  141. package/cjs/Picker/SelectedElement.js +2 -1
  142. package/cjs/Picker/propTypes.d.ts +2 -2
  143. package/cjs/Picker/utils.d.ts +13 -13
  144. package/cjs/Picker/utils.js +22 -18
  145. package/cjs/Placeholder/PlaceholderGrid.js +1 -1
  146. package/cjs/Plaintext/Plaintext.js +2 -1
  147. package/cjs/Radio/Radio.d.ts +1 -1
  148. package/cjs/RadioGroup/RadioGroup.d.ts +2 -2
  149. package/cjs/RadioGroup/RadioGroup.js +1 -1
  150. package/cjs/RangeSlider/RangeSlider.d.ts +2 -2
  151. package/cjs/RangeSlider/RangeSlider.js +6 -4
  152. package/cjs/Rate/Character.js +4 -2
  153. package/cjs/Rate/Rate.js +2 -1
  154. package/cjs/Ripple/Ripple.js +1 -1
  155. package/cjs/SelectPicker/SelectPicker.js +4 -4
  156. package/cjs/Sidenav/Node.d.ts +1 -1
  157. package/cjs/Sidenav/Sidenav.d.ts +4 -4
  158. package/cjs/Sidenav/Sidenav.js +5 -2
  159. package/cjs/Sidenav/SidenavDropdown.js +11 -8
  160. package/cjs/Sidenav/SidenavDropdownItem.js +10 -5
  161. package/cjs/Sidenav/SidenavDropdownMenu.js +9 -5
  162. package/cjs/Sidenav/SidenavItem.d.ts +1 -1
  163. package/cjs/Sidenav/SidenavItem.js +4 -0
  164. package/cjs/Slider/Graduated.d.ts +5 -5
  165. package/cjs/Slider/Handle.d.ts +1 -1
  166. package/cjs/Slider/Handle.js +10 -6
  167. package/cjs/Slider/Mark.d.ts +1 -1
  168. package/cjs/Slider/Slider.d.ts +1 -1
  169. package/cjs/Slider/Slider.js +2 -2
  170. package/cjs/Slider/utils.d.ts +2 -1
  171. package/cjs/Slider/utils.js +4 -5
  172. package/cjs/Steps/StepItem.js +2 -2
  173. package/cjs/TagInput/index.js +1 -1
  174. package/cjs/Toggle/Toggle.js +1 -1
  175. package/cjs/Tree/Tree.d.ts +3 -1
  176. package/cjs/TreePicker/TreeNode.js +6 -8
  177. package/cjs/TreePicker/TreePicker.js +31 -25
  178. package/cjs/Uploader/UploadFileItem.d.ts +1 -1
  179. package/cjs/Uploader/UploadFileItem.js +2 -2
  180. package/cjs/Uploader/UploadTrigger.d.ts +1 -1
  181. package/cjs/Uploader/UploadTrigger.js +2 -3
  182. package/cjs/Uploader/Uploader.d.ts +5 -5
  183. package/cjs/Uploader/Uploader.js +1 -2
  184. package/cjs/index.d.ts +2 -0
  185. package/cjs/index.js +5 -1
  186. package/cjs/locales/index.d.ts +3 -3
  187. package/cjs/toaster/ToastContainer.d.ts +1 -1
  188. package/cjs/toaster/ToastContainer.js +1 -1
  189. package/cjs/toaster/toaster.js +3 -1
  190. package/cjs/utils/BrowserDetection.js +1 -1
  191. package/cjs/utils/ReactChildren.d.ts +2 -2
  192. package/cjs/utils/ajaxUpload.d.ts +1 -1
  193. package/cjs/utils/ajaxUpload.js +5 -4
  194. package/cjs/utils/appendTooltip.d.ts +1 -1
  195. package/cjs/utils/constants.d.ts +4 -4
  196. package/cjs/utils/createChainedFunction.d.ts +1 -1
  197. package/cjs/utils/getDataGroupBy.d.ts +1 -1
  198. package/cjs/utils/mergeRefs.d.ts +2 -2
  199. package/cjs/utils/previewFile.d.ts +1 -1
  200. package/cjs/utils/propTypeChecker.d.ts +6 -2
  201. package/cjs/utils/propTypeChecker.js +7 -6
  202. package/cjs/utils/reactToString.d.ts +2 -1
  203. package/cjs/utils/statusIcons.d.ts +1 -1
  204. package/cjs/utils/stringToObject.d.ts +1 -1
  205. package/cjs/utils/treeUtils.d.ts +32 -29
  206. package/cjs/utils/treeUtils.js +46 -23
  207. package/cjs/utils/useControlled.d.ts +6 -1
  208. package/cjs/utils/useControlled.js +0 -8
  209. package/cjs/utils/useCustom.js +6 -4
  210. package/cjs/utils/useFocus.d.ts +2 -2
  211. package/cjs/utils/usePortal.d.ts +1 -1
  212. package/cjs/utils/useRootClose.d.ts +2 -2
  213. package/cjs/utils/useTimeout.d.ts +1 -1
  214. package/cjs/utils/useTimeout.js +5 -3
  215. package/dist/rsuite-rtl.css +40 -159
  216. package/dist/rsuite-rtl.min.css +1 -1
  217. package/dist/rsuite-rtl.min.css.map +1 -1
  218. package/dist/rsuite.css +40 -159
  219. package/dist/rsuite.js +146 -102
  220. package/dist/rsuite.js.map +1 -1
  221. package/dist/rsuite.min.css +1 -1
  222. package/dist/rsuite.min.css.map +1 -1
  223. package/dist/rsuite.min.js +1 -1
  224. package/dist/rsuite.min.js.map +1 -1
  225. package/esm/@types/common.d.ts +9 -8
  226. package/esm/@types/utils.d.ts +12 -0
  227. package/esm/Affix/Affix.js +5 -5
  228. package/esm/Animation/Transition.d.ts +21 -12
  229. package/esm/Animation/Transition.js +4 -1
  230. package/esm/AutoComplete/AutoComplete.js +1 -1
  231. package/esm/AutoComplete/utils.d.ts +1 -1
  232. package/esm/Avatar/Avatar.js +7 -3
  233. package/esm/AvatarGroup/AvatarGroup.d.ts +15 -0
  234. package/esm/AvatarGroup/AvatarGroup.js +54 -0
  235. package/esm/AvatarGroup/index.d.ts +3 -0
  236. package/esm/AvatarGroup/index.js +2 -0
  237. package/esm/Breadcrumb/Breadcrumb.js +1 -1
  238. package/esm/Button/Button.js +6 -2
  239. package/esm/ButtonGroup/ButtonGroup.js +7 -2
  240. package/esm/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  241. package/esm/ButtonGroup/ButtonGroupContext.js +3 -0
  242. package/esm/ButtonGroup/index.d.ts +2 -0
  243. package/esm/ButtonGroup/index.js +2 -0
  244. package/esm/Calendar/Calendar.d.ts +4 -4
  245. package/esm/Calendar/Calendar.js +5 -2
  246. package/esm/Calendar/CalendarContext.js +1 -1
  247. package/esm/Calendar/TableRow.js +1 -1
  248. package/esm/Calendar/TimeDropdown.js +5 -4
  249. package/esm/Calendar/types.d.ts +2 -2
  250. package/esm/Calendar/useCalendarDate.d.ts +2 -2
  251. package/esm/Carousel/Carousel.d.ts +1 -1
  252. package/esm/Carousel/Carousel.js +1 -1
  253. package/esm/Cascader/Cascader.d.ts +1 -1
  254. package/esm/Cascader/Cascader.js +10 -10
  255. package/esm/Cascader/DropdownMenu.d.ts +5 -4
  256. package/esm/Cascader/utils.d.ts +3 -3
  257. package/esm/CheckPicker/CheckPicker.js +4 -4
  258. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  259. package/esm/CheckTreePicker/CheckTreeNode.js +4 -7
  260. package/esm/CheckTreePicker/CheckTreePicker.js +28 -23
  261. package/esm/CheckTreePicker/utils.d.ts +3 -1
  262. package/esm/CheckTreePicker/utils.js +12 -10
  263. package/esm/Checkbox/Checkbox.d.ts +1 -1
  264. package/esm/CustomProvider/CustomProvider.d.ts +31 -57
  265. package/esm/DOMHelper/index.d.ts +12 -12
  266. package/esm/DatePicker/DatePicker.d.ts +1 -1
  267. package/esm/DatePicker/DatePicker.js +14 -9
  268. package/esm/DatePicker/Toolbar.d.ts +12 -9
  269. package/esm/DatePicker/Toolbar.js +6 -8
  270. package/esm/DatePicker/types.d.ts +4 -4
  271. package/esm/DatePicker/utils.d.ts +4 -3
  272. package/esm/DateRangePicker/Calendar.d.ts +8 -7
  273. package/esm/DateRangePicker/Calendar.js +1 -1
  274. package/esm/DateRangePicker/DateRangePicker.d.ts +6 -6
  275. package/esm/DateRangePicker/DateRangePicker.js +105 -108
  276. package/esm/DateRangePicker/types.d.ts +2 -1
  277. package/esm/DateRangePicker/utils.d.ts +6 -6
  278. package/esm/DateRangePicker/utils.js +6 -2
  279. package/esm/Disclosure/Disclosure.js +4 -2
  280. package/esm/Disclosure/DisclosureButton.js +8 -7
  281. package/esm/Disclosure/DisclosureContent.js +5 -7
  282. package/esm/Disclosure/DisclosureContext.d.ts +2 -2
  283. package/esm/Disclosure/useDisclosureContext.d.ts +2 -0
  284. package/esm/Disclosure/useDisclosureContext.js +11 -0
  285. package/esm/Dropdown/Dropdown.d.ts +1 -1
  286. package/esm/Dropdown/DropdownContext.d.ts +2 -2
  287. package/esm/Dropdown/DropdownItem.js +1 -1
  288. package/esm/Dropdown/DropdownMenu.d.ts +3 -3
  289. package/esm/Dropdown/DropdownState.d.ts +1 -1
  290. package/esm/Dropdown/DropdownToggle.js +2 -1
  291. package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
  292. package/esm/Form/Form.js +1 -1
  293. package/esm/Form/FormContext.d.ts +1 -1
  294. package/esm/FormControl/FormControl.d.ts +1 -1
  295. package/esm/FormControl/FormControl.js +5 -4
  296. package/esm/FormGroup/FormGroup.d.ts +1 -1
  297. package/esm/Input/Input.d.ts +3 -2
  298. package/esm/InputGroup/InputGroup.d.ts +1 -1
  299. package/esm/InputNumber/InputNumber.js +6 -2
  300. package/esm/InputPicker/InputAutosize.js +4 -4
  301. package/esm/InputPicker/InputPicker.d.ts +2 -2
  302. package/esm/InputPicker/InputPicker.js +15 -10
  303. package/esm/List/ListContext.d.ts +1 -1
  304. package/esm/List/ListContext.js +7 -1
  305. package/esm/List/helper/AutoScroller.js +4 -2
  306. package/esm/List/helper/useManager.d.ts +3 -3
  307. package/esm/List/helper/useManager.js +1 -1
  308. package/esm/List/helper/useSortHelper.d.ts +3 -3
  309. package/esm/List/helper/useSortHelper.js +6 -4
  310. package/esm/List/helper/utils.d.ts +2 -2
  311. package/esm/MaskedInput/TextMask.d.ts +5 -5
  312. package/esm/MaskedInput/adjustCaretPosition.d.ts +6 -6
  313. package/esm/MaskedInput/conformToMask.js +5 -4
  314. package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  315. package/esm/MaskedInput/utilities.d.ts +1 -1
  316. package/esm/Menu/Menu.js +13 -7
  317. package/esm/Menu/MenuContext.d.ts +1 -1
  318. package/esm/Menu/MenuItem.d.ts +1 -1
  319. package/esm/Menu/MenuItem.js +18 -15
  320. package/esm/Menu/Menubar.js +7 -8
  321. package/esm/Menu/useMenu.js +17 -7
  322. package/esm/Modal/Modal.js +12 -6
  323. package/esm/Modal/ModalContext.d.ts +2 -2
  324. package/esm/Modal/utils.d.ts +1 -1
  325. package/esm/Modal/utils.js +3 -5
  326. package/esm/MultiCascader/DropdownMenu.d.ts +4 -4
  327. package/esm/MultiCascader/MultiCascader.js +6 -6
  328. package/esm/MultiCascader/utils.d.ts +14 -14
  329. package/esm/Nav/Nav.d.ts +1 -1
  330. package/esm/Nav/NavContext.d.ts +1 -1
  331. package/esm/Nav/NavItem.d.ts +1 -1
  332. package/esm/Navbar/Navbar.js +1 -1
  333. package/esm/Navbar/NavbarItem.d.ts +1 -1
  334. package/esm/Overlay/Modal.d.ts +2 -2
  335. package/esm/Overlay/Modal.js +42 -32
  336. package/esm/Overlay/ModalManager.d.ts +17 -8
  337. package/esm/Overlay/ModalManager.js +11 -20
  338. package/esm/Overlay/Overlay.d.ts +2 -2
  339. package/esm/Overlay/Overlay.js +1 -1
  340. package/esm/Overlay/OverlayTrigger.d.ts +11 -11
  341. package/esm/Overlay/OverlayTrigger.js +14 -6
  342. package/esm/Overlay/Position.d.ts +3 -3
  343. package/esm/Overlay/Position.js +14 -8
  344. package/esm/Overlay/positionUtils.d.ts +1 -1
  345. package/esm/Overlay/positionUtils.js +6 -6
  346. package/esm/Pagination/Pagination.d.ts +1 -1
  347. package/esm/Pagination/PaginationButton.d.ts +3 -3
  348. package/esm/Pagination/PaginationGroup.js +5 -3
  349. package/esm/Panel/Panel.d.ts +1 -1
  350. package/esm/Panel/Panel.js +2 -2
  351. package/esm/PanelGroup/PanelGroup.d.ts +2 -2
  352. package/esm/Picker/DropdownMenu.d.ts +8 -5
  353. package/esm/Picker/DropdownMenu.js +5 -5
  354. package/esm/Picker/PickerOverlay.js +4 -3
  355. package/esm/Picker/PickerToggle.js +4 -3
  356. package/esm/Picker/PickerToggleTrigger.d.ts +2 -6
  357. package/esm/Picker/SearchBar.d.ts +1 -1
  358. package/esm/Picker/SelectedElement.js +2 -1
  359. package/esm/Picker/propTypes.d.ts +2 -2
  360. package/esm/Picker/utils.d.ts +13 -13
  361. package/esm/Picker/utils.js +21 -18
  362. package/esm/Placeholder/PlaceholderGrid.js +1 -1
  363. package/esm/Plaintext/Plaintext.js +2 -1
  364. package/esm/Radio/Radio.d.ts +1 -1
  365. package/esm/RadioGroup/RadioGroup.d.ts +2 -2
  366. package/esm/RadioGroup/RadioGroup.js +1 -1
  367. package/esm/RangeSlider/RangeSlider.d.ts +2 -2
  368. package/esm/RangeSlider/RangeSlider.js +5 -4
  369. package/esm/Rate/Character.js +3 -2
  370. package/esm/Rate/Rate.js +2 -1
  371. package/esm/Ripple/Ripple.js +1 -1
  372. package/esm/SelectPicker/SelectPicker.js +4 -4
  373. package/esm/Sidenav/Node.d.ts +1 -1
  374. package/esm/Sidenav/Sidenav.d.ts +4 -4
  375. package/esm/Sidenav/Sidenav.js +5 -2
  376. package/esm/Sidenav/SidenavDropdown.js +11 -7
  377. package/esm/Sidenav/SidenavDropdownItem.js +11 -5
  378. package/esm/Sidenav/SidenavDropdownMenu.js +9 -5
  379. package/esm/Sidenav/SidenavItem.d.ts +1 -1
  380. package/esm/Sidenav/SidenavItem.js +4 -0
  381. package/esm/Slider/Graduated.d.ts +5 -5
  382. package/esm/Slider/Handle.d.ts +1 -1
  383. package/esm/Slider/Handle.js +10 -6
  384. package/esm/Slider/Mark.d.ts +1 -1
  385. package/esm/Slider/Slider.d.ts +1 -1
  386. package/esm/Slider/Slider.js +2 -2
  387. package/esm/Slider/utils.d.ts +2 -1
  388. package/esm/Slider/utils.js +5 -2
  389. package/esm/Steps/StepItem.js +2 -2
  390. package/esm/TagInput/index.js +1 -1
  391. package/esm/Toggle/Toggle.js +1 -1
  392. package/esm/Tree/Tree.d.ts +3 -1
  393. package/esm/TreePicker/TreeNode.js +4 -7
  394. package/esm/TreePicker/TreePicker.js +30 -23
  395. package/esm/Uploader/UploadFileItem.d.ts +1 -1
  396. package/esm/Uploader/UploadFileItem.js +2 -2
  397. package/esm/Uploader/UploadTrigger.d.ts +1 -1
  398. package/esm/Uploader/UploadTrigger.js +2 -3
  399. package/esm/Uploader/Uploader.d.ts +5 -5
  400. package/esm/Uploader/Uploader.js +1 -2
  401. package/esm/index.d.ts +2 -0
  402. package/esm/index.js +1 -0
  403. package/esm/locales/index.d.ts +3 -3
  404. package/esm/toaster/ToastContainer.d.ts +1 -1
  405. package/esm/toaster/ToastContainer.js +1 -1
  406. package/esm/toaster/toaster.js +3 -1
  407. package/esm/utils/BrowserDetection.js +1 -1
  408. package/esm/utils/ReactChildren.d.ts +2 -2
  409. package/esm/utils/ajaxUpload.d.ts +1 -1
  410. package/esm/utils/ajaxUpload.js +5 -4
  411. package/esm/utils/appendTooltip.d.ts +1 -1
  412. package/esm/utils/constants.d.ts +4 -4
  413. package/esm/utils/createChainedFunction.d.ts +1 -1
  414. package/esm/utils/getDataGroupBy.d.ts +1 -1
  415. package/esm/utils/mergeRefs.d.ts +2 -2
  416. package/esm/utils/previewFile.d.ts +1 -1
  417. package/esm/utils/propTypeChecker.d.ts +6 -2
  418. package/esm/utils/propTypeChecker.js +7 -6
  419. package/esm/utils/reactToString.d.ts +2 -1
  420. package/esm/utils/statusIcons.d.ts +1 -1
  421. package/esm/utils/stringToObject.d.ts +1 -1
  422. package/esm/utils/treeUtils.d.ts +32 -29
  423. package/esm/utils/treeUtils.js +45 -21
  424. package/esm/utils/useControlled.d.ts +6 -1
  425. package/esm/utils/useControlled.js +0 -8
  426. package/esm/utils/useCustom.js +6 -4
  427. package/esm/utils/useFocus.d.ts +2 -2
  428. package/esm/utils/usePortal.d.ts +1 -1
  429. package/esm/utils/useRootClose.d.ts +2 -2
  430. package/esm/utils/useTimeout.d.ts +1 -1
  431. package/esm/utils/useTimeout.js +5 -3
  432. package/package.json +2 -2
  433. package/styles/index.less +1 -0
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import IconCalendar from '@rsuite/icons/legacy/Calendar';
4
- import isUndefined from 'lodash/isUndefined';
4
+ import isNil from 'lodash/isNil';
5
5
  import omit from 'lodash/omit';
6
6
  import partial from 'lodash/partial';
7
7
  import pick from 'lodash/pick';
@@ -16,7 +16,7 @@ import Calendar from './Calendar';
16
16
  import * as disabledDateUtils from './disabledDateUtils';
17
17
  import { getCalendarDate, getMonthHoverRange, getWeekHoverRange, isSameRange, setTimingMargin } from './utils';
18
18
  var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
19
- var _ref, _merge;
19
+ var _ref, _ref2, _merge;
20
20
 
21
21
  var _props$as = props.as,
22
22
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -36,7 +36,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
36
36
  _props$format = props.format,
37
37
  formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
38
38
  hoverRange = props.hoverRange,
39
- isoWeek = props.isoWeek,
39
+ _props$isoWeek = props.isoWeek,
40
+ isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,
40
41
  _props$limitEndYear = props.limitEndYear,
41
42
  limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,
42
43
  overrideLocale = props.locale,
@@ -78,7 +79,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
78
79
 
79
80
  var rangeFormatStr = "" + formatStr + character + formatStr;
80
81
 
81
- var _useControlled = useControlled(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : []),
82
+ var _useControlled = useControlled(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null),
82
83
  value = _useControlled[0],
83
84
  setValue = _useControlled[1];
84
85
  /**
@@ -100,17 +101,17 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
100
101
  */
101
102
 
102
103
  var _useState = useState((_ref = valueProp !== null && valueProp !== void 0 ? valueProp : defaultValue) !== null && _ref !== void 0 ? _ref : []),
103
- selectValue = _useState[0],
104
- setSelectValue = _useState[1]; // The date of the current hover, used to reduce the calculation of `handleMouseMove`
104
+ selectedDates = _useState[0],
105
+ setSelectedDates = _useState[1]; // The date of the current hover, used to reduce the calculation of `handleMouseMove`
105
106
 
106
107
 
107
- var _useState2 = useState([]),
108
- hoverValue = _useState2[0],
109
- setHoverValue = _useState2[1]; // The displayed calendar panel is rendered based on this value.
108
+ var _useState2 = useState(null),
109
+ hoverDateRange = _useState2[0],
110
+ setHoverDateRange = _useState2[1]; // The displayed calendar panel is rendered based on this value.
110
111
 
111
112
 
112
113
  var _useState3 = useState(getCalendarDate({
113
- value: valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue
114
+ value: (_ref2 = valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null
114
115
  })),
115
116
  calendarDate = _useState3[0],
116
117
  setCalendarDate = _useState3[1];
@@ -138,18 +139,18 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
138
139
  }, []); // if valueProp changed then update selectValue/hoverValue
139
140
 
140
141
  useEffect(function () {
141
- setSelectValue(valueProp !== null && valueProp !== void 0 ? valueProp : []);
142
- setHoverValue(valueProp !== null && valueProp !== void 0 ? valueProp : []);
142
+ setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
143
+ setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);
143
144
  }, [valueProp]);
144
145
 
145
146
  var _useState5 = useState(false),
146
147
  isPickerToggleActive = _useState5[0],
147
148
  setPickerToggleActive = _useState5[1];
148
149
 
149
- var rootRef = useRef();
150
- var overlayRef = useRef();
151
- var targetRef = useRef();
152
- var triggerRef = useRef();
150
+ var rootRef = useRef(null);
151
+ var overlayRef = useRef(null);
152
+ var targetRef = useRef(null);
153
+ var triggerRef = useRef(null);
153
154
  var handleCloseDropdown = useCallback(function () {
154
155
  var _triggerRef$current, _triggerRef$current$c;
155
156
 
@@ -162,14 +163,10 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
162
163
  rootRef: rootRef
163
164
  });
164
165
  var getDisplayString = useCallback(function (nextValue, isPlaintext) {
165
- var _nextValue, _nextValue2;
166
+ var _nextValue$, _nextValue$2;
166
167
 
167
- if (nextValue === void 0) {
168
- nextValue = value;
169
- }
170
-
171
- var startDate = (_nextValue = nextValue) === null || _nextValue === void 0 ? void 0 : _nextValue[0];
172
- var endDate = (_nextValue2 = nextValue) === null || _nextValue2 === void 0 ? void 0 : _nextValue2[1];
168
+ var startDate = (_nextValue$ = nextValue === null || nextValue === void 0 ? void 0 : nextValue[0]) !== null && _nextValue$ !== void 0 ? _nextValue$ : null;
169
+ var endDate = (_nextValue$2 = nextValue === null || nextValue === void 0 ? void 0 : nextValue[1]) !== null && _nextValue$2 !== void 0 ? _nextValue$2 : null;
173
170
 
174
171
  if (startDate && endDate) {
175
172
  var displayValue = [startDate, endDate].sort(compareAsc);
@@ -194,29 +191,27 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
194
191
  */
195
192
 
196
193
  var getHoverRangeValue = useCallback(function (date) {
197
- if (!hoverRange) {
198
- return [];
199
- }
200
-
201
- var hoverRangeFunc = hoverRange;
194
+ function getHoverRangeFunc() {
195
+ if (hoverRange === 'week') {
196
+ return partial(getWeekHoverRange, isoWeek);
197
+ } else if (hoverRange === 'month') {
198
+ return getMonthHoverRange;
199
+ }
202
200
 
203
- if (hoverRange === 'week') {
204
- hoverRangeFunc = partial(getWeekHoverRange, isoWeek);
201
+ return hoverRange;
205
202
  }
206
203
 
207
- if (hoverRangeFunc === 'month') {
208
- hoverRangeFunc = getMonthHoverRange;
209
- }
204
+ var hoverRangeFunc = getHoverRangeFunc();
210
205
 
211
- if (typeof hoverRangeFunc !== 'function') {
212
- return [];
206
+ if (isNil(hoverRangeFunc)) {
207
+ return null;
213
208
  }
214
209
 
215
210
  var hoverValues = hoverRangeFunc(date);
216
211
  var isHoverRangeValid = hoverValues instanceof Array && hoverValues.length === 2;
217
212
 
218
213
  if (!isHoverRangeValid) {
219
- return [];
214
+ return null;
220
215
  }
221
216
 
222
217
  if (DateUtils.isAfter(hoverValues[0], hoverValues[1])) {
@@ -225,13 +220,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
225
220
 
226
221
  return hoverValues;
227
222
  }, [hoverRange, isoWeek]);
228
- var handleValueUpdate = useCallback(function (event, nextSelectValue, closeOverlay) {
223
+ var handleValueUpdate = useCallback(function (event, nextValue, closeOverlay) {
229
224
  if (closeOverlay === void 0) {
230
225
  closeOverlay = true;
231
226
  }
232
227
 
233
- var nextValue = !isUndefined(nextSelectValue) ? nextSelectValue : selectValue;
234
- setSelectValue(nextValue || []);
228
+ // If nextValue is null, it means that the user is erasing the selected dates.
229
+ setSelectedDates(nextValue !== null && nextValue !== void 0 ? nextValue : []);
235
230
 
236
231
  if (!isSameRange(nextValue, value, formatStr)) {
237
232
  setValue(nextValue);
@@ -242,40 +237,41 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
242
237
  if (closeOverlay !== false) {
243
238
  handleCloseDropdown();
244
239
  }
245
- }, [formatStr, handleCloseDropdown, onChange, selectValue, setValue, value]);
240
+ }, [formatStr, handleCloseDropdown, onChange, selectedDates, setValue, value]);
246
241
  /**
247
242
  * Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.
248
243
  * The MouseMove event is called between the first click and the second click to update the selection state.
249
244
  */
250
245
 
251
246
  var handleMouseMove = useCallback(function (date) {
252
- var hoverRangeValue = getHoverRangeValue(date); // After the first click
247
+ var nextHoverDateRange = getHoverRangeValue(date); // If hasDoneSelect is false,
248
+ // it means there's already one selected date
249
+ // and waiting for user to select the second date to complete the selection.
253
250
 
254
251
  if (!hasDoneSelect.current) {
255
- // If hoverRange is set, you need to change the value of hoverValue according to the rules
256
- if (hoverRange) {
257
- var nextHoverValue = [selectRangeValueRef.current[0], hoverRangeValue[1]];
252
+ // If `hoverRange` is set, you need to change the value of hoverDateRange according to the rules
253
+ if (!isNil(nextHoverDateRange)) {
254
+ var nextSelectedDates = [selectRangeValueRef.current[0], nextHoverDateRange[1]];
258
255
 
259
- if (DateUtils.isBefore(hoverRangeValue[0], selectRangeValueRef.current[0])) {
260
- nextHoverValue[0] = hoverRangeValue[0];
261
- nextHoverValue[1] = selectRangeValueRef.current[1];
256
+ if (DateUtils.isBefore(nextHoverDateRange[0], selectRangeValueRef.current[0])) {
257
+ nextSelectedDates = [nextHoverDateRange[0], selectRangeValueRef.current[1]];
262
258
  }
263
259
 
264
- setSelectValue(nextHoverValue);
260
+ setSelectedDates(nextSelectedDates);
265
261
  } else {
266
- setHoverValue(function (prevHoverValue) {
267
- return [prevHoverValue[0], date];
262
+ setHoverDateRange(function (prevHoverValue) {
263
+ return isNil(prevHoverValue) ? null : [prevHoverValue[0], date];
268
264
  });
269
- } // Before the first click, if hoverRangeValue has a value, hoverValue needs to be updated
265
+ } // Before the first click, if nextHoverDateRange has a value, hoverDateRange needs to be updated
270
266
 
271
- } else if (hoverRange && hoverRangeValue.length) {
272
- setHoverValue(hoverRangeValue);
267
+ } else if (!isNil(nextHoverDateRange)) {
268
+ setHoverDateRange(nextHoverDateRange);
273
269
  }
274
270
  }, [getHoverRangeValue, hoverRange]);
275
- var handleSelectValueChange = useCallback(function (date, event) {
276
- var nextSelectValue = Array.from(hoverValue);
271
+ var handleSelectDate = useCallback(function (date, event) {
272
+ var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];
277
273
  var hoverRangeValue = getHoverRangeValue(date);
278
- var noHoverRangeValid = hoverRangeValue.length !== 2; // in `oneTap` mode
274
+ var noHoverRangeValid = isNil(hoverRangeValue); // in `oneTap` mode
279
275
 
280
276
  if (hasDoneSelect.current && oneTap) {
281
277
  handleValueUpdate(event, noHoverRangeValid ? [setTimingMargin(date), setTimingMargin(date, 'right')] : hoverRangeValue);
@@ -287,32 +283,32 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
287
283
  if (noHoverRangeValid) {
288
284
  // start select
289
285
  if (hasDoneSelect.current) {
290
- nextSelectValue = [date];
286
+ nextSelectDates = [date];
291
287
  } else {
292
288
  // finish select
293
- nextSelectValue[1] = date;
289
+ nextSelectDates[1] = date;
294
290
  }
295
291
  } else {
296
292
  if (!hasDoneSelect.current) {
297
- nextSelectValue = selectValue;
293
+ nextSelectDates = selectedDates;
298
294
  selectRangeValueRef.current = null;
299
295
  } else {
300
- nextSelectValue = hoverRangeValue;
296
+ nextSelectDates = hoverRangeValue;
301
297
  selectRangeValueRef.current = hoverRangeValue;
302
298
  }
303
299
  } // If user have completed the selection, then sort
304
300
 
305
301
 
306
- if (nextSelectValue.length === 2 && DateUtils.isAfter(nextSelectValue[0], nextSelectValue[1])) {
307
- nextSelectValue.reverse();
302
+ if (nextSelectDates.length === 2 && DateUtils.isAfter(nextSelectDates[0], nextSelectDates[1])) {
303
+ nextSelectDates.reverse();
308
304
  }
309
305
 
310
- setHoverValue(nextSelectValue);
311
- setSelectValue(nextSelectValue);
312
- updateCalendarDate(nextSelectValue);
306
+ setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : null);
307
+ setSelectedDates(nextSelectDates);
308
+ updateCalendarDate(nextSelectDates);
313
309
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
314
310
  hasDoneSelect.current = !hasDoneSelect.current;
315
- }, [getHoverRangeValue, handleValueUpdate, hoverValue, onSelect, oneTap, selectValue, updateCalendarDate]);
311
+ }, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDate]);
316
312
  /**
317
313
  * If `selectValue` changed, there will be the following effects.
318
314
  * 1. Check if the selection is completed.
@@ -320,19 +316,17 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
320
316
  */
321
317
 
322
318
  useEffect(function () {
323
- var _selectValue$length;
324
-
325
- var selectValueLength = (_selectValue$length = selectValue === null || selectValue === void 0 ? void 0 : selectValue.length) !== null && _selectValue$length !== void 0 ? _selectValue$length : 0;
319
+ var selectValueLength = selectedDates.length;
326
320
  var doneSelected = selectValueLength === 0 || selectValueLength === 2;
327
- doneSelected && setHoverValue([]);
328
- }, [selectValue]);
321
+ doneSelected && setHoverDateRange(null);
322
+ }, [selectedDates]);
329
323
  var handleChangeCalendarDate = useCallback(function (index, date) {
330
324
  var nextCalendarDate = Array.from(calendarDate);
331
325
  nextCalendarDate[index] = date;
332
326
  updateCalendarDate(nextCalendarDate);
333
327
  }, [calendarDate, updateCalendarDate]);
334
328
  var handleChangeCalendarTime = useCallback(function (index, date) {
335
- setSelectValue(function (prev) {
329
+ setSelectedDates(function (prev) {
336
330
  var next = [].concat(prev);
337
331
  var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
338
332
 
@@ -357,24 +351,28 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
357
351
  next[index] = DateUtils.setHours(clonedDate, nextHours);
358
352
  setCalendarDate(next); // If the value already exists, update the value again.
359
353
 
360
- if (selectValue.length === 2) {
361
- setSelectValue(next);
354
+ if (selectedDates.length === 2) {
355
+ setSelectedDates(next);
362
356
  }
363
- }, [calendarDate, selectValue]);
357
+ }, [calendarDate, selectedDates]);
364
358
  /**
365
359
  * Toolbar operation callback function
366
360
  */
367
361
 
368
362
  var handleShortcutPageDate = useCallback(function (value, closeOverlay, event) {
363
+ if (closeOverlay === void 0) {
364
+ closeOverlay = false;
365
+ }
366
+
369
367
  handleValueUpdate(event, value, closeOverlay);
370
368
  }, [handleValueUpdate]);
371
369
  var handleOK = useCallback(function (event) {
372
- handleValueUpdate(event);
373
- onOk === null || onOk === void 0 ? void 0 : onOk(selectValue, event);
374
- }, [handleValueUpdate, onOk, selectValue]);
370
+ handleValueUpdate(event, selectedDates);
371
+ onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
372
+ }, [handleValueUpdate, onOk, selectedDates]);
375
373
  var handleClean = useCallback(function (event) {
376
- updateCalendarDate();
377
- handleValueUpdate(event, []);
374
+ updateCalendarDate(null);
375
+ handleValueUpdate(event, null);
378
376
  }, [handleValueUpdate, updateCalendarDate]);
379
377
  /**
380
378
  * Callback after the input box value is changed.
@@ -403,13 +401,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
403
401
  return;
404
402
  }
405
403
 
406
- if (disabledDate(startDate, selectValue, true, DATERANGE_DISABLED_TARGET.CALENDAR)) {
404
+ if (isDateDisabled(startDate, selectValue, true, DATERANGE_DISABLED_TARGET.CALENDAR)) {
407
405
  setInputState('Error');
408
406
  return;
409
407
  }
410
408
 
411
- setHoverValue(selectValue);
412
- setSelectValue(selectValue);
409
+ setHoverDateRange(selectValue);
410
+ setSelectedDates(selectValue);
413
411
  updateCalendarDate(selectValue);
414
412
  }, // eslint-disable-next-line react-hooks/exhaustive-deps
415
413
  [character, rangeFormatStr, updateCalendarDate]);
@@ -419,11 +417,11 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
419
417
 
420
418
  var handleInputPressEnd = useCallback(function (event) {
421
419
  if (inputState === 'Typing') {
422
- handleValueUpdate(event, selectValue);
420
+ handleValueUpdate(event, selectedDates.length === 2 ? selectedDates : null);
423
421
  }
424
422
 
425
423
  setInputState('Initial');
426
- }, [handleValueUpdate, selectValue, inputState]);
424
+ }, [handleValueUpdate, selectedDates, inputState]);
427
425
  var handleEnter = useCallback(function () {
428
426
  var nextCalendarDate;
429
427
 
@@ -433,13 +431,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
433
431
  nextCalendarDate = [_startDate, isSameMonth(_startDate, endData) ? addMonths(endData, 1) : endData];
434
432
  } else {
435
433
  nextCalendarDate = getCalendarDate({
436
- value: defaultCalendarValue
434
+ value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
437
435
  });
438
436
  }
439
437
 
440
- setSelectValue(value);
438
+ setSelectedDates(value !== null && value !== void 0 ? value : []);
441
439
  updateCalendarDate(nextCalendarDate);
442
- }, [defaultCalendarValue, updateCalendarDate, setSelectValue, value]);
440
+ }, [defaultCalendarValue, updateCalendarDate, setSelectedDates, value]);
443
441
  var handleEntered = useCallback(function () {
444
442
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
445
443
  setPickerToggleActive(true);
@@ -449,17 +447,16 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
449
447
  hasDoneSelect.current = true;
450
448
  onClose === null || onClose === void 0 ? void 0 : onClose();
451
449
  }, [onClose]);
452
- var disabledDate = useCallback(function (date, selectDate, selectedDone, target) {
453
- return disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target);
450
+ var isDateDisabled = useCallback(function (date, selectDate, selectedDone, target) {
451
+ var _disabledDateProp;
452
+
453
+ return (_disabledDateProp = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target)) !== null && _disabledDateProp !== void 0 ? _disabledDateProp : false;
454
454
  }, [disabledDateProp]);
455
455
  var disabledByBetween = useCallback(function (start, end, type) {
456
- var selectStartDate = selectValue[0],
457
- selectEndDate = selectValue[1];
458
- var nextSelectValue = [selectStartDate, selectEndDate]; // If the date is between the start and the end
456
+ // If the date is between the start and the end
459
457
  // the button is disabled
460
-
461
458
  while (DateUtils.isBefore(start, end) || DateUtils.isSameDay(start, end)) {
462
- if (disabledDate(start, nextSelectValue, hasDoneSelect.current, type)) {
459
+ if (isDateDisabled(start, selectedDates, hasDoneSelect.current, type)) {
463
460
  return true;
464
461
  }
465
462
 
@@ -467,17 +464,17 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
467
464
  }
468
465
 
469
466
  return false;
470
- }, [disabledDate, selectValue]);
467
+ }, [isDateDisabled, selectedDates]);
471
468
  var disabledOkButton = useCallback(function () {
472
- var start = selectValue[0],
473
- end = selectValue[1];
469
+ var start = selectedDates[0],
470
+ end = selectedDates[1];
474
471
 
475
472
  if (!start || !end || !hasDoneSelect.current) {
476
473
  return true;
477
474
  }
478
475
 
479
476
  return disabledByBetween(start, end, DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
480
- }, [disabledByBetween, selectValue]);
477
+ }, [disabledByBetween, selectedDates]);
481
478
  var disabledShortcutButton = useCallback(function (value) {
482
479
  if (value === void 0) {
483
480
  value = [];
@@ -494,8 +491,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
494
491
  return disabledByBetween(start, end, DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
495
492
  }, [disabledByBetween]);
496
493
  var handleDisabledDate = useCallback(function (date, values, type) {
497
- return disabledDate(date, values, hasDoneSelect.current, type);
498
- }, [disabledDate]);
494
+ return isDateDisabled(date, values, hasDoneSelect.current, type);
495
+ }, [isDateDisabled]);
499
496
  var onPickerKeyDown = useToggleKeyDownEvent(_extends({
500
497
  triggerRef: triggerRef,
501
498
  targetRef: targetRef,
@@ -521,18 +518,18 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
521
518
  calendarDate: calendarDate,
522
519
  disabledDate: handleDisabledDate,
523
520
  format: formatStr,
524
- hoverRangeValue: hoverValue,
521
+ hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
525
522
  isoWeek: isoWeek,
526
523
  limitEndYear: limitEndYear,
527
524
  locale: locale,
528
525
  showOneCalendar: showOneCalendar,
529
526
  showWeekNumbers: showWeekNumbers,
530
- value: selectValue,
527
+ value: selectedDates,
531
528
  showMeridian: showMeridian,
532
529
  onChangeCalendarDate: handleChangeCalendarDate,
533
530
  onChangeCalendarTime: handleChangeCalendarTime,
534
531
  onMouseMove: handleMouseMove,
535
- onSelect: handleSelectValueChange,
532
+ onSelect: handleSelectDate,
536
533
  onToggleMeridian: handleToggleMeridian
537
534
  };
538
535
  return /*#__PURE__*/React.createElement(PickerOverlay, {
@@ -546,7 +543,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
546
543
  className: prefix('daterange-content')
547
544
  }, /*#__PURE__*/React.createElement("div", {
548
545
  className: prefix('daterange-header')
549
- }, getDisplayString(selectValue)), /*#__PURE__*/React.createElement("div", {
546
+ }, getDisplayString(selectedDates)), /*#__PURE__*/React.createElement("div", {
550
547
  className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
551
548
  }, /*#__PURE__*/React.createElement(Calendar, _extends({
552
549
  index: 0
@@ -554,7 +551,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
554
551
  index: 1
555
552
  }, panelProps)))), /*#__PURE__*/React.createElement(Toolbar, {
556
553
  locale: locale,
557
- calendarDate: selectValue,
554
+ calendarDate: selectedDates,
558
555
  disabledOkBtn: disabledOkButton,
559
556
  disabledShortcut: disabledShortcutButton,
560
557
  hideOkBtn: oneTap,
@@ -564,7 +561,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
564
561
  })));
565
562
  };
566
563
 
567
- var hasValue = value && value.length > 1;
564
+ var hasValue = !isNil(value) && value.length > 1;
568
565
 
569
566
  var _usePickerClassName = usePickerClassName(_extends({}, props, {
570
567
  classPrefix: classPrefix,
@@ -607,7 +604,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
607
604
  placement: placement,
608
605
  caretComponent: IconCalendar,
609
606
  disabled: disabled
610
- }), getDisplayString())));
607
+ }), getDisplayString(value))));
611
608
  });
612
609
  DateRangePicker.after = disabledDateUtils.after;
613
610
  DateRangePicker.afterToday = disabledDateUtils.afterToday;
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import { DATERANGE_DISABLED_TARGET } from '../utils/constants';
3
3
  export declare type ValueType = [Date?, Date?];
4
+ export declare type DateRange = [Date, Date];
4
5
  export interface RangeType {
5
6
  label: React.ReactNode;
6
7
  closeOverlay?: boolean;
7
- value: ValueType | ((value?: ValueType) => ValueType);
8
+ value: DateRange | ((value?: ValueType) => DateRange);
8
9
  }
9
10
  export declare type DisabledDateFunction = (
10
11
  /** Date used to determine if disabling is required. */
@@ -1,9 +1,9 @@
1
- import { RangeType, ValueType } from './types';
1
+ import { DateRange, RangeType } from './types';
2
2
  export declare const setTimingMargin: (date: any, way?: string) => Date;
3
3
  export declare function getCalendarDate({ value }: {
4
- value?: ValueType;
5
- }): ValueType;
4
+ value: [] | [Date] | [Date, Date] | null;
5
+ }): DateRange;
6
6
  export declare const getDefaultRanges: () => RangeType[];
7
- export declare const isSameRange: (source: ValueType, dest: ValueType, format: string) => boolean;
8
- export declare const getMonthHoverRange: (date: Date) => ValueType;
9
- export declare const getWeekHoverRange: (isoWeek: boolean, date: Date) => ValueType;
7
+ export declare const isSameRange: (source: DateRange | null, dest: DateRange | null, format: string) => boolean;
8
+ export declare const getMonthHoverRange: (date: Date) => DateRange;
9
+ export declare const getWeekHoverRange: (isoWeek: boolean, date: Date) => DateRange;
@@ -37,10 +37,14 @@ export var getDefaultRanges = function getDefaultRanges() {
37
37
  }];
38
38
  };
39
39
  export var isSameRange = function isSameRange(source, dest, format) {
40
- var result = DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]);
40
+ // If both are null, reguard as same
41
+ if (null === source && null === dest) return true; // If only one is null, regard as different
42
+
43
+ if (null === source || null === dest) return false;
44
+ var result = DateUtils.isSameDay(source[0], dest[0]) && DateUtils.isSameDay(source[1], dest[1]);
41
45
 
42
46
  if (DateUtils.shouldTime(format)) {
43
- result && (result = DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]));
47
+ result && (result = DateUtils.isSameSecond(source[0], dest[0]) && DateUtils.isSameSecond(source[1], dest[1]));
44
48
  }
45
49
 
46
50
  return result;
@@ -41,12 +41,14 @@ function Disclosure(props) {
41
41
  openState = _useReducer[0].open,
42
42
  dispatch = _useReducer[1];
43
43
 
44
- var containerElementRef = useRef();
44
+ var containerElementRef = useRef(null);
45
45
  var open = openProp !== null && openProp !== void 0 ? openProp : openState;
46
46
  useClickOutside({
47
47
  enabled: hideOnClickOutside,
48
48
  isOutside: function isOutside(event) {
49
- return !containerElementRef.current.contains(event.target);
49
+ var _containerElementRef$;
50
+
51
+ return !((_containerElementRef$ = containerElementRef.current) !== null && _containerElementRef$ !== void 0 && _containerElementRef$.contains(event.target));
50
52
  },
51
53
  handle: function handle() {
52
54
  return dispatch({
@@ -1,15 +1,16 @@
1
- import { useCallback, useContext, useRef } from 'react';
2
- import DisclosureContext, { DisclosureActionTypes } from './DisclosureContext';
1
+ import { useCallback, useRef } from 'react';
2
+ import { DisclosureActionTypes } from './DisclosureContext';
3
3
  import { KEY_VALUES } from '../utils';
4
+ import useDisclosureContext from './useDisclosureContext';
4
5
 
5
6
  function DisclosureButton(props) {
6
7
  var children = props.children;
7
- var buttonRef = useRef();
8
+ var buttonRef = useRef(null);
8
9
 
9
- var _useContext = useContext(DisclosureContext),
10
- open = _useContext[0].open,
11
- dispatch = _useContext[1],
12
- onToggle = _useContext[2].onToggle;
10
+ var _useDisclosureContext = useDisclosureContext(DisclosureButton.displayName),
11
+ open = _useDisclosureContext[0].open,
12
+ dispatch = _useDisclosureContext[1],
13
+ onToggle = _useDisclosureContext[2].onToggle;
13
14
 
14
15
  var toggle = useCallback(function (event) {
15
16
  if (!open) {
@@ -1,13 +1,11 @@
1
- import { useContext, useRef } from 'react';
2
- import DisclosureContext from './DisclosureContext';
1
+ import { useRef } from 'react';
2
+ import useDisclosureContext from './useDisclosureContext';
3
3
 
4
4
  function DisclosureContent(props) {
5
5
  var children = props.children;
6
- var elementRef = useRef();
7
-
8
- var _useContext = useContext(DisclosureContext),
9
- open = _useContext[0].open;
10
-
6
+ var elementRef = useRef(null);
7
+ var disclosure = useDisclosureContext(DisclosureContent.displayName);
8
+ var open = disclosure[0].open;
11
9
  return children({
12
10
  open: open
13
11
  }, elementRef);
@@ -13,8 +13,8 @@ export declare type DisclosureContextProps = [
13
13
  DisclosureState,
14
14
  Dispatch<DisclosureAction>,
15
15
  {
16
- onToggle: (open: boolean, event?: React.SyntheticEvent) => void;
16
+ onToggle?: (open: boolean, event: React.SyntheticEvent) => void;
17
17
  }
18
18
  ];
19
- declare const DisclosureContext: React.Context<DisclosureContextProps>;
19
+ declare const DisclosureContext: React.Context<DisclosureContextProps | null>;
20
20
  export default DisclosureContext;
@@ -0,0 +1,2 @@
1
+ import { DisclosureContextProps } from './DisclosureContext';
2
+ export default function useDisclosureContext(component: string): DisclosureContextProps;
@@ -0,0 +1,11 @@
1
+ import { useContext } from 'react';
2
+ import DisclosureContext from './DisclosureContext';
3
+ export default function useDisclosureContext(component) {
4
+ var context = useContext(DisclosureContext);
5
+
6
+ if (!context) {
7
+ throw new Error("<" + component + "> component must be rendered within a <Disclosure>");
8
+ }
9
+
10
+ return context;
11
+ }
@@ -45,7 +45,7 @@ export interface DropdownProps<T = any> extends WithAsProps, Omit<React.HTMLAttr
45
45
  /** Callback function for menu state switching */
46
46
  onToggle?: (open?: boolean) => void;
47
47
  /** Selected callback function */
48
- onSelect?: (eventKey: T, event: React.SyntheticEvent) => void;
48
+ onSelect?: (eventKey: T | undefined, event: React.SyntheticEvent) => void;
49
49
  }
50
50
  export interface DropdownComponent extends RsRefForwardingComponent<'div', DropdownProps> {
51
51
  Item: typeof DropdownItem;
@@ -2,9 +2,9 @@ import React, { Dispatch } from 'react';
2
2
  import { DropdownAction } from './DropdownState';
3
3
  export interface DropdownContextProps {
4
4
  activeKey?: string;
5
- onSelect: (eventKey: string, event: React.SyntheticEvent) => void;
5
+ onSelect?: (eventKey: string | undefined, event: React.SyntheticEvent) => void;
6
6
  hasSelectedItem?: boolean;
7
7
  dispatch?: Dispatch<DropdownAction>;
8
8
  }
9
- declare const DropdownContext: React.Context<DropdownContextProps>;
9
+ declare const DropdownContext: React.Context<DropdownContextProps | null>;
10
10
  export default DropdownContext;