rsuite 5.2.3 → 5.4.1

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