@remoteoss/remote-flows 1.36.1 → 1.37.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-S34KMEYI.js +2 -0
- package/dist/CountryFieldDefault-7QRRW5DN.js +2 -0
- package/dist/DatePickerFieldDefault-PXUJRPBW.js +2 -0
- package/dist/RadioGroupFieldDefault-CHBXLRJG.js +2 -0
- package/dist/TextAreaFieldDefault-APKDH7AU.js +2 -0
- package/dist/{chunk-AAGHUVZO.js → chunk-2ADIF2YA.js} +2 -2
- package/dist/{chunk-QVMGEH5W.js → chunk-3E6JC5HM.js} +2 -2
- package/dist/{chunk-2OAOYM2S.js → chunk-3ECVOIHE.js} +2 -2
- package/dist/{chunk-LWKPIYNR.js → chunk-3KNCGVWU.js} +2 -2
- package/dist/{chunk-YEDPNGC2.js → chunk-3PDMZU34.js} +2 -2
- package/dist/{chunk-VBEQBO5C.js → chunk-4YAFCYZ7.js} +2 -2
- package/dist/chunk-4YW6P3IJ.js +8 -0
- package/dist/chunk-4YW6P3IJ.js.map +1 -0
- package/dist/{chunk-3RGEOFP5.js → chunk-5EUXQYKE.js} +2 -2
- package/dist/{chunk-6D5IHLXV.js → chunk-6SWW244N.js} +2 -2
- package/dist/{chunk-Z7NYTCDD.js → chunk-6VBWP6AA.js} +2 -2
- package/dist/{chunk-ETQGE6PJ.js → chunk-6Y3CFPJN.js} +2 -2
- package/dist/chunk-7F32RGMM.js +2 -0
- package/dist/chunk-7F32RGMM.js.map +1 -0
- package/dist/chunk-AIFEZDEM.js +2 -0
- package/dist/chunk-AIFEZDEM.js.map +1 -0
- package/dist/{chunk-KBTXSPHK.js → chunk-AZJ2LLX5.js} +2 -2
- package/dist/{chunk-F2ENM2JE.js → chunk-BFYHFJHJ.js} +2 -2
- package/dist/{chunk-Z7BBMYLU.js → chunk-BNJEVVWG.js} +2 -2
- package/dist/chunk-BVUHS36Q.js +2 -0
- package/dist/{chunk-DL5NWXSY.js.map → chunk-BVUHS36Q.js.map} +1 -1
- package/dist/{chunk-UXQVHXRL.js → chunk-DAQZZBSX.js} +2 -2
- package/dist/{chunk-NHO3QINW.js → chunk-DN7HJZB3.js} +2 -2
- package/dist/chunk-E2FLISWH.js +2 -0
- package/dist/chunk-E2FLISWH.js.map +1 -0
- package/dist/{chunk-QSP35X2D.js → chunk-EFJ5PMPI.js} +2 -2
- package/dist/{chunk-ZQE3SMB2.js → chunk-EKRKYUUE.js} +2 -2
- package/dist/{chunk-PCNT5L6Q.js → chunk-F22V7VEW.js} +2 -2
- package/dist/{chunk-3LOC5XJ5.js → chunk-GJVGPPYO.js} +2 -2
- package/dist/{chunk-VGCRMNT3.js → chunk-GPP2S5Q7.js} +2 -2
- package/dist/{chunk-2K4N6RPD.js → chunk-GRNUG4VT.js} +2 -2
- package/dist/{chunk-EYTOP742.js → chunk-K52TCY57.js} +2 -2
- package/dist/{chunk-B7IJZJCP.js → chunk-KOLEBOZV.js} +2 -2
- package/dist/{chunk-25Y7W5UH.js → chunk-KX53HZEP.js} +2 -2
- package/dist/{chunk-CTARNWJJ.js → chunk-LQ5GKNVU.js} +2 -2
- package/dist/{chunk-K7VKNGNL.js → chunk-MR5HKPX2.js} +2 -2
- package/dist/chunk-MT7H2K34.js +2 -0
- package/dist/chunk-MT7H2K34.js.map +1 -0
- package/dist/chunk-O77SKTAI.js +2 -0
- package/dist/{chunk-RCGOP7XI.js.map → chunk-O77SKTAI.js.map} +1 -1
- package/dist/{chunk-YVI7H5WV.js → chunk-OMAWYQU7.js} +2 -2
- package/dist/{chunk-XRQD4XM4.js → chunk-ONMQSOSC.js} +2 -2
- package/dist/chunk-OQQ4JHSR.js +2 -0
- package/dist/chunk-OQQ4JHSR.js.map +1 -0
- package/dist/{chunk-Q65JWWKR.js → chunk-ORBP27OM.js} +2 -2
- package/dist/{chunk-J2IE47OQ.js → chunk-P3LLZ4SA.js} +2 -2
- package/dist/{chunk-DACZVIVC.js → chunk-P3VAZLG4.js} +2 -2
- package/dist/{chunk-UP5HIO22.js → chunk-P4V4AMFC.js} +2 -2
- package/dist/{chunk-LPC7BX6K.js → chunk-P6PJDSR5.js} +2 -2
- package/dist/{chunk-PJF6KXN6.js → chunk-PZCRVFCK.js} +2 -2
- package/dist/chunk-QSBXRKYE.js +2 -0
- package/dist/{chunk-NXSKHM4K.js → chunk-QZXOBKVL.js} +2 -2
- package/dist/{chunk-T2BRDPOR.js → chunk-R2L4HXQY.js} +2 -2
- package/dist/{chunk-ODWPGJF6.js → chunk-RK4VZQOX.js} +2 -2
- package/dist/{chunk-3P46CNLA.js → chunk-RUS5TGZ2.js} +2 -2
- package/dist/{chunk-EQH3XT6E.js → chunk-S2PN3IWU.js} +2 -2
- package/dist/{chunk-2B3OMLDM.js → chunk-S6VLGYPA.js} +2 -2
- package/dist/{chunk-MXI6VPRG.js → chunk-SCTVUVDF.js} +2 -2
- package/dist/chunk-TVM6I7P4.js +2 -0
- package/dist/chunk-TVM6I7P4.js.map +1 -0
- package/dist/{chunk-VRRPMJLZ.js → chunk-TZA2SOIV.js} +2 -2
- package/dist/{chunk-IUSNP2RM.js → chunk-TZOTRZGK.js} +2 -2
- package/dist/{chunk-ABESS75C.js → chunk-VUGTA3CI.js} +2 -2
- package/dist/{chunk-4NU2RDSJ.js → chunk-VY435JUV.js} +2 -2
- package/dist/{chunk-RPOFQPG5.js → chunk-W64ERZID.js} +2 -2
- package/dist/{chunk-BVAUKARC.js → chunk-WNEA4YK3.js} +2 -2
- package/dist/{chunk-YLYAVSJP.js → chunk-XA4CSH2R.js} +2 -2
- package/dist/{chunk-ONIYOQMH.js → chunk-XFZCY4EF.js} +2 -2
- package/dist/{chunk-UD7WWKMC.js → chunk-XO5ZAXQI.js} +2 -2
- package/dist/{chunk-NHLUPT2E.js → chunk-XX6RWLM6.js} +2 -2
- package/dist/{chunk-XY2X6FWI.js → chunk-Y36S433X.js} +2 -2
- package/dist/{chunk-IF42CZJH.js → chunk-YRC6EEM3.js} +2 -2
- package/dist/{chunk-TUJZUC3C.js → chunk-Z5G55QMI.js} +2 -2
- package/dist/chunk-Z7ZRTQE7.js +2 -0
- package/dist/chunk-Z7ZRTQE7.js.map +1 -0
- package/dist/chunk-ZE3YT3Q6.js +2 -0
- package/dist/chunk-ZE3YT3Q6.js.map +1 -0
- package/dist/{chunk-6MP4UBOE.js → chunk-ZY2EB7PF.js} +2 -2
- 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/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/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 +5 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +62 -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/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 +32 -0
- package/dist/flows/Onboarding/components/PreOnboardingRequirements.js +2 -0
- package/dist/flows/Onboarding/components/PreOnboardingRequirements.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 +6 -5
- package/dist/flows/Onboarding/hooks.d.ts +5 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +5 -4
- 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/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.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +12 -11
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +63 -50
- package/dist/internals.js +1 -1
- package/dist/{mutations-BfsmgCGD.d.ts → mutations-BVHVt1Kt.d.ts} +1 -1
- package/dist/{remoteFlows-O-Pz6K9_.d.ts → remoteFlows-CWau1q8v.d.ts} +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/dist/{types-_A37Ga2t.d.ts → types-BZT3hxkv.d.ts} +4 -4
- package/dist/{types-pc9ukjqN.d.ts → types-CVQU4sbz.d.ts} +2 -2
- package/dist/{types-CY31SALf.d.ts → types-CX5qpDkm.d.ts} +1 -1
- package/dist/{types-DIU2pRZp.d.ts → types-KHPnDWtF.d.ts} +3 -3
- package/dist/{types-CVfjhhz9.d.ts → types-MdlNPaLh.d.ts} +7 -4
- package/dist/{types.gen-D39CBKLR.d.ts → types.gen-UDDUjQdv.d.ts} +82 -2
- package/dist/{utils-CnpKrCwn.d.ts → utils-CjzRkcpV.d.ts} +1 -1
- package/package.json +1 -1
- package/dist/CheckboxFieldDefault-2VCAKWLA.js +0 -2
- package/dist/CountryFieldDefault-57ODTLPY.js +0 -2
- package/dist/DatePickerFieldDefault-NODTGDNL.js +0 -2
- package/dist/RadioGroupFieldDefault-ZX4Z2EVK.js +0 -2
- package/dist/TextAreaFieldDefault-JOSXKY6O.js +0 -2
- package/dist/chunk-5SY73IBC.js +0 -2
- package/dist/chunk-5SY73IBC.js.map +0 -1
- package/dist/chunk-73MHNSF2.js +0 -2
- package/dist/chunk-73MHNSF2.js.map +0 -1
- package/dist/chunk-B437XNYG.js +0 -2
- package/dist/chunk-B437XNYG.js.map +0 -1
- package/dist/chunk-C5PA6MLW.js +0 -2
- package/dist/chunk-C5PA6MLW.js.map +0 -1
- package/dist/chunk-DL5NWXSY.js +0 -2
- package/dist/chunk-DN6BXTAC.js +0 -2
- package/dist/chunk-ER46UFIU.js +0 -8
- package/dist/chunk-ER46UFIU.js.map +0 -1
- package/dist/chunk-RCGOP7XI.js +0 -2
- package/dist/chunk-WH26FC23.js +0 -2
- package/dist/chunk-WH26FC23.js.map +0 -1
- package/dist/chunk-ZONDSFHH.js +0 -2
- package/dist/chunk-ZONDSFHH.js.map +0 -1
- /package/dist/{CheckboxFieldDefault-2VCAKWLA.js.map → CheckboxFieldDefault-S34KMEYI.js.map} +0 -0
- /package/dist/{CountryFieldDefault-57ODTLPY.js.map → CountryFieldDefault-7QRRW5DN.js.map} +0 -0
- /package/dist/{DatePickerFieldDefault-NODTGDNL.js.map → DatePickerFieldDefault-PXUJRPBW.js.map} +0 -0
- /package/dist/{RadioGroupFieldDefault-ZX4Z2EVK.js.map → RadioGroupFieldDefault-CHBXLRJG.js.map} +0 -0
- /package/dist/{TextAreaFieldDefault-JOSXKY6O.js.map → TextAreaFieldDefault-APKDH7AU.js.map} +0 -0
- /package/dist/{chunk-AAGHUVZO.js.map → chunk-2ADIF2YA.js.map} +0 -0
- /package/dist/{chunk-QVMGEH5W.js.map → chunk-3E6JC5HM.js.map} +0 -0
- /package/dist/{chunk-2OAOYM2S.js.map → chunk-3ECVOIHE.js.map} +0 -0
- /package/dist/{chunk-LWKPIYNR.js.map → chunk-3KNCGVWU.js.map} +0 -0
- /package/dist/{chunk-YEDPNGC2.js.map → chunk-3PDMZU34.js.map} +0 -0
- /package/dist/{chunk-VBEQBO5C.js.map → chunk-4YAFCYZ7.js.map} +0 -0
- /package/dist/{chunk-3RGEOFP5.js.map → chunk-5EUXQYKE.js.map} +0 -0
- /package/dist/{chunk-6D5IHLXV.js.map → chunk-6SWW244N.js.map} +0 -0
- /package/dist/{chunk-Z7NYTCDD.js.map → chunk-6VBWP6AA.js.map} +0 -0
- /package/dist/{chunk-ETQGE6PJ.js.map → chunk-6Y3CFPJN.js.map} +0 -0
- /package/dist/{chunk-KBTXSPHK.js.map → chunk-AZJ2LLX5.js.map} +0 -0
- /package/dist/{chunk-F2ENM2JE.js.map → chunk-BFYHFJHJ.js.map} +0 -0
- /package/dist/{chunk-Z7BBMYLU.js.map → chunk-BNJEVVWG.js.map} +0 -0
- /package/dist/{chunk-UXQVHXRL.js.map → chunk-DAQZZBSX.js.map} +0 -0
- /package/dist/{chunk-NHO3QINW.js.map → chunk-DN7HJZB3.js.map} +0 -0
- /package/dist/{chunk-QSP35X2D.js.map → chunk-EFJ5PMPI.js.map} +0 -0
- /package/dist/{chunk-ZQE3SMB2.js.map → chunk-EKRKYUUE.js.map} +0 -0
- /package/dist/{chunk-PCNT5L6Q.js.map → chunk-F22V7VEW.js.map} +0 -0
- /package/dist/{chunk-3LOC5XJ5.js.map → chunk-GJVGPPYO.js.map} +0 -0
- /package/dist/{chunk-VGCRMNT3.js.map → chunk-GPP2S5Q7.js.map} +0 -0
- /package/dist/{chunk-2K4N6RPD.js.map → chunk-GRNUG4VT.js.map} +0 -0
- /package/dist/{chunk-EYTOP742.js.map → chunk-K52TCY57.js.map} +0 -0
- /package/dist/{chunk-B7IJZJCP.js.map → chunk-KOLEBOZV.js.map} +0 -0
- /package/dist/{chunk-25Y7W5UH.js.map → chunk-KX53HZEP.js.map} +0 -0
- /package/dist/{chunk-CTARNWJJ.js.map → chunk-LQ5GKNVU.js.map} +0 -0
- /package/dist/{chunk-K7VKNGNL.js.map → chunk-MR5HKPX2.js.map} +0 -0
- /package/dist/{chunk-YVI7H5WV.js.map → chunk-OMAWYQU7.js.map} +0 -0
- /package/dist/{chunk-XRQD4XM4.js.map → chunk-ONMQSOSC.js.map} +0 -0
- /package/dist/{chunk-Q65JWWKR.js.map → chunk-ORBP27OM.js.map} +0 -0
- /package/dist/{chunk-J2IE47OQ.js.map → chunk-P3LLZ4SA.js.map} +0 -0
- /package/dist/{chunk-DACZVIVC.js.map → chunk-P3VAZLG4.js.map} +0 -0
- /package/dist/{chunk-UP5HIO22.js.map → chunk-P4V4AMFC.js.map} +0 -0
- /package/dist/{chunk-LPC7BX6K.js.map → chunk-P6PJDSR5.js.map} +0 -0
- /package/dist/{chunk-PJF6KXN6.js.map → chunk-PZCRVFCK.js.map} +0 -0
- /package/dist/{chunk-DN6BXTAC.js.map → chunk-QSBXRKYE.js.map} +0 -0
- /package/dist/{chunk-NXSKHM4K.js.map → chunk-QZXOBKVL.js.map} +0 -0
- /package/dist/{chunk-T2BRDPOR.js.map → chunk-R2L4HXQY.js.map} +0 -0
- /package/dist/{chunk-ODWPGJF6.js.map → chunk-RK4VZQOX.js.map} +0 -0
- /package/dist/{chunk-3P46CNLA.js.map → chunk-RUS5TGZ2.js.map} +0 -0
- /package/dist/{chunk-EQH3XT6E.js.map → chunk-S2PN3IWU.js.map} +0 -0
- /package/dist/{chunk-2B3OMLDM.js.map → chunk-S6VLGYPA.js.map} +0 -0
- /package/dist/{chunk-MXI6VPRG.js.map → chunk-SCTVUVDF.js.map} +0 -0
- /package/dist/{chunk-VRRPMJLZ.js.map → chunk-TZA2SOIV.js.map} +0 -0
- /package/dist/{chunk-IUSNP2RM.js.map → chunk-TZOTRZGK.js.map} +0 -0
- /package/dist/{chunk-ABESS75C.js.map → chunk-VUGTA3CI.js.map} +0 -0
- /package/dist/{chunk-4NU2RDSJ.js.map → chunk-VY435JUV.js.map} +0 -0
- /package/dist/{chunk-RPOFQPG5.js.map → chunk-W64ERZID.js.map} +0 -0
- /package/dist/{chunk-BVAUKARC.js.map → chunk-WNEA4YK3.js.map} +0 -0
- /package/dist/{chunk-YLYAVSJP.js.map → chunk-XA4CSH2R.js.map} +0 -0
- /package/dist/{chunk-ONIYOQMH.js.map → chunk-XFZCY4EF.js.map} +0 -0
- /package/dist/{chunk-UD7WWKMC.js.map → chunk-XO5ZAXQI.js.map} +0 -0
- /package/dist/{chunk-NHLUPT2E.js.map → chunk-XX6RWLM6.js.map} +0 -0
- /package/dist/{chunk-XY2X6FWI.js.map → chunk-Y36S433X.js.map} +0 -0
- /package/dist/{chunk-IF42CZJH.js.map → chunk-YRC6EEM3.js.map} +0 -0
- /package/dist/{chunk-TUJZUC3C.js.map → chunk-Z5G55QMI.js.map} +0 -0
- /package/dist/{chunk-6MP4UBOE.js.map → chunk-ZY2EB7PF.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-KOLEBOZV.js";import{b as e}from"./chunk-Q3ALCPJN.js";import{x as n}from"./chunk-EFL7QFFN.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-5EUXQYKE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n,b as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n,b as i}from"./chunk-Z5G55QMI.js";import{n as e}from"./chunk-EFL7QFFN.js";import{a as o}from"./chunk-P37U34EQ.js";import{Fragment as s,jsx as t,jsxs as r}from"react/jsx-runtime";var l=["You submit your termination request.","Remote reviews your request along with the employment agreement, local labor laws, and any collective bargaining agreements in place.","A lifecycle specialist contacts you if they need additional details. Sometimes they will request a call.","Depending on the country-specific laws and the terms of the employment agreement, Remote may need to seek additional legal advice. We\u2019ll let you know if there are additional charges before proceeding.","Terms and conditions for the termination are finalized.","You verbally communicate the termination to the employee.","Remote shares termination documents with the employee.","The employee signs the termination documents if required.","Remote processes the final salary and offboards the employee."],f=o(()=>r(s,{children:[t("h3",{className:e("RemoteFlows__TerminationDialogInfoContent__Title"),children:"Please read carefully before you continue"}),t("p",{className:e("RemoteFlows__TerminationDialogInfoContent__Description"),children:"Please do not inform the employee of the termination. Remote will lead communication with them after you submit this form and they finalize the termination terms."}),t("p",{className:e("RemoteFlows__TerminationDialogInfoContent__Description RemoteFlows__TerminationDialogInfoContent__FollowUpDescription"),children:"If you already informed them, that's okay. Remote will ask for the details regarding that communication and they'll take it from there."}),t(i,{className:e("RemoteFlows__TerminationDialogInfoContent__ZendeskTriggerButton text-sm"),zendeskId:n.terminationEmployeeCommunication,children:"Learn more about employee communication"}),t("h3",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessTitle"),children:"The termination process"}),t("ul",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessList list-disc list-inside"),children:l.map((a,m)=>t("li",{className:e("RemoteFlows__TerminationDialogInfoContent__ProcessListItem"),children:a},m))})]}),"TerminationDialogInfoContent");export{f as a};
|
|
2
|
+
//# sourceMappingURL=chunk-6SWW244N.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as S}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as S}from"./chunk-RK4VZQOX.js";import{a as e}from"./chunk-CW7CHRMN.js";import{a as s}from"./chunk-XO5ZAXQI.js";import{a as p}from"./chunk-DB4JHJ3Z.js";import{a as c}from"./chunk-EFJ5PMPI.js";import{a as l}from"./chunk-KVUKJU5U.js";import{a as i}from"./chunk-OMAWYQU7.js";import{a as m}from"./chunk-5EUXQYKE.js";import{a as f}from"./chunk-DN7HJZB3.js";import{a as u}from"./chunk-P4V4AMFC.js";import{a as d}from"./chunk-SVVZOMLQ.js";import{a as n}from"./chunk-Q3ALCPJN.js";import{a}from"./chunk-ONMQSOSC.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as I,useRef as F,useMemo as y}from"react";import{jsx as D}from"react/jsx-runtime";var J=t(({render:g,employmentId:C,externalId:b,countryCode:v,skipSteps:B,initialValues:O,options:w})=>{let P=I(),o=F(void 0),R=y(()=>({setValue:o}),[]),r=a({options:{...w,onContractReviewed:t(()=>{o.current&&o.current("review_completed",!0)},"onContractReviewed")},employmentId:C,externalId:b,countryCode:v,skipSteps:B,initialValues:O});return D(n.Provider,{value:{contractorOnboardingBag:r,formId:P,formRef:R},children:g({contractorOnboardingBag:r,components:{BasicInformationStep:m,SelectCountryStep:i,BackButton:e,SubmitButton:p,PricingPlanStep:c,EligibilityQuestionnaireStep:S,ContractDetailsStep:f,ContractPreviewStep:u,OnboardingInvite:s,ContractReviewButton:d,SaveDraftButton:l}})})},"ContractorOnboardingFlow");export{J as a};
|
|
2
|
+
//# sourceMappingURL=chunk-6VBWP6AA.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as n}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as n}from"./chunk-TZA2SOIV.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-6Y3CFPJN.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as f}from"./chunk-AZJ2LLX5.js";import{a as m}from"./chunk-B7BJXPGT.js";import{a}from"./chunk-SCTVUVDF.js";import{a as i}from"./chunk-G6F6ZZES.js";import{b as g}from"./chunk-Z7ZRTQE7.js";import{a as S}from"./chunk-FHYOWPXB.js";import{a as c}from"./chunk-QXW2MAFG.js";import{a as n}from"./chunk-3KNCGVWU.js";import{a as p}from"./chunk-PZCRVFCK.js";import{a as s}from"./chunk-DAQZZBSX.js";import{a as d}from"./chunk-XFZCY4EF.js";import{c as t}from"./chunk-OQQ4JHSR.js";import{a as r}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{useId as h,useState as y}from"react";import{jsx as F}from"react/jsx-runtime";var T=e(({employmentId:u,companyId:b,countryCode:l,type:v="employee",externalId:O,skipSteps:B,initialValues:I,render:w,options:C})=>{let D=h(),o=t({companyId:b,countryCode:l,employmentId:u,type:v,options:C,skipSteps:B,externalId:O,initialValues:I}),[P,R]=y({showReserveInvoice:!1,showInviteSuccessful:!1});return F(r.Provider,{value:{formId:D,onboardingBag:o,creditScore:P,setCreditScore:R},children:w({onboardingBag:o,components:{BasicInformationStep:n,EngagementAgreementDetailsStep:d,ContractDetailsStep:s,BenefitsStep:p,SubmitButton:i,SaveDraftButton:c,BackButton:m,OnboardingInvite:a,SelectCountryStep:f,ReviewStep:S,PreOnboardingRequirements:g}})})},"OnboardingFlow");export{T as a};
|
|
2
|
+
//# sourceMappingURL=chunk-7F32RGMM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/OnboardingFlow.tsx"],"sourcesContent":["import { useId, useState } from 'react';\nimport { useOnboarding } from '@/src/flows/Onboarding/hooks';\nimport { BasicInformationStep } from '@/src/flows/Onboarding/components/BasicInformationStep';\nimport { OnboardingContext } from '@/src/flows/Onboarding/context';\nimport { OnboardingSubmit } from '@/src/flows/Onboarding/components/OnboardingSubmit';\nimport { OnboardingBack } from '@/src/flows/Onboarding/components/OnboardingBack';\nimport { OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport { OnboardingInvite } from '@/src/flows/Onboarding/components/OnboardingInvite';\nimport { ContractDetailsStep } from '@/src/flows/Onboarding/components/ContractDetailsStep';\nimport { BenefitsStep } from '@/src/flows/Onboarding/components/BenefitsStep';\nimport { SelectCountryStep } from '@/src/flows/Onboarding/components/SelectCountryStep';\nimport { ReviewStep } from '@/src/flows/Onboarding/components/ReviewStep';\nimport { SaveDraftButton } from '@/src/flows/Onboarding/components/SaveDraftButton';\nimport { EngagementAgreementDetailsStep } from '@/src/flows/Onboarding/components/EngagementAgreementDetailsStep';\nimport { PreOnboardingRequirements } from '@/src/flows/Onboarding/components/PreOnboardingRequirements';\n\nexport const OnboardingFlow = ({\n employmentId,\n companyId,\n countryCode,\n type = 'employee',\n externalId,\n skipSteps,\n initialValues,\n render,\n options,\n}: OnboardingFlowProps) => {\n const formId = useId();\n const onboardingBag = useOnboarding({\n companyId,\n countryCode,\n employmentId,\n type,\n options,\n skipSteps,\n externalId,\n initialValues,\n });\n\n const [creditScore, setCreditScore] = useState<{\n showReserveInvoice: boolean;\n showInviteSuccessful: boolean;\n }>({\n showReserveInvoice: false,\n showInviteSuccessful: false,\n });\n\n return (\n <OnboardingContext.Provider\n value={{\n formId: formId,\n onboardingBag,\n creditScore,\n setCreditScore: setCreditScore,\n }}\n >\n {render({\n onboardingBag,\n components: {\n BasicInformationStep: BasicInformationStep,\n EngagementAgreementDetailsStep: EngagementAgreementDetailsStep,\n ContractDetailsStep: ContractDetailsStep,\n BenefitsStep: BenefitsStep,\n SubmitButton: OnboardingSubmit,\n SaveDraftButton: SaveDraftButton,\n BackButton: OnboardingBack,\n OnboardingInvite: OnboardingInvite,\n SelectCountryStep: SelectCountryStep,\n ReviewStep: ReviewStep,\n PreOnboardingRequirements: PreOnboardingRequirements,\n },\n })}\n </OnboardingContext.Provider>\n );\n};\n"],"mappings":"2iBAAA,OAAS,SAAAA,EAAO,YAAAC,MAAgB,QAgD5B,cAAAC,MAAA,oBAhCG,IAAMC,EAAiBC,EAAA,CAAC,CAC7B,aAAAC,EACA,UAAAC,EACA,YAAAC,EACA,KAAAC,EAAO,WACP,WAAAC,EACA,UAAAC,EACA,cAAAC,EACA,OAAAC,EACA,QAAAC,CACF,IAA2B,CACzB,IAAMC,EAASC,EAAM,EACfC,EAAgBC,EAAc,CAClC,UAAAX,EACA,YAAAC,EACA,aAAAF,EACA,KAAAG,EACA,QAAAK,EACA,UAAAH,EACA,WAAAD,EACA,cAAAE,CACF,CAAC,EAEK,CAACO,EAAaC,CAAc,EAAIC,EAGnC,CACD,mBAAoB,GACpB,qBAAsB,EACxB,CAAC,EAED,OACElB,EAACmB,EAAkB,SAAlB,CACC,MAAO,CACL,OAAQP,EACR,cAAAE,EACA,YAAAE,EACA,eAAgBC,CAClB,EAEC,SAAAP,EAAO,CACN,cAAAI,EACA,WAAY,CACV,qBAAsBM,EACtB,+BAAgCC,EAChC,oBAAqBC,EACrB,aAAcC,EACd,aAAcC,EACd,gBAAiBC,EACjB,WAAYC,EACZ,iBAAkBC,EAClB,kBAAmBC,EACnB,WAAYC,EACZ,0BAA2BC,CAC7B,CACF,CAAC,EACH,CAEJ,EA1D8B","names":["useId","useState","jsx","OnboardingFlow","__name","employmentId","companyId","countryCode","type","externalId","skipSteps","initialValues","render","options","formId","useId","onboardingBag","useOnboarding","creditScore","setCreditScore","useState","OnboardingContext","BasicInformationStep","EngagementAgreementDetailsStep","ContractDetailsStep","BenefitsStep","OnboardingSubmit","SaveDraftButton","OnboardingBack","OnboardingInvite","SelectCountryStep","ReviewStep","PreOnboardingRequirements"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as R,b as x,c as N,d as A}from"./chunk-GCYQVKEN.js";import{a as T}from"./chunk-ZE3YT3Q6.js";import{a as C}from"./chunk-M4RIGLB4.js";import{b as B}from"./chunk-KMANQZL4.js";import{a as w,b as f}from"./chunk-Z5G55QMI.js";import{n as i,o as n,r as F}from"./chunk-EFL7QFFN.js";import{a as m}from"./chunk-P37U34EQ.js";import{MoreHorizontal as G}from"lucide-react";import{useState as P}from"react";import{Fragment as U,jsx as g,jsxs as E}from"react/jsx-runtime";function L({actions:e=[],className:r,label:a,"data-testid":l}){let[_,d]=P(!1);return E("div",{className:i("relative",r),children:[g(B,{"data-testid":l,variant:"ghost","aria-label":a,className:"h-8 w-8 p-0",onClick:()=>d(!_),children:g(G,{className:"h-4 w-4"})}),_&&E(U,{children:[g("div",{className:"fixed inset-0 z-40",onClick:()=>d(!1)}),g("div",{className:"absolute right-0 top-1/2 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[120px]",children:e.map((c,u)=>g("button",{"data-testid":`${l}-${c.label.toLowerCase().replace(" ","-")}`,className:i("w-full text-left px-2 py-1.5 text-sm hover:bg-gray-100",c.disabled&&"opacity-50 cursor-not-allowed"),onClick:()=>{c.onClick(),d(!1)},disabled:c.disabled,children:c.label},u))})]})]})}m(L,"ActionsDropdown");import{ChevronDown as S,Info as $}from"lucide-react";import j from"react-flagpack";import{useState as O}from"react";import{Fragment as b,jsx as o,jsxs as t}from"react/jsx-runtime";var Z={GB:"GB-UKM"},K=m(({title:e,country:r,region:a,annualGrossSalary:l,onDelete:_,onExportPdf:d,onEdit:c})=>{let u=[{label:"Edit",onClick:c},{label:"Export",onClick:d},{label:"Delete",onClick:_}];return t("div",{className:"RemoteFlows__EstimationResults__Header flex justify-between",children:[t("div",{className:"flex flex-row items-center gap-6",children:[o("div",{className:"RemoteFlows__EstimationResultsHeader__FlagContainer flex h-16 w-16 items-center justify-center rounded-lg bg-[#F4F4F5]",children:o(j,{code:Z[r.alpha_2_code]||r.alpha_2_code})}),t("div",{className:"space-y-1",children:[o("h2",{"data-testid":"estimation-results-header-title",className:"RemoteFlows__EstimationResultsHeader__Title text-lg font-medium leading-none text-[#181818]",children:e}),t("p",{className:"RemoteFlows__EstimationResultsHeader__Country text-xs text-[#71717A]",children:[r.name," ",a?` (${a.name})`:""]}),t("p",{"data-testid":"estimation-results-header-annual-gross-salary",className:"RemoteFlows__EstimationResultsHeader__AnnualGrossSalary text-xs text-[#71717A]",children:[o("span",{className:"text-[#181818]",children:"Employee annual gross salary:"})," ",l]})]})]}),o(L,{label:"Actions",className:"RemoteFlows__EstimationResults__ActionsDropdown",actions:u})]})},"EstimationResultsHeader"),V=m(()=>({steps:[{id:"add-employment-details",title:"Add employment details",description:"You add employee employments details."},{id:"invite-employee",title:"Invite employee",description:"Hire receives an email invitation from Remote to start the self-enrollment process."},{id:"verify-information",title:"Verify information",description:"Remote prepares the Employment Agreement and verifies all the information."},{id:"sign-contract",title:"Sign contract",description:"All parties sign the Employment Agreement and are ready to start. \u{1F389}"}],helpText:"For customers who accept Remote's Terms of Service (ToS), the employee onboarding timeline starts once the employee has been invited to the platform and completed self enrollment.",zendeskArticleId:w.employeeOnboardingTimeline}),"getOnboardingTimelineData");function Y({minimumOnboardingDays:e,data:r,className:a}){return o(R,{collapsible:!0,className:i("RemoteFlows__EstimationResults__OnboardingTimeline w-full",a),children:t(x,{value:"timeline",className:"RemoteFlows__OnboardingTimeline__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__OnboardingTimeline__AccordionTrigger hover:no-underline px-0 py-4",children:t("div",{className:"flex items-center justify-between w-full",children:[o("span",{className:"RemoteFlows__OnboardingTimeline__Title text-base font-medium text-[#0F172A]",children:"Onboarding timeline"}),e!=null&&t("span",{className:"RemoteFlows__OnboardingTimeline__Description text-base text-muted-foreground mr-4",children:[e," days"]})]})}),t(A,{className:"px-0 pb-4",children:[o("ul",{className:"RemoteFlows__OnboardingTimeline__List list-disc list-inside space-y-2",children:r.steps.map(l=>t("li",{children:[o("strong",{className:"font-medium text-[#09090B]",children:l.title})," ","- ",l.description]},l.id))}),t("p",{className:"RemoteFlows__OnboardingTimeline__HelpText text-xs text-muted-foreground mt-4",children:[r.helpText,r.zendeskArticleId&&o(f,{zendeskId:r.zendeskArticleId,children:"Learn more"})]})]})]})})}m(Y,"OnboardingTimeline");function q({className:e,countryBenefitsUrl:r,countryGuideUrl:a,country:l}){return o(R,{collapsible:!0,className:i("RemoteFlows__EstimationResults__HiringSection w-full",e),children:t(x,{value:"timeline",className:"RemoteFlows__HiringSection__AccordionItem border-border",children:[o(N,{className:"RemoteFlows__HiringSection__AccordionTrigger hover:no-underline px-0 py-4",children:o("div",{className:"flex items-center justify-between w-full",children:t("span",{className:"text-base font-medium text-[#0F172A]",children:["Hiring in ",l.name]})})}),o(A,{children:t("div",{className:"flex flex-col gap-1",children:[a&&o("a",{href:a,target:"_blank",className:"RemoteFlows__Link",children:"Explore our complete guide \u2197"}),r&&o("a",{href:r,target:"_blank",className:"RemoteFlows__Link",children:"Explore our available benefits \u2197"})]})})]})})}m(q,"HiringSection");function J({isMultipleCurrency:e,className:r}){return t("div",{className:i("RemoteFlows__EstimationResults__Headers grid grid-cols-3 items-center",r),children:[o("span",{"aria-hidden":!0}),e?t(b,{children:[o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employee currency"}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Employer currency"})]}):t(b,{children:[o("span",{}),o("span",{className:"RemoteFlows__EstimationResults__Headers__Label",children:"Amount"})]})]})}m(J,"EstimationHeaders");function I({label:e,amounts:r,className:a,children:l}){let[_,d]=O(!0);return t("div",{className:i("RemoteFlows__EstimationResults__Row",a),children:[t("div",{className:"RemoteFlows__EstimationRow__Grid grid grid-cols-3 items-center",children:[t("div",{className:"RemoteFlows__EstimationRow__LabelContainer flex items-center gap-2",children:[o("span",{className:i("RemoteFlows__EstimationRow__Title min-w-[140px] font-medium text-[#09090B]"),children:e}),o("button",{onClick:()=>d(!_),className:"RemoteFlows__EstimationRow__CollapseButton p-1 hover:bg-gray-100 rounded",children:o(S,{className:`h-4 w-4 text-muted-foreground transition-transform ${_?"rotate-180":""}`})})]}),Array.isArray(r)?r.map((c,u)=>o("span",{className:i("RemoteFlows__EstimationRow__RegionalAmount text-right font-medium text-[#09090B]"),children:c},u)):t(b,{children:[o("span",{}),o("span",{className:i("RemoteFlows__EstimationRow__EmployerAmount text-right font-medium text-[#09090B]"),children:r})]})]}),_&&l&&o("div",{className:"RemoteFlows__EstimationRow__CollapsibleContent mt-4",children:l})]})}m(I,"EstimationRow");function Q({item:e,isMultipleCurrency:r,level:a=0}){let[l,_]=O(!1),d=e.children&&e.children.length>0,c=a>0,u=e.isCollapsible||d;return t("li",{className:i("RemoteFlows__BreakdownList__Item pb-3",c&&"pb-1"),children:[t("div",{className:i(r?"RemoteFlows__BreakdownList__Grid grid grid-cols-3 items-center justify-between":"RemoteFlows__BreakdownList__Grid grid grid-cols-2 items-center justify-between"),children:[t("div",{className:i("RemoteFlows__BreakdownList__LabelContainer flex items-center gap-2",c&&"pl-3"),children:[!c&&o("span",{className:"RemoteFlows__BreakdownList__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0","aria-hidden":"true"}),u?t("button",{onClick:()=>_(!l),className:"RemoteFlows__BreakdownList__CollapseButton flex items-center gap-2 hover:bg-gray-100 rounded p-1",children:[o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B]"),children:e.label}),o(S,{className:`RemoteFlows__BreakdownList__ChevronDown h-3 w-3 text-muted-foreground transition-transform ${l?"rotate-180":""}`})]}):o("span",{className:i(c?"RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]":"RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B] p-1"),children:e.label}),e.tooltip&&o(T,{content:t(b,{children:[o("span",{dangerouslySetInnerHTML:{__html:F(e.tooltip)}})," ",e.zendeskId&&o(f,{zendeskId:Number(e.zendeskId),children:"Learn more"})]}),children:o("button",{className:"RemoteFlows__BreakdownList__InfoButton p-1 hover:bg-gray-100 rounded",children:o($,{className:i("RemoteFlows__BreakdownList__InfoButton__Icon text-muted-foreground",c?"h-3 w-3":"h-4 w-4")})})})]}),r?t(b,{children:[o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employee-amount",className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"}),o("span",{"data-testid":e.dataSelector&&e.dataSelector+"-employer-amount",className:i("RemoteFlows__BreakdownList__EmployerAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__EmployerAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__EmployerAmountText--NotNested text-[#09090B]"),children:e.employerAmount||"\u2014"})]}):o("span",{"data-testid":e.dataSelector,className:i("RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right",c?"RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]":"RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]"),children:e.regionalAmount||"\u2014"})]}),d&&l&&o("div",{className:"mt-1",children:o(k,{items:e.children,isMultipleCurrency:r,level:a+1})})]})}m(Q,"BreakdownListItem");function k({items:e,isMultipleCurrency:r,className:a,level:l}){return o("ul",{className:i("RemoteFlows__BreakdownList list-none",a),children:e.map((_,d)=>o(Q,{item:_,isMultipleCurrency:r,level:l},d))})}m(k,"BreakdownList");var pe=m(({estimation:e,title:r,components:a,onDelete:l,onExportPdf:_,onEdit:d})=>{let c=a?.HiringSection||q,u=a?.OnboardingTimeline||Y,z=a?.Header||K,h=a?.Footer,H=V(),p=e.employer_currency_costs.currency.code!==e.regional_currency_costs.currency.code,v=e.employer_currency_costs.monthly_management_fee,D=e.region.code!==e.country.code,M=n(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.code);return t(C,{className:"RemoteFlows__EstimationResults__Card p-10",children:[o("div",{className:"RemoteFlows__Separator",children:o(z,{title:r,annualGrossSalary:M,region:D?e.region:void 0,country:e.country,onDelete:l,onExportPdf:_,onEdit:d})}),t("div",{className:"RemoteFlows__Separator",children:[o(J,{isMultipleCurrency:p,className:"mb-3"}),o(I,{label:"Monthly total cost",amounts:p?[n(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.code),n(e.employer_currency_costs.monthly_total,e.employer_currency_costs.currency.code)]:n(e.regional_currency_costs.monthly_total,e.regional_currency_costs.currency.code),children:o(k,{items:[{label:"Gross monthly salary",regionalAmount:n(e.regional_currency_costs.monthly_gross_salary,e.regional_currency_costs.currency.code),employerAmount:n(e.employer_currency_costs.monthly_gross_salary,e.employer_currency_costs.currency.code),zendeskId:w.extraPayments.toString(),tooltip:"This country respects extra payments on top of the gross salary."},{label:"Mandatory employer costs",regionalAmount:n(e.regional_currency_costs.monthly_contributions_total,e.regional_currency_costs.currency.code),employerAmount:n(e.employer_currency_costs.monthly_contributions_total,e.employer_currency_costs.currency.code),children:e.employer_currency_costs.monthly_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.monthly_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.code),employerAmount:n(s.amount,e.employer_currency_costs.currency.code),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:n(e.regional_currency_costs.monthly_benefits_total,e.regional_currency_costs.currency.code),employerAmount:n(e.employer_currency_costs.monthly_benefits_total,e.employer_currency_costs.currency.code),children:e.employer_currency_costs.monthly_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.monthly_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.code),employerAmount:n(s.amount,e.employer_currency_costs.currency.code),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...v?[{label:"Monthly fee",regionalAmount:n(e.regional_currency_costs.monthly_management_fee,e.regional_currency_costs.currency.code),employerAmount:n(e.employer_currency_costs.monthly_management_fee,e.employer_currency_costs.currency.code),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})]}),o("div",{className:"RemoteFlows__Separator",children:o(I,{label:"Annual total cost",amounts:p?[n(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.code),n(e.employer_currency_costs.annual_total,e.employer_currency_costs.currency.code)]:n(e.regional_currency_costs.annual_total,e.regional_currency_costs.currency.code),children:o(k,{items:[{label:"Gross annual salary",dataSelector:"annual-gross-salary",regionalAmount:n(e.regional_currency_costs.annual_gross_salary,e.regional_currency_costs.currency.code),employerAmount:n(e.employer_currency_costs.annual_gross_salary,e.employer_currency_costs.currency.code)},{label:"Mandatory employer costs",regionalAmount:n(e.regional_currency_costs.annual_contributions_total,e.regional_currency_costs.currency.code),employerAmount:n(e.employer_currency_costs.annual_contributions_total,e.employer_currency_costs.currency.code),children:e.employer_currency_costs.annual_contributions_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.annual_contributions_breakdown?.[y]?.amount,e.regional_currency_costs.currency.code),employerAmount:n(s.amount,e.employer_currency_costs.currency.code),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Benefits",regionalAmount:n(e.regional_currency_costs.annual_benefits_total,e.regional_currency_costs.currency.code),employerAmount:n(e.employer_currency_costs.annual_benefits_total,e.employer_currency_costs.currency.code),children:e.employer_currency_costs.annual_benefits_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.annual_benefits_breakdown?.[y]?.amount,e.regional_currency_costs.currency.code),employerAmount:n(s.amount,e.employer_currency_costs.currency.code),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},{label:"Extra statutory payments",regionalAmount:n(e.regional_currency_costs.extra_statutory_payments_total,e.regional_currency_costs.currency.code),employerAmount:n(e.employer_currency_costs.extra_statutory_payments_total,e.employer_currency_costs.currency.code),children:e.employer_currency_costs.extra_statutory_payments_breakdown?.map((s,y)=>({label:s.name,regionalAmount:n(e.regional_currency_costs.extra_statutory_payments_breakdown?.[y]?.amount,e.regional_currency_costs.currency.code),employerAmount:n(s.amount,e.employer_currency_costs.currency.code),zendeskId:s.zendesk_article_id||void 0,tooltip:s.description||void 0}))||[]},...v?[{label:"Annual fee",regionalAmount:n(e.regional_currency_costs.annual_management_fee,e.regional_currency_costs.currency.code),employerAmount:n(e.employer_currency_costs.annual_management_fee,e.employer_currency_costs.currency.code),tooltip:"Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more."}]:[]],isMultipleCurrency:p})})}),o("div",{className:"RemoteFlows__Separator",children:o(u,{minimumOnboardingDays:e.minimum_onboarding_time,data:H})}),o(c,{countryBenefitsUrl:e.country_benefits_details_url,countryGuideUrl:e.country_guide_url,country:e.country}),h&&o(h,{})]})},"EstimationResults");export{pe as a};
|
|
2
|
+
//# sourceMappingURL=chunk-AIFEZDEM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/shared/actions-dropdown/ActionsDropdown.tsx","../src/flows/CostCalculator/EstimationResults/EstimationResults.tsx"],"sourcesContent":["import { Button } from '@/src/components/ui/button';\nimport { cn } from '@/src/lib/utils';\nimport { MoreHorizontal } from 'lucide-react';\nimport { useState, type ReactNode } from 'react';\n\nexport interface DropdownAction {\n label: string;\n icon?: ReactNode;\n onClick: () => void;\n separator?: boolean;\n disabled?: boolean;\n}\n\ninterface ActionsDropdownProps {\n actions?: DropdownAction[];\n label?: string;\n className?: string;\n 'data-testid'?: string;\n}\n\nexport function ActionsDropdown({\n actions = [],\n className,\n label,\n 'data-testid': dataSelector,\n}: ActionsDropdownProps) {\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n <div className={cn('relative', className)}>\n <Button\n data-testid={dataSelector}\n variant='ghost'\n aria-label={label}\n className='h-8 w-8 p-0'\n onClick={() => setIsOpen(!isOpen)}\n >\n <MoreHorizontal className='h-4 w-4' />\n </Button>\n\n {isOpen && (\n <>\n <div\n className='fixed inset-0 z-40'\n onClick={() => setIsOpen(false)}\n />\n <div className='absolute right-0 top-1/2 mt-1 bg-white border border-gray-200 rounded-md shadow-lg z-50 min-w-[120px]'>\n {actions.map((action, index) => (\n <button\n key={index}\n data-testid={`${dataSelector}-${action.label.toLowerCase().replace(' ', '-')}`}\n className={cn(\n 'w-full text-left px-2 py-1.5 text-sm hover:bg-gray-100',\n action.disabled && 'opacity-50 cursor-not-allowed',\n )}\n onClick={() => {\n action.onClick();\n setIsOpen(false);\n }}\n disabled={action.disabled}\n >\n {action.label}\n </button>\n ))}\n </div>\n </>\n )}\n </div>\n );\n}\n","import { MinimalCountry, MinimalRegion } from '@/src/client';\nimport { ActionsDropdown } from '@/src/components/shared/actions-dropdown/ActionsDropdown';\nimport { Card } from '@/src/components/ui/card';\nimport { ChevronDown, Info } from 'lucide-react';\nimport Flag from 'react-flagpack';\nimport { useState } from 'react';\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from '@/src/components/ui/accordion';\nimport { cn, formatCurrency, sanitizeHtml } from '@/src/lib/utils';\nimport { ZendeskTriggerButton } from '@/src/components/shared/zendesk-drawer/ZendeskTriggerButton';\nimport { zendeskArticles } from '@/src/components/shared/zendesk-drawer/utils';\nimport { BasicTooltip } from '@/src/components/ui/basic-tooltip';\nimport { CostCalculatorEstimation } from '@/src/flows/CostCalculator/types';\n\nconst FLAG_CODE_MAPPING: Record<string, string> = {\n GB: 'GB-UKM',\n};\n\nconst EstimationResultsHeader = ({\n title,\n country,\n region,\n annualGrossSalary,\n onDelete,\n onExportPdf,\n onEdit,\n}: {\n title: string;\n country: MinimalCountry;\n region?: MinimalRegion;\n annualGrossSalary: string;\n onDelete: () => void;\n onExportPdf: () => void;\n onEdit: () => void;\n}) => {\n const actions = [\n {\n label: 'Edit',\n onClick: onEdit,\n },\n {\n label: 'Export',\n onClick: onExportPdf,\n },\n {\n label: 'Delete',\n onClick: onDelete,\n },\n ];\n return (\n <div className='RemoteFlows__EstimationResults__Header flex justify-between'>\n <div className='flex flex-row items-center gap-6'>\n <div className='RemoteFlows__EstimationResultsHeader__FlagContainer flex h-16 w-16 items-center justify-center rounded-lg bg-[#F4F4F5]'>\n <Flag\n code={\n FLAG_CODE_MAPPING[country.alpha_2_code] || country.alpha_2_code\n }\n />\n </div>\n <div className='space-y-1'>\n <h2\n data-testid='estimation-results-header-title'\n className='RemoteFlows__EstimationResultsHeader__Title text-lg font-medium leading-none text-[#181818]'\n >\n {title}\n </h2>\n <p className='RemoteFlows__EstimationResultsHeader__Country text-xs text-[#71717A]'>\n {country.name} {region ? ` (${region.name})` : ''}\n </p>\n <p\n data-testid='estimation-results-header-annual-gross-salary'\n className='RemoteFlows__EstimationResultsHeader__AnnualGrossSalary text-xs text-[#71717A]'\n >\n <span className='text-[#181818]'>\n Employee annual gross salary:\n </span>{' '}\n {annualGrossSalary}\n </p>\n </div>\n </div>\n <ActionsDropdown\n label='Actions'\n className='RemoteFlows__EstimationResults__ActionsDropdown'\n actions={actions}\n />\n </div>\n );\n};\n\ninterface OnboardingTimelineStep {\n title: string;\n description: string;\n id: string;\n}\n\ninterface OnboardingTimelineData {\n steps: OnboardingTimelineStep[];\n helpText: string;\n zendeskArticleId?: number;\n}\n\nconst getOnboardingTimelineData = (): OnboardingTimelineData => {\n return {\n steps: [\n {\n id: 'add-employment-details',\n title: 'Add employment details',\n description: 'You add employee employments details.',\n },\n {\n id: 'invite-employee',\n title: 'Invite employee',\n description:\n 'Hire receives an email invitation from Remote to start the self-enrollment process.',\n },\n {\n id: 'verify-information',\n title: 'Verify information',\n description:\n 'Remote prepares the Employment Agreement and verifies all the information.',\n },\n {\n id: 'sign-contract',\n title: 'Sign contract',\n description:\n 'All parties sign the Employment Agreement and are ready to start. 🎉',\n },\n ],\n helpText:\n \"For customers who accept Remote's Terms of Service (ToS), the employee onboarding timeline starts once the employee has been invited to the platform and completed self enrollment.\",\n zendeskArticleId: zendeskArticles.employeeOnboardingTimeline,\n };\n};\n\nfunction OnboardingTimeline({\n minimumOnboardingDays,\n data,\n className,\n}: {\n minimumOnboardingDays: number | null;\n data: OnboardingTimelineData;\n className?: string;\n}) {\n return (\n <Accordion\n collapsible\n className={cn(\n 'RemoteFlows__EstimationResults__OnboardingTimeline w-full',\n className,\n )}\n >\n <AccordionItem\n value='timeline'\n className='RemoteFlows__OnboardingTimeline__AccordionItem border-border'\n >\n <AccordionTrigger className='RemoteFlows__OnboardingTimeline__AccordionTrigger hover:no-underline px-0 py-4'>\n <div className='flex items-center justify-between w-full'>\n <span className='RemoteFlows__OnboardingTimeline__Title text-base font-medium text-[#0F172A]'>\n Onboarding timeline\n </span>\n {minimumOnboardingDays != null && (\n <span className='RemoteFlows__OnboardingTimeline__Description text-base text-muted-foreground mr-4'>\n {minimumOnboardingDays} days\n </span>\n )}\n </div>\n </AccordionTrigger>\n <AccordionContent className='px-0 pb-4'>\n <ul className='RemoteFlows__OnboardingTimeline__List list-disc list-inside space-y-2'>\n {data.steps.map((step) => (\n <li key={step.id}>\n <strong className='font-medium text-[#09090B]'>\n {step.title}\n </strong>{' '}\n - {step.description}\n </li>\n ))}\n </ul>\n <p className='RemoteFlows__OnboardingTimeline__HelpText text-xs text-muted-foreground mt-4'>\n {data.helpText}\n {data.zendeskArticleId && (\n <ZendeskTriggerButton zendeskId={data.zendeskArticleId}>\n Learn more\n </ZendeskTriggerButton>\n )}\n </p>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n );\n}\n\nfunction HiringSection({\n className,\n countryBenefitsUrl,\n countryGuideUrl,\n country,\n}: {\n className?: string;\n countryBenefitsUrl: string;\n countryGuideUrl: string;\n country: MinimalCountry;\n}) {\n return (\n <Accordion\n collapsible\n className={cn(\n 'RemoteFlows__EstimationResults__HiringSection w-full',\n className,\n )}\n >\n <AccordionItem\n value='timeline'\n className='RemoteFlows__HiringSection__AccordionItem border-border'\n >\n <AccordionTrigger className='RemoteFlows__HiringSection__AccordionTrigger hover:no-underline px-0 py-4'>\n <div className='flex items-center justify-between w-full'>\n <span className='text-base font-medium text-[#0F172A]'>\n Hiring in {country.name}\n </span>\n </div>\n </AccordionTrigger>\n <AccordionContent>\n <div className='flex flex-col gap-1'>\n {countryGuideUrl && (\n <a\n href={countryGuideUrl}\n target='_blank'\n className='RemoteFlows__Link'\n >\n Explore our complete guide ↗\n </a>\n )}\n {countryBenefitsUrl && (\n <a\n href={countryBenefitsUrl}\n target='_blank'\n className='RemoteFlows__Link'\n >\n Explore our available benefits ↗\n </a>\n )}\n </div>\n </AccordionContent>\n </AccordionItem>\n </Accordion>\n );\n}\n\nfunction EstimationHeaders({\n isMultipleCurrency,\n className,\n}: {\n isMultipleCurrency: boolean;\n className?: string;\n}) {\n return (\n <div\n className={cn(\n 'RemoteFlows__EstimationResults__Headers grid grid-cols-3 items-center',\n className,\n )}\n >\n <span aria-hidden />\n {isMultipleCurrency ? (\n <>\n <span className='RemoteFlows__EstimationResults__Headers__Label'>\n Employee currency\n </span>\n <span className='RemoteFlows__EstimationResults__Headers__Label'>\n Employer currency\n </span>\n </>\n ) : (\n <>\n <span></span>\n <span className='RemoteFlows__EstimationResults__Headers__Label'>\n Amount\n </span>\n </>\n )}\n </div>\n );\n}\n\nfunction EstimationRow({\n label,\n amounts,\n className,\n children,\n}: {\n label: string | React.ReactNode;\n amounts: string | string[];\n className?: string;\n children?: React.ReactNode;\n}) {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <div className={cn('RemoteFlows__EstimationResults__Row', className)}>\n <div className='RemoteFlows__EstimationRow__Grid grid grid-cols-3 items-center'>\n <div className='RemoteFlows__EstimationRow__LabelContainer flex items-center gap-2'>\n <span\n className={cn(\n 'RemoteFlows__EstimationRow__Title min-w-[140px] font-medium text-[#09090B]',\n )}\n >\n {label}\n </span>\n <button\n onClick={() => setIsOpen(!isOpen)}\n className='RemoteFlows__EstimationRow__CollapseButton p-1 hover:bg-gray-100 rounded'\n >\n <ChevronDown\n className={`h-4 w-4 text-muted-foreground transition-transform ${\n isOpen ? 'rotate-180' : ''\n }`}\n />\n </button>\n </div>\n\n {Array.isArray(amounts) ? (\n amounts.map((amount, index) => (\n <span\n key={index}\n className={cn(\n 'RemoteFlows__EstimationRow__RegionalAmount text-right font-medium text-[#09090B]',\n )}\n >\n {amount}\n </span>\n ))\n ) : (\n <>\n <span></span>\n <span\n className={cn(\n 'RemoteFlows__EstimationRow__EmployerAmount text-right font-medium text-[#09090B]',\n )}\n >\n {amounts}\n </span>\n </>\n )}\n </div>\n\n {/* Collapsible content */}\n {isOpen && children && (\n <div className='RemoteFlows__EstimationRow__CollapsibleContent mt-4'>\n {children}\n </div>\n )}\n </div>\n );\n}\n\ninterface BreakdownItem {\n label: string;\n tooltip?: string;\n dataSelector?: string;\n regionalAmount?: string;\n employerAmount?: string;\n description?: string;\n zendeskId?: string;\n isCollapsible?: boolean;\n children?: BreakdownItem[];\n}\n\nfunction BreakdownListItem({\n item,\n isMultipleCurrency,\n level = 0,\n}: {\n item: BreakdownItem;\n isMultipleCurrency: boolean;\n level?: number;\n}) {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildren = item.children && item.children.length > 0;\n const isNested = level > 0;\n const isCollapsible = item.isCollapsible || hasChildren;\n\n return (\n <li\n className={cn(\n 'RemoteFlows__BreakdownList__Item pb-3',\n isNested && 'pb-1',\n )}\n >\n <div\n className={cn(\n isMultipleCurrency\n ? 'RemoteFlows__BreakdownList__Grid grid grid-cols-3 items-center justify-between'\n : 'RemoteFlows__BreakdownList__Grid grid grid-cols-2 items-center justify-between',\n )}\n >\n <div\n className={cn(\n 'RemoteFlows__BreakdownList__LabelContainer flex items-center gap-2',\n isNested && 'pl-3',\n )}\n >\n {!isNested && (\n <span\n className='RemoteFlows__BreakdownList__Bullet w-1 h-1 bg-[#09090B] rounded-full flex-shrink-0'\n aria-hidden='true'\n />\n )}\n\n {isCollapsible ? (\n <button\n onClick={() => setIsOpen(!isOpen)}\n className='RemoteFlows__BreakdownList__CollapseButton flex items-center gap-2 hover:bg-gray-100 rounded p-1'\n >\n <span\n className={cn(\n isNested\n ? 'RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]'\n : 'RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B]',\n )}\n >\n {item.label}\n </span>\n <ChevronDown\n className={`RemoteFlows__BreakdownList__ChevronDown h-3 w-3 text-muted-foreground transition-transform ${\n isOpen ? 'rotate-180' : ''\n }`}\n />\n </button>\n ) : (\n <span\n className={cn(\n isNested\n ? 'RemoteFlows__BreakdownList__Text--Nested text-xs text-[#71717A]'\n : 'RemoteFlows__BreakdownList__Text--NotNested text-sm text-[#09090B] p-1',\n )}\n >\n {item.label}\n </span>\n )}\n\n {item.tooltip && (\n <BasicTooltip\n content={\n <>\n <span\n dangerouslySetInnerHTML={{\n __html: sanitizeHtml(item.tooltip),\n }}\n />{' '}\n {item.zendeskId && (\n <ZendeskTriggerButton zendeskId={Number(item.zendeskId)}>\n Learn more\n </ZendeskTriggerButton>\n )}\n </>\n }\n >\n <button className='RemoteFlows__BreakdownList__InfoButton p-1 hover:bg-gray-100 rounded'>\n <Info\n className={cn(\n 'RemoteFlows__BreakdownList__InfoButton__Icon text-muted-foreground',\n isNested ? 'h-3 w-3' : 'h-4 w-4',\n )}\n />\n </button>\n </BasicTooltip>\n )}\n </div>\n\n {isMultipleCurrency ? (\n <>\n <span\n data-testid={\n item.dataSelector && item.dataSelector + '-employee-amount'\n }\n className={cn(\n 'RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right',\n isNested\n ? 'RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]'\n : 'RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]',\n )}\n >\n {item.regionalAmount || '—'}\n </span>\n <span\n data-testid={\n item.dataSelector && item.dataSelector + '-employer-amount'\n }\n className={cn(\n 'RemoteFlows__BreakdownList__EmployerAmountText text-sm text-right',\n isNested\n ? 'RemoteFlows__BreakdownList__EmployerAmountText--Nested text-[#71717A]'\n : 'RemoteFlows__BreakdownList__EmployerAmountText--NotNested text-[#09090B]',\n )}\n >\n {item.employerAmount || '—'}\n </span>\n </>\n ) : (\n <span\n data-testid={item.dataSelector}\n className={cn(\n 'RemoteFlows__BreakdownList__RegionalAmountText text-sm text-right',\n isNested\n ? 'RemoteFlows__BreakdownList__RegionalAmountText--Nested text-[#71717A]'\n : 'RemoteFlows__BreakdownList__RegionalAmountText--NotNested text-[#09090B]',\n )}\n >\n {item.regionalAmount || '—'}\n </span>\n )}\n </div>\n\n {hasChildren && isOpen && (\n <div className='mt-1'>\n <BreakdownList\n items={item.children!}\n isMultipleCurrency={isMultipleCurrency}\n level={level + 1}\n />\n </div>\n )}\n </li>\n );\n}\n\ninterface BreakdownListProps {\n items: BreakdownItem[];\n isMultipleCurrency: boolean;\n className?: string;\n level?: number;\n}\n\nfunction BreakdownList({\n items,\n isMultipleCurrency,\n className,\n level,\n}: BreakdownListProps) {\n return (\n <ul className={cn('RemoteFlows__BreakdownList list-none', className)}>\n {items.map((item, index) => (\n <BreakdownListItem\n key={index}\n item={item}\n isMultipleCurrency={isMultipleCurrency}\n level={level}\n />\n ))}\n </ul>\n );\n}\n\ntype EstimationResultsComponents = {\n HiringSection?: React.ComponentType<{\n country: MinimalCountry;\n countryBenefitsUrl: string;\n countryGuideUrl: string;\n }>;\n OnboardingTimeline?: React.ComponentType<{\n minimumOnboardingDays: number | null;\n data: OnboardingTimelineData;\n }>;\n Header?: React.ComponentType<{\n title: string;\n region?: MinimalRegion;\n country: MinimalCountry;\n onDelete: () => void;\n onExportPdf: () => void;\n }>;\n Footer?: React.ComponentType;\n};\n\ntype EstimationResultsProps = {\n estimation: CostCalculatorEstimation;\n title: string;\n components?: EstimationResultsComponents;\n onDelete: () => void;\n onExportPdf: () => void;\n onEdit: () => void;\n};\n\nexport const EstimationResults = ({\n estimation,\n title,\n components,\n onDelete,\n onExportPdf,\n onEdit,\n}: EstimationResultsProps) => {\n const CustomHiringSection = components?.HiringSection || HiringSection;\n const CustomOnboardingTimeline =\n components?.OnboardingTimeline || OnboardingTimeline;\n const CustomHeader = components?.Header || EstimationResultsHeader;\n const CustomFooter = components?.Footer;\n\n const onboardingTimelineData = getOnboardingTimelineData();\n\n const isMultipleCurrency =\n estimation.employer_currency_costs.currency.code !==\n estimation.regional_currency_costs.currency.code;\n\n const hasManagementFee =\n estimation.employer_currency_costs.monthly_management_fee;\n\n const hasRegion = estimation.region.code !== estimation.country.code;\n\n const formattedSalary = formatCurrency(\n estimation.regional_currency_costs.annual_gross_salary,\n estimation.regional_currency_costs.currency.code,\n );\n\n return (\n <Card className='RemoteFlows__EstimationResults__Card p-10'>\n <div className='RemoteFlows__Separator'>\n <CustomHeader\n title={title}\n annualGrossSalary={formattedSalary}\n region={hasRegion ? estimation.region : undefined}\n country={estimation.country}\n onDelete={onDelete}\n onExportPdf={onExportPdf}\n onEdit={onEdit}\n />\n </div>\n <div className='RemoteFlows__Separator'>\n <EstimationHeaders\n isMultipleCurrency={isMultipleCurrency}\n className='mb-3'\n />\n <EstimationRow\n label='Monthly total cost'\n amounts={\n isMultipleCurrency\n ? [\n formatCurrency(\n estimation.regional_currency_costs.monthly_total,\n estimation.regional_currency_costs.currency.code,\n ),\n formatCurrency(\n estimation.employer_currency_costs.monthly_total,\n estimation.employer_currency_costs.currency.code,\n ),\n ]\n : formatCurrency(\n estimation.regional_currency_costs.monthly_total,\n estimation.regional_currency_costs.currency.code,\n )\n }\n >\n <BreakdownList\n items={[\n {\n label: 'Gross monthly salary',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.monthly_gross_salary,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.monthly_gross_salary,\n estimation.employer_currency_costs.currency.code,\n ),\n zendeskId: zendeskArticles.extraPayments.toString(),\n tooltip:\n 'This country respects extra payments on top of the gross salary.',\n },\n {\n label: 'Mandatory employer costs',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .monthly_contributions_total,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .monthly_contributions_total,\n estimation.employer_currency_costs.currency.code,\n ),\n children:\n estimation.employer_currency_costs.monthly_contributions_breakdown?.map(\n (item, index) => {\n return {\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .monthly_contributions_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.code,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n };\n },\n ) || [],\n },\n {\n label: 'Benefits',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.monthly_benefits_total,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.monthly_benefits_total,\n estimation.employer_currency_costs.currency.code,\n ),\n children:\n estimation.employer_currency_costs.monthly_benefits_breakdown?.map(\n (item, index) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .monthly_benefits_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.code,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n ...(hasManagementFee\n ? [\n {\n label: 'Monthly fee',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .monthly_management_fee,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .monthly_management_fee,\n estimation.employer_currency_costs.currency.code,\n ),\n tooltip:\n 'Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more.',\n },\n ]\n : []),\n ]}\n isMultipleCurrency={isMultipleCurrency}\n />\n </EstimationRow>\n </div>\n <div className='RemoteFlows__Separator'>\n <EstimationRow\n label='Annual total cost'\n amounts={\n isMultipleCurrency\n ? [\n formatCurrency(\n estimation.regional_currency_costs.annual_total,\n estimation.regional_currency_costs.currency.code,\n ),\n formatCurrency(\n estimation.employer_currency_costs.annual_total,\n estimation.employer_currency_costs.currency.code,\n ),\n ]\n : formatCurrency(\n estimation.regional_currency_costs.annual_total,\n estimation.regional_currency_costs.currency.code,\n )\n }\n >\n <BreakdownList\n items={[\n {\n label: 'Gross annual salary',\n dataSelector: 'annual-gross-salary',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.annual_gross_salary,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.annual_gross_salary,\n estimation.employer_currency_costs.currency.code,\n ),\n },\n {\n label: 'Mandatory employer costs',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.annual_contributions_total,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.annual_contributions_total,\n estimation.employer_currency_costs.currency.code,\n ),\n children:\n estimation.employer_currency_costs.annual_contributions_breakdown?.map(\n (item, index) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .annual_contributions_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.code,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n {\n label: 'Benefits',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs.annual_benefits_total,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs.annual_benefits_total,\n estimation.employer_currency_costs.currency.code,\n ),\n children:\n estimation.employer_currency_costs.annual_benefits_breakdown?.map(\n (item, index) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .annual_benefits_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.code,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n {\n label: 'Extra statutory payments',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .extra_statutory_payments_total,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .extra_statutory_payments_total,\n estimation.employer_currency_costs.currency.code,\n ),\n children:\n estimation.employer_currency_costs.extra_statutory_payments_breakdown?.map(\n (item, index) => ({\n label: item.name,\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .extra_statutory_payments_breakdown?.[index]?.amount,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n item.amount,\n estimation.employer_currency_costs.currency.code,\n ),\n zendeskId: item.zendesk_article_id || undefined,\n tooltip: item.description || undefined,\n }),\n ) || [],\n },\n ...(hasManagementFee\n ? [\n {\n label: 'Annual fee',\n regionalAmount: formatCurrency(\n estimation.regional_currency_costs\n .annual_management_fee,\n estimation.regional_currency_costs.currency.code,\n ),\n employerAmount: formatCurrency(\n estimation.employer_currency_costs\n .annual_management_fee,\n estimation.employer_currency_costs.currency.code,\n ),\n tooltip:\n 'Discounts may be available based on your commitment and team size. Speak to your account or customer success manager to learn more.',\n },\n ]\n : []),\n ]}\n isMultipleCurrency={isMultipleCurrency}\n />\n </EstimationRow>\n </div>\n <div className='RemoteFlows__Separator'>\n <CustomOnboardingTimeline\n minimumOnboardingDays={estimation.minimum_onboarding_time}\n data={onboardingTimelineData}\n />\n </div>\n\n <CustomHiringSection\n countryBenefitsUrl={estimation.country_benefits_details_url as string}\n countryGuideUrl={estimation.country_guide_url as string}\n country={estimation.country}\n />\n\n {CustomFooter && <CustomFooter />}\n </Card>\n );\n};\n"],"mappings":"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","names":["MoreHorizontal","useState","Fragment","jsx","jsxs","ActionsDropdown","actions","className","label","dataSelector","isOpen","setIsOpen","useState","cn","Button","MoreHorizontal","action","index","__name","ChevronDown","Info","Flag","useState","Fragment","jsx","jsxs","FLAG_CODE_MAPPING","EstimationResultsHeader","__name","title","country","region","annualGrossSalary","onDelete","onExportPdf","onEdit","actions","Flag","ActionsDropdown","getOnboardingTimelineData","zendeskArticles","OnboardingTimeline","minimumOnboardingDays","data","className","Accordion","cn","AccordionItem","AccordionTrigger","AccordionContent","step","ZendeskTriggerButton","HiringSection","countryBenefitsUrl","countryGuideUrl","EstimationHeaders","isMultipleCurrency","EstimationRow","label","amounts","children","isOpen","setIsOpen","useState","ChevronDown","amount","index","BreakdownListItem","item","level","hasChildren","isNested","isCollapsible","BasicTooltip","sanitizeHtml","Info","BreakdownList","items","EstimationResults","estimation","components","CustomHiringSection","CustomOnboardingTimeline","CustomHeader","CustomFooter","onboardingTimelineData","hasManagementFee","hasRegion","formattedSalary","formatCurrency","Card"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a}from"./chunk-VY435JUV.js";import{b as i}from"./chunk-PGWKJ6FK.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as d}from"react/jsx-runtime";function y({onSubmit:s,onSuccess:c,onError:t}){let{onboardingBag:o}=i(),u=e(async n=>{try{await s?.({countryCode:n.country});let r=await o.onSubmit(n);if(r?.data){await c?.(r?.data),o?.next();return}r?.error&&t?.({error:r.error,rawError:r.rawError,fieldErrors:[]})}catch(r){t?.({error:r,rawError:r,fieldErrors:[]})}},"handleSubmit"),l=o.stepState.values?.select_country||o.initialValues.select_country;return d(a,{defaultValues:l,onSubmit:u})}e(y,"SelectCountryStep");export{y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-AZJ2LLX5.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{P as e}from"./chunk-4YW6P3IJ.js";import{a as t}from"./chunk-P37U34EQ.js";import{queryOptions as i}from"@tanstack/react-query";var a=t((o,n="default")=>i({queryKey:["countries",n],retry:!1,queryFn:t(async()=>{let r=await e({client:o,headers:{Authorization:""}});if(r.error||!r.data)throw new Error("Failed to fetch supported countries");return r},"queryFn")}),"countriesOptions");export{a};
|
|
2
|
+
//# sourceMappingURL=chunk-BFYHFJHJ.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-3PDMZU34.js";import{f as l,h as f}from"./chunk-UGPYPGVV.js";import{h as u}from"./chunk-EFL7QFFN.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-BNJEVVWG.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as k}from"./chunk-XFD3ULUF.js";import{a as S}from"./chunk-QSBXRKYE.js";import{a as m,b as u,c as h,d as _}from"./chunk-DFJNVGK4.js";import{a as y}from"./chunk-NW3D7CPK.js";import{a as g}from"./chunk-OXKDKDSH.js";import{I as T,ba as b,c as D}from"./chunk-4YW6P3IJ.js";import{e as i}from"./chunk-H2O4CVKF.js";import{a as n}from"./chunk-P37U34EQ.js";import{useQuery as v}from"@tanstack/react-query";var c=n(({employmentId:e,status:t,timeoffType:a,options:o})=>{let{client:r}=i();return v({queryKey:["timeoff",e,t],retry:!1,queryFn:n(()=>b({client:r,headers:{Authorization:""},query:{employment_id:e,status:t,timeoff_type:a}}),"queryFn"),select:n(({data:s})=>o?.select?.(s)??s,"select"),enabled:o?.enabled})},"useTimeOffQuery"),R=n((e,t)=>{let a=y(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),o=y(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});return`${a} \u2192 ${o}`},"formatDateRange"),N=n(({employmentId:e,options:t})=>c({employmentId:e,timeoffType:"paid_time_off",options:{enabled:t?.enabled,select:n(a=>({bookedDays:a?.data?.timeoffs?.reduce((o,r)=>o+(r?.timeoff_days?.filter(s=>s.hours!=null&&s.hours>0).length||0),0)||0,timeoffs:a?.data?.timeoffs?.map(o=>{let r=o?.timeoff_days?.filter(s=>s.hours>0).length||0;return{status:o?.status,duration:r,startDate:o?.start_date,endDate:o?.end_date,formattedDate:R(o?.start_date,o?.end_date)}})||[]}),"select")}}),"usePaidTimeoffBreakdownQuery"),A=n(({employmentId:e})=>{let{client:t}=i();return v({queryKey:["timeoff-balance",e],retry:!1,queryFn:n(()=>T({client:t,headers:{Authorization:""},path:{employment_id:e}}),"queryFn"),select:n(({data:a})=>a,"select")})},"useTimeOffLeavePoliciesSummaryQuery");import{useMutation as x,useQuery as Q}from"@tanstack/react-query";function V(e){return Object.entries(e).reduce((t,[a,o])=>({...t,[a]:h(o)}),{})}n(V,"formatTimeoffValues");function F(e){let t=e?.contract_details?.available_pto,a=e?.contract_details?.available_pto_type;return e?.country?.code==="USA"&&a==="unlimited"?{value:t===0?20:t}:a==="unlimited"&&t>0?{value:t}:{value:t}}n(F,"getMinimumStatutoryDays");function q(e,t){let a=0,o=0;return e.forEach(r=>{r.timeoff_days?.forEach(s=>{new Date(s.day)<=t?a+=s.hours||0:o+=s.hours||0})}),{before:a,after:o}}n(q,"getAllTimeoffHoursBeforeDate");var U=n(({employmentId:e,date:t,options:a})=>c({employmentId:e,timeoffType:"paid_time_off",status:"approved",options:{enabled:a?.enabled,select:n(o=>{let{before:r,after:s}=q(o?.data?.timeoffs||[],new Date(t));return{bookedDaysBeforeTermination:u(r),bookedDaysAfterTermination:u(s)}},"select")}}),"useBookedTimeoffBeforeAndAfterTerminationQuery"),me=n(({employmentId:e,proposedTerminationDate:t,employment:a})=>{let{value:o=0}=F(a),r=A({employmentId:e}),s=U({employmentId:e,date:t}),p=r.data?.data?.[0].annual_entitlement.type==="limited"?{days:r.data?.data?.[0].annual_entitlement.days,hours:r.data?.data?.[0].annual_entitlement.hours}:{days:o,hours:0},d={days:r.data?.data?.[0].booked.days||0,hours:r.data?.data?.[0].booked.hours||0},f=r.data?.data?.[0].current_entitlement.type==="limited"?{days:r.data?.data?.[0].current_entitlement.days||0,hours:r.data?.data?.[0].current_entitlement.hours||0}:{days:o,hours:0},l={days:r.data?.data?.[0].used.days||0,hours:r.data?.data?.[0].used.hours||0},B=s.data?.bookedDaysBeforeTermination||{days:0,hours:0},C=s.data?.bookedDaysAfterTermination||{days:0,hours:0},H=m(f.days,f.hours),P=m(l.days,l.hours),E=m(d.days,d.hours),L=H-P-E,O=_(u(L));return{data:{...V({entitledDays:p,bookedDays:d,usedDays:l,approvedDaysBeforeTermination:B,approvedDaysAfterTermination:C,remainingDays:O,currentEntitlementDays:f}),isUnlimitedPto:a?.contract_details?.available_pto_type==="unlimited"},isLoading:r.isLoading||s.isLoading,isError:r.isError||s.isError,error:r.error||s.error}},"useSummaryTimeOffDataQuery"),ue=n(()=>{let{client:e}=i();return x({mutationFn:n(t=>D({client:e,body:t}),"mutationFn")})},"useCreateTermination"),de=n(({formValues:e,jsfModify:t,step:a})=>Q({queryKey:["rmt-flows-termination-schema",a],queryFn:n(()=>S[a]??k,"queryFn"),select:n(({data:o})=>{let r=o?.schema||{};return g(r,e||{},{jsfModify:t})},"select")}),"useTerminationSchema");export{c as a,N as b,A as c,U as d,me as e,ue as f,de as g};
|
|
2
|
+
//# sourceMappingURL=chunk-BVUHS36Q.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/api/timeoff.ts","../src/flows/Termination/api.ts"],"sourcesContent":["import {\n getV1LeavePoliciesSummaryEmploymentId,\n getV1Timeoff,\n ListTimeoffResponse,\n TimeoffStatus,\n TimeoffType,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { parseLocalDate } from '@/src/common/dates';\nimport { useClient } from '@/src/context';\nimport { useQuery } from '@tanstack/react-query';\n\n/**\n * Hook to retrieve time off data for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch time off data for.\n * @param {TimeoffStatus} [params.status] - The status of the time off requests to filter by (e.g., 'approved', 'pending').\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the time off data.\n *\n */\nexport const useTimeOffQuery = <TData = ListTimeoffResponse>({\n employmentId,\n status,\n timeoffType,\n options,\n}: {\n employmentId?: string;\n status?: TimeoffStatus;\n timeoffType?: TimeoffType;\n options?: {\n enabled?: boolean;\n select?: (data: ListTimeoffResponse | undefined) => TData;\n };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['timeoff', employmentId, status],\n retry: false,\n queryFn: () => {\n return getV1Timeoff({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n query: {\n employment_id: employmentId,\n status: status,\n timeoff_type: timeoffType,\n },\n });\n },\n select: ({ data }) => (options?.select?.(data) ?? data) as TData,\n enabled: options?.enabled,\n });\n};\n\nconst formatDateRange = (startDate: string, endDate: string) => {\n const start = parseLocalDate(startDate).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n const end = parseLocalDate(endDate).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n return `${start} → ${end}`;\n};\n\nexport type PaidTimeoffBreakdownResponse = {\n bookedDays: number;\n timeoffs: {\n status: string;\n duration: number;\n startDate: string;\n endDate: string;\n formattedDate: string;\n }[];\n};\n\n/**\n * Hook to retrieve paid time off breakdown for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch paid time off breakdown for.\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the paid time off breakdown.\n *\n */\nexport const usePaidTimeoffBreakdownQuery = ({\n employmentId,\n options,\n}: {\n employmentId?: string;\n options?: {\n enabled?: boolean;\n };\n}) => {\n return useTimeOffQuery<PaidTimeoffBreakdownResponse>({\n employmentId,\n timeoffType: 'paid_time_off',\n options: {\n enabled: options?.enabled,\n select: (data) => {\n return {\n bookedDays:\n data?.data?.timeoffs?.reduce(\n (acc, timeoff) =>\n acc +\n (timeoff?.timeoff_days?.filter(\n (day) => day.hours != null && day.hours > 0,\n ).length || 0),\n 0,\n ) || 0,\n timeoffs:\n data?.data?.timeoffs?.map((timeoff) => {\n const duration =\n timeoff?.timeoff_days?.filter((day) => day.hours > 0).length ||\n 0;\n return {\n status: timeoff?.status,\n duration: duration,\n startDate: timeoff?.start_date,\n endDate: timeoff?.end_date,\n formattedDate: formatDateRange(\n timeoff?.start_date,\n timeoff?.end_date,\n ),\n };\n }) || [],\n };\n },\n },\n });\n};\n\n/**\n * Hook to retrieve time off balance for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch time off balance for.\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the time off balance.\n *\n */\nexport const useTimeOffLeavePoliciesSummaryQuery = ({\n employmentId,\n}: {\n employmentId?: string;\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['timeoff-balance', employmentId],\n retry: false,\n queryFn: () => {\n return getV1LeavePoliciesSummaryEmploymentId({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: { employment_id: employmentId as string },\n });\n },\n select: ({ data }) => data,\n });\n};\n","import {\n CreateOffboardingParams,\n postV1Offboardings,\n Timeoff,\n} from '@/src/client';\nimport {\n useTimeOffLeavePoliciesSummaryQuery,\n useTimeOffQuery,\n} from '@/src/common/api/timeoff';\nimport { useClient } from '@/src/context';\nimport { Employment } from '@/src/flows/Onboarding/types';\nimport { defaultSchema } from '@/src/flows/Termination/json-schemas/defaultSchema';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { JSFModify } from '@/src/flows/types';\nimport {\n clampNegativeValuesIfApplicable,\n convertTotalHoursToDaysAndHours,\n convertToTotalHours,\n DaysAndHours,\n formatAsDecimal,\n} from '@/src/lib/time';\nimport { Client } from '@/src/client/client';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { schema } from '@/src/flows/Termination/json-schemas/schema';\n\nfunction formatTimeoffValues(\n values: Record<string, DaysAndHours>,\n): Record<string, string> {\n return Object.entries(values).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: formatAsDecimal(value),\n }),\n {},\n );\n}\n\nfunction getMinimumStatutoryDays(employment?: Employment) {\n const availablePto = employment?.contract_details?.available_pto as number;\n const ptoType = employment?.contract_details?.available_pto_type as\n | 'unlimited'\n | 'fixed';\n const countryCode = employment?.country?.code;\n\n // Special handling for countries without statutory minimums\n if (countryCode === 'USA' && ptoType === 'unlimited') {\n // USA has no minimum, but Remote recommends 20\n return {\n value: availablePto === 0 ? 20 : availablePto,\n };\n }\n\n // For most countries with unlimited PTO, available_pto IS the statutory minimum\n if (ptoType === 'unlimited' && availablePto > 0) {\n return {\n value: availablePto,\n };\n }\n\n // For fixed PTO, it's just the entitlement\n return {\n value: availablePto,\n };\n}\n\nexport type BookedTimeoffBeforeDateResponse = {\n /*\n * The number of days booked before termination.\n */\n bookedDaysBeforeTermination: DaysAndHours;\n /*\n * The number of days booked after termination.\n */\n bookedDaysAfterTermination: DaysAndHours;\n};\n\nfunction getAllTimeoffHoursBeforeDate(\n timeoffs: Timeoff[],\n terminationDate: Date,\n): { before: number; after: number } {\n let before = 0;\n let after = 0;\n\n timeoffs.forEach((timeoff) => {\n timeoff.timeoff_days?.forEach((day) => {\n const dayDate = new Date(day.day);\n if (dayDate <= terminationDate) {\n // Day is on or before termination\n before += day.hours || 0;\n } else {\n // Day is after termination\n after += day.hours || 0;\n }\n });\n });\n\n return { before, after };\n}\n\n/**\n * Hook to retrieve booked time off data before and after a specific date for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch booked time off data for.\n * @param {string} [params.date] - The date to fetch booked time off data for.\n * @returns {BookedTimeoffBeforeDateResponse} - The booked time off data before and after the specific date.\n *\n * This hook accounts for partial days and multiple timeoff_days per request.\n */\nexport const useBookedTimeoffBeforeAndAfterTerminationQuery = ({\n employmentId,\n date,\n options,\n}: {\n employmentId: string;\n date: string;\n options?: { enabled: boolean };\n}) => {\n return useTimeOffQuery<BookedTimeoffBeforeDateResponse>({\n employmentId,\n timeoffType: 'paid_time_off',\n status: 'approved',\n options: {\n enabled: options?.enabled,\n select: (data) => {\n const { before, after } = getAllTimeoffHoursBeforeDate(\n data?.data?.timeoffs || [],\n new Date(date),\n );\n\n return {\n bookedDaysBeforeTermination: convertTotalHoursToDaysAndHours(before),\n bookedDaysAfterTermination: convertTotalHoursToDaysAndHours(after),\n };\n },\n },\n });\n};\n\nexport type SummaryTimeOffDataResponse = {\n /*\n * The number of days entitled to per year.\n */\n entitledDays: string;\n /*\n * The number of days booked.\n */\n bookedDays: string;\n /*\n * The number of days used.\n */\n usedDays: string;\n /*\n * The number of days current entitlement, better than entitledDays because it takes into account the accrued value.\n */\n currentEntitlementDays: string;\n /*\n * The number of days approved before termination.\n */\n approvedDaysBeforeTermination: string;\n /*\n * The number of days approved after termination.\n */\n approvedDaysAfterTermination: string;\n /*\n * The number of days remaining.\n */\n remainingDays: string;\n /*\n * Whether the PTO is unlimited or not.\n */\n isUnlimitedPto: boolean;\n};\n\n/**\n * Hook to retrieve summary time off data for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch summary time off data for.\n * @param {string} [params.proposedTerminationDate] - The proposed termination date to fetch summary time off data for.\n * @returns {SummaryTimeOffDataResponse} - The summary time off data.\n *\n * This hook doesn't take into account unlimited time off or half days yet.\n *\n */\nexport const useSummaryTimeOffDataQuery = ({\n employmentId,\n proposedTerminationDate,\n employment,\n}: {\n employmentId: string;\n proposedTerminationDate: string;\n employment?: Employment;\n}) => {\n const { value: minimumStatutoryDays = 0 } =\n getMinimumStatutoryDays(employment);\n const leavePoliciesSummaryQuery = useTimeOffLeavePoliciesSummaryQuery({\n employmentId,\n });\n const bookedTimeQuery = useBookedTimeoffBeforeAndAfterTerminationQuery({\n employmentId,\n date: proposedTerminationDate,\n });\n\n const entitledDays =\n leavePoliciesSummaryQuery.data?.data?.[0].annual_entitlement.type ===\n 'limited'\n ? {\n days: leavePoliciesSummaryQuery.data?.data?.[0].annual_entitlement\n .days,\n hours:\n leavePoliciesSummaryQuery.data?.data?.[0].annual_entitlement.hours,\n }\n : { days: minimumStatutoryDays, hours: 0 };\n\n const bookedDays = {\n days: leavePoliciesSummaryQuery.data?.data?.[0].booked.days || 0,\n hours: leavePoliciesSummaryQuery.data?.data?.[0].booked.hours || 0,\n };\n\n const currentEntitlementDays =\n leavePoliciesSummaryQuery.data?.data?.[0].current_entitlement.type ===\n 'limited'\n ? {\n days:\n leavePoliciesSummaryQuery.data?.data?.[0].current_entitlement\n .days || 0,\n hours:\n leavePoliciesSummaryQuery.data?.data?.[0].current_entitlement\n .hours || 0,\n }\n : { days: minimumStatutoryDays, hours: 0 };\n\n const usedDays = {\n days: leavePoliciesSummaryQuery.data?.data?.[0].used.days || 0,\n hours: leavePoliciesSummaryQuery.data?.data?.[0].used.hours || 0,\n };\n\n const approvedDaysBeforeTermination = bookedTimeQuery.data\n ?.bookedDaysBeforeTermination || { days: 0, hours: 0 };\n\n const approvedDaysAfterTermination = bookedTimeQuery.data\n ?.bookedDaysAfterTermination || { days: 0, hours: 0 };\n\n const totalCurrentEntitlementHours = convertToTotalHours(\n currentEntitlementDays.days,\n currentEntitlementDays.hours,\n );\n const totalUsedHours = convertToTotalHours(usedDays.days, usedDays.hours);\n const totalBookedHours = convertToTotalHours(\n bookedDays.days,\n bookedDays.hours,\n );\n\n const remainingHours =\n totalCurrentEntitlementHours - totalUsedHours - totalBookedHours;\n\n const remainingDays = clampNegativeValuesIfApplicable(\n convertTotalHoursToDaysAndHours(remainingHours),\n );\n\n const formattedValues = formatTimeoffValues({\n entitledDays,\n bookedDays,\n usedDays,\n approvedDaysBeforeTermination,\n approvedDaysAfterTermination,\n remainingDays,\n currentEntitlementDays,\n }) as Omit<SummaryTimeOffDataResponse, 'isUnlimitedPto'>;\n\n return {\n data: {\n ...formattedValues,\n isUnlimitedPto:\n employment?.contract_details?.available_pto_type === 'unlimited',\n },\n isLoading: leavePoliciesSummaryQuery.isLoading || bookedTimeQuery.isLoading,\n isError: leavePoliciesSummaryQuery.isError || bookedTimeQuery.isError,\n error: leavePoliciesSummaryQuery.error || bookedTimeQuery.error,\n };\n};\n\nexport const useCreateTermination = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: CreateOffboardingParams) => {\n return postV1Offboardings({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\nexport const useTerminationSchema = ({\n formValues,\n jsfModify,\n step,\n}: {\n formValues?: TerminationFormValues;\n jsfModify?: JSFModify;\n step?: string;\n}) => {\n return useQuery({\n queryKey: ['rmt-flows-termination-schema', step],\n queryFn: () => {\n return schema[step as keyof typeof schema] ?? defaultSchema;\n },\n select: ({ data }) => {\n const jsfSchema = data?.schema || {};\n return createHeadlessForm(jsfSchema, formValues || {}, {\n jsfModify,\n });\n },\n });\n};\n"],"mappings":"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","names":["useQuery","useTimeOffQuery","__name","employmentId","status","timeoffType","options","client","useClient","useQuery","getV1Timeoff","data","formatDateRange","startDate","endDate","start","parseLocalDate","end","usePaidTimeoffBreakdownQuery","acc","timeoff","day","duration","useTimeOffLeavePoliciesSummaryQuery","getV1LeavePoliciesSummaryEmploymentId","useMutation","useQuery","formatTimeoffValues","values","acc","key","value","formatAsDecimal","__name","getMinimumStatutoryDays","employment","availablePto","ptoType","getAllTimeoffHoursBeforeDate","timeoffs","terminationDate","before","after","timeoff","day","useBookedTimeoffBeforeAndAfterTerminationQuery","employmentId","date","options","useTimeOffQuery","data","convertTotalHoursToDaysAndHours","useSummaryTimeOffDataQuery","proposedTerminationDate","minimumStatutoryDays","leavePoliciesSummaryQuery","useTimeOffLeavePoliciesSummaryQuery","bookedTimeQuery","entitledDays","bookedDays","currentEntitlementDays","usedDays","approvedDaysBeforeTermination","approvedDaysAfterTermination","totalCurrentEntitlementHours","convertToTotalHours","totalUsedHours","totalBookedHours","remainingHours","remainingDays","clampNegativeValuesIfApplicable","useCreateTermination","client","useClient","useMutation","payload","postV1Offboardings","useTerminationSchema","formValues","jsfModify","step","useQuery","schema","defaultSchema","jsfSchema","createHeadlessForm"]}
|
|
1
|
+
{"version":3,"sources":["../src/common/api/timeoff.ts","../src/flows/Termination/api.ts"],"sourcesContent":["import {\n getV1LeavePoliciesSummaryEmploymentId,\n getV1Timeoff,\n ListTimeoffResponse,\n TimeoffStatus,\n TimeoffType,\n} from '@/src/client';\nimport { Client } from '@/src/client/client';\nimport { parseLocalDate } from '@/src/common/dates';\nimport { useClient } from '@/src/context';\nimport { useQuery } from '@tanstack/react-query';\n\n/**\n * Hook to retrieve time off data for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch time off data for.\n * @param {TimeoffStatus} [params.status] - The status of the time off requests to filter by (e.g., 'approved', 'pending').\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the time off data.\n *\n */\nexport const useTimeOffQuery = <TData = ListTimeoffResponse>({\n employmentId,\n status,\n timeoffType,\n options,\n}: {\n employmentId?: string;\n status?: TimeoffStatus;\n timeoffType?: TimeoffType;\n options?: {\n enabled?: boolean;\n select?: (data: ListTimeoffResponse | undefined) => TData;\n };\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['timeoff', employmentId, status],\n retry: false,\n queryFn: () => {\n return getV1Timeoff({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n query: {\n employment_id: employmentId,\n status: status,\n timeoff_type: timeoffType,\n },\n });\n },\n select: ({ data }) => (options?.select?.(data) ?? data) as TData,\n enabled: options?.enabled,\n });\n};\n\nconst formatDateRange = (startDate: string, endDate: string) => {\n const start = parseLocalDate(startDate).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n const end = parseLocalDate(endDate).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n return `${start} → ${end}`;\n};\n\nexport type PaidTimeoffBreakdownResponse = {\n bookedDays: number;\n timeoffs: {\n status: string;\n duration: number;\n startDate: string;\n endDate: string;\n formattedDate: string;\n }[];\n};\n\n/**\n * Hook to retrieve paid time off breakdown for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch paid time off breakdown for.\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the paid time off breakdown.\n *\n */\nexport const usePaidTimeoffBreakdownQuery = ({\n employmentId,\n options,\n}: {\n employmentId?: string;\n options?: {\n enabled?: boolean;\n };\n}) => {\n return useTimeOffQuery<PaidTimeoffBreakdownResponse>({\n employmentId,\n timeoffType: 'paid_time_off',\n options: {\n enabled: options?.enabled,\n select: (data) => {\n return {\n bookedDays:\n data?.data?.timeoffs?.reduce(\n (acc, timeoff) =>\n acc +\n (timeoff?.timeoff_days?.filter(\n (day) => day.hours != null && day.hours > 0,\n ).length || 0),\n 0,\n ) || 0,\n timeoffs:\n data?.data?.timeoffs?.map((timeoff) => {\n const duration =\n timeoff?.timeoff_days?.filter((day) => day.hours > 0).length ||\n 0;\n return {\n status: timeoff?.status,\n duration: duration,\n startDate: timeoff?.start_date,\n endDate: timeoff?.end_date,\n formattedDate: formatDateRange(\n timeoff?.start_date,\n timeoff?.end_date,\n ),\n };\n }) || [],\n };\n },\n },\n });\n};\n\n/**\n * Hook to retrieve time off balance for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch time off balance for.\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the time off balance.\n *\n */\nexport const useTimeOffLeavePoliciesSummaryQuery = ({\n employmentId,\n}: {\n employmentId?: string;\n}) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['timeoff-balance', employmentId],\n retry: false,\n queryFn: () => {\n return getV1LeavePoliciesSummaryEmploymentId({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: { employment_id: employmentId as string },\n });\n },\n select: ({ data }) => data,\n });\n};\n","import {\n CreateOffboardingParams,\n postV1Offboardings,\n Timeoff,\n} from '@/src/client';\nimport {\n useTimeOffLeavePoliciesSummaryQuery,\n useTimeOffQuery,\n} from '@/src/common/api/timeoff';\nimport { useClient } from '@/src/context';\nimport { Employment } from '@/src/flows/Onboarding/types';\nimport { defaultSchema } from '@/src/flows/Termination/json-schemas/defaultSchema';\nimport { TerminationFormValues } from '@/src/flows/Termination/types';\nimport { JSFModify } from '@/src/flows/types';\nimport {\n clampNegativeValuesIfApplicable,\n convertTotalHoursToDaysAndHours,\n convertToTotalHours,\n DaysAndHours,\n formatAsDecimal,\n} from '@/src/lib/time';\nimport { Client } from '@/src/client/client';\nimport { createHeadlessForm } from '@/src/common/createHeadlessForm';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { schema } from '@/src/flows/Termination/json-schemas/schema';\n\nfunction formatTimeoffValues(\n values: Record<string, DaysAndHours>,\n): Record<string, string> {\n return Object.entries(values).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: formatAsDecimal(value),\n }),\n {},\n );\n}\n\nfunction getMinimumStatutoryDays(employment?: Employment) {\n const availablePto = employment?.contract_details?.available_pto as number;\n const ptoType = employment?.contract_details?.available_pto_type as\n | 'unlimited'\n | 'fixed';\n const countryCode = employment?.country?.code;\n\n // Special handling for countries without statutory minimums\n if (countryCode === 'USA' && ptoType === 'unlimited') {\n // USA has no minimum, but Remote recommends 20\n return {\n value: availablePto === 0 ? 20 : availablePto,\n };\n }\n\n // For most countries with unlimited PTO, available_pto IS the statutory minimum\n if (ptoType === 'unlimited' && availablePto > 0) {\n return {\n value: availablePto,\n };\n }\n\n // For fixed PTO, it's just the entitlement\n return {\n value: availablePto,\n };\n}\n\nexport type BookedTimeoffBeforeDateResponse = {\n /*\n * The number of days booked before termination.\n */\n bookedDaysBeforeTermination: DaysAndHours;\n /*\n * The number of days booked after termination.\n */\n bookedDaysAfterTermination: DaysAndHours;\n};\n\nfunction getAllTimeoffHoursBeforeDate(\n timeoffs: Timeoff[],\n terminationDate: Date,\n): { before: number; after: number } {\n let before = 0;\n let after = 0;\n\n timeoffs.forEach((timeoff) => {\n timeoff.timeoff_days?.forEach((day) => {\n const dayDate = new Date(day.day);\n if (dayDate <= terminationDate) {\n // Day is on or before termination\n before += day.hours || 0;\n } else {\n // Day is after termination\n after += day.hours || 0;\n }\n });\n });\n\n return { before, after };\n}\n\n/**\n * Hook to retrieve booked time off data before and after a specific date for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch booked time off data for.\n * @param {string} [params.date] - The date to fetch booked time off data for.\n * @returns {BookedTimeoffBeforeDateResponse} - The booked time off data before and after the specific date.\n *\n * This hook accounts for partial days and multiple timeoff_days per request.\n */\nexport const useBookedTimeoffBeforeAndAfterTerminationQuery = ({\n employmentId,\n date,\n options,\n}: {\n employmentId: string;\n date: string;\n options?: { enabled: boolean };\n}) => {\n return useTimeOffQuery<BookedTimeoffBeforeDateResponse>({\n employmentId,\n timeoffType: 'paid_time_off',\n status: 'approved',\n options: {\n enabled: options?.enabled,\n select: (data) => {\n const { before, after } = getAllTimeoffHoursBeforeDate(\n data?.data?.timeoffs || [],\n new Date(date),\n );\n\n return {\n bookedDaysBeforeTermination: convertTotalHoursToDaysAndHours(before),\n bookedDaysAfterTermination: convertTotalHoursToDaysAndHours(after),\n };\n },\n },\n });\n};\n\nexport type SummaryTimeOffDataResponse = {\n /*\n * The number of days entitled to per year.\n */\n entitledDays: string;\n /*\n * The number of days booked.\n */\n bookedDays: string;\n /*\n * The number of days used.\n */\n usedDays: string;\n /*\n * The number of days current entitlement, better than entitledDays because it takes into account the accrued value.\n */\n currentEntitlementDays: string;\n /*\n * The number of days approved before termination.\n */\n approvedDaysBeforeTermination: string;\n /*\n * The number of days approved after termination.\n */\n approvedDaysAfterTermination: string;\n /*\n * The number of days remaining.\n */\n remainingDays: string;\n /*\n * Whether the PTO is unlimited or not.\n */\n isUnlimitedPto: boolean;\n};\n\n/**\n * Hook to retrieve summary time off data for a specific employment.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} [params.employmentId] - The ID of the employment to fetch summary time off data for.\n * @param {string} [params.proposedTerminationDate] - The proposed termination date to fetch summary time off data for.\n * @returns {SummaryTimeOffDataResponse} - The summary time off data.\n *\n * This hook doesn't take into account unlimited time off or half days yet.\n *\n */\nexport const useSummaryTimeOffDataQuery = ({\n employmentId,\n proposedTerminationDate,\n employment,\n}: {\n employmentId: string;\n proposedTerminationDate: string;\n employment?: Employment;\n}) => {\n const { value: minimumStatutoryDays = 0 } =\n getMinimumStatutoryDays(employment);\n const leavePoliciesSummaryQuery = useTimeOffLeavePoliciesSummaryQuery({\n employmentId,\n });\n const bookedTimeQuery = useBookedTimeoffBeforeAndAfterTerminationQuery({\n employmentId,\n date: proposedTerminationDate,\n });\n\n const entitledDays =\n leavePoliciesSummaryQuery.data?.data?.[0].annual_entitlement.type ===\n 'limited'\n ? {\n days: leavePoliciesSummaryQuery.data?.data?.[0].annual_entitlement\n .days,\n hours:\n leavePoliciesSummaryQuery.data?.data?.[0].annual_entitlement.hours,\n }\n : { days: minimumStatutoryDays, hours: 0 };\n\n const bookedDays = {\n days: leavePoliciesSummaryQuery.data?.data?.[0].booked.days || 0,\n hours: leavePoliciesSummaryQuery.data?.data?.[0].booked.hours || 0,\n };\n\n const currentEntitlementDays =\n leavePoliciesSummaryQuery.data?.data?.[0].current_entitlement.type ===\n 'limited'\n ? {\n days:\n leavePoliciesSummaryQuery.data?.data?.[0].current_entitlement\n .days || 0,\n hours:\n leavePoliciesSummaryQuery.data?.data?.[0].current_entitlement\n .hours || 0,\n }\n : { days: minimumStatutoryDays, hours: 0 };\n\n const usedDays = {\n days: leavePoliciesSummaryQuery.data?.data?.[0].used.days || 0,\n hours: leavePoliciesSummaryQuery.data?.data?.[0].used.hours || 0,\n };\n\n const approvedDaysBeforeTermination = bookedTimeQuery.data\n ?.bookedDaysBeforeTermination || { days: 0, hours: 0 };\n\n const approvedDaysAfterTermination = bookedTimeQuery.data\n ?.bookedDaysAfterTermination || { days: 0, hours: 0 };\n\n const totalCurrentEntitlementHours = convertToTotalHours(\n currentEntitlementDays.days,\n currentEntitlementDays.hours,\n );\n const totalUsedHours = convertToTotalHours(usedDays.days, usedDays.hours);\n const totalBookedHours = convertToTotalHours(\n bookedDays.days,\n bookedDays.hours,\n );\n\n const remainingHours =\n totalCurrentEntitlementHours - totalUsedHours - totalBookedHours;\n\n const remainingDays = clampNegativeValuesIfApplicable(\n convertTotalHoursToDaysAndHours(remainingHours),\n );\n\n const formattedValues = formatTimeoffValues({\n entitledDays,\n bookedDays,\n usedDays,\n approvedDaysBeforeTermination,\n approvedDaysAfterTermination,\n remainingDays,\n currentEntitlementDays,\n }) as Omit<SummaryTimeOffDataResponse, 'isUnlimitedPto'>;\n\n return {\n data: {\n ...formattedValues,\n isUnlimitedPto:\n employment?.contract_details?.available_pto_type === 'unlimited',\n },\n isLoading: leavePoliciesSummaryQuery.isLoading || bookedTimeQuery.isLoading,\n isError: leavePoliciesSummaryQuery.isError || bookedTimeQuery.isError,\n error: leavePoliciesSummaryQuery.error || bookedTimeQuery.error,\n };\n};\n\nexport const useCreateTermination = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (payload: CreateOffboardingParams) => {\n return postV1Offboardings({\n client: client as Client,\n body: payload,\n });\n },\n });\n};\n\nexport const useTerminationSchema = ({\n formValues,\n jsfModify,\n step,\n}: {\n formValues?: TerminationFormValues;\n jsfModify?: JSFModify;\n step?: string;\n}) => {\n return useQuery({\n queryKey: ['rmt-flows-termination-schema', step],\n queryFn: () => {\n return schema[step as keyof typeof schema] ?? defaultSchema;\n },\n select: ({ data }) => {\n const jsfSchema = data?.schema || {};\n return createHeadlessForm(jsfSchema, formValues || {}, {\n jsfModify,\n });\n },\n });\n};\n"],"mappings":"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","names":["useQuery","useTimeOffQuery","__name","employmentId","status","timeoffType","options","client","useClient","useQuery","getV1Timeoff","data","formatDateRange","startDate","endDate","start","parseLocalDate","end","usePaidTimeoffBreakdownQuery","acc","timeoff","day","duration","useTimeOffLeavePoliciesSummaryQuery","getV1LeavePoliciesSummaryEmploymentId","useMutation","useQuery","formatTimeoffValues","values","acc","key","value","formatAsDecimal","__name","getMinimumStatutoryDays","employment","availablePto","ptoType","getAllTimeoffHoursBeforeDate","timeoffs","terminationDate","before","after","timeoff","day","useBookedTimeoffBeforeAndAfterTerminationQuery","employmentId","date","options","useTimeOffQuery","data","convertTotalHoursToDaysAndHours","useSummaryTimeOffDataQuery","proposedTerminationDate","minimumStatutoryDays","leavePoliciesSummaryQuery","useTimeOffLeavePoliciesSummaryQuery","bookedTimeQuery","entitledDays","bookedDays","currentEntitlementDays","usedDays","approvedDaysBeforeTermination","approvedDaysAfterTermination","totalCurrentEntitlementHours","convertToTotalHours","totalUsedHours","totalBookedHours","remainingHours","remainingDays","clampNegativeValuesIfApplicable","useCreateTermination","client","useClient","useMutation","payload","postV1Offboardings","useTerminationSchema","formValues","jsfModify","step","useQuery","schema","defaultSchema","jsfSchema","createHeadlessForm"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as l}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as l}from"./chunk-VY435JUV.js";import{b as s}from"./chunk-PGWKJ6FK.js";import{c as n}from"./chunk-EFL7QFFN.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-DAQZZBSX.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as d}from"./chunk-AROUKJ3F.js";import{a as c}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as d}from"./chunk-AROUKJ3F.js";import{a as c}from"./chunk-KOLEBOZV.js";import{b as s}from"./chunk-Q3ALCPJN.js";import{c as l}from"./chunk-75SQ56WH.js";import{x as n}from"./chunk-EFL7QFFN.js";import{a}from"./chunk-P37U34EQ.js";import{jsx as m,jsxs as g}from"react/jsx-runtime";function x({onSubmit:p,onSuccess:u,onError:S}){let{contractorOnboardingBag:r}=s(),f=a(async(e,F)=>{try{let t=await r.parseFormValues(e);await p?.(t);let o=await r.onSubmit(e);if(o?.data){await u?.(o?.data),r?.next();return}}catch(t){let o=n(t,r.meta?.fields?.contract_details,F);S?.(o)}},"handleSubmit"),C=r.stepState.values?.contract_details||r.initialValues.contract_details,i=r.stepState.values?.pricing_plan?.subscription,b=l(i);return g("div",{className:"space-y-4",children:[m(c,{defaultValues:C,onSubmit:f}),b&&m(d,{subscription:i})]})}a(x,"ContractDetailsStep");export{x as a};
|
|
2
|
+
//# sourceMappingURL=chunk-DN7HJZB3.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{e as B,f as p,g as y}from"./chunk-D6MFIXSJ.js";import{a as R}from"./chunk-WVJDCDGZ.js";import{a as U}from"./chunk-BFYHFJHJ.js";import{a as d}from"./chunk-OXKDKDSH.js";import{A as q,D as w,G as P,H as S,J as V,M as v,O as j,T as x,Y as D,ca as A,g,ga as I,i as f,j as h,l as b,m as E,p as C,q as F,x as O,z as _}from"./chunk-4YW6P3IJ.js";import{e as a}from"./chunk-H2O4CVKF.js";import{a as t}from"./chunk-P37U34EQ.js";import{useMutation as l,useQuery as u}from"@tanstack/react-query";var ne=t(e=>{let{client:r}=a();return u({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"),re=t(e=>{let{client:r}=a();return u({queryKey:["benefit-offers",e],retry:!1,enabled:!!e,queryFn:t(async()=>C({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,s)=>({...o,[s.benefit_group.slug]:{value:s.benefit_tier?.slug??"no",...s.benefit_group?.filter?.slug?{filter:s.benefit_group?.filter?.slug}:{}}}),{}),"select")})},"useBenefitOffers"),oe=t((e,r)=>{let{client:n}=a();return u({queryKey:["employment-engagement-agreement-details",e],retry:!1,enabled:r?.enabled??!!e,queryFn:t(async()=>b({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}=a();return l({mutationFn:t(r=>D({client:e,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),ae=t(()=>{let{client:e}=a();return l({mutationFn:t(r=>_({client:e,body:r}),"mutationFn")})},"useCreateReserveInvoice"),ie=t(({countryCode:e,form:r,fieldValues:n,options:o,query:s={},jsonSchemaVersion:i})=>{let{client:m}=a(),K=i?{json_schema_version:i}:{};return u({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,...s,...K}});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 z=c?.data||{};return d(z,n,o)},"select")})},"useJSONSchemaForm"),me=t((e,r,n)=>{let{client:o}=a(),s={json_schema_version:y(n)};return u({queryKey:["benefit-offers-schema",e],retry:!1,enabled:!!e,queryFn:t(async()=>{let i=await V({client:o,path:{employment_id:e},query:s});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"),le=t(e=>{let{client:r}=a(),n={json_schema_version:p(e)};return l({mutationFn:t(o=>f({client:r,headers:{Authorization:""},body:o,query:{...n}}),"mutationFn")})},"useCreateEmployment"),ue=t((e,r)=>{let{client:n}=a(),o={employment_basic_information_json_schema_version:p(r),contract_details_json_schema_version:B(r,e)||1};return l({mutationFn:t(({employmentId:s,...i})=>v({client:n,headers:{Authorization:""},body:i,path:{employment_id:s},query:{skip_benefits:!0,...o}}),"mutationFn")})},"useUpdateEmployment"),ce=t(()=>{let{client:e}=a();return l({mutationFn:t(({employmentId:r,...n})=>E({client:e,headers:{Authorization:""},body:n,path:{employment_id:r}}),"mutationFn")})},"useUpdateEmploymentEngagementAgreementDetails"),de=t(e=>{let{client:r}=a();return l({mutationFn:t(({employmentId:n,...o})=>{let s={json_schema_version:y(e)};return F({client:r,body:o,path:{employment_id:n},query:s})},"mutationFn")})},"useUpdateBenefitsOffers"),pe=t(e=>{let{client:r}=a(),{data:n,isLoading:o}=u({...U(r,"onboarding-countries"),select:t(i=>i.data?.data?.filter(m=>m.eor_onboarding).map(m=>({label:m.name,value:m.code}))||[],"select"),enabled:e?.queryOptions?.enabled}),s=d(R.data.schema,{},e);if(n){let i=s.fields.find(m=>m.name==="country");i&&(i.options=n)}return{isLoading:o,selectCountryForm:s}},"useCountriesSchemaField"),ye=t(({type:e="spread"})=>{let{client:r}=a();return l({mutationFn:t(n=>(e==="no_spread"?g:x)({client:r,body:n}),"mutationFn")})},"useConvertCurrency"),ge=t(()=>{let{client:e}=a();return l({mutationFn:t(({employmentId:r,...n})=>j({client:e,path:{employment_id:r},body:n}),"mutationFn")})},"useUpsertContractEligibility"),fe=t((e,r,n=!0)=>{let{client:o}=a();return u({queryKey:["employment-onboarding-reserves-status",e,r],retry:!1,enabled:n&&!!e&&!!r,queryFn:t(async()=>{let s=await h({client:o,headers:{Authorization:""},path:{company_id:e,employment_id:r}});if(s.error||!s.data)throw new Error("Failed to fetch employment onboarding reserves status");return s},"queryFn"),select:t(({data:s})=>s?.data?.status,"select")})},"useEmploymentOnboardingReservesStatus"),he=t((e,r,n)=>{let{client:o}=a();return u({queryKey:["engagement-agreement-details",e],retry:!1,enabled:n?.queryOptions?.enabled??!!e,queryFn:t(async()=>{let s=await S({client:o,path:{country_code:e}});if(s.error||!s.data)throw new Error("Failed to fetch engagement agreement details");return s},"queryFn"),select:t(({data:s})=>{let i=s?.data?.schema||{};return d(i,r,{jsfModify:n?.jsfModify?.engagement_agreement_details})},"select")})},"useEngagementAgreementDetailsSchema"),be=t((e,r)=>{let{client:n}=a();return u({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"),Ee=t(()=>{let{client:e}=a();return l({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}=a();return u({queryKey:["pre-onboarding-document",e,r],queryFn:t(async()=>{let s=await P({client:o,path:{employment_id:e,id:r}});if(s.error||!s.data)throw new Error("Failed to fetch pre-onboarding document");return s},"queryFn"),enabled:(n?.queryOptions?.enabled??!0)&&!!r,select:t(s=>s.data?.data,"select")})},"useGetPreOnboardingDocument"),Fe=t(()=>{let{client:e}=a();return l({mutationFn:t(({employmentId:r,documentId:n,signature:o})=>I({client:e,path:{employment_id:r,id:n},body:{signature:o}}),"mutationFn")})},"useSignPreOnboardingDocument");export{ne as a,re as b,oe as c,se as d,ae as e,ie as f,me as g,le as h,ue as i,ce as j,de as k,pe as l,ye as m,ge as n,fe as o,he as p,be as q,Ee as r,Ce as s,Fe as t};
|
|
2
|
+
//# sourceMappingURL=chunk-E2FLISWH.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 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 };\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 };\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"],"mappings":"waAAA,OAAS,eAAAA,EAAa,YAAAC,MAAgC,wBAqD/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,IACjB,EACD,GAAK,CAAC,EATL,UAYR,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,CACF,CACF,EA1CuC,2BA4C1BI,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","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"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-KOLEBOZV.js";import{b as e}from"./chunk-Q3ALCPJN.js";import{x as a}from"./chunk-EFL7QFFN.js";import{a as i}from"./chunk-P37U34EQ.js";import{jsx as g}from"react/jsx-runtime";function E({components:m,onSubmit:p,onSuccess:l,onError:c}){let{contractorOnboardingBag:r}=e(),d=i(async(t,P)=>{try{let n=await r.parseFormValues(t);await p?.(n);let o=await r.onSubmit(t);if(o?.data){await l?.(o?.data),r?.next();return}}catch(n){let o=a(n,r.meta?.fields?.pricing_plan,P);c?.(o)}},"handleSubmit"),u=r.stepState.values?.pricing_plan||r.initialValues.pricing_plan;return g(s,{components:m,defaultValues:u,onSubmit:d})}i(E,"PricingPlanStep");export{E as a};
|
|
2
|
+
//# sourceMappingURL=chunk-EFJ5PMPI.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as s}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as s}from"./chunk-TZOTRZGK.js";import{a as e}from"./chunk-P37U34EQ.js";import{jsx as i}from"react/jsx-runtime";var l=e(({currency:n,desiredCurrency:o,annual_gross_salary_conversion_properties:r,...a})=>i(s,{...a,sourceCurrency:n,targetCurrency:o,conversionFieldName:"annual_gross_salary_conversion",conversionProperties:{...r,description:r?.description||"Estimated amount. This is an estimation. We calculate conversions based on spot rates that are subject to fluctuation over time."},classNamePrefix:"RemoteFlows-AnnualGrossSalary",conversionType:"no_spread"}),"AnnualGrossSalary");export{l as a};
|
|
2
|
+
//# sourceMappingURL=chunk-EKRKYUUE.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as U}from"./chunk-6DHV4GT6.js";import{a as W}from"./chunk-D4ZTTILZ.js";import{a as Y}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as U}from"./chunk-6DHV4GT6.js";import{a as W}from"./chunk-D4ZTTILZ.js";import{a as Y}from"./chunk-LQ5GKNVU.js";import{a as Q}from"./chunk-JSFVJCPK.js";import{a as J}from"./chunk-QZXOBKVL.js";import{a as H}from"./chunk-YRC6EEM3.js";import{a as q,b as B,c as L,d as z}from"./chunk-BPHP4644.js";import{f as Z,g as K}from"./chunk-BVUHS36Q.js";import{a as R}from"./chunk-ZXGAFQXW.js";import{a as S}from"./chunk-QOH4BNEZ.js";import{a as N}from"./chunk-ORBP27OM.js";import{a as E}from"./chunk-OXKDKDSH.js";import{a as _,b as v}from"./chunk-Z5G55QMI.js";import{s as O}from"./chunk-4YW6P3IJ.js";import{b as w,h as u,n as D}from"./chunk-EFL7QFFN.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-F22V7VEW.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as f}from"./chunk-76ZDXC2T.js";import{b as p}from"./chunk-KFYWUBRS.js";import{a as c}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as f}from"./chunk-76ZDXC2T.js";import{b as p}from"./chunk-KFYWUBRS.js";import{a as c}from"./chunk-3PDMZU34.js";import{f as a,h as d}from"./chunk-UGPYPGVV.js";import{a as t}from"./chunk-P37U34EQ.js";import{useEffect as y,useRef as b}from"react";import{jsx as l}from"react/jsx-runtime";import{createElement as g}from"react";function B({defaultValues:s,onSubmit:u,components:F}){let{formId:C,createCompanyBag:o}=f(),m=b(s),h=p(o.handleValidation),r=a({resolver:h,defaultValues:s,shouldUnregister:!1,mode:"onBlur"});y(()=>{let n=r?.watch(e=>{Object.keys(e).some(i=>e[i]!==m.current[i])&&(o?.checkFieldUpdates(e),m.current={...e})});return()=>n?.unsubscribe()},[]);let S=t(async n=>{await u(n)},"handleSubmit");return g(d,{...r,key:`form-${o.stepState.currentStep.name}`},l("form",{id:C,onSubmit:r.handleSubmit(S),className:"space-y-4 RemoteFlows__OnboardingForm",children:l(c,{components:F,fields:o.fields,fieldsets:o.meta.fieldsets,fieldValues:o.fieldValues})}))}t(B,"CreateCompanyForm");export{B as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GJVGPPYO.js.map
|