rsuite 5.39.0 → 5.41.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.
- package/CHANGELOG.md +26 -0
- package/Navbar/styles/index.less +1 -1
- package/SelectPicker/styles/index.less +4 -8
- package/cjs/@types/common.js +1 -0
- package/cjs/@types/utils.js +12 -2
- package/cjs/Affix/Affix.js +39 -59
- package/cjs/Affix/index.js +1 -3
- package/cjs/Animation/Bounce.js +4 -13
- package/cjs/Animation/Collapse.js +19 -40
- package/cjs/Animation/Fade.js +6 -15
- package/cjs/Animation/Slide.js +6 -15
- package/cjs/Animation/Transition.js +16 -83
- package/cjs/Animation/index.js +1 -7
- package/cjs/Animation/utils.js +1 -6
- package/cjs/AutoComplete/AutoComplete.js +55 -90
- package/cjs/AutoComplete/index.js +1 -3
- package/cjs/AutoComplete/utils.js +1 -9
- package/cjs/Avatar/Avatar.js +18 -32
- package/cjs/Avatar/index.js +1 -3
- package/cjs/AvatarGroup/AvatarGroup.js +13 -27
- package/cjs/AvatarGroup/index.js +1 -3
- package/cjs/Badge/Badge.js +14 -27
- package/cjs/Badge/index.js +1 -3
- package/cjs/Breadcrumb/Breadcrumb.js +19 -41
- package/cjs/Breadcrumb/BreadcrumbItem.js +14 -26
- package/cjs/Breadcrumb/index.js +1 -3
- package/cjs/Button/Button.js +22 -40
- package/cjs/Button/index.js +1 -3
- package/cjs/ButtonGroup/ButtonGroup.js +15 -26
- package/cjs/ButtonGroup/ButtonGroupContext.js +1 -4
- package/cjs/ButtonGroup/index.js +1 -4
- package/cjs/ButtonToolbar/ButtonToolbar.js +10 -20
- package/cjs/ButtonToolbar/index.js +1 -3
- package/cjs/Calendar/Calendar.js +24 -43
- package/cjs/Calendar/CalendarBody.js +14 -28
- package/cjs/Calendar/CalendarContainer.js +46 -69
- package/cjs/Calendar/CalendarContext.js +1 -6
- package/cjs/Calendar/CalendarHeader.js +32 -59
- package/cjs/Calendar/MonthDropdown.js +22 -45
- package/cjs/Calendar/MonthDropdownItem.js +16 -31
- package/cjs/Calendar/Table.js +10 -21
- package/cjs/Calendar/TableHeaderRow.js +11 -25
- package/cjs/Calendar/TableRow.js +35 -66
- package/cjs/Calendar/TimeDropdown.js +24 -64
- package/cjs/Calendar/index.js +1 -8
- package/cjs/Calendar/types.js +1 -0
- package/cjs/Calendar/useCalendarDate.js +3 -13
- package/cjs/Calendar/useCalendarState.js +3 -8
- package/cjs/Carousel/Carousel.js +40 -65
- package/cjs/Carousel/index.js +1 -3
- package/cjs/Cascader/Cascader.js +126 -197
- package/cjs/Cascader/DropdownMenu.js +33 -65
- package/cjs/Cascader/index.js +1 -3
- package/cjs/Cascader/utils.js +13 -24
- package/cjs/CheckPicker/CheckPicker.js +105 -156
- package/cjs/CheckPicker/index.js +1 -3
- package/cjs/CheckTree/index.js +1 -8
- package/cjs/CheckTreePicker/CheckTreeNode.js +28 -54
- package/cjs/CheckTreePicker/CheckTreePicker.js +166 -248
- package/cjs/CheckTreePicker/index.js +1 -3
- package/cjs/CheckTreePicker/utils.d.ts +1 -1
- package/cjs/CheckTreePicker/utils.js +14 -54
- package/cjs/Checkbox/Checkbox.js +48 -77
- package/cjs/Checkbox/index.js +1 -3
- package/cjs/CheckboxGroup/CheckboxGroup.js +20 -38
- package/cjs/CheckboxGroup/CheckboxGroupContext.js +1 -4
- package/cjs/CheckboxGroup/index.js +1 -4
- package/cjs/CloseButton/CloseButton.js +10 -20
- package/cjs/CloseButton/index.js +1 -3
- package/cjs/Col/Col.js +10 -23
- package/cjs/Col/index.js +1 -3
- package/cjs/Container/Container.js +11 -24
- package/cjs/Container/index.js +1 -3
- package/cjs/Content/Content.js +1 -3
- package/cjs/Content/index.js +1 -3
- package/cjs/CustomProvider/CustomProvider.js +13 -28
- package/cjs/CustomProvider/FormattedDate.js +3 -9
- package/cjs/CustomProvider/index.js +1 -6
- package/cjs/DOMHelper/index.js +1 -7
- package/cjs/DOMHelper/isElement.js +1 -2
- package/cjs/DatePicker/DatePicker.js +108 -161
- package/cjs/DatePicker/PredefinedRanges.js +12 -29
- package/cjs/DatePicker/Toolbar.js +20 -36
- package/cjs/DatePicker/index.js +1 -3
- package/cjs/DatePicker/types.js +1 -0
- package/cjs/DatePicker/utils.js +5 -13
- package/cjs/DateRangePicker/Calendar.js +18 -28
- package/cjs/DateRangePicker/DateRangePicker.js +128 -207
- package/cjs/DateRangePicker/DateRangePickerContext.js +1 -6
- package/cjs/DateRangePicker/disabledDateUtils.js +9 -32
- package/cjs/DateRangePicker/index.js +1 -3
- package/cjs/DateRangePicker/types.js +1 -0
- package/cjs/DateRangePicker/utils.js +7 -20
- package/cjs/Disclosure/Disclosure.js +14 -34
- package/cjs/Disclosure/DisclosureButton.js +4 -12
- package/cjs/Disclosure/DisclosureContent.js +1 -5
- package/cjs/Disclosure/DisclosureContext.js +1 -6
- package/cjs/Disclosure/index.js +1 -3
- package/cjs/Disclosure/useDisclosureContext.js +1 -6
- package/cjs/Divider/Divider.js +11 -20
- package/cjs/Divider/index.js +1 -3
- package/cjs/Drawer/Drawer.js +10 -27
- package/cjs/Drawer/index.js +1 -3
- package/cjs/Dropdown/Dropdown.js +35 -68
- package/cjs/Dropdown/DropdownContext.js +1 -4
- package/cjs/Dropdown/DropdownItem.js +22 -49
- package/cjs/Dropdown/DropdownMenu.js +36 -63
- package/cjs/Dropdown/DropdownSeparator.js +8 -17
- package/cjs/Dropdown/DropdownState.js +1 -10
- package/cjs/Dropdown/DropdownToggle.js +17 -29
- package/cjs/Dropdown/index.js +1 -3
- package/cjs/Dropdown/useRenderDropdownItem.js +1 -5
- package/cjs/FlexboxGrid/FlexboxGrid.js +12 -22
- package/cjs/FlexboxGrid/FlexboxGridItem.js +12 -22
- package/cjs/FlexboxGrid/index.js +1 -3
- package/cjs/Footer/Footer.js +1 -3
- package/cjs/Footer/index.js +1 -3
- package/cjs/Form/Form.js +36 -76
- package/cjs/Form/FormContext.js +1 -8
- package/cjs/Form/index.js +1 -4
- package/cjs/Form/useFormClassNames.js +11 -14
- package/cjs/Form/useSchemaModel.js +2 -6
- package/cjs/FormControl/FormControl.js +50 -82
- package/cjs/FormControl/index.js +1 -3
- package/cjs/FormControl/useRegisterModel.js +1 -3
- package/cjs/FormControlLabel/FormControlLabel.js +10 -22
- package/cjs/FormControlLabel/index.js +1 -3
- package/cjs/FormErrorMessage/FormErrorMessage.js +12 -27
- package/cjs/FormErrorMessage/index.js +1 -3
- package/cjs/FormGroup/FormGroup.js +9 -21
- package/cjs/FormGroup/index.js +1 -3
- package/cjs/FormHelpText/FormHelpText.js +11 -28
- package/cjs/FormHelpText/index.js +1 -3
- package/cjs/Grid/Grid.js +10 -19
- package/cjs/Grid/index.js +1 -3
- package/cjs/Header/Header.js +1 -3
- package/cjs/Header/index.js +1 -3
- package/cjs/IconButton/IconButton.js +11 -21
- package/cjs/IconButton/index.js +1 -3
- package/cjs/Input/Input.js +26 -43
- package/cjs/Input/index.js +1 -3
- package/cjs/InputGroup/InputGroup.js +23 -39
- package/cjs/InputGroup/InputGroupAddon.js +9 -18
- package/cjs/InputGroup/InputGroupButton.js +7 -17
- package/cjs/InputGroup/index.js +1 -3
- package/cjs/InputNumber/InputNumber.js +42 -88
- package/cjs/InputNumber/index.js +1 -3
- package/cjs/InputPicker/InputAutosize.js +17 -42
- package/cjs/InputPicker/InputPicker.js +149 -250
- package/cjs/InputPicker/InputSearch.js +15 -28
- package/cjs/InputPicker/index.js +1 -3
- package/cjs/List/List.js +37 -51
- package/cjs/List/ListContext.js +1 -5
- package/cjs/List/ListItem.js +26 -40
- package/cjs/List/helper/AutoScroller.js +11 -21
- package/cjs/List/helper/useManager.js +1 -8
- package/cjs/List/helper/useSortHelper.js +58 -82
- package/cjs/List/helper/utils.js +6 -19
- package/cjs/List/index.js +1 -3
- package/cjs/Loader/Loader.js +17 -26
- package/cjs/Loader/index.js +1 -3
- package/cjs/MaskedInput/MaskedInput.js +2 -8
- package/cjs/MaskedInput/TextMask.js +14 -23
- package/cjs/MaskedInput/adjustCaretPosition.js +99 -70
- package/cjs/MaskedInput/conformToMask.js +79 -73
- package/cjs/MaskedInput/createTextMaskInputElement.js +65 -71
- package/cjs/MaskedInput/index.js +1 -3
- package/cjs/MaskedInput/types.js +1 -0
- package/cjs/MaskedInput/utilities.js +1 -8
- package/cjs/Menu/Menu.js +35 -79
- package/cjs/Menu/MenuContext.js +1 -8
- package/cjs/Menu/MenuItem.js +15 -26
- package/cjs/Menu/Menubar.js +13 -32
- package/cjs/Menu/index.js +1 -3
- package/cjs/Menu/useMenu.js +5 -34
- package/cjs/Message/Message.js +23 -45
- package/cjs/Message/index.js +1 -3
- package/cjs/Modal/Modal.js +70 -91
- package/cjs/Modal/ModalBody.js +11 -25
- package/cjs/Modal/ModalContext.js +1 -4
- package/cjs/Modal/ModalDialog.js +14 -26
- package/cjs/Modal/ModalFooter.js +1 -3
- package/cjs/Modal/ModalHeader.js +14 -29
- package/cjs/Modal/ModalTitle.js +9 -20
- package/cjs/Modal/index.js +1 -3
- package/cjs/Modal/utils.js +8 -19
- package/cjs/MultiCascader/DropdownMenu.js +38 -64
- package/cjs/MultiCascader/MultiCascader.js +129 -192
- package/cjs/MultiCascader/index.js +1 -3
- package/cjs/MultiCascader/utils.js +44 -106
- package/cjs/Nav/Nav.js +27 -69
- package/cjs/Nav/NavContext.js +1 -4
- package/cjs/Nav/NavDropdown.js +28 -60
- package/cjs/Nav/NavDropdownItem.js +20 -42
- package/cjs/Nav/NavDropdownMenu.js +26 -54
- package/cjs/Nav/NavDropdownToggle.js +12 -26
- package/cjs/Nav/NavItem.js +20 -39
- package/cjs/Nav/NavMenu.js +2 -28
- package/cjs/Nav/index.js +1 -3
- package/cjs/Navbar/Navbar.js +10 -23
- package/cjs/Navbar/NavbarBody.js +1 -6
- package/cjs/Navbar/NavbarBrand.js +1 -3
- package/cjs/Navbar/NavbarDropdown.js +25 -49
- package/cjs/Navbar/NavbarDropdownItem.js +18 -44
- package/cjs/Navbar/NavbarDropdownMenu.js +22 -51
- package/cjs/Navbar/NavbarDropdownToggle.js +12 -25
- package/cjs/Navbar/NavbarHeader.js +1 -6
- package/cjs/Navbar/NavbarItem.js +19 -35
- package/cjs/Navbar/index.js +1 -3
- package/cjs/Notification/Notification.js +20 -43
- package/cjs/Notification/index.js +1 -3
- package/cjs/Overlay/Modal.js +40 -79
- package/cjs/Overlay/ModalManager.js +1 -26
- package/cjs/Overlay/Overlay.js +28 -50
- package/cjs/Overlay/OverlayContext.js +1 -4
- package/cjs/Overlay/OverlayTrigger.js +67 -116
- package/cjs/Overlay/Position.js +25 -64
- package/cjs/Overlay/index.js +1 -3
- package/cjs/Overlay/positionUtils.js +25 -86
- package/cjs/Pagination/Pagination.js +30 -70
- package/cjs/Pagination/PaginationButton.js +15 -29
- package/cjs/Pagination/PaginationGroup.js +38 -63
- package/cjs/Pagination/index.js +1 -3
- package/cjs/Panel/Panel.js +37 -61
- package/cjs/Panel/index.js +1 -3
- package/cjs/PanelGroup/PanelGroup.js +16 -29
- package/cjs/PanelGroup/index.js +1 -3
- package/cjs/Picker/DropdownMenu.js +50 -93
- package/cjs/Picker/DropdownMenuCheckItem.js +22 -33
- package/cjs/Picker/DropdownMenuGroup.js +10 -22
- package/cjs/Picker/DropdownMenuItem.js +15 -26
- package/cjs/Picker/PickerOverlay.js +12 -28
- package/cjs/Picker/PickerToggle.js +57 -89
- package/cjs/Picker/PickerToggleTrigger.js +8 -19
- package/cjs/Picker/SearchBar.js +14 -26
- package/cjs/Picker/SelectedElement.js +9 -17
- package/cjs/Picker/ToggleButton.js +1 -6
- package/cjs/Picker/index.js +1 -24
- package/cjs/Picker/propTypes.js +1 -7
- package/cjs/Picker/types.js +1 -0
- package/cjs/Picker/utils.js +94 -200
- package/cjs/Placeholder/Placeholder.js +1 -5
- package/cjs/Placeholder/PlaceholderGraph.js +13 -22
- package/cjs/Placeholder/PlaceholderGrid.js +18 -34
- package/cjs/Placeholder/PlaceholderParagraph.js +17 -29
- package/cjs/Placeholder/index.js +1 -3
- package/cjs/Plaintext/Plaintext.js +14 -23
- package/cjs/Plaintext/index.js +1 -3
- package/cjs/Popover/Popover.js +16 -27
- package/cjs/Popover/index.js +1 -3
- package/cjs/Progress/Progress.js +1 -4
- package/cjs/Progress/ProgressCircle.js +30 -47
- package/cjs/Progress/ProgressLine.js +19 -29
- package/cjs/Progress/index.js +1 -3
- package/cjs/Radio/Radio.js +42 -62
- package/cjs/Radio/index.js +1 -3
- package/cjs/RadioGroup/RadioGroup.js +22 -37
- package/cjs/RadioGroup/index.js +1 -3
- package/cjs/RadioTile/RadioTile.js +30 -47
- package/cjs/RadioTile/index.js +1 -3
- package/cjs/RadioTileGroup/RadioTileGroup.js +17 -32
- package/cjs/RadioTileGroup/index.js +1 -3
- package/cjs/RangeSlider/RangeSlider.js +63 -104
- package/cjs/RangeSlider/index.js +1 -3
- package/cjs/Rate/Character.js +16 -31
- package/cjs/Rate/Rate.js +35 -62
- package/cjs/Rate/index.js +1 -3
- package/cjs/Rate/utils.js +1 -6
- package/cjs/Ripple/Ripple.js +16 -40
- package/cjs/Ripple/index.js +1 -3
- package/cjs/Row/Row.js +11 -22
- package/cjs/Row/index.js +1 -3
- package/cjs/SafeAnchor/SafeAnchor.js +8 -19
- package/cjs/SafeAnchor/index.js +1 -3
- package/cjs/Schema/Schema.js +1 -2
- package/cjs/Schema/index.js +1 -3
- package/cjs/SelectPicker/SelectPicker.js +136 -170
- package/cjs/SelectPicker/index.js +1 -3
- package/cjs/Sidebar/Sidebar.js +13 -26
- package/cjs/Sidebar/index.js +1 -3
- package/cjs/Sidenav/ExpandedSidenavDropdown.js +32 -54
- package/cjs/Sidenav/ExpandedSidenavDropdownItem.js +19 -41
- package/cjs/Sidenav/ExpandedSidenavDropdownMenu.js +22 -46
- package/cjs/Sidenav/Node.js +1 -12
- package/cjs/Sidenav/Sidenav.js +22 -45
- package/cjs/Sidenav/SidenavBody.js +1 -3
- package/cjs/Sidenav/SidenavDropdown.js +39 -70
- package/cjs/Sidenav/SidenavDropdownCollapse.js +9 -22
- package/cjs/Sidenav/SidenavDropdownItem.js +19 -45
- package/cjs/Sidenav/SidenavDropdownMenu.js +26 -54
- package/cjs/Sidenav/SidenavDropdownToggle.js +12 -25
- package/cjs/Sidenav/SidenavHeader.js +1 -3
- package/cjs/Sidenav/SidenavItem.js +27 -55
- package/cjs/Sidenav/SidenavToggle.js +11 -31
- package/cjs/Sidenav/index.js +1 -3
- package/cjs/Slider/Graduated.js +14 -29
- package/cjs/Slider/Handle.js +27 -52
- package/cjs/Slider/Input.js +2 -8
- package/cjs/Slider/Mark.js +11 -20
- package/cjs/Slider/ProgressBar.js +14 -23
- package/cjs/Slider/Slider.js +51 -84
- package/cjs/Slider/index.js +1 -3
- package/cjs/Slider/utils.js +1 -6
- package/cjs/Stack/Stack.js +22 -35
- package/cjs/Stack/StackItem.js +11 -17
- package/cjs/Stack/index.js +1 -3
- package/cjs/Steps/StepItem.js +16 -32
- package/cjs/Steps/Steps.js +18 -32
- package/cjs/Steps/index.js +1 -3
- package/cjs/Table/Table.js +6 -16
- package/cjs/Table/index.js +1 -3
- package/cjs/Tag/Tag.js +16 -28
- package/cjs/Tag/index.js +1 -3
- package/cjs/TagGroup/TagGroup.js +1 -3
- package/cjs/TagGroup/index.js +1 -3
- package/cjs/TagInput/index.js +7 -14
- package/cjs/TagPicker/index.js +5 -12
- package/cjs/Timeline/Timeline.js +14 -29
- package/cjs/Timeline/TimelineItem.js +14 -23
- package/cjs/Timeline/index.js +1 -3
- package/cjs/Toggle/Toggle.js +26 -45
- package/cjs/Toggle/index.js +1 -3
- package/cjs/Tooltip/Tooltip.js +13 -22
- package/cjs/Tooltip/index.js +1 -3
- package/cjs/Tree/Tree.js +1 -10
- package/cjs/Tree/TreeContext.js +1 -4
- package/cjs/Tree/index.js +1 -3
- package/cjs/TreePicker/TreeNode.js +37 -60
- package/cjs/TreePicker/TreePicker.js +155 -231
- package/cjs/TreePicker/index.js +1 -3
- package/cjs/Uploader/UploadFileItem.js +37 -82
- package/cjs/Uploader/UploadTrigger.js +24 -46
- package/cjs/Uploader/Uploader.js +89 -141
- package/cjs/Uploader/index.js +1 -3
- package/cjs/Whisper/Whisper.js +8 -20
- package/cjs/Whisper/index.js +1 -3
- package/cjs/Windowing/AutoSizer.js +13 -33
- package/cjs/Windowing/List.d.ts +2 -2
- package/cjs/Windowing/List.js +6 -22
- package/cjs/Windowing/index.js +1 -7
- package/cjs/index.js +1 -164
- package/cjs/locales/ar_EG.js +1 -4
- package/cjs/locales/da_DK.js +1 -5
- package/cjs/locales/de_DE.js +1 -5
- package/cjs/locales/default.js +1 -5
- package/cjs/locales/en_GB.js +1 -3
- package/cjs/locales/en_US.js +1 -4
- package/cjs/locales/es_AR.js +1 -5
- package/cjs/locales/es_ES.js +1 -5
- package/cjs/locales/fa_IR.js +1 -4
- package/cjs/locales/fi_FI.js +1 -5
- package/cjs/locales/fr_FR.js +1 -4
- package/cjs/locales/hu_HU.js +1 -5
- package/cjs/locales/index.js +1 -47
- package/cjs/locales/it_IT.js +1 -5
- package/cjs/locales/ja_JP.js +1 -5
- package/cjs/locales/kk_KZ.js +1 -4
- package/cjs/locales/ko_KR.js +1 -5
- package/cjs/locales/ne_NP.js +1 -5
- package/cjs/locales/nl_NL.js +1 -4
- package/cjs/locales/pt_BR.js +1 -4
- package/cjs/locales/ru_RU.js +1 -4
- package/cjs/locales/sv_SE.js +1 -5
- package/cjs/locales/tr_TR.js +1 -4
- package/cjs/locales/zh_CN.js +1 -4
- package/cjs/locales/zh_TW.js +1 -4
- package/cjs/toaster/ToastContainer.js +29 -52
- package/cjs/toaster/ToastContext.js +1 -4
- package/cjs/toaster/index.js +1 -4
- package/cjs/toaster/toaster.js +4 -27
- package/cjs/toaster/useToaster.js +2 -8
- package/cjs/utils/BrowserDetection.js +7 -24
- package/cjs/utils/ReactChildren.js +2 -19
- package/cjs/utils/ajaxUpload.js +15 -33
- package/cjs/utils/appendTooltip.js +3 -9
- package/cjs/utils/attachParent.js +1 -1
- package/cjs/utils/clone.js +1 -2
- package/cjs/utils/composeFunctions.js +1 -3
- package/cjs/utils/constants.js +3 -8
- package/cjs/utils/createChainedFunction.js +2 -6
- package/cjs/utils/createComponent.js +12 -24
- package/cjs/utils/dateUtils.js +7 -121
- package/cjs/utils/deprecateComponent.js +1 -8
- package/cjs/utils/deprecatePropType.js +2 -9
- package/cjs/utils/dom.js +3 -2
- package/cjs/utils/events.js +2 -3
- package/cjs/utils/getDOMNode.js +16 -9
- package/cjs/utils/getDataGroupBy.d.ts +0 -23
- package/cjs/utils/getDataGroupBy.js +5 -44
- package/cjs/utils/getSafeRegExpString.js +1 -1
- package/cjs/utils/guid.js +1 -1
- package/cjs/utils/htmlPropsUtils.js +23 -20
- package/cjs/utils/index.js +1 -86
- package/cjs/utils/isOneOf.js +1 -2
- package/cjs/utils/mergeRefs.js +1 -2
- package/cjs/utils/placementPolyfill.js +2 -5
- package/cjs/utils/prefix.js +4 -15
- package/cjs/utils/previewFile.js +1 -6
- package/cjs/utils/propTypeChecker.js +1 -8
- package/cjs/utils/reactToString.js +1 -5
- package/cjs/utils/render.js +3 -10
- package/cjs/utils/scrollTopAnimation.js +1 -9
- package/cjs/utils/shallowEqual.js +8 -14
- package/cjs/utils/shallowEqualArray.js +1 -7
- package/cjs/utils/statusIcons.js +1 -9
- package/cjs/utils/stringToObject.js +1 -7
- package/cjs/utils/tplTransform.js +2 -7
- package/cjs/utils/treeUtils.d.ts +1 -1
- package/cjs/utils/treeUtils.js +119 -334
- package/cjs/utils/useClassNames.js +9 -15
- package/cjs/utils/useClickOutside.js +4 -8
- package/cjs/utils/useControlled.js +11 -7
- package/cjs/utils/useCustom.js +12 -25
- package/cjs/utils/useElementResize.js +1 -6
- package/cjs/utils/useEnsuredRef.js +1 -4
- package/cjs/utils/useEventCallback.js +1 -4
- package/cjs/utils/useEventListener.js +1 -5
- package/cjs/utils/useFocus.js +5 -6
- package/cjs/utils/useInternalId.js +1 -6
- package/cjs/utils/useIsMounted.js +1 -3
- package/cjs/utils/useMap.js +5 -7
- package/cjs/utils/useMount.js +1 -4
- package/cjs/utils/usePortal.js +7 -20
- package/cjs/utils/useRootClose.js +9 -19
- package/cjs/utils/useTimeout.js +3 -8
- package/cjs/utils/useToggleCaret.js +2 -14
- package/cjs/utils/useUniqueId.js +2 -9
- package/cjs/utils/useUpdateEffect.js +3 -5
- package/cjs/utils/useUpdatedRef.js +1 -2
- package/cjs/utils/useWillUnmount.js +3 -5
- package/cjs/utils/warnOnce.js +2 -2
- package/dist/rsuite-no-reset-rtl.css +23 -25
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +23 -25
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +23 -25
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +23 -25
- package/dist/rsuite.js +407 -440
- 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.js +1 -0
- package/esm/@types/utils.js +14 -2
- package/esm/Affix/Affix.js +39 -50
- package/esm/Affix/index.js +1 -0
- package/esm/Animation/Bounce.js +4 -5
- package/esm/Animation/Collapse.js +19 -26
- package/esm/Animation/Fade.js +6 -7
- package/esm/Animation/Slide.js +6 -7
- package/esm/Animation/Transition.js +16 -69
- package/esm/Animation/index.js +1 -0
- package/esm/Animation/utils.js +1 -2
- package/esm/AutoComplete/AutoComplete.js +55 -75
- package/esm/AutoComplete/index.js +1 -0
- package/esm/AutoComplete/utils.js +1 -4
- package/esm/Avatar/Avatar.js +18 -22
- package/esm/Avatar/index.js +1 -0
- package/esm/AvatarGroup/AvatarGroup.js +13 -16
- package/esm/AvatarGroup/index.js +1 -0
- package/esm/Badge/Badge.js +14 -19
- package/esm/Badge/index.js +1 -0
- package/esm/Breadcrumb/Breadcrumb.js +19 -30
- package/esm/Breadcrumb/BreadcrumbItem.js +14 -17
- package/esm/Breadcrumb/index.js +1 -0
- package/esm/Button/Button.js +22 -28
- package/esm/Button/index.js +1 -0
- package/esm/ButtonGroup/ButtonGroup.js +15 -16
- package/esm/ButtonGroup/ButtonGroupContext.js +1 -0
- package/esm/ButtonGroup/index.js +1 -0
- package/esm/ButtonToolbar/ButtonToolbar.js +10 -12
- package/esm/ButtonToolbar/index.js +1 -0
- package/esm/Calendar/Calendar.js +24 -29
- package/esm/Calendar/CalendarBody.js +14 -18
- package/esm/Calendar/CalendarContainer.js +46 -51
- package/esm/Calendar/CalendarContext.js +1 -0
- package/esm/Calendar/CalendarHeader.js +32 -41
- package/esm/Calendar/MonthDropdown.js +22 -27
- package/esm/Calendar/MonthDropdownItem.js +16 -20
- package/esm/Calendar/Table.js +10 -11
- package/esm/Calendar/TableHeaderRow.js +11 -15
- package/esm/Calendar/TableRow.js +36 -50
- package/esm/Calendar/TimeDropdown.js +24 -48
- package/esm/Calendar/index.js +1 -0
- package/esm/Calendar/types.js +1 -0
- package/esm/Calendar/useCalendarDate.js +3 -11
- package/esm/Calendar/useCalendarState.js +3 -6
- package/esm/Carousel/Carousel.js +40 -52
- package/esm/Carousel/index.js +1 -0
- package/esm/Cascader/Cascader.js +126 -178
- package/esm/Cascader/DropdownMenu.js +33 -45
- package/esm/Cascader/index.js +1 -0
- package/esm/Cascader/utils.js +13 -22
- package/esm/CheckPicker/CheckPicker.js +105 -139
- package/esm/CheckPicker/index.js +1 -0
- package/esm/CheckTree/index.js +1 -0
- package/esm/CheckTreePicker/CheckTreeNode.js +28 -44
- package/esm/CheckTreePicker/CheckTreePicker.js +166 -233
- package/esm/CheckTreePicker/index.js +1 -0
- package/esm/CheckTreePicker/utils.d.ts +1 -1
- package/esm/CheckTreePicker/utils.js +14 -37
- package/esm/Checkbox/Checkbox.js +48 -66
- package/esm/Checkbox/index.js +1 -0
- package/esm/CheckboxGroup/CheckboxGroup.js +20 -25
- package/esm/CheckboxGroup/CheckboxGroupContext.js +1 -0
- package/esm/CheckboxGroup/index.js +1 -0
- package/esm/CloseButton/CloseButton.js +10 -13
- package/esm/CloseButton/index.js +1 -0
- package/esm/Col/Col.js +10 -13
- package/esm/Col/index.js +1 -0
- package/esm/Container/Container.js +11 -13
- package/esm/Container/index.js +1 -0
- package/esm/Content/Content.js +1 -1
- package/esm/Content/index.js +1 -0
- package/esm/CustomProvider/CustomProvider.js +13 -16
- package/esm/CustomProvider/FormattedDate.js +3 -6
- package/esm/CustomProvider/index.js +1 -0
- package/esm/DOMHelper/index.js +1 -2
- package/esm/DOMHelper/isElement.js +1 -1
- package/esm/DatePicker/DatePicker.js +108 -131
- package/esm/DatePicker/PredefinedRanges.js +12 -19
- package/esm/DatePicker/Toolbar.js +20 -26
- package/esm/DatePicker/index.js +1 -0
- package/esm/DatePicker/types.js +1 -0
- package/esm/DatePicker/utils.js +5 -8
- package/esm/DateRangePicker/Calendar.js +18 -18
- package/esm/DateRangePicker/DateRangePicker.js +128 -184
- package/esm/DateRangePicker/DateRangePickerContext.js +1 -0
- package/esm/DateRangePicker/disabledDateUtils.js +9 -24
- package/esm/DateRangePicker/index.js +1 -0
- package/esm/DateRangePicker/types.js +1 -0
- package/esm/DateRangePicker/utils.js +7 -12
- package/esm/Disclosure/Disclosure.js +13 -24
- package/esm/Disclosure/DisclosureButton.js +4 -7
- package/esm/Disclosure/DisclosureContent.js +1 -2
- package/esm/Disclosure/DisclosureContext.js +1 -2
- package/esm/Disclosure/index.js +1 -0
- package/esm/Disclosure/useDisclosureContext.js +1 -2
- package/esm/Divider/Divider.js +11 -12
- package/esm/Divider/index.js +1 -0
- package/esm/Drawer/Drawer.js +10 -11
- package/esm/Drawer/index.js +1 -0
- package/esm/Dropdown/Dropdown.js +35 -50
- package/esm/Dropdown/DropdownContext.js +1 -0
- package/esm/Dropdown/DropdownItem.js +22 -31
- package/esm/Dropdown/DropdownMenu.js +36 -49
- package/esm/Dropdown/DropdownSeparator.js +8 -10
- package/esm/Dropdown/DropdownState.js +1 -7
- package/esm/Dropdown/DropdownToggle.js +17 -17
- package/esm/Dropdown/index.js +1 -0
- package/esm/Dropdown/useRenderDropdownItem.js +1 -2
- package/esm/FlexboxGrid/FlexboxGrid.js +12 -13
- package/esm/FlexboxGrid/FlexboxGridItem.js +12 -14
- package/esm/FlexboxGrid/index.js +1 -0
- package/esm/Footer/Footer.js +1 -0
- package/esm/Footer/index.js +1 -0
- package/esm/Form/Form.js +36 -63
- package/esm/Form/FormContext.js +1 -0
- package/esm/Form/index.js +1 -0
- package/esm/Form/useFormClassNames.js +11 -13
- package/esm/Form/useSchemaModel.js +2 -4
- package/esm/FormControl/FormControl.js +48 -68
- package/esm/FormControl/index.js +1 -0
- package/esm/FormControl/useRegisterModel.js +1 -2
- package/esm/FormControlLabel/FormControlLabel.js +10 -12
- package/esm/FormControlLabel/index.js +1 -0
- package/esm/FormErrorMessage/FormErrorMessage.js +12 -18
- package/esm/FormErrorMessage/index.js +1 -0
- package/esm/FormGroup/FormGroup.js +9 -10
- package/esm/FormGroup/index.js +1 -0
- package/esm/FormHelpText/FormHelpText.js +11 -15
- package/esm/FormHelpText/index.js +1 -0
- package/esm/Grid/Grid.js +10 -11
- package/esm/Grid/index.js +1 -0
- package/esm/Header/Header.js +1 -0
- package/esm/Header/index.js +1 -0
- package/esm/IconButton/IconButton.js +11 -12
- package/esm/IconButton/index.js +1 -0
- package/esm/Input/Input.js +26 -32
- package/esm/Input/index.js +1 -0
- package/esm/InputGroup/InputGroup.js +23 -26
- package/esm/InputGroup/InputGroupAddon.js +9 -10
- package/esm/InputGroup/InputGroupButton.js +7 -9
- package/esm/InputGroup/index.js +1 -0
- package/esm/InputNumber/InputNumber.js +42 -72
- package/esm/InputNumber/index.js +1 -0
- package/esm/InputPicker/InputAutosize.js +17 -37
- package/esm/InputPicker/InputPicker.js +149 -225
- package/esm/InputPicker/InputSearch.js +15 -20
- package/esm/InputPicker/index.js +1 -0
- package/esm/List/List.js +37 -39
- package/esm/List/ListContext.js +1 -0
- package/esm/List/ListItem.js +26 -30
- package/esm/List/helper/AutoScroller.js +11 -21
- package/esm/List/helper/useManager.js +1 -6
- package/esm/List/helper/useSortHelper.js +58 -74
- package/esm/List/helper/utils.js +6 -11
- package/esm/List/index.js +1 -0
- package/esm/Loader/Loader.js +17 -19
- package/esm/Loader/index.js +1 -0
- package/esm/MaskedInput/MaskedInput.js +2 -1
- package/esm/MaskedInput/TextMask.js +12 -14
- package/esm/MaskedInput/adjustCaretPosition.js +99 -69
- package/esm/MaskedInput/conformToMask.js +79 -70
- package/esm/MaskedInput/createTextMaskInputElement.js +65 -62
- package/esm/MaskedInput/index.js +1 -0
- package/esm/MaskedInput/types.js +1 -0
- package/esm/MaskedInput/utilities.js +1 -6
- package/esm/Menu/Menu.js +35 -66
- package/esm/Menu/MenuContext.js +1 -4
- package/esm/Menu/MenuItem.js +15 -19
- package/esm/Menu/Menubar.js +13 -23
- package/esm/Menu/index.js +1 -0
- package/esm/Menu/useMenu.js +4 -27
- package/esm/Message/Message.js +23 -34
- package/esm/Message/index.js +1 -0
- package/esm/Modal/Modal.js +70 -69
- package/esm/Modal/ModalBody.js +11 -13
- package/esm/Modal/ModalContext.js +1 -0
- package/esm/Modal/ModalDialog.js +14 -18
- package/esm/Modal/ModalFooter.js +1 -0
- package/esm/Modal/ModalHeader.js +14 -16
- package/esm/Modal/ModalTitle.js +9 -10
- package/esm/Modal/index.js +1 -0
- package/esm/Modal/utils.js +8 -12
- package/esm/MultiCascader/DropdownMenu.js +38 -48
- package/esm/MultiCascader/MultiCascader.js +129 -174
- package/esm/MultiCascader/index.js +1 -0
- package/esm/MultiCascader/utils.js +44 -87
- package/esm/Nav/Nav.js +27 -45
- package/esm/Nav/NavContext.js +1 -0
- package/esm/Nav/NavDropdown.js +28 -44
- package/esm/Nav/NavDropdownItem.js +20 -31
- package/esm/Nav/NavDropdownMenu.js +26 -42
- package/esm/Nav/NavDropdownToggle.js +12 -15
- package/esm/Nav/NavItem.js +20 -28
- package/esm/Nav/NavMenu.js +2 -13
- package/esm/Nav/index.js +1 -0
- package/esm/Navbar/Navbar.js +10 -11
- package/esm/Navbar/NavbarBody.js +1 -0
- package/esm/Navbar/NavbarBrand.js +1 -0
- package/esm/Navbar/NavbarDropdown.js +25 -33
- package/esm/Navbar/NavbarDropdownItem.js +18 -30
- package/esm/Navbar/NavbarDropdownMenu.js +22 -37
- package/esm/Navbar/NavbarDropdownToggle.js +12 -14
- package/esm/Navbar/NavbarHeader.js +1 -0
- package/esm/Navbar/NavbarItem.js +19 -23
- package/esm/Navbar/index.js +1 -0
- package/esm/Notification/Notification.js +20 -32
- package/esm/Notification/index.js +1 -0
- package/esm/Overlay/Modal.js +40 -64
- package/esm/Overlay/ModalManager.js +1 -19
- package/esm/Overlay/Overlay.js +28 -37
- package/esm/Overlay/OverlayContext.js +1 -0
- package/esm/Overlay/OverlayTrigger.js +68 -101
- package/esm/Overlay/Position.js +25 -47
- package/esm/Overlay/index.js +1 -0
- package/esm/Overlay/positionUtils.js +25 -73
- package/esm/Pagination/Pagination.js +30 -55
- package/esm/Pagination/PaginationButton.js +15 -19
- package/esm/Pagination/PaginationGroup.js +38 -49
- package/esm/Pagination/index.js +1 -0
- package/esm/Panel/Panel.js +37 -49
- package/esm/Panel/index.js +1 -0
- package/esm/PanelGroup/PanelGroup.js +16 -18
- package/esm/PanelGroup/index.js +1 -0
- package/esm/Picker/DropdownMenu.js +50 -72
- package/esm/Picker/DropdownMenuCheckItem.js +22 -24
- package/esm/Picker/DropdownMenuGroup.js +10 -13
- package/esm/Picker/DropdownMenuItem.js +15 -18
- package/esm/Picker/PickerOverlay.js +12 -17
- package/esm/Picker/PickerToggle.js +57 -71
- package/esm/Picker/PickerToggleTrigger.js +8 -10
- package/esm/Picker/SearchBar.js +14 -15
- package/esm/Picker/SelectedElement.js +9 -14
- package/esm/Picker/ToggleButton.js +1 -0
- package/esm/Picker/index.js +1 -0
- package/esm/Picker/propTypes.js +1 -1
- package/esm/Picker/types.js +1 -0
- package/esm/Picker/utils.js +94 -182
- package/esm/Placeholder/Placeholder.js +1 -0
- package/esm/Placeholder/PlaceholderGraph.js +13 -16
- package/esm/Placeholder/PlaceholderGrid.js +18 -25
- package/esm/Placeholder/PlaceholderParagraph.js +17 -20
- package/esm/Placeholder/index.js +1 -0
- package/esm/Plaintext/Plaintext.js +14 -17
- package/esm/Plaintext/index.js +1 -0
- package/esm/Popover/Popover.js +16 -21
- package/esm/Popover/index.js +1 -0
- package/esm/Progress/Progress.js +1 -0
- package/esm/Progress/ProgressCircle.js +30 -39
- package/esm/Progress/ProgressLine.js +19 -21
- package/esm/Progress/index.js +1 -0
- package/esm/Radio/Radio.js +42 -52
- package/esm/Radio/index.js +1 -0
- package/esm/RadioGroup/RadioGroup.js +22 -25
- package/esm/RadioGroup/index.js +1 -0
- package/esm/RadioTile/RadioTile.js +30 -34
- package/esm/RadioTile/index.js +1 -0
- package/esm/RadioTileGroup/RadioTileGroup.js +17 -20
- package/esm/RadioTileGroup/index.js +1 -0
- package/esm/RangeSlider/RangeSlider.js +63 -86
- package/esm/RangeSlider/index.js +1 -0
- package/esm/Rate/Character.js +16 -21
- package/esm/Rate/Rate.js +35 -48
- package/esm/Rate/index.js +1 -0
- package/esm/Rate/utils.js +1 -2
- package/esm/Ripple/Ripple.js +16 -30
- package/esm/Ripple/index.js +1 -0
- package/esm/Row/Row.js +11 -14
- package/esm/Row/index.js +1 -0
- package/esm/SafeAnchor/SafeAnchor.js +8 -13
- package/esm/SafeAnchor/index.js +1 -0
- package/esm/Schema/Schema.js +1 -0
- package/esm/Schema/index.js +1 -0
- package/esm/SelectPicker/SelectPicker.js +137 -157
- package/esm/SelectPicker/index.js +1 -0
- package/esm/Sidebar/Sidebar.js +13 -18
- package/esm/Sidebar/index.js +1 -0
- package/esm/Sidenav/ExpandedSidenavDropdown.js +32 -35
- package/esm/Sidenav/ExpandedSidenavDropdownItem.js +19 -27
- package/esm/Sidenav/ExpandedSidenavDropdownMenu.js +22 -29
- package/esm/Sidenav/Node.js +1 -10
- package/esm/Sidenav/Sidenav.js +22 -28
- package/esm/Sidenav/SidenavBody.js +1 -0
- package/esm/Sidenav/SidenavDropdown.js +39 -52
- package/esm/Sidenav/SidenavDropdownCollapse.js +9 -13
- package/esm/Sidenav/SidenavDropdownItem.js +19 -31
- package/esm/Sidenav/SidenavDropdownMenu.js +26 -41
- package/esm/Sidenav/SidenavDropdownToggle.js +12 -14
- package/esm/Sidenav/SidenavHeader.js +1 -0
- package/esm/Sidenav/SidenavItem.js +27 -37
- package/esm/Sidenav/SidenavToggle.js +11 -18
- package/esm/Sidenav/index.js +1 -0
- package/esm/Slider/Graduated.js +14 -21
- package/esm/Slider/Handle.js +27 -39
- package/esm/Slider/Input.js +2 -2
- package/esm/Slider/Mark.js +11 -14
- package/esm/Slider/ProgressBar.js +14 -18
- package/esm/Slider/Slider.js +51 -67
- package/esm/Slider/index.js +1 -0
- package/esm/Slider/utils.js +1 -5
- package/esm/Stack/Stack.js +22 -27
- package/esm/Stack/StackItem.js +11 -11
- package/esm/Stack/index.js +1 -0
- package/esm/Steps/StepItem.js +16 -22
- package/esm/Steps/Steps.js +18 -22
- package/esm/Steps/index.js +1 -0
- package/esm/Table/Table.js +6 -7
- package/esm/Table/index.js +1 -0
- package/esm/Tag/Tag.js +16 -19
- package/esm/Tag/index.js +1 -0
- package/esm/TagGroup/TagGroup.js +1 -0
- package/esm/TagGroup/index.js +1 -0
- package/esm/TagInput/index.js +7 -7
- package/esm/TagPicker/index.js +5 -5
- package/esm/Timeline/Timeline.js +14 -19
- package/esm/Timeline/TimelineItem.js +14 -15
- package/esm/Timeline/index.js +1 -0
- package/esm/Toggle/Toggle.js +26 -35
- package/esm/Toggle/index.js +1 -0
- package/esm/Tooltip/Tooltip.js +13 -16
- package/esm/Tooltip/index.js +1 -0
- package/esm/Tree/Tree.js +1 -3
- package/esm/Tree/TreeContext.js +1 -0
- package/esm/Tree/index.js +1 -0
- package/esm/TreePicker/TreeNode.js +37 -49
- package/esm/TreePicker/TreePicker.js +155 -218
- package/esm/TreePicker/index.js +1 -0
- package/esm/Uploader/UploadFileItem.js +37 -68
- package/esm/Uploader/UploadTrigger.js +24 -38
- package/esm/Uploader/Uploader.js +90 -132
- package/esm/Uploader/index.js +1 -0
- package/esm/Whisper/Whisper.js +8 -10
- package/esm/Whisper/index.js +1 -0
- package/esm/Windowing/AutoSizer.js +13 -24
- package/esm/Windowing/List.d.ts +2 -2
- package/esm/Windowing/List.js +6 -15
- package/esm/Windowing/index.js +1 -0
- package/esm/index.js +3 -0
- package/esm/locales/ar_EG.js +1 -0
- package/esm/locales/da_DK.js +1 -1
- package/esm/locales/de_DE.js +1 -1
- package/esm/locales/default.js +1 -1
- package/esm/locales/en_GB.js +1 -0
- package/esm/locales/en_US.js +1 -0
- package/esm/locales/es_AR.js +1 -1
- package/esm/locales/es_ES.js +1 -1
- package/esm/locales/fa_IR.js +1 -0
- package/esm/locales/fi_FI.js +1 -1
- package/esm/locales/fr_FR.js +1 -0
- package/esm/locales/hu_HU.js +1 -1
- package/esm/locales/index.js +1 -0
- package/esm/locales/it_IT.js +1 -1
- package/esm/locales/ja_JP.js +1 -1
- package/esm/locales/kk_KZ.js +1 -0
- package/esm/locales/ko_KR.js +1 -1
- package/esm/locales/ne_NP.js +1 -1
- package/esm/locales/nl_NL.js +1 -0
- package/esm/locales/pt_BR.js +1 -0
- package/esm/locales/ru_RU.js +1 -0
- package/esm/locales/sv_SE.js +1 -1
- package/esm/locales/tr_TR.js +1 -0
- package/esm/locales/zh_CN.js +1 -0
- package/esm/locales/zh_TW.js +1 -0
- package/esm/toaster/ToastContainer.js +29 -42
- package/esm/toaster/ToastContext.js +1 -0
- package/esm/toaster/index.js +1 -0
- package/esm/toaster/toaster.js +4 -22
- package/esm/toaster/useToaster.js +3 -5
- package/esm/utils/BrowserDetection.js +9 -9
- package/esm/utils/ReactChildren.js +2 -8
- package/esm/utils/ajaxUpload.js +15 -32
- package/esm/utils/appendTooltip.js +3 -3
- package/esm/utils/attachParent.js +1 -0
- package/esm/utils/clone.js +1 -1
- package/esm/utils/composeFunctions.js +1 -1
- package/esm/utils/constants.js +4 -7
- package/esm/utils/createChainedFunction.js +2 -5
- package/esm/utils/createComponent.js +12 -16
- package/esm/utils/dateUtils.js +7 -23
- package/esm/utils/deprecateComponent.js +2 -2
- package/esm/utils/deprecatePropType.js +4 -6
- package/esm/utils/dom.js +3 -1
- package/esm/utils/events.js +2 -1
- package/esm/utils/getDOMNode.js +15 -8
- package/esm/utils/getDataGroupBy.d.ts +0 -23
- package/esm/utils/getDataGroupBy.js +5 -39
- package/esm/utils/getSafeRegExpString.js +1 -0
- package/esm/utils/guid.js +1 -0
- package/esm/utils/htmlPropsUtils.js +23 -14
- package/esm/utils/index.js +2 -1
- package/esm/utils/isOneOf.js +1 -1
- package/esm/utils/mergeRefs.js +1 -1
- package/esm/utils/placementPolyfill.js +2 -4
- package/esm/utils/prefix.js +4 -4
- package/esm/utils/previewFile.js +1 -3
- package/esm/utils/propTypeChecker.js +1 -3
- package/esm/utils/reactToString.js +1 -2
- package/esm/utils/render.js +3 -5
- package/esm/utils/scrollTopAnimation.js +1 -5
- package/esm/utils/shallowEqual.js +8 -13
- package/esm/utils/shallowEqualArray.js +1 -5
- package/esm/utils/statusIcons.js +1 -0
- package/esm/utils/stringToObject.js +3 -4
- package/esm/utils/tplTransform.js +2 -4
- package/esm/utils/treeUtils.d.ts +1 -1
- package/esm/utils/treeUtils.js +120 -272
- package/esm/utils/useClassNames.js +9 -9
- package/esm/utils/useClickOutside.js +4 -6
- package/esm/utils/useControlled.js +12 -6
- package/esm/utils/useCustom.js +12 -20
- package/esm/utils/useElementResize.js +2 -4
- package/esm/utils/useEnsuredRef.js +2 -3
- package/esm/utils/useEventCallback.js +2 -3
- package/esm/utils/useEventListener.js +2 -2
- package/esm/utils/useFocus.js +5 -4
- package/esm/utils/useInternalId.js +2 -3
- package/esm/utils/useIsMounted.js +1 -2
- package/esm/utils/useMap.js +5 -5
- package/esm/utils/useMount.js +1 -3
- package/esm/utils/usePortal.js +7 -13
- package/esm/utils/useRootClose.js +9 -13
- package/esm/utils/useTimeout.js +3 -7
- package/esm/utils/useToggleCaret.js +2 -7
- package/esm/utils/useUniqueId.js +2 -4
- package/esm/utils/useUpdateEffect.js +3 -4
- package/esm/utils/useUpdatedRef.js +2 -1
- package/esm/utils/useWillUnmount.js +4 -2
- package/esm/utils/warnOnce.js +2 -2
- package/package.json +2 -2
- package/styles/color-modes/light.less +4 -4
- package/styles/mixins/listbox.less +0 -2
- package/cjs/SelectPicker/Listbox.d.ts +0 -34
- package/cjs/SelectPicker/Listbox.js +0 -263
- package/cjs/SelectPicker/ListboxOption.d.ts +0 -11
- package/cjs/SelectPicker/ListboxOption.js +0 -50
- package/cjs/SelectPicker/ListboxOptionGroup.d.ts +0 -9
- package/cjs/SelectPicker/ListboxOptionGroup.js +0 -69
- package/esm/SelectPicker/Listbox.d.ts +0 -34
- package/esm/SelectPicker/Listbox.js +0 -240
- package/esm/SelectPicker/ListboxOption.d.ts +0 -11
- package/esm/SelectPicker/ListboxOption.js +0 -37
- package/esm/SelectPicker/ListboxOptionGroup.d.ts +0 -9
- package/esm/SelectPicker/ListboxOptionGroup.js +0 -53
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
4
|
import _isUndefined from "lodash/isUndefined";
|
|
@@ -9,33 +10,29 @@ import Overlay from './Overlay';
|
|
|
9
10
|
import { createChainedFunction, usePortal, useControlled } from '../utils';
|
|
10
11
|
import isOneOf from '../utils/isOneOf';
|
|
11
12
|
import OverlayContext from './OverlayContext';
|
|
12
|
-
|
|
13
13
|
function mergeEvents(events, props) {
|
|
14
14
|
if (events === void 0) {
|
|
15
15
|
events = {};
|
|
16
16
|
}
|
|
17
|
-
|
|
18
17
|
if (props === void 0) {
|
|
19
18
|
props = {};
|
|
20
19
|
}
|
|
21
|
-
|
|
22
20
|
var nextEvents = {};
|
|
23
21
|
Object.keys(events).forEach(function (eventName) {
|
|
24
22
|
if (events[eventName]) {
|
|
25
23
|
var _props;
|
|
26
|
-
|
|
27
24
|
nextEvents[eventName] = createChainedFunction(events[eventName], (_props = props) === null || _props === void 0 ? void 0 : _props[eventName]);
|
|
28
25
|
}
|
|
29
26
|
});
|
|
30
27
|
return nextEvents;
|
|
31
28
|
}
|
|
32
|
-
|
|
33
29
|
/**
|
|
34
30
|
* The reason that triggers closing of an overlay
|
|
35
31
|
* - Clicking outside of the overlay
|
|
36
32
|
* - Direct invocation of triggerRef.current.close()
|
|
37
33
|
*/
|
|
38
34
|
export var OverlayCloseCause;
|
|
35
|
+
|
|
39
36
|
/**
|
|
40
37
|
* Useful for mouseover and mouseout.
|
|
41
38
|
* In order to resolve the node entering the mouseover element, a mouseout event and a mouseover event will be triggered.
|
|
@@ -43,112 +40,104 @@ export var OverlayCloseCause;
|
|
|
43
40
|
* @param handler
|
|
44
41
|
* @param event
|
|
45
42
|
*/
|
|
46
|
-
|
|
47
43
|
(function (OverlayCloseCause) {
|
|
48
44
|
OverlayCloseCause[OverlayCloseCause["ClickOutside"] = 0] = "ClickOutside";
|
|
49
45
|
OverlayCloseCause[OverlayCloseCause["ImperativeHandle"] = 1] = "ImperativeHandle";
|
|
50
46
|
})(OverlayCloseCause || (OverlayCloseCause = {}));
|
|
51
|
-
|
|
52
47
|
function onMouseEventHandler(handler, event, delay) {
|
|
53
48
|
var target = event.currentTarget;
|
|
54
49
|
var related = event.relatedTarget || get(event, ['nativeEvent', 'toElement']);
|
|
55
|
-
|
|
56
50
|
if ((!related || related !== target) && !contains(target, related)) {
|
|
57
51
|
handler(event, delay);
|
|
58
52
|
}
|
|
59
53
|
}
|
|
60
|
-
|
|
61
54
|
var defaultTrigger = ['hover', 'focus'];
|
|
62
55
|
var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
63
56
|
var _useContext = useContext(OverlayContext),
|
|
64
|
-
|
|
65
|
-
|
|
57
|
+
overlayContainer = _useContext.overlayContainer;
|
|
66
58
|
var children = props.children,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
59
|
+
_props$container = props.container,
|
|
60
|
+
container = _props$container === void 0 ? overlayContainer : _props$container,
|
|
61
|
+
controlId = props.controlId,
|
|
62
|
+
defaultOpen = props.defaultOpen,
|
|
63
|
+
_props$trigger = props.trigger,
|
|
64
|
+
trigger = _props$trigger === void 0 ? defaultTrigger : _props$trigger,
|
|
65
|
+
disabled = props.disabled,
|
|
66
|
+
followCursor = props.followCursor,
|
|
67
|
+
readOnly = props.readOnly,
|
|
68
|
+
plaintext = props.plaintext,
|
|
69
|
+
openProp = props.open,
|
|
70
|
+
delay = props.delay,
|
|
71
|
+
delayOpenProp = props.delayOpen,
|
|
72
|
+
delayCloseProp = props.delayClose,
|
|
73
|
+
enterable = props.enterable,
|
|
74
|
+
_props$placement = props.placement,
|
|
75
|
+
placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
|
|
76
|
+
speaker = props.speaker,
|
|
77
|
+
_props$rootClose = props.rootClose,
|
|
78
|
+
rootClose = _props$rootClose === void 0 ? true : _props$rootClose,
|
|
79
|
+
onClick = props.onClick,
|
|
80
|
+
onMouseOver = props.onMouseOver,
|
|
81
|
+
onMouseMove = props.onMouseMove,
|
|
82
|
+
onMouseOut = props.onMouseOut,
|
|
83
|
+
onContextMenu = props.onContextMenu,
|
|
84
|
+
onFocus = props.onFocus,
|
|
85
|
+
onBlur = props.onBlur,
|
|
86
|
+
onClose = props.onClose,
|
|
87
|
+
onExited = props.onExited,
|
|
88
|
+
rest = _objectWithoutPropertiesLoose(props, ["children", "container", "controlId", "defaultOpen", "trigger", "disabled", "followCursor", "readOnly", "plaintext", "open", "delay", "delayOpen", "delayClose", "enterable", "placement", "speaker", "rootClose", "onClick", "onMouseOver", "onMouseMove", "onMouseOut", "onContextMenu", "onFocus", "onBlur", "onClose", "onExited"]);
|
|
98
89
|
var _usePortal = usePortal({
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
90
|
+
container: container
|
|
91
|
+
}),
|
|
92
|
+
Portal = _usePortal.Portal,
|
|
93
|
+
containerElement = _usePortal.target;
|
|
104
94
|
var triggerRef = useRef();
|
|
105
95
|
var overlayRef = useRef();
|
|
106
|
-
|
|
107
96
|
var _useControlled = useControlled(openProp, defaultOpen),
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
97
|
+
open = _useControlled[0],
|
|
98
|
+
setOpen = _useControlled[1];
|
|
111
99
|
var _useState = useState(null),
|
|
112
|
-
|
|
113
|
-
|
|
100
|
+
cursorPosition = _useState[0],
|
|
101
|
+
setCursorPosition = _useState[1]; // Delay the timer to close/open the overlay
|
|
114
102
|
// When the cursor moves from the trigger to the overlay, the overlay will be closed.
|
|
115
103
|
// In order to keep the overlay open, a timer is used to delay the closing.
|
|
116
|
-
|
|
117
|
-
|
|
118
104
|
var delayOpenTimer = useRef(null);
|
|
119
105
|
var delayCloseTimer = useRef(null);
|
|
120
106
|
var delayOpen = isNil(delayOpenProp) ? delay : delayOpenProp;
|
|
121
|
-
var delayClose = isNil(delayCloseProp) ? delay : delayCloseProp;
|
|
107
|
+
var delayClose = isNil(delayCloseProp) ? delay : delayCloseProp;
|
|
122
108
|
|
|
123
|
-
|
|
109
|
+
// Whether the cursor is on the overlay
|
|
110
|
+
var isOnOverlay = useRef(false);
|
|
124
111
|
|
|
112
|
+
// Whether the cursor is on the trigger
|
|
125
113
|
var isOnTrigger = useRef(false);
|
|
126
114
|
useEffect(function () {
|
|
127
115
|
return function () {
|
|
128
116
|
if (!isNil(delayOpenTimer.current)) {
|
|
129
117
|
clearTimeout(delayOpenTimer.current);
|
|
130
118
|
}
|
|
131
|
-
|
|
132
119
|
if (!isNil(delayCloseTimer.current)) {
|
|
133
120
|
clearTimeout(delayCloseTimer.current);
|
|
134
121
|
}
|
|
135
122
|
};
|
|
136
123
|
}, []);
|
|
124
|
+
|
|
125
|
+
// Whether the cursor is on the overlay
|
|
126
|
+
var mouseEnter = useRef(false);
|
|
137
127
|
var handleOpen = useCallback(function (delay) {
|
|
138
128
|
var ms = _isUndefined(delay) ? delayOpen : delay;
|
|
139
|
-
|
|
140
129
|
if (ms && typeof ms === 'number') {
|
|
141
130
|
return delayOpenTimer.current = setTimeout(function () {
|
|
142
131
|
delayOpenTimer.current = null;
|
|
143
|
-
|
|
132
|
+
if (mouseEnter.current) {
|
|
133
|
+
setOpen(true);
|
|
134
|
+
}
|
|
144
135
|
}, ms);
|
|
145
136
|
}
|
|
146
|
-
|
|
147
137
|
setOpen(true);
|
|
148
138
|
}, [delayOpen, setOpen]);
|
|
149
139
|
var handleClose = useCallback(function (delay, callback) {
|
|
150
140
|
var ms = _isUndefined(delay) ? delayClose : delay;
|
|
151
|
-
|
|
152
141
|
if (ms && typeof ms === 'number') {
|
|
153
142
|
return delayCloseTimer.current = setTimeout(function () {
|
|
154
143
|
delayCloseTimer.current = null;
|
|
@@ -156,7 +145,6 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
156
145
|
callback === null || callback === void 0 ? void 0 : callback();
|
|
157
146
|
}, ms);
|
|
158
147
|
}
|
|
159
|
-
|
|
160
148
|
setOpen(false);
|
|
161
149
|
callback === null || callback === void 0 ? void 0 : callback();
|
|
162
150
|
}, [delayClose, setOpen]);
|
|
@@ -168,13 +156,10 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
168
156
|
get root() {
|
|
169
157
|
return triggerRef.current;
|
|
170
158
|
},
|
|
171
|
-
|
|
172
159
|
get overlay() {
|
|
173
160
|
var _overlayRef$current;
|
|
174
|
-
|
|
175
161
|
return (_overlayRef$current = overlayRef.current) === null || _overlayRef$current === void 0 ? void 0 : _overlayRef$current.child;
|
|
176
162
|
},
|
|
177
|
-
|
|
178
163
|
open: handleOpen,
|
|
179
164
|
close: function close(delay) {
|
|
180
165
|
return handleClose(delay, function () {
|
|
@@ -183,25 +168,24 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
183
168
|
},
|
|
184
169
|
updatePosition: function updatePosition() {
|
|
185
170
|
var _overlayRef$current2, _overlayRef$current2$;
|
|
186
|
-
|
|
187
171
|
(_overlayRef$current2 = overlayRef.current) === null || _overlayRef$current2 === void 0 ? void 0 : (_overlayRef$current2$ = _overlayRef$current2.updatePosition) === null || _overlayRef$current2$ === void 0 ? void 0 : _overlayRef$current2$.call(_overlayRef$current2);
|
|
188
172
|
}
|
|
189
173
|
};
|
|
190
174
|
});
|
|
175
|
+
|
|
191
176
|
/**
|
|
192
177
|
* Close after the cursor leaves.
|
|
193
178
|
*/
|
|
194
|
-
|
|
195
179
|
var handleCloseWhenLeave = useCallback(function () {
|
|
196
180
|
// When the cursor is not on the overlay and not on the trigger, it is closed.
|
|
197
181
|
if (!isOnOverlay.current && !isOnTrigger.current) {
|
|
198
182
|
handleClose();
|
|
199
183
|
}
|
|
200
184
|
}, [handleClose]);
|
|
185
|
+
|
|
201
186
|
/**
|
|
202
187
|
* Toggle open and closed state.
|
|
203
188
|
*/
|
|
204
|
-
|
|
205
189
|
var handleOpenState = useCallback(function () {
|
|
206
190
|
if (open) {
|
|
207
191
|
handleCloseWhenLeave();
|
|
@@ -210,47 +194,40 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
210
194
|
}
|
|
211
195
|
}, [open, handleCloseWhenLeave, handleOpen]);
|
|
212
196
|
var handleDelayedOpen = useCallback(function () {
|
|
197
|
+
mouseEnter.current = true;
|
|
213
198
|
if (!enterable) {
|
|
214
199
|
return handleOpen();
|
|
215
200
|
}
|
|
216
|
-
|
|
217
201
|
isOnTrigger.current = true;
|
|
218
|
-
|
|
219
202
|
if (!isNil(delayCloseTimer.current)) {
|
|
220
203
|
clearTimeout(delayCloseTimer.current);
|
|
221
204
|
delayCloseTimer.current = null;
|
|
222
205
|
return handleOpen();
|
|
223
206
|
}
|
|
224
|
-
|
|
225
207
|
if (open) {
|
|
226
208
|
return;
|
|
227
209
|
}
|
|
228
|
-
|
|
229
210
|
handleOpen();
|
|
230
211
|
}, [enterable, open, handleOpen]);
|
|
231
212
|
var handleDelayedClose = useCallback(function () {
|
|
213
|
+
mouseEnter.current = false;
|
|
232
214
|
if (!enterable) {
|
|
233
215
|
return handleClose();
|
|
234
216
|
}
|
|
235
|
-
|
|
236
217
|
isOnTrigger.current = false;
|
|
237
|
-
|
|
238
218
|
if (!isNil(delayOpenTimer.current)) {
|
|
239
219
|
clearTimeout(delayOpenTimer.current);
|
|
240
220
|
delayOpenTimer.current = null;
|
|
241
221
|
return;
|
|
242
222
|
}
|
|
243
|
-
|
|
244
223
|
if (!open || !isNil(delayCloseTimer.current)) {
|
|
245
224
|
return;
|
|
246
225
|
}
|
|
247
|
-
|
|
248
226
|
delayCloseTimer.current = setTimeout(function () {
|
|
249
227
|
if (!isNil(delayCloseTimer.current)) {
|
|
250
228
|
clearTimeout(delayCloseTimer.current);
|
|
251
229
|
delayCloseTimer.current = null;
|
|
252
230
|
}
|
|
253
|
-
|
|
254
231
|
handleCloseWhenLeave();
|
|
255
232
|
}, 200);
|
|
256
233
|
}, [enterable, open, handleClose, handleCloseWhenLeave]);
|
|
@@ -259,7 +236,6 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
259
236
|
}, []);
|
|
260
237
|
var handleSpeakerMouseLeave = useCallback(function () {
|
|
261
238
|
isOnOverlay.current = false;
|
|
262
|
-
|
|
263
239
|
if (!isOneOf('click', trigger) && !isOneOf('contextMenu', trigger) && !isOneOf('active', trigger)) {
|
|
264
240
|
handleCloseWhenLeave();
|
|
265
241
|
}
|
|
@@ -287,56 +263,50 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
287
263
|
onFocus: onFocus,
|
|
288
264
|
onBlur: onBlur,
|
|
289
265
|
onMouseMove: onMouseMove
|
|
290
|
-
};
|
|
266
|
+
};
|
|
291
267
|
|
|
268
|
+
// When trigger is disabled, no predefined event listeners are added.
|
|
292
269
|
if (disabled || readOnly || plaintext || trigger === 'none') {
|
|
293
270
|
return events;
|
|
294
|
-
}
|
|
295
|
-
// https://rsuitejs.com/components/tooltip/#follow-cursor
|
|
296
|
-
|
|
271
|
+
}
|
|
297
272
|
|
|
273
|
+
// Get the cursor position through onMouseMove.
|
|
274
|
+
// https://rsuitejs.com/components/tooltip/#follow-cursor
|
|
298
275
|
if (followCursor) {
|
|
299
276
|
events.onMouseMove = createChainedFunction(handledMoveOverlay, onMouseMove);
|
|
300
|
-
}
|
|
301
|
-
// The first click will open and the second click will close.
|
|
302
|
-
|
|
277
|
+
}
|
|
303
278
|
|
|
279
|
+
// The `click` event is usually used in `toggle` scenarios.
|
|
280
|
+
// The first click will open and the second click will close.
|
|
304
281
|
if (isOneOf('click', trigger)) {
|
|
305
282
|
events.onClick = createChainedFunction(handleOpenState, events.onClick);
|
|
306
283
|
return events;
|
|
307
|
-
}
|
|
308
|
-
|
|
284
|
+
}
|
|
309
285
|
|
|
286
|
+
// The difference between it and the click event is that it does not trigger the close.
|
|
310
287
|
if (isOneOf('active', trigger)) {
|
|
311
288
|
events.onClick = createChainedFunction(handleDelayedOpen, events.onClick);
|
|
312
289
|
return events;
|
|
313
290
|
}
|
|
314
|
-
|
|
315
291
|
if (isOneOf('hover', trigger)) {
|
|
316
292
|
var onMouseOverListener = function onMouseOverListener(e) {
|
|
317
293
|
return onMouseEventHandler(handleDelayedOpen, e);
|
|
318
294
|
};
|
|
319
|
-
|
|
320
295
|
var onMouseOutListener = function onMouseOutListener(e) {
|
|
321
296
|
return onMouseEventHandler(handleDelayedClose, e);
|
|
322
297
|
};
|
|
323
|
-
|
|
324
298
|
events.onMouseOver = createChainedFunction(onMouseOverListener, events.onMouseOver);
|
|
325
299
|
events.onMouseOut = createChainedFunction(onMouseOutListener, events.onMouseOut);
|
|
326
300
|
}
|
|
327
|
-
|
|
328
301
|
if (isOneOf('focus', trigger)) {
|
|
329
302
|
events.onFocus = createChainedFunction(handleDelayedOpen, events.onFocus);
|
|
330
303
|
events.onBlur = createChainedFunction(handleDelayedClose, events.onBlur);
|
|
331
304
|
}
|
|
332
|
-
|
|
333
305
|
if (isOneOf('contextMenu', trigger)) {
|
|
334
306
|
events.onContextMenu = createChainedFunction(preventDefault, handleOpenState, events.onContextMenu);
|
|
335
307
|
}
|
|
336
|
-
|
|
337
308
|
return events;
|
|
338
309
|
}, [disabled, followCursor, handleDelayedClose, handleDelayedOpen, handleOpenState, handledMoveOverlay, onBlur, onClick, onContextMenu, onFocus, onMouseMove, onMouseOut, onMouseOver, plaintext, preventDefault, readOnly, trigger]);
|
|
339
|
-
|
|
340
310
|
var renderOverlay = function renderOverlay() {
|
|
341
311
|
var overlayProps = _extends({}, rest, {
|
|
342
312
|
rootClose: rootClose,
|
|
@@ -349,18 +319,17 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
349
319
|
container: containerElement,
|
|
350
320
|
open: open
|
|
351
321
|
});
|
|
352
|
-
|
|
353
322
|
var speakerProps = {
|
|
354
323
|
id: controlId
|
|
355
|
-
};
|
|
324
|
+
};
|
|
325
|
+
|
|
326
|
+
// The purpose of adding mouse entry and exit events to the Overlay is to record whether the current cursor is on the Overlay.
|
|
356
327
|
// When `trigger` is equal to `hover`, if the cursor leaves the `triggerTarget` and stays on the Overlay,
|
|
357
328
|
// the Overlay will continue to remain open.
|
|
358
|
-
|
|
359
329
|
if (trigger !== 'none' && enterable) {
|
|
360
330
|
speakerProps.onMouseEnter = handleSpeakerMouseEnter;
|
|
361
331
|
speakerProps.onMouseLeave = handleSpeakerMouseLeave;
|
|
362
332
|
}
|
|
363
|
-
|
|
364
333
|
return /*#__PURE__*/React.createElement(Overlay, _extends({}, overlayProps, {
|
|
365
334
|
ref: overlayRef,
|
|
366
335
|
childrenProps: speakerProps,
|
|
@@ -372,11 +341,9 @@ var OverlayTrigger = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
372
341
|
}), ref);
|
|
373
342
|
} : speaker);
|
|
374
343
|
};
|
|
375
|
-
|
|
376
344
|
if (typeof children === 'object' && children.type === React.Fragment || typeof children === 'string') {
|
|
377
345
|
console.error('[rsuite] The OverlayTrigger component does not accept strings or Fragments as child.');
|
|
378
346
|
}
|
|
379
|
-
|
|
380
347
|
return /*#__PURE__*/React.createElement(React.Fragment, null, typeof children === 'function' ? children(triggerEvents, triggerRef) : /*#__PURE__*/React.cloneElement(children, _extends({
|
|
381
348
|
ref: triggerRef,
|
|
382
349
|
'aria-describedby': controlId
|
package/esm/Overlay/Position.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import React, { useState, useEffect, useRef, useMemo, useCallback, useImperativeHandle } from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import classNames from 'classnames';
|
|
@@ -12,18 +13,17 @@ import isElement from '../DOMHelper/isElement';
|
|
|
12
13
|
import positionUtils from './positionUtils';
|
|
13
14
|
import { getDOMNode } from '../utils';
|
|
14
15
|
import { useUpdateEffect } from '../utils';
|
|
15
|
-
|
|
16
16
|
var usePosition = function usePosition(props, ref) {
|
|
17
17
|
var _props$placement = props.placement,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
18
|
+
placement = _props$placement === void 0 ? 'right' : _props$placement,
|
|
19
|
+
_props$preventOverflo = props.preventOverflow,
|
|
20
|
+
preventOverflow = _props$preventOverflo === void 0 ? false : _props$preventOverflo,
|
|
21
|
+
_props$containerPaddi = props.containerPadding,
|
|
22
|
+
containerPadding = _props$containerPaddi === void 0 ? 0 : _props$containerPaddi,
|
|
23
|
+
container = props.container,
|
|
24
|
+
triggerTarget = props.triggerTarget,
|
|
25
|
+
followCursor = props.followCursor,
|
|
26
|
+
cursorPosition = props.cursorPosition;
|
|
27
27
|
var containerRef = useRef(null);
|
|
28
28
|
var lastTargetRef = useRef(null);
|
|
29
29
|
var overlayResizeObserver = useRef();
|
|
@@ -33,11 +33,9 @@ var usePosition = function usePosition(props, ref) {
|
|
|
33
33
|
arrowOffsetLeft: undefined,
|
|
34
34
|
arrowOffsetTop: undefined
|
|
35
35
|
};
|
|
36
|
-
|
|
37
36
|
var _useState = useState(defaultPosition),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
position = _useState[0],
|
|
38
|
+
setPosition = _useState[1];
|
|
41
39
|
var utils = useMemo(function () {
|
|
42
40
|
return positionUtils({
|
|
43
41
|
placement: placement,
|
|
@@ -55,36 +53,28 @@ var usePosition = function usePosition(props, ref) {
|
|
|
55
53
|
if (placementChanged === void 0) {
|
|
56
54
|
placementChanged = true;
|
|
57
55
|
}
|
|
58
|
-
|
|
59
56
|
if (!(triggerTarget !== null && triggerTarget !== void 0 && triggerTarget.current)) {
|
|
60
57
|
return;
|
|
61
58
|
}
|
|
62
|
-
|
|
63
59
|
var targetElement = getDOMNode(triggerTarget);
|
|
64
|
-
|
|
65
60
|
if (!isElement(targetElement)) {
|
|
66
61
|
throw new Error('`target` should return an HTMLElement');
|
|
67
|
-
}
|
|
68
|
-
|
|
62
|
+
}
|
|
69
63
|
|
|
64
|
+
// If the target and placement do not change, the position is not updated.
|
|
70
65
|
if (targetElement === lastTargetRef.current && !placementChanged) {
|
|
71
66
|
return;
|
|
72
67
|
}
|
|
73
|
-
|
|
74
68
|
var overlay = getDOMNode(ref.current);
|
|
75
69
|
var containerElement = getContainer(typeof container === 'function' ? container() : container !== null && container !== void 0 ? container : null, ownerDocument(ref.current).body);
|
|
76
70
|
var posi = utils.calcOverlayPosition(overlay, targetElement, containerElement, followCursor ? cursorPosition : undefined);
|
|
77
|
-
|
|
78
71
|
if (forceUpdateDOM && overlay) {
|
|
79
72
|
var _overlay$className, _overlay$className$ma;
|
|
80
|
-
|
|
81
73
|
var preClassName = overlay === null || overlay === void 0 ? void 0 : (_overlay$className = overlay.className) === null || _overlay$className === void 0 ? void 0 : (_overlay$className$ma = _overlay$className.match(/(placement-\S+)/)) === null || _overlay$className$ma === void 0 ? void 0 : _overlay$className$ma[0];
|
|
82
74
|
removeClass(overlay, preClassName);
|
|
83
|
-
|
|
84
75
|
if (posi.positionClassName) {
|
|
85
76
|
addClass(overlay, posi.positionClassName);
|
|
86
77
|
}
|
|
87
|
-
|
|
88
78
|
addStyle(overlay, {
|
|
89
79
|
left: posi.positionLeft + "px",
|
|
90
80
|
top: posi.positionTop + "px"
|
|
@@ -92,7 +82,6 @@ var usePosition = function usePosition(props, ref) {
|
|
|
92
82
|
} else {
|
|
93
83
|
setPosition(posi);
|
|
94
84
|
}
|
|
95
|
-
|
|
96
85
|
containerRef.current = containerElement;
|
|
97
86
|
lastTargetRef.current = targetElement;
|
|
98
87
|
}, [container, ref, triggerTarget, utils, followCursor, cursorPosition]);
|
|
@@ -100,21 +89,18 @@ var usePosition = function usePosition(props, ref) {
|
|
|
100
89
|
updatePosition(false);
|
|
101
90
|
var overlay = getDOMNode(ref.current);
|
|
102
91
|
var containerScrollListener;
|
|
103
|
-
|
|
104
92
|
if (containerRef.current && preventOverflow) {
|
|
105
93
|
var _containerRef$current;
|
|
106
|
-
|
|
107
94
|
// Update the overlay position when the container scroll bar is scrolling
|
|
108
95
|
containerScrollListener = on(((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.tagName) === 'BODY' ? window : containerRef.current, 'scroll', function () {
|
|
109
96
|
return updatePosition(true, true);
|
|
110
97
|
});
|
|
111
|
-
}
|
|
112
|
-
|
|
98
|
+
}
|
|
113
99
|
|
|
100
|
+
// Update the position when the window size changes
|
|
114
101
|
var resizeListener = on(window, 'resize', function () {
|
|
115
102
|
return updatePosition(true, true);
|
|
116
103
|
});
|
|
117
|
-
|
|
118
104
|
if (overlay) {
|
|
119
105
|
// Update the position when the size of the overlay changes
|
|
120
106
|
overlayResizeObserver.current = new ResizeObserver(function () {
|
|
@@ -122,10 +108,8 @@ var usePosition = function usePosition(props, ref) {
|
|
|
122
108
|
});
|
|
123
109
|
overlayResizeObserver.current.observe(overlay);
|
|
124
110
|
}
|
|
125
|
-
|
|
126
111
|
return function () {
|
|
127
112
|
var _containerScrollListe, _overlayResizeObserve;
|
|
128
|
-
|
|
129
113
|
lastTargetRef.current = null;
|
|
130
114
|
(_containerScrollListe = containerScrollListener) === null || _containerScrollListe === void 0 ? void 0 : _containerScrollListe.off();
|
|
131
115
|
resizeListener === null || resizeListener === void 0 ? void 0 : resizeListener.off();
|
|
@@ -137,29 +121,25 @@ var usePosition = function usePosition(props, ref) {
|
|
|
137
121
|
}, [updatePosition, placement]);
|
|
138
122
|
return [position, updatePosition];
|
|
139
123
|
};
|
|
140
|
-
|
|
141
124
|
var Position = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
142
125
|
var children = props.children,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
126
|
+
className = props.className,
|
|
127
|
+
followCursor = props.followCursor,
|
|
128
|
+
cursorPosition = props.cursorPosition;
|
|
146
129
|
var childRef = React.useRef(null);
|
|
147
|
-
|
|
148
130
|
var _usePosition = usePosition(props, childRef),
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
131
|
+
position = _usePosition[0],
|
|
132
|
+
updatePosition = _usePosition[1];
|
|
152
133
|
var positionClassName = position.positionClassName,
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
134
|
+
arrowOffsetLeft = position.arrowOffsetLeft,
|
|
135
|
+
arrowOffsetTop = position.arrowOffsetTop,
|
|
136
|
+
positionLeft = position.positionLeft,
|
|
137
|
+
positionTop = position.positionTop;
|
|
157
138
|
useImperativeHandle(ref, function () {
|
|
158
139
|
return {
|
|
159
140
|
get child() {
|
|
160
141
|
return childRef.current;
|
|
161
142
|
},
|
|
162
|
-
|
|
163
143
|
updatePosition: updatePosition
|
|
164
144
|
};
|
|
165
145
|
});
|
|
@@ -167,7 +147,6 @@ var Position = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
167
147
|
if (!followCursor || !cursorPosition) return;
|
|
168
148
|
updatePosition();
|
|
169
149
|
}, [followCursor, cursorPosition, updatePosition]);
|
|
170
|
-
|
|
171
150
|
if (typeof children === 'function') {
|
|
172
151
|
var childProps = {
|
|
173
152
|
className: classNames(className, positionClassName),
|
|
@@ -178,7 +157,6 @@ var Position = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
178
157
|
};
|
|
179
158
|
return children(childProps, childRef);
|
|
180
159
|
}
|
|
181
|
-
|
|
182
160
|
return children;
|
|
183
161
|
});
|
|
184
162
|
Position.displayName = 'Position';
|
package/esm/Overlay/index.js
CHANGED