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
package/esm/@types/common.d.ts
CHANGED
|
@@ -88,6 +88,29 @@ export interface PickerBaseProps<L = any> extends WithAsProps, AnimationEventPro
|
|
|
88
88
|
/** Custom render extra footer */
|
|
89
89
|
renderExtraFooter?: () => React.ReactNode;
|
|
90
90
|
}
|
|
91
|
+
export interface DeprecatedPickerProps {
|
|
92
|
+
/**
|
|
93
|
+
* Custom menu class name
|
|
94
|
+
* @deprecated Use `popupClassName` instead
|
|
95
|
+
*/
|
|
96
|
+
menuClassName?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Custom menu style
|
|
99
|
+
* @deprecated Use `popupStyle` instead
|
|
100
|
+
*/
|
|
101
|
+
menuStyle?: React.CSSProperties;
|
|
102
|
+
/**
|
|
103
|
+
* Picker menu auto width
|
|
104
|
+
*
|
|
105
|
+
* @deprecated Use `popupAutoWidth` instead
|
|
106
|
+
*/
|
|
107
|
+
menuAutoWidth?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Custom render tree
|
|
110
|
+
* @deprecated Use `renderTree` instead
|
|
111
|
+
*/
|
|
112
|
+
renderMenu?: (menu: React.ReactNode) => React.ReactNode;
|
|
113
|
+
}
|
|
91
114
|
export interface FormControlBaseProps<ValueType = React.InputHTMLAttributes<HTMLInputElement>['value']> {
|
|
92
115
|
/** Name of the form field */
|
|
93
116
|
name?: string;
|
|
@@ -109,14 +132,28 @@ export interface FormControlBaseProps<ValueType = React.InputHTMLAttributes<HTML
|
|
|
109
132
|
readOnly?: boolean;
|
|
110
133
|
}
|
|
111
134
|
export declare type ToArray<V> = V extends any[] ? V : V[];
|
|
135
|
+
/**
|
|
136
|
+
* Represents the data properties for a component.
|
|
137
|
+
*/
|
|
112
138
|
export interface DataProps<TData> {
|
|
113
|
-
/**
|
|
139
|
+
/**
|
|
140
|
+
* The data of the component.
|
|
141
|
+
*/
|
|
114
142
|
data: TData[];
|
|
115
|
-
/**
|
|
143
|
+
/**
|
|
144
|
+
* The key to use for setting the option value in the data.
|
|
145
|
+
* @default value
|
|
146
|
+
*/
|
|
116
147
|
valueKey?: string;
|
|
117
|
-
/**
|
|
148
|
+
/**
|
|
149
|
+
* The key to use for displaying the options in the data.
|
|
150
|
+
* @default label
|
|
151
|
+
*/
|
|
118
152
|
labelKey?: string;
|
|
119
|
-
/**
|
|
153
|
+
/**
|
|
154
|
+
* The key to use for setting the children in the data.
|
|
155
|
+
* @default children
|
|
156
|
+
*/
|
|
120
157
|
childrenKey?: string;
|
|
121
158
|
}
|
|
122
159
|
export interface FormControlPickerProps<T = any, L = any, D = Record<string, any>, I = T> extends PickerBaseProps<L>, FormControlBaseProps<T>, DataProps<D> {
|
|
@@ -172,7 +172,8 @@ var AutoComplete = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
172
172
|
onSelect: handleItemSelect,
|
|
173
173
|
renderMenuItem: renderMenuItem,
|
|
174
174
|
data: items,
|
|
175
|
-
className: menuClassName
|
|
175
|
+
className: menuClassName,
|
|
176
|
+
query: value
|
|
176
177
|
});
|
|
177
178
|
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
178
179
|
ref: mergeRefs(overlay, speakerRef),
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import React, { useCallback, useMemo } from 'react';
|
|
5
|
-
import { getParentMap
|
|
5
|
+
import { getParentMap } from '../internals/Tree/utils';
|
|
6
|
+
import { flattenTree } from '../Tree/utils';
|
|
6
7
|
import { useControlled, useClassNames, useEventCallback } from '../utils';
|
|
7
8
|
import { useMap } from '../utils/useMap';
|
|
8
9
|
import TreeView from './TreeView';
|
|
@@ -3,8 +3,8 @@ 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 { getPathTowardsItem } from '../utils
|
|
7
|
-
import
|
|
6
|
+
import { getPathTowardsItem } from '../internals/Tree/utils';
|
|
7
|
+
import Highlight from '../Highlight';
|
|
8
8
|
import SearchBox from '../internals/SearchBox';
|
|
9
9
|
function SearchView(props) {
|
|
10
10
|
var _props$as = props.as,
|
|
@@ -38,17 +38,10 @@ function SearchView(props) {
|
|
|
38
38
|
});
|
|
39
39
|
var formattedNodes = items.map(function (itemData) {
|
|
40
40
|
var _extends2;
|
|
41
|
-
var label =
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
render: function render(patch, index) {
|
|
46
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
47
|
-
key: index,
|
|
48
|
-
className: prefix('match')
|
|
49
|
-
}, patch);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
41
|
+
var label = /*#__PURE__*/React.createElement(Highlight, {
|
|
42
|
+
as: "span",
|
|
43
|
+
query: searchKeyword
|
|
44
|
+
}, itemData[labelKey]);
|
|
52
45
|
return _extends({}, itemData, (_extends2 = {}, _extends2[labelKey] = label, _extends2));
|
|
53
46
|
});
|
|
54
47
|
var disabled = disabledItemValues.some(function (value) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
-
import { getPathTowardsItem } from '../../utils
|
|
3
|
+
import { getPathTowardsItem } from '../../internals/Tree/utils';
|
|
4
4
|
import { getColumnsAndPaths } from '../utils';
|
|
5
5
|
/**
|
|
6
6
|
* A Hook to get the selected path of Tree.
|
|
@@ -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],
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ItemDataType } from '../@types/common';
|
|
3
1
|
declare type GetColumnsAndPathsOptions<T> = {
|
|
4
2
|
getParent: (item: T) => T | undefined;
|
|
5
3
|
getChildren: (item: T) => readonly T[] | undefined;
|
|
@@ -20,13 +18,4 @@ export declare function getColumnsAndPaths<T extends Record<string, unknown>>(it
|
|
|
20
18
|
columns: (readonly T[])[];
|
|
21
19
|
path: T[];
|
|
22
20
|
};
|
|
23
|
-
/**
|
|
24
|
-
* Highlight the search keyword in the label
|
|
25
|
-
*/
|
|
26
|
-
export declare function highlightLabel<T>(props: {
|
|
27
|
-
item: ItemDataType<T>;
|
|
28
|
-
labelKey: string;
|
|
29
|
-
searchKeyword: string;
|
|
30
|
-
render: (patch: React.ReactNode, index: number) => React.ReactNode;
|
|
31
|
-
}): import("react").ReactNode[];
|
|
32
21
|
export {};
|
package/esm/CascadeTree/utils.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { getSafeRegExpString } from '../utils';
|
|
3
2
|
/**
|
|
4
3
|
* Calculate columns to be displayed:
|
|
5
4
|
*
|
|
@@ -37,25 +36,4 @@ export function getColumnsAndPaths(items, pathTarget, options) {
|
|
|
37
36
|
columns: columns,
|
|
38
37
|
path: path
|
|
39
38
|
};
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Highlight the search keyword in the label
|
|
44
|
-
*/
|
|
45
|
-
export function highlightLabel(props) {
|
|
46
|
-
var item = props.item,
|
|
47
|
-
searchKeyword = props.searchKeyword,
|
|
48
|
-
labelKey = props.labelKey,
|
|
49
|
-
render = props.render;
|
|
50
|
-
var regx = new RegExp(getSafeRegExpString(searchKeyword), 'ig');
|
|
51
|
-
var labelElements = [];
|
|
52
|
-
var strArr = item[labelKey].split(regx);
|
|
53
|
-
var highStrArr = item[labelKey].match(regx);
|
|
54
|
-
for (var i = 0; i < strArr.length; i++) {
|
|
55
|
-
labelElements.push(strArr[i]);
|
|
56
|
-
if (highStrArr !== null && highStrArr !== void 0 && highStrArr[i]) {
|
|
57
|
-
labelElements.push(render(highStrArr[i], i));
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return labelElements;
|
|
61
39
|
}
|
package/esm/Cascader/Cascader.js
CHANGED
|
@@ -10,7 +10,8 @@ import isFunction from 'lodash/isFunction';
|
|
|
10
10
|
import TreeView from '../CascadeTree/TreeView';
|
|
11
11
|
import SearchView from '../CascadeTree/SearchView';
|
|
12
12
|
import { usePaths, useSelect, useSearch } from '../CascadeTree/hooks';
|
|
13
|
-
import {
|
|
13
|
+
import { flattenTree } from '../Tree/utils';
|
|
14
|
+
import { findNodeOfTree, getParentMap } from '../internals/Tree/utils';
|
|
14
15
|
import { deprecatePropTypeNew } from '../internals/propTypes';
|
|
15
16
|
import { createChainedFunction, mergeRefs, shallowEqual, useControlled, useCustom, useClassNames, useEventCallback } from '../utils';
|
|
16
17
|
import { PickerToggle, PickerPopup, PickerToggleTrigger, usePickerClassName, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../internals/Picker';
|
|
@@ -6,13 +6,12 @@ var _templateObject;
|
|
|
6
6
|
import React, { useState } from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import clone from 'lodash/clone';
|
|
9
|
-
import isUndefined from 'lodash/isUndefined';
|
|
10
9
|
import isFunction from 'lodash/isFunction';
|
|
11
10
|
import remove from 'lodash/remove';
|
|
12
11
|
import omit from 'lodash/omit';
|
|
13
12
|
import pick from 'lodash/pick';
|
|
14
13
|
import isNil from 'lodash/isNil';
|
|
15
|
-
import { filterNodesOfTree } from '../utils
|
|
14
|
+
import { filterNodesOfTree } from '../internals/Tree/utils';
|
|
16
15
|
import { createChainedFunction, useClassNames, shallowEqual, useCustom, useControlled, useEventCallback, mergeRefs } from '../utils';
|
|
17
16
|
import { getDataGroupBy } from '../utils/getDataGroupBy';
|
|
18
17
|
import { Listbox, ListCheckItem, PickerToggle, PickerPopup, SelectedElement, PickerToggleTrigger, useFocusItemValue, usePickerClassName, useSearch, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../internals/Picker';
|
|
@@ -282,14 +281,12 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
282
281
|
listItemAs: ListCheckItem,
|
|
283
282
|
activeItemValues: value,
|
|
284
283
|
focusItemValue: focusItemValue,
|
|
285
|
-
data: [].concat(filteredStickyItems, items)
|
|
286
|
-
// `group` is redundant so long as `groupBy` exists
|
|
287
|
-
,
|
|
288
|
-
group: !isUndefined(groupBy),
|
|
284
|
+
data: [].concat(filteredStickyItems, items),
|
|
289
285
|
groupBy: groupBy,
|
|
290
286
|
onSelect: handleItemSelect,
|
|
291
287
|
onGroupTitleClick: onGroupTitleClick,
|
|
292
|
-
virtualized: virtualized
|
|
288
|
+
virtualized: virtualized,
|
|
289
|
+
query: searchKeyword
|
|
293
290
|
}) : /*#__PURE__*/React.createElement("div", {
|
|
294
291
|
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["none"])))
|
|
295
292
|
}, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type CheckTreeViewProps } from './CheckTreeView';
|
|
2
|
+
import type { RsRefForwardingComponent } from '../@types/common';
|
|
3
|
+
import type { TreeExtraProps } from '../Tree/types';
|
|
4
|
+
export declare type ValueType = (string | number)[];
|
|
5
|
+
export interface CheckTreeProps<T = ValueType> extends CheckTreeViewProps<T>, TreeExtraProps {
|
|
6
|
+
/**
|
|
7
|
+
* Default selected Value
|
|
8
|
+
*/
|
|
9
|
+
defaultValue?: T;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The `CheckTree` component is used for selecting multiple options which are organized in a tree structure.
|
|
13
|
+
* @see https://rsuitejs.com/components/check-tree
|
|
14
|
+
*/
|
|
15
|
+
declare const CheckTree: RsRefForwardingComponent<'div', CheckTreeProps>;
|
|
16
|
+
export default CheckTree;
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
+
import React, { useMemo } from 'react';
|
|
5
|
+
import { useEventCallback } from '../utils';
|
|
6
|
+
import useTreeValue from './hooks/useTreeValue';
|
|
7
|
+
import CheckTreeView from './CheckTreeView';
|
|
8
|
+
import useFlattenTree from '../Tree/hooks/useFlattenTree';
|
|
9
|
+
import useTreeWithChildren from '../Tree/hooks/useTreeWithChildren';
|
|
10
|
+
import useExpandTree from '../Tree/hooks/useExpandTree';
|
|
11
|
+
import { TreeProvider } from '../Tree/TreeProvider';
|
|
12
|
+
/**
|
|
13
|
+
* The `CheckTree` component is used for selecting multiple options which are organized in a tree structure.
|
|
14
|
+
* @see https://rsuitejs.com/components/check-tree
|
|
15
|
+
*/
|
|
16
|
+
var CheckTree = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
17
|
+
var controlledValue = props.value,
|
|
18
|
+
data = props.data,
|
|
19
|
+
defaultValue = props.defaultValue,
|
|
20
|
+
_props$defaultExpandA = props.defaultExpandAll,
|
|
21
|
+
defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,
|
|
22
|
+
_props$defaultExpandI = props.defaultExpandItemValues,
|
|
23
|
+
defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI,
|
|
24
|
+
uncheckableItemValues = props.uncheckableItemValues,
|
|
25
|
+
controlledExpandItemValues = props.expandItemValues,
|
|
26
|
+
_props$childrenKey = props.childrenKey,
|
|
27
|
+
childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
|
|
28
|
+
_props$labelKey = props.labelKey,
|
|
29
|
+
labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
|
|
30
|
+
_props$valueKey = props.valueKey,
|
|
31
|
+
valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
|
|
32
|
+
virtualized = props.virtualized,
|
|
33
|
+
_props$cascade = props.cascade,
|
|
34
|
+
cascade = _props$cascade === void 0 ? true : _props$cascade,
|
|
35
|
+
renderTreeIcon = props.renderTreeIcon,
|
|
36
|
+
renderTreeNode = props.renderTreeNode,
|
|
37
|
+
getChildren = props.getChildren,
|
|
38
|
+
onExpand = props.onExpand,
|
|
39
|
+
onChange = props.onChange,
|
|
40
|
+
rest = _objectWithoutPropertiesLoose(props, ["value", "data", "defaultValue", "defaultExpandAll", "defaultExpandItemValues", "uncheckableItemValues", "expandItemValues", "childrenKey", "labelKey", "valueKey", "virtualized", "cascade", "renderTreeIcon", "renderTreeNode", "getChildren", "onExpand", "onChange"]);
|
|
41
|
+
var _useTreeValue = useTreeValue(controlledValue, {
|
|
42
|
+
defaultValue: defaultValue,
|
|
43
|
+
uncheckableItemValues: uncheckableItemValues
|
|
44
|
+
}),
|
|
45
|
+
value = _useTreeValue[0],
|
|
46
|
+
setValue = _useTreeValue[1];
|
|
47
|
+
var itemDataKeys = {
|
|
48
|
+
childrenKey: childrenKey,
|
|
49
|
+
labelKey: labelKey,
|
|
50
|
+
valueKey: valueKey
|
|
51
|
+
};
|
|
52
|
+
var _useTreeWithChildren = useTreeWithChildren(data, itemDataKeys),
|
|
53
|
+
treeData = _useTreeWithChildren.treeData,
|
|
54
|
+
loadingNodeValues = _useTreeWithChildren.loadingNodeValues,
|
|
55
|
+
appendChild = _useTreeWithChildren.appendChild;
|
|
56
|
+
var _useExpandTree = useExpandTree(data, _extends({}, itemDataKeys, {
|
|
57
|
+
defaultExpandAll: defaultExpandAll,
|
|
58
|
+
defaultExpandItemValues: defaultExpandItemValues,
|
|
59
|
+
controlledExpandItemValues: controlledExpandItemValues,
|
|
60
|
+
onExpand: onExpand,
|
|
61
|
+
getChildren: getChildren,
|
|
62
|
+
appendChild: appendChild
|
|
63
|
+
})),
|
|
64
|
+
expandItemValues = _useExpandTree.expandItemValues,
|
|
65
|
+
handleExpandTreeNode = _useExpandTree.handleExpandTreeNode;
|
|
66
|
+
var flattenedNodes = useFlattenTree(treeData, _extends({}, itemDataKeys, {
|
|
67
|
+
uncheckableItemValues: uncheckableItemValues,
|
|
68
|
+
multiple: true,
|
|
69
|
+
cascade: cascade,
|
|
70
|
+
value: value
|
|
71
|
+
}));
|
|
72
|
+
var handleChange = useEventCallback(function (nextValue, event) {
|
|
73
|
+
setValue(nextValue);
|
|
74
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
|
|
75
|
+
});
|
|
76
|
+
var treeContext = useMemo(function () {
|
|
77
|
+
return {
|
|
78
|
+
props: {
|
|
79
|
+
labelKey: labelKey,
|
|
80
|
+
valueKey: valueKey,
|
|
81
|
+
childrenKey: childrenKey,
|
|
82
|
+
virtualized: virtualized,
|
|
83
|
+
renderTreeIcon: renderTreeIcon,
|
|
84
|
+
renderTreeNode: renderTreeNode
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}, [childrenKey, labelKey, valueKey, virtualized, renderTreeIcon, renderTreeNode]);
|
|
88
|
+
return /*#__PURE__*/React.createElement(TreeProvider, {
|
|
89
|
+
value: treeContext
|
|
90
|
+
}, /*#__PURE__*/React.createElement(CheckTreeView, _extends({}, rest, {
|
|
91
|
+
ref: ref,
|
|
92
|
+
value: value,
|
|
93
|
+
cascade: cascade,
|
|
94
|
+
data: treeData,
|
|
95
|
+
virtualized: virtualized,
|
|
96
|
+
loadingNodeValues: loadingNodeValues,
|
|
97
|
+
flattenedNodes: flattenedNodes,
|
|
98
|
+
uncheckableItemValues: uncheckableItemValues,
|
|
99
|
+
expandItemValues: expandItemValues,
|
|
100
|
+
onChange: handleChange,
|
|
101
|
+
onExpand: handleExpandTreeNode
|
|
102
|
+
})));
|
|
103
|
+
});
|
|
104
|
+
CheckTree.displayName = 'CheckTree';
|
|
105
|
+
export default CheckTree;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
|
|
3
|
+
import { CheckStateType } from '../utils';
|
|
4
|
+
import type { TreeNode as TreeNodeData } from '../Tree/types';
|
|
5
|
+
export interface CheckTreeNodeProps extends WithAsProps {
|
|
6
|
+
/**
|
|
7
|
+
* The label of the node.
|
|
8
|
+
*/
|
|
9
|
+
label?: any;
|
|
10
|
+
/**
|
|
11
|
+
* The layer of the node in the tree hierarchy.
|
|
12
|
+
*/
|
|
13
|
+
layer: number;
|
|
14
|
+
/**
|
|
15
|
+
* The value of the node.
|
|
16
|
+
*/
|
|
17
|
+
value?: any;
|
|
18
|
+
/**
|
|
19
|
+
* Whether the node should be focused.
|
|
20
|
+
*/
|
|
21
|
+
focus?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Whether the node should be expanded.
|
|
24
|
+
*/
|
|
25
|
+
expanded?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the node is in a loading state.
|
|
28
|
+
*/
|
|
29
|
+
loading?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the node is visible.
|
|
32
|
+
*/
|
|
33
|
+
visible?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Additional data associated with the node.
|
|
36
|
+
*/
|
|
37
|
+
nodeData?: any;
|
|
38
|
+
/**
|
|
39
|
+
* Whether the node is disabled.
|
|
40
|
+
*/
|
|
41
|
+
disabled?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* The check state of the node.
|
|
44
|
+
*/
|
|
45
|
+
checkState?: CheckStateType;
|
|
46
|
+
/**
|
|
47
|
+
* Whether the node has children.
|
|
48
|
+
*/
|
|
49
|
+
hasChildren?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Whether the node is uncheckable.
|
|
52
|
+
*/
|
|
53
|
+
uncheckable?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Whether all nodes are uncheckable.
|
|
56
|
+
*/
|
|
57
|
+
allUncheckable?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Reference to the tree item.
|
|
60
|
+
*/
|
|
61
|
+
treeItemRef?: React.Ref<any>;
|
|
62
|
+
/**
|
|
63
|
+
* Callback function called when the node is expanded.
|
|
64
|
+
*/
|
|
65
|
+
onExpand?: (nodeData: TreeNodeData, expanded?: boolean) => void;
|
|
66
|
+
/**
|
|
67
|
+
* Callback function called when the node is selected.
|
|
68
|
+
*/
|
|
69
|
+
onSelect?: (nodeData: TreeNodeData, event: React.SyntheticEvent) => void;
|
|
70
|
+
}
|
|
71
|
+
declare const CheckTreeNode: RsRefForwardingComponent<'div', CheckTreeNodeProps>;
|
|
72
|
+
export default CheckTreeNode;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
+
import React, { forwardRef, useMemo } from 'react';
|
|
5
|
+
import ListCheckItem from '../internals/Picker/ListCheckItem';
|
|
6
|
+
import { stringifyReactNode } from '../internals/utils';
|
|
7
|
+
import { useFoucsVirtualListItem } from '../internals/hooks';
|
|
8
|
+
import { indentTreeNode } from '../Tree/utils';
|
|
9
|
+
import { useClassNames, useEventCallback, useCustom, CHECK_STATE, mergeRefs } from '../utils';
|
|
10
|
+
import { useTreeContextProps } from '../Tree/TreeProvider';
|
|
11
|
+
import TreeNodeToggle from '../Tree/TreeNodeToggle';
|
|
12
|
+
var CheckTreeNode = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
13
|
+
var _props$as = props.as,
|
|
14
|
+
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
15
|
+
style = props.style,
|
|
16
|
+
className = props.className,
|
|
17
|
+
_props$classPrefix = props.classPrefix,
|
|
18
|
+
classPrefix = _props$classPrefix === void 0 ? 'check-tree-node' : _props$classPrefix,
|
|
19
|
+
_props$visible = props.visible,
|
|
20
|
+
visible = _props$visible === void 0 ? true : _props$visible,
|
|
21
|
+
layer = props.layer,
|
|
22
|
+
disabled = props.disabled,
|
|
23
|
+
allUncheckable = props.allUncheckable,
|
|
24
|
+
loading = props.loading,
|
|
25
|
+
expanded = props.expanded,
|
|
26
|
+
hasChildren = props.hasChildren,
|
|
27
|
+
nodeData = props.nodeData,
|
|
28
|
+
focus = props.focus,
|
|
29
|
+
label = props.label,
|
|
30
|
+
uncheckable = props.uncheckable,
|
|
31
|
+
checkState = props.checkState,
|
|
32
|
+
value = props.value,
|
|
33
|
+
treeItemRef = props.treeItemRef,
|
|
34
|
+
onExpand = props.onExpand,
|
|
35
|
+
onSelect = props.onSelect,
|
|
36
|
+
rest = _objectWithoutPropertiesLoose(props, ["as", "style", "className", "classPrefix", "visible", "layer", "disabled", "allUncheckable", "loading", "expanded", "hasChildren", "nodeData", "focus", "label", "uncheckable", "checkState", "value", "treeItemRef", "onExpand", "onSelect"]);
|
|
37
|
+
var _useCustom = useCustom(),
|
|
38
|
+
rtl = _useCustom.rtl;
|
|
39
|
+
var _useTreeContextProps = useTreeContextProps(),
|
|
40
|
+
renderTreeNode = _useTreeContextProps.renderTreeNode,
|
|
41
|
+
virtualized = _useTreeContextProps.virtualized;
|
|
42
|
+
var _useClassNames = useClassNames(classPrefix),
|
|
43
|
+
prefix = _useClassNames.prefix,
|
|
44
|
+
merge = _useClassNames.merge,
|
|
45
|
+
withClassPrefix = _useClassNames.withClassPrefix;
|
|
46
|
+
var labelStr = useMemo(function () {
|
|
47
|
+
return stringifyReactNode(label);
|
|
48
|
+
}, [label]);
|
|
49
|
+
var handleExpand = useEventCallback(function (event) {
|
|
50
|
+
var _event$nativeEvent, _event$nativeEvent$st;
|
|
51
|
+
// stop propagation when using custom loading icon
|
|
52
|
+
event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : (_event$nativeEvent$st = _event$nativeEvent.stopImmediatePropagation) === null || _event$nativeEvent$st === void 0 ? void 0 : _event$nativeEvent$st.call(_event$nativeEvent);
|
|
53
|
+
onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData, expanded);
|
|
54
|
+
});
|
|
55
|
+
var handleSelect = useEventCallback(function (_value, event) {
|
|
56
|
+
var isChecked = false;
|
|
57
|
+
if (checkState === CHECK_STATE.UNCHECK || checkState === CHECK_STATE.INDETERMINATE) {
|
|
58
|
+
isChecked = true;
|
|
59
|
+
}
|
|
60
|
+
if (checkState === CHECK_STATE.CHECK) {
|
|
61
|
+
isChecked = false;
|
|
62
|
+
}
|
|
63
|
+
var nextNodeData = _extends({}, nodeData, {
|
|
64
|
+
check: isChecked
|
|
65
|
+
});
|
|
66
|
+
onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextNodeData, event);
|
|
67
|
+
});
|
|
68
|
+
var classes = merge(className, withClassPrefix({
|
|
69
|
+
disabled: disabled,
|
|
70
|
+
'all-uncheckable': !!allUncheckable,
|
|
71
|
+
'text-muted': disabled,
|
|
72
|
+
focus: focus
|
|
73
|
+
}));
|
|
74
|
+
var styles = virtualized ? _extends({}, style, indentTreeNode(rtl, layer - 1)) : style;
|
|
75
|
+
var itemRef = useFoucsVirtualListItem(focus);
|
|
76
|
+
return visible ? /*#__PURE__*/React.createElement(Component, _extends({}, rest, {
|
|
77
|
+
style: styles,
|
|
78
|
+
className: classes,
|
|
79
|
+
ref: ref
|
|
80
|
+
}), /*#__PURE__*/React.createElement(TreeNodeToggle, {
|
|
81
|
+
"aria-label": (expanded ? 'Collapse' : 'Expand') + (" " + labelStr),
|
|
82
|
+
data: nodeData,
|
|
83
|
+
expanded: expanded,
|
|
84
|
+
loading: loading,
|
|
85
|
+
hasChildren: hasChildren,
|
|
86
|
+
onClick: handleExpand
|
|
87
|
+
}), /*#__PURE__*/React.createElement(ListCheckItem, {
|
|
88
|
+
as: "div",
|
|
89
|
+
role: "treeitem",
|
|
90
|
+
ref: mergeRefs(itemRef, treeItemRef),
|
|
91
|
+
"aria-label": labelStr,
|
|
92
|
+
"aria-expanded": expanded,
|
|
93
|
+
"aria-checked": checkState === CHECK_STATE.CHECK,
|
|
94
|
+
"aria-selected": focus,
|
|
95
|
+
"aria-disabled": disabled,
|
|
96
|
+
"aria-level": layer,
|
|
97
|
+
"data-layer": layer,
|
|
98
|
+
active: checkState === CHECK_STATE.CHECK,
|
|
99
|
+
indeterminate: checkState === CHECK_STATE.INDETERMINATE,
|
|
100
|
+
focus: focus,
|
|
101
|
+
checkable: !uncheckable,
|
|
102
|
+
disabled: disabled,
|
|
103
|
+
value: nodeData.refKey || value,
|
|
104
|
+
className: prefix('content'),
|
|
105
|
+
title: labelStr,
|
|
106
|
+
onSelect: handleSelect
|
|
107
|
+
}, typeof renderTreeNode === 'function' ? renderTreeNode(nodeData) : label)) : null;
|
|
108
|
+
});
|
|
109
|
+
CheckTreeNode.displayName = 'CheckTreeNode';
|
|
110
|
+
export default CheckTreeNode;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { RsRefForwardingComponent, ToArray, DataProps } from '../@types/common';
|
|
3
|
+
import type { TreeNode, TreeNodeMap, TreeViewBaseProps } from '../Tree/types';
|
|
4
|
+
/**
|
|
5
|
+
* Props for the CheckTreeView component.
|
|
6
|
+
*/
|
|
7
|
+
export interface CheckTreeViewProps<V = (string | number)[]> extends TreeViewBaseProps<V>, DataProps<TreeNode> {
|
|
8
|
+
/**
|
|
9
|
+
* Selected value.
|
|
10
|
+
*/
|
|
11
|
+
value?: V;
|
|
12
|
+
/**
|
|
13
|
+
* Whether using virtualized list.
|
|
14
|
+
*/
|
|
15
|
+
virtualized?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Virtualized list ref object.
|
|
18
|
+
*/
|
|
19
|
+
listRef?: React.RefObject<any>;
|
|
20
|
+
/**
|
|
21
|
+
* Searchbox input ref object.
|
|
22
|
+
*/
|
|
23
|
+
searchInputRef?: React.RefObject<HTMLInputElement>;
|
|
24
|
+
/**
|
|
25
|
+
* Whether display search input box.
|
|
26
|
+
*/
|
|
27
|
+
searchable?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Tree node cascade.
|
|
30
|
+
*/
|
|
31
|
+
cascade?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Set the option value for the check box not to be rendered.
|
|
34
|
+
*/
|
|
35
|
+
uncheckableItemValues?: V;
|
|
36
|
+
/**
|
|
37
|
+
* Disabled tree node.
|
|
38
|
+
*/
|
|
39
|
+
disabledItemValues?: ToArray<NonNullable<V>>;
|
|
40
|
+
/**
|
|
41
|
+
* Called when scrolling.
|
|
42
|
+
*/
|
|
43
|
+
onScroll?: (event: React.SyntheticEvent) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Called after the value has been changed.
|
|
46
|
+
*/
|
|
47
|
+
onChange?: (value: V, event: React.SyntheticEvent) => void;
|
|
48
|
+
}
|
|
49
|
+
interface CheckTreeViewInnerProps<V = (string | number)[]> extends Omit<CheckTreeViewProps<V>, 'onExpand'> {
|
|
50
|
+
/**
|
|
51
|
+
* Loading node values.
|
|
52
|
+
*/
|
|
53
|
+
loadingNodeValues?: V;
|
|
54
|
+
/**
|
|
55
|
+
* Flattened nodes.
|
|
56
|
+
*/
|
|
57
|
+
flattenedNodes?: TreeNodeMap;
|
|
58
|
+
/**
|
|
59
|
+
* Callback function triggered when an item is focused.
|
|
60
|
+
*/
|
|
61
|
+
onFocusItem?: (value?: TreeNode['value']) => void;
|
|
62
|
+
/**
|
|
63
|
+
* A callback function that is called when a node is expanded.
|
|
64
|
+
*
|
|
65
|
+
* @param nodeData - The data of the expanded node.
|
|
66
|
+
*/
|
|
67
|
+
onExpand?: (nodeData: TreeNode, expanded?: boolean) => void;
|
|
68
|
+
}
|
|
69
|
+
declare const CheckTreeView: RsRefForwardingComponent<'div', CheckTreeViewInnerProps>;
|
|
70
|
+
export default CheckTreeView;
|