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
@@ -1,9 +1,11 @@
1
1
  'use client';
2
2
  "use strict";
3
3
 
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5
  exports.__esModule = true;
5
6
  exports.default = void 0;
6
7
  var _react = require("react");
8
+ var _useEventCallback = _interopRequireDefault(require("../utils/useEventCallback"));
7
9
  /**
8
10
  * A hook of the exposed method of Picker
9
11
  */
@@ -13,20 +15,22 @@ function usePickerRef(ref, parmas) {
13
15
  var target = (0, _react.useRef)(null);
14
16
  var overlay = (0, _react.useRef)(null);
15
17
  var list = (0, _react.useRef)(null);
18
+ var searchInput = (0, _react.useRef)(null);
19
+ var treeView = (0, _react.useRef)(null);
16
20
  var _ref = parmas || {},
17
21
  inline = _ref.inline;
18
- var handleOpen = (0, _react.useCallback)(function () {
22
+ var handleOpen = (0, _useEventCallback.default)(function () {
19
23
  var _trigger$current;
20
24
  trigger === null || trigger === void 0 ? void 0 : (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.open();
21
- }, [trigger]);
22
- var handleClose = (0, _react.useCallback)(function () {
25
+ });
26
+ var handleClose = (0, _useEventCallback.default)(function () {
23
27
  var _trigger$current2;
24
28
  trigger === null || trigger === void 0 ? void 0 : (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.close();
25
- }, [trigger]);
26
- var handleUpdatePosition = (0, _react.useCallback)(function () {
29
+ });
30
+ var handleUpdatePosition = (0, _useEventCallback.default)(function () {
27
31
  var _trigger$current3;
28
32
  trigger === null || trigger === void 0 ? void 0 : (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.updatePosition();
29
- }, [trigger]);
33
+ });
30
34
  (0, _react.useImperativeHandle)(ref, function () {
31
35
  // Tree and CheckTree
32
36
  if (inline) {
@@ -75,7 +79,9 @@ function usePickerRef(ref, parmas) {
75
79
  root: root,
76
80
  overlay: overlay,
77
81
  target: target,
78
- list: list
82
+ list: list,
83
+ searchInput: searchInput,
84
+ treeView: treeView
79
85
  };
80
86
  }
81
87
  var _default = usePickerRef;
@@ -68,10 +68,10 @@ export declare const useFocusItemValue: <T, D>(defaultFocusItemValue: T | null |
68
68
  };
69
69
  export interface ToggleKeyDownEventProps {
70
70
  toggle?: boolean;
71
- triggerRef: React.RefObject<any>;
72
- targetRef: React.RefObject<any>;
73
- overlayRef?: React.RefObject<any>;
74
- searchInputRef?: React.RefObject<any>;
71
+ trigger: React.RefObject<any>;
72
+ target: React.RefObject<any>;
73
+ overlay?: React.RefObject<any>;
74
+ searchInput?: React.RefObject<any>;
75
75
  active?: boolean;
76
76
  readOnly?: boolean;
77
77
  disabled?: boolean;
@@ -88,7 +88,7 @@ export interface ToggleKeyDownEventProps {
88
88
  * A hook to control the toggle keyboard operation
89
89
  * @param props
90
90
  */
91
- export declare const useToggleKeyDownEvent: (props: ToggleKeyDownEventProps) => (event: React.KeyboardEvent) => void;
91
+ export declare const useToggleKeyDownEvent: (props: ToggleKeyDownEventProps) => (...args: any[]) => any;
92
92
  interface SearchOptions<T> {
93
93
  labelKey: string;
94
94
  searchBy?: (keyword: string, label: any, item: T) => boolean;
@@ -113,8 +113,4 @@ export interface PickerDependentParameters {
113
113
  listRef?: React.RefObject<ListHandle>;
114
114
  inline?: boolean;
115
115
  }
116
- /**
117
- * A hook of the exposed method of Picker
118
- */
119
- export declare function usePublicMethods(ref: any, parmas: PickerDependentParameters): void;
120
116
  export {};
@@ -9,7 +9,6 @@ exports.shouldDisplay = shouldDisplay;
9
9
  exports.usePickerClassName = usePickerClassName;
10
10
  exports.onMenuKeyDown = onMenuKeyDown;
11
11
  exports.useSearch = useSearch;
12
- exports.usePublicMethods = usePublicMethods;
13
12
  exports.useToggleKeyDownEvent = exports.useFocusItemValue = void 0;
14
13
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
15
14
  var _react = _interopRequireWildcard(require("react"));
@@ -366,10 +365,10 @@ exports.useFocusItemValue = useFocusItemValue;
366
365
  var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
367
366
  var _props$toggle = props.toggle,
368
367
  toggle = _props$toggle === void 0 ? true : _props$toggle,
369
- triggerRef = props.triggerRef,
370
- targetRef = props.targetRef,
371
- overlayRef = props.overlayRef,
372
- searchInputRef = props.searchInputRef,
368
+ trigger = props.trigger,
369
+ target = props.target,
370
+ overlay = props.overlay,
371
+ searchInput = props.searchInput,
373
372
  active = props.active,
374
373
  readOnly = props.readOnly,
375
374
  disabled = props.disabled,
@@ -381,32 +380,32 @@ var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
381
380
  onMenuKeyDown = props.onMenuKeyDown,
382
381
  onMenuPressEnter = props.onMenuPressEnter,
383
382
  onMenuPressBackspace = props.onMenuPressBackspace;
384
- var handleClose = (0, _react.useCallback)(function () {
385
- var _triggerRef$current, _triggerRef$current$c, _targetRef$current, _targetRef$current$fo;
386
- (_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);
383
+ var handleClose = (0, _utils.useEventCallback)(function () {
384
+ var _trigger$current, _trigger$current$clos, _trigger$current2, _trigger$current2$foc;
385
+ (_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);
387
386
 
388
387
  // The focus is on the trigger button after closing
389
- (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : (_targetRef$current$fo = _targetRef$current.focus) === null || _targetRef$current$fo === void 0 ? void 0 : _targetRef$current$fo.call(_targetRef$current);
388
+ (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : (_trigger$current2$foc = _trigger$current2.focus) === null || _trigger$current2$foc === void 0 ? void 0 : _trigger$current2$foc.call(_trigger$current2);
390
389
  onClose === null || onClose === void 0 ? void 0 : onClose();
391
- }, [onClose, targetRef, triggerRef]);
392
- var handleOpen = (0, _react.useCallback)(function () {
393
- var _triggerRef$current2, _triggerRef$current2$;
394
- (_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);
390
+ });
391
+ var handleOpen = (0, _utils.useEventCallback)(function () {
392
+ var _trigger$current3, _trigger$current3$ope;
393
+ (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : (_trigger$current3$ope = _trigger$current3.open) === null || _trigger$current3$ope === void 0 ? void 0 : _trigger$current3$ope.call(_trigger$current3);
395
394
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
396
- }, [onOpen, triggerRef]);
397
- var handleToggleDropdown = (0, _react.useCallback)(function () {
395
+ });
396
+ var handleToggleDropdown = (0, _utils.useEventCallback)(function () {
398
397
  if (active) {
399
398
  handleClose();
400
399
  return;
401
400
  }
402
401
  handleOpen();
403
- }, [active, handleOpen, handleClose]);
404
- var onToggle = (0, _react.useCallback)(function (event) {
402
+ });
403
+ var onToggle = (0, _utils.useEventCallback)(function (event) {
405
404
  // Keyboard events should not be processed when readOnly and disabled are set.
406
405
  if (readOnly || disabled || loading) {
407
406
  return;
408
407
  }
409
- if (event.target === (targetRef === null || targetRef === void 0 ? void 0 : targetRef.current)) {
408
+ if (event.target === (target === null || target === void 0 ? void 0 : target.current)) {
410
409
  // enter
411
410
  if (toggle && event.key === _utils.KEY_VALUES.ENTER) {
412
411
  handleToggleDropdown();
@@ -417,7 +416,7 @@ var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
417
416
  onExit === null || onExit === void 0 ? void 0 : onExit(event);
418
417
  }
419
418
  }
420
- if (overlayRef !== null && overlayRef !== void 0 && overlayRef.current) {
419
+ if (overlay !== null && overlay !== void 0 && overlay.current) {
421
420
  // The keyboard operation callback on the menu.
422
421
  onMenuKeyDown === null || onMenuKeyDown === void 0 ? void 0 : onMenuKeyDown(event);
423
422
  if (event.key === _utils.KEY_VALUES.ENTER) {
@@ -428,7 +427,7 @@ var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
428
427
  * There is no callback when typing the Backspace key in the search box.
429
428
  * The default is to remove search keywords
430
429
  */
431
- if (event.key === _utils.KEY_VALUES.BACKSPACE && event.target !== (searchInputRef === null || searchInputRef === void 0 ? void 0 : searchInputRef.current)) {
430
+ if (event.key === _utils.KEY_VALUES.BACKSPACE && event.target !== (searchInput === null || searchInput === void 0 ? void 0 : searchInput.current)) {
432
431
  onMenuPressBackspace === null || onMenuPressBackspace === void 0 ? void 0 : onMenuPressBackspace(event);
433
432
  }
434
433
 
@@ -438,8 +437,8 @@ var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
438
437
  // Exclude Input
439
438
  // eg: <SelectPicker renderExtraFooter={() => <Input />} />
440
439
  if (((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.tagName) !== 'INPUT') {
441
- var _searchInputRef$curre;
442
- searchInputRef === null || searchInputRef === void 0 ? void 0 : (_searchInputRef$curre = searchInputRef.current) === null || _searchInputRef$curre === void 0 ? void 0 : _searchInputRef$curre.focus();
440
+ var _searchInput$current;
441
+ searchInput === null || searchInput === void 0 ? void 0 : (_searchInput$current = searchInput.current) === null || _searchInput$current === void 0 ? void 0 : _searchInput$current.focus();
443
442
  }
444
443
  }
445
444
  }
@@ -449,7 +448,7 @@ var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
449
448
 
450
449
  // Native event callback
451
450
  onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
452
- }, [readOnly, disabled, loading, targetRef, overlayRef, onKeyDown, toggle, handleToggleDropdown, onExit, onMenuKeyDown, searchInputRef, onMenuPressEnter, onMenuPressBackspace, handleClose]);
451
+ });
453
452
  return onToggle;
454
453
  };
455
454
  exports.useToggleKeyDownEvent = useToggleKeyDownEvent;
@@ -498,70 +497,4 @@ function useSearch(data, props) {
498
497
  handleSearch: handleSearch,
499
498
  resetSearch: resetSearch
500
499
  };
501
- }
502
- /**
503
- * A hook of the exposed method of Picker
504
- */
505
- function usePublicMethods(ref, parmas) {
506
- var triggerRef = parmas.triggerRef,
507
- overlayRef = parmas.overlayRef,
508
- targetRef = parmas.targetRef,
509
- rootRef = parmas.rootRef,
510
- listRef = parmas.listRef,
511
- inline = parmas.inline;
512
- var handleOpen = (0, _react.useCallback)(function () {
513
- var _triggerRef$current3;
514
- triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.open();
515
- }, [triggerRef]);
516
- var handleClose = (0, _react.useCallback)(function () {
517
- var _triggerRef$current4;
518
- triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.close();
519
- }, [triggerRef]);
520
- var handleUpdatePosition = (0, _react.useCallback)(function () {
521
- var _triggerRef$current5;
522
- triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current5 = triggerRef.current) === null || _triggerRef$current5 === void 0 ? void 0 : _triggerRef$current5.updatePosition();
523
- }, [triggerRef]);
524
- (0, _react.useImperativeHandle)(ref, function () {
525
- // Tree and CheckTree
526
- if (inline) {
527
- return {
528
- get root() {
529
- var _triggerRef$current$r, _triggerRef$current6;
530
- return rootRef !== null && rootRef !== void 0 && rootRef.current ? rootRef === null || rootRef === void 0 ? void 0 : rootRef.current : (_triggerRef$current$r = triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current6 = triggerRef.current) === null || _triggerRef$current6 === void 0 ? void 0 : _triggerRef$current6.root) !== null && _triggerRef$current$r !== void 0 ? _triggerRef$current$r : null;
531
- },
532
- get list() {
533
- if (!(listRef !== null && listRef !== void 0 && listRef.current)) {
534
- throw new Error('The list is not found, please set `virtualized` for the component.');
535
- }
536
- return listRef === null || listRef === void 0 ? void 0 : listRef.current;
537
- }
538
- };
539
- }
540
- return {
541
- get root() {
542
- var _ref, _triggerRef$current7;
543
- return (_ref = (rootRef === null || rootRef === void 0 ? void 0 : rootRef.current) || (triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current7 = triggerRef.current) === null || _triggerRef$current7 === void 0 ? void 0 : _triggerRef$current7.root)) !== null && _ref !== void 0 ? _ref : null;
544
- },
545
- get overlay() {
546
- var _overlayRef$current;
547
- if (!(overlayRef !== null && overlayRef !== void 0 && overlayRef.current)) {
548
- throw new Error('The overlay is not found. Please confirm whether the picker is open.');
549
- }
550
- return (_overlayRef$current = overlayRef === null || overlayRef === void 0 ? void 0 : overlayRef.current) !== null && _overlayRef$current !== void 0 ? _overlayRef$current : null;
551
- },
552
- get target() {
553
- var _targetRef$current2;
554
- return (_targetRef$current2 = targetRef === null || targetRef === void 0 ? void 0 : targetRef.current) !== null && _targetRef$current2 !== void 0 ? _targetRef$current2 : null;
555
- },
556
- get list() {
557
- if (!(listRef !== null && listRef !== void 0 && listRef.current)) {
558
- throw new Error("\n The list is not found.\n 1.Please set virtualized for the component.\n 2.Please confirm whether the picker is open.\n ");
559
- }
560
- return listRef === null || listRef === void 0 ? void 0 : listRef.current;
561
- },
562
- updatePosition: handleUpdatePosition,
563
- open: handleOpen,
564
- close: handleClose
565
- };
566
- });
567
500
  }
@@ -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>>;
@@ -79,11 +79,13 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
79
79
  renderMenuItem = props.renderMenuItem,
80
80
  renderExtraFooter = props.renderExtraFooter,
81
81
  rest = (0, _objectWithoutPropertiesLoose2.default)(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"]);
82
- var triggerRef = (0, _react.useRef)(null);
83
- var targetRef = (0, _react.useRef)(null);
84
- var overlayRef = (0, _react.useRef)(null);
85
- var searchInputRef = (0, _react.useRef)(null);
86
- var listRef = (0, _react.useRef)(null);
82
+ var _usePickerRef = (0, _Picker.usePickerRef)(ref),
83
+ trigger = _usePickerRef.trigger,
84
+ root = _usePickerRef.root,
85
+ target = _usePickerRef.target,
86
+ overlay = _usePickerRef.overlay,
87
+ list = _usePickerRef.list,
88
+ searchInput = _usePickerRef.searchInput;
87
89
  var _useCustom = (0, _utils.useCustom)('Picker', overrideLocale),
88
90
  locale = _useCustom.locale;
89
91
  var _ref = (0, _utils.useControlled)(valueProp, defaultValue),
@@ -93,7 +95,7 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
93
95
  data: data,
94
96
  valueKey: valueKey,
95
97
  target: function target() {
96
- return overlayRef.current;
98
+ return overlay.current;
97
99
  }
98
100
  }),
99
101
  focusItemValue = _useFocusItemValue.focusItemValue,
@@ -116,19 +118,19 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
116
118
  var _useState = (0, _react.useState)(false),
117
119
  active = _useState[0],
118
120
  setActive = _useState[1];
119
- var handleClose = (0, _react.useCallback)(function () {
120
- var _triggerRef$current, _triggerRef$current$c;
121
- (_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);
122
- }, []);
123
- var handleSelect = (0, _react.useCallback)(function (value, item, event) {
124
- var _targetRef$current;
121
+ var handleClose = (0, _utils.useEventCallback)(function () {
122
+ var _trigger$current, _trigger$current$clos;
123
+ (_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);
124
+ });
125
+ var handleSelect = (0, _utils.useEventCallback)(function (value, item, event) {
126
+ var _target$current;
125
127
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);
126
- (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.focus();
127
- }, [onSelect]);
128
- var handleChangeValue = (0, _react.useCallback)(function (value, event) {
128
+ (_target$current = target.current) === null || _target$current === void 0 ? void 0 : _target$current.focus();
129
+ });
130
+ var handleChangeValue = (0, _utils.useEventCallback)(function (value, event) {
129
131
  onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
130
- }, [onChange]);
131
- var handleMenuPressEnter = (0, _react.useCallback)(function (event) {
132
+ });
133
+ var handleMenuPressEnter = (0, _utils.useEventCallback)(function (event) {
132
134
  if (!focusItemValue) {
133
135
  return;
134
136
  }
@@ -141,28 +143,28 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
141
143
  handleSelect(focusItemValue, focusItem, event);
142
144
  handleChangeValue(focusItemValue, event);
143
145
  handleClose();
144
- }, [data, focusItemValue, handleChangeValue, handleClose, handleSelect, setValue, valueKey]);
145
- var handleItemSelect = (0, _react.useCallback)(function (value, item, event) {
146
+ });
147
+ var handleItemSelect = (0, _utils.useEventCallback)(function (value, item, event) {
146
148
  setValue(value);
147
149
  setFocusItemValue(value);
148
150
  handleSelect(value, item, event);
149
151
  handleChangeValue(value, event);
150
152
  handleClose();
151
- }, [setValue, setFocusItemValue, handleSelect, handleChangeValue, handleClose]);
152
- var handleClean = (0, _react.useCallback)(function (event) {
153
+ });
154
+ var handleClean = (0, _utils.useEventCallback)(function (event) {
153
155
  if (disabled || !cleanable) {
154
156
  return;
155
157
  }
156
158
  setValue(null);
157
159
  setFocusItemValue(value);
158
160
  handleChangeValue(null, event);
159
- }, [value, disabled, cleanable, setValue, handleChangeValue, setFocusItemValue]);
161
+ });
160
162
  var onPickerKeyDown = (0, _Picker.useToggleKeyDownEvent)((0, _extends2.default)({
161
163
  toggle: !focusItemValue || !active,
162
- triggerRef: triggerRef,
163
- targetRef: targetRef,
164
- overlayRef: overlayRef,
165
- searchInputRef: searchInputRef,
164
+ trigger: trigger,
165
+ target: target,
166
+ overlay: overlay,
167
+ searchInput: searchInput,
166
168
  active: active,
167
169
  onExit: handleClean,
168
170
  onMenuKeyDown: onFocusItem,
@@ -171,22 +173,16 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
171
173
  setFocusItemValue(null);
172
174
  }
173
175
  }, rest));
174
- var handleExited = (0, _react.useCallback)(function () {
176
+ var handleExited = (0, _utils.useEventCallback)(function () {
175
177
  resetSearch();
176
178
  setActive(false);
177
179
  onSearch === null || onSearch === void 0 ? void 0 : onSearch('');
178
180
  onClose === null || onClose === void 0 ? void 0 : onClose();
179
- }, [onClose, resetSearch, onSearch]);
180
- var handleEntered = (0, _react.useCallback)(function () {
181
+ });
182
+ var handleEntered = (0, _utils.useEventCallback)(function () {
181
183
  setActive(true);
182
184
  setFocusItemValue(value);
183
185
  onOpen === null || onOpen === void 0 ? void 0 : onOpen();
184
- }, [onOpen, setFocusItemValue, value]);
185
- (0, _Picker.usePublicMethods)(ref, {
186
- triggerRef: triggerRef,
187
- overlayRef: overlayRef,
188
- targetRef: targetRef,
189
- listRef: listRef
190
186
  });
191
187
 
192
188
  // Find active `MenuItem` by `value`
@@ -233,7 +229,7 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
233
229
  var menu = items.length ? /*#__PURE__*/_react.default.createElement(_Picker.DropdownMenu, {
234
230
  id: id ? id + "-listbox" : undefined,
235
231
  listProps: listProps,
236
- listRef: listRef,
232
+ listRef: list,
237
233
  disabledItemValues: disabledItemValues,
238
234
  valueKey: valueKey,
239
235
  labelKey: labelKey,
@@ -258,17 +254,17 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
258
254
  className: prefix(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["none"])))
259
255
  }, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
260
256
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerOverlay, {
261
- ref: (0, _utils.mergeRefs)(overlayRef, speakerRef),
257
+ ref: (0, _utils.mergeRefs)(overlay, speakerRef),
262
258
  autoWidth: menuAutoWidth,
263
259
  className: classes,
264
260
  style: styles,
265
261
  onKeyDown: onPickerKeyDown,
266
- target: triggerRef
262
+ target: trigger
267
263
  }, searchable && /*#__PURE__*/_react.default.createElement(_Picker.SearchBar, {
268
264
  placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
269
265
  onChange: handleSearch,
270
266
  value: searchKeyword,
271
- inputRef: searchInputRef
267
+ inputRef: searchInput
272
268
  }), renderMenu ? renderMenu(menu) : menu, renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
273
269
  };
274
270
  var _usePickerClassName = (0, _Picker.usePickerClassName)((0, _extends2.default)({}, props, {
@@ -282,17 +278,18 @@ var SelectPicker = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
282
278
  usedClassNamePropKeys = _usePickerClassName[1];
283
279
  return /*#__PURE__*/_react.default.createElement(_Picker.PickerToggleTrigger, {
284
280
  pickerProps: (0, _pick.default)(props, _Picker.pickTriggerPropKeys),
285
- ref: triggerRef,
281
+ ref: trigger,
286
282
  placement: placement,
287
283
  onEntered: (0, _utils.createChainedFunction)(handleEntered, onEntered),
288
284
  onExited: (0, _utils.createChainedFunction)(handleExited, onExited),
289
285
  speaker: renderDropdownMenu
290
286
  }, /*#__PURE__*/_react.default.createElement(Component, {
291
287
  className: classes,
292
- style: style
288
+ style: style,
289
+ ref: root
293
290
  }, /*#__PURE__*/_react.default.createElement(_Picker.PickerToggle, (0, _extends2.default)({}, (0, _omit.default)(rest, [].concat(_Picker.omitTriggerPropKeys, usedClassNamePropKeys)), {
294
291
  id: id,
295
- ref: targetRef,
292
+ ref: target,
296
293
  appearance: appearance,
297
294
  onClean: (0, _utils.createChainedFunction)(handleClean, onClean),
298
295
  onKeyDown: onPickerKeyDown,