rsuite 5.2.3 → 5.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Avatar/styles/index.less +2 -2
- package/AvatarGroup/package.json +7 -0
- package/AvatarGroup/styles/index.less +19 -0
- package/ButtonGroup/styles/index.less +0 -18
- package/CHANGELOG.md +63 -0
- package/CheckTreePicker/styles/index.less +14 -1
- package/Dropdown/styles/index.less +4 -3
- package/Nav/styles/index.less +1 -0
- package/Navbar/styles/index.less +7 -0
- package/Radio/styles/index.less +6 -0
- package/Sidenav/styles/index.less +2 -2
- package/Stack/package.json +7 -0
- package/Stack/styles/index.less +5 -0
- package/Table/styles/index.less +0 -4
- package/TreePicker/styles/index.less +10 -14
- package/cjs/@types/common.d.ts +13 -12
- package/cjs/@types/utils.d.ts +12 -0
- package/cjs/Affix/Affix.js +5 -5
- package/cjs/Animation/Transition.d.ts +21 -12
- package/cjs/Animation/Transition.js +4 -1
- package/cjs/AutoComplete/AutoComplete.js +1 -1
- package/cjs/AutoComplete/utils.d.ts +1 -1
- package/cjs/Avatar/Avatar.js +10 -3
- package/cjs/AvatarGroup/AvatarGroup.d.ts +15 -0
- package/cjs/AvatarGroup/AvatarGroup.js +76 -0
- package/cjs/AvatarGroup/index.d.ts +3 -0
- package/cjs/AvatarGroup/index.js +11 -0
- package/cjs/Breadcrumb/Breadcrumb.js +1 -1
- package/cjs/Button/Button.js +8 -2
- package/cjs/ButtonGroup/ButtonGroup.js +14 -3
- package/cjs/ButtonGroup/ButtonGroupContext.d.ts +7 -0
- package/cjs/ButtonGroup/ButtonGroupContext.js +13 -0
- package/cjs/ButtonGroup/index.d.ts +2 -0
- package/cjs/ButtonGroup/index.js +3 -0
- package/cjs/Calendar/Calendar.d.ts +4 -4
- package/cjs/Calendar/Calendar.js +26 -22
- package/cjs/Calendar/CalendarContext.js +1 -1
- package/cjs/Calendar/Header.js +1 -3
- package/cjs/Calendar/Table.js +1 -1
- package/cjs/Calendar/TableRow.js +13 -8
- package/cjs/Calendar/TimeDropdown.js +6 -5
- package/cjs/Calendar/View.js +9 -5
- package/cjs/Calendar/types.d.ts +2 -2
- package/cjs/Calendar/useCalendarDate.d.ts +2 -2
- package/cjs/Carousel/Carousel.d.ts +2 -2
- package/cjs/Carousel/Carousel.js +1 -1
- package/cjs/Cascader/Cascader.d.ts +1 -1
- package/cjs/Cascader/Cascader.js +10 -10
- package/cjs/Cascader/DropdownMenu.d.ts +5 -4
- package/cjs/Cascader/utils.d.ts +10 -10
- package/cjs/CheckPicker/CheckPicker.d.ts +9 -4
- package/cjs/CheckPicker/CheckPicker.js +4 -4
- package/cjs/CheckPicker/test/CheckPicker.test.d.ts +1 -0
- package/cjs/CheckPicker/test/CheckPicker.test.js +76 -0
- package/cjs/CheckTree/index.js +6 -5
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +1 -1
- package/cjs/CheckTreePicker/CheckTreeNode.js +7 -9
- package/cjs/CheckTreePicker/CheckTreePicker.js +34 -27
- package/cjs/CheckTreePicker/utils.d.ts +3 -1
- package/cjs/CheckTreePicker/utils.js +12 -10
- package/cjs/Checkbox/Checkbox.d.ts +1 -1
- package/cjs/Container/Container.js +6 -3
- package/cjs/CustomProvider/CustomProvider.d.ts +31 -57
- package/cjs/DOMHelper/index.d.ts +12 -12
- package/cjs/DatePicker/DatePicker.d.ts +1 -1
- package/cjs/DatePicker/DatePicker.js +19 -11
- package/cjs/DatePicker/Toolbar.d.ts +12 -9
- package/cjs/DatePicker/Toolbar.js +6 -8
- package/cjs/DatePicker/types.d.ts +4 -4
- package/cjs/DatePicker/utils.d.ts +4 -3
- package/cjs/DateRangePicker/Calendar.d.ts +9 -7
- package/cjs/DateRangePicker/Calendar.js +27 -6
- package/cjs/DateRangePicker/DateRangePicker.d.ts +8 -6
- package/cjs/DateRangePicker/DateRangePicker.js +133 -110
- package/cjs/DateRangePicker/types.d.ts +2 -1
- package/cjs/DateRangePicker/utils.d.ts +6 -6
- package/cjs/DateRangePicker/utils.js +7 -2
- package/cjs/Disclosure/Disclosure.js +6 -4
- package/cjs/Disclosure/DisclosureButton.js +9 -7
- package/cjs/Disclosure/DisclosureContent.js +4 -6
- package/cjs/Disclosure/DisclosureContext.d.ts +2 -2
- package/cjs/Disclosure/useDisclosureContext.d.ts +2 -0
- package/cjs/Disclosure/useDisclosureContext.js +20 -0
- package/cjs/Dropdown/Dropdown.d.ts +1 -1
- package/cjs/Dropdown/DropdownContext.d.ts +2 -2
- package/cjs/Dropdown/DropdownItem.js +1 -1
- package/cjs/Dropdown/DropdownMenu.d.ts +3 -3
- package/cjs/Dropdown/DropdownMenu.js +9 -6
- package/cjs/Dropdown/DropdownState.d.ts +1 -1
- package/cjs/Dropdown/DropdownToggle.js +10 -2
- package/cjs/Dropdown/useRenderDropdownItem.d.ts +1 -1
- package/cjs/Form/Form.js +1 -1
- package/cjs/Form/FormContext.d.ts +1 -1
- package/cjs/FormControl/FormControl.d.ts +1 -1
- package/cjs/FormControl/FormControl.js +5 -4
- package/cjs/FormGroup/FormGroup.d.ts +1 -1
- package/cjs/FormGroup/FormGroup.js +9 -4
- package/cjs/Input/Input.d.ts +3 -2
- package/cjs/InputGroup/InputGroup.d.ts +1 -1
- package/cjs/InputNumber/InputNumber.js +6 -2
- package/cjs/InputPicker/InputAutosize.js +4 -4
- package/cjs/InputPicker/InputPicker.d.ts +2 -2
- package/cjs/InputPicker/InputPicker.js +15 -10
- package/cjs/List/ListContext.d.ts +1 -1
- package/cjs/List/ListContext.js +8 -1
- package/cjs/List/helper/AutoScroller.js +4 -2
- package/cjs/List/helper/useManager.d.ts +3 -3
- package/cjs/List/helper/useManager.js +1 -1
- package/cjs/List/helper/useSortHelper.d.ts +3 -3
- package/cjs/List/helper/useSortHelper.js +6 -4
- package/cjs/List/helper/utils.d.ts +2 -2
- package/cjs/MaskedInput/TextMask.d.ts +5 -5
- package/cjs/MaskedInput/adjustCaretPosition.d.ts +6 -6
- package/cjs/MaskedInput/conformToMask.js +5 -4
- package/cjs/MaskedInput/createTextMaskInputElement.d.ts +2 -2
- package/cjs/MaskedInput/utilities.d.ts +1 -1
- package/cjs/Menu/Menu.js +14 -7
- package/cjs/Menu/MenuContext.d.ts +1 -1
- package/cjs/Menu/MenuItem.d.ts +1 -1
- package/cjs/Menu/MenuItem.js +19 -15
- package/cjs/Menu/Menubar.js +8 -8
- package/cjs/Menu/useMenu.js +17 -7
- package/cjs/Modal/Modal.js +12 -6
- package/cjs/Modal/ModalContext.d.ts +2 -2
- package/cjs/Modal/utils.d.ts +1 -1
- package/cjs/Modal/utils.js +3 -5
- package/cjs/MultiCascader/DropdownMenu.d.ts +4 -4
- package/cjs/MultiCascader/MultiCascader.js +6 -6
- package/cjs/MultiCascader/utils.d.ts +17 -17
- package/cjs/Nav/Nav.d.ts +1 -1
- package/cjs/Nav/Nav.js +10 -12
- package/cjs/Nav/NavContext.d.ts +7 -1
- package/cjs/Nav/NavContext.js +1 -0
- package/cjs/Nav/NavItem.d.ts +1 -1
- package/cjs/Navbar/Navbar.js +1 -1
- package/cjs/Navbar/NavbarItem.d.ts +1 -1
- package/cjs/Overlay/Modal.d.ts +2 -2
- package/cjs/Overlay/Modal.js +70 -45
- package/cjs/Overlay/ModalManager.d.ts +17 -8
- package/cjs/Overlay/ModalManager.js +11 -20
- package/cjs/Overlay/Overlay.d.ts +3 -3
- package/cjs/Overlay/Overlay.js +8 -2
- package/cjs/Overlay/OverlayContext.d.ts +6 -0
- package/cjs/Overlay/OverlayContext.js +14 -0
- package/cjs/Overlay/OverlayTrigger.d.ts +11 -11
- package/cjs/Overlay/OverlayTrigger.js +21 -7
- package/cjs/Overlay/Position.d.ts +4 -4
- package/cjs/Overlay/Position.js +14 -8
- package/cjs/Overlay/positionUtils.d.ts +1 -1
- package/cjs/Overlay/positionUtils.js +8 -8
- package/cjs/Pagination/Pagination.d.ts +1 -1
- package/cjs/Pagination/PaginationButton.d.ts +3 -3
- package/cjs/Pagination/PaginationGroup.js +5 -3
- package/cjs/Panel/Panel.d.ts +1 -1
- package/cjs/Panel/Panel.js +2 -2
- package/cjs/PanelGroup/PanelGroup.d.ts +2 -2
- package/cjs/PanelGroup/PanelGroup.js +8 -5
- package/cjs/Picker/DropdownMenu.d.ts +8 -5
- package/cjs/Picker/DropdownMenu.js +5 -5
- package/cjs/Picker/PickerOverlay.js +4 -3
- package/cjs/Picker/PickerToggle.js +4 -3
- package/cjs/Picker/PickerToggleTrigger.d.ts +2 -6
- package/cjs/Picker/SearchBar.d.ts +1 -1
- package/cjs/Picker/SelectedElement.js +2 -1
- package/cjs/Picker/VirtualizedList.d.ts +29 -2
- package/cjs/Picker/propTypes.d.ts +5 -7
- package/cjs/Picker/propTypes.js +4 -3
- package/cjs/Picker/utils.d.ts +15 -23
- package/cjs/Picker/utils.js +71 -46
- package/cjs/Placeholder/PlaceholderGrid.js +1 -1
- package/cjs/Plaintext/Plaintext.js +2 -1
- package/cjs/Radio/Radio.d.ts +1 -1
- package/cjs/RadioGroup/RadioGroup.d.ts +2 -2
- package/cjs/RadioGroup/RadioGroup.js +1 -1
- package/cjs/RangeSlider/RangeSlider.d.ts +2 -2
- package/cjs/RangeSlider/RangeSlider.js +6 -4
- package/cjs/Rate/Character.js +4 -2
- package/cjs/Rate/Rate.js +2 -1
- package/cjs/Ripple/Ripple.js +1 -1
- package/cjs/SelectPicker/SelectPicker.d.ts +12 -5
- package/cjs/SelectPicker/SelectPicker.js +8 -8
- package/cjs/SelectPicker/index.d.ts +1 -1
- package/cjs/SelectPicker/test/SelectPicker.test.d.ts +1 -0
- package/cjs/SelectPicker/test/SelectPicker.test.js +62 -0
- package/cjs/Sidenav/Node.d.ts +1 -1
- package/cjs/Sidenav/Sidenav.d.ts +4 -4
- package/cjs/Sidenav/Sidenav.js +5 -2
- package/cjs/Sidenav/SidenavDropdown.js +11 -8
- package/cjs/Sidenav/SidenavDropdownItem.js +10 -5
- package/cjs/Sidenav/SidenavDropdownMenu.js +9 -5
- package/cjs/Sidenav/SidenavItem.d.ts +1 -1
- package/cjs/Sidenav/SidenavItem.js +4 -0
- package/cjs/Slider/Graduated.d.ts +5 -5
- package/cjs/Slider/Handle.d.ts +1 -1
- package/cjs/Slider/Handle.js +10 -6
- package/cjs/Slider/Mark.d.ts +1 -1
- package/cjs/Slider/Slider.d.ts +1 -1
- package/cjs/Slider/Slider.js +2 -2
- package/cjs/Slider/utils.d.ts +2 -1
- package/cjs/Slider/utils.js +4 -5
- package/cjs/Stack/Stack.d.ts +26 -0
- package/cjs/Stack/Stack.js +86 -0
- package/cjs/Stack/index.d.ts +3 -0
- package/cjs/Stack/index.js +11 -0
- package/cjs/Steps/StepItem.js +1 -1
- package/cjs/TagInput/index.js +1 -1
- package/cjs/Toggle/Toggle.js +5 -4
- package/cjs/Tree/Tree.d.ts +3 -2
- package/cjs/Tree/Tree.js +6 -5
- package/cjs/Tree/TreeContext.d.ts +0 -1
- package/cjs/TreePicker/TreeNode.js +7 -22
- package/cjs/TreePicker/TreePicker.js +37 -54
- package/cjs/Uploader/UploadFileItem.d.ts +1 -1
- package/cjs/Uploader/UploadFileItem.js +2 -2
- package/cjs/Uploader/UploadTrigger.d.ts +1 -1
- package/cjs/Uploader/UploadTrigger.js +2 -3
- package/cjs/Uploader/Uploader.d.ts +5 -5
- package/cjs/Uploader/Uploader.js +1 -2
- package/cjs/index.d.ts +6 -2
- package/cjs/index.js +13 -5
- package/cjs/locales/index.d.ts +3 -3
- package/cjs/toaster/ToastContainer.d.ts +1 -1
- package/cjs/toaster/ToastContainer.js +1 -1
- package/cjs/toaster/toaster.js +3 -1
- package/cjs/utils/BrowserDetection.js +1 -1
- package/cjs/utils/ReactChildren.d.ts +2 -2
- package/cjs/utils/ajaxUpload.d.ts +1 -1
- package/cjs/utils/ajaxUpload.js +5 -4
- package/cjs/utils/appendTooltip.d.ts +1 -1
- package/cjs/utils/constants.d.ts +4 -4
- package/cjs/utils/createChainedFunction.d.ts +1 -1
- package/cjs/utils/getDataGroupBy.d.ts +1 -1
- package/cjs/utils/mergeRefs.d.ts +2 -2
- package/cjs/utils/previewFile.d.ts +1 -1
- package/cjs/utils/propTypeChecker.d.ts +6 -2
- package/cjs/utils/propTypeChecker.js +7 -6
- package/cjs/utils/reactToString.d.ts +2 -1
- package/cjs/utils/statusIcons.d.ts +1 -1
- package/cjs/utils/stringToObject.d.ts +1 -1
- package/cjs/utils/treeUtils.d.ts +35 -32
- package/cjs/utils/treeUtils.js +46 -23
- package/cjs/utils/useControlled.d.ts +6 -1
- package/cjs/utils/useControlled.js +0 -8
- package/cjs/utils/useCustom.js +6 -4
- package/cjs/utils/useFocus.d.ts +2 -2
- package/cjs/utils/usePortal.d.ts +2 -2
- package/cjs/utils/useRootClose.d.ts +2 -2
- package/cjs/utils/useTimeout.d.ts +1 -1
- package/cjs/utils/useTimeout.js +5 -3
- package/dist/rsuite-rtl.css +63 -193
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +63 -193
- package/dist/rsuite.js +194 -117
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/@types/common.d.ts +13 -12
- package/esm/@types/utils.d.ts +12 -0
- package/esm/Affix/Affix.js +5 -5
- package/esm/Animation/Transition.d.ts +21 -12
- package/esm/Animation/Transition.js +4 -1
- package/esm/AutoComplete/AutoComplete.js +1 -1
- package/esm/AutoComplete/utils.d.ts +1 -1
- package/esm/Avatar/Avatar.js +7 -3
- package/esm/AvatarGroup/AvatarGroup.d.ts +15 -0
- package/esm/AvatarGroup/AvatarGroup.js +57 -0
- package/esm/AvatarGroup/index.d.ts +3 -0
- package/esm/AvatarGroup/index.js +2 -0
- package/esm/Breadcrumb/Breadcrumb.js +1 -1
- package/esm/Button/Button.js +6 -2
- package/esm/ButtonGroup/ButtonGroup.js +11 -3
- package/esm/ButtonGroup/ButtonGroupContext.d.ts +7 -0
- package/esm/ButtonGroup/ButtonGroupContext.js +3 -0
- package/esm/ButtonGroup/index.d.ts +2 -0
- package/esm/ButtonGroup/index.js +2 -0
- package/esm/Calendar/Calendar.d.ts +4 -4
- package/esm/Calendar/Calendar.js +27 -23
- package/esm/Calendar/CalendarContext.js +1 -1
- package/esm/Calendar/Header.js +1 -3
- package/esm/Calendar/Table.js +1 -1
- package/esm/Calendar/TableRow.js +14 -9
- package/esm/Calendar/TimeDropdown.js +5 -4
- package/esm/Calendar/View.js +10 -6
- package/esm/Calendar/types.d.ts +2 -2
- package/esm/Calendar/useCalendarDate.d.ts +2 -2
- package/esm/Carousel/Carousel.d.ts +2 -2
- package/esm/Carousel/Carousel.js +1 -1
- package/esm/Cascader/Cascader.d.ts +1 -1
- package/esm/Cascader/Cascader.js +10 -10
- package/esm/Cascader/DropdownMenu.d.ts +5 -4
- package/esm/Cascader/utils.d.ts +10 -10
- package/esm/CheckPicker/CheckPicker.d.ts +9 -4
- package/esm/CheckPicker/CheckPicker.js +4 -4
- package/esm/CheckPicker/test/CheckPicker.test.d.ts +1 -0
- package/esm/CheckPicker/test/CheckPicker.test.js +64 -0
- package/esm/CheckTree/index.js +7 -6
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +1 -1
- package/esm/CheckTreePicker/CheckTreeNode.js +4 -7
- package/esm/CheckTreePicker/CheckTreePicker.js +33 -25
- package/esm/CheckTreePicker/utils.d.ts +3 -1
- package/esm/CheckTreePicker/utils.js +12 -10
- package/esm/Checkbox/Checkbox.d.ts +1 -1
- package/esm/Container/Container.js +7 -4
- package/esm/CustomProvider/CustomProvider.d.ts +31 -57
- package/esm/DOMHelper/index.d.ts +12 -12
- package/esm/DatePicker/DatePicker.d.ts +1 -1
- package/esm/DatePicker/DatePicker.js +18 -11
- package/esm/DatePicker/Toolbar.d.ts +12 -9
- package/esm/DatePicker/Toolbar.js +6 -8
- package/esm/DatePicker/types.d.ts +4 -4
- package/esm/DatePicker/utils.d.ts +4 -3
- package/esm/DateRangePicker/Calendar.d.ts +9 -7
- package/esm/DateRangePicker/Calendar.js +28 -6
- package/esm/DateRangePicker/DateRangePicker.d.ts +8 -6
- package/esm/DateRangePicker/DateRangePicker.js +131 -110
- package/esm/DateRangePicker/types.d.ts +2 -1
- package/esm/DateRangePicker/utils.d.ts +6 -6
- package/esm/DateRangePicker/utils.js +6 -2
- package/esm/Disclosure/Disclosure.js +6 -4
- package/esm/Disclosure/DisclosureButton.js +8 -7
- package/esm/Disclosure/DisclosureContent.js +5 -7
- package/esm/Disclosure/DisclosureContext.d.ts +2 -2
- package/esm/Disclosure/useDisclosureContext.d.ts +2 -0
- package/esm/Disclosure/useDisclosureContext.js +11 -0
- package/esm/Dropdown/Dropdown.d.ts +1 -1
- package/esm/Dropdown/DropdownContext.d.ts +2 -2
- package/esm/Dropdown/DropdownItem.js +1 -1
- package/esm/Dropdown/DropdownMenu.d.ts +3 -3
- package/esm/Dropdown/DropdownMenu.js +10 -7
- package/esm/Dropdown/DropdownState.d.ts +1 -1
- package/esm/Dropdown/DropdownToggle.js +9 -2
- package/esm/Dropdown/useRenderDropdownItem.d.ts +1 -1
- package/esm/Form/Form.js +1 -1
- package/esm/Form/FormContext.d.ts +1 -1
- package/esm/FormControl/FormControl.d.ts +1 -1
- package/esm/FormControl/FormControl.js +5 -4
- package/esm/FormGroup/FormGroup.d.ts +1 -1
- package/esm/FormGroup/FormGroup.js +7 -4
- package/esm/Input/Input.d.ts +3 -2
- package/esm/InputGroup/InputGroup.d.ts +1 -1
- package/esm/InputNumber/InputNumber.js +6 -2
- package/esm/InputPicker/InputAutosize.js +4 -4
- package/esm/InputPicker/InputPicker.d.ts +2 -2
- package/esm/InputPicker/InputPicker.js +15 -10
- package/esm/List/ListContext.d.ts +1 -1
- package/esm/List/ListContext.js +7 -1
- package/esm/List/helper/AutoScroller.js +4 -2
- package/esm/List/helper/useManager.d.ts +3 -3
- package/esm/List/helper/useManager.js +1 -1
- package/esm/List/helper/useSortHelper.d.ts +3 -3
- package/esm/List/helper/useSortHelper.js +6 -4
- package/esm/List/helper/utils.d.ts +2 -2
- package/esm/MaskedInput/TextMask.d.ts +5 -5
- package/esm/MaskedInput/adjustCaretPosition.d.ts +6 -6
- package/esm/MaskedInput/conformToMask.js +5 -4
- package/esm/MaskedInput/createTextMaskInputElement.d.ts +2 -2
- package/esm/MaskedInput/utilities.d.ts +1 -1
- package/esm/Menu/Menu.js +13 -7
- package/esm/Menu/MenuContext.d.ts +1 -1
- package/esm/Menu/MenuItem.d.ts +1 -1
- package/esm/Menu/MenuItem.js +18 -15
- package/esm/Menu/Menubar.js +7 -8
- package/esm/Menu/useMenu.js +17 -7
- package/esm/Modal/Modal.js +12 -6
- package/esm/Modal/ModalContext.d.ts +2 -2
- package/esm/Modal/utils.d.ts +1 -1
- package/esm/Modal/utils.js +3 -5
- package/esm/MultiCascader/DropdownMenu.d.ts +4 -4
- package/esm/MultiCascader/MultiCascader.js +6 -6
- package/esm/MultiCascader/utils.d.ts +17 -17
- package/esm/Nav/Nav.d.ts +1 -1
- package/esm/Nav/Nav.js +11 -13
- package/esm/Nav/NavContext.d.ts +7 -1
- package/esm/Nav/NavContext.js +1 -0
- package/esm/Nav/NavItem.d.ts +1 -1
- package/esm/Navbar/Navbar.js +1 -1
- package/esm/Navbar/NavbarItem.d.ts +1 -1
- package/esm/Overlay/Modal.d.ts +2 -2
- package/esm/Overlay/Modal.js +71 -46
- package/esm/Overlay/ModalManager.d.ts +17 -8
- package/esm/Overlay/ModalManager.js +11 -20
- package/esm/Overlay/Overlay.d.ts +3 -3
- package/esm/Overlay/Overlay.js +8 -3
- package/esm/Overlay/OverlayContext.d.ts +6 -0
- package/esm/Overlay/OverlayContext.js +4 -0
- package/esm/Overlay/OverlayTrigger.d.ts +11 -11
- package/esm/Overlay/OverlayTrigger.js +21 -8
- package/esm/Overlay/Position.d.ts +4 -4
- package/esm/Overlay/Position.js +14 -8
- package/esm/Overlay/positionUtils.d.ts +1 -1
- package/esm/Overlay/positionUtils.js +6 -6
- package/esm/Pagination/Pagination.d.ts +1 -1
- package/esm/Pagination/PaginationButton.d.ts +3 -3
- package/esm/Pagination/PaginationGroup.js +5 -3
- package/esm/Panel/Panel.d.ts +1 -1
- package/esm/Panel/Panel.js +2 -2
- package/esm/PanelGroup/PanelGroup.d.ts +2 -2
- package/esm/PanelGroup/PanelGroup.js +9 -6
- package/esm/Picker/DropdownMenu.d.ts +8 -5
- package/esm/Picker/DropdownMenu.js +5 -5
- package/esm/Picker/PickerOverlay.js +4 -3
- package/esm/Picker/PickerToggle.js +4 -3
- package/esm/Picker/PickerToggleTrigger.d.ts +2 -6
- package/esm/Picker/SearchBar.d.ts +1 -1
- package/esm/Picker/SelectedElement.js +2 -1
- package/esm/Picker/VirtualizedList.d.ts +29 -2
- package/esm/Picker/propTypes.d.ts +5 -7
- package/esm/Picker/propTypes.js +4 -3
- package/esm/Picker/utils.d.ts +15 -23
- package/esm/Picker/utils.js +70 -46
- package/esm/Placeholder/PlaceholderGrid.js +1 -1
- package/esm/Plaintext/Plaintext.js +2 -1
- package/esm/Radio/Radio.d.ts +1 -1
- package/esm/RadioGroup/RadioGroup.d.ts +2 -2
- package/esm/RadioGroup/RadioGroup.js +1 -1
- package/esm/RangeSlider/RangeSlider.d.ts +2 -2
- package/esm/RangeSlider/RangeSlider.js +5 -4
- package/esm/Rate/Character.js +3 -2
- package/esm/Rate/Rate.js +2 -1
- package/esm/Ripple/Ripple.js +1 -1
- package/esm/SelectPicker/SelectPicker.d.ts +12 -5
- package/esm/SelectPicker/SelectPicker.js +8 -8
- package/esm/SelectPicker/index.d.ts +1 -1
- package/esm/SelectPicker/test/SelectPicker.test.d.ts +1 -0
- package/esm/SelectPicker/test/SelectPicker.test.js +52 -0
- package/esm/Sidenav/Node.d.ts +1 -1
- package/esm/Sidenav/Sidenav.d.ts +4 -4
- package/esm/Sidenav/Sidenav.js +5 -2
- package/esm/Sidenav/SidenavDropdown.js +11 -7
- package/esm/Sidenav/SidenavDropdownItem.js +11 -5
- package/esm/Sidenav/SidenavDropdownMenu.js +9 -5
- package/esm/Sidenav/SidenavItem.d.ts +1 -1
- package/esm/Sidenav/SidenavItem.js +4 -0
- package/esm/Slider/Graduated.d.ts +5 -5
- package/esm/Slider/Handle.d.ts +1 -1
- package/esm/Slider/Handle.js +10 -6
- package/esm/Slider/Mark.d.ts +1 -1
- package/esm/Slider/Slider.d.ts +1 -1
- package/esm/Slider/Slider.js +2 -2
- package/esm/Slider/utils.d.ts +2 -1
- package/esm/Slider/utils.js +5 -2
- package/esm/Stack/Stack.d.ts +26 -0
- package/esm/Stack/Stack.js +71 -0
- package/esm/Stack/index.d.ts +3 -0
- package/esm/Stack/index.js +2 -0
- package/esm/Steps/StepItem.js +1 -1
- package/esm/TagInput/index.js +1 -1
- package/esm/Toggle/Toggle.js +5 -4
- package/esm/Tree/Tree.d.ts +3 -2
- package/esm/Tree/Tree.js +7 -6
- package/esm/Tree/TreeContext.d.ts +0 -1
- package/esm/TreePicker/TreeNode.js +6 -21
- package/esm/TreePicker/TreePicker.js +36 -52
- package/esm/Uploader/UploadFileItem.d.ts +1 -1
- package/esm/Uploader/UploadFileItem.js +2 -2
- package/esm/Uploader/UploadTrigger.d.ts +1 -1
- package/esm/Uploader/UploadTrigger.js +2 -3
- package/esm/Uploader/Uploader.d.ts +5 -5
- package/esm/Uploader/Uploader.js +1 -2
- package/esm/index.d.ts +6 -2
- package/esm/index.js +3 -1
- package/esm/locales/index.d.ts +3 -3
- package/esm/toaster/ToastContainer.d.ts +1 -1
- package/esm/toaster/ToastContainer.js +1 -1
- package/esm/toaster/toaster.js +3 -1
- package/esm/utils/BrowserDetection.js +1 -1
- package/esm/utils/ReactChildren.d.ts +2 -2
- package/esm/utils/ajaxUpload.d.ts +1 -1
- package/esm/utils/ajaxUpload.js +5 -4
- package/esm/utils/appendTooltip.d.ts +1 -1
- package/esm/utils/constants.d.ts +4 -4
- package/esm/utils/createChainedFunction.d.ts +1 -1
- package/esm/utils/getDataGroupBy.d.ts +1 -1
- package/esm/utils/mergeRefs.d.ts +2 -2
- package/esm/utils/previewFile.d.ts +1 -1
- package/esm/utils/propTypeChecker.d.ts +6 -2
- package/esm/utils/propTypeChecker.js +7 -6
- package/esm/utils/reactToString.d.ts +2 -1
- package/esm/utils/statusIcons.d.ts +1 -1
- package/esm/utils/stringToObject.d.ts +1 -1
- package/esm/utils/treeUtils.d.ts +35 -32
- package/esm/utils/treeUtils.js +45 -21
- package/esm/utils/useControlled.d.ts +6 -1
- package/esm/utils/useControlled.js +0 -8
- package/esm/utils/useCustom.js +6 -4
- package/esm/utils/useFocus.d.ts +2 -2
- package/esm/utils/usePortal.d.ts +2 -2
- package/esm/utils/useRootClose.d.ts +2 -2
- package/esm/utils/useTimeout.d.ts +1 -1
- package/esm/utils/useTimeout.js +5 -3
- package/package.json +3 -3
- package/styles/index.less +2 -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
|
|
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
|
-
|
|
103
|
-
|
|
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
|
-
|
|
108
|
-
|
|
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
|
-
|
|
141
|
-
|
|
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
|
|
166
|
+
var _nextValue$, _nextValue$2;
|
|
165
167
|
|
|
166
|
-
|
|
167
|
-
|
|
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);
|
|
@@ -187,35 +185,33 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
187
185
|
}
|
|
188
186
|
|
|
189
187
|
return isPlaintext ? '' : placeholder || rangeFormatStr;
|
|
190
|
-
}, [character, formatDate, formatStr, placeholder, rangeFormatStr, renderValue
|
|
188
|
+
}, [character, formatDate, formatStr, placeholder, rangeFormatStr, renderValue]);
|
|
191
189
|
/**
|
|
192
190
|
* preset hover range
|
|
193
191
|
*/
|
|
194
192
|
|
|
195
193
|
var getHoverRangeValue = useCallback(function (date) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
194
|
+
function getHoverRangeFunc() {
|
|
195
|
+
if (hoverRange === 'week') {
|
|
196
|
+
return partial(getWeekHoverRange, isoWeek);
|
|
197
|
+
} else if (hoverRange === 'month') {
|
|
198
|
+
return getMonthHoverRange;
|
|
199
|
+
}
|
|
201
200
|
|
|
202
|
-
|
|
203
|
-
hoverRangeFunc = partial(getWeekHoverRange, isoWeek);
|
|
201
|
+
return hoverRange;
|
|
204
202
|
}
|
|
205
203
|
|
|
206
|
-
|
|
207
|
-
hoverRangeFunc = getMonthHoverRange;
|
|
208
|
-
}
|
|
204
|
+
var hoverRangeFunc = getHoverRangeFunc();
|
|
209
205
|
|
|
210
|
-
if (
|
|
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,
|
|
223
|
+
var handleValueUpdate = useCallback(function (event, nextValue, closeOverlay) {
|
|
228
224
|
if (closeOverlay === void 0) {
|
|
229
225
|
closeOverlay = true;
|
|
230
226
|
}
|
|
231
227
|
|
|
232
|
-
|
|
233
|
-
|
|
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,45 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
241
237
|
if (closeOverlay !== false) {
|
|
242
238
|
handleCloseDropdown();
|
|
243
239
|
}
|
|
244
|
-
}, [formatStr, handleCloseDropdown, onChange,
|
|
240
|
+
}, [formatStr, handleCloseDropdown, onChange, 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
|
|
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
|
|
255
|
-
if (
|
|
256
|
-
var
|
|
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(
|
|
259
|
-
|
|
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
|
-
|
|
260
|
+
setSelectedDates(nextSelectedDates);
|
|
264
261
|
} else {
|
|
265
|
-
|
|
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
|
|
265
|
+
} // Before the first click, if nextHoverDateRange has a value, hoverDateRange needs to be updated
|
|
269
266
|
|
|
270
|
-
} else if (
|
|
271
|
-
|
|
267
|
+
} else if (!isNil(nextHoverDateRange)) {
|
|
268
|
+
setHoverDateRange(nextHoverDateRange);
|
|
272
269
|
}
|
|
273
|
-
}, [getHoverRangeValue
|
|
274
|
-
|
|
275
|
-
|
|
270
|
+
}, [getHoverRangeValue]);
|
|
271
|
+
/**
|
|
272
|
+
* Callback for selecting a date cell in the calendar grid
|
|
273
|
+
*/
|
|
274
|
+
|
|
275
|
+
var handleSelectDate = useCallback(function (date, event) {
|
|
276
|
+
var nextSelectDates = hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : [];
|
|
276
277
|
var hoverRangeValue = getHoverRangeValue(date);
|
|
277
|
-
var noHoverRangeValid = hoverRangeValue
|
|
278
|
+
var noHoverRangeValid = isNil(hoverRangeValue); // in `oneTap` mode
|
|
278
279
|
|
|
279
280
|
if (hasDoneSelect.current && oneTap) {
|
|
280
281
|
handleValueUpdate(event, noHoverRangeValid ? [setTimingMargin(date), setTimingMargin(date, 'right')] : hoverRangeValue);
|
|
@@ -286,32 +287,32 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
286
287
|
if (noHoverRangeValid) {
|
|
287
288
|
// start select
|
|
288
289
|
if (hasDoneSelect.current) {
|
|
289
|
-
|
|
290
|
+
nextSelectDates = [date];
|
|
290
291
|
} else {
|
|
291
292
|
// finish select
|
|
292
|
-
|
|
293
|
+
nextSelectDates[1] = date;
|
|
293
294
|
}
|
|
294
295
|
} else {
|
|
295
296
|
if (!hasDoneSelect.current) {
|
|
296
|
-
|
|
297
|
+
nextSelectDates = selectedDates;
|
|
297
298
|
selectRangeValueRef.current = null;
|
|
298
299
|
} else {
|
|
299
|
-
|
|
300
|
+
nextSelectDates = hoverRangeValue;
|
|
300
301
|
selectRangeValueRef.current = hoverRangeValue;
|
|
301
302
|
}
|
|
302
303
|
} // If user have completed the selection, then sort
|
|
303
304
|
|
|
304
305
|
|
|
305
|
-
if (
|
|
306
|
-
|
|
306
|
+
if (nextSelectDates.length === 2 && DateUtils.isAfter(nextSelectDates[0], nextSelectDates[1])) {
|
|
307
|
+
nextSelectDates.reverse();
|
|
307
308
|
}
|
|
308
309
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
updateCalendarDate(
|
|
310
|
+
setHoverDateRange(nextSelectDates.length === 2 ? nextSelectDates : [nextSelectDates[0], nextSelectDates[0]]);
|
|
311
|
+
setSelectedDates(nextSelectDates);
|
|
312
|
+
updateCalendarDate(nextSelectDates);
|
|
312
313
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(date, event);
|
|
313
314
|
hasDoneSelect.current = !hasDoneSelect.current;
|
|
314
|
-
}, [getHoverRangeValue, handleValueUpdate,
|
|
315
|
+
}, [getHoverRangeValue, handleValueUpdate, hoverDateRange, onSelect, oneTap, selectedDates, updateCalendarDate]);
|
|
315
316
|
/**
|
|
316
317
|
* If `selectValue` changed, there will be the following effects.
|
|
317
318
|
* 1. Check if the selection is completed.
|
|
@@ -319,19 +320,17 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
319
320
|
*/
|
|
320
321
|
|
|
321
322
|
useEffect(function () {
|
|
322
|
-
var
|
|
323
|
-
|
|
324
|
-
var selectValueLength = (_selectValue$length = selectValue === null || selectValue === void 0 ? void 0 : selectValue.length) !== null && _selectValue$length !== void 0 ? _selectValue$length : 0;
|
|
323
|
+
var selectValueLength = selectedDates.length;
|
|
325
324
|
var doneSelected = selectValueLength === 0 || selectValueLength === 2;
|
|
326
|
-
doneSelected &&
|
|
327
|
-
}, [
|
|
325
|
+
doneSelected && setHoverDateRange(null);
|
|
326
|
+
}, [selectedDates]);
|
|
328
327
|
var handleChangeCalendarDate = useCallback(function (index, date) {
|
|
329
328
|
var nextCalendarDate = Array.from(calendarDate);
|
|
330
329
|
nextCalendarDate[index] = date;
|
|
331
330
|
updateCalendarDate(nextCalendarDate);
|
|
332
331
|
}, [calendarDate, updateCalendarDate]);
|
|
333
332
|
var handleChangeCalendarTime = useCallback(function (index, date) {
|
|
334
|
-
|
|
333
|
+
setSelectedDates(function (prev) {
|
|
335
334
|
var next = [].concat(prev);
|
|
336
335
|
var clonedDate = new Date(date.valueOf()); // if next[index] is not empty, only update the time after aligning the year, month and day
|
|
337
336
|
|
|
@@ -344,20 +343,40 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
344
343
|
});
|
|
345
344
|
handleChangeCalendarDate(index, date);
|
|
346
345
|
}, [handleChangeCalendarDate]);
|
|
346
|
+
/**
|
|
347
|
+
* The callback triggered when PM/AM is switched.
|
|
348
|
+
*/
|
|
349
|
+
|
|
350
|
+
var handleToggleMeridian = useCallback(function (index) {
|
|
351
|
+
var next = Array.from(calendarDate);
|
|
352
|
+
var clonedDate = new Date(next[index].valueOf());
|
|
353
|
+
var hours = DateUtils.getHours(clonedDate);
|
|
354
|
+
var nextHours = hours >= 12 ? hours - 12 : hours + 12;
|
|
355
|
+
next[index] = DateUtils.setHours(clonedDate, nextHours);
|
|
356
|
+
setCalendarDate(next); // If the value already exists, update the value again.
|
|
357
|
+
|
|
358
|
+
if (selectedDates.length === 2) {
|
|
359
|
+
setSelectedDates(next);
|
|
360
|
+
}
|
|
361
|
+
}, [calendarDate, selectedDates]);
|
|
347
362
|
/**
|
|
348
363
|
* Toolbar operation callback function
|
|
349
364
|
*/
|
|
350
365
|
|
|
351
366
|
var handleShortcutPageDate = useCallback(function (value, closeOverlay, event) {
|
|
367
|
+
if (closeOverlay === void 0) {
|
|
368
|
+
closeOverlay = false;
|
|
369
|
+
}
|
|
370
|
+
|
|
352
371
|
handleValueUpdate(event, value, closeOverlay);
|
|
353
372
|
}, [handleValueUpdate]);
|
|
354
373
|
var handleOK = useCallback(function (event) {
|
|
355
|
-
handleValueUpdate(event);
|
|
356
|
-
onOk === null || onOk === void 0 ? void 0 : onOk(
|
|
357
|
-
}, [handleValueUpdate, onOk,
|
|
374
|
+
handleValueUpdate(event, selectedDates);
|
|
375
|
+
onOk === null || onOk === void 0 ? void 0 : onOk(selectedDates, event);
|
|
376
|
+
}, [handleValueUpdate, onOk, selectedDates]);
|
|
358
377
|
var handleClean = useCallback(function (event) {
|
|
359
|
-
updateCalendarDate();
|
|
360
|
-
handleValueUpdate(event,
|
|
378
|
+
updateCalendarDate(null);
|
|
379
|
+
handleValueUpdate(event, null);
|
|
361
380
|
}, [handleValueUpdate, updateCalendarDate]);
|
|
362
381
|
/**
|
|
363
382
|
* Callback after the input box value is changed.
|
|
@@ -386,13 +405,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
386
405
|
return;
|
|
387
406
|
}
|
|
388
407
|
|
|
389
|
-
if (
|
|
408
|
+
if (isDateDisabled(startDate, selectValue, true, DATERANGE_DISABLED_TARGET.CALENDAR)) {
|
|
390
409
|
setInputState('Error');
|
|
391
410
|
return;
|
|
392
411
|
}
|
|
393
412
|
|
|
394
|
-
|
|
395
|
-
|
|
413
|
+
setHoverDateRange(selectValue);
|
|
414
|
+
setSelectedDates(selectValue);
|
|
396
415
|
updateCalendarDate(selectValue);
|
|
397
416
|
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
398
417
|
[character, rangeFormatStr, updateCalendarDate]);
|
|
@@ -402,11 +421,11 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
402
421
|
|
|
403
422
|
var handleInputPressEnd = useCallback(function (event) {
|
|
404
423
|
if (inputState === 'Typing') {
|
|
405
|
-
handleValueUpdate(event,
|
|
424
|
+
handleValueUpdate(event, selectedDates.length === 2 ? selectedDates : null);
|
|
406
425
|
}
|
|
407
426
|
|
|
408
427
|
setInputState('Initial');
|
|
409
|
-
}, [handleValueUpdate,
|
|
428
|
+
}, [handleValueUpdate, selectedDates, inputState]);
|
|
410
429
|
var handleEnter = useCallback(function () {
|
|
411
430
|
var nextCalendarDate;
|
|
412
431
|
|
|
@@ -416,13 +435,13 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
416
435
|
nextCalendarDate = [_startDate, isSameMonth(_startDate, endData) ? addMonths(endData, 1) : endData];
|
|
417
436
|
} else {
|
|
418
437
|
nextCalendarDate = getCalendarDate({
|
|
419
|
-
value: defaultCalendarValue
|
|
438
|
+
value: defaultCalendarValue !== null && defaultCalendarValue !== void 0 ? defaultCalendarValue : null
|
|
420
439
|
});
|
|
421
440
|
}
|
|
422
441
|
|
|
423
|
-
|
|
442
|
+
setSelectedDates(value !== null && value !== void 0 ? value : []);
|
|
424
443
|
updateCalendarDate(nextCalendarDate);
|
|
425
|
-
}, [defaultCalendarValue, updateCalendarDate,
|
|
444
|
+
}, [defaultCalendarValue, updateCalendarDate, setSelectedDates, value]);
|
|
426
445
|
var handleEntered = useCallback(function () {
|
|
427
446
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
428
447
|
setPickerToggleActive(true);
|
|
@@ -432,17 +451,16 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
432
451
|
hasDoneSelect.current = true;
|
|
433
452
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
434
453
|
}, [onClose]);
|
|
435
|
-
var
|
|
436
|
-
|
|
454
|
+
var isDateDisabled = useCallback(function (date, selectDate, selectedDone, target) {
|
|
455
|
+
var _disabledDateProp;
|
|
456
|
+
|
|
457
|
+
return (_disabledDateProp = disabledDateProp === null || disabledDateProp === void 0 ? void 0 : disabledDateProp(date, selectDate, selectedDone, target)) !== null && _disabledDateProp !== void 0 ? _disabledDateProp : false;
|
|
437
458
|
}, [disabledDateProp]);
|
|
438
459
|
var disabledByBetween = useCallback(function (start, end, type) {
|
|
439
|
-
|
|
440
|
-
selectEndDate = selectValue[1];
|
|
441
|
-
var nextSelectValue = [selectStartDate, selectEndDate]; // If the date is between the start and the end
|
|
460
|
+
// If the date is between the start and the end
|
|
442
461
|
// the button is disabled
|
|
443
|
-
|
|
444
462
|
while (DateUtils.isBefore(start, end) || DateUtils.isSameDay(start, end)) {
|
|
445
|
-
if (
|
|
463
|
+
if (isDateDisabled(start, selectedDates, hasDoneSelect.current, type)) {
|
|
446
464
|
return true;
|
|
447
465
|
}
|
|
448
466
|
|
|
@@ -450,17 +468,17 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
450
468
|
}
|
|
451
469
|
|
|
452
470
|
return false;
|
|
453
|
-
}, [
|
|
471
|
+
}, [isDateDisabled, selectedDates]);
|
|
454
472
|
var disabledOkButton = useCallback(function () {
|
|
455
|
-
var start =
|
|
456
|
-
end =
|
|
473
|
+
var start = selectedDates[0],
|
|
474
|
+
end = selectedDates[1];
|
|
457
475
|
|
|
458
476
|
if (!start || !end || !hasDoneSelect.current) {
|
|
459
477
|
return true;
|
|
460
478
|
}
|
|
461
479
|
|
|
462
480
|
return disabledByBetween(start, end, DATERANGE_DISABLED_TARGET.TOOLBAR_BUTTON_OK);
|
|
463
|
-
}, [disabledByBetween,
|
|
481
|
+
}, [disabledByBetween, selectedDates]);
|
|
464
482
|
var disabledShortcutButton = useCallback(function (value) {
|
|
465
483
|
if (value === void 0) {
|
|
466
484
|
value = [];
|
|
@@ -477,8 +495,8 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
477
495
|
return disabledByBetween(start, end, DATERANGE_DISABLED_TARGET.TOOLBAR_SHORTCUT);
|
|
478
496
|
}, [disabledByBetween]);
|
|
479
497
|
var handleDisabledDate = useCallback(function (date, values, type) {
|
|
480
|
-
return
|
|
481
|
-
}, [
|
|
498
|
+
return isDateDisabled(date, values, hasDoneSelect.current, type);
|
|
499
|
+
}, [isDateDisabled]);
|
|
482
500
|
var onPickerKeyDown = useToggleKeyDownEvent(_extends({
|
|
483
501
|
triggerRef: triggerRef,
|
|
484
502
|
targetRef: targetRef,
|
|
@@ -504,17 +522,19 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
504
522
|
calendarDate: calendarDate,
|
|
505
523
|
disabledDate: handleDisabledDate,
|
|
506
524
|
format: formatStr,
|
|
507
|
-
hoverRangeValue:
|
|
525
|
+
hoverRangeValue: hoverDateRange !== null && hoverDateRange !== void 0 ? hoverDateRange : undefined,
|
|
508
526
|
isoWeek: isoWeek,
|
|
509
527
|
limitEndYear: limitEndYear,
|
|
510
528
|
locale: locale,
|
|
511
529
|
showOneCalendar: showOneCalendar,
|
|
512
530
|
showWeekNumbers: showWeekNumbers,
|
|
513
|
-
value:
|
|
531
|
+
value: selectedDates,
|
|
532
|
+
showMeridian: showMeridian,
|
|
514
533
|
onChangeCalendarDate: handleChangeCalendarDate,
|
|
515
534
|
onChangeCalendarTime: handleChangeCalendarTime,
|
|
516
535
|
onMouseMove: handleMouseMove,
|
|
517
|
-
onSelect:
|
|
536
|
+
onSelect: handleSelectDate,
|
|
537
|
+
onToggleMeridian: handleToggleMeridian
|
|
518
538
|
};
|
|
519
539
|
return /*#__PURE__*/React.createElement(PickerOverlay, {
|
|
520
540
|
className: classes,
|
|
@@ -527,7 +547,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
527
547
|
className: prefix('daterange-content')
|
|
528
548
|
}, /*#__PURE__*/React.createElement("div", {
|
|
529
549
|
className: prefix('daterange-header')
|
|
530
|
-
}, getDisplayString(
|
|
550
|
+
}, getDisplayString(selectedDates)), /*#__PURE__*/React.createElement("div", {
|
|
531
551
|
className: prefix("daterange-calendar-" + (showOneCalendar ? 'single' : 'group'))
|
|
532
552
|
}, /*#__PURE__*/React.createElement(Calendar, _extends({
|
|
533
553
|
index: 0
|
|
@@ -535,7 +555,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
535
555
|
index: 1
|
|
536
556
|
}, panelProps)))), /*#__PURE__*/React.createElement(Toolbar, {
|
|
537
557
|
locale: locale,
|
|
538
|
-
calendarDate:
|
|
558
|
+
calendarDate: selectedDates,
|
|
539
559
|
disabledOkBtn: disabledOkButton,
|
|
540
560
|
disabledShortcut: disabledShortcutButton,
|
|
541
561
|
hideOkBtn: oneTap,
|
|
@@ -545,7 +565,7 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
545
565
|
})));
|
|
546
566
|
};
|
|
547
567
|
|
|
548
|
-
var hasValue = value && value.length > 1;
|
|
568
|
+
var hasValue = !isNil(value) && value.length > 1;
|
|
549
569
|
|
|
550
570
|
var _usePickerClassName = usePickerClassName(_extends({}, props, {
|
|
551
571
|
classPrefix: classPrefix,
|
|
@@ -586,9 +606,9 @@ var DateRangePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
586
606
|
hasValue: hasValue,
|
|
587
607
|
active: isPickerToggleActive,
|
|
588
608
|
placement: placement,
|
|
589
|
-
|
|
609
|
+
caretAs: IconCalendar,
|
|
590
610
|
disabled: disabled
|
|
591
|
-
}), getDisplayString())));
|
|
611
|
+
}), getDisplayString(value))));
|
|
592
612
|
});
|
|
593
613
|
DateRangePicker.after = disabledDateUtils.after;
|
|
594
614
|
DateRangePicker.afterToday = disabledDateUtils.afterToday;
|
|
@@ -609,11 +629,12 @@ DateRangePicker.propTypes = _extends({}, pickerPropTypes, {
|
|
|
609
629
|
isoWeek: PropTypes.bool,
|
|
610
630
|
oneTap: PropTypes.bool,
|
|
611
631
|
limitEndYear: PropTypes.number,
|
|
612
|
-
showWeekNumbers: PropTypes.bool,
|
|
613
632
|
onChange: PropTypes.func,
|
|
614
633
|
onOk: PropTypes.func,
|
|
615
634
|
disabledDate: PropTypes.func,
|
|
616
635
|
onSelect: PropTypes.func,
|
|
636
|
+
showWeekNumbers: PropTypes.bool,
|
|
637
|
+
showMeridian: PropTypes.bool,
|
|
617
638
|
showOneCalendar: PropTypes.bool
|
|
618
639
|
});
|
|
619
640
|
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:
|
|
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 {
|
|
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
|
|
5
|
-
}):
|
|
4
|
+
value: [] | [Date] | [Date, Date] | null;
|
|
5
|
+
}): DateRange;
|
|
6
6
|
export declare const getDefaultRanges: () => RangeType[];
|
|
7
|
-
export declare const isSameRange: (source:
|
|
8
|
-
export declare const getMonthHoverRange: (date: Date) =>
|
|
9
|
-
export declare const getWeekHoverRange: (isoWeek: boolean, date: Date) =>
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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({
|
|
@@ -54,7 +56,7 @@ function Disclosure(props) {
|
|
|
54
56
|
});
|
|
55
57
|
}
|
|
56
58
|
});
|
|
57
|
-
var
|
|
59
|
+
var contextValue = useMemo(function () {
|
|
58
60
|
return [{
|
|
59
61
|
open: open
|
|
60
62
|
}, dispatch, {
|
|
@@ -62,7 +64,7 @@ function Disclosure(props) {
|
|
|
62
64
|
}];
|
|
63
65
|
}, [open, dispatch, onToggle]);
|
|
64
66
|
return /*#__PURE__*/React.createElement(DisclosureContext.Provider, {
|
|
65
|
-
value:
|
|
67
|
+
value: contextValue
|
|
66
68
|
}, children({
|
|
67
69
|
open: open
|
|
68
70
|
}, containerElementRef));
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { useCallback,
|
|
2
|
-
import
|
|
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
|
|
10
|
-
open =
|
|
11
|
-
dispatch =
|
|
12
|
-
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) {
|