rsuite 5.49.0 → 5.51.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 (233) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/Cascader/styles/index.less +4 -4
  3. package/CheckTreePicker/styles/index.less +3 -3
  4. package/DatePicker/styles/index.less +1 -1
  5. package/DateRangePicker/styles/index.less +15 -5
  6. package/Dropdown/styles/index.less +5 -4
  7. package/Dropdown/styles/mixin.less +0 -11
  8. package/Form/styles/mixin.less +1 -2
  9. package/InputGroup/styles/index.less +0 -14
  10. package/InputPicker/styles/index.less +1 -1
  11. package/Picker/styles/index.less +33 -26
  12. package/Picker/styles/mixin.less +20 -16
  13. package/README.md +4 -4
  14. package/TagInput/styles/index.less +2 -2
  15. package/TagPicker/styles/index.less +5 -1
  16. package/TreePicker/styles/index.less +2 -2
  17. package/cjs/@types/common.d.ts +8 -0
  18. package/cjs/AutoComplete/AutoComplete.js +39 -37
  19. package/cjs/AutoComplete/Combobox.d.ts +8 -0
  20. package/cjs/AutoComplete/Combobox.js +31 -0
  21. package/cjs/Calendar/Calendar.d.ts +5 -1
  22. package/cjs/Calendar/CalendarContainer.d.ts +5 -1
  23. package/cjs/Calendar/CalendarContainer.js +35 -37
  24. package/cjs/Cascader/Cascader.js +58 -59
  25. package/cjs/Cascader/DropdownMenu.d.ts +3 -20
  26. package/cjs/Cascader/DropdownMenu.js +48 -48
  27. package/cjs/Cascader/TreeView.d.ts +24 -0
  28. package/cjs/Cascader/TreeView.js +174 -0
  29. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  30. package/cjs/CheckPicker/CheckPicker.js +42 -44
  31. package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  32. package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
  33. package/cjs/CheckTreePicker/CheckTreePicker.js +81 -84
  34. package/cjs/DatePicker/DatePicker.d.ts +5 -1
  35. package/cjs/DatePicker/DatePicker.js +7 -10
  36. package/cjs/DatePicker/Toolbar.js +2 -1
  37. package/cjs/DateRangeInput/DateRangeInput.js +2 -2
  38. package/cjs/DateRangePicker/Calendar.js +24 -23
  39. package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
  40. package/cjs/DateRangePicker/DateRangePicker.js +239 -202
  41. package/cjs/DateRangePicker/types.d.ts +11 -3
  42. package/cjs/DateRangePicker/utils.d.ts +2 -1
  43. package/cjs/DateRangePicker/utils.js +7 -5
  44. package/cjs/Form/Form.d.ts +14 -0
  45. package/cjs/Form/Form.js +39 -30
  46. package/cjs/Form/FormContext.d.ts +1 -0
  47. package/cjs/FormControl/FormControl.d.ts +11 -1
  48. package/cjs/FormControl/FormControl.js +40 -17
  49. package/cjs/FormGroup/FormGroup.js +2 -1
  50. package/cjs/InputPicker/InputPicker.js +108 -92
  51. package/cjs/InputPicker/InputSearch.js +3 -15
  52. package/cjs/InputPicker/TagList.d.ts +3 -0
  53. package/cjs/InputPicker/TagList.js +29 -0
  54. package/cjs/InputPicker/TextBox.d.ts +18 -0
  55. package/cjs/InputPicker/TextBox.js +48 -0
  56. package/cjs/MultiCascader/MultiCascader.js +53 -52
  57. package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  58. package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
  59. package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
  60. package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
  61. package/cjs/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
  62. package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
  63. package/cjs/Picker/ListItemGroup.d.ts +6 -0
  64. package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  65. package/cjs/Picker/Listbox.d.ts +35 -0
  66. package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
  67. package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  68. package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
  69. package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  70. package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  71. package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
  72. package/cjs/Picker/PickerToggle.d.ts +17 -22
  73. package/cjs/Picker/PickerToggle.js +63 -181
  74. package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
  75. package/cjs/Picker/PickerToggleTrigger.js +21 -5
  76. package/cjs/Picker/SearchBar.js +7 -9
  77. package/cjs/Picker/TreeView.d.ts +7 -0
  78. package/cjs/Picker/TreeView.js +31 -0
  79. package/cjs/Picker/hooks/index.d.ts +6 -0
  80. package/cjs/Picker/hooks/index.js +18 -0
  81. package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
  82. package/cjs/Picker/hooks/useCombobox.js +22 -0
  83. package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
  84. package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
  85. package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
  86. package/cjs/Picker/hooks/usePickerClassName.js +39 -0
  87. package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
  88. package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -7
  89. package/cjs/Picker/hooks/useSearch.d.ts +18 -0
  90. package/cjs/Picker/hooks/useSearch.js +57 -0
  91. package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  92. package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
  93. package/cjs/Picker/index.d.ts +9 -5
  94. package/cjs/Picker/index.js +32 -16
  95. package/cjs/Picker/propTypes.d.ts +0 -6
  96. package/cjs/Picker/propTypes.js +0 -5
  97. package/cjs/Picker/utils.d.ts +2 -100
  98. package/cjs/Picker/utils.js +1 -473
  99. package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
  100. package/cjs/SelectPicker/SelectPicker.js +47 -50
  101. package/cjs/TagInput/index.js +4 -0
  102. package/cjs/TreePicker/TreeNode.d.ts +2 -2
  103. package/cjs/TreePicker/TreeNode.js +22 -56
  104. package/cjs/TreePicker/TreePicker.js +91 -95
  105. package/cjs/utils/constants.d.ts +2 -1
  106. package/cjs/utils/constants.js +1 -0
  107. package/cjs/utils/dateUtils.d.ts +0 -1
  108. package/cjs/utils/dateUtils.js +0 -6
  109. package/cjs/utils/getStringLength.d.ts +2 -0
  110. package/cjs/utils/getStringLength.js +18 -0
  111. package/cjs/utils/index.d.ts +1 -0
  112. package/cjs/utils/index.js +4 -1
  113. package/dist/rsuite-no-reset-rtl.css +201 -186
  114. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  115. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  116. package/dist/rsuite-no-reset.css +201 -186
  117. package/dist/rsuite-no-reset.min.css +1 -1
  118. package/dist/rsuite-no-reset.min.css.map +1 -1
  119. package/dist/rsuite-rtl.css +201 -186
  120. package/dist/rsuite-rtl.min.css +1 -1
  121. package/dist/rsuite-rtl.min.css.map +1 -1
  122. package/dist/rsuite.css +201 -186
  123. package/dist/rsuite.js +235 -104
  124. package/dist/rsuite.js.map +1 -1
  125. package/dist/rsuite.min.css +1 -1
  126. package/dist/rsuite.min.css.map +1 -1
  127. package/dist/rsuite.min.js +1 -1
  128. package/dist/rsuite.min.js.map +1 -1
  129. package/esm/@types/common.d.ts +8 -0
  130. package/esm/AutoComplete/AutoComplete.js +42 -40
  131. package/esm/AutoComplete/Combobox.d.ts +8 -0
  132. package/esm/AutoComplete/Combobox.js +25 -0
  133. package/esm/Calendar/Calendar.d.ts +5 -1
  134. package/esm/Calendar/CalendarContainer.d.ts +5 -1
  135. package/esm/Calendar/CalendarContainer.js +37 -39
  136. package/esm/Cascader/Cascader.js +61 -62
  137. package/esm/Cascader/DropdownMenu.d.ts +3 -20
  138. package/esm/Cascader/DropdownMenu.js +50 -49
  139. package/esm/Cascader/TreeView.d.ts +24 -0
  140. package/esm/Cascader/TreeView.js +167 -0
  141. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  142. package/esm/CheckPicker/CheckPicker.js +45 -47
  143. package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
  144. package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
  145. package/esm/CheckTreePicker/CheckTreePicker.js +84 -87
  146. package/esm/DatePicker/DatePicker.d.ts +5 -1
  147. package/esm/DatePicker/DatePicker.js +5 -8
  148. package/esm/DatePicker/Toolbar.js +2 -1
  149. package/esm/DateRangeInput/DateRangeInput.js +2 -2
  150. package/esm/DateRangePicker/Calendar.js +25 -23
  151. package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
  152. package/esm/DateRangePicker/DateRangePicker.js +241 -204
  153. package/esm/DateRangePicker/types.d.ts +11 -3
  154. package/esm/DateRangePicker/utils.d.ts +2 -1
  155. package/esm/DateRangePicker/utils.js +7 -5
  156. package/esm/Form/Form.d.ts +14 -0
  157. package/esm/Form/Form.js +41 -32
  158. package/esm/Form/FormContext.d.ts +1 -0
  159. package/esm/FormControl/FormControl.d.ts +11 -1
  160. package/esm/FormControl/FormControl.js +41 -18
  161. package/esm/FormGroup/FormGroup.js +3 -2
  162. package/esm/InputPicker/InputPicker.js +110 -94
  163. package/esm/InputPicker/InputSearch.js +4 -15
  164. package/esm/InputPicker/TagList.d.ts +3 -0
  165. package/esm/InputPicker/TagList.js +23 -0
  166. package/esm/InputPicker/TextBox.d.ts +18 -0
  167. package/esm/InputPicker/TextBox.js +42 -0
  168. package/esm/MultiCascader/MultiCascader.js +56 -55
  169. package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
  170. package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
  171. package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
  172. package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
  173. package/esm/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
  174. package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
  175. package/esm/Picker/ListItemGroup.d.ts +6 -0
  176. package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
  177. package/esm/Picker/Listbox.d.ts +35 -0
  178. package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
  179. package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  180. package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
  181. package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  182. package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
  183. package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
  184. package/esm/Picker/PickerToggle.d.ts +17 -22
  185. package/esm/Picker/PickerToggle.js +65 -183
  186. package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
  187. package/esm/Picker/PickerToggleTrigger.js +20 -5
  188. package/esm/Picker/SearchBar.js +8 -9
  189. package/esm/Picker/TreeView.d.ts +7 -0
  190. package/esm/Picker/TreeView.js +25 -0
  191. package/esm/Picker/hooks/index.d.ts +6 -0
  192. package/esm/Picker/hooks/index.js +7 -0
  193. package/esm/Picker/hooks/useCombobox.d.ts +7 -0
  194. package/esm/Picker/hooks/useCombobox.js +17 -0
  195. package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
  196. package/esm/Picker/hooks/useFocusItemValue.js +240 -0
  197. package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
  198. package/esm/Picker/hooks/usePickerClassName.js +33 -0
  199. package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
  200. package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -8
  201. package/esm/Picker/hooks/useSearch.d.ts +18 -0
  202. package/esm/Picker/hooks/useSearch.js +51 -0
  203. package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
  204. package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
  205. package/esm/Picker/index.d.ts +9 -5
  206. package/esm/Picker/index.js +9 -5
  207. package/esm/Picker/propTypes.d.ts +0 -6
  208. package/esm/Picker/propTypes.js +0 -5
  209. package/esm/Picker/utils.d.ts +2 -100
  210. package/esm/Picker/utils.js +2 -467
  211. package/esm/SelectPicker/SelectPicker.d.ts +2 -2
  212. package/esm/SelectPicker/SelectPicker.js +50 -53
  213. package/esm/TagInput/index.js +4 -0
  214. package/esm/TreePicker/TreeNode.d.ts +2 -2
  215. package/esm/TreePicker/TreeNode.js +24 -58
  216. package/esm/TreePicker/TreePicker.js +94 -98
  217. package/esm/utils/constants.d.ts +2 -1
  218. package/esm/utils/constants.js +1 -0
  219. package/esm/utils/dateUtils.d.ts +0 -1
  220. package/esm/utils/dateUtils.js +0 -5
  221. package/esm/utils/getStringLength.d.ts +2 -0
  222. package/esm/utils/getStringLength.js +13 -0
  223. package/esm/utils/index.d.ts +1 -0
  224. package/esm/utils/index.js +1 -0
  225. package/package.json +1 -1
  226. package/styles/mixins/combobox.less +10 -0
  227. package/styles/variables.less +1 -3
  228. package/cjs/Picker/DropdownMenu.d.ts +0 -59
  229. package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
  230. package/esm/Picker/DropdownMenu.d.ts +0 -59
  231. package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
  232. /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
  233. /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
@@ -4,11 +4,10 @@
4
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
6
  exports.__esModule = true;
7
- exports.default = exports.dropdownMenuPropTypes = void 0;
7
+ exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
- var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
13
12
  var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
14
13
  var _isNil = _interopRequireDefault(require("lodash/isNil"));
@@ -19,7 +18,7 @@ var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRigh
19
18
  var _getPosition = _interopRequireDefault(require("dom-lib/getPosition"));
20
19
  var _scrollTop = _interopRequireDefault(require("dom-lib/scrollTop"));
21
20
  var emptyArray = [];
22
- var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
21
+ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
23
22
  var _props$as = props.as,
24
23
  Component = _props$as === void 0 ? 'div' : _props$as,
25
24
  activeItemValue = props.activeItemValue,
@@ -42,17 +41,22 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
42
41
  loadingItemsSet = props.loadingItemsSet,
43
42
  _props$labelKey = props.labelKey,
44
43
  labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
44
+ style = props.style,
45
45
  renderMenu = props.renderMenu,
46
46
  renderMenuItem = props.renderMenuItem,
47
47
  onSelect = props.onSelect,
48
- rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "renderMenu", "renderMenuItem", "onSelect"]);
48
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "style", "renderMenu", "renderMenuItem", "onSelect"]);
49
49
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
50
50
  merge = _useClassNames.merge,
51
51
  prefix = _useClassNames.prefix;
52
52
  var classes = merge(className, prefix('items'));
53
53
  var rootRef = (0, _react.useRef)();
54
- var _useCustom = (0, _utils.useCustom)('DropdownMenu'),
54
+ var _useCustom = (0, _utils.useCustom)(),
55
55
  rtl = _useCustom.rtl;
56
+ var _useCombobox = (0, _Picker.useCombobox)(),
57
+ id = _useCombobox.id,
58
+ labelId = _useCombobox.labelId,
59
+ popupType = _useCombobox.popupType;
56
60
  (0, _react.useEffect)(function () {
57
61
  var _rootRef$current;
58
62
  var columns = ((_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.querySelectorAll('[data-type="column"]')) || [];
@@ -71,7 +75,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
71
75
  }
72
76
  });
73
77
  }, [prefix]);
74
- var getCascadePaths = (0, _react.useCallback)(function (layer, node) {
78
+ var getCascadePaths = function getCascadePaths(layer, node) {
75
79
  var paths = [];
76
80
  for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
77
81
  if (i < layer - 1 && cascadePaths) {
@@ -80,14 +84,19 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
80
84
  }
81
85
  paths.push(node);
82
86
  return paths;
83
- }, [cascadeData, cascadePaths]);
84
- var handleSelect = function handleSelect(layer, node, event) {
87
+ };
88
+ var handleSelect = (0, _utils.useEventCallback)(function (layer, node, event) {
85
89
  var isLeafNode = (0, _isNil.default)(node[childrenKey]);
86
90
  var cascadePaths = getCascadePaths(layer + 1, node);
87
91
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, isLeafNode, event);
88
- };
89
- var renderCascadeNode = function renderCascadeNode(node, index, layer, focus) {
92
+ });
93
+ var renderCascadeNode = function renderCascadeNode(nodeProps) {
90
94
  var _loadingItemsSet$has;
95
+ var node = nodeProps.node,
96
+ index = nodeProps.index,
97
+ layer = nodeProps.layer,
98
+ focus = nodeProps.focus,
99
+ size = nodeProps.size;
91
100
  var children = node[childrenKey];
92
101
  var value = node[valueKey];
93
102
  var label = node[labelKey];
@@ -99,16 +108,19 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
99
108
  // Use `value` in keys when If `value` is string or number
100
109
  var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
101
110
  var Icon = loading ? _Spinner.default : rtl ? _AngleLeft.default : _AngleRight.default;
102
- return /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenuItem, {
103
- classPrefix: "picker-cascader-menu-item",
111
+ return /*#__PURE__*/_react.default.createElement(_Picker.ListItem, {
104
112
  as: 'li',
105
113
  role: "treeitem",
114
+ "aria-level": layer + 1,
115
+ "aria-setsize": size,
116
+ "aria-posinset": index + 1,
117
+ "aria-label": typeof label === 'string' ? label : undefined,
118
+ classPrefix: "picker-cascader-menu-item",
106
119
  key: layer + "-" + onlyKey,
107
120
  disabled: disabled,
108
121
  active: !(0, _isUndefined.default)(activeItemValue) && (0, _utils.shallowEqual)(activeItemValue, value),
109
122
  focus: focus,
110
123
  value: value,
111
- "aria-owns": node.children ? 'treeitem-' + value + '-children' : undefined,
112
124
  className: children ? prefix('has-children') : undefined,
113
125
  onSelect: function onSelect(_value, event) {
114
126
  return handleSelect(layer, node, event);
@@ -118,56 +130,44 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
118
130
  spin: loading
119
131
  }) : null);
120
132
  };
121
- var styles = {
122
- width: cascadeData.length * menuWidth
123
- };
124
133
  var cascadeNodes = cascadeData.map(function (children, layer) {
125
134
  var onlyKey = layer + "_" + children.length;
126
135
  var parentNode = cascadePaths[layer - 1];
127
- var menu = /*#__PURE__*/_react.default.createElement("ul", {
128
- role: layer === 0 ? 'none presentation' : 'group',
129
- id: parentNode ? 'treeitem-' + parentNode[valueKey] + '-children' : undefined
130
- }, children.map(function (item, index) {
131
- return renderCascadeNode(item, index, layer, cascadePaths[layer] && (0, _utils.shallowEqual)(cascadePaths[layer][valueKey], item[valueKey]));
136
+ var menu = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map(function (item, index) {
137
+ var focus = cascadePaths[layer] && (0, _utils.shallowEqual)(cascadePaths[layer][valueKey], item[valueKey]);
138
+ return renderCascadeNode({
139
+ node: item,
140
+ index: index,
141
+ layer: layer,
142
+ focus: focus,
143
+ size: children.length
144
+ });
132
145
  }));
133
- return /*#__PURE__*/_react.default.createElement("div", {
134
- key: onlyKey,
135
- className: prefix('column'),
146
+ return /*#__PURE__*/_react.default.createElement("ul", {
147
+ role: "group",
136
148
  "data-layer": layer,
137
149
  "data-type": 'column',
150
+ key: onlyKey,
151
+ className: prefix('column'),
138
152
  style: {
139
153
  height: menuHeight,
140
154
  width: menuWidth
141
155
  }
142
156
  }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
143
157
  });
158
+ var styles = (0, _extends2.default)({}, style, {
159
+ width: cascadeData.length * menuWidth
160
+ });
144
161
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
145
- role: "tree"
162
+ role: "tree",
163
+ id: id + "-" + popupType,
164
+ "aria-labelledby": labelId
146
165
  }, rest, {
147
166
  ref: (0, _utils.mergeRefs)(rootRef, ref),
148
- className: classes
149
- }), /*#__PURE__*/_react.default.createElement("div", {
167
+ className: classes,
150
168
  style: styles
151
- }, cascadeNodes));
169
+ }), cascadeNodes);
152
170
  });
153
- var dropdownMenuPropTypes = {
154
- classPrefix: _propTypes.default.string,
155
- disabledItemValues: _propTypes.default.array,
156
- activeItemValue: _propTypes.default.any,
157
- childrenKey: _propTypes.default.string,
158
- valueKey: _propTypes.default.string,
159
- labelKey: _propTypes.default.string,
160
- menuWidth: _propTypes.default.number,
161
- menuHeight: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
162
- className: _propTypes.default.string,
163
- renderMenuItem: _propTypes.default.func,
164
- renderMenu: _propTypes.default.func,
165
- onSelect: _propTypes.default.func,
166
- cascadeData: _propTypes.default.array,
167
- cascadePaths: _propTypes.default.array
168
- };
169
- exports.dropdownMenuPropTypes = dropdownMenuPropTypes;
170
- DropdownMenu.displayName = 'DropdownMenu';
171
- DropdownMenu.propTypes = dropdownMenuPropTypes;
172
- var _default = DropdownMenu;
171
+ TreeView.displayName = 'TreeView';
172
+ var _default = TreeView;
173
173
  exports.default = _default;
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { ItemDataType, WithAsProps, RsRefForwardingComponent } from '../@types/common';
3
+ import { ValueType } from './Cascader';
4
+ declare type SetLike<T = unknown> = {
5
+ has(value: T): boolean;
6
+ };
7
+ export interface TreeViewProps extends Omit<WithAsProps, 'classPrefix'> {
8
+ classPrefix: string;
9
+ disabledItemValues: ValueType[];
10
+ activeItemValue?: ValueType | null;
11
+ childrenKey: string;
12
+ cascadeData: (readonly ItemDataType[])[];
13
+ loadingItemsSet?: SetLike<ItemDataType>;
14
+ cascadePaths: ItemDataType[];
15
+ valueKey: string;
16
+ labelKey: string;
17
+ menuWidth?: number;
18
+ menuHeight?: number | string;
19
+ renderMenuItem?: (itemLabel: React.ReactNode, item: ItemDataType) => React.ReactNode;
20
+ renderMenu?: (items: readonly ItemDataType[], menu: React.ReactNode, parentNode?: ItemDataType, layer?: number) => React.ReactNode;
21
+ onSelect?: (node: ItemDataType, cascadePaths: ItemDataType[], isLeafNode: boolean, event: React.MouseEvent) => void;
22
+ }
23
+ declare const TreeView: RsRefForwardingComponent<'div', TreeViewProps>;
24
+ export default TreeView;
@@ -0,0 +1,174 @@
1
+ 'use client';
2
+ "use strict";
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+ exports.__esModule = true;
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _Spinner = _interopRequireDefault(require("@rsuite/icons/legacy/Spinner"));
12
+ var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
13
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
14
+ var _utils = require("../utils");
15
+ var _Picker = require("../Picker");
16
+ var _AngleLeft = _interopRequireDefault(require("@rsuite/icons/legacy/AngleLeft"));
17
+ var _AngleRight = _interopRequireDefault(require("@rsuite/icons/legacy/AngleRight"));
18
+ var _getPosition = _interopRequireDefault(require("dom-lib/getPosition"));
19
+ var _scrollTop = _interopRequireDefault(require("dom-lib/scrollTop"));
20
+ var emptyArray = [];
21
+ var TreeView = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
22
+ var _props$as = props.as,
23
+ Component = _props$as === void 0 ? 'div' : _props$as,
24
+ activeItemValue = props.activeItemValue,
25
+ classPrefix = props.classPrefix,
26
+ className = props.className,
27
+ _props$childrenKey = props.childrenKey,
28
+ childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
29
+ _props$disabledItemVa = props.disabledItemValues,
30
+ disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
31
+ _props$menuWidth = props.menuWidth,
32
+ menuWidth = _props$menuWidth === void 0 ? 120 : _props$menuWidth,
33
+ _props$menuHeight = props.menuHeight,
34
+ menuHeight = _props$menuHeight === void 0 ? 200 : _props$menuHeight,
35
+ _props$valueKey = props.valueKey,
36
+ valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
37
+ _props$cascadeData = props.cascadeData,
38
+ cascadeData = _props$cascadeData === void 0 ? emptyArray : _props$cascadeData,
39
+ _props$cascadePaths = props.cascadePaths,
40
+ cascadePaths = _props$cascadePaths === void 0 ? emptyArray : _props$cascadePaths,
41
+ loadingItemsSet = props.loadingItemsSet,
42
+ _props$labelKey = props.labelKey,
43
+ labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
44
+ style = props.style,
45
+ renderMenu = props.renderMenu,
46
+ renderMenuItem = props.renderMenuItem,
47
+ onSelect = props.onSelect,
48
+ rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "activeItemValue", "classPrefix", "className", "childrenKey", "disabledItemValues", "menuWidth", "menuHeight", "valueKey", "cascadeData", "cascadePaths", "loadingItemsSet", "labelKey", "style", "renderMenu", "renderMenuItem", "onSelect"]);
49
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
50
+ merge = _useClassNames.merge,
51
+ prefix = _useClassNames.prefix;
52
+ var classes = merge(className, prefix('items'));
53
+ var rootRef = (0, _react.useRef)();
54
+ var _useCustom = (0, _utils.useCustom)(),
55
+ rtl = _useCustom.rtl;
56
+ var _useCombobox = (0, _Picker.useCombobox)(),
57
+ id = _useCombobox.id,
58
+ labelId = _useCombobox.labelId,
59
+ popupType = _useCombobox.popupType;
60
+ (0, _react.useEffect)(function () {
61
+ var _rootRef$current;
62
+ var columns = ((_rootRef$current = rootRef.current) === null || _rootRef$current === void 0 ? void 0 : _rootRef$current.querySelectorAll('[data-type="column"]')) || [];
63
+ columns.forEach(function (column) {
64
+ if (!column) {
65
+ return;
66
+ }
67
+ var activeItem = column.querySelector("." + prefix('item-focus'));
68
+ if (!activeItem) {
69
+ activeItem = column.querySelector("." + prefix('item-active'));
70
+ }
71
+ if (activeItem) {
72
+ var position = (0, _getPosition.default)(activeItem, column);
73
+ // Let the active option scroll into view.
74
+ (0, _scrollTop.default)(column, position === null || position === void 0 ? void 0 : position.top);
75
+ }
76
+ });
77
+ }, [prefix]);
78
+ var getCascadePaths = function getCascadePaths(layer, node) {
79
+ var paths = [];
80
+ for (var i = 0; i < cascadeData.length && i < layer; i += 1) {
81
+ if (i < layer - 1 && cascadePaths) {
82
+ paths.push(cascadePaths[i]);
83
+ }
84
+ }
85
+ paths.push(node);
86
+ return paths;
87
+ };
88
+ var handleSelect = (0, _utils.useEventCallback)(function (layer, node, event) {
89
+ var isLeafNode = (0, _isNil.default)(node[childrenKey]);
90
+ var cascadePaths = getCascadePaths(layer + 1, node);
91
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, isLeafNode, event);
92
+ });
93
+ var renderCascadeNode = function renderCascadeNode(nodeProps) {
94
+ var _loadingItemsSet$has;
95
+ var node = nodeProps.node,
96
+ index = nodeProps.index,
97
+ layer = nodeProps.layer,
98
+ focus = nodeProps.focus,
99
+ size = nodeProps.size;
100
+ var children = node[childrenKey];
101
+ var value = node[valueKey];
102
+ var label = node[labelKey];
103
+ var disabled = disabledItemValues.some(function (disabledValue) {
104
+ return (0, _utils.shallowEqual)(disabledValue, value);
105
+ });
106
+ var loading = (_loadingItemsSet$has = loadingItemsSet === null || loadingItemsSet === void 0 ? void 0 : loadingItemsSet.has(node)) !== null && _loadingItemsSet$has !== void 0 ? _loadingItemsSet$has : false;
107
+
108
+ // Use `value` in keys when If `value` is string or number
109
+ var onlyKey = typeof value === 'number' || typeof value === 'string' ? value : index;
110
+ var Icon = loading ? _Spinner.default : rtl ? _AngleLeft.default : _AngleRight.default;
111
+ return /*#__PURE__*/_react.default.createElement(_Picker.ListItem, {
112
+ as: 'li',
113
+ role: "treeitem",
114
+ "aria-level": layer + 1,
115
+ "aria-setsize": size,
116
+ "aria-posinset": index + 1,
117
+ "aria-label": typeof label === 'string' ? label : undefined,
118
+ classPrefix: "picker-cascader-menu-item",
119
+ key: layer + "-" + onlyKey,
120
+ disabled: disabled,
121
+ active: !(0, _isUndefined.default)(activeItemValue) && (0, _utils.shallowEqual)(activeItemValue, value),
122
+ focus: focus,
123
+ value: value,
124
+ className: children ? prefix('has-children') : undefined,
125
+ onSelect: function onSelect(_value, event) {
126
+ return handleSelect(layer, node, event);
127
+ }
128
+ }, renderMenuItem ? renderMenuItem(label, node) : label, children ? /*#__PURE__*/_react.default.createElement(Icon, {
129
+ className: prefix('caret'),
130
+ spin: loading,
131
+ "data-testid": "spinner"
132
+ }) : null);
133
+ };
134
+ var cascadeNodes = cascadeData.map(function (children, layer) {
135
+ var onlyKey = layer + "_" + children.length;
136
+ var parentNode = cascadePaths[layer - 1];
137
+ var menu = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.map(function (item, index) {
138
+ var focus = cascadePaths[layer] && (0, _utils.shallowEqual)(cascadePaths[layer][valueKey], item[valueKey]);
139
+ return renderCascadeNode({
140
+ node: item,
141
+ index: index,
142
+ layer: layer,
143
+ focus: focus,
144
+ size: children.length
145
+ });
146
+ }));
147
+ return /*#__PURE__*/_react.default.createElement("ul", {
148
+ role: "group",
149
+ "data-layer": layer,
150
+ "data-type": 'column',
151
+ key: onlyKey,
152
+ className: prefix('column'),
153
+ style: {
154
+ height: menuHeight,
155
+ width: menuWidth
156
+ }
157
+ }, renderMenu ? renderMenu(children, menu, parentNode, layer) : menu);
158
+ });
159
+ var styles = (0, _extends2.default)({}, style, {
160
+ width: cascadeData.length * menuWidth
161
+ });
162
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
163
+ role: "tree",
164
+ id: id + "-" + popupType,
165
+ "aria-labelledby": labelId
166
+ }, rest, {
167
+ ref: (0, _utils.mergeRefs)(rootRef, ref),
168
+ className: classes,
169
+ style: styles
170
+ }), cascadeNodes);
171
+ });
172
+ TreeView.displayName = 'TreeView';
173
+ var _default = TreeView;
174
+ exports.default = _default;
@@ -1,4 +1,4 @@
1
- import React, { Ref } from 'react';
1
+ import React from 'react';
2
2
  import { PickerLocale } from '../locales';
3
3
  import { PickerHandle, PickerToggleProps } from '../Picker';
4
4
  import { ItemDataType, FormControlPickerProps } from '../@types/common';
@@ -12,7 +12,7 @@ export interface CheckPickerProps<T> extends FormControlPickerProps<T[], PickerL
12
12
  }
13
13
  export interface CheckPickerComponent {
14
14
  <T>(props: CheckPickerProps<T> & {
15
- ref?: Ref<PickerHandle>;
15
+ ref?: React.Ref<PickerHandle>;
16
16
  }): JSX.Element | null;
17
17
  displayName?: string;
18
18
  propTypes?: React.WeakValidationMap<CheckPickerProps<any>>;
@@ -86,11 +86,13 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
86
86
  onClose = props.onClose,
87
87
  onOpen = props.onOpen,
88
88
  rest = (0, _objectWithoutPropertiesLoose2.default)(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"]);
89
- var triggerRef = (0, _react.useRef)(null);
90
- var targetRef = (0, _react.useRef)(null);
91
- var overlayRef = (0, _react.useRef)(null);
92
- var searchInputRef = (0, _react.useRef)(null);
93
- var listRef = (0, _react.useRef)(null);
89
+ var _usePickerRef = (0, _Picker.usePickerRef)(ref),
90
+ trigger = _usePickerRef.trigger,
91
+ root = _usePickerRef.root,
92
+ target = _usePickerRef.target,
93
+ overlay = _usePickerRef.overlay,
94
+ list = _usePickerRef.list,
95
+ searchInput = _usePickerRef.searchInput;
94
96
  var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
95
97
  locale = _useCustom.locale;
96
98
  var _useControlled = (0, _utils.useControlled)(valueProp, defaultValue || []),
@@ -100,18 +102,18 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
100
102
  data: data,
101
103
  valueKey: valueKey,
102
104
  target: function target() {
103
- return overlayRef.current;
105
+ return overlay.current;
104
106
  }
105
107
  }),
106
108
  focusItemValue = _useFocusItemValue.focusItemValue,
107
109
  setFocusItemValue = _useFocusItemValue.setFocusItemValue,
108
110
  onFocusItem = _useFocusItemValue.onKeyDown;
109
- var handleSearchCallback = (0, _react.useCallback)(function (searchKeyword, filteredData, event) {
111
+ var handleSearchCallback = (0, _utils.useEventCallback)(function (searchKeyword, filteredData, event) {
110
112
  var _filteredData$;
111
113
  // The first option after filtering is the focus.
112
114
  setFocusItemValue(filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]);
113
115
  onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);
114
- }, [setFocusItemValue, onSearch, valueKey]);
116
+ });
115
117
 
116
118
  // Use search keywords to filter options.
117
119
  var _useSearch = (0, _Picker.useSearch)(data, {
@@ -145,17 +147,17 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
145
147
  }
146
148
  setStickyItems(nextStickyItems);
147
149
  };
148
- var handleChangeValue = (0, _react.useCallback)(function (value, event) {
150
+ var handleChangeValue = (0, _utils.useEventCallback)(function (value, event) {
149
151
  onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
150
- }, [onChange]);
151
- var handleClean = (0, _react.useCallback)(function (event) {
152
+ });
153
+ var handleClean = (0, _utils.useEventCallback)(function (event) {
152
154
  if (disabled || !cleanable) {
153
155
  return;
154
156
  }
155
157
  setValue([]);
156
158
  onClean === null || onClean === void 0 ? void 0 : onClean(event);
157
159
  handleChangeValue([], event);
158
- }, [disabled, cleanable, setValue, onClean, handleChangeValue]);
160
+ });
159
161
  var handleMenuPressEnter = function handleMenuPressEnter(event) {
160
162
  var nextValue = (0, _clone.default)(value);
161
163
  if (!focusItemValue) {
@@ -179,10 +181,10 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
179
181
  };
180
182
  var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({
181
183
  toggle: !focusItemValue || !active,
182
- triggerRef: triggerRef,
183
- targetRef: targetRef,
184
- overlayRef: overlayRef,
185
- searchInputRef: searchInputRef,
184
+ trigger: trigger,
185
+ target: target,
186
+ overlay: overlay,
187
+ searchInput: searchInput,
186
188
  active: active,
187
189
  onExit: handleClean,
188
190
  onMenuKeyDown: onFocusItem,
@@ -192,10 +194,10 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
192
194
  setFocusItemValue(null);
193
195
  }
194
196
  }, rest));
195
- var handleSelect = (0, _react.useCallback)(function (nextItemValue, item, event) {
197
+ var handleSelect = (0, _utils.useEventCallback)(function (nextItemValue, item, event) {
196
198
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(nextItemValue, item, event);
197
- }, [onSelect]);
198
- var handleItemSelect = (0, _react.useCallback)(function (nextItemValue, item, event, checked) {
199
+ });
200
+ var handleItemSelect = (0, _utils.useEventCallback)(function (nextItemValue, item, event, checked) {
199
201
  var nextValue = (0, _clone.default)(value);
200
202
  if (checked) {
201
203
  nextValue.push(nextItemValue);
@@ -208,22 +210,16 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
208
210
  setFocusItemValue(nextItemValue);
209
211
  handleSelect(nextValue, item, event);
210
212
  handleChangeValue(nextValue, event);
211
- }, [value, setValue, handleSelect, handleChangeValue, setFocusItemValue]);
212
- var handleEntered = (0, _react.useCallback)(function () {
213
+ });
214
+ var handleEntered = (0, _utils.useEventCallback)(function () {
213
215
  setActive(true);
214
216
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
215
- }, [onOpen]);
216
- var handleExited = (0, _react.useCallback)(function () {
217
+ });
218
+ var handleExited = (0, _utils.useEventCallback)(function () {
217
219
  resetSearch();
218
220
  setFocusItemValue(null);
219
221
  setActive(false);
220
222
  onClose === null || onClose === void 0 ? void 0 : onClose();
221
- }, [onClose, setFocusItemValue, resetSearch]);
222
- (0, _Picker.usePublicMethods)(ref, {
223
- triggerRef: triggerRef,
224
- overlayRef: overlayRef,
225
- targetRef: targetRef,
226
- listRef: listRef
227
223
  });
228
224
  var selectedItems = data.filter(function (item) {
229
225
  return value === null || value === void 0 ? void 0 : value.some(function (val) {
@@ -256,7 +252,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
256
252
  hasValue = false;
257
253
  }
258
254
  }
259
- var renderDropdownMenu = function renderDropdownMenu(positionProps, speakerRef) {
255
+ var renderPopup = function renderPopup(positionProps, speakerRef) {
260
256
  var left = positionProps.left,
261
257
  top = positionProps.top,
262
258
  className = positionProps.className;
@@ -284,10 +280,9 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
284
280
  } else if (typeof sort === 'function') {
285
281
  items = items.sort(sort(false));
286
282
  }
287
- var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {
288
- id: id ? id + "-listbox" : undefined,
283
+ var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/_react.default.createElement(_Picker.Listbox, {
289
284
  listProps: listProps,
290
- listRef: listRef,
285
+ listRef: list,
291
286
  disabledItemValues: disabledItemValues,
292
287
  valueKey: valueKey,
293
288
  labelKey: labelKey,
@@ -295,7 +290,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
295
290
  renderMenuItem: renderMenuItem,
296
291
  maxHeight: menuMaxHeight,
297
292
  classPrefix: 'picker-check-menu',
298
- dropdownMenuItemAs: _Picker.DropdownMenuCheckItem,
293
+ listItemAs: _Picker.ListCheckItem,
299
294
  activeItemValues: value,
300
295
  focusItemValue: focusItemValue,
301
296
  data: [].concat(filteredStickyItems, items)
@@ -309,18 +304,18 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
309
304
  }) : /*#__PURE__*/_react.default.createElement("div", {
310
305
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["none"])))
311
306
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
312
- return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
313
- ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
307
+ return /*#__PURE__*/_react.default.createElement(_Picker.PickerPopup, {
308
+ ref: (0, _utils.mergeRefs)(overlay, speakerRef),
314
309
  autoWidth: menuAutoWidth,
315
310
  className: classes,
316
311
  style: styles,
317
312
  onKeyDown: onPickerKeyDown,
318
- target: triggerRef
313
+ target: trigger
319
314
  }, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
320
315
  placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
321
316
  onChange: handleSearch,
322
317
  value: searchKeyword,
323
- inputRef: searchInputRef
318
+ inputRef: searchInput
324
319
  }), renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
325
320
  };
326
321
  var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {
@@ -334,19 +329,21 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
334
329
  classes = _usePickerClassName[0],
335
330
  usedClassNamePropKeys = _usePickerClassName[1];
336
331
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
332
+ id: id,
333
+ multiple: true,
337
334
  pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
338
- ref: triggerRef,
335
+ ref: trigger,
339
336
  placement: placement,
340
337
  onEnter: (0, _utils.createChainedFunction)(initStickyItems, onEnter),
341
338
  onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
342
339
  onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
343
- speaker: renderDropdownMenu
340
+ speaker: renderPopup
344
341
  }, /*#__PURE__*/_react.default.createElement(Component, {
345
342
  className: classes,
346
- style: style
343
+ style: style,
344
+ ref: root
347
345
  }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
348
- id: id,
349
- ref: targetRef,
346
+ ref: target,
350
347
  appearance: appearance,
351
348
  disabled: disabled,
352
349
  onClean: handleClean,
@@ -356,7 +353,8 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
356
353
  hasValue: hasValue,
357
354
  active: active,
358
355
  placement: placement,
359
- inputValue: value
356
+ inputValue: value,
357
+ focusItemValue: focusItemValue
360
358
  }), selectedElement || (locale === null || locale === void 0 ? void 0 : locale.placeholder))));
361
359
  });
362
360
  CheckPicker.displayName = 'CheckPicker';
@@ -21,8 +21,8 @@ export interface CheckTreeNodeProps extends WithAsProps {
21
21
  allUncheckable?: boolean;
22
22
  onExpand?: (nodeData: any) => void;
23
23
  onSelect?: (nodeData: any, event: React.SyntheticEvent) => void;
24
- onRenderTreeIcon?: (nodeData: any, expandIcon?: React.ReactNode) => React.ReactNode;
25
- onRenderTreeNode?: (nodeData: any) => React.ReactNode;
24
+ renderTreeIcon?: (nodeData: any, expandIcon?: React.ReactNode) => React.ReactNode;
25
+ renderTreeNode?: (nodeData: any) => React.ReactNode;
26
26
  }
27
27
  declare const CheckTreeNode: RsRefForwardingComponent<'div', CheckTreeNodeProps>;
28
28
  export default CheckTreeNode;