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.
- package/CHANGELOG.md +27 -0
- package/Cascader/styles/index.less +5 -4
- package/DatePicker/styles/index.less +18 -11
- package/DateRangeInput/package.json +7 -0
- package/DateRangePicker/styles/index.less +20 -0
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/InputGroup/styles/index.less +1 -0
- package/Picker/styles/index.less +51 -24
- package/Picker/styles/mixin.less +17 -13
- package/README.md +34 -24
- package/Sidenav/styles/index.less +2 -0
- package/TagInput/styles/index.less +1 -1
- package/cjs/AutoComplete/AutoComplete.js +25 -26
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +7 -1
- package/cjs/Calendar/CalendarContainer.js +11 -4
- package/cjs/Calendar/CalendarHeader.js +2 -0
- package/cjs/Calendar/MonthDropdown.js +7 -2
- package/cjs/Calendar/MonthDropdownItem.js +2 -2
- package/cjs/Calendar/Table.js +6 -1
- package/cjs/Calendar/TimeDropdown.js +17 -10
- package/cjs/Calendar/types.d.ts +1 -0
- package/cjs/Cascader/Cascader.js +46 -48
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +33 -36
- package/cjs/CheckTreePicker/CheckTreePicker.js +61 -64
- package/cjs/CustomProvider/CustomProvider.d.ts +13 -0
- package/cjs/CustomProvider/CustomProvider.js +2 -2
- package/cjs/DateInput/DateField.d.ts +9 -31
- package/cjs/DateInput/DateField.js +61 -12
- package/cjs/DateInput/DateInput.d.ts +7 -2
- package/cjs/DateInput/DateInput.js +74 -92
- package/cjs/DateInput/index.d.ts +4 -0
- package/cjs/DateInput/index.js +19 -1
- package/cjs/DateInput/useDateInputState.d.ts +7 -31
- package/cjs/DateInput/useDateInputState.js +39 -15
- package/cjs/DateInput/useIsFocused.d.ts +7 -0
- package/cjs/DateInput/useIsFocused.js +28 -0
- package/cjs/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/cjs/DateInput/useKeyboardInputEvent.js +44 -0
- package/cjs/DateInput/utils.d.ts +23 -1
- package/cjs/DateInput/utils.js +155 -51
- package/cjs/DatePicker/DatePicker.d.ts +25 -8
- package/cjs/DatePicker/DatePicker.js +208 -241
- package/cjs/DatePicker/Toolbar.js +5 -22
- package/cjs/DatePicker/utils.d.ts +5 -1
- package/cjs/DatePicker/utils.js +17 -1
- package/cjs/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/cjs/DateRangeInput/DateRangeInput.js +244 -0
- package/cjs/DateRangeInput/index.d.ts +3 -0
- package/cjs/DateRangeInput/index.js +9 -0
- package/cjs/DateRangeInput/utils.d.ts +61 -0
- package/cjs/DateRangeInput/utils.js +146 -0
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +251 -203
- package/cjs/DateRangePicker/types.d.ts +11 -3
- package/cjs/DateRangePicker/utils.d.ts +2 -1
- package/cjs/DateRangePicker/utils.js +7 -5
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +6 -5
- package/cjs/Input/Input.d.ts +11 -0
- package/cjs/Input/Input.js +11 -8
- package/cjs/InputPicker/InputPicker.js +62 -63
- package/cjs/MultiCascader/MultiCascader.js +40 -42
- package/cjs/Overlay/OverlayTrigger.d.ts +3 -0
- package/cjs/Overlay/OverlayTrigger.js +5 -0
- package/cjs/Picker/PickerIndicator.d.ts +10 -0
- package/cjs/Picker/PickerIndicator.js +49 -0
- package/cjs/Picker/PickerLabel.d.ts +9 -0
- package/cjs/Picker/PickerLabel.js +23 -0
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +52 -177
- package/cjs/Picker/index.d.ts +3 -0
- package/cjs/Picker/index.js +10 -1
- package/cjs/Picker/usePickerRef.d.ts +19 -0
- package/cjs/Picker/usePickerRef.js +88 -0
- package/cjs/Picker/utils.d.ts +5 -9
- package/cjs/Picker/utils.js +22 -89
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +39 -42
- package/cjs/TreePicker/TreePicker.js +72 -75
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +3 -1
- package/cjs/locales/index.d.ts +2 -2
- package/cjs/utils/constants.d.ts +2 -1
- package/cjs/utils/constants.js +1 -0
- package/cjs/utils/dateUtils.d.ts +0 -1
- package/cjs/utils/dateUtils.js +0 -6
- package/cjs/utils/getStringLength.d.ts +2 -0
- package/cjs/utils/getStringLength.js +18 -0
- package/cjs/utils/index.d.ts +3 -0
- package/cjs/utils/index.js +11 -2
- package/cjs/utils/useCustom.js +1 -1
- package/cjs/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/cjs/utils/useIsomorphicLayoutEffect.js +9 -0
- package/dist/rsuite-no-reset-rtl.css +140 -207
- package/dist/rsuite-no-reset-rtl.min.css +1 -1
- package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
- package/dist/rsuite-no-reset.css +140 -207
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +140 -75
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +140 -75
- package/dist/rsuite.js +4833 -258
- package/dist/rsuite.js.map +1 -1
- package/dist/rsuite.min.css +1 -1
- package/dist/rsuite.min.css.map +1 -1
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/AutoComplete/AutoComplete.js +28 -29
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +7 -1
- package/esm/Calendar/CalendarContainer.js +12 -5
- package/esm/Calendar/CalendarHeader.js +2 -0
- package/esm/Calendar/MonthDropdown.js +7 -2
- package/esm/Calendar/MonthDropdownItem.js +2 -2
- package/esm/Calendar/Table.js +6 -1
- package/esm/Calendar/TimeDropdown.js +17 -10
- package/esm/Calendar/types.d.ts +1 -0
- package/esm/Cascader/Cascader.js +49 -51
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +36 -39
- package/esm/CheckTreePicker/CheckTreePicker.js +64 -67
- package/esm/CustomProvider/CustomProvider.d.ts +13 -0
- package/esm/CustomProvider/CustomProvider.js +3 -3
- package/esm/DateInput/DateField.d.ts +9 -31
- package/esm/DateInput/DateField.js +61 -12
- package/esm/DateInput/DateInput.d.ts +7 -2
- package/esm/DateInput/DateInput.js +77 -95
- package/esm/DateInput/index.d.ts +4 -0
- package/esm/DateInput/index.js +4 -0
- package/esm/DateInput/useDateInputState.d.ts +7 -31
- package/esm/DateInput/useDateInputState.js +41 -18
- package/esm/DateInput/useIsFocused.d.ts +7 -0
- package/esm/DateInput/useIsFocused.js +22 -0
- package/esm/DateInput/useKeyboardInputEvent.d.ts +10 -0
- package/esm/DateInput/useKeyboardInputEvent.js +38 -0
- package/esm/DateInput/utils.d.ts +23 -1
- package/esm/DateInput/utils.js +150 -51
- package/esm/DatePicker/DatePicker.d.ts +25 -8
- package/esm/DatePicker/DatePicker.js +211 -244
- package/esm/DatePicker/Toolbar.js +5 -22
- package/esm/DatePicker/utils.d.ts +5 -1
- package/esm/DatePicker/utils.js +16 -1
- package/esm/DateRangeInput/DateRangeInput.d.ts +29 -0
- package/esm/DateRangeInput/DateRangeInput.js +237 -0
- package/esm/DateRangeInput/index.d.ts +3 -0
- package/esm/DateRangeInput/index.js +3 -0
- package/esm/DateRangeInput/utils.d.ts +61 -0
- package/esm/DateRangeInput/utils.js +137 -0
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +253 -205
- package/esm/DateRangePicker/types.d.ts +11 -3
- package/esm/DateRangePicker/utils.d.ts +2 -1
- package/esm/DateRangePicker/utils.js +7 -5
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +4 -3
- package/esm/Input/Input.d.ts +11 -0
- package/esm/Input/Input.js +12 -9
- package/esm/InputPicker/InputPicker.js +64 -65
- package/esm/MultiCascader/MultiCascader.js +43 -45
- package/esm/Overlay/OverlayTrigger.d.ts +3 -0
- package/esm/Overlay/OverlayTrigger.js +5 -0
- package/esm/Picker/PickerIndicator.d.ts +10 -0
- package/esm/Picker/PickerIndicator.js +43 -0
- package/esm/Picker/PickerLabel.d.ts +9 -0
- package/esm/Picker/PickerLabel.js +17 -0
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +54 -179
- package/esm/Picker/index.d.ts +3 -0
- package/esm/Picker/index.js +3 -0
- package/esm/Picker/usePickerRef.d.ts +19 -0
- package/esm/Picker/usePickerRef.js +82 -0
- package/esm/Picker/utils.d.ts +5 -9
- package/esm/Picker/utils.js +24 -90
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +42 -45
- package/esm/TreePicker/TreePicker.js +75 -78
- package/esm/index.d.ts +2 -0
- package/esm/index.js +1 -0
- package/esm/locales/index.d.ts +2 -2
- package/esm/utils/constants.d.ts +2 -1
- package/esm/utils/constants.js +1 -0
- package/esm/utils/dateUtils.d.ts +0 -1
- package/esm/utils/dateUtils.js +0 -5
- package/esm/utils/getStringLength.d.ts +2 -0
- package/esm/utils/getStringLength.js +13 -0
- package/esm/utils/index.d.ts +3 -0
- package/esm/utils/index.js +4 -1
- package/esm/utils/useCustom.js +2 -2
- package/esm/utils/useIsomorphicLayoutEffect.d.ts +3 -0
- package/esm/utils/useIsomorphicLayoutEffect.js +4 -0
- package/package.json +1 -1
- package/styles/color-modes/dark.less +1 -0
- package/styles/color-modes/high-contrast.less +1 -0
- package/styles/color-modes/light.less +1 -0
- package/styles/mixins/combobox.less +10 -0
- package/styles/normalize.less +230 -231
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
3
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
var _templateObject
|
|
6
|
-
import React, {
|
|
7
|
-
import PropTypes from 'prop-types';
|
|
8
|
-
import debounce from 'lodash/debounce';
|
|
5
|
+
var _templateObject;
|
|
6
|
+
import React, { useRef, useMemo } from 'react';
|
|
9
7
|
import ToggleButton from './ToggleButton';
|
|
10
|
-
import
|
|
11
|
-
import { useClassNames, useCustom, KEY_VALUES, mergeRefs } from '../utils';
|
|
8
|
+
import { useClassNames, mergeRefs, useEventCallback } from '../utils';
|
|
12
9
|
import Plaintext from '../Plaintext';
|
|
13
10
|
import useToggleCaret from '../utils/useToggleCaret';
|
|
14
|
-
import TextMask from '../MaskedInput/TextMask';
|
|
15
|
-
import deprecatePropType from '../utils/deprecatePropType';
|
|
16
|
-
import Loader from '../Loader';
|
|
17
11
|
import Stack from '../Stack';
|
|
18
|
-
|
|
12
|
+
import PickerIndicator from './PickerIndicator';
|
|
13
|
+
import PickerLabel from './PickerLabel';
|
|
19
14
|
var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
20
|
-
var
|
|
15
|
+
var active = props.active,
|
|
21
16
|
_props$as = props.as,
|
|
22
17
|
Component = _props$as === void 0 ? ToggleButton : _props$as,
|
|
23
18
|
_props$classPrefix = props.classPrefix,
|
|
@@ -30,26 +25,14 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
30
25
|
readOnly = props.readOnly,
|
|
31
26
|
plaintext = props.plaintext,
|
|
32
27
|
hasValue = props.hasValue,
|
|
33
|
-
editable = props.editable,
|
|
34
28
|
_props$loading = props.loading,
|
|
35
29
|
loading = _props$loading === void 0 ? false : _props$loading,
|
|
36
|
-
|
|
30
|
+
cleanable = props.cleanable,
|
|
37
31
|
_props$tabIndex = props.tabIndex,
|
|
38
|
-
|
|
32
|
+
tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,
|
|
39
33
|
id = props.id,
|
|
40
|
-
value = props.value,
|
|
41
|
-
inputPlaceholder = props.inputPlaceholder,
|
|
42
34
|
inputValueProp = props.inputValue,
|
|
43
|
-
_props$inputMask = props.inputMask,
|
|
44
|
-
inputMask = _props$inputMask === void 0 ? defaultInputMask : _props$inputMask,
|
|
45
|
-
onInputChange = props.onInputChange,
|
|
46
|
-
onInputPressEnter = props.onInputPressEnter,
|
|
47
|
-
onInputBackspace = props.onInputBackspace,
|
|
48
|
-
onInputBlur = props.onInputBlur,
|
|
49
|
-
onInputFocus = props.onInputFocus,
|
|
50
35
|
onClean = props.onClean,
|
|
51
|
-
onFocus = props.onFocus,
|
|
52
|
-
onBlur = props.onBlur,
|
|
53
36
|
_props$placement = props.placement,
|
|
54
37
|
placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
|
|
55
38
|
caretComponent = props.caretComponent,
|
|
@@ -57,102 +40,29 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
57
40
|
caretAs = _props$caretAs === void 0 ? caretComponent : _props$caretAs,
|
|
58
41
|
label = props.label,
|
|
59
42
|
name = props.name,
|
|
60
|
-
rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "
|
|
61
|
-
var
|
|
62
|
-
locale = _useCustom.locale;
|
|
63
|
-
var inputRef = useRef(null);
|
|
64
|
-
var comboboxRef = useRef(null);
|
|
65
|
-
var _useState = useState(false),
|
|
66
|
-
activeState = _useState[0],
|
|
67
|
-
setActive = _useState[1];
|
|
43
|
+
rest = _objectWithoutPropertiesLoose(props, ["active", "as", "classPrefix", "children", "caret", "className", "disabled", "readOnly", "plaintext", "hasValue", "loading", "cleanable", "tabIndex", "id", "inputValue", "onClean", "placement", "caretComponent", "caretAs", "label", "name"]);
|
|
44
|
+
var combobox = useRef(null);
|
|
68
45
|
var _useClassNames = useClassNames(classPrefix),
|
|
69
46
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
70
47
|
merge = _useClassNames.merge,
|
|
71
48
|
prefix = _useClassNames.prefix;
|
|
72
|
-
var
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
setInputValue = _useState2[1];
|
|
78
|
-
useEffect(function () {
|
|
79
|
-
if (comboboxRef.current) {
|
|
80
|
-
var _value = getInputValue();
|
|
81
|
-
setInputValue(_value);
|
|
49
|
+
var inputValue = useMemo(function () {
|
|
50
|
+
if (typeof inputValueProp === 'number' || typeof inputValueProp === 'string') {
|
|
51
|
+
return inputValueProp;
|
|
52
|
+
} else if (Array.isArray(inputValueProp)) {
|
|
53
|
+
return inputValueProp.join(',');
|
|
82
54
|
}
|
|
83
|
-
|
|
55
|
+
return '';
|
|
56
|
+
}, [inputValueProp]);
|
|
84
57
|
var classes = merge(className, withClassPrefix({
|
|
85
|
-
active:
|
|
58
|
+
active: active
|
|
86
59
|
}));
|
|
87
|
-
var
|
|
88
|
-
|
|
89
|
-
setActive(true);
|
|
90
|
-
}
|
|
91
|
-
if (editable) {
|
|
92
|
-
// Avoid firing the onFocus event twice when DatePicker and DateRangePicker allow keyboard input.
|
|
93
|
-
if (event.target === inputRef.current) {
|
|
94
|
-
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Force the input to be focused and editable.
|
|
98
|
-
if (document.activeElement === comboboxRef.current) {
|
|
99
|
-
var _inputRef$current;
|
|
100
|
-
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();
|
|
101
|
-
}
|
|
102
|
-
} else {
|
|
103
|
-
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
104
|
-
}
|
|
105
|
-
}, [editable, loading, onFocus]);
|
|
106
|
-
var handleBlur = useCallback(function (event) {
|
|
107
|
-
if (inputRef.current && !editable) {
|
|
108
|
-
setActive(false);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// When activeElement is an input, it remains active.
|
|
112
|
-
if (editable && inputRef.current && document.activeElement !== inputRef.current) {
|
|
113
|
-
setActive(false);
|
|
114
|
-
}
|
|
115
|
-
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
116
|
-
}, [editable, onBlur]);
|
|
117
|
-
var handleInputBlur = function handleInputBlur(event) {
|
|
118
|
-
setInputValue(getInputValue());
|
|
119
|
-
onInputBlur === null || onInputBlur === void 0 ? void 0 : onInputBlur(event);
|
|
120
|
-
};
|
|
121
|
-
var handleClean = useCallback(function (event) {
|
|
122
|
-
var _inputRef$current2, _comboboxRef$current;
|
|
60
|
+
var handleClean = useEventCallback(function (event) {
|
|
61
|
+
var _combobox$current;
|
|
123
62
|
event.stopPropagation();
|
|
124
63
|
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
editable ? (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus() : (_comboboxRef$current = comboboxRef.current) === null || _comboboxRef$current === void 0 ? void 0 : _comboboxRef$current.focus();
|
|
128
|
-
}, [editable, onClean]);
|
|
129
|
-
var handleInputChange = useCallback(function (event) {
|
|
130
|
-
var _event$target;
|
|
131
|
-
var value = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value;
|
|
132
|
-
setInputValue(value);
|
|
133
|
-
onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(value, event);
|
|
134
|
-
}, [onInputChange]);
|
|
135
|
-
var handleInputKeyDown = useCallback(function (event) {
|
|
136
|
-
if (editable) {
|
|
137
|
-
if (event.key === KEY_VALUES.ENTER) {
|
|
138
|
-
onInputPressEnter === null || onInputPressEnter === void 0 ? void 0 : onInputPressEnter(event);
|
|
139
|
-
}
|
|
140
|
-
if (event.key === KEY_VALUES.BACKSPACE) {
|
|
141
|
-
onInputBackspace === null || onInputBackspace === void 0 ? void 0 : onInputBackspace(event);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}, [editable, onInputPressEnter, onInputBackspace]);
|
|
145
|
-
var renderInput = useCallback(function (ref, props) {
|
|
146
|
-
return /*#__PURE__*/React.createElement("input", _extends({
|
|
147
|
-
type: "text",
|
|
148
|
-
autoComplete: "off",
|
|
149
|
-
ref: mergeRefs(inputRef, ref),
|
|
150
|
-
name: name,
|
|
151
|
-
style: {
|
|
152
|
-
pointerEvents: editable ? undefined : 'none'
|
|
153
|
-
}
|
|
154
|
-
}, props));
|
|
155
|
-
}, [editable, name]);
|
|
64
|
+
(_combobox$current = combobox.current) === null || _combobox$current === void 0 ? void 0 : _combobox$current.focus();
|
|
65
|
+
});
|
|
156
66
|
var ToggleCaret = useToggleCaret(placement);
|
|
157
67
|
var Caret = caretAs !== null && caretAs !== void 0 ? caretAs : ToggleCaret;
|
|
158
68
|
if (plaintext) {
|
|
@@ -161,88 +71,53 @@ var PickerToggle = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
161
71
|
localeKey: "notSelected"
|
|
162
72
|
}, hasValue ? children : null);
|
|
163
73
|
}
|
|
164
|
-
var showCleanButton =
|
|
165
|
-
|
|
166
|
-
// When the component is read-only or disabled, the input is not interactive.
|
|
167
|
-
var inputFocused = readOnly || disabled ? false : editable && activeState;
|
|
168
|
-
var tabIndex = disabled ? undefined : tabIndexProp;
|
|
74
|
+
var showCleanButton = cleanable && hasValue && !readOnly;
|
|
169
75
|
return /*#__PURE__*/React.createElement(Component, _extends({
|
|
170
76
|
role: "combobox",
|
|
171
77
|
"aria-haspopup": "listbox",
|
|
172
|
-
"aria-expanded":
|
|
78
|
+
"aria-expanded": active,
|
|
173
79
|
"aria-disabled": disabled,
|
|
174
80
|
"aria-owns": id ? id + "-listbox" : undefined
|
|
175
81
|
}, rest, {
|
|
176
|
-
ref: mergeRefs(
|
|
82
|
+
ref: mergeRefs(combobox, ref),
|
|
177
83
|
disabled: disabled,
|
|
178
|
-
tabIndex: tabIndex,
|
|
179
|
-
className: classes
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
,
|
|
183
|
-
|
|
184
|
-
}), /*#__PURE__*/React.createElement(Stack, null, label && /*#__PURE__*/React.createElement(Stack.Item, null, /*#__PURE__*/React.createElement("span", {
|
|
185
|
-
className: prefix('label')
|
|
84
|
+
tabIndex: disabled ? undefined : tabIndex,
|
|
85
|
+
className: classes
|
|
86
|
+
}), /*#__PURE__*/React.createElement(Stack, null, label && /*#__PURE__*/React.createElement(Stack.Item, null, /*#__PURE__*/React.createElement(PickerLabel, {
|
|
87
|
+
as: "span",
|
|
88
|
+
className: prefix('label'),
|
|
89
|
+
id: id ? id + "-label" : undefined
|
|
186
90
|
}, label)), /*#__PURE__*/React.createElement(Stack.Item, {
|
|
187
91
|
grow: 1,
|
|
188
92
|
style: {
|
|
189
93
|
overflow: 'hidden'
|
|
190
94
|
}
|
|
191
|
-
},
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
padding: '1px 0'
|
|
195
|
-
},
|
|
196
|
-
"data-testid": "spinner"
|
|
197
|
-
}) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextMask, {
|
|
198
|
-
keepCharPositions: true,
|
|
199
|
-
mask: inputMask,
|
|
200
|
-
value: Array.isArray(inputValue) ? inputValue.toString() : inputValue,
|
|
201
|
-
onBlur: handleInputBlur,
|
|
202
|
-
onFocus: onInputFocus,
|
|
203
|
-
onChange: handleInputChange,
|
|
204
|
-
onKeyDown: handleInputKeyDown,
|
|
205
|
-
id: id,
|
|
206
|
-
"aria-hidden": !inputFocused,
|
|
207
|
-
readOnly: !inputFocused,
|
|
208
|
-
disabled: disabled,
|
|
95
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
96
|
+
readOnly: true,
|
|
97
|
+
"aria-hidden": true,
|
|
209
98
|
"aria-controls": id ? id + "-listbox" : undefined,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
99
|
+
"aria-labelledby": label ? id + "-label" : undefined,
|
|
100
|
+
tabIndex: -1,
|
|
101
|
+
"data-testid": "picker-toggle-input",
|
|
102
|
+
name: name,
|
|
103
|
+
value: inputValue,
|
|
104
|
+
id: id,
|
|
105
|
+
className: prefix('textbox', 'read-only'),
|
|
106
|
+
style: {
|
|
107
|
+
pointerEvents: 'none'
|
|
108
|
+
}
|
|
217
109
|
}), children ? /*#__PURE__*/React.createElement("span", {
|
|
218
110
|
className: prefix(hasValue ? 'value' : 'placeholder'),
|
|
219
111
|
"aria-placeholder": typeof children === 'string' ? children : undefined
|
|
220
|
-
}, children) : null)
|
|
221
|
-
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
})));
|
|
112
|
+
}, children) : null), /*#__PURE__*/React.createElement(Stack.Item, {
|
|
113
|
+
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["indicator"])))
|
|
114
|
+
}, /*#__PURE__*/React.createElement(PickerIndicator, {
|
|
115
|
+
as: React.Fragment,
|
|
116
|
+
loading: loading,
|
|
117
|
+
caretAs: caret ? Caret : null,
|
|
118
|
+
onClose: handleClean,
|
|
119
|
+
showCleanButton: showCleanButton
|
|
120
|
+
}))));
|
|
230
121
|
});
|
|
231
122
|
PickerToggle.displayName = 'PickerToggle';
|
|
232
|
-
PickerToggle.propTypes = {
|
|
233
|
-
classPrefix: PropTypes.string,
|
|
234
|
-
hasValue: PropTypes.bool,
|
|
235
|
-
cleanable: PropTypes.bool,
|
|
236
|
-
className: PropTypes.string,
|
|
237
|
-
children: PropTypes.node,
|
|
238
|
-
caret: PropTypes.bool,
|
|
239
|
-
as: PropTypes.elementType,
|
|
240
|
-
onClean: PropTypes.func,
|
|
241
|
-
active: PropTypes.bool,
|
|
242
|
-
readOnly: PropTypes.bool,
|
|
243
|
-
disabled: PropTypes.bool,
|
|
244
|
-
plaintext: PropTypes.bool,
|
|
245
|
-
caretComponent: deprecatePropType(PropTypes.elementType, 'Use `caretAs` instead.'),
|
|
246
|
-
caretAs: PropTypes.elementType
|
|
247
|
-
};
|
|
248
123
|
export default PickerToggle;
|
package/esm/Picker/index.d.ts
CHANGED
|
@@ -7,9 +7,12 @@ export { default as DropdownMenuGroup } from './DropdownMenuGroup';
|
|
|
7
7
|
export { default as DropdownMenuItem } from './DropdownMenuItem';
|
|
8
8
|
export { default as PickerOverlay } from './PickerOverlay';
|
|
9
9
|
export { default as PickerToggle } from './PickerToggle';
|
|
10
|
+
export { default as PickerLabel } from './PickerLabel';
|
|
11
|
+
export { default as PickerIndicator } from './PickerIndicator';
|
|
10
12
|
export { default as PickerToggleTrigger } from './PickerToggleTrigger';
|
|
11
13
|
export { default as SearchBar } from './SearchBar';
|
|
12
14
|
export { default as SelectedElement } from './SelectedElement';
|
|
15
|
+
export { default as usePickerRef } from './usePickerRef';
|
|
13
16
|
export { pickTriggerPropKeys, omitTriggerPropKeys };
|
|
14
17
|
export type { OverlayTriggerHandle, PositionChildProps, PickerHandle, PickerComponent, PickerToggleProps };
|
|
15
18
|
export * from './utils';
|
package/esm/Picker/index.js
CHANGED
|
@@ -6,9 +6,12 @@ export { default as DropdownMenuGroup } from './DropdownMenuGroup';
|
|
|
6
6
|
export { default as DropdownMenuItem } from './DropdownMenuItem';
|
|
7
7
|
export { default as PickerOverlay } from './PickerOverlay';
|
|
8
8
|
export { default as PickerToggle } from './PickerToggle';
|
|
9
|
+
export { default as PickerLabel } from './PickerLabel';
|
|
10
|
+
export { default as PickerIndicator } from './PickerIndicator';
|
|
9
11
|
export { default as PickerToggleTrigger } from './PickerToggleTrigger';
|
|
10
12
|
export { default as SearchBar } from './SearchBar';
|
|
11
13
|
export { default as SelectedElement } from './SelectedElement';
|
|
14
|
+
export { default as usePickerRef } from './usePickerRef';
|
|
12
15
|
export { pickTriggerPropKeys, omitTriggerPropKeys };
|
|
13
16
|
export * from './utils';
|
|
14
17
|
export * from './propTypes';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { OverlayTriggerHandle } from './PickerToggleTrigger';
|
|
3
|
+
import type { ListHandle } from '../Windowing';
|
|
4
|
+
export interface PickerDependentParameters {
|
|
5
|
+
inline?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A hook of the exposed method of Picker
|
|
9
|
+
*/
|
|
10
|
+
declare function usePickerRef(ref: any, parmas?: PickerDependentParameters): {
|
|
11
|
+
trigger: import("react").RefObject<OverlayTriggerHandle>;
|
|
12
|
+
root: import("react").MutableRefObject<any>;
|
|
13
|
+
overlay: import("react").RefObject<HTMLElement>;
|
|
14
|
+
target: import("react").RefObject<HTMLElement>;
|
|
15
|
+
list: import("react").RefObject<ListHandle>;
|
|
16
|
+
searchInput: import("react").RefObject<HTMLInputElement>;
|
|
17
|
+
treeView: import("react").RefObject<HTMLDivElement>;
|
|
18
|
+
};
|
|
19
|
+
export default usePickerRef;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { useImperativeHandle, useRef } from 'react';
|
|
3
|
+
import useEventCallback from '../utils/useEventCallback';
|
|
4
|
+
/**
|
|
5
|
+
* A hook of the exposed method of Picker
|
|
6
|
+
*/
|
|
7
|
+
function usePickerRef(ref, parmas) {
|
|
8
|
+
var trigger = useRef(null);
|
|
9
|
+
var root = useRef(null);
|
|
10
|
+
var target = useRef(null);
|
|
11
|
+
var overlay = useRef(null);
|
|
12
|
+
var list = useRef(null);
|
|
13
|
+
var searchInput = useRef(null);
|
|
14
|
+
var treeView = useRef(null);
|
|
15
|
+
var _ref = parmas || {},
|
|
16
|
+
inline = _ref.inline;
|
|
17
|
+
var handleOpen = useEventCallback(function () {
|
|
18
|
+
var _trigger$current;
|
|
19
|
+
trigger === null || trigger === void 0 ? void 0 : (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : _trigger$current.open();
|
|
20
|
+
});
|
|
21
|
+
var handleClose = useEventCallback(function () {
|
|
22
|
+
var _trigger$current2;
|
|
23
|
+
trigger === null || trigger === void 0 ? void 0 : (_trigger$current2 = trigger.current) === null || _trigger$current2 === void 0 ? void 0 : _trigger$current2.close();
|
|
24
|
+
});
|
|
25
|
+
var handleUpdatePosition = useEventCallback(function () {
|
|
26
|
+
var _trigger$current3;
|
|
27
|
+
trigger === null || trigger === void 0 ? void 0 : (_trigger$current3 = trigger.current) === null || _trigger$current3 === void 0 ? void 0 : _trigger$current3.updatePosition();
|
|
28
|
+
});
|
|
29
|
+
useImperativeHandle(ref, function () {
|
|
30
|
+
// Tree and CheckTree
|
|
31
|
+
if (inline) {
|
|
32
|
+
return {
|
|
33
|
+
get root() {
|
|
34
|
+
var _trigger$current$root, _trigger$current4;
|
|
35
|
+
return root !== null && root !== void 0 && root.current ? root === null || root === void 0 ? void 0 : root.current : (_trigger$current$root = trigger === null || trigger === void 0 ? void 0 : (_trigger$current4 = trigger.current) === null || _trigger$current4 === void 0 ? void 0 : _trigger$current4.root) !== null && _trigger$current$root !== void 0 ? _trigger$current$root : null;
|
|
36
|
+
},
|
|
37
|
+
get list() {
|
|
38
|
+
if (!(list !== null && list !== void 0 && list.current)) {
|
|
39
|
+
throw new Error('The list is not found, please set `virtualized` for the component.');
|
|
40
|
+
}
|
|
41
|
+
return list === null || list === void 0 ? void 0 : list.current;
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
get root() {
|
|
47
|
+
var _ref2, _trigger$current5;
|
|
48
|
+
return (_ref2 = (root === null || root === void 0 ? void 0 : root.current) || (trigger === null || trigger === void 0 ? void 0 : (_trigger$current5 = trigger.current) === null || _trigger$current5 === void 0 ? void 0 : _trigger$current5.root)) !== null && _ref2 !== void 0 ? _ref2 : null;
|
|
49
|
+
},
|
|
50
|
+
get overlay() {
|
|
51
|
+
var _overlay$current;
|
|
52
|
+
if (!(overlay !== null && overlay !== void 0 && overlay.current)) {
|
|
53
|
+
throw new Error('The overlay is not found. Please confirm whether the picker is open.');
|
|
54
|
+
}
|
|
55
|
+
return (_overlay$current = overlay === null || overlay === void 0 ? void 0 : overlay.current) !== null && _overlay$current !== void 0 ? _overlay$current : null;
|
|
56
|
+
},
|
|
57
|
+
get target() {
|
|
58
|
+
var _target$current;
|
|
59
|
+
return (_target$current = target === null || target === void 0 ? void 0 : target.current) !== null && _target$current !== void 0 ? _target$current : null;
|
|
60
|
+
},
|
|
61
|
+
get list() {
|
|
62
|
+
if (!(list !== null && list !== void 0 && list.current)) {
|
|
63
|
+
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 ");
|
|
64
|
+
}
|
|
65
|
+
return list === null || list === void 0 ? void 0 : list.current;
|
|
66
|
+
},
|
|
67
|
+
updatePosition: handleUpdatePosition,
|
|
68
|
+
open: handleOpen,
|
|
69
|
+
close: handleClose
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
trigger: trigger,
|
|
74
|
+
root: root,
|
|
75
|
+
overlay: overlay,
|
|
76
|
+
target: target,
|
|
77
|
+
list: list,
|
|
78
|
+
searchInput: searchInput,
|
|
79
|
+
treeView: treeView
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export default usePickerRef;
|
package/esm/Picker/utils.d.ts
CHANGED
|
@@ -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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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) => (
|
|
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 {};
|
package/esm/Picker/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
import React, { useState,
|
|
3
|
+
import React, { useState, useCallback, useMemo } from 'react';
|
|
4
4
|
import kebabCase from 'lodash/kebabCase';
|
|
5
5
|
import trim from 'lodash/trim';
|
|
6
6
|
import isFunction from 'lodash/isFunction';
|
|
@@ -8,7 +8,7 @@ import isUndefined from 'lodash/isUndefined';
|
|
|
8
8
|
import omit from 'lodash/omit';
|
|
9
9
|
import find from 'lodash/find';
|
|
10
10
|
import { findNodeOfTree } from '../utils/treeUtils';
|
|
11
|
-
import { KEY_VALUES, useClassNames, shallowEqual, reactToString, placementPolyfill } from '../utils';
|
|
11
|
+
import { KEY_VALUES, useClassNames, shallowEqual, reactToString, placementPolyfill, useEventCallback } from '../utils';
|
|
12
12
|
import { getHeight } from 'dom-lib';
|
|
13
13
|
var defaultNodeKeys = {
|
|
14
14
|
valueKey: 'value',
|
|
@@ -353,10 +353,10 @@ export var useFocusItemValue = function useFocusItemValue(defaultFocusItemValue,
|
|
|
353
353
|
export var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
354
354
|
var _props$toggle = props.toggle,
|
|
355
355
|
toggle = _props$toggle === void 0 ? true : _props$toggle,
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
356
|
+
trigger = props.trigger,
|
|
357
|
+
target = props.target,
|
|
358
|
+
overlay = props.overlay,
|
|
359
|
+
searchInput = props.searchInput,
|
|
360
360
|
active = props.active,
|
|
361
361
|
readOnly = props.readOnly,
|
|
362
362
|
disabled = props.disabled,
|
|
@@ -368,32 +368,32 @@ export var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
|
368
368
|
onMenuKeyDown = props.onMenuKeyDown,
|
|
369
369
|
onMenuPressEnter = props.onMenuPressEnter,
|
|
370
370
|
onMenuPressBackspace = props.onMenuPressBackspace;
|
|
371
|
-
var handleClose =
|
|
372
|
-
var
|
|
373
|
-
(
|
|
371
|
+
var handleClose = useEventCallback(function () {
|
|
372
|
+
var _trigger$current, _trigger$current$clos, _trigger$current2, _trigger$current2$foc;
|
|
373
|
+
(_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);
|
|
374
374
|
|
|
375
375
|
// The focus is on the trigger button after closing
|
|
376
|
-
(
|
|
376
|
+
(_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);
|
|
377
377
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
378
|
-
}
|
|
379
|
-
var handleOpen =
|
|
380
|
-
var
|
|
381
|
-
(
|
|
378
|
+
});
|
|
379
|
+
var handleOpen = useEventCallback(function () {
|
|
380
|
+
var _trigger$current3, _trigger$current3$ope;
|
|
381
|
+
(_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);
|
|
382
382
|
onOpen === null || onOpen === void 0 ? void 0 : onOpen();
|
|
383
|
-
}
|
|
384
|
-
var handleToggleDropdown =
|
|
383
|
+
});
|
|
384
|
+
var handleToggleDropdown = useEventCallback(function () {
|
|
385
385
|
if (active) {
|
|
386
386
|
handleClose();
|
|
387
387
|
return;
|
|
388
388
|
}
|
|
389
389
|
handleOpen();
|
|
390
|
-
}
|
|
391
|
-
var onToggle =
|
|
390
|
+
});
|
|
391
|
+
var onToggle = useEventCallback(function (event) {
|
|
392
392
|
// Keyboard events should not be processed when readOnly and disabled are set.
|
|
393
393
|
if (readOnly || disabled || loading) {
|
|
394
394
|
return;
|
|
395
395
|
}
|
|
396
|
-
if (event.target === (
|
|
396
|
+
if (event.target === (target === null || target === void 0 ? void 0 : target.current)) {
|
|
397
397
|
// enter
|
|
398
398
|
if (toggle && event.key === KEY_VALUES.ENTER) {
|
|
399
399
|
handleToggleDropdown();
|
|
@@ -404,7 +404,7 @@ export var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
|
404
404
|
onExit === null || onExit === void 0 ? void 0 : onExit(event);
|
|
405
405
|
}
|
|
406
406
|
}
|
|
407
|
-
if (
|
|
407
|
+
if (overlay !== null && overlay !== void 0 && overlay.current) {
|
|
408
408
|
// The keyboard operation callback on the menu.
|
|
409
409
|
onMenuKeyDown === null || onMenuKeyDown === void 0 ? void 0 : onMenuKeyDown(event);
|
|
410
410
|
if (event.key === KEY_VALUES.ENTER) {
|
|
@@ -415,7 +415,7 @@ export var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
|
415
415
|
* There is no callback when typing the Backspace key in the search box.
|
|
416
416
|
* The default is to remove search keywords
|
|
417
417
|
*/
|
|
418
|
-
if (event.key === KEY_VALUES.BACKSPACE && event.target !== (
|
|
418
|
+
if (event.key === KEY_VALUES.BACKSPACE && event.target !== (searchInput === null || searchInput === void 0 ? void 0 : searchInput.current)) {
|
|
419
419
|
onMenuPressBackspace === null || onMenuPressBackspace === void 0 ? void 0 : onMenuPressBackspace(event);
|
|
420
420
|
}
|
|
421
421
|
|
|
@@ -425,8 +425,8 @@ export var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
|
425
425
|
// Exclude Input
|
|
426
426
|
// eg: <SelectPicker renderExtraFooter={() => <Input />} />
|
|
427
427
|
if (((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.tagName) !== 'INPUT') {
|
|
428
|
-
var
|
|
429
|
-
|
|
428
|
+
var _searchInput$current;
|
|
429
|
+
searchInput === null || searchInput === void 0 ? void 0 : (_searchInput$current = searchInput.current) === null || _searchInput$current === void 0 ? void 0 : _searchInput$current.focus();
|
|
430
430
|
}
|
|
431
431
|
}
|
|
432
432
|
}
|
|
@@ -436,7 +436,7 @@ export var useToggleKeyDownEvent = function useToggleKeyDownEvent(props) {
|
|
|
436
436
|
|
|
437
437
|
// Native event callback
|
|
438
438
|
onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(event);
|
|
439
|
-
}
|
|
439
|
+
});
|
|
440
440
|
return onToggle;
|
|
441
441
|
};
|
|
442
442
|
/**
|
|
@@ -484,70 +484,4 @@ export function useSearch(data, props) {
|
|
|
484
484
|
handleSearch: handleSearch,
|
|
485
485
|
resetSearch: resetSearch
|
|
486
486
|
};
|
|
487
|
-
}
|
|
488
|
-
/**
|
|
489
|
-
* A hook of the exposed method of Picker
|
|
490
|
-
*/
|
|
491
|
-
export function usePublicMethods(ref, parmas) {
|
|
492
|
-
var triggerRef = parmas.triggerRef,
|
|
493
|
-
overlayRef = parmas.overlayRef,
|
|
494
|
-
targetRef = parmas.targetRef,
|
|
495
|
-
rootRef = parmas.rootRef,
|
|
496
|
-
listRef = parmas.listRef,
|
|
497
|
-
inline = parmas.inline;
|
|
498
|
-
var handleOpen = useCallback(function () {
|
|
499
|
-
var _triggerRef$current3;
|
|
500
|
-
triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.open();
|
|
501
|
-
}, [triggerRef]);
|
|
502
|
-
var handleClose = useCallback(function () {
|
|
503
|
-
var _triggerRef$current4;
|
|
504
|
-
triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.close();
|
|
505
|
-
}, [triggerRef]);
|
|
506
|
-
var handleUpdatePosition = useCallback(function () {
|
|
507
|
-
var _triggerRef$current5;
|
|
508
|
-
triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current5 = triggerRef.current) === null || _triggerRef$current5 === void 0 ? void 0 : _triggerRef$current5.updatePosition();
|
|
509
|
-
}, [triggerRef]);
|
|
510
|
-
useImperativeHandle(ref, function () {
|
|
511
|
-
// Tree and CheckTree
|
|
512
|
-
if (inline) {
|
|
513
|
-
return {
|
|
514
|
-
get root() {
|
|
515
|
-
var _triggerRef$current$r, _triggerRef$current6;
|
|
516
|
-
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;
|
|
517
|
-
},
|
|
518
|
-
get list() {
|
|
519
|
-
if (!(listRef !== null && listRef !== void 0 && listRef.current)) {
|
|
520
|
-
throw new Error('The list is not found, please set `virtualized` for the component.');
|
|
521
|
-
}
|
|
522
|
-
return listRef === null || listRef === void 0 ? void 0 : listRef.current;
|
|
523
|
-
}
|
|
524
|
-
};
|
|
525
|
-
}
|
|
526
|
-
return {
|
|
527
|
-
get root() {
|
|
528
|
-
var _ref, _triggerRef$current7;
|
|
529
|
-
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;
|
|
530
|
-
},
|
|
531
|
-
get overlay() {
|
|
532
|
-
var _overlayRef$current;
|
|
533
|
-
if (!(overlayRef !== null && overlayRef !== void 0 && overlayRef.current)) {
|
|
534
|
-
throw new Error('The overlay is not found. Please confirm whether the picker is open.');
|
|
535
|
-
}
|
|
536
|
-
return (_overlayRef$current = overlayRef === null || overlayRef === void 0 ? void 0 : overlayRef.current) !== null && _overlayRef$current !== void 0 ? _overlayRef$current : null;
|
|
537
|
-
},
|
|
538
|
-
get target() {
|
|
539
|
-
var _targetRef$current2;
|
|
540
|
-
return (_targetRef$current2 = targetRef === null || targetRef === void 0 ? void 0 : targetRef.current) !== null && _targetRef$current2 !== void 0 ? _targetRef$current2 : null;
|
|
541
|
-
},
|
|
542
|
-
get list() {
|
|
543
|
-
if (!(listRef !== null && listRef !== void 0 && listRef.current)) {
|
|
544
|
-
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 ");
|
|
545
|
-
}
|
|
546
|
-
return listRef === null || listRef === void 0 ? void 0 : listRef.current;
|
|
547
|
-
},
|
|
548
|
-
updatePosition: handleUpdatePosition,
|
|
549
|
-
open: handleOpen,
|
|
550
|
-
close: handleClose
|
|
551
|
-
};
|
|
552
|
-
});
|
|
553
487
|
}
|