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,146 @@
1
+ 'use client';
2
+ import { shallowEqual } from '../../utils';
3
+ // Active tree node selector
4
+ var SELECTED_TREEITEM_SELECTOR = '[role="treeitem"][aria-selected="true"]';
5
+
6
+ /**
7
+ * Retrieves the focusable items from the filtered data based on the provided props.
8
+ * Excludes nodes that are not visible or are disabled.
9
+ */
10
+ export var getFocusableItems = function getFocusableItems(filteredData, props, isSearching) {
11
+ var disabledItemValues = props.disabledItemValues,
12
+ valueKey = props.valueKey,
13
+ childrenKey = props.childrenKey,
14
+ expandItemValues = props.expandItemValues;
15
+ var items = [];
16
+ var loop = function loop(nodes) {
17
+ nodes.forEach(function (node) {
18
+ var disabled = disabledItemValues.some(function (disabledItem) {
19
+ return shallowEqual(disabledItem, node[valueKey]);
20
+ });
21
+ if (!disabled && node.visible) {
22
+ items.push(node);
23
+ }
24
+ // always expand when searching
25
+ var expand = isSearching ? true : expandItemValues.includes(node[valueKey]);
26
+ if (node[childrenKey] && expand) {
27
+ loop(node[childrenKey]);
28
+ }
29
+ });
30
+ };
31
+ loop(filteredData);
32
+ return items;
33
+ };
34
+
35
+ /**
36
+ * Returns the index of the active item in the focusItems array.
37
+ *
38
+ */
39
+ var getActiveIndex = function getActiveIndex(focusItemValue, focusItems, valueKey) {
40
+ var activeIndex = -1;
41
+ focusItems.forEach(function (item, index) {
42
+ if (shallowEqual(item[valueKey], focusItemValue)) {
43
+ activeIndex = index;
44
+ }
45
+ });
46
+ return activeIndex;
47
+ };
48
+
49
+ /**
50
+ * Retrieves the active item from the flattened nodes based on the provided focus item value.
51
+ */
52
+ export var getActiveItem = function getActiveItem(focusItemValue, flattenedNodes, valueKey) {
53
+ var nodeData = null;
54
+ var activeNode = Object.values(flattenedNodes).find(function (node) {
55
+ return shallowEqual(node[valueKey], focusItemValue);
56
+ });
57
+ if (activeNode) {
58
+ nodeData = activeNode;
59
+ }
60
+ return nodeData;
61
+ };
62
+
63
+ /**
64
+ * Focuses on a specific tree node element.
65
+ *
66
+ */
67
+ export var focusTreeNode = function focusTreeNode(refKey, treeNodeRefs) {
68
+ var _treeItem$focus;
69
+ var treeItem = treeNodeRefs[refKey];
70
+ treeItem === null || treeItem === void 0 ? void 0 : (_treeItem$focus = treeItem.focus) === null || _treeItem$focus === void 0 ? void 0 : _treeItem$focus.call(treeItem);
71
+ };
72
+ /**
73
+ * Focuses on the next item in a tree.
74
+ */
75
+ export var focusNextItem = function focusNextItem(props) {
76
+ var focusItemValue = props.focusItemValue,
77
+ focusableItems = props.focusableItems,
78
+ treeNodesRefs = props.treeNodesRefs,
79
+ valueKey = props.valueKey;
80
+ var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);
81
+ if (focusableItems.length === 0) {
82
+ return;
83
+ }
84
+ var nextIndex = activeIndex === focusableItems.length - 1 ? 0 : activeIndex + 1;
85
+ var value = focusableItems[nextIndex][valueKey];
86
+ focusTreeNode(focusableItems[nextIndex].refKey, treeNodesRefs);
87
+ return value;
88
+ };
89
+
90
+ /**
91
+ * Focuses on the previous item in a tree.
92
+ */
93
+ export var focusPreviousItem = function focusPreviousItem(props) {
94
+ var focusItemValue = props.focusItemValue,
95
+ focusableItems = props.focusableItems,
96
+ treeNodesRefs = props.treeNodesRefs,
97
+ valueKey = props.valueKey;
98
+ var activeIndex = getActiveIndex(focusItemValue, focusableItems, valueKey);
99
+ if (focusableItems.length === 0) {
100
+ return;
101
+ }
102
+ var prevIndex = activeIndex === 0 ? focusableItems.length - 1 : activeIndex - 1;
103
+ prevIndex = prevIndex >= 0 ? prevIndex : 0;
104
+ var value = focusableItems[prevIndex][valueKey];
105
+ focusTreeNode(focusableItems[prevIndex].refKey, treeNodesRefs);
106
+ return value;
107
+ };
108
+
109
+ /**
110
+ * Returns the index of the first visible node in the tree that matches the given value.
111
+ */
112
+ var getScrollToIndex = function getScrollToIndex(nodes, value, valueKey) {
113
+ return nodes.filter(function (n) {
114
+ return n.visible;
115
+ }).findIndex(function (item) {
116
+ return item[valueKey] === value;
117
+ });
118
+ };
119
+ /**
120
+ * Scrolls the list to the active tree node.
121
+ *
122
+ * @param props - The props object containing the necessary parameters.
123
+ */
124
+ export function scrollToActiveTreeNode(props) {
125
+ var list = props.list,
126
+ value = props.value,
127
+ valueKey = props.valueKey,
128
+ virtualized = props.virtualized,
129
+ formattedNodes = props.formattedNodes;
130
+ if (virtualized && value) {
131
+ var _list$scrollToItem;
132
+ var scrollIndex = getScrollToIndex(formattedNodes, value, valueKey);
133
+ list === null || list === void 0 ? void 0 : (_list$scrollToItem = list.scrollToItem) === null || _list$scrollToItem === void 0 ? void 0 : _list$scrollToItem.call(list, scrollIndex);
134
+ }
135
+ }
136
+ export var focusCurrentItem = function focusCurrentItem(props) {
137
+ var _props$selector = props.selector,
138
+ selector = _props$selector === void 0 ? SELECTED_TREEITEM_SELECTOR : _props$selector,
139
+ container = props.container;
140
+ var activeItem = container === null || container === void 0 ? void 0 : container.querySelector(selector);
141
+ if (activeItem) {
142
+ var _activeItem$focus, _activeItem$dataset;
143
+ activeItem === null || activeItem === void 0 ? void 0 : (_activeItem$focus = activeItem.focus) === null || _activeItem$focus === void 0 ? void 0 : _activeItem$focus.call(activeItem);
144
+ return (_activeItem$dataset = activeItem.dataset) === null || _activeItem$dataset === void 0 ? void 0 : _activeItem$dataset.key;
145
+ }
146
+ };
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Formats the reference key for a tree node.
3
+ */
4
+ export declare function formatNodeRefKey(value: string | number): string;
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ /**
3
+ * Formats the reference key for a tree node.
4
+ */
5
+ export function formatNodeRefKey(value) {
6
+ return "" + (typeof value === 'number' ? 'Number_' : 'String_') + value;
7
+ }
@@ -0,0 +1,11 @@
1
+ interface ExpandOptions<T> {
2
+ node: Record<string, unknown>;
3
+ isExpand: boolean;
4
+ expandItemValues: T[];
5
+ valueKey: string;
6
+ }
7
+ /**
8
+ * Returns an array of expanded item values.
9
+ */
10
+ export declare function getExpandItemValues<T>({ node, isExpand, expandItemValues, valueKey }: ExpandOptions<T>): T[];
11
+ export {};
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ /**
3
+ * Returns an array of expanded item values.
4
+ */
5
+ export function getExpandItemValues(_ref) {
6
+ var node = _ref.node,
7
+ isExpand = _ref.isExpand,
8
+ expandItemValues = _ref.expandItemValues,
9
+ valueKey = _ref.valueKey;
10
+ var newExpandItemValues = new Set(expandItemValues);
11
+ if (isExpand) {
12
+ newExpandItemValues.add(node[valueKey]);
13
+ } else {
14
+ newExpandItemValues.delete(node[valueKey]);
15
+ }
16
+ return Array.from(newExpandItemValues);
17
+ }
@@ -0,0 +1,5 @@
1
+ import { TreeNode, TreeNodeMap } from '../types';
2
+ /**
3
+ * Retrieves an array of parent keys for a given node in a tree.
4
+ */
5
+ export declare function getNodeParentKeys<T>(nodes: TreeNodeMap, node: TreeNode, valueKey: string): T[];
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+ /**
3
+ * Retrieves an array of parent keys for a given node in a tree.
4
+ */
5
+ export function getNodeParentKeys(nodes, node, valueKey) {
6
+ var parentKeys = [];
7
+ var traverse = function traverse(node) {
8
+ var _node$parent;
9
+ if (node !== null && node !== void 0 && (_node$parent = node.parent) !== null && _node$parent !== void 0 && _node$parent.refKey) {
10
+ var _node$parent2;
11
+ traverse(nodes[node.parent.refKey]);
12
+ parentKeys.push(node === null || node === void 0 ? void 0 : (_node$parent2 = node.parent) === null || _node$parent2 === void 0 ? void 0 : _node$parent2[valueKey]);
13
+ }
14
+ };
15
+ traverse(node);
16
+ return parentKeys;
17
+ }
@@ -0,0 +1,5 @@
1
+ import { TreeNodeMap } from '../types';
2
+ /**
3
+ * Retrieves the active node from a tree based on the provided value and value key.
4
+ */
5
+ export declare function getTreeActiveNode<T extends number | string | undefined | null>(nodes: TreeNodeMap, value: T, valueKey: string): import("../types").TreeNode | undefined;
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import shallowEqual from '../../utils/shallowEqual';
3
+ /**
4
+ * Retrieves the active node from a tree based on the provided value and value key.
5
+ */
6
+ export function getTreeActiveNode(nodes, value, valueKey) {
7
+ if (typeof value === 'undefined') {
8
+ return;
9
+ }
10
+ for (var refKey in nodes) {
11
+ var node = nodes[refKey];
12
+ if (shallowEqual(node[valueKey], value)) {
13
+ return node;
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,5 @@
1
+ import { TreeNode } from '../types';
2
+ /**
3
+ * Checks if a node has visible children.
4
+ */
5
+ export declare function hasVisibleChildren(node: TreeNode, childrenKey: string): any;
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ /**
3
+ * Checks if a node has visible children.
4
+ */
5
+ export function hasVisibleChildren(node, childrenKey) {
6
+ if (!Array.isArray(node[childrenKey])) {
7
+ return false;
8
+ }
9
+ return node[childrenKey].some(function (child) {
10
+ return child.visible;
11
+ });
12
+ }
@@ -0,0 +1,3 @@
1
+ export declare function indentTreeNode(rtl: any, layer: any, absolute?: boolean): {
2
+ [x: string]: number;
3
+ };
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ export function indentTreeNode(rtl, layer, absolute) {
3
+ var _ref2;
4
+ if (absolute === void 0) {
5
+ absolute = false;
6
+ }
7
+ // layer start from 1
8
+ var offset = layer * 26;
9
+ if (absolute) {
10
+ var _ref;
11
+ return _ref = {}, _ref[rtl ? 'right' : 'left'] = offset, _ref;
12
+ }
13
+ return _ref2 = {}, _ref2[rtl ? 'paddingRight' : 'paddingLeft'] = offset, _ref2;
14
+ }
@@ -0,0 +1,11 @@
1
+ export { getNodeParentKeys } from './getNodeParentKeys';
2
+ export { UNSAFE_flattenTree, flattenTree, WalkTreeStrategy } from './flattenTree';
3
+ export { hasVisibleChildren } from './hasVisibleChildren';
4
+ export { getExpandItemValues } from './getExpandItemValues';
5
+ export { getTreeActiveNode } from './getTreeActiveNode';
6
+ export { formatNodeRefKey } from './formatNodeRefKey';
7
+ export { indentTreeNode } from './indentTreeNode';
8
+ export { isSearching } from './isSearching';
9
+ export { isExpand } from './isExpand';
10
+ export { getFocusableItems, getActiveItem, focusNextItem, focusPreviousItem, focusTreeNode, focusCurrentItem } from './focusableTree';
11
+ export { handleLeftArrow, handleRightArrow } from './treeKeyboardInteractions';
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ export { getNodeParentKeys } from './getNodeParentKeys';
3
+ export { UNSAFE_flattenTree, flattenTree, WalkTreeStrategy } from './flattenTree';
4
+ export { hasVisibleChildren } from './hasVisibleChildren';
5
+ export { getExpandItemValues } from './getExpandItemValues';
6
+ export { getTreeActiveNode } from './getTreeActiveNode';
7
+ export { formatNodeRefKey } from './formatNodeRefKey';
8
+ export { indentTreeNode } from './indentTreeNode';
9
+ export { isSearching } from './isSearching';
10
+ export { isExpand } from './isExpand';
11
+
12
+ // Utility functions for managing focusable items in a tree.
13
+ export { getFocusableItems, getActiveItem, focusNextItem, focusPreviousItem, focusTreeNode, focusCurrentItem } from './focusableTree';
14
+ export { handleLeftArrow, handleRightArrow } from './treeKeyboardInteractions';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Determines whether the tree node should be expanded based on the search keyword and expand flag.
3
+ * If a search keyword is provided, the node is always expanded.
4
+ * Otherwise, the node is expanded if the expand flag is true.
5
+ */
6
+ export declare function isExpand(searchKeyword: string, expand: boolean): boolean;
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+ import { isSearching } from './isSearching';
3
+
4
+ /**
5
+ * Determines whether the tree node should be expanded based on the search keyword and expand flag.
6
+ * If a search keyword is provided, the node is always expanded.
7
+ * Otherwise, the node is expanded if the expand flag is true.
8
+ */
9
+ export function isExpand(searchKeyword, expand) {
10
+ return isSearching(searchKeyword) ? true : expand;
11
+ }
@@ -0,0 +1 @@
1
+ export declare function isSearching(searchKeyword?: string): boolean;
@@ -0,0 +1,5 @@
1
+ 'use client';
2
+ import isEmpty from 'lodash/isEmpty';
3
+ export function isSearching(searchKeyword) {
4
+ return !isEmpty(searchKeyword);
5
+ }
@@ -0,0 +1,21 @@
1
+ import { TreeNode } from '../types';
2
+ export interface ArrowHandlerProps {
3
+ focusItem: TreeNode;
4
+ expand: boolean;
5
+ childrenKey: string;
6
+ onExpand?: (focusItem: TreeNode, expanded: boolean) => void;
7
+ onFocusItem: () => void;
8
+ }
9
+ /**
10
+ * Handles the left arrow key press event for tree navigation.
11
+ * If the focus item is expanded, it collapses it. If the focus item is not expanded and has a parent,
12
+ * it moves the focus to the parent item.
13
+ */
14
+ export declare function handleLeftArrow(props: ArrowHandlerProps): void;
15
+ /**
16
+ * Handles the right arrow key press event for tree navigation.
17
+ * If the focused item has children and is collapsed, it expands the item.
18
+ * If the focused item has children and is expanded, it moves the focus to the next sibling.
19
+ * If the focused item does not have children, it does nothing.
20
+ */
21
+ export declare function handleRightArrow(props: ArrowHandlerProps): void;
@@ -0,0 +1,43 @@
1
+ 'use client';
2
+ import isEmpty from 'lodash/isEmpty';
3
+ /**
4
+ * Handles the left arrow key press event for tree navigation.
5
+ * If the focus item is expanded, it collapses it. If the focus item is not expanded and has a parent,
6
+ * it moves the focus to the parent item.
7
+ */
8
+ export function handleLeftArrow(props) {
9
+ var focusItem = props.focusItem,
10
+ expand = props.expand,
11
+ onExpand = props.onExpand,
12
+ onFocusItem = props.onFocusItem;
13
+ if (isEmpty(focusItem)) {
14
+ return;
15
+ }
16
+ if (expand) {
17
+ onExpand === null || onExpand === void 0 ? void 0 : onExpand(focusItem, expand);
18
+ } else if (focusItem !== null && focusItem !== void 0 && focusItem.parent) {
19
+ onFocusItem();
20
+ }
21
+ }
22
+
23
+ /**
24
+ * Handles the right arrow key press event for tree navigation.
25
+ * If the focused item has children and is collapsed, it expands the item.
26
+ * If the focused item has children and is expanded, it moves the focus to the next sibling.
27
+ * If the focused item does not have children, it does nothing.
28
+ */
29
+ export function handleRightArrow(props) {
30
+ var focusItem = props.focusItem,
31
+ expand = props.expand,
32
+ childrenKey = props.childrenKey,
33
+ onExpand = props.onExpand,
34
+ onFocusItem = props.onFocusItem;
35
+ if (isEmpty(focusItem) || !Array.isArray(focusItem[childrenKey])) {
36
+ return;
37
+ }
38
+ if (!expand) {
39
+ onExpand === null || onExpand === void 0 ? void 0 : onExpand(focusItem, expand);
40
+ } else {
41
+ onFocusItem();
42
+ }
43
+ }
@@ -1,27 +1,33 @@
1
1
  import React from 'react';
2
2
  import { PickerLocale } from '../locales';
3
3
  import { PickerComponent, PickerToggleProps } from '../internals/Picker';
4
- import { TreeDragProps, TreeBaseProps } from '../Tree/Tree';
5
- import { FormControlPickerProps, ItemDataType } from '../@types/common';
6
- export interface TreePickerProps<T = number | string> extends TreeBaseProps<T, ItemDataType>, TreeDragProps, FormControlPickerProps<T, PickerLocale, ItemDataType>, Pick<PickerToggleProps, 'caretAs' | 'loading'> {
7
- /** The height of Dropdown */
8
- height?: number;
9
- /** Tree node cascade */
10
- cascade?: boolean;
11
- /** A picker that can be counted */
12
- countable?: boolean;
13
- /** Whether display search input box */
14
- searchable?: boolean;
15
- /** Whether using virtualized list */
16
- virtualized?: boolean;
17
- /** Set the option value for the expand node */
18
- defaultExpandItemValues?: ItemDataType[];
19
- /** Set the option value for the expand node with controlled*/
20
- expandItemValues?: ItemDataType[];
21
- /** Custom render selected items */
22
- renderValue?: (value: T, selectedItems: ItemDataType, selectedElement: React.ReactNode) => React.ReactNode;
23
- /** Called when scrolling */
24
- onScroll?: (event: React.SyntheticEvent) => void;
4
+ import { TreeNode } from '../Tree/types';
5
+ import { type TreeViewProps } from '../Tree/TreeView';
6
+ import type { FormControlPickerProps, DeprecatedPickerProps } from '../@types/common';
7
+ import type { TreeExtraProps } from '../Tree/types';
8
+ export interface TreePickerProps<V = number | string | null> extends TreeViewProps<V>, TreeExtraProps, DeprecatedPickerProps, FormControlPickerProps<V, PickerLocale, TreeNode>, Pick<PickerToggleProps, 'caretAs' | 'loading'> {
9
+ /**
10
+ * Custom render selected items
11
+ */
12
+ renderValue?: (value: V, selectedNode: TreeNode, selectedElement: React.ReactNode) => React.ReactNode;
13
+ /**
14
+ * Custom popup style
15
+ */
16
+ popupClassName?: string;
17
+ /**
18
+ * Custom popup style
19
+ */
20
+ popupStyle?: React.CSSProperties;
21
+ /**
22
+ * The height of the tree
23
+ */
24
+ treeHeight?: number;
25
+ /**
26
+ * Popup auto width
27
+ *
28
+ * @default true
29
+ */
30
+ popupAutoWidth?: boolean;
25
31
  }
26
32
  /**
27
33
  * The `TreePicker` component is used for selecting single options which are organized in a tree structure.