rsuite 5.60.1 → 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 +37 -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 +63 -26
- package/DatePicker/styles/index.less +1 -0
- package/DateRangeInput/styles/index.css +4 -4
- package/DateRangePicker/styles/index.css +69 -26
- package/DateRangePicker/styles/index.less +3 -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/LICENSE +1 -1
- 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 +53 -90
- package/Radio/styles/index.css +7 -7
- package/Radio/styles/index.less +1 -5
- package/RangeSlider/styles/index.css +2 -2
- 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 +2 -2
- package/Slider/styles/index.less +2 -2
- 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 +16 -8
- package/Toggle/styles/index.less +2 -1
- 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/DateInput/DateField.js +3 -1
- package/cjs/DateInput/DateInput.js +17 -16
- package/{esm/DateInput → cjs/DateInput/hooks}/useDateInputState.d.ts +1 -1
- package/cjs/DateInput/{useDateInputState.js → hooks/useDateInputState.js} +2 -2
- package/cjs/DateInput/hooks/useFieldCursor.d.ts +6 -0
- package/cjs/DateInput/hooks/useFieldCursor.js +56 -0
- package/cjs/DateInput/hooks/useSelectedState.d.ts +14 -0
- package/cjs/DateInput/hooks/useSelectedState.js +23 -0
- package/cjs/DateInput/index.d.ts +5 -3
- package/cjs/DateInput/index.js +11 -5
- package/cjs/DateInput/utils.d.ts +0 -1
- package/cjs/DateInput/utils.js +2 -24
- 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/DateRangeInput/DateRangeInput.js +16 -17
- 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 +301 -302
- 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 +303 -306
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +302 -303
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +304 -307
- package/dist/rsuite.js +657 -140
- 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/DateInput/DateField.js +3 -1
- package/esm/DateInput/DateInput.js +19 -18
- package/{cjs/DateInput → esm/DateInput/hooks}/useDateInputState.d.ts +1 -1
- package/esm/DateInput/{useDateInputState.js → hooks/useDateInputState.js} +2 -2
- package/esm/DateInput/hooks/useFieldCursor.d.ts +6 -0
- package/esm/DateInput/hooks/useFieldCursor.js +49 -0
- package/esm/DateInput/hooks/useSelectedState.d.ts +14 -0
- package/esm/DateInput/hooks/useSelectedState.js +17 -0
- package/esm/DateInput/index.d.ts +5 -3
- package/esm/DateInput/index.js +5 -3
- package/esm/DateInput/utils.d.ts +0 -1
- package/esm/DateInput/utils.js +2 -23
- 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/DateRangeInput/DateRangeInput.js +17 -18
- 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 +2 -2
- 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/DateInput/{useIsFocused.d.ts → hooks/useIsFocused.d.ts} +0 -0
- /package/cjs/DateInput/{useIsFocused.js → hooks/useIsFocused.js} +0 -0
- /package/cjs/DateInput/{useKeyboardInputEvent.d.ts → hooks/useKeyboardInputEvent.d.ts} +0 -0
- /package/cjs/DateInput/{useKeyboardInputEvent.js → hooks/useKeyboardInputEvent.js} +0 -0
- /package/cjs/internals/{Picker → Tree}/TreeView.d.ts +0 -0
- /package/esm/DateInput/{useIsFocused.d.ts → hooks/useIsFocused.d.ts} +0 -0
- /package/esm/DateInput/{useIsFocused.js → hooks/useIsFocused.js} +0 -0
- /package/esm/DateInput/{useKeyboardInputEvent.d.ts → hooks/useKeyboardInputEvent.d.ts} +0 -0
- /package/esm/DateInput/{useKeyboardInputEvent.js → hooks/useKeyboardInputEvent.js} +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,53 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.default = void 0;
|
|
6
|
+
var _react = require("react");
|
|
7
|
+
var _utils = require("../../utils");
|
|
8
|
+
function useFocusState(props) {
|
|
9
|
+
var target = props.target,
|
|
10
|
+
value = props.value,
|
|
11
|
+
focusActiveNode = props.focusActiveNode;
|
|
12
|
+
var _useState = (0, _react.useState)(false),
|
|
13
|
+
active = _useState[0],
|
|
14
|
+
setActive = _useState[1];
|
|
15
|
+
var _useState2 = (0, _react.useState)(null),
|
|
16
|
+
focusItemValue = _useState2[0],
|
|
17
|
+
setFocusItemValue = _useState2[1];
|
|
18
|
+
var focusTarget = (0, _utils.useEventCallback)(function () {
|
|
19
|
+
var _target$current;
|
|
20
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
|
|
21
|
+
});
|
|
22
|
+
var onEnter = (0, _utils.useEventCallback)(function (node) {
|
|
23
|
+
var _props$onEnter;
|
|
24
|
+
setActive(true);
|
|
25
|
+
(_props$onEnter = props.onEnter) === null || _props$onEnter === void 0 ? void 0 : _props$onEnter.call(props, node);
|
|
26
|
+
});
|
|
27
|
+
var onExit = (0, _utils.useEventCallback)(function (node) {
|
|
28
|
+
var _props$onExit;
|
|
29
|
+
setActive(false);
|
|
30
|
+
focusTarget();
|
|
31
|
+
(_props$onExit = props.onExit) === null || _props$onExit === void 0 ? void 0 : _props$onExit.call(props, node);
|
|
32
|
+
});
|
|
33
|
+
var onEntered = (0, _utils.useEventCallback)(function (node) {
|
|
34
|
+
var _props$onEntered;
|
|
35
|
+
if (value) {
|
|
36
|
+
setFocusItemValue(value);
|
|
37
|
+
focusActiveNode();
|
|
38
|
+
}
|
|
39
|
+
(_props$onEntered = props.onEntered) === null || _props$onEntered === void 0 ? void 0 : _props$onEntered.call(props, node);
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
active: active,
|
|
43
|
+
focusItemValue: focusItemValue,
|
|
44
|
+
setFocusItemValue: setFocusItemValue,
|
|
45
|
+
triggerProps: {
|
|
46
|
+
onEnter: onEnter,
|
|
47
|
+
onExit: onExit,
|
|
48
|
+
onEntered: onEntered
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
var _default = useFocusState;
|
|
53
|
+
exports.default = _default;
|
package/cjs/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/cjs/index.js
CHANGED
|
@@ -4,13 +4,15 @@
|
|
|
4
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
5
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
6
|
exports.__esModule = true;
|
|
7
|
-
exports.useFormClassNames = exports.Accordion = exports.Tabs = exports.VisuallyHidden = exports.useMediaQuery = exports.CustomProvider = exports.Affix = exports.DOMHelper = exports.Animation = exports.Schema = exports.Stack = exports.Divider = exports.Footer = exports.Sidebar = exports.Header = exports.Content = exports.Container = exports.FlexboxGrid = exports.Col = exports.Row = exports.Grid = exports.Carousel = exports.Calendar = exports.List = exports.TagGroup = exports.Tag = exports.Timeline = exports.Table = exports.PanelGroup = exports.Panel = exports.MultiCascadeTree = exports.CascadeTree = exports.CheckTree = exports.Tree = exports.InlineEdit = exports.Rate = exports.RangeSlider = exports.Slider = exports.Uploader = exports.AutoComplete = exports.DateRangePicker = exports.DateRangeInput = exports.DatePicker = exports.DateInput = exports.MultiCascader = exports.Cascader = exports.CheckTreePicker = exports.TreePicker = exports.TagInput = exports.TagPicker = exports.InputPicker = exports.CheckPicker = exports.SelectPicker = exports.RadioTileGroup = exports.RadioTile = exports.RadioGroup = exports.Radio = exports.CheckboxGroup = exports.Checkbox = exports.InputGroup = exports.InputNumber = exports.MaskedInput = exports.Input = exports.Toggle = exports.Form = exports.Steps = exports.Pagination = exports.Breadcrumb = exports.Sidenav = exports.Navbar = exports.Nav = exports.AvatarGroup = exports.Avatar = exports.Progress = exports.useToaster = exports.toaster = exports.Badge = exports.Placeholder = exports.Loader = exports.Message = exports.Notification = exports.Dropdown = exports.Drawer = exports.Modal = exports.Popover = exports.Tooltip = exports.Whisper = exports.ButtonGroup = exports.ButtonToolbar = exports.IconButton = exports.Button = exports.SafeAnchor = exports.HeadingGroup = exports.Heading = exports.Text = void 0;
|
|
7
|
+
exports.useFormClassNames = exports.Accordion = exports.Tabs = exports.VisuallyHidden = exports.useMediaQuery = exports.CustomProvider = exports.Affix = exports.DOMHelper = exports.Animation = exports.Schema = exports.Stack = exports.Divider = exports.Footer = exports.Sidebar = exports.Header = exports.Content = exports.Container = exports.FlexboxGrid = exports.Col = exports.Row = exports.Grid = exports.Carousel = exports.Calendar = exports.List = exports.TagGroup = exports.Tag = exports.Timeline = exports.Table = exports.PanelGroup = exports.Panel = exports.MultiCascadeTree = exports.CascadeTree = exports.CheckTree = exports.Tree = exports.InlineEdit = exports.Rate = exports.RangeSlider = exports.Slider = exports.Uploader = exports.AutoComplete = exports.DateRangePicker = exports.DateRangeInput = exports.DatePicker = exports.DateInput = exports.MultiCascader = exports.Cascader = exports.CheckTreePicker = exports.TreePicker = exports.TagInput = exports.TagPicker = exports.InputPicker = exports.CheckPicker = exports.SelectPicker = exports.RadioTileGroup = exports.RadioTile = exports.RadioGroup = exports.Radio = exports.CheckboxGroup = exports.Checkbox = exports.InputGroup = exports.InputNumber = exports.MaskedInput = exports.Input = exports.Toggle = exports.Form = exports.Steps = exports.Pagination = exports.Breadcrumb = exports.Sidenav = exports.Navbar = exports.Nav = exports.AvatarGroup = exports.Avatar = exports.Progress = exports.useToaster = exports.toaster = exports.Badge = exports.Placeholder = exports.Loader = exports.Message = exports.Notification = exports.Dropdown = exports.Drawer = exports.Modal = exports.Popover = exports.Tooltip = exports.Whisper = exports.ButtonGroup = exports.ButtonToolbar = exports.IconButton = exports.Button = exports.SafeAnchor = exports.Highlight = exports.HeadingGroup = exports.Heading = exports.Text = void 0;
|
|
8
8
|
var _Text = _interopRequireDefault(require("./Text"));
|
|
9
9
|
exports.Text = _Text.default;
|
|
10
10
|
var _Heading = _interopRequireDefault(require("./Heading"));
|
|
11
11
|
exports.Heading = _Heading.default;
|
|
12
12
|
var _HeadingGroup = _interopRequireDefault(require("./HeadingGroup"));
|
|
13
13
|
exports.HeadingGroup = _HeadingGroup.default;
|
|
14
|
+
var _Highlight = _interopRequireDefault(require("./Highlight"));
|
|
15
|
+
exports.Highlight = _Highlight.default;
|
|
14
16
|
var _SafeAnchor = _interopRequireDefault(require("./SafeAnchor"));
|
|
15
17
|
exports.SafeAnchor = _SafeAnchor.default;
|
|
16
18
|
var _Button = _interopRequireDefault(require("./Button"));
|
|
@@ -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> & {
|
|
@@ -24,12 +24,19 @@ var _utils = require("../../utils");
|
|
|
24
24
|
var _ListItemGroup = _interopRequireDefault(require("./ListItemGroup"));
|
|
25
25
|
var _getDataGroupBy = require("../../utils/getDataGroupBy");
|
|
26
26
|
var _useCombobox2 = _interopRequireDefault(require("./hooks/useCombobox"));
|
|
27
|
+
var _Highlight = _interopRequireDefault(require("../../Highlight"));
|
|
27
28
|
var _symbols = require("../../internals/symbols");
|
|
28
29
|
var _this = void 0;
|
|
30
|
+
/**
|
|
31
|
+
* Props for the Listbox component.
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Props for the Listbox component.
|
|
35
|
+
* @template Multiple - Whether multiple selection is enabled.
|
|
36
|
+
*/
|
|
29
37
|
var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
30
38
|
var _props$data = props.data,
|
|
31
39
|
data = _props$data === void 0 ? [] : _props$data,
|
|
32
|
-
group = props.group,
|
|
33
40
|
groupBy = props.groupBy,
|
|
34
41
|
_props$maxHeight = props.maxHeight,
|
|
35
42
|
maxHeight = _props$maxHeight === void 0 ? 320 : _props$maxHeight,
|
|
@@ -56,17 +63,19 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
56
63
|
rowHeight = _props$rowHeight === void 0 ? 36 : _props$rowHeight,
|
|
57
64
|
_props$rowGroupHeight = props.rowGroupHeight,
|
|
58
65
|
rowGroupHeight = _props$rowGroupHeight === void 0 ? 48 : _props$rowGroupHeight,
|
|
66
|
+
query = props.query,
|
|
59
67
|
renderMenuGroup = props.renderMenuGroup,
|
|
60
68
|
renderMenuItem = props.renderMenuItem,
|
|
61
69
|
onGroupTitleClick = props.onGroupTitleClick,
|
|
62
70
|
onSelect = props.onSelect,
|
|
63
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["data", "
|
|
71
|
+
rest = (0, _objectWithoutPropertiesLoose2.default)(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"]);
|
|
64
72
|
var _useClassNames = (0, _utils.useClassNames)(classPrefix),
|
|
65
73
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
66
74
|
prefix = _useClassNames.prefix,
|
|
67
75
|
merge = _useClassNames.merge;
|
|
76
|
+
var groupable = typeof groupBy !== 'undefined';
|
|
68
77
|
var classes = merge(className, withClassPrefix('items', {
|
|
69
|
-
grouped:
|
|
78
|
+
grouped: groupable
|
|
70
79
|
}));
|
|
71
80
|
var _useCombobox = (0, _useCombobox2.default)(),
|
|
72
81
|
id = _useCombobox.id,
|
|
@@ -93,7 +102,7 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
93
102
|
});
|
|
94
103
|
var getRowHeight = function getRowHeight(list, index) {
|
|
95
104
|
var item = list[index];
|
|
96
|
-
if (
|
|
105
|
+
if (groupable && item[_symbols.RSUITE_PICKER_GROUP_KEY] && index !== 0) {
|
|
97
106
|
return rowGroupHeight;
|
|
98
107
|
}
|
|
99
108
|
return rowHeight;
|
|
@@ -119,16 +128,12 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
119
128
|
(0, _scrollTop.default)(container, Math.max(0, position.top - sHeight + 32));
|
|
120
129
|
}
|
|
121
130
|
}, [focusItemValue, menuBodyContainerRef, prefix]);
|
|
122
|
-
var filteredItems =
|
|
131
|
+
var filteredItems = groupable ? data.filter(function (item) {
|
|
123
132
|
var _item$parent;
|
|
124
133
|
// Display group title items
|
|
125
134
|
if (item[_symbols.RSUITE_PICKER_GROUP_KEY]) return true;
|
|
126
135
|
|
|
127
136
|
// Display items under the unfolded group
|
|
128
|
-
// FIXME-Doma
|
|
129
|
-
// `groupBy` is bound to be string when `group` is true
|
|
130
|
-
// because `group` is actually redundant as a prop
|
|
131
|
-
// It could simply be derived from `groupBy` value
|
|
132
137
|
var groupValue = (0, _get.default)(item, groupBy, '') || ( // FIXME-Doma
|
|
133
138
|
// Usage of `item.parent` is strongly discouraged
|
|
134
139
|
// It's only here for legacy support
|
|
@@ -145,7 +150,11 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
145
150
|
itemData = _ref.item;
|
|
146
151
|
var item = itemData || data[index];
|
|
147
152
|
var value = item[valueKey];
|
|
148
|
-
var
|
|
153
|
+
var itemLabel = item[labelKey];
|
|
154
|
+
var label = query ? /*#__PURE__*/_react.default.createElement(_Highlight.default, {
|
|
155
|
+
query: query,
|
|
156
|
+
as: "span"
|
|
157
|
+
}, itemLabel) : itemLabel;
|
|
149
158
|
if ((0, _isUndefined.default)(label) && !item[_symbols.RSUITE_PICKER_GROUP_KEY]) {
|
|
150
159
|
throw Error("labelKey \"" + labelKey + "\" is not defined in \"data\" : " + index);
|
|
151
160
|
}
|
|
@@ -153,13 +162,9 @@ var Listbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
153
162
|
// Use `value` in keys when If `value` is string or number
|
|
154
163
|
var itemKey = (0, _isString.default)(value) || (0, _isNumber.default)(value) ? value : index;
|
|
155
164
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
* when if `group` is enabled
|
|
159
|
-
*/
|
|
160
|
-
if (group && item[_symbols.RSUITE_PICKER_GROUP_KEY]) {
|
|
165
|
+
// Render <ListboxGroup> component when `groupBy` is defined
|
|
166
|
+
if (groupable && item[_symbols.RSUITE_PICKER_GROUP_KEY]) {
|
|
161
167
|
var groupValue = item[_getDataGroupBy.KEY_GROUP_TITLE];
|
|
162
|
-
// TODO: grouped options should be owned by group
|
|
163
168
|
return /*#__PURE__*/_react.default.createElement(_ListItemGroup.default, {
|
|
164
169
|
style: style,
|
|
165
170
|
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;
|
|
@@ -16,7 +16,8 @@ var PickerIndicator = function PickerIndicator(_ref) {
|
|
|
16
16
|
onClose = _ref.onClose,
|
|
17
17
|
showCleanButton = _ref.showCleanButton,
|
|
18
18
|
_ref$as = _ref.as,
|
|
19
|
-
Component = _ref$as === void 0 ? _InputGroup.default.Addon : _ref$as
|
|
19
|
+
Component = _ref$as === void 0 ? _InputGroup.default.Addon : _ref$as,
|
|
20
|
+
disabled = _ref.disabled;
|
|
20
21
|
var _useCustom = (0, _utils.useCustom)(),
|
|
21
22
|
locale = _useCustom.locale;
|
|
22
23
|
var _useClassNames = (0, _utils.useClassNames)('picker'),
|
|
@@ -28,7 +29,7 @@ var PickerIndicator = function PickerIndicator(_ref) {
|
|
|
28
29
|
"data-testid": "spinner"
|
|
29
30
|
});
|
|
30
31
|
}
|
|
31
|
-
if (showCleanButton) {
|
|
32
|
+
if (showCleanButton && !disabled) {
|
|
32
33
|
return /*#__PURE__*/_react.default.createElement(_CloseButton.default, {
|
|
33
34
|
className: prefix('clean'),
|
|
34
35
|
tabIndex: -1,
|
|
@@ -43,7 +44,10 @@ var PickerIndicator = function PickerIndicator(_ref) {
|
|
|
43
44
|
className: prefix('caret-icon')
|
|
44
45
|
});
|
|
45
46
|
};
|
|
46
|
-
|
|
47
|
+
var props = Component === _InputGroup.default.Addon ? {
|
|
48
|
+
disabled: disabled
|
|
49
|
+
} : undefined;
|
|
50
|
+
return /*#__PURE__*/_react.default.createElement(Component, props, addon());
|
|
47
51
|
};
|
|
48
52
|
var _default = PickerIndicator;
|
|
49
53
|
exports.default = _default;
|
|
@@ -10,8 +10,8 @@ var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
|
10
10
|
var _find = _interopRequireDefault(require("lodash/find"));
|
|
11
11
|
var _domLib = require("dom-lib");
|
|
12
12
|
var _utils = require("../../../utils");
|
|
13
|
-
var
|
|
14
|
-
var
|
|
13
|
+
var _utils2 = require("../../Tree/utils");
|
|
14
|
+
var _utils3 = require("../utils");
|
|
15
15
|
/**
|
|
16
16
|
* A hook that manages the focus state of the option.
|
|
17
17
|
* @param defaultFocusItemValue
|
|
@@ -182,7 +182,7 @@ var useFocusItemValue = function useFocusItemValue(defaultFocusItemValue, props)
|
|
|
182
182
|
var _getParent;
|
|
183
183
|
setKeys(nextKeys);
|
|
184
184
|
setLayer(nextLayer);
|
|
185
|
-
var focusItem = (0,
|
|
185
|
+
var focusItem = (0, _utils2.findNodeOfTree)(data, function (item) {
|
|
186
186
|
return item[valueKey] === focusItemValue;
|
|
187
187
|
});
|
|
188
188
|
var parentItemValue = (_getParent = getParent(focusItem)) === null || _getParent === void 0 ? void 0 : _getParent[valueKey];
|
|
@@ -194,7 +194,7 @@ var useFocusItemValue = function useFocusItemValue(defaultFocusItemValue, props)
|
|
|
194
194
|
});
|
|
195
195
|
var handleKeyDown = (0, _utils.useEventCallback)(function (event) {
|
|
196
196
|
var _onMenuKeyDown;
|
|
197
|
-
(0,
|
|
197
|
+
(0, _utils3.onMenuKeyDown)(event, (_onMenuKeyDown = {
|
|
198
198
|
down: focusNextMenuItem,
|
|
199
199
|
up: focusPrevMenuItem
|
|
200
200
|
}, _onMenuKeyDown[rtl ? 'left' : 'right'] = focusNextLevelMenu, _onMenuKeyDown[rtl ? 'right' : 'left'] = focusPrevLevelMenu, _onMenuKeyDown));
|
|
@@ -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>;
|
|
@@ -10,7 +10,7 @@ var _symbols = require("../../../internals/symbols");
|
|
|
10
10
|
/**
|
|
11
11
|
* A hook of the exposed method of Picker
|
|
12
12
|
*/
|
|
13
|
-
function usePickerRef(ref
|
|
13
|
+
function usePickerRef(ref) {
|
|
14
14
|
var trigger = (0, _react.useRef)(null);
|
|
15
15
|
var root = (0, _react.useRef)(null);
|
|
16
16
|
var target = (0, _react.useRef)(null);
|
|
@@ -18,8 +18,6 @@ function usePickerRef(ref, parmas) {
|
|
|
18
18
|
var list = (0, _react.useRef)(null);
|
|
19
19
|
var searchInput = (0, _react.useRef)(null);
|
|
20
20
|
var treeView = (0, _react.useRef)(null);
|
|
21
|
-
var _ref = parmas || {},
|
|
22
|
-
inline = _ref.inline;
|
|
23
21
|
var handleOpen = (0, _useEventCallback.default)(function () {
|
|
24
22
|
var _trigger$current;
|
|
25
23
|
trigger === null || trigger === void 0 ? void 0 : (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.open();
|
|
@@ -33,25 +31,10 @@ function usePickerRef(ref, parmas) {
|
|
|
33
31
|
trigger === null || trigger === void 0 ? void 0 : (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.updatePosition();
|
|
34
32
|
});
|
|
35
33
|
(0, _react.useImperativeHandle)(ref, function () {
|
|
36
|
-
// Tree and CheckTree
|
|
37
|
-
if (inline) {
|
|
38
|
-
return {
|
|
39
|
-
get root() {
|
|
40
|
-
var _trigger$current$root, _trigger$current4;
|
|
41
|
-
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;
|
|
42
|
-
},
|
|
43
|
-
get list() {
|
|
44
|
-
if (!(list !== null && list !== void 0 && list.current)) {
|
|
45
|
-
throw new Error('The list is not found, please set `virtualized` for the component.');
|
|
46
|
-
}
|
|
47
|
-
return list === null || list === void 0 ? void 0 : list.current;
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
34
|
return {
|
|
52
35
|
get root() {
|
|
53
|
-
var
|
|
54
|
-
return (
|
|
36
|
+
var _ref, _trigger$current4;
|
|
37
|
+
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;
|
|
55
38
|
},
|
|
56
39
|
get overlay() {
|
|
57
40
|
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';
|
|
@@ -5,7 +5,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
6
6
|
exports.__esModule = true;
|
|
7
7
|
var _exportNames = {
|
|
8
|
-
TreeView: true,
|
|
9
8
|
Listbox: true,
|
|
10
9
|
ListItem: true,
|
|
11
10
|
ListItemGroup: true,
|
|
@@ -19,13 +18,11 @@ var _exportNames = {
|
|
|
19
18
|
pickTriggerPropKeys: true,
|
|
20
19
|
omitTriggerPropKeys: true
|
|
21
20
|
};
|
|
22
|
-
exports.SelectedElement = exports.PickerToggleTrigger = exports.PickerIndicator = exports.PickerLabel = exports.PickerToggle = exports.PickerPopup = exports.ListCheckItem = exports.ListItemGroup = exports.ListItem = exports.Listbox =
|
|
21
|
+
exports.SelectedElement = exports.PickerToggleTrigger = exports.PickerIndicator = exports.PickerLabel = exports.PickerToggle = exports.PickerPopup = exports.ListCheckItem = exports.ListItemGroup = exports.ListItem = exports.Listbox = void 0;
|
|
23
22
|
var _PickerToggleTrigger = _interopRequireWildcard(require("./PickerToggleTrigger"));
|
|
24
23
|
exports.pickTriggerPropKeys = _PickerToggleTrigger.pickTriggerPropKeys;
|
|
25
24
|
exports.omitTriggerPropKeys = _PickerToggleTrigger.omitTriggerPropKeys;
|
|
26
25
|
exports.PickerToggleTrigger = _PickerToggleTrigger.default;
|
|
27
|
-
var _TreeView = _interopRequireDefault(require("./TreeView"));
|
|
28
|
-
exports.TreeView = _TreeView.default;
|
|
29
26
|
var _Listbox = _interopRequireDefault(require("./Listbox"));
|
|
30
27
|
exports.Listbox = _Listbox.default;
|
|
31
28
|
var _ListItem = _interopRequireDefault(require("./ListItem"));
|
|
@@ -8,8 +8,8 @@ exports.shouldDisplay = shouldDisplay;
|
|
|
8
8
|
exports.onMenuKeyDown = onMenuKeyDown;
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _trim = _interopRequireDefault(require("lodash/trim"));
|
|
11
|
-
var
|
|
12
|
-
var
|
|
11
|
+
var _utils = require("../Tree/utils");
|
|
12
|
+
var _utils2 = require("../../utils");
|
|
13
13
|
var defaultNodeKeys = {
|
|
14
14
|
valueKey: 'value',
|
|
15
15
|
childrenKey: 'children'
|
|
@@ -23,7 +23,7 @@ function createConcatChildrenFunction(node, nodeValue, nodeKeys) {
|
|
|
23
23
|
childrenKey = _nodeKeys.childrenKey;
|
|
24
24
|
return function (data, children) {
|
|
25
25
|
if (nodeValue) {
|
|
26
|
-
node = (0,
|
|
26
|
+
node = (0, _utils.findNodeOfTree)(data, function (item) {
|
|
27
27
|
return nodeValue === item[valueKey];
|
|
28
28
|
});
|
|
29
29
|
}
|
|
@@ -39,7 +39,7 @@ function shouldDisplay(label, searchKeyword) {
|
|
|
39
39
|
if (typeof label === 'string' || typeof label === 'number') {
|
|
40
40
|
return ("" + label).toLocaleLowerCase().indexOf(keyword) >= 0;
|
|
41
41
|
} else if ( /*#__PURE__*/_react.default.isValidElement(label)) {
|
|
42
|
-
var nodes = (0,
|
|
42
|
+
var nodes = (0, _utils2.reactToString)(label);
|
|
43
43
|
return nodes.join('').toLocaleLowerCase().indexOf(keyword) >= 0;
|
|
44
44
|
}
|
|
45
45
|
return false;
|
|
@@ -59,35 +59,35 @@ function onMenuKeyDown(event, events) {
|
|
|
59
59
|
left = events.left;
|
|
60
60
|
switch (event.key) {
|
|
61
61
|
// down
|
|
62
|
-
case
|
|
62
|
+
case _utils2.KEY_VALUES.DOWN:
|
|
63
63
|
down === null || down === void 0 ? void 0 : down(event);
|
|
64
64
|
event.preventDefault();
|
|
65
65
|
break;
|
|
66
66
|
// up
|
|
67
|
-
case
|
|
67
|
+
case _utils2.KEY_VALUES.UP:
|
|
68
68
|
up === null || up === void 0 ? void 0 : up(event);
|
|
69
69
|
event.preventDefault();
|
|
70
70
|
break;
|
|
71
71
|
// enter
|
|
72
|
-
case
|
|
72
|
+
case _utils2.KEY_VALUES.ENTER:
|
|
73
73
|
enter === null || enter === void 0 ? void 0 : enter(event);
|
|
74
74
|
event.preventDefault();
|
|
75
75
|
break;
|
|
76
76
|
// delete
|
|
77
|
-
case
|
|
77
|
+
case _utils2.KEY_VALUES.BACKSPACE:
|
|
78
78
|
del === null || del === void 0 ? void 0 : del(event);
|
|
79
79
|
break;
|
|
80
80
|
// esc | tab
|
|
81
|
-
case
|
|
82
|
-
case
|
|
81
|
+
case _utils2.KEY_VALUES.ESC:
|
|
82
|
+
case _utils2.KEY_VALUES.TAB:
|
|
83
83
|
esc === null || esc === void 0 ? void 0 : esc(event);
|
|
84
84
|
break;
|
|
85
85
|
// left arrow
|
|
86
|
-
case
|
|
86
|
+
case _utils2.KEY_VALUES.LEFT:
|
|
87
87
|
left === null || left === void 0 ? void 0 : left(event);
|
|
88
88
|
break;
|
|
89
89
|
// right arrow
|
|
90
|
-
case
|
|
90
|
+
case _utils2.KEY_VALUES.RIGHT:
|
|
91
91
|
right === null || right === void 0 ? void 0 : right(event);
|
|
92
92
|
break;
|
|
93
93
|
default:
|
|
@@ -7,7 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
8
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
|
-
var _useCombobox2 = _interopRequireDefault(require("
|
|
10
|
+
var _useCombobox2 = _interopRequireDefault(require("../Picker/hooks/useCombobox"));
|
|
11
11
|
var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
12
12
|
var children = props.children,
|
|
13
13
|
treeRootClassName = props.treeRootClassName,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as TreeView } from './TreeView';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.TreeView = void 0;
|
|
7
|
+
var _TreeView = _interopRequireDefault(require("./TreeView"));
|
|
8
|
+
exports.TreeView = _TreeView.default;
|
|
@@ -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,31 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.filterNodesOfTree = filterNodesOfTree;
|
|
7
|
+
var _clone = _interopRequireDefault(require("lodash/clone"));
|
|
8
|
+
function filterNodesOfTree(data, check) {
|
|
9
|
+
var findNodes = function findNodes(nodes) {
|
|
10
|
+
if (nodes === void 0) {
|
|
11
|
+
nodes = [];
|
|
12
|
+
}
|
|
13
|
+
var nextNodes = [];
|
|
14
|
+
for (var i = 0; i < nodes.length; i += 1) {
|
|
15
|
+
if (Array.isArray(nodes[i].children)) {
|
|
16
|
+
var nextChildren = findNodes(nodes[i].children);
|
|
17
|
+
if (nextChildren.length) {
|
|
18
|
+
var _item = (0, _clone.default)(nodes[i]);
|
|
19
|
+
_item.children = nextChildren;
|
|
20
|
+
nextNodes.push(_item);
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (check(nodes[i])) {
|
|
25
|
+
nextNodes.push(nodes[i]);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return nextNodes;
|
|
29
|
+
};
|
|
30
|
+
return findNodes(data);
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function findNodeOfTree(data: any, check: any): any;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.findNodeOfTree = findNodeOfTree;
|
|
6
|
+
function findNodeOfTree(data, check) {
|
|
7
|
+
var findNode = function findNode(nodes) {
|
|
8
|
+
if (nodes === void 0) {
|
|
9
|
+
nodes = [];
|
|
10
|
+
}
|
|
11
|
+
for (var i = 0; i < nodes.length; i += 1) {
|
|
12
|
+
var item = nodes[i];
|
|
13
|
+
if (Array.isArray(item.children)) {
|
|
14
|
+
var node = findNode(item.children);
|
|
15
|
+
if (node) {
|
|
16
|
+
return node;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (check(item)) {
|
|
20
|
+
return item;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
};
|
|
25
|
+
return findNode(data);
|
|
26
|
+
}
|
|
@@ -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>;
|