rsuite 5.60.2 → 5.61.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/Accordion/styles/index.css +4 -4
- package/AutoComplete/styles/index.css +58 -22
- package/Button/styles/index.css +12 -8
- package/Button/styles/mixin.less +1 -1
- package/CHANGELOG.md +25 -0
- package/Calendar/styles/index.css +16 -15
- package/CascadeTree/styles/index.css +11 -9
- package/CascadeTree/styles/index.less +7 -0
- package/CascadeTree/styles/search.less +0 -10
- package/Cascader/styles/index.css +60 -31
- package/CheckPicker/styles/index.css +59 -27
- package/CheckPicker/styles/index.less +3 -3
- package/CheckTree/styles/index.css +160 -134
- package/CheckTree/styles/index.less +141 -1
- package/CheckTreePicker/styles/index.css +170 -126
- package/CheckTreePicker/styles/index.less +8 -181
- package/Checkbox/styles/index.css +7 -8
- package/Checkbox/styles/index.less +1 -5
- package/DateInput/styles/index.css +4 -4
- package/DatePicker/styles/index.css +62 -26
- package/DateRangeInput/styles/index.css +4 -4
- package/DateRangePicker/styles/index.css +67 -26
- package/DateRangePicker/styles/index.less +2 -0
- package/Dropdown/styles/index.css +14 -13
- package/Highlight/package.json +7 -0
- package/Highlight/styles/index.css +8 -0
- package/Highlight/styles/index.less +6 -0
- package/IconButton/styles/index.css +11 -10
- package/Input/styles/index.css +4 -4
- package/InputGroup/styles/index.css +18 -17
- package/InputGroup/styles/index.less +1 -1
- package/InputNumber/styles/index.css +19 -18
- package/InputPicker/styles/index.css +58 -22
- package/MultiCascadeTree/styles/index.css +61 -36
- package/MultiCascadeTree/styles/index.less +1 -1
- package/MultiCascader/styles/index.css +704 -679
- package/MultiCascader/styles/index.less +0 -1
- package/Nav/styles/index.css +15 -14
- package/Navbar/styles/index.css +14 -13
- package/Pagination/styles/index.css +62 -26
- package/Panel/styles/index.css +4 -4
- package/Placeholder/styles/index.css +2 -3
- package/Placeholder/styles/index.less +2 -3
- package/README.md +21 -39
- package/Radio/styles/index.css +7 -7
- package/Radio/styles/index.less +1 -5
- package/RangeSlider/styles/index.css +1 -1
- package/Rate/styles/index.css +1 -1
- package/Rate/styles/index.less +1 -1
- package/SelectPicker/styles/index.css +58 -22
- package/Slider/styles/index.css +1 -1
- package/Slider/styles/index.less +1 -1
- package/Steps/styles/index.css +6 -1
- package/Steps/styles/index.less +2 -1
- package/Tabs/styles/index.css +15 -14
- package/TagInput/styles/index.css +59 -27
- package/TagPicker/styles/index.css +59 -27
- package/Toggle/styles/index.css +10 -7
- package/Tree/styles/indent-line.less +8 -0
- package/Tree/styles/index.css +140 -141
- package/Tree/styles/index.less +188 -1
- package/Tree/styles/toggle.less +36 -0
- package/TreePicker/styles/index.css +142 -134
- package/TreePicker/styles/index.less +4 -234
- package/Uploader/styles/index.css +12 -11
- package/cjs/@types/common.d.ts +41 -4
- package/cjs/AutoComplete/AutoComplete.js +2 -1
- package/cjs/CascadeTree/CascadeTree.js +8 -7
- package/cjs/CascadeTree/SearchView.js +7 -14
- package/cjs/CascadeTree/hooks/usePaths.js +4 -4
- package/cjs/CascadeTree/hooks/useSearch.js +2 -1
- package/cjs/CascadeTree/utils.d.ts +0 -11
- package/cjs/CascadeTree/utils.js +0 -23
- package/cjs/Cascader/Cascader.js +17 -16
- package/cjs/CheckPicker/CheckPicker.js +26 -29
- package/cjs/CheckTree/CheckTree.d.ts +16 -0
- package/cjs/CheckTree/CheckTree.js +112 -0
- package/cjs/CheckTree/CheckTreeNode.d.ts +72 -0
- package/cjs/CheckTree/CheckTreeNode.js +117 -0
- package/cjs/CheckTree/CheckTreeView.d.ts +70 -0
- package/cjs/CheckTree/CheckTreeView.js +310 -0
- package/cjs/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
- package/cjs/CheckTree/hooks/useTreeCheckState.js +93 -0
- package/cjs/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
- package/cjs/CheckTree/hooks/useTreeNodeProps.js +59 -0
- package/cjs/CheckTree/hooks/useTreeValue.d.ts +5 -0
- package/cjs/CheckTree/hooks/useTreeValue.js +21 -0
- package/cjs/CheckTree/index.d.ts +2 -14
- package/cjs/CheckTree/index.js +2 -23
- package/cjs/CheckTree/utils.d.ts +53 -0
- package/cjs/{CheckTreePicker → CheckTree}/utils.js +76 -26
- package/cjs/CheckTreePicker/CheckTreePicker.d.ts +30 -12
- package/cjs/CheckTreePicker/CheckTreePicker.js +153 -603
- package/cjs/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
- package/cjs/CheckTreePicker/hooks/useFocusState.js +42 -0
- package/cjs/DatePicker/DatePicker.d.ts +4 -0
- package/cjs/DatePicker/DatePicker.js +20 -5
- package/cjs/DatePicker/types.d.ts +0 -4
- package/cjs/DateRangePicker/DateRangePicker.d.ts +51 -23
- package/cjs/DateRangePicker/DateRangePicker.js +71 -51
- package/cjs/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
- package/cjs/DateRangePicker/hooks/useDateDisabled.js +31 -0
- package/cjs/DateRangePicker/types.d.ts +1 -0
- package/cjs/Highlight/Highlight.d.ts +14 -0
- package/cjs/Highlight/Highlight.js +58 -0
- package/cjs/Highlight/index.d.ts +3 -0
- package/cjs/Highlight/index.js +9 -0
- package/cjs/Highlight/utils/highlightText.d.ts +5 -0
- package/cjs/Highlight/utils/highlightText.js +29 -0
- package/cjs/InputPicker/InputPicker.js +37 -41
- package/cjs/MultiCascadeTree/SearchView.js +6 -14
- package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
- package/cjs/MultiCascadeTree/hooks/useColumnData.js +2 -2
- package/cjs/MultiCascadeTree/hooks/useFlattenData.js +3 -3
- package/cjs/MultiCascadeTree/hooks/useSearch.js +2 -1
- package/cjs/MultiCascadeTree/utils.d.ts +4 -4
- package/cjs/MultiCascadeTree/utils.js +20 -11
- package/cjs/MultiCascader/MultiCascader.js +12 -12
- package/cjs/SelectPicker/SelectPicker.js +2 -6
- package/cjs/Tree/IndentLine.d.ts +3 -0
- package/cjs/Tree/IndentLine.js +18 -0
- package/cjs/Tree/Tree.d.ts +4 -92
- package/cjs/Tree/Tree.js +79 -20
- package/cjs/Tree/TreeNode.d.ts +101 -0
- package/cjs/Tree/TreeNode.js +147 -0
- package/cjs/Tree/TreeNodeToggle.d.ts +9 -0
- package/cjs/Tree/TreeNodeToggle.js +56 -0
- package/cjs/Tree/TreeProvider.d.ts +52 -0
- package/cjs/Tree/TreeProvider.js +84 -0
- package/cjs/Tree/TreeView.d.ts +68 -0
- package/cjs/Tree/TreeView.js +305 -0
- package/cjs/Tree/hooks/useExpandTree.d.ts +60 -0
- package/cjs/Tree/hooks/useExpandTree.js +77 -0
- package/cjs/Tree/hooks/useFlattenTree.d.ts +42 -0
- package/cjs/Tree/hooks/useFlattenTree.js +98 -0
- package/cjs/Tree/hooks/useFocusTree.d.ts +24 -0
- package/cjs/Tree/hooks/useFocusTree.js +158 -0
- package/cjs/Tree/hooks/useForceUpdate.d.ts +2 -0
- package/cjs/Tree/hooks/useForceUpdate.js +16 -0
- package/cjs/Tree/hooks/useTreeDrag.d.ts +32 -0
- package/cjs/Tree/hooks/useTreeDrag.js +268 -0
- package/cjs/Tree/hooks/useTreeNodeProps.d.ts +29 -0
- package/cjs/Tree/hooks/useTreeNodeProps.js +83 -0
- package/cjs/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
- package/cjs/Tree/hooks/useTreeNodeRefs.js +22 -0
- package/cjs/Tree/hooks/useTreeSearch.d.ts +18 -0
- package/cjs/Tree/hooks/useTreeSearch.js +74 -0
- package/cjs/Tree/hooks/useTreeWithChildren.d.ts +14 -0
- package/cjs/Tree/hooks/useTreeWithChildren.js +64 -0
- package/cjs/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
- package/cjs/Tree/hooks/useVirtualizedTreeData.js +82 -0
- package/cjs/Tree/types.d.ts +257 -0
- package/cjs/Tree/types.js +33 -0
- package/cjs/Tree/utils/flattenTree.d.ts +25 -0
- package/cjs/Tree/utils/flattenTree.js +95 -0
- package/cjs/Tree/utils/focusableTree.d.ts +55 -0
- package/cjs/Tree/utils/focusableTree.js +157 -0
- package/cjs/Tree/utils/formatNodeRefKey.d.ts +4 -0
- package/cjs/Tree/utils/formatNodeRefKey.js +11 -0
- package/cjs/Tree/utils/getExpandItemValues.d.ts +11 -0
- package/cjs/Tree/utils/getExpandItemValues.js +21 -0
- package/cjs/Tree/utils/getNodeParentKeys.d.ts +5 -0
- package/cjs/Tree/utils/getNodeParentKeys.js +21 -0
- package/cjs/Tree/utils/getTreeActiveNode.d.ts +5 -0
- package/cjs/Tree/utils/getTreeActiveNode.js +21 -0
- package/cjs/Tree/utils/hasVisibleChildren.d.ts +5 -0
- package/cjs/Tree/utils/hasVisibleChildren.js +16 -0
- package/cjs/Tree/utils/indentTreeNode.d.ts +3 -0
- package/cjs/Tree/utils/indentTreeNode.js +18 -0
- package/cjs/Tree/utils/index.d.ts +11 -0
- package/cjs/Tree/utils/index.js +35 -0
- package/cjs/Tree/utils/isExpand.d.ts +6 -0
- package/cjs/Tree/utils/isExpand.js +14 -0
- package/cjs/Tree/utils/isSearching.d.ts +1 -0
- package/cjs/Tree/utils/isSearching.js +10 -0
- package/cjs/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
- package/cjs/Tree/utils/treeKeyboardInteractions.js +49 -0
- package/cjs/TreePicker/TreePicker.d.ts +27 -21
- package/cjs/TreePicker/TreePicker.js +155 -575
- package/cjs/TreePicker/hooks/useFocusState.d.ts +20 -0
- package/cjs/TreePicker/hooks/useFocusState.js +53 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +3 -1
- package/cjs/internals/Picker/Listbox.d.ts +40 -10
- package/cjs/internals/Picker/Listbox.js +21 -16
- package/cjs/internals/Picker/PickerIndicator.d.ts +2 -1
- package/cjs/internals/Picker/PickerIndicator.js +7 -3
- package/cjs/internals/Picker/hooks/useFocusItemValue.js +4 -4
- package/cjs/internals/Picker/hooks/usePickerRef.d.ts +1 -4
- package/cjs/internals/Picker/hooks/usePickerRef.js +3 -20
- package/cjs/internals/Picker/index.d.ts +0 -1
- package/cjs/internals/Picker/index.js +1 -4
- package/cjs/internals/Picker/utils.js +12 -12
- package/cjs/internals/{Picker → Tree}/TreeView.js +1 -1
- package/cjs/internals/Tree/index.d.ts +1 -0
- package/cjs/internals/Tree/index.js +8 -0
- package/cjs/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
- package/cjs/internals/Tree/utils/filterNodesOfTree.js +31 -0
- package/cjs/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
- package/cjs/internals/Tree/utils/findNodeOfTree.js +26 -0
- package/cjs/internals/Tree/utils/getParentMap.d.ts +15 -0
- package/cjs/internals/Tree/utils/getParentMap.js +52 -0
- package/cjs/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
- package/cjs/internals/Tree/utils/getPathTowardsItem.js +16 -0
- package/cjs/internals/Tree/utils/index.d.ts +4 -0
- package/cjs/internals/Tree/utils/index.js +14 -0
- package/cjs/internals/Windowing/List.d.ts +1 -0
- package/cjs/internals/Windowing/List.js +5 -1
- package/cjs/internals/Windowing/index.d.ts +1 -1
- package/cjs/internals/Windowing/index.js +4 -2
- package/cjs/internals/hooks/index.d.ts +1 -0
- package/cjs/internals/hooks/index.js +8 -0
- package/cjs/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
- package/cjs/internals/hooks/useFoucsVirtualListItem.js +26 -0
- package/cjs/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
- package/cjs/{utils → internals/utils}/getSafeRegExpString.js +1 -1
- package/cjs/internals/utils/index.d.ts +2 -0
- package/cjs/internals/utils/index.js +9 -0
- package/cjs/internals/utils/stringifyReactNode.d.ts +2 -0
- package/cjs/internals/utils/stringifyReactNode.js +17 -0
- package/cjs/utils/constants.d.ts +0 -2
- package/cjs/utils/constants.js +1 -6
- package/cjs/utils/getDataGroupBy.js +3 -3
- package/cjs/utils/index.d.ts +0 -3
- package/cjs/utils/index.js +1 -10
- package/cjs/utils/useIsomorphicLayoutEffect.d.ts +2 -2
- package/dist/rsuite-no-reset-rtl.css +292 -300
- 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 +294 -304
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +293 -301
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +295 -305
- package/dist/rsuite.js +611 -116
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/@types/common.d.ts +41 -4
- package/esm/AutoComplete/AutoComplete.js +2 -1
- package/esm/CascadeTree/CascadeTree.js +2 -1
- package/esm/CascadeTree/SearchView.js +6 -13
- package/esm/CascadeTree/hooks/usePaths.js +1 -1
- package/esm/CascadeTree/hooks/useSearch.js +2 -1
- package/esm/CascadeTree/utils.d.ts +0 -11
- package/esm/CascadeTree/utils.js +0 -22
- package/esm/Cascader/Cascader.js +2 -1
- package/esm/CheckPicker/CheckPicker.js +4 -7
- package/esm/CheckTree/CheckTree.d.ts +16 -0
- package/esm/CheckTree/CheckTree.js +105 -0
- package/esm/CheckTree/CheckTreeNode.d.ts +72 -0
- package/esm/CheckTree/CheckTreeNode.js +110 -0
- package/esm/CheckTree/CheckTreeView.d.ts +70 -0
- package/esm/CheckTree/CheckTreeView.js +304 -0
- package/esm/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
- package/esm/CheckTree/hooks/useTreeCheckState.js +87 -0
- package/esm/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
- package/esm/CheckTree/hooks/useTreeNodeProps.js +52 -0
- package/esm/CheckTree/hooks/useTreeValue.d.ts +5 -0
- package/esm/CheckTree/hooks/useTreeValue.js +16 -0
- package/esm/CheckTree/index.d.ts +2 -14
- package/esm/CheckTree/index.js +1 -21
- package/esm/CheckTree/utils.d.ts +53 -0
- package/esm/{CheckTreePicker → CheckTree}/utils.js +72 -22
- package/esm/CheckTreePicker/CheckTreePicker.d.ts +30 -12
- package/esm/CheckTreePicker/CheckTreePicker.js +156 -607
- package/esm/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
- package/esm/CheckTreePicker/hooks/useFocusState.js +37 -0
- package/esm/DatePicker/DatePicker.d.ts +4 -0
- package/esm/DatePicker/DatePicker.js +20 -5
- package/esm/DatePicker/types.d.ts +0 -4
- package/esm/DateRangePicker/DateRangePicker.d.ts +51 -23
- package/esm/DateRangePicker/DateRangePicker.js +71 -51
- package/esm/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
- package/esm/DateRangePicker/hooks/useDateDisabled.js +26 -0
- package/esm/DateRangePicker/types.d.ts +1 -0
- package/esm/Highlight/Highlight.d.ts +14 -0
- package/esm/Highlight/Highlight.js +52 -0
- package/esm/Highlight/index.d.ts +3 -0
- package/esm/Highlight/index.js +3 -0
- package/esm/Highlight/utils/highlightText.d.ts +5 -0
- package/esm/Highlight/utils/highlightText.js +25 -0
- package/esm/InputPicker/InputPicker.js +3 -7
- package/esm/MultiCascadeTree/SearchView.js +6 -14
- package/esm/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
- package/esm/MultiCascadeTree/hooks/useColumnData.js +1 -1
- package/esm/MultiCascadeTree/hooks/useFlattenData.js +1 -1
- package/esm/MultiCascadeTree/hooks/useSearch.js +2 -1
- package/esm/MultiCascadeTree/utils.d.ts +4 -4
- package/esm/MultiCascadeTree/utils.js +18 -9
- package/esm/MultiCascader/MultiCascader.js +1 -1
- package/esm/SelectPicker/SelectPicker.js +2 -6
- package/esm/Tree/IndentLine.d.ts +3 -0
- package/esm/Tree/IndentLine.js +12 -0
- package/esm/Tree/Tree.d.ts +4 -92
- package/esm/Tree/Tree.js +78 -18
- package/esm/Tree/TreeNode.d.ts +101 -0
- package/esm/Tree/TreeNode.js +141 -0
- package/esm/Tree/TreeNodeToggle.d.ts +9 -0
- package/esm/Tree/TreeNodeToggle.js +50 -0
- package/esm/Tree/TreeProvider.d.ts +52 -0
- package/esm/Tree/TreeProvider.js +74 -0
- package/esm/Tree/TreeView.d.ts +68 -0
- package/esm/Tree/TreeView.js +299 -0
- package/esm/Tree/hooks/useExpandTree.d.ts +60 -0
- package/esm/Tree/hooks/useExpandTree.js +70 -0
- package/esm/Tree/hooks/useFlattenTree.d.ts +42 -0
- package/esm/Tree/hooks/useFlattenTree.js +92 -0
- package/esm/Tree/hooks/useFocusTree.d.ts +24 -0
- package/esm/Tree/hooks/useFocusTree.js +153 -0
- package/esm/Tree/hooks/useForceUpdate.d.ts +2 -0
- package/esm/Tree/hooks/useForceUpdate.js +11 -0
- package/esm/Tree/hooks/useTreeDrag.d.ts +32 -0
- package/esm/Tree/hooks/useTreeDrag.js +264 -0
- package/esm/Tree/hooks/useTreeNodeProps.d.ts +29 -0
- package/esm/Tree/hooks/useTreeNodeProps.js +76 -0
- package/esm/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
- package/esm/Tree/hooks/useTreeNodeRefs.js +18 -0
- package/esm/Tree/hooks/useTreeSearch.d.ts +18 -0
- package/esm/Tree/hooks/useTreeSearch.js +69 -0
- package/esm/Tree/hooks/useTreeWithChildren.d.ts +14 -0
- package/esm/Tree/hooks/useTreeWithChildren.js +59 -0
- package/esm/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
- package/esm/Tree/hooks/useVirtualizedTreeData.js +77 -0
- package/esm/Tree/types.d.ts +257 -0
- package/esm/Tree/types.js +30 -0
- package/esm/Tree/utils/flattenTree.d.ts +25 -0
- package/esm/Tree/utils/flattenTree.js +88 -0
- package/esm/Tree/utils/focusableTree.d.ts +55 -0
- package/esm/Tree/utils/focusableTree.js +146 -0
- package/esm/Tree/utils/formatNodeRefKey.d.ts +4 -0
- package/esm/Tree/utils/formatNodeRefKey.js +7 -0
- package/esm/Tree/utils/getExpandItemValues.d.ts +11 -0
- package/esm/Tree/utils/getExpandItemValues.js +17 -0
- package/esm/Tree/utils/getNodeParentKeys.d.ts +5 -0
- package/esm/Tree/utils/getNodeParentKeys.js +17 -0
- package/esm/Tree/utils/getTreeActiveNode.d.ts +5 -0
- package/esm/Tree/utils/getTreeActiveNode.js +16 -0
- package/esm/Tree/utils/hasVisibleChildren.d.ts +5 -0
- package/esm/Tree/utils/hasVisibleChildren.js +12 -0
- package/esm/Tree/utils/indentTreeNode.d.ts +3 -0
- package/esm/Tree/utils/indentTreeNode.js +14 -0
- package/esm/Tree/utils/index.d.ts +11 -0
- package/esm/Tree/utils/index.js +14 -0
- package/esm/Tree/utils/isExpand.d.ts +6 -0
- package/esm/Tree/utils/isExpand.js +11 -0
- package/esm/Tree/utils/isSearching.d.ts +1 -0
- package/esm/Tree/utils/isSearching.js +5 -0
- package/esm/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
- package/esm/Tree/utils/treeKeyboardInteractions.js +43 -0
- package/esm/TreePicker/TreePicker.d.ts +27 -21
- package/esm/TreePicker/TreePicker.js +158 -579
- package/esm/TreePicker/hooks/useFocusState.d.ts +20 -0
- package/esm/TreePicker/hooks/useFocusState.js +48 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/internals/Picker/Listbox.d.ts +40 -10
- package/esm/internals/Picker/Listbox.js +22 -16
- package/esm/internals/Picker/PickerIndicator.d.ts +2 -1
- package/esm/internals/Picker/PickerIndicator.js +7 -3
- package/esm/internals/Picker/hooks/useFocusItemValue.js +1 -1
- package/esm/internals/Picker/hooks/usePickerRef.d.ts +1 -4
- package/esm/internals/Picker/hooks/usePickerRef.js +3 -20
- package/esm/internals/Picker/index.d.ts +0 -1
- package/esm/internals/Picker/index.js +0 -1
- package/esm/internals/Picker/utils.js +1 -1
- package/esm/internals/{Picker → Tree}/TreeView.js +1 -1
- package/esm/internals/Tree/index.d.ts +1 -0
- package/esm/internals/Tree/index.js +2 -0
- package/esm/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
- package/esm/internals/Tree/utils/filterNodesOfTree.js +26 -0
- package/esm/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
- package/esm/internals/Tree/utils/findNodeOfTree.js +22 -0
- package/esm/internals/Tree/utils/getParentMap.d.ts +15 -0
- package/esm/internals/Tree/utils/getParentMap.js +47 -0
- package/esm/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
- package/esm/internals/Tree/utils/getPathTowardsItem.js +12 -0
- package/esm/internals/Tree/utils/index.d.ts +4 -0
- package/esm/internals/Tree/utils/index.js +5 -0
- package/esm/internals/Windowing/List.d.ts +1 -0
- package/esm/internals/Windowing/List.js +3 -0
- package/esm/internals/Windowing/index.d.ts +1 -1
- package/esm/internals/Windowing/index.js +1 -1
- package/esm/internals/hooks/index.d.ts +1 -0
- package/esm/internals/hooks/index.js +2 -0
- package/esm/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
- package/esm/internals/hooks/useFoucsVirtualListItem.js +22 -0
- package/esm/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
- package/esm/{utils → internals/utils}/getSafeRegExpString.js +1 -1
- package/esm/internals/utils/index.d.ts +2 -0
- package/esm/internals/utils/index.js +3 -0
- package/esm/internals/utils/stringifyReactNode.d.ts +2 -0
- package/esm/internals/utils/stringifyReactNode.js +12 -0
- package/esm/utils/constants.d.ts +0 -2
- package/esm/utils/constants.js +0 -3
- package/esm/utils/getDataGroupBy.js +1 -1
- package/esm/utils/index.d.ts +0 -3
- package/esm/utils/index.js +0 -3
- package/esm/utils/useIsomorphicLayoutEffect.d.ts +2 -2
- package/internals/Picker/styles/index.less +27 -1
- package/package.json +1 -1
- package/styles/color-modes/dark.less +5 -1
- package/styles/color-modes/high-contrast.less +8 -2
- package/styles/color-modes/light.less +10 -5
- package/styles/index.less +1 -0
- package/TreePicker/styles/mixin.less +0 -7
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +0 -28
- package/cjs/CheckTreePicker/CheckTreeNode.js +0 -140
- package/cjs/CheckTreePicker/utils.d.ts +0 -44
- package/cjs/Tree/TreeContext.d.ts +0 -6
- package/cjs/Tree/TreeContext.js +0 -10
- package/cjs/TreePicker/TreeNode.d.ts +0 -36
- package/cjs/TreePicker/TreeNode.js +0 -174
- package/cjs/utils/appendTooltip.d.ts +0 -10
- package/cjs/utils/appendTooltip.js +0 -20
- package/cjs/utils/stringToObject.d.ts +0 -2
- package/cjs/utils/stringToObject.js +0 -19
- package/cjs/utils/treeUtils.d.ts +0 -304
- package/cjs/utils/treeUtils.js +0 -1095
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +0 -28
- package/esm/CheckTreePicker/CheckTreeNode.js +0 -133
- package/esm/CheckTreePicker/utils.d.ts +0 -44
- package/esm/Tree/TreeContext.d.ts +0 -6
- package/esm/Tree/TreeContext.js +0 -4
- package/esm/TreePicker/TreeNode.d.ts +0 -36
- package/esm/TreePicker/TreeNode.js +0 -167
- package/esm/utils/appendTooltip.d.ts +0 -10
- package/esm/utils/appendTooltip.js +0 -15
- package/esm/utils/stringToObject.d.ts +0 -2
- package/esm/utils/stringToObject.js +0 -14
- package/esm/utils/treeUtils.d.ts +0 -304
- package/esm/utils/treeUtils.js +0 -1043
- /package/cjs/internals/{Picker → Tree}/TreeView.d.ts +0 -0
- /package/esm/internals/{Picker → Tree}/TreeView.d.ts +0 -0
|
@@ -13,9 +13,9 @@ var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
|
13
13
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
14
14
|
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
|
15
15
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
16
|
+
var _utils = require("../internals/Tree/utils");
|
|
17
|
+
var _utils2 = require("../CascadeTree/utils");
|
|
18
|
+
var _utils3 = require("../utils");
|
|
19
19
|
var _Picker = require("../internals/Picker");
|
|
20
20
|
var _propTypes2 = require("../internals/propTypes");
|
|
21
21
|
var _hooks = require("../MultiCascadeTree/hooks");
|
|
@@ -95,10 +95,10 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
95
95
|
target = _usePickerRef.target,
|
|
96
96
|
overlay = _usePickerRef.overlay,
|
|
97
97
|
searchInput = _usePickerRef.searchInput;
|
|
98
|
-
var _useCustom = (0,
|
|
98
|
+
var _useCustom = (0, _utils3.useCustom)('Picker', overrideLocale),
|
|
99
99
|
locale = _useCustom.locale,
|
|
100
100
|
rtl = _useCustom.rtl;
|
|
101
|
-
var _useClassNames = (0,
|
|
101
|
+
var _useClassNames = (0, _utils3.useClassNames)(classPrefix),
|
|
102
102
|
prefix = _useClassNames.prefix,
|
|
103
103
|
merge = _useClassNames.merge;
|
|
104
104
|
var onSelectCallback = (0, _react.useCallback)(function (node, cascadePaths, event) {
|
|
@@ -120,7 +120,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
120
120
|
setColumnData = _useSelect.setColumnData,
|
|
121
121
|
setSelectedPaths = _useSelect.setSelectedPaths,
|
|
122
122
|
handleSelect = _useSelect.handleSelect;
|
|
123
|
-
var _useControlled = (0,
|
|
123
|
+
var _useControlled = (0, _utils3.useControlled)(valueProp, defaultValue),
|
|
124
124
|
controlledValue = _useControlled[0];
|
|
125
125
|
var itemKeys = {
|
|
126
126
|
childrenKey: childrenKey,
|
|
@@ -144,7 +144,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
144
144
|
});
|
|
145
145
|
}) || [];
|
|
146
146
|
var onFocusItemCallback = (0, _react.useCallback)(function (value) {
|
|
147
|
-
var _getColumnsAndPaths = (0,
|
|
147
|
+
var _getColumnsAndPaths = (0, _utils2.getColumnsAndPaths)(data, flattenData.find(function (item) {
|
|
148
148
|
return item[valueKey] === value;
|
|
149
149
|
}), {
|
|
150
150
|
getParent: function getParent() {
|
|
@@ -205,7 +205,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
205
205
|
active = _useActive.active,
|
|
206
206
|
handleEntered = _useActive.handleEntered,
|
|
207
207
|
handleExited = _useActive.handleExited;
|
|
208
|
-
var handleClean = (0,
|
|
208
|
+
var handleClean = (0, _utils3.useEventCallback)(function (event) {
|
|
209
209
|
if (disabled || !target.current) {
|
|
210
210
|
return;
|
|
211
211
|
}
|
|
@@ -214,9 +214,9 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
214
214
|
setColumnData([data]);
|
|
215
215
|
onChange === null || onChange === void 0 ? void 0 : onChange([], event);
|
|
216
216
|
});
|
|
217
|
-
var handleMenuPressEnter = (0,
|
|
217
|
+
var handleMenuPressEnter = (0, _utils3.useEventCallback)(function (event) {
|
|
218
218
|
var _overlay$current;
|
|
219
|
-
var focusItem = (0,
|
|
219
|
+
var focusItem = (0, _utils.findNodeOfTree)(data, function (item) {
|
|
220
220
|
return item[valueKey] === focusItemValue;
|
|
221
221
|
});
|
|
222
222
|
var checkbox = (_overlay$current = overlay.current) === null || _overlay$current === void 0 ? void 0 : _overlay$current.querySelector("[data-key=\"" + focusItemValue + "\"] [type=\"checkbox\"]");
|
|
@@ -264,7 +264,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
264
264
|
});
|
|
265
265
|
var classes = merge(className, DEPRECATED_menuClassName, popupClassName, prefix('popup-multi-cascader'));
|
|
266
266
|
return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
|
|
267
|
-
ref: (0,
|
|
267
|
+
ref: (0, _utils3.mergeRefs)(overlay, speakerRef),
|
|
268
268
|
className: classes,
|
|
269
269
|
style: styles,
|
|
270
270
|
target: trigger,
|
|
@@ -353,7 +353,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
353
353
|
appearance: appearance,
|
|
354
354
|
disabled: disabled,
|
|
355
355
|
ref: target,
|
|
356
|
-
onClean: (0,
|
|
356
|
+
onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),
|
|
357
357
|
onKeyDown: onPickerKeyDown,
|
|
358
358
|
cleanable: cleanable && !disabled,
|
|
359
359
|
hasValue: hasValue,
|
|
@@ -11,7 +11,6 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
|
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
13
|
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
14
|
-
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
15
14
|
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
16
15
|
var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
|
|
17
16
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
@@ -236,11 +235,8 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
236
235
|
listItemAs: _Picker.ListItem,
|
|
237
236
|
activeItemValues: [value],
|
|
238
237
|
focusItemValue: focusItemValue,
|
|
239
|
-
data: items
|
|
240
|
-
|
|
241
|
-
// `group` is redundant so long as `groupBy` exists
|
|
242
|
-
,
|
|
243
|
-
group: !(0, _isUndefined.default)(groupBy),
|
|
238
|
+
data: items,
|
|
239
|
+
query: searchKeyword,
|
|
244
240
|
groupBy: groupBy,
|
|
245
241
|
onSelect: handleItemSelect,
|
|
246
242
|
onGroupTitleClick: onGroupTitleClick,
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _utils = require("../utils");
|
|
9
|
+
var IndentLine = function IndentLine() {
|
|
10
|
+
var _useClassNames = (0, _utils.useClassNames)('tree'),
|
|
11
|
+
prefix = _useClassNames.prefix;
|
|
12
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
13
|
+
className: prefix('indent-line'),
|
|
14
|
+
"data-testid": "indent-line"
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
var _default = IndentLine;
|
|
18
|
+
exports.default = _default;
|
package/cjs/Tree/Tree.d.ts
CHANGED
|
@@ -1,95 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
* Tree Node Drag Type
|
|
6
|
-
*/
|
|
7
|
-
export declare enum TREE_NODE_DROP_POSITION {
|
|
8
|
-
DRAG_OVER = 0,
|
|
9
|
-
DRAG_OVER_TOP = 1,
|
|
10
|
-
DRAG_OVER_BOTTOM = 2
|
|
11
|
-
}
|
|
12
|
-
export interface DropData<ItemDataType> {
|
|
13
|
-
/** drag node data */
|
|
14
|
-
dragNode: ItemDataType;
|
|
15
|
-
/** dropNode data */
|
|
16
|
-
dropNode: ItemDataType;
|
|
17
|
-
/** node drop position */
|
|
18
|
-
dropNodePosition: TREE_NODE_DROP_POSITION;
|
|
19
|
-
/** Update Data when drop node */
|
|
20
|
-
createUpdateDataFunction: (data: ItemDataType[]) => ItemDataType[];
|
|
21
|
-
}
|
|
22
|
-
export interface TreeDragProps<ItemDataType = Record<string, any>> {
|
|
23
|
-
/** Whether the node can be dragged */
|
|
24
|
-
draggable?: boolean;
|
|
25
|
-
/** Called when scrolling */
|
|
26
|
-
onScroll?: (event: React.SyntheticEvent) => void;
|
|
27
|
-
/** Called when node drag start */
|
|
28
|
-
onDragStart?: (nodeData: ItemDataType, e: React.DragEvent) => void;
|
|
29
|
-
/** Called when node drag enter */
|
|
30
|
-
onDragEnter?: (nodeData: ItemDataType, e: React.DragEvent) => void;
|
|
31
|
-
/** Called when node drag over */
|
|
32
|
-
onDragOver?: (nodeData: ItemDataType, e: React.DragEvent) => void;
|
|
33
|
-
/** Called when node drag leave */
|
|
34
|
-
onDragLeave?: (nodeData: ItemDataType, e: React.DragEvent) => void;
|
|
35
|
-
/** Called when node drag end */
|
|
36
|
-
onDragEnd?: (nodeData: ItemDataType, e: React.DragEvent) => void;
|
|
37
|
-
/** Called when node drop */
|
|
38
|
-
onDrop?: (dropData: DropData<ItemDataType>, e: React.DragEvent) => void;
|
|
39
|
-
}
|
|
40
|
-
export interface TreeBaseProps<ValueType = string | number, ItemDataType = Record<string, any>> extends StandardProps {
|
|
41
|
-
/** The height of Dropdown */
|
|
42
|
-
height?: number;
|
|
43
|
-
/** Whether display search input box */
|
|
44
|
-
searchable?: boolean;
|
|
45
|
-
/** Display an auxiliary line when the tree node is indented. */
|
|
46
|
-
showIndentLine?: boolean;
|
|
47
|
-
/** Whether using virtualized list */
|
|
48
|
-
virtualized?: boolean;
|
|
49
|
-
/** Virtualized List props */
|
|
50
|
-
listProps?: Partial<ListProps>;
|
|
51
|
-
/** Expand all nodes By default */
|
|
52
|
-
defaultExpandAll?: boolean;
|
|
53
|
-
/** searchKeyword (Controlled) */
|
|
54
|
-
searchKeyword?: string;
|
|
55
|
-
/** Set the option value for the expand node */
|
|
56
|
-
defaultExpandItemValues?: any[];
|
|
57
|
-
/** Set the option value for the expand node with controlled*/
|
|
58
|
-
expandItemValues?: any[];
|
|
59
|
-
/** Callback function for data change */
|
|
60
|
-
onExpand?: (expandItemValues: ItemDataType[], activeNode: ItemDataType, concat: (data: ItemDataType[], children: ItemDataType[]) => ItemDataType[]) => void;
|
|
61
|
-
/** Callback function after selecting tree node */
|
|
62
|
-
onSelect?: (activeNode: ItemDataType, value: ValueType, event: React.SyntheticEvent) => void;
|
|
63
|
-
/** Callback when a tree item is clicked */
|
|
64
|
-
onSelectItem?: (item: ItemDataType, path: ItemDataType[]) => void;
|
|
65
|
-
/** Custom Render tree Node */
|
|
66
|
-
renderTreeNode?: (nodeData: ItemDataType) => React.ReactNode;
|
|
67
|
-
/** Custom Render icon */
|
|
68
|
-
renderTreeIcon?: (nodeData: ItemDataType) => React.ReactNode;
|
|
69
|
-
/** callback fired when search */
|
|
70
|
-
onSearch?: (searchKeyword: string, event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
71
|
-
/** Called when clean */
|
|
72
|
-
onClean?: (event: React.SyntheticEvent) => void;
|
|
73
|
-
/** Custom search rules. */
|
|
74
|
-
searchBy?: (keyword: string, label: React.ReactNode, item: any) => boolean;
|
|
75
|
-
/** Customizing the Rendering Menu list */
|
|
76
|
-
renderMenu?: (menu: React.ReactNode) => React.ReactNode;
|
|
77
|
-
/** load node children data asynchronously */
|
|
78
|
-
getChildren?: (activeNode: ItemDataType) => ItemDataType[] | Promise<ItemDataType>;
|
|
79
|
-
}
|
|
80
|
-
export interface TreeProps<T = string | number> extends TreeBaseProps<T, ItemDataType<T>>, TreeDragProps<ItemDataType<T>> {
|
|
81
|
-
/** Tree Data */
|
|
82
|
-
data: ItemDataType<T>[];
|
|
83
|
-
/** Selected value */
|
|
84
|
-
value?: T;
|
|
85
|
-
/** Whether using virtualized list */
|
|
86
|
-
virtualized?: boolean;
|
|
87
|
-
/** Tree data structure Label property name */
|
|
88
|
-
labelKey?: string;
|
|
89
|
-
/** Tree data Structure Value property name */
|
|
90
|
-
valueKey?: string;
|
|
91
|
-
/** Tree data structure Children property name */
|
|
92
|
-
childrenKey?: string;
|
|
1
|
+
import { RsRefForwardingComponent } from '../@types/common';
|
|
2
|
+
import { type TreeViewProps } from './TreeView';
|
|
3
|
+
import type { TreeExtraProps } from './types';
|
|
4
|
+
export interface TreeProps<T = string | number | null> extends TreeViewProps<T>, TreeExtraProps {
|
|
93
5
|
/** Default selected Value */
|
|
94
6
|
defaultValue?: T;
|
|
95
7
|
}
|
package/cjs/Tree/Tree.js
CHANGED
|
@@ -4,37 +4,96 @@
|
|
|
4
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
5
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
6
|
exports.__esModule = true;
|
|
7
|
-
exports.default =
|
|
7
|
+
exports.default = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var
|
|
16
|
-
exports.TREE_NODE_DROP_POSITION = TREE_NODE_DROP_POSITION;
|
|
17
|
-
(function (TREE_NODE_DROP_POSITION) {
|
|
18
|
-
TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER"] = 0] = "DRAG_OVER";
|
|
19
|
-
TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER_TOP"] = 1] = "DRAG_OVER_TOP";
|
|
20
|
-
TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER_BOTTOM"] = 2] = "DRAG_OVER_BOTTOM";
|
|
21
|
-
})(TREE_NODE_DROP_POSITION || (exports.TREE_NODE_DROP_POSITION = TREE_NODE_DROP_POSITION = {}));
|
|
11
|
+
var _TreeView = _interopRequireDefault(require("./TreeView"));
|
|
12
|
+
var _utils = require("../utils");
|
|
13
|
+
var _useFlattenTree = _interopRequireDefault(require("./hooks/useFlattenTree"));
|
|
14
|
+
var _useTreeWithChildren2 = _interopRequireDefault(require("./hooks/useTreeWithChildren"));
|
|
15
|
+
var _useExpandTree2 = _interopRequireDefault(require("./hooks/useExpandTree"));
|
|
16
|
+
var _TreeProvider = require("./TreeProvider");
|
|
22
17
|
/**
|
|
23
18
|
* The `Tree` component is used to display hierarchical data.
|
|
24
19
|
*
|
|
25
20
|
* @see https://rsuitejs.com/components/tree
|
|
26
21
|
*/
|
|
27
22
|
var Tree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
28
|
-
var
|
|
23
|
+
var controlledValue = props.value,
|
|
24
|
+
defaultValue = props.defaultValue,
|
|
25
|
+
_props$childrenKey = props.childrenKey,
|
|
26
|
+
childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
|
|
27
|
+
_props$labelKey = props.labelKey,
|
|
28
|
+
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
29
|
+
_props$valueKey = props.valueKey,
|
|
30
|
+
valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
|
|
31
|
+
data = props.data,
|
|
32
|
+
_props$defaultExpandA = props.defaultExpandAll,
|
|
33
|
+
defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,
|
|
34
|
+
_props$defaultExpandI = props.defaultExpandItemValues,
|
|
35
|
+
defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI,
|
|
36
|
+
controlledExpandItemValues = props.expandItemValues,
|
|
37
|
+
virtualized = props.virtualized,
|
|
38
|
+
renderTreeIcon = props.renderTreeIcon,
|
|
39
|
+
renderTreeNode = props.renderTreeNode,
|
|
40
|
+
getChildren = props.getChildren,
|
|
41
|
+
onChange = props.onChange,
|
|
42
|
+
onExpand = props.onExpand,
|
|
43
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["value", "defaultValue", "childrenKey", "labelKey", "valueKey", "data", "defaultExpandAll", "defaultExpandItemValues", "expandItemValues", "virtualized", "renderTreeIcon", "renderTreeNode", "getChildren", "onChange", "onExpand"]);
|
|
44
|
+
var _useControlled = (0, _utils.useControlled)(controlledValue, defaultValue),
|
|
45
|
+
value = _useControlled[0],
|
|
46
|
+
setValue = _useControlled[1];
|
|
47
|
+
var itemDataKeys = {
|
|
48
|
+
childrenKey: childrenKey,
|
|
49
|
+
labelKey: labelKey,
|
|
50
|
+
valueKey: valueKey
|
|
51
|
+
};
|
|
52
|
+
var _useTreeWithChildren = (0, _useTreeWithChildren2.default)(data, itemDataKeys),
|
|
53
|
+
treeData = _useTreeWithChildren.treeData,
|
|
54
|
+
loadingNodeValues = _useTreeWithChildren.loadingNodeValues,
|
|
55
|
+
appendChild = _useTreeWithChildren.appendChild;
|
|
56
|
+
var flattenedNodes = (0, _useFlattenTree.default)(treeData, (0, _extends2.default)({}, itemDataKeys));
|
|
57
|
+
var _useExpandTree = (0, _useExpandTree2.default)(data, (0, _extends2.default)({}, itemDataKeys, {
|
|
58
|
+
defaultExpandAll: defaultExpandAll,
|
|
59
|
+
defaultExpandItemValues: defaultExpandItemValues,
|
|
60
|
+
controlledExpandItemValues: controlledExpandItemValues,
|
|
61
|
+
onExpand: onExpand,
|
|
62
|
+
getChildren: getChildren,
|
|
63
|
+
appendChild: appendChild
|
|
64
|
+
})),
|
|
65
|
+
expandItemValues = _useExpandTree.expandItemValues,
|
|
66
|
+
handleExpandTreeNode = _useExpandTree.handleExpandTreeNode;
|
|
67
|
+
var handleChange = (0, _utils.useEventCallback)(function (nextValue, event) {
|
|
68
|
+
setValue(nextValue);
|
|
69
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
70
|
+
});
|
|
71
|
+
var treeContext = (0, _react.useMemo)(function () {
|
|
29
72
|
return {
|
|
30
|
-
|
|
73
|
+
props: {
|
|
74
|
+
childrenKey: childrenKey,
|
|
75
|
+
labelKey: labelKey,
|
|
76
|
+
valueKey: valueKey,
|
|
77
|
+
virtualized: virtualized,
|
|
78
|
+
renderTreeIcon: renderTreeIcon,
|
|
79
|
+
renderTreeNode: renderTreeNode
|
|
80
|
+
}
|
|
31
81
|
};
|
|
32
|
-
}, []);
|
|
33
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
34
|
-
value:
|
|
35
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
82
|
+
}, [childrenKey, labelKey, valueKey, virtualized, renderTreeIcon, renderTreeNode]);
|
|
83
|
+
return /*#__PURE__*/_react.default.createElement(_TreeProvider.TreeProvider, {
|
|
84
|
+
value: treeContext
|
|
85
|
+
}, /*#__PURE__*/_react.default.createElement(_TreeView.default, (0, _extends2.default)({
|
|
36
86
|
ref: ref
|
|
37
|
-
},
|
|
87
|
+
}, rest, {
|
|
88
|
+
value: value,
|
|
89
|
+
data: treeData,
|
|
90
|
+
virtualized: virtualized,
|
|
91
|
+
loadingNodeValues: loadingNodeValues,
|
|
92
|
+
flattenedNodes: flattenedNodes,
|
|
93
|
+
expandItemValues: expandItemValues,
|
|
94
|
+
onChange: handleChange,
|
|
95
|
+
onExpand: handleExpandTreeNode
|
|
96
|
+
})));
|
|
38
97
|
});
|
|
39
98
|
Tree.displayName = 'Tree';
|
|
40
99
|
var _default = Tree;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
|
|
3
|
+
import type { TreeNode as TreeNodeData } from './types';
|
|
4
|
+
export declare type DragStatus = 'drag-over' | 'drag-over-top' | 'drag-over-bottom';
|
|
5
|
+
interface TreeDragEventProps {
|
|
6
|
+
/**
|
|
7
|
+
* Callback function called when the drag operation starts.
|
|
8
|
+
*/
|
|
9
|
+
onDragStart?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Callback function called when a dragged item enters the node.
|
|
12
|
+
*/
|
|
13
|
+
onDragEnter?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
|
|
14
|
+
/**
|
|
15
|
+
* Callback function called when a dragged item is over the node.
|
|
16
|
+
*/
|
|
17
|
+
onDragOver?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
|
|
18
|
+
/**
|
|
19
|
+
* Callback function called when a dragged item leaves the node.
|
|
20
|
+
*/
|
|
21
|
+
onDragLeave?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Callback function called when the drag operation ends.
|
|
24
|
+
*/
|
|
25
|
+
onDragEnd?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Callback function called when a dragged item is dropped on the node.
|
|
28
|
+
*/
|
|
29
|
+
onDrop?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Props for the TreeNode component.
|
|
33
|
+
*/
|
|
34
|
+
export interface TreeNodeProps extends WithAsProps, TreeDragEventProps {
|
|
35
|
+
/**
|
|
36
|
+
* The layer of the node in the tree hierarchy.
|
|
37
|
+
*/
|
|
38
|
+
layer: number;
|
|
39
|
+
/**
|
|
40
|
+
* The value of the node.
|
|
41
|
+
*/
|
|
42
|
+
value?: TreeNodeData['value'];
|
|
43
|
+
/**
|
|
44
|
+
* The label of the node.
|
|
45
|
+
*/
|
|
46
|
+
label?: TreeNodeData['label'];
|
|
47
|
+
/**
|
|
48
|
+
* Whether the node should be focused.
|
|
49
|
+
*/
|
|
50
|
+
focus?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Whether the node is in a loading state.
|
|
53
|
+
*/
|
|
54
|
+
loading?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Whether the node is expanded.
|
|
57
|
+
*/
|
|
58
|
+
expanded?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Whether the node is active.
|
|
61
|
+
*/
|
|
62
|
+
active?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Whether the node is visible.
|
|
65
|
+
*/
|
|
66
|
+
visible: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* The data associated with the node.
|
|
69
|
+
*/
|
|
70
|
+
nodeData: any;
|
|
71
|
+
/**
|
|
72
|
+
* Whether the node is disabled.
|
|
73
|
+
*/
|
|
74
|
+
disabled?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Whether the node is draggable.
|
|
77
|
+
*/
|
|
78
|
+
draggable?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Whether the node is being dragged.
|
|
81
|
+
*/
|
|
82
|
+
dragging?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Drag status of the node.
|
|
85
|
+
*/
|
|
86
|
+
dragStatus?: DragStatus;
|
|
87
|
+
/**
|
|
88
|
+
* Whether the node has children.
|
|
89
|
+
*/
|
|
90
|
+
hasChildren?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Callback function called when the node is expanded.
|
|
93
|
+
*/
|
|
94
|
+
onExpand?: (nodeData: TreeNodeData, expanded?: boolean) => void;
|
|
95
|
+
/**
|
|
96
|
+
* Callback function called when the node is selected.
|
|
97
|
+
*/
|
|
98
|
+
onSelect?: (nodeData: TreeNodeData, event: React.SyntheticEvent) => void;
|
|
99
|
+
}
|
|
100
|
+
declare const TreeNode: RsRefForwardingComponent<'div', TreeNodeProps>;
|
|
101
|
+
export default TreeNode;
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
exports.__esModule = true;
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _utils = require("../utils");
|
|
12
|
+
var _utils2 = require("../internals/utils");
|
|
13
|
+
var _hooks = require("../internals/hooks");
|
|
14
|
+
var _TreeNodeToggle = _interopRequireDefault(require("./TreeNodeToggle"));
|
|
15
|
+
var _TreeProvider = require("./TreeProvider");
|
|
16
|
+
var _utils3 = require("./utils");
|
|
17
|
+
/**
|
|
18
|
+
* Props for the TreeNode component.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
var TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
22
|
+
var _props$as = props.as,
|
|
23
|
+
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
24
|
+
label = props.label,
|
|
25
|
+
layer = props.layer,
|
|
26
|
+
active = props.active,
|
|
27
|
+
loading = props.loading,
|
|
28
|
+
nodeData = props.nodeData,
|
|
29
|
+
className = props.className,
|
|
30
|
+
_props$classPrefix = props.classPrefix,
|
|
31
|
+
classPrefix = _props$classPrefix === void 0 ? 'tree-node' : _props$classPrefix,
|
|
32
|
+
disabled = props.disabled,
|
|
33
|
+
_props$visible = props.visible,
|
|
34
|
+
visible = _props$visible === void 0 ? true : _props$visible,
|
|
35
|
+
draggable = props.draggable,
|
|
36
|
+
expanded = props.expanded,
|
|
37
|
+
focus = props.focus,
|
|
38
|
+
style = props.style,
|
|
39
|
+
hasChildren = props.hasChildren,
|
|
40
|
+
dragging = props.dragging,
|
|
41
|
+
dragStatus = props.dragStatus,
|
|
42
|
+
onSelect = props.onSelect,
|
|
43
|
+
onDragStart = props.onDragStart,
|
|
44
|
+
onDragOver = props.onDragOver,
|
|
45
|
+
onDragEnter = props.onDragEnter,
|
|
46
|
+
onDragLeave = props.onDragLeave,
|
|
47
|
+
onDragEnd = props.onDragEnd,
|
|
48
|
+
onDrop = props.onDrop,
|
|
49
|
+
onExpand = props.onExpand,
|
|
50
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "label", "layer", "active", "loading", "nodeData", "className", "classPrefix", "disabled", "visible", "draggable", "expanded", "focus", "style", "hasChildren", "dragging", "dragStatus", "onSelect", "onDragStart", "onDragOver", "onDragEnter", "onDragLeave", "onDragEnd", "onDrop", "onExpand"]);
|
|
51
|
+
var _useCustom = (0, _utils.useCustom)(),
|
|
52
|
+
rtl = _useCustom.rtl;
|
|
53
|
+
var _useTreeContextProps = (0, _TreeProvider.useTreeContextProps)(),
|
|
54
|
+
renderTreeNode = _useTreeContextProps.renderTreeNode,
|
|
55
|
+
virtualized = _useTreeContextProps.virtualized;
|
|
56
|
+
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
57
|
+
prefix = _useClassNames.prefix,
|
|
58
|
+
merge = _useClassNames.merge,
|
|
59
|
+
withClassPrefix = _useClassNames.withClassPrefix;
|
|
60
|
+
var labelStr = (0, _react.useMemo)(function () {
|
|
61
|
+
return (0, _utils2.stringifyReactNode)(label);
|
|
62
|
+
}, [label]);
|
|
63
|
+
var handleExpand = (0, _utils.useEventCallback)(function (event) {
|
|
64
|
+
var _event$nativeEvent, _event$nativeEvent$st;
|
|
65
|
+
// Stop propagation when using custom loading icon
|
|
66
|
+
event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : (_event$nativeEvent$st = _event$nativeEvent.stopImmediatePropagation) === null || _event$nativeEvent$st === void 0 ? void 0 : _event$nativeEvent$st.call(_event$nativeEvent);
|
|
67
|
+
event.stopPropagation();
|
|
68
|
+
onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData, expanded);
|
|
69
|
+
});
|
|
70
|
+
var handleSelect = (0, _utils.useEventCallback)(function (event) {
|
|
71
|
+
if (disabled) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, event);
|
|
75
|
+
});
|
|
76
|
+
var handleDragStart = (0, _utils.useEventCallback)(function (event) {
|
|
77
|
+
onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);
|
|
78
|
+
});
|
|
79
|
+
var handleDragEnter = (0, _utils.useEventCallback)(function (event) {
|
|
80
|
+
event.preventDefault();
|
|
81
|
+
event.stopPropagation();
|
|
82
|
+
onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(nodeData, event);
|
|
83
|
+
});
|
|
84
|
+
var handleDragOver = (0, _utils.useEventCallback)(function (event) {
|
|
85
|
+
event.preventDefault();
|
|
86
|
+
event.stopPropagation();
|
|
87
|
+
onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(nodeData, event);
|
|
88
|
+
});
|
|
89
|
+
var handleDragLeave = (0, _utils.useEventCallback)(function (event) {
|
|
90
|
+
event.stopPropagation();
|
|
91
|
+
onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(nodeData, event);
|
|
92
|
+
});
|
|
93
|
+
var handleDragEnd = (0, _utils.useEventCallback)(function (event) {
|
|
94
|
+
event.stopPropagation();
|
|
95
|
+
onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(nodeData, event);
|
|
96
|
+
});
|
|
97
|
+
var handleDrop = (0, _utils.useEventCallback)(function (event) {
|
|
98
|
+
event.preventDefault();
|
|
99
|
+
event.stopPropagation();
|
|
100
|
+
onDrop === null || onDrop === void 0 ? void 0 : onDrop(nodeData, event);
|
|
101
|
+
});
|
|
102
|
+
var classes = merge(className, withClassPrefix({
|
|
103
|
+
disabled: disabled,
|
|
104
|
+
active: active,
|
|
105
|
+
'text-muted': disabled,
|
|
106
|
+
focus: focus
|
|
107
|
+
}));
|
|
108
|
+
var treeItemRef = (0, _hooks.useFoucsVirtualListItem)(focus);
|
|
109
|
+
var styles = virtualized ? (0, _extends2.default)({}, style, (0, _utils3.indentTreeNode)(rtl, layer - 1)) : style;
|
|
110
|
+
return visible ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
|
|
111
|
+
ref: (0, _utils.mergeRefs)(treeItemRef, ref),
|
|
112
|
+
role: "treeitem",
|
|
113
|
+
tabIndex: -1,
|
|
114
|
+
"aria-expanded": expanded,
|
|
115
|
+
"aria-label": labelStr,
|
|
116
|
+
"aria-level": layer,
|
|
117
|
+
"aria-disabled": disabled,
|
|
118
|
+
"aria-selected": active,
|
|
119
|
+
"data-layer": layer,
|
|
120
|
+
"data-key": (nodeData === null || nodeData === void 0 ? void 0 : nodeData.refKey) || '',
|
|
121
|
+
title: labelStr,
|
|
122
|
+
className: classes,
|
|
123
|
+
style: styles,
|
|
124
|
+
draggable: draggable,
|
|
125
|
+
onClick: handleSelect,
|
|
126
|
+
onDragStart: handleDragStart,
|
|
127
|
+
onDragEnter: handleDragEnter,
|
|
128
|
+
onDragOver: handleDragOver,
|
|
129
|
+
onDragLeave: handleDragLeave,
|
|
130
|
+
onDragEnd: handleDragEnd,
|
|
131
|
+
onDrop: handleDrop
|
|
132
|
+
}), /*#__PURE__*/_react.default.createElement(_TreeNodeToggle.default, {
|
|
133
|
+
"aria-label": (expanded ? 'Collapse' : 'Expand') + (" " + labelStr),
|
|
134
|
+
data: nodeData,
|
|
135
|
+
loading: loading,
|
|
136
|
+
expanded: expanded,
|
|
137
|
+
hasChildren: hasChildren,
|
|
138
|
+
onClick: handleExpand
|
|
139
|
+
}), /*#__PURE__*/_react.default.createElement("span", {
|
|
140
|
+
className: prefix('label', dragStatus, {
|
|
141
|
+
dragging: dragging
|
|
142
|
+
})
|
|
143
|
+
}, renderTreeNode ? renderTreeNode(nodeData) : label)) : null;
|
|
144
|
+
});
|
|
145
|
+
TreeNode.displayName = 'TreeNode';
|
|
146
|
+
var _default = TreeNode;
|
|
147
|
+
exports.default = _default;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface TreeNodeToggleProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
data: any;
|
|
4
|
+
loading?: boolean;
|
|
5
|
+
expanded?: boolean;
|
|
6
|
+
hasChildren?: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare function TreeNodeToggle(props: TreeNodeToggleProps): JSX.Element;
|
|
9
|
+
export default TreeNodeToggle;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _ArrowDown = _interopRequireDefault(require("@rsuite/icons/ArrowDown"));
|
|
11
|
+
var _ArrowRight = _interopRequireDefault(require("@rsuite/icons/ArrowRight"));
|
|
12
|
+
var _ArrowLeft = _interopRequireDefault(require("@rsuite/icons/ArrowLeft"));
|
|
13
|
+
var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
|
|
14
|
+
var _utils = require("../utils");
|
|
15
|
+
var _TreeProvider = require("./TreeProvider");
|
|
16
|
+
function TreeNodeToggle(props) {
|
|
17
|
+
var data = props.data,
|
|
18
|
+
loading = props.loading,
|
|
19
|
+
expanded = props.expanded,
|
|
20
|
+
hasChildren = props.hasChildren,
|
|
21
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["data", "loading", "expanded", "hasChildren"]);
|
|
22
|
+
var _useCustom = (0, _utils.useCustom)(),
|
|
23
|
+
rtl = _useCustom.rtl;
|
|
24
|
+
var _useTreeCustomRendere = (0, _TreeProvider.useTreeCustomRenderer)(),
|
|
25
|
+
renderTreeIcon = _useTreeCustomRendere.renderTreeIcon;
|
|
26
|
+
var _useClassNames = (0, _utils.useClassNames)('tree-node'),
|
|
27
|
+
prefix = _useClassNames.prefix;
|
|
28
|
+
var IconElementType = expanded ? _ArrowDown.default : rtl ? _ArrowLeft.default : _ArrowRight.default;
|
|
29
|
+
var icon = /*#__PURE__*/_react.default.createElement(IconElementType, {
|
|
30
|
+
className: prefix('toggle-icon')
|
|
31
|
+
});
|
|
32
|
+
if (loading) {
|
|
33
|
+
icon = /*#__PURE__*/_react.default.createElement("div", {
|
|
34
|
+
className: prefix('loading-icon')
|
|
35
|
+
}, /*#__PURE__*/_react.default.createElement(_Spinner.default, {
|
|
36
|
+
spin: true
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
if (data !== undefined && typeof renderTreeIcon === 'function') {
|
|
40
|
+
var customIcon = renderTreeIcon(data, expanded);
|
|
41
|
+
icon = customIcon !== null ? /*#__PURE__*/_react.default.createElement("div", {
|
|
42
|
+
className: prefix('custom-icon')
|
|
43
|
+
}, customIcon) : icon;
|
|
44
|
+
}
|
|
45
|
+
return hasChildren ? /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
|
|
46
|
+
tabIndex: -1,
|
|
47
|
+
role: "button",
|
|
48
|
+
"aria-busy": loading ? true : undefined,
|
|
49
|
+
"data-ref": data.refKey,
|
|
50
|
+
className: prefix('toggle')
|
|
51
|
+
}, rest), icon) : /*#__PURE__*/_react.default.createElement("div", {
|
|
52
|
+
className: prefix('toggle-placeholder')
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
var _default = TreeNodeToggle;
|
|
56
|
+
exports.default = _default;
|