rsuite 5.49.0 → 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 (115) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/Cascader/styles/index.less +4 -4
  3. package/DateRangePicker/styles/index.less +15 -5
  4. package/Dropdown/styles/index.less +5 -4
  5. package/Dropdown/styles/mixin.less +0 -11
  6. package/Picker/styles/index.less +31 -24
  7. package/Picker/styles/mixin.less +17 -13
  8. package/README.md +4 -4
  9. package/TagInput/styles/index.less +1 -1
  10. package/cjs/AutoComplete/AutoComplete.js +25 -26
  11. package/cjs/Calendar/Calendar.d.ts +5 -1
  12. package/cjs/Calendar/CalendarContainer.d.ts +5 -1
  13. package/cjs/Cascader/Cascader.js +46 -48
  14. package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
  15. package/cjs/CheckPicker/CheckPicker.js +33 -36
  16. package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
  17. package/cjs/DatePicker/DatePicker.d.ts +5 -1
  18. package/cjs/DatePicker/DatePicker.js +2 -4
  19. package/cjs/DatePicker/Toolbar.js +2 -1
  20. package/cjs/DateRangeInput/DateRangeInput.js +2 -2
  21. package/cjs/DateRangePicker/Calendar.js +24 -23
  22. package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
  23. package/cjs/DateRangePicker/DateRangePicker.js +239 -201
  24. package/cjs/DateRangePicker/types.d.ts +11 -3
  25. package/cjs/DateRangePicker/utils.d.ts +2 -1
  26. package/cjs/DateRangePicker/utils.js +7 -5
  27. package/cjs/FormControl/FormControl.d.ts +11 -1
  28. package/cjs/FormControl/FormControl.js +6 -5
  29. package/cjs/InputPicker/InputPicker.js +62 -63
  30. package/cjs/MultiCascader/MultiCascader.js +40 -42
  31. package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  32. package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
  33. package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  34. package/cjs/Picker/PickerToggle.d.ts +17 -22
  35. package/cjs/Picker/PickerToggle.js +52 -177
  36. package/cjs/Picker/index.d.ts +3 -0
  37. package/cjs/Picker/index.js +10 -1
  38. package/cjs/Picker/usePickerRef.d.ts +3 -1
  39. package/cjs/Picker/usePickerRef.js +13 -7
  40. package/cjs/Picker/utils.d.ts +5 -9
  41. package/cjs/Picker/utils.js +22 -89
  42. package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
  43. package/cjs/SelectPicker/SelectPicker.js +39 -42
  44. package/cjs/TreePicker/TreePicker.js +72 -75
  45. package/cjs/utils/constants.d.ts +2 -1
  46. package/cjs/utils/constants.js +1 -0
  47. package/cjs/utils/dateUtils.d.ts +0 -1
  48. package/cjs/utils/dateUtils.js +0 -6
  49. package/cjs/utils/getStringLength.d.ts +2 -0
  50. package/cjs/utils/getStringLength.js +18 -0
  51. package/cjs/utils/index.d.ts +1 -0
  52. package/cjs/utils/index.js +4 -1
  53. package/dist/rsuite-no-reset-rtl.css +92 -69
  54. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  55. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  56. package/dist/rsuite-no-reset.css +92 -69
  57. package/dist/rsuite-no-reset.min.css +1 -1
  58. package/dist/rsuite-no-reset.min.css.map +1 -1
  59. package/dist/rsuite-rtl.css +92 -69
  60. package/dist/rsuite-rtl.min.css +1 -1
  61. package/dist/rsuite-rtl.min.css.map +1 -1
  62. package/dist/rsuite.css +92 -69
  63. package/dist/rsuite.js +67 -46
  64. package/dist/rsuite.js.map +1 -1
  65. package/dist/rsuite.min.css +1 -1
  66. package/dist/rsuite.min.css.map +1 -1
  67. package/dist/rsuite.min.js +1 -1
  68. package/dist/rsuite.min.js.map +1 -1
  69. package/esm/AutoComplete/AutoComplete.js +28 -29
  70. package/esm/Calendar/Calendar.d.ts +5 -1
  71. package/esm/Calendar/CalendarContainer.d.ts +5 -1
  72. package/esm/Cascader/Cascader.js +49 -51
  73. package/esm/CheckPicker/CheckPicker.d.ts +2 -2
  74. package/esm/CheckPicker/CheckPicker.js +36 -39
  75. package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
  76. package/esm/DatePicker/DatePicker.d.ts +5 -1
  77. package/esm/DatePicker/DatePicker.js +1 -3
  78. package/esm/DatePicker/Toolbar.js +2 -1
  79. package/esm/DateRangeInput/DateRangeInput.js +2 -2
  80. package/esm/DateRangePicker/Calendar.js +25 -23
  81. package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
  82. package/esm/DateRangePicker/DateRangePicker.js +241 -203
  83. package/esm/DateRangePicker/types.d.ts +11 -3
  84. package/esm/DateRangePicker/utils.d.ts +2 -1
  85. package/esm/DateRangePicker/utils.js +7 -5
  86. package/esm/FormControl/FormControl.d.ts +11 -1
  87. package/esm/FormControl/FormControl.js +4 -3
  88. package/esm/InputPicker/InputPicker.js +64 -65
  89. package/esm/MultiCascader/MultiCascader.js +43 -45
  90. package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
  91. package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
  92. package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
  93. package/esm/Picker/PickerToggle.d.ts +17 -22
  94. package/esm/Picker/PickerToggle.js +54 -179
  95. package/esm/Picker/index.d.ts +3 -0
  96. package/esm/Picker/index.js +3 -0
  97. package/esm/Picker/usePickerRef.d.ts +3 -1
  98. package/esm/Picker/usePickerRef.js +13 -8
  99. package/esm/Picker/utils.d.ts +5 -9
  100. package/esm/Picker/utils.js +24 -90
  101. package/esm/SelectPicker/SelectPicker.d.ts +2 -2
  102. package/esm/SelectPicker/SelectPicker.js +42 -45
  103. package/esm/TreePicker/TreePicker.js +75 -78
  104. package/esm/utils/constants.d.ts +2 -1
  105. package/esm/utils/constants.js +1 -0
  106. package/esm/utils/dateUtils.d.ts +0 -1
  107. package/esm/utils/dateUtils.js +0 -5
  108. package/esm/utils/getStringLength.d.ts +2 -0
  109. package/esm/utils/getStringLength.js +13 -0
  110. package/esm/utils/index.d.ts +1 -0
  111. package/esm/utils/index.js +1 -0
  112. package/package.json +1 -1
  113. package/styles/mixins/combobox.less +10 -0
  114. /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
  115. /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
@@ -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) {
@@ -287,7 +283,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
287
283
  var menu = items.length || filteredStickyItems.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {
288
284
  id: id ? id + "-listbox" : undefined,
289
285
  listProps: listProps,
290
- listRef: listRef,
286
+ listRef: list,
291
287
  disabledItemValues: disabledItemValues,
292
288
  valueKey: valueKey,
293
289
  labelKey: labelKey,
@@ -310,17 +306,17 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
310
306
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["none"])))
311
307
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
312
308
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
313
- ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
309
+ ref: (0, _utils.mergeRefs)(overlay, speakerRef),
314
310
  autoWidth: menuAutoWidth,
315
311
  className: classes,
316
312
  style: styles,
317
313
  onKeyDown: onPickerKeyDown,
318
- target: triggerRef
314
+ target: trigger
319
315
  }, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
320
316
  placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
321
317
  onChange: handleSearch,
322
318
  value: searchKeyword,
323
- inputRef: searchInputRef
319
+ inputRef: searchInput
324
320
  }), renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
325
321
  };
326
322
  var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {
@@ -335,7 +331,7 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
335
331
  usedClassNamePropKeys = _usePickerClassName[1];
336
332
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
337
333
  pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
338
- ref: triggerRef,
334
+ ref: trigger,
339
335
  placement: placement,
340
336
  onEnter: (0, _utils.createChainedFunction)(initStickyItems, onEnter),
341
337
  onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
@@ -343,10 +339,11 @@ var CheckPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
343
339
  speaker: renderDropdownMenu
344
340
  }, /*#__PURE__*/_react.default.createElement(Component, {
345
341
  className: classes,
346
- style: style
342
+ style: style,
343
+ ref: root
347
344
  }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
348
345
  id: id,
349
- ref: targetRef,
346
+ ref: target,
350
347
  appearance: appearance,
351
348
  disabled: disabled,
352
349
  onClean: handleClean,
@@ -111,12 +111,16 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
111
111
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "data", "style", "appearance", "cleanable", "countable", "searchBy", "toggleAs", "searchKeyword", "showIndentLine", "locale", "cascade", "disabled", "valueKey", "labelKey", "placement", "childrenKey", "placeholder", "value", "defaultValue", "defaultExpandAll", "disabledItemValues", "expandItemValues", "defaultExpandItemValues", "height", "menuMaxHeight", "menuStyle", "searchable", "virtualized", "className", "classPrefix", "menuClassName", "menuAutoWidth", "uncheckableItemValues", "id", "listProps", "renderMenu", "getChildren", "renderExtraFooter", "onEntered", "onChange", "onClean", "onClose", "onExited", "onSearch", "onSelect", "onSelectItem", "onOpen", "onScroll", "onExpand", "renderValue", "renderTreeIcon", "renderTreeNode"]);
112
112
  var _useContext = (0, _react.useContext)(_TreeContext.default),
113
113
  inline = _useContext.inline;
114
- var triggerRef = (0, _react.useRef)(null);
115
- var targetRef = (0, _react.useRef)(null);
116
- var listRef = (0, _react.useRef)(null);
117
- var overlayRef = (0, _react.useRef)(null);
118
- var searchInputRef = (0, _react.useRef)(null);
119
- var treeViewRef = (0, _react.useRef)(null);
114
+ var _usePickerRef = (0, _Picker.usePickerRef)(ref, {
115
+ inline: inline
116
+ }),
117
+ trigger = _usePickerRef.trigger,
118
+ root = _usePickerRef.root,
119
+ target = _usePickerRef.target,
120
+ overlay = _usePickerRef.overlay,
121
+ list = _usePickerRef.list,
122
+ searchInput = _usePickerRef.searchInput,
123
+ treeView = _usePickerRef.treeView;
120
124
  var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
121
125
  rtl = _useCustom.rtl,
122
126
  locale = _useCustom.locale;
@@ -197,7 +201,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
197
201
  * get formatted nodes for render tree
198
202
  * @params render - renderNode function. only used when virtualized setting false
199
203
  */
200
- var getFormattedNodes = (0, _react.useCallback)(function (render) {
204
+ var getFormattedNodes = function getFormattedNodes(render) {
201
205
  if (virtualized) {
202
206
  return formatVirtualizedTreeData(flattenNodes, filteredData, expandItemValues, {
203
207
  cascade: cascade,
@@ -212,7 +216,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
212
216
  }).map(function (node) {
213
217
  return render === null || render === void 0 ? void 0 : render(node, 1);
214
218
  });
215
- }, [searchKeywordState, expandItemValues, filteredData, flattenNodes, formatVirtualizedTreeData, virtualized, childrenKey, cascade]);
219
+ };
216
220
  var getTreeNodeProps = function getTreeNodeProps(node, layer) {
217
221
  return {
218
222
  as: Component,
@@ -243,19 +247,19 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
243
247
  onRenderTreeIcon: renderTreeIcon
244
248
  };
245
249
  };
246
- var focusActiveNode = (0, _react.useCallback)(function () {
247
- if (listRef.current) {
250
+ var focusActiveNode = function focusActiveNode() {
251
+ if (list.current) {
248
252
  (0, _treeUtils.focusToActiveTreeNode)({
249
- list: listRef.current,
253
+ list: list.current,
250
254
  valueKey: valueKey,
251
255
  selector: "." + checkTreePrefix('node-active'),
252
256
  activeNode: activeNode,
253
257
  virtualized: virtualized,
254
- container: treeViewRef.current,
258
+ container: treeView.current,
255
259
  formattedNodes: getFormattedNodes()
256
260
  });
257
261
  }
258
- }, [checkTreePrefix, activeNode, getFormattedNodes, valueKey, virtualized]);
262
+ };
259
263
  (0, _react.useEffect)(function () {
260
264
  setValue((0, _utils2.getCheckTreePickerDefaultValue)(value, uncheckableItemValues));
261
265
  }, []); // eslint-disable-line react-hooks/exhaustive-deps
@@ -285,7 +289,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
285
289
  });
286
290
  forceUpdate();
287
291
  }, [cascade, value, uncheckableItemValues, unSerializeList, flattenNodes, forceUpdate]);
288
- var toggleUpChecked = (0, _react.useCallback)(function (nodes, node, checked) {
292
+ var toggleUpChecked = (0, _utils.useEventCallback)(function (nodes, node, checked) {
289
293
  var currentNode = node.refKey ? nodes[node.refKey] : null;
290
294
  if (cascade && currentNode) {
291
295
  if (!checked) {
@@ -304,8 +308,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
304
308
  toggleUpChecked(nodes, currentNode.parent, checked);
305
309
  }
306
310
  }
307
- }, [cascade]);
308
- var toggleDownChecked = (0, _react.useCallback)(function (nodes, node, isChecked) {
311
+ });
312
+ var toggleDownChecked = (0, _utils.useEventCallback)(function (nodes, node, isChecked) {
309
313
  var currentNode = node.refKey ? nodes[node.refKey] : null;
310
314
  if (!currentNode) {
311
315
  return;
@@ -319,8 +323,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
319
323
  toggleDownChecked(nodes, child, isChecked);
320
324
  });
321
325
  }
322
- }, [cascade, childrenKey]);
323
- var toggleChecked = (0, _react.useCallback)(function (node, isChecked) {
326
+ });
327
+ var toggleChecked = (0, _utils.useEventCallback)(function (node, isChecked) {
324
328
  var nodes = (0, _cloneDeep2.default)(flattenNodes);
325
329
  toggleDownChecked(nodes, node, isChecked);
326
330
  node.parent && toggleUpChecked(nodes, node.parent, isChecked);
@@ -329,7 +333,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
329
333
  return values.filter(function (v) {
330
334
  return !uncheckableItemValues.includes(v);
331
335
  });
332
- }, [flattenNodes, uncheckableItemValues, serializeListOnlyParent, toggleDownChecked, toggleUpChecked]);
336
+ });
333
337
 
334
338
  // TODO-Doma
335
339
  // Replace `getKeyParentMap` with `getParentMap`
@@ -340,7 +344,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
340
344
  return node[childrenKey];
341
345
  });
342
346
  }, [childrenKey, data, valueKey]);
343
- var handleSelect = (0, _react.useCallback)(function (node, event) {
347
+ var handleSelect = (0, _utils.useEventCallback)(function (node, event) {
344
348
  var currentNode = node.refKey ? flattenNodes[node.refKey] : null;
345
349
  if (!node || !currentNode) {
346
350
  return;
@@ -363,18 +367,18 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
363
367
  onSelectItem === null || onSelectItem === void 0 ? void 0 : onSelectItem(node, (0, _treeUtils.getPathTowardsItem)(node, function (item) {
364
368
  return itemParentMap.get(item[valueKey]);
365
369
  }));
366
- }, [flattenNodes, toggleChecked, isControlled, valueKey, onChange, onSelect, onSelectItem, unSerializeList, cascade, uncheckableItemValues, setValue, itemParentMap]);
367
- var handleOpen = (0, _react.useCallback)(function () {
368
- var _triggerRef$current, _triggerRef$current$o;
369
- (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : (_triggerRef$current$o = _triggerRef$current.open) === null || _triggerRef$current$o === void 0 ? void 0 : _triggerRef$current$o.call(_triggerRef$current);
370
+ });
371
+ var handleOpen = (0, _utils.useEventCallback)(function () {
372
+ var _trigger$current, _trigger$current$open;
373
+ (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$open = _trigger$current.open) === null || _trigger$current$open === void 0 ? void 0 : _trigger$current$open.call(_trigger$current);
370
374
  setFocusItemValue(activeNode === null || activeNode === void 0 ? void 0 : activeNode[valueKey]);
371
375
  focusActiveNode();
372
376
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
373
377
  setActive(true);
374
- }, [activeNode, focusActiveNode, onOpen, valueKey]);
375
- var handleClose = (0, _react.useCallback)(function () {
376
- var _triggerRef$current2, _triggerRef$current2$, _targetRef$current;
377
- (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : (_triggerRef$current2$ = _triggerRef$current2.close) === null || _triggerRef$current2$ === void 0 ? void 0 : _triggerRef$current2$.call(_triggerRef$current2);
378
+ });
379
+ var handleClose = (0, _utils.useEventCallback)(function () {
380
+ var _trigger$current2, _trigger$current2$clo, _target$current;
381
+ (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$clo = _trigger$current2.close) === null || _trigger$current2$clo === void 0 ? void 0 : _trigger$current2$clo.call(_trigger$current2);
378
382
  setSearchKeyword('');
379
383
  onClose === null || onClose === void 0 ? void 0 : onClose();
380
384
  setFocusItemValue(null);
@@ -383,9 +387,9 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
383
387
  /**
384
388
  * when using keyboard toggle picker, should refocus on PickerToggle Component after close picker menu
385
389
  */
386
- (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();
387
- }, [onClose, setSearchKeyword]);
388
- var handleExpand = (0, _react.useCallback)(function (node) {
390
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
391
+ });
392
+ var handleExpand = (0, _utils.useEventCallback)(function (node) {
389
393
  var nextExpandItemValues = (0, _treeUtils.toggleExpand)({
390
394
  node: node,
391
395
  isExpand: !node.expand,
@@ -400,16 +404,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
400
404
  if ((0, _isFunction2.default)(getChildren) && !node.expand && Array.isArray(node[childrenKey]) && node[childrenKey].length === 0) {
401
405
  loadChildren(node, getChildren);
402
406
  }
403
- }, [childrenKey, expandItemValues, getChildren, loadChildren, onExpand, setExpandItemValues, valueKey]);
404
- (0, _Picker.usePublicMethods)(ref, {
405
- rootRef: inline ? treeViewRef : undefined,
406
- triggerRef: triggerRef,
407
- overlayRef: overlayRef,
408
- targetRef: targetRef,
409
- listRef: listRef,
410
- inline: inline
411
407
  });
412
- var handleClean = (0, _react.useCallback)(function (event) {
408
+ var handleClean = (0, _utils.useEventCallback)(function (event) {
413
409
  var target = event.target;
414
410
  // exclude searchBar
415
411
  if (target.matches('div[role="searchbox"] > input') || disabled || !cleanable) {
@@ -428,8 +424,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
428
424
  });
429
425
  }
430
426
  onChange === null || onChange === void 0 ? void 0 : onChange([], event);
431
- }, [cascade, cleanable, disabled, flattenNodes, onChange, setValue, unSerializeList, uncheckableItemValues, isControlled]);
432
- var handleFocusItem = (0, _react.useCallback)(function (key) {
427
+ });
428
+ var handleFocusItem = (0, _utils.useEventCallback)(function (key) {
433
429
  var focusableItems = (0, _treeUtils.getFocusableItems)(filteredData, {
434
430
  disabledItemValues: disabledItemValues,
435
431
  valueKey: valueKey,
@@ -454,8 +450,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
454
450
  if (key === _utils.KEY_VALUES.UP) {
455
451
  (0, _treeUtils.focusPreviousItem)(focusProps);
456
452
  }
457
- }, [searchKeywordState, checkTreePrefix, expandItemValues, filteredData, focusItemValue, treeNodesRefs, childrenKey, valueKey, disabledItemValues]);
458
- var handleLeftArrow = (0, _react.useCallback)(function () {
453
+ });
454
+ var handleLeftArrow = (0, _utils.useEventCallback)(function () {
459
455
  if ((0, _isNil2.default)(focusItemValue)) return;
460
456
  var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);
461
457
  (0, _treeUtils.leftArrowHandler)({
@@ -469,8 +465,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
469
465
  (0, _treeUtils.focusTreeNode)(focusItem === null || focusItem === void 0 ? void 0 : (_focusItem$parent2 = focusItem.parent) === null || _focusItem$parent2 === void 0 ? void 0 : _focusItem$parent2.refKey, treeNodesRefs, "." + checkTreePrefix('node-label'));
470
466
  }
471
467
  });
472
- }, [checkTreePrefix, expandItemValues, flattenNodes, focusItemValue, handleExpand, treeNodesRefs, valueKey, childrenKey]);
473
- var handleRightArrow = (0, _react.useCallback)(function () {
468
+ });
469
+ var handleRightArrow = (0, _utils.useEventCallback)(function () {
474
470
  if ((0, _isNil2.default)(focusItemValue)) return;
475
471
  var focusItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);
476
472
  (0, _treeUtils.rightArrowHandler)({
@@ -482,8 +478,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
482
478
  handleFocusItem(_utils.KEY_VALUES.DOWN);
483
479
  }
484
480
  });
485
- }, [focusItemValue, flattenNodes, valueKey, expandItemValues, childrenKey, handleExpand, handleFocusItem]);
486
- var selectActiveItem = (0, _react.useCallback)(function (event) {
481
+ });
482
+ var selectActiveItem = function selectActiveItem(event) {
487
483
  if ((0, _isNil2.default)(focusItemValue)) return;
488
484
  var activeItem = (0, _treeUtils.getActiveItem)(focusItemValue, flattenNodes, valueKey);
489
485
  if (!(0, _utils2.isNodeUncheckable)(activeItem, {
@@ -492,13 +488,13 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
492
488
  }) && activeItem !== null) {
493
489
  handleSelect(activeItem, event);
494
490
  }
495
- }, [flattenNodes, focusItemValue, handleSelect, uncheckableItemValues, valueKey]);
491
+ };
496
492
  var onPickerKeydown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({
497
493
  toggle: !focusItemValue || !active,
498
- triggerRef: triggerRef,
499
- targetRef: targetRef,
500
- overlayRef: overlayRef,
501
- searchInputRef: searchInputRef,
494
+ trigger: trigger,
495
+ target: target,
496
+ overlay: overlay,
497
+ searchInput: searchInput,
502
498
  active: active,
503
499
  onExit: handleClean,
504
500
  onClose: handleClose,
@@ -517,8 +513,8 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
517
513
  });
518
514
  }
519
515
  }, rest));
520
- var handleTreeKeydown = (0, _react.useCallback)(function (event) {
521
- if (!treeViewRef.current) {
516
+ var handleTreeKeydown = (0, _utils.useEventCallback)(function (event) {
517
+ if (!treeView.current) {
522
518
  return;
523
519
  }
524
520
  (0, _Picker.onMenuKeyDown)(event, {
@@ -532,7 +528,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
532
528
  right: rtl ? handleLeftArrow : handleRightArrow,
533
529
  enter: selectActiveItem
534
530
  });
535
- }, [handleFocusItem, handleLeftArrow, handleRightArrow, rtl, selectActiveItem]);
531
+ });
536
532
  var renderNode = function renderNode(node, layer) {
537
533
  var visible = node.visible,
538
534
  refKey = node.refKey; // when searching, all nodes should be expand
@@ -624,7 +620,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
624
620
  }, style) : {};
625
621
  return /*#__PURE__*/_react.default.createElement("div", {
626
622
  id: id ? id + "-listbox" : undefined,
627
- ref: treeViewRef,
623
+ ref: inline ? root : treeView,
628
624
  role: "tree",
629
625
  "aria-multiselectable": true,
630
626
  className: classes,
@@ -642,7 +638,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
642
638
  }, function (_ref5) {
643
639
  var height = _ref5.height;
644
640
  return /*#__PURE__*/_react.default.createElement(_Windowing.List, (0, _extends2.default)({
645
- ref: listRef,
641
+ ref: list,
646
642
  height: height,
647
643
  itemSize: itemSize,
648
644
  itemCount: formattedNodes.length,
@@ -663,14 +659,14 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
663
659
  autoWidth: menuAutoWidth,
664
660
  className: classes,
665
661
  style: mergedMenuStyle,
666
- ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
662
+ ref: (0, _utils.mergeRefs)(overlay, speakerRef),
667
663
  onKeyDown: onPickerKeydown,
668
- target: triggerRef
664
+ target: trigger
669
665
  }, searchable ? /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
670
666
  placeholder: locale.searchPlaceholder,
671
667
  onChange: handleSearch,
672
668
  value: searchKeywordState,
673
- inputRef: searchInputRef
669
+ inputRef: searchInput
674
670
  }) : null, renderMenu ? renderMenu(renderCheckTree()) : renderCheckTree(), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
675
671
  };
676
672
  var selectedItems = (0, _react.useMemo)(function () {
@@ -716,7 +712,7 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
716
712
  }
717
713
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
718
714
  pickerProps: (0, _pick2.default)(props, _Picker.pickTriggerPropKeys),
719
- ref: triggerRef,
715
+ ref: trigger,
720
716
  placement: placement,
721
717
  onEnter: handleOpen,
722
718
  onEntered: onEntered,
@@ -724,10 +720,11 @@ var CheckTreePicker = /*#__PURE__*/_react.default.forwardRef(function (props, re
724
720
  speaker: renderDropdownMenu
725
721
  }, /*#__PURE__*/_react.default.createElement(Component, {
726
722
  className: classes,
727
- style: style
723
+ style: style,
724
+ ref: root
728
725
  }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit2.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
729
726
  id: id,
730
- ref: targetRef,
727
+ ref: target,
731
728
  appearance: appearance,
732
729
  onKeyDown: onPickerKeydown,
733
730
  onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
@@ -20,7 +20,11 @@ export interface DatePickerProps extends PickerBaseProps<DatePickerLocale>, Form
20
20
  * @deprecated use <Calendar> instead
21
21
  **/
22
22
  inline?: boolean;
23
- /** ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day */
23
+ /**
24
+ * ISO 8601 standard, each calendar week begins on Monday and Sunday on the seventh day
25
+ *
26
+ * @see https://en.wikipedia.org/wiki/ISO_week_date
27
+ */
24
28
  isoWeek?: boolean;
25
29
  /** A label displayed at the beginning of toggle button */
26
30
  label?: React.ReactNode;
@@ -28,8 +28,6 @@ var _Picker = require("../Picker");
28
28
  var _usePickerRef2 = _interopRequireDefault(require("../Picker/usePickerRef"));
29
29
  var _DateInput = _interopRequireDefault(require("../DateInput"));
30
30
  var _InputGroup = _interopRequireDefault(require("../InputGroup"));
31
- var _PickerLabel = _interopRequireDefault(require("./PickerLabel"));
32
- var _PickerIndicator = _interopRequireDefault(require("./PickerIndicator"));
33
31
  var _OverlayTrigger = require("../Overlay/OverlayTrigger");
34
32
  var _deprecatePropType = require("../utils/deprecatePropType");
35
33
  var _utils2 = require("../Calendar/utils");
@@ -532,7 +530,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
532
530
  inside: true,
533
531
  size: size,
534
532
  onClick: handleClick
535
- }), /*#__PURE__*/_react.default.createElement(_PickerLabel.default, {
533
+ }), /*#__PURE__*/_react.default.createElement(_Picker.PickerLabel, {
536
534
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["label"]))),
537
535
  id: id + "-label"
538
536
  }, label), /*#__PURE__*/_react.default.createElement(_DateInput.default, (0, _extends2.default)({
@@ -550,7 +548,7 @@ var DatePicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
550
548
  readOnly: readOnly || !editable || loading,
551
549
  plaintext: plaintext,
552
550
  onKeyDown: handleInputKeyDown
553
- })), /*#__PURE__*/_react.default.createElement(_PickerIndicator.default, {
551
+ })), /*#__PURE__*/_react.default.createElement(_Picker.PickerIndicator, {
554
552
  loading: loading,
555
553
  caretAs: caretAs,
556
554
  onClose: handleClean,
@@ -61,7 +61,8 @@ var Toolbar = /*#__PURE__*/_react.default.forwardRef(function Toolbar(props, ref
61
61
  calendarDate: calendarDate,
62
62
  locale: locale,
63
63
  disabledShortcut: disabledShortcut,
64
- onShortcutClick: onShortcutClick
64
+ onShortcutClick: onShortcutClick,
65
+ "data-testid": "daterange-predefined-bottom"
65
66
  }), /*#__PURE__*/_react.default.createElement("div", {
66
67
  className: prefix('right')
67
68
  }, !hideOkBtn && /*#__PURE__*/_react.default.createElement(SubmitButton, {
@@ -64,10 +64,10 @@ var DateRangeInput = /*#__PURE__*/_react.default.forwardRef(function (props, ref
64
64
  isControlledDate: isControlled
65
65
  };
66
66
  var startDateState = (0, _DateInput.useDateInputState)((0, _extends2.default)({}, dateInputOptions, {
67
- date: value === null || value === void 0 ? void 0 : value[0]
67
+ date: (value === null || value === void 0 ? void 0 : value[0]) || null
68
68
  }));
69
69
  var endDateState = (0, _DateInput.useDateInputState)((0, _extends2.default)({}, dateInputOptions, {
70
- date: value === null || value === void 0 ? void 0 : value[1]
70
+ date: (value === null || value === void 0 ? void 0 : value[1]) || null
71
71
  }));
72
72
  var getActiveState = function getActiveState(type) {
73
73
  if (type === void 0) {
@@ -1,14 +1,13 @@
1
1
  'use client';
2
2
  "use strict";
3
3
 
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
5
  exports.__esModule = true;
7
6
  exports.default = void 0;
8
7
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _react = _interopRequireDefault(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _react = _interopRequireWildcard(require("react"));
12
11
  var _dateUtils = require("../utils/dateUtils");
13
12
  var _CalendarContainer = _interopRequireDefault(require("../Calendar/CalendarContainer"));
14
13
  var _utils = require("../utils");
@@ -31,37 +30,39 @@ var Calendar = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
31
30
  _props$value = props.value,
32
31
  value = _props$value === void 0 ? [] : _props$value,
33
32
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "calendarDate", "format", "disabledDate", "index", "limitEndYear", "limitStartYear", "onChangeCalendarMonth", "onChangeCalendarTime", "onToggleMeridian", "onSelect", "value"]);
34
- var onMoveForward = (0, _react.useCallback)(function (nextPageDate) {
33
+ var onMoveForward = (0, _utils.useEventCallback)(function (nextPageDate) {
35
34
  onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
36
- }, [index, onChangeCalendarMonth]);
37
- var onMoveBackward = (0, _react.useCallback)(function (nextPageDate) {
35
+ });
36
+ var onMoveBackward = (0, _utils.useEventCallback)(function (nextPageDate) {
38
37
  onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
39
- }, [index, onChangeCalendarMonth]);
40
- var handleSelect = (0, _react.useCallback)(function (date, event) {
38
+ });
39
+ var handleSelect = (0, _utils.useEventCallback)(function (date, event) {
41
40
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(index, date, event);
42
- }, [index, onSelect]);
43
- var handleChangeMonth = (0, _react.useCallback)(function (nextPageDate) {
41
+ });
42
+ var handleChangeMonth = (0, _utils.useEventCallback)(function (nextPageDate) {
44
43
  onChangeCalendarMonth === null || onChangeCalendarMonth === void 0 ? void 0 : onChangeCalendarMonth(index, nextPageDate);
45
- }, [index, onChangeCalendarMonth]);
46
- var handleChangeTime = (0, _react.useCallback)(function (nextPageDate) {
44
+ });
45
+ var handleChangeTime = (0, _utils.useEventCallback)(function (nextPageDate) {
47
46
  onChangeCalendarTime === null || onChangeCalendarTime === void 0 ? void 0 : onChangeCalendarTime(index, nextPageDate);
48
- }, [index, onChangeCalendarTime]);
49
- var handleToggleMeridian = (0, _react.useCallback)(function (event) {
47
+ });
48
+ var handleToggleMeridian = (0, _utils.useEventCallback)(function (event) {
50
49
  onToggleMeridian(index, event);
51
- }, [index, onToggleMeridian]);
52
- var getCalendarDate = (0, _react.useCallback)(function () {
50
+ });
51
+ var getCalendarDate = function getCalendarDate() {
53
52
  return calendarDate[index];
54
- }, [calendarDate, index]);
55
- var handleMoveForward = (0, _react.useCallback)(function () {
53
+ };
54
+ var handleMoveForward = (0, _utils.useEventCallback)(function () {
56
55
  onMoveForward === null || onMoveForward === void 0 ? void 0 : onMoveForward((0, _dateUtils.addMonths)(getCalendarDate(), 1));
57
- }, [getCalendarDate, onMoveForward]);
58
- var handleMoveBackward = (0, _react.useCallback)(function () {
56
+ });
57
+ var handleMoveBackward = (0, _utils.useEventCallback)(function () {
59
58
  onMoveBackward === null || onMoveBackward === void 0 ? void 0 : onMoveBackward((0, _dateUtils.addMonths)(getCalendarDate(), -1));
60
- }, [getCalendarDate, onMoveBackward]);
61
- var disabledMonth = (0, _react.useCallback)(function (date) {
59
+ });
60
+ var disabledMonth = function disabledMonth(date) {
62
61
  return disabledDate === null || disabledDate === void 0 ? void 0 : disabledDate(date, value, _utils.DATERANGE_DISABLED_TARGET.CALENDAR);
63
- }, [disabledDate, value]);
64
- return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, rest, {
62
+ };
63
+ return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({
64
+ "data-testid": "calendar-" + (index === 0 ? 'start' : 'end')
65
+ }, rest, {
65
66
  format: format,
66
67
  dateRange: value,
67
68
  disabledDate: disabledMonth,