rsuite 5.70.1 → 5.70.3
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 +20 -0
- package/cjs/Form/Form.js +1 -1
- package/cjs/Form/hooks/useFormValidate.d.ts +1 -1
- package/cjs/Form/hooks/useFormValidate.js +25 -8
- package/cjs/Form/hooks/useSchemaModel.d.ts +1 -1
- package/cjs/Form/hooks/useSchemaModel.js +61 -8
- package/cjs/FormControl/hooks/useField.js +4 -0
- package/cjs/Tree/hooks/useFlattenTree.js +7 -1
- package/dist/rsuite.js +5 -5
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Form/Form.js +1 -1
- package/esm/Form/hooks/useFormValidate.d.ts +1 -1
- package/esm/Form/hooks/useFormValidate.js +25 -8
- package/esm/Form/hooks/useSchemaModel.d.ts +1 -1
- package/esm/Form/hooks/useSchemaModel.js +62 -9
- package/esm/FormControl/hooks/useField.js +4 -0
- package/esm/Tree/hooks/useFlattenTree.js +7 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
+
## [5.70.3](https://github.com/rsuite/rsuite/compare/v5.70.2...v5.70.3) (2024-09-20)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **CheckTree:** fix the incorrect check state after loading child nodes through `getChildren` ([#3974](https://github.com/rsuite/rsuite/issues/3974)) ([afaaf2d](https://github.com/rsuite/rsuite/commit/afaaf2d8017799089cc79c369802b8d53232c2b0))
|
|
7
|
+
* docs/package.json & docs/package-lock.json to reduce vulnerabilities ([#3972](https://github.com/rsuite/rsuite/issues/3972)) ([41d5334](https://github.com/rsuite/rsuite/commit/41d533468bfe8b25be126378124bcaa2df55cb72))
|
|
8
|
+
* **Form:** clear error caused by uncontrolled form state ([#3971](https://github.com/rsuite/rsuite/issues/3971)) ([dbc75fd](https://github.com/rsuite/rsuite/commit/dbc75fd39886df4f558c48ee51cd95b28ce75c7a))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## [5.70.2](https://github.com/rsuite/rsuite/compare/v5.70.1...v5.70.2) (2024-09-13)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **Form:** fix the error message of the nested field not displayed when the form is submitted ([#3960](https://github.com/rsuite/rsuite/issues/3960)) ([384dd70](https://github.com/rsuite/rsuite/commit/384dd70b0477470da233217d46af77315ff7089d))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
1
21
|
## [5.70.1](https://github.com/rsuite/rsuite/compare/v5.70.0...v5.70.1) (2024-09-06)
|
|
2
22
|
|
|
3
23
|
|
package/cjs/Form/Form.js
CHANGED
|
@@ -58,7 +58,7 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
|
58
58
|
onError = props.onError,
|
|
59
59
|
onChange = props.onChange,
|
|
60
60
|
rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
61
|
-
var _useSchemaModel = (0, _useSchemaModel2.default)(formModel),
|
|
61
|
+
var _useSchemaModel = (0, _useSchemaModel2.default)(formModel, nestedField),
|
|
62
62
|
getCombinedModel = _useSchemaModel.getCombinedModel,
|
|
63
63
|
pushFieldRule = _useSchemaModel.pushFieldRule,
|
|
64
64
|
removeFieldRule = _useSchemaModel.removeFieldRule;
|
|
@@ -6,7 +6,7 @@ export interface FormErrorProps {
|
|
|
6
6
|
onError?: (formError: any) => void;
|
|
7
7
|
nestedField?: boolean;
|
|
8
8
|
}
|
|
9
|
-
export default function useFormValidate(
|
|
9
|
+
export default function useFormValidate(_formError: any, props: FormErrorProps): {
|
|
10
10
|
formError: any;
|
|
11
11
|
check: (...args: any[]) => any;
|
|
12
12
|
checkForField: (...args: any[]) => any;
|
|
@@ -13,13 +13,13 @@ var _hooks = require("../../internals/hooks");
|
|
|
13
13
|
var _utils = require("../../FormControl/utils");
|
|
14
14
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
15
15
|
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
|
-
function useFormValidate(
|
|
16
|
+
function useFormValidate(_formError, props) {
|
|
17
17
|
var formValue = props.formValue,
|
|
18
18
|
getCombinedModel = props.getCombinedModel,
|
|
19
19
|
onCheck = props.onCheck,
|
|
20
20
|
onError = props.onError,
|
|
21
21
|
nestedField = props.nestedField;
|
|
22
|
-
var _useControlled = (0, _hooks.useControlled)(
|
|
22
|
+
var _useControlled = (0, _hooks.useControlled)(_formError, {}),
|
|
23
23
|
realFormError = _useControlled[0],
|
|
24
24
|
setFormError = _useControlled[1];
|
|
25
25
|
var checkOptions = {
|
|
@@ -37,12 +37,29 @@ function useFormValidate(formError, props) {
|
|
|
37
37
|
var formError = {};
|
|
38
38
|
var errorCount = 0;
|
|
39
39
|
var model = getCombinedModel();
|
|
40
|
-
|
|
41
|
-
var checkResult =
|
|
40
|
+
var checkField = function checkField(key, type, value, formErrorObj) {
|
|
41
|
+
var checkResult = type.check(value);
|
|
42
42
|
if (checkResult.hasError === true) {
|
|
43
43
|
errorCount += 1;
|
|
44
|
-
|
|
44
|
+
formErrorObj[key] = (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Check nested object
|
|
48
|
+
if (type !== null && type !== void 0 && type.objectTypeSchemaSpec) {
|
|
49
|
+
Object.entries(type.objectTypeSchemaSpec).forEach(function (_ref) {
|
|
50
|
+
var nestedKey = _ref[0],
|
|
51
|
+
nestedType = _ref[1];
|
|
52
|
+
formErrorObj[key] = formErrorObj[key] || {
|
|
53
|
+
object: {}
|
|
54
|
+
};
|
|
55
|
+
checkField(nestedKey, nestedType, value === null || value === void 0 ? void 0 : value[nestedKey], formErrorObj[key].object);
|
|
56
|
+
});
|
|
45
57
|
}
|
|
58
|
+
};
|
|
59
|
+
Object.entries(model.getSchemaSpec()).forEach(function (_ref2) {
|
|
60
|
+
var key = _ref2[0],
|
|
61
|
+
type = _ref2[1];
|
|
62
|
+
checkField(key, type, formValue[key], formError);
|
|
46
63
|
});
|
|
47
64
|
setFormError(formError);
|
|
48
65
|
onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);
|
|
@@ -56,7 +73,7 @@ function useFormValidate(formError, props) {
|
|
|
56
73
|
var checkFieldForNextValue = (0, _hooks.useEventCallback)(function (fieldName, nextValue, callback) {
|
|
57
74
|
var model = getCombinedModel();
|
|
58
75
|
var resultOfCurrentField = model.checkForField(fieldName, nextValue, checkOptions);
|
|
59
|
-
var nextFormError = (0, _extends2.default)({},
|
|
76
|
+
var nextFormError = (0, _extends2.default)({}, realFormError);
|
|
60
77
|
/**
|
|
61
78
|
* when using proxy of schema-typed, we need to use getCheckResult to get all errors,
|
|
62
79
|
* but if nestedField is used, it is impossible to distinguish whether the nested object has an error here,
|
|
@@ -139,7 +156,7 @@ function useFormValidate(formError, props) {
|
|
|
139
156
|
var checkFieldAsyncForNextValue = (0, _hooks.useEventCallback)(function (fieldName, nextValue) {
|
|
140
157
|
var model = getCombinedModel();
|
|
141
158
|
return model.checkForFieldAsync(fieldName, nextValue, checkOptions).then(function (resultOfCurrentField) {
|
|
142
|
-
var nextFormError = (0, _extends2.default)({},
|
|
159
|
+
var nextFormError = (0, _extends2.default)({}, realFormError);
|
|
143
160
|
/**
|
|
144
161
|
* when using proxy of schema-typed, we need to use getCheckResult to get all errors,
|
|
145
162
|
* but if nestedField is used, it is impossible to distinguish whether the nested object has an error here,
|
|
@@ -208,7 +225,7 @@ function useFormValidate(formError, props) {
|
|
|
208
225
|
setFormError(formError);
|
|
209
226
|
});
|
|
210
227
|
var cleanErrorForField = (0, _hooks.useEventCallback)(function (fieldName) {
|
|
211
|
-
setFormError((0, _omit.default)(
|
|
228
|
+
setFormError((0, _omit.default)(realFormError, [nestedField ? (0, _utils.nameToPath)(fieldName) : fieldName]));
|
|
212
229
|
});
|
|
213
230
|
return {
|
|
214
231
|
formError: realFormError,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MutableRefObject } from 'react';
|
|
2
2
|
import type { CheckType, Schema } from 'schema-typed';
|
|
3
3
|
export type FieldRuleType = MutableRefObject<CheckType<unknown, any> | undefined>;
|
|
4
|
-
declare function useSchemaModel(formModel: Schema): {
|
|
4
|
+
declare function useSchemaModel(formModel: Schema, nestedField: boolean): {
|
|
5
5
|
getCombinedModel: () => Schema<any, string>;
|
|
6
6
|
pushFieldRule: (name: string, fieldRule: FieldRuleType) => void;
|
|
7
7
|
removeFieldRule: (name: string) => void;
|
|
@@ -5,7 +5,59 @@ exports.__esModule = true;
|
|
|
5
5
|
exports.default = void 0;
|
|
6
6
|
var _schemaTyped = require("schema-typed");
|
|
7
7
|
var _react = require("react");
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Convert a flat schema object to a nested schema object
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
*
|
|
13
|
+
* ```js
|
|
14
|
+
* const schema = {
|
|
15
|
+
* 'address.city': StringType().isRequired('City is required'),
|
|
16
|
+
* 'address.street': StringType().isRequired('Street is required')
|
|
17
|
+
* };
|
|
18
|
+
*
|
|
19
|
+
* const result = unflattenSchemaObject(schema);
|
|
20
|
+
*
|
|
21
|
+
* // result
|
|
22
|
+
* {
|
|
23
|
+
* address: ObjectType().shape({
|
|
24
|
+
* city: StringType().isRequired('City is required'),
|
|
25
|
+
* street: StringType().isRequired('Street is required')
|
|
26
|
+
* })
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
function unflattenSchemaObject(schema) {
|
|
31
|
+
var result = {};
|
|
32
|
+
var $type = Symbol('schema-type');
|
|
33
|
+
Object.keys(schema).forEach(function (key) {
|
|
34
|
+
if (key.includes('.')) {
|
|
35
|
+
var keys = key.split('.');
|
|
36
|
+
var lastKey = keys.pop() || '';
|
|
37
|
+
var current = result;
|
|
38
|
+
keys.forEach(function (subKey) {
|
|
39
|
+
var _ref;
|
|
40
|
+
current[subKey] = current[subKey] || (_ref = {}, _ref[$type] = 'object-type', _ref);
|
|
41
|
+
current = current[subKey];
|
|
42
|
+
});
|
|
43
|
+
current[lastKey] = schema[key];
|
|
44
|
+
} else {
|
|
45
|
+
result[key] = schema[key];
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
function convertToShape(obj) {
|
|
49
|
+
Object.keys(obj).forEach(function (key) {
|
|
50
|
+
var _obj$key;
|
|
51
|
+
if (((_obj$key = obj[key]) === null || _obj$key === void 0 ? void 0 : _obj$key[$type]) === 'object-type') {
|
|
52
|
+
delete obj[key][$type];
|
|
53
|
+
obj[key] = (0, _schemaTyped.ObjectType)().shape(convertToShape(obj[key]));
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return obj;
|
|
57
|
+
}
|
|
58
|
+
return convertToShape(result);
|
|
59
|
+
}
|
|
60
|
+
function useSchemaModel(formModel, nestedField) {
|
|
9
61
|
var subRulesRef = (0, _react.useRef)([]);
|
|
10
62
|
var pushFieldRule = (0, _react.useCallback)(function (name, fieldRule) {
|
|
11
63
|
subRulesRef.current.push({
|
|
@@ -28,15 +80,16 @@ function useSchemaModel(formModel) {
|
|
|
28
80
|
if (realSubRules.length === 0) {
|
|
29
81
|
return formModel;
|
|
30
82
|
}
|
|
31
|
-
|
|
32
|
-
var
|
|
33
|
-
var name =
|
|
34
|
-
fieldRule =
|
|
35
|
-
return
|
|
83
|
+
var subRuleObject = realSubRules.map(function (_ref2) {
|
|
84
|
+
var _ref3;
|
|
85
|
+
var name = _ref2.name,
|
|
86
|
+
fieldRule = _ref2.fieldRule;
|
|
87
|
+
return _ref3 = {}, _ref3[name] = fieldRule.current, _ref3;
|
|
36
88
|
}).reduce(function (a, b) {
|
|
37
89
|
return Object.assign(a, b);
|
|
38
|
-
}, {})
|
|
39
|
-
|
|
90
|
+
}, {});
|
|
91
|
+
return _schemaTyped.SchemaModel.combine(formModel, (0, _schemaTyped.SchemaModel)(nestedField ? unflattenSchemaObject(subRuleObject) : subRuleObject));
|
|
92
|
+
}, [formModel, nestedField]);
|
|
40
93
|
return {
|
|
41
94
|
getCombinedModel: getCombinedModel,
|
|
42
95
|
pushFieldRule: pushFieldRule,
|
|
@@ -11,6 +11,10 @@ var _set = _interopRequireDefault(require("lodash/set"));
|
|
|
11
11
|
var _utils = require("../utils");
|
|
12
12
|
function getErrorMessage(error) {
|
|
13
13
|
var _error$array;
|
|
14
|
+
if (typeof error === 'string') {
|
|
15
|
+
return error;
|
|
16
|
+
}
|
|
17
|
+
|
|
14
18
|
/**
|
|
15
19
|
* When using some components as the field, such as TagInput, and using `ArrayType().of` as the validation rule,
|
|
16
20
|
* the error object won't contain the errorMessage directly. @see https://github.com/rsuite/rsuite/issues/3866
|
|
@@ -90,8 +90,14 @@ function useFlattenTree(data, options) {
|
|
|
90
90
|
updateTreeNodeCheckState(value);
|
|
91
91
|
forceUpdate();
|
|
92
92
|
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Add a dependency on data, because when loading data asynchronously through getChildren,
|
|
96
|
+
* data may change and the node status needs to be updated.
|
|
97
|
+
* @see https://github.com/rsuite/rsuite/issues/3973
|
|
98
|
+
*/
|
|
93
99
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
94
|
-
}, [value]);
|
|
100
|
+
}, [value, data]);
|
|
95
101
|
return flattenedNodes.current;
|
|
96
102
|
}
|
|
97
103
|
var _default = exports.default = useFlattenTree;
|
package/dist/rsuite.js
CHANGED
|
@@ -7473,7 +7473,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
|
|
|
7473
7473
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
7474
7474
|
|
|
7475
7475
|
"use strict";
|
|
7476
|
-
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\nvar _schemaTyped = __webpack_require__(/*! schema-typed */ \"./node_modules/schema-typed/es/index.js\");\nvar _FormContext = __webpack_require__(/*! ./FormContext */ \"./src/Form/FormContext.tsx\");\nvar _FormControl = _interopRequireDefault(__webpack_require__(/*! ../FormControl */ \"./src/FormControl/index.tsx\"));\nvar _FormControlLabel = _interopRequireDefault(__webpack_require__(/*! ../FormControlLabel */ \"./src/FormControlLabel/index.tsx\"));\nvar _FormErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../FormErrorMessage */ \"./src/FormErrorMessage/index.tsx\"));\nvar _FormGroup = _interopRequireDefault(__webpack_require__(/*! ../FormGroup */ \"./src/FormGroup/index.tsx\"));\nvar _FormHelpText = _interopRequireDefault(__webpack_require__(/*! ../FormHelpText */ \"./src/FormHelpText/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _propTypes2 = __webpack_require__(/*! ../internals/propTypes */ \"./src/internals/propTypes/index.ts\");\nvar _useSchemaModel2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useSchemaModel */ \"./src/Form/hooks/useSchemaModel.ts\"));\nvar _useFormValidate2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFormValidate */ \"./src/Form/hooks/useFormValidate.ts\"));\nvar _useFormValue2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFormValue */ \"./src/Form/hooks/useFormValue.ts\"));\nvar _useFormClassNames = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFormClassNames */ \"./src/Form/hooks/useFormClassNames.ts\"));\nvar _useFormRef = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFormRef */ \"./src/Form/hooks/useFormRef.ts\"));\nvar _excluded = [\"checkTrigger\", \"classPrefix\", \"errorFromContext\", \"formDefaultValue\", \"formValue\", \"formError\", \"fluid\", \"nestedField\", \"layout\", \"model\", \"readOnly\", \"plaintext\", \"className\", \"children\", \"disabled\", \"onSubmit\", \"onReset\", \"onCheck\", \"onError\", \"onChange\"];\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Form/Form.tsx\",\n _this = void 0;\nvar defaultSchema = (0, _schemaTyped.SchemaModel)({});\n\n/**\n * The `Form` component is a form interface for collecting and validating user input.\n * @see https://rsuitejs.com/components/form\n */\nvar Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$checkTrigger = props.checkTrigger,\n checkTrigger = _props$checkTrigger === void 0 ? 'change' : _props$checkTrigger,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'form' : _props$classPrefix,\n _props$errorFromConte = props.errorFromContext,\n errorFromContext = _props$errorFromConte === void 0 ? true : _props$errorFromConte,\n _props$formDefaultVal = props.formDefaultValue,\n formDefaultValue = _props$formDefaultVal === void 0 ? {} : _props$formDefaultVal,\n controlledFormValue = props.formValue,\n controlledFormError = props.formError,\n fluid = props.fluid,\n _props$nestedField = props.nestedField,\n nestedField = _props$nestedField === void 0 ? false : _props$nestedField,\n _props$layout = props.layout,\n layout = _props$layout === void 0 ? 'vertical' : _props$layout,\n _props$model = props.model,\n formModel = _props$model === void 0 ? defaultSchema : _props$model,\n readOnly = props.readOnly,\n plaintext = props.plaintext,\n className = props.className,\n children = props.children,\n disabled = props.disabled,\n onSubmit = props.onSubmit,\n onReset = props.onReset,\n onCheck = props.onCheck,\n onError = props.onError,\n onChange = props.onChange,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n var _useSchemaModel = (0, _useSchemaModel2.default)(formModel),\n getCombinedModel = _useSchemaModel.getCombinedModel,\n pushFieldRule = _useSchemaModel.pushFieldRule,\n removeFieldRule = _useSchemaModel.removeFieldRule;\n var _useFormValue = (0, _useFormValue2.default)(controlledFormValue, {\n formDefaultValue: formDefaultValue,\n nestedField: nestedField\n }),\n formValue = _useFormValue.formValue,\n onRemoveValue = _useFormValue.onRemoveValue,\n setFieldValue = _useFormValue.setFieldValue,\n resetFormValue = _useFormValue.resetFormValue;\n var formValidateProps = {\n formValue: formValue,\n getCombinedModel: getCombinedModel,\n onCheck: onCheck,\n onError: onError,\n nestedField: nestedField\n };\n var _useFormValidate = (0, _useFormValidate2.default)(controlledFormError, formValidateProps),\n formError = _useFormValidate.formError,\n onRemoveError = _useFormValidate.onRemoveError,\n check = _useFormValidate.check,\n checkAsync = _useFormValidate.checkAsync,\n checkForField = _useFormValidate.checkForField,\n checkFieldForNextValue = _useFormValidate.checkFieldForNextValue,\n checkForFieldAsync = _useFormValidate.checkForFieldAsync,\n checkFieldAsyncForNextValue = _useFormValidate.checkFieldAsyncForNextValue,\n cleanErrors = _useFormValidate.cleanErrors,\n resetErrors = _useFormValidate.resetErrors,\n cleanErrorForField = _useFormValidate.cleanErrorForField;\n var classes = (0, _useFormClassNames.default)({\n classPrefix: classPrefix,\n className: className,\n fluid: fluid,\n layout: layout,\n readOnly: readOnly,\n plaintext: plaintext,\n disabled: disabled\n });\n var submit = (0, _hooks.useEventCallback)(function (event) {\n // Check the form before submitting\n if (check()) {\n onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(formValue, event);\n }\n });\n var reset = (0, _hooks.useEventCallback)(function (event) {\n resetErrors();\n onReset === null || onReset === void 0 ? void 0 : onReset(resetFormValue(), event);\n });\n var handleSubmit = (0, _hooks.useEventCallback)(function (event) {\n var _event$preventDefault, _event$stopPropagatio;\n event === null || event === void 0 ? void 0 : (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.call(event);\n event === null || event === void 0 ? void 0 : (_event$stopPropagatio = event.stopPropagation) === null || _event$stopPropagatio === void 0 ? void 0 : _event$stopPropagatio.call(event);\n\n // Prevent submission when the form is disabled, readOnly, or plaintext\n if (disabled || readOnly || plaintext) {\n return;\n }\n submit();\n });\n var handleReset = (0, _hooks.useEventCallback)(function (event) {\n var _event$preventDefault2, _event$stopPropagatio2;\n event === null || event === void 0 ? void 0 : (_event$preventDefault2 = event.preventDefault) === null || _event$preventDefault2 === void 0 ? void 0 : _event$preventDefault2.call(event);\n event === null || event === void 0 ? void 0 : (_event$stopPropagatio2 = event.stopPropagation) === null || _event$stopPropagatio2 === void 0 ? void 0 : _event$stopPropagatio2.call(event);\n\n // Prevent reset when the form is disabled, readOnly, or plaintext\n if (disabled || readOnly || plaintext) {\n return;\n }\n reset(event);\n });\n var imperativeMethods = {\n check: check,\n checkForField: checkForField,\n checkAsync: checkAsync,\n checkForFieldAsync: checkForFieldAsync,\n cleanErrors: cleanErrors,\n cleanErrorForField: cleanErrorForField,\n reset: reset,\n resetErrors: resetErrors,\n submit: submit\n };\n var formRef = (0, _useFormRef.default)(ref, {\n imperativeMethods: imperativeMethods\n });\n var removeFieldValue = (0, _hooks.useEventCallback)(function (name) {\n var formValue = onRemoveValue(name);\n onChange === null || onChange === void 0 ? void 0 : onChange(formValue);\n });\n var removeFieldError = (0, _hooks.useEventCallback)(function (name) {\n onRemoveError(name);\n });\n var onFieldChange = (0, _hooks.useEventCallback)(function (name, value, event) {\n var nextFormValue = setFieldValue(name, value);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextFormValue, event);\n });\n var formContextValue = {\n errorFromContext: errorFromContext,\n checkTrigger: checkTrigger,\n plaintext: plaintext,\n readOnly: readOnly,\n disabled: disabled,\n formError: formError,\n nestedField: nestedField,\n pushFieldRule: pushFieldRule,\n removeFieldValue: removeFieldValue,\n removeFieldError: removeFieldError,\n removeFieldRule: removeFieldRule,\n onFieldChange: onFieldChange,\n checkFieldForNextValue: checkFieldForNextValue,\n checkFieldAsyncForNextValue: checkFieldAsyncForNextValue\n };\n return /*#__PURE__*/_react.default.createElement(\"form\", (0, _extends2.default)({}, rest, {\n ref: formRef,\n onSubmit: handleSubmit,\n onReset: handleReset,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 285,\n columnNumber: 5\n }\n }), /*#__PURE__*/_react.default.createElement(_FormContext.FormProvider, {\n value: formContextValue,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 286,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_FormContext.FormValueProvider, {\n value: formValue,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 287,\n columnNumber: 9\n }\n }, children)));\n});\nForm.Control = _FormControl.default;\nForm.ControlLabel = _FormControlLabel.default;\nForm.ErrorMessage = _FormErrorMessage.default;\nForm.Group = _FormGroup.default;\nForm.HelpText = _FormHelpText.default;\nForm.displayName = 'Form';\nForm.propTypes = {\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n children: _propTypes.default.node,\n errorFromContext: _propTypes.default.bool,\n layout: (0, _propTypes2.oneOf)(['horizontal', 'vertical', 'inline']),\n fluid: _propTypes.default.bool,\n formValue: _propTypes.default.object,\n formDefaultValue: _propTypes.default.object,\n formError: _propTypes.default.object,\n checkTrigger: (0, _propTypes2.oneOf)(['change', 'blur', 'none']),\n onChange: _propTypes.default.func,\n onError: _propTypes.default.func,\n onCheck: _propTypes.default.func,\n onSubmit: _propTypes.default.func,\n model: _propTypes.default.any,\n readOnly: _propTypes.default.bool,\n plaintext: _propTypes.default.bool,\n disabled: _propTypes.default.bool\n};\nvar _default = exports[\"default\"] = Form;\n\n//# sourceURL=webpack://rsuite/./src/Form/Form.tsx?");
|
|
7476
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"react\"));\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\"));\nvar _schemaTyped = __webpack_require__(/*! schema-typed */ \"./node_modules/schema-typed/es/index.js\");\nvar _FormContext = __webpack_require__(/*! ./FormContext */ \"./src/Form/FormContext.tsx\");\nvar _FormControl = _interopRequireDefault(__webpack_require__(/*! ../FormControl */ \"./src/FormControl/index.tsx\"));\nvar _FormControlLabel = _interopRequireDefault(__webpack_require__(/*! ../FormControlLabel */ \"./src/FormControlLabel/index.tsx\"));\nvar _FormErrorMessage = _interopRequireDefault(__webpack_require__(/*! ../FormErrorMessage */ \"./src/FormErrorMessage/index.tsx\"));\nvar _FormGroup = _interopRequireDefault(__webpack_require__(/*! ../FormGroup */ \"./src/FormGroup/index.tsx\"));\nvar _FormHelpText = _interopRequireDefault(__webpack_require__(/*! ../FormHelpText */ \"./src/FormHelpText/index.tsx\"));\nvar _hooks = __webpack_require__(/*! ../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _propTypes2 = __webpack_require__(/*! ../internals/propTypes */ \"./src/internals/propTypes/index.ts\");\nvar _useSchemaModel2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useSchemaModel */ \"./src/Form/hooks/useSchemaModel.ts\"));\nvar _useFormValidate2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFormValidate */ \"./src/Form/hooks/useFormValidate.ts\"));\nvar _useFormValue2 = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFormValue */ \"./src/Form/hooks/useFormValue.ts\"));\nvar _useFormClassNames = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFormClassNames */ \"./src/Form/hooks/useFormClassNames.ts\"));\nvar _useFormRef = _interopRequireDefault(__webpack_require__(/*! ./hooks/useFormRef */ \"./src/Form/hooks/useFormRef.ts\"));\nvar _excluded = [\"checkTrigger\", \"classPrefix\", \"errorFromContext\", \"formDefaultValue\", \"formValue\", \"formError\", \"fluid\", \"nestedField\", \"layout\", \"model\", \"readOnly\", \"plaintext\", \"className\", \"children\", \"disabled\", \"onSubmit\", \"onReset\", \"onCheck\", \"onError\", \"onChange\"];\nvar _jsxFileName = \"/home/runner/work/rsuite/rsuite/src/Form/Form.tsx\",\n _this = void 0;\nvar defaultSchema = (0, _schemaTyped.SchemaModel)({});\n\n/**\n * The `Form` component is a form interface for collecting and validating user input.\n * @see https://rsuitejs.com/components/form\n */\nvar Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var _props$checkTrigger = props.checkTrigger,\n checkTrigger = _props$checkTrigger === void 0 ? 'change' : _props$checkTrigger,\n _props$classPrefix = props.classPrefix,\n classPrefix = _props$classPrefix === void 0 ? 'form' : _props$classPrefix,\n _props$errorFromConte = props.errorFromContext,\n errorFromContext = _props$errorFromConte === void 0 ? true : _props$errorFromConte,\n _props$formDefaultVal = props.formDefaultValue,\n formDefaultValue = _props$formDefaultVal === void 0 ? {} : _props$formDefaultVal,\n controlledFormValue = props.formValue,\n controlledFormError = props.formError,\n fluid = props.fluid,\n _props$nestedField = props.nestedField,\n nestedField = _props$nestedField === void 0 ? false : _props$nestedField,\n _props$layout = props.layout,\n layout = _props$layout === void 0 ? 'vertical' : _props$layout,\n _props$model = props.model,\n formModel = _props$model === void 0 ? defaultSchema : _props$model,\n readOnly = props.readOnly,\n plaintext = props.plaintext,\n className = props.className,\n children = props.children,\n disabled = props.disabled,\n onSubmit = props.onSubmit,\n onReset = props.onReset,\n onCheck = props.onCheck,\n onError = props.onError,\n onChange = props.onChange,\n rest = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n var _useSchemaModel = (0, _useSchemaModel2.default)(formModel, nestedField),\n getCombinedModel = _useSchemaModel.getCombinedModel,\n pushFieldRule = _useSchemaModel.pushFieldRule,\n removeFieldRule = _useSchemaModel.removeFieldRule;\n var _useFormValue = (0, _useFormValue2.default)(controlledFormValue, {\n formDefaultValue: formDefaultValue,\n nestedField: nestedField\n }),\n formValue = _useFormValue.formValue,\n onRemoveValue = _useFormValue.onRemoveValue,\n setFieldValue = _useFormValue.setFieldValue,\n resetFormValue = _useFormValue.resetFormValue;\n var formValidateProps = {\n formValue: formValue,\n getCombinedModel: getCombinedModel,\n onCheck: onCheck,\n onError: onError,\n nestedField: nestedField\n };\n var _useFormValidate = (0, _useFormValidate2.default)(controlledFormError, formValidateProps),\n formError = _useFormValidate.formError,\n onRemoveError = _useFormValidate.onRemoveError,\n check = _useFormValidate.check,\n checkAsync = _useFormValidate.checkAsync,\n checkForField = _useFormValidate.checkForField,\n checkFieldForNextValue = _useFormValidate.checkFieldForNextValue,\n checkForFieldAsync = _useFormValidate.checkForFieldAsync,\n checkFieldAsyncForNextValue = _useFormValidate.checkFieldAsyncForNextValue,\n cleanErrors = _useFormValidate.cleanErrors,\n resetErrors = _useFormValidate.resetErrors,\n cleanErrorForField = _useFormValidate.cleanErrorForField;\n var classes = (0, _useFormClassNames.default)({\n classPrefix: classPrefix,\n className: className,\n fluid: fluid,\n layout: layout,\n readOnly: readOnly,\n plaintext: plaintext,\n disabled: disabled\n });\n var submit = (0, _hooks.useEventCallback)(function (event) {\n // Check the form before submitting\n if (check()) {\n onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(formValue, event);\n }\n });\n var reset = (0, _hooks.useEventCallback)(function (event) {\n resetErrors();\n onReset === null || onReset === void 0 ? void 0 : onReset(resetFormValue(), event);\n });\n var handleSubmit = (0, _hooks.useEventCallback)(function (event) {\n var _event$preventDefault, _event$stopPropagatio;\n event === null || event === void 0 ? void 0 : (_event$preventDefault = event.preventDefault) === null || _event$preventDefault === void 0 ? void 0 : _event$preventDefault.call(event);\n event === null || event === void 0 ? void 0 : (_event$stopPropagatio = event.stopPropagation) === null || _event$stopPropagatio === void 0 ? void 0 : _event$stopPropagatio.call(event);\n\n // Prevent submission when the form is disabled, readOnly, or plaintext\n if (disabled || readOnly || plaintext) {\n return;\n }\n submit();\n });\n var handleReset = (0, _hooks.useEventCallback)(function (event) {\n var _event$preventDefault2, _event$stopPropagatio2;\n event === null || event === void 0 ? void 0 : (_event$preventDefault2 = event.preventDefault) === null || _event$preventDefault2 === void 0 ? void 0 : _event$preventDefault2.call(event);\n event === null || event === void 0 ? void 0 : (_event$stopPropagatio2 = event.stopPropagation) === null || _event$stopPropagatio2 === void 0 ? void 0 : _event$stopPropagatio2.call(event);\n\n // Prevent reset when the form is disabled, readOnly, or plaintext\n if (disabled || readOnly || plaintext) {\n return;\n }\n reset(event);\n });\n var imperativeMethods = {\n check: check,\n checkForField: checkForField,\n checkAsync: checkAsync,\n checkForFieldAsync: checkForFieldAsync,\n cleanErrors: cleanErrors,\n cleanErrorForField: cleanErrorForField,\n reset: reset,\n resetErrors: resetErrors,\n submit: submit\n };\n var formRef = (0, _useFormRef.default)(ref, {\n imperativeMethods: imperativeMethods\n });\n var removeFieldValue = (0, _hooks.useEventCallback)(function (name) {\n var formValue = onRemoveValue(name);\n onChange === null || onChange === void 0 ? void 0 : onChange(formValue);\n });\n var removeFieldError = (0, _hooks.useEventCallback)(function (name) {\n onRemoveError(name);\n });\n var onFieldChange = (0, _hooks.useEventCallback)(function (name, value, event) {\n var nextFormValue = setFieldValue(name, value);\n onChange === null || onChange === void 0 ? void 0 : onChange(nextFormValue, event);\n });\n var formContextValue = {\n errorFromContext: errorFromContext,\n checkTrigger: checkTrigger,\n plaintext: plaintext,\n readOnly: readOnly,\n disabled: disabled,\n formError: formError,\n nestedField: nestedField,\n pushFieldRule: pushFieldRule,\n removeFieldValue: removeFieldValue,\n removeFieldError: removeFieldError,\n removeFieldRule: removeFieldRule,\n onFieldChange: onFieldChange,\n checkFieldForNextValue: checkFieldForNextValue,\n checkFieldAsyncForNextValue: checkFieldAsyncForNextValue\n };\n return /*#__PURE__*/_react.default.createElement(\"form\", (0, _extends2.default)({}, rest, {\n ref: formRef,\n onSubmit: handleSubmit,\n onReset: handleReset,\n className: classes,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 288,\n columnNumber: 5\n }\n }), /*#__PURE__*/_react.default.createElement(_FormContext.FormProvider, {\n value: formContextValue,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 289,\n columnNumber: 7\n }\n }, /*#__PURE__*/_react.default.createElement(_FormContext.FormValueProvider, {\n value: formValue,\n __self: _this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 290,\n columnNumber: 9\n }\n }, children)));\n});\nForm.Control = _FormControl.default;\nForm.ControlLabel = _FormControlLabel.default;\nForm.ErrorMessage = _FormErrorMessage.default;\nForm.Group = _FormGroup.default;\nForm.HelpText = _FormHelpText.default;\nForm.displayName = 'Form';\nForm.propTypes = {\n className: _propTypes.default.string,\n classPrefix: _propTypes.default.string,\n children: _propTypes.default.node,\n errorFromContext: _propTypes.default.bool,\n layout: (0, _propTypes2.oneOf)(['horizontal', 'vertical', 'inline']),\n fluid: _propTypes.default.bool,\n formValue: _propTypes.default.object,\n formDefaultValue: _propTypes.default.object,\n formError: _propTypes.default.object,\n checkTrigger: (0, _propTypes2.oneOf)(['change', 'blur', 'none']),\n onChange: _propTypes.default.func,\n onError: _propTypes.default.func,\n onCheck: _propTypes.default.func,\n onSubmit: _propTypes.default.func,\n model: _propTypes.default.any,\n readOnly: _propTypes.default.bool,\n plaintext: _propTypes.default.bool,\n disabled: _propTypes.default.bool\n};\nvar _default = exports[\"default\"] = Form;\n\n//# sourceURL=webpack://rsuite/./src/Form/Form.tsx?");
|
|
7477
7477
|
|
|
7478
7478
|
/***/ }),
|
|
7479
7479
|
|
|
@@ -7517,7 +7517,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
|
|
|
7517
7517
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
7518
7518
|
|
|
7519
7519
|
"use strict";
|
|
7520
|
-
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = useFormValidate;\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = __webpack_require__(/*! react */ \"react\");\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\nvar _set = _interopRequireDefault(__webpack_require__(/*! lodash/set */ \"./node_modules/lodash/set.js\"));\nvar _hooks = __webpack_require__(/*! ../../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../../FormControl/utils */ \"./src/FormControl/utils.ts\");\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction useFormValidate(formError, props) {\n var formValue = props.formValue,\n getCombinedModel = props.getCombinedModel,\n onCheck = props.onCheck,\n onError = props.onError,\n nestedField = props.nestedField;\n var _useControlled = (0, _hooks.useControlled)(formError, {}),\n realFormError = _useControlled[0],\n setFormError = _useControlled[1];\n var checkOptions = {\n nestedObject: nestedField\n };\n var realFormErrorRef = (0, _react.useRef)(realFormError);\n realFormErrorRef.current = realFormError;\n\n /**\n * Validate the form data and return a boolean.\n * The error message after verification is returned in the callback.\n * @param callback\n */\n var check = (0, _hooks.useEventCallback)(function (callback) {\n var formError = {};\n var errorCount = 0;\n var model = getCombinedModel();\n Object.keys(model.getSchemaSpec()).forEach(function (key) {\n var checkResult = model.checkForField(key, formValue || {}, checkOptions);\n if (checkResult.hasError === true) {\n errorCount += 1;\n formError[key] = (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult;\n }\n });\n setFormError(formError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);\n callback === null || callback === void 0 ? void 0 : callback(formError);\n if (errorCount > 0) {\n onError === null || onError === void 0 ? void 0 : onError(formError);\n return false;\n }\n return true;\n });\n var checkFieldForNextValue = (0, _hooks.useEventCallback)(function (fieldName, nextValue, callback) {\n var model = getCombinedModel();\n var resultOfCurrentField = model.checkForField(fieldName, nextValue, checkOptions);\n var nextFormError = (0, _extends2.default)({}, formError);\n /**\n * when using proxy of schema-typed, we need to use getCheckResult to get all errors,\n * but if nestedField is used, it is impossible to distinguish whether the nested object has an error here,\n * so nestedField does not support proxy here\n */\n if (nestedField) {\n nextFormError = (0, _set.default)(nextFormError, (0, _utils.nameToPath)(fieldName), resultOfCurrentField);\n setFormError(nextFormError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);\n callback === null || callback === void 0 ? void 0 : callback(resultOfCurrentField);\n if (resultOfCurrentField.hasError) {\n onError === null || onError === void 0 ? void 0 : onError(nextFormError);\n }\n return !resultOfCurrentField.hasError;\n } else {\n var allResults = model.getCheckResult();\n var hasError = false;\n Object.keys(allResults).forEach(function (key) {\n var currentResult = allResults[key];\n if (currentResult.hasError) {\n nextFormError[key] = currentResult.errorMessage || currentResult;\n hasError = true;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _nextFormError = nextFormError,\n _ = _nextFormError[key],\n rest = (0, _objectWithoutPropertiesLoose2.default)(_nextFormError, [key].map(_toPropertyKey));\n nextFormError = rest;\n }\n });\n setFormError(nextFormError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);\n callback === null || callback === void 0 ? void 0 : callback(resultOfCurrentField);\n if (hasError) {\n onError === null || onError === void 0 ? void 0 : onError(nextFormError);\n }\n return !hasError;\n }\n });\n /**\n * Check the data field\n * @param fieldName\n * @param callback\n */\n var checkForField = (0, _hooks.useEventCallback)(function (fieldName, callback) {\n return checkFieldForNextValue(fieldName, formValue || {}, callback);\n });\n\n /**\n * Check form data asynchronously and return a Promise\n */\n var checkAsync = (0, _hooks.useEventCallback)(function () {\n var promises = [];\n var keys = [];\n var model = getCombinedModel();\n Object.keys(model.getSchemaSpec()).forEach(function (key) {\n keys.push(key);\n promises.push(model.checkForFieldAsync(key, formValue || {}, checkOptions));\n });\n return Promise.all(promises).then(function (values) {\n var formError = {};\n var errorCount = 0;\n for (var i = 0; i < values.length; i++) {\n if (values[i].hasError) {\n errorCount += 1;\n formError[keys[i]] = values[i].errorMessage;\n }\n }\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);\n setFormError(formError);\n if (errorCount > 0) {\n onError === null || onError === void 0 ? void 0 : onError(formError);\n }\n return {\n hasError: errorCount > 0,\n formError: formError\n };\n });\n });\n var checkFieldAsyncForNextValue = (0, _hooks.useEventCallback)(function (fieldName, nextValue) {\n var model = getCombinedModel();\n return model.checkForFieldAsync(fieldName, nextValue, checkOptions).then(function (resultOfCurrentField) {\n var nextFormError = (0, _extends2.default)({}, formError);\n /**\n * when using proxy of schema-typed, we need to use getCheckResult to get all errors,\n * but if nestedField is used, it is impossible to distinguish whether the nested object has an error here,\n * so nestedField does not support proxy here\n */\n\n if (nestedField) {\n nextFormError = (0, _set.default)(nextFormError, (0, _utils.nameToPath)(fieldName), resultOfCurrentField);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);\n setFormError(nextFormError);\n if (resultOfCurrentField.hasError) {\n onError === null || onError === void 0 ? void 0 : onError(nextFormError);\n }\n return resultOfCurrentField;\n } else {\n var allResults = model.getCheckResult();\n var hasError = false;\n Object.keys(allResults).forEach(function (key) {\n var currentResult = allResults[key];\n if (currentResult.hasError) {\n nextFormError[key] = currentResult.errorMessage || currentResult;\n hasError = true;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _nextFormError2 = nextFormError,\n _ = _nextFormError2[key],\n rest = (0, _objectWithoutPropertiesLoose2.default)(_nextFormError2, [key].map(_toPropertyKey));\n nextFormError = rest;\n }\n });\n setFormError(nextFormError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);\n if (hasError) {\n onError === null || onError === void 0 ? void 0 : onError(nextFormError);\n }\n return resultOfCurrentField;\n }\n });\n });\n\n /**\n * Asynchronously check form fields and return Promise\n * @param fieldName\n */\n var checkForFieldAsync = (0, _hooks.useEventCallback)(function (fieldName) {\n return checkFieldAsyncForNextValue(fieldName, formValue || {});\n });\n var onRemoveError = (0, _react.useCallback)(function (name) {\n /**\n * when this function is called when the children component is unmount,\n * it's an old render frame so use Ref to get future error\n */\n var formError = (0, _omit.default)(realFormErrorRef.current, [nestedField ? (0, _utils.nameToPath)(name) : name]);\n realFormErrorRef.current = formError;\n setFormError(formError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);\n return formError;\n }, [nestedField, onCheck, setFormError]);\n var cleanErrors = (0, _hooks.useEventCallback)(function () {\n setFormError({});\n });\n var resetErrors = (0, _hooks.useEventCallback)(function (formError) {\n if (formError === void 0) {\n formError = {};\n }\n setFormError(formError);\n });\n var cleanErrorForField = (0, _hooks.useEventCallback)(function (fieldName) {\n setFormError((0, _omit.default)(formError, [nestedField ? (0, _utils.nameToPath)(fieldName) : fieldName]));\n });\n return {\n formError: realFormError,\n check: check,\n checkForField: checkForField,\n checkFieldForNextValue: checkFieldForNextValue,\n checkAsync: checkAsync,\n checkForFieldAsync: checkForFieldAsync,\n checkFieldAsyncForNextValue: checkFieldAsyncForNextValue,\n cleanErrors: cleanErrors,\n resetErrors: resetErrors,\n cleanErrorForField: cleanErrorForField,\n onRemoveError: onRemoveError\n };\n}\n\n//# sourceURL=webpack://rsuite/./src/Form/hooks/useFormValidate.ts?");
|
|
7520
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = useFormValidate;\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\"));\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = __webpack_require__(/*! react */ \"react\");\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\nvar _set = _interopRequireDefault(__webpack_require__(/*! lodash/set */ \"./node_modules/lodash/set.js\"));\nvar _hooks = __webpack_require__(/*! ../../internals/hooks */ \"./src/internals/hooks/index.ts\");\nvar _utils = __webpack_require__(/*! ../../FormControl/utils */ \"./src/FormControl/utils.ts\");\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction useFormValidate(_formError, props) {\n var formValue = props.formValue,\n getCombinedModel = props.getCombinedModel,\n onCheck = props.onCheck,\n onError = props.onError,\n nestedField = props.nestedField;\n var _useControlled = (0, _hooks.useControlled)(_formError, {}),\n realFormError = _useControlled[0],\n setFormError = _useControlled[1];\n var checkOptions = {\n nestedObject: nestedField\n };\n var realFormErrorRef = (0, _react.useRef)(realFormError);\n realFormErrorRef.current = realFormError;\n\n /**\n * Validate the form data and return a boolean.\n * The error message after verification is returned in the callback.\n * @param callback\n */\n var check = (0, _hooks.useEventCallback)(function (callback) {\n var formError = {};\n var errorCount = 0;\n var model = getCombinedModel();\n var checkField = function checkField(key, type, value, formErrorObj) {\n var checkResult = type.check(value);\n if (checkResult.hasError === true) {\n errorCount += 1;\n formErrorObj[key] = (checkResult === null || checkResult === void 0 ? void 0 : checkResult.errorMessage) || checkResult;\n }\n\n // Check nested object\n if (type !== null && type !== void 0 && type.objectTypeSchemaSpec) {\n Object.entries(type.objectTypeSchemaSpec).forEach(function (_ref) {\n var nestedKey = _ref[0],\n nestedType = _ref[1];\n formErrorObj[key] = formErrorObj[key] || {\n object: {}\n };\n checkField(nestedKey, nestedType, value === null || value === void 0 ? void 0 : value[nestedKey], formErrorObj[key].object);\n });\n }\n };\n Object.entries(model.getSchemaSpec()).forEach(function (_ref2) {\n var key = _ref2[0],\n type = _ref2[1];\n checkField(key, type, formValue[key], formError);\n });\n setFormError(formError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);\n callback === null || callback === void 0 ? void 0 : callback(formError);\n if (errorCount > 0) {\n onError === null || onError === void 0 ? void 0 : onError(formError);\n return false;\n }\n return true;\n });\n var checkFieldForNextValue = (0, _hooks.useEventCallback)(function (fieldName, nextValue, callback) {\n var model = getCombinedModel();\n var resultOfCurrentField = model.checkForField(fieldName, nextValue, checkOptions);\n var nextFormError = (0, _extends2.default)({}, realFormError);\n /**\n * when using proxy of schema-typed, we need to use getCheckResult to get all errors,\n * but if nestedField is used, it is impossible to distinguish whether the nested object has an error here,\n * so nestedField does not support proxy here\n */\n if (nestedField) {\n nextFormError = (0, _set.default)(nextFormError, (0, _utils.nameToPath)(fieldName), resultOfCurrentField);\n setFormError(nextFormError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);\n callback === null || callback === void 0 ? void 0 : callback(resultOfCurrentField);\n if (resultOfCurrentField.hasError) {\n onError === null || onError === void 0 ? void 0 : onError(nextFormError);\n }\n return !resultOfCurrentField.hasError;\n } else {\n var allResults = model.getCheckResult();\n var hasError = false;\n Object.keys(allResults).forEach(function (key) {\n var currentResult = allResults[key];\n if (currentResult.hasError) {\n nextFormError[key] = currentResult.errorMessage || currentResult;\n hasError = true;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _nextFormError = nextFormError,\n _ = _nextFormError[key],\n rest = (0, _objectWithoutPropertiesLoose2.default)(_nextFormError, [key].map(_toPropertyKey));\n nextFormError = rest;\n }\n });\n setFormError(nextFormError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);\n callback === null || callback === void 0 ? void 0 : callback(resultOfCurrentField);\n if (hasError) {\n onError === null || onError === void 0 ? void 0 : onError(nextFormError);\n }\n return !hasError;\n }\n });\n /**\n * Check the data field\n * @param fieldName\n * @param callback\n */\n var checkForField = (0, _hooks.useEventCallback)(function (fieldName, callback) {\n return checkFieldForNextValue(fieldName, formValue || {}, callback);\n });\n\n /**\n * Check form data asynchronously and return a Promise\n */\n var checkAsync = (0, _hooks.useEventCallback)(function () {\n var promises = [];\n var keys = [];\n var model = getCombinedModel();\n Object.keys(model.getSchemaSpec()).forEach(function (key) {\n keys.push(key);\n promises.push(model.checkForFieldAsync(key, formValue || {}, checkOptions));\n });\n return Promise.all(promises).then(function (values) {\n var formError = {};\n var errorCount = 0;\n for (var i = 0; i < values.length; i++) {\n if (values[i].hasError) {\n errorCount += 1;\n formError[keys[i]] = values[i].errorMessage;\n }\n }\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);\n setFormError(formError);\n if (errorCount > 0) {\n onError === null || onError === void 0 ? void 0 : onError(formError);\n }\n return {\n hasError: errorCount > 0,\n formError: formError\n };\n });\n });\n var checkFieldAsyncForNextValue = (0, _hooks.useEventCallback)(function (fieldName, nextValue) {\n var model = getCombinedModel();\n return model.checkForFieldAsync(fieldName, nextValue, checkOptions).then(function (resultOfCurrentField) {\n var nextFormError = (0, _extends2.default)({}, realFormError);\n /**\n * when using proxy of schema-typed, we need to use getCheckResult to get all errors,\n * but if nestedField is used, it is impossible to distinguish whether the nested object has an error here,\n * so nestedField does not support proxy here\n */\n\n if (nestedField) {\n nextFormError = (0, _set.default)(nextFormError, (0, _utils.nameToPath)(fieldName), resultOfCurrentField);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);\n setFormError(nextFormError);\n if (resultOfCurrentField.hasError) {\n onError === null || onError === void 0 ? void 0 : onError(nextFormError);\n }\n return resultOfCurrentField;\n } else {\n var allResults = model.getCheckResult();\n var hasError = false;\n Object.keys(allResults).forEach(function (key) {\n var currentResult = allResults[key];\n if (currentResult.hasError) {\n nextFormError[key] = currentResult.errorMessage || currentResult;\n hasError = true;\n } else {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _nextFormError2 = nextFormError,\n _ = _nextFormError2[key],\n rest = (0, _objectWithoutPropertiesLoose2.default)(_nextFormError2, [key].map(_toPropertyKey));\n nextFormError = rest;\n }\n });\n setFormError(nextFormError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextFormError);\n if (hasError) {\n onError === null || onError === void 0 ? void 0 : onError(nextFormError);\n }\n return resultOfCurrentField;\n }\n });\n });\n\n /**\n * Asynchronously check form fields and return Promise\n * @param fieldName\n */\n var checkForFieldAsync = (0, _hooks.useEventCallback)(function (fieldName) {\n return checkFieldAsyncForNextValue(fieldName, formValue || {});\n });\n var onRemoveError = (0, _react.useCallback)(function (name) {\n /**\n * when this function is called when the children component is unmount,\n * it's an old render frame so use Ref to get future error\n */\n var formError = (0, _omit.default)(realFormErrorRef.current, [nestedField ? (0, _utils.nameToPath)(name) : name]);\n realFormErrorRef.current = formError;\n setFormError(formError);\n onCheck === null || onCheck === void 0 ? void 0 : onCheck(formError);\n return formError;\n }, [nestedField, onCheck, setFormError]);\n var cleanErrors = (0, _hooks.useEventCallback)(function () {\n setFormError({});\n });\n var resetErrors = (0, _hooks.useEventCallback)(function (formError) {\n if (formError === void 0) {\n formError = {};\n }\n setFormError(formError);\n });\n var cleanErrorForField = (0, _hooks.useEventCallback)(function (fieldName) {\n setFormError((0, _omit.default)(realFormError, [nestedField ? (0, _utils.nameToPath)(fieldName) : fieldName]));\n });\n return {\n formError: realFormError,\n check: check,\n checkForField: checkForField,\n checkFieldForNextValue: checkFieldForNextValue,\n checkAsync: checkAsync,\n checkForFieldAsync: checkForFieldAsync,\n checkFieldAsyncForNextValue: checkFieldAsyncForNextValue,\n cleanErrors: cleanErrors,\n resetErrors: resetErrors,\n cleanErrorForField: cleanErrorForField,\n onRemoveError: onRemoveError\n };\n}\n\n//# sourceURL=webpack://rsuite/./src/Form/hooks/useFormValidate.ts?");
|
|
7521
7521
|
|
|
7522
7522
|
/***/ }),
|
|
7523
7523
|
|
|
@@ -7539,7 +7539,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
|
|
|
7539
7539
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
7540
7540
|
|
|
7541
7541
|
"use strict";
|
|
7542
|
-
eval("\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _schemaTyped = __webpack_require__(/*! schema-typed */ \"./node_modules/schema-typed/es/index.js\");\nvar _react = __webpack_require__(/*! react */ \"react\");\nfunction useSchemaModel(formModel) {\n var subRulesRef = (0, _react.useRef)([]);\n var pushFieldRule = (0, _react.useCallback)(function (name, fieldRule) {\n subRulesRef.current.push({\n name: name,\n fieldRule: fieldRule\n });\n }, []);\n var removeFieldRule = (0, _react.useCallback)(function (name) {\n var index = subRulesRef.current.findIndex(function (v) {\n return v.name === name;\n });\n subRulesRef.current.splice(index, 1);\n }, []);\n var getCombinedModel = (0, _react.useCallback)(function () {\n var realSubRules = subRulesRef.current.filter(function (v) {\n return Boolean(v.fieldRule.current);\n });\n\n // If there is no sub rule, return the original form model\n if (realSubRules.length === 0) {\n return formModel;\n }\n
|
|
7542
|
+
eval("\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _schemaTyped = __webpack_require__(/*! schema-typed */ \"./node_modules/schema-typed/es/index.js\");\nvar _react = __webpack_require__(/*! react */ \"react\");\n/**\n * Convert a flat schema object to a nested schema object\n *\n * @example\n *\n * ```js\n * const schema = {\n * 'address.city': StringType().isRequired('City is required'),\n * 'address.street': StringType().isRequired('Street is required')\n * };\n *\n * const result = unflattenSchemaObject(schema);\n *\n * // result\n * {\n * address: ObjectType().shape({\n * city: StringType().isRequired('City is required'),\n * street: StringType().isRequired('Street is required')\n * })\n * }\n * ```\n */\nfunction unflattenSchemaObject(schema) {\n var result = {};\n var $type = Symbol('schema-type');\n Object.keys(schema).forEach(function (key) {\n if (key.includes('.')) {\n var keys = key.split('.');\n var lastKey = keys.pop() || '';\n var current = result;\n keys.forEach(function (subKey) {\n var _ref;\n current[subKey] = current[subKey] || (_ref = {}, _ref[$type] = 'object-type', _ref);\n current = current[subKey];\n });\n current[lastKey] = schema[key];\n } else {\n result[key] = schema[key];\n }\n });\n function convertToShape(obj) {\n Object.keys(obj).forEach(function (key) {\n var _obj$key;\n if (((_obj$key = obj[key]) === null || _obj$key === void 0 ? void 0 : _obj$key[$type]) === 'object-type') {\n delete obj[key][$type];\n obj[key] = (0, _schemaTyped.ObjectType)().shape(convertToShape(obj[key]));\n }\n });\n return obj;\n }\n return convertToShape(result);\n}\nfunction useSchemaModel(formModel, nestedField) {\n var subRulesRef = (0, _react.useRef)([]);\n var pushFieldRule = (0, _react.useCallback)(function (name, fieldRule) {\n subRulesRef.current.push({\n name: name,\n fieldRule: fieldRule\n });\n }, []);\n var removeFieldRule = (0, _react.useCallback)(function (name) {\n var index = subRulesRef.current.findIndex(function (v) {\n return v.name === name;\n });\n subRulesRef.current.splice(index, 1);\n }, []);\n var getCombinedModel = (0, _react.useCallback)(function () {\n var realSubRules = subRulesRef.current.filter(function (v) {\n return Boolean(v.fieldRule.current);\n });\n\n // If there is no sub rule, return the original form model\n if (realSubRules.length === 0) {\n return formModel;\n }\n var subRuleObject = realSubRules.map(function (_ref2) {\n var _ref3;\n var name = _ref2.name,\n fieldRule = _ref2.fieldRule;\n return _ref3 = {}, _ref3[name] = fieldRule.current, _ref3;\n }).reduce(function (a, b) {\n return Object.assign(a, b);\n }, {});\n return _schemaTyped.SchemaModel.combine(formModel, (0, _schemaTyped.SchemaModel)(nestedField ? unflattenSchemaObject(subRuleObject) : subRuleObject));\n }, [formModel, nestedField]);\n return {\n getCombinedModel: getCombinedModel,\n pushFieldRule: pushFieldRule,\n removeFieldRule: removeFieldRule\n };\n}\nvar _default = exports[\"default\"] = useSchemaModel;\n\n//# sourceURL=webpack://rsuite/./src/Form/hooks/useSchemaModel.ts?");
|
|
7543
7543
|
|
|
7544
7544
|
/***/ }),
|
|
7545
7545
|
|
|
@@ -7572,7 +7572,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
|
|
|
7572
7572
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
7573
7573
|
|
|
7574
7574
|
"use strict";
|
|
7575
|
-
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = __webpack_require__(/*! react */ \"react\");\nvar _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"));\nvar _set = _interopRequireDefault(__webpack_require__(/*! lodash/set */ \"./node_modules/lodash/set.js\"));\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/FormControl/utils.ts\");\nfunction getErrorMessage(error) {\n var _error$array;\n /**\n * When using some components as the field, such as TagInput, and using `ArrayType().of` as the validation rule,\n * the error object won't contain the errorMessage directly. @see https://github.com/rsuite/rsuite/issues/3866\n */\n if (error !== null && error !== void 0 && error.array && ((_error$array = error.array) === null || _error$array === void 0 ? void 0 : _error$array.length) > 0) {\n return error.array[0].errorMessage;\n }\n return error === null || error === void 0 ? void 0 : error.errorMessage;\n}\nfunction useField(props) {\n var name = props.name,\n formValue = props.formValue,\n formError = props.formError,\n value = props.value,\n nestedField = props.nestedField,\n errorMessage = props.errorMessage,\n errorFromContext = props.errorFromContext;\n var fieldValue = (0, _react.useMemo)(function () {\n if (typeof value !== 'undefined') {\n return value;\n }\n return nestedField ? (0, _get.default)(formValue, name) : formValue === null || formValue === void 0 ? void 0 : formValue[name];\n }, [formValue, name, nestedField, value]);\n var fieldError = (0, _react.useMemo)(function () {\n if (typeof errorMessage !== 'undefined' || !errorFromContext) {\n return errorMessage;\n }\n if (nestedField) {\n return getErrorMessage((0, _get.default)(formError, (0, _utils.nameToPath)(name)));\n }\n var fieldError = formError === null || formError === void 0 ? void 0 : formError[name];\n if (typeof fieldError === 'string') {\n return fieldError;\n }\n return getErrorMessage(fieldError);\n }, [errorFromContext, errorMessage, formError, name, nestedField]);\n var setFieldValue = (0, _react.useCallback)(function (fieldName, fieldValue) {\n var _extends2;\n if (nestedField) {\n return (0, _set.default)((0, _extends3.default)({}, formValue), fieldName, fieldValue);\n }\n return (0, _extends3.default)({}, formValue, (_extends2 = {}, _extends2[fieldName] = fieldValue, _extends2));\n }, [formValue, nestedField]);\n return {\n fieldValue: fieldValue,\n fieldError: fieldError,\n setFieldValue: setFieldValue\n };\n}\nvar _default = exports[\"default\"] = useField;\n\n//# sourceURL=webpack://rsuite/./src/FormControl/hooks/useField.ts?");
|
|
7575
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = __webpack_require__(/*! react */ \"react\");\nvar _get = _interopRequireDefault(__webpack_require__(/*! lodash/get */ \"./node_modules/lodash/get.js\"));\nvar _set = _interopRequireDefault(__webpack_require__(/*! lodash/set */ \"./node_modules/lodash/set.js\"));\nvar _utils = __webpack_require__(/*! ../utils */ \"./src/FormControl/utils.ts\");\nfunction getErrorMessage(error) {\n var _error$array;\n if (typeof error === 'string') {\n return error;\n }\n\n /**\n * When using some components as the field, such as TagInput, and using `ArrayType().of` as the validation rule,\n * the error object won't contain the errorMessage directly. @see https://github.com/rsuite/rsuite/issues/3866\n */\n if (error !== null && error !== void 0 && error.array && ((_error$array = error.array) === null || _error$array === void 0 ? void 0 : _error$array.length) > 0) {\n return error.array[0].errorMessage;\n }\n return error === null || error === void 0 ? void 0 : error.errorMessage;\n}\nfunction useField(props) {\n var name = props.name,\n formValue = props.formValue,\n formError = props.formError,\n value = props.value,\n nestedField = props.nestedField,\n errorMessage = props.errorMessage,\n errorFromContext = props.errorFromContext;\n var fieldValue = (0, _react.useMemo)(function () {\n if (typeof value !== 'undefined') {\n return value;\n }\n return nestedField ? (0, _get.default)(formValue, name) : formValue === null || formValue === void 0 ? void 0 : formValue[name];\n }, [formValue, name, nestedField, value]);\n var fieldError = (0, _react.useMemo)(function () {\n if (typeof errorMessage !== 'undefined' || !errorFromContext) {\n return errorMessage;\n }\n if (nestedField) {\n return getErrorMessage((0, _get.default)(formError, (0, _utils.nameToPath)(name)));\n }\n var fieldError = formError === null || formError === void 0 ? void 0 : formError[name];\n if (typeof fieldError === 'string') {\n return fieldError;\n }\n return getErrorMessage(fieldError);\n }, [errorFromContext, errorMessage, formError, name, nestedField]);\n var setFieldValue = (0, _react.useCallback)(function (fieldName, fieldValue) {\n var _extends2;\n if (nestedField) {\n return (0, _set.default)((0, _extends3.default)({}, formValue), fieldName, fieldValue);\n }\n return (0, _extends3.default)({}, formValue, (_extends2 = {}, _extends2[fieldName] = fieldValue, _extends2));\n }, [formValue, nestedField]);\n return {\n fieldValue: fieldValue,\n fieldError: fieldError,\n setFieldValue: setFieldValue\n };\n}\nvar _default = exports[\"default\"] = useField;\n\n//# sourceURL=webpack://rsuite/./src/FormControl/hooks/useField.ts?");
|
|
7576
7576
|
|
|
7577
7577
|
/***/ }),
|
|
7578
7578
|
|
|
@@ -10025,7 +10025,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
|
|
|
10025
10025
|
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
|
|
10026
10026
|
|
|
10027
10027
|
"use strict";
|
|
10028
|
-
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = __webpack_require__(/*! react */ \"react\");\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _utils = __webpack_require__(/*! ../../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../utils */ \"./src/Tree/utils/index.ts\");\nvar _useForceUpdate = _interopRequireDefault(__webpack_require__(/*! ./useForceUpdate */ \"./src/Tree/hooks/useForceUpdate.ts\"));\n/**\n * Custom hook that flattens a tree data structure into a map of nodes.\n *\n */\nfunction useFlattenTree(data, options) {\n var value = options.value,\n labelKey = options.labelKey,\n valueKey = options.valueKey,\n childrenKey = options.childrenKey,\n _options$uncheckableI = options.uncheckableItemValues,\n uncheckableItemValues = _options$uncheckableI === void 0 ? [] : _options$uncheckableI,\n cascade = options.cascade,\n multiple = options.multiple,\n callback = options.callback;\n var forceUpdate = (0, _useForceUpdate.default)();\n var flattenedNodes = (0, _react.useRef)({});\n var updateTreeNodeCheckState = (0, _react.useCallback)(function (value) {\n if (value === void 0) {\n value = [];\n }\n // Reset values to false\n Object.keys(flattenedNodes.current).forEach(function (refKey) {\n var node = flattenedNodes.current[refKey];\n if (cascade && !(0, _isNil.default)(node.parent) && !(0, _isNil.default)(node.parent.refKey)) {\n node.check = flattenedNodes.current[node.parent.refKey].check;\n } else {\n node.check = false;\n }\n value.forEach(function (nodeVal) {\n if ((0, _utils.shallowEqual)(flattenedNodes.current[refKey][valueKey], nodeVal) && !uncheckableItemValues.some(function (uncheckableValue) {\n return (0, _utils.shallowEqual)(nodeVal, uncheckableValue);\n })) {\n flattenedNodes.current[refKey].check = true;\n }\n });\n });\n }, [cascade, uncheckableItemValues, valueKey]);\n var flattenTreeData = (0, _react.useCallback)(function (treeData, parent, layer) {\n if (layer === void 0) {\n layer = 1;\n }\n if (!Array.isArray(treeData) || treeData.length === 0) {\n return [];\n }\n treeData.map(function (node) {\n var _extends2;\n var value = node[valueKey];\n /**\n * because the value of the node's type is string or number,\n * so it can used as the key of the object directly\n * to avoid number value is converted to string. 1 and '1' will be convert to '1'\n * we used `String_` or `Number_` prefix\n */\n var refKey = (0, _utils2.formatNodeRefKey)(value);\n node.refKey = refKey;\n flattenedNodes.current[refKey] = (0, _extends3.default)((_extends2 = {\n layer: layer\n }, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.uncheckable = uncheckableItemValues.some(function (value) {\n return (0, _utils.shallowEqual)(node[valueKey], value);\n }), _extends2), node);\n if (parent) {\n flattenedNodes.current[refKey].parent = (0, _omit.default)(parent, 'parent', 'children');\n }\n flattenTreeData(node[childrenKey], node, layer + 1);\n });\n callback === null || callback === void 0 ? void 0 : callback(flattenedNodes.current);\n forceUpdate();\n }, [callback, forceUpdate, valueKey, labelKey, uncheckableItemValues, childrenKey]);\n (0, _react.useEffect)(function () {\n // when data is changed, should clear the flattenedNodes, avoid duplicate keys\n flattenedNodes.current = {};\n flattenTreeData(data);\n }, [data]); // eslint-disable-line react-hooks/exhaustive-deps\n\n (0, _react.useEffect)(function () {\n if (multiple) {\n updateTreeNodeCheckState(value);\n forceUpdate();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]);\n return flattenedNodes.current;\n}\nvar _default = exports[\"default\"] = useFlattenTree;\n\n//# sourceURL=webpack://rsuite/./src/Tree/hooks/useFlattenTree.ts?");
|
|
10028
|
+
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar _extends3 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"./node_modules/@babel/runtime/helpers/extends.js\"));\nvar _react = __webpack_require__(/*! react */ \"react\");\nvar _omit = _interopRequireDefault(__webpack_require__(/*! lodash/omit */ \"./node_modules/lodash/omit.js\"));\nvar _isNil = _interopRequireDefault(__webpack_require__(/*! lodash/isNil */ \"./node_modules/lodash/isNil.js\"));\nvar _utils = __webpack_require__(/*! ../../internals/utils */ \"./src/internals/utils/index.ts\");\nvar _utils2 = __webpack_require__(/*! ../utils */ \"./src/Tree/utils/index.ts\");\nvar _useForceUpdate = _interopRequireDefault(__webpack_require__(/*! ./useForceUpdate */ \"./src/Tree/hooks/useForceUpdate.ts\"));\n/**\n * Custom hook that flattens a tree data structure into a map of nodes.\n *\n */\nfunction useFlattenTree(data, options) {\n var value = options.value,\n labelKey = options.labelKey,\n valueKey = options.valueKey,\n childrenKey = options.childrenKey,\n _options$uncheckableI = options.uncheckableItemValues,\n uncheckableItemValues = _options$uncheckableI === void 0 ? [] : _options$uncheckableI,\n cascade = options.cascade,\n multiple = options.multiple,\n callback = options.callback;\n var forceUpdate = (0, _useForceUpdate.default)();\n var flattenedNodes = (0, _react.useRef)({});\n var updateTreeNodeCheckState = (0, _react.useCallback)(function (value) {\n if (value === void 0) {\n value = [];\n }\n // Reset values to false\n Object.keys(flattenedNodes.current).forEach(function (refKey) {\n var node = flattenedNodes.current[refKey];\n if (cascade && !(0, _isNil.default)(node.parent) && !(0, _isNil.default)(node.parent.refKey)) {\n node.check = flattenedNodes.current[node.parent.refKey].check;\n } else {\n node.check = false;\n }\n value.forEach(function (nodeVal) {\n if ((0, _utils.shallowEqual)(flattenedNodes.current[refKey][valueKey], nodeVal) && !uncheckableItemValues.some(function (uncheckableValue) {\n return (0, _utils.shallowEqual)(nodeVal, uncheckableValue);\n })) {\n flattenedNodes.current[refKey].check = true;\n }\n });\n });\n }, [cascade, uncheckableItemValues, valueKey]);\n var flattenTreeData = (0, _react.useCallback)(function (treeData, parent, layer) {\n if (layer === void 0) {\n layer = 1;\n }\n if (!Array.isArray(treeData) || treeData.length === 0) {\n return [];\n }\n treeData.map(function (node) {\n var _extends2;\n var value = node[valueKey];\n /**\n * because the value of the node's type is string or number,\n * so it can used as the key of the object directly\n * to avoid number value is converted to string. 1 and '1' will be convert to '1'\n * we used `String_` or `Number_` prefix\n */\n var refKey = (0, _utils2.formatNodeRefKey)(value);\n node.refKey = refKey;\n flattenedNodes.current[refKey] = (0, _extends3.default)((_extends2 = {\n layer: layer\n }, _extends2[labelKey] = node[labelKey], _extends2[valueKey] = node[valueKey], _extends2.uncheckable = uncheckableItemValues.some(function (value) {\n return (0, _utils.shallowEqual)(node[valueKey], value);\n }), _extends2), node);\n if (parent) {\n flattenedNodes.current[refKey].parent = (0, _omit.default)(parent, 'parent', 'children');\n }\n flattenTreeData(node[childrenKey], node, layer + 1);\n });\n callback === null || callback === void 0 ? void 0 : callback(flattenedNodes.current);\n forceUpdate();\n }, [callback, forceUpdate, valueKey, labelKey, uncheckableItemValues, childrenKey]);\n (0, _react.useEffect)(function () {\n // when data is changed, should clear the flattenedNodes, avoid duplicate keys\n flattenedNodes.current = {};\n flattenTreeData(data);\n }, [data]); // eslint-disable-line react-hooks/exhaustive-deps\n\n (0, _react.useEffect)(function () {\n if (multiple) {\n updateTreeNodeCheckState(value);\n forceUpdate();\n }\n\n /**\n * Add a dependency on data, because when loading data asynchronously through getChildren,\n * data may change and the node status needs to be updated.\n * @see https://github.com/rsuite/rsuite/issues/3973\n */\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, data]);\n return flattenedNodes.current;\n}\nvar _default = exports[\"default\"] = useFlattenTree;\n\n//# sourceURL=webpack://rsuite/./src/Tree/hooks/useFlattenTree.ts?");
|
|
10029
10029
|
|
|
10030
10030
|
/***/ }),
|
|
10031
10031
|
|