@remoteoss/remote-flows 1.33.1 → 1.34.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 (338) hide show
  1. package/dist/CheckboxFieldDefault-5NZEGPA6.js +2 -0
  2. package/dist/CountryFieldDefault-GP2S2KN6.js +2 -0
  3. package/dist/DatePickerFieldDefault-KN4COEEO.js +2 -0
  4. package/dist/RadioGroupFieldDefault-L3CZN2ZT.js +2 -0
  5. package/dist/TextAreaFieldDefault-YKBNDA4U.js +2 -0
  6. package/dist/chunk-2HREQZP4.js +2 -0
  7. package/dist/chunk-2HREQZP4.js.map +1 -0
  8. package/dist/{chunk-RITVVN7T.js → chunk-2IIHA7AA.js} +2 -2
  9. package/dist/{chunk-OFML5F4A.js → chunk-35LCD6VA.js} +2 -2
  10. package/dist/{chunk-ESYUJGB5.js → chunk-3I4I7VH6.js} +2 -2
  11. package/dist/{chunk-LS22BMPO.js → chunk-3M4RT5QK.js} +2 -2
  12. package/dist/{chunk-72K4C6OR.js → chunk-3PKL3V6F.js} +2 -2
  13. package/dist/{chunk-IQNQ4LFU.js → chunk-4LF5J3KW.js} +2 -2
  14. package/dist/{chunk-LK3FPLM5.js → chunk-4ZA3PGCP.js} +2 -2
  15. package/dist/{chunk-ORB2D4LR.js → chunk-5CFXZWQ5.js} +2 -2
  16. package/dist/{chunk-OGXMCNOP.js → chunk-5FHNCDLU.js} +2 -2
  17. package/dist/{chunk-DCEOZPQA.js → chunk-5IOV4ADT.js} +2 -2
  18. package/dist/{chunk-YP4H7UGJ.js → chunk-5JFH2KYZ.js} +2 -2
  19. package/dist/{chunk-3E7EDKBM.js → chunk-5TAAGXI6.js} +2 -2
  20. package/dist/{chunk-BZ6GXHXM.js → chunk-6BTNYUKU.js} +2 -2
  21. package/dist/{chunk-6Q54DYVX.js → chunk-7N552DET.js} +2 -2
  22. package/dist/{chunk-CVZGPWZH.js → chunk-AZSD5MTJ.js} +2 -2
  23. package/dist/{chunk-JAO2GIK3.js → chunk-B4JJN54S.js} +2 -2
  24. package/dist/{chunk-2SMK7OOK.js → chunk-BDDSSFUK.js} +2 -2
  25. package/dist/{chunk-6FOEJAXI.js → chunk-C7GJUNNC.js} +2 -2
  26. package/dist/{chunk-3V7ZQOOW.js → chunk-CFCUY6VA.js} +2 -2
  27. package/dist/{chunk-BZNN4OST.js → chunk-CMPHQVJ3.js} +2 -2
  28. package/dist/{chunk-TVBZT6FA.js → chunk-D6MFIXSJ.js} +2 -2
  29. package/dist/chunk-D6MFIXSJ.js.map +1 -0
  30. package/dist/{chunk-53WGX4C7.js → chunk-DILDN6DN.js} +2 -2
  31. package/dist/{chunk-XLPYO4QS.js → chunk-DNTUDKSN.js} +2 -2
  32. package/dist/{chunk-FDSUWSSY.js → chunk-DTTE663D.js} +2 -2
  33. package/dist/{chunk-CRO2FOF3.js → chunk-DZJDM6PM.js} +2 -2
  34. package/dist/{chunk-6AGNWLFO.js → chunk-E4VXY33I.js} +2 -2
  35. package/dist/chunk-EJWKMMZV.js +2 -0
  36. package/dist/chunk-EJWKMMZV.js.map +1 -0
  37. package/dist/chunk-ER46UFIU.js +8 -0
  38. package/dist/chunk-ER46UFIU.js.map +1 -0
  39. package/dist/{chunk-MKUSE7JK.js → chunk-F2ENM2JE.js} +2 -2
  40. package/dist/chunk-F2ENM2JE.js.map +1 -0
  41. package/dist/{chunk-QN2UHYGE.js → chunk-FTRPPW6E.js} +2 -2
  42. package/dist/chunk-FTRPPW6E.js.map +1 -0
  43. package/dist/{chunk-UDEKRW6Y.js → chunk-G7MJDZGB.js} +2 -2
  44. package/dist/chunk-G7MJDZGB.js.map +1 -0
  45. package/dist/{chunk-7AQ7V57P.js → chunk-GIO4RGLD.js} +2 -2
  46. package/dist/{chunk-62LLY3AT.js → chunk-HPO77UMT.js} +2 -2
  47. package/dist/{chunk-P6FBUGRL.js → chunk-IPLCBEJI.js} +2 -2
  48. package/dist/{chunk-PFK6TYWV.js → chunk-JBX6GAPY.js} +2 -2
  49. package/dist/{chunk-QTKCCR2M.js → chunk-KE5UI2WF.js} +2 -2
  50. package/dist/{chunk-GFPU6XMO.js → chunk-KEMKRC6N.js} +2 -2
  51. package/dist/{chunk-3B3IR4XI.js → chunk-KV7CBYSI.js} +2 -2
  52. package/dist/{chunk-4KJV4WU4.js → chunk-KXGHVCV2.js} +2 -2
  53. package/dist/{chunk-LW3ZZPWS.js → chunk-KYQIUVYP.js} +2 -2
  54. package/dist/{chunk-A5CJEHJA.js → chunk-LKFGJU72.js} +2 -2
  55. package/dist/{chunk-YGMFPM7A.js → chunk-LPXJW7UB.js} +2 -2
  56. package/dist/{chunk-CF3L7F4S.js → chunk-MKI4IWX6.js} +2 -2
  57. package/dist/{chunk-MND3NWG7.js → chunk-N5DHVRQR.js} +2 -2
  58. package/dist/chunk-NFI74GKN.js +2 -0
  59. package/dist/{chunk-3EIBETN3.js.map → chunk-NFI74GKN.js.map} +1 -1
  60. package/dist/{chunk-N57H62CC.js → chunk-OBF27DKO.js} +2 -2
  61. package/dist/chunk-OJMB3357.js +2 -0
  62. package/dist/{chunk-AHRG5QCS.js.map → chunk-OJMB3357.js.map} +1 -1
  63. package/dist/{chunk-YYSFI73T.js → chunk-OSHTXKLJ.js} +2 -2
  64. package/dist/{chunk-CWIILDO2.js → chunk-PURTKT5Q.js} +2 -2
  65. package/dist/chunk-Q65JWWKR.js +2 -0
  66. package/dist/chunk-Q65JWWKR.js.map +1 -0
  67. package/dist/chunk-QHZPSH52.js +2 -0
  68. package/dist/chunk-QHZPSH52.js.map +1 -0
  69. package/dist/{chunk-IHHDOH6Y.js → chunk-QSAZUS52.js} +2 -2
  70. package/dist/{chunk-62IEME2X.js → chunk-QXQYT7IC.js} +2 -2
  71. package/dist/chunk-QXQYT7IC.js.map +1 -0
  72. package/dist/{chunk-V4TK2JKS.js → chunk-R63ZJMJA.js} +2 -2
  73. package/dist/{chunk-V4TK2JKS.js.map → chunk-R63ZJMJA.js.map} +1 -1
  74. package/dist/chunk-SVVZOMLQ.js +2 -0
  75. package/dist/chunk-SVVZOMLQ.js.map +1 -0
  76. package/dist/chunk-TP3B2OEW.js +2 -0
  77. package/dist/chunk-TP3B2OEW.js.map +1 -0
  78. package/dist/{chunk-ZPMOCFFN.js → chunk-UG5UQ72J.js} +2 -2
  79. package/dist/{chunk-T3VXOELH.js → chunk-VDHWWC4J.js} +2 -2
  80. package/dist/{chunk-SFW4O42J.js → chunk-W4YDSTXA.js} +2 -2
  81. package/dist/chunk-W4YDSTXA.js.map +1 -0
  82. package/dist/{chunk-ACT6XGJM.js → chunk-W5THF3XS.js} +2 -2
  83. package/dist/{chunk-J4NCN3TG.js → chunk-X5ZZPJII.js} +2 -2
  84. package/dist/{chunk-J4NCN3TG.js.map → chunk-X5ZZPJII.js.map} +1 -1
  85. package/dist/{chunk-DKSN6HVI.js → chunk-XJHIF5ZE.js} +2 -2
  86. package/dist/{chunk-3HTQWY65.js → chunk-YGK26YJ2.js} +2 -2
  87. package/dist/chunk-YHQYBVLS.js +2 -0
  88. package/dist/chunk-YHQYBVLS.js.map +1 -0
  89. package/dist/{chunk-CDN7R7Y7.js → chunk-YLAJZTKB.js} +2 -2
  90. package/dist/chunk-Z6XIW4JQ.js +2 -0
  91. package/dist/chunk-Z6XIW4JQ.js.map +1 -0
  92. package/dist/chunk-ZAZ24JS2.js +2 -0
  93. package/dist/chunk-ZAZ24JS2.js.map +1 -0
  94. package/dist/default-components.d.ts +2 -2
  95. package/dist/default-components.js +1 -1
  96. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +2 -2
  97. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
  98. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
  99. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  100. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +2 -2
  101. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  102. package/dist/flows/ContractAmendment/context.d.ts +3 -3
  103. package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
  104. package/dist/flows/ContractAmendment/hooks.js +1 -1
  105. package/dist/flows/ContractAmendment/index.d.ts +3 -3
  106. package/dist/flows/ContractAmendment/index.js +1 -1
  107. package/dist/flows/ContractAmendment/types.d.ts +2 -2
  108. package/dist/flows/ContractAmendment/utils.d.ts +2 -2
  109. package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +5 -5
  110. package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
  111. package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
  112. package/dist/flows/ContractorOnboarding/api.js +1 -1
  113. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
  114. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
  115. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
  116. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
  117. package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
  118. package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
  119. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
  120. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
  121. package/dist/flows/ContractorOnboarding/components/ContractReviewButton.js +1 -1
  122. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
  123. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
  124. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +5 -5
  125. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
  126. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
  127. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
  128. package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
  129. package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
  130. package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +3 -3
  131. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
  132. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
  133. package/dist/flows/ContractorOnboarding/context.d.ts +5 -5
  134. package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
  135. package/dist/flows/ContractorOnboarding/hooks.js +1 -1
  136. package/dist/flows/ContractorOnboarding/index.d.ts +5 -5
  137. package/dist/flows/ContractorOnboarding/index.js +1 -1
  138. package/dist/flows/ContractorOnboarding/jsfModify.d.ts +5 -5
  139. package/dist/flows/ContractorOnboarding/jsfModify.js +1 -1
  140. package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
  141. package/dist/flows/ContractorOnboarding/utils.d.ts +4 -4
  142. package/dist/flows/ContractorOnboarding/utils.js +1 -1
  143. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
  144. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  145. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
  146. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  147. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
  148. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
  149. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
  150. package/dist/flows/CostCalculator/api.d.ts +2 -2
  151. package/dist/flows/CostCalculator/api.js +1 -1
  152. package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
  153. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  154. package/dist/flows/CostCalculator/context.d.ts +3 -3
  155. package/dist/flows/CostCalculator/hooks.d.ts +3 -3
  156. package/dist/flows/CostCalculator/hooks.js +1 -1
  157. package/dist/flows/CostCalculator/index.d.ts +3 -3
  158. package/dist/flows/CostCalculator/index.js +1 -1
  159. package/dist/flows/CostCalculator/types.d.ts +3 -3
  160. package/dist/flows/CostCalculator/utils.d.ts +3 -3
  161. package/dist/flows/CostCalculator/utils.js +1 -1
  162. package/dist/flows/CreateCompany/CreateCompany.d.ts +4 -4
  163. package/dist/flows/CreateCompany/CreateCompany.js +1 -1
  164. package/dist/flows/CreateCompany/api.d.ts +2 -2
  165. package/dist/flows/CreateCompany/api.js +1 -1
  166. package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
  167. package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
  168. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
  169. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
  170. package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
  171. package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
  172. package/dist/flows/CreateCompany/context.d.ts +4 -4
  173. package/dist/flows/CreateCompany/hooks.d.ts +4 -4
  174. package/dist/flows/CreateCompany/hooks.js +1 -1
  175. package/dist/flows/CreateCompany/index.d.ts +4 -4
  176. package/dist/flows/CreateCompany/index.js +1 -1
  177. package/dist/flows/CreateCompany/types.d.ts +4 -4
  178. package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
  179. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  180. package/dist/flows/Onboarding/api.d.ts +4 -4
  181. package/dist/flows/Onboarding/api.js +1 -1
  182. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
  183. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  184. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
  185. package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
  186. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
  187. package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
  188. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
  189. package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
  190. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +4 -4
  191. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.js +1 -1
  192. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
  193. package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
  194. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
  195. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  196. package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
  197. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
  198. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
  199. package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
  200. package/dist/flows/Onboarding/context.d.ts +4 -4
  201. package/dist/flows/Onboarding/hooks.d.ts +4 -4
  202. package/dist/flows/Onboarding/hooks.js +1 -1
  203. package/dist/flows/Onboarding/index.d.ts +4 -4
  204. package/dist/flows/Onboarding/index.js +1 -1
  205. package/dist/flows/Onboarding/types.d.ts +4 -4
  206. package/dist/flows/Onboarding/utils.d.ts +4 -4
  207. package/dist/flows/Onboarding/utils.js +1 -1
  208. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
  209. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  210. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
  211. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  212. package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
  213. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  214. package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
  215. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  216. package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
  217. package/dist/flows/Termination/TerminationFlow.js +1 -1
  218. package/dist/flows/Termination/TerminationForm.d.ts +4 -4
  219. package/dist/flows/Termination/TerminationForm.js +1 -1
  220. package/dist/flows/Termination/api.d.ts +5 -5
  221. package/dist/flows/Termination/api.js +1 -1
  222. package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
  223. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
  224. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
  225. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
  226. package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
  227. package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
  228. package/dist/flows/Termination/context.d.ts +4 -4
  229. package/dist/flows/Termination/hooks.d.ts +4 -4
  230. package/dist/flows/Termination/hooks.js +1 -1
  231. package/dist/flows/Termination/index.d.ts +6 -6
  232. package/dist/flows/Termination/index.js +1 -1
  233. package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
  234. package/dist/flows/Termination/types.d.ts +4 -4
  235. package/dist/flows/Termination/utils.d.ts +4 -4
  236. package/dist/flows/types.d.ts +5 -3
  237. package/dist/flows/utils.d.ts +2 -2
  238. package/dist/index.d.ts +12 -12
  239. package/dist/index.js +2 -2
  240. package/dist/index.js.map +1 -1
  241. package/dist/internals.d.ts +3 -3
  242. package/dist/internals.js +1 -1
  243. package/dist/{mutations-DTK4GE8r.d.ts → mutations-D9HgX-Ms.d.ts} +1 -1
  244. package/dist/{remoteFlows-n8r_cW0z.d.ts → remoteFlows-BY_Bq_Wn.d.ts} +2 -2
  245. package/dist/{types-Cd5_2FHQ.d.ts → types-3T7anr5K.d.ts} +3 -3
  246. package/dist/{types-BD0b8UuQ.d.ts → types-DRJoYr0A.d.ts} +2 -2
  247. package/dist/{types-BJ9gyvly.d.ts → types-DaTID0Xm.d.ts} +4 -4
  248. package/dist/{types-BiMfLZYw.d.ts → types-DnD9HEvZ.d.ts} +3 -3
  249. package/dist/{types-BY3BtHb6.d.ts → types-DreSaMum.d.ts} +1 -1
  250. package/dist/{types.gen-DPZBntYq.d.ts → types.gen-N4dGBvBJ.d.ts} +25 -9
  251. package/dist/{utils-C5lwjSxr.d.ts → utils-DE_uIWef.d.ts} +1 -1
  252. package/package.json +9 -8
  253. package/dist/CheckboxFieldDefault-U2NRBOXO.js +0 -2
  254. package/dist/CountryFieldDefault-DC4B2JGN.js +0 -2
  255. package/dist/DatePickerFieldDefault-Q6VSUSEY.js +0 -2
  256. package/dist/RadioGroupFieldDefault-CU6LOX2R.js +0 -2
  257. package/dist/TextAreaFieldDefault-4XPXRKZZ.js +0 -2
  258. package/dist/chunk-3EIBETN3.js +0 -2
  259. package/dist/chunk-62IEME2X.js.map +0 -1
  260. package/dist/chunk-AHRG5QCS.js +0 -2
  261. package/dist/chunk-AIT2DBW2.js +0 -2
  262. package/dist/chunk-AIT2DBW2.js.map +0 -1
  263. package/dist/chunk-B6YWTMGV.js +0 -2
  264. package/dist/chunk-B6YWTMGV.js.map +0 -1
  265. package/dist/chunk-CJJQ4NIH.js +0 -2
  266. package/dist/chunk-CJJQ4NIH.js.map +0 -1
  267. package/dist/chunk-DKDE34ZC.js +0 -2
  268. package/dist/chunk-DKDE34ZC.js.map +0 -1
  269. package/dist/chunk-HS63DEGD.js +0 -2
  270. package/dist/chunk-HS63DEGD.js.map +0 -1
  271. package/dist/chunk-MCXUBLTV.js +0 -2
  272. package/dist/chunk-MCXUBLTV.js.map +0 -1
  273. package/dist/chunk-MKUSE7JK.js.map +0 -1
  274. package/dist/chunk-N7FE22T7.js +0 -2
  275. package/dist/chunk-N7FE22T7.js.map +0 -1
  276. package/dist/chunk-QN2UHYGE.js.map +0 -1
  277. package/dist/chunk-RWXZG4KO.js +0 -2
  278. package/dist/chunk-RWXZG4KO.js.map +0 -1
  279. package/dist/chunk-SFW4O42J.js.map +0 -1
  280. package/dist/chunk-TNQKP2XT.js +0 -8
  281. package/dist/chunk-TNQKP2XT.js.map +0 -1
  282. package/dist/chunk-TVBZT6FA.js.map +0 -1
  283. package/dist/chunk-UDEKRW6Y.js.map +0 -1
  284. package/dist/chunk-XNW6UHSW.js +0 -2
  285. package/dist/chunk-XNW6UHSW.js.map +0 -1
  286. /package/dist/{CheckboxFieldDefault-U2NRBOXO.js.map → CheckboxFieldDefault-5NZEGPA6.js.map} +0 -0
  287. /package/dist/{CountryFieldDefault-DC4B2JGN.js.map → CountryFieldDefault-GP2S2KN6.js.map} +0 -0
  288. /package/dist/{DatePickerFieldDefault-Q6VSUSEY.js.map → DatePickerFieldDefault-KN4COEEO.js.map} +0 -0
  289. /package/dist/{RadioGroupFieldDefault-CU6LOX2R.js.map → RadioGroupFieldDefault-L3CZN2ZT.js.map} +0 -0
  290. /package/dist/{TextAreaFieldDefault-4XPXRKZZ.js.map → TextAreaFieldDefault-YKBNDA4U.js.map} +0 -0
  291. /package/dist/{chunk-RITVVN7T.js.map → chunk-2IIHA7AA.js.map} +0 -0
  292. /package/dist/{chunk-OFML5F4A.js.map → chunk-35LCD6VA.js.map} +0 -0
  293. /package/dist/{chunk-ESYUJGB5.js.map → chunk-3I4I7VH6.js.map} +0 -0
  294. /package/dist/{chunk-LS22BMPO.js.map → chunk-3M4RT5QK.js.map} +0 -0
  295. /package/dist/{chunk-72K4C6OR.js.map → chunk-3PKL3V6F.js.map} +0 -0
  296. /package/dist/{chunk-IQNQ4LFU.js.map → chunk-4LF5J3KW.js.map} +0 -0
  297. /package/dist/{chunk-LK3FPLM5.js.map → chunk-4ZA3PGCP.js.map} +0 -0
  298. /package/dist/{chunk-ORB2D4LR.js.map → chunk-5CFXZWQ5.js.map} +0 -0
  299. /package/dist/{chunk-OGXMCNOP.js.map → chunk-5FHNCDLU.js.map} +0 -0
  300. /package/dist/{chunk-DCEOZPQA.js.map → chunk-5IOV4ADT.js.map} +0 -0
  301. /package/dist/{chunk-YP4H7UGJ.js.map → chunk-5JFH2KYZ.js.map} +0 -0
  302. /package/dist/{chunk-3E7EDKBM.js.map → chunk-5TAAGXI6.js.map} +0 -0
  303. /package/dist/{chunk-BZ6GXHXM.js.map → chunk-6BTNYUKU.js.map} +0 -0
  304. /package/dist/{chunk-6Q54DYVX.js.map → chunk-7N552DET.js.map} +0 -0
  305. /package/dist/{chunk-CVZGPWZH.js.map → chunk-AZSD5MTJ.js.map} +0 -0
  306. /package/dist/{chunk-JAO2GIK3.js.map → chunk-B4JJN54S.js.map} +0 -0
  307. /package/dist/{chunk-2SMK7OOK.js.map → chunk-BDDSSFUK.js.map} +0 -0
  308. /package/dist/{chunk-6FOEJAXI.js.map → chunk-C7GJUNNC.js.map} +0 -0
  309. /package/dist/{chunk-3V7ZQOOW.js.map → chunk-CFCUY6VA.js.map} +0 -0
  310. /package/dist/{chunk-BZNN4OST.js.map → chunk-CMPHQVJ3.js.map} +0 -0
  311. /package/dist/{chunk-53WGX4C7.js.map → chunk-DILDN6DN.js.map} +0 -0
  312. /package/dist/{chunk-XLPYO4QS.js.map → chunk-DNTUDKSN.js.map} +0 -0
  313. /package/dist/{chunk-FDSUWSSY.js.map → chunk-DTTE663D.js.map} +0 -0
  314. /package/dist/{chunk-CRO2FOF3.js.map → chunk-DZJDM6PM.js.map} +0 -0
  315. /package/dist/{chunk-6AGNWLFO.js.map → chunk-E4VXY33I.js.map} +0 -0
  316. /package/dist/{chunk-7AQ7V57P.js.map → chunk-GIO4RGLD.js.map} +0 -0
  317. /package/dist/{chunk-62LLY3AT.js.map → chunk-HPO77UMT.js.map} +0 -0
  318. /package/dist/{chunk-P6FBUGRL.js.map → chunk-IPLCBEJI.js.map} +0 -0
  319. /package/dist/{chunk-PFK6TYWV.js.map → chunk-JBX6GAPY.js.map} +0 -0
  320. /package/dist/{chunk-QTKCCR2M.js.map → chunk-KE5UI2WF.js.map} +0 -0
  321. /package/dist/{chunk-GFPU6XMO.js.map → chunk-KEMKRC6N.js.map} +0 -0
  322. /package/dist/{chunk-3B3IR4XI.js.map → chunk-KV7CBYSI.js.map} +0 -0
  323. /package/dist/{chunk-4KJV4WU4.js.map → chunk-KXGHVCV2.js.map} +0 -0
  324. /package/dist/{chunk-LW3ZZPWS.js.map → chunk-KYQIUVYP.js.map} +0 -0
  325. /package/dist/{chunk-A5CJEHJA.js.map → chunk-LKFGJU72.js.map} +0 -0
  326. /package/dist/{chunk-YGMFPM7A.js.map → chunk-LPXJW7UB.js.map} +0 -0
  327. /package/dist/{chunk-CF3L7F4S.js.map → chunk-MKI4IWX6.js.map} +0 -0
  328. /package/dist/{chunk-MND3NWG7.js.map → chunk-N5DHVRQR.js.map} +0 -0
  329. /package/dist/{chunk-N57H62CC.js.map → chunk-OBF27DKO.js.map} +0 -0
  330. /package/dist/{chunk-YYSFI73T.js.map → chunk-OSHTXKLJ.js.map} +0 -0
  331. /package/dist/{chunk-CWIILDO2.js.map → chunk-PURTKT5Q.js.map} +0 -0
  332. /package/dist/{chunk-IHHDOH6Y.js.map → chunk-QSAZUS52.js.map} +0 -0
  333. /package/dist/{chunk-ZPMOCFFN.js.map → chunk-UG5UQ72J.js.map} +0 -0
  334. /package/dist/{chunk-T3VXOELH.js.map → chunk-VDHWWC4J.js.map} +0 -0
  335. /package/dist/{chunk-ACT6XGJM.js.map → chunk-W5THF3XS.js.map} +0 -0
  336. /package/dist/{chunk-DKSN6HVI.js.map → chunk-XJHIF5ZE.js.map} +0 -0
  337. /package/dist/{chunk-3HTQWY65.js.map → chunk-YGK26YJ2.js.map} +0 -0
  338. /package/dist/{chunk-CDN7R7Y7.js.map → chunk-YLAJZTKB.js.map} +0 -0
@@ -1534,6 +1534,14 @@ type Signatory = {
1534
1534
  * Signature image as a data URI (e.g. `data:image/png;base64,...`), null if not yet signed
1535
1535
  */
1536
1536
  signature?: string | null;
1537
+ /**
1538
+ * Signing method used by this signatory
1539
+ */
1540
+ signature_method?: 'in_platform' | 'docusign';
1541
+ /**
1542
+ * Legal signature level applied when signing
1543
+ */
1544
+ signature_type?: 'standard' | 'qes' | 'aes' | 'ses';
1537
1545
  /**
1538
1546
  * Timestamp when the signatory signed the document, null if not yet signed
1539
1547
  */
@@ -2255,6 +2263,14 @@ type ListSignatory = {
2255
2263
  * Full name of the signatory
2256
2264
  */
2257
2265
  name?: string | null;
2266
+ /**
2267
+ * Signing method used by this signatory
2268
+ */
2269
+ signature_method?: 'in_platform' | 'docusign';
2270
+ /**
2271
+ * Legal signature level applied when signing
2272
+ */
2273
+ signature_type?: 'standard' | 'qes' | 'aes' | 'ses';
2258
2274
  /**
2259
2275
  * Timestamp when the signatory signed the document, null if not yet signed
2260
2276
  */
@@ -2864,7 +2880,7 @@ type CreateContractDocumentResponse = {
2864
2880
  contract_document: ContractDocument;
2865
2881
  };
2866
2882
  };
2867
- type PostCreateEstimationErrors = {
2883
+ type PostV1CostCalculatorEstimationErrors = {
2868
2884
  /**
2869
2885
  * Not Found
2870
2886
  */
@@ -2874,8 +2890,8 @@ type PostCreateEstimationErrors = {
2874
2890
  */
2875
2891
  422: UnprocessableEntityResponse;
2876
2892
  };
2877
- type PostCreateEstimationError = PostCreateEstimationErrors[keyof PostCreateEstimationErrors];
2878
- type PostCreateContractAmendmentErrors = {
2893
+ type PostV1CostCalculatorEstimationError = PostV1CostCalculatorEstimationErrors[keyof PostV1CostCalculatorEstimationErrors];
2894
+ type PostV1ContractAmendmentsErrors = {
2879
2895
  /**
2880
2896
  * Unauthorized
2881
2897
  */
@@ -2889,15 +2905,15 @@ type PostCreateContractAmendmentErrors = {
2889
2905
  */
2890
2906
  422: UnprocessableEntityResponse;
2891
2907
  };
2892
- type PostCreateContractAmendmentError = PostCreateContractAmendmentErrors[keyof PostCreateContractAmendmentErrors];
2893
- type GetShowEmploymentResponses = {
2908
+ type PostV1ContractAmendmentsError = PostV1ContractAmendmentsErrors[keyof PostV1ContractAmendmentsErrors];
2909
+ type GetV1EmploymentsEmploymentIdResponses = {
2894
2910
  /**
2895
2911
  * Success
2896
2912
  */
2897
2913
  200: EmploymentShowResponse;
2898
2914
  };
2899
- type GetShowEmploymentResponse = GetShowEmploymentResponses[keyof GetShowEmploymentResponses];
2900
- type PostAutomatableContractAmendmentErrors = {
2915
+ type GetV1EmploymentsEmploymentIdResponse = GetV1EmploymentsEmploymentIdResponses[keyof GetV1EmploymentsEmploymentIdResponses];
2916
+ type PostV1ContractAmendmentsAutomatableErrors = {
2901
2917
  /**
2902
2918
  * Unauthorized
2903
2919
  */
@@ -2911,6 +2927,6 @@ type PostAutomatableContractAmendmentErrors = {
2911
2927
  */
2912
2928
  422: UnprocessableEntityResponse;
2913
2929
  };
2914
- type PostAutomatableContractAmendmentError = PostAutomatableContractAmendmentErrors[keyof PostAutomatableContractAmendmentErrors];
2930
+ type PostV1ContractAmendmentsAutomatableError = PostV1ContractAmendmentsAutomatableErrors[keyof PostV1ContractAmendmentsAutomatableErrors];
2915
2931
 
2916
- export type { DateTimeIso8601 as $, UnifiedEmploymentUpsertBenefitOffersRequest as A, BadRequestResponse as B, ContractAmendmentAutomatableResponse as C, ConvertCurrencyResponse as D, Employment as E, ForbiddenResponse as F, ConvertCurrencyParams as G, CreateContractEligibilityParams as H, TerminationDetailsParams as I, UploadFileResponse as J, FileParams as K, SignContractDocument as L, MinimalRegion as M, NotFoundResponse as N, OffboardingResponse as O, PostCreateContractAmendmentError as P, ContractorSubscriptionsSummary as Q, RequestError as R, SuccessResponse as S, TooManyRequestsResponse as T, UnprocessableEntityResponse as U, ValidationError as V, ManageContractorPlusSubscriptionOperationsParams as W, CreateContractDocumentResponse as X, CreateContractDocument as Y, Country as Z, File as _, UnauthorizedResponse as a, ContractDocumentItem as a0, EligibilityQuestionnaireResponse as a1, ConflictErrorResponse as a2, SubmitEligibilityQuestionnaireRequest as a3, ListTimeoffResponse as a4, TimeoffStatus as a5, TimeoffType as a6, ListLeavePoliciesSummaryResponse as a7, CreateOffboardingParams as a8, MagicLinkResponse as a9, MagicLinkParams as aa, GetShowEmploymentResponse as ab, Currency as ac, PayrollCalendarEor as ad, HelpCenterArticle as ae, ContractAmendmentResponse as b, PostAutomatableContractAmendmentError as c, EmploymentCreationResponse as d, EmploymentResponse as e, Signatory as f, ContractorContractDocumentStatus as g, CompanyLegalEntity as h, CompanyCreationResponse as i, CompanyCreationConflictErrorResponse as j, CreateCompanyParams as k, CompanyResponse as l, UpdateCompanyParams as m, CostCalculatorEstimateResponse as n, CostCalculatorEstimatePdfResponse as o, CostCalculatorEstimateParams as p, CostCalculatorEstimateCsvResponse as q, MinimalCountry as r, EmploymentTermType as s, CostCalculatorEmployment as t, PostCreateEstimationError as u, Company as v, ConflictResponse as w, EmploymentCreateParams as x, EmploymentFullParams as y, EmploymentEngagementAgreementDetailsParams as z };
2932
+ export type { DateTimeIso8601 as $, UnifiedEmploymentUpsertBenefitOffersRequest as A, BadRequestResponse as B, ContractAmendmentAutomatableResponse as C, ConvertCurrencyResponse as D, Employment as E, ForbiddenResponse as F, ConvertCurrencyParams as G, CreateContractEligibilityParams as H, TerminationDetailsParams as I, UploadFileResponse as J, FileParams as K, SignContractDocument as L, MinimalRegion as M, NotFoundResponse as N, OffboardingResponse as O, PostV1ContractAmendmentsError as P, ContractorSubscriptionsSummary as Q, RequestError as R, SuccessResponse as S, TooManyRequestsResponse as T, UnprocessableEntityResponse as U, ValidationError as V, ManageContractorPlusSubscriptionOperationsParams as W, CreateContractDocumentResponse as X, CreateContractDocument as Y, Country as Z, File as _, UnauthorizedResponse as a, ContractDocumentItem as a0, EligibilityQuestionnaireResponse as a1, ConflictErrorResponse as a2, SubmitEligibilityQuestionnaireRequest as a3, ListTimeoffResponse as a4, TimeoffStatus as a5, TimeoffType as a6, ListLeavePoliciesSummaryResponse as a7, CreateOffboardingParams as a8, MagicLinkResponse as a9, MagicLinkParams as aa, GetV1EmploymentsEmploymentIdResponse as ab, Currency as ac, PayrollCalendarEor as ad, HelpCenterArticle as ae, ContractAmendmentResponse as b, PostV1ContractAmendmentsAutomatableError as c, CostCalculatorEstimateResponse as d, CostCalculatorEstimatePdfResponse as e, CostCalculatorEstimateParams as f, CostCalculatorEstimateCsvResponse as g, MinimalCountry as h, EmploymentTermType as i, CostCalculatorEmployment as j, PostV1CostCalculatorEstimationError as k, EmploymentCreationResponse as l, EmploymentResponse as m, Signatory as n, ContractorContractDocumentStatus as o, CompanyLegalEntity as p, CompanyCreationResponse as q, CompanyCreationConflictErrorResponse as r, CreateCompanyParams as s, CompanyResponse as t, UpdateCompanyParams as u, Company as v, ConflictResponse as w, EmploymentCreateParams as x, EmploymentFullParams as y, EmploymentEngagementAgreementDetailsParams as z };
@@ -1,6 +1,6 @@
1
1
  import { ClassValue } from 'clsx';
2
2
  import { ValidationError } from 'yup';
3
- import './remoteFlows-n8r_cW0z.js';
3
+ import './remoteFlows-BY_Bq_Wn.js';
4
4
 
5
5
  declare function cn(...inputs: ClassValue[]): string;
6
6
  type YupError = Pick<ValidationError, 'type' | 'errors'> & {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remoteoss/remote-flows",
3
- "version": "1.33.1",
3
+ "version": "1.34.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/remoteoss/remote-flows.git"
@@ -18,6 +18,7 @@
18
18
  "lint:workflows:fix": "zizmor --fix .github/workflows/",
19
19
  "format": "oxfmt",
20
20
  "openapi-ts": "openapi-ts && npm run format",
21
+ "openapi-ts:local": "openapi-ts -f openapi-ts.config.local.ts && tsx scripts/cleanup-local-openapi.ts && npm run format",
21
22
  "test": "vitest",
22
23
  "test:coverage": "vitest --coverage",
23
24
  "coverage:extract": "tsx scripts/extract-coverage.ts",
@@ -101,7 +102,7 @@
101
102
  "@remoteoss/remote-json-schema-form-kit": "0.0.11",
102
103
  "@tailwindcss/cli": "4.2.4",
103
104
  "@tailwindcss/postcss": "4.2.4",
104
- "@tanstack/react-query": "5.99.0",
105
+ "@tanstack/react-query": "5.100.9",
105
106
  "class-variance-authority": "0.7.1",
106
107
  "clsx": "2.1.1",
107
108
  "cmdk": "1.1.1",
@@ -138,17 +139,17 @@
138
139
  "@types/lodash.mergewith": "4.6.9",
139
140
  "@types/lodash.omit": "4.5.9",
140
141
  "@types/lodash.omitby": "4.6.9",
141
- "@types/node": "24.12.2",
142
+ "@types/node": "24.12.3",
142
143
  "@types/react": "19.2.14",
143
144
  "@vitest/coverage-istanbul": "4.1.5",
144
145
  "chalk": "5.6.2",
145
- "filesize": "11.0.16",
146
+ "filesize": "11.0.17",
146
147
  "glob": "13.0.6",
147
148
  "gzip-size": "7.0.0",
148
- "jsdom": "29.0.2",
149
- "msw": "2.13.5",
150
- "oxfmt": "0.46.0",
151
- "oxlint": "1.61.0",
149
+ "jsdom": "29.1.1",
150
+ "msw": "2.14.5",
151
+ "oxfmt": "0.48.0",
152
+ "oxlint": "1.63.0",
152
153
  "tsup": "8.5.1",
153
154
  "tsx": "4.21.0",
154
155
  "vitest": "4.1.5"
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-3V7ZQOOW.js";import"./chunk-DXKUARQF.js";import"./chunk-6FOEJAXI.js";import"./chunk-SFW4O42J.js";import"./chunk-5BU3CD2P.js";import"./chunk-TNQKP2XT.js";import"./chunk-JXAAON7I.js";import"./chunk-H2O4CVKF.js";import"./chunk-P37U34EQ.js";export{a as CheckboxFieldDefault};
2
- //# sourceMappingURL=CheckboxFieldDefault-U2NRBOXO.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-OGXMCNOP.js";import"./chunk-LDI7E3ZK.js";import"./chunk-IX5SV6J2.js";import"./chunk-242UBL3Z.js";import"./chunk-4ZMRPH3M.js";import"./chunk-6FOEJAXI.js";import"./chunk-R4TTPUH7.js";import"./chunk-SFW4O42J.js";import"./chunk-5BU3CD2P.js";import"./chunk-TNQKP2XT.js";import"./chunk-JXAAON7I.js";import"./chunk-H2O4CVKF.js";import"./chunk-P37U34EQ.js";export{a as CountryFieldDefault};
2
- //# sourceMappingURL=CountryFieldDefault-DC4B2JGN.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-BZNN4OST.js";import"./chunk-IX5SV6J2.js";import"./chunk-6FOEJAXI.js";import"./chunk-R4TTPUH7.js";import"./chunk-SFW4O42J.js";import"./chunk-5BU3CD2P.js";import"./chunk-TNQKP2XT.js";import"./chunk-JXAAON7I.js";import"./chunk-H2O4CVKF.js";import"./chunk-P37U34EQ.js";export{a as DatePickerFieldDefault};
2
- //# sourceMappingURL=DatePickerFieldDefault-Q6VSUSEY.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-A5CJEHJA.js";import"./chunk-XWBNZAGY.js";import"./chunk-4ZMRPH3M.js";import"./chunk-6FOEJAXI.js";import"./chunk-SFW4O42J.js";import"./chunk-5BU3CD2P.js";import"./chunk-TNQKP2XT.js";import"./chunk-JXAAON7I.js";import"./chunk-H2O4CVKF.js";import"./chunk-P37U34EQ.js";export{a as RadioGroupFieldDefault};
2
- //# sourceMappingURL=RadioGroupFieldDefault-CU6LOX2R.js.map
@@ -1,2 +0,0 @@
1
- import{a}from"./chunk-YYSFI73T.js";import"./chunk-6FOEJAXI.js";import"./chunk-SFW4O42J.js";import"./chunk-5BU3CD2P.js";import"./chunk-TNQKP2XT.js";import"./chunk-JXAAON7I.js";import"./chunk-H2O4CVKF.js";import"./chunk-P37U34EQ.js";export{a as TextAreaFieldDefault};
2
- //# sourceMappingURL=TextAreaFieldDefault-4XPXRKZZ.js.map
@@ -1,2 +0,0 @@
1
- import{b as w}from"./chunk-PGWKJ6FK.js";import{d as v,e as y}from"./chunk-MCXUBLTV.js";import{b as i}from"./chunk-JXAAON7I.js";import{b as l}from"./chunk-H2O4CVKF.js";import{a as s}from"./chunk-P37U34EQ.js";import{jsx as _}from"react/jsx-runtime";function P({onSubmit:f,onSuccess:a,onError:t,render:E,...o}){let{components:R}=l(),{onboardingBag:r,setCreditScore:m}=w(),d=v(),u=y(),{mutateAsync:g}=i(d),{mutateAsync:S}=i(u),c=r.creditRiskStatus==="deposit_required"||r.onboardingReservesStatus==="deposit_required",I=s(async()=>{try{if(await f?.(),c&&r.employmentId&&r.employment?.status&&!r.isEmploymentReadOnly){let e=await S({employment_slug:r.employmentId});if(e.data){await a?.({data:e.data,employmentStatus:"created_awaiting_reserve"}),m?.(n=>({...n,showReserveInvoice:!0})),r.refetchEmployment();return}e.error&&t?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}else if(r.employmentId){let e=await g({employment_id:r.employmentId});if(e.data){await a?.({data:e.data,employmentStatus:"invited"}),m?.(n=>({...n,showInviteSuccessful:!0})),r.refetchEmployment();return}e.error&&t?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}}catch(e){t?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit"),b=c&&r.employment?.status&&!r.isEmploymentReadOnly,p=R?.button;if(!p)throw new Error("Button component not found");return _(p,{...o,disabled:d.isPending||u.isPending||o.disabled,onClick:e=>{I(),o.onClick?.(e)},children:E({employmentStatus:b?"created_awaiting_reserve":"invited"})})}s(P,"OnboardingInvite");export{P as a};
2
- //# sourceMappingURL=chunk-3EIBETN3.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentForm.tsx"],"sourcesContent":["import {\n ContractAmendmentAutomatableResponse,\n PostAutomatableContractAmendmentError,\n} from '@/src/client';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { FieldValues, useForm } from 'react-hook-form';\nimport { useContractAmendmentContext } from './context';\n\ntype ContractAmendmentFormProps = {\n /**\n * Callback function to be called when the contract amendment form is submitted.\n * This function is called before the contract amendment is submitted.\n * It can be used to perform any additional validation or processing before\n * the contract amendment is submitted.\n * @param values\n * @returns\n */\n onSubmit?: (values: FieldValues) => void | Promise<void>;\n /**\n * Callback function to be called when the contract amendment fails.\n * @param error\n * @returns\n */\n onError?: (\n error:\n | PostAutomatableContractAmendmentError\n | { message: 'no_changes_detected_contract_details' },\n ) => void;\n /**\n * Callback function to be called when the contract amendment is successfully submitted.\n * This function is called after the contract amendment is submitted.\n * @param data\n * @returns\n */\n onSuccess?: (\n data: ContractAmendmentAutomatableResponse,\n ) => void | Promise<void>;\n};\n\nconst commonFields = [\n 'effective_date',\n 'reason_for_change',\n 'reason_for_change_description',\n 'additional_comments',\n 'additional_comments_toggle',\n] as const;\n\ntype CommonFields = (typeof commonFields)[number];\n\nexport function ContractAmendmentForm({\n onSubmit,\n onError,\n onSuccess,\n}: ContractAmendmentFormProps) {\n const {\n formId,\n contractAmendment: {\n checkFieldUpdates,\n fields,\n onSubmit: submitContractAmendment,\n stepState,\n initialValues,\n handleValidation,\n },\n } = useContractAmendmentContext();\n\n const resolver = useJsonSchemasValidationFormResolver(handleValidation);\n\n const form = useForm({\n resolver,\n defaultValues:\n // stepState.values is used as defaultValues for the form when the form is\n // rendered when clicking on the back button after the user has submitted the form\n // and the confirmation form is displayed.\n // This is because the form is unmounted when the user submits the form.\n stepState.values?.form || initialValues,\n shouldUnregister: true,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isFormDirty =\n Object.keys(form.formState.dirtyFields).length > 0 ||\n form.formState.isDirty;\n if (isFormDirty) {\n checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (values: FieldValues) => {\n let hasContractDetailsChanges = false;\n for (const [key, value] of Object.entries(values)) {\n if (\n !commonFields.includes(key as CommonFields) &&\n initialValues[key as keyof typeof initialValues] !== value\n ) {\n hasContractDetailsChanges = true;\n break;\n }\n }\n\n if (!hasContractDetailsChanges) {\n return onError?.({\n message: 'no_changes_detected_contract_details',\n });\n }\n\n const parsedValues = await parseJSFToValidate(values, fields, {\n isPartialValidation: false,\n });\n\n await onSubmit?.(parsedValues);\n\n const contractAmendmentResult = await submitContractAmendment(values);\n\n if (contractAmendmentResult.error) {\n onError?.(contractAmendmentResult.error);\n } else {\n await onSuccess?.(\n contractAmendmentResult.data as ContractAmendmentAutomatableResponse,\n );\n }\n };\n\n return (\n <Form {...form}>\n <form\n id={formId}\n data-testid='contract-amendment-form'\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__ContractAmendmentForm'\n >\n <JSONSchemaFormFields fields={fields} />\n </form>\n </Form>\n );\n}\n"],"mappings":"kPAQA,OAAS,aAAAA,MAAiB,QAoIlB,cAAAC,MAAA,oBAjGR,IAAMC,EAAe,CACnB,iBACA,oBACA,gCACA,sBACA,4BACF,EAIO,SAASC,EAAsB,CACpC,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA+B,CAC7B,GAAM,CACJ,OAAAC,EACA,kBAAmB,CACjB,kBAAAC,EACA,OAAAC,EACA,SAAUC,EACV,UAAAC,EACA,cAAAC,EACA,iBAAAC,CACF,CACF,EAAIC,EAA4B,EAE1BC,EAAWC,EAAqCH,CAAgB,EAEhEI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAKEJ,EAAU,QAAQ,MAAQC,EAC5B,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDO,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,EAEzC,OAAO,KAAKJ,EAAK,UAAU,WAAW,EAAE,OAAS,GACjDA,EAAK,UAAU,UAEfT,EAAkBa,CAAM,CAE5B,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAME,EAAeC,EAAA,MAAOF,GAAwB,CAClD,IAAIG,EAA4B,GAChC,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQL,CAAM,EAC9C,GACE,CAACnB,EAAa,SAASuB,CAAmB,GAC1Cb,EAAca,CAAiC,IAAMC,EACrD,CACAF,EAA4B,GAC5B,KACF,CAGF,GAAI,CAACA,EACH,OAAOnB,IAAU,CACf,QAAS,sCACX,CAAC,EAGH,IAAMsB,EAAe,MAAMC,EAAmBP,EAAQZ,EAAQ,CAC5D,oBAAqB,EACvB,CAAC,EAED,MAAML,IAAWuB,CAAY,EAE7B,IAAME,EAA0B,MAAMnB,EAAwBW,CAAM,EAEhEQ,EAAwB,MAC1BxB,IAAUwB,EAAwB,KAAK,EAEvC,MAAMvB,IACJuB,EAAwB,IAC1B,CAEJ,EAjCqB,gBAmCrB,OACE5B,EAAC6B,EAAA,CAAM,GAAGb,EACR,SAAAhB,EAAC,QACC,GAAIM,EACJ,cAAY,0BACZ,SAAUU,EAAK,aAAaK,CAAY,EACxC,UAAU,+CAEV,SAAArB,EAAC8B,EAAA,CAAqB,OAAQtB,EAAQ,EACxC,EACF,CAEJ,CA3FgBc,EAAApB,EAAA","names":["useEffect","jsx","commonFields","ContractAmendmentForm","onSubmit","onError","onSuccess","formId","checkFieldUpdates","fields","submitContractAmendment","stepState","initialValues","handleValidation","useContractAmendmentContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","handleSubmit","__name","hasContractDetailsChanges","key","value","parsedValues","parseJSFToValidate","contractAmendmentResult","Form","JSONSchemaFormFields"]}
@@ -1,2 +0,0 @@
1
- import{a,b as s,e as l,h as c,i as d}from"./chunk-PX5PE6GX.js";import{a as n}from"./chunk-P37U34EQ.js";function _(e={}){let o=[{name:"select_country",label:"Select Country",visible:!!e?.includeSelectCountry},{name:"basic_information",label:"Basic Information",visible:!0},{name:"pricing_plan",label:"Pricing Plan",visible:!0},{name:"eligibility_questionnaire",label:"Eligibility Questionnaire",visible:!!e?.includeEligibilityQuestionnaire},{name:"contract_details",label:"Contract Details",visible:!0},{name:"contract_preview",label:"Contract Preview",visible:!!e?.includeContractPreview},{name:"review",label:"Review",visible:!0}].map((i,r)=>({name:i.name,index:r,label:i.label,visible:i.visible}));return{steps:o.reduce((i,r)=>(i[r.name]={index:r.index,name:r.name,visible:r.visible},i),{}),stepsArray:o}}n(_,"buildSteps");var E=n((e,t)=>{if(e&&t&&e!==t)return`When the contractor will start providing service to your company. ${`This date does not match the date you provided in the Basic Information step - ${e} - and will override it only when both parties have signed the contract.`}`},"calculateProvisionalStartDateDescription"),v=n(e=>e===a||e===s,"isCMOrCMPlus"),p=["SAU","KWT","OMN","QAT","BHR"],g=n(e=>p.includes(e),"isNationalityCountryCode"),y=n((e,t)=>!t||t.length===0?!0:!t.some(o=>l[o]===e),"shouldIncludeProduct"),S=["invited","created_awaiting_reserve","created_reserve_paid"],f=["created_awaiting_reserve","invited"];function R(e){return e?d:c}n(R,"transformAiErrorResponse");export{_ as a,E as b,v as c,g as d,y as e,S as f,f as g,R as h};
2
- //# sourceMappingURL=chunk-AHRG5QCS.js.map
@@ -1,2 +0,0 @@
1
- import{a as Wt,b as ne,c as ie,d as oe,e as re,f as ae,g as se,i as ce,j as le,k as ue,l as de,m as pe,n as me,o as fe,p as ye,q as _e,r as ge,s as be,t as Se,u as Ce}from"./chunk-CJJQ4NIH.js";import{a as we,b as he,c as ve}from"./chunk-IHHDOH6Y.js";import{a as Xt,b as Yt,f as Zt,g as te,h as ee}from"./chunk-AHRG5QCS.js";import{a as $,b as it,c as _,d as $t,g as zt}from"./chunk-PX5PE6GX.js";import{a as Gt}from"./chunk-RWXZG4KO.js";import{f as Nt,h as Ut,i as Kt}from"./chunk-MCXUBLTV.js";import{M as Jt}from"./chunk-TNQKP2XT.js";import{a as xt,b as w,d as Bt,h as y,i as R,u as V,v as D}from"./chunk-JXAAON7I.js";import{a as Ht}from"./chunk-JDIKYCN6.js";import{e as Qt}from"./chunk-H2O4CVKF.js";import{a as u}from"./chunk-P37U34EQ.js";import{useEffect as k,useMemo as a,useRef as Ee,useState as q}from"react";import Fe from"lodash.omit";import{useQuery as hn}from"@tanstack/react-query";var vn=u(()=>{let{client:L}=Qt(),{data:T}=ne(),l=ie(T)?T?.company?.id??"":"";return hn({queryKey:["legal-entities",l],queryFn:u(()=>Jt({client:L,path:{company_id:l},query:{page_size:100}}),"queryFn"),select:u(z=>z.data?.data?.legal_entities,"select"),enabled:!!l})},"useLegalEntities"),Pe=u(()=>{let{data:L}=vn();return L?.find(T=>T.is_default)},"useDefaultLegalEntity");var Pn={select_country:null,basic_information:"employment_basic_information",contract_details:null,eligibility_questionnaire:null,pricing_plan:null,contract_preview:null,review:null},En={employment_basic_information:"basic_information"},Zn=u(({countryCode:L,externalId:T,employmentId:l,skipSteps:z,options:p,initialValues:d})=>{let Me=p?.excludeProducts||[],ft=Ee(p?.onContractReviewed);k(()=>{ft.current=p?.onContractReviewed},[p?.onContractReviewed]);let[c,yt]=q(L||null),[o,Ve]=q(l),[g,_t]=q(void 0),W=Ee({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{},eligibility_questionnaire:{}}),[X,Oe]=q(void 0),[gt,Y]=q(!1),[bt,Ie]=q(!0),[ot,St]=q(null),{steps:Re,stepsArray:De}=a(()=>Xt({includeSelectCountry:!z?.includes("select_country"),includeEligibilityQuestionnaire:gt,includeContractPreview:bt}),[gt,bt,z]),{fieldValues:s,stepState:e,setFieldValues:Ct,previousStep:ke,nextStep:qe,goToStep:j,setStepValues:wt}=Ht(Re);k(()=>{ot&&(j(ot),St(null))},[ot,j]);let{data:r,isLoading:Te,refetch:ht}=Gt({employmentId:o,queryParams:{exclude_files:!0}}),Ae=Pe(),{status:A}=r||{},h=A&&Zt.includes(A),Le=A&&!te.includes(A),je=a(()=>A==="invited"?"invited":"not_invited",[A]),vt=Ut(),Pt=Kt(c,p),rt=le(),Et=Wt(),{mutateAsync:Ft}=pe(rt,Et,s),Mt=_e(),Vt=ge(),{mutateAsyncOrThrow:xe}=w(Pt),Ot=re(),It=ce(),Rt=be(),{mutateAsyncOrThrow:Be}=w(vt),{mutateAsyncOrThrow:Qe}=w(rt),{mutateAsyncOrThrow:Je}=w(Ot),{mutateAsyncOrThrow:Dt}=w(It),{mutateAsyncOrThrow:Ne}=w(Mt),{mutateAsyncOrThrow:kt}=w(Vt),{mutateAsyncOrThrow:Ue}=w(Rt);l&&r?.country?.code&&!c&&yt(r.country.code);let{selectCountryForm:x,isLoading:Ke,countries:qt}=Se({jsfModify:p?.jsfModify?.select_country}),at=a(()=>qt?.find(t=>t.value===c),[qt,c]),Ge=a(()=>at?.label,[at]),He=e.currentStep.name==="pricing_plan"||!!l&&h,{form:v,isLoading:$e,contractorSubscriptions:Z,refetch:st,isEligibilityQuestionnaireBlocked:B}=de(o,at,{jsonSchemaVersion:p?.jsonSchemaVersion,queryOptions:{enabled:He},excludeProducts:Me,jsfModify:p?.jsfModify?.pricing_plan}),O=a(()=>!!Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.submitted_at,[Z]);k(()=>{if(O){Y(!1);return}else Y(X===_)},[O,X]),k(()=>{let t=r?.contractor_type==="cor";Ie(!t)},[r?.contractor_type]);let tt=a(()=>Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.responses,[Z]),ze=Pn[e.currentStep.name]||"contractor_basic_information",We=En[ze],Xe=r?.[We]||{},Ye=u(({form:t,options:i={},query:f={}})=>{let C=Object.keys(s).length>0?{...d,...e.values?.[e.currentStep.name],...s}:{...d,...Xe};return Nt({countryCode:c,form:t,fieldValues:C,query:f,options:{...i,queryOptions:{enabled:i.queryOptions?.enabled??!0}}})},"useJSONSchema"),Ze=!!(c&&(e.currentStep.name==="basic_information"||l)),tn=!!(c==="GBR"&&l&&e.currentStep.name==="basic_information"),{data:Q,isLoading:en}=me(l,{enabled:tn}),{data:et,isLoading:nn}=fe(o,{enabled:!!o});k(()=>{et&&et.length>0&&!g&&_t(et[0].id)},[et,g]);let{data:b,isLoading:on}=Ye({form:"contractor_basic_information",options:{jsfModify:he(c,Ge,p),queryOptions:{enabled:Ze}}}),rn=a(()=>Yt(r?.basic_information?.provisional_start_date,s?.service_duration?.provisional_start_date),[r?.basic_information?.provisional_start_date,s?.service_duration?.provisional_start_date]),m=a(()=>{let t={standard:$,plus:it,cor:_};if(s.subscription)return s.subscription;let i=e.values?.pricing_plan?.subscription;return i&&!B?i:O&&!B?_:B&&O?$:t[r?.contractor_type]||$},[s,e.values,O,r?.contractor_type,B]);k(()=>{m&&m!==X&&Oe(m)},[m,X]);let an=a(()=>({...tt,...d,...e.values?.eligibility_questionnaire,...s}),[tt,d,e.values?.eligibility_questionnaire,s]),sn=a(()=>m===_&&e.currentStep.name==="eligibility_questionnaire"||!!l&&h&&m===_,[m,e.currentStep.name,l,h]),{data:P,isLoading:cn}=ye({options:{queryOptions:{enabled:sn},jsfModify:p?.jsfModify?.eligibility_questionnaire},fieldValues:an}),ln=!!(c&&e.currentStep.name==="contract_details"||h),{data:S,isLoading:un}=Ce({countryCode:c,fieldValues:s,employmentId:o,options:{queryOptions:{enabled:ln},jsfModify:we(p?.jsfModify?.contract_details,rn,m,s,m===_)}}),dn=a(()=>e.currentStep.name==="contract_preview"||!!l&&h,[e.currentStep.name,l,h]),{data:E}=oe({fieldValues:s,options:{queryOptions:{enabled:dn},jsfModify:ve(p,s)}}),{data:ct,isLoading:pn,refetch:mn}=ae({employmentId:o,contractDocumentId:g,options:{queryOptions:{enabled:!!g}}}),{hasCompanySignedContract:fn}=se({employmentId:o,contractDocumentId:g,options:{queryOptions:{enabled:!!g}}}),n=a(()=>({select_country:x?.fields||[],basic_information:b?.fields||[],pricing_plan:v?.fields||[],eligibility_questionnaire:P?.fields||[],contract_details:S?.fields||[],contract_preview:E?.fields||[],review:[]}),[x?.fields,b?.fields,v?.fields,S?.fields,E?.fields,P?.fields]),yn={select_country:null,basic_information:b?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:S?.meta["x-jsf-fieldsets"],eligibility_questionnaire:null,contract_preview:null,review:null},_n={select_country:x?.meta?.["x-jsf-presentation"],basic_information:b?.meta?.["x-jsf-presentation"],pricing_plan:v?.meta?.["x-jsf-presentation"],eligibility_questionnaire:P?.meta?.["x-jsf-presentation"],contract_details:S?.meta?.["x-jsf-presentation"],contract_preview:E?.meta?.["x-jsf-presentation"],review:null},{country:gn,basic_information:nt={},contract_details:Tt={}}=r||{},At=gn?.code,J=a(()=>R(n.select_country,{country:c||At||""}),[n.select_country,c,At]),lt=a(()=>Q?.content?Bt(Q.content,Q.name):null,[Q?.content,Q?.name]),N=a(()=>{let t={...d,...nt,ir35:r?.contract_details?.ir_35,nationality_status:r?.contract_details?.nationality,...lt&&{ir35_sds_file:[lt]}};return R(n.basic_information,t)},[d,nt,r?.contract_details?.ir_35,r?.contract_details?.nationality,lt,n.basic_information]),U=a(()=>{let i={...{service_duration:{provisional_start_date:nt.provisional_start_date}},...d,...Tt};return R(n.contract_details,i)},[n.contract_details,Tt,d,nt]),K=a(()=>{let t=ct?.contract_document?.signatories?.find(f=>f.type==="company"),i={...d,signature:t?.signature};return R(n.contract_preview,i)},[n.contract_preview,d,ct]),G=a(()=>{let i={...{subscription:m},...d};return R(n.pricing_plan,i)},[n.pricing_plan,d,m]),H=a(()=>{let t={...d,...tt};return R(n.eligibility_questionnaire,t)},[n.eligibility_questionnaire,d,tt]),bn=a(()=>({select_country:J,basic_information:N,contract_details:U,contract_preview:K,pricing_plan:G,eligibility_questionnaire:H}),[J,N,U,K,G,H]),ut=!!(l&&h&&e.currentStep.name!=="review"),dt=Ke||on||Te||un||$e||pn||en||nn||cn,Lt=a(()=>{let i=r?.contractor_type==="cor"||n.contract_preview.length>0;return!!(ut&&!dt&&g&&n.basic_information.length>0&&n.contract_details.length>0&&i)},[ut,dt,g,n.basic_information.length,n.contract_details.length,n.contract_preview.length,r?.contractor_type]);k(()=>{Lt&&(W.current={select_country:V(J,n.select_country,{skipMoneyConversion:!0}),basic_information:V(N,n.basic_information,{skipMoneyConversion:!0}),contract_details:V(U,n.contract_details,{skipMoneyConversion:!0}),contract_preview:V(K,n.contract_preview,{skipMoneyConversion:!0}),pricing_plan:V(G,n.pricing_plan,{skipMoneyConversion:!0}),eligibility_questionnaire:V(H,n.eligibility_questionnaire,{skipMoneyConversion:!0})},wt({select_country:J,basic_information:N,contract_details:U,contract_preview:K,pricing_plan:G,eligibility_questionnaire:H,review:{}}),j("review"))},[Lt,j,J,N,U,wt,n.select_country,n.basic_information,n.contract_details,n.pricing_plan,G,n.contract_preview,K,n.eligibility_questionnaire,H]);let Sn=u(t=>{j(t)},"goTo"),jt=u(async t=>x&&e.currentStep.name==="select_country"?t:b&&e.currentStep.name==="basic_information"?await y(t,b?.fields,{isPartialValidation:!1}):S&&e.currentStep.name==="contract_details"?await y(t,S?.fields,{isPartialValidation:!1}):E&&e.currentStep.name==="contract_preview"?await y(t,E?.fields,{isPartialValidation:!1}):v&&e.currentStep.name==="pricing_plan"?await y(t,v?.fields,{isPartialValidation:!1}):P&&e.currentStep.name==="eligibility_questionnaire"?await y(t,P?.fields,{isPartialValidation:!1}):{},"parseFormValues"),Cn=u(t=>{if(!xt(t))return null;let i=t.normalizedErrors.services_and_deliverables;return i?.source===zt?{error:i.error,source:i.source,skippable:i.skippable}:null},"extractAiValidationError");async function wn(t){let i=e.currentStep.name,f=await jt(t);switch(i in W.current&&(W.current[i]=V(f,n[i])),e.currentStep.name){case"select_country":return yt(f.country),Promise.resolve({data:{countryCode:f.country}});case"basic_information":{let F=!o&&c,C=o&&c&&r?.country&&r?.country.code!==c;if(F||C){let I={basic_information:Fe(f,"nationality_status","ir35","ir35_sds_file"),type:"contractor",country_code:c,external_id:T},pt=await Be(I),mt=pt?.data?.employment?.id;if(!mt)throw D("Employment ID not found");return await Ft({employmentId:mt}),Ve(mt),pt}else if(o){let M=Fe(f,"nationality_status","ir35","ir35_sds_file");return await Ft({employmentId:o}),xe({employmentId:o,basic_information:M})}return}case"contract_details":{let F=s.services_and_deliverables_error_skippable===!0,C={contract_document:f,skip_ai_checks:F};try{let M=await Qe({employmentId:o,payload:C}),I=M?.data?.contract_document?.id;if(!I)throw D("Contract document ID not found");return _t(I),M}catch(M){let I=Cn(M);throw I&&Ct({...t,services_and_deliverables_ai_warning:ee(m===_),services_and_deliverables_error_skippable:I.skippable}),M}}case"contract_preview":{if(fn)return Promise.resolve({data:{contract_document:{id:g}}});let F=await Je({employmentId:o,contractDocumentId:g,payload:{signature:f.signature}});return await mn(),F}case"pricing_plan":{if(B&&[_,it].includes(t.subscription))throw D(`This individual is not eligible for ${ue[t.subscription]}.`);if(t.subscription===$t)return Promise.resolve({data:{subscription:t.subscription}});if(O&&t.subscription!==_)try{await Ue({employmentId:o}),await st()}catch(C){if(C?.response?.status!==404)throw C;await st()}if(t.subscription==$)return Dt({employmentId:o,payload:{operation:"downgrade"}});if(t.subscription==it)return Dt({employmentId:o,payload:{operation:"upgrade"}});if(t.subscription==_)return O&&r?.contractor_type!=="cor"?kt({employmentId:o}):Promise.resolve({data:{subscription:t.subscription}});throw D("invalid selection")}case"eligibility_questionnaire":try{if((await Ne({employmentId:o,payload:f}))?.data?.is_blocking)throw Y(!1),St("pricing_plan"),D("This individual is not eligible for Contractor of Record.");return await kt({employmentId:o})}finally{await st()}default:throw D("Invalid step state")}}return u(wn,"onSubmit"),{isLoading:dt||ut,fieldValues:s,stepState:e,checkFieldUpdates:Ct,markContractAsReviewed:u(()=>{ft.current?.()},"markContractAsReviewed"),back:ke,next:u(()=>{o&&ht(),qe()},"handleNextStep"),goTo:Sn,onSubmit:wn,fields:n[e.currentStep.name],meta:{fields:W.current,fieldsets:yn[e.currentStep.name],presentation:_n[e.currentStep.name]},parseFormValues:jt,canSkipAiValidation:s.services_and_deliverables_error_skippable===!0,handleValidation:u(async t=>{if(e.currentStep.name==="select_country")return x.handleValidation(t);if(b&&e.currentStep.name==="basic_information"){let i=await y(t,b?.fields,{isPartialValidation:!1});return b?.handleValidation(i)}if(S&&e.currentStep.name==="contract_details"){let i=await y(t,S?.fields,{isPartialValidation:!1});return S?.handleValidation(i)}if(E&&e.currentStep.name==="contract_preview"){let i=await y(t,E?.fields,{isPartialValidation:!0});return E?.handleValidation(i)}if(v&&e.currentStep.name==="pricing_plan"){let i=await y(t,v?.fields,{isPartialValidation:!1});return v?.handleValidation(i)}if(P&&e.currentStep.name==="eligibility_questionnaire"){let i=await y(t,P?.fields,{isPartialValidation:!1});return P?.handleValidation(i)}return null},"handleValidation"),initialValues:bn,employmentId:o,refetchEmployment:ht,isSubmitting:vt.isPending||Pt.isPending||rt.isPending||Ot.isPending||It.isPending||Et.isPending||Mt.isPending||Vt.isPending||Rt.isPending,documentPreviewPdf:ct,canInvite:Le,isEmploymentReadOnly:h,invitedStatus:je,employment:r,defaultLegalEntity:Ae,steps:De}},"useContractorOnboarding");export{Zn as a};
2
- //# sourceMappingURL=chunk-AIT2DBW2.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} 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} 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_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_details: Meta;\n contract_preview: Meta;\n pricing_plan: Meta;\n eligibility_questionnaire: Meta;\n }>({\n select_country: {},\n basic_information: {},\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 [pendingNavigationStep, setPendingNavigationStep] =\n useState<StepKeys | null>(null);\n\n const { steps, stepsArray } = useMemo(\n () =>\n buildSteps({\n includeSelectCountry: !skipSteps?.includes('select_country'),\n includeEligibilityQuestionnaire: includeEligibilityQuestionnaire,\n includeContractPreview: includeContractPreview,\n }),\n [includeEligibilityQuestionnaire, includeContractPreview, skipSteps],\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 { 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 isInvited = employmentStatus === 'invited';\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\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 // 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 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) => subscription.product.short_name === 'COR',\n )?.eligibility_questionnaire?.submitted_at,\n );\n }, [contractorSubscriptions]);\n\n useEffect(() => {\n if (hasEligibilityQuestionnaireSubmitted) {\n setIncludeEligibilityQuestionnaire(false);\n return;\n } else if (selectedProduct === corProductIdentifier) {\n setIncludeEligibilityQuestionnaire(true);\n } else {\n setIncludeEligibilityQuestionnaire(false);\n }\n }, [hasEligibilityQuestionnaireSubmitted, selectedProduct]);\n\n useEffect(() => {\n const isCor = employment?.contractor_type === 'cor';\n setIncludeContractPreview(!isCor);\n }, [employment?.contractor_type]);\n\n const eligibilityAnswers = useMemo(() => {\n return contractorSubscriptions?.find(\n (subscription) => subscription.product.short_name === 'COR',\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 }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\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 });\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 });\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 // 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 ]);\n\n useEffect(() => {\n if (selectedPricingPlan && selectedPricingPlan !== selectedProduct) {\n setSelectedProduct(selectedPricingPlan);\n }\n }, [selectedPricingPlan, selectedProduct]);\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 {\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 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 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 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 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 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_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\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_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_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 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 servicesAndDeliverablesError = error.normalizedErrors\n .services_and_deliverables 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 shouldSkipAiChecks =\n fieldValues.services_and_deliverables_error_skippable === true;\n const payload: CreateContractDocument = {\n contract_document: parsedValues,\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 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 // Handle EOR selection (from merged options)\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\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 '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 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\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 * 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 { getIndexCompanyLegalEntities } 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 getIndexCompanyLegalEntities({\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((legalEntity) => legalEntity.is_default);\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","omit","useQuery","useLegalEntities","__name","client","useClient","identity","useIdentity","companyId","hasCompany","useQuery","getIndexCompanyLegalEntities","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","pendingNavigationStep","setPendingNavigationStep","steps","stepsArray","useMemo","buildSteps","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmploymentQuery","defaultLegalEntity","useDefaultLegalEntity","employmentStatus","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","invitedStatus","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","createContractorContractDocumentMutation","useCreateContractorContractDocument","uploadFileMutation","useUploadFile","updateUKandSaudiFieldsMutation","useUpdateUKandSaudiFields","createEligibilityQuestionnaireMutation","usePostCreateEligibilityQuestionnaire","manageContractorCorSubscriptionMutation","usePostManageContractorCorSubscription","updateEmploymentMutationAsync","mutationToPromise","signContractDocumentMutation","useSignContractDocument","manageContractorSubscriptionMutation","usePostManageContractorSubscriptions","deleteContractorCorSubscriptionMutation","useDeleteContractorCorSubscription","createEmploymentMutationAsync","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","manageContractorSubscriptionMutationAsync","createEligibilityQuestionnaireMutationAsync","manageContractorCorSubscriptionMutationAsync","deleteContractorCorSubscriptionMutationAsync","selectCountryForm","isLoadingCountries","countries","useCountriesSchemaField","selectedCountry","country","countryName","isPricingPlanEnabled","selectContractorSubscriptionForm","isLoadingContractorSubscriptions","contractorSubscriptions","refetchContractorSubscriptions","isEligibilityQuestionnaireBlocked","useContractorSubscriptionSchemaField","hasEligibilityQuestionnaireSubmitted","subscription","corProductIdentifier","isCor","eligibilityAnswers","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isIR35FileEnabled","ir35File","isLoadingIR35File","useGetIR35File","contractDocuments","isLoadingContractDocuments","useGetContractDocuments","basicInformationForm","isLoadingBasicInformationForm","buildBasicInformationJsfModify","descriptionProvisionalStartDate","calculateProvisionalStartDateDescription","selectedPricingPlan","subscriptions","contractorStandardProductIdentifier","contractorPlusProductIdentifier","eligibilityFields","isEligibilityQuestionnaireEnabled","eligibilityQuestionnaireForm","isLoadingEligibilityQuestionnaire","useGetEligibilityQuestionnaire","isContractorOnboardingDetailsEnabled","contractorOnboardingDetailsForm","isLoadingContractorOnboardingDetailsForm","useContractorOnboardingDetailsSchemaWithCurrencies","buildContractDetailsJsfModify","isSignatureSchemaEnabled","signatureSchemaForm","useGetContractDocumentSignatureSchema","buildContractPreviewJsfModify","documentPreviewPdf","isLoadingDocumentPreviewForm","refetchDocumentPreviewForm","useGetShowContractDocument","hasCompanySignedContract","useHasCompanySignedContract","stepFields","stepFieldsWithFlatFieldsets","stepPresentation","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","convertedIr35File","dataURLtoFile","basicInformationInitialValues","initialValues","contractDetailsInitialValues","contractPreviewInitialValues","signature","signatory","pricingPlanInitialValues","eligibilityQuestionnaireInitialValues","shouldHandleReadOnlyEmployment","initialLoading","isNavigatingToReview","hasContractPreviewFields","prettifyFormValues","goTo","step","parseFormValues","values","parseJSFToValidate","extractAiValidationError","error","isMutationError","servicesAndDeliverablesError","REMOTE_AI_ERROR_SOURCE","onSubmit","currentStepName","parsedValues","isEmploymentNotLoaded","hasChangedCountry","basicInformationPayload","omit","response","createStructuredError","basicInformationParsedValues","shouldSkipAiChecks","payload","contractDocumentId","aiError","transformAiErrorResponse","CONTRACT_PRODUCT_TITLES","eorProductIdentifier"]}
@@ -1,2 +0,0 @@
1
- import{a as p}from"./chunk-OL5C4QEH.js";import{b as f}from"./chunk-Q3ALCPJN.js";import{b as m}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useState as b}from"react";import{jsx as o}from"react/jsx-runtime";function E({render:d,onClick:w,...C}){let[B,n]=b(!1),{formId:v,contractorOnboardingBag:r,formRef:s}=f(),{components:u}=m(),a=u?.button;if(!a)throw new Error("Button component not found");let c=u?.pdfViewer;if(!c)throw new Error("PDFViewer component not found");let e=!!r.fieldValues?.review_completed,i=r.documentPreviewPdf?.contract_document.content;return o(p,{open:B,onOpenChange:t(()=>{n(!1),s?.setValue?.current&&s.setValue.current("review_completed",!0)},"handleClose"),title:"Contract Document",className:"max-h-[90vh] flex flex-col w-full",trigger:o(a,{type:e?"submit":"button",form:v,onClick:t(l=>{e||(l.preventDefault(),n(!0),w?.(l))},"handleOpen"),...C,children:d({reviewCompleted:e})}),children:i&&o(c,{base64Data:i})})}t(E,"ContractReviewButton");export{E as a};
2
- //# sourceMappingURL=chunk-B6YWTMGV.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractorOnboarding/components/ContractReviewButton.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, useState } from 'react';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { Drawer } from '@/src/components/shared/drawer/Drawer';\nimport { useFormFields } from '@/src/context';\n\ntype ContractReviewButtonProps = {\n render: (props: { reviewCompleted: boolean }) => React.ReactNode;\n} & ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function ContractReviewButton({\n render,\n onClick,\n ...props\n}: ContractReviewButtonProps) {\n const [isOpen, setIsOpen] = useState(false);\n const { formId, contractorOnboardingBag, formRef } =\n useContractorOnboardingContext();\n const { components } = useFormFields();\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n const CustomPdfViewer = components?.pdfViewer;\n if (!CustomPdfViewer) {\n throw new Error(`PDFViewer component not found`);\n }\n\n const reviewCompleted = Boolean(\n contractorOnboardingBag.fieldValues?.review_completed,\n );\n const pdfContent = contractorOnboardingBag.documentPreviewPdf\n ?.contract_document.content as unknown as string;\n\n const handleOpen = (e: React.MouseEvent<HTMLButtonElement>) => {\n if (!reviewCompleted) {\n e.preventDefault();\n setIsOpen(true);\n onClick?.(e);\n }\n };\n\n const handleClose = () => {\n setIsOpen(false);\n\n // Sync with the form if it's available\n if (formRef?.setValue?.current) {\n formRef.setValue.current('review_completed', true);\n }\n };\n\n return (\n <Drawer\n open={isOpen}\n onOpenChange={handleClose}\n title='Contract Document'\n className='max-h-[90vh] flex flex-col w-full'\n trigger={\n <CustomButton\n type={reviewCompleted ? 'submit' : 'button'}\n form={formId}\n onClick={handleOpen}\n {...props}\n >\n {render({ reviewCompleted })}\n </CustomButton>\n }\n >\n {pdfContent && <CustomPdfViewer base64Data={pdfContent} />}\n </Drawer>\n );\n}\n"],"mappings":"gKAAA,OAA+B,YAAAA,MAAgB,QA2DvC,cAAAC,MAAA,oBAlDD,SAASC,EAAqB,CACnC,OAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAA8B,CAC5B,GAAM,CAACC,EAAQC,CAAS,EAAIC,EAAS,EAAK,EACpC,CAAE,OAAAC,EAAQ,wBAAAC,EAAyB,QAAAC,CAAQ,EAC/CC,EAA+B,EAC3B,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAeF,GAAY,OACjC,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,IAAMC,EAAkBH,GAAY,UACpC,GAAI,CAACG,EACH,MAAM,IAAI,MAAM,+BAA+B,EAGjD,IAAMC,EAAkB,EACtBP,EAAwB,aAAa,iBAEjCQ,EAAaR,EAAwB,oBACvC,kBAAkB,QAmBtB,OACET,EAACkB,EAAA,CACC,KAAMb,EACN,aAZgBc,EAAA,IAAM,CACxBb,EAAU,EAAK,EAGXI,GAAS,UAAU,SACrBA,EAAQ,SAAS,QAAQ,mBAAoB,EAAI,CAErD,EAPoB,eAahB,MAAM,oBACN,UAAU,oCACV,QACEV,EAACc,EAAA,CACC,KAAME,EAAkB,SAAW,SACnC,KAAMR,EACN,QA3BWW,EAACC,GAA2C,CACxDJ,IACHI,EAAE,eAAe,EACjBd,EAAU,EAAI,EACdH,IAAUiB,CAAC,EAEf,EANmB,cA4BV,GAAGhB,EAEH,SAAAF,EAAO,CAAE,gBAAAc,CAAgB,CAAC,EAC7B,EAGD,SAAAC,GAAcjB,EAACe,EAAA,CAAgB,WAAYE,EAAY,EAC1D,CAEJ,CA/DgBE,EAAAlB,EAAA","names":["useState","jsx","ContractReviewButton","render","onClick","props","isOpen","setIsOpen","useState","formId","contractorOnboardingBag","formRef","useContractorOnboardingContext","components","useFormFields","CustomButton","CustomPdfViewer","reviewCompleted","pdfContent","Drawer","__name","e"]}
@@ -1,2 +0,0 @@
1
- import{a as z}from"./chunk-AP56UUME.js";import{a as H}from"./chunk-IJCTN52C.js";import{e as x}from"./chunk-AHRG5QCS.js";import{a as P,b as X,c as Y,d as h,f as _}from"./chunk-PX5PE6GX.js";import{a as B}from"./chunk-WVJDCDGZ.js";import{a as W}from"./chunk-MKUSE7JK.js";import{a as f}from"./chunk-HS63DEGD.js";import{$ as k,B as U,G as v,O as A,R as J,T as K,V as j,W as N,X as G,Y as V,aa as $,f as R,h as T,p as w,r as D,s as Q,t as L}from"./chunk-TNQKP2XT.js";import{b as O,g as q,t as M}from"./chunk-JXAAON7I.js";import{e as s}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMemo as re}from"react";import{useMutation as C,useQuery as d}from"@tanstack/react-query";import{useMutation as me,useQuery as Z}from"@tanstack/react-query";var Re=n(()=>{let{client:e}=s();return me({mutationFn:n(t=>K({client:e,body:t,headers:{Authorization:""}}),"mutationFn")})},"useUploadFile"),ee=n(e=>{let{client:t}=s();return Z({queryKey:["download-file",e],queryFn:n(async()=>{let o=await U({client:t,path:{id:e}});if(o.error)throw o.error;return o.data},"queryFn"),select:n(({data:o})=>o?.file,"select"),enabled:!!e})},"useDownloadFile"),te=n((e,t,o)=>{let{client:r}=s();return Z({queryKey:["employment-files",e],queryFn:n(async()=>{let i=await J({client:r,path:{employment_id:e},query:t});if(i.error)throw i.error;return i.data},"queryFn"),...o})},"useEmploymentFiles");import{useQuery as be}from"@tanstack/react-query";import{useQuery as ye}from"@tanstack/react-query";var ne=n(()=>{let{client:e}=s();return ye({queryKey:["identity"],queryFn:n(()=>N({client:e,headers:{Authorization:""}}),"queryFn"),select:n(t=>t.data?.data,"select")})},"useIdentity");function fe(e){return e!=null&&"company"in e}n(fe,"hasCompany");var oe=n((e={enabled:!0})=>{let{data:t}=ne(),o=fe(t)?t?.company?.id??"":"",{client:r}=s();return be({queryKey:["pricing-plans",o],queryFn:n(()=>R({client:r,path:{company_id:o}}),"queryFn"),select:n(i=>i.data?.data?.pricing_plans,"select"),enabled:!!e?.enabled&&!!o})},"useCompanyPricingPlans");var Ce=n(({employmentId:e,options:t})=>{let{client:o}=s();return d({queryKey:["contractor-currencies",e],queryFn:n(async()=>L({client:o,path:{employment_id:e},query:{restrict_to_guaranteed_pay_out_currencies:!1}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useContractorCurrencies"),ft=n(({fieldValues:e,options:t})=>d({queryKey:["contract-document-signature",e.review_completed,t?.jsfModify],queryFn:n(async()=>f(H,e,{jsfModify:t?.jsfModify}),"queryFn"),enabled:t?.queryOptions?.enabled}),"useGetContractDocumentSignatureSchema"),Ct=n(()=>{let{client:e}=s();return C({mutationFn:n(async({employmentId:t,contractDocumentId:o,payload:r})=>j({client:e,body:r,path:{employment_id:t,contract_document_id:o}}),"mutationFn")})},"useSignContractDocument"),ge=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{client:r}=s();return d({queryKey:["contract-document",e,t],queryFn:n(async()=>D({client:r,path:{employment_id:e,id:t}}),"queryFn"),enabled:o?.queryOptions?.enabled,select:n(({data:i})=>({...i?.data,contract_document:{...i?.data?.contract_document,content:M(i?.data?.contract_document?.content)}}),"select")})},"useGetShowContractDocument"),gt=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{data:r}=ge({employmentId:e,contractDocumentId:t,options:{queryOptions:{enabled:o?.queryOptions?.enabled}}});return{hasCompanySignedContract:r?.contract_document?.signatories?.some(a=>a.type==="company"&&a.status==="signed")}},"useHasCompanySignedContract"),Se=n(({employmentId:e,options:t})=>{let{client:o}=s();return d({queryKey:["contractor-subscriptions",e],queryFn:n(async()=>w({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useGetContractorSubscriptions"),St=n(()=>{let{client:e}=s();return C({mutationFn:n(async({employmentId:t,payload:o})=>V({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorSubscriptions"),Ft=n(()=>{let{client:e}=s();return C({mutationFn:n(async({employmentId:t,payload:o})=>A({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"useCreateContractorContractDocument"),Fe=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let{client:i}=s();return d({queryKey:["contractor-onboarding-details-schema",e,t],retry:!1,queryFn:n(async()=>T({client:i,path:{country_code:e},query:{json_schema_version:1,employment_id:t}}),"queryFn"),enabled:r?.queryOptions?.enabled,select:n(({data:a})=>{let c=a?.data?.schema||{};return f(c,o,r)},"select")})},"useContractorOnboardingDetailsSchema"),he={[P]:"Contractor Management",[X]:"Contractor Management Plus",[Y]:"Contractor of Record"},_e=n(e=>{let{data:t,isLoading:o}=oe({enabled:e?.enabled}),r=t?.find(a=>a.product.name==="EOR Monthly");return{eorSubscription:{product:{identifier:h,short_name:"EOR"},currency:r?.price.currency,price:{amount:q(r?.price.amount??0)},features:["Contract between Remote and employee","Remote manages onboarding, payroll, and compliance","Manages taxes, benefits, and time-off tracking","Handles contracts, transfers, and terminations"],description:"Enables hiring in countries without a local entity",label:"Employer of Record",value:h},isLoading:o}},"useEorSubscription"),Oe=n((e,t,o)=>(x(h,o)&&e.push({label:t.label,value:t.value,description:t.description,meta:{features:t.features,price:{amount:t.price.amount,currencyCode:t.currency?.code??""}},disabled:!1}),e),"addEorToFieldOptions"),ht=n((e,t,o)=>{let{data:r,isLoading:i,refetch:a}=Se({employmentId:e,options:{queryOptions:o?.queryOptions}}),c=re(()=>r?.filter(l=>x(l.product.identifier??"",o?.excludeProducts))??[],[r,o?.excludeProducts]),g=r?r?.length<3:!1,u=r?.find(l=>l.product.short_name==="COR")?.eligibility_questionnaire?.is_blocking,b=(g||u)&&t?.eor_onboarding&&!o?.excludeProducts?.includes("eor"),{eorSubscription:ie,isLoading:ae}=_e({enabled:b}),E=f(z.data.schema,{},o),I=E.fields.find(l=>l.name==="subscription");if(I){let l=c.map(F=>{let y=F.product,se=F.price.amount,ce=F.currency.code,ue=he[y.identifier]??"",le=y.identifier??"",de=y.description??"",pe={features:y.features??[],price:{amount:q(se),currencyCode:ce}};return{label:ue,value:le,description:de,meta:pe,disabled:u&&y.identifier!==P}});l.sort((F,y)=>F.label.localeCompare(y.label));let S=[];b&&(Oe(S,ie,o?.excludeProducts),S.length>0&&(S[0].meta={...S[0].meta,groupSeparator:{show:!0}})),I.options=[...l,...S]}return{isLoading:i||ae,form:E,contractorSubscriptions:r,filteredContractorSubscriptions:c,refetch:a,isEligibilityQuestionnaireBlocked:u}},"useContractorSubscriptionSchemaField"),_t=n((e,t,o)=>{let{mutateAsyncOrThrow:r}=O(t),{mutateAsyncOrThrow:i}=O(e);return{mutateAsync:n(async({employmentId:a})=>{let{nationality_status:c,ir35:p,ir35_sds_file:g}=o,m={contract_document:{ir_35:p}},u={contract_document:{nationality:c}};return p?(await i({employmentId:a,payload:m}),g?r({employment_id:a,file:g,sub_type:_}):Promise.resolve()):c?i({employmentId:a,payload:u}):Promise.resolve()},"mutateAsync")}},"useUpdateUKandSaudiFields"),Ot=n((e,t)=>{let{data:o,isLoading:r}=te(e,{sub_type:_},{...t,select:n(({data:c})=>c?.files?.filter(p=>p.sub_type===_),"select")}),i=o?.[0]?.id,a=ee(i);return{...a,isLoading:r||a.isLoading}},"useGetIR35File"),qt=n((e,t)=>{let{client:o}=s();return d({queryKey:["contract-documents",e],queryFn:n(async()=>Q({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.enabled,select:n(({data:r})=>r?.data?.contract_documents,"select")})},"useGetContractDocuments"),Pt=n(({options:e,fieldValues:t})=>{let{client:o}=s();return d({queryKey:["eligibility-questionnaire"],queryFn:n(async()=>{let r=await G({client:o,query:{type:"contractor_of_record",json_schema_version:1}});if(r.error)throw new Error("Failed to fetch eligibility questionnaire");return r.data.data},"queryFn"),select:n(r=>{let i=r?.schema||{};return f(i,t,{jsfModify:e?.jsfModify})},"select"),enabled:e?.queryOptions?.enabled})},"useGetEligibilityQuestionnaire"),xt=n(()=>{let{client:e}=s();return C({mutationFn:n(async({employmentId:t,payload:o})=>v({client:e,body:{employment_slug:t,responses:o,type:"contractor_of_record"},query:{json_schema_version:1}}),"mutationFn")})},"usePostCreateEligibilityQuestionnaire"),Et=n(()=>{let{client:e}=s();return C({mutationFn:n(async({employmentId:t})=>$({client:e,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorCorSubscription"),It=n(()=>{let{client:e}=s();return C({mutationFn:n(async({employmentId:t})=>k({client:e,path:{employment_id:t}}),"mutationFn")})},"useDeleteContractorCorSubscription"),Mt=n(e=>{let{client:t}=s(),{data:o,isLoading:r}=d({...W(t,"contractor-onboarding-countries"),select:n(a=>a.data?.data?.map(c=>({label:c.name,value:c.code,eor_onboarding:c.eor_onboarding,contractor_products_available:c.contractor_products_available}))||[],"select"),enabled:e?.queryOptions?.enabled}),i=f(B.data.schema,{},e);if(o){let a=i.fields.find(c=>c.name==="country");a&&(a.options=o)}return{isLoading:r,selectCountryForm:i,countries:o}},"useCountriesSchemaField"),Rt=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let i=Fe({countryCode:e,employmentId:t,fieldValues:o,options:r}),{data:a,isLoading:c}=Ce({employmentId:t,options:{queryOptions:{enabled:r?.queryOptions?.enabled}}}),p=re(()=>!i.data||!a?i.data:{...i.data,fields:i.data.fields.map(m=>m.name!=="payment_terms"?m:{...m,fields:m.fields?.map(u=>u.name!=="compensation_currency_code"?u:{...u,options:a.map(b=>({label:b.code,value:b.code,meta:{source:b.source}}))})})},[i.data,a]);return{...i,data:p,isLoading:i.isLoading||c}},"useContractorOnboardingDetailsSchemaWithCurrencies");export{Re as a,ne as b,fe as c,ft as d,Ct as e,ge as f,gt as g,Se as h,St as i,Ft as j,he as k,ht as l,_t as m,Ot as n,qt as o,Pt as p,xt as q,Et as r,It as s,Mt as t,Rt as u};
2
- //# sourceMappingURL=chunk-CJJQ4NIH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractorOnboarding/api.ts","../src/common/api/files.ts","../src/common/api/companies.ts","../src/common/api/identity.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n CreateContractDocument,\n getShowContractDocument,\n getShowContractorContractDetailsCountry,\n getIndexSubscription,\n ManageContractorPlusSubscriptionOperationsParams,\n postCreateContractDocument,\n postManageContractorPlusSubscriptionSubscription,\n postSignContractDocument,\n SignContractDocument,\n getIndexEmploymentContractDocument,\n EligibilityQuestionnaireJsonSchemaResponse,\n getShowEligibilityQuestionnaire,\n SubmitEligibilityQuestionnaireRequest,\n postCreateEligibilityQuestionnaire,\n postManageContractorCorSubscriptionSubscription,\n deleteDeleteContractorCorSubscriptionSubscription,\n getIndexContractorCurrency,\n Country,\n} from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { signatureSchema } from '@/src/flows/ContractorOnboarding/json-schemas/signature';\nimport { selectContractorSubscriptionStepSchema } from '@/src/flows/ContractorOnboarding/json-schemas/selectContractorSubscriptionStep';\nimport {\n JSONSchemaFormResultWithFieldsets,\n FlowOptions,\n JSFModify,\n} from '@/src/flows/types';\nimport { clearBase64Data } from '@/src/lib/utils';\nimport { Client } from '@/src/client/client';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { useMutation, useQuery, UseQueryResult } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\nimport {\n contractorPlusProductIdentifier,\n contractorStandardProductIdentifier,\n corProductIdentifier,\n eorProductIdentifier,\n IR35_FILE_SUBTYPE,\n ProductType,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport { $TSFixMe, JSFField } from '@/src/types/remoteFlows';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport {\n useDownloadFile,\n useEmploymentFiles,\n useUploadFile,\n} from '@/src/common/api/files';\nimport { convertFromCents } from '@/src/components/form/utils';\nimport { countriesOptions } from '@/src/common/api/countries';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport { shouldIncludeProduct } from '@/src/flows/ContractorOnboarding/utils';\nimport { useCompanyPricingPlans } from '@/src/common/api/companies';\n\nconst useContractorCurrencies = ({\n employmentId,\n options,\n}: {\n employmentId: string;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contractor-currencies', employmentId],\n queryFn: async () => {\n return getIndexContractorCurrency({\n client: client as Client,\n path: { employment_id: employmentId },\n query: {\n restrict_to_guaranteed_pay_out_currencies: false,\n },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return data?.data;\n },\n });\n};\n\n/**\n * Get the contract document signature schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The contract document signature schema\n */\nexport const useGetContractDocumentSignatureSchema = ({\n fieldValues,\n options,\n}: {\n fieldValues: FieldValues;\n options?: { queryOptions?: { enabled?: boolean }; jsfModify?: JSFModify };\n}) => {\n return useQuery({\n queryKey: [\n 'contract-document-signature',\n fieldValues.review_completed,\n options?.jsfModify,\n ],\n queryFn: async () => {\n return createHeadlessForm(signatureSchema, fieldValues, {\n jsfModify: options?.jsfModify,\n });\n },\n enabled: options?.queryOptions?.enabled,\n });\n};\n\n/**\n * Signs the contract document\n * @param employmentId - The employment ID\n * @param contractDocumentId - The contract document ID\n * @param payload - The payload\n * @returns The signed contract document\n */\nexport const useSignContractDocument = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n contractDocumentId,\n payload,\n }: {\n employmentId: string;\n contractDocumentId: string;\n payload: SignContractDocument;\n }) => {\n return postSignContractDocument({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n contract_document_id: contractDocumentId,\n },\n });\n },\n });\n};\n\n/**\n * Get the contract document for a given employment and contract document ID\n * @param employmentId - The employment ID\n * @param contractDocumentId - The contract document ID\n * @returns The contract document\n */\nexport const useGetShowContractDocument = ({\n employmentId,\n contractDocumentId,\n options,\n}: {\n employmentId: string;\n contractDocumentId: string;\n options?: { queryOptions?: { enabled?: boolean }; jsfModify?: JSFModify };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contract-document', employmentId, contractDocumentId],\n queryFn: async () => {\n return getShowContractDocument({\n client: client as Client,\n path: { employment_id: employmentId, id: contractDocumentId },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return {\n ...data?.data,\n contract_document: {\n ...data?.data?.contract_document,\n content: clearBase64Data(\n data?.data?.contract_document?.content as $TSFixMe,\n ),\n },\n };\n },\n });\n};\n\nexport const useHasCompanySignedContract = ({\n employmentId,\n contractDocumentId,\n options,\n}: {\n employmentId: string;\n contractDocumentId: string;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n const { data: documentPreviewPdf } = useGetShowContractDocument({\n employmentId,\n contractDocumentId,\n options: {\n queryOptions: {\n enabled: options?.queryOptions?.enabled,\n },\n },\n });\n\n const hasCompanySignedContract =\n documentPreviewPdf?.contract_document?.signatories?.some(\n (signatory) =>\n signatory.type === 'company' && signatory.status === 'signed',\n );\n\n return {\n hasCompanySignedContract,\n };\n};\n/**\n * Get the contractor subscriptions for the given employment id\n * @param employmentId - The employment ID\n * @returns The contractor subscriptions available\n */\nexport const useGetContractorSubscriptions = ({\n employmentId,\n options,\n}: {\n employmentId: string;\n options?: { queryOptions?: { enabled?: boolean } };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contractor-subscriptions', employmentId],\n queryFn: async () => {\n return getIndexSubscription({\n client: client as Client,\n path: { employment_id: employmentId },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n return data?.data;\n },\n });\n};\n\n/**\n * Upgrade or downgrade contractor subscription\n */\nexport const usePostManageContractorSubscriptions = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: ManageContractorPlusSubscriptionOperationsParams;\n }) => {\n return postManageContractorPlusSubscriptionSubscription({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\n/**\n * Saves the contractor details data\n * @param employmentId - The employment ID\n * @param payload - The payload\n * @returns The contractor contract document\n */\nexport const useCreateContractorContractDocument = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: CreateContractDocument;\n }) => {\n return postCreateContractDocument({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\n/**\n * Get the contractor onboarding details schema for a given country\n * @param countryCode - The country code\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The contractor onboarding details schema\n */\nconst useContractorOnboardingDetailsSchema = ({\n countryCode,\n employmentId,\n fieldValues,\n options,\n}: {\n countryCode: string;\n fieldValues: FieldValues;\n employmentId: string;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n query?: Record<string, unknown>;\n}): UseQueryResult<JSONSchemaFormResultWithFieldsets> => {\n const { client } = useClient();\n return useQuery({\n queryKey: [\n 'contractor-onboarding-details-schema',\n countryCode,\n employmentId,\n ],\n retry: false,\n queryFn: async () => {\n return getShowContractorContractDetailsCountry({\n client: client as Client,\n path: { country_code: countryCode },\n query: {\n json_schema_version: 1,\n employment_id: employmentId,\n },\n });\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n const jsfSchema = data?.data?.schema || {};\n return createHeadlessForm(jsfSchema, fieldValues, options);\n },\n });\n};\n\nexport const CONTRACT_PRODUCT_TITLES = {\n [contractorStandardProductIdentifier]: 'Contractor Management',\n [contractorPlusProductIdentifier]: 'Contractor Management Plus',\n [corProductIdentifier]: 'Contractor of Record',\n};\n\nconst useEorSubscription = (options?: { enabled?: boolean }) => {\n const { data: pricingPlans, isLoading: isLoadingPricingPlans } =\n useCompanyPricingPlans({\n enabled: options?.enabled,\n });\n\n const eorPricingPlan = pricingPlans?.find(\n (plan) => plan.product.name === 'EOR Monthly',\n );\n\n const eorSubscription = {\n product: {\n identifier: eorProductIdentifier,\n short_name: 'EOR',\n },\n currency: eorPricingPlan?.price.currency,\n price: {\n amount: convertFromCents(eorPricingPlan?.price.amount ?? 0),\n },\n features: [\n 'Contract between Remote and employee',\n 'Remote manages onboarding, payroll, and compliance',\n 'Manages taxes, benefits, and time-off tracking',\n 'Handles contracts, transfers, and terminations',\n ],\n description: 'Enables hiring in countries without a local entity',\n label: 'Employer of Record',\n value: eorProductIdentifier,\n };\n\n return { eorSubscription, isLoading: isLoadingPricingPlans };\n};\n\ntype SelectedCountry =\n | (Pick<Country, 'eor_onboarding' | 'contractor_products_available'> & {\n label: string;\n })\n | undefined;\n\nconst addEorToFieldOptions = (\n fieldOptions: $TSFixMe[],\n eorSubscription: ReturnType<typeof useEorSubscription>['eorSubscription'],\n excludeProducts?: ProductType[],\n) => {\n if (shouldIncludeProduct(eorProductIdentifier, excludeProducts)) {\n fieldOptions.push({\n label: eorSubscription.label,\n value: eorSubscription.value,\n description: eorSubscription.description,\n meta: {\n features: eorSubscription.features,\n price: {\n amount: eorSubscription.price.amount,\n currencyCode: eorSubscription.currency?.code ?? '',\n },\n },\n disabled: false,\n });\n }\n return fieldOptions;\n};\n\nexport const useContractorSubscriptionSchemaField = (\n employmentId: string,\n selectedCountry: SelectedCountry,\n options?: FlowOptions & {\n queryOptions?: { enabled?: boolean };\n excludeProducts?: ProductType[];\n },\n) => {\n const {\n data: contractorSubscriptions,\n isLoading,\n refetch,\n } = useGetContractorSubscriptions({\n employmentId: employmentId,\n options: {\n queryOptions: options?.queryOptions,\n },\n });\n\n const filteredContractorSubscriptions = useMemo(\n () =>\n contractorSubscriptions?.filter((subscription) =>\n shouldIncludeProduct(\n subscription.product.identifier ?? '',\n options?.excludeProducts,\n ),\n ) ?? [],\n [contractorSubscriptions, options?.excludeProducts],\n );\n\n // maximum number of subscriptions\n const MAXIMUM_CONTRACTOR_SUBSCRIPTIONS_COUNT = 3;\n\n const isMissingSubscriptions = contractorSubscriptions\n ? contractorSubscriptions?.length < MAXIMUM_CONTRACTOR_SUBSCRIPTIONS_COUNT\n : false;\n\n const corSubscription = contractorSubscriptions?.find(\n (subscription) => subscription.product.short_name === 'COR',\n );\n\n const isEligibilityQuestionnaireBlocked =\n corSubscription?.eligibility_questionnaire?.is_blocking;\n\n const showEorSubscription =\n (isMissingSubscriptions || isEligibilityQuestionnaireBlocked) &&\n selectedCountry?.eor_onboarding &&\n !options?.excludeProducts?.includes('eor');\n\n const { eorSubscription, isLoading: isLoadingEorSubscription } =\n useEorSubscription({\n enabled: showEorSubscription,\n });\n\n const form = createHeadlessForm(\n selectContractorSubscriptionStepSchema.data.schema,\n {},\n options,\n );\n\n const field: JSFField | undefined = form.fields.find(\n (field) => field.name === 'subscription',\n ) as JSFField | undefined;\n\n if (field) {\n // Start with contractor management options\n const contractorOptions = filteredContractorSubscriptions.map((opts) => {\n const product = opts.product;\n const price = opts.price.amount;\n const currencyCode = opts.currency.code;\n const title =\n CONTRACT_PRODUCT_TITLES[\n product.identifier as keyof typeof CONTRACT_PRODUCT_TITLES\n ] ?? '';\n const label = title;\n const value = product.identifier ?? '';\n const description = product.description ?? '';\n const features = product.features ?? [];\n const meta = {\n features,\n price: {\n amount: convertFromCents(price),\n currencyCode: currencyCode,\n },\n };\n return {\n label,\n value,\n description,\n meta,\n disabled:\n isEligibilityQuestionnaireBlocked &&\n product.identifier !== contractorStandardProductIdentifier,\n };\n });\n\n // Sort contractor options\n contractorOptions.sort((a, b) => a.label.localeCompare(b.label));\n\n // Build otherSubscriptions (EOR) with separator metadata\n const otherOptions: $TSFixMe[] = [];\n if (showEorSubscription) {\n addEorToFieldOptions(\n otherOptions as unknown as $TSFixMe[],\n eorSubscription,\n options?.excludeProducts,\n );\n\n // Add separator metadata to first \"other\" option\n // only the first option to avoid problems when iterating over the options\n if (otherOptions.length > 0) {\n otherOptions[0].meta = {\n ...otherOptions[0].meta,\n groupSeparator: {\n show: true,\n },\n };\n }\n }\n\n // Combine all options into the single field\n field.options = [...contractorOptions, ...otherOptions];\n }\n\n return {\n isLoading: isLoading || isLoadingEorSubscription,\n form,\n contractorSubscriptions,\n filteredContractorSubscriptions,\n refetch,\n isEligibilityQuestionnaireBlocked,\n };\n};\n\nexport const useUpdateUKandSaudiFields = (\n createContractorContractDocumentMutation: ReturnType<\n typeof useCreateContractorContractDocument\n >,\n uploadFileMutation: ReturnType<typeof useUploadFile>,\n parsedValues: FieldValues,\n) => {\n const { mutateAsyncOrThrow: uploadFileMutationAsync } =\n mutationToPromise(uploadFileMutation);\n const { mutateAsyncOrThrow: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n return {\n mutateAsync: async ({ employmentId }: { employmentId: string }) => {\n const {\n nationality_status: nationalityStatus,\n ir35: ir35Status,\n ir35_sds_file: ir35SdsFile,\n } = parsedValues;\n const ir35ContractDetailsPayload = {\n contract_document: {\n ir_35: ir35Status,\n },\n };\n const nationalityContractDetailsPayload = {\n contract_document: {\n nationality: nationalityStatus,\n },\n };\n if (ir35Status) {\n await createContractorContractDocumentMutationAsync({\n employmentId: employmentId,\n payload: ir35ContractDetailsPayload,\n });\n\n if (ir35SdsFile) {\n return uploadFileMutationAsync({\n employment_id: employmentId,\n file: ir35SdsFile,\n sub_type: IR35_FILE_SUBTYPE,\n });\n }\n return Promise.resolve();\n }\n // nationality status is sent for the countries SAU, KWT, OMN, QAT, BHR\n if (nationalityStatus) {\n return createContractorContractDocumentMutationAsync({\n employmentId: employmentId,\n payload: nationalityContractDetailsPayload,\n });\n }\n\n return Promise.resolve();\n },\n };\n};\n\nexport const useGetIR35File = (\n employmentId: string,\n options?: { enabled?: boolean },\n) => {\n const { data: ir35Files, isLoading: isLoadingFiles } = useEmploymentFiles(\n employmentId,\n {\n sub_type: IR35_FILE_SUBTYPE,\n },\n {\n ...options,\n select: ({ data }) =>\n data?.files?.filter((file) => file.sub_type === IR35_FILE_SUBTYPE),\n },\n );\n const id = ir35Files?.[0]?.id;\n\n const downloadQuery = useDownloadFile(id as string);\n\n return {\n ...downloadQuery,\n isLoading: isLoadingFiles || downloadQuery.isLoading,\n };\n};\n\n/**\n * Get the contract documents for a given employment\n * @param employmentId - The employment ID\n * @param options - The options\n * @returns The contract documents\n */\nexport const useGetContractDocuments = (\n employmentId: string,\n options?: { enabled?: boolean },\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['contract-documents', employmentId],\n queryFn: async () => {\n return getIndexEmploymentContractDocument({\n client: client as Client,\n path: { employment_id: employmentId },\n });\n },\n enabled: options?.enabled,\n select: ({ data }) => {\n return data?.data?.contract_documents;\n },\n });\n};\n\nexport const useGetEligibilityQuestionnaire = ({\n options,\n fieldValues,\n}: {\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n fieldValues: FieldValues;\n}) => {\n const { client } = useClient();\n return useQuery<\n EligibilityQuestionnaireJsonSchemaResponse['data'],\n Error,\n JSONSchemaFormResultWithFieldsets\n >({\n queryKey: ['eligibility-questionnaire'],\n queryFn: async (): Promise<\n EligibilityQuestionnaireJsonSchemaResponse['data']\n > => {\n const response = await getShowEligibilityQuestionnaire({\n client: client as Client,\n query: {\n type: 'contractor_of_record',\n json_schema_version: 1,\n },\n });\n\n // Extract the data from the response wrapper\n if (response.error) {\n throw new Error('Failed to fetch eligibility questionnaire');\n }\n\n return response.data\n .data as EligibilityQuestionnaireJsonSchemaResponse['data'];\n },\n select: (data: EligibilityQuestionnaireJsonSchemaResponse['data']) => {\n const schema = data?.schema || {};\n return createHeadlessForm(schema, fieldValues, {\n jsfModify: options?.jsfModify,\n });\n },\n enabled: options?.queryOptions?.enabled,\n });\n};\n\nexport const usePostCreateEligibilityQuestionnaire = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({\n employmentId,\n payload,\n }: {\n employmentId: string;\n payload: SubmitEligibilityQuestionnaireRequest['responses'];\n }) => {\n return postCreateEligibilityQuestionnaire({\n client: client as Client,\n body: {\n employment_slug: employmentId,\n responses: payload,\n type: 'contractor_of_record',\n },\n query: {\n json_schema_version: 1, // TODO: json_schema_version should be dynamic but fixed for now\n },\n });\n },\n });\n};\n\nexport const usePostManageContractorCorSubscription = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({ employmentId }: { employmentId: string }) => {\n return postManageContractorCorSubscriptionSubscription({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\nexport const useDeleteContractorCorSubscription = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: async ({ employmentId }: { employmentId: string }) => {\n return deleteDeleteContractorCorSubscriptionSubscription({\n client: client as Client,\n path: { employment_id: employmentId },\n });\n },\n });\n};\n\nexport const useCountriesSchemaField = (\n options?: Omit<FlowOptions, 'jsonSchemaVersion'> & {\n queryOptions?: { enabled?: boolean };\n },\n) => {\n const { client } = useClient();\n const { data: countries, isLoading } = useQuery({\n ...countriesOptions(client as Client, 'contractor-onboarding-countries'),\n select: (response) => {\n return (\n response.data?.data?.map((country) => {\n return {\n label: country.name,\n value: country.code,\n eor_onboarding: country.eor_onboarding,\n contractor_products_available:\n country.contractor_products_available,\n };\n }) || []\n );\n },\n enabled: options?.queryOptions?.enabled,\n });\n\n const selectCountryForm = createHeadlessForm(\n selectCountryStepSchema.data.schema,\n {},\n options,\n );\n\n if (countries) {\n const countryField = selectCountryForm.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n }\n }\n\n return {\n isLoading,\n selectCountryForm,\n countries,\n };\n};\n\n/**\n * Get contractor onboarding details schema with currency options overridden\n * from the getIndexContractorCurrency endpoint\n */\nexport const useContractorOnboardingDetailsSchemaWithCurrencies = ({\n countryCode,\n employmentId,\n fieldValues,\n options,\n}: {\n countryCode: string;\n fieldValues: FieldValues;\n employmentId: string;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n}) => {\n const schemaQuery = useContractorOnboardingDetailsSchema({\n countryCode,\n employmentId,\n fieldValues,\n options,\n });\n\n const { data: currencies, isLoading: isLoadingCurrencies } =\n useContractorCurrencies({\n employmentId,\n options: {\n queryOptions: { enabled: options?.queryOptions?.enabled },\n },\n });\n\n const dataWithCurrencies = useMemo(() => {\n if (!schemaQuery.data || !currencies) {\n return schemaQuery.data;\n }\n\n const form = {\n ...schemaQuery.data,\n fields: schemaQuery.data.fields.map((field) => {\n if (field.name !== 'payment_terms') {\n return field;\n }\n\n return {\n ...field,\n fields: (field.fields as $TSFixMe[])?.map((nestedField: $TSFixMe) => {\n if (nestedField.name !== 'compensation_currency_code') {\n return nestedField;\n }\n\n // Return a new object with overridden options\n return {\n ...nestedField,\n options: currencies.map((currency) => ({\n label: currency.code,\n value: currency.code,\n meta: { source: currency.source },\n })),\n };\n }),\n };\n }),\n };\n\n return form;\n }, [schemaQuery.data, currencies]);\n\n return {\n ...schemaQuery,\n data: dataWithCurrencies as $TSFixMe,\n isLoading: schemaQuery.isLoading || isLoadingCurrencies,\n };\n};\n","import { useMutation, useQuery, UseQueryOptions } from '@tanstack/react-query';\nimport { Client } from '@/src/client/client';\nimport {\n getIndexEmploymentFile,\n getShowFile,\n postUploadEmployeeFileFile,\n} from '@/src/client/sdk.gen';\nimport {\n GetIndexEmploymentFileData,\n GetIndexEmploymentFileErrors,\n File as ApiFile,\n ListFilesResponse,\n PostUploadEmployeeFileFileData,\n} from '@/src/client/types.gen';\nimport { useClient } from '@/src/context';\n\n/**\n * Hook to upload a file associated with a specified employment.\n * @returns A mutation result for uploading employee files.\n */\nexport const useUploadFile = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (params: PostUploadEmployeeFileFileData['body']) => {\n return postUploadEmployeeFileFile({\n client: client as Client,\n body: params,\n headers: {\n Authorization: ``,\n },\n });\n },\n });\n};\n\n/**\n * Hook to download a file by its ID.\n * @param id - The ID of the file to download.\n * @returns A query result containing the file data.\n */\nexport const useDownloadFile = (id: string) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['download-file', id],\n queryFn: async () => {\n const result = await getShowFile({\n client: client as Client,\n path: { id: id },\n });\n\n if (result.error) {\n throw result.error;\n }\n\n return result.data;\n },\n select: ({ data }) => data?.file,\n enabled: !!id,\n });\n};\n\n/**\n * Hook to retrieve files associated with a specific employment.\n * @param employmentId - The ID of the employment to retrieve files for.\n * @param queryParams - The query parameters to filter the files.\n * @param queryOptions - Optional TanStack Query options to customize the query behavior.\n * @returns A query result containing the employment files.\n */\nexport const useEmploymentFiles = (\n employmentId: string,\n queryParams: GetIndexEmploymentFileData['query'],\n queryOptions?: Omit<\n UseQueryOptions<\n ListFilesResponse,\n GetIndexEmploymentFileErrors,\n ApiFile[] | undefined,\n unknown[]\n >,\n 'queryKey' | 'queryFn'\n >,\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['employment-files', employmentId],\n queryFn: async () => {\n const result = await getIndexEmploymentFile({\n client: client as Client,\n path: { employment_id: employmentId },\n query: queryParams,\n });\n\n if (result.error) {\n throw result.error;\n }\n\n return result.data;\n },\n ...queryOptions,\n });\n};\n","import { useQuery } from '@tanstack/react-query';\nimport { useClient } from '@/src/context';\nimport {\n getIndexCompanyPricingPlan,\n IdentityCurrentResponse,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { useIdentity } from '@/src/common/api/identity';\n\nexport function hasCompany(\n identity: IdentityCurrentResponse['data'] | undefined,\n): identity is Extract<\n IdentityCurrentResponse['data'],\n { company: { id: string } }\n> {\n return identity != null && 'company' in identity;\n}\n\nexport const useCompanyPricingPlans = (\n queryOptions: { enabled?: boolean } = { enabled: true },\n) => {\n const { data: identity } = useIdentity();\n const companyId = hasCompany(identity) ? (identity?.company?.id ?? '') : '';\n const { client } = useClient();\n return useQuery({\n queryKey: ['pricing-plans', companyId],\n queryFn: () =>\n getIndexCompanyPricingPlan({\n client: client as Client,\n path: { company_id: companyId },\n }),\n select: (data) => data.data?.data?.pricing_plans,\n enabled: Boolean(queryOptions?.enabled) && !!companyId,\n });\n};\n","import { useQuery } from '@tanstack/react-query';\nimport { getCurrentIdentity } from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { Client } from '@/src/client/client';\n\nexport const useIdentity = () => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['identity'],\n queryFn: () =>\n getCurrentIdentity({\n client: client as Client,\n headers: { Authorization: `` },\n }),\n select: (data) => data.data?.data,\n });\n};\n"],"mappings":"mlBAAA,OAAS,WAAAA,OAAe,QAgCxB,OAAS,eAAAC,EAAa,YAAAC,MAAgC,wBChCtD,OAAS,eAAAC,GAAa,YAAAC,MAAiC,wBAoBhD,IAAMC,GAAgBC,EAAA,IAAM,CACjC,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,GAAY,CACjB,WAAYH,EAACI,GACJC,EAA2B,CAChC,OAAQJ,EACR,KAAMG,EACN,QAAS,CACP,cAAe,EACjB,CACF,CAAC,EAPS,aASd,CAAC,CACH,EAb6B,iBAoBhBE,GAAkBN,EAACO,GAAe,CAC7C,GAAM,CAAE,OAAAN,CAAO,EAAIC,EAAU,EAC7B,OAAOM,EAAS,CACd,SAAU,CAAC,gBAAiBD,CAAE,EAC9B,QAASP,EAAA,SAAY,CACnB,IAAMS,EAAS,MAAMC,EAAY,CAC/B,OAAQT,EACR,KAAM,CAAE,GAAIM,CAAG,CACjB,CAAC,EAED,GAAIE,EAAO,MACT,MAAMA,EAAO,MAGf,OAAOA,EAAO,IAChB,EAXS,WAYT,OAAQT,EAAA,CAAC,CAAE,KAAAW,CAAK,IAAMA,GAAM,KAApB,UACR,QAAS,CAAC,CAACJ,CACb,CAAC,CACH,EAnB+B,mBA4BlBK,GAAqBZ,EAAA,CAChCa,EACAC,EACAC,IASG,CACH,GAAM,CAAE,OAAAd,CAAO,EAAIC,EAAU,EAC7B,OAAOM,EAAS,CACd,SAAU,CAAC,mBAAoBK,CAAY,EAC3C,QAASb,EAAA,SAAY,CACnB,IAAMS,EAAS,MAAMO,EAAuB,CAC1C,OAAQf,EACR,KAAM,CAAE,cAAeY,CAAa,EACpC,MAAOC,CACT,CAAC,EAED,GAAIL,EAAO,MACT,MAAMA,EAAO,MAGf,OAAOA,EAAO,IAChB,EAZS,WAaT,GAAGM,CACL,CAAC,CACH,EA/BkC,sBCpElC,OAAS,YAAAE,OAAgB,wBCAzB,OAAS,YAAAC,OAAgB,wBAKlB,IAAMC,GAAcC,EAAA,IAAM,CAC/B,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,GAAS,CACd,SAAU,CAAC,UAAU,EACrB,QAASH,EAAA,IACPI,EAAmB,CACjB,OAAQH,EACR,QAAS,CAAE,cAAe,EAAG,CAC/B,CAAC,EAJM,WAKT,OAAQD,EAACK,GAASA,EAAK,MAAM,KAArB,SACV,CAAC,CACH,EAX2B,eDIpB,SAASC,GACdC,EAIA,CACA,OAAOA,GAAY,MAAQ,YAAaA,CAC1C,CAPgBC,EAAAF,GAAA,cAST,IAAMG,GAAyBD,EAAA,CACpCE,EAAsC,CAAE,QAAS,EAAK,IACnD,CACH,GAAM,CAAE,KAAMH,CAAS,EAAII,GAAY,EACjCC,EAAYN,GAAWC,CAAQ,EAAKA,GAAU,SAAS,IAAM,GAAM,GACnE,CAAE,OAAAM,CAAO,EAAIC,EAAU,EAC7B,OAAOC,GAAS,CACd,SAAU,CAAC,gBAAiBH,CAAS,EACrC,QAASJ,EAAA,IACPQ,EAA2B,CACzB,OAAQH,EACR,KAAM,CAAE,WAAYD,CAAU,CAChC,CAAC,EAJM,WAKT,OAAQJ,EAACS,GAASA,EAAK,MAAM,MAAM,cAA3B,UACR,QAAS,EAAQP,GAAc,SAAY,CAAC,CAACE,CAC/C,CAAC,CACH,EAhBsC,0BFqCtC,IAAMM,GAA0BC,EAAA,CAAC,CAC/B,aAAAC,EACA,QAAAC,CACF,IAGM,CACJ,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,wBAAyBJ,CAAY,EAChD,QAASD,EAAA,SACAM,EAA2B,CAChC,OAAQH,EACR,KAAM,CAAE,cAAeF,CAAa,EACpC,MAAO,CACL,0CAA2C,EAC7C,CACF,CAAC,EAPM,WAST,QAASC,GAAS,cAAc,QAChC,OAAQF,EAAA,CAAC,CAAE,KAAAO,CAAK,IACPA,GAAM,KADP,SAGV,CAAC,CACH,EAxBgC,2BAgCnBC,GAAwCR,EAAA,CAAC,CACpD,YAAAS,EACA,QAAAP,CACF,IAISG,EAAS,CACd,SAAU,CACR,8BACAI,EAAY,iBACZP,GAAS,SACX,EACA,QAASF,EAAA,SACAU,EAAmBC,EAAiBF,EAAa,CACtD,UAAWP,GAAS,SACtB,CAAC,EAHM,WAKT,QAASA,GAAS,cAAc,OAClC,CAAC,EAnBkD,yCA6BxCU,GAA0BZ,EAAA,IAAM,CAC3C,GAAM,CAAE,OAAAG,CAAO,EAAIC,EAAU,EAC7B,OAAOS,EAAY,CACjB,WAAYb,EAAA,MAAO,CACjB,aAAAC,EACA,mBAAAa,EACA,QAAAC,CACF,IAKSC,EAAyB,CAC9B,OAAQb,EACR,KAAMY,EACN,KAAM,CACJ,cAAed,EACf,qBAAsBa,CACxB,CACF,CAAC,EAhBS,aAkBd,CAAC,CACH,EAtBuC,2BA8B1BG,GAA6BjB,EAAA,CAAC,CACzC,aAAAC,EACA,mBAAAa,EACA,QAAAZ,CACF,IAIM,CACJ,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,oBAAqBJ,EAAca,CAAkB,EAChE,QAASd,EAAA,SACAkB,EAAwB,CAC7B,OAAQf,EACR,KAAM,CAAE,cAAeF,EAAc,GAAIa,CAAmB,CAC9D,CAAC,EAJM,WAMT,QAASZ,GAAS,cAAc,QAChC,OAAQF,EAAA,CAAC,CAAE,KAAAO,CAAK,KACP,CACL,GAAGA,GAAM,KACT,kBAAmB,CACjB,GAAGA,GAAM,MAAM,kBACf,QAASY,EACPZ,GAAM,MAAM,mBAAmB,OACjC,CACF,CACF,GATM,SAWV,CAAC,CACH,EA/B0C,8BAiC7Ba,GAA8BpB,EAAA,CAAC,CAC1C,aAAAC,EACA,mBAAAa,EACA,QAAAZ,CACF,IAIM,CACJ,GAAM,CAAE,KAAMmB,CAAmB,EAAIJ,GAA2B,CAC9D,aAAAhB,EACA,mBAAAa,EACA,QAAS,CACP,aAAc,CACZ,QAASZ,GAAS,cAAc,OAClC,CACF,CACF,CAAC,EAQD,MAAO,CACL,yBANAmB,GAAoB,mBAAmB,aAAa,KACjDC,GACCA,EAAU,OAAS,WAAaA,EAAU,SAAW,QACzD,CAIF,CACF,EA5B2C,+BAkC9BC,GAAgCvB,EAAA,CAAC,CAC5C,aAAAC,EACA,QAAAC,CACF,IAGM,CACJ,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,2BAA4BJ,CAAY,EACnD,QAASD,EAAA,SACAwB,EAAqB,CAC1B,OAAQrB,EACR,KAAM,CAAE,cAAeF,CAAa,CACtC,CAAC,EAJM,WAMT,QAASC,GAAS,cAAc,QAChC,OAAQF,EAAA,CAAC,CAAE,KAAAO,CAAK,IACPA,GAAM,KADP,SAGV,CAAC,CACH,EArB6C,iCA0BhCkB,GAAuCzB,EAAA,IAAM,CACxD,GAAM,CAAE,OAAAG,CAAO,EAAIC,EAAU,EAC7B,OAAOS,EAAY,CACjB,WAAYb,EAAA,MAAO,CACjB,aAAAC,EACA,QAAAc,CACF,IAISW,EAAiD,CACtD,OAAQvB,EACR,KAAMY,EACN,KAAM,CACJ,cAAed,CACjB,CACF,CAAC,EAbS,aAed,CAAC,CACH,EAnBoD,wCA2BvC0B,GAAsC3B,EAAA,IAAM,CACvD,GAAM,CAAE,OAAAG,CAAO,EAAIC,EAAU,EAC7B,OAAOS,EAAY,CACjB,WAAYb,EAAA,MAAO,CACjB,aAAAC,EACA,QAAAc,CACF,IAISa,EAA2B,CAChC,OAAQzB,EACR,KAAMY,EACN,KAAM,CACJ,cAAed,CACjB,CACF,CAAC,EAbS,aAed,CAAC,CACH,EAnBmD,uCA4B7C4B,GAAuC7B,EAAA,CAAC,CAC5C,YAAA8B,EACA,aAAA7B,EACA,YAAAQ,EACA,QAAAP,CACF,IAMyD,CACvD,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CACR,uCACAyB,EACA7B,CACF,EACA,MAAO,GACP,QAASD,EAAA,SACA+B,EAAwC,CAC7C,OAAQ5B,EACR,KAAM,CAAE,aAAc2B,CAAY,EAClC,MAAO,CACL,oBAAqB,EACrB,cAAe7B,CACjB,CACF,CAAC,EARM,WAUT,QAASC,GAAS,cAAc,QAChC,OAAQF,EAAA,CAAC,CAAE,KAAAO,CAAK,IAAM,CACpB,IAAMyB,EAAYzB,GAAM,MAAM,QAAU,CAAC,EACzC,OAAOG,EAAmBsB,EAAWvB,EAAaP,CAAO,CAC3D,EAHQ,SAIV,CAAC,CACH,EApC6C,wCAsChC+B,GAA0B,CACrC,CAACC,CAAmC,EAAG,wBACvC,CAACC,CAA+B,EAAG,6BACnC,CAACC,CAAoB,EAAG,sBAC1B,EAEMC,GAAqBrC,EAACE,GAAoC,CAC9D,GAAM,CAAE,KAAMoC,EAAc,UAAWC,CAAsB,EAC3DC,GAAuB,CACrB,QAAStC,GAAS,OACpB,CAAC,EAEGuC,EAAiBH,GAAc,KAClCI,GAASA,EAAK,QAAQ,OAAS,aAClC,EAsBA,MAAO,CAAE,gBApBe,CACtB,QAAS,CACP,WAAYC,EACZ,WAAY,KACd,EACA,SAAUF,GAAgB,MAAM,SAChC,MAAO,CACL,OAAQG,EAAiBH,GAAgB,MAAM,QAAU,CAAC,CAC5D,EACA,SAAU,CACR,uCACA,qDACA,iDACA,gDACF,EACA,YAAa,qDACb,MAAO,qBACP,MAAOE,CACT,EAE0B,UAAWJ,CAAsB,CAC7D,EA/B2B,sBAuCrBM,GAAuB7C,EAAA,CAC3B8C,EACAC,EACAC,KAEIC,EAAqBN,EAAsBK,CAAe,GAC5DF,EAAa,KAAK,CAChB,MAAOC,EAAgB,MACvB,MAAOA,EAAgB,MACvB,YAAaA,EAAgB,YAC7B,KAAM,CACJ,SAAUA,EAAgB,SAC1B,MAAO,CACL,OAAQA,EAAgB,MAAM,OAC9B,aAAcA,EAAgB,UAAU,MAAQ,EAClD,CACF,EACA,SAAU,EACZ,CAAC,EAEID,GApBoB,wBAuBhBI,GAAuClD,EAAA,CAClDC,EACAkD,EACAjD,IAIG,CACH,GAAM,CACJ,KAAMkD,EACN,UAAAC,EACA,QAAAC,CACF,EAAI/B,GAA8B,CAChC,aAActB,EACd,QAAS,CACP,aAAcC,GAAS,YACzB,CACF,CAAC,EAEKqD,EAAkCC,GACtC,IACEJ,GAAyB,OAAQK,GAC/BR,EACEQ,EAAa,QAAQ,YAAc,GACnCvD,GAAS,eACX,CACF,GAAK,CAAC,EACR,CAACkD,EAAyBlD,GAAS,eAAe,CACpD,EAKMwD,EAAyBN,EAC3BA,GAAyB,OAHkB,EAI3C,GAMEO,EAJkBP,GAAyB,KAC9CK,GAAiBA,EAAa,QAAQ,aAAe,KACxD,GAGmB,2BAA2B,YAExCG,GACHF,GAA0BC,IAC3BR,GAAiB,gBACjB,CAACjD,GAAS,iBAAiB,SAAS,KAAK,EAErC,CAAE,gBAAA6C,GAAiB,UAAWc,EAAyB,EAC3DxB,GAAmB,CACjB,QAASuB,CACX,CAAC,EAEGE,EAAOpD,EACXqD,EAAuC,KAAK,OAC5C,CAAC,EACD7D,CACF,EAEM8D,EAA8BF,EAAK,OAAO,KAC7CE,GAAUA,EAAM,OAAS,cAC5B,EAEA,GAAIA,EAAO,CAET,IAAMC,EAAoBV,EAAgC,IAAKW,GAAS,CACtE,IAAMC,EAAUD,EAAK,QACfE,GAAQF,EAAK,MAAM,OACnBG,GAAeH,EAAK,SAAS,KAK7BI,GAHJrC,GACEkC,EAAQ,UACV,GAAK,GAEDI,GAAQJ,EAAQ,YAAc,GAC9BK,GAAcL,EAAQ,aAAe,GAErCM,GAAO,CACX,SAFeN,EAAQ,UAAY,CAAC,EAGpC,MAAO,CACL,OAAQvB,EAAiBwB,EAAK,EAC9B,aAAcC,EAChB,CACF,EACA,MAAO,CACL,MAAAC,GACA,MAAAC,GACA,YAAAC,GACA,KAAAC,GACA,SACEd,GACAQ,EAAQ,aAAejC,CAC3B,CACF,CAAC,EAGD+B,EAAkB,KAAK,CAACS,EAAGC,IAAMD,EAAE,MAAM,cAAcC,EAAE,KAAK,CAAC,EAG/D,IAAMC,EAA2B,CAAC,EAC9BhB,IACFf,GACE+B,EACA7B,GACA7C,GAAS,eACX,EAII0E,EAAa,OAAS,IACxBA,EAAa,CAAC,EAAE,KAAO,CACrB,GAAGA,EAAa,CAAC,EAAE,KACnB,eAAgB,CACd,KAAM,EACR,CACF,IAKJZ,EAAM,QAAU,CAAC,GAAGC,EAAmB,GAAGW,CAAY,CACxD,CAEA,MAAO,CACL,UAAWvB,GAAaQ,GACxB,KAAAC,EACA,wBAAAV,EACA,gCAAAG,EACA,QAAAD,EACA,kCAAAK,CACF,CACF,EApIoD,wCAsIvCkB,GAA4B7E,EAAA,CACvC8E,EAGAC,EACAC,IACG,CACH,GAAM,CAAE,mBAAoBC,CAAwB,EAClDC,EAAkBH,CAAkB,EAChC,CAAE,mBAAoBI,CAA8C,EACxED,EAAkBJ,CAAwC,EAE5D,MAAO,CACL,YAAa9E,EAAA,MAAO,CAAE,aAAAC,CAAa,IAAgC,CACjE,GAAM,CACJ,mBAAoBmF,EACpB,KAAMC,EACN,cAAeC,CACjB,EAAIN,EACEO,EAA6B,CACjC,kBAAmB,CACjB,MAAOF,CACT,CACF,EACMG,EAAoC,CACxC,kBAAmB,CACjB,YAAaJ,CACf,CACF,EACA,OAAIC,GACF,MAAMF,EAA8C,CAClD,aAAclF,EACd,QAASsF,CACX,CAAC,EAEGD,EACKL,EAAwB,CAC7B,cAAehF,EACf,KAAMqF,EACN,SAAUG,CACZ,CAAC,EAEI,QAAQ,QAAQ,GAGrBL,EACKD,EAA8C,CACnD,aAAclF,EACd,QAASuF,CACX,CAAC,EAGI,QAAQ,QAAQ,CACzB,EAxCa,cAyCf,CACF,EAvDyC,6BAyD5BE,GAAiB1F,EAAA,CAC5BC,EACAC,IACG,CACH,GAAM,CAAE,KAAMyF,EAAW,UAAWC,CAAe,EAAIC,GACrD5F,EACA,CACE,SAAUwF,CACZ,EACA,CACE,GAAGvF,EACH,OAAQF,EAAA,CAAC,CAAE,KAAAO,CAAK,IACdA,GAAM,OAAO,OAAQuF,GAASA,EAAK,WAAaL,CAAiB,EAD3D,SAEV,CACF,EACMM,EAAKJ,IAAY,CAAC,GAAG,GAErBK,EAAgBC,GAAgBF,CAAY,EAElD,MAAO,CACL,GAAGC,EACH,UAAWJ,GAAkBI,EAAc,SAC7C,CACF,EAvB8B,kBA+BjBE,GAA0BlG,EAAA,CACrCC,EACAC,IACG,CACH,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,qBAAsBJ,CAAY,EAC7C,QAASD,EAAA,SACAmG,EAAmC,CACxC,OAAQhG,EACR,KAAM,CAAE,cAAeF,CAAa,CACtC,CAAC,EAJM,WAMT,QAASC,GAAS,QAClB,OAAQF,EAAA,CAAC,CAAE,KAAAO,CAAK,IACPA,GAAM,MAAM,mBADb,SAGV,CAAC,CACH,EAlBuC,2BAoB1B6F,GAAiCpG,EAAA,CAAC,CAC7C,QAAAE,EACA,YAAAO,CACF,IAGM,CACJ,GAAM,CAAE,OAAAN,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAIL,CACA,SAAU,CAAC,2BAA2B,EACtC,QAASL,EAAA,SAEJ,CACH,IAAMqG,EAAW,MAAMC,EAAgC,CACrD,OAAQnG,EACR,MAAO,CACL,KAAM,uBACN,oBAAqB,CACvB,CACF,CAAC,EAGD,GAAIkG,EAAS,MACX,MAAM,IAAI,MAAM,2CAA2C,EAG7D,OAAOA,EAAS,KACb,IACL,EAlBS,WAmBT,OAAQrG,EAACO,GAA6D,CACpE,IAAMgG,EAAShG,GAAM,QAAU,CAAC,EAChC,OAAOG,EAAmB6F,EAAQ9F,EAAa,CAC7C,UAAWP,GAAS,SACtB,CAAC,CACH,EALQ,UAMR,QAASA,GAAS,cAAc,OAClC,CAAC,CACH,EAzC8C,kCA2CjCsG,GAAwCxG,EAAA,IAAM,CACzD,GAAM,CAAE,OAAAG,CAAO,EAAIC,EAAU,EAC7B,OAAOS,EAAY,CACjB,WAAYb,EAAA,MAAO,CACjB,aAAAC,EACA,QAAAc,CACF,IAIS0F,EAAmC,CACxC,OAAQtG,EACR,KAAM,CACJ,gBAAiBF,EACjB,UAAWc,EACX,KAAM,sBACR,EACA,MAAO,CACL,oBAAqB,CACvB,CACF,CAAC,EAjBS,aAmBd,CAAC,CACH,EAvBqD,yCAyBxC2F,GAAyC1G,EAAA,IAAM,CAC1D,GAAM,CAAE,OAAAG,CAAO,EAAIC,EAAU,EAC7B,OAAOS,EAAY,CACjB,WAAYb,EAAA,MAAO,CAAE,aAAAC,CAAa,IACzB0G,EAAgD,CACrD,OAAQxG,EACR,KAAM,CACJ,cAAeF,CACjB,CACF,CAAC,EANS,aAQd,CAAC,CACH,EAZsD,0CAczC2G,GAAqC5G,EAAA,IAAM,CACtD,GAAM,CAAE,OAAAG,CAAO,EAAIC,EAAU,EAC7B,OAAOS,EAAY,CACjB,WAAYb,EAAA,MAAO,CAAE,aAAAC,CAAa,IACzB4G,EAAkD,CACvD,OAAQ1G,EACR,KAAM,CAAE,cAAeF,CAAa,CACtC,CAAC,EAJS,aAMd,CAAC,CACH,EAVkD,sCAYrC6G,GAA0B9G,EACrCE,GAGG,CACH,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EACvB,CAAE,KAAM2G,EAAW,UAAA1D,CAAU,EAAIhD,EAAS,CAC9C,GAAG2G,EAAiB7G,EAAkB,iCAAiC,EACvE,OAAQH,EAACqG,GAELA,EAAS,MAAM,MAAM,IAAKY,IACjB,CACL,MAAOA,EAAQ,KACf,MAAOA,EAAQ,KACf,eAAgBA,EAAQ,eACxB,8BACEA,EAAQ,6BACZ,EACD,GAAK,CAAC,EAVH,UAaR,QAAS/G,GAAS,cAAc,OAClC,CAAC,EAEKgH,EAAoBxG,EACxByG,EAAwB,KAAK,OAC7B,CAAC,EACDjH,CACF,EAEA,GAAI6G,EAAW,CACb,IAAMK,EAAeF,EAAkB,OAAO,KAC3ClD,GAAUA,EAAM,OAAS,SAC5B,EACIoD,IACFA,EAAa,QAAUL,EAE3B,CAEA,MAAO,CACL,UAAA1D,EACA,kBAAA6D,EACA,UAAAH,CACF,CACF,EA5CuC,2BAkD1BM,GAAqDrH,EAAA,CAAC,CACjE,YAAA8B,EACA,aAAA7B,EACA,YAAAQ,EACA,QAAAP,CACF,IAKM,CACJ,IAAMoH,EAAczF,GAAqC,CACvD,YAAAC,EACA,aAAA7B,EACA,YAAAQ,EACA,QAAAP,CACF,CAAC,EAEK,CAAE,KAAMqH,EAAY,UAAWC,CAAoB,EACvDzH,GAAwB,CACtB,aAAAE,EACA,QAAS,CACP,aAAc,CAAE,QAASC,GAAS,cAAc,OAAQ,CAC1D,CACF,CAAC,EAEGuH,EAAqBjE,GAAQ,IAC7B,CAAC8D,EAAY,MAAQ,CAACC,EACjBD,EAAY,KAGR,CACX,GAAGA,EAAY,KACf,OAAQA,EAAY,KAAK,OAAO,IAAKtD,GAC/BA,EAAM,OAAS,gBACVA,EAGF,CACL,GAAGA,EACH,OAASA,EAAM,QAAuB,IAAK0D,GACrCA,EAAY,OAAS,6BAChBA,EAIF,CACL,GAAGA,EACH,QAASH,EAAW,IAAKI,IAAc,CACrC,MAAOA,EAAS,KAChB,MAAOA,EAAS,KAChB,KAAM,CAAE,OAAQA,EAAS,MAAO,CAClC,EAAE,CACJ,CACD,CACH,CACD,CACH,EAGC,CAACL,EAAY,KAAMC,CAAU,CAAC,EAEjC,MAAO,CACL,GAAGD,EACH,KAAMG,EACN,UAAWH,EAAY,WAAaE,CACtC,CACF,EAnEkE","names":["useMemo","useMutation","useQuery","useMutation","useQuery","useUploadFile","__name","client","useClient","useMutation","params","postUploadEmployeeFileFile","useDownloadFile","id","useQuery","result","getShowFile","data","useEmploymentFiles","employmentId","queryParams","queryOptions","getIndexEmploymentFile","useQuery","useQuery","useIdentity","__name","client","useClient","useQuery","getCurrentIdentity","data","hasCompany","identity","__name","useCompanyPricingPlans","queryOptions","useIdentity","companyId","client","useClient","useQuery","getIndexCompanyPricingPlan","data","useContractorCurrencies","__name","employmentId","options","client","useClient","useQuery","getIndexContractorCurrency","data","useGetContractDocumentSignatureSchema","fieldValues","createHeadlessForm","signatureSchema","useSignContractDocument","useMutation","contractDocumentId","payload","postSignContractDocument","useGetShowContractDocument","getShowContractDocument","clearBase64Data","useHasCompanySignedContract","documentPreviewPdf","signatory","useGetContractorSubscriptions","getIndexSubscription","usePostManageContractorSubscriptions","postManageContractorPlusSubscriptionSubscription","useCreateContractorContractDocument","postCreateContractDocument","useContractorOnboardingDetailsSchema","countryCode","getShowContractorContractDetailsCountry","jsfSchema","CONTRACT_PRODUCT_TITLES","contractorStandardProductIdentifier","contractorPlusProductIdentifier","corProductIdentifier","useEorSubscription","pricingPlans","isLoadingPricingPlans","useCompanyPricingPlans","eorPricingPlan","plan","eorProductIdentifier","convertFromCents","addEorToFieldOptions","fieldOptions","eorSubscription","excludeProducts","shouldIncludeProduct","useContractorSubscriptionSchemaField","selectedCountry","contractorSubscriptions","isLoading","refetch","filteredContractorSubscriptions","useMemo","subscription","isMissingSubscriptions","isEligibilityQuestionnaireBlocked","showEorSubscription","isLoadingEorSubscription","form","selectContractorSubscriptionStepSchema","field","contractorOptions","opts","product","price","currencyCode","label","value","description","meta","a","b","otherOptions","useUpdateUKandSaudiFields","createContractorContractDocumentMutation","uploadFileMutation","parsedValues","uploadFileMutationAsync","mutationToPromise","createContractorContractDocumentMutationAsync","nationalityStatus","ir35Status","ir35SdsFile","ir35ContractDetailsPayload","nationalityContractDetailsPayload","IR35_FILE_SUBTYPE","useGetIR35File","ir35Files","isLoadingFiles","useEmploymentFiles","file","id","downloadQuery","useDownloadFile","useGetContractDocuments","getIndexEmploymentContractDocument","useGetEligibilityQuestionnaire","response","getShowEligibilityQuestionnaire","schema","usePostCreateEligibilityQuestionnaire","postCreateEligibilityQuestionnaire","usePostManageContractorCorSubscription","postManageContractorCorSubscriptionSubscription","useDeleteContractorCorSubscription","deleteDeleteContractorCorSubscriptionSubscription","useCountriesSchemaField","countries","countriesOptions","country","selectCountryForm","selectCountryStepSchema","countryField","useContractorOnboardingDetailsSchemaWithCurrencies","schemaQuery","currencies","isLoadingCurrencies","dataWithCurrencies","nestedField","currency"]}
@@ -1,2 +0,0 @@
1
- import{f as n,h as a}from"./chunk-5BU3CD2P.js";import{h as m}from"./chunk-JXAAON7I.js";import{b as i}from"./chunk-TVZAFTPT.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function R({onSubmit:d,onError:c,onSuccess:l}){let{contractAmendment:{stepState:u,isSubmitting:f,onSubmit:C,fields:p},formId:A}=i(),e=n({defaultValues:u.values?.form}),F=o(async r=>{let S=await m(r,p,{isPartialValidation:!1});await d?.(S);let t=await C(r);t.error?c?.(t.error):await l?.(t.data)},"handleSubmit");return f?null:s(a,{...e,children:s("form",{id:A,onSubmit:e.handleSubmit(F),className:"RemoteFlows__ContractAmendmentConfirmationForm"})})}o(R,"ContractAmendmentConfirmationForm");export{R as a};
2
- //# sourceMappingURL=chunk-DKDE34ZC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/flows/ContractAmendment/ContractAmendmentConfirmationForm.tsx"],"sourcesContent":["import {\n ContractAmendmentResponse,\n PostCreateContractAmendmentError,\n} from '@/src/client';\nimport { parseJSFToValidate } from '@/src/components/form/utils';\nimport { Form } from '@/src/components/ui/form';\nimport { FieldValues, useForm } from 'react-hook-form';\nimport { useContractAmendmentContext } from './context';\n\ntype ContractAmendmentConfirmationFormProps = {\n /**\n * Callback function to be called when the contract amendment form is submitted.\n * This function is called before the contract amendment is submitted.\n * It can be used to perform any additional validation or processing before\n * the contract amendment is submitted.\n * @param values\n * @returns\n */\n onSubmit?: (values: FieldValues) => void | Promise<void>;\n /**\n * Callback function to be called when the contract amendment fails.\n * @param error\n * @returns\n */\n onError?: (error: PostCreateContractAmendmentError) => void;\n /**\n * Callback function to be called when the contract amendment is successfully submitted.\n * @param data\n * @returns\n */\n onSuccess?: (data: ContractAmendmentResponse) => void | Promise<void>;\n};\n\nexport function ContractAmendmentConfirmationForm({\n onSubmit,\n onError,\n onSuccess,\n}: ContractAmendmentConfirmationFormProps) {\n const {\n contractAmendment: {\n stepState,\n isSubmitting,\n onSubmit: submitContractAmendment,\n fields,\n },\n formId,\n } = useContractAmendmentContext();\n const form = useForm({\n defaultValues: stepState.values?.form,\n });\n\n const handleSubmit = async (values: FieldValues) => {\n const parsedValues = await parseJSFToValidate(values, fields, {\n isPartialValidation: false,\n });\n await onSubmit?.(parsedValues);\n\n const contractAmendmentResult = await submitContractAmendment(values);\n\n if (contractAmendmentResult.error) {\n onError?.(\n contractAmendmentResult.error as PostCreateContractAmendmentError,\n );\n } else {\n await onSuccess?.(\n contractAmendmentResult.data as ContractAmendmentResponse,\n );\n }\n };\n\n // Ensure that step\n if (isSubmitting) {\n return null;\n }\n\n return (\n <Form {...form}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='RemoteFlows__ContractAmendmentConfirmationForm'\n ></form>\n </Form>\n );\n}\n"],"mappings":"uKA6EM,cAAAA,MAAA,oBA5CC,SAASC,EAAkC,CAChD,SAAAC,EACA,QAAAC,EACA,UAAAC,CACF,EAA2C,CACzC,GAAM,CACJ,kBAAmB,CACjB,UAAAC,EACA,aAAAC,EACA,SAAUC,EACV,OAAAC,CACF,EACA,OAAAC,CACF,EAAIC,EAA4B,EAC1BC,EAAOC,EAAQ,CACnB,cAAeP,EAAU,QAAQ,IACnC,CAAC,EAEKQ,EAAeC,EAAA,MAAOC,GAAwB,CAClD,IAAMC,EAAe,MAAMC,EAAmBF,EAAQP,EAAQ,CAC5D,oBAAqB,EACvB,CAAC,EACD,MAAMN,IAAWc,CAAY,EAE7B,IAAME,EAA0B,MAAMX,EAAwBQ,CAAM,EAEhEG,EAAwB,MAC1Bf,IACEe,EAAwB,KAC1B,EAEA,MAAMd,IACJc,EAAwB,IAC1B,CAEJ,EAjBqB,gBAoBrB,OAAIZ,EACK,KAIPN,EAACmB,EAAA,CAAM,GAAGR,EACR,SAAAX,EAAC,QACC,GAAIS,EACJ,SAAUE,EAAK,aAAaE,CAAY,EACxC,UAAU,iDACX,EACH,CAEJ,CAnDgBC,EAAAb,EAAA","names":["jsx","ContractAmendmentConfirmationForm","onSubmit","onError","onSuccess","stepState","isSubmitting","submitContractAmendment","fields","formId","useContractAmendmentContext","form","useForm","handleSubmit","__name","values","parsedValues","parseJSFToValidate","contractAmendmentResult","Form"]}
@@ -1,2 +0,0 @@
1
- import{f}from"./chunk-JXAAON7I.js";import{b as m}from"./chunk-626FTNKA.js";import{a as l}from"./chunk-P37U34EQ.js";import{createHeadlessForm as F,modify as y}from"@remoteoss/remote-json-schema-form-kit";var O=l((e,o,t)=>{if(t&&t.jsfModify){let{required:n,allOf:r,...s}=t.jsfModify,{schema:i}=y(e,s);e=i,n&&(e.required=[...Array.isArray(i.required)?i.required:[],...n]),r&&(e.allOf=[...Array.isArray(i.allOf)?i.allOf:[],...r])}let d={};o&&(d=m(e.properties||{},"money").reduce((r,s)=>(r[s]=f(o[s]),r),{}));let a=JSON.parse(JSON.stringify({...o,...d}));return{meta:{"x-jsf-fieldsets":e["x-jsf-fieldsets"],"x-jsf-presentation":e["x-jsf-presentation"]},...F(e,{initialValues:a})}},"createHeadlessForm");export{O as a};
2
- //# sourceMappingURL=chunk-HS63DEGD.js.map