rsuite 5.60.2 → 5.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Accordion/styles/index.css +4 -4
- package/AutoComplete/styles/index.css +58 -22
- package/Button/styles/index.css +12 -8
- package/Button/styles/mixin.less +1 -1
- package/CHANGELOG.md +25 -0
- package/Calendar/styles/index.css +16 -15
- package/CascadeTree/styles/index.css +11 -9
- package/CascadeTree/styles/index.less +7 -0
- package/CascadeTree/styles/search.less +0 -10
- package/Cascader/styles/index.css +60 -31
- package/CheckPicker/styles/index.css +59 -27
- package/CheckPicker/styles/index.less +3 -3
- package/CheckTree/styles/index.css +160 -134
- package/CheckTree/styles/index.less +141 -1
- package/CheckTreePicker/styles/index.css +170 -126
- package/CheckTreePicker/styles/index.less +8 -181
- package/Checkbox/styles/index.css +7 -8
- package/Checkbox/styles/index.less +1 -5
- package/DateInput/styles/index.css +4 -4
- package/DatePicker/styles/index.css +62 -26
- package/DateRangeInput/styles/index.css +4 -4
- package/DateRangePicker/styles/index.css +67 -26
- package/DateRangePicker/styles/index.less +2 -0
- package/Dropdown/styles/index.css +14 -13
- package/Highlight/package.json +7 -0
- package/Highlight/styles/index.css +8 -0
- package/Highlight/styles/index.less +6 -0
- package/IconButton/styles/index.css +11 -10
- package/Input/styles/index.css +4 -4
- package/InputGroup/styles/index.css +18 -17
- package/InputGroup/styles/index.less +1 -1
- package/InputNumber/styles/index.css +19 -18
- package/InputPicker/styles/index.css +58 -22
- package/MultiCascadeTree/styles/index.css +61 -36
- package/MultiCascadeTree/styles/index.less +1 -1
- package/MultiCascader/styles/index.css +704 -679
- package/MultiCascader/styles/index.less +0 -1
- package/Nav/styles/index.css +15 -14
- package/Navbar/styles/index.css +14 -13
- package/Pagination/styles/index.css +62 -26
- package/Panel/styles/index.css +4 -4
- package/Placeholder/styles/index.css +2 -3
- package/Placeholder/styles/index.less +2 -3
- package/README.md +21 -39
- package/Radio/styles/index.css +7 -7
- package/Radio/styles/index.less +1 -5
- package/RangeSlider/styles/index.css +1 -1
- package/Rate/styles/index.css +1 -1
- package/Rate/styles/index.less +1 -1
- package/SelectPicker/styles/index.css +58 -22
- package/Slider/styles/index.css +1 -1
- package/Slider/styles/index.less +1 -1
- package/Steps/styles/index.css +6 -1
- package/Steps/styles/index.less +2 -1
- package/Tabs/styles/index.css +15 -14
- package/TagInput/styles/index.css +59 -27
- package/TagPicker/styles/index.css +59 -27
- package/Toggle/styles/index.css +10 -7
- package/Tree/styles/indent-line.less +8 -0
- package/Tree/styles/index.css +140 -141
- package/Tree/styles/index.less +188 -1
- package/Tree/styles/toggle.less +36 -0
- package/TreePicker/styles/index.css +142 -134
- package/TreePicker/styles/index.less +4 -234
- package/Uploader/styles/index.css +12 -11
- package/cjs/@types/common.d.ts +41 -4
- package/cjs/AutoComplete/AutoComplete.js +2 -1
- package/cjs/CascadeTree/CascadeTree.js +8 -7
- package/cjs/CascadeTree/SearchView.js +7 -14
- package/cjs/CascadeTree/hooks/usePaths.js +4 -4
- package/cjs/CascadeTree/hooks/useSearch.js +2 -1
- package/cjs/CascadeTree/utils.d.ts +0 -11
- package/cjs/CascadeTree/utils.js +0 -23
- package/cjs/Cascader/Cascader.js +17 -16
- package/cjs/CheckPicker/CheckPicker.js +26 -29
- package/cjs/CheckTree/CheckTree.d.ts +16 -0
- package/cjs/CheckTree/CheckTree.js +112 -0
- package/cjs/CheckTree/CheckTreeNode.d.ts +72 -0
- package/cjs/CheckTree/CheckTreeNode.js +117 -0
- package/cjs/CheckTree/CheckTreeView.d.ts +70 -0
- package/cjs/CheckTree/CheckTreeView.js +310 -0
- package/cjs/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
- package/cjs/CheckTree/hooks/useTreeCheckState.js +93 -0
- package/cjs/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
- package/cjs/CheckTree/hooks/useTreeNodeProps.js +59 -0
- package/cjs/CheckTree/hooks/useTreeValue.d.ts +5 -0
- package/cjs/CheckTree/hooks/useTreeValue.js +21 -0
- package/cjs/CheckTree/index.d.ts +2 -14
- package/cjs/CheckTree/index.js +2 -23
- package/cjs/CheckTree/utils.d.ts +53 -0
- package/cjs/{CheckTreePicker → CheckTree}/utils.js +76 -26
- package/cjs/CheckTreePicker/CheckTreePicker.d.ts +30 -12
- package/cjs/CheckTreePicker/CheckTreePicker.js +153 -603
- package/cjs/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
- package/cjs/CheckTreePicker/hooks/useFocusState.js +42 -0
- package/cjs/DatePicker/DatePicker.d.ts +4 -0
- package/cjs/DatePicker/DatePicker.js +20 -5
- package/cjs/DatePicker/types.d.ts +0 -4
- package/cjs/DateRangePicker/DateRangePicker.d.ts +51 -23
- package/cjs/DateRangePicker/DateRangePicker.js +71 -51
- package/cjs/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
- package/cjs/DateRangePicker/hooks/useDateDisabled.js +31 -0
- package/cjs/DateRangePicker/types.d.ts +1 -0
- package/cjs/Highlight/Highlight.d.ts +14 -0
- package/cjs/Highlight/Highlight.js +58 -0
- package/cjs/Highlight/index.d.ts +3 -0
- package/cjs/Highlight/index.js +9 -0
- package/cjs/Highlight/utils/highlightText.d.ts +5 -0
- package/cjs/Highlight/utils/highlightText.js +29 -0
- package/cjs/InputPicker/InputPicker.js +37 -41
- package/cjs/MultiCascadeTree/SearchView.js +6 -14
- package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
- package/cjs/MultiCascadeTree/hooks/useColumnData.js +2 -2
- package/cjs/MultiCascadeTree/hooks/useFlattenData.js +3 -3
- package/cjs/MultiCascadeTree/hooks/useSearch.js +2 -1
- package/cjs/MultiCascadeTree/utils.d.ts +4 -4
- package/cjs/MultiCascadeTree/utils.js +20 -11
- package/cjs/MultiCascader/MultiCascader.js +12 -12
- package/cjs/SelectPicker/SelectPicker.js +2 -6
- package/cjs/Tree/IndentLine.d.ts +3 -0
- package/cjs/Tree/IndentLine.js +18 -0
- package/cjs/Tree/Tree.d.ts +4 -92
- package/cjs/Tree/Tree.js +79 -20
- package/cjs/Tree/TreeNode.d.ts +101 -0
- package/cjs/Tree/TreeNode.js +147 -0
- package/cjs/Tree/TreeNodeToggle.d.ts +9 -0
- package/cjs/Tree/TreeNodeToggle.js +56 -0
- package/cjs/Tree/TreeProvider.d.ts +52 -0
- package/cjs/Tree/TreeProvider.js +84 -0
- package/cjs/Tree/TreeView.d.ts +68 -0
- package/cjs/Tree/TreeView.js +305 -0
- package/cjs/Tree/hooks/useExpandTree.d.ts +60 -0
- package/cjs/Tree/hooks/useExpandTree.js +77 -0
- package/cjs/Tree/hooks/useFlattenTree.d.ts +42 -0
- package/cjs/Tree/hooks/useFlattenTree.js +98 -0
- package/cjs/Tree/hooks/useFocusTree.d.ts +24 -0
- package/cjs/Tree/hooks/useFocusTree.js +158 -0
- package/cjs/Tree/hooks/useForceUpdate.d.ts +2 -0
- package/cjs/Tree/hooks/useForceUpdate.js +16 -0
- package/cjs/Tree/hooks/useTreeDrag.d.ts +32 -0
- package/cjs/Tree/hooks/useTreeDrag.js +268 -0
- package/cjs/Tree/hooks/useTreeNodeProps.d.ts +29 -0
- package/cjs/Tree/hooks/useTreeNodeProps.js +83 -0
- package/cjs/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
- package/cjs/Tree/hooks/useTreeNodeRefs.js +22 -0
- package/cjs/Tree/hooks/useTreeSearch.d.ts +18 -0
- package/cjs/Tree/hooks/useTreeSearch.js +74 -0
- package/cjs/Tree/hooks/useTreeWithChildren.d.ts +14 -0
- package/cjs/Tree/hooks/useTreeWithChildren.js +64 -0
- package/cjs/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
- package/cjs/Tree/hooks/useVirtualizedTreeData.js +82 -0
- package/cjs/Tree/types.d.ts +257 -0
- package/cjs/Tree/types.js +33 -0
- package/cjs/Tree/utils/flattenTree.d.ts +25 -0
- package/cjs/Tree/utils/flattenTree.js +95 -0
- package/cjs/Tree/utils/focusableTree.d.ts +55 -0
- package/cjs/Tree/utils/focusableTree.js +157 -0
- package/cjs/Tree/utils/formatNodeRefKey.d.ts +4 -0
- package/cjs/Tree/utils/formatNodeRefKey.js +11 -0
- package/cjs/Tree/utils/getExpandItemValues.d.ts +11 -0
- package/cjs/Tree/utils/getExpandItemValues.js +21 -0
- package/cjs/Tree/utils/getNodeParentKeys.d.ts +5 -0
- package/cjs/Tree/utils/getNodeParentKeys.js +21 -0
- package/cjs/Tree/utils/getTreeActiveNode.d.ts +5 -0
- package/cjs/Tree/utils/getTreeActiveNode.js +21 -0
- package/cjs/Tree/utils/hasVisibleChildren.d.ts +5 -0
- package/cjs/Tree/utils/hasVisibleChildren.js +16 -0
- package/cjs/Tree/utils/indentTreeNode.d.ts +3 -0
- package/cjs/Tree/utils/indentTreeNode.js +18 -0
- package/cjs/Tree/utils/index.d.ts +11 -0
- package/cjs/Tree/utils/index.js +35 -0
- package/cjs/Tree/utils/isExpand.d.ts +6 -0
- package/cjs/Tree/utils/isExpand.js +14 -0
- package/cjs/Tree/utils/isSearching.d.ts +1 -0
- package/cjs/Tree/utils/isSearching.js +10 -0
- package/cjs/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
- package/cjs/Tree/utils/treeKeyboardInteractions.js +49 -0
- package/cjs/TreePicker/TreePicker.d.ts +27 -21
- package/cjs/TreePicker/TreePicker.js +155 -575
- package/cjs/TreePicker/hooks/useFocusState.d.ts +20 -0
- package/cjs/TreePicker/hooks/useFocusState.js +53 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +3 -1
- package/cjs/internals/Picker/Listbox.d.ts +40 -10
- package/cjs/internals/Picker/Listbox.js +21 -16
- package/cjs/internals/Picker/PickerIndicator.d.ts +2 -1
- package/cjs/internals/Picker/PickerIndicator.js +7 -3
- package/cjs/internals/Picker/hooks/useFocusItemValue.js +4 -4
- package/cjs/internals/Picker/hooks/usePickerRef.d.ts +1 -4
- package/cjs/internals/Picker/hooks/usePickerRef.js +3 -20
- package/cjs/internals/Picker/index.d.ts +0 -1
- package/cjs/internals/Picker/index.js +1 -4
- package/cjs/internals/Picker/utils.js +12 -12
- package/cjs/internals/{Picker → Tree}/TreeView.js +1 -1
- package/cjs/internals/Tree/index.d.ts +1 -0
- package/cjs/internals/Tree/index.js +8 -0
- package/cjs/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
- package/cjs/internals/Tree/utils/filterNodesOfTree.js +31 -0
- package/cjs/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
- package/cjs/internals/Tree/utils/findNodeOfTree.js +26 -0
- package/cjs/internals/Tree/utils/getParentMap.d.ts +15 -0
- package/cjs/internals/Tree/utils/getParentMap.js +52 -0
- package/cjs/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
- package/cjs/internals/Tree/utils/getPathTowardsItem.js +16 -0
- package/cjs/internals/Tree/utils/index.d.ts +4 -0
- package/cjs/internals/Tree/utils/index.js +14 -0
- package/cjs/internals/Windowing/List.d.ts +1 -0
- package/cjs/internals/Windowing/List.js +5 -1
- package/cjs/internals/Windowing/index.d.ts +1 -1
- package/cjs/internals/Windowing/index.js +4 -2
- package/cjs/internals/hooks/index.d.ts +1 -0
- package/cjs/internals/hooks/index.js +8 -0
- package/cjs/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
- package/cjs/internals/hooks/useFoucsVirtualListItem.js +26 -0
- package/cjs/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
- package/cjs/{utils → internals/utils}/getSafeRegExpString.js +1 -1
- package/cjs/internals/utils/index.d.ts +2 -0
- package/cjs/internals/utils/index.js +9 -0
- package/cjs/internals/utils/stringifyReactNode.d.ts +2 -0
- package/cjs/internals/utils/stringifyReactNode.js +17 -0
- package/cjs/utils/constants.d.ts +0 -2
- package/cjs/utils/constants.js +1 -6
- package/cjs/utils/getDataGroupBy.js +3 -3
- package/cjs/utils/index.d.ts +0 -3
- package/cjs/utils/index.js +1 -10
- package/cjs/utils/useIsomorphicLayoutEffect.d.ts +2 -2
- package/dist/rsuite-no-reset-rtl.css +292 -300
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +294 -304
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +293 -301
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +295 -305
- package/dist/rsuite.js +611 -116
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/@types/common.d.ts +41 -4
- package/esm/AutoComplete/AutoComplete.js +2 -1
- package/esm/CascadeTree/CascadeTree.js +2 -1
- package/esm/CascadeTree/SearchView.js +6 -13
- package/esm/CascadeTree/hooks/usePaths.js +1 -1
- package/esm/CascadeTree/hooks/useSearch.js +2 -1
- package/esm/CascadeTree/utils.d.ts +0 -11
- package/esm/CascadeTree/utils.js +0 -22
- package/esm/Cascader/Cascader.js +2 -1
- package/esm/CheckPicker/CheckPicker.js +4 -7
- package/esm/CheckTree/CheckTree.d.ts +16 -0
- package/esm/CheckTree/CheckTree.js +105 -0
- package/esm/CheckTree/CheckTreeNode.d.ts +72 -0
- package/esm/CheckTree/CheckTreeNode.js +110 -0
- package/esm/CheckTree/CheckTreeView.d.ts +70 -0
- package/esm/CheckTree/CheckTreeView.js +304 -0
- package/esm/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
- package/esm/CheckTree/hooks/useTreeCheckState.js +87 -0
- package/esm/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
- package/esm/CheckTree/hooks/useTreeNodeProps.js +52 -0
- package/esm/CheckTree/hooks/useTreeValue.d.ts +5 -0
- package/esm/CheckTree/hooks/useTreeValue.js +16 -0
- package/esm/CheckTree/index.d.ts +2 -14
- package/esm/CheckTree/index.js +1 -21
- package/esm/CheckTree/utils.d.ts +53 -0
- package/esm/{CheckTreePicker → CheckTree}/utils.js +72 -22
- package/esm/CheckTreePicker/CheckTreePicker.d.ts +30 -12
- package/esm/CheckTreePicker/CheckTreePicker.js +156 -607
- package/esm/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
- package/esm/CheckTreePicker/hooks/useFocusState.js +37 -0
- package/esm/DatePicker/DatePicker.d.ts +4 -0
- package/esm/DatePicker/DatePicker.js +20 -5
- package/esm/DatePicker/types.d.ts +0 -4
- package/esm/DateRangePicker/DateRangePicker.d.ts +51 -23
- package/esm/DateRangePicker/DateRangePicker.js +71 -51
- package/esm/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
- package/esm/DateRangePicker/hooks/useDateDisabled.js +26 -0
- package/esm/DateRangePicker/types.d.ts +1 -0
- package/esm/Highlight/Highlight.d.ts +14 -0
- package/esm/Highlight/Highlight.js +52 -0
- package/esm/Highlight/index.d.ts +3 -0
- package/esm/Highlight/index.js +3 -0
- package/esm/Highlight/utils/highlightText.d.ts +5 -0
- package/esm/Highlight/utils/highlightText.js +25 -0
- package/esm/InputPicker/InputPicker.js +3 -7
- package/esm/MultiCascadeTree/SearchView.js +6 -14
- package/esm/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
- package/esm/MultiCascadeTree/hooks/useColumnData.js +1 -1
- package/esm/MultiCascadeTree/hooks/useFlattenData.js +1 -1
- package/esm/MultiCascadeTree/hooks/useSearch.js +2 -1
- package/esm/MultiCascadeTree/utils.d.ts +4 -4
- package/esm/MultiCascadeTree/utils.js +18 -9
- package/esm/MultiCascader/MultiCascader.js +1 -1
- package/esm/SelectPicker/SelectPicker.js +2 -6
- package/esm/Tree/IndentLine.d.ts +3 -0
- package/esm/Tree/IndentLine.js +12 -0
- package/esm/Tree/Tree.d.ts +4 -92
- package/esm/Tree/Tree.js +78 -18
- package/esm/Tree/TreeNode.d.ts +101 -0
- package/esm/Tree/TreeNode.js +141 -0
- package/esm/Tree/TreeNodeToggle.d.ts +9 -0
- package/esm/Tree/TreeNodeToggle.js +50 -0
- package/esm/Tree/TreeProvider.d.ts +52 -0
- package/esm/Tree/TreeProvider.js +74 -0
- package/esm/Tree/TreeView.d.ts +68 -0
- package/esm/Tree/TreeView.js +299 -0
- package/esm/Tree/hooks/useExpandTree.d.ts +60 -0
- package/esm/Tree/hooks/useExpandTree.js +70 -0
- package/esm/Tree/hooks/useFlattenTree.d.ts +42 -0
- package/esm/Tree/hooks/useFlattenTree.js +92 -0
- package/esm/Tree/hooks/useFocusTree.d.ts +24 -0
- package/esm/Tree/hooks/useFocusTree.js +153 -0
- package/esm/Tree/hooks/useForceUpdate.d.ts +2 -0
- package/esm/Tree/hooks/useForceUpdate.js +11 -0
- package/esm/Tree/hooks/useTreeDrag.d.ts +32 -0
- package/esm/Tree/hooks/useTreeDrag.js +264 -0
- package/esm/Tree/hooks/useTreeNodeProps.d.ts +29 -0
- package/esm/Tree/hooks/useTreeNodeProps.js +76 -0
- package/esm/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
- package/esm/Tree/hooks/useTreeNodeRefs.js +18 -0
- package/esm/Tree/hooks/useTreeSearch.d.ts +18 -0
- package/esm/Tree/hooks/useTreeSearch.js +69 -0
- package/esm/Tree/hooks/useTreeWithChildren.d.ts +14 -0
- package/esm/Tree/hooks/useTreeWithChildren.js +59 -0
- package/esm/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
- package/esm/Tree/hooks/useVirtualizedTreeData.js +77 -0
- package/esm/Tree/types.d.ts +257 -0
- package/esm/Tree/types.js +30 -0
- package/esm/Tree/utils/flattenTree.d.ts +25 -0
- package/esm/Tree/utils/flattenTree.js +88 -0
- package/esm/Tree/utils/focusableTree.d.ts +55 -0
- package/esm/Tree/utils/focusableTree.js +146 -0
- package/esm/Tree/utils/formatNodeRefKey.d.ts +4 -0
- package/esm/Tree/utils/formatNodeRefKey.js +7 -0
- package/esm/Tree/utils/getExpandItemValues.d.ts +11 -0
- package/esm/Tree/utils/getExpandItemValues.js +17 -0
- package/esm/Tree/utils/getNodeParentKeys.d.ts +5 -0
- package/esm/Tree/utils/getNodeParentKeys.js +17 -0
- package/esm/Tree/utils/getTreeActiveNode.d.ts +5 -0
- package/esm/Tree/utils/getTreeActiveNode.js +16 -0
- package/esm/Tree/utils/hasVisibleChildren.d.ts +5 -0
- package/esm/Tree/utils/hasVisibleChildren.js +12 -0
- package/esm/Tree/utils/indentTreeNode.d.ts +3 -0
- package/esm/Tree/utils/indentTreeNode.js +14 -0
- package/esm/Tree/utils/index.d.ts +11 -0
- package/esm/Tree/utils/index.js +14 -0
- package/esm/Tree/utils/isExpand.d.ts +6 -0
- package/esm/Tree/utils/isExpand.js +11 -0
- package/esm/Tree/utils/isSearching.d.ts +1 -0
- package/esm/Tree/utils/isSearching.js +5 -0
- package/esm/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
- package/esm/Tree/utils/treeKeyboardInteractions.js +43 -0
- package/esm/TreePicker/TreePicker.d.ts +27 -21
- package/esm/TreePicker/TreePicker.js +158 -579
- package/esm/TreePicker/hooks/useFocusState.d.ts +20 -0
- package/esm/TreePicker/hooks/useFocusState.js +48 -0
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/internals/Picker/Listbox.d.ts +40 -10
- package/esm/internals/Picker/Listbox.js +22 -16
- package/esm/internals/Picker/PickerIndicator.d.ts +2 -1
- package/esm/internals/Picker/PickerIndicator.js +7 -3
- package/esm/internals/Picker/hooks/useFocusItemValue.js +1 -1
- package/esm/internals/Picker/hooks/usePickerRef.d.ts +1 -4
- package/esm/internals/Picker/hooks/usePickerRef.js +3 -20
- package/esm/internals/Picker/index.d.ts +0 -1
- package/esm/internals/Picker/index.js +0 -1
- package/esm/internals/Picker/utils.js +1 -1
- package/esm/internals/{Picker → Tree}/TreeView.js +1 -1
- package/esm/internals/Tree/index.d.ts +1 -0
- package/esm/internals/Tree/index.js +2 -0
- package/esm/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
- package/esm/internals/Tree/utils/filterNodesOfTree.js +26 -0
- package/esm/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
- package/esm/internals/Tree/utils/findNodeOfTree.js +22 -0
- package/esm/internals/Tree/utils/getParentMap.d.ts +15 -0
- package/esm/internals/Tree/utils/getParentMap.js +47 -0
- package/esm/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
- package/esm/internals/Tree/utils/getPathTowardsItem.js +12 -0
- package/esm/internals/Tree/utils/index.d.ts +4 -0
- package/esm/internals/Tree/utils/index.js +5 -0
- package/esm/internals/Windowing/List.d.ts +1 -0
- package/esm/internals/Windowing/List.js +3 -0
- package/esm/internals/Windowing/index.d.ts +1 -1
- package/esm/internals/Windowing/index.js +1 -1
- package/esm/internals/hooks/index.d.ts +1 -0
- package/esm/internals/hooks/index.js +2 -0
- package/esm/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
- package/esm/internals/hooks/useFoucsVirtualListItem.js +22 -0
- package/esm/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
- package/esm/{utils → internals/utils}/getSafeRegExpString.js +1 -1
- package/esm/internals/utils/index.d.ts +2 -0
- package/esm/internals/utils/index.js +3 -0
- package/esm/internals/utils/stringifyReactNode.d.ts +2 -0
- package/esm/internals/utils/stringifyReactNode.js +12 -0
- package/esm/utils/constants.d.ts +0 -2
- package/esm/utils/constants.js +0 -3
- package/esm/utils/getDataGroupBy.js +1 -1
- package/esm/utils/index.d.ts +0 -3
- package/esm/utils/index.js +0 -3
- package/esm/utils/useIsomorphicLayoutEffect.d.ts +2 -2
- package/internals/Picker/styles/index.less +27 -1
- package/package.json +1 -1
- package/styles/color-modes/dark.less +5 -1
- package/styles/color-modes/high-contrast.less +8 -2
- package/styles/color-modes/light.less +10 -5
- package/styles/index.less +1 -0
- package/TreePicker/styles/mixin.less +0 -7
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +0 -28
- package/cjs/CheckTreePicker/CheckTreeNode.js +0 -140
- package/cjs/CheckTreePicker/utils.d.ts +0 -44
- package/cjs/Tree/TreeContext.d.ts +0 -6
- package/cjs/Tree/TreeContext.js +0 -10
- package/cjs/TreePicker/TreeNode.d.ts +0 -36
- package/cjs/TreePicker/TreeNode.js +0 -174
- package/cjs/utils/appendTooltip.d.ts +0 -10
- package/cjs/utils/appendTooltip.js +0 -20
- package/cjs/utils/stringToObject.d.ts +0 -2
- package/cjs/utils/stringToObject.js +0 -19
- package/cjs/utils/treeUtils.d.ts +0 -304
- package/cjs/utils/treeUtils.js +0 -1095
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +0 -28
- package/esm/CheckTreePicker/CheckTreeNode.js +0 -133
- package/esm/CheckTreePicker/utils.d.ts +0 -44
- package/esm/Tree/TreeContext.d.ts +0 -6
- package/esm/Tree/TreeContext.js +0 -4
- package/esm/TreePicker/TreeNode.d.ts +0 -36
- package/esm/TreePicker/TreeNode.js +0 -167
- package/esm/utils/appendTooltip.d.ts +0 -10
- package/esm/utils/appendTooltip.js +0 -15
- package/esm/utils/stringToObject.d.ts +0 -2
- package/esm/utils/stringToObject.js +0 -14
- package/esm/utils/treeUtils.d.ts +0 -304
- package/esm/utils/treeUtils.js +0 -1043
- /package/cjs/internals/{Picker → Tree}/TreeView.d.ts +0 -0
- /package/esm/internals/{Picker → Tree}/TreeView.d.ts +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy for walking the tree.
|
|
3
|
+
*/
|
|
4
|
+
export declare enum WalkTreeStrategy {
|
|
5
|
+
DFS = 0,
|
|
6
|
+
BFS = 1
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Flattens a tree structure into an array.
|
|
10
|
+
*/
|
|
11
|
+
export declare function flattenTree<T>(rootNodes: readonly T[], getChildren: (node: T) => readonly T[] | undefined, walkStrategy?: WalkTreeStrategy): T[];
|
|
12
|
+
/**
|
|
13
|
+
* Walks the tree in a breadth-first search (BFS) manner.
|
|
14
|
+
*/
|
|
15
|
+
export declare function walkTreeBfs<T>(rootNodes: readonly T[], getChildren: (node: T) => readonly T[] | undefined, callback: (node: T) => void): void;
|
|
16
|
+
/**
|
|
17
|
+
* Walks the tree in a depth-first search (DFS) manner.
|
|
18
|
+
*/
|
|
19
|
+
export declare function walkTreeDfs<T>(rootNodes: readonly T[], getChildren: (node: T) => readonly T[] | undefined, callback: (node: T) => void): void;
|
|
20
|
+
/**
|
|
21
|
+
* Flattens a tree structure to an array (deprecated).
|
|
22
|
+
* @deprecated This function is considered unsafe because it mutates the `tree` argument in-place.
|
|
23
|
+
* Use the `flattenTree` function instead.
|
|
24
|
+
*/
|
|
25
|
+
export declare function UNSAFE_flattenTree<TItem>(tree: TItem[], childrenKey?: string, executor?: (node: any, index: number) => any): TItem[];
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.flattenTree = flattenTree;
|
|
6
|
+
exports.walkTreeBfs = walkTreeBfs;
|
|
7
|
+
exports.walkTreeDfs = walkTreeDfs;
|
|
8
|
+
exports.UNSAFE_flattenTree = UNSAFE_flattenTree;
|
|
9
|
+
exports.WalkTreeStrategy = void 0;
|
|
10
|
+
var _attachParent = require("../../utils/attachParent");
|
|
11
|
+
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."); }
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
14
|
+
/**
|
|
15
|
+
* Strategy for walking the tree.
|
|
16
|
+
*/
|
|
17
|
+
var WalkTreeStrategy;
|
|
18
|
+
/**
|
|
19
|
+
* Flattens a tree structure into an array.
|
|
20
|
+
*/
|
|
21
|
+
exports.WalkTreeStrategy = WalkTreeStrategy;
|
|
22
|
+
(function (WalkTreeStrategy) {
|
|
23
|
+
WalkTreeStrategy[WalkTreeStrategy["DFS"] = 0] = "DFS";
|
|
24
|
+
WalkTreeStrategy[WalkTreeStrategy["BFS"] = 1] = "BFS";
|
|
25
|
+
})(WalkTreeStrategy || (exports.WalkTreeStrategy = WalkTreeStrategy = {}));
|
|
26
|
+
function flattenTree(rootNodes, getChildren, walkStrategy) {
|
|
27
|
+
if (walkStrategy === void 0) {
|
|
28
|
+
walkStrategy = WalkTreeStrategy.BFS;
|
|
29
|
+
}
|
|
30
|
+
var result = [];
|
|
31
|
+
if (walkStrategy === WalkTreeStrategy.BFS) {
|
|
32
|
+
walkTreeBfs(rootNodes, getChildren, function (node) {
|
|
33
|
+
return result.push(node);
|
|
34
|
+
});
|
|
35
|
+
} else if (walkStrategy === WalkTreeStrategy.DFS) {
|
|
36
|
+
walkTreeDfs(rootNodes, getChildren, function (node) {
|
|
37
|
+
return result.push(node);
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Walks the tree in a breadth-first search (BFS) manner.
|
|
45
|
+
*/
|
|
46
|
+
function walkTreeBfs(rootNodes, getChildren, callback) {
|
|
47
|
+
for (var queue = [].concat(rootNodes); queue.length > 0;) {
|
|
48
|
+
var _node = queue.shift();
|
|
49
|
+
callback(_node);
|
|
50
|
+
var children = getChildren(_node);
|
|
51
|
+
if (children) {
|
|
52
|
+
queue.push.apply(queue, children);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Walks the tree in a depth-first search (DFS) manner.
|
|
59
|
+
*/
|
|
60
|
+
function walkTreeDfs(rootNodes, getChildren, callback) {
|
|
61
|
+
for (var _iterator = _createForOfIteratorHelperLoose(rootNodes), _step; !(_step = _iterator()).done;) {
|
|
62
|
+
var _node2 = _step.value;
|
|
63
|
+
callback(_node2);
|
|
64
|
+
var children = getChildren(_node2);
|
|
65
|
+
if (children) {
|
|
66
|
+
walkTreeDfs(children, getChildren, callback);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Flattens a tree structure to an array (deprecated).
|
|
73
|
+
* @deprecated This function is considered unsafe because it mutates the `tree` argument in-place.
|
|
74
|
+
* Use the `flattenTree` function instead.
|
|
75
|
+
*/
|
|
76
|
+
function UNSAFE_flattenTree(tree, childrenKey, executor) {
|
|
77
|
+
if (childrenKey === void 0) {
|
|
78
|
+
childrenKey = 'children';
|
|
79
|
+
}
|
|
80
|
+
var flattenData = [];
|
|
81
|
+
var traverse = function traverse(data, parent) {
|
|
82
|
+
if (!Array.isArray(data)) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
data.forEach(function (item, index) {
|
|
86
|
+
var node = typeof executor === 'function' ? executor(item, index) : item;
|
|
87
|
+
flattenData.push((0, _attachParent.attachParent)(node, parent));
|
|
88
|
+
if (item[childrenKey]) {
|
|
89
|
+
traverse(item[childrenKey], item);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
traverse(tree, null);
|
|
94
|
+
return flattenData;
|
|
95
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { TreeNode, TreeNodeMap } from '../types';
|
|
2
|
+
import { ListHandle } from '../../internals/Windowing';
|
|
3
|
+
interface FocusableItemsProps {
|
|
4
|
+
disabledItemValues: any;
|
|
5
|
+
valueKey: string;
|
|
6
|
+
childrenKey: string;
|
|
7
|
+
expandItemValues: any;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Retrieves the focusable items from the filtered data based on the provided props.
|
|
11
|
+
* Excludes nodes that are not visible or are disabled.
|
|
12
|
+
*/
|
|
13
|
+
export declare const getFocusableItems: <TItem extends TreeNode>(filteredData: TItem[], props: FocusableItemsProps, isSearching?: boolean) => TItem[];
|
|
14
|
+
/**
|
|
15
|
+
* Retrieves the active item from the flattened nodes based on the provided focus item value.
|
|
16
|
+
*/
|
|
17
|
+
export declare const getActiveItem: (focusItemValue: string | number, flattenedNodes: TreeNodeMap, valueKey: string) => any;
|
|
18
|
+
/**
|
|
19
|
+
* Focuses on a specific tree node element.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
export declare const focusTreeNode: (refKey: string, treeNodeRefs: any) => void;
|
|
23
|
+
interface FocusItemProps {
|
|
24
|
+
focusItemValue?: string | number | null;
|
|
25
|
+
focusableItems: any[];
|
|
26
|
+
treeNodesRefs: any;
|
|
27
|
+
selector?: string;
|
|
28
|
+
valueKey: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Focuses on the next item in a tree.
|
|
32
|
+
*/
|
|
33
|
+
export declare const focusNextItem: (props: FocusItemProps) => any;
|
|
34
|
+
/**
|
|
35
|
+
* Focuses on the previous item in a tree.
|
|
36
|
+
*/
|
|
37
|
+
export declare const focusPreviousItem: (props: FocusItemProps) => any;
|
|
38
|
+
interface ScrollToActiveTreeNodeProps {
|
|
39
|
+
value: any;
|
|
40
|
+
valueKey: string;
|
|
41
|
+
virtualized: boolean;
|
|
42
|
+
list?: ListHandle;
|
|
43
|
+
formattedNodes: TreeNode[];
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Scrolls the list to the active tree node.
|
|
47
|
+
*
|
|
48
|
+
* @param props - The props object containing the necessary parameters.
|
|
49
|
+
*/
|
|
50
|
+
export declare function scrollToActiveTreeNode(props: ScrollToActiveTreeNodeProps): void;
|
|
51
|
+
export declare const focusCurrentItem: (props: {
|
|
52
|
+
selector?: string;
|
|
53
|
+
container?: HTMLElement | null;
|
|
54
|
+
}) => string | undefined;
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.scrollToActiveTreeNode = scrollToActiveTreeNode;
|
|
6
|
+
exports.focusCurrentItem = exports.focusPreviousItem = exports.focusNextItem = exports.focusTreeNode = exports.getActiveItem = exports.getFocusableItems = void 0;
|
|
7
|
+
var _utils = require("../../utils");
|
|
8
|
+
// Active tree node selector
|
|
9
|
+
var SELECTED_TREEITEM_SELECTOR = '[role="treeitem"][aria-selected="true"]';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Retrieves the focusable items from the filtered data based on the provided props.
|
|
13
|
+
* Excludes nodes that are not visible or are disabled.
|
|
14
|
+
*/
|
|
15
|
+
var getFocusableItems = function getFocusableItems(filteredData, props, isSearching) {
|
|
16
|
+
var disabledItemValues = props.disabledItemValues,
|
|
17
|
+
valueKey = props.valueKey,
|
|
18
|
+
childrenKey = props.childrenKey,
|
|
19
|
+
expandItemValues = props.expandItemValues;
|
|
20
|
+
var items = [];
|
|
21
|
+
var loop = function loop(nodes) {
|
|
22
|
+
nodes.forEach(function (node) {
|
|
23
|
+
var disabled = disabledItemValues.some(function (disabledItem) {
|
|
24
|
+
return (0, _utils.shallowEqual)(disabledItem, node[valueKey]);
|
|
25
|
+
});
|
|
26
|
+
if (!disabled && node.visible) {
|
|
27
|
+
items.push(node);
|
|
28
|
+
}
|
|
29
|
+
// always expand when searching
|
|
30
|
+
var expand = isSearching ? true : expandItemValues.includes(node[valueKey]);
|
|
31
|
+
if (node[childrenKey] && expand) {
|
|
32
|
+
loop(node[childrenKey]);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
loop(filteredData);
|
|
37
|
+
return items;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Returns the index of the active item in the focusItems array.
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
44
|
+
exports.getFocusableItems = getFocusableItems;
|
|
45
|
+
var getActiveIndex = function getActiveIndex(focusItemValue, focusItems, valueKey) {
|
|
46
|
+
var activeIndex = -1;
|
|
47
|
+
focusItems.forEach(function (item, index) {
|
|
48
|
+
if ((0, _utils.shallowEqual)(item[valueKey], focusItemValue)) {
|
|
49
|
+
activeIndex = index;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
return activeIndex;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Retrieves the active item from the flattened nodes based on the provided focus item value.
|
|
57
|
+
*/
|
|
58
|
+
var getActiveItem = function getActiveItem(focusItemValue, flattenedNodes, valueKey) {
|
|
59
|
+
var nodeData = null;
|
|
60
|
+
var activeNode = Object.values(flattenedNodes).find(function (node) {
|
|
61
|
+
return (0, _utils.shallowEqual)(node[valueKey], focusItemValue);
|
|
62
|
+
});
|
|
63
|
+
if (activeNode) {
|
|
64
|
+
nodeData = activeNode;
|
|
65
|
+
}
|
|
66
|
+
return nodeData;
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Focuses on a specific tree node element.
|
|
71
|
+
*
|
|
72
|
+
*/
|
|
73
|
+
exports.getActiveItem = getActiveItem;
|
|
74
|
+
var focusTreeNode = function focusTreeNode(refKey, treeNodeRefs) {
|
|
75
|
+
var _treeItem$focus;
|
|
76
|
+
var treeItem = treeNodeRefs[refKey];
|
|
77
|
+
treeItem === null || treeItem === void 0 ? void 0 : (_treeItem$focus = treeItem.focus) === null || _treeItem$focus === void 0 ? void 0 : _treeItem$focus.call(treeItem);
|
|
78
|
+
};
|
|
79
|
+
exports.focusTreeNode = focusTreeNode;
|
|
80
|
+
/**
|
|
81
|
+
* Focuses on the next item in a tree.
|
|
82
|
+
*/
|
|
83
|
+
var focusNextItem = function focusNextItem(props) {
|
|
84
|
+
var focusItemValue = props.focusItemValue,
|
|
85
|
+
focusableItems = props.focusableItems,
|
|
86
|
+
treeNodesRefs = props.treeNodesRefs,
|
|
87
|
+
valueKey = props.valueKey;
|
|
88
|
+
var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);
|
|
89
|
+
if (focusableItems.length === 0) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
var nextIndex = activeIndex === focusableItems.length - 1 ? 0 : activeIndex + 1;
|
|
93
|
+
var value = focusableItems[nextIndex][valueKey];
|
|
94
|
+
focusTreeNode(focusableItems[nextIndex].refKey, treeNodesRefs);
|
|
95
|
+
return value;
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Focuses on the previous item in a tree.
|
|
100
|
+
*/
|
|
101
|
+
exports.focusNextItem = focusNextItem;
|
|
102
|
+
var focusPreviousItem = function focusPreviousItem(props) {
|
|
103
|
+
var focusItemValue = props.focusItemValue,
|
|
104
|
+
focusableItems = props.focusableItems,
|
|
105
|
+
treeNodesRefs = props.treeNodesRefs,
|
|
106
|
+
valueKey = props.valueKey;
|
|
107
|
+
var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);
|
|
108
|
+
if (focusableItems.length === 0) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
var prevIndex = activeIndex === 0 ? focusableItems.length - 1 : activeIndex - 1;
|
|
112
|
+
prevIndex = prevIndex >= 0 ? prevIndex : 0;
|
|
113
|
+
var value = focusableItems[prevIndex][valueKey];
|
|
114
|
+
focusTreeNode(focusableItems[prevIndex].refKey, treeNodesRefs);
|
|
115
|
+
return value;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Returns the index of the first visible node in the tree that matches the given value.
|
|
120
|
+
*/
|
|
121
|
+
exports.focusPreviousItem = focusPreviousItem;
|
|
122
|
+
var getScrollToIndex = function getScrollToIndex(nodes, value, valueKey) {
|
|
123
|
+
return nodes.filter(function (n) {
|
|
124
|
+
return n.visible;
|
|
125
|
+
}).findIndex(function (item) {
|
|
126
|
+
return item[valueKey] === value;
|
|
127
|
+
});
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Scrolls the list to the active tree node.
|
|
131
|
+
*
|
|
132
|
+
* @param props - The props object containing the necessary parameters.
|
|
133
|
+
*/
|
|
134
|
+
function scrollToActiveTreeNode(props) {
|
|
135
|
+
var list = props.list,
|
|
136
|
+
value = props.value,
|
|
137
|
+
valueKey = props.valueKey,
|
|
138
|
+
virtualized = props.virtualized,
|
|
139
|
+
formattedNodes = props.formattedNodes;
|
|
140
|
+
if (virtualized && value) {
|
|
141
|
+
var _list$scrollToItem;
|
|
142
|
+
var scrollIndex = getScrollToIndex(formattedNodes, value, valueKey);
|
|
143
|
+
list === null || list === void 0 ? void 0 : (_list$scrollToItem = list.scrollToItem) === null || _list$scrollToItem === void 0 ? void 0 : _list$scrollToItem.call(list, scrollIndex);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
var focusCurrentItem = function focusCurrentItem(props) {
|
|
147
|
+
var _props$selector = props.selector,
|
|
148
|
+
selector = _props$selector === void 0 ? SELECTED_TREEITEM_SELECTOR : _props$selector,
|
|
149
|
+
container = props.container;
|
|
150
|
+
var activeItem = container === null || container === void 0 ? void 0 : container.querySelector(selector);
|
|
151
|
+
if (activeItem) {
|
|
152
|
+
var _activeItem$focus, _activeItem$dataset;
|
|
153
|
+
activeItem === null || activeItem === void 0 ? void 0 : (_activeItem$focus = activeItem.focus) === null || _activeItem$focus === void 0 ? void 0 : _activeItem$focus.call(activeItem);
|
|
154
|
+
return (_activeItem$dataset = activeItem.dataset) === null || _activeItem$dataset === void 0 ? void 0 : _activeItem$dataset.key;
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
exports.focusCurrentItem = focusCurrentItem;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.formatNodeRefKey = formatNodeRefKey;
|
|
6
|
+
/**
|
|
7
|
+
* Formats the reference key for a tree node.
|
|
8
|
+
*/
|
|
9
|
+
function formatNodeRefKey(value) {
|
|
10
|
+
return "" + (typeof value === 'number' ? 'Number_' : 'String_') + value;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface ExpandOptions<T> {
|
|
2
|
+
node: Record<string, unknown>;
|
|
3
|
+
isExpand: boolean;
|
|
4
|
+
expandItemValues: T[];
|
|
5
|
+
valueKey: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Returns an array of expanded item values.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getExpandItemValues<T>({ node, isExpand, expandItemValues, valueKey }: ExpandOptions<T>): T[];
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.getExpandItemValues = getExpandItemValues;
|
|
6
|
+
/**
|
|
7
|
+
* Returns an array of expanded item values.
|
|
8
|
+
*/
|
|
9
|
+
function getExpandItemValues(_ref) {
|
|
10
|
+
var node = _ref.node,
|
|
11
|
+
isExpand = _ref.isExpand,
|
|
12
|
+
expandItemValues = _ref.expandItemValues,
|
|
13
|
+
valueKey = _ref.valueKey;
|
|
14
|
+
var newExpandItemValues = new Set(expandItemValues);
|
|
15
|
+
if (isExpand) {
|
|
16
|
+
newExpandItemValues.add(node[valueKey]);
|
|
17
|
+
} else {
|
|
18
|
+
newExpandItemValues.delete(node[valueKey]);
|
|
19
|
+
}
|
|
20
|
+
return Array.from(newExpandItemValues);
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.getNodeParentKeys = getNodeParentKeys;
|
|
6
|
+
/**
|
|
7
|
+
* Retrieves an array of parent keys for a given node in a tree.
|
|
8
|
+
*/
|
|
9
|
+
function getNodeParentKeys(nodes, node, valueKey) {
|
|
10
|
+
var parentKeys = [];
|
|
11
|
+
var traverse = function traverse(node) {
|
|
12
|
+
var _node$parent;
|
|
13
|
+
if (node !== null && node !== void 0 && (_node$parent = node.parent) !== null && _node$parent !== void 0 && _node$parent.refKey) {
|
|
14
|
+
var _node$parent2;
|
|
15
|
+
traverse(nodes[node.parent.refKey]);
|
|
16
|
+
parentKeys.push(node === null || node === void 0 ? void 0 : (_node$parent2 = node.parent) === null || _node$parent2 === void 0 ? void 0 : _node$parent2[valueKey]);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
traverse(node);
|
|
20
|
+
return parentKeys;
|
|
21
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TreeNodeMap } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Retrieves the active node from a tree based on the provided value and value key.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getTreeActiveNode<T extends number | string | undefined | null>(nodes: TreeNodeMap, value: T, valueKey: string): import("../types").TreeNode | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.getTreeActiveNode = getTreeActiveNode;
|
|
7
|
+
var _shallowEqual = _interopRequireDefault(require("../../utils/shallowEqual"));
|
|
8
|
+
/**
|
|
9
|
+
* Retrieves the active node from a tree based on the provided value and value key.
|
|
10
|
+
*/
|
|
11
|
+
function getTreeActiveNode(nodes, value, valueKey) {
|
|
12
|
+
if (typeof value === 'undefined') {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
for (var refKey in nodes) {
|
|
16
|
+
var node = nodes[refKey];
|
|
17
|
+
if ((0, _shallowEqual.default)(node[valueKey], value)) {
|
|
18
|
+
return node;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.hasVisibleChildren = hasVisibleChildren;
|
|
6
|
+
/**
|
|
7
|
+
* Checks if a node has visible children.
|
|
8
|
+
*/
|
|
9
|
+
function hasVisibleChildren(node, childrenKey) {
|
|
10
|
+
if (!Array.isArray(node[childrenKey])) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return node[childrenKey].some(function (child) {
|
|
14
|
+
return child.visible;
|
|
15
|
+
});
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.indentTreeNode = indentTreeNode;
|
|
6
|
+
function indentTreeNode(rtl, layer, absolute) {
|
|
7
|
+
var _ref2;
|
|
8
|
+
if (absolute === void 0) {
|
|
9
|
+
absolute = false;
|
|
10
|
+
}
|
|
11
|
+
// layer start from 1
|
|
12
|
+
var offset = layer * 26;
|
|
13
|
+
if (absolute) {
|
|
14
|
+
var _ref;
|
|
15
|
+
return _ref = {}, _ref[rtl ? 'right' : 'left'] = offset, _ref;
|
|
16
|
+
}
|
|
17
|
+
return _ref2 = {}, _ref2[rtl ? 'paddingRight' : 'paddingLeft'] = offset, _ref2;
|
|
18
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { getNodeParentKeys } from './getNodeParentKeys';
|
|
2
|
+
export { UNSAFE_flattenTree, flattenTree, WalkTreeStrategy } from './flattenTree';
|
|
3
|
+
export { hasVisibleChildren } from './hasVisibleChildren';
|
|
4
|
+
export { getExpandItemValues } from './getExpandItemValues';
|
|
5
|
+
export { getTreeActiveNode } from './getTreeActiveNode';
|
|
6
|
+
export { formatNodeRefKey } from './formatNodeRefKey';
|
|
7
|
+
export { indentTreeNode } from './indentTreeNode';
|
|
8
|
+
export { isSearching } from './isSearching';
|
|
9
|
+
export { isExpand } from './isExpand';
|
|
10
|
+
export { getFocusableItems, getActiveItem, focusNextItem, focusPreviousItem, focusTreeNode, focusCurrentItem } from './focusableTree';
|
|
11
|
+
export { handleLeftArrow, handleRightArrow } from './treeKeyboardInteractions';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.handleRightArrow = exports.handleLeftArrow = exports.focusCurrentItem = exports.focusTreeNode = exports.focusPreviousItem = exports.focusNextItem = exports.getActiveItem = exports.getFocusableItems = exports.isExpand = exports.isSearching = exports.indentTreeNode = exports.formatNodeRefKey = exports.getTreeActiveNode = exports.getExpandItemValues = exports.hasVisibleChildren = exports.WalkTreeStrategy = exports.flattenTree = exports.UNSAFE_flattenTree = exports.getNodeParentKeys = void 0;
|
|
6
|
+
var _getNodeParentKeys = require("./getNodeParentKeys");
|
|
7
|
+
exports.getNodeParentKeys = _getNodeParentKeys.getNodeParentKeys;
|
|
8
|
+
var _flattenTree = require("./flattenTree");
|
|
9
|
+
exports.UNSAFE_flattenTree = _flattenTree.UNSAFE_flattenTree;
|
|
10
|
+
exports.flattenTree = _flattenTree.flattenTree;
|
|
11
|
+
exports.WalkTreeStrategy = _flattenTree.WalkTreeStrategy;
|
|
12
|
+
var _hasVisibleChildren = require("./hasVisibleChildren");
|
|
13
|
+
exports.hasVisibleChildren = _hasVisibleChildren.hasVisibleChildren;
|
|
14
|
+
var _getExpandItemValues = require("./getExpandItemValues");
|
|
15
|
+
exports.getExpandItemValues = _getExpandItemValues.getExpandItemValues;
|
|
16
|
+
var _getTreeActiveNode = require("./getTreeActiveNode");
|
|
17
|
+
exports.getTreeActiveNode = _getTreeActiveNode.getTreeActiveNode;
|
|
18
|
+
var _formatNodeRefKey = require("./formatNodeRefKey");
|
|
19
|
+
exports.formatNodeRefKey = _formatNodeRefKey.formatNodeRefKey;
|
|
20
|
+
var _indentTreeNode = require("./indentTreeNode");
|
|
21
|
+
exports.indentTreeNode = _indentTreeNode.indentTreeNode;
|
|
22
|
+
var _isSearching = require("./isSearching");
|
|
23
|
+
exports.isSearching = _isSearching.isSearching;
|
|
24
|
+
var _isExpand = require("./isExpand");
|
|
25
|
+
exports.isExpand = _isExpand.isExpand;
|
|
26
|
+
var _focusableTree = require("./focusableTree");
|
|
27
|
+
exports.getFocusableItems = _focusableTree.getFocusableItems;
|
|
28
|
+
exports.getActiveItem = _focusableTree.getActiveItem;
|
|
29
|
+
exports.focusNextItem = _focusableTree.focusNextItem;
|
|
30
|
+
exports.focusPreviousItem = _focusableTree.focusPreviousItem;
|
|
31
|
+
exports.focusTreeNode = _focusableTree.focusTreeNode;
|
|
32
|
+
exports.focusCurrentItem = _focusableTree.focusCurrentItem;
|
|
33
|
+
var _treeKeyboardInteractions = require("./treeKeyboardInteractions");
|
|
34
|
+
exports.handleLeftArrow = _treeKeyboardInteractions.handleLeftArrow;
|
|
35
|
+
exports.handleRightArrow = _treeKeyboardInteractions.handleRightArrow;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determines whether the tree node should be expanded based on the search keyword and expand flag.
|
|
3
|
+
* If a search keyword is provided, the node is always expanded.
|
|
4
|
+
* Otherwise, the node is expanded if the expand flag is true.
|
|
5
|
+
*/
|
|
6
|
+
export declare function isExpand(searchKeyword: string, expand: boolean): boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.isExpand = isExpand;
|
|
6
|
+
var _isSearching = require("./isSearching");
|
|
7
|
+
/**
|
|
8
|
+
* Determines whether the tree node should be expanded based on the search keyword and expand flag.
|
|
9
|
+
* If a search keyword is provided, the node is always expanded.
|
|
10
|
+
* Otherwise, the node is expanded if the expand flag is true.
|
|
11
|
+
*/
|
|
12
|
+
function isExpand(searchKeyword, expand) {
|
|
13
|
+
return (0, _isSearching.isSearching)(searchKeyword) ? true : expand;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isSearching(searchKeyword?: string): boolean;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.isSearching = isSearching;
|
|
7
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
8
|
+
function isSearching(searchKeyword) {
|
|
9
|
+
return !(0, _isEmpty.default)(searchKeyword);
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TreeNode } from '../types';
|
|
2
|
+
export interface ArrowHandlerProps {
|
|
3
|
+
focusItem: TreeNode;
|
|
4
|
+
expand: boolean;
|
|
5
|
+
childrenKey: string;
|
|
6
|
+
onExpand?: (focusItem: TreeNode, expanded: boolean) => void;
|
|
7
|
+
onFocusItem: () => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Handles the left arrow key press event for tree navigation.
|
|
11
|
+
* If the focus item is expanded, it collapses it. If the focus item is not expanded and has a parent,
|
|
12
|
+
* it moves the focus to the parent item.
|
|
13
|
+
*/
|
|
14
|
+
export declare function handleLeftArrow(props: ArrowHandlerProps): void;
|
|
15
|
+
/**
|
|
16
|
+
* Handles the right arrow key press event for tree navigation.
|
|
17
|
+
* If the focused item has children and is collapsed, it expands the item.
|
|
18
|
+
* If the focused item has children and is expanded, it moves the focus to the next sibling.
|
|
19
|
+
* If the focused item does not have children, it does nothing.
|
|
20
|
+
*/
|
|
21
|
+
export declare function handleRightArrow(props: ArrowHandlerProps): void;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.handleLeftArrow = handleLeftArrow;
|
|
7
|
+
exports.handleRightArrow = handleRightArrow;
|
|
8
|
+
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
9
|
+
/**
|
|
10
|
+
* Handles the left arrow key press event for tree navigation.
|
|
11
|
+
* If the focus item is expanded, it collapses it. If the focus item is not expanded and has a parent,
|
|
12
|
+
* it moves the focus to the parent item.
|
|
13
|
+
*/
|
|
14
|
+
function handleLeftArrow(props) {
|
|
15
|
+
var focusItem = props.focusItem,
|
|
16
|
+
expand = props.expand,
|
|
17
|
+
onExpand = props.onExpand,
|
|
18
|
+
onFocusItem = props.onFocusItem;
|
|
19
|
+
if ((0, _isEmpty.default)(focusItem)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (expand) {
|
|
23
|
+
onExpand === null || onExpand === void 0 ? void 0 : onExpand(focusItem, expand);
|
|
24
|
+
} else if (focusItem !== null && focusItem !== void 0 && focusItem.parent) {
|
|
25
|
+
onFocusItem();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Handles the right arrow key press event for tree navigation.
|
|
31
|
+
* If the focused item has children and is collapsed, it expands the item.
|
|
32
|
+
* If the focused item has children and is expanded, it moves the focus to the next sibling.
|
|
33
|
+
* If the focused item does not have children, it does nothing.
|
|
34
|
+
*/
|
|
35
|
+
function handleRightArrow(props) {
|
|
36
|
+
var focusItem = props.focusItem,
|
|
37
|
+
expand = props.expand,
|
|
38
|
+
childrenKey = props.childrenKey,
|
|
39
|
+
onExpand = props.onExpand,
|
|
40
|
+
onFocusItem = props.onFocusItem;
|
|
41
|
+
if ((0, _isEmpty.default)(focusItem) || !Array.isArray(focusItem[childrenKey])) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (!expand) {
|
|
45
|
+
onExpand === null || onExpand === void 0 ? void 0 : onExpand(focusItem, expand);
|
|
46
|
+
} else {
|
|
47
|
+
onFocusItem();
|
|
48
|
+
}
|
|
49
|
+
}
|