rsuite 5.2.4 → 5.4.2
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 +61 -0
- package/CheckTreePicker/styles/index.less +14 -1
- package/Dropdown/styles/index.less +4 -3
- package/Modal/styles/index.less +23 -22
- package/Nav/styles/index.less +1 -0
- package/Navbar/styles/index.less +19 -5
- 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/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 +8 -6
- 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 +1 -1
- 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 +29 -25
- 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 +8 -7
- package/cjs/DateRangePicker/Calendar.js +1 -1
- package/cjs/DateRangePicker/DateRangePicker.d.ts +6 -6
- package/cjs/DateRangePicker/DateRangePicker.js +112 -111
- 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.d.ts +8 -5
- package/cjs/Disclosure/Disclosure.js +55 -13
- package/cjs/Disclosure/DisclosureButton.d.ts +2 -2
- package/cjs/Disclosure/DisclosureButton.js +9 -7
- package/cjs/Disclosure/DisclosureContent.js +4 -6
- package/cjs/Disclosure/DisclosureContext.d.ts +8 -3
- 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/Dropdown.js +1 -1
- package/cjs/Dropdown/DropdownContext.d.ts +2 -2
- package/cjs/Dropdown/DropdownItem.js +10 -11
- package/cjs/Dropdown/DropdownMenu.d.ts +3 -3
- package/cjs/Dropdown/DropdownMenu.js +81 -23
- 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 +39 -21
- 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/Navbar/index.d.ts +1 -0
- package/cjs/Navbar/index.js +4 -3
- package/cjs/Overlay/Modal.d.ts +2 -2
- package/cjs/Overlay/Modal.js +71 -63
- 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/propTypes.d.ts +5 -7
- package/cjs/Picker/propTypes.js +4 -3
- package/cjs/Picker/utils.d.ts +11 -11
- package/cjs/Picker/utils.js +22 -18
- 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 +32 -52
- 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/index.d.ts +1 -0
- package/cjs/utils/index.js +7 -2
- 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/useMount.d.ts +2 -0
- package/cjs/utils/useMount.js +19 -0
- 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 +95 -210
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +95 -210
- package/dist/rsuite.js +214 -115
- 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 +9 -7
- 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 +1 -1
- 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 +28 -23
- 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 +8 -7
- package/esm/DateRangePicker/Calendar.js +1 -1
- package/esm/DateRangePicker/DateRangePicker.d.ts +6 -6
- package/esm/DateRangePicker/DateRangePicker.js +112 -111
- 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.d.ts +8 -5
- package/esm/Disclosure/Disclosure.js +56 -15
- package/esm/Disclosure/DisclosureButton.d.ts +2 -2
- package/esm/Disclosure/DisclosureButton.js +8 -7
- package/esm/Disclosure/DisclosureContent.js +5 -7
- package/esm/Disclosure/DisclosureContext.d.ts +8 -3
- 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/Dropdown.js +1 -1
- package/esm/Dropdown/DropdownContext.d.ts +2 -2
- package/esm/Dropdown/DropdownItem.js +10 -10
- package/esm/Dropdown/DropdownMenu.d.ts +3 -3
- package/esm/Dropdown/DropdownMenu.js +82 -24
- 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 +41 -23
- 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/Navbar/index.d.ts +1 -0
- package/esm/Navbar/index.js +1 -0
- package/esm/Overlay/Modal.d.ts +2 -2
- package/esm/Overlay/Modal.js +72 -64
- 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/propTypes.d.ts +5 -7
- package/esm/Picker/propTypes.js +4 -3
- package/esm/Picker/utils.d.ts +11 -11
- package/esm/Picker/utils.js +21 -18
- 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 +31 -50
- 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/index.d.ts +1 -0
- package/esm/utils/index.js +2 -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/useMount.d.ts +2 -0
- package/esm/utils/useMount.js +13 -0
- 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 +2 -2
- package/styles/index.less +2 -0
package/cjs/Overlay/Modal.js
CHANGED
|
@@ -17,8 +17,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
17
17
|
|
|
18
18
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
19
|
|
|
20
|
-
var _canUseDOM = _interopRequireDefault(require("dom-lib/canUseDOM"));
|
|
21
|
-
|
|
22
20
|
var _contains = _interopRequireDefault(require("dom-lib/contains"));
|
|
23
21
|
|
|
24
22
|
var _getContainer = _interopRequireDefault(require("dom-lib/getContainer"));
|
|
@@ -33,6 +31,8 @@ var _utils = require("../Animation/utils");
|
|
|
33
31
|
|
|
34
32
|
var _utils2 = require("../utils");
|
|
35
33
|
|
|
34
|
+
var _OverlayContext = _interopRequireDefault(require("./OverlayContext"));
|
|
35
|
+
|
|
36
36
|
var manager;
|
|
37
37
|
|
|
38
38
|
function getManager() {
|
|
@@ -47,6 +47,12 @@ var useModalManager = function useModalManager() {
|
|
|
47
47
|
backdrop: null
|
|
48
48
|
});
|
|
49
49
|
return {
|
|
50
|
+
get dialog() {
|
|
51
|
+
var _modal$current;
|
|
52
|
+
|
|
53
|
+
return (_modal$current = modal.current) === null || _modal$current === void 0 ? void 0 : _modal$current.dialog;
|
|
54
|
+
},
|
|
55
|
+
|
|
50
56
|
add: function add(containerElement, containerClassName) {
|
|
51
57
|
return modalManager.add(modal.current, containerElement, containerClassName);
|
|
52
58
|
},
|
|
@@ -88,8 +94,7 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
88
94
|
open = props.open,
|
|
89
95
|
_props$autoFocus = props.autoFocus,
|
|
90
96
|
autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,
|
|
91
|
-
|
|
92
|
-
onEscapeKeyUp = props.onEscapeKeyUp,
|
|
97
|
+
onEsc = props.onEsc,
|
|
93
98
|
onExit = props.onExit,
|
|
94
99
|
onExiting = props.onExiting,
|
|
95
100
|
onExited = props.onExited,
|
|
@@ -98,7 +103,7 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
98
103
|
onEntered = props.onEntered,
|
|
99
104
|
onClose = props.onClose,
|
|
100
105
|
onOpen = props.onOpen,
|
|
101
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "children", "transition", "dialogTransitionTimeout", "style", "className", "container", "animationProps", "containerClassName", "keyboard", "enforceFocus", "backdrop", "backdropTransitionTimeout", "backdropStyle", "backdropClassName", "open", "autoFocus", "
|
|
106
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "children", "transition", "dialogTransitionTimeout", "style", "className", "container", "animationProps", "containerClassName", "keyboard", "enforceFocus", "backdrop", "backdropTransitionTimeout", "backdropStyle", "backdropClassName", "open", "autoFocus", "onEsc", "onExit", "onExiting", "onExited", "onEnter", "onEntering", "onEntered", "onClose", "onOpen"]);
|
|
102
107
|
|
|
103
108
|
var _useState = (0, _react.useState)(!open),
|
|
104
109
|
exited = _useState[0],
|
|
@@ -118,19 +123,13 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
118
123
|
}
|
|
119
124
|
|
|
120
125
|
var mountModal = open || Transition && !exited;
|
|
121
|
-
var
|
|
122
|
-
var
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
onEscapeKeyUp === null || onEscapeKeyUp === void 0 ? void 0 : onEscapeKeyUp(event);
|
|
126
|
+
var lastFocus = (0, _react.useRef)(null);
|
|
127
|
+
var handleDocumentKeyDown = (0, _utils2.useEventCallback)(function (event) {
|
|
128
|
+
if (keyboard && event.key === _utils2.KEY_VALUES.ESC && modal.isTopModal()) {
|
|
129
|
+
onEsc === null || onEsc === void 0 ? void 0 : onEsc(event);
|
|
126
130
|
onClose === null || onClose === void 0 ? void 0 : onClose(event);
|
|
127
131
|
}
|
|
128
|
-
}
|
|
129
|
-
var checkForFocus = (0, _react.useCallback)(function () {
|
|
130
|
-
if (_canUseDOM.default) {
|
|
131
|
-
lastFocus.current = document.activeElement;
|
|
132
|
-
}
|
|
133
|
-
}, []);
|
|
132
|
+
});
|
|
134
133
|
var restoreLastFocus = (0, _react.useCallback)(function () {
|
|
135
134
|
if (lastFocus.current) {
|
|
136
135
|
var _lastFocus$current$fo, _lastFocus$current;
|
|
@@ -139,55 +138,60 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
139
138
|
lastFocus.current = null;
|
|
140
139
|
}
|
|
141
140
|
}, []);
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
141
|
+
/**
|
|
142
|
+
* Determines if the currently focused element is inside the dialog,
|
|
143
|
+
* and if not, returns the focus to the dialog.
|
|
144
|
+
*
|
|
145
|
+
*/
|
|
149
146
|
|
|
147
|
+
var handleFocusDialog = (0, _utils2.useEventCallback)(function (onBeforeFocusCallback) {
|
|
150
148
|
var currentActiveElement = document.activeElement;
|
|
151
|
-
var dialog =
|
|
149
|
+
var dialog = modal.dialog;
|
|
152
150
|
|
|
153
|
-
if (dialog &&
|
|
151
|
+
if (dialog && currentActiveElement && !(0, _contains.default)(dialog, currentActiveElement)) {
|
|
152
|
+
onBeforeFocusCallback === null || onBeforeFocusCallback === void 0 ? void 0 : onBeforeFocusCallback();
|
|
154
153
|
dialog.focus();
|
|
155
154
|
}
|
|
156
|
-
}
|
|
157
|
-
var
|
|
158
|
-
if (
|
|
155
|
+
});
|
|
156
|
+
var handleEnforceFocus = (0, _utils2.useEventCallback)(function () {
|
|
157
|
+
if (!enforceFocus || !modal.isTopModal()) {
|
|
159
158
|
return;
|
|
160
159
|
}
|
|
161
160
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}, [backdrop, onBackdropClick, onClose]);
|
|
168
|
-
var documentKeyupListener = (0, _react.useRef)();
|
|
169
|
-
var docusinListener = (0, _react.useRef)();
|
|
170
|
-
var handleOpen = (0, _react.useCallback)(function () {
|
|
171
|
-
var dialog = getDialogElement();
|
|
161
|
+
handleFocusDialog();
|
|
162
|
+
});
|
|
163
|
+
var documentKeyDownListener = (0, _react.useRef)();
|
|
164
|
+
var documentFocusListener = (0, _react.useRef)();
|
|
165
|
+
var handleOpen = (0, _utils2.useEventCallback)(function () {
|
|
172
166
|
var containerElement = (0, _getContainer.default)(container, document.body);
|
|
173
167
|
modal.add(containerElement, containerClassName);
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
168
|
+
|
|
169
|
+
if (!documentKeyDownListener.current) {
|
|
170
|
+
documentKeyDownListener.current = (0, _on.default)(document, 'keydown', handleDocumentKeyDown);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
if (!documentFocusListener.current) {
|
|
174
|
+
documentFocusListener.current = (0, _on.default)(document, 'focus', handleEnforceFocus, true);
|
|
175
|
+
}
|
|
178
176
|
|
|
179
177
|
if (autoFocus) {
|
|
180
|
-
|
|
178
|
+
handleFocusDialog(function () {
|
|
179
|
+
lastFocus.current = document.activeElement;
|
|
180
|
+
});
|
|
181
181
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
|
|
183
|
+
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
184
|
+
});
|
|
185
|
+
var handleClose = (0, _utils2.useEventCallback)(function () {
|
|
186
|
+
var _documentKeyDownListe, _documentFocusListene;
|
|
185
187
|
|
|
186
188
|
modal.remove();
|
|
187
|
-
(
|
|
188
|
-
|
|
189
|
+
(_documentKeyDownListe = documentKeyDownListener.current) === null || _documentKeyDownListe === void 0 ? void 0 : _documentKeyDownListe.off();
|
|
190
|
+
documentKeyDownListener.current = null;
|
|
191
|
+
(_documentFocusListene = documentFocusListener.current) === null || _documentFocusListene === void 0 ? void 0 : _documentFocusListene.off();
|
|
192
|
+
documentFocusListener.current = null;
|
|
189
193
|
restoreLastFocus();
|
|
190
|
-
}
|
|
194
|
+
});
|
|
191
195
|
(0, _react.useEffect)(function () {
|
|
192
196
|
if (!open) {
|
|
193
197
|
return;
|
|
@@ -208,17 +212,19 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
208
212
|
var handleExited = (0, _react.useCallback)(function () {
|
|
209
213
|
setExited(true);
|
|
210
214
|
}, []);
|
|
215
|
+
var contextValue = (0, _react.useMemo)(function () {
|
|
216
|
+
return {
|
|
217
|
+
overlayContainer: function overlayContainer() {
|
|
218
|
+
return modal.dialog;
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
}, [modal.dialog]);
|
|
211
222
|
|
|
212
223
|
if (!mountModal) {
|
|
213
224
|
return null;
|
|
214
225
|
}
|
|
215
226
|
|
|
216
227
|
var renderBackdrop = function renderBackdrop() {
|
|
217
|
-
var backdropPorps = {
|
|
218
|
-
style: backdropStyle,
|
|
219
|
-
onClick: handleBackdropClick
|
|
220
|
-
};
|
|
221
|
-
|
|
222
228
|
if (Transition) {
|
|
223
229
|
return /*#__PURE__*/_react.default.createElement(_Fade.default, {
|
|
224
230
|
transitionAppear: true,
|
|
@@ -229,18 +235,19 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
229
235
|
rest = (0, _objectWithoutPropertiesLoose2.default)(fadeProps, ["className"]);
|
|
230
236
|
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
231
237
|
"aria-hidden": true
|
|
232
|
-
}, rest,
|
|
238
|
+
}, rest, {
|
|
239
|
+
style: backdropStyle,
|
|
233
240
|
ref: (0, _utils2.mergeRefs)(modal.setBackdropRef, ref),
|
|
234
241
|
className: (0, _classnames.default)(backdropClassName, className)
|
|
235
242
|
}));
|
|
236
243
|
});
|
|
237
244
|
}
|
|
238
245
|
|
|
239
|
-
return /*#__PURE__*/_react.default.createElement("div",
|
|
240
|
-
"aria-hidden": true
|
|
241
|
-
|
|
246
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
247
|
+
"aria-hidden": true,
|
|
248
|
+
style: backdropStyle,
|
|
242
249
|
className: backdropClassName
|
|
243
|
-
})
|
|
250
|
+
});
|
|
244
251
|
};
|
|
245
252
|
|
|
246
253
|
var dialogElement = Transition ? /*#__PURE__*/_react.default.createElement(Transition, (0, _extends2.default)({}, animationProps, {
|
|
@@ -255,12 +262,14 @@ var Modal = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
255
262
|
onEntering: onEntering,
|
|
256
263
|
onEntered: onEntered
|
|
257
264
|
}), children) : children;
|
|
258
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
265
|
+
return /*#__PURE__*/_react.default.createElement(_OverlayContext.default.Provider, {
|
|
266
|
+
value: contextValue
|
|
267
|
+
}, /*#__PURE__*/_react.default.createElement(Portal, null, backdrop && renderBackdrop(), /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
|
|
259
268
|
ref: (0, _utils2.mergeRefs)(modal.setDialogRef, ref),
|
|
260
269
|
style: style,
|
|
261
270
|
className: className,
|
|
262
271
|
tabIndex: -1
|
|
263
|
-
}),
|
|
272
|
+
}), dialogElement)));
|
|
264
273
|
});
|
|
265
274
|
|
|
266
275
|
var modalPropTypes = {
|
|
@@ -287,8 +296,7 @@ Modal.propTypes = (0, _extends2.default)({}, _utils.animationPropTypes, modalPro
|
|
|
287
296
|
dialogTransitionTimeout: _propTypes.default.number,
|
|
288
297
|
backdropTransitionTimeout: _propTypes.default.number,
|
|
289
298
|
transition: _propTypes.default.any,
|
|
290
|
-
|
|
291
|
-
onBackdropClick: _propTypes.default.func
|
|
299
|
+
onEsc: _propTypes.default.func
|
|
292
300
|
});
|
|
293
301
|
var _default = Modal;
|
|
294
302
|
exports.default = _default;
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ModalInstance {
|
|
3
|
+
dialog: HTMLElement | null;
|
|
4
|
+
backdrop: HTMLElement | null;
|
|
5
|
+
}
|
|
6
|
+
export interface ContainerState {
|
|
7
|
+
classes: string[];
|
|
8
|
+
modals: ModalInstance[];
|
|
9
|
+
style: React.CSSProperties;
|
|
10
|
+
overflowing: boolean;
|
|
11
|
+
}
|
|
1
12
|
declare class ModalManager {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
remove(modal: any): void;
|
|
9
|
-
isTopModal(modal: any): boolean;
|
|
13
|
+
modals: ModalInstance[];
|
|
14
|
+
containers: HTMLElement[];
|
|
15
|
+
data: ContainerState[];
|
|
16
|
+
add(modal: ModalInstance, container: HTMLElement, className?: string): number;
|
|
17
|
+
remove(modal: ModalInstance): void;
|
|
18
|
+
isTopModal(modal: ModalInstance): boolean;
|
|
10
19
|
}
|
|
11
20
|
export default ModalManager;
|
|
@@ -37,16 +37,7 @@ function findContainer(data, modal) {
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
var ModalManager = /*#__PURE__*/function () {
|
|
40
|
-
function ModalManager(
|
|
41
|
-
if (hideSiblingNodes === void 0) {
|
|
42
|
-
hideSiblingNodes = true;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
this.hideSiblingNodes = null;
|
|
46
|
-
this.modals = [];
|
|
47
|
-
this.containers = [];
|
|
48
|
-
this.data = [];
|
|
49
|
-
this.hideSiblingNodes = hideSiblingNodes;
|
|
40
|
+
function ModalManager() {
|
|
50
41
|
this.modals = [];
|
|
51
42
|
this.containers = [];
|
|
52
43
|
this.data = [];
|
|
@@ -70,7 +61,7 @@ var ModalManager = /*#__PURE__*/function () {
|
|
|
70
61
|
return modalIndex;
|
|
71
62
|
}
|
|
72
63
|
|
|
73
|
-
var
|
|
64
|
+
var containerState = {
|
|
74
65
|
modals: [modal],
|
|
75
66
|
classes: className ? className.split(/\s+/) : [],
|
|
76
67
|
style: {
|
|
@@ -80,7 +71,7 @@ var ModalManager = /*#__PURE__*/function () {
|
|
|
80
71
|
overflowing: (0, _isOverflowing.default)(container)
|
|
81
72
|
};
|
|
82
73
|
|
|
83
|
-
if (
|
|
74
|
+
if (containerState.overflowing) {
|
|
84
75
|
var paddingRight = parseInt((0, _getStyle.default)(container, 'paddingRight') || 0, 10);
|
|
85
76
|
var barSize = (0, _getScrollbarSize.default)();
|
|
86
77
|
(0, _addStyle.default)(container, {
|
|
@@ -88,9 +79,9 @@ var ModalManager = /*#__PURE__*/function () {
|
|
|
88
79
|
});
|
|
89
80
|
}
|
|
90
81
|
|
|
91
|
-
|
|
82
|
+
containerState.classes.forEach(_addClass.default.bind(null, container));
|
|
92
83
|
this.containers.push(container);
|
|
93
|
-
this.data.push(
|
|
84
|
+
this.data.push(containerState);
|
|
94
85
|
return modalIndex;
|
|
95
86
|
};
|
|
96
87
|
|
|
@@ -102,16 +93,16 @@ var ModalManager = /*#__PURE__*/function () {
|
|
|
102
93
|
}
|
|
103
94
|
|
|
104
95
|
var containerIndex = findContainer(this.data, modal);
|
|
105
|
-
var
|
|
96
|
+
var containerState = this.data[containerIndex];
|
|
106
97
|
var container = this.containers[containerIndex];
|
|
107
|
-
|
|
98
|
+
containerState.modals.splice(containerState.modals.indexOf(modal), 1);
|
|
108
99
|
this.modals.splice(modalIndex, 1);
|
|
109
100
|
|
|
110
|
-
if (
|
|
111
|
-
Object.keys(
|
|
112
|
-
return container.style[key] =
|
|
101
|
+
if (containerState.modals.length === 0) {
|
|
102
|
+
Object.keys(containerState.style).forEach(function (key) {
|
|
103
|
+
return container.style[key] = containerState.style[key];
|
|
113
104
|
});
|
|
114
|
-
|
|
105
|
+
containerState.classes.forEach(_removeClass.default.bind(null, container));
|
|
115
106
|
this.containers.splice(containerIndex, 1);
|
|
116
107
|
this.data.splice(containerIndex, 1);
|
|
117
108
|
}
|
package/cjs/Overlay/Overlay.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { TypeAttributes, AnimationEventProps } from '../@types/common';
|
|
4
4
|
export interface OverlayProps extends AnimationEventProps {
|
|
5
|
-
container?: HTMLElement | (() => HTMLElement);
|
|
6
|
-
children
|
|
5
|
+
container?: HTMLElement | (() => HTMLElement | null) | null;
|
|
6
|
+
children: React.ReactElement | ((props: any, ref: any) => React.ReactElement);
|
|
7
7
|
childrenProps?: React.HTMLAttributes<HTMLElement>;
|
|
8
8
|
className?: string;
|
|
9
9
|
containerPadding?: number;
|
|
@@ -13,7 +13,7 @@ export interface OverlayProps extends AnimationEventProps {
|
|
|
13
13
|
rootClose?: boolean;
|
|
14
14
|
transition?: React.ElementType;
|
|
15
15
|
triggerTarget?: React.RefObject<any>;
|
|
16
|
-
onClose?:
|
|
16
|
+
onClose?: React.ReactEventHandler;
|
|
17
17
|
}
|
|
18
18
|
export declare const overlayPropTypes: {
|
|
19
19
|
container: PropTypes.Requireable<any>;
|
package/cjs/Overlay/Overlay.js
CHANGED
|
@@ -21,6 +21,8 @@ var _utils = require("../utils");
|
|
|
21
21
|
|
|
22
22
|
var _Fade = _interopRequireDefault(require("../Animation/Fade"));
|
|
23
23
|
|
|
24
|
+
var _OverlayContext = _interopRequireDefault(require("./OverlayContext"));
|
|
25
|
+
|
|
24
26
|
var overlayPropTypes = {
|
|
25
27
|
container: _propTypes.default.any,
|
|
26
28
|
children: _propTypes.default.any,
|
|
@@ -44,7 +46,11 @@ var overlayPropTypes = {
|
|
|
44
46
|
exports.overlayPropTypes = overlayPropTypes;
|
|
45
47
|
|
|
46
48
|
var Overlay = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
47
|
-
var
|
|
49
|
+
var _useContext = (0, _react.useContext)(_OverlayContext.default),
|
|
50
|
+
overlayContainer = _useContext.overlayContainer;
|
|
51
|
+
|
|
52
|
+
var _props$container = props.container,
|
|
53
|
+
container = _props$container === void 0 ? overlayContainer : _props$container,
|
|
48
54
|
containerPadding = props.containerPadding,
|
|
49
55
|
placement = props.placement,
|
|
50
56
|
rootClose = props.rootClose,
|
|
@@ -67,7 +73,7 @@ var Overlay = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
67
73
|
exited = _useState[0],
|
|
68
74
|
setExited = _useState[1];
|
|
69
75
|
|
|
70
|
-
var overlayTarget = (0, _react.useRef)();
|
|
76
|
+
var overlayTarget = (0, _react.useRef)(null);
|
|
71
77
|
|
|
72
78
|
if (open) {
|
|
73
79
|
if (exited) setExited(false);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var OverlayContext = /*#__PURE__*/_react.default.createContext({});
|
|
11
|
+
|
|
12
|
+
OverlayContext.displayName = 'OverlayContext';
|
|
13
|
+
var _default = OverlayContext;
|
|
14
|
+
exports.default = _default;
|
|
@@ -17,7 +17,7 @@ export interface OverlayTriggerProps extends StandardProps, AnimationEventProps
|
|
|
17
17
|
/** Container padding */
|
|
18
18
|
containerPadding?: number;
|
|
19
19
|
/** display element */
|
|
20
|
-
speaker
|
|
20
|
+
speaker: React.ReactElement | ((props: any, ref: React.RefObject<any>) => React.ReactElement);
|
|
21
21
|
/** Prevent floating element overflow */
|
|
22
22
|
preventOverflow?: boolean;
|
|
23
23
|
/** Opern overlay */
|
|
@@ -27,7 +27,7 @@ export interface OverlayTriggerProps extends StandardProps, AnimationEventProps
|
|
|
27
27
|
/** Whether mouse is allowed to enter the floating layer of popover, whose default value is false. */
|
|
28
28
|
enterable?: boolean;
|
|
29
29
|
/** For the monitored component, the event will be bound to this component. */
|
|
30
|
-
children
|
|
30
|
+
children: React.ReactElement | ((props: any, ref: any) => React.ReactElement);
|
|
31
31
|
/** Whether to allow clicking document to close the overlay */
|
|
32
32
|
rootClose?: boolean;
|
|
33
33
|
/** Once disabled, the event cannot be triggered. */
|
|
@@ -39,27 +39,27 @@ export interface OverlayTriggerProps extends StandardProps, AnimationEventProps
|
|
|
39
39
|
/** Set the `id` on `<Overlay>` and `aria-describedby` on `<OverlayTrigger>` */
|
|
40
40
|
controlId?: string;
|
|
41
41
|
/** Lose Focus callback function */
|
|
42
|
-
onBlur?:
|
|
42
|
+
onBlur?: React.FocusEventHandler;
|
|
43
43
|
/** Click on the callback function */
|
|
44
|
-
onClick?:
|
|
44
|
+
onClick?: React.MouseEventHandler;
|
|
45
45
|
/** RightClick on the callback function */
|
|
46
46
|
onContextMenu?: React.MouseEventHandler;
|
|
47
47
|
/** Callback function to get focus */
|
|
48
|
-
onFocus?:
|
|
48
|
+
onFocus?: React.FocusEventHandler;
|
|
49
49
|
/** Mouse leave callback function */
|
|
50
|
-
onMouseOut?:
|
|
50
|
+
onMouseOut?: React.MouseEventHandler;
|
|
51
51
|
/** Mouse over callback function */
|
|
52
|
-
onMouseOver?:
|
|
52
|
+
onMouseOver?: React.MouseEventHandler;
|
|
53
53
|
/** Callback fired when open component */
|
|
54
54
|
onOpen?: () => void;
|
|
55
55
|
/** Callback fired when close component */
|
|
56
56
|
onClose?: () => void;
|
|
57
57
|
}
|
|
58
58
|
export interface OverlayTriggerInstance {
|
|
59
|
-
root:
|
|
60
|
-
updatePosition
|
|
61
|
-
open
|
|
62
|
-
close
|
|
59
|
+
root: HTMLElement;
|
|
60
|
+
updatePosition: () => void;
|
|
61
|
+
open: () => void;
|
|
62
|
+
close: () => void;
|
|
63
63
|
}
|
|
64
64
|
declare const OverlayTrigger: React.ForwardRefExoticComponent<OverlayTriggerProps & React.RefAttributes<unknown>>;
|
|
65
65
|
export default OverlayTrigger;
|
|
@@ -27,6 +27,8 @@ var _utils = require("../utils");
|
|
|
27
27
|
|
|
28
28
|
var _isOneOf = _interopRequireDefault(require("../utils/isOneOf"));
|
|
29
29
|
|
|
30
|
+
var _OverlayContext = _interopRequireDefault(require("./OverlayContext"));
|
|
31
|
+
|
|
30
32
|
function mergeEvents(events, props) {
|
|
31
33
|
if (events === void 0) {
|
|
32
34
|
events = {};
|
|
@@ -66,8 +68,12 @@ function onMouseEventHandler(handler, event, delay) {
|
|
|
66
68
|
var defaultTrigger = ['hover', 'focus'];
|
|
67
69
|
|
|
68
70
|
var OverlayTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
71
|
+
var _useContext = (0, _react.useContext)(_OverlayContext.default),
|
|
72
|
+
overlayContainer = _useContext.overlayContainer;
|
|
73
|
+
|
|
69
74
|
var children = props.children,
|
|
70
|
-
container = props.container,
|
|
75
|
+
_props$container = props.container,
|
|
76
|
+
container = _props$container === void 0 ? overlayContainer : _props$container,
|
|
71
77
|
controlId = props.controlId,
|
|
72
78
|
defaultOpen = props.defaultOpen,
|
|
73
79
|
_props$trigger = props.trigger,
|
|
@@ -109,8 +115,8 @@ var OverlayTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
109
115
|
// In order to keep the overlay open, a timer is used to delay the closing.
|
|
110
116
|
|
|
111
117
|
|
|
112
|
-
var delayOpenTimer = (0, _react.useRef)();
|
|
113
|
-
var delayCloseTimer = (0, _react.useRef)();
|
|
118
|
+
var delayOpenTimer = (0, _react.useRef)(null);
|
|
119
|
+
var delayCloseTimer = (0, _react.useRef)(null);
|
|
114
120
|
var delayOpen = (0, _isNil.default)(delayOpenProp) ? delay : delayOpenProp;
|
|
115
121
|
var delayClose = (0, _isNil.default)(delayCloseProp) ? delay : delayCloseProp; // Whether the cursor is on the overlay
|
|
116
122
|
|
|
@@ -119,8 +125,13 @@ var OverlayTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
119
125
|
var isOnTrigger = (0, _react.useRef)(false);
|
|
120
126
|
(0, _react.useEffect)(function () {
|
|
121
127
|
return function () {
|
|
122
|
-
|
|
123
|
-
|
|
128
|
+
if (!(0, _isNil.default)(delayOpenTimer.current)) {
|
|
129
|
+
clearTimeout(delayOpenTimer.current);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (!(0, _isNil.default)(delayCloseTimer.current)) {
|
|
133
|
+
clearTimeout(delayCloseTimer.current);
|
|
134
|
+
}
|
|
124
135
|
};
|
|
125
136
|
}, []);
|
|
126
137
|
var handleOpen = (0, _react.useCallback)(function (delay) {
|
|
@@ -226,8 +237,11 @@ var OverlayTrigger = /*#__PURE__*/_react.default.forwardRef(function (props, ref
|
|
|
226
237
|
}
|
|
227
238
|
|
|
228
239
|
delayCloseTimer.current = setTimeout(function () {
|
|
229
|
-
|
|
230
|
-
|
|
240
|
+
if (!(0, _isNil.default)(delayCloseTimer.current)) {
|
|
241
|
+
clearTimeout(delayCloseTimer.current);
|
|
242
|
+
delayCloseTimer.current = null;
|
|
243
|
+
}
|
|
244
|
+
|
|
231
245
|
handleCloseWhenLeave();
|
|
232
246
|
}, 200);
|
|
233
247
|
}, [enterable, open, handleClose, handleCloseWhenLeave]);
|
|
@@ -2,13 +2,13 @@ import React from 'react';
|
|
|
2
2
|
import { TypeAttributes } from '../@types/common';
|
|
3
3
|
export interface PositionChildProps {
|
|
4
4
|
className: string;
|
|
5
|
-
left
|
|
6
|
-
top
|
|
5
|
+
left?: number;
|
|
6
|
+
top?: number;
|
|
7
7
|
}
|
|
8
8
|
export interface PositionProps {
|
|
9
|
-
children
|
|
9
|
+
children: (props: PositionChildProps, ref: any) => React.ReactElement;
|
|
10
10
|
className?: string;
|
|
11
|
-
container?: HTMLElement | (() => HTMLElement);
|
|
11
|
+
container?: HTMLElement | (() => HTMLElement | null) | null;
|
|
12
12
|
containerPadding?: number;
|
|
13
13
|
placement?: TypeAttributes.Placement;
|
|
14
14
|
preventOverflow?: boolean;
|
package/cjs/Overlay/Position.js
CHANGED
|
@@ -36,13 +36,14 @@ var _utils = require("../utils");
|
|
|
36
36
|
var usePosition = function usePosition(props, ref) {
|
|
37
37
|
var _props$placement = props.placement,
|
|
38
38
|
placement = _props$placement === void 0 ? 'right' : _props$placement,
|
|
39
|
-
|
|
39
|
+
_props$preventOverflo = props.preventOverflow,
|
|
40
|
+
preventOverflow = _props$preventOverflo === void 0 ? false : _props$preventOverflo,
|
|
40
41
|
_props$containerPaddi = props.containerPadding,
|
|
41
42
|
containerPadding = _props$containerPaddi === void 0 ? 0 : _props$containerPaddi,
|
|
42
43
|
container = props.container,
|
|
43
44
|
triggerTarget = props.triggerTarget;
|
|
44
|
-
var containerRef = (0, _react.useRef)();
|
|
45
|
-
var lastTargetRef = (0, _react.useRef)();
|
|
45
|
+
var containerRef = (0, _react.useRef)(null);
|
|
46
|
+
var lastTargetRef = (0, _react.useRef)(null);
|
|
46
47
|
var overlayResizeObserver = (0, _react.useRef)();
|
|
47
48
|
var defaultPosition = {
|
|
48
49
|
positionLeft: 0,
|
|
@@ -88,8 +89,9 @@ var usePosition = function usePosition(props, ref) {
|
|
|
88
89
|
return;
|
|
89
90
|
}
|
|
90
91
|
|
|
91
|
-
var overlay = (0, _utils.getDOMNode)(ref.current);
|
|
92
|
-
|
|
92
|
+
var overlay = (0, _utils.getDOMNode)(ref.current); // fixme dom-lib getContainer incorrect type
|
|
93
|
+
|
|
94
|
+
var containerElement = (0, _getContainer.default)(typeof container === 'function' ? container() : container !== null && container !== void 0 ? container : null, (0, _ownerDocument.default)(ref.current).body);
|
|
93
95
|
var posi = utils.calcOverlayPosition(overlay, targetElement, containerElement);
|
|
94
96
|
|
|
95
97
|
if (forceUpdateDOM && overlay) {
|
|
@@ -97,7 +99,11 @@ var usePosition = function usePosition(props, ref) {
|
|
|
97
99
|
|
|
98
100
|
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];
|
|
99
101
|
(0, _removeClass.default)(overlay, preClassName);
|
|
100
|
-
|
|
102
|
+
|
|
103
|
+
if (posi.positionClassName) {
|
|
104
|
+
(0, _addClass.default)(overlay, posi.positionClassName);
|
|
105
|
+
}
|
|
106
|
+
|
|
101
107
|
(0, _addStyle.default)(overlay, {
|
|
102
108
|
left: posi.positionLeft + "px",
|
|
103
109
|
top: posi.positionTop + "px"
|
|
@@ -155,7 +161,7 @@ var Position = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
155
161
|
var children = props.children,
|
|
156
162
|
className = props.className;
|
|
157
163
|
|
|
158
|
-
var childRef = _react.default.useRef();
|
|
164
|
+
var childRef = _react.default.useRef(null);
|
|
159
165
|
|
|
160
166
|
var _usePosition = usePosition(props, childRef),
|
|
161
167
|
position = _usePosition[0],
|
|
@@ -193,7 +199,7 @@ var Position = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
193
199
|
Position.displayName = 'Position';
|
|
194
200
|
Position.propTypes = {
|
|
195
201
|
className: _propTypes.default.string,
|
|
196
|
-
children: _propTypes.default.func,
|
|
202
|
+
children: _propTypes.default.func.isRequired,
|
|
197
203
|
container: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.any]),
|
|
198
204
|
containerPadding: _propTypes.default.number,
|
|
199
205
|
placement: _propTypes.default.any,
|
|
@@ -29,7 +29,7 @@ declare const _default: (props: UtilProps) => {
|
|
|
29
29
|
left: number;
|
|
30
30
|
height: number;
|
|
31
31
|
width: number;
|
|
32
|
-
};
|
|
32
|
+
} | null;
|
|
33
33
|
calcAutoPlacement(targetOffset: any, container: any, overlay: any): any;
|
|
34
34
|
calcOverlayPosition(overlayNode: any, target: any, container: any): PositionType;
|
|
35
35
|
};
|