@1money/component-ui 0.0.71 → 0.0.74
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/es/components/ProForm/ProForm.d.ts +10 -2
- package/es/components/ProForm/ProForm.js +241 -55
- package/es/components/ProForm/ProFormDependency.d.ts +11 -2
- package/es/components/ProForm/ProFormDependency.js +29 -133
- package/es/components/ProForm/ProFormItem.js +146 -52
- package/es/components/ProForm/ProFormList.js +114 -62
- package/es/components/ProForm/SchemaForm.d.ts +7 -0
- package/es/components/ProForm/SchemaForm.js +103 -0
- package/es/components/ProForm/Submitter.js +26 -5
- package/es/components/ProForm/context.d.ts +30 -3
- package/es/components/ProForm/context.js +69 -10
- package/es/components/ProForm/core/constants.d.ts +12 -3
- package/es/components/ProForm/core/constants.js +18 -7
- package/es/components/ProForm/core/formStore.d.ts +24 -0
- package/es/components/ProForm/core/formStore.js +101 -0
- package/es/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/es/components/ProForm/core/hooks/useForm.js +336 -212
- package/es/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/es/components/ProForm/core/hooks/useFormCore.js +151 -93
- package/es/components/ProForm/core/interface.d.ts +33 -12
- package/es/components/ProForm/core/runRules.d.ts +20 -8
- package/es/components/ProForm/core/runRules.js +105 -50
- package/es/components/ProForm/core/useFormItem.d.ts +10 -1
- package/es/components/ProForm/core/useFormItem.js +141 -56
- package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/es/components/ProForm/fields/ProFormFieldSet.js +20 -7
- package/es/components/ProForm/fields/createProFormField.js +61 -32
- package/es/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/es/components/ProForm/hooks/useFieldRequest.js +54 -9
- package/es/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/es/components/ProForm/hooks/useUrlSync.js +170 -0
- package/es/components/ProForm/index.d.ts +12 -5
- package/es/components/ProForm/index.js +7 -2
- package/es/components/ProForm/interface.d.ts +185 -28
- package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DialogForm.js +18 -7
- package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/es/components/ProForm/layouts/DrawerForm.js +17 -7
- package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/es/components/ProForm/layouts/QueryFilter.js +47 -71
- package/es/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/es/components/ProForm/layouts/useOverlayForm.js +27 -8
- package/es/components/ProForm/style/ProForm.css +4 -4
- package/es/components/ProForm/utils.d.ts +12 -1
- package/es/components/ProForm/utils.js +101 -28
- package/es/components/ProTable/ProTable.js +3 -3
- package/es/components/Tooltip/style/Tooltip.css +1 -0
- package/es/index.css +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/lib/components/ProForm/ProForm.d.ts +10 -2
- package/lib/components/ProForm/ProForm.js +239 -53
- package/lib/components/ProForm/ProFormDependency.d.ts +11 -2
- package/lib/components/ProForm/ProFormDependency.js +30 -135
- package/lib/components/ProForm/ProFormItem.js +143 -48
- package/lib/components/ProForm/ProFormList.js +112 -60
- package/lib/components/ProForm/SchemaForm.d.ts +7 -0
- package/lib/components/ProForm/SchemaForm.js +110 -0
- package/lib/components/ProForm/Submitter.js +26 -5
- package/lib/components/ProForm/context.d.ts +30 -3
- package/lib/components/ProForm/context.js +69 -10
- package/lib/components/ProForm/core/constants.d.ts +12 -3
- package/lib/components/ProForm/core/constants.js +19 -8
- package/lib/components/ProForm/core/formStore.d.ts +24 -0
- package/lib/components/ProForm/core/formStore.js +110 -0
- package/lib/components/ProForm/core/hooks/useForm.d.ts +4 -1
- package/lib/components/ProForm/core/hooks/useForm.js +336 -212
- package/lib/components/ProForm/core/hooks/useFormCore.d.ts +5 -1
- package/lib/components/ProForm/core/hooks/useFormCore.js +150 -92
- package/lib/components/ProForm/core/interface.d.ts +33 -12
- package/lib/components/ProForm/core/runRules.d.ts +20 -8
- package/lib/components/ProForm/core/runRules.js +106 -50
- package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
- package/lib/components/ProForm/core/useFormItem.js +138 -53
- package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
- package/lib/components/ProForm/fields/ProFormFieldSet.js +19 -6
- package/lib/components/ProForm/fields/createProFormField.js +61 -32
- package/lib/components/ProForm/hooks/useFieldRequest.d.ts +6 -1
- package/lib/components/ProForm/hooks/useFieldRequest.js +53 -8
- package/lib/components/ProForm/hooks/useUrlSync.d.ts +16 -0
- package/lib/components/ProForm/hooks/useUrlSync.js +178 -0
- package/lib/components/ProForm/index.d.ts +12 -5
- package/lib/components/ProForm/index.js +16 -1
- package/lib/components/ProForm/interface.d.ts +185 -28
- package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DialogForm.js +18 -7
- package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
- package/lib/components/ProForm/layouts/DrawerForm.js +17 -7
- package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
- package/lib/components/ProForm/layouts/QueryFilter.js +46 -70
- package/lib/components/ProForm/layouts/useOverlayForm.d.ts +2 -2
- package/lib/components/ProForm/layouts/useOverlayForm.js +30 -8
- package/lib/components/ProForm/style/ProForm.css +4 -4
- package/lib/components/ProForm/utils.d.ts +12 -1
- package/lib/components/ProForm/utils.js +104 -28
- package/lib/components/ProTable/ProTable.js +3 -3
- package/lib/components/Tooltip/style/Tooltip.css +1 -0
- package/lib/index.css +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +13 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +90 -0
- package/scripts/mcp-server/index.generated.json +1866 -212
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import type { FormStore } from '../formStore';
|
|
1
2
|
import type { UseFormCoreConfig, UseFormCoreReturn } from '../interface';
|
|
2
|
-
export declare const useFormCore: (config?: UseFormCoreConfig) => UseFormCoreReturn
|
|
3
|
+
export declare const useFormCore: (config?: UseFormCoreConfig) => UseFormCoreReturn & {
|
|
4
|
+
store: FormStore;
|
|
5
|
+
getInitialValues: () => Record<string, unknown>;
|
|
6
|
+
};
|
|
3
7
|
export default useFormCore;
|
|
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.useFormCore = exports["default"] = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
9
|
var _react = require("react");
|
|
11
10
|
var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
|
|
12
11
|
var _useMemoizedFn = _interopRequireDefault(require("@1money/hooks/useMemoizedFn"));
|
|
13
12
|
var _pathUtils = require("../pathUtils");
|
|
14
13
|
var _runRules = require("../runRules");
|
|
14
|
+
var _formStore = require("../formStore");
|
|
15
15
|
var useFormCore = exports.useFormCore = function useFormCore() {
|
|
16
16
|
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
17
17
|
var _config$initialValues = config.initialValues,
|
|
@@ -21,7 +21,7 @@ var useFormCore = exports.useFormCore = function useFormCore() {
|
|
|
21
21
|
onValuesChange = config.onValuesChange,
|
|
22
22
|
onReset = config.onReset,
|
|
23
23
|
_config$size = config.size,
|
|
24
|
-
size = _config$size === void 0 ? '
|
|
24
|
+
size = _config$size === void 0 ? 'large' : _config$size,
|
|
25
25
|
_config$labelAlign = config.labelAlign,
|
|
26
26
|
labelAlign = _config$labelAlign === void 0 ? 'left' : _config$labelAlign,
|
|
27
27
|
_config$disabled = config.disabled,
|
|
@@ -32,79 +32,111 @@ var useFormCore = exports.useFormCore = function useFormCore() {
|
|
|
32
32
|
requiredMark = _config$requiredMark === void 0 ? true : _config$requiredMark,
|
|
33
33
|
_config$validateTrigg = config.validateTrigger,
|
|
34
34
|
validateTrigger = _config$validateTrigg === void 0 ? 'onChange' : _config$validateTrigg;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
var
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
35
|
+
// initialValues is MOUNT-ONLY (the documented contract): freeze the first
|
|
36
|
+
// render's value so resetFields always restores the mount-time defaults,
|
|
37
|
+
// even when the consumer re-renders with a different (e.g. controlled)
|
|
38
|
+
// initialValues object.
|
|
39
|
+
var initialValuesRef = (0, _react.useRef)(null);
|
|
40
|
+
if (initialValuesRef.current === null) {
|
|
41
|
+
initialValuesRef.current = initialValues;
|
|
42
|
+
}
|
|
43
|
+
var mountInitialValues = initialValuesRef.current;
|
|
44
|
+
// All volatile form state lives in an external store, NOT React state — a
|
|
45
|
+
// keystroke must never re-render the component that owns the form. Fields
|
|
46
|
+
// and watchers subscribe with per-field selectors (useStoreSelector); every
|
|
47
|
+
// mutator below reads the LATEST state via store.getState(), which also
|
|
48
|
+
// keeps multiple writes in the same tick visible to each other.
|
|
49
|
+
var storeRef = (0, _react.useRef)(null);
|
|
50
|
+
if (storeRef.current === null) {
|
|
51
|
+
storeRef.current = (0, _formStore.createFormStore)(mountInitialValues);
|
|
52
|
+
}
|
|
53
|
+
var store = storeRef.current;
|
|
54
|
+
// Live rule registry — ONE stable object mutated in place. Registration must
|
|
55
|
+
// not trigger renders, and submit-time validation must always read the latest
|
|
56
|
+
// rules (they can change between renders, e.g. a conditional `required`).
|
|
57
|
+
var fieldRulesRef = (0, _react.useRef)({});
|
|
58
|
+
var commitValues = (0, _useMemoizedFn["default"])(function (newValues) {
|
|
59
|
+
store.setState({
|
|
60
|
+
values: newValues
|
|
56
61
|
});
|
|
62
|
+
});
|
|
63
|
+
var setFieldValue = (0, _useMemoizedFn["default"])(function (name, value) {
|
|
64
|
+
var prev = store.getState().values;
|
|
65
|
+
var newValues = name.includes('.') ? (0, _pathUtils.setNestedValue)(prev, name, value) : Object.assign(Object.assign({}, prev), (0, _defineProperty2["default"])({}, name, value));
|
|
66
|
+
commitValues(newValues);
|
|
67
|
+
onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange((0, _defineProperty2["default"])({}, name, value), newValues);
|
|
57
68
|
if (value !== '' && value !== null && value !== undefined) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
var newErrors = Object.assign({},
|
|
69
|
+
var errors = store.getState().errors;
|
|
70
|
+
if (errors[name]) {
|
|
71
|
+
var newErrors = Object.assign({}, errors);
|
|
61
72
|
delete newErrors[name];
|
|
62
|
-
|
|
63
|
-
|
|
73
|
+
store.setState({
|
|
74
|
+
errors: newErrors
|
|
75
|
+
});
|
|
76
|
+
}
|
|
64
77
|
}
|
|
65
78
|
});
|
|
66
79
|
var setFieldError = (0, _useMemoizedFn["default"])(function (name, error) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
80
|
+
var errors = store.getState().errors;
|
|
81
|
+
if (error === null) {
|
|
82
|
+
if (!errors[name]) return;
|
|
83
|
+
var newErrors = Object.assign({}, errors);
|
|
84
|
+
delete newErrors[name];
|
|
85
|
+
store.setState({
|
|
86
|
+
errors: newErrors
|
|
87
|
+
});
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (errors[name] === error) return;
|
|
91
|
+
store.setState({
|
|
92
|
+
errors: Object.assign(Object.assign({}, errors), (0, _defineProperty2["default"])({}, name, error))
|
|
75
93
|
});
|
|
76
94
|
});
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
95
|
+
var setFieldWarning = (0, _useMemoizedFn["default"])(function (name, warning) {
|
|
96
|
+
var warnings = store.getState().warnings;
|
|
97
|
+
if (warning === null) {
|
|
98
|
+
if (!warnings[name]) return;
|
|
99
|
+
var newWarnings = Object.assign({}, warnings);
|
|
100
|
+
delete newWarnings[name];
|
|
101
|
+
store.setState({
|
|
102
|
+
warnings: newWarnings
|
|
103
|
+
});
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (warnings[name] === warning) return;
|
|
107
|
+
store.setState({
|
|
108
|
+
warnings: Object.assign(Object.assign({}, warnings), (0, _defineProperty2["default"])({}, name, warning))
|
|
80
109
|
});
|
|
81
110
|
});
|
|
111
|
+
var registerField = (0, _useMemoizedFn["default"])(function (name, rules) {
|
|
112
|
+
fieldRulesRef.current[name] = rules;
|
|
113
|
+
});
|
|
82
114
|
var getFieldRules = (0, _useMemoizedFn["default"])(function (name) {
|
|
83
|
-
return
|
|
115
|
+
return fieldRulesRef.current[name];
|
|
84
116
|
});
|
|
85
117
|
var unregisterField = (0, _useMemoizedFn["default"])(function (name) {
|
|
86
|
-
|
|
87
|
-
var newRules = Object.assign({}, prev);
|
|
88
|
-
delete newRules[name];
|
|
89
|
-
return newRules;
|
|
90
|
-
});
|
|
118
|
+
delete fieldRulesRef.current[name];
|
|
91
119
|
});
|
|
92
120
|
var validateField = (0, _useMemoizedFn["default"])(function (name) {
|
|
93
121
|
var rules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
94
122
|
var providedValue = arguments.length > 2 ? arguments[2] : undefined;
|
|
95
|
-
var
|
|
96
|
-
var
|
|
123
|
+
var currentValues = store.getState().values;
|
|
124
|
+
var value = providedValue !== undefined ? providedValue : (0, _pathUtils.resolveValue)(currentValues, name);
|
|
125
|
+
var _runRulesSync = (0, _runRules.runRulesSync)(name, value, currentValues, rules),
|
|
126
|
+
error = _runRulesSync.error,
|
|
127
|
+
warning = _runRulesSync.warning;
|
|
128
|
+
setFieldWarning(name, warning);
|
|
97
129
|
if (error !== null) {
|
|
98
130
|
setFieldError(name, error);
|
|
99
131
|
return false;
|
|
100
132
|
}
|
|
101
|
-
if (errors[name]) {
|
|
133
|
+
if (store.getState().errors[name]) {
|
|
102
134
|
setFieldError(name, null);
|
|
103
135
|
}
|
|
104
136
|
return true;
|
|
105
137
|
});
|
|
106
138
|
var validateFields = (0, _useMemoizedFn["default"])(function () {
|
|
107
|
-
var fieldsRulesToValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] :
|
|
139
|
+
var fieldsRulesToValidate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : fieldRulesRef.current;
|
|
108
140
|
var isValid = true;
|
|
109
141
|
Object.keys(fieldsRulesToValidate).forEach(function (name) {
|
|
110
142
|
var rules = fieldsRulesToValidate[name];
|
|
@@ -115,26 +147,37 @@ var useFormCore = exports.useFormCore = function useFormCore() {
|
|
|
115
147
|
return isValid;
|
|
116
148
|
});
|
|
117
149
|
var handleSubmitInternal = (0, _useMemoizedFn["default"])(function () {
|
|
150
|
+
var currentValues = store.getState().values;
|
|
151
|
+
var currentRules = fieldRulesRef.current;
|
|
118
152
|
var hasErrors = false;
|
|
119
153
|
var newErrors = {};
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
var
|
|
154
|
+
var newWarnings = {};
|
|
155
|
+
Object.keys(currentRules).forEach(function (fieldName) {
|
|
156
|
+
var value = (0, _pathUtils.resolveValue)(currentValues, fieldName);
|
|
157
|
+
var _runRulesSync2 = (0, _runRules.runRulesSync)(fieldName, value, currentValues, currentRules[fieldName]),
|
|
158
|
+
error = _runRulesSync2.error,
|
|
159
|
+
warning = _runRulesSync2.warning;
|
|
123
160
|
if (error !== null) {
|
|
124
161
|
newErrors[fieldName] = error;
|
|
125
162
|
hasErrors = true;
|
|
126
163
|
}
|
|
164
|
+
if (warning !== null) {
|
|
165
|
+
newWarnings[fieldName] = warning;
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
store.setState({
|
|
169
|
+
errors: newErrors,
|
|
170
|
+
warnings: newWarnings
|
|
127
171
|
});
|
|
128
|
-
setErrors(newErrors);
|
|
129
172
|
if (!hasErrors) {
|
|
130
|
-
onFinish === null || onFinish === void 0 ? void 0 : onFinish(
|
|
173
|
+
onFinish === null || onFinish === void 0 ? void 0 : onFinish(currentValues);
|
|
131
174
|
return {
|
|
132
175
|
success: true,
|
|
133
|
-
values:
|
|
176
|
+
values: currentValues
|
|
134
177
|
};
|
|
135
178
|
} else {
|
|
136
179
|
onFinishFailed === null || onFinishFailed === void 0 ? void 0 : onFinishFailed({
|
|
137
|
-
values:
|
|
180
|
+
values: currentValues,
|
|
138
181
|
errors: newErrors
|
|
139
182
|
});
|
|
140
183
|
return {
|
|
@@ -147,28 +190,33 @@ var useFormCore = exports.useFormCore = function useFormCore() {
|
|
|
147
190
|
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
148
191
|
return handleSubmitInternal();
|
|
149
192
|
});
|
|
193
|
+
// Pure state API: the imperative resetFields()
|
|
194
|
+
// never fires onReset. The callback belongs to the reset ACTION layer
|
|
195
|
+
// (submitter button / native reset event), which fires it exactly once.
|
|
150
196
|
var resetFields = (0, _useMemoizedFn["default"])(function () {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
197
|
+
store.setState({
|
|
198
|
+
values: mountInitialValues,
|
|
199
|
+
errors: {},
|
|
200
|
+
warnings: {},
|
|
201
|
+
touched: {},
|
|
202
|
+
validating: {}
|
|
203
|
+
});
|
|
155
204
|
});
|
|
156
205
|
var handleReset = (0, _useEventCallback["default"])(function (e) {
|
|
157
206
|
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
158
207
|
resetFields();
|
|
208
|
+
onReset === null || onReset === void 0 ? void 0 : onReset();
|
|
159
209
|
});
|
|
160
210
|
var getFieldValue = (0, _useMemoizedFn["default"])(function (name) {
|
|
161
|
-
return (0, _pathUtils.resolveValue)(values, name);
|
|
211
|
+
return (0, _pathUtils.resolveValue)(store.getState().values, name);
|
|
162
212
|
});
|
|
163
213
|
var getFieldsValue = (0, _useMemoizedFn["default"])(function () {
|
|
164
|
-
return values;
|
|
214
|
+
return store.getState().values;
|
|
165
215
|
});
|
|
166
216
|
var setFieldsValue = (0, _useMemoizedFn["default"])(function (newValues) {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
return updatedValues;
|
|
171
|
-
});
|
|
217
|
+
var updatedValues = Object.assign(Object.assign({}, store.getState().values), newValues);
|
|
218
|
+
commitValues(updatedValues);
|
|
219
|
+
onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange(newValues, updatedValues);
|
|
172
220
|
});
|
|
173
221
|
var formInstance = (0, _react.useMemo)(function () {
|
|
174
222
|
return {
|
|
@@ -181,33 +229,39 @@ var useFormCore = exports.useFormCore = function useFormCore() {
|
|
|
181
229
|
validateFields: validateFields
|
|
182
230
|
};
|
|
183
231
|
}, [handleSubmitInternal, resetFields, getFieldValue, getFieldsValue, setFieldsValue, setFieldValue, validateFields]);
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
232
|
+
// Render-time snapshot — kept for the UseFormCoreReturn contract. Reactive
|
|
233
|
+
// consumers must go through the store, never through these fields.
|
|
234
|
+
var state = store.getState();
|
|
235
|
+
var coreContextShape = {
|
|
236
|
+
values: state.values,
|
|
237
|
+
errors: state.errors,
|
|
238
|
+
warnings: state.warnings,
|
|
239
|
+
touched: state.touched,
|
|
240
|
+
formInstance: formInstance,
|
|
241
|
+
setFieldValue: setFieldValue,
|
|
242
|
+
setFieldError: setFieldError,
|
|
243
|
+
setFieldWarning: setFieldWarning,
|
|
244
|
+
validateField: validateField,
|
|
245
|
+
registerField: registerField,
|
|
246
|
+
unregisterField: unregisterField,
|
|
247
|
+
size: size,
|
|
248
|
+
labelAlign: labelAlign,
|
|
249
|
+
disabled: disabled,
|
|
250
|
+
colon: colon,
|
|
251
|
+
requiredMark: requiredMark,
|
|
252
|
+
validateTrigger: validateTrigger
|
|
253
|
+
};
|
|
203
254
|
return {
|
|
204
|
-
values: values,
|
|
205
|
-
errors: errors,
|
|
206
|
-
|
|
207
|
-
|
|
255
|
+
values: state.values,
|
|
256
|
+
errors: state.errors,
|
|
257
|
+
warnings: state.warnings,
|
|
258
|
+
touched: state.touched,
|
|
259
|
+
// Live registry — stable identity, mutated in place by register/unregister.
|
|
260
|
+
fieldRules: fieldRulesRef.current,
|
|
208
261
|
getFieldRules: getFieldRules,
|
|
209
262
|
setFieldValue: setFieldValue,
|
|
210
263
|
setFieldError: setFieldError,
|
|
264
|
+
setFieldWarning: setFieldWarning,
|
|
211
265
|
setFieldsValue: setFieldsValue,
|
|
212
266
|
getFieldValue: getFieldValue,
|
|
213
267
|
getFieldsValue: getFieldsValue,
|
|
@@ -219,8 +273,12 @@ var useFormCore = exports.useFormCore = function useFormCore() {
|
|
|
219
273
|
handleReset: handleReset,
|
|
220
274
|
resetFields: resetFields,
|
|
221
275
|
formInstance: formInstance,
|
|
222
|
-
coreContextShape: coreContextShape
|
|
276
|
+
coreContextShape: coreContextShape,
|
|
277
|
+
store: store,
|
|
278
|
+
getInitialValues: function getInitialValues() {
|
|
279
|
+
return mountInitialValues;
|
|
280
|
+
}
|
|
223
281
|
};
|
|
224
282
|
};
|
|
225
283
|
var _default = exports["default"] = useFormCore;
|
|
226
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlTWVtb2l6ZWRGbiIsIl9wYXRoVXRpbHMiLCJfcnVuUnVsZXMiLCJ1c2VGb3JtQ29yZSIsImV4cG9ydHMiLCJjb25maWciLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfY29uZmlnJGluaXRpYWxWYWx1ZXMiLCJpbml0aWFsVmFsdWVzIiwib25GaW5pc2giLCJvbkZpbmlzaEZhaWxlZCIsIm9uVmFsdWVzQ2hhbmdlIiwib25SZXNldCIsIl9jb25maWckc2l6ZSIsInNpemUiLCJfY29uZmlnJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX2NvbmZpZyRkaXNhYmxlZCIsImRpc2FibGVkIiwiX2NvbmZpZyRjb2xvbiIsImNvbG9uIiwiX2NvbmZpZyRyZXF1aXJlZE1hcmsiLCJyZXF1aXJlZE1hcmsiLCJfY29uZmlnJHZhbGlkYXRlVHJpZ2ciLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJ2YWx1ZXMiLCJzZXRWYWx1ZXMiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsImVycm9ycyIsInNldEVycm9ycyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwidG91Y2hlZCIsInNldFRvdWNoZWQiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImZpZWxkUnVsZXMiLCJzZXRGaWVsZFJ1bGVzIiwic2V0RmllbGRWYWx1ZSIsInVzZU1lbW9pemVkRm4iLCJuYW1lIiwidmFsdWUiLCJwcmV2IiwibmV3VmFsdWVzIiwiaW5jbHVkZXMiLCJzZXROZXN0ZWRWYWx1ZSIsIk9iamVjdCIsImFzc2lnbiIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJuZXdFcnJvcnMiLCJzZXRGaWVsZEVycm9yIiwiZXJyb3IiLCJyZWdpc3RlckZpZWxkIiwicnVsZXMiLCJnZXRGaWVsZFJ1bGVzIiwidW5yZWdpc3RlckZpZWxkIiwibmV3UnVsZXMiLCJ2YWxpZGF0ZUZpZWxkIiwicHJvdmlkZWRWYWx1ZSIsInJlc29sdmVWYWx1ZSIsInJ1blJ1bGVzU3luYyIsInZhbGlkYXRlRmllbGRzIiwiZmllbGRzUnVsZXNUb1ZhbGlkYXRlIiwiaXNWYWxpZCIsImtleXMiLCJmb3JFYWNoIiwiaGFuZGxlU3VibWl0SW50ZXJuYWwiLCJoYXNFcnJvcnMiLCJmaWVsZE5hbWUiLCJzdWNjZXNzIiwiaGFuZGxlU3VibWl0IiwidXNlRXZlbnRDYWxsYmFjayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInJlc2V0RmllbGRzIiwiaGFuZGxlUmVzZXQiLCJnZXRGaWVsZFZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJzZXRGaWVsZHNWYWx1ZSIsInVwZGF0ZWRWYWx1ZXMiLCJmb3JtSW5zdGFuY2UiLCJ1c2VNZW1vIiwic3VibWl0IiwiY29yZUNvbnRleHRTaGFwZSIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssU0FBQSxHQUFBTCxPQUFBO0FBUU8sSUFBTU0sV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsR0FBRyxTQUFkQSxXQUFXQSxDQUFBLEVBQXlEO0VBQUEsSUFBckRFLE1BQUEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQTRC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UEksVUFBVSxFQUFWQSxVQUFVO0lBQ1ZrQixhQUFhLEVBQWJBLGFBQWE7SUFDYmhCLGFBQWEsRUFBYkEsYUFBYTtJQUNiWSxhQUFhLEVBQWJBLGFBQWE7SUFDYjRCLGNBQWMsRUFBZEEsY0FBYztJQUNkRixhQUFhLEVBQWJBLGFBQWE7SUFDYkMsY0FBYyxFQUFkQSxjQUFjO0lBQ2RwQixhQUFhLEVBQWJBLGFBQWE7SUFDYkksY0FBYyxFQUFkQSxjQUFjO0lBQ2RULGFBQWEsRUFBYkEsYUFBYTtJQUNiRyxlQUFlLEVBQWZBLGVBQWU7SUFDZmUsWUFBWSxFQUFaQSxZQUFZO0lBQ1pLLFdBQVcsRUFBWEEsV0FBVztJQUNYRCxXQUFXLEVBQVhBLFdBQVc7SUFDWE0sWUFBWSxFQUFaQSxZQUFZO0lBQ1pHLGdCQUFnQixFQUFoQkE7RUNyREEsQ0RzREQ7QUFDSCxDQUFDO0FBQUMsSUFBQUMsUUFBQSxHQUFBdkYsT0FBQSxjQUVhRCxXQUFXIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4uL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBydW5SdWxlc1N5bmMgfSBmcm9tICcuLi9ydW5SdWxlcyc7XG5leHBvcnQgY29uc3QgdXNlRm9ybUNvcmUgPSAoY29uZmlnID0ge30pID0+IHtcbiAgICBjb25zdCB7IGluaXRpYWxWYWx1ZXMgPSB7fSwgb25GaW5pc2gsIG9uRmluaXNoRmFpbGVkLCBvblZhbHVlc0NoYW5nZSwgb25SZXNldCwgc2l6ZSA9ICdtaWRkbGUnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCBjb2xvbiA9IHRydWUsIHJlcXVpcmVkTWFyayA9IHRydWUsIHZhbGlkYXRlVHJpZ2dlciA9ICdvbkNoYW5nZScsIH0gPSBjb25maWc7XG4gICAgY29uc3QgW3ZhbHVlcywgc2V0VmFsdWVzXSA9IHVzZVN0YXRlKGluaXRpYWxWYWx1ZXMpO1xuICAgIGNvbnN0IFtlcnJvcnMsIHNldEVycm9yc10gPSB1c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3RvdWNoZWQsIHNldFRvdWNoZWRdID0gdXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFtmaWVsZFJ1bGVzLCBzZXRGaWVsZFJ1bGVzXSA9IHVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBzZXRGaWVsZFZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWUpID0+IHtcbiAgICAgICAgc2V0VmFsdWVzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZXMgPSBuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHByZXYsIG5hbWUsIHZhbHVlKVxuICAgICAgICAgICAgICAgIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBwcmV2KSwgeyBbbmFtZV06IHZhbHVlIH0pO1xuICAgICAgICAgICAgb25WYWx1ZXNDaGFuZ2UgPT09IG51bGwgfHwgb25WYWx1ZXNDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uVmFsdWVzQ2hhbmdlKHsgW25hbWVdOiB2YWx1ZSB9LCBuZXdWYWx1ZXMpO1xuICAgICAgICAgICAgcmV0dXJuIG5ld1ZhbHVlcztcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2V0RXJyb3JzKChwcmV2KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcmV2W25hbWVdKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdFcnJvcnMgPSBPYmplY3QuYXNzaWduKHt9LCBwcmV2KTtcbiAgICAgICAgICAgICAgICBkZWxldGUgbmV3RXJyb3JzW25hbWVdO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXdFcnJvcnM7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkRXJyb3IgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBlcnJvcikgPT4ge1xuICAgICAgICBzZXRFcnJvcnMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmICghcHJldltuYW1lXSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RXJyb3JzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJldik7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld0Vycm9yc1tuYW1lXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3RXJyb3JzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIHsgW25hbWVdOiBlcnJvciB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVnaXN0ZXJGaWVsZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHJ1bGVzKSA9PiB7XG4gICAgICAgIHNldEZpZWxkUnVsZXMoKHByZXYpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXYpLCB7IFtuYW1lXTogcnVsZXMgfSkpKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRGaWVsZFJ1bGVzID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICByZXR1cm4gZmllbGRSdWxlc1tuYW1lXTtcbiAgICB9KTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHNldEZpZWxkUnVsZXMoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1J1bGVzID0gT2JqZWN0LmFzc2lnbih7fSwgcHJldik7XG4gICAgICAgICAgICBkZWxldGUgbmV3UnVsZXNbbmFtZV07XG4gICAgICAgICAgICByZXR1cm4gbmV3UnVsZXM7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHZhbGlkYXRlRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBydWxlcyA9IFtdLCBwcm92aWRlZFZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcHJvdmlkZWRWYWx1ZSAhPT0gdW5kZWZpbmVkID8gcHJvdmlkZWRWYWx1ZSA6IHJlc29sdmVWYWx1ZSh2YWx1ZXMsIG5hbWUpO1xuICAgICAgICBjb25zdCBlcnJvciA9IHJ1blJ1bGVzU3luYyhuYW1lLCB2YWx1ZSwgdmFsdWVzLCBydWxlcyk7XG4gICAgICAgIGlmIChlcnJvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBlcnJvcik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVycm9yc1tuYW1lXSkge1xuICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBjb25zdCB2YWxpZGF0ZUZpZWxkcyA9IHVzZU1lbW9pemVkRm4oKGZpZWxkc1J1bGVzVG9WYWxpZGF0ZSA9IGZpZWxkUnVsZXMpID0+IHtcbiAgICAgICAgbGV0IGlzVmFsaWQgPSB0cnVlO1xuICAgICAgICBPYmplY3Qua2V5cyhmaWVsZHNSdWxlc1RvVmFsaWRhdGUpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJ1bGVzID0gZmllbGRzUnVsZXNUb1ZhbGlkYXRlW25hbWVdO1xuICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZUZpZWxkKG5hbWUsIHJ1bGVzKSkge1xuICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpc1ZhbGlkO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdEludGVybmFsID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGxldCBoYXNFcnJvcnMgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgbmV3RXJyb3JzID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKGZpZWxkUnVsZXMpLmZvckVhY2goKGZpZWxkTmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSByZXNvbHZlVmFsdWUodmFsdWVzLCBmaWVsZE5hbWUpO1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBydW5SdWxlc1N5bmMoZmllbGROYW1lLCB2YWx1ZSwgdmFsdWVzLCBmaWVsZFJ1bGVzW2ZpZWxkTmFtZV0pO1xuICAgICAgICAgICAgaWYgKGVycm9yICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbmV3RXJyb3JzW2ZpZWxkTmFtZV0gPSBlcnJvcjtcbiAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc2V0RXJyb3JzKG5ld0Vycm9ycyk7XG4gICAgICAgIGlmICghaGFzRXJyb3JzKSB7XG4gICAgICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2godmFsdWVzKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHZhbHVlcyB9O1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgb25GaW5pc2hGYWlsZWQgPT09IG51bGwgfHwgb25GaW5pc2hGYWlsZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoRmFpbGVkKHsgdmFsdWVzLCBlcnJvcnM6IG5ld0Vycm9ycyB9KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcnM6IG5ld0Vycm9ycyB9O1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU3VibWl0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmV0dXJuIGhhbmRsZVN1Ym1pdEludGVybmFsKCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVzZXRGaWVsZHMgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgc2V0VmFsdWVzKGluaXRpYWxWYWx1ZXMpO1xuICAgICAgICBzZXRFcnJvcnMoe30pO1xuICAgICAgICBzZXRUb3VjaGVkKHt9KTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVzZXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICByZXNldEZpZWxkcygpO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldEZpZWxkVmFsdWUgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVmFsdWUodmFsdWVzLCBuYW1lKTtcbiAgICB9KTtcbiAgICBjb25zdCBnZXRGaWVsZHNWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkc1ZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmV3VmFsdWVzKSA9PiB7XG4gICAgICAgIHNldFZhbHVlcygocHJldikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlcyA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcHJldiksIG5ld1ZhbHVlcyk7XG4gICAgICAgICAgICBvblZhbHVlc0NoYW5nZSA9PT0gbnVsbCB8fCBvblZhbHVlc0NoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WYWx1ZXNDaGFuZ2UobmV3VmFsdWVzLCB1cGRhdGVkVmFsdWVzKTtcbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVkVmFsdWVzO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIHN1Ym1pdDogaGFuZGxlU3VibWl0SW50ZXJuYWwsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBnZXRGaWVsZFZhbHVlLFxuICAgICAgICBnZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgIH0pLCBbXG4gICAgICAgIGhhbmRsZVN1Ym1pdEludGVybmFsLFxuICAgICAgICByZXNldEZpZWxkcyxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkcyxcbiAgICBdKTtcbiAgICBjb25zdCBjb3JlQ29udGV4dFNoYXBlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICB2YWx1ZXMsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgdG91Y2hlZCxcbiAgICAgICAgZm9ybUluc3RhbmNlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBjb2xvbixcbiAgICAgICAgcmVxdWlyZWRNYXJrLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSksIFtcbiAgICAgICAgdmFsdWVzLFxuICAgICAgICBlcnJvcnMsXG4gICAgICAgIHRvdWNoZWQsXG4gICAgICAgIGZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcixcbiAgICAgICAgdmFsaWRhdGVGaWVsZCxcbiAgICAgICAgcmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgY29sb24sXG4gICAgICAgIHJlcXVpcmVkTWFyayxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgIF0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlcyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICB0b3VjaGVkLFxuICAgICAgICBmaWVsZFJ1bGVzLFxuICAgICAgICBnZXRGaWVsZFJ1bGVzLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yLFxuICAgICAgICBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGQsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGhhbmRsZVN1Ym1pdCxcbiAgICAgICAgaGFuZGxlUmVzZXQsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBmb3JtSW5zdGFuY2UsXG4gICAgICAgIGNvcmVDb250ZXh0U2hhcGUsXG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCB1c2VGb3JtQ29yZTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
284
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vY29yZS9ob29rcy91c2VGb3JtQ29yZS50cyIsImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL2hvb2tzL3VzZUZvcm1Db3JlLmpzIl0sIm5hbWVzIjpbIl9yZWFjdCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlTWVtb2l6ZWRGbiIsIl9wYXRoVXRpbHMiLCJfcnVuUnVsZXMiLCJfZm9ybVN0b3JlIiwidXNlRm9ybUNvcmUiLCJleHBvcnRzIiwiY29uZmlnIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX2NvbmZpZyRpbml0aWFsVmFsdWVzIiwiaW5pdGlhbFZhbHVlcyIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJvblZhbHVlc0NoYW5nZSIsIm9uUmVzZXQiLCJfY29uZmlnJHNpemUiLCJzaXplIiwiX2NvbmZpZyRsYWJlbEFsaWduIiwibGFiZWxBbGlnbiIsIl9jb25maWckZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9jb25maWckY29sb24iLCJjb2xvbiIsIl9jb25maWckcmVxdWlyZWRNYXJrIiwicmVxdWlyZWRNYXJrIiwiX2NvbmZpZyR2YWxpZGF0ZVRyaWdnIiwidmFsaWRhdGVUcmlnZ2VyIiwiaW5pdGlhbFZhbHVlc1JlZiIsInVzZVJlZiIsImN1cnJlbnQiLCJtb3VudEluaXRpYWxWYWx1ZXMiLCJzdG9yZVJlZiIsImNyZWF0ZUZvcm1TdG9yZSIsInN0b3JlIiwiZmllbGRSdWxlc1JlZiIsImNvbW1pdFZhbHVlcyIsInVzZU1lbW9pemVkRm4iLCJuZXdWYWx1ZXMiLCJzZXRTdGF0ZSIsInZhbHVlcyIsInNldEZpZWxkVmFsdWUiLCJuYW1lIiwidmFsdWUiLCJwcmV2IiwiZ2V0U3RhdGUiLCJpbmNsdWRlcyIsInNldE5lc3RlZFZhbHVlIiwiT2JqZWN0IiwiYXNzaWduIiwiX2RlZmluZVByb3BlcnR5MiIsImVycm9ycyIsIm5ld0Vycm9ycyIsInNldEZpZWxkRXJyb3IiLCJlcnJvciIsInNldEZpZWxkV2FybmluZyIsIndhcm5pbmciLCJ3YXJuaW5ncyIsIm5ld1dhcm5pbmdzIiwicmVnaXN0ZXJGaWVsZCIsInJ1bGVzIiwiZ2V0RmllbGRSdWxlcyIsInVucmVnaXN0ZXJGaWVsZCIsInZhbGlkYXRlRmllbGQiLCJwcm92aWRlZFZhbHVlIiwiY3VycmVudFZhbHVlcyIsInJlc29sdmVWYWx1ZSIsIl9ydW5SdWxlc1N5bmMiLCJydW5SdWxlc1N5bmMiLCJ2YWxpZGF0ZUZpZWxkcyIsImZpZWxkc1J1bGVzVG9WYWxpZGF0ZSIsImlzVmFsaWQiLCJrZXlzIiwiZm9yRWFjaCIsImhhbmRsZVN1Ym1pdEludGVybmFsIiwiY3VycmVudFJ1bGVzIiwiaGFzRXJyb3JzIiwiZmllbGROYW1lIiwiX3J1blJ1bGVzU3luYzIiLCJzdWNjZXNzIiwiaGFuZGxlU3VibWl0IiwidXNlRXZlbnRDYWxsYmFjayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInJlc2V0RmllbGRzIiwidG91Y2hlZCIsInZhbGlkYXRpbmciLCJoYW5kbGVSZXNldCIsImdldEZpZWxkVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsInNldEZpZWxkc1ZhbHVlIiwidXBkYXRlZFZhbHVlcyIsImZvcm1JbnN0YW5jZSIsInVzZU1lbW8iLCJzdWJtaXQiLCJzdGF0ZSIsImNvcmVDb250ZXh0U2hhcGUiLCJmaWVsZFJ1bGVzIiwiZ2V0SW5pdGlhbFZhbHVlcyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxjQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxTQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxVQUFBLEdBQUFO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LEVBQWJBLGFBQWE7SUFDYkcsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZrQixZQUFZLEVBQVpBLFlBQVk7SUFDWk8sV0FBVyxFQUFYQSxXQUFXO0lBQ1hILFdBQVcsRUFBWEEsV0FBVztJQUNYUSxZQUFZLEVBQVpBLFlBQVk7SUFDWkksZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7SUFDaEI5RCxLQUFLLEVBQUxBLEtBQUs7SUFDTGdFLGdCQUFnQixFQUFFLFNBQWxCQSxnQkFBZ0JBLENBQUE7TUFBQSxPQUFRbkUsa0JBQWtCO0lBQUE7RUN6RDFDLENEMEREO0FBQ0gsQ0FBQztBQUFDLElBQUFvRSxRQUFBLEdBQUE5RixPQUFBLGNBRWFELFdBQVciLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvaG9va3MvdXNlRm9ybUNvcmUuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHsgcmVzb2x2ZVZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4uL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBydW5SdWxlc1N5bmMgfSBmcm9tICcuLi9ydW5SdWxlcyc7XG5pbXBvcnQgeyBjcmVhdGVGb3JtU3RvcmUgfSBmcm9tICcuLi9mb3JtU3RvcmUnO1xuZXhwb3J0IGNvbnN0IHVzZUZvcm1Db3JlID0gKGNvbmZpZyA9IHt9KSA9PiB7XG4gICAgY29uc3QgeyBpbml0aWFsVmFsdWVzID0ge30sIG9uRmluaXNoLCBvbkZpbmlzaEZhaWxlZCwgb25WYWx1ZXNDaGFuZ2UsIG9uUmVzZXQsIHNpemUgPSAnbGFyZ2UnLCBsYWJlbEFsaWduID0gJ2xlZnQnLCBkaXNhYmxlZCA9IGZhbHNlLCBjb2xvbiA9IHRydWUsIHJlcXVpcmVkTWFyayA9IHRydWUsIHZhbGlkYXRlVHJpZ2dlciA9ICdvbkNoYW5nZScsIH0gPSBjb25maWc7XG4gICAgLy8gaW5pdGlhbFZhbHVlcyBpcyBNT1VOVC1PTkxZICh0aGUgZG9jdW1lbnRlZCBjb250cmFjdCk6IGZyZWV6ZSB0aGUgZmlyc3RcbiAgICAvLyByZW5kZXIncyB2YWx1ZSBzbyByZXNldEZpZWxkcyBhbHdheXMgcmVzdG9yZXMgdGhlIG1vdW50LXRpbWUgZGVmYXVsdHMsXG4gICAgLy8gZXZlbiB3aGVuIHRoZSBjb25zdW1lciByZS1yZW5kZXJzIHdpdGggYSBkaWZmZXJlbnQgKGUuZy4gY29udHJvbGxlZClcbiAgICAvLyBpbml0aWFsVmFsdWVzIG9iamVjdC5cbiAgICBjb25zdCBpbml0aWFsVmFsdWVzUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGlmIChpbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgaW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID0gaW5pdGlhbFZhbHVlcztcbiAgICB9XG4gICAgY29uc3QgbW91bnRJbml0aWFsVmFsdWVzID0gaW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50O1xuICAgIC8vIEFsbCB2b2xhdGlsZSBmb3JtIHN0YXRlIGxpdmVzIGluIGFuIGV4dGVybmFsIHN0b3JlLCBOT1QgUmVhY3Qgc3RhdGUg4oCUIGFcbiAgICAvLyBrZXlzdHJva2UgbXVzdCBuZXZlciByZS1yZW5kZXIgdGhlIGNvbXBvbmVudCB0aGF0IG93bnMgdGhlIGZvcm0uIEZpZWxkc1xuICAgIC8vIGFuZCB3YXRjaGVycyBzdWJzY3JpYmUgd2l0aCBwZXItZmllbGQgc2VsZWN0b3JzICh1c2VTdG9yZVNlbGVjdG9yKTsgZXZlcnlcbiAgICAvLyBtdXRhdG9yIGJlbG93IHJlYWRzIHRoZSBMQVRFU1Qgc3RhdGUgdmlhIHN0b3JlLmdldFN0YXRlKCksIHdoaWNoIGFsc29cbiAgICAvLyBrZWVwcyBtdWx0aXBsZSB3cml0ZXMgaW4gdGhlIHNhbWUgdGljayB2aXNpYmxlIHRvIGVhY2ggb3RoZXIuXG4gICAgY29uc3Qgc3RvcmVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgaWYgKHN0b3JlUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgc3RvcmVSZWYuY3VycmVudCA9IGNyZWF0ZUZvcm1TdG9yZShtb3VudEluaXRpYWxWYWx1ZXMpO1xuICAgIH1cbiAgICBjb25zdCBzdG9yZSA9IHN0b3JlUmVmLmN1cnJlbnQ7XG4gICAgLy8gTGl2ZSBydWxlIHJlZ2lzdHJ5IOKAlCBPTkUgc3RhYmxlIG9iamVjdCBtdXRhdGVkIGluIHBsYWNlLiBSZWdpc3RyYXRpb24gbXVzdFxuICAgIC8vIG5vdCB0cmlnZ2VyIHJlbmRlcnMsIGFuZCBzdWJtaXQtdGltZSB2YWxpZGF0aW9uIG11c3QgYWx3YXlzIHJlYWQgdGhlIGxhdGVzdFxuICAgIC8vIHJ1bGVzICh0aGV5IGNhbiBjaGFuZ2UgYmV0d2VlbiByZW5kZXJzLCBlLmcuIGEgY29uZGl0aW9uYWwgYHJlcXVpcmVkYCkuXG4gICAgY29uc3QgZmllbGRSdWxlc1JlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgY29tbWl0VmFsdWVzID0gdXNlTWVtb2l6ZWRGbigobmV3VmFsdWVzKSA9PiB7XG4gICAgICAgIHN0b3JlLnNldFN0YXRlKHsgdmFsdWVzOiBuZXdWYWx1ZXMgfSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmllbGRWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHByZXYgPSBzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcztcbiAgICAgICAgY29uc3QgbmV3VmFsdWVzID0gbmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICA/IHNldE5lc3RlZFZhbHVlKHByZXYsIG5hbWUsIHZhbHVlKVxuICAgICAgICAgICAgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHByZXYpLCB7IFtuYW1lXTogdmFsdWUgfSk7XG4gICAgICAgIGNvbW1pdFZhbHVlcyhuZXdWYWx1ZXMpO1xuICAgICAgICBvblZhbHVlc0NoYW5nZSA9PT0gbnVsbCB8fCBvblZhbHVlc0NoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WYWx1ZXNDaGFuZ2UoeyBbbmFtZV06IHZhbHVlIH0sIG5ld1ZhbHVlcyk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JzID0gc3RvcmUuZ2V0U3RhdGUoKS5lcnJvcnM7XG4gICAgICAgICAgICBpZiAoZXJyb3JzW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RXJyb3JzID0gT2JqZWN0LmFzc2lnbih7fSwgZXJyb3JzKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgbmV3RXJyb3JzW25hbWVdO1xuICAgICAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHsgZXJyb3JzOiBuZXdFcnJvcnMgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBzZXRGaWVsZEVycm9yID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZXJyb3IpID0+IHtcbiAgICAgICAgY29uc3QgZXJyb3JzID0gc3RvcmUuZ2V0U3RhdGUoKS5lcnJvcnM7XG4gICAgICAgIGlmIChlcnJvciA9PT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKCFlcnJvcnNbbmFtZV0pXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgbmV3RXJyb3JzID0gT2JqZWN0LmFzc2lnbih7fSwgZXJyb3JzKTtcbiAgICAgICAgICAgIGRlbGV0ZSBuZXdFcnJvcnNbbmFtZV07XG4gICAgICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IGVycm9yczogbmV3RXJyb3JzIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlcnJvcnNbbmFtZV0gPT09IGVycm9yKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IGVycm9yczogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBlcnJvcnMpLCB7IFtuYW1lXTogZXJyb3IgfSkgfSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmllbGRXYXJuaW5nID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgd2FybmluZykgPT4ge1xuICAgICAgICBjb25zdCB3YXJuaW5ncyA9IHN0b3JlLmdldFN0YXRlKCkud2FybmluZ3M7XG4gICAgICAgIGlmICh3YXJuaW5nID09PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoIXdhcm5pbmdzW25hbWVdKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IG5ld1dhcm5pbmdzID0gT2JqZWN0LmFzc2lnbih7fSwgd2FybmluZ3MpO1xuICAgICAgICAgICAgZGVsZXRlIG5ld1dhcm5pbmdzW25hbWVdO1xuICAgICAgICAgICAgc3RvcmUuc2V0U3RhdGUoeyB3YXJuaW5nczogbmV3V2FybmluZ3MgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdhcm5pbmdzW25hbWVdID09PSB3YXJuaW5nKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHdhcm5pbmdzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHdhcm5pbmdzKSwgeyBbbmFtZV06IHdhcm5pbmcgfSkgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVnaXN0ZXJGaWVsZCA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHJ1bGVzKSA9PiB7XG4gICAgICAgIGZpZWxkUnVsZXNSZWYuY3VycmVudFtuYW1lXSA9IHJ1bGVzO1xuICAgIH0pO1xuICAgIGNvbnN0IGdldEZpZWxkUnVsZXMgPSB1c2VNZW1vaXplZEZuKChuYW1lKSA9PiB7XG4gICAgICAgIHJldHVybiBmaWVsZFJ1bGVzUmVmLmN1cnJlbnRbbmFtZV07XG4gICAgfSk7XG4gICAgY29uc3QgdW5yZWdpc3RlckZpZWxkID0gdXNlTWVtb2l6ZWRGbigobmFtZSkgPT4ge1xuICAgICAgICBkZWxldGUgZmllbGRSdWxlc1JlZi5jdXJyZW50W25hbWVdO1xuICAgIH0pO1xuICAgIGNvbnN0IHZhbGlkYXRlRmllbGQgPSB1c2VNZW1vaXplZEZuKChuYW1lLCBydWxlcyA9IFtdLCBwcm92aWRlZFZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcztcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwcm92aWRlZFZhbHVlICE9PSB1bmRlZmluZWQgPyBwcm92aWRlZFZhbHVlIDogcmVzb2x2ZVZhbHVlKGN1cnJlbnRWYWx1ZXMsIG5hbWUpO1xuICAgICAgICBjb25zdCB7IGVycm9yLCB3YXJuaW5nIH0gPSBydW5SdWxlc1N5bmMobmFtZSwgdmFsdWUsIGN1cnJlbnRWYWx1ZXMsIHJ1bGVzKTtcbiAgICAgICAgc2V0RmllbGRXYXJuaW5nKG5hbWUsIHdhcm5pbmcpO1xuICAgICAgICBpZiAoZXJyb3IgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHNldEZpZWxkRXJyb3IobmFtZSwgZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdG9yZS5nZXRTdGF0ZSgpLmVycm9yc1tuYW1lXSkge1xuICAgICAgICAgICAgc2V0RmllbGRFcnJvcihuYW1lLCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBjb25zdCB2YWxpZGF0ZUZpZWxkcyA9IHVzZU1lbW9pemVkRm4oKGZpZWxkc1J1bGVzVG9WYWxpZGF0ZSA9IGZpZWxkUnVsZXNSZWYuY3VycmVudCkgPT4ge1xuICAgICAgICBsZXQgaXNWYWxpZCA9IHRydWU7XG4gICAgICAgIE9iamVjdC5rZXlzKGZpZWxkc1J1bGVzVG9WYWxpZGF0ZSkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcnVsZXMgPSBmaWVsZHNSdWxlc1RvVmFsaWRhdGVbbmFtZV07XG4gICAgICAgICAgICBpZiAoIXZhbGlkYXRlRmllbGQobmFtZSwgcnVsZXMpKSB7XG4gICAgICAgICAgICAgICAgaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQ7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU3VibWl0SW50ZXJuYWwgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlcyA9IHN0b3JlLmdldFN0YXRlKCkudmFsdWVzO1xuICAgICAgICBjb25zdCBjdXJyZW50UnVsZXMgPSBmaWVsZFJ1bGVzUmVmLmN1cnJlbnQ7XG4gICAgICAgIGxldCBoYXNFcnJvcnMgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgbmV3RXJyb3JzID0ge307XG4gICAgICAgIGNvbnN0IG5ld1dhcm5pbmdzID0ge307XG4gICAgICAgIE9iamVjdC5rZXlzKGN1cnJlbnRSdWxlcykuZm9yRWFjaCgoZmllbGROYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVWYWx1ZShjdXJyZW50VmFsdWVzLCBmaWVsZE5hbWUpO1xuICAgICAgICAgICAgY29uc3QgeyBlcnJvciwgd2FybmluZyB9ID0gcnVuUnVsZXNTeW5jKGZpZWxkTmFtZSwgdmFsdWUsIGN1cnJlbnRWYWx1ZXMsIGN1cnJlbnRSdWxlc1tmaWVsZE5hbWVdKTtcbiAgICAgICAgICAgIGlmIChlcnJvciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIG5ld0Vycm9yc1tmaWVsZE5hbWVdID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh3YXJuaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgbmV3V2FybmluZ3NbZmllbGROYW1lXSA9IHdhcm5pbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IGVycm9yczogbmV3RXJyb3JzLCB3YXJuaW5nczogbmV3V2FybmluZ3MgfSk7XG4gICAgICAgIGlmICghaGFzRXJyb3JzKSB7XG4gICAgICAgICAgICBvbkZpbmlzaCA9PT0gbnVsbCB8fCBvbkZpbmlzaCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2goY3VycmVudFZhbHVlcyk7XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCB2YWx1ZXM6IGN1cnJlbnRWYWx1ZXMgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIG9uRmluaXNoRmFpbGVkID09PSBudWxsIHx8IG9uRmluaXNoRmFpbGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZpbmlzaEZhaWxlZCh7IHZhbHVlczogY3VycmVudFZhbHVlcywgZXJyb3JzOiBuZXdFcnJvcnMgfSk7XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3JzOiBuZXdFcnJvcnMgfTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IHVzZUV2ZW50Q2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHJldHVybiBoYW5kbGVTdWJtaXRJbnRlcm5hbCgpO1xuICAgIH0pO1xuICAgIC8vIFB1cmUgc3RhdGUgQVBJOiB0aGUgaW1wZXJhdGl2ZSByZXNldEZpZWxkcygpXG4gICAgLy8gbmV2ZXIgZmlyZXMgb25SZXNldC4gVGhlIGNhbGxiYWNrIGJlbG9uZ3MgdG8gdGhlIHJlc2V0IEFDVElPTiBsYXllclxuICAgIC8vIChzdWJtaXR0ZXIgYnV0dG9uIC8gbmF0aXZlIHJlc2V0IGV2ZW50KSwgd2hpY2ggZmlyZXMgaXQgZXhhY3RseSBvbmNlLlxuICAgIGNvbnN0IHJlc2V0RmllbGRzID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHN0b3JlLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHZhbHVlczogbW91bnRJbml0aWFsVmFsdWVzLFxuICAgICAgICAgICAgZXJyb3JzOiB7fSxcbiAgICAgICAgICAgIHdhcm5pbmdzOiB7fSxcbiAgICAgICAgICAgIHRvdWNoZWQ6IHt9LFxuICAgICAgICAgICAgdmFsaWRhdGluZzoge30sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgcmVzZXRGaWVsZHMoKTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0RmllbGRWYWx1ZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVWYWx1ZShzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcywgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZ2V0RmllbGRzVmFsdWUgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHN0b3JlLmdldFN0YXRlKCkudmFsdWVzO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZpZWxkc1ZhbHVlID0gdXNlTWVtb2l6ZWRGbigobmV3VmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRWYWx1ZXMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHN0b3JlLmdldFN0YXRlKCkudmFsdWVzKSwgbmV3VmFsdWVzKTtcbiAgICAgICAgY29tbWl0VmFsdWVzKHVwZGF0ZWRWYWx1ZXMpO1xuICAgICAgICBvblZhbHVlc0NoYW5nZSA9PT0gbnVsbCB8fCBvblZhbHVlc0NoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25WYWx1ZXNDaGFuZ2UobmV3VmFsdWVzLCB1cGRhdGVkVmFsdWVzKTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+ICh7XG4gICAgICAgIHN1Ym1pdDogaGFuZGxlU3VibWl0SW50ZXJuYWwsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBnZXRGaWVsZFZhbHVlLFxuICAgICAgICBnZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgIH0pLCBbXG4gICAgICAgIGhhbmRsZVN1Ym1pdEludGVybmFsLFxuICAgICAgICByZXNldEZpZWxkcyxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHNldEZpZWxkc1ZhbHVlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkcyxcbiAgICBdKTtcbiAgICAvLyBSZW5kZXItdGltZSBzbmFwc2hvdCDigJQga2VwdCBmb3IgdGhlIFVzZUZvcm1Db3JlUmV0dXJuIGNvbnRyYWN0LiBSZWFjdGl2ZVxuICAgIC8vIGNvbnN1bWVycyBtdXN0IGdvIHRocm91Z2ggdGhlIHN0b3JlLCBuZXZlciB0aHJvdWdoIHRoZXNlIGZpZWxkcy5cbiAgICBjb25zdCBzdGF0ZSA9IHN0b3JlLmdldFN0YXRlKCk7XG4gICAgY29uc3QgY29yZUNvbnRleHRTaGFwZSA9IHtcbiAgICAgICAgdmFsdWVzOiBzdGF0ZS52YWx1ZXMsXG4gICAgICAgIGVycm9yczogc3RhdGUuZXJyb3JzLFxuICAgICAgICB3YXJuaW5nczogc3RhdGUud2FybmluZ3MsXG4gICAgICAgIHRvdWNoZWQ6IHN0YXRlLnRvdWNoZWQsXG4gICAgICAgIGZvcm1JbnN0YW5jZSxcbiAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcixcbiAgICAgICAgc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBjb2xvbixcbiAgICAgICAgcmVxdWlyZWRNYXJrLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZXM6IHN0YXRlLnZhbHVlcyxcbiAgICAgICAgZXJyb3JzOiBzdGF0ZS5lcnJvcnMsXG4gICAgICAgIHdhcm5pbmdzOiBzdGF0ZS53YXJuaW5ncyxcbiAgICAgICAgdG91Y2hlZDogc3RhdGUudG91Y2hlZCxcbiAgICAgICAgLy8gTGl2ZSByZWdpc3RyeSDigJQgc3RhYmxlIGlkZW50aXR5LCBtdXRhdGVkIGluIHBsYWNlIGJ5IHJlZ2lzdGVyL3VucmVnaXN0ZXIuXG4gICAgICAgIGZpZWxkUnVsZXM6IGZpZWxkUnVsZXNSZWYuY3VycmVudCxcbiAgICAgICAgZ2V0RmllbGRSdWxlcyxcbiAgICAgICAgc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcixcbiAgICAgICAgc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICBzZXRGaWVsZHNWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRWYWx1ZSxcbiAgICAgICAgZ2V0RmllbGRzVmFsdWUsXG4gICAgICAgIHZhbGlkYXRlRmllbGQsXG4gICAgICAgIHZhbGlkYXRlRmllbGRzLFxuICAgICAgICByZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGhhbmRsZVN1Ym1pdCxcbiAgICAgICAgaGFuZGxlUmVzZXQsXG4gICAgICAgIHJlc2V0RmllbGRzLFxuICAgICAgICBmb3JtSW5zdGFuY2UsXG4gICAgICAgIGNvcmVDb250ZXh0U2hhcGUsXG4gICAgICAgIHN0b3JlLFxuICAgICAgICBnZXRJbml0aWFsVmFsdWVzOiAoKSA9PiBtb3VudEluaXRpYWxWYWx1ZXMsXG4gICAgfTtcbn07XG5leHBvcnQgZGVmYXVsdCB1c2VGb3JtQ29yZTsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -3,13 +3,23 @@ import type { FC, ReactNode } from 'react';
|
|
|
3
3
|
import type { FormSize, FormLayout, LabelAlign, ValidateStatus, ValidateTrigger } from './constants';
|
|
4
4
|
export type { FormSize, FormLayout, LabelAlign, ValidateStatus, ValidateTrigger, };
|
|
5
5
|
export interface Rule {
|
|
6
|
+
/** Fails on undefined / null / '' / empty array */
|
|
6
7
|
required?: boolean;
|
|
7
8
|
message?: string;
|
|
9
|
+
/** For strings: min length; arrays: min item count; numbers: min value */
|
|
8
10
|
min?: number;
|
|
11
|
+
/** For strings: max length; arrays: max item count; numbers: max value */
|
|
9
12
|
max?: number;
|
|
10
13
|
pattern?: RegExp;
|
|
11
14
|
type?: 'number' | 'email' | 'url';
|
|
12
15
|
enum?: unknown[];
|
|
16
|
+
/** A failing rule produces a non-blocking warning instead of an error */
|
|
17
|
+
warningOnly?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Run this rule only on the given interactive trigger(s); rules without it
|
|
20
|
+
* follow the form-level validateTrigger. Submit always runs every rule.
|
|
21
|
+
*/
|
|
22
|
+
validateTrigger?: ValidateTrigger | ValidateTrigger[];
|
|
13
23
|
validator?: (value: unknown, values: Record<string, unknown>) => boolean | string | Promise<boolean | string>;
|
|
14
24
|
}
|
|
15
25
|
export interface FieldProps {
|
|
@@ -43,19 +53,24 @@ export interface FormCoreInstance {
|
|
|
43
53
|
setFieldValue: (name: string, value: unknown) => void;
|
|
44
54
|
validateFields: (fieldsRules?: Record<string, Rule[]>) => boolean;
|
|
45
55
|
}
|
|
46
|
-
/**
|
|
47
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Full form instance returned by useForm — extends FormCoreInstance with async
|
|
58
|
+
* validation, field helpers, etc. `Values` types the whole-form value shape
|
|
59
|
+
* (defaults to an open record for backward compatibility).
|
|
60
|
+
*/
|
|
61
|
+
export interface FormInstance<Values = Record<string, unknown>> {
|
|
48
62
|
getFieldValue: (name: string) => unknown;
|
|
49
|
-
getFieldsValue: (nameList?: string[]) =>
|
|
63
|
+
getFieldsValue: (nameList?: string[]) => Values;
|
|
50
64
|
setFieldValue: (name: string, value: unknown) => void;
|
|
51
|
-
setFieldsValue: (values:
|
|
65
|
+
setFieldsValue: (values: Partial<Values>) => void;
|
|
52
66
|
setFieldError: (name: string, error: string | null) => void;
|
|
53
67
|
setFieldsError: (errors: Record<string, string>) => void;
|
|
54
68
|
resetFields: (fields?: string[]) => void;
|
|
55
|
-
validateFields: (nameList?: string[]) => Promise<
|
|
56
|
-
submit: (callback?: (values:
|
|
69
|
+
validateFields: (nameList?: string[]) => Promise<Values>;
|
|
70
|
+
submit: (callback?: (values: Values) => void | Promise<void>) => Promise<Values | undefined>;
|
|
57
71
|
getFieldError: (name: string) => string | undefined;
|
|
58
72
|
getFieldsError: (nameList?: string[]) => Record<string, string>;
|
|
73
|
+
getFieldWarning: (name: string) => string | undefined;
|
|
59
74
|
isFieldTouched: (name: string) => boolean;
|
|
60
75
|
isFieldsTouched: (nameList?: string[], allTouched?: boolean) => boolean;
|
|
61
76
|
isFieldValidating: (name: string) => boolean;
|
|
@@ -70,14 +85,14 @@ export interface UseFormOptions {
|
|
|
70
85
|
validateTrigger?: ValidateTrigger;
|
|
71
86
|
rules?: Record<string, Rule[]>;
|
|
72
87
|
}
|
|
73
|
-
export interface UseFormCoreConfig {
|
|
74
|
-
initialValues?:
|
|
75
|
-
onFinish?: (values:
|
|
88
|
+
export interface UseFormCoreConfig<Values = Record<string, unknown>> {
|
|
89
|
+
initialValues?: Partial<Values>;
|
|
90
|
+
onFinish?: (values: Values) => void;
|
|
76
91
|
onFinishFailed?: (errorInfo: {
|
|
77
|
-
values:
|
|
92
|
+
values: Values;
|
|
78
93
|
errors: Record<string, string>;
|
|
79
94
|
}) => void;
|
|
80
|
-
onValuesChange?: (changedValues:
|
|
95
|
+
onValuesChange?: (changedValues: Partial<Values>, allValues: Values) => void;
|
|
81
96
|
onReset?: () => void;
|
|
82
97
|
size?: FormSize;
|
|
83
98
|
labelAlign?: LabelAlign;
|
|
@@ -90,10 +105,12 @@ export interface UseFormCoreConfig {
|
|
|
90
105
|
export interface FormCoreContextShape {
|
|
91
106
|
values: Record<string, unknown>;
|
|
92
107
|
errors: Record<string, string>;
|
|
108
|
+
warnings: Record<string, string>;
|
|
93
109
|
touched: Record<string, boolean>;
|
|
94
110
|
formInstance: FormCoreInstance;
|
|
95
111
|
setFieldValue: (name: string, value: unknown) => void;
|
|
96
112
|
setFieldError: (name: string, error: string | null) => void;
|
|
113
|
+
setFieldWarning: (name: string, warning: string | null) => void;
|
|
97
114
|
validateField: (name: string, rules: Rule[], providedValue?: unknown) => boolean;
|
|
98
115
|
registerField: (name: string, rules: Rule[]) => void;
|
|
99
116
|
unregisterField: (name: string) => void;
|
|
@@ -105,16 +122,18 @@ export interface FormCoreContextShape {
|
|
|
105
122
|
validateTrigger: ValidateTrigger;
|
|
106
123
|
}
|
|
107
124
|
/** Config for useForm — accepts all UseFormCoreConfig fields */
|
|
108
|
-
export type UseFormConfig = UseFormCoreConfig
|
|
125
|
+
export type UseFormConfig<Values = Record<string, unknown>> = UseFormCoreConfig<Values>;
|
|
109
126
|
/** Internal state exposed by useForm for ProForm integration */
|
|
110
127
|
export interface UseFormInternals {
|
|
111
128
|
values: Record<string, unknown>;
|
|
112
129
|
errors: Record<string, string>;
|
|
130
|
+
warnings: Record<string, string>;
|
|
113
131
|
touched: Record<string, boolean>;
|
|
114
132
|
validating: Record<string, boolean>;
|
|
115
133
|
fieldRules: Record<string, Rule[]>;
|
|
116
134
|
setFieldValue: (name: string, value: unknown) => void;
|
|
117
135
|
setFieldError: (name: string, error: string | null) => void;
|
|
136
|
+
setFieldWarning: (name: string, warning: string | null) => void;
|
|
118
137
|
validateField: (name: string, rules: Rule[], providedValue?: unknown) => boolean;
|
|
119
138
|
validateFieldAsync: (name: string, value: unknown, rules: Rule[]) => Promise<{
|
|
120
139
|
isValid: boolean;
|
|
@@ -133,11 +152,13 @@ export interface UseFormReturn {
|
|
|
133
152
|
export interface UseFormCoreReturn {
|
|
134
153
|
values: Record<string, unknown>;
|
|
135
154
|
errors: Record<string, string>;
|
|
155
|
+
warnings: Record<string, string>;
|
|
136
156
|
touched: Record<string, boolean>;
|
|
137
157
|
fieldRules: Record<string, Rule[]>;
|
|
138
158
|
getFieldRules: (name: string) => Rule[] | undefined;
|
|
139
159
|
setFieldValue: (name: string, value: unknown) => void;
|
|
140
160
|
setFieldError: (name: string, error: string | null) => void;
|
|
161
|
+
setFieldWarning: (name: string, warning: string | null) => void;
|
|
141
162
|
setFieldsValue: (values: Record<string, unknown>) => void;
|
|
142
163
|
getFieldValue: (name: string) => unknown;
|
|
143
164
|
getFieldsValue: () => Record<string, unknown>;
|
|
@@ -1,13 +1,25 @@
|
|
|
1
|
-
import type { Rule } from './interface';
|
|
1
|
+
import type { Rule, ValidateTrigger } from './interface';
|
|
2
|
+
export interface RuleRunResult {
|
|
3
|
+
error: string | null;
|
|
4
|
+
warning: string | null;
|
|
5
|
+
}
|
|
2
6
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
7
|
+
* Filter rules applicable to an interactive trigger. A rule WITHOUT an
|
|
8
|
+
* explicit `validateTrigger` follows the form-level trigger; a rule WITH one
|
|
9
|
+
* runs on exactly those trigger(s), regardless of the form-level setting.
|
|
10
|
+
* Submit-time validation bypasses this filter and runs every rule.
|
|
6
11
|
*/
|
|
7
|
-
export declare function
|
|
12
|
+
export declare function filterRulesByTrigger(rules: Rule[], trigger: ValidateTrigger, formTrigger: ValidateTrigger): Rule[];
|
|
13
|
+
/**
|
|
14
|
+
* Synchronous rule run. A Promise-returning validator CANNOT be evaluated
|
|
15
|
+
* here — it is deferred (treated as passing for this run; its rejection is
|
|
16
|
+
* swallowed) and left to the async runs (blur/submit), which always await it.
|
|
17
|
+
* Failing it instead would mis-report "Validation failed" on every keystroke
|
|
18
|
+
* for perfectly valid input.
|
|
19
|
+
*/
|
|
20
|
+
export declare function runRulesSync(name: string, value: unknown, values: Record<string, unknown>, rules: Rule[]): RuleRunResult;
|
|
8
21
|
/**
|
|
9
22
|
* Asynchronous rule run. Custom validators are awaited (sync or async). A
|
|
10
|
-
* validator returning `undefined` is treated as passing.
|
|
11
|
-
* error message, or null.
|
|
23
|
+
* validator returning `undefined` is treated as passing.
|
|
12
24
|
*/
|
|
13
|
-
export declare function runRulesAsync(name: string, value: unknown, values: Record<string, unknown>, rules: Rule[]): Promise<
|
|
25
|
+
export declare function runRulesAsync(name: string, value: unknown, values: Record<string, unknown>, rules: Rule[]): Promise<RuleRunResult>;
|