@remoteoss/remote-flows 1.31.0 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/README.md +83 -10
  2. package/dist/{chunk-V67RONRN.js → chunk-2P2OJKD4.js} +2 -2
  3. package/dist/{chunk-RIGP2BKY.js → chunk-3UDWOREZ.js} +2 -2
  4. package/dist/{chunk-QTLMJODK.js → chunk-4QVFKKVN.js} +2 -2
  5. package/dist/{chunk-OV3MNQPL.js → chunk-4RF6I3TT.js} +2 -2
  6. package/dist/{chunk-UQ3H4S26.js → chunk-5X6JMXP6.js} +2 -2
  7. package/dist/{chunk-IRLOG7MR.js → chunk-75MI3G5H.js} +2 -2
  8. package/dist/{chunk-VCM32VB3.js → chunk-77WJNWIC.js} +2 -2
  9. package/dist/{chunk-AUIHRJIX.js → chunk-AZZUFPQM.js} +2 -2
  10. package/dist/{chunk-L4Q4ZT4L.js → chunk-CBPV2QLT.js} +2 -2
  11. package/dist/{chunk-PPJUUGKP.js → chunk-CKJF6K4L.js} +2 -2
  12. package/dist/{chunk-IBUAH6HC.js → chunk-E3WR4SVV.js} +2 -2
  13. package/dist/{chunk-SGQ7FXWO.js → chunk-GCQYAEZT.js} +2 -2
  14. package/dist/chunk-HUAPBLSQ.js +2 -0
  15. package/dist/chunk-HUAPBLSQ.js.map +1 -0
  16. package/dist/chunk-I66TFXX4.js +2 -0
  17. package/dist/chunk-I66TFXX4.js.map +1 -0
  18. package/dist/{chunk-2SS3UU6K.js → chunk-IOVRTUOC.js} +2 -2
  19. package/dist/{chunk-OTNGKS3S.js → chunk-J4ALYQ36.js} +2 -2
  20. package/dist/{chunk-KNIZVHFU.js → chunk-JQHOMFXA.js} +2 -2
  21. package/dist/chunk-K2SHDZBB.js +2 -0
  22. package/dist/{chunk-OVJTJFYF.js.map → chunk-K2SHDZBB.js.map} +1 -1
  23. package/dist/{chunk-N6OHWIQ4.js → chunk-KAHAW4HH.js} +2 -2
  24. package/dist/{chunk-2RWZ2XC5.js → chunk-LANAT75E.js} +2 -2
  25. package/dist/{chunk-4AW3FP2P.js → chunk-LDSS6RYC.js} +2 -2
  26. package/dist/{chunk-ICOGJLAL.js → chunk-PIGJNWPB.js} +2 -2
  27. package/dist/{chunk-EU7WVCHQ.js → chunk-TSWZPJNS.js} +2 -2
  28. package/dist/{chunk-G6R56RS2.js → chunk-WSARYSM5.js} +2 -2
  29. package/dist/{chunk-CZPJWO2R.js → chunk-Y5JFBXNR.js} +2 -2
  30. package/dist/default-components.d.ts +2 -2
  31. package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
  32. package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
  33. package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
  34. package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
  35. package/dist/flows/ContractAmendment/context.d.ts +3 -3
  36. package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
  37. package/dist/flows/ContractAmendment/hooks.js +1 -1
  38. package/dist/flows/ContractAmendment/index.d.ts +3 -3
  39. package/dist/flows/ContractAmendment/index.js +1 -1
  40. package/dist/flows/ContractAmendment/types.d.ts +2 -2
  41. package/dist/flows/ContractAmendment/utils.d.ts +2 -2
  42. package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +5 -5
  43. package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
  44. package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
  45. package/dist/flows/ContractorOnboarding/api.js +1 -1
  46. package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
  47. package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
  48. package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
  49. package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
  50. package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
  51. package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
  52. package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +5 -5
  53. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
  54. package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
  55. package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
  56. package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +3 -3
  57. package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
  58. package/dist/flows/ContractorOnboarding/context.d.ts +6 -5
  59. package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
  60. package/dist/flows/ContractorOnboarding/hooks.js +1 -1
  61. package/dist/flows/ContractorOnboarding/index.d.ts +5 -5
  62. package/dist/flows/ContractorOnboarding/index.js +1 -1
  63. package/dist/flows/ContractorOnboarding/jsfModify.d.ts +5 -5
  64. package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
  65. package/dist/flows/ContractorOnboarding/utils.d.ts +4 -4
  66. package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
  67. package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
  68. package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
  69. package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
  70. package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
  71. package/dist/flows/CostCalculator/api.d.ts +2 -2
  72. package/dist/flows/CostCalculator/api.js +1 -1
  73. package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
  74. package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
  75. package/dist/flows/CostCalculator/context.d.ts +3 -3
  76. package/dist/flows/CostCalculator/hooks.d.ts +3 -3
  77. package/dist/flows/CostCalculator/hooks.js +1 -1
  78. package/dist/flows/CostCalculator/index.d.ts +3 -3
  79. package/dist/flows/CostCalculator/index.js +1 -1
  80. package/dist/flows/CostCalculator/types.d.ts +2 -2
  81. package/dist/flows/CostCalculator/utils.d.ts +3 -3
  82. package/dist/flows/CostCalculator/utils.js +1 -1
  83. package/dist/flows/CreateCompany/CreateCompany.d.ts +4 -4
  84. package/dist/flows/CreateCompany/CreateCompany.js +1 -1
  85. package/dist/flows/CreateCompany/api.d.ts +2 -2
  86. package/dist/flows/CreateCompany/api.js +1 -1
  87. package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
  88. package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
  89. package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
  90. package/dist/flows/CreateCompany/context.d.ts +4 -4
  91. package/dist/flows/CreateCompany/hooks.d.ts +4 -4
  92. package/dist/flows/CreateCompany/hooks.js +1 -1
  93. package/dist/flows/CreateCompany/index.d.ts +4 -4
  94. package/dist/flows/CreateCompany/index.js +1 -1
  95. package/dist/flows/CreateCompany/types.d.ts +4 -4
  96. package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
  97. package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
  98. package/dist/flows/Onboarding/api.d.ts +4 -4
  99. package/dist/flows/Onboarding/api.js +1 -1
  100. package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
  101. package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
  102. package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
  103. package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
  104. package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
  105. package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +4 -4
  106. package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
  107. package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
  108. package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
  109. package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
  110. package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
  111. package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
  112. package/dist/flows/Onboarding/context.d.ts +5 -4
  113. package/dist/flows/Onboarding/hooks.d.ts +4 -4
  114. package/dist/flows/Onboarding/hooks.js +1 -1
  115. package/dist/flows/Onboarding/index.d.ts +4 -4
  116. package/dist/flows/Onboarding/index.js +1 -1
  117. package/dist/flows/Onboarding/types.d.ts +4 -4
  118. package/dist/flows/Onboarding/utils.d.ts +4 -4
  119. package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
  120. package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
  121. package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
  122. package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
  123. package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
  124. package/dist/flows/Termination/TerminationFlow.js +1 -1
  125. package/dist/flows/Termination/TerminationForm.d.ts +4 -4
  126. package/dist/flows/Termination/api.d.ts +5 -5
  127. package/dist/flows/Termination/api.js +1 -1
  128. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
  129. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
  130. package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
  131. package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
  132. package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
  133. package/dist/flows/Termination/context.d.ts +4 -4
  134. package/dist/flows/Termination/hooks.d.ts +4 -4
  135. package/dist/flows/Termination/hooks.js +1 -1
  136. package/dist/flows/Termination/index.d.ts +6 -6
  137. package/dist/flows/Termination/index.js +1 -1
  138. package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
  139. package/dist/flows/Termination/types.d.ts +4 -4
  140. package/dist/flows/Termination/utils.d.ts +4 -4
  141. package/dist/flows/types.d.ts +3 -2
  142. package/dist/flows/utils.d.ts +2 -2
  143. package/dist/index.css +1 -1
  144. package/dist/index.css.map +1 -1
  145. package/dist/index.d.ts +12 -12
  146. package/dist/index.js +2 -2
  147. package/dist/index.js.map +1 -1
  148. package/dist/internals.d.ts +3 -3
  149. package/dist/internals.js +1 -1
  150. package/dist/{mutations-Dy0AcOjz.d.ts → mutations-DTK4GE8r.d.ts} +1 -1
  151. package/dist/{remoteFlows-CnHcNfc4.d.ts → remoteFlows-n8r_cW0z.d.ts} +44 -1
  152. package/dist/styles.css +1 -1
  153. package/dist/styles.css.map +1 -1
  154. package/dist/{types-BOg9OXFy.d.ts → types-BD0b8UuQ.d.ts} +2 -2
  155. package/dist/{types-BIjH8PeJ.d.ts → types-BJ9gyvly.d.ts} +5 -4
  156. package/dist/{types-DWheQ1pi.d.ts → types-BY3BtHb6.d.ts} +1 -1
  157. package/dist/{types-BTj_IIC_.d.ts → types-BiMfLZYw.d.ts} +4 -3
  158. package/dist/{types-BCw6Enmi.d.ts → types-Cd5_2FHQ.d.ts} +3 -3
  159. package/dist/{types.gen-CDCDRemY.d.ts → types.gen-DPZBntYq.d.ts} +1 -1
  160. package/dist/{utils-ythMeVS9.d.ts → utils-C5lwjSxr.d.ts} +3 -2
  161. package/package.json +3 -1
  162. package/dist/chunk-B7YD67K7.js +0 -2
  163. package/dist/chunk-B7YD67K7.js.map +0 -1
  164. package/dist/chunk-LVWRZFEL.js +0 -2
  165. package/dist/chunk-LVWRZFEL.js.map +0 -1
  166. package/dist/chunk-OVJTJFYF.js +0 -2
  167. /package/dist/{chunk-V67RONRN.js.map → chunk-2P2OJKD4.js.map} +0 -0
  168. /package/dist/{chunk-RIGP2BKY.js.map → chunk-3UDWOREZ.js.map} +0 -0
  169. /package/dist/{chunk-QTLMJODK.js.map → chunk-4QVFKKVN.js.map} +0 -0
  170. /package/dist/{chunk-OV3MNQPL.js.map → chunk-4RF6I3TT.js.map} +0 -0
  171. /package/dist/{chunk-UQ3H4S26.js.map → chunk-5X6JMXP6.js.map} +0 -0
  172. /package/dist/{chunk-IRLOG7MR.js.map → chunk-75MI3G5H.js.map} +0 -0
  173. /package/dist/{chunk-VCM32VB3.js.map → chunk-77WJNWIC.js.map} +0 -0
  174. /package/dist/{chunk-AUIHRJIX.js.map → chunk-AZZUFPQM.js.map} +0 -0
  175. /package/dist/{chunk-L4Q4ZT4L.js.map → chunk-CBPV2QLT.js.map} +0 -0
  176. /package/dist/{chunk-PPJUUGKP.js.map → chunk-CKJF6K4L.js.map} +0 -0
  177. /package/dist/{chunk-IBUAH6HC.js.map → chunk-E3WR4SVV.js.map} +0 -0
  178. /package/dist/{chunk-SGQ7FXWO.js.map → chunk-GCQYAEZT.js.map} +0 -0
  179. /package/dist/{chunk-2SS3UU6K.js.map → chunk-IOVRTUOC.js.map} +0 -0
  180. /package/dist/{chunk-OTNGKS3S.js.map → chunk-J4ALYQ36.js.map} +0 -0
  181. /package/dist/{chunk-KNIZVHFU.js.map → chunk-JQHOMFXA.js.map} +0 -0
  182. /package/dist/{chunk-N6OHWIQ4.js.map → chunk-KAHAW4HH.js.map} +0 -0
  183. /package/dist/{chunk-2RWZ2XC5.js.map → chunk-LANAT75E.js.map} +0 -0
  184. /package/dist/{chunk-4AW3FP2P.js.map → chunk-LDSS6RYC.js.map} +0 -0
  185. /package/dist/{chunk-ICOGJLAL.js.map → chunk-PIGJNWPB.js.map} +0 -0
  186. /package/dist/{chunk-EU7WVCHQ.js.map → chunk-TSWZPJNS.js.map} +0 -0
  187. /package/dist/{chunk-G6R56RS2.js.map → chunk-WSARYSM5.js.map} +0 -0
  188. /package/dist/{chunk-CZPJWO2R.js.map → chunk-Y5JFBXNR.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{a as Wt,b as ee,c as ne,d as ie,e as oe,f as re,g as ae,i as se,j as ce,k as le,l as ue,m as de,n as pe,o as me,p as fe,q as ye,r as _e,s as ge,t as be,u as Se}from"./chunk-4QVFKKVN.js";import{a as Ce,b as we,c as he}from"./chunk-7GDMMNJT.js";import{a as zt,b as Xt,f as Yt,g as Zt,h as te}from"./chunk-AHRG5QCS.js";import{a as $,b as it,c as _,d as Ht,g as $t}from"./chunk-PX5PE6GX.js";import{a as Kt}from"./chunk-RWXZG4KO.js";import{f as Jt,h as Nt,i as Ut}from"./chunk-TSWZPJNS.js";import{M as Qt}from"./chunk-TNQKP2XT.js";import{a as w,c as jt,g as y,h as R,t as V,u as D}from"./chunk-RZCU2MT3.js";import{a as Gt}from"./chunk-TSPDJUGG.js";import{e as Bt}from"./chunk-H2O4CVKF.js";import{a as u}from"./chunk-P37U34EQ.js";import{useEffect as k,useMemo as a,useRef as Pe,useState as q}from"react";import Ee from"lodash.omit";import{useQuery as wn}from"@tanstack/react-query";var hn=u(()=>{let{client:L}=Bt(),{data:T}=ee(),l=ne(T)?T?.company?.id??"":"";return wn({queryKey:["legal-entities",l],queryFn:u(()=>Qt({client:L,path:{company_id:l},query:{page_size:100}}),"queryFn"),select:u(W=>W.data?.data?.legal_entities,"select"),enabled:!!l})},"useLegalEntities"),ve=u(()=>{let{data:L}=hn();return L?.find(T=>T.is_default)},"useDefaultLegalEntity");var vn={select_country:null,basic_information:"employment_basic_information",contract_details:null,eligibility_questionnaire:null,pricing_plan:null,contract_preview:null,review:null},Pn={employment_basic_information:"basic_information"},Yn=u(({countryCode:L,externalId:T,employmentId:l,skipSteps:W,options:p,initialValues:d})=>{let Fe=p?.excludeProducts||[],ft=Pe(p?.onContractReviewed);k(()=>{ft.current=p?.onContractReviewed},[p?.onContractReviewed]);let[c,yt]=q(L||null),[o,Me]=q(l),[g,_t]=q(void 0),z=Pe({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{},eligibility_questionnaire:{}}),[X,Ve]=q(void 0),[gt,Y]=q(!1),[bt,Oe]=q(!0),[ot,St]=q(null),{steps:Ie,stepsArray:Re}=a(()=>zt({includeSelectCountry:!W?.includes("select_country"),includeEligibilityQuestionnaire:gt,includeContractPreview:bt}),[gt,bt,W]),{fieldValues:s,stepState:e,setFieldValues:Ct,previousStep:De,nextStep:ke,goToStep:x,setStepValues:wt}=Gt(Ie);k(()=>{ot&&(x(ot),St(null))},[ot,x]);let{data:r,isLoading:qe,refetch:ht}=Kt({employmentId:o,queryParams:{exclude_files:!0}}),Te=ve(),{status:A}=r||{},h=A&&Yt.includes(A),Ae=A&&!Zt.includes(A),Le=a(()=>A==="invited"?"invited":"not_invited",[A]),vt=Nt(),Pt=Ut(c,p),rt=ce(),Et=Wt(),{mutateAsync:Ft}=de(rt,Et,s),Mt=ye(),Vt=_e(),{mutateAsyncOrThrow:xe}=w(Pt),Ot=oe(),It=se(),Rt=ge(),{mutateAsyncOrThrow:je}=w(vt),{mutateAsyncOrThrow:Be}=w(rt),{mutateAsyncOrThrow:Qe}=w(Ot),{mutateAsyncOrThrow:Dt}=w(It),{mutateAsyncOrThrow:Je}=w(Mt),{mutateAsyncOrThrow:kt}=w(Vt),{mutateAsyncOrThrow:Ne}=w(Rt);l&&r?.country?.code&&!c&&yt(r.country.code);let{selectCountryForm:j,isLoading:Ue,countries:qt}=be({jsfModify:p?.jsfModify?.select_country}),at=a(()=>qt?.find(t=>t.value===c),[qt,c]),Ke=a(()=>at?.label,[at]),Ge=e.currentStep.name==="pricing_plan"||!!l&&h,{form:v,isLoading:He,contractorSubscriptions:Z,refetch:st,isEligibilityQuestionnaireBlocked:B}=ue(o,at,{jsonSchemaVersion:p?.jsonSchemaVersion,queryOptions:{enabled:Ge},excludeProducts:Fe,jsfModify:p?.jsfModify?.pricing_plan}),O=a(()=>!!Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.submitted_at,[Z]);k(()=>{if(O){Y(!1);return}else Y(X===_)},[O,X]),k(()=>{let t=r?.contractor_type==="cor";Oe(!t)},[r?.contractor_type]);let tt=a(()=>Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.responses,[Z]),$e=vn[e.currentStep.name]||"contractor_basic_information",We=Pn[$e],ze=r?.[We]||{},Xe=u(({form:t,options:i={},query:f={}})=>{let C=Object.keys(s).length>0?{...d,...e.values?.[e.currentStep.name],...s}:{...d,...ze};return Jt({countryCode:c,form:t,fieldValues:C,query:f,options:{...i,queryOptions:{enabled:i.queryOptions?.enabled??!0}}})},"useJSONSchema"),Ye=!!(c&&(e.currentStep.name==="basic_information"||l)),Ze=!!(c==="GBR"&&l&&e.currentStep.name==="basic_information"),{data:Q,isLoading:tn}=pe(l,{enabled:Ze}),{data:et,isLoading:en}=me(o,{enabled:!!o});k(()=>{et&&et.length>0&&!g&&_t(et[0].id)},[et,g]);let{data:b,isLoading:nn}=Xe({form:"contractor_basic_information",options:{jsfModify:we(c,Ke,p),queryOptions:{enabled:Ye}}}),on=a(()=>Xt(r?.basic_information?.provisional_start_date,s?.service_duration?.provisional_start_date),[r?.basic_information?.provisional_start_date,s?.service_duration?.provisional_start_date]),m=a(()=>{let t={standard:$,plus:it,cor:_};if(s.subscription)return s.subscription;let i=e.values?.pricing_plan?.subscription;return i&&!B?i:O&&!B?_:B&&O?$:t[r?.contractor_type]||$},[s,e.values,O,r?.contractor_type,B]);k(()=>{m&&m!==X&&Ve(m)},[m,X]);let rn=a(()=>({...tt,...d,...e.values?.eligibility_questionnaire,...s}),[tt,d,e.values?.eligibility_questionnaire,s]),an=a(()=>m===_&&e.currentStep.name==="eligibility_questionnaire"||!!l&&h&&m===_,[m,e.currentStep.name,l,h]),{data:P,isLoading:sn}=fe({options:{queryOptions:{enabled:an},jsfModify:p?.jsfModify?.eligibility_questionnaire},fieldValues:rn}),cn=!!(c&&e.currentStep.name==="contract_details"||h),{data:S,isLoading:ln}=Se({countryCode:c,fieldValues:s,employmentId:o,options:{queryOptions:{enabled:cn},jsfModify:Ce(p?.jsfModify?.contract_details,on,m,s,m===_)}}),un=a(()=>e.currentStep.name==="contract_preview"||!!l&&h,[e.currentStep.name,l,h]),{data:E}=ie({fieldValues:s,options:{queryOptions:{enabled:un},jsfModify:he(p,s)}}),{data:ct,isLoading:dn,refetch:pn}=re({employmentId:o,contractDocumentId:g,options:{queryOptions:{enabled:!!g}}}),{hasCompanySignedContract:mn}=ae({employmentId:o,contractDocumentId:g,options:{queryOptions:{enabled:!!g}}}),n=a(()=>({select_country:j?.fields||[],basic_information:b?.fields||[],pricing_plan:v?.fields||[],eligibility_questionnaire:P?.fields||[],contract_details:S?.fields||[],contract_preview:E?.fields||[],review:[]}),[j?.fields,b?.fields,v?.fields,S?.fields,E?.fields,P?.fields]),fn={select_country:null,basic_information:b?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:S?.meta["x-jsf-fieldsets"],eligibility_questionnaire:null,contract_preview:null,review:null},yn={select_country:j?.meta?.["x-jsf-presentation"],basic_information:b?.meta?.["x-jsf-presentation"],pricing_plan:v?.meta?.["x-jsf-presentation"],eligibility_questionnaire:P?.meta?.["x-jsf-presentation"],contract_details:S?.meta?.["x-jsf-presentation"],contract_preview:E?.meta?.["x-jsf-presentation"],review:null},{country:_n,basic_information:nt={},contract_details:Tt={}}=r||{},At=_n?.code,J=a(()=>R(n.select_country,{country:c||At||""}),[n.select_country,c,At]),lt=a(()=>Q?.content?jt(Q.content,Q.name):null,[Q?.content,Q?.name]),N=a(()=>{let t={...d,...nt,ir35:r?.contract_details?.ir_35,nationality_status:r?.contract_details?.nationality,...lt&&{ir35_sds_file:[lt]}};return R(n.basic_information,t)},[d,nt,r?.contract_details?.ir_35,r?.contract_details?.nationality,lt,n.basic_information]),U=a(()=>{let i={...{service_duration:{provisional_start_date:nt.provisional_start_date}},...d,...Tt};return R(n.contract_details,i)},[n.contract_details,Tt,d,nt]),K=a(()=>{let t=ct?.contract_document?.signatories?.find(f=>f.type==="company"),i={...d,signature:t?.signature};return R(n.contract_preview,i)},[n.contract_preview,d,ct]),G=a(()=>{let i={...{subscription:m},...d};return R(n.pricing_plan,i)},[n.pricing_plan,d,m]),H=a(()=>{let t={...d,...tt};return R(n.eligibility_questionnaire,t)},[n.eligibility_questionnaire,d,tt]),gn=a(()=>({select_country:J,basic_information:N,contract_details:U,contract_preview:K,pricing_plan:G,eligibility_questionnaire:H}),[J,N,U,K,G,H]),ut=!!(l&&h&&e.currentStep.name!=="review"),dt=Ue||nn||qe||ln||He||dn||tn||en||sn,Lt=a(()=>{let i=r?.contractor_type==="cor"||n.contract_preview.length>0;return!!(ut&&!dt&&g&&n.basic_information.length>0&&n.contract_details.length>0&&i)},[ut,dt,g,n.basic_information.length,n.contract_details.length,n.contract_preview.length,r?.contractor_type]);k(()=>{Lt&&(z.current={select_country:V(J,n.select_country,{skipMoneyConversion:!0}),basic_information:V(N,n.basic_information,{skipMoneyConversion:!0}),contract_details:V(U,n.contract_details,{skipMoneyConversion:!0}),contract_preview:V(K,n.contract_preview,{skipMoneyConversion:!0}),pricing_plan:V(G,n.pricing_plan,{skipMoneyConversion:!0}),eligibility_questionnaire:V(H,n.eligibility_questionnaire,{skipMoneyConversion:!0})},wt({select_country:J,basic_information:N,contract_details:U,contract_preview:K,pricing_plan:G,eligibility_questionnaire:H,review:{}}),x("review"))},[Lt,x,J,N,U,wt,n.select_country,n.basic_information,n.contract_details,n.pricing_plan,G,n.contract_preview,K,n.eligibility_questionnaire,H]);let bn=u(t=>{x(t)},"goTo"),xt=u(async t=>j&&e.currentStep.name==="select_country"?t:b&&e.currentStep.name==="basic_information"?await y(t,b?.fields,{isPartialValidation:!1}):S&&e.currentStep.name==="contract_details"?await y(t,S?.fields,{isPartialValidation:!1}):E&&e.currentStep.name==="contract_preview"?await y(t,E?.fields,{isPartialValidation:!1}):v&&e.currentStep.name==="pricing_plan"?await y(t,v?.fields,{isPartialValidation:!1}):P&&e.currentStep.name==="eligibility_questionnaire"?await y(t,P?.fields,{isPartialValidation:!1}):{},"parseFormValues"),Sn=u(t=>{let i=t?.rawError?.error?.errors?.services_and_deliverables;return i?.source===$t?{error:i.error,source:i.source,skippable:i.skippable}:null},"extractAiValidationError");async function Cn(t){let i=e.currentStep.name,f=await xt(t);switch(i in z.current&&(z.current[i]=V(f,n[i])),e.currentStep.name){case"select_country":return yt(f.country),Promise.resolve({data:{countryCode:f.country}});case"basic_information":{let F=!o&&c,C=o&&c&&r?.country&&r?.country.code!==c;if(F||C){let I={basic_information:Ee(f,"nationality_status","ir35","ir35_sds_file"),type:"contractor",country_code:c,external_id:T},pt=await je(I),mt=pt?.data?.employment?.id;if(!mt)throw D("Employment ID not found");return await Ft({employmentId:mt}),Me(mt),pt}else if(o){let M=Ee(f,"nationality_status","ir35","ir35_sds_file");return await Ft({employmentId:o}),xe({employmentId:o,basic_information:M})}return}case"contract_details":{let F=s.services_and_deliverables_error_skippable===!0,C={contract_document:f,skip_ai_checks:F};try{let M=await Be({employmentId:o,payload:C}),I=M?.data?.contract_document?.id;if(!I)throw D("Contract document ID not found");return _t(I),M}catch(M){let I=Sn(M);throw I&&Ct({...t,services_and_deliverables_ai_warning:te(m===_),services_and_deliverables_error_skippable:I.skippable}),M}}case"contract_preview":{if(mn)return Promise.resolve({data:{contract_document:{id:g}}});let F=await Qe({employmentId:o,contractDocumentId:g,payload:{signature:f.signature}});return await pn(),F}case"pricing_plan":{if(B&&[_,it].includes(t.subscription))throw D(`This individual is not eligible for ${le[t.subscription]}.`);if(t.subscription===Ht)return Promise.resolve({data:{subscription:t.subscription}});if(O&&t.subscription!==_)try{await Ne({employmentId:o}),await st()}catch(C){if(C?.response?.status!==404)throw C;await st()}if(t.subscription==$)return Dt({employmentId:o,payload:{operation:"downgrade"}});if(t.subscription==it)return Dt({employmentId:o,payload:{operation:"upgrade"}});if(t.subscription==_)return O&&r?.contractor_type!=="cor"?kt({employmentId:o}):Promise.resolve({data:{subscription:t.subscription}});throw D("invalid selection")}case"eligibility_questionnaire":try{if((await Je({employmentId:o,payload:f}))?.data?.is_blocking)throw Y(!1),St("pricing_plan"),D("This individual is not eligible for Contractor of Record.");return await kt({employmentId:o})}finally{await st()}default:throw D("Invalid step state")}}return u(Cn,"onSubmit"),{isLoading:dt||ut,fieldValues:s,stepState:e,checkFieldUpdates:Ct,markContractAsReviewed:u(()=>{ft.current?.()},"markContractAsReviewed"),back:De,next:u(()=>{o&&ht(),ke()},"handleNextStep"),goTo:bn,onSubmit:Cn,fields:n[e.currentStep.name],meta:{fields:z.current,fieldsets:fn[e.currentStep.name],presentation:yn[e.currentStep.name]},parseFormValues:xt,canSkipAiValidation:s.services_and_deliverables_error_skippable===!0,handleValidation:u(async t=>{if(e.currentStep.name==="select_country")return j.handleValidation(t);if(b&&e.currentStep.name==="basic_information"){let i=await y(t,b?.fields,{isPartialValidation:!1});return b?.handleValidation(i)}if(S&&e.currentStep.name==="contract_details"){let i=await y(t,S?.fields,{isPartialValidation:!1});return S?.handleValidation(i)}if(E&&e.currentStep.name==="contract_preview"){let i=await y(t,E?.fields,{isPartialValidation:!0});return E?.handleValidation(i)}if(v&&e.currentStep.name==="pricing_plan"){let i=await y(t,v?.fields,{isPartialValidation:!1});return v?.handleValidation(i)}if(P&&e.currentStep.name==="eligibility_questionnaire"){let i=await y(t,P?.fields,{isPartialValidation:!1});return P?.handleValidation(i)}return null},"handleValidation"),initialValues:gn,employmentId:o,refetchEmployment:ht,isSubmitting:vt.isPending||Pt.isPending||rt.isPending||Ot.isPending||It.isPending||Et.isPending||Mt.isPending||Vt.isPending||Rt.isPending,documentPreviewPdf:ct,canInvite:Ae,isEmploymentReadOnly:h,invitedStatus:Le,employment:r,defaultLegalEntity:Te,steps:Re}},"useContractorOnboarding");export{Yn as a};
2
+ //# sourceMappingURL=chunk-I66TFXX4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/flows/ContractorOnboarding/hooks.tsx","../src/common/api/legal-entities.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\nimport omit from 'lodash.omit';\nimport { $TSFixMe, JSFFields } from '@/src/types/remoteFlows';\nimport {\n CreateContractDocument,\n Employment,\n EmploymentCreateParams,\n} from '@/src/client/types.gen';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n useCreateContractorContractDocument,\n useGetContractDocumentSignatureSchema,\n usePostManageContractorSubscriptions,\n useContractorSubscriptionSchemaField,\n useGetShowContractDocument,\n useSignContractDocument,\n useUpdateUKandSaudiFields,\n useGetIR35File,\n useGetContractDocuments,\n useGetEligibilityQuestionnaire,\n usePostCreateEligibilityQuestionnaire,\n usePostManageContractorCorSubscription,\n useDeleteContractorCorSubscription,\n useCountriesSchemaField,\n useContractorOnboardingDetailsSchemaWithCurrencies,\n CONTRACT_PRODUCT_TITLES,\n useHasCompanySignedContract,\n} from '@/src/flows/ContractorOnboarding/api';\nimport {\n ContractorOnboardingFlowProps,\n ContractorOnboardingHookOptions,\n} from '@/src/flows/ContractorOnboarding/types';\nimport {\n buildSteps,\n calculateProvisionalStartDateDescription,\n reviewStepAllowedEmploymentStatus,\n disabledInviteButtonEmploymentStatus,\n StepKeys,\n} from '@/src/flows/ContractorOnboarding/utils';\nimport {\n useCreateEmployment,\n useJSONSchemaForm,\n useUpdateEmployment,\n} from '@/src/flows/Onboarding/api';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { useStepState } from '@/src/flows/useStepState';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { createStructuredError, prettifyFormValues } from '@/src/lib/utils';\nimport { JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport {\n contractorStandardProductIdentifier,\n contractorPlusProductIdentifier,\n corProductIdentifier,\n eorProductIdentifier,\n REMOTE_AI_ERROR_SOURCE,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport {\n buildBasicInformationJsfModify,\n buildContractDetailsJsfModify,\n buildContractPreviewJsfModify,\n} from '@/src/flows/ContractorOnboarding/jsfModify';\nimport { transformAiErrorResponse } from '@/src/flows/ContractorOnboarding/utils';\nimport { AiValidationError } from '@/src/flows/ContractorOnboarding/types';\nimport { useUploadFile } from '@/src/common/api/files';\nimport { dataURLtoFile } from '@/src/lib/files';\nimport { useEmploymentQuery } from '@/src/common/api/employment';\nimport { useDefaultLegalEntity } from '@/src/common/api/legal-entities';\n\ntype useContractorOnboardingProps = Omit<\n ContractorOnboardingFlowProps,\n 'render' | 'options'\n> & {\n options: ContractorOnboardingHookOptions;\n};\n\nconst stepToFormSchemaMap: Record<StepKeys, JSONSchemaFormType | null> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_details: null,\n eligibility_questionnaire: null,\n pricing_plan: null,\n contract_preview: null,\n review: null,\n};\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n};\n\nexport const useContractorOnboarding = ({\n countryCode,\n externalId,\n employmentId,\n skipSteps,\n options,\n initialValues: onboardingInitialValues,\n}: useContractorOnboardingProps) => {\n const excludeProducts = options?.excludeProducts || [];\n\n const onContractReviewedRef = useRef(options?.onContractReviewed);\n\n useEffect(() => {\n onContractReviewedRef.current = options?.onContractReviewed;\n }, [options?.onContractReviewed]);\n\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalContractDocumentId, setInternalContractDocumentId] = useState<\n string | undefined\n >(undefined);\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n contract_preview: Meta;\n pricing_plan: Meta;\n eligibility_questionnaire: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n contract_preview: {},\n pricing_plan: {},\n eligibility_questionnaire: {},\n });\n\n const [selectedProduct, setSelectedProduct] = useState<string | undefined>(\n undefined,\n );\n\n const [includeEligibilityQuestionnaire, setIncludeEligibilityQuestionnaire] =\n useState<boolean>(false);\n\n const [includeContractPreview, setIncludeContractPreview] =\n useState<boolean>(true);\n\n const [pendingNavigationStep, setPendingNavigationStep] =\n useState<StepKeys | null>(null);\n\n const { steps, stepsArray } = useMemo(\n () =>\n buildSteps({\n includeSelectCountry: !skipSteps?.includes('select_country'),\n includeEligibilityQuestionnaire: includeEligibilityQuestionnaire,\n includeContractPreview: includeContractPreview,\n }),\n [includeEligibilityQuestionnaire, includeContractPreview, skipSteps],\n );\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(steps);\n\n useEffect(() => {\n if (pendingNavigationStep) {\n // Now steps have been updated\n goToStep(pendingNavigationStep);\n setPendingNavigationStep(null);\n }\n }, [pendingNavigationStep, goToStep]);\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmploymentQuery({\n employmentId: internalEmploymentId as string,\n queryParams: { exclude_files: true },\n });\n\n const defaultLegalEntity = useDefaultLegalEntity();\n\n const { status: employmentStatus } = employment || {};\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const invitedStatus: 'invited' | 'not_invited' = useMemo(() => {\n const isInvited = employmentStatus === 'invited';\n\n return isInvited ? 'invited' : 'not_invited';\n }, [employmentStatus]);\n\n const createEmploymentMutation = useCreateEmployment();\n const updateEmploymentMutation = useUpdateEmployment(\n internalCountryCode as string,\n options,\n );\n const createContractorContractDocumentMutation =\n useCreateContractorContractDocument();\n const uploadFileMutation = useUploadFile();\n const { mutateAsync: updateUKandSaudiFieldsMutation } =\n useUpdateUKandSaudiFields(\n createContractorContractDocumentMutation,\n uploadFileMutation,\n fieldValues,\n );\n const createEligibilityQuestionnaireMutation =\n usePostCreateEligibilityQuestionnaire();\n const manageContractorCorSubscriptionMutation =\n usePostManageContractorCorSubscription();\n\n const { mutateAsyncOrThrow: updateEmploymentMutationAsync } =\n mutationToPromise(updateEmploymentMutation);\n const signContractDocumentMutation = useSignContractDocument();\n const manageContractorSubscriptionMutation =\n usePostManageContractorSubscriptions();\n const deleteContractorCorSubscriptionMutation =\n useDeleteContractorCorSubscription();\n\n const { mutateAsyncOrThrow: createEmploymentMutationAsync } =\n mutationToPromise(createEmploymentMutation);\n\n const { mutateAsyncOrThrow: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n const { mutateAsyncOrThrow: signContractDocumentMutationAsync } =\n mutationToPromise(signContractDocumentMutation);\n\n const { mutateAsyncOrThrow: manageContractorSubscriptionMutationAsync } =\n mutationToPromise(manageContractorSubscriptionMutation);\n\n const { mutateAsyncOrThrow: createEligibilityQuestionnaireMutationAsync } =\n mutationToPromise(createEligibilityQuestionnaireMutation);\n\n const { mutateAsyncOrThrow: manageContractorCorSubscriptionMutationAsync } =\n mutationToPromise(manageContractorCorSubscriptionMutation);\n\n const { mutateAsyncOrThrow: deleteContractorCorSubscriptionMutationAsync } =\n mutationToPromise(deleteContractorCorSubscriptionMutation);\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (employmentId && employment?.country?.code && !internalCountryCode) {\n setInternalCountryCode(employment.country.code);\n }\n\n const {\n selectCountryForm,\n isLoading: isLoadingCountries,\n countries,\n } = useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n });\n\n const selectedCountry = useMemo(() => {\n return countries?.find((country) => country.value === internalCountryCode);\n }, [countries, internalCountryCode]);\n\n const countryName = useMemo(() => {\n return selectedCountry?.label;\n }, [selectedCountry]);\n\n const isPricingPlanEnabled =\n stepState.currentStep.name === 'pricing_plan' ||\n (Boolean(employmentId) && isEmploymentReadOnly);\n\n const {\n form: selectContractorSubscriptionForm,\n isLoading: isLoadingContractorSubscriptions,\n contractorSubscriptions,\n refetch: refetchContractorSubscriptions,\n isEligibilityQuestionnaireBlocked,\n } = useContractorSubscriptionSchemaField(\n internalEmploymentId as string,\n selectedCountry,\n {\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: isPricingPlanEnabled,\n },\n excludeProducts: excludeProducts,\n jsfModify: options?.jsfModify?.pricing_plan,\n },\n );\n\n const hasEligibilityQuestionnaireSubmitted = useMemo(() => {\n return Boolean(\n contractorSubscriptions?.find(\n (subscription) => subscription.product.short_name === 'COR',\n )?.eligibility_questionnaire?.submitted_at,\n );\n }, [contractorSubscriptions]);\n\n useEffect(() => {\n if (hasEligibilityQuestionnaireSubmitted) {\n setIncludeEligibilityQuestionnaire(false);\n return;\n } else if (selectedProduct === corProductIdentifier) {\n setIncludeEligibilityQuestionnaire(true);\n } else {\n setIncludeEligibilityQuestionnaire(false);\n }\n }, [hasEligibilityQuestionnaireSubmitted, selectedProduct]);\n\n useEffect(() => {\n const isCor = employment?.contractor_type === 'cor';\n setIncludeContractPreview(!isCor);\n }, [employment?.contractor_type]);\n\n const eligibilityAnswers = useMemo(() => {\n return contractorSubscriptions?.find(\n (subscription) => subscription.product.short_name === 'COR',\n )?.eligibility_questionnaire?.responses;\n }, [contractorSubscriptions]);\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'contractor_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isIR35FileEnabled = Boolean(\n internalCountryCode === 'GBR' &&\n employmentId &&\n stepState.currentStep.name === 'basic_information',\n );\n\n const { data: ir35File, isLoading: isLoadingIR35File } = useGetIR35File(\n employmentId as string,\n {\n enabled: isIR35FileEnabled,\n },\n );\n\n const { data: contractDocuments, isLoading: isLoadingContractDocuments } =\n useGetContractDocuments(internalEmploymentId as string, {\n enabled: Boolean(internalEmploymentId),\n });\n\n useEffect(() => {\n if (\n contractDocuments &&\n contractDocuments.length > 0 &&\n !internalContractDocumentId\n ) {\n setInternalContractDocumentId(contractDocuments[0].id);\n }\n }, [contractDocuments, internalContractDocumentId]);\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'contractor_basic_information',\n options: {\n jsfModify: buildBasicInformationJsfModify(\n internalCountryCode as string,\n countryName,\n options,\n ),\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n });\n\n const descriptionProvisionalStartDate = useMemo(() => {\n return calculateProvisionalStartDateDescription(\n employment?.basic_information?.provisional_start_date as string,\n fieldValues?.service_duration?.provisional_start_date as string,\n );\n }, [\n employment?.basic_information?.provisional_start_date,\n fieldValues?.service_duration?.provisional_start_date,\n ]);\n\n /**\n * When the user selects COR, the data isn't saved yet in the BE\n * We need to use the internalState to know what has happened\n */\n const selectedPricingPlan = useMemo(() => {\n const subscriptions = {\n standard: contractorStandardProductIdentifier,\n plus: contractorPlusProductIdentifier,\n cor: corProductIdentifier,\n };\n\n // HIGHEST PRIORITY: Current form value (user is actively selecting)\n if (fieldValues.subscription) {\n return fieldValues.subscription;\n }\n\n // SECOND: Previously submitted value in this session\n const subscription = stepState.values?.pricing_plan?.subscription;\n if (subscription && !isEligibilityQuestionnaireBlocked) {\n return subscription;\n }\n\n // THIRD: Backend state (eligibility submitted or employment contractor_type)\n if (\n hasEligibilityQuestionnaireSubmitted &&\n !isEligibilityQuestionnaireBlocked\n ) {\n return corProductIdentifier;\n }\n\n // Fourth: If the eligibility questionnaire is blocked and has been submitted, return the standard product\n if (\n isEligibilityQuestionnaireBlocked &&\n hasEligibilityQuestionnaireSubmitted\n ) {\n return contractorStandardProductIdentifier;\n }\n\n // FALLBACK: Employment contractor_type or default\n return (\n subscriptions[\n employment?.contractor_type as keyof typeof subscriptions\n ] || contractorStandardProductIdentifier\n );\n }, [\n fieldValues,\n stepState.values,\n hasEligibilityQuestionnaireSubmitted,\n employment?.contractor_type,\n isEligibilityQuestionnaireBlocked,\n ]);\n\n useEffect(() => {\n if (selectedPricingPlan && selectedPricingPlan !== selectedProduct) {\n setSelectedProduct(selectedPricingPlan);\n }\n }, [selectedPricingPlan, selectedProduct]);\n\n const eligibilityFields = useMemo(() => {\n return {\n ...eligibilityAnswers,\n ...onboardingInitialValues,\n ...stepState.values?.eligibility_questionnaire,\n ...fieldValues,\n };\n }, [\n eligibilityAnswers,\n onboardingInitialValues,\n stepState.values?.eligibility_questionnaire,\n fieldValues,\n ]);\n\n const isEligibilityQuestionnaireEnabled = useMemo(() => {\n return (\n (selectedPricingPlan === corProductIdentifier &&\n stepState.currentStep.name === 'eligibility_questionnaire') ||\n (Boolean(employmentId) &&\n isEmploymentReadOnly &&\n selectedPricingPlan === corProductIdentifier)\n );\n }, [\n selectedPricingPlan,\n stepState.currentStep.name,\n employmentId,\n isEmploymentReadOnly,\n ]);\n\n const {\n data: eligibilityQuestionnaireForm,\n isLoading: isLoadingEligibilityQuestionnaire,\n } = useGetEligibilityQuestionnaire({\n options: {\n queryOptions: {\n enabled: isEligibilityQuestionnaireEnabled,\n },\n jsfModify: options?.jsfModify?.eligibility_questionnaire,\n },\n fieldValues: eligibilityFields,\n });\n\n const isContractorOnboardingDetailsEnabled = Boolean(\n (internalCountryCode &&\n stepState.currentStep.name === 'contract_details') ||\n isEmploymentReadOnly,\n );\n\n const {\n data: contractorOnboardingDetailsForm,\n isLoading: isLoadingContractorOnboardingDetailsForm,\n } = useContractorOnboardingDetailsSchemaWithCurrencies({\n countryCode: internalCountryCode as string,\n fieldValues: fieldValues,\n employmentId: internalEmploymentId as string,\n options: {\n queryOptions: {\n enabled: isContractorOnboardingDetailsEnabled,\n },\n jsfModify: buildContractDetailsJsfModify(\n options?.jsfModify?.contract_details,\n descriptionProvisionalStartDate,\n selectedPricingPlan,\n fieldValues,\n selectedPricingPlan === corProductIdentifier,\n ),\n },\n });\n\n const isSignatureSchemaEnabled = useMemo(() => {\n return (\n stepState.currentStep.name === 'contract_preview' ||\n (Boolean(employmentId) && isEmploymentReadOnly)\n );\n }, [stepState.currentStep.name, employmentId, isEmploymentReadOnly]);\n\n const { data: signatureSchemaForm } = useGetContractDocumentSignatureSchema({\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isSignatureSchemaEnabled,\n },\n jsfModify: buildContractPreviewJsfModify(options, fieldValues),\n },\n });\n\n const {\n data: documentPreviewPdf,\n isLoading: isLoadingDocumentPreviewForm,\n refetch: refetchDocumentPreviewForm,\n } = useGetShowContractDocument({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const { hasCompanySignedContract } = useHasCompanySignedContract({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const stepFields: Record<StepKeys, JSFFields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n pricing_plan: selectContractorSubscriptionForm?.fields || [],\n eligibility_questionnaire: eligibilityQuestionnaireForm?.fields || [],\n contract_details: contractorOnboardingDetailsForm?.fields || [],\n contract_preview: signatureSchemaForm?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n selectContractorSubscriptionForm?.fields,\n contractorOnboardingDetailsForm?.fields,\n signatureSchemaForm?.fields,\n eligibilityQuestionnaireForm?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n StepKeys,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n pricing_plan: null,\n contract_details: contractorOnboardingDetailsForm?.meta['x-jsf-fieldsets'],\n eligibility_questionnaire: null,\n contract_preview: null,\n review: null,\n };\n\n const stepPresentation: Record<\n StepKeys,\n Record<string, unknown> | null | undefined\n > = {\n select_country: selectCountryForm?.meta?.['x-jsf-presentation'],\n basic_information: basicInformationForm?.meta?.['x-jsf-presentation'],\n pricing_plan:\n selectContractorSubscriptionForm?.meta?.['x-jsf-presentation'],\n eligibility_questionnaire:\n eligibilityQuestionnaireForm?.meta?.['x-jsf-presentation'],\n contract_details:\n contractorOnboardingDetailsForm?.meta?.['x-jsf-presentation'],\n contract_preview: signatureSchemaForm?.meta?.['x-jsf-presentation'],\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n // memoize file conversion to avoid re-converting the file on every render\n // noticed performance issues when not doing memoizing individually\n const convertedIr35File = useMemo(() => {\n if (!ir35File?.content) return null;\n return dataURLtoFile(ir35File.content as unknown as string, ir35File.name);\n }, [ir35File?.content, ir35File?.name]);\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n ir35: employment?.contract_details?.ir_35,\n nationality_status: employment?.contract_details?.nationality,\n ...(convertedIr35File && {\n ir35_sds_file: [convertedIr35File],\n }),\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n onboardingInitialValues,\n employmentBasicInformation,\n employment?.contract_details?.ir_35,\n employment?.contract_details?.nationality,\n convertedIr35File,\n stepFields.basic_information,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const hardcodedValues = {\n service_duration: {\n provisional_start_date:\n employmentBasicInformation.provisional_start_date,\n },\n };\n const initialValues = {\n ...hardcodedValues,\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n employmentBasicInformation,\n ]);\n\n const contractPreviewInitialValues = useMemo(() => {\n const signature = documentPreviewPdf?.contract_document?.signatories?.find(\n (signatory) => signatory.type === 'company',\n );\n const initialValues = {\n ...onboardingInitialValues,\n signature: signature?.signature,\n };\n\n return getInitialValues(stepFields.contract_preview, initialValues);\n }, [\n stepFields.contract_preview,\n onboardingInitialValues,\n documentPreviewPdf,\n ]);\n\n const pricingPlanInitialValues = useMemo(() => {\n const preselectedPricingPlan = {\n subscription: selectedPricingPlan,\n };\n const initialValues = {\n ...preselectedPricingPlan,\n ...onboardingInitialValues,\n };\n\n return getInitialValues(stepFields.pricing_plan, initialValues);\n }, [stepFields.pricing_plan, onboardingInitialValues, selectedPricingPlan]);\n\n const eligibilityQuestionnaireInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...eligibilityAnswers,\n };\n return getInitialValues(\n stepFields.eligibility_questionnaire,\n initialValues,\n );\n }, [\n stepFields.eligibility_questionnaire,\n onboardingInitialValues,\n eligibilityAnswers,\n ]);\n\n const initialValues = useMemo(() => {\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n contractPreviewInitialValues,\n pricingPlanInitialValues,\n eligibilityQuestionnaireInitialValues,\n ]);\n\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId &&\n isEmploymentReadOnly &&\n stepState.currentStep.name !== 'review',\n );\n\n const initialLoading =\n isLoadingCountries ||\n isLoadingBasicInformationForm ||\n isLoadingEmployment ||\n isLoadingContractorOnboardingDetailsForm ||\n isLoadingContractorSubscriptions ||\n isLoadingDocumentPreviewForm ||\n isLoadingIR35File ||\n isLoadingContractDocuments ||\n isLoadingEligibilityQuestionnaire;\n\n const isNavigatingToReview = useMemo(() => {\n const isCor = employment?.contractor_type === 'cor';\n const hasContractPreviewFields =\n isCor || stepFields.contract_preview.length > 0;\n\n return Boolean(\n shouldHandleReadOnlyEmployment &&\n !initialLoading &&\n Boolean(internalContractDocumentId) &&\n stepFields.basic_information.length > 0 &&\n stepFields.contract_details.length > 0 &&\n hasContractPreviewFields,\n );\n }, [\n shouldHandleReadOnlyEmployment,\n initialLoading,\n internalContractDocumentId,\n stepFields.basic_information.length,\n stepFields.contract_details.length,\n stepFields.contract_preview.length,\n employment?.contractor_type,\n ]);\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n { skipMoneyConversion: true },\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n { skipMoneyConversion: true },\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n { skipMoneyConversion: true },\n ),\n contract_preview: prettifyFormValues(\n contractPreviewInitialValues,\n stepFields.contract_preview,\n { skipMoneyConversion: true },\n ),\n pricing_plan: prettifyFormValues(\n pricingPlanInitialValues,\n stepFields.pricing_plan,\n { skipMoneyConversion: true },\n ),\n eligibility_questionnaire: prettifyFormValues(\n eligibilityQuestionnaireInitialValues,\n stepFields.eligibility_questionnaire,\n { skipMoneyConversion: true },\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n review: {},\n });\n goToStep('review');\n }\n }, [\n isNavigatingToReview,\n goToStep,\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n setStepValues,\n stepFields.select_country,\n stepFields.basic_information,\n stepFields.contract_details,\n stepFields.pricing_plan,\n pricingPlanInitialValues,\n stepFields.contract_preview,\n contractPreviewInitialValues,\n stepFields.eligibility_questionnaire,\n eligibilityQuestionnaireInitialValues,\n ]);\n\n const goTo = (step: StepKeys) => {\n goToStep(step);\n };\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return await parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n return await parseJSFToValidate(values, signatureSchemaForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n return await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n eligibilityQuestionnaireForm &&\n stepState.currentStep.name === 'eligibility_questionnaire'\n ) {\n return await parseJSFToValidate(\n values,\n eligibilityQuestionnaireForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n return {};\n };\n\n /**\n * Extracts AI validation error from the error response\n * @param error - The error object from the API call\n * @returns The AI validation error if found, null otherwise\n */\n const extractAiValidationError = (\n error: $TSFixMe,\n ): AiValidationError | null => {\n const errorData = error?.rawError?.error?.errors?.services_and_deliverables;\n if (errorData?.source === REMOTE_AI_ERROR_SOURCE) {\n return {\n error: errorData.error,\n source: errorData.source,\n skippable: errorData.skippable,\n };\n }\n return null;\n };\n\n async function onSubmit(values: FieldValues) {\n const currentStepName = stepState.currentStep.name;\n const parsedValues = await parseFormValues(values);\n\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(parsedValues, stepFields[currentStepName]);\n }\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n const basicInformationPayload: EmploymentCreateParams = {\n basic_information: basicInformationParsedValues,\n type: 'contractor',\n country_code: internalCountryCode,\n external_id: externalId,\n };\n const response = await createEmploymentMutationAsync(\n basicInformationPayload,\n );\n const employmentId = response?.data?.employment?.id;\n if (!employmentId) {\n throw createStructuredError('Employment ID not found');\n }\n\n await updateUKandSaudiFieldsMutation({\n employmentId: employmentId as string,\n });\n\n // Only update state (triggers queries with fully consistent backend state) if not caused a bug\n // if one of the updateUKandSaudiFieldsMutation fails with a 422 for example\n setInternalEmploymentId(employmentId);\n\n return response;\n } else if (internalEmploymentId) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n\n await updateUKandSaudiFieldsMutation({\n employmentId: internalEmploymentId,\n });\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: basicInformationParsedValues,\n });\n }\n\n return;\n }\n case 'contract_details': {\n const shouldSkipAiChecks =\n fieldValues.services_and_deliverables_error_skippable === true;\n const payload: CreateContractDocument = {\n contract_document: parsedValues,\n skip_ai_checks: shouldSkipAiChecks,\n };\n\n try {\n const response = await createContractorContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n payload,\n });\n const contractDocumentId = response?.data?.contract_document?.id;\n if (!contractDocumentId) {\n throw createStructuredError('Contract document ID not found');\n }\n setInternalContractDocumentId(contractDocumentId);\n\n return response;\n } catch (error) {\n const aiError = extractAiValidationError(error);\n if (aiError) {\n const isContractorOfRecord =\n selectedPricingPlan === corProductIdentifier;\n setFieldValues({\n ...values,\n services_and_deliverables_ai_warning:\n transformAiErrorResponse(isContractorOfRecord),\n services_and_deliverables_error_skippable: aiError.skippable,\n });\n }\n\n throw error;\n }\n }\n\n case 'contract_preview': {\n if (hasCompanySignedContract) {\n return Promise.resolve({\n data: {\n contract_document: {\n id: internalContractDocumentId,\n },\n },\n });\n }\n const response = await signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: parsedValues.signature,\n },\n });\n await refetchDocumentPreviewForm();\n return response;\n }\n case 'pricing_plan': {\n const blockedProductsEligibility = [\n corProductIdentifier,\n contractorPlusProductIdentifier,\n ];\n\n if (\n isEligibilityQuestionnaireBlocked &&\n blockedProductsEligibility.includes(values.subscription)\n ) {\n throw createStructuredError(\n `This individual is not eligible for ${\n CONTRACT_PRODUCT_TITLES[\n values.subscription as keyof typeof CONTRACT_PRODUCT_TITLES\n ]\n }.`,\n );\n }\n // Handle EOR selection (from merged options)\n if (values.subscription === eorProductIdentifier) {\n // EOR selection - no API call needed at this step\n return Promise.resolve({\n data: {\n subscription: values.subscription,\n },\n });\n }\n\n if (\n hasEligibilityQuestionnaireSubmitted &&\n values.subscription !== corProductIdentifier\n ) {\n try {\n await deleteContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n await refetchContractorSubscriptions();\n } catch (error) {\n if ((error as $TSFixMe)?.response?.status !== 404) {\n throw error;\n }\n // Still refetch to update the UI state\n await refetchContractorSubscriptions();\n }\n }\n\n if (values.subscription == contractorStandardProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'downgrade',\n },\n });\n } else if (values.subscription == contractorPlusProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'upgrade',\n },\n });\n } else if (values.subscription == corProductIdentifier) {\n if (\n hasEligibilityQuestionnaireSubmitted &&\n employment?.contractor_type !== 'cor'\n ) {\n return manageContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n } else {\n return Promise.resolve({\n data: { subscription: values.subscription },\n });\n }\n }\n\n throw createStructuredError('invalid selection');\n }\n\n case 'eligibility_questionnaire': {\n try {\n const response = await createEligibilityQuestionnaireMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: parsedValues,\n });\n\n const isEligibilityQuestionnaireBlocked = response?.data?.is_blocking;\n\n if (isEligibilityQuestionnaireBlocked) {\n setIncludeEligibilityQuestionnaire(false);\n setPendingNavigationStep('pricing_plan');\n throw createStructuredError(\n 'This individual is not eligible for Contractor of Record.',\n );\n }\n\n return await manageContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n } finally {\n // Always refetch to keep state in sync, even on error\n await refetchContractorSubscriptions();\n }\n }\n\n default: {\n throw createStructuredError('Invalid step state');\n }\n }\n }\n\n const markContractAsReviewed = () => {\n // Notify parent to sync form state\n onContractReviewedRef.current?.();\n };\n\n const handleNextStep = () => {\n if (internalEmploymentId) {\n refetchEmployment();\n }\n nextStep();\n };\n\n const isLoading = initialLoading || shouldHandleReadOnlyEmployment;\n\n return {\n /**\n * Loading state indicating if the flow is loading data\n */\n isLoading,\n\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n\n /**\n * Function to mark the contract as reviewed\n * @param values - New form values to check\n * @returns {boolean}\n */\n markContractAsReviewed,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back: previousStep,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next: handleNextStep,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo: goTo,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n presentation: stepPresentation[stepState.currentStep.name],\n },\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Indicates whether AI validation errors can be skipped (user can continue at their own risk).\n * True when there's a skippable AI validation error on services_and_deliverables field.\n * @returns {boolean}\n */\n canSkipAiValidation:\n fieldValues.services_and_deliverables_error_skippable === true,\n\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: async (\n values: FieldValues,\n ): Promise<ValidationResult | null> => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractorOnboardingDetailsForm?.handleValidation(parsedValues);\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n signatureSchemaForm?.fields,\n { isPartialValidation: true },\n );\n return signatureSchemaForm?.handleValidation(parsedValues);\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n { isPartialValidation: false },\n );\n return selectContractorSubscriptionForm?.handleValidation(parsedValues);\n }\n\n if (\n eligibilityQuestionnaireForm &&\n stepState.currentStep.name === 'eligibility_questionnaire'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n eligibilityQuestionnaireForm?.fields,\n { isPartialValidation: false },\n );\n return eligibilityQuestionnaireForm?.handleValidation(parsedValues);\n }\n\n return null;\n },\n\n /**\n * Initial form values\n */\n initialValues,\n\n /**\n * Employment id\n */\n employmentId: internalEmploymentId,\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment: refetchEmployment,\n\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n updateEmploymentMutation.isPending ||\n createContractorContractDocumentMutation.isPending ||\n signContractDocumentMutation.isPending ||\n manageContractorSubscriptionMutation.isPending ||\n uploadFileMutation.isPending ||\n createEligibilityQuestionnaireMutation.isPending ||\n manageContractorCorSubscriptionMutation.isPending ||\n deleteContractorCorSubscriptionMutation.isPending,\n\n /**\n * Document preview PDF data\n */\n documentPreviewPdf,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n /**\n * let's the user know if the employment is invited or not\n * @returns {'invited' | 'not_invited'}\n */\n invitedStatus,\n\n /**\n * Employment data\n * @returns {Employment}\n */\n employment,\n\n /**\n * Default legal entity\n * @returns {CompanyLegalEntity}\n */\n defaultLegalEntity,\n /**\n * Steps array\n * @returns {Array<{name: string, index: number, visible: boolean, label: string}>}\n */\n steps: stepsArray,\n };\n};\n","import { useQuery } from '@tanstack/react-query';\nimport { getIndexCompanyLegalEntities } from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { useClient } from '@/src/context';\nimport { useIdentity } from '@/src/common/api/identity';\nimport { hasCompany } from '@/src/common/api/companies';\n\n/**\n * Hook to get the legal entities for a company\n * @param companyId - The company ID\n * @returns The legal entities\n */\nexport const useLegalEntities = () => {\n const { client } = useClient();\n const { data: identity } = useIdentity();\n const companyId = hasCompany(identity) ? (identity?.company?.id ?? '') : '';\n\n return useQuery({\n queryKey: ['legal-entities', companyId],\n queryFn: () =>\n getIndexCompanyLegalEntities({\n client: client as Client,\n path: {\n company_id: companyId,\n },\n query: {\n page_size: 100,\n },\n }),\n select: (data) => data.data?.data?.legal_entities,\n enabled: !!companyId,\n });\n};\n\nexport const useDefaultLegalEntity = () => {\n const { data: legalEntities } = useLegalEntities();\n return legalEntities?.find((legalEntity) => legalEntity.is_default);\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","omit","useQuery","useLegalEntities","__name","client","useClient","identity","useIdentity","companyId","hasCompany","useQuery","getIndexCompanyLegalEntities","data","useDefaultLegalEntity","legalEntities","legalEntity","stepToFormSchemaMap","jsonSchemaToEmployment","useContractorOnboarding","__name","countryCode","externalId","employmentId","skipSteps","options","onboardingInitialValues","excludeProducts","onContractReviewedRef","useRef","useEffect","internalCountryCode","setInternalCountryCode","useState","internalEmploymentId","setInternalEmploymentId","internalContractDocumentId","setInternalContractDocumentId","fieldsMetaRef","selectedProduct","setSelectedProduct","includeEligibilityQuestionnaire","setIncludeEligibilityQuestionnaire","includeContractPreview","setIncludeContractPreview","pendingNavigationStep","setPendingNavigationStep","steps","stepsArray","useMemo","buildSteps","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmploymentQuery","defaultLegalEntity","useDefaultLegalEntity","employmentStatus","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","invitedStatus","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","createContractorContractDocumentMutation","useCreateContractorContractDocument","uploadFileMutation","useUploadFile","updateUKandSaudiFieldsMutation","useUpdateUKandSaudiFields","createEligibilityQuestionnaireMutation","usePostCreateEligibilityQuestionnaire","manageContractorCorSubscriptionMutation","usePostManageContractorCorSubscription","updateEmploymentMutationAsync","mutationToPromise","signContractDocumentMutation","useSignContractDocument","manageContractorSubscriptionMutation","usePostManageContractorSubscriptions","deleteContractorCorSubscriptionMutation","useDeleteContractorCorSubscription","createEmploymentMutationAsync","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","manageContractorSubscriptionMutationAsync","createEligibilityQuestionnaireMutationAsync","manageContractorCorSubscriptionMutationAsync","deleteContractorCorSubscriptionMutationAsync","selectCountryForm","isLoadingCountries","countries","useCountriesSchemaField","selectedCountry","country","countryName","isPricingPlanEnabled","selectContractorSubscriptionForm","isLoadingContractorSubscriptions","contractorSubscriptions","refetchContractorSubscriptions","isEligibilityQuestionnaireBlocked","useContractorSubscriptionSchemaField","hasEligibilityQuestionnaireSubmitted","subscription","corProductIdentifier","isCor","eligibilityAnswers","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isIR35FileEnabled","ir35File","isLoadingIR35File","useGetIR35File","contractDocuments","isLoadingContractDocuments","useGetContractDocuments","basicInformationForm","isLoadingBasicInformationForm","buildBasicInformationJsfModify","descriptionProvisionalStartDate","calculateProvisionalStartDateDescription","selectedPricingPlan","subscriptions","contractorStandardProductIdentifier","contractorPlusProductIdentifier","eligibilityFields","isEligibilityQuestionnaireEnabled","eligibilityQuestionnaireForm","isLoadingEligibilityQuestionnaire","useGetEligibilityQuestionnaire","isContractorOnboardingDetailsEnabled","contractorOnboardingDetailsForm","isLoadingContractorOnboardingDetailsForm","useContractorOnboardingDetailsSchemaWithCurrencies","buildContractDetailsJsfModify","isSignatureSchemaEnabled","signatureSchemaForm","useGetContractDocumentSignatureSchema","buildContractPreviewJsfModify","documentPreviewPdf","isLoadingDocumentPreviewForm","refetchDocumentPreviewForm","useGetShowContractDocument","hasCompanySignedContract","useHasCompanySignedContract","stepFields","stepFieldsWithFlatFieldsets","stepPresentation","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","convertedIr35File","dataURLtoFile","basicInformationInitialValues","initialValues","contractDetailsInitialValues","contractPreviewInitialValues","signature","signatory","pricingPlanInitialValues","eligibilityQuestionnaireInitialValues","shouldHandleReadOnlyEmployment","initialLoading","isNavigatingToReview","hasContractPreviewFields","prettifyFormValues","goTo","step","parseFormValues","values","parseJSFToValidate","extractAiValidationError","error","errorData","REMOTE_AI_ERROR_SOURCE","onSubmit","currentStepName","parsedValues","isEmploymentNotLoaded","hasChangedCountry","basicInformationPayload","omit","response","createStructuredError","basicInformationParsedValues","shouldSkipAiChecks","payload","contractDocumentId","aiError","transformAiErrorResponse","CONTRACT_PRODUCT_TITLES","eorProductIdentifier"]}
@@ -1,2 +1,2 @@
1
- import{b as v}from"./chunk-TXSUZLOI.js";import{a as I}from"./chunk-A3LRPGV3.js";import{a as N,b as j,c as D,d as O}from"./chunk-2RWZ2XC5.js";import{a as C,g as p,h as b,t as R,u as F}from"./chunk-RZCU2MT3.js";import{a as k}from"./chunk-TSPDJUGG.js";import{a as c}from"./chunk-P37U34EQ.js";import{useMemo as S,useRef as ee,useState as A}from"react";var pe=c(({countryCode:L,options:u,initialValues:l})=>{let P=N(),g=j(),{mutateAsync:q}=C(P),{mutateAsync:J}=C(g),[y,U]=A(L||null),[f,B]=A(null),w=ee({company_basic_information:{},address_details:{}}),{fieldValues:V,stepState:a,setFieldValues:W,previousStep:z,nextStep:G,goToStep:H}=k(I),{companyBasicInformationForm:d,isLoading:K}=D({jsfModify:u?.jsfModify?.company_basic_information,queryOptions:{enabled:a.currentStep.name==="company_basic_information"}}),{data:s,isLoading:Q}=O({countryCode:y,fieldValues:a.currentStep.name==="address_details"?{...a.values?.address_details||{},...V}:a.values?.address_details||{},options:{...u,jsfModify:u?.jsfModify?.address_details,queryOptions:{enabled:a.currentStep.name==="address_details"&&!!y&&!!f}}}),i=S(()=>({company_basic_information:d?.fields||[],address_details:s?.fields||[]}),[d?.fields,s?.fields]),X={company_basic_information:null,address_details:s?.meta?.["x-jsf-fieldsets"]||null},h=S(()=>b(i.company_basic_information,{...l,country_code:y||l?.country_code||""}),[i.company_basic_information,y,l]),E=S(()=>b(i.address_details,l||{}),[i.address_details,l]),Y=S(()=>({company_basic_information:h,address_details:E}),[h,E]),Z=c(o=>{H(o)},"goTo"),M=c(async o=>{let r=a.currentStep.name,e=i[r];return d&&r==="company_basic_information"?await p(o,e,{isPartialValidation:!1}):s&&r==="address_details"?await p(o,e,{isPartialValidation:!1}):{}},"parseFormValues");async function $(o){let r=a.currentStep.name,e=await M(o);switch(r in w.current&&(w.current[r]=R(e,i[r])),a.currentStep.name){case"company_basic_information":{if(U(e.country_code),f)return Promise.resolve({data:{countryCode:e.country_code??"",companyOwnerEmail:e.company_owner_email??"",companyOwnerName:e.company_owner_name??"",desiredCurrency:e.desired_currency??"",name:e.name??"",phoneNumber:e.phone_number??"",taxNumber:e.tax_number??""}});let x={country_code:e.country_code,company_owner_email:e.company_owner_email,company_owner_name:e.company_owner_name,desired_currency:e.desired_currency,name:e.name,phone_number:e.phone_number,tax_number:e.tax_number,terms_of_service_accepted_at:v()},n=await q(x);if(n.error)return Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors});let m=n.data?.data,_,t;if(m)if("data"in m&&m.data){let T=m.data.company;t=T,_=T?.id}else"company"in m&&(t=m.company,_=t?.id);return _&&B(_),Promise.resolve({data:{countryCode:t?.country_code??e.country_code??"",companyOwnerEmail:t?.company_owner_email??e.company_owner_email??"",companyOwnerName:t?.company_owner_name??e.company_owner_name??"",desiredCurrency:t?.desired_currency??e.desired_currency??"",name:t?.name??e.name??"",phoneNumber:t?.phone_number??e.phone_number??"",taxNumber:t?.tax_number??e.tax_number??""}})}case"address_details":{if(!f)throw F("Company ID is required to update address details");let n=await J({companyId:f,payload:{address_details:e},jsonSchemaVersion:u?.jsonSchemaVersion?.form_schema?.address_details});return n.error?Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors}):Promise.resolve({data:n.data})}default:throw F("Invalid step state")}}return c($,"onSubmit"),{isLoading:K||Q,isSubmitting:P.isPending||g.isPending,fieldValues:V,stepState:a,checkFieldUpdates:W,back:z,next:G,goTo:Z,onSubmit:$,fields:i[a.currentStep.name],meta:{fields:w.current,fieldsets:X[a.currentStep.name]},parseFormValues:M,handleValidation:c(async o=>{if(a.currentStep.name==="company_basic_information"&&d){let r=await p(o,d.fields,{isPartialValidation:!1});return d.handleValidation(r)}if(a.currentStep.name==="address_details"&&s){let r=await p(o,s.fields,{isPartialValidation:!1});return s.handleValidation(r)}return null},"handleValidation"),initialValues:Y}},"useCreateCompany");export{pe as a};
2
- //# sourceMappingURL=chunk-2SS3UU6K.js.map
1
+ import{b as v}from"./chunk-TXSUZLOI.js";import{a as I}from"./chunk-A3LRPGV3.js";import{a as N,b as j,c as D,d as O}from"./chunk-LANAT75E.js";import{a as C,g as p,h as b,t as R,u as F}from"./chunk-RZCU2MT3.js";import{a as k}from"./chunk-TSPDJUGG.js";import{a as c}from"./chunk-P37U34EQ.js";import{useMemo as S,useRef as ee,useState as A}from"react";var pe=c(({countryCode:L,options:u,initialValues:l})=>{let P=N(),g=j(),{mutateAsync:q}=C(P),{mutateAsync:J}=C(g),[y,U]=A(L||null),[f,B]=A(null),w=ee({company_basic_information:{},address_details:{}}),{fieldValues:V,stepState:a,setFieldValues:W,previousStep:z,nextStep:G,goToStep:H}=k(I),{companyBasicInformationForm:d,isLoading:K}=D({jsfModify:u?.jsfModify?.company_basic_information,queryOptions:{enabled:a.currentStep.name==="company_basic_information"}}),{data:s,isLoading:Q}=O({countryCode:y,fieldValues:a.currentStep.name==="address_details"?{...a.values?.address_details||{},...V}:a.values?.address_details||{},options:{...u,jsfModify:u?.jsfModify?.address_details,queryOptions:{enabled:a.currentStep.name==="address_details"&&!!y&&!!f}}}),i=S(()=>({company_basic_information:d?.fields||[],address_details:s?.fields||[]}),[d?.fields,s?.fields]),X={company_basic_information:null,address_details:s?.meta?.["x-jsf-fieldsets"]||null},h=S(()=>b(i.company_basic_information,{...l,country_code:y||l?.country_code||""}),[i.company_basic_information,y,l]),E=S(()=>b(i.address_details,l||{}),[i.address_details,l]),Y=S(()=>({company_basic_information:h,address_details:E}),[h,E]),Z=c(o=>{H(o)},"goTo"),M=c(async o=>{let r=a.currentStep.name,e=i[r];return d&&r==="company_basic_information"?await p(o,e,{isPartialValidation:!1}):s&&r==="address_details"?await p(o,e,{isPartialValidation:!1}):{}},"parseFormValues");async function $(o){let r=a.currentStep.name,e=await M(o);switch(r in w.current&&(w.current[r]=R(e,i[r])),a.currentStep.name){case"company_basic_information":{if(U(e.country_code),f)return Promise.resolve({data:{countryCode:e.country_code??"",companyOwnerEmail:e.company_owner_email??"",companyOwnerName:e.company_owner_name??"",desiredCurrency:e.desired_currency??"",name:e.name??"",phoneNumber:e.phone_number??"",taxNumber:e.tax_number??""}});let x={country_code:e.country_code,company_owner_email:e.company_owner_email,company_owner_name:e.company_owner_name,desired_currency:e.desired_currency,name:e.name,phone_number:e.phone_number,tax_number:e.tax_number,terms_of_service_accepted_at:v()},n=await q(x);if(n.error)return Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors});let m=n.data?.data,_,t;if(m)if("data"in m&&m.data){let T=m.data.company;t=T,_=T?.id}else"company"in m&&(t=m.company,_=t?.id);return _&&B(_),Promise.resolve({data:{countryCode:t?.country_code??e.country_code??"",companyOwnerEmail:t?.company_owner_email??e.company_owner_email??"",companyOwnerName:t?.company_owner_name??e.company_owner_name??"",desiredCurrency:t?.desired_currency??e.desired_currency??"",name:t?.name??e.name??"",phoneNumber:t?.phone_number??e.phone_number??"",taxNumber:t?.tax_number??e.tax_number??""}})}case"address_details":{if(!f)throw F("Company ID is required to update address details");let n=await J({companyId:f,payload:{address_details:e},jsonSchemaVersion:u?.jsonSchemaVersion?.form_schema?.address_details});return n.error?Promise.resolve({data:null,error:n.error,rawError:n.rawError,fieldErrors:n.fieldErrors}):Promise.resolve({data:n.data})}default:throw F("Invalid step state")}}return c($,"onSubmit"),{isLoading:K||Q,isSubmitting:P.isPending||g.isPending,fieldValues:V,stepState:a,checkFieldUpdates:W,back:z,next:G,goTo:Z,onSubmit:$,fields:i[a.currentStep.name],meta:{fields:w.current,fieldsets:X[a.currentStep.name]},parseFormValues:M,handleValidation:c(async o=>{if(a.currentStep.name==="company_basic_information"&&d){let r=await p(o,d.fields,{isPartialValidation:!1});return d.handleValidation(r)}if(a.currentStep.name==="address_details"&&s){let r=await p(o,s.fields,{isPartialValidation:!1});return s.handleValidation(r)}return null},"handleValidation"),initialValues:Y}},"useCreateCompany");export{pe as a};
2
+ //# sourceMappingURL=chunk-IOVRTUOC.js.map
@@ -1,2 +1,2 @@
1
- import{a as m}from"./chunk-B7BJXPGT.js";import{a}from"./chunk-VCM32VB3.js";import{a as i}from"./chunk-G6F6ZZES.js";import{a as S}from"./chunk-FHYOWPXB.js";import{a as c}from"./chunk-QXW2MAFG.js";import{a as f}from"./chunk-2WOUKCSC.js";import{a as n}from"./chunk-F7PE3VRK.js";import{a as s}from"./chunk-PFQTTYVH.js";import{a as p}from"./chunk-5FHDUZCG.js";import{a as d}from"./chunk-RXSGIEA5.js";import{c as t}from"./chunk-LVWRZFEL.js";import{a as r}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{useId as P,useState as R}from"react";import{jsx as y}from"react/jsx-runtime";var N=e(({employmentId:g,companyId:l,countryCode:u,type:b="employee",externalId:v,skipSteps:B,initialValues:I,render:O,options:w})=>{let C=P(),o=t({companyId:l,countryCode:u,employmentId:g,type:b,options:w,skipSteps:B,externalId:v,initialValues:I}),[D,h]=R({showReserveInvoice:!1,showInviteSuccessful:!1});return y(r.Provider,{value:{formId:C,onboardingBag:o,creditScore:D,setCreditScore:h},children:O({onboardingBag:o,components:{BasicInformationStep:n,EngagementAgreementDetailsStep:d,ContractDetailsStep:p,BenefitsStep:s,SubmitButton:i,SaveDraftButton:c,BackButton:m,OnboardingInvite:a,SelectCountryStep:f,ReviewStep:S}})})},"OnboardingFlow");export{N as a};
2
- //# sourceMappingURL=chunk-OTNGKS3S.js.map
1
+ import{a as f}from"./chunk-2WOUKCSC.js";import{a as d}from"./chunk-RXSGIEA5.js";import{a as m}from"./chunk-B7BJXPGT.js";import{a}from"./chunk-77WJNWIC.js";import{a as i}from"./chunk-G6F6ZZES.js";import{a as S}from"./chunk-FHYOWPXB.js";import{a as c}from"./chunk-QXW2MAFG.js";import{a as n}from"./chunk-F7PE3VRK.js";import{a as s}from"./chunk-PFQTTYVH.js";import{a as p}from"./chunk-5FHDUZCG.js";import{c as t}from"./chunk-HUAPBLSQ.js";import{a as r}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{useId as P,useState as R}from"react";import{jsx as y}from"react/jsx-runtime";var N=e(({employmentId:g,companyId:l,countryCode:u,type:b="employee",externalId:v,skipSteps:B,initialValues:I,render:O,options:w})=>{let C=P(),o=t({companyId:l,countryCode:u,employmentId:g,type:b,options:w,skipSteps:B,externalId:v,initialValues:I}),[D,h]=R({showReserveInvoice:!1,showInviteSuccessful:!1});return y(r.Provider,{value:{formId:C,onboardingBag:o,creditScore:D,setCreditScore:h},children:O({onboardingBag:o,components:{BasicInformationStep:n,EngagementAgreementDetailsStep:d,ContractDetailsStep:p,BenefitsStep:s,SubmitButton:i,SaveDraftButton:c,BackButton:m,OnboardingInvite:a,SelectCountryStep:f,ReviewStep:S}})})},"OnboardingFlow");export{N as a};
2
+ //# sourceMappingURL=chunk-J4ALYQ36.js.map
@@ -1,2 +1,2 @@
1
- import{a}from"./chunk-OMLHAQQX.js";import{a as r}from"./chunk-SLEK47CR.js";import{a as t}from"./chunk-CZPJWO2R.js";import{a as f}from"./chunk-3JPDFNNH.js";import{a as e}from"./chunk-45RIDSO6.js";import{a as p}from"./chunk-K5TZIA6W.js";import{a as n}from"./chunk-YUNA3QKT.js";import{a as m}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{useId as c}from"react";import{jsx as F}from"react/jsx-runtime";var k=i(({employmentId:l,render:T,options:d,initialValues:s})=>{let u=c(),o=t({employmentId:l,options:d,initialValues:s});return F(m.Provider,{value:{formId:u,terminationBag:o},children:T({terminationBag:o,components:{SubmitButton:r,Back:n,EmployeeComunicationStep:e,TerminationDetailsStep:a,PaidTimeOffStep:p,AdditionalDetailsStep:f}})})},"TerminationFlow");export{k as a};
2
- //# sourceMappingURL=chunk-KNIZVHFU.js.map
1
+ import{a}from"./chunk-OMLHAQQX.js";import{a as r}from"./chunk-SLEK47CR.js";import{a as t}from"./chunk-Y5JFBXNR.js";import{a as f}from"./chunk-3JPDFNNH.js";import{a as e}from"./chunk-45RIDSO6.js";import{a as p}from"./chunk-K5TZIA6W.js";import{a as n}from"./chunk-YUNA3QKT.js";import{a as m}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{useId as c}from"react";import{jsx as F}from"react/jsx-runtime";var k=i(({employmentId:l,render:T,options:d,initialValues:s})=>{let u=c(),o=t({employmentId:l,options:d,initialValues:s});return F(m.Provider,{value:{formId:u,terminationBag:o},children:T({terminationBag:o,components:{SubmitButton:r,Back:n,EmployeeComunicationStep:e,TerminationDetailsStep:a,PaidTimeOffStep:p,AdditionalDetailsStep:f}})})},"TerminationFlow");export{k as a};
2
+ //# sourceMappingURL=chunk-JQHOMFXA.js.map
@@ -0,0 +1,2 @@
1
+ import{e as f}from"./chunk-RZCU2MT3.js";import{b as m}from"./chunk-626FTNKA.js";import{a as l}from"./chunk-P37U34EQ.js";import{createHeadlessForm as F,modify as y}from"@remoteoss/remote-json-schema-form-kit";var O=l((e,o,t)=>{if(t&&t.jsfModify){let{required:n,allOf:r,...s}=t.jsfModify,{schema:i}=y(e,s);e=i,n&&(e.required=[...Array.isArray(i.required)?i.required:[],...n]),r&&(e.allOf=[...Array.isArray(i.allOf)?i.allOf:[],...r])}let d={};o&&(d=m(e.properties||{},"money").reduce((r,s)=>(r[s]=f(o[s]),r),{}));let a=JSON.parse(JSON.stringify({...o,...d}));return{meta:{"x-jsf-fieldsets":e["x-jsf-fieldsets"],"x-jsf-presentation":e["x-jsf-presentation"]},...F(e,{initialValues:a})}},"createHeadlessForm");export{O as a};
2
+ //# sourceMappingURL=chunk-K2SHDZBB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/common/createHeadlessForm.tsx"],"sourcesContent":["import { FieldValues } from 'react-hook-form';\nimport {\n createHeadlessForm as baseCreateHeadlessForm,\n modify,\n} from '@remoteoss/remote-json-schema-form-kit';\nimport { convertToCents } from '@/src/components/form/utils';\nimport {\n JSFModify,\n JSONSchemaFormResultWithFieldsets,\n} from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\n\n/*\n * Creates a headless form from a JSON Schema, useful to avoid code duplication when creating headless forms.\n * @param jsfSchema - The JSON Schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The headless form\n */\nexport const createHeadlessForm = (\n jsfSchema: Record<string, unknown>,\n fieldValues?: FieldValues,\n options?: { jsfModify?: JSFModify },\n): JSONSchemaFormResultWithFieldsets => {\n if (options && options.jsfModify) {\n const { required, allOf, ...modifyConfig } = options.jsfModify;\n const { schema } = modify(jsfSchema, modifyConfig);\n jsfSchema = schema;\n\n if (required) {\n jsfSchema.required = [\n ...(Array.isArray(schema.required) ? schema.required : []),\n ...required,\n ];\n }\n\n if (allOf) {\n jsfSchema.allOf = [\n ...(Array.isArray(schema.allOf) ? schema.allOf : []),\n ...allOf,\n ];\n }\n }\n\n let moneyFieldsData: Record<string, number | null> = {};\n\n if (fieldValues) {\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n }\n\n /**\n * We create a deep copy of the field values to avoid modifying the original object.\n * This problem is caused by json-schema-form-v0.\n */\n const initialValues = JSON.parse(\n JSON.stringify({\n ...fieldValues,\n ...moneyFieldsData,\n }),\n );\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n },\n ...baseCreateHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n};\n"],"mappings":"wHACA,OACE,sBAAsBA,EACtB,UAAAC,MACK,yCAgBA,IAAMC,EAAqBC,EAAA,CAChCC,EACAC,EACAC,IACsC,CACtC,GAAIA,GAAWA,EAAQ,UAAW,CAChC,GAAM,CAAE,SAAAC,EAAU,MAAAC,EAAO,GAAGC,CAAa,EAAIH,EAAQ,UAC/C,CAAE,OAAAI,CAAO,EAAIC,EAAOP,EAAWK,CAAY,EACjDL,EAAYM,EAERH,IACFH,EAAU,SAAW,CACnB,GAAI,MAAM,QAAQM,EAAO,QAAQ,EAAIA,EAAO,SAAW,CAAC,EACxD,GAAGH,CACL,GAGEC,IACFJ,EAAU,MAAQ,CAChB,GAAI,MAAM,QAAQM,EAAO,KAAK,EAAIA,EAAO,MAAQ,CAAC,EAClD,GAAGF,CACL,EAEJ,CAEA,IAAII,EAAiD,CAAC,EAElDP,IAEFO,EADoBC,EAAiBT,EAAU,YAAc,CAAC,EAAG,OAAO,EAC1C,OAC5B,CAACU,EAAKC,KACJD,EAAIC,CAAK,EAAIC,EAAeX,EAAYU,CAAK,CAAC,EACvCD,GAET,CAAC,CACH,GAOF,IAAMG,EAAgB,KAAK,MACzB,KAAK,UAAU,CACb,GAAGZ,EACH,GAAGO,CACL,CAAC,CACH,EAEA,MAAO,CACL,KAAM,CACJ,kBAAmBR,EAAU,iBAAiB,CAChD,EACA,GAAGc,EAAuBd,EAAW,CACnC,cAAAa,CACF,CAAC,CACH,CACF,EAzDkC","names":["baseCreateHeadlessForm","modify","createHeadlessForm","__name","jsfSchema","fieldValues","options","required","allOf","modifyConfig","schema","modify","moneyFieldsData","findFieldsByType","acc","field","convertToCents","initialValues","baseCreateHeadlessForm"]}
1
+ {"version":3,"sources":["../src/common/createHeadlessForm.tsx"],"sourcesContent":["import { FieldValues } from 'react-hook-form';\nimport {\n createHeadlessForm as baseCreateHeadlessForm,\n modify,\n} from '@remoteoss/remote-json-schema-form-kit';\nimport { convertToCents } from '@/src/components/form/utils';\nimport {\n JSFModify,\n JSONSchemaFormResultWithFieldsets,\n} from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\n\n/*\n * Creates a headless form from a JSON Schema, useful to avoid code duplication when creating headless forms.\n * @param jsfSchema - The JSON Schema\n * @param fieldValues - The field values\n * @param options - The options\n * @returns The headless form\n */\nexport const createHeadlessForm = (\n jsfSchema: Record<string, unknown>,\n fieldValues?: FieldValues,\n options?: { jsfModify?: JSFModify },\n): JSONSchemaFormResultWithFieldsets => {\n if (options && options.jsfModify) {\n const { required, allOf, ...modifyConfig } = options.jsfModify;\n const { schema } = modify(jsfSchema, modifyConfig);\n jsfSchema = schema;\n\n if (required) {\n jsfSchema.required = [\n ...(Array.isArray(schema.required) ? schema.required : []),\n ...required,\n ];\n }\n\n if (allOf) {\n jsfSchema.allOf = [\n ...(Array.isArray(schema.allOf) ? schema.allOf : []),\n ...allOf,\n ];\n }\n }\n\n let moneyFieldsData: Record<string, number | null> = {};\n\n if (fieldValues) {\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n }\n\n /**\n * We create a deep copy of the field values to avoid modifying the original object.\n * This problem is caused by json-schema-form-v0.\n */\n const initialValues = JSON.parse(\n JSON.stringify({\n ...fieldValues,\n ...moneyFieldsData,\n }),\n );\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n 'x-jsf-presentation': jsfSchema['x-jsf-presentation'] as\n | Record<string, unknown>\n | undefined,\n },\n ...baseCreateHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n};\n"],"mappings":"wHACA,OACE,sBAAsBA,EACtB,UAAAC,MACK,yCAgBA,IAAMC,EAAqBC,EAAA,CAChCC,EACAC,EACAC,IACsC,CACtC,GAAIA,GAAWA,EAAQ,UAAW,CAChC,GAAM,CAAE,SAAAC,EAAU,MAAAC,EAAO,GAAGC,CAAa,EAAIH,EAAQ,UAC/C,CAAE,OAAAI,CAAO,EAAIC,EAAOP,EAAWK,CAAY,EACjDL,EAAYM,EAERH,IACFH,EAAU,SAAW,CACnB,GAAI,MAAM,QAAQM,EAAO,QAAQ,EAAIA,EAAO,SAAW,CAAC,EACxD,GAAGH,CACL,GAGEC,IACFJ,EAAU,MAAQ,CAChB,GAAI,MAAM,QAAQM,EAAO,KAAK,EAAIA,EAAO,MAAQ,CAAC,EAClD,GAAGF,CACL,EAEJ,CAEA,IAAII,EAAiD,CAAC,EAElDP,IAEFO,EADoBC,EAAiBT,EAAU,YAAc,CAAC,EAAG,OAAO,EAC1C,OAC5B,CAACU,EAAKC,KACJD,EAAIC,CAAK,EAAIC,EAAeX,EAAYU,CAAK,CAAC,EACvCD,GAET,CAAC,CACH,GAOF,IAAMG,EAAgB,KAAK,MACzB,KAAK,UAAU,CACb,GAAGZ,EACH,GAAGO,CACL,CAAC,CACH,EAEA,MAAO,CACL,KAAM,CACJ,kBAAmBR,EAAU,iBAAiB,EAC9C,qBAAsBA,EAAU,oBAAoB,CAGtD,EACA,GAAGc,EAAuBd,EAAW,CACnC,cAAAa,CACF,CAAC,CACH,CACF,EA5DkC","names":["baseCreateHeadlessForm","modify","createHeadlessForm","__name","jsfSchema","fieldValues","options","required","allOf","modifyConfig","schema","modify","moneyFieldsData","findFieldsByType","acc","field","convertToCents","initialValues","baseCreateHeadlessForm"]}
@@ -1,2 +1,2 @@
1
- import{a as D,b as k,c as j,e as L}from"./chunk-NRNLLJCB.js";import{f as G}from"./chunk-EU7WVCHQ.js";import{a as le}from"./chunk-MKUSE7JK.js";import{a as ae}from"./chunk-AVVDKCFO.js";import{a as E,c as P,d as I,e as J,f as _}from"./chunk-T5HMFMXH.js";import{f as X,g as A,h as ee}from"./chunk-XG6ASTX5.js";import{m as T}from"./chunk-RZCU2MT3.js";import{e as Q}from"./chunk-H2O4CVKF.js";import{a as v}from"./chunk-P37U34EQ.js";import*as O from"@radix-ui/react-collapsible";var ce=O.Root,be=O.CollapsibleTrigger,fe=O.CollapsibleContent;import*as w from"@radix-ui/react-tabs";import{jsx as U}from"react/jsx-runtime";function Y({className:e,...a}){return U(w.Root,{"data-slot":"tabs",className:T("flex flex-col gap-2",e),...a})}v(Y,"Tabs");function W({className:e,...a}){return U(w.List,{"data-slot":"tabs-list",className:T("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1",e),...a})}v(W,"TabsList");function K({className:e,...a}){return U(w.Trigger,{"data-slot":"tabs-trigger",className:T("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a})}v(K,"TabsTrigger");function ge({className:e,...a}){return U(w.Content,{"data-slot":"tabs-content",className:T("flex-1 outline-none",e),...a})}v(ge,"TabsContent");import*as $ from"react";import*as N from"@radix-ui/react-scroll-area";import{jsx as H,jsxs as ye}from"react/jsx-runtime";var te=$.forwardRef(({className:e,children:a,...l},n)=>ye(N.Root,{ref:n,className:T("relative overflow-hidden",e),...l,children:[H(N.Viewport,{className:"h-full w-full rounded-[inherit]",children:a}),H(se,{}),H(N.Corner,{})]}));te.displayName=N.Root.displayName;var se=$.forwardRef(({className:e,orientation:a="vertical",...l},n)=>H(N.ScrollAreaScrollbar,{ref:n,orientation:a,className:T("flex touch-none select-none transition-colors",a==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",a==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...l,children:H(N.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-border"})}));se.displayName=N.ScrollAreaScrollbar.displayName;import{useState as B,useEffect as Ce,useMemo as we}from"react";import{useQuery as Re}from"@tanstack/react-query";import M from"fast-deep-equal";var oe=v(e=>e.name?e.type?!0:(console.warn(`Field "${e.name}" missing required "type" property`),!1):(console.warn('Field missing required "name" property:',e),!1),"validateField"),he=v((e,a)=>{if(M(e,a))return;let l=new Map((e||[]).map(t=>[t.value,t])),n=new Map((a||[]).map(t=>[t.value,t])),d=[],m=[],p=[];if(n.forEach((t,c)=>{l.has(c)||d.push({value:t.value,label:t.label})}),l.forEach((t,c)=>{if(!n.has(c))m.push({value:t.value,label:t.label});else{let g=n.get(c);if(!M(t,g)){let b={};t.label!==g.label&&(b.label={old:t.label,new:g.label}),Object.keys(b).length>0&&p.push({value:c,changes:b})}}}),!(d.length===0&&m.length===0&&p.length===0))return{added:d,removed:m,modified:p}},"compareOptions"),Ne=v((e,a)=>{let l=e.fields,n=a.fields;if(!l&&!n)return;let d=q(l||[],n||[]);if(d.added.length>0||d.removed.length>0||d.modified.length>0)return Array.from(d.fieldDiffs.values())},"compareNestedFields"),Se=v((e,a)=>{let l={label:e.label!==a.label,required:e.required!==a.required,inputType:e.inputType!==a.inputType,type:e.type!==a.type,jsonType:!M(e.jsonType,a.jsonType),name:e.name!==a.name,defaultValue:e.defaultValue!==a.defaultValue,minDate:e.minDate!==a.minDate,maxDate:e.maxDate!==a.maxDate,maxLength:e.maxLength!==a.maxLength,multiple:e.multiple!==a.multiple,isVisible:e.isVisible!==a.isVisible,options:!M(e.options,a.options)},n=(()=>{let m=e.fields,p=a.fields;if(!m&&!p)return!1;if(!m||!p)return!0;let t=q(m,p);return t.added.length>0||t.removed.length>0||t.modified.length>0})();return Object.values(l).some(m=>m)||n},"isFieldModified"),Te=v((e,a)=>{let l={};e.label!==a.label&&(l.label={old:e.label,new:a.label}),e.required!==a.required&&(l.required={old:e.required,new:a.required}),e.type!==a.type&&(l.type={old:e.type,new:a.type}),e.inputType!==a.inputType&&(l.inputType={old:e.inputType,new:a.inputType}),M(e.jsonType,a.jsonType)||(l.jsonType={old:e.jsonType,new:a.jsonType}),M(e.defaultValue,a.defaultValue)||(l.defaultValue={old:e.defaultValue,new:a.defaultValue}),e.minDate!==a.minDate&&(l.minDate={old:e.minDate||"",new:a.minDate||""}),e.maxDate!==a.maxDate&&(l.maxDate={old:e.maxDate||"",new:a.maxDate||""}),e.maxLength!==a.maxLength&&(l.maxLength={old:e.maxLength||0,new:a.maxLength||0}),e.multiple!==a.multiple&&(l.multiple={old:e.multiple||!1,new:a.multiple||!1}),e.isVisible!==a.isVisible&&(l.isVisible={old:e.isVisible,new:a.isVisible});let n=he(e.options,a.options);n&&(l.options=n);let d=Ne(e,a);return d&&(l.nestedFields=d),Object.keys(l).length>0?l:void 0},"getFieldChanges"),q=v((e=[],a=[])=>{let l=e.filter(oe),n=a.filter(oe),d=new Map(l.map(f=>[f.name,{field:f}])),m=new Map(n.map(f=>[f.name,{field:f}])),p=[],t=[],c=[],g=[],b=new Map;return m.forEach((f,i)=>{d.has(i)||(p.push(i),b.set(i,{fieldName:i,diffType:"added"}))}),d.forEach(({field:f},i)=>{if(!m.has(i))t.push(i),b.set(i,{fieldName:i,diffType:"removed"});else{let{field:h}=m.get(i);Se(f,h)?(c.push(i),b.set(i,{fieldName:i,diffType:"modified",changes:Te(f,h)})):(g.push(i),b.set(i,{fieldName:i,diffType:"unchanged"}))}}),{added:p,removed:t,modified:c,unchanged:g,fieldDiffs:b}},"compareFormFields"),ne=v(e=>{switch(e){case"added":return"bg-green-50 border-l-4 border-green-500";case"removed":return"bg-red-50 border-l-4 border-red-500";case"modified":return"bg-yellow-50 border-l-4 border-yellow-500";default:return""}},"getDiffStyles");import{useMemo as ie,useRef as z,useEffect as xe}from"react";import{jsx as s,jsxs as u}from"react/jsx-runtime";var Fe=v(({children:e,diffType:a,changes:l})=>{let n=ne(a);if(a==="unchanged")return s("div",{children:e});let m={added:s("span",{className:"text-xs font-semibold text-green-700 bg-green-100 px-2 py-1 rounded",children:"NEW"}),removed:s("span",{className:"text-xs font-semibold text-red-700 bg-red-100 px-2 py-1 rounded",children:"REMOVED"}),modified:s("span",{className:"text-xs font-semibold text-yellow-700 bg-yellow-100 px-2 py-1 rounded",children:"MODIFIED"})}[a],p=v(()=>{if(!l||a!=="modified")return null;let t=[];if(l.label&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Label:"})," ",s("span",{className:"line-through text-red-600",children:l.label.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.label.new})]},"label")),l.required&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Required:"})," ",s("span",{className:"line-through text-red-600",children:l.required.old?"Yes":"No"})," ","\u2192"," ",s("span",{className:"text-green-600",children:l.required.new?"Yes":"No"})]},"required")),l.type&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Type:"})," ",s("span",{className:"line-through text-red-600",children:l.type.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.type.new})]},"type")),l.inputType&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Input Type:"})," ",s("span",{className:"line-through text-red-600",children:l.inputType.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.inputType.new})]},"inputType")),l.jsonType){let c=Array.isArray(l.jsonType.old)?l.jsonType.old.join(" | "):l.jsonType.old,g=Array.isArray(l.jsonType.new)?l.jsonType.new.join(" | "):l.jsonType.new;t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"JSON Type:"})," ",s("span",{className:"line-through text-red-600",children:c})," \u2192"," ",s("span",{className:"text-green-600",children:g})]},"jsonType"))}return l.defaultValue!==void 0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Default Value:"})," ",s("span",{className:"line-through text-red-600",children:JSON.stringify(l.defaultValue.old)})," ","\u2192"," ",s("span",{className:"text-green-600",children:JSON.stringify(l.defaultValue.new)})]},"defaultValue")),l.options&&(l.options.added.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold text-green-700",children:"Options Added:"})," ",l.options.added.map(c=>c.label).join(", ")]},"options-added")),l.options.removed.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold text-red-700",children:"Options Removed:"})," ",l.options.removed.map(c=>c.label).join(", ")]},"options-removed")),l.options.modified.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Options Modified:"})," ",l.options.modified.length," option(s)"]},"options-modified"))),l.nestedFields&&l.nestedFields.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Nested Fields:"})," ",l.nestedFields.length," field(s) changed"]},"nestedFields")),t.length===0?null:u("div",{className:"mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 space-y-1",children:[s("div",{className:"text-xs font-semibold text-yellow-800 mb-1",children:"Changes:"}),t]})},"renderChanges");return u("div",{className:`p-3 mb-2 rounded ${n} relative`,children:[s("div",{className:"absolute top-2 right-2",children:m}),e,p()]})},"FieldWrapper"),re=v(({version:e,fields:a,fieldsets:l,diffMap:n,title:d,scrollRef:m})=>{let p=X({mode:"onBlur"}),t=ie(()=>{let c=v((g,b)=>g.map(f=>{let i=b.get(f.name),h=i?.diffType||"unchanged",S=i?.changes,x=f.fields,R=f;if(x&&Array.isArray(x)){let V=new Map;S&&typeof S=="object"&&"nestedFields"in S&&Array.isArray(S.nestedFields)&&S.nestedFields.forEach(o=>{V.set(o.fieldName,{diffType:o.diffType,changes:o.changes})});let F=c(x,V);R={...f,fields:F}}return{...R,WrapperComponent:v(({children:V})=>s(Fe,{diffType:h,fieldName:f.name,changes:S,children:V}),"WrapperComponent")}}),"applyWrappers");return c(a,n)},[a,n]);return u(D,{className:"h-full",children:[s(k,{children:u(j,{children:[d," - Version ",e]})}),s(L,{ref:m,className:"overflow-y-auto max-h-[600px]",children:s(ee,{...p,children:s("form",{className:"space-y-4",children:s(ae,{fields:t,fieldsets:l,fieldValues:{}})})})})]})},"FormPanel"),de=v(({topVersion:e,bottomVersion:a,topFields:l,bottomFields:n,topFieldsets:d,bottomFieldsets:m,isLoading:p})=>{let t=ie(()=>q(l,n),[l,n]),c=z(null),g=z(null),b=z(!1);if(xe(()=>{let i=c.current,h=g.current;if(!i||!h)return;let S=v(()=>{b.current||(b.current=!0,h.scrollTop=i.scrollTop,requestAnimationFrame(()=>{b.current=!1}))},"handleLeftScroll"),x=v(()=>{b.current||(b.current=!0,i.scrollTop=h.scrollTop,requestAnimationFrame(()=>{b.current=!1}))},"handleRightScroll");return i.addEventListener("scroll",S),h.addEventListener("scroll",x),()=>{i.removeEventListener("scroll",S),h.removeEventListener("scroll",x)}},[l,n]),p)return s("div",{className:"flex items-center justify-center h-96",children:u("div",{className:"text-center",children:[s("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-gray-900 mx-auto"}),s("p",{className:"mt-4 text-gray-600",children:"Loading schemas..."})]})});let f=t.added.length===0&&t.removed.length===0&&t.modified.length===0;return u("div",{className:"space-y-6",children:[s(D,{children:s(L,{className:"pt-6",children:f?s("p",{className:"text-center text-gray-600",children:"No differences detected between the two versions"}):u("div",{className:"flex gap-6 justify-center",children:[t.added.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-green-500 rounded"}),u("span",{className:"text-sm",children:[t.added.length," field",t.added.length>1?"s":""," ","added"]})]}),t.removed.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-red-500 rounded"}),u("span",{className:"text-sm",children:[t.removed.length," field",t.removed.length>1?"s":""," removed"]})]}),t.modified.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-yellow-500 rounded"}),u("span",{className:"text-sm",children:[t.modified.length," field",t.modified.length>1?"s":""," modified"]})]})]})})}),u("div",{className:"grid grid-cols-2 gap-6",children:[s(re,{version:e,fields:l,fieldsets:d,diffMap:t.fieldDiffs,title:"Left",scrollRef:c}),s(re,{version:a,fields:n,fieldsets:m,diffMap:t.fieldDiffs,title:"Right",scrollRef:g})]})]})},"SchemaFormComparison");var ve=[{value:1,label:"v1 (Legacy)"},{value:3,label:"v3 (Recommended)"}],Z={ALB:[{value:1,label:"v1"}],ARE:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],ARG:[{value:1,label:"v1"}],ARM:[{value:1,label:"v1"}],AUS:[{value:1,label:"v1"}],AUT:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BEL:[{value:1,label:"v1"},{value:2,label:"v2"}],BGD:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BGR:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BIH:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BLR:[{value:1,label:"v1"},{value:2,label:"v2"}],BOL:[{value:1,label:"v1"}],BRA:[{value:1,label:"v1"}],CAN:[{value:1,label:"v1"},{value:2,label:"v2"}],CHE:[{value:1,label:"v1"},{value:2,label:"v2"}],CHL:[{value:1,label:"v1"}],CHN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],COL:[{value:1,label:"v1"}],CRI:[{value:1,label:"v1"}],CYP:[{value:1,label:"v1"}],CZE:[{value:1,label:"v1"},{value:2,label:"v2"}],DEU:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],DNK:[{value:1,label:"v1"}],DOM:[{value:1,label:"v1"}],ECU:[{value:1,label:"v1"}],EGY:[{value:1,label:"v1"},{value:2,label:"v2"}],ESP:[{value:1,label:"v1"},{value:2,label:"v2"}],EST:[{value:1,label:"v1"}],FIN:[{value:1,label:"v1"}],FRA:[{value:1,label:"v1"},{value:2,label:"v2"}],GBR:[{value:1,label:"v1"},{value:2,label:"v2"}],GEO:[{value:1,label:"v1"}],GRC:[{value:1,label:"v1"}],GTM:[{value:1,label:"v1"}],HKG:[{value:1,label:"v1"},{value:2,label:"v2"}],HND:[{value:1,label:"v1"}],HRV:[{value:1,label:"v1"},{value:2,label:"v2"}],HUN:[{value:1,label:"v1"}],IDN:[{value:1,label:"v1"}],IND:[{value:1,label:"v1"},{value:2,label:"v2"}],IRL:[{value:1,label:"v1"}],ISL:[{value:1,label:"v1"},{value:2,label:"v2"}],ISR:[{value:1,label:"v1"}],ITA:[{value:1,label:"v1"}],JAM:[{value:1,label:"v1"},{value:2,label:"v2"}],JPN:[{value:1,label:"v1"},{value:2,label:"v2"}],KEN:[{value:1,label:"v1"},{value:2,label:"v2"}],KGZ:[{value:1,label:"v1"}],KHM:[{value:1,label:"v1"}],KOR:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],LBN:[{value:1,label:"v1"},{value:2,label:"v2"}],LKA:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],LTU:[{value:1,label:"v1"}],LUX:[{value:1,label:"v1"}],LVA:[{value:1,label:"v1"},{value:2,label:"v2"}],MAR:[{value:1,label:"v1"}],MDA:[{value:1,label:"v1"}],MEX:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],MKD:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],MLT:[{value:1,label:"v1"}],MNG:[{value:1,label:"v1"}],MUS:[{value:1,label:"v1"},{value:2,label:"v2"}],MYS:[{value:1,label:"v1"},{value:2,label:"v2"}],NGA:[{value:1,label:"v1"},{value:2,label:"v2"}],NIC:[{value:1,label:"v1"}],NLD:[{value:1,label:"v1"}],NOR:[{value:1,label:"v1"},{value:2,label:"v2"}],NZL:[{value:1,label:"v1"},{value:2,label:"v2"}],PAK:[{value:1,label:"v1"},{value:2,label:"v2"}],PAN:[{value:1,label:"v1"}],PER:[{value:1,label:"v1"}],PHL:[{value:1,label:"v1"}],POL:[{value:1,label:"v1"}],PRI:[{value:1,label:"v1"}],PRT:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],PRY:[{value:1,label:"v1"}],ROU:[{value:1,label:"v1"}],SAU:[{value:1,label:"v1"},{value:2,label:"v2"}],SGP:[{value:1,label:"v1"},{value:2,label:"v2"}],SLV:[{value:1,label:"v1"}],SRB:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],SVK:[{value:1,label:"v1"}],SVN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],SWE:[{value:1,label:"v1"},{value:2,label:"v2"}],THA:[{value:1,label:"v1"},{value:2,label:"v2"}],TUN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],TUR:[{value:1,label:"v1"}],TWN:[{value:1,label:"v1"}],UGA:[{value:1,label:"v1"}],UKR:[{value:1,label:"v1"}],URY:[{value:1,label:"v1"}],USA:[{value:1,label:"v1"}],VNM:[{value:1,label:"v1"},{value:2,label:"v2"}],XKX:[{value:1,label:"v1"}],ZAF:[{value:1,label:"v1"}],ZWE:[{value:1,label:"v1"}]},ue=Object.fromEntries(Object.entries(Z).filter(([,e])=>e.length>1)),me=[{value:"employment_basic_information",label:"Basic Information"},{value:"contract_details",label:"Contract Details"}];import{jsx as r,jsxs as y}from"react/jsx-runtime";var pe=v(()=>{let[e,a]=B("employment_basic_information"),[l,n]=B(1),[d,m]=B(1),[p,t]=B("ARE"),{client:c}=Q(),{data:g}=Re({...le(c,"schema-comparison"),select:v(o=>o.data?.data?.filter(C=>C.eor_onboarding).filter(C=>Object.keys(ue).includes(C.code)).map(C=>({label:C.name,value:C.code}))||[],"select")}),b=e==="contract_details",{data:f,isLoading:i}=G({countryCode:p,form:e,fieldValues:{},jsonSchemaVersion:l,options:{queryOptions:{enabled:!0}}}),{data:h,isLoading:S}=G({countryCode:p,form:e,fieldValues:{},jsonSchemaVersion:d,options:{queryOptions:{enabled:!0}}}),x=i||S,R=Z[p],V=R!==void 0,F=we(()=>e==="employment_basic_information"?ve:R||[{value:"latest",label:"Latest"}],[e,R]);return Ce(()=>{let o=F.map(C=>C.value);o.includes(l)||n(F[0].value),o.includes(d)||m(F[0].value)},[e,p,F,l,d]),y("div",{className:"space-y-6",children:[y(D,{children:[r(k,{children:r(j,{children:"Configuration"})}),y(L,{className:"space-y-4",children:[y("div",{children:[r(A,{className:"mb-2 block",children:"Form Type"}),r(Y,{value:e,onValueChange:o=>a(o),children:r(W,{className:"grid w-full grid-cols-2",children:me.map(o=>r(K,{value:o.value,children:o.label},o.value))})})]}),b&&!V&&r("div",{className:"rounded-md bg-yellow-50 p-4 border border-yellow-200",children:y("div",{className:"flex",children:[r("div",{className:"flex-shrink-0",children:r("svg",{className:"h-5 w-5 text-yellow-400",viewBox:"0 0 20 20",fill:"currentColor",children:r("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})}),y("div",{className:"ml-3",children:[r("h3",{className:"text-sm font-medium text-yellow-800",children:"Version mappings not found"}),r("div",{className:"mt-2 text-sm text-yellow-700",children:y("p",{children:["Country"," ",r("span",{className:"font-semibold",children:p})," is not configured in COUNTRY_CONTRACT_VERSIONS. Using default (latest only)."]})})]})]})}),b&&y("div",{children:[r(A,{htmlFor:"country-select",className:"mb-2 block",children:"Country"}),y(E,{value:p,onValueChange:t,children:[r(I,{id:"country-select",children:r(P,{placeholder:"Select a country"})}),r(J,{children:g?.map(o=>r(_,{value:o.value,children:o.label},o.value))})]})]}),y("div",{className:"grid grid-cols-2 gap-4",children:[y("div",{children:[r(A,{htmlFor:"top-version",className:"mb-2 block",children:"Left Version"}),y(E,{value:String(l),onValueChange:o=>n(o==="latest"?"latest":Number(o)),children:[r(I,{id:"top-version",children:r(P,{placeholder:"Select version"})}),r(J,{children:F.map(o=>r(_,{value:String(o.value),children:o.label},String(o.value)))})]})]}),y("div",{children:[r(A,{htmlFor:"bottom-version",className:"mb-2 block",children:"Right Version"}),y(E,{value:String(d),onValueChange:o=>m(o==="latest"?"latest":Number(o)),children:[r(I,{id:"bottom-version",children:r(P,{placeholder:"Select version"})}),r(J,{children:F.map(o=>r(_,{value:String(o.value),children:o.label},String(o.value)))})]})]})]})]})]}),r(de,{topVersion:l,bottomVersion:d,topFields:f?.fields||[],bottomFields:h?.fields||[],topFieldsets:f?.meta?.["x-jsf-fieldsets"],bottomFieldsets:h?.meta?.["x-jsf-fieldsets"],isLoading:x})]})},"JsonSchemaComparison");export{ce as a,be as b,fe as c,Y as d,W as e,K as f,ge as g,te as h,pe as i};
2
- //# sourceMappingURL=chunk-N6OHWIQ4.js.map
1
+ import{a as D,b as k,c as j,e as L}from"./chunk-NRNLLJCB.js";import{f as G}from"./chunk-TSWZPJNS.js";import{a as le}from"./chunk-MKUSE7JK.js";import{a as ae}from"./chunk-AVVDKCFO.js";import{a as E,c as P,d as I,e as J,f as _}from"./chunk-T5HMFMXH.js";import{f as X,g as A,h as ee}from"./chunk-XG6ASTX5.js";import{m as T}from"./chunk-RZCU2MT3.js";import{e as Q}from"./chunk-H2O4CVKF.js";import{a as v}from"./chunk-P37U34EQ.js";import*as O from"@radix-ui/react-collapsible";var ce=O.Root,be=O.CollapsibleTrigger,fe=O.CollapsibleContent;import*as w from"@radix-ui/react-tabs";import{jsx as U}from"react/jsx-runtime";function Y({className:e,...a}){return U(w.Root,{"data-slot":"tabs",className:T("flex flex-col gap-2",e),...a})}v(Y,"Tabs");function W({className:e,...a}){return U(w.List,{"data-slot":"tabs-list",className:T("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-1",e),...a})}v(W,"TabsList");function K({className:e,...a}){return U(w.Trigger,{"data-slot":"tabs-trigger",className:T("data-[state=active]:bg-background data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring inline-flex flex-1 items-center justify-center gap-1.5 rounded-md px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a})}v(K,"TabsTrigger");function ge({className:e,...a}){return U(w.Content,{"data-slot":"tabs-content",className:T("flex-1 outline-none",e),...a})}v(ge,"TabsContent");import*as z from"react";import*as N from"@radix-ui/react-scroll-area";import{jsx as H,jsxs as ye}from"react/jsx-runtime";var te=z.forwardRef(({className:e,children:a,...l},n)=>ye(N.Root,{ref:n,className:T("relative overflow-hidden",e),...l,children:[H(N.Viewport,{className:"h-full w-full rounded-[inherit]",children:a}),H(se,{}),H(N.Corner,{})]}));te.displayName=N.Root.displayName;var se=z.forwardRef(({className:e,orientation:a="vertical",...l},n)=>H(N.ScrollAreaScrollbar,{ref:n,orientation:a,className:T("flex touch-none select-none transition-colors",a==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",a==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...l,children:H(N.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-border"})}));se.displayName=N.ScrollAreaScrollbar.displayName;import{useState as B,useEffect as Ce,useMemo as we}from"react";import{useQuery as Re}from"@tanstack/react-query";import M from"fast-deep-equal";var oe=v(e=>e.name?e.type?!0:(console.warn(`Field "${e.name}" missing required "type" property`),!1):(console.warn('Field missing required "name" property:',e),!1),"validateField"),he=v((e,a)=>{if(M(e,a))return;let l=new Map((e||[]).map(t=>[t.value,t])),n=new Map((a||[]).map(t=>[t.value,t])),d=[],m=[],p=[];if(n.forEach((t,c)=>{l.has(c)||d.push({value:t.value,label:t.label})}),l.forEach((t,c)=>{if(!n.has(c))m.push({value:t.value,label:t.label});else{let g=n.get(c);if(!M(t,g)){let b={};t.label!==g.label&&(b.label={old:t.label,new:g.label}),Object.keys(b).length>0&&p.push({value:c,changes:b})}}}),!(d.length===0&&m.length===0&&p.length===0))return{added:d,removed:m,modified:p}},"compareOptions"),Ne=v((e,a)=>{let l=e.fields,n=a.fields;if(!l&&!n)return;let d=q(l||[],n||[]);if(d.added.length>0||d.removed.length>0||d.modified.length>0)return Array.from(d.fieldDiffs.values())},"compareNestedFields"),Se=v((e,a)=>{let l={label:e.label!==a.label,required:e.required!==a.required,inputType:e.inputType!==a.inputType,type:e.type!==a.type,jsonType:!M(e.jsonType,a.jsonType),name:e.name!==a.name,defaultValue:e.defaultValue!==a.defaultValue,minDate:e.minDate!==a.minDate,maxDate:e.maxDate!==a.maxDate,maxLength:e.maxLength!==a.maxLength,multiple:e.multiple!==a.multiple,isVisible:e.isVisible!==a.isVisible,options:!M(e.options,a.options)},n=(()=>{let m=e.fields,p=a.fields;if(!m&&!p)return!1;if(!m||!p)return!0;let t=q(m,p);return t.added.length>0||t.removed.length>0||t.modified.length>0})();return Object.values(l).some(m=>m)||n},"isFieldModified"),Te=v((e,a)=>{let l={};e.label!==a.label&&(l.label={old:e.label,new:a.label}),e.required!==a.required&&(l.required={old:e.required,new:a.required}),e.type!==a.type&&(l.type={old:e.type,new:a.type}),e.inputType!==a.inputType&&(l.inputType={old:e.inputType,new:a.inputType}),M(e.jsonType,a.jsonType)||(l.jsonType={old:e.jsonType,new:a.jsonType}),M(e.defaultValue,a.defaultValue)||(l.defaultValue={old:e.defaultValue,new:a.defaultValue}),e.minDate!==a.minDate&&(l.minDate={old:e.minDate||"",new:a.minDate||""}),e.maxDate!==a.maxDate&&(l.maxDate={old:e.maxDate||"",new:a.maxDate||""}),e.maxLength!==a.maxLength&&(l.maxLength={old:e.maxLength||0,new:a.maxLength||0}),e.multiple!==a.multiple&&(l.multiple={old:e.multiple||!1,new:a.multiple||!1}),e.isVisible!==a.isVisible&&(l.isVisible={old:e.isVisible,new:a.isVisible});let n=he(e.options,a.options);n&&(l.options=n);let d=Ne(e,a);return d&&(l.nestedFields=d),Object.keys(l).length>0?l:void 0},"getFieldChanges"),q=v((e=[],a=[])=>{let l=e.filter(oe),n=a.filter(oe),d=new Map(l.map(f=>[f.name,{field:f}])),m=new Map(n.map(f=>[f.name,{field:f}])),p=[],t=[],c=[],g=[],b=new Map;return m.forEach((f,i)=>{d.has(i)||(p.push(i),b.set(i,{fieldName:i,diffType:"added"}))}),d.forEach(({field:f},i)=>{if(!m.has(i))t.push(i),b.set(i,{fieldName:i,diffType:"removed"});else{let{field:h}=m.get(i);Se(f,h)?(c.push(i),b.set(i,{fieldName:i,diffType:"modified",changes:Te(f,h)})):(g.push(i),b.set(i,{fieldName:i,diffType:"unchanged"}))}}),{added:p,removed:t,modified:c,unchanged:g,fieldDiffs:b}},"compareFormFields"),ne=v(e=>{switch(e){case"added":return"bg-green-50 border-l-4 border-green-500";case"removed":return"bg-red-50 border-l-4 border-red-500";case"modified":return"bg-yellow-50 border-l-4 border-yellow-500";default:return""}},"getDiffStyles");import{useMemo as ie,useRef as $,useEffect as xe}from"react";import{jsx as s,jsxs as u}from"react/jsx-runtime";var Fe=v(({children:e,diffType:a,changes:l})=>{let n=ne(a);if(a==="unchanged")return s("div",{children:e});let m={added:s("span",{className:"text-xs font-semibold text-green-700 bg-green-100 px-2 py-1 rounded",children:"NEW"}),removed:s("span",{className:"text-xs font-semibold text-red-700 bg-red-100 px-2 py-1 rounded",children:"REMOVED"}),modified:s("span",{className:"text-xs font-semibold text-yellow-700 bg-yellow-100 px-2 py-1 rounded",children:"MODIFIED"})}[a],p=v(()=>{if(!l||a!=="modified")return null;let t=[];if(l.label&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Label:"})," ",s("span",{className:"line-through text-red-600",children:l.label.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.label.new})]},"label")),l.required&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Required:"})," ",s("span",{className:"line-through text-red-600",children:l.required.old?"Yes":"No"})," ","\u2192"," ",s("span",{className:"text-green-600",children:l.required.new?"Yes":"No"})]},"required")),l.type&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Type:"})," ",s("span",{className:"line-through text-red-600",children:l.type.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.type.new})]},"type")),l.inputType&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Input Type:"})," ",s("span",{className:"line-through text-red-600",children:l.inputType.old})," ","\u2192 ",s("span",{className:"text-green-600",children:l.inputType.new})]},"inputType")),l.jsonType){let c=Array.isArray(l.jsonType.old)?l.jsonType.old.join(" | "):l.jsonType.old,g=Array.isArray(l.jsonType.new)?l.jsonType.new.join(" | "):l.jsonType.new;t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"JSON Type:"})," ",s("span",{className:"line-through text-red-600",children:c})," \u2192"," ",s("span",{className:"text-green-600",children:g})]},"jsonType"))}return l.defaultValue!==void 0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Default Value:"})," ",s("span",{className:"line-through text-red-600",children:JSON.stringify(l.defaultValue.old)})," ","\u2192"," ",s("span",{className:"text-green-600",children:JSON.stringify(l.defaultValue.new)})]},"defaultValue")),l.options&&(l.options.added.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold text-green-700",children:"Options Added:"})," ",l.options.added.map(c=>c.label).join(", ")]},"options-added")),l.options.removed.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold text-red-700",children:"Options Removed:"})," ",l.options.removed.map(c=>c.label).join(", ")]},"options-removed")),l.options.modified.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Options Modified:"})," ",l.options.modified.length," option(s)"]},"options-modified"))),l.nestedFields&&l.nestedFields.length>0&&t.push(u("div",{className:"text-xs",children:[s("span",{className:"font-semibold",children:"Nested Fields:"})," ",l.nestedFields.length," field(s) changed"]},"nestedFields")),t.length===0?null:u("div",{className:"mt-2 p-2 bg-yellow-50 rounded border border-yellow-200 space-y-1",children:[s("div",{className:"text-xs font-semibold text-yellow-800 mb-1",children:"Changes:"}),t]})},"renderChanges");return u("div",{className:`p-3 mb-2 rounded ${n} relative`,children:[s("div",{className:"absolute top-2 right-2",children:m}),e,p()]})},"FieldWrapper"),re=v(({version:e,fields:a,fieldsets:l,diffMap:n,title:d,scrollRef:m})=>{let p=X({mode:"onBlur"}),t=ie(()=>{let c=v((g,b)=>g.map(f=>{let i=b.get(f.name),h=i?.diffType||"unchanged",S=i?.changes,x=f.fields,R=f;if(x&&Array.isArray(x)){let V=new Map;S&&typeof S=="object"&&"nestedFields"in S&&Array.isArray(S.nestedFields)&&S.nestedFields.forEach(o=>{V.set(o.fieldName,{diffType:o.diffType,changes:o.changes})});let F=c(x,V);R={...f,fields:F}}return{...R,WrapperComponent:v(({children:V})=>s(Fe,{diffType:h,fieldName:f.name,changes:S,children:V}),"WrapperComponent")}}),"applyWrappers");return c(a,n)},[a,n]);return u(D,{className:"h-full",children:[s(k,{children:u(j,{children:[d," - Version ",e]})}),s(L,{ref:m,className:"overflow-y-auto max-h-[600px]",children:s(ee,{...p,children:s("form",{className:"space-y-4",children:s(ae,{fields:t,fieldsets:l,fieldValues:{}})})})})]})},"FormPanel"),de=v(({topVersion:e,bottomVersion:a,topFields:l,bottomFields:n,topFieldsets:d,bottomFieldsets:m,isLoading:p})=>{let t=ie(()=>q(l,n),[l,n]),c=$(null),g=$(null),b=$(!1);if(xe(()=>{let i=c.current,h=g.current;if(!i||!h)return;let S=v(()=>{b.current||(b.current=!0,h.scrollTop=i.scrollTop,requestAnimationFrame(()=>{b.current=!1}))},"handleLeftScroll"),x=v(()=>{b.current||(b.current=!0,i.scrollTop=h.scrollTop,requestAnimationFrame(()=>{b.current=!1}))},"handleRightScroll");return i.addEventListener("scroll",S),h.addEventListener("scroll",x),()=>{i.removeEventListener("scroll",S),h.removeEventListener("scroll",x)}},[l,n]),p)return s("div",{className:"flex items-center justify-center h-96",children:u("div",{className:"text-center",children:[s("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-gray-900 mx-auto"}),s("p",{className:"mt-4 text-gray-600",children:"Loading schemas..."})]})});let f=t.added.length===0&&t.removed.length===0&&t.modified.length===0;return u("div",{className:"space-y-6",children:[s(D,{children:s(L,{className:"pt-6",children:f?s("p",{className:"text-center text-gray-600",children:"No differences detected between the two versions"}):u("div",{className:"flex gap-6 justify-center",children:[t.added.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-green-500 rounded"}),u("span",{className:"text-sm",children:[t.added.length," field",t.added.length>1?"s":""," ","added"]})]}),t.removed.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-red-500 rounded"}),u("span",{className:"text-sm",children:[t.removed.length," field",t.removed.length>1?"s":""," removed"]})]}),t.modified.length>0&&u("div",{className:"flex items-center gap-2",children:[s("span",{className:"w-4 h-4 bg-yellow-500 rounded"}),u("span",{className:"text-sm",children:[t.modified.length," field",t.modified.length>1?"s":""," modified"]})]})]})})}),u("div",{className:"grid grid-cols-2 gap-6",children:[s(re,{version:e,fields:l,fieldsets:d,diffMap:t.fieldDiffs,title:"Left",scrollRef:c}),s(re,{version:a,fields:n,fieldsets:m,diffMap:t.fieldDiffs,title:"Right",scrollRef:g})]})]})},"SchemaFormComparison");var ve=[{value:1,label:"v1 (Legacy)"},{value:3,label:"v3 (Recommended)"}],Z={ALB:[{value:1,label:"v1"}],ARE:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],ARG:[{value:1,label:"v1"}],ARM:[{value:1,label:"v1"}],AUS:[{value:1,label:"v1"}],AUT:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BEL:[{value:1,label:"v1"},{value:2,label:"v2"}],BGD:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BGR:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BIH:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],BLR:[{value:1,label:"v1"},{value:2,label:"v2"}],BOL:[{value:1,label:"v1"}],BRA:[{value:1,label:"v1"}],CAN:[{value:1,label:"v1"},{value:2,label:"v2"}],CHE:[{value:1,label:"v1"},{value:2,label:"v2"}],CHL:[{value:1,label:"v1"}],CHN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],COL:[{value:1,label:"v1"}],CRI:[{value:1,label:"v1"}],CYP:[{value:1,label:"v1"}],CZE:[{value:1,label:"v1"},{value:2,label:"v2"}],DEU:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],DNK:[{value:1,label:"v1"}],DOM:[{value:1,label:"v1"}],ECU:[{value:1,label:"v1"}],EGY:[{value:1,label:"v1"},{value:2,label:"v2"}],ESP:[{value:1,label:"v1"},{value:2,label:"v2"}],EST:[{value:1,label:"v1"}],FIN:[{value:1,label:"v1"}],FRA:[{value:1,label:"v1"},{value:2,label:"v2"}],GBR:[{value:1,label:"v1"},{value:2,label:"v2"}],GEO:[{value:1,label:"v1"}],GRC:[{value:1,label:"v1"}],GTM:[{value:1,label:"v1"}],HKG:[{value:1,label:"v1"},{value:2,label:"v2"}],HND:[{value:1,label:"v1"}],HRV:[{value:1,label:"v1"},{value:2,label:"v2"}],HUN:[{value:1,label:"v1"}],IDN:[{value:1,label:"v1"}],IND:[{value:1,label:"v1"},{value:2,label:"v2"}],IRL:[{value:1,label:"v1"}],ISL:[{value:1,label:"v1"},{value:2,label:"v2"}],ISR:[{value:1,label:"v1"}],ITA:[{value:1,label:"v1"}],JAM:[{value:1,label:"v1"},{value:2,label:"v2"}],JPN:[{value:1,label:"v1"},{value:2,label:"v2"}],KEN:[{value:1,label:"v1"},{value:2,label:"v2"}],KGZ:[{value:1,label:"v1"}],KHM:[{value:1,label:"v1"}],KOR:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],LBN:[{value:1,label:"v1"},{value:2,label:"v2"}],LKA:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],LTU:[{value:1,label:"v1"}],LUX:[{value:1,label:"v1"}],LVA:[{value:1,label:"v1"},{value:2,label:"v2"}],MAR:[{value:1,label:"v1"}],MDA:[{value:1,label:"v1"}],MEX:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],MKD:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],MLT:[{value:1,label:"v1"}],MNG:[{value:1,label:"v1"}],MUS:[{value:1,label:"v1"},{value:2,label:"v2"}],MYS:[{value:1,label:"v1"},{value:2,label:"v2"}],NGA:[{value:1,label:"v1"},{value:2,label:"v2"}],NIC:[{value:1,label:"v1"}],NLD:[{value:1,label:"v1"}],NOR:[{value:1,label:"v1"},{value:2,label:"v2"}],NZL:[{value:1,label:"v1"},{value:2,label:"v2"}],PAK:[{value:1,label:"v1"},{value:2,label:"v2"}],PAN:[{value:1,label:"v1"}],PER:[{value:1,label:"v1"}],PHL:[{value:1,label:"v1"}],POL:[{value:1,label:"v1"}],PRI:[{value:1,label:"v1"}],PRT:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],PRY:[{value:1,label:"v1"}],ROU:[{value:1,label:"v1"}],SAU:[{value:1,label:"v1"},{value:2,label:"v2"}],SGP:[{value:1,label:"v1"},{value:2,label:"v2"}],SLV:[{value:1,label:"v1"}],SRB:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],SVK:[{value:1,label:"v1"}],SVN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],SWE:[{value:1,label:"v1"},{value:2,label:"v2"}],THA:[{value:1,label:"v1"},{value:2,label:"v2"}],TUN:[{value:1,label:"v1"},{value:2,label:"v2"},{value:3,label:"v3"}],TUR:[{value:1,label:"v1"}],TWN:[{value:1,label:"v1"}],UGA:[{value:1,label:"v1"}],UKR:[{value:1,label:"v1"}],URY:[{value:1,label:"v1"}],USA:[{value:1,label:"v1"}],VNM:[{value:1,label:"v1"},{value:2,label:"v2"}],XKX:[{value:1,label:"v1"}],ZAF:[{value:1,label:"v1"}],ZWE:[{value:1,label:"v1"}]},ue=Object.fromEntries(Object.entries(Z).filter(([,e])=>e.length>1)),me=[{value:"employment_basic_information",label:"Basic Information"},{value:"contract_details",label:"Contract Details"}];import{jsx as r,jsxs as y}from"react/jsx-runtime";var pe=v(()=>{let[e,a]=B("employment_basic_information"),[l,n]=B(1),[d,m]=B(1),[p,t]=B("ARE"),{client:c}=Q(),{data:g}=Re({...le(c,"schema-comparison"),select:v(o=>o.data?.data?.filter(C=>C.eor_onboarding).filter(C=>Object.keys(ue).includes(C.code)).map(C=>({label:C.name,value:C.code}))||[],"select")}),b=e==="contract_details",{data:f,isLoading:i}=G({countryCode:p,form:e,fieldValues:{},jsonSchemaVersion:l,options:{queryOptions:{enabled:!0}}}),{data:h,isLoading:S}=G({countryCode:p,form:e,fieldValues:{},jsonSchemaVersion:d,options:{queryOptions:{enabled:!0}}}),x=i||S,R=Z[p],V=R!==void 0,F=we(()=>e==="employment_basic_information"?ve:R||[{value:"latest",label:"Latest"}],[e,R]);return Ce(()=>{let o=F.map(C=>C.value);o.includes(l)||n(F[0].value),o.includes(d)||m(F[0].value)},[e,p,F,l,d]),y("div",{className:"space-y-6",children:[y(D,{children:[r(k,{children:r(j,{children:"Configuration"})}),y(L,{className:"space-y-4",children:[y("div",{children:[r(A,{className:"mb-2 block",children:"Form Type"}),r(Y,{value:e,onValueChange:o=>a(o),children:r(W,{className:"grid w-full grid-cols-2",children:me.map(o=>r(K,{value:o.value,children:o.label},o.value))})})]}),b&&!V&&r("div",{className:"rounded-md bg-yellow-50 p-4 border border-yellow-200",children:y("div",{className:"flex",children:[r("div",{className:"flex-shrink-0",children:r("svg",{className:"h-5 w-5 text-yellow-400",viewBox:"0 0 20 20",fill:"currentColor",children:r("path",{fillRule:"evenodd",d:"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})})}),y("div",{className:"ml-3",children:[r("h3",{className:"text-sm font-medium text-yellow-800",children:"Version mappings not found"}),r("div",{className:"mt-2 text-sm text-yellow-700",children:y("p",{children:["Country"," ",r("span",{className:"font-semibold",children:p})," is not configured in COUNTRY_CONTRACT_VERSIONS. Using default (latest only)."]})})]})]})}),b&&y("div",{children:[r(A,{htmlFor:"country-select",className:"mb-2 block",children:"Country"}),y(E,{value:p,onValueChange:t,children:[r(I,{id:"country-select",children:r(P,{placeholder:"Select a country"})}),r(J,{children:g?.map(o=>r(_,{value:o.value,children:o.label},o.value))})]})]}),y("div",{className:"grid grid-cols-2 gap-4",children:[y("div",{children:[r(A,{htmlFor:"top-version",className:"mb-2 block",children:"Left Version"}),y(E,{value:String(l),onValueChange:o=>n(o==="latest"?"latest":Number(o)),children:[r(I,{id:"top-version",children:r(P,{placeholder:"Select version"})}),r(J,{children:F.map(o=>r(_,{value:String(o.value),children:o.label},String(o.value)))})]})]}),y("div",{children:[r(A,{htmlFor:"bottom-version",className:"mb-2 block",children:"Right Version"}),y(E,{value:String(d),onValueChange:o=>m(o==="latest"?"latest":Number(o)),children:[r(I,{id:"bottom-version",children:r(P,{placeholder:"Select version"})}),r(J,{children:F.map(o=>r(_,{value:String(o.value),children:o.label},String(o.value)))})]})]})]})]})]}),r(de,{topVersion:l,bottomVersion:d,topFields:f?.fields||[],bottomFields:h?.fields||[],topFieldsets:f?.meta?.["x-jsf-fieldsets"],bottomFieldsets:h?.meta?.["x-jsf-fieldsets"],isLoading:x})]})},"JsonSchemaComparison");export{ce as a,be as b,fe as c,Y as d,W as e,K as f,ge as g,te as h,pe as i};
2
+ //# sourceMappingURL=chunk-KAHAW4HH.js.map
@@ -1,2 +1,2 @@
1
- import{a as _}from"./chunk-5WIBTOCI.js";import{a as C}from"./chunk-MKUSE7JK.js";import{a as l}from"./chunk-OVJTJFYF.js";import{A as y,S as f,_ as h,y as p}from"./chunk-TNQKP2XT.js";import{e as c}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMutation as F}from"@tanstack/react-query";import{useQuery as u}from"@tanstack/react-query";var b=n(e=>{let{client:t}=c();return u({...e,queryKey:["company-currencies"],retry:!1,queryFn:n(async()=>{let r=await f({client:t});if(r.error||!r.data)throw new Error("Failed to fetch company currencies");return r},"queryFn"),select:n(({data:r})=>r?.data?.company_currencies.map(a=>({value:a.code,label:a.code}))||[],"select")})},"useCompanyCurrencies"),A=n(()=>{let{client:e}=c();return F({mutationFn:n(t=>h({client:e,headers:{Authorization:""},body:t,query:{action:"send_create_password_email"}}),"mutationFn")})},"useCreateCompanyRequest"),I=n(()=>{let{client:e}=c();return F({mutationFn:n(({companyId:t,payload:r,jsonSchemaVersion:a})=>p({client:e,headers:{Authorization:""},path:{company_id:t},body:r,query:{address_details_json_schema_version:a}}),"mutationFn")})},"useUpdateCompanyRequest"),P=n(e=>{let{client:t}=c(),{data:r,isLoading:a}=u({...C(t,"create-company-countries"),select:n(i=>i.data?.data?.filter(s=>s.eor_onboarding).map(s=>({label:s.name,value:s.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),{data:o,isLoading:m}=b(e?.queryOptions),d=l(_.data.schema,{},e);if(r){let i=d.fields.find(s=>s.name==="country_code");i&&(i.options=r)}if(o){let i=d.fields.find(s=>s.name==="desired_currency");i&&(i.options=o)}return{isLoading:a||m,companyBasicInformationForm:d}},"useCountriesSchemaField"),U=n(({countryCode:e,fieldValues:t,options:r})=>{let{client:a}=c();return u({queryKey:["company-address-details-schema",e],retry:!1,queryFn:n(async()=>{if(!e)throw new Error("Country code is required");let o=await y({client:a,headers:{Authorization:""},path:{country_code:e,form:"address_details"},query:{json_schema_version:r?.jsonSchemaVersion?.form_schema?.address_details||"latest"}});if(o.error||!o.data)throw new Error("Failed to fetch address details schema");return o},"queryFn"),enabled:r?.queryOptions?.enabled&&!!e,select:n(({data:o})=>{let m=o?.data||{};return l(m,t,r)},"select")})},"useAddressDetailsSchema");export{A as a,I as b,P as c,U as d};
2
- //# sourceMappingURL=chunk-2RWZ2XC5.js.map
1
+ import{a as _}from"./chunk-5WIBTOCI.js";import{a as C}from"./chunk-MKUSE7JK.js";import{a as l}from"./chunk-K2SHDZBB.js";import{A as y,S as f,_ as h,y as p}from"./chunk-TNQKP2XT.js";import{e as c}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMutation as F}from"@tanstack/react-query";import{useQuery as u}from"@tanstack/react-query";var b=n(e=>{let{client:t}=c();return u({...e,queryKey:["company-currencies"],retry:!1,queryFn:n(async()=>{let r=await f({client:t});if(r.error||!r.data)throw new Error("Failed to fetch company currencies");return r},"queryFn"),select:n(({data:r})=>r?.data?.company_currencies.map(a=>({value:a.code,label:a.code}))||[],"select")})},"useCompanyCurrencies"),A=n(()=>{let{client:e}=c();return F({mutationFn:n(t=>h({client:e,headers:{Authorization:""},body:t,query:{action:"send_create_password_email"}}),"mutationFn")})},"useCreateCompanyRequest"),I=n(()=>{let{client:e}=c();return F({mutationFn:n(({companyId:t,payload:r,jsonSchemaVersion:a})=>p({client:e,headers:{Authorization:""},path:{company_id:t},body:r,query:{address_details_json_schema_version:a}}),"mutationFn")})},"useUpdateCompanyRequest"),P=n(e=>{let{client:t}=c(),{data:r,isLoading:a}=u({...C(t,"create-company-countries"),select:n(i=>i.data?.data?.filter(s=>s.eor_onboarding).map(s=>({label:s.name,value:s.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),{data:o,isLoading:m}=b(e?.queryOptions),d=l(_.data.schema,{},e);if(r){let i=d.fields.find(s=>s.name==="country_code");i&&(i.options=r)}if(o){let i=d.fields.find(s=>s.name==="desired_currency");i&&(i.options=o)}return{isLoading:a||m,companyBasicInformationForm:d}},"useCountriesSchemaField"),U=n(({countryCode:e,fieldValues:t,options:r})=>{let{client:a}=c();return u({queryKey:["company-address-details-schema",e],retry:!1,queryFn:n(async()=>{if(!e)throw new Error("Country code is required");let o=await y({client:a,headers:{Authorization:""},path:{country_code:e,form:"address_details"},query:{json_schema_version:r?.jsonSchemaVersion?.form_schema?.address_details||"latest"}});if(o.error||!o.data)throw new Error("Failed to fetch address details schema");return o},"queryFn"),enabled:r?.queryOptions?.enabled&&!!e,select:n(({data:o})=>{let m=o?.data||{};return l(m,t,r)},"select")})},"useAddressDetailsSchema");export{A as a,I as b,P as c,U as d};
2
+ //# sourceMappingURL=chunk-LANAT75E.js.map
@@ -1,2 +1,2 @@
1
- import{a as m}from"./chunk-HVI5GHIV.js";import{a as r}from"./chunk-DCPBAFIN.js";import{a}from"./chunk-H66IKMI4.js";import{a as c}from"./chunk-L4Q4ZT4L.js";import{a as e}from"./chunk-SWCZJY6I.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-4AW3FP2P.js.map
1
+ import{a as m}from"./chunk-HVI5GHIV.js";import{a as r}from"./chunk-DCPBAFIN.js";import{a}from"./chunk-H66IKMI4.js";import{a as c}from"./chunk-CBPV2QLT.js";import{a as e}from"./chunk-SWCZJY6I.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-LDSS6RYC.js.map
@@ -1,2 +1,2 @@
1
- import{a as p}from"./chunk-OVJTJFYF.js";import{C as c,J as m,N as C,S as d,m as l,v as u}from"./chunk-TNQKP2XT.js";import{e as o}from"./chunk-H2O4CVKF.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-ICOGJLAL.js.map
1
+ import{a as p}from"./chunk-K2SHDZBB.js";import{C as c,J as m,N as C,S as d,m as l,v as u}from"./chunk-TNQKP2XT.js";import{e as o}from"./chunk-H2O4CVKF.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-PIGJNWPB.js.map
@@ -1,2 +1,2 @@
1
- import{e as R,f as p,g as y}from"./chunk-TVBZT6FA.js";import{a as A}from"./chunk-WVJDCDGZ.js";import{a as U}from"./chunk-MKUSE7JK.js";import{a as d}from"./chunk-OVJTJFYF.js";import{A as _,D as S,F as w,I as O,K as v,P as q,U as P,ba as j,ca as x,g as f,i as g,j as h,n as b,o as C,w as F,x as E}from"./chunk-TNQKP2XT.js";import{e as i}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as m,useQuery as c}from"@tanstack/react-query";var Y=t(e=>{let{client:r}=i();return c({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let n=await E({client:r,headers:{Authorization:""},path:{company_id:e}});if(n.error||!n.data)throw new Error("Failed to fetch employment data");return n},"queryFn"),select:t(({data:n})=>n.data.company,"select")})},"useCompany"),Z=t(e=>{let{client:r}=i();return c({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:t(async()=>b({client:r,path:{employment_id:e}}).then(n=>{if(n.error||!n.data)throw new Error("Failed to fetch benefit offers data");return n}),"queryFn"),select:t(({data:n})=>n?.data?.reduce((a,o)=>({...a,[o.benefit_group.slug]:{value:o.benefit_tier?.slug??"no",...o.benefit_group?.filter?.slug?{filter:o.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),$=t((e,r)=>{let{client:n}=i();return c({queryKey:["employment-engagement-agreement-details",e],retry:!1,enabled:r?.enabled??!!e,queryFn:t(async()=>j({client:n,headers:{Authorization:""},path:{employment_id:e}}).then(a=>{if(a.error||!a.data)throw new Error("Failed to fetch engagement agreement details");return a}),"queryFn"),select:t(({data:a})=>a?.data?.details,"select")})},"useEmploymentEngagementAgreementDetails"),ee=t(()=>{let{client:e}=i();return m({mutationFn:t(r=>P({client:e,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),te=t(()=>{let{client:e}=i();return m({mutationFn:t(r=>F({client:e,body:r}),"mutationFn")})},"useCreateReserveInvoice"),ne=t(({countryCode:e,form:r,fieldValues:n,options:a,query:o={},jsonSchemaVersion:s})=>{let{client:l}=i(),D=s?{json_schema_version:s}:{};return c({queryKey:["onboarding-json-schema-form",e,r,s],retry:!1,queryFn:t(async()=>{let u=await _({client:l,headers:{Authorization:""},path:{country_code:e,form:r},query:{skip_benefits:!0,...o,...D}});if(u.error||!u.data)throw new Error("Failed to fetch onboarding schema");return u},"queryFn"),enabled:a?.queryOptions?.enabled,select:t(({data:u})=>{let B=u?.data||{};return d(B,n,a)},"select")})},"useJSONSchemaForm"),re=t((e,r,n)=>{let{client:a}=i(),o={json_schema_version:y(n)};return c({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let s=await w({client:a,path:{employment_id:e},query:o});if(s.error||!s.data)throw new Error("Failed to fetch benefit offers schema");return s},"queryFn"),select:t(({data:s})=>{let l=s?.data?.schema||{};return d(l,r,{jsfModify:n?.jsfModify?.benefits})},"select")})},"useBenefitOffersSchema"),oe=t(e=>{let{client:r}=i(),n={json_schema_version:p(e)};return m({mutationFn:t(a=>g({client:r,headers:{Authorization:""},body:a,query:{...n}}),"mutationFn")})},"useCreateEmployment"),ae=t((e,r)=>{let{client:n}=i(),a={employment_basic_information_json_schema_version:p(r),contract_details_json_schema_version:R(r,e)||1};return m({mutationFn:t(({employmentId:o,...s})=>O({client:n,headers:{Authorization:""},body:s,path:{employment_id:o},query:{skip_benefits:!0,...a}}),"mutationFn")})},"useUpdateEmployment"),se=t(()=>{let{client:e}=i();return m({mutationFn:t(({employmentId:r,...n})=>x({client:e,headers:{Authorization:""},body:n,path:{employment_id:r}}),"mutationFn")})},"useUpdateEmploymentEngagementAgreementDetails"),ie=t(e=>{let{client:r}=i();return m({mutationFn:t(({employmentId:n,...a})=>{let o={json_schema_version:y(e)};return C({client:r,body:a,path:{employment_id:n},query:o})},"mutationFn")})},"useUpdateBenefitsOffers"),le=t(e=>{let{client:r}=i(),{data:n,isLoading:a}=c({...U(r,"onboarding-countries"),select:t(s=>s.data?.data?.filter(l=>l.eor_onboarding).map(l=>({label:l.name,value:l.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),o=d(A.data.schema,{},e);if(n){let s=o.fields.find(l=>l.name==="country");s&&(s.options=n)}return{isLoading:a,selectCountryForm:o}},"useCountriesSchemaField"),me=t(({type:e="spread"})=>{let{client:r}=i();return m({mutationFn:t(n=>(e==="no_spread"?f:q)({client:r,body:n}),"mutationFn")})},"useConvertCurrency"),ce=t(()=>{let{client:e}=i();return m({mutationFn:t(({employmentId:r,...n})=>v({client:e,path:{employment_id:r},body:n}),"mutationFn")})},"useUpsertContractEligibility"),ue=t((e,r,n=!0)=>{let{client:a}=i();return c({queryKey:["employment-onboarding-reserves-status",e,r],retry:!1,enabled:n&&!!e&&!!r,queryFn:t(async()=>{let o=await h({client:a,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:t(({data:o})=>o?.data?.status,"select")})},"useEmploymentOnboardingReservesStatus"),de=t((e,r,n)=>{let{client:a}=i();return c({queryKey:["engagement-agreement-details",e],retry:!1,enabled:n?.queryOptions?.enabled??!!e,queryFn:t(async()=>{let o=await S({client:a,path:{country_code:e}});if(o.error||!o.data)throw new Error("Failed to fetch engagement agreement details");return o},"queryFn"),select:t(({data:o})=>{let s=o?.data?.schema||{};return d(s,r,{jsfModify:n?.jsfModify?.engagement_agreement_details})},"select")})},"useEngagementAgreementDetailsSchema");export{Y as a,Z as b,$ as c,ee as d,te as e,ne as f,re as g,oe as h,ae as i,se as j,ie as k,le as l,me as m,ce as n,ue as o,de as p};
2
- //# sourceMappingURL=chunk-EU7WVCHQ.js.map
1
+ import{e as R,f as p,g as y}from"./chunk-TVBZT6FA.js";import{a as A}from"./chunk-WVJDCDGZ.js";import{a as U}from"./chunk-MKUSE7JK.js";import{a as d}from"./chunk-K2SHDZBB.js";import{A as _,D as S,F as w,I as O,K as v,P as q,U as P,ba as j,ca as x,g as f,i as g,j as h,n as b,o as C,w as F,x as E}from"./chunk-TNQKP2XT.js";import{e as i}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as m,useQuery as c}from"@tanstack/react-query";var Y=t(e=>{let{client:r}=i();return c({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let n=await E({client:r,headers:{Authorization:""},path:{company_id:e}});if(n.error||!n.data)throw new Error("Failed to fetch employment data");return n},"queryFn"),select:t(({data:n})=>n.data.company,"select")})},"useCompany"),Z=t(e=>{let{client:r}=i();return c({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:t(async()=>b({client:r,path:{employment_id:e}}).then(n=>{if(n.error||!n.data)throw new Error("Failed to fetch benefit offers data");return n}),"queryFn"),select:t(({data:n})=>n?.data?.reduce((a,o)=>({...a,[o.benefit_group.slug]:{value:o.benefit_tier?.slug??"no",...o.benefit_group?.filter?.slug?{filter:o.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),$=t((e,r)=>{let{client:n}=i();return c({queryKey:["employment-engagement-agreement-details",e],retry:!1,enabled:r?.enabled??!!e,queryFn:t(async()=>j({client:n,headers:{Authorization:""},path:{employment_id:e}}).then(a=>{if(a.error||!a.data)throw new Error("Failed to fetch engagement agreement details");return a}),"queryFn"),select:t(({data:a})=>a?.data?.details,"select")})},"useEmploymentEngagementAgreementDetails"),ee=t(()=>{let{client:e}=i();return m({mutationFn:t(r=>P({client:e,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),te=t(()=>{let{client:e}=i();return m({mutationFn:t(r=>F({client:e,body:r}),"mutationFn")})},"useCreateReserveInvoice"),ne=t(({countryCode:e,form:r,fieldValues:n,options:a,query:o={},jsonSchemaVersion:s})=>{let{client:l}=i(),D=s?{json_schema_version:s}:{};return c({queryKey:["onboarding-json-schema-form",e,r,s],retry:!1,queryFn:t(async()=>{let u=await _({client:l,headers:{Authorization:""},path:{country_code:e,form:r},query:{skip_benefits:!0,...o,...D}});if(u.error||!u.data)throw new Error("Failed to fetch onboarding schema");return u},"queryFn"),enabled:a?.queryOptions?.enabled,select:t(({data:u})=>{let B=u?.data||{};return d(B,n,a)},"select")})},"useJSONSchemaForm"),re=t((e,r,n)=>{let{client:a}=i(),o={json_schema_version:y(n)};return c({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let s=await w({client:a,path:{employment_id:e},query:o});if(s.error||!s.data)throw new Error("Failed to fetch benefit offers schema");return s},"queryFn"),select:t(({data:s})=>{let l=s?.data?.schema||{};return d(l,r,{jsfModify:n?.jsfModify?.benefits})},"select")})},"useBenefitOffersSchema"),oe=t(e=>{let{client:r}=i(),n={json_schema_version:p(e)};return m({mutationFn:t(a=>g({client:r,headers:{Authorization:""},body:a,query:{...n}}),"mutationFn")})},"useCreateEmployment"),ae=t((e,r)=>{let{client:n}=i(),a={employment_basic_information_json_schema_version:p(r),contract_details_json_schema_version:R(r,e)||1};return m({mutationFn:t(({employmentId:o,...s})=>O({client:n,headers:{Authorization:""},body:s,path:{employment_id:o},query:{skip_benefits:!0,...a}}),"mutationFn")})},"useUpdateEmployment"),se=t(()=>{let{client:e}=i();return m({mutationFn:t(({employmentId:r,...n})=>x({client:e,headers:{Authorization:""},body:n,path:{employment_id:r}}),"mutationFn")})},"useUpdateEmploymentEngagementAgreementDetails"),ie=t(e=>{let{client:r}=i();return m({mutationFn:t(({employmentId:n,...a})=>{let o={json_schema_version:y(e)};return C({client:r,body:a,path:{employment_id:n},query:o})},"mutationFn")})},"useUpdateBenefitsOffers"),le=t(e=>{let{client:r}=i(),{data:n,isLoading:a}=c({...U(r,"onboarding-countries"),select:t(s=>s.data?.data?.filter(l=>l.eor_onboarding).map(l=>({label:l.name,value:l.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),o=d(A.data.schema,{},e);if(n){let s=o.fields.find(l=>l.name==="country");s&&(s.options=n)}return{isLoading:a,selectCountryForm:o}},"useCountriesSchemaField"),me=t(({type:e="spread"})=>{let{client:r}=i();return m({mutationFn:t(n=>(e==="no_spread"?f:q)({client:r,body:n}),"mutationFn")})},"useConvertCurrency"),ce=t(()=>{let{client:e}=i();return m({mutationFn:t(({employmentId:r,...n})=>v({client:e,path:{employment_id:r},body:n}),"mutationFn")})},"useUpsertContractEligibility"),ue=t((e,r,n=!0)=>{let{client:a}=i();return c({queryKey:["employment-onboarding-reserves-status",e,r],retry:!1,enabled:n&&!!e&&!!r,queryFn:t(async()=>{let o=await h({client:a,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:t(({data:o})=>o?.data?.status,"select")})},"useEmploymentOnboardingReservesStatus"),de=t((e,r,n)=>{let{client:a}=i();return c({queryKey:["engagement-agreement-details",e],retry:!1,enabled:n?.queryOptions?.enabled??!!e,queryFn:t(async()=>{let o=await S({client:a,path:{country_code:e}});if(o.error||!o.data)throw new Error("Failed to fetch engagement agreement details");return o},"queryFn"),select:t(({data:o})=>{let s=o?.data?.schema||{};return d(s,r,{jsfModify:n?.jsfModify?.engagement_agreement_details})},"select")})},"useEngagementAgreementDetailsSchema");export{Y as a,Z as b,$ as c,ee as d,te as e,ne as f,re as g,oe as h,ae as i,se as j,ie as k,le as l,me as m,ce as n,ue as o,de as p};
2
+ //# sourceMappingURL=chunk-TSWZPJNS.js.map
@@ -1,2 +1,2 @@
1
- import{a as S}from"./chunk-6S66UQ2X.js";import{a as e}from"./chunk-CW7CHRMN.js";import{a as s}from"./chunk-IRLOG7MR.js";import{a as p}from"./chunk-DB4JHJ3Z.js";import{a as c}from"./chunk-FHW5CMN5.js";import{a as l}from"./chunk-KVUKJU5U.js";import{a as i}from"./chunk-H4S6LSDA.js";import{a as m}from"./chunk-ZSMILHO4.js";import{a as f}from"./chunk-ZWH34WQJ.js";import{a as u}from"./chunk-WJ64Q54L.js";import{a as d}from"./chunk-B6YWTMGV.js";import{a as n}from"./chunk-Q3ALCPJN.js";import{a}from"./chunk-B7YD67K7.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as I,useRef as F,useMemo as y}from"react";import{jsx as D}from"react/jsx-runtime";var J=t(({render:g,employmentId:C,externalId:b,countryCode:v,skipSteps:B,initialValues:O,options:w})=>{let P=I(),o=F(void 0),R=y(()=>({setValue:o}),[]),r=a({options:{...w,onContractReviewed:t(()=>{o.current&&o.current("review_completed",!0)},"onContractReviewed")},employmentId:C,externalId:b,countryCode:v,skipSteps:B,initialValues:O});return D(n.Provider,{value:{contractorOnboardingBag:r,formId:P,formRef:R},children:g({contractorOnboardingBag:r,components:{BasicInformationStep:m,SelectCountryStep:i,BackButton:e,SubmitButton:p,PricingPlanStep:c,EligibilityQuestionnaireStep:S,ContractDetailsStep:f,ContractPreviewStep:u,OnboardingInvite:s,ContractReviewButton:d,SaveDraftButton:l}})})},"ContractorOnboardingFlow");export{J as a};
2
- //# sourceMappingURL=chunk-G6R56RS2.js.map
1
+ import{a as S}from"./chunk-6S66UQ2X.js";import{a as e}from"./chunk-CW7CHRMN.js";import{a as s}from"./chunk-75MI3G5H.js";import{a as p}from"./chunk-DB4JHJ3Z.js";import{a as c}from"./chunk-FHW5CMN5.js";import{a as l}from"./chunk-KVUKJU5U.js";import{a as i}from"./chunk-H4S6LSDA.js";import{a as m}from"./chunk-ZSMILHO4.js";import{a as f}from"./chunk-ZWH34WQJ.js";import{a as u}from"./chunk-WJ64Q54L.js";import{a as d}from"./chunk-B6YWTMGV.js";import{a as n}from"./chunk-Q3ALCPJN.js";import{a}from"./chunk-I66TFXX4.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as I,useRef as F,useMemo as y}from"react";import{jsx as D}from"react/jsx-runtime";var J=t(({render:g,employmentId:C,externalId:b,countryCode:v,skipSteps:B,initialValues:O,options:w})=>{let P=I(),o=F(void 0),R=y(()=>({setValue:o}),[]),r=a({options:{...w,onContractReviewed:t(()=>{o.current&&o.current("review_completed",!0)},"onContractReviewed")},employmentId:C,externalId:b,countryCode:v,skipSteps:B,initialValues:O});return D(n.Provider,{value:{contractorOnboardingBag:r,formId:P,formRef:R},children:g({contractorOnboardingBag:r,components:{BasicInformationStep:m,SelectCountryStep:i,BackButton:e,SubmitButton:p,PricingPlanStep:c,EligibilityQuestionnaireStep:S,ContractDetailsStep:f,ContractPreviewStep:u,OnboardingInvite:s,ContractReviewButton:d,SaveDraftButton:l}})})},"ContractorOnboardingFlow");export{J as a};
2
+ //# sourceMappingURL=chunk-WSARYSM5.js.map
@@ -1,2 +1,2 @@
1
- import{a as U}from"./chunk-6DHV4GT6.js";import{a as W}from"./chunk-AWQU5AAN.js";import{a as Y}from"./chunk-SYXJTCKS.js";import{a as Q}from"./chunk-4YCBOVSQ.js";import{a as J}from"./chunk-SGQ7FXWO.js";import{a as H}from"./chunk-IF42CZJH.js";import{a as q,b as B,c as L,d as z}from"./chunk-LG5NFDID.js";import{f as Z,g as K}from"./chunk-UQ3H4S26.js";import{a as R}from"./chunk-ZXGAFQXW.js";import{a as S}from"./chunk-JLUYUNSV.js";import{a as N}from"./chunk-RWXZG4KO.js";import{a as E}from"./chunk-OVJTJFYF.js";import{a as _,b as v}from"./chunk-BZ232WZD.js";import{q as O}from"./chunk-TNQKP2XT.js";import{a as w,g as u,m as D}from"./chunk-RZCU2MT3.js";import{a as A}from"./chunk-TSPDJUGG.js";import{a as I}from"./chunk-626FTNKA.js";import{e as $}from"./chunk-H2O4CVKF.js";import{a as o}from"./chunk-P37U34EQ.js";import xe from"lodash.omitby";import je from"lodash.isnull";import{format as x,isFuture as Ve,parseISO as j,subDays as Pe}from"date-fns";import{useMemo as V}from"react";import be from"lodash.omit";import{useQuery as Fe}from"@tanstack/react-query";var G=o(({query:t,options:e})=>{let{client:y}=$();return Fe({queryKey:["payroll-calendars"],queryFn:o(()=>O({client:y,query:{year:t?.year,country_code:t?.countryCode}}),"queryFn"),enabled:e?.enabled,select:o(c=>c.data?.data?.payroll_calendars?.[0],"select")})},"usePayrollCalendars");import{isFuture as Me,isToday as ge,parseISO as Se}from"date-fns";var X=o(t=>{if(!t)return!1;let e=Se(t);return Me(e)||ge(e)},"isInProbationPeriod");import{Fragment as ke,jsx as m,jsxs as Ce}from"react/jsx-runtime";var lo=o(({employmentId:t,options:e,initialValues:y})=>{let{fieldValues:c,setFieldValues:ee,stepState:l,previousStep:oe,nextStep:ie}=A(q),{data:n,isLoading:te}=N({employmentId:t,queryParams:{exclude_files:!0}}),{data:ne}=G({query:{year:new Date().getFullYear().toString(),countryCode:n?.country?.code},options:{enabled:!!n?.country?.code}}),T=X(n?.probation_period_end_date),F=B(ne),P=V(()=>T?x(new Date,"yyyy-MM-dd"):x(F,"yyyy-MM-dd"),[T,F]),M=!!(n?.provisional_start_date&&Ve(j(n.provisional_start_date))),ae={personal_email:n?.basic_information?.email},g=z({...ae,...y,...l.values?.employee_communication,...l.values?.termination_details,...l.values?.paid_time_off,...l.values?.additional_information},M),d=V(()=>({...g,...c}),[c,g]),b=L({minTerminationDate:F,isEmployeeInProbationPeriod:T,selectedDate:j(d.proposed_termination_date)}),re=V(()=>{let s=R.data.schema.properties.termination_reason.oneOf,a=M?s.filter(i=>i.const==="cancellation_before_start_date"):s.filter(i=>i.const!=="cancellation_before_start_date");return{fields:{risk_assesment_info:S("Offboarding risk assessment","Employees may be protected from termination if they fall into certain categories. To help avoid claims from employees, let us know if the employee is part of one or more of these categories. Select all that apply.",{className:e?.jsfModify?.fields?.risk_assesment_info?.["x-jsf-presentation"]?.className}),termination_reason:{...e?.jsfModify?.fields?.termination_reason,oneOf:a},proposed_termination_date_info:S("Proposed termination date",Ce(ke,{children:["In most cases, Remote must provide notice to the employee before termination. The required notice period depends on local labor laws, the employment agreement, and other factors. We'll use those factors to determine the required notice period.",m(v,{external:!0,zendeskId:_.terminationNoticePeriods,className:D("text-sm",e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.zendeskTriggerButtonClassName),children:"Learn about notice periods"})]}),{className:e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.className}),proposed_termination_date:{...e?.jsfModify?.fields?.proposed_termination_date,"x-jsf-presentation":{...e?.jsfModify?.fields?.proposed_termination_date?.["x-jsf-presentation"],minDate:P,...d.termination_reason==="cancellation_before_start_date"&&n?.provisional_start_date?{maxDate:x(Pe(j(n.provisional_start_date),1),"yyyy-MM-dd")}:{},...b},...d.termination_reason==="cancellation_before_start_date"?{"x-jsf-errorMessage":{maximum:"The proposed termination date must be before the employee's start date."}}:{}},paid_time_off_info:{...e?.jsfModify?.fields?.paid_time_off_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"]?.Component;return m(J,{employeeName:n?.basic_information?.name,proposedTerminationDate:d.proposed_termination_date,employmentId:t,employment:n,render:r=>i?m(i,{...r}):m(Q,{...r})})},"Component")}},acknowledge_termination_procedure_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"]?.Component;return m(U,{render:r=>i?m(i,{...r}):m(W,{...r})})},"Component")}},acknowledge_termination_procedure_fees_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"],Component:o(()=>{let i={involuntaryOffboardingServiceChargeZendeskId:_.involuntaryOffboardingServiceCharge,reconciliationInvoiceZendeskId:_.reconciliationInvoice},r=e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"]?.Component;return r?m(r,{...i}):m(Y,{...i})},"Component")}}}}},[n,t,d.proposed_termination_date,d.termination_reason,M,P,e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,e?.jsfModify?.fields?.acknowledge_termination_procedure_info,e?.jsfModify?.fields?.paid_time_off_info,e?.jsfModify?.fields?.proposed_termination_date,e?.jsfModify?.fields?.proposed_termination_date_info,e?.jsfModify?.fields?.risk_assesment_info,e?.jsfModify?.fields?.termination_reason,b]),{data:f,isLoading:se}=K({formValues:d,jsfModify:{...e?.jsfModify,fields:{...e?.jsfModify?.fields,...re?.fields}},step:l.currentStep.name}),me=E(H.data.schema),k=Z(),{mutateAsync:de}=w(k);async function fe(s){if(!t)throw new Error("Employment id is missing");if(f){let a=await C(s,!0),{customer_informed_employee:i}=a,r=i==="yes"?{employee_awareness:{date:a.customer_informed_employee_date,note:a.customer_informed_employee_description}}:void 0,ue=await I(a,["agrees_to_pto_amount","confidential","customer_informed_employee","will_challenge_termination"]),_e=be(ue,"customer_informed_employee_date","customer_informed_employee_description"),ye=xe({..._e,...r},je),p=a.timesheet_file??[],h=Array.isArray(p)&&p.length>0?{content:p[0].content,name:p[0].name}:void 0,Te={employment_id:t,termination_details:{...ye,timesheet_file:h||void 0},type:"termination"};return de(Te)}}o(fe,"onSubmit");function le(){oe()}o(le,"back");function ce(){ie()}o(ce,"next");let pe=Object.keys(c).length>0,C=o(async(s,a=!1)=>a?await u(s,me.fields,{isPartialValidation:!0}):f?await u(s,f?.fields,{isPartialValidation:!0}):{},"parseFormValues");return{employmentId:t,employment:n,fieldValues:d,isDirty:pe,stepState:l,fields:f?.fields||[],isLoading:se||te,isSubmitting:k.isPending,initialValues:g,handleValidation:o(async s=>{if(f){let a=await u(s,f?.fields);return f?.handleValidation(a)}return null},"handleValidation"),checkFieldUpdates:ee,parseFormValues:C,onSubmit:fe,back:le,next:ce}},"useTermination");export{lo as a};
2
- //# sourceMappingURL=chunk-CZPJWO2R.js.map
1
+ import{a as Q}from"./chunk-4YCBOVSQ.js";import{a as J}from"./chunk-GCQYAEZT.js";import{a as U}from"./chunk-6DHV4GT6.js";import{a as W}from"./chunk-AWQU5AAN.js";import{a as Y}from"./chunk-SYXJTCKS.js";import{a as H}from"./chunk-IF42CZJH.js";import{a as q,b as B,c as L,d as z}from"./chunk-LG5NFDID.js";import{f as Z,g as K}from"./chunk-5X6JMXP6.js";import{a as R}from"./chunk-ZXGAFQXW.js";import{a as S}from"./chunk-JLUYUNSV.js";import{a as N}from"./chunk-RWXZG4KO.js";import{a as E}from"./chunk-K2SHDZBB.js";import{a as _,b as v}from"./chunk-BZ232WZD.js";import{q as O}from"./chunk-TNQKP2XT.js";import{a as w,g as u,m as D}from"./chunk-RZCU2MT3.js";import{a as A}from"./chunk-TSPDJUGG.js";import{a as I}from"./chunk-626FTNKA.js";import{e as $}from"./chunk-H2O4CVKF.js";import{a as o}from"./chunk-P37U34EQ.js";import xe from"lodash.omitby";import je from"lodash.isnull";import{format as x,isFuture as Ve,parseISO as j,subDays as Pe}from"date-fns";import{useMemo as V}from"react";import be from"lodash.omit";import{useQuery as Fe}from"@tanstack/react-query";var G=o(({query:t,options:e})=>{let{client:y}=$();return Fe({queryKey:["payroll-calendars"],queryFn:o(()=>O({client:y,query:{year:t?.year,country_code:t?.countryCode}}),"queryFn"),enabled:e?.enabled,select:o(c=>c.data?.data?.payroll_calendars?.[0],"select")})},"usePayrollCalendars");import{isFuture as Me,isToday as ge,parseISO as Se}from"date-fns";var X=o(t=>{if(!t)return!1;let e=Se(t);return Me(e)||ge(e)},"isInProbationPeriod");import{Fragment as ke,jsx as m,jsxs as Ce}from"react/jsx-runtime";var lo=o(({employmentId:t,options:e,initialValues:y})=>{let{fieldValues:c,setFieldValues:ee,stepState:l,previousStep:oe,nextStep:ie}=A(q),{data:n,isLoading:te}=N({employmentId:t,queryParams:{exclude_files:!0}}),{data:ne}=G({query:{year:new Date().getFullYear().toString(),countryCode:n?.country?.code},options:{enabled:!!n?.country?.code}}),T=X(n?.probation_period_end_date),F=B(ne),P=V(()=>T?x(new Date,"yyyy-MM-dd"):x(F,"yyyy-MM-dd"),[T,F]),M=!!(n?.provisional_start_date&&Ve(j(n.provisional_start_date))),ae={personal_email:n?.basic_information?.email},g=z({...ae,...y,...l.values?.employee_communication,...l.values?.termination_details,...l.values?.paid_time_off,...l.values?.additional_information},M),d=V(()=>({...g,...c}),[c,g]),b=L({minTerminationDate:F,isEmployeeInProbationPeriod:T,selectedDate:j(d.proposed_termination_date)}),re=V(()=>{let s=R.data.schema.properties.termination_reason.oneOf,a=M?s.filter(i=>i.const==="cancellation_before_start_date"):s.filter(i=>i.const!=="cancellation_before_start_date");return{fields:{risk_assesment_info:S("Offboarding risk assessment","Employees may be protected from termination if they fall into certain categories. To help avoid claims from employees, let us know if the employee is part of one or more of these categories. Select all that apply.",{className:e?.jsfModify?.fields?.risk_assesment_info?.["x-jsf-presentation"]?.className}),termination_reason:{...e?.jsfModify?.fields?.termination_reason,oneOf:a},proposed_termination_date_info:S("Proposed termination date",Ce(ke,{children:["In most cases, Remote must provide notice to the employee before termination. The required notice period depends on local labor laws, the employment agreement, and other factors. We'll use those factors to determine the required notice period.",m(v,{external:!0,zendeskId:_.terminationNoticePeriods,className:D("text-sm",e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.zendeskTriggerButtonClassName),children:"Learn about notice periods"})]}),{className:e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.className}),proposed_termination_date:{...e?.jsfModify?.fields?.proposed_termination_date,"x-jsf-presentation":{...e?.jsfModify?.fields?.proposed_termination_date?.["x-jsf-presentation"],minDate:P,...d.termination_reason==="cancellation_before_start_date"&&n?.provisional_start_date?{maxDate:x(Pe(j(n.provisional_start_date),1),"yyyy-MM-dd")}:{},...b},...d.termination_reason==="cancellation_before_start_date"?{"x-jsf-errorMessage":{maximum:"The proposed termination date must be before the employee's start date."}}:{}},paid_time_off_info:{...e?.jsfModify?.fields?.paid_time_off_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"]?.Component;return m(J,{employeeName:n?.basic_information?.name,proposedTerminationDate:d.proposed_termination_date,employmentId:t,employment:n,render:r=>i?m(i,{...r}):m(Q,{...r})})},"Component")}},acknowledge_termination_procedure_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"]?.Component;return m(U,{render:r=>i?m(i,{...r}):m(W,{...r})})},"Component")}},acknowledge_termination_procedure_fees_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"],Component:o(()=>{let i={involuntaryOffboardingServiceChargeZendeskId:_.involuntaryOffboardingServiceCharge,reconciliationInvoiceZendeskId:_.reconciliationInvoice},r=e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"]?.Component;return r?m(r,{...i}):m(Y,{...i})},"Component")}}}}},[n,t,d.proposed_termination_date,d.termination_reason,M,P,e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,e?.jsfModify?.fields?.acknowledge_termination_procedure_info,e?.jsfModify?.fields?.paid_time_off_info,e?.jsfModify?.fields?.proposed_termination_date,e?.jsfModify?.fields?.proposed_termination_date_info,e?.jsfModify?.fields?.risk_assesment_info,e?.jsfModify?.fields?.termination_reason,b]),{data:f,isLoading:se}=K({formValues:d,jsfModify:{...e?.jsfModify,fields:{...e?.jsfModify?.fields,...re?.fields}},step:l.currentStep.name}),me=E(H.data.schema),k=Z(),{mutateAsync:de}=w(k);async function fe(s){if(!t)throw new Error("Employment id is missing");if(f){let a=await C(s,!0),{customer_informed_employee:i}=a,r=i==="yes"?{employee_awareness:{date:a.customer_informed_employee_date,note:a.customer_informed_employee_description}}:void 0,ue=await I(a,["agrees_to_pto_amount","confidential","customer_informed_employee","will_challenge_termination"]),_e=be(ue,"customer_informed_employee_date","customer_informed_employee_description"),ye=xe({..._e,...r},je),p=a.timesheet_file??[],h=Array.isArray(p)&&p.length>0?{content:p[0].content,name:p[0].name}:void 0,Te={employment_id:t,termination_details:{...ye,timesheet_file:h||void 0},type:"termination"};return de(Te)}}o(fe,"onSubmit");function le(){oe()}o(le,"back");function ce(){ie()}o(ce,"next");let pe=Object.keys(c).length>0,C=o(async(s,a=!1)=>a?await u(s,me.fields,{isPartialValidation:!0}):f?await u(s,f?.fields,{isPartialValidation:!0}):{},"parseFormValues");return{employmentId:t,employment:n,fieldValues:d,isDirty:pe,stepState:l,fields:f?.fields||[],isLoading:se||te,isSubmitting:k.isPending,initialValues:g,handleValidation:o(async s=>{if(f){let a=await u(s,f?.fields);return f?.handleValidation(a)}return null},"handleValidation"),checkFieldUpdates:ee,parseFormValues:C,onSubmit:fe,back:le,next:ce}},"useTermination");export{lo as a};
2
+ //# sourceMappingURL=chunk-Y5JFBXNR.js.map
@@ -1,7 +1,7 @@
1
- import { C as Components } from './remoteFlows-CnHcNfc4.js';
1
+ import { C as Components } from './remoteFlows-n8r_cW0z.js';
2
2
  import 'react';
3
3
  import 'yup';
4
- import './types.gen-CDCDRemY.js';
4
+ import './types.gen-DPZBntYq.js';
5
5
  import 'react-hook-form';
6
6
 
7
7
  /**
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { P as PostCreateContractAmendmentError, b as ContractAmendmentResponse } from '../../types.gen-CDCDRemY.js';
2
+ import { P as PostCreateContractAmendmentError, b as ContractAmendmentResponse } from '../../types.gen-DPZBntYq.js';
3
3
  import { FieldValues } from 'react-hook-form';
4
4
 
5
5
  type ContractAmendmentConfirmationFormProps = {
@@ -5,11 +5,11 @@ import { ContractAmendmentForm } from './ContractAmendmentForm.js';
5
5
  import { ContractAmendmentSubmit } from './ContractAmendmentSubmit.js';
6
6
  import { useContractAmendment } from './hooks.js';
7
7
  import { ContractAmendmentParams } from './types.js';
8
- import '../../types.gen-CDCDRemY.js';
8
+ import '../../types.gen-DPZBntYq.js';
9
9
  import 'react-hook-form';
10
10
  import 'react';
11
- import '../../mutations-Dy0AcOjz.js';
12
- import '../../remoteFlows-CnHcNfc4.js';
11
+ import '../../mutations-DTK4GE8r.js';
12
+ import '../../remoteFlows-n8r_cW0z.js';
13
13
  import 'yup';
14
14
  import '@remoteoss/json-schema-form';
15
15
  import '@remoteoss/json-schema-form-v0-deprecated';