rsuite 5.70.2 → 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 +11 -0
- package/cjs/Form/hooks/useFormValidate.d.ts +1 -1
- package/cjs/Form/hooks/useFormValidate.js +5 -5
- package/cjs/Tree/hooks/useFlattenTree.js +7 -1
- package/dist/rsuite.js +6 -6
- package/dist/rsuite.min.js +1 -1
- package/dist/rsuite.min.js.map +1 -1
- package/esm/Form/hooks/useFormValidate.d.ts +1 -1
- package/esm/Form/hooks/useFormValidate.js +5 -5
- package/esm/Tree/hooks/useFlattenTree.js +7 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
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
|
+
|
|
1
12
|
## [5.70.2](https://github.com/rsuite/rsuite/compare/v5.70.1...v5.70.2) (2024-09-13)
|
|
2
13
|
|
|
3
14
|
|
|
@@ -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 = {
|
|
@@ -73,7 +73,7 @@ function useFormValidate(formError, props) {
|
|
|
73
73
|
var checkFieldForNextValue = (0, _hooks.useEventCallback)(function (fieldName, nextValue, callback) {
|
|
74
74
|
var model = getCombinedModel();
|
|
75
75
|
var resultOfCurrentField = model.checkForField(fieldName, nextValue, checkOptions);
|
|
76
|
-
var nextFormError = (0, _extends2.default)({},
|
|
76
|
+
var nextFormError = (0, _extends2.default)({}, realFormError);
|
|
77
77
|
/**
|
|
78
78
|
* when using proxy of schema-typed, we need to use getCheckResult to get all errors,
|
|
79
79
|
* but if nestedField is used, it is impossible to distinguish whether the nested object has an error here,
|
|
@@ -156,7 +156,7 @@ function useFormValidate(formError, props) {
|
|
|
156
156
|
var checkFieldAsyncForNextValue = (0, _hooks.useEventCallback)(function (fieldName, nextValue) {
|
|
157
157
|
var model = getCombinedModel();
|
|
158
158
|
return model.checkForFieldAsync(fieldName, nextValue, checkOptions).then(function (resultOfCurrentField) {
|
|
159
|
-
var nextFormError = (0, _extends2.default)({},
|
|
159
|
+
var nextFormError = (0, _extends2.default)({}, realFormError);
|
|
160
160
|
/**
|
|
161
161
|
* when using proxy of schema-typed, we need to use getCheckResult to get all errors,
|
|
162
162
|
* but if nestedField is used, it is impossible to distinguish whether the nested object has an error here,
|
|
@@ -225,7 +225,7 @@ function useFormValidate(formError, props) {
|
|
|
225
225
|
setFormError(formError);
|
|
226
226
|
});
|
|
227
227
|
var cleanErrorForField = (0, _hooks.useEventCallback)(function (fieldName) {
|
|
228
|
-
setFormError((0, _omit.default)(
|
|
228
|
+
setFormError((0, _omit.default)(realFormError, [nestedField ? (0, _utils.nameToPath)(fieldName) : fieldName]));
|
|
229
229
|
});
|
|
230
230
|
return {
|
|
231
231
|
formError: realFormError,
|
|
@@ -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
|
@@ -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 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)({}, 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
|
|
|
@@ -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
|
|
|
@@ -15820,9 +15820,9 @@ eval("var toFinite = __webpack_require__(/*! ./toFinite */ \"./node_modules/loda
|
|
|
15820
15820
|
/*!*****************************************!*\
|
|
15821
15821
|
!*** ./node_modules/lodash/toNumber.js ***!
|
|
15822
15822
|
\*****************************************/
|
|
15823
|
-
/***/ (function(module
|
|
15823
|
+
/***/ (function(module) {
|
|
15824
15824
|
|
|
15825
|
-
eval("
|
|
15825
|
+
eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n//# sourceURL=webpack://rsuite/./node_modules/lodash/toNumber.js?");
|
|
15826
15826
|
|
|
15827
15827
|
/***/ }),
|
|
15828
15828
|
|
|
@@ -15840,9 +15840,9 @@ eval("var copyObject = __webpack_require__(/*! ./_copyObject */ \"./node_modules
|
|
|
15840
15840
|
/*!*****************************************!*\
|
|
15841
15841
|
!*** ./node_modules/lodash/toString.js ***!
|
|
15842
15842
|
\*****************************************/
|
|
15843
|
-
/***/ (function(module
|
|
15843
|
+
/***/ (function(module) {
|
|
15844
15844
|
|
|
15845
|
-
eval("
|
|
15845
|
+
eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n//# sourceURL=webpack://rsuite/./node_modules/lodash/toString.js?");
|
|
15846
15846
|
|
|
15847
15847
|
/***/ }),
|
|
15848
15848
|
|