@remoteoss/remote-flows 1.38.0 → 1.40.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/CheckboxFieldDefault-H6DFZZRM.js +2 -0
- package/dist/CountryFieldDefault-ZPDRAEWF.js +2 -0
- package/dist/DatePickerFieldDefault-BSMELDX2.js +2 -0
- package/dist/RadioGroupFieldDefault-SGZXCPSL.js +2 -0
- package/dist/TextAreaFieldDefault-TTCPVIBZ.js +2 -0
- package/dist/chunk-2Q462FT7.js +2 -0
- package/dist/chunk-2Q462FT7.js.map +1 -0
- package/dist/{chunk-MK7NAW6K.js → chunk-32ERURM2.js} +2 -2
- package/dist/{chunk-3VL4JCTR.js → chunk-34U3WJ75.js} +2 -2
- package/dist/{chunk-FDRDJYLE.js → chunk-3EYFXA3W.js} +2 -2
- package/dist/{chunk-K4VSUMEK.js → chunk-3YTML5RG.js} +2 -2
- package/dist/{chunk-7PWMPORC.js → chunk-4TNJXIDB.js} +2 -2
- package/dist/{chunk-Z766UAJV.js → chunk-54Z4QJ3Q.js} +2 -2
- package/dist/{chunk-IC2BQMCD.js → chunk-5DGTMYWR.js} +2 -2
- package/dist/{chunk-QXVSZGES.js → chunk-6P536SW2.js} +2 -2
- package/dist/{chunk-BVP2GOFZ.js → chunk-6Y5WCCMH.js} +2 -2
- package/dist/{chunk-5SMVSM3S.js → chunk-75XZ4KIX.js} +2 -2
- package/dist/{chunk-VCNVYTNL.js → chunk-76VZ4ARW.js} +2 -2
- package/dist/{chunk-M4DEXIKU.js → chunk-7BPB4PXN.js} +2 -2
- package/dist/{chunk-ZT4G43T6.js → chunk-7FCKRGGD.js} +2 -2
- package/dist/{chunk-BJDI3F3E.js → chunk-AC4MDLIM.js} +2 -2
- package/dist/{chunk-Q6SKWBCE.js → chunk-AXDL47BE.js} +2 -2
- package/dist/{chunk-UCBVPJDT.js → chunk-DNAPYU5I.js} +2 -2
- package/dist/{chunk-AXOQAXG2.js → chunk-DPXSK2UQ.js} +2 -2
- package/dist/{chunk-EJBZ2A6J.js → chunk-DRAQLW6C.js} +2 -2
- package/dist/chunk-EFC4EDTM.js +2 -0
- package/dist/chunk-EFC4EDTM.js.map +1 -0
- package/dist/{chunk-7LA5BB2B.js → chunk-ELM6CPRT.js} +2 -2
- package/dist/{chunk-HOS6KZEY.js → chunk-ENV2K73V.js} +2 -2
- package/dist/{chunk-75SQ56WH.js → chunk-G556HMVA.js} +2 -2
- package/dist/chunk-GZUP2IE6.js +8 -0
- package/dist/chunk-GZUP2IE6.js.map +1 -0
- package/dist/{chunk-TXAYTR6N.js → chunk-HAACNERA.js} +2 -2
- package/dist/{chunk-2U3YEDMJ.js → chunk-HK4LGSS7.js} +2 -2
- package/dist/{chunk-NX2H524O.js → chunk-HSVLNS27.js} +2 -2
- package/dist/{chunk-LSYVKGY6.js → chunk-ITDU6XPR.js} +2 -2
- package/dist/{chunk-WKDDTXQF.js → chunk-JBQOE3XL.js} +2 -2
- package/dist/{chunk-ICC3M37M.js → chunk-JFPOX7SW.js} +2 -2
- package/dist/{chunk-QD5RXKCU.js → chunk-JSTCIALQ.js} +2 -2
- package/dist/{chunk-CTSRJIJT.js → chunk-KN2Q5NOL.js} +2 -2
- package/dist/{chunk-W2C6CHUD.js → chunk-KXQVUSLI.js} +2 -2
- package/dist/{chunk-IBAXAO5O.js → chunk-KY4PEPYW.js} +2 -2
- package/dist/{chunk-HIYSMDGT.js → chunk-LD5KN4ZF.js} +2 -2
- package/dist/{chunk-QKTF3ZBO.js → chunk-LIPJXO2R.js} +2 -2
- package/dist/{chunk-SV3ZPQRS.js → chunk-LLHJODMO.js} +2 -2
- package/dist/{chunk-DXKC3WUM.js → chunk-M5ARBNKW.js} +2 -2
- package/dist/{chunk-BHHHYKTD.js → chunk-MF3W2PJ7.js} +2 -2
- package/dist/{chunk-D4INQE6X.js → chunk-MUXNVLZO.js} +2 -2
- package/dist/{chunk-XGECMN4V.js → chunk-NEKE5PRJ.js} +2 -2
- package/dist/{chunk-RVE2XO2W.js → chunk-NG562U46.js} +2 -2
- package/dist/chunk-ODXNPBKO.js +2 -0
- package/dist/chunk-ODXNPBKO.js.map +1 -0
- package/dist/{chunk-XXZFBSLJ.js → chunk-PJ6KPGIE.js} +2 -2
- package/dist/{chunk-QBBJUUYN.js → chunk-PTPNWD53.js} +2 -2
- package/dist/{chunk-K5RHOXWA.js → chunk-Q2OGLLBA.js} +2 -2
- package/dist/{chunk-K5RHOXWA.js.map → chunk-Q2OGLLBA.js.map} +1 -1
- package/dist/{chunk-GNRLGRTN.js → chunk-QI4MWDJS.js} +2 -2
- package/dist/{chunk-ULTDVIA4.js → chunk-QIAK5VU7.js} +2 -2
- package/dist/{chunk-EQLO2SSM.js → chunk-QZFKUU4A.js} +2 -2
- package/dist/{chunk-QN4ONV3W.js → chunk-R2JJUSD3.js} +2 -2
- package/dist/chunk-SC7YWKOW.js +2 -0
- package/dist/{chunk-NKKKI6O4.js → chunk-TBGXSWRX.js} +2 -2
- package/dist/{chunk-PRJ2IR3N.js → chunk-TCFTRE7G.js} +2 -2
- package/dist/chunk-TJLXZ2ZK.js +2 -0
- package/dist/chunk-TJLXZ2ZK.js.map +1 -0
- package/dist/{chunk-WEMLZAC6.js → chunk-TOOCSXXQ.js} +2 -2
- package/dist/chunk-UEPT6OBL.js +2 -0
- package/dist/chunk-UEPT6OBL.js.map +1 -0
- package/dist/chunk-UI4AZZD5.js +2 -0
- package/dist/chunk-UI4AZZD5.js.map +1 -0
- package/dist/{chunk-FCVOGSVO.js → chunk-UOYIAURS.js} +2 -2
- package/dist/{chunk-PPP6XC3U.js → chunk-UW3TUDJR.js} +2 -2
- package/dist/chunk-UYGDMJF2.js +2 -0
- package/dist/chunk-UYGDMJF2.js.map +1 -0
- package/dist/{chunk-XSIS74VG.js → chunk-V5EBEJON.js} +2 -2
- package/dist/{chunk-364BWIGF.js → chunk-V62JQXIC.js} +2 -2
- package/dist/{chunk-A7KFLPTA.js → chunk-VNHXMVTF.js} +2 -2
- package/dist/{chunk-SUBBGKWN.js → chunk-VTWVHO4F.js} +2 -2
- package/dist/{chunk-JN73IKCN.js → chunk-VYZOGC65.js} +2 -2
- package/dist/{chunk-6JARQJWW.js → chunk-W2WHWA5J.js} +2 -2
- package/dist/{chunk-3GKLBQMY.js → chunk-W5MWHAAI.js} +2 -2
- package/dist/{chunk-5DORW3VM.js → chunk-W7MCRAQ4.js} +2 -2
- package/dist/{chunk-2CEH6UIC.js → chunk-WMJP2BO5.js} +2 -2
- package/dist/{chunk-S62CXCJB.js → chunk-XNDOPTDJ.js} +2 -2
- package/dist/{chunk-5QEW5VR2.js → chunk-XV7SBFS5.js} +2 -2
- package/dist/chunk-XYCFKCVZ.js +2 -0
- package/dist/chunk-XYCFKCVZ.js.map +1 -0
- package/dist/{chunk-TLMAGDWY.js → chunk-Y34DKDJI.js} +2 -2
- package/dist/{chunk-RI6WVJAN.js → chunk-YD54NZIX.js} +2 -2
- package/dist/{chunk-Y3LCGYNZ.js → chunk-YQOONCKH.js} +2 -2
- package/dist/chunk-YWJS3RL5.js +2 -0
- package/dist/chunk-YWJS3RL5.js.map +1 -0
- package/dist/{chunk-NMCYAKUO.js → chunk-YYJH3TPJ.js} +2 -2
- package/dist/chunk-Z23FQVGN.js +1 -0
- package/dist/default-components.d.ts +2 -2
- package/dist/default-components.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentConfirmationForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.d.ts +3 -3
- package/dist/flows/ContractAmendment/ContractAmendmentFlow.js +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.d.ts +1 -1
- package/dist/flows/ContractAmendment/ContractAmendmentForm.js +1 -1
- package/dist/flows/ContractAmendment/context.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.d.ts +3 -3
- package/dist/flows/ContractAmendment/hooks.js +1 -1
- package/dist/flows/ContractAmendment/index.d.ts +3 -3
- package/dist/flows/ContractAmendment/index.js +1 -1
- package/dist/flows/ContractAmendment/types.d.ts +2 -2
- package/dist/flows/ContractAmendment/utils.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +5 -4
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewHeader.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStatement.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/components/EligibilityQuestionnaireStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +5 -4
- 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 +2 -1
- package/dist/flows/ContractorOnboarding/constants.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/hooks.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/jsfModify.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/jsfModify.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +6 -5
- package/dist/flows/ContractorOnboarding/utils.d.ts +5 -4
- package/dist/flows/ContractorOnboarding/utils.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +2 -2
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +2 -2
- package/dist/flows/CostCalculator/api.d.ts +2 -2
- package/dist/flows/CostCalculator/api.js +1 -1
- package/dist/flows/CostCalculator/components/SalaryField.d.ts +2 -2
- package/dist/flows/CostCalculator/components/SalaryField.js +1 -1
- package/dist/flows/CostCalculator/context.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.d.ts +3 -3
- package/dist/flows/CostCalculator/hooks.js +1 -1
- package/dist/flows/CostCalculator/index.d.ts +3 -3
- package/dist/flows/CostCalculator/index.js +1 -1
- package/dist/flows/CostCalculator/types.d.ts +2 -2
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/CreateCompany/CreateCompany.d.ts +4 -4
- package/dist/flows/CreateCompany/CreateCompany.js +1 -1
- package/dist/flows/CreateCompany/api.d.ts +2 -2
- package/dist/flows/CreateCompany/api.js +1 -1
- package/dist/flows/CreateCompany/components/AddressDetailsStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/AddressDetailsStep.js +1 -1
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.d.ts +4 -4
- package/dist/flows/CreateCompany/components/CompanyBasicInformationStep.js +1 -1
- package/dist/flows/CreateCompany/components/CreateCompanyForm.d.ts +2 -2
- package/dist/flows/CreateCompany/components/CreateCompanyForm.js +1 -1
- package/dist/flows/CreateCompany/context.d.ts +4 -4
- package/dist/flows/CreateCompany/hooks.d.ts +4 -4
- package/dist/flows/CreateCompany/hooks.js +1 -1
- package/dist/flows/CreateCompany/index.d.ts +4 -4
- package/dist/flows/CreateCompany/index.js +1 -1
- package/dist/flows/CreateCompany/types.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +7 -6
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +22 -5
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +5 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +5 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +5 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.d.ts +5 -0
- package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.js +2 -0
- package/dist/flows/Onboarding/components/EmploymentAgreementInfoContent.js.map +1 -0
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.d.ts +5 -4
- package/dist/flows/Onboarding/components/EngagementAgreementDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +5 -4
- package/dist/flows/Onboarding/components/OnboardingForm.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingInvite.d.ts +3 -3
- package/dist/flows/Onboarding/components/OnboardingInvite.js +1 -1
- package/dist/flows/Onboarding/components/PreOnboardingRequirements.d.ts +2 -2
- package/dist/flows/Onboarding/components/PreOnboardingRequirements.js +1 -1
- package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.d.ts +5 -0
- package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.js +2 -0
- package/dist/flows/Onboarding/components/PreviewEmploymentAgreementStep.js.map +1 -0
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +5 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +5 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +13 -4
- package/dist/flows/Onboarding/hooks.d.ts +5 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +7 -5
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +5 -4
- package/dist/flows/Onboarding/utils.d.ts +5 -4
- package/dist/flows/Onboarding/utils.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.d.ts +3 -3
- package/dist/flows/PayrollAdminOnboarding/PayrollAdminOnboardingFlow.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/context.d.ts +3 -3
- package/dist/flows/PayrollAdminOnboarding/hooks.d.ts +3 -3
- package/dist/flows/PayrollAdminOnboarding/hooks.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/index.d.ts +3 -3
- package/dist/flows/PayrollAdminOnboarding/index.js +1 -1
- package/dist/flows/PayrollAdminOnboarding/types.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/PayrollEmployeeOnboardingFlow.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/context.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/hooks.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/hooks.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/index.d.ts +3 -3
- package/dist/flows/PayrollEmployeeOnboarding/index.js +1 -1
- package/dist/flows/PayrollEmployeeOnboarding/types.d.ts +3 -3
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.js +1 -1
- package/dist/flows/Termination/EmployeeComunicationForm.d.ts +4 -4
- package/dist/flows/Termination/EmployeeComunicationForm.js +1 -1
- package/dist/flows/Termination/PaidTimeOffForm.d.ts +4 -4
- package/dist/flows/Termination/PaidTimeOffForm.js +1 -1
- package/dist/flows/Termination/TerminationDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationDetailsForm.js +1 -1
- package/dist/flows/Termination/TerminationFlow.d.ts +4 -4
- package/dist/flows/Termination/TerminationFlow.js +1 -1
- package/dist/flows/Termination/TerminationForm.d.ts +4 -4
- package/dist/flows/Termination/TerminationForm.js +1 -1
- package/dist/flows/Termination/api.d.ts +6 -5
- package/dist/flows/Termination/api.js +1 -1
- package/dist/flows/Termination/components/AcknowledgeInformation/AcknowledgeInformationFees.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +7 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.d.ts +7 -6
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOffContainer.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/types.d.ts +7 -6
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +1 -1
- package/dist/flows/Termination/context.d.ts +4 -4
- package/dist/flows/Termination/hooks.d.ts +4 -4
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +7 -6
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.d.ts +4 -4
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/Termination/utils.d.ts +4 -4
- package/dist/flows/types.d.ts +2 -2
- package/dist/flows/utils.d.ts +2 -2
- package/dist/index.d.ts +22 -14
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +3 -3
- package/dist/internals.js +1 -1
- package/dist/{mutations-CPefKCdC.d.ts → mutations-DZjKx4tI.d.ts} +1 -1
- package/dist/{remoteFlows-B1M2nnXU.d.ts → remoteFlows-C4Vv3_7t.d.ts} +2 -2
- package/dist/{types-Cfw5Vxrf.d.ts → types---jTQSYP.d.ts} +1 -1
- package/dist/{types-C-GzLCum.d.ts → types-5jgrwYf3.d.ts} +2 -2
- package/dist/{types-Rq3fYvCx.d.ts → types-5vsf9upM.d.ts} +21 -6
- package/dist/{types-CMhsLd2z.d.ts → types-BDhuq1UF.d.ts} +4 -4
- package/dist/{types-_qjUD5IB.d.ts → types-Buo22VR2.d.ts} +3 -3
- package/dist/{types-DnykEbcW.d.ts → types-Cjy498SD.d.ts} +1 -1
- package/dist/{types-C_FiV7L-.d.ts → types-STTuXABa.d.ts} +1 -1
- package/dist/{types.gen-BvwuV8Xa.d.ts → types.gen-CTQ9C-mR.d.ts} +10 -2
- package/dist/{utils-D16Gaxa8.d.ts → utils-B2zQN-4q.d.ts} +1 -1
- package/package.json +2 -2
- package/dist/CheckboxFieldDefault-UVDNXDAZ.js +0 -2
- package/dist/CountryFieldDefault-7BB2T3HH.js +0 -2
- package/dist/DatePickerFieldDefault-PKERP27N.js +0 -2
- package/dist/RadioGroupFieldDefault-KOQPKYX4.js +0 -2
- package/dist/TextAreaFieldDefault-W5ZL7LM7.js +0 -2
- package/dist/chunk-54BUOIAG.js +0 -2
- package/dist/chunk-54BUOIAG.js.map +0 -1
- package/dist/chunk-5MPW7QWT.js +0 -2
- package/dist/chunk-AMT36AZO.js +0 -2
- package/dist/chunk-AMT36AZO.js.map +0 -1
- package/dist/chunk-D6MFIXSJ.js +0 -2
- package/dist/chunk-D6MFIXSJ.js.map +0 -1
- package/dist/chunk-GULCZWSK.js +0 -1
- package/dist/chunk-KOJMYRXN.js +0 -2
- package/dist/chunk-KOJMYRXN.js.map +0 -1
- package/dist/chunk-M7QPV7VS.js +0 -8
- package/dist/chunk-M7QPV7VS.js.map +0 -1
- package/dist/chunk-MPB6TYP2.js +0 -2
- package/dist/chunk-MPB6TYP2.js.map +0 -1
- package/dist/chunk-NZPB425W.js +0 -2
- package/dist/chunk-NZPB425W.js.map +0 -1
- package/dist/chunk-PYOJLGIL.js +0 -2
- package/dist/chunk-PYOJLGIL.js.map +0 -1
- /package/dist/{CheckboxFieldDefault-UVDNXDAZ.js.map → CheckboxFieldDefault-H6DFZZRM.js.map} +0 -0
- /package/dist/{CountryFieldDefault-7BB2T3HH.js.map → CountryFieldDefault-ZPDRAEWF.js.map} +0 -0
- /package/dist/{DatePickerFieldDefault-PKERP27N.js.map → DatePickerFieldDefault-BSMELDX2.js.map} +0 -0
- /package/dist/{RadioGroupFieldDefault-KOQPKYX4.js.map → RadioGroupFieldDefault-SGZXCPSL.js.map} +0 -0
- /package/dist/{TextAreaFieldDefault-W5ZL7LM7.js.map → TextAreaFieldDefault-TTCPVIBZ.js.map} +0 -0
- /package/dist/{chunk-MK7NAW6K.js.map → chunk-32ERURM2.js.map} +0 -0
- /package/dist/{chunk-3VL4JCTR.js.map → chunk-34U3WJ75.js.map} +0 -0
- /package/dist/{chunk-FDRDJYLE.js.map → chunk-3EYFXA3W.js.map} +0 -0
- /package/dist/{chunk-K4VSUMEK.js.map → chunk-3YTML5RG.js.map} +0 -0
- /package/dist/{chunk-7PWMPORC.js.map → chunk-4TNJXIDB.js.map} +0 -0
- /package/dist/{chunk-Z766UAJV.js.map → chunk-54Z4QJ3Q.js.map} +0 -0
- /package/dist/{chunk-IC2BQMCD.js.map → chunk-5DGTMYWR.js.map} +0 -0
- /package/dist/{chunk-QXVSZGES.js.map → chunk-6P536SW2.js.map} +0 -0
- /package/dist/{chunk-BVP2GOFZ.js.map → chunk-6Y5WCCMH.js.map} +0 -0
- /package/dist/{chunk-5SMVSM3S.js.map → chunk-75XZ4KIX.js.map} +0 -0
- /package/dist/{chunk-VCNVYTNL.js.map → chunk-76VZ4ARW.js.map} +0 -0
- /package/dist/{chunk-M4DEXIKU.js.map → chunk-7BPB4PXN.js.map} +0 -0
- /package/dist/{chunk-ZT4G43T6.js.map → chunk-7FCKRGGD.js.map} +0 -0
- /package/dist/{chunk-BJDI3F3E.js.map → chunk-AC4MDLIM.js.map} +0 -0
- /package/dist/{chunk-Q6SKWBCE.js.map → chunk-AXDL47BE.js.map} +0 -0
- /package/dist/{chunk-UCBVPJDT.js.map → chunk-DNAPYU5I.js.map} +0 -0
- /package/dist/{chunk-AXOQAXG2.js.map → chunk-DPXSK2UQ.js.map} +0 -0
- /package/dist/{chunk-EJBZ2A6J.js.map → chunk-DRAQLW6C.js.map} +0 -0
- /package/dist/{chunk-7LA5BB2B.js.map → chunk-ELM6CPRT.js.map} +0 -0
- /package/dist/{chunk-HOS6KZEY.js.map → chunk-ENV2K73V.js.map} +0 -0
- /package/dist/{chunk-75SQ56WH.js.map → chunk-G556HMVA.js.map} +0 -0
- /package/dist/{chunk-TXAYTR6N.js.map → chunk-HAACNERA.js.map} +0 -0
- /package/dist/{chunk-2U3YEDMJ.js.map → chunk-HK4LGSS7.js.map} +0 -0
- /package/dist/{chunk-NX2H524O.js.map → chunk-HSVLNS27.js.map} +0 -0
- /package/dist/{chunk-LSYVKGY6.js.map → chunk-ITDU6XPR.js.map} +0 -0
- /package/dist/{chunk-WKDDTXQF.js.map → chunk-JBQOE3XL.js.map} +0 -0
- /package/dist/{chunk-ICC3M37M.js.map → chunk-JFPOX7SW.js.map} +0 -0
- /package/dist/{chunk-QD5RXKCU.js.map → chunk-JSTCIALQ.js.map} +0 -0
- /package/dist/{chunk-CTSRJIJT.js.map → chunk-KN2Q5NOL.js.map} +0 -0
- /package/dist/{chunk-W2C6CHUD.js.map → chunk-KXQVUSLI.js.map} +0 -0
- /package/dist/{chunk-IBAXAO5O.js.map → chunk-KY4PEPYW.js.map} +0 -0
- /package/dist/{chunk-HIYSMDGT.js.map → chunk-LD5KN4ZF.js.map} +0 -0
- /package/dist/{chunk-QKTF3ZBO.js.map → chunk-LIPJXO2R.js.map} +0 -0
- /package/dist/{chunk-SV3ZPQRS.js.map → chunk-LLHJODMO.js.map} +0 -0
- /package/dist/{chunk-DXKC3WUM.js.map → chunk-M5ARBNKW.js.map} +0 -0
- /package/dist/{chunk-BHHHYKTD.js.map → chunk-MF3W2PJ7.js.map} +0 -0
- /package/dist/{chunk-D4INQE6X.js.map → chunk-MUXNVLZO.js.map} +0 -0
- /package/dist/{chunk-XGECMN4V.js.map → chunk-NEKE5PRJ.js.map} +0 -0
- /package/dist/{chunk-RVE2XO2W.js.map → chunk-NG562U46.js.map} +0 -0
- /package/dist/{chunk-XXZFBSLJ.js.map → chunk-PJ6KPGIE.js.map} +0 -0
- /package/dist/{chunk-QBBJUUYN.js.map → chunk-PTPNWD53.js.map} +0 -0
- /package/dist/{chunk-GNRLGRTN.js.map → chunk-QI4MWDJS.js.map} +0 -0
- /package/dist/{chunk-ULTDVIA4.js.map → chunk-QIAK5VU7.js.map} +0 -0
- /package/dist/{chunk-EQLO2SSM.js.map → chunk-QZFKUU4A.js.map} +0 -0
- /package/dist/{chunk-QN4ONV3W.js.map → chunk-R2JJUSD3.js.map} +0 -0
- /package/dist/{chunk-5MPW7QWT.js.map → chunk-SC7YWKOW.js.map} +0 -0
- /package/dist/{chunk-NKKKI6O4.js.map → chunk-TBGXSWRX.js.map} +0 -0
- /package/dist/{chunk-PRJ2IR3N.js.map → chunk-TCFTRE7G.js.map} +0 -0
- /package/dist/{chunk-WEMLZAC6.js.map → chunk-TOOCSXXQ.js.map} +0 -0
- /package/dist/{chunk-FCVOGSVO.js.map → chunk-UOYIAURS.js.map} +0 -0
- /package/dist/{chunk-PPP6XC3U.js.map → chunk-UW3TUDJR.js.map} +0 -0
- /package/dist/{chunk-XSIS74VG.js.map → chunk-V5EBEJON.js.map} +0 -0
- /package/dist/{chunk-364BWIGF.js.map → chunk-V62JQXIC.js.map} +0 -0
- /package/dist/{chunk-A7KFLPTA.js.map → chunk-VNHXMVTF.js.map} +0 -0
- /package/dist/{chunk-SUBBGKWN.js.map → chunk-VTWVHO4F.js.map} +0 -0
- /package/dist/{chunk-JN73IKCN.js.map → chunk-VYZOGC65.js.map} +0 -0
- /package/dist/{chunk-6JARQJWW.js.map → chunk-W2WHWA5J.js.map} +0 -0
- /package/dist/{chunk-3GKLBQMY.js.map → chunk-W5MWHAAI.js.map} +0 -0
- /package/dist/{chunk-5DORW3VM.js.map → chunk-W7MCRAQ4.js.map} +0 -0
- /package/dist/{chunk-2CEH6UIC.js.map → chunk-WMJP2BO5.js.map} +0 -0
- /package/dist/{chunk-S62CXCJB.js.map → chunk-XNDOPTDJ.js.map} +0 -0
- /package/dist/{chunk-5QEW5VR2.js.map → chunk-XV7SBFS5.js.map} +0 -0
- /package/dist/{chunk-TLMAGDWY.js.map → chunk-Y34DKDJI.js.map} +0 -0
- /package/dist/{chunk-RI6WVJAN.js.map → chunk-YD54NZIX.js.map} +0 -0
- /package/dist/{chunk-Y3LCGYNZ.js.map → chunk-YQOONCKH.js.map} +0 -0
- /package/dist/{chunk-NMCYAKUO.js.map → chunk-YYJH3TPJ.js.map} +0 -0
- /package/dist/{chunk-GULCZWSK.js.map → chunk-Z23FQVGN.js.map} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as o}from"./chunk-TC7EQZJK.js";import{a as m}from"./chunk-NX7MM6XR.js";import{a as e}from"./chunk-ZXGAFQXW.js";import{a as i}from"./chunk-LMYJ6V44.js";var p={employee_communication:o,termination_details:e,paid_time_off:m,additional_information:i};export{p as a};
|
|
2
|
+
//# sourceMappingURL=chunk-SC7YWKOW.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Q as i,Z as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{Q as i,Z as s}from"./chunk-GZUP2IE6.js";import{e as a}from"./chunk-H2O4CVKF.js";import{a as r}from"./chunk-P37U34EQ.js";import{useQuery as o}from"@tanstack/react-query";var u=r(t=>{let{client:n}=a();return o({queryKey:["gp-onboarding-steps",t],enabled:!!t,retry:!1,queryFn:r(async()=>{let e=await s({client:n,headers:{Authorization:""},path:{employment_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch onboarding steps");return e.data},"queryFn"),select:r(e=>e.data.steps,"select")})},"useGPOnboardingSteps"),c=r(t=>{let{client:n}=a();return o({queryKey:["gp-legal-entities",t],enabled:!!t,retry:!1,queryFn:r(async()=>{let e=await i({client:n,headers:{Authorization:""},path:{company_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch legal entities");return e.data},"queryFn"),select:r(e=>(e.data?.legal_entities??[]).filter(l=>l.global_payroll_enabled),"select")})},"useGPLegalEntities");export{u as a,c as b};
|
|
2
|
+
//# sourceMappingURL=chunk-TBGXSWRX.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-75XZ4KIX.js";import{a as m}from"./chunk-JBQOE3XL.js";import{a as p}from"./chunk-IFIJ7OVJ.js";import{a as e}from"./chunk-76ZDXC2T.js";import{a as r}from"./chunk-JSTCIALQ.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-TCFTRE7G.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as i}from"./chunk-P37U34EQ.js";function m(t={}){let o=[{name:"select_country",label:"Select Country",visible:!!t?.includeSelectCountry},{name:"basic_information",label:"Basic Information",visible:!0},{name:"engagement_agreement_details",label:"Engagement Agreement Details",visible:!!t?.includeEngagementAgreementDetails},{name:"contract_details",label:"Contract Details",visible:!0},{name:"benefits",label:"Benefits",visible:!0},{name:"employment_agreement_preview",label:"Preview Employment Agreement",visible:!!t?.useEAPreview},{name:"review",label:"Review",visible:!0}],a=t.useDynamicSteps?o.map((e,n)=>({name:e.name,index:n,label:e.label,visible:e.visible})):o.filter(e=>e.visible).map((e,n)=>({name:e.name,index:n,label:e.label,visible:e.visible}));return{steps:a.reduce((e,n)=>(e[n.name]={index:n.index,name:n.name,visible:n.visible},e),{}),stepsArray:a}}i(m,"buildSteps");var c=["initiated","invited","created_awaiting_reserve","created_reserve_paid"],b=["initiated","created_awaiting_reserve","invited"],s=1,l=i(()=>s,"getDefaultContractDetailsSchemaVersion"),p=i((t,o)=>{let a=t?.jsonSchemaVersionByCountry,r=o?a?.[o]?.contract_details:void 0;return r||l()},"getContractDetailsSchemaVersion"),u=i(t=>t?.jsonSchemaVersion?.employment_basic_information||s,"getBasicInformationSchemaVersion"),d=i(t=>t?.jsonSchemaVersion?.benefit_offers_form_schema||s,"getBenefitOffersSchemaVersion");export{m as a,c as b,b as c,s as d,p as e,u as f,d as g};
|
|
2
|
+
//# sourceMappingURL=chunk-TJLXZ2ZK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/utils.ts"],"sourcesContent":["import { Employment, OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport { Step } from '@/src/flows/useStepState';\n\nexport type StepKeys =\n | 'select_country'\n | 'basic_information'\n | 'engagement_agreement_details'\n | 'contract_details'\n | 'benefits'\n | 'employment_agreement_preview'\n | 'review';\n\ntype StepConfig = {\n includeSelectCountry?: boolean;\n includeEngagementAgreementDetails?: boolean;\n useDynamicSteps?: boolean;\n useEAPreview?: boolean;\n};\n\nexport function buildSteps(config: StepConfig = {}) {\n const stepDefinitions: Array<{\n name: StepKeys;\n label: string;\n visible: boolean;\n }> = [\n {\n name: 'select_country',\n label: 'Select Country',\n visible: Boolean(config?.includeSelectCountry),\n },\n {\n name: 'basic_information',\n label: 'Basic Information',\n visible: true,\n },\n {\n name: 'engagement_agreement_details',\n label: 'Engagement Agreement Details',\n visible: Boolean(config?.includeEngagementAgreementDetails),\n },\n {\n name: 'contract_details',\n label: 'Contract Details',\n visible: true,\n },\n {\n name: 'benefits',\n label: 'Benefits',\n visible: true,\n },\n {\n name: 'employment_agreement_preview',\n label: 'Preview Employment Agreement',\n visible: Boolean(config?.useEAPreview),\n },\n {\n name: 'review',\n label: 'Review',\n visible: true,\n },\n ];\n\n // When useDynamicSteps is false (default/legacy behavior):\n // - Filter out hidden steps first\n // - Assign sequential indices (0, 1, 2, 3...)\n // - This maintains backwards compatibility with existing implementations\n //\n // When useDynamicSteps is true (new behavior):\n // - Keep all steps including hidden ones\n // - Preserve original indices even for hidden steps\n // - Consumers must filter by `visible` property\n const stepsArray = config.useDynamicSteps\n ? stepDefinitions.map((step, index) => ({\n name: step.name,\n index,\n label: step.label,\n visible: step.visible,\n }))\n : stepDefinitions\n .filter((step) => step.visible)\n .map((step, index) => ({\n name: step.name,\n index,\n label: step.label,\n visible: step.visible,\n }));\n\n const steps = stepsArray.reduce(\n (acc, step) => {\n acc[step.name] = {\n index: step.index,\n name: step.name,\n visible: step.visible,\n };\n return acc;\n },\n {} as Record<string, Step<StepKeys>>,\n );\n\n return { steps, stepsArray };\n}\n\n/**\n * Array of employment statuses that are allowed to proceed to the review step.\n * These statuses indicate that the employment is in a final state and the employment cannot be modified further.\n * @type {Employment['status'][]}\n * @constant\n */\nexport const reviewStepAllowedEmploymentStatus: Employment['status'][] = [\n 'initiated',\n 'invited',\n 'created_awaiting_reserve',\n 'created_reserve_paid',\n];\n\nexport const disabledInviteButtonEmploymentStatus: Employment['status'][] = [\n 'initiated',\n 'created_awaiting_reserve',\n 'invited',\n];\n\nexport const DEFAULT_VERSION = 1;\n\n/**\n * Gets the default (recommended) contract details schema version for a country\n */\nconst getDefaultContractDetailsSchemaVersion = (): number => {\n return DEFAULT_VERSION;\n};\n\n/**\n * Resolves the effective contract details schema version for a country\n *\n * @param options - The flow options containing version configurations\n * @param countryCode - The country code to resolve version for\n * @returns The effective jsonSchemaVersion configuration\n */\nexport const getContractDetailsSchemaVersion = (\n options: OnboardingFlowProps['options'],\n countryCode: string | null,\n) => {\n const jsonSchemaVersionByCountry = options?.jsonSchemaVersionByCountry;\n const countrySpecificVersion = countryCode\n ? jsonSchemaVersionByCountry?.[countryCode]?.contract_details\n : undefined;\n\n const requestedVersion = countrySpecificVersion\n ? countrySpecificVersion\n : getDefaultContractDetailsSchemaVersion();\n\n return requestedVersion;\n};\n\n/**\n * Gets the basic information schema version from options\n * @param options - The flow options containing version configurations\n * @returns The jsonSchemaVersion for basic information or default\n */\nexport const getBasicInformationSchemaVersion = (\n options: OnboardingFlowProps['options'],\n): number | 'latest' => {\n return (\n options?.jsonSchemaVersion?.employment_basic_information || DEFAULT_VERSION\n );\n};\n\n/**\n * Gets the benefit offers schema version from options\n * @param options - The flow options containing version configurations\n * @returns The jsonSchemaVersion for benefit offers or undefined if not set\n */\nexport const getBenefitOffersSchemaVersion = (\n options: OnboardingFlowProps['options'],\n): number | 'latest' => {\n return (\n options?.jsonSchemaVersion?.benefit_offers_form_schema || DEFAULT_VERSION\n );\n};\n"],"mappings":"wCAmBO,SAASA,EAAWC,EAAqB,CAAC,EAAG,CAClD,IAAMC,EAID,CACH,CACE,KAAM,iBACN,MAAO,iBACP,QAAS,EAAQD,GAAQ,oBAC3B,EACA,CACE,KAAM,oBACN,MAAO,oBACP,QAAS,EACX,EACA,CACE,KAAM,+BACN,MAAO,+BACP,QAAS,EAAQA,GAAQ,iCAC3B,EACA,CACE,KAAM,mBACN,MAAO,mBACP,QAAS,EACX,EACA,CACE,KAAM,WACN,MAAO,WACP,QAAS,EACX,EACA,CACE,KAAM,+BACN,MAAO,+BACP,QAAS,EAAQA,GAAQ,YAC3B,EACA,CACE,KAAM,SACN,MAAO,SACP,QAAS,EACX,CACF,EAWME,EAAaF,EAAO,gBACtBC,EAAgB,IAAI,CAACE,EAAMC,KAAW,CACpC,KAAMD,EAAK,KACX,MAAAC,EACA,MAAOD,EAAK,MACZ,QAASA,EAAK,OAChB,EAAE,EACFF,EACG,OAAQE,GAASA,EAAK,OAAO,EAC7B,IAAI,CAACA,EAAMC,KAAW,CACrB,KAAMD,EAAK,KACX,MAAAC,EACA,MAAOD,EAAK,MACZ,QAASA,EAAK,OAChB,EAAE,EAcR,MAAO,CAAE,MAZKD,EAAW,OACvB,CAACG,EAAKF,KACJE,EAAIF,EAAK,IAAI,EAAI,CACf,MAAOA,EAAK,MACZ,KAAMA,EAAK,KACX,QAASA,EAAK,OAChB,EACOE,GAET,CAAC,CACH,EAEgB,WAAAH,CAAW,CAC7B,CAjFgBI,EAAAP,EAAA,cAyFT,IAAMQ,EAA4D,CACvE,YACA,UACA,2BACA,sBACF,EAEaC,EAA+D,CAC1E,YACA,2BACA,SACF,EAEaC,EAAkB,EAKzBC,EAAyCJ,EAAA,IACtCG,EADsC,0CAWlCE,EAAkCL,EAAA,CAC7CM,EACAC,IACG,CACH,IAAMC,EAA6BF,GAAS,2BACtCG,EAAyBF,EAC3BC,IAA6BD,CAAW,GAAG,iBAC3C,OAMJ,OAJyBE,GAErBL,EAAuC,CAG7C,EAd+C,mCAqBlCM,EAAmCV,EAC9CM,GAGEA,GAAS,mBAAmB,8BAAgCH,EAJhB,oCAanCQ,EAAgCX,EAC3CM,GAGEA,GAAS,mBAAmB,4BAA8BH,EAJjB","names":["buildSteps","config","stepDefinitions","stepsArray","step","index","acc","__name","reviewStepAllowedEmploymentStatus","disabledInviteButtonEmploymentStatus","DEFAULT_VERSION","getDefaultContractDetailsSchemaVersion","getContractDetailsSchemaVersion","options","countryCode","jsonSchemaVersionByCountry","countrySpecificVersion","getBasicInformationSchemaVersion","getBenefitOffersSchemaVersion"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as y}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as y}from"./chunk-HAACNERA.js";import{a as l,c as m}from"./chunk-2Q462FT7.js";import{c}from"./chunk-Y3CJRZLA.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as N}from"react";import{Fragment as b,jsx as v,jsxs as C}from"react/jsx-runtime";var R=t(({currencies:{from:d,to:F},shouldSwapOrder:s,salary_conversion_properties:a,conversionType:_="no_spread",defaultValue:r,...e})=>{let{setValue:n,getValues:i}=c(),f={label:a?.label||"Salary conversion",description:a?.description||C(b,{children:["The conversion is based on the Remote FX rate."," ",v(m,{className:"text-sm",zendeskId:l.remoteFxRate,children:"Learn more \u2197"})]})},g=s?"salary_conversion":e.name,u=s?e.name:"salary_conversion";return N(()=>{if(s){let o=i(e.name);o?(n("salary_conversion",o),n("salary_converted","salary_conversion")):r&&(n("salary_conversion",r),n("salary_converted","salary_conversion"))}else{let o=i("salary_conversion");o?(n(e.name,o),n("salary_converted",e.name)):r&&(n(e.name,r),n("salary_converted",e.name))}},[s,r,n,i,e.name]),v(y,{...e,sourceCurrency:d,targetCurrency:F,mainFieldName:g,conversionFieldName:u,conversionProperties:f,classNamePrefix:"RemoteFlows-Salary",conversionType:_})},"SalaryField");export{R as a};
|
|
2
|
+
//# sourceMappingURL=chunk-TOOCSXXQ.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as m,b as s}from"./chunk-2Q462FT7.js";import{n as e}from"./chunk-G2LZFGZA.js";import{a as t}from"./chunk-P37U34EQ.js";import{Fragment as a,jsx as n,jsxs as o}from"react/jsx-runtime";var l=t(()=>o(a,{children:[n("div",{className:e("RemoteFlows__EmploymentAgreementInfoContent__InfoBox"),children:n("p",{className:e("RemoteFlows__EmploymentAgreementInfoContent__InfoBoxText"),children:"You are previewing a draft version of our employment agreement template for this specific hire in this specific country, based on the selections you made on the previous screens."})}),n("p",{className:e("RemoteFlows__EmploymentAgreementInfoContent__Description"),children:"Remote's agreements are drafted by local employment and labor law experts to ensure compliance, balance, and efficiency."}),o("div",{children:[n("p",{className:e("RemoteFlows__EmploymentAgreementInfoContent__WarningTitle"),children:"We strongly discourage customizations or redlining."}),n("p",{className:e("RemoteFlows__EmploymentAgreementInfoContent__Description"),children:"Modifying agreements can:"}),o("ul",{className:e("RemoteFlows__EmploymentAgreementInfoContent__List list-disc list-inside"),children:[n("li",{className:e("RemoteFlows__EmploymentAgreementInfoContent__ListItem"),children:"Create compliance risks"}),n("li",{className:e("RemoteFlows__EmploymentAgreementInfoContent__ListItem"),children:"Jeopardize enforceability"}),n("li",{className:e("RemoteFlows__EmploymentAgreementInfoContent__ListItem"),children:"Increase the risk of misemployment"})]})]}),n("p",{className:e("RemoteFlows__EmploymentAgreementInfoContent__Description"),children:"If you have questions or believe a change is necessary, please do not invite the employee. Instead, save this invitation as a draft and contact your Account Executive or Customer Success Manager at Remote."}),o("p",{className:e("RemoteFlows__EmploymentAgreementInfoContent__Description"),children:["If neither is available, please reach out to"," ",n("a",{href:"mailto:help@remote.com",className:e("RemoteFlows__EmploymentAgreementInfoContent__Link"),target:"_blank",rel:"noopener noreferrer",children:"help@remote.com \u2197"}),". Our Legal team will review and, where possible, align your needs with local compliance requirements, before inviting the employee, ensuring a smooth onboarding process."]}),o("p",{className:e("RemoteFlows__EmploymentAgreementInfoContent__Description"),children:["For guidance, see our"," ",n("a",{className:e("RemoteFlows__EmploymentAgreementInfoContent__Link"),href:s(m.employmentAgreements),target:"_blank",rel:"noopener noreferrer",children:"Agreement Engagement Guide \u2197"})," ","to understand what can (and can't) be modified."]})]}),"EmploymentAgreementInfoContent");export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-UEPT6OBL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/components/EmploymentAgreementInfoContent.tsx"],"sourcesContent":["import {\n buildZendeskURL,\n zendeskArticles,\n} from '@/src/components/shared/zendesk-drawer/utils';\nimport { cn } from '@/src/internals';\n\nexport const EmploymentAgreementInfoContent = () => {\n return (\n <>\n <div\n className={cn('RemoteFlows__EmploymentAgreementInfoContent__InfoBox')}\n >\n <p\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__InfoBoxText',\n )}\n >\n You are previewing a draft version of our employment agreement\n template for this specific hire in this specific country, based on the\n selections you made on the previous screens.\n </p>\n </div>\n\n <p\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__Description',\n )}\n >\n Remote's agreements are drafted by local employment and labor law\n experts to ensure compliance, balance, and efficiency.\n </p>\n\n <div>\n <p\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__WarningTitle',\n )}\n >\n We strongly discourage customizations or redlining.\n </p>\n <p\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__Description',\n )}\n >\n Modifying agreements can:\n </p>\n <ul\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__List list-disc list-inside',\n )}\n >\n <li\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__ListItem',\n )}\n >\n Create compliance risks\n </li>\n <li\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__ListItem',\n )}\n >\n Jeopardize enforceability\n </li>\n <li\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__ListItem',\n )}\n >\n Increase the risk of misemployment\n </li>\n </ul>\n </div>\n\n <p\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__Description',\n )}\n >\n If you have questions or believe a change is necessary, please do not\n invite the employee. Instead, save this invitation as a draft and\n contact your Account Executive or Customer Success Manager at Remote.\n </p>\n\n <p\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__Description',\n )}\n >\n If neither is available, please reach out to{' '}\n <a\n href='mailto:help@remote.com'\n className={cn('RemoteFlows__EmploymentAgreementInfoContent__Link')}\n target='_blank'\n rel='noopener noreferrer'\n >\n help@remote.com ↗\n </a>\n . Our Legal team will review and, where possible, align your needs with\n local compliance requirements, before inviting the employee, ensuring a\n smooth onboarding process.\n </p>\n\n <p\n className={cn(\n 'RemoteFlows__EmploymentAgreementInfoContent__Description',\n )}\n >\n For guidance, see our{' '}\n <a\n className={cn('RemoteFlows__EmploymentAgreementInfoContent__Link')}\n href={buildZendeskURL(zendeskArticles.employmentAgreements)}\n target='_blank'\n rel='noopener noreferrer'\n >\n Agreement Engagement Guide ↗\n </a>{' '}\n to understand what can (and can't) be modified.\n </p>\n </>\n );\n};\n"],"mappings":"+HAQI,mBAAAA,EAII,OAAAC,EAmCA,QAAAC,MAvCJ,oBAFG,IAAMC,EAAiCC,EAAA,IAE1CF,EAAAF,EAAA,CACE,UAAAC,EAAC,OACC,UAAWI,EAAG,sDAAsD,EAEpE,SAAAJ,EAAC,KACC,UAAWI,EACT,0DACF,EACD,8LAID,EACF,EAEAJ,EAAC,KACC,UAAWI,EACT,0DACF,EACD,oIAGD,EAEAH,EAAC,OACC,UAAAD,EAAC,KACC,UAAWI,EACT,2DACF,EACD,+DAED,EACAJ,EAAC,KACC,UAAWI,EACT,0DACF,EACD,qCAED,EACAH,EAAC,MACC,UAAWG,EACT,yEACF,EAEA,UAAAJ,EAAC,MACC,UAAWI,EACT,uDACF,EACD,mCAED,EACAJ,EAAC,MACC,UAAWI,EACT,uDACF,EACD,qCAED,EACAJ,EAAC,MACC,UAAWI,EACT,uDACF,EACD,8CAED,GACF,GACF,EAEAJ,EAAC,KACC,UAAWI,EACT,0DACF,EACD,yNAID,EAEAH,EAAC,KACC,UAAWG,EACT,0DACF,EACD,yDAC8C,IAC7CJ,EAAC,KACC,KAAK,yBACL,UAAWI,EAAG,mDAAmD,EACjE,OAAO,SACP,IAAI,sBACL,kCAED,EAAI,8KAIN,EAEAH,EAAC,KACC,UAAWG,EACT,0DACF,EACD,kCACuB,IACtBJ,EAAC,KACC,UAAWI,EAAG,mDAAmD,EACjE,KAAMC,EAAgBC,EAAgB,oBAAoB,EAC1D,OAAO,SACP,IAAI,sBACL,6CAED,EAAK,IAAI,mDAEX,GACF,EAnH0C","names":["Fragment","jsx","jsxs","EmploymentAgreementInfoContent","__name","cn","buildZendeskURL","zendeskArticles"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as Yt,b as re,c as oe,d as ae,e as se,f as ce,g as le,i as ue,j as de,k as pe,l as me,m as fe,n as ye,o as _e,p as ge,q as be,r as Se,s as Ce,t as we,u as ve}from"./chunk-XYCFKCVZ.js";import{a as he,b as Pe,c as Ee}from"./chunk-HK4LGSS7.js";import{a as Zt,b as te,f as ee,g as ne,h as ie}from"./chunk-G556HMVA.js";import{a as $,b as at,c as m,d as zt,g as Xt}from"./chunk-Q2OGLLBA.js";import{a as Wt}from"./chunk-PJ6KPGIE.js";import{f as Kt,h as Gt,i as Ht}from"./chunk-UYGDMJF2.js";import{Q as Ut}from"./chunk-GZUP2IE6.js";import{a as Nt,b as w,d as Qt,h as _,i as k,u as V,v}from"./chunk-G2LZFGZA.js";import{a as $t}from"./chunk-JDIKYCN6.js";import{e as Jt}from"./chunk-H2O4CVKF.js";import{a as d}from"./chunk-P37U34EQ.js";import{useEffect as A,useMemo as a,useRef as Me,useState as R}from"react";import Ve from"lodash.omit";import{useQuery as Pn}from"@tanstack/react-query";var En=d(()=>{let{client:T}=Jt(),{data:q}=re(),u=oe(q)?q?.company?.id??"":"";return Pn({queryKey:["legal-entities",u],queryFn:d(()=>Ut({client:T,path:{company_id:u},query:{page_size:100}}),"queryFn"),select:d(z=>z.data?.data?.legal_entities,"select"),enabled:!!u})},"useLegalEntities"),Fe=d(()=>{let{data:T}=En();return T?.find(q=>q.is_default)},"useDefaultLegalEntity");var Fn={select_country:null,basic_information:"employment_basic_information",contract_details:null,eligibility_questionnaire:null,pricing_plan:null,contract_preview:null,review:null},Mn={employment_basic_information:"basic_information"},ii=d(({countryCode:T,externalId:q,employmentId:u,skipSteps:z,options:f,initialValues:p})=>{let Oe=f?.excludeProducts||[],_t=Me(f?.onContractReviewed);A(()=>{_t.current=f?.onContractReviewed},[f?.onContractReviewed]);let[l,gt]=R(T||null),[r,De]=R(u),[g,bt]=R(void 0),X=Me({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{},eligibility_questionnaire:{}}),[Y,Ie]=R(void 0),[St,Z]=R(!1),[Ct,ke]=R(!0),[st,wt]=R(null),{steps:Ae,stepsArray:Re}=a(()=>Zt({includeSelectCountry:!z?.includes("select_country"),includeEligibilityQuestionnaire:St,includeContractPreview:Ct}),[St,Ct,z]),{fieldValues:c,stepState:e,setFieldValues:vt,previousStep:qe,nextStep:Te,goToStep:L,setStepValues:ht}=$t(Ae);A(()=>{st&&(L(st),wt(null))},[st,L]);let{data:o,isLoading:Le,refetch:Pt}=Wt({employmentId:r,queryParams:{exclude_files:!0}}),je=Fe(),{status:O}=o||{},h=O&&ee.includes(O),xe=O&&!ne.includes(O),Be=a(()=>O&&["invited","initiated"].includes(O)?"invited":"not_invited",[O]),Et=Gt(),Ft=Ht(l,f),ct=de(),Mt=Yt(),{mutateAsync:Vt}=fe(ct,Mt,c),Ot=be(),Dt=Se(),{mutateAsyncOrThrow:Ne}=w(Ft),It=se(),kt=ue(),At=Ce(),{mutateAsyncOrThrow:Qe}=w(Et),{mutateAsyncOrThrow:Je}=w(ct),{mutateAsyncOrThrow:Ue}=w(It),{mutateAsyncOrThrow:Rt}=w(kt),{mutateAsyncOrThrow:Ke}=w(Ot),{mutateAsyncOrThrow:qt}=w(Dt),{mutateAsyncOrThrow:Ge}=w(At);u&&o?.country?.code&&!l&>(o.country.code);let{selectCountryForm:j,isLoading:He,countries:Tt}=we({jsfModify:f?.jsfModify?.select_country}),lt=a(()=>Tt?.find(t=>t.value===l),[Tt,l]),We=a(()=>lt?.label,[lt]),$e=e.currentStep.name==="pricing_plan"||!!u&&h,{form:P,isLoading:ze,contractorSubscriptions:tt,filteredContractorSubscriptions:x,refetch:ut,isEligibilityQuestionnaireBlocked:B}=me(r,lt,{jsonSchemaVersion:f?.jsonSchemaVersion,queryOptions:{enabled:$e},excludeProducts:Oe,jsfModify:f?.jsfModify?.pricing_plan}),D=a(()=>!!tt?.find(t=>t.product.identifier===m)?.eligibility_questionnaire?.submitted_at,[tt]);A(()=>{if(D){Z(!1);return}else Z(Y===m)},[D,Y]),A(()=>{let t=o?.contractor_type==="cor";ke(!t)},[o?.contractor_type]);let et=a(()=>tt?.find(t=>t.product.identifier===m)?.eligibility_questionnaire?.responses,[tt]),Xe=Fn[e.currentStep.name]||"contractor_basic_information",Ye=Mn[Xe],Ze=o?.[Ye]||{},tn=d(({form:t,options:i={},query:s={}})=>{let M=Object.keys(c).length>0?{...p,...e.values?.[e.currentStep.name],...c}:{...p,...Ze};return Kt({countryCode:l,form:t,fieldValues:M,query:s,options:{...i,queryOptions:{enabled:i.queryOptions?.enabled??!0}}})},"useJSONSchema"),en=!!(l&&(e.currentStep.name==="basic_information"||u)),nn=!!(l==="GBR"&&u&&e.currentStep.name==="basic_information"),{data:N,isLoading:rn}=ye(u,{enabled:nn}),{data:nt,isLoading:on}=_e(r,{enabled:!!r});A(()=>{nt&&nt.length>0&&!g&&bt(nt[0].id)},[nt,g]);let{data:b,isLoading:an}=tn({form:"contractor_basic_information",options:{jsfModify:Pe(l,We,f),queryOptions:{enabled:en}}}),sn=a(()=>te(o?.basic_information?.provisional_start_date,c?.service_duration?.provisional_start_date),[o?.basic_information?.provisional_start_date,c?.service_duration?.provisional_start_date]),y=a(()=>{let t={standard:$,plus:at,cor:m};if(c.subscription)return c.subscription;let i=e.values?.pricing_plan?.subscription;if(i&&!B)return i;if(D&&!B)return m;if(B&&D)return $;if(x&&x.length>0)return t[o?.contractor_type]||$},[c,e.values,D,o?.contractor_type,B,x]);A(()=>{y&&y!==Y&&Ie(y)},[y,Y]);let cn=a(()=>({...et,...p,...e.values?.eligibility_questionnaire,...c}),[et,p,e.values?.eligibility_questionnaire,c]),ln=a(()=>y===m&&e.currentStep.name==="eligibility_questionnaire"||!!u&&h&&y===m,[y,e.currentStep.name,u,h]),{data:E,isLoading:un}=ge({options:{queryOptions:{enabled:ln},jsfModify:f?.jsfModify?.eligibility_questionnaire},fieldValues:cn}),dn=!!(l&&e.currentStep.name==="contract_details"||h),{data:S,isLoading:pn}=ve({countryCode:l,fieldValues:c,employmentId:r,options:{queryOptions:{enabled:dn},jsfModify:he(f?.jsfModify?.contract_details,sn,y,c,y===m)}}),mn=a(()=>e.currentStep.name==="contract_preview"||!!u&&h,[e.currentStep.name,u,h]),{data:F}=ae({fieldValues:c,options:{queryOptions:{enabled:mn},jsfModify:Ee(f,c)}}),{data:dt,isLoading:fn,refetch:yn}=ce({employmentId:r,contractDocumentId:g,options:{queryOptions:{enabled:!!g}}}),{hasCompanySignedContract:_n}=le({employmentId:r,contractDocumentId:g,options:{queryOptions:{enabled:!!g}}}),n=a(()=>({select_country:j?.fields||[],basic_information:b?.fields||[],pricing_plan:P?.fields||[],eligibility_questionnaire:E?.fields||[],contract_details:S?.fields||[],contract_preview:F?.fields||[],review:[]}),[j?.fields,b?.fields,P?.fields,S?.fields,F?.fields,E?.fields]),gn={select_country:null,basic_information:b?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:S?.meta["x-jsf-fieldsets"],eligibility_questionnaire:null,contract_preview:null,review:null},bn={select_country:j?.meta?.["x-jsf-presentation"],basic_information:b?.meta?.["x-jsf-presentation"],pricing_plan:P?.meta?.["x-jsf-presentation"],eligibility_questionnaire:E?.meta?.["x-jsf-presentation"],contract_details:S?.meta?.["x-jsf-presentation"],contract_preview:F?.meta?.["x-jsf-presentation"],review:null},{country:Sn,basic_information:it={},contract_details:Lt={}}=o||{},jt=Sn?.code,Q=a(()=>k(n.select_country,{country:l||jt||""}),[n.select_country,l,jt]),pt=a(()=>N?.content?Qt(N.content,N.name):null,[N?.content,N?.name]),J=a(()=>{let t={...p,...it,ir35:o?.contract_details?.ir_35,nationality_status:o?.contract_details?.nationality,...pt&&{ir35_sds_file:[pt]}};return k(n.basic_information,t)},[p,it,o?.contract_details?.ir_35,o?.contract_details?.nationality,pt,n.basic_information]),U=a(()=>{let i={...{service_duration:{provisional_start_date:it.provisional_start_date}},...p,...Lt};return k(n.contract_details,i)},[n.contract_details,Lt,p,it]),K=a(()=>{let t=dt?.contract_document?.signatories?.find(s=>s.type==="company"),i={...p,signature:t?.signature};return k(n.contract_preview,i)},[n.contract_preview,p,dt]),G=a(()=>{let i={...{subscription:y},...p};return k(n.pricing_plan,i)},[n.pricing_plan,p,y]),H=a(()=>{let t={...p,...et};return k(n.eligibility_questionnaire,t)},[n.eligibility_questionnaire,p,et]),Cn=a(()=>({select_country:Q,basic_information:J,contract_details:U,contract_preview:K,pricing_plan:G,eligibility_questionnaire:H}),[Q,J,U,K,G,H]),mt=!!(u&&h&&e.currentStep.name!=="review"),ft=He||an||Le||pn||ze||fn||rn||on||un,xt=a(()=>{let i=o?.contractor_type==="cor"||n.contract_preview.length>0;return!!(mt&&!ft&&g&&n.basic_information.length>0&&n.contract_details.length>0&&i)},[mt,ft,g,n.basic_information.length,n.contract_details.length,n.contract_preview.length,o?.contractor_type]);A(()=>{xt&&(X.current={select_country:V(Q,n.select_country,{skipMoneyConversion:!0}),basic_information:V(J,n.basic_information,{skipMoneyConversion:!0}),contract_details:V(U,n.contract_details,{skipMoneyConversion:!0}),contract_preview:V(K,n.contract_preview,{skipMoneyConversion:!0}),pricing_plan:V(G,n.pricing_plan,{skipMoneyConversion:!0}),eligibility_questionnaire:V(H,n.eligibility_questionnaire,{skipMoneyConversion:!0})},ht({select_country:Q,basic_information:J,contract_details:U,contract_preview:K,pricing_plan:G,eligibility_questionnaire:H,review:{}}),L("review"))},[xt,L,Q,J,U,ht,n.select_country,n.basic_information,n.contract_details,n.pricing_plan,G,n.contract_preview,K,n.eligibility_questionnaire,H]);let wn=d(t=>{L(t)},"goTo"),Bt=d(async t=>j&&e.currentStep.name==="select_country"?t:b&&e.currentStep.name==="basic_information"?await _(t,b?.fields,{isPartialValidation:!1}):S&&e.currentStep.name==="contract_details"?await _(t,S?.fields,{isPartialValidation:!1}):F&&e.currentStep.name==="contract_preview"?await _(t,F?.fields,{isPartialValidation:!1}):P&&e.currentStep.name==="pricing_plan"?await _(t,P?.fields,{isPartialValidation:!1}):E&&e.currentStep.name==="eligibility_questionnaire"?await _(t,E?.fields,{isPartialValidation:!1}):{},"parseFormValues"),vn=d(t=>{if(!Nt(t))return null;let i=t.normalizedErrors.services_and_deliverables,s=Array.isArray(i)?i[0]:i;return s?.source===Xt?{error:s.error,source:s.source,skippable:s.skippable}:null},"extractAiValidationError");async function hn(t){let i=e.currentStep.name,s=await Bt(t);switch(i in X.current&&(X.current[i]=V(s,n[i])),e.currentStep.name){case"select_country":return gt(s.country),Promise.resolve({data:{countryCode:s.country}});case"basic_information":{let I=!r&&l,M=r&&l&&o?.country&&o?.country.code!==l;if(I||M){let yt={basic_information:Ve(s,"nationality_status","ir35","ir35_sds_file"),type:"contractor",country_code:l,external_id:q},ot=await Qe(yt),C=ot?.data?.employment?.id;if(!C)throw v("Employment ID not found");return await Vt({employmentId:C}),De(C),ot}else if(r){let rt=Ve(s,"nationality_status","ir35","ir35_sds_file");return await Vt({employmentId:r}),Ne({employmentId:r,basic_information:rt})}return}case"contract_details":{let{services_and_deliverables_ai_warning:I,services_and_deliverables_error_skippable:M,...rt}=s,yt=c.services_and_deliverables_error_skippable===!0,ot={contract_document:rt,skip_ai_checks:yt};try{let C=await Je({employmentId:r,payload:ot}),W=C?.data?.contract_document?.id;if(!W)throw v("Contract document ID not found");return bt(W),C}catch(C){let W=vn(C);throw W&&vt({...t,services_and_deliverables_ai_warning:ie(y===m),services_and_deliverables_error_skippable:W.skippable}),C}}case"contract_preview":{if(_n)return Promise.resolve({data:{contract_document:{id:g}}});let I=await Ue({employmentId:r,contractDocumentId:g,payload:{signature:s.signature}});return await yn(),I}case"pricing_plan":{if(t.subscription===zt)return Promise.resolve({data:{subscription:t.subscription}});if(x.length===0)throw v("No available subscriptions.");if(!t.subscription&&x.length>0)throw v("Please select a subscription plan.");if(B&&[m,at].includes(t.subscription))throw v(`This individual is not eligible for ${pe[t.subscription]}.`);if(D&&t.subscription!==m)try{await Ge({employmentId:r}),await ut()}catch(M){if(M?.response?.status!==404)throw M;await ut()}if(t.subscription==$)return Rt({employmentId:r,payload:{operation:"downgrade"}});if(t.subscription==at)return Rt({employmentId:r,payload:{operation:"upgrade"}});if(t.subscription==m)return D&&o?.contractor_type!=="cor"?qt({employmentId:r}):Promise.resolve({data:{subscription:t.subscription}});throw v("invalid selection")}case"eligibility_questionnaire":try{if((await Ke({employmentId:r,payload:s}))?.data?.is_blocking)throw Z(!1),wt("pricing_plan"),v("This individual is not eligible for Contractor of Record.");return await qt({employmentId:r})}finally{await ut()}default:throw v("Invalid step state")}}return d(hn,"onSubmit"),{isLoading:ft||mt,fieldValues:c,stepState:e,checkFieldUpdates:vt,markContractAsReviewed:d(()=>{_t.current?.()},"markContractAsReviewed"),back:qe,next:d(()=>{r&&Pt(),Te()},"handleNextStep"),goTo:wn,onSubmit:hn,fields:n[e.currentStep.name],meta:{fields:X.current,fieldsets:gn[e.currentStep.name],presentation:bn[e.currentStep.name]},parseFormValues:Bt,canSkipAiValidation:c.services_and_deliverables_error_skippable===!0,handleValidation:d(async t=>{if(e.currentStep.name==="select_country")return j.handleValidation(t);if(b&&e.currentStep.name==="basic_information"){let i=await _(t,b?.fields,{isPartialValidation:!1});return b?.handleValidation(i)}if(S&&e.currentStep.name==="contract_details"){let i=await _(t,S?.fields,{isPartialValidation:!1});return S?.handleValidation(i)}if(F&&e.currentStep.name==="contract_preview"){let i=await _(t,F?.fields,{isPartialValidation:!0});return F?.handleValidation(i)}if(P&&e.currentStep.name==="pricing_plan"){let i=await _(t,P?.fields,{isPartialValidation:!1});return P?.handleValidation(i)}if(E&&e.currentStep.name==="eligibility_questionnaire"){let i=await _(t,E?.fields,{isPartialValidation:!1});return E?.handleValidation(i)}return null},"handleValidation"),initialValues:Cn,employmentId:r,refetchEmployment:Pt,isSubmitting:Et.isPending||Ft.isPending||ct.isPending||It.isPending||kt.isPending||Mt.isPending||Ot.isPending||Dt.isPending||At.isPending,documentPreviewPdf:dt,canInvite:xe,isEmploymentReadOnly:h,invitedStatus:Be,employment:o,defaultLegalEntity:je,steps:Re}},"useContractorOnboarding");export{ii as a};
|
|
2
|
+
//# sourceMappingURL=chunk-UI4AZZD5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/hooks.tsx","../src/common/api/legal-entities.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\nimport omit from 'lodash.omit';\nimport { $TSFixMe, JSFFields } from '@/src/types/remoteFlows';\nimport {\n CreateContractDocument,\n Employment,\n EmploymentCreateParams,\n} from '@/src/client/types.gen';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport { ValidationResult } from '@remoteoss/remote-json-schema-form-kit';\nimport {\n useCreateContractorContractDocument,\n useGetContractDocumentSignatureSchema,\n usePostManageContractorSubscriptions,\n useContractorSubscriptionSchemaField,\n useGetShowContractDocument,\n useSignContractDocument,\n useUpdateUKandSaudiFields,\n useGetIR35File,\n useGetContractDocuments,\n useGetEligibilityQuestionnaire,\n usePostCreateEligibilityQuestionnaire,\n usePostManageContractorCorSubscription,\n useDeleteContractorCorSubscription,\n useCountriesSchemaField,\n useContractorOnboardingDetailsSchemaWithCurrencies,\n CONTRACT_PRODUCT_TITLES,\n useHasCompanySignedContract,\n} from '@/src/flows/ContractorOnboarding/api';\nimport {\n ContractorOnboardingFlowProps,\n ContractorOnboardingHookOptions,\n} from '@/src/flows/ContractorOnboarding/types';\nimport {\n buildSteps,\n calculateProvisionalStartDateDescription,\n reviewStepAllowedEmploymentStatus,\n disabledInviteButtonEmploymentStatus,\n StepKeys,\n} from '@/src/flows/ContractorOnboarding/utils';\nimport {\n useCreateEmployment,\n useJSONSchemaForm,\n useUpdateEmployment,\n} from '@/src/flows/Onboarding/api';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { useStepState } from '@/src/flows/useStepState';\nimport { mutationToPromise, isMutationError } from '@/src/lib/mutations';\nimport { createStructuredError, prettifyFormValues } from '@/src/lib/utils';\nimport { JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport {\n contractorStandardProductIdentifier,\n contractorPlusProductIdentifier,\n corProductIdentifier,\n eorProductIdentifier,\n REMOTE_AI_ERROR_SOURCE,\n} from '@/src/flows/ContractorOnboarding/constants';\nimport {\n buildBasicInformationJsfModify,\n buildContractDetailsJsfModify,\n buildContractPreviewJsfModify,\n} from '@/src/flows/ContractorOnboarding/jsfModify';\nimport { transformAiErrorResponse } from '@/src/flows/ContractorOnboarding/utils';\nimport { AiValidationError } from '@/src/flows/ContractorOnboarding/types';\nimport { useUploadFile } from '@/src/common/api/files';\nimport { dataURLtoFile } from '@/src/lib/files';\nimport { useEmploymentQuery } from '@/src/common/api/employment';\nimport { useDefaultLegalEntity } from '@/src/common/api/legal-entities';\n\ntype useContractorOnboardingProps = Omit<\n ContractorOnboardingFlowProps,\n 'render' | 'options'\n> & {\n options: ContractorOnboardingHookOptions;\n};\n\nconst stepToFormSchemaMap: Record<StepKeys, JSONSchemaFormType | null> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_details: null,\n eligibility_questionnaire: null,\n pricing_plan: null,\n contract_preview: null,\n review: null,\n};\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n};\n\nexport const useContractorOnboarding = ({\n countryCode,\n externalId,\n employmentId,\n skipSteps,\n options,\n initialValues: onboardingInitialValues,\n}: useContractorOnboardingProps) => {\n const excludeProducts = options?.excludeProducts || [];\n\n const onContractReviewedRef = useRef(options?.onContractReviewed);\n\n useEffect(() => {\n onContractReviewedRef.current = options?.onContractReviewed;\n }, [options?.onContractReviewed]);\n\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalContractDocumentId, setInternalContractDocumentId] = useState<\n string | undefined\n >(undefined);\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n contract_preview: Meta;\n pricing_plan: Meta;\n eligibility_questionnaire: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n contract_preview: {},\n pricing_plan: {},\n eligibility_questionnaire: {},\n });\n\n const [selectedProduct, setSelectedProduct] = useState<string | undefined>(\n undefined,\n );\n\n const [includeEligibilityQuestionnaire, setIncludeEligibilityQuestionnaire] =\n useState<boolean>(false);\n\n const [includeContractPreview, setIncludeContractPreview] =\n useState<boolean>(true);\n\n const [pendingNavigationStep, setPendingNavigationStep] =\n useState<StepKeys | null>(null);\n\n const { steps, stepsArray } = useMemo(\n () =>\n buildSteps({\n includeSelectCountry: !skipSteps?.includes('select_country'),\n includeEligibilityQuestionnaire: includeEligibilityQuestionnaire,\n includeContractPreview: includeContractPreview,\n }),\n [includeEligibilityQuestionnaire, includeContractPreview, skipSteps],\n );\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(steps);\n\n useEffect(() => {\n if (pendingNavigationStep) {\n // Now steps have been updated\n goToStep(pendingNavigationStep);\n setPendingNavigationStep(null);\n }\n }, [pendingNavigationStep, goToStep]);\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmploymentQuery({\n employmentId: internalEmploymentId as string,\n queryParams: { exclude_files: true },\n });\n\n const defaultLegalEntity = useDefaultLegalEntity();\n\n const { status: employmentStatus } = employment || {};\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const invitedStatus: 'invited' | 'not_invited' = useMemo(() => {\n const invitedStatuses = ['invited', 'initiated'];\n const isInvited =\n employmentStatus && invitedStatuses.includes(employmentStatus);\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 filteredContractorSubscriptions,\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) =>\n subscription.product.identifier === corProductIdentifier,\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) =>\n subscription.product.identifier === corProductIdentifier,\n )?.eligibility_questionnaire?.responses;\n }, [contractorSubscriptions]);\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'contractor_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isIR35FileEnabled = Boolean(\n internalCountryCode === 'GBR' &&\n employmentId &&\n stepState.currentStep.name === 'basic_information',\n );\n\n const { data: ir35File, isLoading: isLoadingIR35File } = useGetIR35File(\n employmentId as string,\n {\n enabled: isIR35FileEnabled,\n },\n );\n\n const { data: contractDocuments, isLoading: isLoadingContractDocuments } =\n useGetContractDocuments(internalEmploymentId as string, {\n enabled: Boolean(internalEmploymentId),\n });\n\n useEffect(() => {\n if (\n contractDocuments &&\n contractDocuments.length > 0 &&\n !internalContractDocumentId\n ) {\n setInternalContractDocumentId(contractDocuments[0].id);\n }\n }, [contractDocuments, internalContractDocumentId]);\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'contractor_basic_information',\n options: {\n jsfModify: buildBasicInformationJsfModify(\n internalCountryCode as string,\n countryName,\n options,\n ),\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n },\n });\n\n const descriptionProvisionalStartDate = useMemo(() => {\n return calculateProvisionalStartDateDescription(\n employment?.basic_information?.provisional_start_date as string,\n fieldValues?.service_duration?.provisional_start_date as string,\n );\n }, [\n employment?.basic_information?.provisional_start_date,\n fieldValues?.service_duration?.provisional_start_date,\n ]);\n\n /**\n * When the user selects COR, the data isn't saved yet in the BE\n * We need to use the internalState to know what has happened\n */\n const selectedPricingPlan = useMemo(() => {\n const subscriptions = {\n standard: contractorStandardProductIdentifier,\n plus: contractorPlusProductIdentifier,\n cor: corProductIdentifier,\n };\n\n // HIGHEST PRIORITY: Current form value (user is actively selecting)\n if (fieldValues.subscription) {\n return fieldValues.subscription;\n }\n\n // SECOND: Previously submitted value in this session\n const subscription = stepState.values?.pricing_plan?.subscription;\n if (subscription && !isEligibilityQuestionnaireBlocked) {\n return subscription;\n }\n\n // THIRD: Backend state (eligibility submitted or employment contractor_type)\n if (\n hasEligibilityQuestionnaireSubmitted &&\n !isEligibilityQuestionnaireBlocked\n ) {\n return corProductIdentifier;\n }\n\n // Fourth: If the eligibility questionnaire is blocked and has been submitted, return the standard product\n if (\n isEligibilityQuestionnaireBlocked &&\n hasEligibilityQuestionnaireSubmitted\n ) {\n return contractorStandardProductIdentifier;\n }\n\n // Fifth: If there are no available subscriptions, return undefined\n const hasAvailableSubscriptions =\n filteredContractorSubscriptions &&\n filteredContractorSubscriptions.length > 0;\n\n if (!hasAvailableSubscriptions) {\n return undefined;\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 filteredContractorSubscriptions,\n ]);\n\n useEffect(() => {\n if (selectedPricingPlan && selectedPricingPlan !== selectedProduct) {\n setSelectedProduct(selectedPricingPlan);\n }\n }, [selectedPricingPlan, selectedProduct]);\n\n const eligibilityFields = useMemo(() => {\n return {\n ...eligibilityAnswers,\n ...onboardingInitialValues,\n ...stepState.values?.eligibility_questionnaire,\n ...fieldValues,\n };\n }, [\n eligibilityAnswers,\n onboardingInitialValues,\n stepState.values?.eligibility_questionnaire,\n fieldValues,\n ]);\n\n const isEligibilityQuestionnaireEnabled = useMemo(() => {\n return (\n (selectedPricingPlan === corProductIdentifier &&\n stepState.currentStep.name === 'eligibility_questionnaire') ||\n (Boolean(employmentId) &&\n isEmploymentReadOnly &&\n selectedPricingPlan === corProductIdentifier)\n );\n }, [\n selectedPricingPlan,\n stepState.currentStep.name,\n employmentId,\n isEmploymentReadOnly,\n ]);\n\n const {\n data: eligibilityQuestionnaireForm,\n isLoading: isLoadingEligibilityQuestionnaire,\n } = useGetEligibilityQuestionnaire({\n options: {\n queryOptions: {\n enabled: isEligibilityQuestionnaireEnabled,\n },\n jsfModify: options?.jsfModify?.eligibility_questionnaire,\n },\n fieldValues: eligibilityFields,\n });\n\n const isContractorOnboardingDetailsEnabled = Boolean(\n (internalCountryCode &&\n stepState.currentStep.name === 'contract_details') ||\n isEmploymentReadOnly,\n );\n\n const {\n data: contractorOnboardingDetailsForm,\n isLoading: isLoadingContractorOnboardingDetailsForm,\n } = useContractorOnboardingDetailsSchemaWithCurrencies({\n countryCode: internalCountryCode as string,\n fieldValues: fieldValues,\n employmentId: internalEmploymentId as string,\n options: {\n queryOptions: {\n enabled: isContractorOnboardingDetailsEnabled,\n },\n jsfModify: buildContractDetailsJsfModify(\n options?.jsfModify?.contract_details,\n descriptionProvisionalStartDate,\n selectedPricingPlan,\n fieldValues,\n selectedPricingPlan === corProductIdentifier,\n ),\n },\n });\n\n const isSignatureSchemaEnabled = useMemo(() => {\n return (\n stepState.currentStep.name === 'contract_preview' ||\n (Boolean(employmentId) && isEmploymentReadOnly)\n );\n }, [stepState.currentStep.name, employmentId, isEmploymentReadOnly]);\n\n const { data: signatureSchemaForm } = useGetContractDocumentSignatureSchema({\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isSignatureSchemaEnabled,\n },\n jsfModify: buildContractPreviewJsfModify(options, fieldValues),\n },\n });\n\n const {\n data: documentPreviewPdf,\n isLoading: isLoadingDocumentPreviewForm,\n refetch: refetchDocumentPreviewForm,\n } = useGetShowContractDocument({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const { hasCompanySignedContract } = useHasCompanySignedContract({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const stepFields: Record<StepKeys, JSFFields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n pricing_plan: selectContractorSubscriptionForm?.fields || [],\n eligibility_questionnaire: eligibilityQuestionnaireForm?.fields || [],\n contract_details: contractorOnboardingDetailsForm?.fields || [],\n contract_preview: signatureSchemaForm?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n selectContractorSubscriptionForm?.fields,\n contractorOnboardingDetailsForm?.fields,\n signatureSchemaForm?.fields,\n eligibilityQuestionnaireForm?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n StepKeys,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n pricing_plan: null,\n contract_details: contractorOnboardingDetailsForm?.meta['x-jsf-fieldsets'],\n eligibility_questionnaire: null,\n contract_preview: null,\n review: null,\n };\n\n const stepPresentation: Record<\n StepKeys,\n Record<string, unknown> | null | undefined\n > = {\n select_country: selectCountryForm?.meta?.['x-jsf-presentation'],\n basic_information: basicInformationForm?.meta?.['x-jsf-presentation'],\n pricing_plan:\n selectContractorSubscriptionForm?.meta?.['x-jsf-presentation'],\n eligibility_questionnaire:\n eligibilityQuestionnaireForm?.meta?.['x-jsf-presentation'],\n contract_details:\n contractorOnboardingDetailsForm?.meta?.['x-jsf-presentation'],\n contract_preview: signatureSchemaForm?.meta?.['x-jsf-presentation'],\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n // memoize file conversion to avoid re-converting the file on every render\n // noticed performance issues when not doing memoizing individually\n const convertedIr35File = useMemo(() => {\n if (!ir35File?.content) return null;\n return dataURLtoFile(ir35File.content as unknown as string, ir35File.name);\n }, [ir35File?.content, ir35File?.name]);\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n ir35: employment?.contract_details?.ir_35,\n nationality_status: employment?.contract_details?.nationality,\n ...(convertedIr35File && {\n ir35_sds_file: [convertedIr35File],\n }),\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n onboardingInitialValues,\n employmentBasicInformation,\n employment?.contract_details?.ir_35,\n employment?.contract_details?.nationality,\n convertedIr35File,\n stepFields.basic_information,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const hardcodedValues = {\n service_duration: {\n provisional_start_date:\n employmentBasicInformation.provisional_start_date,\n },\n };\n const initialValues = {\n ...hardcodedValues,\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n employmentBasicInformation,\n ]);\n\n const contractPreviewInitialValues = useMemo(() => {\n const signature = documentPreviewPdf?.contract_document?.signatories?.find(\n (signatory) => signatory.type === 'company',\n );\n const initialValues = {\n ...onboardingInitialValues,\n signature: signature?.signature,\n };\n\n return getInitialValues(stepFields.contract_preview, initialValues);\n }, [\n stepFields.contract_preview,\n onboardingInitialValues,\n documentPreviewPdf,\n ]);\n\n const pricingPlanInitialValues = useMemo(() => {\n const preselectedPricingPlan = {\n subscription: selectedPricingPlan,\n };\n const initialValues = {\n ...preselectedPricingPlan,\n ...onboardingInitialValues,\n };\n\n return getInitialValues(stepFields.pricing_plan, initialValues);\n }, [stepFields.pricing_plan, onboardingInitialValues, selectedPricingPlan]);\n\n const eligibilityQuestionnaireInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...eligibilityAnswers,\n };\n return getInitialValues(\n stepFields.eligibility_questionnaire,\n initialValues,\n );\n }, [\n stepFields.eligibility_questionnaire,\n onboardingInitialValues,\n eligibilityAnswers,\n ]);\n\n const initialValues = useMemo(() => {\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n contractPreviewInitialValues,\n pricingPlanInitialValues,\n eligibilityQuestionnaireInitialValues,\n ]);\n\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId &&\n isEmploymentReadOnly &&\n stepState.currentStep.name !== 'review',\n );\n\n const initialLoading =\n isLoadingCountries ||\n isLoadingBasicInformationForm ||\n isLoadingEmployment ||\n isLoadingContractorOnboardingDetailsForm ||\n isLoadingContractorSubscriptions ||\n isLoadingDocumentPreviewForm ||\n isLoadingIR35File ||\n isLoadingContractDocuments ||\n isLoadingEligibilityQuestionnaire;\n\n const isNavigatingToReview = useMemo(() => {\n const isCor = employment?.contractor_type === 'cor';\n const hasContractPreviewFields =\n isCor || stepFields.contract_preview.length > 0;\n\n return Boolean(\n shouldHandleReadOnlyEmployment &&\n !initialLoading &&\n Boolean(internalContractDocumentId) &&\n stepFields.basic_information.length > 0 &&\n stepFields.contract_details.length > 0 &&\n hasContractPreviewFields,\n );\n }, [\n shouldHandleReadOnlyEmployment,\n initialLoading,\n internalContractDocumentId,\n stepFields.basic_information.length,\n stepFields.contract_details.length,\n stepFields.contract_preview.length,\n employment?.contractor_type,\n ]);\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n { skipMoneyConversion: true },\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n { skipMoneyConversion: true },\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n { skipMoneyConversion: true },\n ),\n contract_preview: prettifyFormValues(\n contractPreviewInitialValues,\n stepFields.contract_preview,\n { skipMoneyConversion: true },\n ),\n pricing_plan: prettifyFormValues(\n pricingPlanInitialValues,\n stepFields.pricing_plan,\n { skipMoneyConversion: true },\n ),\n eligibility_questionnaire: prettifyFormValues(\n eligibilityQuestionnaireInitialValues,\n stepFields.eligibility_questionnaire,\n { skipMoneyConversion: true },\n ),\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: pricingPlanInitialValues,\n eligibility_questionnaire: eligibilityQuestionnaireInitialValues,\n review: {},\n });\n goToStep('review');\n }\n }, [\n isNavigatingToReview,\n goToStep,\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n setStepValues,\n stepFields.select_country,\n stepFields.basic_information,\n stepFields.contract_details,\n stepFields.pricing_plan,\n pricingPlanInitialValues,\n stepFields.contract_preview,\n contractPreviewInitialValues,\n stepFields.eligibility_questionnaire,\n eligibilityQuestionnaireInitialValues,\n ]);\n\n const goTo = (step: StepKeys) => {\n goToStep(step);\n };\n\n const parseFormValues = async (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return await parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n return await parseJSFToValidate(values, signatureSchemaForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n return await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n eligibilityQuestionnaireForm &&\n stepState.currentStep.name === 'eligibility_questionnaire'\n ) {\n return await parseJSFToValidate(\n values,\n eligibilityQuestionnaireForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n return {};\n };\n\n /**\n * Extracts AI validation error from the error response\n * @param error - The error object from the API call\n * @returns The AI validation error if found, null otherwise\n */\n const extractAiValidationError = (\n error: unknown,\n ): AiValidationError | null => {\n if (!isMutationError(error)) {\n return null;\n }\n\n const rawError = error.normalizedErrors.services_and_deliverables;\n\n // The backend's normalize_errors wraps non-list values in an array,\n // so the AI validation error object arrives as a single-element array.\n const servicesAndDeliverablesError = (\n Array.isArray(rawError) ? rawError[0] : rawError\n ) as\n | {\n error: string[];\n source: string;\n skippable: boolean;\n }\n | undefined;\n\n if (servicesAndDeliverablesError?.source === REMOTE_AI_ERROR_SOURCE) {\n return {\n error: servicesAndDeliverablesError.error,\n source: servicesAndDeliverablesError.source,\n skippable: servicesAndDeliverablesError.skippable,\n };\n }\n return null;\n };\n\n async function onSubmit(values: FieldValues) {\n const currentStepName = stepState.currentStep.name;\n const parsedValues = await parseFormValues(values);\n\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(parsedValues, stepFields[currentStepName]);\n }\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n const basicInformationPayload: EmploymentCreateParams = {\n basic_information: basicInformationParsedValues,\n type: 'contractor',\n country_code: internalCountryCode,\n external_id: externalId,\n };\n const response = await createEmploymentMutationAsync(\n basicInformationPayload,\n );\n const employmentId = response?.data?.employment?.id;\n if (!employmentId) {\n throw createStructuredError('Employment ID not found');\n }\n\n await updateUKandSaudiFieldsMutation({\n employmentId: employmentId as string,\n });\n\n // Only update state (triggers queries with fully consistent backend state) if not caused a bug\n // if one of the updateUKandSaudiFieldsMutation fails with a 422 for example\n setInternalEmploymentId(employmentId);\n\n return response;\n } else if (internalEmploymentId) {\n const basicInformationParsedValues = omit(\n parsedValues,\n 'nationality_status',\n 'ir35',\n 'ir35_sds_file',\n );\n\n await updateUKandSaudiFieldsMutation({\n employmentId: internalEmploymentId,\n });\n return updateEmploymentMutationAsync({\n employmentId: internalEmploymentId,\n basic_information: basicInformationParsedValues,\n });\n }\n\n return;\n }\n case 'contract_details': {\n const {\n services_and_deliverables_ai_warning:\n _servicesAndDeliverablesAiWarning,\n services_and_deliverables_error_skippable:\n _servicesAndDeliverablesErrorSkippable,\n ...contractDetailsData\n } = parsedValues;\n\n const shouldSkipAiChecks =\n fieldValues.services_and_deliverables_error_skippable === true;\n const payload: CreateContractDocument = {\n contract_document: contractDetailsData,\n skip_ai_checks: shouldSkipAiChecks,\n };\n\n try {\n const response = await createContractorContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n payload,\n });\n const contractDocumentId = response?.data?.contract_document?.id;\n if (!contractDocumentId) {\n throw createStructuredError('Contract document ID not found');\n }\n setInternalContractDocumentId(contractDocumentId);\n\n return response;\n } catch (error) {\n const aiError = extractAiValidationError(error);\n if (aiError) {\n const isContractorOfRecord =\n selectedPricingPlan === corProductIdentifier;\n setFieldValues({\n ...values,\n services_and_deliverables_ai_warning:\n transformAiErrorResponse(isContractorOfRecord),\n services_and_deliverables_error_skippable: aiError.skippable,\n });\n }\n\n throw error;\n }\n }\n\n case 'contract_preview': {\n if (hasCompanySignedContract) {\n return Promise.resolve({\n data: {\n contract_document: {\n id: internalContractDocumentId,\n },\n },\n });\n }\n const response = await signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: parsedValues.signature,\n },\n });\n await refetchDocumentPreviewForm();\n return response;\n }\n case 'pricing_plan': {\n 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 // If there are no available contractor subscriptions, throw an error\n if (filteredContractorSubscriptions.length === 0) {\n throw createStructuredError('No available subscriptions.');\n }\n\n if (\n !values.subscription &&\n filteredContractorSubscriptions.length > 0\n ) {\n throw createStructuredError('Please select a subscription plan.');\n }\n\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\n if (\n hasEligibilityQuestionnaireSubmitted &&\n values.subscription !== corProductIdentifier\n ) {\n try {\n await deleteContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n await refetchContractorSubscriptions();\n } catch (error) {\n if ((error as $TSFixMe)?.response?.status !== 404) {\n throw error;\n }\n // Still refetch to update the UI state\n await refetchContractorSubscriptions();\n }\n }\n\n if (values.subscription == contractorStandardProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'downgrade',\n },\n });\n } else if (values.subscription == contractorPlusProductIdentifier) {\n return manageContractorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: {\n operation: 'upgrade',\n },\n });\n } else if (values.subscription == corProductIdentifier) {\n if (\n hasEligibilityQuestionnaireSubmitted &&\n employment?.contractor_type !== 'cor'\n ) {\n return manageContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n } else {\n return Promise.resolve({\n data: { subscription: values.subscription },\n });\n }\n }\n\n throw createStructuredError('invalid selection');\n }\n\n case 'eligibility_questionnaire': {\n try {\n const response = await createEligibilityQuestionnaireMutationAsync({\n employmentId: internalEmploymentId as string,\n payload: parsedValues,\n });\n\n const isEligibilityQuestionnaireBlocked = response?.data?.is_blocking;\n\n if (isEligibilityQuestionnaireBlocked) {\n setIncludeEligibilityQuestionnaire(false);\n setPendingNavigationStep('pricing_plan');\n throw createStructuredError(\n 'This individual is not eligible for Contractor of Record.',\n );\n }\n\n return await manageContractorCorSubscriptionMutationAsync({\n employmentId: internalEmploymentId as string,\n });\n } finally {\n // Always refetch to keep state in sync, even on error\n await refetchContractorSubscriptions();\n }\n }\n\n default: {\n throw createStructuredError('Invalid step state');\n }\n }\n }\n\n const markContractAsReviewed = () => {\n // Notify parent to sync form state\n onContractReviewedRef.current?.();\n };\n\n const handleNextStep = () => {\n if (internalEmploymentId) {\n refetchEmployment();\n }\n nextStep();\n };\n\n const isLoading = initialLoading || shouldHandleReadOnlyEmployment;\n\n return {\n /**\n * Loading state indicating if the flow is loading data\n */\n isLoading,\n\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n\n /**\n * Function to mark the contract as reviewed\n * @param values - New form values to check\n * @returns {boolean}\n */\n markContractAsReviewed,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back: previousStep,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next: handleNextStep,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo: goTo,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n presentation: stepPresentation[stepState.currentStep.name],\n },\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Indicates whether AI validation errors can be skipped (user can continue at their own risk).\n * True when there's a skippable AI validation error on services_and_deliverables field.\n * @returns {boolean}\n */\n canSkipAiValidation:\n fieldValues.services_and_deliverables_error_skippable === true,\n\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: async (\n values: FieldValues,\n ): Promise<ValidationResult | null> => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractorOnboardingDetailsForm?.handleValidation(parsedValues);\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n signatureSchemaForm?.fields,\n { isPartialValidation: true },\n );\n return signatureSchemaForm?.handleValidation(parsedValues);\n }\n\n if (\n selectContractorSubscriptionForm &&\n stepState.currentStep.name === 'pricing_plan'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n selectContractorSubscriptionForm?.fields,\n { isPartialValidation: false },\n );\n return selectContractorSubscriptionForm?.handleValidation(parsedValues);\n }\n\n if (\n eligibilityQuestionnaireForm &&\n stepState.currentStep.name === 'eligibility_questionnaire'\n ) {\n const parsedValues = await parseJSFToValidate(\n values,\n eligibilityQuestionnaireForm?.fields,\n { isPartialValidation: false },\n );\n return eligibilityQuestionnaireForm?.handleValidation(parsedValues);\n }\n\n return null;\n },\n\n /**\n * Initial form values\n */\n initialValues,\n\n /**\n * Employment id\n */\n employmentId: internalEmploymentId,\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment: refetchEmployment,\n\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n updateEmploymentMutation.isPending ||\n createContractorContractDocumentMutation.isPending ||\n signContractDocumentMutation.isPending ||\n manageContractorSubscriptionMutation.isPending ||\n uploadFileMutation.isPending ||\n createEligibilityQuestionnaireMutation.isPending ||\n manageContractorCorSubscriptionMutation.isPending ||\n deleteContractorCorSubscriptionMutation.isPending,\n\n /**\n * Document preview PDF data\n */\n documentPreviewPdf,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n /**\n * let's the user know if the employment is invited or not\n * @returns {'invited' | 'not_invited'}\n */\n invitedStatus,\n\n /**\n * Employment data\n * @returns {Employment}\n */\n employment,\n\n /**\n * Default legal entity\n * @returns {CompanyLegalEntity}\n */\n defaultLegalEntity,\n /**\n * Steps array\n * @returns {Array<{name: string, index: number, visible: boolean, label: string}>}\n */\n steps: stepsArray,\n };\n};\n","import { useQuery } from '@tanstack/react-query';\nimport {\n getV1CompaniesCompanyIdLegalEntities,\n CompanyLegalEntity,\n} 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 getV1CompaniesCompanyIdLegalEntities({\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(\n (legalEntity: CompanyLegalEntity) => legalEntity.is_default,\n );\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","omit","useQuery","useLegalEntities","__name","client","useClient","identity","useIdentity","companyId","hasCompany","useQuery","getV1CompaniesCompanyIdLegalEntities","data","useDefaultLegalEntity","legalEntities","legalEntity","stepToFormSchemaMap","jsonSchemaToEmployment","useContractorOnboarding","__name","countryCode","externalId","employmentId","skipSteps","options","onboardingInitialValues","excludeProducts","onContractReviewedRef","useRef","useEffect","internalCountryCode","setInternalCountryCode","useState","internalEmploymentId","setInternalEmploymentId","internalContractDocumentId","setInternalContractDocumentId","fieldsMetaRef","selectedProduct","setSelectedProduct","includeEligibilityQuestionnaire","setIncludeEligibilityQuestionnaire","includeContractPreview","setIncludeContractPreview","pendingNavigationStep","setPendingNavigationStep","steps","stepsArray","useMemo","buildSteps","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmploymentQuery","defaultLegalEntity","useDefaultLegalEntity","employmentStatus","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","invitedStatus","createEmploymentMutation","useCreateEmployment","updateEmploymentMutation","useUpdateEmployment","createContractorContractDocumentMutation","useCreateContractorContractDocument","uploadFileMutation","useUploadFile","updateUKandSaudiFieldsMutation","useUpdateUKandSaudiFields","createEligibilityQuestionnaireMutation","usePostCreateEligibilityQuestionnaire","manageContractorCorSubscriptionMutation","usePostManageContractorCorSubscription","updateEmploymentMutationAsync","mutationToPromise","signContractDocumentMutation","useSignContractDocument","manageContractorSubscriptionMutation","usePostManageContractorSubscriptions","deleteContractorCorSubscriptionMutation","useDeleteContractorCorSubscription","createEmploymentMutationAsync","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","manageContractorSubscriptionMutationAsync","createEligibilityQuestionnaireMutationAsync","manageContractorCorSubscriptionMutationAsync","deleteContractorCorSubscriptionMutationAsync","selectCountryForm","isLoadingCountries","countries","useCountriesSchemaField","selectedCountry","country","countryName","isPricingPlanEnabled","selectContractorSubscriptionForm","isLoadingContractorSubscriptions","contractorSubscriptions","filteredContractorSubscriptions","refetchContractorSubscriptions","isEligibilityQuestionnaireBlocked","useContractorSubscriptionSchemaField","hasEligibilityQuestionnaireSubmitted","subscription","corProductIdentifier","isCor","eligibilityAnswers","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isIR35FileEnabled","ir35File","isLoadingIR35File","useGetIR35File","contractDocuments","isLoadingContractDocuments","useGetContractDocuments","basicInformationForm","isLoadingBasicInformationForm","buildBasicInformationJsfModify","descriptionProvisionalStartDate","calculateProvisionalStartDateDescription","selectedPricingPlan","subscriptions","contractorStandardProductIdentifier","contractorPlusProductIdentifier","eligibilityFields","isEligibilityQuestionnaireEnabled","eligibilityQuestionnaireForm","isLoadingEligibilityQuestionnaire","useGetEligibilityQuestionnaire","isContractorOnboardingDetailsEnabled","contractorOnboardingDetailsForm","isLoadingContractorOnboardingDetailsForm","useContractorOnboardingDetailsSchemaWithCurrencies","buildContractDetailsJsfModify","isSignatureSchemaEnabled","signatureSchemaForm","useGetContractDocumentSignatureSchema","buildContractPreviewJsfModify","documentPreviewPdf","isLoadingDocumentPreviewForm","refetchDocumentPreviewForm","useGetShowContractDocument","hasCompanySignedContract","useHasCompanySignedContract","stepFields","stepFieldsWithFlatFieldsets","stepPresentation","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","convertedIr35File","dataURLtoFile","basicInformationInitialValues","initialValues","contractDetailsInitialValues","contractPreviewInitialValues","signature","signatory","pricingPlanInitialValues","eligibilityQuestionnaireInitialValues","shouldHandleReadOnlyEmployment","initialLoading","isNavigatingToReview","hasContractPreviewFields","prettifyFormValues","goTo","step","parseFormValues","values","parseJSFToValidate","extractAiValidationError","error","isMutationError","rawError","servicesAndDeliverablesError","REMOTE_AI_ERROR_SOURCE","onSubmit","currentStepName","parsedValues","isEmploymentNotLoaded","hasChangedCountry","basicInformationPayload","omit","response","createStructuredError","basicInformationParsedValues","_servicesAndDeliverablesAiWarning","_servicesAndDeliverablesErrorSkippable","contractDetailsData","shouldSkipAiChecks","payload","contractDocumentId","aiError","transformAiErrorResponse","eorProductIdentifier","CONTRACT_PRODUCT_TITLES"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as F}from"./chunk-DJIQISA2.js";import{a as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as F}from"./chunk-DJIQISA2.js";import{a as u}from"./chunk-LLHJODMO.js";import{j as p,k as l,l as i,n as a,o as c}from"./chunk-Y3CJRZLA.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(F,{options:y,selected:g,onChange:_})}),o.description&&C(a,{children:[o.description," ",n(u,{helpCenter:o.meta?.helpCenter})]}),b.error&&n(c,{})]})}m(L,"CountryFieldDefault");export{L as a};
|
|
2
|
+
//# sourceMappingURL=chunk-UOYIAURS.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as p}from"./chunk-KFYWUBRS.js";import{a as F}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as p}from"./chunk-KFYWUBRS.js";import{a as F}from"./chunk-W5MWHAAI.js";import{f as l,h as f}from"./chunk-Y3CJRZLA.js";import{h as u}from"./chunk-G2LZFGZA.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:s,onSuccess:A}){let{formId:C,contractAmendment:{checkFieldUpdates:h,fields:m,onSubmit:y,stepState:S,initialValues:i,handleValidation:V}}=_(),g=p(V),e=l({resolver:g,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 s?.({message:"no_changes_detected_contract_details"});let d=await u(t,m,{isPartialValidation:!1});await b?.(d);let n=await y(t);n.error?s?.(n.error):await A?.(n.data)},"handleSubmit");return r(f,{...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:m})})})}a(x,"ContractAmendmentForm");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-UW3TUDJR.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{e as K,f as p,g as y}from"./chunk-TJLXZ2ZK.js";import{a as B}from"./chunk-WVJDCDGZ.js";import{a as U}from"./chunk-54Z4QJ3Q.js";import{a as d}from"./chunk-LKVQ32ZK.js";import{A as q,D as w,G as P,H as v,J as S,M as V,O as x,T as j,Y as D,da as A,g,ha as R,i as f,ia as I,j as b,l as h,m as E,p as F,q as C,x as O,z as _}from"./chunk-GZUP2IE6.js";import{e as s}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as u,useQuery as l}from"@tanstack/react-query";var re=t(e=>{let{client:r}=s();return l({queryKey:["company",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let n=await q({client:r,headers:{Authorization:""},path:{company_id:e}});if(n.error||!n.data)throw new Error("Failed to fetch employment data");return n},"queryFn"),select:t(({data:n})=>n.data.company,"select")})},"useCompany"),oe=t(e=>{let{client:r}=s();return l({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:t(async()=>F({client:r,path:{employment_id:e}}).then(n=>{if(n.error||!n.data)throw new Error("Failed to fetch benefit offers data");return n}),"queryFn"),select:t(({data:n})=>n?.data?.reduce((o,a)=>({...o,[a.benefit_group.slug]:{value:a.benefit_tier?.slug??"no",...a.benefit_group?.filter?.slug?{filter:a.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),ae=t((e,r)=>{let{client:n}=s();return l({queryKey:["employment-engagement-agreement-details",e],retry:!1,enabled:r?.enabled??!!e,queryFn:t(async()=>h({client:n,headers:{Authorization:""},path:{employment_id:e}}).then(o=>{if(o.error||!o.data)throw new Error("Failed to fetch engagement agreement details");return o}),"queryFn"),select:t(({data:o})=>o?.data?.details,"select")})},"useEmploymentEngagementAgreementDetails"),se=t(()=>{let{client:e}=s();return u({mutationFn:t(r=>D({client:e,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),ie=t(()=>{let{client:e}=s();return u({mutationFn:t(r=>_({client:e,body:r}),"mutationFn")})},"useCreateReserveInvoice"),me=t(({countryCode:e,form:r,fieldValues:n,options:o,query:a={},jsonSchemaVersion:i})=>{let{client:m}=s(),z=i?{json_schema_version:i}:{};return l({queryKey:["onboarding-json-schema-form",e,r,i],retry:!1,queryFn:t(async()=>{let c=await w({client:m,headers:{Authorization:""},path:{country_code:e,form:r},query:{skip_benefits:!0,...a,...z}});if(c.error||!c.data)throw new Error("Failed to fetch onboarding schema");return c},"queryFn"),enabled:o?.queryOptions?.enabled,select:t(({data:c})=>{let M=c?.data||{};return d(M,n,o)},"select")})},"useJSONSchemaForm"),le=t((e,r,n)=>{let{client:o}=s(),a={json_schema_version:y(n)};return l({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let i=await S({client:o,path:{employment_id:e},query:a});if(i.error||!i.data)throw new Error("Failed to fetch benefit offers schema");return i},"queryFn"),select:t(({data:i})=>{let m=i?.data?.schema||{};return d(m,r,{jsfModify:n?.jsfModify?.benefits})},"select")})},"useBenefitOffersSchema"),ue=t(e=>{let{client:r}=s(),n={json_schema_version:p(e)};return u({mutationFn:t(o=>f({client:r,headers:{Authorization:""},body:o,query:{...n}}),"mutationFn")})},"useCreateEmployment"),ce=t((e,r)=>{let{client:n}=s(),o={employment_basic_information_json_schema_version:p(r),contract_details_json_schema_version:K(r,e)||1};return u({mutationFn:t(({employmentId:a,...i})=>V({client:n,headers:{Authorization:""},body:i,path:{employment_id:a},query:{skip_benefits:!0,...o}}),"mutationFn")})},"useUpdateEmployment"),de=t(()=>{let{client:e}=s();return u({mutationFn:t(({employmentId:r,...n})=>E({client:e,headers:{Authorization:""},body:n,path:{employment_id:r}}),"mutationFn")})},"useUpdateEmploymentEngagementAgreementDetails"),pe=t(e=>{let{client:r}=s();return u({mutationFn:t(({employmentId:n,...o})=>{let a={json_schema_version:y(e)};return C({client:r,body:o,path:{employment_id:n},query:a})},"mutationFn")})},"useUpdateBenefitsOffers"),ye=t(e=>{let{client:r}=s(),{data:n,isLoading:o}=l({...U(r,"onboarding-countries"),select:t(i=>i.data?.data?.filter(m=>m.eor_onboarding).map(m=>({label:m.name,value:m.code,employment_agreement_preview_available:m.employment_agreement_preview_available}))||[],"select"),enabled:e?.queryOptions?.enabled}),a=d(B.data.schema,{},e);if(n){let i=a.fields.find(m=>m.name==="country");i&&(i.options=n)}return{isLoading:o,selectCountryForm:a,countries:n}},"useCountriesSchemaField"),ge=t(({type:e="spread"})=>{let{client:r}=s();return u({mutationFn:t(n=>(e==="no_spread"?g:j)({client:r,body:n}),"mutationFn")})},"useConvertCurrency"),fe=t(()=>{let{client:e}=s();return u({mutationFn:t(({employmentId:r,...n})=>x({client:e,path:{employment_id:r},body:n}),"mutationFn")})},"useUpsertContractEligibility"),be=t((e,r,n=!0)=>{let{client:o}=s();return l({queryKey:["employment-onboarding-reserves-status",e,r],retry:!1,enabled:n&&!!e&&!!r,queryFn:t(async()=>{let a=await b({client:o,headers:{Authorization:""},path:{company_id:e,employment_id:r}});if(a.error||!a.data)throw new Error("Failed to fetch employment onboarding reserves status");return a},"queryFn"),select:t(({data:a})=>a?.data?.status,"select")})},"useEmploymentOnboardingReservesStatus"),he=t((e,r,n)=>{let{client:o}=s();return l({queryKey:["engagement-agreement-details",e],retry:!1,enabled:n?.queryOptions?.enabled??!!e,queryFn:t(async()=>{let a=await v({client:o,path:{country_code:e}});if(a.error||!a.data)throw new Error("Failed to fetch engagement agreement details");return a},"queryFn"),select:t(({data:a})=>{let i=a?.data?.schema||{};return d(i,r,{jsfModify:n?.jsfModify?.engagement_agreement_details})},"select")})},"useEngagementAgreementDetailsSchema"),Ee=t((e,r)=>{let{client:n}=s();return l({queryKey:["pre-onboarding-requirements",e],queryFn:t(async()=>{let o=await O({client:n,path:{employment_id:e}});if(o.error||!o.data)throw new Error("Failed to fetch pre-onboarding requirements");return o},"queryFn"),enabled:r?.queryOptions?.enabled??!0,select:t(o=>o.data?.data,"select")})},"useGetPreOnboardingRequirements"),Fe=t(()=>{let{client:e}=s();return u({mutationFn:t(({employmentId:r,body:n})=>A({client:e,body:n,path:{employment_id:r}}),"mutationFn")})},"useCreatePreOnboardingDocument"),Ce=t((e,r,n)=>{let{client:o}=s();return l({queryKey:["pre-onboarding-document",e,r],queryFn:t(async()=>{let a=await P({client:o,path:{employment_id:e,id:r}});if(a.error||!a.data)throw new Error("Failed to fetch pre-onboarding document");return a},"queryFn"),enabled:(n?.queryOptions?.enabled??!0)&&!!r,select:t(a=>a.data?.data,"select")})},"useGetPreOnboardingDocument"),Oe=t(()=>{let{client:e}=s();return u({mutationFn:t(({employmentId:r,documentId:n,signature:o})=>R({client:e,path:{employment_id:r,id:n},body:{signature:o}}),"mutationFn")})},"useSignPreOnboardingDocument"),_e=t((e,r)=>{let{client:n}=s();return l({queryKey:["employment-agreement-preview",e],retry:!1,enabled:(r?.queryOptions?.enabled??!0)&&!!e,queryFn:t(async()=>{let o=await I({client:n,path:{employment_id:e}});if(o.error||!o.data)throw new Error("Failed to fetch employment agreement preview");return o},"queryFn"),select:t(o=>o.data?.data.employment_agreement,"select")})},"useEmploymentAgreementPreview");export{re as a,oe as b,ae as c,se as d,ie as e,me as f,le as g,ue as h,ce as i,de as j,pe as k,ye as l,ge as m,fe as n,be as o,he as p,Ee as q,Fe as r,Ce as s,Oe as t,_e as u};
|
|
2
|
+
//# sourceMappingURL=chunk-UYGDMJF2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/api.ts"],"sourcesContent":["import { useMutation, useQuery, UseQueryResult } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\nimport { Client } from '@/src/client/client';\nimport {\n ConvertCurrencyParams,\n CreateContractEligibilityParams,\n EmploymentCreateParams,\n EmploymentEngagementAgreementDetailsParams,\n EmploymentFullParams,\n FindOrCreatePreOnboardingDocumentParams,\n getV1CompaniesCompanyId,\n getV1CompaniesCompanyIdEmploymentsEmploymentIdOnboardingReservesStatus,\n getV1CountriesCountryCodeEngagementAgreementDetails,\n getV1CountriesCountryCodeForm,\n getV1EmploymentsEmploymentIdBenefitOffers,\n getV1EmploymentsEmploymentIdBenefitOffersSchema,\n getV1EmploymentsEmploymentIdEmploymentAgreementPreview,\n getV2EmploymentsEmploymentIdEngagementAgreementDetails,\n patchV1EmploymentsEmploymentId2,\n postV1CurrencyConverterEffective,\n postV1CurrencyConverterRaw,\n postV1Employments,\n postV1EmploymentsEmploymentIdContractEligibility,\n postV2EmploymentsEmploymentIdEngagementAgreementDetails,\n postV1EmploymentsEmploymentIdInvite,\n PostV1EmploymentsEmploymentIdInviteData,\n postV1OnboardingEmploymentsEmploymentIdPreOnboardingDocuments,\n postV1OnboardingEmploymentsEmploymentIdPreOnboardingDocumentsIdSign,\n postV1RiskReserve,\n putV1EmploymentsEmploymentIdBenefitOffers,\n UnifiedEmploymentUpsertBenefitOffersRequest,\n getV1OnboardingEmploymentsEmploymentIdPreOnboardingDocumentRequirements,\n getV1OnboardingEmploymentsEmploymentIdPreOnboardingDocumentsId,\n} from '@/src/client';\n\nimport { useClient } from '@/src/context';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport {\n OnboardingFlowProps,\n OnboardingJsfModify,\n} from '@/src/flows/Onboarding/types';\nimport {\n JSONSchemaFormResultWithFieldsets,\n JSONSchemaFormType,\n FlowOptions,\n} from '@/src/flows/types';\nimport {\n getContractDetailsSchemaVersion,\n getBasicInformationSchemaVersion,\n getBenefitOffersSchemaVersion,\n} from '@/src/flows/Onboarding/utils';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { countriesOptions } from '@/src/common/api/countries';\n\nexport const useCompany = (companyId: string) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['company', companyId],\n retry: false,\n enabled: !!companyId,\n queryFn: async () => {\n const response = await getV1CompaniesCompanyId({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n company_id: companyId,\n },\n });\n\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment data');\n }\n\n return response;\n },\n select: ({ data }) => {\n return data.data.company;\n },\n });\n};\n\nexport const useBenefitOffers = (employmentId: string | undefined) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n return getV1EmploymentsEmploymentIdBenefitOffers({\n client: client as Client,\n path: {\n employment_id: employmentId as string,\n },\n }).then((response) => {\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch benefit offers data');\n }\n\n return response;\n });\n },\n select: ({ data }) =>\n data?.data?.reduce(\n (acc, item) => {\n return {\n ...acc,\n [item.benefit_group.slug]: {\n value: item.benefit_tier?.slug ?? 'no',\n ...(item.benefit_group?.filter?.slug\n ? { filter: item.benefit_group?.filter?.slug }\n : {}),\n },\n };\n },\n {} as Record<string, { value: string }>,\n ),\n });\n};\n\nexport const useEmploymentEngagementAgreementDetails = (\n employmentId: string | undefined,\n queryOptions?: { enabled?: boolean },\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['employment-engagement-agreement-details', employmentId],\n retry: false,\n enabled: queryOptions?.enabled ?? !!employmentId,\n queryFn: async () => {\n return getV2EmploymentsEmploymentIdEngagementAgreementDetails({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId as string,\n },\n }).then((response) => {\n if (response.error || !response.data) {\n throw new Error('Failed to fetch engagement agreement details');\n }\n return response;\n });\n },\n select: ({ data }) => data?.data?.details,\n });\n};\n\n/**\n * Use this hook to invite an employee to the onboarding flow\n * @returns\n */\nexport const useEmploymentInvite = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: (payload: PostV1EmploymentsEmploymentIdInviteData['path']) => {\n return postV1EmploymentsEmploymentIdInvite({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: payload,\n });\n },\n });\n};\n\nexport const useCreateReserveInvoice = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: { employment_slug: string }) => {\n return postV1RiskReserve({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\n/**\n * Use this hook to get the JSON schema form for the onboarding flow\n * @param param0\n * @returns\n */\nexport const useJSONSchemaForm = ({\n countryCode,\n form,\n fieldValues,\n options,\n query = {},\n jsonSchemaVersion,\n}: {\n countryCode: string;\n form: JSONSchemaFormType;\n fieldValues: FieldValues;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n query?: Record<string, unknown>;\n jsonSchemaVersion?: number | 'latest';\n}): UseQueryResult<JSONSchemaFormResultWithFieldsets> => {\n const { client } = useClient();\n const jsonSchemaQueryParam = jsonSchemaVersion\n ? {\n json_schema_version: jsonSchemaVersion,\n }\n : {};\n return useQuery({\n queryKey: [\n 'onboarding-json-schema-form',\n countryCode,\n form,\n jsonSchemaVersion,\n ],\n retry: false,\n queryFn: async () => {\n const response = await getV1CountriesCountryCodeForm({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n country_code: countryCode,\n form: form,\n },\n query: {\n skip_benefits: true,\n ...query,\n ...jsonSchemaQueryParam,\n },\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch onboarding schema');\n }\n\n return response;\n },\n enabled: options?.queryOptions?.enabled,\n select: ({ data }) => {\n const jsfSchema = data?.data || {};\n return createHeadlessForm(jsfSchema, fieldValues, options);\n },\n });\n};\n\nexport const useBenefitOffersSchema = (\n employmentId: string,\n fieldValues: FieldValues,\n options: OnboardingFlowProps['options'],\n) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = {\n json_schema_version: getBenefitOffersSchemaVersion(options),\n };\n\n return useQuery({\n queryKey: ['benefit-offers-schema', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n const response = await getV1EmploymentsEmploymentIdBenefitOffersSchema({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n query: jsonSchemaQueryParam,\n });\n\n // If response status is 404 or other error, throw an error to trigger isError\n if (response.error || !response.data) {\n throw new Error('Failed to fetch benefit offers schema');\n }\n\n return response;\n },\n select: ({ data }) => {\n const jsfSchema = data?.data?.schema || {};\n\n return createHeadlessForm(jsfSchema, fieldValues, {\n jsfModify: options?.jsfModify?.benefits,\n });\n },\n });\n};\n\n/**\n * Use this hook to create an employment\n * @returns\n */\nexport const useCreateEmployment = (\n options?: OnboardingFlowProps['options'],\n) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = {\n json_schema_version: getBasicInformationSchemaVersion(options),\n };\n return useMutation({\n mutationFn: (payload: EmploymentCreateParams) => {\n return postV1Employments({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useUpdateEmployment = (\n countryCode: string,\n options?: OnboardingFlowProps['options'],\n) => {\n const { client } = useClient();\n const jsonSchemaQueryParams = {\n employment_basic_information_json_schema_version:\n getBasicInformationSchemaVersion(options),\n contract_details_json_schema_version:\n getContractDetailsSchemaVersion(options, countryCode) || 1,\n };\n\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: EmploymentFullParams & { employmentId: string }) => {\n return patchV1EmploymentsEmploymentId2({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n path: {\n employment_id: employmentId,\n },\n query: {\n skip_benefits: true,\n ...jsonSchemaQueryParams,\n },\n });\n },\n });\n};\n\nexport const useUpdateEmploymentEngagementAgreementDetails = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: EmploymentEngagementAgreementDetailsParams & {\n employmentId: string;\n }) => {\n return postV2EmploymentsEmploymentIdEngagementAgreementDetails({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: payload,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\nexport const useUpdateBenefitsOffers = (\n options?: OnboardingFlowProps['options'],\n) => {\n const { client } = useClient();\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: UnifiedEmploymentUpsertBenefitOffersRequest & {\n employmentId: string;\n }) => {\n const jsonSchemaQueryParam = {\n json_schema_version: getBenefitOffersSchemaVersion(options),\n };\n\n return putV1EmploymentsEmploymentIdBenefitOffers({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n query: jsonSchemaQueryParam,\n });\n },\n });\n};\n\nexport const useCountriesSchemaField = (\n options?: Omit<FlowOptions, 'jsonSchemaVersion'> & {\n queryOptions?: { enabled?: boolean };\n },\n) => {\n const { client } = useClient();\n const { data: countries, isLoading } = useQuery({\n ...countriesOptions(client as Client, 'onboarding-countries'),\n select: (response) => {\n return (\n response.data?.data\n ?.filter((country) => country.eor_onboarding)\n .map((country) => {\n return {\n label: country.name,\n value: country.code,\n employment_agreement_preview_available:\n country.employment_agreement_preview_available,\n };\n }) || []\n );\n },\n enabled: options?.queryOptions?.enabled,\n });\n\n const selectCountryForm = createHeadlessForm(\n selectCountryStepSchema.data.schema,\n {},\n options,\n );\n\n if (countries) {\n const countryField = selectCountryForm.fields.find(\n (field) => field.name === 'country',\n );\n if (countryField) {\n countryField.options = countries;\n }\n }\n\n return {\n isLoading,\n selectCountryForm,\n countries,\n };\n};\n\nexport const useConvertCurrency = ({\n type = 'spread',\n}: {\n type?: 'spread' | 'no_spread';\n}) => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: ConvertCurrencyParams) => {\n const apiFn =\n type === 'no_spread'\n ? postV1CurrencyConverterRaw\n : postV1CurrencyConverterEffective;\n return apiFn({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\nexport const useUpsertContractEligibility = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: { employmentId: string } & CreateContractEligibilityParams) => {\n return postV1EmploymentsEmploymentIdContractEligibility({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n body: payload,\n });\n },\n });\n};\n\n/**\n * Hook to fetch onboarding reserves status for an employment\n * @param companyId - Company ID\n * @param employmentId - Employment ID\n * @param enabled - Whether the query should be enabled\n * @returns Query result with onboarding reserves status\n */\nexport const useEmploymentOnboardingReservesStatus = (\n companyId: string | undefined,\n employmentId: string | undefined,\n enabled = true,\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: [\n 'employment-onboarding-reserves-status',\n companyId,\n employmentId,\n ],\n retry: false,\n enabled: enabled && !!companyId && !!employmentId,\n queryFn: async () => {\n const response =\n await getV1CompaniesCompanyIdEmploymentsEmploymentIdOnboardingReservesStatus(\n {\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n company_id: companyId as string,\n employment_id: employmentId as string,\n },\n },\n );\n\n if (response.error || !response.data) {\n throw new Error(\n 'Failed to fetch employment onboarding reserves status',\n );\n }\n\n return response;\n },\n select: ({ data }) => data?.data?.status,\n });\n};\n\nexport const useEngagementAgreementDetailsSchema = (\n countryCode: string,\n fieldValues: FieldValues,\n options?: {\n jsfModify?: OnboardingJsfModify;\n queryOptions?: { enabled?: boolean };\n },\n) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['engagement-agreement-details', countryCode],\n retry: false,\n enabled: options?.queryOptions?.enabled ?? !!countryCode,\n queryFn: async () => {\n const response =\n await getV1CountriesCountryCodeEngagementAgreementDetails({\n client: client as Client,\n path: {\n country_code: countryCode,\n },\n });\n\n if (response.error || !response.data) {\n throw new Error('Failed to fetch engagement agreement details');\n }\n\n return response;\n },\n select: ({ data }) => {\n const jsfSchema = data?.data?.schema || {};\n\n return createHeadlessForm(jsfSchema, fieldValues, {\n jsfModify: options?.jsfModify?.engagement_agreement_details,\n });\n },\n });\n};\n\n/**\n * Get pre-onboarding requirements for an employment\n */\nexport const useGetPreOnboardingRequirements = (\n employmentId: string,\n options?: { queryOptions?: { enabled?: boolean } },\n) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['pre-onboarding-requirements', employmentId],\n queryFn: async () => {\n const response =\n await getV1OnboardingEmploymentsEmploymentIdPreOnboardingDocumentRequirements(\n {\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n },\n );\n\n if (response.error || !response.data) {\n throw new Error('Failed to fetch pre-onboarding requirements');\n }\n\n return response;\n },\n enabled: options?.queryOptions?.enabled ?? true,\n select: (response) => response.data?.data,\n });\n};\n\n/**\n * Create a pre-onboarding document\n */\nexport const useCreatePreOnboardingDocument = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: ({\n employmentId,\n body,\n }: {\n employmentId: string;\n body: FindOrCreatePreOnboardingDocumentParams;\n }) => {\n return postV1OnboardingEmploymentsEmploymentIdPreOnboardingDocuments({\n client: client as Client,\n body,\n path: {\n employment_id: employmentId,\n },\n });\n },\n });\n};\n\n/**\n * Get pre-onboarding document preview\n */\nexport const useGetPreOnboardingDocument = (\n employmentId: string,\n documentId: string | undefined,\n options?: { queryOptions?: { enabled?: boolean } },\n) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['pre-onboarding-document', employmentId, documentId],\n queryFn: async () => {\n const response =\n await getV1OnboardingEmploymentsEmploymentIdPreOnboardingDocumentsId({\n client: client as Client,\n path: {\n employment_id: employmentId,\n id: documentId!,\n },\n });\n\n if (response.error || !response.data) {\n throw new Error('Failed to fetch pre-onboarding document');\n }\n\n return response;\n },\n enabled: (options?.queryOptions?.enabled ?? true) && !!documentId,\n select: (response) => response.data?.data,\n });\n};\n\n/**\n * Sign a pre-onboarding document\n */\nexport const useSignPreOnboardingDocument = () => {\n const { client } = useClient();\n\n return useMutation({\n mutationFn: ({\n employmentId,\n documentId,\n signature,\n }: {\n employmentId: string;\n documentId: string;\n signature: string;\n }) =>\n postV1OnboardingEmploymentsEmploymentIdPreOnboardingDocumentsIdSign({\n client: client as Client,\n path: {\n employment_id: employmentId,\n id: documentId,\n },\n body: {\n signature,\n },\n }),\n });\n};\n\n/**\n * Get employment agreement preview\n */\nexport const useEmploymentAgreementPreview = (\n employmentId: string | undefined,\n options?: { queryOptions?: { enabled?: boolean } },\n) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['employment-agreement-preview', employmentId],\n retry: false,\n enabled: (options?.queryOptions?.enabled ?? true) && !!employmentId,\n queryFn: async () => {\n const response =\n await getV1EmploymentsEmploymentIdEmploymentAgreementPreview({\n client: client as Client,\n path: {\n employment_id: employmentId as string,\n },\n });\n\n if (response.error || !response.data) {\n throw new Error('Failed to fetch employment agreement preview');\n }\n\n return response;\n },\n select: (response) => response.data?.data.employment_agreement,\n });\n};\n"],"mappings":"gbAAA,OAAS,eAAAA,EAAa,YAAAC,MAAgC,wBAsD/C,IAAMC,GAAaC,EAACC,GAAsB,CAC/C,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,UAAWH,CAAS,EAC/B,MAAO,GACP,QAAS,CAAC,CAACA,EACX,QAASD,EAAA,SAAY,CACnB,IAAMK,EAAW,MAAMC,EAAwB,CAC7C,OAAQJ,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAM,CACJ,WAAYD,CACd,CACF,CAAC,EAED,GAAII,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MAAM,iCAAiC,EAGnD,OAAOA,CACT,EAhBS,WAiBT,OAAQL,EAAA,CAAC,CAAE,KAAAO,CAAK,IACPA,EAAK,KAAK,QADX,SAGV,CAAC,CACH,EA3B0B,cA6BbC,GAAmBR,EAACS,GAAqC,CACpE,GAAM,CAAE,OAAAP,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,iBAAkBK,CAAY,EACzC,MAAO,GACP,QAAS,CAAC,CAACA,EACX,QAAST,EAAA,SACAU,EAA0C,CAC/C,OAAQR,EACR,KAAM,CACJ,cAAeO,CACjB,CACF,CAAC,EAAE,KAAMJ,GAAa,CAEpB,GAAIA,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MAAM,qCAAqC,EAGvD,OAAOA,CACT,CAAC,EAbM,WAeT,OAAQL,EAAA,CAAC,CAAE,KAAAO,CAAK,IACdA,GAAM,MAAM,OACV,CAACI,EAAKC,KACG,CACL,GAAGD,EACH,CAACC,EAAK,cAAc,IAAI,EAAG,CACzB,MAAOA,EAAK,cAAc,MAAQ,KAClC,GAAIA,EAAK,eAAe,QAAQ,KAC5B,CAAE,OAAQA,EAAK,eAAe,QAAQ,IAAK,EAC3C,CAAC,CACP,CACF,GAEF,CAAC,CACH,EAdM,SAeV,CAAC,CACH,EArCgC,oBAuCnBC,GAA0Cb,EAAA,CACrDS,EACAK,IACG,CACH,GAAM,CAAE,OAAAZ,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,0CAA2CK,CAAY,EAClE,MAAO,GACP,QAASK,GAAc,SAAW,CAAC,CAACL,EACpC,QAAST,EAAA,SACAe,EAAuD,CAC5D,OAAQb,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAM,CACJ,cAAeO,CACjB,CACF,CAAC,EAAE,KAAMJ,GAAa,CACpB,GAAIA,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MAAM,8CAA8C,EAEhE,OAAOA,CACT,CAAC,EAdM,WAgBT,OAAQL,EAAA,CAAC,CAAE,KAAAO,CAAK,IAAMA,GAAM,MAAM,QAA1B,SACV,CAAC,CACH,EA3BuD,2CAiC1CS,GAAsBhB,EAAA,IAAM,CACvC,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOc,EAAY,CACjB,WAAYjB,EAACkB,GACJC,EAAoC,CACzC,OAAQjB,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAMgB,CACR,CAAC,EAPS,aASd,CAAC,CACH,EAdmC,uBAgBtBE,GAA0BpB,EAAA,IAAM,CAC3C,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAC7B,OAAOc,EAAY,CACjB,WAAYjB,EAACkB,GACJG,EAAkB,CACvB,OAAQnB,EACR,KAAMgB,CACR,CAAC,EAJS,aAMd,CAAC,CACH,EAVuC,2BAiB1BI,GAAoBtB,EAAA,CAAC,CAChC,YAAAuB,EACA,KAAAC,EACA,YAAAC,EACA,QAAAC,EACA,MAAAC,EAAQ,CAAC,EACT,kBAAAC,CACF,IAOyD,CACvD,GAAM,CAAE,OAAA1B,CAAO,EAAIC,EAAU,EACvB0B,EAAuBD,EACzB,CACE,oBAAqBA,CACvB,EACA,CAAC,EACL,OAAOxB,EAAS,CACd,SAAU,CACR,8BACAmB,EACAC,EACAI,CACF,EACA,MAAO,GACP,QAAS5B,EAAA,SAAY,CACnB,IAAMK,EAAW,MAAMyB,EAA8B,CACnD,OAAQ5B,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAM,CACJ,aAAcqB,EACd,KAAMC,CACR,EACA,MAAO,CACL,cAAe,GACf,GAAGG,EACH,GAAGE,CACL,CACF,CAAC,EAGD,GAAIxB,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MAAM,mCAAmC,EAGrD,OAAOA,CACT,EAvBS,WAwBT,QAASqB,GAAS,cAAc,QAChC,OAAQ1B,EAAA,CAAC,CAAE,KAAAO,CAAK,IAAM,CACpB,IAAMwB,EAAYxB,GAAM,MAAQ,CAAC,EACjC,OAAOyB,EAAmBD,EAAWN,EAAaC,CAAO,CAC3D,EAHQ,SAIV,CAAC,CACH,EA3DiC,qBA6DpBO,GAAyBjC,EAAA,CACpCS,EACAgB,EACAC,IACG,CACH,GAAM,CAAE,OAAAxB,CAAO,EAAIC,EAAU,EACvB0B,EAAuB,CAC3B,oBAAqBK,EAA8BR,CAAO,CAC5D,EAEA,OAAOtB,EAAS,CACd,SAAU,CAAC,wBAAyBK,CAAY,EAChD,MAAO,GACP,QAAS,CAAC,CAACA,EACX,QAAST,EAAA,SAAY,CACnB,IAAMK,EAAW,MAAM8B,EAAgD,CACrE,OAAQjC,EACR,KAAM,CACJ,cAAeO,CACjB,EACA,MAAOoB,CACT,CAAC,EAGD,GAAIxB,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MAAM,uCAAuC,EAGzD,OAAOA,CACT,EAfS,WAgBT,OAAQL,EAAA,CAAC,CAAE,KAAAO,CAAK,IAAM,CACpB,IAAMwB,EAAYxB,GAAM,MAAM,QAAU,CAAC,EAEzC,OAAOyB,EAAmBD,EAAWN,EAAa,CAChD,UAAWC,GAAS,WAAW,QACjC,CAAC,CACH,EANQ,SAOV,CAAC,CACH,EAtCsC,0BA4CzBU,GAAsBpC,EACjC0B,GACG,CACH,GAAM,CAAE,OAAAxB,CAAO,EAAIC,EAAU,EACvB0B,EAAuB,CAC3B,oBAAqBQ,EAAiCX,CAAO,CAC/D,EACA,OAAOT,EAAY,CACjB,WAAYjB,EAACkB,GACJoB,EAAkB,CACvB,OAAQpC,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAMgB,EACN,MAAO,CACL,GAAGW,CACL,CACF,CAAC,EAVS,aAYd,CAAC,CACH,EArBmC,uBAuBtBU,GAAsBvC,EAAA,CACjCuB,EACAG,IACG,CACH,GAAM,CAAE,OAAAxB,CAAO,EAAIC,EAAU,EACvBqC,EAAwB,CAC5B,iDACEH,EAAiCX,CAAO,EAC1C,qCACEe,EAAgCf,EAASH,CAAW,GAAK,CAC7D,EAEA,OAAON,EAAY,CACjB,WAAYjB,EAAA,CAAC,CACX,aAAAS,EACA,GAAGS,CACL,IACSwB,EAAgC,CACrC,OAAQxC,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAMgB,EACN,KAAM,CACJ,cAAeT,CACjB,EACA,MAAO,CACL,cAAe,GACf,GAAG+B,CACL,CACF,CAAC,EAjBS,aAmBd,CAAC,CACH,EAjCmC,uBAmCtBG,GAAgD3C,EAAA,IAAM,CACjE,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOc,EAAY,CACjB,WAAYjB,EAAA,CAAC,CACX,aAAAS,EACA,GAAGS,CACL,IAGS0B,EAAwD,CAC7D,OAAQ1C,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAMgB,EACN,KAAM,CACJ,cAAeT,CACjB,CACF,CAAC,EAfS,aAiBd,CAAC,CACH,EAtB6D,iDAwBhDoC,GAA0B7C,EACrC0B,GACG,CACH,GAAM,CAAE,OAAAxB,CAAO,EAAIC,EAAU,EAC7B,OAAOc,EAAY,CACjB,WAAYjB,EAAA,CAAC,CACX,aAAAS,EACA,GAAGS,CACL,IAEM,CACJ,IAAMW,EAAuB,CAC3B,oBAAqBK,EAA8BR,CAAO,CAC5D,EAEA,OAAOoB,EAA0C,CAC/C,OAAQ5C,EACR,KAAMgB,EACN,KAAM,CACJ,cAAeT,CACjB,EACA,MAAOoB,CACT,CAAC,CACH,EAlBY,aAmBd,CAAC,CACH,EAzBuC,2BA2B1BkB,GAA0B/C,EACrC0B,GAGG,CACH,GAAM,CAAE,OAAAxB,CAAO,EAAIC,EAAU,EACvB,CAAE,KAAM6C,EAAW,UAAAC,CAAU,EAAI7C,EAAS,CAC9C,GAAG8C,EAAiBhD,EAAkB,sBAAsB,EAC5D,OAAQF,EAACK,GAELA,EAAS,MAAM,MACX,OAAQ8C,GAAYA,EAAQ,cAAc,EAC3C,IAAKA,IACG,CACL,MAAOA,EAAQ,KACf,MAAOA,EAAQ,KACf,uCACEA,EAAQ,sCACZ,EACD,GAAK,CAAC,EAXL,UAcR,QAASzB,GAAS,cAAc,OAClC,CAAC,EAEK0B,EAAoBpB,EACxBqB,EAAwB,KAAK,OAC7B,CAAC,EACD3B,CACF,EAEA,GAAIsB,EAAW,CACb,IAAMM,EAAeF,EAAkB,OAAO,KAC3CG,GAAUA,EAAM,OAAS,SAC5B,EACID,IACFA,EAAa,QAAUN,EAE3B,CAEA,MAAO,CACL,UAAAC,EACA,kBAAAG,EACA,UAAAJ,CACF,CACF,EA7CuC,2BA+C1BQ,GAAqBxD,EAAA,CAAC,CACjC,KAAAyD,EAAO,QACT,IAEM,CACJ,GAAM,CAAE,OAAAvD,CAAO,EAAIC,EAAU,EAC7B,OAAOc,EAAY,CACjB,WAAYjB,EAACkB,IAETuC,IAAS,YACLC,EACAC,GACO,CACX,OAAQzD,EACR,KAAMgB,CACR,CAAC,EARS,aAUd,CAAC,CACH,EAlBkC,sBAoBrB0C,GAA+B5D,EAAA,IAAM,CAChD,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAC7B,OAAOc,EAAY,CACjB,WAAYjB,EAAA,CAAC,CACX,aAAAS,EACA,GAAGS,CACL,IACS2C,EAAiD,CACtD,OAAQ3D,EACR,KAAM,CACJ,cAAeO,CACjB,EACA,KAAMS,CACR,CAAC,EAVS,aAYd,CAAC,CACH,EAhB4C,gCAyB/B4C,GAAwC9D,EAAA,CACnDC,EACAQ,EACAsD,EAAU,KACP,CACH,GAAM,CAAE,OAAA7D,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CACR,wCACAH,EACAQ,CACF,EACA,MAAO,GACP,QAASsD,GAAW,CAAC,CAAC9D,GAAa,CAAC,CAACQ,EACrC,QAAST,EAAA,SAAY,CACnB,IAAMK,EACJ,MAAM2D,EACJ,CACE,OAAQ9D,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAM,CACJ,WAAYD,EACZ,cAAeQ,CACjB,CACF,CACF,EAEF,GAAIJ,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MACR,uDACF,EAGF,OAAOA,CACT,EAtBS,WAuBT,OAAQL,EAAA,CAAC,CAAE,KAAAO,CAAK,IAAMA,GAAM,MAAM,OAA1B,SACV,CAAC,CACH,EAvCqD,yCAyCxC0D,GAAsCjE,EAAA,CACjDuB,EACAE,EACAC,IAIG,CACH,GAAM,CAAE,OAAAxB,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,+BAAgCmB,CAAW,EACtD,MAAO,GACP,QAASG,GAAS,cAAc,SAAW,CAAC,CAACH,EAC7C,QAASvB,EAAA,SAAY,CACnB,IAAMK,EACJ,MAAM6D,EAAoD,CACxD,OAAQhE,EACR,KAAM,CACJ,aAAcqB,CAChB,CACF,CAAC,EAEH,GAAIlB,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MAAM,8CAA8C,EAGhE,OAAOA,CACT,EAdS,WAeT,OAAQL,EAAA,CAAC,CAAE,KAAAO,CAAK,IAAM,CACpB,IAAMwB,EAAYxB,GAAM,MAAM,QAAU,CAAC,EAEzC,OAAOyB,EAAmBD,EAAWN,EAAa,CAChD,UAAWC,GAAS,WAAW,4BACjC,CAAC,CACH,EANQ,SAOV,CAAC,CACH,EApCmD,uCAyCtCyC,GAAkCnE,EAAA,CAC7CS,EACAiB,IACG,CACH,GAAM,CAAE,OAAAxB,CAAO,EAAIC,EAAU,EAE7B,OAAOC,EAAS,CACd,SAAU,CAAC,8BAA+BK,CAAY,EACtD,QAAST,EAAA,SAAY,CACnB,IAAMK,EACJ,MAAM+D,EACJ,CACE,OAAQlE,EACR,KAAM,CACJ,cAAeO,CACjB,CACF,CACF,EAEF,GAAIJ,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MAAM,6CAA6C,EAG/D,OAAOA,CACT,EAhBS,WAiBT,QAASqB,GAAS,cAAc,SAAW,GAC3C,OAAQ1B,EAACK,GAAaA,EAAS,MAAM,KAA7B,SACV,CAAC,CACH,EA5B+C,mCAiClCgE,GAAiCrE,EAAA,IAAM,CAClD,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOc,EAAY,CACjB,WAAYjB,EAAA,CAAC,CACX,aAAAS,EACA,KAAA6D,CACF,IAISC,EAA8D,CACnE,OAAQrE,EACR,KAAAoE,EACA,KAAM,CACJ,cAAe7D,CACjB,CACF,CAAC,EAbS,aAed,CAAC,CACH,EApB8C,kCAyBjC+D,GAA8BxE,EAAA,CACzCS,EACAgE,EACA/C,IACG,CACH,GAAM,CAAE,OAAAxB,CAAO,EAAIC,EAAU,EAE7B,OAAOC,EAAS,CACd,SAAU,CAAC,0BAA2BK,EAAcgE,CAAU,EAC9D,QAASzE,EAAA,SAAY,CACnB,IAAMK,EACJ,MAAMqE,EAA+D,CACnE,OAAQxE,EACR,KAAM,CACJ,cAAeO,EACf,GAAIgE,CACN,CACF,CAAC,EAEH,GAAIpE,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MAAM,yCAAyC,EAG3D,OAAOA,CACT,EAfS,WAgBT,SAAUqB,GAAS,cAAc,SAAW,KAAS,CAAC,CAAC+C,EACvD,OAAQzE,EAACK,GAAaA,EAAS,MAAM,KAA7B,SACV,CAAC,CACH,EA5B2C,+BAiC9BsE,GAA+B3E,EAAA,IAAM,CAChD,GAAM,CAAE,OAAAE,CAAO,EAAIC,EAAU,EAE7B,OAAOc,EAAY,CACjB,WAAYjB,EAAA,CAAC,CACX,aAAAS,EACA,WAAAgE,EACA,UAAAG,CACF,IAKEC,EAAoE,CAClE,OAAQ3E,EACR,KAAM,CACJ,cAAeO,EACf,GAAIgE,CACN,EACA,KAAM,CACJ,UAAAG,CACF,CACF,CAAC,EAlBS,aAmBd,CAAC,CACH,EAxB4C,gCA6B/BE,GAAgC9E,EAAA,CAC3CS,EACAiB,IACG,CACH,GAAM,CAAE,OAAAxB,CAAO,EAAIC,EAAU,EAE7B,OAAOC,EAAS,CACd,SAAU,CAAC,+BAAgCK,CAAY,EACvD,MAAO,GACP,SAAUiB,GAAS,cAAc,SAAW,KAAS,CAAC,CAACjB,EACvD,QAAST,EAAA,SAAY,CACnB,IAAMK,EACJ,MAAM0E,EAAuD,CAC3D,OAAQ7E,EACR,KAAM,CACJ,cAAeO,CACjB,CACF,CAAC,EAEH,GAAIJ,EAAS,OAAS,CAACA,EAAS,KAC9B,MAAM,IAAI,MAAM,8CAA8C,EAGhE,OAAOA,CACT,EAdS,WAeT,OAAQL,EAACK,GAAaA,EAAS,MAAM,KAAK,qBAAlC,SACV,CAAC,CACH,EA3B6C","names":["useMutation","useQuery","useCompany","__name","companyId","client","useClient","useQuery","response","getV1CompaniesCompanyId","data","useBenefitOffers","employmentId","getV1EmploymentsEmploymentIdBenefitOffers","acc","item","useEmploymentEngagementAgreementDetails","queryOptions","getV2EmploymentsEmploymentIdEngagementAgreementDetails","useEmploymentInvite","useMutation","payload","postV1EmploymentsEmploymentIdInvite","useCreateReserveInvoice","postV1RiskReserve","useJSONSchemaForm","countryCode","form","fieldValues","options","query","jsonSchemaVersion","jsonSchemaQueryParam","getV1CountriesCountryCodeForm","jsfSchema","createHeadlessForm","useBenefitOffersSchema","getBenefitOffersSchemaVersion","getV1EmploymentsEmploymentIdBenefitOffersSchema","useCreateEmployment","getBasicInformationSchemaVersion","postV1Employments","useUpdateEmployment","jsonSchemaQueryParams","getContractDetailsSchemaVersion","patchV1EmploymentsEmploymentId2","useUpdateEmploymentEngagementAgreementDetails","postV2EmploymentsEmploymentIdEngagementAgreementDetails","useUpdateBenefitsOffers","putV1EmploymentsEmploymentIdBenefitOffers","useCountriesSchemaField","countries","isLoading","countriesOptions","country","selectCountryForm","selectCountryStepSchema","countryField","field","useConvertCurrency","type","postV1CurrencyConverterRaw","postV1CurrencyConverterEffective","useUpsertContractEligibility","postV1EmploymentsEmploymentIdContractEligibility","useEmploymentOnboardingReservesStatus","enabled","getV1CompaniesCompanyIdEmploymentsEmploymentIdOnboardingReservesStatus","useEngagementAgreementDetailsSchema","getV1CountriesCountryCodeEngagementAgreementDetails","useGetPreOnboardingRequirements","getV1OnboardingEmploymentsEmploymentIdPreOnboardingDocumentRequirements","useCreatePreOnboardingDocument","body","postV1OnboardingEmploymentsEmploymentIdPreOnboardingDocuments","useGetPreOnboardingDocument","documentId","getV1OnboardingEmploymentsEmploymentIdPreOnboardingDocumentsId","useSignPreOnboardingDocument","signature","postV1OnboardingEmploymentsEmploymentIdPreOnboardingDocumentsIdSign","useEmploymentAgreementPreview","getV1EmploymentsEmploymentIdEmploymentAgreementPreview"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as Z}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as Z}from"./chunk-TOOCSXXQ.js";import{a as I}from"./chunk-VFRHMNLJ.js";import{a as Q,b as W,c as X,f as Y}from"./chunk-VTWVHO4F.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as G}from"./chunk-KFYWUBRS.js";import{c as ee}from"./chunk-3YTML5RG.js";import{a as z}from"./chunk-LKVQ32ZK.js";import{b as K,h as M}from"./chunk-G2LZFGZA.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Be,object as se}from"yup";import{useCallback as je,useEffect as te,useMemo as we,useRef as Re,useState as j}from"react";import{string as ne,ValidationError as re}from"yup";import{jsx as ie}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},Pe=o(t=>z(I.data.schema,void 0,t),"useStaticSchema");function xe(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(xe,"getSalaryTitle");var ze=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let u=Re({fields:{}}),[k,h]=j(t),[w,R]=j(),[m,q]=j(),[H,le]=j(),{data:_,isLoading:ue}=Q({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:ce}=W(),me=k||w?.value,{data:P,isLoading:de}=Y(me,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=X(),{mutateAsync:fe}=K(U),b=w?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=je(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),J=s.showManagementFee,$=s.includeEstimationTitle,ge=we(()=>{let{from:e,to:r,shouldSwapOrder:c}=L(),g=xe(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>ie(Z,{...y,shouldSwapOrder:c,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!J,Component:o(y=>ie(ee,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!$}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,J,$,l]),f=Pe({jsfModify:{fields:{...n?.jsfModify?.fields,...ge?.fields}}});te(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&R(e)}},[t,_]),te(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function ye(e){return fe(oe(e,s,a))}o(ye,"onSubmit");function pe(e){let r=_?.find(({value:c})=>c===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?h(r.regionSlug):h(void 0),R(r)}o(pe,"onCountryChange");function Ce(e){h(e)}o(Ce,"onRegionChange");function _e(e){le(e.target.value)}o(_e,"onHiringBudgetChange");function be(e){let r=d?.find(c=>c.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(be,"onChangeCurrency");let E=f.fields.find(e=>e.name==="region");if(E){let e=w?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];E.options=e,E.isVisible=e.length>0,E.required=e.length>0,E.onChange=Ce,E.schema=e.length>0?ne().transform(r=>typeof r=="string"?r:"").required("Region is required"):ne()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=be)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=_e),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=pe)}let Ee=o(()=>{R(void 0),h(t)},"resetForm"),D=[...f.fields.filter(e=>e.name!=="management"),...P?.fields||[],...f.fields.filter(e=>e.name==="management")],N=ae(f.fields,m||"USD",s.includeEstimationTitle);async function Se(e){let r=null;n?.onValidation?.(e);let c=await M(e,D);try{await N.validate(c,{abortEarly:!1}),r={formErrors:{},yupError:new re([],e)}}catch(S){let B=G(S);r={formErrors:Object.entries(B).reduce((T,[A,V])=>({...T,[A]:V.message}),{}),yupError:S}}let g=P?.handleValidation(c),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new re(y,x)}}return o(Se,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:D,validationSchema:N,parseFormValues:o(async e=>{let{country:r,region:c,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:S,management:B,estimation_title:T,...A}=e,V=e.salary;y==="salary_conversion"&&(V=S);let he=await M({country:r,region:c,salary:V,salary_converted:y,salary_conversion:S,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Fe=await M(A,P?.fields||[]),Ve={currency_code:d?.find(Me=>Me.value===g)?.label};return{...he,...Fe,...Ve}},"parseFormValues"),handleValidation:Se,isSubmitting:U.isPending,isLoading:ue&&ce&&de,onSubmit:ye,resetForm:Ee,currencies:d,meta:{fields:u.current?.fields}}},"useCostCalculator");function ae(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(u=>u===a.name,"is"),then:o(u=>u.required("Required field"),"then"),otherwise:o(u=>u.optional(),"otherwise")}):a.name==="management"?n[a.name]=se({management_fee:Be().transform(u=>isNaN(u)?void 0:u).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return se(s)}o(ae,"buildValidationSchema");function Te(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let u={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,u]},[])}o(Te,"formatBenefits");function Ae(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Te(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...Oe(t,l)}}o(Ae,"mapValueToEmployment");function Oe(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(Oe,"getSalaryFields");function oe(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Ae(n,i,l))}}o(oe,"buildPayload");export{ae as a,oe as b,O as c,ze as d};
|
|
2
|
+
//# sourceMappingURL=chunk-V5EBEJON.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-Y34DKDJI.js";import{b as e}from"./chunk-Q3ALCPJN.js";import{x as n}from"./chunk-G2LZFGZA.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function b({onSubmit:m,onSuccess:d,onError:c}){let{contractorOnboardingBag:o}=e(),p=t(async(i,f)=>{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,f);c?.(r)}},"handleSubmit"),l=o.stepState.values?.basic_information||o.initialValues.basic_information;return u(s,{defaultValues:l,onSubmit:p})}t(b,"BasicInformationStep");export{b as a};
|
|
2
|
+
//# sourceMappingURL=chunk-V62JQXIC.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as Q}from"./chunk-4MB3FE3T.js";import{a as J}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as Q}from"./chunk-4MB3FE3T.js";import{a as J}from"./chunk-ELM6CPRT.js";import{a as H}from"./chunk-NEKE5PRJ.js";import{a as U}from"./chunk-6DHV4GT6.js";import{a as W}from"./chunk-PQG6KZIO.js";import{a as Y}from"./chunk-QI4MWDJS.js";import{a as q,b as B,c as L,d as z}from"./chunk-WLPWXK7I.js";import{f as Z,g as K}from"./chunk-7FCKRGGD.js";import{a as R}from"./chunk-ZXGAFQXW.js";import{a as S}from"./chunk-6PWZ4TBI.js";import{a as N}from"./chunk-PJ6KPGIE.js";import{a as E}from"./chunk-LKVQ32ZK.js";import{a as _,c as v}from"./chunk-2Q462FT7.js";import{s as O}from"./chunk-GZUP2IE6.js";import{b as w,h as u,n as D}from"./chunk-G2LZFGZA.js";import{a as A}from"./chunk-JDIKYCN6.js";import{a as I}from"./chunk-626FTNKA.js";import{e as $}from"./chunk-H2O4CVKF.js";import{a as o}from"./chunk-P37U34EQ.js";import xe from"lodash.omitby";import je from"lodash.isnull";import{format as x,isFuture as Ve,parseISO as j,subDays as Pe}from"date-fns";import{useMemo as V}from"react";import be from"lodash.omit";import{useQuery as Fe}from"@tanstack/react-query";var G=o(({query:t,options:e})=>{let{client:y}=$();return Fe({queryKey:["payroll-calendars"],queryFn:o(()=>O({client:y,query:{year:t?.year,country_code:t?.countryCode}}),"queryFn"),enabled:e?.enabled,select:o(c=>c.data?.data?.payroll_calendars?.[0],"select")})},"usePayrollCalendars");import{isFuture as Me,isToday as ge,parseISO as Se}from"date-fns";var X=o(t=>{if(!t)return!1;let e=Se(t);return Me(e)||ge(e)},"isInProbationPeriod");import{Fragment as ke,jsx as m,jsxs as Ce}from"react/jsx-runtime";var lo=o(({employmentId:t,options:e,initialValues:y})=>{let{fieldValues:c,setFieldValues:ee,stepState:l,previousStep:oe,nextStep:ie}=A(q),{data:n,isLoading:te}=N({employmentId:t,queryParams:{exclude_files:!0}}),{data:ne}=G({query:{year:new Date().getFullYear().toString(),countryCode:n?.country?.code},options:{enabled:!!n?.country?.code}}),T=X(n?.probation_period_end_date),F=B(ne),P=V(()=>T?x(new Date,"yyyy-MM-dd"):x(F,"yyyy-MM-dd"),[T,F]),M=!!(n?.provisional_start_date&&Ve(j(n.provisional_start_date))),ae={personal_email:n?.basic_information?.email},g=z({...ae,...y,...l.values?.employee_communication,...l.values?.termination_details,...l.values?.paid_time_off,...l.values?.additional_information},M),d=V(()=>({...g,...c}),[c,g]),b=L({minTerminationDate:F,isEmployeeInProbationPeriod:T,selectedDate:j(d.proposed_termination_date)}),re=V(()=>{let s=R.data.schema.properties.termination_reason.oneOf,a=M?s.filter(i=>i.const==="cancellation_before_start_date"):s.filter(i=>i.const!=="cancellation_before_start_date");return{fields:{risk_assesment_info:S("Offboarding risk assessment","Employees may be protected from termination if they fall into certain categories. To help avoid claims from employees, let us know if the employee is part of one or more of these categories. Select all that apply.",{className:e?.jsfModify?.fields?.risk_assesment_info?.["x-jsf-presentation"]?.className}),termination_reason:{...e?.jsfModify?.fields?.termination_reason,oneOf:a},proposed_termination_date_info:S("Proposed termination date",Ce(ke,{children:["In most cases, Remote must provide notice to the employee before termination. The required notice period depends on local labor laws, the employment agreement, and other factors. We'll use those factors to determine the required notice period.",m(v,{external:!0,zendeskId:_.terminationNoticePeriods,className:D("text-sm",e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.zendeskTriggerButtonClassName),children:"Learn about notice periods"})]}),{className:e?.jsfModify?.fields?.proposed_termination_date_info?.["x-jsf-presentation"]?.className}),proposed_termination_date:{...e?.jsfModify?.fields?.proposed_termination_date,"x-jsf-presentation":{...e?.jsfModify?.fields?.proposed_termination_date?.["x-jsf-presentation"],minDate:P,...d.termination_reason==="cancellation_before_start_date"&&n?.provisional_start_date?{maxDate:x(Pe(j(n.provisional_start_date),1),"yyyy-MM-dd")}:{},...b},...d.termination_reason==="cancellation_before_start_date"?{"x-jsf-errorMessage":{maximum:"The proposed termination date must be before the employee's start date."}}:{}},paid_time_off_info:{...e?.jsfModify?.fields?.paid_time_off_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.paid_time_off_info?.["x-jsf-presentation"]?.Component;return m(J,{employeeName:n?.basic_information?.name,proposedTerminationDate:d.proposed_termination_date,employmentId:t,employment:n,render:r=>i?m(i,{...r}):m(Q,{...r})})},"Component")}},acknowledge_termination_procedure_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"],Component:o(()=>{let i=e?.jsfModify?.fields?.acknowledge_termination_procedure_info?.["x-jsf-presentation"]?.Component;return m(U,{render:r=>i?m(i,{...r}):m(W,{...r})})},"Component")}},acknowledge_termination_procedure_fees_info:{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,"x-jsf-presentation":{...e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"],Component:o(()=>{let i={involuntaryOffboardingServiceChargeZendeskId:_.involuntaryOffboardingServiceCharge,reconciliationInvoiceZendeskId:_.reconciliationInvoice},r=e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info?.["x-jsf-presentation"]?.Component;return r?m(r,{...i}):m(Y,{...i})},"Component")}}}}},[n,t,d.proposed_termination_date,d.termination_reason,M,P,e?.jsfModify?.fields?.acknowledge_termination_procedure_fees_info,e?.jsfModify?.fields?.acknowledge_termination_procedure_info,e?.jsfModify?.fields?.paid_time_off_info,e?.jsfModify?.fields?.proposed_termination_date,e?.jsfModify?.fields?.proposed_termination_date_info,e?.jsfModify?.fields?.risk_assesment_info,e?.jsfModify?.fields?.termination_reason,b]),{data:f,isLoading:se}=K({formValues:d,jsfModify:{...e?.jsfModify,fields:{...e?.jsfModify?.fields,...re?.fields}},step:l.currentStep.name}),me=E(H.data.schema),k=Z(),{mutateAsync:de}=w(k);async function fe(s){if(!t)throw new Error("Employment id is missing");if(f){let a=await C(s,!0),{customer_informed_employee:i}=a,r=i==="yes"?{employee_awareness:{date:a.customer_informed_employee_date,note:a.customer_informed_employee_description}}:void 0,ue=await I(a,["agrees_to_pto_amount","confidential","customer_informed_employee","will_challenge_termination"]),_e=be(ue,"customer_informed_employee_date","customer_informed_employee_description"),ye=xe({..._e,...r},je),p=a.timesheet_file??[],h=Array.isArray(p)&&p.length>0?{content:p[0].content,name:p[0].name}:void 0,Te={employment_id:t,termination_details:{...ye,timesheet_file:h||void 0},type:"termination"};return de(Te)}}o(fe,"onSubmit");function le(){oe()}o(le,"back");function ce(){ie()}o(ce,"next");let pe=Object.keys(c).length>0,C=o(async(s,a=!1)=>a?await u(s,me.fields,{isPartialValidation:!0}):f?await u(s,f?.fields,{isPartialValidation:!0}):{},"parseFormValues");return{employmentId:t,employment:n,fieldValues:d,isDirty:pe,stepState:l,fields:f?.fields||[],isLoading:se||te,isSubmitting:k.isPending,initialValues:g,handleValidation:o(async s=>{if(f){let a=await u(s,f?.fields);return f?.handleValidation(a)}return null},"handleValidation"),checkFieldUpdates:ee,parseFormValues:C,onSubmit:fe,back:le,next:ce}},"useTermination");export{lo as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VNHXMVTF.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as p}from"./chunk-LKVQ32ZK.js";import{F as c,N as m,R as C,W as d,o as l,y as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as p}from"./chunk-LKVQ32ZK.js";import{F as c,N as m,R as C,W as d,o as l,y as u}from"./chunk-GZUP2IE6.js";import{e as i}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as n,useQuery as r}from"@tanstack/react-query";var q=t(({includePremiumBenefits:e})=>{let{client:o}=i();return r({queryKey:["cost-calculator-countries",e],queryFn:t(()=>c({client:o,query:{include_premium_benefits:e}}),"queryFn"),select:t(a=>a.data?.data.filter(s=>s.availability==="active").map(s=>({value:s.region_slug,label:s.name,childRegions:s.child_regions,hasAdditionalFields:s.has_additional_fields,regionSlug:s.region_slug,currency:s.currency.code})),"select")})},"useCostCalculatorCountries"),P=t(()=>{let{client:e}=i();return r({queryKey:["company-currencies"],queryFn:t(()=>d({client:e}),"queryFn"),select:t(o=>o.data?.data?.company_currencies.map(a=>({value:a.slug,label:a.code})),"select")})},"useCompanyCurrencies"),h=t(()=>{let{client:e}=i();return n({mutationFn:t(o=>l({client:e,body:o}),"mutationFn")})},"useCostCalculatorEstimation"),v=t(()=>{let{client:e}=i();return n({mutationFn:t(o=>u({client:e,body:o}),"mutationFn")})},"useCostCalculatorEstimationPdf"),x=t(()=>{let{client:e}=i();return n({mutationFn:t(o=>C({client:e,body:o}),"mutationFn")})},"useCostCalculatorEstimationCsv"),V=t((e,{includePremiumBenefits:o,options:a})=>{let{client:s}=i();return r({queryKey:["cost-calculator-region-fields",e,o],queryFn:t(()=>m({client:s,path:{slug:e},query:{include_premium_benefits:o}}),"queryFn"),enabled:!!e,select:t(({data:f})=>{let y=f?.data?.schema||{};return p(y,void 0,a)},"select")})},"useRegionFields");export{q as a,P as b,h as c,v as d,x as e,V as f};
|
|
2
|
+
//# sourceMappingURL=chunk-VTWVHO4F.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n}from"./chunk-KN2Q5NOL.js";import{b as e}from"./chunk-MRYRNB7Y.js";import{a as r}from"./chunk-P37U34EQ.js";import{jsx as u}from"react/jsx-runtime";function F({onSubmit:t,onSuccess:s,onError:m}){let{terminationBag:o}=e(),d=r(async a=>{let l=await o?.parseFormValues(a,!0);await t?.(l);let i=await o?.onSubmit(a);i?.error?m?.(i.rawError):i?.data&&await s?.(i.data)},"handleSubmit");return u(n,{defaultValues:o.fieldValues,fields:o?.fields,onSubmit:d})}r(F,"AdditionalDetailsForm");export{F as a};
|
|
2
|
+
//# sourceMappingURL=chunk-VYZOGC65.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as l}from"./chunk-AC4MDLIM.js";import{b as s}from"./chunk-PGWKJ6FK.js";import{c as n}from"./chunk-G2LZFGZA.js";import{a as t}from"./chunk-P37U34EQ.js";import{jsx as E}from"react/jsx-runtime";function S({onSubmit:d,onError:a,onSuccess:m}){let{onboardingBag:r}=s(),c=t(async i=>{try{let e=await r.parseFormValues(i);await d?.(e);let o=await r.onSubmit(i);if(o?.data){await m?.(o.data),r?.next();return}if(o?.error){let p=n(o?.fieldErrors||[],r.meta?.fields?.contract_details);a?.({error:o.error,rawError:o.rawError,fieldErrors:p})}}catch(e){a?.({error:e,rawError:e,fieldErrors:[]})}},"handleSubmit");return E(l,{defaultValues:r.stepState.values?.contract_details||r.initialValues.contract_details,onSubmit:c})}t(S,"ContractDetailsStep");export{S as a};
|
|
2
|
+
//# sourceMappingURL=chunk-W2WHWA5J.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as P,b as W,c as u}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as P,b as W,c as u}from"./chunk-3YTML5RG.js";import{a as l}from"./chunk-OXTA4W4J.js";import{c as y}from"./chunk-Y3CJRZLA.js";import{j as h,m as x}from"./chunk-G2LZFGZA.js";import{a as c}from"./chunk-P37U34EQ.js";import{Fragment as $}from"react";import a from"lodash.omit";var C={...P,fieldset:u,"fieldset-flat":u};import{Fragment as S,jsx as n,jsxs as g}from"react/jsx-runtime";var B=c(({fields:p,fieldsets:d,fieldValues:i,components:m})=>{let{setValue:T,watch:M}=y();if(!p||p.length===0)return null;let J=d&&i?h({fields:p,fieldsets:d,values:i}):p,r=c((e,F,o)=>F.WrapperComponent?n(F.WrapperComponent,{children:e},o):n($,{children:e},o),"wrapWithCustomWrapper");return n(S,{children:J.map(e=>{if(e.calculateDynamicProperties&&(e={...e,...e.calculateDynamicProperties(i,e)||{}}),e.isVisible===!1||e.deprecated||e.hidden)return null;if(x(e)){let t=a(e,"WrapperComponent");return r(n(W,{name:t.name,description:t.description,value:t.const,statement:t.statement,label:t.label,helpCenter:t.meta?.helpCenter}),e,e.name)}if(e.Component){let{Component:t}=e,R=a(e,["Component","WrapperComponent"]);return r(g(S,{children:[n(t,{...R,value:M(e.name),setValue:V=>T(e.name,V)}),e.statement?n(l,{...e.statement}):null,e.extra?e.extra:null]}),e,e.name)}let o=e.type,s=C[o];if(!s)return g("p",{className:"error",children:["Field type ",o," not supported"]});if(o==="fieldset"){let t=a(e,"WrapperComponent");return r(n(s,{...t,components:m}),e,e.name)}if(o==="fieldset-flat"){let t=a(e,"WrapperComponent");return r(n(s,{...t,components:m,isFlatFieldset:!0}),e,e.name)}o==="select"&&e.multiple&&(s=C["multi-select"]);let k=a(e,"WrapperComponent");return r(g(S,{children:[n(s,{...k,component:m&&m[o]}),e.statement?n(l,{...e.statement}):null,e.extra?e.extra:null]}),e,e.name)})})},"JSONSchemaFormFields");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-W5MWHAAI.js.map
|