rsuite 5.40.0 → 5.42.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 +30 -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 +165 -247
- package/cjs/CheckTreePicker/index.js +1 -3
- package/cjs/CheckTreePicker/utils.js +12 -52
- 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 +38 -79
- package/cjs/Form/FormContext.d.ts +2 -3
- 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 +48 -84
- 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.d.ts +2 -0
- package/cjs/InputPicker/InputPicker.js +152 -251
- 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.d.ts +3 -0
- package/cjs/TagInput/index.js +11 -16
- package/cjs/TagPicker/index.d.ts +3 -0
- package/cjs/TagPicker/index.js +9 -14
- 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.js +112 -327
- 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 +438 -471
- 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 +165 -232
- package/esm/CheckTreePicker/index.js +1 -0
- package/esm/CheckTreePicker/utils.js +12 -35
- 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 +38 -66
- package/esm/Form/FormContext.d.ts +2 -3
- 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 +46 -70
- 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.d.ts +2 -0
- package/esm/InputPicker/InputPicker.js +152 -226
- 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.d.ts +3 -0
- package/esm/TagInput/index.js +11 -9
- package/esm/TagPicker/index.d.ts +3 -0
- package/esm/TagPicker/index.js +9 -7
- 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.js +113 -265
- 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
package/esm/utils/treeUtils.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
3
|
import _isEmpty from "lodash/isEmpty";
|
|
3
4
|
import _clone from "lodash/clone";
|
|
@@ -6,13 +7,9 @@ import _isArray from "lodash/isArray";
|
|
|
6
7
|
import _omit from "lodash/omit";
|
|
7
8
|
import _isUndefined from "lodash/isUndefined";
|
|
8
9
|
import _intersection from "lodash/intersection";
|
|
9
|
-
|
|
10
10
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11
|
-
|
|
12
11
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
13
|
-
|
|
14
12
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
15
|
-
|
|
16
13
|
import React, { useRef, useState, useEffect, useCallback } from 'react';
|
|
17
14
|
import shallowEqualArray from '../utils/shallowEqualArray';
|
|
18
15
|
import { getNodeCheckState } from '../CheckTreePicker/utils';
|
|
@@ -23,29 +20,26 @@ import { TREE_NODE_PADDING, TREE_NODE_ROOT_PADDING } from './constants';
|
|
|
23
20
|
import { attachParent } from './attachParent';
|
|
24
21
|
// gap of tree node
|
|
25
22
|
var TREE_NODE_GAP = 4;
|
|
23
|
+
|
|
26
24
|
/**
|
|
27
25
|
* according node parentNode expand state decide node whether to show
|
|
28
26
|
* @param {*} expandItemValues
|
|
29
27
|
* @param {*} parentKeys
|
|
30
28
|
*/
|
|
31
|
-
|
|
32
29
|
export function shouldShowNodeByParentExpanded(expandItemValues, parentKeys) {
|
|
33
30
|
if (expandItemValues === void 0) {
|
|
34
31
|
expandItemValues = [];
|
|
35
32
|
}
|
|
36
|
-
|
|
37
33
|
if (parentKeys === void 0) {
|
|
38
34
|
parentKeys = [];
|
|
39
35
|
}
|
|
40
|
-
|
|
41
36
|
var intersectionKeys = _intersection(expandItemValues, parentKeys);
|
|
42
|
-
|
|
43
37
|
if (intersectionKeys.length === parentKeys.length) {
|
|
44
38
|
return true;
|
|
45
39
|
}
|
|
46
|
-
|
|
47
40
|
return false;
|
|
48
41
|
}
|
|
42
|
+
|
|
49
43
|
/**
|
|
50
44
|
* flatten tree structure to array
|
|
51
45
|
* @param {*} tree
|
|
@@ -55,46 +49,36 @@ export function shouldShowNodeByParentExpanded(expandItemValues, parentKeys) {
|
|
|
55
49
|
* @deprecated This {@link UNSAFE_flattenTree} function is considered unsafe because it mutates `tree` argument in-place
|
|
56
50
|
* Use {@link flattenTree} instead.
|
|
57
51
|
*/
|
|
58
|
-
|
|
59
52
|
export function UNSAFE_flattenTree(tree, childrenKey, executor) {
|
|
60
53
|
if (childrenKey === void 0) {
|
|
61
54
|
childrenKey = 'children';
|
|
62
55
|
}
|
|
63
|
-
|
|
64
56
|
var flattenData = [];
|
|
65
|
-
|
|
66
57
|
var traverse = function traverse(data, parent) {
|
|
67
58
|
if (!_isArray(data)) {
|
|
68
59
|
return;
|
|
69
60
|
}
|
|
70
|
-
|
|
71
61
|
data.forEach(function (item, index) {
|
|
72
62
|
var node = typeof executor === 'function' ? executor(item, index) : item;
|
|
73
63
|
flattenData.push(attachParent(node, parent));
|
|
74
|
-
|
|
75
64
|
if (item[childrenKey]) {
|
|
76
65
|
traverse(item[childrenKey], item);
|
|
77
66
|
}
|
|
78
67
|
});
|
|
79
68
|
};
|
|
80
|
-
|
|
81
69
|
traverse(tree, null);
|
|
82
70
|
return flattenData;
|
|
83
71
|
}
|
|
84
72
|
export var WalkTreeStrategy;
|
|
85
|
-
|
|
86
73
|
(function (WalkTreeStrategy) {
|
|
87
74
|
WalkTreeStrategy[WalkTreeStrategy["DFS"] = 0] = "DFS";
|
|
88
75
|
WalkTreeStrategy[WalkTreeStrategy["BFS"] = 1] = "BFS";
|
|
89
76
|
})(WalkTreeStrategy || (WalkTreeStrategy = {}));
|
|
90
|
-
|
|
91
77
|
export function flattenTree(rootNodes, getChildren, walkStrategy) {
|
|
92
78
|
if (walkStrategy === void 0) {
|
|
93
79
|
walkStrategy = WalkTreeStrategy.BFS;
|
|
94
80
|
}
|
|
95
|
-
|
|
96
81
|
var result = [];
|
|
97
|
-
|
|
98
82
|
if (walkStrategy === WalkTreeStrategy.BFS) {
|
|
99
83
|
walkTreeBfs(rootNodes, getChildren, function (node) {
|
|
100
84
|
return result.push(node);
|
|
@@ -104,16 +88,13 @@ export function flattenTree(rootNodes, getChildren, walkStrategy) {
|
|
|
104
88
|
return result.push(node);
|
|
105
89
|
});
|
|
106
90
|
}
|
|
107
|
-
|
|
108
91
|
return result;
|
|
109
92
|
}
|
|
110
93
|
export function walkTreeBfs(rootNodes, getChildren, callback) {
|
|
111
94
|
for (var queue = [].concat(rootNodes); queue.length > 0;) {
|
|
112
95
|
var _node = queue.shift();
|
|
113
|
-
|
|
114
96
|
callback(_node);
|
|
115
97
|
var children = getChildren(_node);
|
|
116
|
-
|
|
117
98
|
if (children) {
|
|
118
99
|
queue.push.apply(queue, children);
|
|
119
100
|
}
|
|
@@ -124,28 +105,24 @@ export function walkTreeDfs(rootNodes, getChildren, callback) {
|
|
|
124
105
|
var _node2 = _step.value;
|
|
125
106
|
callback(_node2);
|
|
126
107
|
var children = getChildren(_node2);
|
|
127
|
-
|
|
128
108
|
if (children) {
|
|
129
109
|
walkTreeDfs(children, getChildren, callback);
|
|
130
110
|
}
|
|
131
111
|
}
|
|
132
112
|
}
|
|
113
|
+
|
|
133
114
|
/**
|
|
134
115
|
* get all ancestor nodes of given node
|
|
135
116
|
* @param {*} node
|
|
136
117
|
*/
|
|
137
|
-
|
|
138
118
|
export function getNodeParents(node, parentKey, valueKey) {
|
|
139
119
|
if (parentKey === void 0) {
|
|
140
120
|
parentKey = 'parent';
|
|
141
121
|
}
|
|
142
|
-
|
|
143
122
|
var parents = [];
|
|
144
|
-
|
|
145
123
|
var traverse = function traverse(node) {
|
|
146
124
|
if (node !== null && node !== void 0 && node[parentKey]) {
|
|
147
125
|
traverse(node[parentKey]);
|
|
148
|
-
|
|
149
126
|
if (valueKey) {
|
|
150
127
|
parents.push(node[parentKey][valueKey]);
|
|
151
128
|
} else {
|
|
@@ -153,31 +130,26 @@ export function getNodeParents(node, parentKey, valueKey) {
|
|
|
153
130
|
}
|
|
154
131
|
}
|
|
155
132
|
};
|
|
156
|
-
|
|
157
133
|
traverse(node);
|
|
158
134
|
return parents;
|
|
159
135
|
}
|
|
136
|
+
|
|
160
137
|
/**
|
|
161
138
|
* get all parentKeys of given node
|
|
162
139
|
* @param nodes
|
|
163
140
|
* @param node
|
|
164
141
|
* @param valueKey
|
|
165
142
|
*/
|
|
166
|
-
|
|
167
143
|
export function getNodeParentKeys(nodes, node, valueKey) {
|
|
168
144
|
var parentKeys = [];
|
|
169
|
-
|
|
170
145
|
var traverse = function traverse(node) {
|
|
171
146
|
var _node$parent;
|
|
172
|
-
|
|
173
147
|
if (node !== null && node !== void 0 && (_node$parent = node.parent) !== null && _node$parent !== void 0 && _node$parent.refKey) {
|
|
174
148
|
var _node$parent2;
|
|
175
|
-
|
|
176
149
|
traverse(nodes[node.parent.refKey]);
|
|
177
150
|
parentKeys.push(node === null || node === void 0 ? void 0 : (_node$parent2 = node.parent) === null || _node$parent2 === void 0 ? void 0 : _node$parent2[valueKey]);
|
|
178
151
|
}
|
|
179
152
|
};
|
|
180
|
-
|
|
181
153
|
traverse(node);
|
|
182
154
|
return parentKeys;
|
|
183
155
|
}
|
|
@@ -185,27 +157,25 @@ export function hasVisibleChildren(node, childrenKey) {
|
|
|
185
157
|
if (!Array.isArray(node[childrenKey])) {
|
|
186
158
|
return false;
|
|
187
159
|
}
|
|
188
|
-
|
|
189
160
|
return node[childrenKey].some(function (child) {
|
|
190
161
|
return child.visible;
|
|
191
162
|
});
|
|
192
163
|
}
|
|
164
|
+
|
|
193
165
|
/**
|
|
194
166
|
* shallow equal array
|
|
195
167
|
* @param a
|
|
196
168
|
* @param b
|
|
197
169
|
*/
|
|
198
|
-
|
|
199
170
|
export function compareArray(a, b) {
|
|
200
171
|
return _isArray(a) && _isArray(b) && !shallowEqualArray(a, b);
|
|
201
172
|
}
|
|
202
173
|
export function getDefaultExpandItemValues(data, props) {
|
|
203
174
|
var valueKey = props.valueKey,
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
175
|
+
defaultExpandAll = props.defaultExpandAll,
|
|
176
|
+
childrenKey = props.childrenKey,
|
|
177
|
+
_props$defaultExpandI = props.defaultExpandItemValues,
|
|
178
|
+
defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI;
|
|
209
179
|
if (defaultExpandAll) {
|
|
210
180
|
return UNSAFE_flattenTree(data, childrenKey).filter(function (item) {
|
|
211
181
|
return Array.isArray(item[childrenKey]) && item[childrenKey].length > 0;
|
|
@@ -213,131 +183,110 @@ export function getDefaultExpandItemValues(data, props) {
|
|
|
213
183
|
return item[valueKey];
|
|
214
184
|
});
|
|
215
185
|
}
|
|
216
|
-
|
|
217
186
|
return defaultExpandItemValues;
|
|
218
187
|
}
|
|
188
|
+
|
|
219
189
|
/**
|
|
220
190
|
* 获取 expandItemValues 的 value
|
|
221
191
|
* @param props
|
|
222
192
|
*/
|
|
223
|
-
|
|
224
193
|
export function getExpandItemValues(props) {
|
|
225
194
|
var expandItemValues = props.expandItemValues,
|
|
226
|
-
|
|
227
|
-
|
|
195
|
+
defaultExpandItemValues = props.defaultExpandItemValues;
|
|
228
196
|
if (!_isUndefined(expandItemValues) && Array.isArray(expandItemValues)) {
|
|
229
197
|
return expandItemValues;
|
|
230
198
|
}
|
|
231
|
-
|
|
232
199
|
if (!_isUndefined(defaultExpandItemValues) && Array.isArray(defaultExpandItemValues)) {
|
|
233
200
|
return defaultExpandItemValues;
|
|
234
201
|
}
|
|
235
|
-
|
|
236
202
|
return [];
|
|
237
203
|
}
|
|
204
|
+
|
|
238
205
|
/**
|
|
239
206
|
* get dragNode and it's children node keys
|
|
240
207
|
* @param node
|
|
241
208
|
* @param childrenKey
|
|
242
209
|
* @param valueKey
|
|
243
210
|
*/
|
|
244
|
-
|
|
245
211
|
export function getDragNodeKeys(dragNode, childrenKey, valueKey) {
|
|
246
212
|
var dragNodeKeys = [dragNode[valueKey]];
|
|
247
|
-
|
|
248
213
|
var traverse = function traverse(data) {
|
|
249
214
|
if ((data === null || data === void 0 ? void 0 : data.length) > 0) {
|
|
250
215
|
data.forEach(function (node) {
|
|
251
216
|
dragNodeKeys = dragNodeKeys.concat([node[valueKey]]);
|
|
252
|
-
|
|
253
217
|
if (node[childrenKey]) {
|
|
254
218
|
traverse(node[childrenKey]);
|
|
255
219
|
}
|
|
256
220
|
});
|
|
257
221
|
}
|
|
258
222
|
};
|
|
259
|
-
|
|
260
223
|
traverse(dragNode[childrenKey]);
|
|
261
224
|
return dragNodeKeys;
|
|
262
225
|
}
|
|
263
226
|
export function calDropNodePosition(event, treeNodeElement) {
|
|
264
227
|
var clientY = event.clientY;
|
|
265
|
-
|
|
266
228
|
var _treeNodeElement$getB = treeNodeElement.getBoundingClientRect(),
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
var gap = TREE_NODE_GAP; // bottom of node
|
|
229
|
+
top = _treeNodeElement$getB.top,
|
|
230
|
+
bottom = _treeNodeElement$getB.bottom;
|
|
231
|
+
var gap = TREE_NODE_GAP;
|
|
271
232
|
|
|
233
|
+
// bottom of node
|
|
272
234
|
if (clientY >= bottom - gap && clientY <= bottom) {
|
|
273
235
|
return TREE_NODE_DROP_POSITION.DRAG_OVER_BOTTOM;
|
|
274
|
-
}
|
|
275
|
-
|
|
236
|
+
}
|
|
276
237
|
|
|
238
|
+
// top of node
|
|
277
239
|
if (clientY <= top + gap && clientY >= top) {
|
|
278
240
|
return TREE_NODE_DROP_POSITION.DRAG_OVER_TOP;
|
|
279
241
|
}
|
|
280
|
-
|
|
281
242
|
if (clientY >= top + gap && clientY <= bottom - gap) {
|
|
282
243
|
return TREE_NODE_DROP_POSITION.DRAG_OVER;
|
|
283
244
|
}
|
|
284
|
-
|
|
285
245
|
return -1;
|
|
286
246
|
}
|
|
287
247
|
export function removeDragNode(data, params, _ref) {
|
|
288
248
|
var valueKey = _ref.valueKey,
|
|
289
|
-
|
|
249
|
+
childrenKey = _ref.childrenKey;
|
|
290
250
|
var dragNode = params.dragNode;
|
|
291
|
-
|
|
292
251
|
var traverse = function traverse(items, parent) {
|
|
293
252
|
for (var _index = 0; _index < items.length; _index += 1) {
|
|
294
253
|
var _item = items[_index];
|
|
295
|
-
|
|
296
254
|
if (shallowEqual(_item[valueKey], dragNode[valueKey])) {
|
|
297
|
-
items.splice(_index, 1);
|
|
298
|
-
|
|
255
|
+
items.splice(_index, 1);
|
|
256
|
+
// when children is empty, delete children prop for hidden anchor
|
|
299
257
|
if (items.length === 0 && parent) {
|
|
300
258
|
delete parent.children;
|
|
301
259
|
}
|
|
302
|
-
|
|
303
260
|
break;
|
|
304
261
|
}
|
|
305
|
-
|
|
306
262
|
if (Array.isArray(_item[childrenKey])) {
|
|
307
263
|
traverse(_item[childrenKey], _item);
|
|
308
264
|
}
|
|
309
265
|
}
|
|
310
266
|
};
|
|
311
|
-
|
|
312
267
|
traverse(data);
|
|
313
268
|
}
|
|
314
269
|
export function createUpdateTreeDataFunction(params, _ref2) {
|
|
315
270
|
var valueKey = _ref2.valueKey,
|
|
316
|
-
|
|
271
|
+
childrenKey = _ref2.childrenKey;
|
|
317
272
|
return function (tree) {
|
|
318
273
|
var data = [].concat(tree);
|
|
319
274
|
var dragNode = params.dragNode,
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
275
|
+
dropNode = params.dropNode,
|
|
276
|
+
dropNodePosition = params.dropNodePosition;
|
|
323
277
|
var cloneDragNode = _extends({}, dragNode);
|
|
324
|
-
|
|
325
278
|
removeDragNode(data, params, {
|
|
326
279
|
valueKey: valueKey,
|
|
327
280
|
childrenKey: childrenKey
|
|
328
281
|
});
|
|
329
|
-
|
|
330
282
|
var updateTree = function updateTree(items) {
|
|
331
283
|
for (var _index2 = 0; _index2 < items.length; _index2 += 1) {
|
|
332
284
|
var _item2 = items[_index2];
|
|
333
|
-
|
|
334
285
|
if (shallowEqual(_item2[valueKey], dropNode[valueKey])) {
|
|
335
286
|
// drag to node inside
|
|
336
287
|
if (dropNodePosition === TREE_NODE_DROP_POSITION.DRAG_OVER) {
|
|
337
288
|
_item2[childrenKey] = _isNil(_item2[childrenKey]) ? [] : _item2[childrenKey];
|
|
338
|
-
|
|
339
289
|
_item2[childrenKey].push(cloneDragNode);
|
|
340
|
-
|
|
341
290
|
break;
|
|
342
291
|
} else if (dropNodePosition === TREE_NODE_DROP_POSITION.DRAG_OVER_TOP) {
|
|
343
292
|
// drag to top of node
|
|
@@ -349,13 +298,11 @@ export function createUpdateTreeDataFunction(params, _ref2) {
|
|
|
349
298
|
break;
|
|
350
299
|
}
|
|
351
300
|
}
|
|
352
|
-
|
|
353
301
|
if (Array.isArray(_item2[childrenKey]) && _item2[childrenKey].length > 0) {
|
|
354
302
|
updateTree(_item2[childrenKey]);
|
|
355
303
|
}
|
|
356
304
|
}
|
|
357
305
|
};
|
|
358
|
-
|
|
359
306
|
updateTree(data);
|
|
360
307
|
return [].concat(data);
|
|
361
308
|
};
|
|
@@ -365,26 +312,20 @@ export function findNodeOfTree(data, check) {
|
|
|
365
312
|
if (nodes === void 0) {
|
|
366
313
|
nodes = [];
|
|
367
314
|
}
|
|
368
|
-
|
|
369
315
|
for (var i = 0; i < nodes.length; i += 1) {
|
|
370
316
|
var _item3 = nodes[i];
|
|
371
|
-
|
|
372
317
|
if (_isArray(_item3.children)) {
|
|
373
318
|
var _node3 = findNode(_item3.children);
|
|
374
|
-
|
|
375
319
|
if (_node3) {
|
|
376
320
|
return _node3;
|
|
377
321
|
}
|
|
378
322
|
}
|
|
379
|
-
|
|
380
323
|
if (check(_item3)) {
|
|
381
324
|
return _item3;
|
|
382
325
|
}
|
|
383
326
|
}
|
|
384
|
-
|
|
385
327
|
return undefined;
|
|
386
328
|
};
|
|
387
|
-
|
|
388
329
|
return findNode(data);
|
|
389
330
|
}
|
|
390
331
|
export function filterNodesOfTree(data, check) {
|
|
@@ -392,32 +333,26 @@ export function filterNodesOfTree(data, check) {
|
|
|
392
333
|
if (nodes === void 0) {
|
|
393
334
|
nodes = [];
|
|
394
335
|
}
|
|
395
|
-
|
|
396
336
|
var nextNodes = [];
|
|
397
|
-
|
|
398
337
|
for (var i = 0; i < nodes.length; i += 1) {
|
|
399
338
|
if (_isArray(nodes[i].children)) {
|
|
400
339
|
var nextChildren = findNodes(nodes[i].children);
|
|
401
|
-
|
|
402
340
|
if (nextChildren.length) {
|
|
403
341
|
var _item4 = _clone(nodes[i]);
|
|
404
|
-
|
|
405
342
|
_item4.children = nextChildren;
|
|
406
343
|
nextNodes.push(_item4);
|
|
407
344
|
continue;
|
|
408
345
|
}
|
|
409
346
|
}
|
|
410
|
-
|
|
411
347
|
if (check(nodes[i])) {
|
|
412
348
|
nextNodes.push(nodes[i]);
|
|
413
349
|
}
|
|
414
350
|
}
|
|
415
|
-
|
|
416
351
|
return nextNodes;
|
|
417
352
|
};
|
|
418
|
-
|
|
419
353
|
return findNodes(data);
|
|
420
354
|
}
|
|
355
|
+
|
|
421
356
|
/**
|
|
422
357
|
* get all focusable items
|
|
423
358
|
* exclude not visible and disabled node
|
|
@@ -426,42 +361,36 @@ export function filterNodesOfTree(data, check) {
|
|
|
426
361
|
* @param isSearching - component is in Searching
|
|
427
362
|
* @returns
|
|
428
363
|
*/
|
|
429
|
-
|
|
430
364
|
export var getFocusableItems = function getFocusableItems(filteredData, props, isSearching) {
|
|
431
365
|
var disabledItemValues = props.disabledItemValues,
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
366
|
+
valueKey = props.valueKey,
|
|
367
|
+
childrenKey = props.childrenKey,
|
|
368
|
+
expandItemValues = props.expandItemValues;
|
|
435
369
|
var items = [];
|
|
436
|
-
|
|
437
370
|
var loop = function loop(nodes) {
|
|
438
371
|
nodes.forEach(function (node) {
|
|
439
372
|
var disabled = disabledItemValues.some(function (disabledItem) {
|
|
440
373
|
return shallowEqual(disabledItem, node[valueKey]);
|
|
441
374
|
});
|
|
442
|
-
|
|
443
375
|
if (!disabled && node.visible) {
|
|
444
376
|
items.push(node);
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
|
|
377
|
+
}
|
|
378
|
+
// always expand when searching
|
|
448
379
|
var expand = isSearching ? true : expandItemValues.includes(node[valueKey]);
|
|
449
|
-
|
|
450
380
|
if (node[childrenKey] && expand) {
|
|
451
381
|
loop(node[childrenKey]);
|
|
452
382
|
}
|
|
453
383
|
});
|
|
454
384
|
};
|
|
455
|
-
|
|
456
385
|
loop(filteredData);
|
|
457
386
|
return items;
|
|
458
387
|
};
|
|
388
|
+
|
|
459
389
|
/**
|
|
460
390
|
* return all focusable Item and active Element index
|
|
461
391
|
* @param focusItemValue
|
|
462
392
|
* @param focusableItems items
|
|
463
393
|
*/
|
|
464
|
-
|
|
465
394
|
export var getActiveIndex = function getActiveIndex(focusItemValue, focusItems, valueKey) {
|
|
466
395
|
var activeIndex = -1;
|
|
467
396
|
focusItems.forEach(function (item, index) {
|
|
@@ -471,93 +400,82 @@ export var getActiveIndex = function getActiveIndex(focusItemValue, focusItems,
|
|
|
471
400
|
});
|
|
472
401
|
return activeIndex;
|
|
473
402
|
};
|
|
403
|
+
|
|
474
404
|
/**
|
|
475
405
|
* get current active element and node data
|
|
476
406
|
* @param flattenNodes - flattenData
|
|
477
407
|
*/
|
|
478
|
-
|
|
479
408
|
export var getActiveItem = function getActiveItem(focusItemValue, flattenNodes, valueKey) {
|
|
480
409
|
var nodeData = null;
|
|
481
410
|
var activeNode = Object.values(flattenNodes).find(function (node) {
|
|
482
411
|
return shallowEqual(node[valueKey], focusItemValue);
|
|
483
412
|
});
|
|
484
|
-
|
|
485
413
|
if (activeNode) {
|
|
486
414
|
nodeData = activeNode;
|
|
487
415
|
}
|
|
488
|
-
|
|
489
416
|
return nodeData;
|
|
490
417
|
};
|
|
491
418
|
export var getElementByDataKey = function getElementByDataKey(dataKey, treeNodesRefs, selector) {
|
|
492
419
|
var ele = treeNodesRefs[dataKey];
|
|
493
|
-
|
|
494
420
|
if (ele instanceof Element) {
|
|
495
421
|
return ele.querySelector(selector);
|
|
496
422
|
}
|
|
497
|
-
|
|
498
423
|
return null;
|
|
499
424
|
};
|
|
425
|
+
|
|
500
426
|
/**
|
|
501
427
|
* focus to specify tree node
|
|
502
428
|
* @param refKey - target node refKey
|
|
503
429
|
* @param treeNodeRefs - all tree node refs object
|
|
504
430
|
* @param selector - node css selector
|
|
505
431
|
*/
|
|
506
|
-
|
|
507
432
|
export var focusTreeNode = function focusTreeNode(refKey, treeNodeRefs, selector) {
|
|
508
433
|
var _node$focus;
|
|
509
|
-
|
|
510
434
|
var node = getElementByDataKey(refKey, treeNodeRefs, selector);
|
|
511
435
|
node === null || node === void 0 ? void 0 : (_node$focus = node.focus) === null || _node$focus === void 0 ? void 0 : _node$focus.call(node);
|
|
512
436
|
};
|
|
513
|
-
|
|
514
437
|
/**
|
|
515
438
|
* focus next item with keyboard
|
|
516
439
|
* @param param
|
|
517
440
|
*/
|
|
518
441
|
export var focusNextItem = function focusNextItem(_ref3) {
|
|
519
442
|
var focusItemValue = _ref3.focusItemValue,
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
443
|
+
focusableItems = _ref3.focusableItems,
|
|
444
|
+
treeNodesRefs = _ref3.treeNodesRefs,
|
|
445
|
+
selector = _ref3.selector,
|
|
446
|
+
valueKey = _ref3.valueKey,
|
|
447
|
+
callback = _ref3.callback;
|
|
525
448
|
var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);
|
|
526
|
-
|
|
527
449
|
if (focusableItems.length === 0) {
|
|
528
450
|
return;
|
|
529
451
|
}
|
|
530
|
-
|
|
531
452
|
var nextIndex = activeIndex === focusableItems.length - 1 ? 0 : activeIndex + 1;
|
|
532
453
|
var nextFocusItemValue = focusableItems[nextIndex][valueKey];
|
|
533
454
|
callback === null || callback === void 0 ? void 0 : callback(nextFocusItemValue);
|
|
534
455
|
focusTreeNode(focusableItems[nextIndex].refKey, treeNodesRefs, selector);
|
|
535
456
|
};
|
|
457
|
+
|
|
536
458
|
/**
|
|
537
459
|
* focus prev item with keyboard
|
|
538
460
|
* @param param
|
|
539
461
|
*/
|
|
540
|
-
|
|
541
462
|
export var focusPreviousItem = function focusPreviousItem(_ref4) {
|
|
542
463
|
var focusItemValue = _ref4.focusItemValue,
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
464
|
+
focusableItems = _ref4.focusableItems,
|
|
465
|
+
treeNodesRefs = _ref4.treeNodesRefs,
|
|
466
|
+
selector = _ref4.selector,
|
|
467
|
+
valueKey = _ref4.valueKey,
|
|
468
|
+
callback = _ref4.callback;
|
|
548
469
|
var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);
|
|
549
|
-
|
|
550
470
|
if (focusableItems.length === 0) {
|
|
551
471
|
return;
|
|
552
472
|
}
|
|
553
|
-
|
|
554
473
|
var prevIndex = activeIndex === 0 ? focusableItems.length - 1 : activeIndex - 1;
|
|
555
474
|
prevIndex = prevIndex >= 0 ? prevIndex : 0;
|
|
556
475
|
var prevFocusItemValue = focusableItems[prevIndex][valueKey];
|
|
557
476
|
callback === null || callback === void 0 ? void 0 : callback(prevFocusItemValue);
|
|
558
477
|
focusTreeNode(focusableItems[prevIndex].refKey, treeNodesRefs, selector);
|
|
559
478
|
};
|
|
560
|
-
|
|
561
479
|
/**
|
|
562
480
|
* Left arrow keyboard event handler
|
|
563
481
|
* When focus is on an open node, closes the node.
|
|
@@ -567,14 +485,12 @@ export var focusPreviousItem = function focusPreviousItem(_ref4) {
|
|
|
567
485
|
*/
|
|
568
486
|
export function leftArrowHandler(_ref5) {
|
|
569
487
|
var focusItem = _ref5.focusItem,
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
488
|
+
expand = _ref5.expand,
|
|
489
|
+
onExpand = _ref5.onExpand,
|
|
490
|
+
onFocusItem = _ref5.onFocusItem;
|
|
574
491
|
if (_isEmpty(focusItem)) {
|
|
575
492
|
return;
|
|
576
493
|
}
|
|
577
|
-
|
|
578
494
|
if (expand) {
|
|
579
495
|
onExpand(_extends({}, focusItem, {
|
|
580
496
|
expand: expand
|
|
@@ -583,6 +499,7 @@ export function leftArrowHandler(_ref5) {
|
|
|
583
499
|
onFocusItem();
|
|
584
500
|
}
|
|
585
501
|
}
|
|
502
|
+
|
|
586
503
|
/**
|
|
587
504
|
* Right arrow keyboard event handler
|
|
588
505
|
* When focus is on a closed node, opens the node; focus does not move.
|
|
@@ -590,18 +507,15 @@ export function leftArrowHandler(_ref5) {
|
|
|
590
507
|
* When focus is on an end node, does nothing.
|
|
591
508
|
* @see https://www.w3.org/TR/wai-aria-practices/#TreeView
|
|
592
509
|
*/
|
|
593
|
-
|
|
594
510
|
export function rightArrowHandler(_ref6) {
|
|
595
511
|
var focusItem = _ref6.focusItem,
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
512
|
+
expand = _ref6.expand,
|
|
513
|
+
childrenKey = _ref6.childrenKey,
|
|
514
|
+
onExpand = _ref6.onExpand,
|
|
515
|
+
onFocusItem = _ref6.onFocusItem;
|
|
601
516
|
if (_isEmpty(focusItem) || !Array.isArray(focusItem[childrenKey])) {
|
|
602
517
|
return;
|
|
603
518
|
}
|
|
604
|
-
|
|
605
519
|
if (!expand) {
|
|
606
520
|
onExpand(_extends({}, focusItem, {
|
|
607
521
|
expand: expand
|
|
@@ -610,13 +524,13 @@ export function rightArrowHandler(_ref6) {
|
|
|
610
524
|
onFocusItem();
|
|
611
525
|
}
|
|
612
526
|
}
|
|
527
|
+
|
|
613
528
|
/**
|
|
614
529
|
* get scrollIndex in virtualized list
|
|
615
530
|
* @param nodes - data
|
|
616
531
|
* @param value - activeItem value
|
|
617
532
|
* @param valueKey
|
|
618
533
|
*/
|
|
619
|
-
|
|
620
534
|
export var getScrollToIndex = function getScrollToIndex(nodes, value, valueKey) {
|
|
621
535
|
return nodes.filter(function (n) {
|
|
622
536
|
return n.visible;
|
|
@@ -624,47 +538,42 @@ export var getScrollToIndex = function getScrollToIndex(nodes, value, valueKey)
|
|
|
624
538
|
return item[valueKey] === value;
|
|
625
539
|
});
|
|
626
540
|
};
|
|
541
|
+
|
|
627
542
|
/**
|
|
628
543
|
* when searching, expand state always return true
|
|
629
544
|
* @param searchKeyword
|
|
630
545
|
* @param expand
|
|
631
546
|
*/
|
|
632
|
-
|
|
633
547
|
export function getExpandWhenSearching(searchKeyword, expand) {
|
|
634
548
|
return isSearching(searchKeyword) ? true : expand;
|
|
635
549
|
}
|
|
636
|
-
|
|
637
550
|
function getTreeActiveNode(nodes, value, valueKey) {
|
|
638
551
|
if (_isUndefined(value)) {
|
|
639
552
|
return undefined;
|
|
640
553
|
}
|
|
641
|
-
|
|
642
554
|
for (var refKey in nodes) {
|
|
643
555
|
if (shallowEqual(nodes[refKey][valueKey], value)) {
|
|
644
556
|
return nodes[refKey];
|
|
645
557
|
}
|
|
646
558
|
}
|
|
647
559
|
}
|
|
648
|
-
|
|
649
560
|
export { getTreeActiveNode };
|
|
561
|
+
|
|
650
562
|
/**
|
|
651
563
|
* toggle tree node
|
|
652
564
|
* @param param0
|
|
653
565
|
*/
|
|
654
|
-
|
|
655
566
|
export function toggleExpand(_ref7) {
|
|
656
567
|
var node = _ref7.node,
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
568
|
+
isExpand = _ref7.isExpand,
|
|
569
|
+
expandItemValues = _ref7.expandItemValues,
|
|
570
|
+
valueKey = _ref7.valueKey;
|
|
660
571
|
var newExpandItemValues = new Set(expandItemValues);
|
|
661
|
-
|
|
662
572
|
if (isExpand) {
|
|
663
573
|
newExpandItemValues.add(node[valueKey]);
|
|
664
574
|
} else {
|
|
665
575
|
newExpandItemValues.delete(node[valueKey]);
|
|
666
576
|
}
|
|
667
|
-
|
|
668
577
|
return Array.from(newExpandItemValues);
|
|
669
578
|
}
|
|
670
579
|
export function getTreeNodeTitle(label) {
|
|
@@ -672,48 +581,39 @@ export function getTreeNodeTitle(label) {
|
|
|
672
581
|
return label;
|
|
673
582
|
} else if ( /*#__PURE__*/React.isValidElement(label)) {
|
|
674
583
|
var _nodes = reactToString(label);
|
|
675
|
-
|
|
676
584
|
return _nodes.join('');
|
|
677
585
|
}
|
|
678
586
|
}
|
|
587
|
+
|
|
679
588
|
/**
|
|
680
589
|
* get all children from flattenNodes object by given parent node
|
|
681
590
|
* @param nodes
|
|
682
591
|
* @param parent
|
|
683
592
|
*/
|
|
684
|
-
|
|
685
593
|
export function getChildrenByFlattenNodes(nodes, parent) {
|
|
686
594
|
if (!_isNil(parent.refKey) && _isNil(nodes[parent.refKey])) {
|
|
687
595
|
return [];
|
|
688
596
|
}
|
|
689
|
-
|
|
690
597
|
return Object.values(nodes).filter(function (item) {
|
|
691
598
|
var _item$parent;
|
|
692
|
-
|
|
693
599
|
return (item === null || item === void 0 ? void 0 : (_item$parent = item.parent) === null || _item$parent === void 0 ? void 0 : _item$parent.refKey) === parent.refKey && item.refKey && !nodes[item.refKey].uncheckable;
|
|
694
600
|
});
|
|
695
601
|
}
|
|
696
602
|
export function useTreeDrag() {
|
|
697
603
|
// current dragging node
|
|
698
604
|
var dragNode = useRef(null);
|
|
699
|
-
|
|
700
605
|
var _useState = useState(null),
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
606
|
+
dragOverNodeKey = _useState[0],
|
|
607
|
+
setDragOverNodeKey = _useState[1]; // drag node and it's children nodes key
|
|
705
608
|
var _useState2 = useState([]),
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
609
|
+
dragNodeKeys = _useState2[0],
|
|
610
|
+
setDragNodeKeys = _useState2[1];
|
|
709
611
|
var _useState3 = useState(null),
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
612
|
+
dropNodePosition = _useState3[0],
|
|
613
|
+
setDropNodePosition = _useState3[1];
|
|
713
614
|
var setDragNode = function setDragNode(node) {
|
|
714
615
|
dragNode.current = node;
|
|
715
616
|
};
|
|
716
|
-
|
|
717
617
|
return {
|
|
718
618
|
dragNode: dragNode === null || dragNode === void 0 ? void 0 : dragNode.current,
|
|
719
619
|
dragOverNodeKey: dragOverNodeKey,
|
|
@@ -725,23 +625,20 @@ export function useTreeDrag() {
|
|
|
725
625
|
setDropNodePosition: setDropNodePosition
|
|
726
626
|
};
|
|
727
627
|
}
|
|
728
|
-
|
|
729
628
|
/**
|
|
730
629
|
* hooks for flatten tree structure
|
|
731
630
|
* @param param0
|
|
732
631
|
*/
|
|
733
632
|
export function useFlattenTreeData(_ref8) {
|
|
734
633
|
var data = _ref8.data,
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
634
|
+
labelKey = _ref8.labelKey,
|
|
635
|
+
valueKey = _ref8.valueKey,
|
|
636
|
+
childrenKey = _ref8.childrenKey,
|
|
637
|
+
_ref8$uncheckableItem = _ref8.uncheckableItemValues,
|
|
638
|
+
uncheckableItemValues = _ref8$uncheckableItem === void 0 ? [] : _ref8$uncheckableItem,
|
|
639
|
+
callback = _ref8.callback;
|
|
742
640
|
var _useState4 = useState(Object.create(null)),
|
|
743
|
-
|
|
744
|
-
|
|
641
|
+
dispatch = _useState4[1];
|
|
745
642
|
var forceUpdate = useCallback(function () {
|
|
746
643
|
dispatch(Object.create(null));
|
|
747
644
|
}, [dispatch]);
|
|
@@ -750,14 +647,11 @@ export function useFlattenTreeData(_ref8) {
|
|
|
750
647
|
if (layer === void 0) {
|
|
751
648
|
layer = 1;
|
|
752
649
|
}
|
|
753
|
-
|
|
754
650
|
if (!Array.isArray(treeData) || treeData.length === 0) {
|
|
755
651
|
return [];
|
|
756
652
|
}
|
|
757
|
-
|
|
758
653
|
treeData.map(function (node) {
|
|
759
654
|
var _extends2;
|
|
760
|
-
|
|
761
655
|
var value = node[valueKey];
|
|
762
656
|
/**
|
|
763
657
|
* because the value of the node's type is string or number,
|
|
@@ -765,7 +659,6 @@ export function useFlattenTreeData(_ref8) {
|
|
|
765
659
|
* to avoid number value is converted to string. 1 and '1' will be convert to '1'
|
|
766
660
|
* we used `String_` or `Number_` prefix
|
|
767
661
|
*/
|
|
768
|
-
|
|
769
662
|
var refKey = getNodeFormattedRefKey(value);
|
|
770
663
|
node.refKey = refKey;
|
|
771
664
|
flattenNodes.current[refKey] = _extends((_extends2 = {
|
|
@@ -773,11 +666,9 @@ export function useFlattenTreeData(_ref8) {
|
|
|
773
666
|
}, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.uncheckable = uncheckableItemValues.some(function (value) {
|
|
774
667
|
return shallowEqual(node[valueKey], value);
|
|
775
668
|
}), _extends2), node);
|
|
776
|
-
|
|
777
669
|
if (parent) {
|
|
778
670
|
flattenNodes.current[refKey].parent = _omit(parent, 'parent', 'children');
|
|
779
671
|
}
|
|
780
|
-
|
|
781
672
|
flattenTreeData(node[childrenKey], node, layer + 1);
|
|
782
673
|
});
|
|
783
674
|
callback === null || callback === void 0 ? void 0 : callback(flattenNodes.current);
|
|
@@ -786,10 +677,8 @@ export function useFlattenTreeData(_ref8) {
|
|
|
786
677
|
var list = [];
|
|
787
678
|
Object.keys(nodes).forEach(function (refKey) {
|
|
788
679
|
var currentNode = nodes[refKey];
|
|
789
|
-
|
|
790
680
|
if (!_isNil(currentNode.parent) && !_isNil(currentNode.parent.refKey)) {
|
|
791
681
|
var parentNode = nodes[currentNode.parent.refKey];
|
|
792
|
-
|
|
793
682
|
if (currentNode[key]) {
|
|
794
683
|
if (!(parentNode !== null && parentNode !== void 0 && parentNode.checkAll)) {
|
|
795
684
|
list.push(nodes[refKey][valueKey]);
|
|
@@ -805,27 +694,25 @@ export function useFlattenTreeData(_ref8) {
|
|
|
805
694
|
});
|
|
806
695
|
return list;
|
|
807
696
|
}, [valueKey]);
|
|
697
|
+
|
|
808
698
|
/**
|
|
809
699
|
* using in CheckTreePicker, to unSerializeList check property
|
|
810
700
|
*/
|
|
811
|
-
|
|
812
701
|
var unSerializeList = useCallback(function (_ref9) {
|
|
813
702
|
var nodes = _ref9.nodes,
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
703
|
+
key = _ref9.key,
|
|
704
|
+
_ref9$value = _ref9.value,
|
|
705
|
+
value = _ref9$value === void 0 ? [] : _ref9$value,
|
|
706
|
+
cascade = _ref9.cascade,
|
|
707
|
+
uncheckableItemValues = _ref9.uncheckableItemValues;
|
|
819
708
|
// Reset values to false
|
|
820
709
|
Object.keys(nodes).forEach(function (refKey) {
|
|
821
710
|
var node = nodes[refKey];
|
|
822
|
-
|
|
823
711
|
if (cascade && !_isNil(node.parent) && !_isNil(node.parent.refKey)) {
|
|
824
712
|
node[key] = nodes[node.parent.refKey][key];
|
|
825
713
|
} else {
|
|
826
714
|
node[key] = false;
|
|
827
715
|
}
|
|
828
|
-
|
|
829
716
|
value.forEach(function (value) {
|
|
830
717
|
if (shallowEqual(nodes[refKey][valueKey], value) && !uncheckableItemValues.some(function (uncheckableValue) {
|
|
831
718
|
return shallowEqual(value, uncheckableValue);
|
|
@@ -835,10 +722,9 @@ export function useFlattenTreeData(_ref8) {
|
|
|
835
722
|
});
|
|
836
723
|
});
|
|
837
724
|
}, [valueKey]);
|
|
838
|
-
|
|
839
725
|
var formatVirtualizedTreeData = function formatVirtualizedTreeData(nodes, data, expandItemValues, options) {
|
|
840
726
|
var cascade = options.cascade,
|
|
841
|
-
|
|
727
|
+
searchKeyword = options.searchKeyword;
|
|
842
728
|
return UNSAFE_flattenTree(data, childrenKey, function (node) {
|
|
843
729
|
var formatted = {};
|
|
844
730
|
var curNode = nodes === null || nodes === void 0 ? void 0 : nodes[node.refKey];
|
|
@@ -848,17 +734,15 @@ export function useFlattenTreeData(_ref8) {
|
|
|
848
734
|
* if the parent node is collapsed, the child nodes should be hidden
|
|
849
735
|
* avoid component height calculation errors
|
|
850
736
|
*/
|
|
851
|
-
|
|
852
737
|
var visible = curNode !== null && curNode !== void 0 && curNode.parent ? shouldShowNodeByParentExpanded(expandItemValues, parentKeys) : true;
|
|
738
|
+
|
|
853
739
|
/**
|
|
854
740
|
* when searching, every node default expand
|
|
855
741
|
* the node's visible should follow the original state
|
|
856
742
|
*/
|
|
857
|
-
|
|
858
743
|
if (isSearching(searchKeyword)) {
|
|
859
744
|
visible = node.visible;
|
|
860
745
|
}
|
|
861
|
-
|
|
862
746
|
if (curNode) {
|
|
863
747
|
var checkState = !_isUndefined(cascade) ? getNodeCheckState({
|
|
864
748
|
node: curNode,
|
|
@@ -876,11 +760,9 @@ export function useFlattenTreeData(_ref8) {
|
|
|
876
760
|
visible: visible
|
|
877
761
|
});
|
|
878
762
|
}
|
|
879
|
-
|
|
880
763
|
return formatted;
|
|
881
764
|
});
|
|
882
765
|
};
|
|
883
|
-
|
|
884
766
|
useEffect(function () {
|
|
885
767
|
// when data is changed, should clear the flattenNodes, avoid duplicate keys
|
|
886
768
|
flattenNodes.current = {};
|
|
@@ -896,41 +778,37 @@ export function useFlattenTreeData(_ref8) {
|
|
|
896
778
|
formatVirtualizedTreeData: formatVirtualizedTreeData
|
|
897
779
|
};
|
|
898
780
|
}
|
|
781
|
+
|
|
899
782
|
/**
|
|
900
783
|
* A hook that saving every tree node ref
|
|
901
784
|
*/
|
|
902
|
-
|
|
903
785
|
export function useTreeNodeRefs() {
|
|
904
786
|
var treeNodeRefs = useRef({});
|
|
905
|
-
|
|
906
787
|
var saveTreeNodeRef = function saveTreeNodeRef(ref, refKey) {
|
|
907
788
|
if (!_isNil(refKey)) {
|
|
908
789
|
treeNodeRefs.current[refKey] = ref;
|
|
909
790
|
}
|
|
910
791
|
};
|
|
911
|
-
|
|
912
792
|
return {
|
|
913
793
|
treeNodesRefs: treeNodeRefs.current,
|
|
914
794
|
saveTreeNodeRef: saveTreeNodeRef
|
|
915
795
|
};
|
|
916
796
|
}
|
|
917
|
-
|
|
918
797
|
/**
|
|
919
798
|
* A hook that handles tree search filter options
|
|
920
799
|
* @param props
|
|
921
800
|
*/
|
|
922
801
|
export function useTreeSearch(props) {
|
|
923
802
|
var labelKey = props.labelKey,
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
803
|
+
childrenKey = props.childrenKey,
|
|
804
|
+
searchKeyword = props.searchKeyword,
|
|
805
|
+
data = props.data,
|
|
806
|
+
searchBy = props.searchBy,
|
|
807
|
+
callback = props.callback;
|
|
929
808
|
var filterVisibleData = useCallback(function (data, searchKeyword) {
|
|
930
809
|
var setVisible = function setVisible(nodes) {
|
|
931
810
|
return nodes.forEach(function (item) {
|
|
932
811
|
item.visible = searchBy ? searchBy(searchKeyword, item[labelKey], item) : shouldDisplay(item[labelKey], searchKeyword);
|
|
933
|
-
|
|
934
812
|
if (_isArray(item[childrenKey])) {
|
|
935
813
|
filterVisibleData(item[childrenKey], searchKeyword);
|
|
936
814
|
item[childrenKey].forEach(function (child) {
|
|
@@ -941,30 +819,28 @@ export function useTreeSearch(props) {
|
|
|
941
819
|
}
|
|
942
820
|
});
|
|
943
821
|
};
|
|
944
|
-
|
|
945
822
|
setVisible(data);
|
|
946
823
|
return data;
|
|
947
|
-
}, [childrenKey, labelKey, searchBy]);
|
|
824
|
+
}, [childrenKey, labelKey, searchBy]);
|
|
948
825
|
|
|
826
|
+
// Use search keywords to filter options.
|
|
949
827
|
var _useState5 = useState(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : ''),
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
828
|
+
searchKeywordState = _useState5[0],
|
|
829
|
+
setSearchKeyword = _useState5[1];
|
|
953
830
|
var _useState6 = useState(function () {
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
831
|
+
return filterVisibleData(data, searchKeywordState);
|
|
832
|
+
}),
|
|
833
|
+
filteredData = _useState6[0],
|
|
834
|
+
setFilteredData = _useState6[1];
|
|
959
835
|
var handleSearch = function handleSearch(searchKeyword, event) {
|
|
960
836
|
var filteredData = filterVisibleData(data, searchKeyword);
|
|
961
837
|
setFilteredData(filteredData);
|
|
962
838
|
setSearchKeyword(searchKeyword);
|
|
963
839
|
event && (callback === null || callback === void 0 ? void 0 : callback(searchKeyword, filteredData, event));
|
|
964
840
|
};
|
|
965
|
-
|
|
966
841
|
useEffect(function () {
|
|
967
|
-
handleSearch(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');
|
|
842
|
+
handleSearch(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');
|
|
843
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
968
844
|
}, [searchKeyword]);
|
|
969
845
|
var handleSetFilteredData = useCallback(function (data, searchKeyword) {
|
|
970
846
|
setFilteredData(filterVisibleData(data, searchKeyword));
|
|
@@ -979,13 +855,11 @@ export function useTreeSearch(props) {
|
|
|
979
855
|
}
|
|
980
856
|
export function useGetTreeNodeChildren(treeData, valueKey, childrenKey) {
|
|
981
857
|
var _useState7 = useState([]),
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
858
|
+
loadingNodeValues = _useState7[0],
|
|
859
|
+
setLoadingNodeValues = _useState7[1];
|
|
985
860
|
var _useState8 = useState(treeData),
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
861
|
+
data = _useState8[0],
|
|
862
|
+
setData = _useState8[1];
|
|
989
863
|
var concatChildren = useCallback(function (treeNode, children) {
|
|
990
864
|
var value = treeNode[valueKey];
|
|
991
865
|
treeNode = findNodeOfTree(data, function (item) {
|
|
@@ -1001,7 +875,6 @@ export function useGetTreeNodeChildren(treeData, valueKey, childrenKey) {
|
|
|
1001
875
|
return prev.concat(node[valueKey]);
|
|
1002
876
|
});
|
|
1003
877
|
var children = getChildren(node);
|
|
1004
|
-
|
|
1005
878
|
if (children instanceof Promise) {
|
|
1006
879
|
children.then(function (res) {
|
|
1007
880
|
var newData = concatChildren(node, res);
|
|
@@ -1028,37 +901,30 @@ export function useGetTreeNodeChildren(treeData, valueKey, childrenKey) {
|
|
|
1028
901
|
loadChildren: loadChildren
|
|
1029
902
|
};
|
|
1030
903
|
}
|
|
1031
|
-
|
|
1032
904
|
/**
|
|
1033
905
|
* Focus to active tree node.
|
|
1034
906
|
* @param param0
|
|
1035
907
|
*/
|
|
1036
908
|
export function focusToActiveTreeNode(_ref10) {
|
|
1037
909
|
var _activeItem$focus;
|
|
1038
|
-
|
|
1039
910
|
var list = _ref10.list,
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
911
|
+
valueKey = _ref10.valueKey,
|
|
912
|
+
activeNode = _ref10.activeNode,
|
|
913
|
+
virtualized = _ref10.virtualized,
|
|
914
|
+
container = _ref10.container,
|
|
915
|
+
selector = _ref10.selector,
|
|
916
|
+
formattedNodes = _ref10.formattedNodes;
|
|
1046
917
|
if (!container) return;
|
|
1047
|
-
|
|
1048
918
|
if (virtualized && activeNode) {
|
|
1049
919
|
var _list$scrollToRow;
|
|
1050
|
-
|
|
1051
920
|
var scrollIndex = getScrollToIndex(formattedNodes, activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey], valueKey);
|
|
1052
921
|
(_list$scrollToRow = list.scrollToRow) === null || _list$scrollToRow === void 0 ? void 0 : _list$scrollToRow.call(list, scrollIndex);
|
|
1053
922
|
return;
|
|
1054
923
|
}
|
|
1055
|
-
|
|
1056
924
|
var activeItem = container.querySelector(selector);
|
|
1057
|
-
|
|
1058
925
|
if (!activeItem) {
|
|
1059
926
|
return;
|
|
1060
927
|
}
|
|
1061
|
-
|
|
1062
928
|
activeItem === null || activeItem === void 0 ? void 0 : (_activeItem$focus = activeItem.focus) === null || _activeItem$focus === void 0 ? void 0 : _activeItem$focus.call(activeItem);
|
|
1063
929
|
}
|
|
1064
930
|
export function isSearching(searchKeyword) {
|
|
@@ -1066,38 +932,33 @@ export function isSearching(searchKeyword) {
|
|
|
1066
932
|
}
|
|
1067
933
|
export function getTreeNodeIndent(rtl, layer, absolute) {
|
|
1068
934
|
var _ref12;
|
|
1069
|
-
|
|
1070
935
|
if (absolute === void 0) {
|
|
1071
936
|
absolute = false;
|
|
1072
937
|
}
|
|
1073
|
-
|
|
1074
938
|
// layer start from 1
|
|
1075
939
|
var offset = layer * TREE_NODE_PADDING + TREE_NODE_ROOT_PADDING;
|
|
1076
|
-
|
|
1077
940
|
if (absolute) {
|
|
1078
941
|
var _ref11;
|
|
1079
|
-
|
|
1080
942
|
return _ref11 = {}, _ref11[rtl ? 'right' : 'left'] = offset, _ref11;
|
|
1081
943
|
}
|
|
1082
|
-
|
|
1083
944
|
return _ref12 = {}, _ref12[rtl ? 'paddingRight' : 'paddingLeft'] = offset, _ref12;
|
|
1084
945
|
}
|
|
946
|
+
|
|
1085
947
|
/**
|
|
1086
948
|
* according to the value type to get the formatted valueKey of the node
|
|
1087
949
|
* @param value
|
|
1088
950
|
* @returns
|
|
1089
951
|
*/
|
|
1090
|
-
|
|
1091
952
|
export function getNodeFormattedRefKey(value) {
|
|
1092
953
|
return "" + (typeof value === 'number' ? 'Number_' : 'String_') + value;
|
|
1093
954
|
}
|
|
955
|
+
|
|
1094
956
|
/**
|
|
1095
957
|
* create drag preview when tree node start drag
|
|
1096
958
|
* @param name
|
|
1097
959
|
* @param className
|
|
1098
960
|
* @returns
|
|
1099
961
|
*/
|
|
1100
|
-
|
|
1101
962
|
export function createDragPreview(name, className) {
|
|
1102
963
|
var dragPreview = document.createElement('div');
|
|
1103
964
|
dragPreview.id = 'rs-tree-drag-preview';
|
|
@@ -1106,13 +967,12 @@ export function createDragPreview(name, className) {
|
|
|
1106
967
|
document.body.appendChild(dragPreview);
|
|
1107
968
|
return dragPreview;
|
|
1108
969
|
}
|
|
970
|
+
|
|
1109
971
|
/**
|
|
1110
972
|
* remove drag preview when tree node drop
|
|
1111
973
|
*/
|
|
1112
|
-
|
|
1113
974
|
export function removeDragPreview() {
|
|
1114
975
|
var _dragPreview$parentNo, _dragPreview$parentNo2;
|
|
1115
|
-
|
|
1116
976
|
var dragPreview = document.getElementById('rs-tree-drag-preview');
|
|
1117
977
|
dragPreview === null || dragPreview === void 0 ? void 0 : (_dragPreview$parentNo = dragPreview.parentNode) === null || _dragPreview$parentNo === void 0 ? void 0 : (_dragPreview$parentNo2 = _dragPreview$parentNo.removeChild) === null || _dragPreview$parentNo2 === void 0 ? void 0 : _dragPreview$parentNo2.call(_dragPreview$parentNo, dragPreview);
|
|
1118
978
|
}
|
|
@@ -1121,25 +981,20 @@ export function stringifyTreeNodeLabel(label) {
|
|
|
1121
981
|
return label;
|
|
1122
982
|
} else if ( /*#__PURE__*/React.isValidElement(label)) {
|
|
1123
983
|
var _nodes2 = reactToString(label);
|
|
1124
|
-
|
|
1125
984
|
return _nodes2.join('');
|
|
1126
985
|
}
|
|
1127
|
-
|
|
1128
986
|
return '';
|
|
1129
987
|
}
|
|
988
|
+
|
|
1130
989
|
/**
|
|
1131
990
|
* Returns a WeakMap that maps each item in `items` to its parent
|
|
1132
991
|
* indicated by `getChildren` function
|
|
1133
992
|
*/
|
|
1134
|
-
|
|
1135
993
|
export function getParentMap(items, getChildren) {
|
|
1136
994
|
var map = new WeakMap();
|
|
1137
|
-
|
|
1138
995
|
for (var queue = [].concat(items); queue.length > 0;) {
|
|
1139
996
|
var _item5 = queue.shift();
|
|
1140
|
-
|
|
1141
997
|
var children = getChildren(_item5);
|
|
1142
|
-
|
|
1143
998
|
if (children) {
|
|
1144
999
|
for (var _iterator2 = _createForOfIteratorHelperLoose(children), _step2; !(_step2 = _iterator2()).done;) {
|
|
1145
1000
|
var child = _step2.value;
|
|
@@ -1148,9 +1003,9 @@ export function getParentMap(items, getChildren) {
|
|
|
1148
1003
|
}
|
|
1149
1004
|
}
|
|
1150
1005
|
}
|
|
1151
|
-
|
|
1152
1006
|
return map;
|
|
1153
1007
|
}
|
|
1008
|
+
|
|
1154
1009
|
/**
|
|
1155
1010
|
* Returns a Map that maps each item's "key", indicated by `getKey` function,
|
|
1156
1011
|
* to its parent indicated by `getChildren` function
|
|
@@ -1159,15 +1014,11 @@ export function getParentMap(items, getChildren) {
|
|
|
1159
1014
|
* Using this function is discouraged.
|
|
1160
1015
|
* Use {@link getParentMap} whenever possible.
|
|
1161
1016
|
*/
|
|
1162
|
-
|
|
1163
1017
|
export function getKeyParentMap(items, getKey, getChildren) {
|
|
1164
1018
|
var map = new Map();
|
|
1165
|
-
|
|
1166
1019
|
for (var queue = [].concat(items); queue.length > 0;) {
|
|
1167
1020
|
var _item6 = queue.shift();
|
|
1168
|
-
|
|
1169
1021
|
var children = getChildren(_item6);
|
|
1170
|
-
|
|
1171
1022
|
if (children) {
|
|
1172
1023
|
for (var _iterator3 = _createForOfIteratorHelperLoose(children), _step3; !(_step3 = _iterator3()).done;) {
|
|
1173
1024
|
var child = _step3.value;
|
|
@@ -1176,20 +1027,17 @@ export function getKeyParentMap(items, getKey, getChildren) {
|
|
|
1176
1027
|
}
|
|
1177
1028
|
}
|
|
1178
1029
|
}
|
|
1179
|
-
|
|
1180
1030
|
return map;
|
|
1181
1031
|
}
|
|
1032
|
+
|
|
1182
1033
|
/**
|
|
1183
1034
|
* Returns an array indicating the hierarchy path from root towards `target` item
|
|
1184
1035
|
*/
|
|
1185
|
-
|
|
1186
1036
|
export function getPathTowardsItem(target, getParent) {
|
|
1187
1037
|
if (!target) return [];
|
|
1188
1038
|
var path = [target];
|
|
1189
|
-
|
|
1190
1039
|
for (var parent = getParent(target); !!parent; parent = getParent(parent)) {
|
|
1191
1040
|
path.unshift(parent);
|
|
1192
1041
|
}
|
|
1193
|
-
|
|
1194
1042
|
return path;
|
|
1195
1043
|
}
|