@remoteoss/remote-flows 1.31.0 → 1.32.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.
- package/dist/{chunk-V67RONRN.js → chunk-2P2OJKD4.js} +2 -2
- package/dist/{chunk-RIGP2BKY.js → chunk-3UDWOREZ.js} +2 -2
- package/dist/{chunk-QTLMJODK.js → chunk-4QVFKKVN.js} +2 -2
- package/dist/{chunk-OV3MNQPL.js → chunk-4RF6I3TT.js} +2 -2
- package/dist/{chunk-IRLOG7MR.js → chunk-75MI3G5H.js} +2 -2
- package/dist/{chunk-VCM32VB3.js → chunk-77WJNWIC.js} +2 -2
- package/dist/{chunk-UQ3H4S26.js → chunk-7A3IHNJF.js} +2 -2
- package/dist/{chunk-AUIHRJIX.js → chunk-AZZUFPQM.js} +2 -2
- package/dist/{chunk-IBUAH6HC.js → chunk-E3WR4SVV.js} +2 -2
- package/dist/chunk-GPJIEBUC.js +2 -0
- package/dist/chunk-GPJIEBUC.js.map +1 -0
- package/dist/{chunk-ZWH34WQJ.js → chunk-H4B2NWIZ.js} +2 -2
- package/dist/{chunk-PPJUUGKP.js → chunk-HIWYDAQU.js} +2 -2
- package/dist/chunk-HUAPBLSQ.js +2 -0
- package/dist/chunk-HUAPBLSQ.js.map +1 -0
- package/dist/{chunk-KNIZVHFU.js → chunk-I5NOEJSP.js} +2 -2
- package/dist/{chunk-2SS3UU6K.js → chunk-IOVRTUOC.js} +2 -2
- package/dist/chunk-K2SHDZBB.js +2 -0
- package/dist/{chunk-OVJTJFYF.js.map → chunk-K2SHDZBB.js.map} +1 -1
- package/dist/{chunk-N6OHWIQ4.js → chunk-KAHAW4HH.js} +2 -2
- package/dist/{chunk-2RWZ2XC5.js → chunk-LANAT75E.js} +2 -2
- package/dist/{chunk-IF42CZJH.js → chunk-NEKE5PRJ.js} +2 -2
- package/dist/{chunk-G6R56RS2.js → chunk-NKTGQNE2.js} +2 -2
- package/dist/{chunk-ICOGJLAL.js → chunk-PIGJNWPB.js} +2 -2
- package/dist/{chunk-L4Q4ZT4L.js → chunk-QGQSTK73.js} +2 -2
- package/dist/chunk-SC7YWKOW.js +2 -0
- package/dist/{chunk-SGQ7FXWO.js → chunk-STJW643Y.js} +2 -2
- package/dist/{chunk-CZPJWO2R.js → chunk-TLQYNJBC.js} +2 -2
- package/dist/{chunk-EU7WVCHQ.js → chunk-TSWZPJNS.js} +2 -2
- package/dist/{chunk-4AW3FP2P.js → chunk-VATDEWMF.js} +2 -2
- package/dist/{chunk-OTNGKS3S.js → chunk-VZLUAWY5.js} +2 -2
- package/dist/default-components.d.ts +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/context.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/jsfModify.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/utils.d.ts +4 -4
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
- package/dist/flows/CostCalculator/api.d.ts +2 -2
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +3 -3
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +2 -2
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/CreateCompany/CreateCompany.d.ts +4 -4
- package/dist/flows/CreateCompany/CreateCompany.js +1 -1
- package/dist/flows/CreateCompany/api.d.ts +2 -2
- package/dist/flows/CreateCompany/api.js +1 -1
- package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
- package/dist/flows/CreateCompany/context.d.ts +4 -4
- package/dist/flows/CreateCompany/hooks.d.ts +4 -4
- package/dist/flows/CreateCompany/hooks.js +1 -1
- package/dist/flows/CreateCompany/index.d.ts +4 -4
- package/dist/flows/CreateCompany/index.js +1 -1
- package/dist/flows/CreateCompany/types.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +4 -4
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -4
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/context.d.ts +5 -4
- package/dist/flows/Onboarding/hooks.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +4 -4
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +4 -4
- package/dist/flows/Onboarding/utils.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +4 -4
- package/dist/flows/Termination/api.d.ts +5 -5
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +6 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +6 -6
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +4 -4
- package/dist/flows/Termination/hooks.d.ts +4 -4
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +6 -6
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/types.d.ts +3 -2
- package/dist/flows/utils.d.ts +2 -2
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +11 -11
- package/dist/index.js +1 -1
- package/dist/internals.d.ts +3 -3
- package/dist/internals.js +1 -1
- package/dist/{mutations-Dy0AcOjz.d.ts → mutations-DWtiVhzX.d.ts} +1 -1
- package/dist/{remoteFlows-CnHcNfc4.d.ts → remoteFlows-HrHOVYvy.d.ts} +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-BCw6Enmi.d.ts → types-BBoweHNn.d.ts} +3 -3
- package/dist/{types-BIjH8PeJ.d.ts → types-C4xgDVL5.d.ts} +5 -4
- package/dist/{types-DWheQ1pi.d.ts → types-DF7KVwR4.d.ts} +1 -1
- package/dist/{types-BOg9OXFy.d.ts → types-VL8cVbKj.d.ts} +2 -2
- package/dist/{types-BTj_IIC_.d.ts → types-xGK_68j9.d.ts} +4 -3
- package/dist/{types.gen-CDCDRemY.d.ts → types.gen-C1H9Wowh.d.ts} +1 -1
- package/dist/{utils-ythMeVS9.d.ts → utils-C2a483TA.d.ts} +3 -2
- package/package.json +1 -1
- package/dist/chunk-B7YD67K7.js +0 -2
- package/dist/chunk-B7YD67K7.js.map +0 -1
- package/dist/chunk-DN6BXTAC.js +0 -2
- package/dist/chunk-LVWRZFEL.js +0 -2
- package/dist/chunk-LVWRZFEL.js.map +0 -1
- package/dist/chunk-OVJTJFYF.js +0 -2
- /package/dist/{chunk-V67RONRN.js.map → chunk-2P2OJKD4.js.map} +0 -0
- /package/dist/{chunk-RIGP2BKY.js.map → chunk-3UDWOREZ.js.map} +0 -0
- /package/dist/{chunk-QTLMJODK.js.map → chunk-4QVFKKVN.js.map} +0 -0
- /package/dist/{chunk-OV3MNQPL.js.map → chunk-4RF6I3TT.js.map} +0 -0
- /package/dist/{chunk-IRLOG7MR.js.map → chunk-75MI3G5H.js.map} +0 -0
- /package/dist/{chunk-VCM32VB3.js.map → chunk-77WJNWIC.js.map} +0 -0
- /package/dist/{chunk-UQ3H4S26.js.map → chunk-7A3IHNJF.js.map} +0 -0
- /package/dist/{chunk-AUIHRJIX.js.map → chunk-AZZUFPQM.js.map} +0 -0
- /package/dist/{chunk-IBUAH6HC.js.map → chunk-E3WR4SVV.js.map} +0 -0
- /package/dist/{chunk-ZWH34WQJ.js.map → chunk-H4B2NWIZ.js.map} +0 -0
- /package/dist/{chunk-PPJUUGKP.js.map → chunk-HIWYDAQU.js.map} +0 -0
- /package/dist/{chunk-KNIZVHFU.js.map → chunk-I5NOEJSP.js.map} +0 -0
- /package/dist/{chunk-2SS3UU6K.js.map → chunk-IOVRTUOC.js.map} +0 -0
- /package/dist/{chunk-N6OHWIQ4.js.map → chunk-KAHAW4HH.js.map} +0 -0
- /package/dist/{chunk-2RWZ2XC5.js.map → chunk-LANAT75E.js.map} +0 -0
- /package/dist/{chunk-IF42CZJH.js.map → chunk-NEKE5PRJ.js.map} +0 -0
- /package/dist/{chunk-G6R56RS2.js.map → chunk-NKTGQNE2.js.map} +0 -0
- /package/dist/{chunk-ICOGJLAL.js.map → chunk-PIGJNWPB.js.map} +0 -0
- /package/dist/{chunk-L4Q4ZT4L.js.map → chunk-QGQSTK73.js.map} +0 -0
- /package/dist/{chunk-DN6BXTAC.js.map → chunk-SC7YWKOW.js.map} +0 -0
- /package/dist/{chunk-SGQ7FXWO.js.map → chunk-STJW643Y.js.map} +0 -0
- /package/dist/{chunk-CZPJWO2R.js.map → chunk-TLQYNJBC.js.map} +0 -0
- /package/dist/{chunk-EU7WVCHQ.js.map → chunk-TSWZPJNS.js.map} +0 -0
- /package/dist/{chunk-4AW3FP2P.js.map → chunk-VATDEWMF.js.map} +0 -0
- /package/dist/{chunk-OTNGKS3S.js.map → chunk-VZLUAWY5.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as y}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as y}from"./chunk-E3WR4SVV.js";import{a as l,b as m}from"./chunk-BZ232WZD.js";import{c}from"./chunk-XG6ASTX5.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as N}from"react";import{Fragment as b,jsx as v,jsxs as C}from"react/jsx-runtime";var R=t(({currencies:{from:d,to:F},shouldSwapOrder:s,salary_conversion_properties:a,conversionType:_="no_spread",defaultValue:r,...e})=>{let{setValue:n,getValues:i}=c(),f={label:a?.label||"Salary conversion",description:a?.description||C(b,{children:["The conversion is based on the Remote FX rate."," ",v(m,{className:"text-sm",zendeskId:l.remoteFxRate,children:"Learn more \u2197"})]})},g=s?"salary_conversion":e.name,u=s?e.name:"salary_conversion";return N(()=>{if(s){let o=i(e.name);o?(n("salary_conversion",o),n("salary_converted","salary_conversion")):r&&(n("salary_conversion",r),n("salary_converted","salary_conversion"))}else{let o=i("salary_conversion");o?(n(e.name,o),n("salary_converted",e.name)):r&&(n(e.name,r),n("salary_converted",e.name))}},[s,r,n,i,e.name]),v(y,{...e,sourceCurrency:d,targetCurrency:F,mainFieldName:g,conversionFieldName:u,conversionProperties:f,classNamePrefix:"RemoteFlows-Salary",conversionType:_})},"SalaryField");export{R as a};
|
|
2
|
+
//# sourceMappingURL=chunk-2P2OJKD4.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-E3WR4SVV.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as i}from"react/jsx-runtime";var l=e(({currency:n,desiredCurrency:o,annual_gross_salary_conversion_properties:r,...a})=>i(s,{...a,sourceCurrency:n,targetCurrency:o,conversionFieldName:"annual_gross_salary_conversion",conversionProperties:{...r,description:r?.description||"Estimated amount. This is an estimation. We calculate conversions based on spot rates that are subject to fluctuation over time."},classNamePrefix:"RemoteFlows-AnnualGrossSalary",conversionType:"no_spread"}),"AnnualGrossSalary");export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-3UDWOREZ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as z}from"./chunk-AP56UUME.js";import{a as H}from"./chunk-IJCTN52C.js";import{e as E}from"./chunk-AHRG5QCS.js";import{a as P,b as Y,c as X,d as _,f as q}from"./chunk-PX5PE6GX.js";import{a as W}from"./chunk-WVJDCDGZ.js";import{a as B}from"./chunk-MKUSE7JK.js";import{a as b}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as z}from"./chunk-AP56UUME.js";import{a as H}from"./chunk-IJCTN52C.js";import{e as E}from"./chunk-AHRG5QCS.js";import{a as P,b as Y,c as X,d as _,f as q}from"./chunk-PX5PE6GX.js";import{a as W}from"./chunk-WVJDCDGZ.js";import{a as B}from"./chunk-MKUSE7JK.js";import{a as b}from"./chunk-K2SHDZBB.js";import{$,B as v,G as U,O as J,R as K,T as j,V as A,W as G,X as V,Y as k,aa as N,f as R,h as D,p as M,r as T,s as L,t as Q}from"./chunk-TNQKP2XT.js";import{a as O,f as x,s as w}from"./chunk-RZCU2MT3.js";import{e as s}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useMemo as be}from"react";import{useMutation as f,useQuery as p}from"@tanstack/react-query";import{useMutation as de,useQuery as Z}from"@tanstack/react-query";var we=n(()=>{let{client:e}=s();return de({mutationFn:n(t=>j({client:e,body:t,headers:{Authorization:""}}),"mutationFn")})},"useUploadFile"),ee=n(e=>{let{client:t}=s();return Z({queryKey:["download-file",e],queryFn:n(async()=>{let o=await v({client:t,path:{id:e}});if(o.error)throw o.error;return o.data},"queryFn"),select:n(({data:o})=>o?.file,"select"),enabled:!!e})},"useDownloadFile"),te=n((e,t,o)=>{let{client:r}=s();return Z({queryKey:["employment-files",e],queryFn:n(async()=>{let i=await K({client:r,path:{employment_id:e},query:t});if(i.error)throw i.error;return i.data},"queryFn"),...o})},"useEmploymentFiles");import{useQuery as me}from"@tanstack/react-query";import{useQuery as pe}from"@tanstack/react-query";var ne=n(()=>{let{client:e}=s();return pe({queryKey:["identity"],queryFn:n(()=>G({client:e,headers:{Authorization:""}}),"queryFn"),select:n(t=>t.data?.data,"select")})},"useIdentity");function ye(e){return e!=null&&"company"in e}n(ye,"hasCompany");var oe=n((e={enabled:!0})=>{let{data:t}=ne(),o=ye(t)?t?.company?.id??"":"",{client:r}=s();return me({queryKey:["pricing-plans",o],queryFn:n(()=>R({client:r,path:{company_id:o}}),"queryFn"),select:n(i=>i.data?.data?.pricing_plans,"select"),enabled:!!e?.enabled&&!!o})},"useCompanyPricingPlans");var fe=n(({employmentId:e,options:t})=>{let{client:o}=s();return p({queryKey:["contractor-currencies",e],queryFn:n(async()=>Q({client:o,path:{employment_id:e},query:{restrict_to_guaranteed_pay_out_currencies:!1}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useContractorCurrencies"),bt=n(({fieldValues:e,options:t})=>p({queryKey:["contract-document-signature",e.review_completed,t?.jsfModify],queryFn:n(async()=>b(H,e,{jsfModify:t?.jsfModify}),"queryFn"),enabled:t?.queryOptions?.enabled}),"useGetContractDocumentSignatureSchema"),ft=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,contractDocumentId:o,payload:r})=>A({client:e,body:r,path:{employment_id:t,contract_document_id:o}}),"mutationFn")})},"useSignContractDocument"),Ce=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{client:r}=s();return p({queryKey:["contract-document",e,t],queryFn:n(async()=>T({client:r,path:{employment_id:e,id:t}}),"queryFn"),enabled:o?.queryOptions?.enabled,select:n(({data:i})=>({...i?.data,contract_document:{...i?.data?.contract_document,content:w(i?.data?.contract_document?.content)}}),"select")})},"useGetShowContractDocument"),Ct=n(({employmentId:e,contractDocumentId:t,options:o})=>{let{data:r}=Ce({employmentId:e,contractDocumentId:t,options:{queryOptions:{enabled:o?.queryOptions?.enabled}}});return{hasCompanySignedContract:r?.contract_document?.signatories?.some(a=>a.type==="company"&&a.status==="signed")}},"useHasCompanySignedContract"),ge=n(({employmentId:e,options:t})=>{let{client:o}=s();return p({queryKey:["contractor-subscriptions",e],queryFn:n(async()=>M({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.queryOptions?.enabled,select:n(({data:r})=>r?.data,"select")})},"useGetContractorSubscriptions"),gt=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,payload:o})=>k({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorSubscriptions"),Ft=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,payload:o})=>J({client:e,body:o,path:{employment_id:t}}),"mutationFn")})},"useCreateContractorContractDocument"),Fe=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let{client:i}=s();return p({queryKey:["contractor-onboarding-details-schema",e,t],retry:!1,queryFn:n(async()=>D({client:i,path:{country_code:e},query:{json_schema_version:1,employment_id:t}}),"queryFn"),enabled:r?.queryOptions?.enabled,select:n(({data:a})=>{let c=a?.data?.schema||{};return b(c,o,r)},"select")})},"useContractorOnboardingDetailsSchema"),Se={[P]:"Contractor Management",[Y]:"Contractor Management Plus",[X]:"Contractor of Record"},he=n(e=>{let{data:t,isLoading:o}=oe({enabled:e?.enabled}),r=t?.find(a=>a.product.name==="EOR Monthly");return{eorSubscription:{product:{identifier:_,short_name:"EOR"},currency:r?.price.currency,price:{amount:x(r?.price.amount??0)},features:["Contract between Remote and employee","Remote manages onboarding, payroll, and compliance","Manages taxes, benefits, and time-off tracking","Handles contracts, transfers, and terminations"],description:"Enables hiring in countries without a local entity",label:"Employer of Record",value:_},isLoading:o}},"useEorSubscription"),_e=n((e,t,o)=>(E(_,o)&&e.push({label:t.label,value:t.value,description:t.description,meta:{features:t.features,price:{amount:t.price.amount,currencyCode:t.currency?.code??""}},disabled:!1}),e),"addEorToFieldOptions"),St=n((e,t,o)=>{let{data:r,isLoading:i,refetch:a}=ge({employmentId:e,options:{queryOptions:o?.queryOptions}}),c=r?.length===0,l=r?.length===1,u=r?.find(S=>S.product.short_name==="COR")?.eligibility_questionnaire?.is_blocking,d=(l||u===!0||c)&&t?.eor_onboarding,{eorSubscription:C,isLoading:re}=he({enabled:d}),I=b(z.data.schema,{},o);if(r){let S=I.fields.find(h=>h.name==="subscription");if(S){let h=r.filter(m=>E(m.product.identifier??"",o?.excludeProducts)).map(m=>{let y=m.product,ie=m.price.amount,ae=m.currency.code,se=Se[y.identifier]??"",ce=y.identifier??"",ue=y.description??"",le={features:y.features??[],price:{amount:x(ie),currencyCode:ae}};return{label:se,value:ce,description:ue,meta:le,disabled:u&&y.identifier!==P}});h.sort((m,y)=>m.label.localeCompare(y.label));let g=[];d&&(_e(g,C,o?.excludeProducts),g.length>0&&(g[0].meta={...g[0].meta,groupSeparator:{show:!0}})),S.options=[...h,...g]}}return{isLoading:i||re,form:I,contractorSubscriptions:r,refetch:a,isEligibilityQuestionnaireBlocked:u}},"useContractorSubscriptionSchemaField"),ht=n((e,t,o)=>{let{mutateAsyncOrThrow:r}=O(t),{mutateAsyncOrThrow:i}=O(e);return{mutateAsync:n(async({employmentId:a})=>{let{nationality_status:c,ir35:l,ir35_sds_file:F}=o,u={contract_document:{ir_35:l}},d={contract_document:{nationality:c}};return l?(await i({employmentId:a,payload:u}),F?r({employment_id:a,file:F,sub_type:q}):Promise.resolve()):c?i({employmentId:a,payload:d}):Promise.resolve()},"mutateAsync")}},"useUpdateUKandSaudiFields"),_t=n((e,t)=>{let{data:o,isLoading:r}=te(e,{sub_type:q},{...t,select:n(({data:c})=>c?.files?.filter(l=>l.sub_type===q),"select")}),i=o?.[0]?.id,a=ee(i);return{...a,isLoading:r||a.isLoading}},"useGetIR35File"),qt=n((e,t)=>{let{client:o}=s();return p({queryKey:["contract-documents",e],queryFn:n(async()=>L({client:o,path:{employment_id:e}}),"queryFn"),enabled:t?.enabled,select:n(({data:r})=>r?.data?.contract_documents,"select")})},"useGetContractDocuments"),Ot=n(({options:e,fieldValues:t})=>{let{client:o}=s();return p({queryKey:["eligibility-questionnaire"],queryFn:n(async()=>{let r=await V({client:o,query:{type:"contractor_of_record",json_schema_version:1}});if(r.error)throw new Error("Failed to fetch eligibility questionnaire");return r.data.data},"queryFn"),select:n(r=>{let i=r?.schema||{};return b(i,t,{jsfModify:e?.jsfModify})},"select"),enabled:e?.queryOptions?.enabled})},"useGetEligibilityQuestionnaire"),xt=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t,payload:o})=>U({client:e,body:{employment_slug:t,responses:o,type:"contractor_of_record"},query:{json_schema_version:1}}),"mutationFn")})},"usePostCreateEligibilityQuestionnaire"),Pt=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t})=>N({client:e,path:{employment_id:t}}),"mutationFn")})},"usePostManageContractorCorSubscription"),Et=n(()=>{let{client:e}=s();return f({mutationFn:n(async({employmentId:t})=>$({client:e,path:{employment_id:t}}),"mutationFn")})},"useDeleteContractorCorSubscription"),It=n(e=>{let{client:t}=s(),{data:o,isLoading:r}=p({...B(t,"contractor-onboarding-countries"),select:n(a=>a.data?.data?.map(c=>({label:c.name,value:c.code,eor_onboarding:c.eor_onboarding,contractor_products_available:c.contractor_products_available}))||[],"select"),enabled:e?.queryOptions?.enabled}),i=b(W.data.schema,{},e);if(o){let a=i.fields.find(c=>c.name==="country");a&&(a.options=o)}return{isLoading:r,selectCountryForm:i,countries:o}},"useCountriesSchemaField"),wt=n(({countryCode:e,employmentId:t,fieldValues:o,options:r})=>{let i=Fe({countryCode:e,employmentId:t,fieldValues:o,options:r}),{data:a,isLoading:c}=fe({employmentId:t,options:{queryOptions:{enabled:r?.queryOptions?.enabled}}}),l=be(()=>!i.data||!a?i.data:{...i.data,fields:i.data.fields.map(u=>u.name!=="payment_terms"?u:{...u,fields:u.fields?.map(d=>d.name!=="compensation_currency_code"?d:{...d,options:a.map(C=>({label:C.code,value:C.code,meta:{source:C.source}}))})})},[i.data,a]);return{...i,data:l,isLoading:i.isLoading||c}},"useContractorOnboardingDetailsSchemaWithCurrencies");export{we as a,ne as b,ye as c,bt as d,ft as e,Ce as f,Ct as g,ge as h,gt as i,Ft as j,Se as k,St as l,ht as m,_t as n,qt as o,Ot as p,xt as q,Pt as r,Et as s,It as t,wt as u};
|
|
2
|
+
//# sourceMappingURL=chunk-4QVFKKVN.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as d,d as S}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{c as d,d as S}from"./chunk-AZZUFPQM.js";import{a as u}from"./chunk-HN5HLFTB.js";import{a as f}from"./chunk-KSHK3ZPX.js";import{b as C}from"./chunk-KFYWUBRS.js";import{f as y}from"./chunk-XG6ASTX5.js";import{a as o}from"./chunk-P37U34EQ.js";import{useEffect as T,useId as U,useState as I}from"react";import{jsx as k}from"react/jsx-runtime";var l=o((n,e,r)=>r&&r[e]?r[e]:n[e]?n[e]/100:0,"getDefaultManagementFee"),A=o((n,e,r,g)=>!e&&!r?.management_fee&&n?l(u,n,g):e&&!r?.management_fee?"":r?.management_fee,"getManagementFee"),W=o(({estimationOptions:n=d,defaultValues:e={countryRegionSlug:"",regionSlug:"",currencySlug:"",salary:"",benefits:{},management:{management_fee:""}},options:r,render:g,version:_="standard"})=>{let p=U(),[R,m]=I("USD"),F=o(s=>{m(s);let a=l(u,s,n.managementFees);a&&c.setValue("management.management_fee",a.toString())},"onCurrencyChange"),t=S({defaultRegion:e.countryRegionSlug,defaultCurrency:e.currencySlug,defaultSalary:e.salary,estimationOptions:n,version:_,options:{...r,onCurrencyChange:F}}),K=C(t.handleValidation),b=A(R,e.currencySlug,e.management,n.managementFees),{countryRegionSlug:v,currencySlug:h,salary:D,benefits:P,hiringBudget:B,age:E,contractDurationType:M,regionSlug:w,...x}=e,c=y({resolver:K,defaultValues:{country:v,currency:h,region:w,salary:D,salary_conversion:"",salary_converted:void 0,hiring_budget:B||"employee_annual_salary",age:E,contract_duration_type:M,management:{management_fee:b?.toString()||""},benefits:P,estimation_title:n.title,...x},shouldUnregister:!1,mode:"onBlur"});return T(()=>{if(e.currencySlug&&t.currencies&&n.includeManagementFee&&!e.management?.management_fee){let a=t.currencies.find(i=>i.value===e.currencySlug)?.label;if(a){m(a);let i=l(u,a,n.managementFees);c.setValue("management.management_fee",i?.toString()||"")}}},[e.currencySlug,t.currencies,n.includeManagementFee,n.managementFees,e.management?.management_fee,c]),k(f.Provider,{value:{form:c,formId:p,costCalculatorBag:t},children:g(t)})},"CostCalculatorFlow");export{W as a};
|
|
2
|
+
//# sourceMappingURL=chunk-4RF6I3TT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as y}from"./chunk-Q3ALCPJN.js";import{d as p,e as v}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as y}from"./chunk-Q3ALCPJN.js";import{d as p,e as v}from"./chunk-TSWZPJNS.js";import{a as n,v as u}from"./chunk-RZCU2MT3.js";import{b as l}from"./chunk-H2O4CVKF.js";import{a as r}from"./chunk-P37U34EQ.js";import O from"lodash.omit";import{jsx as C}from"react/jsx-runtime";function T({onSubmit:f,onSuccess:i,onError:s,render:w,...o}){let{components:E}=l(),{contractorOnboardingBag:e}=y(),a=p(),m=v(),{mutateAsyncOrThrow:g}=n(a),{mutateAsyncOrThrow:I}=n(m),c=e.employment?.contractor_type==="cor"&&!e.isEmploymentReadOnly,R=r(async()=>{try{if(await f?.(),c&&e.employmentId){let t=await I({employment_slug:e.employmentId});if(t?.data){await i?.({data:t,employmentStatus:"created_awaiting_reserve"}),e.refetchEmployment();return}}else if(e.employmentId){let t=await g({employment_id:e.employmentId});t&&(await i?.({data:t,employmentStatus:"invited"}),e.refetchEmployment())}}catch(t){u(t)?s?.(O(t,"response")):s?.({error:t,rawError:t,fieldErrors:[]})}},"handleSubmit"),d=E?.button;if(!d)throw new Error("Button component not found");let b=a.isPending||m.isPending||!e.canInvite||o.disabled;return C(d,{...o,disabled:b,onClick:t=>{R(),o.onClick?.(t)},children:w({status:c?"create_reserve":"invite"})})}r(T,"OnboardingInvite");export{T as a};
|
|
2
|
+
//# sourceMappingURL=chunk-75MI3G5H.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as w}from"./chunk-PGWKJ6FK.js";import{d as v,e as y}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as w}from"./chunk-PGWKJ6FK.js";import{d as v,e as y}from"./chunk-TSWZPJNS.js";import{a as i}from"./chunk-RZCU2MT3.js";import{b as l}from"./chunk-H2O4CVKF.js";import{a as s}from"./chunk-P37U34EQ.js";import{jsx as _}from"react/jsx-runtime";function P({onSubmit:f,onSuccess:a,onError:t,render:E,...o}){let{components:R}=l(),{onboardingBag:r,setCreditScore:m}=w(),d=v(),u=y(),{mutateAsync:g}=i(d),{mutateAsync:S}=i(u),c=r.creditRiskStatus==="deposit_required"||r.onboardingReservesStatus==="deposit_required",I=s(async()=>{try{if(await f?.(),c&&r.employmentId&&r.employment?.status&&!r.isEmploymentReadOnly){let e=await S({employment_slug:r.employmentId});if(e.data){await a?.({data:e.data,employmentStatus:"created_awaiting_reserve"}),m?.(n=>({...n,showReserveInvoice:!0})),r.refetchEmployment();return}e.error&&t?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}else if(r.employmentId){let e=await g({employment_id:r.employmentId});if(e.data){await a?.({data:e.data,employmentStatus:"invited"}),m?.(n=>({...n,showInviteSuccessful:!0})),r.refetchEmployment();return}e.error&&t?.({error:e.error,rawError:e.rawError,fieldErrors:[]})}}catch(e){t?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit"),b=c&&r.employment?.status&&!r.isEmploymentReadOnly,p=R?.button;if(!p)throw new Error("Button component not found");return _(p,{...o,disabled:d.isPending||u.isPending||o.disabled,onClick:e=>{I(),o.onClick?.(e)},children:E({employmentStatus:b?"created_awaiting_reserve":"invited"})})}s(P,"OnboardingInvite");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-77WJNWIC.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as S}from"./chunk-SC7YWKOW.js";import{a as k}from"./chunk-XFD3ULUF.js";import{a as m,b as d,c as h,d as _}from"./chunk-DFJNVGK4.js";import{a as y}from"./chunk-TXSUZLOI.js";import{a as g}from"./chunk-K2SHDZBB.js";import{E as T,Z as b,c as D}from"./chunk-TNQKP2XT.js";import{e as i}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useQuery as v}from"@tanstack/react-query";var c=n(({employmentId:e,status:t,timeoffType:a,options:o})=>{let{client:r}=i();return v({queryKey:["timeoff",e,t],retry:!1,queryFn:n(()=>b({client:r,headers:{Authorization:""},query:{employment_id:e,status:t,timeoff_type:a}}),"queryFn"),select:n(({data:s})=>o?.select?.(s)??s,"select"),enabled:o?.enabled})},"useTimeOffQuery"),R=n((e,t)=>{let a=y(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),o=y(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});return`${a} \u2192 ${o}`},"formatDateRange"),N=n(({employmentId:e,options:t})=>c({employmentId:e,timeoffType:"paid_time_off",options:{enabled:t?.enabled,select:n(a=>({bookedDays:a?.data?.timeoffs?.reduce((o,r)=>o+(r?.timeoff_days?.filter(s=>s.hours!=null&&s.hours>0).length||0),0)||0,timeoffs:a?.data?.timeoffs?.map(o=>{let r=o?.timeoff_days?.filter(s=>s.hours>0).length||0;return{status:o?.status,duration:r,startDate:o?.start_date,endDate:o?.end_date,formattedDate:R(o?.start_date,o?.end_date)}})||[]}),"select")}}),"usePaidTimeoffBreakdownQuery"),A=n(({employmentId:e})=>{let{client:t}=i();return v({queryKey:["timeoff-balance",e],retry:!1,queryFn:n(()=>T({client:t,headers:{Authorization:""},path:{employment_id:e}}),"queryFn"),select:n(({data:a})=>a,"select")})},"useTimeOffLeavePoliciesSummaryQuery");import{useMutation as E,useQuery as Q}from"@tanstack/react-query";function F(e){return Object.entries(e).reduce((t,[a,o])=>({...t,[a]:h(o)}),{})}n(F,"formatTimeoffValues");function q(e){let t=e?.contract_details?.available_pto,a=e?.contract_details?.available_pto_type;return e?.country?.code==="USA"&&a==="unlimited"?{value:t===0?20:t}:a==="unlimited"&&t>0?{value:t}:{value:t}}n(q,"getMinimumStatutoryDays");function U(e,t){let a=0,o=0;return e.forEach(r=>{r.timeoff_days?.forEach(s=>{new Date(s.day)<=t?a+=s.hours||0:o+=s.hours||0})}),{before:a,after:o}}n(U,"getAllTimeoffHoursBeforeDate");var V=n(({employmentId:e,date:t,options:a})=>c({employmentId:e,timeoffType:"paid_time_off",status:"approved",options:{enabled:a?.enabled,select:n(o=>{let{before:r,after:s}=U(o?.data?.timeoffs||[],new Date(t));return{bookedDaysBeforeTermination:d(r),bookedDaysAfterTermination:d(s)}},"select")}}),"useBookedTimeoffBeforeAndAfterTerminationQuery"),me=n(({employmentId:e,proposedTerminationDate:t,employment:a})=>{let{value:o=0}=q(a),r=A({employmentId:e}),s=V({employmentId:e,date:t}),p=r.data?.data?.[0].annual_entitlement.type==="limited"?{days:r.data?.data?.[0].annual_entitlement.days,hours:r.data?.data?.[0].annual_entitlement.hours}:{days:o,hours:0},u={days:r.data?.data?.[0].booked.days||0,hours:r.data?.data?.[0].booked.hours||0},f=r.data?.data?.[0].current_entitlement.type==="limited"?{days:r.data?.data?.[0].current_entitlement.days||0,hours:r.data?.data?.[0].current_entitlement.hours||0}:{days:o,hours:0},l={days:r.data?.data?.[0].used.days||0,hours:r.data?.data?.[0].used.hours||0},B=s.data?.bookedDaysBeforeTermination||{days:0,hours:0},C=s.data?.bookedDaysAfterTermination||{days:0,hours:0},x=m(f.days,f.hours),H=m(l.days,l.hours),P=m(u.days,u.hours),L=x-H-P,O=_(d(L));return{data:{...F({entitledDays:p,bookedDays:u,usedDays:l,approvedDaysBeforeTermination:B,approvedDaysAfterTermination:C,remainingDays:O,currentEntitlementDays:f}),isUnlimitedPto:a?.contract_details?.available_pto_type==="unlimited"},isLoading:r.isLoading||s.isLoading,isError:r.isError||s.isError,error:r.error||s.error}},"useSummaryTimeOffDataQuery"),de=n(()=>{let{client:e}=i();return E({mutationFn:n(t=>D({client:e,body:t}),"mutationFn")})},"useCreateTermination"),ue=n(({formValues:e,jsfModify:t,step:a})=>Q({queryKey:["rmt-flows-termination-schema",a],queryFn:n(()=>S[a]??k,"queryFn"),select:n(({data:o})=>{let r=o?.schema||{};return g(r,e||{},{jsfModify:t})},"select")}),"useTerminationSchema");export{c as a,N as b,A as c,V as d,me as e,de as f,ue as g};
|
|
2
|
+
//# sourceMappingURL=chunk-7A3IHNJF.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as Z}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as Z}from"./chunk-2P2OJKD4.js";import{a as I}from"./chunk-VFRHMNLJ.js";import{a as Q,b as W,c as X,f as Y}from"./chunk-PIGJNWPB.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as G}from"./chunk-KFYWUBRS.js";import{c as ee}from"./chunk-WUSKSXW2.js";import{a as z}from"./chunk-K2SHDZBB.js";import{a as K,g as M}from"./chunk-RZCU2MT3.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Be,object as se}from"yup";import{useCallback as je,useEffect as te,useMemo as we,useRef as Re,useState as j}from"react";import{string as ne,ValidationError as re}from"yup";import{jsx as ie}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},Pe=o(t=>z(I.data.schema,void 0,t),"useStaticSchema");function xe(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(xe,"getSalaryTitle");var ze=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let u=Re({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,le]=j(),{data:_,isLoading:ue}=Q({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:ce}=W(),me=k||w?.value,{data:P,isLoading:de}=Y(me,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=X(),{mutateAsync:fe}=K(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=je(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),J=s.showManagementFee,$=s.includeEstimationTitle,ge=we(()=>{let{from:e,to:r,shouldSwapOrder:c}=L(),g=xe(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>ie(Z,{...y,shouldSwapOrder:c,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!J,Component:o(y=>ie(ee,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!$}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,J,$,l]),f=Pe({jsfModify:{fields:{...n?.jsfModify?.fields,...ge?.fields}}});te(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),te(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function ye(e){return fe(oe(e,s,a))}o(ye,"onSubmit");function pe(e){let r=_?.find(({value:c})=>c===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(pe,"onCountryChange");function Ce(e){h(e)}o(Ce,"onRegionChange");function _e(e){le(e.target.value)}o(_e,"onHiringBudgetChange");function be(e){let r=d?.find(c=>c.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(be,"onChangeCurrency");let E=f.fields.find(e=>e.name==="region");if(E){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];E.options=e,E.isVisible=e.length>0,E.required=e.length>0,E.onChange=Ce,E.schema=e.length>0?ne().transform(r=>typeof r=="string"?r:"").required("Region is required"):ne()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=be)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=_e),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=pe)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),D=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],N=ae(f.fields,m||"USD",s.includeEstimationTitle);async function Se(e){let r=null;n?.onValidation?.(e);let c=await M(e,D);try{await N.validate(c,{abortEarly:!1}),r={formErrors:{},yupError:new re([],e)}}catch(S){let B=G(S);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:S}}let g=P?.handleValidation(c),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new re(y,x)}}return o(Se,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:D,validationSchema:N,parseFormValues:o(async e=>{let{country:r,region:c,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:S,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=S);let he=await M({country:r,region:c,salary:V,salary_converted:y,salary_conversion:S,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Fe=await M(A,P?.fields||[]),Ve={currency_code:d?.find(Me=>Me.value===g)?.label};return{...he,...Fe,...Ve}},"parseFormValues"),handleValidation:Se,isSubmitting:U.isPending,isLoading:ue&&ce&&de,onSubmit:ye,resetForm:Ee,currencies:d,meta:{fields:u.current?.fields}}},"useCostCalculator");function ae(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(u=>u===a.name,"is"),then:o(u=>u.required("Required field"),"then"),otherwise:o(u=>u.optional(),"otherwise")}):a.name==="management"?n[a.name]=se({management_fee:Be().transform(u=>isNaN(u)?void 0:u).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return se(s)}o(ae,"buildValidationSchema");function Te(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let u={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,u]},[])}o(Te,"formatBenefits");function Ae(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Te(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...Oe(t,l)}}o(Ae,"mapValueToEmployment");function Oe(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(Oe,"getSalaryFields");function oe(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Ae(n,i,l))}}o(oe,"buildPayload");export{ae as a,oe as b,O as c,ze as d};
|
|
2
|
+
//# sourceMappingURL=chunk-AZZUFPQM.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{m as J}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{m as J}from"./chunk-TSWZPJNS.js";import{a as L}from"./chunk-U5T77DSF.js";import{c as B,n as G}from"./chunk-XG6ASTX5.js";import{d as A,e as k,f as M}from"./chunk-RZCU2MT3.js";import{b as H}from"./chunk-H2O4CVKF.js";import{a as n,b as d,c as qe}from"./chunk-P37U34EQ.js";var D=d((En,U)=>{"use strict";function we(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}n(we,"isObject");U.exports=we});var X=d((In,V)=>{"use strict";var Fe=typeof global=="object"&&global&&global.Object===Object&&global;V.exports=Fe});var _=d((qn,z)=>{"use strict";var Pe=X(),ke=typeof self=="object"&&self&&self.Object===Object&&self,Me=Pe||ke||Function("return this")();z.exports=Me});var Q=d((wn,K)=>{"use strict";var Le=_(),De=n(function(){return Le.Date.now()},"now");K.exports=De});var Z=d((Pn,Y)=>{"use strict";var _e=/\s/;function $e(e){for(var t=e.length;t--&&_e.test(e.charAt(t)););return t}n($e,"trimmedEndIndex");Y.exports=$e});var ne=d((Mn,ee)=>{"use strict";var Ne=Z(),We=/^\s+/;function Be(e){return e&&e.slice(0,Ne(e)+1).replace(We,"")}n(Be,"baseTrim");ee.exports=Be});var $=d((Dn,te)=>{"use strict";var Ae=_(),He=Ae.Symbol;te.exports=He});var se=d((_n,ie)=>{"use strict";var re=$(),oe=Object.prototype,Ge=oe.hasOwnProperty,Je=oe.toString,O=re?re.toStringTag:void 0;function Ue(e){var t=Ge.call(e,O),r=e[O];try{e[O]=void 0;var i=!0}catch{}var u=Je.call(e);return i&&(t?e[O]=r:delete e[O]),u}n(Ue,"getRawTag");ie.exports=Ue});var ce=d((Nn,ae)=>{"use strict";var Ve=Object.prototype,Xe=Ve.toString;function ze(e){return Xe.call(e)}n(ze,"objectToString");ae.exports=ze});var le=d((Bn,de)=>{"use strict";var ue=$(),Ke=se(),Qe=ce(),Ye="[object Null]",Ze="[object Undefined]",fe=ue?ue.toStringTag:void 0;function en(e){return e==null?e===void 0?Ze:Ye:fe&&fe in Object(e)?Ke(e):Qe(e)}n(en,"baseGetTag");de.exports=en});var pe=d((Hn,me)=>{"use strict";function nn(e){return e!=null&&typeof e=="object"}n(nn,"isObjectLike");me.exports=nn});var be=d((Jn,ge)=>{"use strict";var tn=le(),rn=pe(),on="[object Symbol]";function sn(e){return typeof e=="symbol"||rn(e)&&tn(e)==on}n(sn,"isSymbol");ge.exports=sn});var Ce=d((Vn,xe)=>{"use strict";var an=ne(),ve=D(),cn=be(),ye=NaN,un=/^[-+]0x[0-9a-f]+$/i,fn=/^0b[01]+$/i,dn=/^0o[0-7]+$/i,ln=parseInt;function mn(e){if(typeof e=="number")return e;if(cn(e))return ye;if(ve(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=ve(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=an(e);var r=fn.test(e);return r||dn.test(e)?ln(e.slice(2),r?2:8):un.test(e)?ye:+e}n(mn,"toNumber");xe.exports=mn});var Se=d((zn,Te)=>{"use strict";var pn=D(),N=Q(),he=Ce(),gn="Expected a function",bn=Math.max,vn=Math.min;function yn(e,t,r){var i,u,b,l,s,a,p=0,E=!1,f=!1,x=!0;if(typeof e!="function")throw new TypeError(gn);t=he(t)||0,pn(r)&&(E=!!r.leading,f="maxWait"in r,b=f?bn(he(r.maxWait)||0,t):b,x="trailing"in r?!!r.trailing:x);function C(o){var g=i,y=u;return i=u=void 0,p=o,l=e.apply(y,g),l}n(C,"invokeFunc");function R(o){return p=o,s=setTimeout(m,t),E?C(o):l}n(R,"leadingEdge");function q(o){var g=o-a,y=o-p,c=t-g;return f?vn(c,b-y):c}n(q,"remainingWait");function T(o){var g=o-a,y=o-p;return a===void 0||g>=t||g<0||f&&y>=b}n(T,"shouldInvoke");function m(){var o=N();if(T(o))return S(o);s=setTimeout(m,q(o))}n(m,"timerExpired");function S(o){return s=void 0,x&&i?C(o):(i=u=void 0,l)}n(S,"trailingEdge");function I(){s!==void 0&&clearTimeout(s),p=0,i=a=u=s=void 0}n(I,"cancel");function w(){return s===void 0?l:S(N())}n(w,"flush");function j(){var o=N(),g=T(o);if(i=arguments,u=this,a=o,g){if(s===void 0)return R(a);if(f)return clearTimeout(s),s=setTimeout(m,t),C(a)}return s===void 0&&(s=setTimeout(m,t)),l}return n(j,"debounced"),j.cancel=I,j.flush=w,j}n(yn,"debounce");Te.exports=yn});import{useState as hn,useCallback as Tn,useEffect as Ee,useRef as Sn}from"react";var Oe=qe(Se(),1);import{useCallback as xn,useEffect as Cn,useRef as je}from"react";function W(e,t){let r=je(e);Cn(()=>{r.current=e},[e]);let i=je((0,Oe.default)(u=>{r.current(u)},t)).current;return xn(u=>{i(u)},[i])}n(W,"useDebounce");import{Fragment as On,jsx as h,jsxs as Re}from"react/jsx-runtime";var jn=n(({description:e,showConversion:t,targetCurrency:r,className:i,onClick:u})=>{let{components:b}=H(),l=t?`Hide ${r} conversion`:`Show ${r} conversion`,s=b?.button;if(!s)throw new Error("Button component not found");return Re("span",{className:i,children:[h(G,{as:"span",children:e})," ",h(s,{className:`${i.replace("-description","-button")}`,"data-type":"inline",onClick:u,children:l})]})},"DescriptionWithConversion"),ut=n(({sourceCurrency:e,targetCurrency:t,mainFieldName:r,conversionFieldName:i,conversionProperties:u,classNamePrefix:b,description:l,conversionType:s="spread",...a})=>{let[p,E]=hn(!1),{setValue:f,watch:x}=B(),C=x(r||a.name),R=Sn(!0),q=e&&t&&e!==t,{mutateAsync:T}=J({type:s}),m=`${a.name}_converted`;Ee(()=>{f(m,r||a.name)},[f,r,a.name,m]),Ee(()=>{if(R.current){R.current=!1;return}f(i,"")},[e,i,f]);let S=Tn(async(c,v,F)=>{if(!(!c||isNaN(c)||c<=0))return T({source_currency:v,target_currency:F,amount:c})},[T]),I=W(async c=>{let v=k(c),P=1/((await S(v,t,e))?.data?.data.conversion_data?.exchange_rate??1),Ie=A(Number(v)*P);f(i,M(Ie))},500),w=W(async c=>{let v=k(c),P=(await S(v,t,e))?.data?.data.conversion_data.target_amount;f(r||a.name,M(P))},500),j=n(c=>{f(m,r||a.name),p&&I(c.target.value)},"handleMainFieldChange"),o=n(c=>{f(m,i),w(c.target.value)},"handleConversionFieldChange"),g=n(c=>{c.preventDefault(),E(v=>!v),!p&&C&&I(C)},"toggleConversion"),y=q?h(jn,{targetCurrency:t,description:l,showConversion:p,className:`${b}-description`,onClick:g}):l;return Re(On,{children:[h(L,{...a,name:r||a.name,additionalProps:{currency:e},description:y,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:j}),p&&h(L,{additionalProps:{currency:t},name:i,label:u?.label||"Conversion",description:u?.description,type:"text",inputMode:"decimal",pattern:"^[0-9.]*$",maxLength:15,onChange:o}),h("input",{type:"hidden",name:m,value:x(m)||r||a.name})]})},"CurrencyConversionField");export{ut as a};
|
|
2
|
+
//# sourceMappingURL=chunk-E3WR4SVV.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as Ce,b as we,c as he}from"./chunk-7GDMMNJT.js";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 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-GPJIEBUC.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{a as d}from"./chunk-HZ2BCB3U.js";import{a as c}from"./chunk-ZANINDSC.js";import{
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as d}from"./chunk-HZ2BCB3U.js";import{a as c}from"./chunk-ZANINDSC.js";import{c as l}from"./chunk-AHRG5QCS.js";import{b as s}from"./chunk-Q3ALCPJN.js";import{w as n}from"./chunk-RZCU2MT3.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as m,jsxs as g}from"react/jsx-runtime";function x({onSubmit:p,onSuccess:u,onError:S}){let{contractorOnboardingBag:r}=s(),f=a(async(e,F)=>{try{let t=await r.parseFormValues(e);await p?.(t);let o=await r.onSubmit(e);if(o?.data){await u?.(o?.data),r?.next();return}}catch(t){let o=n(t,r.meta?.fields?.contract_details,F);S?.(o)}},"handleSubmit"),C=r.stepState.values?.contract_details||r.initialValues.contract_details,i=r.stepState.values?.pricing_plan?.subscription,b=l(i);return g("div",{className:"space-y-4",children:[m(c,{defaultValues:C,onSubmit:f}),b&&m(d,{subscription:i})]})}a(x,"ContractDetailsStep");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-H4B2NWIZ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-IFIJ7OVJ.js";import{a}from"./chunk-3OU6XE7X.js";import{a as m}from"./chunk-N5XWRUYE.js";import{a as
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-IFIJ7OVJ.js";import{a}from"./chunk-3OU6XE7X.js";import{a as m}from"./chunk-N5XWRUYE.js";import{a as r}from"./chunk-IOVRTUOC.js";import{a as e}from"./chunk-76ZDXC2T.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as y}from"react";import{jsx as d}from"react/jsx-runtime";var P=t(({render:n,countryCode:C,options:i,initialValues:s})=>{let o=r({options:i,countryCode:C,initialValues:s}),f=y();return d(e.Provider,{value:{createCompanyBag:o,formId:f},children:n({createCompanyBag:o,components:{CompanyBasicInformationStep:m,AddressDetailsStep:a,SubmitButton:p}})})},"CreateCompanyFlow");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-HIWYDAQU.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as Qe}from"./chunk-VAIBLWOY.js";import{a as ze}from"./chunk-3UDWOREZ.js";import{a as We}from"./chunk-RWXZG4KO.js";import{a as Ae,b as Be,c as je,f as qe,g as ke,h as Ne,i as Je,j as Te,k as Ie,l as Ke,n as Ue,o as He,p as Ge}from"./chunk-TSWZPJNS.js";import{a as De,b as Pe,c as we,e as Le,f as Re}from"./chunk-TVBZT6FA.js";import{a as w,g as b,h as L,j as Y,t as h}from"./chunk-RZCU2MT3.js";import{a as $e}from"./chunk-TSPDJUGG.js";import{a as s}from"./chunk-P37U34EQ.js";import{useCallback as Nt,useEffect as tt,useMemo as f,useRef as Jt,useState as Z}from"react";import Tt from"lodash.mergewith";import{createContext as Lt,useContext as Rt,useMemo as At,useCallback as Bt,useRef as jt}from"react";import{jsx as qt}from"react/jsx-runtime";var Xe=Lt(void 0);function $t({children:o}){let p=jt({}),m=Bt(a=>{p.current={...p.current,...a}},[]),x=At(()=>({errorContextRef:p,updateContext:m}),[m]);return qt(Xe.Provider,{value:x,children:o})}s($t,"ErrorContextProvider");var Ye=s(()=>{let o=Rt(Xe);if(!o)throw new Error("useErrorContext must be used within ErrorContextProvider");return o},"useErrorContext");import{useEffect as Ze,useMemo as kt}from"react";function et(o){let{updateContext:p,errorContextRef:m}=Ye();return Ze(()=>{o&&(m.current=o)},[]),Ze(()=>()=>{m.current={}},[m]),{...kt(()=>({updateErrorContext:s(a=>{p(a)},"updateErrorContext"),clearErrorContext:s(()=>{m.current={}},"clearErrorContext")}),[]),errorContext:m}}s(et,"useErrorReporting");import{jsx as nt}from"react/jsx-runtime";var It={employment_basic_information:"basic_information",contract_details:"contract_details"},Kt={select_country:null,basic_information:"employment_basic_information",engagement_agreement_details:null,contract_details:"contract_details",benefits:null,review:null},Ut=s(({isLoadingBasicInformationForm:o,isLoadingContractDetailsForm:p,isLoadingEngagementAgreementDetails:m,isLoadingEmploymentEngagementAgreementDetails:x,isLoadingEmployment:a,isLoadingBenefitsOffersSchema:q,isLoadingBenefitOffers:R,isLoadingCompany:c,isLoadingCountries:k,employmentStatus:r,employmentId:H,currentStepName:i,basicInformationFields:N,contractDetailsFields:V})=>{let J=o||p||m||x||a||q||R||c||k,A=r&&Pe.includes(r),G=r&&!we.includes(r),T=!!(H&&A&&i!=="review"),W=J||T,y=!!(T&&!J&&N.length>0&&V.length>0);return{isLoading:W,isNavigatingToReview:y,isEmploymentReadOnly:A,canInvite:G}},"getLoadingStates"),_n=s(({employmentId:o,companyId:p,countryCode:m,type:x,options:a,skipSteps:q,externalId:R,initialValues:c})=>{let{updateErrorContext:k}=et({flow:"onboarding",metadata:{employmentId:o,companyId:p,isUpdating:!!o}}),[r,H]=Z(o),[i,N]=Z(m||null),[V,J]=Z(!1),A=a?.features?.includes("dynamic_steps")??!1,{steps:G,stepsArray:T}=f(()=>De({includeSelectCountry:!q?.includes("select_country"),includeEngagementAgreementDetails:V,useDynamicSteps:A}),[V,q,A]),W=Nt(e=>{k({step:e.name})},[k]),{fieldValues:y,stepState:t,setFieldValues:at,previousStep:rt,nextStep:st,goToStep:$,setStepValues:ee}=$e(G,W),{data:I,isLoading:te}=je(r,{enabled:!!(r&&a?.features?.includes("dynamic_steps"))}),ot=f(()=>({...c,...I,...t.values?.engagement_agreement_details,...y}),[I,c,t.values?.engagement_agreement_details,y]),{data:d,isLoading:ne}=Ge(i,ot,{jsfModify:a?.jsfModify,queryOptions:{enabled:!!(i&&a?.features?.includes("dynamic_steps"))}});tt(()=>{let e=!!(d?.fields&&d.fields.length>0);e!==V&&J(e)},[d?.fields,V]);let K=Jt({select_country:{},basic_information:{},contract_details:{},benefits:{},engagement_agreement_details:{}}),{data:g,isLoading:ae,refetch:it}=We({employmentId:r,queryParams:{exclude_files:!0}});o&&g?.country?.code&&!i&&N(g.country.code);let{data:re,isLoading:se}=Be(r),{data:U,isLoading:oe,refetch:lt}=Ae(p),ct=a?.features?.includes("onboarding_reserves")&&t.currentStep.name==="review"||!1,{data:mt}=He(p,r,ct),{selectCountryForm:B,isLoading:ie}=Ke({jsfModify:a?.jsfModify?.select_country,queryOptions:{enabled:t.currentStep.name==="select_country"}}),le=Ne(a),ce=Je(i,a),me=Ie(a),de=Te(),ue=Ue(),{mutateAsync:dt}=w(le),{mutateAsync:fe}=w(ce),{mutateAsync:ut}=w(me),{mutateAsync:ft}=w(de),{mutateAsync:pt}=w(ue),yt=Kt[t.currentStep.name]||"employment_basic_information",gt=It[yt],_t=g?.[gt]||{},pe=s(({form:e,options:l={},query:u={},jsonSchemaVersion:P})=>{let Q=Object.keys(y).length>0?{...c,...t.values?.[t.currentStep.name],...y}:{...c,..._t};return qe({countryCode:i,form:e,fieldValues:Q,query:u,options:{...l,queryOptions:{enabled:l.queryOptions?.enabled??!0}},jsonSchemaVersion:P})},"useJSONSchema"),St=!!(i&&(t.currentStep.name==="basic_information"||o)),bt=!!(i&&(t.currentStep.name==="contract_details"||o)),{data:_,isLoading:ye}=pe({form:"employment_basic_information",options:{jsfModify:a?.jsfModify?.basic_information,queryOptions:{enabled:St}},jsonSchemaVersion:Re(a)}),M=a?.jsfModify?.contract_details?.fields?.annual_gross_salary,z=M&&typeof M=="object"&&"presentation"in M?M.presentation:void 0,ge=a?.jsfModify?.contract_details?.fields?.equity_compensation,Et=f(()=>({fields:{annual_gross_salary:{...M,presentation:{annual_gross_salary_conversion_properties:{label:z?.annual_gross_salary_conversion_properties?.label,description:z?.annual_gross_salary_conversion_properties?.description},desiredCurrency:U?.desired_currency,Component:s(e=>nt(ze,{desiredCurrency:U?.desired_currency||"",...e}),"Component")}},equity_compensation:{...ge,presentation:{calculateDynamicProperties:s((e,l)=>{let u=e.equity_compensation?.offer_equity_compensation,P=l?.meta?.cost;return{extra:nt(Qe,{offerEquity:u,equityCost:P})}},"calculateDynamicProperties")}}}}),[M,z,U?.desired_currency,ge]),Ct=Le(a,i),{data:S,isLoading:_e}=pe({form:"contract_details",query:{employment_id:r},options:{jsfModify:{...a?.jsfModify?.contract_details,fields:{...a?.jsfModify?.contract_details?.fields,...Et.fields}},queryOptions:{enabled:bt}},jsonSchemaVersion:Ct}),{data:E,isLoading:Se}=ke(r,y,a),be=f(()=>{if(t.currentStep.name==="benefits"){let e={...t.values?.[t.currentStep.name],...y};return Tt({},re,e)}return{}},[t.currentStep.name,re,t.values,y]),n=f(()=>({select_country:B?.fields||[],basic_information:_?.fields||[],engagement_agreement_details:d?.fields||[],contract_details:S?.fields||[],benefits:E?.fields||[],review:[]}),[B?.fields,_?.fields,S?.fields,E?.fields,d?.fields]),Ft={select_country:null,basic_information:_?.meta["x-jsf-fieldsets"],engagement_agreement_details:d?.meta["x-jsf-fieldsets"],contract_details:S?.meta["x-jsf-fieldsets"],benefits:null,review:null},ht={select_country:B?.meta?.["x-jsf-presentation"],basic_information:_?.meta?.["x-jsf-presentation"],engagement_agreement_details:d?.meta?.["x-jsf-presentation"],contract_details:S?.meta?.["x-jsf-presentation"],benefits:E?.meta?.["x-jsf-presentation"],review:null},{country:Ee,basic_information:Ce={},contract_details:Fe={},status:he}=g||{},xe=Ee?.code,Ve=t.currentStep.name,v=f(()=>L(n.select_country,{country:i||xe||""}),[n.select_country,i,xe]),O=f(()=>{let e={...c,...Ce};return L(n.basic_information,e)},[n.basic_information,Ce,c]),j=f(()=>{let e={...c,...I};return L(n.engagement_agreement_details,e)},[n.engagement_agreement_details,c,I]),F=f(()=>{let e={...c,...Fe};return L(n.contract_details,e)},[n.contract_details,Fe,c]),D=f(()=>{let e={...c,...be};return L(n.benefits,e)},[n.benefits,be,c]),xt=f(()=>g?{select_country:v,basic_information:Y(n.basic_information,O),engagement_agreement_details:j,contract_details:g?.contract_details!==null?Y(n.contract_details,F):F,benefits:D}:{select_country:v,basic_information:O,contract_details:F,benefits:D},[v,O,j,F,D,g,n]),{isLoading:Vt,isNavigatingToReview:Me,isEmploymentReadOnly:Mt,canInvite:vt}=f(()=>Ut({isLoadingBasicInformationForm:ye,isLoadingContractDetailsForm:_e,isLoadingEngagementAgreementDetails:ne,isLoadingEmploymentEngagementAgreementDetails:te,isLoadingEmployment:ae,isLoadingBenefitsOffersSchema:Se,isLoadingBenefitOffers:se,isLoadingCompany:oe,isLoadingCountries:ie,employmentId:o,employmentStatus:he,basicInformationFields:n.basic_information,contractDetailsFields:n.contract_details,currentStepName:Ve}),[ye,_e,ne,te,ae,Se,se,oe,ie,o,he,n.basic_information,n.contract_details,Ve]);tt(()=>{Me&&(K.current={select_country:h(v,n.select_country,{skipMoneyConversion:!0}),basic_information:h(O,n.basic_information,{skipMoneyConversion:!0}),engagement_agreement_details:h(j,n.engagement_agreement_details,{skipMoneyConversion:!0}),contract_details:h(F,n.contract_details,{skipMoneyConversion:!0}),benefits:h(D,n.benefits,{skipMoneyConversion:!0})},ee({select_country:v,basic_information:O,contract_details:F,benefits:D,engagement_agreement_details:j,review:{}}),$("review"))},[O,D,F,j,$,Me,v,ee,n.basic_information,n.benefits,n.contract_details,n.select_country,n.engagement_agreement_details]);let ve=s(async e=>B&&t.currentStep.name==="select_country"?e:_&&t.currentStep.name==="basic_information"?await b(e,_?.fields,{isPartialValidation:!1}):d&&t.currentStep.name==="engagement_agreement_details"?await b(e,d?.fields,{isPartialValidation:!1}):S&&t.currentStep.name==="contract_details"?await b(e,S?.fields,{isPartialValidation:!1}):E&&t.currentStep.name==="benefits"?await b(e,E?.fields,{isPartialValidation:!1}):{},"parseFormValues");async function Ot(e){let l=t.currentStep.name,u=await ve(e);switch(l in K.current&&(K.current[l]=h(u,n[l])),lt(),t.currentStep.name){case"select_country":return N(u.country),Promise.resolve({data:{countryCode:u.country}});case"basic_information":{let P=!r&&i,Oe=r&&i&&g?.country&&g?.country.code!==i;if(P||Oe){let Q={basic_information:u,type:x,country_code:i,external_id:R};try{let C=await dt(Q);if(C.error)return C;if(C.data){let X=C.data?.data?.employment?.id;return X&&(H(X),await pt({employmentId:X,eligible_to_work_in_residing_country:"citizen",employer_or_work_restrictions:!1})),C}}catch(C){throw console.error("Error creating onboarding:",C),C}}else if(r)return fe({employmentId:r,basic_information:u,pricing_plan_details:{frequency:"monthly"},external_id:R});return}case"engagement_agreement_details":return ft({employmentId:r,engagement_agreement_details:u});case"contract_details":return fe({employmentId:r,external_id:R,...{contract_details:u,pricing_plan_details:{frequency:"monthly"}}});case"benefits":return ut({employmentId:r,...u})}}s(Ot,"onSubmit");function Dt(){rt()}s(Dt,"back");function Pt(){st()}s(Pt,"next");function wt(e){$(e)}return s(wt,"goTo"),{employmentId:r,creditRiskStatus:U?.default_legal_entity_credit_risk_status,onboardingReservesStatus:mt,fieldValues:y,stepState:t,fields:n[t.currentStep.name],isLoading:Vt,isSubmitting:le.isPending||ce.isPending||me.isPending||de.isPending||ue.isPending,initialValues:xt,handleValidation:s(async e=>{if(t.currentStep.name==="select_country")return B.handleValidation(e);if(t.currentStep.name==="benefits"&&E){let l=await b(e,E?.fields,{isPartialValidation:!1});return E?.handleValidation(l)}if(_&&t.currentStep.name==="basic_information"){let l=await b(e,_?.fields,{isPartialValidation:!1});return _?.handleValidation(l)}if(d&&t.currentStep.name==="engagement_agreement_details"){let l=await b(e,d?.fields,{isPartialValidation:!1});return d?.handleValidation(l)}if(S&&t.currentStep.name==="contract_details"){let l=await b(e,S?.fields,{isPartialValidation:!1});return S?.handleValidation(l)}return null},"handleValidation"),checkFieldUpdates:at,parseFormValues:ve,onSubmit:Ot,back:Dt,next:Pt,goTo:wt,meta:{fields:K.current,fieldsets:Ft[t.currentStep.name],presentation:ht[t.currentStep.name]},refetchEmployment:it,employment:g,isEmploymentReadOnly:Mt,canInvite:vt,steps:T,selectedCountry:i?{code:i,name:Ee?.name}:null}},"useOnboarding");export{Xe as a,$t as b,_n as c};
|
|
2
|
+
//# sourceMappingURL=chunk-HUAPBLSQ.js.map
|