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
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import IconCalendar from '@rsuite/icons/legacy/Calendar';
4
- import isUndefined from 'lodash/isUndefined';
4
+ import isNil from 'lodash/isNil';
5
5
  import omit from 'lodash/omit';
6
6
  import partial from 'lodash/partial';
7
7
  import pick from 'lodash/pick';
@@ -16,7 +16,7 @@ import Calendar from './Calendar';
16
16
  import * as disabledDateUtils from './disabledDateUtils';
17
17
  import { getCalendarDate, getMonthHoverRange, getWeekHoverRange, isSameRange, setTimingMargin } from './utils';
18
18
  var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
19
- var _ref, _merge;
19
+ var _ref, _ref2, _merge;
20
20
 
21
21
  var _props$as = props.as,
22
22
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -36,7 +36,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
36
36
  _props$format = props.format,
37
37
  formatStr = _props$format === void 0 ? 'yyyy-MM-dd' : _props$format,
38
38
  hoverRange = props.hoverRange,
39
- isoWeek = props.isoWeek,
39
+ _props$isoWeek = props.isoWeek,
40
+ isoWeek = _props$isoWeek === void 0 ? false : _props$isoWeek,
40
41
  _props$limitEndYear = props.limitEndYear,
41
42
  limitEndYear = _props$limitEndYear === void 0 ? 1000 : _props$limitEndYear,
42
43
  overrideLocale = props.locale,
@@ -52,6 +53,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
52
53
  _props$showOneCalenda = props.showOneCalendar,
53
54
  showOneCalendar = _props$showOneCalenda === void 0 ? false : _props$showOneCalenda,
54
55
  showWeekNumbers = props.showWeekNumbers,
56
+ showMeridian = props.showMeridian,
55
57
  style = props.style,
56
58
  toggleAs = props.toggleAs,
57
59
  valueProp = props.value,
@@ -64,7 +66,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
64
66
  onOk = props.onOk,
65
67
  onOpen = props.onOpen,
66
68
  onSelect = props.onSelect,
67
- rest = _objectWithoutPropertiesLoose(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"]);
69
+ rest = _objectWithoutPropertiesLoose(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"]);
68
70
 
69
71
  var _useClassNames = useClassNames(classPrefix),
70
72
  merge = _useClassNames.merge,
@@ -77,7 +79,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
77
79
 
78
80
  var rangeFormatStr = "" + formatStr + character + formatStr;
79
81
 
80
- var _useControlled = useControlled(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : []),
82
+ var _useControlled = useControlled(valueProp, defaultValue !== null && defaultValue !== void 0 ? defaultValue : null),
81
83
  value = _useControlled[0],
82
84
  setValue = _useControlled[1];
83
85
  /**
@@ -99,17 +101,17 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
99
101
  */
100
102
 
101
103
  var _useState = useState((_ref = valueProp !== null && valueProp !== void 0 ? valueProp : defaultValue) !== null && _ref !== void 0 ? _ref : []),
102
- selectValue = _useState[0],
103
- setSelectValue = _useState[1]; // The date of the current hover, used to reduce the calculation of `handleMouseMove`
104
+ selectedDates = _useState[0],
105
+ setSelectedDates = _useState[1]; // The date of the current hover, used to reduce the calculation of `handleMouseMove`
104
106
 
105
107
 
106
- var _useState2 = useState([]),
107
- hoverValue = _useState2[0],
108
- setHoverValue = _useState2[1]; // The displayed calendar panel is rendered based on this value.
108
+ var _useState2 = useState(null),
109
+ hoverDateRange = _useState2[0],
110
+ setHoverDateRange = _useState2[1]; // The displayed calendar panel is rendered based on this value.
109
111
 
110
112
 
111
113
  var _useState3 = useState(getCalendarDate({
112
- value: valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue
114
+ value: (_ref2 = valueProp !== null && valueProp !== void 0 ? valueProp : defaultCalendarValue) !== null && _ref2 !== void 0 ? _ref2 : null
113
115
  })),
114
116
  calendarDate = _useState3[0],
115
117
  setCalendarDate = _useState3[1];
@@ -137,18 +139,18 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
137
139
  }, []); // if valueProp changed then update selectValue/hoverValue
138
140
 
139
141
  useEffect(function () {
140
- setSelectValue(valueProp !== null && valueProp !== void 0 ? valueProp : []);
141
- setHoverValue(valueProp !== null && valueProp !== void 0 ? valueProp : []);
142
+ setSelectedDates(valueProp !== null && valueProp !== void 0 ? valueProp : []);
143
+ setHoverDateRange(valueProp !== null && valueProp !== void 0 ? valueProp : null);
142
144
  }, [valueProp]);
143
145
 
144
146
  var _useState5 = useState(false),
145
147
  isPickerToggleActive = _useState5[0],
146
148
  setPickerToggleActive = _useState5[1];
147
149
 
148
- var rootRef = useRef();
149
- var overlayRef = useRef();
150
- var targetRef = useRef();
151
- var triggerRef = useRef();
150
+ var rootRef = useRef(null);
151
+ var overlayRef = useRef(null);
152
+ var targetRef = useRef(null);
153
+ var triggerRef = useRef(null);
152
154
  var handleCloseDropdown = useCallback(function () {
153
155
  var _triggerRef$current, _triggerRef$current$c;
154
156
 
@@ -161,14 +163,10 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
161
163
  rootRef: rootRef
162
164
  });
163
165
  var getDisplayString = useCallback(function (nextValue, isPlaintext) {
164
- var _nextValue, _nextValue2;
166
+ var _nextValue$, _nextValue$2;
165
167
 
166
- if (nextValue === void 0) {
167
- nextValue = value;
168
- }
169
-
170
- var startDate = (_nextValue = nextValue) === null || _nextValue === void 0 ? void 0 : _nextValue[0];
171
- var endDate = (_nextValue2 = nextValue) === null || _nextValue2 === void 0 ? void 0 : _nextValue2[1];
168
+ var startDate = (_nextValue$ = nextValue === null || nextValue === void 0 ? void 0 : nextValue[0]) !== null && _nextValue$ !== void 0 ? _nextValue$ : null;
169
+ var endDate = (_nextValue$2 = nextValue === null || nextValue === void 0 ? void 0 : nextValue[1]) !== null && _nextValue$2 !== void 0 ? _nextValue$2 : null;
172
170
 
173
171
  if (startDate && endDate) {
174
172
  var displayValue = [startDate, endDate].sort(compareAsc);
@@ -193,29 +191,27 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
193
191
  */
194
192
 
195
193
  var getHoverRangeValue = useCallback(function (date) {
196
- if (!hoverRange) {
197
- return [];
198
- }
199
-
200
- var hoverRangeFunc = hoverRange;
194
+ function getHoverRangeFunc() {
195
+ if (hoverRange === 'week') {
196
+ return partial(getWeekHoverRange, isoWeek);
197
+ } else if (hoverRange === 'month') {
198
+ return getMonthHoverRange;
199
+ }
201
200
 
202
- if (hoverRange === 'week') {
203
- hoverRangeFunc = partial(getWeekHoverRange, isoWeek);
201
+ return hoverRange;
204
202
  }
205
203
 
206
- if (hoverRangeFunc === 'month') {
207
- hoverRangeFunc = getMonthHoverRange;
208
- }
204
+ var hoverRangeFunc = getHoverRangeFunc();
209
205
 
210
- if (typeof hoverRangeFunc !== 'function') {
211
- return [];
206
+ if (isNil(hoverRangeFunc)) {
207
+ return null;
212
208
  }
213
209
 
214
210
  var hoverValues = hoverRangeFunc(date);
215
211
  var isHoverRangeValid = hoverValues instanceof Array && hoverValues.length === 2;
216
212
 
217
213
  if (!isHoverRangeValid) {
218
- return [];
214
+ return null;
219
215
  }
220
216
 
221
217
  if (DateUtils.isAfter(hoverValues[0], hoverValues[1])) {
@@ -224,13 +220,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
224
220
 
225
221
  return hoverValues;
226
222
  }, [hoverRange, isoWeek]);
227
- var handleValueUpdate = useCallback(function (event, nextSelectValue, closeOverlay) {
223
+ var handleValueUpdate = useCallback(function (event, nextValue, closeOverlay) {
228
224
  if (closeOverlay === void 0) {
229
225
  closeOverlay = true;
230
226
  }
231
227
 
232
- var nextValue = !isUndefined(nextSelectValue) ? nextSelectValue : selectValue;
233
- setSelectValue(nextValue || []);
228
+ // If nextValue is null, it means that the user is erasing the selected dates.
229
+ setSelectedDates(nextValue !== null && nextValue !== void 0 ? nextValue : []);
234
230
 
235
231
  if (!isSameRange(nextValue, value, formatStr)) {
236
232
  setValue(nextValue);
@@ -241,40 +237,41 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
241
237
  if (closeOverlay !== false) {
242
238
  handleCloseDropdown();
243
239
  }
244
- }, [formatStr, handleCloseDropdown, onChange, selectValue, setValue, value]);
240
+ }, [formatStr, handleCloseDropdown, onChange, selectedDates, setValue, value]);
245
241
  /**
246
242
  * Select the date range. If oneTap is not set, you need to click twice to select the start time and end time.
247
243
  * The MouseMove event is called between the first click and the second click to update the selection state.
248
244
  */
249
245
 
250
246
  var handleMouseMove = useCallback(function (date) {
251
- var hoverRangeValue = getHoverRangeValue(date); // After the first click
247
+ var nextHoverDateRange = getHoverRangeValue(date); // If hasDoneSelect is false,
248
+ // it means there's already one selected date
249
+ // and waiting for user to select the second date to complete the selection.
252
250
 
253
251
  if (!hasDoneSelect.current) {
254
- // If hoverRange is set, you need to change the value of hoverValue according to the rules
255
- if (hoverRange) {
256
- var nextHoverValue = [selectRangeValueRef.current[0], hoverRangeValue[1]];
252
+ // If `hoverRange` is set, you need to change the value of hoverDateRange according to the rules
253
+ if (!isNil(nextHoverDateRange)) {
254
+ var nextSelectedDates = [selectRangeValueRef.current[0], nextHoverDateRange[1]];
257
255
 
258
- if (DateUtils.isBefore(hoverRangeValue[0], selectRangeValueRef.current[0])) {
259
- nextHoverValue[0] = hoverRangeValue[0];
260
- nextHoverValue[1] = selectRangeValueRef.current[1];
256
+ if (DateUtils.isBefore(nextHoverDateRange[0], selectRangeValueRef.current[0])) {
257
+ nextSelectedDates = [nextHoverDateRange[0], selectRangeValueRef.current[1]];
261
258
  }
262
259
 
263
- setSelectValue(nextHoverValue);
260
+ setSelectedDates(nextSelectedDates);
264
261
  } else {
265
- setHoverValue(function (prevHoverValue) {
266
- return [prevHoverValue[0], date];
262
+ setHoverDateRange(function (prevHoverValue) {
263
+ return isNil(prevHoverValue) ? null : [prevHoverValue[0], date];
267
264
  });
268
- } // Before the first click, if hoverRangeValue has a value, hoverValue needs to be updated
265
+ } // Before the first click, if nextHoverDateRange has a value, hoverDateRange needs to be updated
269
266
 
270
- } else if (hoverRange && hoverRangeValue.length) {
271
- setHoverValue(hoverRangeValue);
267
+ } else if (!isNil(nextHoverDateRange)) {
268
+ setHoverDateRange(nextHoverDateRange);
272
269
  }
273
270
  }, [getHoverRangeValue, hoverRange]);
274
- var handleSelectValueChange = useCallback(function (date, event) {
275
- var nextSelectValue = Array.from(hoverValue);
271
+ var handleSelectDate = useCallback(function (date, event) {
272
+ var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];
276
273
  var hoverRangeValue = getHoverRangeValue(date);
277
- var noHoverRangeValid = hoverRangeValue.length !== 2; // in `oneTap` mode
274
+ var noHoverRangeValid = isNil(hoverRangeValue); // in `oneTap` mode
278
275
 
279
276
  if (hasDoneSelect.current && oneTap) {
280
277
  handleValueUpdate(event, noHoverRangeValid ? [setTimingMargin(date), setTimingMargin(date, 'right')] : hoverRangeValue);
@@ -286,32 +283,32 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
286
283
  if (noHoverRangeValid) {
287
284
  // start select
288
285
  if (hasDoneSelect.current) {
289
- nextSelectValue = [date];
286
+ nextSelectDates = [date];
290
287
  } else {
291
288
  // finish select
292
- nextSelectValue[1] = date;
289
+ nextSelectDates[1] = date;
293
290
  }
294
291
  } else {
295
292
  if (!hasDoneSelect.current) {
296
- nextSelectValue = selectValue;
293
+ nextSelectDates = selectedDates;
297
294
  selectRangeValueRef.current = null;
298
295
  } else {
299
- nextSelectValue = hoverRangeValue;
296
+ nextSelectDates = hoverRangeValue;
300
297
  selectRangeValueRef.current = hoverRangeValue;
301
298
  }
302
299
  } // If user have completed the selection, then sort
303
300
 
304
301
 
305
- if (nextSelectValue.length === 2 && DateUtils.isAfter(nextSelectValue[0], nextSelectValue[1])) {
306
- nextSelectValue.reverse();
302
+ if (nextSelectDates.length === 2 && DateUtils.isAfter(nextSelectDates[0], nextSelectDates[1])) {
303
+ nextSelectDates.reverse();
307
304
  }
308
305
 
309
- setHoverValue(nextSelectValue);
310
- setSelectValue(nextSelectValue);
311
- updateCalendarDate(nextSelectValue);
306
+ setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : null);
307
+ setSelectedDates(nextSelectDates);
308
+ updateCalendarDate(nextSelectDates);
312
309
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
313
310
  hasDoneSelect.current = !hasDoneSelect.current;
314
- }, [getHoverRangeValue, handleValueUpdate, hoverValue, onSelect, oneTap, selectValue, updateCalendarDate]);
311
+ }, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDate]);
315
312
  /**
316
313
  * If `selectValue` changed, there will be the following effects.
317
314
  * 1. Check if the selection is completed.
@@ -319,19 +316,17 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
319
316
  */
320
317
 
321
318
  useEffect(function () {
322
- var _selectValue$length;
323
-
324
- var selectValueLength = (_selectValue$length = selectValue === null || selectValue === void 0 ? void 0 : selectValue.length) !== null && _selectValue$length !== void 0 ? _selectValue$length : 0;
319
+ var selectValueLength = selectedDates.length;
325
320
  var doneSelected = selectValueLength === 0 || selectValueLength === 2;
326
- doneSelected && setHoverValue([]);
327
- }, [selectValue]);
321
+ doneSelected && setHoverDateRange(null);
322
+ }, [selectedDates]);
328
323
  var handleChangeCalendarDate = useCallback(function (index, date) {
329
324
  var nextCalendarDate = Array.from(calendarDate);
330
325
  nextCalendarDate[index] = date;
331
326
  updateCalendarDate(nextCalendarDate);
332
327
  }, [calendarDate, updateCalendarDate]);
333
328
  var handleChangeCalendarTime = useCallback(function (index, date) {
334
- setSelectValue(function (prev) {
329
+ setSelectedDates(function (prev) {
335
330
  var next = [].concat(prev);
336
331
  var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
337
332
 
@@ -344,20 +339,40 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
344
339
  });
345
340
  handleChangeCalendarDate(index, date);
346
341
  }, [handleChangeCalendarDate]);
342
+ /**
343
+ * The callback triggered when PM/AM is switched.
344
+ */
345
+
346
+ var handleToggleMeridian = useCallback(function (index) {
347
+ var next = Array.from(calendarDate);
348
+ var clonedDate = new Date(next[index].valueOf());
349
+ var hours = DateUtils.getHours(clonedDate);
350
+ var nextHours = hours >= 12 ? hours - 12 : hours + 12;
351
+ next[index] = DateUtils.setHours(clonedDate, nextHours);
352
+ setCalendarDate(next); // If the value already exists, update the value again.
353
+
354
+ if (selectedDates.length === 2) {
355
+ setSelectedDates(next);
356
+ }
357
+ }, [calendarDate, selectedDates]);
347
358
  /**
348
359
  * Toolbar operation callback function
349
360
  */
350
361
 
351
362
  var handleShortcutPageDate = useCallback(function (value, closeOverlay, event) {
363
+ if (closeOverlay === void 0) {
364
+ closeOverlay = false;
365
+ }
366
+
352
367
  handleValueUpdate(event, value, closeOverlay);
353
368
  }, [handleValueUpdate]);
354
369
  var handleOK = useCallback(function (event) {
355
- handleValueUpdate(event);
356
- onOk === null || onOk === void 0 ? void 0 : onOk(selectValue, event);
357
- }, [handleValueUpdate, onOk, selectValue]);
370
+ handleValueUpdate(event, selectedDates);
371
+ onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
372
+ }, [handleValueUpdate, onOk, selectedDates]);
358
373
  var handleClean = useCallback(function (event) {
359
- updateCalendarDate();
360
- handleValueUpdate(event, []);
374
+ updateCalendarDate(null);
375
+ handleValueUpdate(event, null);
361
376
  }, [handleValueUpdate, updateCalendarDate]);
362
377
  /**
363
378
  * Callback after the input box value is changed.
@@ -386,13 +401,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
386
401
  return;
387
402
  }
388
403
 
389
- if (disabledDate(startDate, selectValue, true, DATERANGE_DISABLED_TARGET.CALENDAR)) {
404
+ if (isDateDisabled(startDate, selectValue, true, DATERANGE_DISABLED_TARGET.CALENDAR)) {
390
405
  setInputState('Error');
391
406
  return;
392
407
  }
393
408
 
394
- setHoverValue(selectValue);
395
- setSelectValue(selectValue);
409
+ setHoverDateRange(selectValue);
410
+ setSelectedDates(selectValue);
396
411
  updateCalendarDate(selectValue);
397
412
  }, // eslint-disable-next-line react-hooks/exhaustive-deps
398
413
  [character, rangeFormatStr, updateCalendarDate]);
@@ -402,11 +417,11 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
402
417
 
403
418
  var handleInputPressEnd = useCallback(function (event) {
404
419
  if (inputState === 'Typing') {
405
- handleValueUpdate(event, selectValue);
420
+ handleValueUpdate(event, selectedDates.length === 2 ? selectedDates : null);
406
421
  }
407
422
 
408
423
  setInputState('Initial');
409
- }, [handleValueUpdate, selectValue, inputState]);
424
+ }, [handleValueUpdate, selectedDates, inputState]);
410
425
  var handleEnter = useCallback(function () {
411
426
  var nextCalendarDate;
412
427
 
@@ -416,13 +431,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
416
431
  nextCalendarDate = [_startDate, isSameMonth(_startDate, endData) ? addMonths(endData, 1) : endData];
417
432
  } else {
418
433
  nextCalendarDate = getCalendarDate({
419
- value: defaultCalendarValue
434
+ value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
420
435
  });
421
436
  }
422
437
 
423
- setSelectValue(value);
438
+ setSelectedDates(value !== null && value !== void 0 ? value : []);
424
439
  updateCalendarDate(nextCalendarDate);
425
- }, [defaultCalendarValue, updateCalendarDate, setSelectValue, value]);
440
+ }, [defaultCalendarValue, updateCalendarDate, setSelectedDates, value]);
426
441
  var handleEntered = useCallback(function () {
427
442
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
428
443
  setPickerToggleActive(true);
@@ -432,17 +447,16 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
432
447
  hasDoneSelect.current = true;
433
448
  onClose === null || onClose === void 0 ? void 0 : onClose();
434
449
  }, [onClose]);
435
- var disabledDate = useCallback(function (date, selectDate, selectedDone, target) {
436
- return disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target);
450
+ var isDateDisabled = useCallback(function (date, selectDate, selectedDone, target) {
451
+ var _disabledDateProp;
452
+
453
+ return (_disabledDateProp = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target)) !== null && _disabledDateProp !== void 0 ? _disabledDateProp : false;
437
454
  }, [disabledDateProp]);
438
455
  var disabledByBetween = useCallback(function (start, end, type) {
439
- var selectStartDate = selectValue[0],
440
- selectEndDate = selectValue[1];
441
- var nextSelectValue = [selectStartDate, selectEndDate]; // If the date is between the start and the end
456
+ // If the date is between the start and the end
442
457
  // the button is disabled
443
-
444
458
  while (DateUtils.isBefore(start, end) || DateUtils.isSameDay(start, end)) {
445
- if (disabledDate(start, nextSelectValue, hasDoneSelect.current, type)) {
459
+ if (isDateDisabled(start, selectedDates, hasDoneSelect.current, type)) {
446
460
  return true;
447
461
  }
448
462
 
@@ -450,17 +464,17 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
450
464
  }
451
465
 
452
466
  return false;
453
- }, [disabledDate, selectValue]);
467
+ }, [isDateDisabled, selectedDates]);
454
468
  var disabledOkButton = useCallback(function () {
455
- var start = selectValue[0],
456
- end = selectValue[1];
469
+ var start = selectedDates[0],
470
+ end = selectedDates[1];
457
471
 
458
472
  if (!start || !end || !hasDoneSelect.current) {
459
473
  return true;
460
474
  }
461
475
 
462
476
  return disabledByBetween(start, end, DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
463
- }, [disabledByBetween, selectValue]);
477
+ }, [disabledByBetween, selectedDates]);
464
478
  var disabledShortcutButton = useCallback(function (value) {
465
479
  if (value === void 0) {
466
480
  value = [];
@@ -477,8 +491,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
477
491
  return disabledByBetween(start, end, DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
478
492
  }, [disabledByBetween]);
479
493
  var handleDisabledDate = useCallback(function (date, values, type) {
480
- return disabledDate(date, values, hasDoneSelect.current, type);
481
- }, [disabledDate]);
494
+ return isDateDisabled(date, values, hasDoneSelect.current, type);
495
+ }, [isDateDisabled]);
482
496
  var onPickerKeyDown = useToggleKeyDownEvent(_extends({
483
497
  triggerRef: triggerRef,
484
498
  targetRef: targetRef,
@@ -504,17 +518,19 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
504
518
  calendarDate: calendarDate,
505
519
  disabledDate: handleDisabledDate,
506
520
  format: formatStr,
507
- hoverRangeValue: hoverValue,
521
+ hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
508
522
  isoWeek: isoWeek,
509
523
  limitEndYear: limitEndYear,
510
524
  locale: locale,
511
525
  showOneCalendar: showOneCalendar,
512
526
  showWeekNumbers: showWeekNumbers,
513
- value: selectValue,
527
+ value: selectedDates,
528
+ showMeridian: showMeridian,
514
529
  onChangeCalendarDate: handleChangeCalendarDate,
515
530
  onChangeCalendarTime: handleChangeCalendarTime,
516
531
  onMouseMove: handleMouseMove,
517
- onSelect: handleSelectValueChange
532
+ onSelect: handleSelectDate,
533
+ onToggleMeridian: handleToggleMeridian
518
534
  };
519
535
  return /*#__PURE__*/React.createElement(PickerOverlay, {
520
536
  className: classes,
@@ -527,7 +543,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
527
543
  className: prefix('daterange-content')
528
544
  }, /*#__PURE__*/React.createElement("div", {
529
545
  className: prefix('daterange-header')
530
- }, getDisplayString(selectValue)), /*#__PURE__*/React.createElement("div", {
546
+ }, getDisplayString(selectedDates)), /*#__PURE__*/React.createElement("div", {
531
547
  className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
532
548
  }, /*#__PURE__*/React.createElement(Calendar, _extends({
533
549
  index: 0
@@ -535,7 +551,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
535
551
  index: 1
536
552
  }, panelProps)))), /*#__PURE__*/React.createElement(Toolbar, {
537
553
  locale: locale,
538
- calendarDate: selectValue,
554
+ calendarDate: selectedDates,
539
555
  disabledOkBtn: disabledOkButton,
540
556
  disabledShortcut: disabledShortcutButton,
541
557
  hideOkBtn: oneTap,
@@ -545,7 +561,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
545
561
  })));
546
562
  };
547
563
 
548
- var hasValue = value && value.length > 1;
564
+ var hasValue = !isNil(value) && value.length > 1;
549
565
 
550
566
  var _usePickerClassName = usePickerClassName(_extends({}, props, {
551
567
  classPrefix: classPrefix,
@@ -588,7 +604,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
588
604
  placement: placement,
589
605
  caretComponent: IconCalendar,
590
606
  disabled: disabled
591
- }), getDisplayString())));
607
+ }), getDisplayString(value))));
592
608
  });
593
609
  DateRangePicker.after = disabledDateUtils.after;
594
610
  DateRangePicker.afterToday = disabledDateUtils.afterToday;
@@ -609,11 +625,12 @@ DateRangePicker.propTypes = _extends({}, pickerPropTypes, {
609
625
  isoWeek: PropTypes.bool,
610
626
  oneTap: PropTypes.bool,
611
627
  limitEndYear: PropTypes.number,
612
- showWeekNumbers: PropTypes.bool,
613
628
  onChange: PropTypes.func,
614
629
  onOk: PropTypes.func,
615
630
  disabledDate: PropTypes.func,
616
631
  onSelect: PropTypes.func,
632
+ showWeekNumbers: PropTypes.bool,
633
+ showMeridian: PropTypes.bool,
617
634
  showOneCalendar: PropTypes.bool
618
635
  });
619
636
  export 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;
@@ -37,10 +37,14 @@ export var getDefaultRanges = function getDefaultRanges() {
37
37
  }];
38
38
  };
39
39
  export var isSameRange = function isSameRange(source, dest, format) {
40
- var result = DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && DateUtils.isSameDay(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]);
40
+ // If both are null, reguard as same
41
+ if (null === source && null === dest) return true; // If only one is null, regard as different
42
+
43
+ if (null === source || null === dest) return false;
44
+ var result = DateUtils.isSameDay(source[0], dest[0]) && DateUtils.isSameDay(source[1], dest[1]);
41
45
 
42
46
  if (DateUtils.shouldTime(format)) {
43
- result && (result = DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[0], dest === null || dest === void 0 ? void 0 : dest[0]) && DateUtils.isSameSecond(source === null || source === void 0 ? void 0 : source[1], dest === null || dest === void 0 ? void 0 : dest[1]));
47
+ result && (result = DateUtils.isSameSecond(source[0], dest[0]) && DateUtils.isSameSecond(source[1], dest[1]));
44
48
  }
45
49
 
46
50
  return result;
@@ -41,12 +41,14 @@ function Disclosure(props) {
41
41
  openState = _useReducer[0].open,
42
42
  dispatch = _useReducer[1];
43
43
 
44
- var containerElementRef = useRef();
44
+ var containerElementRef = useRef(null);
45
45
  var open = openProp !== null && openProp !== void 0 ? openProp : openState;
46
46
  useClickOutside({
47
47
  enabled: hideOnClickOutside,
48
48
  isOutside: function isOutside(event) {
49
- return !containerElementRef.current.contains(event.target);
49
+ var _containerElementRef$;
50
+
51
+ return !((_containerElementRef$ = containerElementRef.current) !== null && _containerElementRef$ !== void 0 && _containerElementRef$.contains(event.target));
50
52
  },
51
53
  handle: function handle() {
52
54
  return dispatch({
@@ -1,15 +1,16 @@
1
- import { useCallback, useContext, useRef } from 'react';
2
- import DisclosureContext, { DisclosureActionTypes } from './DisclosureContext';
1
+ import { useCallback, useRef } from 'react';
2
+ import { DisclosureActionTypes } from './DisclosureContext';
3
3
  import { KEY_VALUES } from '../utils';
4
+ import useDisclosureContext from './useDisclosureContext';
4
5
 
5
6
  function DisclosureButton(props) {
6
7
  var children = props.children;
7
- var buttonRef = useRef();
8
+ var buttonRef = useRef(null);
8
9
 
9
- var _useContext = useContext(DisclosureContext),
10
- open = _useContext[0].open,
11
- dispatch = _useContext[1],
12
- onToggle = _useContext[2].onToggle;
10
+ var _useDisclosureContext = useDisclosureContext(DisclosureButton.displayName),
11
+ open = _useDisclosureContext[0].open,
12
+ dispatch = _useDisclosureContext[1],
13
+ onToggle = _useDisclosureContext[2].onToggle;
13
14
 
14
15
  var toggle = useCallback(function (event) {
15
16
  if (!open) {
@@ -1,13 +1,11 @@
1
- import { useContext, useRef } from 'react';
2
- import DisclosureContext from './DisclosureContext';
1
+ import { useRef } from 'react';
2
+ import useDisclosureContext from './useDisclosureContext';
3
3
 
4
4
  function DisclosureContent(props) {
5
5
  var children = props.children;
6
- var elementRef = useRef();
7
-
8
- var _useContext = useContext(DisclosureContext),
9
- open = _useContext[0].open;
10
-
6
+ var elementRef = useRef(null);
7
+ var disclosure = useDisclosureContext(DisclosureContent.displayName);
8
+ var open = disclosure[0].open;
11
9
  return children({
12
10
  open: open
13
11
  }, elementRef);
@@ -13,8 +13,8 @@ export declare type DisclosureContextProps = [
13
13
  DisclosureState,
14
14
  Dispatch<DisclosureAction>,
15
15
  {
16
- onToggle: (open: boolean, event?: React.SyntheticEvent) => void;
16
+ onToggle?: (open: boolean, event: React.SyntheticEvent) => void;
17
17
  }
18
18
  ];
19
- declare const DisclosureContext: React.Context<DisclosureContextProps>;
19
+ declare const DisclosureContext: React.Context<DisclosureContextProps | null>;
20
20
  export default DisclosureContext;
@@ -0,0 +1,2 @@
1
+ import { DisclosureContextProps } from './DisclosureContext';
2
+ export default function useDisclosureContext(component: string): DisclosureContextProps;