rsuite 5.2.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/Avatar/styles/index.less +2 -2
  2. package/AvatarGroup/package.json +7 -0
  3. package/AvatarGroup/styles/index.less +19 -0
  4. package/Button/styles/index.less +6 -0
  5. package/ButtonGroup/styles/index.less +0 -18
  6. package/CHANGELOG.md +49 -0
  7. package/CheckTreePicker/styles/index.less +14 -1
  8. package/PanelGroup/styles/index.less +12 -12
  9. package/Table/styles/index.less +0 -4
  10. package/TreePicker/styles/index.less +10 -0
  11. package/cjs/@types/common.d.ts +9 -8
  12. package/cjs/@types/utils.d.ts +12 -0
  13. package/cjs/Affix/Affix.js +5 -5
  14. package/cjs/Animation/Transition.d.ts +21 -12
  15. package/cjs/Animation/Transition.js +4 -1
  16. package/cjs/AutoComplete/AutoComplete.js +1 -1
  17. package/cjs/AutoComplete/utils.d.ts +1 -1
  18. package/cjs/Avatar/Avatar.js +10 -3
  19. package/cjs/AvatarGroup/AvatarGroup.d.ts +15 -0
  20. package/cjs/AvatarGroup/AvatarGroup.js +71 -0
  21. package/cjs/AvatarGroup/index.d.ts +3 -0
  22. package/cjs/AvatarGroup/index.js +11 -0
  23. package/cjs/Breadcrumb/Breadcrumb.js +1 -1
  24. package/cjs/Button/Button.js +8 -2
  25. package/cjs/ButtonGroup/ButtonGroup.js +8 -2
  26. package/cjs/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  27. package/cjs/ButtonGroup/ButtonGroupContext.js +13 -0
  28. package/cjs/ButtonGroup/index.d.ts +2 -0
  29. package/cjs/ButtonGroup/index.js +3 -0
  30. package/cjs/Calendar/Calendar.d.ts +4 -4
  31. package/cjs/Calendar/Calendar.js +5 -2
  32. package/cjs/Calendar/CalendarContext.js +1 -1
  33. package/cjs/Calendar/TableRow.js +1 -1
  34. package/cjs/Calendar/TimeDropdown.js +6 -5
  35. package/cjs/Calendar/types.d.ts +2 -2
  36. package/cjs/Calendar/useCalendarDate.d.ts +2 -2
  37. package/cjs/Carousel/Carousel.d.ts +2 -2
  38. package/cjs/Carousel/Carousel.js +1 -1
  39. package/cjs/Cascader/Cascader.d.ts +1 -1
  40. package/cjs/Cascader/Cascader.js +10 -10
  41. package/cjs/Cascader/DropdownMenu.d.ts +5 -4
  42. package/cjs/Cascader/utils.d.ts +3 -3
  43. package/cjs/CheckPicker/CheckPicker.js +4 -4
  44. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  45. package/cjs/CheckTreePicker/CheckTreeNode.js +7 -9
  46. package/cjs/CheckTreePicker/CheckTreePicker.js +34 -27
  47. package/cjs/CheckTreePicker/utils.d.ts +3 -1
  48. package/cjs/CheckTreePicker/utils.js +12 -10
  49. package/cjs/Checkbox/Checkbox.d.ts +1 -1
  50. package/cjs/CheckboxGroup/CheckboxGroup.js +2 -2
  51. package/cjs/CustomProvider/CustomProvider.d.ts +31 -57
  52. package/cjs/DOMHelper/index.d.ts +12 -12
  53. package/cjs/DatePicker/DatePicker.d.ts +1 -1
  54. package/cjs/DatePicker/DatePicker.js +15 -9
  55. package/cjs/DatePicker/Toolbar.d.ts +12 -9
  56. package/cjs/DatePicker/Toolbar.js +6 -8
  57. package/cjs/DatePicker/types.d.ts +4 -4
  58. package/cjs/DatePicker/utils.d.ts +4 -3
  59. package/cjs/DateRangePicker/Calendar.d.ts +9 -7
  60. package/cjs/DateRangePicker/Calendar.js +27 -6
  61. package/cjs/DateRangePicker/DateRangePicker.d.ts +8 -6
  62. package/cjs/DateRangePicker/DateRangePicker.js +126 -107
  63. package/cjs/DateRangePicker/types.d.ts +2 -1
  64. package/cjs/DateRangePicker/utils.d.ts +6 -6
  65. package/cjs/DateRangePicker/utils.js +7 -2
  66. package/cjs/Disclosure/Disclosure.js +4 -2
  67. package/cjs/Disclosure/DisclosureButton.js +9 -7
  68. package/cjs/Disclosure/DisclosureContent.js +4 -6
  69. package/cjs/Disclosure/DisclosureContext.d.ts +2 -2
  70. package/cjs/Disclosure/useDisclosureContext.d.ts +2 -0
  71. package/cjs/Disclosure/useDisclosureContext.js +20 -0
  72. package/cjs/Dropdown/Dropdown.d.ts +1 -1
  73. package/cjs/Dropdown/DropdownContext.d.ts +2 -2
  74. package/cjs/Dropdown/DropdownItem.js +3 -2
  75. package/cjs/Dropdown/DropdownMenu.d.ts +3 -3
  76. package/cjs/Dropdown/DropdownState.d.ts +1 -1
  77. package/cjs/Dropdown/DropdownToggle.js +2 -1
  78. package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
  79. package/cjs/Form/Form.js +1 -1
  80. package/cjs/Form/FormContext.d.ts +1 -1
  81. package/cjs/FormControl/FormControl.d.ts +1 -1
  82. package/cjs/FormControl/FormControl.js +5 -4
  83. package/cjs/FormGroup/FormGroup.d.ts +1 -1
  84. package/cjs/Input/Input.d.ts +3 -2
  85. package/cjs/InputGroup/InputGroup.d.ts +1 -1
  86. package/cjs/InputNumber/InputNumber.js +6 -2
  87. package/cjs/InputPicker/InputAutosize.js +4 -4
  88. package/cjs/InputPicker/InputPicker.d.ts +2 -2
  89. package/cjs/InputPicker/InputPicker.js +16 -11
  90. package/cjs/List/ListContext.d.ts +1 -1
  91. package/cjs/List/ListContext.js +8 -1
  92. package/cjs/List/helper/AutoScroller.js +4 -2
  93. package/cjs/List/helper/useManager.d.ts +3 -3
  94. package/cjs/List/helper/useManager.js +1 -1
  95. package/cjs/List/helper/useSortHelper.d.ts +3 -3
  96. package/cjs/List/helper/useSortHelper.js +6 -4
  97. package/cjs/List/helper/utils.d.ts +2 -2
  98. package/cjs/MaskedInput/MaskedInput.d.ts +5 -42
  99. package/cjs/MaskedInput/MaskedInput.js +9 -63
  100. package/cjs/MaskedInput/TextMask.d.ts +43 -0
  101. package/cjs/MaskedInput/TextMask.js +80 -0
  102. package/cjs/MaskedInput/adjustCaretPosition.d.ts +6 -6
  103. package/cjs/MaskedInput/conformToMask.js +5 -4
  104. package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  105. package/cjs/MaskedInput/utilities.d.ts +1 -1
  106. package/cjs/Menu/Menu.js +60 -41
  107. package/cjs/Menu/MenuContext.d.ts +1 -1
  108. package/cjs/Menu/MenuItem.d.ts +1 -1
  109. package/cjs/Menu/MenuItem.js +31 -23
  110. package/cjs/Menu/Menubar.js +8 -8
  111. package/cjs/Menu/useMenu.js +17 -7
  112. package/cjs/Modal/Modal.js +12 -6
  113. package/cjs/Modal/ModalContext.d.ts +2 -2
  114. package/cjs/Modal/utils.d.ts +1 -1
  115. package/cjs/Modal/utils.js +12 -15
  116. package/cjs/MultiCascader/DropdownMenu.d.ts +4 -4
  117. package/cjs/MultiCascader/MultiCascader.js +6 -6
  118. package/cjs/MultiCascader/utils.d.ts +14 -14
  119. package/cjs/Nav/Nav.d.ts +1 -1
  120. package/cjs/Nav/NavContext.d.ts +1 -1
  121. package/cjs/Nav/NavItem.d.ts +1 -1
  122. package/cjs/Navbar/Navbar.js +1 -1
  123. package/cjs/Navbar/NavbarItem.d.ts +1 -1
  124. package/cjs/Overlay/Modal.d.ts +2 -2
  125. package/cjs/Overlay/Modal.js +41 -31
  126. package/cjs/Overlay/ModalManager.d.ts +17 -8
  127. package/cjs/Overlay/ModalManager.js +11 -20
  128. package/cjs/Overlay/Overlay.d.ts +2 -2
  129. package/cjs/Overlay/Overlay.js +1 -1
  130. package/cjs/Overlay/OverlayTrigger.d.ts +11 -11
  131. package/cjs/Overlay/OverlayTrigger.js +14 -6
  132. package/cjs/Overlay/Position.d.ts +3 -3
  133. package/cjs/Overlay/Position.js +21 -12
  134. package/cjs/Overlay/positionUtils.d.ts +1 -1
  135. package/cjs/Overlay/positionUtils.js +8 -8
  136. package/cjs/Pagination/Pagination.d.ts +1 -1
  137. package/cjs/Pagination/PaginationButton.d.ts +3 -3
  138. package/cjs/Pagination/PaginationGroup.js +5 -3
  139. package/cjs/Panel/Panel.d.ts +1 -1
  140. package/cjs/Panel/Panel.js +2 -2
  141. package/cjs/PanelGroup/PanelGroup.d.ts +2 -2
  142. package/cjs/Picker/DropdownMenu.d.ts +8 -5
  143. package/cjs/Picker/DropdownMenu.js +5 -5
  144. package/cjs/Picker/PickerOverlay.js +4 -3
  145. package/cjs/Picker/PickerToggle.js +11 -8
  146. package/cjs/Picker/PickerToggleTrigger.d.ts +2 -6
  147. package/cjs/Picker/SearchBar.d.ts +1 -1
  148. package/cjs/Picker/SelectedElement.js +2 -1
  149. package/cjs/Picker/VirtualizedList.d.ts +29 -2
  150. package/cjs/Picker/propTypes.d.ts +2 -2
  151. package/cjs/Picker/utils.d.ts +17 -25
  152. package/cjs/Picker/utils.js +71 -46
  153. package/cjs/Placeholder/PlaceholderGrid.js +1 -1
  154. package/cjs/Plaintext/Plaintext.js +2 -1
  155. package/cjs/Radio/Radio.d.ts +1 -1
  156. package/cjs/RadioGroup/RadioGroup.d.ts +2 -2
  157. package/cjs/RadioGroup/RadioGroup.js +3 -3
  158. package/cjs/RangeSlider/RangeSlider.d.ts +2 -2
  159. package/cjs/RangeSlider/RangeSlider.js +6 -4
  160. package/cjs/Rate/Character.js +4 -2
  161. package/cjs/Rate/Rate.js +5 -2
  162. package/cjs/Ripple/Ripple.js +1 -1
  163. package/cjs/SelectPicker/SelectPicker.js +4 -4
  164. package/cjs/Sidenav/Node.d.ts +1 -1
  165. package/cjs/Sidenav/Sidenav.d.ts +4 -4
  166. package/cjs/Sidenav/Sidenav.js +5 -2
  167. package/cjs/Sidenav/SidenavDropdown.js +11 -8
  168. package/cjs/Sidenav/SidenavDropdownItem.js +10 -5
  169. package/cjs/Sidenav/SidenavDropdownMenu.js +9 -5
  170. package/cjs/Sidenav/SidenavItem.d.ts +1 -1
  171. package/cjs/Sidenav/SidenavItem.js +4 -0
  172. package/cjs/Slider/Graduated.d.ts +5 -5
  173. package/cjs/Slider/Handle.d.ts +1 -1
  174. package/cjs/Slider/Handle.js +10 -6
  175. package/cjs/Slider/Mark.d.ts +1 -1
  176. package/cjs/Slider/Slider.d.ts +1 -1
  177. package/cjs/Slider/Slider.js +2 -2
  178. package/cjs/Slider/utils.d.ts +2 -1
  179. package/cjs/Slider/utils.js +4 -5
  180. package/cjs/Steps/StepItem.js +2 -2
  181. package/cjs/TagInput/index.js +1 -1
  182. package/cjs/Toggle/Toggle.js +1 -1
  183. package/cjs/Tree/Tree.d.ts +3 -1
  184. package/cjs/TreePicker/TreeNode.js +6 -8
  185. package/cjs/TreePicker/TreePicker.js +36 -27
  186. package/cjs/Uploader/UploadFileItem.d.ts +1 -1
  187. package/cjs/Uploader/UploadFileItem.js +2 -2
  188. package/cjs/Uploader/UploadTrigger.d.ts +1 -1
  189. package/cjs/Uploader/UploadTrigger.js +2 -3
  190. package/cjs/Uploader/Uploader.d.ts +5 -5
  191. package/cjs/Uploader/Uploader.js +1 -2
  192. package/cjs/index.d.ts +2 -0
  193. package/cjs/index.js +5 -1
  194. package/cjs/locales/index.d.ts +3 -3
  195. package/cjs/toaster/ToastContainer.d.ts +1 -1
  196. package/cjs/toaster/ToastContainer.js +1 -1
  197. package/cjs/toaster/toaster.js +3 -1
  198. package/cjs/utils/BrowserDetection.js +1 -1
  199. package/cjs/utils/ReactChildren.d.ts +2 -2
  200. package/cjs/utils/ajaxUpload.d.ts +1 -1
  201. package/cjs/utils/ajaxUpload.js +5 -4
  202. package/cjs/utils/appendTooltip.d.ts +1 -1
  203. package/cjs/utils/constants.d.ts +4 -4
  204. package/cjs/utils/createChainedFunction.d.ts +1 -1
  205. package/cjs/utils/getDataGroupBy.d.ts +1 -1
  206. package/cjs/utils/mergeRefs.d.ts +2 -2
  207. package/cjs/utils/previewFile.d.ts +1 -1
  208. package/cjs/utils/propTypeChecker.d.ts +6 -2
  209. package/cjs/utils/propTypeChecker.js +7 -6
  210. package/cjs/utils/reactToString.d.ts +2 -1
  211. package/cjs/utils/statusIcons.d.ts +1 -1
  212. package/cjs/utils/stringToObject.d.ts +1 -1
  213. package/cjs/utils/treeUtils.d.ts +32 -29
  214. package/cjs/utils/treeUtils.js +46 -23
  215. package/cjs/utils/useControlled.d.ts +6 -1
  216. package/cjs/utils/useControlled.js +0 -8
  217. package/cjs/utils/useCustom.js +6 -4
  218. package/cjs/utils/useElementResize.d.ts +1 -1
  219. package/cjs/utils/useElementResize.js +11 -6
  220. package/cjs/utils/useFocus.d.ts +2 -2
  221. package/cjs/utils/usePortal.d.ts +1 -1
  222. package/cjs/utils/useRootClose.d.ts +2 -2
  223. package/cjs/utils/useTimeout.d.ts +1 -1
  224. package/cjs/utils/useTimeout.js +5 -3
  225. package/dist/rsuite-rtl.css +85 -165
  226. package/dist/rsuite-rtl.min.css +1 -1
  227. package/dist/rsuite-rtl.min.css.map +1 -1
  228. package/dist/rsuite.css +85 -165
  229. package/dist/rsuite.js +468 -445
  230. package/dist/rsuite.js.map +1 -1
  231. package/dist/rsuite.min.css +1 -1
  232. package/dist/rsuite.min.css.map +1 -1
  233. package/dist/rsuite.min.js +1 -1
  234. package/dist/rsuite.min.js.LICENSE.txt +9 -0
  235. package/dist/rsuite.min.js.map +1 -1
  236. package/esm/@types/common.d.ts +9 -8
  237. package/esm/@types/utils.d.ts +12 -0
  238. package/esm/Affix/Affix.js +5 -5
  239. package/esm/Animation/Transition.d.ts +21 -12
  240. package/esm/Animation/Transition.js +4 -1
  241. package/esm/AutoComplete/AutoComplete.js +1 -1
  242. package/esm/AutoComplete/utils.d.ts +1 -1
  243. package/esm/Avatar/Avatar.js +7 -3
  244. package/esm/AvatarGroup/AvatarGroup.d.ts +15 -0
  245. package/esm/AvatarGroup/AvatarGroup.js +54 -0
  246. package/esm/AvatarGroup/index.d.ts +3 -0
  247. package/esm/AvatarGroup/index.js +2 -0
  248. package/esm/Breadcrumb/Breadcrumb.js +1 -1
  249. package/esm/Button/Button.js +6 -2
  250. package/esm/ButtonGroup/ButtonGroup.js +7 -2
  251. package/esm/ButtonGroup/ButtonGroupContext.d.ts +7 -0
  252. package/esm/ButtonGroup/ButtonGroupContext.js +3 -0
  253. package/esm/ButtonGroup/index.d.ts +2 -0
  254. package/esm/ButtonGroup/index.js +2 -0
  255. package/esm/Calendar/Calendar.d.ts +4 -4
  256. package/esm/Calendar/Calendar.js +5 -2
  257. package/esm/Calendar/CalendarContext.js +1 -1
  258. package/esm/Calendar/TableRow.js +1 -1
  259. package/esm/Calendar/TimeDropdown.js +5 -4
  260. package/esm/Calendar/types.d.ts +2 -2
  261. package/esm/Calendar/useCalendarDate.d.ts +2 -2
  262. package/esm/Carousel/Carousel.d.ts +2 -2
  263. package/esm/Carousel/Carousel.js +1 -1
  264. package/esm/Cascader/Cascader.d.ts +1 -1
  265. package/esm/Cascader/Cascader.js +10 -10
  266. package/esm/Cascader/DropdownMenu.d.ts +5 -4
  267. package/esm/Cascader/utils.d.ts +3 -3
  268. package/esm/CheckPicker/CheckPicker.js +4 -4
  269. package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
  270. package/esm/CheckTreePicker/CheckTreeNode.js +4 -7
  271. package/esm/CheckTreePicker/CheckTreePicker.js +33 -25
  272. package/esm/CheckTreePicker/utils.d.ts +3 -1
  273. package/esm/CheckTreePicker/utils.js +12 -10
  274. package/esm/Checkbox/Checkbox.d.ts +1 -1
  275. package/esm/CheckboxGroup/CheckboxGroup.js +2 -2
  276. package/esm/CustomProvider/CustomProvider.d.ts +31 -57
  277. package/esm/DOMHelper/index.d.ts +12 -12
  278. package/esm/DatePicker/DatePicker.d.ts +1 -1
  279. package/esm/DatePicker/DatePicker.js +14 -9
  280. package/esm/DatePicker/Toolbar.d.ts +12 -9
  281. package/esm/DatePicker/Toolbar.js +6 -8
  282. package/esm/DatePicker/types.d.ts +4 -4
  283. package/esm/DatePicker/utils.d.ts +4 -3
  284. package/esm/DateRangePicker/Calendar.d.ts +9 -7
  285. package/esm/DateRangePicker/Calendar.js +28 -6
  286. package/esm/DateRangePicker/DateRangePicker.d.ts +8 -6
  287. package/esm/DateRangePicker/DateRangePicker.js +124 -107
  288. package/esm/DateRangePicker/types.d.ts +2 -1
  289. package/esm/DateRangePicker/utils.d.ts +6 -6
  290. package/esm/DateRangePicker/utils.js +6 -2
  291. package/esm/Disclosure/Disclosure.js +4 -2
  292. package/esm/Disclosure/DisclosureButton.js +8 -7
  293. package/esm/Disclosure/DisclosureContent.js +5 -7
  294. package/esm/Disclosure/DisclosureContext.d.ts +2 -2
  295. package/esm/Disclosure/useDisclosureContext.d.ts +2 -0
  296. package/esm/Disclosure/useDisclosureContext.js +11 -0
  297. package/esm/Dropdown/Dropdown.d.ts +1 -1
  298. package/esm/Dropdown/DropdownContext.d.ts +2 -2
  299. package/esm/Dropdown/DropdownItem.js +3 -2
  300. package/esm/Dropdown/DropdownMenu.d.ts +3 -3
  301. package/esm/Dropdown/DropdownState.d.ts +1 -1
  302. package/esm/Dropdown/DropdownToggle.js +2 -1
  303. package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
  304. package/esm/Form/Form.js +1 -1
  305. package/esm/Form/FormContext.d.ts +1 -1
  306. package/esm/FormControl/FormControl.d.ts +1 -1
  307. package/esm/FormControl/FormControl.js +5 -4
  308. package/esm/FormGroup/FormGroup.d.ts +1 -1
  309. package/esm/Input/Input.d.ts +3 -2
  310. package/esm/InputGroup/InputGroup.d.ts +1 -1
  311. package/esm/InputNumber/InputNumber.js +6 -2
  312. package/esm/InputPicker/InputAutosize.js +4 -4
  313. package/esm/InputPicker/InputPicker.d.ts +2 -2
  314. package/esm/InputPicker/InputPicker.js +16 -11
  315. package/esm/List/ListContext.d.ts +1 -1
  316. package/esm/List/ListContext.js +7 -1
  317. package/esm/List/helper/AutoScroller.js +4 -2
  318. package/esm/List/helper/useManager.d.ts +3 -3
  319. package/esm/List/helper/useManager.js +1 -1
  320. package/esm/List/helper/useSortHelper.d.ts +3 -3
  321. package/esm/List/helper/useSortHelper.js +6 -4
  322. package/esm/List/helper/utils.d.ts +2 -2
  323. package/esm/MaskedInput/MaskedInput.d.ts +5 -42
  324. package/esm/MaskedInput/MaskedInput.js +9 -63
  325. package/esm/MaskedInput/TextMask.d.ts +43 -0
  326. package/esm/MaskedInput/TextMask.js +67 -0
  327. package/esm/MaskedInput/adjustCaretPosition.d.ts +6 -6
  328. package/esm/MaskedInput/conformToMask.js +5 -4
  329. package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
  330. package/esm/MaskedInput/utilities.d.ts +1 -1
  331. package/esm/Menu/Menu.js +59 -43
  332. package/esm/Menu/MenuContext.d.ts +1 -1
  333. package/esm/Menu/MenuItem.d.ts +1 -1
  334. package/esm/Menu/MenuItem.js +30 -23
  335. package/esm/Menu/Menubar.js +7 -8
  336. package/esm/Menu/useMenu.js +17 -7
  337. package/esm/Modal/Modal.js +12 -6
  338. package/esm/Modal/ModalContext.d.ts +2 -2
  339. package/esm/Modal/utils.d.ts +1 -1
  340. package/esm/Modal/utils.js +11 -12
  341. package/esm/MultiCascader/DropdownMenu.d.ts +4 -4
  342. package/esm/MultiCascader/MultiCascader.js +6 -6
  343. package/esm/MultiCascader/utils.d.ts +14 -14
  344. package/esm/Nav/Nav.d.ts +1 -1
  345. package/esm/Nav/NavContext.d.ts +1 -1
  346. package/esm/Nav/NavItem.d.ts +1 -1
  347. package/esm/Navbar/Navbar.js +1 -1
  348. package/esm/Navbar/NavbarItem.d.ts +1 -1
  349. package/esm/Overlay/Modal.d.ts +2 -2
  350. package/esm/Overlay/Modal.js +42 -32
  351. package/esm/Overlay/ModalManager.d.ts +17 -8
  352. package/esm/Overlay/ModalManager.js +11 -20
  353. package/esm/Overlay/Overlay.d.ts +2 -2
  354. package/esm/Overlay/Overlay.js +1 -1
  355. package/esm/Overlay/OverlayTrigger.d.ts +11 -11
  356. package/esm/Overlay/OverlayTrigger.js +14 -6
  357. package/esm/Overlay/Position.d.ts +3 -3
  358. package/esm/Overlay/Position.js +20 -11
  359. package/esm/Overlay/positionUtils.d.ts +1 -1
  360. package/esm/Overlay/positionUtils.js +6 -6
  361. package/esm/Pagination/Pagination.d.ts +1 -1
  362. package/esm/Pagination/PaginationButton.d.ts +3 -3
  363. package/esm/Pagination/PaginationGroup.js +5 -3
  364. package/esm/Panel/Panel.d.ts +1 -1
  365. package/esm/Panel/Panel.js +2 -2
  366. package/esm/PanelGroup/PanelGroup.d.ts +2 -2
  367. package/esm/Picker/DropdownMenu.d.ts +8 -5
  368. package/esm/Picker/DropdownMenu.js +5 -5
  369. package/esm/Picker/PickerOverlay.js +4 -3
  370. package/esm/Picker/PickerToggle.js +11 -8
  371. package/esm/Picker/PickerToggleTrigger.d.ts +2 -6
  372. package/esm/Picker/SearchBar.d.ts +1 -1
  373. package/esm/Picker/SelectedElement.js +2 -1
  374. package/esm/Picker/VirtualizedList.d.ts +29 -2
  375. package/esm/Picker/propTypes.d.ts +2 -2
  376. package/esm/Picker/utils.d.ts +17 -25
  377. package/esm/Picker/utils.js +70 -46
  378. package/esm/Placeholder/PlaceholderGrid.js +1 -1
  379. package/esm/Plaintext/Plaintext.js +2 -1
  380. package/esm/Radio/Radio.d.ts +1 -1
  381. package/esm/RadioGroup/RadioGroup.d.ts +2 -2
  382. package/esm/RadioGroup/RadioGroup.js +3 -3
  383. package/esm/RangeSlider/RangeSlider.d.ts +2 -2
  384. package/esm/RangeSlider/RangeSlider.js +5 -4
  385. package/esm/Rate/Character.js +3 -2
  386. package/esm/Rate/Rate.js +4 -2
  387. package/esm/Ripple/Ripple.js +1 -1
  388. package/esm/SelectPicker/SelectPicker.js +4 -4
  389. package/esm/Sidenav/Node.d.ts +1 -1
  390. package/esm/Sidenav/Sidenav.d.ts +4 -4
  391. package/esm/Sidenav/Sidenav.js +5 -2
  392. package/esm/Sidenav/SidenavDropdown.js +11 -7
  393. package/esm/Sidenav/SidenavDropdownItem.js +11 -5
  394. package/esm/Sidenav/SidenavDropdownMenu.js +9 -5
  395. package/esm/Sidenav/SidenavItem.d.ts +1 -1
  396. package/esm/Sidenav/SidenavItem.js +4 -0
  397. package/esm/Slider/Graduated.d.ts +5 -5
  398. package/esm/Slider/Handle.d.ts +1 -1
  399. package/esm/Slider/Handle.js +10 -6
  400. package/esm/Slider/Mark.d.ts +1 -1
  401. package/esm/Slider/Slider.d.ts +1 -1
  402. package/esm/Slider/Slider.js +2 -2
  403. package/esm/Slider/utils.d.ts +2 -1
  404. package/esm/Slider/utils.js +5 -2
  405. package/esm/Steps/StepItem.js +2 -2
  406. package/esm/TagInput/index.js +1 -1
  407. package/esm/Toggle/Toggle.js +1 -1
  408. package/esm/Tree/Tree.d.ts +3 -1
  409. package/esm/TreePicker/TreeNode.js +4 -7
  410. package/esm/TreePicker/TreePicker.js +35 -25
  411. package/esm/Uploader/UploadFileItem.d.ts +1 -1
  412. package/esm/Uploader/UploadFileItem.js +2 -2
  413. package/esm/Uploader/UploadTrigger.d.ts +1 -1
  414. package/esm/Uploader/UploadTrigger.js +2 -3
  415. package/esm/Uploader/Uploader.d.ts +5 -5
  416. package/esm/Uploader/Uploader.js +1 -2
  417. package/esm/index.d.ts +2 -0
  418. package/esm/index.js +1 -0
  419. package/esm/locales/index.d.ts +3 -3
  420. package/esm/toaster/ToastContainer.d.ts +1 -1
  421. package/esm/toaster/ToastContainer.js +1 -1
  422. package/esm/toaster/toaster.js +3 -1
  423. package/esm/utils/BrowserDetection.js +1 -1
  424. package/esm/utils/ReactChildren.d.ts +2 -2
  425. package/esm/utils/ajaxUpload.d.ts +1 -1
  426. package/esm/utils/ajaxUpload.js +5 -4
  427. package/esm/utils/appendTooltip.d.ts +1 -1
  428. package/esm/utils/constants.d.ts +4 -4
  429. package/esm/utils/createChainedFunction.d.ts +1 -1
  430. package/esm/utils/getDataGroupBy.d.ts +1 -1
  431. package/esm/utils/mergeRefs.d.ts +2 -2
  432. package/esm/utils/previewFile.d.ts +1 -1
  433. package/esm/utils/propTypeChecker.d.ts +6 -2
  434. package/esm/utils/propTypeChecker.js +7 -6
  435. package/esm/utils/reactToString.d.ts +2 -1
  436. package/esm/utils/statusIcons.d.ts +1 -1
  437. package/esm/utils/stringToObject.d.ts +1 -1
  438. package/esm/utils/treeUtils.d.ts +32 -29
  439. package/esm/utils/treeUtils.js +45 -21
  440. package/esm/utils/useControlled.d.ts +6 -1
  441. package/esm/utils/useControlled.js +0 -8
  442. package/esm/utils/useCustom.js +6 -4
  443. package/esm/utils/useElementResize.d.ts +1 -1
  444. package/esm/utils/useElementResize.js +12 -5
  445. package/esm/utils/useFocus.d.ts +2 -2
  446. package/esm/utils/usePortal.d.ts +1 -1
  447. package/esm/utils/useRootClose.d.ts +2 -2
  448. package/esm/utils/useTimeout.d.ts +1 -1
  449. package/esm/utils/useTimeout.js +5 -3
  450. package/package.json +4 -4
  451. package/styles/index.less +1 -0
@@ -21,6 +21,14 @@ var _Calendar = _interopRequireWildcard(require("../Calendar/Calendar"));
21
21
 
22
22
  var _utils = require("../utils");
23
23
 
24
+ /**
25
+ * Omit the time in the date, which is used to compare and judge the date.
26
+ * eg: isAfter/isBefore
27
+ */
28
+ function omitTime(date) {
29
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
30
+ }
31
+
24
32
  var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
25
33
  var _props$as = props.as,
26
34
  Component = _props$as === void 0 ? _Calendar.default : _props$as,
@@ -34,10 +42,11 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
34
42
  limitEndYear = props.limitEndYear,
35
43
  onChangeCalendarDate = props.onChangeCalendarDate,
36
44
  onChangeCalendarTime = props.onChangeCalendarTime,
45
+ onToggleMeridian = props.onToggleMeridian,
37
46
  showOneCalendar = props.showOneCalendar,
38
47
  _props$value = props.value,
39
48
  value = _props$value === void 0 ? [] : _props$value,
40
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "onChangeCalendarTime", "showOneCalendar", "value"]);
49
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "onChangeCalendarDate", "onChangeCalendarTime", "onToggleMeridian", "showOneCalendar", "value"]);
41
50
 
42
51
  var _useState = (0, _react.useState)(),
43
52
  calendarState = _useState[0],
@@ -54,8 +63,11 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
54
63
  setCalendarState(undefined);
55
64
  }, [index, onChangeCalendarDate]);
56
65
  var handleChangePageTime = (0, _react.useCallback)(function (nextPageDate) {
57
- onChangeCalendarTime(index, nextPageDate);
66
+ onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);
58
67
  }, [index, onChangeCalendarTime]);
68
+ var handleToggleMeridian = (0, _react.useCallback)(function (event) {
69
+ onToggleMeridian(index, event);
70
+ }, [index, onToggleMeridian]);
59
71
  var toggleMonthDropdown = (0, _react.useCallback)(function () {
60
72
  setCalendarState(calendarState === _Calendar.CalendarState.DROP_MONTH ? undefined : _Calendar.CalendarState.DROP_MONTH);
61
73
  }, [calendarState]);
@@ -75,22 +87,30 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
75
87
  onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward((0, _dateUtils.addMonths)(getCalendarDate(), -1));
76
88
  }, [getCalendarDate, onMoveBackward]);
77
89
  var disabledBackward = (0, _react.useCallback)(function () {
78
- var after = (0, _dateUtils.isAfter)((0, _dateUtils.setDate)(calendarDate[1], 1), (0, _dateUtils.setDate)((0, _dateUtils.addMonths)(calendarDate[0], 1), 1));
79
-
90
+ // Do not disable the Backward button on the first calendar.
80
91
  if (index === 0) {
81
92
  return false;
82
93
  }
83
94
 
95
+ var startDate = (0, _dateUtils.setDate)((0, _dateUtils.addMonths)(calendarDate[0], 1), 1);
96
+ var endDate = (0, _dateUtils.setDate)(omitTime(calendarDate[1]), 1);
97
+ var after = (0, _dateUtils.isAfter)(endDate, startDate);
84
98
  return !after;
85
99
  }, [calendarDate, index]);
86
100
  var disabledForward = (0, _react.useCallback)(function () {
87
- if (showOneCalendar) return false;
88
- var after = (0, _dateUtils.isAfter)((0, _dateUtils.setDate)(calendarDate[1], 1), (0, _dateUtils.setDate)((0, _dateUtils.addMonths)(calendarDate[0], 1), 1));
101
+ // If only one calendar is displayed, do not disable
102
+ if (showOneCalendar) {
103
+ return false;
104
+ } // Do not disable the Forward button on the second calendar.
105
+
89
106
 
90
107
  if (index === 1) {
91
108
  return false;
92
109
  }
93
110
 
111
+ var startDate = (0, _dateUtils.setDate)((0, _dateUtils.addMonths)(omitTime(calendarDate[0]), 1), 1);
112
+ var endDate = (0, _dateUtils.setDate)(omitTime(calendarDate[1]), 1);
113
+ var after = (0, _dateUtils.isAfter)(endDate, startDate);
94
114
  return !after;
95
115
  }, [calendarDate, index, showOneCalendar]);
96
116
  var disabledMonth = (0, _react.useCallback)(function (date) {
@@ -126,6 +146,7 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
126
146
  onMoveForward: handleMoveForward,
127
147
  onToggleMonthDropdown: toggleMonthDropdown,
128
148
  onToggleTimeDropdown: toggleTimeDropdown,
149
+ onToggleMeridian: handleToggleMeridian,
129
150
  calendarDate: getCalendarDate(),
130
151
  ref: ref
131
152
  }));
@@ -1,14 +1,14 @@
1
1
  import React from 'react';
2
2
  import { FormControlBaseProps, PickerBaseProps } from '../@types/common';
3
3
  import { PickerComponent } from '../Picker';
4
- import { DisabledDateFunction, RangeType, ValueType } from './types';
5
- export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<ValueType> {
4
+ import { DisabledDateFunction, RangeType, DateRange } from './types';
5
+ export interface DateRangePickerProps extends PickerBaseProps, FormControlBaseProps<DateRange | null> {
6
6
  /** Configure shortcut options */
7
7
  ranges?: RangeType[];
8
8
  /** Format date */
9
9
  format?: string;
10
10
  /** The date range that will be selected when you click on the date */
11
- hoverRange?: 'week' | 'month' | ((date: Date) => ValueType);
11
+ hoverRange?: 'week' | 'month' | ((date: Date) => DateRange);
12
12
  /** Whether to click once on selected date range,Can be used with hoverRange */
13
13
  oneTap?: boolean;
14
14
  /** ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day */
@@ -19,8 +19,10 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
19
19
  showWeekNumbers?: boolean;
20
20
  /** Show only one calendar select */
21
21
  showOneCalendar?: boolean;
22
+ /** Meridian format */
23
+ showMeridian?: boolean;
22
24
  /** Set default date for calendar */
23
- defaultCalendarValue?: ValueType;
25
+ defaultCalendarValue?: DateRange;
24
26
  /** The character that separates two dates */
25
27
  character?: string;
26
28
  /** Disabled date */
@@ -28,11 +30,11 @@ export interface DateRangePickerProps extends PickerBaseProps, FormControlBasePr
28
30
  /** Called when the option is selected */
29
31
  onSelect?: (date: Date, event?: React.SyntheticEvent) => void;
30
32
  /** Called after clicking the OK button */
31
- onOk?: (date: ValueType, event: React.SyntheticEvent) => void;
33
+ onOk?: (date: DateRange, event: React.SyntheticEvent) => void;
32
34
  /** Called when clean */
33
35
  onClean?: (event: React.MouseEvent) => void;
34
36
  /** Custom render value */
35
- renderValue?: (value: ValueType, format: string) => React.ReactNode;
37
+ renderValue?: (value: DateRange, format: string) => React.ReactNode;
36
38
  }
37
39
  export interface DateRangePicker extends PickerComponent<DateRangePickerProps> {
38
40
  /** Allow the maximum number of days specified, other dates are disabled */
@@ -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);
@@ -219,29 +217,27 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
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,41 @@ 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, selectedDates, 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
296
  }, [getHoverRangeValue, hoverRange]);
300
- var handleSelectValueChange = (0, _react.useCallback)(function (date, event) {
301
- var nextSelectValue = Array.from(hoverValue);
297
+ var handleSelectDate = (0, _react.useCallback)(function (date, event) {
298
+ var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];
302
299
  var hoverRangeValue = getHoverRangeValue(date);
303
- var noHoverRangeValid = hoverRangeValue.length !== 2; // in `oneTap` mode
300
+ var noHoverRangeValid = (0, _isNil.default)(hoverRangeValue); // in `oneTap` mode
304
301
 
305
302
  if (hasDoneSelect.current && oneTap) {
306
303
  handleValueUpdate(event, noHoverRangeValid ? [(0, _utils2.setTimingMargin)(date), (0, _utils2.setTimingMargin)(date, 'right')] : hoverRangeValue);
@@ -312,32 +309,32 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
312
309
  if (noHoverRangeValid) {
313
310
  // start select
314
311
  if (hasDoneSelect.current) {
315
- nextSelectValue = [date];
312
+ nextSelectDates = [date];
316
313
  } else {
317
314
  // finish select
318
- nextSelectValue[1] = date;
315
+ nextSelectDates[1] = date;
319
316
  }
320
317
  } else {
321
318
  if (!hasDoneSelect.current) {
322
- nextSelectValue = selectValue;
319
+ nextSelectDates = selectedDates;
323
320
  selectRangeValueRef.current = null;
324
321
  } else {
325
- nextSelectValue = hoverRangeValue;
322
+ nextSelectDates = hoverRangeValue;
326
323
  selectRangeValueRef.current = hoverRangeValue;
327
324
  }
328
325
  } // If user have completed the selection, then sort
329
326
 
330
327
 
331
- if (nextSelectValue.length === 2 && _utils.DateUtils.isAfter(nextSelectValue[0], nextSelectValue[1])) {
332
- nextSelectValue.reverse();
328
+ if (nextSelectDates.length === 2 && _utils.DateUtils.isAfter(nextSelectDates[0], nextSelectDates[1])) {
329
+ nextSelectDates.reverse();
333
330
  }
334
331
 
335
- setHoverValue(nextSelectValue);
336
- setSelectValue(nextSelectValue);
337
- updateCalendarDate(nextSelectValue);
332
+ setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : null);
333
+ setSelectedDates(nextSelectDates);
334
+ updateCalendarDate(nextSelectDates);
338
335
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
339
336
  hasDoneSelect.current = !hasDoneSelect.current;
340
- }, [getHoverRangeValue, handleValueUpdate, hoverValue, onSelect, oneTap, selectValue, updateCalendarDate]);
337
+ }, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDate]);
341
338
  /**
342
339
  * If `selectValue` changed, there will be the following effects.
343
340
  * 1. Check if the selection is completed.
@@ -345,19 +342,17 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
345
342
  */
346
343
 
347
344
  (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;
345
+ var selectValueLength = selectedDates.length;
351
346
  var doneSelected = selectValueLength === 0 || selectValueLength === 2;
352
- doneSelected && setHoverValue([]);
353
- }, [selectValue]);
347
+ doneSelected && setHoverDateRange(null);
348
+ }, [selectedDates]);
354
349
  var handleChangeCalendarDate = (0, _react.useCallback)(function (index, date) {
355
350
  var nextCalendarDate = Array.from(calendarDate);
356
351
  nextCalendarDate[index] = date;
357
352
  updateCalendarDate(nextCalendarDate);
358
353
  }, [calendarDate, updateCalendarDate]);
359
354
  var handleChangeCalendarTime = (0, _react.useCallback)(function (index, date) {
360
- setSelectValue(function (prev) {
355
+ setSelectedDates(function (prev) {
361
356
  var next = [].concat(prev);
362
357
  var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
363
358
 
@@ -370,20 +365,42 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
370
365
  });
371
366
  handleChangeCalendarDate(index, date);
372
367
  }, [handleChangeCalendarDate]);
368
+ /**
369
+ * The callback triggered when PM/AM is switched.
370
+ */
371
+
372
+ var handleToggleMeridian = (0, _react.useCallback)(function (index) {
373
+ var next = Array.from(calendarDate);
374
+ var clonedDate = new Date(next[index].valueOf());
375
+
376
+ var hours = _utils.DateUtils.getHours(clonedDate);
377
+
378
+ var nextHours = hours >= 12 ? hours - 12 : hours + 12;
379
+ next[index] = _utils.DateUtils.setHours(clonedDate, nextHours);
380
+ setCalendarDate(next); // If the value already exists, update the value again.
381
+
382
+ if (selectedDates.length === 2) {
383
+ setSelectedDates(next);
384
+ }
385
+ }, [calendarDate, selectedDates]);
373
386
  /**
374
387
  * Toolbar operation callback function
375
388
  */
376
389
 
377
390
  var handleShortcutPageDate = (0, _react.useCallback)(function (value, closeOverlay, event) {
391
+ if (closeOverlay === void 0) {
392
+ closeOverlay = false;
393
+ }
394
+
378
395
  handleValueUpdate(event, value, closeOverlay);
379
396
  }, [handleValueUpdate]);
380
397
  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]);
398
+ handleValueUpdate(event, selectedDates);
399
+ onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
400
+ }, [handleValueUpdate, onOk, selectedDates]);
384
401
  var handleClean = (0, _react.useCallback)(function (event) {
385
- updateCalendarDate();
386
- handleValueUpdate(event, []);
402
+ updateCalendarDate(null);
403
+ handleValueUpdate(event, null);
387
404
  }, [handleValueUpdate, updateCalendarDate]);
388
405
  /**
389
406
  * Callback after the input box value is changed.
@@ -412,13 +429,13 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
412
429
  return;
413
430
  }
414
431
 
415
- if (disabledDate(startDate, selectValue, true, _utils.DATERANGE_DISABLED_TARGET.CALENDAR)) {
432
+ if (isDateDisabled(startDate, selectValue, true, _utils.DATERANGE_DISABLED_TARGET.CALENDAR)) {
416
433
  setInputState('Error');
417
434
  return;
418
435
  }
419
436
 
420
- setHoverValue(selectValue);
421
- setSelectValue(selectValue);
437
+ setHoverDateRange(selectValue);
438
+ setSelectedDates(selectValue);
422
439
  updateCalendarDate(selectValue);
423
440
  }, // eslint-disable-next-line react-hooks/exhaustive-deps
424
441
  [character, rangeFormatStr, updateCalendarDate]);
@@ -428,11 +445,11 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
428
445
 
429
446
  var handleInputPressEnd = (0, _react.useCallback)(function (event) {
430
447
  if (inputState === 'Typing') {
431
- handleValueUpdate(event, selectValue);
448
+ handleValueUpdate(event, selectedDates.length === 2 ? selectedDates : null);
432
449
  }
433
450
 
434
451
  setInputState('Initial');
435
- }, [handleValueUpdate, selectValue, inputState]);
452
+ }, [handleValueUpdate, selectedDates, inputState]);
436
453
  var handleEnter = (0, _react.useCallback)(function () {
437
454
  var nextCalendarDate;
438
455
 
@@ -442,13 +459,13 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
442
459
  nextCalendarDate = [_startDate, (0, _dateUtils.isSameMonth)(_startDate, endData) ? (0, _dateUtils.addMonths)(endData, 1) : endData];
443
460
  } else {
444
461
  nextCalendarDate = (0, _utils2.getCalendarDate)({
445
- value: defaultCalendarValue
462
+ value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
446
463
  });
447
464
  }
448
465
 
449
- setSelectValue(value);
466
+ setSelectedDates(value !== null && value !== void 0 ? value : []);
450
467
  updateCalendarDate(nextCalendarDate);
451
- }, [defaultCalendarValue, updateCalendarDate, setSelectValue, value]);
468
+ }, [defaultCalendarValue, updateCalendarDate, setSelectedDates, value]);
452
469
  var handleEntered = (0, _react.useCallback)(function () {
453
470
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
454
471
  setPickerToggleActive(true);
@@ -458,17 +475,16 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
458
475
  hasDoneSelect.current = true;
459
476
  onClose === null || onClose === void 0 ? void 0 : onClose();
460
477
  }, [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);
478
+ var isDateDisabled = (0, _react.useCallback)(function (date, selectDate, selectedDone, target) {
479
+ var _disabledDateProp;
480
+
481
+ return (_disabledDateProp = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target)) !== null && _disabledDateProp !== void 0 ? _disabledDateProp : false;
463
482
  }, [disabledDateProp]);
464
483
  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
484
+ // If the date is between the start and the end
468
485
  // the button is disabled
469
-
470
486
  while (_utils.DateUtils.isBefore(start, end) || _utils.DateUtils.isSameDay(start, end)) {
471
- if (disabledDate(start, nextSelectValue, hasDoneSelect.current, type)) {
487
+ if (isDateDisabled(start, selectedDates, hasDoneSelect.current, type)) {
472
488
  return true;
473
489
  }
474
490
 
@@ -476,17 +492,17 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
476
492
  }
477
493
 
478
494
  return false;
479
- }, [disabledDate, selectValue]);
495
+ }, [isDateDisabled, selectedDates]);
480
496
  var disabledOkButton = (0, _react.useCallback)(function () {
481
- var start = selectValue[0],
482
- end = selectValue[1];
497
+ var start = selectedDates[0],
498
+ end = selectedDates[1];
483
499
 
484
500
  if (!start || !end || !hasDoneSelect.current) {
485
501
  return true;
486
502
  }
487
503
 
488
504
  return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
489
- }, [disabledByBetween, selectValue]);
505
+ }, [disabledByBetween, selectedDates]);
490
506
  var disabledShortcutButton = (0, _react.useCallback)(function (value) {
491
507
  if (value === void 0) {
492
508
  value = [];
@@ -503,8 +519,8 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
503
519
  return disabledByBetween(start, end, _utils.DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
504
520
  }, [disabledByBetween]);
505
521
  var handleDisabledDate = (0, _react.useCallback)(function (date, values, type) {
506
- return disabledDate(date, values, hasDoneSelect.current, type);
507
- }, [disabledDate]);
522
+ return isDateDisabled(date, values, hasDoneSelect.current, type);
523
+ }, [isDateDisabled]);
508
524
  var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({
509
525
  triggerRef: triggerRef,
510
526
  targetRef: targetRef,
@@ -528,17 +544,19 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
528
544
  calendarDate: calendarDate,
529
545
  disabledDate: handleDisabledDate,
530
546
  format: formatStr,
531
- hoverRangeValue: hoverValue,
547
+ hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
532
548
  isoWeek: isoWeek,
533
549
  limitEndYear: limitEndYear,
534
550
  locale: locale,
535
551
  showOneCalendar: showOneCalendar,
536
552
  showWeekNumbers: showWeekNumbers,
537
- value: selectValue,
553
+ value: selectedDates,
554
+ showMeridian: showMeridian,
538
555
  onChangeCalendarDate: handleChangeCalendarDate,
539
556
  onChangeCalendarTime: handleChangeCalendarTime,
540
557
  onMouseMove: handleMouseMove,
541
- onSelect: handleSelectValueChange
558
+ onSelect: handleSelectDate,
559
+ onToggleMeridian: handleToggleMeridian
542
560
  };
543
561
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
544
562
  className: classes,
@@ -551,7 +569,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
551
569
  className: prefix('daterange-content')
552
570
  }, /*#__PURE__*/_react.default.createElement("div", {
553
571
  className: prefix('daterange-header')
554
- }, getDisplayString(selectValue)), /*#__PURE__*/_react.default.createElement("div", {
572
+ }, getDisplayString(selectedDates)), /*#__PURE__*/_react.default.createElement("div", {
555
573
  className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
556
574
  }, /*#__PURE__*/_react.default.createElement(_Calendar2.default, (0, _extends2.default)({
557
575
  index: 0
@@ -559,7 +577,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
559
577
  index: 1
560
578
  }, panelProps)))), /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
561
579
  locale: locale,
562
- calendarDate: selectValue,
580
+ calendarDate: selectedDates,
563
581
  disabledOkBtn: disabledOkButton,
564
582
  disabledShortcut: disabledShortcutButton,
565
583
  hideOkBtn: oneTap,
@@ -569,7 +587,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
569
587
  })));
570
588
  };
571
589
 
572
- var hasValue = value && value.length > 1;
590
+ var hasValue = !(0, _isNil.default)(value) && value.length > 1;
573
591
 
574
592
  var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {
575
593
  classPrefix: classPrefix,
@@ -612,7 +630,7 @@ var DateRangePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
612
630
  placement: placement,
613
631
  caretComponent: _Calendar.default,
614
632
  disabled: disabled
615
- }), getDisplayString())));
633
+ }), getDisplayString(value))));
616
634
  });
617
635
 
618
636
  DateRangePicker.after = disabledDateUtils.after;
@@ -634,11 +652,12 @@ DateRangePicker.propTypes = (0, _extends2.default)({}, _Picker.pickerPropTypes,
634
652
  isoWeek: _propTypes.default.bool,
635
653
  oneTap: _propTypes.default.bool,
636
654
  limitEndYear: _propTypes.default.number,
637
- showWeekNumbers: _propTypes.default.bool,
638
655
  onChange: _propTypes.default.func,
639
656
  onOk: _propTypes.default.func,
640
657
  disabledDate: _propTypes.default.func,
641
658
  onSelect: _propTypes.default.func,
659
+ showWeekNumbers: _propTypes.default.bool,
660
+ showMeridian: _propTypes.default.bool,
642
661
  showOneCalendar: _propTypes.default.bool
643
662
  });
644
663
  var _default = DateRangePicker;