rsuite 5.50.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 +11 -0
- package/CheckTreePicker/styles/index.less +3 -3
- package/DatePicker/styles/index.less +1 -1
- 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 +2 -2
- package/Picker/styles/mixin.less +3 -3
- package/TagInput/styles/index.less +1 -1
- 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 +14 -11
- package/cjs/AutoComplete/Combobox.d.ts +8 -0
- package/cjs/AutoComplete/Combobox.js +31 -0
- package/cjs/Calendar/CalendarContainer.js +35 -37
- package/cjs/Cascader/Cascader.js +12 -11
- 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.js +9 -8
- package/cjs/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/cjs/CheckTreePicker/CheckTreeNode.js +31 -59
- package/cjs/CheckTreePicker/CheckTreePicker.js +20 -20
- package/cjs/DatePicker/DatePicker.js +5 -6
- package/cjs/DateRangePicker/DateRangePicker.js +3 -4
- 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.js +40 -18
- package/cjs/FormGroup/FormGroup.js +2 -1
- package/cjs/InputPicker/InputPicker.js +46 -29
- 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 +13 -10
- 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/{esm/Picker/DropdownMenuItem.d.ts → cjs/Picker/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/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/cjs/Picker/{PickerOverlay.js → PickerPopup.js} +9 -7
- package/cjs/Picker/PickerToggle.d.ts +1 -1
- package/cjs/Picker/PickerToggle.js +16 -9
- 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} +2 -2
- package/cjs/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
- 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 +7 -6
- package/cjs/Picker/index.js +26 -19
- package/cjs/Picker/propTypes.d.ts +0 -6
- package/cjs/Picker/propTypes.js +0 -5
- package/cjs/Picker/utils.d.ts +2 -96
- package/cjs/Picker/utils.js +1 -406
- package/cjs/SelectPicker/SelectPicker.js +8 -8
- 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 +19 -20
- package/dist/rsuite-no-reset-rtl.css +109 -117
- 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 +109 -117
- package/dist/rsuite-no-reset.min.css +1 -1
- package/dist/rsuite-no-reset.min.css.map +1 -1
- package/dist/rsuite-rtl.css +109 -117
- package/dist/rsuite-rtl.min.css +1 -1
- package/dist/rsuite-rtl.min.css.map +1 -1
- package/dist/rsuite.css +109 -117
- package/dist/rsuite.js +184 -74
- 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 +15 -12
- package/esm/AutoComplete/Combobox.d.ts +8 -0
- package/esm/AutoComplete/Combobox.js +25 -0
- package/esm/Calendar/CalendarContainer.js +37 -39
- package/esm/Cascader/Cascader.js +13 -12
- 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.js +10 -9
- package/esm/CheckTreePicker/CheckTreeNode.d.ts +2 -2
- package/esm/CheckTreePicker/CheckTreeNode.js +33 -61
- package/esm/CheckTreePicker/CheckTreePicker.js +21 -21
- package/esm/DatePicker/DatePicker.js +5 -6
- package/esm/DateRangePicker/DateRangePicker.js +3 -4
- 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.js +39 -17
- package/esm/FormGroup/FormGroup.js +3 -2
- package/esm/InputPicker/InputPicker.js +47 -30
- 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 +14 -11
- 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/{cjs/Picker/DropdownMenuItem.d.ts → esm/Picker/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/Picker/{PickerOverlay.d.ts → PickerPopup.d.ts} +3 -3
- package/esm/Picker/{PickerOverlay.js → PickerPopup.js} +10 -8
- package/esm/Picker/PickerToggle.d.ts +1 -1
- package/esm/Picker/PickerToggle.js +16 -9
- 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} +2 -2
- package/esm/Picker/{usePickerRef.js → hooks/usePickerRef.js} +1 -1
- 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 +7 -6
- package/esm/Picker/index.js +7 -6
- package/esm/Picker/propTypes.d.ts +0 -6
- package/esm/Picker/propTypes.js +0 -5
- package/esm/Picker/utils.d.ts +2 -96
- package/esm/Picker/utils.js +2 -401
- package/esm/SelectPicker/SelectPicker.js +9 -9
- 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 +20 -21
- package/package.json +1 -1
- 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/esm/Form/Form.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
|
-
import React, { useMemo,
|
|
4
|
+
import React, { useMemo, useImperativeHandle, useRef } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import omit from 'lodash/omit';
|
|
7
|
+
import set from 'lodash/set';
|
|
7
8
|
import { SchemaModel } from 'schema-typed';
|
|
8
9
|
import FormContext, { FormValueContext } from './FormContext';
|
|
9
10
|
import FormControl from '../FormControl';
|
|
@@ -13,7 +14,7 @@ import FormGroup from '../FormGroup';
|
|
|
13
14
|
import FormHelpText from '../FormHelpText';
|
|
14
15
|
import { useFormClassNames } from './useFormClassNames';
|
|
15
16
|
import useSchemaModel from './useSchemaModel';
|
|
16
|
-
import { useControlled } from '../utils';
|
|
17
|
+
import { useControlled, useEventCallback } from '../utils';
|
|
17
18
|
/**
|
|
18
19
|
* The `Form` component is a form interface for collecting and validating user input.
|
|
19
20
|
* @see https://rsuitejs.com/components/form
|
|
@@ -30,6 +31,8 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
30
31
|
formValue = props.formValue,
|
|
31
32
|
formError = props.formError,
|
|
32
33
|
fluid = props.fluid,
|
|
34
|
+
_props$nestedField = props.nestedField,
|
|
35
|
+
nestedField = _props$nestedField === void 0 ? false : _props$nestedField,
|
|
33
36
|
_props$layout = props.layout,
|
|
34
37
|
layout = _props$layout === void 0 ? 'vertical' : _props$layout,
|
|
35
38
|
_props$model = props.model,
|
|
@@ -43,7 +46,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
43
46
|
onCheck = props.onCheck,
|
|
44
47
|
onError = props.onError,
|
|
45
48
|
onChange = props.onChange,
|
|
46
|
-
rest = _objectWithoutPropertiesLoose(props, ["checkTrigger", "classPrefix", "errorFromContext", "formDefaultValue", "formValue", "formError", "fluid", "layout", "model", "readOnly", "plaintext", "className", "children", "disabled", "onSubmit", "onCheck", "onError", "onChange"]);
|
|
49
|
+
rest = _objectWithoutPropertiesLoose(props, ["checkTrigger", "classPrefix", "errorFromContext", "formDefaultValue", "formValue", "formError", "fluid", "nestedField", "layout", "model", "readOnly", "plaintext", "className", "children", "disabled", "onSubmit", "onCheck", "onError", "onChange"]);
|
|
47
50
|
var _useSchemaModel = useSchemaModel(formModel),
|
|
48
51
|
getCombinedModel = _useSchemaModel.getCombinedModel,
|
|
49
52
|
pushFieldRule = _useSchemaModel.pushFieldRule,
|
|
@@ -73,7 +76,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
73
76
|
* The error message after verification is returned in the callback.
|
|
74
77
|
* @param callback
|
|
75
78
|
*/
|
|
76
|
-
var check =
|
|
79
|
+
var check = useEventCallback(function (callback) {
|
|
77
80
|
var formValue = realFormValue || {};
|
|
78
81
|
var formError = {};
|
|
79
82
|
var errorCount = 0;
|
|
@@ -93,14 +96,14 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
93
96
|
return false;
|
|
94
97
|
}
|
|
95
98
|
return true;
|
|
96
|
-
}
|
|
99
|
+
});
|
|
97
100
|
|
|
98
101
|
/**
|
|
99
102
|
* Check the data field
|
|
100
103
|
* @param fieldName
|
|
101
104
|
* @param callback
|
|
102
105
|
*/
|
|
103
|
-
var checkForField =
|
|
106
|
+
var checkForField = useEventCallback(function (fieldName, callback) {
|
|
104
107
|
var _extends2;
|
|
105
108
|
var formValue = realFormValue || {};
|
|
106
109
|
var model = getCombinedModel();
|
|
@@ -113,12 +116,12 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
113
116
|
onError === null || onError === void 0 ? void 0 : onError(formError);
|
|
114
117
|
}
|
|
115
118
|
return !checkResult.hasError;
|
|
116
|
-
}
|
|
119
|
+
});
|
|
117
120
|
|
|
118
121
|
/**
|
|
119
122
|
* Check form data asynchronously and return a Promise
|
|
120
123
|
*/
|
|
121
|
-
var checkAsync =
|
|
124
|
+
var checkAsync = useEventCallback(function () {
|
|
122
125
|
var formValue = realFormValue || {};
|
|
123
126
|
var promises = [];
|
|
124
127
|
var keys = [];
|
|
@@ -146,13 +149,13 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
146
149
|
formError: formError
|
|
147
150
|
};
|
|
148
151
|
});
|
|
149
|
-
}
|
|
152
|
+
});
|
|
150
153
|
|
|
151
154
|
/**
|
|
152
155
|
* Asynchronously check form fields and return Promise
|
|
153
156
|
* @param fieldName
|
|
154
157
|
*/
|
|
155
|
-
var checkForFieldAsync =
|
|
158
|
+
var checkForFieldAsync = useEventCallback(function (fieldName) {
|
|
156
159
|
var formValue = realFormValue || {};
|
|
157
160
|
var model = getCombinedModel();
|
|
158
161
|
return model.checkForFieldAsync(fieldName, formValue).then(function (checkResult) {
|
|
@@ -165,19 +168,19 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
165
168
|
}
|
|
166
169
|
return checkResult;
|
|
167
170
|
});
|
|
168
|
-
}
|
|
169
|
-
var cleanErrors =
|
|
171
|
+
});
|
|
172
|
+
var cleanErrors = useEventCallback(function () {
|
|
170
173
|
setFormError({});
|
|
171
|
-
}
|
|
172
|
-
var cleanErrorForField =
|
|
174
|
+
});
|
|
175
|
+
var cleanErrorForField = useEventCallback(function (fieldName) {
|
|
173
176
|
setFormError(omit(realFormError, [fieldName]));
|
|
174
|
-
}
|
|
175
|
-
var resetErrors =
|
|
177
|
+
});
|
|
178
|
+
var resetErrors = useEventCallback(function (formError) {
|
|
176
179
|
if (formError === void 0) {
|
|
177
180
|
formError = {};
|
|
178
181
|
}
|
|
179
182
|
setFormError(formError);
|
|
180
|
-
}
|
|
183
|
+
});
|
|
181
184
|
useImperativeHandle(ref, function () {
|
|
182
185
|
return {
|
|
183
186
|
root: rootRef.current,
|
|
@@ -190,7 +193,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
190
193
|
resetErrors: resetErrors
|
|
191
194
|
};
|
|
192
195
|
});
|
|
193
|
-
var removeFieldError =
|
|
196
|
+
var removeFieldError = useEventCallback(function (name) {
|
|
194
197
|
/**
|
|
195
198
|
* when this function is called when the children component is unmount, it's an old render frame
|
|
196
199
|
* so use Ref to get future error
|
|
@@ -199,8 +202,8 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
199
202
|
realFormErrorRef.current = formError;
|
|
200
203
|
setFormError(formError);
|
|
201
204
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
|
|
202
|
-
}
|
|
203
|
-
var removeFieldValue =
|
|
205
|
+
});
|
|
206
|
+
var removeFieldValue = useEventCallback(function (name) {
|
|
204
207
|
/**
|
|
205
208
|
* when this function is called when the children component is unmount, it's an old render frame
|
|
206
209
|
* so use Ref to get future value
|
|
@@ -209,8 +212,8 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
209
212
|
realFormValueRef.current = formValue;
|
|
210
213
|
setFormValue(formValue);
|
|
211
214
|
onChange === null || onChange === void 0 ? void 0 : onChange(formValue);
|
|
212
|
-
}
|
|
213
|
-
var handleSubmit =
|
|
215
|
+
});
|
|
216
|
+
var handleSubmit = useEventCallback(function (event) {
|
|
214
217
|
if (disabled || readOnly || plaintext) {
|
|
215
218
|
return;
|
|
216
219
|
}
|
|
@@ -218,24 +221,29 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
218
221
|
event.stopPropagation();
|
|
219
222
|
var checkStatus = check();
|
|
220
223
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(checkStatus, event);
|
|
221
|
-
}
|
|
222
|
-
var handleFieldError =
|
|
224
|
+
});
|
|
225
|
+
var handleFieldError = useEventCallback(function (name, errorMessage) {
|
|
223
226
|
var _extends4;
|
|
224
227
|
var formError = _extends({}, realFormError, (_extends4 = {}, _extends4[name] = errorMessage, _extends4));
|
|
225
228
|
setFormError(formError);
|
|
226
229
|
onError === null || onError === void 0 ? void 0 : onError(formError);
|
|
227
230
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
|
|
228
|
-
}
|
|
229
|
-
var handleFieldSuccess =
|
|
231
|
+
});
|
|
232
|
+
var handleFieldSuccess = useEventCallback(function (name) {
|
|
230
233
|
removeFieldError(name);
|
|
231
|
-
}
|
|
232
|
-
var
|
|
234
|
+
});
|
|
235
|
+
var setFieldValue = function setFieldValue(formValue, fieldName, fieldValue) {
|
|
233
236
|
var _extends5;
|
|
234
|
-
|
|
235
|
-
|
|
237
|
+
if (nestedField) {
|
|
238
|
+
return set(_extends({}, formValue), fieldName, fieldValue);
|
|
239
|
+
}
|
|
240
|
+
return _extends({}, formValue, (_extends5 = {}, _extends5[fieldName] = fieldValue, _extends5));
|
|
241
|
+
};
|
|
242
|
+
var handleFieldChange = useEventCallback(function (name, value, event) {
|
|
243
|
+
var nextFormValue = setFieldValue(realFormValue, name, value);
|
|
236
244
|
setFormValue(nextFormValue);
|
|
237
245
|
onChange === null || onChange === void 0 ? void 0 : onChange(nextFormValue, event);
|
|
238
|
-
}
|
|
246
|
+
});
|
|
239
247
|
var rootRef = useRef(null);
|
|
240
248
|
var formContextValue = useMemo(function () {
|
|
241
249
|
return {
|
|
@@ -246,6 +254,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
246
254
|
plaintext: plaintext,
|
|
247
255
|
disabled: disabled,
|
|
248
256
|
formError: realFormError,
|
|
257
|
+
nestedField: nestedField,
|
|
249
258
|
removeFieldValue: removeFieldValue,
|
|
250
259
|
removeFieldError: removeFieldError,
|
|
251
260
|
pushFieldRule: pushFieldRule,
|
|
@@ -254,7 +263,7 @@ var Form = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
254
263
|
onFieldError: handleFieldError,
|
|
255
264
|
onFieldSuccess: handleFieldSuccess
|
|
256
265
|
};
|
|
257
|
-
}, [getCombinedModel, checkTrigger, errorFromContext, readOnly, plaintext, disabled, realFormError, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
|
|
266
|
+
}, [getCombinedModel, checkTrigger, errorFromContext, readOnly, plaintext, disabled, realFormError, nestedField, removeFieldValue, removeFieldError, pushFieldRule, removeFieldRule, handleFieldChange, handleFieldError, handleFieldSuccess]);
|
|
258
267
|
return /*#__PURE__*/React.createElement("form", _extends({}, rest, {
|
|
259
268
|
ref: rootRef,
|
|
260
269
|
onSubmit: handleSubmit,
|
|
@@ -7,6 +7,7 @@ interface TrulyFormContextValue<T = Record<string, any>, errorMsgType = any, E =
|
|
|
7
7
|
}> {
|
|
8
8
|
getCombinedModel: () => Schema;
|
|
9
9
|
formError: E;
|
|
10
|
+
nestedField: boolean;
|
|
10
11
|
removeFieldValue: (name: string) => void;
|
|
11
12
|
removeFieldError: (name: string) => void;
|
|
12
13
|
pushFieldRule: (name: string, fieldRule: FieldRuleType) => void;
|
|
@@ -13,7 +13,7 @@ import FormErrorMessage from '../FormErrorMessage';
|
|
|
13
13
|
import { useClassNames } from '../utils';
|
|
14
14
|
import FormContext, { FormValueContext } from '../Form/FormContext';
|
|
15
15
|
import { FormGroupContext } from '../FormGroup/FormGroup';
|
|
16
|
-
import { useWillUnmount } from '../utils';
|
|
16
|
+
import { useWillUnmount, useEventCallback } from '../utils';
|
|
17
17
|
import useRegisterModel from './useRegisterModel';
|
|
18
18
|
import Toggle from '../Toggle';
|
|
19
19
|
|
|
@@ -33,6 +33,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
33
33
|
disabledContext = _useContext.disabled,
|
|
34
34
|
errorFromContext = _useContext.errorFromContext,
|
|
35
35
|
formError = _useContext.formError,
|
|
36
|
+
nestedField = _useContext.nestedField,
|
|
36
37
|
removeFieldValue = _useContext.removeFieldValue,
|
|
37
38
|
removeFieldError = _useContext.removeFieldError,
|
|
38
39
|
pushFieldRule = _useContext.pushFieldRule,
|
|
@@ -82,46 +83,67 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
82
83
|
});
|
|
83
84
|
var trigger = checkTrigger || contextCheckTrigger;
|
|
84
85
|
var formValue = useContext(FormValueContext);
|
|
85
|
-
var
|
|
86
|
+
var getFieldValue = function getFieldValue(fieldName) {
|
|
87
|
+
if (!isUndefined(value)) {
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
return nestedField ? get(formValue, fieldName) : formValue === null || formValue === void 0 ? void 0 : formValue[name];
|
|
91
|
+
};
|
|
92
|
+
var setFieldValue = function setFieldValue(fieldName, fieldValue) {
|
|
93
|
+
var _extends2;
|
|
94
|
+
if (nestedField) {
|
|
95
|
+
return set(_extends({}, formValue), fieldName, fieldValue);
|
|
96
|
+
}
|
|
97
|
+
return _extends({}, formValue, (_extends2 = {}, _extends2[fieldName] = fieldValue, _extends2));
|
|
98
|
+
};
|
|
99
|
+
var getFieldError = function getFieldError(fieldName) {
|
|
100
|
+
if (nestedField) {
|
|
101
|
+
var _name = fieldName.includes('.') ? fieldName.replace('.', '.object.') + '.errorMessage' : fieldName;
|
|
102
|
+
return get(formError, _name);
|
|
103
|
+
}
|
|
104
|
+
return formError === null || formError === void 0 ? void 0 : formError[fieldName];
|
|
105
|
+
};
|
|
106
|
+
var fieldValue = getFieldValue(name);
|
|
86
107
|
var _useClassNames = useClassNames(classPrefix),
|
|
87
108
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
88
109
|
prefix = _useClassNames.prefix;
|
|
89
110
|
var classes = withClassPrefix('wrapper');
|
|
90
|
-
var handleFieldChange = function
|
|
111
|
+
var handleFieldChange = useEventCallback(function (value, event) {
|
|
91
112
|
handleFieldCheck(value, trigger === 'change');
|
|
92
113
|
onFieldChange === null || onFieldChange === void 0 ? void 0 : onFieldChange(name, value, event);
|
|
93
114
|
onChange === null || onChange === void 0 ? void 0 : onChange(value, event);
|
|
94
|
-
};
|
|
95
|
-
var handleFieldBlur = function
|
|
96
|
-
handleFieldCheck(
|
|
115
|
+
});
|
|
116
|
+
var handleFieldBlur = useEventCallback(function (event) {
|
|
117
|
+
handleFieldCheck(fieldValue, trigger === 'blur');
|
|
97
118
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
98
|
-
};
|
|
99
|
-
var handleFieldCheck = function
|
|
119
|
+
});
|
|
120
|
+
var handleFieldCheck = useEventCallback(function (value, isCheckTrigger) {
|
|
121
|
+
var checkFieldName = nestedField ? name.split('.')[0] : name;
|
|
100
122
|
var callbackEvents = function callbackEvents(checkResult) {
|
|
101
123
|
// The relevant event is triggered only when the inspection is allowed.
|
|
102
124
|
if (isCheckTrigger) {
|
|
103
125
|
if (checkResult.hasError) {
|
|
104
|
-
onFieldError === null || onFieldError === void 0 ? void 0 : onFieldError(
|
|
126
|
+
onFieldError === null || onFieldError === void 0 ? void 0 : onFieldError(checkFieldName, (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult);
|
|
105
127
|
} else {
|
|
106
|
-
onFieldSuccess === null || onFieldSuccess === void 0 ? void 0 : onFieldSuccess(
|
|
128
|
+
onFieldSuccess === null || onFieldSuccess === void 0 ? void 0 : onFieldSuccess(checkFieldName);
|
|
107
129
|
}
|
|
108
130
|
}
|
|
109
131
|
return checkResult;
|
|
110
132
|
};
|
|
111
|
-
var nextFormValue =
|
|
133
|
+
var nextFormValue = setFieldValue(name, value);
|
|
112
134
|
var model = getCombinedModel();
|
|
113
135
|
if (checkAsync) {
|
|
114
|
-
return model === null || model === void 0 ? void 0 : model.checkForFieldAsync(
|
|
136
|
+
return model === null || model === void 0 ? void 0 : model.checkForFieldAsync(checkFieldName, nextFormValue).then(function (checkResult) {
|
|
115
137
|
return callbackEvents(checkResult);
|
|
116
138
|
});
|
|
117
139
|
}
|
|
118
|
-
return Promise.resolve(callbackEvents(model === null || model === void 0 ? void 0 : model.checkForField(
|
|
119
|
-
};
|
|
140
|
+
return Promise.resolve(callbackEvents(model === null || model === void 0 ? void 0 : model.checkForField(checkFieldName, nextFormValue)));
|
|
141
|
+
});
|
|
120
142
|
var messageNode = null;
|
|
121
143
|
if (!isUndefined(errorMessage)) {
|
|
122
144
|
messageNode = errorMessage;
|
|
123
145
|
} else if (errorFromContext) {
|
|
124
|
-
var fieldError =
|
|
146
|
+
var fieldError = getFieldError(name);
|
|
125
147
|
if (typeof fieldError === 'string' || !(fieldError !== null && fieldError !== void 0 && fieldError.array) && !(fieldError !== null && fieldError !== void 0 && fieldError.object) && fieldError !== null && fieldError !== void 0 && fieldError.hasError) {
|
|
126
148
|
messageNode = fieldError;
|
|
127
149
|
}
|
|
@@ -135,7 +157,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
135
157
|
if (AccepterComponent === Toggle) {
|
|
136
158
|
valueKey = 'checked';
|
|
137
159
|
}
|
|
138
|
-
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] =
|
|
160
|
+
var accepterProps = (_accepterProps = {}, _accepterProps[valueKey] = fieldValue === undefined ? defaultValue : fieldValue, _accepterProps);
|
|
139
161
|
return /*#__PURE__*/React.createElement(Component, {
|
|
140
162
|
className: classes,
|
|
141
163
|
ref: ref,
|
|
@@ -154,7 +176,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
154
176
|
onChange: handleFieldChange,
|
|
155
177
|
onBlur: handleFieldBlur
|
|
156
178
|
})), /*#__PURE__*/React.createElement(FormErrorMessage, {
|
|
157
|
-
id: controlId + "-error-message",
|
|
179
|
+
id: controlId ? controlId + "-error-message" : undefined,
|
|
158
180
|
role: "alert",
|
|
159
181
|
"aria-relevant": "all",
|
|
160
182
|
show: !!messageNode,
|
|
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import React, { useMemo } from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
-
import { useClassNames } from '../utils';
|
|
6
|
+
import { useClassNames, useUniqueId } from '../utils';
|
|
7
7
|
export var FormGroupContext = /*#__PURE__*/React.createContext({});
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -15,13 +15,14 @@ var FormGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
15
15
|
Component = _props$as === void 0 ? 'div' : _props$as,
|
|
16
16
|
_props$classPrefix = props.classPrefix,
|
|
17
17
|
classPrefix = _props$classPrefix === void 0 ? 'form-group' : _props$classPrefix,
|
|
18
|
-
|
|
18
|
+
controlIdProp = props.controlId,
|
|
19
19
|
className = props.className,
|
|
20
20
|
rest = _objectWithoutPropertiesLoose(props, ["as", "classPrefix", "controlId", "className"]);
|
|
21
21
|
var _useClassNames = useClassNames(classPrefix),
|
|
22
22
|
withClassPrefix = _useClassNames.withClassPrefix,
|
|
23
23
|
merge = _useClassNames.merge;
|
|
24
24
|
var classes = merge(className, withClassPrefix());
|
|
25
|
+
var controlId = useUniqueId('rs-', controlIdProp);
|
|
25
26
|
var contextValue = useMemo(function () {
|
|
26
27
|
return {
|
|
27
28
|
controlId: controlId
|
|
@@ -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';
|
|
@@ -19,11 +19,22 @@ import { filterNodesOfTree } from '../utils/treeUtils';
|
|
|
19
19
|
import Plaintext from '../Plaintext';
|
|
20
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
|
*
|
|
@@ -206,7 +217,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
206
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);
|
|
207
218
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
208
219
|
}, [searchKeyword, value]);
|
|
209
|
-
var
|
|
220
|
+
var getDataItem = function getDataItem(value) {
|
|
210
221
|
// Find active `MenuItem` by `value`
|
|
211
222
|
var allData = getAllDataAndCache();
|
|
212
223
|
var activeItem = allData.find(function (item) {
|
|
@@ -464,7 +475,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
464
475
|
blurInput();
|
|
465
476
|
setOpen(false);
|
|
466
477
|
});
|
|
467
|
-
var
|
|
478
|
+
var renderListItem = function renderListItem(label, item) {
|
|
468
479
|
// 'Create option "{0}"' => Create option "xxxxx"
|
|
469
480
|
var newLabel = item.create ? /*#__PURE__*/React.createElement("span", null, tplTransform(locale.createOption, label)) : label;
|
|
470
481
|
return renderMenuItem ? renderMenuItem(newLabel, item) : newLabel;
|
|
@@ -476,7 +487,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
476
487
|
itemNode: null
|
|
477
488
|
};
|
|
478
489
|
}
|
|
479
|
-
var dataItem =
|
|
490
|
+
var dataItem = getDataItem(value);
|
|
480
491
|
var itemNode = dataItem.itemNode;
|
|
481
492
|
if (!isNil(value) && isFunction(renderValue)) {
|
|
482
493
|
itemNode = renderValue(value, dataItem.activeItem, itemNode);
|
|
@@ -497,17 +508,19 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
497
508
|
var tags = value || [];
|
|
498
509
|
var items = [];
|
|
499
510
|
var tagElements = tags.map(function (tag) {
|
|
500
|
-
var
|
|
501
|
-
isValid =
|
|
502
|
-
itemNode =
|
|
503
|
-
activeItem =
|
|
511
|
+
var _getDataItem = getDataItem(tag),
|
|
512
|
+
isValid = _getDataItem.isValid,
|
|
513
|
+
itemNode = _getDataItem.itemNode,
|
|
514
|
+
activeItem = _getDataItem.activeItem;
|
|
504
515
|
items.push(activeItem);
|
|
505
516
|
if (!isValid) {
|
|
506
517
|
return null;
|
|
507
518
|
}
|
|
508
|
-
return /*#__PURE__*/React.createElement(Tag, _extends({
|
|
519
|
+
return /*#__PURE__*/React.createElement(Tag, _extends({
|
|
520
|
+
role: "option"
|
|
521
|
+
}, tagRest, {
|
|
509
522
|
key: tag,
|
|
510
|
-
size: rest.size
|
|
523
|
+
size: convertSize(rest.size),
|
|
511
524
|
closable: !disabled && closable && !readOnly && !plaintext,
|
|
512
525
|
title: typeof itemNode === 'string' ? itemNode : undefined,
|
|
513
526
|
onClose: createChainedFunction(handleRemoveItemByTag.bind(null, tag), onClose)
|
|
@@ -520,7 +533,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
520
533
|
}
|
|
521
534
|
return tagElements;
|
|
522
535
|
};
|
|
523
|
-
var
|
|
536
|
+
var renderPopup = function renderPopup(positionProps, speakerRef) {
|
|
524
537
|
var left = positionProps.left,
|
|
525
538
|
top = positionProps.top,
|
|
526
539
|
className = positionProps.className;
|
|
@@ -544,21 +557,20 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
544
557
|
items = items.sort(sort(false));
|
|
545
558
|
}
|
|
546
559
|
if (disabledOptions) {
|
|
547
|
-
return /*#__PURE__*/React.createElement(
|
|
560
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
548
561
|
ref: mergeRefs(overlay, speakerRef)
|
|
549
562
|
});
|
|
550
563
|
}
|
|
551
|
-
var menu = items.length ? /*#__PURE__*/React.createElement(
|
|
552
|
-
id: id ? id + "-listbox" : undefined,
|
|
564
|
+
var menu = items.length ? /*#__PURE__*/React.createElement(Listbox, {
|
|
553
565
|
listProps: listProps,
|
|
554
566
|
listRef: list,
|
|
555
567
|
disabledItemValues: disabledItemValues,
|
|
556
568
|
valueKey: valueKey,
|
|
557
569
|
labelKey: labelKey,
|
|
558
570
|
classPrefix: menuClassPrefix,
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
571
|
+
listItemClassPrefix: multi ? undefined : menuClassPrefix + "-item",
|
|
572
|
+
listItemAs: multi ? ListCheckItem : ListItem,
|
|
573
|
+
listItemProps: {
|
|
562
574
|
renderMenuItemCheckbox: renderMenuItemCheckbox
|
|
563
575
|
},
|
|
564
576
|
activeItemValues: multi ? value : [value],
|
|
@@ -573,12 +585,12 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
573
585
|
onSelect: multi ? handleCheckTag : handleSelectItem // fixme don't use any
|
|
574
586
|
,
|
|
575
587
|
renderMenuGroup: renderMenuGroup,
|
|
576
|
-
renderMenuItem:
|
|
588
|
+
renderMenuItem: renderListItem,
|
|
577
589
|
virtualized: virtualized
|
|
578
590
|
}) : /*#__PURE__*/React.createElement("div", {
|
|
579
591
|
className: prefix(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["none"])))
|
|
580
592
|
}, locale === null || locale === void 0 ? void 0 : locale.noResultsText);
|
|
581
|
-
return /*#__PURE__*/React.createElement(
|
|
593
|
+
return /*#__PURE__*/React.createElement(PickerPopup, {
|
|
582
594
|
ref: mergeRefs(overlay, speakerRef),
|
|
583
595
|
autoWidth: menuAutoWidth,
|
|
584
596
|
className: classes,
|
|
@@ -611,7 +623,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
611
623
|
usedClassNamePropKeys = _usePickerClassName[1];
|
|
612
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));
|
|
613
625
|
var searching = !!searchKeyword && open;
|
|
614
|
-
var
|
|
626
|
+
var editable = searchable && !disabled && !rest.loading;
|
|
615
627
|
var inputProps = multi ? {
|
|
616
628
|
inputStyle: {
|
|
617
629
|
maxWidth: maxWidth - 63
|
|
@@ -637,6 +649,8 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
637
649
|
}
|
|
638
650
|
var placeholderNode = placeholder || (disabledOptions ? null : locale === null || locale === void 0 ? void 0 : locale.placeholder);
|
|
639
651
|
return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
|
|
652
|
+
id: id,
|
|
653
|
+
multiple: multi,
|
|
640
654
|
pickerProps: pick(props, pickTriggerPropKeys),
|
|
641
655
|
ref: triggerRef,
|
|
642
656
|
trigger: "active",
|
|
@@ -644,7 +658,7 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
644
658
|
onEntered: createChainedFunction(onEntered, onOpen),
|
|
645
659
|
onExit: createChainedFunction(handleExit, onExit),
|
|
646
660
|
onExited: createChainedFunction(handleExited, onExited),
|
|
647
|
-
speaker:
|
|
661
|
+
speaker: renderPopup,
|
|
648
662
|
placement: placement
|
|
649
663
|
}, /*#__PURE__*/React.createElement(Component, {
|
|
650
664
|
className: classes,
|
|
@@ -653,7 +667,6 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
653
667
|
onKeyDown: onPickerKeyDown,
|
|
654
668
|
ref: root
|
|
655
669
|
}, /*#__PURE__*/React.createElement(PickerToggle, _extends({}, omit(rest, [].concat(omitTriggerPropKeys, usedClassNamePropKeys)), {
|
|
656
|
-
id: id,
|
|
657
670
|
appearance: appearance,
|
|
658
671
|
readOnly: readOnly,
|
|
659
672
|
plaintext: plaintext,
|
|
@@ -667,18 +680,22 @@ var InputPicker = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
667
680
|
disabled: disabled,
|
|
668
681
|
placement: placement,
|
|
669
682
|
inputValue: value,
|
|
683
|
+
focusItemValue: focusItemValue,
|
|
670
684
|
caret: !disabledOptions
|
|
671
|
-
}), searching || multi && hasValue ? null : itemNode || placeholderNode),
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
685
|
+
}), searching || multi && hasValue ? null : itemNode || placeholderNode), /*#__PURE__*/React.createElement(TextBox, {
|
|
686
|
+
showTagList: hasValue && multi,
|
|
687
|
+
tags: tagElements,
|
|
688
|
+
editable: editable,
|
|
675
689
|
readOnly: readOnly,
|
|
690
|
+
disabled: disabled,
|
|
691
|
+
multiple: multi,
|
|
676
692
|
onBlur: onBlur,
|
|
677
693
|
onFocus: createChainedFunction(handleFocus, onFocus),
|
|
678
694
|
inputRef: inputRef,
|
|
679
695
|
onChange: handleSearch,
|
|
680
|
-
|
|
681
|
-
|
|
696
|
+
inputValue: open ? searchKeyword : '',
|
|
697
|
+
inputProps: inputProps
|
|
698
|
+
})));
|
|
682
699
|
});
|
|
683
700
|
InputPicker.displayName = 'InputPicker';
|
|
684
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;
|