rsuite 5.60.1 → 5.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) 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 +37 -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 +63 -26
  21. package/DatePicker/styles/index.less +1 -0
  22. package/DateRangeInput/styles/index.css +4 -4
  23. package/DateRangePicker/styles/index.css +69 -26
  24. package/DateRangePicker/styles/index.less +3 -0
  25. package/Dropdown/styles/index.css +14 -13
  26. package/Highlight/package.json +7 -0
  27. package/Highlight/styles/index.css +8 -0
  28. package/Highlight/styles/index.less +6 -0
  29. package/IconButton/styles/index.css +11 -10
  30. package/Input/styles/index.css +4 -4
  31. package/InputGroup/styles/index.css +18 -17
  32. package/InputGroup/styles/index.less +1 -1
  33. package/InputNumber/styles/index.css +19 -18
  34. package/InputPicker/styles/index.css +58 -22
  35. package/LICENSE +1 -1
  36. package/MultiCascadeTree/styles/index.css +61 -36
  37. package/MultiCascadeTree/styles/index.less +1 -1
  38. package/MultiCascader/styles/index.css +704 -679
  39. package/MultiCascader/styles/index.less +0 -1
  40. package/Nav/styles/index.css +15 -14
  41. package/Navbar/styles/index.css +14 -13
  42. package/Pagination/styles/index.css +62 -26
  43. package/Panel/styles/index.css +4 -4
  44. package/Placeholder/styles/index.css +2 -3
  45. package/Placeholder/styles/index.less +2 -3
  46. package/README.md +53 -90
  47. package/Radio/styles/index.css +7 -7
  48. package/Radio/styles/index.less +1 -5
  49. package/RangeSlider/styles/index.css +2 -2
  50. package/Rate/styles/index.css +1 -1
  51. package/Rate/styles/index.less +1 -1
  52. package/SelectPicker/styles/index.css +58 -22
  53. package/Slider/styles/index.css +2 -2
  54. package/Slider/styles/index.less +2 -2
  55. package/Steps/styles/index.css +6 -1
  56. package/Steps/styles/index.less +2 -1
  57. package/Tabs/styles/index.css +15 -14
  58. package/TagInput/styles/index.css +59 -27
  59. package/TagPicker/styles/index.css +59 -27
  60. package/Toggle/styles/index.css +16 -8
  61. package/Toggle/styles/index.less +2 -1
  62. package/Tree/styles/indent-line.less +8 -0
  63. package/Tree/styles/index.css +140 -141
  64. package/Tree/styles/index.less +188 -1
  65. package/Tree/styles/toggle.less +36 -0
  66. package/TreePicker/styles/index.css +142 -134
  67. package/TreePicker/styles/index.less +4 -234
  68. package/Uploader/styles/index.css +12 -11
  69. package/cjs/@types/common.d.ts +41 -4
  70. package/cjs/AutoComplete/AutoComplete.js +2 -1
  71. package/cjs/CascadeTree/CascadeTree.js +8 -7
  72. package/cjs/CascadeTree/SearchView.js +7 -14
  73. package/cjs/CascadeTree/hooks/usePaths.js +4 -4
  74. package/cjs/CascadeTree/hooks/useSearch.js +2 -1
  75. package/cjs/CascadeTree/utils.d.ts +0 -11
  76. package/cjs/CascadeTree/utils.js +0 -23
  77. package/cjs/Cascader/Cascader.js +17 -16
  78. package/cjs/CheckPicker/CheckPicker.js +26 -29
  79. package/cjs/CheckTree/CheckTree.d.ts +16 -0
  80. package/cjs/CheckTree/CheckTree.js +112 -0
  81. package/cjs/CheckTree/CheckTreeNode.d.ts +72 -0
  82. package/cjs/CheckTree/CheckTreeNode.js +117 -0
  83. package/cjs/CheckTree/CheckTreeView.d.ts +70 -0
  84. package/cjs/CheckTree/CheckTreeView.js +310 -0
  85. package/cjs/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
  86. package/cjs/CheckTree/hooks/useTreeCheckState.js +93 -0
  87. package/cjs/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
  88. package/cjs/CheckTree/hooks/useTreeNodeProps.js +59 -0
  89. package/cjs/CheckTree/hooks/useTreeValue.d.ts +5 -0
  90. package/cjs/CheckTree/hooks/useTreeValue.js +21 -0
  91. package/cjs/CheckTree/index.d.ts +2 -14
  92. package/cjs/CheckTree/index.js +2 -23
  93. package/cjs/CheckTree/utils.d.ts +53 -0
  94. package/cjs/{CheckTreePicker → CheckTree}/utils.js +76 -26
  95. package/cjs/CheckTreePicker/CheckTreePicker.d.ts +30 -12
  96. package/cjs/CheckTreePicker/CheckTreePicker.js +153 -603
  97. package/cjs/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
  98. package/cjs/CheckTreePicker/hooks/useFocusState.js +42 -0
  99. package/cjs/DateInput/DateField.js +3 -1
  100. package/cjs/DateInput/DateInput.js +17 -16
  101. package/{esm/DateInput → cjs/DateInput/hooks}/useDateInputState.d.ts +1 -1
  102. package/cjs/DateInput/{useDateInputState.js → hooks/useDateInputState.js} +2 -2
  103. package/cjs/DateInput/hooks/useFieldCursor.d.ts +6 -0
  104. package/cjs/DateInput/hooks/useFieldCursor.js +56 -0
  105. package/cjs/DateInput/hooks/useSelectedState.d.ts +14 -0
  106. package/cjs/DateInput/hooks/useSelectedState.js +23 -0
  107. package/cjs/DateInput/index.d.ts +5 -3
  108. package/cjs/DateInput/index.js +11 -5
  109. package/cjs/DateInput/utils.d.ts +0 -1
  110. package/cjs/DateInput/utils.js +2 -24
  111. package/cjs/DatePicker/DatePicker.d.ts +4 -0
  112. package/cjs/DatePicker/DatePicker.js +20 -5
  113. package/cjs/DatePicker/types.d.ts +0 -4
  114. package/cjs/DateRangeInput/DateRangeInput.js +16 -17
  115. package/cjs/DateRangePicker/DateRangePicker.d.ts +51 -23
  116. package/cjs/DateRangePicker/DateRangePicker.js +71 -51
  117. package/cjs/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
  118. package/cjs/DateRangePicker/hooks/useDateDisabled.js +31 -0
  119. package/cjs/DateRangePicker/types.d.ts +1 -0
  120. package/cjs/Highlight/Highlight.d.ts +14 -0
  121. package/cjs/Highlight/Highlight.js +58 -0
  122. package/cjs/Highlight/index.d.ts +3 -0
  123. package/cjs/Highlight/index.js +9 -0
  124. package/cjs/Highlight/utils/highlightText.d.ts +5 -0
  125. package/cjs/Highlight/utils/highlightText.js +29 -0
  126. package/cjs/InputPicker/InputPicker.js +37 -41
  127. package/cjs/MultiCascadeTree/SearchView.js +6 -14
  128. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
  129. package/cjs/MultiCascadeTree/hooks/useColumnData.js +2 -2
  130. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +3 -3
  131. package/cjs/MultiCascadeTree/hooks/useSearch.js +2 -1
  132. package/cjs/MultiCascadeTree/utils.d.ts +4 -4
  133. package/cjs/MultiCascadeTree/utils.js +20 -11
  134. package/cjs/MultiCascader/MultiCascader.js +12 -12
  135. package/cjs/SelectPicker/SelectPicker.js +2 -6
  136. package/cjs/Tree/IndentLine.d.ts +3 -0
  137. package/cjs/Tree/IndentLine.js +18 -0
  138. package/cjs/Tree/Tree.d.ts +4 -92
  139. package/cjs/Tree/Tree.js +79 -20
  140. package/cjs/Tree/TreeNode.d.ts +101 -0
  141. package/cjs/Tree/TreeNode.js +147 -0
  142. package/cjs/Tree/TreeNodeToggle.d.ts +9 -0
  143. package/cjs/Tree/TreeNodeToggle.js +56 -0
  144. package/cjs/Tree/TreeProvider.d.ts +52 -0
  145. package/cjs/Tree/TreeProvider.js +84 -0
  146. package/cjs/Tree/TreeView.d.ts +68 -0
  147. package/cjs/Tree/TreeView.js +305 -0
  148. package/cjs/Tree/hooks/useExpandTree.d.ts +60 -0
  149. package/cjs/Tree/hooks/useExpandTree.js +77 -0
  150. package/cjs/Tree/hooks/useFlattenTree.d.ts +42 -0
  151. package/cjs/Tree/hooks/useFlattenTree.js +98 -0
  152. package/cjs/Tree/hooks/useFocusTree.d.ts +24 -0
  153. package/cjs/Tree/hooks/useFocusTree.js +158 -0
  154. package/cjs/Tree/hooks/useForceUpdate.d.ts +2 -0
  155. package/cjs/Tree/hooks/useForceUpdate.js +16 -0
  156. package/cjs/Tree/hooks/useTreeDrag.d.ts +32 -0
  157. package/cjs/Tree/hooks/useTreeDrag.js +268 -0
  158. package/cjs/Tree/hooks/useTreeNodeProps.d.ts +29 -0
  159. package/cjs/Tree/hooks/useTreeNodeProps.js +83 -0
  160. package/cjs/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
  161. package/cjs/Tree/hooks/useTreeNodeRefs.js +22 -0
  162. package/cjs/Tree/hooks/useTreeSearch.d.ts +18 -0
  163. package/cjs/Tree/hooks/useTreeSearch.js +74 -0
  164. package/cjs/Tree/hooks/useTreeWithChildren.d.ts +14 -0
  165. package/cjs/Tree/hooks/useTreeWithChildren.js +64 -0
  166. package/cjs/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
  167. package/cjs/Tree/hooks/useVirtualizedTreeData.js +82 -0
  168. package/cjs/Tree/types.d.ts +257 -0
  169. package/cjs/Tree/types.js +33 -0
  170. package/cjs/Tree/utils/flattenTree.d.ts +25 -0
  171. package/cjs/Tree/utils/flattenTree.js +95 -0
  172. package/cjs/Tree/utils/focusableTree.d.ts +55 -0
  173. package/cjs/Tree/utils/focusableTree.js +157 -0
  174. package/cjs/Tree/utils/formatNodeRefKey.d.ts +4 -0
  175. package/cjs/Tree/utils/formatNodeRefKey.js +11 -0
  176. package/cjs/Tree/utils/getExpandItemValues.d.ts +11 -0
  177. package/cjs/Tree/utils/getExpandItemValues.js +21 -0
  178. package/cjs/Tree/utils/getNodeParentKeys.d.ts +5 -0
  179. package/cjs/Tree/utils/getNodeParentKeys.js +21 -0
  180. package/cjs/Tree/utils/getTreeActiveNode.d.ts +5 -0
  181. package/cjs/Tree/utils/getTreeActiveNode.js +21 -0
  182. package/cjs/Tree/utils/hasVisibleChildren.d.ts +5 -0
  183. package/cjs/Tree/utils/hasVisibleChildren.js +16 -0
  184. package/cjs/Tree/utils/indentTreeNode.d.ts +3 -0
  185. package/cjs/Tree/utils/indentTreeNode.js +18 -0
  186. package/cjs/Tree/utils/index.d.ts +11 -0
  187. package/cjs/Tree/utils/index.js +35 -0
  188. package/cjs/Tree/utils/isExpand.d.ts +6 -0
  189. package/cjs/Tree/utils/isExpand.js +14 -0
  190. package/cjs/Tree/utils/isSearching.d.ts +1 -0
  191. package/cjs/Tree/utils/isSearching.js +10 -0
  192. package/cjs/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
  193. package/cjs/Tree/utils/treeKeyboardInteractions.js +49 -0
  194. package/cjs/TreePicker/TreePicker.d.ts +27 -21
  195. package/cjs/TreePicker/TreePicker.js +155 -575
  196. package/cjs/TreePicker/hooks/useFocusState.d.ts +20 -0
  197. package/cjs/TreePicker/hooks/useFocusState.js +53 -0
  198. package/cjs/index.d.ts +2 -0
  199. package/cjs/index.js +3 -1
  200. package/cjs/internals/Picker/Listbox.d.ts +40 -10
  201. package/cjs/internals/Picker/Listbox.js +21 -16
  202. package/cjs/internals/Picker/PickerIndicator.d.ts +2 -1
  203. package/cjs/internals/Picker/PickerIndicator.js +7 -3
  204. package/cjs/internals/Picker/hooks/useFocusItemValue.js +4 -4
  205. package/cjs/internals/Picker/hooks/usePickerRef.d.ts +1 -4
  206. package/cjs/internals/Picker/hooks/usePickerRef.js +3 -20
  207. package/cjs/internals/Picker/index.d.ts +0 -1
  208. package/cjs/internals/Picker/index.js +1 -4
  209. package/cjs/internals/Picker/utils.js +12 -12
  210. package/cjs/internals/{Picker → Tree}/TreeView.js +1 -1
  211. package/cjs/internals/Tree/index.d.ts +1 -0
  212. package/cjs/internals/Tree/index.js +8 -0
  213. package/cjs/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
  214. package/cjs/internals/Tree/utils/filterNodesOfTree.js +31 -0
  215. package/cjs/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
  216. package/cjs/internals/Tree/utils/findNodeOfTree.js +26 -0
  217. package/cjs/internals/Tree/utils/getParentMap.d.ts +15 -0
  218. package/cjs/internals/Tree/utils/getParentMap.js +52 -0
  219. package/cjs/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
  220. package/cjs/internals/Tree/utils/getPathTowardsItem.js +16 -0
  221. package/cjs/internals/Tree/utils/index.d.ts +4 -0
  222. package/cjs/internals/Tree/utils/index.js +14 -0
  223. package/cjs/internals/Windowing/List.d.ts +1 -0
  224. package/cjs/internals/Windowing/List.js +5 -1
  225. package/cjs/internals/Windowing/index.d.ts +1 -1
  226. package/cjs/internals/Windowing/index.js +4 -2
  227. package/cjs/internals/hooks/index.d.ts +1 -0
  228. package/cjs/internals/hooks/index.js +8 -0
  229. package/cjs/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
  230. package/cjs/internals/hooks/useFoucsVirtualListItem.js +26 -0
  231. package/cjs/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
  232. package/cjs/{utils → internals/utils}/getSafeRegExpString.js +1 -1
  233. package/cjs/internals/utils/index.d.ts +2 -0
  234. package/cjs/internals/utils/index.js +9 -0
  235. package/cjs/internals/utils/stringifyReactNode.d.ts +2 -0
  236. package/cjs/internals/utils/stringifyReactNode.js +17 -0
  237. package/cjs/utils/constants.d.ts +0 -2
  238. package/cjs/utils/constants.js +1 -6
  239. package/cjs/utils/getDataGroupBy.js +3 -3
  240. package/cjs/utils/index.d.ts +0 -3
  241. package/cjs/utils/index.js +1 -10
  242. package/cjs/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  243. package/dist/rsuite-no-reset-rtl.css +301 -302
  244. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  245. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  246. package/dist/rsuite-no-reset.css +303 -306
  247. package/dist/rsuite-no-reset.min.css +1 -1
  248. package/dist/rsuite-no-reset.min.css.map +1 -1
  249. package/dist/rsuite-rtl.css +302 -303
  250. package/dist/rsuite-rtl.min.css +1 -1
  251. package/dist/rsuite-rtl.min.css.map +1 -1
  252. package/dist/rsuite.css +304 -307
  253. package/dist/rsuite.js +657 -140
  254. package/dist/rsuite.js.map +1 -1
  255. package/dist/rsuite.min.css +1 -1
  256. package/dist/rsuite.min.css.map +1 -1
  257. package/dist/rsuite.min.js +1 -1
  258. package/dist/rsuite.min.js.map +1 -1
  259. package/esm/@types/common.d.ts +41 -4
  260. package/esm/AutoComplete/AutoComplete.js +2 -1
  261. package/esm/CascadeTree/CascadeTree.js +2 -1
  262. package/esm/CascadeTree/SearchView.js +6 -13
  263. package/esm/CascadeTree/hooks/usePaths.js +1 -1
  264. package/esm/CascadeTree/hooks/useSearch.js +2 -1
  265. package/esm/CascadeTree/utils.d.ts +0 -11
  266. package/esm/CascadeTree/utils.js +0 -22
  267. package/esm/Cascader/Cascader.js +2 -1
  268. package/esm/CheckPicker/CheckPicker.js +4 -7
  269. package/esm/CheckTree/CheckTree.d.ts +16 -0
  270. package/esm/CheckTree/CheckTree.js +105 -0
  271. package/esm/CheckTree/CheckTreeNode.d.ts +72 -0
  272. package/esm/CheckTree/CheckTreeNode.js +110 -0
  273. package/esm/CheckTree/CheckTreeView.d.ts +70 -0
  274. package/esm/CheckTree/CheckTreeView.js +304 -0
  275. package/esm/CheckTree/hooks/useTreeCheckState.d.ts +10 -0
  276. package/esm/CheckTree/hooks/useTreeCheckState.js +87 -0
  277. package/esm/CheckTree/hooks/useTreeNodeProps.d.ts +22 -0
  278. package/esm/CheckTree/hooks/useTreeNodeProps.js +52 -0
  279. package/esm/CheckTree/hooks/useTreeValue.d.ts +5 -0
  280. package/esm/CheckTree/hooks/useTreeValue.js +16 -0
  281. package/esm/CheckTree/index.d.ts +2 -14
  282. package/esm/CheckTree/index.js +1 -21
  283. package/esm/CheckTree/utils.d.ts +53 -0
  284. package/esm/{CheckTreePicker → CheckTree}/utils.js +72 -22
  285. package/esm/CheckTreePicker/CheckTreePicker.d.ts +30 -12
  286. package/esm/CheckTreePicker/CheckTreePicker.js +156 -607
  287. package/esm/CheckTreePicker/hooks/useFocusState.d.ts +16 -0
  288. package/esm/CheckTreePicker/hooks/useFocusState.js +37 -0
  289. package/esm/DateInput/DateField.js +3 -1
  290. package/esm/DateInput/DateInput.js +19 -18
  291. package/{cjs/DateInput → esm/DateInput/hooks}/useDateInputState.d.ts +1 -1
  292. package/esm/DateInput/{useDateInputState.js → hooks/useDateInputState.js} +2 -2
  293. package/esm/DateInput/hooks/useFieldCursor.d.ts +6 -0
  294. package/esm/DateInput/hooks/useFieldCursor.js +49 -0
  295. package/esm/DateInput/hooks/useSelectedState.d.ts +14 -0
  296. package/esm/DateInput/hooks/useSelectedState.js +17 -0
  297. package/esm/DateInput/index.d.ts +5 -3
  298. package/esm/DateInput/index.js +5 -3
  299. package/esm/DateInput/utils.d.ts +0 -1
  300. package/esm/DateInput/utils.js +2 -23
  301. package/esm/DatePicker/DatePicker.d.ts +4 -0
  302. package/esm/DatePicker/DatePicker.js +20 -5
  303. package/esm/DatePicker/types.d.ts +0 -4
  304. package/esm/DateRangeInput/DateRangeInput.js +17 -18
  305. package/esm/DateRangePicker/DateRangePicker.d.ts +51 -23
  306. package/esm/DateRangePicker/DateRangePicker.js +71 -51
  307. package/esm/DateRangePicker/hooks/useDateDisabled.d.ts +16 -0
  308. package/esm/DateRangePicker/hooks/useDateDisabled.js +26 -0
  309. package/esm/DateRangePicker/types.d.ts +1 -0
  310. package/esm/Highlight/Highlight.d.ts +14 -0
  311. package/esm/Highlight/Highlight.js +52 -0
  312. package/esm/Highlight/index.d.ts +3 -0
  313. package/esm/Highlight/index.js +3 -0
  314. package/esm/Highlight/utils/highlightText.d.ts +5 -0
  315. package/esm/Highlight/utils/highlightText.js +25 -0
  316. package/esm/InputPicker/InputPicker.js +3 -7
  317. package/esm/MultiCascadeTree/SearchView.js +6 -14
  318. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +15 -1
  319. package/esm/MultiCascadeTree/hooks/useColumnData.js +1 -1
  320. package/esm/MultiCascadeTree/hooks/useFlattenData.js +1 -1
  321. package/esm/MultiCascadeTree/hooks/useSearch.js +2 -1
  322. package/esm/MultiCascadeTree/utils.d.ts +4 -4
  323. package/esm/MultiCascadeTree/utils.js +18 -9
  324. package/esm/MultiCascader/MultiCascader.js +1 -1
  325. package/esm/SelectPicker/SelectPicker.js +2 -6
  326. package/esm/Tree/IndentLine.d.ts +3 -0
  327. package/esm/Tree/IndentLine.js +12 -0
  328. package/esm/Tree/Tree.d.ts +4 -92
  329. package/esm/Tree/Tree.js +78 -18
  330. package/esm/Tree/TreeNode.d.ts +101 -0
  331. package/esm/Tree/TreeNode.js +141 -0
  332. package/esm/Tree/TreeNodeToggle.d.ts +9 -0
  333. package/esm/Tree/TreeNodeToggle.js +50 -0
  334. package/esm/Tree/TreeProvider.d.ts +52 -0
  335. package/esm/Tree/TreeProvider.js +74 -0
  336. package/esm/Tree/TreeView.d.ts +68 -0
  337. package/esm/Tree/TreeView.js +299 -0
  338. package/esm/Tree/hooks/useExpandTree.d.ts +60 -0
  339. package/esm/Tree/hooks/useExpandTree.js +70 -0
  340. package/esm/Tree/hooks/useFlattenTree.d.ts +42 -0
  341. package/esm/Tree/hooks/useFlattenTree.js +92 -0
  342. package/esm/Tree/hooks/useFocusTree.d.ts +24 -0
  343. package/esm/Tree/hooks/useFocusTree.js +153 -0
  344. package/esm/Tree/hooks/useForceUpdate.d.ts +2 -0
  345. package/esm/Tree/hooks/useForceUpdate.js +11 -0
  346. package/esm/Tree/hooks/useTreeDrag.d.ts +32 -0
  347. package/esm/Tree/hooks/useTreeDrag.js +264 -0
  348. package/esm/Tree/hooks/useTreeNodeProps.d.ts +29 -0
  349. package/esm/Tree/hooks/useTreeNodeProps.js +76 -0
  350. package/esm/Tree/hooks/useTreeNodeRefs.d.ts +6 -0
  351. package/esm/Tree/hooks/useTreeNodeRefs.js +18 -0
  352. package/esm/Tree/hooks/useTreeSearch.d.ts +18 -0
  353. package/esm/Tree/hooks/useTreeSearch.js +69 -0
  354. package/esm/Tree/hooks/useTreeWithChildren.d.ts +14 -0
  355. package/esm/Tree/hooks/useTreeWithChildren.js +59 -0
  356. package/esm/Tree/hooks/useVirtualizedTreeData.d.ts +7 -0
  357. package/esm/Tree/hooks/useVirtualizedTreeData.js +77 -0
  358. package/esm/Tree/types.d.ts +257 -0
  359. package/esm/Tree/types.js +30 -0
  360. package/esm/Tree/utils/flattenTree.d.ts +25 -0
  361. package/esm/Tree/utils/flattenTree.js +88 -0
  362. package/esm/Tree/utils/focusableTree.d.ts +55 -0
  363. package/esm/Tree/utils/focusableTree.js +146 -0
  364. package/esm/Tree/utils/formatNodeRefKey.d.ts +4 -0
  365. package/esm/Tree/utils/formatNodeRefKey.js +7 -0
  366. package/esm/Tree/utils/getExpandItemValues.d.ts +11 -0
  367. package/esm/Tree/utils/getExpandItemValues.js +17 -0
  368. package/esm/Tree/utils/getNodeParentKeys.d.ts +5 -0
  369. package/esm/Tree/utils/getNodeParentKeys.js +17 -0
  370. package/esm/Tree/utils/getTreeActiveNode.d.ts +5 -0
  371. package/esm/Tree/utils/getTreeActiveNode.js +16 -0
  372. package/esm/Tree/utils/hasVisibleChildren.d.ts +5 -0
  373. package/esm/Tree/utils/hasVisibleChildren.js +12 -0
  374. package/esm/Tree/utils/indentTreeNode.d.ts +3 -0
  375. package/esm/Tree/utils/indentTreeNode.js +14 -0
  376. package/esm/Tree/utils/index.d.ts +11 -0
  377. package/esm/Tree/utils/index.js +14 -0
  378. package/esm/Tree/utils/isExpand.d.ts +6 -0
  379. package/esm/Tree/utils/isExpand.js +11 -0
  380. package/esm/Tree/utils/isSearching.d.ts +1 -0
  381. package/esm/Tree/utils/isSearching.js +5 -0
  382. package/esm/Tree/utils/treeKeyboardInteractions.d.ts +21 -0
  383. package/esm/Tree/utils/treeKeyboardInteractions.js +43 -0
  384. package/esm/TreePicker/TreePicker.d.ts +27 -21
  385. package/esm/TreePicker/TreePicker.js +158 -579
  386. package/esm/TreePicker/hooks/useFocusState.d.ts +20 -0
  387. package/esm/TreePicker/hooks/useFocusState.js +48 -0
  388. package/esm/index.d.ts +2 -0
  389. package/esm/index.js +1 -0
  390. package/esm/internals/Picker/Listbox.d.ts +40 -10
  391. package/esm/internals/Picker/Listbox.js +22 -16
  392. package/esm/internals/Picker/PickerIndicator.d.ts +2 -1
  393. package/esm/internals/Picker/PickerIndicator.js +7 -3
  394. package/esm/internals/Picker/hooks/useFocusItemValue.js +1 -1
  395. package/esm/internals/Picker/hooks/usePickerRef.d.ts +1 -4
  396. package/esm/internals/Picker/hooks/usePickerRef.js +3 -20
  397. package/esm/internals/Picker/index.d.ts +0 -1
  398. package/esm/internals/Picker/index.js +0 -1
  399. package/esm/internals/Picker/utils.js +1 -1
  400. package/esm/internals/{Picker → Tree}/TreeView.js +1 -1
  401. package/esm/internals/Tree/index.d.ts +1 -0
  402. package/esm/internals/Tree/index.js +2 -0
  403. package/esm/internals/Tree/utils/filterNodesOfTree.d.ts +5 -0
  404. package/esm/internals/Tree/utils/filterNodesOfTree.js +26 -0
  405. package/esm/internals/Tree/utils/findNodeOfTree.d.ts +1 -0
  406. package/esm/internals/Tree/utils/findNodeOfTree.js +22 -0
  407. package/esm/internals/Tree/utils/getParentMap.d.ts +15 -0
  408. package/esm/internals/Tree/utils/getParentMap.js +47 -0
  409. package/esm/internals/Tree/utils/getPathTowardsItem.d.ts +4 -0
  410. package/esm/internals/Tree/utils/getPathTowardsItem.js +12 -0
  411. package/esm/internals/Tree/utils/index.d.ts +4 -0
  412. package/esm/internals/Tree/utils/index.js +5 -0
  413. package/esm/internals/Windowing/List.d.ts +1 -0
  414. package/esm/internals/Windowing/List.js +3 -0
  415. package/esm/internals/Windowing/index.d.ts +1 -1
  416. package/esm/internals/Windowing/index.js +1 -1
  417. package/esm/internals/hooks/index.d.ts +1 -0
  418. package/esm/internals/hooks/index.js +2 -0
  419. package/esm/internals/hooks/useFoucsVirtualListItem.d.ts +7 -0
  420. package/esm/internals/hooks/useFoucsVirtualListItem.js +22 -0
  421. package/esm/{utils → internals/utils}/getSafeRegExpString.d.ts +1 -1
  422. package/esm/{utils → internals/utils}/getSafeRegExpString.js +1 -1
  423. package/esm/internals/utils/index.d.ts +2 -0
  424. package/esm/internals/utils/index.js +3 -0
  425. package/esm/internals/utils/stringifyReactNode.d.ts +2 -0
  426. package/esm/internals/utils/stringifyReactNode.js +12 -0
  427. package/esm/utils/constants.d.ts +0 -2
  428. package/esm/utils/constants.js +0 -3
  429. package/esm/utils/getDataGroupBy.js +1 -1
  430. package/esm/utils/index.d.ts +0 -3
  431. package/esm/utils/index.js +0 -3
  432. package/esm/utils/useIsomorphicLayoutEffect.d.ts +2 -2
  433. package/internals/Picker/styles/index.less +27 -1
  434. package/package.json +2 -2
  435. package/styles/color-modes/dark.less +5 -1
  436. package/styles/color-modes/high-contrast.less +8 -2
  437. package/styles/color-modes/light.less +10 -5
  438. package/styles/index.less +1 -0
  439. package/TreePicker/styles/mixin.less +0 -7
  440. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +0 -28
  441. package/cjs/CheckTreePicker/CheckTreeNode.js +0 -140
  442. package/cjs/CheckTreePicker/utils.d.ts +0 -44
  443. package/cjs/Tree/TreeContext.d.ts +0 -6
  444. package/cjs/Tree/TreeContext.js +0 -10
  445. package/cjs/TreePicker/TreeNode.d.ts +0 -36
  446. package/cjs/TreePicker/TreeNode.js +0 -174
  447. package/cjs/utils/appendTooltip.d.ts +0 -10
  448. package/cjs/utils/appendTooltip.js +0 -20
  449. package/cjs/utils/stringToObject.d.ts +0 -2
  450. package/cjs/utils/stringToObject.js +0 -19
  451. package/cjs/utils/treeUtils.d.ts +0 -304
  452. package/cjs/utils/treeUtils.js +0 -1095
  453. package/esm/CheckTreePicker/CheckTreeNode.d.ts +0 -28
  454. package/esm/CheckTreePicker/CheckTreeNode.js +0 -133
  455. package/esm/CheckTreePicker/utils.d.ts +0 -44
  456. package/esm/Tree/TreeContext.d.ts +0 -6
  457. package/esm/Tree/TreeContext.js +0 -4
  458. package/esm/TreePicker/TreeNode.d.ts +0 -36
  459. package/esm/TreePicker/TreeNode.js +0 -167
  460. package/esm/utils/appendTooltip.d.ts +0 -10
  461. package/esm/utils/appendTooltip.js +0 -15
  462. package/esm/utils/stringToObject.d.ts +0 -2
  463. package/esm/utils/stringToObject.js +0 -14
  464. package/esm/utils/treeUtils.d.ts +0 -304
  465. package/esm/utils/treeUtils.js +0 -1043
  466. /package/cjs/DateInput/{useIsFocused.d.ts → hooks/useIsFocused.d.ts} +0 -0
  467. /package/cjs/DateInput/{useIsFocused.js → hooks/useIsFocused.js} +0 -0
  468. /package/cjs/DateInput/{useKeyboardInputEvent.d.ts → hooks/useKeyboardInputEvent.d.ts} +0 -0
  469. /package/cjs/DateInput/{useKeyboardInputEvent.js → hooks/useKeyboardInputEvent.js} +0 -0
  470. /package/cjs/internals/{Picker → Tree}/TreeView.d.ts +0 -0
  471. /package/esm/DateInput/{useIsFocused.d.ts → hooks/useIsFocused.d.ts} +0 -0
  472. /package/esm/DateInput/{useIsFocused.js → hooks/useIsFocused.js} +0 -0
  473. /package/esm/DateInput/{useKeyboardInputEvent.d.ts → hooks/useKeyboardInputEvent.d.ts} +0 -0
  474. /package/esm/DateInput/{useKeyboardInputEvent.js → hooks/useKeyboardInputEvent.js} +0 -0
  475. /package/esm/internals/{Picker → Tree}/TreeView.d.ts +0 -0
@@ -16,9 +16,10 @@ var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
16
16
  var _TreeView = _interopRequireDefault(require("../CascadeTree/TreeView"));
17
17
  var _SearchView = _interopRequireDefault(require("../CascadeTree/SearchView"));
18
18
  var _hooks = require("../CascadeTree/hooks");
19
- var _treeUtils = require("../utils/treeUtils");
19
+ var _utils = require("../Tree/utils");
20
+ var _utils2 = require("../internals/Tree/utils");
20
21
  var _propTypes2 = require("../internals/propTypes");
21
- var _utils = require("../utils");
22
+ var _utils3 = require("../utils");
22
23
  var _Picker = require("../internals/Picker");
23
24
  var _useMap = require("../utils/useMap");
24
25
  var _useActive2 = _interopRequireDefault(require("./useActive"));
@@ -89,14 +90,14 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
89
90
  target = _usePickerRef.target,
90
91
  overlay = _usePickerRef.overlay,
91
92
  searchInput = _usePickerRef.searchInput;
92
- var _ref = (0, _utils.useControlled)(valueProp, defaultValue),
93
+ var _ref = (0, _utils3.useControlled)(valueProp, defaultValue),
93
94
  value = _ref[0],
94
95
  setValue = _ref[1]; // Store the children of each node
95
96
  var childrenMap = (0, _useMap.useMap)();
96
97
 
97
98
  // Store the parent of each node
98
99
  var parentMap = (0, _react.useMemo)(function () {
99
- return (0, _treeUtils.getParentMap)(data, function (item) {
100
+ return (0, _utils2.getParentMap)(data, function (item) {
100
101
  var _childrenMap$get;
101
102
  return (_childrenMap$get = childrenMap.get(item)) !== null && _childrenMap$get !== void 0 ? _childrenMap$get : item[childrenKey];
102
103
  });
@@ -104,7 +105,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
104
105
 
105
106
  // Flatten the tree data
106
107
  var flattenedData = (0, _react.useMemo)(function () {
107
- return (0, _treeUtils.flattenTree)(data, function (item) {
108
+ return (0, _utils.flattenTree)(data, function (item) {
108
109
  var _childrenMap$get2;
109
110
  return (_childrenMap$get2 = childrenMap.get(item)) !== null && _childrenMap$get2 !== void 0 ? _childrenMap$get2 : item[childrenKey];
110
111
  });
@@ -131,7 +132,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
131
132
  }
132
133
 
133
134
  // When the parent is optional, the value and the displayed path are updated.
134
- if (parentSelectable && !(0, _utils.shallowEqual)(value, nextValue)) {
135
+ if (parentSelectable && !(0, _utils3.shallowEqual)(value, nextValue)) {
135
136
  setValue(nextValue);
136
137
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
137
138
  }
@@ -168,7 +169,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
168
169
  columns = _usePaths.columns,
169
170
  pathTowardsActiveItem = _usePaths.pathTowardsActiveItem,
170
171
  pathTowardsSelectedItem = _usePaths.pathTowardsSelectedItem;
171
- var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
172
+ var _useCustom = (0, _utils3.useCustom)('Picker', overrideLocale),
172
173
  locale = _useCustom.locale,
173
174
  rtl = _useCustom.rtl;
174
175
  /**
@@ -176,7 +177,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
176
177
  * 2.Regardless of whether the value is valid, as long as renderValue is set, it is judged to have a value.
177
178
  */
178
179
  var hasValue = pathTowardsSelectedItem.length > 0 || !(0, _isNil.default)(value) && (0, _isFunction.default)(renderValue);
179
- var _useClassNames = (0, _utils.useClassNames)(classPrefix),
180
+ var _useClassNames = (0, _utils3.useClassNames)(classPrefix),
180
181
  prefix = _useClassNames.prefix,
181
182
  merge = _useClassNames.merge;
182
183
  var onFocusItemCallback = (0, _react.useCallback)(function (value) {
@@ -237,22 +238,22 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
237
238
  active = _useActive.active,
238
239
  handleEntered = _useActive.handleEntered,
239
240
  handleExited = _useActive.handleExited;
240
- var handleClose = (0, _utils.useEventCallback)(function () {
241
+ var handleClose = (0, _utils3.useEventCallback)(function () {
241
242
  var _trigger$current2, _target$current, _target$current$focus;
242
243
  (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.close();
243
244
 
244
245
  // The focus is on the trigger button after closing
245
246
  (_target$current = target.current) === null || _target$current === void 0 ? void 0 : (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 ? void 0 : _target$current$focus.call(_target$current);
246
247
  });
247
- var handleClean = (0, _utils.useEventCallback)(function (event) {
248
+ var handleClean = (0, _utils3.useEventCallback)(function (event) {
248
249
  if (disabled || !target.current) {
249
250
  return;
250
251
  }
251
252
  setValue(null);
252
253
  onChange === null || onChange === void 0 ? void 0 : onChange(null, event);
253
254
  });
254
- var handleMenuPressEnter = (0, _utils.useEventCallback)(function (event) {
255
- var focusItem = (0, _treeUtils.findNodeOfTree)(data, function (item) {
255
+ var handleMenuPressEnter = (0, _utils3.useEventCallback)(function (event) {
256
+ var focusItem = (0, _utils2.findNodeOfTree)(data, function (item) {
256
257
  return item[valueKey] === focusItemValue;
257
258
  });
258
259
  var isLeafNode = focusItem && !focusItem[childrenKey];
@@ -261,7 +262,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
261
262
  if (pathTowardsActiveItem.length) {
262
263
  setLayer(pathTowardsActiveItem.length - 1);
263
264
  }
264
- if (!(0, _utils.shallowEqual)(value, focusItemValue)) {
265
+ if (!(0, _utils3.shallowEqual)(value, focusItemValue)) {
265
266
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(focusItem, pathTowardsActiveItem, event);
266
267
  onChange === null || onChange === void 0 ? void 0 : onChange(focusItemValue !== null && focusItemValue !== void 0 ? focusItemValue : null, event);
267
268
  }
@@ -283,7 +284,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
283
284
  /**
284
285
  * The search structure option is processed after being selected.
285
286
  */
286
- var handleSearchRowSelect = (0, _utils.useEventCallback)(function (itemData, nodes, event) {
287
+ var handleSearchRowSelect = (0, _utils3.useEventCallback)(function (itemData, nodes, event) {
287
288
  var nextValue = itemData[valueKey];
288
289
  handleClose();
289
290
  setSearchKeyword('');
@@ -320,7 +321,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
320
321
  });
321
322
  var classes = merge(className, DEPRECATED_menuClassName, popupClassName, prefix('popup-cascader'));
322
323
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
323
- ref: (0, _utils.mergeRefs)(overlay, speakerRef),
324
+ ref: (0, _utils3.mergeRefs)(overlay, speakerRef),
324
325
  className: classes,
325
326
  style: styles,
326
327
  target: trigger,
@@ -404,7 +405,7 @@ var Cascader = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
404
405
  as: toggleAs,
405
406
  appearance: appearance,
406
407
  disabled: disabled,
407
- onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
408
+ onClean: (0, _utils3.createChainedFunction)(handleClean, onClean),
408
409
  onKeyDown: onPickerKeyDown,
409
410
  cleanable: cleanable && !disabled,
410
411
  hasValue: hasValue,
@@ -11,14 +11,13 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _clone = _interopRequireDefault(require("lodash/clone"));
14
- var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
15
14
  var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
16
15
  var _remove = _interopRequireDefault(require("lodash/remove"));
17
16
  var _omit = _interopRequireDefault(require("lodash/omit"));
18
17
  var _pick = _interopRequireDefault(require("lodash/pick"));
19
18
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
20
- var _treeUtils = require("../utils/treeUtils");
21
- var _utils = require("../utils");
19
+ var _utils = require("../internals/Tree/utils");
20
+ var _utils2 = require("../utils");
22
21
  var _getDataGroupBy = require("../utils/getDataGroupBy");
23
22
  var _Picker = require("../internals/Picker");
24
23
  var _SearchBox = _interopRequireDefault(require("../internals/SearchBox"));
@@ -93,9 +92,9 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
93
92
  overlay = _usePickerRef.overlay,
94
93
  list = _usePickerRef.list,
95
94
  searchInput = _usePickerRef.searchInput;
96
- var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
95
+ var _useCustom = (0, _utils2.useCustom)('Picker', overrideLocale),
97
96
  locale = _useCustom.locale;
98
- var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue || []),
97
+ var _useControlled = (0, _utils2.useControlled)(valueProp, defaultValue || []),
99
98
  value = _useControlled[0],
100
99
  setValue = _useControlled[1]; // Used to hover the focuse item when trigger `onKeydown`
101
100
  var _useFocusItemValue = (0, _Picker.useFocusItemValue)(value === null || value === void 0 ? void 0 : value[0], {
@@ -108,7 +107,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
108
107
  focusItemValue = _useFocusItemValue.focusItemValue,
109
108
  setFocusItemValue = _useFocusItemValue.setFocusItemValue,
110
109
  onFocusItem = _useFocusItemValue.onKeyDown;
111
- var handleSearchCallback = (0, _utils.useEventCallback)(function (searchKeyword, filteredData, event) {
110
+ var handleSearchCallback = (0, _utils2.useEventCallback)(function (searchKeyword, filteredData, event) {
112
111
  var _filteredData$;
113
112
  // The first option after filtering is the focus.
114
113
  setFocusItemValue(filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);
@@ -147,10 +146,10 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
147
146
  }
148
147
  setStickyItems(nextStickyItems);
149
148
  };
150
- var handleChangeValue = (0, _utils.useEventCallback)(function (value, event) {
149
+ var handleChangeValue = (0, _utils2.useEventCallback)(function (value, event) {
151
150
  onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
152
151
  });
153
- var handleClean = (0, _utils.useEventCallback)(function (event) {
152
+ var handleClean = (0, _utils2.useEventCallback)(function (event) {
154
153
  if (disabled || !cleanable) {
155
154
  return;
156
155
  }
@@ -164,16 +163,16 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
164
163
  return;
165
164
  }
166
165
  if (!nextValue.some(function (v) {
167
- return (0, _utils.shallowEqual)(v, focusItemValue);
166
+ return (0, _utils2.shallowEqual)(v, focusItemValue);
168
167
  })) {
169
168
  nextValue.push(focusItemValue);
170
169
  } else {
171
170
  (0, _remove.default)(nextValue, function (itemVal) {
172
- return (0, _utils.shallowEqual)(itemVal, focusItemValue);
171
+ return (0, _utils2.shallowEqual)(itemVal, focusItemValue);
173
172
  });
174
173
  }
175
174
  var focusItem = data.find(function (item) {
176
- return (0, _utils.shallowEqual)(item === null || item === void 0 ? void 0 : item[valueKey], focusItemValue);
175
+ return (0, _utils2.shallowEqual)(item === null || item === void 0 ? void 0 : item[valueKey], focusItemValue);
177
176
  });
178
177
  setValue(nextValue);
179
178
  handleSelect(nextValue, focusItem, event);
@@ -191,16 +190,16 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
191
190
  onMenuPressEnter: handleMenuPressEnter,
192
191
  onMenuPressBackspace: handleClean
193
192
  }, rest));
194
- var handleSelect = (0, _utils.useEventCallback)(function (nextItemValue, item, event) {
193
+ var handleSelect = (0, _utils2.useEventCallback)(function (nextItemValue, item, event) {
195
194
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextItemValue, item, event);
196
195
  });
197
- var handleItemSelect = (0, _utils.useEventCallback)(function (nextItemValue, item, event, checked) {
196
+ var handleItemSelect = (0, _utils2.useEventCallback)(function (nextItemValue, item, event, checked) {
198
197
  var nextValue = (0, _clone.default)(value);
199
198
  if (checked) {
200
199
  nextValue.push(nextItemValue);
201
200
  } else {
202
201
  (0, _remove.default)(nextValue, function (itemVal) {
203
- return (0, _utils.shallowEqual)(itemVal, nextItemValue);
202
+ return (0, _utils2.shallowEqual)(itemVal, nextItemValue);
204
203
  });
205
204
  }
206
205
  setValue(nextValue);
@@ -208,17 +207,17 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
208
207
  handleSelect(nextValue, item, event);
209
208
  handleChangeValue(nextValue, event);
210
209
  });
211
- var handleEntered = (0, _utils.useEventCallback)(function () {
210
+ var handleEntered = (0, _utils2.useEventCallback)(function () {
212
211
  setActive(true);
213
212
  });
214
- var handleExited = (0, _utils.useEventCallback)(function () {
213
+ var handleExited = (0, _utils2.useEventCallback)(function () {
215
214
  resetSearch();
216
215
  setFocusItemValue(null);
217
216
  setActive(false);
218
217
  });
219
218
  var selectedItems = data.filter(function (item) {
220
219
  return value === null || value === void 0 ? void 0 : value.some(function (val) {
221
- return (0, _utils.shallowEqual)(item[valueKey], val);
220
+ return (0, _utils2.shallowEqual)(item[valueKey], val);
222
221
  });
223
222
  }) || [];
224
223
 
@@ -227,7 +226,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
227
226
  * 2.Regardless of whether the value is valid, as long as renderValue is set, it is judged to have a value.
228
227
  */
229
228
  var hasValue = selectedItems.length > 0 || (value === null || value === void 0 ? void 0 : value.length) > 0 && (0, _isFunction.default)(renderValue);
230
- var _useClassNames = (0, _utils.useClassNames)(classPrefix),
229
+ var _useClassNames = (0, _utils2.useClassNames)(classPrefix),
231
230
  prefix = _useClassNames.prefix,
232
231
  merge = _useClassNames.merge;
233
232
  var selectedElement = placeholder;
@@ -259,10 +258,10 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
259
258
  var items = filteredData;
260
259
  var filteredStickyItems = [];
261
260
  if (stickyItems) {
262
- filteredStickyItems = (0, _treeUtils.filterNodesOfTree)(stickyItems, function (item) {
261
+ filteredStickyItems = (0, _utils.filterNodesOfTree)(stickyItems, function (item) {
263
262
  return checkShouldDisplay(item);
264
263
  });
265
- items = (0, _treeUtils.filterNodesOfTree)(data, function (item) {
264
+ items = (0, _utils.filterNodesOfTree)(data, function (item) {
266
265
  return checkShouldDisplay(item) && !stickyItems.some(function (v) {
267
266
  return v[valueKey] === item[valueKey];
268
267
  });
@@ -288,19 +287,17 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
288
287
  listItemAs: _Picker.ListCheckItem,
289
288
  activeItemValues: value,
290
289
  focusItemValue: focusItemValue,
291
- data: [].concat(filteredStickyItems, items)
292
- // `group` is redundant so long as `groupBy` exists
293
- ,
294
- group: !(0, _isUndefined.default)(groupBy),
290
+ data: [].concat(filteredStickyItems, items),
295
291
  groupBy: groupBy,
296
292
  onSelect: handleItemSelect,
297
293
  onGroupTitleClick: onGroupTitleClick,
298
- virtualized: virtualized
294
+ virtualized: virtualized,
295
+ query: searchKeyword
299
296
  }) : /*#__PURE__*/_react.default.createElement("div", {
300
297
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["none"])))
301
298
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
302
299
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
303
- ref: (0, _utils.mergeRefs)(overlay, speakerRef),
300
+ ref: (0, _utils2.mergeRefs)(overlay, speakerRef),
304
301
  autoWidth: menuAutoWidth,
305
302
  className: classes,
306
303
  style: styles,
@@ -329,9 +326,9 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
329
326
  pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
330
327
  ref: trigger,
331
328
  placement: placement,
332
- onEnter: (0, _utils.createChainedFunction)(initStickyItems, onEnter),
333
- onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
334
- onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
329
+ onEnter: (0, _utils2.createChainedFunction)(initStickyItems, onEnter),
330
+ onEntered: (0, _utils2.createChainedFunction)(handleEntered, onEntered),
331
+ onExited: (0, _utils2.createChainedFunction)(handleExited, onExited),
335
332
  speaker: renderPopup
336
333
  }, /*#__PURE__*/_react.default.createElement(Component, {
337
334
  className: classes,
@@ -0,0 +1,16 @@
1
+ import { type CheckTreeViewProps } from './CheckTreeView';
2
+ import type { RsRefForwardingComponent } from '../@types/common';
3
+ import type { TreeExtraProps } from '../Tree/types';
4
+ export declare type ValueType = (string | number)[];
5
+ export interface CheckTreeProps<T = ValueType> extends CheckTreeViewProps<T>, TreeExtraProps {
6
+ /**
7
+ * Default selected Value
8
+ */
9
+ defaultValue?: T;
10
+ }
11
+ /**
12
+ * The `CheckTree` component is used for selecting multiple options which are organized in a tree structure.
13
+ * @see https://rsuitejs.com/components/check-tree
14
+ */
15
+ declare const CheckTree: RsRefForwardingComponent<'div', CheckTreeProps>;
16
+ export default CheckTree;
@@ -0,0 +1,112 @@
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 _useTreeValue2 = _interopRequireDefault(require("./hooks/useTreeValue"));
13
+ var _CheckTreeView = _interopRequireDefault(require("./CheckTreeView"));
14
+ var _useFlattenTree = _interopRequireDefault(require("../Tree/hooks/useFlattenTree"));
15
+ var _useTreeWithChildren2 = _interopRequireDefault(require("../Tree/hooks/useTreeWithChildren"));
16
+ var _useExpandTree2 = _interopRequireDefault(require("../Tree/hooks/useExpandTree"));
17
+ var _TreeProvider = require("../Tree/TreeProvider");
18
+ /**
19
+ * The `CheckTree` component is used for selecting multiple options which are organized in a tree structure.
20
+ * @see https://rsuitejs.com/components/check-tree
21
+ */
22
+ var CheckTree = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
23
+ var controlledValue = props.value,
24
+ data = props.data,
25
+ defaultValue = props.defaultValue,
26
+ _props$defaultExpandA = props.defaultExpandAll,
27
+ defaultExpandAll = _props$defaultExpandA === void 0 ? false : _props$defaultExpandA,
28
+ _props$defaultExpandI = props.defaultExpandItemValues,
29
+ defaultExpandItemValues = _props$defaultExpandI === void 0 ? [] : _props$defaultExpandI,
30
+ uncheckableItemValues = props.uncheckableItemValues,
31
+ controlledExpandItemValues = props.expandItemValues,
32
+ _props$childrenKey = props.childrenKey,
33
+ childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
34
+ _props$labelKey = props.labelKey,
35
+ labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
36
+ _props$valueKey = props.valueKey,
37
+ valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
38
+ virtualized = props.virtualized,
39
+ _props$cascade = props.cascade,
40
+ cascade = _props$cascade === void 0 ? true : _props$cascade,
41
+ renderTreeIcon = props.renderTreeIcon,
42
+ renderTreeNode = props.renderTreeNode,
43
+ getChildren = props.getChildren,
44
+ onExpand = props.onExpand,
45
+ onChange = props.onChange,
46
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["value", "data", "defaultValue", "defaultExpandAll", "defaultExpandItemValues", "uncheckableItemValues", "expandItemValues", "childrenKey", "labelKey", "valueKey", "virtualized", "cascade", "renderTreeIcon", "renderTreeNode", "getChildren", "onExpand", "onChange"]);
47
+ var _useTreeValue = (0, _useTreeValue2.default)(controlledValue, {
48
+ defaultValue: defaultValue,
49
+ uncheckableItemValues: uncheckableItemValues
50
+ }),
51
+ value = _useTreeValue[0],
52
+ setValue = _useTreeValue[1];
53
+ var itemDataKeys = {
54
+ childrenKey: childrenKey,
55
+ labelKey: labelKey,
56
+ valueKey: valueKey
57
+ };
58
+ var _useTreeWithChildren = (0, _useTreeWithChildren2.default)(data, itemDataKeys),
59
+ treeData = _useTreeWithChildren.treeData,
60
+ loadingNodeValues = _useTreeWithChildren.loadingNodeValues,
61
+ appendChild = _useTreeWithChildren.appendChild;
62
+ var _useExpandTree = (0, _useExpandTree2.default)(data, (0, _extends2.default)({}, itemDataKeys, {
63
+ defaultExpandAll: defaultExpandAll,
64
+ defaultExpandItemValues: defaultExpandItemValues,
65
+ controlledExpandItemValues: controlledExpandItemValues,
66
+ onExpand: onExpand,
67
+ getChildren: getChildren,
68
+ appendChild: appendChild
69
+ })),
70
+ expandItemValues = _useExpandTree.expandItemValues,
71
+ handleExpandTreeNode = _useExpandTree.handleExpandTreeNode;
72
+ var flattenedNodes = (0, _useFlattenTree.default)(treeData, (0, _extends2.default)({}, itemDataKeys, {
73
+ uncheckableItemValues: uncheckableItemValues,
74
+ multiple: true,
75
+ cascade: cascade,
76
+ value: value
77
+ }));
78
+ var handleChange = (0, _utils.useEventCallback)(function (nextValue, event) {
79
+ setValue(nextValue);
80
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
81
+ });
82
+ var treeContext = (0, _react.useMemo)(function () {
83
+ return {
84
+ props: {
85
+ labelKey: labelKey,
86
+ valueKey: valueKey,
87
+ childrenKey: childrenKey,
88
+ virtualized: virtualized,
89
+ renderTreeIcon: renderTreeIcon,
90
+ renderTreeNode: renderTreeNode
91
+ }
92
+ };
93
+ }, [childrenKey, labelKey, valueKey, virtualized, renderTreeIcon, renderTreeNode]);
94
+ return /*#__PURE__*/_react.default.createElement(_TreeProvider.TreeProvider, {
95
+ value: treeContext
96
+ }, /*#__PURE__*/_react.default.createElement(_CheckTreeView.default, (0, _extends2.default)({}, rest, {
97
+ ref: ref,
98
+ value: value,
99
+ cascade: cascade,
100
+ data: treeData,
101
+ virtualized: virtualized,
102
+ loadingNodeValues: loadingNodeValues,
103
+ flattenedNodes: flattenedNodes,
104
+ uncheckableItemValues: uncheckableItemValues,
105
+ expandItemValues: expandItemValues,
106
+ onChange: handleChange,
107
+ onExpand: handleExpandTreeNode
108
+ })));
109
+ });
110
+ CheckTree.displayName = 'CheckTree';
111
+ var _default = CheckTree;
112
+ exports.default = _default;
@@ -0,0 +1,72 @@
1
+ import React from 'react';
2
+ import { RsRefForwardingComponent, WithAsProps } from '../@types/common';
3
+ import { CheckStateType } from '../utils';
4
+ import type { TreeNode as TreeNodeData } from '../Tree/types';
5
+ export interface CheckTreeNodeProps extends WithAsProps {
6
+ /**
7
+ * The label of the node.
8
+ */
9
+ label?: any;
10
+ /**
11
+ * The layer of the node in the tree hierarchy.
12
+ */
13
+ layer: number;
14
+ /**
15
+ * The value of the node.
16
+ */
17
+ value?: any;
18
+ /**
19
+ * Whether the node should be focused.
20
+ */
21
+ focus?: boolean;
22
+ /**
23
+ * Whether the node should be expanded.
24
+ */
25
+ expanded?: boolean;
26
+ /**
27
+ * Whether the node is in a loading state.
28
+ */
29
+ loading?: boolean;
30
+ /**
31
+ * Whether the node is visible.
32
+ */
33
+ visible?: boolean;
34
+ /**
35
+ * Additional data associated with the node.
36
+ */
37
+ nodeData?: any;
38
+ /**
39
+ * Whether the node is disabled.
40
+ */
41
+ disabled?: boolean;
42
+ /**
43
+ * The check state of the node.
44
+ */
45
+ checkState?: CheckStateType;
46
+ /**
47
+ * Whether the node has children.
48
+ */
49
+ hasChildren?: boolean;
50
+ /**
51
+ * Whether the node is uncheckable.
52
+ */
53
+ uncheckable?: boolean;
54
+ /**
55
+ * Whether all nodes are uncheckable.
56
+ */
57
+ allUncheckable?: boolean;
58
+ /**
59
+ * Reference to the tree item.
60
+ */
61
+ treeItemRef?: React.Ref<any>;
62
+ /**
63
+ * Callback function called when the node is expanded.
64
+ */
65
+ onExpand?: (nodeData: TreeNodeData, expanded?: boolean) => void;
66
+ /**
67
+ * Callback function called when the node is selected.
68
+ */
69
+ onSelect?: (nodeData: TreeNodeData, event: React.SyntheticEvent) => void;
70
+ }
71
+ declare const CheckTreeNode: RsRefForwardingComponent<'div', CheckTreeNodeProps>;
72
+ export default CheckTreeNode;
@@ -0,0 +1,117 @@
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 _ListCheckItem = _interopRequireDefault(require("../internals/Picker/ListCheckItem"));
12
+ var _utils = require("../internals/utils");
13
+ var _hooks = require("../internals/hooks");
14
+ var _utils2 = require("../Tree/utils");
15
+ var _utils3 = require("../utils");
16
+ var _TreeProvider = require("../Tree/TreeProvider");
17
+ var _TreeNodeToggle = _interopRequireDefault(require("../Tree/TreeNodeToggle"));
18
+ var CheckTreeNode = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
19
+ var _props$as = props.as,
20
+ Component = _props$as === void 0 ? 'div' : _props$as,
21
+ style = props.style,
22
+ className = props.className,
23
+ _props$classPrefix = props.classPrefix,
24
+ classPrefix = _props$classPrefix === void 0 ? 'check-tree-node' : _props$classPrefix,
25
+ _props$visible = props.visible,
26
+ visible = _props$visible === void 0 ? true : _props$visible,
27
+ layer = props.layer,
28
+ disabled = props.disabled,
29
+ allUncheckable = props.allUncheckable,
30
+ loading = props.loading,
31
+ expanded = props.expanded,
32
+ hasChildren = props.hasChildren,
33
+ nodeData = props.nodeData,
34
+ focus = props.focus,
35
+ label = props.label,
36
+ uncheckable = props.uncheckable,
37
+ checkState = props.checkState,
38
+ value = props.value,
39
+ treeItemRef = props.treeItemRef,
40
+ onExpand = props.onExpand,
41
+ onSelect = props.onSelect,
42
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "style", "className", "classPrefix", "visible", "layer", "disabled", "allUncheckable", "loading", "expanded", "hasChildren", "nodeData", "focus", "label", "uncheckable", "checkState", "value", "treeItemRef", "onExpand", "onSelect"]);
43
+ var _useCustom = (0, _utils3.useCustom)(),
44
+ rtl = _useCustom.rtl;
45
+ var _useTreeContextProps = (0, _TreeProvider.useTreeContextProps)(),
46
+ renderTreeNode = _useTreeContextProps.renderTreeNode,
47
+ virtualized = _useTreeContextProps.virtualized;
48
+ var _useClassNames = (0, _utils3.useClassNames)(classPrefix),
49
+ prefix = _useClassNames.prefix,
50
+ merge = _useClassNames.merge,
51
+ withClassPrefix = _useClassNames.withClassPrefix;
52
+ var labelStr = (0, _react.useMemo)(function () {
53
+ return (0, _utils.stringifyReactNode)(label);
54
+ }, [label]);
55
+ var handleExpand = (0, _utils3.useEventCallback)(function (event) {
56
+ var _event$nativeEvent, _event$nativeEvent$st;
57
+ // stop propagation when using custom loading icon
58
+ 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);
59
+ onExpand === null || onExpand === void 0 ? void 0 : onExpand(nodeData, expanded);
60
+ });
61
+ var handleSelect = (0, _utils3.useEventCallback)(function (_value, event) {
62
+ var isChecked = false;
63
+ if (checkState === _utils3.CHECK_STATE.UNCHECK || checkState === _utils3.CHECK_STATE.INDETERMINATE) {
64
+ isChecked = true;
65
+ }
66
+ if (checkState === _utils3.CHECK_STATE.CHECK) {
67
+ isChecked = false;
68
+ }
69
+ var nextNodeData = (0, _extends2.default)({}, nodeData, {
70
+ check: isChecked
71
+ });
72
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextNodeData, event);
73
+ });
74
+ var classes = merge(className, withClassPrefix({
75
+ disabled: disabled,
76
+ 'all-uncheckable': !!allUncheckable,
77
+ 'text-muted': disabled,
78
+ focus: focus
79
+ }));
80
+ var styles = virtualized ? (0, _extends2.default)({}, style, (0, _utils2.indentTreeNode)(rtl, layer - 1)) : style;
81
+ var itemRef = (0, _hooks.useFoucsVirtualListItem)(focus);
82
+ return visible ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
83
+ style: styles,
84
+ className: classes,
85
+ ref: ref
86
+ }), /*#__PURE__*/_react.default.createElement(_TreeNodeToggle.default, {
87
+ "aria-label": (expanded ? 'Collapse' : 'Expand') + (" " + labelStr),
88
+ data: nodeData,
89
+ expanded: expanded,
90
+ loading: loading,
91
+ hasChildren: hasChildren,
92
+ onClick: handleExpand
93
+ }), /*#__PURE__*/_react.default.createElement(_ListCheckItem.default, {
94
+ as: "div",
95
+ role: "treeitem",
96
+ ref: (0, _utils3.mergeRefs)(itemRef, treeItemRef),
97
+ "aria-label": labelStr,
98
+ "aria-expanded": expanded,
99
+ "aria-checked": checkState === _utils3.CHECK_STATE.CHECK,
100
+ "aria-selected": focus,
101
+ "aria-disabled": disabled,
102
+ "aria-level": layer,
103
+ "data-layer": layer,
104
+ active: checkState === _utils3.CHECK_STATE.CHECK,
105
+ indeterminate: checkState === _utils3.CHECK_STATE.INDETERMINATE,
106
+ focus: focus,
107
+ checkable: !uncheckable,
108
+ disabled: disabled,
109
+ value: nodeData.refKey || value,
110
+ className: prefix('content'),
111
+ title: labelStr,
112
+ onSelect: handleSelect
113
+ }, typeof renderTreeNode === 'function' ? renderTreeNode(nodeData) : label)) : null;
114
+ });
115
+ CheckTreeNode.displayName = 'CheckTreeNode';
116
+ var _default = CheckTreeNode;
117
+ exports.default = _default;