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