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,58 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _utils = require("../utils");
12
+ var _highlightText = require("./utils/highlightText");
13
+ var _utils2 = require("../internals/utils");
14
+ function defaultRenderMark(match, index) {
15
+ return /*#__PURE__*/_react.default.createElement("mark", {
16
+ key: index,
17
+ className: "rs-highlight-mark"
18
+ }, match);
19
+ }
20
+
21
+ /**
22
+ *
23
+ * Highlight the matching text in the content.
24
+ *
25
+ * @see https://rsuitejs.com/components/highlight
26
+ */
27
+ var Highlight = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
28
+ var _props$as = props.as,
29
+ Component = _props$as === void 0 ? 'div' : _props$as,
30
+ _props$classPrefix = props.classPrefix,
31
+ classPrefix = _props$classPrefix === void 0 ? 'highlight' : _props$classPrefix,
32
+ className = props.className,
33
+ children = props.children,
34
+ query = props.query,
35
+ _props$renderMark = props.renderMark,
36
+ renderMark = _props$renderMark === void 0 ? defaultRenderMark : _props$renderMark,
37
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "classPrefix", "className", "children", "query", "renderMark"]);
38
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
39
+ withClassPrefix = _useClassNames.withClassPrefix,
40
+ merge = _useClassNames.merge;
41
+ var classes = merge(className, withClassPrefix());
42
+ var text = (0, _utils2.stringifyReactNode)(children);
43
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
44
+ ref: ref,
45
+ className: classes
46
+ }, rest), (0, _highlightText.highlightText)(text, {
47
+ query: query,
48
+ renderMark: renderMark
49
+ }));
50
+ });
51
+ Highlight.displayName = 'Highlight';
52
+ Highlight.propTypes = {
53
+ className: _propTypes.default.string,
54
+ classPrefix: _propTypes.default.string,
55
+ as: _propTypes.default.elementType
56
+ };
57
+ var _default = Highlight;
58
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ import Highlight from './Highlight';
2
+ export type { HighlightProps } from './Highlight';
3
+ export default Highlight;
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ exports.__esModule = true;
6
+ exports.default = void 0;
7
+ var _Highlight = _interopRequireDefault(require("./Highlight"));
8
+ var _default = _Highlight.default;
9
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export declare function highlightText(text: string, props: {
3
+ query?: string | string[];
4
+ renderMark: (patch: string, index: number) => React.ReactNode;
5
+ }): string | React.ReactNode[];
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ exports.__esModule = true;
5
+ exports.highlightText = highlightText;
6
+ var _utils = require("../../internals/utils");
7
+ function highlightText(text, props) {
8
+ var query = props.query,
9
+ renderMark = props.renderMark;
10
+ if (!query || !text) {
11
+ return text;
12
+ }
13
+ var queries = Array.isArray(query) ? query : [query];
14
+ var regx = new RegExp(queries.map(function (q) {
15
+ return (0, _utils.getSafeRegExpString)(q);
16
+ }).join('|'), 'ig');
17
+ var texts = [];
18
+ var strArr = text.split(regx);
19
+ var highStrArr = text.match(regx);
20
+ for (var i = 0; i < strArr.length; i++) {
21
+ if (strArr[i]) {
22
+ texts.push(strArr[i]);
23
+ }
24
+ if (highStrArr !== null && highStrArr !== void 0 && highStrArr[i]) {
25
+ texts.push(renderMark(highStrArr[i], i));
26
+ }
27
+ }
28
+ return texts;
29
+ }
@@ -10,7 +10,6 @@ var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
- var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
14
13
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
15
14
  var _isFunction = _interopRequireDefault(require("lodash/isFunction"));
16
15
  var _remove = _interopRequireDefault(require("lodash/remove"));
@@ -19,9 +18,9 @@ var _isArray = _interopRequireDefault(require("lodash/isArray"));
19
18
  var _omit = _interopRequireDefault(require("lodash/omit"));
20
19
  var _pick = _interopRequireDefault(require("lodash/pick"));
21
20
  var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual"));
22
- var _treeUtils = require("../utils/treeUtils");
21
+ var _utils = require("../internals/Tree/utils");
23
22
  var _Plaintext = _interopRequireDefault(require("../internals/Plaintext"));
24
- var _utils = require("../utils");
23
+ var _utils2 = require("../utils");
25
24
  var _propTypes2 = require("../internals/propTypes");
26
25
  var _getDataGroupBy = require("../utils/getDataGroupBy");
27
26
  var _Picker = require("../internals/Picker");
@@ -31,7 +30,7 @@ var _InputPickerContext = require("./InputPickerContext");
31
30
  var _Stack = _interopRequireDefault(require("../Stack"));
32
31
  var _useInput2 = _interopRequireDefault(require("./hooks/useInput"));
33
32
  var _useData2 = _interopRequireDefault(require("./hooks/useData"));
34
- var _utils2 = require("./utils");
33
+ var _utils3 = require("./utils");
35
34
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
36
35
  /**
37
36
  * Single item selector with text box input.
@@ -123,12 +122,12 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
123
122
  target = _usePickerRef.target,
124
123
  overlay = _usePickerRef.overlay,
125
124
  list = _usePickerRef.list;
126
- var _useCustom = (0, _utils.useCustom)(['Picker', 'InputPicker'], overrideLocale),
125
+ var _useCustom = (0, _utils2.useCustom)(['Picker', 'InputPicker'], overrideLocale),
127
126
  locale = _useCustom.locale;
128
- var _useClassNames = (0, _utils.useClassNames)(classPrefix),
127
+ var _useClassNames = (0, _utils2.useClassNames)(classPrefix),
129
128
  prefix = _useClassNames.prefix,
130
129
  merge = _useClassNames.merge;
131
- var _useControlled = (0, _utils.useControlled)(controlledOpen, defaultOpen),
130
+ var _useControlled = (0, _utils2.useControlled)(controlledOpen, defaultOpen),
132
131
  open = _useControlled[0],
133
132
  setOpen = _useControlled[1];
134
133
  var _useInput = (0, _useInput2.default)({
@@ -152,14 +151,14 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
152
151
  dataWithCache = _useData.dataWithCache,
153
152
  newData = _useData.newData,
154
153
  setNewData = _useData.setNewData;
155
- var _useControlled2 = (0, _utils.useControlled)(valueProp, multi ? defaultValue || [] : defaultValue),
154
+ var _useControlled2 = (0, _utils2.useControlled)(valueProp, multi ? defaultValue || [] : defaultValue),
156
155
  value = _useControlled2[0],
157
156
  setValue = _useControlled2[1],
158
157
  isControlled = _useControlled2[2];
159
158
  var cloneValue = function cloneValue() {
160
159
  return multi ? (0, _clone.default)(value) || [] : value;
161
160
  };
162
- var handleClose = (0, _utils.useEventCallback)(function () {
161
+ var handleClose = (0, _utils2.useEventCallback)(function () {
163
162
  var _triggerRef$current, _target$current, _target$current$focus;
164
163
  triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();
165
164
 
@@ -179,7 +178,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
179
178
  focusItemValue = _useFocusItemValue.focusItemValue,
180
179
  setFocusItemValue = _useFocusItemValue.setFocusItemValue,
181
180
  onKeyDown = _useFocusItemValue.onKeyDown;
182
- var onSearchCallback = (0, _utils.useEventCallback)(function (searchKeyword, filteredData, event) {
181
+ var onSearchCallback = (0, _utils2.useEventCallback)(function (searchKeyword, filteredData, event) {
183
182
  if (!disabledOptions) {
184
183
  var _filteredData$;
185
184
  // The first option after filtering is the focus.
@@ -240,10 +239,10 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
240
239
  }
241
240
  return option;
242
241
  };
243
- var handleChange = (0, _utils.useEventCallback)(function (value, event) {
242
+ var handleChange = (0, _utils2.useEventCallback)(function (value, event) {
244
243
  onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
245
244
  });
246
- var handleRemoveItemByTag = (0, _utils.useEventCallback)(function (tag, event) {
245
+ var handleRemoveItemByTag = (0, _utils2.useEventCallback)(function (tag, event) {
247
246
  event.stopPropagation();
248
247
  var val = cloneValue();
249
248
  (0, _remove.default)(val, function (itemVal) {
@@ -253,7 +252,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
253
252
  handleChange(val, event);
254
253
  onTagRemove === null || onTagRemove === void 0 ? void 0 : onTagRemove(tag, event);
255
254
  });
256
- var handleSelect = (0, _utils.useEventCallback)(function (value, item, event) {
255
+ var handleSelect = (0, _utils2.useEventCallback)(function (value, item, event) {
257
256
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);
258
257
  if (creatable && item.create) {
259
258
  delete item.create;
@@ -268,7 +267,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
268
267
  * @param item
269
268
  * @param event
270
269
  */
271
- var handleSelectItem = (0, _utils.useEventCallback)(function (value, item, event) {
270
+ var handleSelectItem = (0, _utils2.useEventCallback)(function (value, item, event) {
272
271
  setValue(value);
273
272
  setFocusItemValue(value);
274
273
  resetSearch();
@@ -284,7 +283,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
284
283
  * @param event
285
284
  * @param checked
286
285
  */
287
- var handleCheckTag = (0, _utils.useEventCallback)(function (nextItemValue, item, event, checked) {
286
+ var handleCheckTag = (0, _utils2.useEventCallback)(function (nextItemValue, item, event, checked) {
288
287
  var val = cloneValue();
289
288
  if (checked) {
290
289
  val.push(nextItemValue);
@@ -300,7 +299,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
300
299
  handleChange(val, event);
301
300
  focus();
302
301
  });
303
- var handleTagKeyPress = (0, _utils.useEventCallback)(function (event) {
302
+ var handleTagKeyPress = (0, _utils2.useEventCallback)(function (event) {
304
303
  // When composing, ignore the keypress event.
305
304
  if (event.nativeEvent.isComposing) {
306
305
  return;
@@ -342,7 +341,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
342
341
  handleSelect(val, focusItem, event);
343
342
  handleChange(val, event);
344
343
  });
345
- var handleMenuItemKeyPress = (0, _utils.useEventCallback)(function (event) {
344
+ var handleMenuItemKeyPress = (0, _utils2.useEventCallback)(function (event) {
346
345
  if (!focusItemValue || !controlledData) {
347
346
  return;
348
347
  }
@@ -376,7 +375,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
376
375
  * Remove the last item, after pressing the back key on the keyboard.
377
376
  * @param event
378
377
  */
379
- var removeLastItem = (0, _utils.useEventCallback)(function (event) {
378
+ var removeLastItem = (0, _utils2.useEventCallback)(function (event) {
380
379
  var target = event === null || event === void 0 ? void 0 : event.target;
381
380
  if ((target === null || target === void 0 ? void 0 : target.tagName) !== 'INPUT') {
382
381
  focus();
@@ -390,7 +389,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
390
389
  setValue(val);
391
390
  handleChange(val, event);
392
391
  });
393
- var handleClean = (0, _utils.useEventCallback)(function (event) {
392
+ var handleClean = (0, _utils2.useEventCallback)(function (event) {
394
393
  if (disabled || searchKeyword !== '') {
395
394
  return;
396
395
  }
@@ -410,21 +409,21 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
410
409
  onMenuPressEnter: undefined,
411
410
  onKeyDown: undefined
412
411
  };
413
- var handleKeyPress = (0, _utils.useEventCallback)(function (event) {
412
+ var handleKeyPress = (0, _utils2.useEventCallback)(function (event) {
414
413
  // When typing a space, create a tag.
415
- if ((0, _utils.isOneOf)('Space', trigger) && event.key === _utils.KEY_VALUES.SPACE) {
414
+ if ((0, _utils2.isOneOf)('Space', trigger) && event.key === _utils2.KEY_VALUES.SPACE) {
416
415
  handleTagKeyPress(event);
417
416
  event.preventDefault();
418
417
  }
419
418
 
420
419
  // When typing a comma, create a tag.
421
- if ((0, _utils.isOneOf)('Comma', trigger) && event.key === _utils.KEY_VALUES.COMMA) {
420
+ if ((0, _utils2.isOneOf)('Comma', trigger) && event.key === _utils2.KEY_VALUES.COMMA) {
422
421
  handleTagKeyPress(event);
423
422
  event.preventDefault();
424
423
  }
425
424
  });
426
425
  if (multi) {
427
- if ((0, _utils.isOneOf)('Enter', trigger)) {
426
+ if ((0, _utils2.isOneOf)('Enter', trigger)) {
428
427
  events.onMenuPressEnter = handleTagKeyPress;
429
428
  }
430
429
  if (creatable) {
@@ -438,11 +437,11 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
438
437
  target: target,
439
438
  overlay: overlay
440
439
  }, events, rest));
441
- var handleExited = (0, _utils.useEventCallback)(function () {
440
+ var handleExited = (0, _utils2.useEventCallback)(function () {
442
441
  setFocusItemValue(multi ? value === null || value === void 0 ? void 0 : value[0] : value);
443
442
  resetSearch();
444
443
  });
445
- var handleFocus = (0, _utils.useEventCallback)(function (event) {
444
+ var handleFocus = (0, _utils2.useEventCallback)(function (event) {
446
445
  if (!readOnly) {
447
446
  var _triggerRef$current3;
448
447
  setOpen(true);
@@ -450,17 +449,17 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
450
449
  }
451
450
  onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
452
451
  });
453
- var handleEnter = (0, _utils.useEventCallback)(function () {
452
+ var handleEnter = (0, _utils2.useEventCallback)(function () {
454
453
  focus();
455
454
  setOpen(true);
456
455
  });
457
- var handleExit = (0, _utils.useEventCallback)(function () {
456
+ var handleExit = (0, _utils2.useEventCallback)(function () {
458
457
  blur();
459
458
  setOpen(false);
460
459
  });
461
460
  var renderListItem = function renderListItem(label, item) {
462
461
  // 'Create option "{0}"' => Create option "xxxxx"
463
- var newLabel = item.create ? /*#__PURE__*/_react.default.createElement("span", null, (0, _utils.tplTransform)(locale.createOption, label)) : label;
462
+ var newLabel = item.create ? /*#__PURE__*/_react.default.createElement("span", null, (0, _utils2.tplTransform)(locale.createOption, label)) : label;
464
463
  return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;
465
464
  };
466
465
  var checkValue = function checkValue() {
@@ -503,10 +502,10 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
503
502
  role: "option"
504
503
  }, tagRest, {
505
504
  key: tag,
506
- size: (0, _utils2.convertSize)(size),
505
+ size: (0, _utils3.convertSize)(size),
507
506
  closable: !disabled && closable && !readOnly && !plaintext,
508
507
  title: typeof itemNode === 'string' ? itemNode : undefined,
509
- onClose: (0, _utils.createChainedFunction)(handleRemoveItemByTag.bind(null, tag), onClose)
508
+ onClose: (0, _utils2.createChainedFunction)(handleRemoveItemByTag.bind(null, tag), onClose)
510
509
  }), itemNode);
511
510
  }).filter(function (item) {
512
511
  return item !== null;
@@ -526,7 +525,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
526
525
  left: left,
527
526
  top: top
528
527
  });
529
- var items = (0, _treeUtils.filterNodesOfTree)(data, checkShouldDisplay);
528
+ var items = (0, _utils.filterNodesOfTree)(data, checkShouldDisplay);
530
529
  if (creatable && (typeof shouldDisplayCreateOption === 'function' ? shouldDisplayCreateOption(searchKeyword, items) : searchKeyword && !items.find(function (item) {
531
530
  return item[valueKey] === searchKeyword;
532
531
  }))) {
@@ -541,7 +540,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
541
540
  }
542
541
  if (disabledOptions) {
543
542
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
544
- ref: (0, _utils.mergeRefs)(overlay, speakerRef)
543
+ ref: (0, _utils2.mergeRefs)(overlay, speakerRef)
545
544
  });
546
545
  }
547
546
  var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {
@@ -559,11 +558,8 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
559
558
  activeItemValues: multi ? value : [value],
560
559
  focusItemValue: focusItemValue,
561
560
  maxHeight: menuMaxHeight,
562
- data: items
563
- // FIXME-Doma
564
- // `group` is redundant so long as `groupBy` exists
565
- ,
566
- group: !(0, _isUndefined.default)(groupBy),
561
+ data: items,
562
+ query: searchKeyword,
567
563
  groupBy: groupBy,
568
564
  onSelect: multi ? handleCheckTag : handleSelectItem,
569
565
  renderMenuGroup: renderMenuGroup,
@@ -573,7 +569,7 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
573
569
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["none"])))
574
570
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
575
571
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
576
- ref: (0, _utils.mergeRefs)(overlay, speakerRef),
572
+ ref: (0, _utils2.mergeRefs)(overlay, speakerRef),
577
573
  autoWidth: menuAutoWidth,
578
574
  className: classes,
579
575
  style: styles,
@@ -628,10 +624,10 @@ var InputPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
628
624
  pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
629
625
  ref: triggerRef,
630
626
  trigger: "active",
631
- onEnter: (0, _utils.createChainedFunction)(handleEnter, onEnter),
627
+ onEnter: (0, _utils2.createChainedFunction)(handleEnter, onEnter),
632
628
  onEntered: onEntered,
633
- onExit: (0, _utils.createChainedFunction)(handleExit, onExit),
634
- onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
629
+ onExit: (0, _utils2.createChainedFunction)(handleExit, onExit),
630
+ onExited: (0, _utils2.createChainedFunction)(handleExited, onExited),
635
631
  speaker: renderPopup,
636
632
  placement: placement
637
633
  }, /*#__PURE__*/_react.default.createElement(Component, {
@@ -8,11 +8,10 @@ var _extends3 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
8
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _utils = require("../utils");
11
- var _treeUtils = require("../utils/treeUtils");
12
11
  var _SearchBox = _interopRequireDefault(require("../internals/SearchBox"));
13
12
  var _Checkbox = _interopRequireDefault(require("../Checkbox"));
13
+ var _Highlight = _interopRequireDefault(require("../Highlight"));
14
14
  var _utils2 = require("./utils");
15
- var _utils3 = require("../CascadeTree/utils");
16
15
  function SearchView(props) {
17
16
  var _props$as = props.as,
18
17
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -41,18 +40,11 @@ function SearchView(props) {
41
40
  locale = _useCustom.locale;
42
41
  var renderSearchRow = function renderSearchRow(item, key) {
43
42
  var _extends2;
44
- var nodes = (0, _treeUtils.getNodeParents)(item);
45
- var label = (0, _utils3.highlightLabel)({
46
- item: item,
47
- labelKey: labelKey,
48
- searchKeyword: searchKeyword,
49
- render: function render(patch, index) {
50
- return /*#__PURE__*/_react.default.createElement("span", {
51
- key: index,
52
- className: prefix('match')
53
- }, patch);
54
- }
55
- });
43
+ var nodes = (0, _utils2.getNodeParents)(item);
44
+ var label = /*#__PURE__*/_react.default.createElement(_Highlight.default, {
45
+ as: "span",
46
+ query: searchKeyword
47
+ }, item[labelKey]);
56
48
  nodes.push((0, _extends3.default)({}, item, (_extends2 = {}, _extends2[labelKey] = label, _extends2)));
57
49
  var active = value.some(function (value) {
58
50
  if (cascade) {
@@ -9,6 +9,20 @@ var _uniq = _interopRequireDefault(require("lodash/uniq"));
9
9
  var _remove = _interopRequireDefault(require("lodash/remove"));
10
10
  var _utils = require("../../utils");
11
11
  var _utils2 = require("../utils");
12
+ /**
13
+ * Get all parents of a node
14
+ * @param node
15
+ */
16
+ var getParents = function getParents(node) {
17
+ var parents = [];
18
+ if (!node.parent) {
19
+ return parents;
20
+ }
21
+ parents.push(node.parent);
22
+ parents = parents.concat(getParents(node.parent));
23
+ return parents;
24
+ };
25
+
12
26
  /**
13
27
  * A hook that converts the value into a cascading value
14
28
  * @param props
@@ -43,7 +57,7 @@ function useCascadeValue(props, flattenData) {
43
57
  var splitValue = (0, _react.useCallback)(function (item, checked, value) {
44
58
  var itemValue = item[valueKey];
45
59
  var childrenValue = getChildrenValue(item);
46
- var parents = (0, _utils2.getParents)(item);
60
+ var parents = getParents(item);
47
61
  var nextValue = [].concat(value);
48
62
  var removedValue = [];
49
63
  if (checked) {
@@ -6,7 +6,7 @@ exports.__esModule = true;
6
6
  exports.default = void 0;
7
7
  var _react = require("react");
8
8
  var _slice = _interopRequireDefault(require("lodash/slice"));
9
- var _treeUtils = require("../../utils/treeUtils");
9
+ var _utils = require("../../Tree/utils");
10
10
  /**
11
11
  * A hook for column data
12
12
  * @param flattenData
@@ -35,7 +35,7 @@ function useColumnData(flattenData) {
35
35
  setColumnData([].concat((0, _slice.default)(columnData, 0, index)));
36
36
  }
37
37
  function enforceUpdateColumnData(nextData) {
38
- var nextFlattenData = (0, _treeUtils.UNSAFE_flattenTree)(nextData);
38
+ var nextFlattenData = (0, _utils.UNSAFE_flattenTree)(nextData);
39
39
  setColumnData([nextFlattenData.filter(function (item) {
40
40
  return !item.parent;
41
41
  })]);
@@ -4,14 +4,14 @@
4
4
  exports.__esModule = true;
5
5
  exports.default = void 0;
6
6
  var _react = require("react");
7
- var _treeUtils = require("../../utils/treeUtils");
7
+ var _utils = require("../../Tree/utils");
8
8
  var _attachParent = require("../../utils/attachParent");
9
9
  /**
10
10
  * A hook to flatten tree structure data
11
11
  */
12
12
  function useFlattenData(data, itemKeys) {
13
13
  var childrenKey = itemKeys.childrenKey;
14
- var _useState = (0, _react.useState)((0, _treeUtils.UNSAFE_flattenTree)(data, itemKeys.childrenKey)),
14
+ var _useState = (0, _react.useState)((0, _utils.UNSAFE_flattenTree)(data, itemKeys.childrenKey)),
15
15
  flattenData = _useState[0],
16
16
  setFlattenData = _useState[1];
17
17
  var addFlattenData = (0, _react.useCallback)(function (children, parent) {
@@ -22,7 +22,7 @@ function useFlattenData(data, itemKeys) {
22
22
  setFlattenData([].concat(flattenData, nodes));
23
23
  }, [childrenKey, flattenData]);
24
24
  (0, _react.useEffect)(function () {
25
- setFlattenData((0, _treeUtils.UNSAFE_flattenTree)(data, itemKeys.childrenKey));
25
+ setFlattenData((0, _utils.UNSAFE_flattenTree)(data, itemKeys.childrenKey));
26
26
  }, [data, itemKeys.childrenKey]);
27
27
  return {
28
28
  addFlattenData: addFlattenData,
@@ -5,6 +5,7 @@ exports.__esModule = true;
5
5
  exports.default = void 0;
6
6
  var _react = require("react");
7
7
  var _utils = require("../../utils");
8
+ var _utils2 = require("../../internals/utils");
8
9
  function useSearch(props) {
9
10
  var _useState = (0, _react.useState)(''),
10
11
  searchKeyword = _useState[0],
@@ -22,7 +23,7 @@ function useSearch(props) {
22
23
  })) {
23
24
  return false;
24
25
  }
25
- if (item[labelKey].match(new RegExp((0, _utils.getSafeRegExpString)(searchKeyword), 'i'))) {
26
+ if (item[labelKey].match(new RegExp((0, _utils2.getSafeRegExpString)(searchKeyword), 'i'))) {
26
27
  return true;
27
28
  }
28
29
  return false;
@@ -7,14 +7,14 @@ interface ItemKeys {
7
7
  labelKey: string;
8
8
  childrenKey: string;
9
9
  }
10
- declare type MayHasParent<T extends Record<string, unknown>> = T & {
10
+ export declare type MayHasParent<T extends Record<string, unknown>> = T & {
11
11
  parent?: MayHasParent<T>;
12
12
  };
13
13
  /**
14
- * Get all parents of a node
15
- * @param node
14
+ * get all ancestor nodes of given node
15
+ * @param {*} node
16
16
  */
17
- export declare const getParents: <T extends Record<string, unknown>>(node: MayHasParent<T>) => MayHasParent<T>[];
17
+ export declare function getNodeParents(node: any, parentKey?: string, valueKey?: string): any[];
18
18
  /**
19
19
  * Check if any child nodes are selected.
20
20
  * @param node
@@ -3,21 +3,31 @@
3
3
 
4
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
5
  exports.__esModule = true;
6
- exports.removeAllChildrenValue = exports.getOtherItemValuesByUnselectChild = exports.isSomeParentChecked = exports.isSomeChildChecked = exports.getParents = void 0;
6
+ exports.getNodeParents = getNodeParents;
7
+ exports.removeAllChildrenValue = exports.getOtherItemValuesByUnselectChild = exports.isSomeParentChecked = exports.isSomeChildChecked = void 0;
7
8
  var _remove = _interopRequireDefault(require("lodash/remove"));
8
9
  /**
9
- * Get all parents of a node
10
- * @param node
10
+ * get all ancestor nodes of given node
11
+ * @param {*} node
11
12
  */
12
- var getParents = function getParents(node) {
13
- var parents = [];
14
- if (!node.parent) {
15
- return parents;
13
+ function getNodeParents(node, parentKey, valueKey) {
14
+ if (parentKey === void 0) {
15
+ parentKey = 'parent';
16
16
  }
17
- parents.push(node.parent);
18
- parents = parents.concat(getParents(node.parent));
17
+ var parents = [];
18
+ var traverse = function traverse(node) {
19
+ if (node !== null && node !== void 0 && node[parentKey]) {
20
+ traverse(node[parentKey]);
21
+ if (valueKey) {
22
+ parents.push(node[parentKey][valueKey]);
23
+ } else {
24
+ parents.push(node[parentKey]);
25
+ }
26
+ }
27
+ };
28
+ traverse(node);
19
29
  return parents;
20
- };
30
+ }
21
31
 
22
32
  /**
23
33
  * Check if any child nodes are selected.
@@ -25,7 +35,6 @@ var getParents = function getParents(node) {
25
35
  * @param value
26
36
  * @param itemKeys
27
37
  */
28
- exports.getParents = getParents;
29
38
  var isSomeChildChecked = function isSomeChildChecked(node, value, itemKeys) {
30
39
  var childrenKey = itemKeys.childrenKey,
31
40
  valueKey = itemKeys.valueKey;