rsuite 5.49.0 → 5.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/Cascader/styles/index.less +4 -4
- package/CheckTreePicker/styles/index.less +3 -3
- package/DatePicker/styles/index.less +1 -1
- package/DateRangePicker/styles/index.less +15 -5
- package/Dropdown/styles/index.less +5 -4
- package/Dropdown/styles/mixin.less +0 -11
- package/Form/styles/mixin.less +1 -2
- package/InputGroup/styles/index.less +0 -14
- package/InputPicker/styles/index.less +1 -1
- package/Picker/styles/index.less +33 -26
- package/Picker/styles/mixin.less +20 -16
- package/README.md +4 -4
- package/TagInput/styles/index.less +2 -2
- package/TagPicker/styles/index.less +5 -1
- package/TreePicker/styles/index.less +2 -2
- package/cjs/@types/common.d.ts +8 -0
- package/cjs/AutoComplete/AutoComplete.js +39 -37
- package/cjs/AutoComplete/Combobox.d.ts +8 -0
- package/cjs/AutoComplete/Combobox.js +31 -0
- package/cjs/Calendar/Calendar.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.d.ts +5 -1
- package/cjs/Calendar/CalendarContainer.js +35 -37
- package/cjs/Cascader/Cascader.js +58 -59
- package/cjs/Cascader/DropdownMenu.d.ts +3 -20
- package/cjs/Cascader/DropdownMenu.js +48 -48
- package/cjs/Cascader/TreeView.d.ts +24 -0
- package/cjs/Cascader/TreeView.js +174 -0
- package/cjs/CheckPicker/CheckPicker.d.ts +2 -2
- package/cjs/CheckPicker/CheckPicker.js +42 -44
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
- package/cjs/CheckTreePicker/CheckTreePicker.js +81 -84
- package/cjs/DatePicker/DatePicker.d.ts +5 -1
- package/cjs/DatePicker/DatePicker.js +7 -10
- package/cjs/DatePicker/Toolbar.js +2 -1
- package/cjs/DateRangeInput/DateRangeInput.js +2 -2
- package/cjs/DateRangePicker/Calendar.js +24 -23
- package/cjs/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/cjs/DateRangePicker/DateRangePicker.js +239 -202
- 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/Form/Form.d.ts +14 -0
- package/cjs/Form/Form.js +39 -30
- package/cjs/Form/FormContext.d.ts +1 -0
- package/cjs/FormControl/FormControl.d.ts +11 -1
- package/cjs/FormControl/FormControl.js +40 -17
- package/cjs/FormGroup/FormGroup.js +2 -1
- package/cjs/InputPicker/InputPicker.js +108 -92
- package/cjs/InputPicker/InputSearch.js +3 -15
- package/cjs/InputPicker/TagList.d.ts +3 -0
- package/cjs/InputPicker/TagList.js +29 -0
- package/cjs/InputPicker/TextBox.d.ts +18 -0
- package/cjs/InputPicker/TextBox.js +48 -0
- package/cjs/MultiCascader/MultiCascader.js +53 -52
- package/cjs/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/cjs/MultiCascader/{DropdownMenu.js → TreeView.js} +77 -74
- package/{esm/Picker/DropdownMenuCheckItem.d.ts → cjs/Picker/ListCheckItem.d.ts} +3 -3
- package/cjs/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +14 -30
- package/cjs/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
- package/cjs/Picker/{DropdownMenuItem.js → ListItem.js} +15 -24
- package/cjs/Picker/ListItemGroup.d.ts +6 -0
- package/cjs/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/cjs/Picker/Listbox.d.ts +35 -0
- package/cjs/Picker/{DropdownMenu.js → Listbox.js} +49 -64
- package/cjs/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/cjs/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/cjs/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/cjs/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
- package/cjs/Picker/PickerToggle.d.ts +17 -22
- package/cjs/Picker/PickerToggle.js +63 -181
- package/cjs/Picker/PickerToggleTrigger.d.ts +15 -0
- package/cjs/Picker/PickerToggleTrigger.js +21 -5
- package/cjs/Picker/SearchBar.js +7 -9
- package/cjs/Picker/TreeView.d.ts +7 -0
- package/cjs/Picker/TreeView.js +31 -0
- package/cjs/Picker/hooks/index.d.ts +6 -0
- package/cjs/Picker/hooks/index.js +18 -0
- package/cjs/Picker/hooks/useCombobox.d.ts +7 -0
- package/cjs/Picker/hooks/useCombobox.js +22 -0
- package/cjs/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/cjs/Picker/hooks/useFocusItemValue.js +246 -0
- package/cjs/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/cjs/Picker/hooks/usePickerClassName.js +39 -0
- package/cjs/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
- package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -7
- package/cjs/Picker/hooks/useSearch.d.ts +18 -0
- package/cjs/Picker/hooks/useSearch.js +57 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/cjs/Picker/hooks/useToggleKeyDownEvent.js +101 -0
- package/cjs/Picker/index.d.ts +9 -5
- package/cjs/Picker/index.js +32 -16
- package/cjs/Picker/propTypes.d.ts +0 -6
- package/cjs/Picker/propTypes.js +0 -5
- package/cjs/Picker/utils.d.ts +2 -100
- package/cjs/Picker/utils.js +1 -473
- package/cjs/SelectPicker/SelectPicker.d.ts +2 -2
- package/cjs/SelectPicker/SelectPicker.js +47 -50
- package/cjs/TagInput/index.js +4 -0
- package/cjs/TreePicker/TreeNode.d.ts +2 -2
- package/cjs/TreePicker/TreeNode.js +22 -56
- package/cjs/TreePicker/TreePicker.js +91 -95
- 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 +1 -0
- package/cjs/utils/index.js +4 -1
- package/dist/rsuite-no-reset-rtl.css +201 -186
- 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 +201 -186
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +201 -186
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +201 -186
- package/dist/rsuite.js +235 -104
- 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/@types/common.d.ts +8 -0
- package/esm/AutoComplete/AutoComplete.js +42 -40
- package/esm/AutoComplete/Combobox.d.ts +8 -0
- package/esm/AutoComplete/Combobox.js +25 -0
- package/esm/Calendar/Calendar.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.d.ts +5 -1
- package/esm/Calendar/CalendarContainer.js +37 -39
- package/esm/Cascader/Cascader.js +61 -62
- package/esm/Cascader/DropdownMenu.d.ts +3 -20
- package/esm/Cascader/DropdownMenu.js +50 -49
- package/esm/Cascader/TreeView.d.ts +24 -0
- package/esm/Cascader/TreeView.js +167 -0
- package/esm/CheckPicker/CheckPicker.d.ts +2 -2
- package/esm/CheckPicker/CheckPicker.js +45 -47
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
- package/esm/CheckTreePicker/CheckTreePicker.js +84 -87
- package/esm/DatePicker/DatePicker.d.ts +5 -1
- package/esm/DatePicker/DatePicker.js +5 -8
- package/esm/DatePicker/Toolbar.js +2 -1
- package/esm/DateRangeInput/DateRangeInput.js +2 -2
- package/esm/DateRangePicker/Calendar.js +25 -23
- package/esm/DateRangePicker/DateRangePicker.d.ts +18 -4
- package/esm/DateRangePicker/DateRangePicker.js +241 -204
- 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/Form/Form.d.ts +14 -0
- package/esm/Form/Form.js +41 -32
- package/esm/Form/FormContext.d.ts +1 -0
- package/esm/FormControl/FormControl.d.ts +11 -1
- package/esm/FormControl/FormControl.js +41 -18
- package/esm/FormGroup/FormGroup.js +3 -2
- package/esm/InputPicker/InputPicker.js +110 -94
- package/esm/InputPicker/InputSearch.js +4 -15
- package/esm/InputPicker/TagList.d.ts +3 -0
- package/esm/InputPicker/TagList.js +23 -0
- package/esm/InputPicker/TextBox.d.ts +18 -0
- package/esm/InputPicker/TextBox.js +42 -0
- package/esm/MultiCascader/MultiCascader.js +56 -55
- package/esm/MultiCascader/{DropdownMenu.d.ts → TreeView.d.ts} +3 -3
- package/esm/MultiCascader/{DropdownMenu.js → TreeView.js} +79 -75
- package/{cjs/Picker/DropdownMenuCheckItem.d.ts → esm/Picker/ListCheckItem.d.ts} +3 -3
- package/esm/Picker/{DropdownMenuCheckItem.js → ListCheckItem.js} +15 -30
- package/esm/Picker/{DropdownMenuItem.d.ts → ListItem.d.ts} +4 -4
- package/esm/Picker/{DropdownMenuItem.js → ListItem.js} +16 -24
- package/esm/Picker/ListItemGroup.d.ts +6 -0
- package/esm/Picker/{DropdownMenuGroup.js → ListItemGroup.js} +3 -9
- package/esm/Picker/Listbox.d.ts +35 -0
- package/esm/Picker/{DropdownMenu.js → Listbox.js} +50 -64
- package/esm/{DatePicker → Picker}/PickerIndicator.d.ts +1 -1
- package/esm/{DatePicker → Picker}/PickerIndicator.js +2 -1
- package/esm/{DatePicker → Picker}/PickerLabel.d.ts +1 -1
- package/esm/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
- package/esm/Picker/PickerToggle.d.ts +17 -22
- package/esm/Picker/PickerToggle.js +65 -183
- package/esm/Picker/PickerToggleTrigger.d.ts +15 -0
- package/esm/Picker/PickerToggleTrigger.js +20 -5
- package/esm/Picker/SearchBar.js +8 -9
- package/esm/Picker/TreeView.d.ts +7 -0
- package/esm/Picker/TreeView.js +25 -0
- package/esm/Picker/hooks/index.d.ts +6 -0
- package/esm/Picker/hooks/index.js +7 -0
- package/esm/Picker/hooks/useCombobox.d.ts +7 -0
- package/esm/Picker/hooks/useCombobox.js +17 -0
- package/esm/Picker/hooks/useFocusItemValue.d.ts +30 -0
- package/esm/Picker/hooks/useFocusItemValue.js +240 -0
- package/esm/Picker/hooks/usePickerClassName.d.ts +21 -0
- package/esm/Picker/hooks/usePickerClassName.js +33 -0
- package/esm/Picker/{usePickerRef.d.ts → hooks/usePickerRef.d.ts} +5 -3
- package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +13 -8
- package/esm/Picker/hooks/useSearch.d.ts +18 -0
- package/esm/Picker/hooks/useSearch.js +51 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.d.ts +25 -0
- package/esm/Picker/hooks/useToggleKeyDownEvent.js +96 -0
- package/esm/Picker/index.d.ts +9 -5
- package/esm/Picker/index.js +9 -5
- package/esm/Picker/propTypes.d.ts +0 -6
- package/esm/Picker/propTypes.js +0 -5
- package/esm/Picker/utils.d.ts +2 -100
- package/esm/Picker/utils.js +2 -467
- package/esm/SelectPicker/SelectPicker.d.ts +2 -2
- package/esm/SelectPicker/SelectPicker.js +50 -53
- package/esm/TagInput/index.js +4 -0
- package/esm/TreePicker/TreeNode.d.ts +2 -2
- package/esm/TreePicker/TreeNode.js +24 -58
- package/esm/TreePicker/TreePicker.js +94 -98
- 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 +1 -0
- package/esm/utils/index.js +1 -0
- package/package.json +1 -1
- package/styles/mixins/combobox.less +10 -0
- package/styles/variables.less +1 -3
- package/cjs/Picker/DropdownMenu.d.ts +0 -59
- package/cjs/Picker/DropdownMenuGroup.d.ts +0 -6
- package/esm/Picker/DropdownMenu.d.ts +0 -59
- package/esm/Picker/DropdownMenuGroup.d.ts +0 -6
- /package/cjs/{DatePicker → Picker}/PickerLabel.js +0 -0
- /package/esm/{DatePicker → Picker}/PickerLabel.js +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4
|
|
5
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
6
6
|
import React, { useState, useRef, useEffect, useCallback, useContext } from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import isUndefined from 'lodash/isUndefined';
|
|
@@ -17,13 +17,24 @@ import getWidth from 'dom-lib/getWidth';
|
|
|
17
17
|
import shallowEqual from '../utils/shallowEqual';
|
|
18
18
|
import { filterNodesOfTree } from '../utils/treeUtils';
|
|
19
19
|
import Plaintext from '../Plaintext';
|
|
20
|
-
import { createChainedFunction, tplTransform, useClassNames, useCustom, useControlled, mergeRefs, isOneOf, KEY_VALUES } from '../utils';
|
|
20
|
+
import { createChainedFunction, tplTransform, useClassNames, useCustom, useControlled, useEventCallback, mergeRefs, isOneOf, KEY_VALUES } from '../utils';
|
|
21
21
|
import { getDataGroupBy } from '../utils/getDataGroupBy';
|
|
22
|
-
import {
|
|
22
|
+
import { Listbox, ListItem, ListCheckItem, PickerToggle, PickerPopup, PickerToggleTrigger, useFocusItemValue, usePickerClassName, useSearch, usePickerRef, useToggleKeyDownEvent, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../Picker';
|
|
23
23
|
import Tag from '../Tag';
|
|
24
24
|
import InputAutosize from './InputAutosize';
|
|
25
|
-
import
|
|
25
|
+
import TextBox from './TextBox';
|
|
26
26
|
import InputPickerContext from './InputPickerContext';
|
|
27
|
+
var convertSize = function convertSize(size) {
|
|
28
|
+
switch (size) {
|
|
29
|
+
case 'lg':
|
|
30
|
+
return 'lg';
|
|
31
|
+
case 'sm':
|
|
32
|
+
case 'xs':
|
|
33
|
+
return 'sm';
|
|
34
|
+
default:
|
|
35
|
+
return 'md';
|
|
36
|
+
}
|
|
37
|
+
};
|
|
27
38
|
/**
|
|
28
39
|
* Single item selector with text box input.
|
|
29
40
|
*
|
|
@@ -109,11 +120,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
109
120
|
if (groupBy === valueKey || groupBy === labelKey) {
|
|
110
121
|
throw Error('`groupBy` can not be equal to `valueKey` and `labelKey`');
|
|
111
122
|
}
|
|
112
|
-
var overlayRef = useRef(null);
|
|
113
|
-
var targetRef = useRef(null);
|
|
114
|
-
var triggerRef = useRef(null);
|
|
115
123
|
var inputRef = useRef();
|
|
116
|
-
var
|
|
124
|
+
var _usePickerRef = usePickerRef(ref),
|
|
125
|
+
triggerRef = _usePickerRef.trigger,
|
|
126
|
+
root = _usePickerRef.root,
|
|
127
|
+
target = _usePickerRef.target,
|
|
128
|
+
overlay = _usePickerRef.overlay,
|
|
129
|
+
list = _usePickerRef.list;
|
|
117
130
|
var _useCustom = useCustom(['Picker', 'InputPicker'], overrideLocale),
|
|
118
131
|
locale = _useCustom.locale;
|
|
119
132
|
var _useClassNames = useClassNames(classPrefix),
|
|
@@ -142,34 +155,34 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
142
155
|
value = _useControlled[0],
|
|
143
156
|
setValue = _useControlled[1],
|
|
144
157
|
isControlled = _useControlled[2];
|
|
145
|
-
var cloneValue =
|
|
158
|
+
var cloneValue = function cloneValue() {
|
|
146
159
|
return multi ? clone(value) || [] : value;
|
|
147
|
-
}
|
|
148
|
-
var handleClose =
|
|
149
|
-
var _triggerRef$current,
|
|
160
|
+
};
|
|
161
|
+
var handleClose = useEventCallback(function () {
|
|
162
|
+
var _triggerRef$current, _target$current, _target$current$focus;
|
|
150
163
|
triggerRef === null || triggerRef === void 0 ? void 0 : (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.close();
|
|
151
164
|
|
|
152
165
|
// The focus is on the trigger button after closing
|
|
153
|
-
(
|
|
154
|
-
}
|
|
166
|
+
(_target$current = target.current) === null || _target$current === void 0 ? void 0 : (_target$current$focus = _target$current.focus) === null || _target$current$focus === void 0 ? void 0 : _target$current$focus.call(_target$current);
|
|
167
|
+
});
|
|
155
168
|
|
|
156
169
|
// Used to hover the focuse item when trigger `onKeydown`
|
|
157
170
|
var _useFocusItemValue = useFocusItemValue(multi ? value === null || value === void 0 ? void 0 : value[0] : value, {
|
|
158
171
|
data: getAllDataAndCache(),
|
|
159
172
|
valueKey: valueKey,
|
|
160
173
|
target: function target() {
|
|
161
|
-
return
|
|
174
|
+
return overlay.current;
|
|
162
175
|
}
|
|
163
176
|
}),
|
|
164
177
|
focusItemValue = _useFocusItemValue.focusItemValue,
|
|
165
178
|
setFocusItemValue = _useFocusItemValue.setFocusItemValue,
|
|
166
179
|
onKeyDown = _useFocusItemValue.onKeyDown;
|
|
167
|
-
var handleSearchCallback =
|
|
180
|
+
var handleSearchCallback = useEventCallback(function (searchKeyword, filteredData, event) {
|
|
168
181
|
var _filteredData$;
|
|
169
182
|
// The first option after filtering is the focus.
|
|
170
183
|
setFocusItemValue(disabledOptions ? searchKeyword : (filteredData === null || filteredData === void 0 ? void 0 : (_filteredData$ = filteredData[0]) === null || _filteredData$ === void 0 ? void 0 : _filteredData$[valueKey]) || searchKeyword);
|
|
171
184
|
onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKeyword, event);
|
|
172
|
-
}
|
|
185
|
+
});
|
|
173
186
|
|
|
174
187
|
// Use search keywords to filter options.
|
|
175
188
|
var _useSearch = useSearch(getAllData(), {
|
|
@@ -195,14 +208,16 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
195
208
|
if ((_triggerRef$current2 = triggerRef.current) !== null && _triggerRef$current2 !== void 0 && _triggerRef$current2.root) {
|
|
196
209
|
setMaxWidth(getWidth(triggerRef.current.root));
|
|
197
210
|
}
|
|
211
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
198
212
|
}, []);
|
|
199
213
|
|
|
200
214
|
// Update the position of the menu when the search keyword and value change
|
|
201
215
|
useEffect(function () {
|
|
202
216
|
var _triggerRef$current3, _triggerRef$current3$;
|
|
203
217
|
(_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : (_triggerRef$current3$ = _triggerRef$current3.updatePosition) === null || _triggerRef$current3$ === void 0 ? void 0 : _triggerRef$current3$.call(_triggerRef$current3);
|
|
218
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
204
219
|
}, [searchKeyword, value]);
|
|
205
|
-
var
|
|
220
|
+
var getDataItem = function getDataItem(value) {
|
|
206
221
|
// Find active `MenuItem` by `value`
|
|
207
222
|
var allData = getAllDataAndCache();
|
|
208
223
|
var activeItem = allData.find(function (item) {
|
|
@@ -218,23 +233,23 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
218
233
|
itemNode: itemNode
|
|
219
234
|
};
|
|
220
235
|
};
|
|
221
|
-
var getInput =
|
|
236
|
+
var getInput = function getInput() {
|
|
222
237
|
var _inputRef$current;
|
|
223
238
|
return multi ? (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.input : inputRef.current;
|
|
224
|
-
}
|
|
225
|
-
var focusInput =
|
|
239
|
+
};
|
|
240
|
+
var focusInput = function focusInput() {
|
|
226
241
|
var _getInput;
|
|
227
242
|
return (_getInput = getInput()) === null || _getInput === void 0 ? void 0 : _getInput.focus();
|
|
228
|
-
}
|
|
229
|
-
var blurInput =
|
|
243
|
+
};
|
|
244
|
+
var blurInput = function blurInput() {
|
|
230
245
|
var _getInput2;
|
|
231
246
|
return (_getInput2 = getInput()) === null || _getInput2 === void 0 ? void 0 : _getInput2.blur();
|
|
232
|
-
}
|
|
247
|
+
};
|
|
233
248
|
|
|
234
249
|
/**
|
|
235
250
|
* Convert the string of the newly created option into an object.
|
|
236
251
|
*/
|
|
237
|
-
var createOption =
|
|
252
|
+
var createOption = function createOption(value) {
|
|
238
253
|
var _ref2;
|
|
239
254
|
if (groupBy) {
|
|
240
255
|
var _ref;
|
|
@@ -245,11 +260,11 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
245
260
|
return _ref2 = {
|
|
246
261
|
create: true
|
|
247
262
|
}, _ref2[valueKey] = value, _ref2[labelKey] = value, _ref2;
|
|
248
|
-
}
|
|
249
|
-
var handleChange =
|
|
263
|
+
};
|
|
264
|
+
var handleChange = useEventCallback(function (value, event) {
|
|
250
265
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
|
|
251
|
-
}
|
|
252
|
-
var handleRemoveItemByTag =
|
|
266
|
+
});
|
|
267
|
+
var handleRemoveItemByTag = useEventCallback(function (tag, event) {
|
|
253
268
|
event.stopPropagation();
|
|
254
269
|
var val = cloneValue();
|
|
255
270
|
remove(val, function (itemVal) {
|
|
@@ -258,15 +273,15 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
258
273
|
setValue(val);
|
|
259
274
|
handleChange(val, event);
|
|
260
275
|
onTagRemove === null || onTagRemove === void 0 ? void 0 : onTagRemove(tag, event);
|
|
261
|
-
}
|
|
262
|
-
var handleSelect =
|
|
276
|
+
});
|
|
277
|
+
var handleSelect = useEventCallback(function (value, item, event) {
|
|
263
278
|
onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, event);
|
|
264
279
|
if (creatable && item.create) {
|
|
265
280
|
delete item.create;
|
|
266
281
|
onCreate === null || onCreate === void 0 ? void 0 : onCreate(value, item, event);
|
|
267
282
|
setNewData(newData.concat(item));
|
|
268
283
|
}
|
|
269
|
-
}
|
|
284
|
+
});
|
|
270
285
|
|
|
271
286
|
/**
|
|
272
287
|
* Callback triggered by single selection
|
|
@@ -274,14 +289,14 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
274
289
|
* @param item
|
|
275
290
|
* @param event
|
|
276
291
|
*/
|
|
277
|
-
var handleSelectItem = function
|
|
292
|
+
var handleSelectItem = useEventCallback(function (value, item, event) {
|
|
278
293
|
setValue(value);
|
|
279
294
|
setFocusItemValue(value);
|
|
280
295
|
resetSearch();
|
|
281
296
|
handleSelect(value, item, event);
|
|
282
297
|
handleChange(value, event);
|
|
283
298
|
handleClose();
|
|
284
|
-
};
|
|
299
|
+
});
|
|
285
300
|
|
|
286
301
|
/**
|
|
287
302
|
* Callback triggered by multiple selection
|
|
@@ -290,7 +305,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
290
305
|
* @param event
|
|
291
306
|
* @param checked
|
|
292
307
|
*/
|
|
293
|
-
var handleCheckTag = function
|
|
308
|
+
var handleCheckTag = useEventCallback(function (nextItemValue, item, event, checked) {
|
|
294
309
|
var val = cloneValue();
|
|
295
310
|
if (checked) {
|
|
296
311
|
val.push(nextItemValue);
|
|
@@ -305,8 +320,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
305
320
|
handleSelect(val, item, event);
|
|
306
321
|
handleChange(val, event);
|
|
307
322
|
focusInput();
|
|
308
|
-
};
|
|
309
|
-
var handleTagKeyPress =
|
|
323
|
+
});
|
|
324
|
+
var handleTagKeyPress = useEventCallback(function (event) {
|
|
310
325
|
// When composing, ignore the keypress event.
|
|
311
326
|
if (event.nativeEvent.isComposing) {
|
|
312
327
|
return;
|
|
@@ -342,8 +357,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
342
357
|
resetSearch();
|
|
343
358
|
handleSelect(val, focusItem, event);
|
|
344
359
|
handleChange(val, event);
|
|
345
|
-
}
|
|
346
|
-
var handleMenuItemKeyPress =
|
|
360
|
+
});
|
|
361
|
+
var handleMenuItemKeyPress = useEventCallback(function (event) {
|
|
347
362
|
if (!focusItemValue || !controlledData) {
|
|
348
363
|
return;
|
|
349
364
|
}
|
|
@@ -372,19 +387,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
372
387
|
}
|
|
373
388
|
handleChange(focusItemValue, event);
|
|
374
389
|
handleClose();
|
|
375
|
-
}, [setValue, disabledItemValues, controlledData, focusItemValue, valueKey, searchKeyword, handleClose, resetSearch, createOption, getAllData, handleChange, handleSelect]);
|
|
376
|
-
usePublicMethods(ref, {
|
|
377
|
-
triggerRef: triggerRef,
|
|
378
|
-
overlayRef: overlayRef,
|
|
379
|
-
targetRef: targetRef,
|
|
380
|
-
listRef: listRef
|
|
381
390
|
});
|
|
382
391
|
|
|
383
392
|
/**
|
|
384
393
|
* Remove the last item, after pressing the back key on the keyboard.
|
|
385
394
|
* @param event
|
|
386
395
|
*/
|
|
387
|
-
var removeLastItem =
|
|
396
|
+
var removeLastItem = useEventCallback(function (event) {
|
|
388
397
|
var target = event === null || event === void 0 ? void 0 : event.target;
|
|
389
398
|
if ((target === null || target === void 0 ? void 0 : target.tagName) !== 'INPUT') {
|
|
390
399
|
focusInput();
|
|
@@ -397,8 +406,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
397
406
|
val.pop();
|
|
398
407
|
setValue(val);
|
|
399
408
|
handleChange(val, event);
|
|
400
|
-
}
|
|
401
|
-
var handleClean =
|
|
409
|
+
});
|
|
410
|
+
var handleClean = useEventCallback(function (event) {
|
|
402
411
|
if (disabled || searchKeyword !== '') {
|
|
403
412
|
return;
|
|
404
413
|
}
|
|
@@ -411,14 +420,14 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
411
420
|
handleChange(null, event);
|
|
412
421
|
}
|
|
413
422
|
onClean === null || onClean === void 0 ? void 0 : onClean(event);
|
|
414
|
-
}
|
|
423
|
+
});
|
|
415
424
|
var events = {
|
|
416
425
|
onMenuPressBackspace: multi ? removeLastItem : handleClean,
|
|
417
426
|
onMenuKeyDown: onKeyDown,
|
|
418
427
|
onMenuPressEnter: undefined,
|
|
419
428
|
onKeyDown: undefined
|
|
420
429
|
};
|
|
421
|
-
var handleKeyPress =
|
|
430
|
+
var handleKeyPress = useEventCallback(function (event) {
|
|
422
431
|
// When typing a space, create a tag.
|
|
423
432
|
if (isOneOf('Space', trigger) && event.key === KEY_VALUES.SPACE) {
|
|
424
433
|
handleTagKeyPress(event);
|
|
@@ -430,7 +439,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
430
439
|
handleTagKeyPress(event);
|
|
431
440
|
event.preventDefault();
|
|
432
441
|
}
|
|
433
|
-
}
|
|
442
|
+
});
|
|
434
443
|
if (multi) {
|
|
435
444
|
if (isOneOf('Enter', trigger)) {
|
|
436
445
|
events.onMenuPressEnter = handleTagKeyPress;
|
|
@@ -442,31 +451,31 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
442
451
|
events.onMenuPressEnter = handleMenuItemKeyPress;
|
|
443
452
|
}
|
|
444
453
|
var onPickerKeyDown = useToggleKeyDownEvent(_extends({
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
454
|
+
trigger: triggerRef,
|
|
455
|
+
target: target,
|
|
456
|
+
overlay: overlay
|
|
448
457
|
}, events, rest));
|
|
449
|
-
var handleExited =
|
|
458
|
+
var handleExited = useEventCallback(function () {
|
|
450
459
|
setFocusItemValue(multi ? value === null || value === void 0 ? void 0 : value[0] : value);
|
|
451
460
|
resetSearch();
|
|
452
461
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
453
|
-
}
|
|
454
|
-
var handleFocus =
|
|
462
|
+
});
|
|
463
|
+
var handleFocus = useEventCallback(function () {
|
|
455
464
|
if (!readOnly) {
|
|
456
465
|
var _triggerRef$current4;
|
|
457
466
|
setOpen(true);
|
|
458
467
|
(_triggerRef$current4 = triggerRef.current) === null || _triggerRef$current4 === void 0 ? void 0 : _triggerRef$current4.open();
|
|
459
468
|
}
|
|
460
|
-
}
|
|
461
|
-
var handleEnter =
|
|
469
|
+
});
|
|
470
|
+
var handleEnter = useEventCallback(function () {
|
|
462
471
|
focusInput();
|
|
463
472
|
setOpen(true);
|
|
464
|
-
}
|
|
465
|
-
var handleExit =
|
|
473
|
+
});
|
|
474
|
+
var handleExit = useEventCallback(function () {
|
|
466
475
|
blurInput();
|
|
467
476
|
setOpen(false);
|
|
468
|
-
}
|
|
469
|
-
var
|
|
477
|
+
});
|
|
478
|
+
var renderListItem = function renderListItem(label, item) {
|
|
470
479
|
// 'Create option "{0}"' => Create option "xxxxx"
|
|
471
480
|
var newLabel = item.create ? /*#__PURE__*/React.createElement("span", null, tplTransform(locale.createOption, label)) : label;
|
|
472
481
|
return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;
|
|
@@ -478,7 +487,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
478
487
|
itemNode: null
|
|
479
488
|
};
|
|
480
489
|
}
|
|
481
|
-
var dataItem =
|
|
490
|
+
var dataItem = getDataItem(value);
|
|
482
491
|
var itemNode = dataItem.itemNode;
|
|
483
492
|
if (!isNil(value) && isFunction(renderValue)) {
|
|
484
493
|
itemNode = renderValue(value, dataItem.activeItem, itemNode);
|
|
@@ -499,17 +508,19 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
499
508
|
var tags = value || [];
|
|
500
509
|
var items = [];
|
|
501
510
|
var tagElements = tags.map(function (tag) {
|
|
502
|
-
var
|
|
503
|
-
isValid =
|
|
504
|
-
itemNode =
|
|
505
|
-
activeItem =
|
|
511
|
+
var _getDataItem = getDataItem(tag),
|
|
512
|
+
isValid = _getDataItem.isValid,
|
|
513
|
+
itemNode = _getDataItem.itemNode,
|
|
514
|
+
activeItem = _getDataItem.activeItem;
|
|
506
515
|
items.push(activeItem);
|
|
507
516
|
if (!isValid) {
|
|
508
517
|
return null;
|
|
509
518
|
}
|
|
510
|
-
return /*#__PURE__*/React.createElement(Tag, _extends({
|
|
519
|
+
return /*#__PURE__*/React.createElement(Tag, _extends({
|
|
520
|
+
role: "option"
|
|
521
|
+
}, tagRest, {
|
|
511
522
|
key: tag,
|
|
512
|
-
size: rest.size
|
|
523
|
+
size: convertSize(rest.size),
|
|
513
524
|
closable: !disabled && closable && !readOnly && !plaintext,
|
|
514
525
|
title: typeof itemNode === 'string' ? itemNode : undefined,
|
|
515
526
|
onClose: createChainedFunction(handleRemoveItemByTag.bind(null, tag), onClose)
|
|
@@ -522,7 +533,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
522
533
|
}
|
|
523
534
|
return tagElements;
|
|
524
535
|
};
|
|
525
|
-
var
|
|
536
|
+
var renderPopup = function renderPopup(positionProps, speakerRef) {
|
|
526
537
|
var left = positionProps.left,
|
|
527
538
|
top = positionProps.top,
|
|
528
539
|
className = positionProps.className;
|
|
@@ -546,21 +557,20 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
546
557
|
items = items.sort(sort(false));
|
|
547
558
|
}
|
|
548
559
|
if (disabledOptions) {
|
|
549
|
-
return /*#__PURE__*/React.createElement(
|
|
550
|
-
ref: mergeRefs(
|
|
560
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
561
|
+
ref: mergeRefs(overlay, speakerRef)
|
|
551
562
|
});
|
|
552
563
|
}
|
|
553
|
-
var menu = items.length ? /*#__PURE__*/React.createElement(
|
|
554
|
-
id: id ? id + "-listbox" : undefined,
|
|
564
|
+
var menu = items.length ? /*#__PURE__*/React.createElement(Listbox, {
|
|
555
565
|
listProps: listProps,
|
|
556
|
-
listRef:
|
|
566
|
+
listRef: list,
|
|
557
567
|
disabledItemValues: disabledItemValues,
|
|
558
568
|
valueKey: valueKey,
|
|
559
569
|
labelKey: labelKey,
|
|
560
570
|
classPrefix: menuClassPrefix,
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
571
|
+
listItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
|
|
572
|
+
listItemAs: multi ? ListCheckItem : ListItem,
|
|
573
|
+
listItemProps: {
|
|
564
574
|
renderMenuItemCheckbox: renderMenuItemCheckbox
|
|
565
575
|
},
|
|
566
576
|
activeItemValues: multi ? value : [value],
|
|
@@ -575,13 +585,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
575
585
|
onSelect: multi ? handleCheckTag : handleSelectItem // fixme don't use any
|
|
576
586
|
,
|
|
577
587
|
renderMenuGroup: renderMenuGroup,
|
|
578
|
-
renderMenuItem:
|
|
588
|
+
renderMenuItem: renderListItem,
|
|
579
589
|
virtualized: virtualized
|
|
580
590
|
}) : /*#__PURE__*/React.createElement("div", {
|
|
581
591
|
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["none"])))
|
|
582
592
|
}, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
|
|
583
|
-
return /*#__PURE__*/React.createElement(
|
|
584
|
-
ref: mergeRefs(
|
|
593
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
594
|
+
ref: mergeRefs(overlay, speakerRef),
|
|
585
595
|
autoWidth: menuAutoWidth,
|
|
586
596
|
className: classes,
|
|
587
597
|
style: styles,
|
|
@@ -613,7 +623,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
613
623
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
614
624
|
var classes = merge(pickerClasses, (_merge = {}, _merge[prefix(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["tag"])))] = multi, _merge[prefix(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["focused"])))] = open, _merge[prefix(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["disabled-options"])))] = disabledOptions, _merge));
|
|
615
625
|
var searching = !!searchKeyword && open;
|
|
616
|
-
var
|
|
626
|
+
var editable = searchable && !disabled && !rest.loading;
|
|
617
627
|
var inputProps = multi ? {
|
|
618
628
|
inputStyle: {
|
|
619
629
|
maxWidth: maxWidth - 63
|
|
@@ -634,11 +644,13 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
634
644
|
}
|
|
635
645
|
return /*#__PURE__*/React.createElement(Plaintext, _extends({
|
|
636
646
|
localeKey: "notSelected",
|
|
637
|
-
ref:
|
|
647
|
+
ref: target
|
|
638
648
|
}, plaintextProps), itemNode || (tagElements !== null && tagElements !== void 0 && tagElements.length ? tagElements : null) || placeholder);
|
|
639
649
|
}
|
|
640
650
|
var placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : locale.placeholder);
|
|
641
651
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
652
|
+
id: id,
|
|
653
|
+
multiple: multi,
|
|
642
654
|
pickerProps: pick(props, pickTriggerPropKeys),
|
|
643
655
|
ref: triggerRef,
|
|
644
656
|
trigger: "active",
|
|
@@ -646,19 +658,19 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
646
658
|
onEntered: createChainedFunction(onEntered, onOpen),
|
|
647
659
|
onExit: createChainedFunction(handleExit, onExit),
|
|
648
660
|
onExited: createChainedFunction(handleExited, onExited),
|
|
649
|
-
speaker:
|
|
661
|
+
speaker: renderPopup,
|
|
650
662
|
placement: placement
|
|
651
663
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
652
664
|
className: classes,
|
|
653
665
|
style: style,
|
|
654
666
|
onClick: focusInput,
|
|
655
|
-
onKeyDown: onPickerKeyDown
|
|
667
|
+
onKeyDown: onPickerKeyDown,
|
|
668
|
+
ref: root
|
|
656
669
|
}, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
657
|
-
id: id,
|
|
658
670
|
appearance: appearance,
|
|
659
671
|
readOnly: readOnly,
|
|
660
672
|
plaintext: plaintext,
|
|
661
|
-
ref:
|
|
673
|
+
ref: target,
|
|
662
674
|
as: toggleAs,
|
|
663
675
|
tabIndex: tabIndex,
|
|
664
676
|
onClean: handleClean,
|
|
@@ -668,18 +680,22 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
668
680
|
disabled: disabled,
|
|
669
681
|
placement: placement,
|
|
670
682
|
inputValue: value,
|
|
683
|
+
focusItemValue: focusItemValue,
|
|
671
684
|
caret: !disabledOptions
|
|
672
|
-
}), searching || multi && hasValue ? null : itemNode || placeholderNode),
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
685
|
+
}), searching || multi && hasValue ? null : itemNode || placeholderNode), /*#__PURE__*/React.createElement(TextBox, {
|
|
686
|
+
showTagList: hasValue && multi,
|
|
687
|
+
tags: tagElements,
|
|
688
|
+
editable: editable,
|
|
676
689
|
readOnly: readOnly,
|
|
690
|
+
disabled: disabled,
|
|
691
|
+
multiple: multi,
|
|
677
692
|
onBlur: onBlur,
|
|
678
693
|
onFocus: createChainedFunction(handleFocus, onFocus),
|
|
679
694
|
inputRef: inputRef,
|
|
680
695
|
onChange: handleSearch,
|
|
681
|
-
|
|
682
|
-
|
|
696
|
+
inputValue: open ? searchKeyword : '',
|
|
697
|
+
inputProps: inputProps
|
|
698
|
+
})));
|
|
683
699
|
});
|
|
684
700
|
InputPicker.displayName = 'InputPicker';
|
|
685
701
|
InputPicker.propTypes = _extends({}, listPickerPropTypes, {
|
|
@@ -3,9 +3,8 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
5
|
var _templateObject;
|
|
6
|
-
import React
|
|
7
|
-
import
|
|
8
|
-
import { TypeChecker, useClassNames } from '../utils';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { useClassNames, useEventCallback } from '../utils';
|
|
9
8
|
var InputSearch = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
10
9
|
var _props$as = props.as,
|
|
11
10
|
Component = _props$as === void 0 ? 'input' : _props$as,
|
|
@@ -19,10 +18,10 @@ var InputSearch = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
19
18
|
readOnly = props.readOnly,
|
|
20
19
|
onChange = props.onChange,
|
|
21
20
|
rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "children", "className", "value", "inputRef", "style", "readOnly", "onChange"]);
|
|
22
|
-
var handleChange =
|
|
21
|
+
var handleChange = useEventCallback(function (event) {
|
|
23
22
|
var _event$target;
|
|
24
23
|
onChange === null || onChange === void 0 ? void 0 : onChange(event === null || event === void 0 ? void 0 : (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value, event);
|
|
25
|
-
}
|
|
24
|
+
});
|
|
26
25
|
var _useClassNames = useClassNames(classPrefix),
|
|
27
26
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
28
27
|
merge = _useClassNames.merge,
|
|
@@ -41,14 +40,4 @@ var InputSearch = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
41
40
|
})), children);
|
|
42
41
|
});
|
|
43
42
|
InputSearch.displayName = 'InputSearch';
|
|
44
|
-
InputSearch.propTypes = {
|
|
45
|
-
classPrefix: PropTypes.string,
|
|
46
|
-
value: PropTypes.string,
|
|
47
|
-
className: PropTypes.string,
|
|
48
|
-
children: PropTypes.node,
|
|
49
|
-
style: PropTypes.object,
|
|
50
|
-
inputRef: TypeChecker.refType,
|
|
51
|
-
as: PropTypes.elementType,
|
|
52
|
-
onChange: PropTypes.func
|
|
53
|
-
};
|
|
54
43
|
export default InputSearch;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
4
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
+
var _templateObject;
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { useClassNames } from '../utils';
|
|
8
|
+
import useCombobox from '../Picker/hooks/useCombobox';
|
|
9
|
+
var TagList = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
10
|
+
var children = props.children,
|
|
11
|
+
rest = _objectWithoutPropertiesLoose(props, ["children"]);
|
|
12
|
+
var _useClassNames = useClassNames('picker'),
|
|
13
|
+
prefix = _useClassNames.prefix;
|
|
14
|
+
var _useCombobox = useCombobox(),
|
|
15
|
+
id = _useCombobox.id;
|
|
16
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
17
|
+
ref: ref,
|
|
18
|
+
role: "listbox",
|
|
19
|
+
id: id + "-describe",
|
|
20
|
+
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["tag-list"])))
|
|
21
|
+
}, rest), children);
|
|
22
|
+
});
|
|
23
|
+
export default TagList;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { InputSearchProps } from './InputSearch';
|
|
3
|
+
interface TextBoxProps {
|
|
4
|
+
tags?: React.ReactNode;
|
|
5
|
+
inputProps?: InputSearchProps;
|
|
6
|
+
readOnly?: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
9
|
+
onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
|
|
10
|
+
onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
11
|
+
inputValue?: string;
|
|
12
|
+
inputRef?: React.Ref<HTMLInputElement>;
|
|
13
|
+
editable?: boolean;
|
|
14
|
+
multiple?: boolean;
|
|
15
|
+
showTagList?: boolean;
|
|
16
|
+
}
|
|
17
|
+
declare const TextBox: React.ForwardRefExoticComponent<TextBoxProps & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
export default TextBox;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
4
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
+
var _templateObject;
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import TagList from './TagList';
|
|
8
|
+
import { useClassNames } from '../utils';
|
|
9
|
+
import InputSearch from './InputSearch';
|
|
10
|
+
var TextBox = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
11
|
+
var tags = props.tags,
|
|
12
|
+
inputProps = props.inputProps,
|
|
13
|
+
readOnly = props.readOnly,
|
|
14
|
+
disabled = props.disabled,
|
|
15
|
+
multiple = props.multiple,
|
|
16
|
+
onBlur = props.onBlur,
|
|
17
|
+
onFocus = props.onFocus,
|
|
18
|
+
onChange = props.onChange,
|
|
19
|
+
inputValue = props.inputValue,
|
|
20
|
+
inputRef = props.inputRef,
|
|
21
|
+
editable = props.editable,
|
|
22
|
+
showTagList = props.showTagList,
|
|
23
|
+
rest = _objectWithoutPropertiesLoose(props, ["tags", "inputProps", "readOnly", "disabled", "multiple", "onBlur", "onFocus", "onChange", "inputValue", "inputRef", "editable", "showTagList"]);
|
|
24
|
+
var _useClassNames = useClassNames('picker'),
|
|
25
|
+
prefix = _useClassNames.prefix;
|
|
26
|
+
if (!multiple && disabled) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return /*#__PURE__*/React.createElement("div", _extends({
|
|
30
|
+
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["textbox"]))),
|
|
31
|
+
ref: ref
|
|
32
|
+
}, rest), showTagList ? /*#__PURE__*/React.createElement(TagList, null, tags) : null, editable && /*#__PURE__*/React.createElement(InputSearch, _extends({}, inputProps, {
|
|
33
|
+
tabIndex: -1,
|
|
34
|
+
readOnly: readOnly,
|
|
35
|
+
onBlur: onBlur,
|
|
36
|
+
onFocus: onFocus,
|
|
37
|
+
inputRef: inputRef,
|
|
38
|
+
onChange: onChange,
|
|
39
|
+
value: inputValue
|
|
40
|
+
})));
|
|
41
|
+
});
|
|
42
|
+
export default TextBox;
|