@remoteoss/remote-flows 1.47.1 → 1.49.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 (647) hide show
  1. package/dist/ButtonDefault-N32RTG32.js +2 -0
  2. package/dist/CheckboxFieldDefault-JXNMWIRK.js +2 -0
  3. package/dist/CountryFieldDefault-SO4WS7KE.js +2 -0
  4. package/dist/DatePickerFieldDefault-AZHJN2U6.js +2 -0
  5. package/dist/DrawerDefault-E67XIROQ.js +2 -0
  6. package/dist/EmailFieldDefault-QVKXB67I.js +2 -0
  7. package/dist/FieldsetToggleButtonDefault-SHDKV2VO.js +2 -0
  8. package/dist/FileUploadFieldDefault-QHOKNCU2.js +2 -0
  9. package/dist/ForcedValueFieldDefault-BEOC4MYU.js +2 -0
  10. package/dist/MultiSelectFieldDefault-QKXVTGF2.js +2 -0
  11. package/dist/NumberFieldDefault-O7OKTFG4.js +2 -0
  12. package/dist/RadioGroupFieldDefault-ZHHXDUUU.js +2 -0
  13. package/dist/SelectFieldDefault-FWQ7D6DU.js +2 -0
  14. package/dist/StatementDefault-33EDZARR.js +2 -0
  15. package/dist/TableFieldDefault-BJIHEN3V.js +2 -0
  16. package/dist/TelFieldDefault-RA7IBELJ.js +2 -0
  17. package/dist/TextAreaFieldDefault-NEFWXEE2.js +2 -0
  18. package/dist/TextFieldDefault-RXNU36AX.js +2 -0
  19. package/dist/TimeFieldDefault-KIJNBWYF.js +2 -0
  20. package/dist/WorkScheduleFieldDefault-23WY3SVD.js +2 -0
  21. package/dist/ZendeskDrawerDefault-DC4SUPEC.js +2 -0
  22. package/dist/ZendeskTriggerButtonDefault-L4BVVXHA.js +2 -0
  23. package/dist/ZendeskTriggerButtonDefault-L4BVVXHA.js.map +1 -0
  24. package/dist/chunk-2HQDOWW2.js +2 -0
  25. package/dist/chunk-2HQDOWW2.js.map +1 -0
  26. package/dist/{chunk-CD2QYFEH.js → chunk-2IL6T6EB.js} +2 -2
  27. package/dist/{chunk-Y7PBPPUC.js → chunk-2LR5N626.js} +2 -2
  28. package/dist/{chunk-LQFLXXBR.js → chunk-2QVO3BVI.js} +2 -2
  29. package/dist/{chunk-DDH7MZ7M.js → chunk-2W354SK7.js} +2 -2
  30. package/dist/{chunk-MJ6Z7ARR.js → chunk-36GVXD2Z.js} +2 -2
  31. package/dist/{chunk-YDL42SVF.js → chunk-36JXX3VA.js} +2 -2
  32. package/dist/{chunk-WI4YITIC.js → chunk-3VTHNE4H.js} +2 -2
  33. package/dist/{chunk-RRERBS7F.js → chunk-4BHEQMZV.js} +2 -2
  34. package/dist/{chunk-NOQWN76W.js → chunk-4O5HJBUC.js} +2 -2
  35. package/dist/{chunk-KV2B2CRW.js → chunk-4ONGXCN3.js} +2 -2
  36. package/dist/{chunk-KR7PDSUA.js → chunk-4XK4QHOA.js} +2 -2
  37. package/dist/{chunk-5EWUWRPW.js → chunk-4Y2INBAI.js} +2 -2
  38. package/dist/{chunk-RT7MYFKW.js → chunk-5AF5WV3R.js} +2 -2
  39. package/dist/{chunk-DO352QQL.js → chunk-5BIMRKQB.js} +2 -2
  40. package/dist/chunk-5FEJD2N7.js +2 -0
  41. package/dist/chunk-5FEJD2N7.js.map +1 -0
  42. package/dist/{chunk-6QEAL5BB.js → chunk-5IIFCA3F.js} +2 -2
  43. package/dist/{chunk-IQZ63FQX.js → chunk-5IRUNNZB.js} +2 -2
  44. package/dist/{chunk-DGHXBSBS.js → chunk-5MH23AST.js} +2 -2
  45. package/dist/chunk-5TOSVOLY.js +2 -0
  46. package/dist/chunk-5TOSVOLY.js.map +1 -0
  47. package/dist/{chunk-SU4FMKBZ.js → chunk-5X2OXK7T.js} +2 -2
  48. package/dist/{chunk-C6AWXQ67.js → chunk-64C6G646.js} +2 -2
  49. package/dist/chunk-6AHENEHD.js +2 -0
  50. package/dist/chunk-6AHENEHD.js.map +1 -0
  51. package/dist/{chunk-62VYULBI.js → chunk-6IDUDCVS.js} +2 -2
  52. package/dist/{chunk-37CRJPVL.js → chunk-6IQJJCQ3.js} +2 -2
  53. package/dist/chunk-6L77BWCI.js +2 -0
  54. package/dist/{chunk-H3JAWJOE.js.map → chunk-6L77BWCI.js.map} +1 -1
  55. package/dist/{chunk-ATRYDXM2.js → chunk-6S5Q2OKC.js} +2 -2
  56. package/dist/{chunk-ZF46HCMZ.js → chunk-6THYSEJ7.js} +2 -2
  57. package/dist/{chunk-WXLKMK53.js → chunk-6WO4PRGN.js} +2 -2
  58. package/dist/{chunk-Y62UA5CG.js → chunk-7GO4BHOI.js} +2 -2
  59. package/dist/chunk-7HGU72GB.js +2 -0
  60. package/dist/chunk-7HGU72GB.js.map +1 -0
  61. package/dist/chunk-7IIQUZTH.js +2 -0
  62. package/dist/chunk-7IIQUZTH.js.map +1 -0
  63. package/dist/{chunk-BODQC6OK.js → chunk-A7U3KJIP.js} +2 -2
  64. package/dist/{chunk-WQS5JWRA.js → chunk-AP6MKHTF.js} +2 -2
  65. package/dist/{chunk-PMCCHSXD.js → chunk-APUJLKUM.js} +2 -2
  66. package/dist/{chunk-LKTCYO6Y.js → chunk-ASKPQZY2.js} +2 -2
  67. package/dist/{chunk-4FGKIGKF.js → chunk-AUPAAQUT.js} +2 -2
  68. package/dist/{chunk-ZHFUFIWX.js → chunk-B3MEKP45.js} +2 -2
  69. package/dist/{chunk-4X7TVFHA.js → chunk-B4O5YUYL.js} +2 -2
  70. package/dist/{chunk-DWJGC5YG.js → chunk-B5GH36QL.js} +2 -2
  71. package/dist/{chunk-Y3G3JGLP.js → chunk-BHTFKQJO.js} +2 -2
  72. package/dist/{chunk-PXBJVZ6I.js → chunk-BQNZUM27.js} +2 -2
  73. package/dist/{chunk-UCBZMQGL.js → chunk-BUR3X6FL.js} +2 -2
  74. package/dist/{chunk-KLBFDP5I.js → chunk-BVMAUJC2.js} +2 -2
  75. package/dist/{chunk-75HIK6IG.js → chunk-BWM2MYPE.js} +2 -2
  76. package/dist/{chunk-W3GEGGZY.js → chunk-BXR3EF3L.js} +2 -2
  77. package/dist/{chunk-OEQXIWJJ.js → chunk-C2HZNBMZ.js} +2 -2
  78. package/dist/chunk-C4HFMTSB.js +2 -0
  79. package/dist/chunk-C4HFMTSB.js.map +1 -0
  80. package/dist/{chunk-FQFIRIKU.js → chunk-CEFR62S6.js} +2 -2
  81. package/dist/{chunk-OGRQ3NTD.js → chunk-CNSE26GY.js} +2 -2
  82. package/dist/chunk-CQVOBIXJ.js +2 -0
  83. package/dist/chunk-CQVOBIXJ.js.map +1 -0
  84. package/dist/{chunk-ZG2AYULT.js → chunk-CRH5V5JI.js} +2 -2
  85. package/dist/{chunk-I5L5SRSG.js → chunk-CSXL7LMW.js} +2 -2
  86. package/dist/{chunk-QVULYOKK.js → chunk-D5LOZT54.js} +2 -2
  87. package/dist/{chunk-QO7HHRNA.js → chunk-D7MYOH3P.js} +2 -2
  88. package/dist/chunk-DN6BXTAC.js +2 -0
  89. package/dist/{chunk-ELXRJXQZ.js → chunk-DSYQY3K6.js} +2 -2
  90. package/dist/{chunk-CNXDC3M7.js → chunk-EEZFRK2I.js} +2 -2
  91. package/dist/{chunk-QXXVWOOB.js → chunk-F3UUYQGY.js} +2 -2
  92. package/dist/{chunk-LT5KIEQH.js → chunk-F7ZDULRC.js} +2 -2
  93. package/dist/{chunk-WE2AFK6Y.js → chunk-FDTOQHOJ.js} +2 -2
  94. package/dist/{chunk-EHAAVSJM.js → chunk-FJD5GFO4.js} +2 -2
  95. package/dist/{chunk-WOARN6WG.js → chunk-FORYAPUZ.js} +2 -2
  96. package/dist/{chunk-3HGUMECW.js → chunk-GBVBMT3H.js} +2 -2
  97. package/dist/{chunk-P32JWGIE.js → chunk-GJJFAGAC.js} +2 -2
  98. package/dist/chunk-GKSG4TTI.js +2 -0
  99. package/dist/{chunk-2W7O4FMW.js.map → chunk-GKSG4TTI.js.map} +1 -1
  100. package/dist/{chunk-KCE6IU5X.js → chunk-GM3UWUVL.js} +2 -2
  101. package/dist/{chunk-R4JUCNE4.js → chunk-GMSYO53D.js} +2 -2
  102. package/dist/chunk-GPWQPJQ7.js +2 -0
  103. package/dist/chunk-GPWQPJQ7.js.map +1 -0
  104. package/dist/{chunk-FPV6S2OQ.js → chunk-H5OZSXSY.js} +2 -2
  105. package/dist/{chunk-TZIDQ5O3.js → chunk-HBONR7VY.js} +2 -2
  106. package/dist/{chunk-NDWVOVDM.js → chunk-HDFAFTHC.js} +2 -2
  107. package/dist/{chunk-NFLN2YB6.js → chunk-HI6GH4J7.js} +2 -2
  108. package/dist/{chunk-JH3WUGO5.js → chunk-HKNQKO5Y.js} +2 -2
  109. package/dist/{chunk-HYWQLLZC.js → chunk-HMJ4PIDI.js} +2 -2
  110. package/dist/{chunk-CZU4U3LY.js → chunk-I4CKTODX.js} +2 -2
  111. package/dist/{chunk-XGECMN4V.js → chunk-IF42CZJH.js} +2 -2
  112. package/dist/{chunk-HOEP5XXW.js → chunk-ILX6RI7K.js} +2 -2
  113. package/dist/{chunk-DSUJKXRQ.js → chunk-IUY4BDUY.js} +2 -2
  114. package/dist/chunk-IXS65MGJ.js +2 -0
  115. package/dist/chunk-IXS65MGJ.js.map +1 -0
  116. package/dist/{chunk-ORXD3SB2.js → chunk-J5BG6GTH.js} +2 -2
  117. package/dist/{chunk-STJU6LZF.js → chunk-JGKYFH4L.js} +2 -2
  118. package/dist/{chunk-DLSHZLHX.js → chunk-JJUOWS3K.js} +2 -2
  119. package/dist/chunk-JKHJR6HK.js +2 -0
  120. package/dist/chunk-JKHJR6HK.js.map +1 -0
  121. package/dist/{chunk-75ZSFK7I.js → chunk-JLM4O7ZW.js} +2 -2
  122. package/dist/{chunk-2EM7DTD6.js → chunk-JMFCG5KA.js} +2 -2
  123. package/dist/{chunk-OHNH7V7X.js → chunk-JQ3SLOUP.js} +2 -2
  124. package/dist/{chunk-3ISSVSL5.js → chunk-JXPMQMTT.js} +2 -2
  125. package/dist/{chunk-O4MWPCG5.js → chunk-KJCCB44M.js} +2 -2
  126. package/dist/chunk-KPJ5YKXS.js +2 -0
  127. package/dist/{chunk-UWSG45OM.js.map → chunk-KPJ5YKXS.js.map} +1 -1
  128. package/dist/{chunk-2BYDZSR5.js → chunk-KX4JZXZV.js} +2 -2
  129. package/dist/{chunk-2NWQ32VQ.js → chunk-KZ5ZQTBF.js} +2 -2
  130. package/dist/{chunk-4EZST3RL.js → chunk-LBNS4VT7.js} +2 -2
  131. package/dist/{chunk-VUKUBHHU.js → chunk-LF3FMXGV.js} +2 -2
  132. package/dist/{chunk-VZ34NZXF.js → chunk-LFUMRNDK.js} +2 -2
  133. package/dist/{chunk-BC4V2YAK.js → chunk-LKHRHBFP.js} +2 -2
  134. package/dist/chunk-M3TA5X2H.js +2 -0
  135. package/dist/chunk-M3TA5X2H.js.map +1 -0
  136. package/dist/chunk-MXF3IXNU.js +2 -0
  137. package/dist/{chunk-XI5G4SGA.js.map → chunk-MXF3IXNU.js.map} +1 -1
  138. package/dist/chunk-MYO3DIES.js +2 -0
  139. package/dist/chunk-MYO3DIES.js.map +1 -0
  140. package/dist/{chunk-CT7POXIP.js → chunk-MZUPTP2B.js} +2 -2
  141. package/dist/{chunk-KTOVE7ZS.js → chunk-NF2WEMTU.js} +2 -2
  142. package/dist/chunk-NPVSJYM6.js +2 -0
  143. package/dist/chunk-NPVSJYM6.js.map +1 -0
  144. package/dist/{chunk-E5MKB67X.js → chunk-OU2JUD4J.js} +2 -2
  145. package/dist/{chunk-LVZ5DNTO.js → chunk-OUUH3EQY.js} +2 -2
  146. package/dist/{chunk-HQLGDW2G.js → chunk-OV4ARZIX.js} +2 -2
  147. package/dist/{chunk-LZM3BNK3.js → chunk-PFNDDLHG.js} +2 -2
  148. package/dist/chunk-POWC7LZN.js +2 -0
  149. package/dist/chunk-POWC7LZN.js.map +1 -0
  150. package/dist/{chunk-C6I7R7ZH.js → chunk-PRFHWAQZ.js} +2 -2
  151. package/dist/{chunk-NQWB6O7Z.js → chunk-PUK2TIQX.js} +2 -2
  152. package/dist/{chunk-CM4UUBU5.js → chunk-PVORGGT3.js} +2 -2
  153. package/dist/{chunk-IN6QZASY.js → chunk-QEHEOSJT.js} +2 -2
  154. package/dist/{chunk-ULCAT6MG.js → chunk-QHJ3BYJN.js} +2 -2
  155. package/dist/{chunk-HFFQ642D.js → chunk-QRSWXKRV.js} +2 -2
  156. package/dist/chunk-QSF4XFSV.js +2 -0
  157. package/dist/{chunk-HLLM7OZN.js.map → chunk-QSF4XFSV.js.map} +1 -1
  158. package/dist/{chunk-MJZCTG7C.js → chunk-QYKJU45J.js} +2 -2
  159. package/dist/chunk-R4J4TF5F.js +2 -0
  160. package/dist/chunk-R4J4TF5F.js.map +1 -0
  161. package/dist/{chunk-NGV62VYV.js → chunk-RK5ZEDOE.js} +2 -2
  162. package/dist/{chunk-BGEDMAHU.js → chunk-RKP7EEAB.js} +2 -2
  163. package/dist/{chunk-6PDBJULN.js → chunk-RRZRQAIT.js} +2 -2
  164. package/dist/{chunk-IUJRGT3T.js → chunk-S2QXSX4Q.js} +2 -2
  165. package/dist/{chunk-SYSVKYHX.js → chunk-S64P7IA7.js} +2 -2
  166. package/dist/{chunk-DLCEEROX.js → chunk-SH35XDFY.js} +2 -2
  167. package/dist/{chunk-AHUSQVQY.js → chunk-SWLNTVAX.js} +2 -2
  168. package/dist/{chunk-WJ7BE4TU.js → chunk-SXPBC2FP.js} +2 -2
  169. package/dist/{chunk-GPY3JZJJ.js → chunk-SXW4FROO.js} +2 -2
  170. package/dist/{chunk-OEPT3ASY.js → chunk-TO2GYQR2.js} +2 -2
  171. package/dist/{chunk-XDPAVB5E.js → chunk-TWLFK7DD.js} +2 -2
  172. package/dist/chunk-TXOCMI5I.js +2 -0
  173. package/dist/{chunk-QZZJE6P7.js.map → chunk-TXOCMI5I.js.map} +1 -1
  174. package/dist/{chunk-JNXNTCPZ.js → chunk-TZRUHUW5.js} +2 -2
  175. package/dist/{chunk-73ALSVRF.js → chunk-U6SMLAQI.js} +2 -2
  176. package/dist/{chunk-BQDYFFER.js → chunk-UUN3PLDE.js} +2 -2
  177. package/dist/{chunk-G3QDDD53.js → chunk-UZFEJMO6.js} +2 -2
  178. package/dist/{chunk-A75HEHRS.js → chunk-V2KDZU2F.js} +2 -2
  179. package/dist/{chunk-XI55YG73.js → chunk-VNMUML3T.js} +2 -2
  180. package/dist/{chunk-XI55YG73.js.map → chunk-VNMUML3T.js.map} +1 -1
  181. package/dist/{chunk-MW5JVH3X.js → chunk-VQVE3QA2.js} +2 -2
  182. package/dist/{chunk-BGSB3XPW.js → chunk-W5WYIDDY.js} +2 -2
  183. package/dist/{chunk-RKXF7Q7V.js → chunk-WGDZTF7Y.js} +2 -2
  184. package/dist/{chunk-V2ZDW66A.js → chunk-WYP2CB4I.js} +2 -2
  185. package/dist/{chunk-FHDMPQNW.js → chunk-X7FILZJH.js} +2 -2
  186. package/dist/{chunk-VMRTLZQL.js → chunk-X7HD2YL7.js} +2 -2
  187. package/dist/{chunk-S5BNS2JE.js → chunk-XFVXRCMH.js} +2 -2
  188. package/dist/{chunk-DOVE5SYY.js → chunk-XNV6ZN7J.js} +2 -2
  189. package/dist/{chunk-4AJD5YEN.js → chunk-XTVXWH3Q.js} +2 -2
  190. package/dist/chunk-XXQBX7ND.js +2 -0
  191. package/dist/chunk-XXQBX7ND.js.map +1 -0
  192. package/dist/{chunk-7FBX3RI4.js → chunk-YLSASLPB.js} +2 -2
  193. package/dist/{chunk-X7KIEFEN.js → chunk-YPBPOUGX.js} +2 -2
  194. package/dist/{chunk-DAYIMXLP.js → chunk-YZMAY2I6.js} +2 -2
  195. package/dist/{chunk-AES7DMIQ.js → chunk-ZAOE2DGD.js} +2 -2
  196. package/dist/{chunk-DKOETPI4.js → chunk-ZNHBMI37.js} +2 -2
  197. package/dist/{chunk-6FWHB4ET.js → chunk-ZYDBHR63.js} +2 -2
  198. package/dist/chunk-ZZLLPFLS.js +2 -0
  199. package/dist/{chunk-EGIXB43W.js.map → chunk-ZZLLPFLS.js.map} +1 -1
  200. package/dist/default-components.d.ts +2 -2
  201. package/dist/default-components.js +1 -1
  202. package/dist/default-components.js.map +1 -1
  203. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
  204. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
  205. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
  206. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  207. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
  208. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  209. package/dist/flows/ContractAmendment/context.d.ts +3 -3
  210. package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
  211. package/dist/flows/ContractAmendment/hooks.js +1 -1
  212. package/dist/flows/ContractAmendment/index.d.ts +3 -3
  213. package/dist/flows/ContractAmendment/index.js +1 -1
  214. package/dist/flows/ContractAmendment/types.d.ts +3 -3
  215. package/dist/flows/ContractAmendment/utils.d.ts +2 -2
  216. package/dist/flows/ContractAmendment/utils.js +1 -1
  217. package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +6 -5
  218. package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
  219. package/dist/flows/ContractorOnboarding/api.d.ts +445 -192
  220. package/dist/flows/ContractorOnboarding/api.js +1 -1
  221. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
  222. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
  223. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +6 -5
  224. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
  225. package/dist/flows/ContractorOnboarding/components/ContractOriginStep.d.ts +3 -3
  226. package/dist/flows/ContractorOnboarding/components/ContractOriginStep.js +1 -1
  227. package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
  228. package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
  229. package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.js +1 -1
  230. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +6 -5
  231. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
  232. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +6 -5
  233. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
  234. package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.d.ts +23 -0
  235. package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.js +2 -0
  236. package/dist/flows/ContractorOnboarding/components/CreateInvoiceScheduleStep.js.map +1 -0
  237. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +6 -5
  238. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
  239. package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.d.ts +28 -0
  240. package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.js +2 -0
  241. package/dist/flows/ContractorOnboarding/components/InvoiceScheduleStep.js.map +1 -0
  242. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
  243. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
  244. package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +6 -5
  245. package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
  246. package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +3 -3
  247. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
  248. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
  249. package/dist/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer.js +1 -1
  250. package/dist/flows/ContractorOnboarding/context.d.ts +32 -14
  251. package/dist/flows/ContractorOnboarding/hooks.d.ts +7 -6
  252. package/dist/flows/ContractorOnboarding/hooks.js +1 -1
  253. package/dist/flows/ContractorOnboarding/index.d.ts +6 -5
  254. package/dist/flows/ContractorOnboarding/index.js +1 -1
  255. package/dist/flows/ContractorOnboarding/invoiceScheduleConstants.d.ts +15 -0
  256. package/dist/flows/ContractorOnboarding/invoiceScheduleConstants.js +2 -0
  257. package/dist/flows/ContractorOnboarding/invoiceScheduleConstants.js.map +1 -0
  258. package/dist/flows/ContractorOnboarding/jsfModify.d.ts +6 -5
  259. package/dist/flows/ContractorOnboarding/jsfModify.js +1 -1
  260. package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.d.ts +103 -0
  261. package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.js +2 -0
  262. package/dist/flows/ContractorOnboarding/json-schemas/createInvoiceSchedule.js.map +1 -0
  263. package/dist/flows/ContractorOnboarding/json-schemas/invoiceSchedule.d.ts +28 -0
  264. package/dist/flows/ContractorOnboarding/json-schemas/invoiceSchedule.js +2 -0
  265. package/dist/flows/ContractorOnboarding/json-schemas/invoiceSchedule.js.map +1 -0
  266. package/dist/flows/ContractorOnboarding/types.d.ts +6 -5
  267. package/dist/flows/ContractorOnboarding/utils.d.ts +24 -6
  268. package/dist/flows/ContractorOnboarding/utils.js +1 -1
  269. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
  270. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  271. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
  272. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  273. package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
  274. package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
  275. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +3 -3
  276. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
  277. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +3 -3
  278. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +1 -1
  279. package/dist/flows/CostCalculator/api.d.ts +3 -3
  280. package/dist/flows/CostCalculator/api.js +1 -1
  281. package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
  282. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  283. package/dist/flows/CostCalculator/context.d.ts +3 -3
  284. package/dist/flows/CostCalculator/hooks.d.ts +3 -3
  285. package/dist/flows/CostCalculator/hooks.js +1 -1
  286. package/dist/flows/CostCalculator/index.d.ts +3 -3
  287. package/dist/flows/CostCalculator/index.js +1 -1
  288. package/dist/flows/CostCalculator/types.d.ts +3 -3
  289. package/dist/flows/CostCalculator/utils.d.ts +3 -3
  290. package/dist/flows/CostCalculator/utils.js +1 -1
  291. package/dist/flows/CreateCompany/CreateCompany.d.ts +4 -4
  292. package/dist/flows/CreateCompany/CreateCompany.js +1 -1
  293. package/dist/flows/CreateCompany/api.d.ts +3 -3
  294. package/dist/flows/CreateCompany/api.js +1 -1
  295. package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
  296. package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
  297. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
  298. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
  299. package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
  300. package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
  301. package/dist/flows/CreateCompany/context.d.ts +4 -4
  302. package/dist/flows/CreateCompany/hooks.d.ts +4 -4
  303. package/dist/flows/CreateCompany/hooks.js +1 -1
  304. package/dist/flows/CreateCompany/index.d.ts +4 -4
  305. package/dist/flows/CreateCompany/index.js +1 -1
  306. package/dist/flows/CreateCompany/types.d.ts +4 -4
  307. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.d.ts +3 -3
  308. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundFlow.js +1 -1
  309. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.d.ts +2 -2
  310. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundForm.js +1 -1
  311. package/dist/flows/JsonSchemaPlayground/JsonSchemaPlaygroundResetButton.js +1 -1
  312. package/dist/flows/JsonSchemaPlayground/context.d.ts +3 -3
  313. package/dist/flows/JsonSchemaPlayground/hooks.d.ts +3 -3
  314. package/dist/flows/JsonSchemaPlayground/hooks.js +1 -1
  315. package/dist/flows/JsonSchemaPlayground/index.d.ts +3 -3
  316. package/dist/flows/JsonSchemaPlayground/index.js +1 -1
  317. package/dist/flows/JsonSchemaPlayground/types.d.ts +3 -3
  318. package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
  319. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  320. package/dist/flows/Onboarding/api.d.ts +4 -4
  321. package/dist/flows/Onboarding/api.js +1 -1
  322. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
  323. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  324. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
  325. package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
  326. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
  327. package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
  328. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
  329. package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
  330. package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.js +1 -1
  331. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +4 -4
  332. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.js +1 -1
  333. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
  334. package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
  335. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
  336. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  337. package/dist/flows/Onboarding/components/PreOnboardingRequirements.d.ts +4 -4
  338. package/dist/flows/Onboarding/components/PreOnboardingRequirements.js +1 -1
  339. package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.js +1 -1
  340. package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
  341. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
  342. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
  343. package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
  344. package/dist/flows/Onboarding/context.d.ts +4 -4
  345. package/dist/flows/Onboarding/hooks.d.ts +4 -4
  346. package/dist/flows/Onboarding/hooks.js +1 -1
  347. package/dist/flows/Onboarding/index.d.ts +4 -4
  348. package/dist/flows/Onboarding/index.js +1 -1
  349. package/dist/flows/Onboarding/types.d.ts +4 -4
  350. package/dist/flows/Onboarding/utils.d.ts +4 -4
  351. package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.d.ts +4 -4
  352. package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.js +1 -1
  353. package/dist/flows/PayrollAdminOnboarding/api.d.ts +2 -2
  354. package/dist/flows/PayrollAdminOnboarding/api.js +1 -1
  355. package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.d.ts +3 -3
  356. package/dist/flows/PayrollAdminOnboarding/components/AdministrativeDetailsStep.js +1 -1
  357. package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.d.ts +3 -3
  358. package/dist/flows/PayrollAdminOnboarding/components/ContractDetailsStep.js +1 -1
  359. package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.d.ts +3 -3
  360. package/dist/flows/PayrollAdminOnboarding/components/InvitationStep.js +1 -1
  361. package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.d.ts +2 -2
  362. package/dist/flows/PayrollAdminOnboarding/components/PayrollAdminForm.js +1 -1
  363. package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.d.ts +3 -3
  364. package/dist/flows/PayrollAdminOnboarding/components/SelectCountryStep.js +1 -1
  365. package/dist/flows/PayrollAdminOnboarding/components/useStepSubmitHandler.d.ts +3 -3
  366. package/dist/flows/PayrollAdminOnboarding/components/useStepSubmitHandler.js +1 -1
  367. package/dist/flows/PayrollAdminOnboarding/context.d.ts +4 -4
  368. package/dist/flows/PayrollAdminOnboarding/hooks.d.ts +4 -4
  369. package/dist/flows/PayrollAdminOnboarding/hooks.js +1 -1
  370. package/dist/flows/PayrollAdminOnboarding/index.d.ts +4 -4
  371. package/dist/flows/PayrollAdminOnboarding/index.js +1 -1
  372. package/dist/flows/PayrollAdminOnboarding/types.d.ts +4 -4
  373. package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.d.ts +4 -4
  374. package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.js +1 -1
  375. package/dist/flows/PayrollEmployeeOnboarding/api.d.ts +3 -3
  376. package/dist/flows/PayrollEmployeeOnboarding/api.js +1 -1
  377. package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.d.ts +3 -3
  378. package/dist/flows/PayrollEmployeeOnboarding/components/BankAccountStep.js +1 -1
  379. package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.d.ts +3 -3
  380. package/dist/flows/PayrollEmployeeOnboarding/components/FederalTaxesStep.js +1 -1
  381. package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.d.ts +3 -3
  382. package/dist/flows/PayrollEmployeeOnboarding/components/HomeAddressStep.js +1 -1
  383. package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.d.ts +2 -2
  384. package/dist/flows/PayrollEmployeeOnboarding/components/PayrollEmployeeForm.js +1 -1
  385. package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.d.ts +3 -3
  386. package/dist/flows/PayrollEmployeeOnboarding/components/PersonalDetailsStep.js +1 -1
  387. package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.d.ts +3 -3
  388. package/dist/flows/PayrollEmployeeOnboarding/components/StateTaxesStep.js +1 -1
  389. package/dist/flows/PayrollEmployeeOnboarding/components/useEmployeeStepSubmitHandler.d.ts +3 -3
  390. package/dist/flows/PayrollEmployeeOnboarding/components/useEmployeeStepSubmitHandler.js +1 -1
  391. package/dist/flows/PayrollEmployeeOnboarding/context.d.ts +4 -4
  392. package/dist/flows/PayrollEmployeeOnboarding/hooks.d.ts +4 -4
  393. package/dist/flows/PayrollEmployeeOnboarding/hooks.js +1 -1
  394. package/dist/flows/PayrollEmployeeOnboarding/index.d.ts +4 -4
  395. package/dist/flows/PayrollEmployeeOnboarding/index.js +1 -1
  396. package/dist/flows/PayrollEmployeeOnboarding/types.d.ts +4 -4
  397. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
  398. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  399. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
  400. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  401. package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
  402. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  403. package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
  404. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  405. package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
  406. package/dist/flows/Termination/TerminationFlow.js +1 -1
  407. package/dist/flows/Termination/TerminationForm.d.ts +4 -4
  408. package/dist/flows/Termination/TerminationForm.js +1 -1
  409. package/dist/flows/Termination/api.d.ts +5 -5
  410. package/dist/flows/Termination/api.js +1 -1
  411. package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformation.js +1 -1
  412. package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
  413. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
  414. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
  415. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
  416. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
  417. package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
  418. package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
  419. package/dist/flows/Termination/components/TerminationReasonsDetailContent/TerminationReasonsDetailContent.js +1 -1
  420. package/dist/flows/Termination/context.d.ts +4 -4
  421. package/dist/flows/Termination/hooks.d.ts +4 -4
  422. package/dist/flows/Termination/hooks.js +1 -1
  423. package/dist/flows/Termination/index.d.ts +6 -6
  424. package/dist/flows/Termination/index.js +1 -1
  425. package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
  426. package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
  427. package/dist/flows/Termination/json-schemas/schema.js +1 -1
  428. package/dist/flows/Termination/types.d.ts +4 -4
  429. package/dist/flows/Termination/utils.d.ts +4 -4
  430. package/dist/flows/Termination/utils.js +1 -1
  431. package/dist/flows/types.d.ts +8 -3
  432. package/dist/flows/useStepState.js +1 -1
  433. package/dist/flows/utils.d.ts +2 -2
  434. package/dist/index.d.ts +16 -14
  435. package/dist/index.js +2 -2
  436. package/dist/index.js.map +1 -1
  437. package/dist/internals.d.ts +4 -4
  438. package/dist/internals.js +1 -1
  439. package/dist/{mutations-CrU9zAmc.d.ts → mutations-DQjVuza-.d.ts} +1 -1
  440. package/dist/{remoteFlows-Bj_CV1Kz.d.ts → remoteFlows-B_JbhzWp.d.ts} +50 -2
  441. package/dist/{types-hMyVACN6.d.ts → types-1mH_uuoA.d.ts} +2 -2
  442. package/dist/{types-T42SC9k7.d.ts → types-B0iYt6RL.d.ts} +63 -14
  443. package/dist/{types-BhMTFN9Y.d.ts → types-B93nzmoE.d.ts} +1 -1
  444. package/dist/{types-DoaH0jUN.d.ts → types-BFzhRUSU.d.ts} +2 -2
  445. package/dist/{types-BJWaoke6.d.ts → types-CdC2MYpf.d.ts} +2 -2
  446. package/dist/{types-DKSx7WoE.d.ts → types-Clzf4xjV.d.ts} +3 -3
  447. package/dist/{types-CrefIfI4.d.ts → types-CoYsxVTI.d.ts} +1 -1
  448. package/dist/{types-COPUHO0i.d.ts → types-D3U8Wi3X.d.ts} +3 -3
  449. package/dist/{types.gen-C4K7xky-.d.ts → types.gen-BmtA4XNd.d.ts} +230 -1
  450. package/dist/{utils-C02FAkSq.d.ts → utils-DJgzqxq4.d.ts} +1 -1
  451. package/package.json +1 -1
  452. package/dist/ButtonDefault-HBOULH5V.js +0 -2
  453. package/dist/CheckboxFieldDefault-ASWSMSJD.js +0 -2
  454. package/dist/CountryFieldDefault-JNRZX632.js +0 -2
  455. package/dist/DatePickerFieldDefault-ARSIRGKX.js +0 -2
  456. package/dist/DrawerDefault-O7NUFWJ4.js +0 -2
  457. package/dist/EmailFieldDefault-7USH7I6B.js +0 -2
  458. package/dist/FieldsetToggleButtonDefault-MIRCZJKA.js +0 -2
  459. package/dist/FileUploadFieldDefault-CFK64E3M.js +0 -2
  460. package/dist/ForcedValueFieldDefault-IB7EX73O.js +0 -2
  461. package/dist/MultiSelectFieldDefault-HP5FIBJY.js +0 -2
  462. package/dist/NumberFieldDefault-P7TLA6SH.js +0 -2
  463. package/dist/RadioGroupFieldDefault-DRF3H2ZB.js +0 -2
  464. package/dist/SelectFieldDefault-ANJ24D2G.js +0 -2
  465. package/dist/StatementDefault-RDC5G24K.js +0 -2
  466. package/dist/TableFieldDefault-ES7OIYX5.js +0 -2
  467. package/dist/TelFieldDefault-ZKHU4DKH.js +0 -2
  468. package/dist/TextAreaFieldDefault-JICC77TL.js +0 -2
  469. package/dist/TextFieldDefault-RJSD2YDR.js +0 -2
  470. package/dist/TimeFieldDefault-3SO5KXVJ.js +0 -2
  471. package/dist/WorkScheduleFieldDefault-JAU2YFQF.js +0 -2
  472. package/dist/ZendeskDrawerDefault-HGKAUCUV.js +0 -2
  473. package/dist/chunk-2DRF5M3J.js +0 -2
  474. package/dist/chunk-2DRF5M3J.js.map +0 -1
  475. package/dist/chunk-2W7O4FMW.js +0 -2
  476. package/dist/chunk-5MPW7QWT.js +0 -2
  477. package/dist/chunk-AAOU5HS2.js +0 -2
  478. package/dist/chunk-AAOU5HS2.js.map +0 -1
  479. package/dist/chunk-BS2YN6CS.js +0 -2
  480. package/dist/chunk-BS2YN6CS.js.map +0 -1
  481. package/dist/chunk-EGIXB43W.js +0 -2
  482. package/dist/chunk-H3JAWJOE.js +0 -2
  483. package/dist/chunk-HLLM7OZN.js +0 -2
  484. package/dist/chunk-LUADE5XK.js +0 -2
  485. package/dist/chunk-LUADE5XK.js.map +0 -1
  486. package/dist/chunk-MREG2JYT.js +0 -2
  487. package/dist/chunk-MREG2JYT.js.map +0 -1
  488. package/dist/chunk-NRH6RION.js +0 -2
  489. package/dist/chunk-NRH6RION.js.map +0 -1
  490. package/dist/chunk-NXRWBI36.js +0 -2
  491. package/dist/chunk-NXRWBI36.js.map +0 -1
  492. package/dist/chunk-QZZJE6P7.js +0 -2
  493. package/dist/chunk-UWSG45OM.js +0 -2
  494. package/dist/chunk-WDO7XH6B.js +0 -2
  495. package/dist/chunk-WDO7XH6B.js.map +0 -1
  496. package/dist/chunk-XI5G4SGA.js +0 -2
  497. package/dist/chunk-XPVYX7LE.js +0 -2
  498. package/dist/chunk-XPVYX7LE.js.map +0 -1
  499. package/dist/chunk-XZMPAJRL.js +0 -2
  500. package/dist/chunk-XZMPAJRL.js.map +0 -1
  501. /package/dist/{ButtonDefault-HBOULH5V.js.map → ButtonDefault-N32RTG32.js.map} +0 -0
  502. /package/dist/{CheckboxFieldDefault-ASWSMSJD.js.map → CheckboxFieldDefault-JXNMWIRK.js.map} +0 -0
  503. /package/dist/{CountryFieldDefault-JNRZX632.js.map → CountryFieldDefault-SO4WS7KE.js.map} +0 -0
  504. /package/dist/{DatePickerFieldDefault-ARSIRGKX.js.map → DatePickerFieldDefault-AZHJN2U6.js.map} +0 -0
  505. /package/dist/{DrawerDefault-O7NUFWJ4.js.map → DrawerDefault-E67XIROQ.js.map} +0 -0
  506. /package/dist/{EmailFieldDefault-7USH7I6B.js.map → EmailFieldDefault-QVKXB67I.js.map} +0 -0
  507. /package/dist/{FieldsetToggleButtonDefault-MIRCZJKA.js.map → FieldsetToggleButtonDefault-SHDKV2VO.js.map} +0 -0
  508. /package/dist/{FileUploadFieldDefault-CFK64E3M.js.map → FileUploadFieldDefault-QHOKNCU2.js.map} +0 -0
  509. /package/dist/{ForcedValueFieldDefault-IB7EX73O.js.map → ForcedValueFieldDefault-BEOC4MYU.js.map} +0 -0
  510. /package/dist/{MultiSelectFieldDefault-HP5FIBJY.js.map → MultiSelectFieldDefault-QKXVTGF2.js.map} +0 -0
  511. /package/dist/{NumberFieldDefault-P7TLA6SH.js.map → NumberFieldDefault-O7OKTFG4.js.map} +0 -0
  512. /package/dist/{RadioGroupFieldDefault-DRF3H2ZB.js.map → RadioGroupFieldDefault-ZHHXDUUU.js.map} +0 -0
  513. /package/dist/{SelectFieldDefault-ANJ24D2G.js.map → SelectFieldDefault-FWQ7D6DU.js.map} +0 -0
  514. /package/dist/{StatementDefault-RDC5G24K.js.map → StatementDefault-33EDZARR.js.map} +0 -0
  515. /package/dist/{TableFieldDefault-ES7OIYX5.js.map → TableFieldDefault-BJIHEN3V.js.map} +0 -0
  516. /package/dist/{TelFieldDefault-ZKHU4DKH.js.map → TelFieldDefault-RA7IBELJ.js.map} +0 -0
  517. /package/dist/{TextAreaFieldDefault-JICC77TL.js.map → TextAreaFieldDefault-NEFWXEE2.js.map} +0 -0
  518. /package/dist/{TextFieldDefault-RJSD2YDR.js.map → TextFieldDefault-RXNU36AX.js.map} +0 -0
  519. /package/dist/{TimeFieldDefault-3SO5KXVJ.js.map → TimeFieldDefault-KIJNBWYF.js.map} +0 -0
  520. /package/dist/{WorkScheduleFieldDefault-JAU2YFQF.js.map → WorkScheduleFieldDefault-23WY3SVD.js.map} +0 -0
  521. /package/dist/{ZendeskDrawerDefault-HGKAUCUV.js.map → ZendeskDrawerDefault-DC4SUPEC.js.map} +0 -0
  522. /package/dist/{chunk-CD2QYFEH.js.map → chunk-2IL6T6EB.js.map} +0 -0
  523. /package/dist/{chunk-Y7PBPPUC.js.map → chunk-2LR5N626.js.map} +0 -0
  524. /package/dist/{chunk-LQFLXXBR.js.map → chunk-2QVO3BVI.js.map} +0 -0
  525. /package/dist/{chunk-DDH7MZ7M.js.map → chunk-2W354SK7.js.map} +0 -0
  526. /package/dist/{chunk-MJ6Z7ARR.js.map → chunk-36GVXD2Z.js.map} +0 -0
  527. /package/dist/{chunk-YDL42SVF.js.map → chunk-36JXX3VA.js.map} +0 -0
  528. /package/dist/{chunk-WI4YITIC.js.map → chunk-3VTHNE4H.js.map} +0 -0
  529. /package/dist/{chunk-RRERBS7F.js.map → chunk-4BHEQMZV.js.map} +0 -0
  530. /package/dist/{chunk-NOQWN76W.js.map → chunk-4O5HJBUC.js.map} +0 -0
  531. /package/dist/{chunk-KV2B2CRW.js.map → chunk-4ONGXCN3.js.map} +0 -0
  532. /package/dist/{chunk-KR7PDSUA.js.map → chunk-4XK4QHOA.js.map} +0 -0
  533. /package/dist/{chunk-5EWUWRPW.js.map → chunk-4Y2INBAI.js.map} +0 -0
  534. /package/dist/{chunk-RT7MYFKW.js.map → chunk-5AF5WV3R.js.map} +0 -0
  535. /package/dist/{chunk-DO352QQL.js.map → chunk-5BIMRKQB.js.map} +0 -0
  536. /package/dist/{chunk-6QEAL5BB.js.map → chunk-5IIFCA3F.js.map} +0 -0
  537. /package/dist/{chunk-IQZ63FQX.js.map → chunk-5IRUNNZB.js.map} +0 -0
  538. /package/dist/{chunk-DGHXBSBS.js.map → chunk-5MH23AST.js.map} +0 -0
  539. /package/dist/{chunk-SU4FMKBZ.js.map → chunk-5X2OXK7T.js.map} +0 -0
  540. /package/dist/{chunk-C6AWXQ67.js.map → chunk-64C6G646.js.map} +0 -0
  541. /package/dist/{chunk-62VYULBI.js.map → chunk-6IDUDCVS.js.map} +0 -0
  542. /package/dist/{chunk-37CRJPVL.js.map → chunk-6IQJJCQ3.js.map} +0 -0
  543. /package/dist/{chunk-ATRYDXM2.js.map → chunk-6S5Q2OKC.js.map} +0 -0
  544. /package/dist/{chunk-ZF46HCMZ.js.map → chunk-6THYSEJ7.js.map} +0 -0
  545. /package/dist/{chunk-WXLKMK53.js.map → chunk-6WO4PRGN.js.map} +0 -0
  546. /package/dist/{chunk-Y62UA5CG.js.map → chunk-7GO4BHOI.js.map} +0 -0
  547. /package/dist/{chunk-BODQC6OK.js.map → chunk-A7U3KJIP.js.map} +0 -0
  548. /package/dist/{chunk-WQS5JWRA.js.map → chunk-AP6MKHTF.js.map} +0 -0
  549. /package/dist/{chunk-PMCCHSXD.js.map → chunk-APUJLKUM.js.map} +0 -0
  550. /package/dist/{chunk-LKTCYO6Y.js.map → chunk-ASKPQZY2.js.map} +0 -0
  551. /package/dist/{chunk-4FGKIGKF.js.map → chunk-AUPAAQUT.js.map} +0 -0
  552. /package/dist/{chunk-ZHFUFIWX.js.map → chunk-B3MEKP45.js.map} +0 -0
  553. /package/dist/{chunk-4X7TVFHA.js.map → chunk-B4O5YUYL.js.map} +0 -0
  554. /package/dist/{chunk-DWJGC5YG.js.map → chunk-B5GH36QL.js.map} +0 -0
  555. /package/dist/{chunk-Y3G3JGLP.js.map → chunk-BHTFKQJO.js.map} +0 -0
  556. /package/dist/{chunk-PXBJVZ6I.js.map → chunk-BQNZUM27.js.map} +0 -0
  557. /package/dist/{chunk-UCBZMQGL.js.map → chunk-BUR3X6FL.js.map} +0 -0
  558. /package/dist/{chunk-KLBFDP5I.js.map → chunk-BVMAUJC2.js.map} +0 -0
  559. /package/dist/{chunk-75HIK6IG.js.map → chunk-BWM2MYPE.js.map} +0 -0
  560. /package/dist/{chunk-W3GEGGZY.js.map → chunk-BXR3EF3L.js.map} +0 -0
  561. /package/dist/{chunk-OEQXIWJJ.js.map → chunk-C2HZNBMZ.js.map} +0 -0
  562. /package/dist/{chunk-FQFIRIKU.js.map → chunk-CEFR62S6.js.map} +0 -0
  563. /package/dist/{chunk-OGRQ3NTD.js.map → chunk-CNSE26GY.js.map} +0 -0
  564. /package/dist/{chunk-ZG2AYULT.js.map → chunk-CRH5V5JI.js.map} +0 -0
  565. /package/dist/{chunk-I5L5SRSG.js.map → chunk-CSXL7LMW.js.map} +0 -0
  566. /package/dist/{chunk-QVULYOKK.js.map → chunk-D5LOZT54.js.map} +0 -0
  567. /package/dist/{chunk-QO7HHRNA.js.map → chunk-D7MYOH3P.js.map} +0 -0
  568. /package/dist/{chunk-5MPW7QWT.js.map → chunk-DN6BXTAC.js.map} +0 -0
  569. /package/dist/{chunk-ELXRJXQZ.js.map → chunk-DSYQY3K6.js.map} +0 -0
  570. /package/dist/{chunk-CNXDC3M7.js.map → chunk-EEZFRK2I.js.map} +0 -0
  571. /package/dist/{chunk-QXXVWOOB.js.map → chunk-F3UUYQGY.js.map} +0 -0
  572. /package/dist/{chunk-LT5KIEQH.js.map → chunk-F7ZDULRC.js.map} +0 -0
  573. /package/dist/{chunk-WE2AFK6Y.js.map → chunk-FDTOQHOJ.js.map} +0 -0
  574. /package/dist/{chunk-EHAAVSJM.js.map → chunk-FJD5GFO4.js.map} +0 -0
  575. /package/dist/{chunk-WOARN6WG.js.map → chunk-FORYAPUZ.js.map} +0 -0
  576. /package/dist/{chunk-3HGUMECW.js.map → chunk-GBVBMT3H.js.map} +0 -0
  577. /package/dist/{chunk-P32JWGIE.js.map → chunk-GJJFAGAC.js.map} +0 -0
  578. /package/dist/{chunk-KCE6IU5X.js.map → chunk-GM3UWUVL.js.map} +0 -0
  579. /package/dist/{chunk-R4JUCNE4.js.map → chunk-GMSYO53D.js.map} +0 -0
  580. /package/dist/{chunk-FPV6S2OQ.js.map → chunk-H5OZSXSY.js.map} +0 -0
  581. /package/dist/{chunk-TZIDQ5O3.js.map → chunk-HBONR7VY.js.map} +0 -0
  582. /package/dist/{chunk-NDWVOVDM.js.map → chunk-HDFAFTHC.js.map} +0 -0
  583. /package/dist/{chunk-NFLN2YB6.js.map → chunk-HI6GH4J7.js.map} +0 -0
  584. /package/dist/{chunk-JH3WUGO5.js.map → chunk-HKNQKO5Y.js.map} +0 -0
  585. /package/dist/{chunk-HYWQLLZC.js.map → chunk-HMJ4PIDI.js.map} +0 -0
  586. /package/dist/{chunk-CZU4U3LY.js.map → chunk-I4CKTODX.js.map} +0 -0
  587. /package/dist/{chunk-XGECMN4V.js.map → chunk-IF42CZJH.js.map} +0 -0
  588. /package/dist/{chunk-HOEP5XXW.js.map → chunk-ILX6RI7K.js.map} +0 -0
  589. /package/dist/{chunk-DSUJKXRQ.js.map → chunk-IUY4BDUY.js.map} +0 -0
  590. /package/dist/{chunk-ORXD3SB2.js.map → chunk-J5BG6GTH.js.map} +0 -0
  591. /package/dist/{chunk-STJU6LZF.js.map → chunk-JGKYFH4L.js.map} +0 -0
  592. /package/dist/{chunk-DLSHZLHX.js.map → chunk-JJUOWS3K.js.map} +0 -0
  593. /package/dist/{chunk-75ZSFK7I.js.map → chunk-JLM4O7ZW.js.map} +0 -0
  594. /package/dist/{chunk-2EM7DTD6.js.map → chunk-JMFCG5KA.js.map} +0 -0
  595. /package/dist/{chunk-OHNH7V7X.js.map → chunk-JQ3SLOUP.js.map} +0 -0
  596. /package/dist/{chunk-3ISSVSL5.js.map → chunk-JXPMQMTT.js.map} +0 -0
  597. /package/dist/{chunk-O4MWPCG5.js.map → chunk-KJCCB44M.js.map} +0 -0
  598. /package/dist/{chunk-2BYDZSR5.js.map → chunk-KX4JZXZV.js.map} +0 -0
  599. /package/dist/{chunk-2NWQ32VQ.js.map → chunk-KZ5ZQTBF.js.map} +0 -0
  600. /package/dist/{chunk-4EZST3RL.js.map → chunk-LBNS4VT7.js.map} +0 -0
  601. /package/dist/{chunk-VUKUBHHU.js.map → chunk-LF3FMXGV.js.map} +0 -0
  602. /package/dist/{chunk-VZ34NZXF.js.map → chunk-LFUMRNDK.js.map} +0 -0
  603. /package/dist/{chunk-BC4V2YAK.js.map → chunk-LKHRHBFP.js.map} +0 -0
  604. /package/dist/{chunk-CT7POXIP.js.map → chunk-MZUPTP2B.js.map} +0 -0
  605. /package/dist/{chunk-KTOVE7ZS.js.map → chunk-NF2WEMTU.js.map} +0 -0
  606. /package/dist/{chunk-E5MKB67X.js.map → chunk-OU2JUD4J.js.map} +0 -0
  607. /package/dist/{chunk-LVZ5DNTO.js.map → chunk-OUUH3EQY.js.map} +0 -0
  608. /package/dist/{chunk-HQLGDW2G.js.map → chunk-OV4ARZIX.js.map} +0 -0
  609. /package/dist/{chunk-LZM3BNK3.js.map → chunk-PFNDDLHG.js.map} +0 -0
  610. /package/dist/{chunk-C6I7R7ZH.js.map → chunk-PRFHWAQZ.js.map} +0 -0
  611. /package/dist/{chunk-NQWB6O7Z.js.map → chunk-PUK2TIQX.js.map} +0 -0
  612. /package/dist/{chunk-CM4UUBU5.js.map → chunk-PVORGGT3.js.map} +0 -0
  613. /package/dist/{chunk-IN6QZASY.js.map → chunk-QEHEOSJT.js.map} +0 -0
  614. /package/dist/{chunk-ULCAT6MG.js.map → chunk-QHJ3BYJN.js.map} +0 -0
  615. /package/dist/{chunk-HFFQ642D.js.map → chunk-QRSWXKRV.js.map} +0 -0
  616. /package/dist/{chunk-MJZCTG7C.js.map → chunk-QYKJU45J.js.map} +0 -0
  617. /package/dist/{chunk-NGV62VYV.js.map → chunk-RK5ZEDOE.js.map} +0 -0
  618. /package/dist/{chunk-BGEDMAHU.js.map → chunk-RKP7EEAB.js.map} +0 -0
  619. /package/dist/{chunk-6PDBJULN.js.map → chunk-RRZRQAIT.js.map} +0 -0
  620. /package/dist/{chunk-IUJRGT3T.js.map → chunk-S2QXSX4Q.js.map} +0 -0
  621. /package/dist/{chunk-SYSVKYHX.js.map → chunk-S64P7IA7.js.map} +0 -0
  622. /package/dist/{chunk-DLCEEROX.js.map → chunk-SH35XDFY.js.map} +0 -0
  623. /package/dist/{chunk-AHUSQVQY.js.map → chunk-SWLNTVAX.js.map} +0 -0
  624. /package/dist/{chunk-WJ7BE4TU.js.map → chunk-SXPBC2FP.js.map} +0 -0
  625. /package/dist/{chunk-GPY3JZJJ.js.map → chunk-SXW4FROO.js.map} +0 -0
  626. /package/dist/{chunk-OEPT3ASY.js.map → chunk-TO2GYQR2.js.map} +0 -0
  627. /package/dist/{chunk-XDPAVB5E.js.map → chunk-TWLFK7DD.js.map} +0 -0
  628. /package/dist/{chunk-JNXNTCPZ.js.map → chunk-TZRUHUW5.js.map} +0 -0
  629. /package/dist/{chunk-73ALSVRF.js.map → chunk-U6SMLAQI.js.map} +0 -0
  630. /package/dist/{chunk-BQDYFFER.js.map → chunk-UUN3PLDE.js.map} +0 -0
  631. /package/dist/{chunk-G3QDDD53.js.map → chunk-UZFEJMO6.js.map} +0 -0
  632. /package/dist/{chunk-A75HEHRS.js.map → chunk-V2KDZU2F.js.map} +0 -0
  633. /package/dist/{chunk-MW5JVH3X.js.map → chunk-VQVE3QA2.js.map} +0 -0
  634. /package/dist/{chunk-BGSB3XPW.js.map → chunk-W5WYIDDY.js.map} +0 -0
  635. /package/dist/{chunk-RKXF7Q7V.js.map → chunk-WGDZTF7Y.js.map} +0 -0
  636. /package/dist/{chunk-V2ZDW66A.js.map → chunk-WYP2CB4I.js.map} +0 -0
  637. /package/dist/{chunk-FHDMPQNW.js.map → chunk-X7FILZJH.js.map} +0 -0
  638. /package/dist/{chunk-VMRTLZQL.js.map → chunk-X7HD2YL7.js.map} +0 -0
  639. /package/dist/{chunk-S5BNS2JE.js.map → chunk-XFVXRCMH.js.map} +0 -0
  640. /package/dist/{chunk-DOVE5SYY.js.map → chunk-XNV6ZN7J.js.map} +0 -0
  641. /package/dist/{chunk-4AJD5YEN.js.map → chunk-XTVXWH3Q.js.map} +0 -0
  642. /package/dist/{chunk-7FBX3RI4.js.map → chunk-YLSASLPB.js.map} +0 -0
  643. /package/dist/{chunk-X7KIEFEN.js.map → chunk-YPBPOUGX.js.map} +0 -0
  644. /package/dist/{chunk-DAYIMXLP.js.map → chunk-YZMAY2I6.js.map} +0 -0
  645. /package/dist/{chunk-AES7DMIQ.js.map → chunk-ZAOE2DGD.js.map} +0 -0
  646. /package/dist/{chunk-DKOETPI4.js.map → chunk-ZNHBMI37.js.map} +0 -0
  647. /package/dist/{chunk-6FWHB4ET.js.map → chunk-ZYDBHR63.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{a as m}from"./chunk-NX7MM6XR.js";import{a as e}from"./chunk-ZXGAFQXW.js";import{a as i}from"./chunk-LMYJ6V44.js";import{a as o}from"./chunk-TC7EQZJK.js";var p={employee_communication:o,termination_details:e,paid_time_off:m,additional_information:i};export{p as a};
2
- //# sourceMappingURL=chunk-5MPW7QWT.js.map
@@ -1,2 +0,0 @@
1
- import{a as se,b as fe,c as ye,d as _e,e as ge,f as be,g as Se,i as Ce,j as we,k as ve,l as he,m as Pe,n as Ee,o as Oe,p as Ve,q as Fe,r as Me,s as Ie,t as De,u as Ae,v as Re,w as ke,x as Te}from"./chunk-2DRF5M3J.js";import{a as qe,b as Le,c as je}from"./chunk-EGIXB43W.js";import{a as ce,b as le,f as ue,g as de,h as pe,i as me}from"./chunk-XZMPAJRL.js";import{a as q,b as st,c as _,d as oe,g as ae}from"./chunk-PB6UQ4A4.js";import{a as ie}from"./chunk-MREG2JYT.js";import{f as te,i as ee,j as ne}from"./chunk-UWSG45OM.js";import{X as Zt}from"./chunk-XI55YG73.js";import{a as zt,b,d as Xt,h as y,i as D,u as A,v}from"./chunk-NXRWBI36.js";import{a as re}from"./chunk-XPVYX7LE.js";import{e as Yt}from"./chunk-H2O4CVKF.js";import{a as p}from"./chunk-P37U34EQ.js";import{useEffect as h,useMemo as a,useRef as xe,useState as P}from"react";import Qe from"lodash.omit";import{useQuery as Qn}from"@tanstack/react-query";var Nn=p(()=>{let{client:Q}=Yt(),{data:L}=fe(),d=ye(L)?L?.company?.id??"":"";return Qn({queryKey:["legal-entities",d],queryFn:p(()=>Zt({client:Q,path:{company_id:d},query:{page_size:100}}),"queryFn"),select:p(j=>j.data?.data?.legal_entities,"select"),enabled:!!d})},"useLegalEntities"),Be=p(()=>{let{data:Q}=Nn();return Q?.find(L=>L.is_default)},"useDefaultLegalEntity");var Jn={select_country:null,basic_information:"employment_basic_information",contract_origin:null,contract_details:null,eligibility_questionnaire:null,pricing_plan:null,contract_preview:null,review:null},Un={employment_basic_information:"basic_information"},Ci=p(({countryCode:Q,externalId:L,employmentId:d,skipSteps:j,options:m,initialValues:l})=>{let Ne=m?.excludeProducts||[],gt=xe(m?.onContractReviewed);h(()=>{gt.current=m?.onContractReviewed},[m?.onContractReviewed]);let[u,bt]=P(Q||null),[r,Je]=P(d),[g,St]=P(void 0),et=xe({select_country:{},basic_information:{},contract_origin:{},contract_details:{},contract_preview:{},pricing_plan:{},eligibility_questionnaire:{}}),[N,Ue]=P(void 0),[Ct,wt]=P(!1),[vt,Ke]=P(!0),[ht,Ge]=P(!0),[Pt,He]=P(!0),[ct,Et]=P(null),{steps:We,stepsArray:$e}=a(()=>ce({includeSelectCountry:!j?.includes("select_country"),includeContractOrigin:Pt,includeEligibilityQuestionnaire:Ct,includeContractDetails:ht,includeContractPreview:vt}),[Pt,Ct,ht,vt,j]),{fieldValues:s,stepState:e,setFieldValues:Ot,previousStep:ze,nextStep:Xe,goToStep:J,setStepValues:Vt}=re(We);h(()=>{ct&&(J(ct),Et(null))},[ct,J]);let{data:o,isLoading:Ye,refetch:Ft}=ie({employmentId:r,queryParams:{exclude_files:!0}}),Ze=Be(),{data:Mt}=Te({options:{queryOptions:{enabled:e.currentStep.name==="review"}}}),{status:R}=o||{},E=R&&ue.includes(R),tn=R&&!de.includes(R),en=a(()=>R&&["invited","initiated"].includes(R)?"invited":"not_invited",[R]),It=ee(),Dt=ne(u,m),lt=we(),At=se(),{mutateAsync:Rt}=Pe(lt,At,s),kt=Fe(),Tt=Me(),qt=De(),{mutateAsyncOrThrow:nn}=b(Dt),Lt=ge(),jt=Ce(),Bt=Ie(),{mutateAsyncOrThrow:rn}=b(It),{mutateAsyncOrThrow:on}=b(lt),{mutateAsyncOrThrow:an}=b(Lt),{mutateAsyncOrThrow:xt}=b(jt),{mutateAsyncOrThrow:sn}=b(kt),{mutateAsyncOrThrow:Qt}=b(Tt),{mutateAsyncOrThrow:cn}=b(Bt),{mutateAsyncOrThrow:ln}=b(qt);d&&o?.country?.code&&!u&&bt(o.country.code);let{selectCountryForm:U,isLoading:un,countries:Nt}=Re({jsfModify:m?.jsfModify?.select_country}),ut=a(()=>Nt?.find(t=>t.value===u),[Nt,u]),dn=a(()=>ut?.label,[ut]),pn=e.currentStep.name==="pricing_plan"||!!d&&E,{form:O,isLoading:mn,contractorSubscriptions:nt,filteredContractorSubscriptions:K,refetch:dt,isEligibilityQuestionnaireBlocked:G}=he(r,ut,{jsonSchemaVersion:m?.jsonSchemaVersion,queryOptions:{enabled:pn},excludeProducts:Ne,jsfModify:m?.jsfModify?.pricing_plan}),k=a(()=>!!nt?.find(t=>t.product.identifier===_)?.eligibility_questionnaire?.submitted_at,[nt]),Jt=a(()=>k?!1:N===_,[k,N]),Ut=o?.contractor_type!=="cor",fn=s.contract_origin??e.values?.contract_origin?.contract_origin??o?.contract_details?.contract_origin,B=N===q&&fn==="provided_by_customer";h(()=>{Ge(!B)},[B]),h(()=>{wt(!B&&Jt)},[B,Jt]),h(()=>{Ke(!B&&Ut)},[B,Ut]);let it=a(()=>nt?.find(t=>t.product.identifier===_)?.eligibility_questionnaire?.responses,[nt]),yn=Jn[e.currentStep.name]||"contractor_basic_information",_n=Un[yn],gn=o?.[_n]||{},bn=p(({form:t,options:i={},query:c={},jsonSchemaVersion:I})=>{let x=Object.keys(s).length>0?{...l,...e.values?.[e.currentStep.name],...s}:{...l,...gn};return te({countryCode:u,form:t,fieldValues:x,query:c,options:{...i,queryOptions:{enabled:i.queryOptions?.enabled??!0}},jsonSchemaVersion:I})},"useJSONSchema"),Sn=!!(u&&(e.currentStep.name==="basic_information"||d)),Cn=!!(u==="GBR"&&d&&e.currentStep.name==="basic_information"),{data:H,isLoading:wn}=Ee(d,{enabled:Cn}),{data:rt,isLoading:vn}=Oe(r,{enabled:!!r});h(()=>{rt&&rt.length>0&&!g&&St(rt[0].id)},[rt,g]);let{data:S,isLoading:hn}=bn({form:"contractor_basic_information",options:{jsfModify:Le(u,dn,m),queryOptions:{enabled:Sn}},jsonSchemaVersion:me(m)}),Pn=a(()=>le(o?.basic_information?.provisional_start_date,s?.service_duration?.provisional_start_date),[o?.basic_information?.provisional_start_date,s?.service_duration?.provisional_start_date]),f=a(()=>{let t={standard:q,plus:st,cor:_};if(s.subscription)return s.subscription;let i=e.values?.pricing_plan?.subscription;if(i&&!G)return i;if(k&&!G)return _;if(G&&k)return q;if(K&&K.length>0)return t[o?.contractor_type]||q},[s,e.values,k,o?.contractor_type,G,K]);h(()=>{f&&f!==N&&Ue(f)},[f,N]),h(()=>{He(!j?.includes("contract_origin")&&f===q)},[j,f]);let En=a(()=>({...it,...l,...e.values?.eligibility_questionnaire,...s}),[it,l,e.values?.eligibility_questionnaire,s]),On=a(()=>f===_&&e.currentStep.name==="eligibility_questionnaire"||!!d&&E&&f===_,[f,e.currentStep.name,d,E]),{data:V,isLoading:Vn}=Ve({options:{queryOptions:{enabled:On},jsfModify:m?.jsfModify?.eligibility_questionnaire},fieldValues:En}),Fn=!!(u&&e.currentStep.name==="contract_details"||E),{data:C,isLoading:Mn}=ke({countryCode:u,fieldValues:s,employmentId:r,options:{queryOptions:{enabled:Fn},jsfModify:qe(m?.jsfModify?.contract_details,Pn,f,s,f===_)}}),In=a(()=>e.currentStep.name==="contract_preview"||!!d&&E,[e.currentStep.name,d,E]),{data:F}=_e({fieldValues:s,options:{queryOptions:{enabled:In},jsfModify:je(m,s)}}),{data:M}=Ae({fieldValues:s,options:{jsfModify:m?.jsfModify?.contract_origin}}),{data:pt,isLoading:Dn,refetch:An}=be({employmentId:r,contractDocumentId:g,options:{queryOptions:{enabled:!!g}}}),{hasCompanySignedContract:Rn}=Se({employmentId:r,contractDocumentId:g,options:{queryOptions:{enabled:!!g}}}),n=a(()=>({select_country:U?.fields||[],basic_information:S?.fields||[],contract_origin:M?.fields||[],pricing_plan:O?.fields||[],eligibility_questionnaire:V?.fields||[],contract_details:C?.fields||[],contract_preview:F?.fields||[],review:[]}),[U?.fields,S?.fields,M?.fields,O?.fields,C?.fields,F?.fields,V?.fields]),kn={select_country:null,basic_information:S?.meta["x-jsf-fieldsets"],contract_origin:null,pricing_plan:null,contract_details:C?.meta["x-jsf-fieldsets"],eligibility_questionnaire:null,contract_preview:null,review:null},Tn={select_country:U?.meta?.["x-jsf-presentation"],basic_information:S?.meta?.["x-jsf-presentation"],contract_origin:M?.meta?.["x-jsf-presentation"],pricing_plan:O?.meta?.["x-jsf-presentation"],eligibility_questionnaire:V?.meta?.["x-jsf-presentation"],contract_details:C?.meta?.["x-jsf-presentation"],contract_preview:F?.meta?.["x-jsf-presentation"],review:null},{country:qn,basic_information:ot={},contract_details:Kt={}}=o||{},Gt=qn?.code,W=a(()=>D(n.select_country,{country:u||Gt||""}),[n.select_country,u,Gt]),mt=a(()=>H?.content?Xt(H.content,H.name):null,[H?.content,H?.name]),$=a(()=>{let t={...l,...ot,ir35:o?.contract_details?.ir_35,nationality_status:o?.contract_details?.nationality,...mt&&{ir35_sds_file:[mt]}};return D(n.basic_information,t)},[l,ot,o?.contract_details?.ir_35,o?.contract_details?.nationality,mt,n.basic_information]),Ht=a(()=>{let t={...l,contract_origin:o?.contract_details?.contract_origin};return D(n.contract_origin,t)},[n.contract_origin,l,o?.contract_details?.contract_origin]),z=a(()=>{let i={...{service_duration:{provisional_start_date:ot.provisional_start_date}},...l,...Kt};return D(n.contract_details,i)},[n.contract_details,Kt,l,ot]),X=a(()=>{let t=pt?.contract_document?.signatories?.find(c=>c.type==="company"),i={...l,signature:t?.signature};return D(n.contract_preview,i)},[n.contract_preview,l,pt]),Y=a(()=>{let i={...{subscription:f},...l};return D(n.pricing_plan,i)},[n.pricing_plan,l,f]),Z=a(()=>{let t={...l,...it};return D(n.eligibility_questionnaire,t)},[n.eligibility_questionnaire,l,it]),Ln=a(()=>({select_country:W,basic_information:$,contract_origin:Ht,contract_details:z,contract_preview:X,pricing_plan:Y,eligibility_questionnaire:Z}),[W,$,Ht,z,X,Y,Z]),ft=!!(d&&E&&e.currentStep.name!=="review"),yt=un||hn||Ye||Mn||mn||Dn||wn||vn||Vn,Wt=a(()=>{let i=o?.contractor_type==="cor"||n.contract_preview.length>0;return!!(ft&&!yt&&g&&n.basic_information.length>0&&n.contract_details.length>0&&i)},[ft,yt,g,n.basic_information.length,n.contract_details.length,n.contract_preview.length,o?.contractor_type]);h(()=>{Wt&&(et.current={select_country:A(W,n.select_country,{skipMoneyConversion:!0}),basic_information:A($,n.basic_information,{skipMoneyConversion:!0}),contract_origin:{},contract_details:A(z,n.contract_details,{skipMoneyConversion:!0}),contract_preview:A(X,n.contract_preview,{skipMoneyConversion:!0}),pricing_plan:A(Y,n.pricing_plan,{skipMoneyConversion:!0}),eligibility_questionnaire:A(Z,n.eligibility_questionnaire,{skipMoneyConversion:!0})},Vt({select_country:W,basic_information:$,contract_origin:{},contract_details:z,contract_preview:X,pricing_plan:Y,eligibility_questionnaire:Z,review:{}}),J("review"))},[Wt,J,W,$,z,Vt,n.select_country,n.basic_information,n.contract_details,n.pricing_plan,Y,n.contract_preview,X,n.eligibility_questionnaire,Z]);let jn=p(t=>{J(t)},"goTo"),$t=p(async t=>U&&e.currentStep.name==="select_country"?t:S&&e.currentStep.name==="basic_information"?await y(t,S?.fields,{isPartialValidation:!1}):C&&e.currentStep.name==="contract_details"?await y(t,C?.fields,{isPartialValidation:!1}):F&&e.currentStep.name==="contract_preview"?await y(t,F?.fields,{isPartialValidation:!1}):O&&e.currentStep.name==="pricing_plan"?await y(t,O?.fields,{isPartialValidation:!1}):V&&e.currentStep.name==="eligibility_questionnaire"?await y(t,V?.fields,{isPartialValidation:!1}):M&&e.currentStep.name==="contract_origin"?await y(t,M?.fields,{isPartialValidation:!1}):{},"parseFormValues"),Bn=p(t=>{if(!zt(t))return null;let i=t.normalizedErrors.services_and_deliverables,c=Array.isArray(i)?i[0]:i;return c?.source===ae?{error:c.error,source:c.source,skippable:c.skippable}:null},"extractAiValidationError");async function xn(t){let i=e.currentStep.name,c=await $t(t);switch(i in et.current&&(et.current[i]=A(c,n[i])),e.currentStep.name){case"select_country":return bt(c.country),Promise.resolve({data:{countryCode:c.country}});case"basic_information":{let I=!r&&u,T=r&&u&&o?.country&&o?.country.code!==u;if(I||T){let _t={basic_information:Qe(c,"nationality_status","ir35","ir35_sds_file"),type:"contractor",country_code:u,external_id:L},at=await rn(_t),w=at?.data?.employment?.id;if(!w)throw v("Employment ID not found");return await Rt({employmentId:w}),Je(w),at}else if(r){let x=Qe(c,"nationality_status","ir35","ir35_sds_file");return await Rt({employmentId:r}),nn({employmentId:r,basic_information:x})}return}case"contract_details":{let{services_and_deliverables_ai_warning:I,services_and_deliverables_error_skippable:T,...x}=c,_t=s.services_and_deliverables_error_skippable===!0,at={contract_document:x,skip_ai_checks:_t};try{let w=await on({employmentId:r,payload:at}),tt=w?.data?.contract_document?.id;if(!tt)throw v("Contract document ID not found");return St(tt),w}catch(w){let tt=Bn(w);throw tt&&Ot({...t,services_and_deliverables_ai_warning:pe(f===_),services_and_deliverables_error_skippable:tt.skippable}),w}}case"contract_preview":{if(Rn)return Promise.resolve({data:{contract_document:{id:g}}});let I=await an({employmentId:r,contractDocumentId:g,payload:{signature:c.signature}});return await An(),I}case"pricing_plan":{if(t.subscription===oe)return Promise.resolve({data:{subscription:t.subscription}});if(K.length===0)throw v("No available subscriptions.");if(!t.subscription&&K.length>0)throw v("Please select a subscription plan.");if(G&&[_,st].includes(t.subscription))throw v(`This individual is not eligible for ${ve[t.subscription]}.`);if(k&&t.subscription!==_)try{await cn({employmentId:r}),await dt()}catch(T){if(T?.response?.status!==404)throw T;await dt()}if(t.subscription==q)return xt({employmentId:r,payload:{operation:"downgrade"}});if(t.subscription==st)return xt({employmentId:r,payload:{operation:"upgrade"}});if(t.subscription==_)return k&&o?.contractor_type!=="cor"?Qt({employmentId:r}):Promise.resolve({data:{subscription:t.subscription}});throw v("invalid selection")}case"contract_origin":return t.contract_origin==="provided_by_customer"&&await ln({employmentId:r,contractOrigin:"provided_by_customer",templateType:"contractor_agreement"}),{data:{contractOrigin:t.contract_origin}};case"eligibility_questionnaire":try{if((await sn({employmentId:r,payload:c}))?.data?.is_blocking)throw wt(!1),Et("pricing_plan"),v("This individual is not eligible for Contractor of Record.");return await Qt({employmentId:r})}finally{await dt()}default:throw v("Invalid step state")}}return p(xn,"onSubmit"),{isLoading:yt||ft,fieldValues:s,stepState:e,checkFieldUpdates:Ot,markContractAsReviewed:p(()=>{gt.current?.()},"markContractAsReviewed"),back:ze,next:p(()=>{r&&Ft(),Xe()},"handleNextStep"),goTo:jn,onSubmit:xn,fields:n[e.currentStep.name],meta:{fields:et.current,fieldsets:kn[e.currentStep.name],presentation:Tn[e.currentStep.name]},parseFormValues:$t,canSkipAiValidation:s.services_and_deliverables_error_skippable===!0,handleValidation:p(async t=>{if(e.currentStep.name==="select_country")return U.handleValidation(t);if(S&&e.currentStep.name==="basic_information"){let i=await y(t,S?.fields,{isPartialValidation:!1});return S?.handleValidation(i)}if(C&&e.currentStep.name==="contract_details"){let i=await y(t,C?.fields,{isPartialValidation:!1});return C?.handleValidation(i)}if(F&&e.currentStep.name==="contract_preview"){let i=await y(t,F?.fields,{isPartialValidation:!0});return F?.handleValidation(i)}if(O&&e.currentStep.name==="pricing_plan"){let i=await y(t,O?.fields,{isPartialValidation:!1});return O?.handleValidation(i)}if(V&&e.currentStep.name==="eligibility_questionnaire"){let i=await y(t,V?.fields,{isPartialValidation:!1});return V?.handleValidation(i)}if(M&&e.currentStep.name==="contract_origin"){let i=await y(t,M?.fields,{isPartialValidation:!1});return M?.handleValidation(i)}return null},"handleValidation"),initialValues:Ln,employmentId:r,refetchEmployment:Ft,isSubmitting:It.isPending||Dt.isPending||lt.isPending||Lt.isPending||jt.isPending||At.isPending||kt.isPending||Tt.isPending||Bt.isPending||qt.isPending,documentPreviewPdf:pt,canInvite:tn,isEmploymentReadOnly:E,invitedStatus:en,employment:o,defaultLegalEntity:Ze,needsCompanyVerification:Mt?.some(t=>t.type==="verify_company")??!1,needsRemotePaymentsSetup:Mt?.some(t=>t.type==="setup_remote_payments")??!1,steps:$e}},"useContractorOnboarding");export{Ci as a};
2
- //# sourceMappingURL=chunk-AAOU5HS2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractorOnboarding/hooks.tsx","../src/common/api/legal-entities.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\nimport omit from 'lodash.omit';\nimport { $TSFixMe, JSFFields } 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 useContractorOnboardingDetailsSchemaWithCurrencies,\n CONTRACT_PRODUCT_TITLES,\n useHasCompanySignedContract,\n useCompanyOpenTasks,\n useSetContractOrigin,\n useGetContractOriginSchema,\n} from '@/src/flows/ContractorOnboarding/api';\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, Meta } 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 { useEmploymentQuery } 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 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\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: Meta;\n basic_information: Meta;\n contract_origin: Meta;\n contract_details: Meta;\n contract_preview: Meta;\n pricing_plan: Meta;\n eligibility_questionnaire: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_origin: {},\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 [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 includeEligibilityQuestionnaire: includeEligibilityQuestionnaire,\n includeContractDetails: includeContractDetails,\n includeContractPreview: includeContractPreview,\n }),\n [\n includeContractOrigin,\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 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,\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\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 // 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 selectedContractOrigin =\n (fieldValues.contract_origin as string | undefined) ??\n (stepState.values?.contract_origin?.contract_origin as\n | string\n | undefined) ??\n employment?.contract_details?.contract_origin;\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 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 } = useContractorOnboardingDetailsSchemaWithCurrencies({\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 {\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 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 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 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 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: employment?.contract_details?.contract_origin,\n };\n return getInitialValues(stepFields.contract_origin, initialValues);\n }, [\n stepFields.contract_origin,\n onboardingInitialValues,\n employment?.contract_details?.contract_origin,\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 contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractOriginInitialValues,\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\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 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 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 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 // Step visibility is already reconciled reactively from the selected\n // value, so a plain next() lands on the right step (review when the\n // customer provides their own contract, otherwise eligibility /\n // contract_details). We only persist the choice server-side here.\n if (values.contract_origin === 'provided_by_customer') {\n await setContractOriginMutationAsync({\n employmentId: internalEmploymentId as string,\n contractOrigin: 'provided_by_customer',\n templateType: 'contractor_agreement',\n });\n }\n\n return {\n data: { contractOrigin: values.contract_origin },\n };\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 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: setFieldValues,\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: async (\n values: FieldValues,\n ): 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 return null;\n },\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\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":["useEffect","useMemo","useRef","useState","omit","useQuery","useLegalEntities","__name","client","useClient","identity","useIdentity","companyId","hasCompany","useQuery","getV1CompaniesCompanyIdLegalEntities","data","useDefaultLegalEntity","legalEntities","legalEntity","stepToFormSchemaMap","jsonSchemaToEmployment","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","pendingNavigationStep","setPendingNavigationStep","steps","stepsArray","useMemo","buildSteps","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmploymentQuery","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","updateEmploymentMutationAsync","mutationToPromise","signContractDocumentMutation","useSignContractDocument","manageContractorSubscriptionMutation","usePostManageContractorSubscriptions","deleteContractorCorSubscriptionMutation","useDeleteContractorCorSubscription","createEmploymentMutationAsync","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","manageContractorSubscriptionMutationAsync","createEligibilityQuestionnaireMutationAsync","manageContractorCorSubscriptionMutationAsync","deleteContractorCorSubscriptionMutationAsync","setContractOriginMutationAsync","selectCountryForm","isLoadingCountries","countries","useCountriesSchemaField","selectedCountry","country","countryName","isPricingPlanEnabled","selectContractorSubscriptionForm","isLoadingContractorSubscriptions","contractorSubscriptions","filteredContractorSubscriptions","refetchContractorSubscriptions","isEligibilityQuestionnaireBlocked","useContractorSubscriptionSchemaField","hasEligibilityQuestionnaireSubmitted","subscription","corProductIdentifier","shouldIncludeEligibilityQuestionnaire","shouldIncludeContractPreview","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","useContractorOnboardingDetailsSchemaWithCurrencies","buildContractDetailsJsfModify","isSignatureSchemaEnabled","signatureSchemaForm","useGetContractDocumentSignatureSchema","buildContractPreviewJsfModify","contractOriginForm","useGetContractOriginSchema","documentPreviewPdf","isLoadingDocumentPreviewForm","refetchDocumentPreviewForm","useGetShowContractDocument","hasCompanySignedContract","useHasCompanySignedContract","stepFields","stepFieldsWithFlatFieldsets","stepPresentation","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","convertedIr35File","dataURLtoFile","basicInformationInitialValues","initialValues","contractOriginInitialValues","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","a"]}
@@ -1,2 +0,0 @@
1
- import{b as r}from"./chunk-BC4V2YAK.js";import{n as v}from"./chunk-NXRWBI36.js";import{a as i}from"./chunk-P37U34EQ.js";import{useState as E,useRef as N,useEffect as k}from"react";import{Upload as B,X as M}from"lucide-react";import{jsx as t,jsxs as o}from"react/jsx-runtime";var U=i(l=>l?l.split(",").map(m=>m.trim().toUpperCase()).join(", "):null,"getAcceptedFormats");function w({onChange:l,className:m,multiple:p,accept:f,files:s,id:h}){let d=N(void 0),[a,c]=E(s||[]),u=N(null);k(()=>{s&&s!==d.current&&(d.current=s,c(s))},[s]);let F=i(e=>{e.preventDefault(),u.current?.click()},"handleClick"),y=i(e=>{if(e.target.files&&e.target.files.length>0){let n=Array.from(e.target.files);c([...a,...n]),l([...a,...n])}},"handleChange"),C=i(e=>{c(n=>n.filter(R=>R.name!==e.name)),l(a.filter(n=>n.name!==e.name))},"onRemoveFile"),g=U(f);return o("div",{className:v("flex flex-col items-start gap-4",m),children:[t("input",{type:"file",ref:u,id:h,onChange:y,className:"hidden","aria-label":"File upload",multiple:p,accept:f}),o(r,{type:"button",onClick:F,className:"gap-2",children:[t(B,{className:"h-4 w-4"}),"Choose File"]}),g&&o("div",{className:"text-sm text-gray-600",children:["Accepted formats:"," ",t("span",{className:"font-medium",children:g})]}),a.length===0&&t("div",{className:"text-sm",children:p?t("span",{className:"font-medium",children:"No files selected. You can select multiple files"}):t("span",{className:"font-medium",children:"No file selected."})}),a.length>0&&a.map((e,n)=>o("div",{className:"text-sm flex items-center gap-2",children:["Selected file: ",t("span",{className:"font-medium",children:e.name})," (",Math.round(e.size/1024)," KB)",t(r,{type:"button",variant:"ghost",onClick:()=>C(e),children:t(M,{})})]},n))]})}i(w,"FileUploader");export{w as a};
2
- //# sourceMappingURL=chunk-BS2YN6CS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/ui/file-uploader.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { Button } from '@/src/components/ui/button';\nimport { Upload, X } from 'lucide-react';\nimport { cn } from '@/src/lib/utils';\n\n// Convert accept string to readable format (e.g., \".pdf, .doc\" -> \"PDF, DOC\")\nconst getAcceptedFormats = (accept?: string) => {\n if (!accept) return null;\n return accept\n .split(',')\n .map((ext) => ext.trim().toUpperCase())\n .join(', ');\n};\n\ntype FileUploaderProps = {\n onChange: (files: File[]) => void;\n className?: string;\n multiple?: boolean;\n accept?: string;\n files?: File[];\n id?: string;\n};\n\nexport function FileUploader({\n onChange,\n className,\n multiple,\n accept,\n files: externalFiles,\n id,\n}: FileUploaderProps) {\n const syncedRef = useRef<File[] | undefined>(undefined);\n\n const [files, setFiles] = useState<File[]>(externalFiles || []);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (externalFiles && externalFiles !== syncedRef.current) {\n syncedRef.current = externalFiles;\n // effect is okay here, we just track with a ref to avoid unnecessary re-renders\n // oxlint-disable-next-line react-hooks/set-state-in-effect\n setFiles(externalFiles);\n }\n }, [externalFiles]);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n inputRef.current?.click();\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n const newFiles = Array.from(e.target.files);\n\n setFiles([...files, ...newFiles]);\n onChange([...files, ...newFiles]);\n }\n };\n\n const onRemoveFile = (file: File) => {\n setFiles((prevFiles) => prevFiles.filter((f) => f.name !== file.name));\n onChange(files.filter((f) => f.name !== file.name));\n };\n\n const acceptedFormats = getAcceptedFormats(accept);\n\n return (\n <div className={cn('flex flex-col items-start gap-4', className)}>\n <input\n type='file'\n ref={inputRef}\n id={id}\n onChange={handleChange}\n className='hidden'\n aria-label='File upload'\n multiple={multiple}\n accept={accept}\n />\n <Button type='button' onClick={handleClick} className='gap-2'>\n <Upload className='h-4 w-4' />\n Choose File\n </Button>\n {acceptedFormats && (\n <div className='text-sm text-gray-600'>\n Accepted formats:{' '}\n <span className='font-medium'>{acceptedFormats}</span>\n </div>\n )}\n {files.length === 0 && (\n <div className='text-sm'>\n {!multiple ? (\n <span className='font-medium'>No file selected.</span>\n ) : (\n <span className='font-medium'>\n No files selected. You can select multiple files\n </span>\n )}\n </div>\n )}\n {files.length > 0 &&\n files.map((file, index) => (\n <div key={index} className='text-sm flex items-center gap-2'>\n Selected file: <span className='font-medium'>{file.name}</span> (\n {Math.round(file.size / 1024)} KB)\n <Button\n type='button'\n variant='ghost'\n onClick={() => onRemoveFile(file)}\n >\n <X />\n </Button>\n </div>\n ))}\n </div>\n );\n}\n"],"mappings":"wHAAA,OAAgB,YAAAA,EAAU,UAAAC,EAAQ,aAAAC,MAAiB,QAEnD,OAAS,UAAAC,EAAQ,KAAAC,MAAS,eAkEpB,cAAAC,EAUA,QAAAC,MAVA,oBA9DN,IAAMC,EAAqBC,EAACC,GACrBA,EACEA,EACJ,MAAM,GAAG,EACT,IAAKC,GAAQA,EAAI,KAAK,EAAE,YAAY,CAAC,EACrC,KAAK,IAAI,EAJQ,KADK,sBAiBpB,SAASC,EAAa,CAC3B,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,OAAAL,EACA,MAAOM,EACP,GAAAC,CACF,EAAsB,CACpB,IAAMC,EAAYC,EAA2B,MAAS,EAEhD,CAACC,EAAOC,CAAQ,EAAIC,EAAiBN,GAAiB,CAAC,CAAC,EACxDO,EAAWJ,EAAyB,IAAI,EAE9CK,EAAU,IAAM,CACVR,GAAiBA,IAAkBE,EAAU,UAC/CA,EAAU,QAAUF,EAGpBK,EAASL,CAAa,EAE1B,EAAG,CAACA,CAAa,CAAC,EAElB,IAAMS,EAAchB,EAAC,GAA2C,CAC9D,EAAE,eAAe,EACjBc,EAAS,SAAS,MAAM,CAC1B,EAHoB,eAKdG,EAAejB,EAAC,GAA2C,CAC/D,GAAI,EAAE,OAAO,OAAS,EAAE,OAAO,MAAM,OAAS,EAAG,CAC/C,IAAMkB,EAAW,MAAM,KAAK,EAAE,OAAO,KAAK,EAE1CN,EAAS,CAAC,GAAGD,EAAO,GAAGO,CAAQ,CAAC,EAChCd,EAAS,CAAC,GAAGO,EAAO,GAAGO,CAAQ,CAAC,CAClC,CACF,EAPqB,gBASfC,EAAenB,EAACoB,GAAe,CACnCR,EAAUS,GAAcA,EAAU,OAAQC,GAAMA,EAAE,OAASF,EAAK,IAAI,CAAC,EACrEhB,EAASO,EAAM,OAAQW,GAAMA,EAAE,OAASF,EAAK,IAAI,CAAC,CACpD,EAHqB,gBAKfG,EAAkBxB,EAAmBE,CAAM,EAEjD,OACEH,EAAC,OAAI,UAAW0B,EAAG,kCAAmCnB,CAAS,EAC7D,UAAAR,EAAC,SACC,KAAK,OACL,IAAKiB,EACL,GAAIN,EACJ,SAAUS,EACV,UAAU,SACV,aAAW,cACX,SAAUX,EACV,OAAQL,EACV,EACAH,EAAC2B,EAAA,CAAO,KAAK,SAAS,QAAST,EAAa,UAAU,QACpD,UAAAnB,EAAC6B,EAAA,CAAO,UAAU,UAAU,EAAE,eAEhC,EACCH,GACCzB,EAAC,OAAI,UAAU,wBAAwB,8BACnB,IAClBD,EAAC,QAAK,UAAU,cAAe,SAAA0B,EAAgB,GACjD,EAEDZ,EAAM,SAAW,GAChBd,EAAC,OAAI,UAAU,UACZ,SAACS,EAGAT,EAAC,QAAK,UAAU,cAAc,4DAE9B,EAJAA,EAAC,QAAK,UAAU,cAAc,6BAAiB,EAMnD,EAEDc,EAAM,OAAS,GACdA,EAAM,IAAI,CAACS,EAAMO,IACf7B,EAAC,OAAgB,UAAU,kCAAkC,4BAC5CD,EAAC,QAAK,UAAU,cAAe,SAAAuB,EAAK,KAAK,EAAO,KAC9D,KAAK,MAAMA,EAAK,KAAO,IAAI,EAAE,OAC9BvB,EAAC4B,EAAA,CACC,KAAK,SACL,QAAQ,QACR,QAAS,IAAMN,EAAaC,CAAI,EAEhC,SAAAvB,EAAC+B,EAAA,EAAE,EACL,IATQD,CAUV,CACD,GACL,CAEJ,CA5FgB3B,EAAAG,EAAA","names":["useState","useRef","useEffect","Upload","X","jsx","jsxs","getAcceptedFormats","__name","accept","ext","FileUploader","onChange","className","multiple","externalFiles","id","syncedRef","useRef","files","setFiles","useState","inputRef","useEffect","handleClick","handleChange","newFiles","onRemoveFile","file","prevFiles","f","acceptedFormats","cn","Button","Upload","index","X"]}
@@ -1,2 +0,0 @@
1
- import{a as h}from"./chunk-3UDRMQNE.js";import{a as E}from"./chunk-YDL42SVF.js";import{a as g}from"./chunk-VDRNNOVA.js";import{b as p}from"./chunk-TZIDQ5O3.js";import{a as y}from"./chunk-NW3D7CPK.js";import{d as w}from"./chunk-XZMPAJRL.js";import{a as b,h as S,i as C}from"./chunk-PB6UQ4A4.js";import{a as f,c as v}from"./chunk-WDO7XH6B.js";import{a as t}from"./chunk-P37U34EQ.js";import{addYears as I,format as u}from"date-fns";import{Fragment as D,jsx as _,jsxs as F}from"react/jsx-runtime";var x=t(n=>n===b,"isStandardPricingPlan"),M=t((n,i)=>{let e=i&&i<u(new Date,"yyyy-MM-dd");if(!n&&e)return p({severity:"warning",description:"Backdating the service start date is not supported in the selected Contractor Management plan."})},"showBackDateWarning");function R(n,i,e){e({...i,services_and_deliverables_ai_warning:"",services_and_deliverables_error_skippable:!1})}t(R,"onServicesAndDeliverablesChange");var $=t((n,i,e,r,a)=>{let d=x(e),c=r?.service_duration?.provisional_start_date,l=M(d,c),o=p({severity:"warning",title:"Possible misclassification risk",description:a?C:S});return{...n,create:{...n?.create,services_and_deliverables_ai_warning:{type:"string","x-jsf-presentation":{inputType:"hidden"}},services_and_deliverables_error_skippable:{type:"boolean","x-jsf-presentation":{inputType:"hidden"}}},fields:{...n?.fields,"service_duration.provisional_start_date":{description:i,"x-jsf-presentation":{minDate:d?void 0:u(new Date,"yyyy-MM-dd"),...l}},"service_duration.expiration_date":{"x-jsf-presentation":{calculateDynamicProperties:t(s=>{let m=a&&s.service_duration?.provisional_start_date?I(y(s.service_duration.provisional_start_date),1):void 0;return{maxDate:m?u(m,"yyyy-MM-dd"):void 0}},"calculateDynamicProperties")}},services_and_deliverables:{onChange:R,"x-jsf-presentation":{calculateDynamicProperties:t(s=>({statement:s.services_and_deliverables_ai_warning?o.statement:void 0}),"calculateDynamicProperties")}}}}},"buildContractDetailsJsfModify"),z=t((n,i,e)=>{let r=n==="SAU",a=n==="GBR",d=w(n);if(!r&&!a&&!d)return e?.jsfModify?.basic_information;if(a)return{...e?.jsfModify?.basic_information,create:{...e?.jsfModify?.basic_information?.create,ir35:{title:"IR35 Status",description:t(()=>F(D,{children:["What's your contractor's employment status?"," ",_(v,{zendeskId:f.ir35Status,children:"Learn more about IR35"})]}),"description"),oneOf:[{const:"inside",title:"Inside IR35 (deemed employee)"},{const:"outside",title:"Outside IR35"},{const:"exempt",title:"Exempt from IR35"}],"x-jsf-presentation":{inputType:"select"}},ir35_sds_file:{title:"Upload SDS",description:"Status determination statement",type:"string","x-jsf-presentation":{inputType:"file",accept:g.document,multiple:!1,maxSize:20971520,calculateDynamicProperties:t(o=>{let s=o.ir35;return{isVisible:s==="inside"||s==="outside"}},"calculateDynamicProperties")}}},allOf:[{if:{properties:{ir35:{enum:["inside","outside"]}}},then:{required:["ir35_sds_file"]},else:{properties:{ir35_sds_file:!1}}}],required:["ir35"],orderRoot:t(o=>[...o,"ir35","ir35_sds_file"],"orderRoot")};let c=r?"Is your contractor a Saudi Arabia national, or a non-Saudi national contracting via a local business entity or under a Special Privilege Iqama visa?":`Is the contractor a ${i??"selected country"} national, or a non-${i??"selected country"} national contracting through their local business entity?`,l=r?"Please be aware that contracting with non-Saudi Arabia nationals that are not operating as a company or under a Special Privilege Iqama visa can lead to fines for operating without proper work authorization. If you are concerned, please speak with the Contractor and/or local Saudi Arabia counsel to ensure compliance.":`Be aware that the Contractor must be a ${i??"selected country"} national, or a non-${i??"selected country"} national operating through their company to comply with the legal requirements for performing services and deliverables as a contractor in ${i??"selected country"}. If you are concerned, speak with the Contractor and/or local counsel to ensure compliance.`;return{...e?.jsfModify?.basic_information,create:{...e?.jsfModify?.basic_information?.create,nationality_status:{title:c,description:"",type:"string",oneOf:[{const:"national",description:"",title:"Yes"},{const:"non_national",description:l,title:"No"}],"x-jsf-presentation":{inputType:"radio"}}},required:["nationality_status"],orderRoot:t(o=>[...o,"nationality_status"],"orderRoot")}},"buildBasicInformationJsfModify"),G=t((n,i)=>{let e=n?.jsfModify?.contract_preview?.fields;return{fields:{contract_preview_header:{...e?.contract_preview_header,"x-jsf-presentation":{Component:t(r=>{let a=e?.contract_preview_header?.["x-jsf-presentation"]?.Component||h;return _(a,{...r})},"Component")}},contract_preview_statement:{...e?.contract_preview_statement,"x-jsf-presentation":{Component:t(r=>{let a=e?.contract_preview_statement?.["x-jsf-presentation"]?.Component||E;return _(a,{reviewCompleted:!!i?.review_completed,...r})},"Component")}},signature:{...e?.signature,"x-jsf-presentation":{calculateDynamicProperties:t(r=>({isVisible:!!r.review_completed}),"calculateDynamicProperties"),...e?.signature?.["x-jsf-presentation"]}}}}},"buildContractPreviewJsfModify");export{$ as a,z as b,G as c};
2
- //# sourceMappingURL=chunk-EGIXB43W.js.map
@@ -1,2 +0,0 @@
1
- import{a as _}from"./chunk-S5BNS2JE.js";import{F as p,J as y,N as f,Z as h,k as c,qa as g}from"./chunk-XI55YG73.js";import{e as r}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as a,useQuery as F}from"@tanstack/react-query";var A=t((e,n,o,s,i)=>{let{client:x}=r(),d=s?.employmentId,u=s?.jurisdiction;return F({queryKey:["gp-employee-form-schema",e,n,d,u],enabled:!!e&&(s?.enabled??!0),retry:!1,queryFn:t(async()=>{let l={...d?{employment_id:d}:{},...u?{jurisdiction:u}:{}},m=await y({client:x,headers:{Authorization:""},path:{country_code:e,form:n},...Object.keys(l).length>0?{query:l}:{}});if(m.error||!m.data)throw new Error(`Failed to fetch ${n} schema`);return m},"queryFn"),select:t(({data:l})=>_(l?.data||{},o,i?{jsfModify:i}:void 0),"select")})},"useGPEmployeeFormSchema"),E=t(e=>{let{client:n}=r();return a({mutationFn:t(o=>{let{name:s,...i}=o;return h({client:n,headers:{Authorization:"","x-rf-employment-id":e},body:{personal_details:i}})},"mutationFn")})},"useGPUpdatePersonalDetails"),P=t(e=>{let{client:n}=r();return a({mutationFn:t(o=>p({client:n,headers:{Authorization:"","x-rf-employment-id":e},body:{address_details:o}}),"mutationFn")})},"useGPUpdateHomeAddress"),C=t(e=>{let{client:n}=r();return a({mutationFn:t(o=>c({client:n,headers:{Authorization:"","x-rf-employment-id":e},body:{bank_account_details:o}}),"mutationFn")})},"useGPUpdateBankAccount"),R=t(e=>{let{client:n}=r();return a({mutationFn:t(o=>f({client:n,headers:{Authorization:"","x-rf-employment-id":e},body:{federal_taxes:o}}),"mutationFn")})},"useGPUpdateFederalTaxes"),G=t((e,n)=>{let{client:o}=r();return a({mutationFn:t(s=>{if(!e)throw new Error("A `jurisdiction` (US state code) is required to submit state taxes.");return g({client:o,headers:{Authorization:"","x-rf-employment-id":n},path:{jurisdiction:e},body:{state_taxes:s}})},"mutationFn")})},"useGPUpdateStateTaxes");export{A as a,E as b,P as c,C as d,R as e,G as f};
2
- //# sourceMappingURL=chunk-H3JAWJOE.js.map
@@ -1,2 +0,0 @@
1
- import{a as n,c as i}from"./chunk-WDO7XH6B.js";import{n as e}from"./chunk-NXRWBI36.js";import{a as o}from"./chunk-P37U34EQ.js";import{Fragment as s,jsx as t,jsxs as r}from"react/jsx-runtime";var l=["You submit your termination request.","Remote reviews your request along with the employment agreement, local labor laws, and any collective bargaining agreements in place.","A lifecycle specialist contacts you if they need additional details. Sometimes they will request a call.","Depending on the country-specific laws and the terms of the employment agreement, Remote may need to seek additional legal advice. We\u2019ll let you know if there are additional charges before proceeding.","Terms and conditions for the termination are finalized.","You verbally communicate the termination to the employee.","Remote shares termination documents with the employee.","The employee signs the termination documents if required.","Remote processes the final salary and offboards the employee."],f=o(()=>r(s,{children:[t("h3",{className:e("RemoteFlows__TerminationDialogInfoContent__Title"),children:"Please read carefully before you continue"}),t("p",{className:e("RemoteFlows__TerminationDialogInfoContent__Description"),children:"Please do not inform the employee of the termination. Remote will lead communication with them after you submit this form and they finalize the termination terms."}),t("p",{className:e("RemoteFlows__TerminationDialogInfoContent__Description RemoteFlows__TerminationDialogInfoContent__FollowUpDescription"),children:"If you already informed them, that's okay. Remote will ask for the details regarding that communication and they'll take it from there."}),t(i,{className:e("RemoteFlows__TerminationDialogInfoContent__ZendeskTriggerButton text-sm"),zendeskId:n.terminationEmployeeCommunication,children:"Learn more about employee communication"}),t("h3",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessTitle"),children:"The termination process"}),t("ul",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessList list-disc list-inside"),children:l.map((a,m)=>t("li",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessListItem"),children:a},m))})]}),"TerminationDialogInfoContent");export{f as a};
2
- //# sourceMappingURL=chunk-HLLM7OZN.js.map
@@ -1,2 +0,0 @@
1
- import{a as e}from"./chunk-CW7CHRMN.js";import{a as s}from"./chunk-2BYDZSR5.js";import{a as p}from"./chunk-DB4JHJ3Z.js";import{a as c}from"./chunk-BQDYFFER.js";import{a as g}from"./chunk-KVUKJU5U.js";import{a as i}from"./chunk-KV2B2CRW.js";import{a as f}from"./chunk-NGV62VYV.js";import{a as l}from"./chunk-4EZST3RL.js";import{a as u}from"./chunk-A75HEHRS.js";import{a as d}from"./chunk-SVVZOMLQ.js";import{a as S}from"./chunk-O4MWPCG5.js";import{a as m}from"./chunk-MJ6Z7ARR.js";import{a as n}from"./chunk-Q3ALCPJN.js";import{a}from"./chunk-AAOU5HS2.js";import{a as o}from"./chunk-P37U34EQ.js";import{useId as F,useRef as y,useMemo as D}from"react";import{jsx as V}from"react/jsx-runtime";var L=o(({render:C,employmentId:b,externalId:v,countryCode:O,skipSteps:B,initialValues:w,options:P})=>{let R=F(),t=y(void 0),I=D(()=>({setValue:t}),[]),r=a({options:{...P,onContractReviewed:o(()=>{t.current&&t.current("review_completed",!0)},"onContractReviewed")},employmentId:b,externalId:v,countryCode:O,skipSteps:B,initialValues:w});return V(n.Provider,{value:{contractorOnboardingBag:r,formId:R,formRef:I},children:C({contractorOnboardingBag:r,components:{BasicInformationStep:m,SelectCountryStep:i,BackButton:e,SubmitButton:p,PricingPlanStep:c,EligibilityQuestionnaireStep:S,ContractOriginStep:l,ContractDetailsStep:f,ContractPreviewStep:u,OnboardingInvite:s,ContractReviewButton:d,SaveDraftButton:g}})})},"ContractorOnboardingFlow");export{L as a};
2
- //# sourceMappingURL=chunk-LUADE5XK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractorOnboarding/ContractorOnboarding.tsx"],"sourcesContent":["import { UseFormSetValue } from 'react-hook-form';\nimport { useId, useRef, useMemo } from 'react';\nimport { OnboardingBack } from '@/src/flows/ContractorOnboarding/components/OnboardingBack';\nimport { SelectCountryStep } from '@/src/flows/ContractorOnboarding/components/SelectCountryStep';\nimport { ContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { useContractorOnboarding } from '@/src/flows/ContractorOnboarding/hooks';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport { BasicInformationStep } from '@/src/flows/ContractorOnboarding/components/BasicInformationStep';\nimport { OnboardingSubmit } from '@/src/flows/ContractorOnboarding/components/OnboardingSubmit';\nimport { PricingPlanStep } from '@/src/flows/ContractorOnboarding/components/PricingPlan';\nimport { ContractDetailsStep } from '@/src/flows/ContractorOnboarding/components/ContractDetailsStep';\nimport { ContractPreviewStep } from '@/src/flows/ContractorOnboarding/components/ContractPreviewStep';\nimport { OnboardingInvite } from '@/src/flows/ContractorOnboarding/components/OnboardingInvite';\nimport { ContractReviewButton } from '@/src/flows/ContractorOnboarding/components/ContractReviewButton';\nimport { EligibilityQuestionnaireStep } from '@/src/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep';\nimport { SaveDraftButton } from '@/src/flows/ContractorOnboarding/components/SaveDraftButton';\nimport { ContractOriginStep } from '@/src/flows/ContractorOnboarding/components/ContractOriginStep';\n\nexport const ContractorOnboardingFlow = ({\n render,\n employmentId,\n externalId,\n countryCode,\n skipSteps,\n initialValues,\n options,\n}: ContractorOnboardingFlowProps) => {\n const formId = useId();\n // Store form's setValue method in ref to allow sibling components\n // to update form state directly (e.g., ContractReviewButton setting review_completed)\n const setValueRef = useRef<\n UseFormSetValue<Record<string, unknown>> | undefined\n >(undefined);\n const formRef = useMemo(() => ({ setValue: setValueRef }), []);\n\n const contractorOnboardingBag = useContractorOnboarding({\n options: {\n ...options,\n onContractReviewed: () => {\n // Sync with internal form when contract is marked as reviewed\n if (setValueRef.current) {\n setValueRef.current('review_completed', true);\n }\n },\n },\n employmentId,\n externalId,\n countryCode,\n skipSteps,\n initialValues,\n });\n\n return (\n <ContractorOnboardingContext.Provider\n value={{ contractorOnboardingBag, formId, formRef }}\n >\n {render({\n contractorOnboardingBag,\n components: {\n BasicInformationStep: BasicInformationStep,\n SelectCountryStep: SelectCountryStep,\n BackButton: OnboardingBack,\n SubmitButton: OnboardingSubmit,\n PricingPlanStep: PricingPlanStep,\n EligibilityQuestionnaireStep: EligibilityQuestionnaireStep,\n ContractOriginStep: ContractOriginStep,\n ContractDetailsStep: ContractDetailsStep,\n ContractPreviewStep: ContractPreviewStep,\n OnboardingInvite: OnboardingInvite,\n ContractReviewButton: ContractReviewButton,\n SaveDraftButton: SaveDraftButton,\n },\n })}\n </ContractorOnboardingContext.Provider>\n );\n};\n"],"mappings":"mlBACA,OAAS,SAAAA,EAAO,UAAAC,EAAQ,WAAAC,MAAe,QAoDnC,cAAAC,MAAA,oBAnCG,IAAMC,EAA2BC,EAAA,CAAC,CACvC,OAAAC,EACA,aAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,cAAAC,EACA,QAAAC,CACF,IAAqC,CACnC,IAAMC,EAASC,EAAM,EAGfC,EAAcC,EAElB,MAAS,EACLC,EAAUC,EAAQ,KAAO,CAAE,SAAUH,CAAY,GAAI,CAAC,CAAC,EAEvDI,EAA0BC,EAAwB,CACtD,QAAS,CACP,GAAGR,EACH,mBAAoBP,EAAA,IAAM,CAEpBU,EAAY,SACdA,EAAY,QAAQ,mBAAoB,EAAI,CAEhD,EALoB,qBAMtB,EACA,aAAAR,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,cAAAC,CACF,CAAC,EAED,OACER,EAACkB,EAA4B,SAA5B,CACC,MAAO,CAAE,wBAAAF,EAAyB,OAAAN,EAAQ,QAAAI,CAAQ,EAEjD,SAAAX,EAAO,CACN,wBAAAa,EACA,WAAY,CACV,qBAAsBG,EACtB,kBAAmBC,EACnB,WAAYC,EACZ,aAAcC,EACd,gBAAiBC,EACjB,6BAA8BC,EAC9B,mBAAoBC,EACpB,oBAAqBC,EACrB,oBAAqBC,EACrB,iBAAkBC,EAClB,qBAAsBC,EACtB,gBAAiBC,CACnB,CACF,CAAC,EACH,CAEJ,EAzDwC","names":["useId","useRef","useMemo","jsx","ContractorOnboardingFlow","__name","render","employmentId","externalId","countryCode","skipSteps","initialValues","options","formId","useId","setValueRef","useRef","formRef","useMemo","contractorOnboardingBag","useContractorOnboarding","ContractorOnboardingContext","BasicInformationStep","SelectCountryStep","OnboardingBack","OnboardingSubmit","PricingPlanStep","EligibilityQuestionnaireStep","ContractOriginStep","ContractDetailsStep","ContractPreviewStep","OnboardingInvite","ContractReviewButton","SaveDraftButton"]}
@@ -1,2 +0,0 @@
1
- import{R as r,d as m}from"./chunk-XI55YG73.js";import{e as o}from"./chunk-H2O4CVKF.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as p,useQuery as u}from"@tanstack/react-query";var f=e(({employmentId:t,queryParams:n,enabled:s=!0})=>{let{client:l}=o();return u({queryKey:["employment",t],retry:!1,queryFn:e(()=>r({client:l,headers:{Authorization:""},path:{employment_id:t},query:n}),"queryFn"),enabled:!!t&&s,select:e(({data:i})=>i?.data?.employment,"select")})},"useEmploymentQuery"),h=e(()=>{let{client:t}=o();return p({mutationFn:e(({employmentId:n})=>m({client:t,headers:{Authorization:""},path:{employment_id:n}}),"mutationFn")})},"useDiscardEmploymentMutation");export{f as a,h as b};
2
- //# sourceMappingURL=chunk-MREG2JYT.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/api/employment.ts"],"sourcesContent":["import {\n getV1EmploymentsEmploymentId,\n GetV1EmploymentsEmploymentIdResponse,\n postV1CancelOnboardingEmploymentId,\n} from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport { useMutation, useQuery, UseQueryResult } from '@tanstack/react-query';\nimport { Client } from '@/src/client/client';\n\n/**\n * Hook to retrieve employment details for a specific employment ID.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} params.employmentId - The ID of the employment to fetch details for.\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the employment details.\n */\nexport const useEmploymentQuery = ({\n employmentId,\n queryParams,\n enabled = true,\n}: {\n employmentId: string;\n queryParams?: $TSFixMe; // TODO: we need to generate openapi-ts types but it's broken at the moment\n /** Optional. Set to `false` to skip the query, e.g. when the caller's token can't reach this endpoint. */\n enabled?: boolean;\n}): UseQueryResult<\n GetV1EmploymentsEmploymentIdResponse['data']['employment'],\n unknown\n> => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['employment', employmentId],\n retry: false,\n queryFn: () => {\n return getV1EmploymentsEmploymentId({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: { employment_id: employmentId },\n query: queryParams,\n });\n },\n enabled: !!employmentId && enabled,\n select: ({ data }) => data?.data?.employment,\n });\n};\n\n/**\n * Hook to discard an employment.\n *\n * @returns {UseMutationResult<void, unknown, { employmentId: string }, unknown>} - The mutation result.\n */\nexport const useDiscardEmploymentMutation = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: ({ employmentId }: { employmentId: string }) => {\n return postV1CancelOnboardingEmploymentId({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: { employment_id: employmentId },\n });\n },\n });\n};\n"],"mappings":"+HAOA,OAAS,eAAAA,EAAa,YAAAC,MAAgC,wBAU/C,IAAMC,EAAqBC,EAAA,CAAC,CACjC,aAAAC,EACA,YAAAC,EACA,QAAAC,EAAU,EACZ,IAQK,CACH,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,aAAcL,CAAY,EACrC,MAAO,GACP,QAASD,EAAA,IACAO,EAA6B,CAClC,OAAQH,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAM,CAAE,cAAeH,CAAa,EACpC,MAAOC,CACT,CAAC,EARM,WAUT,QAAS,CAAC,CAACD,GAAgBE,EAC3B,OAAQH,EAAA,CAAC,CAAE,KAAAQ,CAAK,IAAMA,GAAM,MAAM,WAA1B,SACV,CAAC,CACH,EA9BkC,sBAqCrBC,EAA+BT,EAAA,IAAM,CAChD,GAAM,CAAE,OAAAI,CAAO,EAAIC,EAAU,EAC7B,OAAOK,EAAY,CACjB,WAAYV,EAAA,CAAC,CAAE,aAAAC,CAAa,IACnBU,EAAmC,CACxC,OAAQP,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAM,CAAE,cAAeH,CAAa,CACtC,CAAC,EAPS,aASd,CAAC,CACH,EAb4C","names":["useMutation","useQuery","useEmploymentQuery","__name","employmentId","queryParams","enabled","client","useClient","useQuery","getV1EmploymentsEmploymentId","data","useDiscardEmploymentMutation","useMutation","postV1CancelOnboardingEmploymentId"]}
@@ -1,2 +0,0 @@
1
- import{a as B}from"./chunk-CM4UUBU5.js";import{a as oe}from"./chunk-UCBZMQGL.js";import{b as te,c as re,f as ne}from"./chunk-RRERBS7F.js";import{a as ee}from"./chunk-BODQC6OK.js";import{c as O}from"./chunk-WDO7XH6B.js";import{c as g,i as x,m as j}from"./chunk-4FGKIGKF.js";import{l as X,m as Y,n as V,r as z}from"./chunk-NXRWBI36.js";import{b as h,c as T}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{Fragment as to,useEffect as ro,useRef as Ve}from"react";import _ from"lodash.omit";import{jsx as ie}from"react/jsx-runtime";function le({description:e,label:o,name:t,minDate:r,maxDate:i,onChange:l,component:a,...m}){let{components:u}=h(),{control:c}=g(),f=T(),s;m.meta?.mot&&typeof m.meta.mot=="number"?s=X(m.meta.mot):typeof r=="string"&&(s=new Date(`${r}T00:00:00`));let F;return i&&(F=new Date(`${i}T23:59:59`)),ie(x,{control:c,name:t,render:({field:C,fieldState:S})=>{let p=a||u?.date;if(!p)throw new Error(`Date picker component not found for field ${t}`);let b={description:e,label:o,name:t,onChange:l,transformHtml:f,...s&&{minDate:s.toISOString()},...F&&{maxDate:F.toISOString()},...m};return ie(p,{field:{...C,onChange:n(y=>{C.onChange(y),l?.(y)},"onChange")},fieldState:S,fieldData:b})}})}n(le,"DatePickerField");import{jsx as se}from"react/jsx-runtime";var Le=n((e,o)=>{if(!o)return null;for(let t of e)if(t.size>o){let r=Math.round(o/1048576),i=Math.round(t.size/(1024*1024));return`File "${t.name}" exceeds maximum size of ${r}MB (file is ${i}MB)`}return null},"validateFileSize");function me({name:e,description:o,label:t,multiple:r,onChange:i,component:l,accept:a,maxSize:m,...u}){let{components:c}=h(),{control:f,setError:s,clearErrors:F}=g(),C=T(),S=n(async(p,b)=>{let y=Le(p,m);if(y){s(e,{message:y});return}F(e),b.onChange(p),i?.(p)},"handleOnChange");return se(x,{control:f,name:e,render:({field:p,fieldState:b})=>{let y=l||c.file;if(!y)throw new Error(`File upload component not found for field ${e}`);let P={name:e,description:o,label:t,multiple:r,accept:a,maxFileSize:m,transformHtml:C,...u};return se(y,{field:{...p,value:p.value,onChange:n(async w=>S(w,p),"onChange")},fieldState:b,fieldData:P})}})}n(me,"FileUploadField");import{jsx as ae}from"react/jsx-runtime";function J({component:e,onChange:o,...t}){let{components:r}=h(),{control:i}=g(),l=T();return ae(x,{control:i,name:t.name,render:({field:a,fieldState:m})=>{let u=e||r.number;if(!u)throw new Error(`Number component not found for field ${t.name}`);let c={onChange:o,transformHtml:l,...t};return ae(u,{field:{...a,onChange:n(f=>{a.onChange(f),o?.(f)},"onChange")},fieldState:m,fieldData:c})}})}n(J,"NumberField");import{jsx as de}from"react/jsx-runtime";function pe({name:e,defaultValue:o,description:t,label:r,options:i,onChange:l,component:a,...m}){let{components:u}=h(),{control:c}=g(),f=T();return de(x,{control:c,name:e,defaultValue:o,render:({field:s,fieldState:F})=>{let C=a||u?.radio;if(!C)throw new Error(`Radio group component not found for field ${e}`);let S={name:e,defaultValue:o,description:t,label:r,options:i,transformHtml:f,...m};return de(C,{field:{...s,onChange:n(p=>{s.onChange(p),l?.(p)},"onChange")},fieldState:F,fieldData:S})}})}n(pe,"RadioGroupField");import{jsx as ce}from"react/jsx-runtime";function ue({label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,component:a,...m}){let{control:u}=g(),{components:c}=h(),f=T();return ce(x,{defaultValue:r,control:u,name:o,render:({field:s,fieldState:F})=>{let C=a||c?.select;if(!C)throw new Error(`Select component not found for field ${o}`);let S={label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,transformHtml:f,...m};return ce(C,{field:{...s,onChange:n(p=>{let y=(Array.isArray(m.jsonType)?m.jsonType.includes("number"):m.jsonType==="number")?Number(p):p;s.onChange(y),l?.(y)},"onChange")},fieldState:F,fieldData:S})}})}n(ue,"SelectField");import{jsx as Fe}from"react/jsx-runtime";function fe({label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,$meta:a,component:m,...u}){let{control:c}=g(),{components:f}=h(),s=T();return Fe(x,{defaultValue:r,control:c,name:o,render:({field:F,fieldState:C})=>{let S=m||f.countries;if(!S)throw new Error(`Country component not found for field ${o}`);let p={label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,$meta:a,transformHtml:s,...u};return Fe(S,{field:{...F,onChange:n(b=>{F.onChange(b),l?.(b)},"onChange")},fieldState:C,fieldData:p})}})}n(fe,"CountryField");import{jsx as Ce}from"react/jsx-runtime";function ge({name:e,description:o,label:t,onChange:r,maxLength:i,component:l,...a}){let{components:m}=h(),{control:u}=g(),c=T();return Ce(x,{control:u,name:e,render:({field:f,fieldState:s})=>{let F=l||m.textarea;if(!F)throw new Error(`Text area component not found for field ${e}`);let C={name:e,description:o,label:t,maxLength:i,transformHtml:c,...a};return Ce(F,{field:{...f,onChange:n(S=>{f.onChange(S),r?.(S)},"onChange")},fieldState:s,fieldData:C})}})}n(ge,"TextAreaField");import{jsx as he}from"react/jsx-runtime";function Se({component:e,onChange:o,...t}){let{components:r}=h(),{control:i}=g(),l=T();return he(x,{control:i,name:t.name,render:({field:a,fieldState:m})=>{let u=e||r.email;if(!u)throw new Error(`Email component not found for field ${t.name}`);let c={onChange:o,transformHtml:l,...t};return he(u,{field:{...a,onChange:n(f=>{a.onChange(f),o?.(f)},"onChange")},fieldState:m,fieldData:c})}})}n(Se,"EmailField");import{useEffect as ze}from"react";import{jsx as Te}from"react/jsx-runtime";function xe(e){let{control:o,setValue:t}=g();return ze(()=>{e.const!==void 0&&e.const===e.default&&e.name&&t(e.name,e.const)},[e.const,e.default,e.name,t]),Te(x,{control:o,name:e.name,render:({field:r})=>Te("input",{...r,type:"hidden"})})}n(xe,"HiddenField");import{useEffect as Oe,useState as Ge}from"react";import{jsx as ye}from"react/jsx-runtime";function Pe(e){let{components:o}=h(),{setValue:t,control:r,watch:i}=g(),l=T(),a=i(e.name),[m,u]=Ge(a),{workHoursSummary:c,breakSummary:f}=re(m),s=te(m);Oe(()=>{t(e.name,m)},[m,e.name,t]);function F(p){u(p)}n(F,"onSubmit");let C=e.component||o["work-schedule"];if(!C)throw new Error(`Work schedule component not found for field ${e.name}`);let S={...e,onSubmit:F,currentSchedule:m,transformHtml:l,defaultFormattedValue:{workHoursSummary:c,breakSummary:f,totalWorkHours:s}};return ye(x,{control:r,name:e.name,render:({field:p,fieldState:b})=>ye(C,{field:{...p,onChange:n(y=>{p.onChange(y),e.onChange?.(y)},"onChange")},fieldState:b,fieldData:S})})}n(Pe,"WorkScheduleField");import{jsx as be}from"react/jsx-runtime";function $e({label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,component:a,...m}){let{control:u}=g(),{components:c}=h(),f=T();return be(x,{defaultValue:r,control:u,name:o,render:({field:s,fieldState:F})=>{let C=a||c?.["multi-select"];if(!C)throw new Error(`Multi select component not found for field ${o}`);let S={label:e,name:o,options:t,defaultValue:r,description:i,onChange:l,transformHtml:f,...m};return be(C,{field:{...s,onChange:n(p=>{s.onChange(p),l?.(p)},"onChange")},fieldState:F,fieldData:S})}})}n($e,"MultiSelectField");import{jsx as Ue}from"react/jsx-runtime";var De=n(e=>Ue(J,{maxLength:15,...e}),"MoneyField");import{useMemo as I,useCallback as Ee,useState as Ze,useEffect as Ke,useRef as qe}from"react";import{jsx as G}from"react/jsx-runtime";function Qe(e){return e.replace(/\s/g,"")}n(Qe,"removeSpaces");function Me(e="",o){let t=new RegExp(`^(\\+|00)(\\d{${o?.dialCode?.length??0}})(.*)$`),r=e?.match(t);if(!r)return{prefix:"",dialCode:"",phoneNumber:e};let[,i,l,a]=r;return{prefix:i,dialCode:l,phoneNumber:a}}n(Me,"getStructuredNumberFromInternationalNumber");function Re({dialCodes:e,dialCodeMaxLength:o},t){let{prefix:r}=Me(t);if(r)for(let i=o+r.length;i>r.length;i--){let l=t.slice(r.length,i);if(e[l])return e[l]}}n(Re,"getCountryFromPhoneNumber");function we(e){let o={},t=0;return e.forEach(r=>{r.areaCodes?r.areaCodes.forEach(i=>{let l=r.dialCode+i;o[l]=r,l.length>t&&(t=l.length)}):(o[r.dialCode]=r,r.dialCode.length>t&&(t=r.dialCode.length))}),{dialCodes:o,dialCodeMaxLength:t}}n(we,"getCountryDataByCountryCode");function Xe(e=""){let o=/\(([^)]+)\)/g,t=e.match(o);if(t?.length===2)return t[1].replace(/\(|\)/g,"").split("|")}n(Xe,"getAreaCodesFromPattern");function Ye(e){return e.map(o=>({name:o.label,dialCode:o.meta.countryCode,pattern:o.pattern,areaCodes:Xe(o.pattern)}))}n(Ye,"transformSchemaToCountries");function je({field:e,fieldState:o,fieldData:t,component:r,onChangeCountryCode:i,onChangePhoneNumber:l}){let{value:a}=e,{options:m}=t,u=I(()=>Ye(m),[m]),c=I(()=>we(u),[u]),f=qe(!1),[s,F]=Ze(()=>Re(we(u),a||""));Ke(()=>{if((!a||a==="+")&&(f.current=!1),f.current)return;let P=Re(c,a||"");F(P)},[a,c]);let{prefix:C,phoneNumber:S}=I(()=>Me(a,s),[a,s]),p=Ee(P=>{if(!P)return;let w=`+${P.dialCode}${S}`;f.current=!0,F(P),e.onChange(w),i&&i(P)},[S,e,i]),b=Ee(P=>{let w=Qe(P.target.value),N;if(s?N=`${C}${s.dialCode}${w}`:N=`${C}${w}`,e.onChange(N),l){let k={target:{value:N,name:e.name}};l(k)}},[s,C,e,l]),y=I(()=>({...t,onChangeCountryCode:p,onChangePhoneNumber:b,currentCountry:s,nationalPhoneNumber:S}),[t,p,b,s,S]);return G(r,{field:e,fieldState:o,fieldData:y})}n(je,"TelFieldRenderer");function ve({name:e,description:o,label:t,onChangeCountryCode:r,onChangePhoneNumber:i,component:l,...a}){let{components:m}=h(),{control:u}=g(),c=T();return G(x,{control:u,name:e,render:({field:f,fieldState:s})=>{let F=l||m.tel;if(!F)throw new Error(`Tel component not found for field ${e}`);let C={name:e,description:o,label:t,transformHtml:c,...a};return G(je,{field:f,fieldState:s,fieldData:C,component:F,onChangeCountryCode:r,onChangePhoneNumber:i})}})}n(ve,"TelField");import{jsx as Ne}from"react/jsx-runtime";function ke({name:e,description:o,label:t,type:r,onChange:i,component:l,maxLength:a,...m}){let{components:u}=h(),{control:c}=g(),f=T();return Ne(x,{control:c,name:e,render:({field:s,fieldState:F})=>{let C=l||u?.time;if(!C)throw new Error(`Time component not found for field ${e}`);let S={name:e,description:o,label:t,type:r,onChange:i,maxLength:a,transformHtml:f,...m};return Ne(C,{field:{...s,onChange:n(p=>{s.onChange(p),i?.(p)},"onChange")},fieldState:F,fieldData:S})}})}n(ke,"TimeField");var U={checkbox:ne,text:ee,email:Se,money:De,select:ue,"multi-select":$e,radio:pe,number:J,file:me,date:le,textarea:ge,countries:fe,hidden:xe,tel:ve,time:ke,"work-schedule":Pe};import{useEffect as eo}from"react";import{jsx as oo}from"react/jsx-runtime";function He({name:e,value:o,description:t,statement:r,label:i,helpCenter:l}){let{setValue:a}=g(),{components:m}=h(),u=T();eo(()=>{a(e,o)},[e,o,a]);let c=r?.description||t,f=r?.title?z(r.title):z(i);if(!c&&!r?.title)return null;let F=m?.forcedValue;if(!F)throw new Error(`Forced value component not found for field ${e}`);return oo(F,{fieldData:{name:e,value:o,title:f,description:c,meta:{helpCenter:l},transformHtml:u}})}n(He,"ForcedValueField");import{Fragment as Z,jsx as $,jsxs as v}from"react/jsx-runtime";function _e({label:e,name:o,fields:t,description:r,components:i,statement:l,isFlatFieldset:a,extra:m,variant:u="outset",features:c,meta:f}){let{helpCenter:s}=f||{},{watch:F,setValue:C,trigger:S,formState:p}=g(),{components:b}=h(),y=c?.toggle?.stateField,P=y?F(y):c?.toggle?.defaultExpanded??!0,w=t.map(({name:d})=>`${o}.${d}`),N=t.some(d=>d.calculateDynamicProperties),k=F(w),We=N?F():k,K=Ve(k),H=Ve(null),Ae=n(()=>{y&&C(y,!P)},"toggleExpanded");ro(()=>{let d=k,M=K.current,E=p.isSubmitted||p.submitCount>0,W=!1;for(let R=0;R<d.length;R++)if(d[R]!==void 0&&M[R]!==d[R]){W=!0;break}return W&&E&&(H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{S()},50)),K.current=[...d],()=>{H.current&&clearTimeout(H.current)}},[k,S,p.isSubmitted,p.submitCount]);let Be=b?.fieldsetToggle||oe,q=`${o}-content`,Q=`${o}-header`;return v("fieldset",{className:V("border-1 border-input p-4 rounded-xl","RemoteFlows__FieldSetField",`RemoteFlows__FieldSetField__${o}`),children:[$("legend",{className:V("text-sm font-semibold px-2",u==="inset"&&"hidden"),children:e}),s?.callToAction&&s?.id&&u==="outset"&&$(O,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:s.id,children:s.callToAction}),u==="inset"&&v(Z,{children:[v("div",{className:"RemoteFlows__FieldSetField__Header",id:Q,"data-state":P?"expanded":"collapsed","aria-expanded":P,children:[$("h3",{className:V("RemoteFlows__FieldSetField__Title"),children:e}),c?.toggle?.enabled&&$(Be,{isExpanded:P,onToggle:Ae,"aria-expanded":P,"aria-controls":q,"aria-label":`${P?"Hide":"Show"} ${e}`,className:V("RemoteFlows__FieldSetField__Toggle",c.toggle?.className),children:P?c.toggle.labels?.collapse??"Remove":c.toggle.labels?.expand??"Define"})]}),s?.callToAction&&s?.id&&$(O,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:s.id,children:s.callToAction})]}),P&&v("div",{id:q,"aria-labelledby":Q,role:"region",children:[r?$(j,{as:"div",className:"mb-5 RemoteFlows__FieldSetField__Description",children:r}):null,v("div",{className:"grid gap-4",children:[t.map(d=>{if(d.calculateDynamicProperties&&(d={...d,...d.calculateDynamicProperties(We,d)||{}}),d.isVisible===!1||d.deprecated)return null;let M=d.type,E=`${a?d.name:`${o}.${d.name}`}`,W=Y(d),R=n((D,A)=>d.WrapperComponent?$(d.WrapperComponent,{children:D},A):$(to,{children:D},A),"wrapWithCustomWrapper");if(W){let D=_(d,"WrapperComponent");return R($(He,{name:E,description:D.description,value:D.const,statement:D.statement,label:D.label,helpCenter:D.meta?.helpCenter}),E)}if(M==="fieldset"){let D=_(d,"WrapperComponent");return R($(_e,{...D,name:E,components:i}),E)}if(M==="fieldset-flat"){let D=_(d,"WrapperComponent");return R($(_e,{...D,name:E,components:i,isFlatFieldset:!0}),E)}let L=U[M];if(d.Component){let{Component:D}=d,A=_(d,"WrapperComponent");return R(v(Z,{children:[$(D,{...A,value:F(E),setValue:Ie=>{C(E,Ie)}}),d.statement?$(B,{...d.statement}):null,d.extra?d.extra:null]}),E)}if(!L)return v("p",{className:"error",children:["Field type ",M," not supported"]});M==="select"&&d.multiple&&(L=U["multi-select"]);let Je=_(d,"WrapperComponent");return R(v(Z,{children:[$(L,{...Je,name:E,component:i?.[M]}),d.statement?$(B,{...d.statement}):null,d.extra?d.extra:null]}),E)}),m||null,l?$(B,{...l}):null]})]})]})}n(_e,"FieldSetField");export{U as a,He as b,_e as c};
2
- //# sourceMappingURL=chunk-NRH6RION.js.map
@@ -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 if (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"]}