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
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { getSafeRegExpString } from '../../internals/utils';
|
|
3
|
+
export function highlightText(text, props) {
|
|
4
|
+
var query = props.query,
|
|
5
|
+
renderMark = props.renderMark;
|
|
6
|
+
if (!query || !text) {
|
|
7
|
+
return text;
|
|
8
|
+
}
|
|
9
|
+
var queries = Array.isArray(query) ? query : [query];
|
|
10
|
+
var regx = new RegExp(queries.map(function (q) {
|
|
11
|
+
return getSafeRegExpString(q);
|
|
12
|
+
}).join('|'), 'ig');
|
|
13
|
+
var texts = [];
|
|
14
|
+
var strArr = text.split(regx);
|
|
15
|
+
var highStrArr = text.match(regx);
|
|
16
|
+
for (var i = 0; i < strArr.length; i++) {
|
|
17
|
+
if (strArr[i]) {
|
|
18
|
+
texts.push(strArr[i]);
|
|
19
|
+
}
|
|
20
|
+
if (highStrArr !== null && highStrArr !== void 0 && highStrArr[i]) {
|
|
21
|
+
texts.push(renderMark(highStrArr[i], i));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return texts;
|
|
25
|
+
}
|
|
@@ -5,7 +5,6 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
5
5
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
6
6
|
import React, { useEffect } from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
|
-
import isUndefined from 'lodash/isUndefined';
|
|
9
8
|
import isNil from 'lodash/isNil';
|
|
10
9
|
import isFunction from 'lodash/isFunction';
|
|
11
10
|
import remove from 'lodash/remove';
|
|
@@ -14,7 +13,7 @@ import isArray from 'lodash/isArray';
|
|
|
14
13
|
import omit from 'lodash/omit';
|
|
15
14
|
import pick from 'lodash/pick';
|
|
16
15
|
import shallowEqual from '../utils/shallowEqual';
|
|
17
|
-
import { filterNodesOfTree } from '../utils
|
|
16
|
+
import { filterNodesOfTree } from '../internals/Tree/utils';
|
|
18
17
|
import Plaintext from '../internals/Plaintext';
|
|
19
18
|
import { createChainedFunction, tplTransform, useClassNames, useCustom, useControlled, useEventCallback, mergeRefs, isOneOf, KEY_VALUES } from '../utils';
|
|
20
19
|
import { oneOf } from '../internals/propTypes';
|
|
@@ -553,11 +552,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
553
552
|
activeItemValues: multi ? value : [value],
|
|
554
553
|
focusItemValue: focusItemValue,
|
|
555
554
|
maxHeight: menuMaxHeight,
|
|
556
|
-
data: items
|
|
557
|
-
|
|
558
|
-
// `group` is redundant so long as `groupBy` exists
|
|
559
|
-
,
|
|
560
|
-
group: !isUndefined(groupBy),
|
|
555
|
+
data: items,
|
|
556
|
+
query: searchKeyword,
|
|
561
557
|
groupBy: groupBy,
|
|
562
558
|
onSelect: multi ? handleCheckTag : handleSelectItem,
|
|
563
559
|
renderMenuGroup: renderMenuGroup,
|
|
@@ -3,11 +3,10 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { useClassNames, useCustom } from '../utils';
|
|
6
|
-
import { getNodeParents } from '../utils/treeUtils';
|
|
7
6
|
import SearchBox from '../internals/SearchBox';
|
|
8
7
|
import Checkbox from '../Checkbox';
|
|
9
|
-
import
|
|
10
|
-
import {
|
|
8
|
+
import Highlight from '../Highlight';
|
|
9
|
+
import { isSomeChildChecked, getNodeParents } from './utils';
|
|
11
10
|
function SearchView(props) {
|
|
12
11
|
var _props$as = props.as,
|
|
13
12
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
@@ -37,17 +36,10 @@ function SearchView(props) {
|
|
|
37
36
|
var renderSearchRow = function renderSearchRow(item, key) {
|
|
38
37
|
var _extends2;
|
|
39
38
|
var nodes = getNodeParents(item);
|
|
40
|
-
var label =
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
render: function render(patch, index) {
|
|
45
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
46
|
-
key: index,
|
|
47
|
-
className: prefix('match')
|
|
48
|
-
}, patch);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
39
|
+
var label = /*#__PURE__*/React.createElement(Highlight, {
|
|
40
|
+
as: "span",
|
|
41
|
+
query: searchKeyword
|
|
42
|
+
}, item[labelKey]);
|
|
51
43
|
nodes.push(_extends({}, item, (_extends2 = {}, _extends2[labelKey] = label, _extends2)));
|
|
52
44
|
var active = value.some(function (value) {
|
|
53
45
|
if (cascade) {
|
|
@@ -3,7 +3,21 @@ import { useState, useEffect, useCallback } from 'react';
|
|
|
3
3
|
import uniq from 'lodash/uniq';
|
|
4
4
|
import remove from 'lodash/remove';
|
|
5
5
|
import { useEventCallback } from '../../utils';
|
|
6
|
-
import {
|
|
6
|
+
import { removeAllChildrenValue, getOtherItemValuesByUnselectChild } from '../utils';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Get all parents of a node
|
|
10
|
+
* @param node
|
|
11
|
+
*/
|
|
12
|
+
var getParents = function getParents(node) {
|
|
13
|
+
var parents = [];
|
|
14
|
+
if (!node.parent) {
|
|
15
|
+
return parents;
|
|
16
|
+
}
|
|
17
|
+
parents.push(node.parent);
|
|
18
|
+
parents = parents.concat(getParents(node.parent));
|
|
19
|
+
return parents;
|
|
20
|
+
};
|
|
7
21
|
|
|
8
22
|
/**
|
|
9
23
|
* A hook that converts the value into a cascading value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useState, useCallback, useEffect } from 'react';
|
|
3
|
-
import { UNSAFE_flattenTree } from '../../utils
|
|
3
|
+
import { UNSAFE_flattenTree } from '../../Tree/utils';
|
|
4
4
|
import { attachParent } from '../../utils/attachParent';
|
|
5
5
|
/**
|
|
6
6
|
* A hook to flatten tree structure data
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { useEventCallback } from '../../utils';
|
|
4
|
+
import { getSafeRegExpString } from '../../internals/utils';
|
|
4
5
|
function useSearch(props) {
|
|
5
6
|
var _useState = useState(''),
|
|
6
7
|
searchKeyword = _useState[0],
|
|
@@ -7,14 +7,14 @@ interface ItemKeys {
|
|
|
7
7
|
labelKey: string;
|
|
8
8
|
childrenKey: string;
|
|
9
9
|
}
|
|
10
|
-
declare type MayHasParent<T extends Record<string, unknown>> = T & {
|
|
10
|
+
export declare type MayHasParent<T extends Record<string, unknown>> = T & {
|
|
11
11
|
parent?: MayHasParent<T>;
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
* @param node
|
|
14
|
+
* get all ancestor nodes of given node
|
|
15
|
+
* @param {*} node
|
|
16
16
|
*/
|
|
17
|
-
export declare
|
|
17
|
+
export declare function getNodeParents(node: any, parentKey?: string, valueKey?: string): any[];
|
|
18
18
|
/**
|
|
19
19
|
* Check if any child nodes are selected.
|
|
20
20
|
* @param node
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import remove from 'lodash/remove';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* @param node
|
|
4
|
+
* get all ancestor nodes of given node
|
|
5
|
+
* @param {*} node
|
|
6
6
|
*/
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return parents;
|
|
7
|
+
export function getNodeParents(node, parentKey, valueKey) {
|
|
8
|
+
if (parentKey === void 0) {
|
|
9
|
+
parentKey = 'parent';
|
|
11
10
|
}
|
|
12
|
-
parents
|
|
13
|
-
|
|
11
|
+
var parents = [];
|
|
12
|
+
var traverse = function traverse(node) {
|
|
13
|
+
if (node !== null && node !== void 0 && node[parentKey]) {
|
|
14
|
+
traverse(node[parentKey]);
|
|
15
|
+
if (valueKey) {
|
|
16
|
+
parents.push(node[parentKey][valueKey]);
|
|
17
|
+
} else {
|
|
18
|
+
parents.push(node[parentKey]);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
traverse(node);
|
|
14
23
|
return parents;
|
|
15
|
-
}
|
|
24
|
+
}
|
|
16
25
|
|
|
17
26
|
/**
|
|
18
27
|
* Check if any child nodes are selected.
|
|
@@ -7,7 +7,7 @@ import pick from 'lodash/pick';
|
|
|
7
7
|
import omit from 'lodash/omit';
|
|
8
8
|
import isFunction from 'lodash/isFunction';
|
|
9
9
|
import isNil from 'lodash/isNil';
|
|
10
|
-
import { findNodeOfTree } from '../utils
|
|
10
|
+
import { findNodeOfTree } from '../internals/Tree/utils';
|
|
11
11
|
import { getColumnsAndPaths } from '../CascadeTree/utils';
|
|
12
12
|
import { createChainedFunction, mergeRefs, useClassNames, useCustom, useControlled, useEventCallback } from '../utils';
|
|
13
13
|
import { PickerToggle, PickerPopup, SelectedElement, PickerToggleTrigger, usePickerClassName, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../internals/Picker';
|
|
@@ -6,7 +6,6 @@ var _templateObject;
|
|
|
6
6
|
import React, { useState } from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import pick from 'lodash/pick';
|
|
9
|
-
import isUndefined from 'lodash/isUndefined';
|
|
10
9
|
import isNil from 'lodash/isNil';
|
|
11
10
|
import isFunction from 'lodash/isFunction';
|
|
12
11
|
import omit from 'lodash/omit';
|
|
@@ -230,11 +229,8 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
230
229
|
listItemAs: ListItem,
|
|
231
230
|
activeItemValues: [value],
|
|
232
231
|
focusItemValue: focusItemValue,
|
|
233
|
-
data: items
|
|
234
|
-
|
|
235
|
-
// `group` is redundant so long as `groupBy` exists
|
|
236
|
-
,
|
|
237
|
-
group: !isUndefined(groupBy),
|
|
232
|
+
data: items,
|
|
233
|
+
query: searchKeyword,
|
|
238
234
|
groupBy: groupBy,
|
|
239
235
|
onSelect: handleItemSelect,
|
|
240
236
|
onGroupTitleClick: onGroupTitleClick,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { useClassNames } from '../utils';
|
|
4
|
+
var IndentLine = function IndentLine() {
|
|
5
|
+
var _useClassNames = useClassNames('tree'),
|
|
6
|
+
prefix = _useClassNames.prefix;
|
|
7
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
8
|
+
className: prefix('indent-line'),
|
|
9
|
+
"data-testid": "indent-line"
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
export default IndentLine;
|
package/esm/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/esm/Tree/Tree.js
CHANGED
|
@@ -1,33 +1,93 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
4
|
import React, { useMemo } from 'react';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
(function (TREE_NODE_DROP_POSITION) {
|
|
11
|
-
TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER"] = 0] = "DRAG_OVER";
|
|
12
|
-
TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER_TOP"] = 1] = "DRAG_OVER_TOP";
|
|
13
|
-
TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER_BOTTOM"] = 2] = "DRAG_OVER_BOTTOM";
|
|
14
|
-
})(TREE_NODE_DROP_POSITION || (TREE_NODE_DROP_POSITION = {}));
|
|
5
|
+
import TreeView from './TreeView';
|
|
6
|
+
import { useControlled, useEventCallback } from '../utils';
|
|
7
|
+
import useFlattenTree from './hooks/useFlattenTree';
|
|
8
|
+
import useTreeWithChildren from './hooks/useTreeWithChildren';
|
|
9
|
+
import useExpandTree from './hooks/useExpandTree';
|
|
10
|
+
import { TreeProvider } from './TreeProvider';
|
|
15
11
|
/**
|
|
16
12
|
* The `Tree` component is used to display hierarchical data.
|
|
17
13
|
*
|
|
18
14
|
* @see https://rsuitejs.com/components/tree
|
|
19
15
|
*/
|
|
20
16
|
var Tree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
21
|
-
var
|
|
17
|
+
var controlledValue = props.value,
|
|
18
|
+
defaultValue = props.defaultValue,
|
|
19
|
+
_props$childrenKey = props.childrenKey,
|
|
20
|
+
childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
|
|
21
|
+
_props$labelKey = props.labelKey,
|
|
22
|
+
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
23
|
+
_props$valueKey = props.valueKey,
|
|
24
|
+
valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
|
|
25
|
+
data = props.data,
|
|
26
|
+
_props$defaultExpandA = props.defaultExpandAll,
|
|
27
|
+
defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,
|
|
28
|
+
_props$defaultExpandI = props.defaultExpandItemValues,
|
|
29
|
+
defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI,
|
|
30
|
+
controlledExpandItemValues = props.expandItemValues,
|
|
31
|
+
virtualized = props.virtualized,
|
|
32
|
+
renderTreeIcon = props.renderTreeIcon,
|
|
33
|
+
renderTreeNode = props.renderTreeNode,
|
|
34
|
+
getChildren = props.getChildren,
|
|
35
|
+
onChange = props.onChange,
|
|
36
|
+
onExpand = props.onExpand,
|
|
37
|
+
rest = _objectWithoutPropertiesLoose(props, ["value", "defaultValue", "childrenKey", "labelKey", "valueKey", "data", "defaultExpandAll", "defaultExpandItemValues", "expandItemValues", "virtualized", "renderTreeIcon", "renderTreeNode", "getChildren", "onChange", "onExpand"]);
|
|
38
|
+
var _useControlled = useControlled(controlledValue, defaultValue),
|
|
39
|
+
value = _useControlled[0],
|
|
40
|
+
setValue = _useControlled[1];
|
|
41
|
+
var itemDataKeys = {
|
|
42
|
+
childrenKey: childrenKey,
|
|
43
|
+
labelKey: labelKey,
|
|
44
|
+
valueKey: valueKey
|
|
45
|
+
};
|
|
46
|
+
var _useTreeWithChildren = useTreeWithChildren(data, itemDataKeys),
|
|
47
|
+
treeData = _useTreeWithChildren.treeData,
|
|
48
|
+
loadingNodeValues = _useTreeWithChildren.loadingNodeValues,
|
|
49
|
+
appendChild = _useTreeWithChildren.appendChild;
|
|
50
|
+
var flattenedNodes = useFlattenTree(treeData, _extends({}, itemDataKeys));
|
|
51
|
+
var _useExpandTree = useExpandTree(data, _extends({}, itemDataKeys, {
|
|
52
|
+
defaultExpandAll: defaultExpandAll,
|
|
53
|
+
defaultExpandItemValues: defaultExpandItemValues,
|
|
54
|
+
controlledExpandItemValues: controlledExpandItemValues,
|
|
55
|
+
onExpand: onExpand,
|
|
56
|
+
getChildren: getChildren,
|
|
57
|
+
appendChild: appendChild
|
|
58
|
+
})),
|
|
59
|
+
expandItemValues = _useExpandTree.expandItemValues,
|
|
60
|
+
handleExpandTreeNode = _useExpandTree.handleExpandTreeNode;
|
|
61
|
+
var handleChange = useEventCallback(function (nextValue, event) {
|
|
62
|
+
setValue(nextValue);
|
|
63
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
64
|
+
});
|
|
65
|
+
var treeContext = useMemo(function () {
|
|
22
66
|
return {
|
|
23
|
-
|
|
67
|
+
props: {
|
|
68
|
+
childrenKey: childrenKey,
|
|
69
|
+
labelKey: labelKey,
|
|
70
|
+
valueKey: valueKey,
|
|
71
|
+
virtualized: virtualized,
|
|
72
|
+
renderTreeIcon: renderTreeIcon,
|
|
73
|
+
renderTreeNode: renderTreeNode
|
|
74
|
+
}
|
|
24
75
|
};
|
|
25
|
-
}, []);
|
|
26
|
-
return /*#__PURE__*/React.createElement(
|
|
27
|
-
value:
|
|
28
|
-
}, /*#__PURE__*/React.createElement(
|
|
76
|
+
}, [childrenKey, labelKey, valueKey, virtualized, renderTreeIcon, renderTreeNode]);
|
|
77
|
+
return /*#__PURE__*/React.createElement(TreeProvider, {
|
|
78
|
+
value: treeContext
|
|
79
|
+
}, /*#__PURE__*/React.createElement(TreeView, _extends({
|
|
29
80
|
ref: ref
|
|
30
|
-
},
|
|
81
|
+
}, rest, {
|
|
82
|
+
value: value,
|
|
83
|
+
data: treeData,
|
|
84
|
+
virtualized: virtualized,
|
|
85
|
+
loadingNodeValues: loadingNodeValues,
|
|
86
|
+
flattenedNodes: flattenedNodes,
|
|
87
|
+
expandItemValues: expandItemValues,
|
|
88
|
+
onChange: handleChange,
|
|
89
|
+
onExpand: handleExpandTreeNode
|
|
90
|
+
})));
|
|
31
91
|
});
|
|
32
92
|
Tree.displayName = 'Tree';
|
|
33
93
|
export 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;
|