@remoteoss/remote-flows 0.9.0 → 0.11.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 (294) hide show
  1. package/README.md +31 -0
  2. package/dist/{chunk-F6FS5DBQ.js → chunk-3CUVTXRN.js} +2 -2
  3. package/dist/chunk-3LOVCTCN.js +2 -0
  4. package/dist/chunk-3LOVCTCN.js.map +1 -0
  5. package/dist/{chunk-Y6FMG3PD.js → chunk-3Z5ZZUO4.js} +2 -2
  6. package/dist/{chunk-Y6FMG3PD.js.map → chunk-3Z5ZZUO4.js.map} +1 -1
  7. package/dist/chunk-47VYBPE2.js +2 -0
  8. package/dist/chunk-47VYBPE2.js.map +1 -0
  9. package/dist/{chunk-R6OW77R6.js → chunk-4OEBYZLZ.js} +2 -2
  10. package/dist/chunk-5E44DBDD.js +2 -0
  11. package/dist/chunk-5E44DBDD.js.map +1 -0
  12. package/dist/{chunk-5CCAARDB.js → chunk-5GUK7MEN.js} +2 -2
  13. package/dist/chunk-5I6VWJSC.js +2 -0
  14. package/dist/chunk-5I6VWJSC.js.map +1 -0
  15. package/dist/chunk-5KKDB7Q7.js +2 -0
  16. package/dist/chunk-5KKDB7Q7.js.map +1 -0
  17. package/dist/chunk-77AF2QOD.js +2 -0
  18. package/dist/chunk-77AF2QOD.js.map +1 -0
  19. package/dist/chunk-7TIIT23F.js +2 -0
  20. package/dist/chunk-7TIIT23F.js.map +1 -0
  21. package/dist/chunk-AIB34WOA.js +2 -0
  22. package/dist/chunk-AIB34WOA.js.map +1 -0
  23. package/dist/{chunk-D27IFECQ.js → chunk-AJVD3O4D.js} +2 -2
  24. package/dist/chunk-ANCX2TZH.js +2 -0
  25. package/dist/{chunk-DEGMU7EO.js.map → chunk-ANCX2TZH.js.map} +1 -1
  26. package/dist/chunk-AVA4MEFP.js +2 -0
  27. package/dist/chunk-AVA4MEFP.js.map +1 -0
  28. package/dist/{chunk-WFET4MKU.js → chunk-BDZEPXIS.js} +2 -2
  29. package/dist/{chunk-FKV6J4FL.js → chunk-BY5S6EQJ.js} +2 -2
  30. package/dist/chunk-CHSULXMN.js +2 -0
  31. package/dist/chunk-CHSULXMN.js.map +1 -0
  32. package/dist/{chunk-SHFIZENN.js → chunk-CSK44J23.js} +2 -2
  33. package/dist/{chunk-UPRUP24B.js → chunk-D25W2VVQ.js} +2 -2
  34. package/dist/chunk-D25W2VVQ.js.map +1 -0
  35. package/dist/{chunk-2UPDFZ7P.js → chunk-DHT7HDHC.js} +2 -2
  36. package/dist/chunk-DR7VGNO2.js +2 -0
  37. package/dist/chunk-DY5CSCPI.js +2 -0
  38. package/dist/chunk-DY5CSCPI.js.map +1 -0
  39. package/dist/{chunk-3LGFQNYW.js → chunk-EE54SK65.js} +2 -2
  40. package/dist/chunk-EGQJ7UBR.js +2 -0
  41. package/dist/chunk-EGQJ7UBR.js.map +1 -0
  42. package/dist/chunk-EW24LQRE.js +2 -0
  43. package/dist/chunk-EW24LQRE.js.map +1 -0
  44. package/dist/chunk-F6U6WDMP.js +2 -0
  45. package/dist/chunk-F6U6WDMP.js.map +1 -0
  46. package/dist/{chunk-GXAX4KMX.js → chunk-FBYLX5NA.js} +2 -2
  47. package/dist/{chunk-A27ASO7K.js → chunk-G7WJUXZU.js} +2 -2
  48. package/dist/chunk-GAOBYAJE.js +2 -0
  49. package/dist/chunk-GAOBYAJE.js.map +1 -0
  50. package/dist/{chunk-OGAVWGSY.js → chunk-GBD3OCAW.js} +2 -2
  51. package/dist/chunk-GCVZ4AY2.js +2 -0
  52. package/dist/chunk-GCVZ4AY2.js.map +1 -0
  53. package/dist/{chunk-UNTCBVHB.js → chunk-GGBEM452.js} +2 -2
  54. package/dist/chunk-GJQ33XQ4.js +2 -0
  55. package/dist/chunk-GJQ33XQ4.js.map +1 -0
  56. package/dist/{chunk-Q5ZUVH3U.js → chunk-GK3OO5SX.js} +2 -2
  57. package/dist/chunk-GMA7VTFX.js +2 -0
  58. package/dist/chunk-GMA7VTFX.js.map +1 -0
  59. package/dist/{chunk-UIAPHRJJ.js → chunk-H2SFR2GL.js} +2 -2
  60. package/dist/chunk-ILMVHOL2.js +2 -0
  61. package/dist/chunk-ILMVHOL2.js.map +1 -0
  62. package/dist/{chunk-LWJQO625.js → chunk-KG72IMCX.js} +2 -2
  63. package/dist/{chunk-FBA3PMRV.js → chunk-KHVEYIMF.js} +2 -2
  64. package/dist/{chunk-6P4XGSZ6.js → chunk-LIGRV2J5.js} +2 -2
  65. package/dist/chunk-LT4ALDRM.js +2 -0
  66. package/dist/chunk-LT4ALDRM.js.map +1 -0
  67. package/dist/{chunk-G4NBJTHB.js → chunk-MDSGLUUB.js} +2 -2
  68. package/dist/{chunk-T6TIHUBQ.js → chunk-N7PSO5ZD.js} +2 -2
  69. package/dist/chunk-NBCZF2FO.js +2 -0
  70. package/dist/chunk-NBCZF2FO.js.map +1 -0
  71. package/dist/{chunk-YYNQTHEX.js → chunk-NC3VBBHC.js} +2 -2
  72. package/dist/chunk-NVJYAX22.js +2 -0
  73. package/dist/chunk-NVJYAX22.js.map +1 -0
  74. package/dist/chunk-QI6LLU2N.js +2 -0
  75. package/dist/chunk-QI6LLU2N.js.map +1 -0
  76. package/dist/{chunk-OTTIURMN.js → chunk-QQ7KPOLK.js} +2 -2
  77. package/dist/{chunk-5O4S4YZN.js → chunk-QVN32YBL.js} +2 -2
  78. package/dist/chunk-R2SDR47E.js +2 -0
  79. package/dist/chunk-R2SDR47E.js.map +1 -0
  80. package/dist/{chunk-HQMY3X2R.js → chunk-R7L6CI5J.js} +2 -2
  81. package/dist/{chunk-A4ROBLPX.js → chunk-RMVG6YBI.js} +2 -2
  82. package/dist/{chunk-D23KLJQM.js → chunk-RUVKAPO5.js} +2 -2
  83. package/dist/{chunk-76UIUPEL.js → chunk-S7ZMHO5I.js} +2 -2
  84. package/dist/{chunk-S62STPBT.js → chunk-SQICIS7B.js} +2 -2
  85. package/dist/{chunk-7CDCXJSI.js → chunk-SZOOX2KY.js} +2 -2
  86. package/dist/chunk-T3L72MV6.js +2 -0
  87. package/dist/chunk-T3L72MV6.js.map +1 -0
  88. package/dist/{chunk-HQKBSMGN.js → chunk-TJK6MTGG.js} +2 -2
  89. package/dist/chunk-TPSZDGQJ.js +2 -0
  90. package/dist/chunk-TPSZDGQJ.js.map +1 -0
  91. package/dist/{chunk-4F4I7F2P.js → chunk-VD65AUOI.js} +2 -2
  92. package/dist/{chunk-WJA7PQ2J.js → chunk-WYXN7WW6.js} +2 -2
  93. package/dist/chunk-XI3AQ3RM.js +2 -0
  94. package/dist/chunk-XI3AQ3RM.js.map +1 -0
  95. package/dist/chunk-Y4VNFI7K.js +2 -0
  96. package/dist/chunk-Y4VNFI7K.js.map +1 -0
  97. package/dist/{chunk-7F3TBWYV.js → chunk-YRLBMLSA.js} +2 -2
  98. package/dist/chunk-Z3BMF4BO.js +1 -0
  99. package/dist/chunk-ZHL2SULA.js +2 -0
  100. package/dist/chunk-ZHL2SULA.js.map +1 -0
  101. package/dist/{chunk-IXVV7KPW.js → chunk-ZSBWDLBS.js} +2 -2
  102. package/dist/flows/ContractAmendment/ContractAmendmentBack.js +1 -1
  103. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
  104. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
  105. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +1 -1
  106. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  107. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
  108. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  109. package/dist/flows/ContractAmendment/ContractAmendmentSubmit.js +1 -1
  110. package/dist/flows/ContractAmendment/context.d.ts +4 -4
  111. package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
  112. package/dist/flows/ContractAmendment/hooks.js +1 -1
  113. package/dist/flows/ContractAmendment/index.d.ts +1 -1
  114. package/dist/flows/ContractAmendment/index.js +1 -1
  115. package/dist/flows/ContractAmendment/utils.d.ts +1 -1
  116. package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
  117. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +6 -8
  118. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  119. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +2 -4
  120. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  121. package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
  122. package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
  123. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +42 -0
  124. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +2 -0
  125. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js.map +1 -0
  126. package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
  127. package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
  128. package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js +1 -1
  129. package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
  130. package/dist/flows/CostCalculator/Results/CostCalculatorIndirectTax.js +1 -1
  131. package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +1 -1
  132. package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
  133. package/dist/flows/CostCalculator/Results/CostCalculatorResultsChart.js +1 -1
  134. package/dist/flows/CostCalculator/Results/CostCalculatorTotalCost.js +1 -1
  135. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +9 -0
  136. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +2 -0
  137. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js.map +1 -0
  138. package/dist/flows/CostCalculator/api.d.ts +1 -1
  139. package/dist/flows/CostCalculator/api.js +1 -1
  140. package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -1
  141. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  142. package/dist/flows/CostCalculator/context.d.ts +5 -5
  143. package/dist/flows/CostCalculator/hooks.d.ts +10 -9
  144. package/dist/flows/CostCalculator/hooks.js +1 -1
  145. package/dist/flows/CostCalculator/index.d.ts +6 -4
  146. package/dist/flows/CostCalculator/index.js +1 -1
  147. package/dist/flows/CostCalculator/jsonSchema.d.ts +8 -0
  148. package/dist/flows/CostCalculator/jsonSchema.js +1 -1
  149. package/dist/flows/CostCalculator/types.d.ts +11 -2
  150. package/dist/flows/CostCalculator/utils.d.ts +2 -2
  151. package/dist/flows/CostCalculator/utils.js +1 -1
  152. package/dist/flows/Onboarding/OnboardingFlow.d.ts +3 -3
  153. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  154. package/dist/flows/Onboarding/api.d.ts +5 -3
  155. package/dist/flows/Onboarding/api.js +1 -1
  156. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  157. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +1 -1
  158. package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
  159. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +1 -1
  160. package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
  161. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +1 -1
  162. package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
  163. package/dist/flows/Onboarding/components/OnboardingBack.js +1 -1
  164. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +1 -1
  165. package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
  166. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +1 -1
  167. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  168. package/dist/flows/Onboarding/components/OnboardingSubmit.js +1 -1
  169. package/dist/flows/Onboarding/components/ReviewStep.d.ts +3 -3
  170. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +1 -1
  171. package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
  172. package/dist/flows/Onboarding/context.d.ts +5 -5
  173. package/dist/flows/Onboarding/hooks.d.ts +3 -3
  174. package/dist/flows/Onboarding/hooks.js +1 -1
  175. package/dist/flows/Onboarding/index.d.ts +1 -1
  176. package/dist/flows/Onboarding/index.js +1 -1
  177. package/dist/flows/Onboarding/types.d.ts +1 -1
  178. package/dist/flows/Onboarding/utils.d.ts +1 -1
  179. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +1 -1
  180. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  181. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +1 -1
  182. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  183. package/dist/flows/Termination/PaidTimeOffForm.d.ts +1 -1
  184. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  185. package/dist/flows/Termination/TerminationBack.js +1 -1
  186. package/dist/flows/Termination/TerminationDetailsForm.d.ts +1 -1
  187. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  188. package/dist/flows/Termination/TerminationFlow.d.ts +3 -3
  189. package/dist/flows/Termination/TerminationFlow.js +1 -1
  190. package/dist/flows/Termination/TerminationForm.d.ts +1 -1
  191. package/dist/flows/Termination/TerminationForm.js +1 -1
  192. package/dist/flows/Termination/TerminationSubmit.js +1 -1
  193. package/dist/flows/Termination/TimeOff.d.ts +4 -4
  194. package/dist/flows/Termination/TimeOff.js +1 -1
  195. package/dist/flows/Termination/context.d.ts +3 -3
  196. package/dist/flows/Termination/hooks.d.ts +1 -1
  197. package/dist/flows/Termination/hooks.js +1 -1
  198. package/dist/flows/Termination/index.d.ts +1 -1
  199. package/dist/flows/Termination/index.js +1 -1
  200. package/dist/flows/Termination/json-schemas/schema.js +1 -1
  201. package/dist/flows/Termination/types.d.ts +1 -1
  202. package/dist/flows/types.d.ts +1 -1
  203. package/dist/flows/useStepState.d.ts +2 -2
  204. package/dist/index.css +1 -1
  205. package/dist/index.css.map +1 -1
  206. package/dist/index.d.ts +17 -22
  207. package/dist/index.js +1 -1
  208. package/dist/index.js.map +1 -1
  209. package/dist/internals.d.ts +103 -0
  210. package/dist/internals.js +2 -0
  211. package/dist/internals.js.map +1 -0
  212. package/dist/{types.gen-BqCe1GRY.d.ts → types.gen-CVPKMCVh.d.ts} +34 -17
  213. package/dist/utils-CjDMg_Yr.d.ts +22 -0
  214. package/package.json +16 -2
  215. package/dist/chunk-2Y22JKVE.js +0 -2
  216. package/dist/chunk-466M4PK7.js +0 -2
  217. package/dist/chunk-466M4PK7.js.map +0 -1
  218. package/dist/chunk-5PVQUO5Q.js +0 -2
  219. package/dist/chunk-5PVQUO5Q.js.map +0 -1
  220. package/dist/chunk-7LZQJ5CL.js +0 -2
  221. package/dist/chunk-7LZQJ5CL.js.map +0 -1
  222. package/dist/chunk-7WDALAC7.js +0 -2
  223. package/dist/chunk-7WDALAC7.js.map +0 -1
  224. package/dist/chunk-AEVZ7GEK.js +0 -2
  225. package/dist/chunk-AEVZ7GEK.js.map +0 -1
  226. package/dist/chunk-C3KZEPUZ.js +0 -2
  227. package/dist/chunk-C3KZEPUZ.js.map +0 -1
  228. package/dist/chunk-COHLMZEO.js +0 -2
  229. package/dist/chunk-COHLMZEO.js.map +0 -1
  230. package/dist/chunk-DEGMU7EO.js +0 -2
  231. package/dist/chunk-DPLXEXMO.js +0 -2
  232. package/dist/chunk-DPLXEXMO.js.map +0 -1
  233. package/dist/chunk-DTTK5OBT.js +0 -2
  234. package/dist/chunk-DTTK5OBT.js.map +0 -1
  235. package/dist/chunk-E6DC4DXP.js +0 -2
  236. package/dist/chunk-E6DC4DXP.js.map +0 -1
  237. package/dist/chunk-FQNVKX3N.js +0 -2
  238. package/dist/chunk-FQNVKX3N.js.map +0 -1
  239. package/dist/chunk-HGLI6PUM.js +0 -2
  240. package/dist/chunk-HGLI6PUM.js.map +0 -1
  241. package/dist/chunk-IXZAHZ7B.js +0 -2
  242. package/dist/chunk-IXZAHZ7B.js.map +0 -1
  243. package/dist/chunk-K5BC2TNP.js +0 -2
  244. package/dist/chunk-K5BC2TNP.js.map +0 -1
  245. package/dist/chunk-RX5GTE5Z.js +0 -2
  246. package/dist/chunk-RX5GTE5Z.js.map +0 -1
  247. package/dist/chunk-SRZGBJVA.js +0 -2
  248. package/dist/chunk-SRZGBJVA.js.map +0 -1
  249. package/dist/chunk-UPRUP24B.js.map +0 -1
  250. package/dist/chunk-XFY4VAAJ.js +0 -2
  251. package/dist/chunk-XFY4VAAJ.js.map +0 -1
  252. package/dist/chunk-YHSNK7WB.js +0 -2
  253. package/dist/chunk-YHSNK7WB.js.map +0 -1
  254. package/dist/chunk-YJXRJTOH.js +0 -1
  255. package/dist/chunk-YKIFMONL.js +0 -2
  256. package/dist/chunk-YKIFMONL.js.map +0 -1
  257. package/dist/chunk-ZPUELAQZ.js +0 -2
  258. package/dist/chunk-ZPUELAQZ.js.map +0 -1
  259. /package/dist/{chunk-F6FS5DBQ.js.map → chunk-3CUVTXRN.js.map} +0 -0
  260. /package/dist/{chunk-R6OW77R6.js.map → chunk-4OEBYZLZ.js.map} +0 -0
  261. /package/dist/{chunk-5CCAARDB.js.map → chunk-5GUK7MEN.js.map} +0 -0
  262. /package/dist/{chunk-D27IFECQ.js.map → chunk-AJVD3O4D.js.map} +0 -0
  263. /package/dist/{chunk-WFET4MKU.js.map → chunk-BDZEPXIS.js.map} +0 -0
  264. /package/dist/{chunk-FKV6J4FL.js.map → chunk-BY5S6EQJ.js.map} +0 -0
  265. /package/dist/{chunk-SHFIZENN.js.map → chunk-CSK44J23.js.map} +0 -0
  266. /package/dist/{chunk-2UPDFZ7P.js.map → chunk-DHT7HDHC.js.map} +0 -0
  267. /package/dist/{chunk-2Y22JKVE.js.map → chunk-DR7VGNO2.js.map} +0 -0
  268. /package/dist/{chunk-3LGFQNYW.js.map → chunk-EE54SK65.js.map} +0 -0
  269. /package/dist/{chunk-GXAX4KMX.js.map → chunk-FBYLX5NA.js.map} +0 -0
  270. /package/dist/{chunk-A27ASO7K.js.map → chunk-G7WJUXZU.js.map} +0 -0
  271. /package/dist/{chunk-OGAVWGSY.js.map → chunk-GBD3OCAW.js.map} +0 -0
  272. /package/dist/{chunk-UNTCBVHB.js.map → chunk-GGBEM452.js.map} +0 -0
  273. /package/dist/{chunk-Q5ZUVH3U.js.map → chunk-GK3OO5SX.js.map} +0 -0
  274. /package/dist/{chunk-UIAPHRJJ.js.map → chunk-H2SFR2GL.js.map} +0 -0
  275. /package/dist/{chunk-LWJQO625.js.map → chunk-KG72IMCX.js.map} +0 -0
  276. /package/dist/{chunk-FBA3PMRV.js.map → chunk-KHVEYIMF.js.map} +0 -0
  277. /package/dist/{chunk-6P4XGSZ6.js.map → chunk-LIGRV2J5.js.map} +0 -0
  278. /package/dist/{chunk-G4NBJTHB.js.map → chunk-MDSGLUUB.js.map} +0 -0
  279. /package/dist/{chunk-T6TIHUBQ.js.map → chunk-N7PSO5ZD.js.map} +0 -0
  280. /package/dist/{chunk-YYNQTHEX.js.map → chunk-NC3VBBHC.js.map} +0 -0
  281. /package/dist/{chunk-OTTIURMN.js.map → chunk-QQ7KPOLK.js.map} +0 -0
  282. /package/dist/{chunk-5O4S4YZN.js.map → chunk-QVN32YBL.js.map} +0 -0
  283. /package/dist/{chunk-HQMY3X2R.js.map → chunk-R7L6CI5J.js.map} +0 -0
  284. /package/dist/{chunk-A4ROBLPX.js.map → chunk-RMVG6YBI.js.map} +0 -0
  285. /package/dist/{chunk-D23KLJQM.js.map → chunk-RUVKAPO5.js.map} +0 -0
  286. /package/dist/{chunk-76UIUPEL.js.map → chunk-S7ZMHO5I.js.map} +0 -0
  287. /package/dist/{chunk-S62STPBT.js.map → chunk-SQICIS7B.js.map} +0 -0
  288. /package/dist/{chunk-7CDCXJSI.js.map → chunk-SZOOX2KY.js.map} +0 -0
  289. /package/dist/{chunk-HQKBSMGN.js.map → chunk-TJK6MTGG.js.map} +0 -0
  290. /package/dist/{chunk-4F4I7F2P.js.map → chunk-VD65AUOI.js.map} +0 -0
  291. /package/dist/{chunk-WJA7PQ2J.js.map → chunk-WYXN7WW6.js.map} +0 -0
  292. /package/dist/{chunk-7F3TBWYV.js.map → chunk-YRLBMLSA.js.map} +0 -0
  293. /package/dist/{chunk-YJXRJTOH.js.map → chunk-Z3BMF4BO.js.map} +0 -0
  294. /package/dist/{chunk-IXVV7KPW.js.map → chunk-ZSBWDLBS.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{a as le,e as ct}from"./chunk-HGLI6PUM.js";import{a}from"./chunk-P37U34EQ.js";import v from"react";var Ve=a(e=>e.type==="checkbox","isCheckBoxInput"),fe=a(e=>e instanceof Date,"isDateObject"),z=a(e=>e==null,"isNullOrUndefined"),Ft=a(e=>typeof e=="object","isObjectType"),I=a(e=>!z(e)&&!Array.isArray(e)&&Ft(e)&&!fe(e),"isObject"),vt=a(e=>I(e)&&e.target?Ve(e.target)?e.target.checked:e.target.value:e,"getEventValue"),zt=a(e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,"getNodeParentName"),bt=a((e,r)=>e.has(zt(r)),"isNameInFieldArray"),Jt=a(e=>{let r=e.constructor&&e.constructor.prototype;return I(r)&&r.hasOwnProperty("isPrototypeOf")},"isPlainObject"),Ge=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function M(e){let r,t=Array.isArray(e),s=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)r=new Date(e);else if(e instanceof Set)r=new Set(e);else if(!(Ge&&(e instanceof Blob||s))&&(t||I(e)))if(r=t?[]:{},!t&&!Jt(e))r=e;else for(let o in e)e.hasOwnProperty(o)&&(r[o]=M(e[o]));else return e;return r}a(M,"cloneObject");var xe=a(e=>Array.isArray(e)?e.filter(Boolean):[],"compact"),R=a(e=>e===void 0,"isUndefined"),d=a((e,r,t)=>{if(!r||!I(e))return t;let s=xe(r.split(/[,[\].]+?/)).reduce((o,u)=>z(o)?o:o[u],e);return R(s)||s===e?R(e[r])?t:e[r]:s},"get"),Q=a(e=>typeof e=="boolean","isBoolean"),Qe=a(e=>/^\w*$/.test(e),"isKey"),pt=a(e=>xe(e.replace(/["|']|\]/g,"").split(/\.|\[/)),"stringToPath"),E=a((e,r,t)=>{let s=-1,o=Qe(r)?[r]:pt(r),u=o.length,y=u-1;for(;++s<u;){let g=o[s],p=t;if(s!==y){let S=e[g];p=I(S)||Array.isArray(S)?S:isNaN(+o[s+1])?{}:[]}if(g==="__proto__"||g==="constructor"||g==="prototype")return;e[g]=p,e=e[g]}return e},"set"),Se={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},Y={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},ae={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},Vt=v.createContext(null),ge=a(()=>v.useContext(Vt),"useFormContext"),xt=a(e=>{let{children:r,...t}=e;return v.createElement(Vt.Provider,{value:t},r)},"FormProvider"),At=a((e,r,t,s=!0)=>{let o={defaultValues:r._defaultValues};for(let u in e)Object.defineProperty(o,u,{get:a(()=>{let y=u;return r._proxyFormState[y]!==Y.all&&(r._proxyFormState[y]=!s||Y.all),t&&(t[y]=!0),e[y]},"get")});return o},"getProxyFormState"),K=a(e=>I(e)&&!Object.keys(e).length,"isEmptyObject"),St=a((e,r,t,s)=>{t(e);let{name:o,...u}=e;return K(u)||Object.keys(u).length>=Object.keys(r).length||Object.keys(u).find(y=>r[y]===(!s||Y.all))},"shouldRenderFormState"),J=a(e=>Array.isArray(e)?e:[e],"convertToArrayPayload"),wt=a((e,r,t)=>!e||!r||e===r||J(e).some(s=>s&&(t?s===r:s.startsWith(r)||r.startsWith(s))),"shouldSubscribeByName");function Ee(e){let r=v.useRef(e);r.current=e,v.useEffect(()=>{let t=!e.disabled&&r.current.subject&&r.current.subject.subscribe({next:r.current.next});return()=>{t&&t.unsubscribe()}},[e.disabled])}a(Ee,"useSubscribe");function Ye(e){let r=ge(),{control:t=r.control,disabled:s,name:o,exact:u}=e||{},[y,g]=v.useState(t._formState),p=v.useRef(!0),S=v.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1}),w=v.useRef(o);return w.current=o,Ee({disabled:s,next:a(b=>p.current&&wt(w.current,b.name,u)&&St(b,S.current,t._updateFormState)&&g({...t._formState,...b}),"next"),subject:t._subjects.state}),v.useEffect(()=>(p.current=!0,S.current.isValid&&t._updateValid(!0),()=>{p.current=!1}),[t]),v.useMemo(()=>At(y,t,S.current,!1),[y,t])}a(Ye,"useFormState");var se=a(e=>typeof e=="string","isString"),Ct=a((e,r,t,s,o)=>se(e)?(s&&r.watch.add(e),d(t,e,o)):Array.isArray(e)?e.map(u=>(s&&r.watch.add(u),d(t,u))):(s&&(r.watchAll=!0),t),"generateWatchOutput");function Gt(e){let r=ge(),{control:t=r.control,name:s,defaultValue:o,disabled:u,exact:y}=e||{},g=v.useRef(s);g.current=s,Ee({disabled:u,subject:t._subjects.values,next:a(w=>{wt(g.current,w.name,y)&&S(M(Ct(g.current,t._names,w.values||t._formValues,!1,o)))},"next")});let[p,S]=v.useState(t._getWatch(s,o));return v.useEffect(()=>t._removeUnmounted()),p}a(Gt,"useWatch");function Qt(e){let r=ge(),{name:t,disabled:s,control:o=r.control,shouldUnregister:u}=e,y=bt(o._names.array,t),g=Gt({control:o,name:t,defaultValue:d(o._formValues,t,d(o._defaultValues,t,e.defaultValue)),exact:!0}),p=Ye({control:o,name:t,exact:!0}),S=v.useRef(o.register(t,{...e.rules,value:g,...Q(e.disabled)?{disabled:e.disabled}:{}})),w=v.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:a(()=>!!d(p.errors,t),"get")},isDirty:{enumerable:!0,get:a(()=>!!d(p.dirtyFields,t),"get")},isTouched:{enumerable:!0,get:a(()=>!!d(p.touchedFields,t),"get")},isValidating:{enumerable:!0,get:a(()=>!!d(p.validatingFields,t),"get")},error:{enumerable:!0,get:a(()=>d(p.errors,t),"get")}}),[p,t]),b=v.useMemo(()=>({name:t,value:g,...Q(s)||p.disabled?{disabled:p.disabled||s}:{},onChange:a(L=>S.current.onChange({target:{value:vt(L),name:t},type:Se.CHANGE}),"onChange"),onBlur:a(()=>S.current.onBlur({target:{value:d(o._formValues,t),name:t},type:Se.BLUR}),"onBlur"),ref:a(L=>{let k=d(o._fields,t);k&&L&&(k._f.ref={focus:a(()=>L.focus(),"focus"),select:a(()=>L.select(),"select"),setCustomValidity:a(U=>L.setCustomValidity(U),"setCustomValidity"),reportValidity:a(()=>L.reportValidity(),"reportValidity")})},"ref")}),[t,o._formValues,s,p.disabled,g,o._fields]);return v.useEffect(()=>{let L=o._options.shouldUnregister||u,k=a((U,j)=>{let H=d(o._fields,U);H&&H._f&&(H._f.mount=j)},"updateMounted");if(k(t,!0),L){let U=M(d(o._options.defaultValues,t));E(o._defaultValues,t,U),R(d(o._formValues,t))&&E(o._formValues,t,U)}return!y&&o.register(t),()=>{(y?L&&!o._state.action:L)?o.unregister(t):k(t,!1)}},[t,o,y,u]),v.useEffect(()=>{o._updateDisabledField({disabled:s,fields:o._fields,name:t})},[s,t,o]),v.useMemo(()=>({field:b,formState:p,fieldState:w}),[b,p,w])}a(Qt,"useController");var Dt=a(e=>e.render(Qt(e)),"Controller");var Yt=a((e,r,t,s,o)=>r?{...t[e],types:{...t[e]&&t[e].types?t[e].types:{},[s]:o||!0}}:{},"appendErrors"),ue=a(()=>{let e=typeof performance>"u"?Date.now():performance.now()*1e3;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let t=(Math.random()*16+e)%16|0;return(r=="x"?t:t&3|8).toString(16)})},"generateId"),Le=a((e,r,t={})=>t.shouldFocus||R(t.shouldFocus)?t.focusName||`${e}.${R(t.focusIndex)?r:t.focusIndex}.`:"","getFocusFieldName"),pe=a(e=>({isOnSubmit:!e||e===Y.onSubmit,isOnBlur:e===Y.onBlur,isOnChange:e===Y.onChange,isOnAll:e===Y.all,isOnTouch:e===Y.onTouched}),"getValidationModes"),Ke=a((e,r,t)=>!t&&(r.watchAll||r.watch.has(e)||[...r.watch].some(s=>e.startsWith(s)&&/^\.\w+/.test(e.slice(s.length)))),"isWatched"),me=a((e,r,t,s)=>{for(let o of t||Object.keys(e)){let u=d(e,o);if(u){let{_f:y,...g}=u;if(y){if(y.refs&&y.refs[0]&&r(y.refs[0],o)&&!s)return!0;if(y.ref&&r(y.ref,y.name)&&!s)return!0;if(me(g,r))break}else if(I(g)&&me(g,r))break}}},"iterateFieldsByAction"),Et=a((e,r,t)=>{let s=J(d(e,t));return E(s,"root",r[t]),E(e,t,s),e},"updateFieldArrayRootError"),Xe=a(e=>e.type==="file","isFileInput"),re=a(e=>typeof e=="function","isFunction"),we=a(e=>{if(!Ge)return!1;let r=e?e.ownerDocument:0;return e instanceof(r&&r.defaultView?r.defaultView.HTMLElement:HTMLElement)},"isHTMLElement"),Ae=a(e=>se(e),"isMessage"),Ze=a(e=>e.type==="radio","isRadioInput"),Ce=a(e=>e instanceof RegExp,"isRegex"),dt={value:!1,isValid:!1},ft={value:!0,isValid:!0},kt=a(e=>{if(Array.isArray(e)){if(e.length>1){let r=e.filter(t=>t&&t.checked&&!t.disabled).map(t=>t.value);return{value:r,isValid:!!r.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!R(e[0].attributes.value)?R(e[0].value)||e[0].value===""?ft:{value:e[0].value,isValid:!0}:ft:dt}return dt},"getCheckboxValue"),yt={isValid:!1,value:null},Rt=a(e=>Array.isArray(e)?e.reduce((r,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:r,yt):yt,"getRadioValue");function mt(e,r,t="validate"){if(Ae(e)||Array.isArray(e)&&e.every(Ae)||Q(e)&&!e)return{type:t,message:Ae(e)?e:"",ref:r}}a(mt,"getValidateError");var ye=a(e=>I(e)&&!Ce(e)?e:{value:e,message:""},"getValueAndMessage"),ze=a(async(e,r,t,s,o,u)=>{let{ref:y,refs:g,required:p,maxLength:S,minLength:w,min:b,max:L,pattern:k,validate:U,name:j,valueAsNumber:H,mount:te}=e._f,C=d(t,j);if(!te||r.has(j))return{};let X=g?g[0]:y,Z=a(A=>{o&&X.reportValidity&&(X.setCustomValidity(Q(A)?"":A||""),X.reportValidity())},"setCustomValidity"),P={},h=Ze(y),F=Ve(y),V=h||F,T=(H||Xe(y))&&R(y.value)&&R(C)||we(y)&&y.value===""||C===""||Array.isArray(C)&&!C.length,B=Yt.bind(null,j,s,P),de=a((A,D,N,q=ae.maxLength,ee=ae.minLength)=>{let G=A?D:N;P[j]={type:A?q:ee,message:G,ref:y,...B(A?q:ee,G)}},"getMinMaxMessage");if(u?!Array.isArray(C)||!C.length:p&&(!V&&(T||z(C))||Q(C)&&!C||F&&!kt(g).isValid||h&&!Rt(g).isValid)){let{value:A,message:D}=Ae(p)?{value:!!p,message:p}:ye(p);if(A&&(P[j]={type:ae.required,message:D,ref:X,...B(ae.required,D)},!s))return Z(D),P}if(!T&&(!z(b)||!z(L))){let A,D,N=ye(L),q=ye(b);if(!z(C)&&!isNaN(C)){let ee=y.valueAsNumber||C&&+C;z(N.value)||(A=ee>N.value),z(q.value)||(D=ee<q.value)}else{let ee=y.valueAsDate||new Date(C),G=a(Fe=>new Date(new Date().toDateString()+" "+Fe),"convertTimeToDate"),_e=y.type=="time",he=y.type=="week";se(N.value)&&C&&(A=_e?G(C)>G(N.value):he?C>N.value:ee>new Date(N.value)),se(q.value)&&C&&(D=_e?G(C)<G(q.value):he?C<q.value:ee<new Date(q.value))}if((A||D)&&(de(!!A,N.message,q.message,ae.max,ae.min),!s))return Z(P[j].message),P}if((S||w)&&!T&&(se(C)||u&&Array.isArray(C))){let A=ye(S),D=ye(w),N=!z(A.value)&&C.length>+A.value,q=!z(D.value)&&C.length<+D.value;if((N||q)&&(de(N,A.message,D.message),!s))return Z(P[j].message),P}if(k&&!T&&se(C)){let{value:A,message:D}=ye(k);if(Ce(A)&&!C.match(A)&&(P[j]={type:ae.pattern,message:D,ref:y,...B(ae.pattern,D)},!s))return Z(D),P}if(U){if(re(U)){let A=await U(C,t),D=mt(A,X);if(D&&(P[j]={...D,...B(ae.validate,D.message)},!s))return Z(D.message),P}else if(I(U)){let A={};for(let D in U){if(!K(A)&&!s)break;let N=mt(await U[D](C,t),X,D);N&&(A={...N,...B(D,N.message)},Z(N.message),s&&(P[j]=A))}if(!K(A)&&(P[j]={ref:X,...A},!s))return P}}return Z(!0),P},"validateField"),Oe=a((e,r)=>[...e,...J(r)],"appendAt"),Ne=a(e=>Array.isArray(e)?e.map(()=>{}):void 0,"fillEmptyArray");function Me(e,r,t){return[...e.slice(0,r),...J(t),...e.slice(r)]}a(Me,"insert");var Ue=a((e,r,t)=>Array.isArray(e)?(R(e[t])&&(e[t]=void 0),e.splice(t,0,e.splice(r,1)[0]),e):[],"moveArrayAt"),Be=a((e,r)=>[...J(r),...J(e)],"prependAt");function Xt(e,r){let t=0,s=[...e];for(let o of r)s.splice(o-t,1),t++;return xe(s).length?s:[]}a(Xt,"removeAtIndexes");var $e=a((e,r)=>R(r)?[]:Xt(e,J(r).sort((t,s)=>t-s)),"removeArrayAt"),We=a((e,r,t)=>{[e[r],e[t]]=[e[t],e[r]]},"swapArrayAt");function Zt(e,r){let t=r.slice(0,-1).length,s=0;for(;s<t;)e=R(e)?s++:e[r[s++]];return e}a(Zt,"baseGet");function er(e){for(let r in e)if(e.hasOwnProperty(r)&&!R(e[r]))return!1;return!0}a(er,"isEmptyArray");function O(e,r){let t=Array.isArray(r)?r:Qe(r)?[r]:pt(r),s=t.length===1?e:Zt(e,t),o=t.length-1,u=t[o];return s&&delete s[u],o!==0&&(I(s)&&K(s)||Array.isArray(s)&&er(s))&&O(e,t.slice(0,-1)),e}a(O,"unset");var gt=a((e,r,t)=>(e[r]=t,e),"updateAt");function _r(e){let r=ge(),{control:t=r.control,name:s,keyName:o="id",shouldUnregister:u,rules:y}=e,[g,p]=v.useState(t._getFieldArray(s)),S=v.useRef(t._getFieldArray(s).map(ue)),w=v.useRef(g),b=v.useRef(s),L=v.useRef(!1);b.current=s,w.current=g,t._names.array.add(s),y&&t.register(s,y),Ee({next:a(({values:h,name:F})=>{if(F===b.current||!F){let V=d(h,b.current);Array.isArray(V)&&(p(V),S.current=V.map(ue))}},"next"),subject:t._subjects.array});let k=v.useCallback(h=>{L.current=!0,t._updateFieldArray(s,h)},[t,s]),U=a((h,F)=>{let V=J(M(h)),T=Oe(t._getFieldArray(s),V);t._names.focus=Le(s,T.length-1,F),S.current=Oe(S.current,V.map(ue)),k(T),p(T),t._updateFieldArray(s,T,Oe,{argA:Ne(h)})},"append"),j=a((h,F)=>{let V=J(M(h)),T=Be(t._getFieldArray(s),V);t._names.focus=Le(s,0,F),S.current=Be(S.current,V.map(ue)),k(T),p(T),t._updateFieldArray(s,T,Be,{argA:Ne(h)})},"prepend"),H=a(h=>{let F=$e(t._getFieldArray(s),h);S.current=$e(S.current,h),k(F),p(F),!Array.isArray(d(t._fields,s))&&E(t._fields,s,void 0),t._updateFieldArray(s,F,$e,{argA:h})},"remove"),te=a((h,F,V)=>{let T=J(M(F)),B=Me(t._getFieldArray(s),h,T);t._names.focus=Le(s,h,V),S.current=Me(S.current,h,T.map(ue)),k(B),p(B),t._updateFieldArray(s,B,Me,{argA:h,argB:Ne(F)})},"insert$1"),C=a((h,F)=>{let V=t._getFieldArray(s);We(V,h,F),We(S.current,h,F),k(V),p(V),t._updateFieldArray(s,V,We,{argA:h,argB:F},!1)},"swap"),X=a((h,F)=>{let V=t._getFieldArray(s);Ue(V,h,F),Ue(S.current,h,F),k(V),p(V),t._updateFieldArray(s,V,Ue,{argA:h,argB:F},!1)},"move"),Z=a((h,F)=>{let V=M(F),T=gt(t._getFieldArray(s),h,V);S.current=[...T].map((B,de)=>!B||de===h?ue():S.current[de]),k(T),p([...T]),t._updateFieldArray(s,T,gt,{argA:h,argB:V},!0,!1)},"update"),P=a(h=>{let F=J(M(h));S.current=F.map(ue),k([...F]),p([...F]),t._updateFieldArray(s,[...F],V=>V,{},!0,!1)},"replace");return v.useEffect(()=>{if(t._state.action=!1,Ke(s,t._names)&&t._subjects.state.next({...t._formState}),L.current&&(!pe(t._options.mode).isOnSubmit||t._formState.isSubmitted))if(t._options.resolver)t._executeSchema([s]).then(h=>{let F=d(h.errors,s),V=d(t._formState.errors,s);(V?!F&&V.type||F&&(V.type!==F.type||V.message!==F.message):F&&F.type)&&(F?E(t._formState.errors,s,F):O(t._formState.errors,s),t._subjects.state.next({errors:t._formState.errors}))});else{let h=d(t._fields,s);h&&h._f&&!(pe(t._options.reValidateMode).isOnSubmit&&pe(t._options.mode).isOnSubmit)&&ze(h,t._names.disabled,t._formValues,t._options.criteriaMode===Y.all,t._options.shouldUseNativeValidation,!0).then(F=>!K(F)&&t._subjects.state.next({errors:Et(t._formState.errors,F,s)}))}t._subjects.values.next({name:s,values:{...t._formValues}}),t._names.focus&&me(t._fields,(h,F)=>{if(t._names.focus&&F.startsWith(t._names.focus)&&h.focus)return h.focus(),1}),t._names.focus="",t._updateValid(),L.current=!1},[g,s,t]),v.useEffect(()=>(!d(t._formValues,s)&&t._updateFieldArray(s),()=>{(t._options.shouldUnregister||u)&&t.unregister(s)}),[s,t,o,u]),{swap:v.useCallback(C,[k,s,t]),move:v.useCallback(X,[k,s,t]),prepend:v.useCallback(j,[k,s,t]),append:v.useCallback(U,[k,s,t]),remove:v.useCallback(H,[k,s,t]),insert:v.useCallback(te,[k,s,t]),update:v.useCallback(Z,[k,s,t]),replace:v.useCallback(P,[k,s,t]),fields:v.useMemo(()=>g.map((h,F)=>({...h,[o]:S.current[F]||ue()})),[g,o])}}a(_r,"useFieldArray");var je=a(()=>{let e=[];return{get observers(){return e},next:a(o=>{for(let u of e)u.next&&u.next(o)},"next"),subscribe:a(o=>(e.push(o),{unsubscribe:a(()=>{e=e.filter(u=>u!==o)},"unsubscribe")}),"subscribe"),unsubscribe:a(()=>{e=[]},"unsubscribe")}},"createSubject"),Je=a(e=>z(e)||!Ft(e),"isPrimitive");function ce(e,r){if(Je(e)||Je(r))return e===r;if(fe(e)&&fe(r))return e.getTime()===r.getTime();let t=Object.keys(e),s=Object.keys(r);if(t.length!==s.length)return!1;for(let o of t){let u=e[o];if(!s.includes(o))return!1;if(o!=="ref"){let y=r[o];if(fe(u)&&fe(y)||I(u)&&I(y)||Array.isArray(u)&&Array.isArray(y)?!ce(u,y):u!==y)return!1}}return!0}a(ce,"deepEqual");var Tt=a(e=>e.type==="select-multiple","isMultipleSelect"),tr=a(e=>Ze(e)||Ve(e),"isRadioOrCheckbox"),qe=a(e=>we(e)&&e.isConnected,"live"),Pt=a(e=>{for(let r in e)if(re(e[r]))return!0;return!1},"objectHasFunction");function De(e,r={}){let t=Array.isArray(e);if(I(e)||t)for(let s in e)Array.isArray(e[s])||I(e[s])&&!Pt(e[s])?(r[s]=Array.isArray(e[s])?[]:{},De(e[s],r[s])):z(e[s])||(r[s]=!0);return r}a(De,"markFieldsDirty");function It(e,r,t){let s=Array.isArray(e);if(I(e)||s)for(let o in e)Array.isArray(e[o])||I(e[o])&&!Pt(e[o])?R(r)||Je(t[o])?t[o]=Array.isArray(e[o])?De(e[o],[]):{...De(e[o])}:It(e[o],z(r)?{}:r[o],t[o]):t[o]=!ce(e[o],r[o]);return t}a(It,"getDirtyFieldsFromDefaultValues");var ve=a((e,r)=>It(e,r,De(r)),"getDirtyFields"),Lt=a((e,{valueAsNumber:r,valueAsDate:t,setValueAs:s})=>R(e)?e:r?e===""?NaN:e&&+e:t&&se(e)?new Date(e):s?s(e):e,"getFieldValueAs");function He(e){let r=e.ref;return Xe(r)?r.files:Ze(r)?Rt(e.refs).value:Tt(r)?[...r.selectedOptions].map(({value:t})=>t):Ve(r)?kt(e.refs).value:Lt(R(r.value)?e.ref.value:r.value,e)}a(He,"getFieldValue");var rr=a((e,r,t,s)=>{let o={};for(let u of e){let y=d(r,u);y&&E(o,u,y._f)}return{criteriaMode:t,names:[...e],fields:o,shouldUseNativeValidation:s}},"getResolverOptions"),be=a(e=>R(e)?e:Ce(e)?e.source:I(e)?Ce(e.value)?e.value.source:e.value:e,"getRuleValue"),_t="AsyncFunction",sr=a(e=>!!e&&!!e.validate&&!!(re(e.validate)&&e.validate.constructor.name===_t||I(e.validate)&&Object.values(e.validate).find(r=>r.constructor.name===_t)),"hasPromiseValidation"),ir=a(e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),"hasValidation");function ht(e,r,t){let s=d(e,t);if(s||Qe(t))return{error:s,name:t};let o=t.split(".");for(;o.length;){let u=o.join("."),y=d(r,u),g=d(e,u);if(y&&!Array.isArray(y)&&t!==u)return{name:t};if(g&&g.type)return{name:u,error:g};o.pop()}return{name:t}}a(ht,"schemaErrorLookup");var ar=a((e,r,t,s,o)=>o.isOnAll?!1:!t&&o.isOnTouch?!(r||e):(t?s.isOnBlur:o.isOnBlur)?!e:(t?s.isOnChange:o.isOnChange)?e:!0,"skipValidation"),nr=a((e,r)=>!xe(d(e,r)).length&&O(e,r),"unsetEmptyArray"),or={mode:Y.onSubmit,reValidateMode:Y.onChange,shouldFocusError:!0};function lr(e={}){let r={...or,...e},t={submitCount:0,isDirty:!1,isLoading:re(r.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:r.errors||{},disabled:r.disabled||!1},s={},o=I(r.defaultValues)||I(r.values)?M(r.defaultValues||r.values)||{}:{},u=r.shouldUnregister?{}:M(o),y={action:!1,mount:!1,watch:!1},g={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},p,S=0,w={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},b={values:je(),array:je(),state:je()},L=pe(r.mode),k=pe(r.reValidateMode),U=r.criteriaMode===Y.all,j=a(i=>n=>{clearTimeout(S),S=setTimeout(i,n)},"debounce"),H=a(async i=>{if(!r.disabled&&(w.isValid||i)){let n=r.resolver?K((await V()).errors):await B(s,!0);n!==t.isValid&&b.state.next({isValid:n})}},"_updateValid"),te=a((i,n)=>{!r.disabled&&(w.isValidating||w.validatingFields)&&((i||Array.from(g.mount)).forEach(l=>{l&&(n?E(t.validatingFields,l,n):O(t.validatingFields,l))}),b.state.next({validatingFields:t.validatingFields,isValidating:!K(t.validatingFields)}))},"_updateIsValidating"),C=a((i,n=[],l,m,f=!0,c=!0)=>{if(m&&l&&!r.disabled){if(y.action=!0,c&&Array.isArray(d(s,i))){let _=l(d(s,i),m.argA,m.argB);f&&E(s,i,_)}if(c&&Array.isArray(d(t.errors,i))){let _=l(d(t.errors,i),m.argA,m.argB);f&&E(t.errors,i,_),nr(t.errors,i)}if(w.touchedFields&&c&&Array.isArray(d(t.touchedFields,i))){let _=l(d(t.touchedFields,i),m.argA,m.argB);f&&E(t.touchedFields,i,_)}w.dirtyFields&&(t.dirtyFields=ve(o,u)),b.state.next({name:i,isDirty:A(i,n),dirtyFields:t.dirtyFields,errors:t.errors,isValid:t.isValid})}else E(u,i,n)},"_updateFieldArray"),X=a((i,n)=>{E(t.errors,i,n),b.state.next({errors:t.errors})},"updateErrors"),Z=a(i=>{t.errors=i,b.state.next({errors:t.errors,isValid:!1})},"_setErrors"),P=a((i,n,l,m)=>{let f=d(s,i);if(f){let c=d(u,i,R(l)?d(o,i):l);R(c)||m&&m.defaultChecked||n?E(u,i,n?c:He(f._f)):q(i,c),y.mount&&H()}},"updateValidAndValue"),h=a((i,n,l,m,f)=>{let c=!1,_=!1,x={name:i};if(!r.disabled){let $=!!(d(s,i)&&d(s,i)._f&&d(s,i)._f.disabled);if(!l||m){w.isDirty&&(_=t.isDirty,t.isDirty=x.isDirty=A(),c=_!==x.isDirty);let W=$||ce(d(o,i),n);_=!!(!$&&d(t.dirtyFields,i)),W||$?O(t.dirtyFields,i):E(t.dirtyFields,i,!0),x.dirtyFields=t.dirtyFields,c=c||w.dirtyFields&&_!==!W}if(l){let W=d(t.touchedFields,i);W||(E(t.touchedFields,i,l),x.touchedFields=t.touchedFields,c=c||w.touchedFields&&W!==l)}c&&f&&b.state.next(x)}return c?x:{}},"updateTouchAndDirty"),F=a((i,n,l,m)=>{let f=d(t.errors,i),c=w.isValid&&Q(n)&&t.isValid!==n;if(r.delayError&&l?(p=j(()=>X(i,l)),p(r.delayError)):(clearTimeout(S),p=null,l?E(t.errors,i,l):O(t.errors,i)),(l?!ce(f,l):f)||!K(m)||c){let _={...m,...c&&Q(n)?{isValid:n}:{},errors:t.errors,name:i};t={...t,..._},b.state.next(_)}},"shouldRenderByError"),V=a(async i=>{te(i,!0);let n=await r.resolver(u,r.context,rr(i||g.mount,s,r.criteriaMode,r.shouldUseNativeValidation));return te(i),n},"_executeSchema"),T=a(async i=>{let{errors:n}=await V(i);if(i)for(let l of i){let m=d(n,l);m?E(t.errors,l,m):O(t.errors,l)}else t.errors=n;return n},"executeSchemaAndUpdateState"),B=a(async(i,n,l={valid:!0})=>{for(let m in i){let f=i[m];if(f){let{_f:c,..._}=f;if(c){let x=g.array.has(c.name),$=f._f&&sr(f._f);$&&w.validatingFields&&te([m],!0);let W=await ze(f,g.disabled,u,U,r.shouldUseNativeValidation&&!n,x);if($&&w.validatingFields&&te([m]),W[c.name]&&(l.valid=!1,n))break;!n&&(d(W,c.name)?x?Et(t.errors,W,c.name):E(t.errors,c.name,W[c.name]):O(t.errors,c.name))}!K(_)&&await B(_,n,l)}}return l.valid},"executeBuiltInValidation"),de=a(()=>{for(let i of g.unMount){let n=d(s,i);n&&(n._f.refs?n._f.refs.every(l=>!qe(l)):!qe(n._f.ref))&&Re(i)}g.unMount=new Set},"_removeUnmounted"),A=a((i,n)=>!r.disabled&&(i&&n&&E(u,i,n),!ce(et(),o)),"_getDirty"),D=a((i,n,l)=>Ct(i,g,{...y.mount?u:R(n)?o:se(i)?{[i]:n}:n},l,n),"_getWatch"),N=a(i=>xe(d(y.mount?u:o,i,r.shouldUnregister?d(o,i,[]):[])),"_getFieldArray"),q=a((i,n,l={})=>{let m=d(s,i),f=n;if(m){let c=m._f;c&&(!c.disabled&&E(u,i,Lt(n,c)),f=we(c.ref)&&z(n)?"":n,Tt(c.ref)?[...c.ref.options].forEach(_=>_.selected=f.includes(_.value)):c.refs?Ve(c.ref)?c.refs.length>1?c.refs.forEach(_=>(!_.defaultChecked||!_.disabled)&&(_.checked=Array.isArray(f)?!!f.find(x=>x===_.value):f===_.value)):c.refs[0]&&(c.refs[0].checked=!!f):c.refs.forEach(_=>_.checked=_.value===f):Xe(c.ref)?c.ref.value="":(c.ref.value=f,c.ref.type||b.values.next({name:i,values:{...u}})))}(l.shouldDirty||l.shouldTouch)&&h(i,f,l.shouldTouch,l.shouldDirty,!0),l.shouldValidate&&Fe(i)},"setFieldValue"),ee=a((i,n,l)=>{for(let m in n){let f=n[m],c=`${i}.${m}`,_=d(s,c);(g.array.has(i)||I(f)||_&&!_._f)&&!fe(f)?ee(c,f,l):q(c,f,l)}},"setValues"),G=a((i,n,l={})=>{let m=d(s,i),f=g.array.has(i),c=M(n);E(u,i,c),f?(b.array.next({name:i,values:{...u}}),(w.isDirty||w.dirtyFields)&&l.shouldDirty&&b.state.next({name:i,dirtyFields:ve(o,u),isDirty:A(i,c)})):m&&!m._f&&!z(c)?ee(i,c,l):q(i,c,l),Ke(i,g)&&b.state.next({...t}),b.values.next({name:y.mount?i:void 0,values:{...u}})},"setValue"),_e=a(async i=>{y.mount=!0;let n=i.target,l=n.name,m=!0,f=d(s,l),c=a(()=>n.type?He(f._f):vt(i),"getCurrentFieldValue"),_=a(x=>{m=Number.isNaN(x)||fe(x)&&isNaN(x.getTime())||ce(x,d(u,l,x))},"_updateIsFieldValueUpdated");if(f){let x,$,W=c(),oe=i.type===Se.BLUR||i.type===Se.FOCUS_OUT,qt=!ir(f._f)&&!r.resolver&&!d(t.errors,l)&&!f._f.deps||ar(oe,d(t.touchedFields,l),t.isSubmitted,k,L),Pe=Ke(l,g,oe);E(u,l,W),oe?(f._f.onBlur&&f._f.onBlur(i),p&&p(0)):f._f.onChange&&f._f.onChange(i);let Ie=h(l,W,oe,!1),Ht=!K(Ie)||Pe;if(!oe&&b.values.next({name:l,type:i.type,values:{...u}}),qt)return w.isValid&&(r.mode==="onBlur"&&oe?H():oe||H()),Ht&&b.state.next({name:l,...Pe?{}:Ie});if(!oe&&Pe&&b.state.next({...t}),r.resolver){let{errors:lt}=await V([l]);if(_(W),m){let Kt=ht(t.errors,s,l),ut=ht(lt,s,Kt.name||l);x=ut.error,l=ut.name,$=K(lt)}}else te([l],!0),x=(await ze(f,g.disabled,u,U,r.shouldUseNativeValidation))[l],te([l]),_(W),m&&(x?$=!1:w.isValid&&($=await B(s,!0)));m&&(f._f.deps&&Fe(f._f.deps),F(l,$,x,Ie))}},"onChange"),he=a((i,n)=>{if(d(t.errors,n)&&i.focus)return i.focus(),1},"_focusInput"),Fe=a(async(i,n={})=>{let l,m,f=J(i);if(r.resolver){let c=await T(R(i)?i:f);l=K(c),m=i?!f.some(_=>d(c,_)):l}else i?(m=(await Promise.all(f.map(async c=>{let _=d(s,c);return await B(_&&_._f?{[c]:_}:_)}))).every(Boolean),!(!m&&!t.isValid)&&H()):m=l=await B(s);return b.state.next({...!se(i)||w.isValid&&l!==t.isValid?{}:{name:i},...r.resolver||!i?{isValid:l}:{},errors:t.errors}),n.shouldFocus&&!m&&me(s,he,i?f:g.mount),m},"trigger"),et=a(i=>{let n={...y.mount?u:o};return R(i)?n:se(i)?d(n,i):i.map(l=>d(n,l))},"getValues"),tt=a((i,n)=>({invalid:!!d((n||t).errors,i),isDirty:!!d((n||t).dirtyFields,i),error:d((n||t).errors,i),isValidating:!!d(t.validatingFields,i),isTouched:!!d((n||t).touchedFields,i)}),"getFieldState"),Bt=a(i=>{i&&J(i).forEach(n=>O(t.errors,n)),b.state.next({errors:i?t.errors:{}})},"clearErrors"),rt=a((i,n,l)=>{let m=(d(s,i,{_f:{}})._f||{}).ref,f=d(t.errors,i)||{},{ref:c,message:_,type:x,...$}=f;E(t.errors,i,{...$,...n,ref:m}),b.state.next({name:i,errors:t.errors,isValid:!1}),l&&l.shouldFocus&&m&&m.focus&&m.focus()},"setError"),$t=a((i,n)=>re(i)?b.values.subscribe({next:a(l=>i(D(void 0,n),l),"next")}):D(i,n,!0),"watch"),Re=a((i,n={})=>{for(let l of i?J(i):g.mount)g.mount.delete(l),g.array.delete(l),n.keepValue||(O(s,l),O(u,l)),!n.keepError&&O(t.errors,l),!n.keepDirty&&O(t.dirtyFields,l),!n.keepTouched&&O(t.touchedFields,l),!n.keepIsValidating&&O(t.validatingFields,l),!r.shouldUnregister&&!n.keepDefaultValue&&O(o,l);b.values.next({values:{...u}}),b.state.next({...t,...n.keepDirty?{isDirty:A()}:{}}),!n.keepIsValid&&H()},"unregister"),st=a(({disabled:i,name:n,field:l,fields:m})=>{(Q(i)&&y.mount||i||g.disabled.has(n))&&(i?g.disabled.add(n):g.disabled.delete(n),h(n,He(l?l._f:d(m,n)._f),!1,!1,!0))},"_updateDisabledField"),Te=a((i,n={})=>{let l=d(s,i),m=Q(n.disabled)||Q(r.disabled);return E(s,i,{...l||{},_f:{...l&&l._f?l._f:{ref:{name:i}},name:i,mount:!0,...n}}),g.mount.add(i),l?st({field:l,disabled:Q(n.disabled)?n.disabled:r.disabled,name:i}):P(i,!0,n.value),{...m?{disabled:n.disabled||r.disabled}:{},...r.progressive?{required:!!n.required,min:be(n.min),max:be(n.max),minLength:be(n.minLength),maxLength:be(n.maxLength),pattern:be(n.pattern)}:{},name:i,onChange:_e,onBlur:_e,ref:a(f=>{if(f){Te(i,n),l=d(s,i);let c=R(f.value)&&f.querySelectorAll&&f.querySelectorAll("input,select,textarea")[0]||f,_=tr(c),x=l._f.refs||[];if(_?x.find($=>$===c):c===l._f.ref)return;E(s,i,{_f:{...l._f,..._?{refs:[...x.filter(qe),c,...Array.isArray(d(o,i))?[{}]:[]],ref:{type:c.type,name:i}}:{ref:c}}}),P(i,!1,void 0,c)}else l=d(s,i,{}),l._f&&(l._f.mount=!1),(r.shouldUnregister||n.shouldUnregister)&&!(bt(g.array,i)&&y.action)&&g.unMount.add(i)},"ref")}},"register"),it=a(()=>r.shouldFocusError&&me(s,he,g.mount),"_focusError"),Wt=a(i=>{Q(i)&&(b.state.next({disabled:i}),me(s,(n,l)=>{let m=d(s,l);m&&(n.disabled=m._f.disabled||i,Array.isArray(m._f.refs)&&m._f.refs.forEach(f=>{f.disabled=m._f.disabled||i}))},0,!1))},"_disableForm"),at=a((i,n)=>async l=>{let m;l&&(l.preventDefault&&l.preventDefault(),l.persist&&l.persist());let f=M(u);if(g.disabled.size)for(let c of g.disabled)E(f,c,void 0);if(b.state.next({isSubmitting:!0}),r.resolver){let{errors:c,values:_}=await V();t.errors=c,f=_}else await B(s);if(O(t.errors,"root"),K(t.errors)){b.state.next({errors:{}});try{await i(f,l)}catch(c){m=c}}else n&&await n({...t.errors},l),it(),setTimeout(it);if(b.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:K(t.errors)&&!m,submitCount:t.submitCount+1,errors:t.errors}),m)throw m},"handleSubmit"),jt=a((i,n={})=>{d(s,i)&&(R(n.defaultValue)?G(i,M(d(o,i))):(G(i,n.defaultValue),E(o,i,M(n.defaultValue))),n.keepTouched||O(t.touchedFields,i),n.keepDirty||(O(t.dirtyFields,i),t.isDirty=n.defaultValue?A(i,M(d(o,i))):A()),n.keepError||(O(t.errors,i),w.isValid&&H()),b.state.next({...t}))},"resetField"),nt=a((i,n={})=>{let l=i?M(i):o,m=M(l),f=K(i),c=f?o:m;if(n.keepDefaultValues||(o=l),!n.keepValues){if(n.keepDirtyValues){let _=new Set([...g.mount,...Object.keys(ve(o,u))]);for(let x of Array.from(_))d(t.dirtyFields,x)?E(c,x,d(u,x)):G(x,d(c,x))}else{if(Ge&&R(i))for(let _ of g.mount){let x=d(s,_);if(x&&x._f){let $=Array.isArray(x._f.refs)?x._f.refs[0]:x._f.ref;if(we($)){let W=$.closest("form");if(W){W.reset();break}}}}s={}}u=r.shouldUnregister?n.keepDefaultValues?M(o):{}:M(c),b.array.next({values:{...c}}),b.values.next({values:{...c}})}g={mount:n.keepDirtyValues?g.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},y.mount=!w.isValid||!!n.keepIsValid||!!n.keepDirtyValues,y.watch=!!r.shouldUnregister,b.state.next({submitCount:n.keepSubmitCount?t.submitCount:0,isDirty:f?!1:n.keepDirty?t.isDirty:!!(n.keepDefaultValues&&!ce(i,o)),isSubmitted:n.keepIsSubmitted?t.isSubmitted:!1,dirtyFields:f?{}:n.keepDirtyValues?n.keepDefaultValues&&u?ve(o,u):t.dirtyFields:n.keepDefaultValues&&i?ve(o,i):n.keepDirty?t.dirtyFields:{},touchedFields:n.keepTouched?t.touchedFields:{},errors:n.keepErrors?t.errors:{},isSubmitSuccessful:n.keepIsSubmitSuccessful?t.isSubmitSuccessful:!1,isSubmitting:!1})},"_reset"),ot=a((i,n)=>nt(re(i)?i(u):i,n),"reset");return{control:{register:Te,unregister:Re,getFieldState:tt,handleSubmit:at,setError:rt,_executeSchema:V,_getWatch:D,_getDirty:A,_updateValid:H,_removeUnmounted:de,_updateFieldArray:C,_updateDisabledField:st,_getFieldArray:N,_reset:nt,_resetDefaultValues:a(()=>re(r.defaultValues)&&r.defaultValues().then(i=>{ot(i,r.resetOptions),b.state.next({isLoading:!1})}),"_resetDefaultValues"),_updateFormState:a(i=>{t={...t,...i}},"_updateFormState"),_disableForm:Wt,_subjects:b,_proxyFormState:w,_setErrors:Z,get _fields(){return s},get _formValues(){return u},get _state(){return y},set _state(i){y=i},get _defaultValues(){return o},get _names(){return g},set _names(i){g=i},get _formState(){return t},set _formState(i){t=i},get _options(){return r},set _options(i){r={...r,...i}}},trigger:Fe,register:Te,handleSubmit:at,watch:$t,setValue:G,getValues:et,reset:ot,resetField:jt,clearErrors:Bt,unregister:Re,setError:rt,setFocus:a((i,n={})=>{let l=d(s,i),m=l&&l._f;if(m){let f=m.refs?m.refs[0]:m.ref;f.focus&&(f.focus(),n.shouldSelect&&re(f.select)&&f.select())}},"setFocus"),getFieldState:tt}}a(lr,"createFormControl");function hr(e={}){let r=v.useRef(void 0),t=v.useRef(void 0),[s,o]=v.useState({isDirty:!1,isValidating:!1,isLoading:re(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,defaultValues:re(e.defaultValues)?void 0:e.defaultValues});r.current||(r.current={...lr(e),formState:s});let u=r.current.control;return u._options=e,Ee({subject:u._subjects.state,next:a(y=>{St(y,u._proxyFormState,u._updateFormState,!0)&&o({...u._formState})},"next")}),v.useEffect(()=>u._disableForm(e.disabled),[u,e.disabled]),v.useEffect(()=>{if(u._proxyFormState.isDirty){let y=u._getDirty();y!==s.isDirty&&u._subjects.state.next({isDirty:y})}},[u,s.isDirty]),v.useEffect(()=>{e.values&&!ce(e.values,t.current)?(u._reset(e.values,u._options.resetOptions),t.current=e.values,o(y=>({...y}))):u._resetDefaultValues()},[e.values,u]),v.useEffect(()=>{e.errors&&u._setErrors(e.errors)},[e.errors,u]),v.useEffect(()=>{u._state.mount||(u._updateValid(),u._state.mount=!0),u._state.watch&&(u._state.watch=!1,u._subjects.state.next({...u._formState})),u._removeUnmounted()}),v.useEffect(()=>{e.shouldUnregister&&u._subjects.values.next({values:u._getWatch()})},[e.shouldUnregister,u]),r.current.formState=At(s,u),r.current}a(hr,"useForm");import{Slot as cr}from"@radix-ui/react-slot";import*as ie from"react";import*as Ot from"@radix-ui/react-label";import{jsx as ur}from"react/jsx-runtime";function Nt({className:e,...r}){return ur(Ot.Root,{"data-slot":"label",className:le("flex items-center gap-2 text-sm leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",e),...r})}a(Nt,"Label");import{jsx as ne}from"react/jsx-runtime";var Rr=xt,Mt=ie.createContext({}),Tr=a(({...e})=>ne(Mt.Provider,{value:{name:e.name},children:ne(Dt,{...e})}),"FormField"),ke=a(()=>{let e=ie.useContext(Mt),r=ie.useContext(Ut),{getFieldState:t}=ge(),s=Ye({name:e.name}),o=t(e.name,s);if(!e)throw new Error("useFormField should be used within <FormField>");let{id:u}=r;return{id:u,name:e.name,formItemId:`${u}-form-item`,formDescriptionId:`${u}-form-item-description`,formMessageId:`${u}-form-item-message`,...o}},"useFormField"),Ut=ie.createContext({});function Pr({className:e,...r}){let t=ie.useId();return ne(Ut.Provider,{value:{id:t},children:ne("div",{"data-slot":"form-item",...r,className:le("grid gap-2",e)})})}a(Pr,"FormItem");function Ir({className:e,...r}){let{error:t,formItemId:s}=ke();return ne(Nt,{"data-slot":"form-label","data-error":!!t,className:le("text-base-color mb-1 data-[error=true]:text-destructive",e),htmlFor:s,...r})}a(Ir,"FormLabel");var dr=ie.forwardRef(({...e},r)=>{let{error:t,formItemId:s,formDescriptionId:o,formMessageId:u}=ke();return ne(cr,{"data-slot":"form-control",ref:r,id:s,"aria-describedby":t?`${o} ${u}`:`${o}`,"aria-invalid":!!t,...e})});dr.displayName="FormControl";function Lr({className:e,children:r,...t}){let{formDescriptionId:s}=ke();return typeof r=="string"?ne("p",{"data-slot":"form-description",id:s,className:le("text-base-color text-xs",e),dangerouslySetInnerHTML:{__html:ct(r)},...t}):ne("p",{"data-slot":"form-description",id:s,className:le("text-base-color text-xs",e),...t,children:typeof r=="function"?r():r})}a(Lr,"FormDescription");function Or({className:e,...r}){let{error:t,formMessageId:s}=ke(),o=t?String(t?.message??""):r.children;return o?ne("p",{"data-slot":"form-message",id:s,className:le("text-destructive text-sm",e),...r,children:o}):null}a(Or,"FormMessage");export{d as a,E as b,ge as c,Yt as d,_r as e,hr as f,Rr as g,Tr as h,Pr as i,Ir as j,dr as k,Lr as l,Or as m};
2
- //# sourceMappingURL=chunk-DPLXEXMO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../node_modules/react-hook-form/src/utils/isCheckBoxInput.ts","../node_modules/react-hook-form/src/utils/isDateObject.ts","../node_modules/react-hook-form/src/utils/isNullOrUndefined.ts","../node_modules/react-hook-form/src/utils/isObject.ts","../node_modules/react-hook-form/src/logic/getEventValue.ts","../node_modules/react-hook-form/src/logic/getNodeParentName.ts","../node_modules/react-hook-form/src/logic/isNameInFieldArray.ts","../node_modules/react-hook-form/src/utils/isPlainObject.ts","../node_modules/react-hook-form/src/utils/isWeb.ts","../node_modules/react-hook-form/src/utils/cloneObject.ts","../node_modules/react-hook-form/src/utils/compact.ts","../node_modules/react-hook-form/src/utils/isUndefined.ts","../node_modules/react-hook-form/src/utils/get.ts","../node_modules/react-hook-form/src/utils/isBoolean.ts","../node_modules/react-hook-form/src/utils/isKey.ts","../node_modules/react-hook-form/src/utils/stringToPath.ts","../node_modules/react-hook-form/src/utils/set.ts","../node_modules/react-hook-form/src/constants.ts","../node_modules/react-hook-form/src/useFormContext.tsx","../node_modules/react-hook-form/src/logic/getProxyFormState.ts","../node_modules/react-hook-form/src/utils/isEmptyObject.ts","../node_modules/react-hook-form/src/logic/shouldRenderFormState.ts","../node_modules/react-hook-form/src/utils/convertToArrayPayload.ts","../node_modules/react-hook-form/src/logic/shouldSubscribeByName.ts","../node_modules/react-hook-form/src/useSubscribe.ts","../node_modules/react-hook-form/src/useFormState.ts","../node_modules/react-hook-form/src/utils/isString.ts","../node_modules/react-hook-form/src/logic/generateWatchOutput.ts","../node_modules/react-hook-form/src/useWatch.ts","../node_modules/react-hook-form/src/useController.ts","../node_modules/react-hook-form/src/controller.tsx","../node_modules/react-hook-form/src/utils/flatten.ts","../node_modules/react-hook-form/src/form.tsx","../node_modules/react-hook-form/src/logic/appendErrors.ts","../node_modules/react-hook-form/src/logic/generateId.ts","../node_modules/react-hook-form/src/logic/getFocusFieldName.ts","../node_modules/react-hook-form/src/logic/getValidationModes.ts","../node_modules/react-hook-form/src/logic/isWatched.ts","../node_modules/react-hook-form/src/logic/iterateFieldsByAction.ts","../node_modules/react-hook-form/src/logic/updateFieldArrayRootError.ts","../node_modules/react-hook-form/src/utils/isFileInput.ts","../node_modules/react-hook-form/src/utils/isFunction.ts","../node_modules/react-hook-form/src/utils/isHTMLElement.ts","../node_modules/react-hook-form/src/utils/isMessage.ts","../node_modules/react-hook-form/src/utils/isRadioInput.ts","../node_modules/react-hook-form/src/utils/isRegex.ts","../node_modules/react-hook-form/src/logic/getCheckboxValue.ts","../node_modules/react-hook-form/src/logic/getRadioValue.ts","../node_modules/react-hook-form/src/logic/getValidateError.ts","../node_modules/react-hook-form/src/logic/getValueAndMessage.ts","../node_modules/react-hook-form/src/logic/validateField.ts","../node_modules/react-hook-form/src/utils/append.ts","../node_modules/react-hook-form/src/utils/fillEmptyArray.ts","../node_modules/react-hook-form/src/utils/insert.ts","../node_modules/react-hook-form/src/utils/move.ts","../node_modules/react-hook-form/src/utils/prepend.ts","../node_modules/react-hook-form/src/utils/remove.ts","../node_modules/react-hook-form/src/utils/swap.ts","../node_modules/react-hook-form/src/utils/unset.ts","../node_modules/react-hook-form/src/utils/update.ts","../node_modules/react-hook-form/src/useFieldArray.ts","../node_modules/react-hook-form/src/utils/createSubject.ts","../node_modules/react-hook-form/src/utils/isPrimitive.ts","../node_modules/react-hook-form/src/utils/deepEqual.ts","../node_modules/react-hook-form/src/utils/isMultipleSelect.ts","../node_modules/react-hook-form/src/utils/isRadioOrCheckbox.ts","../node_modules/react-hook-form/src/utils/live.ts","../node_modules/react-hook-form/src/utils/objectHasFunction.ts","../node_modules/react-hook-form/src/logic/getDirtyFields.ts","../node_modules/react-hook-form/src/logic/getFieldValueAs.ts","../node_modules/react-hook-form/src/logic/getFieldValue.ts","../node_modules/react-hook-form/src/logic/getResolverOptions.ts","../node_modules/react-hook-form/src/logic/getRuleValue.ts","../node_modules/react-hook-form/src/logic/hasPromiseValidation.ts","../node_modules/react-hook-form/src/logic/hasValidation.ts","../node_modules/react-hook-form/src/logic/schemaErrorLookup.ts","../node_modules/react-hook-form/src/logic/skipValidation.ts","../node_modules/react-hook-form/src/logic/unsetEmptyArray.ts","../node_modules/react-hook-form/src/logic/createFormControl.ts","../node_modules/react-hook-form/src/useForm.ts","../src/components/ui/form.tsx","../src/components/ui/label.tsx"],"sourcesContent":["import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'checkbox';\n","export default (value: unknown): value is Date => value instanceof Date;\n","export default (value: unknown): value is null | undefined => value == null;\n","import isDateObject from './isDateObject';\nimport isNullOrUndefined from './isNullOrUndefined';\n\nexport const isObjectType = (value: unknown): value is object =>\n typeof value === 'object';\n\nexport default <T extends object>(value: unknown): value is T =>\n !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n","import isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isObject from '../utils/isObject';\n\ntype Event = { target: any };\n\nexport default (event: unknown) =>\n isObject(event) && (event as Event).target\n ? isCheckBoxInput((event as Event).target)\n ? (event as Event).target.checked\n : (event as Event).target.value\n : event;\n","export default (name: string) =>\n name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n","import { InternalFieldName } from '../types';\n\nimport getNodeParentName from './getNodeParentName';\n\nexport default (names: Set<InternalFieldName>, name: InternalFieldName) =>\n names.has(getNodeParentName(name));\n","import isObject from './isObject';\n\nexport default (tempObject: object) => {\n const prototypeCopy =\n tempObject.constructor && tempObject.constructor.prototype;\n\n return (\n isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf')\n );\n};\n","export default typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n","import isObject from './isObject';\nimport isPlainObject from './isPlainObject';\nimport isWeb from './isWeb';\n\nexport default function cloneObject<T>(data: T): T {\n let copy: any;\n const isArray = Array.isArray(data);\n const isFileListInstance =\n typeof FileList !== 'undefined' ? data instanceof FileList : false;\n\n if (data instanceof Date) {\n copy = new Date(data);\n } else if (data instanceof Set) {\n copy = new Set(data);\n } else if (\n !(isWeb && (data instanceof Blob || isFileListInstance)) &&\n (isArray || isObject(data))\n ) {\n copy = isArray ? [] : {};\n\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n } else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n } else {\n return data;\n }\n\n return copy;\n}\n","export default <TValue>(value: TValue[]) =>\n Array.isArray(value) ? value.filter(Boolean) : [];\n","export default (val: unknown): val is undefined => val === undefined;\n","import compact from './compact';\nimport isNullOrUndefined from './isNullOrUndefined';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\n\nexport default <T>(\n object: T,\n path?: string | null,\n defaultValue?: unknown,\n): any => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n\n const result = compact(path.split(/[,[\\].]+?/)).reduce(\n (result, key) =>\n isNullOrUndefined(result) ? result : result[key as keyof {}],\n object,\n );\n\n return isUndefined(result) || result === object\n ? isUndefined(object[path as keyof T])\n ? defaultValue\n : object[path as keyof T]\n : result;\n};\n","export default (value: unknown): value is boolean => typeof value === 'boolean';\n","export default (value: string) => /^\\w*$/.test(value);\n","import compact from './compact';\n\nexport default (input: string): string[] =>\n compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n","import { FieldPath, FieldValues } from '../types';\n\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport stringToPath from './stringToPath';\n\nexport default (\n object: FieldValues,\n path: FieldPath<FieldValues>,\n value?: unknown,\n) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n","export const EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n} as const;\n\nexport const VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n} as const;\n\nexport const INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n} as const;\n","import React from 'react';\n\nimport { FieldValues, FormProviderProps, UseFormReturn } from './types';\n\nconst HookFormContext = React.createContext<UseFormReturn | null>(null);\n\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nexport const useFormContext = <\n TFieldValues extends FieldValues,\n TContext = any,\n TransformedValues extends FieldValues | undefined = undefined,\n>(): UseFormReturn<TFieldValues, TContext, TransformedValues> =>\n React.useContext(HookFormContext) as UseFormReturn<\n TFieldValues,\n TContext,\n TransformedValues\n >;\n\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * <FormProvider {...methods} >\n * <form onSubmit={methods.handleSubmit(onSubmit)}>\n * <NestedInput />\n * <input type=\"submit\" />\n * </form>\n * </FormProvider>\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return <input {...register(\"test\")} />;\n * }\n * ```\n */\nexport const FormProvider = <\n TFieldValues extends FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: FormProviderProps<TFieldValues, TContext, TTransformedValues>,\n) => {\n const { children, ...data } = props;\n return (\n <HookFormContext.Provider value={data as unknown as UseFormReturn}>\n {children}\n </HookFormContext.Provider>\n );\n};\n","import { VALIDATION_MODE } from '../constants';\nimport { Control, FieldValues, FormState, ReadFormState } from '../types';\n\nexport default <TFieldValues extends FieldValues, TContext = any>(\n formState: FormState<TFieldValues>,\n control: Control<TFieldValues, TContext>,\n localProxyFormState?: ReadFormState,\n isRoot = true,\n) => {\n const result = {\n defaultValues: control._defaultValues,\n } as typeof formState;\n\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key as keyof FormState<TFieldValues> & keyof ReadFormState;\n\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n\n return result;\n};\n","import { EmptyObject } from '../types';\n\nimport isObject from './isObject';\n\nexport default (value: unknown): value is EmptyObject =>\n isObject(value) && !Object.keys(value).length;\n","import { VALIDATION_MODE } from '../constants';\nimport {\n Control,\n FieldValues,\n FormState,\n InternalFieldName,\n ReadFormState,\n} from '../types';\nimport isEmptyObject from '../utils/isEmptyObject';\n\nexport default <T extends FieldValues, K extends ReadFormState>(\n formStateData: Partial<FormState<T>> & { name?: InternalFieldName },\n _proxyFormState: K,\n updateFormState: Control<T>['_updateFormState'],\n isRoot?: boolean,\n) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n\n return (\n isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find(\n (key) =>\n _proxyFormState[key as keyof ReadFormState] ===\n (!isRoot || VALIDATION_MODE.all),\n )\n );\n};\n","export default <T>(value: T) => (Array.isArray(value) ? value : [value]);\n","import convertToArrayPayload from '../utils/convertToArrayPayload';\n\nexport default <T extends string | string[] | undefined>(\n name?: T,\n signalName?: string,\n exact?: boolean,\n) =>\n !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some(\n (currentName) =>\n currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)),\n );\n","import React from 'react';\n\nimport { Subject } from './utils/createSubject';\n\ntype Props<T> = {\n disabled?: boolean;\n subject: Subject<T>;\n next: (value: T) => void;\n};\n\nexport function useSubscribe<T>(props: Props<T>) {\n const _props = React.useRef(props);\n _props.current = props;\n\n React.useEffect(() => {\n const subscription =\n !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n","import React from 'react';\n\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormStateProps,\n UseFormStateReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input {...register(\"firstName\")} placeholder=\"First Name\" />\n * {dirtyFields.firstName && <p>Field is dirty.</p>}\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nfunction useFormState<TFieldValues extends FieldValues = FieldValues>(\n props?: UseFormStateProps<TFieldValues>,\n): UseFormStateReturn<TFieldValues> {\n const methods = useFormContext<TFieldValues>();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n next: (\n value: Partial<FormState<TFieldValues>> & { name?: InternalFieldName },\n ) =>\n _mounted.current &&\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n value.name,\n exact,\n ) &&\n shouldRenderFormState(\n value,\n _localProxyFormState.current,\n control._updateFormState,\n ) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n\n return React.useMemo(\n () =>\n getProxyFormState(\n formState,\n control,\n _localProxyFormState.current,\n false,\n ),\n [formState, control],\n );\n}\n\nexport { useFormState };\n","export default (value: unknown): value is string => typeof value === 'string';\n","import { DeepPartial, FieldValues, Names } from '../types';\nimport get from '../utils/get';\nimport isString from '../utils/isString';\n\nexport default <T>(\n names: string | string[] | undefined,\n _names: Names,\n formValues?: FieldValues,\n isGlobal?: boolean,\n defaultValue?: DeepPartial<T> | unknown,\n) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n\n if (Array.isArray(names)) {\n return names.map(\n (fieldName) => (\n isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)\n ),\n );\n }\n\n isGlobal && (_names.watchAll = true);\n\n return formValues;\n};\n","import React from 'react';\n\nimport generateWatchOutput from './logic/generateWatchOutput';\nimport shouldSubscribeByName from './logic/shouldSubscribeByName';\nimport cloneObject from './utils/cloneObject';\nimport {\n Control,\n DeepPartialSkipArrayKey,\n FieldPath,\n FieldPathValue,\n FieldPathValues,\n FieldValues,\n InternalFieldName,\n UseWatchProps,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Subscribe to the entire form values change and re-render at the hook level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * defaultValue: {\n * name: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(props: {\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues>;\n disabled?: boolean;\n exact?: boolean;\n}): DeepPartialSkipArrayKey<TFieldValues>;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: \"fieldA\",\n * defaultValue: \"default value\",\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>(props: {\n name: TFieldName;\n defaultValue?: FieldPathValue<TFieldValues, TFieldName>;\n control?: Control<TFieldValues>;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValue<TFieldValues, TFieldName>;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @param props - defaultValue, disable subscription and match exact name.\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * control,\n * name: [\"fieldA\", \"fieldB\"],\n * defaultValue: {\n * fieldA: \"data\",\n * fieldB: \"data\"\n * },\n * exact: false,\n * })\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n TFieldNames extends\n readonly FieldPath<TFieldValues>[] = readonly FieldPath<TFieldValues>[],\n>(props: {\n name: readonly [...TFieldNames];\n defaultValue?: DeepPartialSkipArrayKey<TFieldValues>;\n control?: Control<TFieldValues>;\n disabled?: boolean;\n exact?: boolean;\n}): FieldPathValues<TFieldValues, TFieldNames>;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * // can skip passing down the control into useWatch if the form is wrapped with the FormProvider\n * const values = useWatch()\n * ```\n */\nexport function useWatch<\n TFieldValues extends FieldValues = FieldValues,\n>(): DeepPartialSkipArrayKey<TFieldValues>;\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nexport function useWatch<TFieldValues extends FieldValues>(\n props?: UseWatchProps<TFieldValues>,\n) {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n defaultValue,\n disabled,\n exact,\n } = props || {};\n const _name = React.useRef(name);\n\n _name.current = name;\n\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState: { name?: InternalFieldName; values?: FieldValues }) => {\n if (\n shouldSubscribeByName(\n _name.current as InternalFieldName,\n formState.name,\n exact,\n )\n ) {\n updateValue(\n cloneObject(\n generateWatchOutput(\n _name.current as InternalFieldName | InternalFieldName[],\n control._names,\n formState.values || control._formValues,\n false,\n defaultValue,\n ),\n ),\n );\n }\n },\n });\n\n const [value, updateValue] = React.useState(\n control._getWatch(\n name as InternalFieldName,\n defaultValue as DeepPartialSkipArrayKey<TFieldValues>,\n ),\n );\n\n React.useEffect(() => control._removeUnmounted());\n\n return value;\n}\n","import React from 'react';\n\nimport getEventValue from './logic/getEventValue';\nimport isNameInFieldArray from './logic/isNameInFieldArray';\nimport cloneObject from './utils/cloneObject';\nimport get from './utils/get';\nimport isBoolean from './utils/isBoolean';\nimport isUndefined from './utils/isUndefined';\nimport set from './utils/set';\nimport { EVENTS } from './constants';\nimport {\n ControllerFieldState,\n Field,\n FieldPath,\n FieldPathValue,\n FieldValues,\n InternalFieldName,\n UseControllerProps,\n UseControllerReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useFormState } from './useFormState';\nimport { useWatch } from './useWatch';\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n * <div>\n * <input {...field} placeholder={props.name} />\n * <p>{fieldState.isTouched && \"Touched\"}</p>\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * </div>\n * );\n * }\n * ```\n */\nexport function useController<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>(\n props: UseControllerProps<TFieldValues, TName>,\n): UseControllerReturn<TFieldValues, TName> {\n const methods = useFormContext<TFieldValues>();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(\n control._formValues,\n name,\n get(control._defaultValues, name, props.defaultValue),\n ),\n exact: true,\n }) as FieldPathValue<TFieldValues, TName>;\n const formState = useFormState({\n control,\n name,\n exact: true,\n });\n\n const _registerProps = React.useRef(\n control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }),\n );\n\n const fieldState = React.useMemo(\n () =>\n Object.defineProperties(\n {},\n {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n },\n ) as ControllerFieldState,\n [formState, name],\n );\n\n const field = React.useMemo(\n () => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: (event: any) =>\n _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name as InternalFieldName,\n },\n type: EVENTS.CHANGE,\n }),\n onBlur: () =>\n _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name as InternalFieldName,\n },\n type: EVENTS.BLUR,\n }),\n ref: (elm: any) => {\n const field = get(control._fields, name);\n\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message: string) =>\n elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n }),\n [\n name,\n control._formValues,\n disabled,\n formState.disabled,\n value,\n control._fields,\n ],\n );\n\n React.useEffect(() => {\n const _shouldUnregisterField =\n control._options.shouldUnregister || shouldUnregister;\n\n const updateMounted = (name: InternalFieldName, value: boolean) => {\n const field: Field = get(control._fields, name);\n\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n\n updateMounted(name, true);\n\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n\n !isArrayField && control.register(name);\n\n return () => {\n (\n isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField\n )\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n\n React.useEffect(() => {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n });\n }, [disabled, name, control]);\n\n return React.useMemo(\n () => ({\n field,\n formState,\n fieldState,\n }),\n [field, formState, fieldState],\n );\n}\n","import { ControllerProps, FieldPath, FieldValues } from './types';\nimport { useController } from './useController';\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm<FormValues>({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n * <form>\n * <Controller\n * control={control}\n * name=\"test\"\n * render={({ field: { onChange, onBlur, value, ref }, formState, fieldState }) => (\n * <>\n * <input\n * onChange={onChange} // send value to hook form\n * onBlur={onBlur} // notify when input is touched\n * value={value} // return updated value\n * ref={ref} // set ref for focus management\n * />\n * <p>{formState.isSubmitted ? \"submitted\" : \"\"}</p>\n * <p>{fieldState.isTouched ? \"touched\" : \"\"}</p>\n * </>\n * )}\n * />\n * </form>\n * );\n * }\n * ```\n */\nconst Controller = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>(\n props: ControllerProps<TFieldValues, TName>,\n) => props.render(useController<TFieldValues, TName>(props));\n\nexport { Controller };\n","import { FieldValues } from '../types';\n\nimport { isObjectType } from './isObject';\n\nexport const flatten = (obj: FieldValues) => {\n const output: FieldValues = {};\n\n for (const key of Object.keys(obj)) {\n if (isObjectType(obj[key]) && obj[key] !== null) {\n const nested = flatten(obj[key]);\n\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n } else {\n output[key] = obj[key];\n }\n }\n\n return output;\n};\n","import React from 'react';\n\nimport { flatten } from './utils/flatten';\nimport { FieldValues, FormProps } from './types';\nimport { useFormContext } from './useFormContext';\n\nconst POST_REQUEST = 'post';\n\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n * <Form action=\"/api\" control={control}>\n * <input {...register(\"name\")} />\n * <p>{errors?.root?.server && 'Server error'}</p>\n * <button>Submit</button>\n * </Form>\n * );\n * }\n * ```\n */\nfunction Form<\n T extends FieldValues,\n U extends FieldValues | undefined = undefined,\n>(props: FormProps<T, U>) {\n const methods = useFormContext<T>();\n const [mounted, setMounted] = React.useState(false);\n const {\n control = methods.control,\n onSubmit,\n children,\n action,\n method = POST_REQUEST,\n headers,\n encType,\n onError,\n render,\n onSuccess,\n validateStatus,\n ...rest\n } = props;\n\n const submit = async (event?: React.BaseSyntheticEvent) => {\n let hasError = false;\n let type = '';\n\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n\n try {\n formDataJson = JSON.stringify(data);\n } catch {}\n\n const flattenFormValues = flatten(control._formValues);\n\n for (const key in flattenFormValues) {\n formData.append(key, flattenFormValues[key]);\n }\n\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n\n const response = await fetch(String(action), {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n\n if (\n response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)\n ) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n } else {\n onSuccess && onSuccess({ response });\n }\n } catch (error: unknown) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n\n React.useEffect(() => {\n setMounted(true);\n }, []);\n\n return render ? (\n <>\n {render({\n submit,\n })}\n </>\n ) : (\n <form\n noValidate={mounted}\n action={action}\n method={method}\n encType={encType}\n onSubmit={submit}\n {...rest}\n >\n {children}\n </form>\n );\n}\n\nexport { Form };\n","import {\n InternalFieldErrors,\n InternalFieldName,\n ValidateResult,\n} from '../types';\n\nexport default (\n name: InternalFieldName,\n validateAllFieldCriteria: boolean,\n errors: InternalFieldErrors,\n type: string,\n message: ValidateResult,\n) =>\n validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name]!.types ? errors[name]!.types : {}),\n [type]: message || true,\n },\n }\n : {};\n","export default () => {\n const d =\n typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n","import { FieldArrayMethodProps, InternalFieldName } from '../types';\nimport isUndefined from '../utils/isUndefined';\n\nexport default (\n name: InternalFieldName,\n index: number,\n options: FieldArrayMethodProps = {},\n): string =>\n options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n","import { VALIDATION_MODE } from '../constants';\nimport { Mode, ValidationModeFlags } from '../types';\n\nexport default (mode?: Mode): ValidationModeFlags => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n","import { InternalFieldName, Names } from '../types';\n\nexport default (\n name: InternalFieldName,\n _names: Names,\n isBlurEvent?: boolean,\n) =>\n !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some(\n (watchName) =>\n name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length)),\n ));\n","import { FieldRefs, InternalFieldName, Ref } from '../types';\nimport { get } from '../utils';\nimport isObject from '../utils/isObject';\n\nconst iterateFieldsByAction = (\n fields: FieldRefs,\n action: (ref: Ref, name: string) => 1 | undefined | void,\n fieldsNames?: Set<InternalFieldName> | InternalFieldName[] | 0,\n abortEarly?: boolean,\n) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n\n if (field) {\n const { _f, ...currentField } = field;\n\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n } else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n } else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n } else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField as FieldRefs, action)) {\n break;\n }\n }\n }\n }\n return;\n};\nexport default iterateFieldsByAction;\n","import {\n FieldError,\n FieldErrors,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport get from '../utils/get';\nimport set from '../utils/set';\n\nexport default <T extends FieldValues = FieldValues>(\n errors: FieldErrors<T>,\n error: Partial<Record<string, FieldError>>,\n name: InternalFieldName,\n): FieldErrors<T> => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'file';\n","export default (value: unknown): value is Function =>\n typeof value === 'function';\n","import isWeb from './isWeb';\n\nexport default (value: unknown): value is HTMLElement => {\n if (!isWeb) {\n return false;\n }\n\n const owner = value ? ((value as HTMLElement).ownerDocument as Document) : 0;\n return (\n value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement)\n );\n};\n","import { Message } from '../types';\nimport isString from '../utils/isString';\n\nexport default (value: unknown): value is Message => isString(value);\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLInputElement =>\n element.type === 'radio';\n","export default (value: unknown): value is RegExp => value instanceof RegExp;\n","import isUndefined from '../utils/isUndefined';\n\ntype CheckboxFieldResult = {\n isValid: boolean;\n value: string | string[] | boolean | undefined;\n};\n\nconst defaultResult: CheckboxFieldResult = {\n value: false,\n isValid: false,\n};\n\nconst validResult = { value: true, isValid: true };\n\nexport default (options?: HTMLInputElement[]): CheckboxFieldResult => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n\n return defaultResult;\n};\n","type RadioFieldResult = {\n isValid: boolean;\n value: number | string | null;\n};\n\nconst defaultReturn: RadioFieldResult = {\n isValid: false,\n value: null,\n};\n\nexport default (options?: HTMLInputElement[]): RadioFieldResult =>\n Array.isArray(options)\n ? options.reduce(\n (previous, option): RadioFieldResult =>\n option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous,\n defaultReturn,\n )\n : defaultReturn;\n","import { FieldError, Ref, ValidateResult } from '../types';\nimport isBoolean from '../utils/isBoolean';\nimport isMessage from '../utils/isMessage';\n\nexport default function getValidateError(\n result: ValidateResult,\n ref: Ref,\n type = 'validate',\n): FieldError | void {\n if (\n isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)\n ) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n","import { ValidationRule } from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\n\nexport default (validationData?: ValidationRule) =>\n isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n","import { INPUT_VALIDATION_RULES } from '../constants';\nimport {\n Field,\n FieldError,\n FieldValues,\n InternalFieldErrors,\n InternalNameSet,\n MaxType,\n Message,\n MinType,\n NativeFieldValue,\n} from '../types';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMessage from '../utils/isMessage';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioInput from '../utils/isRadioInput';\nimport isRegex from '../utils/isRegex';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nimport appendErrors from './appendErrors';\nimport getCheckboxValue from './getCheckboxValue';\nimport getRadioValue from './getRadioValue';\nimport getValidateError from './getValidateError';\nimport getValueAndMessage from './getValueAndMessage';\n\nexport default async <T extends FieldValues>(\n field: Field,\n disabledFieldNames: InternalNameSet,\n formValues: T,\n validateAllFieldCriteria: boolean,\n shouldUseNativeValidation?: boolean,\n isFieldArray?: boolean,\n): Promise<InternalFieldErrors> => {\n const {\n ref,\n refs,\n required,\n maxLength,\n minLength,\n min,\n max,\n pattern,\n validate,\n name,\n valueAsNumber,\n mount,\n } = field._f;\n const inputValue: NativeFieldValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef: HTMLInputElement = refs ? refs[0] : (ref as HTMLInputElement);\n const setCustomValidity = (message?: string | boolean) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error: InternalFieldErrors = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty =\n ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(\n null,\n name,\n validateAllFieldCriteria,\n error,\n );\n const getMinMaxMessage = (\n exceedMax: boolean,\n maxLengthMessage: Message,\n minLengthMessage: Message,\n maxType: MaxType = INPUT_VALIDATION_RULES.maxLength,\n minType: MinType = INPUT_VALIDATION_RULES.minLength,\n ) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n\n if (\n isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))\n ) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue as number)) {\n const valueNumber =\n (ref as HTMLInputElement).valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n } else {\n const valueDate =\n (ref as HTMLInputElement).valueAsDate || new Date(inputValue as string);\n const convertTimeToDate = (time: unknown) =>\n new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n !!exceedMax,\n maxOutput.message,\n minOutput.message,\n INPUT_VALIDATION_RULES.max,\n INPUT_VALIDATION_RULES.min,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (\n (maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))\n ) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax =\n !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin =\n !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n\n if (exceedMax || exceedMin) {\n getMinMaxMessage(\n exceedMax,\n maxLengthOutput.message,\n minLengthOutput.message,\n );\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name]!.message);\n return error;\n }\n }\n }\n\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(\n INPUT_VALIDATION_RULES.validate,\n validateError.message,\n ),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n } else if (isObject(validate)) {\n let validationResult = {} as FieldError;\n\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n\n const validateError = getValidateError(\n await validate[key](inputValue, formValues),\n inputRef,\n key,\n );\n\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n\n setCustomValidity(validateError.message);\n\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n\n setCustomValidity(true);\n return error;\n};\n","import convertToArrayPayload from './convertToArrayPayload';\n\nexport default <T>(data: T[], value: T | T[]): T[] => [\n ...data,\n ...convertToArrayPayload(value),\n];\n","export default <T>(value: T | T[]): undefined[] | undefined =>\n Array.isArray(value) ? value.map(() => undefined) : undefined;\n","import convertToArrayPayload from './convertToArrayPayload';\n\nexport default function insert<T>(data: T[], index: number): (T | undefined)[];\nexport default function insert<T>(\n data: T[],\n index: number,\n value: T | T[],\n): T[];\nexport default function insert<T>(\n data: T[],\n index: number,\n value?: T | T[],\n): (T | undefined)[] {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n","import isUndefined from './isUndefined';\n\nexport default <T>(\n data: (T | undefined)[],\n from: number,\n to: number,\n): (T | undefined)[] => {\n if (!Array.isArray(data)) {\n return [];\n }\n\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n\n return data;\n};\n","import convertToArrayPayload from './convertToArrayPayload';\n\nexport default <T>(data: T[], value: T | T[]): T[] => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n","import compact from './compact';\nimport convertToArrayPayload from './convertToArrayPayload';\nimport isUndefined from './isUndefined';\n\nfunction removeAtIndexes<T>(data: T[], indexes: number[]): T[] {\n let i = 0;\n const temp = [...data];\n\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n\n return compact(temp).length ? temp : [];\n}\n\nexport default <T>(data: T[], index?: number | number[]): T[] =>\n isUndefined(index)\n ? []\n : removeAtIndexes(\n data,\n (convertToArrayPayload(index) as number[]).sort((a, b) => a - b),\n );\n","export default <T>(data: T[], indexA: number, indexB: number): void => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n","import isEmptyObject from './isEmptyObject';\nimport isKey from './isKey';\nimport isObject from './isObject';\nimport isUndefined from './isUndefined';\nimport stringToPath from './stringToPath';\n\nfunction baseGet(object: any, updatePath: (string | number)[]) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n\n return object;\n}\n\nfunction isEmptyArray(obj: unknown[]) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\n\nexport default function unset(object: any, path: string | (string | number)[]) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n\n const index = paths.length - 1;\n const key = paths[index];\n\n if (childObject) {\n delete childObject[key];\n }\n\n if (\n index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))\n ) {\n unset(object, paths.slice(0, -1));\n }\n\n return object;\n}\n","export default <T>(fieldValues: T[], index: number, value: T) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n","import React from 'react';\n\nimport generateId from './logic/generateId';\nimport getFocusFieldName from './logic/getFocusFieldName';\nimport getValidationModes from './logic/getValidationModes';\nimport isWatched from './logic/isWatched';\nimport iterateFieldsByAction from './logic/iterateFieldsByAction';\nimport updateFieldArrayRootError from './logic/updateFieldArrayRootError';\nimport validateField from './logic/validateField';\nimport appendAt from './utils/append';\nimport cloneObject from './utils/cloneObject';\nimport convertToArrayPayload from './utils/convertToArrayPayload';\nimport fillEmptyArray from './utils/fillEmptyArray';\nimport get from './utils/get';\nimport insertAt from './utils/insert';\nimport isEmptyObject from './utils/isEmptyObject';\nimport moveArrayAt from './utils/move';\nimport prependAt from './utils/prepend';\nimport removeArrayAt from './utils/remove';\nimport set from './utils/set';\nimport swapArrayAt from './utils/swap';\nimport unset from './utils/unset';\nimport updateAt from './utils/update';\nimport { VALIDATION_MODE } from './constants';\nimport {\n Control,\n Field,\n FieldArray,\n FieldArrayMethodProps,\n FieldArrayPath,\n FieldArrayWithId,\n FieldErrors,\n FieldPath,\n FieldValues,\n FormState,\n InternalFieldName,\n RegisterOptions,\n UseFieldArrayProps,\n UseFieldArrayReturn,\n} from './types';\nimport { useFormContext } from './useFormContext';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n * <form onSubmit={handleSubmit(data => console.log(data))}>\n * {fields.map((item, index) => (\n * <input key={item.id} {...register(`test.${index}.firstName`)} />\n * ))}\n * <button type=\"button\" onClick={() => append({ firstName: \"bill\" })}>\n * append\n * </button>\n * <input type=\"submit\" />\n * </form>\n * );\n * }\n * ```\n */\nexport function useFieldArray<\n TFieldValues extends FieldValues = FieldValues,\n TFieldArrayName extends\n FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,\n TKeyName extends string = 'id',\n>(\n props: UseFieldArrayProps<TFieldValues, TFieldArrayName, TKeyName>,\n): UseFieldArrayReturn<TFieldValues, TFieldArrayName, TKeyName> {\n const methods = useFormContext();\n const {\n control = methods.control,\n name,\n keyName = 'id',\n shouldUnregister,\n rules,\n } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef<string[]>(\n control._getFieldArray(name).map(generateId),\n );\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n\n rules &&\n (control as Control<TFieldValues>).register(\n name as FieldPath<TFieldValues>,\n rules as RegisterOptions<TFieldValues>,\n );\n\n useSubscribe({\n next: ({\n values,\n name: fieldArrayName,\n }: {\n values?: FieldValues;\n name?: InternalFieldName;\n }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n\n const updateValues = React.useCallback(\n <\n T extends Partial<\n FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>\n >[],\n >(\n updatedFieldArrayValues: T,\n ) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n },\n [control, name],\n );\n\n const append = (\n value:\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>[],\n options?: FieldArrayMethodProps,\n ) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(\n control._getFieldArray(name),\n appendValue,\n );\n control._names.focus = getFocusFieldName(\n name,\n updatedFieldArrayValues.length - 1,\n options,\n );\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n\n const prepend = (\n value:\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>[],\n options?: FieldArrayMethodProps,\n ) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(\n control._getFieldArray(name),\n prependValue,\n );\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n\n const remove = (index?: number | number[]) => {\n const updatedFieldArrayValues: Partial<\n FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>\n >[] = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n\n const insert = (\n index: number,\n value:\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>[],\n options?: FieldArrayMethodProps,\n ) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insertAt(\n control._getFieldArray(name),\n index,\n insertValue,\n );\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insertAt(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insertAt, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n\n const swap = (indexA: number, indexB: number) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(\n name,\n updatedFieldArrayValues,\n swapArrayAt,\n {\n argA: indexA,\n argB: indexB,\n },\n false,\n );\n };\n\n const move = (from: number, to: number) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(\n name,\n updatedFieldArrayValues,\n moveArrayAt,\n {\n argA: from,\n argB: to,\n },\n false,\n );\n };\n\n const update = (\n index: number,\n value: FieldArray<TFieldValues, TFieldArrayName>,\n ) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(\n control._getFieldArray<\n FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>\n >(name),\n index,\n updateValue as FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>,\n );\n ids.current = [...updatedFieldArrayValues].map((item, i) =>\n !item || i === index ? generateId() : ids.current[i],\n );\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(\n name,\n updatedFieldArrayValues,\n updateAt,\n {\n argA: index,\n argB: updateValue,\n },\n true,\n false,\n );\n };\n\n const replace = (\n value:\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>\n | Partial<FieldArray<TFieldValues, TFieldArrayName>>[],\n ) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(\n name,\n [...updatedFieldArrayValues],\n <T>(data: T): T => data,\n {},\n true,\n false,\n );\n };\n\n React.useEffect(() => {\n control._state.action = false;\n\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n } as FormState<TFieldValues>);\n\n if (\n _actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)\n ) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n\n if (\n existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type\n ) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors as FieldErrors<TFieldValues>,\n });\n }\n });\n } else {\n const field: Field = get(control._fields, name);\n if (\n field &&\n field._f &&\n !(\n getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit\n )\n ) {\n validateField(\n field,\n control._names.disabled,\n control._formValues,\n control._options.criteriaMode === VALIDATION_MODE.all,\n control._options.shouldUseNativeValidation,\n true,\n ).then(\n (error) =>\n !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(\n control._formState.errors as FieldErrors<TFieldValues>,\n error,\n name,\n ) as FieldErrors<TFieldValues>,\n }),\n );\n }\n }\n }\n\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key: string) => {\n if (\n control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus\n ) {\n ref.focus();\n return 1;\n }\n return;\n });\n\n control._names.focus = '';\n\n control._updateValid();\n\n _actioned.current = false;\n }, [fields, name, control]);\n\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name as FieldPath<TFieldValues>);\n };\n }, [name, control, keyName, shouldUnregister]);\n\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend, [updateValues, name, control]),\n append: React.useCallback(append, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(\n () =>\n fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })) as FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>[],\n [fields, keyName],\n ),\n };\n}\n","import { Noop } from '../types';\n\nexport type Observer<T> = {\n next: (value: T) => void;\n};\n\nexport type Subscription = {\n unsubscribe: Noop;\n};\n\nexport type Subject<T> = {\n readonly observers: Observer<T>[];\n subscribe: (value: Observer<T>) => Subscription;\n unsubscribe: Noop;\n} & Observer<T>;\n\nexport default <T>(): Subject<T> => {\n let _observers: Observer<T>[] = [];\n\n const next = (value: T) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n\n const subscribe = (observer: Observer<T>): Subscription => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n\n const unsubscribe = () => {\n _observers = [];\n };\n\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n","import { Primitive } from '../types';\n\nimport isNullOrUndefined from './isNullOrUndefined';\nimport { isObjectType } from './isObject';\n\nexport default (value: unknown): value is Primitive =>\n isNullOrUndefined(value) || !isObjectType(value);\n","import isObject from '../utils/isObject';\n\nimport isDateObject from './isDateObject';\nimport isPrimitive from './isPrimitive';\n\nexport default function deepEqual(object1: any, object2: any) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (const key of keys1) {\n const val1 = object1[key];\n\n if (!keys2.includes(key)) {\n return false;\n }\n\n if (key !== 'ref') {\n const val2 = object2[key];\n\n if (\n (isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2\n ) {\n return false;\n }\n }\n }\n\n return true;\n}\n","import { FieldElement } from '../types';\n\nexport default (element: FieldElement): element is HTMLSelectElement =>\n element.type === `select-multiple`;\n","import { FieldElement } from '../types';\n\nimport isCheckBoxInput from './isCheckBoxInput';\nimport isRadioInput from './isRadioInput';\n\nexport default (ref: FieldElement): ref is HTMLInputElement =>\n isRadioInput(ref) || isCheckBoxInput(ref);\n","import { Ref } from '../types';\n\nimport isHTMLElement from './isHTMLElement';\n\nexport default (ref: Ref) => isHTMLElement(ref) && ref.isConnected;\n","import isFunction from './isFunction';\n\nexport default <T>(data: T): boolean => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n","import deepEqual from '../utils/deepEqual';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isPrimitive from '../utils/isPrimitive';\nimport isUndefined from '../utils/isUndefined';\nimport objectHasFunction from '../utils/objectHasFunction';\n\nfunction markFieldsDirty<T>(data: T, fields: Record<string, any> = {}) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n } else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n\n return fields;\n}\n\nfunction getDirtyFieldsFromDefaultValues<T>(\n data: T,\n formValues: T,\n dirtyFieldsFromValues: Record<\n Extract<keyof T, string>,\n ReturnType<typeof markFieldsDirty> | boolean\n >,\n) {\n const isParentNodeArray = Array.isArray(data);\n\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (\n Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))\n ) {\n if (\n isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])\n ) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n } else {\n getDirtyFieldsFromDefaultValues(\n data[key],\n isNullOrUndefined(formValues) ? {} : formValues[key],\n dirtyFieldsFromValues[key],\n );\n }\n } else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n\n return dirtyFieldsFromValues;\n}\n\nexport default <T>(defaultValues: T, formValues: T) =>\n getDirtyFieldsFromDefaultValues(\n defaultValues,\n formValues,\n markFieldsDirty(formValues),\n );\n","import { Field, NativeFieldValue } from '../types';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\n\nexport default <T extends NativeFieldValue>(\n value: T,\n { valueAsNumber, valueAsDate, setValueAs }: Field['_f'],\n) =>\n isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n","import { Field } from '../types';\nimport isCheckBox from '../utils/isCheckBoxInput';\nimport isFileInput from '../utils/isFileInput';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isRadioInput from '../utils/isRadioInput';\nimport isUndefined from '../utils/isUndefined';\n\nimport getCheckboxValue from './getCheckboxValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getRadioValue from './getRadioValue';\n\nexport default function getFieldValue(_f: Field['_f']) {\n const ref = _f.ref;\n\n if (isFileInput(ref)) {\n return ref.files;\n }\n\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n\n if (isCheckBox(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n","import {\n CriteriaMode,\n Field,\n FieldName,\n FieldRefs,\n FieldValues,\n InternalFieldName,\n} from '../types';\nimport { get } from '../utils';\nimport set from '../utils/set';\n\nexport default <TFieldValues extends FieldValues>(\n fieldsNames: Set<InternalFieldName> | InternalFieldName[],\n _fields: FieldRefs,\n criteriaMode?: CriteriaMode,\n shouldUseNativeValidation?: boolean | undefined,\n) => {\n const fields: Record<InternalFieldName, Field['_f']> = {};\n\n for (const name of fieldsNames) {\n const field: Field = get(_fields, name);\n\n field && set(fields, name, field._f);\n }\n\n return {\n criteriaMode,\n names: [...fieldsNames] as FieldName<TFieldValues>[],\n fields,\n shouldUseNativeValidation,\n };\n};\n","import {\n ValidationRule,\n ValidationValue,\n ValidationValueMessage,\n} from '../types';\nimport isObject from '../utils/isObject';\nimport isRegex from '../utils/isRegex';\nimport isUndefined from '../utils/isUndefined';\n\nexport default <T extends ValidationValue>(\n rule?: ValidationRule<T> | ValidationValueMessage<T>,\n) =>\n isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n","import { Field, Validate } from '../types';\nimport isFunction from '../utils/isFunction';\nimport isObject from '../utils/isObject';\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\n\nexport default (fieldReference: Field['_f']) =>\n !!fieldReference &&\n !!fieldReference.validate &&\n !!(\n (isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find(\n (validateFunction: Validate<unknown, unknown>) =>\n validateFunction.constructor.name === ASYNC_FUNCTION,\n ))\n );\n","import { Field } from '../types';\n\nexport default (options: Field['_f']) =>\n options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n","import { FieldError, FieldErrors, FieldValues } from '../types';\nimport get from '../utils/get';\nimport isKey from '../utils/isKey';\n\nexport default function schemaErrorLookup<T extends FieldValues = FieldValues>(\n errors: FieldErrors<T>,\n _fields: FieldValues,\n name: string,\n): {\n error?: FieldError;\n name: string;\n} {\n const error = get(errors, name);\n\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n\n const names = name.split('.');\n\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n\n names.pop();\n }\n\n return {\n name,\n };\n}\n","import { ValidationModeFlags } from '../types';\n\nexport default (\n isBlurEvent: boolean,\n isTouched: boolean,\n isSubmitted: boolean,\n reValidateMode: {\n isOnBlur: boolean;\n isOnChange: boolean;\n },\n mode: Partial<ValidationModeFlags>,\n) => {\n if (mode.isOnAll) {\n return false;\n } else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n } else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n } else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n","import compact from '../utils/compact';\nimport get from '../utils/get';\nimport unset from '../utils/unset';\n\nexport default <T>(ref: T, name: string) =>\n !compact(get(ref, name)).length && unset(ref, name);\n","import { EVENTS, VALIDATION_MODE } from '../constants';\nimport {\n BatchFieldArrayUpdate,\n ChangeHandler,\n Control,\n DeepPartial,\n DelayCallback,\n EventType,\n Field,\n FieldError,\n FieldErrors,\n FieldNamesMarkedBoolean,\n FieldPath,\n FieldRefs,\n FieldValues,\n FormState,\n GetIsDirty,\n InternalFieldName,\n Names,\n Path,\n PathValue,\n ReadFormState,\n Ref,\n SetFieldValue,\n SetValueConfig,\n Subjects,\n UseFormClearErrors,\n UseFormGetFieldState,\n UseFormGetValues,\n UseFormHandleSubmit,\n UseFormProps,\n UseFormRegister,\n UseFormReset,\n UseFormResetField,\n UseFormReturn,\n UseFormSetError,\n UseFormSetFocus,\n UseFormSetValue,\n UseFormTrigger,\n UseFormUnregister,\n UseFormWatch,\n WatchInternal,\n WatchObserver,\n} from '../types';\nimport cloneObject from '../utils/cloneObject';\nimport compact from '../utils/compact';\nimport convertToArrayPayload from '../utils/convertToArrayPayload';\nimport createSubject from '../utils/createSubject';\nimport deepEqual from '../utils/deepEqual';\nimport get from '../utils/get';\nimport isBoolean from '../utils/isBoolean';\nimport isCheckBoxInput from '../utils/isCheckBoxInput';\nimport isDateObject from '../utils/isDateObject';\nimport isEmptyObject from '../utils/isEmptyObject';\nimport isFileInput from '../utils/isFileInput';\nimport isFunction from '../utils/isFunction';\nimport isHTMLElement from '../utils/isHTMLElement';\nimport isMultipleSelect from '../utils/isMultipleSelect';\nimport isNullOrUndefined from '../utils/isNullOrUndefined';\nimport isObject from '../utils/isObject';\nimport isRadioOrCheckbox from '../utils/isRadioOrCheckbox';\nimport isString from '../utils/isString';\nimport isUndefined from '../utils/isUndefined';\nimport isWeb from '../utils/isWeb';\nimport live from '../utils/live';\nimport set from '../utils/set';\nimport unset from '../utils/unset';\n\nimport generateWatchOutput from './generateWatchOutput';\nimport getDirtyFields from './getDirtyFields';\nimport getEventValue from './getEventValue';\nimport getFieldValue from './getFieldValue';\nimport getFieldValueAs from './getFieldValueAs';\nimport getResolverOptions from './getResolverOptions';\nimport getRuleValue from './getRuleValue';\nimport getValidationModes from './getValidationModes';\nimport hasPromiseValidation from './hasPromiseValidation';\nimport hasValidation from './hasValidation';\nimport isNameInFieldArray from './isNameInFieldArray';\nimport isWatched from './isWatched';\nimport iterateFieldsByAction from './iterateFieldsByAction';\nimport schemaErrorLookup from './schemaErrorLookup';\nimport skipValidation from './skipValidation';\nimport unsetEmptyArray from './unsetEmptyArray';\nimport updateFieldArrayRootError from './updateFieldArrayRootError';\nimport validateField from './validateField';\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n} as const;\n\nexport function createFormControl<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n>(\n props: UseFormProps<TFieldValues, TContext> = {},\n): Omit<UseFormReturn<TFieldValues, TContext>, 'formState'> {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState: FormState<TFieldValues> = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields: FieldRefs = {};\n let _defaultValues =\n isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names: Names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback: DelayCallback | null;\n let timer = 0;\n const _proxyFormState: ReadFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects: Subjects<TFieldValues> = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors =\n _options.criteriaMode === VALIDATION_MODE.all;\n\n const debounce =\n <T extends Function>(callback: T) =>\n (wait: number) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n\n const _updateValid = async (shouldUpdateValid?: boolean) => {\n if (!_options.disabled && (_proxyFormState.isValid || shouldUpdateValid)) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n\n const _updateIsValidating = (names?: string[], isValidating?: boolean) => {\n if (\n !_options.disabled &&\n (_proxyFormState.isValidating || _proxyFormState.validatingFields)\n ) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n\n const _updateFieldArray: BatchFieldArrayUpdate = (\n name,\n values = [],\n method,\n args,\n shouldSetValues = true,\n shouldUpdateFieldsAndState = true,\n ) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n\n if (\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))\n ) {\n const errors = method(\n get(_formState.errors, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n\n if (\n _proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))\n ) {\n const touchedFields = method(\n get(_formState.touchedFields, name),\n args.argA,\n args.argB,\n );\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n } else {\n set(_formValues, name, values);\n }\n };\n\n const updateErrors = (name: InternalFieldName, error: FieldError) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n\n const _setErrors = (errors: FieldErrors<TFieldValues>) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n\n const updateValidAndValue = (\n name: InternalFieldName,\n shouldSkipSetValueAs: boolean,\n value?: unknown,\n ref?: Ref,\n ) => {\n const field: Field = get(_fields, name);\n\n if (field) {\n const defaultValue = get(\n _formValues,\n name,\n isUndefined(value) ? get(_defaultValues, name) : value,\n );\n\n isUndefined(defaultValue) ||\n (ref && (ref as HTMLInputElement).defaultChecked) ||\n shouldSkipSetValueAs\n ? set(\n _formValues,\n name,\n shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f),\n )\n : setFieldValue(name, defaultValue);\n\n _state.mount && _updateValid();\n }\n };\n\n const updateTouchAndDirty = (\n name: InternalFieldName,\n fieldValue: unknown,\n isBlurEvent?: boolean,\n shouldDirty?: boolean,\n shouldRender?: boolean,\n ): Partial<\n Pick<FormState<TFieldValues>, 'dirtyFields' | 'isDirty' | 'touchedFields'>\n > => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output: Partial<FormState<TFieldValues>> & { name: string } = {\n name,\n };\n\n if (!_options.disabled) {\n const disabledField = !!(\n get(_fields, name) &&\n get(_fields, name)._f &&\n get(_fields, name)._f.disabled\n );\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n\n const isCurrentFieldPristine =\n disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n\n isPreviousDirty = !!(\n !disabledField && get(_formState.dirtyFields, name)\n );\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n\n return shouldUpdateField ? output : {};\n };\n\n const shouldRenderByError = (\n name: InternalFieldName,\n isValid?: boolean,\n error?: FieldError,\n fieldState?: {\n dirty?: FieldNamesMarkedBoolean<TFieldValues>;\n isDirty?: boolean;\n touched?: FieldNamesMarkedBoolean<TFieldValues>;\n },\n ) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid =\n _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n } else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n\n if (\n (error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid\n ) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n\n _subjects.state.next(updatedFormState);\n }\n };\n\n const _executeSchema = async (name?: InternalFieldName[]) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver!(\n _formValues as TFieldValues,\n _options.context,\n getResolverOptions(\n name || _names.mount,\n _fields,\n _options.criteriaMode,\n _options.shouldUseNativeValidation,\n ),\n );\n _updateIsValidating(name);\n return result;\n };\n\n const executeSchemaAndUpdateState = async (names?: InternalFieldName[]) => {\n const { errors } = await _executeSchema(names);\n\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n } else {\n _formState.errors = errors;\n }\n\n return errors;\n };\n\n const executeBuiltInValidation = async (\n fields: FieldRefs,\n shouldOnlyCheckValid?: boolean,\n context: {\n valid: boolean;\n } = {\n valid: true,\n },\n ) => {\n for (const name in fields) {\n const field = fields[name];\n\n if (field) {\n const { _f, ...fieldValue } = field as Field;\n\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction =\n field._f && hasPromiseValidation((field as Field)._f);\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name], true);\n }\n\n const fieldError = await validateField(\n field as Field,\n _names.disabled,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation && !shouldOnlyCheckValid,\n isFieldArrayRoot,\n );\n\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name]);\n }\n\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(\n _formState.errors,\n fieldError,\n _f.name,\n )\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(\n fieldValue,\n shouldOnlyCheckValid,\n context,\n ));\n }\n }\n\n return context.valid;\n };\n\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field: Field = get(_fields, name);\n\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name as FieldPath<TFieldValues>);\n }\n\n _names.unMount = new Set();\n };\n\n const _getDirty: GetIsDirty = (name, data) =>\n !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n\n const _getWatch: WatchInternal<TFieldValues> = (\n names,\n defaultValue,\n isGlobal,\n ) =>\n generateWatchOutput(\n names,\n _names,\n {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n },\n isGlobal,\n defaultValue,\n );\n\n const _getFieldArray = <TFieldArrayValues>(\n name: InternalFieldName,\n ): Partial<TFieldArrayValues>[] =>\n compact(\n get(\n _state.mount ? _formValues : _defaultValues,\n name,\n _options.shouldUnregister ? get(_defaultValues, name, []) : [],\n ),\n );\n\n const setFieldValue = (\n name: InternalFieldName,\n value: SetFieldValue<TFieldValues>,\n options: SetValueConfig = {},\n ) => {\n const field: Field = get(_fields, name);\n let fieldValue: unknown = value;\n\n if (field) {\n const fieldReference = field._f;\n\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach(\n (optionRef) =>\n (optionRef.selected = (\n fieldValue as InternalFieldName[]\n ).includes(optionRef.value)),\n );\n } else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach(\n (checkboxRef) =>\n (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!(fieldValue as []).find(\n (data: string) => data === checkboxRef.value,\n )\n : fieldValue === checkboxRef.value),\n )\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n } else {\n fieldReference.refs.forEach(\n (radioRef: HTMLInputElement) =>\n (radioRef.checked = radioRef.value === fieldValue),\n );\n }\n } else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n } else {\n fieldReference.ref.value = fieldValue;\n\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(\n name,\n fieldValue,\n options.shouldTouch,\n options.shouldDirty,\n true,\n );\n\n options.shouldValidate && trigger(name as Path<TFieldValues>);\n };\n\n const setValues = <\n T extends InternalFieldName,\n K extends SetFieldValue<TFieldValues>,\n U extends SetValueConfig,\n >(\n name: T,\n value: K,\n options: U,\n ) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n\n const setValue: UseFormSetValue<TFieldValues> = (\n name,\n value,\n options = {},\n ) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n\n set(_formValues, name, cloneValue);\n\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n\n if (\n (_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty\n ) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n } else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n\n const onChange: ChangeHandler = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name as string;\n let isFieldValueUpdated = true;\n const field: Field = get(_fields, name);\n const getCurrentFieldValue = () =>\n target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue: any): void => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent =\n event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation =\n (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(\n isBlurEvent,\n get(_formState.touchedFields, name),\n _formState.isSubmitted,\n validationModeAfterSubmit,\n validationModeBeforeSubmit,\n );\n const watched = isWatched(name, _names, isBlurEvent);\n\n set(_formValues, name, fieldValue);\n\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n } else if (field._f.onChange) {\n field._f.onChange(event);\n }\n\n const fieldState = updateTouchAndDirty(\n name,\n fieldValue,\n isBlurEvent,\n false,\n );\n\n const shouldRender = !isEmptyObject(fieldState) || watched;\n\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid) {\n if (_options.mode === 'onBlur' && isBlurEvent) {\n _updateValid();\n } else if (!isBlurEvent) {\n _updateValid();\n }\n }\n\n return (\n shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) })\n );\n }\n\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(\n _formState.errors,\n _fields,\n name,\n );\n const errorLookupResult = schemaErrorLookup(\n errors,\n _fields,\n previousErrorLookupResult.name || name,\n );\n\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n\n isValid = isEmptyObject(errors);\n }\n } else {\n _updateIsValidating([name], true);\n error = (\n await validateField(\n field,\n _names.disabled,\n _formValues,\n shouldDisplayAllAssociatedErrors,\n _options.shouldUseNativeValidation,\n )\n )[name];\n _updateIsValidating([name]);\n\n _updateIsFieldValueUpdated(fieldValue);\n\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n } else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(\n field._f.deps as\n | FieldPath<TFieldValues>\n | FieldPath<TFieldValues>[],\n );\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n\n const _focusInput = (ref: Ref, key: string) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n\n const trigger: UseFormTrigger<TFieldValues> = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name) as InternalFieldName[];\n\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(\n isUndefined(name) ? name : fieldNames,\n );\n\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n } else if (name) {\n validationResult = (\n await Promise.all(\n fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(\n field && field._f ? { [fieldName]: field } : field,\n );\n }),\n )\n ).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n } else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(\n _fields,\n _focusInput,\n name ? fieldNames : _names.mount,\n );\n\n return validationResult;\n };\n\n const getValues: UseFormGetValues<TFieldValues> = (\n fieldNames?:\n | FieldPath<TFieldValues>\n | ReadonlyArray<FieldPath<TFieldValues>>,\n ) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n\n const getFieldState: UseFormGetFieldState<TFieldValues> = (\n name,\n formState,\n ) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n\n const clearErrors: UseFormClearErrors<TFieldValues> = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) =>\n unset(_formState.errors, inputName),\n );\n\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n\n const setError: UseFormSetError<TFieldValues> = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n\n const watch: UseFormWatch<TFieldValues> = (\n name?:\n | FieldPath<TFieldValues>\n | ReadonlyArray<FieldPath<TFieldValues>>\n | WatchObserver<TFieldValues>,\n defaultValue?: DeepPartial<TFieldValues>,\n ) =>\n isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) =>\n name(\n _getWatch(undefined, defaultValue),\n payload as {\n name?: FieldPath<TFieldValues>;\n type?: EventType;\n value?: unknown;\n },\n ),\n })\n : _getWatch(\n name as InternalFieldName | InternalFieldName[],\n defaultValue,\n true,\n );\n\n const unregister: UseFormUnregister<TFieldValues> = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n\n _subjects.values.next({\n values: { ..._formValues },\n });\n\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n\n !options.keepIsValid && _updateValid();\n };\n\n const _updateDisabledField: Control<TFieldValues>['_updateDisabledField'] = ({\n disabled,\n name,\n field,\n fields,\n }) => {\n if (\n (isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)\n ) {\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n\n updateTouchAndDirty(\n name,\n getFieldValue(field ? field._f : get(fields, name)._f),\n false,\n false,\n true,\n );\n }\n };\n\n const register: UseFormRegister<TFieldValues> = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined =\n isBoolean(options.disabled) || isBoolean(_options.disabled);\n\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n\n if (field) {\n _updateDisabledField({\n field,\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n } else {\n updateValidAndValue(name, true, options.value);\n }\n\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue<number>(options.minLength) as number,\n maxLength: getRuleValue(options.maxLength) as number,\n pattern: getRuleValue(options.pattern) as string,\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref: HTMLInputElement | null): void => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? (ref.querySelectorAll('input,select,textarea')[0] as Ref) || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n\n if (\n radioOrCheckbox\n ? refs.find((option: Ref) => option === fieldRef)\n : fieldRef === field._f.ref\n ) {\n return;\n }\n\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n\n updateValidAndValue(name, false, undefined, fieldRef);\n } else {\n field = get(_fields, name, {});\n\n if (field._f) {\n field._f.mount = false;\n }\n\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n\n const _focusError = () =>\n _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n\n const _disableForm = (disabled?: boolean) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(\n _fields,\n (ref, name) => {\n const currentField: Field = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n },\n 0,\n false,\n );\n }\n };\n\n const handleSubmit: UseFormHandleSubmit<TFieldValues> =\n (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n\n let fieldValues = cloneObject(_formValues);\n\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n set(fieldValues, name, undefined);\n }\n }\n\n _subjects.state.next({\n isSubmitting: true,\n });\n\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n } else {\n await executeBuiltInValidation(_fields);\n }\n\n unset(_formState.errors, 'root');\n\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues as TFieldValues, e);\n } catch (error) {\n onValidError = error;\n }\n } else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n\n const resetField: UseFormResetField<TFieldValues> = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n } else {\n setValue(\n name,\n options.defaultValue as PathValue<\n TFieldValues,\n FieldPath<TFieldValues>\n >,\n );\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n\n _subjects.state.next({ ..._formState });\n }\n };\n\n const _reset: UseFormReset<TFieldValues> = (\n formValues,\n keepStateOptions = {},\n ) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(\n fieldName as FieldPath<TFieldValues>,\n get(values, fieldName),\n );\n }\n } else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n\n _fields = {};\n }\n\n _formValues = _options.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n\n _subjects.array.next({\n values: { ...values },\n });\n\n _subjects.values.next({\n values: { ...values },\n });\n }\n\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n\n _state.watch = !!_options.shouldUnregister;\n\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(\n keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)\n ),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n\n const reset: UseFormReset<TFieldValues> = (formValues, keepStateOptions) =>\n _reset(\n isFunction(formValues)\n ? (formValues as Function)(_formValues as TFieldValues)\n : formValues,\n keepStateOptions,\n );\n\n const setFocus: UseFormSetFocus<TFieldValues> = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n }\n }\n };\n\n const _updateFormState = (\n updatedFormState: Partial<FormState<TFieldValues>>,\n ) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n\n const _resetDefaultValues = () =>\n isFunction(_options.defaultValues) &&\n (_options.defaultValues as Function)().then((values: TFieldValues) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n","import React from 'react';\n\nimport { createFormControl } from './logic/createFormControl';\nimport getProxyFormState from './logic/getProxyFormState';\nimport shouldRenderFormState from './logic/shouldRenderFormState';\nimport deepEqual from './utils/deepEqual';\nimport isFunction from './utils/isFunction';\nimport {\n FieldValues,\n FormState,\n InternalFieldName,\n UseFormProps,\n UseFormReturn,\n} from './types';\nimport { useSubscribe } from './useSubscribe';\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n * <form onSubmit={handleSubmit(onSubmit)}>\n * <input defaultValue=\"test\" {...register(\"example\")} />\n * <input {...register(\"exampleRequired\", { required: true })} />\n * {errors.exampleRequired && <span>This field is required</span>}\n * <button>Submit</button>\n * </form>\n * );\n * }\n * ```\n */\nexport function useForm<\n TFieldValues extends FieldValues = FieldValues,\n TContext = any,\n TTransformedValues extends FieldValues | undefined = undefined,\n>(\n props: UseFormProps<TFieldValues, TContext> = {},\n): UseFormReturn<TFieldValues, TContext, TTransformedValues> {\n const _formControl = React.useRef<\n UseFormReturn<TFieldValues, TContext, TTransformedValues> | undefined\n >(undefined);\n const _values = React.useRef<typeof props.values>(undefined);\n const [formState, updateFormState] = React.useState<FormState<TFieldValues>>({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n\n const control = _formControl.current.control;\n control._options = props;\n\n useSubscribe({\n subject: control._subjects.state,\n next: (\n value: Partial<FormState<TFieldValues>> & { name?: InternalFieldName },\n ) => {\n if (\n shouldRenderFormState(\n value,\n control._proxyFormState,\n control._updateFormState,\n true,\n )\n ) {\n updateFormState({ ...control._formState });\n }\n },\n });\n\n React.useEffect(\n () => control._disableForm(props.disabled),\n [control, props.disabled],\n );\n\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n } else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n\n control._removeUnmounted();\n });\n\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n\n _formControl.current.formState = getProxyFormState(formState, control);\n\n return _formControl.current;\n}\n","import * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport * as React from 'react';\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport { Label } from '@/src/components/ui/label';\nimport { cn, sanitizeHtml } from '@/src/lib/utils';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n {...props}\n className={cn('grid gap-2', className)}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\n 'text-base-color mb-1 data-[error=true]:text-destructive',\n className,\n )}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nconst FormControl = React.forwardRef<\n React.ComponentRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\n\nFormControl.displayName = 'FormControl';\n\nfunction FormDescription({\n className,\n children,\n ...props\n}: React.ComponentProps<'p'> & {\n children?: React.ReactNode | (() => React.ReactNode);\n}) {\n const { formDescriptionId } = useFormField();\n\n if (typeof children === 'string') {\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-base-color text-xs', className)}\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(children),\n }}\n {...props}\n />\n );\n }\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-base-color text-xs', className)}\n {...props}\n >\n {typeof children === 'function' ? children() : children}\n </p>\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn('text-destructive text-sm', className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n useFormField,\n};\n","'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from '@/src/lib/utils';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":"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","names":["isCheckBoxInput","__name","element","isDateObject","value","isNullOrUndefined","isObjectType","isObject","getEventValue","event","getNodeParentName","name","isNameInFieldArray","names","isPlainObject","tempObject","prototypeCopy","isWeb","cloneObject","data","copy","isArray","isFileListInstance","key","compact","isUndefined","val","get","object","path","defaultValue","result","isBoolean","isKey","stringToPath","input","set","index","tempPath","length","lastIndex","newValue","objValue","EVENTS","VALIDATION_MODE","INPUT_VALIDATION_RULES","HookFormContext","React","useFormContext","FormProvider","props","children","getProxyFormState","formState","control","localProxyFormState","isRoot","_key","isEmptyObject","shouldRenderFormState","formStateData","_proxyFormState","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","exact","currentName","useSubscribe","_props","subscription","useFormState","methods","disabled","_mounted","_localProxyFormState","_name","isString","generateWatchOutput","_names","formValues","isGlobal","fieldName","useWatch","updateValue","useController","shouldUnregister","isArrayField","_registerProps","fieldState","field","elm","message","_shouldUnregisterField","updateMounted","Controller","appendErrors","__name","name","validateAllFieldCriteria","errors","type","message","generateId","d","c","r","getFocusFieldName","index","options","isUndefined","getValidationModes","mode","VALIDATION_MODE","isWatched","_names","isBlurEvent","watchName","iterateFieldsByAction","fields","action","fieldsNames","abortEarly","key","field","get","_f","currentField","isObject","updateFieldArrayRootError","error","fieldArrayErrors","convertToArrayPayload","set","isFileInput","element","isFunction","value","isHTMLElement","isWeb","owner","isMessage","isString","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","values","option","defaultReturn","getRadioValue","previous","getValidateError","result","ref","isBoolean","getValueAndMessage","validationData","validateField","disabledFieldNames","formValues","shouldUseNativeValidation","isFieldArray","refs","required","maxLength","minLength","min","max","pattern","validate","valueAsNumber","mount","inputValue","inputRef","setCustomValidity","isRadio","isCheckBox","isCheckBoxInput","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","INPUT_VALIDATION_RULES","minType","isNullOrUndefined","exceedMin","maxOutput","minOutput","valueNumber","valueDate","convertTimeToDate","time","isTime","isWeek","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","isEmptyObject","appendAt","data","fillEmptyArray","insert","moveArrayAt","from","to","prependAt","removeAtIndexes","indexes","i","temp","compact","removeArrayAt","a","b","swapArrayAt","indexA","indexB","baseGet","object","updatePath","length","isEmptyArray","obj","unset","path","paths","isKey","stringToPath","childObject","updateAt","fieldValues","useFieldArray","props","methods","useFormContext","control","keyName","shouldUnregister","rules","setFields","React","ids","_fieldIds","_name","_actioned","useSubscribe","fieldArrayName","updateValues","updatedFieldArrayValues","append","appendValue","cloneObject","prepend","prependValue","remove","insertValue","insertAt","swap","move","update","updateValue","item","replace","existingError","createSubject","_observers","observer","o","isPrimitive","isObjectType","deepEqual","object1","object2","isDateObject","keys1","keys2","val1","val2","isMultipleSelect","live","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","defaultValues","getFieldValueAs","valueAsDate","setValueAs","getFieldValue","getResolverOptions","_fields","criteriaMode","getRuleValue","rule","ASYNC_FUNCTION","hasPromiseValidation","fieldReference","validateFunction","hasValidation","schemaErrorLookup","names","fieldName","foundError","skipValidation","isTouched","isSubmitted","reValidateMode","unsetEmptyArray","defaultOptions","createFormControl","_options","_formState","_defaultValues","_formValues","_state","delayErrorCallback","timer","_proxyFormState","_subjects","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","debounce","callback","wait","_updateValid","shouldUpdateValid","isValid","_executeSchema","executeBuiltInValidation","_updateIsValidating","isValidating","_updateFieldArray","method","args","shouldSetValues","shouldUpdateFieldsAndState","touchedFields","_getDirty","updateErrors","_setErrors","updateValidAndValue","shouldSkipSetValueAs","defaultValue","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldRender","shouldUpdateField","isPreviousDirty","output","disabledField","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","fieldState","previousFieldError","updatedFormState","executeSchemaAndUpdateState","shouldOnlyCheckValid","context","isFieldArrayRoot","isPromiseFunction","fieldError","_removeUnmounted","unregister","getValues","_getWatch","isGlobal","generateWatchOutput","_getFieldArray","optionRef","checkboxRef","radioRef","trigger","setValues","fieldKey","setValue","cloneValue","onChange","event","target","isFieldValueUpdated","getCurrentFieldValue","getEventValue","_updateIsFieldValueUpdated","EVENTS","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","getFieldState","formState","clearErrors","inputName","setError","currentError","currentRef","restOfErrorTree","watch","payload","_updateDisabledField","disabled","register","disabledIsDefined","fieldRef","radioOrCheckbox","isNameInFieldArray","_focusError","_disableForm","handleSubmit","onValid","onInvalid","e","onValidError","resetField","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","fieldsToCheck","form","reset","useForm","_formControl","_values","updateFormState","shouldRenderFormState","isDirty","state","getProxyFormState","Slot","React","LabelPrimitive","jsx","Label","className","props","cn","__name","jsx","Form","FormProvider","FormFieldContext","FormField","__name","props","Controller","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","useFormContext","formState","useFormState","fieldState","id","FormItem","className","cn","FormLabel","error","formItemId","Label","FormControl","ref","formDescriptionId","formMessageId","Slot","FormDescription","children","sanitizeHtml","FormMessage","body"]}