@remoteoss/remote-flows 0.22.0 → 0.23.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/README.md +1 -1
- package/dist/{utils-CjDMg_Yr.d.ts → ZendeskTriggerButton-FSCvhzTG.d.ts} +10 -1
- package/dist/{chunk-X5DMQNEM.js → chunk-2DSNHYHZ.js} +2 -2
- package/dist/{chunk-5QP2BAUT.js → chunk-2T2N5226.js} +2 -2
- package/dist/chunk-2UAG6WDW.js +2 -0
- package/dist/{chunk-WEYUB6DC.js → chunk-3W7RKLJX.js} +2 -2
- package/dist/{chunk-KJSZIASL.js → chunk-3XDJ2LRT.js} +2 -2
- package/dist/{chunk-K4NAASBM.js → chunk-4HT7RNFP.js} +2 -2
- package/dist/{chunk-2WDEVWIE.js → chunk-4NAVUB7D.js} +2 -2
- package/dist/{chunk-QU3NSFU5.js → chunk-4SIGN3ZP.js} +2 -2
- package/dist/chunk-4T6PRR6R.js +2 -0
- package/dist/{chunk-DKA2EUPQ.js.map → chunk-4T6PRR6R.js.map} +1 -1
- package/dist/{chunk-QP36XXCQ.js → chunk-5A54AHAT.js} +2 -2
- package/dist/{chunk-22JS3T6G.js → chunk-5H5INKOY.js} +2 -2
- package/dist/{chunk-C4AVUIG2.js → chunk-5ZR7EFPY.js} +2 -2
- package/dist/{chunk-JG7FV7OZ.js → chunk-64NSBY5G.js} +2 -2
- package/dist/{chunk-5N4L2G7Q.js → chunk-6VRUYYUV.js} +2 -2
- package/dist/{chunk-3I6ONATN.js → chunk-7IZGKQII.js} +2 -2
- package/dist/{chunk-EIVHHLR5.js → chunk-A7T27JCJ.js} +2 -2
- package/dist/{chunk-CELNQ7KS.js → chunk-AHBACWMD.js} +2 -2
- package/dist/{chunk-C4SMHWP4.js → chunk-ANGJCT4I.js} +2 -2
- package/dist/{chunk-XICA45G2.js → chunk-B7I7YVNK.js} +2 -2
- package/dist/{chunk-DHJZVBVD.js → chunk-BNHN4CEM.js} +2 -2
- package/dist/chunk-CGUTMSAU.js +2 -0
- package/dist/chunk-CGUTMSAU.js.map +1 -0
- package/dist/{chunk-5SKMAYLG.js → chunk-CRHH6IPF.js} +2 -2
- package/dist/{chunk-QIAZQLSG.js → chunk-DPY77ASH.js} +2 -2
- package/dist/{chunk-J26AI33Z.js → chunk-DUD7B2IY.js} +2 -2
- package/dist/{chunk-BPJHPGTL.js → chunk-EKKRQI6B.js} +2 -2
- package/dist/chunk-FBJCDOO7.js +2 -0
- package/dist/{chunk-VXPJXQP3.js.map → chunk-FBJCDOO7.js.map} +1 -1
- package/dist/{chunk-A6X6N2G7.js → chunk-FMBYJANY.js} +2 -2
- package/dist/chunk-G34OX26W.js +2 -0
- package/dist/chunk-G34OX26W.js.map +1 -0
- package/dist/{chunk-6L7JELHX.js → chunk-G4QOEPDP.js} +2 -2
- package/dist/{chunk-2U4VW5TT.js → chunk-GKS3W6KT.js} +2 -2
- package/dist/{chunk-2VWU5VNU.js → chunk-HEQLPSHZ.js} +2 -2
- package/dist/{chunk-TWD2IDAS.js → chunk-HPBT677J.js} +2 -2
- package/dist/chunk-HYIC33YR.js +2 -0
- package/dist/chunk-HYIC33YR.js.map +1 -0
- package/dist/{chunk-MRVBOQLW.js → chunk-ILPYR7RQ.js} +2 -2
- package/dist/{chunk-CHQK23RH.js → chunk-IM525UMG.js} +2 -2
- package/dist/{chunk-CHQK23RH.js.map → chunk-IM525UMG.js.map} +1 -1
- package/dist/{chunk-MISHDUB2.js → chunk-IXAWEBRI.js} +2 -2
- package/dist/{chunk-MISHDUB2.js.map → chunk-IXAWEBRI.js.map} +1 -1
- package/dist/{chunk-VE36I6G6.js → chunk-IYGJ5QJB.js} +2 -2
- package/dist/{chunk-PJUC5WAJ.js → chunk-JF3KJ6PA.js} +2 -2
- package/dist/{chunk-5EP45OQV.js → chunk-JVSD4JOU.js} +2 -2
- package/dist/{chunk-ULHGAKFT.js → chunk-L2IKFFQX.js} +2 -2
- package/dist/{chunk-XHOQSIXZ.js → chunk-LEXD5FVL.js} +2 -2
- package/dist/{chunk-MFKGLMRJ.js → chunk-LUDRB7LC.js} +2 -2
- package/dist/chunk-LUDRB7LC.js.map +1 -0
- package/dist/{chunk-NHYBFEXA.js → chunk-N6KOPITR.js} +2 -2
- package/dist/{chunk-OOUYQLIE.js → chunk-NGTESOKF.js} +2 -2
- package/dist/{chunk-GLUERRJ2.js → chunk-NIH7XLAK.js} +2 -2
- package/dist/{chunk-XTLLWD7O.js → chunk-O4DIUKVP.js} +2 -2
- package/dist/{chunk-IUU4MOLL.js → chunk-OIN3HGOQ.js} +2 -2
- package/dist/{chunk-D52VU4UO.js → chunk-OW5QGJD4.js} +2 -2
- package/dist/{chunk-BVCBX72U.js → chunk-P5WUODPR.js} +2 -2
- package/dist/{chunk-2GCMLKO2.js → chunk-PAT3EA43.js} +2 -2
- package/dist/{chunk-GECFDGI7.js → chunk-PKRI35YC.js} +2 -2
- package/dist/{chunk-GUHBW4V3.js → chunk-PWPFCC6I.js} +2 -2
- package/dist/{chunk-XKSAKI3P.js → chunk-Q4BKFSTW.js} +2 -2
- package/dist/{chunk-2NGJN5IE.js → chunk-Q5ZRKZMK.js} +2 -2
- package/dist/{chunk-GOB6DUFS.js → chunk-QIQTM4HB.js} +1 -1
- package/dist/chunk-QIQTM4HB.js.map +1 -0
- package/dist/{chunk-TGUF5Q7J.js → chunk-RDCWARSM.js} +2 -2
- package/dist/{chunk-T6BYBXQA.js → chunk-RF5SLMJF.js} +2 -2
- package/dist/{chunk-D5KITGC6.js → chunk-S2XKE7EA.js} +2 -2
- package/dist/{chunk-V6I3EMYX.js → chunk-SA3D5OH4.js} +2 -2
- package/dist/{chunk-B25LAMRX.js → chunk-SGJSMTYG.js} +2 -2
- package/dist/{chunk-FVFXPT3Y.js → chunk-TB75BHYW.js} +2 -2
- package/dist/{chunk-JX3OQNNM.js → chunk-U2LOBJFU.js} +2 -2
- package/dist/{chunk-RJGWAZBE.js → chunk-UPXJJBXZ.js} +2 -2
- package/dist/{chunk-IK6IRESD.js → chunk-VT4GSXMI.js} +2 -2
- package/dist/chunk-WVDTHFGS.js +2 -0
- package/dist/chunk-WVDTHFGS.js.map +1 -0
- package/dist/{chunk-V2PJW577.js → chunk-XMAQ4NRR.js} +2 -2
- package/dist/{chunk-7EDGHYMX.js → chunk-ZQ6MG635.js} +2 -2
- package/dist/flows/ContractAmendment/ContractAmendmentBack.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/ContractAmendmentSubmit.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/utils.d.ts +1 -1
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/ContractorOnboarding.js +1 -1
- package/dist/flows/ContractorOnboarding/api.d.ts +2 -2
- package/dist/flows/ContractorOnboarding/api.js +1 -1
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractPreviewStep.js +1 -1
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/ContractorOnboardingForm.js +1 -1
- package/dist/flows/ContractorOnboarding/components/OnboardingBack.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/OnboardingSubmit.js +1 -1
- package/dist/flows/ContractorOnboarding/components/PricingPlan.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/components/PricingPlan.js +1 -1
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/ContractorOnboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/ContractorOnboarding/context.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/hooks.js +1 -1
- package/dist/flows/ContractorOnboarding/index.d.ts +5 -5
- package/dist/flows/ContractorOnboarding/index.js +1 -1
- package/dist/flows/ContractorOnboarding/types.d.ts +5 -5
- package/dist/flows/CostCalculator/CostCalculatorDisclaimer.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorFlow.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorFlow.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorForm.d.ts +3 -3
- package/dist/flows/CostCalculator/CostCalculatorForm.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorResetButton.js +1 -1
- package/dist/flows/CostCalculator/CostCalculatorSubmitButton.js +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.d.ts +1 -1
- package/dist/flows/CostCalculator/EstimationResults/EstimationResults.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorBenefitsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorContributionsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorExtraStatutoryPaymentsBreakdown.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorGrossSalary.js +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.d.ts +1 -1
- package/dist/flows/CostCalculator/Results/CostCalculatorResults.js +1 -1
- package/dist/flows/CostCalculator/SummaryResults/SummaryResults.d.ts +1 -1
- package/dist/flows/CostCalculator/api.d.ts +1 -1
- 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 +1 -1
- package/dist/flows/CostCalculator/utils.d.ts +3 -3
- package/dist/flows/CostCalculator/utils.js +1 -1
- package/dist/flows/Onboarding/OnboardingFlow.d.ts +4 -4
- package/dist/flows/Onboarding/OnboardingFlow.js +1 -1
- package/dist/flows/Onboarding/api.d.ts +4 -4
- package/dist/flows/Onboarding/api.js +1 -1
- package/dist/flows/Onboarding/components/AnnualGrossSalary.d.ts +2 -2
- package/dist/flows/Onboarding/components/AnnualGrossSalary.js +1 -1
- package/dist/flows/Onboarding/components/BasicInformationStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BasicInformationStep.js +1 -1
- package/dist/flows/Onboarding/components/BenefitsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/BenefitsStep.js +1 -1
- package/dist/flows/Onboarding/components/ContractDetailsStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/ContractDetailsStep.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingBack.js +1 -1
- package/dist/flows/Onboarding/components/OnboardingForm.d.ts +4 -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/OnboardingSubmit.js +1 -1
- package/dist/flows/Onboarding/components/ReviewStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SaveDraftButton.d.ts +3 -3
- package/dist/flows/Onboarding/components/SelectCountryStep.d.ts +4 -4
- package/dist/flows/Onboarding/components/SelectCountryStep.js +1 -1
- package/dist/flows/Onboarding/context.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.d.ts +4 -4
- package/dist/flows/Onboarding/hooks.js +1 -1
- package/dist/flows/Onboarding/index.d.ts +4 -4
- package/dist/flows/Onboarding/index.js +1 -1
- package/dist/flows/Onboarding/types.d.ts +4 -4
- package/dist/flows/Onboarding/utils.d.ts +4 -4
- package/dist/flows/Termination/AdditionalDetailsForm.d.ts +4 -4
- package/dist/flows/Termination/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/TerminationBack.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/TerminationSubmit.js +1 -1
- package/dist/flows/Termination/TimeOff.d.ts +1 -1
- package/dist/flows/Termination/TimeOff.js +1 -1
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.d.ts +8 -0
- package/dist/flows/Termination/components/PaidTimeOff/PaidTimeOff.js +2 -0
- package/dist/flows/Termination/components/TerminationDialogInfoContent/TerminationDialogInfoContent.js +2 -0
- package/dist/flows/Termination/components/TerminationReasonsDetailContent/TerminationReasonsDetailContent.js +2 -0
- package/dist/flows/Termination/components/TerminationReasonsDetailContent/TerminationReasonsDetailContent.js.map +1 -0
- package/dist/flows/Termination/context.d.ts +4 -4
- package/dist/flows/Termination/hooks.d.ts +4 -4
- package/dist/flows/Termination/hooks.js +1 -1
- package/dist/flows/Termination/index.d.ts +6 -6
- package/dist/flows/Termination/index.js +1 -1
- package/dist/flows/Termination/json-schemas/jsonSchema.d.ts +10 -0
- package/dist/flows/Termination/json-schemas/jsonSchema.js +1 -1
- package/dist/flows/Termination/json-schemas/paidTimeOff.d.ts +10 -0
- package/dist/flows/Termination/json-schemas/paidTimeOff.js +1 -1
- package/dist/flows/Termination/json-schemas/schema.js +1 -1
- package/dist/flows/Termination/types.d.ts +4 -4
- package/dist/flows/api.d.ts +4 -4
- package/dist/flows/api.js +1 -1
- package/dist/flows/types.d.ts +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +53 -14
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +45 -53
- package/dist/internals.js +1 -1
- package/dist/{mutations-BxS-iGnr.d.ts → mutations-juOpbR-A.d.ts} +1 -1
- package/dist/{remoteFlows-DnbCoINb.d.ts → remoteFlows-D1VLPcdi.d.ts} +1 -1
- package/dist/{types-pEe84X2Z.d.ts → types-CBySMyLF.d.ts} +4 -4
- package/dist/{types-BnLDzD9Z.d.ts → types-CCzA9vuJ.d.ts} +3 -3
- package/dist/{types-D31aAyFm.d.ts → types-Cl_jsVYv.d.ts} +2 -2
- package/dist/{types.gen-DOXoUj5J.d.ts → types.gen-CxiSXabT.d.ts} +94 -1
- package/package.json +1 -1
- package/dist/chunk-DKA2EUPQ.js +0 -2
- package/dist/chunk-E773NPNL.js +0 -2
- package/dist/chunk-E773NPNL.js.map +0 -1
- package/dist/chunk-GOB6DUFS.js.map +0 -1
- package/dist/chunk-HTCONTKZ.js +0 -2
- package/dist/chunk-HTCONTKZ.js.map +0 -1
- package/dist/chunk-MFKGLMRJ.js.map +0 -1
- package/dist/chunk-PSEOAELN.js +0 -2
- package/dist/chunk-PSEOAELN.js.map +0 -1
- package/dist/chunk-VXPJXQP3.js +0 -2
- package/dist/chunk-Z442TFR6.js +0 -2
- package/dist/flows/Termination/TerminationDialogInfoContent/TerminationDialogInfoContent.js +0 -2
- package/dist/flows/Termination/TerminationReasonsDetailContent/TerminationReasonsDetailContent.js +0 -2
- /package/dist/{chunk-X5DMQNEM.js.map → chunk-2DSNHYHZ.js.map} +0 -0
- /package/dist/{chunk-5QP2BAUT.js.map → chunk-2T2N5226.js.map} +0 -0
- /package/dist/{chunk-Z442TFR6.js.map → chunk-2UAG6WDW.js.map} +0 -0
- /package/dist/{chunk-WEYUB6DC.js.map → chunk-3W7RKLJX.js.map} +0 -0
- /package/dist/{chunk-KJSZIASL.js.map → chunk-3XDJ2LRT.js.map} +0 -0
- /package/dist/{chunk-K4NAASBM.js.map → chunk-4HT7RNFP.js.map} +0 -0
- /package/dist/{chunk-2WDEVWIE.js.map → chunk-4NAVUB7D.js.map} +0 -0
- /package/dist/{chunk-QU3NSFU5.js.map → chunk-4SIGN3ZP.js.map} +0 -0
- /package/dist/{chunk-QP36XXCQ.js.map → chunk-5A54AHAT.js.map} +0 -0
- /package/dist/{chunk-22JS3T6G.js.map → chunk-5H5INKOY.js.map} +0 -0
- /package/dist/{chunk-C4AVUIG2.js.map → chunk-5ZR7EFPY.js.map} +0 -0
- /package/dist/{chunk-JG7FV7OZ.js.map → chunk-64NSBY5G.js.map} +0 -0
- /package/dist/{chunk-5N4L2G7Q.js.map → chunk-6VRUYYUV.js.map} +0 -0
- /package/dist/{chunk-3I6ONATN.js.map → chunk-7IZGKQII.js.map} +0 -0
- /package/dist/{chunk-EIVHHLR5.js.map → chunk-A7T27JCJ.js.map} +0 -0
- /package/dist/{chunk-CELNQ7KS.js.map → chunk-AHBACWMD.js.map} +0 -0
- /package/dist/{chunk-C4SMHWP4.js.map → chunk-ANGJCT4I.js.map} +0 -0
- /package/dist/{chunk-XICA45G2.js.map → chunk-B7I7YVNK.js.map} +0 -0
- /package/dist/{chunk-DHJZVBVD.js.map → chunk-BNHN4CEM.js.map} +0 -0
- /package/dist/{chunk-5SKMAYLG.js.map → chunk-CRHH6IPF.js.map} +0 -0
- /package/dist/{chunk-QIAZQLSG.js.map → chunk-DPY77ASH.js.map} +0 -0
- /package/dist/{chunk-J26AI33Z.js.map → chunk-DUD7B2IY.js.map} +0 -0
- /package/dist/{chunk-BPJHPGTL.js.map → chunk-EKKRQI6B.js.map} +0 -0
- /package/dist/{chunk-A6X6N2G7.js.map → chunk-FMBYJANY.js.map} +0 -0
- /package/dist/{chunk-6L7JELHX.js.map → chunk-G4QOEPDP.js.map} +0 -0
- /package/dist/{chunk-2U4VW5TT.js.map → chunk-GKS3W6KT.js.map} +0 -0
- /package/dist/{chunk-2VWU5VNU.js.map → chunk-HEQLPSHZ.js.map} +0 -0
- /package/dist/{chunk-TWD2IDAS.js.map → chunk-HPBT677J.js.map} +0 -0
- /package/dist/{chunk-MRVBOQLW.js.map → chunk-ILPYR7RQ.js.map} +0 -0
- /package/dist/{chunk-VE36I6G6.js.map → chunk-IYGJ5QJB.js.map} +0 -0
- /package/dist/{chunk-PJUC5WAJ.js.map → chunk-JF3KJ6PA.js.map} +0 -0
- /package/dist/{chunk-5EP45OQV.js.map → chunk-JVSD4JOU.js.map} +0 -0
- /package/dist/{chunk-ULHGAKFT.js.map → chunk-L2IKFFQX.js.map} +0 -0
- /package/dist/{chunk-XHOQSIXZ.js.map → chunk-LEXD5FVL.js.map} +0 -0
- /package/dist/{chunk-NHYBFEXA.js.map → chunk-N6KOPITR.js.map} +0 -0
- /package/dist/{chunk-OOUYQLIE.js.map → chunk-NGTESOKF.js.map} +0 -0
- /package/dist/{chunk-GLUERRJ2.js.map → chunk-NIH7XLAK.js.map} +0 -0
- /package/dist/{chunk-XTLLWD7O.js.map → chunk-O4DIUKVP.js.map} +0 -0
- /package/dist/{chunk-IUU4MOLL.js.map → chunk-OIN3HGOQ.js.map} +0 -0
- /package/dist/{chunk-D52VU4UO.js.map → chunk-OW5QGJD4.js.map} +0 -0
- /package/dist/{chunk-BVCBX72U.js.map → chunk-P5WUODPR.js.map} +0 -0
- /package/dist/{chunk-2GCMLKO2.js.map → chunk-PAT3EA43.js.map} +0 -0
- /package/dist/{chunk-GECFDGI7.js.map → chunk-PKRI35YC.js.map} +0 -0
- /package/dist/{chunk-GUHBW4V3.js.map → chunk-PWPFCC6I.js.map} +0 -0
- /package/dist/{chunk-XKSAKI3P.js.map → chunk-Q4BKFSTW.js.map} +0 -0
- /package/dist/{chunk-2NGJN5IE.js.map → chunk-Q5ZRKZMK.js.map} +0 -0
- /package/dist/{chunk-TGUF5Q7J.js.map → chunk-RDCWARSM.js.map} +0 -0
- /package/dist/{chunk-T6BYBXQA.js.map → chunk-RF5SLMJF.js.map} +0 -0
- /package/dist/{chunk-D5KITGC6.js.map → chunk-S2XKE7EA.js.map} +0 -0
- /package/dist/{chunk-V6I3EMYX.js.map → chunk-SA3D5OH4.js.map} +0 -0
- /package/dist/{chunk-B25LAMRX.js.map → chunk-SGJSMTYG.js.map} +0 -0
- /package/dist/{chunk-FVFXPT3Y.js.map → chunk-TB75BHYW.js.map} +0 -0
- /package/dist/{chunk-JX3OQNNM.js.map → chunk-U2LOBJFU.js.map} +0 -0
- /package/dist/{chunk-RJGWAZBE.js.map → chunk-UPXJJBXZ.js.map} +0 -0
- /package/dist/{chunk-IK6IRESD.js.map → chunk-VT4GSXMI.js.map} +0 -0
- /package/dist/{chunk-V2PJW577.js.map → chunk-XMAQ4NRR.js.map} +0 -0
- /package/dist/{chunk-7EDGHYMX.js.map → chunk-ZQ6MG635.js.map} +0 -0
- /package/dist/flows/Termination/{TerminationDialogInfoContent/TerminationDialogInfoContent.js.map → components/PaidTimeOff/PaidTimeOff.js.map} +0 -0
- /package/dist/flows/Termination/{TerminationDialogInfoContent → components/TerminationDialogInfoContent}/TerminationDialogInfoContent.d.ts +0 -0
- /package/dist/flows/Termination/{TerminationReasonsDetailContent/TerminationReasonsDetailContent.js.map → components/TerminationDialogInfoContent/TerminationDialogInfoContent.js.map} +0 -0
- /package/dist/flows/Termination/{TerminationReasonsDetailContent → components/TerminationReasonsDetailContent}/TerminationReasonsDetailContent.d.ts +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as i}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{b as i}from"./chunk-WVDTHFGS.js";import{b as u}from"./chunk-3ZWDIEEM.js";import{b as c}from"./chunk-TVZAFTPT.js";import{a as m}from"./chunk-P37U34EQ.js";import{jsx as C}from"react/jsx-runtime";function d({children:o,...t}){let{contractAmendment:{back:r}}=c(),{components:s}=u(),e=s?.button;return e?C(e,{...t,onClick:n=>{r(),t.onClick?.(n)},children:o}):C(i,{...t,onClick:n=>{r(),t.onClick?.(n)},children:o})}m(d,"ContractAmendmentBack");export{d as a};
|
|
2
|
+
//# sourceMappingURL=chunk-EKKRQI6B.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as R}from"./chunk-WVJDCDGZ.js";import{B as M,E as k,d as F,f as C,i as g,j as S,l as j,n as w,o as v,q as E,t as O,u as q,v as P,x,y as V}from"./chunk-IXAWEBRI.js";import{b as U}from"./chunk-Z5WMKCRJ.js";import{d as a}from"./chunk-3ZWDIEEM.js";import{a as b}from"./chunk-PAQW5BFW.js";import{a as n}from"./chunk-P37U34EQ.js";import{createHeadlessForm as p,modify as d}from"@remoteoss/json-schema-form";import{useMutation as c,useQuery as f}from"@tanstack/react-query";var $=n(t=>{let{client:r}=a();return f({queryKey:["employment",t],retry:!1,enabled:!!t,select:n(({data:e})=>e?.data.employment,"select"),queryFn:n(async()=>{let e=await q({client:r,headers:{Authorization:""},path:{employment_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch employment data");return e},"queryFn")})},"useEmployment"),ee=n(t=>{let{client:r}=a();return f({queryKey:["company",t],retry:!1,enabled:!!t,queryFn:n(async()=>{let e=await v({client:r,headers:{Authorization:""},path:{company_id:t}});if(e.error||!e.data)throw new Error("Failed to fetch employment data");return e},"queryFn"),select:n(({data:e})=>e.data.company,"select")})},"useCompany"),te=n(t=>{let{client:r}=a();return f({queryKey:["benefit-offers",t],retry:!1,enabled:!!t,queryFn:n(async()=>g({client:r,path:{employment_id:t}}).then(e=>{if(e.error||!e.data)throw new Error("Failed to fetch benefit offers data");return e}),"queryFn"),select:n(({data:e})=>e?.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"),ne=n(()=>{let{client:t}=a();return c({mutationFn:n(r=>k({client:t,headers:{Authorization:""},path:r}),"mutationFn")})},"useEmploymentInvite"),re=n(()=>{let{client:t}=a();return c({mutationFn:n(r=>w({client:t,body:r}),"mutationFn")})},"useCreateReserveInvoice"),oe=n(({countryCode:t,form:r,fieldValues:e,options:o,query:s={}})=>{let{client:i}=a(),m=o?.jsonSchemaVersion?.form_schema?.[r]?{json_schema_version:o.jsonSchemaVersion.form_schema[r]}:{};return f({queryKey:["onboarding-json-schema-form",t,r],retry:!1,queryFn:n(async()=>{let l=await E({client:i,headers:{Authorization:""},path:{country_code:t,form:r},query:{skip_benefits:!0,...s,...m}});if(l.error||!l.data)throw new Error("Failed to fetch onboarding schema");return l},"queryFn"),enabled:o?.queryOptions?.enabled,select:n(({data:l})=>{let u=l?.data||{};if(o&&o.jsfModify){let{schema:y}=d(u,o.jsfModify);u=y}let z=U(u.properties||{},"money").reduce((y,_)=>(y[_]=b(e[_]),y),{}),A={...e,...z};return{meta:{"x-jsf-fieldsets":u["x-jsf-fieldsets"]},...p(u,{initialValues:A})}},"select")})},"useJSONSchemaForm"),se=n((t,r,e)=>{let o=e?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:e.jsonSchemaVersion.benefit_offers_form_schema}:{},{client:s}=a();return f({queryKey:["benefit-offers-schema",t],retry:!1,enabled:!!t,queryFn:n(async()=>{let i=await O({client:s,path:{employment_id:t},query:o});if(i.error||!i.data)throw new Error("Failed to fetch benefit offers schema");return i},"queryFn"),select:n(({data:i})=>{let m=i?.data?.schema||{};if(e&&e.jsfModify?.benefits){let{schema:h}=d(m,e.jsfModify.benefits);m=h}let l=Object.keys(r).length>0;return p(m,{initialValues:l?{...r}:{}})},"select")})},"useBenefitOffersSchema"),ae=n(t=>{let{client:r}=a(),e=t?.jsonSchemaVersion?.form_schema?.employment_basic_information?{json_schema_version:t.jsonSchemaVersion.form_schema.employment_basic_information}:{};return c({mutationFn:n(o=>C({client:r,headers:{Authorization:""},body:o,query:{...e}}),"mutationFn")})},"useCreateEmployment"),ie=n(t=>{let{client:r}=a(),e={employment_basic_information_json_schema_version:t?.jsonSchemaVersion?.form_schema?.employment_basic_information,employment_contract_details_json_schema_version:t?.jsonSchemaVersion?.form_schema?.contract_details},o=Object.fromEntries(Object.entries(e).filter(([,s])=>s!==void 0));return c({mutationFn:n(({employmentId:s,...i})=>P({client:r,headers:{Authorization:""},body:i,path:{employment_id:s},query:{skip_benefits:!0,...o}}),"mutationFn")})},"useUpdateEmployment"),ce=n(t=>{let{client:r}=a();return c({mutationFn:n(({employmentId:e,...o})=>{let s=t?.jsonSchemaVersion?.benefit_offers_form_schema?{json_schema_version:t.jsonSchemaVersion.benefit_offers_form_schema}:{};return S({client:r,body:o,path:{employment_id:e},query:{...s}})},"mutationFn")})},"useUpdateBenefitsOffers"),me=n(()=>{let{client:t}=a();return c({mutationFn:n(r=>j({client:t,headers:{Authorization:""},body:r}),"mutationFn")})},"useMagicLink"),B=n(t=>{let{client:r}=a();return f({...t,queryKey:["countries"],retry:!1,queryFn:n(async()=>{let e=await V({client:r,headers:{Authorization:""}});if(e.error||!e.data)throw new Error("Failed to fetch supported countries");return e},"queryFn"),select:n(({data:e})=>e?.data?.filter(o=>o.eor_onboarding).map(o=>({label:o.name,value:o.code}))||[],"select")})},"useCountries"),le=n(t=>{let{data:r,isLoading:e}=B(t?.queryOptions),{schema:o}=d(R.data.schema,t?.jsfModify||{}),s=p(o);if(r){let i=s.fields.find(m=>m.name==="country");i&&(i.options=r)}return{isLoading:e,selectCountryForm:s}},"useCountriesSchemaField"),ue=n(({type:t="spread"})=>{let{client:r}=a();return c({mutationFn:n(e=>(t==="no_spread"?F:M)({client:r,body:e}),"mutationFn")})},"useConvertCurrency"),fe=n(()=>{let{client:t}=a();return c({mutationFn:n(({employmentId:r,...e})=>x({client:t,path:{employment_id:r},body:e}),"mutationFn")})},"useUpsertContractEligibility");export{$ as a,ee as b,te as c,ne as d,re as e,oe as f,se as g,ae as h,ie as i,ce as j,me as k,le as l,ue as m,fe as n};
|
|
2
|
+
//# sourceMappingURL=chunk-FBJCDOO7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/Onboarding/api.ts"],"sourcesContent":["import {\n ConvertCurrencyParams,\n CreateContractEligibilityParams,\n EmploymentCreateParams,\n EmploymentFullParams,\n getIndexBenefitOffer,\n getShowCompany,\n getShowEmployment,\n getShowFormCountry,\n getShowSchema,\n getSupportedCountry,\n MagicLinkParams,\n patchUpdateEmployment2,\n postConvertRawCurrencyConverter,\n postConvertWithSpreadCurrencyConverter,\n postCreateContractEligibility,\n postCreateEmployment2,\n postCreateRiskReserve,\n postGenerateMagicLink,\n postInviteEmploymentInvitation,\n PostInviteEmploymentInvitationData,\n putUpdateBenefitOffer,\n UnifiedEmploymentUpsertBenefitOffersRequest,\n} from '@/src/client';\nimport { convertToCents } from '@/src/components/form/utils';\nimport { useClient } from '@/src/context';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport { OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport { FlowOptions, JSONSchemaFormType } from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\n\nexport const useEmployment = (employmentId: string | undefined) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['employment', employmentId],\n retry: false,\n enabled: !!employmentId,\n select: ({ data }) => {\n return data?.data.employment;\n },\n queryFn: async () => {\n const response = await getShowEmployment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId as string,\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 employment data');\n }\n\n return response;\n },\n });\n};\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 getShowCompany({\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 getIndexBenefitOffer({\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/**\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: PostInviteEmploymentInvitationData['path']) => {\n return postInviteEmploymentInvitation({\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 postCreateRiskReserve({\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}: {\n countryCode: string;\n form: JSONSchemaFormType;\n fieldValues: FieldValues;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n query?: Record<string, unknown>;\n}) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.form_schema?.[form]\n ? {\n json_schema_version: options.jsonSchemaVersion.form_schema[form],\n }\n : {};\n return useQuery({\n queryKey: ['onboarding-json-schema-form', countryCode, form],\n retry: false,\n queryFn: async () => {\n const response = await getShowFormCountry({\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 let jsfSchema = data?.data || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n // Contract details contains x-jsf-logic that need to be calculated every time a form value changes\n // In particular there are calculations involving the annual_gross_salary field. However this field value doesn't get\n // here in cents. So we need to convert the money fields to cents, so that the calculations are correct.\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n const moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n\n const initialValues = {\n ...fieldValues,\n ...moneyFieldsData,\n };\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n },\n ...createHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n },\n });\n};\n\nexport const useBenefitOffersSchema = (\n employmentId: string,\n fieldValues: FieldValues,\n options: OnboardingFlowProps['options'],\n) => {\n const jsonSchemaQueryParam = options?.jsonSchemaVersion\n ?.benefit_offers_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.benefit_offers_form_schema,\n }\n : {};\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers-schema', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n const response = await getShowSchema({\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 let jsfSchema = data?.data?.schema || {};\n\n if (options && options.jsfModify?.benefits) {\n const { schema } = modify(jsfSchema, options.jsfModify.benefits);\n jsfSchema = schema;\n }\n const hasFieldValues = Object.keys(fieldValues).length > 0;\n const result = createHeadlessForm(jsfSchema, {\n // we need to clone the fieldValues to prevent side effects\n // if we don't do this, the benefits get included in the other steps\n initialValues: hasFieldValues ? { ...fieldValues } : {},\n });\n return result;\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 = options?.jsonSchemaVersion?.form_schema\n ?.employment_basic_information\n ? {\n json_schema_version:\n options.jsonSchemaVersion.form_schema.employment_basic_information,\n }\n : {};\n return useMutation({\n mutationFn: (payload: EmploymentCreateParams) => {\n return postCreateEmployment2({\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 options?: OnboardingFlowProps['options'],\n) => {\n const { client } = useClient();\n const jsonSchemaQueryParams = {\n employment_basic_information_json_schema_version:\n options?.jsonSchemaVersion?.form_schema?.employment_basic_information,\n employment_contract_details_json_schema_version:\n options?.jsonSchemaVersion?.form_schema?.contract_details,\n };\n\n const filteredQueryParams = Object.fromEntries(\n Object.entries(jsonSchemaQueryParams).filter(\n ([, value]) => value !== undefined,\n ),\n );\n\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: EmploymentFullParams & { employmentId: string }) => {\n return patchUpdateEmployment2({\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 ...filteredQueryParams,\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 = options?.jsonSchemaVersion\n ?.benefit_offers_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.benefit_offers_form_schema,\n }\n : {};\n return putUpdateBenefitOffer({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useMagicLink = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (params: MagicLinkParams) => {\n return postGenerateMagicLink({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: params,\n });\n },\n });\n};\n\nconst useCountries = (queryOptions?: { enabled?: boolean }) => {\n const { client } = useClient();\n return useQuery({\n ...queryOptions,\n queryKey: ['countries'],\n retry: false,\n queryFn: async () => {\n const response = await getSupportedCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\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 supported countries');\n }\n\n return response;\n },\n select: ({ data }) => {\n return (\n 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 });\n};\n\nexport const useCountriesSchemaField = (\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } },\n) => {\n const { data: countries, isLoading } = useCountries(options?.queryOptions);\n\n const { schema: selectCountrySchema } = modify(\n selectCountryStepSchema.data.schema,\n options?.jsfModify || {},\n );\n\n const selectCountryForm = createHeadlessForm(selectCountrySchema);\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 ? postConvertRawCurrencyConverter\n : postConvertWithSpreadCurrencyConverter;\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 postCreateContractEligibility({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n body: payload,\n });\n },\n });\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","useEmployment","__name","employmentId","client","useClient","useQuery","data","response","getShowEmployment","useCompany","companyId","getShowCompany","useBenefitOffers","getIndexBenefitOffer","acc","item","useEmploymentInvite","useMutation","payload","postInviteEmploymentInvitation","useCreateReserveInvoice","postCreateRiskReserve","useJSONSchemaForm","countryCode","form","fieldValues","options","query","jsonSchemaQueryParam","getShowFormCountry","jsfSchema","schema","modify","moneyFieldsData","findFieldsByType","field","convertToCents","initialValues","createHeadlessForm","useBenefitOffersSchema","getShowSchema","hasFieldValues","useCreateEmployment","postCreateEmployment2","useUpdateEmployment","jsonSchemaQueryParams","filteredQueryParams","value","patchUpdateEmployment2","useUpdateBenefitsOffers","putUpdateBenefitOffer","useMagicLink","params","postGenerateMagicLink","useCountries","queryOptions","getSupportedCountry","country","useCountriesSchemaField","countries","isLoading","selectCountrySchema","selectCountryStepSchema","selectCountryForm","countryField","useConvertCurrency","type","postConvertRawCurrencyConverter","postConvertWithSpreadCurrencyConverter","useUpsertContractEligibility","postCreateContractEligibility"]}
|
|
1
|
+
{"version":3,"sources":["../src/flows/Onboarding/api.ts"],"sourcesContent":["import {\n ConvertCurrencyParams,\n CreateContractEligibilityParams,\n EmploymentCreateParams,\n EmploymentFullParams,\n getIndexBenefitOffer,\n getShowCompany,\n getShowEmployment,\n getShowFormCountry,\n getShowSchema,\n getSupportedCountry,\n MagicLinkParams,\n patchUpdateEmployment2,\n postConvertRawCurrencyConverter,\n postConvertWithSpreadCurrencyConverter,\n postCreateContractEligibility,\n postCreateEmployment2,\n postCreateRiskReserve,\n postGenerateMagicLink,\n postInviteEmploymentInvitation,\n PostInviteEmploymentInvitationData,\n putUpdateBenefitOffer,\n UnifiedEmploymentUpsertBenefitOffersRequest,\n} from '@/src/client';\nimport { convertToCents } from '@/src/components/form/utils';\nimport { useClient } from '@/src/context';\nimport { selectCountryStepSchema } from '@/src/flows/Onboarding/json-schemas/selectCountryStep';\nimport { OnboardingFlowProps } from '@/src/flows/Onboarding/types';\nimport { FlowOptions, JSONSchemaFormType } from '@/src/flows/types';\nimport { findFieldsByType } from '@/src/flows/utils';\nimport { JSFFieldset } from '@/src/types/remoteFlows';\nimport { Client } from '@hey-api/client-fetch';\nimport { createHeadlessForm, modify } from '@remoteoss/json-schema-form';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { FieldValues } from 'react-hook-form';\n\nexport const useEmployment = (employmentId: string | undefined) => {\n const { client } = useClient();\n\n return useQuery({\n queryKey: ['employment', employmentId],\n retry: false,\n enabled: !!employmentId,\n select: ({ data }) => {\n return data?.data.employment;\n },\n queryFn: async () => {\n const response = await getShowEmployment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: {\n employment_id: employmentId as string,\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 employment data');\n }\n\n return response;\n },\n });\n};\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 getShowCompany({\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 getIndexBenefitOffer({\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/**\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: PostInviteEmploymentInvitationData['path']) => {\n return postInviteEmploymentInvitation({\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 postCreateRiskReserve({\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}: {\n countryCode: string;\n form: JSONSchemaFormType;\n fieldValues: FieldValues;\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } };\n query?: Record<string, unknown>;\n}) => {\n const { client } = useClient();\n const jsonSchemaQueryParam = options?.jsonSchemaVersion?.form_schema?.[form]\n ? {\n json_schema_version: options.jsonSchemaVersion.form_schema[form],\n }\n : {};\n return useQuery({\n queryKey: ['onboarding-json-schema-form', countryCode, form],\n retry: false,\n queryFn: async () => {\n const response = await getShowFormCountry({\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 let jsfSchema = data?.data || {};\n if (options && options.jsfModify) {\n const { schema } = modify(jsfSchema, options.jsfModify);\n jsfSchema = schema;\n }\n\n // Contract details contains x-jsf-logic that need to be calculated every time a form value changes\n // In particular there are calculations involving the annual_gross_salary field. However this field value doesn't get\n // here in cents. So we need to convert the money fields to cents, so that the calculations are correct.\n const moneyFields = findFieldsByType(jsfSchema.properties || {}, 'money');\n const moneyFieldsData = moneyFields.reduce<Record<string, number | null>>(\n (acc, field) => {\n acc[field] = convertToCents(fieldValues[field]);\n return acc;\n },\n {},\n );\n\n const initialValues = {\n ...fieldValues,\n ...moneyFieldsData,\n };\n\n return {\n meta: {\n 'x-jsf-fieldsets': jsfSchema['x-jsf-fieldsets'] as JSFFieldset,\n },\n ...createHeadlessForm(jsfSchema, {\n initialValues,\n }),\n };\n },\n });\n};\n\nexport const useBenefitOffersSchema = (\n employmentId: string,\n fieldValues: FieldValues,\n options: OnboardingFlowProps['options'],\n) => {\n const jsonSchemaQueryParam = options?.jsonSchemaVersion\n ?.benefit_offers_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.benefit_offers_form_schema,\n }\n : {};\n const { client } = useClient();\n return useQuery({\n queryKey: ['benefit-offers-schema', employmentId],\n retry: false,\n enabled: !!employmentId,\n queryFn: async () => {\n const response = await getShowSchema({\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 let jsfSchema = data?.data?.schema || {};\n\n if (options && options.jsfModify?.benefits) {\n const { schema } = modify(jsfSchema, options.jsfModify.benefits);\n jsfSchema = schema;\n }\n const hasFieldValues = Object.keys(fieldValues).length > 0;\n const result = createHeadlessForm(jsfSchema, {\n // we need to clone the fieldValues to prevent side effects\n // if we don't do this, the benefits get included in the other steps\n initialValues: hasFieldValues ? { ...fieldValues } : {},\n });\n return result;\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 = options?.jsonSchemaVersion?.form_schema\n ?.employment_basic_information\n ? {\n json_schema_version:\n options.jsonSchemaVersion.form_schema.employment_basic_information,\n }\n : {};\n return useMutation({\n mutationFn: (payload: EmploymentCreateParams) => {\n return postCreateEmployment2({\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 options?: OnboardingFlowProps['options'],\n) => {\n const { client } = useClient();\n const jsonSchemaQueryParams = {\n employment_basic_information_json_schema_version:\n options?.jsonSchemaVersion?.form_schema?.employment_basic_information,\n employment_contract_details_json_schema_version:\n options?.jsonSchemaVersion?.form_schema?.contract_details,\n };\n\n const filteredQueryParams = Object.fromEntries(\n Object.entries(jsonSchemaQueryParams).filter(\n ([, value]) => value !== undefined,\n ),\n );\n\n return useMutation({\n mutationFn: ({\n employmentId,\n ...payload\n }: EmploymentFullParams & { employmentId: string }) => {\n return patchUpdateEmployment2({\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 ...filteredQueryParams,\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 = options?.jsonSchemaVersion\n ?.benefit_offers_form_schema\n ? {\n json_schema_version:\n options.jsonSchemaVersion.benefit_offers_form_schema,\n }\n : {};\n return putUpdateBenefitOffer({\n client: client as Client,\n body: payload,\n path: {\n employment_id: employmentId,\n },\n query: {\n ...jsonSchemaQueryParam,\n },\n });\n },\n });\n};\n\nexport const useMagicLink = () => {\n const { client } = useClient();\n return useMutation({\n mutationFn: (params: MagicLinkParams) => {\n return postGenerateMagicLink({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n body: params,\n });\n },\n });\n};\n\nconst useCountries = (queryOptions?: { enabled?: boolean }) => {\n const { client } = useClient();\n return useQuery({\n ...queryOptions,\n queryKey: ['countries'],\n retry: false,\n queryFn: async () => {\n const response = await getSupportedCountry({\n client: client as Client,\n headers: {\n Authorization: ``,\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 supported countries');\n }\n\n return response;\n },\n select: ({ data }) => {\n return (\n 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 });\n};\n\nexport const useCountriesSchemaField = (\n options?: FlowOptions & { queryOptions?: { enabled?: boolean } },\n) => {\n const { data: countries, isLoading } = useCountries(options?.queryOptions);\n\n const { schema: selectCountrySchema } = modify(\n selectCountryStepSchema.data.schema,\n options?.jsfModify || {},\n );\n\n const selectCountryForm = createHeadlessForm(selectCountrySchema);\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 ? postConvertRawCurrencyConverter\n : postConvertWithSpreadCurrencyConverter;\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 postCreateContractEligibility({\n client: client as Client,\n path: {\n employment_id: employmentId,\n },\n body: payload,\n });\n },\n });\n};\n"],"mappings":"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","names":["createHeadlessForm","modify","useMutation","useQuery","useEmployment","__name","employmentId","client","useClient","useQuery","data","response","getShowEmployment","useCompany","companyId","getShowCompany","useBenefitOffers","getIndexBenefitOffer","acc","item","useEmploymentInvite","useMutation","payload","postInviteEmploymentInvitation","useCreateReserveInvoice","postCreateRiskReserve","useJSONSchemaForm","countryCode","form","fieldValues","options","query","jsonSchemaQueryParam","getShowFormCountry","jsfSchema","schema","modify","moneyFieldsData","findFieldsByType","field","convertToCents","initialValues","createHeadlessForm","useBenefitOffersSchema","getShowSchema","hasFieldValues","useCreateEmployment","postCreateEmployment2","useUpdateEmployment","jsonSchemaQueryParams","filteredQueryParams","value","patchUpdateEmployment2","useUpdateBenefitsOffers","putUpdateBenefitOffer","useMagicLink","params","postGenerateMagicLink","useCountries","queryOptions","getSupportedCountry","country","useCountriesSchemaField","countries","isLoading","selectCountrySchema","selectCountryStepSchema","selectCountryForm","countryField","useConvertCurrency","type","postConvertRawCurrencyConverter","postConvertWithSpreadCurrencyConverter","useUpsertContractEligibility","postCreateContractEligibility"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as c}from"./chunk-Z7WBY27D.js";import{a as S}from"./chunk-5KHLOGTR.js";import{a as f}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as c}from"./chunk-Z7WBY27D.js";import{a as S}from"./chunk-5KHLOGTR.js";import{a as f}from"./chunk-5H5INKOY.js";import{a as n}from"./chunk-RF5SLMJF.js";import{a as p}from"./chunk-3W7RKLJX.js";import{a as s}from"./chunk-RDCWARSM.js";import{a as m}from"./chunk-ZQ6MG635.js";import{a}from"./chunk-4NAVUB7D.js";import{a as i}from"./chunk-OIN3HGOQ.js";import{a as e}from"./chunk-2T2N5226.js";import{a as r}from"./chunk-PGWKJ6FK.js";import{a as t}from"./chunk-P37U34EQ.js";import{useId as D,useState as P}from"react";import{jsx as R}from"react/jsx-runtime";var L=t(({employmentId:d,companyId:u,countryCode:b,type:l="employee",externalId:v,skipSteps:g,initialValues:B,render:I,options:O})=>{let w=D(),o=e({companyId:u,countryCode:b,employmentId:d,type:l,options:O,skipSteps:g,externalId:v,initialValues:B}),[C,h]=P({showReserveInvoice:!1,showInviteSuccessful:!1});return R(r.Provider,{value:{formId:w,onboardingBag:o,creditScore:C,setCreditScore:h},children:I({onboardingBag:o,components:{BasicInformationStep:n,ContractDetailsStep:s,BenefitsStep:p,SubmitButton:i,SaveDraftButton:S,BackButton:m,OnboardingInvite:a,SelectCountryStep:f,ReviewStep:c}})})},"OnboardingFlow");export{L as a};
|
|
2
|
+
//# sourceMappingURL=chunk-FMBYJANY.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b as M}from"./chunk-MRYRNB7Y.js";import{c as v,d as L}from"./chunk-HYIC33YR.js";import{a as D,b as H,d as x,e as h,f as g}from"./chunk-TWIUL2P3.js";import{b as S}from"./chunk-WVDTHFGS.js";import{a as l}from"./chunk-43WMZDDH.js";import{a as T}from"./chunk-P37U34EQ.js";import*as n from"react";import{jsx as m}from"react/jsx-runtime";var w=n.forwardRef(({className:a,...o},t)=>m("div",{className:"relative w-full overflow-auto",children:m("table",{ref:t,className:l("w-full caption-bottom text-sm",a),...o})}));w.displayName="Table";var R=n.forwardRef(({className:a,...o},t)=>m("thead",{ref:t,className:l("[&_tr]:border-b",a),...o}));R.displayName="TableHeader";var N=n.forwardRef(({className:a,...o},t)=>m("tbody",{ref:t,className:l("[&_tr:last-child]:border-0",a),...o}));N.displayName="TableBody";var C=n.forwardRef(({className:a,...o},t)=>m("tfoot",{ref:t,className:l("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...o}));C.displayName="TableFooter";var u=n.forwardRef(({className:a,...o},t)=>m("tr",{ref:t,className:l("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",a),...o}));u.displayName="TableRow";var f=n.forwardRef(({className:a,...o},t)=>m("th",{ref:t,className:l("h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...o}));f.displayName="TableHead";var p=n.forwardRef(({className:a,...o},t)=>m("td",{ref:t,className:l("p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",a),...o}));p.displayName="TableCell";var k=n.forwardRef(({className:a,...o},t)=>m("caption",{ref:t,className:l("mt-4 text-sm text-muted-foreground",a),...o}));k.displayName="TableCaption";import{useState as B}from"react";import{jsx as e,jsxs as r}from"react/jsx-runtime";var d=T(a=>`${a} ${a===1?"day":"days"}`,"pluralizeDays"),A="RemoteFlows__SummaryRow flex justify-between items-center py-2 text-xs",_="RemoteFlows__SummaryRowBorder border-b border-b-1 border-b-[#E4E4E7]",b=T(({children:a,withBorder:o=!1,className:t=""})=>e("div",{className:l(A,o&&_,t),children:a}),"SummaryRow"),F=T(({entitledDays:a,takenDays:o,bookedDays:t,approvedDaysBeforeTermination:s,approvedDaysAfterTermination:c,remainingDays:i,proposedTerminationDate:E})=>{let y=new Date(E).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"});return r("div",{children:[r(b,{withBorder:!0,children:[e("label",{children:"Number of days entitled to per year"}),e("p",{className:"font-bold",children:d(a)})]}),r(b,{children:[e("label",{children:"Total days booked"}),e("p",{className:"font-bold",children:d(t)})]}),r(b,{children:[e("label",{children:"Number of days already used"}),e("p",{className:"font-bold",children:d(o)})]}),r(b,{children:[r("label",{children:["Approved for use before ",y]}),e("p",{className:"font-bold",children:d(s)})]}),r(b,{withBorder:!0,children:[r("label",{children:["Approved for use after ",y]}),e("p",{className:"font-bold",children:d(c)})]}),r(b,{children:[e("label",{children:"Total days remaining unused"}),e("p",{className:"font-bold",children:d(i)})]}),e(b,{className:"mb-2 py-0",children:r("p",{className:"text-xs text-[#222E39]",children:["Expiration date of unused days: ",y]})})]})},"SummaryTimeOff"),O=T(({employeeName:a,employmentId:o})=>{let[t,s]=B(!1),{data:c}=v({employmentId:o,options:{enabled:t}});return r(D,{direction:"right",open:t,onOpenChange:s,children:[e(H,{asChild:!0,children:e(S,{onClick:()=>{s(!0)},variant:"link",className:"text-xs text-[#3B82F6] font-bold p-0",children:"See detailed time off breakdown \u2197"})}),e(x,{className:"h-full w-[540px] mt-0 ml-auto px-4 RemoteFlows_DrawerTimeOff",children:r("div",{className:"h-full flex flex-col",children:[e(h,{children:r(g,{children:[a," paid time off breakdown"]})}),e("div",{className:"mb-2",children:r(w,{children:[e(R,{children:r(u,{children:[e(f,{className:"w-[250px]",children:"Dates"}),e(f,{children:"Duration"}),e(f,{children:"Status"})]})}),e(N,{children:c?.timeoffs.map(i=>r(u,{children:[e(p,{className:"font-medium w-[250px]",children:i.formattedDate}),e(p,{children:d(i.duration)}),e(p,{children:i.status})]},`${i.startDate}-${i.endDate}`))})]})}),r("p",{className:"text-xs",children:["Total of ",d(c?.bookedDays||0)," booked"]})]})})]})},"DrawerTimeOff"),K=T(({employeeName:a,proposedTerminationDate:o})=>{let{terminationBag:t}=M(),{data:s}=L({employmentId:t.employmentId}),c=new Date(o).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"});return r("div",{className:"py-3",children:[e("h3",{className:"RemoteFlows__PaidTimeOffTitle mb-2",children:"Paid time off"}),r("p",{className:"RemoteFlows__PaidTimeOffDescription text-sm mb-2",children:["The proposed termination date for ",a," is"," ",c,". You will need to pay them for any unused accrued days. Below is a breakdown of their time off entitlement and usage for the current annual leave period:"]}),r("div",{className:"mb-2",children:[s&&e(F,{entitledDays:(s?.data?.[0].annual_entitlement).days||0,takenDays:s?.data?.[0].taken.days||0,bookedDays:0,approvedDaysBeforeTermination:0,approvedDaysAfterTermination:0,remainingDays:0,proposedTerminationDate:o}),e(O,{employeeName:a,employmentId:t.employmentId})]})]})},"PaidTimeOff");export{K as a};
|
|
2
|
+
//# sourceMappingURL=chunk-G34OX26W.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/table.tsx","../src/flows/Termination/components/PaidTimeOff/PaidTimeOff.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/src/lib/utils';\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className='relative w-full overflow-auto'>\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n));\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'border-t bg-muted/50 font-medium [&>tr]:last:border-b-0',\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]',\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('mt-4 text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import {\n usePaidTimeoffBreakdownQuery,\n useTimeOffLeavePoliciesSummaryQuery,\n} from '@/src/common/api';\nimport { Button } from '@/src/components/ui/button';\nimport { useTerminationContext } from '@/src/flows/Termination/context';\nimport { cn } from '@/src/lib/utils';\nimport { $TSFixMe } from '@/src/types/remoteFlows';\nimport {\n Drawer,\n DrawerTrigger,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n} from '@/src/components/ui/drawer';\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@/src/components/ui/table';\nimport { useState } from 'react';\n\nconst pluralizeDays = (count: number) =>\n `${count} ${count === 1 ? 'day' : 'days'}`;\n\nconst rowBase =\n 'RemoteFlows__SummaryRow flex justify-between items-center py-2 text-xs';\nconst rowBorder =\n 'RemoteFlows__SummaryRowBorder border-b border-b-1 border-b-[#E4E4E7]';\n\nconst SummaryRow = ({\n children,\n withBorder = false,\n className = '',\n}: {\n children: React.ReactNode;\n withBorder?: boolean;\n className?: string;\n}) => {\n return (\n <div className={cn(rowBase, withBorder && rowBorder, className)}>\n {children}\n </div>\n );\n};\n\nconst SummaryTimeOff = ({\n entitledDays,\n takenDays,\n bookedDays,\n approvedDaysBeforeTermination,\n approvedDaysAfterTermination,\n remainingDays,\n proposedTerminationDate,\n}: {\n entitledDays: number;\n takenDays: number;\n bookedDays: number;\n approvedDaysBeforeTermination: number;\n approvedDaysAfterTermination: number;\n remainingDays: number;\n proposedTerminationDate: string;\n}) => {\n const formattedProposedTerminationDate = new Date(\n proposedTerminationDate,\n ).toLocaleDateString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n });\n return (\n <div>\n <SummaryRow withBorder>\n <label>Number of days entitled to per year</label>\n <p className='font-bold'>{pluralizeDays(entitledDays)}</p>\n </SummaryRow>\n <SummaryRow>\n <label>Total days booked</label>\n <p className='font-bold'>{pluralizeDays(bookedDays)}</p>\n </SummaryRow>\n <SummaryRow>\n <label>Number of days already used</label>\n <p className='font-bold'>{pluralizeDays(takenDays)}</p>\n </SummaryRow>\n <SummaryRow>\n <label>\n Approved for use before {formattedProposedTerminationDate}\n </label>\n <p className='font-bold'>\n {pluralizeDays(approvedDaysBeforeTermination)}\n </p>\n </SummaryRow>\n <SummaryRow withBorder>\n <label>Approved for use after {formattedProposedTerminationDate}</label>\n <p className='font-bold'>\n {pluralizeDays(approvedDaysAfterTermination)}\n </p>\n </SummaryRow>\n <SummaryRow>\n <label>Total days remaining unused</label>\n <p className='font-bold'>{pluralizeDays(remainingDays)}</p>\n </SummaryRow>\n <SummaryRow className='mb-2 py-0'>\n <p className='text-xs text-[#222E39]'>\n Expiration date of unused days: {formattedProposedTerminationDate}\n </p>\n </SummaryRow>\n </div>\n );\n};\n\nconst DrawerTimeOff = ({\n employeeName,\n employmentId,\n}: {\n employeeName: string;\n employmentId: string;\n}) => {\n const [open, setOpen] = useState(false);\n const { data: timeoff } = usePaidTimeoffBreakdownQuery({\n employmentId,\n options: {\n enabled: open,\n },\n });\n\n return (\n <Drawer direction='right' open={open} onOpenChange={setOpen}>\n <DrawerTrigger asChild>\n <Button\n onClick={() => {\n setOpen(true);\n }}\n variant='link'\n className='text-xs text-[#3B82F6] font-bold p-0'\n >\n See detailed time off breakdown ↗\n </Button>\n </DrawerTrigger>\n <DrawerContent className='h-full w-[540px] mt-0 ml-auto px-4 RemoteFlows_DrawerTimeOff'>\n <div className='h-full flex flex-col'>\n <DrawerHeader>\n <DrawerTitle>{employeeName} paid time off breakdown</DrawerTitle>\n </DrawerHeader>\n <div className='mb-2'>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className='w-[250px]'>Dates</TableHead>\n <TableHead>Duration</TableHead>\n <TableHead>Status</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {timeoff?.timeoffs.map((timeoff) => (\n <TableRow key={`${timeoff.startDate}-${timeoff.endDate}`}>\n <TableCell className='font-medium w-[250px]'>\n {timeoff.formattedDate}\n </TableCell>\n <TableCell>{pluralizeDays(timeoff.duration)}</TableCell>\n <TableCell>{timeoff.status}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n <p className='text-xs'>\n Total of {pluralizeDays(timeoff?.bookedDays || 0)} booked\n </p>\n </div>\n </DrawerContent>\n </Drawer>\n );\n};\n\nexport const PaidTimeOff = ({\n employeeName,\n proposedTerminationDate,\n}: {\n employeeName: string;\n proposedTerminationDate: string;\n}) => {\n const { terminationBag } = useTerminationContext();\n\n const { data: leavePoliciesSummary } = useTimeOffLeavePoliciesSummaryQuery({\n employmentId: terminationBag.employmentId,\n });\n\n const formattedProposedTerminationDate = new Date(\n proposedTerminationDate,\n ).toLocaleDateString('en-US', {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n });\n return (\n <div className='py-3'>\n <h3 className='RemoteFlows__PaidTimeOffTitle mb-2'>Paid time off</h3>\n <p className='RemoteFlows__PaidTimeOffDescription text-sm mb-2'>\n The proposed termination date for {employeeName} is{' '}\n {formattedProposedTerminationDate}. You will need to pay them for any\n unused accrued days. Below is a breakdown of their time off entitlement\n and usage for the current annual leave period:\n </p>\n <div className='mb-2'>\n {leavePoliciesSummary && (\n <SummaryTimeOff\n entitledDays={\n (leavePoliciesSummary?.data?.[0].annual_entitlement as $TSFixMe)\n .days || 0\n }\n takenDays={leavePoliciesSummary?.data?.[0].taken.days || 0}\n bookedDays={0}\n approvedDaysBeforeTermination={0}\n approvedDaysAfterTermination={0}\n remainingDays={0}\n proposedTerminationDate={proposedTerminationDate}\n />\n )}\n <DrawerTimeOff\n employeeName={employeeName}\n employmentId={terminationBag.employmentId}\n />\n </div>\n </div>\n );\n};\n"],"mappings":"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","names":["React","jsx","Table","className","props","ref","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","useState","jsx","jsxs","pluralizeDays","__name","count","rowBase","rowBorder","SummaryRow","children","withBorder","className","cn","SummaryTimeOff","entitledDays","takenDays","bookedDays","approvedDaysBeforeTermination","approvedDaysAfterTermination","remainingDays","proposedTerminationDate","formattedProposedTerminationDate","DrawerTimeOff","employeeName","employmentId","open","setOpen","useState","timeoff","usePaidTimeoffBreakdownQuery","Drawer","DrawerTrigger","Button","DrawerContent","DrawerHeader","DrawerTitle","Table","TableHeader","TableRow","TableHead","TableBody","TableCell","PaidTimeOff","terminationBag","useTerminationContext","leavePoliciesSummary","useTimeOffLeavePoliciesSummaryQuery"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as d,d as S}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{c as d,d as S}from"./chunk-ILPYR7RQ.js";import{a as u}from"./chunk-HN5HLFTB.js";import{a as f}from"./chunk-KSHK3ZPX.js";import{b as C}from"./chunk-CFIJKJXD.js";import{f as y}from"./chunk-CNDSIADP.js";import{a as o}from"./chunk-P37U34EQ.js";import{useEffect as T,useId as U,useState as I}from"react";import{jsx as k}from"react/jsx-runtime";var i=o((n,e,r)=>r&&r[e]?r[e]:n[e]?n[e]/100:0,"getDefaultManagementFee"),A=o((n,e,r,s)=>!e&&!r?.management_fee&&n?i(u,n,s):e&&!r?.management_fee?"":r?.management_fee,"getManagementFee"),W=o(({estimationOptions:n=d,defaultValues:e={countryRegionSlug:"",regionSlug:"",currencySlug:"",salary:"",benefits:{},management:{management_fee:""}},options:r,render:s,version:_="standard"})=>{let p=U(),[R,m]=I("USD"),F=o(g=>{m(g);let a=i(u,g,n.managementFees);a&&c.setValue("management.management_fee",a)},"onCurrencyChange"),t=S({defaultRegion:e.countryRegionSlug,defaultCurrency:e.currencySlug,defaultSalary:e.salary,estimationOptions:n,version:_,options:{...r,onCurrencyChange:F}}),K=C(t.handleValidation),b=A(R,e.currencySlug,e.management,n.managementFees),{countryRegionSlug:v,currencySlug:h,salary:D,benefits:P,hiringBudget:B,age:E,contractDurationType:M,regionSlug:w,...x}=e,c=y({resolver:K,defaultValues:{country:v,currency:h,region:w,salary:D,salary_conversion:"",salary_converted:"",hiring_budget:B||"employee_annual_salary",age:E,contract_duration_type:M,management:{management_fee:b},benefits:P,estimation_title:n.title,...x},shouldUnregister:!1,mode:"onBlur"});return T(()=>{if(e.currencySlug&&t.currencies&&n.includeManagementFee&&!e.management?.management_fee){let a=t.currencies.find(l=>l.value===e.currencySlug)?.label;if(a){m(a);let l=i(u,a,n.managementFees);c.setValue("management.management_fee",l)}}},[e.currencySlug,t.currencies,n.includeManagementFee,n.managementFees,e.management?.management_fee,c]),k(f.Provider,{value:{form:c,formId:p,costCalculatorBag:t},children:s(t)})},"CostCalculatorFlow");export{W as a};
|
|
2
|
+
//# sourceMappingURL=chunk-G4QOEPDP.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as R}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as R}from"./chunk-HPBT677J.js";import{a as P}from"./chunk-BCXRPHWY.js";import{a as S}from"./chunk-MQWVZSGH.js";import{a as v}from"./chunk-TB75BHYW.js";import{a as B}from"./chunk-S2XKE7EA.js";import{a as N}from"./chunk-VT4GSXMI.js";import{a as x,b as k,c as i}from"./chunk-7R347KBY.js";import{a as h,b as p,c as g,d as w,e as T}from"./chunk-AFRA4BIW.js";import{b as f}from"./chunk-HPHWQU34.js";import{a as b}from"./chunk-43WMZDDH.js";import{a as _}from"./chunk-P37U34EQ.js";import{lazy as L,useState as V}from"react";import{Fragment as I,jsx as a,jsxs as r}from"react/jsx-runtime";var z=L(()=>import("./flows/CostCalculator/Results/CostCalculatorResultsChart.js"));function Y({employmentData:D,options:e}){let[o,E]=V("monthly"),n=D.employments?.[0];if(!n)return null;let t=n.employer_currency_costs,s=t.currency.symbol,m=o==="monthly"?t.monthly_gross_salary:t.annual_gross_salary,u=o==="monthly"?t.monthly_benefits_total:t.annual_benefits_total,y=o==="monthly"?t.monthly_contributions_total:t.annual_contributions_total,F=o==="monthly"?t.monthly_total:t.annual_total,l=o==="monthly"?null:t.extra_statutory_payments_breakdown,A=o==="monthly"?null:t.extra_statutory_payments_total,d=o==="monthly"?t.monthly_indirect_tax:t.annual_indirect_tax,c=o==="monthly"?t.monthly_benefits_breakdown:t.annual_benefits_breakdown,H=o==="monthly"?t.monthly_contributions_breakdown:t.annual_contributions_breakdown,C=[{name:"Gross Salary",value:m,color:e?.chartColors?.grossSalary??"#3b82f6"},{name:"Contributions",value:y,color:e?.chartColors?.contributions??"#f59e0b"}];return c&&C.push({name:"Benefits",value:u??0,color:e?.chartColors?.benefits??"#10b981"}),r(I,{children:[r("div",{className:"flex flex-col md:flex-row gap-4 md:items-center justify-between mb-6 RemoteFlows__CostCalculatorResults",children:[r("div",{className:"RemoteFlows__CostCalculatorResults__Header",children:[r("h2",{className:"text-xl font-semibold flex items-center gap-2",children:[a("span",{className:"flex items-center gap-1",children:e?.title??"Cost Calculator"}),a(f,{className:"ml-2",children:n.country.name})]}),a("p",{className:"text-primary-foreground font-medium mt-1",children:e?.description??`Total cost of employment in ${n.country.name}`})]}),a(x,{value:o,onValueChange:G=>E(G),className:"w-full md:w-auto RemoteFlows__CostCalculatorResults__Tabs",children:r(k,{className:"grid w-full md:w-[200px] grid-cols-2",children:[a(i,{value:"monthly",children:"Monthly"}),a(i,{value:"annual",children:"Annual"})]})})]}),r("div",{className:b("grid grid-cols-1 gap-6",e?.showChart?"md:grid-cols-3":"","RemoteFlows__CostCalculatorResults_CostBreakdown"),children:[r(h,{className:"md:col-span-2 rounded-lg",children:[r(p,{className:"pb-2",children:[a(g,{children:"Cost Breakdown"}),a(w,{children:"Detailed breakdown of all employer costs"})]}),a(T,{children:r("div",{className:"space-y-6",children:[a(R,{grossSalary:m,currency:s,hasExtraStatutoryPayment:n.has_extra_statutory_payment}),c?a(v,{benefitsBreakdown:c,benefitsTotal:u,currency:s}):null,a(B,{contributionsBreakdown:H,contributionsTotal:y,currency:s}),Array.isArray(l)&&l.length>0?a(N,{extraStatutoryPaymentsBreakdown:l,extraStatutoryPaymentsTotal:A,currency:s}):null,d?a(P,{indirectTax:d,currency:s}):null,a(S,{totalCost:F,currency:s})]})})]}),e?.showChart&&a(z,{chartData:C,currency:s})]})]})}_(Y,"CostCalculatorResults");export{Y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-GKS3W6KT.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as r}from"./chunk-XMAQ4NRR.js";import{a}from"./chunk-OW5QGJD4.js";import{a as c}from"./chunk-PAT3EA43.js";import{a as e}from"./chunk-EKKRQI6B.js";import{a as m}from"./chunk-LWGVLLBH.js";import{a as o}from"./chunk-TVZAFTPT.js";import{a as n}from"./chunk-P37U34EQ.js";import{useId as f}from"react";import{jsx as s}from"react/jsx-runtime";function k({employmentId:d,countryCode:C,options:p,render:A}){let t=c({employmentId:d,countryCode:C,options:p}),i=f();return s(o.Provider,{value:{formId:i,contractAmendmentBag:t},children:A({contractAmendmentBag:t,components:{Form:r,SubmitButton:a,ConfirmationForm:m,BackButton:e}})})}n(k,"ContractAmendmentFlow");export{k as a};
|
|
2
|
+
//# sourceMappingURL=chunk-HEQLPSHZ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i}from"./chunk-ZSCKSEAA.js";import{a as m}from"./chunk-ZE3YT3Q6.js";import{a as e}from"./chunk-32GSS4UM.js";import{a}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i}from"./chunk-ZSCKSEAA.js";import{a as m}from"./chunk-ZE3YT3Q6.js";import{a as e}from"./chunk-32GSS4UM.js";import{a}from"./chunk-B7I7YVNK.js";import{b as n}from"./chunk-WVDTHFGS.js";import{b as s}from"./chunk-43WMZDDH.js";import{a as o}from"./chunk-P37U34EQ.js";import{Info as f}from"lucide-react";import{Fragment as y,jsx as r,jsxs as t}from"react/jsx-runtime";function N({grossSalary:l,currency:p,hasExtraStatutoryPayment:c=!1}){return t("div",{children:[t("div",{className:"flex justify-between items-center mb-2",children:[t("div",{className:"flex items-center gap-2",children:[r("h3",{className:"font-medium text-primary-foreground",children:"Gross Salary"}),c&&r(m,{content:t(y,{children:[r("span",{children:"This country respects extra payments on top of the gross salary."})," ",r(a,{zendeskId:e.extraPayments,children:"Learn more"})]}),children:t(n,{variant:"ghost",size:"icon",className:"h-4 w-4 p-0 mt-2",children:[r(f,{className:"h-3 w-3 text-gray-400"}),r("span",{className:"sr-only",children:"Info"})]})})]}),r("span",{className:"font-semibold text-lg",children:s(l,p)})]}),r(i,{})]})}o(N,"CostCalculatorGrossSalary");export{N as a};
|
|
2
|
+
//# sourceMappingURL=chunk-HPBT677J.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{G as f,s as m,u}from"./chunk-IXAWEBRI.js";import{d as o}from"./chunk-3ZWDIEEM.js";import{a as e}from"./chunk-P37U34EQ.js";import{useQuery as s}from"@tanstack/react-query";var b=e(({employmentId:t})=>{let{client:r}=o();return s({queryKey:["employment",t],retry:!1,queryFn:e(()=>u({client:r,headers:{Authorization:""},path:{employment_id:t}}),"queryFn"),select:e(({data:a})=>a,"select")})},"useEmploymentQuery"),y=e(({employmentId:t,status:r,timeoffType:a,options:n})=>{let{client:l}=o();return s({queryKey:["timeoff",t,r],retry:!1,queryFn:e(()=>f({client:l,headers:{Authorization:""},query:{employment_id:t,status:r,timeoff_type:a}}),"queryFn"),select:e(({data:i})=>n?.select?.(i)??i,"select"),enabled:n?.enabled})},"useTimeOffQuery"),d=e((t,r)=>{let a=new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),n=new Date(r).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"});return`${a} \u2192 ${n}`},"formatDateRange"),_=e(({employmentId:t,options:r})=>y({employmentId:t,timeoffType:"paid_time_off",options:{enabled:r?.enabled,select:e(a=>({bookedDays:a?.data?.total_count||0,timeoffs:a?.data?.timeoffs?.map(n=>({status:n?.status,duration:n?.timeoff_days.length,startDate:n?.start_date,endDate:n?.end_date,formattedDate:d(n?.start_date,n?.end_date)}))||[]}),"select")}}),"usePaidTimeoffBreakdownQuery"),S=e(({employmentId:t})=>{let{client:r}=o();return s({queryKey:["timeoff-balance",t],retry:!1,queryFn:e(()=>m({client:r,headers:{Authorization:""},path:{employment_id:t}}),"queryFn"),select:e(({data:a})=>a,"select")})},"useTimeOffLeavePoliciesSummaryQuery");export{b as a,y as b,_ as c,S as d};
|
|
2
|
+
//# sourceMappingURL=chunk-HYIC33YR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/api.ts"],"sourcesContent":["import {\n getIndexLeavePoliciesSummary,\n getIndexTimeoff,\n getShowEmployment,\n ListTimeoffResponse,\n TimeoffStatus,\n TimeoffType,\n} from '@/src/client';\nimport { useClient } from '@/src/context';\nimport { ContractAmendmentParams } from '@/src/flows/ContractAmendment/types';\nimport { Client } from '@hey-api/client-fetch';\nimport { useQuery } from '@tanstack/react-query';\n\ntype UseEmployment = Pick<ContractAmendmentParams, 'employmentId'>;\n\n/**\n * Hook to retrieve employment details for a specific employment ID.\n *\n * @param {Object} params - The parameters for the query.\n * @param {string} params.employmentId - The ID of the employment to fetch details for.\n * @returns {UseQueryResult<any, unknown>} - The result of the query, including the employment details.\n */\nexport const useEmploymentQuery = ({ employmentId }: UseEmployment) => {\n const { client } = useClient();\n return useQuery({\n queryKey: ['employment', employmentId],\n retry: false,\n queryFn: () => {\n return getShowEmployment({\n client: client as Client,\n headers: {\n Authorization: ``,\n },\n path: { employment_id: employmentId },\n });\n },\n select: ({ data }) => data,\n });\n};\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 getIndexTimeoff({\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 = new Date(startDate).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n const end = new Date(endDate).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n return `${start} → ${end}`;\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<{\n bookedDays: number;\n timeoffs: {\n status: string;\n duration: number;\n startDate: string;\n endDate: string;\n formattedDate: string;\n }[];\n }>({\n employmentId,\n timeoffType: 'paid_time_off',\n options: {\n enabled: options?.enabled,\n select: (data) => {\n return {\n bookedDays: data?.data?.total_count || 0,\n timeoffs:\n data?.data?.timeoffs?.map((timeoff) => {\n return {\n status: timeoff?.status,\n duration: timeoff?.timeoff_days.length,\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 getIndexLeavePoliciesSummary({\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"],"mappings":"iIAWA,OAAS,YAAAA,MAAgB,wBAWlB,IAAMC,EAAqBC,EAAA,CAAC,CAAE,aAAAC,CAAa,IAAqB,CACrE,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,aAAcH,CAAY,EACrC,MAAO,GACP,QAASD,EAAA,IACAK,EAAkB,CACvB,OAAQH,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAM,CAAE,cAAeD,CAAa,CACtC,CAAC,EAPM,WAST,OAAQD,EAAA,CAAC,CAAE,KAAAM,CAAK,IAAMA,EAAd,SACV,CAAC,CACH,EAhBkC,sBA2BrBC,EAAkBP,EAAA,CAA8B,CAC3D,aAAAC,EACA,OAAAO,EACA,YAAAC,EACA,QAAAC,CACF,IAQM,CACJ,GAAM,CAAE,OAAAR,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,UAAWH,EAAcO,CAAM,EAC1C,MAAO,GACP,QAASR,EAAA,IACAW,EAAgB,CACrB,OAAQT,EACR,QAAS,CACP,cAAe,EACjB,EACA,MAAO,CACL,cAAeD,EACf,OAAQO,EACR,aAAcC,CAChB,CACF,CAAC,EAXM,WAaT,OAAQT,EAAA,CAAC,CAAE,KAAAM,CAAK,IAAOI,GAAS,SAASJ,CAAI,GAAKA,EAA1C,UACR,QAASI,GAAS,OACpB,CAAC,CACH,EAlC+B,mBAoCzBE,EAAkBZ,EAAA,CAACa,EAAmBC,IAAoB,CAC9D,IAAMC,EAAQ,IAAI,KAAKF,CAAS,EAAE,mBAAmB,QAAS,CAC5D,KAAM,UACN,MAAO,QACP,IAAK,SACP,CAAC,EACKG,EAAM,IAAI,KAAKF,CAAO,EAAE,mBAAmB,QAAS,CACxD,KAAM,UACN,MAAO,QACP,IAAK,SACP,CAAC,EACD,MAAO,GAAGC,CAAK,WAAMC,CAAG,EAC1B,EAZwB,mBAsBXC,EAA+BjB,EAAA,CAAC,CAC3C,aAAAC,EACA,QAAAS,CACF,IAMSH,EASJ,CACD,aAAAN,EACA,YAAa,gBACb,QAAS,CACP,QAASS,GAAS,QAClB,OAAQV,EAACM,IACA,CACL,WAAYA,GAAM,MAAM,aAAe,EACvC,SACEA,GAAM,MAAM,UAAU,IAAKY,IAClB,CACL,OAAQA,GAAS,OACjB,SAAUA,GAAS,aAAa,OAChC,UAAWA,GAAS,WACpB,QAASA,GAAS,SAClB,cAAeN,EACbM,GAAS,WACTA,GAAS,QACX,CACF,EACD,GAAK,CAAC,CACX,GAhBM,SAkBV,CACF,CAAC,EA1CyC,gCAqD/BC,EAAsCnB,EAAA,CAAC,CAClD,aAAAC,CACF,IAEM,CACJ,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAU,EAC7B,OAAOC,EAAS,CACd,SAAU,CAAC,kBAAmBH,CAAY,EAC1C,MAAO,GACP,QAASD,EAAA,IACAoB,EAA6B,CAClC,OAAQlB,EACR,QAAS,CACP,cAAe,EACjB,EACA,KAAM,CAAE,cAAeD,CAAuB,CAChD,CAAC,EAPM,WAST,OAAQD,EAAA,CAAC,CAAE,KAAAM,CAAK,IAAMA,EAAd,SACV,CAAC,CACH,EApBmD","names":["useQuery","useEmploymentQuery","__name","employmentId","client","useClient","useQuery","getShowEmployment","data","useTimeOffQuery","status","timeoffType","options","getIndexTimeoff","formatDateRange","startDate","endDate","start","end","usePaidTimeoffBreakdownQuery","timeoff","useTimeOffLeavePoliciesSummaryQuery","getIndexLeavePoliciesSummary"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as X}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as X}from"./chunk-IYGJ5QJB.js";import{a as G}from"./chunk-VFRHMNLJ.js";import{a as I,b as z,c as Q,f as W}from"./chunk-JVSD4JOU.js";import{a as C}from"./chunk-HN5HLFTB.js";import{a as K}from"./chunk-CFIJKJXD.js";import{c as Y}from"./chunk-4SIGN3ZP.js";import{a as Z}from"./chunk-7XRPOR7L.js";import{c as V}from"./chunk-PAQW5BFW.js";import{a as o}from"./chunk-P37U34EQ.js";import{number as Te,object as oe}from"yup";import{createHeadlessForm as Ve,modify as je}from"@remoteoss/json-schema-form";import{useCallback as Re,useEffect as ee,useMemo as Pe,useRef as we,useState as j}from"react";import{string as te,ValidationError as ne}from"yup";import{jsx as re}from"react/jsx-runtime";var O={title:"Estimation",includeBenefits:!1,includeCostBreakdowns:!1,includePremiumBenefits:!1,enableCurrencyConversion:!1,includeEstimationTitle:!1,includeManagementFee:!1},xe=o(t=>{let{schema:i}=je(G.data.schema,t?.jsfModify||{});return Ve(i)},"useStaticSchema");function Be(t,i){if(typeof t=="object"&&t!==null&&"title"in t){let l=t.title;if(l)return l}return i==="my_hiring_budget"?"Hiring budget":"Employee's annual salary"}o(Be,"getSalaryTitle");var Qe=o(({defaultRegion:t,defaultCurrency:i,defaultSalary:l,estimationOptions:s,options:n,version:a}={estimationOptions:O})=>{let c=we({fields:{}}),[k,E]=j(t),[R,P]=j(),[m,q]=j(),[H,se]=j(),{data:_,isLoading:le}=I({includePremiumBenefits:s.includePremiumBenefits}),{data:d,isLoading:ce}=z(),ue=k||R?.value,{data:w,isLoading:me}=W(ue,{includePremiumBenefits:s.includePremiumBenefits,options:n}),U=Q(),{mutateAsync:de}=Z(U),b=R?.currency,p=n?.jsfModify?.fields?.salary,F=p&&typeof p=="object"&&"presentation"in p?p.presentation:void 0,L=Re(()=>{let e=b&&m?b!==m:!1;return b!==m?{from:m,to:b,shouldSwapOrder:e}:{from:b,to:m,shouldSwapOrder:e}},[b,m]),J=s.showManagementFee,$=s.includeEstimationTitle,fe=Pe(()=>{let{from:e,to:r,shouldSwapOrder:u}=L(),g=Be(p,H);return{fields:{salary:{...p,title:g,presentation:{salary_conversion_properties:{label:F?.salary_conversion_properties?.label,description:F?.salary_conversion_properties?.description},currencies:{from:e,to:r},Component:o(y=>re(X,{...y,shouldSwapOrder:u,conversionType:a==="marketing"?"no_spread":"spread",defaultValue:l}),"Component")}},hiring_budget:{...n?.jsfModify?.fields?.hiring_budget,presentation:{hidden:a=="marketing"}},management:{...n?.jsfModify?.fields?.management,properties:{...n?.jsfModify?.fields?.management?.properties,management_fee:{...n?.jsfModify?.fields?.management?.properties?.management_fee,"x-jsf-presentation":{inputType:"money",additionalProps:{currency:m||"USD"}}}},presentation:{...typeof n?.jsfModify?.fields?.management=="object"?(n?.jsfModify?.fields?.management)["x-jsf-presentation"]:{},hidden:!J,Component:o(y=>re(Y,{...y,variant:"inset",features:{toggle:{enabled:!0,stateField:"management._expanded",labels:{expand:"Define",collapse:"Remove"}}}}),"Component")}},estimation_title:{...n?.jsfModify?.fields?.estimation_title,"x-jsf-presentation":{hidden:!$}}}}},[L,p,H,F?.salary_conversion_properties?.label,F?.salary_conversion_properties?.description,n?.jsfModify?.fields?.hiring_budget,n?.jsfModify?.fields?.management,n?.jsfModify?.fields?.estimation_title,a,m,J,$,l]),f=xe({jsfModify:{fields:{...n?.jsfModify?.fields,...fe?.fields}}});ee(()=>{if(t&&_){let e=_.find(({value:r})=>r===t);e&&P(e)}},[t,_]),ee(()=>{if(i&&d){let e=d.find(({value:r})=>r===i);e&&q(e.label)}},[i,d]);async function ge(e){return de(ae(e,s,a))}o(ge,"onSubmit");function ye(e){let r=_?.find(({value:u})=>u===e);r&&r.childRegions.length===0&&r.hasAdditionalFields?E(r.regionSlug):E(void 0),P(r)}o(ye,"onCountryChange");function pe(e){E(e)}o(pe,"onRegionChange");function Ce(e){se(e.target.value)}o(Ce,"onHiringBudgetChange");function _e(e){let r=d?.find(u=>u.value===e)?.label;q(r),n?.onCurrencyChange?.(r||"")}o(_e,"onChangeCurrency");let S=f.fields.find(e=>e.name==="region");if(S){let e=R?.childRegions.map(r=>({value:r.slug,label:r.name}))??[];S.options=e,S.isVisible=e.length>0,S.required=e.length>0,S.onChange=pe,S.schema=e.length>0?te().transform(r=>typeof r=="string"?r:"").required("Region is required"):te()}if(d){let e=f.fields.find(r=>r.name==="currency");e&&(e.options=d,e.onChange=_e)}let v=f.fields.find(e=>e.name==="hiring_budget");if(v&&(v.onChange=Ce),_){let e=f.fields.find(r=>r.name==="country");e&&(e.options=_,e.onChange=ye)}let be=o(()=>{P(void 0),E(t)},"resetForm"),D=[...f.fields.filter(e=>e.name!=="management"),...w?.fields||[],...f.fields.filter(e=>e.name==="management")],N=ie(f.fields,m||"USD",s.includeEstimationTitle);async function Se(e){let r=null;n?.onValidation?.(e);let u=V(e,D);try{await N.validate(u,{abortEarly:!1}),r={formErrors:{},yupError:new ne([],e)}}catch(h){let B=K(h);r={formErrors:Object.entries(B).reduce((T,[A,M])=>({...T,[A]:M.message}),{}),yupError:h}}let g=w?.handleValidation(u),y=[...r?.yupError.inner||[],...g?.yupError?.inner||[]],x={...r?.yupError?.value||{},...g?.yupError?.value||{}};return{formErrors:{...r?.formErrors||{},...g?.formErrors||{}},yupError:new ne(y,x)}}return o(Se,"handleValidation"),{stepState:{current:0,total:1,isLastStep:!0},fields:D,validationSchema:N,parseFormValues:o(e=>{let{country:r,region:u,currency:g,salary_converted:y,hiring_budget:x,salary_conversion:h,management:B,estimation_title:T,...A}=e,M=e.salary;y==="salary_conversion"&&(M=h);let he=V({country:r,region:u,salary:M,salary_converted:y,salary_conversion:h,hiring_budget:x,currency:g,management:B,estimation_title:T},f.fields),Ee=V(A,w?.fields||[]),Fe={currency_code:d?.find(Me=>Me.value===g)?.label};return{...he,...Ee,...Fe}},"parseFormValues"),handleValidation:Se,isSubmitting:U.isPending,isLoading:le&&ce&&me,onSubmit:ge,resetForm:be,currencies:d,meta:{fields:c.current?.fields}}},"useCostCalculator");function ie(t,i,l){let s=t.reduce((n,a)=>(a.name==="salary"||a.name==="salary_conversion"?n[a.name]=a.schema.when("salary_converted",{is:o(c=>c===a.name,"is"),then:o(c=>c.required("Required field"),"then"),otherwise:o(c=>c.optional(),"otherwise")}):a.name==="management"?n[a.name]=oe({management_fee:Te().transform(c=>isNaN(c)?void 0:c).min(0,"Management fee must be greater than or equal to 0").max(i?C[i]:C.USD,()=>`Management fee cannot exceed ${(i?C[i]:C.USD)/100} ${i}`)}):a.name==="estimation_title"&&l?n[a.name]=a.schema.required("Required field"):n[a.name]=a.schema,n),{});return oe(s)}o(ie,"buildValidationSchema");function Ae(t){let i="benefit-";return Object.keys(t).reduce((l,s)=>{let n=t[s];if(n==="none")return l;let c={benefit_group_slug:s.replace(i,""),benefit_tier_slug:n};return[...l,c]},[])}o(Ae,"formatBenefits");function Oe(t,i,l){let s=Number(t.management?.management_fee),n=t.currency_code;return{...{region_slug:t.region||t.country,employment_term:t.contract_duration_type??"fixed",title:t.estimation_title||i.title,age:t.age??void 0,...t.benefits&&{benefits:Ae(t.benefits)},...i.includeManagementFee&&s&&{discount:{quoted_amount:i.showManagementFee?s:C[n]||C.USD,text:""}}},...ke(t,l)}}o(Oe,"mapValueToEmployment");function ke(t,i){let l=i==="marketing"||t.salary_converted==="salary_conversion",s=i==="standard"&&t.salary_converted==="salary",n=t.hiring_budget==="my_hiring_budget";if(l){let a=t.salary_converted==="salary_conversion";return n?{annual_total_cost_in_employer_currency:t.salary}:{[a?"annual_gross_salary_in_employer_currency":"annual_gross_salary"]:t.salary}}return s?n?{annual_total_cost:t.salary}:{annual_gross_salary:t.salary}:{}}o(ke,"getSalaryFields");function ae(t,i=O,l="standard"){let s=Array.isArray(t)?t:[t];if(s.length===0)throw new Error("At least one employment value is required");return s.length>1&&new Set(s.map(a=>a.currency)).size>1&&console.warn("Multiple currencies detected in array. Using currency from first employment."),{employer_currency_slug:s[0].currency,include_benefits:i.includeBenefits,include_cost_breakdowns:i.includeCostBreakdowns,include_premium_benefits:i.includePremiumBenefits,include_management_fee:i.includeManagementFee,employments:s.map(n=>Oe(n,i,l))}}o(ae,"buildPayload");export{ie as a,ae as b,O as c,Qe as d};
|
|
2
|
+
//# sourceMappingURL=chunk-ILPYR7RQ.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as X,d as Z}from"./chunk-FB2QGVI2.js";import{a as $,f as K,h as Y,l as z}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{c as X,d as Z}from"./chunk-FB2QGVI2.js";import{a as $,f as K,h as Y,l as z}from"./chunk-FBJCDOO7.js";import{a as tt,b as et,c as nt,d as ot,e as rt}from"./chunk-5A54AHAT.js";import{a as at,b as it}from"./chunk-U6RM2N4A.js";import{a as T}from"./chunk-7XRPOR7L.js";import{a as Q}from"./chunk-PJBAQZ6G.js";import{c as f,d as E}from"./chunk-PAQW5BFW.js";import{g as w}from"./chunk-43WMZDDH.js";import{a as p}from"./chunk-P37U34EQ.js";import{useEffect as Nt,useMemo as m,useRef as qt,useState as k}from"react";var At={select_country:null,basic_information:"employment_basic_information",contract_details:null,pricing_plan:null,contract_preview:null,review:null},xt={employment_basic_information:"basic_information"},te=p(({countryCode:ct,externalId:st,employmentId:y,skipSteps:lt,options:d,initialValues:i})=>{let[r,B]=k(ct||null),[a,mt]=k(y),[M,dt]=k(void 0),v=qt({select_country:{},basic_information:{},contract_details:{},contract_preview:{},pricing_plan:{}}),ut=lt?.includes("select_country")?it:at,{fieldValues:b,stepState:e,setFieldValues:pt,previousStep:ft,nextStep:yt,goToStep:D,setStepValues:J}=Q(ut),{data:c,isLoading:I,refetch:_t}=$(a),{status:_}=c||{},j=_&&X.includes(_),St=_&&!Z.includes(_),gt=m(()=>_==="invited"?"invited":"not_invited",[_]),N=Y(d),q=ot(),A=et(),{mutateAsync:bt}=T(N),{mutateAsync:Ct}=T(q),{mutateAsync:ht}=T(A);y&&c?.country?.code&&!r&&B(c.country.code);let{selectCountryForm:P,isLoading:Ft}=z({jsfModify:d?.jsfModify?.select_country,jsonSchemaVersion:d?.jsonSchemaVersion,queryOptions:{enabled:e.currentStep.name==="select_country"}}),Vt=At[e.currentStep.name]||"contractor_basic_information",Et=xt[Vt],wt=c?.[Et]||{},vt=p(({form:t,options:o={},query:S={}})=>{let g=Object.keys(b).length>0?{...i,...e.values?.[e.currentStep.name],...b}:{...i,...wt};return K({countryCode:r,form:t,fieldValues:g,query:S,options:{...o,queryOptions:{enabled:o.queryOptions?.enabled??!0}}})},"useJSONSchema"),Pt=!!(r&&(e.currentStep.name==="basic_information"||y)),Ot=!!(r&&(e.currentStep.name==="contract_details"||y)),{data:s,isLoading:Tt}=vt({form:"contractor_basic_information",options:{jsfModify:d?.jsfModify?.basic_information,queryOptions:{enabled:Pt},jsonSchemaVersion:d?.jsonSchemaVersion}}),{data:l,isLoading:Mt}=rt({countryCode:r,fieldValues:b,options:{queryOptions:{enabled:Ot},jsfModify:d?.jsfModify?.contract_details,jsonSchemaVersion:d?.jsonSchemaVersion}}),{data:u}=tt({fieldValues:b,options:{queryOptions:{enabled:e.currentStep.name==="contract_preview"}}}),{data:Dt,isLoading:It}=nt({employmentId:a,contractDocumentId:M,options:{queryOptions:{enabled:!!M}}}),n=m(()=>({select_country:P?.fields||[],basic_information:s?.fields||[],pricing_plan:[],contract_details:l?.fields||[],contract_preview:u?.fields||[],review:[]}),[P?.fields,s?.fields,l?.fields,u?.fields]),jt={select_country:null,basic_information:s?.meta["x-jsf-fieldsets"],pricing_plan:null,contract_details:l?.meta["x-jsf-fieldsets"],contract_preview:null,review:null},{country:Rt,basic_information:x={},contract_details:O={}}=c||{},U=Rt?.code,C=m(()=>E(n.select_country,{country:r||U||""}),[n.select_country,r,U]),h=m(()=>{let t={...i,...x};return E(n.basic_information,t)},[n.basic_information,x,i]),F=m(()=>{let t={...i,...O};return E(n.contract_details,t)},[n.contract_details,O,i]),H=m(()=>{let t={...i,...O};return E(n.contract_preview,t)},[n.contract_preview,O,i]),Lt=m(()=>({select_country:C,basic_information:h,contract_details:F,contract_preview:H,pricing_plan:{}}),[C,h,F,H]),G=m(()=>!!(!!(y&&j&&e.currentStep.name!=="review")&&!I&&n.basic_information.length>0&&n.contract_details.length>0),[y,j,I,n.basic_information.length,n.contract_details.length,e.currentStep.name]);Nt(()=>{G&&(v.current={select_country:w(C,n.select_country),basic_information:w(h,n.basic_information),contract_details:w(F,n.contract_details),contract_preview:{},pricing_plan:{}},J({select_country:C,basic_information:h,contract_details:F,contract_preview:{},pricing_plan:{},review:{}}),D("review"))},[G,D,C,h,F,J,n.select_country,n.basic_information,n.contract_details]);let kt=p(t=>{D(t)},"goTo"),W=p(t=>P&&e.currentStep.name==="select_country"?t:s&&e.currentStep.name==="basic_information"?f(t,s?.fields,{isPartialValidation:!1}):l&&e.currentStep.name==="contract_details"?f(t,l?.fields,{isPartialValidation:!1}):u&&e.currentStep.name==="contract_preview"?f(t,u?.fields,{isPartialValidation:!1}):e.currentStep.name==="pricing_plan"?t:{},"parseFormValues");async function Bt(t){let o=e.currentStep.name;o in v.current&&(v.current[o]=w(t,n[o]));let S=W(t);switch(e.currentStep.name){case"select_country":return B(S.country),Promise.resolve({data:{countryCode:S.country}});case"basic_information":{let R=!a&&r,g=a&&r&&c?.country&&c?.country.code!==r;if(R||g){let L={basic_information:S,type:"contractor",country_code:r,external_id:st};try{let V=await bt(L),Jt=V.data?.data?.employment?.id;return mt(Jt),V}catch(V){throw console.error("Error creating onboarding:",V),V}}else if(a)return Promise.resolve({data:{employmentId:a}});return}case"contract_details":{let g=await Ct({employmentId:a,payload:{contract_document:S}}),L=g.data?.data?.contract_document?.id;return dt(L),g}case"contract_preview":return ht({employmentId:a,contractDocumentId:M,payload:{signature:t.signature}});case"pricing_plan":return Promise.resolve({data:{pricingPlan:t}});default:throw new Error("Invalid step state")}}return p(Bt,"onSubmit"),{isLoading:Ft||Tt||I||Mt||It,fieldValues:b,stepState:e,checkFieldUpdates:pt,back:ft,next:yt,goTo:kt,onSubmit:Bt,fields:n[e.currentStep.name],meta:{fields:v.current,fieldsets:jt[e.currentStep.name]},parseFormValues:W,handleValidation:p(t=>{if(e.currentStep.name==="select_country")return P.handleValidation(t);if(s&&e.currentStep.name==="basic_information"){let o=f(t,s?.fields,{isPartialValidation:!1});return s?.handleValidation(o)}if(l&&e.currentStep.name==="contract_details"){let o=f(t,l?.fields,{isPartialValidation:!1});return l?.handleValidation(o)}if(u&&e.currentStep.name==="contract_preview"){let o=f(t,u?.fields,{isPartialValidation:!1});return u?.handleValidation(o)}return e.currentStep.name==="pricing_plan"?{formErrors:{},yupError:null}:null},"handleValidation"),initialValues:Lt,employmentId:a,refetchEmployment:_t,isSubmitting:N.isPending||q.isPending||A.isPending,documentPreviewPdf:Dt,canInvite:St,isEmploymentReadOnly:j,invitedStatus:gt,employment:c}},"useContractorOnboarding");export{te as a};
|
|
2
|
+
//# sourceMappingURL=chunk-IM525UMG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/flows/ContractorOnboarding/hooks.tsx"],"sourcesContent":["import {\n CreateContractDocument,\n Employment,\n EmploymentCreateParams,\n} from '@/src/client/types.gen';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport {\n useContractorOnboardingDetailsSchema,\n useCreateContractorContractDocument,\n useGetContractDocumentSignatureSchema,\n useGetShowContractDocument,\n useSignContractDocument,\n} from '@/src/flows/ContractorOnboarding/api';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport {\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n} from '@/src/flows/ContractorOnboarding/utils';\nimport {\n useCountriesSchemaField,\n useCreateEmployment,\n useEmployment,\n useJSONSchemaForm,\n} from '@/src/flows/Onboarding/api';\nimport {\n disabledInviteButtonEmploymentStatus,\n reviewStepAllowedEmploymentStatus,\n} from '@/src/flows/Onboarding/utils';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { Step, useStepState } from '@/src/flows/useStepState';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { prettifyFormValues } from '@/src/lib/utils';\nimport { $TSFixMe, JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport { Fields } from '@remoteoss/json-schema-form';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\n\ntype useContractorOnboardingProps = Omit<\n ContractorOnboardingFlowProps,\n 'render'\n>;\n\nconst stepToFormSchemaMap: Record<\n keyof typeof STEPS,\n JSONSchemaFormType | null\n> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_details: null,\n pricing_plan: null,\n contract_preview: null,\n review: null,\n};\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n};\n\nexport const useContractorOnboarding = ({\n countryCode,\n externalId,\n employmentId,\n skipSteps,\n options,\n initialValues: onboardingInitialValues,\n}: useContractorOnboardingProps) => {\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalContractDocumentId, setInternalContractDocumentId] = useState<\n string | undefined\n >(undefined);\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n contract_preview: Meta;\n pricing_plan: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n contract_preview: {},\n pricing_plan: {},\n });\n\n const stepsToUse = skipSteps?.includes('select_country')\n ? STEPS_WITHOUT_SELECT_COUNTRY\n : STEPS;\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(\n stepsToUse as Record<keyof typeof STEPS, Step<keyof typeof STEPS>>,\n );\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmployment(internalEmploymentId);\n\n const { status: employmentStatus } = employment || {};\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const invitedStatus: 'invited' | 'not_invited' = useMemo(() => {\n const isInvited = employmentStatus === 'invited';\n\n return isInvited ? 'invited' : 'not_invited';\n }, [employmentStatus]);\n\n const createEmploymentMutation = useCreateEmployment(options);\n const createContractorContractDocumentMutation =\n useCreateContractorContractDocument();\n const signContractDocumentMutation = useSignContractDocument();\n\n const { mutateAsync: createEmploymentMutationAsync } = mutationToPromise(\n createEmploymentMutation,\n );\n\n const { mutateAsync: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n const { mutateAsync: signContractDocumentMutationAsync } = mutationToPromise(\n signContractDocumentMutation,\n );\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (employmentId && employment?.country?.code && !internalCountryCode) {\n setInternalCountryCode(employment.country.code);\n }\n\n const { selectCountryForm, isLoading: isLoadingCountries } =\n useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: stepState.currentStep.name === 'select_country',\n },\n });\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'employment_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractorOnboardingDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'employment_basic_information',\n options: {\n jsfModify: options?.jsfModify?.basic_information,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n jsonSchemaVersion: options?.jsonSchemaVersion,\n },\n });\n\n const {\n data: contractorOnboardingDetailsForm,\n isLoading: isLoadingContractorOnboardingDetailsForm,\n } = useContractorOnboardingDetailsSchema({\n countryCode: internalCountryCode as string,\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isContractorOnboardingDetailsEnabled,\n },\n jsfModify: options?.jsfModify?.contract_details,\n jsonSchemaVersion: options?.jsonSchemaVersion,\n },\n });\n\n const { data: signatureSchemaForm } = useGetContractDocumentSignatureSchema({\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: stepState.currentStep.name === 'contract_preview',\n },\n },\n });\n const { data: documentPreviewPdf, isLoading: isLoadingDocumentPreviewForm } =\n useGetShowContractDocument({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const stepFields: Record<keyof typeof STEPS, Fields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n pricing_plan: [],\n contract_details: contractorOnboardingDetailsForm?.fields || [],\n contract_preview: signatureSchemaForm?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n contractorOnboardingDetailsForm?.fields,\n signatureSchemaForm?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n keyof typeof STEPS,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n pricing_plan: null,\n contract_details: contractorOnboardingDetailsForm?.meta['x-jsf-fieldsets'],\n contract_preview: null,\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n stepFields.basic_information,\n employmentBasicInformation,\n onboardingInitialValues,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n ]);\n\n const contractPreviewInitialValues = useMemo(() => {\n // TODO: TBD not sure if contract preview needs to be populated with anything\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_preview, initialValues);\n }, [\n stepFields.contract_preview,\n employmentContractDetails,\n onboardingInitialValues,\n ]);\n\n const initialValues = useMemo(() => {\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: {},\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n contractPreviewInitialValues,\n ]);\n\n const isNavigatingToReview = useMemo(() => {\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId &&\n isEmploymentReadOnly &&\n stepState.currentStep.name !== 'review',\n );\n\n return Boolean(\n shouldHandleReadOnlyEmployment &&\n !isLoadingEmployment &&\n stepFields.basic_information.length > 0 &&\n stepFields.contract_details.length > 0,\n );\n }, [\n employmentId,\n isEmploymentReadOnly,\n isLoadingEmployment,\n stepFields.basic_information.length,\n stepFields.contract_details.length,\n stepState.currentStep.name,\n ]);\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n ),\n // TODO: TBD\n contract_preview: {},\n // TODO: TBD\n pricing_plan: {},\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: {},\n pricing_plan: {},\n review: {},\n });\n goToStep('review');\n }\n }, [\n isNavigatingToReview,\n goToStep,\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n setStepValues,\n stepFields.select_country,\n stepFields.basic_information,\n stepFields.contract_details,\n ]);\n\n const goTo = (step: keyof typeof STEPS) => {\n goToStep(step);\n };\n\n const parseFormValues = (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n return parseJSFToValidate(values, signatureSchemaForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (stepState.currentStep.name === 'pricing_plan') {\n // TODO: TBD\n return values;\n }\n\n return {};\n };\n\n async function onSubmit(values: FieldValues) {\n const currentStepName = stepState.currentStep.name;\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(values, stepFields[currentStepName]);\n }\n const parsedValues = parseFormValues(values);\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const payload: EmploymentCreateParams = {\n basic_information: parsedValues,\n type: 'contractor',\n country_code: internalCountryCode,\n external_id: externalId,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n setInternalEmploymentId(employmentId);\n\n return response;\n } catch (error) {\n console.error('Error creating onboarding:', error);\n throw error;\n }\n } else if (internalEmploymentId) {\n // TODO: Provisional it seems you cannot update a contractor employment\n return Promise.resolve({\n data: { employmentId: internalEmploymentId },\n });\n }\n\n return;\n }\n case 'contract_details': {\n const payload: CreateContractDocument = {\n contract_document: parsedValues,\n };\n const response: $TSFixMe =\n await createContractorContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n payload,\n });\n\n const contractDocumentId = response.data?.data?.contract_document?.id;\n setInternalContractDocumentId(contractDocumentId);\n return response;\n }\n\n case 'contract_preview': {\n return signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: values.signature,\n },\n });\n }\n\n case 'pricing_plan': {\n // TODO: TBD\n return Promise.resolve({ data: { pricingPlan: values } });\n }\n\n default: {\n throw new Error('Invalid step state');\n }\n }\n }\n\n const isLoading =\n isLoadingCountries ||\n isLoadingBasicInformationForm ||\n isLoadingEmployment ||\n isLoadingContractorOnboardingDetailsForm ||\n isLoadingDocumentPreviewForm;\n\n return {\n /**\n * Loading state indicating if the flow is loading data\n */\n isLoading,\n\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back: previousStep,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next: nextStep,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo: goTo,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n },\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: (values: FieldValues) => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractorOnboardingDetailsForm?.handleValidation(parsedValues);\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n const parsedValues = parseJSFToValidate(\n values,\n signatureSchemaForm?.fields,\n { isPartialValidation: false },\n );\n return signatureSchemaForm?.handleValidation(parsedValues);\n }\n\n if (stepState.currentStep.name === 'pricing_plan') {\n // TODO: TBD\n return {\n formErrors: {},\n yupError: null,\n };\n }\n\n return null;\n },\n\n /**\n * Initial form values\n */\n initialValues,\n\n /**\n * Employment id\n */\n employmentId: internalEmploymentId,\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment: refetchEmployment,\n\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n createContractorContractDocumentMutation.isPending ||\n signContractDocumentMutation.isPending,\n\n /**\n * Document preview PDF data\n */\n documentPreviewPdf,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n /**\n * let's the user know if the employment is invited or not\n * @returns {'invited' | 'not_invited'}\n */\n invitedStatus,\n\n /**\n * Employment data\n * @returns {Employment}\n */\n employment,\n };\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","stepToFormSchemaMap","jsonSchemaToEmployment","useContractorOnboarding","__name","countryCode","externalId","employmentId","skipSteps","options","onboardingInitialValues","internalCountryCode","setInternalCountryCode","useState","internalEmploymentId","setInternalEmploymentId","internalContractDocumentId","setInternalContractDocumentId","fieldsMetaRef","useRef","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmployment","employmentStatus","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","invitedStatus","useMemo","createEmploymentMutation","useCreateEmployment","createContractorContractDocumentMutation","useCreateContractorContractDocument","signContractDocumentMutation","useSignContractDocument","createEmploymentMutationAsync","mutationToPromise","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","selectCountryForm","isLoadingCountries","useCountriesSchemaField","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractorOnboardingDetailsEnabled","basicInformationForm","isLoadingBasicInformationForm","contractorOnboardingDetailsForm","isLoadingContractorOnboardingDetailsForm","useContractorOnboardingDetailsSchema","signatureSchemaForm","useGetContractDocumentSignatureSchema","documentPreviewPdf","isLoadingDocumentPreviewForm","useGetShowContractDocument","stepFields","stepFieldsWithFlatFieldsets","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","initialValues","contractDetailsInitialValues","contractPreviewInitialValues","isNavigatingToReview","useEffect","prettifyFormValues","goTo","step","parseFormValues","values","parseJSFToValidate","onSubmit","currentStepName","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","contractDocumentId"]}
|
|
1
|
+
{"version":3,"sources":["../src/flows/ContractorOnboarding/hooks.tsx"],"sourcesContent":["import {\n CreateContractDocument,\n Employment,\n EmploymentCreateParams,\n} from '@/src/client/types.gen';\nimport {\n getInitialValues,\n parseJSFToValidate,\n} from '@/src/components/form/utils';\nimport {\n useContractorOnboardingDetailsSchema,\n useCreateContractorContractDocument,\n useGetContractDocumentSignatureSchema,\n useGetShowContractDocument,\n useSignContractDocument,\n} from '@/src/flows/ContractorOnboarding/api';\nimport { ContractorOnboardingFlowProps } from '@/src/flows/ContractorOnboarding/types';\nimport {\n STEPS,\n STEPS_WITHOUT_SELECT_COUNTRY,\n} from '@/src/flows/ContractorOnboarding/utils';\nimport {\n useCountriesSchemaField,\n useCreateEmployment,\n useEmployment,\n useJSONSchemaForm,\n} from '@/src/flows/Onboarding/api';\nimport {\n disabledInviteButtonEmploymentStatus,\n reviewStepAllowedEmploymentStatus,\n} from '@/src/flows/Onboarding/utils';\nimport { FlowOptions, JSFModify, JSONSchemaFormType } from '@/src/flows/types';\nimport { Step, useStepState } from '@/src/flows/useStepState';\nimport { mutationToPromise } from '@/src/lib/mutations';\nimport { prettifyFormValues } from '@/src/lib/utils';\nimport { $TSFixMe, JSFFieldset, Meta } from '@/src/types/remoteFlows';\nimport { Fields } from '@remoteoss/json-schema-form';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { FieldValues } from 'react-hook-form';\n\ntype useContractorOnboardingProps = Omit<\n ContractorOnboardingFlowProps,\n 'render'\n>;\n\nconst stepToFormSchemaMap: Record<\n keyof typeof STEPS,\n JSONSchemaFormType | null\n> = {\n select_country: null,\n basic_information: 'employment_basic_information',\n contract_details: null,\n pricing_plan: null,\n contract_preview: null,\n review: null,\n};\n\nconst jsonSchemaToEmployment: Partial<\n Record<JSONSchemaFormType, keyof Employment>\n> = {\n employment_basic_information: 'basic_information',\n};\n\nexport const useContractorOnboarding = ({\n countryCode,\n externalId,\n employmentId,\n skipSteps,\n options,\n initialValues: onboardingInitialValues,\n}: useContractorOnboardingProps) => {\n const [internalCountryCode, setInternalCountryCode] = useState<string | null>(\n countryCode || null,\n );\n const [internalEmploymentId, setInternalEmploymentId] = useState<\n string | undefined\n >(employmentId);\n const [internalContractDocumentId, setInternalContractDocumentId] = useState<\n string | undefined\n >(undefined);\n const fieldsMetaRef = useRef<{\n select_country: Meta;\n basic_information: Meta;\n contract_details: Meta;\n contract_preview: Meta;\n pricing_plan: Meta;\n }>({\n select_country: {},\n basic_information: {},\n contract_details: {},\n contract_preview: {},\n pricing_plan: {},\n });\n\n const stepsToUse = skipSteps?.includes('select_country')\n ? STEPS_WITHOUT_SELECT_COUNTRY\n : STEPS;\n\n const {\n fieldValues,\n stepState,\n setFieldValues,\n previousStep,\n nextStep,\n goToStep,\n setStepValues,\n } = useStepState(\n stepsToUse as Record<keyof typeof STEPS, Step<keyof typeof STEPS>>,\n );\n\n const {\n data: employment,\n isLoading: isLoadingEmployment,\n refetch: refetchEmployment,\n } = useEmployment(internalEmploymentId);\n\n const { status: employmentStatus } = employment || {};\n\n const isEmploymentReadOnly =\n employmentStatus &&\n reviewStepAllowedEmploymentStatus.includes(employmentStatus);\n\n const canInvite =\n employmentStatus &&\n !disabledInviteButtonEmploymentStatus.includes(employmentStatus);\n\n const invitedStatus: 'invited' | 'not_invited' = useMemo(() => {\n const isInvited = employmentStatus === 'invited';\n\n return isInvited ? 'invited' : 'not_invited';\n }, [employmentStatus]);\n\n const createEmploymentMutation = useCreateEmployment(options);\n const createContractorContractDocumentMutation =\n useCreateContractorContractDocument();\n const signContractDocumentMutation = useSignContractDocument();\n\n const { mutateAsync: createEmploymentMutationAsync } = mutationToPromise(\n createEmploymentMutation,\n );\n\n const { mutateAsync: createContractorContractDocumentMutationAsync } =\n mutationToPromise(createContractorContractDocumentMutation);\n\n const { mutateAsync: signContractDocumentMutationAsync } = mutationToPromise(\n signContractDocumentMutation,\n );\n\n // if the employment is loaded, country code has not been set yet\n // we set the internal country code with the employment country code\n if (employmentId && employment?.country?.code && !internalCountryCode) {\n setInternalCountryCode(employment.country.code);\n }\n\n const { selectCountryForm, isLoading: isLoadingCountries } =\n useCountriesSchemaField({\n jsfModify: options?.jsfModify?.select_country,\n jsonSchemaVersion: options?.jsonSchemaVersion,\n queryOptions: {\n enabled: stepState.currentStep.name === 'select_country',\n },\n });\n\n const formType =\n stepToFormSchemaMap[stepState.currentStep.name] ||\n 'contractor_basic_information';\n const employmentKey = jsonSchemaToEmployment[formType] as keyof Employment;\n const serverEmploymentData = (employment?.[employmentKey] || {}) as Record<\n string,\n unknown\n >;\n\n const useJSONSchema = ({\n form,\n options: jsonSchemaOptions = {},\n query = {},\n }: {\n form: JSONSchemaFormType;\n options?: {\n jsfModify?: JSFModify;\n queryOptions?: { enabled?: boolean };\n jsonSchemaVersion?: FlowOptions['jsonSchemaVersion'];\n };\n query?: Record<string, string>;\n }) => {\n const hasUserEnteredAnyValues = Object.keys(fieldValues).length > 0;\n // when you write on the fields, the values are stored in the fieldValues state\n // when values are stored in the stepState is when the user has navigated to the step\n // and then we have the values from the server and the onboardingInitialValues that the user can inject,\n const mergedFormValues = hasUserEnteredAnyValues\n ? {\n ...onboardingInitialValues,\n ...stepState.values?.[stepState.currentStep.name], // Restore values for the current step\n ...fieldValues,\n }\n : {\n ...onboardingInitialValues,\n ...serverEmploymentData,\n };\n\n return useJSONSchemaForm({\n countryCode: internalCountryCode as string,\n form: form,\n fieldValues: mergedFormValues,\n query,\n options: {\n ...jsonSchemaOptions,\n queryOptions: {\n enabled: jsonSchemaOptions.queryOptions?.enabled ?? true,\n },\n },\n });\n };\n\n const isBasicInformationDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'basic_information' ||\n Boolean(employmentId)),\n );\n\n const isContractorOnboardingDetailsEnabled = Boolean(\n internalCountryCode &&\n (stepState.currentStep.name === 'contract_details' ||\n Boolean(employmentId)),\n );\n\n const {\n data: basicInformationForm,\n isLoading: isLoadingBasicInformationForm,\n } = useJSONSchema({\n form: 'contractor_basic_information',\n options: {\n jsfModify: options?.jsfModify?.basic_information,\n queryOptions: {\n enabled: isBasicInformationDetailsEnabled,\n },\n jsonSchemaVersion: options?.jsonSchemaVersion,\n },\n });\n\n const {\n data: contractorOnboardingDetailsForm,\n isLoading: isLoadingContractorOnboardingDetailsForm,\n } = useContractorOnboardingDetailsSchema({\n countryCode: internalCountryCode as string,\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: isContractorOnboardingDetailsEnabled,\n },\n jsfModify: options?.jsfModify?.contract_details,\n jsonSchemaVersion: options?.jsonSchemaVersion,\n },\n });\n\n const { data: signatureSchemaForm } = useGetContractDocumentSignatureSchema({\n fieldValues: fieldValues,\n options: {\n queryOptions: {\n enabled: stepState.currentStep.name === 'contract_preview',\n },\n },\n });\n const { data: documentPreviewPdf, isLoading: isLoadingDocumentPreviewForm } =\n useGetShowContractDocument({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n options: {\n queryOptions: {\n enabled: Boolean(internalContractDocumentId),\n },\n },\n });\n\n const stepFields: Record<keyof typeof STEPS, Fields> = useMemo(\n () => ({\n select_country: selectCountryForm?.fields || [],\n basic_information: basicInformationForm?.fields || [],\n pricing_plan: [],\n contract_details: contractorOnboardingDetailsForm?.fields || [],\n contract_preview: signatureSchemaForm?.fields || [],\n review: [],\n }),\n [\n selectCountryForm?.fields,\n basicInformationForm?.fields,\n contractorOnboardingDetailsForm?.fields,\n signatureSchemaForm?.fields,\n ],\n );\n\n const stepFieldsWithFlatFieldsets: Record<\n keyof typeof STEPS,\n JSFFieldset | null | undefined\n > = {\n select_country: null,\n basic_information: basicInformationForm?.meta['x-jsf-fieldsets'],\n pricing_plan: null,\n contract_details: contractorOnboardingDetailsForm?.meta['x-jsf-fieldsets'],\n contract_preview: null,\n review: null,\n };\n\n const {\n country,\n basic_information: employmentBasicInformation = {},\n contract_details: employmentContractDetails = {},\n } = employment || {};\n\n const employmentCountryCode = country?.code;\n\n const selectCountryInitialValues = useMemo(\n () =>\n getInitialValues(stepFields.select_country, {\n country: internalCountryCode || employmentCountryCode || '',\n }),\n [stepFields.select_country, internalCountryCode, employmentCountryCode],\n );\n\n const basicInformationInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentBasicInformation,\n };\n\n return getInitialValues(stepFields.basic_information, initialValues);\n }, [\n stepFields.basic_information,\n employmentBasicInformation,\n onboardingInitialValues,\n ]);\n\n const contractDetailsInitialValues = useMemo(() => {\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_details, initialValues);\n }, [\n stepFields.contract_details,\n employmentContractDetails,\n onboardingInitialValues,\n ]);\n\n const contractPreviewInitialValues = useMemo(() => {\n // TODO: TBD not sure if contract preview needs to be populated with anything\n const initialValues = {\n ...onboardingInitialValues,\n ...employmentContractDetails,\n };\n\n return getInitialValues(stepFields.contract_preview, initialValues);\n }, [\n stepFields.contract_preview,\n employmentContractDetails,\n onboardingInitialValues,\n ]);\n\n const initialValues = useMemo(() => {\n return {\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: contractPreviewInitialValues,\n pricing_plan: {},\n };\n }, [\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n contractPreviewInitialValues,\n ]);\n\n const isNavigatingToReview = useMemo(() => {\n const shouldHandleReadOnlyEmployment = Boolean(\n employmentId &&\n isEmploymentReadOnly &&\n stepState.currentStep.name !== 'review',\n );\n\n return Boolean(\n shouldHandleReadOnlyEmployment &&\n !isLoadingEmployment &&\n stepFields.basic_information.length > 0 &&\n stepFields.contract_details.length > 0,\n );\n }, [\n employmentId,\n isEmploymentReadOnly,\n isLoadingEmployment,\n stepFields.basic_information.length,\n stepFields.contract_details.length,\n stepState.currentStep.name,\n ]);\n\n useEffect(() => {\n if (isNavigatingToReview) {\n fieldsMetaRef.current = {\n select_country: prettifyFormValues(\n selectCountryInitialValues,\n stepFields.select_country,\n ),\n basic_information: prettifyFormValues(\n basicInformationInitialValues,\n stepFields.basic_information,\n ),\n contract_details: prettifyFormValues(\n contractDetailsInitialValues,\n stepFields.contract_details,\n ),\n // TODO: TBD\n contract_preview: {},\n // TODO: TBD\n pricing_plan: {},\n };\n\n setStepValues({\n select_country: selectCountryInitialValues,\n basic_information: basicInformationInitialValues,\n contract_details: contractDetailsInitialValues,\n contract_preview: {},\n pricing_plan: {},\n review: {},\n });\n goToStep('review');\n }\n }, [\n isNavigatingToReview,\n goToStep,\n selectCountryInitialValues,\n basicInformationInitialValues,\n contractDetailsInitialValues,\n setStepValues,\n stepFields.select_country,\n stepFields.basic_information,\n stepFields.contract_details,\n ]);\n\n const goTo = (step: keyof typeof STEPS) => {\n goToStep(step);\n };\n\n const parseFormValues = (values: FieldValues) => {\n if (selectCountryForm && stepState.currentStep.name === 'select_country') {\n return values;\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n return parseJSFToValidate(values, basicInformationForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n return parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n {\n isPartialValidation: false,\n },\n );\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n return parseJSFToValidate(values, signatureSchemaForm?.fields, {\n isPartialValidation: false,\n });\n }\n\n if (stepState.currentStep.name === 'pricing_plan') {\n // TODO: TBD\n return values;\n }\n\n return {};\n };\n\n async function onSubmit(values: FieldValues) {\n const currentStepName = stepState.currentStep.name;\n if (currentStepName in fieldsMetaRef.current) {\n fieldsMetaRef.current[\n currentStepName as keyof typeof fieldsMetaRef.current\n ] = prettifyFormValues(values, stepFields[currentStepName]);\n }\n const parsedValues = parseFormValues(values);\n switch (stepState.currentStep.name) {\n case 'select_country': {\n setInternalCountryCode(parsedValues.country);\n return Promise.resolve({ data: { countryCode: parsedValues.country } });\n }\n case 'basic_information': {\n const isEmploymentNotLoaded =\n !internalEmploymentId && internalCountryCode;\n const hasChangedCountry =\n internalEmploymentId &&\n internalCountryCode &&\n employment?.country &&\n employment?.country.code !== internalCountryCode;\n\n if (isEmploymentNotLoaded || hasChangedCountry) {\n const payload: EmploymentCreateParams = {\n basic_information: parsedValues,\n type: 'contractor',\n country_code: internalCountryCode,\n external_id: externalId,\n };\n try {\n const response = await createEmploymentMutationAsync(payload);\n // @ts-expect-error the types from the response are not matching\n const employmentId = response.data?.data?.employment?.id;\n setInternalEmploymentId(employmentId);\n\n return response;\n } catch (error) {\n console.error('Error creating onboarding:', error);\n throw error;\n }\n } else if (internalEmploymentId) {\n // TODO: Provisional it seems you cannot update a contractor employment\n return Promise.resolve({\n data: { employmentId: internalEmploymentId },\n });\n }\n\n return;\n }\n case 'contract_details': {\n const payload: CreateContractDocument = {\n contract_document: parsedValues,\n };\n const response: $TSFixMe =\n await createContractorContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n payload,\n });\n\n const contractDocumentId = response.data?.data?.contract_document?.id;\n setInternalContractDocumentId(contractDocumentId);\n return response;\n }\n\n case 'contract_preview': {\n return signContractDocumentMutationAsync({\n employmentId: internalEmploymentId as string,\n contractDocumentId: internalContractDocumentId as string,\n payload: {\n signature: values.signature,\n },\n });\n }\n\n case 'pricing_plan': {\n // TODO: TBD\n return Promise.resolve({ data: { pricingPlan: values } });\n }\n\n default: {\n throw new Error('Invalid step state');\n }\n }\n }\n\n const isLoading =\n isLoadingCountries ||\n isLoadingBasicInformationForm ||\n isLoadingEmployment ||\n isLoadingContractorOnboardingDetailsForm ||\n isLoadingDocumentPreviewForm;\n\n return {\n /**\n * Loading state indicating if the flow is loading data\n */\n isLoading,\n\n /**\n * Current state of the form fields for the current step.\n */\n fieldValues,\n\n /**\n * Current step state containing the current step and total number of steps\n */\n stepState,\n\n /**\n * Function to update the current form field values\n * @param values - New form values to set\n */\n checkFieldUpdates: setFieldValues,\n\n /**\n * Function to handle going back to the previous step\n * @returns {void}\n */\n back: previousStep,\n\n /**\n * Function to handle going to the next step\n * @returns {void}\n */\n next: nextStep,\n\n /**\n * Function to handle going to a specific step\n * @param step The step to go to.\n * @returns {void}\n */\n goTo: goTo,\n\n /**\n * Function to handle form submission\n * @param values - Form values to submit\n * @returns Promise resolving to the mutation result\n */\n onSubmit,\n\n /**\n * Array of form fields from the onboarding schema\n */\n fields: stepFields[stepState.currentStep.name],\n\n /**\n * Fields metadata for each step\n */\n meta: {\n fields: fieldsMetaRef.current,\n fieldsets: stepFieldsWithFlatFieldsets[stepState.currentStep.name],\n },\n\n /**\n * Function to parse form values before submission\n * @param values - Form values to parse\n * @returns Parsed form values\n */\n parseFormValues,\n\n /**\n * Function to validate form values against the onboarding schema\n * @param values - Form values to validate\n * @returns Validation result or null if no schema is available\n */\n handleValidation: (values: FieldValues) => {\n if (stepState.currentStep.name === 'select_country') {\n return selectCountryForm.handleValidation(values);\n }\n\n if (\n basicInformationForm &&\n stepState.currentStep.name === 'basic_information'\n ) {\n const parsedValues = parseJSFToValidate(\n values,\n basicInformationForm?.fields,\n { isPartialValidation: false },\n );\n return basicInformationForm?.handleValidation(parsedValues);\n }\n\n if (\n contractorOnboardingDetailsForm &&\n stepState.currentStep.name === 'contract_details'\n ) {\n const parsedValues = parseJSFToValidate(\n values,\n contractorOnboardingDetailsForm?.fields,\n { isPartialValidation: false },\n );\n return contractorOnboardingDetailsForm?.handleValidation(parsedValues);\n }\n\n if (\n signatureSchemaForm &&\n stepState.currentStep.name === 'contract_preview'\n ) {\n const parsedValues = parseJSFToValidate(\n values,\n signatureSchemaForm?.fields,\n { isPartialValidation: false },\n );\n return signatureSchemaForm?.handleValidation(parsedValues);\n }\n\n if (stepState.currentStep.name === 'pricing_plan') {\n // TODO: TBD\n return {\n formErrors: {},\n yupError: null,\n };\n }\n\n return null;\n },\n\n /**\n * Initial form values\n */\n initialValues,\n\n /**\n * Employment id\n */\n employmentId: internalEmploymentId,\n\n /**\n * Function to refetch the employment data\n * @returns {void}\n */\n refetchEmployment: refetchEmployment,\n\n /**\n * Loading state indicating if the onboarding mutation is in progress\n */\n isSubmitting:\n createEmploymentMutation.isPending ||\n createContractorContractDocumentMutation.isPending ||\n signContractDocumentMutation.isPending,\n\n /**\n * Document preview PDF data\n */\n documentPreviewPdf,\n\n /**\n * let's the user know if the company can invite employees\n * @returns {boolean}\n */\n canInvite,\n\n /**\n * let's the user know that the employment cannot be edited, happens when employment.status is invited\n * @returns {boolean}\n */\n isEmploymentReadOnly,\n /**\n * let's the user know if the employment is invited or not\n * @returns {'invited' | 'not_invited'}\n */\n invitedStatus,\n\n /**\n * Employment data\n * @returns {Employment}\n */\n employment,\n };\n};\n"],"mappings":"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","names":["useEffect","useMemo","useRef","useState","stepToFormSchemaMap","jsonSchemaToEmployment","useContractorOnboarding","__name","countryCode","externalId","employmentId","skipSteps","options","onboardingInitialValues","internalCountryCode","setInternalCountryCode","useState","internalEmploymentId","setInternalEmploymentId","internalContractDocumentId","setInternalContractDocumentId","fieldsMetaRef","useRef","stepsToUse","STEPS_WITHOUT_SELECT_COUNTRY","STEPS","fieldValues","stepState","setFieldValues","previousStep","nextStep","goToStep","setStepValues","useStepState","employment","isLoadingEmployment","refetchEmployment","useEmployment","employmentStatus","isEmploymentReadOnly","reviewStepAllowedEmploymentStatus","canInvite","disabledInviteButtonEmploymentStatus","invitedStatus","useMemo","createEmploymentMutation","useCreateEmployment","createContractorContractDocumentMutation","useCreateContractorContractDocument","signContractDocumentMutation","useSignContractDocument","createEmploymentMutationAsync","mutationToPromise","createContractorContractDocumentMutationAsync","signContractDocumentMutationAsync","selectCountryForm","isLoadingCountries","useCountriesSchemaField","formType","employmentKey","serverEmploymentData","useJSONSchema","form","jsonSchemaOptions","query","mergedFormValues","useJSONSchemaForm","isBasicInformationDetailsEnabled","isContractorOnboardingDetailsEnabled","basicInformationForm","isLoadingBasicInformationForm","contractorOnboardingDetailsForm","isLoadingContractorOnboardingDetailsForm","useContractorOnboardingDetailsSchema","signatureSchemaForm","useGetContractDocumentSignatureSchema","documentPreviewPdf","isLoadingDocumentPreviewForm","useGetShowContractDocument","stepFields","stepFieldsWithFlatFieldsets","country","employmentBasicInformation","employmentContractDetails","employmentCountryCode","selectCountryInitialValues","getInitialValues","basicInformationInitialValues","initialValues","contractDetailsInitialValues","contractPreviewInitialValues","isNavigatingToReview","useEffect","prettifyFormValues","goTo","step","parseFormValues","values","parseJSFToValidate","onSubmit","currentStepName","parsedValues","isEmploymentNotLoaded","hasChangedCountry","payload","response","error","contractDocumentId"]}
|