react-hook-form 7.25.0 → 8.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/README.md +15 -4
  2. package/dist/__typetests__/__fixtures__/index.d.ts +2 -0
  3. package/dist/__typetests__/__fixtures__/index.d.ts.map +1 -0
  4. package/dist/__typetests__/__fixtures__/type.d.ts +12 -0
  5. package/dist/__typetests__/__fixtures__/type.d.ts.map +1 -0
  6. package/dist/__typetests__/types/__fixtures__/index.d.ts +4 -0
  7. package/dist/__typetests__/types/__fixtures__/index.d.ts.map +1 -0
  8. package/dist/__typetests__/types/__fixtures__/pathString.d.ts +4 -0
  9. package/dist/__typetests__/types/__fixtures__/pathString.d.ts.map +1 -0
  10. package/dist/__typetests__/types/__fixtures__/traversable.d.ts +14 -0
  11. package/dist/__typetests__/types/__fixtures__/traversable.d.ts.map +1 -0
  12. package/dist/__typetests__/types/__fixtures__/tuple.d.ts +15 -0
  13. package/dist/__typetests__/types/__fixtures__/tuple.d.ts.map +1 -0
  14. package/dist/__typetests__/types/form.test-d.d.ts +2 -0
  15. package/dist/__typetests__/types/form.test-d.d.ts.map +1 -0
  16. package/dist/__typetests__/types/path/auto.test-d.d.ts +2 -0
  17. package/dist/__typetests__/types/path/auto.test-d.d.ts.map +1 -0
  18. package/dist/__typetests__/types/path/internal/autoCompletePath.test-d.d.ts +2 -0
  19. package/dist/__typetests__/types/path/internal/autoCompletePath.test-d.d.ts.map +1 -0
  20. package/dist/__typetests__/types/path/internal/hasPath.test-d.d.ts +2 -0
  21. package/dist/__typetests__/types/path/internal/hasPath.test-d.d.ts.map +1 -0
  22. package/dist/__typetests__/types/path/internal/keys.test-d.d.ts +2 -0
  23. package/dist/__typetests__/types/path/internal/keys.test-d.d.ts.map +1 -0
  24. package/dist/__typetests__/types/path/internal/pathGetValue.test-d.d.ts +2 -0
  25. package/dist/__typetests__/types/path/internal/pathGetValue.test-d.d.ts.map +1 -0
  26. package/dist/__typetests__/types/path/internal/pathSetValue.test-d.d.ts +2 -0
  27. package/dist/__typetests__/types/path/internal/pathSetValue.test-d.d.ts.map +1 -0
  28. package/dist/__typetests__/types/path/internal/pathTuple.test-d.d.ts +2 -0
  29. package/dist/__typetests__/types/path/internal/pathTuple.test-d.d.ts.map +1 -0
  30. package/dist/__typetests__/types/path/internal/utils.test-d.d.ts +2 -0
  31. package/dist/__typetests__/types/path/internal/utils.test-d.d.ts.map +1 -0
  32. package/dist/__typetests__/types/path/lazy.test-d.d.ts +2 -0
  33. package/dist/__typetests__/types/path/lazy.test-d.d.ts.map +1 -0
  34. package/dist/__typetests__/types/path/value.test-d.d.ts +2 -0
  35. package/dist/__typetests__/types/path/value.test-d.d.ts.map +1 -0
  36. package/dist/__typetests__/types/util.test-d.d.ts +2 -0
  37. package/dist/__typetests__/types/util.test-d.d.ts.map +1 -0
  38. package/dist/__typetests__/utils/join.test-d.d.ts +2 -0
  39. package/dist/__typetests__/utils/join.test-d.d.ts.map +1 -0
  40. package/dist/__typetests__/utils/of.test-d.d.ts +2 -0
  41. package/dist/__typetests__/utils/of.test-d.d.ts.map +1 -0
  42. package/dist/constants.d.ts +1 -0
  43. package/dist/constants.d.ts.map +1 -1
  44. package/dist/controller.d.ts +1 -1
  45. package/dist/controller.d.ts.map +1 -1
  46. package/dist/index.cjs.js +1 -1
  47. package/dist/index.cjs.js.map +1 -1
  48. package/dist/index.esm.mjs +113 -90
  49. package/dist/index.esm.mjs.map +1 -1
  50. package/dist/index.umd.js +1 -1
  51. package/dist/index.umd.js.map +1 -1
  52. package/dist/logic/createFormControl.d.ts.map +1 -1
  53. package/dist/logic/getProxyFormState.d.ts.map +1 -1
  54. package/dist/logic/getResolverOptions.d.ts +2 -2
  55. package/dist/logic/hasValidation.d.ts +1 -1
  56. package/dist/logic/validateField.d.ts.map +1 -1
  57. package/dist/types/controller.d.ts +6 -6
  58. package/dist/types/controller.d.ts.map +1 -1
  59. package/dist/types/fieldArray.d.ts +7 -9
  60. package/dist/types/fieldArray.d.ts.map +1 -1
  61. package/dist/types/form.d.ts +26 -27
  62. package/dist/types/form.d.ts.map +1 -1
  63. package/dist/types/path/auto.d.ts +76 -0
  64. package/dist/types/path/auto.d.ts.map +1 -0
  65. package/dist/types/path/branded.d.ts +61 -0
  66. package/dist/types/path/branded.d.ts.map +1 -0
  67. package/dist/types/path/index.d.ts +7 -3
  68. package/dist/types/path/index.d.ts.map +1 -1
  69. package/dist/types/path/internal/autoCompletePath.d.ts +173 -0
  70. package/dist/types/path/internal/autoCompletePath.d.ts.map +1 -0
  71. package/dist/types/path/internal/hasPath.d.ts +56 -0
  72. package/dist/types/path/internal/hasPath.d.ts.map +1 -0
  73. package/dist/types/path/internal/keys.d.ts +103 -0
  74. package/dist/types/path/internal/keys.d.ts.map +1 -0
  75. package/dist/types/path/internal/pathGetValue.d.ts +76 -0
  76. package/dist/types/path/internal/pathGetValue.d.ts.map +1 -0
  77. package/dist/types/path/internal/pathSetValue.d.ts +96 -0
  78. package/dist/types/path/internal/pathSetValue.d.ts.map +1 -0
  79. package/dist/types/path/internal/pathTuple.d.ts +73 -0
  80. package/dist/types/path/internal/pathTuple.d.ts.map +1 -0
  81. package/dist/types/path/internal/utils.d.ts +84 -0
  82. package/dist/types/path/internal/utils.d.ts.map +1 -0
  83. package/dist/types/path/lazy.d.ts +62 -0
  84. package/dist/types/path/lazy.d.ts.map +1 -0
  85. package/dist/types/path/pathString.d.ts +6 -0
  86. package/dist/types/path/pathString.d.ts.map +1 -0
  87. package/dist/types/path/value.d.ts +49 -0
  88. package/dist/types/path/value.d.ts.map +1 -0
  89. package/dist/types/utils.d.ts +11 -2
  90. package/dist/types/utils.d.ts.map +1 -1
  91. package/dist/types/validator.d.ts +2 -2
  92. package/dist/types/validator.d.ts.map +1 -1
  93. package/dist/useController.d.ts +2 -2
  94. package/dist/useController.d.ts.map +1 -1
  95. package/dist/useFieldArray.d.ts +1 -1
  96. package/dist/useFieldArray.d.ts.map +1 -1
  97. package/dist/useFormState.d.ts +2 -2
  98. package/dist/useFormState.d.ts.map +1 -1
  99. package/dist/useWatch.d.ts +6 -7
  100. package/dist/useWatch.d.ts.map +1 -1
  101. package/dist/utils/index.d.ts +3 -1
  102. package/dist/utils/index.d.ts.map +1 -1
  103. package/dist/utils/join.d.ts +16 -0
  104. package/dist/utils/join.d.ts.map +1 -0
  105. package/dist/utils/of.d.ts +13 -0
  106. package/dist/utils/of.d.ts.map +1 -0
  107. package/package.json +24 -24
  108. package/dist/types/path/common.d.ts +0 -316
  109. package/dist/types/path/common.d.ts.map +0 -1
  110. package/dist/types/path/eager.d.ts +0 -82
  111. package/dist/types/path/eager.d.ts.map +0 -1
  112. package/dist/utils/omitKeys.d.ts +0 -3
  113. package/dist/utils/omitKeys.d.ts.map +0 -1
package/README.md CHANGED
@@ -31,11 +31,10 @@
31
31
  ### Features
32
32
 
33
33
  - Built with performance, UX and DX in mind
34
- - Embraces native form validation
34
+ - Embraces native HTML form [validation](https://react-hook-form.com/get-started#Applyvalidation)
35
35
  - Out of the box integration with [UI libraries](https://codesandbox.io/s/react-hook-form-v7-controller-5h1q5)
36
36
  - [Small size](https://bundlephobia.com/result?p=react-hook-form@latest) and no [dependencies](./package.json)
37
- - Follows HTML standard for [validation](https://react-hook-form.com/get-started#Applyvalidation)
38
- - Support [Yup](https://github.com/jquense/yup), [Zod](https://github.com/vriad/zod), [Superstruct](https://github.com/ianstormtaylor/superstruct), [Joi](https://github.com/hapijs/joi), [Vest](https://github.com/ealush/vest), [class-validator](https://github.com/typestack/class-validator), [io-ts](https://github.com/gcanti/io-ts), [nope](https://github.com/bvego/nope-validator) or custom
37
+ - Support [Yup](https://github.com/jquense/yup), [Zod](https://github.com/vriad/zod), [Superstruct](https://github.com/ianstormtaylor/superstruct), [Joi](https://github.com/hapijs/joi), [Vest](https://github.com/ealush/vest), [class-validator](https://github.com/typestack/class-validator), [io-ts](https://github.com/gcanti/io-ts), [nope](https://github.com/bvego/nope-validator) and custom
39
38
 
40
39
  ### Install
41
40
 
@@ -57,7 +56,7 @@ function App() {
57
56
 
58
57
  return (
59
58
  <form onSubmit={handleSubmit(onSubmit)}>
60
- <input {...register('firstName')} /> {/* register an input */}
59
+ <input {...register('firstName')} />
61
60
  <input {...register('lastName', { required: true })} />
62
61
  {errors.lastName && <p>Last name is required.</p>}
63
62
  <input {...register('age', { pattern: /\d+/ })} />
@@ -85,6 +84,12 @@ Thanks go to these kind and lovely sponsors (companies and individuals)!
85
84
  <a href="https://graphcms.com/" target="_blank">
86
85
  <img src="https://avatars.githubusercontent.com/u/31031438?s=200&v=4" width="94" height="94" />
87
86
  </a>
87
+ <a href="https://kanamekey.com/" target="_blank">
88
+ <img src="https://images.opencollective.com/kaname/d15fd98/logo/256.png" width="94" height="94" />
89
+ </a>
90
+ <a href="https://marmelab.com/" target="_blank">
91
+ <img src="https://images.opencollective.com/marmelab/d7fd82f/logo/256.png" width="94" height="94" />
92
+ </a>
88
93
 
89
94
  <p>
90
95
  <a href="https://github.com/sayav"
@@ -393,6 +398,12 @@ Thanks go to these kind and lovely sponsors (companies and individuals)!
393
398
  width="45"
394
399
  height="45"
395
400
  /></a>
401
+ <a href="https://github.com/jprosevear"
402
+ ><img
403
+ src="https://avatars.githubusercontent.com/u/699616?v=4"
404
+ width="45"
405
+ height="45"
406
+ /></a>
396
407
  </p>
397
408
 
398
409
  ### Backers
@@ -0,0 +1,2 @@
1
+ export * from './type';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/__typetests__/__fixtures__/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * tsd expects a value when calling expectType.
3
+ * We're mostly dealing with types though. Therefore,
4
+ * simply export this const and cast it to the expected type.
5
+ * @example
6
+ * ```
7
+ * type Actual = DropLastElement<[0, 1, 2]>;
8
+ * expectType<[0, 1]>(_ as Actual);
9
+ * ```
10
+ */
11
+ export declare const _: never;
12
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/__typetests__/__fixtures__/type.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './pathString';
2
+ export * from './traversable';
3
+ export * from './tuple';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/__typetests__/types/__fixtures__/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare type ConcatTenTimes<T extends string> = `${T}.${T}.${T}.${T}.${T}.${T}.${T}.${T}.${T}.${T}`;
2
+ export declare type HundredPathString<T extends string> = ConcatTenTimes<ConcatTenTimes<T>>;
3
+ export {};
4
+ //# sourceMappingURL=pathString.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathString.d.ts","sourceRoot":"","sources":["../../../../src/__typetests__/types/__fixtures__/pathString.ts"],"names":[],"mappings":"AAAA,aAAK,cAAc,CAAC,CAAC,SAAS,MAAM,IAClC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAEtD,oBAAY,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,cAAc,CAC9D,cAAc,CAAC,CAAC,CAAC,CAClB,CAAC"}
@@ -0,0 +1,14 @@
1
+ interface Base<T, V> {
2
+ foo: T;
3
+ bar: [T];
4
+ baz: Array<T>;
5
+ value: V;
6
+ }
7
+ export declare type InfiniteType<T> = Base<InfiniteType<T>, T>;
8
+ export declare type NullableInfiniteType<T> = null | undefined | Partial<Base<NullableInfiniteType<T>, T>>;
9
+ export declare type Depth3Type<T> = Base<Base<Base<never, T>, T>, T>;
10
+ export interface Nested<T> {
11
+ nested: T;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=traversable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traversable.d.ts","sourceRoot":"","sources":["../../../../src/__typetests__/types/__fixtures__/traversable.ts"],"names":[],"mappings":"AAAA,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC;IACjB,GAAG,EAAE,CAAC,CAAC;IACP,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACT,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;CACV;AAED,oBAAY,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEvD,oBAAY,oBAAoB,CAAC,CAAC,IAC9B,IAAI,GACJ,SAAS,GACT,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9C,oBAAY,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7D,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC;CACX"}
@@ -0,0 +1,15 @@
1
+ declare type ConcatTupleTenTimes<T extends unknown[]> = [
2
+ ...T,
3
+ ...T,
4
+ ...T,
5
+ ...T,
6
+ ...T,
7
+ ...T,
8
+ ...T,
9
+ ...T,
10
+ ...T,
11
+ ...T
12
+ ];
13
+ export declare type HundredTuple<T> = ConcatTupleTenTimes<ConcatTupleTenTimes<[T]>>;
14
+ export {};
15
+ //# sourceMappingURL=tuple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tuple.d.ts","sourceRoot":"","sources":["../../../../src/__typetests__/types/__fixtures__/tuple.ts"],"names":[],"mappings":"AAAA,aAAK,mBAAmB,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI;IAC9C,GAAG,CAAC;IACJ,GAAG,CAAC;IACJ,GAAG,CAAC;IACJ,GAAG,CAAC;IACJ,GAAG,CAAC;IACJ,GAAG,CAAC;IACJ,GAAG,CAAC;IACJ,GAAG,CAAC;IACJ,GAAG,CAAC;IACJ,GAAG,CAAC;CACL,CAAC;AAEF,oBAAY,YAAY,CAAC,CAAC,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=form.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.test-d.d.ts","sourceRoot":"","sources":["../../../src/__typetests__/types/form.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auto.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto.test-d.d.ts","sourceRoot":"","sources":["../../../../src/__typetests__/types/path/auto.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=autoCompletePath.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoCompletePath.test-d.d.ts","sourceRoot":"","sources":["../../../../../src/__typetests__/types/path/internal/autoCompletePath.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hasPath.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasPath.test-d.d.ts","sourceRoot":"","sources":["../../../../../src/__typetests__/types/path/internal/hasPath.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keys.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.test-d.d.ts","sourceRoot":"","sources":["../../../../../src/__typetests__/types/path/internal/keys.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pathGetValue.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathGetValue.test-d.d.ts","sourceRoot":"","sources":["../../../../../src/__typetests__/types/path/internal/pathGetValue.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pathSetValue.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathSetValue.test-d.d.ts","sourceRoot":"","sources":["../../../../../src/__typetests__/types/path/internal/pathSetValue.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pathTuple.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathTuple.test-d.d.ts","sourceRoot":"","sources":["../../../../../src/__typetests__/types/path/internal/pathTuple.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.test-d.d.ts","sourceRoot":"","sources":["../../../../../src/__typetests__/types/path/internal/utils.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=lazy.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.test-d.d.ts","sourceRoot":"","sources":["../../../../src/__typetests__/types/path/lazy.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=value.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.test-d.d.ts","sourceRoot":"","sources":["../../../../src/__typetests__/types/path/value.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=util.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.test-d.d.ts","sourceRoot":"","sources":["../../../src/__typetests__/types/util.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=join.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join.test-d.d.ts","sourceRoot":"","sources":["../../../src/__typetests__/utils/join.test-d.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=of.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"of.test-d.d.ts","sourceRoot":"","sources":["../../../src/__typetests__/utils/of.test-d.ts"],"names":[],"mappings":""}
@@ -1,6 +1,7 @@
1
1
  import { ValidationMode } from './types';
2
2
  export declare const EVENTS: {
3
3
  BLUR: string;
4
+ FOCUS_OUT: string;
4
5
  CHANGE: string;
5
6
  };
6
7
  export declare const VALIDATION_MODE: ValidationMode;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,cAM7B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;CAQlC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,MAAM;;;;CAIlB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,cAM7B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;CAQlC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import { ControllerProps, FieldValues } from './types';
3
- declare const Controller: <TFieldValues extends FieldValues = FieldValues, TName extends import("./types").Path<TFieldValues> = import("./types").Path<TFieldValues>>(props: ControllerProps<TFieldValues, TName>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
3
+ declare const Controller: <TFieldValues extends FieldValues, TName extends string>(props: ControllerProps<TFieldValues, TName>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
4
4
  export { Controller };
5
5
  //# sourceMappingURL=controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../src/controller.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAa,WAAW,EAAE,MAAM,SAAS,CAAC;AAGlE,QAAA,MAAM,UAAU,oRAK4C,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../src/controller.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAc,MAAM,SAAS,CAAC;AAGnE,QAAA,MAAM,UAAU,iMAEuB,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,CAAC"}
package/dist/index.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("react")),r=e=>"checkbox"===e.type,s=e=>e instanceof Date,a=e=>null==e;const n=e=>"object"==typeof e;var i=e=>!a(e)&&!Array.isArray(e)&&n(e)&&!s(e),o=e=>i(e)&&e.target?r(e.target)?e.target.checked:e.target.value:e,u=(e,t)=>[...e].some(e=>(e=>e.substring(0,e.search(/.\d/))||e)(t)===e),l=e=>e.filter(Boolean),c=e=>void 0===e,d=(e,t,r)=>{if(!t||!i(e))return r;const s=l(t.split(/[,[\].]+?/)).reduce((e,t)=>a(e)?e:e[t],e);return c(s)||s===e?c(e[t])?r:e[t]:s};const f="blur",m="change",g="onBlur",y="onChange",b="onSubmit",h="onTouched",p="all",_="max",v="min",x="maxLength",A="minLength",F="pattern",V="required",j="validate";var O=(e,t)=>{const r=Object.assign({},e);return delete r[t],r};const S=t.default.createContext(null),w=()=>t.default.useContext(S);var k=(e,t,r,s=!0)=>{function a(a){return()=>{if(a in e)return t[a]!==p&&(t[a]=!s||p),r&&(r[a]=!0),e[a]}}const n={};for(const t in e)Object.defineProperty(n,t,{get:a(t)});return n},D=e=>i(e)&&!Object.keys(e).length,C=(e,t,r)=>{const s=O(e,"name");return D(s)||Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(e=>t[e]===(!r||p))},E=e=>Array.isArray(e)?e:[e],U=(e,t,r)=>r&&t?e===t:!e||!t||e===t||E(e).some(e=>e&&(e.startsWith(t)||t.startsWith(e)));function B(e){const r=t.default.useRef(e);r.current=e,t.default.useEffect(()=>{const t=!e.disabled&&r.current.subject.subscribe({next:r.current.callback});return()=>(e=>{e&&e.unsubscribe()})(t)},[e.disabled])}function N(e){const r=w(),{control:s=r.control,disabled:a,name:n,exact:i}=e||{},[o,u]=t.default.useState(s._formState),l=t.default.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1}),c=t.default.useRef(n),d=t.default.useRef(!0);c.current=n;return B({disabled:a,callback:t.default.useCallback(e=>d.current&&U(c.current,e.name,i)&&C(e,l.current)&&u(Object.assign(Object.assign({},s._formState),e)),[s,i]),subject:s._subjects.state}),t.default.useEffect(()=>()=>{d.current=!1},[]),k(o,s._proxyFormState,l.current,!1)}var T=e=>"string"==typeof e,M=(e,t,r,s)=>{const a=Array.isArray(e);return T(e)?(s&&t.watch.add(e),d(r,e)):a?e.map(e=>(s&&t.watch.add(e),d(r,e))):(s&&(t.watchAll=!0),r)},L=e=>"function"==typeof e,R=e=>{for(const t in e)if(L(e[t]))return!0;return!1};function q(e){const r=w(),{control:s=r.control,name:a,defaultValue:n,disabled:o,exact:u}=e||{},l=t.default.useRef(a);l.current=a;const d=t.default.useCallback(e=>{if(U(l.current,e.name,u)){const t=M(l.current,s._names,e.values||s._formValues);m(c(l.current)||i(t)&&!R(t)?Object.assign({},t):Array.isArray(t)?[...t]:c(t)?n:t)}},[s,u,n]);B({disabled:o,subject:s._subjects.watch,callback:d});const[f,m]=t.default.useState(c(n)?s._getWatch(a):n);return t.default.useEffect(()=>{s._removeUnmounted()}),f}function W(e){const r=w(),{name:s,control:a=r.control,shouldUnregister:n}=e,i=u(a._names.array,s),l=q({control:a,name:s,defaultValue:d(a._formValues,s,d(a._defaultValues,s,e.defaultValue)),exact:!i}),c=N({control:a,name:s}),g=t.default.useRef(a.register(s,Object.assign(Object.assign({},e.rules),{value:l})));return t.default.useEffect(()=>{const e=(e,t)=>{const r=d(a._fields,e);r&&(r._f.mount=t)};return e(s,!0),()=>{const t=a._options.shouldUnregister||n;(i?t&&!a._stateFlags.action:t)?a.unregister(s):e(s,!1)}},[s,a,i,n]),{field:{name:s,value:l,onChange:t.default.useCallback(e=>{g.current.onChange({target:{value:o(e),name:s},type:m})},[s]),onBlur:t.default.useCallback(()=>{g.current.onBlur({target:{value:d(a._formValues,s),name:s},type:f})},[s,a]),ref:t.default.useCallback(e=>{const t=d(a._fields,s);e&&t&&e.focus&&(t._f.ref={focus:()=>e.focus(),setCustomValidity:t=>e.setCustomValidity(t),reportValidity:()=>e.reportValidity()})},[s,a])},formState:c,fieldState:a.getFieldState(s,c)}}var I=(e,t,r,s,a)=>t?Object.assign(Object.assign({},r[e]),{types:Object.assign(Object.assign({},r[e]&&r[e].types?r[e].types:{}),{[s]:a||!0})}):{},P=e=>/^\w*$/.test(e),$=e=>l(e.replace(/["|']|\]/g,"").split(/\.|\[/));function H(e,t,r){let s=-1;const a=P(t)?[t]:$(t),n=a.length,o=n-1;for(;++s<n;){const t=a[s];let n=r;if(s!==o){const r=e[t];n=i(r)||Array.isArray(r)?r:isNaN(+a[s+1])?{}:[]}e[t]=n,e=e[t]}return e}const z=(e,t,r)=>{for(const s of r||Object.keys(e)){const r=d(e,s);if(r){const e=r._f,s=O(r,"_f");if(e&&t(e.name)){if(e.ref.focus&&c(e.ref.focus()))break;if(e.refs){e.refs[0].focus();break}}else i(s)&&z(s,t)}}};var G=()=>{const e="undefined"==typeof performance?Date.now():1e3*performance.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const r=(16*Math.random()+e)%16|0;return("x"==t?r:3&r|8).toString(16)})},J=(e,t,r={})=>r.shouldFocus||c(r.shouldFocus)?r.focusName||`${e}.${c(r.focusIndex)?t:r.focusIndex}.`:"",K=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(t=>e.startsWith(t)&&/^\.\w+/.test(e.slice(t.length))));function Q(e,t){return[...e,...E(t)]}function X(e){let t;const r=Array.isArray(e);if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set(e);else{if(!r&&!i(e))return e;t=r?[]:{};for(const r in e){if(L(e[r])){t=e;break}t[r]=X(e[r])}}return t}var Y=e=>Array.isArray(e)?e.map(()=>{}):void 0;function Z(e,t,r){return[...e.slice(0,t),...E(r),...e.slice(t)]}var ee=(e,t,r)=>Array.isArray(e)?(c(e[r])&&(e[r]=void 0),e.splice(r,0,e.splice(t,1)[0]),e):[];function te(e,t){return[...E(t),...E(e)]}var re=(e,t)=>c(t)?[]:function(e,t){let r=0;const s=[...e];for(const e of t)s.splice(e-r,1),r++;return l(s).length?s:[]}(e,E(t).sort((e,t)=>e-t)),se=(e,t,r)=>{e[t]=[e[r],e[r]=e[t]][0]},ae=(e,t,r)=>(e[t]=r,e);function ne(){let e=[];return{get observers(){return e},next:t=>{for(const r of e)r.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}}var ie=e=>a(e)||!n(e);function oe(e,t){if(ie(e)||ie(t))return e===t;if(s(e)&&s(t))return e.getTime()===t.getTime();const r=Object.keys(e),a=Object.keys(t);if(r.length!==a.length)return!1;for(const n of r){const r=e[n];if(!a.includes(n))return!1;if("ref"!==n){const e=t[n];if(s(r)&&s(e)||i(r)&&i(e)||Array.isArray(r)&&Array.isArray(e)?!oe(r,e):r!==e)return!1}}return!0}var ue=e=>({isOnSubmit:!e||e===b,isOnBlur:e===g,isOnChange:e===y,isOnAll:e===p,isOnTouch:e===h}),le=e=>"boolean"==typeof e,ce=e=>"file"===e.type,de=e=>e instanceof HTMLElement,fe=e=>"select-multiple"===e.type,me=e=>"radio"===e.type,ge="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document,ye=e=>de(e)&&e.isConnected;function be(e,t){const r=P(t)?[t]:$(t),s=1==r.length?e:function(e,t){const r=t.slice(0,-1).length;let s=0;for(;s<r;)e=c(e)?s++:e[t[s++]];return e}(e,r),a=r[r.length-1];let n;s&&delete s[a];for(let t=0;t<r.slice(0,-1).length;t++){let s,a=-1;const o=r.slice(0,-(t+1)),u=o.length-1;for(t>0&&(n=e);++a<o.length;){const t=o[a];s=s?s[t]:e[t],u===a&&(i(s)&&D(s)||Array.isArray(s)&&!s.filter(e=>i(e)&&!D(e)||le(e)).length)&&(n?delete n[t]:delete e[t]),n=s}}return e}function he(e,t={}){const r=Array.isArray(e);if(i(e)||r)for(const r in e)Array.isArray(e[r])||i(e[r])&&!R(e[r])?(t[r]=Array.isArray(e[r])?[]:{},he(e[r],t[r])):a(e[r])||(t[r]=!0);return t}var pe=(e,t)=>function e(t,r,s){const n=Array.isArray(t);if(i(t)||n)for(const n in t)Array.isArray(t[n])||i(t[n])&&!R(t[n])?c(r)||ie(s[n])?s[n]=Array.isArray(t[n])?he(t[n],[]):Object.assign({},he(t[n])):e(t[n],a(r)?{}:r[n],s[n]):s[n]=!oe(t[n],r[n]);return s}(e,t,he(t));const _e={value:!1,isValid:!1},ve={value:!0,isValid:!0};var xe=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!c(e[0].attributes.value)?c(e[0].value)||""===e[0].value?ve:{value:e[0].value,isValid:!0}:ve:_e}return _e},Ae=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:s})=>c(e)?e:t?""===e?NaN:+e:r&&T(e)?new Date(e):s?s(e):e;const Fe={isValid:!1,value:null};var Ve=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,Fe):Fe;function je(e){const t=e.ref;if(!(e.refs?e.refs.every(e=>e.disabled):t.disabled))return ce(t)?t.files:me(t)?Ve(e.refs).value:fe(t)?[...t.selectedOptions].map(({value:e})=>e):r(t)?xe(e.refs).value:Ae(c(t.value)?e.ref.value:t.value,e)}var Oe=e=>e instanceof RegExp,Se=e=>c(e)?void 0:Oe(e)?e.source:i(e)?Oe(e.value)?e.value.source:e.value:e;function we(e,t,r){const s=d(e,r);if(s||P(r))return{error:s,name:r};const a=r.split(".");for(;a.length;){const s=a.join("."),n=d(t,s),i=d(e,s);if(n&&!Array.isArray(n)&&r!==s)return{name:r};if(i&&i.type)return{name:s,error:i};a.pop()}return{name:r}}var ke=e=>T(e)||t.default.isValidElement(e);function De(e,t,r="validate"){if(ke(e)||Array.isArray(e)&&e.every(ke)||le(e)&&!e)return{type:r,message:ke(e)?e:"",ref:t}}var Ce=e=>i(e)&&!Oe(e)?e:{value:e,message:""},Ee=async(e,t,s,n)=>{const{ref:o,refs:u,required:l,maxLength:c,minLength:d,min:f,max:m,pattern:g,validate:y,name:b,valueAsNumber:h,mount:p,disabled:O}=e._f;if(!p||O)return{};const S=u?u[0]:o,w=e=>{n&&S.reportValidity&&(S.setCustomValidity(le(e)?"":e||" "),S.reportValidity())},k={},C=me(o),E=r(o),U=C||E,B=(h||ce(o))&&!o.value||""===t||Array.isArray(t)&&!t.length,N=I.bind(null,b,s,k),M=(e,t,r,s=x,a=A)=>{const n=e?t:r;k[b]=Object.assign({type:e?s:a,message:n,ref:o},N(e?s:a,n))};if(l&&(!U&&(B||a(t))||le(t)&&!t||E&&!xe(u).isValid||C&&!Ve(u).isValid)){const{value:e,message:t}=ke(l)?{value:!!l,message:l}:Ce(l);if(e&&(k[b]=Object.assign({type:V,message:t,ref:S},N(V,t)),!s))return w(t),k}if(!(B||a(f)&&a(m))){let e,r;const n=Ce(m),i=Ce(f);if(isNaN(t)){const s=o.valueAsDate||new Date(t);T(n.value)&&(e=s>new Date(n.value)),T(i.value)&&(r=s<new Date(i.value))}else{const s=o.valueAsNumber||parseFloat(t);a(n.value)||(e=s>n.value),a(i.value)||(r=s<i.value)}if((e||r)&&(M(!!e,n.message,i.message,_,v),!s))return w(k[b].message),k}if((c||d)&&!B&&T(t)){const e=Ce(c),r=Ce(d),n=!a(e.value)&&t.length>e.value,i=!a(r.value)&&t.length<r.value;if((n||i)&&(M(n,e.message,r.message),!s))return w(k[b].message),k}if(g&&!B&&T(t)){const{value:e,message:r}=Ce(g);if(Oe(e)&&!t.match(e)&&(k[b]=Object.assign({type:F,message:r,ref:o},N(F,r)),!s))return w(r),k}if(y)if(L(y)){const e=De(await y(t),S);if(e&&(k[b]=Object.assign(Object.assign({},e),N(j,e.message)),!s))return w(e.message),k}else if(i(y)){let e={};for(const r in y){if(!D(e)&&!s)break;const a=De(await y[r](t),S,r);a&&(e=Object.assign(Object.assign({},a),N(r,a.message)),w(a.message),s&&(k[b]=e))}if(!D(e)&&(k[b]=Object.assign({ref:S},e),!s))return k}return w(!0),k};const Ue={mode:b,reValidateMode:y,shouldFocusError:!0};function Be(e={}){let t,n=Object.assign(Object.assign({},Ue),e),i={isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}},m={},g=n.defaultValues||{},y=n.shouldUnregister?{}:X(g),b={action:!1,mount:!1,watch:!1},h={mount:new Set,unMount:new Set,array:new Set,watch:new Set},_=0,v={};const x={isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},A={watch:ne(),array:ne(),state:ne()},F=ue(n.mode),V=ue(n.reValidateMode),j=n.criteriaMode===p,S=async e=>{let t=!1;return x.isValid&&(t=n.resolver?D((await B()).errors):await N(m,!0),e||t===i.isValid||(i.isValid=t,A.state.next({isValid:t}))),t},w=(e,t)=>(H(i.errors,e,t),A.state.next({errors:i.errors})),k=(e,t,r,s)=>{const a=d(m,e);if(a){const n=d(y,e,c(r)?d(g,e):r);c(n)||s&&s.defaultChecked||t?H(y,e,t?n:je(a._f)):W(e,n),b.mount&&S()}},C=(e,t,r,s,a)=>{let n=!1;const o={name:e},u=d(i.touchedFields,e);if(x.isDirty){const e=i.isDirty;i.isDirty=o.isDirty=R(),n=e!==o.isDirty}if(x.dirtyFields&&(!r||s)){const r=d(i.dirtyFields,e);oe(d(g,e),t)?be(i.dirtyFields,e):H(i.dirtyFields,e,!0),o.dirtyFields=i.dirtyFields,n=n||r!==d(i.dirtyFields,e)}return r&&!u&&(H(i.touchedFields,e,r),o.touchedFields=i.touchedFields,n=n||x.touchedFields&&u!==r),n&&a&&A.state.next(o),n?o:{}},U=async(r,s,a,n,o)=>{const u=d(i.errors,s),l=x.isValid&&i.isValid!==a;var c,f;if(e.delayError&&n?(t=t||(c=w,f=e.delayError,(...e)=>{clearTimeout(_),_=window.setTimeout(()=>c(...e),f)}),t(s,n)):(clearTimeout(_),n?H(i.errors,s,n):be(i.errors,s)),((n?!oe(u,n):u)||!D(o)||l)&&!r){const e=Object.assign(Object.assign(Object.assign({},o),l?{isValid:a}:{}),{errors:i.errors,name:s});i=Object.assign(Object.assign({},i),e),A.state.next(e)}v[s]--,x.isValidating&&!v[s]&&(A.state.next({isValidating:!1}),v={})},B=async e=>n.resolver?await n.resolver(Object.assign({},y),n.context,((e,t,r,s)=>{const a={};for(const r of e){const e=d(t,r);e&&H(a,r,e._f)}return{criteriaMode:r,names:[...e],fields:a,shouldUseNativeValidation:s}})(e||h.mount,m,n.criteriaMode,n.shouldUseNativeValidation)):{},N=async(e,t,r={valid:!0})=>{for(const s in e){const a=e[s];if(a){const e=a._f,s=O(a,"_f");if(e){const s=await Ee(a,d(y,e.name),j,n.shouldUseNativeValidation);if(s[e.name]&&(r.valid=!1,t))break;t||(s[e.name]?H(i.errors,e.name,s[e.name]):be(i.errors,e.name))}s&&await N(s,t,r)}}return r.valid},R=(e,t)=>(e&&t&&H(y,e,t),!oe(J(),g)),q=(e,t,r)=>{const s=Object.assign({},b.mount?y:c(t)?g:T(e)?{[e]:t}:t);return M(e,h,s,r)},W=(e,t,s={})=>{const n=d(m,e);let i=t;if(n){const s=n._f;s&&(!s.disabled&&H(y,e,Ae(t,s)),i=ge&&de(s.ref)&&a(t)?"":t,fe(s.ref)?[...s.ref.options].forEach(e=>e.selected=i.includes(e.value)):s.refs?r(s.ref)?s.refs.length>1?s.refs.forEach(e=>e.checked=Array.isArray(i)?!!i.find(t=>t===e.value):i===e.value):s.refs[0]&&(s.refs[0].checked=!!i):s.refs.forEach(e=>e.checked=e.value===i):ce(s.ref)||(s.ref.value=i,s.ref.type||A.watch.next({name:e})))}(s.shouldDirty||s.shouldTouch)&&C(e,i,s.shouldTouch,s.shouldDirty,!0),s.shouldValidate&&G(e)},I=(e,t,r)=>{for(const a in t){const n=t[a],i=`${e}.${a}`,o=d(m,i);!h.array.has(e)&&ie(n)&&(!o||o._f)||s(n)?W(i,n,r):I(i,n,r)}},P=(e,t,r={})=>{const s=d(m,e),n=h.array.has(e),o=X(t);H(y,e,o),n?(A.array.next({name:e,values:y}),(x.isDirty||x.dirtyFields)&&r.shouldDirty&&(i.dirtyFields=pe(g,y),A.state.next({name:e,dirtyFields:i.dirtyFields,isDirty:R(e,o)}))):!s||s._f||a(o)?W(e,o,r):I(e,o,r),K(e,h)&&A.state.next({}),A.watch.next({name:e})},$=async e=>{const t=e.target;let r=t.name;const s=d(m,r);if(s){let u,l;const c=t.type?je(s._f):o(e),g=e.type===f,b=!((a=s._f).mount&&(a.required||a.min||a.max||a.maxLength||a.minLength||a.pattern||a.validate)||n.resolver||d(i.errors,r)||s._f.deps)||((e,t,r,s,a)=>!a.isOnAll&&(!r&&a.isOnTouch?!(t||e):(r?s.isOnBlur:a.isOnBlur)?!e:!(r?s.isOnChange:a.isOnChange)||e))(g,d(i.touchedFields,r),i.isSubmitted,V,F),p=K(r,h,g);H(y,r,c),g?s._f.onBlur&&s._f.onBlur(e):s._f.onChange&&s._f.onChange(e);const _=C(r,c,g,!1),O=!D(_)||p;if(!g&&A.watch.next({name:r,type:e.type}),b)return O&&A.state.next(Object.assign({name:r},p?{}:_));if(!g&&p&&A.state.next({}),v[r]=(v[r],1),x.isValidating&&A.state.next({isValidating:!0}),n.resolver){const{errors:e}=await B([r]),t=we(i.errors,m,r),s=we(e,m,t.name||r);u=s.error,r=s.name,l=D(e)}else u=(await Ee(s,d(y,r),j,n.shouldUseNativeValidation))[r],l=await S(!0);s._f.deps&&G(s._f.deps),U(!1,r,l,u,_)}var a},G=async(e,t={})=>{let r,s;const a=E(e);if(A.state.next({isValidating:!0}),n.resolver){const t=await(async e=>{const{errors:t}=await B();if(e)for(const r of e){const e=d(t,r);e?H(i.errors,r,e):be(i.errors,r)}else i.errors=t;return t})(c(e)?e:a);r=D(t),s=e?!a.some(e=>d(t,e)):r}else e?(s=(await Promise.all(a.map(async e=>{const t=d(m,e);return await N(t&&t._f?{[e]:t}:t)}))).every(Boolean),(s||i.isValid)&&S()):s=r=await N(m);return A.state.next(Object.assign(Object.assign(Object.assign({},!T(e)||x.isValid&&r!==i.isValid?{}:{name:e}),n.resolver?{isValid:r}:{}),{errors:i.errors,isValidating:!1})),t.shouldFocus&&!s&&z(m,e=>d(i.errors,e),e?a:h.mount),s},J=e=>{const t=Object.assign(Object.assign({},g),b.mount?y:{});return c(e)?t:T(e)?d(t,e):e.map(e=>d(t,e))},Q=(e,t)=>({invalid:!!d((t||i).errors,e),isDirty:!!d((t||i).dirtyFields,e),isTouched:!!d((t||i).touchedFields,e),error:d((t||i).errors,e)}),Y=(e,t={})=>{for(const r of e?E(e):h.mount)h.mount.delete(r),h.array.delete(r),d(m,r)&&(t.keepValue||(be(m,r),be(y,r)),!t.keepError&&be(i.errors,r),!t.keepDirty&&be(i.dirtyFields,r),!t.keepTouched&&be(i.touchedFields,r),!n.shouldUnregister&&!t.keepDefaultValue&&be(g,r));A.watch.next({}),A.state.next(Object.assign(Object.assign({},i),t.keepDirty?{isDirty:R()}:{})),!t.keepIsValid&&S()},Z=(e,t={})=>{let s=d(m,e);const a=le(t.disabled);return H(m,e,{_f:Object.assign(Object.assign(Object.assign({},s&&s._f?s._f:{ref:{name:e}}),{name:e,mount:!0}),t)}),h.mount.add(e),s?a&&H(y,e,t.disabled?void 0:d(y,e,je(s._f))):k(e,!0,t.value),Object.assign(Object.assign(Object.assign({},a?{disabled:t.disabled}:{}),n.shouldUseNativeValidation?{required:!!t.required,min:Se(t.min),max:Se(t.max),minLength:Se(t.minLength),maxLength:Se(t.maxLength),pattern:Se(t.pattern)}:{}),{name:e,onChange:$,onBlur:$,ref:a=>{if(a){Z(e,t),s=d(m,e);const n=c(a.value)&&a.querySelectorAll&&a.querySelectorAll("input,select,textarea")[0]||a,i=(e=>me(e)||r(e))(n),o=s._f.refs||[];if(i?o.find(e=>e===n):n===s._f.ref)return;H(m,e,{_f:Object.assign(Object.assign({},s._f),i?{refs:o.concat(n).filter(ye),ref:{type:n.type,name:e}}:{ref:n})}),k(e,!1,void 0,n)}else s=d(m,e,{}),s._f&&(s._f.mount=!1),(n.shouldUnregister||t.shouldUnregister)&&(!u(h.array,e)||!b.action)&&h.unMount.add(e)}})};return{control:{register:Z,unregister:Y,getFieldState:Q,_executeSchema:B,_getWatch:q,_getDirty:R,_updateValid:S,_removeUnmounted:()=>{for(const e of h.unMount){const t=d(m,e);t&&(t._f.refs?t._f.refs.every(e=>!ye(e)):!ye(t._f.ref))&&Y(e)}h.unMount=new Set},_updateFieldArray:(e,t,r,s=[],a=!0,n=!0)=>{if(b.action=!0,n&&Array.isArray(d(m,e))){const s=t(d(m,e),r.argA,r.argB);a&&H(m,e,s)}if(x.errors&&n&&Array.isArray(d(i.errors,e))){const s=t(d(i.errors,e),r.argA,r.argB);a&&H(i.errors,e,s),((e,t)=>{!l(d(e,t)).length&&be(e,t)})(i.errors,e)}if(x.touchedFields&&Array.isArray(d(i.touchedFields,e))){const s=t(d(i.touchedFields,e),r.argA,r.argB);a&&H(i.touchedFields,e,s)}x.dirtyFields&&(i.dirtyFields=pe(g,y)),A.state.next({isDirty:R(e,s),dirtyFields:i.dirtyFields,errors:i.errors,isValid:i.isValid})},_getFieldArray:t=>l(d(b.mount?y:g,t,e.shouldUnregister?d(g,t,[]):[])),_subjects:A,_proxyFormState:x,get _fields(){return m},set _fields(e){m=e},get _formValues(){return y},set _formValues(e){y=e},get _stateFlags(){return b},set _stateFlags(e){b=e},get _defaultValues(){return g},set _defaultValues(e){g=e},get _names(){return h},set _names(e){h=e},get _formState(){return i},set _formState(e){i=e},get _options(){return n},set _options(e){n=Object.assign(Object.assign({},n),e)}},trigger:G,register:Z,handleSubmit:(e,t)=>async r=>{r&&(r.preventDefault&&r.preventDefault(),r.persist&&r.persist());let s=!0,a=n.shouldUnregister?X(y):Object.assign({},y);A.state.next({isSubmitting:!0});try{if(n.resolver){const{errors:e,values:t}=await B();i.errors=e,a=t}else await N(m);D(i.errors)&&Object.keys(i.errors).every(e=>d(a,e))?(A.state.next({errors:{},isSubmitting:!0}),await e(a,r)):(t&&await t(i.errors,r),n.shouldFocusError&&z(m,e=>d(i.errors,e),h.mount))}catch(e){throw s=!1,e}finally{i.isSubmitted=!0,A.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:D(i.errors)&&s,submitCount:i.submitCount+1,errors:i.errors})}},watch:(e,t)=>L(e)?A.watch.subscribe({next:r=>e(q(void 0,t),r)}):q(e,t,!0),setValue:P,getValues:J,reset:(t,r={})=>{const s=t||g,a=X(s),n=t&&!D(t)?a:g;if(r.keepDefaultValues||(g=s),!r.keepValues){if(ge&&c(t))for(const e of h.mount){const t=d(m,e);if(t&&t._f){const e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;try{de(e)&&e.closest("form").reset();break}catch(e){}}}y=e.shouldUnregister?r.keepDefaultValues?X(g):{}:a,m={},A.array.next({values:n}),A.watch.next({values:n})}h={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},b.mount=!x.isValid||!!r.keepIsValid,b.watch=!!e.shouldUnregister,A.state.next({submitCount:r.keepSubmitCount?i.submitCount:0,isDirty:r.keepDirty?i.isDirty:!!r.keepDefaultValues&&!oe(t,g),isSubmitted:!!r.keepIsSubmitted&&i.isSubmitted,dirtyFields:r.keepDirty?i.dirtyFields:r.keepDefaultValues&&t?Object.entries(t).reduce((e,[t,r])=>Object.assign(Object.assign({},e),{[t]:r!==d(g,t)}),{}):{},touchedFields:r.keepTouched?i.touchedFields:{},errors:r.keepErrors?i.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})},resetField:(e,t={})=>{d(m,e)&&(c(t.defaultValue)?P(e,d(g,e)):(P(e,t.defaultValue),H(g,e,t.defaultValue)),t.keepTouched||be(i.touchedFields,e),t.keepDirty||(be(i.dirtyFields,e),i.isDirty=t.defaultValue?R(e,d(g,e)):R()),t.keepError||(be(i.errors,e),x.isValid&&S()),A.state.next(Object.assign({},i)))},clearErrors:e=>{e?E(e).forEach(e=>be(i.errors,e)):i.errors={},A.state.next({errors:i.errors})},unregister:Y,setError:(e,t,r)=>{const s=(d(m,e,{_f:{}})._f||{}).ref;H(i.errors,e,Object.assign(Object.assign({},t),{ref:s})),A.state.next({name:e,errors:i.errors,isValid:!1}),r&&r.shouldFocus&&s&&s.focus&&s.focus()},setFocus:e=>{const t=d(m,e)._f;(t.ref.focus?t.ref:t.refs[0]).focus()},getFieldState:Q}}exports.Controller=e=>e.render(W(e)),exports.FormProvider=e=>t.default.createElement(S.Provider,{value:O(e,"children")},e.children),exports.appendErrors=I,exports.get=d,exports.set=H,exports.useController=W,exports.useFieldArray=e=>{const r=w(),{control:s=r.control,name:a,keyName:n="id",shouldUnregister:i}=e,[o,u]=t.default.useState(s._getFieldArray(a)),l=t.default.useRef(s._getFieldArray(a).map(G)),c=t.default.useRef(o),f=t.default.useRef(a),m=t.default.useRef(!1);f.current=a,c.current=o,s._names.array.add(a);B({callback:t.default.useCallback(({values:e,name:t})=>{if(t===f.current||!t){const t=d(e,f.current,[]);u(t),l.current=t.map(G)}},[]),subject:s._subjects.array});const g=t.default.useCallback(e=>{m.current=!0,H(s._formValues,a,e)},[s,a]);return t.default.useEffect(()=>{s._stateFlags.action=!1,K(a,s._names)&&s._subjects.state.next({}),m.current&&s._executeSchema([a]).then(e=>{const t=d(e.errors,a);t&&t.type&&!d(s._formState.errors,a)&&(H(s._formState.errors,a,t),s._subjects.state.next({errors:s._formState.errors}))}),s._subjects.watch.next({name:a,values:s._formValues}),s._names.focus&&z(s._fields,e=>e.startsWith(s._names.focus)),s._names.focus="",s._proxyFormState.isValid&&s._updateValid()},[o,a,s]),t.default.useEffect(()=>(!d(s._formValues,a)&&H(s._formValues,a,[]),()=>{(s._options.shouldUnregister||i)&&s.unregister(a)}),[a,s,n,i]),{swap:t.default.useCallback((e,t)=>{const r=s._getFieldArray(a);se(r,e,t),se(l.current,e,t),u(r),g(r),s._updateFieldArray(a,se,{argA:e,argB:t},r,!1)},[g,a,s]),move:t.default.useCallback((e,t)=>{const r=s._getFieldArray(a);ee(r,e,t),ee(l.current,e,t),u(r),g(r),s._updateFieldArray(a,ee,{argA:e,argB:t},r,!1)},[g,a,s]),prepend:t.default.useCallback((e,t)=>{const r=E(X(e)),n=te(s._getFieldArray(a),r);s._names.focus=J(a,0,t),l.current=te(l.current,r.map(G)),u(n),g(n),s._updateFieldArray(a,te,{argA:Y(e)},n)},[g,a,s]),append:t.default.useCallback((e,t)=>{const r=E(X(e)),n=Q(s._getFieldArray(a),r);s._names.focus=J(a,n.length-1,t),l.current=Q(l.current,r.map(G)),u(n),g(n),s._updateFieldArray(a,Q,{argA:Y(e)},n)},[g,a,s]),remove:t.default.useCallback(e=>{const t=re(s._getFieldArray(a),e);l.current=re(l.current,e),u(t),g(t),s._updateFieldArray(a,re,{argA:e},t)},[g,a,s]),insert:t.default.useCallback((e,t,r)=>{const n=E(X(t)),i=Z(s._getFieldArray(a),e,n);g(i),s._names.focus=J(a,e,r),l.current=Z(l.current,e,n.map(G)),u(i),s._updateFieldArray(a,Z,{argA:e,argB:Y(t)},i)},[g,a,s]),update:t.default.useCallback((e,t)=>{const r=ae(s._getFieldArray(a),e,t);l.current=[...r].map((t,r)=>t&&r!==e?l.current[r]:G()),u([...r]),g(r),s._updateFieldArray(a,ae,{argA:e,argB:t},r,!0,!1)},[g,a,s]),replace:t.default.useCallback(e=>{const t=E(e);l.current=t.map(G),g([...t]),u([...t]),s._updateFieldArray(a,()=>t,{},[...t],!0,!1)},[g,a,s]),fields:t.default.useMemo(()=>o.map((e,t)=>Object.assign(Object.assign({},e),{[n]:l.current[t]||G()})),[o,n])}},exports.useForm=function(e={}){const r=t.default.useRef(),[s,a]=t.default.useState({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}});r.current?r.current.control._options=e:r.current=Object.assign(Object.assign({},Be(e)),{formState:s});const n=r.current.control,i=t.default.useCallback(e=>{C(e,n._proxyFormState,!0)&&(n._formState=Object.assign(Object.assign({},n._formState),e),a(Object.assign({},n._formState)))},[n]);return B({subject:n._subjects.state,callback:i}),t.default.useEffect(()=>{n._stateFlags.mount||(n._proxyFormState.isValid&&n._updateValid(),n._stateFlags.mount=!0),n._stateFlags.watch&&(n._stateFlags.watch=!1,n._subjects.state.next({})),n._removeUnmounted()}),r.current.formState=k(s,n._proxyFormState),r.current},exports.useFormContext=w,exports.useFormState=N,exports.useWatch=q;
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var t=e(require("react")),r=e=>"checkbox"===e.type,s=e=>e instanceof Date,a=e=>null==e;const n=e=>"object"==typeof e;var i=e=>!a(e)&&!Array.isArray(e)&&n(e)&&!s(e),o=e=>i(e)&&e.target?r(e.target)?e.target.checked:e.target.value:e,u=(e,t)=>[...e].some(e=>(e=>e.substring(0,e.search(/.\d/))||e)(t)===e),l=e=>e.filter(Boolean),c=e=>void 0===e,d=(e,t,r)=>{if(!t||!i(e))return r;const s=l(t.split(/[,[\].]+?/)).reduce((e,t)=>a(e)?e:e[t],e);return c(s)||s===e?c(e[t])?r:e[t]:s};const f="blur",m="focusout",g="change",y="onBlur",b="onChange",h="onSubmit",p="onTouched",_="all",v="max",x="min",A="maxLength",F="minLength",j="pattern",V="required",O="validate";var S=(e,t)=>{const r=Object.assign({},e);return delete r[t],r};const w=t.default.createContext(null),k=()=>t.default.useContext(w);var D=(e,t,r,s=!0)=>{const a={};for(const n in e)Object.defineProperty(a,n,{get:()=>{const a=n;return t[a]!==_&&(t[a]=!s||_),r&&(r[a]=!0),e[a]}});return a},C=e=>i(e)&&!Object.keys(e).length,E=(e,t,r)=>{const s=S(e,"name");return C(s)||Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(e=>t[e]===(!r||_))},U=e=>Array.isArray(e)?e:[e],B=(e,t,r)=>r&&t?e===t:!e||!t||e===t||U(e).some(e=>e&&(e.startsWith(t)||t.startsWith(e)));function T(e){const r=t.default.useRef(e);r.current=e,t.default.useEffect(()=>{const t=!e.disabled&&r.current.subject.subscribe({next:r.current.callback});return()=>(e=>{e&&e.unsubscribe()})(t)},[e.disabled])}function M(e){const r=k(),{control:s=r.control,disabled:a,name:n,exact:i}=e||{},[o,u]=t.default.useState(s._formState),l=t.default.useRef({isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1}),c=t.default.useRef(n),d=t.default.useRef(!0);c.current=n;return T({disabled:a,callback:t.default.useCallback(e=>d.current&&B(c.current,e.name,i)&&E(e,l.current)&&u(Object.assign(Object.assign({},s._formState),e)),[s,i]),subject:s._subjects.state}),t.default.useEffect(()=>()=>{d.current=!1},[]),D(o,s._proxyFormState,l.current,!1)}var N=e=>"string"==typeof e,L=(e,t,r,s)=>{const a=Array.isArray(e);return N(e)?(s&&t.watch.add(e),d(r,e)):a?e.map(e=>(s&&t.watch.add(e),d(r,e))):(s&&(t.watchAll=!0),r)},R=e=>"function"==typeof e,q=e=>{for(const t in e)if(R(e[t]))return!0;return!1};function W(e){const r=k(),{control:s=r.control,name:a,defaultValue:n,disabled:o,exact:u}=e||{},l=t.default.useRef(a);l.current=a;const d=t.default.useCallback(e=>{if(B(l.current,e.name,u)){const t=L(l.current,s._names,e.values||s._formValues);m(c(l.current)||i(t)&&!q(t)?Object.assign({},t):Array.isArray(t)?[...t]:c(t)?n:t)}},[s,u,n]);T({disabled:o,subject:s._subjects.watch,callback:d});const[f,m]=t.default.useState(c(n)?s._getWatch(a):n);return t.default.useEffect(()=>{s._removeUnmounted()}),f}function $(e){const r=k(),{name:s,control:a=r.control,shouldUnregister:n}=e,i=u(a._names.array,s),l=W({control:a,name:s,defaultValue:d(a._formValues,s,d(a._defaultValues,s,e.defaultValue)),exact:!i}),c=M({control:a,name:s}),m=t.default.useRef(a.register(s,Object.assign(Object.assign({},e.rules),{value:l})));return t.default.useEffect(()=>{const e=(e,t)=>{const r=d(a._fields,e);r&&(r._f.mount=t)};return e(s,!0),()=>{const t=a._options.shouldUnregister||n;(i?t&&!a._stateFlags.action:t)?a.unregister(s):e(s,!1)}},[s,a,i,n]),{field:{name:s,value:l,onChange:t.default.useCallback(e=>{m.current.onChange({target:{value:o(e),name:s},type:g})},[s]),onBlur:t.default.useCallback(()=>{m.current.onBlur({target:{value:d(a._formValues,s),name:s},type:f})},[s,a]),ref:t.default.useCallback(e=>{const t=d(a._fields,s);e&&t&&e.focus&&(t._f.ref={focus:()=>e.focus(),setCustomValidity:t=>e.setCustomValidity(t),reportValidity:()=>e.reportValidity()})},[s,a._fields])},formState:c,fieldState:a.getFieldState(s,c)}}var P=(e,t,r,s,a)=>t?Object.assign(Object.assign({},r[e]),{types:Object.assign(Object.assign({},r[e]&&r[e].types?r[e].types:{}),{[s]:a||!0})}):{};var I=e=>/^\w*$/.test(e),H=e=>l(e.replace(/["|']|\]/g,"").split(/\.|\[/));function z(e,t,r){let s=-1;const a=I(t)?[t]:H(t),n=a.length,o=n-1;for(;++s<n;){const t=a[s];let n=r;if(s!==o){const r=e[t];n=i(r)||Array.isArray(r)?r:isNaN(+a[s+1])?{}:[]}e[t]=n,e=e[t]}return e}const G=(e,t,r)=>{for(const s of r||Object.keys(e)){const r=d(e,s);if(r){const e=r._f,s=S(r,"_f");if(e&&t(e.name)){if(e.ref.focus&&c(e.ref.focus()))break;if(e.refs){e.refs[0].focus();break}}else i(s)&&G(s,t)}}};var J=()=>{const e="undefined"==typeof performance?Date.now():1e3*performance.now();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const r=(16*Math.random()+e)%16|0;return("x"==t?r:3&r|8).toString(16)})},K=(e,t,r={})=>r.shouldFocus||c(r.shouldFocus)?r.focusName||`${e}.${c(r.focusIndex)?t:r.focusIndex}.`:"",Q=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(t=>e.startsWith(t)&&/^\.\w+/.test(e.slice(t.length))));function X(e,t){return[...e,...U(t)]}function Y(e){let t;const r=Array.isArray(e);if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set(e);else{if(!r&&!i(e))return e;t=r?[]:{};for(const r in e){if(R(e[r])){t=e;break}t[r]=Y(e[r])}}return t}var Z=e=>Array.isArray(e)?e.map(()=>{}):void 0;function ee(e,t,r){return[...e.slice(0,t),...U(r),...e.slice(t)]}var te=(e,t,r)=>Array.isArray(e)?(c(e[r])&&(e[r]=void 0),e.splice(r,0,e.splice(t,1)[0]),e):[];function re(e,t){return[...U(t),...U(e)]}var se=(e,t)=>c(t)?[]:function(e,t){let r=0;const s=[...e];for(const e of t)s.splice(e-r,1),r++;return l(s).length?s:[]}(e,U(t).sort((e,t)=>e-t)),ae=(e,t,r)=>{e[t]=[e[r],e[r]=e[t]][0]},ne=(e,t,r)=>(e[t]=r,e);function ie(){let e=[];return{get observers(){return e},next:t=>{for(const r of e)r.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}}var oe=e=>a(e)||!n(e);function ue(e,t){if(oe(e)||oe(t))return e===t;if(s(e)&&s(t))return e.getTime()===t.getTime();const r=Object.keys(e),a=Object.keys(t);if(r.length!==a.length)return!1;for(const n of r){const r=e[n];if(!a.includes(n))return!1;if("ref"!==n){const e=t[n];if(s(r)&&s(e)||i(r)&&i(e)||Array.isArray(r)&&Array.isArray(e)?!ue(r,e):r!==e)return!1}}return!0}var le=e=>({isOnSubmit:!e||e===h,isOnBlur:e===y,isOnChange:e===b,isOnAll:e===_,isOnTouch:e===p}),ce=e=>"boolean"==typeof e,de=e=>"file"===e.type,fe=e=>e instanceof HTMLElement,me=e=>"select-multiple"===e.type,ge=e=>"radio"===e.type,ye="undefined"!=typeof window&&void 0!==window.HTMLElement&&"undefined"!=typeof document,be=e=>fe(e)&&e.isConnected;function he(e,t){const r=I(t)?[t]:H(t),s=1==r.length?e:function(e,t){const r=t.slice(0,-1).length;let s=0;for(;s<r;)e=c(e)?s++:e[t[s++]];return e}(e,r),a=r[r.length-1];let n;s&&delete s[a];for(let t=0;t<r.slice(0,-1).length;t++){let s,a=-1;const o=r.slice(0,-(t+1)),u=o.length-1;for(t>0&&(n=e);++a<o.length;){const t=o[a];s=s?s[t]:e[t],u===a&&(i(s)&&C(s)||Array.isArray(s)&&!s.filter(e=>i(e)&&!C(e)||ce(e)).length)&&(n?delete n[t]:delete e[t]),n=s}}return e}function pe(e,t={}){const r=Array.isArray(e);if(i(e)||r)for(const r in e)Array.isArray(e[r])||i(e[r])&&!q(e[r])?(t[r]=Array.isArray(e[r])?[]:{},pe(e[r],t[r])):a(e[r])||(t[r]=!0);return t}var _e=(e,t)=>function e(t,r,s){const n=Array.isArray(t);if(i(t)||n)for(const n in t)Array.isArray(t[n])||i(t[n])&&!q(t[n])?c(r)||oe(s[n])?s[n]=Array.isArray(t[n])?pe(t[n],[]):Object.assign({},pe(t[n])):e(t[n],a(r)?{}:r[n],s[n]):s[n]=!ue(t[n],r[n]);return s}(e,t,pe(t));const ve={value:!1,isValid:!1},xe={value:!0,isValid:!0};var Ae=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!c(e[0].attributes.value)?c(e[0].value)||""===e[0].value?xe:{value:e[0].value,isValid:!0}:xe:ve}return ve},Fe=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:s})=>c(e)?e:t?""===e?NaN:+e:r&&N(e)?new Date(e):s?s(e):e;const je={isValid:!1,value:null};var Ve=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,je):je;function Oe(e){const t=e.ref;if(!(e.refs?e.refs.every(e=>e.disabled):t.disabled))return de(t)?t.files:ge(t)?Ve(e.refs).value:me(t)?[...t.selectedOptions].map(({value:e})=>e):r(t)?Ae(e.refs).value:Fe(c(t.value)?e.ref.value:t.value,e)}var Se=e=>e instanceof RegExp,we=e=>c(e)?void 0:Se(e)?e.source:i(e)?Se(e.value)?e.value.source:e.value:e;function ke(e,t,r){const s=d(e,r);if(s||I(r))return{error:s,name:r};const a=r.split(".");for(;a.length;){const s=a.join("."),n=d(t,s),i=d(e,s);if(n&&!Array.isArray(n)&&r!==s)return{name:r};if(i&&i.type)return{name:s,error:i};a.pop()}return{name:r}}var De=e=>N(e)||t.default.isValidElement(e);function Ce(e,t,r="validate"){if(De(e)||Array.isArray(e)&&e.every(De)||ce(e)&&!e)return{type:r,message:De(e)?e:"",ref:t}}var Ee=e=>i(e)&&!Se(e)?e:{value:e,message:""},Ue=async(e,t,s,n)=>{const{ref:o,refs:u,required:l,maxLength:c,minLength:d,min:f,max:m,pattern:g,validate:y,name:b,valueAsNumber:h,mount:p,disabled:_}=e._f;if(!p||_)return{};const S=u?u[0]:o,w=e=>{n&&S.reportValidity&&(S.setCustomValidity(ce(e)?"":e||" "),S.reportValidity())},k={},D=ge(o),E=r(o),U=D||E,B=(h||de(o))&&!o.value||""===t||Array.isArray(t)&&!t.length,T=P.bind(null,b,s,k),M=(e,t,r,s=A,a=F)=>{const n=e?t:r;k[b]=Object.assign({type:e?s:a,message:n,ref:o},T(e?s:a,n))};if(l&&(!U&&(B||a(t))||ce(t)&&!t||E&&!Ae(u).isValid||D&&!Ve(u).isValid)){const{value:e,message:t}=De(l)?{value:!!l,message:l}:Ee(l);if(e&&(k[b]=Object.assign({type:V,message:t,ref:S},T(V,t)),!s))return w(t),k}if(!(B||a(f)&&a(m))){let e,r;const n=Ee(m),i=Ee(f);if(isNaN(t)){const s=o.valueAsDate||new Date(t);N(n.value)&&(e=s>new Date(n.value)),N(i.value)&&(r=s<new Date(i.value))}else{const s=o.valueAsNumber||+t;a(n.value)||(e=s>n.value),a(i.value)||(r=s<i.value)}if((e||r)&&(M(!!e,n.message,i.message,v,x),!s))return w(k[b].message),k}if((c||d)&&!B&&N(t)){const e=Ee(c),r=Ee(d),n=!a(e.value)&&t.length>e.value,i=!a(r.value)&&t.length<r.value;if((n||i)&&(M(n,e.message,r.message),!s))return w(k[b].message),k}if(g&&!B&&N(t)){const{value:e,message:r}=Ee(g);if(Se(e)&&!t.match(e)&&(k[b]=Object.assign({type:j,message:r,ref:o},T(j,r)),!s))return w(r),k}if(y)if(R(y)){const e=Ce(await y(t),S);if(e&&(k[b]=Object.assign(Object.assign({},e),T(O,e.message)),!s))return w(e.message),k}else if(i(y)){let e={};for(const r in y){if(!C(e)&&!s)break;const a=Ce(await y[r](t),S,r);a&&(e=Object.assign(Object.assign({},a),T(r,a.message)),w(a.message),s&&(k[b]=e))}if(!C(e)&&(k[b]=Object.assign({ref:S},e),!s))return k}return w(!0),k};const Be={mode:h,reValidateMode:b,shouldFocusError:!0};function Te(e={}){let t,n=Object.assign(Object.assign({},Be),e),i={isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}},g={},y=n.defaultValues||{},b=n.shouldUnregister?{}:Y(y),h={action:!1,mount:!1,watch:!1},p={mount:new Set,unMount:new Set,array:new Set,watch:new Set},v=0,x={};const A={isDirty:!1,dirtyFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},F={watch:ie(),array:ie(),state:ie()},j=le(n.mode),V=le(n.reValidateMode),O=n.criteriaMode===_,w=async e=>{let t=!1;return A.isValid&&(t=n.resolver?C((await T()).errors):await M(g,!0),e||t===i.isValid||(i.isValid=t,F.state.next({isValid:t}))),t},k=(e,t)=>(z(i.errors,e,t),F.state.next({errors:i.errors})),D=(e,t,r,s)=>{const a=d(g,e);if(a){const n=d(b,e,c(r)?d(y,e):r);c(n)||s&&s.defaultChecked||t?z(b,e,t?n:Oe(a._f)):$(e,n),h.mount&&w()}},E=(e,t,r,s,a)=>{let n=!1;const o={name:e},u=d(i.touchedFields,e);if(A.isDirty){const e=i.isDirty;i.isDirty=o.isDirty=q(),n=e!==o.isDirty}if(A.dirtyFields&&(!r||s)){const r=d(i.dirtyFields,e);ue(d(y,e),t)?he(i.dirtyFields,e):z(i.dirtyFields,e,!0),o.dirtyFields=i.dirtyFields,n=n||r!==d(i.dirtyFields,e)}return r&&!u&&(z(i.touchedFields,e,r),o.touchedFields=i.touchedFields,n=n||A.touchedFields&&u!==r),n&&a&&F.state.next(o),n?o:{}},B=async(r,s,a,n,o)=>{const u=d(i.errors,s),l=A.isValid&&i.isValid!==a;var c,f;if(e.delayError&&n?(t=t||(c=k,f=e.delayError,(...e)=>{clearTimeout(v),v=window.setTimeout(()=>c(...e),f)}),t(s,n)):(clearTimeout(v),n?z(i.errors,s,n):he(i.errors,s)),((n?!ue(u,n):u)||!C(o)||l)&&!r){const e=Object.assign(Object.assign(Object.assign({},o),l?{isValid:a}:{}),{errors:i.errors,name:s});i=Object.assign(Object.assign({},i),e),F.state.next(e)}x[s]--,A.isValidating&&!x[s]&&(F.state.next({isValidating:!1}),x={})},T=async e=>n.resolver?await n.resolver(Object.assign({},b),n.context,((e,t,r,s)=>{const a={};for(const r of e){const e=d(t,r);e&&z(a,r,e._f)}return{criteriaMode:r,names:[...e],fields:a,shouldUseNativeValidation:s}})(e||p.mount,g,n.criteriaMode,n.shouldUseNativeValidation)):{},M=async(e,t,r={valid:!0})=>{for(const s in e){const a=e[s];if(a){const e=a._f,s=S(a,"_f");if(e){const s=await Ue(a,d(b,e.name),O,n.shouldUseNativeValidation);if(s[e.name]&&(r.valid=!1,t))break;t||(s[e.name]?z(i.errors,e.name,s[e.name]):he(i.errors,e.name))}s&&await M(s,t,r)}}return r.valid},q=(e,t)=>(e&&t&&z(b,e,t),!ue(K(),y)),W=(e,t,r)=>{const s=Object.assign({},h.mount?b:c(t)?y:N(e)?{[e]:t}:t);return L(e,p,s,r)},$=(e,t,s={})=>{const n=d(g,e);let i=t;if(n){const s=n._f;s&&(!s.disabled&&z(b,e,Fe(t,s)),i=ye&&fe(s.ref)&&a(t)?"":t,me(s.ref)?[...s.ref.options].forEach(e=>e.selected=i.includes(e.value)):s.refs?r(s.ref)?s.refs.length>1?s.refs.forEach(e=>e.checked=Array.isArray(i)?!!i.find(t=>t===e.value):i===e.value):s.refs[0]&&(s.refs[0].checked=!!i):s.refs.forEach(e=>e.checked=e.value===i):de(s.ref)?s.ref.value="":(s.ref.value=i,s.ref.type||F.watch.next({name:e})))}(s.shouldDirty||s.shouldTouch)&&E(e,i,s.shouldTouch,s.shouldDirty,!0),s.shouldValidate&&J(e)},P=(e,t,r)=>{for(const a in t){const n=t[a],i=`${e}.${a}`,o=d(g,i);!p.array.has(e)&&oe(n)&&(!o||o._f)||s(n)?$(i,n,r):P(i,n,r)}},I=(e,t,r={})=>{const s=d(g,e),n=p.array.has(e),o=Y(t);z(b,e,o),n?(F.array.next({name:e,values:b}),(A.isDirty||A.dirtyFields)&&r.shouldDirty&&(i.dirtyFields=_e(y,b),F.state.next({name:e,dirtyFields:i.dirtyFields,isDirty:q(e,o)}))):!s||s._f||a(o)?$(e,o,r):P(e,o,r),Q(e,p)&&F.state.next({}),F.watch.next({name:e})},H=async e=>{const t=e.target;let r=t.name;const s=d(g,r);if(s){let u,l;const c=t.type?Oe(s._f):o(e),y=e.type===f||e.type===m,h=!((a=s._f).mount&&(a.required||a.min||a.max||a.maxLength||a.minLength||a.pattern||a.validate)||n.resolver||d(i.errors,r)||s._f.deps)||((e,t,r,s,a)=>!a.isOnAll&&(!r&&a.isOnTouch?!(t||e):(r?s.isOnBlur:a.isOnBlur)?!e:!(r?s.isOnChange:a.isOnChange)||e))(y,d(i.touchedFields,r),i.isSubmitted,V,j),_=Q(r,p,y);z(b,r,c),y?s._f.onBlur&&s._f.onBlur(e):s._f.onChange&&s._f.onChange(e);const v=E(r,c,y,!1),A=!C(v)||_;if(!y&&F.watch.next({name:r,type:e.type}),h)return A&&F.state.next(Object.assign({name:r},_?{}:v));if(!y&&_&&F.state.next({}),x[r]=(x[r],1),F.state.next({isValidating:!0}),n.resolver){const{errors:e}=await T([r]),t=ke(i.errors,g,r),s=ke(e,g,t.name||r);u=s.error,r=s.name,l=C(e)}else u=(await Ue(s,d(b,r),O,n.shouldUseNativeValidation))[r],l=await w(!0);s._f.deps&&J(s._f.deps),B(!1,r,l,u,v)}var a},J=async(e,t={})=>{let r,s;const a=U(e);if(F.state.next({isValidating:!0}),n.resolver){const t=await(async e=>{const{errors:t}=await T();if(e)for(const r of e){const e=d(t,r);e?z(i.errors,r,e):he(i.errors,r)}else i.errors=t;return t})(c(e)?e:a);r=C(t),s=e?!a.some(e=>d(t,e)):r}else e?(s=(await Promise.all(a.map(async e=>{const t=d(g,e);return await M(t&&t._f?{[e]:t}:t)}))).every(Boolean),(s||i.isValid)&&w()):s=r=await M(g);return F.state.next(Object.assign(Object.assign(Object.assign({},!N(e)||A.isValid&&r!==i.isValid?{}:{name:e}),n.resolver?{isValid:r}:{}),{errors:i.errors,isValidating:!1})),t.shouldFocus&&!s&&G(g,e=>d(i.errors,e),e?a:p.mount),s},K=e=>{const t=Object.assign(Object.assign({},y),h.mount?b:{});return c(e)?t:N(e)?d(t,e):e.map(e=>d(t,e))},X=(e,t)=>({invalid:!!d((t||i).errors,e),isDirty:!!d((t||i).dirtyFields,e),isTouched:!!d((t||i).touchedFields,e),error:d((t||i).errors,e)}),Z=(e,t={})=>{for(const r of e?U(e):p.mount)p.mount.delete(r),p.array.delete(r),d(g,r)&&(t.keepValue||(he(g,r),he(b,r)),!t.keepError&&he(i.errors,r),!t.keepDirty&&he(i.dirtyFields,r),!t.keepTouched&&he(i.touchedFields,r),!n.shouldUnregister&&!t.keepDefaultValue&&he(y,r));F.watch.next({}),F.state.next(Object.assign(Object.assign({},i),t.keepDirty?{isDirty:q()}:{})),A.isValid&&w()},ee=(e,t={})=>{let s=d(g,e);const a=ce(t.disabled);return z(g,e,{_f:Object.assign(Object.assign(Object.assign({},s&&s._f?s._f:{ref:{name:e}}),{name:e,mount:!0}),t)}),p.mount.add(e),s?a&&z(b,e,t.disabled?void 0:d(b,e,Oe(s._f))):D(e,!0,t.value),Object.assign(Object.assign(Object.assign({},a?{disabled:t.disabled}:{}),n.shouldUseNativeValidation?{required:!!t.required,min:we(t.min),max:we(t.max),minLength:we(t.minLength),maxLength:we(t.maxLength),pattern:we(t.pattern)}:{}),{name:e,onChange:H,onBlur:H,ref:a=>{if(a){ee(e,t),s=d(g,e);const n=c(a.value)&&a.querySelectorAll&&a.querySelectorAll("input,select,textarea")[0]||a,i=(e=>ge(e)||r(e))(n),o=s._f.refs||[];if(i?o.find(e=>e===n):n===s._f.ref)return;z(g,e,{_f:Object.assign(Object.assign({},s._f),i?{refs:o.concat(n).filter(be),ref:{type:n.type,name:e}}:{ref:n})}),D(e,!1,void 0,n)}else s=d(g,e,{}),s._f&&(s._f.mount=!1),(n.shouldUnregister||t.shouldUnregister)&&(!u(p.array,e)||!h.action)&&p.unMount.add(e)}})};return{control:{register:ee,unregister:Z,getFieldState:X,_executeSchema:T,_getWatch:W,_getDirty:q,_updateValid:w,_removeUnmounted:()=>{for(const e of p.unMount){const t=d(g,e);t&&(t._f.refs?t._f.refs.every(e=>!be(e)):!be(t._f.ref))&&Z(e)}p.unMount=new Set},_updateFieldArray:(e,t=[],r,s,a=!0,n=!0)=>{if(s&&r){if(h.action=!0,n&&Array.isArray(d(g,e))){const t=r(d(g,e),s.argA,s.argB);a&&z(g,e,t)}if(A.errors&&n&&Array.isArray(d(i.errors,e))){const t=r(d(i.errors,e),s.argA,s.argB);a&&z(i.errors,e,t),((e,t)=>{!l(d(e,t)).length&&he(e,t)})(i.errors,e)}if(A.touchedFields&&Array.isArray(d(i.touchedFields,e))){const t=r(d(i.touchedFields,e),s.argA,s.argB);a&&z(i.touchedFields,e,t)}A.dirtyFields&&(i.dirtyFields=_e(y,b)),F.state.next({isDirty:q(e,t),dirtyFields:i.dirtyFields,errors:i.errors,isValid:i.isValid})}else z(b,e,t)},_getFieldArray:t=>l(d(h.mount?b:y,t,e.shouldUnregister?d(y,t,[]):[])),_subjects:F,_proxyFormState:A,get _fields(){return g},get _formValues(){return b},get _stateFlags(){return h},set _stateFlags(e){h=e},get _defaultValues(){return y},get _names(){return p},set _names(e){p=e},get _formState(){return i},set _formState(e){i=e},get _options(){return n},set _options(e){n=Object.assign(Object.assign({},n),e)}},trigger:J,register:ee,handleSubmit:(e,t)=>async r=>{r&&(r.preventDefault&&r.preventDefault(),r.persist&&r.persist());let s=!0,a=n.shouldUnregister?Y(b):Object.assign({},b);F.state.next({isSubmitting:!0});try{if(n.resolver){const{errors:e,values:t}=await T();i.errors=e,a=t}else await M(g);C(i.errors)&&Object.keys(i.errors).every(e=>d(a,e))?(F.state.next({errors:{},isSubmitting:!0}),await e(a,r)):(t&&await t(i.errors,r),n.shouldFocusError&&G(g,e=>d(i.errors,e),p.mount))}catch(e){throw s=!1,e}finally{i.isSubmitted=!0,F.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:C(i.errors)&&s,submitCount:i.submitCount+1,errors:i.errors})}},watch:(e,t)=>R(e)?F.watch.subscribe({next:r=>e(W(void 0,t),r)}):W(e,t,!0),setValue:I,getValues:K,reset:(t,r={})=>{const s=t||y,a=Y(s),n=t&&!C(t)?a:y;if(r.keepDefaultValues||(y=s),!r.keepValues){if(ye&&c(t))for(const e of p.mount){const t=d(g,e);if(t&&t._f){const e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;try{fe(e)&&e.closest("form").reset();break}catch(e){}}}b=e.shouldUnregister?r.keepDefaultValues?Y(y):{}:a,g={},F.array.next({values:n}),F.watch.next({values:n})}p={mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},h.mount=!A.isValid,h.watch=!!e.shouldUnregister,F.state.next({submitCount:r.keepSubmitCount?i.submitCount:0,isDirty:r.keepDirty?i.isDirty:!!r.keepDefaultValues&&!ue(t,y),isSubmitted:!!r.keepIsSubmitted&&i.isSubmitted,dirtyFields:r.keepDirty?i.dirtyFields:r.keepDefaultValues&&t?Object.entries(t).reduce((e,[t,r])=>Object.assign(Object.assign({},e),{[t]:r!==d(y,t)}),{}):{},touchedFields:r.keepTouched?i.touchedFields:{},errors:r.keepErrors?i.errors:{},isSubmitting:!1,isSubmitSuccessful:!1})},resetField:(e,t={})=>{d(g,e)&&(c(t.defaultValue)?I(e,d(y,e)):(I(e,t.defaultValue),z(y,e,t.defaultValue)),t.keepTouched||he(i.touchedFields,e),t.keepDirty||(he(i.dirtyFields,e),i.isDirty=t.defaultValue?q(e,d(y,e)):q()),t.keepError||(he(i.errors,e),A.isValid&&w()),F.state.next(Object.assign({},i)))},clearErrors:e=>{e?U(e).forEach(e=>he(i.errors,e)):i.errors={},F.state.next({errors:i.errors})},unregister:Z,setError:(e,t,r)=>{const s=(d(g,e,{_f:{}})._f||{}).ref;z(i.errors,e,Object.assign(Object.assign({},t),{ref:s})),F.state.next({name:e,errors:i.errors,isValid:!1}),r&&r.shouldFocus&&s&&s.focus&&s.focus()},setFocus:e=>{const t=d(g,e)._f;(t.ref.focus?t.ref:t.refs[0]).focus()},getFieldState:X}}exports.Controller=e=>e.render($(e)),exports.FormProvider=e=>t.default.createElement(w.Provider,{value:S(e,"children")},e.children),exports.appendErrors=P,exports.get=d,exports.join=function(e,t){return`${e}.${t}`},exports.of=function(e){return e},exports.set=z,exports.useController=$,exports.useFieldArray=e=>{const r=k(),{control:s=r.control,name:a,shouldUnregister:n}=e,[i,o]=t.default.useState(s._getFieldArray(a)),u=t.default.useRef(s._getFieldArray(a).map(J)),l=t.default.useRef(i),c=t.default.useRef(a),f=t.default.useRef(!1);c.current=a,l.current=i,s._names.array.add(a);T({callback:t.default.useCallback(({values:e,name:t})=>{if(t===c.current||!t){const t=d(e,c.current,[]);o(t),u.current=t.map(J)}},[]),subject:s._subjects.array});const m=t.default.useCallback(e=>{f.current=!0,s._updateFieldArray(a,e)},[s,a]);return t.default.useEffect(()=>{s._stateFlags.action=!1,Q(a,s._names)&&s._subjects.state.next({}),f.current&&s._executeSchema([a]).then(e=>{const t=d(e.errors,a);t&&t.type&&!d(s._formState.errors,a)&&(z(s._formState.errors,a,t),s._subjects.state.next({errors:s._formState.errors}))}),s._subjects.watch.next({name:a,values:s._formValues}),s._names.focus&&G(s._fields,e=>e.startsWith(s._names.focus)),s._names.focus="",s._proxyFormState.isValid&&s._updateValid()},[i,a,s]),t.default.useEffect(()=>(!d(s._formValues,a)&&s._updateFieldArray(a),()=>{(s._options.shouldUnregister||n)&&s.unregister(a)}),[a,s,n]),{swap:t.default.useCallback((e,t)=>{const r=s._getFieldArray(a);ae(r,e,t),ae(u.current,e,t),m(r),o(r),s._updateFieldArray(a,r,ae,{argA:e,argB:t},!1)},[m,a,s]),move:t.default.useCallback((e,t)=>{const r=s._getFieldArray(a);te(r,e,t),te(u.current,e,t),m(r),o(r),s._updateFieldArray(a,r,te,{argA:e,argB:t},!1)},[m,a,s]),prepend:t.default.useCallback((e,t)=>{const r=U(Y(e)),n=re(s._getFieldArray(a),r);s._names.focus=K(a,0,t),u.current=re(u.current,r.map(J)),m(n),o(n),s._updateFieldArray(a,n,re,{argA:Z(e)})},[m,a,s]),append:t.default.useCallback((e,t)=>{const r=U(Y(e)),n=X(s._getFieldArray(a),r);s._names.focus=K(a,n.length-1,t),u.current=X(u.current,r.map(J)),m(n),o(n),s._updateFieldArray(a,n,X,{argA:Z(e)})},[m,a,s]),remove:t.default.useCallback(e=>{const t=se(s._getFieldArray(a),e);u.current=se(u.current,e),m(t),o(t),s._updateFieldArray(a,t,se,{argA:e})},[m,a,s]),insert:t.default.useCallback((e,t,r)=>{const n=U(Y(t)),i=ee(s._getFieldArray(a),e,n);s._names.focus=K(a,e,r),u.current=ee(u.current,e,n.map(J)),m(i),o(i),s._updateFieldArray(a,i,ee,{argA:e,argB:Z(t)})},[m,a,s]),update:t.default.useCallback((e,t)=>{const r=ne(s._getFieldArray(a),e,t);u.current=[...r].map((t,r)=>t&&r!==e?u.current[r]:J()),m(r),o([...r]),s._updateFieldArray(a,r,ne,{argA:e,argB:t},!0,!1)},[m,a,s]),replace:t.default.useCallback(e=>{const t=U(Y(e));u.current=t.map(J),m([...t]),o([...t]),s._updateFieldArray(a,[...t],e=>e,{},!0,!1)},[m,a,s]),fields:t.default.useMemo(()=>i.map((e,t)=>Object.assign(Object.assign({},e),{id:u.current[t]||J()})),[i])}},exports.useForm=function(e={}){const r=t.default.useRef(),[s,a]=t.default.useState({isDirty:!1,isValidating:!1,dirtyFields:{},isSubmitted:!1,submitCount:0,touchedFields:{},isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,errors:{}});r.current?r.current.control._options=e:r.current=Object.assign(Object.assign({},Te(e)),{formState:s});const n=r.current.control,i=t.default.useCallback(e=>{E(e,n._proxyFormState,!0)&&(n._formState=Object.assign(Object.assign({},n._formState),e),a(Object.assign({},n._formState)))},[n]);return T({subject:n._subjects.state,callback:i}),t.default.useEffect(()=>{n._stateFlags.mount||(n._proxyFormState.isValid&&n._updateValid(),n._stateFlags.mount=!0),n._stateFlags.watch&&(n._stateFlags.watch=!1,n._subjects.state.next({})),n._removeUnmounted()}),r.current.formState=D(s,n._proxyFormState),r.current},exports.useFormContext=k,exports.useFormState=M,exports.useWatch=W;
2
2
  //# sourceMappingURL=index.cjs.js.map