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
@@ -13,9 +13,9 @@ var _pick = _interopRequireDefault(require("lodash/pick"));
13
13
  var _omit = _interopRequireDefault(require("lodash/omit"));
14
14
  var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
15
15
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
16
- var _treeUtils = require("../utils/treeUtils");
17
- var _utils = require("../CascadeTree/utils");
18
- var _utils2 = require("../utils");
16
+ var _utils = require("../internals/Tree/utils");
17
+ var _utils2 = require("../CascadeTree/utils");
18
+ var _utils3 = require("../utils");
19
19
  var _Picker = require("../internals/Picker");
20
20
  var _propTypes2 = require("../internals/propTypes");
21
21
  var _hooks = require("../MultiCascadeTree/hooks");
@@ -95,10 +95,10 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
95
95
  target = _usePickerRef.target,
96
96
  overlay = _usePickerRef.overlay,
97
97
  searchInput = _usePickerRef.searchInput;
98
- var _useCustom = (0, _utils2.useCustom)('Picker', overrideLocale),
98
+ var _useCustom = (0, _utils3.useCustom)('Picker', overrideLocale),
99
99
  locale = _useCustom.locale,
100
100
  rtl = _useCustom.rtl;
101
- var _useClassNames = (0, _utils2.useClassNames)(classPrefix),
101
+ var _useClassNames = (0, _utils3.useClassNames)(classPrefix),
102
102
  prefix = _useClassNames.prefix,
103
103
  merge = _useClassNames.merge;
104
104
  var onSelectCallback = (0, _react.useCallback)(function (node, cascadePaths, event) {
@@ -120,7 +120,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
120
120
  setColumnData = _useSelect.setColumnData,
121
121
  setSelectedPaths = _useSelect.setSelectedPaths,
122
122
  handleSelect = _useSelect.handleSelect;
123
- var _useControlled = (0, _utils2.useControlled)(valueProp, defaultValue),
123
+ var _useControlled = (0, _utils3.useControlled)(valueProp, defaultValue),
124
124
  controlledValue = _useControlled[0];
125
125
  var itemKeys = {
126
126
  childrenKey: childrenKey,
@@ -144,7 +144,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
144
144
  });
145
145
  }) || [];
146
146
  var onFocusItemCallback = (0, _react.useCallback)(function (value) {
147
- var _getColumnsAndPaths = (0, _utils.getColumnsAndPaths)(data, flattenData.find(function (item) {
147
+ var _getColumnsAndPaths = (0, _utils2.getColumnsAndPaths)(data, flattenData.find(function (item) {
148
148
  return item[valueKey] === value;
149
149
  }), {
150
150
  getParent: function getParent() {
@@ -205,7 +205,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
205
205
  active = _useActive.active,
206
206
  handleEntered = _useActive.handleEntered,
207
207
  handleExited = _useActive.handleExited;
208
- var handleClean = (0, _utils2.useEventCallback)(function (event) {
208
+ var handleClean = (0, _utils3.useEventCallback)(function (event) {
209
209
  if (disabled || !target.current) {
210
210
  return;
211
211
  }
@@ -214,9 +214,9 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
214
214
  setColumnData([data]);
215
215
  onChange === null || onChange === void 0 ? void 0 : onChange([], event);
216
216
  });
217
- var handleMenuPressEnter = (0, _utils2.useEventCallback)(function (event) {
217
+ var handleMenuPressEnter = (0, _utils3.useEventCallback)(function (event) {
218
218
  var _overlay$current;
219
- var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {
219
+ var focusItem = (0, _utils.findNodeOfTree)(data, function (item) {
220
220
  return item[valueKey] === focusItemValue;
221
221
  });
222
222
  var checkbox = (_overlay$current = overlay.current) === null || _overlay$current === void 0 ? void 0 : _overlay$current.querySelector("[data-key=\"" + focusItemValue + "\"] [type=\"checkbox\"]");
@@ -264,7 +264,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
264
264
  });
265
265
  var classes = merge(className, DEPRECATED_menuClassName, popupClassName, prefix('popup-multi-cascader'));
266
266
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
267
- ref: (0, _utils2.mergeRefs)(overlay, speakerRef),
267
+ ref: (0, _utils3.mergeRefs)(overlay, speakerRef),
268
268
  className: classes,
269
269
  style: styles,
270
270
  target: trigger,
@@ -353,7 +353,7 @@ var MultiCascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
353
353
  appearance: appearance,
354
354
  disabled: disabled,
355
355
  ref: target,
356
- onClean: (0, _utils2.createChainedFunction)(handleClean, onClean),
356
+ onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),
357
357
  onKeyDown: onPickerKeyDown,
358
358
  cleanable: cleanable && !disabled,
359
359
  hasValue: hasValue,
@@ -11,7 +11,6 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _pick = _interopRequireDefault(require("lodash/pick"));
14
- var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
15
14
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
16
15
  var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
17
16
  var _omit = _interopRequireDefault(require("lodash/omit"));
@@ -236,11 +235,8 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
236
235
  listItemAs: _Picker.ListItem,
237
236
  activeItemValues: [value],
238
237
  focusItemValue: focusItemValue,
239
- data: items
240
- // FIXME-Doma
241
- // `group` is redundant so long as `groupBy` exists
242
- ,
243
- group: !(0, _isUndefined.default)(groupBy),
238
+ data: items,
239
+ query: searchKeyword,
244
240
  groupBy: groupBy,
245
241
  onSelect: handleItemSelect,
246
242
  onGroupTitleClick: onGroupTitleClick,
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const IndentLine: () => JSX.Element;
3
+ export default IndentLine;
@@ -0,0 +1,18 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _utils = require("../utils");
9
+ var IndentLine = function IndentLine() {
10
+ var _useClassNames = (0, _utils.useClassNames)('tree'),
11
+ prefix = _useClassNames.prefix;
12
+ return /*#__PURE__*/_react.default.createElement("span", {
13
+ className: prefix('indent-line'),
14
+ "data-testid": "indent-line"
15
+ });
16
+ };
17
+ var _default = IndentLine;
18
+ exports.default = _default;
@@ -1,95 +1,7 @@
1
- import React from 'react';
2
- import { StandardProps, ItemDataType, RsRefForwardingComponent } from '../@types/common';
3
- import { ListProps } from '../internals/Windowing';
4
- /**
5
- * Tree Node Drag Type
6
- */
7
- export declare enum TREE_NODE_DROP_POSITION {
8
- DRAG_OVER = 0,
9
- DRAG_OVER_TOP = 1,
10
- DRAG_OVER_BOTTOM = 2
11
- }
12
- export interface DropData<ItemDataType> {
13
- /** drag node data */
14
- dragNode: ItemDataType;
15
- /** dropNode data */
16
- dropNode: ItemDataType;
17
- /** node drop position */
18
- dropNodePosition: TREE_NODE_DROP_POSITION;
19
- /** Update Data when drop node */
20
- createUpdateDataFunction: (data: ItemDataType[]) => ItemDataType[];
21
- }
22
- export interface TreeDragProps<ItemDataType = Record<string, any>> {
23
- /** Whether the node can be dragged */
24
- draggable?: boolean;
25
- /** Called when scrolling */
26
- onScroll?: (event: React.SyntheticEvent) => void;
27
- /** Called when node drag start */
28
- onDragStart?: (nodeData: ItemDataType, e: React.DragEvent) => void;
29
- /** Called when node drag enter */
30
- onDragEnter?: (nodeData: ItemDataType, e: React.DragEvent) => void;
31
- /** Called when node drag over */
32
- onDragOver?: (nodeData: ItemDataType, e: React.DragEvent) => void;
33
- /** Called when node drag leave */
34
- onDragLeave?: (nodeData: ItemDataType, e: React.DragEvent) => void;
35
- /** Called when node drag end */
36
- onDragEnd?: (nodeData: ItemDataType, e: React.DragEvent) => void;
37
- /** Called when node drop */
38
- onDrop?: (dropData: DropData<ItemDataType>, e: React.DragEvent) => void;
39
- }
40
- export interface TreeBaseProps<ValueType = string | number, ItemDataType = Record<string, any>> extends StandardProps {
41
- /** The height of Dropdown */
42
- height?: number;
43
- /** Whether display search input box */
44
- searchable?: boolean;
45
- /** Display an auxiliary line when the tree node is indented. */
46
- showIndentLine?: boolean;
47
- /** Whether using virtualized list */
48
- virtualized?: boolean;
49
- /** Virtualized List props */
50
- listProps?: Partial<ListProps>;
51
- /** Expand all nodes By default */
52
- defaultExpandAll?: boolean;
53
- /** searchKeyword (Controlled) */
54
- searchKeyword?: string;
55
- /** Set the option value for the expand node */
56
- defaultExpandItemValues?: any[];
57
- /** Set the option value for the expand node with controlled*/
58
- expandItemValues?: any[];
59
- /** Callback function for data change */
60
- onExpand?: (expandItemValues: ItemDataType[], activeNode: ItemDataType, concat: (data: ItemDataType[], children: ItemDataType[]) => ItemDataType[]) => void;
61
- /** Callback function after selecting tree node */
62
- onSelect?: (activeNode: ItemDataType, value: ValueType, event: React.SyntheticEvent) => void;
63
- /** Callback when a tree item is clicked */
64
- onSelectItem?: (item: ItemDataType, path: ItemDataType[]) => void;
65
- /** Custom Render tree Node */
66
- renderTreeNode?: (nodeData: ItemDataType) => React.ReactNode;
67
- /** Custom Render icon */
68
- renderTreeIcon?: (nodeData: ItemDataType) => React.ReactNode;
69
- /** callback fired when search */
70
- onSearch?: (searchKeyword: string, event: React.KeyboardEvent<HTMLInputElement>) => void;
71
- /** Called when clean */
72
- onClean?: (event: React.SyntheticEvent) => void;
73
- /** Custom search rules. */
74
- searchBy?: (keyword: string, label: React.ReactNode, item: any) => boolean;
75
- /** Customizing the Rendering Menu list */
76
- renderMenu?: (menu: React.ReactNode) => React.ReactNode;
77
- /** load node children data asynchronously */
78
- getChildren?: (activeNode: ItemDataType) => ItemDataType[] | Promise<ItemDataType>;
79
- }
80
- export interface TreeProps<T = string | number> extends TreeBaseProps<T, ItemDataType<T>>, TreeDragProps<ItemDataType<T>> {
81
- /** Tree Data */
82
- data: ItemDataType<T>[];
83
- /** Selected value */
84
- value?: T;
85
- /** Whether using virtualized list */
86
- virtualized?: boolean;
87
- /** Tree data structure Label property name */
88
- labelKey?: string;
89
- /** Tree data Structure Value property name */
90
- valueKey?: string;
91
- /** Tree data structure Children property name */
92
- childrenKey?: string;
1
+ import { RsRefForwardingComponent } from '../@types/common';
2
+ import { type TreeViewProps } from './TreeView';
3
+ import type { TreeExtraProps } from './types';
4
+ export interface TreeProps<T = string | number | null> extends TreeViewProps<T>, TreeExtraProps {
93
5
  /** Default selected Value */
94
6
  defaultValue?: T;
95
7
  }
package/cjs/Tree/Tree.js CHANGED
@@ -4,37 +4,96 @@
4
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
6
  exports.__esModule = true;
7
- exports.default = exports.TREE_NODE_DROP_POSITION = void 0;
7
+ exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
10
  var _react = _interopRequireWildcard(require("react"));
10
- var _TreePicker = _interopRequireDefault(require("../TreePicker"));
11
- var _TreeContext = _interopRequireDefault(require("./TreeContext"));
12
- /**
13
- * Tree Node Drag Type
14
- */
15
- var TREE_NODE_DROP_POSITION;
16
- exports.TREE_NODE_DROP_POSITION = TREE_NODE_DROP_POSITION;
17
- (function (TREE_NODE_DROP_POSITION) {
18
- TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER"] = 0] = "DRAG_OVER";
19
- TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER_TOP"] = 1] = "DRAG_OVER_TOP";
20
- TREE_NODE_DROP_POSITION[TREE_NODE_DROP_POSITION["DRAG_OVER_BOTTOM"] = 2] = "DRAG_OVER_BOTTOM";
21
- })(TREE_NODE_DROP_POSITION || (exports.TREE_NODE_DROP_POSITION = TREE_NODE_DROP_POSITION = {}));
11
+ var _TreeView = _interopRequireDefault(require("./TreeView"));
12
+ var _utils = require("../utils");
13
+ var _useFlattenTree = _interopRequireDefault(require("./hooks/useFlattenTree"));
14
+ var _useTreeWithChildren2 = _interopRequireDefault(require("./hooks/useTreeWithChildren"));
15
+ var _useExpandTree2 = _interopRequireDefault(require("./hooks/useExpandTree"));
16
+ var _TreeProvider = require("./TreeProvider");
22
17
  /**
23
18
  * The `Tree` component is used to display hierarchical data.
24
19
  *
25
20
  * @see https://rsuitejs.com/components/tree
26
21
  */
27
22
  var Tree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
28
- var contextValue = (0, _react.useMemo)(function () {
23
+ var controlledValue = props.value,
24
+ defaultValue = props.defaultValue,
25
+ _props$childrenKey = props.childrenKey,
26
+ childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
27
+ _props$labelKey = props.labelKey,
28
+ labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
29
+ _props$valueKey = props.valueKey,
30
+ valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
31
+ data = props.data,
32
+ _props$defaultExpandA = props.defaultExpandAll,
33
+ defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,
34
+ _props$defaultExpandI = props.defaultExpandItemValues,
35
+ defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI,
36
+ controlledExpandItemValues = props.expandItemValues,
37
+ virtualized = props.virtualized,
38
+ renderTreeIcon = props.renderTreeIcon,
39
+ renderTreeNode = props.renderTreeNode,
40
+ getChildren = props.getChildren,
41
+ onChange = props.onChange,
42
+ onExpand = props.onExpand,
43
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["value", "defaultValue", "childrenKey", "labelKey", "valueKey", "data", "defaultExpandAll", "defaultExpandItemValues", "expandItemValues", "virtualized", "renderTreeIcon", "renderTreeNode", "getChildren", "onChange", "onExpand"]);
44
+ var _useControlled = (0, _utils.useControlled)(controlledValue, defaultValue),
45
+ value = _useControlled[0],
46
+ setValue = _useControlled[1];
47
+ var itemDataKeys = {
48
+ childrenKey: childrenKey,
49
+ labelKey: labelKey,
50
+ valueKey: valueKey
51
+ };
52
+ var _useTreeWithChildren = (0, _useTreeWithChildren2.default)(data, itemDataKeys),
53
+ treeData = _useTreeWithChildren.treeData,
54
+ loadingNodeValues = _useTreeWithChildren.loadingNodeValues,
55
+ appendChild = _useTreeWithChildren.appendChild;
56
+ var flattenedNodes = (0, _useFlattenTree.default)(treeData, (0, _extends2.default)({}, itemDataKeys));
57
+ var _useExpandTree = (0, _useExpandTree2.default)(data, (0, _extends2.default)({}, itemDataKeys, {
58
+ defaultExpandAll: defaultExpandAll,
59
+ defaultExpandItemValues: defaultExpandItemValues,
60
+ controlledExpandItemValues: controlledExpandItemValues,
61
+ onExpand: onExpand,
62
+ getChildren: getChildren,
63
+ appendChild: appendChild
64
+ })),
65
+ expandItemValues = _useExpandTree.expandItemValues,
66
+ handleExpandTreeNode = _useExpandTree.handleExpandTreeNode;
67
+ var handleChange = (0, _utils.useEventCallback)(function (nextValue, event) {
68
+ setValue(nextValue);
69
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
70
+ });
71
+ var treeContext = (0, _react.useMemo)(function () {
29
72
  return {
30
- inline: true
73
+ props: {
74
+ childrenKey: childrenKey,
75
+ labelKey: labelKey,
76
+ valueKey: valueKey,
77
+ virtualized: virtualized,
78
+ renderTreeIcon: renderTreeIcon,
79
+ renderTreeNode: renderTreeNode
80
+ }
31
81
  };
32
- }, []);
33
- return /*#__PURE__*/_react.default.createElement(_TreeContext.default.Provider, {
34
- value: contextValue
35
- }, /*#__PURE__*/_react.default.createElement(_TreePicker.default, (0, _extends2.default)({
82
+ }, [childrenKey, labelKey, valueKey, virtualized, renderTreeIcon, renderTreeNode]);
83
+ return /*#__PURE__*/_react.default.createElement(_TreeProvider.TreeProvider, {
84
+ value: treeContext
85
+ }, /*#__PURE__*/_react.default.createElement(_TreeView.default, (0, _extends2.default)({
36
86
  ref: ref
37
- }, props)));
87
+ }, rest, {
88
+ value: value,
89
+ data: treeData,
90
+ virtualized: virtualized,
91
+ loadingNodeValues: loadingNodeValues,
92
+ flattenedNodes: flattenedNodes,
93
+ expandItemValues: expandItemValues,
94
+ onChange: handleChange,
95
+ onExpand: handleExpandTreeNode
96
+ })));
38
97
  });
39
98
  Tree.displayName = 'Tree';
40
99
  var _default = Tree;
@@ -0,0 +1,101 @@
1
+ import React from 'react';
2
+ import { WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
+ import type { TreeNode as TreeNodeData } from './types';
4
+ export declare type DragStatus = 'drag-over' | 'drag-over-top' | 'drag-over-bottom';
5
+ interface TreeDragEventProps {
6
+ /**
7
+ * Callback function called when the drag operation starts.
8
+ */
9
+ onDragStart?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
10
+ /**
11
+ * Callback function called when a dragged item enters the node.
12
+ */
13
+ onDragEnter?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
14
+ /**
15
+ * Callback function called when a dragged item is over the node.
16
+ */
17
+ onDragOver?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
18
+ /**
19
+ * Callback function called when a dragged item leaves the node.
20
+ */
21
+ onDragLeave?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
22
+ /**
23
+ * Callback function called when the drag operation ends.
24
+ */
25
+ onDragEnd?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
26
+ /**
27
+ * Callback function called when a dragged item is dropped on the node.
28
+ */
29
+ onDrop?: (nodeData: TreeNodeData, event: React.DragEvent<any>) => void;
30
+ }
31
+ /**
32
+ * Props for the TreeNode component.
33
+ */
34
+ export interface TreeNodeProps extends WithAsProps, TreeDragEventProps {
35
+ /**
36
+ * The layer of the node in the tree hierarchy.
37
+ */
38
+ layer: number;
39
+ /**
40
+ * The value of the node.
41
+ */
42
+ value?: TreeNodeData['value'];
43
+ /**
44
+ * The label of the node.
45
+ */
46
+ label?: TreeNodeData['label'];
47
+ /**
48
+ * Whether the node should be focused.
49
+ */
50
+ focus?: boolean;
51
+ /**
52
+ * Whether the node is in a loading state.
53
+ */
54
+ loading?: boolean;
55
+ /**
56
+ * Whether the node is expanded.
57
+ */
58
+ expanded?: boolean;
59
+ /**
60
+ * Whether the node is active.
61
+ */
62
+ active?: boolean;
63
+ /**
64
+ * Whether the node is visible.
65
+ */
66
+ visible: boolean;
67
+ /**
68
+ * The data associated with the node.
69
+ */
70
+ nodeData: any;
71
+ /**
72
+ * Whether the node is disabled.
73
+ */
74
+ disabled?: boolean;
75
+ /**
76
+ * Whether the node is draggable.
77
+ */
78
+ draggable?: boolean;
79
+ /**
80
+ * Whether the node is being dragged.
81
+ */
82
+ dragging?: boolean;
83
+ /**
84
+ * Drag status of the node.
85
+ */
86
+ dragStatus?: DragStatus;
87
+ /**
88
+ * Whether the node has children.
89
+ */
90
+ hasChildren?: boolean;
91
+ /**
92
+ * Callback function called when the node is expanded.
93
+ */
94
+ onExpand?: (nodeData: TreeNodeData, expanded?: boolean) => void;
95
+ /**
96
+ * Callback function called when the node is selected.
97
+ */
98
+ onSelect?: (nodeData: TreeNodeData, event: React.SyntheticEvent) => void;
99
+ }
100
+ declare const TreeNode: RsRefForwardingComponent<'div', TreeNodeProps>;
101
+ export default TreeNode;
@@ -0,0 +1,147 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+ exports.__esModule = true;
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _utils = require("../utils");
12
+ var _utils2 = require("../internals/utils");
13
+ var _hooks = require("../internals/hooks");
14
+ var _TreeNodeToggle = _interopRequireDefault(require("./TreeNodeToggle"));
15
+ var _TreeProvider = require("./TreeProvider");
16
+ var _utils3 = require("./utils");
17
+ /**
18
+ * Props for the TreeNode component.
19
+ */
20
+
21
+ var TreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
22
+ var _props$as = props.as,
23
+ Component = _props$as === void 0 ? 'div' : _props$as,
24
+ label = props.label,
25
+ layer = props.layer,
26
+ active = props.active,
27
+ loading = props.loading,
28
+ nodeData = props.nodeData,
29
+ className = props.className,
30
+ _props$classPrefix = props.classPrefix,
31
+ classPrefix = _props$classPrefix === void 0 ? 'tree-node' : _props$classPrefix,
32
+ disabled = props.disabled,
33
+ _props$visible = props.visible,
34
+ visible = _props$visible === void 0 ? true : _props$visible,
35
+ draggable = props.draggable,
36
+ expanded = props.expanded,
37
+ focus = props.focus,
38
+ style = props.style,
39
+ hasChildren = props.hasChildren,
40
+ dragging = props.dragging,
41
+ dragStatus = props.dragStatus,
42
+ onSelect = props.onSelect,
43
+ onDragStart = props.onDragStart,
44
+ onDragOver = props.onDragOver,
45
+ onDragEnter = props.onDragEnter,
46
+ onDragLeave = props.onDragLeave,
47
+ onDragEnd = props.onDragEnd,
48
+ onDrop = props.onDrop,
49
+ onExpand = props.onExpand,
50
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "label", "layer", "active", "loading", "nodeData", "className", "classPrefix", "disabled", "visible", "draggable", "expanded", "focus", "style", "hasChildren", "dragging", "dragStatus", "onSelect", "onDragStart", "onDragOver", "onDragEnter", "onDragLeave", "onDragEnd", "onDrop", "onExpand"]);
51
+ var _useCustom = (0, _utils.useCustom)(),
52
+ rtl = _useCustom.rtl;
53
+ var _useTreeContextProps = (0, _TreeProvider.useTreeContextProps)(),
54
+ renderTreeNode = _useTreeContextProps.renderTreeNode,
55
+ virtualized = _useTreeContextProps.virtualized;
56
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
57
+ prefix = _useClassNames.prefix,
58
+ merge = _useClassNames.merge,
59
+ withClassPrefix = _useClassNames.withClassPrefix;
60
+ var labelStr = (0, _react.useMemo)(function () {
61
+ return (0, _utils2.stringifyReactNode)(label);
62
+ }, [label]);
63
+ var handleExpand = (0, _utils.useEventCallback)(function (event) {
64
+ var _event$nativeEvent, _event$nativeEvent$st;
65
+ // Stop propagation when using custom loading icon
66
+ event === null || event === void 0 ? void 0 : (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : (_event$nativeEvent$st = _event$nativeEvent.stopImmediatePropagation) === null || _event$nativeEvent$st === void 0 ? void 0 : _event$nativeEvent$st.call(_event$nativeEvent);
67
+ event.stopPropagation();
68
+ onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData, expanded);
69
+ });
70
+ var handleSelect = (0, _utils.useEventCallback)(function (event) {
71
+ if (disabled) {
72
+ return;
73
+ }
74
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(nodeData, event);
75
+ });
76
+ var handleDragStart = (0, _utils.useEventCallback)(function (event) {
77
+ onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);
78
+ });
79
+ var handleDragEnter = (0, _utils.useEventCallback)(function (event) {
80
+ event.preventDefault();
81
+ event.stopPropagation();
82
+ onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(nodeData, event);
83
+ });
84
+ var handleDragOver = (0, _utils.useEventCallback)(function (event) {
85
+ event.preventDefault();
86
+ event.stopPropagation();
87
+ onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(nodeData, event);
88
+ });
89
+ var handleDragLeave = (0, _utils.useEventCallback)(function (event) {
90
+ event.stopPropagation();
91
+ onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(nodeData, event);
92
+ });
93
+ var handleDragEnd = (0, _utils.useEventCallback)(function (event) {
94
+ event.stopPropagation();
95
+ onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(nodeData, event);
96
+ });
97
+ var handleDrop = (0, _utils.useEventCallback)(function (event) {
98
+ event.preventDefault();
99
+ event.stopPropagation();
100
+ onDrop === null || onDrop === void 0 ? void 0 : onDrop(nodeData, event);
101
+ });
102
+ var classes = merge(className, withClassPrefix({
103
+ disabled: disabled,
104
+ active: active,
105
+ 'text-muted': disabled,
106
+ focus: focus
107
+ }));
108
+ var treeItemRef = (0, _hooks.useFoucsVirtualListItem)(focus);
109
+ var styles = virtualized ? (0, _extends2.default)({}, style, (0, _utils3.indentTreeNode)(rtl, layer - 1)) : style;
110
+ return visible ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
111
+ ref: (0, _utils.mergeRefs)(treeItemRef, ref),
112
+ role: "treeitem",
113
+ tabIndex: -1,
114
+ "aria-expanded": expanded,
115
+ "aria-label": labelStr,
116
+ "aria-level": layer,
117
+ "aria-disabled": disabled,
118
+ "aria-selected": active,
119
+ "data-layer": layer,
120
+ "data-key": (nodeData === null || nodeData === void 0 ? void 0 : nodeData.refKey) || '',
121
+ title: labelStr,
122
+ className: classes,
123
+ style: styles,
124
+ draggable: draggable,
125
+ onClick: handleSelect,
126
+ onDragStart: handleDragStart,
127
+ onDragEnter: handleDragEnter,
128
+ onDragOver: handleDragOver,
129
+ onDragLeave: handleDragLeave,
130
+ onDragEnd: handleDragEnd,
131
+ onDrop: handleDrop
132
+ }), /*#__PURE__*/_react.default.createElement(_TreeNodeToggle.default, {
133
+ "aria-label": (expanded ? 'Collapse' : 'Expand') + (" " + labelStr),
134
+ data: nodeData,
135
+ loading: loading,
136
+ expanded: expanded,
137
+ hasChildren: hasChildren,
138
+ onClick: handleExpand
139
+ }), /*#__PURE__*/_react.default.createElement("span", {
140
+ className: prefix('label', dragStatus, {
141
+ dragging: dragging
142
+ })
143
+ }, renderTreeNode ? renderTreeNode(nodeData) : label)) : null;
144
+ });
145
+ TreeNode.displayName = 'TreeNode';
146
+ var _default = TreeNode;
147
+ exports.default = _default;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ interface TreeNodeToggleProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ data: any;
4
+ loading?: boolean;
5
+ expanded?: boolean;
6
+ hasChildren?: boolean;
7
+ }
8
+ declare function TreeNodeToggle(props: TreeNodeToggleProps): JSX.Element;
9
+ export default TreeNodeToggle;
@@ -0,0 +1,56 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _ArrowDown = _interopRequireDefault(require("@rsuite/icons/ArrowDown"));
11
+ var _ArrowRight = _interopRequireDefault(require("@rsuite/icons/ArrowRight"));
12
+ var _ArrowLeft = _interopRequireDefault(require("@rsuite/icons/ArrowLeft"));
13
+ var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
14
+ var _utils = require("../utils");
15
+ var _TreeProvider = require("./TreeProvider");
16
+ function TreeNodeToggle(props) {
17
+ var data = props.data,
18
+ loading = props.loading,
19
+ expanded = props.expanded,
20
+ hasChildren = props.hasChildren,
21
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["data", "loading", "expanded", "hasChildren"]);
22
+ var _useCustom = (0, _utils.useCustom)(),
23
+ rtl = _useCustom.rtl;
24
+ var _useTreeCustomRendere = (0, _TreeProvider.useTreeCustomRenderer)(),
25
+ renderTreeIcon = _useTreeCustomRendere.renderTreeIcon;
26
+ var _useClassNames = (0, _utils.useClassNames)('tree-node'),
27
+ prefix = _useClassNames.prefix;
28
+ var IconElementType = expanded ? _ArrowDown.default : rtl ? _ArrowLeft.default : _ArrowRight.default;
29
+ var icon = /*#__PURE__*/_react.default.createElement(IconElementType, {
30
+ className: prefix('toggle-icon')
31
+ });
32
+ if (loading) {
33
+ icon = /*#__PURE__*/_react.default.createElement("div", {
34
+ className: prefix('loading-icon')
35
+ }, /*#__PURE__*/_react.default.createElement(_Spinner.default, {
36
+ spin: true
37
+ }));
38
+ }
39
+ if (data !== undefined && typeof renderTreeIcon === 'function') {
40
+ var customIcon = renderTreeIcon(data, expanded);
41
+ icon = customIcon !== null ? /*#__PURE__*/_react.default.createElement("div", {
42
+ className: prefix('custom-icon')
43
+ }, customIcon) : icon;
44
+ }
45
+ return hasChildren ? /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
46
+ tabIndex: -1,
47
+ role: "button",
48
+ "aria-busy": loading ? true : undefined,
49
+ "data-ref": data.refKey,
50
+ className: prefix('toggle')
51
+ }, rest), icon) : /*#__PURE__*/_react.default.createElement("div", {
52
+ className: prefix('toggle-placeholder')
53
+ });
54
+ }
55
+ var _default = TreeNodeToggle;
56
+ exports.default = _default;