@remoteoss/remote-flows 1.49.0 → 1.50.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 (606) hide show
  1. package/README.md +1 -0
  2. package/dist/CheckboxFieldDefault-JOUZXB4Y.js +2 -0
  3. package/dist/CountryFieldDefault-IZQOFNX5.js +2 -0
  4. package/dist/DatePickerFieldDefault-AWV7LUPI.js +2 -0
  5. package/dist/FileUploadFieldDefault-NZ33IMPU.js +2 -0
  6. package/dist/ForcedValueFieldDefault-RY5AN7O6.js +2 -0
  7. package/dist/MultiSelectFieldDefault-DOZQUBEE.js +2 -0
  8. package/dist/RadioGroupFieldDefault-GFDO56LK.js +2 -0
  9. package/dist/SelectFieldDefault-E4KFZBJ7.js +2 -0
  10. package/dist/TelFieldDefault-2EPAKDTW.js +2 -0
  11. package/dist/TextAreaFieldDefault-WZIVM4RZ.js +2 -0
  12. package/dist/TextFieldDefault-YVXZO4AN.js +2 -0
  13. package/dist/TimeFieldDefault-JN4MDIO6.js +2 -0
  14. package/dist/chunk-25MUO3XP.js +2 -0
  15. package/dist/chunk-25MUO3XP.js.map +1 -0
  16. package/dist/{chunk-X7HD2YL7.js → chunk-2UH6Y56R.js} +2 -2
  17. package/dist/{chunk-TZRUHUW5.js → chunk-3G4HOZCM.js} +2 -2
  18. package/dist/{chunk-OUUH3EQY.js → chunk-3OKB5OHA.js} +2 -2
  19. package/dist/{chunk-PRFHWAQZ.js → chunk-46BOEYFO.js} +2 -2
  20. package/dist/{chunk-J5BG6GTH.js → chunk-4CNDASPA.js} +2 -2
  21. package/dist/{chunk-QSF4XFSV.js → chunk-4IGLIHGF.js} +2 -2
  22. package/dist/{chunk-36GVXD2Z.js → chunk-4WSYC3Q5.js} +2 -2
  23. package/dist/{chunk-7GO4BHOI.js → chunk-53QBSOMG.js} +2 -2
  24. package/dist/{chunk-YLSASLPB.js → chunk-5HDMU73I.js} +2 -2
  25. package/dist/{chunk-JQ3SLOUP.js → chunk-5JXLXWTD.js} +2 -2
  26. package/dist/{chunk-F3UUYQGY.js → chunk-5PUW4YCY.js} +2 -2
  27. package/dist/chunk-5YI7MY5T.js +2 -0
  28. package/dist/chunk-5YI7MY5T.js.map +1 -0
  29. package/dist/{chunk-6IQJJCQ3.js → chunk-6CBC5OAQ.js} +2 -2
  30. package/dist/{chunk-JKHJR6HK.js → chunk-753FEV2S.js} +2 -2
  31. package/dist/{chunk-JKHJR6HK.js.map → chunk-753FEV2S.js.map} +1 -1
  32. package/dist/{chunk-IF42CZJH.js → chunk-77AA65OH.js} +2 -2
  33. package/dist/{chunk-IF42CZJH.js.map → chunk-77AA65OH.js.map} +1 -1
  34. package/dist/{chunk-ZXGAFQXW.js → chunk-7B3ATY3M.js} +2 -2
  35. package/dist/{chunk-ZXGAFQXW.js.map → chunk-7B3ATY3M.js.map} +1 -1
  36. package/dist/{chunk-GKSG4TTI.js → chunk-7FKNXW2I.js} +2 -2
  37. package/dist/{chunk-6WO4PRGN.js → chunk-AAXPKULB.js} +2 -2
  38. package/dist/chunk-AXZ4IDY7.js +2 -0
  39. package/dist/chunk-AXZ4IDY7.js.map +1 -0
  40. package/dist/{chunk-FDTOQHOJ.js → chunk-BB3M25A3.js} +2 -2
  41. package/dist/chunk-BHHK7QQZ.js +2 -0
  42. package/dist/chunk-BHHK7QQZ.js.map +1 -0
  43. package/dist/{chunk-VQVE3QA2.js → chunk-BLKWR77C.js} +2 -2
  44. package/dist/chunk-BTCC6PNG.js +2 -0
  45. package/dist/chunk-BTCC6PNG.js.map +1 -0
  46. package/dist/{chunk-6THYSEJ7.js → chunk-C7MVEDVY.js} +2 -2
  47. package/dist/{chunk-NF2WEMTU.js → chunk-CCGAAOXN.js} +2 -2
  48. package/dist/{chunk-ZYDBHR63.js → chunk-CD6H4MBI.js} +2 -2
  49. package/dist/{chunk-MXF3IXNU.js → chunk-CONMRDRL.js} +2 -2
  50. package/dist/{chunk-I4CKTODX.js → chunk-CUO7OGD5.js} +2 -2
  51. package/dist/{chunk-KX4JZXZV.js → chunk-D6PMXNBM.js} +2 -2
  52. package/dist/chunk-DDMXUBCN.js +2 -0
  53. package/dist/chunk-DDMXUBCN.js.map +1 -0
  54. package/dist/{chunk-SXPBC2FP.js → chunk-DOPQK5RP.js} +2 -2
  55. package/dist/{chunk-TWLFK7DD.js → chunk-DP6L72YF.js} +2 -2
  56. package/dist/chunk-DYIMRD6T.js +2 -0
  57. package/dist/chunk-DYIMRD6T.js.map +1 -0
  58. package/dist/{chunk-TC7EQZJK.js → chunk-E5ATCB4A.js} +2 -2
  59. package/dist/{chunk-TC7EQZJK.js.map → chunk-E5ATCB4A.js.map} +1 -1
  60. package/dist/{chunk-5TOSVOLY.js → chunk-ED35NFA6.js} +2 -2
  61. package/dist/{chunk-IUY4BDUY.js → chunk-EMMFAZZC.js} +2 -2
  62. package/dist/{chunk-KPJ5YKXS.js → chunk-ERBEPQJP.js} +2 -2
  63. package/dist/{chunk-KPJ5YKXS.js.map → chunk-ERBEPQJP.js.map} +1 -1
  64. package/dist/{chunk-MYO3DIES.js → chunk-EVUTX6TJ.js} +2 -2
  65. package/dist/chunk-F37FQXEZ.js +2 -0
  66. package/dist/chunk-F37FQXEZ.js.map +1 -0
  67. package/dist/{chunk-2HQDOWW2.js → chunk-FB3PEQTO.js} +1 -1
  68. package/dist/chunk-FB3PEQTO.js.map +1 -0
  69. package/dist/chunk-FQBOMXMX.js +2 -0
  70. package/dist/chunk-FQBOMXMX.js.map +1 -0
  71. package/dist/{chunk-4XK4QHOA.js → chunk-FSCAWXCB.js} +2 -2
  72. package/dist/{chunk-V2KDZU2F.js → chunk-FV6NNYDP.js} +2 -2
  73. package/dist/{chunk-JLM4O7ZW.js → chunk-G6EKGJBB.js} +2 -2
  74. package/dist/{chunk-BVMAUJC2.js → chunk-G75LPZV5.js} +2 -2
  75. package/dist/{chunk-KJCCB44M.js → chunk-GE74QKS6.js} +2 -2
  76. package/dist/{chunk-H5OZSXSY.js → chunk-GHZABLDV.js} +2 -2
  77. package/dist/chunk-GIZQZBHB.js +2 -0
  78. package/dist/chunk-GIZQZBHB.js.map +1 -0
  79. package/dist/{chunk-RK5ZEDOE.js → chunk-GTS7KFEM.js} +2 -2
  80. package/dist/{chunk-MZUPTP2B.js → chunk-H47XUL2L.js} +2 -2
  81. package/dist/chunk-H6XROFQT.js +2 -0
  82. package/dist/chunk-H6XROFQT.js.map +1 -0
  83. package/dist/{chunk-TO2GYQR2.js → chunk-I4DU34BA.js} +2 -2
  84. package/dist/chunk-ICYCECFS.js +2 -0
  85. package/dist/{chunk-XFD3ULUF.js.map → chunk-ICYCECFS.js.map} +1 -1
  86. package/dist/{chunk-S2QXSX4Q.js → chunk-ILEO7LN4.js} +2 -2
  87. package/dist/{chunk-XTVXWH3Q.js → chunk-ILMRP364.js} +2 -2
  88. package/dist/{chunk-BQNZUM27.js → chunk-ITCWBZDM.js} +2 -2
  89. package/dist/{chunk-B5GH36QL.js → chunk-JI3PAIMV.js} +2 -2
  90. package/dist/{chunk-WGDZTF7Y.js → chunk-JLZFNUBH.js} +2 -2
  91. package/dist/{chunk-4O5HJBUC.js → chunk-JVXI4RZU.js} +2 -2
  92. package/dist/{chunk-LMYJ6V44.js → chunk-JVZ5LUV4.js} +2 -2
  93. package/dist/{chunk-LMYJ6V44.js.map → chunk-JVZ5LUV4.js.map} +1 -1
  94. package/dist/{chunk-4Y2INBAI.js → chunk-KGNLBYM5.js} +2 -2
  95. package/dist/{chunk-EEZFRK2I.js → chunk-L2YOD4GP.js} +2 -2
  96. package/dist/{chunk-2IL6T6EB.js → chunk-LADLAP2S.js} +2 -2
  97. package/dist/chunk-LSUBNZ64.js +2 -0
  98. package/dist/chunk-LSUBNZ64.js.map +1 -0
  99. package/dist/{chunk-QHJ3BYJN.js → chunk-LXGL7HF5.js} +2 -2
  100. package/dist/{chunk-OU2JUD4J.js → chunk-MEYX4D5K.js} +2 -2
  101. package/dist/{chunk-D5LOZT54.js → chunk-MXAFJYLQ.js} +2 -2
  102. package/dist/{chunk-LF3FMXGV.js → chunk-N7HCQXUM.js} +2 -2
  103. package/dist/chunk-NAFECQWK.js +2 -0
  104. package/dist/{chunk-5BIMRKQB.js → chunk-NFWKD7UR.js} +2 -2
  105. package/dist/{chunk-6S5Q2OKC.js → chunk-NTPHMYYC.js} +2 -2
  106. package/dist/chunk-NYR6FVCU.js +2 -0
  107. package/dist/{chunk-ILX6RI7K.js.map → chunk-NYR6FVCU.js.map} +1 -1
  108. package/dist/chunk-OHVXJXF4.js +1 -0
  109. package/dist/chunk-OHVXJXF4.js.map +1 -0
  110. package/dist/{chunk-POWC7LZN.js → chunk-OKBPMWVB.js} +2 -2
  111. package/dist/{chunk-BWM2MYPE.js → chunk-OWOIDZHI.js} +2 -2
  112. package/dist/{chunk-6IDUDCVS.js → chunk-P2WUHKEU.js} +2 -2
  113. package/dist/{chunk-SH35XDFY.js → chunk-P6FFLJDP.js} +2 -2
  114. package/dist/{chunk-4ONGXCN3.js → chunk-PKJZ2N4C.js} +2 -2
  115. package/dist/{chunk-NX7MM6XR.js → chunk-PKQG25GH.js} +2 -2
  116. package/dist/{chunk-NX7MM6XR.js.map → chunk-PKQG25GH.js.map} +1 -1
  117. package/dist/{chunk-RRZRQAIT.js → chunk-QFTBKRUI.js} +2 -2
  118. package/dist/chunk-QQV5REGG.js +8 -0
  119. package/dist/chunk-QQV5REGG.js.map +1 -0
  120. package/dist/{chunk-ZZLLPFLS.js → chunk-R4ZUOFYN.js} +2 -2
  121. package/dist/chunk-R5ADEPLC.js +2 -0
  122. package/dist/chunk-R5ADEPLC.js.map +1 -0
  123. package/dist/{chunk-TXOCMI5I.js → chunk-RFMYNPR7.js} +2 -2
  124. package/dist/chunk-ROO2IFBF.js +2 -0
  125. package/dist/chunk-ROO2IFBF.js.map +1 -0
  126. package/dist/{chunk-2LR5N626.js → chunk-RYZ7TJVS.js} +2 -2
  127. package/dist/{chunk-U6SMLAQI.js → chunk-RZL44CPH.js} +2 -2
  128. package/dist/{chunk-C2HZNBMZ.js → chunk-SLRPDXK6.js} +2 -2
  129. package/dist/{chunk-5WIBTOCI.js → chunk-SRNXXOUH.js} +2 -2
  130. package/dist/{chunk-5WIBTOCI.js.map → chunk-SRNXXOUH.js.map} +1 -1
  131. package/dist/{chunk-5MH23AST.js → chunk-STHZZZRL.js} +2 -2
  132. package/dist/{chunk-F7ZDULRC.js → chunk-SUYI33NX.js} +2 -2
  133. package/dist/chunk-SVU7GWUR.js +2 -0
  134. package/dist/chunk-SVU7GWUR.js.map +1 -0
  135. package/dist/{chunk-3VTHNE4H.js → chunk-SZI67IXU.js} +2 -2
  136. package/dist/chunk-T5H35HYL.js +2 -0
  137. package/dist/{chunk-CSXL7LMW.js.map → chunk-T5H35HYL.js.map} +1 -1
  138. package/dist/chunk-TDKKCSKV.js +2 -0
  139. package/dist/{chunk-7IIQUZTH.js.map → chunk-TDKKCSKV.js.map} +1 -1
  140. package/dist/{chunk-QEHEOSJT.js → chunk-TJZ5BJV3.js} +2 -2
  141. package/dist/chunk-TRDNTXE7.js +2 -0
  142. package/dist/chunk-TRDNTXE7.js.map +1 -0
  143. package/dist/{chunk-UUN3PLDE.js → chunk-TX6RWQUR.js} +2 -2
  144. package/dist/chunk-U4H7URYB.js +2 -0
  145. package/dist/chunk-U4H7URYB.js.map +1 -0
  146. package/dist/{chunk-HDOEUCXY.js → chunk-U7JAGEOV.js} +2 -2
  147. package/dist/chunk-U7JAGEOV.js.map +1 -0
  148. package/dist/{chunk-RKP7EEAB.js → chunk-UGQNOBQH.js} +2 -2
  149. package/dist/chunk-UWHJF45X.js +2 -0
  150. package/dist/chunk-UWHJF45X.js.map +1 -0
  151. package/dist/{chunk-BFXBFGBH.js → chunk-UYOKK4QW.js} +2 -2
  152. package/dist/{chunk-BFXBFGBH.js.map → chunk-UYOKK4QW.js.map} +1 -1
  153. package/dist/{chunk-LBNS4VT7.js → chunk-V3AVEPNA.js} +2 -2
  154. package/dist/{chunk-KZ5ZQTBF.js → chunk-V6PPOGPT.js} +2 -2
  155. package/dist/{chunk-IJCTN52C.js → chunk-VDJJEIOD.js} +2 -2
  156. package/dist/{chunk-IJCTN52C.js.map → chunk-VDJJEIOD.js.map} +1 -1
  157. package/dist/chunk-VKUGCD5J.js +2 -0
  158. package/dist/chunk-VKUGCD5J.js.map +1 -0
  159. package/dist/{chunk-DSYQY3K6.js → chunk-VRPZ4GHN.js} +2 -2
  160. package/dist/{chunk-PFNDDLHG.js → chunk-VVZTXCX2.js} +2 -2
  161. package/dist/{chunk-FORYAPUZ.js → chunk-VYTUM3RI.js} +2 -2
  162. package/dist/{chunk-GM3UWUVL.js → chunk-WGO25FWG.js} +2 -2
  163. package/dist/{chunk-QYKJU45J.js → chunk-WKWL57L6.js} +2 -2
  164. package/dist/chunk-WRTUY6K3.js +2 -0
  165. package/dist/chunk-WRTUY6K3.js.map +1 -0
  166. package/dist/{chunk-X7FILZJH.js → chunk-WVE2IOLY.js} +2 -2
  167. package/dist/{chunk-5IRUNNZB.js → chunk-XDLVDPQ7.js} +2 -2
  168. package/dist/{chunk-6AHENEHD.js → chunk-XEVHXHHC.js} +2 -2
  169. package/dist/{chunk-JMFCG5KA.js → chunk-XMIVJW5E.js} +2 -2
  170. package/dist/{chunk-CNSE26GY.js → chunk-XMVV6S77.js} +2 -2
  171. package/dist/{chunk-AP56UUME.js → chunk-Y2NCUO3F.js} +2 -2
  172. package/dist/{chunk-AP56UUME.js.map → chunk-Y2NCUO3F.js.map} +1 -1
  173. package/dist/{chunk-AP6MKHTF.js → chunk-YHZZHQP5.js} +2 -2
  174. package/dist/{chunk-ZAOE2DGD.js → chunk-YME2HZZJ.js} +2 -2
  175. package/dist/{chunk-5AF5WV3R.js → chunk-Z7XLK4JL.js} +2 -2
  176. package/dist/chunk-ZD4H63AL.js +2 -0
  177. package/dist/chunk-ZD4H63AL.js.map +1 -0
  178. package/dist/{chunk-64C6G646.js → chunk-ZODT3MJM.js} +2 -2
  179. package/dist/{chunk-6L77BWCI.js → chunk-ZOTKZZ67.js} +2 -2
  180. package/dist/{chunk-GJJFAGAC.js → chunk-ZREW7KZA.js} +2 -2
  181. package/dist/createInvoiceSchedule-BweQB6DI.d.ts +195 -0
  182. package/dist/default-components.d.ts +2 -2
  183. package/dist/default-components.js +1 -1
  184. package/dist/default-components.js.map +1 -1
  185. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
  186. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
  187. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  188. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
  189. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  190. package/dist/flows/ContractAmendment/context.d.ts +4 -4
  191. package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
  192. package/dist/flows/ContractAmendment/hooks.js +1 -1
  193. package/dist/flows/ContractAmendment/index.d.ts +3 -3
  194. package/dist/flows/ContractAmendment/index.js +1 -1
  195. package/dist/flows/ContractAmendment/types.d.ts +3 -3
  196. package/dist/flows/ContractAmendment/utils.d.ts +2 -2
  197. package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +6 -5
  198. package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
  199. package/dist/flows/ContractorOnboarding/api.d.ts +173 -413
  200. package/dist/flows/ContractorOnboarding/api.js +1 -1
  201. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
  202. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
  203. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +6 -5
  204. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
  205. package/dist/flows/ContractorOnboarding/components/ContractOriginStep.d.ts +3 -3
  206. package/dist/flows/ContractorOnboarding/components/ContractOriginStep.js +1 -1
  207. package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
  208. package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
  209. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +6 -5
  210. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
  211. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +6 -5
  212. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
  213. package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.d.ts +3 -3
  214. package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.js +1 -1
  215. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +6 -5
  216. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
  217. package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.d.ts +6 -5
  218. package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.js +1 -1
  219. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
  220. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
  221. package/dist/flows/ContractorOnboarding/components/PreviewInvoiceButton.d.ts +29 -0
  222. package/dist/flows/ContractorOnboarding/components/PreviewInvoiceButton.js +2 -0
  223. package/dist/flows/ContractorOnboarding/components/PreviewInvoiceButton.js.map +1 -0
  224. package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +6 -5
  225. package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
  226. package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +3 -3
  227. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
  228. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
  229. package/dist/flows/ContractorOnboarding/components/SkipInvoiceScheduleButton.d.ts +24 -0
  230. package/dist/flows/ContractorOnboarding/components/SkipInvoiceScheduleButton.js +2 -0
  231. package/dist/flows/ContractorOnboarding/components/SkipInvoiceScheduleButton.js.map +1 -0
  232. package/dist/flows/ContractorOnboarding/context.d.ts +14 -5
  233. package/dist/flows/ContractorOnboarding/hooks.d.ts +6 -5
  234. package/dist/flows/ContractorOnboarding/hooks.js +1 -1
  235. package/dist/flows/ContractorOnboarding/index.d.ts +6 -5
  236. package/dist/flows/ContractorOnboarding/index.js +1 -1
  237. package/dist/flows/ContractorOnboarding/invoiceScheduleConstants.d.ts +1 -0
  238. package/dist/flows/ContractorOnboarding/invoiceScheduleConstants.js +1 -1
  239. package/dist/flows/ContractorOnboarding/jsfModify.d.ts +6 -5
  240. package/dist/flows/ContractorOnboarding/jsfModify.js +1 -1
  241. package/dist/flows/ContractorOnboarding/json-schemas/contractOrigin.d.ts +3 -0
  242. package/dist/flows/ContractorOnboarding/json-schemas/contractOrigin.js +1 -1
  243. package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.d.ts +1 -103
  244. package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.js +1 -1
  245. package/dist/flows/ContractorOnboarding/json-schemas/invoiceSchedule.d.ts +3 -0
  246. package/dist/flows/ContractorOnboarding/json-schemas/invoiceSchedule.js +1 -1
  247. package/dist/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep.d.ts +3 -0
  248. package/dist/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep.js +1 -1
  249. package/dist/flows/ContractorOnboarding/json-schemas/signature.d.ts +3 -0
  250. package/dist/flows/ContractorOnboarding/json-schemas/signature.js +1 -1
  251. package/dist/flows/ContractorOnboarding/types.d.ts +6 -5
  252. package/dist/flows/ContractorOnboarding/utils.d.ts +31 -21
  253. package/dist/flows/ContractorOnboarding/utils.js +1 -1
  254. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
  255. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  256. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
  257. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  258. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +3 -3
  259. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
  260. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +3 -3
  261. package/dist/flows/CostCalculator/api.d.ts +3 -3
  262. package/dist/flows/CostCalculator/api.js +1 -1
  263. package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
  264. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  265. package/dist/flows/CostCalculator/context.d.ts +3 -3
  266. package/dist/flows/CostCalculator/hooks.d.ts +3 -3
  267. package/dist/flows/CostCalculator/hooks.js +1 -1
  268. package/dist/flows/CostCalculator/index.d.ts +3 -3
  269. package/dist/flows/CostCalculator/index.js +1 -1
  270. package/dist/flows/CostCalculator/types.d.ts +3 -3
  271. package/dist/flows/CostCalculator/utils.d.ts +3 -3
  272. package/dist/flows/CostCalculator/utils.js +1 -1
  273. package/dist/flows/CreateCompany/CreateCompany.d.ts +4 -4
  274. package/dist/flows/CreateCompany/CreateCompany.js +1 -1
  275. package/dist/flows/CreateCompany/api.d.ts +3 -3
  276. package/dist/flows/CreateCompany/api.js +1 -1
  277. package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
  278. package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
  279. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
  280. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
  281. package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
  282. package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
  283. package/dist/flows/CreateCompany/context.d.ts +4 -4
  284. package/dist/flows/CreateCompany/hooks.d.ts +4 -4
  285. package/dist/flows/CreateCompany/hooks.js +1 -1
  286. package/dist/flows/CreateCompany/index.d.ts +4 -4
  287. package/dist/flows/CreateCompany/index.js +1 -1
  288. package/dist/flows/CreateCompany/json-schemas/companyBasicInformationStep.d.ts +3 -0
  289. package/dist/flows/CreateCompany/json-schemas/companyBasicInformationStep.js +1 -1
  290. package/dist/flows/CreateCompany/types.d.ts +4 -4
  291. package/dist/flows/InvoiceSchedule/InvoiceScheduleFlow.d.ts +44 -0
  292. package/dist/flows/InvoiceSchedule/InvoiceScheduleFlow.js +2 -0
  293. package/dist/flows/InvoiceSchedule/InvoiceScheduleFlow.js.map +1 -0
  294. package/dist/flows/InvoiceSchedule/InvoiceScheduleForm.d.ts +35 -0
  295. package/dist/flows/InvoiceSchedule/InvoiceScheduleForm.js +2 -0
  296. package/dist/flows/InvoiceSchedule/InvoiceScheduleForm.js.map +1 -0
  297. package/dist/flows/InvoiceSchedule/InvoiceScheduleSubmitButton.d.ts +6 -0
  298. package/dist/flows/InvoiceSchedule/InvoiceScheduleSubmitButton.js +2 -0
  299. package/dist/flows/InvoiceSchedule/InvoiceScheduleSubmitButton.js.map +1 -0
  300. package/dist/flows/InvoiceSchedule/api.d.ts +47 -0
  301. package/dist/flows/InvoiceSchedule/api.js +2 -0
  302. package/dist/flows/InvoiceSchedule/api.js.map +1 -0
  303. package/dist/flows/InvoiceSchedule/components/ContractorSelectField.d.ts +20 -0
  304. package/dist/flows/InvoiceSchedule/components/ContractorSelectField.js +2 -0
  305. package/dist/flows/InvoiceSchedule/components/ContractorSelectField.js.map +1 -0
  306. package/dist/flows/InvoiceSchedule/context.d.ts +61 -0
  307. package/dist/flows/InvoiceSchedule/context.js +2 -0
  308. package/dist/flows/InvoiceSchedule/context.js.map +1 -0
  309. package/dist/flows/InvoiceSchedule/hooks.d.ts +108 -0
  310. package/dist/flows/InvoiceSchedule/hooks.js +2 -0
  311. package/dist/flows/InvoiceSchedule/hooks.js.map +1 -0
  312. package/dist/flows/InvoiceSchedule/index.d.ts +18 -0
  313. package/dist/flows/InvoiceSchedule/index.js +2 -0
  314. package/dist/flows/InvoiceSchedule/index.js.map +1 -0
  315. package/dist/flows/InvoiceSchedule/types.d.ts +78 -0
  316. package/dist/flows/InvoiceSchedule/types.js +1 -0
  317. package/dist/flows/InvoiceSchedule/types.js.map +1 -0
  318. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.d.ts +3 -3
  319. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.js +1 -1
  320. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.d.ts +2 -2
  321. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.js +1 -1
  322. package/dist/flows/JsonSchemaPlayground/context.d.ts +3 -3
  323. package/dist/flows/JsonSchemaPlayground/hooks.d.ts +3 -3
  324. package/dist/flows/JsonSchemaPlayground/index.d.ts +3 -3
  325. package/dist/flows/JsonSchemaPlayground/index.js +1 -1
  326. package/dist/flows/JsonSchemaPlayground/types.d.ts +3 -3
  327. package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
  328. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  329. package/dist/flows/Onboarding/api.d.ts +4 -4
  330. package/dist/flows/Onboarding/api.js +1 -1
  331. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
  332. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  333. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
  334. package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
  335. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
  336. package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
  337. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
  338. package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
  339. package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.js +1 -1
  340. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +4 -4
  341. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.js +1 -1
  342. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
  343. package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
  344. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
  345. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  346. package/dist/flows/Onboarding/components/PreOnboardingRequirements.d.ts +4 -4
  347. package/dist/flows/Onboarding/components/PreOnboardingRequirements.js +1 -1
  348. package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.js +1 -1
  349. package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
  350. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
  351. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
  352. package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
  353. package/dist/flows/Onboarding/context.d.ts +5 -5
  354. package/dist/flows/Onboarding/hooks.d.ts +4 -4
  355. package/dist/flows/Onboarding/hooks.js +1 -1
  356. package/dist/flows/Onboarding/index.d.ts +4 -4
  357. package/dist/flows/Onboarding/index.js +1 -1
  358. package/dist/flows/Onboarding/types.d.ts +4 -4
  359. package/dist/flows/Onboarding/utils.d.ts +4 -4
  360. package/dist/flows/Onboarding/utils.js +1 -1
  361. package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.d.ts +5 -5
  362. package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.js +1 -1
  363. package/dist/flows/PayrollAdminOnboarding/api.d.ts +2 -2
  364. package/dist/flows/PayrollAdminOnboarding/api.js +1 -1
  365. package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.d.ts +3 -3
  366. package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.js +1 -1
  367. package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.d.ts +3 -3
  368. package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.js +1 -1
  369. package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.d.ts +3 -3
  370. package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.js +1 -1
  371. package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.d.ts +2 -2
  372. package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.js +1 -1
  373. package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.d.ts +3 -3
  374. package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.js +1 -1
  375. package/dist/flows/PayrollAdminOnboarding/components/useStepSubmitHandler.d.ts +3 -3
  376. package/dist/flows/PayrollAdminOnboarding/context.d.ts +5 -5
  377. package/dist/flows/PayrollAdminOnboarding/hooks.d.ts +6 -6
  378. package/dist/flows/PayrollAdminOnboarding/hooks.js +1 -1
  379. package/dist/flows/PayrollAdminOnboarding/index.d.ts +5 -5
  380. package/dist/flows/PayrollAdminOnboarding/index.js +1 -1
  381. package/dist/flows/PayrollAdminOnboarding/types.d.ts +5 -5
  382. package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.d.ts +5 -5
  383. package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.js +1 -1
  384. package/dist/flows/PayrollEmployeeOnboarding/api.d.ts +3 -3
  385. package/dist/flows/PayrollEmployeeOnboarding/api.js +1 -1
  386. package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.d.ts +3 -3
  387. package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.js +1 -1
  388. package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.d.ts +3 -3
  389. package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.js +1 -1
  390. package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.d.ts +3 -3
  391. package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.js +1 -1
  392. package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.d.ts +2 -2
  393. package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.js +1 -1
  394. package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.d.ts +3 -3
  395. package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.js +1 -1
  396. package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.d.ts +3 -3
  397. package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.js +1 -1
  398. package/dist/flows/PayrollEmployeeOnboarding/components/useEmployeeStepSubmitHandler.d.ts +3 -3
  399. package/dist/flows/PayrollEmployeeOnboarding/context.d.ts +5 -5
  400. package/dist/flows/PayrollEmployeeOnboarding/hooks.d.ts +6 -6
  401. package/dist/flows/PayrollEmployeeOnboarding/hooks.js +1 -1
  402. package/dist/flows/PayrollEmployeeOnboarding/index.d.ts +5 -5
  403. package/dist/flows/PayrollEmployeeOnboarding/index.js +1 -1
  404. package/dist/flows/PayrollEmployeeOnboarding/types.d.ts +5 -5
  405. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
  406. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  407. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
  408. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  409. package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
  410. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  411. package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
  412. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  413. package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
  414. package/dist/flows/Termination/TerminationFlow.js +1 -1
  415. package/dist/flows/Termination/TerminationForm.d.ts +4 -4
  416. package/dist/flows/Termination/TerminationForm.js +1 -1
  417. package/dist/flows/Termination/api.d.ts +5 -5
  418. package/dist/flows/Termination/api.js +1 -1
  419. package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
  420. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
  421. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
  422. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
  423. package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
  424. package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
  425. package/dist/flows/Termination/context.d.ts +4 -4
  426. package/dist/flows/Termination/hooks.d.ts +4 -4
  427. package/dist/flows/Termination/hooks.js +1 -1
  428. package/dist/flows/Termination/index.d.ts +6 -6
  429. package/dist/flows/Termination/index.js +1 -1
  430. package/dist/flows/Termination/json-schemas/additionalInformation.d.ts +3 -0
  431. package/dist/flows/Termination/json-schemas/additionalInformation.js +1 -1
  432. package/dist/flows/Termination/json-schemas/defaultSchema.d.ts +3 -0
  433. package/dist/flows/Termination/json-schemas/defaultSchema.js +1 -1
  434. package/dist/flows/Termination/json-schemas/employeeComunication.d.ts +3 -0
  435. package/dist/flows/Termination/json-schemas/employeeComunication.js +1 -1
  436. package/dist/flows/Termination/json-schemas/jsonSchema.d.ts +3 -0
  437. package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
  438. package/dist/flows/Termination/json-schemas/paidTimeOff.d.ts +3 -0
  439. package/dist/flows/Termination/json-schemas/paidTimeOff.js +1 -1
  440. package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
  441. package/dist/flows/Termination/json-schemas/schema.js +1 -1
  442. package/dist/flows/Termination/json-schemas/terminationDetails.d.ts +3 -0
  443. package/dist/flows/Termination/json-schemas/terminationDetails.js +1 -1
  444. package/dist/flows/Termination/types.d.ts +4 -4
  445. package/dist/flows/Termination/utils.d.ts +4 -4
  446. package/dist/flows/types.d.ts +3 -3
  447. package/dist/flows/utils.d.ts +2 -2
  448. package/dist/index.css +1 -1
  449. package/dist/index.css.map +1 -1
  450. package/dist/index.d.ts +23 -15
  451. package/dist/index.js +2 -2
  452. package/dist/index.js.map +1 -1
  453. package/dist/internals.d.ts +4 -4
  454. package/dist/internals.js +1 -1
  455. package/dist/{mutations-DQjVuza-.d.ts → mutations-Dg60ZjS0.d.ts} +1 -1
  456. package/dist/{remoteFlows-B_JbhzWp.d.ts → remoteFlows-7WBvzlJt.d.ts} +1 -1
  457. package/dist/styles.css +1 -1
  458. package/dist/styles.css.map +1 -1
  459. package/dist/{types-B0iYt6RL.d.ts → types--IwjF9ei.d.ts} +68 -5
  460. package/dist/{types-Clzf4xjV.d.ts → types-1IycaCkN.d.ts} +4 -6
  461. package/dist/{types-D3U8Wi3X.d.ts → types-CI8Tx4se.d.ts} +3 -3
  462. package/dist/{types-B93nzmoE.d.ts → types-CJHW5xRl.d.ts} +1 -1
  463. package/dist/{types-1mH_uuoA.d.ts → types-CT7w2kHS.d.ts} +2 -2
  464. package/dist/{types-CdC2MYpf.d.ts → types-CgNwKzZf.d.ts} +4 -4
  465. package/dist/{types-BFzhRUSU.d.ts → types-DPlWZa2M.d.ts} +4 -4
  466. package/dist/{types-CoYsxVTI.d.ts → types-DmvLgred.d.ts} +1 -1
  467. package/dist/types.gen-Dtb8ECVb.d.ts +308 -0
  468. package/dist/{types.gen-BmtA4XNd.d.ts → types.gen-TcbORUL-.d.ts} +216 -17
  469. package/dist/{utils-DJgzqxq4.d.ts → utils-DSHROBN2.d.ts} +1 -1
  470. package/package.json +3 -3
  471. package/dist/CheckboxFieldDefault-JXNMWIRK.js +0 -2
  472. package/dist/CountryFieldDefault-SO4WS7KE.js +0 -2
  473. package/dist/DatePickerFieldDefault-AZHJN2U6.js +0 -2
  474. package/dist/FileUploadFieldDefault-QHOKNCU2.js +0 -2
  475. package/dist/ForcedValueFieldDefault-BEOC4MYU.js +0 -2
  476. package/dist/MultiSelectFieldDefault-QKXVTGF2.js +0 -2
  477. package/dist/RadioGroupFieldDefault-ZHHXDUUU.js +0 -2
  478. package/dist/SelectFieldDefault-FWQ7D6DU.js +0 -2
  479. package/dist/TelFieldDefault-RA7IBELJ.js +0 -2
  480. package/dist/TextAreaFieldDefault-NEFWXEE2.js +0 -2
  481. package/dist/TextFieldDefault-RXNU36AX.js +0 -2
  482. package/dist/TimeFieldDefault-KIJNBWYF.js +0 -2
  483. package/dist/chunk-2HQDOWW2.js.map +0 -1
  484. package/dist/chunk-7HGU72GB.js +0 -2
  485. package/dist/chunk-7HGU72GB.js.map +0 -1
  486. package/dist/chunk-7IIQUZTH.js +0 -2
  487. package/dist/chunk-CQVOBIXJ.js +0 -2
  488. package/dist/chunk-CQVOBIXJ.js.map +0 -1
  489. package/dist/chunk-CRH5V5JI.js +0 -2
  490. package/dist/chunk-CRH5V5JI.js.map +0 -1
  491. package/dist/chunk-CSXL7LMW.js +0 -2
  492. package/dist/chunk-DN6BXTAC.js +0 -2
  493. package/dist/chunk-HDFAFTHC.js +0 -2
  494. package/dist/chunk-HDFAFTHC.js.map +0 -1
  495. package/dist/chunk-HDOEUCXY.js.map +0 -1
  496. package/dist/chunk-ILX6RI7K.js +0 -2
  497. package/dist/chunk-IXS65MGJ.js +0 -2
  498. package/dist/chunk-IXS65MGJ.js.map +0 -1
  499. package/dist/chunk-NPVSJYM6.js +0 -2
  500. package/dist/chunk-NPVSJYM6.js.map +0 -1
  501. package/dist/chunk-R4J4TF5F.js +0 -2
  502. package/dist/chunk-R4J4TF5F.js.map +0 -1
  503. package/dist/chunk-VNMUML3T.js +0 -8
  504. package/dist/chunk-VNMUML3T.js.map +0 -1
  505. package/dist/chunk-XFD3ULUF.js +0 -2
  506. package/dist/chunk-XXQBX7ND.js +0 -2
  507. package/dist/chunk-XXQBX7ND.js.map +0 -1
  508. /package/dist/{CheckboxFieldDefault-JXNMWIRK.js.map → CheckboxFieldDefault-JOUZXB4Y.js.map} +0 -0
  509. /package/dist/{CountryFieldDefault-SO4WS7KE.js.map → CountryFieldDefault-IZQOFNX5.js.map} +0 -0
  510. /package/dist/{DatePickerFieldDefault-AZHJN2U6.js.map → DatePickerFieldDefault-AWV7LUPI.js.map} +0 -0
  511. /package/dist/{FileUploadFieldDefault-QHOKNCU2.js.map → FileUploadFieldDefault-NZ33IMPU.js.map} +0 -0
  512. /package/dist/{ForcedValueFieldDefault-BEOC4MYU.js.map → ForcedValueFieldDefault-RY5AN7O6.js.map} +0 -0
  513. /package/dist/{MultiSelectFieldDefault-QKXVTGF2.js.map → MultiSelectFieldDefault-DOZQUBEE.js.map} +0 -0
  514. /package/dist/{RadioGroupFieldDefault-ZHHXDUUU.js.map → RadioGroupFieldDefault-GFDO56LK.js.map} +0 -0
  515. /package/dist/{SelectFieldDefault-FWQ7D6DU.js.map → SelectFieldDefault-E4KFZBJ7.js.map} +0 -0
  516. /package/dist/{TelFieldDefault-RA7IBELJ.js.map → TelFieldDefault-2EPAKDTW.js.map} +0 -0
  517. /package/dist/{TextAreaFieldDefault-NEFWXEE2.js.map → TextAreaFieldDefault-WZIVM4RZ.js.map} +0 -0
  518. /package/dist/{TextFieldDefault-RXNU36AX.js.map → TextFieldDefault-YVXZO4AN.js.map} +0 -0
  519. /package/dist/{TimeFieldDefault-KIJNBWYF.js.map → TimeFieldDefault-JN4MDIO6.js.map} +0 -0
  520. /package/dist/{chunk-X7HD2YL7.js.map → chunk-2UH6Y56R.js.map} +0 -0
  521. /package/dist/{chunk-TZRUHUW5.js.map → chunk-3G4HOZCM.js.map} +0 -0
  522. /package/dist/{chunk-OUUH3EQY.js.map → chunk-3OKB5OHA.js.map} +0 -0
  523. /package/dist/{chunk-PRFHWAQZ.js.map → chunk-46BOEYFO.js.map} +0 -0
  524. /package/dist/{chunk-J5BG6GTH.js.map → chunk-4CNDASPA.js.map} +0 -0
  525. /package/dist/{chunk-QSF4XFSV.js.map → chunk-4IGLIHGF.js.map} +0 -0
  526. /package/dist/{chunk-36GVXD2Z.js.map → chunk-4WSYC3Q5.js.map} +0 -0
  527. /package/dist/{chunk-7GO4BHOI.js.map → chunk-53QBSOMG.js.map} +0 -0
  528. /package/dist/{chunk-YLSASLPB.js.map → chunk-5HDMU73I.js.map} +0 -0
  529. /package/dist/{chunk-JQ3SLOUP.js.map → chunk-5JXLXWTD.js.map} +0 -0
  530. /package/dist/{chunk-F3UUYQGY.js.map → chunk-5PUW4YCY.js.map} +0 -0
  531. /package/dist/{chunk-6IQJJCQ3.js.map → chunk-6CBC5OAQ.js.map} +0 -0
  532. /package/dist/{chunk-GKSG4TTI.js.map → chunk-7FKNXW2I.js.map} +0 -0
  533. /package/dist/{chunk-6WO4PRGN.js.map → chunk-AAXPKULB.js.map} +0 -0
  534. /package/dist/{chunk-FDTOQHOJ.js.map → chunk-BB3M25A3.js.map} +0 -0
  535. /package/dist/{chunk-VQVE3QA2.js.map → chunk-BLKWR77C.js.map} +0 -0
  536. /package/dist/{chunk-6THYSEJ7.js.map → chunk-C7MVEDVY.js.map} +0 -0
  537. /package/dist/{chunk-NF2WEMTU.js.map → chunk-CCGAAOXN.js.map} +0 -0
  538. /package/dist/{chunk-ZYDBHR63.js.map → chunk-CD6H4MBI.js.map} +0 -0
  539. /package/dist/{chunk-MXF3IXNU.js.map → chunk-CONMRDRL.js.map} +0 -0
  540. /package/dist/{chunk-I4CKTODX.js.map → chunk-CUO7OGD5.js.map} +0 -0
  541. /package/dist/{chunk-KX4JZXZV.js.map → chunk-D6PMXNBM.js.map} +0 -0
  542. /package/dist/{chunk-SXPBC2FP.js.map → chunk-DOPQK5RP.js.map} +0 -0
  543. /package/dist/{chunk-TWLFK7DD.js.map → chunk-DP6L72YF.js.map} +0 -0
  544. /package/dist/{chunk-5TOSVOLY.js.map → chunk-ED35NFA6.js.map} +0 -0
  545. /package/dist/{chunk-IUY4BDUY.js.map → chunk-EMMFAZZC.js.map} +0 -0
  546. /package/dist/{chunk-MYO3DIES.js.map → chunk-EVUTX6TJ.js.map} +0 -0
  547. /package/dist/{chunk-4XK4QHOA.js.map → chunk-FSCAWXCB.js.map} +0 -0
  548. /package/dist/{chunk-V2KDZU2F.js.map → chunk-FV6NNYDP.js.map} +0 -0
  549. /package/dist/{chunk-JLM4O7ZW.js.map → chunk-G6EKGJBB.js.map} +0 -0
  550. /package/dist/{chunk-BVMAUJC2.js.map → chunk-G75LPZV5.js.map} +0 -0
  551. /package/dist/{chunk-KJCCB44M.js.map → chunk-GE74QKS6.js.map} +0 -0
  552. /package/dist/{chunk-H5OZSXSY.js.map → chunk-GHZABLDV.js.map} +0 -0
  553. /package/dist/{chunk-RK5ZEDOE.js.map → chunk-GTS7KFEM.js.map} +0 -0
  554. /package/dist/{chunk-MZUPTP2B.js.map → chunk-H47XUL2L.js.map} +0 -0
  555. /package/dist/{chunk-TO2GYQR2.js.map → chunk-I4DU34BA.js.map} +0 -0
  556. /package/dist/{chunk-S2QXSX4Q.js.map → chunk-ILEO7LN4.js.map} +0 -0
  557. /package/dist/{chunk-XTVXWH3Q.js.map → chunk-ILMRP364.js.map} +0 -0
  558. /package/dist/{chunk-BQNZUM27.js.map → chunk-ITCWBZDM.js.map} +0 -0
  559. /package/dist/{chunk-B5GH36QL.js.map → chunk-JI3PAIMV.js.map} +0 -0
  560. /package/dist/{chunk-WGDZTF7Y.js.map → chunk-JLZFNUBH.js.map} +0 -0
  561. /package/dist/{chunk-4O5HJBUC.js.map → chunk-JVXI4RZU.js.map} +0 -0
  562. /package/dist/{chunk-4Y2INBAI.js.map → chunk-KGNLBYM5.js.map} +0 -0
  563. /package/dist/{chunk-EEZFRK2I.js.map → chunk-L2YOD4GP.js.map} +0 -0
  564. /package/dist/{chunk-2IL6T6EB.js.map → chunk-LADLAP2S.js.map} +0 -0
  565. /package/dist/{chunk-QHJ3BYJN.js.map → chunk-LXGL7HF5.js.map} +0 -0
  566. /package/dist/{chunk-OU2JUD4J.js.map → chunk-MEYX4D5K.js.map} +0 -0
  567. /package/dist/{chunk-D5LOZT54.js.map → chunk-MXAFJYLQ.js.map} +0 -0
  568. /package/dist/{chunk-LF3FMXGV.js.map → chunk-N7HCQXUM.js.map} +0 -0
  569. /package/dist/{chunk-DN6BXTAC.js.map → chunk-NAFECQWK.js.map} +0 -0
  570. /package/dist/{chunk-5BIMRKQB.js.map → chunk-NFWKD7UR.js.map} +0 -0
  571. /package/dist/{chunk-6S5Q2OKC.js.map → chunk-NTPHMYYC.js.map} +0 -0
  572. /package/dist/{chunk-POWC7LZN.js.map → chunk-OKBPMWVB.js.map} +0 -0
  573. /package/dist/{chunk-BWM2MYPE.js.map → chunk-OWOIDZHI.js.map} +0 -0
  574. /package/dist/{chunk-6IDUDCVS.js.map → chunk-P2WUHKEU.js.map} +0 -0
  575. /package/dist/{chunk-SH35XDFY.js.map → chunk-P6FFLJDP.js.map} +0 -0
  576. /package/dist/{chunk-4ONGXCN3.js.map → chunk-PKJZ2N4C.js.map} +0 -0
  577. /package/dist/{chunk-RRZRQAIT.js.map → chunk-QFTBKRUI.js.map} +0 -0
  578. /package/dist/{chunk-ZZLLPFLS.js.map → chunk-R4ZUOFYN.js.map} +0 -0
  579. /package/dist/{chunk-TXOCMI5I.js.map → chunk-RFMYNPR7.js.map} +0 -0
  580. /package/dist/{chunk-2LR5N626.js.map → chunk-RYZ7TJVS.js.map} +0 -0
  581. /package/dist/{chunk-U6SMLAQI.js.map → chunk-RZL44CPH.js.map} +0 -0
  582. /package/dist/{chunk-C2HZNBMZ.js.map → chunk-SLRPDXK6.js.map} +0 -0
  583. /package/dist/{chunk-5MH23AST.js.map → chunk-STHZZZRL.js.map} +0 -0
  584. /package/dist/{chunk-F7ZDULRC.js.map → chunk-SUYI33NX.js.map} +0 -0
  585. /package/dist/{chunk-3VTHNE4H.js.map → chunk-SZI67IXU.js.map} +0 -0
  586. /package/dist/{chunk-QEHEOSJT.js.map → chunk-TJZ5BJV3.js.map} +0 -0
  587. /package/dist/{chunk-UUN3PLDE.js.map → chunk-TX6RWQUR.js.map} +0 -0
  588. /package/dist/{chunk-RKP7EEAB.js.map → chunk-UGQNOBQH.js.map} +0 -0
  589. /package/dist/{chunk-LBNS4VT7.js.map → chunk-V3AVEPNA.js.map} +0 -0
  590. /package/dist/{chunk-KZ5ZQTBF.js.map → chunk-V6PPOGPT.js.map} +0 -0
  591. /package/dist/{chunk-DSYQY3K6.js.map → chunk-VRPZ4GHN.js.map} +0 -0
  592. /package/dist/{chunk-PFNDDLHG.js.map → chunk-VVZTXCX2.js.map} +0 -0
  593. /package/dist/{chunk-FORYAPUZ.js.map → chunk-VYTUM3RI.js.map} +0 -0
  594. /package/dist/{chunk-GM3UWUVL.js.map → chunk-WGO25FWG.js.map} +0 -0
  595. /package/dist/{chunk-QYKJU45J.js.map → chunk-WKWL57L6.js.map} +0 -0
  596. /package/dist/{chunk-X7FILZJH.js.map → chunk-WVE2IOLY.js.map} +0 -0
  597. /package/dist/{chunk-5IRUNNZB.js.map → chunk-XDLVDPQ7.js.map} +0 -0
  598. /package/dist/{chunk-6AHENEHD.js.map → chunk-XEVHXHHC.js.map} +0 -0
  599. /package/dist/{chunk-JMFCG5KA.js.map → chunk-XMIVJW5E.js.map} +0 -0
  600. /package/dist/{chunk-CNSE26GY.js.map → chunk-XMVV6S77.js.map} +0 -0
  601. /package/dist/{chunk-AP6MKHTF.js.map → chunk-YHZZHQP5.js.map} +0 -0
  602. /package/dist/{chunk-ZAOE2DGD.js.map → chunk-YME2HZZJ.js.map} +0 -0
  603. /package/dist/{chunk-5AF5WV3R.js.map → chunk-Z7XLK4JL.js.map} +0 -0
  604. /package/dist/{chunk-64C6G646.js.map → chunk-ZODT3MJM.js.map} +0 -0
  605. /package/dist/{chunk-6L77BWCI.js.map → chunk-ZOTKZZ67.js.map} +0 -0
  606. /package/dist/{chunk-GJJFAGAC.js.map → chunk-ZREW7KZA.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/fields/FieldSetField.tsx","../src/components/form/fields/DatePickerField.tsx","../src/components/form/fields/FileUploadField.tsx","../src/components/form/fields/NumberField.tsx","../src/components/form/fields/RadioGroupField.tsx","../src/components/form/fields/SelectField.tsx","../src/components/form/fields/CountryField.tsx","../src/components/form/fields/TextAreaField.tsx","../src/components/form/fields/EmailField.tsx","../src/components/form/fields/HiddenField.tsx","../src/components/form/fields/WorkScheduleField.tsx","../src/components/form/fields/MultiSelectField.tsx","../src/components/form/fields/MoneyField.tsx","../src/components/form/fields/TelField.tsx","../src/components/form/fields/TimeField.tsx","../src/components/form/fields/baseFields.tsx","../src/components/form/fields/ForcedValueField.tsx"],"sourcesContent":["import { useFormContext } from 'react-hook-form';\nimport { Fragment, useEffect, useRef } from 'react';\nimport omit from 'lodash.omit';\nimport { baseFields } from '@/src/components/form/fields/baseFields';\nimport { cn } from '@/src/lib/utils';\nimport { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { Statement } from '@/src/components/form/Statement';\nimport { useFormFields } from '@/src/context';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { FieldsetToggleButtonDefault } from '@/src/components/form/fields/default/FieldsetToggleButtonDefault';\nimport { BaseTypes, SupportedTypes } from './types';\nimport { StatementComponentProps } from '@/src/types/fields';\nimport { checkFieldHasForcedValue } from '@/src/components/form/utils';\nimport { ForcedValueField } from '@/src/components/form/fields/ForcedValueField';\nimport { BaseFormDescription } from '@/src/components/ui/form';\n\ntype FieldBase = {\n label: string;\n name: string;\n description: string;\n Component?: React.ComponentType<$TSFixMe>;\n inputType: SupportedTypes;\n multiple?: boolean;\n};\n\ntype FieldWithOptions = FieldBase & {\n type: 'select' | 'radio';\n options: Array<{ value: string; label: string }>;\n};\n\ntype FieldWithoutOptions = FieldBase & {\n type: Exclude<SupportedTypes, 'select' | 'radio'>;\n options?: never;\n};\n\ntype Field = FieldWithOptions | FieldWithoutOptions;\n\ntype FieldSetFeatures = {\n toggle?: {\n enabled: boolean;\n defaultExpanded?: boolean;\n stateField?: string;\n labels?: {\n expand: string;\n collapse: string;\n };\n className?: string;\n };\n};\n\nexport type FieldSetProps = {\n label: string;\n name: string;\n description: string;\n fields: Field[];\n features?: FieldSetFeatures;\n components: Components;\n statement?: StatementComponentProps['data'];\n isFlatFieldset: boolean;\n extra?: React.ReactNode;\n variant: 'outset' | 'inset';\n meta?: {\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n } & Record<string, $TSFixMe>;\n};\n\nexport function FieldSetField({\n label,\n name,\n fields,\n description,\n components,\n statement,\n isFlatFieldset,\n extra,\n variant = 'outset',\n features,\n meta,\n}: FieldSetProps) {\n const { helpCenter } = meta || {};\n const { watch, setValue, trigger, formState } = useFormContext();\n const { components: formComponents } = useFormFields();\n\n // Get expanded state from form state if stateField is provided\n const stateField = features?.toggle?.stateField;\n const isExpanded = stateField\n ? watch(stateField)\n : (features?.toggle?.defaultExpanded ?? true);\n\n const fieldNames = fields.map(\n ({ name: fieldName }) => `${name}.${fieldName}`,\n );\n const fieldsetNeedsAllFormValues = fields.some(\n (field: $TSFixMe) => field.calculateDynamicProperties,\n );\n const watchedValues = watch(fieldNames);\n const allFormValues = fieldsetNeedsAllFormValues ? watch() : watchedValues;\n const prevValuesRef = useRef<string[]>(watchedValues);\n const triggerTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const toggleExpanded = () => {\n if (stateField) {\n setValue(stateField, !isExpanded);\n }\n };\n\n useEffect(() => {\n const currentValues = watchedValues;\n const previousValues = prevValuesRef.current;\n const hasBeenSubmitted = formState.isSubmitted || formState.submitCount > 0;\n\n // Check if any value has changed\n let hasChanged = false;\n for (let i = 0; i < currentValues.length; i++) {\n if (\n currentValues[i] !== undefined &&\n previousValues[i] !== currentValues[i]\n ) {\n hasChanged = true;\n // This is to prevent the form from triggering validation too many times\n break;\n }\n }\n // If changes detected and we haven't triggered yet, run trigger\n if (hasChanged && hasBeenSubmitted) {\n // We need to debounce the validation trigger so that tests don't freeze\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n triggerTimeoutRef.current = setTimeout(() => {\n trigger();\n }, 50);\n }\n\n prevValuesRef.current = [...currentValues];\n\n return () => {\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n };\n }, [watchedValues, trigger, formState.isSubmitted, formState.submitCount]);\n\n const ToggleComponent =\n formComponents?.fieldsetToggle || FieldsetToggleButtonDefault;\n const contentId = `${name}-content`;\n const headerId = `${name}-header`;\n\n return (\n <fieldset\n className={cn(\n 'border-1 border-input p-4 rounded-xl',\n `RemoteFlows__FieldSetField`,\n `RemoteFlows__FieldSetField__${name}`,\n )}\n >\n <legend\n className={cn(\n 'text-sm font-semibold px-2',\n variant === 'inset' && 'hidden',\n )}\n >\n {label}\n </legend>\n {helpCenter?.callToAction && helpCenter?.id && variant === 'outset' && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n {variant === 'inset' && (\n <>\n <div\n className='RemoteFlows__FieldSetField__Header'\n id={headerId}\n data-state={isExpanded ? 'expanded' : 'collapsed'}\n aria-expanded={isExpanded}\n >\n <h3 className={cn('RemoteFlows__FieldSetField__Title')}>{label}</h3>\n {features?.toggle?.enabled && (\n <ToggleComponent\n isExpanded={isExpanded}\n onToggle={toggleExpanded}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n aria-label={`${isExpanded ? 'Hide' : 'Show'} ${label}`}\n className={cn(\n 'RemoteFlows__FieldSetField__Toggle',\n features.toggle?.className,\n )}\n >\n {isExpanded\n ? (features.toggle.labels?.collapse ?? 'Remove')\n : (features.toggle.labels?.expand ?? 'Define')}\n </ToggleComponent>\n )}\n </div>\n {helpCenter?.callToAction && helpCenter?.id && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n </>\n )}\n {isExpanded && (\n <div id={contentId} aria-labelledby={headerId} role='region'>\n {description ? (\n <BaseFormDescription\n as='div'\n className='mb-5 RemoteFlows__FieldSetField__Description'\n >\n {description}\n </BaseFormDescription>\n ) : null}\n <div className='grid gap-4'>\n {fields.map((field: $TSFixMe) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(allFormValues, field) ||\n {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n const fieldType = field.type;\n const fieldKey = `${isFlatFieldset ? field.name : `${name}.${field.name}`}`;\n\n const isForcedValue = checkFieldHasForcedValue(field);\n\n // Helper function to wrap content with WrapperComponent if present\n const wrapWithCustomWrapper = (\n content: React.ReactNode,\n key: string,\n ) => {\n if (field.WrapperComponent) {\n return (\n <field.WrapperComponent key={key}>\n {content}\n </field.WrapperComponent>\n );\n }\n return <Fragment key={key}>{content}</Fragment>;\n };\n\n if (isForcedValue) {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <ForcedValueField\n name={fieldKey}\n description={fieldProps.description}\n value={fieldProps.const}\n statement={fieldProps.statement}\n label={fieldProps.label}\n helpCenter={fieldProps.meta?.helpCenter}\n />,\n fieldKey,\n );\n }\n\n // Handle nested fieldsets\n if (fieldType === 'fieldset') {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <FieldSetField\n {...(fieldProps as $TSFixMe)}\n name={fieldKey}\n components={components}\n />,\n fieldKey,\n );\n }\n\n if (fieldType === 'fieldset-flat') {\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <FieldSetField\n {...(fieldProps as $TSFixMe)}\n name={fieldKey}\n components={components}\n isFlatFieldset\n />,\n fieldKey,\n );\n }\n // We need to do the check after checking (field.type || field.inputType) === 'fieldset' or (field.type || field.inputType) === 'fieldset-flat'\n // circular dependency most likely\n let FieldComponent = baseFields[fieldType as BaseTypes];\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<$TSFixMe>;\n };\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <>\n <Component\n {...fieldProps}\n value={watch(fieldKey) as string}\n setValue={(value: unknown) => {\n setValue(fieldKey, value);\n }}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </>,\n fieldKey,\n );\n }\n\n if (!FieldComponent) {\n return (\n <p className='error'>Field type {fieldType} not supported</p>\n );\n }\n\n if (fieldType === 'select' && field.multiple) {\n FieldComponent = baseFields['multi-select'];\n }\n\n const fieldProps = omit(field, 'WrapperComponent');\n return wrapWithCustomWrapper(\n <>\n <FieldComponent\n {...fieldProps}\n name={fieldKey}\n component={components?.[fieldType as keyof Components]}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </>,\n fieldKey,\n );\n })}\n {extra ? extra : null}\n {statement ? <Statement {...statement} /> : null}\n </div>\n </div>\n )}\n </fieldset>\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { getMinStartDate } from '@/src/components/form/utils';\n\nexport type DatePickerFieldProps = JSFField & {\n onChange?: (value: $TSFixMe) => void;\n component?: Components['date'];\n};\n\nexport function DatePickerField({\n description,\n label,\n name,\n minDate,\n maxDate,\n onChange,\n component,\n ...rest\n}: DatePickerFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n let minDateValue: Date;\n if (rest.meta?.mot && typeof rest.meta.mot === 'number') {\n minDateValue = getMinStartDate(rest.meta.mot);\n } else if (typeof minDate === 'string') {\n minDateValue = new Date(`${minDate}T00:00:00`);\n }\n\n let maxDateValue: Date | undefined;\n if (maxDate) {\n maxDateValue = new Date(`${maxDate}T23:59:59`);\n }\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.date;\n\n if (!Component) {\n throw new Error(`Date picker component not found for field ${name}`);\n }\n\n const customDatePickerFieldProps = {\n description,\n label,\n name,\n onChange,\n transformHtml,\n ...(minDateValue && { minDate: minDateValue.toISOString() }),\n ...(maxDateValue && { maxDate: maxDateValue.toISOString() }),\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customDatePickerFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport {\n ControllerRenderProps,\n FieldValues,\n useFormContext,\n} from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { FieldDataProps } from '@/src/types/fields';\n\nconst validateFileSize = (files: File[], maxSize?: number): string | null => {\n if (!maxSize) return null;\n\n for (const file of files) {\n // `file` may not be a real File at runtime (e.g. an already-uploaded reference mixed in\n // via a multi-file field) even though the public type says otherwise — guard defensively.\n if (file instanceof File && file.size > maxSize) {\n const maxSizeMB = Math.round(maxSize / (1024 * 1024));\n const fileSizeMB = Math.round(file.size / (1024 * 1024));\n return `File \"${file.name}\" exceeds maximum size of ${maxSizeMB}MB (file is ${fileSizeMB}MB)`;\n }\n }\n return null;\n};\n\nexport type FieldFileDataProps = FieldDataProps & {\n accept?: string;\n multiple?: boolean;\n maxFileSize?: number;\n};\n\nexport type FileUploadFieldProps = JSFField & {\n onChange?: (value: File[]) => void;\n multiple?: boolean;\n component?: Components['file'];\n maxSize?: number;\n accept?: string;\n};\n\nexport function FileUploadField({\n name,\n description,\n label,\n multiple,\n onChange,\n component,\n accept,\n maxSize,\n ...rest\n}: FileUploadFieldProps) {\n const { components } = useFormFields();\n const { control, setError, clearErrors } = useFormContext();\n const transformHtml = useTransformer();\n\n const handleOnChange = async (\n files: File[],\n field: ControllerRenderProps<FieldValues, string>,\n ) => {\n const sizeError = validateFileSize(files, maxSize);\n if (sizeError) {\n setError(name, { message: sizeError });\n return;\n }\n\n clearErrors(name);\n field.onChange(files);\n onChange?.(files);\n };\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.file;\n if (!Component) {\n throw new Error(`File upload component not found for field ${name}`);\n }\n\n const customFileUploadFieldProps: FieldFileDataProps = {\n name,\n description,\n label,\n multiple,\n accept,\n maxFileSize: maxSize,\n transformHtml,\n ...rest,\n };\n\n return (\n <Component\n field={{\n ...field,\n value: field.value,\n onChange: async (value: File[]) => handleOnChange(value, field),\n }}\n fieldState={fieldState}\n fieldData={customFileUploadFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\nimport { TextFieldProps } from './TextField';\n\nexport type NumberFieldProps = TextFieldProps & {\n component?: Components['number'];\n onChange?: (value: number) => void;\n};\n\nexport function NumberField({\n component,\n onChange,\n ...props\n}: NumberFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n const Component = component || components.number;\n\n if (!Component) {\n throw new Error(`Number component not found for field ${props.name}`);\n }\n\n const customNumberFieldProps = {\n onChange,\n transformHtml,\n ...props,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: number) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customNumberFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { FormField } from '@/src/components/ui/form';\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\n\ntype RadioGroupFieldProps = JSFField & {\n onChange?: (value: string) => void;\n component?: Components['radio'];\n};\n\nexport function RadioGroupField({\n name,\n defaultValue,\n description,\n label,\n options,\n onChange,\n component,\n ...rest\n}: RadioGroupFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => {\n const Component = component || components?.radio;\n if (!Component) {\n throw new Error(`Radio group component not found for field ${name}`);\n }\n const customRadioGroupFieldProps = {\n name,\n defaultValue,\n description,\n label,\n options,\n transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customRadioGroupFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\ntype SelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string | number; label: string }>;\n className?: string;\n onChange?: (value: string | number) => void;\n component?: Components['select'];\n};\n\nexport function SelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: SelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.select;\n\n if (!Component) {\n throw new Error(`Select component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string | number) => {\n const isNumberType = Array.isArray(rest.jsonType)\n ? rest.jsonType.includes('number')\n : rest.jsonType === 'number';\n const maybeCastValue = isNumberType ? Number(value) : value;\n field.onChange(maybeCastValue);\n onChange?.(maybeCastValue);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\n\ntype CountryFieldProps = JSFField & {\n options: Array<{ value: string; label: string }>;\n onChange?: (value: $TSFixMe) => void;\n $meta: {\n regions: Record<string, string[]>;\n subregions: Record<string, string[]>;\n };\n component?: Components['countries'];\n};\n\nexport function CountryField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n component,\n ...rest\n}: CountryFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.countries;\n if (!Component) {\n throw new Error(`Country component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import * as React from 'react';\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nexport type TextAreaFieldProps = JSFField & {\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n maxLength?: number;\n component?: Components['textarea'];\n};\n\nexport function TextAreaField({\n name,\n description,\n label,\n onChange,\n maxLength,\n component,\n ...rest\n}: TextAreaFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.textarea;\n if (!Component) {\n throw new Error(`Text area component not found for field ${name}`);\n }\n const customTextAreaFieldProps = {\n name,\n description,\n label,\n maxLength,\n transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (evt: React.ChangeEvent<HTMLTextAreaElement>) => {\n field.onChange(evt);\n onChange?.(evt);\n },\n }}\n fieldState={fieldState}\n fieldData={customTextAreaFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields, useTransformer } from '@/src/context';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TextFieldProps } from './TextField';\nimport { Components } from '@/src/types/remoteFlows';\n\ntype EmailFieldProps = TextFieldProps & {\n component?: Components['email'];\n};\n\nexport function EmailField({ component, onChange, ...props }: EmailFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n const Component = component || components.email;\n\n if (!Component) {\n throw new Error(`Email component not found for field ${props.name}`);\n }\n\n const customEmailFieldProps = {\n onChange,\n transformHtml,\n ...props,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customEmailFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useEffect } from 'react';\nimport { FormField } from '../../ui/form';\nimport { Field } from '@/src/flows/types';\n\nexport function HiddenField(props: Field) {\n const { control, setValue } = useFormContext();\n\n // If the field has a forced/computed value (const === default), set it\n // If not it'll get the value from the form state\n useEffect(() => {\n if (\n props.const !== undefined &&\n props.const === props.default &&\n props.name\n ) {\n setValue(props.name, props.const);\n }\n }, [props.const, props.default, props.name, setValue]);\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field }) => {\n return <input {...field} type='hidden' />;\n }}\n />\n );\n}\n","import { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\n\nimport {\n buildWorkScheduleSummary,\n calculateTotalWorkHours,\n DailySchedule,\n} from './workScheduleUtils';\n\ntype WorkScheduleFieldProps = JSFField & {\n name: string;\n default: DailySchedule[];\n onChange?: (value: $TSFixMe) => void;\n component?: Components['work-schedule'];\n};\n\ntype WorkScheduleFormData = {\n schedule: DailySchedule[];\n};\n\nexport function WorkScheduleField(props: WorkScheduleFieldProps) {\n const { components } = useFormFields();\n const { setValue, control, watch } = useFormContext();\n const transformHtml = useTransformer();\n const watchedSchedule = watch(props.name);\n const [currentSchedule, setCurrentSchedule] =\n useState<DailySchedule[]>(watchedSchedule);\n\n const { workHoursSummary, breakSummary } =\n buildWorkScheduleSummary(currentSchedule);\n const totalWorkHours = calculateTotalWorkHours(currentSchedule);\n\n useEffect(() => {\n setValue(props.name, currentSchedule);\n }, [currentSchedule, props.name, setValue]);\n\n function onSubmit(data: WorkScheduleFormData['schedule']) {\n setCurrentSchedule(data);\n }\n\n const Component = props.component || components['work-schedule'];\n if (!Component) {\n throw new Error(\n `Work schedule component not found for field ${props.name}`,\n );\n }\n\n const fieldData = {\n ...props,\n onSubmit,\n currentSchedule,\n transformHtml,\n defaultFormattedValue: {\n workHoursSummary,\n breakSummary,\n totalWorkHours,\n },\n };\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\n\ntype MultiSelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string; label: string }>;\n className?: string;\n onChange?: (value: $TSFixMe) => void;\n component?: Components['select'];\n};\n\nexport function MultiSelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: MultiSelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.['multi-select'];\n if (!Component) {\n throw new Error(`Multi select component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import {\n NumberField,\n NumberFieldProps,\n} from '@/src/components/form/fields/NumberField';\n\n// TODO: We use the number field and the the number type is what the partner overrides\n// TODO: this needs to be changed in the future with the changes from https://github.com/remoteoss/remote-flows/pull/128\nexport const MoneyField = (props: NumberFieldProps) => {\n return <NumberField maxLength={15} {...props} />;\n};\n","import { FormField } from '@/src/components/ui/form';\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components } from '@/src/types/remoteFlows';\nimport {\n useFormContext,\n ControllerFieldState,\n ControllerRenderProps,\n FieldValues,\n} from 'react-hook-form';\nimport { TelFieldComponentProps, TelFieldDataProps } from '@/src/types/fields';\nimport { useMemo, useCallback, useState, useEffect, useRef } from 'react';\n\nexport type Country = {\n name: string;\n dialCode: string;\n pattern: string;\n areaCodes?: string[];\n};\n\n/**\n * Removes all spaces from input.\n */\nfunction removeSpaces(value: string) {\n return value.replace(/\\s/g, '');\n}\n\nfunction getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber: string = '',\n country?: Country,\n) {\n const baseRegex = new RegExp(\n `^(\\\\+|00)(\\\\d{${country?.dialCode?.length ?? 0}})(.*)$`,\n );\n const baseMatch = internationalPhoneNumber?.match(baseRegex);\n\n if (!baseMatch) {\n return {\n prefix: '',\n dialCode: '',\n phoneNumber: internationalPhoneNumber,\n };\n }\n\n const [, plusOrCallPrefix, dialCode, phoneNumber] = baseMatch;\n\n return {\n prefix: plusOrCallPrefix,\n dialCode,\n phoneNumber,\n };\n}\n\nfunction getCountryFromPhoneNumber(\n {\n dialCodes,\n dialCodeMaxLength,\n }: ReturnType<typeof getCountryDataByCountryCode>,\n internationalPhoneNumber: string,\n) {\n const { prefix } = getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber,\n );\n\n if (!prefix) {\n return undefined;\n }\n\n // Try longest dial codes first - critical for US/Canada\n for (let i = dialCodeMaxLength + prefix.length; i > prefix.length; i--) {\n const dialCode = internationalPhoneNumber.slice(prefix.length, i);\n\n if (dialCodes[dialCode]) {\n return dialCodes[dialCode];\n }\n }\n\n return undefined;\n}\n\n/**\n * Creates a map of dial codes (including area codes) to country objects.\n * Handles countries like US/Canada that share +1 with different area codes.\n */\nexport function getCountryDataByCountryCode(countries: Country[]) {\n const dialCodes: Record<string, Country> = {};\n let dialCodeMaxLength = 0;\n\n countries.forEach((country) => {\n if (country.areaCodes) {\n // For countries with area codes (e.g., +1204, +1226)\n country.areaCodes.forEach((areaCode) => {\n const code = country.dialCode + areaCode;\n dialCodes[code] = country;\n if (code.length > dialCodeMaxLength) {\n dialCodeMaxLength = code.length;\n }\n });\n } else {\n // For countries with simple dial codes (e.g., +44, +351)\n dialCodes[country.dialCode] = country;\n if (country.dialCode.length > dialCodeMaxLength) {\n dialCodeMaxLength = country.dialCode.length;\n }\n }\n });\n\n return { dialCodes, dialCodeMaxLength };\n}\n\nfunction getAreaCodesFromPattern(pattern: string = '') {\n const codeGroupPattern = /\\(([^)]+)\\)/g;\n const groups = pattern.match(codeGroupPattern);\n\n if (groups?.length === 2) {\n return groups[1].replace(/\\(|\\)/g, '').split('|');\n }\n\n return undefined;\n}\n\nfunction transformSchemaToCountries(\n options: Array<{\n value: string;\n label: string;\n meta: { countryCode: string };\n pattern: string;\n }>,\n): Country[] {\n return options.map((option) => ({\n name: option.label,\n dialCode: option.meta.countryCode,\n pattern: option.pattern,\n areaCodes: getAreaCodesFromPattern(option.pattern),\n }));\n}\n\nexport function TelFieldRenderer({\n field,\n fieldState,\n fieldData,\n component: Component,\n onChangeCountryCode,\n onChangePhoneNumber,\n}: {\n field: ControllerRenderProps<FieldValues, string>;\n fieldState: ControllerFieldState;\n fieldData: TelFieldDataProps;\n component: React.ComponentType<TelFieldComponentProps>;\n onChangeCountryCode?: (newCountry: Country) => void;\n onChangePhoneNumber?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}) {\n const { value: internationalPhoneNumber } = field;\n const { options } = fieldData;\n\n const countries = useMemo(\n () => transformSchemaToCountries(options),\n [options],\n );\n\n const countriesByCountryCode = useMemo(\n () => getCountryDataByCountryCode(countries),\n [countries],\n );\n\n // Track if the country change was due to manual selection\n const isManualSelectionRef = useRef(false);\n\n // Use state to track country, so manual selection is preserved\n const [country, setCountry] = useState<Country | undefined>(() =>\n getCountryFromPhoneNumber(\n getCountryDataByCountryCode(countries),\n internationalPhoneNumber || '',\n ),\n );\n\n // Re-detect country when phone number changes externally (e.g., form reset or area code typed)\n useEffect(() => {\n // Reset manual selection flag if field is cleared\n if (!internationalPhoneNumber || internationalPhoneNumber === '+') {\n isManualSelectionRef.current = false;\n }\n\n if (isManualSelectionRef.current) {\n return;\n }\n\n const detected = getCountryFromPhoneNumber(\n countriesByCountryCode,\n internationalPhoneNumber || '',\n );\n setCountry(detected);\n }, [internationalPhoneNumber, countriesByCountryCode]);\n\n const { prefix, phoneNumber: nationalPhoneNumber } = useMemo(\n () =>\n getStructuredNumberFromInternationalNumber(\n internationalPhoneNumber,\n country,\n ),\n [internationalPhoneNumber, country],\n );\n\n const handleCountryCodeChange = useCallback(\n (newCountry: Country) => {\n if (!newCountry) return;\n const newValue = `+${newCountry.dialCode}${nationalPhoneNumber}`;\n\n // Mark as manual selection to prevent useEffect from overriding\n isManualSelectionRef.current = true;\n\n // Update country state to preserve manual selection\n setCountry(newCountry);\n\n // Update React Hook Form state\n field.onChange(newValue);\n\n // Call optional external onChange\n if (onChangeCountryCode) {\n onChangeCountryCode(newCountry);\n }\n },\n [nationalPhoneNumber, field, onChangeCountryCode],\n );\n\n const handlePhoneNumberChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const valueWithoutSpaces = removeSpaces(event.target.value);\n let newValue: string;\n if (country) {\n newValue = `${prefix}${country.dialCode}${valueWithoutSpaces}`;\n } else {\n newValue = `${prefix}${valueWithoutSpaces}`;\n }\n // Update React Hook Form state\n field.onChange(newValue);\n\n // Call optional external onChange\n if (onChangePhoneNumber) {\n const syntheticEvent = {\n target: { value: newValue, name: field.name },\n } as React.ChangeEvent<HTMLInputElement>;\n onChangePhoneNumber(syntheticEvent);\n }\n },\n [country, prefix, field, onChangePhoneNumber],\n );\n\n const fieldDataWithComputedValues = useMemo(\n () => ({\n ...fieldData,\n onChangeCountryCode: handleCountryCodeChange,\n onChangePhoneNumber: handlePhoneNumberChange,\n currentCountry: country,\n nationalPhoneNumber,\n }),\n [\n fieldData,\n handleCountryCodeChange,\n handlePhoneNumberChange,\n country,\n nationalPhoneNumber,\n ],\n );\n\n return (\n <Component\n field={field}\n fieldState={fieldState}\n fieldData={fieldDataWithComputedValues}\n />\n );\n}\n\nexport type TelFieldProps = TelFieldDataProps & {\n name: string;\n component?: Components['tel'];\n};\n\nexport function TelField({\n name,\n description,\n label,\n onChangeCountryCode,\n onChangePhoneNumber,\n component,\n ...rest\n}: TelFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.tel;\n if (!Component) {\n throw new Error(`Tel component not found for field ${name}`);\n }\n\n const customTelFieldProps: TelFieldDataProps = {\n name,\n description,\n label,\n transformHtml,\n ...rest,\n };\n\n return (\n <TelFieldRenderer\n field={field}\n fieldState={fieldState}\n fieldData={customTelFieldProps}\n component={Component}\n onChangeCountryCode={onChangeCountryCode}\n onChangePhoneNumber={onChangePhoneNumber}\n />\n );\n }}\n />\n );\n}\n","import * as React from 'react';\n\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { Components, JSFField, $TSFixMe } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TimeFieldDataProps } from '@/src/types/fields';\n\nexport type TimeFieldProps = JSFField & {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n component?: Components['time'];\n};\n\nexport function TimeField({\n name,\n description,\n label,\n type,\n onChange,\n component,\n maxLength,\n ...rest\n}: TimeFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n const transformHtml = useTransformer();\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.time;\n\n if (!Component) {\n throw new Error(`Time component not found for field ${name}`);\n }\n\n const customTimeFieldProps: TimeFieldDataProps = {\n name,\n description,\n label,\n type,\n onChange,\n maxLength,\n transformHtml,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: $TSFixMe) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customTimeFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { CheckBoxField } from './CheckBoxField';\nimport { DatePickerField } from './DatePickerField';\nimport { FileUploadField } from './FileUploadField';\nimport { NumberField } from './NumberField';\nimport { RadioGroupField } from './RadioGroupField';\nimport { SelectField } from './SelectField';\nimport { CountryField } from './CountryField';\nimport { TextAreaField } from './TextAreaField';\nimport { TextField } from './TextField';\nimport { EmailField } from './EmailField';\nimport { HiddenField } from './HiddenField';\nimport { WorkScheduleField } from './WorkScheduleField';\nimport { MultiSelectField } from './MultiSelectField';\nimport { MoneyField } from './MoneyField';\nimport { TelField } from './TelField';\nimport { TimeField } from './TimeField';\nimport { SupportedTypes } from './types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\nexport const baseFields: Record<\n Exclude<SupportedTypes, 'fieldset' | 'fieldset-flat'>,\n React.ComponentType<$TSFixMe>\n> = {\n checkbox: CheckBoxField,\n text: TextField,\n email: EmailField,\n money: MoneyField,\n select: SelectField,\n 'multi-select': MultiSelectField,\n radio: RadioGroupField,\n number: NumberField,\n file: FileUploadField,\n date: DatePickerField,\n textarea: TextAreaField,\n countries: CountryField,\n hidden: HiddenField,\n tel: TelField,\n time: TimeField,\n 'work-schedule': WorkScheduleField,\n};\n","import { useFormContext } from 'react-hook-form';\nimport { useEffect } from 'react';\nimport { useFormFields, useTransformer } from '@/src/context';\nimport { sanitizeHtml } from '@/src/lib/utils';\nimport { HelpCenterDataProps } from '@/src/types/fields';\n\nexport type ForcedValueFieldProps = {\n name: string;\n value: string;\n description: string;\n statement?: {\n title?: string;\n description?: string;\n };\n label: string;\n helpCenter?: HelpCenterDataProps;\n};\n\nexport function ForcedValueField({\n name,\n value,\n description,\n statement,\n label,\n helpCenter,\n}: ForcedValueFieldProps) {\n const { setValue } = useFormContext();\n const { components } = useFormFields();\n const transformHtml = useTransformer();\n\n useEffect(() => {\n setValue(name, value);\n }, [name, value, setValue]);\n\n const forcedValueDescription = statement?.description || description;\n const forcedValueTitle = statement?.title\n ? sanitizeHtml(statement.title)\n : sanitizeHtml(label);\n\n // A forced value with no title and no description has nothing to show the user, so we\n // skip rendering entirely (the value is still set on the form via the effect above).\n const isHiddenValue = !forcedValueDescription && !statement?.title;\n\n if (isHiddenValue) {\n return null;\n }\n\n const Component = components?.forcedValue;\n\n if (!Component) {\n throw new Error(`Forced value component not found for field ${name}`);\n }\n\n return (\n <Component\n fieldData={{\n name,\n value,\n title: forcedValueTitle,\n description: forcedValueDescription,\n meta: { helpCenter },\n transformHtml,\n }}\n />\n );\n}\n"],"mappings":"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","names":["Fragment","useEffect","useRef","omit","jsx","DatePickerField","description","label","name","minDate","maxDate","onChange","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","minDateValue","getMinStartDate","maxDateValue","FormField","field","fieldState","Component","customDatePickerFieldProps","__name","value","jsx","validateFileSize","__name","files","maxSize","file","maxSizeMB","fileSizeMB","FileUploadField","name","description","label","multiple","onChange","component","accept","rest","components","useFormFields","control","setError","clearErrors","useFormContext","transformHtml","useTransformer","handleOnChange","field","sizeError","FormField","fieldState","Component","customFileUploadFieldProps","value","jsx","NumberField","component","onChange","props","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customNumberFieldProps","__name","value","jsx","RadioGroupField","name","defaultValue","description","label","options","onChange","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customRadioGroupFieldProps","__name","value","jsx","SelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","transformHtml","useTransformer","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","maybeCastValue","jsx","CountryField","label","name","options","defaultValue","description","onChange","$meta","component","rest","control","useFormContext","components","useFormFields","transformHtml","useTransformer","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","TextAreaField","name","description","label","onChange","maxLength","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customTextAreaFieldProps","__name","evt","jsx","EmailField","component","onChange","props","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customEmailFieldProps","__name","value","useEffect","jsx","HiddenField","props","control","setValue","useFormContext","useEffect","FormField","field","__name","useEffect","useState","jsx","WorkScheduleField","props","components","useFormFields","setValue","control","watch","useFormContext","transformHtml","useTransformer","watchedSchedule","currentSchedule","setCurrentSchedule","useState","workHoursSummary","breakSummary","buildWorkScheduleSummary","totalWorkHours","calculateTotalWorkHours","useEffect","onSubmit","data","__name","Component","fieldData","FormField","field","fieldState","value","jsx","MultiSelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","transformHtml","useTransformer","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","MoneyField","__name","props","NumberField","useMemo","useCallback","useState","useEffect","useRef","jsx","removeSpaces","value","__name","getStructuredNumberFromInternationalNumber","internationalPhoneNumber","country","baseRegex","baseMatch","plusOrCallPrefix","dialCode","phoneNumber","getCountryFromPhoneNumber","dialCodes","dialCodeMaxLength","prefix","getCountryDataByCountryCode","countries","areaCode","code","getAreaCodesFromPattern","pattern","codeGroupPattern","groups","transformSchemaToCountries","options","option","TelFieldRenderer","field","fieldState","fieldData","Component","onChangeCountryCode","onChangePhoneNumber","useMemo","countriesByCountryCode","isManualSelectionRef","useRef","setCountry","useState","useEffect","detected","nationalPhoneNumber","handleCountryCodeChange","useCallback","newCountry","newValue","handlePhoneNumberChange","event","valueWithoutSpaces","syntheticEvent","fieldDataWithComputedValues","TelField","name","description","label","component","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","customTelFieldProps","jsx","TimeField","name","description","label","type","onChange","component","maxLength","rest","components","useFormFields","control","useFormContext","transformHtml","useTransformer","FormField","field","fieldState","Component","customTimeFieldProps","__name","value","baseFields","CheckBoxField","TextField","EmailField","MoneyField","SelectField","MultiSelectField","RadioGroupField","NumberField","FileUploadField","DatePickerField","TextAreaField","CountryField","HiddenField","TelField","TimeField","WorkScheduleField","useEffect","jsx","ForcedValueField","name","value","description","statement","label","helpCenter","setValue","useFormContext","components","useFormFields","transformHtml","useTransformer","useEffect","forcedValueDescription","forcedValueTitle","sanitizeHtml","Component","__name","Fragment","jsx","jsxs","FieldSetField","label","name","fields","description","components","statement","isFlatFieldset","extra","variant","features","meta","helpCenter","watch","setValue","trigger","formState","useFormContext","formComponents","useFormFields","stateField","isExpanded","fieldNames","fieldName","fieldsetNeedsAllFormValues","field","watchedValues","allFormValues","prevValuesRef","useRef","triggerTimeoutRef","toggleExpanded","__name","useEffect","currentValues","previousValues","hasBeenSubmitted","hasChanged","i","ToggleComponent","FieldsetToggleButtonDefault","contentId","headerId","cn","ZendeskTriggerButton","BaseFormDescription","fieldType","fieldKey","isForcedValue","checkFieldHasForcedValue","wrapWithCustomWrapper","content","key","fieldProps","omit","ForcedValueField","FieldComponent","baseFields","Component","value","Statement"]}
@@ -1,2 +0,0 @@
1
- import{a as c,b as l,e as s,h as u,i as d}from"./chunk-PB6UQ4A4.js";import{a as i}from"./chunk-P37U34EQ.js";function v(e={}){let t=[{name:"select_country",label:"Select Country",visible:!!e?.includeSelectCountry},{name:"basic_information",label:"Basic Information",visible:!0},{name:"pricing_plan",label:"Pricing Plan",visible:!0},{name:"eligibility_questionnaire",label:"Eligibility Questionnaire",visible:!!e?.includeEligibilityQuestionnaire},{name:"contract_origin",label:"Contract Options",visible:!!(e?.includeContractOrigin??!0)},{name:"contract_details",label:"Contract Details",visible:!!(e?.includeContractDetails??!0)},{name:"contract_preview",label:"Contract Preview",visible:!!e?.includeContractPreview},{name:"invoice_schedule",label:"Invoice schedule",visible:!!e?.includeInvoiceSchedule},{name:"create_invoice_schedule",label:"Create Invoice Schedule",visible:!!e?.includeCreateInvoiceSchedule},{name:"review",label:"Review",visible:!0}].map((o,r)=>({name:o.name,index:r,label:o.label,visible:o.visible}));return{steps:t.reduce((o,r)=>(o[r.name]={index:r.index,name:r.name,visible:r.visible},o),{}),stepsArray:t}}i(v,"buildSteps");var E=i((e,n)=>{if(e&&n&&e!==n)return`When the contractor will start providing service to your company. ${`This date does not match the date you provided in the Basic Information step - ${e} - and will override it only when both parties have signed the contract.`}`},"calculateProvisionalStartDateDescription"),S=i(e=>e===c||e===l,"isCMOrCMPlus"),m=["SAU","KWT","OMN","QAT","BHR"],g=i(e=>m.includes(e),"isNationalityCountryCode"),h=i((e,n)=>!n||n.length===0?!0:!n.some(t=>s[t]===e),"shouldIncludeProduct"),f=["initiated","invited","created_awaiting_reserve","created_reserve_paid","active"],I=["initiated","created_awaiting_reserve","invited","active"];function C(e){return e?d:u}i(C,"transformAiErrorResponse");var b=1,R=i(e=>e?.jsonSchemaVersion?.employment_basic_information||b,"getBasicInformationSchemaVersion");function _(e){let n=[];for(let t=1;t<=10;t++){let a=e[`item_${t}_description`],o=e[`item_${t}_amount`];typeof a=="string"&&typeof o=="number"&&n.push({description:a,amount:o})}return n}i(_,"buildInvoiceItems");function A(e){let n={currency:e.currency,periodicity:e.periodicity,start_date:e.start_date,items:_(e)};return e.number&&(n.number=String(e.number)),e.note&&(n.note=e.note),e.nr_occurrences&&(n.nr_occurrences=Number(e.nr_occurrences)),n}i(A,"buildInvoiceSchedulePayload");export{v as a,E as b,S as c,g as d,h as e,f,I as g,C as h,R as i,_ as j,A as k};
2
- //# sourceMappingURL=chunk-7IIQUZTH.js.map
@@ -1,2 +0,0 @@
1
- import{a as tn,b as nn,c as rn}from"./chunk-ZZLLPFLS.js";import{A as Xt,B as Yt,C as Zt,D as en,a as ht,b as Ct,c as Ot,d as Ft,e as Dt,f as At,g as Tt,h as Rt,j as kt,k as qt,l as Lt,m as jt,n as xt,o as Bt,p as Nt,q as Qt,r as Jt,s as Ut,t as Kt,u as Gt,v as $t,w as Ht,x as zt,z as Wt}from"./chunk-IXS65MGJ.js";import{a as wt,b as Pt,f as It,g as Et,h as Vt,i as Mt}from"./chunk-7IIQUZTH.js";import{a as N,b as me,c as h,d as St,g as vt}from"./chunk-PB6UQ4A4.js";import{a as yt,b as gt}from"./chunk-POWC7LZN.js";import{f as pt,i as ft,j as _t}from"./chunk-KPJ5YKXS.js";import{Z as mt}from"./chunk-VNMUML3T.js";import{a as lt,b as S,d as ut,h as m,i as v,u as L,v as C}from"./chunk-C4HFMTSB.js";import{a as bt}from"./chunk-M3TA5X2H.js";import{e as dt}from"./chunk-H2O4CVKF.js";import{a as g}from"./chunk-P37U34EQ.js";import{useCallback as an,useEffect as V,useMemo as a,useRef as sn,useState as w}from"react";import cn from"lodash.omit";import{useQuery as bi}from"@tanstack/react-query";var hi=g(()=>{let{client:G}=dt(),{data:Q}=Ot(),f=Ft(Q)?Q?.company?.id??"":"";return bi({queryKey:["legal-entities",f],queryFn:g(()=>mt({client:G,path:{company_id:f},query:{page_size:100}}),"queryFn"),select:g(J=>J.data?.data?.legal_entities,"select"),enabled:!!f})},"useLegalEntities"),on=g(()=>{let{data:G}=hi();return G?.find(Q=>Q.is_default)},"useDefaultLegalEntity");var Si={select_country:null,basic_information:"employment_basic_information",contract_origin:null,invoice_schedule:null,create_invoice_schedule:null,contract_details:null,eligibility_questionnaire:null,pricing_plan:null,contract_preview:null,review:null},vi={employment_basic_information:"basic_information"},ln={remote_contract:"provided_by_remote"},Ci={provided_by_remote:"remote_contract"},Xi=g(({countryCode:G,externalId:Q,employmentId:f,skipSteps:J,options:u,initialValues:s})=>{let un=u?.excludeProducts||[],Pe=sn(u?.onContractReviewed);V(()=>{Pe.current=u?.onContractReviewed},[u?.onContractReviewed]);let[p,Ie]=w(G||null),[r,dn]=w(f),[P,Ee]=w(void 0),oe=sn({select_country:{},basic_information:{},contract_origin:{},invoice_schedule:{},create_invoice_schedule:{},contract_details:{},contract_preview:{},pricing_plan:{},eligibility_questionnaire:{}}),[$,mn]=w(void 0),[Ve,Me]=w(!1),[Oe,pn]=w(!0),[Fe,fn]=w(!0),[De,_n]=w(!0),[j,yn]=w(!1),[Ae,gn]=w(!1),[pe,Te]=w(null),{steps:bn,stepsArray:hn}=a(()=>wt({includeSelectCountry:!J?.includes("select_country"),includeContractOrigin:De,includeInvoiceSchedule:j,includeCreateInvoiceSchedule:Ae,includeEligibilityQuestionnaire:Ve,includeContractDetails:Fe,includeContractPreview:Oe}),[De,j,Ae,Ve,Fe,Oe,J]),{fieldValues:l,stepState:t,setFieldValues:fe,previousStep:Sn,nextStep:vn,goToStep:H,setStepValues:Re}=bt(bn);V(()=>{pe&&(H(pe),Te(null))},[pe,H]);let{data:c,isLoading:Cn,refetch:ke}=yt({employmentId:r,queryParams:{exclude_files:!0}}),{data:ae,refetch:wn}=gt({employmentId:r,enabled:!!r}),Pn=on(),{data:qe}=Yt({options:{queryOptions:{enabled:t.currentStep.name==="review"}}}),{status:x}=c||{},k=x&&It.includes(x),In=x&&!Et.includes(x),En=a(()=>x&&["invited","initiated"].includes(x)?"invited":"not_invited",[x]),Le=ft(),je=_t(p,u),_e=qt(),xe=Ct(),{mutateAsync:Be}=xt(_e,xe,l),Ne=Jt(),Qe=Ut(),Je=Gt(),Ue=Zt(),Ke=en(),{mutateAsyncOrThrow:Vn}=S(je),Ge=At(),$e=kt(),He=Kt(),{mutateAsyncOrThrow:Mn}=S(Le),{mutateAsyncOrThrow:On}=S(_e),{mutateAsyncOrThrow:Fn}=S(Ge),{mutateAsyncOrThrow:ze}=S($e),{mutateAsyncOrThrow:Dn}=S(Ne),{mutateAsyncOrThrow:We}=S(Qe),{mutateAsyncOrThrow:An}=S(He),{mutateAsyncOrThrow:Tn}=S(Je),{mutateAsyncOrThrow:Rn}=S(Ue),{mutateAsyncOrThrow:kn}=S(Ke);f&&c?.country?.code&&!p&&Ie(c.country.code);let{selectCountryForm:U,isLoading:qn,countries:Xe}=Xt({jsfModify:u?.jsfModify?.select_country}),ye=a(()=>Xe?.find(e=>e.value===p),[Xe,p]),Ln=a(()=>ye?.label,[ye]),jn=t.currentStep.name==="pricing_plan"||!!f&&k,{form:M,isLoading:xn,contractorSubscriptions:se,filteredContractorSubscriptions:z,refetch:ge,isEligibilityQuestionnaireBlocked:W}=jt(r,ye,{jsonSchemaVersion:u?.jsonSchemaVersion,queryOptions:{enabled:jn},excludeProducts:un,jsfModify:u?.jsfModify?.pricing_plan}),B=a(()=>!!se?.find(e=>e.product.identifier===h)?.eligibility_questionnaire?.submitted_at,[se]),Ye=a(()=>B?!1:$===h,[B,$]),Ze=c?.contractor_type!=="cor",et=(t.currentStep.name==="contract_origin"?l.contract_origin:void 0)??t.values?.contract_origin?.contract_origin??ae?.contract_origin,Bn=ln[et]??et,K=$===N&&Bn==="provided_by_customer";V(()=>{fn(!K)},[K]),V(()=>{Me(!K&&Ye)},[K,Ye]),V(()=>{pn(!K&&Ze)},[K,Ze]);let ce=a(()=>se?.find(e=>e.product.identifier===h)?.eligibility_questionnaire?.responses,[se]),Nn=Si[t.currentStep.name]||"contractor_basic_information",Qn=vi[Nn],Jn=c?.[Qn]||{},Un=g(({form:e,options:n={},query:o={},jsonSchemaVersion:d})=>{let q=Object.keys(l).length>0?{...s,...t.values?.[t.currentStep.name],...l}:{...s,...Jn};return pt({countryCode:p,form:e,fieldValues:q,query:o,options:{...n,queryOptions:{enabled:n.queryOptions?.enabled??!0}},jsonSchemaVersion:d})},"useJSONSchema"),Kn=!!(p&&(t.currentStep.name==="basic_information"||f)),Gn=!!(p==="GBR"&&f&&t.currentStep.name==="basic_information"),{data:X,isLoading:$n}=Bt(f,{enabled:Gn}),{data:le,isLoading:Hn}=Nt(r,{enabled:!!r});V(()=>{le&&le.length>0&&!P&&Ee(le[0].id)},[le,P]);let{data:I,isLoading:zn}=Un({form:"contractor_basic_information",options:{jsfModify:nn(p,Ln,u),queryOptions:{enabled:Kn}},jsonSchemaVersion:Mt(u)}),Wn=a(()=>Pt(c?.basic_information?.provisional_start_date,l?.service_duration?.provisional_start_date),[c?.basic_information?.provisional_start_date,l?.service_duration?.provisional_start_date]),y=a(()=>{let e={standard:N,plus:me,cor:h};if(l.subscription)return l.subscription;let n=t.values?.pricing_plan?.subscription;if(n&&!W)return n;if(B&&!W)return h;if(W&&B)return N;if(z&&z.length>0)return e[c?.contractor_type]||N},[l,t.values,B,c?.contractor_type,W,z]);V(()=>{y&&y!==$&&mn(y)},[y,$]),V(()=>{_n(!J?.includes("contract_origin")&&y===N)},[J,y]),V(()=>{yn(u?.features?.includes("create_invoice_schedule")??!1)},[u?.features]);let Xn=a(()=>({...ce,...s,...t.values?.eligibility_questionnaire,...l}),[ce,s,t.values?.eligibility_questionnaire,l]),Yn=a(()=>y===h&&t.currentStep.name==="eligibility_questionnaire"||!!f&&k&&y===h,[y,t.currentStep.name,f,k]),{data:O,isLoading:Zn}=Qt({options:{queryOptions:{enabled:Yn},jsfModify:u?.jsfModify?.eligibility_questionnaire},fieldValues:Xn}),ei=!!(p&&t.currentStep.name==="contract_details"||k),{data:E,isLoading:ti}=ht({countryCode:p,fieldValues:l,employmentId:r,options:{queryOptions:{enabled:ei},jsfModify:tn(u?.jsfModify?.contract_details,Wn,y,l,y===h)}}),ni=a(()=>t.currentStep.name==="contract_preview"||!!f&&k,[t.currentStep.name,f,k]),{data:F}=Dt({fieldValues:l,options:{queryOptions:{enabled:ni},jsfModify:rn(u,l)}}),{data:D}=$t({fieldValues:l,options:{jsfModify:u?.jsfModify?.contract_origin}}),A=Ht({enabled:j&&t.currentStep.name==="invoice_schedule",jsfModify:u?.jsfModify?.invoice_schedule}),{data:b,isLoading:ii,refetch:tt}=Wt({employmentId:r,options:{queryOptions:{enabled:j&&!!r&&t.currentStep.name==="invoice_schedule"}}}),{data:T,isLoading:ri}=zt({enabled:j&&t.currentStep.name==="create_invoice_schedule",employmentId:r,jsfModify:u?.jsfModify?.create_invoice_schedule}),{data:be,isLoading:oi,refetch:ai}=Tt({employmentId:r,contractDocumentId:P,options:{queryOptions:{enabled:!!P}}}),{hasCompanySignedContract:si}=Rt({employmentId:r,contractDocumentId:P,options:{queryOptions:{enabled:!!P}}}),i=a(()=>({select_country:U?.fields||[],basic_information:I?.fields||[],contract_origin:D?.fields||[],invoice_schedule:A?.fields||[],create_invoice_schedule:T?.fields||[],pricing_plan:M?.fields||[],eligibility_questionnaire:O?.fields||[],contract_details:E?.fields||[],contract_preview:F?.fields||[],review:[]}),[U?.fields,I?.fields,D?.fields,A?.fields,T?.fields,M?.fields,E?.fields,F?.fields,O?.fields]),ci={select_country:null,basic_information:I?.meta["x-jsf-fieldsets"],contract_origin:null,invoice_schedule:null,create_invoice_schedule:null,pricing_plan:null,contract_details:E?.meta["x-jsf-fieldsets"],eligibility_questionnaire:null,contract_preview:null,review:null},li={select_country:U?.meta?.["x-jsf-presentation"],basic_information:I?.meta?.["x-jsf-presentation"],contract_origin:D?.meta?.["x-jsf-presentation"],invoice_schedule:A?.meta?.["x-jsf-presentation"],create_invoice_schedule:T?.meta?.["x-jsf-presentation"],pricing_plan:M?.meta?.["x-jsf-presentation"],eligibility_questionnaire:O?.meta?.["x-jsf-presentation"],contract_details:E?.meta?.["x-jsf-presentation"],contract_preview:F?.meta?.["x-jsf-presentation"],review:null},{country:ui,basic_information:ue={},contract_details:nt={}}=c||{},it=ui?.code,Y=a(()=>v(i.select_country,{country:p||it||""}),[i.select_country,p,it]),he=a(()=>X?.content?ut(X.content,X.name):null,[X?.content,X?.name]),Z=a(()=>{let e={...s,...ue,ir35:c?.contract_details?.ir_35,nationality_status:c?.contract_details?.nationality,...he&&{ir35_sds_file:[he]}};return v(i.basic_information,e)},[s,ue,c?.contract_details?.ir_35,c?.contract_details?.nationality,he,i.basic_information]),rt=a(()=>{let e={...s,contract_origin:ln[ae?.contract_origin]??ae?.contract_origin};return v(i.contract_origin,e)},[i.contract_origin,s,ae?.contract_origin]),ot=a(()=>{let e={...s,...b&&{invoice_schedule_preference:"schedule"}};return v(i.invoice_schedule,e)},[i.invoice_schedule,s,b]),at=a(()=>{if(b){let n={currency:b.currency,periodicity:b.periodicity,start_date:b.start_date,number:b.number,note:b.note,nr_occurrences:b.nr_occurrences};return b.items?.forEach((o,d)=>{let _=d+1;n[`item_${_}_description`]=o.description,n[`item_${_}_amount`]=o.amount}),v(i.create_invoice_schedule,n)}let e={...s};return v(i.create_invoice_schedule,e)},[i.create_invoice_schedule,s,b]),ee=a(()=>{let n={...{service_duration:{provisional_start_date:ue.provisional_start_date}},...s,...nt};return v(i.contract_details,n)},[i.contract_details,nt,s,ue]),te=a(()=>{let e=be?.contract_document?.signatories?.find(o=>o.type==="company"),n={...s,signature:e?.signature};return v(i.contract_preview,n)},[i.contract_preview,s,be]),ne=a(()=>{let n={...{subscription:y},...s};return v(i.pricing_plan,n)},[i.pricing_plan,s,y]),ie=a(()=>{let e={...s,...ce};return v(i.eligibility_questionnaire,e)},[i.eligibility_questionnaire,s,ce]),di=a(()=>({select_country:Y,basic_information:Z,contract_origin:rt,invoice_schedule:ot,create_invoice_schedule:at,contract_details:ee,contract_preview:te,pricing_plan:ne,eligibility_questionnaire:ie}),[Y,Z,rt,ot,at,ee,te,ne,ie]),Se=!!(f&&k&&t.currentStep.name!=="review"),ve=qn||zn||Cn||ti||xn||oi||$n||Hn||Zn||ri||ii,st=a(()=>{let n=c?.contractor_type==="cor"||i.contract_preview.length>0;return!!(Se&&!ve&&P&&i.basic_information.length>0&&i.contract_details.length>0&&n)},[Se,ve,P,i.basic_information.length,i.contract_details.length,i.contract_preview.length,c?.contractor_type]);V(()=>{st&&(oe.current={select_country:L(Y,i.select_country,{skipMoneyConversion:!0}),basic_information:L(Z,i.basic_information,{skipMoneyConversion:!0}),contract_origin:{},invoice_schedule:{},create_invoice_schedule:{},contract_details:L(ee,i.contract_details,{skipMoneyConversion:!0}),contract_preview:L(te,i.contract_preview,{skipMoneyConversion:!0}),pricing_plan:L(ne,i.pricing_plan,{skipMoneyConversion:!0}),eligibility_questionnaire:L(ie,i.eligibility_questionnaire,{skipMoneyConversion:!0})},Re({select_country:Y,basic_information:Z,contract_origin:{},invoice_schedule:{},create_invoice_schedule:{},contract_details:ee,contract_preview:te,pricing_plan:ne,eligibility_questionnaire:ie,review:{}}),H("review"))},[st,H,Y,Z,ee,Re,i.select_country,i.basic_information,i.contract_details,i.pricing_plan,ne,i.contract_preview,te,i.eligibility_questionnaire,ie]);let mi=g(e=>{H(e)},"goTo"),ct=g(async e=>U&&t.currentStep.name==="select_country"?e:I&&t.currentStep.name==="basic_information"?await m(e,I?.fields,{isPartialValidation:!1}):E&&t.currentStep.name==="contract_details"?await m(e,E?.fields,{isPartialValidation:!1}):F&&t.currentStep.name==="contract_preview"?await m(e,F?.fields,{isPartialValidation:!1}):M&&t.currentStep.name==="pricing_plan"?await m(e,M?.fields,{isPartialValidation:!1}):O&&t.currentStep.name==="eligibility_questionnaire"?await m(e,O?.fields,{isPartialValidation:!1}):D&&t.currentStep.name==="contract_origin"?await m(e,D?.fields,{isPartialValidation:!1}):A&&t.currentStep.name==="invoice_schedule"?await m(e,A?.fields,{isPartialValidation:!1}):T&&t.currentStep.name==="create_invoice_schedule"?await m(e,T?.fields,{isPartialValidation:!1}):{},"parseFormValues"),pi=g(e=>{if(!lt(e))return null;let n=e.normalizedErrors.services_and_deliverables,o=Array.isArray(n)?n[0]:n;return o?.source===vt?{error:o.error,source:o.source,skippable:o.skippable}:null},"extractAiValidationError");async function fi(e){let n=t.currentStep.name,o=await ct(e);switch(n in oe.current&&(oe.current[n]=L(o,i[n])),t.currentStep.name){case"select_country":return Ie(o.country),Promise.resolve({data:{countryCode:o.country}});case"basic_information":{let d=!r&&p,_=r&&p&&c?.country&&c?.country.code!==p;if(d||_){let we={basic_information:cn(o,"nationality_status","ir35","ir35_sds_file"),type:"contractor",country_code:p,external_id:Q},de=await Mn(we),R=de?.data?.employment?.id;if(!R)throw C("Employment ID not found");return await Be({employmentId:R}),dn(R),de}else if(r){let q=cn(o,"nationality_status","ir35","ir35_sds_file");return await Be({employmentId:r}),Vn({employmentId:r,basic_information:q})}return}case"contract_details":{let{services_and_deliverables_ai_warning:d,services_and_deliverables_error_skippable:_,...q}=o,we=l.services_and_deliverables_error_skippable===!0,de={contract_document:q,skip_ai_checks:we};try{let R=await On({employmentId:r,payload:de}),re=R?.data?.contract_document?.id;if(!re)throw C("Contract document ID not found");return Ee(re),R}catch(R){let re=pi(R);throw re&&fe({...e,services_and_deliverables_ai_warning:Vt(y===h),services_and_deliverables_error_skippable:re.skippable}),R}}case"contract_preview":{if(si)return Promise.resolve({data:{contract_document:{id:P}}});let d=await Fn({employmentId:r,contractDocumentId:P,payload:{signature:o.signature}});return await ai(),d}case"pricing_plan":{if(e.subscription===St)return Promise.resolve({data:{subscription:e.subscription}});if(z.length===0)throw C("No available subscriptions.");if(!e.subscription&&z.length>0)throw C("Please select a subscription plan.");if(W&&[h,me].includes(e.subscription))throw C(`This individual is not eligible for ${Lt[e.subscription]}.`);if(B&&e.subscription!==h)try{await An({employmentId:r}),await ge()}catch(_){if(_?.response?.status!==404)throw _;await ge()}if(e.subscription==N)return ze({employmentId:r,payload:{operation:"downgrade"}});if(e.subscription==me)return ze({employmentId:r,payload:{operation:"upgrade"}});if(e.subscription==h)return B&&c?.contractor_type!=="cor"?We({employmentId:r}):Promise.resolve({data:{subscription:e.subscription}});throw C("invalid selection")}case"contract_origin":{let d=Ci[o.contract_origin]??o.contract_origin,_=o.contract_origin==="provided_by_customer"?"contractor_agreement":"contractor_services_agreement";return await Tn({employmentId:r,contractOrigin:d,templateType:_}),await wn(),{data:{contractOrigin:e.contract_origin}}}case"invoice_schedule":{let d=e.invoice_schedule_preference==="schedule";return gn(d),{data:{invoiceSchedulePreference:e.invoice_schedule_preference}}}case"create_invoice_schedule":{if(!r)throw C("Employment ID is required");if(b?.id){let q=await kn({scheduleId:b.id,values:o});return await tt(),q}let d=await Rn({employmentId:r,values:o}),_=d?.data?.failures;if(_&&_.length>0)throw C("Failed to create invoice schedule");return await tt(),d}case"eligibility_questionnaire":try{if((await Dn({employmentId:r,payload:o}))?.data?.is_blocking)throw Me(!1),Te("pricing_plan"),C("This individual is not eligible for Contractor of Record.");return await We({employmentId:r})}finally{await ge()}default:throw C("Invalid step state")}}g(fi,"onSubmit");let _i=g(()=>{Pe.current?.()},"markContractAsReviewed"),yi=g(()=>{r&&ke(),vn()},"handleNextStep"),Ce=an(async e=>{if(t.currentStep.name==="select_country")return U.handleValidation(e);if(I&&t.currentStep.name==="basic_information"){let n=await m(e,I?.fields,{isPartialValidation:!1});return I?.handleValidation(n)}if(E&&t.currentStep.name==="contract_details"){let n=await m(e,E?.fields,{isPartialValidation:!1});return E?.handleValidation(n)}if(F&&t.currentStep.name==="contract_preview"){let n=await m(e,F?.fields,{isPartialValidation:!0});return F?.handleValidation(n)}if(M&&t.currentStep.name==="pricing_plan"){let n=await m(e,M?.fields,{isPartialValidation:!1});return M?.handleValidation(n)}if(O&&t.currentStep.name==="eligibility_questionnaire"){let n=await m(e,O?.fields,{isPartialValidation:!1});return O?.handleValidation(n)}if(D&&t.currentStep.name==="contract_origin"){let n=await m(e,D?.fields,{isPartialValidation:!1});return D?.handleValidation(n)}if(A&&t.currentStep.name==="invoice_schedule"){let n=await m(e,A?.fields,{isPartialValidation:!1});return A?.handleValidation(n)}if(T&&t.currentStep.name==="create_invoice_schedule"){let n=await m(e,T?.fields,{isPartialValidation:!1});return T?.handleValidation(n)}return null},[t.currentStep.name,U,I,E,F,M,O,D,A,T]),gi=an(async e=>{fe(e),j&&["invoice_schedule","create_invoice_schedule"].includes(t.currentStep.name)&&await Ce(e)},[fe,j,t,Ce]);return{isLoading:ve||Se,fieldValues:l,stepState:t,checkFieldUpdates:gi,markContractAsReviewed:_i,back:Sn,next:yi,goTo:mi,onSubmit:fi,fields:i[t.currentStep.name],meta:{fields:oe.current,fieldsets:ci[t.currentStep.name],presentation:li[t.currentStep.name]},parseFormValues:ct,canSkipAiValidation:l.services_and_deliverables_error_skippable===!0,handleValidation:Ce,initialValues:di,employmentId:r,refetchEmployment:ke,isSubmitting:Le.isPending||je.isPending||_e.isPending||Ge.isPending||$e.isPending||xe.isPending||Ne.isPending||Qe.isPending||He.isPending||Je.isPending||Ue.isPending||Ke.isPending,documentPreviewPdf:be,canInvite:In,isEmploymentReadOnly:k,invitedStatus:En,employment:c,defaultLegalEntity:Pn,needsCompanyVerification:qe?.some(e=>e.type==="verify_company")??!1,needsRemotePaymentsSetup:qe?.some(e=>e.type==="setup_remote_payments")??!1,steps:hn}},"useContractorOnboarding");export{Xi as a};
2
- //# sourceMappingURL=chunk-CQVOBIXJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractorOnboarding/hooks.tsx","../src/common/api/legal-entities.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\nimport omit from 'lodash.omit';\nimport { $TSFixMe, JSFFields, NestedMeta } from '@/src/types/remoteFlows';\nimport {\n CreateContractDocument,\n Employment,\n EmploymentCreateParams,\n} from '@/src/client/types.gen';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n useCreateContractorContractDocument,\n useGetContractDocumentSignatureSchema,\n usePostManageContractorSubscriptions,\n useContractorSubscriptionSchemaField,\n useGetShowContractDocument,\n useSignContractDocument,\n useUpdateUKandSaudiFields,\n useGetIR35File,\n useGetContractDocuments,\n useGetEligibilityQuestionnaire,\n usePostCreateEligibilityQuestionnaire,\n usePostManageContractorCorSubscription,\n useDeleteContractorCorSubscription,\n useCountriesSchemaField,\n CONTRACT_PRODUCT_TITLES,\n useHasCompanySignedContract,\n useCompanyOpenTasks,\n useSetContractOrigin,\n useGetContractOriginSchema,\n useGetInvoiceScheduleSchema,\n useGetCreateInvoiceScheduleSchema,\n useCreateInvoiceSchedule,\n useUpdateInvoiceSchedule,\n useGetExistingInvoiceSchedule,\n} from '@/src/flows/ContractorOnboarding/api';\nimport { useContractorContractDetailsSchema } from '@/src/common/api/contractor-contract-details';\nimport {\n ContractorOnboardingFlowProps,\n ContractorOnboardingHookOptions,\n} from '@/src/flows/ContractorOnboarding/types';\nimport {\n buildSteps,\n calculateProvisionalStartDateDescription,\n reviewStepAllowedEmploymentStatus,\n disabledInviteButtonEmploymentStatus,\n StepKeys,\n getBasicInformationSchemaVersion,\n} from '@/src/flows/ContractorOnboarding/utils';\nimport {\n useCreateEmployment,\n useJSONSchemaForm,\n useUpdateEmployment,\n} from '@/src/flows/Onboarding/api';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { useStepState } from '@/src/flows/useStepState';\nimport { mutationToPromise, isMutationError } from '@/src/lib/mutations';\nimport { createStructuredError, prettifyFormValues } from '@/src/lib/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\nimport {\n contractorStandardProductIdentifier,\n contractorPlusProductIdentifier,\n corProductIdentifier,\n eorProductIdentifier,\n REMOTE_AI_ERROR_SOURCE,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport {\n buildBasicInformationJsfModify,\n buildContractDetailsJsfModify,\n buildContractPreviewJsfModify,\n} from '@/src/flows/ContractorOnboarding/jsfModify';\nimport { transformAiErrorResponse } from '@/src/flows/ContractorOnboarding/utils';\nimport { AiValidationError } from '@/src/flows/ContractorOnboarding/types';\nimport { useUploadFile } from '@/src/common/api/files';\nimport { dataURLtoFile } from '@/src/lib/files';\nimport {\n useEmploymentQuery,\n useBasicInformationQuery,\n} from '@/src/common/api/employment';\nimport { useDefaultLegalEntity } from '@/src/common/api/legal-entities';\n\ntype useContractorOnboardingProps = Omit<\n ContractorOnboardingFlowProps,\n 'render' | 'options'\n> & {\n options: ContractorOnboardingHookOptions;\n};\n\nconst stepToFormSchemaMap: Record<StepKeys, JSONSchemaFormType | null> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_origin: null,\n invoice_schedule: null,\n create_invoice_schedule: null,\n contract_details: null,\n eligibility_questionnaire: null,\n pricing_plan: null,\n contract_preview: null,\n review: null,\n};\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n};\n\nconst contractOriginMapping: Record<string, string> = {\n remote_contract: 'provided_by_remote',\n // Add other mappings as needed\n};\n\n// Inverse mapping: frontend -> backend\nconst contractOriginToBackend: Record<string, string> = {\n provided_by_remote: 'remote_contract',\n // Add other mappings as needed\n};\n\nexport const useContractorOnboarding = ({\n countryCode,\n externalId,\n employmentId,\n skipSteps,\n options,\n initialValues: onboardingInitialValues,\n}: useContractorOnboardingProps) => {\n const excludeProducts = options?.excludeProducts || [];\n\n const onContractReviewedRef = useRef(options?.onContractReviewed);\n\n useEffect(() => {\n onContractReviewedRef.current = options?.onContractReviewed;\n }, [options?.onContractReviewed]);\n\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalContractDocumentId, setInternalContractDocumentId] = useState<\n string | undefined\n >(undefined);\n const fieldsMetaRef = useRef<{\n select_country: NestedMeta;\n basic_information: NestedMeta;\n contract_origin: NestedMeta;\n invoice_schedule: NestedMeta;\n create_invoice_schedule: NestedMeta;\n contract_details: NestedMeta;\n contract_preview: NestedMeta;\n pricing_plan: NestedMeta;\n eligibility_questionnaire: NestedMeta;\n }>({\n select_country: {},\n basic_information: {},\n contract_origin: {},\n invoice_schedule: {},\n create_invoice_schedule: {},\n contract_details: {},\n contract_preview: {},\n pricing_plan: {},\n eligibility_questionnaire: {},\n });\n\n const [selectedProduct, setSelectedProduct] = useState<string | undefined>(\n undefined,\n );\n\n const [includeEligibilityQuestionnaire, setIncludeEligibilityQuestionnaire] =\n useState<boolean>(false);\n\n const [includeContractPreview, setIncludeContractPreview] =\n useState<boolean>(true);\n\n const [includeContractDetails, setIncludeContractDetails] =\n useState<boolean>(true);\n\n const [includeContractOrigin, setIncludeContractOrigin] =\n useState<boolean>(true);\n\n const [includeInvoiceSchedule, setIncludeInvoiceSchedule] =\n useState<boolean>(false);\n\n const [includeCreateInvoiceSchedule, setIncludeCreateInvoiceSchedule] =\n useState<boolean>(false);\n\n const [pendingNavigationStep, setPendingNavigationStep] =\n useState<StepKeys | null>(null);\n\n const { steps, stepsArray } = useMemo(\n () =>\n buildSteps({\n includeSelectCountry: !skipSteps?.includes('select_country'),\n includeContractOrigin: includeContractOrigin,\n includeInvoiceSchedule: includeInvoiceSchedule,\n includeCreateInvoiceSchedule: includeCreateInvoiceSchedule,\n includeEligibilityQuestionnaire: includeEligibilityQuestionnaire,\n includeContractDetails: includeContractDetails,\n includeContractPreview: includeContractPreview,\n }),\n [\n includeContractOrigin,\n includeInvoiceSchedule,\n includeCreateInvoiceSchedule,\n includeEligibilityQuestionnaire,\n includeContractDetails,\n includeContractPreview,\n skipSteps,\n ],\n );\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(steps);\n\n useEffect(() => {\n if (pendingNavigationStep) {\n // Now steps have been updated\n goToStep(pendingNavigationStep);\n setPendingNavigationStep(null);\n }\n }, [pendingNavigationStep, goToStep]);\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmploymentQuery({\n employmentId: internalEmploymentId as string,\n queryParams: { exclude_files: true },\n });\n\n const { data: basicInformation, refetch: refetchBasicInformation } =\n useBasicInformationQuery({\n employmentId: internalEmploymentId as string,\n enabled: !!internalEmploymentId,\n });\n\n const defaultLegalEntity = useDefaultLegalEntity();\n\n const { data: openTasks } = useCompanyOpenTasks({\n options: {\n queryOptions: {\n enabled: stepState.currentStep.name === 'review',\n },\n },\n });\n\n const { status: employmentStatus } = employment || {};\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const invitedStatus: 'invited' | 'not_invited' = useMemo(() => {\n const invitedStatuses = ['invited', 'initiated'];\n const isInvited =\n employmentStatus && invitedStatuses.includes(employmentStatus);\n\n return isInvited ? 'invited' : 'not_invited';\n }, [employmentStatus]);\n\n const createEmploymentMutation = useCreateEmployment();\n const updateEmploymentMutation = useUpdateEmployment(\n internalCountryCode as string,\n options as $TSFixMe, // TODO: done it as its shared between contractor and onboarding flows\n );\n const createContractorContractDocumentMutation =\n useCreateContractorContractDocument();\n const uploadFileMutation = useUploadFile();\n const { mutateAsync: updateUKandSaudiFieldsMutation } =\n useUpdateUKandSaudiFields(\n createContractorContractDocumentMutation,\n uploadFileMutation,\n fieldValues,\n );\n const createEligibilityQuestionnaireMutation =\n usePostCreateEligibilityQuestionnaire();\n const manageContractorCorSubscriptionMutation =\n usePostManageContractorCorSubscription();\n const setContractOriginMutation = useSetContractOrigin();\n const createInvoiceScheduleMutation = useCreateInvoiceSchedule();\n const updateInvoiceScheduleMutation = useUpdateInvoiceSchedule();\n\n const { mutateAsyncOrThrow: updateEmploymentMutationAsync } =\n mutationToPromise(updateEmploymentMutation);\n const signContractDocumentMutation = useSignContractDocument();\n const manageContractorSubscriptionMutation =\n usePostManageContractorSubscriptions();\n const deleteContractorCorSubscriptionMutation =\n useDeleteContractorCorSubscription();\n\n const { mutateAsyncOrThrow: createEmploymentMutationAsync } =\n mutationToPromise(createEmploymentMutation);\n\n const { mutateAsyncOrThrow: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n const { mutateAsyncOrThrow: signContractDocumentMutationAsync } =\n mutationToPromise(signContractDocumentMutation);\n\n const { mutateAsyncOrThrow: manageContractorSubscriptionMutationAsync } =\n mutationToPromise(manageContractorSubscriptionMutation);\n\n const { mutateAsyncOrThrow: createEligibilityQuestionnaireMutationAsync } =\n mutationToPromise(createEligibilityQuestionnaireMutation);\n\n const { mutateAsyncOrThrow: manageContractorCorSubscriptionMutationAsync } =\n mutationToPromise(manageContractorCorSubscriptionMutation);\n\n const { mutateAsyncOrThrow: deleteContractorCorSubscriptionMutationAsync } =\n mutationToPromise(deleteContractorCorSubscriptionMutation);\n\n const { mutateAsyncOrThrow: setContractOriginMutationAsync } =\n mutationToPromise(setContractOriginMutation);\n\n const { mutateAsyncOrThrow: createInvoiceScheduleMutationAsync } =\n mutationToPromise(createInvoiceScheduleMutation);\n\n const { mutateAsyncOrThrow: updateInvoiceScheduleMutationAsync } =\n mutationToPromise(updateInvoiceScheduleMutation);\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (employmentId && employment?.country?.code && !internalCountryCode) {\n setInternalCountryCode(employment.country.code);\n }\n\n const {\n selectCountryForm,\n isLoading: isLoadingCountries,\n countries,\n } = useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n });\n\n const selectedCountry = useMemo(() => {\n return countries?.find((country) => country.value === internalCountryCode);\n }, [countries, internalCountryCode]);\n\n const countryName = useMemo(() => {\n return selectedCountry?.label;\n }, [selectedCountry]);\n\n const isPricingPlanEnabled =\n stepState.currentStep.name === 'pricing_plan' ||\n (Boolean(employmentId) && isEmploymentReadOnly);\n\n const {\n form: selectContractorSubscriptionForm,\n isLoading: isLoadingContractorSubscriptions,\n contractorSubscriptions,\n filteredContractorSubscriptions,\n refetch: refetchContractorSubscriptions,\n isEligibilityQuestionnaireBlocked,\n } = useContractorSubscriptionSchemaField(\n internalEmploymentId as string,\n selectedCountry,\n {\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: isPricingPlanEnabled,\n },\n excludeProducts: excludeProducts,\n jsfModify: options?.jsfModify?.pricing_plan,\n },\n );\n\n const hasEligibilityQuestionnaireSubmitted = useMemo(() => {\n return Boolean(\n contractorSubscriptions?.find(\n (subscription) =>\n subscription.product.identifier === corProductIdentifier,\n )?.eligibility_questionnaire?.submitted_at,\n );\n }, [contractorSubscriptions]);\n\n const shouldIncludeEligibilityQuestionnaire = useMemo(() => {\n if (hasEligibilityQuestionnaireSubmitted) return false;\n return selectedProduct === corProductIdentifier;\n }, [hasEligibilityQuestionnaireSubmitted, selectedProduct]);\n\n const shouldIncludeContractPreview = employment?.contractor_type !== 'cor';\n\n const rawContractOrigin =\n (stepState.currentStep.name === 'contract_origin'\n ? fieldValues.contract_origin\n : undefined) ??\n stepState.values?.contract_origin?.contract_origin ??\n basicInformation?.contract_origin;\n\n const selectedContractOrigin =\n contractOriginMapping[rawContractOrigin] ?? rawContractOrigin;\n\n const isContractProvidedByCustomer =\n selectedProduct === contractorStandardProductIdentifier &&\n selectedContractOrigin === 'provided_by_customer';\n\n useEffect(() => {\n setIncludeContractDetails(!isContractProvidedByCustomer);\n }, [isContractProvidedByCustomer]);\n\n useEffect(() => {\n setIncludeEligibilityQuestionnaire(\n !isContractProvidedByCustomer && shouldIncludeEligibilityQuestionnaire,\n );\n }, [isContractProvidedByCustomer, shouldIncludeEligibilityQuestionnaire]);\n\n useEffect(() => {\n setIncludeContractPreview(\n !isContractProvidedByCustomer && shouldIncludeContractPreview,\n );\n }, [isContractProvidedByCustomer, shouldIncludeContractPreview]);\n\n const eligibilityAnswers = useMemo(() => {\n return contractorSubscriptions?.find(\n (subscription) =>\n subscription.product.identifier === corProductIdentifier,\n )?.eligibility_questionnaire?.responses;\n }, [contractorSubscriptions]);\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'contractor_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n jsonSchemaVersion,\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n jsonSchemaVersion?: number | 'latest';\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n jsonSchemaVersion,\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isIR35FileEnabled = Boolean(\n internalCountryCode === 'GBR' &&\n employmentId &&\n stepState.currentStep.name === 'basic_information',\n );\n\n const { data: ir35File, isLoading: isLoadingIR35File } = useGetIR35File(\n employmentId as string,\n {\n enabled: isIR35FileEnabled,\n },\n );\n\n const { data: contractDocuments, isLoading: isLoadingContractDocuments } =\n useGetContractDocuments(internalEmploymentId as string, {\n enabled: Boolean(internalEmploymentId),\n });\n\n useEffect(() => {\n if (\n contractDocuments &&\n contractDocuments.length > 0 &&\n !internalContractDocumentId\n ) {\n setInternalContractDocumentId(contractDocuments[0].id);\n }\n }, [contractDocuments, internalContractDocumentId]);\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'contractor_basic_information',\n options: {\n jsfModify: buildBasicInformationJsfModify(\n internalCountryCode as string,\n countryName,\n options,\n ),\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n jsonSchemaVersion: getBasicInformationSchemaVersion(options),\n });\n\n const descriptionProvisionalStartDate = useMemo(() => {\n return calculateProvisionalStartDateDescription(\n employment?.basic_information?.provisional_start_date as string,\n fieldValues?.service_duration?.provisional_start_date as string,\n );\n }, [\n employment?.basic_information?.provisional_start_date,\n fieldValues?.service_duration?.provisional_start_date,\n ]);\n\n /**\n * When the user selects COR, the data isn't saved yet in the BE\n * We need to use the internalState to know what has happened\n */\n const selectedPricingPlan = useMemo(() => {\n const subscriptions = {\n standard: contractorStandardProductIdentifier,\n plus: contractorPlusProductIdentifier,\n cor: corProductIdentifier,\n };\n\n // HIGHEST PRIORITY: Current form value (user is actively selecting)\n if (fieldValues.subscription) {\n return fieldValues.subscription;\n }\n\n // SECOND: Previously submitted value in this session\n const subscription = stepState.values?.pricing_plan?.subscription;\n if (subscription && !isEligibilityQuestionnaireBlocked) {\n return subscription;\n }\n\n // THIRD: Backend state (eligibility submitted or employment contractor_type)\n if (\n hasEligibilityQuestionnaireSubmitted &&\n !isEligibilityQuestionnaireBlocked\n ) {\n return corProductIdentifier;\n }\n\n // Fourth: If the eligibility questionnaire is blocked and has been submitted, return the standard product\n if (\n isEligibilityQuestionnaireBlocked &&\n hasEligibilityQuestionnaireSubmitted\n ) {\n return contractorStandardProductIdentifier;\n }\n\n // Fifth: If there are no available subscriptions, return undefined\n const hasAvailableSubscriptions =\n filteredContractorSubscriptions &&\n filteredContractorSubscriptions.length > 0;\n\n if (!hasAvailableSubscriptions) {\n return undefined;\n }\n\n // FALLBACK: Employment contractor_type or default\n return (\n subscriptions[\n employment?.contractor_type as keyof typeof subscriptions\n ] || contractorStandardProductIdentifier\n );\n }, [\n fieldValues,\n stepState.values,\n hasEligibilityQuestionnaireSubmitted,\n employment?.contractor_type,\n isEligibilityQuestionnaireBlocked,\n filteredContractorSubscriptions,\n ]);\n\n useEffect(() => {\n if (selectedPricingPlan && selectedPricingPlan !== selectedProduct) {\n setSelectedProduct(selectedPricingPlan);\n }\n }, [selectedPricingPlan, selectedProduct]);\n\n useEffect(() => {\n setIncludeContractOrigin(\n !skipSteps?.includes('contract_origin') &&\n selectedPricingPlan === contractorStandardProductIdentifier,\n );\n }, [skipSteps, selectedPricingPlan]);\n\n useEffect(() => {\n setIncludeInvoiceSchedule(\n options?.features?.includes('create_invoice_schedule') ?? false,\n );\n }, [options?.features]);\n\n const eligibilityFields = useMemo(() => {\n return {\n ...eligibilityAnswers,\n ...onboardingInitialValues,\n ...stepState.values?.eligibility_questionnaire,\n ...fieldValues,\n };\n }, [\n eligibilityAnswers,\n onboardingInitialValues,\n stepState.values?.eligibility_questionnaire,\n fieldValues,\n ]);\n\n const isEligibilityQuestionnaireEnabled = useMemo(() => {\n return (\n (selectedPricingPlan === corProductIdentifier &&\n stepState.currentStep.name === 'eligibility_questionnaire') ||\n (Boolean(employmentId) &&\n isEmploymentReadOnly &&\n selectedPricingPlan === corProductIdentifier)\n );\n }, [\n selectedPricingPlan,\n stepState.currentStep.name,\n employmentId,\n isEmploymentReadOnly,\n ]);\n\n const {\n data: eligibilityQuestionnaireForm,\n isLoading: isLoadingEligibilityQuestionnaire,\n } = useGetEligibilityQuestionnaire({\n options: {\n queryOptions: {\n enabled: isEligibilityQuestionnaireEnabled,\n },\n jsfModify: options?.jsfModify?.eligibility_questionnaire,\n },\n fieldValues: eligibilityFields,\n });\n\n const isContractorOnboardingDetailsEnabled = Boolean(\n (internalCountryCode &&\n stepState.currentStep.name === 'contract_details') ||\n isEmploymentReadOnly,\n );\n\n const {\n data: contractorOnboardingDetailsForm,\n isLoading: isLoadingContractorOnboardingDetailsForm,\n } = useContractorContractDetailsSchema({\n countryCode: internalCountryCode as string,\n fieldValues: fieldValues,\n employmentId: internalEmploymentId as string,\n options: {\n queryOptions: {\n enabled: isContractorOnboardingDetailsEnabled,\n },\n jsfModify: buildContractDetailsJsfModify(\n options?.jsfModify?.contract_details,\n descriptionProvisionalStartDate,\n selectedPricingPlan,\n fieldValues,\n selectedPricingPlan === corProductIdentifier,\n ),\n },\n });\n\n const isSignatureSchemaEnabled = useMemo(() => {\n return (\n stepState.currentStep.name === 'contract_preview' ||\n (Boolean(employmentId) && isEmploymentReadOnly)\n );\n }, [stepState.currentStep.name, employmentId, isEmploymentReadOnly]);\n\n const { data: signatureSchemaForm } = useGetContractDocumentSignatureSchema({\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isSignatureSchemaEnabled,\n },\n jsfModify: buildContractPreviewJsfModify(options, fieldValues),\n },\n });\n\n const { data: contractOriginForm } = useGetContractOriginSchema({\n fieldValues: fieldValues,\n options: {\n jsfModify: options?.jsfModify?.contract_origin,\n },\n });\n\n const invoiceScheduleForm = useGetInvoiceScheduleSchema({\n enabled:\n includeInvoiceSchedule &&\n stepState.currentStep.name === 'invoice_schedule',\n jsfModify: options?.jsfModify?.invoice_schedule,\n });\n\n const {\n data: existingInvoiceSchedule,\n isLoading: isLoadingInvoiceSchedules,\n refetch: refetchInvoiceSchedule,\n } = useGetExistingInvoiceSchedule({\n employmentId: internalEmploymentId as string,\n options: {\n queryOptions: {\n enabled:\n includeInvoiceSchedule &&\n Boolean(internalEmploymentId) &&\n stepState.currentStep.name === 'invoice_schedule',\n },\n },\n });\n\n const {\n data: createInvoiceScheduleForm,\n isLoading: isLoadingCreateInvoiceScheduleForm,\n } = useGetCreateInvoiceScheduleSchema({\n enabled:\n includeInvoiceSchedule &&\n stepState.currentStep.name === 'create_invoice_schedule',\n employmentId: internalEmploymentId,\n jsfModify: options?.jsfModify?.create_invoice_schedule,\n });\n\n const {\n data: documentPreviewPdf,\n isLoading: isLoadingDocumentPreviewForm,\n refetch: refetchDocumentPreviewForm,\n } = useGetShowContractDocument({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const { hasCompanySignedContract } = useHasCompanySignedContract({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const stepFields: Record<StepKeys, JSFFields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n contract_origin: contractOriginForm?.fields || [],\n invoice_schedule: invoiceScheduleForm?.fields || [],\n create_invoice_schedule: createInvoiceScheduleForm?.fields || [],\n pricing_plan: selectContractorSubscriptionForm?.fields || [],\n eligibility_questionnaire: eligibilityQuestionnaireForm?.fields || [],\n contract_details: contractorOnboardingDetailsForm?.fields || [],\n contract_preview: signatureSchemaForm?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n contractOriginForm?.fields,\n invoiceScheduleForm?.fields,\n createInvoiceScheduleForm?.fields,\n selectContractorSubscriptionForm?.fields,\n contractorOnboardingDetailsForm?.fields,\n signatureSchemaForm?.fields,\n eligibilityQuestionnaireForm?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n StepKeys,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n contract_origin: null,\n invoice_schedule: null,\n create_invoice_schedule: null,\n pricing_plan: null,\n contract_details: contractorOnboardingDetailsForm?.meta['x-jsf-fieldsets'],\n eligibility_questionnaire: null,\n contract_preview: null,\n review: null,\n };\n\n const stepPresentation: Record<\n StepKeys,\n Record<string, unknown> | null | undefined\n > = {\n select_country: selectCountryForm?.meta?.['x-jsf-presentation'],\n basic_information: basicInformationForm?.meta?.['x-jsf-presentation'],\n contract_origin: contractOriginForm?.meta?.['x-jsf-presentation'],\n invoice_schedule: invoiceScheduleForm?.meta?.['x-jsf-presentation'],\n create_invoice_schedule:\n createInvoiceScheduleForm?.meta?.['x-jsf-presentation'],\n pricing_plan:\n selectContractorSubscriptionForm?.meta?.['x-jsf-presentation'],\n eligibility_questionnaire:\n eligibilityQuestionnaireForm?.meta?.['x-jsf-presentation'],\n contract_details:\n contractorOnboardingDetailsForm?.meta?.['x-jsf-presentation'],\n contract_preview: signatureSchemaForm?.meta?.['x-jsf-presentation'],\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n // memoize file conversion to avoid re-converting the file on every render\n // noticed performance issues when not doing memoizing individually\n const convertedIr35File = useMemo(() => {\n if (!ir35File?.content) return null;\n return dataURLtoFile(ir35File.content as unknown as string, ir35File.name);\n }, [ir35File?.content, ir35File?.name]);\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n ir35: employment?.contract_details?.ir_35,\n nationality_status: employment?.contract_details?.nationality,\n ...(convertedIr35File && {\n ir35_sds_file: [convertedIr35File],\n }),\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n onboardingInitialValues,\n employmentBasicInformation,\n employment?.contract_details?.ir_35,\n employment?.contract_details?.nationality,\n convertedIr35File,\n stepFields.basic_information,\n ]);\n\n const contractOriginInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n contract_origin:\n contractOriginMapping[basicInformation?.contract_origin as string] ??\n basicInformation?.contract_origin,\n };\n return getInitialValues(stepFields.contract_origin, initialValues);\n }, [\n stepFields.contract_origin,\n onboardingInitialValues,\n basicInformation?.contract_origin,\n ]);\n\n const invoiceScheduleInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n // If an existing schedule exists, default to 'schedule' preference\n ...(existingInvoiceSchedule && {\n invoice_schedule_preference: 'schedule',\n }),\n };\n return getInitialValues(stepFields.invoice_schedule, initialValues);\n }, [\n stepFields.invoice_schedule,\n onboardingInitialValues,\n existingInvoiceSchedule,\n ]);\n\n const createInvoiceScheduleInitialValues = useMemo(() => {\n // If an existing schedule exists, transform it to form values\n if (existingInvoiceSchedule) {\n const formValues: Record<string, unknown> = {\n currency: existingInvoiceSchedule.currency,\n periodicity: existingInvoiceSchedule.periodicity,\n start_date: existingInvoiceSchedule.start_date,\n number: existingInvoiceSchedule.number,\n note: existingInvoiceSchedule.note,\n nr_occurrences: existingInvoiceSchedule.nr_occurrences,\n };\n\n existingInvoiceSchedule.items?.forEach((item, index: number) => {\n const itemNumber = index + 1;\n formValues[`item_${itemNumber}_description`] = item.description;\n formValues[`item_${itemNumber}_amount`] = item.amount;\n });\n\n return getInitialValues(stepFields.create_invoice_schedule, formValues);\n }\n\n const initialValues = {\n ...onboardingInitialValues,\n };\n return getInitialValues(stepFields.create_invoice_schedule, initialValues);\n }, [\n stepFields.create_invoice_schedule,\n onboardingInitialValues,\n existingInvoiceSchedule,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const hardcodedValues = {\n service_duration: {\n provisional_start_date:\n employmentBasicInformation.provisional_start_date,\n },\n };\n const initialValues = {\n ...hardcodedValues,\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n employmentBasicInformation,\n ]);\n\n const contractPreviewInitialValues = useMemo(() => {\n const signature = documentPreviewPdf?.contract_document?.signatories?.find(\n (signatory) => signatory.type === 'company',\n );\n const initialValues = {\n ...onboardingInitialValues,\n signature: signature?.signature,\n };\n\n return getInitialValues(stepFields.contract_preview, initialValues);\n }, [\n stepFields.contract_preview,\n onboardingInitialValues,\n documentPreviewPdf,\n ]);\n\n const pricingPlanInitialValues = useMemo(() => {\n const preselectedPricingPlan = {\n subscription: selectedPricingPlan,\n };\n const initialValues = {\n ...preselectedPricingPlan,\n ...onboardingInitialValues,\n };\n\n return getInitialValues(stepFields.pricing_plan, initialValues);\n }, [stepFields.pricing_plan, onboardingInitialValues, selectedPricingPlan]);\n\n const eligibilityQuestionnaireInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...eligibilityAnswers,\n };\n return getInitialValues(\n stepFields.eligibility_questionnaire,\n initialValues,\n );\n }, [\n stepFields.eligibility_questionnaire,\n onboardingInitialValues,\n eligibilityAnswers,\n ]);\n\n const initialValues = useMemo(() => {\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_origin: contractOriginInitialValues,\n invoice_schedule: invoiceScheduleInitialValues,\n create_invoice_schedule: createInvoiceScheduleInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractOriginInitialValues,\n invoiceScheduleInitialValues,\n createInvoiceScheduleInitialValues,\n contractDetailsInitialValues,\n contractPreviewInitialValues,\n pricingPlanInitialValues,\n eligibilityQuestionnaireInitialValues,\n ]);\n\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId &&\n isEmploymentReadOnly &&\n stepState.currentStep.name !== 'review',\n );\n\n const initialLoading =\n isLoadingCountries ||\n isLoadingBasicInformationForm ||\n isLoadingEmployment ||\n isLoadingContractorOnboardingDetailsForm ||\n isLoadingContractorSubscriptions ||\n isLoadingDocumentPreviewForm ||\n isLoadingIR35File ||\n isLoadingContractDocuments ||\n isLoadingEligibilityQuestionnaire ||\n isLoadingCreateInvoiceScheduleForm ||\n isLoadingInvoiceSchedules;\n\n const isNavigatingToReview = useMemo(() => {\n const isCor = employment?.contractor_type === 'cor';\n const hasContractPreviewFields =\n isCor || stepFields.contract_preview.length > 0;\n\n return Boolean(\n shouldHandleReadOnlyEmployment &&\n !initialLoading &&\n Boolean(internalContractDocumentId) &&\n stepFields.basic_information.length > 0 &&\n stepFields.contract_details.length > 0 &&\n hasContractPreviewFields,\n );\n }, [\n shouldHandleReadOnlyEmployment,\n initialLoading,\n internalContractDocumentId,\n stepFields.basic_information.length,\n stepFields.contract_details.length,\n stepFields.contract_preview.length,\n employment?.contractor_type,\n ]);\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n { skipMoneyConversion: true },\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n { skipMoneyConversion: true },\n ),\n contract_origin: {},\n invoice_schedule: {},\n create_invoice_schedule: {},\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n { skipMoneyConversion: true },\n ),\n contract_preview: prettifyFormValues(\n contractPreviewInitialValues,\n stepFields.contract_preview,\n { skipMoneyConversion: true },\n ),\n pricing_plan: prettifyFormValues(\n pricingPlanInitialValues,\n stepFields.pricing_plan,\n { skipMoneyConversion: true },\n ),\n eligibility_questionnaire: prettifyFormValues(\n eligibilityQuestionnaireInitialValues,\n stepFields.eligibility_questionnaire,\n { skipMoneyConversion: true },\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_origin: {},\n invoice_schedule: {},\n create_invoice_schedule: {},\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n review: {},\n });\n goToStep('review');\n }\n }, [\n isNavigatingToReview,\n goToStep,\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n setStepValues,\n stepFields.select_country,\n stepFields.basic_information,\n stepFields.contract_details,\n stepFields.pricing_plan,\n pricingPlanInitialValues,\n stepFields.contract_preview,\n contractPreviewInitialValues,\n stepFields.eligibility_questionnaire,\n eligibilityQuestionnaireInitialValues,\n ]);\n\n const goTo = (step: StepKeys) => {\n goToStep(step);\n };\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return await parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n return await parseJSFToValidate(values, signatureSchemaForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n return await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n eligibilityQuestionnaireForm &&\n stepState.currentStep.name === 'eligibility_questionnaire'\n ) {\n return await parseJSFToValidate(\n values,\n eligibilityQuestionnaireForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n contractOriginForm &&\n stepState.currentStep.name === 'contract_origin'\n ) {\n return await parseJSFToValidate(values, contractOriginForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n invoiceScheduleForm &&\n stepState.currentStep.name === 'invoice_schedule'\n ) {\n return await parseJSFToValidate(values, invoiceScheduleForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n createInvoiceScheduleForm &&\n stepState.currentStep.name === 'create_invoice_schedule'\n ) {\n return await parseJSFToValidate(\n values,\n createInvoiceScheduleForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n return {};\n };\n\n /**\n * Extracts AI validation error from the error response\n * @param error - The error object from the API call\n * @returns The AI validation error if found, null otherwise\n */\n const extractAiValidationError = (\n error: unknown,\n ): AiValidationError | null => {\n if (!isMutationError(error)) {\n return null;\n }\n\n const rawError = error.normalizedErrors.services_and_deliverables;\n\n // The backend's normalize_errors wraps non-list values in an array,\n // so the AI validation error object arrives as a single-element array.\n const servicesAndDeliverablesError = (\n Array.isArray(rawError) ? rawError[0] : rawError\n ) as\n | {\n error: string[];\n source: string;\n skippable: boolean;\n }\n | undefined;\n\n if (servicesAndDeliverablesError?.source === REMOTE_AI_ERROR_SOURCE) {\n return {\n error: servicesAndDeliverablesError.error,\n source: servicesAndDeliverablesError.source,\n skippable: servicesAndDeliverablesError.skippable,\n };\n }\n return null;\n };\n\n async function onSubmit(values: FieldValues) {\n const currentStepName = stepState.currentStep.name;\n const parsedValues = await parseFormValues(values);\n\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(parsedValues, stepFields[currentStepName]);\n }\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n const basicInformationPayload: EmploymentCreateParams = {\n basic_information: basicInformationParsedValues,\n type: 'contractor',\n country_code: internalCountryCode,\n external_id: externalId,\n };\n const response = await createEmploymentMutationAsync(\n basicInformationPayload,\n );\n const employmentId = response?.data?.employment?.id;\n if (!employmentId) {\n throw createStructuredError('Employment ID not found');\n }\n\n await updateUKandSaudiFieldsMutation({\n employmentId: employmentId as string,\n });\n\n // Only update state (triggers queries with fully consistent backend state) if not caused a bug\n // if one of the updateUKandSaudiFieldsMutation fails with a 422 for example\n setInternalEmploymentId(employmentId);\n\n return response;\n } else if (internalEmploymentId) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n\n await updateUKandSaudiFieldsMutation({\n employmentId: internalEmploymentId,\n });\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: basicInformationParsedValues,\n });\n }\n\n return;\n }\n case 'contract_details': {\n const {\n services_and_deliverables_ai_warning:\n _servicesAndDeliverablesAiWarning,\n services_and_deliverables_error_skippable:\n _servicesAndDeliverablesErrorSkippable,\n ...contractDetailsData\n } = parsedValues;\n\n const shouldSkipAiChecks =\n fieldValues.services_and_deliverables_error_skippable === true;\n const payload: CreateContractDocument = {\n contract_document: contractDetailsData,\n skip_ai_checks: shouldSkipAiChecks,\n };\n\n try {\n const response = await createContractorContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n payload,\n });\n const contractDocumentId = response?.data?.contract_document?.id;\n if (!contractDocumentId) {\n throw createStructuredError('Contract document ID not found');\n }\n setInternalContractDocumentId(contractDocumentId);\n\n return response;\n } catch (error) {\n const aiError = extractAiValidationError(error);\n if (aiError) {\n const isContractorOfRecord =\n selectedPricingPlan === corProductIdentifier;\n setFieldValues({\n ...values,\n services_and_deliverables_ai_warning:\n transformAiErrorResponse(isContractorOfRecord),\n services_and_deliverables_error_skippable: aiError.skippable,\n });\n }\n\n throw error;\n }\n }\n\n case 'contract_preview': {\n if (hasCompanySignedContract) {\n return Promise.resolve({\n data: {\n contract_document: {\n id: internalContractDocumentId,\n },\n },\n });\n }\n const response = await signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: parsedValues.signature,\n },\n });\n await refetchDocumentPreviewForm();\n return response;\n }\n case 'pricing_plan': {\n if (values.subscription === eorProductIdentifier) {\n // EOR selection - no API call needed at this step\n return Promise.resolve({\n data: {\n subscription: values.subscription,\n },\n });\n }\n // If there are no available contractor subscriptions, throw an error\n if (filteredContractorSubscriptions.length === 0) {\n throw createStructuredError('No available subscriptions.');\n }\n\n if (\n !values.subscription &&\n filteredContractorSubscriptions.length > 0\n ) {\n throw createStructuredError('Please select a subscription plan.');\n }\n\n const blockedProductsEligibility = [\n corProductIdentifier,\n contractorPlusProductIdentifier,\n ];\n\n if (\n isEligibilityQuestionnaireBlocked &&\n blockedProductsEligibility.includes(values.subscription)\n ) {\n throw createStructuredError(\n `This individual is not eligible for ${\n CONTRACT_PRODUCT_TITLES[\n values.subscription as keyof typeof CONTRACT_PRODUCT_TITLES\n ]\n }.`,\n );\n }\n\n if (\n hasEligibilityQuestionnaireSubmitted &&\n values.subscription !== corProductIdentifier\n ) {\n try {\n await deleteContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n await refetchContractorSubscriptions();\n } catch (error) {\n if ((error as $TSFixMe)?.response?.status !== 404) {\n throw error;\n }\n // Still refetch to update the UI state\n await refetchContractorSubscriptions();\n }\n }\n\n if (values.subscription == contractorStandardProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'downgrade',\n },\n });\n } else if (values.subscription == contractorPlusProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'upgrade',\n },\n });\n } else if (values.subscription == corProductIdentifier) {\n if (\n hasEligibilityQuestionnaireSubmitted &&\n employment?.contractor_type !== 'cor'\n ) {\n return manageContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n } else {\n return Promise.resolve({\n data: { subscription: values.subscription },\n });\n }\n }\n\n throw createStructuredError('invalid selection');\n }\n\n case 'contract_origin': {\n // provided_by_remote -> remote_contract to maintain retrocompatibility with the backend\n // provided_by_remote doesn't exist in the backend, so we need to map it to remote_contract\n const contractOrigin: $TSFixMe =\n contractOriginToBackend[parsedValues.contract_origin] ??\n parsedValues.contract_origin;\n const templateType =\n parsedValues.contract_origin === 'provided_by_customer'\n ? 'contractor_agreement'\n : 'contractor_services_agreement';\n await setContractOriginMutationAsync({\n employmentId: internalEmploymentId as string,\n contractOrigin,\n templateType,\n });\n // Refetch basic information to get the updated contract_origin from server\n await refetchBasicInformation();\n\n return {\n data: { contractOrigin: values.contract_origin },\n };\n }\n\n case 'invoice_schedule': {\n // Show create_invoice_schedule step only when user selects 'schedule'\n const shouldShowCreateStep =\n values.invoice_schedule_preference === 'schedule';\n setIncludeCreateInvoiceSchedule(shouldShowCreateStep);\n\n return {\n data: {\n invoiceSchedulePreference: values.invoice_schedule_preference,\n },\n };\n }\n\n case 'create_invoice_schedule': {\n if (!internalEmploymentId) {\n throw createStructuredError('Employment ID is required');\n }\n\n // Use update if we have an existing schedule, otherwise create\n if (existingInvoiceSchedule?.id) {\n const response = await updateInvoiceScheduleMutationAsync({\n scheduleId: existingInvoiceSchedule.id,\n values: parsedValues,\n });\n await refetchInvoiceSchedule();\n return response;\n }\n\n const response = await createInvoiceScheduleMutationAsync({\n employmentId: internalEmploymentId,\n values: parsedValues,\n });\n\n const failures = response?.data?.failures;\n if (failures && failures.length > 0) {\n throw createStructuredError('Failed to create invoice schedule');\n }\n\n await refetchInvoiceSchedule();\n return response;\n }\n\n case 'eligibility_questionnaire': {\n try {\n const response = await createEligibilityQuestionnaireMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: parsedValues,\n });\n\n const isEligibilityQuestionnaireBlocked = response?.data?.is_blocking;\n\n if (isEligibilityQuestionnaireBlocked) {\n setIncludeEligibilityQuestionnaire(false);\n setPendingNavigationStep('pricing_plan');\n throw createStructuredError(\n 'This individual is not eligible for Contractor of Record.',\n );\n }\n\n return await manageContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n } finally {\n // Always refetch to keep state in sync, even on error\n await refetchContractorSubscriptions();\n }\n }\n\n default: {\n throw createStructuredError('Invalid step state');\n }\n }\n }\n\n const markContractAsReviewed = () => {\n // Notify parent to sync form state\n onContractReviewedRef.current?.();\n };\n\n const handleNextStep = () => {\n if (internalEmploymentId) {\n refetchEmployment();\n }\n nextStep();\n };\n\n const handleValidation = useCallback(\n async (values: FieldValues): Promise<ValidationResult | null> => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractorOnboardingDetailsForm?.handleValidation(parsedValues);\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n signatureSchemaForm?.fields,\n { isPartialValidation: true },\n );\n return signatureSchemaForm?.handleValidation(parsedValues);\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n { isPartialValidation: false },\n );\n return selectContractorSubscriptionForm?.handleValidation(parsedValues);\n }\n\n if (\n eligibilityQuestionnaireForm &&\n stepState.currentStep.name === 'eligibility_questionnaire'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n eligibilityQuestionnaireForm?.fields,\n { isPartialValidation: false },\n );\n return eligibilityQuestionnaireForm?.handleValidation(parsedValues);\n }\n\n if (\n contractOriginForm &&\n stepState.currentStep.name === 'contract_origin'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractOriginForm?.fields,\n { isPartialValidation: false },\n );\n return contractOriginForm?.handleValidation(parsedValues);\n }\n\n if (\n invoiceScheduleForm &&\n stepState.currentStep.name === 'invoice_schedule'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n invoiceScheduleForm?.fields,\n { isPartialValidation: false },\n );\n return invoiceScheduleForm?.handleValidation(parsedValues);\n }\n\n if (\n createInvoiceScheduleForm &&\n stepState.currentStep.name === 'create_invoice_schedule'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n createInvoiceScheduleForm?.fields,\n { isPartialValidation: false },\n );\n return createInvoiceScheduleForm?.handleValidation(parsedValues);\n }\n\n return null;\n },\n [\n stepState.currentStep.name,\n selectCountryForm,\n basicInformationForm,\n contractorOnboardingDetailsForm,\n signatureSchemaForm,\n selectContractorSubscriptionForm,\n eligibilityQuestionnaireForm,\n contractOriginForm,\n invoiceScheduleForm,\n createInvoiceScheduleForm,\n ],\n );\n\n const checkFieldUpdates = useCallback(\n async (values: FieldValues) => {\n setFieldValues(values);\n // new steps or refactor ones should rely on json-schema-form-mutability\n // instead of passing fieldValues\n const stepsUsingHandleValidation = [\n 'invoice_schedule',\n 'create_invoice_schedule',\n ];\n\n if (\n includeInvoiceSchedule &&\n stepsUsingHandleValidation.includes(stepState.currentStep.name)\n ) {\n await handleValidation(values);\n }\n },\n [setFieldValues, includeInvoiceSchedule, stepState, handleValidation],\n );\n\n const isLoading = initialLoading || shouldHandleReadOnlyEmployment;\n\n return {\n /**\n * Loading state indicating if the flow is loading data\n */\n isLoading,\n\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates,\n\n /**\n * Function to mark the contract as reviewed\n * @param values - New form values to check\n * @returns {boolean}\n */\n markContractAsReviewed,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back: previousStep,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next: handleNextStep,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo: goTo,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n presentation: stepPresentation[stepState.currentStep.name],\n },\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Indicates whether AI validation errors can be skipped (user can continue at their own risk).\n * True when there's a skippable AI validation error on services_and_deliverables field.\n * @returns {boolean}\n */\n canSkipAiValidation:\n fieldValues.services_and_deliverables_error_skippable === true,\n\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation,\n\n /**\n * Initial form values\n */\n initialValues,\n\n /**\n * Employment id\n */\n employmentId: internalEmploymentId,\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment: refetchEmployment,\n\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n updateEmploymentMutation.isPending ||\n createContractorContractDocumentMutation.isPending ||\n signContractDocumentMutation.isPending ||\n manageContractorSubscriptionMutation.isPending ||\n uploadFileMutation.isPending ||\n createEligibilityQuestionnaireMutation.isPending ||\n manageContractorCorSubscriptionMutation.isPending ||\n deleteContractorCorSubscriptionMutation.isPending ||\n setContractOriginMutation.isPending ||\n createInvoiceScheduleMutation.isPending ||\n updateInvoiceScheduleMutation.isPending,\n\n /**\n * Document preview PDF data\n */\n documentPreviewPdf,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n /**\n * let's the user know if the employment is invited or not\n * @returns {'invited' | 'not_invited'}\n */\n invitedStatus,\n\n /**\n * Employment data\n * @returns {Employment}\n */\n employment,\n\n /**\n * Default legal entity\n * @returns {CompanyLegalEntity}\n */\n defaultLegalEntity,\n\n /**\n * Whether the company needs to complete KYB verification before contractors can be paid.\n * Use this to show a company verification nudge banner on the review step.\n */\n needsCompanyVerification:\n openTasks?.some((a) => a.type === 'verify_company') ?? false,\n\n /**\n * Whether the company needs to set up Remote Payments.\n * Use this to show a Remote Payments setup nudge banner on the review step.\n */\n needsRemotePaymentsSetup:\n openTasks?.some((a) => a.type === 'setup_remote_payments') ?? false,\n\n /**\n * Steps array\n * @returns {Array<{name: string, index: number, visible: boolean, label: string}>}\n */\n steps: stepsArray,\n };\n};\n","import { useQuery } from '@tanstack/react-query';\nimport {\n getV1CompaniesCompanyIdLegalEntities,\n CompanyLegalEntity,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { useClient } from '@/src/context';\nimport { useIdentity } from '@/src/common/api/identity';\nimport { hasCompany } from '@/src/common/api/companies';\n\n/**\n * Hook to get the legal entities for a company\n * @param companyId - The company ID\n * @returns The legal entities\n */\nexport const useLegalEntities = () => {\n const { client } = useClient();\n const { data: identity } = useIdentity();\n const companyId = hasCompany(identity) ? (identity?.company?.id ?? '') : '';\n\n return useQuery({\n queryKey: ['legal-entities', companyId],\n queryFn: () =>\n getV1CompaniesCompanyIdLegalEntities({\n client: client as Client,\n path: {\n company_id: companyId,\n },\n query: {\n page_size: 100,\n },\n }),\n select: (data) => data.data?.data?.legal_entities,\n enabled: !!companyId,\n });\n};\n\nexport const useDefaultLegalEntity = () => {\n const { data: legalEntities } = useLegalEntities();\n return legalEntities?.find(\n (legalEntity: CompanyLegalEntity) => legalEntity.is_default,\n );\n};\n"],"mappings":"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","names":["useCallback","useEffect","useMemo","useRef","useState","omit","useQuery","useLegalEntities","__name","client","useClient","identity","useIdentity","companyId","hasCompany","useQuery","getV1CompaniesCompanyIdLegalEntities","data","useDefaultLegalEntity","legalEntities","legalEntity","stepToFormSchemaMap","jsonSchemaToEmployment","contractOriginMapping","contractOriginToBackend","useContractorOnboarding","__name","countryCode","externalId","employmentId","skipSteps","options","onboardingInitialValues","excludeProducts","onContractReviewedRef","useRef","useEffect","internalCountryCode","setInternalCountryCode","useState","internalEmploymentId","setInternalEmploymentId","internalContractDocumentId","setInternalContractDocumentId","fieldsMetaRef","selectedProduct","setSelectedProduct","includeEligibilityQuestionnaire","setIncludeEligibilityQuestionnaire","includeContractPreview","setIncludeContractPreview","includeContractDetails","setIncludeContractDetails","includeContractOrigin","setIncludeContractOrigin","includeInvoiceSchedule","setIncludeInvoiceSchedule","includeCreateInvoiceSchedule","setIncludeCreateInvoiceSchedule","pendingNavigationStep","setPendingNavigationStep","steps","stepsArray","useMemo","buildSteps","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmploymentQuery","basicInformation","refetchBasicInformation","useBasicInformationQuery","defaultLegalEntity","useDefaultLegalEntity","openTasks","useCompanyOpenTasks","employmentStatus","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","invitedStatus","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","createContractorContractDocumentMutation","useCreateContractorContractDocument","uploadFileMutation","useUploadFile","updateUKandSaudiFieldsMutation","useUpdateUKandSaudiFields","createEligibilityQuestionnaireMutation","usePostCreateEligibilityQuestionnaire","manageContractorCorSubscriptionMutation","usePostManageContractorCorSubscription","setContractOriginMutation","useSetContractOrigin","createInvoiceScheduleMutation","useCreateInvoiceSchedule","updateInvoiceScheduleMutation","useUpdateInvoiceSchedule","updateEmploymentMutationAsync","mutationToPromise","signContractDocumentMutation","useSignContractDocument","manageContractorSubscriptionMutation","usePostManageContractorSubscriptions","deleteContractorCorSubscriptionMutation","useDeleteContractorCorSubscription","createEmploymentMutationAsync","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","manageContractorSubscriptionMutationAsync","createEligibilityQuestionnaireMutationAsync","manageContractorCorSubscriptionMutationAsync","deleteContractorCorSubscriptionMutationAsync","setContractOriginMutationAsync","createInvoiceScheduleMutationAsync","updateInvoiceScheduleMutationAsync","selectCountryForm","isLoadingCountries","countries","useCountriesSchemaField","selectedCountry","country","countryName","isPricingPlanEnabled","selectContractorSubscriptionForm","isLoadingContractorSubscriptions","contractorSubscriptions","filteredContractorSubscriptions","refetchContractorSubscriptions","isEligibilityQuestionnaireBlocked","useContractorSubscriptionSchemaField","hasEligibilityQuestionnaireSubmitted","subscription","corProductIdentifier","shouldIncludeEligibilityQuestionnaire","shouldIncludeContractPreview","rawContractOrigin","selectedContractOrigin","isContractProvidedByCustomer","contractorStandardProductIdentifier","eligibilityAnswers","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","jsonSchemaVersion","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isIR35FileEnabled","ir35File","isLoadingIR35File","useGetIR35File","contractDocuments","isLoadingContractDocuments","useGetContractDocuments","basicInformationForm","isLoadingBasicInformationForm","buildBasicInformationJsfModify","getBasicInformationSchemaVersion","descriptionProvisionalStartDate","calculateProvisionalStartDateDescription","selectedPricingPlan","subscriptions","contractorPlusProductIdentifier","eligibilityFields","isEligibilityQuestionnaireEnabled","eligibilityQuestionnaireForm","isLoadingEligibilityQuestionnaire","useGetEligibilityQuestionnaire","isContractorOnboardingDetailsEnabled","contractorOnboardingDetailsForm","isLoadingContractorOnboardingDetailsForm","useContractorContractDetailsSchema","buildContractDetailsJsfModify","isSignatureSchemaEnabled","signatureSchemaForm","useGetContractDocumentSignatureSchema","buildContractPreviewJsfModify","contractOriginForm","useGetContractOriginSchema","invoiceScheduleForm","useGetInvoiceScheduleSchema","existingInvoiceSchedule","isLoadingInvoiceSchedules","refetchInvoiceSchedule","useGetExistingInvoiceSchedule","createInvoiceScheduleForm","isLoadingCreateInvoiceScheduleForm","useGetCreateInvoiceScheduleSchema","documentPreviewPdf","isLoadingDocumentPreviewForm","refetchDocumentPreviewForm","useGetShowContractDocument","hasCompanySignedContract","useHasCompanySignedContract","stepFields","stepFieldsWithFlatFieldsets","stepPresentation","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","convertedIr35File","dataURLtoFile","basicInformationInitialValues","initialValues","contractOriginInitialValues","invoiceScheduleInitialValues","createInvoiceScheduleInitialValues","formValues","item","index","itemNumber","contractDetailsInitialValues","contractPreviewInitialValues","signature","signatory","pricingPlanInitialValues","eligibilityQuestionnaireInitialValues","shouldHandleReadOnlyEmployment","initialLoading","isNavigatingToReview","hasContractPreviewFields","prettifyFormValues","goTo","step","parseFormValues","values","parseJSFToValidate","extractAiValidationError","error","isMutationError","rawError","servicesAndDeliverablesError","REMOTE_AI_ERROR_SOURCE","onSubmit","currentStepName","parsedValues","isEmploymentNotLoaded","hasChangedCountry","basicInformationPayload","omit","response","createStructuredError","basicInformationParsedValues","_servicesAndDeliverablesAiWarning","_servicesAndDeliverablesErrorSkippable","contractDetailsData","shouldSkipAiChecks","payload","contractDocumentId","aiError","transformAiErrorResponse","eorProductIdentifier","CONTRACT_PRODUCT_TITLES","contractOrigin","templateType","shouldShowCreateStep","failures","markContractAsReviewed","handleNextStep","handleValidation","useCallback","checkFieldUpdates","a"]}
@@ -1,2 +0,0 @@
1
- import{a as V}from"./chunk-WGDZTF7Y.js";import{n as X}from"./chunk-KPJ5YKXS.js";import{a as L}from"./chunk-A7U3KJIP.js";import{c as A,n as U}from"./chunk-AUPAAQUT.js";import{e as G,f as N,g as D}from"./chunk-C4HFMTSB.js";import{b as J}from"./chunk-H2O4CVKF.js";import{a as n,b as u,c as ke}from"./chunk-P37U34EQ.js";var _=u((Fn,z)=>{"use strict";function Me(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}n(Me,"isObject");z.exports=Me});var Q=u((Mn,K)=>{"use strict";var Ne=typeof global=="object"&&global&&global.Object===Object&&global;K.exports=Ne});var $=u((Nn,Y)=>{"use strict";var De=Q(),Le=typeof self=="object"&&self&&self.Object===Object&&self,_e=De||Le||Function("return this")();Y.exports=_e});var ee=u((Dn,Z)=>{"use strict";var $e=$(),He=n(function(){return $e.Date.now()},"now");Z.exports=He});var te=u((_n,ne)=>{"use strict";var We=/\s/;function Be(e){for(var t=e.length;t--&&We.test(e.charAt(t)););return t}n(Be,"trimmedEndIndex");ne.exports=Be});var oe=u((Hn,re)=>{"use strict";var Ae=te(),Ge=/^\s+/;function Je(e){return e&&e.slice(0,Ae(e)+1).replace(Ge,"")}n(Je,"baseTrim");re.exports=Je});var H=u((Bn,ie)=>{"use strict";var Ue=$(),Ve=Ue.Symbol;ie.exports=Ve});var ue=u((An,ce)=>{"use strict";var se=H(),ae=Object.prototype,Xe=ae.hasOwnProperty,ze=ae.toString,R=se?se.toStringTag:void 0;function Ke(e){var t=Xe.call(e,R),r=e[R];try{e[R]=void 0;var o=!0}catch{}var s=ze.call(e);return o&&(t?e[R]=r:delete e[R]),s}n(Ke,"getRawTag");ce.exports=Ke});var fe=u((Jn,le)=>{"use strict";var Qe=Object.prototype,Ye=Qe.toString;function Ze(e){return Ye.call(e)}n(Ze,"objectToString");le.exports=Ze});var ge=u((Vn,pe)=>{"use strict";var de=H(),en=ue(),nn=fe(),tn="[object Null]",rn="[object Undefined]",me=de?de.toStringTag:void 0;function on(e){return e==null?e===void 0?rn:tn:me&&me in Object(e)?en(e):nn(e)}n(on,"baseGetTag");pe.exports=on});var be=u((zn,ve)=>{"use strict";function sn(e){return e!=null&&typeof e=="object"}n(sn,"isObjectLike");ve.exports=sn});var ye=u((Qn,Ce)=>{"use strict";var an=ge(),cn=be(),un="[object Symbol]";function ln(e){return typeof e=="symbol"||cn(e)&&an(e)==un}n(ln,"isSymbol");Ce.exports=ln});var Se=u((Zn,xe)=>{"use strict";var fn=oe(),he=_(),dn=ye(),Te=NaN,mn=/^[-+]0x[0-9a-f]+$/i,pn=/^0b[01]+$/i,gn=/^0o[0-7]+$/i,vn=parseInt;function bn(e){if(typeof e=="number")return e;if(dn(e))return Te;if(he(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=he(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=fn(e);var r=pn.test(e);return r||gn.test(e)?vn(e.slice(2),r?2:8):mn.test(e)?Te:+e}n(bn,"toNumber");xe.exports=bn});var Ee=u((nt,Oe)=>{"use strict";var Cn=_(),W=ee(),je=Se(),yn="Expected a function",hn=Math.max,Tn=Math.min;function xn(e,t,r){var o,s,p,l,a,f,h=0,d=!1,g=!1,j=!0;if(typeof e!="function")throw new TypeError(yn);t=je(t)||0,Cn(r)&&(d=!!r.leading,g="maxWait"in r,p=g?hn(je(r.maxWait)||0,t):p,j="trailing"in r?!!r.trailing:j);function m(i){var v=o,T=s;return o=s=void 0,h=i,l=e.apply(T,v),l}n(m,"invokeFunc");function P(i){return h=i,a=setTimeout(x,t),d?m(i):l}n(P,"leadingEdge");function I(i){var v=i-f,T=i-h,w=t-v;return g?Tn(w,p-T):w}n(I,"remainingWait");function O(i){var v=i-f,T=i-h;return f===void 0||v>=t||v<0||g&&T>=p}n(O,"shouldInvoke");function x(){var i=W();if(O(i))return E(i);a=setTimeout(x,I(i))}n(x,"timerExpired");function E(i){return a=void 0,j&&o?m(i):(o=s=void 0,l)}n(E,"trailingEdge");function b(){a!==void 0&&clearTimeout(a),h=0,o=f=s=a=void 0}n(b,"cancel");function q(){return a===void 0?l:E(W())}n(q,"flush");function S(){var i=W(),v=O(i);if(o=arguments,s=this,f=i,v){if(a===void 0)return P(f);if(g)return clearTimeout(a),a=setTimeout(x,t),m(f)}return a===void 0&&(a=setTimeout(x,t)),l}return n(S,"debounced"),S.cancel=b,S.flush=q,S}n(xn,"debounce");Oe.exports=xn});import{useState as On,useCallback as En,useEffect as Ie,useRef as Rn}from"react";import Pn from"lodash.omit";var Pe=ke(Ee(),1);import{useCallback as Sn,useEffect as jn,useRef as Re}from"react";function B(e,t){let r=Re(e);jn(()=>{r.current=e},[e]);let o=Re((0,Pe.default)(s=>{r.current(s)},t)).current;return Sn(s=>{o(s)},[o])}n(B,"useDebounce");import{Fragment as wn,jsx as y,jsxs as qe}from"react/jsx-runtime";var In=n(({description:e,helpCenter:t,toggle:r,className:o})=>qe("span",{className:o,children:[y(U,{as:"span",helpCenter:t,children:e})," ",r]}),"DescriptionWithConversion"),qn=n(({showConversion:e,targetCurrency:t,className:r,onClick:o})=>{let{components:s}=J(),p=e?`Hide ${t} conversion`:`Show ${t} conversion`,l=s?.button;if(!l)throw new Error("Button component not found");return y(l,{className:r,"data-type":"inline",onClick:o,children:p})},"ConversionToggle"),bt=n(({sourceCurrency:e,targetCurrency:t,mainFieldName:r,conversionFieldName:o,conversionProperties:s,classNamePrefix:p,description:l,conversionType:a="spread",meta:f,splitDescription:h=!1,...d})=>{let[g,j]=On(!1),{setValue:m,watch:P}=A(),I=P(r||d.name),O=Rn(!0),x=e&&t&&e!==t,{mutateAsync:E}=X({type:a}),b=`${d.name}_converted`;Ie(()=>{m(b,r||d.name)},[m,r,d.name,b]),Ie(()=>{if(O.current){O.current=!1;return}m(o,"")},[e,o,m]);let q=En(async(c,C,k)=>{if(!(!c||isNaN(c)||c<=0))return E({source_currency:C,target_currency:k,amount:c})},[E]),S=B(async c=>{let C=N(c),M=1/((await q(C,t,e))?.data?.data.conversion_data?.exchange_rate??1),Fe=G(Number(C)*M);m(o,D(Fe))},500),i=B(async c=>{let C=N(c),M=(await q(C,t,e))?.data?.data.conversion_data.target_amount;m(r||d.name,D(M))},500),v=n(c=>{m(b,r||d.name),g&&S(c.target.value)},"handleMainFieldChange"),T=n(c=>{m(b,o),i(c.target.value)},"handleConversionFieldChange"),w=n(c=>{c.preventDefault(),j(C=>!C),!g&&I&&S(I)},"toggleConversion"),F=x?y(qn,{targetCurrency:t,showConversion:g,className:`${p}-button`,onClick:w}):null,we=h?{meta:f,description:l,descriptionSuffix:F}:{meta:F?Pn(f,"helpCenter"):f,description:F?y(In,{description:l,helpCenter:y(V,{helpCenter:f?.helpCenter}),toggle:F,className:`${p}-description`}):l};return qe(wn,{children:[y(L,{...d,...we,name:r||d.name,additionalProps:{currency:e},type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:v}),g&&y(L,{additionalProps:{currency:t},name:o,label:s?.label||"Conversion",description:s?.description,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:T}),y("input",{type:"hidden",name:b,value:P(b)||r||d.name})]})},"CurrencyConversionField");export{bt as a};
2
- //# sourceMappingURL=chunk-CRH5V5JI.js.map