@remoteoss/remote-flows 1.19.0 → 1.20.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/ButtonDefault-2YV2Z474.js +2 -0
- package/dist/{CountryFieldDefault-X7772U44.js → CountryFieldDefault-IBVQJVMW.js} +2 -2
- package/dist/DatePickerFieldDefault-5LEOVIM2.js +2 -0
- package/dist/FieldsetToggleButtonDefault-MFLN2WWT.js +2 -0
- package/dist/FileUploadFieldDefault-Y2ZYBSTV.js +2 -0
- package/dist/MultiSelectFieldDefault-UK7652MS.js +2 -0
- package/dist/{WorkScheduleFieldDefault-FPXVZLXP.js → WorkScheduleFieldDefault-SR3G37MN.js} +2 -2
- package/dist/{chunk-U4H65USG.js → chunk-24FMEFH5.js} +2 -2
- package/dist/{chunk-ZWIH53GL.js → chunk-3C6N7DK6.js} +2 -2
- package/dist/{chunk-FUGPVPYX.js → chunk-3NESYBEJ.js} +2 -2
- package/dist/{chunk-N7CS4LVY.js → chunk-3OJVYYPZ.js} +2 -2
- package/dist/{chunk-EKR5ME7C.js → chunk-3UEQXLRC.js} +2 -2
- package/dist/{chunk-4QNOC3FL.js → chunk-4S7BRDNF.js} +2 -2
- package/dist/{chunk-IYQDAHMG.js → chunk-5JGEEJ3A.js} +2 -2
- package/dist/chunk-6JTHV4QS.js +2 -0
- package/dist/chunk-6JTHV4QS.js.map +1 -0
- package/dist/{chunk-2QGJBYQP.js → chunk-74ZEXZAY.js} +2 -2
- package/dist/{chunk-QH57S4OP.js → chunk-7EUMRKH4.js} +2 -2
- package/dist/{chunk-PP25XZSV.js → chunk-7M7VN4WI.js} +2 -2
- package/dist/{chunk-GCMEX4I6.js → chunk-AFHSKSGA.js} +2 -2
- package/dist/chunk-AHRG5QCS.js +2 -0
- package/dist/chunk-AHRG5QCS.js.map +1 -0
- package/dist/{chunk-WH4AY6UO.js → chunk-BLGKOMH3.js} +2 -2
- package/dist/{chunk-QYWF2RMX.js → chunk-BTS5Q6UZ.js} +2 -2
- package/dist/{chunk-BAGPUVVO.js → chunk-BUOCIXUH.js} +2 -2
- package/dist/{chunk-SS2FAFUZ.js → chunk-BYDQHL6O.js} +2 -2
- package/dist/{chunk-RZQIAOMZ.js → chunk-CR3X2TWM.js} +2 -2
- package/dist/{chunk-CRKLC7BP.js → chunk-D36G74ID.js} +2 -2
- package/dist/{chunk-WUOSCFTG.js → chunk-DFYEI445.js} +2 -2
- package/dist/{chunk-QEEZZSOQ.js → chunk-DHRMW63S.js} +2 -2
- package/dist/{chunk-3DKYJYLD.js → chunk-DPRCPBRB.js} +2 -2
- package/dist/{chunk-3W3VKY2J.js → chunk-EMP4ZIVB.js} +2 -2
- package/dist/{chunk-FVBPHUV6.js → chunk-I5FVESDZ.js} +2 -2
- package/dist/{chunk-VYINI3DD.js → chunk-IVXIAOMR.js} +2 -2
- package/dist/{chunk-3GBODX6S.js → chunk-JDVILEVL.js} +2 -2
- package/dist/{chunk-UAWJQ3EH.js → chunk-JEFPOHCP.js} +2 -2
- package/dist/{chunk-R7R6D7D4.js → chunk-JTPKAIYL.js} +2 -2
- package/dist/{chunk-ONXEJSDK.js → chunk-KYBKW4FE.js} +2 -2
- package/dist/{chunk-P7P5KATB.js → chunk-LM766FLB.js} +2 -2
- package/dist/{chunk-U32PNP6D.js → chunk-LSW66EIR.js} +2 -2
- package/dist/{chunk-UKTMSVMG.js → chunk-M7KQPXCS.js} +2 -2
- package/dist/{chunk-FDEJ4CIO.js → chunk-MGY23P25.js} +2 -2
- package/dist/chunk-MP3VDCI7.js +2 -0
- package/dist/chunk-MP3VDCI7.js.map +1 -0
- package/dist/{chunk-FY5OFJRY.js → chunk-MVQOMW7S.js} +2 -2
- package/dist/{chunk-E2ONHNZD.js → chunk-MXSKCQOT.js} +2 -2
- package/dist/{chunk-IGLKMXWJ.js → chunk-NAMR4DA5.js} +2 -2
- package/dist/{chunk-YBAV2FE4.js → chunk-OUSCSVMQ.js} +2 -2
- package/dist/chunk-PX5PE6GX.js +2 -0
- package/dist/chunk-PX5PE6GX.js.map +1 -0
- package/dist/chunk-ROQYHTFQ.js +2 -0
- package/dist/chunk-ROQYHTFQ.js.map +1 -0
- package/dist/{chunk-EFLRT7G5.js → chunk-RSZZMCB2.js} +2 -2
- package/dist/{chunk-D3EB2FG3.js → chunk-RZJ7WE6G.js} +2 -2
- package/dist/{chunk-2HBSVDEH.js → chunk-T5JT2ZU2.js} +2 -2
- package/dist/{chunk-YMNB6DO2.js → chunk-VCDA76UN.js} +2 -2
- package/dist/{chunk-7RP5F62S.js → chunk-VPSESR6G.js} +2 -2
- package/dist/{chunk-7FHNJWIY.js → chunk-VXMLYWZ2.js} +2 -2
- package/dist/chunk-X6IMS3NL.js +2 -0
- package/dist/chunk-X6IMS3NL.js.map +1 -0
- package/dist/{chunk-RQJYOWP4.js → chunk-Y2LBI32D.js} +2 -2
- package/dist/{chunk-QLMEA4FA.js → chunk-YHQQSL4Q.js} +2 -2
- package/dist/{chunk-AJCKNHZB.js → chunk-YWOJ4NKF.js} +2 -2
- package/dist/{chunk-AUV3PA2A.js → chunk-Z6B3PA4M.js} +2 -2
- package/dist/default-components.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/StatementOfWorkDisclaimer.js +1 -1
- package/dist/flows/ContractorOnboarding/constants.d.ts +4 -1
- package/dist/flows/ContractorOnboarding/constants.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +2 -1
- package/dist/flows/ContractorOnboarding/hooks.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/jsfModify.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/jsfModify.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/utils.d.ts +8 -1
- package/dist/flows/ContractorOnboarding/utils.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/CreateCompany/CreateCompany.js +1 -1
- package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
- package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
- package/dist/flows/CreateCompany/index.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +1 -1
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/internals.d.ts +2 -6
- package/dist/internals.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-5zVzEzw3.d.ts → types-D_exxPuY.d.ts} +12 -1
- package/package.json +1 -2
- package/dist/ButtonDefault-6LBHWUQH.js +0 -2
- package/dist/DatePickerFieldDefault-7HPCPBEI.js +0 -2
- package/dist/FieldsetToggleButtonDefault-MXBQJ55Q.js +0 -2
- package/dist/FileUploadFieldDefault-T7EK7RTI.js +0 -2
- package/dist/MultiSelectFieldDefault-57GAREIU.js +0 -2
- package/dist/chunk-LHEF2FN7.js +0 -2
- package/dist/chunk-LHEF2FN7.js.map +0 -1
- package/dist/chunk-RJY6AEJB.js +0 -2
- package/dist/chunk-RJY6AEJB.js.map +0 -1
- package/dist/chunk-TXQWBDNF.js +0 -2
- package/dist/chunk-TXQWBDNF.js.map +0 -1
- package/dist/chunk-U2LHFJXY.js +0 -2
- package/dist/chunk-U2LHFJXY.js.map +0 -1
- package/dist/chunk-VWFZ6CMP.js +0 -2
- package/dist/chunk-VWFZ6CMP.js.map +0 -1
- package/dist/chunk-WFXSA66P.js +0 -2
- package/dist/chunk-WFXSA66P.js.map +0 -1
- /package/dist/{ButtonDefault-6LBHWUQH.js.map → ButtonDefault-2YV2Z474.js.map} +0 -0
- /package/dist/{CountryFieldDefault-X7772U44.js.map → CountryFieldDefault-IBVQJVMW.js.map} +0 -0
- /package/dist/{DatePickerFieldDefault-7HPCPBEI.js.map → DatePickerFieldDefault-5LEOVIM2.js.map} +0 -0
- /package/dist/{FieldsetToggleButtonDefault-MXBQJ55Q.js.map → FieldsetToggleButtonDefault-MFLN2WWT.js.map} +0 -0
- /package/dist/{FileUploadFieldDefault-T7EK7RTI.js.map → FileUploadFieldDefault-Y2ZYBSTV.js.map} +0 -0
- /package/dist/{MultiSelectFieldDefault-57GAREIU.js.map → MultiSelectFieldDefault-UK7652MS.js.map} +0 -0
- /package/dist/{WorkScheduleFieldDefault-FPXVZLXP.js.map → WorkScheduleFieldDefault-SR3G37MN.js.map} +0 -0
- /package/dist/{chunk-U4H65USG.js.map → chunk-24FMEFH5.js.map} +0 -0
- /package/dist/{chunk-ZWIH53GL.js.map → chunk-3C6N7DK6.js.map} +0 -0
- /package/dist/{chunk-FUGPVPYX.js.map → chunk-3NESYBEJ.js.map} +0 -0
- /package/dist/{chunk-N7CS4LVY.js.map → chunk-3OJVYYPZ.js.map} +0 -0
- /package/dist/{chunk-EKR5ME7C.js.map → chunk-3UEQXLRC.js.map} +0 -0
- /package/dist/{chunk-4QNOC3FL.js.map → chunk-4S7BRDNF.js.map} +0 -0
- /package/dist/{chunk-IYQDAHMG.js.map → chunk-5JGEEJ3A.js.map} +0 -0
- /package/dist/{chunk-2QGJBYQP.js.map → chunk-74ZEXZAY.js.map} +0 -0
- /package/dist/{chunk-QH57S4OP.js.map → chunk-7EUMRKH4.js.map} +0 -0
- /package/dist/{chunk-PP25XZSV.js.map → chunk-7M7VN4WI.js.map} +0 -0
- /package/dist/{chunk-GCMEX4I6.js.map → chunk-AFHSKSGA.js.map} +0 -0
- /package/dist/{chunk-WH4AY6UO.js.map → chunk-BLGKOMH3.js.map} +0 -0
- /package/dist/{chunk-QYWF2RMX.js.map → chunk-BTS5Q6UZ.js.map} +0 -0
- /package/dist/{chunk-BAGPUVVO.js.map → chunk-BUOCIXUH.js.map} +0 -0
- /package/dist/{chunk-SS2FAFUZ.js.map → chunk-BYDQHL6O.js.map} +0 -0
- /package/dist/{chunk-RZQIAOMZ.js.map → chunk-CR3X2TWM.js.map} +0 -0
- /package/dist/{chunk-CRKLC7BP.js.map → chunk-D36G74ID.js.map} +0 -0
- /package/dist/{chunk-WUOSCFTG.js.map → chunk-DFYEI445.js.map} +0 -0
- /package/dist/{chunk-QEEZZSOQ.js.map → chunk-DHRMW63S.js.map} +0 -0
- /package/dist/{chunk-3DKYJYLD.js.map → chunk-DPRCPBRB.js.map} +0 -0
- /package/dist/{chunk-3W3VKY2J.js.map → chunk-EMP4ZIVB.js.map} +0 -0
- /package/dist/{chunk-FVBPHUV6.js.map → chunk-I5FVESDZ.js.map} +0 -0
- /package/dist/{chunk-VYINI3DD.js.map → chunk-IVXIAOMR.js.map} +0 -0
- /package/dist/{chunk-3GBODX6S.js.map → chunk-JDVILEVL.js.map} +0 -0
- /package/dist/{chunk-UAWJQ3EH.js.map → chunk-JEFPOHCP.js.map} +0 -0
- /package/dist/{chunk-R7R6D7D4.js.map → chunk-JTPKAIYL.js.map} +0 -0
- /package/dist/{chunk-ONXEJSDK.js.map → chunk-KYBKW4FE.js.map} +0 -0
- /package/dist/{chunk-P7P5KATB.js.map → chunk-LM766FLB.js.map} +0 -0
- /package/dist/{chunk-U32PNP6D.js.map → chunk-LSW66EIR.js.map} +0 -0
- /package/dist/{chunk-UKTMSVMG.js.map → chunk-M7KQPXCS.js.map} +0 -0
- /package/dist/{chunk-FDEJ4CIO.js.map → chunk-MGY23P25.js.map} +0 -0
- /package/dist/{chunk-FY5OFJRY.js.map → chunk-MVQOMW7S.js.map} +0 -0
- /package/dist/{chunk-E2ONHNZD.js.map → chunk-MXSKCQOT.js.map} +0 -0
- /package/dist/{chunk-IGLKMXWJ.js.map → chunk-NAMR4DA5.js.map} +0 -0
- /package/dist/{chunk-YBAV2FE4.js.map → chunk-OUSCSVMQ.js.map} +0 -0
- /package/dist/{chunk-EFLRT7G5.js.map → chunk-RSZZMCB2.js.map} +0 -0
- /package/dist/{chunk-D3EB2FG3.js.map → chunk-RZJ7WE6G.js.map} +0 -0
- /package/dist/{chunk-2HBSVDEH.js.map → chunk-T5JT2ZU2.js.map} +0 -0
- /package/dist/{chunk-YMNB6DO2.js.map → chunk-VCDA76UN.js.map} +0 -0
- /package/dist/{chunk-7RP5F62S.js.map → chunk-VPSESR6G.js.map} +0 -0
- /package/dist/{chunk-7FHNJWIY.js.map → chunk-VXMLYWZ2.js.map} +0 -0
- /package/dist/{chunk-RQJYOWP4.js.map → chunk-Y2LBI32D.js.map} +0 -0
- /package/dist/{chunk-QLMEA4FA.js.map → chunk-YHQQSL4Q.js.map} +0 -0
- /package/dist/{chunk-AJCKNHZB.js.map → chunk-YWOJ4NKF.js.map} +0 -0
- /package/dist/{chunk-AUV3PA2A.js.map → chunk-Z6B3PA4M.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as y}from"./chunk-PGWKJ6FK.js";import{b as F}from"./chunk-LNV36S6D.js";import{a as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as y}from"./chunk-PGWKJ6FK.js";import{b as F}from"./chunk-LNV36S6D.js";import{a as u}from"./chunk-BUOCIXUH.js";import{f,g as p}from"./chunk-7EONM7HL.js";import{b as c}from"./chunk-X6ZAR7ZL.js";import{a as m}from"./chunk-P37U34EQ.js";import{useEffect as S}from"react";import{jsx as b}from"react/jsx-runtime";import{createElement as V}from"react";function N({defaultValues:d,onSubmit:g,components:E}){let{formId:w,onboardingBag:o}=y(),k=F(o.handleValidation),r=f({resolver:k,defaultValues:d,shouldUnregister:!1,mode:"onBlur"});S(()=>{o.employmentId&&o?.checkFieldUpdates(r.getValues())},[]),S(()=>{let t=r?.watch(e=>{Object.keys(e).some(i=>e[i]!==d[i])&&o?.checkFieldUpdates(e)});return()=>t?.unsubscribe()},[]);let h=m(async(t,e)=>{let s=e?.nativeEvent;if(s?.isDraftSubmission){let{onSuccess:i,onError:l}=s.draftCallbacks;try{if(!await r.trigger())return;let n=await o.onSubmit(t);if(n?.data)i?.();else if(n?.error){let P=o.stepState.currentStep.name,B=o.meta?.fields?.[P],O=c(n?.fieldErrors||[],B);l?.({error:n.error,rawError:n.rawError,fieldErrors:O})}}catch(a){l?.({error:a,rawError:a,fieldErrors:[]})}}else await g(t)},"handleSubmit");return V(p,{...r,key:`form-${o.stepState.currentStep.name}`},b("form",{id:w,onSubmit:r.handleSubmit(h),className:"space-y-4 RemoteFlows__OnboardingForm",children:b(u,{components:E,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}m(N,"OnboardingForm");export{N as a};
|
|
2
|
+
//# sourceMappingURL=chunk-JEFPOHCP.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as v}from"./chunk-SNECOPBD.js";import{i as U}from"./chunk-T7O3YYOG.js";import{b as L,c as O,f as G}from"./chunk-AOSXULKY.js";import{a as I}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as v}from"./chunk-SNECOPBD.js";import{i as U}from"./chunk-T7O3YYOG.js";import{b as L,c as O,f as G}from"./chunk-AOSXULKY.js";import{a as I}from"./chunk-BYDQHL6O.js";import{a as z}from"./chunk-HJ7WOTV7.js";import{b as J}from"./chunk-YHCH57B7.js";import{c as d,h as g}from"./chunk-7EONM7HL.js";import{a as R,e as H}from"./chunk-VIGKOVHP.js";import{b as C}from"./chunk-KQPDXXG3.js";import{a as n}from"./chunk-P37U34EQ.js";import{Fragment as fe,useEffect as Pe,useRef as ge}from"react";import{jsx as Z}from"react/jsx-runtime";function q({description:e,label:t,name:i,minDate:l,maxDate:s,onChange:p,component:r,...c}){let{components:h}=C(),{control:u}=d(),F;c.meta?.mot&&typeof c.meta.mot=="number"?F=U(c.meta.mot):typeof l=="string"&&(F=new Date(`${l}T00:00:00`));let a;return s&&(a=new Date(`${s}T23:59:59`)),Z(g,{control:u,name:i,render:({field:f,fieldState:S})=>{let m=r||h?.date;if(!m)throw new Error(`Date picker component not found for field ${i}`);let y={description:e,label:t,name:i,onChange:p,...F&&{minDate:F.toISOString()},...a&&{maxDate:a.toISOString()},...c};return Z(m,{field:{...f,onChange:n(x=>{f.onChange(x),p?.(x)},"onChange")},fieldState:S,fieldData:y})}})}n(q,"DatePickerField");import{jsx as K}from"react/jsx-runtime";var xe=n((e,t)=>{if(!t)return null;for(let i of e)if(i.size>t){let l=Math.round(t/1048576),s=Math.round(i.size/(1024*1024));return`File "${i.name}" exceeds maximum size of ${l}MB (file is ${s}MB)`}return null},"validateFileSize");function Q({name:e,description:t,label:i,multiple:l,onChange:s,component:p,accept:r,maxSize:c,...h}){let{components:u}=C(),{control:F,setError:a,clearErrors:f}=d(),S=n(async(m,y)=>{let x=xe(m,c);if(x){a(e,{message:x});return}f(e),y.onChange(m),s?.(m)},"handleOnChange");return K(g,{control:F,name:e,render:({field:m,fieldState:y})=>{let x=p||u.file;if(!x)throw new Error(`File upload component not found for field ${e}`);let P={name:e,description:t,label:i,multiple:l,accept:r,maxFileSize:c,...h};return K(x,{field:{...m,value:m.value,onChange:n(async T=>S(T,m),"onChange")},fieldState:y,fieldData:P})}})}n(Q,"FileUploadField");import{jsx as X}from"react/jsx-runtime";function N(e){let{components:t}=C(),{control:i}=d(),l=e.component||t.number;if(!l)throw new Error(`Number component not found for field ${e.name}`);return X(g,{control:i,name:e.name,render:({field:s,fieldState:p})=>X(l,{field:{...s,onChange:n(r=>{s.onChange(r),e.onChange?.(r)},"onChange")},fieldState:p,fieldData:e})})}n(N,"NumberField");import{jsx as Y}from"react/jsx-runtime";function j({name:e,defaultValue:t,description:i,label:l,options:s,onChange:p,component:r,...c}){let{components:h}=C(),{control:u}=d();return Y(g,{control:u,name:e,defaultValue:t,render:({field:F,fieldState:a})=>{let f=r||h?.radio;if(!f)throw new Error(`Radio group component not found for field ${e}`);let S={name:e,defaultValue:t,description:i,label:l,options:s,...c};return Y(f,{field:{...F,onChange:n(m=>{F.onChange(m),p?.(m)},"onChange")},fieldState:a,fieldData:S})}})}n(j,"RadioGroupField");import{jsx as ee}from"react/jsx-runtime";function oe({label:e,name:t,options:i,defaultValue:l,description:s,onChange:p,component:r,...c}){let{control:h}=d(),{components:u}=C();return ee(g,{defaultValue:l,control:h,name:t,render:({field:F,fieldState:a})=>{let f=r||u?.select;if(!f)throw new Error(`Select component not found for field ${t}`);let S={label:e,name:t,options:i,defaultValue:l,description:s,onChange:p,...c};return ee(f,{field:{...F,onChange:n(m=>{let y=c.jsonType==="number"?Number(m):m;F.onChange(y),p?.(y)},"onChange")},fieldState:a,fieldData:S})}})}n(oe,"SelectField");import{jsx as te}from"react/jsx-runtime";function ne({label:e,name:t,options:i,defaultValue:l,description:s,onChange:p,$meta:r,component:c,...h}){let{control:u}=d(),{components:F}=C();return te(g,{defaultValue:l,control:u,name:t,render:({field:a,fieldState:f})=>{let S=c||F.countries;if(!S)throw new Error(`Country component not found for field ${t}`);let m={label:e,name:t,options:i,defaultValue:l,description:s,onChange:p,$meta:r,...h};return te(S,{field:{...a,onChange:n(y=>{a.onChange(y),p?.(y)},"onChange")},fieldState:f,fieldData:m})}})}n(ne,"CountryField");import{jsx as re}from"react/jsx-runtime";function ie({name:e,description:t,label:i,onChange:l,maxLength:s,component:p,...r}){let{components:c}=C(),{control:h}=d();return re(g,{control:h,name:e,render:({field:u,fieldState:F})=>{let a=p||c.textarea;if(!a)throw new Error(`Text area component not found for field ${e}`);let f={name:e,description:t,label:i,maxLength:s,...r};return re(a,{field:{...u,onChange:n(S=>{u.onChange(S),l?.(S)},"onChange")},fieldState:F,fieldData:f})}})}n(ie,"TextAreaField");import{jsx as le}from"react/jsx-runtime";function me(e){let{components:t}=C(),{control:i}=d(),l=e.component||t.email;if(!l)throw new Error(`Email component not found for field ${e.name}`);return le(g,{control:i,name:e.name,render:({field:s,fieldState:p})=>le(l,{field:{...s,onChange:n(r=>{s.onChange(r),e.onChange?.(r)},"onChange")},fieldState:p,fieldData:e})})}n(me,"EmailField");import{jsx as se}from"react/jsx-runtime";function ae(e){let{control:t}=d();return se(g,{control:t,name:e.name,render:({field:i})=>se("input",{...i,type:"hidden"})})}n(ae,"HiddenField");import{useEffect as be,useState as Te}from"react";import{jsx as pe}from"react/jsx-runtime";function de(e){let{components:t}=C(),{setValue:i,control:l,watch:s}=d(),p=s(e.name),[r,c]=Te(p),{workHoursSummary:h,breakSummary:u}=O(r),F=L(r);be(()=>{i(e.name,r)},[r,e.name,i]);function a(m){c(m)}n(a,"onSubmit");let f=e.component||t["work-schedule"];if(!f)throw new Error(`Work schedule component not found for field ${e.name}`);let S={...e,onSubmit:a,currentSchedule:r,defaultFormattedValue:{workHoursSummary:h,breakSummary:u,totalWorkHours:F}};return pe(g,{control:l,name:e.name,render:({field:m,fieldState:y})=>pe(f,{field:{...m,onChange:n(x=>{m.onChange(x),e.onChange?.(x)},"onChange")},fieldState:y,fieldData:S})})}n(de,"WorkScheduleField");import{jsx as ce}from"react/jsx-runtime";function ue({label:e,name:t,options:i,defaultValue:l,description:s,onChange:p,component:r,...c}){let{control:h}=d(),{components:u}=C();return ce(g,{defaultValue:l,control:h,name:t,render:({field:F,fieldState:a})=>{let f=r||u?.["multi-select"];if(!f)throw new Error(`Multi select component not found for field ${t}`);let S={label:e,name:t,options:i,defaultValue:l,description:s,onChange:p,...c};return ce(f,{field:{...F,onChange:n(m=>{F.onChange(m),p?.(m)},"onChange")},fieldState:a,fieldData:S})}})}n(ue,"MultiSelectField");import{jsx as $e}from"react/jsx-runtime";var Fe=n(e=>$e(N,{maxLength:15,...e}),"MoneyField");var A={checkbox:G,text:z,email:me,money:Fe,select:oe,"multi-select":ue,radio:j,number:N,file:Q,date:q,textarea:ie,countries:ne,hidden:ae,"work-schedule":de};import{Fragment as we,jsx as b,jsxs as $}from"react/jsx-runtime";function Ce({label:e,name:t,fields:i,description:l,components:s,statement:p,isFlatFieldset:r,extra:c,variant:h="outset",features:u,meta:F}){let{helpCenter:a}=F||{},{watch:f,setValue:S,trigger:m,formState:y}=d(),{components:x}=C(),P=u?.toggle?.stateField,T=P?f(P):u?.toggle?.defaultExpanded??!0,Se=i.map(({name:o})=>`${t}.${o}`),_=f(Se),B=ge(_),w=ge(null),he=n(()=>{P&&S(P,!T)},"toggleExpanded");Pe(()=>{let o=_,D=B.current,M=y.isSubmitted||y.submitCount>0,E=!1;for(let k=0;k<o.length;k++)if(o[k]!==void 0&&D[k]!==o[k]){E=!0;break}return E&&M&&(w.current&&clearTimeout(w.current),w.current=setTimeout(()=>{m()},50)),B.current=[...o],()=>{w.current&&clearTimeout(w.current)}},[_,m,y.isSubmitted,y.submitCount]);let ye=x?.fieldsetToggle||I,V=`${t}-content`,W=`${t}-header`;return $("fieldset",{className:R("border-1 border-input p-4 rounded-xl","RemoteFlows__FieldSetField",`RemoteFlows__FieldSetField__${t}`),children:[b("legend",{className:R("text-sm font-semibold px-2",h==="inset"&&"hidden"),children:e}),a?.callToAction&&a?.id&&h==="outset"&&b(J,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:a.id,children:a.callToAction}),h==="inset"&&$(we,{children:[$("div",{className:"RemoteFlows__FieldSetField__Header",id:W,"data-state":T?"expanded":"collapsed","aria-expanded":T,children:[b("h3",{className:R("RemoteFlows__FieldSetField__Title"),children:e}),u?.toggle?.enabled&&b(ye,{isExpanded:T,onToggle:he,"aria-expanded":T,"aria-controls":V,"aria-label":`${T?"Hide":"Show"} ${e}`,className:R("RemoteFlows__FieldSetField__Toggle",u.toggle?.className),children:T?u.toggle.labels?.collapse??"Remove":u.toggle.labels?.expand??"Define"})]}),a?.callToAction&&a?.id&&b(J,{className:"RemoteFlows__FieldSetField__HelpCenterLink mb-3",zendeskId:a.id,children:a.callToAction})]}),T&&$("div",{id:V,"aria-labelledby":W,role:"region",children:[l?b("div",{className:"mb-5 RemoteFlows__FieldSetField__Description",dangerouslySetInnerHTML:{__html:H(l)}}):null,$("div",{className:"grid gap-4",children:[i.map(o=>{if(o.calculateDynamicProperties&&(o={...o,...o.calculateDynamicProperties(_,o)||{}}),o.isVisible===!1||o.deprecated)return null;if(o.inputType==="fieldset")return b(Ce,{...o,name:`${r?o.name:`${t}.${o.name}`}`,components:s},`${r?o.name:`${t}.${o.name}`}`);if(o.inputType==="fieldset-flat")return b(Ce,{...o,name:`${r?o.name:`${t}.${o.name}`}`,components:s,isFlatFieldset:!0},`${r?o.name:`${t}.${o.name}`}`);let D=A[o.inputType];if(o.Component){let{Component:M}=o;return $(fe,{children:[b(M,{setValue:E=>S(r?o.name:`${t}.${o.name}`,E),...o}),o.statement?b(v,{...o.statement}):null,o.extra?o.extra:null]},`${r?o.name:`${t}.${o.name}`}`)}return D?(o.inputType==="select"&&o.multiple&&(D=A["multi-select"]),$(fe,{children:[b(D,{...o,name:`${r?o.name:`${t}.${o.name}`}`,component:s?.[o.inputType]}),o.statement?b(v,{...o.statement}):null,o.extra?o.extra:null]},`${r?o.name:`${t}.${o.name}`}`)):$("p",{className:"error",children:["Field type ",o.inputType," not supported"]})}),c||null,p?b(v,{...p}):null]})]})]})}n(Ce,"FieldSetField");export{A as a,Ce as b};
|
|
2
|
+
//# sourceMappingURL=chunk-JTPKAIYL.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-JDVILEVL.js";import{b as a}from"./chunk-Q3ALCPJN.js";import{k as n}from"./chunk-VIGKOVHP.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as S}from"react/jsx-runtime";function C({onSubmit:c,onSuccess:s,onError:u}){let{contractorOnboardingBag:r}=a(),l=t(async e=>{try{await c?.({countryCode:e.country});let o=await r.onSubmit(e);if(o?.data){await s?.(o?.data),r?.next();return}}catch(o){let m=n(o,r.meta?.fields?.select_country);u?.(m)}},"handleSubmit"),d=r.stepState.values?.select_country||r.initialValues.select_country;return S(i,{defaultValues:d,onSubmit:l})}t(C,"SelectCountryStep");export{C as a};
|
|
2
|
+
//# sourceMappingURL=chunk-KYBKW4FE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-QPN6X6UA.js";import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-QPN6X6UA.js";import{a}from"./chunk-MVQOMW7S.js";import{a as m}from"./chunk-I5FVESDZ.js";import{a as e}from"./chunk-76ZDXC2T.js";import{a as r}from"./chunk-WKLTHGWU.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-LM766FLB.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as f}from"./chunk-LNV36S6D.js";import{a as F}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as f}from"./chunk-LNV36S6D.js";import{a as F}from"./chunk-BUOCIXUH.js";import{e as p}from"./chunk-T7O3YYOG.js";import{f as l,g as u}from"./chunk-7EONM7HL.js";import{b as _}from"./chunk-TVZAFTPT.js";import{a}from"./chunk-P37U34EQ.js";import{useEffect as w}from"react";import{jsx as r}from"react/jsx-runtime";var R=["effective_date","reason_for_change","reason_for_change_description","additional_comments","additional_comments_toggle"];function x({onSubmit:b,onError:m,onSuccess:A}){let{formId:C,contractAmendment:{checkFieldUpdates:h,fields:s,onSubmit:y,stepState:S,initialValues:i,handleValidation:g}}=_(),V=f(g),e=l({resolver:V,defaultValues:S.values?.form||i,shouldUnregister:!0,mode:"onBlur"});w(()=>{let t=e?.watch(o=>{(Object.keys(e.formState.dirtyFields).length>0||e.formState.isDirty)&&h(o)});return()=>t?.unsubscribe()},[]);let v=a(async t=>{let o=!1;for(let[c,P]of Object.entries(t))if(!R.includes(c)&&i[c]!==P){o=!0;break}if(!o)return m?.({message:"no_changes_detected_contract_details"});let d=await p(t,s,{isPartialValidation:!1});await b?.(d);let n=await y(t);n.error?m?.(n.error):await A?.(n.data)},"handleSubmit");return r(u,{...e,children:r("form",{id:C,"data-testid":"contract-amendment-form",onSubmit:e.handleSubmit(v),className:"space-y-4 RemoteFlows__ContractAmendmentForm",children:r(F,{fields:s})})})}a(x,"ContractAmendmentForm");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-LSW66EIR.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as u}from"./chunk-VPSESR6G.js";import{a as F}from"./chunk-RGLQY27T.js";import{i as p,j as l,k as i,l as a,m as c}from"./chunk-7EONM7HL.js";import{a as m}from"./chunk-P37U34EQ.js";import{useEffect as $,useState as v}from"react";import{jsx as n,jsxs as C}from"react/jsx-runtime";function L({field:t,fieldState:b,fieldData:o}){let[g,s]=v([]),_=m(e=>{let r=e.map(({value:S})=>S);t.onChange(r),s(e)},"handleChange");$(()=>{t.value&&o.options&&s(t.value.map(e=>o?.options?.find(r=>r.value===e)))},[t.value,o.options]);let y=[...Object.entries(o.$meta?.regions||{}).map(([e,r])=>({value:r,label:e,category:"Regions"})),...Object.entries(o.$meta?.subregions||{}).map(([e,r])=>({value:r,label:e,category:"Subregions"})),...o.options?.map(e=>({...e,value:e.value,label:e.label,category:"Countries"}))||[]];return C(p,{"data-field":t.name,className:`RemoteFlows__CountryField__Item__${t.name}`,children:[n(l,{className:"RemoteFlows__CountryField__Label",children:o.label}),n(i,{children:n(u,{options:y,selected:g,onChange:_})}),o.description&&C(a,{children:[o.description," ",n(F,{helpCenter:o.meta?.helpCenter})]}),b.error&&n(c,{})]})}m(L,"CountryFieldDefault");export{L as a};
|
|
2
|
+
//# sourceMappingURL=chunk-M7KQPXCS.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as $,d as w,e as x,f as B}from"./chunk-AOSXULKY.js";import{a as N}from"./chunk-HJ7WOTV7.js";import{a as g,b as k,d as D,e as R,f as H,g as C}from"./chunk-7EONM7HL.js";import{a as T,b as E,c as j,d as O,f as V}from"./chunk-547UHEDI.js";import{b as F}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as $,d as w,e as x,f as B}from"./chunk-AOSXULKY.js";import{a as N}from"./chunk-HJ7WOTV7.js";import{a as g,b as k,d as D,e as R,f as H,g as C}from"./chunk-7EONM7HL.js";import{a as T,b as E,c as j,d as O,f as V}from"./chunk-547UHEDI.js";import{b as F}from"./chunk-MP3VDCI7.js";import{a as s}from"./chunk-P37U34EQ.js";import*as l from"yup";var P=s((t,a,r)=>{if(t&&"reportValidity"in t){let o=g(r,a);t.setCustomValidity(o&&o.message||""),t.reportValidity()}},"r"),b=s((t,a)=>{for(let r in a.fields){let o=a.fields[r];o&&o.ref&&"reportValidity"in o.ref?P(o.ref,r,t):o&&o.refs&&o.refs.forEach(u=>P(u,r,t))}},"o"),q=s((t,a)=>{a.shouldUseNativeValidation&&b(t,a);let r={};for(let o in t){let u=g(a.fields,o),i=Object.assign(t[o]||{},{ref:u&&u.ref});if(A(a.names||Object.keys(t),o)){let n=Object.assign({},g(r,o));k(n,"root",i),k(r,o,n)}else k(r,o,i)}return r},"s"),A=s((t,a)=>{let r=M(a);return t.some(o=>M(o).match(`^${r}\\.\\d+`))},"i");function M(t){return t.replace(/\]|\[/g,"")}s(M,"n");function L(t,a,r){return a===void 0&&(a={}),r===void 0&&(r={}),function(o,u,i){try{return Promise.resolve((function(n,_){try{var p=(a.context&&process.env.NODE_ENV==="development"&&console.warn("You should not used the yup options context. Please, use the 'useForm' context object instead"),Promise.resolve(t[r.mode==="sync"?"validateSync":"validate"](o,Object.assign({abortEarly:!1},a,{context:u}))).then(function(m){return i.shouldUseNativeValidation&&b({},i),{values:r.raw?Object.assign({},o):m,errors:{}}}))}catch(m){return _(m)}return p&&p.then?p.then(void 0,_):p})(0,function(n){if(!n.inner)throw n;return{values:{},errors:q((_=n,p=!i.shouldUseNativeValidation&&i.criteriaMode==="all",(_.inner||[]).reduce(function(m,c){if(m[c.path]||(m[c.path]={message:c.message,type:c.type}),p){var S=m[c.path].types,y=S&&S[c.type];m[c.path]=D(c.path,p,m,c.type,y?[].concat(y,c.message):c.message)}return m},{})),i)};var _,p}))}catch(n){return Promise.reject(n)}}}s(L,"o");import{Fragment as Y,useState as z}from"react";import{jsx as e,jsxs as d}from"react/jsx-runtime";var K=l.object({day:l.string().required(),checked:l.boolean().required(),start_time:l.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:s(t=>t.required("Required"),"then"),otherwise:s(t=>t.optional().nullable(),"otherwise")}),end_time:l.string().matches(/^([01]\d|2[0-3]):([0-5]\d)$/,"Invalid time format (HH:mm)").when("checked",{is:!0,then:s(t=>t.required("Required"),"then"),otherwise:s(t=>t.optional().nullable(),"otherwise")}),hours:l.number().default(0),break_duration_minutes:l.string().default("0")}),G=l.object({schedule:l.array(K)});function J({defaultSchedule:t,onSubmit:a}){let[r,o]=z(!1),u=$.map(f=>{let h=t.find(v=>v.day.toLowerCase()===x(f).toLowerCase()||v.day.toLowerCase()===f.toLowerCase());return h?{...h,day:x(f),checked:!0}:{...t[0],checked:!1,day:x(f)}}),i=H({defaultValues:{schedule:u},resolver:L(G)}),{handleSubmit:n,watch:_,reset:p,control:m,formState:c}=i,{fields:S}=R({name:"schedule",control:m}),y=_("schedule");function I(f){let h=f.schedule.filter(({checked:v})=>v).map(v=>({...v,hours:w(v)}));a(h),o(!1)}s(I,"handleSubmitWorkingHours");function U(){p(),o(!1)}return s(U,"handleCancel"),e("div",{className:"flex items-center justify-between",children:d(T,{open:r,onOpenChange:o,children:[e(E,{asChild:!0,children:e(F,{variant:"link",className:"flex items-center p-0 RemoteFlows__WorkScheduleSelectionForm__Trigger",children:"Edit Schedule"})}),d(j,{className:"max-w-5xl max-h-[90vh] overflow-y-auto px-8 py-4 RemoteFlows__WorkScheduleSelectionForm__Content",children:[e(O,{children:e(V,{className:"RemoteFlows__WorkScheduleSelectionForm__Title",children:"Edit employee working hours"})}),e(C,{...i,children:d("form",{className:"space-y-4 RemoteFlows__WorkScheduleSelectionForm__Form",children:[d("div",{className:"rounded-lg",children:[e("p",{className:"text-gray-600 text-sm mb-4 RemoteFlows__WorkScheduleSelectionForm__Description",children:"The times displayed are in the employee's time zone in the 24-hour format."}),d("div",{className:"grid grid-cols-12 gap-4 text-sm font-medium text-gray-500 uppercase tracking-wide RemoteFlows__WorkScheduleSelectionForm__Header",children:[e("div",{className:"col-span-2"}),e("div",{className:"col-span-3 text-center",children:"START"}),e("div",{className:"col-span-1 text-center"}),e("div",{className:"col-span-3 text-center",children:"END"}),e("div",{className:"col-span-2 text-center",children:"HOURS"})]}),e("div",{className:"RemoteFlows__WorkScheduleSelectionForm__Rows",children:S.map((f,h)=>{let v=y[h],W=w(v);return d(Y,{children:[d("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Hours",children:[e("div",{className:"col-span-2 flex items-center gap-3",children:e(B,{label:f.day,name:`schedule.${h}.checked`})}),e("div",{className:"col-span-3",children:e(N,{name:`schedule.${h}.start_time`,includeErrorMessage:!1})}),e("div",{className:"col-span-1 text-center text-gray-500",children:"to"}),e("div",{className:"col-span-3",children:e(N,{name:`schedule.${h}.end_time`,includeErrorMessage:!1})}),e("div",{className:"col-span-2 text-center text-gray-600",children:isNaN(W)?"-":`${W} hours`})]}),d("div",{className:"grid grid-cols-12 gap-4 items-center py-2 RemoteFlows__WorkScheduleSelectionForm__Row-Break",children:[e("div",{className:"col-span-2 text-gray-500",children:"Break"}),e("div",{className:"col-span-2",children:e(N,{name:`schedule.${h}.break_duration_minutes`,includeErrorMessage:!1})}),e("div",{className:"col-span-2 text-gray-500",children:"minutes"}),e("div",{className:"col-span-4"})]})]},f.id)})})]}),Object.keys(c.errors).length>0&&e("p",{className:"text-destructive text-sm mb-0",children:"Invalid time format (HH:mm)"}),d("div",{className:"flex gap-4 pt-4",children:[e(F,{type:"button",className:"reset-button",variant:"outline",onClick:U,children:"Cancel"}),e(F,{type:"button",className:"submit-button",onClick:n(I),children:"Save Schedule"})]})]})})]})]})})}s(J,"WorkScheduleSelectionForm");var he=s(({fieldData:t})=>{let{defaultFormattedValue:a,currentSchedule:r,onSubmit:o}=t,{workHoursSummary:u,breakSummary:i,totalWorkHours:n}=a;return d("div",{className:"flex flex-col gap-3 RemoteFlows__WorkScheduleField",children:[e("p",{className:"text-sm RemoteFlows__WorkScheduleField__Title",children:"Work hours"}),d("div",{className:"flex flex-col gap-1 RemoteFlows__WorkScheduleField__Summary",children:[e("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__WorkHours",dangerouslySetInnerHTML:{__html:u.join(", ")}}),e("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Break",children:i.join()}),d("p",{className:"text-sm text-gray-500 RemoteFlows__WorkScheduleField__Summary__Total",children:["Total of ",e("span",{children:n})," hours per week"]}),e(J,{defaultSchedule:r,onSubmit:o})]})]})},"WorkScheduleFieldDefault");export{he as a};
|
|
2
|
+
//# sourceMappingURL=chunk-MGY23P25.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as e}from"./chunk-VIGKOVHP.js";import{a as t}from"./chunk-P37U34EQ.js";import{cva as a}from"class-variance-authority";import{jsx as u}from"react/jsx-runtime";var i=a("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 RemoteFlows_ButtonDefault",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 RemoteFlows_ButtonDestructive",outline:"border border-input bg-background shadow-xs RemoteFlows_ButtonOutline",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80 RemoteFlows_ButtonSecondary",ghost:"hover:bg-accent hover:text-accent-foreground RemoteFlows_ButtonGhost",link:"text-link-button-primary underline-offset-4 hover:underline button-link RemoteFlows_ButtonLink"},size:{default:"h-9 px-4 py-7 has-[>svg]:px-3 RemoteFlows_ButtonDefault",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5 RemoteFlows_ButtonSm",lg:"h-10 rounded-md px-6 has-[>svg]:px-4 RemoteFlows_ButtonLg",icon:"size-9 RemoteFlows_ButtonIcon",link:"px-0 RemoteFlows_ButtonLink"}},defaultVariants:{variant:"default",size:"default"}});function m({className:o,variant:n,size:r,...s}){return u("button",{"data-slot":"button",className:e(i({variant:n,size:r,className:o}),"RemoteFlows__Button"),...s})}t(m,"Button");export{i as a,m as b};
|
|
2
|
+
//# sourceMappingURL=chunk-MP3VDCI7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/button.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90 RemoteFlows_ButtonDefault',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 RemoteFlows_ButtonDestructive',\n outline:\n 'border border-input bg-background shadow-xs RemoteFlows_ButtonOutline',\n secondary:\n 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80 RemoteFlows_ButtonSecondary',\n ghost:\n 'hover:bg-accent hover:text-accent-foreground RemoteFlows_ButtonGhost',\n link: 'text-link-button-primary underline-offset-4 hover:underline button-link RemoteFlows_ButtonLink',\n },\n size: {\n default: 'h-9 px-4 py-7 has-[>svg]:px-3 RemoteFlows_ButtonDefault',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5 RemoteFlows_ButtonSm',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4 RemoteFlows_ButtonLg',\n icon: 'size-9 RemoteFlows_ButtonIcon',\n link: 'px-0 RemoteFlows_ButtonLink',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nfunction Button({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<'button'> & VariantProps<typeof buttonVariants>) {\n return (\n <button\n data-slot='button'\n className={cn(\n buttonVariants({ variant, size, className }),\n 'RemoteFlows__Button',\n )}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"mappings":"gFAAA,OAAS,OAAAA,MAA8B,2BA4CnC,cAAAC,MAAA,oBAvCJ,IAAMC,EAAiBC,EACrB,yVACA,CACE,SAAU,CACR,QAAS,CACP,QACE,6FACF,YACE,4FACF,QACE,wEACF,UACE,qGACF,MACE,uEACF,KAAM,gGACR,EACA,KAAM,CACJ,QAAS,0DACT,GAAI,qEACJ,GAAI,4DACJ,KAAM,gCACN,KAAM,6BACR,CACF,EACA,gBAAiB,CACf,QAAS,UACT,KAAM,SACR,CACF,CACF,EAEA,SAASC,EAAO,CACd,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,GAAGC,CACL,EAAyE,CACvE,OACEP,EAAC,UACC,YAAU,SACV,UAAWQ,EACTP,EAAe,CAAE,QAAAI,EAAS,KAAAC,EAAM,UAAAF,CAAU,CAAC,EAC3C,qBACF,EACC,GAAGG,EACN,CAEJ,CAhBSE,EAAAN,EAAA","names":["cva","jsx","buttonVariants","cva","Button","className","variant","size","props","cn","__name"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n}from"./chunk-T5JT2ZU2.js";import{b as i}from"./chunk-76ZDXC2T.js";import{k as a}from"./chunk-VIGKOVHP.js";import{a as o}from"./chunk-P37U34EQ.js";import{jsx as c}from"react/jsx-runtime";function C({onSubmit:m,onSuccess:l,onError:t}){let{createCompanyBag:e}=i(),p=o(async d=>{try{await m?.(d);let r=await e.onSubmit(d);if(r?.data){await l?.(r?.data);return}if(r?.error){let s=a(r,e.meta?.fields?.address_details);t?.(s)}}catch(r){let s=a(r,e.meta?.fields?.address_details);t?.(s)}},"handleSubmit"),u=e.stepState.values?.address_details||e.initialValues.address_details;return c(n,{defaultValues:u,onSubmit:p})}o(C,"AddressDetailsStep");export{C as a};
|
|
2
|
+
//# sourceMappingURL=chunk-MVQOMW7S.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as e}from"./chunk-Z6B3PA4M.js";import{b as a}from"./chunk-MRYRNB7Y.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as s}from"react/jsx-runtime";function p({onSubmit:t}){let{terminationBag:o}=a(),n=i(async r=>{let m=await o?.parseFormValues(r);await t?.(m),o?.next()},"handleSubmit");return s(e,{defaultValues:o.fieldValues,onSubmit:n})}i(p,"TerminationDetailsForm");export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-MXSKCQOT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as t}from"./chunk-MP3VDCI7.js";import{a as n}from"./chunk-P37U34EQ.js";import{jsx as r}from"react/jsx-runtime";var u=n(p=>{let{"data-type":e,...o}=p;return e==="inline"?r(t,{size:"link",variant:"link",...o}):r(t,{...o})},"ButtonDefault");export{u as a};
|
|
2
|
+
//# sourceMappingURL=chunk-NAMR4DA5.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as d}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as d}from"./chunk-7M7VN4WI.js";import{a as n}from"./chunk-VAWEOFUO.js";import{a as s}from"./chunk-GSPD4EIV.js";import{a as m}from"./chunk-WD5DNUSS.js";import{a as p}from"./chunk-RZJ7WE6G.js";import{a as e}from"./chunk-KYBKW4FE.js";import{a}from"./chunk-RSZZMCB2.js";import{a as c}from"./chunk-AFHSKSGA.js";import{a as f}from"./chunk-VCDA76UN.js";import{a as u}from"./chunk-P3QDMRCC.js";import{a as r}from"./chunk-Q3ALCPJN.js";import{a as i}from"./chunk-X6IMS3NL.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as I,useRef as R,useMemo as F}from"react";import{jsx as y}from"react/jsx-runtime";var H=t(({render:l,employmentId:S,externalId:g,countryCode:C,skipSteps:b,initialValues:O,options:P})=>{let o=i({options:P,employmentId:S,externalId:g,countryCode:C,skipSteps:b,initialValues:O}),v=I(),B=R(void 0),w=F(()=>({setValue:B}),[]);return y(r.Provider,{value:{contractorOnboardingBag:o,formId:v,formRef:w},children:l({contractorOnboardingBag:o,components:{BasicInformationStep:a,SelectCountryStep:e,BackButton:n,SubmitButton:m,PricingPlanStep:p,EligibilityQuestionnaireStep:d,ContractDetailsStep:c,ContractPreviewStep:f,OnboardingInvite:s,ContractReviewButton:u}})})},"ContractorOnboardingFlow");export{H as a};
|
|
2
|
+
//# sourceMappingURL=chunk-OUSCSVMQ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var t="urn:remotecom:resource:product:contractor:standard:monthly",e="urn:remotecom:resource:product:contractor:plus:monthly",o="urn:remotecom:resource:product:contractor:aor:monthly",n="urn:remotecom:resource:product:eor:monthly",i={cm:t,"cm+":e,cor:o,eor:n},a="ir_35",s="REMOTE_AI",d="You cannot control how a contractor completes the Services and Deliverables. This means, for example, that you can't specify their working hours or use of subcontractors. Please make sure this field includes only project names, descriptions, and deliverables. We do not allow hyperlinks.",l="The content You have entered may not be consistent with the Contractor of Record terms. You are responsible before proceeding for ensuring that the language entered herein accurately reflects those terms and your relationship with Subcontractors.",r=[{title:"You add a new contractor and their details in Remote.",id:"add-contractor-details"},{title:"Contractor accepts invite to join Remote.",id:"contractor-accepts-invite"},{title:"Ask your contractor to sign their agreement with your company.",id:"ask-contractor-to-sign-agreement"},{title:"Once the agreement is signed, the contractor can begin work.",id:"agreement-signed-begin-work"},{title:"The contractor will submit invoices on a date specified by you.",id:"contractor-submits-invoices"},{title:"You will pay the contractor according to the agreed-upon terms.",id:"pay-contractor"}],c=[{title:"You add a new contractor and their details in Remote, and reconfirm our Terms of Service.",description:"Review all details carefully, as we'll use this information to draft the contract.",id:"add-contractor-details-and-reconfirm-terms"},{title:"You pay the reserve amount required to add the contractor.",id:"pay-reserve-amount"},{title:"The contractor is invited to the platform.",id:"contractor-invited-to-platform"},{title:"The contractor completes onboarding on Remote.",id:"contractor-completes-onboarding"},{title:"The contractor signs the services agreement with Remote.",id:"contractor-signs-services-agreement"},{title:"Contractor begins working.",id:"contractor-begins-working"},{title:"Contractor submits an invoice to Remote.",id:"contractor-submits-invoice"},{title:"You review and approve the invoice.",id:"review-and-approve-invoice"},{title:"A COR contractor payment invoice is generated, which you pay.",id:"cor-contractor-payment-invoice-generated"},{title:"Remote receives payment and pays contractor.",id:"remote-receives-payment-and-pays-contractor"},{title:"Contractor receives payment.",id:"contractor-receives-payment"}],m={[t]:r,[e]:r,[o]:c},p={[t]:{title:"Contractor Management",subtitle:"Engage and pay contractors compliantly",listItems:["Ideal for businesses wanting a straightforward solution to manage and pay contractors directly.","Helps with everything from contractor onboarding, invoicing, payments, and compliance.","Full control remains with you."],contractPillText:"Contract between you and contractor"},[e]:{title:"Contractor Management Plus",subtitle:"Engage and pay contractors with indemnity coverage",listItems:["Great for businesses concerned about contractor classification risks.","Helps with everything from contractor onboarding, invoicing, payments, and compliance.","Offers a warranty on Remote's localized, compliant contracts.","Control remains with you"],contractPillText:"Contract between you and contractor"},[o]:{title:"Contractor of Record",subtitle:"Remote reduces liability by directly engaging the contractor",listItems:["Ideal for businesses who want admin relief and have low risk tolerance.","No need to be experts in local labor laws; Remote manages its compliance with contractors.","Indemnity protection, Remote backs its compliance in administering and paying contractors"],contractPillText:"Contract between Remote and contractor"}};export{t as a,e as b,o as c,n as d,i as e,a as f,s as g,d as h,l as i,c as j,m as k,p as l};
|
|
2
|
+
//# sourceMappingURL=chunk-PX5PE6GX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/constants.ts"],"sourcesContent":["export const contractorStandardProductIdentifier =\n 'urn:remotecom:resource:product:contractor:standard:monthly';\nexport const contractorPlusProductIdentifier =\n 'urn:remotecom:resource:product:contractor:plus:monthly';\nexport const corProductIdentifier =\n 'urn:remotecom:resource:product:contractor:aor:monthly';\nexport const eorProductIdentifier =\n 'urn:remotecom:resource:product:eor:monthly';\n\nexport type ProductType = 'cm' | 'cm+' | 'cor' | 'eor';\n\nexport const PRODUCT_IDENTIFIER_MAP: Record<ProductType, string> = {\n cm: contractorStandardProductIdentifier,\n 'cm+': contractorPlusProductIdentifier,\n cor: corProductIdentifier,\n eor: eorProductIdentifier,\n};\n\nexport const IR35_FILE_SUBTYPE = 'ir_35';\n\nexport const REMOTE_AI_ERROR_SOURCE = 'REMOTE_AI';\n\nexport const REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE =\n \"You cannot control how a contractor completes the Services and Deliverables. This means, for example, that you can't specify their working hours or use of subcontractors. Please make sure this field includes only project names, descriptions, and deliverables. We do not allow hyperlinks.\";\n\nexport const REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE =\n 'The content You have entered may not be consistent with the Contractor of Record terms. You are responsible before proceeding for ensuring that the language entered herein accurately reflects those terms and your relationship with Subcontractors.';\n\nconst standardOnboardingWorkflow = [\n {\n title: 'You add a new contractor and their details in Remote.',\n id: 'add-contractor-details',\n },\n {\n title: 'Contractor accepts invite to join Remote.',\n id: 'contractor-accepts-invite',\n },\n {\n title: 'Ask your contractor to sign their agreement with your company.',\n id: 'ask-contractor-to-sign-agreement',\n },\n {\n title: 'Once the agreement is signed, the contractor can begin work.',\n id: 'agreement-signed-begin-work',\n },\n {\n title: 'The contractor will submit invoices on a date specified by you.',\n id: 'contractor-submits-invoices',\n },\n {\n title: 'You will pay the contractor according to the agreed-upon terms.',\n id: 'pay-contractor',\n },\n];\n\nexport const corOnboardingWorkflow = [\n {\n title:\n 'You add a new contractor and their details in Remote, and reconfirm our Terms of Service.',\n description:\n \"Review all details carefully, as we'll use this information to draft the contract.\",\n id: 'add-contractor-details-and-reconfirm-terms',\n },\n {\n title: 'You pay the reserve amount required to add the contractor.',\n id: 'pay-reserve-amount',\n },\n {\n title: 'The contractor is invited to the platform.',\n id: 'contractor-invited-to-platform',\n },\n {\n title: 'The contractor completes onboarding on Remote.',\n id: 'contractor-completes-onboarding',\n },\n {\n title: 'The contractor signs the services agreement with Remote.',\n id: 'contractor-signs-services-agreement',\n },\n {\n title: 'Contractor begins working.',\n id: 'contractor-begins-working',\n },\n {\n title: 'Contractor submits an invoice to Remote.',\n id: 'contractor-submits-invoice',\n },\n {\n title: 'You review and approve the invoice.',\n id: 'review-and-approve-invoice',\n },\n {\n title: 'A COR contractor payment invoice is generated, which you pay.',\n id: 'cor-contractor-payment-invoice-generated',\n },\n {\n title: 'Remote receives payment and pays contractor.',\n id: 'remote-receives-payment-and-pays-contractor',\n },\n {\n title: 'Contractor receives payment.',\n id: 'contractor-receives-payment',\n },\n];\n\n/**\n * Onboarding workflows for each pricing plan\n */\nexport const onboardingWorkflows: Record<\n string,\n { title: string; id: string; description?: string }[]\n> = {\n [contractorStandardProductIdentifier]: standardOnboardingWorkflow,\n // we assign the same workflow as its the same for standard and plus\n [contractorPlusProductIdentifier]: standardOnboardingWorkflow,\n [corProductIdentifier]: corOnboardingWorkflow,\n};\n\nexport const pricingPlanDetails = {\n [contractorStandardProductIdentifier]: {\n title: 'Contractor Management',\n subtitle: 'Engage and pay contractors compliantly',\n listItems: [\n 'Ideal for businesses wanting a straightforward solution to manage and pay contractors directly.',\n 'Helps with everything from contractor onboarding, invoicing, payments, and compliance.',\n 'Full control remains with you.',\n ],\n contractPillText: 'Contract between you and contractor',\n },\n [contractorPlusProductIdentifier]: {\n title: 'Contractor Management Plus',\n subtitle: 'Engage and pay contractors with indemnity coverage',\n listItems: [\n 'Great for businesses concerned about contractor classification risks.',\n 'Helps with everything from contractor onboarding, invoicing, payments, and compliance.',\n \"Offers a warranty on Remote's localized, compliant contracts.\",\n 'Control remains with you',\n ],\n contractPillText: 'Contract between you and contractor',\n },\n [corProductIdentifier]: {\n title: 'Contractor of Record',\n subtitle: 'Remote reduces liability by directly engaging the contractor',\n listItems: [\n 'Ideal for businesses who want admin relief and have low risk tolerance.',\n 'No need to be experts in local labor laws; Remote manages its compliance with contractors.',\n 'Indemnity protection, Remote backs its compliance in administering and paying contractors',\n ],\n contractPillText: 'Contract between Remote and contractor',\n },\n};\n"],"mappings":"AAAO,IAAMA,EACX,6DACWC,EACX,yDACWC,EACX,wDACWC,EACX,6CAIWC,EAAsD,CACjE,GAAIJ,EACJ,MAAOC,EACP,IAAKC,EACL,IAAKC,CACP,EAEaE,EAAoB,QAEpBC,EAAyB,YAEzBC,EACX,kSAEWC,EACX,yPAEIC,EAA6B,CACjC,CACE,MAAO,wDACP,GAAI,wBACN,EACA,CACE,MAAO,4CACP,GAAI,2BACN,EACA,CACE,MAAO,iEACP,GAAI,kCACN,EACA,CACE,MAAO,+DACP,GAAI,6BACN,EACA,CACE,MAAO,kEACP,GAAI,6BACN,EACA,CACE,MAAO,kEACP,GAAI,gBACN,CACF,EAEaC,EAAwB,CACnC,CACE,MACE,4FACF,YACE,qFACF,GAAI,4CACN,EACA,CACE,MAAO,6DACP,GAAI,oBACN,EACA,CACE,MAAO,6CACP,GAAI,gCACN,EACA,CACE,MAAO,iDACP,GAAI,iCACN,EACA,CACE,MAAO,2DACP,GAAI,qCACN,EACA,CACE,MAAO,6BACP,GAAI,2BACN,EACA,CACE,MAAO,2CACP,GAAI,4BACN,EACA,CACE,MAAO,sCACP,GAAI,4BACN,EACA,CACE,MAAO,gEACP,GAAI,0CACN,EACA,CACE,MAAO,+CACP,GAAI,6CACN,EACA,CACE,MAAO,+BACP,GAAI,6BACN,CACF,EAKaC,EAGT,CACF,CAACX,CAAmC,EAAGS,EAEvC,CAACR,CAA+B,EAAGQ,EACnC,CAACP,CAAoB,EAAGQ,CAC1B,EAEaE,EAAqB,CAChC,CAACZ,CAAmC,EAAG,CACrC,MAAO,wBACP,SAAU,yCACV,UAAW,CACT,kGACA,yFACA,gCACF,EACA,iBAAkB,qCACpB,EACA,CAACC,CAA+B,EAAG,CACjC,MAAO,6BACP,SAAU,qDACV,UAAW,CACT,wEACA,yFACA,gEACA,0BACF,EACA,iBAAkB,qCACpB,EACA,CAACC,CAAoB,EAAG,CACtB,MAAO,uBACP,SAAU,+DACV,UAAW,CACT,0EACA,6FACA,2FACF,EACA,iBAAkB,wCACpB,CACF","names":["contractorStandardProductIdentifier","contractorPlusProductIdentifier","corProductIdentifier","eorProductIdentifier","PRODUCT_IDENTIFIER_MAP","IR35_FILE_SUBTYPE","REMOTE_AI_ERROR_SOURCE","REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE","REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE","standardOnboardingWorkflow","corOnboardingWorkflow","onboardingWorkflows","pricingPlanDetails"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as S}from"./chunk-3UDRMQNE.js";import{a as C}from"./chunk-3DMWQJ5W.js";import{b as p}from"./chunk-RAH453TV.js";import{a as m}from"./chunk-VDRNNOVA.js";import{d as b}from"./chunk-AHRG5QCS.js";import{a as g,h as v,i as y}from"./chunk-PX5PE6GX.js";import{a as f,b as _}from"./chunk-YHCH57B7.js";import{a as t}from"./chunk-P37U34EQ.js";import{format as w}from"date-fns";import{Fragment as R,jsx as u,jsxs as M}from"react/jsx-runtime";var E=t(n=>n===g,"isStandardPricingPlan"),P=t((n,i)=>{let e=i&&i<w(new Date,"yyyy-MM-dd");if(!n&&e)return p({severity:"warning",description:"Backdating the service start date is not supported in the selected Contractor Management plan."})},"showBackDateWarning");function I(n,i,e){e({...i,services_and_deliverables_ai_warning:"",services_and_deliverables_error_skippable:!1})}t(I,"onServicesAndDeliverablesChange");var V=t((n,i,e,r,o)=>{let s=E(e),c=r?.service_duration?.provisional_start_date,l=P(s,c),a=p({severity:"warning",title:"Possible misclassification risk",description:o?y:v});return{...n,create:{...n?.create,services_and_deliverables_ai_warning:{type:"string","x-jsf-presentation":{inputType:"hidden"}},services_and_deliverables_error_skippable:{type:"boolean","x-jsf-presentation":{inputType:"hidden"}}},fields:{...n?.fields,"service_duration.provisional_start_date":{description:i,"x-jsf-presentation":{minDate:s?void 0:w(new Date,"yyyy-MM-dd"),...l}},services_and_deliverables:{onChange:I,"x-jsf-presentation":{calculateDynamicProperties:t(d=>({statement:d.services_and_deliverables_ai_warning?a.statement:void 0}),"calculateDynamicProperties")}}}}},"buildContractDetailsJsfModify"),L=t((n,i,e)=>{let r=n==="SAU",o=n==="GBR",s=b(n);if(!r&&!o&&!s)return e?.jsfModify?.basic_information;if(o)return{...e?.jsfModify?.basic_information,create:{...e?.jsfModify?.basic_information?.create,ir35:{title:"IR35 Status",description:t(()=>M(R,{children:["What's your contractor's employment status?"," ",u(_,{zendeskId:f.ir35Status,children:"Learn more about IR35"})]}),"description"),oneOf:[{const:"inside",title:"Inside IR35 (deemed employee)"},{const:"outside",title:"Outside IR35"},{const:"exempt",title:"Exempt from IR35"}],"x-jsf-presentation":{inputType:"select"}},ir35_sds_file:{title:"Upload SDS",description:"Status determination statement",type:"string","x-jsf-presentation":{inputType:"file",accept:m.document,multiple:!1,maxSize:20971520,calculateDynamicProperties:t(a=>{let d=a.ir35;return{isVisible:d==="inside"||d==="outside"}},"calculateDynamicProperties")}}},allOf:[{if:{properties:{ir35:{enum:["inside","outside"]}}},then:{required:["ir35_sds_file"]},else:{properties:{ir35_sds_file:!1}}}],required:["ir35"],orderRoot:t(a=>[...a,"ir35","ir35_sds_file"],"orderRoot")};let c=r?"Is your contractor a Saudi Arabia national, or a non-Saudi national contracting via a local business entity or under a Special Privilege Iqama visa?":`Is the contractor a ${i??"selected country"} national, or a non-${i??"selected country"} national contracting through their local business entity?`,l=r?"Please be aware that contracting with non-Saudi Arabia nationals that are not operating as a company or under a Special Privilege Iqama visa can lead to fines for operating without proper work authorization. If you are concerned, please speak with the Contractor and/or local Saudi Arabia counsel to ensure compliance.":`Be aware that the Contractor must be a ${i??"selected country"} national, or a non-${i??"selected country"} national operating through their company to comply with the legal requirements for performing services and deliverables as a contractor in ${i??"selected country"}. If you are concerned, speak with the Contractor and/or local counsel to ensure compliance.`;return{...e?.jsfModify?.basic_information,create:{...e?.jsfModify?.basic_information?.create,nationality_status:{title:c,description:"",type:"string",oneOf:[{const:"national",description:"",title:"Yes"},{const:"non-national",description:l,title:"No"}],"x-jsf-presentation":{inputType:"radio"}}},required:["nationality_status"],orderRoot:t(a=>[...a,"nationality_status"],"orderRoot")}},"buildBasicInformationJsfModify"),J=t((n,i)=>{let e=n?.jsfModify?.contract_preview?.fields;return{fields:{contract_preview_header:{...e?.contract_preview_header,"x-jsf-presentation":{Component:t(r=>{let o=e?.contract_preview_header?.["x-jsf-presentation"]?.Component||S;return u(o,{...r})},"Component")}},contract_preview_statement:{...e?.contract_preview_statement,"x-jsf-presentation":{Component:t(r=>{let o=e?.contract_preview_statement?.["x-jsf-presentation"]?.Component||C;return u(o,{reviewCompleted:!!i?.review_completed,...r})},"Component")}},signature:{...e?.signature,"x-jsf-presentation":{calculateDynamicProperties:t(r=>({isVisible:!!r.review_completed}),"calculateDynamicProperties"),...e?.signature?.["x-jsf-presentation"]}}}}},"buildContractPreviewJsfModify");export{V as a,L as b,J as c};
|
|
2
|
+
//# sourceMappingURL=chunk-ROQYHTFQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/jsfModify.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { FieldValues } from 'react-hook-form';\nimport { ChangeEvent } from 'react';\n\nimport { createStatementProperty } from '@/src/components/form/jsf-utils/createFields';\nimport { zendeskArticles } from '@/src/components/shared/zendesk-drawer/utils';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { ContractPreviewHeader } from '@/src/flows/ContractorOnboarding/components/ContractPreviewHeader';\nimport { ContractPreviewStatement } from '@/src/flows/ContractorOnboarding/components/ContractPreviewStatement';\nimport {\n contractorStandardProductIdentifier,\n REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE,\n REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport {\n ContractorOnboardingFlowProps,\n ContractorOnboardingContractDetailsFormPayload,\n} from '@/src/flows/ContractorOnboarding/types';\nimport { isNationalityCountryCode } from '@/src/flows/ContractorOnboarding/utils';\nimport { JSFModify } from '@/src/flows/types';\nimport { FILE_TYPES, MAX_FILE_SIZE } from '@/src/lib/uploadConfig';\nimport { JSFCustomComponentProps } from '@/src/types/remoteFlows';\n\nconst isStandardPricingPlan = (pricingPlan: string | undefined) => {\n return pricingPlan === contractorStandardProductIdentifier;\n};\n\nconst showBackDateWarning = (\n isStandardPricingPlanSelected: boolean,\n provisionalStartDate: string | undefined,\n) => {\n const isStartDateBackdated =\n provisionalStartDate &&\n // Compare full days omitting time of the day\n provisionalStartDate < format(new Date(), 'yyyy-MM-dd');\n\n if (!isStandardPricingPlanSelected && isStartDateBackdated) {\n return createStatementProperty({\n severity: 'warning',\n description:\n 'Backdating the service start date is not supported in the selected Contractor Management plan.',\n });\n }\n\n return undefined;\n};\n\n/**\n * Handles changes to the services_and_deliverables field to clear AI warning state\n */\nfunction onServicesAndDeliverablesChange(\n _event: ChangeEvent<HTMLTextAreaElement>,\n values: ContractorOnboardingContractDetailsFormPayload & {\n services_and_deliverables_ai_warning: string;\n services_and_deliverables_error_skippable: boolean;\n },\n setValues: (\n formValues: Partial<\n ContractorOnboardingContractDetailsFormPayload & {\n services_and_deliverables_ai_warning: string;\n services_and_deliverables_error_skippable: boolean;\n }\n >,\n ) => void,\n) {\n setValues({\n ...values,\n services_and_deliverables_ai_warning: '',\n services_and_deliverables_error_skippable: false,\n });\n}\n\n/**\n * Merges internal jsfModify modifications with user-provided options for contract_details step\n * This abstracts the logic of applying internal field modifications (like dynamic descriptions)\n * while preserving user customizations\n */\nexport const buildContractDetailsJsfModify = (\n userJsfModify: JSFModify | undefined,\n provisionalStartDateDescription: string | undefined,\n selectedPricingPlan: string | undefined,\n fieldValues: FieldValues,\n isContractorOfRecord: boolean,\n): JSFModify => {\n const isStandardPricingPlanSelected =\n isStandardPricingPlan(selectedPricingPlan);\n const provisionalStartDate =\n fieldValues?.service_duration?.provisional_start_date;\n const statement = showBackDateWarning(\n isStandardPricingPlanSelected,\n provisionalStartDate,\n );\n const AiStatementWarning = createStatementProperty({\n severity: 'warning',\n title: 'Possible misclassification risk',\n description: isContractorOfRecord\n ? REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE\n : REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE,\n });\n return {\n ...userJsfModify,\n create: {\n ...userJsfModify?.create,\n services_and_deliverables_ai_warning: {\n type: 'string',\n 'x-jsf-presentation': {\n inputType: 'hidden',\n },\n },\n services_and_deliverables_error_skippable: {\n type: 'boolean',\n 'x-jsf-presentation': {\n inputType: 'hidden',\n },\n },\n },\n fields: {\n ...userJsfModify?.fields,\n ...{\n 'service_duration.provisional_start_date': {\n description: provisionalStartDateDescription,\n 'x-jsf-presentation': {\n minDate: !isStandardPricingPlanSelected\n ? format(new Date(), 'yyyy-MM-dd')\n : undefined,\n ...statement,\n },\n },\n services_and_deliverables: {\n onChange: onServicesAndDeliverablesChange,\n 'x-jsf-presentation': {\n calculateDynamicProperties: (formValues: FieldValues) => ({\n statement: formValues.services_and_deliverables_ai_warning\n ? AiStatementWarning.statement\n : undefined,\n }),\n },\n },\n },\n },\n };\n};\n\n/**\n * Builds the basic information jsf modify for the contractor onboarding flow\n * @param countryCode - The country code to use for the onboarding.\n * @param countryName - The name of the country to use for the onboarding.\n * @param options - The options to use for the onboarding.\n * @returns The basic information jsf modify for the contractor onboarding flow\n */\nexport const buildBasicInformationJsfModify = (\n countryCode: string,\n countryName: string | undefined,\n options: ContractorOnboardingFlowProps['options'] | undefined,\n) => {\n const isSaudiArabia = countryCode === 'SAU';\n const isUk = countryCode === 'GBR';\n const hasNationalityStatusField = isNationalityCountryCode(countryCode);\n\n if (!isSaudiArabia && !isUk && !hasNationalityStatusField) {\n return options?.jsfModify?.basic_information;\n }\n\n if (isUk) {\n return {\n ...options?.jsfModify?.basic_information,\n create: {\n ...options?.jsfModify?.basic_information?.create,\n ir35: {\n title: 'IR35 Status',\n description: () => (\n <>\n What's your contractor's employment status?{' '}\n <ZendeskTriggerButton zendeskId={zendeskArticles.ir35Status}>\n Learn more about IR35\n </ZendeskTriggerButton>\n </>\n ),\n oneOf: [\n {\n const: 'inside',\n title: 'Inside IR35 (deemed employee)',\n },\n {\n const: 'outside',\n title: 'Outside IR35',\n },\n {\n const: 'exempt',\n title: 'Exempt from IR35',\n },\n ],\n 'x-jsf-presentation': {\n inputType: 'select',\n },\n },\n ir35_sds_file: {\n title: 'Upload SDS',\n description: 'Status determination statement',\n type: 'string',\n 'x-jsf-presentation': {\n inputType: 'file',\n accept: FILE_TYPES.document,\n multiple: false,\n maxSize: MAX_FILE_SIZE,\n calculateDynamicProperties: (\n fieldValues: Record<string, unknown>,\n ) => {\n const ir35Status = fieldValues.ir35;\n return {\n isVisible: ir35Status === 'inside' || ir35Status === 'outside',\n };\n },\n },\n },\n },\n allOf: [\n {\n if: {\n properties: {\n ir35: {\n enum: ['inside', 'outside'],\n },\n },\n },\n then: {\n required: ['ir35_sds_file'],\n },\n else: {\n properties: {\n ir35_sds_file: false,\n },\n },\n },\n ],\n required: ['ir35'],\n orderRoot: (originalOrder: string[]) => {\n return [...originalOrder, 'ir35', 'ir35_sds_file'];\n },\n };\n }\n\n const label = isSaudiArabia\n ? 'Is your contractor a Saudi Arabia national, or a non-Saudi national contracting via a local business entity or under a Special Privilege Iqama visa?'\n : `Is the contractor a ${countryName ?? 'selected country'} national, or a non-${countryName ?? 'selected country'} national contracting through their local business entity?`;\n\n const descriptionNonNationalRadio = isSaudiArabia\n ? `Please be aware that contracting with non-Saudi Arabia nationals that are not operating as a company or under a Special Privilege Iqama visa can lead to fines for operating without proper work authorization. If you are concerned, please speak with the Contractor and/or local Saudi Arabia counsel to ensure compliance.`\n : `Be aware that the Contractor must be a ${countryName ?? 'selected country'} national, or a non-${countryName ?? 'selected country'} national operating through their company to comply with the legal requirements for performing services and deliverables as a contractor in ${countryName ?? 'selected country'}. If you are concerned, speak with the Contractor and/or local counsel to ensure compliance.`;\n\n return {\n ...options?.jsfModify?.basic_information,\n create: {\n ...options?.jsfModify?.basic_information?.create,\n nationality_status: {\n title: label,\n description: '',\n type: 'string',\n oneOf: [\n {\n const: 'national',\n description: '',\n title: 'Yes',\n },\n {\n const: 'non-national',\n description: descriptionNonNationalRadio,\n title: 'No',\n },\n ],\n 'x-jsf-presentation': {\n inputType: 'radio',\n },\n },\n },\n required: ['nationality_status'],\n orderRoot: (originalOrder: string[]) => {\n return [...originalOrder, 'nationality_status'];\n },\n };\n};\n\nexport const buildContractPreviewJsfModify = (\n options: ContractorOnboardingFlowProps['options'] | undefined,\n fieldValues: FieldValues,\n) => {\n const userFields = options?.jsfModify?.contract_preview?.fields;\n\n return {\n fields: {\n contract_preview_header: {\n ...userFields?.contract_preview_header,\n 'x-jsf-presentation': {\n Component: (props: JSFCustomComponentProps) => {\n const CustomComponent =\n userFields?.contract_preview_header?.['x-jsf-presentation']\n ?.Component || ContractPreviewHeader;\n return <CustomComponent {...props} />;\n },\n },\n },\n contract_preview_statement: {\n ...userFields?.contract_preview_statement,\n 'x-jsf-presentation': {\n Component: (props: JSFCustomComponentProps) => {\n const CustomComponent =\n userFields?.contract_preview_statement?.['x-jsf-presentation']\n ?.Component || ContractPreviewStatement;\n\n return (\n <CustomComponent\n reviewCompleted={Boolean(fieldValues?.review_completed)}\n {...props}\n />\n );\n },\n },\n },\n signature: {\n ...userFields?.signature,\n 'x-jsf-presentation': {\n calculateDynamicProperties: (\n fieldValuesDynamicProperties: Record<string, unknown>,\n ) => {\n return {\n isVisible: Boolean(fieldValuesDynamicProperties.review_completed),\n };\n },\n // Merge any user-provided signature customizations\n ...userFields?.signature?.['x-jsf-presentation'],\n },\n },\n },\n };\n};\n"],"mappings":"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","names":["format","Fragment","jsx","jsxs","isStandardPricingPlan","__name","pricingPlan","contractorStandardProductIdentifier","showBackDateWarning","isStandardPricingPlanSelected","provisionalStartDate","isStartDateBackdated","format","createStatementProperty","onServicesAndDeliverablesChange","_event","values","setValues","buildContractDetailsJsfModify","userJsfModify","provisionalStartDateDescription","selectedPricingPlan","fieldValues","isContractorOfRecord","statement","AiStatementWarning","REMOTE_AI_SERVICES_AND_DELIVERABLES_COR_ERROR_MESSAGE","REMOTE_AI_SERVICES_AND_DELIVERABLES_ERROR_MESSAGE","formValues","buildBasicInformationJsfModify","countryCode","countryName","options","isSaudiArabia","isUk","hasNationalityStatusField","isNationalityCountryCode","ZendeskTriggerButton","zendeskArticles","FILE_TYPES","ir35Status","originalOrder","label","descriptionNonNationalRadio","buildContractPreviewJsfModify","userFields","props","CustomComponent","ContractPreviewHeader","ContractPreviewStatement","fieldValuesDynamicProperties"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-JDVILEVL.js";import{b as e}from"./chunk-Q3ALCPJN.js";import{k as n}from"./chunk-VIGKOVHP.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as f}from"react/jsx-runtime";function b({onSubmit:m,onSuccess:d,onError:c}){let{contractorOnboardingBag:o}=e(),p=t(async i=>{try{let a=await o.parseFormValues(i);await m?.(a);let r=await o.onSubmit(i);if(r?.data){await d?.(r?.data),o?.next();return}}catch(a){let r=n(a,o.meta?.fields?.basic_information);c?.(r)}},"handleSubmit"),l=o.stepState.values?.basic_information||o.initialValues.basic_information;return f(s,{defaultValues:l,onSubmit:p})}t(b,"BasicInformationStep");export{b as a};
|
|
2
|
+
//# sourceMappingURL=chunk-RSZZMCB2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-JDVILEVL.js";import{b as e}from"./chunk-Q3ALCPJN.js";import{k as t}from"./chunk-VIGKOVHP.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function E({components:l,onSubmit:p,onSuccess:c,onError:m}){let{contractorOnboardingBag:r}=e(),d=i(async a=>{try{let n=await r.parseFormValues(a);await p?.(n);let o=await r.onSubmit(a);if(o?.data){await c?.(o?.data),r?.next();return}}catch(n){let o=t(n,r.meta?.fields?.pricing_plan);m?.(o)}},"handleSubmit"),P=r.stepState.values?.pricing_plan||r.initialValues.pricing_plan;return u(s,{components:l,defaultValues:P,onSubmit:d})}i(E,"PricingPlanStep");export{E as a};
|
|
2
|
+
//# sourceMappingURL=chunk-RZJ7WE6G.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as f}from"./chunk-76ZDXC2T.js";import{b as p}from"./chunk-LNV36S6D.js";import{a as c}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as f}from"./chunk-76ZDXC2T.js";import{b as p}from"./chunk-LNV36S6D.js";import{a as c}from"./chunk-BUOCIXUH.js";import{f as a,g as d}from"./chunk-7EONM7HL.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as y,useRef as b}from"react";import{jsx as l}from"react/jsx-runtime";import{createElement as g}from"react";function B({defaultValues:s,onSubmit:u,components:F}){let{formId:C,createCompanyBag:o}=f(),m=b(s),h=p(o.handleValidation),r=a({resolver:h,defaultValues:s,shouldUnregister:!1,mode:"onBlur"});y(()=>{let n=r?.watch(e=>{Object.keys(e).some(i=>e[i]!==m.current[i])&&(o?.checkFieldUpdates(e),m.current={...e})});return()=>n?.unsubscribe()},[]);let S=t(async n=>{await u(n)},"handleSubmit");return g(d,{...r,key:`form-${o.stepState.currentStep.name}`},l("form",{id:C,onSubmit:r.handleSubmit(S),className:"space-y-4 RemoteFlows__OnboardingForm",children:l(c,{components:F,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}t(B,"CreateCompanyForm");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-T5JT2ZU2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-JDVILEVL.js";import{b as n}from"./chunk-Q3ALCPJN.js";import{k as i}from"./chunk-VIGKOVHP.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as c}from"react/jsx-runtime";function P({onSubmit:d,onSuccess:m,onError:p}){let{contractorOnboardingBag:r}=n(),l=e(async a=>{try{let t=await r.parseFormValues(a);await d?.(t);let o=await r.onSubmit(a);if(o?.data){await m?.(o?.data),r?.next();return}}catch(t){let o=i(t,r.meta?.fields?.contract_preview);p?.(o)}},"handleSubmit"),u=r.stepState.values?.contract_preview||r.initialValues.contract_preview;return c("div",{className:"space-y-4",children:c(s,{defaultValues:u,onSubmit:l})})}e(P,"ContractPreviewStep");export{P as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VCDA76UN.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as x,c as y,d as k}from"./chunk-MSBCYMSH.js";import{b as h}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as x,c as y,d as k}from"./chunk-MSBCYMSH.js";import{b as h}from"./chunk-6JTHV4QS.js";import{b as C}from"./chunk-MP3VDCI7.js";import{a as m}from"./chunk-VIGKOVHP.js";import{a as r}from"./chunk-P37U34EQ.js";import{Fragment as z,useState as G}from"react";import{Check as L,ChevronDownIcon as B,X as M}from"lucide-react";import{Command as i}from"cmdk";import{SearchIcon as H}from"lucide-react";import{jsx as d,jsxs as X}from"react/jsx-runtime";function b({className:t,...o}){return d(i,{"data-slot":"command",className:m("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",t),...o})}r(b,"Command");function P({className:t,...o}){return d(i.List,{"data-slot":"command-list",className:m("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",t),...o})}r(P,"CommandList");function _({...t}){return d(i.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...t})}r(_,"CommandEmpty");function w({className:t,...o}){return d(i.Group,{"data-slot":"command-group",className:m("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...o})}r(w,"CommandGroup");function N({className:t,...o}){return d(i.Separator,{"data-slot":"command-separator",className:m("bg-border -mx-1 h-px",t),...o})}r(N,"CommandSeparator");function D({className:t,...o}){return d(i.Item,{"data-slot":"command-item",className:m("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...o})}r(D,"CommandItem");import{jsx as a,jsxs as s}from"react/jsx-runtime";function Z({options:t,selected:o,onChange:u,placeholder:S,...I}){let[g,R]=G(!1),f=r(e=>{u(o.filter(n=>n.value!==e.value))},"handleUnselect"),O=t.some(e=>e.category),E=t.reduce((e,n)=>{let p=n.category||"Uncategorized";return e[p]||(e[p]=[]),e[p].push(n),e},{});return s(x,{open:g,onOpenChange:R,...I,children:[a(y,{children:s(C,{variant:"outline",role:"combobox","aria-expanded":g,className:"w-full justify-between font-normal",type:"button",children:[a("div",{className:"flex gap-1 flex-wrap overflow-x-auto max-h-[2.5rem] items-center",children:o.length>0?o.map(e=>s(h,{variant:"secondary",className:"mr-1 mb-1",children:[e.label,a("div",{role:"button",tabIndex:0,"aria-label":`remove ${e.label}`,className:"ml-1 ring-offset-background rounded-full outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-pointer",onKeyDown:n=>{n.key==="Enter"&&f(e)},onMouseDown:n=>{n.preventDefault(),n.stopPropagation()},onClick:()=>f(e),children:a(M,{className:"h-3 w-3 text-muted-foreground hover:text-foreground"})})]},e.label)):a("span",{className:"text-foreground",children:S})}),a(B,{className:"size-4"})]})}),a(k,{align:"start",className:"w-full p-0",children:a(b,{children:s(P,{children:[a(_,{children:"No item found."}),Object.entries(E).map(([e,n],p)=>s(z,{children:[p>0&&a(N,{}),a(w,{heading:O?e:void 0,children:n.map(l=>{let v=o.some(c=>c.value===l.value);return s(D,{onSelect:()=>{u(v?o.filter(c=>c.value!==l.value):[...o,l])},children:[a(L,{className:m("mr-2 h-4 w-4",v?"opacity-100":"opacity-0")}),l.label]},l.label)})})]},e))]})})})]})}r(Z,"MultiSelect");export{Z as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VPSESR6G.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as a,j as i,k as s,l as p,m as F}from"./chunk-7EONM7HL.js";import{a as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{i as a,j as i,k as s,l as p,m as F}from"./chunk-7EONM7HL.js";import{a as n}from"./chunk-3NESYBEJ.js";import{a as t}from"./chunk-VIGKOVHP.js";import{a as r}from"./chunk-P37U34EQ.js";import{jsx as e,jsxs as U}from"react/jsx-runtime";function b({field:o,fieldState:_,fieldData:c}){let{name:l,label:d,description:m,multiple:f,accept:u}=c;return U(a,{"data-field":l,className:`RemoteFlows__FileUpload__Item__${l}`,children:[e(i,{className:"RemoteFlows__FileUpload__Label",children:d}),e(s,{children:e(n,{onChange:o.onChange,multiple:f,className:t("RemoteFlows__FileUpload__Input"),accept:u,files:o.value})}),m&&e("div",{className:"flex items-center justify-between",children:e(p,{className:"RemoteFlows__FileUpload__Description",children:m})}),_.error&&e(F,{className:"RemoteFlows__FileUpload__Error"})]})}r(b,"FileUploadFieldDefault");export{b as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VXMLYWZ2.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as Qt,h as Jt,i as Nt}from"./chunk-Q3VMPVT3.js";import{a as Wt,b as te,c as ee,d as ie,e as ne,f as re,h as oe,i as ae,j as se,k as ce,l as le,m as ue,n as de,o as pe,p as me,q as fe,r as ye,s as _e,t as ge}from"./chunk-IVXIAOMR.js";import{a as be,b as Se,c as Ce}from"./chunk-ROQYHTFQ.js";import{a as zt,b as Ht,f as Xt,g as Yt,h as Zt}from"./chunk-AHRG5QCS.js";import{a as $,b as nt,c as y,d as Gt,g as $t}from"./chunk-PX5PE6GX.js";import{a as Ut}from"./chunk-YIOLMWB5.js";import{a as jt,e as f,f as D}from"./chunk-T7O3YYOG.js";import{L as Bt}from"./chunk-WQ4H5V7U.js";import{h as P,i as I}from"./chunk-VIGKOVHP.js";import{a as b}from"./chunk-X6ZAR7ZL.js";import{a as Kt}from"./chunk-TSPDJUGG.js";import{d as xt}from"./chunk-KQPDXXG3.js";import{a as u}from"./chunk-P37U34EQ.js";import{useEffect as L,useMemo as o,useRef as _i,useState as T}from"react";import he from"lodash.omit";import{useQuery as fi}from"@tanstack/react-query";var yi=u(()=>{let{client:k}=xt(),{data:R}=te(),s=ee(R)?R?.company?.id??"":"";return fi({queryKey:["legal-entities",s],queryFn:u(()=>Bt({client:k,path:{company_id:s},query:{page_size:100}}),"queryFn"),select:u(W=>W.data?.data?.legal_entities,"select"),enabled:!!s})},"useLegalEntities"),we=u(()=>{let{data:k}=yi();return k?.find(R=>R.is_default)},"useDefaultLegalEntity");var gi={select_country:null,basic_information:"employment_basic_information",contract_details:null,eligibility_questionnaire:null,pricing_plan:null,contract_preview:null,review:null},bi={employment_basic_information:"basic_information"},Gi=u(({countryCode:k,externalId:R,employmentId:s,skipSteps:W,options:_,initialValues:d})=>{let Pe=_?.excludeProducts||[],[l,yt]=T(k||null),[a,Ee]=T(s),[E,_t]=T(void 0),z=_i({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{},eligibility_questionnaire:{}}),[H,ve]=T(void 0),[gt,X]=T(!1),[bt,Fe]=T(!0),[rt,St]=T(null),{steps:Ve,stepsArray:Me}=o(()=>zt({includeSelectCountry:!W?.includes("select_country"),includeEligibilityQuestionnaire:gt,includeContractPreview:bt}),[gt,bt,W]),{fieldValues:c,stepState:e,setFieldValues:ot,previousStep:Oe,nextStep:Ie,goToStep:B,setStepValues:Ct}=Kt(Ve);L(()=>{rt&&(B(rt),St(null))},[rt,B]);let{data:r,isLoading:De,refetch:wt}=Ut({employmentId:a,queryParams:{exclude_files:!0}}),Te=we(),{status:q}=r||{},S=q&&Xt.includes(q),Re=q&&!Yt.includes(q),qe=o(()=>q==="invited"?"invited":"not_invited",[q]),ht=Jt(),Pt=Nt(l,_),at=ae(),Et=Wt(),{mutateAsync:vt}=le(at,Et,c),Ft=me(),Vt=fe(),{mutateAsyncOrThrow:Ae}=b(Pt),Mt=ne(),Ot=oe(),It=ye(),{mutateAsyncOrThrow:Le}=b(ht),{mutateAsyncOrThrow:ke}=b(at),{mutateAsyncOrThrow:Be}=b(Mt),{mutateAsyncOrThrow:Dt}=b(Ot),{mutateAsyncOrThrow:xe}=b(Ft),{mutateAsyncOrThrow:Tt}=b(Vt),{mutateAsyncOrThrow:je}=b(It);s&&r?.country?.code&&!l&&yt(r.country.code);let{selectCountryForm:Y,isLoading:Qe,countries:Rt}=_e({jsfModify:_?.jsfModify?.select_country}),st=o(()=>Rt?.find(t=>t.value===l),[Rt,l]),Je=o(()=>st?.label,[st]),Ne=e.currentStep.name==="pricing_plan"||!!s&&S,{form:v,isLoading:Ue,contractorSubscriptions:Z,refetch:ct,isEligibilityQuestionnaireBlocked:x}=ce(a,st,{jsonSchemaVersion:_?.jsonSchemaVersion,queryOptions:{enabled:Ne},excludeProducts:Pe,jsfModify:_?.jsfModify?.pricing_plan}),F=o(()=>!!Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.submitted_at,[Z]);L(()=>{if(F){X(!1);return}else X(H===y)},[F,H]),L(()=>{let t=r?.contractor_type==="cor";Fe(!t)},[r?.contractor_type]);let tt=o(()=>Z?.find(t=>t.product.short_name==="COR")?.eligibility_questionnaire?.responses,[Z]),Ke=gi[e.currentStep.name]||"contractor_basic_information",Ge=bi[Ke],$e=r?.[Ge]||{},We=u(({form:t,options:n={},query:m={}})=>{let g=Object.keys(c).length>0?{...d,...e.values?.[e.currentStep.name],...c}:{...d,...$e};return Qt({countryCode:l,form:t,fieldValues:g,query:m,options:{...n,queryOptions:{enabled:n.queryOptions?.enabled??!0}}})},"useJSONSchema"),ze=!!(l&&(e.currentStep.name==="basic_information"||s)),He=!!(l==="GBR"&&s&&e.currentStep.name==="basic_information"),{data:j,isLoading:Xe}=ue(s,{enabled:He}),{data:et,isLoading:Ye}=de(s,{enabled:!!s});L(()=>{et&&et.length>0&&!E&&_t(et[0].id)},[et,E]);let{data:C,isLoading:Ze}=We({form:"contractor_basic_information",options:{jsfModify:Se(l,Je,_),queryOptions:{enabled:ze}}}),ti=o(()=>Ht(r?.basic_information?.provisional_start_date,c?.service_duration?.provisional_start_date),[r?.basic_information?.provisional_start_date,c?.service_duration?.provisional_start_date]),p=o(()=>{let t={standard:$,plus:nt,cor:y};if(c.subscription)return c.subscription;let n=e.values?.pricing_plan?.subscription;return n&&!x?n:F&&!x?y:x&&F?$:t[r?.contractor_type]||$},[c,e.values,F,r?.contractor_type,x]);L(()=>{p&&p!==H&&ve(p)},[p,H]);let ei=o(()=>({...tt,...d,...e.values?.eligibility_questionnaire,...c}),[tt,d,e.values?.eligibility_questionnaire,c]),ii=o(()=>p===y&&e.currentStep.name==="eligibility_questionnaire"||!!s&&S&&p===y,[p,e.currentStep.name,s,S]),{data:V,isLoading:ni}=pe({options:{queryOptions:{enabled:ii},jsfModify:_?.jsfModify?.eligibility_questionnaire},fieldValues:ei}),ri=!!(l&&e.currentStep.name==="contract_details"||S),{data:w,isLoading:oi}=ge({countryCode:l,fieldValues:c,employmentId:a,options:{queryOptions:{enabled:ri},jsfModify:be(_?.jsfModify?.contract_details,ti,p,c,p===y)}}),ai=o(()=>e.currentStep.name==="contract_preview"||!!s&&S,[e.currentStep.name,s,S]),{data:M}=ie({fieldValues:c,options:{queryOptions:{enabled:ai},jsfModify:Ce(_,c)}}),{data:lt,isLoading:si}=re({employmentId:a,contractDocumentId:E,options:{queryOptions:{enabled:!!E}}}),i=o(()=>({select_country:Y?.fields||[],basic_information:C?.fields||[],pricing_plan:v?.fields||[],eligibility_questionnaire:V?.fields||[],contract_details:w?.fields||[],contract_preview:M?.fields||[],review:[]}),[Y?.fields,C?.fields,v?.fields,w?.fields,M?.fields,V?.fields]),ci={select_country:null,basic_information:C?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:w?.meta["x-jsf-fieldsets"],eligibility_questionnaire:null,contract_preview:null,review:null},{country:li,basic_information:it={},contract_details:qt={}}=r||{},At=li?.code,Q=o(()=>D(i.select_country,{country:l||At||""}),[i.select_country,l,At]),ut=o(()=>j?.content?jt(j.content,j.name):null,[j?.content,j?.name]),J=o(()=>{let t={...d,...it,ir35:r?.contract_details?.ir_35,nationality_status:r?.contract_details?.nationality,...ut&&{ir35_sds_file:[ut]}};return D(i.basic_information,t)},[d,it,r?.contract_details?.ir_35,r?.contract_details?.nationality,ut,i.basic_information]),N=o(()=>{let n={...{service_duration:{provisional_start_date:it.provisional_start_date}},...d,...qt};return D(i.contract_details,n)},[i.contract_details,qt,d,it]),U=o(()=>{let t=lt?.contract_document?.signatories?.find(m=>m.type==="company"),n={...d,signature:t?.signature};return D(i.contract_preview,n)},[i.contract_preview,d,lt]),K=o(()=>{let n={...{subscription:p},...d};return D(i.pricing_plan,n)},[i.pricing_plan,d,p]),G=o(()=>{let t={...d,...tt};return D(i.eligibility_questionnaire,t)},[i.eligibility_questionnaire,d,tt]),ui=o(()=>({select_country:Q,basic_information:J,contract_details:N,contract_preview:U,pricing_plan:K,eligibility_questionnaire:G}),[Q,J,N,U,K,G]),dt=!!(s&&S&&e.currentStep.name!=="review"),pt=Qe||Ze||De||oi||Ue||si||Xe||Ye||ni,Lt=o(()=>{let n=r?.contractor_type==="cor"||i.contract_preview.length>0;return!!(dt&&!pt&&E&&i.basic_information.length>0&&i.contract_details.length>0&&n)},[dt,pt,E,i.basic_information.length,i.contract_details.length,i.contract_preview.length,r?.contractor_type]);L(()=>{Lt&&(z.current={select_country:P(Q,i.select_country),basic_information:P(J,i.basic_information),contract_details:P(N,i.contract_details),contract_preview:P(U,i.contract_preview),pricing_plan:P(K,i.pricing_plan),eligibility_questionnaire:P(G,i.eligibility_questionnaire)},Ct({select_country:Q,basic_information:J,contract_details:N,contract_preview:U,pricing_plan:K,eligibility_questionnaire:G,review:{}}),B("review"))},[Lt,B,Q,J,N,Ct,i.select_country,i.basic_information,i.contract_details,i.pricing_plan,K,i.contract_preview,U,i.eligibility_questionnaire,G]);let di=u(t=>{B(t)},"goTo"),kt=u(async t=>Y&&e.currentStep.name==="select_country"?t:C&&e.currentStep.name==="basic_information"?await f(t,C?.fields,{isPartialValidation:!1}):w&&e.currentStep.name==="contract_details"?await f(t,w?.fields,{isPartialValidation:!1}):M&&e.currentStep.name==="contract_preview"?await f(t,M?.fields,{isPartialValidation:!1}):v&&e.currentStep.name==="pricing_plan"?await f(t,v?.fields,{isPartialValidation:!1}):V&&e.currentStep.name==="eligibility_questionnaire"?await f(t,V?.fields,{isPartialValidation:!1}):{},"parseFormValues"),pi=u(t=>{let n=t?.rawError?.error?.errors?.services_and_deliverables;return n?.source===$t?{error:n.error,source:n.source,skippable:n.skippable}:null},"extractAiValidationError");async function mi(t){let n=e.currentStep.name;n in z.current&&(z.current[n]=P(t,i[n]));let m=await kt(t);switch(e.currentStep.name){case"select_country":return yt(m.country),Promise.resolve({data:{countryCode:m.country}});case"basic_information":{let A=!a&&l,g=a&&l&&r?.country&&r?.country.code!==l;if(A||g){let O={basic_information:he(m,"nationality_status","ir35","ir35_sds_file"),type:"contractor",country_code:l,external_id:R},mt=await Le(O),ft=mt?.data?.employment?.id;if(!ft)throw I("Employment ID not found");return await vt({employmentId:ft}),Ee(ft),mt}else if(a){let h=he(m,"nationality_status","ir35","ir35_sds_file");return await vt({employmentId:a}),Ae({employmentId:a,basic_information:h})}return}case"contract_details":{console.log("parsedValues",m);let A=c.services_and_deliverables_error_skippable===!0,g={contract_document:m,skip_ai_checks:A};try{let h=await ke({employmentId:a,payload:g}),O=h?.data?.contract_document?.id;if(!O)throw I("Contract document ID not found");return _t(O),h}catch(h){let O=pi(h);throw O&&ot({...t,services_and_deliverables_ai_warning:Zt(p===y),services_and_deliverables_error_skippable:O.skippable}),h}}case"contract_preview":return Be({employmentId:a,contractDocumentId:E,payload:{signature:m.signature}});case"pricing_plan":{if(x&&[y,nt].includes(t.subscription))throw I(`This individual is not eligible for ${se[t.subscription]}.`);if(t.subscription===Gt)return Promise.resolve({data:{subscription:t.subscription}});if(F&&t.subscription!==y)try{await je({employmentId:a}),await ct()}catch(g){if(g?.response?.status!==404)throw g;await ct()}if(t.subscription==$)return Dt({employmentId:a,payload:{operation:"downgrade"}});if(t.subscription==nt)return Dt({employmentId:a,payload:{operation:"upgrade"}});if(t.subscription==y)return F&&r?.contractor_type!=="cor"?Tt({employmentId:a}):Promise.resolve({data:{subscription:t.subscription}});throw I("invalid selection")}case"eligibility_questionnaire":try{if((await xe({employmentId:a,payload:m}))?.data?.is_blocking)throw X(!1),St("pricing_plan"),I("This individual is not eligible for Contractor of Record.");return await Tt({employmentId:a})}finally{await ct()}default:throw I("Invalid step state")}}return u(mi,"onSubmit"),{isLoading:pt||dt,fieldValues:c,stepState:e,checkFieldUpdates:ot,markContractAsReviewed:u(()=>{ot({review_completed:!0})},"markContractAsReviewed"),back:Oe,next:u(()=>{a&&wt(),Ie()},"handleNextStep"),goTo:di,onSubmit:mi,fields:i[e.currentStep.name],meta:{fields:z.current,fieldsets:ci[e.currentStep.name]},parseFormValues:kt,canSkipAiValidation:c.services_and_deliverables_error_skippable===!0,handleValidation:u(async t=>{if(e.currentStep.name==="select_country")return Y.handleValidation(t);if(C&&e.currentStep.name==="basic_information"){let n=await f(t,C?.fields,{isPartialValidation:!1});return C?.handleValidation(n)}if(w&&e.currentStep.name==="contract_details"){let n=await f(t,w?.fields,{isPartialValidation:!1});return w?.handleValidation(n)}if(M&&e.currentStep.name==="contract_preview"){let n=await f(t,M?.fields,{isPartialValidation:!0});return M?.handleValidation(n)}if(v&&e.currentStep.name==="pricing_plan"){let n=await f(t,v?.fields,{isPartialValidation:!1});return v?.handleValidation(n)}if(V&&e.currentStep.name==="eligibility_questionnaire"){let n=await f(t,V?.fields,{isPartialValidation:!1});return V?.handleValidation(n)}return null},"handleValidation"),initialValues:ui,employmentId:a,refetchEmployment:wt,isSubmitting:ht.isPending||Pt.isPending||at.isPending||Mt.isPending||Ot.isPending||Et.isPending||Ft.isPending||Vt.isPending||It.isPending,documentPreviewPdf:lt,canInvite:Re,isEmploymentReadOnly:S,invitedStatus:qe,employment:r,defaultLegalEntity:Te,steps:Me}},"useContractorOnboarding");export{Gi as a};
|
|
2
|
+
//# sourceMappingURL=chunk-X6IMS3NL.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} from '@/src/flows/ContractorOnboarding/api';\nimport { ContractorOnboardingFlowProps } 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'\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 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(employmentId as string, {\n enabled: Boolean(employmentId),\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 { data: documentPreviewPdf, isLoading: isLoadingDocumentPreviewForm } =\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 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 {\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 ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n ),\n contract_preview: prettifyFormValues(\n contractPreviewInitialValues,\n stepFields.contract_preview,\n ),\n pricing_plan: prettifyFormValues(\n pricingPlanInitialValues,\n stepFields.pricing_plan,\n ),\n eligibility_questionnaire: prettifyFormValues(\n eligibilityQuestionnaireInitialValues,\n stepFields.eligibility_questionnaire,\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 if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(values, stepFields[currentStepName]);\n }\n const parsedValues = await parseFormValues(values);\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 console.log('parsedValues', parsedValues);\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 return signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: parsedValues.signature,\n },\n });\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 setFieldValues({\n review_completed: true,\n });\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 },\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, 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":"qxBAAA,OAAS,aAAAA,EAAW,WAAAC,EAAS,UAAAC,GAAQ,YAAAC,MAAgB,QAErD,OAAOC,OAAU,cCFjB,OAAS,YAAAC,OAAgB,wBAYlB,IAAMC,GAAmBC,EAAA,IAAM,CACpC,GAAM,CAAE,OAAAC,CAAO,EAAIC,GAAU,EACvB,CAAE,KAAMC,CAAS,EAAIC,GAAY,EACjCC,EAAYC,GAAWH,CAAQ,EAAKA,GAAU,SAAS,IAAM,GAAM,GAEzE,OAAOI,GAAS,CACd,SAAU,CAAC,iBAAkBF,CAAS,EACtC,QAASL,EAAA,IACPQ,GAA6B,CAC3B,OAAQP,EACR,KAAM,CACJ,WAAYI,CACd,EACA,MAAO,CACL,UAAW,GACb,CACF,CAAC,EATM,WAUT,OAAQL,EAACS,GAASA,EAAK,MAAM,MAAM,eAA3B,UACR,QAAS,CAAC,CAACJ,CACb,CAAC,CACH,EApBgC,oBAsBnBK,GAAwBV,EAAA,IAAM,CACzC,GAAM,CAAE,KAAMW,CAAc,EAAIZ,GAAiB,EACjD,OAAOY,GAAe,KAAMC,GAAgBA,EAAY,UAAU,CACpE,EAHqC,yBDwCrC,IAAMC,GAAmE,CACvE,eAAgB,KAChB,kBAAmB,+BACnB,iBAAkB,KAClB,0BAA2B,KAC3B,aAAc,KACd,iBAAkB,KAClB,OAAQ,IACV,EAEMC,GAEF,CACF,6BAA8B,mBAChC,EAEaC,GAA0BC,EAAA,CAAC,CACtC,YAAAC,EACA,WAAAC,EACA,aAAAC,EACA,UAAAC,EACA,QAAAC,EACA,cAAeC,CACjB,IAAoC,CAClC,IAAMC,GAAkBF,GAAS,iBAAmB,CAAC,EAC/C,CAACG,EAAqBC,EAAsB,EAAIC,EACpDT,GAAe,IACjB,EACM,CAACU,EAAsBC,EAAuB,EAAIF,EAEtDP,CAAY,EACR,CAACU,EAA4BC,EAA6B,EAAIJ,EAElE,MAAS,EACLK,EAAgBC,GAOnB,CACD,eAAgB,CAAC,EACjB,kBAAmB,CAAC,EACpB,iBAAkB,CAAC,EACnB,iBAAkB,CAAC,EACnB,aAAc,CAAC,EACf,0BAA2B,CAAC,CAC9B,CAAC,EAEK,CAACC,EAAiBC,EAAkB,EAAIR,EAC5C,MACF,EAEM,CAACS,GAAiCC,CAAkC,EACxEV,EAAkB,EAAK,EAEnB,CAACW,GAAwBC,EAAyB,EACtDZ,EAAkB,EAAI,EAElB,CAACa,GAAuBC,EAAwB,EACpDd,EAA0B,IAAI,EAE1B,CAAE,MAAAe,GAAO,WAAAC,EAAW,EAAIC,EAC5B,IACEC,GAAW,CACT,qBAAsB,CAACxB,GAAW,SAAS,gBAAgB,EAC3D,gCAAiCe,GACjC,uBAAwBE,EAC1B,CAAC,EACH,CAACF,GAAiCE,GAAwBjB,CAAS,CACrE,EAEM,CACJ,YAAAyB,EACA,UAAAC,EACA,eAAAC,GACA,aAAAC,GACA,SAAAC,GACA,SAAAC,EACA,cAAAC,EACF,EAAIC,GAAaX,EAAK,EAEtBY,EAAU,IAAM,CACVd,KAEFW,EAASX,EAAqB,EAC9BC,GAAyB,IAAI,EAEjC,EAAG,CAACD,GAAuBW,CAAQ,CAAC,EAEpC,GAAM,CACJ,KAAMI,EACN,UAAWC,GACX,QAASC,EACX,EAAIC,GAAmB,CACrB,aAAc9B,EACd,YAAa,CAAE,cAAe,EAAK,CACrC,CAAC,EAEK+B,GAAqBC,GAAsB,EAE3C,CAAE,OAAQC,CAAiB,EAAIN,GAAc,CAAC,EAE9CO,EACJD,GACAE,GAAkC,SAASF,CAAgB,EAEvDG,GACJH,GACA,CAACI,GAAqC,SAASJ,CAAgB,EAE3DK,GAA2CtB,EAAQ,IACrCiB,IAAqB,UAEpB,UAAY,cAC9B,CAACA,CAAgB,CAAC,EAEfM,GAA2BC,GAAoB,EAC/CC,GAA2BC,GAC/B7C,EACAH,CACF,EACMiD,GACJC,GAAoC,EAChCC,GAAqBC,GAAc,EACnC,CAAE,YAAaC,EAA+B,EAClDC,GACEL,GACAE,GACA3B,CACF,EACI+B,GACJC,GAAsC,EAClCC,GACJC,GAAuC,EAEnC,CAAE,mBAAoBC,EAA8B,EACxDC,EAAkBb,EAAwB,EACtCc,GAA+BC,GAAwB,EACvDC,GACJC,GAAqC,EACjCC,GACJC,GAAmC,EAE/B,CAAE,mBAAoBC,EAA8B,EACxDP,EAAkBf,EAAwB,EAEtC,CAAE,mBAAoBuB,EAA8C,EACxER,EAAkBX,EAAwC,EAEtD,CAAE,mBAAoBoB,EAAkC,EAC5DT,EAAkBC,EAA4B,EAE1C,CAAE,mBAAoBS,EAA0C,EACpEV,EAAkBG,EAAoC,EAElD,CAAE,mBAAoBQ,EAA4C,EACtEX,EAAkBL,EAAsC,EAEpD,CAAE,mBAAoBiB,EAA6C,EACvEZ,EAAkBH,EAAuC,EAErD,CAAE,mBAAoBgB,EAA6C,EACvEb,EAAkBK,EAAuC,EAIvDnE,GAAgBmC,GAAY,SAAS,MAAQ,CAAC9B,GAChDC,GAAuB6B,EAAW,QAAQ,IAAI,EAGhD,GAAM,CACJ,kBAAAyC,EACA,UAAWC,GACX,UAAAC,EACF,EAAIC,GAAwB,CAC1B,UAAW7E,GAAS,WAAW,cACjC,CAAC,EAEK8E,GAAkBxD,EAAQ,IACvBsD,IAAW,KAAMG,GAAYA,EAAQ,QAAU5E,CAAmB,EACxE,CAACyE,GAAWzE,CAAmB,CAAC,EAE7B6E,GAAc1D,EAAQ,IACnBwD,IAAiB,MACvB,CAACA,EAAe,CAAC,EAEdG,GACJxD,EAAU,YAAY,OAAS,gBAC9B,EAAQ3B,GAAiB0C,EAEtB,CACJ,KAAM0C,EACN,UAAWC,GACX,wBAAAC,EACA,QAASC,GACT,kCAAAC,CACF,EAAIC,GACFjF,EACAwE,GACA,CACE,kBAAmB9E,GAAS,kBAC5B,aAAc,CACZ,QAASiF,EACX,EACA,gBAAiB/E,GACjB,UAAWF,GAAS,WAAW,YACjC,CACF,EAEMwF,EAAuClE,EAAQ,IAC5C,EACL8D,GAAyB,KACtBK,GAAiBA,EAAa,QAAQ,aAAe,KACxD,GAAG,2BAA2B,aAE/B,CAACL,CAAuB,CAAC,EAE5BpD,EAAU,IAAM,CACd,GAAIwD,EAAsC,CACxCzE,EAAmC,EAAK,EACxC,MACF,MACEA,EADSH,IAAoB8E,CACU,CAI3C,EAAG,CAACF,EAAsC5E,CAAe,CAAC,EAE1DoB,EAAU,IAAM,CACd,IAAM2D,EAAQ1D,GAAY,kBAAoB,MAC9ChB,GAA0B,CAAC0E,CAAK,CAClC,EAAG,CAAC1D,GAAY,eAAe,CAAC,EAEhC,IAAM2D,GAAqBtE,EAAQ,IAC1B8D,GAAyB,KAC7BK,GAAiBA,EAAa,QAAQ,aAAe,KACxD,GAAG,2BAA2B,UAC7B,CAACL,CAAuB,CAAC,EAEtBS,GACJrG,GAAoBiC,EAAU,YAAY,IAAI,GAC9C,+BACIqE,GAAgBrG,GAAuBoG,EAAQ,EAC/CE,GAAwB9D,IAAa6D,EAAa,GAAK,CAAC,EAKxDE,GAAgBrG,EAAA,CAAC,CACrB,KAAAsG,EACA,QAASC,EAAoB,CAAC,EAC9B,MAAAC,EAAQ,CAAC,CACX,IAQM,CAKJ,IAAMC,EAJ0B,OAAO,KAAK5E,CAAW,EAAE,OAAS,EAK9D,CACE,GAAGvB,EACH,GAAGwB,EAAU,SAASA,EAAU,YAAY,IAAI,EAChD,GAAGD,CACL,EACA,CACE,GAAGvB,EACH,GAAG8F,EACL,EAEJ,OAAOM,GAAkB,CACvB,YAAalG,EACb,KAAM8F,EACN,YAAaG,EACb,MAAAD,EACA,QAAS,CACP,GAAGD,EACH,aAAc,CACZ,QAASA,EAAkB,cAAc,SAAW,EACtD,CACF,CACF,CAAC,CACH,EAxCsB,iBA0ChBI,GAAmC,GACvCnG,IACGsB,EAAU,YAAY,OAAS,qBACtB3B,IAGRyG,GAAoB,GACxBpG,IAAwB,OACtBL,GACA2B,EAAU,YAAY,OAAS,qBAG7B,CAAE,KAAM+E,EAAU,UAAWC,EAAkB,EAAIC,GACvD5G,EACA,CACE,QAASyG,EACX,CACF,EAEM,CAAE,KAAMI,GAAmB,UAAWC,EAA2B,EACrEC,GAAwB/G,EAAwB,CAC9C,QAAS,EAAQA,CACnB,CAAC,EAEHkC,EAAU,IAAM,CAEZ2E,IACAA,GAAkB,OAAS,GAC3B,CAACnG,GAEDC,GAA8BkG,GAAkB,CAAC,EAAE,EAAE,CAEzD,EAAG,CAACA,GAAmBnG,CAA0B,CAAC,EAElD,GAAM,CACJ,KAAMsG,EACN,UAAWC,EACb,EAAIf,GAAc,CAChB,KAAM,+BACN,QAAS,CACP,UAAWgB,GACT7G,EACA6E,GACAhF,CACF,EACA,aAAc,CACZ,QAASsG,EACX,CACF,CACF,CAAC,EAEKW,GAAkC3F,EAAQ,IACvC4F,GACLjF,GAAY,mBAAmB,uBAC/BT,GAAa,kBAAkB,sBACjC,EACC,CACDS,GAAY,mBAAmB,uBAC/BT,GAAa,kBAAkB,sBACjC,CAAC,EAMK2F,EAAsB7F,EAAQ,IAAM,CACxC,IAAM8F,EAAgB,CACpB,SAAUC,EACV,KAAMC,GACN,IAAK5B,CACP,EAGA,GAAIlE,EAAY,aACd,OAAOA,EAAY,aAIrB,IAAMiE,EAAehE,EAAU,QAAQ,cAAc,aACrD,OAAIgE,GAAgB,CAACH,EACZG,EAKPD,GACA,CAACF,EAEMI,EAKPJ,GACAE,EAEO6B,EAKPD,EACEnF,GAAY,eACd,GAAKoF,CAET,EAAG,CACD7F,EACAC,EAAU,OACV+D,EACAvD,GAAY,gBACZqD,CACF,CAAC,EAEDtD,EAAU,IAAM,CACVmF,GAAuBA,IAAwBvG,GACjDC,GAAmBsG,CAAmB,CAE1C,EAAG,CAACA,EAAqBvG,CAAe,CAAC,EAEzC,IAAM2G,GAAoBjG,EAAQ,KACzB,CACL,GAAGsE,GACH,GAAG3F,EACH,GAAGwB,EAAU,QAAQ,0BACrB,GAAGD,CACL,GACC,CACDoE,GACA3F,EACAwB,EAAU,QAAQ,0BAClBD,CACF,CAAC,EAEKgG,GAAoClG,EAAQ,IAE7C6F,IAAwBzB,GACvBjE,EAAU,YAAY,OAAS,6BAChC,EAAQ3B,GACP0C,GACA2E,IAAwBzB,EAE3B,CACDyB,EACA1F,EAAU,YAAY,KACtB3B,EACA0C,CACF,CAAC,EAEK,CACJ,KAAMiF,EACN,UAAWC,EACb,EAAIC,GAA+B,CACjC,QAAS,CACP,aAAc,CACZ,QAASH,EACX,EACA,UAAWxH,GAAS,WAAW,yBACjC,EACA,YAAauH,EACf,CAAC,EAEKK,GAAuC,GAC1CzH,GACCsB,EAAU,YAAY,OAAS,oBAC/Be,GAGE,CACJ,KAAMqF,EACN,UAAWC,EACb,EAAIC,GAAmD,CACrD,YAAa5H,EACb,YAAaqB,EACb,aAAclB,EACd,QAAS,CACP,aAAc,CACZ,QAASsH,EACX,EACA,UAAWI,GACThI,GAAS,WAAW,iBACpBiH,GACAE,EACA3F,EACA2F,IAAwBzB,CAC1B,CACF,CACF,CAAC,EAEKuC,GAA2B3G,EAAQ,IAErCG,EAAU,YAAY,OAAS,oBAC9B,EAAQ3B,GAAiB0C,EAE3B,CAACf,EAAU,YAAY,KAAM3B,EAAc0C,CAAoB,CAAC,EAE7D,CAAE,KAAM0F,CAAoB,EAAIC,GAAsC,CAC1E,YAAa3G,EACb,QAAS,CACP,aAAc,CACZ,QAASyG,EACX,EACA,UAAWG,GAA8BpI,EAASwB,CAAW,CAC/D,CACF,CAAC,EAEK,CAAE,KAAM6G,GAAoB,UAAWC,EAA6B,EACxEC,GAA2B,CACzB,aAAcjI,EACd,mBAAoBE,EACpB,QAAS,CACP,aAAc,CACZ,QAAS,EAAQA,CACnB,CACF,CACF,CAAC,EAEGgI,EAA0ClH,EAC9C,KAAO,CACL,eAAgBoD,GAAmB,QAAU,CAAC,EAC9C,kBAAmBoC,GAAsB,QAAU,CAAC,EACpD,aAAc5B,GAAkC,QAAU,CAAC,EAC3D,0BAA2BuC,GAA8B,QAAU,CAAC,EACpE,iBAAkBI,GAAiC,QAAU,CAAC,EAC9D,iBAAkBK,GAAqB,QAAU,CAAC,EAClD,OAAQ,CAAC,CACX,GACA,CACExD,GAAmB,OACnBoC,GAAsB,OACtB5B,GAAkC,OAClC2C,GAAiC,OACjCK,GAAqB,OACrBT,GAA8B,MAChC,CACF,EAEMgB,GAGF,CACF,eAAgB,KAChB,kBAAmB3B,GAAsB,KAAK,iBAAiB,EAC/D,aAAc,KACd,iBAAkBe,GAAiC,KAAK,iBAAiB,EACzE,0BAA2B,KAC3B,iBAAkB,KAClB,OAAQ,IACV,EAEM,CACJ,QAAA9C,GACA,kBAAmB2D,GAA6B,CAAC,EACjD,iBAAkBC,GAA4B,CAAC,CACjD,EAAI1G,GAAc,CAAC,EAEb2G,GAAwB7D,IAAS,KAEjC8D,EAA6BvH,EACjC,IACEwH,EAAiBN,EAAW,eAAgB,CAC1C,QAASrI,GAAuByI,IAAyB,EAC3D,CAAC,EACH,CAACJ,EAAW,eAAgBrI,EAAqByI,EAAqB,CACxE,EAIMG,GAAoBzH,EAAQ,IAC3BkF,GAAU,QACRwC,GAAcxC,EAAS,QAA8BA,EAAS,IAAI,EAD1C,KAE9B,CAACA,GAAU,QAASA,GAAU,IAAI,CAAC,EAEhCyC,EAAgC3H,EAAQ,IAAM,CAClD,IAAM4H,EAAgB,CACpB,GAAGjJ,EACH,GAAGyI,GACH,KAAMzG,GAAY,kBAAkB,MACpC,mBAAoBA,GAAY,kBAAkB,YAClD,GAAI8G,IAAqB,CACvB,cAAe,CAACA,EAAiB,CACnC,CACF,EAEA,OAAOD,EAAiBN,EAAW,kBAAmBU,CAAa,CACrE,EAAG,CACDjJ,EACAyI,GACAzG,GAAY,kBAAkB,MAC9BA,GAAY,kBAAkB,YAC9B8G,GACAP,EAAW,iBACb,CAAC,EAEKW,EAA+B7H,EAAQ,IAAM,CAOjD,IAAM4H,EAAgB,CACpB,GAPsB,CACtB,iBAAkB,CAChB,uBACER,GAA2B,sBAC/B,CACF,EAGE,GAAGzI,EACH,GAAG0I,EACL,EAEA,OAAOG,EAAiBN,EAAW,iBAAkBU,CAAa,CACpE,EAAG,CACDV,EAAW,iBACXG,GACA1I,EACAyI,EACF,CAAC,EAEKU,EAA+B9H,EAAQ,IAAM,CACjD,IAAM+H,EAAYhB,IAAoB,mBAAmB,aAAa,KACnEiB,GAAcA,EAAU,OAAS,SACpC,EACMJ,EAAgB,CACpB,GAAGjJ,EACH,UAAWoJ,GAAW,SACxB,EAEA,OAAOP,EAAiBN,EAAW,iBAAkBU,CAAa,CACpE,EAAG,CACDV,EAAW,iBACXvI,EACAoI,EACF,CAAC,EAEKkB,EAA2BjI,EAAQ,IAAM,CAI7C,IAAM4H,EAAgB,CACpB,GAJ6B,CAC7B,aAAc/B,CAChB,EAGE,GAAGlH,CACL,EAEA,OAAO6I,EAAiBN,EAAW,aAAcU,CAAa,CAChE,EAAG,CAACV,EAAW,aAAcvI,EAAyBkH,CAAmB,CAAC,EAEpEqC,EAAwClI,EAAQ,IAAM,CAC1D,IAAM4H,EAAgB,CACpB,GAAGjJ,EACH,GAAG2F,EACL,EACA,OAAOkD,EACLN,EAAW,0BACXU,CACF,CACF,EAAG,CACDV,EAAW,0BACXvI,EACA2F,EACF,CAAC,EAEKsD,GAAgB5H,EAAQ,KACrB,CACL,eAAgBuH,EAChB,kBAAmBI,EACnB,iBAAkBE,EAClB,iBAAkBC,EAClB,aAAcG,EACd,0BAA2BC,CAC7B,GACC,CACDX,EACAI,EACAE,EACAC,EACAG,EACAC,CACF,CAAC,EAEKC,GAAiC,GACrC3J,GACE0C,GACAf,EAAU,YAAY,OAAS,UAG7BiI,GACJ/E,IACAoC,IACA7E,IACA4F,IACA3C,IACAmD,IACA7B,IACAG,IACAc,GAEIiC,GAAuBrI,EAAQ,IAAM,CAEzC,IAAMsI,EADQ3H,GAAY,kBAAoB,OAEnCuG,EAAW,iBAAiB,OAAS,EAEhD,MAAO,GACLiB,IACE,CAACC,IACOlJ,GACRgI,EAAW,kBAAkB,OAAS,GACtCA,EAAW,iBAAiB,OAAS,GACrCoB,EAEN,EAAG,CACDH,GACAC,GACAlJ,EACAgI,EAAW,kBAAkB,OAC7BA,EAAW,iBAAiB,OAC5BA,EAAW,iBAAiB,OAC5BvG,GAAY,eACd,CAAC,EAEDD,EAAU,IAAM,CACV2H,KACFjJ,EAAc,QAAU,CACtB,eAAgBmJ,EACdhB,EACAL,EAAW,cACb,EACA,kBAAmBqB,EACjBZ,EACAT,EAAW,iBACb,EACA,iBAAkBqB,EAChBV,EACAX,EAAW,gBACb,EACA,iBAAkBqB,EAChBT,EACAZ,EAAW,gBACb,EACA,aAAcqB,EACZN,EACAf,EAAW,YACb,EACA,0BAA2BqB,EACzBL,EACAhB,EAAW,yBACb,CACF,EAEA1G,GAAc,CACZ,eAAgB+G,EAChB,kBAAmBI,EACnB,iBAAkBE,EAClB,iBAAkBC,EAClB,aAAcG,EACd,0BAA2BC,EAC3B,OAAQ,CAAC,CACX,CAAC,EACD3H,EAAS,QAAQ,EAErB,EAAG,CACD8H,GACA9H,EACAgH,EACAI,EACAE,EACArH,GACA0G,EAAW,eACXA,EAAW,kBACXA,EAAW,iBACXA,EAAW,aACXe,EACAf,EAAW,iBACXY,EACAZ,EAAW,0BACXgB,CACF,CAAC,EAED,IAAMM,GAAOnK,EAACoK,GAAmB,CAC/BlI,EAASkI,CAAI,CACf,EAFa,QAIPC,GAAkBrK,EAAA,MAAOsK,GACzBvF,GAAqBjD,EAAU,YAAY,OAAS,iBAC/CwI,EAIPnD,GACArF,EAAU,YAAY,OAAS,oBAExB,MAAMyI,EAAmBD,EAAQnD,GAAsB,OAAQ,CACpE,oBAAqB,EACvB,CAAC,EAIDe,GACApG,EAAU,YAAY,OAAS,mBAExB,MAAMyI,EACXD,EACApC,GAAiC,OACjC,CACE,oBAAqB,EACvB,CACF,EAIAK,GACAzG,EAAU,YAAY,OAAS,mBAExB,MAAMyI,EAAmBD,EAAQ/B,GAAqB,OAAQ,CACnE,oBAAqB,EACvB,CAAC,EAIDhD,GACAzD,EAAU,YAAY,OAAS,eAExB,MAAMyI,EACXD,EACA/E,GAAkC,OAClC,CACE,oBAAqB,EACvB,CACF,EAIAuC,GACAhG,EAAU,YAAY,OAAS,4BAExB,MAAMyI,EACXD,EACAxC,GAA8B,OAC9B,CACE,oBAAqB,EACvB,CACF,EAGK,CAAC,EA9Dc,mBAsElB0C,GAA2BxK,EAC/ByK,GAC6B,CAC7B,IAAMC,EAAYD,GAAO,UAAU,OAAO,QAAQ,0BAClD,OAAIC,GAAW,SAAWC,GACjB,CACL,MAAOD,EAAU,MACjB,OAAQA,EAAU,OAClB,UAAWA,EAAU,SACvB,EAEK,IACT,EAZiC,4BAcjC,eAAeE,GAASN,EAAqB,CAC3C,IAAMO,EAAkB/I,EAAU,YAAY,KAC1C+I,KAAmB9J,EAAc,UACnCA,EAAc,QACZ8J,CACF,EAAIX,EAAmBI,EAAQzB,EAAWgC,CAAe,CAAC,GAE5D,IAAMC,EAAe,MAAMT,GAAgBC,CAAM,EACjD,OAAQxI,EAAU,YAAY,KAAM,CAClC,IAAK,iBACH,OAAArB,GAAuBqK,EAAa,OAAO,EACpC,QAAQ,QAAQ,CAAE,KAAM,CAAE,YAAaA,EAAa,OAAQ,CAAE,CAAC,EAExE,IAAK,oBAAqB,CACxB,IAAMC,EACJ,CAACpK,GAAwBH,EACrBwK,EACJrK,GACAH,GACA8B,GAAY,SACZA,GAAY,QAAQ,OAAS9B,EAE/B,GAAIuK,GAAyBC,EAAmB,CAO9C,IAAMC,EAAkD,CACtD,kBAPmCC,GACnCJ,EACA,qBACA,OACA,eACF,EAGE,KAAM,aACN,aAActK,EACd,YAAaN,CACf,EACMiL,GAAW,MAAM3G,GACrByG,CACF,EACM9K,GAAegL,IAAU,MAAM,YAAY,GACjD,GAAI,CAAChL,GACH,MAAMiL,EAAsB,yBAAyB,EAGvD,aAAM1H,GAA+B,CACnC,aAAcvD,EAChB,CAAC,EAIDS,GAAwBT,EAAY,EAE7BgL,EACT,SAAWxK,EAAsB,CAC/B,IAAM0K,EAA+BH,GACnCJ,EACA,qBACA,OACA,eACF,EAEA,aAAMpH,GAA+B,CACnC,aAAc/C,CAChB,CAAC,EACMqD,GAA8B,CACnC,aAAcrD,EACd,kBAAmB0K,CACrB,CAAC,CACH,CAEA,MACF,CACA,IAAK,mBAAoB,CACvB,QAAQ,IAAI,eAAgBP,CAAY,EACxC,IAAMQ,EACJzJ,EAAY,4CAA8C,GACtD0J,EAAkC,CACtC,kBAAmBT,EACnB,eAAgBQ,CAClB,EAEA,GAAI,CACF,IAAMH,EAAW,MAAM1G,GAA8C,CACnE,aAAc9D,EACd,QAAA4K,CACF,CAAC,EACKC,EAAqBL,GAAU,MAAM,mBAAmB,GAC9D,GAAI,CAACK,EACH,MAAMJ,EAAsB,gCAAgC,EAE9D,OAAAtK,GAA8B0K,CAAkB,EAEzCL,CACT,OAASV,EAAO,CACd,IAAMgB,EAAUjB,GAAyBC,CAAK,EAC9C,MAAIgB,GAGF1J,GAAe,CACb,GAAGuI,EACH,qCACEoB,GAJFlE,IAAwBzB,CAIuB,EAC/C,0CAA2C0F,EAAQ,SACrD,CAAC,EAGGhB,CACR,CACF,CAEA,IAAK,mBACH,OAAO/F,GAAkC,CACvC,aAAc/D,EACd,mBAAoBE,EACpB,QAAS,CACP,UAAWiK,EAAa,SAC1B,CACF,CAAC,EAEH,IAAK,eAAgB,CAMnB,GACEnF,GANiC,CACjCI,EACA4B,EACF,EAI6B,SAAS2C,EAAO,YAAY,EAEvD,MAAMc,EACJ,uCACEO,GACErB,EAAO,YACT,CACF,GACF,EAGF,GAAIA,EAAO,eAAiBsB,GAE1B,OAAO,QAAQ,QAAQ,CACrB,KAAM,CACJ,aAActB,EAAO,YACvB,CACF,CAAC,EAGH,GACEzE,GACAyE,EAAO,eAAiBvE,EAExB,GAAI,CACF,MAAMjB,GAA6C,CACjD,aAAcnE,CAChB,CAAC,EACD,MAAM+E,GAA+B,CACvC,OAAS+E,EAAO,CACd,GAAKA,GAAoB,UAAU,SAAW,IAC5C,MAAMA,EAGR,MAAM/E,GAA+B,CACvC,CAGF,GAAI4E,EAAO,cAAgB5C,EACzB,OAAO/C,GAA0C,CAC/C,aAAchE,EACd,QAAS,CACP,UAAW,WACb,CACF,CAAC,EACI,GAAI2J,EAAO,cAAgB3C,GAChC,OAAOhD,GAA0C,CAC/C,aAAchE,EACd,QAAS,CACP,UAAW,SACb,CACF,CAAC,EACI,GAAI2J,EAAO,cAAgBvE,EAChC,OACEF,GACAvD,GAAY,kBAAoB,MAEzBuC,GAA6C,CAClD,aAAclE,CAChB,CAAC,EAEM,QAAQ,QAAQ,CACrB,KAAM,CAAE,aAAc2J,EAAO,YAAa,CAC5C,CAAC,EAIL,MAAMc,EAAsB,mBAAmB,CACjD,CAEA,IAAK,4BACH,GAAI,CAQF,IAPiB,MAAMxG,GAA4C,CACjE,aAAcjE,EACd,QAASmK,CACX,CAAC,IAEmD,MAAM,YAGxD,MAAA1J,EAAmC,EAAK,EACxCI,GAAyB,cAAc,EACjC4J,EACJ,2DACF,EAGF,OAAO,MAAMvG,GAA6C,CACxD,aAAclE,CAChB,CAAC,CACH,QAAE,CAEA,MAAM+E,GAA+B,CACvC,CAGF,QACE,MAAM0F,EAAsB,oBAAoB,CAEpD,CACF,CAlOe,OAAApL,EAAA4K,GAAA,YAmPR,CAIL,UANgBb,IAAkBD,GAWlC,YAAAjI,EAKA,UAAAC,EAMA,kBAAmBC,GAOnB,uBA1C6B/B,EAAA,IAAM,CACnC+B,GAAe,CACb,iBAAkB,EACpB,CAAC,CACH,EAJ+B,0BAgD7B,KAAMC,GAMN,KAhDqBhC,EAAA,IAAM,CACvBW,GACF6B,GAAkB,EAEpBP,GAAS,CACX,EALuB,kBAuDrB,KAAMkI,GAON,SAAAS,GAKA,OAAQ/B,EAAW/G,EAAU,YAAY,IAAI,EAK7C,KAAM,CACJ,OAAQf,EAAc,QACtB,UAAW+H,GAA4BhH,EAAU,YAAY,IAAI,CACnE,EAOA,gBAAAuI,GAOA,oBACExI,EAAY,4CAA8C,GAO5D,iBAAkB7B,EAAA,MAChBsK,GACqC,CACrC,GAAIxI,EAAU,YAAY,OAAS,iBACjC,OAAOiD,EAAkB,iBAAiBuF,CAAM,EAGlD,GACEnD,GACArF,EAAU,YAAY,OAAS,oBAC/B,CACA,IAAMgJ,EAAe,MAAMP,EACzBD,EACAnD,GAAsB,OACtB,CAAE,oBAAqB,EAAM,CAC/B,EACA,OAAOA,GAAsB,iBAAiB2D,CAAY,CAC5D,CAEA,GACE5C,GACApG,EAAU,YAAY,OAAS,mBAC/B,CACA,IAAMgJ,EAAe,MAAMP,EACzBD,EACApC,GAAiC,OACjC,CAAE,oBAAqB,EAAM,CAC/B,EACA,OAAOA,GAAiC,iBAAiB4C,CAAY,CACvE,CAEA,GACEvC,GACAzG,EAAU,YAAY,OAAS,mBAC/B,CACA,IAAMgJ,EAAe,MAAMP,EACzBD,EACA/B,GAAqB,OACrB,CAAE,oBAAqB,EAAK,CAC9B,EACA,OAAOA,GAAqB,iBAAiBuC,CAAY,CAC3D,CAEA,GACEvF,GACAzD,EAAU,YAAY,OAAS,eAC/B,CACA,IAAMgJ,EAAe,MAAMP,EACzBD,EACA/E,GAAkC,OAClC,CAAE,oBAAqB,EAAM,CAC/B,EACA,OAAOA,GAAkC,iBAAiBuF,CAAY,CACxE,CAEA,GACEhD,GACAhG,EAAU,YAAY,OAAS,4BAC/B,CACA,IAAMgJ,EAAe,MAAMP,EACzBD,EACAxC,GAA8B,OAC9B,CAAE,oBAAqB,EAAM,CAC/B,EACA,OAAOA,GAA8B,iBAAiBgD,CAAY,CACpE,CAEA,OAAO,IACT,EApEkB,oBAyElB,cAAAvB,GAKA,aAAc5I,EAMd,kBAAmB6B,GAKnB,aACEU,GAAyB,WACzBE,GAAyB,WACzBE,GAAyC,WACzCY,GAA6B,WAC7BE,GAAqC,WACrCZ,GAAmB,WACnBI,GAAuC,WACvCE,GAAwC,WACxCQ,GAAwC,UAK1C,mBAAAoE,GAMA,UAAA3F,GAMA,qBAAAF,EAKA,cAAAI,GAMA,WAAAX,EAMA,mBAAAI,GAKA,MAAOhB,EACT,CACF,EA3xCuC","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","internalCountryCode","setInternalCountryCode","useState","internalEmploymentId","setInternalEmploymentId","internalContractDocumentId","setInternalContractDocumentId","fieldsMetaRef","useRef","selectedProduct","setSelectedProduct","includeEligibilityQuestionnaire","setIncludeEligibilityQuestionnaire","includeContractPreview","setIncludeContractPreview","pendingNavigationStep","setPendingNavigationStep","steps","stepsArray","useMemo","buildSteps","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","useEffect","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","useGetShowContractDocument","stepFields","stepFieldsWithFlatFieldsets","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"]}
|