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,20 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface FocusStateProps {
|
|
3
|
+
target: React.RefObject<HTMLElement>;
|
|
4
|
+
value?: number | string | null | undefined;
|
|
5
|
+
focusActiveNode: () => void;
|
|
6
|
+
onEnter?: (node: HTMLElement) => void;
|
|
7
|
+
onExit?: (node: HTMLElement) => void;
|
|
8
|
+
onEntered?: (node: HTMLElement) => void;
|
|
9
|
+
}
|
|
10
|
+
declare function useFocusState(props: FocusStateProps): {
|
|
11
|
+
active: boolean;
|
|
12
|
+
focusItemValue: string | number | null | undefined;
|
|
13
|
+
setFocusItemValue: import("react").Dispatch<import("react").SetStateAction<string | number | null | undefined>>;
|
|
14
|
+
triggerProps: {
|
|
15
|
+
onEnter: (...args: any[]) => any;
|
|
16
|
+
onExit: (...args: any[]) => any;
|
|
17
|
+
onEntered: (...args: any[]) => any;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export default useFocusState;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useEventCallback } from '../../utils';
|
|
4
|
+
function useFocusState(props) {
|
|
5
|
+
var target = props.target,
|
|
6
|
+
value = props.value,
|
|
7
|
+
focusActiveNode = props.focusActiveNode;
|
|
8
|
+
var _useState = useState(false),
|
|
9
|
+
active = _useState[0],
|
|
10
|
+
setActive = _useState[1];
|
|
11
|
+
var _useState2 = useState(null),
|
|
12
|
+
focusItemValue = _useState2[0],
|
|
13
|
+
setFocusItemValue = _useState2[1];
|
|
14
|
+
var focusTarget = useEventCallback(function () {
|
|
15
|
+
var _target$current;
|
|
16
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
|
|
17
|
+
});
|
|
18
|
+
var onEnter = useEventCallback(function (node) {
|
|
19
|
+
var _props$onEnter;
|
|
20
|
+
setActive(true);
|
|
21
|
+
(_props$onEnter = props.onEnter) === null || _props$onEnter === void 0 ? void 0 : _props$onEnter.call(props, node);
|
|
22
|
+
});
|
|
23
|
+
var onExit = useEventCallback(function (node) {
|
|
24
|
+
var _props$onExit;
|
|
25
|
+
setActive(false);
|
|
26
|
+
focusTarget();
|
|
27
|
+
(_props$onExit = props.onExit) === null || _props$onExit === void 0 ? void 0 : _props$onExit.call(props, node);
|
|
28
|
+
});
|
|
29
|
+
var onEntered = useEventCallback(function (node) {
|
|
30
|
+
var _props$onEntered;
|
|
31
|
+
if (value) {
|
|
32
|
+
setFocusItemValue(value);
|
|
33
|
+
focusActiveNode();
|
|
34
|
+
}
|
|
35
|
+
(_props$onEntered = props.onEntered) === null || _props$onEntered === void 0 ? void 0 : _props$onEntered.call(props, node);
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
active: active,
|
|
39
|
+
focusItemValue: focusItemValue,
|
|
40
|
+
setFocusItemValue: setFocusItemValue,
|
|
41
|
+
triggerProps: {
|
|
42
|
+
onEnter: onEnter,
|
|
43
|
+
onExit: onExit,
|
|
44
|
+
onEntered: onEntered
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export default useFocusState;
|
package/esm/index.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export { default as Heading } from './Heading';
|
|
|
4
4
|
export type { HeadingProps } from './Heading';
|
|
5
5
|
export { default as HeadingGroup } from './HeadingGroup';
|
|
6
6
|
export type { HeadingGroupProps } from './HeadingGroup';
|
|
7
|
+
export { default as Highlight } from './Highlight';
|
|
8
|
+
export type { HighlightProps } from './Highlight';
|
|
7
9
|
export { default as SafeAnchor } from './SafeAnchor';
|
|
8
10
|
export type { SafeAnchorProps } from './SafeAnchor';
|
|
9
11
|
export { default as Button } from './Button';
|
package/esm/index.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
export { default as Text } from './Text';
|
|
5
5
|
export { default as Heading } from './Heading';
|
|
6
6
|
export { default as HeadingGroup } from './HeadingGroup';
|
|
7
|
+
export { default as Highlight } from './Highlight';
|
|
7
8
|
export { default as SafeAnchor } from './SafeAnchor';
|
|
8
9
|
// Buttons
|
|
9
10
|
// --------------------------------------------------------
|
|
@@ -1,35 +1,65 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ListProps, ListHandle } from '../../internals/Windowing';
|
|
3
|
-
import { StandardProps, ItemDataType } from '../../@types/common';
|
|
3
|
+
import { StandardProps, ItemDataType, DataProps } from '../../@types/common';
|
|
4
4
|
import { RSUITE_PICKER_GROUP_KEY } from '../../internals/symbols';
|
|
5
5
|
interface InnerItemDataType extends ItemDataType {
|
|
6
6
|
[RSUITE_PICKER_GROUP_KEY]?: boolean;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Props for the Listbox component.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Props for the Listbox component.
|
|
13
|
+
* @template Multiple - Whether multiple selection is enabled.
|
|
14
|
+
*/
|
|
15
|
+
export interface ListboxProps<Multiple = false> extends StandardProps, Partial<DataProps<InnerItemDataType>>, Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
12
16
|
groupBy?: string;
|
|
13
17
|
disabledItemValues?: any[];
|
|
14
18
|
activeItemValues?: any[];
|
|
15
19
|
focusItemValue?: any;
|
|
16
20
|
maxHeight?: number;
|
|
17
|
-
valueKey?: string;
|
|
18
|
-
labelKey?: string;
|
|
19
|
-
className?: string;
|
|
20
|
-
style?: React.CSSProperties;
|
|
21
21
|
listItemAs: React.ElementType | string;
|
|
22
22
|
listItemClassPrefix?: string;
|
|
23
23
|
listItemProps?: any;
|
|
24
24
|
rowHeight?: number;
|
|
25
|
+
/** */
|
|
25
26
|
rowGroupHeight?: number;
|
|
27
|
+
/** */
|
|
26
28
|
virtualized?: boolean;
|
|
29
|
+
/** */
|
|
27
30
|
listProps?: Partial<ListProps>;
|
|
31
|
+
/** */
|
|
28
32
|
listRef?: React.Ref<ListHandle>;
|
|
29
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Query string for filtering.
|
|
35
|
+
*/
|
|
36
|
+
query?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Custom function to render a selected option.
|
|
39
|
+
* @param itemLabel - The label of the item.
|
|
40
|
+
* @param item - The selected item.
|
|
41
|
+
* @returns The rendered React node.
|
|
42
|
+
*/
|
|
30
43
|
renderMenuItem?: (itemLabel: React.ReactNode, item: any) => React.ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* Custom function to render a menu group.
|
|
46
|
+
* @param title - The title of the group.
|
|
47
|
+
* @param item - The group item.
|
|
48
|
+
* @returns The rendered React node.
|
|
49
|
+
*/
|
|
31
50
|
renderMenuGroup?: (title: React.ReactNode, item: any) => React.ReactNode;
|
|
51
|
+
/**
|
|
52
|
+
* Event handler for selecting an option.
|
|
53
|
+
* @param value - The selected value.
|
|
54
|
+
* @param item - The selected item.
|
|
55
|
+
* @param event - The mouse event.
|
|
56
|
+
* @param checked - The checked state (only applicable for multiple selection).
|
|
57
|
+
*/
|
|
32
58
|
onSelect?: Multiple extends true ? (value: any, item: any, event: React.MouseEvent, checked: boolean) => void : Multiple extends false ? (value: any, item: any, event: React.MouseEvent) => void : any;
|
|
59
|
+
/**
|
|
60
|
+
* Event handler for clicking on a group title.
|
|
61
|
+
* @param event - The mouse event.
|
|
62
|
+
*/
|
|
33
63
|
onGroupTitleClick?: (event: React.MouseEvent) => void;
|
|
34
64
|
}
|
|
35
65
|
export declare type ListboxComponent = React.ForwardRefExoticComponent<ListboxProps> & {
|
|
@@ -19,11 +19,19 @@ import { mergeRefs, useClassNames, useMount, useEventCallback } from '../../util
|
|
|
19
19
|
import ListItemGroup from './ListItemGroup';
|
|
20
20
|
import { KEY_GROUP_TITLE } from '../../utils/getDataGroupBy';
|
|
21
21
|
import useCombobox from './hooks/useCombobox';
|
|
22
|
+
import Highlight from '../../Highlight';
|
|
22
23
|
import { RSUITE_PICKER_GROUP_KEY } from '../../internals/symbols';
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Props for the Listbox component.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* Props for the Listbox component.
|
|
30
|
+
* @template Multiple - Whether multiple selection is enabled.
|
|
31
|
+
*/
|
|
23
32
|
var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
24
33
|
var _props$data = props.data,
|
|
25
34
|
data = _props$data === void 0 ? [] : _props$data,
|
|
26
|
-
group = props.group,
|
|
27
35
|
groupBy = props.groupBy,
|
|
28
36
|
_props$maxHeight = props.maxHeight,
|
|
29
37
|
maxHeight = _props$maxHeight === void 0 ? 320 : _props$maxHeight,
|
|
@@ -50,17 +58,19 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
50
58
|
rowHeight = _props$rowHeight === void 0 ? 36 : _props$rowHeight,
|
|
51
59
|
_props$rowGroupHeight = props.rowGroupHeight,
|
|
52
60
|
rowGroupHeight = _props$rowGroupHeight === void 0 ? 48 : _props$rowGroupHeight,
|
|
61
|
+
query = props.query,
|
|
53
62
|
renderMenuGroup = props.renderMenuGroup,
|
|
54
63
|
renderMenuItem = props.renderMenuItem,
|
|
55
64
|
onGroupTitleClick = props.onGroupTitleClick,
|
|
56
65
|
onSelect = props.onSelect,
|
|
57
|
-
rest = _objectWithoutPropertiesLoose(props, ["data", "
|
|
66
|
+
rest = _objectWithoutPropertiesLoose(props, ["data", "groupBy", "maxHeight", "activeItemValues", "disabledItemValues", "classPrefix", "valueKey", "labelKey", "virtualized", "listProps", "listRef", "className", "style", "focusItemValue", "listItemClassPrefix", "listItemAs", "listItemProps", "rowHeight", "rowGroupHeight", "query", "renderMenuGroup", "renderMenuItem", "onGroupTitleClick", "onSelect"]);
|
|
58
67
|
var _useClassNames = useClassNames(classPrefix),
|
|
59
68
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
60
69
|
prefix = _useClassNames.prefix,
|
|
61
70
|
merge = _useClassNames.merge;
|
|
71
|
+
var groupable = typeof groupBy !== 'undefined';
|
|
62
72
|
var classes = merge(className, withClassPrefix('items', {
|
|
63
|
-
grouped:
|
|
73
|
+
grouped: groupable
|
|
64
74
|
}));
|
|
65
75
|
var _useCombobox = useCombobox(),
|
|
66
76
|
id = _useCombobox.id,
|
|
@@ -87,7 +97,7 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
87
97
|
});
|
|
88
98
|
var getRowHeight = function getRowHeight(list, index) {
|
|
89
99
|
var item = list[index];
|
|
90
|
-
if (
|
|
100
|
+
if (groupable && item[RSUITE_PICKER_GROUP_KEY] && index !== 0) {
|
|
91
101
|
return rowGroupHeight;
|
|
92
102
|
}
|
|
93
103
|
return rowHeight;
|
|
@@ -113,16 +123,12 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
113
123
|
scrollTop(container, Math.max(0, position.top - sHeight + 32));
|
|
114
124
|
}
|
|
115
125
|
}, [focusItemValue, menuBodyContainerRef, prefix]);
|
|
116
|
-
var filteredItems =
|
|
126
|
+
var filteredItems = groupable ? data.filter(function (item) {
|
|
117
127
|
var _item$parent;
|
|
118
128
|
// Display group title items
|
|
119
129
|
if (item[RSUITE_PICKER_GROUP_KEY]) return true;
|
|
120
130
|
|
|
121
131
|
// Display items under the unfolded group
|
|
122
|
-
// FIXME-Doma
|
|
123
|
-
// `groupBy` is bound to be string when `group` is true
|
|
124
|
-
// because `group` is actually redundant as a prop
|
|
125
|
-
// It could simply be derived from `groupBy` value
|
|
126
132
|
var groupValue = get(item, groupBy, '') || ( // FIXME-Doma
|
|
127
133
|
// Usage of `item.parent` is strongly discouraged
|
|
128
134
|
// It's only here for legacy support
|
|
@@ -139,7 +145,11 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
139
145
|
itemData = _ref.item;
|
|
140
146
|
var item = itemData || data[index];
|
|
141
147
|
var value = item[valueKey];
|
|
142
|
-
var
|
|
148
|
+
var itemLabel = item[labelKey];
|
|
149
|
+
var label = query ? /*#__PURE__*/React.createElement(Highlight, {
|
|
150
|
+
query: query,
|
|
151
|
+
as: "span"
|
|
152
|
+
}, itemLabel) : itemLabel;
|
|
143
153
|
if (isUndefined(label) && !item[RSUITE_PICKER_GROUP_KEY]) {
|
|
144
154
|
throw Error("labelKey \"" + labelKey + "\" is not defined in \"data\" : " + index);
|
|
145
155
|
}
|
|
@@ -147,13 +157,9 @@ var Listbox = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
147
157
|
// Use `value` in keys when If `value` is string or number
|
|
148
158
|
var itemKey = isString(value) || isNumber(value) ? value : index;
|
|
149
159
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
* when if `group` is enabled
|
|
153
|
-
*/
|
|
154
|
-
if (group && item[RSUITE_PICKER_GROUP_KEY]) {
|
|
160
|
+
// Render <ListboxGroup> component when `groupBy` is defined
|
|
161
|
+
if (groupable && item[RSUITE_PICKER_GROUP_KEY]) {
|
|
155
162
|
var groupValue = item[KEY_GROUP_TITLE];
|
|
156
|
-
// TODO: grouped options should be owned by group
|
|
157
163
|
return /*#__PURE__*/React.createElement(ListItemGroup, {
|
|
158
164
|
style: style,
|
|
159
165
|
classPrefix: 'picker-menu-group',
|
|
@@ -4,7 +4,8 @@ interface PickerIndicatorProps {
|
|
|
4
4
|
caretAs?: React.ElementType | null;
|
|
5
5
|
onClose?: (event: React.MouseEvent<HTMLElement>) => void;
|
|
6
6
|
showCleanButton?: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
7
8
|
as?: React.ElementType;
|
|
8
9
|
}
|
|
9
|
-
declare const PickerIndicator: ({ loading, caretAs, onClose, showCleanButton, as: Component }: PickerIndicatorProps) => JSX.Element;
|
|
10
|
+
declare const PickerIndicator: ({ loading, caretAs, onClose, showCleanButton, as: Component, disabled }: PickerIndicatorProps) => JSX.Element;
|
|
10
11
|
export default PickerIndicator;
|
|
@@ -11,7 +11,8 @@ var PickerIndicator = function PickerIndicator(_ref) {
|
|
|
11
11
|
onClose = _ref.onClose,
|
|
12
12
|
showCleanButton = _ref.showCleanButton,
|
|
13
13
|
_ref$as = _ref.as,
|
|
14
|
-
Component = _ref$as === void 0 ? InputGroup.Addon : _ref$as
|
|
14
|
+
Component = _ref$as === void 0 ? InputGroup.Addon : _ref$as,
|
|
15
|
+
disabled = _ref.disabled;
|
|
15
16
|
var _useCustom = useCustom(),
|
|
16
17
|
locale = _useCustom.locale;
|
|
17
18
|
var _useClassNames = useClassNames('picker'),
|
|
@@ -23,7 +24,7 @@ var PickerIndicator = function PickerIndicator(_ref) {
|
|
|
23
24
|
"data-testid": "spinner"
|
|
24
25
|
});
|
|
25
26
|
}
|
|
26
|
-
if (showCleanButton) {
|
|
27
|
+
if (showCleanButton && !disabled) {
|
|
27
28
|
return /*#__PURE__*/React.createElement(CloseButton, {
|
|
28
29
|
className: prefix('clean'),
|
|
29
30
|
tabIndex: -1,
|
|
@@ -38,6 +39,9 @@ var PickerIndicator = function PickerIndicator(_ref) {
|
|
|
38
39
|
className: prefix('caret-icon')
|
|
39
40
|
});
|
|
40
41
|
};
|
|
41
|
-
|
|
42
|
+
var props = Component === InputGroup.Addon ? {
|
|
43
|
+
disabled: disabled
|
|
44
|
+
} : undefined;
|
|
45
|
+
return /*#__PURE__*/React.createElement(Component, props, addon());
|
|
42
46
|
};
|
|
43
47
|
export default PickerIndicator;
|
|
@@ -5,7 +5,7 @@ import isUndefined from 'lodash/isUndefined';
|
|
|
5
5
|
import find from 'lodash/find';
|
|
6
6
|
import { getHeight } from 'dom-lib';
|
|
7
7
|
import { useEventCallback, shallowEqual } from '../../../utils';
|
|
8
|
-
import { findNodeOfTree } from '
|
|
8
|
+
import { findNodeOfTree } from '../../Tree/utils';
|
|
9
9
|
import { onMenuKeyDown } from '../utils';
|
|
10
10
|
/**
|
|
11
11
|
* A hook that manages the focus state of the option.
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { OverlayTriggerHandle } from '../PickerToggleTrigger';
|
|
3
3
|
import type { ListHandle } from '../../../internals/Windowing';
|
|
4
|
-
export interface PickerDependentParameters {
|
|
5
|
-
inline?: boolean;
|
|
6
|
-
}
|
|
7
4
|
/**
|
|
8
5
|
* A hook of the exposed method of Picker
|
|
9
6
|
*/
|
|
10
|
-
declare function usePickerRef(ref: any
|
|
7
|
+
declare function usePickerRef(ref: any): {
|
|
11
8
|
trigger: import("react").RefObject<OverlayTriggerHandle>;
|
|
12
9
|
root: import("react").MutableRefObject<any>;
|
|
13
10
|
overlay: import("react").RefObject<HTMLElement>;
|
|
@@ -5,7 +5,7 @@ import { RSUITE_PICKER_TYPE } from '../../../internals/symbols';
|
|
|
5
5
|
/**
|
|
6
6
|
* A hook of the exposed method of Picker
|
|
7
7
|
*/
|
|
8
|
-
function usePickerRef(ref
|
|
8
|
+
function usePickerRef(ref) {
|
|
9
9
|
var trigger = useRef(null);
|
|
10
10
|
var root = useRef(null);
|
|
11
11
|
var target = useRef(null);
|
|
@@ -13,8 +13,6 @@ function usePickerRef(ref, parmas) {
|
|
|
13
13
|
var list = useRef(null);
|
|
14
14
|
var searchInput = useRef(null);
|
|
15
15
|
var treeView = useRef(null);
|
|
16
|
-
var _ref = parmas || {},
|
|
17
|
-
inline = _ref.inline;
|
|
18
16
|
var handleOpen = useEventCallback(function () {
|
|
19
17
|
var _trigger$current;
|
|
20
18
|
trigger === null || trigger === void 0 ? void 0 : (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.open();
|
|
@@ -28,25 +26,10 @@ function usePickerRef(ref, parmas) {
|
|
|
28
26
|
trigger === null || trigger === void 0 ? void 0 : (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.updatePosition();
|
|
29
27
|
});
|
|
30
28
|
useImperativeHandle(ref, function () {
|
|
31
|
-
// Tree and CheckTree
|
|
32
|
-
if (inline) {
|
|
33
|
-
return {
|
|
34
|
-
get root() {
|
|
35
|
-
var _trigger$current$root, _trigger$current4;
|
|
36
|
-
return root !== null && root !== void 0 && root.current ? root === null || root === void 0 ? void 0 : root.current : (_trigger$current$root = trigger === null || trigger === void 0 ? void 0 : (_trigger$current4 = trigger.current) === null || _trigger$current4 === void 0 ? void 0 : _trigger$current4.root) !== null && _trigger$current$root !== void 0 ? _trigger$current$root : null;
|
|
37
|
-
},
|
|
38
|
-
get list() {
|
|
39
|
-
if (!(list !== null && list !== void 0 && list.current)) {
|
|
40
|
-
throw new Error('The list is not found, please set `virtualized` for the component.');
|
|
41
|
-
}
|
|
42
|
-
return list === null || list === void 0 ? void 0 : list.current;
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
29
|
return {
|
|
47
30
|
get root() {
|
|
48
|
-
var
|
|
49
|
-
return (
|
|
31
|
+
var _ref, _trigger$current4;
|
|
32
|
+
return (_ref = (root === null || root === void 0 ? void 0 : root.current) || (trigger === null || trigger === void 0 ? void 0 : (_trigger$current4 = trigger.current) === null || _trigger$current4 === void 0 ? void 0 : _trigger$current4.root)) !== null && _ref !== void 0 ? _ref : null;
|
|
50
33
|
},
|
|
51
34
|
get overlay() {
|
|
52
35
|
var _overlay$current;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { pickTriggerPropKeys, omitTriggerPropKeys, OverlayTriggerHandle, PositionChildProps } from './PickerToggleTrigger';
|
|
2
2
|
import { PickerToggleProps } from './PickerToggle';
|
|
3
3
|
import { PickerHandle, PickerComponent } from './types';
|
|
4
|
-
export { default as TreeView } from './TreeView';
|
|
5
4
|
export { default as Listbox } from './Listbox';
|
|
6
5
|
export { default as ListItem } from './ListItem';
|
|
7
6
|
export { default as ListItemGroup } from './ListItemGroup';
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { pickTriggerPropKeys, omitTriggerPropKeys } from './PickerToggleTrigger';
|
|
3
|
-
export { default as TreeView } from './TreeView';
|
|
4
3
|
export { default as Listbox } from './Listbox';
|
|
5
4
|
export { default as ListItem } from './ListItem';
|
|
6
5
|
export { default as ListItemGroup } from './ListItemGroup';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import trim from 'lodash/trim';
|
|
4
|
-
import { findNodeOfTree } from '
|
|
4
|
+
import { findNodeOfTree } from '../Tree/utils';
|
|
5
5
|
import { KEY_VALUES, reactToString } from '../../utils';
|
|
6
6
|
var defaultNodeKeys = {
|
|
7
7
|
valueKey: 'value',
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
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
|
-
import useCombobox from '
|
|
5
|
+
import useCombobox from '../Picker/hooks/useCombobox';
|
|
6
6
|
var TreeView = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
7
7
|
var children = props.children,
|
|
8
8
|
treeRootClassName = props.treeRootClassName,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as TreeView } from './TreeView';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare type HasChildren<T extends Record<string, unknown>> = T & {
|
|
2
|
+
children?: readonly HasChildren<T>[];
|
|
3
|
+
};
|
|
4
|
+
export declare function filterNodesOfTree<TItem extends HasChildren<Record<string, unknown>>>(data: readonly TItem[], check: (item: TItem) => boolean): TItem[];
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import clone from 'lodash/clone';
|
|
3
|
+
export function filterNodesOfTree(data, check) {
|
|
4
|
+
var findNodes = function findNodes(nodes) {
|
|
5
|
+
if (nodes === void 0) {
|
|
6
|
+
nodes = [];
|
|
7
|
+
}
|
|
8
|
+
var nextNodes = [];
|
|
9
|
+
for (var i = 0; i < nodes.length; i += 1) {
|
|
10
|
+
if (Array.isArray(nodes[i].children)) {
|
|
11
|
+
var nextChildren = findNodes(nodes[i].children);
|
|
12
|
+
if (nextChildren.length) {
|
|
13
|
+
var _item = clone(nodes[i]);
|
|
14
|
+
_item.children = nextChildren;
|
|
15
|
+
nextNodes.push(_item);
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (check(nodes[i])) {
|
|
20
|
+
nextNodes.push(nodes[i]);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return nextNodes;
|
|
24
|
+
};
|
|
25
|
+
return findNodes(data);
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function findNodeOfTree(data: any, check: any): any;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
export function findNodeOfTree(data, check) {
|
|
3
|
+
var findNode = function findNode(nodes) {
|
|
4
|
+
if (nodes === void 0) {
|
|
5
|
+
nodes = [];
|
|
6
|
+
}
|
|
7
|
+
for (var i = 0; i < nodes.length; i += 1) {
|
|
8
|
+
var item = nodes[i];
|
|
9
|
+
if (Array.isArray(item.children)) {
|
|
10
|
+
var node = findNode(item.children);
|
|
11
|
+
if (node) {
|
|
12
|
+
return node;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
if (check(item)) {
|
|
16
|
+
return item;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return undefined;
|
|
20
|
+
};
|
|
21
|
+
return findNode(data);
|
|
22
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* Returns a WeakMap that maps each item in `items` to its parent
|
|
4
|
+
* indicated by `getChildren` function
|
|
5
|
+
*/
|
|
6
|
+
export declare function getParentMap<T extends Record<string, unknown>>(items: readonly T[], getChildren: (item: T) => readonly T[] | undefined): WeakMap<T, T>;
|
|
7
|
+
/**
|
|
8
|
+
* Returns a Map that maps each item's "key", indicated by `getKey` function,
|
|
9
|
+
* to its parent indicated by `getChildren` function
|
|
10
|
+
*
|
|
11
|
+
* NOTICE:
|
|
12
|
+
* Using this function is discouraged.
|
|
13
|
+
* Use {@link getParentMap} whenever possible.
|
|
14
|
+
*/
|
|
15
|
+
export declare function getKeyParentMap<T = Record<string, unknown>, K = React.Key>(items: readonly T[], getKey: (item: T) => K, getChildren: (item: T) => readonly T[] | undefined): Map<K, T>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
4
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
5
|
+
/**
|
|
6
|
+
* Returns a WeakMap that maps each item in `items` to its parent
|
|
7
|
+
* indicated by `getChildren` function
|
|
8
|
+
*/
|
|
9
|
+
export function getParentMap(items, getChildren) {
|
|
10
|
+
var map = new WeakMap();
|
|
11
|
+
for (var queue = [].concat(items); queue.length > 0;) {
|
|
12
|
+
var _item = queue.shift();
|
|
13
|
+
var children = getChildren(_item);
|
|
14
|
+
if (children) {
|
|
15
|
+
for (var _iterator = _createForOfIteratorHelperLoose(children), _step; !(_step = _iterator()).done;) {
|
|
16
|
+
var child = _step.value;
|
|
17
|
+
map.set(child, _item);
|
|
18
|
+
queue.push(child);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return map;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns a Map that maps each item's "key", indicated by `getKey` function,
|
|
27
|
+
* to its parent indicated by `getChildren` function
|
|
28
|
+
*
|
|
29
|
+
* NOTICE:
|
|
30
|
+
* Using this function is discouraged.
|
|
31
|
+
* Use {@link getParentMap} whenever possible.
|
|
32
|
+
*/
|
|
33
|
+
export function getKeyParentMap(items, getKey, getChildren) {
|
|
34
|
+
var map = new Map();
|
|
35
|
+
for (var queue = [].concat(items); queue.length > 0;) {
|
|
36
|
+
var _item2 = queue.shift();
|
|
37
|
+
var children = getChildren(_item2);
|
|
38
|
+
if (children) {
|
|
39
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(children), _step2; !(_step2 = _iterator2()).done;) {
|
|
40
|
+
var child = _step2.value;
|
|
41
|
+
map.set(getKey(child), _item2);
|
|
42
|
+
queue.push(child);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return map;
|
|
47
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
/**
|
|
3
|
+
* Returns an array indicating the hierarchy path from root towards `target` item
|
|
4
|
+
*/
|
|
5
|
+
export function getPathTowardsItem(target, getParent) {
|
|
6
|
+
if (!target) return [];
|
|
7
|
+
var path = [target];
|
|
8
|
+
for (var parent = getParent(target); !!parent; parent = getParent(parent)) {
|
|
9
|
+
path.unshift(parent);
|
|
10
|
+
}
|
|
11
|
+
return path;
|
|
12
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { VariableSizeList, ListItemKeySelector, ListOnScrollProps, ListOnItemsRenderedProps } from 'react-window';
|
|
2
2
|
import { WithAsProps, RsRefForwardingComponent } from '../../@types/common';
|
|
3
|
+
export declare const defaultItemSize: () => number;
|
|
3
4
|
export interface ListProps<T = any> extends WithAsProps {
|
|
4
5
|
/**
|
|
5
6
|
* @deprecated use itemSize instead
|
|
@@ -4,6 +4,9 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
|
|
|
4
4
|
import React, { useRef, useImperativeHandle, useCallback, useMemo } from 'react';
|
|
5
5
|
import { VariableSizeList } from 'react-window';
|
|
6
6
|
import { useCustom } from '../../utils';
|
|
7
|
+
export var defaultItemSize = function defaultItemSize() {
|
|
8
|
+
return 36;
|
|
9
|
+
};
|
|
7
10
|
/**
|
|
8
11
|
* This component renders a virtualized list of elements with either fixed or dynamic heights.
|
|
9
12
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as AutoSizer } from './AutoSizer';
|
|
2
|
-
export { default as List } from './List';
|
|
2
|
+
export { default as List, defaultItemSize } from './List';
|
|
3
3
|
export { FixedSizeList, VariableSizeList } from 'react-window';
|
|
4
4
|
export type { ListChildComponentProps } from 'react-window';
|
|
5
5
|
export type { ListProps, ListHandle } from './List';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as useFoucsVirtualListItem } from './useFoucsVirtualListItem';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* Virtualized list loses focus when scrolling or clicking options, causing the component to re-render.
|
|
4
|
+
* To solve this problem, we need to refocus on the selected option after the component is re-rendered.
|
|
5
|
+
*/
|
|
6
|
+
declare function useFoucsVirtualListItem<T extends HTMLElement>(focused?: boolean): import("react").RefObject<T>;
|
|
7
|
+
export default useFoucsVirtualListItem;
|