@hi-ui/form 4.0.0-alpha.1 → 4.0.0-alpha.6

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.
Files changed (55) hide show
  1. package/lib/cjs/Form.js +26 -6
  2. package/lib/cjs/Form.js.map +1 -1
  3. package/lib/cjs/FormItem.js +29 -5
  4. package/lib/cjs/FormItem.js.map +1 -1
  5. package/lib/cjs/FormLabel.js +1 -1
  6. package/lib/cjs/FormLabel.js.map +1 -1
  7. package/lib/cjs/FormList.js +2 -2
  8. package/lib/cjs/FormList.js.map +1 -1
  9. package/lib/cjs/FormMessage.js +3 -3
  10. package/lib/cjs/FormMessage.js.map +1 -1
  11. package/lib/cjs/FormReset.js +76 -0
  12. package/lib/cjs/FormReset.js.map +1 -0
  13. package/lib/cjs/FormSubmit.js +87 -0
  14. package/lib/cjs/FormSubmit.js.map +1 -0
  15. package/lib/cjs/index.js +6 -0
  16. package/lib/cjs/index.js.map +1 -1
  17. package/lib/cjs/styles/index.scss.js +1 -1
  18. package/lib/cjs/use-form-field.js +14 -32
  19. package/lib/cjs/use-form-field.js.map +1 -1
  20. package/lib/cjs/use-form.js +130 -57
  21. package/lib/cjs/use-form.js.map +1 -1
  22. package/lib/cjs/utils/index.js +26 -0
  23. package/lib/cjs/utils/index.js.map +1 -0
  24. package/lib/esm/Form.js +26 -6
  25. package/lib/esm/Form.js.map +1 -1
  26. package/lib/esm/FormItem.js +27 -5
  27. package/lib/esm/FormItem.js.map +1 -1
  28. package/lib/esm/FormLabel.js +1 -1
  29. package/lib/esm/FormLabel.js.map +1 -1
  30. package/lib/esm/FormList.js +2 -2
  31. package/lib/esm/FormList.js.map +1 -1
  32. package/lib/esm/FormMessage.js +3 -3
  33. package/lib/esm/FormMessage.js.map +1 -1
  34. package/lib/esm/FormReset.js +52 -0
  35. package/lib/esm/FormReset.js.map +1 -0
  36. package/lib/esm/FormSubmit.js +63 -0
  37. package/lib/esm/FormSubmit.js.map +1 -0
  38. package/lib/esm/index.js +2 -0
  39. package/lib/esm/index.js.map +1 -1
  40. package/lib/esm/styles/index.scss.js +1 -1
  41. package/lib/esm/use-form-field.js +15 -33
  42. package/lib/esm/use-form-field.js.map +1 -1
  43. package/lib/esm/use-form.js +131 -59
  44. package/lib/esm/use-form.js.map +1 -1
  45. package/lib/esm/utils/index.js +19 -0
  46. package/lib/esm/utils/index.js.map +1 -0
  47. package/lib/types/FormReset.d.ts +2 -1
  48. package/lib/types/FormSubmit.d.ts +3 -2
  49. package/lib/types/context.d.ts +30 -16
  50. package/lib/types/index.d.ts +2 -0
  51. package/lib/types/types.d.ts +34 -12
  52. package/lib/types/use-form-field.d.ts +9 -5
  53. package/lib/types/use-form.d.ts +15 -8
  54. package/lib/types/utils/index.d.ts +3 -0
  55. package/package.json +11 -11
@@ -9,10 +9,11 @@
9
9
  */
10
10
  import _regeneratorRuntime from '@babel/runtime/regenerator';
11
11
  import { __rest, __awaiter } from 'tslib';
12
+ import { stringify, parse } from './utils/index.js';
12
13
  import React, { useMemo, useReducer, useCallback, useRef } from 'react';
13
14
  import { useLatestRef, useLatestCallback } from '@hi-ui/use-latest';
14
- import { isArray, isFunction } from '@hi-ui/type-assertion';
15
- import { getNested, callAllFuncs, setNested } from '@hi-ui/func-utils';
15
+ import { isArray, isObjectLike, isFunction } from '@hi-ui/type-assertion';
16
+ import { getNested, setNested, callAllFuncs } from '@hi-ui/func-utils';
16
17
  import { stopEvent } from '@hi-ui/dom-utils';
17
18
  var EMPTY_RULES = {};
18
19
  var EMPTY_ERRORS = {};
@@ -31,7 +32,7 @@ var useForm = function useForm(_a) {
31
32
  _a$rules = _a.rules,
32
33
  rules = _a$rules === void 0 ? EMPTY_RULES : _a$rules,
33
34
  _a$validateAfterTouch = _a.validateAfterTouched,
34
- validateAfterTouched = _a$validateAfterTouch === void 0 ? true : _a$validateAfterTouch,
35
+ validateAfterTouched = _a$validateAfterTouch === void 0 ? false : _a$validateAfterTouch,
35
36
  _a$validateTrigger = _a.validateTrigger,
36
37
  validateTriggerProp = _a$validateTrigger === void 0 ? DEFAULT_VALIDATE_TRIGGER : _a$validateTrigger,
37
38
  rest = __rest(_a, ["initialValues", "initialErrors", "initialTouched", "lazyValidate", "onValuesChange", "onReset", "onSubmit", "rules", "validateAfterTouched", "validateTrigger"]);
@@ -52,7 +53,8 @@ var useForm = function useForm(_a) {
52
53
  var _useCollection = useCollection(),
53
54
  getValidation = _useCollection[0],
54
55
  registerField = _useCollection[1],
55
- unregisterField = _useCollection[2];
56
+ unregisterField = _useCollection[2],
57
+ getRegisteredKeys = _useCollection[3];
56
58
  /**
57
59
  * form 数据管理中心
58
60
  */
@@ -69,17 +71,21 @@ var useForm = function useForm(_a) {
69
71
  formDispatch = _useReducer[1]; // 使用 latest ref 维护,保证每次主动拿取的 formState 都是最新的
70
72
 
71
73
 
72
- var formStateRef = useLatestRef(formState); // @ts-ignore
73
-
74
- var getFieldNames = useCallback(function () {
75
- return Object.keys(formStateRef.current.values);
76
- }, [formStateRef]); // @ts-ignore
74
+ var formStateRef = useLatestRef(formState); // const getFieldNames = useCallback(() => Object.keys(formStateRef.current.values as any), [
75
+ // formStateRef,
76
+ // ])
77
77
 
78
78
  var getFieldValue = useCallback(function (fieldName) {
79
- return formStateRef.current.values[fieldName];
79
+ return getNested(formStateRef.current.values, fieldName);
80
+ }, [formStateRef]);
81
+ var getFieldsValue = useCallback(function () {
82
+ return formStateRef.current.values;
80
83
  }, [formStateRef]);
81
84
  var getFieldError = useCallback(function (fieldName) {
82
- return formStateRef.current.errors[fieldName];
85
+ return getNested(formStateRef.current.errors, fieldName);
86
+ }, [formStateRef]);
87
+ var getFieldsError = useCallback(function () {
88
+ return formStateRef.current.errors;
83
89
  }, [formStateRef]);
84
90
  var setFieldError = useCallback(function (field, errorMessage) {
85
91
  formDispatch({
@@ -131,25 +137,27 @@ var useForm = function useForm(_a) {
131
137
  payload: true
132
138
  });
133
139
  errorResultAsPromise = fieldValidation.validate(value);
134
- console.log('validate', errorResultAsPromise);
135
- errorResultAsPromise.then(function (result) {
136
- console.log('result', result);
140
+ return _context.abrupt("return", errorResultAsPromise.then(function (result) {
137
141
  formDispatch({
138
142
  type: 'SET_VALIDATING',
139
143
  payload: false
140
144
  });
141
145
  setFieldError(field, '');
142
- })["catch"](function (errorMsg) {
143
- // @ts-ignore
144
- setFieldError(field, errorMsg.fields[field][0].message);
145
- })["finally"](function () {
146
+ return setNested({}, field, value);
147
+ }, function (errorMsg) {
146
148
  formDispatch({
147
149
  type: 'SET_VALIDATING',
148
150
  payload: false
149
- });
150
- });
151
+ }); // @ts-ignore
152
+ // @ts-ignore
153
+
154
+ setFieldError(field, errorMsg.fields[field][0].message); // TODO: 回调和promise支持
155
+ // TODO: 回调和promise支持
156
+
157
+ throw errorMsg;
158
+ }));
151
159
 
152
- case 7:
160
+ case 6:
153
161
  case "end":
154
162
  return _context.stop();
155
163
  }
@@ -170,11 +178,12 @@ var useForm = function useForm(_a) {
170
178
  */
171
179
 
172
180
  var validateAll = useCallback(function () {
173
- var fieldNames = getFieldNames();
181
+ var fieldNames = getRegisteredKeys();
182
+ console.log('fieldNames', fieldNames);
174
183
  return Promise.all(fieldNames.map(function (fieldName) {
175
184
  return validateFieldState(fieldName);
176
185
  }));
177
- }, [getFieldNames, validateFieldState]);
186
+ }, [getRegisteredKeys, validateFieldState]);
178
187
  /**
179
188
  * 控件值更新策略
180
189
  */
@@ -187,26 +196,54 @@ var useForm = function useForm(_a) {
187
196
  field: field,
188
197
  value: value
189
198
  }
190
- });
191
- var shouldValidateField = shouldValidate !== null && shouldValidate !== void 0 ? shouldValidate : validateAfterTouched ? formState.touched[field] : true;
199
+ }); // touched 给外部控制展示,而不是当做参数暴露
200
+
201
+ var shouldValidateField = // shouldValidate ?? (validateAfterTouched ? getNested(formState.touched, field) : true)
202
+ validateAfterTouched ? getNested(formState.touched, field) && shouldValidate : shouldValidate;
192
203
 
193
204
  if (shouldValidateField) {
194
205
  validateField(field, value);
195
206
  }
196
207
  }, [validateField, validateAfterTouched, formState]);
197
- var normalizeValueFromChange = useCallback(function (eventOrValue) {
198
- // TODO: handle correct value
199
- return eventOrValue.target.value;
200
- }, []);
201
- var handleFieldChange = useCallback(function (fieldName, valueCollectPipe, shouldValidate) {
202
- return function (evt) {
203
- var _Object$assign; // TODO: 传递 onChange 其它参数
208
+ var setFieldsValue = useCallback(function (fields, shouldValidate) {
209
+ Object.entries(fields).forEach(function (_ref) {
210
+ var fieldName = _ref[0],
211
+ value = _ref[1];
212
+ setFieldValue(fieldName, value, shouldValidate);
213
+ });
214
+ }, [setFieldValue]);
215
+ var normalizeValueFromChange = useCallback(function (eventOrValue, valuePropName) {
216
+ var nextValue = eventOrValue;
204
217
 
218
+ if (isObjectLike(eventOrValue) && eventOrValue.target) {
219
+ var event = eventOrValue; // @see https://reactjs.org/docs/events.html#event-pooling
205
220
 
206
- var nextValue = isFunction(valueCollectPipe) ? valueCollectPipe(evt) : normalizeValueFromChange(evt);
207
- setFieldValue(fieldName, nextValue, shouldValidate); // @ts-ignore
221
+ if (isFunction(event.persist)) {
222
+ event.persist();
223
+ }
224
+
225
+ var target = event.target || event.currentTarget; // if (hasOwnProp(target, valuePropName)) {
226
+ // nextValue = target[valuePropName]
227
+ // }
228
+ // TODO: support all native html field
229
+
230
+ if (/checkbox/.test(target.type)) {
231
+ nextValue = target.checked;
232
+ } else {
233
+ nextValue = target.value;
234
+ }
235
+ }
208
236
 
209
- onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange(Object.assign(Object.assign({}, formState.values), (_Object$assign = {}, _Object$assign[fieldName] = nextValue, _Object$assign)), formState.values);
237
+ return nextValue;
238
+ }, []);
239
+ var handleFieldChange = useCallback(function (fieldName, valuePropName, valueCollectPipe, shouldValidate) {
240
+ return function (evt) {
241
+ // TODO: 传递 onChange 其它参数
242
+ var nextValue = isFunction(valueCollectPipe) ? valueCollectPipe(evt) : normalizeValueFromChange(evt, valuePropName);
243
+ setFieldValue(fieldName, nextValue, shouldValidate);
244
+ var changedValues = setNested({}, fieldName, nextValue);
245
+ var allValues = setNested(Object.assign({}, formState.values), fieldName, nextValue);
246
+ onValuesChange === null || onValuesChange === void 0 ? void 0 : onValuesChange(changedValues, allValues);
210
247
  };
211
248
  }, [setFieldValue, onValuesChange, formState.values, normalizeValueFromChange]);
212
249
  /**
@@ -304,7 +341,7 @@ var useForm = function useForm(_a) {
304
341
  });
305
342
  return _context3.abrupt("return", validateAll().then(function (combinedErrors) {
306
343
  var isInstanceOfError = combinedErrors instanceof Error;
307
- var isActuallyValid = !isInstanceOfError && Object.keys(combinedErrors).length === 0;
344
+ var isActuallyValid = !isInstanceOfError;
308
345
 
309
346
  if (isActuallyValid) {
310
347
  var promiseOrUndefined;
@@ -312,15 +349,31 @@ var useForm = function useForm(_a) {
312
349
  try {
313
350
  // @ts-ignore
314
351
  promiseOrUndefined = onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(formState.values);
315
- } catch (error) {// throw error
352
+ } catch (error) {
353
+ formDispatch({
354
+ type: 'SUBMIT_DONE'
355
+ });
356
+ throw error;
357
+ }
358
+
359
+ if (promiseOrUndefined === undefined) {
360
+ formDispatch({
361
+ type: 'SUBMIT_DONE'
362
+ }); // return combinedErrors
363
+ // return combinedErrors
364
+
365
+ return formState.values;
316
366
  }
317
367
 
318
- if (promiseOrUndefined === undefined) return;
319
368
  return Promise.resolve(promiseOrUndefined).then(function (result) {
320
369
  formDispatch({
321
370
  type: 'SUBMIT_DONE'
322
- });
323
- return result;
371
+ }); // return result
372
+ // TODO: 满足promise 如果既给到values 又给到 errors
373
+ // return result
374
+ // TODO: 满足promise 如果既给到values 又给到 errors
375
+
376
+ return formState.values;
324
377
  })["catch"](function (_errors) {
325
378
  formDispatch({
326
379
  type: 'SUBMIT_DONE'
@@ -336,6 +389,11 @@ var useForm = function useForm(_a) {
336
389
  throw combinedErrors;
337
390
  }
338
391
  }
392
+ }, function (error) {
393
+ formDispatch({
394
+ type: 'SUBMIT_DONE'
395
+ });
396
+ throw error;
339
397
  }));
340
398
 
341
399
  case 2:
@@ -348,14 +406,13 @@ var useForm = function useForm(_a) {
348
406
  }, [formState, onSubmit, validateAll]);
349
407
  var handleSubmit = useCallback(function (evt) {
350
408
  stopEvent(evt);
351
- submitForm()["catch"](console.error);
409
+ return submitForm();
352
410
  }, [submitForm]);
353
411
  var handleReset = useCallback(function (evt) {
354
412
  stopEvent(evt);
355
413
  resetForm();
356
414
  }, [resetForm]);
357
- useCallback(function () {}, []);
358
- useCallback(function () {
415
+ var resetErrors = useCallback(function () {
359
416
  formDispatch({
360
417
  // TODO: reset errorMsg
361
418
  type: 'SET_ERRORS',
@@ -398,27 +455,27 @@ var useForm = function useForm(_a) {
398
455
  onBlur = _props.onBlur;
399
456
  var validateTrigger = isArray(validateTriggerProp) ? validateTriggerProp : [validateTriggerProp];
400
457
  var validateOnCollect = validateTrigger.includes(valueCollectPropName);
401
- var validateOnBlur = validateTrigger.includes('onChange');
458
+ var validateOnBlur = validateTrigger.includes('onBlur');
402
459
  var returnProps = (_returnProps = {
403
460
  ref: ref
404
- }, _returnProps[valuePropName] = getNested(formState.values, field), _returnProps[valueCollectPropName] = callAllFuncs(props[valueCollectPropName], handleFieldChange(field, valueCollectPipe, validateOnCollect)), _returnProps.onBlur = callAllFuncs(onBlur, handleFieldBlur(field, validateOnBlur)), _returnProps.invalid = getFieldError(field), _returnProps);
405
- validateTrigger.filter(function (triggerName) {
406
- return [valueCollectPropName, 'onBlur'].indexOf(triggerName) === -1;
407
- }) // @ts-ignore
408
- .forEach(function (triggerName) {
409
- // @ts-ignore
410
- returnProps[triggerName] = callAllFuncs(props[triggerName], handleFieldTrigger(field));
461
+ }, _returnProps[valuePropName] = getNested(formState.values, field), _returnProps[valueCollectPropName] = callAllFuncs(props[valueCollectPropName], handleFieldChange(field, valuePropName, valueCollectPipe, validateOnCollect)), _returnProps.onBlur = callAllFuncs(onBlur, handleFieldBlur(field, validateOnBlur)), _returnProps.invalid = getFieldError(field), _returnProps);
462
+ validateTrigger.forEach(function (triggerName) {
463
+ if ([valueCollectPropName, 'onBlur'].indexOf(triggerName) === -1) {
464
+ // @ts-ignore
465
+ returnProps[triggerName] = callAllFuncs(props[triggerName], handleFieldTrigger(field));
466
+ }
411
467
  });
412
468
  return returnProps;
413
469
  }, [formState, handleFieldChange, handleFieldBlur, validateTriggersMemo, handleFieldTrigger, getFieldError]);
414
470
  var getFieldRules = useCallback(function (fieldName) {
415
- return rules[fieldName];
471
+ return getNested(rules, fieldName);
416
472
  }, [rules]);
417
473
  return Object.assign(Object.assign({}, formState), {
418
474
  setFormState: setFormState,
419
475
  setFieldValue: setFieldValue,
420
476
  setFieldError: setFieldError,
421
477
  setFieldTouched: setFieldTouched,
478
+ getFieldValue: getFieldValue,
422
479
  getFieldError: getFieldError,
423
480
  getFieldRules: getFieldRules,
424
481
  getRootProps: getRootProps,
@@ -426,7 +483,13 @@ var useForm = function useForm(_a) {
426
483
  registerField: registerField,
427
484
  unregisterField: unregisterField,
428
485
  submitForm: submitForm,
429
- resetForm: resetForm
486
+ resetForm: resetForm,
487
+ resetErrors: resetErrors,
488
+ validateFieldState: validateFieldState,
489
+ validateValue: validateField,
490
+ getFieldsValue: getFieldsValue,
491
+ setFieldsValue: setFieldsValue,
492
+ getFieldsError: getFieldsError
430
493
  });
431
494
  }; // TODO: field 支持数组
432
495
 
@@ -499,20 +562,29 @@ var useCollection = function useCollection() {
499
562
  return new Map();
500
563
  }, []);
501
564
  var collectionRef = useRef(collectionMp);
502
- var register = useCallback(function (key, value) {
503
- collectionRef.current.set(key, value);
565
+ var register = useCallback(function (keyOrKeys, value) {
566
+ collectionRef.current.set(stringify(keyOrKeys), value);
504
567
  }, []);
505
- var unregister = useCallback(function (key) {
506
- collectionRef.current["delete"](key);
568
+ var unregister = useCallback(function (keyOrKeys) {
569
+ collectionRef.current["delete"](stringify(keyOrKeys));
507
570
  }, []);
508
- var getCollection = useCallback(function (key) {
571
+ var getCollection = useCallback(function (keyOrKeys) {
572
+ var key = stringify(keyOrKeys);
573
+
509
574
  if (collectionRef.current.has(key)) {
510
575
  return collectionRef.current.get(key);
511
576
  }
512
577
 
513
578
  return null;
514
579
  }, []);
515
- return [getCollection, register, unregister];
580
+ var getRegisteredKeys = useCallback(function () {
581
+ var keys = [];
582
+ collectionRef.current.forEach(function (_, key) {
583
+ keys.push(parse(key));
584
+ });
585
+ return keys;
586
+ }, []);
587
+ return [getCollection, register, unregister, getRegisteredKeys];
516
588
  };
517
589
 
518
590
  export { useForm };
@@ -1 +1 @@
1
- {"version":3,"file":"use-form.js","sources":["../../src/use-form.ts"],"sourcesContent":[null],"names":["EMPTY_RULES","EMPTY_ERRORS","EMPTY_TOUCHED","DEFAULT_VALIDATE_TRIGGER","useForm","_a","initialValues","initialErrors","initialTouched","onValuesChange","onReset","onSubmit","rules","validateAfterTouched","validateTrigger","validateTriggerProp","rest","isArray","validateTriggersMemo","useMemo","useCollection","getValidation","registerField","unregisterField","useReducer","formReducer","values","errors","touched","validating","submitting","formState","formDispatch","formStateRef","useLatestRef","getFieldNames","useCallback","Object","keys","current","getFieldValue","fieldName","getFieldError","setFieldError","field","errorMessage","type","payload","value","setFieldTouched","validateField","fieldValidation","errorResultAsPromise","validate","console","log","then","result","errorMsg","fields","message","validateFieldState","validateAll","fieldNames","Promise","all","map","setFieldValue","shouldValidate","shouldValidateField","normalizeValueFromChange","eventOrValue","target","handleFieldChange","valueCollectPipe","evt","nextValue","isFunction","handleFieldBlur","handleFieldTrigger","initialValuesRef","useRef","initialErrorsRef","initialTouchedRef","onResetLatestRef","resetForm","nextState","dispatchFn","submitForm","combinedErrors","isInstanceOfError","Error","isActuallyValid","length","promiseOrUndefined","error","undefined","resolve","_errors","handleSubmit","stopEvent","handleReset","setFormState","React","stateOrFunc","getRootProps","useLatestCallback","getFieldProps","props","ref","valuePropName","valueCollectPropName","onBlur","validateOnCollect","includes","validateOnBlur","returnProps","getNested","callAllFuncs","invalid","filter","triggerName","indexOf","forEach","getFieldRules","state","action","setNested","collectionMp","Map","collectionRef","register","key","set","unregister","getCollection","has","get"],"mappings":";;;;;;;;;;;;;;;;AAgBA,IAAMA,WAAW,GAAG,EAApB;AACA,IAAMC,YAAY,GAAG,EAArB;AACA,IAAMC,aAAa,GAAG,EAAtB;AACA,IAAMC,wBAAwB,GAAG,CAAC,UAAD,EAAa,QAAb,CAAjC;;IAEaC,OAAO,GAAG,SAAVA,OAAU,CAA+BC,EAA/B;MACrBC,mBAAAA;4BACAC;MAAAA,8CAAgBN;6BAChBO;MAAAA,gDAAiBN;MAEjBO,oBAAAA;MACAC,aAAAA;MACAC,cAAAA;oBAEAC;MAAAA,8BAAQZ;iCACRa;MAAAA,0DAAuB;8BACvBC;MAAiBC,sDAAsBZ;MACpCa,kBAZiD,gBAAA,iBAAA,kBAAA,gBAAA,kBAAA,WAAA,YAAA,SAAA,wBAAA,mBAAA;;;;;;MAiB9CF,eAAe,GAAGG,OAAO,CAACF,mBAAD,CAAPE,GAA+BF,mBAA/BE,GAAqD,CAACF,mBAAD;;MAEvEG,oBAAoB,GAAGC,OAAO,CAAC;WAAML;AAAP,GAAA,EAAwBA,eAAxB;;;;;uBAKoBM,aAAa;MAA9DC,aAAP;MAAsBC,aAAtB;MAAqCC,eAArC;;;;;;oBAOkCC,UAAU,CAACC,WAAD,EAAc;AACxDC,IAAAA,MAAM,EAAEpB,aADgD;AAExDqB,IAAAA,MAAM,EAAEpB,aAFgD;AAGxDqB,IAAAA,OAAO,EAAEpB,cAH+C;AAIxDqB,IAAAA,UAAU,EAAE,KAJ4C;AAKxDC,IAAAA,UAAU,EAAE;AAL4C,GAAd;MAArCC,SAAP;MAAkBC,YAAlB;;;MASMC,YAAY,GAAGC,YAAY,CAACH,SAAD;;MAG3BI,aAAa,GAAGC,WAAW,CAAC;WAAMC,MAAM,CAACC,IAAPD,CAAYJ,YAAY,CAACM,OAAbN,CAAqBP,MAAjCW;AAAP,GAAA,EAAiD,CAACJ,YAAD,CAAjD;;MAG3BO,aAAa,GAAGJ,WAAW,CAAC,UAACK,SAAD;WAAuBR,YAAY,CAACM,OAAbN,CAAqBP,MAArBO,CAA4BQ,SAA5BR;AAAxB,GAAA,EAAgE,CAC/FA,YAD+F,CAAhE;MAI3BS,aAAa,GAAGN,WAAW,CAAC,UAACK,SAAD;WAAuBR,YAAY,CAACM,OAAbN,CAAqBN,MAArBM,CAA4BQ,SAA5BR;AAAxB,GAAA,EAAgE,CAC/FA,YAD+F,CAAhE;MAI3BU,aAAa,GAAGP,WAAW,CAC/B,UAACQ,KAAD,EAAuBC,YAAvB;AACEb,IAAAA,YAAY,CAAC;AACXc,MAAAA,IAAI,EAAE,iBADK;;AAGXC,MAAAA,OAAO,EAAE;AAAEH,QAAAA,KAAK,EAALA,KAAF;AAASI,QAAAA,KAAK,EAAEH;AAAhB;AAHE,KAAD,CAAZb;AAF6B,GAAA,EAQ/B,EAR+B;MAW3BiB,eAAe,GAAGb,WAAW,CAAC,UAACQ,KAAD,EAAuBhB,OAAvB;QAAuBA;AAAAA,MAAAA,UAAU,KAAVA;;;AACzDI,IAAAA,YAAY,CAAC;AACXc,MAAAA,IAAI,EAAE,mBADK;;AAGXC,MAAAA,OAAO,EAAE;AAAEH,QAAAA,KAAK,EAALA,KAAF;AAASI,QAAAA,KAAK,EAAEpB;AAAhB;AAHE,KAAD,CAAZI;AADiC,GAAA,EAMhC,EANgC;;;;;MAW7BkB,aAAa,GAAGd,WAAW,CAC/B,UAAOQ,KAAP,EAAsBI,KAAtB;;;;;;;AACQG,cAAAA,kBAAkB9B,aAAa,CAACuB,KAAD,CAA/BO;;kBACDA;;;;;;;;AAELnB,cAAAA,YAAY,CAAC;AAAEc,gBAAAA,IAAI,EAAE,gBAAR;AAA0BC,gBAAAA,OAAO,EAAE;AAAnC,eAAD,CAAZf;AAEMoB,cAAAA,uBAAuBD,eAAe,CAACE,QAAhBF,CAAyBH,KAAzBG,CAAvBC;AAENE,cAAAA,OAAO,CAACC,GAARD,CAAY,UAAZA,EAAwBF,oBAAxBE;AAEAF,cAAAA,oBAAoB,CACjBI,IADHJ,CACQ,UAACK,MAAD;AACJH,gBAAAA,OAAO,CAACC,GAARD,CAAY,QAAZA,EAAsBG,MAAtBH;AACAtB,gBAAAA,YAAY,CAAC;AAAEc,kBAAAA,IAAI,EAAE,gBAAR;AAA0BC,kBAAAA,OAAO,EAAE;AAAnC,iBAAD,CAAZf;AACAW,gBAAAA,aAAa,CAACC,KAAD,EAAQ,EAAR,CAAbD;AAJJ,eAAAS,WAMS,UAACM,QAAD;;AAELf,gBAAAA,aAAa,CAACC,KAAD,EAAQc,QAAQ,CAACC,MAATD,CAAgBd,KAAhBc,EAAuB,CAAvBA,EAA0BE,OAAlC,CAAbjB;AARJ,eAAAS,aAUW;AACPpB,gBAAAA,YAAY,CAAC;AAAEc,kBAAAA,IAAI,EAAE,gBAAR;AAA0BC,kBAAAA,OAAO,EAAE;AAAnC,iBAAD,CAAZf;AAXJ,eAAAoB;;;;;;;;;AAX6B,GAAA,EAyB/B,CAAC/B,aAAD,EAAgBsB,aAAhB,CAzB+B;;;;;MA+B3BkB,kBAAkB,GAAGzB,WAAW,CACpC,UAACQ,KAAD;QACQI,KAAK,GAAGR,aAAa,CAACI,KAAD;WACpBM,aAAa,CAACN,KAAD,EAAQI,KAAR;AAHc,GAAA,EAKpC,CAACE,aAAD,EAAgBV,aAAhB,CALoC;;;;;MAWhCsB,WAAW,GAAG1B,WAAW,CAAC;QACxB2B,UAAU,GAAG5B,aAAa;WACzB6B,OAAO,CAACC,GAARD,CAAYD,UAAU,CAACG,GAAXH,CAAe,UAACtB,SAAD;aAAeoB,kBAAkB,CAACpB,SAAD;AAAhD,KAAAsB,CAAZC;AAFsB,GAAA,EAG5B,CAAC7B,aAAD,EAAgB0B,kBAAhB,CAH4B;;;;;MAQzBM,aAAa,GAAG/B,WAAW,CAC/B,UAACQ,KAAD,EAAgBI,KAAhB,EAAgCoB,cAAhC;;AAEEpC,IAAAA,YAAY,CAAC;AAAEc,MAAAA,IAAI,EAAE,iBAAR;AAA2BC,MAAAA,OAAO,EAAE;AAAEH,QAAAA,KAAK,EAALA,KAAF;AAASI,QAAAA,KAAK,EAALA;AAAT;AAApC,KAAD,CAAZhB;QAEMqC,mBAAmB,GACvBD,cAAc,SAAdA,IAAAA,cAAc,WAAdA,GAAAA,cAAAA,GAAmBvD,oBAAoB,GAAGkB,SAAS,CAACH,OAAVG,CAAkBa,KAAlBb,CAAH,GAA8B;;QAEnEsC,qBAAqB;AACvBnB,MAAAA,aAAa,CAACN,KAAD,EAAQI,KAAR,CAAbE;;AAT2B,GAAA,EAY/B,CAACA,aAAD,EAAgBrC,oBAAhB,EAAsCkB,SAAtC,CAZ+B;MAe3BuC,wBAAwB,GAAGlC,WAAW,CAAC,UAACmC,YAAD;;WAEpCA,YAAY,CAACC,MAAbD,CAAoBvB;AAFe,GAAA,EAGzC,EAHyC;MAKtCyB,iBAAiB,GAAGrC,WAAW,CACnC,UAACK,SAAD,EAAoBiC,gBAApB,EAA2CN,cAA3C;WAAwE,UACtEO,GADsE;;;;UAIhEC,SAAS,GAAGC,UAAU,CAACH,gBAAD,CAAVG,GACdH,gBAAgB,CAACC,GAAD,CADFE,GAEdP,wBAAwB,CAACK,GAAD;AAE5BR,MAAAA,aAAa,CAAC1B,SAAD,EAAYmC,SAAZ,EAAuBR,cAAvB,CAAbD;;AAEA1D,MAAAA,cAAc,SAAdA,IAAAA,cAAc,WAAdA,SAAAA,GAAAA,cAAc,iCAAQsB,SAAS,CAACL,8CAASe,aAAYmC,2BAAvC,EAAoD7C,SAAS,CAACL,MAA9D,CAAdjB;AAVF;AADmC,GAAA,EAanC,CAAC0D,aAAD,EAAgB1D,cAAhB,EAAgCsB,SAAS,CAACL,MAA1C,EAAkD4C,wBAAlD,CAbmC;;;;;MAmB/BQ,eAAe,GAAG1C,WAAW,CACjC,UAACK,SAAD,EAAoB2B,cAApB;WAAiD,UAACO,GAAD;UAC3CP,gBAAgB;AAClBP,QAAAA,kBAAkB,CAACpB,SAAD,CAAlBoB;;;AAEFZ,MAAAA,eAAe,CAACR,SAAD,EAAY,IAAZ,CAAfQ;AAJF;AADiC,GAAA,EAOjC,CAACA,eAAD,EAAkBY,kBAAlB,CAPiC;MAU7BkB,kBAAkB,GAAG3C,WAAW,CACpC,UAACK,SAAD;WAAuB,UAACkC,GAAD;AACrBd,MAAAA,kBAAkB,CAACpB,SAAD,CAAlBoB;AADF;AADoC,GAAA,EAIpC,CAACA,kBAAD,CAJoC;;;;;MAUhCmB,gBAAgB,GAAGC,MAAM,CAAC3E,aAAD;MACzB4E,gBAAgB,GAAGD,MAAM,CAAC1E,aAAD;MACzB4E,iBAAiB,GAAGF,MAAM,CAACzE,cAAD;MAE1B4E,gBAAgB,GAAGlD,YAAY,CAACxB,OAAD;MAE/B2E,SAAS,GAAGjD,WAAW,CAC3B,UAAOkD,SAAP;;;;;;;AACQ5D,cAAAA,SAAS4D,SAAS,IAAIA,SAAS,CAAC5D,MAAvB4D,GAAgCA,SAAS,CAAC5D,MAA1C4D,GAAmDN,gBAAgB,CAACzC,OAA7Eb;AACAC,cAAAA,SAAS2D,SAAS,IAAIA,SAAS,CAAC3D,MAAvB2D,GAAgCA,SAAS,CAAC3D,MAA1C2D,GAAmDJ,gBAAgB,CAAC3C,OAA7EZ;AACAC,cAAAA,UAAU0D,SAAS,IAAIA,SAAS,CAAC1D,OAAvB0D,GAAiCA,SAAS,CAAC1D,OAA3C0D,GAAqDH,iBAAiB,CAAC5C,OAAjFX;AACNoD,cAAAA,gBAAgB,CAACzC,OAAjByC,GAA2BtD,MAA3BsD;;AAEAE,cAAAA,gBAAgB,CAAC3C,OAAjB2C,GAA2BvD,MAA3BuD;AACAC,cAAAA,iBAAiB,CAAC5C,OAAlB4C,GAA4BvD,OAA5BuD;AAEMrD,cAAAA,aAAa,CAAC,EAAEwD,SAAS,IAAIA,SAAS,CAACxD,UAAzB,CAAdA;AACAD,cAAAA,aAAa,CAAC,EAAEyD,SAAS,IAAIA,SAAS,CAACzD,UAAzB,CAAdA;;AAEA0D,cAAAA,aAAa,SAAbA,UAAa;AACjBvD,gBAAAA,YAAY,CAAC;AACXc,kBAAAA,IAAI,EAAE,UADK;AAEXC,kBAAAA,OAAO,EAAE;AACPjB,oBAAAA,UAAU,EAAVA,UADO;AAEPD,oBAAAA,UAAU,EAAVA,UAFO;AAGPF,oBAAAA,MAAM,EAANA,MAHO;AAIPC,oBAAAA,OAAO,EAAPA,OAJO;AAKPF,oBAAAA,MAAM,EAANA;AALO;AAFE,iBAAD,CAAZM;eADIuD;;mBAaFH,gBAAgB,CAAC7C;;;;;;qBAEb6C,gBAAgB,CAAC7C,OAAjB6C,CAAyBrD,SAAS,CAACL,MAAnC0D;;;AACNG,cAAAA,UAAU;;;;;AAEVA,cAAAA,UAAU;;;;;;;;;AA/Ba,GAAA,EAkC3B,CAACH,gBAAD,EAAmBrD,SAAS,CAACL,MAA7B,CAlC2B;;;;;MAwCvB8D,UAAU,GAAGpD,WAAW,CAAC;;;;;;AAC7BJ,cAAAA,YAAY,CAAC;AAAEc,gBAAAA,IAAI,EAAE;AAAR,eAAD,CAAZd;gDACO8B,WAAW,GAAGN,IAAdM,CAAmB,UAAC2B,cAAD;oBAClBC,iBAAiB,GAAGD,cAAc,YAAYE;oBAC9CC,eAAe,GAAG,CAACF,iBAAD,IAAsBrD,MAAM,CAACC,IAAPD,CAAYoD,cAAZpD,EAA4BwD,MAA5BxD,KAAuC;;oBAEjFuD,iBAAiB;sBACfE;;sBACA;;AAEFA,oBAAAA,kBAAkB,GAAGnF,QAAQ,SAARA,IAAAA,QAAQ,WAARA,SAAAA,GAAAA,QAAQ,CAAGoB,SAAS,CAACL,MAAb,CAA7BoE;AAFF,oBAGE,OAAOC,KAAP,EAAc;;;sBAIZD,kBAAkB,KAAKE,WAAW;yBAE/BhC,OAAO,CAACiC,OAARjC,CAAgB8B,kBAAhB9B,EACJR,IADIQ,CACC,UAACP,MAAD;AACJzB,oBAAAA,YAAY,CAAC;AAAEc,sBAAAA,IAAI,EAAE;AAAR,qBAAD,CAAZd;2BACOyB;AAHJ,mBAAAO,WAKE,UAACkC,OAAD;AACLlE,oBAAAA,YAAY,CAAC;AAAEc,sBAAAA,IAAI,EAAE;AAAR,qBAAD,CAAZd;0BACMkE;AAPH,mBAAAlC;AAXT,uBAoBO;AACLhC,kBAAAA,YAAY,CAAC;AAAEc,oBAAAA,IAAI,EAAE;AAAR,mBAAD,CAAZd;;sBAEI0D,mBAAmB;0BACfD;;;AA5BL,eAAA3B;;;;;;;;;AAFqB,GAAA,EAkC3B,CAAC/B,SAAD,EAAYpB,QAAZ,EAAsBmD,WAAtB,CAlC2B;MAoCxBqC,YAAY,GAAG/D,WAAW,CAC9B,UAACuC,GAAD;AACEyB,IAAAA,SAAS,CAACzB,GAAD,CAATyB;AACAZ,IAAAA,UAAU,WAAVA,CAAmBlC,OAAO,CAACyC,KAA3BP;AAH4B,GAAA,EAK9B,CAACA,UAAD,CAL8B;MAQ1Ba,WAAW,GAAGjE,WAAW,CAC7B,UAACuC,GAAD;AACEyB,IAAAA,SAAS,CAACzB,GAAD,CAATyB;AACAf,IAAAA,SAAS;AAHkB,GAAA,EAK7B,CAACA,SAAD,CAL6B;AAQNjD,EAAAA,WAAW,CAAC,aAAD,CAAA,EAAW,EAAX,CAAXA;AAELA,EAAAA,WAAW,CAAC;AAC9BJ,IAAAA,YAAY,CAAC;;AAEXc,MAAAA,IAAI,EAAE,YAFK;AAGXC,MAAAA,OAAO,EAAE;AAHE,KAAD,CAAZf;AAD6B,GAAA,EAM5B,EAN4B,CAAXI;MAQdkE,YAAY,GAAGC,KAAK,CAACnE,WAANmE,CAAkB,UAACC,WAAD;;AAErCxE,IAAAA,YAAY,CAAC;AAAEc,MAAAA,IAAI,EAAE,WAAR;AAAqBC,MAAAA,OAAO,EAAEyD;AAA9B,KAAD,CAAZxE;AAFmB,GAAAuE,EAGlB,EAHkBA;MAKfE,YAAY,GAAGC,iBAAiB,CAAC;2CAEhC1F;AACHL,MAAAA,QAAQ,EAAEwF;AACVzF,MAAAA,OAAO,EAAE2F;;AAJyB,GAAA;MAQhCM,aAAa,GAAGvE,WAAW,CAC/B,UAACwE,KAAD,EAAaC,GAAb;;;QAACD;AAAAA,MAAAA,QAAQ,EAARA;;;QAAYC;AAAAA,MAAAA,MAAM,IAANA;;;iBAQPD;QANFhE,KADF,UACEA;sCACAkE;QAAAA,aAFF,qCAEkB;uCAChBC;QAAAA,oBAHF,sCAGyB;QACvBrC,gBAJF,UAIEA;uCACA5D;QAAiBC,mBALnB,sCAKyCG;QACvC8F,MANF,UAMEA;QAGIlG,eAAe,GAAGG,OAAO,CAACF,mBAAD,CAAPE,GACpBF,mBADoBE,GAEpB,CAACF,mBAAD;QAEEkG,iBAAiB,GAAGnG,eAAe,CAACoG,QAAhBpG,CAAyBiG,oBAAzBjG;QACpBqG,cAAc,GAAGrG,eAAe,CAACoG,QAAhBpG,CAAyB,UAAzBA;QAEjBsG,WAAW;AACfP,MAAAA,GAAG,EAAHA;oBACCC,iBAAgBO,SAAS,CAACtF,SAAS,CAACL,MAAX,EAAmBkB,KAAnB,gBAEzBmE,wBAAuBO,YAAY,CAClCV,KAAK,CAACG,oBAAD,CAD6B,EAElCtC,iBAAiB,CAAC7B,KAAD,EAAQ8B,gBAAR,EAA0BuC,iBAA1B,CAFiB,gBAIpCD,SAAQM,YAAY,CAACN,MAAD,EAASlC,eAAe,CAAClC,KAAD,EAAQuE,cAAR,CAAxB,gBACpBI,UAAS7E,aAAa,CAACE,KAAD,eATP;AAYjB9B,IAAAA,eAAe,CACZ0G,MADH1G,CACU,UAAC2G,WAAD;aAAiB,CAACV,oBAAD,EAAuB,QAAvB,EAAiCW,OAAjC,CAAyCD,WAAzC,MAA0D,CAAC;AADtF,KAAA3G;AAAAA,KAGG6G,OAHH7G,CAGW,UAAC2G,WAAD;;AAEPL,MAAAA,WAAW,CAACK,WAAD,CAAXL,GAA2BE,YAAY,CAACV,KAAK,CAACa,WAAD,CAAN,EAAqB1C,kBAAkB,CAACnC,KAAD,CAAvC,CAAvCwE;AALJ,KAAAtG;WAQOsG;AAtCsB,GAAA,EAwC/B,CACErF,SADF,EAEE0C,iBAFF,EAGEK,eAHF,EAIE5D,oBAJF,EAKE6D,kBALF,EAMErC,aANF,CAxC+B;MAkD3BkF,aAAa,GAAGxF,WAAW,CAC/B,UAACK,SAAD;WACS7B,KAAK,CAAC6B,SAAD;AAFiB,GAAA,EAI/B,CAAC7B,KAAD,CAJ+B;yCAQ5BmB;AACHuE,IAAAA,YAAY,EAAZA;AACAnC,IAAAA,aAAa,EAAbA;AACAxB,IAAAA,aAAa,EAAbA;AACAM,IAAAA,eAAe,EAAfA;AACAP,IAAAA,aAAa,EAAbA;AACAkF,IAAAA,aAAa,EAAbA;AACAnB,IAAAA,YAAY,EAAZA;AACAE,IAAAA,aAAa,EAAbA;AACArF,IAAAA,aAAa,EAAbA;AACAC,IAAAA,eAAe,EAAfA;AACAiE,IAAAA,UAAU,EAAVA;AACAH,IAAAA,SAAS,EAATA;;;;;AA8DJ,SAAS5D,WAAT,CAAwBoG,KAAxB,EAA6CC,MAA7C;UACUA,MAAM,CAAChF;SACR;UACGwC,SAAS,GAAGT,UAAU,CAACiD,MAAM,CAAC/E,OAAR,CAAV8B,GAA6BiD,MAAM,CAAC/E,OAAP+E,CAAeD,KAAfC,CAA7BjD,GAAqDiD,MAAM,CAAC/E;6CAClE8E,QAAUvC;;SACnB;6CACSuC;AAAOnG,QAAAA,MAAM,EAAEoG,MAAM,CAAC/E;;;SAC/B;6CACS8E;AAAOlG,QAAAA,MAAM,EAAEmG,MAAM,CAAC/E;;;SAC/B;6CACS8E;AAAOjG,QAAAA,OAAO,EAAEkG,MAAM,CAAC/E;;;SAChC;6CACS8E;AAAO/F,QAAAA,UAAU,EAAEgG,MAAM,CAAC/E;;;SACnC;6CACS8E;AAAOhG,QAAAA,UAAU,EAAEiG,MAAM,CAAC/E;;;SACnC;6CAEE8E;AACHnG,QAAAA,MAAM,EAAEqG,SAAS,CAACF,KAAK,CAACnG,MAAP,EAAeoG,MAAM,CAAC/E,OAAP+E,CAAelF,KAA9B,EAAqCkF,MAAM,CAAC/E,OAAP+E,CAAe9E,KAApD;;;SAEhB;6CAEE6E;AACHjG,QAAAA,OAAO,EAAEmG,SAAS,CAACF,KAAK,CAACjG,OAAP,EAAgBkG,MAAM,CAAC/E,OAAP+E,CAAelF,KAA/B,EAAsCkF,MAAM,CAAC/E,OAAP+E,CAAe9E,KAArD;;;SAEjB;6CAEE6E;AACHlG,QAAAA,MAAM,EAAEoG,SAAS,CAACF,KAAK,CAAClG,MAAP,EAAemG,MAAM,CAAC/E,OAAP+E,CAAelF,KAA9B,EAAqCkF,MAAM,CAAC/E,OAAP+E,CAAe9E,KAApD;;;SAEhB;6CACS6E,QAAUC,MAAM,CAAC/E;;SAC1B;6CAEE8E;AACH/F,QAAAA,UAAU,EAAE;;;;aAGP+F;;;AAIb;;;;;AAGA,IAAMzG,aAAa,GAAG,SAAhBA,aAAgB;MACd4G,YAAY,GAAG7G,OAAO,CAAC;WAAM,IAAI8G,GAAJ;AAAP,GAAA,EAAkB,EAAlB;MACtBC,aAAa,GAAGjD,MAAM,CAAiB+C,YAAjB;MAEtBG,QAAQ,GAAG/F,WAAW,CAAC,UAACgG,GAAD,EAAcpF,KAAd;AAC3BkF,IAAAA,aAAa,CAAC3F,OAAd2F,CAAsBG,GAAtBH,CAA0BE,GAA1BF,EAA+BlF,KAA/BkF;AAD0B,GAAA,EAEzB,EAFyB;MAItBI,UAAU,GAAGlG,WAAW,CAAC,UAACgG,GAAD;AAC7BF,IAAAA,aAAa,CAAC3F,OAAd2F,WAA6BE,GAA7BF;AAD4B,GAAA,EAE3B,EAF2B;MAIxBK,aAAa,GAAGnG,WAAW,CAAC,UAACgG,GAAD;QAC5BF,aAAa,CAAC3F,OAAd2F,CAAsBM,GAAtBN,CAA0BE,GAA1BF,GAAgC;aAC3BA,aAAa,CAAC3F,OAAd2F,CAAsBO,GAAtBP,CAA0BE,GAA1BF;;;WAEF;AAJwB,GAAA,EAK9B,EAL8B;SAO1B,CAACK,aAAD,EAAgBJ,QAAhB,EAA0BG,UAA1B;AAnBT,CAAA;;"}
1
+ {"version":3,"file":"use-form.js","sources":["../../src/use-form.ts"],"sourcesContent":[null],"names":["EMPTY_RULES","EMPTY_ERRORS","EMPTY_TOUCHED","DEFAULT_VALIDATE_TRIGGER","useForm","_a","initialValues","initialErrors","initialTouched","onValuesChange","onReset","onSubmit","rules","validateAfterTouched","validateTrigger","validateTriggerProp","rest","isArray","validateTriggersMemo","useMemo","useCollection","getValidation","registerField","unregisterField","getRegisteredKeys","useReducer","formReducer","values","errors","touched","validating","submitting","formState","formDispatch","formStateRef","useLatestRef","getFieldValue","useCallback","fieldName","getNested","current","getFieldsValue","getFieldError","getFieldsError","setFieldError","field","errorMessage","type","payload","value","setFieldTouched","validateField","fieldValidation","errorResultAsPromise","validate","then","result","setNested","errorMsg","fields","message","validateFieldState","validateAll","fieldNames","console","log","Promise","all","map","setFieldValue","shouldValidate","shouldValidateField","setFieldsValue","Object","entries","forEach","normalizeValueFromChange","eventOrValue","valuePropName","nextValue","isObjectLike","target","event","isFunction","persist","currentTarget","test","checked","handleFieldChange","valueCollectPipe","evt","changedValues","allValues","handleFieldBlur","handleFieldTrigger","initialValuesRef","useRef","initialErrorsRef","initialTouchedRef","onResetLatestRef","resetForm","nextState","dispatchFn","submitForm","combinedErrors","isInstanceOfError","Error","isActuallyValid","promiseOrUndefined","error","undefined","resolve","_errors","handleSubmit","stopEvent","handleReset","resetErrors","setFormState","React","stateOrFunc","getRootProps","useLatestCallback","getFieldProps","props","ref","valueCollectPropName","onBlur","validateOnCollect","includes","validateOnBlur","returnProps","callAllFuncs","invalid","triggerName","indexOf","getFieldRules","validateValue","state","action","collectionMp","Map","collectionRef","register","keyOrKeys","set","stringify","unregister","getCollection","key","has","get","keys","_","push","parse"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /** @LICENSE
2
+ * @hi-ui/form
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/form#readme
4
+ *
5
+ * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ var stringify = function stringify(field) {
11
+ return JSON.stringify(field);
12
+ };
13
+
14
+ var parse = function parse(fieldStr) {
15
+ return JSON.parse(fieldStr);
16
+ };
17
+
18
+ export { parse, stringify };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/index.ts"],"sourcesContent":[null],"names":["stringify","field","JSON","parse","fieldStr"],"mappings":";;;;;;;;;IAQaA,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD;SAChBC,IAAI,CAACF,SAALE,CAAeD,KAAfC;;;IAGIC,KAAK,GAAG,SAARA,KAAQ,CAACC,QAAD;SACZF,IAAI,CAACC,KAALD,CAAWE,QAAXF;;;"}
@@ -3,6 +3,7 @@ import { ButtonProps } from '@hi-ui/button';
3
3
  /**
4
4
  * TODO: What is FormReset
5
5
  */
6
- export declare const FormReset: React.ForwardRefExoticComponent<FormResetProps & React.RefAttributes<HTMLDivElement | null>>;
6
+ export declare const FormReset: React.ForwardRefExoticComponent<FormResetProps & React.RefAttributes<HTMLButtonElement | null>>;
7
7
  export interface FormResetProps extends ButtonProps {
8
+ onClick?: () => void;
8
9
  }
@@ -3,6 +3,7 @@ import { ButtonProps } from '@hi-ui/button';
3
3
  /**
4
4
  * TODO: What is FormSubmit
5
5
  */
6
- export declare const FormSubmit: React.ForwardRefExoticComponent<FormLabelProps & React.RefAttributes<HTMLDivElement | null>>;
7
- export interface FormLabelProps extends ButtonProps {
6
+ export declare const FormSubmit: React.ForwardRefExoticComponent<FormLabelProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement | null>>;
7
+ export interface FormLabelProps extends Omit<ButtonProps, 'onClick'> {
8
+ onClick?: (value: any, error: any) => void;
8
9
  }
@@ -1,25 +1,32 @@
1
1
  /// <reference types="react" />
2
2
  export declare const FormProvider: import("react").Provider<Omit<{
3
3
  setFormState: (stateOrFunc: import("./types").FormSetState<unknown>) => void;
4
- setFieldValue: (field: string, value: unknown, shouldValidate?: boolean | undefined) => void;
4
+ setFieldValue: (field: import("./types").FormFieldPath, value: unknown, shouldValidate?: boolean | undefined) => void;
5
5
  setFieldError: (field: import("./types").FormFieldPath, errorMessage: string | undefined) => void;
6
6
  setFieldTouched: (field: import("./types").FormFieldPath, touched?: any) => void;
7
- getFieldError: (fieldName: string) => unknown;
8
- getFieldRules: (fieldName: string) => import("async-validator").RuleItem[];
7
+ getFieldValue: (fieldName: import("./types").FormFieldPath) => any;
8
+ getFieldError: (fieldName: import("./types").FormFieldPath) => any;
9
+ getFieldRules: (fieldName: import("./types").FormFieldPath) => any;
9
10
  getRootProps: () => {
10
- onSubmit: (evt?: import("react").FormEvent<HTMLFormElement> | undefined) => void;
11
+ onSubmit: (evt?: import("react").FormEvent<HTMLFormElement> | undefined) => Promise<unknown>;
11
12
  onReset: (evt?: import("react").FormEvent<HTMLFormElement> | undefined) => void;
12
13
  };
13
14
  getFieldProps: (props?: any, ref?: any) => {
14
15
  [x: number]: unknown;
15
16
  ref: any;
16
17
  onBlur: (...args: any) => void;
17
- invalid: unknown;
18
+ invalid: any;
18
19
  };
19
- registerField: (key: string, value: import("./types").FormFieldCollection<unknown>) => void;
20
- unregisterField: (key: string) => void;
21
- submitForm: () => Promise<undefined>;
20
+ registerField: (keyOrKeys: import("./types").FormFieldPath, value: import("./types").FormFieldCollection<unknown>) => void;
21
+ unregisterField: (keyOrKeys: import("./types").FormFieldPath) => void;
22
+ submitForm: () => Promise<unknown>;
22
23
  resetForm: (nextState?: Partial<import("./types").FormState<any>> | undefined) => Promise<void>;
24
+ resetErrors: () => void;
25
+ validateFieldState: (field: import("./types").FormFieldPath) => Promise<{} | undefined>;
26
+ validateValue: (field: import("./types").FormFieldPath, value: unknown) => Promise<{} | undefined>;
27
+ getFieldsValue: () => any;
28
+ setFieldsValue: (fields: Record<string, any>, shouldValidate?: boolean | undefined) => void;
29
+ getFieldsError: () => any;
23
30
  values: unknown;
24
31
  errors: import("./types").FormErrors<unknown>;
25
32
  touched: import("./types").FormTouched<unknown>;
@@ -28,25 +35,32 @@ export declare const FormProvider: import("react").Provider<Omit<{
28
35
  }, "rootProps"> | null>;
29
36
  export declare const useFormContext: () => Omit<{
30
37
  setFormState: (stateOrFunc: import("./types").FormSetState<unknown>) => void;
31
- setFieldValue: (field: string, value: unknown, shouldValidate?: boolean | undefined) => void;
38
+ setFieldValue: (field: import("./types").FormFieldPath, value: unknown, shouldValidate?: boolean | undefined) => void;
32
39
  setFieldError: (field: import("./types").FormFieldPath, errorMessage: string | undefined) => void;
33
40
  setFieldTouched: (field: import("./types").FormFieldPath, touched?: any) => void;
34
- getFieldError: (fieldName: string) => unknown;
35
- getFieldRules: (fieldName: string) => import("async-validator").RuleItem[];
41
+ getFieldValue: (fieldName: import("./types").FormFieldPath) => any;
42
+ getFieldError: (fieldName: import("./types").FormFieldPath) => any;
43
+ getFieldRules: (fieldName: import("./types").FormFieldPath) => any;
36
44
  getRootProps: () => {
37
- onSubmit: (evt?: import("react").FormEvent<HTMLFormElement> | undefined) => void;
45
+ onSubmit: (evt?: import("react").FormEvent<HTMLFormElement> | undefined) => Promise<unknown>;
38
46
  onReset: (evt?: import("react").FormEvent<HTMLFormElement> | undefined) => void;
39
47
  };
40
48
  getFieldProps: (props?: any, ref?: any) => {
41
49
  [x: number]: unknown;
42
50
  ref: any;
43
51
  onBlur: (...args: any) => void;
44
- invalid: unknown;
52
+ invalid: any;
45
53
  };
46
- registerField: (key: string, value: import("./types").FormFieldCollection<unknown>) => void;
47
- unregisterField: (key: string) => void;
48
- submitForm: () => Promise<undefined>;
54
+ registerField: (keyOrKeys: import("./types").FormFieldPath, value: import("./types").FormFieldCollection<unknown>) => void;
55
+ unregisterField: (keyOrKeys: import("./types").FormFieldPath) => void;
56
+ submitForm: () => Promise<unknown>;
49
57
  resetForm: (nextState?: Partial<import("./types").FormState<any>> | undefined) => Promise<void>;
58
+ resetErrors: () => void;
59
+ validateFieldState: (field: import("./types").FormFieldPath) => Promise<{} | undefined>;
60
+ validateValue: (field: import("./types").FormFieldPath, value: unknown) => Promise<{} | undefined>;
61
+ getFieldsValue: () => any;
62
+ setFieldsValue: (fields: Record<string, any>, shouldValidate?: boolean | undefined) => void;
63
+ getFieldsError: () => any;
50
64
  values: unknown;
51
65
  errors: import("./types").FormErrors<unknown>;
52
66
  touched: import("./types").FormTouched<unknown>;
@@ -3,4 +3,6 @@ export * from './Form';
3
3
  export { Form as default } from './Form';
4
4
  export * from './FormItem';
5
5
  export * from './FormList';
6
+ export * from './FormSubmit';
7
+ export * from './FormReset';
6
8
  export * from './types';
@@ -76,38 +76,60 @@ export declare type FormValidateFunction<T = any> = (value: T) => string | Promi
76
76
  export interface FormFieldCollection<T> {
77
77
  validate: (value: any) => Promise<T>;
78
78
  }
79
- export declare type FormRuleModel = RuleItem;
79
+ export interface FormRuleModel extends RuleItem {
80
+ trigger?: string | string[];
81
+ }
80
82
  export declare type FormRuleType = 'string' | 'number' | 'boolean' | 'method' | 'regexp' | 'integer' | 'float' | 'array' | 'object' | 'enum' | 'date' | 'url' | 'hex' | 'email' | 'any';
81
83
  export interface FormHelpers<T = any> {
82
- validate: FormValidateFunction<T>;
83
84
  /**
84
85
  * 对整个表单进行校验, 对应 Form.Submit中的 API
85
86
  */
86
- submit?: () => Promise<any>;
87
+ validate?: () => Promise<T>;
87
88
  /**
88
89
  * 重置整个表单的验证,对应 Form.Reset中的 API
89
90
  */
90
- reset?: (fields: [], toDefault: boolean) => Promise<any>;
91
+ reset?: (fields?: [], toDefault?: boolean) => Promise<T>;
92
+ /**
93
+ * 对指定表单字段进行校验
94
+ */
95
+ validateField?: (fields?: string[] | string) => Promise<T>;
91
96
  /**
92
97
  * 对指定表单字段进行校验
93
98
  */
94
- validateFields?: (fields?: string[] | string) => Promise<any>;
99
+ validateFields?: (fields?: string[] | string) => Promise<T>;
95
100
  /**
96
101
  * 设置表单的值,在异步获取的数据回显的时候,使用该方法
97
102
  */
98
- setFieldsValue?: (field: string, value: any) => void;
103
+ setFieldValue?: (field: string, value: any) => void;
104
+ /**
105
+ * 设置多个表单的值,在异步获取的数据回显的时候,使用该方法
106
+ */
107
+ setFieldsValue?: (field: Record<string, any>) => void;
99
108
  /**
100
- * 获取一组字段名对应的 Values 返回为数组形式, 不传入 fields;默认返回全部信息, 不会触发表单校验
109
+ * 获取一个字段名对应的 Values 返回为数组形式, 不传入 fields;默认返回全部信息, 不会触发表单校验
101
110
  */
102
- getFieldsValue?: (field: string) => any;
111
+ getFieldValue?: (field: string) => any;
112
+ /**
113
+ * 获取所有字段名对应的 Values 返回为数组形式, 不传入 fields;默认返回全部信息, 不会触发表单校验
114
+ */
115
+ getFieldsValue?: () => any;
103
116
  /**
104
117
  * 获取一组字段名对应的错误信息,返回为数组形式, 不传入 fields;默认返回全部信息
105
118
  */
106
- getFieldsError?: (field: string) => any;
119
+ getFieldError?: (field: string) => any;
120
+ /**
121
+ * 获取所有字段名对应的错误信息,返回为数组形式, 不传入 fields;默认返回全部信息
122
+ */
123
+ getFieldsError?: () => any;
124
+ /**
125
+ * 移除所有表单项的校验结果
126
+ */
127
+ clearValidates?: () => void;
107
128
  /**
108
- * 移除表单项的校验结果。传入待移除的表单项的 field 属性组成的数组,如不传则移除整个表单的校验结果
129
+ * 移除表单项的校验结果,传入待移除的表单项的 field 属性组成的数组
109
130
  */
110
- clearValidates?: (fields: string[]) => void;
131
+ clearFieldsValidates?: (fields: string[]) => void;
111
132
  }
112
- export declare type FormFieldPath = React.ReactText[] | React.ReactText;
133
+ export declare type FormFieldPath = (string | number)[] | string | number;
113
134
  export declare type FormErrorMessage = string;
135
+ export declare type FormRules = Record<string, FormRuleModel[]>;