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.
Files changed (438) hide show
  1. package/Accordion/styles/index.css +4 -4
  2. package/AutoComplete/styles/index.css +58 -22
  3. package/Button/styles/index.css +12 -8
  4. package/Button/styles/mixin.less +1 -1
  5. package/CHANGELOG.md +25 -0
  6. package/Calendar/styles/index.css +16 -15
  7. package/CascadeTree/styles/index.css +11 -9
  8. package/CascadeTree/styles/index.less +7 -0
  9. package/CascadeTree/styles/search.less +0 -10
  10. package/Cascader/styles/index.css +60 -31
  11. package/CheckPicker/styles/index.css +59 -27
  12. package/CheckPicker/styles/index.less +3 -3
  13. package/CheckTree/styles/index.css +160 -134
  14. package/CheckTree/styles/index.less +141 -1
  15. package/CheckTreePicker/styles/index.css +170 -126
  16. package/CheckTreePicker/styles/index.less +8 -181
  17. package/Checkbox/styles/index.css +7 -8
  18. package/Checkbox/styles/index.less +1 -5
  19. package/DateInput/styles/index.css +4 -4
  20. package/DatePicker/styles/index.css +62 -26
  21. package/DateRangeInput/styles/index.css +4 -4
  22. package/DateRangePicker/styles/index.css +67 -26
  23. package/DateRangePicker/styles/index.less +2 -0
  24. package/Dropdown/styles/index.css +14 -13
  25. package/Highlight/package.json +7 -0
  26. package/Highlight/styles/index.css +8 -0
  27. package/Highlight/styles/index.less +6 -0
  28. package/IconButton/styles/index.css +11 -10
  29. package/Input/styles/index.css +4 -4
  30. package/InputGroup/styles/index.css +18 -17
  31. package/InputGroup/styles/index.less +1 -1
  32. package/InputNumber/styles/index.css +19 -18
  33. package/InputPicker/styles/index.css +58 -22
  34. package/MultiCascadeTree/styles/index.css +61 -36
  35. package/MultiCascadeTree/styles/index.less +1 -1
  36. package/MultiCascader/styles/index.css +704 -679
  37. package/MultiCascader/styles/index.less +0 -1
  38. package/Nav/styles/index.css +15 -14
  39. package/Navbar/styles/index.css +14 -13
  40. package/Pagination/styles/index.css +62 -26
  41. package/Panel/styles/index.css +4 -4
  42. package/Placeholder/styles/index.css +2 -3
  43. package/Placeholder/styles/index.less +2 -3
  44. package/README.md +21 -39
  45. package/Radio/styles/index.css +7 -7
  46. package/Radio/styles/index.less +1 -5
  47. package/RangeSlider/styles/index.css +1 -1
  48. package/Rate/styles/index.css +1 -1
  49. package/Rate/styles/index.less +1 -1
  50. package/SelectPicker/styles/index.css +58 -22
  51. package/Slider/styles/index.css +1 -1
  52. package/Slider/styles/index.less +1 -1
  53. package/Steps/styles/index.css +6 -1
  54. package/Steps/styles/index.less +2 -1
  55. package/Tabs/styles/index.css +15 -14
  56. package/TagInput/styles/index.css +59 -27
  57. package/TagPicker/styles/index.css +59 -27
  58. package/Toggle/styles/index.css +10 -7
  59. package/Tree/styles/indent-line.less +8 -0
  60. package/Tree/styles/index.css +140 -141
  61. package/Tree/styles/index.less +188 -1
  62. package/Tree/styles/toggle.less +36 -0
  63. package/TreePicker/styles/index.css +142 -134
  64. package/TreePicker/styles/index.less +4 -234
  65. package/Uploader/styles/index.css +12 -11
  66. package/cjs/@types/common.d.ts +41 -4
  67. package/cjs/AutoComplete/AutoComplete.js +2 -1
  68. package/cjs/CascadeTree/CascadeTree.js +8 -7
  69. package/cjs/CascadeTree/SearchView.js +7 -14
  70. package/cjs/CascadeTree/hooks/usePaths.js +4 -4
  71. package/cjs/CascadeTree/hooks/useSearch.js +2 -1
  72. package/cjs/CascadeTree/utils.d.ts +0 -11
  73. package/cjs/CascadeTree/utils.js +0 -23
  74. package/cjs/Cascader/Cascader.js +17 -16
  75. package/cjs/CheckPicker/CheckPicker.js +26 -29
  76. package/cjs/CheckTree/CheckTree.d.ts +16 -0
  77. package/cjs/CheckTree/CheckTree.js +112 -0
  78. package/cjs/CheckTree/CheckTreeNode.d.ts +72 -0
  79. package/cjs/CheckTree/CheckTreeNode.js +117 -0
  80. package/cjs/CheckTree/CheckTreeView.d.ts +70 -0
  81. package/cjs/CheckTree/CheckTreeView.js +310 -0
  82. package/cjs/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
  83. package/cjs/CheckTree/hooks/useTreeCheckState.js +93 -0
  84. package/cjs/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
  85. package/cjs/CheckTree/hooks/useTreeNodeProps.js +59 -0
  86. package/cjs/CheckTree/hooks/useTreeValue.d.ts +5 -0
  87. package/cjs/CheckTree/hooks/useTreeValue.js +21 -0
  88. package/cjs/CheckTree/index.d.ts +2 -14
  89. package/cjs/CheckTree/index.js +2 -23
  90. package/cjs/CheckTree/utils.d.ts +53 -0
  91. package/cjs/{CheckTreePicker → CheckTree}/utils.js +76 -26
  92. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +30 -12
  93. package/cjs/CheckTreePicker/CheckTreePicker.js +153 -603
  94. package/cjs/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
  95. package/cjs/CheckTreePicker/hooks/useFocusState.js +42 -0
  96. package/cjs/DatePicker/DatePicker.d.ts +4 -0
  97. package/cjs/DatePicker/DatePicker.js +20 -5
  98. package/cjs/DatePicker/types.d.ts +0 -4
  99. package/cjs/DateRangePicker/DateRangePicker.d.ts +51 -23
  100. package/cjs/DateRangePicker/DateRangePicker.js +71 -51
  101. package/cjs/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
  102. package/cjs/DateRangePicker/hooks/useDateDisabled.js +31 -0
  103. package/cjs/DateRangePicker/types.d.ts +1 -0
  104. package/cjs/Highlight/Highlight.d.ts +14 -0
  105. package/cjs/Highlight/Highlight.js +58 -0
  106. package/cjs/Highlight/index.d.ts +3 -0
  107. package/cjs/Highlight/index.js +9 -0
  108. package/cjs/Highlight/utils/highlightText.d.ts +5 -0
  109. package/cjs/Highlight/utils/highlightText.js +29 -0
  110. package/cjs/InputPicker/InputPicker.js +37 -41
  111. package/cjs/MultiCascadeTree/SearchView.js +6 -14
  112. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
  113. package/cjs/MultiCascadeTree/hooks/useColumnData.js +2 -2
  114. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +3 -3
  115. package/cjs/MultiCascadeTree/hooks/useSearch.js +2 -1
  116. package/cjs/MultiCascadeTree/utils.d.ts +4 -4
  117. package/cjs/MultiCascadeTree/utils.js +20 -11
  118. package/cjs/MultiCascader/MultiCascader.js +12 -12
  119. package/cjs/SelectPicker/SelectPicker.js +2 -6
  120. package/cjs/Tree/IndentLine.d.ts +3 -0
  121. package/cjs/Tree/IndentLine.js +18 -0
  122. package/cjs/Tree/Tree.d.ts +4 -92
  123. package/cjs/Tree/Tree.js +79 -20
  124. package/cjs/Tree/TreeNode.d.ts +101 -0
  125. package/cjs/Tree/TreeNode.js +147 -0
  126. package/cjs/Tree/TreeNodeToggle.d.ts +9 -0
  127. package/cjs/Tree/TreeNodeToggle.js +56 -0
  128. package/cjs/Tree/TreeProvider.d.ts +52 -0
  129. package/cjs/Tree/TreeProvider.js +84 -0
  130. package/cjs/Tree/TreeView.d.ts +68 -0
  131. package/cjs/Tree/TreeView.js +305 -0
  132. package/cjs/Tree/hooks/useExpandTree.d.ts +60 -0
  133. package/cjs/Tree/hooks/useExpandTree.js +77 -0
  134. package/cjs/Tree/hooks/useFlattenTree.d.ts +42 -0
  135. package/cjs/Tree/hooks/useFlattenTree.js +98 -0
  136. package/cjs/Tree/hooks/useFocusTree.d.ts +24 -0
  137. package/cjs/Tree/hooks/useFocusTree.js +158 -0
  138. package/cjs/Tree/hooks/useForceUpdate.d.ts +2 -0
  139. package/cjs/Tree/hooks/useForceUpdate.js +16 -0
  140. package/cjs/Tree/hooks/useTreeDrag.d.ts +32 -0
  141. package/cjs/Tree/hooks/useTreeDrag.js +268 -0
  142. package/cjs/Tree/hooks/useTreeNodeProps.d.ts +29 -0
  143. package/cjs/Tree/hooks/useTreeNodeProps.js +83 -0
  144. package/cjs/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
  145. package/cjs/Tree/hooks/useTreeNodeRefs.js +22 -0
  146. package/cjs/Tree/hooks/useTreeSearch.d.ts +18 -0
  147. package/cjs/Tree/hooks/useTreeSearch.js +74 -0
  148. package/cjs/Tree/hooks/useTreeWithChildren.d.ts +14 -0
  149. package/cjs/Tree/hooks/useTreeWithChildren.js +64 -0
  150. package/cjs/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
  151. package/cjs/Tree/hooks/useVirtualizedTreeData.js +82 -0
  152. package/cjs/Tree/types.d.ts +257 -0
  153. package/cjs/Tree/types.js +33 -0
  154. package/cjs/Tree/utils/flattenTree.d.ts +25 -0
  155. package/cjs/Tree/utils/flattenTree.js +95 -0
  156. package/cjs/Tree/utils/focusableTree.d.ts +55 -0
  157. package/cjs/Tree/utils/focusableTree.js +157 -0
  158. package/cjs/Tree/utils/formatNodeRefKey.d.ts +4 -0
  159. package/cjs/Tree/utils/formatNodeRefKey.js +11 -0
  160. package/cjs/Tree/utils/getExpandItemValues.d.ts +11 -0
  161. package/cjs/Tree/utils/getExpandItemValues.js +21 -0
  162. package/cjs/Tree/utils/getNodeParentKeys.d.ts +5 -0
  163. package/cjs/Tree/utils/getNodeParentKeys.js +21 -0
  164. package/cjs/Tree/utils/getTreeActiveNode.d.ts +5 -0
  165. package/cjs/Tree/utils/getTreeActiveNode.js +21 -0
  166. package/cjs/Tree/utils/hasVisibleChildren.d.ts +5 -0
  167. package/cjs/Tree/utils/hasVisibleChildren.js +16 -0
  168. package/cjs/Tree/utils/indentTreeNode.d.ts +3 -0
  169. package/cjs/Tree/utils/indentTreeNode.js +18 -0
  170. package/cjs/Tree/utils/index.d.ts +11 -0
  171. package/cjs/Tree/utils/index.js +35 -0
  172. package/cjs/Tree/utils/isExpand.d.ts +6 -0
  173. package/cjs/Tree/utils/isExpand.js +14 -0
  174. package/cjs/Tree/utils/isSearching.d.ts +1 -0
  175. package/cjs/Tree/utils/isSearching.js +10 -0
  176. package/cjs/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
  177. package/cjs/Tree/utils/treeKeyboardInteractions.js +49 -0
  178. package/cjs/TreePicker/TreePicker.d.ts +27 -21
  179. package/cjs/TreePicker/TreePicker.js +155 -575
  180. package/cjs/TreePicker/hooks/useFocusState.d.ts +20 -0
  181. package/cjs/TreePicker/hooks/useFocusState.js +53 -0
  182. package/cjs/index.d.ts +2 -0
  183. package/cjs/index.js +3 -1
  184. package/cjs/internals/Picker/Listbox.d.ts +40 -10
  185. package/cjs/internals/Picker/Listbox.js +21 -16
  186. package/cjs/internals/Picker/PickerIndicator.d.ts +2 -1
  187. package/cjs/internals/Picker/PickerIndicator.js +7 -3
  188. package/cjs/internals/Picker/hooks/useFocusItemValue.js +4 -4
  189. package/cjs/internals/Picker/hooks/usePickerRef.d.ts +1 -4
  190. package/cjs/internals/Picker/hooks/usePickerRef.js +3 -20
  191. package/cjs/internals/Picker/index.d.ts +0 -1
  192. package/cjs/internals/Picker/index.js +1 -4
  193. package/cjs/internals/Picker/utils.js +12 -12
  194. package/cjs/internals/{Picker → Tree}/TreeView.js +1 -1
  195. package/cjs/internals/Tree/index.d.ts +1 -0
  196. package/cjs/internals/Tree/index.js +8 -0
  197. package/cjs/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
  198. package/cjs/internals/Tree/utils/filterNodesOfTree.js +31 -0
  199. package/cjs/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
  200. package/cjs/internals/Tree/utils/findNodeOfTree.js +26 -0
  201. package/cjs/internals/Tree/utils/getParentMap.d.ts +15 -0
  202. package/cjs/internals/Tree/utils/getParentMap.js +52 -0
  203. package/cjs/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
  204. package/cjs/internals/Tree/utils/getPathTowardsItem.js +16 -0
  205. package/cjs/internals/Tree/utils/index.d.ts +4 -0
  206. package/cjs/internals/Tree/utils/index.js +14 -0
  207. package/cjs/internals/Windowing/List.d.ts +1 -0
  208. package/cjs/internals/Windowing/List.js +5 -1
  209. package/cjs/internals/Windowing/index.d.ts +1 -1
  210. package/cjs/internals/Windowing/index.js +4 -2
  211. package/cjs/internals/hooks/index.d.ts +1 -0
  212. package/cjs/internals/hooks/index.js +8 -0
  213. package/cjs/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
  214. package/cjs/internals/hooks/useFoucsVirtualListItem.js +26 -0
  215. package/cjs/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
  216. package/cjs/{utils → internals/utils}/getSafeRegExpString.js +1 -1
  217. package/cjs/internals/utils/index.d.ts +2 -0
  218. package/cjs/internals/utils/index.js +9 -0
  219. package/cjs/internals/utils/stringifyReactNode.d.ts +2 -0
  220. package/cjs/internals/utils/stringifyReactNode.js +17 -0
  221. package/cjs/utils/constants.d.ts +0 -2
  222. package/cjs/utils/constants.js +1 -6
  223. package/cjs/utils/getDataGroupBy.js +3 -3
  224. package/cjs/utils/index.d.ts +0 -3
  225. package/cjs/utils/index.js +1 -10
  226. package/cjs/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  227. package/dist/rsuite-no-reset-rtl.css +292 -300
  228. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  229. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  230. package/dist/rsuite-no-reset.css +294 -304
  231. package/dist/rsuite-no-reset.min.css +1 -1
  232. package/dist/rsuite-no-reset.min.css.map +1 -1
  233. package/dist/rsuite-rtl.css +293 -301
  234. package/dist/rsuite-rtl.min.css +1 -1
  235. package/dist/rsuite-rtl.min.css.map +1 -1
  236. package/dist/rsuite.css +295 -305
  237. package/dist/rsuite.js +611 -116
  238. package/dist/rsuite.js.map +1 -1
  239. package/dist/rsuite.min.css +1 -1
  240. package/dist/rsuite.min.css.map +1 -1
  241. package/dist/rsuite.min.js +1 -1
  242. package/dist/rsuite.min.js.map +1 -1
  243. package/esm/@types/common.d.ts +41 -4
  244. package/esm/AutoComplete/AutoComplete.js +2 -1
  245. package/esm/CascadeTree/CascadeTree.js +2 -1
  246. package/esm/CascadeTree/SearchView.js +6 -13
  247. package/esm/CascadeTree/hooks/usePaths.js +1 -1
  248. package/esm/CascadeTree/hooks/useSearch.js +2 -1
  249. package/esm/CascadeTree/utils.d.ts +0 -11
  250. package/esm/CascadeTree/utils.js +0 -22
  251. package/esm/Cascader/Cascader.js +2 -1
  252. package/esm/CheckPicker/CheckPicker.js +4 -7
  253. package/esm/CheckTree/CheckTree.d.ts +16 -0
  254. package/esm/CheckTree/CheckTree.js +105 -0
  255. package/esm/CheckTree/CheckTreeNode.d.ts +72 -0
  256. package/esm/CheckTree/CheckTreeNode.js +110 -0
  257. package/esm/CheckTree/CheckTreeView.d.ts +70 -0
  258. package/esm/CheckTree/CheckTreeView.js +304 -0
  259. package/esm/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
  260. package/esm/CheckTree/hooks/useTreeCheckState.js +87 -0
  261. package/esm/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
  262. package/esm/CheckTree/hooks/useTreeNodeProps.js +52 -0
  263. package/esm/CheckTree/hooks/useTreeValue.d.ts +5 -0
  264. package/esm/CheckTree/hooks/useTreeValue.js +16 -0
  265. package/esm/CheckTree/index.d.ts +2 -14
  266. package/esm/CheckTree/index.js +1 -21
  267. package/esm/CheckTree/utils.d.ts +53 -0
  268. package/esm/{CheckTreePicker → CheckTree}/utils.js +72 -22
  269. package/esm/CheckTreePicker/CheckTreePicker.d.ts +30 -12
  270. package/esm/CheckTreePicker/CheckTreePicker.js +156 -607
  271. package/esm/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
  272. package/esm/CheckTreePicker/hooks/useFocusState.js +37 -0
  273. package/esm/DatePicker/DatePicker.d.ts +4 -0
  274. package/esm/DatePicker/DatePicker.js +20 -5
  275. package/esm/DatePicker/types.d.ts +0 -4
  276. package/esm/DateRangePicker/DateRangePicker.d.ts +51 -23
  277. package/esm/DateRangePicker/DateRangePicker.js +71 -51
  278. package/esm/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
  279. package/esm/DateRangePicker/hooks/useDateDisabled.js +26 -0
  280. package/esm/DateRangePicker/types.d.ts +1 -0
  281. package/esm/Highlight/Highlight.d.ts +14 -0
  282. package/esm/Highlight/Highlight.js +52 -0
  283. package/esm/Highlight/index.d.ts +3 -0
  284. package/esm/Highlight/index.js +3 -0
  285. package/esm/Highlight/utils/highlightText.d.ts +5 -0
  286. package/esm/Highlight/utils/highlightText.js +25 -0
  287. package/esm/InputPicker/InputPicker.js +3 -7
  288. package/esm/MultiCascadeTree/SearchView.js +6 -14
  289. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
  290. package/esm/MultiCascadeTree/hooks/useColumnData.js +1 -1
  291. package/esm/MultiCascadeTree/hooks/useFlattenData.js +1 -1
  292. package/esm/MultiCascadeTree/hooks/useSearch.js +2 -1
  293. package/esm/MultiCascadeTree/utils.d.ts +4 -4
  294. package/esm/MultiCascadeTree/utils.js +18 -9
  295. package/esm/MultiCascader/MultiCascader.js +1 -1
  296. package/esm/SelectPicker/SelectPicker.js +2 -6
  297. package/esm/Tree/IndentLine.d.ts +3 -0
  298. package/esm/Tree/IndentLine.js +12 -0
  299. package/esm/Tree/Tree.d.ts +4 -92
  300. package/esm/Tree/Tree.js +78 -18
  301. package/esm/Tree/TreeNode.d.ts +101 -0
  302. package/esm/Tree/TreeNode.js +141 -0
  303. package/esm/Tree/TreeNodeToggle.d.ts +9 -0
  304. package/esm/Tree/TreeNodeToggle.js +50 -0
  305. package/esm/Tree/TreeProvider.d.ts +52 -0
  306. package/esm/Tree/TreeProvider.js +74 -0
  307. package/esm/Tree/TreeView.d.ts +68 -0
  308. package/esm/Tree/TreeView.js +299 -0
  309. package/esm/Tree/hooks/useExpandTree.d.ts +60 -0
  310. package/esm/Tree/hooks/useExpandTree.js +70 -0
  311. package/esm/Tree/hooks/useFlattenTree.d.ts +42 -0
  312. package/esm/Tree/hooks/useFlattenTree.js +92 -0
  313. package/esm/Tree/hooks/useFocusTree.d.ts +24 -0
  314. package/esm/Tree/hooks/useFocusTree.js +153 -0
  315. package/esm/Tree/hooks/useForceUpdate.d.ts +2 -0
  316. package/esm/Tree/hooks/useForceUpdate.js +11 -0
  317. package/esm/Tree/hooks/useTreeDrag.d.ts +32 -0
  318. package/esm/Tree/hooks/useTreeDrag.js +264 -0
  319. package/esm/Tree/hooks/useTreeNodeProps.d.ts +29 -0
  320. package/esm/Tree/hooks/useTreeNodeProps.js +76 -0
  321. package/esm/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
  322. package/esm/Tree/hooks/useTreeNodeRefs.js +18 -0
  323. package/esm/Tree/hooks/useTreeSearch.d.ts +18 -0
  324. package/esm/Tree/hooks/useTreeSearch.js +69 -0
  325. package/esm/Tree/hooks/useTreeWithChildren.d.ts +14 -0
  326. package/esm/Tree/hooks/useTreeWithChildren.js +59 -0
  327. package/esm/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
  328. package/esm/Tree/hooks/useVirtualizedTreeData.js +77 -0
  329. package/esm/Tree/types.d.ts +257 -0
  330. package/esm/Tree/types.js +30 -0
  331. package/esm/Tree/utils/flattenTree.d.ts +25 -0
  332. package/esm/Tree/utils/flattenTree.js +88 -0
  333. package/esm/Tree/utils/focusableTree.d.ts +55 -0
  334. package/esm/Tree/utils/focusableTree.js +146 -0
  335. package/esm/Tree/utils/formatNodeRefKey.d.ts +4 -0
  336. package/esm/Tree/utils/formatNodeRefKey.js +7 -0
  337. package/esm/Tree/utils/getExpandItemValues.d.ts +11 -0
  338. package/esm/Tree/utils/getExpandItemValues.js +17 -0
  339. package/esm/Tree/utils/getNodeParentKeys.d.ts +5 -0
  340. package/esm/Tree/utils/getNodeParentKeys.js +17 -0
  341. package/esm/Tree/utils/getTreeActiveNode.d.ts +5 -0
  342. package/esm/Tree/utils/getTreeActiveNode.js +16 -0
  343. package/esm/Tree/utils/hasVisibleChildren.d.ts +5 -0
  344. package/esm/Tree/utils/hasVisibleChildren.js +12 -0
  345. package/esm/Tree/utils/indentTreeNode.d.ts +3 -0
  346. package/esm/Tree/utils/indentTreeNode.js +14 -0
  347. package/esm/Tree/utils/index.d.ts +11 -0
  348. package/esm/Tree/utils/index.js +14 -0
  349. package/esm/Tree/utils/isExpand.d.ts +6 -0
  350. package/esm/Tree/utils/isExpand.js +11 -0
  351. package/esm/Tree/utils/isSearching.d.ts +1 -0
  352. package/esm/Tree/utils/isSearching.js +5 -0
  353. package/esm/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
  354. package/esm/Tree/utils/treeKeyboardInteractions.js +43 -0
  355. package/esm/TreePicker/TreePicker.d.ts +27 -21
  356. package/esm/TreePicker/TreePicker.js +158 -579
  357. package/esm/TreePicker/hooks/useFocusState.d.ts +20 -0
  358. package/esm/TreePicker/hooks/useFocusState.js +48 -0
  359. package/esm/index.d.ts +2 -0
  360. package/esm/index.js +1 -0
  361. package/esm/internals/Picker/Listbox.d.ts +40 -10
  362. package/esm/internals/Picker/Listbox.js +22 -16
  363. package/esm/internals/Picker/PickerIndicator.d.ts +2 -1
  364. package/esm/internals/Picker/PickerIndicator.js +7 -3
  365. package/esm/internals/Picker/hooks/useFocusItemValue.js +1 -1
  366. package/esm/internals/Picker/hooks/usePickerRef.d.ts +1 -4
  367. package/esm/internals/Picker/hooks/usePickerRef.js +3 -20
  368. package/esm/internals/Picker/index.d.ts +0 -1
  369. package/esm/internals/Picker/index.js +0 -1
  370. package/esm/internals/Picker/utils.js +1 -1
  371. package/esm/internals/{Picker → Tree}/TreeView.js +1 -1
  372. package/esm/internals/Tree/index.d.ts +1 -0
  373. package/esm/internals/Tree/index.js +2 -0
  374. package/esm/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
  375. package/esm/internals/Tree/utils/filterNodesOfTree.js +26 -0
  376. package/esm/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
  377. package/esm/internals/Tree/utils/findNodeOfTree.js +22 -0
  378. package/esm/internals/Tree/utils/getParentMap.d.ts +15 -0
  379. package/esm/internals/Tree/utils/getParentMap.js +47 -0
  380. package/esm/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
  381. package/esm/internals/Tree/utils/getPathTowardsItem.js +12 -0
  382. package/esm/internals/Tree/utils/index.d.ts +4 -0
  383. package/esm/internals/Tree/utils/index.js +5 -0
  384. package/esm/internals/Windowing/List.d.ts +1 -0
  385. package/esm/internals/Windowing/List.js +3 -0
  386. package/esm/internals/Windowing/index.d.ts +1 -1
  387. package/esm/internals/Windowing/index.js +1 -1
  388. package/esm/internals/hooks/index.d.ts +1 -0
  389. package/esm/internals/hooks/index.js +2 -0
  390. package/esm/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
  391. package/esm/internals/hooks/useFoucsVirtualListItem.js +22 -0
  392. package/esm/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
  393. package/esm/{utils → internals/utils}/getSafeRegExpString.js +1 -1
  394. package/esm/internals/utils/index.d.ts +2 -0
  395. package/esm/internals/utils/index.js +3 -0
  396. package/esm/internals/utils/stringifyReactNode.d.ts +2 -0
  397. package/esm/internals/utils/stringifyReactNode.js +12 -0
  398. package/esm/utils/constants.d.ts +0 -2
  399. package/esm/utils/constants.js +0 -3
  400. package/esm/utils/getDataGroupBy.js +1 -1
  401. package/esm/utils/index.d.ts +0 -3
  402. package/esm/utils/index.js +0 -3
  403. package/esm/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  404. package/internals/Picker/styles/index.less +27 -1
  405. package/package.json +1 -1
  406. package/styles/color-modes/dark.less +5 -1
  407. package/styles/color-modes/high-contrast.less +8 -2
  408. package/styles/color-modes/light.less +10 -5
  409. package/styles/index.less +1 -0
  410. package/TreePicker/styles/mixin.less +0 -7
  411. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +0 -28
  412. package/cjs/CheckTreePicker/CheckTreeNode.js +0 -140
  413. package/cjs/CheckTreePicker/utils.d.ts +0 -44
  414. package/cjs/Tree/TreeContext.d.ts +0 -6
  415. package/cjs/Tree/TreeContext.js +0 -10
  416. package/cjs/TreePicker/TreeNode.d.ts +0 -36
  417. package/cjs/TreePicker/TreeNode.js +0 -174
  418. package/cjs/utils/appendTooltip.d.ts +0 -10
  419. package/cjs/utils/appendTooltip.js +0 -20
  420. package/cjs/utils/stringToObject.d.ts +0 -2
  421. package/cjs/utils/stringToObject.js +0 -19
  422. package/cjs/utils/treeUtils.d.ts +0 -304
  423. package/cjs/utils/treeUtils.js +0 -1095
  424. package/esm/CheckTreePicker/CheckTreeNode.d.ts +0 -28
  425. package/esm/CheckTreePicker/CheckTreeNode.js +0 -133
  426. package/esm/CheckTreePicker/utils.d.ts +0 -44
  427. package/esm/Tree/TreeContext.d.ts +0 -6
  428. package/esm/Tree/TreeContext.js +0 -4
  429. package/esm/TreePicker/TreeNode.d.ts +0 -36
  430. package/esm/TreePicker/TreeNode.js +0 -167
  431. package/esm/utils/appendTooltip.d.ts +0 -10
  432. package/esm/utils/appendTooltip.js +0 -15
  433. package/esm/utils/stringToObject.d.ts +0 -2
  434. package/esm/utils/stringToObject.js +0 -14
  435. package/esm/utils/treeUtils.d.ts +0 -304
  436. package/esm/utils/treeUtils.js +0 -1043
  437. /package/cjs/internals/{Picker → Tree}/TreeView.d.ts +0 -0
  438. /package/esm/internals/{Picker → Tree}/TreeView.d.ts +0 -0
@@ -0,0 +1,14 @@
1
+ import { TreeNode } from '../types';
2
+ interface UseTreeWithChildrenOptions {
3
+ valueKey: string;
4
+ childrenKey: string;
5
+ }
6
+ /**
7
+ * Custom hook that provides functionality for managing a tree structure with children.
8
+ */
9
+ export default function useTreeWithChildren<T extends TreeNode>(data: T[], options: UseTreeWithChildrenOptions): {
10
+ treeData: T[];
11
+ loadingNodeValues: never[];
12
+ appendChild: (node: any, getChildren: any) => void;
13
+ };
14
+ export {};
@@ -0,0 +1,59 @@
1
+ 'use client';
2
+ import { useState, useCallback, useEffect } from 'react';
3
+ import shallowEqual from '../../utils/shallowEqual';
4
+ import { findNodeOfTree } from '../../internals/Tree/utils';
5
+ /**
6
+ * Custom hook that provides functionality for managing a tree structure with children.
7
+ */
8
+ export default function useTreeWithChildren(data, options) {
9
+ var valueKey = options.valueKey,
10
+ childrenKey = options.childrenKey;
11
+ var _useState = useState([]),
12
+ loadingNodeValues = _useState[0],
13
+ setLoadingNodeValues = _useState[1];
14
+ var _useState2 = useState(data),
15
+ treeData = _useState2[0],
16
+ setTreeData = _useState2[1];
17
+ useEffect(function () {
18
+ setTreeData(data);
19
+ }, [data]);
20
+ var concatChildren = useCallback(function (treeNode, children) {
21
+ var value = treeNode[valueKey];
22
+ treeNode = findNodeOfTree(data, function (item) {
23
+ return value === item[valueKey];
24
+ });
25
+ treeNode[childrenKey] = children;
26
+ var newData = data.concat([]);
27
+ setTreeData(newData);
28
+ return newData;
29
+ }, [data, valueKey, childrenKey]);
30
+ var appendChild = useCallback(function (node, getChildren) {
31
+ setLoadingNodeValues(function (prev) {
32
+ return prev.concat(node[valueKey]);
33
+ });
34
+ var children = getChildren(node);
35
+ if (children instanceof Promise) {
36
+ children.then(function (res) {
37
+ var newData = concatChildren(node, res);
38
+ setTreeData(newData);
39
+ setLoadingNodeValues(function (prev) {
40
+ return prev.filter(function (item) {
41
+ return !shallowEqual(item, node[valueKey]);
42
+ });
43
+ });
44
+ });
45
+ } else {
46
+ setTreeData(concatChildren(node, children));
47
+ setLoadingNodeValues(function (prev) {
48
+ return prev.filter(function (item) {
49
+ return !shallowEqual(item, node[valueKey]);
50
+ });
51
+ });
52
+ }
53
+ }, [concatChildren, valueKey]);
54
+ return {
55
+ treeData: treeData,
56
+ loadingNodeValues: loadingNodeValues,
57
+ appendChild: appendChild
58
+ };
59
+ }
@@ -0,0 +1,7 @@
1
+ import type { TreeNode, TreeNodeMap } from '../types';
2
+ declare function useVirtualizedTreeData(nodes: TreeNodeMap, data: TreeNode[], options: {
3
+ expandItemValues: (string | number)[];
4
+ cascade?: boolean;
5
+ searchKeyword?: string;
6
+ }): () => TreeNode[];
7
+ export default useVirtualizedTreeData;
@@ -0,0 +1,77 @@
1
+ 'use client';
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import { useCallback } from 'react';
4
+ import intersection from 'lodash/intersection';
5
+ import isUndefined from 'lodash/isUndefined';
6
+ import { getNodeParentKeys } from '../utils/getNodeParentKeys';
7
+ import { isSearching } from '../utils/isSearching';
8
+ import { UNSAFE_flattenTree } from '../utils/flattenTree';
9
+ import { getNodeCheckState } from '../../CheckTree/utils';
10
+ import { useItemDataKeys } from '../TreeProvider';
11
+
12
+ /**
13
+ * Determines whether a node should be shown based on the expanded state of its parent nodes.
14
+ */
15
+ function shouldShowNodeByParentExpanded(expandItemValues, parentKeys) {
16
+ if (expandItemValues === void 0) {
17
+ expandItemValues = [];
18
+ }
19
+ if (parentKeys === void 0) {
20
+ parentKeys = [];
21
+ }
22
+ var intersectionKeys = intersection(expandItemValues, parentKeys);
23
+ if (intersectionKeys.length === parentKeys.length) {
24
+ return true;
25
+ }
26
+ return false;
27
+ }
28
+ function useVirtualizedTreeData(nodes, data, options) {
29
+ var _useItemDataKeys = useItemDataKeys(),
30
+ childrenKey = _useItemDataKeys.childrenKey,
31
+ valueKey = _useItemDataKeys.valueKey;
32
+ /**
33
+ * Formats the virtualized tree data.
34
+ */
35
+ return useCallback(function () {
36
+ var cascade = options.cascade,
37
+ searchKeyword = options.searchKeyword,
38
+ expandItemValues = options.expandItemValues;
39
+ return UNSAFE_flattenTree(data, childrenKey, function (node) {
40
+ var formatted = {};
41
+ var curNode = nodes === null || nodes === void 0 ? void 0 : nodes[node.refKey];
42
+ var parentKeys = getNodeParentKeys(nodes, curNode, valueKey);
43
+ /**
44
+ * When using virtualized,
45
+ * if the parent node is collapsed, the child nodes should be hidden
46
+ * avoid component height calculation errors
47
+ */
48
+ var visible = curNode !== null && curNode !== void 0 && curNode.parent ? shouldShowNodeByParentExpanded(expandItemValues, parentKeys) : true;
49
+
50
+ /**
51
+ * when searching, every node default expand
52
+ * the node's visible should follow the original state
53
+ */
54
+ if (isSearching(searchKeyword)) {
55
+ visible = node.visible;
56
+ }
57
+ if (curNode) {
58
+ var checkState = !isUndefined(cascade) ? getNodeCheckState(curNode, {
59
+ cascade: cascade,
60
+ nodes: nodes,
61
+ childrenKey: childrenKey
62
+ }) : undefined;
63
+ formatted = _extends({}, node, {
64
+ check: curNode.check,
65
+ uncheckable: curNode.uncheckable,
66
+ hasChildren: !!node[childrenKey],
67
+ layer: curNode.layer,
68
+ parent: curNode.parent,
69
+ checkState: checkState,
70
+ visible: visible
71
+ });
72
+ }
73
+ return formatted;
74
+ });
75
+ }, [childrenKey, data, nodes, options, valueKey]);
76
+ }
77
+ export default useVirtualizedTreeData;
@@ -0,0 +1,257 @@
1
+ /// <reference types="react" />
2
+ import type { CheckStateType } from '../utils/constants';
3
+ import type { StandardProps } from '../@types/common';
4
+ import type { ListProps } from '../internals/Windowing';
5
+ /**
6
+ * Represents a single node in a tree.
7
+ */
8
+ export interface TreeNode extends Record<string, any> {
9
+ /**
10
+ * Specifies whether the node is uncheckable.
11
+ */
12
+ uncheckable?: boolean;
13
+ /**
14
+ * The reference key of the node.
15
+ */
16
+ refKey?: string;
17
+ /**
18
+ * Specifies whether the node is checked.
19
+ */
20
+ check?: boolean;
21
+ /**
22
+ * The parent node of the current node.
23
+ */
24
+ parent?: TreeNode;
25
+ /**
26
+ * Specifies whether all child nodes are checked.
27
+ */
28
+ checkAll?: boolean;
29
+ /**
30
+ * Specifies whether the node is visible.
31
+ */
32
+ visible?: boolean;
33
+ /**
34
+ * Specifies whether the node is expanded.
35
+ */
36
+ expand?: boolean;
37
+ /**
38
+ * The layer of the node in the tree hierarchy.
39
+ */
40
+ layer?: number;
41
+ /**
42
+ * The label of the node.
43
+ */
44
+ label?: string | React.ReactNode;
45
+ /**
46
+ * The value of the node.
47
+ */
48
+ value?: string | number;
49
+ /**
50
+ * The property to group nodes by.
51
+ */
52
+ groupBy?: string;
53
+ /**
54
+ * The child nodes of the current node.
55
+ */
56
+ children?: TreeNode[];
57
+ /**
58
+ * Specifies whether the node has children.
59
+ */
60
+ hasChildren?: boolean;
61
+ /**
62
+ * The check state of the node.
63
+ */
64
+ checkState?: CheckStateType;
65
+ }
66
+ /**
67
+ * Represents a map of tree nodes.
68
+ */
69
+ export interface TreeNodeMap {
70
+ [key: string]: TreeNode;
71
+ }
72
+ /**
73
+ * Tree Node Drag Type
74
+ */
75
+ export declare enum TREE_NODE_DROP_POSITION {
76
+ DRAG_OVER = 0,
77
+ DRAG_OVER_TOP = 1,
78
+ DRAG_OVER_BOTTOM = 2
79
+ }
80
+ export interface DropData<T> {
81
+ /** drag node data */
82
+ dragNode: T;
83
+ /** dropNode data */
84
+ dropNode: T;
85
+ /** node drop position */
86
+ dropNodePosition: TREE_NODE_DROP_POSITION;
87
+ /** Update Data when drop node */
88
+ createUpdateDataFunction: (data: T[]) => T[];
89
+ }
90
+ /**
91
+ * Represents the drag-related props for the Tree component.
92
+ */
93
+ export interface TreeDragProps<T = Record<string, any>> {
94
+ /**
95
+ * Specifies whether the node can be dragged.
96
+ */
97
+ draggable?: boolean;
98
+ /**
99
+ * Called when scrolling.
100
+ * @param event - The scroll event.
101
+ */
102
+ onScroll?: (event: React.SyntheticEvent) => void;
103
+ /**
104
+ * Called when the node drag starts.
105
+ * @param nodeData - The data associated with the dragged node.
106
+ * @param e - The drag event.
107
+ */
108
+ onDragStart?: (nodeData: T, e: React.DragEvent) => void;
109
+ /**
110
+ * Called when the node is dragged over.
111
+ * @param nodeData - The data associated with the dragged node.
112
+ * @param e - The drag event.
113
+ */
114
+ onDragEnter?: (nodeData: T, e: React.DragEvent) => void;
115
+ /**
116
+ * Called when the node is dragged over.
117
+ * @param nodeData - The data associated with the dragged node.
118
+ * @param e - The drag event.
119
+ */
120
+ onDragOver?: (nodeData: T, e: React.DragEvent) => void;
121
+ /**
122
+ * Called when the node is dragged out.
123
+ * @param nodeData - The data associated with the dragged node.
124
+ * @param e - The drag event.
125
+ */
126
+ onDragLeave?: (nodeData: T, e: React.DragEvent) => void;
127
+ /**
128
+ * Called when the node drag ends.
129
+ * @param nodeData - The data associated with the dragged node.
130
+ * @param e - The drag event.
131
+ */
132
+ onDragEnd?: (nodeData: T, e: React.DragEvent) => void;
133
+ /**
134
+ * Called when a node is dropped.
135
+ * @param dropData - The data associated with the dropped node.
136
+ * @param e - The drag event.
137
+ */
138
+ onDrop?: (dropData: DropData<T>, e: React.DragEvent) => void;
139
+ }
140
+ /**
141
+ * Represents the base props for the Tree component.
142
+ *
143
+ * @template V - The type of the value associated with each tree node.
144
+ * @template T - The type of the tree node.
145
+ */
146
+ /**
147
+ * Represents the props for the Tree component.
148
+ */
149
+ export interface TreeViewBaseProps<V = string | number, T = TreeNode> extends StandardProps {
150
+ /**
151
+ * The height of the tree.
152
+ */
153
+ height?: number;
154
+ /**
155
+ * Whether to display the search input box.
156
+ */
157
+ searchable?: boolean;
158
+ /**
159
+ * Whether to display an auxiliary line when the tree node is indented.
160
+ */
161
+ showIndentLine?: boolean;
162
+ /**
163
+ * Whether to use virtualized list.
164
+ */
165
+ virtualized?: boolean;
166
+ /**
167
+ * Props for the virtualized list.
168
+ */
169
+ listProps?: Partial<ListProps>;
170
+ /**
171
+ * The search keyword (controlled).
172
+ */
173
+ searchKeyword?: string;
174
+ /**
175
+ * The option values for the expand nodes with controlled.
176
+ */
177
+ expandItemValues?: any[];
178
+ /**
179
+ * Callback function for expanding tree nodes.
180
+ * @param expandItemValues - The values of the expanded nodes.
181
+ * @param activeNode - The currently active node.
182
+ * @param concat - A function to concatenate data and children.
183
+ */
184
+ onExpand?: (expandItemValues: T[], activeNode: T, concat: (data: T[], children: T[]) => T[]) => void;
185
+ /**
186
+ * Callback function after selecting a tree node.
187
+ * @param activeNode - The currently active node.
188
+ * @param value - The value of the selected node.
189
+ * @param event - The event object.
190
+ */
191
+ onSelect?: (activeNode: T, value: V, event: React.SyntheticEvent) => void;
192
+ /**
193
+ * Callback when a tree item is clicked.
194
+ * @param item - The clicked tree item.
195
+ * @param path - The path of the clicked item.
196
+ */
197
+ onSelectItem?: (item: T, path: T[]) => void;
198
+ /**
199
+ * Callback fired when searching.
200
+ * @param searchKeyword - The search keyword.
201
+ * @param event - The event object.
202
+ */
203
+ onSearch?: (searchKeyword: string, event: React.SyntheticEvent) => void;
204
+ /**
205
+ * Callback fired when cleaning.
206
+ * @param event - The event object.
207
+ */
208
+ onClean?: (event: React.SyntheticEvent) => void;
209
+ /**
210
+ * Custom search rules.
211
+ * @param keyword - The search keyword.
212
+ * @param label - The label of the tree item.
213
+ * @param item - The tree item.
214
+ * @returns Whether the item matches the search criteria.
215
+ */
216
+ searchBy?: (keyword: string, label: React.ReactNode, item: any) => boolean;
217
+ /**
218
+ * Callback function called after the value has been changed.
219
+ * @param value - The new value.
220
+ * @param event - The event object.
221
+ */
222
+ onChange?: (value: V, event: React.SyntheticEvent) => void;
223
+ }
224
+ export interface TreeExtraProps<T = TreeNode> {
225
+ /**
226
+ * Whether to expand all nodes by default.
227
+ */
228
+ defaultExpandAll?: boolean;
229
+ /**
230
+ * The option values for the expand nodes by default.
231
+ */
232
+ defaultExpandItemValues?: any[];
233
+ /**
234
+ * Function to load node children data asynchronously.
235
+ * @param activeNode - The currently active node.
236
+ * @returns The children of the active node.
237
+ */
238
+ getChildren?: (activeNode: T) => T[] | Promise<T[]>;
239
+ /**
240
+ * Custom render function for the tree.
241
+ * @param menu - The menu to be rendered.
242
+ * @returns The rendered tree.
243
+ */
244
+ renderTree?: (menu: React.ReactNode) => React.ReactNode;
245
+ /**
246
+ * Custom render function for tree nodes.
247
+ * @param nodeData - The data of the tree node.
248
+ * @returns The rendered node.
249
+ */
250
+ renderTreeNode?: (nodeData: T) => React.ReactNode;
251
+ /**
252
+ * Custom render function for tree icons.
253
+ * @param nodeData - The data of the tree node.
254
+ * @returns The rendered icon.
255
+ */
256
+ renderTreeIcon?: (nodeData: T, expanded?: boolean) => React.ReactNode;
257
+ }
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+ /**
3
+ * Represents a single node in a tree.
4
+ */
5
+
6
+ /**
7
+ * Represents a map of tree nodes.
8
+ */
9
+
10
+ /**
11
+ * Tree Node Drag Type
12
+ */
13
+ export var TREE_NODE_DROP_POSITION;
14
+ (function (TREE_NODE_DROP_POSITION) {
15
+ TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER"] = 0] = "DRAG_OVER";
16
+ TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER_TOP"] = 1] = "DRAG_OVER_TOP";
17
+ TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER_BOTTOM"] = 2] = "DRAG_OVER_BOTTOM";
18
+ })(TREE_NODE_DROP_POSITION || (TREE_NODE_DROP_POSITION = {}));
19
+ /**
20
+ * Represents the drag-related props for the Tree component.
21
+ */
22
+ /**
23
+ * Represents the base props for the Tree component.
24
+ *
25
+ * @template V - The type of the value associated with each tree node.
26
+ * @template T - The type of the tree node.
27
+ */
28
+ /**
29
+ * Represents the props for the Tree component.
30
+ */
@@ -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,88 @@
1
+ 'use client';
2
+ function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
5
+ import { attachParent } from '../../utils/attachParent';
6
+
7
+ /**
8
+ * Strategy for walking the tree.
9
+ */
10
+ export var WalkTreeStrategy;
11
+
12
+ /**
13
+ * Flattens a tree structure into an array.
14
+ */
15
+ (function (WalkTreeStrategy) {
16
+ WalkTreeStrategy[WalkTreeStrategy["DFS"] = 0] = "DFS";
17
+ WalkTreeStrategy[WalkTreeStrategy["BFS"] = 1] = "BFS";
18
+ })(WalkTreeStrategy || (WalkTreeStrategy = {}));
19
+ export function flattenTree(rootNodes, getChildren, walkStrategy) {
20
+ if (walkStrategy === void 0) {
21
+ walkStrategy = WalkTreeStrategy.BFS;
22
+ }
23
+ var result = [];
24
+ if (walkStrategy === WalkTreeStrategy.BFS) {
25
+ walkTreeBfs(rootNodes, getChildren, function (node) {
26
+ return result.push(node);
27
+ });
28
+ } else if (walkStrategy === WalkTreeStrategy.DFS) {
29
+ walkTreeDfs(rootNodes, getChildren, function (node) {
30
+ return result.push(node);
31
+ });
32
+ }
33
+ return result;
34
+ }
35
+
36
+ /**
37
+ * Walks the tree in a breadth-first search (BFS) manner.
38
+ */
39
+ export function walkTreeBfs(rootNodes, getChildren, callback) {
40
+ for (var queue = [].concat(rootNodes); queue.length > 0;) {
41
+ var _node = queue.shift();
42
+ callback(_node);
43
+ var children = getChildren(_node);
44
+ if (children) {
45
+ queue.push.apply(queue, children);
46
+ }
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Walks the tree in a depth-first search (DFS) manner.
52
+ */
53
+ export function walkTreeDfs(rootNodes, getChildren, callback) {
54
+ for (var _iterator = _createForOfIteratorHelperLoose(rootNodes), _step; !(_step = _iterator()).done;) {
55
+ var _node2 = _step.value;
56
+ callback(_node2);
57
+ var children = getChildren(_node2);
58
+ if (children) {
59
+ walkTreeDfs(children, getChildren, callback);
60
+ }
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Flattens a tree structure to an array (deprecated).
66
+ * @deprecated This function is considered unsafe because it mutates the `tree` argument in-place.
67
+ * Use the `flattenTree` function instead.
68
+ */
69
+ export function UNSAFE_flattenTree(tree, childrenKey, executor) {
70
+ if (childrenKey === void 0) {
71
+ childrenKey = 'children';
72
+ }
73
+ var flattenData = [];
74
+ var traverse = function traverse(data, parent) {
75
+ if (!Array.isArray(data)) {
76
+ return;
77
+ }
78
+ data.forEach(function (item, index) {
79
+ var node = typeof executor === 'function' ? executor(item, index) : item;
80
+ flattenData.push(attachParent(node, parent));
81
+ if (item[childrenKey]) {
82
+ traverse(item[childrenKey], item);
83
+ }
84
+ });
85
+ };
86
+ traverse(tree, null);
87
+ return flattenData;
88
+ }
@@ -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 {};