@remoteoss/remote-flows 1.20.0 → 1.21.1

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 (242) hide show
  1. package/dist/chunk-42R2H2DW.js +2 -0
  2. package/dist/chunk-5VNMVVUB.js +2 -0
  3. package/dist/chunk-5VNMVVUB.js.map +1 -0
  4. package/dist/{chunk-ZOTT6IZN.js → chunk-67GUBRC6.js} +2 -2
  5. package/dist/{chunk-EMP4ZIVB.js → chunk-72TX2GXH.js} +2 -2
  6. package/dist/{chunk-3OJVYYPZ.js → chunk-7AFCHGML.js} +2 -2
  7. package/dist/{chunk-MXSKCQOT.js → chunk-7PTTOR6T.js} +2 -2
  8. package/dist/chunk-7XLP5WFW.js +2 -0
  9. package/dist/chunk-7XLP5WFW.js.map +1 -0
  10. package/dist/{chunk-7M7VN4WI.js → chunk-7Y4XCQZX.js} +2 -2
  11. package/dist/{chunk-4S7BRDNF.js → chunk-AHBNUSR4.js} +2 -2
  12. package/dist/{chunk-BTS5Q6UZ.js → chunk-AQ4WWMOK.js} +2 -2
  13. package/dist/chunk-AYC6DTFV.js +2 -0
  14. package/dist/chunk-AYC6DTFV.js.map +1 -0
  15. package/dist/{chunk-KYBKW4FE.js → chunk-BNY76RHM.js} +2 -2
  16. package/dist/{chunk-KJ4JS75E.js → chunk-BRPBSA4E.js} +2 -2
  17. package/dist/chunk-C52C6J6Q.js +2 -0
  18. package/dist/chunk-C52C6J6Q.js.map +1 -0
  19. package/dist/chunk-CT2D4IBR.js +2 -0
  20. package/dist/chunk-CT2D4IBR.js.map +1 -0
  21. package/dist/chunk-DPVXSN7T.js +2 -0
  22. package/dist/chunk-DPVXSN7T.js.map +1 -0
  23. package/dist/{chunk-Z6B3PA4M.js → chunk-DPZHLV7U.js} +2 -2
  24. package/dist/{chunk-POKLRB3M.js → chunk-E6B4ZECN.js} +2 -2
  25. package/dist/chunk-EFRT6C7V.js +2 -0
  26. package/dist/chunk-EFRT6C7V.js.map +1 -0
  27. package/dist/{chunk-DHRMW63S.js → chunk-EULZWL2F.js} +2 -2
  28. package/dist/{chunk-EUSCQL4H.js → chunk-EUQH4FU4.js} +2 -2
  29. package/dist/{chunk-BLGKOMH3.js → chunk-HGNICQUY.js} +2 -2
  30. package/dist/{chunk-Q3VMPVT3.js → chunk-HPLRAHY7.js} +2 -2
  31. package/dist/chunk-I3DVKJCW.js +2 -0
  32. package/dist/chunk-I3DVKJCW.js.map +1 -0
  33. package/dist/{chunk-NEKE5PRJ.js → chunk-IF42CZJH.js} +2 -2
  34. package/dist/{chunk-MVQOMW7S.js → chunk-IJQBLGTI.js} +2 -2
  35. package/dist/{chunk-RSZZMCB2.js → chunk-IW6OJUGY.js} +2 -2
  36. package/dist/{chunk-B7TQYSAY.js → chunk-J5I5ZSW3.js} +2 -2
  37. package/dist/{chunk-EAF6XPH6.js → chunk-JD2O7KNE.js} +2 -2
  38. package/dist/chunk-JIW2JK7J.js +2 -0
  39. package/dist/chunk-JIW2JK7J.js.map +1 -0
  40. package/dist/{chunk-KNHDPKRL.js → chunk-JTD4HJSK.js} +2 -2
  41. package/dist/{chunk-CR3X2TWM.js → chunk-KIQNU673.js} +2 -2
  42. package/dist/{chunk-WURYTVWC.js → chunk-KKOBWE62.js} +2 -2
  43. package/dist/{chunk-Y2LBI32D.js → chunk-KN5M3VJD.js} +2 -2
  44. package/dist/{chunk-I5FVESDZ.js → chunk-KQSWP3Y3.js} +2 -2
  45. package/dist/{chunk-5JGEEJ3A.js → chunk-KWLKQ6N6.js} +2 -2
  46. package/dist/{chunk-VCDA76UN.js → chunk-LT27CPJ6.js} +2 -2
  47. package/dist/{chunk-DFYEI445.js → chunk-MAOJJ4WX.js} +2 -2
  48. package/dist/{chunk-LM766FLB.js → chunk-OC3MVHTM.js} +2 -2
  49. package/dist/{chunk-3UEQXLRC.js → chunk-QELEVTDT.js} +2 -2
  50. package/dist/{chunk-T5JT2ZU2.js → chunk-QWQPTZQD.js} +2 -2
  51. package/dist/chunk-RQWB2F74.js +2 -0
  52. package/dist/chunk-RQWB2F74.js.map +1 -0
  53. package/dist/{chunk-IVXIAOMR.js → chunk-SAUF7ZUE.js} +2 -2
  54. package/dist/chunk-SDDJBGXV.js +2 -0
  55. package/dist/chunk-SDDJBGXV.js.map +1 -0
  56. package/dist/{chunk-RMIAJZOG.js → chunk-TMVRAQYA.js} +2 -2
  57. package/dist/{chunk-24FMEFH5.js → chunk-TZQ2O23Z.js} +2 -2
  58. package/dist/{chunk-WKLTHGWU.js → chunk-UWL56AOZ.js} +2 -2
  59. package/dist/chunk-VZ5BGG3N.js +2 -0
  60. package/dist/chunk-VZ5BGG3N.js.map +1 -0
  61. package/dist/{chunk-LSW66EIR.js → chunk-W5USIIXL.js} +2 -2
  62. package/dist/{chunk-7EUMRKH4.js → chunk-XAPDPR3N.js} +2 -2
  63. package/dist/{chunk-QJ2XK63I.js → chunk-XJECSJYB.js} +2 -2
  64. package/dist/{chunk-74ZEXZAY.js → chunk-XW7ZYSJ3.js} +2 -2
  65. package/dist/{chunk-XQZI2FRQ.js → chunk-Y2JE46ZY.js} +2 -2
  66. package/dist/{chunk-X6IMS3NL.js → chunk-Y2S7WYMO.js} +2 -2
  67. package/dist/{chunk-X6IMS3NL.js.map → chunk-Y2S7WYMO.js.map} +1 -1
  68. package/dist/{chunk-RZJ7WE6G.js → chunk-YVAEVXHP.js} +2 -2
  69. package/dist/{chunk-W4RON3XZ.js → chunk-YYGLCI2S.js} +2 -2
  70. package/dist/{chunk-AFHSKSGA.js → chunk-Z7AWT3MQ.js} +2 -2
  71. package/dist/default-components.js +1 -1
  72. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.js +1 -1
  73. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  74. package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
  75. package/dist/flows/ContractAmendment/hooks.js +1 -1
  76. package/dist/flows/ContractAmendment/index.js +1 -1
  77. package/dist/flows/ContractAmendment/utils.js +1 -1
  78. package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +3 -2
  79. package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
  80. package/dist/flows/ContractorOnboarding/api.js +1 -1
  81. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +1 -1
  82. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
  83. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +3 -2
  84. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
  85. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +3 -2
  86. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
  87. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +3 -2
  88. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
  89. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +3 -2
  90. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
  91. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
  92. package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +3 -2
  93. package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
  94. package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +20 -0
  95. package/dist/flows/ContractorOnboarding/components/SaveDraftButton.js +2 -0
  96. package/dist/flows/ContractorOnboarding/components/SaveDraftButton.js.map +1 -0
  97. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +1 -1
  98. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
  99. package/dist/flows/ContractorOnboarding/context.d.ts +3 -2
  100. package/dist/flows/ContractorOnboarding/hooks.d.ts +3 -2
  101. package/dist/flows/ContractorOnboarding/hooks.js +1 -1
  102. package/dist/flows/ContractorOnboarding/index.d.ts +3 -2
  103. package/dist/flows/ContractorOnboarding/index.js +1 -1
  104. package/dist/flows/ContractorOnboarding/jsfModify.d.ts +3 -2
  105. package/dist/flows/ContractorOnboarding/types.d.ts +3 -2
  106. package/dist/flows/ContractorOnboarding/utils.d.ts +1 -1
  107. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  108. package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
  109. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
  110. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.js +1 -1
  111. package/dist/flows/CostCalculator/api.js +1 -1
  112. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  113. package/dist/flows/CostCalculator/hooks.js +1 -1
  114. package/dist/flows/CostCalculator/index.js +1 -1
  115. package/dist/flows/CostCalculator/utils.js +1 -1
  116. package/dist/flows/CreateCompany/CreateCompany.js +1 -1
  117. package/dist/flows/CreateCompany/api.js +1 -1
  118. package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
  119. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
  120. package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
  121. package/dist/flows/CreateCompany/hooks.js +1 -1
  122. package/dist/flows/CreateCompany/index.js +1 -1
  123. package/dist/flows/Onboarding/OnboardingFlow.d.ts +1 -1
  124. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  125. package/dist/flows/Onboarding/api.d.ts +1 -1
  126. package/dist/flows/Onboarding/api.js +1 -1
  127. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  128. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +1 -1
  129. package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
  130. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +1 -1
  131. package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
  132. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +1 -1
  133. package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
  134. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +1 -1
  135. package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
  136. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  137. package/dist/flows/Onboarding/components/ReviewStep.d.ts +1 -1
  138. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +1 -1
  139. package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
  140. package/dist/flows/Onboarding/context.d.ts +1 -1
  141. package/dist/flows/Onboarding/hooks.d.ts +1 -1
  142. package/dist/flows/Onboarding/hooks.js +1 -1
  143. package/dist/flows/Onboarding/index.d.ts +1 -1
  144. package/dist/flows/Onboarding/index.js +1 -1
  145. package/dist/flows/Onboarding/types.d.ts +1 -1
  146. package/dist/flows/Onboarding/utils.d.ts +1 -1
  147. package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
  148. package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
  149. package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
  150. package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
  151. package/dist/flows/Termination/TerminationFlow.js +1 -1
  152. package/dist/flows/Termination/TerminationForm.js +1 -1
  153. package/dist/flows/Termination/api.d.ts +1 -1
  154. package/dist/flows/Termination/api.js +1 -1
  155. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +1 -1
  156. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +1 -1
  157. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
  158. package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +1 -1
  159. package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
  160. package/dist/flows/Termination/hooks.js +1 -1
  161. package/dist/flows/Termination/index.d.ts +1 -1
  162. package/dist/flows/Termination/index.js +1 -1
  163. package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
  164. package/dist/flows/Termination/json-schemas/schema.js +1 -1
  165. package/dist/index.css +1 -1
  166. package/dist/index.css.map +1 -1
  167. package/dist/index.d.ts +3 -2
  168. package/dist/index.js +1 -1
  169. package/dist/index.js.map +1 -1
  170. package/dist/internals.js +1 -1
  171. package/dist/styles.css +1 -1
  172. package/dist/styles.css.map +1 -1
  173. package/dist/{types-D_exxPuY.d.ts → types-B_iVL6gW.d.ts} +3 -1
  174. package/dist/{types-DqoTDHM1.d.ts → types-gQ_Tx-qG.d.ts} +7 -0
  175. package/package.json +1 -2
  176. package/dist/chunk-6EAABHVV.js +0 -2
  177. package/dist/chunk-6EAABHVV.js.map +0 -1
  178. package/dist/chunk-ALVZNFB7.js +0 -2
  179. package/dist/chunk-ALVZNFB7.js.map +0 -1
  180. package/dist/chunk-BUOCIXUH.js +0 -2
  181. package/dist/chunk-BUOCIXUH.js.map +0 -1
  182. package/dist/chunk-D36G74ID.js +0 -2
  183. package/dist/chunk-D36G74ID.js.map +0 -1
  184. package/dist/chunk-GSPD4EIV.js +0 -2
  185. package/dist/chunk-GSPD4EIV.js.map +0 -1
  186. package/dist/chunk-JDVILEVL.js +0 -2
  187. package/dist/chunk-JDVILEVL.js.map +0 -1
  188. package/dist/chunk-JEFPOHCP.js +0 -2
  189. package/dist/chunk-JEFPOHCP.js.map +0 -1
  190. package/dist/chunk-JTPKAIYL.js +0 -2
  191. package/dist/chunk-JTPKAIYL.js.map +0 -1
  192. package/dist/chunk-KRSUSMJK.js +0 -2
  193. package/dist/chunk-KRSUSMJK.js.map +0 -1
  194. package/dist/chunk-MTYN4AM3.js +0 -2
  195. package/dist/chunk-OUSCSVMQ.js +0 -2
  196. package/dist/chunk-OUSCSVMQ.js.map +0 -1
  197. package/dist/chunk-T7O3YYOG.js +0 -2
  198. package/dist/chunk-T7O3YYOG.js.map +0 -1
  199. /package/dist/{chunk-MTYN4AM3.js.map → chunk-42R2H2DW.js.map} +0 -0
  200. /package/dist/{chunk-ZOTT6IZN.js.map → chunk-67GUBRC6.js.map} +0 -0
  201. /package/dist/{chunk-EMP4ZIVB.js.map → chunk-72TX2GXH.js.map} +0 -0
  202. /package/dist/{chunk-3OJVYYPZ.js.map → chunk-7AFCHGML.js.map} +0 -0
  203. /package/dist/{chunk-MXSKCQOT.js.map → chunk-7PTTOR6T.js.map} +0 -0
  204. /package/dist/{chunk-7M7VN4WI.js.map → chunk-7Y4XCQZX.js.map} +0 -0
  205. /package/dist/{chunk-4S7BRDNF.js.map → chunk-AHBNUSR4.js.map} +0 -0
  206. /package/dist/{chunk-BTS5Q6UZ.js.map → chunk-AQ4WWMOK.js.map} +0 -0
  207. /package/dist/{chunk-KYBKW4FE.js.map → chunk-BNY76RHM.js.map} +0 -0
  208. /package/dist/{chunk-KJ4JS75E.js.map → chunk-BRPBSA4E.js.map} +0 -0
  209. /package/dist/{chunk-Z6B3PA4M.js.map → chunk-DPZHLV7U.js.map} +0 -0
  210. /package/dist/{chunk-POKLRB3M.js.map → chunk-E6B4ZECN.js.map} +0 -0
  211. /package/dist/{chunk-DHRMW63S.js.map → chunk-EULZWL2F.js.map} +0 -0
  212. /package/dist/{chunk-EUSCQL4H.js.map → chunk-EUQH4FU4.js.map} +0 -0
  213. /package/dist/{chunk-BLGKOMH3.js.map → chunk-HGNICQUY.js.map} +0 -0
  214. /package/dist/{chunk-Q3VMPVT3.js.map → chunk-HPLRAHY7.js.map} +0 -0
  215. /package/dist/{chunk-NEKE5PRJ.js.map → chunk-IF42CZJH.js.map} +0 -0
  216. /package/dist/{chunk-MVQOMW7S.js.map → chunk-IJQBLGTI.js.map} +0 -0
  217. /package/dist/{chunk-RSZZMCB2.js.map → chunk-IW6OJUGY.js.map} +0 -0
  218. /package/dist/{chunk-B7TQYSAY.js.map → chunk-J5I5ZSW3.js.map} +0 -0
  219. /package/dist/{chunk-EAF6XPH6.js.map → chunk-JD2O7KNE.js.map} +0 -0
  220. /package/dist/{chunk-KNHDPKRL.js.map → chunk-JTD4HJSK.js.map} +0 -0
  221. /package/dist/{chunk-CR3X2TWM.js.map → chunk-KIQNU673.js.map} +0 -0
  222. /package/dist/{chunk-WURYTVWC.js.map → chunk-KKOBWE62.js.map} +0 -0
  223. /package/dist/{chunk-Y2LBI32D.js.map → chunk-KN5M3VJD.js.map} +0 -0
  224. /package/dist/{chunk-I5FVESDZ.js.map → chunk-KQSWP3Y3.js.map} +0 -0
  225. /package/dist/{chunk-5JGEEJ3A.js.map → chunk-KWLKQ6N6.js.map} +0 -0
  226. /package/dist/{chunk-VCDA76UN.js.map → chunk-LT27CPJ6.js.map} +0 -0
  227. /package/dist/{chunk-DFYEI445.js.map → chunk-MAOJJ4WX.js.map} +0 -0
  228. /package/dist/{chunk-LM766FLB.js.map → chunk-OC3MVHTM.js.map} +0 -0
  229. /package/dist/{chunk-3UEQXLRC.js.map → chunk-QELEVTDT.js.map} +0 -0
  230. /package/dist/{chunk-T5JT2ZU2.js.map → chunk-QWQPTZQD.js.map} +0 -0
  231. /package/dist/{chunk-IVXIAOMR.js.map → chunk-SAUF7ZUE.js.map} +0 -0
  232. /package/dist/{chunk-RMIAJZOG.js.map → chunk-TMVRAQYA.js.map} +0 -0
  233. /package/dist/{chunk-24FMEFH5.js.map → chunk-TZQ2O23Z.js.map} +0 -0
  234. /package/dist/{chunk-WKLTHGWU.js.map → chunk-UWL56AOZ.js.map} +0 -0
  235. /package/dist/{chunk-LSW66EIR.js.map → chunk-W5USIIXL.js.map} +0 -0
  236. /package/dist/{chunk-7EUMRKH4.js.map → chunk-XAPDPR3N.js.map} +0 -0
  237. /package/dist/{chunk-QJ2XK63I.js.map → chunk-XJECSJYB.js.map} +0 -0
  238. /package/dist/{chunk-74ZEXZAY.js.map → chunk-XW7ZYSJ3.js.map} +0 -0
  239. /package/dist/{chunk-XQZI2FRQ.js.map → chunk-Y2JE46ZY.js.map} +0 -0
  240. /package/dist/{chunk-RZJ7WE6G.js.map → chunk-YVAEVXHP.js.map} +0 -0
  241. /package/dist/{chunk-W4RON3XZ.js.map → chunk-YYGLCI2S.js.map} +0 -0
  242. /package/dist/{chunk-AFHSKSGA.js.map → chunk-Z7AWT3MQ.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{a as i}from"./chunk-LMYJ6V44.js";import{a as o}from"./chunk-TC7EQZJK.js";import{a as m}from"./chunk-NX7MM6XR.js";import{a as e}from"./chunk-ZXGAFQXW.js";var p={employee_communication:o,termination_details:e,paid_time_off:m,additional_information:i};export{p as a};
2
+ //# sourceMappingURL=chunk-42R2H2DW.js.map
@@ -0,0 +1,2 @@
1
+ import{b as c}from"./chunk-Q3ALCPJN.js";import{d as u}from"./chunk-HPLRAHY7.js";import{j as a}from"./chunk-VIGKOVHP.js";import{a as m}from"./chunk-X6ZAR7ZL.js";import{b as d}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import w from"lodash.omit";import{jsx as S}from"react/jsx-runtime";function P({onSubmit:p,onSuccess:l,onError:e,render:f,...r}){let{components:y}=d(),{contractorOnboardingBag:t}=c(),i=u(),{mutateAsyncOrThrow:v}=m(i),E=n(async()=>{try{if(await p?.(),t.employmentId){let o=await v({employment_id:t.employmentId});o&&(await l?.({data:o,employmentStatus:"invited"}),t.refetchEmployment())}}catch(o){a(o)?e?.(w(o,"response")):e?.({error:o,rawError:o,fieldErrors:[]})}},"handleSubmit"),s=y?.button;if(!s)throw new Error("Button component not found");let b=!!(i.isPending||!t.canInvite||r.disabled);return S(s,{...r,disabled:b,onClick:o=>{E(),r.onClick?.(o)},children:f({employmentStatus:"invited"})})}n(P,"OnboardingInvite");export{P as a};
2
+ //# sourceMappingURL=chunk-5VNMVVUB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/ContractorOnboarding/components/OnboardingInvite.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, ReactNode } from 'react';\nimport omit from 'lodash.omit';\nimport { useEmploymentInvite } from '@/src/flows/Onboarding/api';\nimport { FieldError, mutationToPromise } from '@/src/lib/mutations';\nimport { SuccessResponse } from '@/src/client';\nimport { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { isStructuredError } from '@/src/lib/utils';\n\nexport type OnboardingInviteProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onError'\n> & {\n onSuccess?: ({\n data,\n employmentStatus,\n }: {\n data: SuccessResponse;\n employmentStatus: 'invited';\n }) => void | Promise<void>;\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: FieldError[];\n }) => void;\n onSubmit?: () => void | Promise<void>;\n render: (props: { employmentStatus: 'invited' }) => ReactNode;\n} & Record<string, unknown>;\n\nexport function OnboardingInvite({\n onSubmit,\n onSuccess,\n onError,\n render,\n ...props\n}: OnboardingInviteProps) {\n const { components } = useFormFields();\n const { contractorOnboardingBag } = useContractorOnboardingContext();\n const employmentInviteMutation = useEmploymentInvite();\n\n const { mutateAsyncOrThrow: employmentInviteMutationAsync } =\n mutationToPromise(employmentInviteMutation);\n\n const handleSubmit = async () => {\n try {\n await onSubmit?.();\n if (contractorOnboardingBag.employmentId) {\n const data = await employmentInviteMutationAsync({\n employment_id: contractorOnboardingBag.employmentId,\n });\n if (data) {\n await onSuccess?.({\n data: data as SuccessResponse,\n employmentStatus: 'invited',\n });\n contractorOnboardingBag.refetchEmployment();\n }\n }\n } catch (error: unknown) {\n if (isStructuredError(error)) {\n onError?.(omit(error, 'response'));\n } else {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n }\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n const disabled = Boolean(\n employmentInviteMutation.isPending ||\n !contractorOnboardingBag.canInvite ||\n props.disabled,\n );\n\n return (\n <CustomButton\n {...props}\n disabled={disabled}\n onClick={(evt) => {\n handleSubmit();\n props.onClick?.(evt);\n }}\n >\n {render({\n employmentStatus: 'invited',\n })}\n </CustomButton>\n );\n}\n"],"mappings":"gPACA,OAAOA,MAAU,cAsFb,cAAAC,MAAA,oBAtDG,SAASC,EAAiB,CAC/B,SAAAC,EACA,UAAAC,EACA,QAAAC,EACA,OAAAC,EACA,GAAGC,CACL,EAA0B,CACxB,GAAM,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAC/B,CAAE,wBAAAC,CAAwB,EAAIC,EAA+B,EAC7DC,EAA2BC,EAAoB,EAE/C,CAAE,mBAAoBC,CAA8B,EACxDC,EAAkBH,CAAwB,EAEtCI,EAAeC,EAAA,SAAY,CAC/B,GAAI,CAEF,GADA,MAAMd,IAAW,EACbO,EAAwB,aAAc,CACxC,IAAMQ,EAAO,MAAMJ,EAA8B,CAC/C,cAAeJ,EAAwB,YACzC,CAAC,EACGQ,IACF,MAAMd,IAAY,CAChB,KAAMc,EACN,iBAAkB,SACpB,CAAC,EACDR,EAAwB,kBAAkB,EAE9C,CACF,OAASS,EAAgB,CACnBC,EAAkBD,CAAK,EACzBd,IAAUgB,EAAKF,EAAO,UAAU,CAAC,EAEjCd,IAAU,CACR,MAAOc,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CAEL,CACF,EA1BqB,gBA4BfG,EAAed,GAAY,OACjC,GAAI,CAACc,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,IAAMC,EAAW,GACfX,EAAyB,WACvB,CAACF,EAAwB,WACzBH,EAAM,UAGV,OACEN,EAACqB,EAAA,CACE,GAAGf,EACJ,SAAUgB,EACV,QAAUC,GAAQ,CAChBR,EAAa,EACbT,EAAM,UAAUiB,CAAG,CACrB,EAEC,SAAAlB,EAAO,CACN,iBAAkB,SACpB,CAAC,EACH,CAEJ,CAnEgBW,EAAAf,EAAA","names":["omit","jsx","OnboardingInvite","onSubmit","onSuccess","onError","render","props","components","useFormFields","contractorOnboardingBag","useContractorOnboardingContext","employmentInviteMutation","useEmploymentInvite","employmentInviteMutationAsync","mutationToPromise","handleSubmit","__name","data","error","isStructuredError","omit","CustomButton","disabled","evt"]}
@@ -1,2 +1,2 @@
1
- import{b as w}from"./chunk-PGWKJ6FK.js";import{d as v,e as y}from"./chunk-Q3VMPVT3.js";import{a as i}from"./chunk-X6ZAR7ZL.js";import{b as l}from"./chunk-KQPDXXG3.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-ZOTT6IZN.js.map
1
+ import{b as w}from"./chunk-PGWKJ6FK.js";import{d as v,e as y}from"./chunk-HPLRAHY7.js";import{a as i}from"./chunk-X6ZAR7ZL.js";import{b as l}from"./chunk-KQPDXXG3.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-67GUBRC6.js.map
@@ -1,2 +1,2 @@
1
- import{a as Z}from"./chunk-RMIAJZOG.js";import{a as I}from"./chunk-VFRHMNLJ.js";import{a as Q,b as W,c as X,f as Y}from"./chunk-KJ4JS75E.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as G}from"./chunk-LNV36S6D.js";import{b as ee}from"./chunk-JTPKAIYL.js";import{a as z}from"./chunk-EUSCQL4H.js";import{e as M}from"./chunk-T7O3YYOG.js";import{a as K}from"./chunk-X6ZAR7ZL.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Be,object as se}from"yup";import{useCallback as je,useEffect as te,useMemo as we,useRef as Re,useState as j}from"react";import{string as ne,ValidationError as re}from"yup";import{jsx as ie}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},Pe=o(t=>z(I.data.schema,void 0,t),"useStaticSchema");function xe(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(xe,"getSalaryTitle");var ze=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let u=Re({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,le]=j(),{data:_,isLoading:ue}=Q({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:ce}=W(),me=k||w?.value,{data:P,isLoading:de}=Y(me,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=X(),{mutateAsync:fe}=K(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=je(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),J=s.showManagementFee,$=s.includeEstimationTitle,ge=we(()=>{let{from:e,to:r,shouldSwapOrder:c}=L(),g=xe(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>ie(Z,{...y,shouldSwapOrder:c,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!J,Component:o(y=>ie(ee,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!$}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,J,$,l]),f=Pe({jsfModify:{fields:{...n?.jsfModify?.fields,...ge?.fields}}});te(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),te(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function ye(e){return fe(oe(e,s,a))}o(ye,"onSubmit");function pe(e){let r=_?.find(({value:c})=>c===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(pe,"onCountryChange");function Ce(e){h(e)}o(Ce,"onRegionChange");function _e(e){le(e.target.value)}o(_e,"onHiringBudgetChange");function be(e){let r=d?.find(c=>c.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(be,"onChangeCurrency");let E=f.fields.find(e=>e.name==="region");if(E){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];E.options=e,E.isVisible=e.length>0,E.required=e.length>0,E.onChange=Ce,E.schema=e.length>0?ne().transform(r=>typeof r=="string"?r:"").required("Region is required"):ne()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=be)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=_e),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=pe)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),D=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],N=ae(f.fields,m||"USD",s.includeEstimationTitle);async function Se(e){let r=null;n?.onValidation?.(e);let c=await M(e,D);try{await N.validate(c,{abortEarly:!1}),r={formErrors:{},yupError:new re([],e)}}catch(S){let B=G(S);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:S}}let g=P?.handleValidation(c),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new re(y,x)}}return o(Se,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:D,validationSchema:N,parseFormValues:o(async e=>{let{country:r,region:c,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:S,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=S);let he=await M({country:r,region:c,salary:V,salary_converted:y,salary_conversion:S,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Fe=await M(A,P?.fields||[]),Ve={currency_code:d?.find(Me=>Me.value===g)?.label};return{...he,...Fe,...Ve}},"parseFormValues"),handleValidation:Se,isSubmitting:U.isPending,isLoading:ue&&ce&&de,onSubmit:ye,resetForm:Ee,currencies:d,meta:{fields:u.current?.fields}}},"useCostCalculator");function ae(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(u=>u===a.name,"is"),then:o(u=>u.required("Required field"),"then"),otherwise:o(u=>u.optional(),"otherwise")}):a.name==="management"?n[a.name]=se({management_fee:Be().transform(u=>isNaN(u)?void 0:u).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return se(s)}o(ae,"buildValidationSchema");function Te(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let u={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,u]},[])}o(Te,"formatBenefits");function Ae(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Te(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...Oe(t,l)}}o(Ae,"mapValueToEmployment");function Oe(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(Oe,"getSalaryFields");function oe(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Ae(n,i,l))}}o(oe,"buildPayload");export{ae as a,oe as b,O as c,ze as d};
2
- //# sourceMappingURL=chunk-EMP4ZIVB.js.map
1
+ import{a as Z}from"./chunk-TMVRAQYA.js";import{a as I}from"./chunk-VFRHMNLJ.js";import{a as Q,b as W,c as X,f as Y}from"./chunk-BRPBSA4E.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as G}from"./chunk-LNV36S6D.js";import{b as ee}from"./chunk-CT2D4IBR.js";import{a as z}from"./chunk-EUQH4FU4.js";import{e as M}from"./chunk-I3DVKJCW.js";import{a as K}from"./chunk-X6ZAR7ZL.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Be,object as se}from"yup";import{useCallback as je,useEffect as te,useMemo as we,useRef as Re,useState as j}from"react";import{string as ne,ValidationError as re}from"yup";import{jsx as ie}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},Pe=o(t=>z(I.data.schema,void 0,t),"useStaticSchema");function xe(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(xe,"getSalaryTitle");var ze=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let u=Re({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,le]=j(),{data:_,isLoading:ue}=Q({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:ce}=W(),me=k||w?.value,{data:P,isLoading:de}=Y(me,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=X(),{mutateAsync:fe}=K(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=je(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),J=s.showManagementFee,$=s.includeEstimationTitle,ge=we(()=>{let{from:e,to:r,shouldSwapOrder:c}=L(),g=xe(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>ie(Z,{...y,shouldSwapOrder:c,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!J,Component:o(y=>ie(ee,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!$}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,J,$,l]),f=Pe({jsfModify:{fields:{...n?.jsfModify?.fields,...ge?.fields}}});te(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),te(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function ye(e){return fe(oe(e,s,a))}o(ye,"onSubmit");function pe(e){let r=_?.find(({value:c})=>c===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(pe,"onCountryChange");function Ce(e){h(e)}o(Ce,"onRegionChange");function _e(e){le(e.target.value)}o(_e,"onHiringBudgetChange");function be(e){let r=d?.find(c=>c.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(be,"onChangeCurrency");let E=f.fields.find(e=>e.name==="region");if(E){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];E.options=e,E.isVisible=e.length>0,E.required=e.length>0,E.onChange=Ce,E.schema=e.length>0?ne().transform(r=>typeof r=="string"?r:"").required("Region is required"):ne()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=be)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=_e),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=pe)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),D=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],N=ae(f.fields,m||"USD",s.includeEstimationTitle);async function Se(e){let r=null;n?.onValidation?.(e);let c=await M(e,D);try{await N.validate(c,{abortEarly:!1}),r={formErrors:{},yupError:new re([],e)}}catch(S){let B=G(S);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:S}}let g=P?.handleValidation(c),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new re(y,x)}}return o(Se,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:D,validationSchema:N,parseFormValues:o(async e=>{let{country:r,region:c,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:S,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=S);let he=await M({country:r,region:c,salary:V,salary_converted:y,salary_conversion:S,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Fe=await M(A,P?.fields||[]),Ve={currency_code:d?.find(Me=>Me.value===g)?.label};return{...he,...Fe,...Ve}},"parseFormValues"),handleValidation:Se,isSubmitting:U.isPending,isLoading:ue&&ce&&de,onSubmit:ye,resetForm:Ee,currencies:d,meta:{fields:u.current?.fields}}},"useCostCalculator");function ae(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(u=>u===a.name,"is"),then:o(u=>u.required("Required field"),"then"),otherwise:o(u=>u.optional(),"otherwise")}):a.name==="management"?n[a.name]=se({management_fee:Be().transform(u=>isNaN(u)?void 0:u).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return se(s)}o(ae,"buildValidationSchema");function Te(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let u={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,u]},[])}o(Te,"formatBenefits");function Ae(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Te(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...Oe(t,l)}}o(Ae,"mapValueToEmployment");function Oe(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(Oe,"getSalaryFields");function oe(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Ae(n,i,l))}}o(oe,"buildPayload");export{ae as a,oe as b,O as c,ze as d};
2
+ //# sourceMappingURL=chunk-72TX2GXH.js.map
@@ -1,2 +1,2 @@
1
- import{b as p}from"./chunk-KSHK3ZPX.js";import{a as F}from"./chunk-BUOCIXUH.js";import{g as C}from"./chunk-7EONM7HL.js";import{h as E}from"./chunk-VIGKOVHP.js";import{b as f}from"./chunk-X6ZAR7ZL.js";import{a as n}from"./chunk-P37U34EQ.js";import{useEffect as R}from"react";import{jsx as u}from"react/jsx-runtime";function T({onSubmit:S,onError:w,onSuccess:y,onErrorWithFields:c,shouldResetForm:d,resetFields:a}){let{form:e,formId:V,costCalculatorBag:o}=p(),{formState:{isSubmitSuccessful:s}}=e;R(()=>{if(s&&d){o?.resetForm(),e.reset();return}if(s&&a){let t={...e.getValues()};a.forEach(r=>{t[r]=""}),o?.resetForm(),e.reset(t)}},[s,e,d,o,a]);let b=n(async i=>{try{let t=await o?.parseFormValues(i);o?.meta?.fields&&(o.meta.fields=E(i,o.fields),o.meta.fields.employer_currency_slug=o.meta.fields.currency);let r=await o?.onSubmit(t);if(await S?.(t),r?.data&&!r.error){let l={data:{...r.data.data,employments:r.data.data.employments?.map(m=>({...m,title:t.estimation_title}))}};await y?.(l)}else throw{data:null,error:r?.error,fieldErrors:r?.fieldErrors,rawError:r?.rawError}}catch(t){let r=t,l=r.fieldErrors;if(c){let m=o?.meta?.fields,h=f(l,m);c({error:r.error,rawError:r.rawError,fieldErrors:h})}else w?.(r.error)}},"handleSubmit");return u(C,{...e,children:u("form",{id:V,onSubmit:e.handleSubmit(b),className:"space-y-4 RemoteFlows__CostCalculatorForm",children:u(F,{fields:o?.fields??[]})})})}n(T,"CostCalculatorForm");export{T as a};
2
- //# sourceMappingURL=chunk-3OJVYYPZ.js.map
1
+ import{b as p}from"./chunk-KSHK3ZPX.js";import{a as F}from"./chunk-VZ5BGG3N.js";import{g as C}from"./chunk-7EONM7HL.js";import{h as E}from"./chunk-VIGKOVHP.js";import{b as f}from"./chunk-X6ZAR7ZL.js";import{a as n}from"./chunk-P37U34EQ.js";import{useEffect as R}from"react";import{jsx as u}from"react/jsx-runtime";function T({onSubmit:S,onError:w,onSuccess:y,onErrorWithFields:c,shouldResetForm:d,resetFields:a}){let{form:e,formId:V,costCalculatorBag:o}=p(),{formState:{isSubmitSuccessful:s}}=e;R(()=>{if(s&&d){o?.resetForm(),e.reset();return}if(s&&a){let t={...e.getValues()};a.forEach(r=>{t[r]=""}),o?.resetForm(),e.reset(t)}},[s,e,d,o,a]);let b=n(async i=>{try{let t=await o?.parseFormValues(i);o?.meta?.fields&&(o.meta.fields=E(i,o.fields),o.meta.fields.employer_currency_slug=o.meta.fields.currency);let r=await o?.onSubmit(t);if(await S?.(t),r?.data&&!r.error){let l={data:{...r.data.data,employments:r.data.data.employments?.map(m=>({...m,title:t.estimation_title}))}};await y?.(l)}else throw{data:null,error:r?.error,fieldErrors:r?.fieldErrors,rawError:r?.rawError}}catch(t){let r=t,l=r.fieldErrors;if(c){let m=o?.meta?.fields,h=f(l,m);c({error:r.error,rawError:r.rawError,fieldErrors:h})}else w?.(r.error)}},"handleSubmit");return u(C,{...e,children:u("form",{id:V,onSubmit:e.handleSubmit(b),className:"space-y-4 RemoteFlows__CostCalculatorForm",children:u(F,{fields:o?.fields??[]})})})}n(T,"CostCalculatorForm");export{T as a};
2
+ //# sourceMappingURL=chunk-7AFCHGML.js.map
@@ -1,2 +1,2 @@
1
- import{a as e}from"./chunk-Z6B3PA4M.js";import{b as a}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function p({onSubmit:t}){let{terminationBag:o}=a(),n=i(async r=>{let m=await o?.parseFormValues(r);await t?.(m),o?.next()},"handleSubmit");return s(e,{defaultValues:o.fieldValues,onSubmit:n})}i(p,"TerminationDetailsForm");export{p as a};
2
- //# sourceMappingURL=chunk-MXSKCQOT.js.map
1
+ import{a as e}from"./chunk-DPZHLV7U.js";import{b as a}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function p({onSubmit:t}){let{terminationBag:o}=a(),n=i(async r=>{let m=await o?.parseFormValues(r);await t?.(m),o?.next()},"handleSubmit");return s(e,{defaultValues:o.fieldValues,onSubmit:n})}i(p,"TerminationDetailsForm");export{p as a};
2
+ //# sourceMappingURL=chunk-7PTTOR6T.js.map
@@ -0,0 +1,2 @@
1
+ import{b}from"./chunk-Q3ALCPJN.js";import{b as F}from"./chunk-LNV36S6D.js";import{a as S}from"./chunk-VZ5BGG3N.js";import{f,g as p}from"./chunk-7EONM7HL.js";import{b as u}from"./chunk-X6ZAR7ZL.js";import{a as m}from"./chunk-P37U34EQ.js";import{useEffect as c,useRef as k}from"react";import{jsx as g}from"react/jsx-runtime";import{createElement as B}from"react";function D({defaultValues:l,onSubmit:y,components:h}){let{formId:P,contractorOnboardingBag:o,formRef:i}=b(),d=k(l),C=F(o.handleValidation),r=f({resolver:C,defaultValues:l,shouldUnregister:!1,mode:"onBlur"});c(()=>{i?.setValue&&(i.setValue.current=r.setValue)},[r.setValue,i]),c(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]),c(()=>{let n=r?.watch(e=>{Object.keys(e).some(a=>e[a]!==d.current[a])&&(o?.checkFieldUpdates(e),d.current={...e})});return()=>n?.unsubscribe()},[]);let E=m(async(n,e)=>{let s=e?.nativeEvent;if(s?.isDraftSubmission){let{onSuccess:a,onError:O}=s.draftCallbacks;try{await o.onSubmit(n),a?.()}catch(t){let V=o.stepState.currentStep.name,w=o.meta?.fields?.[V],R=u(t?.fieldErrors||[],w);O?.({error:t?.error||t,rawError:t?.rawError||t,fieldErrors:R})}}else await y(n)},"handleSubmit");return B(p,{...r,key:`form-${o.stepState.currentStep.name}`},g("form",{id:P,onSubmit:r.handleSubmit(E),className:"space-y-4 RemoteFlows__OnboardingForm",children:g(S,{components:h,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}m(D,"ContractorOnboardingForm");export{D as a};
2
+ //# sourceMappingURL=chunk-7XLP5WFW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/ContractorOnboarding/components/ContractorOnboardingForm.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { $TSFixMe, JSFFields } from '@/src/types/remoteFlows';\nimport { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { BasicInformationFormPayload } from '@/src/flows/Onboarding/types';\nimport { Components } from '@/src/types/remoteFlows';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport {\n EligibilityQuestionnaireFormPayload,\n PricingPlanFormPayload,\n ContractorOnboardingContractDetailsFormPayload,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { normalizeFieldErrors } from '@/src/lib/mutations';\n\ntype ContractorOnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | PricingPlanFormPayload\n | ContractorOnboardingContractDetailsFormPayload\n | EligibilityQuestionnaireFormPayload,\n ) => Promise<void>;\n components?: Components;\n fields?: JSFFields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function ContractorOnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: ContractorOnboardingFormProps) {\n const { formId, contractorOnboardingBag, formRef } =\n useContractorOnboardingContext();\n const prevValuesRef = useRef(defaultValues);\n\n const resolver = useJsonSchemasValidationFormResolver(\n contractorOnboardingBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n // Register the form's setValue method with the context so other components can access it\n useEffect(() => {\n if (formRef?.setValue) {\n formRef.setValue.current = form.setValue;\n }\n }, [form.setValue, formRef]);\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (contractorOnboardingBag.employmentId) {\n contractorOnboardingBag?.checkFieldUpdates(form.getValues());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const hasChanged = Object.keys(values).some(\n (key) => values[key] !== prevValuesRef.current[key],\n );\n if (hasChanged) {\n contractorOnboardingBag?.checkFieldUpdates(values);\n prevValuesRef.current = { ...values };\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (\n values: Record<string, unknown>,\n event?: React.BaseSyntheticEvent,\n ) => {\n const nativeEvent = event?.nativeEvent as $TSFixMe;\n\n if (nativeEvent?.isDraftSubmission) {\n const { onSuccess, onError } = nativeEvent.draftCallbacks;\n\n try {\n await contractorOnboardingBag.onSubmit(values);\n onSuccess?.();\n } catch (error: $TSFixMe) {\n const currentStepName =\n contractorOnboardingBag.stepState.currentStep.name;\n const currentStepFields =\n contractorOnboardingBag.meta?.fields?.[\n currentStepName as keyof typeof contractorOnboardingBag.meta.fields\n ];\n\n const normalizedFieldErrors = normalizeFieldErrors(\n error?.fieldErrors || [],\n currentStepFields,\n );\n onError?.({\n error: error?.error || (error as Error),\n rawError: error?.rawError || (error as Record<string, unknown>),\n fieldErrors: normalizedFieldErrors,\n });\n }\n } else {\n await onSubmit(values as $TSFixMe);\n }\n };\n\n return (\n <Form\n {...form}\n key={`form-${contractorOnboardingBag.stepState.currentStep.name}`}\n >\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__OnboardingForm'\n >\n <JSONSchemaFormFields\n components={components}\n fields={contractorOnboardingBag.fields}\n fieldsets={contractorOnboardingBag.meta.fieldsets}\n fieldValues={contractorOnboardingBag.fieldValues}\n />\n </form>\n </Form>\n );\n}\n"],"mappings":"6OAAA,OAAS,aAAAA,EAAW,UAAAC,MAAc,QA4H1B,cAAAC,MAAA,oBATJ,wBAAAC,MAAA,QAtFG,SAASC,EAAyB,CACvC,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAkC,CAChC,GAAM,CAAE,OAAAC,EAAQ,wBAAAC,EAAyB,QAAAC,CAAQ,EAC/CC,EAA+B,EAC3BC,EAAgBC,EAAOR,CAAa,EAEpCS,EAAWC,EACfN,EAAwB,gBAC1B,EAEMO,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAAT,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAGDa,EAAU,IAAM,CACVR,GAAS,WACXA,EAAQ,SAAS,QAAUM,EAAK,SAEpC,EAAG,CAACA,EAAK,SAAUN,CAAO,CAAC,EAE3BQ,EAAU,IAAM,CAGVT,EAAwB,cAC1BA,GAAyB,kBAAkBO,EAAK,UAAU,CAAC,CAG/D,EAAG,CAAC,CAAC,EAELE,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACxB,OAAO,KAAKA,CAAM,EAAE,KACpCC,GAAQD,EAAOC,CAAG,IAAMT,EAAc,QAAQS,CAAG,CACpD,IAEEZ,GAAyB,kBAAkBW,CAAM,EACjDR,EAAc,QAAU,CAAE,GAAGQ,CAAO,EAExC,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAeC,EAAA,MACnBH,EACAI,IACG,CACH,IAAMC,EAAcD,GAAO,YAE3B,GAAIC,GAAa,kBAAmB,CAClC,GAAM,CAAE,UAAAC,EAAW,QAAAC,CAAQ,EAAIF,EAAY,eAE3C,GAAI,CACF,MAAMhB,EAAwB,SAASW,CAAM,EAC7CM,IAAY,CACd,OAASE,EAAiB,CACxB,IAAMC,EACJpB,EAAwB,UAAU,YAAY,KAC1CqB,EACJrB,EAAwB,MAAM,SAC5BoB,CACF,EAEIE,EAAwBC,EAC5BJ,GAAO,aAAe,CAAC,EACvBE,CACF,EACAH,IAAU,CACR,MAAOC,GAAO,OAAUA,EACxB,SAAUA,GAAO,UAAaA,EAC9B,YAAaG,CACf,CAAC,CACH,CACF,MACE,MAAMzB,EAASc,CAAkB,CAErC,EAjCqB,gBAmCrB,OACEjB,EAAC8B,EAAA,CACE,GAAGjB,EACJ,IAAK,QAAQP,EAAwB,UAAU,YAAY,IAAI,IAE/DP,EAAC,QACC,GAAIM,EACJ,SAAUQ,EAAK,aAAaM,CAAY,EACxC,UAAU,wCAEV,SAAApB,EAACgC,EAAA,CACC,WAAY3B,EACZ,OAAQE,EAAwB,OAChC,UAAWA,EAAwB,KAAK,UACxC,YAAaA,EAAwB,YACvC,EACF,CACF,CAEJ,CAxGgBc,EAAAnB,EAAA","names":["useEffect","useRef","jsx","createElement","ContractorOnboardingForm","defaultValues","onSubmit","components","formId","contractorOnboardingBag","formRef","useContractorOnboardingContext","prevValuesRef","useRef","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","handleSubmit","__name","event","nativeEvent","onSuccess","onError","error","currentStepName","currentStepFields","normalizedFieldErrors","normalizeFieldErrors","Form","JSONSchemaFormFields"]}
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-JDVILEVL.js";import{b as a}from"./chunk-Q3ALCPJN.js";import{k as n}from"./chunk-VIGKOVHP.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as b}from"react/jsx-runtime";function g({onSubmit:l,onSuccess:u,onError:d}){let{contractorOnboardingBag:i}=a(),m=e(async t=>{try{let o=await i.parseFormValues(t);await l?.(o);let r=await i.onSubmit(t);if(r?.data){await u?.(r?.data),r?._skipNextStep||i?.next();return}}catch(o){let r=n(o,i.meta?.fields?.eligibility_questionnaire);d?.(r)}},"handleSubmit"),p=i.stepState.values?.eligibility_questionnaire||i.initialValues.eligibility_questionnaire;return b(s,{defaultValues:p,onSubmit:m})}e(g,"EligibilityQuestionnaireStep");export{g as a};
2
- //# sourceMappingURL=chunk-7M7VN4WI.js.map
1
+ import{a as s}from"./chunk-7XLP5WFW.js";import{b as a}from"./chunk-Q3ALCPJN.js";import{k as n}from"./chunk-VIGKOVHP.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as b}from"react/jsx-runtime";function g({onSubmit:l,onSuccess:u,onError:d}){let{contractorOnboardingBag:i}=a(),m=e(async t=>{try{let o=await i.parseFormValues(t);await l?.(o);let r=await i.onSubmit(t);if(r?.data){await u?.(r?.data),r?._skipNextStep||i?.next();return}}catch(o){let r=n(o,i.meta?.fields?.eligibility_questionnaire);d?.(r)}},"handleSubmit"),p=i.stepState.values?.eligibility_questionnaire||i.initialValues.eligibility_questionnaire;return b(s,{defaultValues:p,onSubmit:m})}e(g,"EligibilityQuestionnaireStep");export{g as a};
2
+ //# sourceMappingURL=chunk-7Y4XCQZX.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"./chunk-JEFPOHCP.js";import{b as i}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function y({onSubmit:s,onSuccess:c,onError:t}){let{onboardingBag:o}=i(),u=e(async n=>{try{await s?.({countryCode:n.country});let r=await o.onSubmit(n);if(r?.data){await c?.(r?.data),o?.next();return}r?.error&&t?.({error:r.error,rawError:r.rawError,fieldErrors:[]})}catch(r){t?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),l=o.stepState.values?.select_country||o.initialValues.select_country;return d(a,{defaultValues:l,onSubmit:u})}e(y,"SelectCountryStep");export{y as a};
2
- //# sourceMappingURL=chunk-4S7BRDNF.js.map
1
+ import{a}from"./chunk-C52C6J6Q.js";import{b as i}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function y({onSubmit:s,onSuccess:c,onError:t}){let{onboardingBag:o}=i(),u=e(async n=>{try{await s?.({countryCode:n.country});let r=await o.onSubmit(n);if(r?.data){await c?.(r?.data),o?.next();return}r?.error&&t?.({error:r.error,rawError:r.rawError,fieldErrors:[]})}catch(r){t?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),l=o.stepState.values?.select_country||o.initialValues.select_country;return d(a,{defaultValues:l,onSubmit:u})}e(y,"SelectCountryStep");export{y as a};
2
+ //# sourceMappingURL=chunk-AHBNUSR4.js.map
@@ -1,2 +1,2 @@
1
- import{a as n}from"./chunk-Z6B3PA4M.js";import{b as e}from"./chunk-MRYRNB7Y.js";import{a as r}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function F({onSubmit:t,onSuccess:s,onError:m}){let{terminationBag:o}=e(),d=r(async a=>{let l=await o?.parseFormValues(a,!0);await t?.(l);let i=await o?.onSubmit(a);i?.error?m?.(i.rawError):i?.data&&await s?.(i.data)},"handleSubmit");return u(n,{defaultValues:o.fieldValues,fields:o?.fields,onSubmit:d})}r(F,"AdditionalDetailsForm");export{F as a};
2
- //# sourceMappingURL=chunk-BTS5Q6UZ.js.map
1
+ import{a as n}from"./chunk-DPZHLV7U.js";import{b as e}from"./chunk-MRYRNB7Y.js";import{a as r}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function F({onSubmit:t,onSuccess:s,onError:m}){let{terminationBag:o}=e(),d=r(async a=>{let l=await o?.parseFormValues(a,!0);await t?.(l);let i=await o?.onSubmit(a);i?.error?m?.(i.rawError):i?.data&&await s?.(i.data)},"handleSubmit");return u(n,{defaultValues:o.fieldValues,fields:o?.fields,onSubmit:d})}r(F,"AdditionalDetailsForm");export{F as a};
2
+ //# sourceMappingURL=chunk-AQ4WWMOK.js.map
@@ -0,0 +1,2 @@
1
+ import{a as g}from"./chunk-VIGKOVHP.js";import{a as d}from"./chunk-P37U34EQ.js";import*as e from"react";import{ChevronDownIcon as h}from"lucide-react";import{jsx as l,jsxs as y}from"react/jsx-runtime";var x=e.createContext(null),R=d(()=>{let t=e.useContext(x);if(!t)throw new Error("Accordion components must be used within Accordion");return t},"useAccordion");function P({collapsible:t=!1,defaultValue:u,value:r,onValueChange:o,className:n,children:i,...c}){let[s,p]=e.useState(u),m=r!==void 0,a=m?r:s,f=e.useCallback(A=>{let v;a===A?v=t?"":A:v=A,m||p(v),o&&o(v)},[a,t,m,o]),C=e.useMemo(()=>({openItem:a,toggleItem:f,collapsible:t}),[a,f,t]);return l(x.Provider,{value:C,children:l("div",{"data-slot":"accordion",className:n,...c,children:i})})}d(P,"Accordion");var I=e.createContext(null),b=d(()=>{let t=e.useContext(I);if(!t)throw new Error("AccordionItem components must be used within AccordionItem");return t},"useAccordionItem");function E({value:t,className:u,children:r,...o}){let{openItem:n}=R(),i=n===t,c=e.useId(),s=e.useMemo(()=>({value:t,isOpen:i,contentId:c}),[t,i,c]);return l(I.Provider,{value:s,children:l("div",{"data-slot":"accordion-item",className:g("border-b last:border-b-0",u),...o,children:r})})}d(E,"AccordionItem");function T({className:t,iconClassName:u,children:r,onClick:o,...n}){let{toggleItem:i}=R(),{value:c,isOpen:s,contentId:p}=b(),m=e.useId(),a=d(f=>{i(c),o?.(f)},"handleClick");return l("div",{className:"flex items-center",children:y("button",{id:m,type:"button","data-slot":"accordion-trigger","data-state":s?"open":"closed","aria-expanded":s,"aria-controls":p,className:g("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",t),onClick:a,...n,children:[r,l(h,{className:g("text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200 mt-1",u)})]})})}d(T,"AccordionTrigger");function V({className:t,children:u,...r}){let{isOpen:o,contentId:n}=b(),[i,c]=e.useState(o),[s,p]=e.useState(o);return e.useLayoutEffect(()=>{if(o){c(!0);let a=requestAnimationFrame(()=>{window.getComputedStyle(document.getElementById(n)).height,p(!0)});return()=>cancelAnimationFrame(a)}p(!1);let m=setTimeout(()=>c(!1),200);return()=>clearTimeout(m)},[o,n]),i?l("div",{id:n,role:"region","data-slot":"accordion-content","data-state":o?"open":"closed",className:g("overflow-hidden text-sm transition-all duration-200 ease-out",s?"max-h-[2000px] opacity-100":"max-h-0 opacity-0"),...r,children:l("div",{className:g("pt-0 pb-4",t),children:u})}):null}d(V,"AccordionContent");export{P as a,E as b,T as c,V as d};
2
+ //# sourceMappingURL=chunk-AYC6DTFV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/accordion.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ChevronDownIcon } from 'lucide-react';\n\nimport { cn } from '@/src/lib/utils';\n\ntype AccordionContextValue = {\n openItem: string | undefined;\n toggleItem: (value: string) => void;\n collapsible: boolean;\n};\n\nconst AccordionContext = React.createContext<AccordionContextValue | null>(\n null,\n);\n\nconst useAccordion = () => {\n const context = React.useContext(AccordionContext);\n if (!context) {\n throw new Error('Accordion components must be used within Accordion');\n }\n return context;\n};\n\ntype AccordionProps = {\n collapsible?: boolean;\n defaultValue?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n className?: string;\n children: React.ReactNode;\n};\n\nfunction Accordion({\n collapsible = false,\n defaultValue,\n value: controlledValue,\n onValueChange,\n className,\n children,\n ...props\n}: AccordionProps) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState<\n string | undefined\n >(defaultValue);\n\n const isControlled = controlledValue !== undefined;\n const openItem = isControlled ? controlledValue : uncontrolledValue;\n\n const toggleItem = React.useCallback(\n (value: string) => {\n let newValue: string | undefined;\n\n if (openItem === value) {\n // Clicking the open item\n newValue = collapsible ? '' : value;\n } else {\n // Clicking a different item\n newValue = value;\n }\n\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n\n if (onValueChange) {\n onValueChange(newValue);\n }\n },\n [openItem, collapsible, isControlled, onValueChange],\n );\n\n const contextValue = React.useMemo(\n () => ({ openItem, toggleItem, collapsible }),\n [openItem, toggleItem, collapsible],\n );\n\n return (\n <AccordionContext.Provider value={contextValue}>\n <div data-slot='accordion' className={className} {...props}>\n {children}\n </div>\n </AccordionContext.Provider>\n );\n}\n\ntype AccordionItemContextValue = {\n value: string;\n isOpen: boolean;\n contentId: string;\n};\n\nconst AccordionItemContext =\n React.createContext<AccordionItemContextValue | null>(null);\n\nconst useAccordionItem = () => {\n const context = React.useContext(AccordionItemContext);\n if (!context) {\n throw new Error(\n 'AccordionItem components must be used within AccordionItem',\n );\n }\n return context;\n};\n\ntype AccordionItemProps = {\n value: string;\n className?: string;\n children: React.ReactNode;\n};\n\nfunction AccordionItem({\n value,\n className,\n children,\n ...props\n}: AccordionItemProps) {\n const { openItem } = useAccordion();\n const isOpen = openItem === value;\n const contentId = React.useId();\n\n const contextValue = React.useMemo(\n () => ({ value, isOpen, contentId }),\n [value, isOpen, contentId],\n );\n\n return (\n <AccordionItemContext.Provider value={contextValue}>\n <div\n data-slot='accordion-item'\n className={cn('border-b last:border-b-0', className)}\n {...props}\n >\n {children}\n </div>\n </AccordionItemContext.Provider>\n );\n}\n\ntype AccordionTriggerProps = {\n className?: string;\n iconClassName?: string;\n children: React.ReactNode;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nfunction AccordionTrigger({\n className,\n iconClassName,\n children,\n onClick,\n ...props\n}: AccordionTriggerProps) {\n const { toggleItem } = useAccordion();\n const { value, isOpen, contentId } = useAccordionItem();\n const triggerId = React.useId();\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n toggleItem(value);\n onClick?.(event);\n };\n\n return (\n <div className='flex items-center'>\n <button\n id={triggerId}\n type='button'\n data-slot='accordion-trigger'\n data-state={isOpen ? 'open' : 'closed'}\n aria-expanded={isOpen}\n aria-controls={contentId}\n className={cn(\n 'focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n <ChevronDownIcon\n className={cn(\n 'text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200 mt-1',\n iconClassName,\n )}\n />\n </button>\n </div>\n );\n}\n\ntype AccordionContentProps = {\n className?: string;\n children: React.ReactNode;\n};\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionContentProps): React.ReactElement | null {\n const { isOpen, contentId } = useAccordionItem();\n const [shouldRender, setShouldRender] = React.useState(isOpen);\n const [shouldAnimate, setShouldAnimate] = React.useState(isOpen);\n\n React.useLayoutEffect(() => {\n if (isOpen) {\n setShouldRender(true);\n const rafId = requestAnimationFrame(() => {\n void window.getComputedStyle(document.getElementById(contentId)!)\n .height;\n setShouldAnimate(true);\n });\n return () => cancelAnimationFrame(rafId);\n }\n setShouldAnimate(false);\n const timer = setTimeout(() => setShouldRender(false), 200);\n return () => clearTimeout(timer);\n }, [isOpen, contentId]);\n\n if (!shouldRender) return null;\n\n return (\n <div\n id={contentId}\n role='region'\n data-slot='accordion-content'\n data-state={isOpen ? 'open' : 'closed'}\n className={cn(\n 'overflow-hidden text-sm transition-all duration-200 ease-out',\n shouldAnimate ? 'max-h-[2000px] opacity-100' : 'max-h-0 opacity-0',\n )}\n {...props}\n >\n <div className={cn('pt-0 pb-4', className)}>{children}</div>\n </div>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":"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","names":["React","ChevronDownIcon","jsx","jsxs","AccordionContext","useAccordion","__name","context","Accordion","collapsible","defaultValue","controlledValue","onValueChange","className","children","props","uncontrolledValue","setUncontrolledValue","isControlled","openItem","toggleItem","value","newValue","contextValue","AccordionItemContext","useAccordionItem","AccordionItem","isOpen","contentId","cn","AccordionTrigger","iconClassName","onClick","triggerId","handleClick","event","ChevronDownIcon","AccordionContent","shouldRender","setShouldRender","shouldAnimate","setShouldAnimate","rafId","timer"]}
@@ -1,2 +1,2 @@
1
- import{a as i}from"./chunk-JDVILEVL.js";import{b as a}from"./chunk-Q3ALCPJN.js";import{k as n}from"./chunk-VIGKOVHP.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as S}from"react/jsx-runtime";function C({onSubmit:c,onSuccess:s,onError:u}){let{contractorOnboardingBag:r}=a(),l=t(async e=>{try{await c?.({countryCode:e.country});let o=await r.onSubmit(e);if(o?.data){await s?.(o?.data),r?.next();return}}catch(o){let m=n(o,r.meta?.fields?.select_country);u?.(m)}},"handleSubmit"),d=r.stepState.values?.select_country||r.initialValues.select_country;return S(i,{defaultValues:d,onSubmit:l})}t(C,"SelectCountryStep");export{C as a};
2
- //# sourceMappingURL=chunk-KYBKW4FE.js.map
1
+ import{a as i}from"./chunk-7XLP5WFW.js";import{b as a}from"./chunk-Q3ALCPJN.js";import{k as n}from"./chunk-VIGKOVHP.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as S}from"react/jsx-runtime";function C({onSubmit:c,onSuccess:s,onError:u}){let{contractorOnboardingBag:r}=a(),l=t(async e=>{try{await c?.({countryCode:e.country});let o=await r.onSubmit(e);if(o?.data){await s?.(o?.data),r?.next();return}}catch(o){let m=n(o,r.meta?.fields?.select_country);u?.(m)}},"handleSubmit"),d=r.stepState.values?.select_country||r.initialValues.select_country;return S(i,{defaultValues:d,onSubmit:l})}t(C,"SelectCountryStep");export{C as a};
2
+ //# sourceMappingURL=chunk-BNY76RHM.js.map
@@ -1,2 +1,2 @@
1
- import{a as p}from"./chunk-EUSCQL4H.js";import{C as c,I as m,M as C,R as d,m as l,v as u}from"./chunk-WQ4H5V7U.js";import{d as o}from"./chunk-KQPDXXG3.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as a,useQuery as r}from"@tanstack/react-query";var h=t(({includePremiumBenefits:e})=>{let{client:i}=o();return r({queryKey:["cost-calculator-countries",e],queryFn:t(()=>c({client:i,query:{include_premium_benefits:e}}),"queryFn"),select:t(s=>s.data?.data.filter(n=>n.availability==="active").map(n=>({value:n.region_slug,label:n.name,childRegions:n.child_regions,hasAdditionalFields:n.has_additional_fields,regionSlug:n.region_slug,currency:n.currency.code})),"select")})},"useCostCalculatorCountries"),q=t(()=>{let{client:e}=o();return r({queryKey:["company-currencies"],queryFn:t(()=>d({client:e}),"queryFn"),select:t(i=>i.data?.data?.company_currencies.map(s=>({value:s.slug,label:s.code})),"select")})},"useCompanyCurrencies"),x=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>l({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimation"),P=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>u({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationPdf"),v=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>C({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationCsv"),S=t((e,{includePremiumBenefits:i,options:s})=>{let{client:n}=o();return r({queryKey:["cost-calculator-region-fields",e,i],queryFn:t(()=>m({client:n,path:{slug:e},query:{include_premium_benefits:i}}),"queryFn"),enabled:!!e,select:t(({data:f})=>{let y=f?.data?.schema||{};return p(y,void 0,s)},"select")})},"useRegionFields");export{h as a,q as b,x as c,P as d,v as e,S as f};
2
- //# sourceMappingURL=chunk-KJ4JS75E.js.map
1
+ import{a as p}from"./chunk-EUQH4FU4.js";import{C as c,I as m,M as C,R as d,m as l,v as u}from"./chunk-WQ4H5V7U.js";import{d as o}from"./chunk-KQPDXXG3.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as a,useQuery as r}from"@tanstack/react-query";var h=t(({includePremiumBenefits:e})=>{let{client:i}=o();return r({queryKey:["cost-calculator-countries",e],queryFn:t(()=>c({client:i,query:{include_premium_benefits:e}}),"queryFn"),select:t(s=>s.data?.data.filter(n=>n.availability==="active").map(n=>({value:n.region_slug,label:n.name,childRegions:n.child_regions,hasAdditionalFields:n.has_additional_fields,regionSlug:n.region_slug,currency:n.currency.code})),"select")})},"useCostCalculatorCountries"),q=t(()=>{let{client:e}=o();return r({queryKey:["company-currencies"],queryFn:t(()=>d({client:e}),"queryFn"),select:t(i=>i.data?.data?.company_currencies.map(s=>({value:s.slug,label:s.code})),"select")})},"useCompanyCurrencies"),x=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>l({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimation"),P=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>u({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationPdf"),v=t(()=>{let{client:e}=o();return a({mutationFn:t(i=>C({client:e,body:i}),"mutationFn")})},"useCostCalculatorEstimationCsv"),S=t((e,{includePremiumBenefits:i,options:s})=>{let{client:n}=o();return r({queryKey:["cost-calculator-region-fields",e,i],queryFn:t(()=>m({client:n,path:{slug:e},query:{include_premium_benefits:i}}),"queryFn"),enabled:!!e,select:t(({data:f})=>{let y=f?.data?.schema||{};return p(y,void 0,s)},"select")})},"useRegionFields");export{h as a,q as b,x as c,P as d,v as e,S as f};
2
+ //# sourceMappingURL=chunk-BRPBSA4E.js.map
@@ -0,0 +1,2 @@
1
+ import{b as u}from"./chunk-PGWKJ6FK.js";import{b as p}from"./chunk-LNV36S6D.js";import{a as F}from"./chunk-VZ5BGG3N.js";import{f as l,g as c}from"./chunk-7EONM7HL.js";import{b as f}from"./chunk-X6ZAR7ZL.js";import{a}from"./chunk-P37U34EQ.js";import{useEffect as y}from"react";import{jsx as S}from"react/jsx-runtime";import{createElement as O}from"react";function x({defaultValues:m,onSubmit:b,components:g}){let{formId:E,onboardingBag:o}=u(),k=p(o.handleValidation),n=l({resolver:k,defaultValues:m,shouldUnregister:!1,mode:"onBlur"});y(()=>{o.employmentId&&o?.checkFieldUpdates(n.getValues())},[]),y(()=>{let t=n?.watch(e=>{Object.keys(e).some(s=>e[s]!==m[s])&&o?.checkFieldUpdates(e)});return()=>t?.unsubscribe()},[]);let w=a(async(t,e)=>{let i=e?.nativeEvent;if(i?.isDraftSubmission){let{onSuccess:s,onError:d}=i.draftCallbacks;try{let r=await o.onSubmit(t);if(r?.data)s?.();else if(r?.error){let h=o.stepState.currentStep.name,P=o.meta?.fields?.[h],B=f(r?.fieldErrors||[],P);d?.({error:r.error,rawError:r.rawError,fieldErrors:B})}}catch(r){d?.({error:r,rawError:r,fieldErrors:[]})}}else await b(t)},"handleSubmit");return O(c,{...n,key:`form-${o.stepState.currentStep.name}`},S("form",{id:E,onSubmit:n.handleSubmit(w),className:"space-y-4 RemoteFlows__OnboardingForm",children:S(F,{components:g,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}a(x,"OnboardingForm");export{x as a};
2
+ //# sourceMappingURL=chunk-C52C6J6Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/Onboarding/components/OnboardingForm.tsx"],"sourcesContent":["import { JSONSchemaFormFields } from '@/src/components/form/JSONSchemaForm';\nimport { Form } from '@/src/components/ui/form';\nimport { useEffect } from 'react';\nimport { useOnboardingContext } from '@/src/flows/Onboarding/context';\nimport { useForm } from 'react-hook-form';\nimport { useJsonSchemasValidationFormResolver } from '@/src/components/form/validationResolver';\nimport { JSFFields } from '@/src/types/remoteFlows';\nimport {\n BasicInformationFormPayload,\n BenefitsFormPayload,\n ContractDetailsFormPayload,\n} from '@/src/flows/Onboarding/types';\nimport { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { normalizeFieldErrors } from '@/src/lib/mutations';\n\ntype OnboardingFormProps = {\n onSubmit: (\n payload:\n | BasicInformationFormPayload\n | BenefitsFormPayload\n | ContractDetailsFormPayload,\n ) => Promise<void>;\n components?: Components;\n fields?: JSFFields;\n defaultValues: Record<string, unknown>;\n};\n\nexport function OnboardingForm({\n defaultValues,\n onSubmit,\n components,\n}: OnboardingFormProps) {\n const { formId, onboardingBag } = useOnboardingContext();\n\n const resolver = useJsonSchemasValidationFormResolver(\n onboardingBag.handleValidation,\n );\n\n const form = useForm({\n resolver,\n defaultValues,\n shouldUnregister: false,\n mode: 'onBlur',\n });\n\n useEffect(() => {\n // When the employmentId is set,\n // we need to run the checkFieldUpdates to update fieldValues in useStepState\n if (onboardingBag.employmentId) {\n onboardingBag?.checkFieldUpdates(form.getValues());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n const subscription = form?.watch((values) => {\n const isAnyFieldDirty = Object.keys(values).some(\n (key) =>\n values[key as keyof unknown] !== defaultValues[key as keyof unknown],\n );\n if (isAnyFieldDirty) {\n onboardingBag?.checkFieldUpdates(values);\n }\n });\n return () => subscription?.unsubscribe();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (\n values: Record<string, unknown>,\n event?: React.BaseSyntheticEvent,\n ) => {\n const nativeEvent = event?.nativeEvent as $TSFixMe;\n\n if (nativeEvent?.isDraftSubmission) {\n // Handle draft submission\n const { onSuccess, onError } = nativeEvent.draftCallbacks;\n\n try {\n // Submit the form\n const response = await onboardingBag.onSubmit(values);\n\n if (response?.data) {\n onSuccess?.();\n } else if (response?.error) {\n const currentStepName = onboardingBag.stepState.currentStep.name;\n\n // Get the appropriate fields based on current step\n const currentStepFields =\n onboardingBag.meta?.fields?.[\n currentStepName as keyof typeof onboardingBag.meta.fields\n ];\n\n const normalizedFieldErrors = normalizeFieldErrors(\n response?.fieldErrors || [],\n currentStepFields,\n );\n onError?.({\n error: response.error,\n rawError: response.rawError,\n fieldErrors: normalizedFieldErrors,\n });\n }\n } catch (error) {\n onError?.({\n error: error as Error,\n rawError: error as Record<string, unknown>,\n fieldErrors: [],\n });\n }\n } else {\n // Handle normal form submission\n await onSubmit(values);\n }\n };\n\n return (\n <Form {...form} key={`form-${onboardingBag.stepState.currentStep.name}`}>\n <form\n id={formId}\n onSubmit={form.handleSubmit(handleSubmit)}\n className='space-y-4 RemoteFlows__OnboardingForm'\n >\n <JSONSchemaFormFields\n components={components}\n fields={onboardingBag.fields}\n fieldsets={onboardingBag.meta.fieldsets}\n fieldValues={onboardingBag.fieldValues}\n />\n </form>\n </Form>\n );\n}\n"],"mappings":"kPAEA,OAAS,aAAAA,MAAiB,QAyHlB,cAAAC,MAAA,oBANJ,wBAAAC,MAAA,QA1FG,SAASC,EAAe,CAC7B,cAAAC,EACA,SAAAC,EACA,WAAAC,CACF,EAAwB,CACtB,GAAM,CAAE,OAAAC,EAAQ,cAAAC,CAAc,EAAIC,EAAqB,EAEjDC,EAAWC,EACfH,EAAc,gBAChB,EAEMI,EAAOC,EAAQ,CACnB,SAAAH,EACA,cAAAN,EACA,iBAAkB,GAClB,KAAM,QACR,CAAC,EAEDU,EAAU,IAAM,CAGVN,EAAc,cAChBA,GAAe,kBAAkBI,EAAK,UAAU,CAAC,CAGrD,EAAG,CAAC,CAAC,EAELE,EAAU,IAAM,CACd,IAAMC,EAAeH,GAAM,MAAOI,GAAW,CACnB,OAAO,KAAKA,CAAM,EAAE,KACzCC,GACCD,EAAOC,CAAoB,IAAMb,EAAca,CAAoB,CACvE,GAEET,GAAe,kBAAkBQ,CAAM,CAE3C,CAAC,EACD,MAAO,IAAMD,GAAc,YAAY,CAEzC,EAAG,CAAC,CAAC,EAEL,IAAMG,EAAeC,EAAA,MACnBH,EACAI,IACG,CACH,IAAMC,EAAcD,GAAO,YAE3B,GAAIC,GAAa,kBAAmB,CAElC,GAAM,CAAE,UAAAC,EAAW,QAAAC,CAAQ,EAAIF,EAAY,eAE3C,GAAI,CAEF,IAAMG,EAAW,MAAMhB,EAAc,SAASQ,CAAM,EAEpD,GAAIQ,GAAU,KACZF,IAAY,UACHE,GAAU,MAAO,CAC1B,IAAMC,EAAkBjB,EAAc,UAAU,YAAY,KAGtDkB,EACJlB,EAAc,MAAM,SAClBiB,CACF,EAEIE,EAAwBC,EAC5BJ,GAAU,aAAe,CAAC,EAC1BE,CACF,EACAH,IAAU,CACR,MAAOC,EAAS,MAChB,SAAUA,EAAS,SACnB,YAAaG,CACf,CAAC,CACH,CACF,OAASE,EAAO,CACdN,IAAU,CACR,MAAOM,EACP,SAAUA,EACV,YAAa,CAAC,CAChB,CAAC,CACH,CACF,MAEE,MAAMxB,EAASW,CAAM,CAEzB,EA9CqB,gBAgDrB,OACEd,EAAC4B,EAAA,CAAM,GAAGlB,EAAM,IAAK,QAAQJ,EAAc,UAAU,YAAY,IAAI,IACnEP,EAAC,QACC,GAAIM,EACJ,SAAUK,EAAK,aAAaM,CAAY,EACxC,UAAU,wCAEV,SAAAjB,EAAC8B,EAAA,CACC,WAAYzB,EACZ,OAAQE,EAAc,OACtB,UAAWA,EAAc,KAAK,UAC9B,YAAaA,EAAc,YAC7B,EACF,CACF,CAEJ,CAzGgBW,EAAAhB,EAAA","names":["useEffect","jsx","createElement","OnboardingForm","defaultValues","onSubmit","components","formId","onboardingBag","useOnboardingContext","resolver","useJsonSchemasValidationFormResolver","form","useForm","useEffect","subscription","values","key","handleSubmit","__name","event","nativeEvent","onSuccess","onError","response","currentStepName","currentStepFields","normalizedFieldErrors","normalizeFieldErrors","error","Form","JSONSchemaFormFields"]}
@@ -0,0 +1,2 @@
1
+ import{a as N}from"./chunk-SNECOPBD.js";import{i as U}from"./chunk-I3DVKJCW.js";import{b as L,c as O,f as G}from"./chunk-AOSXULKY.js";import{a as I}from"./chunk-BYDQHL6O.js";import{a as z}from"./chunk-HJ7WOTV7.js";import{b as J}from"./chunk-YHCH57B7.js";import{c as p,h as g}from"./chunk-7EONM7HL.js";import{a as _,e as H}from"./chunk-VIGKOVHP.js";import{b as C}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{Fragment as fe,useEffect as Pe,useRef as ge}from"react";import{jsx as Z}from"react/jsx-runtime";function q({description:e,label:t,name:i,minDate:l,maxDate:s,onChange:d,component:r,...c}){let{components:h}=C(),{control:u}=p(),F;c.meta?.mot&&typeof c.meta.mot=="number"?F=U(c.meta.mot):typeof l=="string"&&(F=new Date(`${l}T00:00:00`));let a;return s&&(a=new Date(`${s}T23:59:59`)),Z(g,{control:u,name:i,render:({field:f,fieldState:S})=>{let m=r||h?.date;if(!m)throw new Error(`Date picker component not found for field ${i}`);let y={description:e,label:t,name:i,onChange:d,...F&&{minDate:F.toISOString()},...a&&{maxDate:a.toISOString()},...c};return Z(m,{field:{...f,onChange:n(x=>{f.onChange(x),d?.(x)},"onChange")},fieldState:S,fieldData:y})}})}n(q,"DatePickerField");import{jsx as K}from"react/jsx-runtime";var xe=n((e,t)=>{if(!t)return null;for(let i of e)if(i.size>t){let l=Math.round(t/1048576),s=Math.round(i.size/(1024*1024));return`File "${i.name}" exceeds maximum size of ${l}MB (file is ${s}MB)`}return null},"validateFileSize");function Q({name:e,description:t,label:i,multiple:l,onChange:s,component:d,accept:r,maxSize:c,...h}){let{components:u}=C(),{control:F,setError:a,clearErrors:f}=p(),S=n(async(m,y)=>{let x=xe(m,c);if(x){a(e,{message:x});return}f(e),y.onChange(m),s?.(m)},"handleOnChange");return K(g,{control:F,name:e,render:({field:m,fieldState:y})=>{let x=d||u.file;if(!x)throw new Error(`File upload component not found for field ${e}`);let D={name:e,description:t,label:i,multiple:l,accept:r,maxFileSize:c,...h};return K(x,{field:{...m,value:m.value,onChange:n(async T=>S(T,m),"onChange")},fieldState:y,fieldData:D})}})}n(Q,"FileUploadField");import{jsx as X}from"react/jsx-runtime";function M(e){let{components:t}=C(),{control:i}=p(),l=e.component||t.number;if(!l)throw new Error(`Number component not found for field ${e.name}`);return X(g,{control:i,name:e.name,render:({field:s,fieldState:d})=>X(l,{field:{...s,onChange:n(r=>{s.onChange(r),e.onChange?.(r)},"onChange")},fieldState:d,fieldData:e})})}n(M,"NumberField");import{jsx as Y}from"react/jsx-runtime";function j({name:e,defaultValue:t,description:i,label:l,options:s,onChange:d,component:r,...c}){let{components:h}=C(),{control:u}=p();return Y(g,{control:u,name:e,defaultValue:t,render:({field:F,fieldState:a})=>{let f=r||h?.radio;if(!f)throw new Error(`Radio group component not found for field ${e}`);let S={name:e,defaultValue:t,description:i,label:l,options:s,...c};return Y(f,{field:{...F,onChange:n(m=>{F.onChange(m),d?.(m)},"onChange")},fieldState:a,fieldData:S})}})}n(j,"RadioGroupField");import{jsx as ee}from"react/jsx-runtime";function oe({label:e,name:t,options:i,defaultValue:l,description:s,onChange:d,component:r,...c}){let{control:h}=p(),{components:u}=C();return ee(g,{defaultValue:l,control:h,name:t,render:({field:F,fieldState:a})=>{let f=r||u?.select;if(!f)throw new Error(`Select component not found for field ${t}`);let S={label:e,name:t,options:i,defaultValue:l,description:s,onChange:d,...c};return ee(f,{field:{...F,onChange:n(m=>{let y=c.jsonType==="number"?Number(m):m;F.onChange(y),d?.(y)},"onChange")},fieldState:a,fieldData:S})}})}n(oe,"SelectField");import{jsx as te}from"react/jsx-runtime";function ne({label:e,name:t,options:i,defaultValue:l,description:s,onChange:d,$meta:r,component:c,...h}){let{control:u}=p(),{components:F}=C();return te(g,{defaultValue:l,control:u,name:t,render:({field:a,fieldState:f})=>{let S=c||F.countries;if(!S)throw new Error(`Country component not found for field ${t}`);let m={label:e,name:t,options:i,defaultValue:l,description:s,onChange:d,$meta:r,...h};return te(S,{field:{...a,onChange:n(y=>{a.onChange(y),d?.(y)},"onChange")},fieldState:f,fieldData:m})}})}n(ne,"CountryField");import{jsx as re}from"react/jsx-runtime";function ie({name:e,description:t,label:i,onChange:l,maxLength:s,component:d,...r}){let{components:c}=C(),{control:h}=p();return re(g,{control:h,name:e,render:({field:u,fieldState:F})=>{let a=d||c.textarea;if(!a)throw new Error(`Text area component not found for field ${e}`);let f={name:e,description:t,label:i,maxLength:s,...r};return re(a,{field:{...u,onChange:n(S=>{u.onChange(S),l?.(S)},"onChange")},fieldState:F,fieldData:f})}})}n(ie,"TextAreaField");import{jsx as le}from"react/jsx-runtime";function me(e){let{components:t}=C(),{control:i}=p(),l=e.component||t.email;if(!l)throw new Error(`Email component not found for field ${e.name}`);return le(g,{control:i,name:e.name,render:({field:s,fieldState:d})=>le(l,{field:{...s,onChange:n(r=>{s.onChange(r),e.onChange?.(r)},"onChange")},fieldState:d,fieldData:e})})}n(me,"EmailField");import{jsx as se}from"react/jsx-runtime";function ae(e){let{control:t}=p();return se(g,{control:t,name:e.name,render:({field:i})=>se("input",{...i,type:"hidden"})})}n(ae,"HiddenField");import{useEffect as be,useState as Te}from"react";import{jsx as de}from"react/jsx-runtime";function pe(e){let{components:t}=C(),{setValue:i,control:l,watch:s}=p(),d=s(e.name),[r,c]=Te(d),{workHoursSummary:h,breakSummary:u}=O(r),F=L(r);be(()=>{i(e.name,r)},[r,e.name,i]);function a(m){c(m)}n(a,"onSubmit");let f=e.component||t["work-schedule"];if(!f)throw new Error(`Work schedule component not found for field ${e.name}`);let S={...e,onSubmit:a,currentSchedule:r,defaultFormattedValue:{workHoursSummary:h,breakSummary:u,totalWorkHours:F}};return de(g,{control:l,name:e.name,render:({field:m,fieldState:y})=>de(f,{field:{...m,onChange:n(x=>{m.onChange(x),e.onChange?.(x)},"onChange")},fieldState:y,fieldData:S})})}n(pe,"WorkScheduleField");import{jsx as ce}from"react/jsx-runtime";function ue({label:e,name:t,options:i,defaultValue:l,description:s,onChange:d,component:r,...c}){let{control:h}=p(),{components:u}=C();return ce(g,{defaultValue:l,control:h,name:t,render:({field:F,fieldState:a})=>{let f=r||u?.["multi-select"];if(!f)throw new Error(`Multi select component not found for field ${t}`);let S={label:e,name:t,options:i,defaultValue:l,description:s,onChange:d,...c};return ce(f,{field:{...F,onChange:n(m=>{F.onChange(m),d?.(m)},"onChange")},fieldState:a,fieldData:S})}})}n(ue,"MultiSelectField");import{jsx as $e}from"react/jsx-runtime";var Fe=n(e=>$e(M,{maxLength:15,...e}),"MoneyField");var A={checkbox:G,text:z,email:me,money:Fe,select:oe,"multi-select":ue,radio:j,number:M,file:Q,date:q,textarea:ie,countries:ne,hidden:ae,"work-schedule":pe};import{Fragment as we,jsx as b,jsxs as P}from"react/jsx-runtime";function Ce({label:e,name:t,fields:i,description:l,components:s,statement:d,isFlatFieldset:r,extra:c,variant:h="outset",features:u,meta:F}){let{helpCenter:a}=F||{},{watch:f,setValue:S,trigger:m,formState:y}=p(),{components:x}=C(),D=u?.toggle?.stateField,T=D?f(D):u?.toggle?.defaultExpanded??!0,Se=i.map(({name:o})=>`${t}.${o}`),E=f(Se),B=ge(E),k=ge(null),he=n(()=>{D&&S(D,!T)},"toggleExpanded");Pe(()=>{let o=E,$=B.current,R=y.isSubmitted||y.submitCount>0,v=!1;for(let w=0;w<o.length;w++)if(o[w]!==void 0&&$[w]!==o[w]){v=!0;break}return v&&R&&(k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{m()},50)),B.current=[...o],()=>{k.current&&clearTimeout(k.current)}},[E,m,y.isSubmitted,y.submitCount]);let ye=x?.fieldsetToggle||I,V=`${t}-content`,W=`${t}-header`;return P("fieldset",{className:_("border-1 border-input p-4 rounded-xl","RemoteFlows__FieldSetField",`RemoteFlows__FieldSetField__${t}`),children:[b("legend",{className:_("text-sm font-semibold px-2",h==="inset"&&"hidden"),children:e}),a?.callToAction&&a?.id&&h==="outset"&&b(J,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:a.id,children:a.callToAction}),h==="inset"&&P(we,{children:[P("div",{className:"RemoteFlows__FieldSetField__Header",id:W,"data-state":T?"expanded":"collapsed","aria-expanded":T,children:[b("h3",{className:_("RemoteFlows__FieldSetField__Title"),children:e}),u?.toggle?.enabled&&b(ye,{isExpanded:T,onToggle:he,"aria-expanded":T,"aria-controls":V,"aria-label":`${T?"Hide":"Show"} ${e}`,className:_("RemoteFlows__FieldSetField__Toggle",u.toggle?.className),children:T?u.toggle.labels?.collapse??"Remove":u.toggle.labels?.expand??"Define"})]}),a?.callToAction&&a?.id&&b(J,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:a.id,children:a.callToAction})]}),T&&P("div",{id:V,"aria-labelledby":W,role:"region",children:[l?b("div",{className:"mb-5 RemoteFlows__FieldSetField__Description",dangerouslySetInnerHTML:{__html:H(l)}}):null,P("div",{className:"grid gap-4",children:[i.map(o=>{if(o.calculateDynamicProperties&&(o={...o,...o.calculateDynamicProperties(E,o)||{}}),o.isVisible===!1||o.deprecated)return null;let $=o.type;if($==="fieldset")return b(Ce,{...o,name:`${r?o.name:`${t}.${o.name}`}`,components:s},`${r?o.name:`${t}.${o.name}`}`);if($==="fieldset-flat")return b(Ce,{...o,name:`${r?o.name:`${t}.${o.name}`}`,components:s,isFlatFieldset:!0},`${r?o.name:`${t}.${o.name}`}`);let R=A[$];if(o.Component){let{Component:v}=o;return P(fe,{children:[b(v,{setValue:w=>S(r?o.name:`${t}.${o.name}`,w),...o}),o.statement?b(N,{...o.statement}):null,o.extra?o.extra:null]},`${r?o.name:`${t}.${o.name}`}`)}return R?($==="select"&&o.multiple&&(R=A["multi-select"]),P(fe,{children:[b(R,{...o,name:`${r?o.name:`${t}.${o.name}`}`,component:s?.[$]}),o.statement?b(N,{...o.statement}):null,o.extra?o.extra:null]},`${r?o.name:`${t}.${o.name}`}`)):P("p",{className:"error",children:["Field type ",$," not supported"]})}),c||null,d?b(N,{...d}):null]})]})]})}n(Ce,"FieldSetField");export{A as a,Ce as b};
2
+ //# sourceMappingURL=chunk-CT2D4IBR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/form/fields/FieldSetField.tsx","../src/components/form/fields/DatePickerField.tsx","../src/components/form/fields/FileUploadField.tsx","../src/components/form/fields/NumberField.tsx","../src/components/form/fields/RadioGroupField.tsx","../src/components/form/fields/SelectField.tsx","../src/components/form/fields/CountryField.tsx","../src/components/form/fields/TextAreaField.tsx","../src/components/form/fields/EmailField.tsx","../src/components/form/fields/HiddenField.tsx","../src/components/form/fields/WorkScheduleField.tsx","../src/components/form/fields/MultiSelectField.tsx","../src/components/form/fields/MoneyField.tsx","../src/components/form/fields/baseFields.tsx"],"sourcesContent":["import { useFormContext } from 'react-hook-form';\nimport { Fragment, useEffect, useRef } from 'react';\nimport { baseFields } from '@/src/components/form/fields/baseFields';\nimport { cn, sanitizeHtml } from '@/src/lib/utils';\nimport { $TSFixMe, Components } from '@/src/types/remoteFlows';\nimport { Statement } from '@/src/components/form/Statement';\nimport { useFormFields } from '@/src/context';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { FieldsetToggleButtonDefault } from '@/src/components/form/fields/default/FieldsetToggleButtonDefault';\nimport { BaseTypes, SupportedTypes } from './types';\nimport { StatementComponentProps } from '@/src/types/fields';\n\ntype FieldBase = {\n label: string;\n name: string;\n description: string;\n Component?: React.ComponentType<$TSFixMe>;\n inputType: SupportedTypes;\n multiple?: boolean;\n};\n\ntype FieldWithOptions = FieldBase & {\n type: 'select' | 'radio';\n options: Array<{ value: string; label: string }>;\n};\n\ntype FieldWithoutOptions = FieldBase & {\n type: Exclude<SupportedTypes, 'select' | 'radio'>;\n options?: never;\n};\n\ntype Field = FieldWithOptions | FieldWithoutOptions;\n\ntype FieldSetFeatures = {\n toggle?: {\n enabled: boolean;\n defaultExpanded?: boolean;\n stateField?: string;\n labels?: {\n expand: string;\n collapse: string;\n };\n className?: string;\n };\n};\n\nexport type FieldSetProps = {\n label: string;\n name: string;\n description: string;\n fields: Field[];\n features?: FieldSetFeatures;\n components: Components;\n statement?: StatementComponentProps['data'];\n isFlatFieldset: boolean;\n extra?: React.ReactNode;\n variant: 'outset' | 'inset';\n meta?: {\n helpCenter?: {\n callToAction: string;\n id: number;\n url: string;\n label: string;\n };\n } & Record<string, $TSFixMe>;\n};\n\nexport function FieldSetField({\n label,\n name,\n fields,\n description,\n components,\n statement,\n isFlatFieldset,\n extra,\n variant = 'outset',\n features,\n meta,\n}: FieldSetProps) {\n const { helpCenter } = meta || {};\n const { watch, setValue, trigger, formState } = useFormContext();\n const { components: formComponents } = useFormFields();\n\n // Get expanded state from form state if stateField is provided\n const stateField = features?.toggle?.stateField;\n const isExpanded = stateField\n ? watch(stateField)\n : (features?.toggle?.defaultExpanded ?? true);\n\n const fieldNames = fields.map(\n ({ name: fieldName }) => `${name}.${fieldName}`,\n );\n const watchedValues = watch(fieldNames);\n const prevValuesRef = useRef<string[]>(watchedValues);\n const triggerTimeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n const toggleExpanded = () => {\n if (stateField) {\n setValue(stateField, !isExpanded);\n }\n };\n\n useEffect(() => {\n const currentValues = watchedValues;\n const previousValues = prevValuesRef.current;\n const hasBeenSubmitted = formState.isSubmitted || formState.submitCount > 0;\n\n // Check if any value has changed\n let hasChanged = false;\n for (let i = 0; i < currentValues.length; i++) {\n if (\n currentValues[i] !== undefined &&\n previousValues[i] !== currentValues[i]\n ) {\n hasChanged = true;\n // This is to prevent the form from triggering validation too many times\n break;\n }\n }\n // If changes detected and we haven't triggered yet, run trigger\n if (hasChanged && hasBeenSubmitted) {\n // We need to debounce the validation trigger so that tests don't freeze\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n triggerTimeoutRef.current = setTimeout(() => {\n trigger();\n }, 50);\n }\n\n prevValuesRef.current = [...currentValues];\n\n return () => {\n if (triggerTimeoutRef.current) {\n clearTimeout(triggerTimeoutRef.current);\n }\n };\n }, [watchedValues, trigger, formState.isSubmitted, formState.submitCount]);\n\n const ToggleComponent =\n formComponents?.fieldsetToggle || FieldsetToggleButtonDefault;\n const contentId = `${name}-content`;\n const headerId = `${name}-header`;\n\n return (\n <fieldset\n className={cn(\n 'border-1 border-input p-4 rounded-xl',\n `RemoteFlows__FieldSetField`,\n `RemoteFlows__FieldSetField__${name}`,\n )}\n >\n <legend\n className={cn(\n 'text-sm font-semibold px-2',\n variant === 'inset' && 'hidden',\n )}\n >\n {label}\n </legend>\n {helpCenter?.callToAction && helpCenter?.id && variant === 'outset' && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n {variant === 'inset' && (\n <>\n <div\n className='RemoteFlows__FieldSetField__Header'\n id={headerId}\n data-state={isExpanded ? 'expanded' : 'collapsed'}\n aria-expanded={isExpanded}\n >\n <h3 className={cn('RemoteFlows__FieldSetField__Title')}>{label}</h3>\n {features?.toggle?.enabled && (\n <ToggleComponent\n isExpanded={isExpanded}\n onToggle={toggleExpanded}\n aria-expanded={isExpanded}\n aria-controls={contentId}\n aria-label={`${isExpanded ? 'Hide' : 'Show'} ${label}`}\n className={cn(\n 'RemoteFlows__FieldSetField__Toggle',\n features.toggle?.className,\n )}\n >\n {isExpanded\n ? (features.toggle.labels?.collapse ?? 'Remove')\n : (features.toggle.labels?.expand ?? 'Define')}\n </ToggleComponent>\n )}\n </div>\n {helpCenter?.callToAction && helpCenter?.id && (\n <ZendeskTriggerButton\n className='RemoteFlows__FieldSetField__HelpCenterLink mb-3'\n zendeskId={helpCenter.id}\n >\n {helpCenter.callToAction}\n </ZendeskTriggerButton>\n )}\n </>\n )}\n {isExpanded && (\n <div id={contentId} aria-labelledby={headerId} role='region'>\n {description ? (\n <div\n className='mb-5 RemoteFlows__FieldSetField__Description'\n dangerouslySetInnerHTML={{ __html: sanitizeHtml(description) }}\n />\n ) : null}\n <div className='grid gap-4'>\n {fields.map((field: $TSFixMe) => {\n if (field.calculateDynamicProperties) {\n field = {\n ...field,\n ...(field.calculateDynamicProperties(watchedValues, field) ||\n {}),\n };\n }\n\n if (field.isVisible === false || field.deprecated) {\n return null; // Skip hidden or deprecated fields\n }\n\n const fieldType = field.type;\n\n // Handle nested fieldsets\n if (fieldType === 'fieldset') {\n return (\n <FieldSetField\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n {...field}\n name={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n components={components}\n />\n );\n }\n\n if (fieldType === 'fieldset-flat') {\n return (\n <FieldSetField\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n {...field}\n name={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n components={components}\n isFlatFieldset\n />\n );\n }\n // We need to do the check after checking (field.type || field.inputType) === 'fieldset' or (field.type || field.inputType) === 'fieldset-flat'\n // circular dependency most likely\n let FieldComponent = baseFields[fieldType as BaseTypes];\n\n if (field.Component) {\n const { Component } = field as {\n Component: React.ComponentType<$TSFixMe>;\n };\n return (\n <Fragment\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n >\n <Component\n setValue={(value: unknown) =>\n setValue(\n isFlatFieldset ? field.name : `${name}.${field.name}`,\n value,\n )\n }\n {...field}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </Fragment>\n );\n }\n\n if (!FieldComponent) {\n return (\n <p className='error'>Field type {fieldType} not supported</p>\n );\n }\n\n if (fieldType === 'select' && field.multiple) {\n FieldComponent = baseFields['multi-select'];\n }\n\n return (\n <Fragment\n key={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n >\n <FieldComponent\n {...field}\n name={`${isFlatFieldset ? field.name : `${name}.${field.name}`}`}\n component={components?.[fieldType as keyof Components]}\n />\n {field.statement ? (\n <Statement\n {...(field.statement as StatementComponentProps['data'])}\n />\n ) : null}\n {field.extra ? field.extra : null}\n </Fragment>\n );\n })}\n {extra ? extra : null}\n {statement ? <Statement {...statement} /> : null}\n </div>\n </div>\n )}\n </fieldset>\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { getMinStartDate } from '@/src/components/form/utils';\n\nexport type DatePickerFieldProps = JSFField & {\n onChange?: (value: any) => void;\n component?: Components['date'];\n};\n\nexport function DatePickerField({\n description,\n label,\n name,\n minDate,\n maxDate,\n onChange,\n component,\n ...rest\n}: DatePickerFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n let minDateValue: Date;\n if (rest.meta?.mot && typeof rest.meta.mot === 'number') {\n minDateValue = getMinStartDate(rest.meta.mot);\n } else if (typeof minDate === 'string') {\n minDateValue = new Date(`${minDate}T00:00:00`);\n }\n\n let maxDateValue: Date | undefined;\n if (maxDate) {\n maxDateValue = new Date(`${maxDate}T23:59:59`);\n }\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.date;\n\n if (!Component) {\n throw new Error(`Date picker component not found for field ${name}`);\n }\n\n const customDatePickerFieldProps = {\n description,\n label,\n name,\n onChange,\n ...(minDateValue && { minDate: minDateValue.toISOString() }),\n ...(maxDateValue && { maxDate: maxDateValue.toISOString() }),\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customDatePickerFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport {\n ControllerRenderProps,\n FieldValues,\n useFormContext,\n} from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { FieldDataProps } from '@/src/types/fields';\n\nconst validateFileSize = (files: File[], maxSize?: number): string | null => {\n if (!maxSize) return null;\n\n for (const file of files) {\n if (file.size > maxSize) {\n const maxSizeMB = Math.round(maxSize / (1024 * 1024));\n const fileSizeMB = Math.round(file.size / (1024 * 1024));\n return `File \"${file.name}\" exceeds maximum size of ${maxSizeMB}MB (file is ${fileSizeMB}MB)`;\n }\n }\n return null;\n};\n\nexport type FieldFileDataProps = FieldDataProps & {\n accept?: string;\n multiple?: boolean;\n maxFileSize?: number;\n};\n\nexport type FileUploadFieldProps = JSFField & {\n onChange?: (value: File[]) => void;\n multiple?: boolean;\n component?: Components['file'];\n maxSize?: number;\n accept?: string;\n};\n\nexport function FileUploadField({\n name,\n description,\n label,\n multiple,\n onChange,\n component,\n accept,\n maxSize,\n ...rest\n}: FileUploadFieldProps) {\n const { components } = useFormFields();\n const { control, setError, clearErrors } = useFormContext();\n\n const handleOnChange = async (\n files: File[],\n field: ControllerRenderProps<FieldValues, string>,\n ) => {\n const sizeError = validateFileSize(files, maxSize);\n if (sizeError) {\n setError(name, { message: sizeError });\n return;\n }\n\n clearErrors(name);\n field.onChange(files);\n onChange?.(files);\n };\n\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.file;\n if (!Component) {\n throw new Error(`File upload component not found for field ${name}`);\n }\n\n const fieldData: FieldFileDataProps = {\n name,\n description,\n label,\n multiple,\n accept,\n maxFileSize: maxSize,\n ...rest,\n };\n\n return (\n <Component\n field={{\n ...field,\n value: field.value,\n onChange: async (value: File[]) => handleOnChange(value, field),\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { useFormFields } from '@/src/context';\nimport { FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\nimport { TextFieldProps } from './TextField';\n\nexport type NumberFieldProps = TextFieldProps & {\n component?: Components['number'];\n onChange?: (value: number) => void;\n};\n\nexport function NumberField(props: NumberFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const Component = props.component || components.number;\n if (!Component) {\n throw new Error(`Number component not found for field ${props.name}`);\n }\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: number) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n}\n","import { FormField } from '@/src/components/ui/form';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\n\ntype RadioGroupFieldProps = JSFField & {\n onChange?: (value: string) => void;\n component?: Components['radio'];\n};\n\nexport function RadioGroupField({\n name,\n defaultValue,\n description,\n label,\n options,\n onChange,\n component,\n ...rest\n}: RadioGroupFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n defaultValue={defaultValue}\n render={({ field, fieldState }) => {\n const Component = component || components?.radio;\n if (!Component) {\n throw new Error(`Radio group component not found for field ${name}`);\n }\n const customRadioGroupFieldProps = {\n name,\n defaultValue,\n description,\n label,\n options,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customRadioGroupFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\ntype SelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string | number; label: string }>;\n className?: string;\n onChange?: (value: string | number) => void;\n component?: Components['select'];\n};\n\nexport function SelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: SelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.select;\n\n if (!Component) {\n throw new Error(`Select component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string | number) => {\n const maybeCastValue =\n rest.jsonType === 'number' ? Number(value) : value;\n field.onChange(maybeCastValue);\n onChange?.(maybeCastValue);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\n\ntype CountryFieldProps = JSFField & {\n options: Array<{ value: string; label: string }>;\n onChange?: (value: any) => void;\n $meta: {\n regions: Record<string, string[]>;\n subregions: Record<string, string[]>;\n };\n component?: Components['countries'];\n};\n\nexport function CountryField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n component,\n ...rest\n}: CountryFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.countries;\n if (!Component) {\n throw new Error(`Country component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n $meta,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import * as React from 'react';\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '@/src/components/ui/form';\n\nexport type TextAreaFieldProps = JSFField & {\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n maxLength?: number;\n component?: Components['textarea'];\n};\n\nexport function TextAreaField({\n name,\n description,\n label,\n onChange,\n maxLength,\n component,\n ...rest\n}: TextAreaFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n return (\n <FormField\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components.textarea;\n if (!Component) {\n throw new Error(`Text area component not found for field ${name}`);\n }\n const customTextAreaFieldProps = {\n name,\n description,\n label,\n maxLength,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (evt: React.ChangeEvent<HTMLTextAreaElement>) => {\n field.onChange(evt);\n onChange?.(evt);\n },\n }}\n fieldState={fieldState}\n fieldData={customTextAreaFieldProps}\n />\n );\n }}\n />\n );\n}\n","import { useFormFields } from '@/src/context';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { TextFieldProps } from './TextField';\nimport { Components } from '@/src/types/remoteFlows';\n\ntype EmailFieldProps = TextFieldProps & {\n component?: Components['email'];\n};\n\nexport function EmailField(props: EmailFieldProps) {\n const { components } = useFormFields();\n const { control } = useFormContext();\n\n const Component = props.component || components.email;\n\n if (!Component) {\n throw new Error(`Email component not found for field ${props.name}`);\n }\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: string) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={props}\n />\n );\n }}\n />\n );\n}\n","import { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\nimport { Field } from '@/src/flows/types';\n\nexport function HiddenField(props: Field) {\n const { control } = useFormContext();\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field }) => {\n return <input {...field} type='hidden' />;\n }}\n />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { JSFField } from '@/src/types/remoteFlows';\nimport { useFormFields } from '@/src/context';\nimport { FormField } from '@/src/components/ui/form';\nimport { Components } from '@/src/types/remoteFlows';\n\nimport {\n buildWorkScheduleSummary,\n calculateTotalWorkHours,\n DailySchedule,\n} from './workScheduleUtils';\n\ntype WorkScheduleFieldProps = JSFField & {\n name: string;\n default: DailySchedule[];\n onChange?: (value: any) => void;\n component?: Components['work-schedule'];\n};\n\ntype WorkScheduleFormData = {\n schedule: DailySchedule[];\n};\n\nexport function WorkScheduleField(props: WorkScheduleFieldProps) {\n const { components } = useFormFields();\n const { setValue, control, watch } = useFormContext();\n const watchedSchedule = watch(props.name);\n const [currentSchedule, setCurrentSchedule] =\n useState<DailySchedule[]>(watchedSchedule);\n\n const { workHoursSummary, breakSummary } =\n buildWorkScheduleSummary(currentSchedule);\n const totalWorkHours = calculateTotalWorkHours(currentSchedule);\n\n useEffect(() => {\n setValue(props.name, currentSchedule);\n }, [currentSchedule, props.name, setValue]);\n\n function onSubmit(data: WorkScheduleFormData['schedule']) {\n setCurrentSchedule(data);\n }\n\n const Component = props.component || components['work-schedule'];\n if (!Component) {\n throw new Error(\n `Work schedule component not found for field ${props.name}`,\n );\n }\n\n const fieldData = {\n ...props,\n onSubmit,\n currentSchedule,\n defaultFormattedValue: {\n workHoursSummary,\n breakSummary,\n totalWorkHours,\n },\n };\n\n return (\n <FormField\n control={control}\n name={props.name}\n render={({ field, fieldState }) => {\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n props.onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={fieldData}\n />\n );\n }}\n />\n );\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useFormFields } from '@/src/context';\nimport { Components, JSFField } from '@/src/types/remoteFlows';\nimport { useFormContext } from 'react-hook-form';\nimport { FormField } from '../../ui/form';\n\ntype MultiSelectFieldProps = JSFField & {\n placeholder?: string;\n options: Array<{ value: string; label: string }>;\n className?: string;\n onChange?: (value: any) => void;\n component?: Components['select'];\n};\n\nexport function MultiSelectField({\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n component,\n ...rest\n}: MultiSelectFieldProps) {\n const { control } = useFormContext();\n const { components } = useFormFields();\n\n return (\n <FormField\n defaultValue={defaultValue}\n control={control}\n name={name}\n render={({ field, fieldState }) => {\n const Component = component || components?.['multi-select'];\n if (!Component) {\n throw new Error(`Multi select component not found for field ${name}`);\n }\n\n const customSelectFieldProps = {\n label,\n name,\n options,\n defaultValue,\n description,\n onChange,\n ...rest,\n };\n return (\n <Component\n field={{\n ...field,\n onChange: (value: any) => {\n field.onChange(value);\n onChange?.(value);\n },\n }}\n fieldState={fieldState}\n fieldData={customSelectFieldProps}\n />\n );\n }}\n />\n );\n}\n","import {\n NumberField,\n NumberFieldProps,\n} from '@/src/components/form/fields/NumberField';\n\n// TODO: We use the number field and the the number type is what the partner overrides\n// TODO: this needs to be changed in the future with the changes from https://github.com/remoteoss/remote-flows/pull/128\nexport const MoneyField = (props: NumberFieldProps) => {\n return <NumberField maxLength={15} {...props} />;\n};\n","import { CheckBoxField } from './CheckBoxField';\nimport { DatePickerField } from './DatePickerField';\nimport { FileUploadField } from './FileUploadField';\nimport { NumberField } from './NumberField';\nimport { RadioGroupField } from './RadioGroupField';\nimport { SelectField } from './SelectField';\nimport { CountryField } from './CountryField';\nimport { TextAreaField } from './TextAreaField';\nimport { TextField } from './TextField';\nimport { EmailField } from './EmailField';\nimport { HiddenField } from './HiddenField';\nimport { WorkScheduleField } from './WorkScheduleField';\nimport { MultiSelectField } from './MultiSelectField';\nimport { MoneyField } from './MoneyField';\nimport { SupportedTypes } from './types';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\nexport const baseFields: Record<\n Exclude<SupportedTypes, 'fieldset' | 'fieldset-flat'>,\n React.ComponentType<$TSFixMe>\n> = {\n checkbox: CheckBoxField,\n text: TextField,\n email: EmailField,\n money: MoneyField,\n select: SelectField,\n 'multi-select': MultiSelectField,\n radio: RadioGroupField,\n number: NumberField,\n file: FileUploadField,\n date: DatePickerField,\n textarea: TextAreaField,\n countries: CountryField,\n hidden: HiddenField,\n 'work-schedule': WorkScheduleField,\n};\n"],"mappings":"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","names":["Fragment","useEffect","useRef","jsx","DatePickerField","description","label","name","minDate","maxDate","onChange","component","rest","components","useFormFields","control","useFormContext","minDateValue","getMinStartDate","maxDateValue","FormField","field","fieldState","Component","customDatePickerFieldProps","__name","value","jsx","validateFileSize","__name","files","maxSize","file","maxSizeMB","fileSizeMB","FileUploadField","name","description","label","multiple","onChange","component","accept","rest","components","useFormFields","control","setError","clearErrors","useFormContext","handleOnChange","field","sizeError","FormField","fieldState","Component","fieldData","value","jsx","NumberField","props","components","useFormFields","control","useFormContext","Component","FormField","field","fieldState","__name","value","jsx","RadioGroupField","name","defaultValue","description","label","options","onChange","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","Component","customRadioGroupFieldProps","__name","value","jsx","SelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","maybeCastValue","jsx","CountryField","label","name","options","defaultValue","description","onChange","$meta","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","TextAreaField","name","description","label","onChange","maxLength","component","rest","components","useFormFields","control","useFormContext","FormField","field","fieldState","Component","customTextAreaFieldProps","__name","evt","jsx","EmailField","props","components","useFormFields","control","useFormContext","Component","FormField","field","fieldState","__name","value","jsx","HiddenField","props","control","useFormContext","FormField","field","__name","useEffect","useState","jsx","WorkScheduleField","props","components","useFormFields","setValue","control","watch","useFormContext","watchedSchedule","currentSchedule","setCurrentSchedule","useState","workHoursSummary","breakSummary","buildWorkScheduleSummary","totalWorkHours","calculateTotalWorkHours","useEffect","onSubmit","data","__name","Component","fieldData","FormField","field","fieldState","value","jsx","MultiSelectField","label","name","options","defaultValue","description","onChange","component","rest","control","useFormContext","components","useFormFields","FormField","field","fieldState","Component","customSelectFieldProps","__name","value","jsx","MoneyField","__name","props","NumberField","baseFields","CheckBoxField","TextField","EmailField","MoneyField","SelectField","MultiSelectField","RadioGroupField","NumberField","FileUploadField","DatePickerField","TextAreaField","CountryField","HiddenField","WorkScheduleField","Fragment","jsx","jsxs","FieldSetField","label","name","fields","description","components","statement","isFlatFieldset","extra","variant","features","meta","helpCenter","watch","setValue","trigger","formState","useFormContext","formComponents","useFormFields","stateField","isExpanded","fieldNames","fieldName","watchedValues","prevValuesRef","useRef","triggerTimeoutRef","toggleExpanded","__name","useEffect","currentValues","previousValues","hasBeenSubmitted","hasChanged","i","ToggleComponent","FieldsetToggleButtonDefault","contentId","headerId","cn","ZendeskTriggerButton","sanitizeHtml","field","fieldType","FieldComponent","baseFields","Component","value","Statement"]}
@@ -0,0 +1,2 @@
1
+ import{b as s}from"./chunk-Q3ALCPJN.js";import{b as e}from"./chunk-KQPDXXG3.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as p}from"react/jsx-runtime";var S=o(({onSuccess:i,onError:a,className:m,children:u,disabled:c=!1,...d})=>{let{contractorOnboardingBag:f,formId:l}=s(),{components:b}=e(),E=o(async()=>{let n=document.getElementById(l);if(n){let r=new Event("submit",{bubbles:!0,cancelable:!0});r.isDraftSubmission=!0,r.draftCallbacks={onSuccess:i,onError:a},n.dispatchEvent(r)}},"handleSaveDraft"),t=b?.button;if(!t)throw new Error("Button component not found");return p(t,{...d,onClick:E,disabled:c||f.isSubmitting,className:m,children:u})},"SaveDraftButton");export{S as a};
2
+ //# sourceMappingURL=chunk-DPVXSN7T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/ContractorOnboarding/components/SaveDraftButton.tsx"],"sourcesContent":["import { useFormFields } from '@/src/context';\nimport { useContractorOnboardingContext } from '@/src/flows/ContractorOnboarding/context';\nimport { ButtonHTMLAttributes } from 'react';\nimport { NormalizedFieldError } from '@/src/lib/mutations';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\n\ntype SaveDraftButtonProps = Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n 'onError'\n> & {\n onSuccess?: () => void | Promise<void>;\n onError?: ({\n error,\n rawError,\n fieldErrors,\n }: {\n error: Error;\n rawError: Record<string, unknown>;\n fieldErrors: NormalizedFieldError[];\n }) => void;\n};\n\nexport const SaveDraftButton = ({\n onSuccess,\n onError,\n className,\n children,\n disabled = false,\n ...props\n}: SaveDraftButtonProps) => {\n const { contractorOnboardingBag, formId } = useContractorOnboardingContext();\n\n const { components } = useFormFields();\n\n const handleSaveDraft = async () => {\n const form = document.getElementById(formId);\n if (form) {\n const submitEvent = new Event('submit', {\n bubbles: true,\n cancelable: true,\n });\n (submitEvent as $TSFixMe).isDraftSubmission = true;\n (submitEvent as $TSFixMe).draftCallbacks = { onSuccess, onError };\n form.dispatchEvent(submitEvent);\n }\n };\n\n const CustomButton = components?.button;\n if (!CustomButton) {\n throw new Error(`Button component not found`);\n }\n\n return (\n <CustomButton\n {...props}\n onClick={handleSaveDraft}\n disabled={disabled || contractorOnboardingBag.isSubmitting}\n className={className}\n >\n {children}\n </CustomButton>\n );\n};\n"],"mappings":"wHAqDI,cAAAA,MAAA,oBA/BG,IAAMC,EAAkBC,EAAA,CAAC,CAC9B,UAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,SAAAC,EAAW,GACX,GAAGC,CACL,IAA4B,CAC1B,GAAM,CAAE,wBAAAC,EAAyB,OAAAC,CAAO,EAAIC,EAA+B,EAErE,CAAE,WAAAC,CAAW,EAAIC,EAAc,EAE/BC,EAAkBZ,EAAA,SAAY,CAClC,IAAMa,EAAO,SAAS,eAAeL,CAAM,EAC3C,GAAIK,EAAM,CACR,IAAMC,EAAc,IAAI,MAAM,SAAU,CACtC,QAAS,GACT,WAAY,EACd,CAAC,EACAA,EAAyB,kBAAoB,GAC7CA,EAAyB,eAAiB,CAAE,UAAAb,EAAW,QAAAC,CAAQ,EAChEW,EAAK,cAAcC,CAAW,CAChC,CACF,EAXwB,mBAalBC,EAAeL,GAAY,OACjC,GAAI,CAACK,EACH,MAAM,IAAI,MAAM,4BAA4B,EAG9C,OACEjB,EAACiB,EAAA,CACE,GAAGT,EACJ,QAASM,EACT,SAAUP,GAAYE,EAAwB,aAC9C,UAAWJ,EAEV,SAAAC,EACH,CAEJ,EAxC+B","names":["jsx","SaveDraftButton","__name","onSuccess","onError","className","children","disabled","props","contractorOnboardingBag","formId","useContractorOnboardingContext","components","useFormFields","handleSaveDraft","form","submitEvent","CustomButton"]}
@@ -1,2 +1,2 @@
1
- import{b as f}from"./chunk-MRYRNB7Y.js";import{b as l}from"./chunk-LNV36S6D.js";import{a as F}from"./chunk-BUOCIXUH.js";import{f as s,g as a}from"./chunk-7EONM7HL.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as y}from"react";import{jsx as r}from"react/jsx-runtime";function A({defaultValues:u,fields:m,onSubmit:d}){let{formId:c,terminationBag:o}=f(),p=l(o.handleValidation),e=s({resolver:p,defaultValues:u,shouldUnregister:!1,mode:"onBlur"});y(()=>{let V=e?.watch(i=>{Object.keys(i).some(n=>i[n]!==o?.initialValues?.[n])&&o?.checkFieldUpdates(i)});return()=>V?.unsubscribe()},[]);let T=m||(o?.fields??[]);return r(a,{...e,children:r("form",{id:c,onSubmit:e.handleSubmit(d),className:"space-y-4 RemoteFlows__TerminationForm",children:r(F,{fields:T})})})}t(A,"TerminationForm");export{A as a};
2
- //# sourceMappingURL=chunk-Z6B3PA4M.js.map
1
+ import{b as f}from"./chunk-MRYRNB7Y.js";import{b as l}from"./chunk-LNV36S6D.js";import{a as F}from"./chunk-VZ5BGG3N.js";import{f as s,g as a}from"./chunk-7EONM7HL.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as y}from"react";import{jsx as r}from"react/jsx-runtime";function A({defaultValues:u,fields:m,onSubmit:d}){let{formId:c,terminationBag:o}=f(),p=l(o.handleValidation),e=s({resolver:p,defaultValues:u,shouldUnregister:!1,mode:"onBlur"});y(()=>{let V=e?.watch(i=>{Object.keys(i).some(n=>i[n]!==o?.initialValues?.[n])&&o?.checkFieldUpdates(i)});return()=>V?.unsubscribe()},[]);let T=m||(o?.fields??[]);return r(a,{...e,children:r("form",{id:c,onSubmit:e.handleSubmit(d),className:"space-y-4 RemoteFlows__TerminationForm",children:r(F,{fields:T})})})}t(A,"TerminationForm");export{A as a};
2
+ //# sourceMappingURL=chunk-DPZHLV7U.js.map
@@ -1,2 +1,2 @@
1
- import{a as d,b as w}from"./chunk-EAF6XPH6.js";import{a as g}from"./chunk-YIOLMWB5.js";import{a as E}from"./chunk-EUSCQL4H.js";import{e as C}from"./chunk-T7O3YYOG.js";import{P as F,e as _,z as P}from"./chunk-WQ4H5V7U.js";import{a as h}from"./chunk-X6ZAR7ZL.js";import{a as j}from"./chunk-TSPDJUGG.js";import{d as c}from"./chunk-KQPDXXG3.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as b,useQuery as I}from"@tanstack/react-query";var B=e(({countryCode:n,employment:r,fieldValues:a,options:t})=>{let{client:u}=c(),m=t?.jsonSchemaVersion?.contract_amendments?{json_schema_version:t.jsonSchemaVersion.contract_amendments}:{};return I({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let o=await _({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:n,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:e(({data:o})=>{let l=o?.data||{};return E(l,a,t)},"select")})},"useContractAmendmentSchemaQuery"),J=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>P({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useCreateContractAmendmentMutation"),K=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>F({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),te=e(({employmentId:n,countryCode:r,options:a})=>{let{fieldValues:t,setFieldValues:u,stepState:m,nextStep:o,previousStep:l}=j(d),{data:i,isLoading:v,isError:q,error:Q}=g({employmentId:n,queryParams:{exclude_files:!0}}),{data:s,isLoading:L,isError:M,error:T}=B({employment:i,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...t},options:a}),k=w(i,s?.fields),S=J(a),A=K(a);async function x(p){let f=await C(p,s?.fields||[],{isPartialValidation:!1}),V={employment_id:i?.id,amendment_contract_id:i?.active_contract_id,contract_amendment:{...f}};switch(m.currentStep.name){case d.form.name:{let{mutateAsync:y}=h(A),H=await y(V);return o(),H}case d.confirmation_form.name:{let{mutateAsync:y}=h(S);return y(V)}default:throw new Error("Invalid step state")}}e(x,"onSubmit");async function z(p){if(s){let f=await C(p,s?.fields);return s?.handleValidation(f)}return null}e(z,"handleValidation");function O(){l()}return e(O,"back"),{stepState:m,fields:s?.fields||[],isLoading:v||L,isError:q||M,error:Q||T,isSubmitting:A.isPending||S.isPending,initialValues:k,values:t,handleValidation:z,checkFieldUpdates:u,onSubmit:x,back:O}},"useContractAmendment");export{te as a};
2
- //# sourceMappingURL=chunk-POKLRB3M.js.map
1
+ import{a as d,b as w}from"./chunk-JD2O7KNE.js";import{a as g}from"./chunk-YIOLMWB5.js";import{a as E}from"./chunk-EUQH4FU4.js";import{e as C}from"./chunk-I3DVKJCW.js";import{P as F,e as _,z as P}from"./chunk-WQ4H5V7U.js";import{a as h}from"./chunk-X6ZAR7ZL.js";import{a as j}from"./chunk-TSPDJUGG.js";import{d as c}from"./chunk-KQPDXXG3.js";import{a as e}from"./chunk-P37U34EQ.js";import{useMutation as b,useQuery as I}from"@tanstack/react-query";var B=e(({countryCode:n,employment:r,fieldValues:a,options:t})=>{let{client:u}=c(),m=t?.jsonSchemaVersion?.contract_amendments?{json_schema_version:t.jsonSchemaVersion.contract_amendments}:{};return I({queryKey:["contract-amendment-schema"],retry:!1,queryFn:e(async()=>{let o=await _({client:u,headers:{Authorization:""},query:{employment_id:r?.id,country_code:n,...m}});if(o.error||!o.data)throw new Error("Failed to fetch contract amendment schema");return o},"queryFn"),enabled:!!r,select:e(({data:o})=>{let l=o?.data||{};return E(l,a,t)},"select")})},"useContractAmendmentSchemaQuery"),J=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>P({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useCreateContractAmendmentMutation"),K=e(n=>{let{client:r}=c(),a=n?.jsonSchemaVersion?.contract_amendments?{json_schema_version:n.jsonSchemaVersion.contract_amendments}:{};return b({mutationFn:e(t=>F({client:r,headers:{Authorization:""},body:t,query:{...a}}),"mutationFn")})},"useAutomatableContractAmendmentMutation"),te=e(({employmentId:n,countryCode:r,options:a})=>{let{fieldValues:t,setFieldValues:u,stepState:m,nextStep:o,previousStep:l}=j(d),{data:i,isLoading:v,isError:q,error:Q}=g({employmentId:n,queryParams:{exclude_files:!0}}),{data:s,isLoading:L,isError:M,error:T}=B({employment:i,countryCode:r,fieldValues:{...m.values?.[m.currentStep.name],...t},options:a}),k=w(i,s?.fields),S=J(a),A=K(a);async function x(p){let f=await C(p,s?.fields||[],{isPartialValidation:!1}),V={employment_id:i?.id,amendment_contract_id:i?.active_contract_id,contract_amendment:{...f}};switch(m.currentStep.name){case d.form.name:{let{mutateAsync:y}=h(A),H=await y(V);return o(),H}case d.confirmation_form.name:{let{mutateAsync:y}=h(S);return y(V)}default:throw new Error("Invalid step state")}}e(x,"onSubmit");async function z(p){if(s){let f=await C(p,s?.fields);return s?.handleValidation(f)}return null}e(z,"handleValidation");function O(){l()}return e(O,"back"),{stepState:m,fields:s?.fields||[],isLoading:v||L,isError:q||M,error:Q||T,isSubmitting:A.isPending||S.isPending,initialValues:k,values:t,handleValidation:z,checkFieldUpdates:u,onSubmit:x,back:O}},"useContractAmendment");export{te as a};
2
+ //# sourceMappingURL=chunk-E6B4ZECN.js.map
@@ -0,0 +1,2 @@
1
+ import{a as y,b as d,c as p,d as R}from"./chunk-AYC6DTFV.js";import{a as w}from"./chunk-TFSRZOMP.js";import{a as _,b as i}from"./chunk-VIGKOVHP.js";import{a as m}from"./chunk-P37U34EQ.js";import{ChevronDown as A,Globe as N}from"lucide-react";import{useState as h}from"react";import{Fragment as C,jsx as e,jsxs as l}from"react/jsx-runtime";var v=m(s=>{if(s.length<2)return{currency:null,costsPerCountry:[],employeesCost:null};let o=s[0]?.employer_currency_costs.currency,c=s.reduce((r,t)=>{let a=t.country.name;return r[a]={country:t.country,monthlyTotal:(r[a]?.monthlyTotal||0)+t.employer_currency_costs.monthly_total,annualTotal:(r[a]?.annualTotal||0)+t.employer_currency_costs.annual_total},r},{}),n=Object.values(c).map(({country:r,monthlyTotal:t,annualTotal:a})=>({country:r,monthlyCost:i(t,o.code),annualCost:i(a,o.code)})),u={monthlyTotal:i(s.reduce((r,t)=>r+t.employer_currency_costs.monthly_total,0),o.code),annualTotal:i(s.reduce((r,t)=>r+t.employer_currency_costs.annual_total,0),o.code)};return{currency:o,costsPerCountry:n,employeesCost:u}},"useSummaryResults"),f=m(({currency:s,title:o})=>e("div",{className:"RemoteFlows__SummaryResults__Header flex items-center justify-between w-full",children:l("div",{className:"RemoteFlows__SummaryHeader__Container flex flex-row items-center gap-6",children:[e("div",{className:"RemoteFlows__SummaryHeader__IconContainer flex h-12 w-12 items-center justify-center rounded-lg bg-[#F4F4F5]",children:e(N,{className:"RemoteFlows__SummaryHeader__Icon h-6 w-6 text-[#000000]"})}),l("div",{className:"RemoteFlows__SummaryHeader__Content space-y-1",children:[e("h2",{className:"RemoteFlows__SummaryHeader__Title text-lg font-medium leading-none text-[#181818]",children:o}),l("p",{className:"RemoteFlows__SummaryHeader__Currency text-xs text-[#71717A]",children:["Employer billing currency: ",s.code]})]})]})}),"SummaryHeader"),g=m(({label:s,columns:o,rows:c,defaultValue:n="accordion",className:u})=>{let r=o.length===1?"grid-cols-2":"grid-cols-3";return e(y,{collapsible:!0,defaultValue:n,className:_("RemoteFlows__SummaryResults__MultiColumnAccordion w-full",u),children:l(d,{value:n,className:"RemoteFlows__SummaryResults__AccordionItem border-none",children:[e(p,{className:"RemoteFlows__SummaryResults__AccordionTrigger hover:no-underline px-0 py-3 [&>svg]:hidden group",children:l("div",{className:_("RemoteFlows__SummaryResults__AccordionHeader grid items-center w-full",r),children:[l("div",{className:"RemoteFlows__SummaryResults__AccordionHeader__LabelContainer flex items-center gap-2",children:[s,e(A,{className:"RemoteFlows__SummaryResults__ChevronDown h-4 w-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180"})]}),o.length===1?e("span",{className:"RemoteFlows__SummaryResults__ColumnHeader text-xs text-[#27272A] text-right",children:o[0]}):o.map((t,a)=>e("span",{className:"RemoteFlows__SummaryResults__ColumnHeader text-xs text-[#27272A] text-right",children:t},a))]})}),e(R,{className:"RemoteFlows__SummaryResults__AccordionContent px-0 pb-4",children:e("div",{className:"RemoteFlows__SummaryResults__AccordionRows space-y-3",children:c.map((t,a)=>l("div",{className:_("RemoteFlows__SummaryResults__AccordionRow grid items-center",r),children:[e("div",{className:"flex items-center gap-2",children:t.label}),o.length===1?e("span",{className:"RemoteFlows__SummaryResults__RowValue text-sm text-[#09090B] text-right",children:t.values[0]}):t.values.map((F,x)=>e("span",{className:"RemoteFlows__SummaryResults__RowValue text-sm text-[#09090B] text-right",children:F},x))]},a))})})]})})},"MultiColumnAccordion"),S=m(({employeesCost:s})=>e(g,{label:e("span",{className:"RemoteFlows__CostForAllEmployees__Label text-sm font-medium text-[#0F172A]",children:"Cost for all employees"}),columns:["Total cost"],rows:[{label:l(C,{children:[e("span",{className:"RemoteFlows__CostForAllEmployees__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0"}),e("span",{className:"RemoteFlows__CostForAllEmployees__MonthlyLabel text-sm text-[#09090B]",children:"Monthly cost"})]}),values:[s.monthlyTotal]},{label:l(C,{children:[e("span",{className:"RemoteFlows__CostForAllEmployees__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0"}),e("span",{className:"RemoteFlows__CostForAllEmployees__AnnualLabel text-sm text-[#09090B]",children:"Annual cost"})]}),values:[s.annualTotal]}],defaultValue:"cost-breakdown"}),"CostForAllEmployees"),b=m(({costsPerCountry:s})=>e(g,{label:e("span",{className:"RemoteFlows__CostsPerCountry__Label text-sm font-medium text-[#0F172A]",children:"Cost per country"}),columns:["Monthly cost","Annual cost"],rows:s.map(o=>({label:l(C,{children:[e("span",{className:"RemoteFlows__CostsPerCountry__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0"}),e("span",{className:"RemoteFlows__CostsPerCountry__CountryName text-sm text-[#09090B]",children:o.country.name})]}),values:[o.monthlyCost,o.annualCost]})),defaultValue:"country-breakdown"}),"CostsPerCountry"),k=m(({estimations:s})=>{let{currency:o,costsPerCountry:c,employeesCost:n}=v(s),[u,r]=h("summary");return!o||c.length===0||Object.keys(n).length===0?null:e(w,{className:"RemoteFlows__SummaryResults__Card p-10",children:e(y,{collapsible:!0,defaultValue:u,onValueChange:t=>r(t),className:"RemoteFlows__SummaryResults__Accordion w-full",children:l(d,{value:"summary",className:"RemoteFlows__SummaryResults__AccordionItem border-border",children:[e("div",{className:_("RemoteFlows__SummaryResults__AccordionTriggerContainer",{RemoteFlows__Separator:!!u}),children:e(p,{iconClassName:"size-6",className:"RemoteFlows__SummaryResults__MainAccordionTrigger hover:no-underline px-0 py-4",children:e(f,{currency:o,title:"Summary Overview"})})}),l(R,{className:"RemoteFlows__SummaryResults__MainAccordionContent px-0 pb-4 mt-6",children:[e("div",{className:"RemoteFlows__Separator",children:e(S,{employeesCost:n})}),e("div",{className:"RemoteFlows__SummaryResults__CostsPerCountryContainer mt-6",children:e(b,{costsPerCountry:c})})]})]})})})},"SummaryResults");export{k as a};
2
+ //# sourceMappingURL=chunk-EFRT6C7V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/CostCalculator/SummaryResults/SummaryResults.tsx"],"sourcesContent":["import { Currency } from '@/src/client';\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from '@/src/components/ui/accordion';\nimport { Card } from '@/src/components/ui/card';\nimport { CostCalculatorEstimation } from '@/src/flows/CostCalculator/types';\nimport { cn, formatCurrency } from '@/src/lib/utils';\nimport { ChevronDown, Globe } from 'lucide-react';\nimport { useState } from 'react';\n\nconst useSummaryResults = (estimations: CostCalculatorEstimation[]) => {\n if (estimations.length < 2) {\n return {\n currency: null,\n costsPerCountry: [],\n employeesCost: null,\n };\n }\n const currency = estimations[0]?.employer_currency_costs.currency;\n const costsPerCountry = estimations.reduce(\n (acc, estimation) => {\n const countryName = estimation.country.name;\n\n acc[countryName] = {\n country: estimation.country,\n monthlyTotal:\n (acc[countryName]?.monthlyTotal || 0) +\n estimation.employer_currency_costs.monthly_total,\n annualTotal:\n (acc[countryName]?.annualTotal || 0) +\n estimation.employer_currency_costs.annual_total,\n };\n\n return acc;\n },\n {} as Record<\n string,\n {\n country: (typeof estimations)[0]['country'];\n monthlyTotal: number;\n annualTotal: number;\n }\n >,\n );\n\n const groupedCostsPerCountry = Object.values(costsPerCountry).map(\n ({ country, monthlyTotal, annualTotal }) => ({\n country,\n monthlyCost: formatCurrency(monthlyTotal, currency.code),\n annualCost: formatCurrency(annualTotal, currency.code),\n }),\n );\n\n const employeesCost = {\n monthlyTotal: formatCurrency(\n estimations.reduce((acc, estimation) => {\n return acc + estimation.employer_currency_costs.monthly_total;\n }, 0),\n currency.code,\n ),\n annualTotal: formatCurrency(\n estimations.reduce((acc, estimation) => {\n return acc + estimation.employer_currency_costs.annual_total;\n }, 0),\n currency.code,\n ),\n };\n return { currency, costsPerCountry: groupedCostsPerCountry, employeesCost };\n};\n\nconst SummaryHeader = ({\n currency,\n title,\n}: {\n currency: Currency;\n title: string;\n}) => {\n return (\n <div className='RemoteFlows__SummaryResults__Header flex items-center justify-between w-full'>\n <div className='RemoteFlows__SummaryHeader__Container flex flex-row items-center gap-6'>\n <div className='RemoteFlows__SummaryHeader__IconContainer flex h-12 w-12 items-center justify-center rounded-lg bg-[#F4F4F5]'>\n <Globe className='RemoteFlows__SummaryHeader__Icon h-6 w-6 text-[#000000]' />\n </div>\n <div className='RemoteFlows__SummaryHeader__Content space-y-1'>\n <h2 className='RemoteFlows__SummaryHeader__Title text-lg font-medium leading-none text-[#181818]'>\n {title}\n </h2>\n <p className='RemoteFlows__SummaryHeader__Currency text-xs text-[#71717A]'>\n Employer billing currency: {currency.code}\n </p>\n </div>\n </div>\n </div>\n );\n};\n\nconst MultiColumnAccordion = ({\n label,\n columns,\n rows,\n defaultValue = 'accordion',\n className,\n}: {\n label: React.ReactNode;\n columns: string[];\n rows: Array<{\n label: React.ReactNode;\n values: string[];\n }>;\n defaultValue?: string;\n className?: string;\n}) => {\n const gridCols = columns.length === 1 ? 'grid-cols-2' : 'grid-cols-3';\n\n return (\n <Accordion\n collapsible\n defaultValue={defaultValue}\n className={cn(\n 'RemoteFlows__SummaryResults__MultiColumnAccordion w-full',\n className,\n )}\n >\n <AccordionItem\n value={defaultValue}\n className='RemoteFlows__SummaryResults__AccordionItem border-none'\n >\n <AccordionTrigger className='RemoteFlows__SummaryResults__AccordionTrigger hover:no-underline px-0 py-3 [&>svg]:hidden group'>\n <div\n className={cn(\n 'RemoteFlows__SummaryResults__AccordionHeader grid items-center w-full',\n gridCols,\n )}\n >\n <div className='RemoteFlows__SummaryResults__AccordionHeader__LabelContainer flex items-center gap-2'>\n {label}\n <ChevronDown className='RemoteFlows__SummaryResults__ChevronDown h-4 w-4 text-muted-foreground transition-transform group-data-[state=open]:rotate-180' />\n </div>\n {columns.length === 1 ? (\n <span className='RemoteFlows__SummaryResults__ColumnHeader text-xs text-[#27272A] text-right'>\n {columns[0]}\n </span>\n ) : (\n columns.map((column, index) => (\n <span\n key={index}\n className='RemoteFlows__SummaryResults__ColumnHeader text-xs text-[#27272A] text-right'\n >\n {column}\n </span>\n ))\n )}\n </div>\n </AccordionTrigger>\n\n <AccordionContent className='RemoteFlows__SummaryResults__AccordionContent px-0 pb-4'>\n <div className='RemoteFlows__SummaryResults__AccordionRows space-y-3'>\n {rows.map((row, index) => (\n <div\n key={index}\n className={cn(\n 'RemoteFlows__SummaryResults__AccordionRow grid items-center',\n gridCols,\n )}\n >\n <div className='flex items-center gap-2'>{row.label}</div>\n {columns.length === 1 ? (\n <span className='RemoteFlows__SummaryResults__RowValue text-sm text-[#09090B] text-right'>\n {row.values[0]}\n </span>\n ) : (\n row.values.map((value, valueIndex) => (\n <span\n key={valueIndex}\n className='RemoteFlows__SummaryResults__RowValue text-sm text-[#09090B] text-right'\n >\n {value}\n </span>\n ))\n )}\n </div>\n ))}\n </div>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n );\n};\n\nconst CostForAllEmployees = ({\n employeesCost,\n}: {\n employeesCost: { monthlyTotal: string; annualTotal: string };\n}) => {\n return (\n <MultiColumnAccordion\n label={\n <span className='RemoteFlows__CostForAllEmployees__Label text-sm font-medium text-[#0F172A]'>\n Cost for all employees\n </span>\n }\n columns={['Total cost']}\n rows={[\n {\n label: (\n <>\n <span className='RemoteFlows__CostForAllEmployees__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0' />\n <span className='RemoteFlows__CostForAllEmployees__MonthlyLabel text-sm text-[#09090B]'>\n Monthly cost\n </span>\n </>\n ),\n values: [employeesCost.monthlyTotal],\n },\n {\n label: (\n <>\n <span className='RemoteFlows__CostForAllEmployees__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0' />\n <span className='RemoteFlows__CostForAllEmployees__AnnualLabel text-sm text-[#09090B]'>\n Annual cost\n </span>\n </>\n ),\n values: [employeesCost.annualTotal],\n },\n ]}\n defaultValue='cost-breakdown'\n />\n );\n};\n\nconst CostsPerCountry = ({\n costsPerCountry,\n}: {\n costsPerCountry: Array<{\n country: { name: string };\n monthlyCost: string;\n annualCost: string;\n }>;\n}) => {\n return (\n <MultiColumnAccordion\n label={\n <span className='RemoteFlows__CostsPerCountry__Label text-sm font-medium text-[#0F172A]'>\n Cost per country\n </span>\n }\n columns={['Monthly cost', 'Annual cost']}\n rows={costsPerCountry.map((cost) => ({\n label: (\n <>\n <span className='RemoteFlows__CostsPerCountry__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0' />\n <span className='RemoteFlows__CostsPerCountry__CountryName text-sm text-[#09090B]'>\n {cost.country.name}\n </span>\n </>\n ),\n values: [cost.monthlyCost, cost.annualCost],\n }))}\n defaultValue='country-breakdown'\n />\n );\n};\n\ntype SummaryResultsProps = {\n /**\n * Array of employments to compare costs for.\n * 2 estimations required for the component to render\n */\n estimations: CostCalculatorEstimation[];\n};\n\n/**\n * Displays a summary comparison of costs across multiple estimations.\n * The component will return null if you pass less than 2 estimations.\n */\nexport const SummaryResults = ({ estimations }: SummaryResultsProps) => {\n const { currency, costsPerCountry, employeesCost } =\n useSummaryResults(estimations);\n\n const [accordionValue, setAccordionValue] = useState('summary');\n\n if (\n !currency ||\n costsPerCountry.length === 0 ||\n Object.keys(employeesCost).length === 0\n ) {\n return null;\n }\n\n return (\n <Card className='RemoteFlows__SummaryResults__Card p-10'>\n <Accordion\n collapsible\n defaultValue={accordionValue}\n onValueChange={(value) => setAccordionValue(value)}\n className='RemoteFlows__SummaryResults__Accordion w-full'\n >\n <AccordionItem\n value='summary'\n className='RemoteFlows__SummaryResults__AccordionItem border-border'\n >\n <div\n className={cn(\n 'RemoteFlows__SummaryResults__AccordionTriggerContainer',\n {\n RemoteFlows__Separator: !!accordionValue,\n },\n )}\n >\n <AccordionTrigger\n iconClassName='size-6'\n className='RemoteFlows__SummaryResults__MainAccordionTrigger hover:no-underline px-0 py-4'\n >\n <SummaryHeader currency={currency} title='Summary Overview' />\n </AccordionTrigger>\n </div>\n <AccordionContent className='RemoteFlows__SummaryResults__MainAccordionContent px-0 pb-4 mt-6'>\n <div className='RemoteFlows__Separator'>\n <CostForAllEmployees employeesCost={employeesCost} />\n </div>\n <div className='RemoteFlows__SummaryResults__CostsPerCountryContainer mt-6'>\n <CostsPerCountry costsPerCountry={costsPerCountry} />\n </div>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n </Card>\n );\n};\n"],"mappings":"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","names":["ChevronDown","Globe","useState","Fragment","jsx","jsxs","useSummaryResults","__name","estimations","currency","costsPerCountry","acc","estimation","countryName","groupedCostsPerCountry","country","monthlyTotal","annualTotal","formatCurrency","employeesCost","SummaryHeader","title","Globe","MultiColumnAccordion","label","columns","rows","defaultValue","className","gridCols","Accordion","cn","AccordionItem","AccordionTrigger","ChevronDown","column","index","AccordionContent","row","value","valueIndex","CostForAllEmployees","CostsPerCountry","cost","SummaryResults","accordionValue","setAccordionValue","useState","Card"]}
@@ -1,2 +1,2 @@
1
- import{a as l}from"./chunk-JEFPOHCP.js";import{b as s}from"./chunk-PGWKJ6FK.js";import{b as n}from"./chunk-X6ZAR7ZL.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function S({onSubmit:d,onError:a,onSuccess:m}){let{onboardingBag:r}=s(),c=t(async i=>{try{let e=await r.parseFormValues(i);await d?.(e);let o=await r.onSubmit(i);if(o?.data){await m?.(o.data),r?.next();return}if(o?.error){let p=n(o?.fieldErrors||[],r.meta?.fields?.contract_details);a?.({error:o.error,rawError:o.rawError,fieldErrors:p})}}catch(e){a?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit");return E(l,{defaultValues:r.stepState.values?.contract_details||r.initialValues.contract_details,onSubmit:c})}t(S,"ContractDetailsStep");export{S as a};
2
- //# sourceMappingURL=chunk-DHRMW63S.js.map
1
+ import{a as l}from"./chunk-C52C6J6Q.js";import{b as s}from"./chunk-PGWKJ6FK.js";import{b as n}from"./chunk-X6ZAR7ZL.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function S({onSubmit:d,onError:a,onSuccess:m}){let{onboardingBag:r}=s(),c=t(async i=>{try{let e=await r.parseFormValues(i);await d?.(e);let o=await r.onSubmit(i);if(o?.data){await m?.(o.data),r?.next();return}if(o?.error){let p=n(o?.fieldErrors||[],r.meta?.fields?.contract_details);a?.({error:o.error,rawError:o.rawError,fieldErrors:p})}}catch(e){a?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit");return E(l,{defaultValues:r.stepState.values?.contract_details||r.initialValues.contract_details,onSubmit:c})}t(S,"ContractDetailsStep");export{S as a};
2
+ //# sourceMappingURL=chunk-EULZWL2F.js.map
@@ -1,2 +1,2 @@
1
- import{c as m}from"./chunk-T7O3YYOG.js";import{b as f}from"./chunk-Z5WMKCRJ.js";import{a as n}from"./chunk-P37U34EQ.js";import{createHeadlessForm as a,modify as u}from"@remoteoss/remote-json-schema-form-kit";var c=n((e,o,t)=>{if(t&&t.jsfModify){let{required:i,allOf:r,...s}=t.jsfModify,{schema:l}=u(e,s);e=l,i&&(e.required=[...l.required,...i]),r&&(e.allOf=[...l.allOf||[],...r])}let d={};o&&(d=f(e.properties||{},"money").reduce((r,s)=>(r[s]=m(o[s]),r),{}));let F=JSON.parse(JSON.stringify({...o,...d}));return{meta:{"x-jsf-fieldsets":e["x-jsf-fieldsets"]},...a(e,{initialValues:F})}},"createHeadlessForm");export{c as a};
2
- //# sourceMappingURL=chunk-EUSCQL4H.js.map
1
+ import{c as m}from"./chunk-I3DVKJCW.js";import{b as f}from"./chunk-Z5WMKCRJ.js";import{a as n}from"./chunk-P37U34EQ.js";import{createHeadlessForm as a,modify as u}from"@remoteoss/remote-json-schema-form-kit";var c=n((e,o,t)=>{if(t&&t.jsfModify){let{required:i,allOf:r,...s}=t.jsfModify,{schema:l}=u(e,s);e=l,i&&(e.required=[...l.required,...i]),r&&(e.allOf=[...l.allOf||[],...r])}let d={};o&&(d=f(e.properties||{},"money").reduce((r,s)=>(r[s]=m(o[s]),r),{}));let F=JSON.parse(JSON.stringify({...o,...d}));return{meta:{"x-jsf-fieldsets":e["x-jsf-fieldsets"]},...a(e,{initialValues:F})}},"createHeadlessForm");export{c as a};
2
+ //# sourceMappingURL=chunk-EUQH4FU4.js.map
@@ -1,2 +1,2 @@
1
- import{a as m}from"./chunk-QJ2XK63I.js";import{a as r}from"./chunk-LSW66EIR.js";import{a}from"./chunk-U6LRMWRI.js";import{a as c}from"./chunk-POKLRB3M.js";import{a as e}from"./chunk-D5AR26AI.js";import{a as o}from"./chunk-TVZAFTPT.js";import{a as n}from"./chunk-P37U34EQ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
2
- //# sourceMappingURL=chunk-BLGKOMH3.js.map
1
+ import{a as m}from"./chunk-XJECSJYB.js";import{a as r}from"./chunk-W5USIIXL.js";import{a}from"./chunk-U6LRMWRI.js";import{a as c}from"./chunk-E6B4ZECN.js";import{a as e}from"./chunk-D5AR26AI.js";import{a as o}from"./chunk-TVZAFTPT.js";import{a as n}from"./chunk-P37U34EQ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
2
+ //# sourceMappingURL=chunk-HGNICQUY.js.map
@@ -1,2 +1,2 @@
1
- import{f as j}from"./chunk-STF3NTPS.js";import{a as q}from"./chunk-WVJDCDGZ.js";import{a as P}from"./chunk-O6H66UM2.js";import{a as p}from"./chunk-EUSCQL4H.js";import{A as _,E as F,G as S,H as w,J as v,O as E,T as O,g as f,i as y,j as d,n as h,o as b,w as g,x as C}from"./chunk-WQ4H5V7U.js";import{d as i}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMutation as c,useQuery as m}from"@tanstack/react-query";var H=n(e=>{let{client:r}=i();return m({queryKey:["employment",e],retry:!1,enabled:!!e,select:n(({data:t})=>t?.data.employment,"select"),queryFn:n(async()=>{let t=await S({client:r,headers:{Authorization:""},path:{employment_id:e}});if(t.error||!t.data)throw new Error("Failed to fetch employment data");return t},"queryFn")})},"useEmployment"),L=n(e=>{let{client:r}=i();return m({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:n(async()=>{let t=await C({client:r,headers:{Authorization:""},path:{company_id:e}});if(t.error||!t.data)throw new Error("Failed to fetch employment data");return t},"queryFn"),select:n(({data:t})=>t.data.company,"select")})},"useCompany"),G=n(e=>{let{client:r}=i();return m({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:n(async()=>h({client:r,path:{employment_id:e}}).then(t=>{if(t.error||!t.data)throw new Error("Failed to fetch benefit offers data");return t}),"queryFn"),select:n(({data:t})=>t?.data?.reduce((s,o)=>({...s,[o.benefit_group.slug]:{value:o.benefit_tier?.slug??"no",...o.benefit_group?.filter?.slug?{filter:o.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),I=n(()=>{let{client:e}=i();return c({mutationFn:n(r=>O({client:e,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),X=n(()=>{let{client:e}=i();return c({mutationFn:n(r=>g({client:e,body:r}),"mutationFn")})},"useCreateReserveInvoice"),Y=n(({countryCode:e,form:r,fieldValues:t,options:s,query:o={},jsonSchemaVersion:a})=>{let{client:l}=i(),x=a?{json_schema_version:a}:{};return m({queryKey:["onboarding-json-schema-form",e,r],retry:!1,queryFn:n(async()=>{let u=await _({client:l,headers:{Authorization:""},path:{country_code:e,form:r},query:{skip_benefits:!0,...o,...x}});if(u.error||!u.data)throw new Error("Failed to fetch onboarding schema");return u},"queryFn"),enabled:s?.queryOptions?.enabled,select:n(({data:u})=>{let R=u?.data||{};return p(R,t,s)},"select")})},"useJSONSchemaForm"),Z=n((e,r,t)=>{let s=t?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:t.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:o}=i();return m({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:n(async()=>{let a=await F({client:o,path:{employment_id:e},query:s});if(a.error||!a.data)throw new Error("Failed to fetch benefit offers schema");return a},"queryFn"),select:n(({data:a})=>{let l=a?.data?.schema||{};return p(l,r,{jsfModify:t?.jsfModify?.benefits})},"select")})},"useBenefitOffersSchema"),$=n(()=>{let{client:e}=i(),r={json_schema_version:1};return c({mutationFn:n(t=>y({client:e,headers:{Authorization:""},body:t,query:{...r}}),"mutationFn")})},"useCreateEmployment"),ee=n((e,r)=>{let{client:t}=i(),s={employment_basic_information_json_schema_version:1,contract_details_json_schema_version:j(r,e)||1};return c({mutationFn:n(({employmentId:o,...a})=>w({client:t,headers:{Authorization:""},body:a,path:{employment_id:o},query:{skip_benefits:!0,...s}}),"mutationFn")})},"useUpdateEmployment"),te=n(e=>{let{client:r}=i();return c({mutationFn:n(({employmentId:t,...s})=>{let o=e?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:e.jsonSchemaVersion.benefit_offers_form_schema}:{};return b({client:r,body:s,path:{employment_id:t},query:{...o}})},"mutationFn")})},"useUpdateBenefitsOffers"),ne=n(e=>{let{client:r}=i(),{data:t,isLoading:s}=m({...P(r,"onboarding-countries"),select:n(a=>a.data?.data?.filter(l=>l.eor_onboarding).map(l=>({label:l.name,value:l.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),o=p(q.data.schema,{},e);if(t){let a=o.fields.find(l=>l.name==="country");a&&(a.options=t)}return{isLoading:s,selectCountryForm:o}},"useCountriesSchemaField"),re=n(({type:e="spread"})=>{let{client:r}=i();return c({mutationFn:n(t=>(e==="no_spread"?f:E)({client:r,body:t}),"mutationFn")})},"useConvertCurrency"),oe=n(()=>{let{client:e}=i();return c({mutationFn:n(({employmentId:r,...t})=>v({client:e,path:{employment_id:r},body:t}),"mutationFn")})},"useUpsertContractEligibility"),se=n((e,r,t=!0)=>{let{client:s}=i();return m({queryKey:["employment-onboarding-reserves-status",e,r],retry:!1,enabled:t&&!!e&&!!r,queryFn:n(async()=>{let o=await d({client:s,headers:{Authorization:""},path:{company_id:e,employment_id:r}});if(o.error||!o.data)throw new Error("Failed to fetch employment onboarding reserves status");return o},"queryFn"),select:n(({data:o})=>o?.data?.status,"select")})},"useEmploymentOnboardingReservesStatus");export{H as a,L as b,G as c,I as d,X as e,Y as f,Z as g,$ as h,ee as i,te as j,ne as k,re as l,oe as m,se as n};
2
- //# sourceMappingURL=chunk-Q3VMPVT3.js.map
1
+ import{f as j}from"./chunk-STF3NTPS.js";import{a as q}from"./chunk-WVJDCDGZ.js";import{a as P}from"./chunk-O6H66UM2.js";import{a as p}from"./chunk-EUQH4FU4.js";import{A as _,E as F,G as S,H as w,J as v,O as E,T as O,g as f,i as y,j as d,n as h,o as b,w as g,x as C}from"./chunk-WQ4H5V7U.js";import{d as i}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMutation as c,useQuery as m}from"@tanstack/react-query";var H=n(e=>{let{client:r}=i();return m({queryKey:["employment",e],retry:!1,enabled:!!e,select:n(({data:t})=>t?.data.employment,"select"),queryFn:n(async()=>{let t=await S({client:r,headers:{Authorization:""},path:{employment_id:e}});if(t.error||!t.data)throw new Error("Failed to fetch employment data");return t},"queryFn")})},"useEmployment"),L=n(e=>{let{client:r}=i();return m({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:n(async()=>{let t=await C({client:r,headers:{Authorization:""},path:{company_id:e}});if(t.error||!t.data)throw new Error("Failed to fetch employment data");return t},"queryFn"),select:n(({data:t})=>t.data.company,"select")})},"useCompany"),G=n(e=>{let{client:r}=i();return m({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:n(async()=>h({client:r,path:{employment_id:e}}).then(t=>{if(t.error||!t.data)throw new Error("Failed to fetch benefit offers data");return t}),"queryFn"),select:n(({data:t})=>t?.data?.reduce((s,o)=>({...s,[o.benefit_group.slug]:{value:o.benefit_tier?.slug??"no",...o.benefit_group?.filter?.slug?{filter:o.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),I=n(()=>{let{client:e}=i();return c({mutationFn:n(r=>O({client:e,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),X=n(()=>{let{client:e}=i();return c({mutationFn:n(r=>g({client:e,body:r}),"mutationFn")})},"useCreateReserveInvoice"),Y=n(({countryCode:e,form:r,fieldValues:t,options:s,query:o={},jsonSchemaVersion:a})=>{let{client:l}=i(),x=a?{json_schema_version:a}:{};return m({queryKey:["onboarding-json-schema-form",e,r],retry:!1,queryFn:n(async()=>{let u=await _({client:l,headers:{Authorization:""},path:{country_code:e,form:r},query:{skip_benefits:!0,...o,...x}});if(u.error||!u.data)throw new Error("Failed to fetch onboarding schema");return u},"queryFn"),enabled:s?.queryOptions?.enabled,select:n(({data:u})=>{let R=u?.data||{};return p(R,t,s)},"select")})},"useJSONSchemaForm"),Z=n((e,r,t)=>{let s=t?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:t.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:o}=i();return m({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:n(async()=>{let a=await F({client:o,path:{employment_id:e},query:s});if(a.error||!a.data)throw new Error("Failed to fetch benefit offers schema");return a},"queryFn"),select:n(({data:a})=>{let l=a?.data?.schema||{};return p(l,r,{jsfModify:t?.jsfModify?.benefits})},"select")})},"useBenefitOffersSchema"),$=n(()=>{let{client:e}=i(),r={json_schema_version:1};return c({mutationFn:n(t=>y({client:e,headers:{Authorization:""},body:t,query:{...r}}),"mutationFn")})},"useCreateEmployment"),ee=n((e,r)=>{let{client:t}=i(),s={employment_basic_information_json_schema_version:1,contract_details_json_schema_version:j(r,e)||1};return c({mutationFn:n(({employmentId:o,...a})=>w({client:t,headers:{Authorization:""},body:a,path:{employment_id:o},query:{skip_benefits:!0,...s}}),"mutationFn")})},"useUpdateEmployment"),te=n(e=>{let{client:r}=i();return c({mutationFn:n(({employmentId:t,...s})=>{let o=e?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:e.jsonSchemaVersion.benefit_offers_form_schema}:{};return b({client:r,body:s,path:{employment_id:t},query:{...o}})},"mutationFn")})},"useUpdateBenefitsOffers"),ne=n(e=>{let{client:r}=i(),{data:t,isLoading:s}=m({...P(r,"onboarding-countries"),select:n(a=>a.data?.data?.filter(l=>l.eor_onboarding).map(l=>({label:l.name,value:l.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),o=p(q.data.schema,{},e);if(t){let a=o.fields.find(l=>l.name==="country");a&&(a.options=t)}return{isLoading:s,selectCountryForm:o}},"useCountriesSchemaField"),re=n(({type:e="spread"})=>{let{client:r}=i();return c({mutationFn:n(t=>(e==="no_spread"?f:E)({client:r,body:t}),"mutationFn")})},"useConvertCurrency"),oe=n(()=>{let{client:e}=i();return c({mutationFn:n(({employmentId:r,...t})=>v({client:e,path:{employment_id:r},body:t}),"mutationFn")})},"useUpsertContractEligibility"),se=n((e,r,t=!0)=>{let{client:s}=i();return m({queryKey:["employment-onboarding-reserves-status",e,r],retry:!1,enabled:t&&!!e&&!!r,queryFn:n(async()=>{let o=await d({client:s,headers:{Authorization:""},path:{company_id:e,employment_id:r}});if(o.error||!o.data)throw new Error("Failed to fetch employment onboarding reserves status");return o},"queryFn"),select:n(({data:o})=>o?.data?.status,"select")})},"useEmploymentOnboardingReservesStatus");export{H as a,L as b,G as c,I as d,X as e,Y as f,Z as g,$ as h,ee as i,te as j,ne as k,re as l,oe as m,se as n};
2
+ //# sourceMappingURL=chunk-HPLRAHY7.js.map