rsuite 5.56.0 → 5.58.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 (272) hide show
  1. package/Accordion/styles/index.css +30 -0
  2. package/AutoComplete/styles/index.css +0 -137
  3. package/CHANGELOG.md +32 -0
  4. package/CascadeTree/package.json +7 -0
  5. package/CascadeTree/styles/index.css +273 -0
  6. package/CascadeTree/styles/index.less +77 -0
  7. package/CascadeTree/styles/search.less +45 -0
  8. package/Cascader/styles/index.css +187 -329
  9. package/Cascader/styles/index.less +1 -122
  10. package/CheckPicker/styles/index.css +0 -137
  11. package/CheckTree/styles/index.css +0 -137
  12. package/CheckTreePicker/styles/index.css +0 -137
  13. package/DatePicker/styles/index.css +0 -137
  14. package/DateRangePicker/styles/index.css +0 -137
  15. package/Dropdown/styles/index.css +35 -8
  16. package/Dropdown/styles/index.less +24 -13
  17. package/Heading/package.json +7 -0
  18. package/Heading/styles/index.css +42 -0
  19. package/Heading/styles/index.less +41 -0
  20. package/HeadingGroup/package.json +7 -0
  21. package/HeadingGroup/styles/index.css +5 -0
  22. package/HeadingGroup/styles/index.less +3 -0
  23. package/InputPicker/styles/index.css +29 -146
  24. package/InputPicker/styles/index.less +28 -12
  25. package/InputPicker/styles/mixin.less +7 -0
  26. package/MultiCascadeTree/package.json +7 -0
  27. package/MultiCascadeTree/styles/index.css +3564 -0
  28. package/MultiCascadeTree/styles/index.less +37 -0
  29. package/MultiCascader/styles/index.css +72 -206
  30. package/MultiCascader/styles/index.less +11 -31
  31. package/Nav/styles/index.css +35 -8
  32. package/Navbar/styles/index.css +35 -8
  33. package/Pagination/styles/index.css +0 -137
  34. package/Panel/styles/index.css +30 -0
  35. package/Panel/styles/index.less +1 -0
  36. package/Popover/styles/index.css +30 -0
  37. package/Popover/styles/index.less +3 -2
  38. package/SelectPicker/styles/index.css +0 -137
  39. package/Tabs/styles/index.css +35 -8
  40. package/TagInput/styles/index.css +132 -150
  41. package/TagPicker/styles/index.css +132 -150
  42. package/TagPicker/styles/index.less +57 -5
  43. package/TagPicker/styles/mixin.less +21 -0
  44. package/Text/package.json +7 -0
  45. package/Text/styles/index.css +192 -0
  46. package/Text/styles/index.less +117 -0
  47. package/cjs/@types/common.d.ts +12 -14
  48. package/cjs/CascadeTree/CascadeTree.d.ts +16 -0
  49. package/cjs/CascadeTree/CascadeTree.js +174 -0
  50. package/cjs/CascadeTree/SearchView.d.ts +17 -0
  51. package/cjs/CascadeTree/SearchView.js +106 -0
  52. package/cjs/CascadeTree/TreeView.d.ts +20 -0
  53. package/cjs/{Cascader → CascadeTree}/TreeView.js +42 -33
  54. package/cjs/CascadeTree/hooks/index.d.ts +3 -0
  55. package/cjs/CascadeTree/hooks/index.js +12 -0
  56. package/cjs/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  57. package/cjs/CascadeTree/hooks/usePaths.js +42 -0
  58. package/cjs/CascadeTree/hooks/useSearch.d.ts +17 -0
  59. package/cjs/CascadeTree/hooks/useSearch.js +59 -0
  60. package/cjs/CascadeTree/hooks/useSelect.d.ts +23 -0
  61. package/cjs/CascadeTree/hooks/useSelect.js +64 -0
  62. package/cjs/CascadeTree/index.d.ts +4 -0
  63. package/cjs/CascadeTree/index.js +9 -0
  64. package/cjs/CascadeTree/types.d.ts +66 -0
  65. package/cjs/CascadeTree/types.js +2 -0
  66. package/cjs/CascadeTree/utils.d.ts +32 -0
  67. package/cjs/CascadeTree/utils.js +66 -0
  68. package/cjs/Cascader/Cascader.d.ts +57 -26
  69. package/cjs/Cascader/Cascader.js +178 -249
  70. package/cjs/Cascader/useActive.d.ts +15 -0
  71. package/cjs/Cascader/useActive.js +43 -0
  72. package/cjs/CheckPicker/CheckPicker.js +2 -9
  73. package/cjs/CheckTreePicker/CheckTreePicker.js +2 -10
  74. package/cjs/DatePicker/DatePicker.js +5 -5
  75. package/cjs/DateRangePicker/DateRangePicker.js +3 -5
  76. package/cjs/Dropdown/DropdownItem.d.ts +10 -2
  77. package/cjs/Dropdown/DropdownItem.js +12 -3
  78. package/cjs/Heading/Heading.d.ts +16 -0
  79. package/cjs/Heading/Heading.js +44 -0
  80. package/cjs/Heading/index.d.ts +3 -0
  81. package/cjs/Heading/index.js +10 -0
  82. package/cjs/HeadingGroup/HeadingGroup.d.ts +8 -0
  83. package/cjs/HeadingGroup/HeadingGroup.js +17 -0
  84. package/cjs/HeadingGroup/index.d.ts +3 -0
  85. package/cjs/HeadingGroup/index.js +9 -0
  86. package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
  87. package/cjs/InputPicker/InputPicker.js +7 -8
  88. package/cjs/Loader/Loader.js +5 -4
  89. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  90. package/cjs/MultiCascadeTree/MultiCascadeTree.js +131 -0
  91. package/cjs/MultiCascadeTree/SearchView.d.ts +17 -0
  92. package/cjs/MultiCascadeTree/SearchView.js +117 -0
  93. package/cjs/MultiCascadeTree/TreeView.d.ts +22 -0
  94. package/cjs/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  95. package/cjs/MultiCascadeTree/hooks/index.d.ts +5 -0
  96. package/cjs/MultiCascadeTree/hooks/index.js +16 -0
  97. package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  98. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +202 -0
  99. package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  100. package/cjs/MultiCascadeTree/hooks/useColumnData.js +52 -0
  101. package/cjs/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  102. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +33 -0
  103. package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  104. package/cjs/MultiCascadeTree/hooks/useSearch.js +52 -0
  105. package/cjs/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  106. package/cjs/MultiCascadeTree/hooks/useSelect.js +83 -0
  107. package/cjs/MultiCascadeTree/index.d.ts +4 -0
  108. package/cjs/MultiCascadeTree/index.js +9 -0
  109. package/cjs/MultiCascadeTree/types.d.ts +26 -0
  110. package/cjs/MultiCascadeTree/types.js +2 -0
  111. package/cjs/MultiCascadeTree/utils.d.ts +37 -0
  112. package/cjs/MultiCascadeTree/utils.js +140 -0
  113. package/cjs/MultiCascader/MultiCascader.d.ts +57 -29
  114. package/cjs/MultiCascader/MultiCascader.js +173 -289
  115. package/cjs/Panel/Panel.js +3 -1
  116. package/cjs/Popover/Popover.js +3 -1
  117. package/cjs/SelectPicker/SelectPicker.js +3 -9
  118. package/cjs/Text/Text.d.ts +47 -0
  119. package/cjs/Text/Text.js +72 -0
  120. package/cjs/Text/index.d.ts +3 -0
  121. package/cjs/Text/index.js +10 -0
  122. package/cjs/Tree/Tree.d.ts +4 -4
  123. package/cjs/TreePicker/TreePicker.js +3 -10
  124. package/cjs/index.d.ts +27 -16
  125. package/cjs/index.js +30 -19
  126. package/cjs/internals/Overlay/OverlayTrigger.js +24 -17
  127. package/cjs/internals/Picker/PickerToggle.d.ts +4 -5
  128. package/cjs/internals/Picker/PickerToggleTrigger.d.ts +1 -1
  129. package/cjs/internals/Picker/PickerToggleTrigger.js +1 -1
  130. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -2
  131. package/cjs/internals/Picker/hooks/useToggleKeyDownEvent.js +0 -4
  132. package/cjs/toaster/ToastContainer.d.ts +9 -2
  133. package/cjs/toaster/index.d.ts +0 -1
  134. package/cjs/toaster/index.js +1 -3
  135. package/cjs/useToaster/index.d.ts +2 -0
  136. package/cjs/useToaster/index.js +9 -0
  137. package/cjs/{toaster → useToaster}/useToaster.d.ts +4 -4
  138. package/cjs/{toaster → useToaster}/useToaster.js +4 -4
  139. package/cjs/utils/index.d.ts +1 -0
  140. package/cjs/utils/index.js +5 -2
  141. package/dist/rsuite-no-reset-rtl.css +393 -219
  142. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  143. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  144. package/dist/rsuite-no-reset.css +393 -219
  145. package/dist/rsuite-no-reset.min.css +1 -1
  146. package/dist/rsuite-no-reset.min.css.map +1 -1
  147. package/dist/rsuite-rtl.css +393 -219
  148. package/dist/rsuite-rtl.min.css +1 -1
  149. package/dist/rsuite-rtl.min.css.map +1 -1
  150. package/dist/rsuite.css +393 -219
  151. package/dist/rsuite.js +321 -57
  152. package/dist/rsuite.js.map +1 -1
  153. package/dist/rsuite.min.css +1 -1
  154. package/dist/rsuite.min.css.map +1 -1
  155. package/dist/rsuite.min.js +1 -1
  156. package/dist/rsuite.min.js.map +1 -1
  157. package/esm/@types/common.d.ts +12 -14
  158. package/esm/CascadeTree/CascadeTree.d.ts +16 -0
  159. package/esm/CascadeTree/CascadeTree.js +167 -0
  160. package/esm/CascadeTree/SearchView.d.ts +17 -0
  161. package/esm/CascadeTree/SearchView.js +100 -0
  162. package/esm/CascadeTree/TreeView.d.ts +20 -0
  163. package/esm/{Cascader → CascadeTree}/TreeView.js +42 -33
  164. package/esm/CascadeTree/hooks/index.d.ts +3 -0
  165. package/esm/CascadeTree/hooks/index.js +4 -0
  166. package/esm/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  167. package/esm/CascadeTree/hooks/usePaths.js +36 -0
  168. package/esm/CascadeTree/hooks/useSearch.d.ts +17 -0
  169. package/esm/CascadeTree/hooks/useSearch.js +54 -0
  170. package/esm/CascadeTree/hooks/useSelect.d.ts +23 -0
  171. package/esm/CascadeTree/hooks/useSelect.js +59 -0
  172. package/esm/CascadeTree/index.d.ts +4 -0
  173. package/esm/CascadeTree/index.js +3 -0
  174. package/esm/CascadeTree/types.d.ts +66 -0
  175. package/esm/CascadeTree/types.js +1 -0
  176. package/esm/CascadeTree/utils.d.ts +32 -0
  177. package/esm/CascadeTree/utils.js +61 -0
  178. package/esm/Cascader/Cascader.d.ts +57 -26
  179. package/esm/Cascader/Cascader.js +165 -235
  180. package/esm/Cascader/useActive.d.ts +15 -0
  181. package/esm/Cascader/useActive.js +37 -0
  182. package/esm/CheckPicker/CheckPicker.js +2 -9
  183. package/esm/CheckTreePicker/CheckTreePicker.js +2 -10
  184. package/esm/DatePicker/DatePicker.js +6 -6
  185. package/esm/DateRangePicker/DateRangePicker.js +3 -5
  186. package/esm/Dropdown/DropdownItem.d.ts +10 -2
  187. package/esm/Dropdown/DropdownItem.js +12 -3
  188. package/esm/Heading/Heading.d.ts +16 -0
  189. package/esm/Heading/Heading.js +38 -0
  190. package/esm/Heading/index.d.ts +3 -0
  191. package/esm/Heading/index.js +4 -0
  192. package/esm/HeadingGroup/HeadingGroup.d.ts +8 -0
  193. package/esm/HeadingGroup/HeadingGroup.js +11 -0
  194. package/esm/HeadingGroup/index.d.ts +3 -0
  195. package/esm/HeadingGroup/index.js +3 -0
  196. package/esm/InlineEdit/InlineEdit.d.ts +1 -1
  197. package/esm/InputPicker/InputPicker.js +7 -8
  198. package/esm/Loader/Loader.js +6 -5
  199. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  200. package/esm/MultiCascadeTree/MultiCascadeTree.js +125 -0
  201. package/esm/MultiCascadeTree/SearchView.d.ts +17 -0
  202. package/esm/MultiCascadeTree/SearchView.js +111 -0
  203. package/esm/MultiCascadeTree/TreeView.d.ts +22 -0
  204. package/esm/{MultiCascader → MultiCascadeTree}/TreeView.js +20 -20
  205. package/esm/MultiCascadeTree/hooks/index.d.ts +5 -0
  206. package/esm/MultiCascadeTree/hooks/index.js +6 -0
  207. package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  208. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +197 -0
  209. package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  210. package/esm/MultiCascadeTree/hooks/useColumnData.js +46 -0
  211. package/esm/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  212. package/esm/MultiCascadeTree/hooks/useFlattenData.js +28 -0
  213. package/esm/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  214. package/esm/MultiCascadeTree/hooks/useSearch.js +47 -0
  215. package/esm/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  216. package/esm/MultiCascadeTree/hooks/useSelect.js +77 -0
  217. package/esm/MultiCascadeTree/index.d.ts +4 -0
  218. package/esm/MultiCascadeTree/index.js +3 -0
  219. package/esm/MultiCascadeTree/types.d.ts +26 -0
  220. package/esm/MultiCascadeTree/types.js +1 -0
  221. package/esm/MultiCascadeTree/utils.d.ts +37 -0
  222. package/esm/MultiCascadeTree/utils.js +130 -0
  223. package/esm/MultiCascader/MultiCascader.d.ts +57 -29
  224. package/esm/MultiCascader/MultiCascader.js +166 -281
  225. package/esm/Panel/Panel.js +3 -1
  226. package/esm/Popover/Popover.js +3 -1
  227. package/esm/SelectPicker/SelectPicker.js +3 -9
  228. package/esm/Text/Text.d.ts +47 -0
  229. package/esm/Text/Text.js +66 -0
  230. package/esm/Text/index.d.ts +3 -0
  231. package/esm/Text/index.js +4 -0
  232. package/esm/Tree/Tree.d.ts +4 -4
  233. package/esm/TreePicker/TreePicker.js +3 -10
  234. package/esm/index.d.ts +27 -16
  235. package/esm/index.js +38 -15
  236. package/esm/internals/Overlay/OverlayTrigger.js +24 -17
  237. package/esm/internals/Picker/PickerToggle.d.ts +4 -5
  238. package/esm/internals/Picker/PickerToggleTrigger.d.ts +1 -1
  239. package/esm/internals/Picker/PickerToggleTrigger.js +1 -1
  240. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.d.ts +0 -2
  241. package/esm/internals/Picker/hooks/useToggleKeyDownEvent.js +0 -4
  242. package/esm/toaster/ToastContainer.d.ts +9 -2
  243. package/esm/toaster/index.d.ts +0 -1
  244. package/esm/toaster/index.js +0 -1
  245. package/esm/useToaster/index.d.ts +2 -0
  246. package/esm/useToaster/index.js +3 -0
  247. package/esm/{toaster → useToaster}/useToaster.d.ts +4 -4
  248. package/esm/{toaster → useToaster}/useToaster.js +4 -4
  249. package/esm/utils/index.d.ts +1 -0
  250. package/esm/utils/index.js +2 -1
  251. package/internals/Picker/styles/index.less +0 -5
  252. package/internals/Picker/styles/mixin.less +0 -73
  253. package/package.json +1 -1
  254. package/styles/color-modes/light.less +7 -0
  255. package/styles/index.less +5 -0
  256. package/useToaster/package.json +7 -0
  257. package/useToaster/styles/index.css +239 -0
  258. package/useToaster/styles/index.less +1 -0
  259. package/cjs/Cascader/DropdownMenu.d.ts +0 -24
  260. package/cjs/Cascader/DropdownMenu.js +0 -175
  261. package/cjs/Cascader/TreeView.d.ts +0 -24
  262. package/cjs/Cascader/utils.js +0 -79
  263. package/cjs/MultiCascader/TreeView.d.ts +0 -25
  264. package/cjs/MultiCascader/utils.d.ts +0 -71
  265. package/cjs/MultiCascader/utils.js +0 -382
  266. package/esm/Cascader/DropdownMenu.d.ts +0 -24
  267. package/esm/Cascader/DropdownMenu.js +0 -168
  268. package/esm/Cascader/TreeView.d.ts +0 -24
  269. package/esm/Cascader/utils.js +0 -74
  270. package/esm/MultiCascader/TreeView.d.ts +0 -25
  271. package/esm/MultiCascader/utils.d.ts +0 -71
  272. package/esm/MultiCascader/utils.js +0 -369
@@ -1,22 +1,22 @@
1
1
  'use client';
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import React, { useState, useCallback, useMemo } from 'react';
5
- import { useSet } from 'react-use-set';
4
+ import React, { useCallback, useMemo } from 'react';
6
5
  import PropTypes from 'prop-types';
7
6
  import omit from 'lodash/omit';
8
7
  import pick from 'lodash/pick';
9
8
  import isNil from 'lodash/isNil';
10
9
  import isFunction from 'lodash/isFunction';
11
- import shallowEqual from '../utils/shallowEqual';
12
- import TreeView from './TreeView';
13
- import { getParentMap, getPathTowardsItem, findNodeOfTree, flattenTree } from '../utils/treeUtils';
14
- import { usePaths } from './utils';
15
- import { getSafeRegExpString, createChainedFunction, mergeRefs, useControlled, useCustom, useClassNames, useIsMounted, useEventCallback } from '../utils';
10
+ import TreeView from '../CascadeTree/TreeView';
11
+ import SearchView from '../CascadeTree/SearchView';
12
+ import { usePaths, useSelect, useSearch } from '../CascadeTree/hooks';
13
+ import { getParentMap, findNodeOfTree, flattenTree } from '../utils/treeUtils';
14
+ import { deprecatePropTypeNew } from '../internals/propTypes';
15
+ import { createChainedFunction, mergeRefs, shallowEqual, useControlled, useCustom, useClassNames, useEventCallback } from '../utils';
16
16
  import { PickerToggle, PickerPopup, PickerToggleTrigger, usePickerClassName, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../internals/Picker';
17
- import SearchBox from '../internals/SearchBox';
18
17
  import { useMap } from '../utils/useMap';
19
18
  import { oneOf } from '../internals/propTypes';
19
+ import useActive from './useActive';
20
20
  var emptyArray = [];
21
21
 
22
22
  /**
@@ -49,35 +49,35 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
49
49
  toggleAs = props.toggleAs,
50
50
  style = props.style,
51
51
  valueProp = props.value,
52
- inline = props.inline,
53
- menuClassName = props.menuClassName,
54
- menuStyle = props.menuStyle,
55
- menuWidth = props.menuWidth,
56
- menuHeight = props.menuHeight,
52
+ popupClassName = props.popupClassName,
53
+ popupStyle = props.popupStyle,
54
+ columnHeight = props.columnHeight,
55
+ columnWidth = props.columnWidth,
57
56
  _props$searchable = props.searchable,
58
57
  searchable = _props$searchable === void 0 ? true : _props$searchable,
59
58
  parentSelectable = props.parentSelectable,
60
59
  _props$placement = props.placement,
61
60
  placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
62
61
  id = props.id,
63
- renderMenuItem = props.renderMenuItem,
62
+ renderColumn = props.renderColumn,
63
+ renderTreeNode = props.renderTreeNode,
64
64
  renderSearchItem = props.renderSearchItem,
65
65
  renderValue = props.renderValue,
66
- renderMenu = props.renderMenu,
67
66
  renderExtraFooter = props.renderExtraFooter,
68
- onEnter = props.onEnter,
67
+ onEntered = props.onEntered,
69
68
  onExited = props.onExited,
70
69
  onClean = props.onClean,
71
70
  onChange = props.onChange,
72
71
  onSelect = props.onSelect,
73
72
  onSearch = props.onSearch,
74
- onClose = props.onClose,
75
- onOpen = props.onOpen,
76
73
  getChildren = props.getChildren,
77
- rest = _objectWithoutPropertiesLoose(props, ["as", "data", "classPrefix", "childrenKey", "valueKey", "labelKey", "defaultValue", "placeholder", "disabled", "disabledItemValues", "appearance", "cleanable", "locale", "toggleAs", "style", "value", "inline", "menuClassName", "menuStyle", "menuWidth", "menuHeight", "searchable", "parentSelectable", "placement", "id", "renderMenuItem", "renderSearchItem", "renderValue", "renderMenu", "renderExtraFooter", "onEnter", "onExited", "onClean", "onChange", "onSelect", "onSearch", "onClose", "onOpen", "getChildren"]); // Use component active state to support keyboard events.
78
- var _useState = useState(false),
79
- active = _useState[0],
80
- setActive = _useState[1];
74
+ DEPRECATED_menuClassName = props.menuClassName,
75
+ DEPRECATED_menuStyle = props.menuStyle,
76
+ DEPRECATED_menuWidth = props.menuWidth,
77
+ DEPRECATED_menuHeight = props.menuHeight,
78
+ DEPRECATED_renderMenuItem = props.renderMenuItem,
79
+ DEPRECATED_renderMenu = props.renderMenu,
80
+ rest = _objectWithoutPropertiesLoose(props, ["as", "data", "classPrefix", "childrenKey", "valueKey", "labelKey", "defaultValue", "placeholder", "disabled", "disabledItemValues", "appearance", "cleanable", "locale", "toggleAs", "style", "value", "popupClassName", "popupStyle", "columnHeight", "columnWidth", "searchable", "parentSelectable", "placement", "id", "renderColumn", "renderTreeNode", "renderSearchItem", "renderValue", "renderExtraFooter", "onEntered", "onExited", "onClean", "onChange", "onSelect", "onSearch", "getChildren", "menuClassName", "menuStyle", "menuWidth", "menuHeight", "renderMenuItem", "renderMenu"]);
81
81
  var _usePickerRef = usePickerRef(ref),
82
82
  trigger = _usePickerRef.trigger,
83
83
  root = _usePickerRef.root,
@@ -86,42 +86,81 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
86
86
  searchInput = _usePickerRef.searchInput;
87
87
  var _ref = useControlled(valueProp, defaultValue),
88
88
  value = _ref[0],
89
- setValue = _ref[1];
90
- var isMounted = useIsMounted();
91
- var loadingItemsSet = useSet();
92
- var asyncChildrenMap = useMap();
89
+ setValue = _ref[1]; // Store the children of each node
90
+ var childrenMap = useMap();
91
+
92
+ // Store the parent of each node
93
93
  var parentMap = useMemo(function () {
94
94
  return getParentMap(data, function (item) {
95
- var _asyncChildrenMap$get;
96
- return (_asyncChildrenMap$get = asyncChildrenMap.get(item)) !== null && _asyncChildrenMap$get !== void 0 ? _asyncChildrenMap$get : item[childrenKey];
95
+ var _childrenMap$get;
96
+ return (_childrenMap$get = childrenMap.get(item)) !== null && _childrenMap$get !== void 0 ? _childrenMap$get : item[childrenKey];
97
97
  });
98
- }, [asyncChildrenMap, childrenKey, data]);
98
+ }, [childrenMap, childrenKey, data]);
99
+
100
+ // Flatten the tree data
99
101
  var flattenedData = useMemo(function () {
100
102
  return flattenTree(data, function (item) {
101
- var _asyncChildrenMap$get2;
102
- return (_asyncChildrenMap$get2 = asyncChildrenMap.get(item)) !== null && _asyncChildrenMap$get2 !== void 0 ? _asyncChildrenMap$get2 : item[childrenKey];
103
+ var _childrenMap$get2;
104
+ return (_childrenMap$get2 = childrenMap.get(item)) !== null && _childrenMap$get2 !== void 0 ? _childrenMap$get2 : item[childrenKey];
103
105
  });
104
- }, [asyncChildrenMap, childrenKey, data]);
106
+ }, [childrenMap, childrenKey, data]);
105
107
 
106
- // The item that focus is on
107
- var _useState2 = useState(),
108
- activeItem = _useState2[0],
109
- setActiveItem = _useState2[1];
108
+ // The selected item
109
+ var selectedItem = flattenedData.find(function (item) {
110
+ return item[valueKey] === value;
111
+ });
112
+
113
+ // Callback function after selecting the node
114
+ var onSelectCallback = function onSelectCallback(node, event) {
115
+ var _trigger$current;
116
+ var isLeafNode = node.isLeafNode,
117
+ cascadePaths = node.cascadePaths,
118
+ itemData = node.itemData;
119
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(itemData, cascadePaths, event);
120
+ var nextValue = itemData[valueKey];
121
+ if (isLeafNode) {
122
+ // Determines whether the option is a leaf node, and if so, closes the picker.
123
+ handleClose();
124
+ setValue(nextValue);
125
+ return;
126
+ }
127
+
128
+ // When the parent is optional, the value and the displayed path are updated.
129
+ if (parentSelectable && !shallowEqual(value, nextValue)) {
130
+ setValue(nextValue);
131
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
132
+ }
133
+
134
+ // Update menu position
135
+ (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.updatePosition();
136
+ };
137
+ var _useSelect = useSelect({
138
+ value: value,
139
+ valueKey: valueKey,
140
+ childrenKey: childrenKey,
141
+ childrenMap: childrenMap,
142
+ selectedItem: selectedItem,
143
+ getChildren: getChildren,
144
+ onChange: onChange,
145
+ onSelect: onSelectCallback
146
+ }),
147
+ activeItem = _useSelect.activeItem,
148
+ setActiveItem = _useSelect.setActiveItem,
149
+ loadingItemsSet = _useSelect.loadingItemsSet,
150
+ handleSelect = _useSelect.handleSelect;
110
151
  var _usePaths = usePaths({
111
152
  data: data,
112
153
  activeItem: activeItem,
113
- selectedItem: flattenedData.find(function (item) {
114
- return item[valueKey] === value;
115
- }),
154
+ selectedItem: selectedItem,
116
155
  getParent: function getParent(item) {
117
156
  return parentMap.get(item);
118
157
  },
119
158
  getChildren: function getChildren(item) {
120
- var _asyncChildrenMap$get3;
121
- return (_asyncChildrenMap$get3 = asyncChildrenMap.get(item)) !== null && _asyncChildrenMap$get3 !== void 0 ? _asyncChildrenMap$get3 : item[childrenKey];
159
+ var _childrenMap$get3;
160
+ return (_childrenMap$get3 = childrenMap.get(item)) !== null && _childrenMap$get3 !== void 0 ? _childrenMap$get3 : item[childrenKey];
122
161
  }
123
162
  }),
124
- columnsToDisplay = _usePaths.columnsToDisplay,
163
+ columns = _usePaths.columns,
125
164
  pathTowardsActiveItem = _usePaths.pathTowardsActiveItem,
126
165
  pathTowardsSelectedItem = _usePaths.pathTowardsSelectedItem;
127
166
  var _useCustom = useCustom('Picker', overrideLocale),
@@ -135,37 +174,11 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
135
174
  var _useClassNames = useClassNames(classPrefix),
136
175
  prefix = _useClassNames.prefix,
137
176
  merge = _useClassNames.merge;
138
- var _useState3 = useState(''),
139
- searchKeyword = _useState3[0],
140
- setSearchKeyword = _useState3[1];
141
- var someKeyword = function someKeyword(item, keyword) {
142
- if (item[labelKey].match(new RegExp(getSafeRegExpString(keyword || searchKeyword), 'i'))) {
143
- return true;
144
- }
145
- var parent = parentMap.get(item);
146
- if (parent && someKeyword(parent)) {
147
- return true;
148
- }
149
- return false;
150
- };
151
- var getSearchResult = function getSearchResult(keyword) {
152
- var items = [];
153
- var result = flattenedData.filter(function (item) {
154
- if (!parentSelectable && item[childrenKey]) {
155
- return false;
156
- }
157
- return someKeyword(item, keyword);
158
- });
159
- for (var i = 0; i < result.length; i++) {
160
- items.push(result[i]);
161
-
162
- // A maximum of 100 search results are returned.
163
- if (i === 99) {
164
- return items;
165
- }
166
- }
167
- return items;
168
- };
177
+ var onFocusItemCallback = useCallback(function (value) {
178
+ setActiveItem(flattenedData.find(function (item) {
179
+ return item[valueKey] === value;
180
+ }));
181
+ }, [flattenedData, setActiveItem, valueKey]);
169
182
 
170
183
  // Used to hover the focuse item when trigger `onKeydown`
171
184
  var _useFocusItemValue = useFocusItemValue(value, {
@@ -179,20 +192,14 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
179
192
  getParent: function getParent(item) {
180
193
  return parentMap.get(item);
181
194
  },
182
- callback: useCallback(function (value) {
183
- setActiveItem(flattenedData.find(function (item) {
184
- return item[valueKey] === value;
185
- }));
186
- }, [flattenedData, setActiveItem, valueKey])
195
+ callback: onFocusItemCallback
187
196
  }),
188
197
  focusItemValue = _useFocusItemValue.focusItemValue,
189
198
  setFocusItemValue = _useFocusItemValue.setFocusItemValue,
190
199
  setLayer = _useFocusItemValue.setLayer,
191
200
  setKeys = _useFocusItemValue.setKeys,
192
201
  onFocusItem = _useFocusItemValue.onKeyDown;
193
- var handleSearch = useEventCallback(function (value, event) {
194
- var items = getSearchResult(value);
195
- setSearchKeyword(value);
202
+ var onSearchCallback = function onSearchCallback(value, items, event) {
196
203
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
197
204
  if (!value || items.length === 0) {
198
205
  setFocusItemValue(undefined);
@@ -203,25 +210,31 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
203
210
  setLayer(0);
204
211
  setKeys([]);
205
212
  }
206
- });
207
- var handleEntered = useEventCallback(function () {
208
- if (!target.current) {
209
- return;
210
- }
211
- onOpen === null || onOpen === void 0 ? void 0 : onOpen();
212
- setActive(true);
213
- });
214
- var handleExited = useEventCallback(function () {
215
- if (!target.current) {
216
- return;
217
- }
218
- onClose === null || onClose === void 0 ? void 0 : onClose();
219
- setActive(false);
220
- setSearchKeyword('');
221
- });
213
+ };
214
+ var _useSearch = useSearch({
215
+ labelKey: labelKey,
216
+ childrenKey: childrenKey,
217
+ parentMap: parentMap,
218
+ flattenedData: flattenedData,
219
+ parentSelectable: parentSelectable,
220
+ onSearch: onSearchCallback
221
+ }),
222
+ items = _useSearch.items,
223
+ searchKeyword = _useSearch.searchKeyword,
224
+ setSearchKeyword = _useSearch.setSearchKeyword,
225
+ handleSearch = _useSearch.handleSearch;
226
+ var _useActive = useActive({
227
+ onEntered: onEntered,
228
+ onExited: onExited,
229
+ target: target,
230
+ setSearchKeyword: setSearchKeyword
231
+ }),
232
+ active = _useActive.active,
233
+ handleEntered = _useActive.handleEntered,
234
+ handleExited = _useActive.handleExited;
222
235
  var handleClose = useEventCallback(function () {
223
- var _trigger$current, _target$current, _target$current$focus;
224
- (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.close();
236
+ var _trigger$current2, _target$current, _target$current$focus;
237
+ (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.close();
225
238
 
226
239
  // The focus is on the trigger button after closing
227
240
  (_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);
@@ -261,162 +274,79 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
261
274
  onMenuKeyDown: onFocusItem,
262
275
  onMenuPressEnter: handleMenuPressEnter
263
276
  }, rest));
264
- var handleSelect = useEventCallback(function (node, cascadePaths, isLeafNode, event) {
265
- var _node$childrenKey, _trigger$current2;
266
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
267
- setActiveItem(node);
268
- var nextValue = node[valueKey];
269
-
270
- // Lazy load node's children
271
- if (typeof getChildren === 'function' && ((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) === 0 && !asyncChildrenMap.has(node)) {
272
- loadingItemsSet.add(node);
273
- var children = getChildren(node);
274
- if (children instanceof Promise) {
275
- children.then(function (data) {
276
- if (isMounted()) {
277
- loadingItemsSet.delete(node);
278
- asyncChildrenMap.set(node, data);
279
- }
280
- });
281
- } else {
282
- loadingItemsSet.delete(node);
283
- asyncChildrenMap.set(node, children);
284
- }
285
- }
286
- if (isLeafNode) {
287
- // Determines whether the option is a leaf node, and if so, closes the picker.
288
- handleClose();
289
- setValue(nextValue);
290
- if (!shallowEqual(value, nextValue)) {
291
- onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
292
- }
293
- return;
294
- }
295
-
296
- /** When the parent is optional, the value and the displayed path are updated. */
297
- if (parentSelectable && !shallowEqual(value, nextValue)) {
298
- setValue(nextValue);
299
- onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
300
- }
301
-
302
- // Update menu position
303
- (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.updatePosition();
304
- });
305
277
 
306
278
  /**
307
279
  * The search structure option is processed after being selected.
308
280
  */
309
- var handleSearchRowSelect = useEventCallback(function (node, nodes, event) {
310
- var nextValue = node[valueKey];
281
+ var handleSearchRowSelect = useEventCallback(function (itemData, nodes, event) {
282
+ var nextValue = itemData[valueKey];
311
283
  handleClose();
312
284
  setSearchKeyword('');
313
285
  setValue(nextValue);
314
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, nodes, event);
286
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(itemData, nodes, event);
315
287
  onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
316
288
  });
317
- var renderSearchRow = function renderSearchRow(item, key) {
318
- var regx = new RegExp(getSafeRegExpString(searchKeyword), 'ig');
319
- var nodes = getPathTowardsItem(item, function (item) {
320
- return parentMap.get(item);
321
- });
322
- var formattedNodes = nodes.map(function (node) {
323
- var _extends2;
324
- var labelElements = [];
325
- var a = node[labelKey].split(regx);
326
- var b = node[labelKey].match(regx);
327
- for (var i = 0; i < a.length; i++) {
328
- labelElements.push(a[i]);
329
- if (b && b[i]) {
330
- labelElements.push( /*#__PURE__*/React.createElement("span", {
331
- key: i,
332
- className: prefix('cascader-search-match')
333
- }, b[i]));
334
- }
335
- }
336
- return _extends({}, node, (_extends2 = {}, _extends2[labelKey] = labelElements, _extends2));
337
- });
338
- var disabled = disabledItemValues.some(function (value) {
339
- return formattedNodes.some(function (node) {
340
- return node[valueKey] === value;
341
- });
342
- });
343
- var itemClasses = prefix('cascader-row', {
344
- 'cascader-row-disabled': disabled,
345
- 'cascader-row-focus': item[valueKey] === focusItemValue
346
- });
347
- var label = formattedNodes.map(function (node, index) {
348
- return /*#__PURE__*/React.createElement("span", {
349
- key: "col-" + index,
350
- className: prefix('cascader-col')
351
- }, node[labelKey]);
352
- });
353
- return /*#__PURE__*/React.createElement("div", {
354
- role: "treeitem",
355
- key: key,
356
- "aria-disabled": disabled,
357
- "data-key": item[valueKey],
358
- className: itemClasses,
359
- tabIndex: -1,
360
- onClick: function onClick(event) {
361
- if (!disabled) {
362
- handleSearchRowSelect(item, nodes, event);
363
- }
364
- }
365
- }, renderSearchItem ? renderSearchItem(label, nodes) : label);
289
+ var renderCascadeColumn = function renderCascadeColumn(childNodes, column) {
290
+ var items = column.items,
291
+ parentItem = column.parentItem,
292
+ layer = column.layer;
293
+ if (typeof renderColumn === 'function') {
294
+ return renderColumn(childNodes, column);
295
+ } else if (typeof DEPRECATED_renderMenu === 'function') {
296
+ return DEPRECATED_renderMenu(items, childNodes, parentItem, layer);
297
+ }
298
+ return childNodes;
366
299
  };
367
- var renderSearchResultPanel = function renderSearchResultPanel() {
368
- if (searchKeyword === '') {
369
- return null;
300
+ var renderCascadeTreeNode = function renderCascadeTreeNode(node, itemData) {
301
+ var render = typeof renderTreeNode === 'function' ? renderTreeNode : DEPRECATED_renderMenuItem;
302
+ if (typeof render === 'function') {
303
+ return render(node, itemData);
370
304
  }
371
- var items = getSearchResult();
372
- return /*#__PURE__*/React.createElement("div", {
373
- className: prefix('cascader-search-panel'),
374
- "data-layer": 0,
375
- role: "tree"
376
- }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/React.createElement("div", {
377
- className: prefix('none')
378
- }, locale.noResultsText));
305
+ return node;
379
306
  };
380
307
  var renderTreeView = function renderTreeView(positionProps, speakerRef) {
381
308
  var _ref2 = positionProps || {},
382
309
  left = _ref2.left,
383
310
  top = _ref2.top,
384
311
  className = _ref2.className;
385
- var styles = _extends({}, menuStyle, {
312
+ var styles = _extends({}, DEPRECATED_menuStyle, popupStyle, {
386
313
  left: left,
387
314
  top: top
388
315
  });
389
- var classes = merge(className, menuClassName, prefix('cascader-menu', {
390
- inline: inline
391
- }));
316
+ var classes = merge(className, DEPRECATED_menuClassName, popupClassName, prefix('popup-cascader'));
392
317
  return /*#__PURE__*/React.createElement(PickerPopup, {
393
318
  ref: mergeRefs(overlay, speakerRef),
394
319
  className: classes,
395
320
  style: styles,
396
321
  target: trigger,
397
322
  onKeyDown: onPickerKeyDown
398
- }, searchable && /*#__PURE__*/React.createElement(SearchBox, {
399
- placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
400
- onChange: handleSearch,
401
- value: searchKeyword,
402
- inputRef: searchInput
403
- }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(TreeView, {
404
- menuWidth: menuWidth,
405
- menuHeight: menuHeight,
323
+ }, searchable && /*#__PURE__*/React.createElement(SearchView, {
324
+ data: items,
325
+ searchKeyword: searchKeyword,
326
+ valueKey: valueKey,
327
+ labelKey: labelKey,
328
+ parentMap: parentMap,
329
+ disabledItemValues: disabledItemValues,
330
+ focusItemValue: focusItemValue,
331
+ inputRef: searchInput,
332
+ renderSearchItem: renderSearchItem,
333
+ onSelect: handleSearchRowSelect,
334
+ onSearch: handleSearch
335
+ }), searchKeyword === '' && /*#__PURE__*/React.createElement(TreeView, {
336
+ columnWidth: columnWidth !== null && columnWidth !== void 0 ? columnWidth : DEPRECATED_menuWidth,
337
+ columnHeight: columnHeight !== null && columnHeight !== void 0 ? columnHeight : DEPRECATED_menuHeight,
406
338
  disabledItemValues: disabledItemValues,
407
339
  loadingItemsSet: loadingItemsSet,
408
340
  valueKey: valueKey,
409
341
  labelKey: labelKey,
410
342
  childrenKey: childrenKey,
411
- classPrefix: 'picker-cascader-menu',
412
- cascadeData: columnsToDisplay,
343
+ classPrefix: 'cascade-tree',
344
+ data: columns,
413
345
  cascadePaths: pathTowardsActiveItem,
414
- activeItemValue: value
415
- // FIXME make onSelect generic
416
- ,
346
+ activeItemValue: value,
417
347
  onSelect: handleSelect,
418
- renderMenu: renderMenu,
419
- renderMenuItem: renderMenuItem
348
+ renderColumn: renderCascadeColumn,
349
+ renderTreeNode: renderCascadeTreeNode
420
350
  }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
421
351
  };
422
352
  var selectedElement = placeholder;
@@ -450,19 +380,15 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
450
380
  cleanable: cleanable
451
381
  })),
452
382
  classes = _usePickerClassName[0],
453
- usedClassNamePropKeys = _usePickerClassName[1]; // TODO: bad api design
454
- // consider an isolated Menu component
455
- if (inline) {
456
- return renderTreeView();
457
- }
383
+ usedClassNamePropKeys = _usePickerClassName[1];
458
384
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
459
385
  id: id,
460
386
  popupType: "tree",
461
387
  pickerProps: pick(props, pickTriggerPropKeys),
462
388
  ref: trigger,
463
389
  placement: placement,
464
- onEntered: createChainedFunction(handleEntered, onEnter),
465
- onExited: createChainedFunction(handleExited, onExited),
390
+ onEntered: handleEntered,
391
+ onExited: handleExited,
466
392
  speaker: renderTreeView
467
393
  }, /*#__PURE__*/React.createElement(Component, {
468
394
  className: classes,
@@ -488,16 +414,20 @@ Cascader.propTypes = _extends({}, listPickerPropTypes, {
488
414
  disabledItemValues: PropTypes.array,
489
415
  locale: PropTypes.any,
490
416
  appearance: oneOf(['default', 'subtle']),
491
- renderMenu: PropTypes.func,
492
417
  onSelect: PropTypes.func,
493
418
  onSearch: PropTypes.func,
494
419
  cleanable: PropTypes.bool,
495
- renderMenuItem: PropTypes.func,
420
+ renderColumn: PropTypes.func,
421
+ renderTreeNode: PropTypes.func,
496
422
  renderSearchItem: PropTypes.func,
497
- menuWidth: PropTypes.number,
498
- menuHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
423
+ columnWidth: PropTypes.number,
424
+ columnHeight: PropTypes.number,
499
425
  searchable: PropTypes.bool,
500
- inline: PropTypes.bool,
501
- parentSelectable: PropTypes.bool
426
+ parentSelectable: PropTypes.bool,
427
+ inline: deprecatePropTypeNew(PropTypes.bool, 'Use `<CascadeTree>` instead.'),
428
+ renderMenu: deprecatePropTypeNew(PropTypes.func, 'Use "renderColumn" property instead.'),
429
+ renderMenuItem: deprecatePropTypeNew(PropTypes.func, 'Use "renderTreeNode" property instead.'),
430
+ menuWidth: deprecatePropTypeNew(PropTypes.number, 'Use "columnWidth" property instead.'),
431
+ menuHeight: deprecatePropTypeNew(PropTypes.number, 'Use "columnHeight" property instead.')
502
432
  });
503
433
  export default Cascader;
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ interface UseActiveProps {
3
+ target: React.RefObject<HTMLElement>;
4
+ onOpen?: () => void;
5
+ onClose?: () => void;
6
+ onEntered?: (node: HTMLElement) => void;
7
+ onExited?: (node: HTMLElement) => void;
8
+ setSearchKeyword: (keyword: string) => void;
9
+ }
10
+ declare const useActive: (props: UseActiveProps) => {
11
+ active: boolean;
12
+ handleEntered: (...args: any[]) => any;
13
+ handleExited: (...args: any[]) => any;
14
+ };
15
+ export default useActive;
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+ import { useState } from 'react';
3
+ import useEventCallback from '../utils/useEventCallback';
4
+ var useActive = function useActive(props) {
5
+ var onOpen = props.onOpen,
6
+ onClose = props.onClose,
7
+ onEntered = props.onEntered,
8
+ onExited = props.onExited,
9
+ target = props.target,
10
+ setSearchKeyword = props.setSearchKeyword; // Use component active state to support keyboard events.
11
+ var _useState = useState(false),
12
+ active = _useState[0],
13
+ setActive = _useState[1];
14
+ var handleEntered = useEventCallback(function (node) {
15
+ onEntered === null || onEntered === void 0 ? void 0 : onEntered(node);
16
+ if (!target.current) {
17
+ return;
18
+ }
19
+ onOpen === null || onOpen === void 0 ? void 0 : onOpen();
20
+ setActive(true);
21
+ });
22
+ var handleExited = useEventCallback(function (node) {
23
+ onExited === null || onExited === void 0 ? void 0 : onExited(node);
24
+ if (!target.current) {
25
+ return;
26
+ }
27
+ onClose === null || onClose === void 0 ? void 0 : onClose();
28
+ setActive(false);
29
+ setSearchKeyword('');
30
+ });
31
+ return {
32
+ active: active,
33
+ handleEntered: handleEntered,
34
+ handleExited: handleExited
35
+ };
36
+ };
37
+ export default useActive;
@@ -79,9 +79,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
79
79
  onClean = props.onClean,
80
80
  onChange = props.onChange,
81
81
  onSelect = props.onSelect,
82
- onClose = props.onClose,
83
- onOpen = props.onOpen,
84
- rest = _objectWithoutPropertiesLoose(props, ["as", "appearance", "classPrefix", "countable", "data", "disabledItemValues", "valueKey", "labelKey", "searchable", "virtualized", "cleanable", "placement", "menuAutoWidth", "menuMaxHeight", "menuClassName", "menuStyle", "locale", "placeholder", "disabled", "toggleAs", "style", "sticky", "value", "defaultValue", "groupBy", "listProps", "id", "sort", "searchBy", "renderMenuItem", "renderMenuGroup", "renderValue", "renderExtraFooter", "renderMenu", "onGroupTitleClick", "onSearch", "onEnter", "onEntered", "onExited", "onClean", "onChange", "onSelect", "onClose", "onOpen"]);
82
+ rest = _objectWithoutPropertiesLoose(props, ["as", "appearance", "classPrefix", "countable", "data", "disabledItemValues", "valueKey", "labelKey", "searchable", "virtualized", "cleanable", "placement", "menuAutoWidth", "menuMaxHeight", "menuClassName", "menuStyle", "locale", "placeholder", "disabled", "toggleAs", "style", "sticky", "value", "defaultValue", "groupBy", "listProps", "id", "sort", "searchBy", "renderMenuItem", "renderMenuGroup", "renderValue", "renderExtraFooter", "renderMenu", "onGroupTitleClick", "onSearch", "onEnter", "onEntered", "onExited", "onClean", "onChange", "onSelect"]);
85
83
  var _usePickerRef = usePickerRef(ref),
86
84
  trigger = _usePickerRef.trigger,
87
85
  root = _usePickerRef.root,
@@ -185,10 +183,7 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
185
183
  onExit: handleClean,
186
184
  onMenuKeyDown: onFocusItem,
187
185
  onMenuPressEnter: handleMenuPressEnter,
188
- onMenuPressBackspace: handleClean,
189
- onClose: function onClose() {
190
- setFocusItemValue(null);
191
- }
186
+ onMenuPressBackspace: handleClean
192
187
  }, rest));
193
188
  var handleSelect = useEventCallback(function (nextItemValue, item, event) {
194
189
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextItemValue, item, event);
@@ -209,13 +204,11 @@ var CheckPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
209
204
  });
210
205
  var handleEntered = useEventCallback(function () {
211
206
  setActive(true);
212
- onOpen === null || onOpen === void 0 ? void 0 : onOpen();
213
207
  });
214
208
  var handleExited = useEventCallback(function () {
215
209
  resetSearch();
216
210
  setFocusItemValue(null);
217
211
  setActive(false);
218
- onClose === null || onClose === void 0 ? void 0 : onClose();
219
212
  });
220
213
  var selectedItems = data.filter(function (item) {
221
214
  return value === null || value === void 0 ? void 0 : value.some(function (val) {