rsuite 5.48.1 → 5.50.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 (203) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/Cascader/styles/index.less +5 -4
  3. package/DatePicker/styles/index.less +18 -11
  4. package/DateRangeInput/package.json +7 -0
  5. package/DateRangePicker/styles/index.less +20 -0
  6. package/Dropdown/styles/index.less +5 -4
  7. package/Dropdown/styles/mixin.less +0 -11
  8. package/InputGroup/styles/index.less +1 -0
  9. package/Picker/styles/index.less +51 -24
  10. package/Picker/styles/mixin.less +17 -13
  11. package/README.md +34 -24
  12. package/Sidenav/styles/index.less +2 -0
  13. package/TagInput/styles/index.less +1 -1
  14. package/cjs/AutoComplete/AutoComplete.js +25 -26
  15. package/cjs/Calendar/Calendar.d.ts +5 -1
  16. package/cjs/Calendar/CalendarContainer.d.ts +7 -1
  17. package/cjs/Calendar/CalendarContainer.js +11 -4
  18. package/cjs/Calendar/CalendarHeader.js +2 -0
  19. package/cjs/Calendar/MonthDropdown.js +7 -2
  20. package/cjs/Calendar/MonthDropdownItem.js +2 -2
  21. package/cjs/Calendar/Table.js +6 -1
  22. package/cjs/Calendar/TimeDropdown.js +17 -10
  23. package/cjs/Calendar/types.d.ts +1 -0
  24. package/cjs/Cascader/Cascader.js +46 -48
  25. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  26. package/cjs/CheckPicker/CheckPicker.js +33 -36
  27. package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
  28. package/cjs/CustomProvider/CustomProvider.d.ts +13 -0
  29. package/cjs/CustomProvider/CustomProvider.js +2 -2
  30. package/cjs/DateInput/DateField.d.ts +9 -31
  31. package/cjs/DateInput/DateField.js +61 -12
  32. package/cjs/DateInput/DateInput.d.ts +7 -2
  33. package/cjs/DateInput/DateInput.js +74 -92
  34. package/cjs/DateInput/index.d.ts +4 -0
  35. package/cjs/DateInput/index.js +19 -1
  36. package/cjs/DateInput/useDateInputState.d.ts +7 -31
  37. package/cjs/DateInput/useDateInputState.js +39 -15
  38. package/cjs/DateInput/useIsFocused.d.ts +7 -0
  39. package/cjs/DateInput/useIsFocused.js +28 -0
  40. package/cjs/DateInput/useKeyboardInputEvent.d.ts +10 -0
  41. package/cjs/DateInput/useKeyboardInputEvent.js +44 -0
  42. package/cjs/DateInput/utils.d.ts +23 -1
  43. package/cjs/DateInput/utils.js +155 -51
  44. package/cjs/DatePicker/DatePicker.d.ts +25 -8
  45. package/cjs/DatePicker/DatePicker.js +208 -241
  46. package/cjs/DatePicker/Toolbar.js +5 -22
  47. package/cjs/DatePicker/utils.d.ts +5 -1
  48. package/cjs/DatePicker/utils.js +17 -1
  49. package/cjs/DateRangeInput/DateRangeInput.d.ts +29 -0
  50. package/cjs/DateRangeInput/DateRangeInput.js +244 -0
  51. package/cjs/DateRangeInput/index.d.ts +3 -0
  52. package/cjs/DateRangeInput/index.js +9 -0
  53. package/cjs/DateRangeInput/utils.d.ts +61 -0
  54. package/cjs/DateRangeInput/utils.js +146 -0
  55. package/cjs/DateRangePicker/Calendar.js +24 -23
  56. package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
  57. package/cjs/DateRangePicker/DateRangePicker.js +251 -203
  58. package/cjs/DateRangePicker/types.d.ts +11 -3
  59. package/cjs/DateRangePicker/utils.d.ts +2 -1
  60. package/cjs/DateRangePicker/utils.js +7 -5
  61. package/cjs/FormControl/FormControl.d.ts +11 -1
  62. package/cjs/FormControl/FormControl.js +6 -5
  63. package/cjs/Input/Input.d.ts +11 -0
  64. package/cjs/Input/Input.js +11 -8
  65. package/cjs/InputPicker/InputPicker.js +62 -63
  66. package/cjs/MultiCascader/MultiCascader.js +40 -42
  67. package/cjs/Overlay/OverlayTrigger.d.ts +3 -0
  68. package/cjs/Overlay/OverlayTrigger.js +5 -0
  69. package/cjs/Picker/PickerIndicator.d.ts +10 -0
  70. package/cjs/Picker/PickerIndicator.js +49 -0
  71. package/cjs/Picker/PickerLabel.d.ts +9 -0
  72. package/cjs/Picker/PickerLabel.js +23 -0
  73. package/cjs/Picker/PickerToggle.d.ts +17 -22
  74. package/cjs/Picker/PickerToggle.js +52 -177
  75. package/cjs/Picker/index.d.ts +3 -0
  76. package/cjs/Picker/index.js +10 -1
  77. package/cjs/Picker/usePickerRef.d.ts +19 -0
  78. package/cjs/Picker/usePickerRef.js +88 -0
  79. package/cjs/Picker/utils.d.ts +5 -9
  80. package/cjs/Picker/utils.js +22 -89
  81. package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
  82. package/cjs/SelectPicker/SelectPicker.js +39 -42
  83. package/cjs/TreePicker/TreePicker.js +72 -75
  84. package/cjs/index.d.ts +2 -0
  85. package/cjs/index.js +3 -1
  86. package/cjs/locales/index.d.ts +2 -2
  87. package/cjs/utils/constants.d.ts +2 -1
  88. package/cjs/utils/constants.js +1 -0
  89. package/cjs/utils/dateUtils.d.ts +0 -1
  90. package/cjs/utils/dateUtils.js +0 -6
  91. package/cjs/utils/getStringLength.d.ts +2 -0
  92. package/cjs/utils/getStringLength.js +18 -0
  93. package/cjs/utils/index.d.ts +3 -0
  94. package/cjs/utils/index.js +11 -2
  95. package/cjs/utils/useCustom.js +1 -1
  96. package/cjs/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  97. package/cjs/utils/useIsomorphicLayoutEffect.js +9 -0
  98. package/dist/rsuite-no-reset-rtl.css +140 -207
  99. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  100. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  101. package/dist/rsuite-no-reset.css +140 -207
  102. package/dist/rsuite-no-reset.min.css +1 -1
  103. package/dist/rsuite-no-reset.min.css.map +1 -1
  104. package/dist/rsuite-rtl.css +140 -75
  105. package/dist/rsuite-rtl.min.css +1 -1
  106. package/dist/rsuite-rtl.min.css.map +1 -1
  107. package/dist/rsuite.css +140 -75
  108. package/dist/rsuite.js +4833 -258
  109. package/dist/rsuite.js.map +1 -1
  110. package/dist/rsuite.min.css +1 -1
  111. package/dist/rsuite.min.css.map +1 -1
  112. package/dist/rsuite.min.js +1 -1
  113. package/dist/rsuite.min.js.map +1 -1
  114. package/esm/AutoComplete/AutoComplete.js +28 -29
  115. package/esm/Calendar/Calendar.d.ts +5 -1
  116. package/esm/Calendar/CalendarContainer.d.ts +7 -1
  117. package/esm/Calendar/CalendarContainer.js +12 -5
  118. package/esm/Calendar/CalendarHeader.js +2 -0
  119. package/esm/Calendar/MonthDropdown.js +7 -2
  120. package/esm/Calendar/MonthDropdownItem.js +2 -2
  121. package/esm/Calendar/Table.js +6 -1
  122. package/esm/Calendar/TimeDropdown.js +17 -10
  123. package/esm/Calendar/types.d.ts +1 -0
  124. package/esm/Cascader/Cascader.js +49 -51
  125. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  126. package/esm/CheckPicker/CheckPicker.js +36 -39
  127. package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
  128. package/esm/CustomProvider/CustomProvider.d.ts +13 -0
  129. package/esm/CustomProvider/CustomProvider.js +3 -3
  130. package/esm/DateInput/DateField.d.ts +9 -31
  131. package/esm/DateInput/DateField.js +61 -12
  132. package/esm/DateInput/DateInput.d.ts +7 -2
  133. package/esm/DateInput/DateInput.js +77 -95
  134. package/esm/DateInput/index.d.ts +4 -0
  135. package/esm/DateInput/index.js +4 -0
  136. package/esm/DateInput/useDateInputState.d.ts +7 -31
  137. package/esm/DateInput/useDateInputState.js +41 -18
  138. package/esm/DateInput/useIsFocused.d.ts +7 -0
  139. package/esm/DateInput/useIsFocused.js +22 -0
  140. package/esm/DateInput/useKeyboardInputEvent.d.ts +10 -0
  141. package/esm/DateInput/useKeyboardInputEvent.js +38 -0
  142. package/esm/DateInput/utils.d.ts +23 -1
  143. package/esm/DateInput/utils.js +150 -51
  144. package/esm/DatePicker/DatePicker.d.ts +25 -8
  145. package/esm/DatePicker/DatePicker.js +211 -244
  146. package/esm/DatePicker/Toolbar.js +5 -22
  147. package/esm/DatePicker/utils.d.ts +5 -1
  148. package/esm/DatePicker/utils.js +16 -1
  149. package/esm/DateRangeInput/DateRangeInput.d.ts +29 -0
  150. package/esm/DateRangeInput/DateRangeInput.js +237 -0
  151. package/esm/DateRangeInput/index.d.ts +3 -0
  152. package/esm/DateRangeInput/index.js +3 -0
  153. package/esm/DateRangeInput/utils.d.ts +61 -0
  154. package/esm/DateRangeInput/utils.js +137 -0
  155. package/esm/DateRangePicker/Calendar.js +25 -23
  156. package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
  157. package/esm/DateRangePicker/DateRangePicker.js +253 -205
  158. package/esm/DateRangePicker/types.d.ts +11 -3
  159. package/esm/DateRangePicker/utils.d.ts +2 -1
  160. package/esm/DateRangePicker/utils.js +7 -5
  161. package/esm/FormControl/FormControl.d.ts +11 -1
  162. package/esm/FormControl/FormControl.js +4 -3
  163. package/esm/Input/Input.d.ts +11 -0
  164. package/esm/Input/Input.js +12 -9
  165. package/esm/InputPicker/InputPicker.js +64 -65
  166. package/esm/MultiCascader/MultiCascader.js +43 -45
  167. package/esm/Overlay/OverlayTrigger.d.ts +3 -0
  168. package/esm/Overlay/OverlayTrigger.js +5 -0
  169. package/esm/Picker/PickerIndicator.d.ts +10 -0
  170. package/esm/Picker/PickerIndicator.js +43 -0
  171. package/esm/Picker/PickerLabel.d.ts +9 -0
  172. package/esm/Picker/PickerLabel.js +17 -0
  173. package/esm/Picker/PickerToggle.d.ts +17 -22
  174. package/esm/Picker/PickerToggle.js +54 -179
  175. package/esm/Picker/index.d.ts +3 -0
  176. package/esm/Picker/index.js +3 -0
  177. package/esm/Picker/usePickerRef.d.ts +19 -0
  178. package/esm/Picker/usePickerRef.js +82 -0
  179. package/esm/Picker/utils.d.ts +5 -9
  180. package/esm/Picker/utils.js +24 -90
  181. package/esm/SelectPicker/SelectPicker.d.ts +2 -2
  182. package/esm/SelectPicker/SelectPicker.js +42 -45
  183. package/esm/TreePicker/TreePicker.js +75 -78
  184. package/esm/index.d.ts +2 -0
  185. package/esm/index.js +1 -0
  186. package/esm/locales/index.d.ts +2 -2
  187. package/esm/utils/constants.d.ts +2 -1
  188. package/esm/utils/constants.js +1 -0
  189. package/esm/utils/dateUtils.d.ts +0 -1
  190. package/esm/utils/dateUtils.js +0 -5
  191. package/esm/utils/getStringLength.d.ts +2 -0
  192. package/esm/utils/getStringLength.js +13 -0
  193. package/esm/utils/index.d.ts +3 -0
  194. package/esm/utils/index.js +4 -1
  195. package/esm/utils/useCustom.js +2 -2
  196. package/esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
  197. package/esm/utils/useIsomorphicLayoutEffect.js +4 -0
  198. package/package.json +1 -1
  199. package/styles/color-modes/dark.less +1 -0
  200. package/styles/color-modes/high-contrast.less +1 -0
  201. package/styles/color-modes/light.less +1 -0
  202. package/styles/mixins/combobox.less +10 -0
  203. package/styles/normalize.less +230 -231
@@ -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 { ListProps } from '../Windowing';
@@ -49,7 +49,7 @@ export interface SelectPickerProps<T> extends Omit<FormControlPickerProps<T, Pic
49
49
  }
50
50
  export interface SelectPickerComponent {
51
51
  <T>(props: SelectPickerProps<T> & {
52
- ref?: Ref<PickerHandle>;
52
+ ref?: React.Ref<PickerHandle>;
53
53
  }): JSX.Element | null;
54
54
  displayName?: string;
55
55
  propTypes?: React.WeakValidationMap<SelectPickerProps<any>>;
@@ -3,16 +3,16 @@ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTempla
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
5
  var _templateObject;
6
- import React, { useRef, useState, useCallback } from 'react';
6
+ import React, { useState } from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import pick from 'lodash/pick';
9
9
  import isUndefined from 'lodash/isUndefined';
10
10
  import isNil from 'lodash/isNil';
11
11
  import isFunction from 'lodash/isFunction';
12
12
  import omit from 'lodash/omit';
13
- import { createChainedFunction, useCustom, useClassNames, useControlled, mergeRefs, shallowEqual } from '../utils';
13
+ import { createChainedFunction, useCustom, useClassNames, useControlled, useEventCallback, mergeRefs, shallowEqual } from '../utils';
14
14
  import { getDataGroupBy } from '../utils/getDataGroupBy';
15
- import { DropdownMenu, DropdownMenuItem, PickerToggle, PickerToggleTrigger, PickerOverlay, SearchBar, useFocusItemValue, usePickerClassName, useSearch, usePublicMethods, useToggleKeyDownEvent, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
15
+ import { DropdownMenu, DropdownMenuItem, PickerToggle, PickerToggleTrigger, PickerOverlay, SearchBar, useFocusItemValue, usePickerClassName, useSearch, useToggleKeyDownEvent, usePickerRef, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
16
16
  var emptyArray = [];
17
17
  /**
18
18
  * The `SelectPicker` component is used to select an item from a list of data.
@@ -73,11 +73,13 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
73
73
  renderMenuItem = props.renderMenuItem,
74
74
  renderExtraFooter = props.renderExtraFooter,
75
75
  rest = _objectWithoutPropertiesLoose(props, ["as", "appearance", "data", "valueKey", "labelKey", "value", "classPrefix", "placeholder", "defaultValue", "disabled", "cleanable", "placement", "menuClassName", "menuAutoWidth", "menuMaxHeight", "menuStyle", "groupBy", "locale", "toggleAs", "style", "searchable", "disabledItemValues", "virtualized", "listProps", "id", "onGroupTitleClick", "searchBy", "onEntered", "onExited", "onClean", "onChange", "onSelect", "onSearch", "onClose", "onOpen", "sort", "renderValue", "renderMenu", "renderMenuGroup", "renderMenuItem", "renderExtraFooter"]);
76
- var triggerRef = useRef(null);
77
- var targetRef = useRef(null);
78
- var overlayRef = useRef(null);
79
- var searchInputRef = useRef(null);
80
- var listRef = useRef(null);
76
+ var _usePickerRef = usePickerRef(ref),
77
+ trigger = _usePickerRef.trigger,
78
+ root = _usePickerRef.root,
79
+ target = _usePickerRef.target,
80
+ overlay = _usePickerRef.overlay,
81
+ list = _usePickerRef.list,
82
+ searchInput = _usePickerRef.searchInput;
81
83
  var _useCustom = useCustom('Picker', overrideLocale),
82
84
  locale = _useCustom.locale;
83
85
  var _ref = useControlled(valueProp, defaultValue),
@@ -87,7 +89,7 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
87
89
  data: data,
88
90
  valueKey: valueKey,
89
91
  target: function target() {
90
- return overlayRef.current;
92
+ return overlay.current;
91
93
  }
92
94
  }),
93
95
  focusItemValue = _useFocusItemValue.focusItemValue,
@@ -110,19 +112,19 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
110
112
  var _useState = useState(false),
111
113
  active = _useState[0],
112
114
  setActive = _useState[1];
113
- var handleClose = useCallback(function () {
114
- var _triggerRef$current, _triggerRef$current$c;
115
- (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);
116
- }, []);
117
- var handleSelect = useCallback(function (value, item, event) {
118
- var _targetRef$current;
115
+ var handleClose = useEventCallback(function () {
116
+ var _trigger$current, _trigger$current$clos;
117
+ (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 ? void 0 : _trigger$current$clos.call(_trigger$current);
118
+ });
119
+ var handleSelect = useEventCallback(function (value, item, event) {
120
+ var _target$current;
119
121
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);
120
- (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();
121
- }, [onSelect]);
122
- var handleChangeValue = useCallback(function (value, event) {
122
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
123
+ });
124
+ var handleChangeValue = useEventCallback(function (value, event) {
123
125
  onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
124
- }, [onChange]);
125
- var handleMenuPressEnter = useCallback(function (event) {
126
+ });
127
+ var handleMenuPressEnter = useEventCallback(function (event) {
126
128
  if (!focusItemValue) {
127
129
  return;
128
130
  }
@@ -135,28 +137,28 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
135
137
  handleSelect(focusItemValue, focusItem, event);
136
138
  handleChangeValue(focusItemValue, event);
137
139
  handleClose();
138
- }, [data, focusItemValue, handleChangeValue, handleClose, handleSelect, setValue, valueKey]);
139
- var handleItemSelect = useCallback(function (value, item, event) {
140
+ });
141
+ var handleItemSelect = useEventCallback(function (value, item, event) {
140
142
  setValue(value);
141
143
  setFocusItemValue(value);
142
144
  handleSelect(value, item, event);
143
145
  handleChangeValue(value, event);
144
146
  handleClose();
145
- }, [setValue, setFocusItemValue, handleSelect, handleChangeValue, handleClose]);
146
- var handleClean = useCallback(function (event) {
147
+ });
148
+ var handleClean = useEventCallback(function (event) {
147
149
  if (disabled || !cleanable) {
148
150
  return;
149
151
  }
150
152
  setValue(null);
151
153
  setFocusItemValue(value);
152
154
  handleChangeValue(null, event);
153
- }, [value, disabled, cleanable, setValue, handleChangeValue, setFocusItemValue]);
155
+ });
154
156
  var onPickerKeyDown = useToggleKeyDownEvent(_extends({
155
157
  toggle: !focusItemValue || !active,
156
- triggerRef: triggerRef,
157
- targetRef: targetRef,
158
- overlayRef: overlayRef,
159
- searchInputRef: searchInputRef,
158
+ trigger: trigger,
159
+ target: target,
160
+ overlay: overlay,
161
+ searchInput: searchInput,
160
162
  active: active,
161
163
  onExit: handleClean,
162
164
  onMenuKeyDown: onFocusItem,
@@ -165,22 +167,16 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
165
167
  setFocusItemValue(null);
166
168
  }
167
169
  }, rest));
168
- var handleExited = useCallback(function () {
170
+ var handleExited = useEventCallback(function () {
169
171
  resetSearch();
170
172
  setActive(false);
171
173
  onSearch === null || onSearch === void 0 ? void 0 : onSearch('');
172
174
  onClose === null || onClose === void 0 ? void 0 : onClose();
173
- }, [onClose, resetSearch, onSearch]);
174
- var handleEntered = useCallback(function () {
175
+ });
176
+ var handleEntered = useEventCallback(function () {
175
177
  setActive(true);
176
178
  setFocusItemValue(value);
177
179
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
178
- }, [onOpen, setFocusItemValue, value]);
179
- usePublicMethods(ref, {
180
- triggerRef: triggerRef,
181
- overlayRef: overlayRef,
182
- targetRef: targetRef,
183
- listRef: listRef
184
180
  });
185
181
 
186
182
  // Find active `MenuItem` by `value`
@@ -227,7 +223,7 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
227
223
  var menu = items.length ? /*#__PURE__*/React.createElement(DropdownMenu, {
228
224
  id: id ? id + "-listbox" : undefined,
229
225
  listProps: listProps,
230
- listRef: listRef,
226
+ listRef: list,
231
227
  disabledItemValues: disabledItemValues,
232
228
  valueKey: valueKey,
233
229
  labelKey: labelKey,
@@ -252,17 +248,17 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
252
248
  className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["none"])))
253
249
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
254
250
  return /*#__PURE__*/React.createElement(PickerOverlay, {
255
- ref: mergeRefs(overlayRef, speakerRef),
251
+ ref: mergeRefs(overlay, speakerRef),
256
252
  autoWidth: menuAutoWidth,
257
253
  className: classes,
258
254
  style: styles,
259
255
  onKeyDown: onPickerKeyDown,
260
- target: triggerRef
256
+ target: trigger
261
257
  }, searchable && /*#__PURE__*/React.createElement(SearchBar, {
262
258
  placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
263
259
  onChange: handleSearch,
264
260
  value: searchKeyword,
265
- inputRef: searchInputRef
261
+ inputRef: searchInput
266
262
  }), renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
267
263
  };
268
264
  var _usePickerClassName = usePickerClassName(_extends({}, props, {
@@ -276,17 +272,18 @@ var SelectPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
276
272
  usedClassNamePropKeys = _usePickerClassName[1];
277
273
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
278
274
  pickerProps: pick(props, pickTriggerPropKeys),
279
- ref: triggerRef,
275
+ ref: trigger,
280
276
  placement: placement,
281
277
  onEntered: createChainedFunction(handleEntered, onEntered),
282
278
  onExited: createChainedFunction(handleExited, onExited),
283
279
  speaker: renderDropdownMenu
284
280
  }, /*#__PURE__*/React.createElement(Component, {
285
281
  className: classes,
286
- style: style
282
+ style: style,
283
+ ref: root
287
284
  }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
288
285
  id: id,
289
- ref: targetRef,
286
+ ref: target,
290
287
  appearance: appearance,
291
288
  onClean: createChainedFunction(handleClean, onClean),
292
289
  onKeyDown: onPickerKeyDown,
@@ -6,14 +6,14 @@ import _isNil from "lodash/isNil";
6
6
  import _isUndefined from "lodash/isUndefined";
7
7
  import _omit from "lodash/omit";
8
8
  import _pick from "lodash/pick";
9
- import React, { useState, useRef, useEffect, useCallback, useContext, useMemo } from 'react';
9
+ import React, { useState, useEffect, useContext, useMemo } from 'react';
10
10
  import PropTypes from 'prop-types';
11
11
  import { List, AutoSizer } from '../Windowing';
12
12
  import TreeNode from './TreeNode';
13
13
  import { createDragPreview, getKeyParentMap, getPathTowardsItem, getTreeNodeIndent, removeDragPreview, stringifyTreeNodeLabel } from '../utils/treeUtils';
14
- import { createChainedFunction, useClassNames, useCustom, useControlled, TREE_NODE_DROP_POSITION, KEY_VALUES, mergeRefs, shallowEqual } from '../utils';
14
+ import { createChainedFunction, useClassNames, useCustom, useControlled, useEventCallback, TREE_NODE_DROP_POSITION, KEY_VALUES, mergeRefs, shallowEqual } from '../utils';
15
15
  import { getExpandWhenSearching, hasVisibleChildren, getDragNodeKeys, calDropNodePosition, createUpdateTreeDataFunction, useTreeDrag, useFlattenTreeData, getTreeActiveNode, getDefaultExpandItemValues, useTreeNodeRefs, useTreeSearch, focusPreviousItem, getFocusableItems, focusNextItem, getActiveItem, toggleExpand, useGetTreeNodeChildren, focusToActiveTreeNode, leftArrowHandler, focusTreeNode, rightArrowHandler, isSearching } from '../utils/treeUtils';
16
- import { PickerToggle, PickerOverlay, SearchBar, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, onMenuKeyDown as _onMenuKeyDown, usePublicMethods, listPickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, useToggleKeyDownEvent } from '../Picker';
16
+ import { PickerToggle, PickerOverlay, SearchBar, PickerToggleTrigger, createConcatChildrenFunction, usePickerClassName, usePickerRef, onMenuKeyDown as _onMenuKeyDown, listPickerPropTypes, pickTriggerPropKeys, omitTriggerPropKeys, useToggleKeyDownEvent } from '../Picker';
17
17
  import TreeContext from '../Tree/TreeContext';
18
18
  var emptyArray = [];
19
19
  var itemSize = function itemSize() {
@@ -101,17 +101,21 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
101
101
  renderMenu = props.renderMenu,
102
102
  renderValue = props.renderValue,
103
103
  rest = _objectWithoutPropertiesLoose(props, ["as", "data", "appearance", "style", "showIndentLine", "value", "locale", "height", "menuMaxHeight", "menuStyle", "className", "disabled", "placement", "cleanable", "searchable", "virtualized", "classPrefix", "defaultValue", "placeholder", "searchKeyword", "menuClassName", "menuAutoWidth", "searchBy", "toggleAs", "labelKey", "valueKey", "childrenKey", "draggable", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "id", "listProps", "getChildren", "renderTreeIcon", "renderTreeNode", "onExit", "onExited", "onClean", "onOpen", "onSearch", "onSelect", "onSelectItem", "onChange", "onEntered", "onClose", "onDragEnd", "onDragStart", "onDragEnter", "onDragLeave", "onDragOver", "onDrop", "onExpand", "renderExtraFooter", "renderMenu", "renderValue"]);
104
- var triggerRef = useRef(null);
105
- var targetRef = useRef(null);
106
- var listRef = useRef(null);
107
- var overlayRef = useRef(null);
108
- var searchInputRef = useRef(null);
109
- var treeViewRef = useRef(null);
110
104
  var _useCustom = useCustom('Picker', overrideLocale),
111
105
  rtl = _useCustom.rtl,
112
106
  locale = _useCustom.locale;
113
107
  var _useContext = useContext(TreeContext),
114
108
  inline = _useContext.inline;
109
+ var _usePickerRef = usePickerRef(ref, {
110
+ inline: inline
111
+ }),
112
+ trigger = _usePickerRef.trigger,
113
+ root = _usePickerRef.root,
114
+ target = _usePickerRef.target,
115
+ overlay = _usePickerRef.overlay,
116
+ list = _usePickerRef.list,
117
+ searchInput = _usePickerRef.searchInput,
118
+ treeView = _usePickerRef.treeView;
115
119
  var _useControlled = useControlled(controlledValue, defaultValue),
116
120
  value = _useControlled[0],
117
121
  setValue = _useControlled[1],
@@ -182,7 +186,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
182
186
  treeNodesRefs = _useTreeNodeRefs.treeNodesRefs,
183
187
  saveTreeNodeRef = _useTreeNodeRefs.saveTreeNodeRef;
184
188
  var activeNode = getTreeActiveNode(flattenNodes, value, valueKey);
185
- var getFormattedNodes = useCallback(function (render) {
189
+ var getFormattedNodes = function getFormattedNodes(render) {
186
190
  if (virtualized) {
187
191
  return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
188
192
  searchKeyword: searchKeywordState
@@ -193,20 +197,20 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
193
197
  return filteredData.map(function (dataItem, index) {
194
198
  return render === null || render === void 0 ? void 0 : render(dataItem, index, 1);
195
199
  });
196
- }, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized]);
197
- var focusActiveNode = useCallback(function () {
198
- if (listRef.current) {
200
+ };
201
+ var focusActiveNode = function focusActiveNode() {
202
+ if (list.current) {
199
203
  focusToActiveTreeNode({
200
- list: listRef.current,
204
+ list: list.current,
201
205
  valueKey: valueKey,
202
206
  selector: "." + treePrefix('node-active'),
203
207
  activeNode: activeNode,
204
208
  virtualized: virtualized,
205
- container: treeViewRef.current,
209
+ container: treeView.current,
206
210
  formattedNodes: getFormattedNodes()
207
211
  });
208
212
  }
209
- }, [treePrefix, activeNode, getFormattedNodes, valueKey, virtualized]);
213
+ };
210
214
  useEffect(function () {
211
215
  setFilteredData(data, searchKeywordState);
212
216
  setTreeData(data);
@@ -222,7 +226,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
222
226
  useEffect(function () {
223
227
  setSearchKeyword(searchKeyword !== null && searchKeyword !== void 0 ? searchKeyword : '');
224
228
  }, [searchKeyword, setSearchKeyword]);
225
- var getDropData = useCallback(function (nodeData) {
229
+ var getDropData = function getDropData(nodeData) {
226
230
  var options = {
227
231
  valueKey: valueKey,
228
232
  childrenKey: childrenKey
@@ -240,7 +244,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
240
244
  dropNodePosition: dropNodePosition
241
245
  }, options)
242
246
  };
243
- }, [dragNode, valueKey, childrenKey, dropNodePosition]);
247
+ };
244
248
  var getTreeNodeProps = function getTreeNodeProps(node, layer, index) {
245
249
  var draggingNode = dragNode !== null && dragNode !== void 0 ? dragNode : {};
246
250
  return {
@@ -289,8 +293,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
289
293
  return node[childrenKey];
290
294
  });
291
295
  }, [childrenKey, data, valueKey]);
292
- var handleSelect = useCallback(function (nodeData, event) {
293
- var _targetRef$current, _triggerRef$current, _triggerRef$current$c;
296
+ var handleSelect = useEventCallback(function (nodeData, event) {
297
+ var _target$current, _trigger$current, _trigger$current$clos;
294
298
  if (!nodeData) {
295
299
  return;
296
300
  }
@@ -304,10 +308,10 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
304
308
  onSelectItem === null || onSelectItem === void 0 ? void 0 : onSelectItem(nodeData, getPathTowardsItem(nodeData, function (item) {
305
309
  return itemParentMap.get(item[valueKey]);
306
310
  }));
307
- (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();
308
- (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$c = _triggerRef$current.close) === null || _triggerRef$current$c === void 0 ? void 0 : _triggerRef$current$c.call(_triggerRef$current);
309
- }, [valueKey, isControlled, onChange, onSelect, onSelectItem, setValue, itemParentMap]);
310
- var handleExpand = useCallback(function (node) {
311
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
312
+ (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$clos = _trigger$current.close) === null || _trigger$current$clos === void 0 ? void 0 : _trigger$current$clos.call(_trigger$current);
313
+ });
314
+ var handleExpand = useEventCallback(function (node) {
311
315
  var nextExpandItemValues = toggleExpand({
312
316
  node: node,
313
317
  isExpand: !node.expand,
@@ -322,8 +326,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
322
326
  if (_isFunction(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {
323
327
  loadChildren(node, getChildren);
324
328
  }
325
- }, [valueKey, childrenKey, expandItemValues, getChildren, onExpand, setExpandItemValues, loadChildren]);
326
- var handleDragStart = useCallback(function (nodeData, event) {
329
+ });
330
+ var handleDragStart = useEventCallback(function (nodeData, event) {
327
331
  if (draggable) {
328
332
  var _event$dataTransfer;
329
333
  var dragMoverNode = createDragPreview(stringifyTreeNodeLabel(nodeData[labelKey]), treePrefix('drag-preview'));
@@ -332,8 +336,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
332
336
  setDragNode(flattenNodes[nodeData.refKey]);
333
337
  onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(nodeData, event);
334
338
  }
335
- }, [draggable, labelKey, treePrefix, setDragNodeKeys, childrenKey, valueKey, setDragNode, flattenNodes, onDragStart]);
336
- var handleDragEnter = useCallback(function (nodeData, event) {
339
+ });
340
+ var handleDragEnter = useEventCallback(function (nodeData, event) {
337
341
  if (dragNodeKeys.some(function (d) {
338
342
  return shallowEqual(d, nodeData[valueKey]);
339
343
  })) {
@@ -344,8 +348,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
344
348
  setDropNodePosition(calDropNodePosition(event, treeNodesRefs[nodeData.refKey]));
345
349
  }
346
350
  onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(nodeData, event);
347
- }, [dragNode, treeNodesRefs, dragNodeKeys, onDragEnter, setDragOverNodeKey, setDropNodePosition, valueKey]);
348
- var handleDragOver = useCallback(function (nodeData, event) {
351
+ });
352
+ var handleDragOver = useEventCallback(function (nodeData, event) {
349
353
  if (dragNodeKeys.some(function (d) {
350
354
  return shallowEqual(d, nodeData[valueKey]);
351
355
  })) {
@@ -358,18 +362,18 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
358
362
  setDropNodePosition(lastDropNodePosition);
359
363
  }
360
364
  onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(nodeData, event);
361
- }, [dragNode, dragNodeKeys, dragOverNodeKey, dropNodePosition, onDragOver, setDropNodePosition, treeNodesRefs, valueKey]);
362
- var handleDragLeave = useCallback(function (nodeData, event) {
365
+ });
366
+ var handleDragLeave = useEventCallback(function (nodeData, event) {
363
367
  onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(nodeData, event);
364
- }, [onDragLeave]);
365
- var handleDragEnd = useCallback(function (nodeData, event) {
368
+ });
369
+ var handleDragEnd = useEventCallback(function (nodeData, event) {
366
370
  removeDragPreview();
367
371
  setDragNode(null);
368
372
  setDragNodeKeys([]);
369
373
  setDragOverNodeKey(null);
370
374
  onDragEnd === null || onDragEnd === void 0 ? void 0 : onDragEnd(nodeData, event);
371
- }, [setDragNode, setDragNodeKeys, setDragOverNodeKey, onDragEnd]);
372
- var handleDrop = useCallback(function (nodeData, event) {
375
+ });
376
+ var handleDrop = useEventCallback(function (nodeData, event) {
373
377
  if (dragNodeKeys.some(function (d) {
374
378
  return shallowEqual(d, nodeData[valueKey]);
375
379
  })) {
@@ -382,34 +386,26 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
382
386
  setDragNode(null);
383
387
  setDragNodeKeys([]);
384
388
  setDragOverNodeKey(null);
385
- }, [dragNodeKeys, setDragNode, setDragOverNodeKey, setDragNodeKeys, onDrop, getDropData, valueKey]);
386
- var handleOpen = useCallback(function () {
387
- var _triggerRef$current2, _triggerRef$current2$;
388
- (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.open) === null || _triggerRef$current2$ === void 0 ? void 0 : _triggerRef$current2$.call(_triggerRef$current2);
389
+ });
390
+ var handleOpen = useEventCallback(function () {
391
+ var _trigger$current2, _trigger$current2$ope;
392
+ (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$ope = _trigger$current2.open) === null || _trigger$current2$ope === void 0 ? void 0 : _trigger$current2$ope.call(_trigger$current2);
389
393
  focusActiveNode();
390
394
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
391
395
  setActive(true);
392
- }, [focusActiveNode, onOpen]);
393
- var handleClose = useCallback(function () {
394
- var _triggerRef$current3, _triggerRef$current3$, _targetRef$current2;
395
- (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : (_triggerRef$current3$ = _triggerRef$current3.close) === null || _triggerRef$current3$ === void 0 ? void 0 : _triggerRef$current3$.call(_triggerRef$current3);
396
+ });
397
+ var handleClose = useEventCallback(function () {
398
+ var _trigger$current3, _trigger$current3$clo, _target$current2;
399
+ (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : (_trigger$current3$clo = _trigger$current3.close) === null || _trigger$current3$clo === void 0 ? void 0 : _trigger$current3$clo.call(_trigger$current3);
396
400
  setSearchKeyword('');
397
401
  setActive(false);
398
402
  setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);
399
403
  /**
400
404
  * when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu
401
405
  */
402
- (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.focus();
403
- }, [activeNode, setSearchKeyword, valueKey]);
404
- usePublicMethods(ref, {
405
- rootRef: inline ? treeViewRef : undefined,
406
- triggerRef: triggerRef,
407
- overlayRef: overlayRef,
408
- targetRef: targetRef,
409
- listRef: listRef,
410
- inline: inline
406
+ (_target$current2 = target.current) === null || _target$current2 === void 0 ? void 0 : _target$current2.focus();
411
407
  });
412
- var handleFocusItem = useCallback(function (key) {
408
+ var handleFocusItem = useEventCallback(function (key) {
413
409
  var focusableItems = getFocusableItems(filteredData, {
414
410
  disabledItemValues: disabledItemValues,
415
411
  valueKey: valueKey,
@@ -434,8 +430,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
434
430
  if (key === KEY_VALUES.UP) {
435
431
  focusPreviousItem(focusProps);
436
432
  }
437
- }, [searchKeywordState, expandItemValues, filteredData, focusItemValue, treeNodesRefs, treePrefix, valueKey, childrenKey, disabledItemValues]);
438
- var handleLeftArrow = useCallback(function () {
433
+ });
434
+ var handleLeftArrow = useEventCallback(function () {
439
435
  if (_isNil(focusItemValue)) return;
440
436
  var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
441
437
  leftArrowHandler({
@@ -449,8 +445,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
449
445
  focusTreeNode(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, "." + treePrefix('node-label'));
450
446
  }
451
447
  });
452
- }, [expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, treePrefix, valueKey, childrenKey]);
453
- var handleRightArrow = useCallback(function () {
448
+ });
449
+ var handleRightArrow = useEventCallback(function () {
454
450
  if (_isNil(focusItemValue)) return;
455
451
  var focusItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
456
452
  rightArrowHandler({
@@ -462,13 +458,13 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
462
458
  handleFocusItem(KEY_VALUES.DOWN);
463
459
  }
464
460
  });
465
- }, [focusItemValue, flattenNodes, valueKey, expandItemValues, childrenKey, handleExpand, handleFocusItem]);
466
- var selectActiveItem = useCallback(function (event) {
461
+ });
462
+ var selectActiveItem = useEventCallback(function (event) {
467
463
  if (_isNil(focusItemValue)) return;
468
464
  var activeItem = getActiveItem(focusItemValue, flattenNodes, valueKey);
469
465
  handleSelect(activeItem, event);
470
- }, [flattenNodes, valueKey, focusItemValue, handleSelect]);
471
- var handleClean = useCallback(function (event) {
466
+ });
467
+ var handleClean = useEventCallback(function (event) {
472
468
  var nullValue = null;
473
469
  var target = event.target;
474
470
  // exclude searchBar
@@ -479,13 +475,13 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
479
475
  setValue(null);
480
476
  }
481
477
  onChange === null || onChange === void 0 ? void 0 : onChange(nullValue, event);
482
- }, [cleanable, disabled, onChange, setValue, isControlled]);
478
+ });
483
479
  var onPickerKeydown = useToggleKeyDownEvent(_extends({
484
480
  toggle: !activeNode || !active,
485
- triggerRef: triggerRef,
486
- targetRef: targetRef,
487
- overlayRef: overlayRef,
488
- searchInputRef: searchInputRef,
481
+ trigger: trigger,
482
+ target: target,
483
+ overlay: overlay,
484
+ searchInput: searchInput,
489
485
  active: active,
490
486
  onExit: handleClean,
491
487
  onClose: handleClose,
@@ -504,8 +500,8 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
504
500
  });
505
501
  }
506
502
  }, rest));
507
- var handleTreeKeyDown = useCallback(function (event) {
508
- if (!treeViewRef.current) {
503
+ var handleTreeKeyDown = useEventCallback(function (event) {
504
+ if (!treeView.current) {
509
505
  return;
510
506
  }
511
507
  _onMenuKeyDown(event, {
@@ -519,7 +515,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
519
515
  right: rtl ? handleLeftArrow : handleRightArrow,
520
516
  enter: selectActiveItem
521
517
  });
522
- }, [handleFocusItem, handleLeftArrow, handleRightArrow, rtl, selectActiveItem]);
518
+ });
523
519
  var renderNode = function renderNode(node, index, layer) {
524
520
  if (!node.visible) {
525
521
  return null;
@@ -594,7 +590,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
594
590
  return /*#__PURE__*/React.createElement("div", {
595
591
  role: "tree",
596
592
  id: id ? id + "-listbox" : undefined,
597
- ref: treeViewRef,
593
+ ref: inline ? root : treeView,
598
594
  className: classes,
599
595
  style: styles,
600
596
  onKeyDown: inline ? handleTreeKeyDown : undefined
@@ -609,7 +605,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
609
605
  }, function (_ref5) {
610
606
  var height = _ref5.height;
611
607
  return /*#__PURE__*/React.createElement(List, _extends({
612
- ref: listRef,
608
+ ref: list,
613
609
  height: height,
614
610
  itemSize: itemSize,
615
611
  itemCount: formattedNodes.length,
@@ -630,14 +626,14 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
630
626
  autoWidth: menuAutoWidth,
631
627
  className: classes,
632
628
  style: mergedMenuStyle,
633
- ref: mergeRefs(overlayRef, speakerRef),
629
+ ref: mergeRefs(overlay, speakerRef),
634
630
  onKeyDown: onPickerKeydown,
635
- target: triggerRef
631
+ target: trigger
636
632
  }, searchable ? /*#__PURE__*/React.createElement(SearchBar, {
637
633
  placeholder: locale.searchPlaceholder,
638
634
  onChange: handleSearch,
639
635
  value: searchKeywordState,
640
- inputRef: searchInputRef
636
+ inputRef: searchInput
641
637
  }) : null, renderMenu ? renderMenu(renderTree()) : renderTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
642
638
  };
643
639
 
@@ -671,7 +667,7 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
671
667
  }
672
668
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
673
669
  pickerProps: _pick(props, pickTriggerPropKeys),
674
- ref: triggerRef,
670
+ ref: trigger,
675
671
  placement: placement,
676
672
  onEnter: handleOpen,
677
673
  onEntered: onEntered,
@@ -680,10 +676,11 @@ var TreePicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
680
676
  speaker: renderDropdownMenu
681
677
  }, /*#__PURE__*/React.createElement(Component, {
682
678
  className: classes,
683
- style: style
679
+ style: style,
680
+ ref: root
684
681
  }, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, _omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys, ['cascade'])), {
685
682
  id: id,
686
- ref: targetRef,
683
+ ref: target,
687
684
  appearance: appearance,
688
685
  onKeyDown: onPickerKeydown,
689
686
  onClean: createChainedFunction(handleClean, onClean),
package/esm/index.d.ts CHANGED
@@ -94,6 +94,8 @@ export { default as DateInput } from './DateInput';
94
94
  export type { DateInputProps } from './DateInput';
95
95
  export { default as DatePicker } from './DatePicker';
96
96
  export type { DatePickerProps } from './DatePicker';
97
+ export { default as DateRangeInput } from './DateRangeInput';
98
+ export type { DateRangeInputProps } from './DateRangeInput';
97
99
  export { default as DateRangePicker } from './DateRangePicker';
98
100
  export type { DateRangePickerProps } from './DateRangePicker';
99
101
  export { default as AutoComplete } from './AutoComplete';
package/esm/index.js CHANGED
@@ -50,6 +50,7 @@ export { default as Cascader } from './Cascader';
50
50
  export { default as MultiCascader } from './MultiCascader';
51
51
  export { default as DateInput } from './DateInput';
52
52
  export { default as DatePicker } from './DatePicker';
53
+ export { default as DateRangeInput } from './DateRangeInput';
53
54
  export { default as DateRangePicker } from './DateRangePicker';
54
55
  export { default as AutoComplete } from './AutoComplete';
55
56
  export { default as Uploader } from './Uploader';
@@ -31,8 +31,8 @@ export declare type CalendarLocale = PickKeys<typeof defaultLocale.Calendar>;
31
31
  export declare type PlaintextLocale = PickKeys<typeof defaultLocale.Plaintext>;
32
32
  export declare type PaginationLocale = PickKeys<typeof defaultLocale.Pagination>;
33
33
  export declare type TableLocale = CommonLocale;
34
- export declare type DatePickerLocale = PickKeys<typeof defaultLocale.DatePicker>;
35
- export declare type DateRangePickerLocale = PickKeys<typeof defaultLocale.DateRangePicker>;
34
+ export declare type DatePickerLocale = PickKeys<typeof defaultLocale.DatePicker> & CommonLocale;
35
+ export declare type DateRangePickerLocale = PickKeys<typeof defaultLocale.DateRangePicker> & CommonLocale;
36
36
  export declare type PickerLocale = typeof defaultLocale.Picker & CommonLocale;
37
37
  export declare type InputPickerLocale = PickerLocale & typeof defaultLocale.InputPicker;
38
38
  export declare type UploaderLocale = PickKeys<typeof defaultLocale.Uploader> & CommonLocale;
@@ -49,5 +49,6 @@ export declare const KEY_VALUES: {
49
49
  export declare enum DATERANGE_DISABLED_TARGET {
50
50
  CALENDAR = "CALENDAR",
51
51
  TOOLBAR_BUTTON_OK = "TOOLBAR_BUTTON_OK",
52
- TOOLBAR_SHORTCUT = "TOOLBAR_SHORTCUT"
52
+ TOOLBAR_SHORTCUT = "TOOLBAR_SHORTCUT",
53
+ INPUT = "INPUT"
53
54
  }
@@ -60,4 +60,5 @@ export var DATERANGE_DISABLED_TARGET;
60
60
  DATERANGE_DISABLED_TARGET["CALENDAR"] = "CALENDAR";
61
61
  DATERANGE_DISABLED_TARGET["TOOLBAR_BUTTON_OK"] = "TOOLBAR_BUTTON_OK";
62
62
  DATERANGE_DISABLED_TARGET["TOOLBAR_SHORTCUT"] = "TOOLBAR_SHORTCUT";
63
+ DATERANGE_DISABLED_TARGET["INPUT"] = "INPUT";
63
64
  })(DATERANGE_DISABLED_TARGET || (DATERANGE_DISABLED_TARGET = {}));
@@ -63,7 +63,6 @@ export declare const shouldOnlyRenderTime: (format: string) => boolean;
63
63
  * @return date[]
64
64
  */
65
65
  export declare function getMonthView(monthDate: Date, isoWeek: boolean): Date[];
66
- export declare function getDateMask(formatStr: string): (string | RegExp)[];
67
66
  /**
68
67
  * Copy the time of one date to another
69
68
  */
@@ -130,11 +130,6 @@ export function getMonthView(monthDate, isoWeek) {
130
130
  }
131
131
  return weeks;
132
132
  }
133
- export function getDateMask(formatStr) {
134
- return Array.from(formatStr).map(function (i) {
135
- return i.match(/[A-Za-z]/) ? /[\d|A-Za-z]/ : i;
136
- });
137
- }
138
133
 
139
134
  /**
140
135
  * Copy the time of one date to another
@@ -0,0 +1,2 @@
1
+ declare function getStringLength(str: string): number;
2
+ export default getStringLength;