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,83 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
|
+
exports.__esModule = true;
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _utils = require("../../utils");
|
|
10
|
+
var _hooks = require("../../internals/Picker/hooks");
|
|
11
|
+
var _TreeProvider = require("../TreeProvider");
|
|
12
|
+
var _Highlight = _interopRequireDefault(require("../../Highlight"));
|
|
13
|
+
function useTreeNodeProps(props) {
|
|
14
|
+
var _useItemDataKeys = (0, _TreeProvider.useItemDataKeys)(),
|
|
15
|
+
valueKey = _useItemDataKeys.valueKey,
|
|
16
|
+
labelKey = _useItemDataKeys.labelKey,
|
|
17
|
+
childrenKey = _useItemDataKeys.childrenKey;
|
|
18
|
+
var _useCombobox = (0, _hooks.useCombobox)(),
|
|
19
|
+
id = _useCombobox.id;
|
|
20
|
+
var value = props.value,
|
|
21
|
+
disabledItemValues = props.disabledItemValues,
|
|
22
|
+
loadingNodeValues = props.loadingNodeValues,
|
|
23
|
+
focusItemValue = props.focusItemValue,
|
|
24
|
+
keyword = props.keyword,
|
|
25
|
+
dragNode = props.dragNode,
|
|
26
|
+
dragOverNodeKey = props.dragOverNodeKey,
|
|
27
|
+
dropNodePosition = props.dropNodePosition;
|
|
28
|
+
return (0, _react.useCallback)(function (nodeData, layer, index) {
|
|
29
|
+
var DRAG_OVER = _utils.TREE_NODE_DROP_POSITION.DRAG_OVER,
|
|
30
|
+
DRAG_OVER_TOP = _utils.TREE_NODE_DROP_POSITION.DRAG_OVER_TOP,
|
|
31
|
+
DRAG_OVER_BOTTOM = _utils.TREE_NODE_DROP_POSITION.DRAG_OVER_BOTTOM;
|
|
32
|
+
var visible = nodeData.visible;
|
|
33
|
+
var draggingNode = dragNode !== null && dragNode !== void 0 ? dragNode : {};
|
|
34
|
+
var nodeValue = nodeData[valueKey];
|
|
35
|
+
var nodeLabel = nodeData[labelKey];
|
|
36
|
+
var children = nodeData[childrenKey];
|
|
37
|
+
var label = keyword ? /*#__PURE__*/_react.default.createElement(_Highlight.default, {
|
|
38
|
+
as: "span",
|
|
39
|
+
query: keyword
|
|
40
|
+
}, nodeLabel) : nodeLabel;
|
|
41
|
+
var dragging = (0, _utils.shallowEqual)(nodeValue, draggingNode[valueKey]);
|
|
42
|
+
var dragStatus;
|
|
43
|
+
if ((0, _utils.shallowEqual)(nodeValue, dragOverNodeKey)) {
|
|
44
|
+
switch (dropNodePosition) {
|
|
45
|
+
case DRAG_OVER:
|
|
46
|
+
dragStatus = 'drag-over';
|
|
47
|
+
break;
|
|
48
|
+
case DRAG_OVER_TOP:
|
|
49
|
+
dragStatus = 'drag-over-top';
|
|
50
|
+
break;
|
|
51
|
+
case DRAG_OVER_BOTTOM:
|
|
52
|
+
dragStatus = 'drag-over-bottom';
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
var disabled = disabledItemValues.some(function (disabledItem) {
|
|
57
|
+
return (0, _utils.shallowEqual)(disabledItem, nodeValue);
|
|
58
|
+
});
|
|
59
|
+
var loading = loadingNodeValues.some(function (item) {
|
|
60
|
+
return (0, _utils.shallowEqual)(item, nodeValue);
|
|
61
|
+
});
|
|
62
|
+
var active = (0, _utils.shallowEqual)(nodeValue, value);
|
|
63
|
+
var focus = (0, _utils.shallowEqual)(nodeValue, focusItemValue);
|
|
64
|
+
return {
|
|
65
|
+
id: id ? id + "-opt-" + nodeValue : undefined,
|
|
66
|
+
value: nodeValue,
|
|
67
|
+
label: label,
|
|
68
|
+
index: index,
|
|
69
|
+
layer: layer,
|
|
70
|
+
loading: loading,
|
|
71
|
+
active: active,
|
|
72
|
+
focus: focus,
|
|
73
|
+
visible: visible,
|
|
74
|
+
children: children,
|
|
75
|
+
nodeData: nodeData,
|
|
76
|
+
disabled: disabled,
|
|
77
|
+
dragging: dragging,
|
|
78
|
+
dragStatus: dragStatus
|
|
79
|
+
};
|
|
80
|
+
}, [childrenKey, disabledItemValues, dragNode, dragOverNodeKey, dropNodePosition, focusItemValue, id, keyword, labelKey, loadingNodeValues, value, valueKey]);
|
|
81
|
+
}
|
|
82
|
+
var _default = useTreeNodeProps;
|
|
83
|
+
exports.default = _default;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = useTreeNodeRefs;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _isNil = _interopRequireDefault(require("lodash/isNil"));
|
|
9
|
+
/**
|
|
10
|
+
* Custom hook that manages references to tree nodes. */
|
|
11
|
+
function useTreeNodeRefs() {
|
|
12
|
+
var treeNodeRefs = (0, _react.useRef)({});
|
|
13
|
+
var saveTreeNodeRef = function saveTreeNodeRef(ref, refKey) {
|
|
14
|
+
if (!(0, _isNil.default)(refKey)) {
|
|
15
|
+
treeNodeRefs.current[refKey] = ref;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
treeNodesRefs: treeNodeRefs.current,
|
|
20
|
+
saveTreeNodeRef: saveTreeNodeRef
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface TreeSearchProps<T> {
|
|
3
|
+
searchKeyword?: string;
|
|
4
|
+
data: T[];
|
|
5
|
+
searchBy?: (keyword: any, label: any, item: any) => boolean;
|
|
6
|
+
callback?: (keyword: string, data: T[], event: React.SyntheticEvent) => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Custom hook for searching and filtering data in a tree structure.
|
|
10
|
+
*/
|
|
11
|
+
export default function useTreeSearch<T>(props: TreeSearchProps<T>): {
|
|
12
|
+
keyword: string;
|
|
13
|
+
filteredData: T[];
|
|
14
|
+
setFilteredData: (data: T[], searchKeyword: string) => void;
|
|
15
|
+
setSearchKeyword: React.Dispatch<React.SetStateAction<string>>;
|
|
16
|
+
handleSearch: (searchKeyword: string, event?: React.ChangeEvent) => void;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = useTreeSearch;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _isArray = _interopRequireDefault(require("lodash/isArray"));
|
|
9
|
+
var _Picker = require("../../internals/Picker");
|
|
10
|
+
var _TreeProvider = require("../TreeProvider");
|
|
11
|
+
/**
|
|
12
|
+
* Custom hook for searching and filtering data in a tree structure.
|
|
13
|
+
*/
|
|
14
|
+
function useTreeSearch(props) {
|
|
15
|
+
var _useItemDataKeys = (0, _TreeProvider.useItemDataKeys)(),
|
|
16
|
+
labelKey = _useItemDataKeys.labelKey,
|
|
17
|
+
childrenKey = _useItemDataKeys.childrenKey;
|
|
18
|
+
var searchKeyword = props.searchKeyword,
|
|
19
|
+
data = props.data,
|
|
20
|
+
searchBy = props.searchBy,
|
|
21
|
+
callback = props.callback;
|
|
22
|
+
var filterVisibleData = (0, _react.useCallback)(function (data, searchKeyword) {
|
|
23
|
+
var setVisible = function setVisible(nodes) {
|
|
24
|
+
return nodes.forEach(function (item) {
|
|
25
|
+
item.visible = searchBy ? searchBy(searchKeyword, item[labelKey], item) : (0, _Picker.shouldDisplay)(item[labelKey], searchKeyword);
|
|
26
|
+
if ((0, _isArray.default)(item[childrenKey])) {
|
|
27
|
+
filterVisibleData(item[childrenKey], searchKeyword);
|
|
28
|
+
item[childrenKey].forEach(function (child) {
|
|
29
|
+
if (child.visible) {
|
|
30
|
+
item.visible = child.visible;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
setVisible(data);
|
|
37
|
+
return data;
|
|
38
|
+
}, [childrenKey, labelKey, searchBy]);
|
|
39
|
+
|
|
40
|
+
// Use search keywords to filter options.
|
|
41
|
+
var _useState = (0, _react.useState)(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : ''),
|
|
42
|
+
keyword = _useState[0],
|
|
43
|
+
setSearchKeyword = _useState[1];
|
|
44
|
+
var _useState2 = (0, _react.useState)(function () {
|
|
45
|
+
return filterVisibleData(data, keyword);
|
|
46
|
+
}),
|
|
47
|
+
filteredData = _useState2[0],
|
|
48
|
+
setFilteredData = _useState2[1];
|
|
49
|
+
var handleSearch = function handleSearch(searchKeyword, event) {
|
|
50
|
+
var filteredData = filterVisibleData(data, searchKeyword);
|
|
51
|
+
setFilteredData(filteredData);
|
|
52
|
+
setSearchKeyword(searchKeyword);
|
|
53
|
+
if (event) {
|
|
54
|
+
callback === null || callback === void 0 ? void 0 : callback(searchKeyword, filteredData, event);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
(0, _react.useEffect)(function () {
|
|
58
|
+
handleSearch(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');
|
|
59
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
60
|
+
}, [searchKeyword]);
|
|
61
|
+
(0, _react.useEffect)(function () {
|
|
62
|
+
setSearchKeyword(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');
|
|
63
|
+
}, [searchKeyword, setSearchKeyword]);
|
|
64
|
+
var setVisibleData = (0, _react.useCallback)(function (data, searchKeyword) {
|
|
65
|
+
setFilteredData(filterVisibleData(data, searchKeyword));
|
|
66
|
+
}, [filterVisibleData]);
|
|
67
|
+
return {
|
|
68
|
+
keyword: keyword,
|
|
69
|
+
filteredData: filteredData,
|
|
70
|
+
setFilteredData: setVisibleData,
|
|
71
|
+
setSearchKeyword: setSearchKeyword,
|
|
72
|
+
handleSearch: handleSearch
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TreeNode } from '../types';
|
|
2
|
+
interface UseTreeWithChildrenOptions {
|
|
3
|
+
valueKey: string;
|
|
4
|
+
childrenKey: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Custom hook that provides functionality for managing a tree structure with children.
|
|
8
|
+
*/
|
|
9
|
+
export default function useTreeWithChildren<T extends TreeNode>(data: T[], options: UseTreeWithChildrenOptions): {
|
|
10
|
+
treeData: T[];
|
|
11
|
+
loadingNodeValues: never[];
|
|
12
|
+
appendChild: (node: any, getChildren: any) => void;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.default = useTreeWithChildren;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _shallowEqual = _interopRequireDefault(require("../../utils/shallowEqual"));
|
|
9
|
+
var _utils = require("../../internals/Tree/utils");
|
|
10
|
+
/**
|
|
11
|
+
* Custom hook that provides functionality for managing a tree structure with children.
|
|
12
|
+
*/
|
|
13
|
+
function useTreeWithChildren(data, options) {
|
|
14
|
+
var valueKey = options.valueKey,
|
|
15
|
+
childrenKey = options.childrenKey;
|
|
16
|
+
var _useState = (0, _react.useState)([]),
|
|
17
|
+
loadingNodeValues = _useState[0],
|
|
18
|
+
setLoadingNodeValues = _useState[1];
|
|
19
|
+
var _useState2 = (0, _react.useState)(data),
|
|
20
|
+
treeData = _useState2[0],
|
|
21
|
+
setTreeData = _useState2[1];
|
|
22
|
+
(0, _react.useEffect)(function () {
|
|
23
|
+
setTreeData(data);
|
|
24
|
+
}, [data]);
|
|
25
|
+
var concatChildren = (0, _react.useCallback)(function (treeNode, children) {
|
|
26
|
+
var value = treeNode[valueKey];
|
|
27
|
+
treeNode = (0, _utils.findNodeOfTree)(data, function (item) {
|
|
28
|
+
return value === item[valueKey];
|
|
29
|
+
});
|
|
30
|
+
treeNode[childrenKey] = children;
|
|
31
|
+
var newData = data.concat([]);
|
|
32
|
+
setTreeData(newData);
|
|
33
|
+
return newData;
|
|
34
|
+
}, [data, valueKey, childrenKey]);
|
|
35
|
+
var appendChild = (0, _react.useCallback)(function (node, getChildren) {
|
|
36
|
+
setLoadingNodeValues(function (prev) {
|
|
37
|
+
return prev.concat(node[valueKey]);
|
|
38
|
+
});
|
|
39
|
+
var children = getChildren(node);
|
|
40
|
+
if (children instanceof Promise) {
|
|
41
|
+
children.then(function (res) {
|
|
42
|
+
var newData = concatChildren(node, res);
|
|
43
|
+
setTreeData(newData);
|
|
44
|
+
setLoadingNodeValues(function (prev) {
|
|
45
|
+
return prev.filter(function (item) {
|
|
46
|
+
return !(0, _shallowEqual.default)(item, node[valueKey]);
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
} else {
|
|
51
|
+
setTreeData(concatChildren(node, children));
|
|
52
|
+
setLoadingNodeValues(function (prev) {
|
|
53
|
+
return prev.filter(function (item) {
|
|
54
|
+
return !(0, _shallowEqual.default)(item, node[valueKey]);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}, [concatChildren, valueKey]);
|
|
59
|
+
return {
|
|
60
|
+
treeData: treeData,
|
|
61
|
+
loadingNodeValues: loadingNodeValues,
|
|
62
|
+
appendChild: appendChild
|
|
63
|
+
};
|
|
64
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TreeNode, TreeNodeMap } from '../types';
|
|
2
|
+
declare function useVirtualizedTreeData(nodes: TreeNodeMap, data: TreeNode[], options: {
|
|
3
|
+
expandItemValues: (string | number)[];
|
|
4
|
+
cascade?: boolean;
|
|
5
|
+
searchKeyword?: string;
|
|
6
|
+
}): () => TreeNode[];
|
|
7
|
+
export default useVirtualizedTreeData;
|
|
@@ -0,0 +1,82 @@
|
|
|
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 _react = require("react");
|
|
9
|
+
var _intersection = _interopRequireDefault(require("lodash/intersection"));
|
|
10
|
+
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
11
|
+
var _getNodeParentKeys = require("../utils/getNodeParentKeys");
|
|
12
|
+
var _isSearching = require("../utils/isSearching");
|
|
13
|
+
var _flattenTree = require("../utils/flattenTree");
|
|
14
|
+
var _utils = require("../../CheckTree/utils");
|
|
15
|
+
var _TreeProvider = require("../TreeProvider");
|
|
16
|
+
/**
|
|
17
|
+
* Determines whether a node should be shown based on the expanded state of its parent nodes.
|
|
18
|
+
*/
|
|
19
|
+
function shouldShowNodeByParentExpanded(expandItemValues, parentKeys) {
|
|
20
|
+
if (expandItemValues === void 0) {
|
|
21
|
+
expandItemValues = [];
|
|
22
|
+
}
|
|
23
|
+
if (parentKeys === void 0) {
|
|
24
|
+
parentKeys = [];
|
|
25
|
+
}
|
|
26
|
+
var intersectionKeys = (0, _intersection.default)(expandItemValues, parentKeys);
|
|
27
|
+
if (intersectionKeys.length === parentKeys.length) {
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
function useVirtualizedTreeData(nodes, data, options) {
|
|
33
|
+
var _useItemDataKeys = (0, _TreeProvider.useItemDataKeys)(),
|
|
34
|
+
childrenKey = _useItemDataKeys.childrenKey,
|
|
35
|
+
valueKey = _useItemDataKeys.valueKey;
|
|
36
|
+
/**
|
|
37
|
+
* Formats the virtualized tree data.
|
|
38
|
+
*/
|
|
39
|
+
return (0, _react.useCallback)(function () {
|
|
40
|
+
var cascade = options.cascade,
|
|
41
|
+
searchKeyword = options.searchKeyword,
|
|
42
|
+
expandItemValues = options.expandItemValues;
|
|
43
|
+
return (0, _flattenTree.UNSAFE_flattenTree)(data, childrenKey, function (node) {
|
|
44
|
+
var formatted = {};
|
|
45
|
+
var curNode = nodes === null || nodes === void 0 ? void 0 : nodes[node.refKey];
|
|
46
|
+
var parentKeys = (0, _getNodeParentKeys.getNodeParentKeys)(nodes, curNode, valueKey);
|
|
47
|
+
/**
|
|
48
|
+
* When using virtualized,
|
|
49
|
+
* if the parent node is collapsed, the child nodes should be hidden
|
|
50
|
+
* avoid component height calculation errors
|
|
51
|
+
*/
|
|
52
|
+
var visible = curNode !== null && curNode !== void 0 && curNode.parent ? shouldShowNodeByParentExpanded(expandItemValues, parentKeys) : true;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* when searching, every node default expand
|
|
56
|
+
* the node's visible should follow the original state
|
|
57
|
+
*/
|
|
58
|
+
if ((0, _isSearching.isSearching)(searchKeyword)) {
|
|
59
|
+
visible = node.visible;
|
|
60
|
+
}
|
|
61
|
+
if (curNode) {
|
|
62
|
+
var checkState = !(0, _isUndefined.default)(cascade) ? (0, _utils.getNodeCheckState)(curNode, {
|
|
63
|
+
cascade: cascade,
|
|
64
|
+
nodes: nodes,
|
|
65
|
+
childrenKey: childrenKey
|
|
66
|
+
}) : undefined;
|
|
67
|
+
formatted = (0, _extends2.default)({}, node, {
|
|
68
|
+
check: curNode.check,
|
|
69
|
+
uncheckable: curNode.uncheckable,
|
|
70
|
+
hasChildren: !!node[childrenKey],
|
|
71
|
+
layer: curNode.layer,
|
|
72
|
+
parent: curNode.parent,
|
|
73
|
+
checkState: checkState,
|
|
74
|
+
visible: visible
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return formatted;
|
|
78
|
+
});
|
|
79
|
+
}, [childrenKey, data, nodes, options, valueKey]);
|
|
80
|
+
}
|
|
81
|
+
var _default = useVirtualizedTreeData;
|
|
82
|
+
exports.default = _default;
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { CheckStateType } from '../utils/constants';
|
|
3
|
+
import type { StandardProps } from '../@types/common';
|
|
4
|
+
import type { ListProps } from '../internals/Windowing';
|
|
5
|
+
/**
|
|
6
|
+
* Represents a single node in a tree.
|
|
7
|
+
*/
|
|
8
|
+
export interface TreeNode extends Record<string, any> {
|
|
9
|
+
/**
|
|
10
|
+
* Specifies whether the node is uncheckable.
|
|
11
|
+
*/
|
|
12
|
+
uncheckable?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The reference key of the node.
|
|
15
|
+
*/
|
|
16
|
+
refKey?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Specifies whether the node is checked.
|
|
19
|
+
*/
|
|
20
|
+
check?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* The parent node of the current node.
|
|
23
|
+
*/
|
|
24
|
+
parent?: TreeNode;
|
|
25
|
+
/**
|
|
26
|
+
* Specifies whether all child nodes are checked.
|
|
27
|
+
*/
|
|
28
|
+
checkAll?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Specifies whether the node is visible.
|
|
31
|
+
*/
|
|
32
|
+
visible?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Specifies whether the node is expanded.
|
|
35
|
+
*/
|
|
36
|
+
expand?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* The layer of the node in the tree hierarchy.
|
|
39
|
+
*/
|
|
40
|
+
layer?: number;
|
|
41
|
+
/**
|
|
42
|
+
* The label of the node.
|
|
43
|
+
*/
|
|
44
|
+
label?: string | React.ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* The value of the node.
|
|
47
|
+
*/
|
|
48
|
+
value?: string | number;
|
|
49
|
+
/**
|
|
50
|
+
* The property to group nodes by.
|
|
51
|
+
*/
|
|
52
|
+
groupBy?: string;
|
|
53
|
+
/**
|
|
54
|
+
* The child nodes of the current node.
|
|
55
|
+
*/
|
|
56
|
+
children?: TreeNode[];
|
|
57
|
+
/**
|
|
58
|
+
* Specifies whether the node has children.
|
|
59
|
+
*/
|
|
60
|
+
hasChildren?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* The check state of the node.
|
|
63
|
+
*/
|
|
64
|
+
checkState?: CheckStateType;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Represents a map of tree nodes.
|
|
68
|
+
*/
|
|
69
|
+
export interface TreeNodeMap {
|
|
70
|
+
[key: string]: TreeNode;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Tree Node Drag Type
|
|
74
|
+
*/
|
|
75
|
+
export declare enum TREE_NODE_DROP_POSITION {
|
|
76
|
+
DRAG_OVER = 0,
|
|
77
|
+
DRAG_OVER_TOP = 1,
|
|
78
|
+
DRAG_OVER_BOTTOM = 2
|
|
79
|
+
}
|
|
80
|
+
export interface DropData<T> {
|
|
81
|
+
/** drag node data */
|
|
82
|
+
dragNode: T;
|
|
83
|
+
/** dropNode data */
|
|
84
|
+
dropNode: T;
|
|
85
|
+
/** node drop position */
|
|
86
|
+
dropNodePosition: TREE_NODE_DROP_POSITION;
|
|
87
|
+
/** Update Data when drop node */
|
|
88
|
+
createUpdateDataFunction: (data: T[]) => T[];
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Represents the drag-related props for the Tree component.
|
|
92
|
+
*/
|
|
93
|
+
export interface TreeDragProps<T = Record<string, any>> {
|
|
94
|
+
/**
|
|
95
|
+
* Specifies whether the node can be dragged.
|
|
96
|
+
*/
|
|
97
|
+
draggable?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Called when scrolling.
|
|
100
|
+
* @param event - The scroll event.
|
|
101
|
+
*/
|
|
102
|
+
onScroll?: (event: React.SyntheticEvent) => void;
|
|
103
|
+
/**
|
|
104
|
+
* Called when the node drag starts.
|
|
105
|
+
* @param nodeData - The data associated with the dragged node.
|
|
106
|
+
* @param e - The drag event.
|
|
107
|
+
*/
|
|
108
|
+
onDragStart?: (nodeData: T, e: React.DragEvent) => void;
|
|
109
|
+
/**
|
|
110
|
+
* Called when the node is dragged over.
|
|
111
|
+
* @param nodeData - The data associated with the dragged node.
|
|
112
|
+
* @param e - The drag event.
|
|
113
|
+
*/
|
|
114
|
+
onDragEnter?: (nodeData: T, e: React.DragEvent) => void;
|
|
115
|
+
/**
|
|
116
|
+
* Called when the node is dragged over.
|
|
117
|
+
* @param nodeData - The data associated with the dragged node.
|
|
118
|
+
* @param e - The drag event.
|
|
119
|
+
*/
|
|
120
|
+
onDragOver?: (nodeData: T, e: React.DragEvent) => void;
|
|
121
|
+
/**
|
|
122
|
+
* Called when the node is dragged out.
|
|
123
|
+
* @param nodeData - The data associated with the dragged node.
|
|
124
|
+
* @param e - The drag event.
|
|
125
|
+
*/
|
|
126
|
+
onDragLeave?: (nodeData: T, e: React.DragEvent) => void;
|
|
127
|
+
/**
|
|
128
|
+
* Called when the node drag ends.
|
|
129
|
+
* @param nodeData - The data associated with the dragged node.
|
|
130
|
+
* @param e - The drag event.
|
|
131
|
+
*/
|
|
132
|
+
onDragEnd?: (nodeData: T, e: React.DragEvent) => void;
|
|
133
|
+
/**
|
|
134
|
+
* Called when a node is dropped.
|
|
135
|
+
* @param dropData - The data associated with the dropped node.
|
|
136
|
+
* @param e - The drag event.
|
|
137
|
+
*/
|
|
138
|
+
onDrop?: (dropData: DropData<T>, e: React.DragEvent) => void;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Represents the base props for the Tree component.
|
|
142
|
+
*
|
|
143
|
+
* @template V - The type of the value associated with each tree node.
|
|
144
|
+
* @template T - The type of the tree node.
|
|
145
|
+
*/
|
|
146
|
+
/**
|
|
147
|
+
* Represents the props for the Tree component.
|
|
148
|
+
*/
|
|
149
|
+
export interface TreeViewBaseProps<V = string | number, T = TreeNode> extends StandardProps {
|
|
150
|
+
/**
|
|
151
|
+
* The height of the tree.
|
|
152
|
+
*/
|
|
153
|
+
height?: number;
|
|
154
|
+
/**
|
|
155
|
+
* Whether to display the search input box.
|
|
156
|
+
*/
|
|
157
|
+
searchable?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Whether to display an auxiliary line when the tree node is indented.
|
|
160
|
+
*/
|
|
161
|
+
showIndentLine?: boolean;
|
|
162
|
+
/**
|
|
163
|
+
* Whether to use virtualized list.
|
|
164
|
+
*/
|
|
165
|
+
virtualized?: boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Props for the virtualized list.
|
|
168
|
+
*/
|
|
169
|
+
listProps?: Partial<ListProps>;
|
|
170
|
+
/**
|
|
171
|
+
* The search keyword (controlled).
|
|
172
|
+
*/
|
|
173
|
+
searchKeyword?: string;
|
|
174
|
+
/**
|
|
175
|
+
* The option values for the expand nodes with controlled.
|
|
176
|
+
*/
|
|
177
|
+
expandItemValues?: any[];
|
|
178
|
+
/**
|
|
179
|
+
* Callback function for expanding tree nodes.
|
|
180
|
+
* @param expandItemValues - The values of the expanded nodes.
|
|
181
|
+
* @param activeNode - The currently active node.
|
|
182
|
+
* @param concat - A function to concatenate data and children.
|
|
183
|
+
*/
|
|
184
|
+
onExpand?: (expandItemValues: T[], activeNode: T, concat: (data: T[], children: T[]) => T[]) => void;
|
|
185
|
+
/**
|
|
186
|
+
* Callback function after selecting a tree node.
|
|
187
|
+
* @param activeNode - The currently active node.
|
|
188
|
+
* @param value - The value of the selected node.
|
|
189
|
+
* @param event - The event object.
|
|
190
|
+
*/
|
|
191
|
+
onSelect?: (activeNode: T, value: V, event: React.SyntheticEvent) => void;
|
|
192
|
+
/**
|
|
193
|
+
* Callback when a tree item is clicked.
|
|
194
|
+
* @param item - The clicked tree item.
|
|
195
|
+
* @param path - The path of the clicked item.
|
|
196
|
+
*/
|
|
197
|
+
onSelectItem?: (item: T, path: T[]) => void;
|
|
198
|
+
/**
|
|
199
|
+
* Callback fired when searching.
|
|
200
|
+
* @param searchKeyword - The search keyword.
|
|
201
|
+
* @param event - The event object.
|
|
202
|
+
*/
|
|
203
|
+
onSearch?: (searchKeyword: string, event: React.SyntheticEvent) => void;
|
|
204
|
+
/**
|
|
205
|
+
* Callback fired when cleaning.
|
|
206
|
+
* @param event - The event object.
|
|
207
|
+
*/
|
|
208
|
+
onClean?: (event: React.SyntheticEvent) => void;
|
|
209
|
+
/**
|
|
210
|
+
* Custom search rules.
|
|
211
|
+
* @param keyword - The search keyword.
|
|
212
|
+
* @param label - The label of the tree item.
|
|
213
|
+
* @param item - The tree item.
|
|
214
|
+
* @returns Whether the item matches the search criteria.
|
|
215
|
+
*/
|
|
216
|
+
searchBy?: (keyword: string, label: React.ReactNode, item: any) => boolean;
|
|
217
|
+
/**
|
|
218
|
+
* Callback function called after the value has been changed.
|
|
219
|
+
* @param value - The new value.
|
|
220
|
+
* @param event - The event object.
|
|
221
|
+
*/
|
|
222
|
+
onChange?: (value: V, event: React.SyntheticEvent) => void;
|
|
223
|
+
}
|
|
224
|
+
export interface TreeExtraProps<T = TreeNode> {
|
|
225
|
+
/**
|
|
226
|
+
* Whether to expand all nodes by default.
|
|
227
|
+
*/
|
|
228
|
+
defaultExpandAll?: boolean;
|
|
229
|
+
/**
|
|
230
|
+
* The option values for the expand nodes by default.
|
|
231
|
+
*/
|
|
232
|
+
defaultExpandItemValues?: any[];
|
|
233
|
+
/**
|
|
234
|
+
* Function to load node children data asynchronously.
|
|
235
|
+
* @param activeNode - The currently active node.
|
|
236
|
+
* @returns The children of the active node.
|
|
237
|
+
*/
|
|
238
|
+
getChildren?: (activeNode: T) => T[] | Promise<T[]>;
|
|
239
|
+
/**
|
|
240
|
+
* Custom render function for the tree.
|
|
241
|
+
* @param menu - The menu to be rendered.
|
|
242
|
+
* @returns The rendered tree.
|
|
243
|
+
*/
|
|
244
|
+
renderTree?: (menu: React.ReactNode) => React.ReactNode;
|
|
245
|
+
/**
|
|
246
|
+
* Custom render function for tree nodes.
|
|
247
|
+
* @param nodeData - The data of the tree node.
|
|
248
|
+
* @returns The rendered node.
|
|
249
|
+
*/
|
|
250
|
+
renderTreeNode?: (nodeData: T) => React.ReactNode;
|
|
251
|
+
/**
|
|
252
|
+
* Custom render function for tree icons.
|
|
253
|
+
* @param nodeData - The data of the tree node.
|
|
254
|
+
* @returns The rendered icon.
|
|
255
|
+
*/
|
|
256
|
+
renderTreeIcon?: (nodeData: T, expanded?: boolean) => React.ReactNode;
|
|
257
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.TREE_NODE_DROP_POSITION = void 0;
|
|
6
|
+
/**
|
|
7
|
+
* Represents a single node in a tree.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Represents a map of tree nodes.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Tree Node Drag Type
|
|
14
|
+
*/
|
|
15
|
+
var TREE_NODE_DROP_POSITION;
|
|
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 = {}));
|
|
22
|
+
/**
|
|
23
|
+
* Represents the drag-related props for the Tree component.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Represents the base props for the Tree component.
|
|
27
|
+
*
|
|
28
|
+
* @template V - The type of the value associated with each tree node.
|
|
29
|
+
* @template T - The type of the tree node.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Represents the props for the Tree component.
|
|
33
|
+
*/
|